@hmcts/rpx-xui-common-lib 1.7.31 → 1.7.40

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 (47) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +153 -63
  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/lib/components/generic-filter/generic-filter-utils.js +2 -2
  6. package/esm2015/lib/components/generic-filter/generic-filter.component.js +3 -3
  7. package/esm2015/lib/components/share-case/share-case.component.js +10 -3
  8. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +80 -6
  9. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +3 -3
  10. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +3 -2
  11. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +1 -1
  12. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +2 -2
  13. package/esm2015/lib/gov-ui/models/checkboxes-model.js +6 -8
  14. package/esm2015/lib/gov-ui/models/gov-ui-config-model.js +5 -1
  15. package/esm2015/lib/gov-ui/models/radio-buttons.model.js +22 -0
  16. package/esm2015/lib/models/filter.model.js +1 -1
  17. package/esm2015/lib/models/person.model.js +3 -1
  18. package/esm5/lib/components/generic-filter/generic-filter-utils.js +2 -2
  19. package/esm5/lib/components/generic-filter/generic-filter.component.js +3 -3
  20. package/esm5/lib/components/share-case/share-case.component.js +10 -3
  21. package/esm5/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +100 -6
  22. package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +3 -3
  23. package/esm5/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +3 -2
  24. package/esm5/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +1 -1
  25. package/esm5/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +2 -2
  26. package/esm5/lib/gov-ui/models/checkboxes-model.js +6 -8
  27. package/esm5/lib/gov-ui/models/gov-ui-config-model.js +5 -1
  28. package/esm5/lib/gov-ui/models/radio-buttons.model.js +22 -0
  29. package/esm5/lib/models/filter.model.js +1 -1
  30. package/esm5/lib/models/person.model.js +3 -1
  31. package/fesm2015/hmcts-rpx-xui-common-lib.js +116 -44
  32. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  33. package/fesm5/hmcts-rpx-xui-common-lib.js +155 -64
  34. package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -1
  35. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  36. package/lib/components/share-case/share-case.component.d.ts +2 -0
  37. package/lib/exui-common-lib.module.d.ts +2 -2
  38. package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +14 -5
  39. package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +1 -2
  40. package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +1 -0
  41. package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +2 -2
  42. package/lib/gov-ui/models/checkboxes-model.d.ts +4 -7
  43. package/lib/gov-ui/models/gov-ui-config-model.d.ts +2 -0
  44. package/lib/gov-ui/models/radio-buttons.model.d.ts +9 -0
  45. package/lib/models/filter.model.d.ts +1 -1
  46. package/lib/models/person.model.d.ts +2 -0
  47. package/package.json +1 -1
@@ -813,7 +813,7 @@
813
813
  return values.length && values.filter(( /**
814
814
  * @param {?} value
815
815
  * @return {?}
816
- */function (value) { return value; })).length >= min ? null : { minLength: true };
816
+ */function (value) { return value; })).length >= min ? null : { minlength: true };
817
817
  });
818
818
  }
819
819
  /**
@@ -1640,7 +1640,7 @@
1640
1640
  var field = _c.value;
1641
1641
  /** @type {?} */
1642
1642
  var formGroup = form.get(field.name);
1643
- if (formGroup && formGroup.errors && formGroup.errors.minLength) {
1643
+ if (formGroup && formGroup.errors && formGroup.errors.minlength) {
1644
1644
  errors.push({ name: field.name, error: field.minSelectedError });
1645
1645
  }
1646
1646
  if (formGroup && formGroup.errors && formGroup.errors.maxLength) {
@@ -1668,7 +1668,7 @@
1668
1668
  GenericFilterComponent.decorators = [
1669
1669
  { type: i0.Component, args: [{
1670
1670
  selector: 'xuilib-generic-filter',
1671
- 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.enableAddButton\"\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 <ng-container *ngSwitchCase=\"'find-service'\">\n <xuilib-find-service (serviceFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [title]=\"field.title\"\n [enableAddServiceButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [selectedServices]=\"form.get(field.name)?.value\" \n [field]=\"field\"\n ></xuilib-find-service>\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",
1671
+ 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.enableAddButton\"\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 <ng-container *ngSwitchCase=\"'find-service'\">\n <xuilib-find-service (serviceFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [title]=\"field.title\"\n [enableAddServiceButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [selectedServices]=\"form.get(field.name)?.value\"\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 />\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",
1672
1672
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1673
1673
  encapsulation: i0.ViewEncapsulation.None,
1674
1674
  styles: [".contain-classes .elevated-break{margin-bottom:20px}@media (min-width:40.0625em){.contain-classes .elevated-break{margin-bottom:30px}}.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 .govuk-select{width:100%}"]
@@ -3071,6 +3071,7 @@
3071
3071
  this.users = []; // users of this organisation the cases can be shared with
3072
3072
  // users of this organisation the cases can be shared with
3073
3073
  this.confirmLink = '';
3074
+ this.showRemoveUsers = false;
3074
3075
  this.unselect = new i0.EventEmitter();
3075
3076
  this.synchronizeStore = new i0.EventEmitter();
3076
3077
  }
@@ -3233,8 +3234,8 @@
3233
3234
  ShareCaseComponent.decorators = [
3234
3235
  { type: i0.Component, args: [{
3235
3236
  selector: 'xuilib-share-case',
3236
- template: "<div id=\"add-user\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"add-user-input\">Enter email address</label>\n <span id=\"add-user-hint\" class=\"govuk-hint\">\n Search by name or email address. You can only add people from your organisation individually - but you can add as many as you like.\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-user-select\n id=\"add-user-input\"\n aria-describedby=\"add-user-hint\"\n [users]=\"users\"\n (selected)=\"onSelectedUser($event)\">\n </xuilib-user-select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-add-user\" (click)=\"addUser()\" class=\"govuk-button\" [disabled]=\"isDisabledAdd()\" title=\"Add user to the case\">Add</button>\n </div>\n </div>\n <details id=\"add-user-help\" class=\"govuk-details\" data-module=\"govuk-details\">\n <summary class=\"govuk-details__summary\">\n <span id=\"content-why-can-not-find-email\" class=\"govuk-details__summary-text\">\n Can\u2019t find an email address?\n </span>\n </summary>\n <div id=\"content-reason-can-not-find-email\" class=\"govuk-details__text\">\n If you can\u2019t find your colleague\u2019s email address, they will need to complete their registration. Contact your\n administrator for help.\n </div>\n </details>\n</div>\n\n<div id=\"cases\">\n <h3 id=\"title-selected-cases\" class=\"govuk-heading-m\">Selected cases</h3>\n <div *ngIf=\"shareCases && shareCases.length > 0\" class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-with-summary-sections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\">\n No cases to display.\n </div>\n\n</div>\n\n<div id=\"share-case-nav\">\n <button class=\"govuk-button\" [disabled]=\"isDisabledContinue()\" title=\"Continue\" [routerLink]=\"confirmLink\">Continue</button>\n</div>\n",
3237
- styles: [""]
3237
+ template: "<div id=\"add-user\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"add-user-input\">{{addUserLabel}}</label>\n <span id=\"add-user-hint\" class=\"govuk-hint\">\n Search by name or email address. You can share access with as many people as you need.\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-user-select\n id=\"add-user-input\"\n aria-describedby=\"add-user-hint\"\n [users]=\"users\"\n (selected)=\"onSelectedUser($event)\">\n </xuilib-user-select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-add-user\" (click)=\"addUser()\" class=\"govuk-button govuk-button--secondary\" [disabled]=\"isDisabledAdd()\" title=\"Add user to selected cases\">Add</button>\n </div>\n </div>\n <details id=\"add-user-help\" class=\"govuk-details\" data-module=\"govuk-details\">\n <summary class=\"govuk-details__summary\">\n <span id=\"content-why-can-not-find-email\" class=\"govuk-details__summary-text\">\n Can't find an email address?\n </span>\n </summary>\n <div id=\"content-reason-can-not-find-email\" class=\"govuk-details__text\">\n If you can't find your colleague's email address, they will need to complete their registration. Contact your\n administrator for help.\n </div>\n </details>\n </div>\n <div class=\"govuk-form-group\" *ngIf=\"showRemoveUsers\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"remove-user-input\">Remove a person from all cases</label>\n <span id=\"remove-user-hint\" class=\"govuk-hint\">\n Select a person to remove them from all selected cases.\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <select class=\"govuk-select\" id=\"remove-user-input\" aria-describedby=\"remove-user-hint\">\n <option value=\"{{user}}\" *ngFor=\"let user of users\">{{user.email}}</option>\n </select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-remove-user\" class=\"govuk-button govuk-button--secondary\" title=\"Remove user from selected cases\">Remove</button>\n </div>\n </div>\n </div>\n</div>\n\n<div id=\"cases\">\n <h3 id=\"title-selected-cases\" class=\"govuk-heading-m\">Selected cases</h3>\n <div *ngIf=\"shareCases && shareCases.length > 0\" class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-with-summary-sections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\">\n No cases to display.\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" class=\"govuk-button-group\">\n <button class=\"govuk-button\" data-module=\"govuk-button\" [disabled]=\"isDisabledContinue()\" title=\"Continue\" [routerLink]=\"confirmLink\">Continue</button>\n <button class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" title=\"Cancel\">Cancel</button>\n</div>\n",
3238
+ styles: ["select{width:100%}"]
3238
3239
  }] }
3239
3240
  ];
3240
3241
  /** @nocollapse */
@@ -3248,6 +3249,8 @@
3248
3249
  shareCases$: [{ type: i0.Input }],
3249
3250
  users: [{ type: i0.Input }],
3250
3251
  confirmLink: [{ type: i0.Input }],
3252
+ addUserLabel: [{ type: i0.Input }],
3253
+ showRemoveUsers: [{ type: i0.Input }],
3251
3254
  unselect: [{ type: i0.Output }],
3252
3255
  synchronizeStore: [{ type: i0.Output }],
3253
3256
  userSelect: [{ type: i0.ViewChild, args: [UserSelectComponent,] }]
@@ -3833,6 +3836,7 @@
3833
3836
  JUDICIAL: "Judicial",
3834
3837
  CASEWORKER: "Legal Ops",
3835
3838
  ADMIN: "Admin",
3839
+ CTSC: "CTSC User",
3836
3840
  ALL: "All",
3837
3841
  };
3838
3842
  /** @enum {string} */
@@ -3840,6 +3844,7 @@
3840
3844
  JUDICIAL: "JUDICIAL",
3841
3845
  CASEWORKER: "LEGAL_OPERATIONS",
3842
3846
  ADMIN: "ADMIN",
3847
+ CTSC: "CTSC",
3843
3848
  ALL: "ALL",
3844
3849
  };
3845
3850
 
@@ -5822,6 +5827,57 @@
5822
5827
  return GovUkCheckboxComponent;
5823
5828
  }());
5824
5829
 
5830
+ /**
5831
+ * @fileoverview added by tsickle
5832
+ * Generated from: lib/gov-ui/util/helpers/html-templates.helper.ts
5833
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5834
+ */
5835
+ /*
5836
+ * Helper Class
5837
+ * Used for dynamic templates manipulation
5838
+ * */
5839
+ var /*
5840
+ * Helper Class
5841
+ * Used for dynamic templates manipulation
5842
+ * */ HtmlTemplatesHelper = /** @class */ (function () {
5843
+ function HtmlTemplatesHelper() {
5844
+ }
5845
+ /*
5846
+ * Sets described by string depending if
5847
+ * there is an error, error and hit or nothing
5848
+ * */
5849
+ /*
5850
+ * Sets described by string depending if
5851
+ * there is an error, error and hit or nothing
5852
+ * */
5853
+ /**
5854
+ * @param {?} errorMessage
5855
+ * @param {?} config
5856
+ * @return {?}
5857
+ */
5858
+ HtmlTemplatesHelper.setDescribedBy = /*
5859
+ * Sets described by string depending if
5860
+ * there is an error, error and hit or nothing
5861
+ * */
5862
+ /**
5863
+ * @param {?} errorMessage
5864
+ * @param {?} config
5865
+ * @return {?}
5866
+ */
5867
+ function (errorMessage, config) {
5868
+ if (!errorMessage) {
5869
+ return config.hint ? config.id + "-hint" : null;
5870
+ }
5871
+ else if (errorMessage && errorMessage.isInvalid) {
5872
+ return config.hint ? config.id + "-hint " + config.id + "-error" : config.id + "-error";
5873
+ }
5874
+ else {
5875
+ return config.hint ? config.id + "-hint" : null;
5876
+ }
5877
+ };
5878
+ return HtmlTemplatesHelper;
5879
+ }());
5880
+
5825
5881
  /**
5826
5882
  * @fileoverview added by tsickle
5827
5883
  * Generated from: lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.ts
@@ -5837,15 +5893,99 @@
5837
5893
  var GovUkCheckboxesComponent = /** @class */ (function () {
5838
5894
  function GovUkCheckboxesComponent() {
5839
5895
  }
5896
+ /**
5897
+ * @return {?}
5898
+ */
5899
+ GovUkCheckboxesComponent.prototype.ngOnInit = /**
5900
+ * @return {?}
5901
+ */
5902
+ function () {
5903
+ this.columns = this.setColumns();
5904
+ };
5905
+ /**
5906
+ * @return {?}
5907
+ */
5908
+ GovUkCheckboxesComponent.prototype.setDescribedBy = /**
5909
+ * @return {?}
5910
+ */
5911
+ function () {
5912
+ return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);
5913
+ };
5914
+ /**
5915
+ * @param {?} checked
5916
+ * @param {?} value
5917
+ * @return {?}
5918
+ */
5919
+ GovUkCheckboxesComponent.prototype.onChecked = /**
5920
+ * @param {?} checked
5921
+ * @param {?} value
5922
+ * @return {?}
5923
+ */
5924
+ function (checked, value) {
5925
+ /** @type {?} */
5926
+ var formControl = this.group.get(this.config.name);
5927
+ /** @type {?} */
5928
+ var array = formControl.value ? formControl.value : [];
5929
+ if (!checked) {
5930
+ /** @type {?} */
5931
+ var modifiedArray = array.filter(( /**
5932
+ * @param {?} item
5933
+ * @return {?}
5934
+ */function (item) { return item !== value; }));
5935
+ formControl.setValue(modifiedArray);
5936
+ }
5937
+ else {
5938
+ formControl.setValue(__spread(array, [value]));
5939
+ }
5940
+ };
5941
+ /**
5942
+ * @param {?} value
5943
+ * @return {?}
5944
+ */
5945
+ GovUkCheckboxesComponent.prototype.isChecked = /**
5946
+ * @param {?} value
5947
+ * @return {?}
5948
+ */
5949
+ function (value) {
5950
+ /** @type {?} */
5951
+ var formControl = this.group.get(this.config.name);
5952
+ return formControl.value && formControl.value.includes(value);
5953
+ };
5954
+ /**
5955
+ * @private
5956
+ * @return {?}
5957
+ */
5958
+ GovUkCheckboxesComponent.prototype.setColumns = /**
5959
+ * @private
5960
+ * @return {?}
5961
+ */
5962
+ function () {
5963
+ if (this.config.rows && this.config.rows > 1) {
5964
+ /** @type {?} */
5965
+ var array = [];
5966
+ for (var i = 0; i < this.items.length; i += this.config.rows) {
5967
+ /** @type {?} */
5968
+ var arrayChunk = this.items.slice(i, i + this.config.rows);
5969
+ array.push(arrayChunk);
5970
+ }
5971
+ return array;
5972
+ }
5973
+ else {
5974
+ return [this.items];
5975
+ }
5976
+ };
5840
5977
  GovUkCheckboxesComponent.decorators = [
5841
5978
  { type: i0.Component, args: [{
5842
5979
  selector: 'xuilib-gov-uk-checkboxes',
5843
- template: "<xuilib-gov-uk-form-group-wrapper\n[error]=\"errors\"\n[config]=\"options.config\"\n[group]=\"options.key\">\n<div class=\"govuk-checkboxes\">\n <xuilib-gov-checkbox *ngFor=\"let item of options.items\"\n [group]=\"item.group\"\n [config]=\"item.config\">\n </xuilib-gov-checkbox>\n</div>\n</xuilib-gov-uk-form-group-wrapper>"
5980
+ template: "<div class=\"govuk-form-group gov-uk-input\" [formGroup]=\"group\"\n [ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n\n <xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n\n <span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n </span>\n\n <xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n <div class=\"govuk-checkboxes govuk-checkboxes--small govuk-checkboxes-multi-column\" data-module=\"govuk-checkboxes\">\n <div class=\"govuk-checkboxes-multi-column__single\" *ngFor=\"let columnItems of columns\">\n <div class=\"govuk-checkboxes__item\" *ngFor=\"let item of columnItems\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [id]=\"item.id\" [name]=\"item.id\" [checked]=\"isChecked(item.value)\" [value]=\"item.value\"\n [attr.aria-describedby]=\"setDescribedBy()\"\n (change)=\"onChecked($event.target.checked, item.value)\"\n >\n <label class=\"govuk-label govuk-checkboxes__label\" [for]=\"item.id\">\n {{ item.label }}\n </label>\n <div *ngIf=\"item.hint\" class=\"govuk-hint govuk-checkboxes__hint\">\n {{ item.hint }}\n </div>\n </div>\n </div>\n </div>\n</div>\n",
5981
+ styles: [".govuk-checkboxes-multi-column{display:flex;flex-wrap:wrap;margin-left:-20px;margin-right:-20px}.govuk-checkboxes-multi-column__single{padding-left:20px;padding-right:20px}"]
5844
5982
  }] }
5845
5983
  ];
5846
5984
  GovUkCheckboxesComponent.propDecorators = {
5847
- options: [{ type: i0.Input }],
5848
- errors: [{ type: i0.Input }]
5985
+ group: [{ type: i0.Input }],
5986
+ config: [{ type: i0.Input }],
5987
+ items: [{ type: i0.Input }],
5988
+ errorMessage: [{ type: i0.Input }]
5849
5989
  };
5850
5990
  return GovUkCheckboxesComponent;
5851
5991
  }());
@@ -5995,57 +6135,6 @@
5995
6135
  return GovUkErrorMessageComponent;
5996
6136
  }());
5997
6137
 
5998
- /**
5999
- * @fileoverview added by tsickle
6000
- * Generated from: lib/gov-ui/util/helpers/html-templates.helper.ts
6001
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
6002
- */
6003
- /*
6004
- * Helper Class
6005
- * Used for dynamic templates manipulation
6006
- * */
6007
- var /*
6008
- * Helper Class
6009
- * Used for dynamic templates manipulation
6010
- * */ HtmlTemplatesHelper = /** @class */ (function () {
6011
- function HtmlTemplatesHelper() {
6012
- }
6013
- /*
6014
- * Sets described by string depending if
6015
- * there is an error, error and hit or nothing
6016
- * */
6017
- /*
6018
- * Sets described by string depending if
6019
- * there is an error, error and hit or nothing
6020
- * */
6021
- /**
6022
- * @param {?} errorMessage
6023
- * @param {?} config
6024
- * @return {?}
6025
- */
6026
- HtmlTemplatesHelper.setDescribedBy = /*
6027
- * Sets described by string depending if
6028
- * there is an error, error and hit or nothing
6029
- * */
6030
- /**
6031
- * @param {?} errorMessage
6032
- * @param {?} config
6033
- * @return {?}
6034
- */
6035
- function (errorMessage, config) {
6036
- if (!errorMessage) {
6037
- return config.hint ? config.id + "-hint" : null;
6038
- }
6039
- else if (errorMessage && errorMessage.isInvalid) {
6040
- return config.hint ? config.id + "-hint " + config.id + "-error" : config.id + "-error";
6041
- }
6042
- else {
6043
- return config.hint ? config.id + "-hint" : null;
6044
- }
6045
- };
6046
- return HtmlTemplatesHelper;
6047
- }());
6048
-
6049
6138
  /**
6050
6139
  * @fileoverview added by tsickle
6051
6140
  * Generated from: lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.ts
@@ -6193,7 +6282,7 @@
6193
6282
  * @return {?}
6194
6283
  */
6195
6284
  function () {
6196
- this.config.classes = 'govuk-label--m';
6285
+ this.config.classes = typeof (this.config.classes) === 'string' ? this.config.classes : 'govuk-label govuk-label--m';
6197
6286
  };
6198
6287
  /**
6199
6288
  * @return {?}
@@ -6207,7 +6296,7 @@
6207
6296
  GovUkInputComponent.decorators = [
6208
6297
  { type: i0.Component, args: [{
6209
6298
  selector: 'xuilib-gov-uk-input',
6210
- template: "<div class=\"govuk-form-group gov-uk-input\" [formGroup]=\"group\"\n[ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n\n<xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n\n<span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n</span>\n\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n<input class=\"govuk-input\"\n [ngClass]=\"{'govuk-input--error': errorMessage?.isInvalid}\"\n [id]=\"config.id\"\n [name]=\"config.name\"\n [type]=\"config.type\"\n [attr.aria-invalid]=\"errorMessage?.isInvalid\"\n [formControlName]=\"config.name\"\n [attr.aria-describedby]='setDescribedBy()'>\n</div>\n",
6299
+ template: "<div class=\"govuk-form-group gov-uk-input\" [formGroup]=\"group\"\n[ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n\n<xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n\n<span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n</span>\n\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n<input class=\"govuk-input\"\n [class.govuk-!-width-full]=\"config.fullWidth\"\n [ngClass]=\"{'govuk-input--error': errorMessage?.isInvalid}\"\n [id]=\"config.id\"\n [name]=\"config.name\"\n [type]=\"config.type\"\n [attr.aria-invalid]=\"errorMessage?.isInvalid\"\n [formControlName]=\"config.name\"\n [attr.aria-describedby]='setDescribedBy()'>\n</div>\n",
6211
6300
  styles: [".gov-uk-input input:disabled{background:#b1b4b6}"]
6212
6301
  }] }
6213
6302
  ];
@@ -6238,7 +6327,8 @@
6238
6327
  GovUkLabelComponent.decorators = [
6239
6328
  { type: i0.Component, args: [{
6240
6329
  selector: 'xuilib-gov-label',
6241
- template: "<h1 *ngIf=\"config.isPageHeading else noHeading\">\n <label *ngIf=\"config.label\" [class]=\"config.classes + ' govuk-label'\"\n [for]=\"config.id\" [innerHTML]=\"config.label\">\n </label>\n</h1>\n<ng-template #noHeading>\n <label *ngIf=\"config.label\" [class]=\"config.classes + ' govuk-label'\"\n [for]=\"config.id\" [innerHTML]=\"config.label\">\n </label>\n</ng-template>"
6330
+ template: "<h1 *ngIf=\"config.isPageHeading else noHeading\">\n <label *ngIf=\"config.label\" [for]=\"config.id\" [class]=\"config.classes + ' govuk-label'\">\n <span>{{ config.label }}</span>\n <span class=\"govuk-label__optional\" *ngIf=\"config.optional\">(optional)</span>\n </label>\n</h1>\n<ng-template #noHeading>\n <label *ngIf=\"config.label\" [for]=\"config.id\" [class]=\"config.classes + ' govuk-label'\">\n <span>{{ config.label }}</span>\n <span class=\"govuk-label__optional\" *ngIf=\"config.optional\">(optional)</span>\n </label>\n</ng-template>\n",
6331
+ styles: [".govuk-label{display:flex;align-items:center;flex-wrap:wrap}.govuk-label__optional{font-weight:400;font-size:16px;display:inline-block;margin-left:.75rem}"]
6242
6332
  }] }
6243
6333
  ];
6244
6334
  /** @nocollapse */
@@ -6357,7 +6447,7 @@
6357
6447
  GovUkSelectComponent.decorators = [
6358
6448
  { type: i0.Component, args: [{
6359
6449
  selector: 'xuilib-gov-select',
6360
- template: "<div class=\"govuk-form-group\" [formGroup]=\"group\"\n[ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n<xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n<span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n</span>\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n<select class=\"govuk-select\" [id]=\"config.id\" [name]=\"config.id\" [formControlName]=\"config.id\" [attr.aria-describedby]='setDescribedBy()'>\n<option value=\"{{item.value}}\" *ngFor=\"let item of items\">{{item.label}}</option>\n</select>\n</div>"
6450
+ template: "<div class=\"govuk-form-group\" [formGroup]=\"group\"\n[ngClass]=\"{'govuk-form-group--error': errorMessage?.isInvalid}\">\n<xuilib-gov-label [config]=\"config\"></xuilib-gov-label>\n<span *ngIf=\"config.hint\" [id]=\"config.id +'-hint'\" class=\"govuk-hint\">\n {{config.hint}}\n</span>\n<xuilib-gov-uk-error-message [config]=\"config\" [errorMessage]=\"errorMessage\"></xuilib-gov-uk-error-message>\n\n<select class=\"govuk-select\"\n [class.govuk-!-width-full]=\"config.fullWidth\"\n [id]=\"config.id\" [name]=\"config.id\" [formControlName]=\"config.id\" [attr.aria-describedby]='setDescribedBy()'>\n <option value=\"{{item.value}}\" *ngFor=\"let item of items\">{{item.label}}</option>\n</select>\n</div>\n"
6361
6451
  }] }
6362
6452
  ];
6363
6453
  /** @nocollapse */