@hmcts/rpx-xui-common-lib 1.7.0-ao-rectification.1 → 1.7.3-user-list-performance-pagination

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +674 -205
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +1 -1
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-rpx-xui-common-lib.js +30 -28
  6. package/esm2015/lib/components/find-location/find-location.component.js +18 -4
  7. package/esm2015/lib/components/find-person/find-person.component.js +14 -4
  8. package/esm2015/lib/components/generic-filter/generic-filter.component.js +21 -5
  9. package/esm2015/lib/components/index.js +2 -2
  10. package/esm2015/lib/components/public_api.js +1 -2
  11. package/esm2015/lib/components/search-judicials/search-judicials.component.js +249 -0
  12. package/esm2015/lib/components/search-location/search-location.component.js +12 -2
  13. package/esm2015/lib/components/search-venue/search-venue.component.js +246 -0
  14. package/esm2015/lib/components/user-list/user-list.component.js +22 -51
  15. package/esm2015/lib/exui-common-lib.module.js +10 -7
  16. package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +49 -0
  17. package/esm2015/lib/models/filter.model.js +5 -1
  18. package/esm2015/lib/models/index.js +2 -2
  19. package/esm2015/lib/models/pagination.model.js +6 -4
  20. package/esm2015/lib/models/person.model.js +27 -1
  21. package/esm2015/lib/services/find-person/find-person.service.js +9 -1
  22. package/esm2015/lib/services/locations/location.service.js +11 -1
  23. package/esm2015/public-api.js +2 -2
  24. package/esm5/hmcts-rpx-xui-common-lib.js +30 -28
  25. package/esm5/lib/components/find-location/find-location.component.js +21 -4
  26. package/esm5/lib/components/find-person/find-person.component.js +17 -4
  27. package/esm5/lib/components/generic-filter/generic-filter.component.js +28 -5
  28. package/esm5/lib/components/index.js +2 -2
  29. package/esm5/lib/components/public_api.js +1 -2
  30. package/esm5/lib/components/search-judicials/search-judicials.component.js +291 -0
  31. package/esm5/lib/components/search-location/search-location.component.js +15 -2
  32. package/esm5/lib/components/search-venue/search-venue.component.js +290 -0
  33. package/esm5/lib/components/user-list/user-list.component.js +25 -63
  34. package/esm5/lib/exui-common-lib.module.js +10 -7
  35. package/esm5/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +51 -0
  36. package/esm5/lib/models/filter.model.js +5 -1
  37. package/esm5/lib/models/index.js +2 -2
  38. package/esm5/lib/models/pagination.model.js +6 -4
  39. package/esm5/lib/models/person.model.js +27 -1
  40. package/esm5/lib/services/find-person/find-person.service.js +14 -1
  41. package/esm5/lib/services/locations/location.service.js +25 -1
  42. package/esm5/public-api.js +2 -2
  43. package/fesm2015/hmcts-rpx-xui-common-lib.js +530 -163
  44. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  45. package/fesm5/hmcts-rpx-xui-common-lib.js +654 -189
  46. package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -1
  47. package/hmcts-rpx-xui-common-lib.d.ts +28 -26
  48. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  49. package/lib/components/find-location/find-location.component.d.ts +4 -0
  50. package/lib/components/find-person/find-person.component.d.ts +2 -0
  51. package/lib/components/generic-filter/generic-filter.component.d.ts +1 -0
  52. package/lib/components/public_api.d.ts +0 -1
  53. package/lib/components/search-judicials/search-judicials.component.d.ts +37 -0
  54. package/lib/components/search-location/search-location.component.d.ts +2 -0
  55. package/lib/components/search-venue/search-venue.component.d.ts +37 -0
  56. package/lib/components/user-list/user-list.component.d.ts +9 -10
  57. package/lib/exui-common-lib.module.d.ts +5 -2
  58. package/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.d.ts +10 -0
  59. package/lib/models/filter.model.d.ts +2 -0
  60. package/lib/models/index.d.ts +1 -1
  61. package/lib/models/pagination.model.d.ts +4 -3
  62. package/lib/models/person.model.d.ts +12 -0
  63. package/lib/services/find-person/find-person.service.d.ts +2 -1
  64. package/lib/services/locations/location.service.d.ts +8 -0
  65. package/package.json +1 -1
  66. package/esm2015/lib/components/pagination-v1/pagination.component.js +0 -130
  67. package/esm5/lib/components/pagination-v1/pagination.component.js +0 -144
  68. package/lib/components/pagination-v1/pagination.component.d.ts +0 -19
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/material/autocomplete'), require('@angular/material/input'), require('@angular/material/tabs'), require('ngx-pagination'), require('@angular/forms'), require('@angular/common/http'), require('launchdarkly-js-client-sdk'), require('@angular/common'), require('@angular/platform-browser'), require('@ng-idle/core'), require('@ng-idle/keepalive'), require('@angular/router'), require('@angular/core'), require('rxjs'), require('rxjs/operators')) :
3
- typeof define === 'function' && define.amd ? define('@hmcts/rpx-xui-common-lib', ['exports', '@angular/material/autocomplete', '@angular/material/input', '@angular/material/tabs', 'ngx-pagination', '@angular/forms', '@angular/common/http', 'launchdarkly-js-client-sdk', '@angular/common', '@angular/platform-browser', '@ng-idle/core', '@ng-idle/keepalive', '@angular/router', '@angular/core', 'rxjs', 'rxjs/operators'], factory) :
4
- (factory((global.hmcts = global.hmcts || {}, global.hmcts['rpx-xui-common-lib'] = {}),global.ng.material.autocomplete,global.ng.material.input,global.ng.material.tabs,global.ngxPagination,global.ng.forms,global.ng.common.http,global.LDClient,global.ng.common,global.ng.platformBrowser,global.i1$1,global.i2$1,global.ng.router,global.ng.core,global.rxjs,global.rxjs.operators));
5
- }(this, (function (exports,autocomplete,input,tabs,ngxPagination,forms,i1,LDClient,i4,i2,i1$1,i2$1,i2$2,i0,rxjs,operators) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/material'), require('@angular/material/autocomplete'), require('ngx-pagination'), require('@angular/common/http'), require('@angular/forms'), require('launchdarkly-js-client-sdk'), require('@angular/common'), require('@angular/platform-browser'), require('@ng-idle/core'), require('@ng-idle/keepalive'), require('@angular/router'), require('@angular/core'), require('rxjs'), require('rxjs/operators')) :
3
+ typeof define === 'function' && define.amd ? define('@hmcts/rpx-xui-common-lib', ['exports', '@angular/material', '@angular/material/autocomplete', 'ngx-pagination', '@angular/common/http', '@angular/forms', 'launchdarkly-js-client-sdk', '@angular/common', '@angular/platform-browser', '@ng-idle/core', '@ng-idle/keepalive', '@angular/router', '@angular/core', 'rxjs', 'rxjs/operators'], factory) :
4
+ (factory((global.hmcts = global.hmcts || {}, global.hmcts['rpx-xui-common-lib'] = {}),global.ng.material,global.ng.material.autocomplete,global.ngxPagination,global.ng.common.http,global.ng.forms,global.LDClient,global.ng.common,global.ng.platformBrowser,global.i1$1,global.i2$1,global.ng.router,global.ng.core,global.rxjs,global.rxjs.operators));
5
+ }(this, (function (exports,material,autocomplete,ngxPagination,i1,forms,LDClient,i4,i2,i1$1,i2$1,i2$2,i0,rxjs,operators) { 'use strict';
6
6
 
7
7
  /**
8
8
  * @fileoverview added by tsickle
@@ -1035,7 +1035,13 @@
1035
1035
  }
1036
1036
  }
1037
1037
  }
1038
- return true;
1038
+ // find-location is special case where need to reset textbox (by existing disabling functionality)
1039
+ // field.disable referred to component itself
1040
+ if (field.type === 'find-location') {
1041
+ return true;
1042
+ }
1043
+ // Note: field.disable decides whether to actually disable or not
1044
+ return field.disable ? field.disable : null;
1039
1045
  };
1040
1046
  /**
1041
1047
  * @param {?} form
@@ -1101,6 +1107,24 @@
1101
1107
  }
1102
1108
  }
1103
1109
  };
1110
+ // when user enters input change radio button
1111
+ // when user enters input change radio button
1112
+ /**
1113
+ * @param {?} field
1114
+ * @return {?}
1115
+ */
1116
+ GenericFilterComponent.prototype.inputChanged =
1117
+ // when user enters input change radio button
1118
+ /**
1119
+ * @param {?} field
1120
+ * @return {?}
1121
+ */
1122
+ function (field) {
1123
+ if (field.radioSelectionChange && typeof field.radioSelectionChange === 'string') {
1124
+ var _a = __read(field.enableCondition.split('='), 2), name_3 = _a[0], value = _a[1];
1125
+ this.form.get(name_3).patchValue(value);
1126
+ }
1127
+ };
1104
1128
  /**
1105
1129
  * @return {?}
1106
1130
  */
@@ -1130,7 +1154,6 @@
1130
1154
  */
1131
1155
  function (values, field) {
1132
1156
  var e_2, _a;
1133
- console.log('updatePersonControls', values, field);
1134
1157
  /** @type {?} */
1135
1158
  var keys;
1136
1159
  if (!values) {
@@ -1514,7 +1537,7 @@
1514
1537
  * @param {?} f
1515
1538
  * @return {?}
1516
1539
  */function (f) { return f.name === field.name; }));
1517
- if (defaultValues) {
1540
+ if (defaultValues && defaultValues.value && defaultValues.value.length > 0) {
1518
1541
  try {
1519
1542
  for (var _b = __values(defaultValues.value), _c = _b.next(); !_c.done; _c = _b.next()) {
1520
1543
  var defaultValue = _c.value;
@@ -1622,7 +1645,7 @@
1622
1645
  GenericFilterComponent.decorators = [
1623
1646
  { type: i0.Component, args: [{
1624
1647
  selector: 'xuilib-generic-filter',
1625
- 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 <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 <h3 *ngIf=\"field.title\" class=\"govuk-heading-s\">{{field.title}}</h3>\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 <div class=\"govuk-body\" [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 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=\"'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_' + item.key\"\n [name]=\"'checkbox_' + item.key\"\n />\n <label\n [for]=\"'checkbox_' + 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_' + item.key\"\n [name]=\"'checkbox_' + item.key\"\n />\n <label\n [for]=\"'checkbox_' + 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 [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 ></xuilib-find-person>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-location'\">\n <xuilib-find-location [form]=\"form\"\n [fields]=\"config.fields\"\n [locationTitle]=\"field.locationTitle\"\n [enableAddLocationButton]=\"field.enableAddLocationButton\"\n [disabled]=\"disabled(field, form)\"\n [selectedLocations]=\"form.get(field.name)?.value\"\n [submitted]=\"submitted\"\n [services]=\"form.get(field.findLocationField)?.value\"\n [field]=\"field\"\n ></xuilib-find-location>\n </ng-container>\n </div>\n </div>\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",
1648
+ 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 <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 <h3 *ngIf=\"field.title\" class=\"govuk-heading-s\">{{field.title}}</h3>\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 <div class=\"govuk-body\" [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 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=\"'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_' + item.key\"\n [name]=\"'checkbox_' + item.key\"\n />\n <label\n [for]=\"'checkbox_' + 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_' + item.key\"\n [name]=\"'checkbox_' + item.key\"\n />\n <label\n [for]=\"'checkbox_' + 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 ></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.enableAddLocationButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [selectedLocations]=\"form.get(field.name)?.value\"\n [submitted]=\"submitted\"\n [services]=\"form.get(field.findLocationField)?.value\"\n [field]=\"field\"\n ></xuilib-find-location>\n </ng-container>\n </div>\n </div>\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",
1626
1649
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1627
1650
  encapsulation: i0.ViewEncapsulation.None,
1628
1651
  styles: [".contain-classes .elevated-break{position:relative;top:-10px}.contain-classes .xui-generic-filter .select-all{margin-bottom:10px}.contain-classes .xui-generic-filter .govuk-checkboxes{display:flex;flex-wrap:wrap}.contain-classes .xui-generic-filter .govuk-checkboxes>div{flex-grow:1;flex-shrink:0}"]
@@ -3420,12 +3443,17 @@
3420
3443
  function UserListComponent() {
3421
3444
  this.users = [];
3422
3445
  this.userClick = new i0.EventEmitter();
3423
- this.moreResultsToGo = false;
3424
- this.pagination = {
3425
- page_number: 1,
3426
- page_size: 25
3427
- };
3446
+ this.pageChange = new i0.EventEmitter();
3428
3447
  }
3448
+ /**
3449
+ * @return {?}
3450
+ */
3451
+ UserListComponent.prototype.ngOnInit = /**
3452
+ * @return {?}
3453
+ */
3454
+ function () {
3455
+ this.pagination = { itemsPerPage: 50, currentPage: this.currentPageNumber, totalItems: this.pageTotalSize };
3456
+ };
3429
3457
  /**
3430
3458
  * @param {?} user
3431
3459
  * @return {?}
@@ -3441,74 +3469,27 @@
3441
3469
  * @param {?} pageNumber
3442
3470
  * @return {?}
3443
3471
  */
3444
- UserListComponent.prototype.onPaginationHandler = /**
3472
+ UserListComponent.prototype.emitPageClickEvent = /**
3445
3473
  * @param {?} pageNumber
3446
3474
  * @return {?}
3447
3475
  */
3448
3476
  function (pageNumber) {
3449
- this.pagination.page_number = pageNumber;
3450
- };
3451
- /**
3452
- * @param {?} rows
3453
- * @return {?}
3454
- */
3455
- UserListComponent.prototype.getFirstResult = /**
3456
- * @param {?} rows
3457
- * @return {?}
3458
- */
3459
- function (rows) {
3460
- if (rows && rows.length > 0) {
3461
- /** @type {?} */
3462
- var currentPage = (this.pagination.page_number ? this.pagination.page_number : 1);
3463
- if (currentPage === 1) {
3464
- return currentPage;
3465
- }
3466
- return (currentPage - 1) * this.pagination.page_size + 1;
3467
- }
3468
- return 0;
3469
- };
3470
- /**
3471
- * @param {?} rows
3472
- * @return {?}
3473
- */
3474
- UserListComponent.prototype.getLastResult = /**
3475
- * @param {?} rows
3476
- * @return {?}
3477
- */
3478
- function (rows) {
3479
- if (rows && rows.length > 0) {
3480
- /** @type {?} */
3481
- var currentPage = (this.pagination.page_number ? this.pagination.page_number : 1);
3482
- return (currentPage) * this.pagination.page_size;
3483
- }
3484
- return 0;
3485
- };
3486
- /**
3487
- * @param {?} rows
3488
- * @return {?}
3489
- */
3490
- UserListComponent.prototype.getTotalResults = /**
3491
- * @param {?} rows
3492
- * @return {?}
3493
- */
3494
- function (rows) {
3495
- if (rows && rows.length > 0) {
3496
- return rows.length;
3497
- }
3498
- return 0;
3477
+ this.currentPageNumber = pageNumber;
3478
+ this.pageChange.emit(pageNumber);
3499
3479
  };
3500
3480
  UserListComponent.decorators = [
3501
3481
  { type: i0.Component, args: [{
3502
3482
  selector: 'xuilib-user-list',
3503
- template: "<div class=\"pagination-top\" *ngIf=\"getTotalResults(users) > pagination.page_size\" attr.aria-label=\"{{ getTotalResults(users) }} results have been found\" role=\"status\">\n <span class=\"text-16\" id=\"search-result-summary__text\">Showing \n <span class=\"govuk-!-font-weight-bold\">{{ getFirstResult(users) }}</span>\n to\n <span class=\"govuk-!-font-weight-bold\">{{ getLastResult(users) }}</span>\n of\n <span class=\"govuk-!-font-weight-bold\">{{ getTotalResults(users) }}</span> results</span>\n</div>\n<table class=\"govuk-table\">\n <thead clas=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"col\">Name</th>\n <th class=\"govuk-table__header\" scope=\"col\">Email</th>\n <th class=\"govuk-table__header\" scope=\"col\">Status</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" data-selector=\"table-row\" *ngFor=\"let u of users | paginate: { itemsPerPage: pagination?.page_size, currentPage: pagination?.page_number, totalItems: users.length }\">\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">\n <a class=\"govuk-link\" [attr.title]=\"u.routerLinkTitle\" [routerLink]=\"u.routerLink\" (click)=\"onUserClick(u)\">{{ u.fullName }}</a>\n </td>\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">{{ u.email }}</td>\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">{{ u.status }}</td>\n </tr>\n </tbody>\n</table>\n<xuilib-pagination-v1 *ngIf=\"getTotalResults(users) > pagination.page_size\" (pageChange)=\"onPaginationHandler($event)\"></xuilib-pagination-v1>",
3483
+ template: "<table class=\"govuk-table\">\n\n <thead clas=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"col\">Name</th>\n <th class=\"govuk-table__header\" scope=\"col\">Email</th>\n <th class=\"govuk-table__header\" scope=\"col\">Status</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <ng-container *ngFor=\"let u of users | paginate: { itemsPerPage: pagination.itemsPerPage, currentPage: currentPageNumber, totalItems: pagination.totalItems }\">\n <tr class=\"govuk-table__row\" data-selector=\"table-row\">\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">\n <a class=\"govuk-link\" [attr.title]=\"u.routerLinkTitle\" [routerLink]=\"u.routerLink\" (click)=\"onUserClick(u)\">{{ u.fullName }}</a>\n </td>\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">{{ u.email }}</td>\n <td class=\"govuk-table__cell\" data-selector=\"table-cell\">{{ u.status }}</td>\n </tr>\n </ng-container>\n </tbody>\n</table>\n<xuilib-hmcts-pagination (pageChange)=\"emitPageClickEvent($event)\" [pageSize]=\"pagination.itemsPerPage\"></xuilib-hmcts-pagination>\n",
3504
3484
  styles: [":host{display:block}"]
3505
3485
  }] }
3506
3486
  ];
3507
- /** @nocollapse */
3508
- UserListComponent.ctorParameters = function () { return []; };
3509
3487
  UserListComponent.propDecorators = {
3510
3488
  users: [{ type: i0.Input }],
3511
- userClick: [{ type: i0.Output }]
3489
+ currentPageNumber: [{ type: i0.Input }],
3490
+ pageTotalSize: [{ type: i0.Input }],
3491
+ userClick: [{ type: i0.Output }],
3492
+ pageChange: [{ type: i0.Output }]
3512
3493
  };
3513
3494
  return UserListComponent;
3514
3495
  }());
@@ -3812,6 +3793,30 @@
3812
3793
  function (serviceIds, locationType, searchTerm) {
3813
3794
  return this.http.get("api/locations/getLocations?serviceIds=" + serviceIds + "&locationType=" + locationType + "&searchTerm=" + searchTerm);
3814
3795
  };
3796
+ /**
3797
+ * @description searchLocations from service Ids/location type/search term
3798
+ * @param serviceIds: BBA3 | BBA3,BFA1 split with ','
3799
+ * @param locationType: optional | hearing | case_management
3800
+ * @param searchTerm: any search term for postcode | site name | venue name |court name | court address etc.
3801
+ * @return Observable<LocationByEPIMMSModel[]>: Array of locationModel in Observable
3802
+ */
3803
+ /**
3804
+ * \@description searchLocations from service Ids/location type/search term
3805
+ * @param {?} serviceIds
3806
+ * @param {?} locationType
3807
+ * @param {?} searchTerm
3808
+ * @return {?} Observable<LocationByEPIMMSModel[]>: Array of locationModel in Observable
3809
+ */
3810
+ LocationService.prototype.searchLocations = /**
3811
+ * \@description searchLocations from service Ids/location type/search term
3812
+ * @param {?} serviceIds
3813
+ * @param {?} locationType
3814
+ * @param {?} searchTerm
3815
+ * @return {?} Observable<LocationByEPIMMSModel[]>: Array of locationModel in Observable
3816
+ */
3817
+ function (serviceIds, locationType, searchTerm) {
3818
+ return this.http.get("api/prd/location/getLocations?serviceIds=" + serviceIds + "&locationType=" + locationType + "&searchTerm=" + searchTerm);
3819
+ };
3815
3820
  LocationService.decorators = [
3816
3821
  { type: i0.Injectable, args: [{
3817
3822
  providedIn: 'root'
@@ -3847,6 +3852,7 @@
3847
3852
  this.locations = [];
3848
3853
  this.locationSelected = new i0.EventEmitter();
3849
3854
  this.locationInputChanged = new i0.EventEmitter();
3855
+ this.searchLocationChanged = new i0.EventEmitter();
3850
3856
  this.minSearchCharacters = 3;
3851
3857
  this.term = '';
3852
3858
  this.pSelectedLocations = [];
@@ -3967,6 +3973,15 @@
3967
3973
  _this.showAutocomplete = true;
3968
3974
  }));
3969
3975
  };
3976
+ /**
3977
+ * @return {?}
3978
+ */
3979
+ SearchLocationComponent.prototype.onInput = /**
3980
+ * @return {?}
3981
+ */
3982
+ function () {
3983
+ this.searchLocationChanged.emit();
3984
+ };
3970
3985
  /**
3971
3986
  * @param {?} term
3972
3987
  * @return {?}
@@ -4015,7 +4030,7 @@
4015
4030
  SearchLocationComponent.decorators = [
4016
4031
  { type: i0.Component, args: [{
4017
4032
  selector: 'exui-search-location',
4018
- template: "<div class=\"auto-complete-container\">\n <input\n [formControl]=\"form.controls.searchTerm\"\n [matAutocomplete]=\"autoSearchLocation\"\n class=\"govuk-input\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n <mat-option *ngFor=\"let location of locations\"\n (onSelectionChange)=\"onSelectionChange(location)\">\n {{ location.site_name }}\n </mat-option>\n <mat-option *ngIf=\"!locations.length && showAutocomplete && term && term.length >= this.minSearchCharacters\">No results found</mat-option>\n </mat-autocomplete>\n</div>\n",
4033
+ template: "<div class=\"auto-complete-container\">\n <input\n id=\"inputLocationSearch\"\n (input)=\"onInput()\"\n [formControl]=\"form.controls.searchTerm\"\n [matAutocomplete]=\"autoSearchLocation\"\n class=\"govuk-input\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n <mat-option *ngFor=\"let location of locations\"\n (onSelectionChange)=\"onSelectionChange(location)\">\n {{ location.site_name }}\n </mat-option>\n <mat-option *ngIf=\"!locations.length && showAutocomplete && term && term.length >= this.minSearchCharacters\">No results found</mat-option>\n </mat-autocomplete>\n</div>\n",
4019
4034
  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:rgba(0,0,0,.256863) 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-bottom:solid #b1b4b6;border-width:1px 0;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:550px;display:inline-block;margin-right:4px}.autocomplete__input{line-height:24px;font-size:19px}"]
4020
4035
  }] }
4021
4036
  ];
@@ -4040,6 +4055,7 @@
4040
4055
  locations: [{ type: i0.Input }],
4041
4056
  locationSelected: [{ type: i0.Output }],
4042
4057
  locationInputChanged: [{ type: i0.Output }],
4058
+ searchLocationChanged: [{ type: i0.Output }],
4043
4059
  reset: [{ type: i0.Input }],
4044
4060
  selectedLocations: [{ type: i0.Input }]
4045
4061
  };
@@ -4053,10 +4069,12 @@
4053
4069
  */
4054
4070
  var FindLocationComponent = /** @class */ (function () {
4055
4071
  function FindLocationComponent() {
4072
+ this.locationFieldChanged = new i0.EventEmitter();
4056
4073
  this.selectedLocations = [];
4057
4074
  this.submitted = true;
4058
4075
  this.enableAddLocationButton = true;
4059
4076
  this.locationTitle = 'Search for a location by name';
4077
+ this.disableInputField = false;
4060
4078
  this.locations = [];
4061
4079
  this.tempSelectedLocation = null;
4062
4080
  this.serviceIds = 'SSCS,IA';
@@ -4077,7 +4095,7 @@
4077
4095
  this.searchLocationComponent.resetSearchTerm();
4078
4096
  this.removeSelectedValues();
4079
4097
  }
4080
- this.pDisabled = value;
4098
+ this.pDisabled = this.disableInputField === true ? true : null;
4081
4099
  },
4082
4100
  enumerable: true,
4083
4101
  configurable: true
@@ -4169,6 +4187,15 @@
4169
4187
  this.removeSelectedValues();
4170
4188
  }
4171
4189
  };
4190
+ /**
4191
+ * @return {?}
4192
+ */
4193
+ FindLocationComponent.prototype.onSearchInputChanged = /**
4194
+ * @return {?}
4195
+ */
4196
+ function () {
4197
+ this.locationFieldChanged.emit();
4198
+ };
4172
4199
  /**
4173
4200
  * @param {?} location
4174
4201
  * @return {?}
@@ -4246,11 +4273,12 @@
4246
4273
  FindLocationComponent.decorators = [
4247
4274
  { type: i0.Component, args: [{
4248
4275
  selector: 'xuilib-find-location',
4249
- template: "<div class=\"location-picker-custom\">\n <div class=\"search-location\">\n <div>\n <label id=\"input-selected-location-label\" *ngIf=\"locationTitle\">{{locationTitle}}</label>\n </div>\n <exui-search-location class=\"search-location\"\n [locations]=\"locations\"\n [selectedLocations]=\"selectedLocations\"\n [singleMode]=\"field.maxSelected === 1\"\n [delay]=\"300\"\n [disabled]=\"disabled\"\n [serviceIds]=\"serviceIds\"\n (locationInputChanged)=\"onInputChanged($event)\"\n (locationSelected)=\"onLocationSelected($event)\"\n [locationType]=\"'case-management'\"></exui-search-location>\n <a href=\"javascript:void(0)\" (click)=\"addLocation()\" class=\"govuk-button\" data-module=\"govuk-button\" *ngIf=\"enableAddLocationButton\">\n Add location\n </a>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedLocations\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeLocation(selection)\" href=\"javascript:void(0)\">\n {{ selection.site_name }}\n </a>\n </li>\n </ul>\n</div>\n",
4276
+ template: "<div class=\"location-picker-custom\">\n <div class=\"search-location\">\n <div>\n <label id=\"input-selected-location-label\" *ngIf=\"locationTitle\">{{locationTitle}}</label>\n </div>\n <exui-search-location class=\"search-location\"\n [locations]=\"locations\"\n [selectedLocations]=\"selectedLocations\"\n [singleMode]=\"field.maxSelected === 1\"\n [delay]=\"300\"\n [disabled]=\"disabled\"\n [serviceIds]=\"serviceIds\"\n (locationInputChanged)=\"onInputChanged($event)\"\n (locationSelected)=\"onLocationSelected($event)\"\n (searchLocationChanged)=\"onSearchInputChanged()\"\n [locationType]=\"'case-management'\"></exui-search-location>\n <a href=\"javascript:void(0)\" (click)=\"addLocation()\" class=\"govuk-button\" data-module=\"govuk-button\" *ngIf=\"enableAddLocationButton\">\n Add location\n </a>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedLocations\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeLocation(selection)\" href=\"javascript:void(0)\">\n {{ selection.site_name }}\n </a>\n </li>\n </ul>\n</div>\n",
4250
4277
  styles: [""]
4251
4278
  }] }
4252
4279
  ];
4253
4280
  FindLocationComponent.propDecorators = {
4281
+ locationFieldChanged: [{ type: i0.Output }],
4254
4282
  selectedLocations: [{ type: i0.Input }],
4255
4283
  submitted: [{ type: i0.Input }],
4256
4284
  enableAddLocationButton: [{ type: i0.Input }],
@@ -4258,6 +4286,7 @@
4258
4286
  field: [{ type: i0.Input }],
4259
4287
  fields: [{ type: i0.Input }],
4260
4288
  locationTitle: [{ type: i0.Input }],
4289
+ disableInputField: [{ type: i0.Input }],
4261
4290
  searchLocationComponent: [{ type: i0.ViewChild, args: [SearchLocationComponent,] }],
4262
4291
  disabled: [{ type: i0.Input }],
4263
4292
  services: [{ type: i0.Input }]
@@ -4311,105 +4340,6 @@
4311
4340
  return PaginationComponent;
4312
4341
  }());
4313
4342
 
4314
- /**
4315
- * @fileoverview added by tsickle
4316
- * Generated from: lib/components/pagination-v1/pagination.component.ts
4317
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4318
- */
4319
- /**
4320
- * @param {?} input
4321
- * @return {?}
4322
- */
4323
- function coerceToBoolean(input$$1) {
4324
- return !!input$$1 && input$$1 !== 'false';
4325
- }
4326
- var PaginationV1Component = /** @class */ (function () {
4327
- function PaginationV1Component() {
4328
- this.maxSize = 7;
4329
- this.previousLabel = 'Previous';
4330
- this.nextLabel = 'Next';
4331
- this.screenReaderPaginationLabel = 'Pagination';
4332
- this.screenReaderPageLabel = 'page';
4333
- this.screenReaderCurrentLabel = "You're on page";
4334
- this.pageChange = new i0.EventEmitter();
4335
- this.pageBoundsCorrection = new i0.EventEmitter();
4336
- // tslint:disable-next-line:variable-name
4337
- this._directionLinks = true;
4338
- // tslint:disable-next-line:variable-name
4339
- this._autoHide = false;
4340
- // tslint:disable-next-line:variable-name
4341
- this._responsive = false;
4342
- }
4343
- Object.defineProperty(PaginationV1Component.prototype, "directionLinks", {
4344
- get: /**
4345
- * @return {?}
4346
- */ function () {
4347
- return this._directionLinks;
4348
- },
4349
- set: /**
4350
- * @param {?} value
4351
- * @return {?}
4352
- */ function (value) {
4353
- this._directionLinks = coerceToBoolean(value);
4354
- },
4355
- enumerable: true,
4356
- configurable: true
4357
- });
4358
- Object.defineProperty(PaginationV1Component.prototype, "autoHide", {
4359
- get: /**
4360
- * @return {?}
4361
- */ function () {
4362
- return this._autoHide;
4363
- },
4364
- set: /**
4365
- * @param {?} value
4366
- * @return {?}
4367
- */ function (value) {
4368
- this._autoHide = coerceToBoolean(value);
4369
- },
4370
- enumerable: true,
4371
- configurable: true
4372
- });
4373
- Object.defineProperty(PaginationV1Component.prototype, "responsive", {
4374
- get: /**
4375
- * @return {?}
4376
- */ function () {
4377
- return this._responsive;
4378
- },
4379
- set: /**
4380
- * @param {?} value
4381
- * @return {?}
4382
- */ function (value) {
4383
- this._responsive = coerceToBoolean(value);
4384
- },
4385
- enumerable: true,
4386
- configurable: true
4387
- });
4388
- PaginationV1Component.decorators = [
4389
- { type: i0.Component, args: [{
4390
- selector: 'xuilib-pagination-v1',
4391
- template: "<pagination-template #p=\"paginationApi\" [id]=\"id\" [maxSize]=\"maxSize\" (pageChange)=\"pageChange.emit($event)\"\n (pageBoundsCorrection)=\"pageBoundsCorrection.emit($event)\">\n <nav role=\"navigation\" aria-label=\"Pagination\">\n <ul class=\"ngx-pagination\" role=\"navigation\" [attr.aria-label]=\"screenReaderPaginationLabel\"\n [class.responsive]=\"responsive\" *ngIf=\"!(autoHide && p.pages.length <= 1)\">\n <li class=\"pagination-previous\" [class.disabled]=\"p.isFirstPage()\" *ngIf=\"directionLinks\">\n <a tabindex=\"0\" *ngIf=\"1 < p.getCurrent()\" (keyup.enter)=\"p.previous()\" (click)=\"p.previous()\"\n [attr.aria-label]=\"previousLabel + ' ' + screenReaderPageLabel\">\n {{ previousLabel }} <span class=\"show-for-sr\">{{ screenReaderPageLabel }}</span>\n </a>\n <span *ngIf=\"p.isFirstPage()\">\n {{ previousLabel }} <span class=\"show-for-sr\">{{ screenReaderPageLabel }}</span>\n </span>\n </li>\n <li class=\"small-screen\">\n {{ p.getCurrent() }} / {{ p.getLastPage() }}\n </li>\n <li [class.current]=\"p.getCurrent() === page.value\" [class.ellipsis]=\"page.label === '...'\"\n *ngFor=\"let page of p.pages\">\n <a tabindex=\"0\" (keyup.enter)=\"p.setCurrent(page.value)\" (click)=\"p.setCurrent(page.value)\"\n *ngIf=\"p.getCurrent() !== page.value\">\n <span class=\"show-for-sr\">{{ screenReaderPageLabel }} </span>\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n </a>\n <ng-container *ngIf=\"p.getCurrent() === page.value\">\n <span class=\"show-for-sr\">{{ screenReaderCurrentLabel }} </span>\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n </ng-container>\n </li>\n <li class=\"pagination-next\" [class.disabled]=\"p.isLastPage()\" *ngIf=\"directionLinks\">\n <a tabindex=\"0\" *ngIf=\"!p.isLastPage()\" (keyup.enter)=\"p.next()\" (click)=\"p.next()\"\n [attr.aria-label]=\"nextLabel + ' ' + screenReaderPageLabel\">\n {{ nextLabel }} <span class=\"show-for-sr\">{{ screenReaderPageLabel }}</span>\n </a>\n <span *ngIf=\"p.isLastPage()\">\n {{ nextLabel }} <span class=\"show-for-sr\">{{ screenReaderPageLabel }}</span>\n </span>\n </li>\n </ul>\n </nav>\n</pagination-template>\n",
4392
- styles: [".ngx-pagination{margin-left:0;margin-bottom:1rem;padding-top:25px;text-decoration:none;text-align:left;font-size:16px}.ngx-pagination::after,.ngx-pagination::before{content:\" \";display:table}.ngx-pagination::after{clear:both}.ngx-pagination li{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;margin-right:.0625rem;border-radius:0;display:inline-block}.ngx-pagination a,.ngx-pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#005da6;cursor:pointer}.ngx-pagination a:hover,.ngx-pagination button:hover{background:#e6e6e6}.ngx-pagination .current{padding:.1875rem .625rem;background:#fff;color:#4c2c92;cursor:default;font-weight:900}.ngx-pagination .disabled{display:none}.ngx-pagination .disabled:hover{background:0 0}.ngx-pagination .pagination-previous a::before,.ngx-pagination .pagination-previous.disabled::before{margin-right:.5rem;display:inline-block;height:10px;width:10px;border-style:solid;color:#0a0a0a;background:0 0;transform:rotate(-45deg);content:\"\";border-width:3px 0 0 3px}.ngx-pagination .pagination-next a::after,.ngx-pagination .pagination-next.disabled::after{margin-left:.5rem;display:inline-block;height:10px;width:10px;border-style:solid;color:#0a0a0a;background:0 0;transform:rotate(-45deg);content:\"\";border-width:0 3px 3px 0}.ngx-pagination .show-for-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.ngx-pagination .small-screen{display:none}@media screen and (max-width:601px){.ngx-pagination.responsive .small-screen{display:inline-block}.ngx-pagination.responsive li:not(.small-screen):not(.pagination-previous):not(.pagination-next){display:none}}"]
4393
- }] }
4394
- ];
4395
- PaginationV1Component.propDecorators = {
4396
- visibilityLabel: [{ type: i0.Input }],
4397
- id: [{ type: i0.Input }],
4398
- maxSize: [{ type: i0.Input }],
4399
- directionLinks: [{ type: i0.Input }],
4400
- autoHide: [{ type: i0.Input }],
4401
- responsive: [{ type: i0.Input }],
4402
- previousLabel: [{ type: i0.Input }],
4403
- nextLabel: [{ type: i0.Input }],
4404
- screenReaderPaginationLabel: [{ type: i0.Input }],
4405
- screenReaderPageLabel: [{ type: i0.Input }],
4406
- screenReaderCurrentLabel: [{ type: i0.Input }],
4407
- pageChange: [{ type: i0.Output }],
4408
- pageBoundsCorrection: [{ type: i0.Output }]
4409
- };
4410
- return PaginationV1Component;
4411
- }());
4412
-
4413
4343
  /**
4414
4344
  * @fileoverview added by tsickle
4415
4345
  * Generated from: lib/components/public_api.ts
@@ -4963,6 +4893,19 @@
4963
4893
  * @return {?}
4964
4894
  */function (person) { return person && person.id !== _this.userId && person.id !== _this.assignedUser; }));
4965
4895
  };
4896
+ /**
4897
+ * @param {?} value
4898
+ * @param {?} serviceId
4899
+ * @return {?}
4900
+ */
4901
+ FindAPersonService.prototype.searchJudicial = /**
4902
+ * @param {?} value
4903
+ * @param {?} serviceId
4904
+ * @return {?}
4905
+ */
4906
+ function (value, serviceId) {
4907
+ return this.http.post('api/prd/judicial/getJudicialUsersSearch', { searchString: value, serviceCode: serviceId });
4908
+ };
4966
4909
  FindAPersonService.caseworkersKey = 'caseworkers';
4967
4910
  FindAPersonService.decorators = [
4968
4911
  { type: i0.Injectable, args: [{
@@ -4990,6 +4933,7 @@
4990
4933
  this.findPersonService = findPersonService;
4991
4934
  this.cd = cd;
4992
4935
  this.personSelected = new i0.EventEmitter();
4936
+ this.personFieldChanged = new i0.EventEmitter();
4993
4937
  this.boldTitle = 'Find the person';
4994
4938
  this.subTitle = 'Type the name of the person and select them.';
4995
4939
  this.domain = PersonRole.ALL;
@@ -5136,14 +5080,23 @@
5136
5080
  return '';
5137
5081
  }
5138
5082
  if (selectedPerson.domain === PersonRole.JUDICIAL && selectedPerson.knownAs) {
5139
- return selectedPerson.knownAs + "(" + selectedPerson.email + ")";
5083
+ return selectedPerson.knownAs + " (" + selectedPerson.email + ")";
5140
5084
  }
5141
- return selectedPerson.email ? selectedPerson.name + "(" + selectedPerson.email + ")" : selectedPerson.name;
5085
+ return selectedPerson.email ? selectedPerson.name + " (" + selectedPerson.email + ")" : selectedPerson.name;
5086
+ };
5087
+ /**
5088
+ * @return {?}
5089
+ */
5090
+ FindPersonComponent.prototype.onInput = /**
5091
+ * @return {?}
5092
+ */
5093
+ function () {
5094
+ this.personFieldChanged.emit();
5142
5095
  };
5143
5096
  FindPersonComponent.decorators = [
5144
5097
  { type: i0.Component, args: [{
5145
5098
  selector: 'xuilib-find-person',
5146
- template: "<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findPersonGroup\"\n [ngClass]=\"{'form-group-error': findPersonGroup.get('findPersonControl').invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findPersonGroup && findPersonGroup.errors\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findPersonGroup.errors.error ? findPersonGroup.errors.error : errorMessage}}\n </span>\n <input id=\"inputSelectPerson{{idValue}}\" type=\"text\" aria-label=\"select a person\"\n formControlName=\"findPersonControl\"\n [matAutocomplete]=\"auto\"\n class=\"govuk-input govuk-!-width-one-third\"\n [placeholder]=\"placeholderContent\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onSelectionChange($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{getDisplayName(option)}}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && !filteredOptions.length && showAutocomplete\">No results found</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n",
5099
+ template: "<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findPersonGroup\"\n [ngClass]=\"{'form-group-error': findPersonGroup.get('findPersonControl').invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findPersonGroup && findPersonGroup.errors\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findPersonGroup.errors.error ? findPersonGroup.errors.error : errorMessage}}\n </span>\n <input id=\"inputSelectPerson{{idValue}}\" type=\"text\" aria-label=\"select a person\"\n formControlName=\"findPersonControl\"\n [matAutocomplete]=\"auto\"\n class=\"govuk-input govuk-!-width-one-third\"\n [placeholder]=\"placeholderContent\"\n [attr.disabled]=\"disabled\"\n (input)=\"onInput()\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onSelectionChange($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{getDisplayName(option)}}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && !filteredOptions.length && showAutocomplete\">No results found</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n",
5147
5100
  styles: [".mat-option:hover{background:#2596be}.mat-option.select-option:hover{background:#1d70b8;color:#fff}.hide-autocomplete{display:none}"]
5148
5101
  }] }
5149
5102
  ];
@@ -5156,6 +5109,7 @@
5156
5109
  };
5157
5110
  FindPersonComponent.propDecorators = {
5158
5111
  personSelected: [{ type: i0.Output }],
5112
+ personFieldChanged: [{ type: i0.Output }],
5159
5113
  title: [{ type: i0.Input }],
5160
5114
  boldTitle: [{ type: i0.Input }],
5161
5115
  subTitle: [{ type: i0.Input }],
@@ -5177,6 +5131,485 @@
5177
5131
  return FindPersonComponent;
5178
5132
  }());
5179
5133
 
5134
+ /**
5135
+ * @fileoverview added by tsickle
5136
+ * Generated from: lib/components/search-judicials/search-judicials.component.ts
5137
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5138
+ */
5139
+ var SearchJudicialsComponent = /** @class */ (function () {
5140
+ function SearchJudicialsComponent(judicialService, fb) {
5141
+ this.judicialService = judicialService;
5142
+ this.disabled = null;
5143
+ this.selectedJudicials = [];
5144
+ this.submitted = true;
5145
+ this.placeholderContent = '';
5146
+ this.showAutocomplete = false;
5147
+ this.judicialChanged = new i0.EventEmitter();
5148
+ this.idValue = '';
5149
+ this.errorMessage = 'You must select a name';
5150
+ this.serviceId = '';
5151
+ this.minSearchCharacters = 3;
5152
+ this.keyUpSubject$ = new rxjs.Subject();
5153
+ this.searchInProgress = false;
5154
+ this.formGroup = fb.group({
5155
+ formControl: [null],
5156
+ selectedFormControl: [null]
5157
+ });
5158
+ }
5159
+ /**
5160
+ * @return {?}
5161
+ */
5162
+ SearchJudicialsComponent.prototype.ngOnInit = /**
5163
+ * @return {?}
5164
+ */
5165
+ function () {
5166
+ var _this = this;
5167
+ this.displayedJudicials = [];
5168
+ if (this.control) {
5169
+ if (this.formGroup && this.formGroup.controls) {
5170
+ this.formGroup.controls.selectedFormControl = this.control;
5171
+ this.formGroup.controls.formControl.setValue(this.getControlValueDisplayText());
5172
+ }
5173
+ }
5174
+ this.keyUpSubject$.pipe(operators.debounceTime(500)).subscribe(( /**
5175
+ * @param {?} searchValue
5176
+ * @return {?}
5177
+ */function (searchValue) { return _this.search(( /** @type {?} */(searchValue))); }));
5178
+ };
5179
+ /**
5180
+ * @return {?}
5181
+ */
5182
+ SearchJudicialsComponent.prototype.onKeyDown = /**
5183
+ * @return {?}
5184
+ */
5185
+ function () {
5186
+ this.judicialChanged.emit();
5187
+ };
5188
+ /**
5189
+ * @param {?} event
5190
+ * @return {?}
5191
+ */
5192
+ SearchJudicialsComponent.prototype.onKeyUp = /**
5193
+ * @param {?} event
5194
+ * @return {?}
5195
+ */
5196
+ function (event) {
5197
+ this.showAutocomplete = false;
5198
+ this.keyUpSubject$.next(event.target.value);
5199
+ };
5200
+ /**
5201
+ * @return {?}
5202
+ */
5203
+ SearchJudicialsComponent.prototype.onFocus = /**
5204
+ * @return {?}
5205
+ */
5206
+ function () {
5207
+ this.showAutocomplete = false;
5208
+ };
5209
+ Object.defineProperty(SearchJudicialsComponent.prototype, "displayedJudicialsDuplicationFiltered", {
5210
+ get: /**
5211
+ * @return {?}
5212
+ */ function () {
5213
+ var _this = this;
5214
+ return this.displayedJudicials.filter(( /**
5215
+ * @param {?} judicial
5216
+ * @return {?}
5217
+ */function (judicial) {
5218
+ return !_this.selectedJudicials.map(( /**
5219
+ * @param {?} selectedJudicial
5220
+ * @return {?}
5221
+ */function (selectedJudicial) { return selectedJudicial.idamId; })).includes(judicial.idamId);
5222
+ }));
5223
+ },
5224
+ enumerable: true,
5225
+ configurable: true
5226
+ });
5227
+ /**
5228
+ * @param {?} term
5229
+ * @return {?}
5230
+ */
5231
+ SearchJudicialsComponent.prototype.filter = /**
5232
+ * @param {?} term
5233
+ * @return {?}
5234
+ */
5235
+ function (term) {
5236
+ var _this = this;
5237
+ this.searchJudicials(term, this.serviceId).pipe(operators.mergeMap(( /**
5238
+ * @param {?} apiData
5239
+ * @return {?}
5240
+ */function (apiData) {
5241
+ /** @type {?} */
5242
+ var apiFilter = apiData.filter(( /**
5243
+ * @param {?} apiJudicial
5244
+ * @return {?}
5245
+ */function (apiJudicial) {
5246
+ return !_this.selectedJudicials.map(( /**
5247
+ * @param {?} selectedJudicial
5248
+ * @return {?}
5249
+ */function (selectedJudicial) { return selectedJudicial.idamId; })).includes(apiJudicial.idamId);
5250
+ }));
5251
+ _this.displayedJudicials = apiFilter;
5252
+ _this.searchInProgress = false;
5253
+ return apiFilter;
5254
+ }))).subscribe(( /**
5255
+ * @param {?} judicial
5256
+ * @return {?}
5257
+ */function (judicial) {
5258
+ if (term === judicial.knownAs) {
5259
+ _this.formGroup.controls.selectedFormControl.setValue(judicial);
5260
+ _this.displayedJudicials = [];
5261
+ _this.judicialChanged.emit(judicial);
5262
+ _this.showAutocomplete = false;
5263
+ }
5264
+ _this.searchInProgress = false;
5265
+ }));
5266
+ };
5267
+ /**
5268
+ * @param {?=} selection
5269
+ * @return {?}
5270
+ */
5271
+ SearchJudicialsComponent.prototype.onSelectionChange = /**
5272
+ * @param {?=} selection
5273
+ * @return {?}
5274
+ */
5275
+ function (selection) {
5276
+ if (this.formGroup.controls.formControl instanceof forms.FormArray) {
5277
+ (( /** @type {?} */(this.formGroup.controls.selectedFormControl))).push(new forms.FormControl(selection.idamId));
5278
+ }
5279
+ else {
5280
+ this.formGroup.controls.selectedFormControl.setValue(selection);
5281
+ }
5282
+ this.judicialChanged.emit(selection);
5283
+ };
5284
+ /**
5285
+ * @param {?} currentValue
5286
+ * @return {?}
5287
+ */
5288
+ SearchJudicialsComponent.prototype.search = /**
5289
+ * @param {?} currentValue
5290
+ * @return {?}
5291
+ */
5292
+ function (currentValue) {
5293
+ this.searchInProgress = true;
5294
+ this.showAutocomplete = !!currentValue && (currentValue.length >= this.minSearchCharacters);
5295
+ if (!!currentValue) {
5296
+ this.formGroup.controls.selectedFormControl.markAsDirty();
5297
+ }
5298
+ else {
5299
+ this.formGroup.controls.selectedFormControl.reset();
5300
+ }
5301
+ if (this.showAutocomplete) {
5302
+ this.filter(currentValue);
5303
+ }
5304
+ else {
5305
+ this.searchInProgress = false;
5306
+ }
5307
+ };
5308
+ /**
5309
+ * @param {?} selectedJudicial
5310
+ * @return {?}
5311
+ */
5312
+ SearchJudicialsComponent.prototype.getDisplayName = /**
5313
+ * @param {?} selectedJudicial
5314
+ * @return {?}
5315
+ */
5316
+ function (selectedJudicial) {
5317
+ return selectedJudicial.knownAs + " (" + selectedJudicial.emailId + ")";
5318
+ };
5319
+ /**
5320
+ * @param {?} term
5321
+ * @param {?} serviceId
5322
+ * @return {?}
5323
+ */
5324
+ SearchJudicialsComponent.prototype.searchJudicials = /**
5325
+ * @param {?} term
5326
+ * @param {?} serviceId
5327
+ * @return {?}
5328
+ */
5329
+ function (term, serviceId) {
5330
+ return this.judicialService.searchJudicial(term, serviceId);
5331
+ };
5332
+ /**
5333
+ * @return {?}
5334
+ */
5335
+ SearchJudicialsComponent.prototype.getControlValueDisplayText = /**
5336
+ * @return {?}
5337
+ */
5338
+ function () {
5339
+ return this.formGroup && this.formGroup.controls && this.formGroup.controls.selectedFormControl.value ?
5340
+ this.getDisplayName(( /** @type {?} */(this.formGroup.controls.selectedFormControl.value))) : '';
5341
+ };
5342
+ SearchJudicialsComponent.decorators = [
5343
+ { type: i0.Component, args: [{
5344
+ selector: 'xuilib-search-judicials',
5345
+ template: "<div class=\"govuk-form-group\">\n <input id=\"inputSelectPerson{{idValue}}\" [placeholder]=\"placeholderContent\" [formControl]=\"formGroup.controls.formControl\"\n [matAutocomplete]=\"autoComplete\" (keydown)=\"onKeyDown()\" (keyup)=\"onKeyUp($event)\" (focus)=\"onFocus()\"\n class=\"govuk-input\" [attr.disabled]=\"!disabled ? null: disabled\" [value]=\"getControlValueDisplayText()\"\n #inputSelection>\n <mat-autocomplete autoActiveFirstOption #autoComplete=\"matAutocomplete\">\n <mat-option *ngFor=\"let judicial of displayedJudicialsDuplicationFiltered\" class=\"select-option\"\n [value]=\"getDisplayName(judicial)\" (onSelectionChange)=\"onSelectionChange(judicial)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete}\">\n {{ getDisplayName(judicial) }}\n </mat-option>\n <mat-option class=\"select-option\"\n *ngIf=\"!displayedJudicialsDuplicationFiltered?.length && showAutocomplete && !searchInProgress\">\n {{ 'No results found' }}</mat-option>\n </mat-autocomplete>\n</div>\n",
5346
+ styles: [".hide-autocomplete{display:none}.mat-option:hover{background:#2596be}.mat-option.select-option:hover{background:#1d70b8;color:#fff}"]
5347
+ }] }
5348
+ ];
5349
+ /** @nocollapse */
5350
+ SearchJudicialsComponent.ctorParameters = function () {
5351
+ return [
5352
+ { type: FindAPersonService },
5353
+ { type: forms.FormBuilder }
5354
+ ];
5355
+ };
5356
+ SearchJudicialsComponent.propDecorators = {
5357
+ control: [{ type: i0.Input }],
5358
+ disabled: [{ type: i0.Input }],
5359
+ selectedJudicials: [{ type: i0.Input }],
5360
+ submitted: [{ type: i0.Input }],
5361
+ placeholderContent: [{ type: i0.Input }],
5362
+ showAutocomplete: [{ type: i0.Input }],
5363
+ displayedJudicials: [{ type: i0.Input }],
5364
+ judicialChanged: [{ type: i0.Output }],
5365
+ idValue: [{ type: i0.Input }],
5366
+ errorMessage: [{ type: i0.Input }],
5367
+ serviceId: [{ type: i0.Input }],
5368
+ autoCompleteInputBox: [{ type: i0.ViewChild, args: ['inputSelection', { read: i0.ElementRef },] }]
5369
+ };
5370
+ return SearchJudicialsComponent;
5371
+ }());
5372
+
5373
+ /**
5374
+ * @fileoverview added by tsickle
5375
+ * Generated from: lib/components/search-venue/search-venue.component.ts
5376
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5377
+ */
5378
+ var SearchVenueComponent = /** @class */ (function () {
5379
+ function SearchVenueComponent(locationService, fb) {
5380
+ this.locationService = locationService;
5381
+ this.disabled = null;
5382
+ this.locationType = '';
5383
+ this.serviceIds = '';
5384
+ this.submitted = true;
5385
+ this.showAutocomplete = false;
5386
+ this.locationChanged = new i0.EventEmitter();
5387
+ this.minSearchCharacters = 3;
5388
+ this.keyUpSubject$ = new rxjs.Subject();
5389
+ this.readyAfterContent = false;
5390
+ this.searchInProgress = false;
5391
+ this.findLocationFormGroup = fb.group({
5392
+ findLocationFormControl: [null],
5393
+ locationSelectedFormControl: [null]
5394
+ });
5395
+ this.selectedLocations = [];
5396
+ }
5397
+ /**
5398
+ * @return {?}
5399
+ */
5400
+ SearchVenueComponent.prototype.ngAfterContentInit = /**
5401
+ * @return {?}
5402
+ */
5403
+ function () {
5404
+ this.readyAfterContent = true;
5405
+ };
5406
+ /**
5407
+ * @return {?}
5408
+ */
5409
+ SearchVenueComponent.prototype.ngOnInit = /**
5410
+ * @return {?}
5411
+ */
5412
+ function () {
5413
+ var _this = this;
5414
+ this.displayedLocations = [];
5415
+ if (this.control) {
5416
+ if (this.findLocationFormGroup && this.findLocationFormGroup.controls) {
5417
+ this.findLocationFormGroup.controls.locationSelectedFormControl = this.control;
5418
+ }
5419
+ }
5420
+ this.keyUpSubject$.pipe(operators.debounceTime(500)).subscribe(( /**
5421
+ * @param {?} searchValue
5422
+ * @return {?}
5423
+ */function (searchValue) { return _this.search(( /** @type {?} */(searchValue))); }));
5424
+ };
5425
+ /**
5426
+ * @return {?}
5427
+ */
5428
+ SearchVenueComponent.prototype.onKeyDown = /**
5429
+ * @return {?}
5430
+ */
5431
+ function () {
5432
+ this.locationChanged.emit();
5433
+ };
5434
+ /**
5435
+ * @param {?} event
5436
+ * @return {?}
5437
+ */
5438
+ SearchVenueComponent.prototype.onKeyUp = /**
5439
+ * @param {?} event
5440
+ * @return {?}
5441
+ */
5442
+ function (event) {
5443
+ this.showAutocomplete = false;
5444
+ this.keyUpSubject$.next(event.target.value);
5445
+ };
5446
+ /**
5447
+ * @return {?}
5448
+ */
5449
+ SearchVenueComponent.prototype.onFocus = /**
5450
+ * @return {?}
5451
+ */
5452
+ function () {
5453
+ this.showAutocomplete = false;
5454
+ };
5455
+ Object.defineProperty(SearchVenueComponent.prototype, "displayedLocationsDuplicationFiltered", {
5456
+ get: /**
5457
+ * @return {?}
5458
+ */ function () {
5459
+ var _this = this;
5460
+ return this.displayedLocations.filter(( /**
5461
+ * @param {?} location
5462
+ * @return {?}
5463
+ */function (location) {
5464
+ return !_this.selectedLocations.map(( /**
5465
+ * @param {?} selectedLocation
5466
+ * @return {?}
5467
+ */function (selectedLocation) { return selectedLocation.epimms_id; })).includes(location.epimms_id) && location.court_name;
5468
+ }));
5469
+ },
5470
+ enumerable: true,
5471
+ configurable: true
5472
+ });
5473
+ /**
5474
+ * @param {?} term
5475
+ * @return {?}
5476
+ */
5477
+ SearchVenueComponent.prototype.filter = /**
5478
+ * @param {?} term
5479
+ * @return {?}
5480
+ */
5481
+ function (term) {
5482
+ var _this = this;
5483
+ this.searchLocations(term).pipe(operators.mergeMap(( /**
5484
+ * @param {?} apiData
5485
+ * @return {?}
5486
+ */function (apiData) {
5487
+ /** @type {?} */
5488
+ var apiFilter = apiData.filter(( /**
5489
+ * @param {?} apiLocation
5490
+ * @return {?}
5491
+ */function (apiLocation) {
5492
+ return !_this.selectedLocations.map(( /**
5493
+ * @param {?} selectedLocation
5494
+ * @return {?}
5495
+ */function (selectedLocation) { return selectedLocation.epimms_id; })).includes(apiLocation.epimms_id);
5496
+ }));
5497
+ _this.displayedLocations = apiFilter;
5498
+ _this.searchInProgress = false;
5499
+ return apiFilter;
5500
+ }))).subscribe(( /**
5501
+ * @param {?} location
5502
+ * @return {?}
5503
+ */function (location) {
5504
+ if (term === location.court_name) {
5505
+ _this.findLocationFormGroup.controls.locationSelectedFormControl.setValue(location);
5506
+ _this.displayedLocations = [];
5507
+ _this.locationChanged.emit(location);
5508
+ _this.showAutocomplete = false;
5509
+ }
5510
+ _this.searchInProgress = false;
5511
+ }));
5512
+ };
5513
+ /**
5514
+ * @param {?=} selection
5515
+ * @return {?}
5516
+ */
5517
+ SearchVenueComponent.prototype.onSelectionChange = /**
5518
+ * @param {?=} selection
5519
+ * @return {?}
5520
+ */
5521
+ function (selection) {
5522
+ if (this.findLocationFormGroup.controls.findLocationFormControl instanceof forms.FormArray) {
5523
+ (( /** @type {?} */(this.findLocationFormGroup.controls.locationSelectedFormControl))).push(new forms.FormControl(selection.epimms_id));
5524
+ }
5525
+ else {
5526
+ this.findLocationFormGroup.controls.locationSelectedFormControl.setValue(selection);
5527
+ }
5528
+ this.locationChanged.emit(selection);
5529
+ };
5530
+ /**
5531
+ * @param {?} currentValue
5532
+ * @return {?}
5533
+ */
5534
+ SearchVenueComponent.prototype.search = /**
5535
+ * @param {?} currentValue
5536
+ * @return {?}
5537
+ */
5538
+ function (currentValue) {
5539
+ this.searchInProgress = true;
5540
+ this.showAutocomplete = !!currentValue && (currentValue.length >= this.minSearchCharacters);
5541
+ if (!currentValue || !currentValue.length) {
5542
+ this.findLocationFormGroup.controls.locationSelectedFormControl.markAsPristine();
5543
+ this.findLocationFormGroup.controls.locationSelectedFormControl.reset();
5544
+ }
5545
+ if (this.showAutocomplete) {
5546
+ this.filter(currentValue);
5547
+ }
5548
+ else {
5549
+ this.searchInProgress = false;
5550
+ }
5551
+ };
5552
+ /**
5553
+ * @param {?} selectedLocation
5554
+ * @return {?}
5555
+ */
5556
+ SearchVenueComponent.prototype.getDisplayName = /**
5557
+ * @param {?} selectedLocation
5558
+ * @return {?}
5559
+ */
5560
+ function (selectedLocation) {
5561
+ return selectedLocation.court_name;
5562
+ };
5563
+ /**
5564
+ * @param {?} term
5565
+ * @return {?}
5566
+ */
5567
+ SearchVenueComponent.prototype.searchLocations = /**
5568
+ * @param {?} term
5569
+ * @return {?}
5570
+ */
5571
+ function (term) {
5572
+ return this.locationService.searchLocations(this.serviceIds, this.locationType, term);
5573
+ };
5574
+ /**
5575
+ * @return {?}
5576
+ */
5577
+ SearchVenueComponent.prototype.getControlCourtNameValue = /**
5578
+ * @return {?}
5579
+ */
5580
+ function () {
5581
+ return this.findLocationFormGroup && this.findLocationFormGroup.controls && this.findLocationFormGroup.controls.locationSelectedFormControl.value ?
5582
+ (( /** @type {?} */(this.findLocationFormGroup.controls.locationSelectedFormControl.value))).court_name : '';
5583
+ };
5584
+ SearchVenueComponent.decorators = [
5585
+ { type: i0.Component, args: [{
5586
+ selector: 'xuilib-search-venue',
5587
+ template: "<div class=\"auto-complete-container\">\n <div *ngIf=\"readyAfterContent\" class=\"autocomplete__wrapper\">\n <input\n [formControl]=\"findLocationFormGroup.controls.findLocationFormControl\"\n [matAutocomplete]=\"autoSearchLocation\"\n (keydown)=\"onKeyDown()\"\n (keyup)=\"onKeyUp($event)\"\n (focus)=\"onFocus()\"\n class=\"autocomplete__input autocomplete__input--default search-box\"\n [attr.disabled]=\"!disabled ? null: disabled\"\n [value]=\"getControlCourtNameValue()\"\n #inputSelectedLocation>\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n <mat-option *ngFor=\"let location of displayedLocationsDuplicationFiltered\"\n [value]=\"getDisplayName(location)\"\n (onSelectionChange)=\"onSelectionChange(location)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete}\">\n {{ getDisplayName(location) }}\n </mat-option>\n <mat-option *ngIf=\"!displayedLocationsDuplicationFiltered?.length && showAutocomplete && !searchInProgress\">{{ 'No results found' }}</mat-option>\n </mat-autocomplete>\n </div>\n</div>\n",
5588
+ styles: [".autocomplete__input{-webkit-appearance:none;border:2px solid #0b0c0c;border-radius:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin-bottom:0;width:100%;background-color:transparent;position:relative}.autocomplete__hint{color:#b1b4b6;position:absolute}.autocomplete__input--default{padding:5px}.autocomplete__input--focused{outline:#fd0 solid 3px;outline-offset:0;box-shadow:inset 0 0 0 2px}.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:rgba(0,0,0,.256863) 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-bottom:solid #b1b4b6;border-width:1px 0;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:550px;display:inline-block;margin-right:4px}"]
5589
+ }] }
5590
+ ];
5591
+ /** @nocollapse */
5592
+ SearchVenueComponent.ctorParameters = function () {
5593
+ return [
5594
+ { type: LocationService },
5595
+ { type: forms.FormBuilder }
5596
+ ];
5597
+ };
5598
+ SearchVenueComponent.propDecorators = {
5599
+ control: [{ type: i0.Input }],
5600
+ disabled: [{ type: i0.Input }],
5601
+ locationType: [{ type: i0.Input }],
5602
+ selectedLocations: [{ type: i0.Input }],
5603
+ serviceIds: [{ type: i0.Input }],
5604
+ submitted: [{ type: i0.Input }],
5605
+ autoCompleteInputBox: [{ type: i0.ViewChild, args: ['inputSelectedLocation', { read: i0.ElementRef },] }],
5606
+ showAutocomplete: [{ type: i0.Input }],
5607
+ displayedLocations: [{ type: i0.Input }],
5608
+ locationChanged: [{ type: i0.Output }]
5609
+ };
5610
+ return SearchVenueComponent;
5611
+ }());
5612
+
5180
5613
  /**
5181
5614
  * @fileoverview added by tsickle
5182
5615
  * Generated from: lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.ts
@@ -6074,6 +6507,39 @@
6074
6507
  return HmctsMainWrapperComponent;
6075
6508
  }());
6076
6509
 
6510
+ /**
6511
+ * @fileoverview added by tsickle
6512
+ * Generated from: lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.ts
6513
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
6514
+ */
6515
+ var HmctsPaginationComponent = /** @class */ (function () {
6516
+ function HmctsPaginationComponent() {
6517
+ this.maxSize = 7;
6518
+ this.pageSize = 10;
6519
+ this.showPageNumbers = true;
6520
+ this.showResultCount = true;
6521
+ this.pageChange = new i0.EventEmitter();
6522
+ this.pageBoundsCorrection = new i0.EventEmitter();
6523
+ }
6524
+ HmctsPaginationComponent.decorators = [
6525
+ { type: i0.Component, args: [{
6526
+ selector: 'xuilib-hmcts-pagination',
6527
+ template: "<pagination-template #p=\"paginationApi\" [id]=\"id\" [maxSize]=\"maxSize\" (pageChange)=\"pageChange.emit($event)\"\n (pageBoundsCorrection)=\"pageBoundsCorrection.emit($event)\">\n\n <nav class=\"hmcts-pagination\" id=\"pagination-label\">\n <p class=\"govuk-visually-hidden\" aria-labelledby=\"pagination-label\">Pagination navigation</p>\n <ul class=\"hmcts-pagination__list\" *ngIf=\"!(p.pages.length <= 1)\">\n\n <li class=\"hmcts-pagination__item hmcts-pagination__item--prev\" [class.disabled]=\"p.isFirstPage()\">\n <a [routerLink]=\"\" class=\"hmcts-pagination__link\" *ngIf=\"1 < p.getCurrent()\" (keyup.enter)=\"p.previous()\"\n (click)=\"p.previous()\">Previous <span class=\"govuk-visually-hidden\">set of pages</span></a>\n </li>\n\n <ng-container *ngIf=\"showPageNumbers\">\n <li class=\"hmcts-pagination__item\" [class.hmcts-pagination__item--active]=\"p.getCurrent() === page.value\"\n [class.hmcts-pagination__item--dots]=\"page.label === '...'\" *ngFor=\"let page of p.pages\">\n <a class=\"hmcts-pagination__link\" [routerLink]=\"\" (keyup.enter)=\"p.setCurrent(page.value)\"\n (click)=\"p.setCurrent(page.value)\" *ngIf=\"p.getCurrent() !== page.value\">\n <span class=\"govuk-visually-hidden\">page </span>\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n </a>\n <ng-container *ngIf=\"p.getCurrent() === page.value\">\n <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n </ng-container>\n </li>\n </ng-container>\n\n <li class=\"hmcts-pagination__item hmcts-pagination__item--next\" [class.disabled]=\"p.isLastPage()\">\n <a [routerLink]=\"\" class=\"hmcts-pagination__link\" *ngIf=\"!p.isLastPage()\" (keyup.enter)=\"p.next()\"\n (click)=\"p.next()\">Next<span class=\"govuk-visually-hidden\"> page</span></a>\n </li>\n\n </ul>\n <p class=\"hmcts-pagination__results\" *ngIf=\"showResultCount\">Showing <b>{{(p.getCurrent() * pageSize) - pageSize + 1}}</b>\n to <b>{{ p.getCurrent() * pageSize > p.getTotalItems() ? p.getTotalItems() : p.getCurrent() *\n pageSize}}</b> of <b>{{p.getTotalItems()}}</b> results</p>\n </nav>\n\n</pagination-template>",
6528
+ styles: [".hmcts-pagination__results{float:right}"]
6529
+ }] }
6530
+ ];
6531
+ HmctsPaginationComponent.propDecorators = {
6532
+ id: [{ type: i0.Input }],
6533
+ maxSize: [{ type: i0.Input }],
6534
+ pageSize: [{ type: i0.Input }],
6535
+ showPageNumbers: [{ type: i0.Input }],
6536
+ showResultCount: [{ type: i0.Input }],
6537
+ pageChange: [{ type: i0.Output }],
6538
+ pageBoundsCorrection: [{ type: i0.Output }]
6539
+ };
6540
+ return HmctsPaginationComponent;
6541
+ }());
6542
+
6077
6543
  /**
6078
6544
  * @fileoverview added by tsickle
6079
6545
  * Generated from: lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.ts
@@ -6212,14 +6678,16 @@
6212
6678
  GenericFilterComponent,
6213
6679
  CookieBannerComponent,
6214
6680
  FindPersonComponent,
6215
- PaginationComponent,
6216
- PaginationV1Component,
6681
+ SearchJudicialsComponent,
6217
6682
  FindLocationComponent,
6218
- SearchLocationComponent
6683
+ SearchLocationComponent,
6684
+ SearchVenueComponent,
6685
+ PaginationComponent
6219
6686
  ];
6220
6687
  /** @type {?} */
6221
6688
  var GOV_UI_COMPONENTS = [
6222
6689
  HmctsIdentityBarComponent,
6690
+ HmctsPaginationComponent,
6223
6691
  HmctsSubNavigationComponent,
6224
6692
  HmctsPrimaryNavigationComponent,
6225
6693
  HmctsErrorSummaryComponent,
@@ -6254,8 +6722,8 @@
6254
6722
  forms.ReactiveFormsModule,
6255
6723
  i2$2.RouterModule.forChild([]),
6256
6724
  autocomplete.MatAutocompleteModule,
6257
- tabs.MatTabsModule,
6258
- input.MatInputModule,
6725
+ material.MatTabsModule,
6726
+ material.MatInputModule,
6259
6727
  ngxPagination.NgxPaginationModule
6260
6728
  ],
6261
6729
  providers: [
@@ -7294,7 +7762,6 @@
7294
7762
  exports.FindLocationComponent = FindLocationComponent;
7295
7763
  exports.SearchLocationComponent = SearchLocationComponent;
7296
7764
  exports.PaginationComponent = PaginationComponent;
7297
- exports.PaginationV1Component = PaginationV1Component;
7298
7765
  exports.FeatureToggleDirective = FeatureToggleDirective;
7299
7766
  exports.LetContext = LetContext;
7300
7767
  exports.LetDirective = LetDirective;
@@ -7336,16 +7803,17 @@
7336
7803
  exports.ɵbf = CookieBannerComponent;
7337
7804
  exports.ɵy = DueDateComponent;
7338
7805
  exports.ɵa = ExuiPageWrapperComponent;
7339
- exports.ɵbm = FindLocationComponent;
7806
+ exports.ɵbl = FindLocationComponent;
7340
7807
  exports.ɵbh = FindPersonComponent;
7341
7808
  exports.ɵbd = GenericFilterComponent;
7342
7809
  exports.ɵk = HmctsSessionDialogComponent;
7343
7810
  exports.ɵo = InviteUserFormComponent;
7344
7811
  exports.ɵn = InviteUserPermissionComponent;
7345
7812
  exports.ɵbc = LoadingSpinnerComponent;
7346
- exports.ɵbl = PaginationV1Component;
7347
- exports.ɵbk = PaginationComponent;
7348
- exports.ɵbn = SearchLocationComponent;
7813
+ exports.ɵbp = PaginationComponent;
7814
+ exports.ɵbk = SearchJudicialsComponent;
7815
+ exports.ɵbm = SearchLocationComponent;
7816
+ exports.ɵbo = SearchVenueComponent;
7349
7817
  exports.ɵv = SelectedCaseConfirmComponent;
7350
7818
  exports.ɵt = SelectedCaseListComponent;
7351
7819
  exports.ɵu = SelectedCaseComponent;
@@ -7364,33 +7832,34 @@
7364
7832
  exports.ɵg = FeatureToggleDirective;
7365
7833
  exports.ɵi = LetContext;
7366
7834
  exports.ɵj = LetDirective;
7367
- exports.ɵbx = GovUkCheckboxComponent;
7368
- exports.ɵcd = GovUkCheckboxesComponent;
7369
- exports.ɵcc = GovUkDateComponent;
7370
- exports.ɵca = GovUkErrorMessageComponent;
7371
- exports.ɵcb = GovUkFieldsetComponent;
7372
- exports.ɵci = GovUkFileUploadComponent;
7373
- exports.ɵby = GovUkFormGroupWrapperComponent;
7374
- exports.ɵbw = GovUkInputComponent;
7375
- exports.ɵbz = GovUkLabelComponent;
7376
- exports.ɵce = GovUkRadioComponent;
7377
- exports.ɵcf = GovUkRadiosComponent;
7378
- exports.ɵcg = GovUkSelectComponent;
7379
- exports.ɵbv = GovukTableComponent;
7380
- exports.ɵch = GovUkTextareaComponent;
7381
- exports.ɵbu = HmctsBannerComponent;
7382
- exports.ɵbs = HmctsErrorSummaryComponent;
7383
- exports.ɵbp = HmctsIdentityBarComponent;
7384
- exports.ɵbt = HmctsMainWrapperComponent;
7385
- exports.ɵbr = HmctsPrimaryNavigationComponent;
7386
- exports.ɵbq = HmctsSubNavigationComponent;
7387
- exports.ɵcj = RemoveHostDirective;
7835
+ exports.ɵbz = GovUkCheckboxComponent;
7836
+ exports.ɵcf = GovUkCheckboxesComponent;
7837
+ exports.ɵce = GovUkDateComponent;
7838
+ exports.ɵcc = GovUkErrorMessageComponent;
7839
+ exports.ɵcd = GovUkFieldsetComponent;
7840
+ exports.ɵck = GovUkFileUploadComponent;
7841
+ exports.ɵca = GovUkFormGroupWrapperComponent;
7842
+ exports.ɵby = GovUkInputComponent;
7843
+ exports.ɵcb = GovUkLabelComponent;
7844
+ exports.ɵcg = GovUkRadioComponent;
7845
+ exports.ɵch = GovUkRadiosComponent;
7846
+ exports.ɵci = GovUkSelectComponent;
7847
+ exports.ɵbx = GovukTableComponent;
7848
+ exports.ɵcj = GovUkTextareaComponent;
7849
+ exports.ɵbw = HmctsBannerComponent;
7850
+ exports.ɵbu = HmctsErrorSummaryComponent;
7851
+ exports.ɵbq = HmctsIdentityBarComponent;
7852
+ exports.ɵbv = HmctsMainWrapperComponent;
7853
+ exports.ɵbr = HmctsPaginationComponent;
7854
+ exports.ɵbt = HmctsPrimaryNavigationComponent;
7855
+ exports.ɵbs = HmctsSubNavigationComponent;
7856
+ exports.ɵcl = RemoveHostDirective;
7388
7857
  exports.ɵr = CaseSharingStateService;
7389
7858
  exports.ɵbg = CookieService;
7390
7859
  exports.ɵh = FeatureToggleService;
7391
7860
  exports.ɵbe = FilterService;
7392
7861
  exports.ɵbi = FindAPersonService;
7393
- exports.ɵbo = LocationService;
7862
+ exports.ɵbn = LocationService;
7394
7863
  exports.ɵbj = SessionStorageService;
7395
7864
 
7396
7865
  Object.defineProperty(exports, '__esModule', { value: true });