@hmcts/rpx-xui-common-lib 2.1.4-angular-upgrade-11 → 2.1.6-angular-upgrade-11

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 +2747 -2415
  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 +66 -3
  6. package/esm2015/lib/components/find-person/find-person.component.js +3 -3
  7. package/esm2015/lib/components/find-service/find-service.component.js +31 -0
  8. package/esm2015/lib/components/generic-filter/generic-filter.component.js +2 -2
  9. package/esm2015/lib/components/index.js +2 -0
  10. package/esm2015/lib/components/public_api.js +33 -0
  11. package/esm2015/lib/components/search-judicials/search-judicials.component.js +3 -3
  12. package/esm2015/lib/components/search-service/search-service.component.js +31 -0
  13. package/esm2015/lib/components/selected-case/selected-case.component.js +5 -7
  14. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +1 -1
  15. package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +7 -3
  16. package/esm2015/lib/components/share-case/share-case.component.js +127 -13
  17. package/esm2015/lib/directives/index.js +2 -0
  18. package/esm2015/lib/directives/public-api.js +3 -0
  19. package/esm2015/lib/exui-common-lib.module.js +8 -35
  20. package/esm2015/lib/gov-ui/components/index.js +2 -0
  21. package/esm2015/lib/gov-ui/components/public_api.js +22 -0
  22. package/esm2015/lib/gov-ui/gov-ui.service.js +13 -0
  23. package/esm2015/lib/gov-ui/index.js +2 -0
  24. package/esm2015/lib/gov-ui/public_api.js +8 -0
  25. package/esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js +18 -0
  26. package/esm2015/lib/gov-ui/validators/date.validator.js +15 -0
  27. package/esm2015/lib/gov-ui/validators/index.js +2 -0
  28. package/esm2015/lib/gov-ui/validators/public_api.js +7 -0
  29. package/esm2015/lib/gov-ui/validators/radio-group.validator.js +15 -0
  30. package/esm2015/lib/models/case-share.model.js +7 -2
  31. package/esm2015/lib/models/filter.model.js +1 -1
  32. package/esm2015/lib/models/person.model.js +3 -1
  33. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +28 -14
  34. package/esm2015/lib/services/index.js +2 -0
  35. package/esm2015/lib/services/public-api.js +16 -0
  36. package/esm2015/public-api.js +8 -76
  37. package/fesm2015/hmcts-rpx-xui-common-lib.js +2321 -2071
  38. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  39. package/hmcts-rpx-xui-common-lib.d.ts +65 -2
  40. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  41. package/lib/components/find-service/find-service.component.d.ts +14 -0
  42. package/lib/components/index.d.ts +1 -0
  43. package/lib/components/public_api.d.ts +32 -0
  44. package/lib/components/search-service/search-service.component.d.ts +13 -0
  45. package/lib/components/selected-case/selected-case.component.d.ts +1 -1
  46. package/lib/components/selected-case-list/selected-case-list.component.d.ts +1 -0
  47. package/lib/components/share-case/share-case.component.d.ts +37 -2
  48. package/lib/directives/index.d.ts +1 -0
  49. package/lib/directives/public-api.d.ts +2 -0
  50. package/lib/exui-common-lib.module.d.ts +31 -0
  51. package/lib/gov-ui/components/index.d.ts +1 -0
  52. package/lib/gov-ui/components/public_api.d.ts +21 -0
  53. package/lib/gov-ui/gov-ui.service.d.ts +3 -0
  54. package/lib/gov-ui/index.d.ts +1 -0
  55. package/lib/gov-ui/public_api.d.ts +4 -0
  56. package/lib/gov-ui/validators/checkboxes-be-checked.validator.d.ts +2 -0
  57. package/lib/gov-ui/validators/date.validator.d.ts +2 -0
  58. package/lib/gov-ui/validators/index.d.ts +1 -0
  59. package/lib/gov-ui/validators/public_api.d.ts +3 -0
  60. package/lib/gov-ui/validators/radio-group.validator.d.ts +2 -0
  61. package/lib/models/case-share.model.d.ts +5 -0
  62. package/lib/models/filter.model.d.ts +2 -1
  63. package/lib/models/person.model.d.ts +3 -0
  64. package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +1 -1
  65. package/lib/services/index.d.ts +1 -0
  66. package/lib/services/public-api.d.ts +12 -0
  67. package/package.json +4 -1
  68. package/public-api.d.ts +7 -78
@@ -0,0 +1,31 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ export class SearchServiceComponent {
4
+ constructor() {
5
+ this.showAutocomplete = false;
6
+ this.minSearchCharacters = 3;
7
+ this.term = '';
8
+ }
9
+ onInput() {
10
+ // Todo
11
+ }
12
+ onSelectionChange() {
13
+ // Todo
14
+ }
15
+ }
16
+ SearchServiceComponent.decorators = [
17
+ { type: Component, args: [{
18
+ selector: 'exui-search-service',
19
+ template: "<div class=\"auto-complete-container\">\n <input\n id=\"inputServiceSearch\"\n (input)=\"onInput()\"\n [formControl]=\"form?.controls.searchTerm\"\n [matAutocomplete]=\"autoSearchService\"\n class=\"govuk-input\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchService=\"matAutocomplete\">\n <mat-option *ngFor=\"let service of services\" (onSelectionChange)=\"onSelectionChange()\">\n {{ service.name }}\n </mat-option>\n <mat-option *ngIf=\"!services?.length && showAutocomplete && term && term.length >= this.minSearchCharacters\">No results found</mat-option>\n </mat-autocomplete>\n</div>\n",
20
+ styles: [".autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:0 2px 6px rgba(0,0,0,.256863);left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-left-width:0;border-bottom:1px solid #b1b4b6;border-right-width:0;border-top-width:1px;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{min-width:250px;display:inline-block;margin-right:4px}.autocomplete__input{line-height:24px;font-size:19px}"]
21
+ },] }
22
+ ];
23
+ SearchServiceComponent.propDecorators = {
24
+ services: [{ type: Input }],
25
+ selectedServices: [{ type: Input }],
26
+ disabled: [{ type: Input }],
27
+ delay: [{ type: Input }],
28
+ form: [{ type: Input }],
29
+ showAutocomplete: [{ type: Input }]
30
+ };
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNlcnZpY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtc2VydmljZS9zZWFyY2gtc2VydmljZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTzNDLE1BQU0sT0FBTyxzQkFBc0I7SUFMbkM7UUFXa0IscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLHdCQUFtQixHQUFHLENBQUMsQ0FBQztRQUNqQyxTQUFJLEdBQVcsRUFBRSxDQUFDO0lBUzNCLENBQUM7SUFQUSxPQUFPO1FBQ1osT0FBTztJQUNULENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTztJQUNULENBQUM7OztZQXJCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsK3NCQUE4Qzs7YUFFL0M7Ozt1QkFFRSxLQUFLOytCQUNMLEtBQUs7dUJBQ0wsS0FBSztvQkFDTCxLQUFLO21CQUNMLEtBQUs7K0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXh1aS1zZWFyY2gtc2VydmljZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtc2VydmljZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1zZXJ2aWNlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VydmljZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlczogYW55O1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRTZXJ2aWNlczogYW55O1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGFueTtcbiAgQElucHV0KCkgcHVibGljIGRlbGF5OiBhbnk7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93QXV0b2NvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyByZWFkb25seSBtaW5TZWFyY2hDaGFyYWN0ZXJzID0gMztcbiAgcHVibGljIHRlcm06IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBvbklucHV0KCk6IHZvaWQge1xuICAgIC8vIFRvZG9cbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICAvLyBUb2RvXG4gIH1cbn1cbiJdfQ==
@@ -19,9 +19,6 @@ export class SelectedCaseComponent {
19
19
  this.combinedSortedShares = this.combineAndSortShares(sharedWith, pendingShares);
20
20
  }
21
21
  }
22
- onUnselect() {
23
- this.unselect.emit(this.sharedCase);
24
- }
25
22
  onDeselect(c) {
26
23
  this.unselect.emit(c);
27
24
  }
@@ -79,7 +76,7 @@ export class SelectedCaseComponent {
79
76
  }));
80
77
  }
81
78
  onRemove(user, sharedCase) {
82
- this.stateService.requestUnshare(sharedCase.caseId, user);
79
+ this.stateService.requestUnshare(user, sharedCase.caseId);
83
80
  this.synchronizeStore.emit(this.shareCases);
84
81
  }
85
82
  onCancel(user, sharedCase) {
@@ -142,8 +139,8 @@ export class SelectedCaseComponent {
142
139
  SelectedCaseComponent.decorators = [
143
140
  { type: Component, args: [{
144
141
  selector: 'xuilib-selected-case',
145
- template: "<div id=\"{{buildElementId('govuk-accordion__section')}}\" class=\"govuk-accordion__section\">\n <div class=\"govuk-grid-row govuk-case-header\">\n <div class=\"govuk-grid-column-three-quarters\">\n <h3 id=\"{{buildElementId('case-title')}}\" class=\"govuk-case-title\">{{ sharedCase.caseTitle }}</h3>\n <h1 id=\"{{buildElementId('case-id')}}\" class=\"govuk-case-sub-title\">{{ sharedCase.caseId }}</h1>\n </div>\n <div class=\"govuk-grid-column-twenty-percent\">\n <button id=\"{{buildElementId('btn-deselect-case')}}\" class=\"govuk-button hmcts-button--secondary\" (click)=\"onDeselect(sharedCase)\" title=\"Deselect case\">Deselect case</button>\n </div>\n <div class=\"govuk-accordion__section-header govuk-grid-column-five-percent\">\n <div class=\"govuk-accordion__section-heading\">\n <button type=\"button\" id=\"{{buildElementId('accordion-with-summary-sections-heading')}}\"\n aria-controls=\"accordion-with-summary-sections-content-1\" class=\"govuk-accordion__section-button\"\n aria-describedby=\"accordion-with-summary-sections-summary-1\" aria-expanded=\"false\" title=\"Expand or Collapse\">\n <span class=\"govuk-accordion__icon\" aria-hidden=\"true\"></span></button>\n </div>\n </div>\n </div>\n <div id=\"{{buildElementId('accordion-with-summary-sections-content')}}\" class=\"govuk-accordion__section-content\"\n aria-labelledby=\"buildElementId('accordion-with-summary-sections-heading')\" >\n <div class=\"govuk-grid-row\" *ngIf=\"showNoUsersAccessInfo()\">\n <span id=\"{{buildElementId('access-info-no-user')}}\" class=\"govuk-div-align-left\">No users from your organisation currently have access to this case.</span>\n </div>\n <div class=\"govuk-grid-row\" *ngIf=\"showUserHasAccessInfo()\">\n <span id=\"{{buildElementId('access-info-has-users')}}\" class=\"govuk-div-align-left\">Users from your organisation with access to this case.</span>\n </div>\n <table class=\"govuk-table\" *ngIf=\"showUserAccessTable()\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th id=\"{{buildElementId('name-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Name</th>\n <th id=\"{{buildElementId('email-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Email address</th>\n <th id=\"{{buildElementId('action-heading')}}\" class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">Actions</th>\n <th id=\"{{buildElementId('label-heading')}}\" class=\"govuk-table__header govuk-table-column-label\" scope=\"col\">&nbsp;&nbsp;</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of combinedSortedShares; index as idx; trackBy: trackByUserId\">\n <td id=\"user-full-name-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td id=\"user-email-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <a *ngIf=\"canRemove(sharedCase.caseId, user) | async\" (click)=\"onRemove(user, sharedCase)\" href=\"javascript:void(0);\">Remove <span class=\"govuk-visually-hidden\">{{ user.firstName + ' ' + user.lastName }} from case</span></a>\n <a *ngIf=\"canCancel(sharedCase.caseId, user) | async\" (click)=\"onCancel(user, sharedCase)\" href=\"javascript:void(0);\">Cancel <span class=\"govuk-visually-hidden\">adding {{ user.firstName + ' ' + user.lastName }} to case</span></a>\n </td>\n <td class=\"govuk-table__cell\">\n <span *ngIf=\"isToBeRemoved(sharedCase.caseId, user) | async\" class=\"hmcts-badge hmcts-badge--red\">To be removed</span>\n <span *ngIf=\"isToBeAdded(sharedCase.caseId, user) | async\" class=\"hmcts-badge\">To be added</span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n",
146
- styles: [".govuk-case-header{border-top:1px solid #bfc1c3}.govuk-case-title{font-size:24px;color:#005ea5;font-weight:700}.govuk-case-sub-title,.govuk-case-title{font-family:nta,Arial,sans-serif;padding-left:0}.govuk-case-sub-title{font-size:1rem!important;color:#6f777b;font-weight:400}.govuk-grid-row{margin-left:0;margin-right:0}.govuk-grid-column-three-quarters{padding-top:5px;padding-left:0}.govuk-grid-column-twenty-percent{box-sizing:border-box;padding-top:10px;width:20%;float:left}.govuk-grid-column-five-percent{box-sizing:border-box;padding-top:15px;width:5%;float:left}.govuk-table-column-header{width:40%}.govuk-table-column-actions,.govuk-table-column-label{width:10%}.govuk-div-align-left{font-family:nta,Arial,sans-serif;font-size:1.1875rem!important;line-height:1.31579!important;text-align:left;margin-bottom:20px;padding-left:0;color:#0b0c0c}.govuk-accordion__section-header{border-top:0}.govuk-accordion__section-content{padding-top:0}"]
142
+ template: "<div id=\"{{buildElementId('govuk-accordion__section')}}\" class=\"govuk-accordion__section\">\n <div class=\"govuk-grid-row govuk-case-header\">\n <div class=\"govuk-grid-column-three-quarters\">\n <h3 id=\"{{buildElementId('case-title')}}\" class=\"govuk-case-title\">{{ sharedCase.caseTitle }}</h3>\n <h1 id=\"{{buildElementId('case-id')}}\" class=\"govuk-case-sub-title\">{{ sharedCase.caseId }}</h1>\n </div>\n <div class=\"govuk-grid-column-twenty-percent\">\n <button *ngIf=\"caseCount > 1\"\n id=\"{{buildElementId('btn-deselect-case')}}\" \n class=\"govuk-button hmcts-button--secondary\" \n (click)=\"onDeselect(sharedCase)\" \n title=\"Deselect case\">Deselect case\n </button>\n </div>\n <div class=\"govuk-accordion__section-header govuk-grid-column-five-percent\">\n <div class=\"govuk-accordion__section-heading\">\n <button type=\"button\" id=\"{{buildElementId('accordion-with-summary-sections-heading')}}\"\n aria-controls=\"accordion-with-summary-sections-content-1\" class=\"govuk-accordion__section-button\"\n aria-describedby=\"accordion-with-summary-sections-summary-1\" aria-expanded=\"false\" title=\"Expand or Collapse\">\n <span class=\"govuk-accordion__icon\" aria-hidden=\"true\"></span></button>\n </div>\n </div>\n </div>\n <div id=\"{{buildElementId('accordion-with-summary-sections-content')}}\" class=\"govuk-accordion__section-content\"\n aria-labelledby=\"buildElementId('accordion-with-summary-sections-heading')\" >\n <div class=\"govuk-grid-row\" *ngIf=\"showNoUsersAccessInfo()\">\n <span id=\"{{buildElementId('access-info-no-user')}}\" class=\"govuk-div-align-left\">No users from your organisation currently have access to this case.</span>\n </div>\n <div class=\"govuk-grid-row\" *ngIf=\"showUserHasAccessInfo()\">\n <span id=\"{{buildElementId('access-info-has-users')}}\" class=\"govuk-div-align-left\">Users from your organisation with access to this case.</span>\n </div>\n <table class=\"govuk-table\" *ngIf=\"showUserAccessTable()\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th id=\"{{buildElementId('name-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Name</th>\n <th id=\"{{buildElementId('email-heading')}}\" class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Email address</th>\n <th id=\"{{buildElementId('action-heading')}}\" class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">Actions</th>\n <th id=\"{{buildElementId('label-heading')}}\" class=\"govuk-table__header govuk-table-column-label\" scope=\"col\">Status</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of combinedSortedShares; index as idx; trackBy: trackByUserId\">\n <td id=\"user-full-name-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td id=\"user-email-{{ userIdSetter(canCancel(sharedCase.caseId, user) | async, idx) }}\" class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <a *ngIf=\"canRemove(sharedCase.caseId, user) | async\" (click)=\"onRemove(user, sharedCase)\" href=\"javascript:void(0);\">Remove <span class=\"govuk-visually-hidden\">{{ user.firstName + ' ' + user.lastName }} from case</span></a>\n <a *ngIf=\"canCancel(sharedCase.caseId, user) | async\" (click)=\"onCancel(user, sharedCase)\" href=\"javascript:void(0);\">Cancel <span class=\"govuk-visually-hidden\">adding {{ user.firstName + ' ' + user.lastName }} to case</span></a>\n </td>\n <td class=\"govuk-table__cell\">\n <span *ngIf=\"isToBeRemoved(sharedCase.caseId, user) | async\" class=\"hmcts-badge hmcts-badge--red\">To be removed</span>\n <span *ngIf=\"isToBeAdded(sharedCase.caseId, user) | async\" class=\"hmcts-badge\">To be added</span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n",
143
+ styles: [".govuk-case-header{border-top:1px solid #bfc1c3}.govuk-case-title{font-size:24px;color:#005ea5;font-weight:700}.govuk-case-sub-title,.govuk-case-title{font-family:nta,Arial,sans-serif;padding-left:0}.govuk-case-sub-title{font-size:1rem!important;color:#6f777b;font-weight:400}.govuk-grid-row{margin-left:0;margin-right:0}.govuk-grid-column-three-quarters{padding-top:5px;padding-left:0}.govuk-grid-column-twenty-percent{box-sizing:border-box;padding-top:10px;width:20%;float:left}.govuk-grid-column-five-percent{box-sizing:border-box;padding-top:15px;width:5%;float:left}.govuk-table-column-header{width:38%}.govuk-table-column-actions,.govuk-table-column-label{width:12%}.govuk-div-align-left{font-family:nta,Arial,sans-serif;font-size:1.1875rem!important;line-height:1.31579!important;text-align:left;margin-bottom:20px;padding-left:0;color:#0b0c0c}.govuk-accordion__section-header{border-top:0}.govuk-accordion__section-content{padding-top:0}"]
147
144
  },] }
148
145
  ];
149
146
  SelectedCaseComponent.ctorParameters = () => [
@@ -154,7 +151,8 @@ SelectedCaseComponent.propDecorators = {
154
151
  selectedUser: [{ type: Input }],
155
152
  opened: [{ type: Input }],
156
153
  removeUserFromCaseToggleOn: [{ type: Input }],
154
+ caseCount: [{ type: Input }],
157
155
  unselect: [{ type: Output }],
158
156
  synchronizeStore: [{ type: Output }]
159
157
  };
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtY2FzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdGVkLWNhc2Uvc2VsZWN0ZWQtY2FzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQU92RyxNQUFNLE9BQU8scUJBQXFCO0lBZWhDLFlBQTZCLFlBQXFDO1FBQXJDLGlCQUFZLEdBQVosWUFBWSxDQUF5QjtRQVhsRCxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBR2QsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFDMUMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQU9VLENBQUM7SUFFaEUsUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDO0lBRXpFLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ3RCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hGLE1BQU0sYUFBYSxHQUFHLElBQUks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akYsT0FBTztZQUNMLEdBQUcsVUFBVTtZQUNiLEdBQUcsYUFBYTtTQUNqQixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN0QixPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFrQixFQUFFLEVBQVU7UUFDaEQsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRU0sY0FBYyxDQUFDLFdBQW1CO1FBQ3ZDLE9BQU8sR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwRCxDQUFDOzs7WUF4S0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLHVsSUFBNkM7O2FBRTlDOzs7WUFOUSx1QkFBdUI7Ozt5QkFTN0IsS0FBSzsyQkFDTCxLQUFLO3FCQUNMLEtBQUs7eUNBQ0wsS0FBSzt1QkFFTCxNQUFNOytCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2hhcmVkQ2FzZSB9IGZyb20gJy4uLy4uL21vZGVscy9jYXNlLXNoYXJlLm1vZGVsJztcbmltcG9ydCB7IFVzZXJEZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXItZGV0YWlscy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlU2hhcmluZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nhc2Utc2hhcmluZy1zdGF0ZS9jYXNlLXNoYXJpbmctc3RhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aWxpYi1zZWxlY3RlZC1jYXNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdGVkLWNhc2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3RlZC1jYXNlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0ZWRDYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBzaGFyZWRDYXNlOiBTaGFyZWRDYXNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRVc2VyOiBVc2VyRGV0YWlscztcbiAgQElucHV0KCkgcHVibGljIG9wZW5lZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgcmVtb3ZlVXNlckZyb21DYXNlVG9nZ2xlT246IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpIHB1YmxpYyB1bnNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8U2hhcmVkQ2FzZT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBzeW5jaHJvbml6ZVN0b3JlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHVibGljIHNoYXJlQ2FzZXM6IFNoYXJlZENhc2VbXTtcbiAgcHVibGljIHNoYXJlQ2FzZXMkOiBPYnNlcnZhYmxlPFNoYXJlZENhc2VbXT47XG5cbiAgcHVibGljIGNvbWJpbmVkU29ydGVkU2hhcmVzOiBVc2VyRGV0YWlsc1tdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3RhdGVTZXJ2aWNlOiBDYXNlU2hhcmluZ1N0YXRlU2VydmljZSkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2hhcmVDYXNlcyQgPSB0aGlzLnN0YXRlU2VydmljZS5zdGF0ZTtcbiAgICB0aGlzLnNoYXJlQ2FzZXMkLnN1YnNjcmliZShzaGFyZUNhc2VzID0+IHRoaXMuc2hhcmVDYXNlcyA9IHNoYXJlQ2FzZXMpO1xuXG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnNoYXJlZENhc2UpIHtcbiAgICAgIGNvbnN0IHNoYXJlZFdpdGggPSB0aGlzLnNoYXJlZENhc2Uuc2hhcmVkV2l0aCA/IHRoaXMuc2hhcmVkQ2FzZS5zaGFyZWRXaXRoIDogW107XG4gICAgICBjb25zdCBwZW5kaW5nU2hhcmVzID0gdGhpcy5zaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMgPyB0aGlzLnNoYXJlZENhc2UucGVuZGluZ1NoYXJlcyA6IFtdO1xuICAgICAgdGhpcy5jb21iaW5lZFNvcnRlZFNoYXJlcyA9IHRoaXMuY29tYmluZUFuZFNvcnRTaGFyZXMoc2hhcmVkV2l0aCwgcGVuZGluZ1NoYXJlcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uVW5zZWxlY3QoKTogdm9pZCB7XG4gICAgdGhpcy51bnNlbGVjdC5lbWl0KHRoaXMuc2hhcmVkQ2FzZSk7XG4gIH1cblxuICBwdWJsaWMgb25EZXNlbGVjdChjOiBTaGFyZWRDYXNlKTogdm9pZCB7XG4gICAgdGhpcy51bnNlbGVjdC5lbWl0KGMpO1xuICB9XG5cbiAgcHVibGljIHRyYWNrQnlVc2VySWQodXNlcjogVXNlckRldGFpbHMpOiBzdHJpbmcge1xuICAgIHJldHVybiB1c2VyLmlkYW1JZDtcbiAgfVxuXG4gIHB1YmxpYyBjYW5SZW1vdmUoY2FzZUlkOiBzdHJpbmcsIHVzZXI6IFVzZXJEZXRhaWxzKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVDYXNlcyQucGlwZShtYXAoY2FzZXMgPT4ge1xuICAgICAgaWYgKHRoaXMucmVtb3ZlVXNlckZyb21DYXNlVG9nZ2xlT24pIHtcbiAgICAgICAgZm9yIChjb25zdCBhQ2FzZSBvZiBjYXNlcykge1xuICAgICAgICAgIGlmIChhQ2FzZS5jYXNlSWQgPT09IGNhc2VJZCkge1xuICAgICAgICAgICAgaWYgKGFDYXNlLnBlbmRpbmdVbnNoYXJlcyAmJiBhQ2FzZS5wZW5kaW5nVW5zaGFyZXMuc29tZSh1ID0+IHUuaWRhbUlkID09PSB1c2VyLmlkYW1JZCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGFDYXNlLnNoYXJlZFdpdGggJiYgYUNhc2Uuc2hhcmVkV2l0aC5zb21lKHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgY2FuQ2FuY2VsKGNhc2VJZDogc3RyaW5nLCB1c2VyOiBVc2VyRGV0YWlscyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnNoYXJlQ2FzZXMkLnBpcGUobWFwKGNhc2VzID0+IHtcbiAgICAgIGZvciAoY29uc3QgYUNhc2Ugb2YgY2FzZXMpIHtcbiAgICAgICAgaWYgKGFDYXNlLmNhc2VJZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgICAgaWYgKGFDYXNlLnBlbmRpbmdTaGFyZXMgJiYgYUNhc2UucGVuZGluZ1NoYXJlcy5zb21lKHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChhQ2FzZS5wZW5kaW5nVW5zaGFyZXMgJiYgYUNhc2UucGVuZGluZ1Vuc2hhcmVzLnNvbWUodSA9PiB1LmlkYW1JZCA9PT0gdXNlci5pZGFtSWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgcHVibGljIGlzVG9CZVJlbW92ZWQoY2FzZUlkOiBzdHJpbmcsIHVzZXI6IFVzZXJEZXRhaWxzKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVDYXNlcyQucGlwZShtYXAoY2FzZXMgPT4ge1xuICAgICAgZm9yIChjb25zdCBhQ2FzZSBvZiBjYXNlcykge1xuICAgICAgICBpZiAoYUNhc2UuY2FzZUlkID09PSBjYXNlSWQpIHtcbiAgICAgICAgICByZXR1cm4gYUNhc2UucGVuZGluZ1Vuc2hhcmVzICYmIGFDYXNlLnBlbmRpbmdVbnNoYXJlcy5zb21lKHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1RvQmVBZGRlZChjYXNlSWQ6IHN0cmluZywgdXNlcjogVXNlckRldGFpbHMpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZUNhc2VzJC5waXBlKG1hcChjYXNlcyA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGFDYXNlIG9mIGNhc2VzKSB7XG4gICAgICAgIGlmIChhQ2FzZS5jYXNlSWQgPT09IGNhc2VJZCkge1xuICAgICAgICAgIHJldHVybiBhQ2FzZS5wZW5kaW5nU2hhcmVzICYmIGFDYXNlLnBlbmRpbmdTaGFyZXMuc29tZSh1ID0+IHUuaWRhbUlkID09PSB1c2VyLmlkYW1JZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgb25SZW1vdmUodXNlcjogVXNlckRldGFpbHMsIHNoYXJlZENhc2U6IFNoYXJlZENhc2UpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5yZXF1ZXN0VW5zaGFyZShzaGFyZWRDYXNlLmNhc2VJZCwgdXNlcik7XG4gICAgdGhpcy5zeW5jaHJvbml6ZVN0b3JlLmVtaXQodGhpcy5zaGFyZUNhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNhbmNlbCh1c2VyOiBVc2VyRGV0YWlscywgc2hhcmVkQ2FzZTogU2hhcmVkQ2FzZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnJlcXVlc3RDYW5jZWwoc2hhcmVkQ2FzZS5jYXNlSWQsIHVzZXIpO1xuICAgIHRoaXMuc3luY2hyb25pemVTdG9yZS5lbWl0KHRoaXMuc2hhcmVDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgc2hvd05vVXNlcnNBY2Nlc3NJbmZvKCk6IGJvb2xlYW4ge1xuICAgIC8vIEEgdXNlciBpcyBhZGRlZCB0byBhIGNhc2VcbiAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMpIHtcbiAgICAgIGlmICh0aGlzLnNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQSBjYXNlIGhhcyAwIHVzZXJzIHdpdGggYWNjZXNzIHRvIGl0XG4gICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5zaGFyZWRXaXRoKSB7XG4gICAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnNoYXJlZFdpdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBBY2Nlc3MgdG8gdGhlIGxhc3QgdXNlciBpcyByZW1vdmVkXG4gICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5zaGFyZWRXaXRoICYmIHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMpIHtcbiAgICAgIGlmICh0aGlzLnNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzLmxlbmd0aCA+IDBcbiAgICAgICAgJiYgdGhpcy5zaGFyZWRDYXNlLnNoYXJlZFdpdGgubGVuZ3RoID09PSB0aGlzLnNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNob3dVc2VySGFzQWNjZXNzSW5mbygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc2hvd05vVXNlcnNBY2Nlc3NJbmZvKCk7XG4gIH1cblxuICBwdWJsaWMgc2hvd1VzZXJBY2Nlc3NUYWJsZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMpIHtcbiAgICAgIGlmICh0aGlzLnNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnNoYXJlZFdpdGgpIHtcbiAgICAgIGlmICh0aGlzLnNoYXJlZENhc2Uuc2hhcmVkV2l0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgY29tYmluZUFuZFNvcnRTaGFyZXMoc2hhcmVkV2l0aDogVXNlckRldGFpbHNbXSwgcGVuZGluZ1NoYXJlczogVXNlckRldGFpbHNbXSk6IFVzZXJEZXRhaWxzW10ge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5zaGFyZWRXaXRoLFxuICAgICAgLi4ucGVuZGluZ1NoYXJlc1xuICAgIF0uc29ydCgodXNlcjEsIHVzZXIyKSA9PiB7XG4gICAgICByZXR1cm4gdXNlcjEuZmlyc3ROYW1lLnRvTG93ZXJDYXNlKCkgPiB1c2VyMi5maXJzdE5hbWUudG9Mb3dlckNhc2UoKSA/IDEgOiAodXNlcjIuZmlyc3ROYW1lLnRvTG93ZXJDYXNlKCkgPiB1c2VyMS5maXJzdE5hbWUudG9Mb3dlckNhc2UoKSA/IC0xIDogMCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXNlcklkU2V0dGVyKGlzUGVuZGluZzogYm9vbGVhbiwgaWQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGlzUGVuZGluZyA/IGBwZW5kaW5nU2hhcmVzLSR7aWR9YCA6IGAke2lkfWA7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRFbGVtZW50SWQoZWxlbWVudE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke2VsZW1lbnROYW1lfS0ke3RoaXMuc2hhcmVkQ2FzZS5jYXNlSWR9YDtcbiAgfVxufVxuIl19
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtY2FzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdGVkLWNhc2Uvc2VsZWN0ZWQtY2FzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQU92RyxNQUFNLE9BQU8scUJBQXFCO0lBZ0JoQyxZQUE2QixZQUFxQztRQUFyQyxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFabEQsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUlkLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzFDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFPVSxDQUFDO0lBRWhFLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQztJQUV6RSxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUN0QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNoRixNQUFNLGFBQWEsR0FBRyxJQUFJ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QUFFLEVBQUU7WUFDdEIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0SixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxZQUFZLENBQUMsU0FBa0IsRUFBRSxFQUFVO1FBQ2hELE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVNLGNBQWMsQ0FBQyxXQUFtQjtRQUN2QyxPQUFPLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDcEQsQ0FBQzs7O1lBcktGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyx3cElBQTZDOzthQUU5Qzs7O1lBTlEsdUJBQXVCOzs7eUJBUzdCLEtBQUs7MkJBQ0wsS0FBSztxQkFDTCxLQUFLO3lDQUNMLEtBQUs7d0JBQ0wsS0FBSzt1QkFFTCxNQUFNOytCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2hhcmVkQ2FzZSB9IGZyb20gJy4uLy4uL21vZGVscy9jYXNlLXNoYXJlLm1vZGVsJztcbmltcG9ydCB7IFVzZXJEZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXItZGV0YWlscy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlU2hhcmluZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nhc2Utc2hhcmluZy1zdGF0ZS9jYXNlLXNoYXJpbmctc3RhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aWxpYi1zZWxlY3RlZC1jYXNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdGVkLWNhc2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3RlZC1jYXNlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0ZWRDYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBzaGFyZWRDYXNlOiBTaGFyZWRDYXNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRVc2VyOiBVc2VyRGV0YWlscztcbiAgQElucHV0KCkgcHVibGljIG9wZW5lZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgcmVtb3ZlVXNlckZyb21DYXNlVG9nZ2xlT246IGJvb2xlYW47XG4gIEBJbnB1dCgpIHB1YmxpYyBjYXNlQ291bnQ6IG51bWJlcjtcblxuICBAT3V0cHV0KCkgcHVibGljIHVuc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxTaGFyZWRDYXNlPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHN5bmNocm9uaXplU3RvcmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwdWJsaWMgc2hhcmVDYXNlczogU2hhcmVkQ2FzZVtdO1xuICBwdWJsaWMgc2hhcmVDYXNlcyQ6IE9ic2VydmFibGU8U2hhcmVkQ2FzZVtdPjtcblxuICBwdWJsaWMgY29tYmluZWRTb3J0ZWRTaGFyZXM6IFVzZXJEZXRhaWxzW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IENhc2VTaGFyaW5nU3RhdGVTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zaGFyZUNhc2VzJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLnN0YXRlO1xuICAgIHRoaXMuc2hhcmVDYXNlcyQuc3Vic2NyaWJlKHNoYXJlQ2FzZXMgPT4gdGhpcy5zaGFyZUNhc2VzID0gc2hhcmVDYXNlcyk7XG5cbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuc2hhcmVkQ2FzZSkge1xuICAgICAgY29uc3Qgc2hhcmVkV2l0aCA9IHRoaXMuc2hhcmVkQ2FzZS5zaGFyZWRXaXRoID8gdGhpcy5zaGFyZWRDYXNlLnNoYXJlZFdpdGggOiBbXTtcbiAgICAgIGNvbnN0IHBlbmRpbmdTaGFyZXMgPSB0aGlzLnNoYXJlZENhc2UucGVuZGluZ1NoYXJlcyA/IHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzIDogW107XG4gICAgICB0aGlzLmNvbWJpbmVkU29ydGVkU2hhcmVzID0gdGhpcy5jb21iaW5lQW5kU29ydFNoYXJlcyhzaGFyZWRXaXRoLCBwZW5kaW5nU2hhcmVzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25EZXNlbGVjdChjOiBTaGFyZWRDYXNlKTogdm9pZCB7XG4gICAgdGhpcy51bnNlbGVjdC5lbWl0KGMpO1xuICB9XG5cbiAgcHVibGljIHRyYWNrQnlVc2VySWQodXNlcjogVXNlckRldGFpbHMpOiBzdHJpbmcge1xuICAgIHJldHVybiB1c2VyLmlkYW1JZDtcbiAgfVxuXG4gIHB1YmxpYyBjYW5SZW1vdmUoY2FzZUlkOiBzdHJpbmcsIHVzZXI6IFVzZXJEZXRhaWxzKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVDYXNlcyQucGlwZShtYXAoY2FzZXMgPT4ge1xuICAgICAgaWYgKHRoaXMucmVtb3ZlVXNlckZyb21DYXNlVG9nZ2xlT24pIHtcbiAgICAgICAgZm9yIChjb25zdCBhQ2FzZSBvZiBjYXNlcykge1xuICAgICAgICAgIGlmIChhQ2FzZS5jYXNlSWQgPT09IGNhc2VJZCkge1xuICAgICAgICAgICAgaWYgKGFDYXNlLnBlbmRpbmdVbnNoYXJlcyAmJiBhQ2FzZS5wZW5kaW5nVW5zaGFyZXMuc29tZSh1ID0+IHUuaWRhbUlkID09PSB1c2VyLmlkYW1JZCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGFDYXNlLnNoYXJlZFdpdGggJiYgYUNhc2Uuc2hhcmVkV2l0aC5zb21lKHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgY2FuQ2FuY2VsKGNhc2VJZDogc3RyaW5nLCB1c2VyOiBVc2VyRGV0YWlscyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnNoYXJlQ2FzZXMkLnBpcGUobWFwKGNhc2VzID0+IHtcbiAgICAgIGZvciAoY29uc3QgYUNhc2Ugb2YgY2FzZXMpIHtcbiAgICAgICAgaWYgKGFDYXNlLmNhc2VJZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgICAgaWYgKGFDYXNlLnBlbmRpbmdTaGFyZXMgJiYgYUNhc2UucGVuZGluZ1NoYXJlcy5zb21lKHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChhQ2FzZS5wZW5kaW5nVW5zaGFyZXMgJiYgYUNhc2UucGVuZGluZ1Vuc2hhcmVzLnNvbWUodSA9PiB1LmlkYW1JZCA9PT0gdXNlci5pZGFtSWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgcHVibGljIGlzVG9CZVJlbW92ZWQoY2FzZUlkOiBzdHJpbmcsIHVzZXI6IFVzZXJEZXRhaWxzKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVDYXNlcyQucGlwZShtYXAoY2FzZXMgPT4ge1xuICAgICAgZm9yIChjb25zdCBhQ2FzZSBvZiBjYXNlcykge1xuICAgICAgICBpZiAoYUNhc2UuY2FzZUlkID09PSBjYXNlSWQpIHtcbiAgICAgICAgICByZXR1cm4gYUNhc2UucGVuZGluZ1Vuc2hhcmVzICYmIGFDYXNlLnBlbmRpbmdVbnNoYXJlcy5zb21lKHUgPT4gdS5pZGFtSWQgPT09IHVzZXIuaWRhbUlkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1RvQmVBZGRlZChjYXNlSWQ6IHN0cmluZywgdXNlcjogVXNlckRldGFpbHMpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZUNhc2VzJC5waXBlKG1hcChjYXNlcyA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGFDYXNlIG9mIGNhc2VzKSB7XG4gICAgICAgIGlmIChhQ2FzZS5jYXNlSWQgPT09IGNhc2VJZCkge1xuICAgICAgICAgIHJldHVybiBhQ2FzZS5wZW5kaW5nU2hhcmVzICYmIGFDYXNlLnBlbmRpbmdTaGFyZXMuc29tZSh1ID0+IHUuaWRhbUlkID09PSB1c2VyLmlkYW1JZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgb25SZW1vdmUodXNlcjogVXNlckRldGFpbHMsIHNoYXJlZENhc2U6IFNoYXJlZENhc2UpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5yZXF1ZXN0VW5zaGFyZSh1c2VyLCBzaGFyZWRDYXNlLmNhc2VJZCk7XG4gICAgdGhpcy5zeW5jaHJvbml6ZVN0b3JlLmVtaXQodGhpcy5zaGFyZUNhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNhbmNlbCh1c2VyOiBVc2VyRGV0YWlscywgc2hhcmVkQ2FzZTogU2hhcmVkQ2FzZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnJlcXVlc3RDYW5jZWwoc2hhcmVkQ2FzZS5jYXNlSWQsIHVzZXIpO1xuICAgIHRoaXMuc3luY2hyb25pemVTdG9yZS5lbWl0KHRoaXMuc2hhcmVDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgc2hvd05vVXNlcnNBY2Nlc3NJbmZvKCk6IGJvb2xlYW4ge1xuICAgIC8vIEEgdXNlciBpcyBhZGRlZCB0byBhIGNhc2VcbiAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMpIHtcbiAgICAgIGlmICh0aGlzLnNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQSBjYXNlIGhhcyAwIHVzZXJzIHdpdGggYWNjZXNzIHRvIGl0XG4gICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5zaGFyZWRXaXRoKSB7XG4gICAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnNoYXJlZFdpdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBBY2Nlc3MgdG8gdGhlIGxhc3QgdXNlciBpcyByZW1vdmVkXG4gICAgaWYgKHRoaXMuc2hhcmVkQ2FzZS5zaGFyZWRXaXRoICYmIHRoaXMuc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMpIHtcbiAgICAgIGlmICh0aGlzLnNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzLmxlbmd0aCA+IDBcbiAgICAgICAgJiYgdGhpcy5zaGFyZWRDYXNlLnNoYXJlZFdpdGgubGVuZ3RoID09PSB0aGlzLnNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNob3dVc2VySGFzQWNjZXNzSW5mbygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc2hvd05vVXNlcnNBY2Nlc3NJbmZvKCk7XG4gIH1cblxuICBwdWJsaWMgc2hvd1VzZXJBY2Nlc3NUYWJsZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMpIHtcbiAgICAgIGlmICh0aGlzLnNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5zaGFyZWRDYXNlLnNoYXJlZFdpdGgpIHtcbiAgICAgIGlmICh0aGlzLnNoYXJlZENhc2Uuc2hhcmVkV2l0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgY29tYmluZUFuZFNvcnRTaGFyZXMoc2hhcmVkV2l0aDogVXNlckRldGFpbHNbXSwgcGVuZGluZ1NoYXJlczogVXNlckRldGFpbHNbXSk6IFVzZXJEZXRhaWxzW10ge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5zaGFyZWRXaXRoLFxuICAgICAgLi4ucGVuZGluZ1NoYXJlc1xuICAgIF0uc29ydCgodXNlcjEsIHVzZXIyKSA9PiB7XG4gICAgICByZXR1cm4gdXNlcjEuZmlyc3ROYW1lLnRvTG93ZXJDYXNlKCkgPiB1c2VyMi5maXJzdE5hbWUudG9Mb3dlckNhc2UoKSA/IDEgOiAodXNlcjIuZmlyc3ROYW1lLnRvTG93ZXJDYXNlKCkgPiB1c2VyMS5maXJzdE5hbWUudG9Mb3dlckNhc2UoKSA/IC0xIDogMCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXNlcklkU2V0dGVyKGlzUGVuZGluZzogYm9vbGVhbiwgaWQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGlzUGVuZGluZyA/IGBwZW5kaW5nU2hhcmVzLSR7aWR9YCA6IGAke2lkfWA7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRFbGVtZW50SWQoZWxlbWVudE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke2VsZW1lbnROYW1lfS0ke3RoaXMuc2hhcmVkQ2FzZS5jYXNlSWR9YDtcbiAgfVxufVxuIl19
@@ -22,7 +22,7 @@ export class SelectedCaseConfirmComponent {
22
22
  SelectedCaseConfirmComponent.decorators = [
23
23
  { type: Component, args: [{
24
24
  selector: 'xuilib-selected-case-confirm',
25
- template: "<div id=\"user-access-block-{{ sharedCase.caseId }}\" *ngIf=\"showUserAccessBlock()\">\n <h2 class=\"govuk-heading-m case-share-confirm__title\">{{ sharedCase.caseTitle }}</h2>\n <div class=\"case-share-confirm__caption-area\">\n <div class=\"govuk-caption-m case-share-confirm__caption\">\n {{ sharedCase.caseId }}\n </div>\n <a [routerLink]=\"changeLink\" class=\"case-share-confirm__change-link govuk-link govuk-!-font-size-19\">Change</a>\n </div>\n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Name</th>\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Email address</th>\n <th class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">Actions</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingShares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge\">To be added</span>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingUnshares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge hmcts-badge--red\">to be removed</span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n",
25
+ template: "<div id=\"user-access-block-{{ sharedCase.caseId }}\" *ngIf=\"showUserAccessBlock()\">\n <h2 class=\"govuk-heading-m case-share-confirm__title\">{{ sharedCase.caseTitle }}</h2>\n <div class=\"case-share-confirm__caption-area\">\n <div class=\"govuk-caption-m case-share-confirm__caption\">\n {{ sharedCase.caseId }}\n </div>\n <a [routerLink]=\"changeLink\" class=\"case-share-confirm__change-link govuk-link govuk-!-font-size-19\">Change</a>\n </div>\n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Name</th>\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">Email address</th>\n <th class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">Actions</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingShares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge\">To be added</span>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngFor=\"let user of sharedCase.pendingUnshares; trackBy: trackByUserId\">\n <td class=\"govuk-table__cell\">{{ user.firstName + ' ' + user.lastName }}</td>\n <td class=\"govuk-table__cell\">{{ user.email }}</td>\n <td class=\"govuk-table__cell\">\n <span class=\"hmcts-badge hmcts-badge--red\">To be removed</span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n",
26
26
  styles: [".case-share-confirm__title{margin-bottom:0}.case-share-confirm__caption-area{border-bottom:1px solid #b1b4b6;padding-bottom:10px;display:inline-block;width:100%;clear:both}.case-share-confirm__caption{float:left}.case-share-confirm__change-link{float:right}.govuk-table-column-header{width:45%}.govuk-table-column-actions{width:10%}"]
27
27
  },] }
28
28
  ];
@@ -12,10 +12,14 @@ export class SelectedCaseListComponent {
12
12
  }
13
13
  ngOnInit() {
14
14
  this.shareCases$ = this.stateService.state;
15
- this.shareCases$.subscribe(shareCases => this.shareCases = shareCases);
15
+ this.shareCases$.subscribe((shareCases) => {
16
+ this.shareCases = shareCases;
17
+ this.caseCount = this.shareCases.length;
18
+ });
16
19
  }
17
20
  onUnselect(sharedCase) {
18
21
  this.unselect.emit(sharedCase);
22
+ this.caseCount = this.shareCases.length;
19
23
  }
20
24
  onSynchronizeStore(event) {
21
25
  this.synchronizeStore.emit(event);
@@ -27,7 +31,7 @@ export class SelectedCaseListComponent {
27
31
  SelectedCaseListComponent.decorators = [
28
32
  { type: Component, args: [{
29
33
  selector: 'xuilib-selected-case-list',
30
- template: "<ng-container *ngIf=\"!toConfirm\">\n <xuilib-selected-case\n *ngFor=\"let sharedCase of (shareCases$ | async); trackBy: trackByCaseId\"\n [sharedCase]=\"sharedCase\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case>\n</ng-container>\n\n<ng-container *ngIf=\"toConfirm\">\n <xuilib-selected-case-confirm\n *ngFor=\"let sharedCase of (shareCases$ | async); trackBy: trackByCaseId\"\n [sharedCase]=\"sharedCase\"\n [changeLink]=\"changeLink\">\n </xuilib-selected-case-confirm>\n</ng-container>\n",
34
+ template: "<ng-container *ngIf=\"!toConfirm\">\n <xuilib-selected-case\n *ngFor=\"let sharedCase of (shareCases$ | async); trackBy: trackByCaseId\"\n [sharedCase]=\"sharedCase\"\n [caseCount]=\"caseCount\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case>\n</ng-container>\n\n<ng-container *ngIf=\"toConfirm\">\n <xuilib-selected-case-confirm\n *ngFor=\"let sharedCase of (shareCases$ | async); trackBy: trackByCaseId\"\n [sharedCase]=\"sharedCase\"\n [changeLink]=\"changeLink\">\n </xuilib-selected-case-confirm>\n</ng-container>\n",
31
35
  styles: [""]
32
36
  },] }
33
37
  ];
@@ -42,4 +46,4 @@ SelectedCaseListComponent.propDecorators = {
42
46
  unselect: [{ type: Output }],
43
47
  synchronizeStore: [{ type: Output }]
44
48
  };
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtY2FzZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0ZWQtY2FzZS1saXN0L3NlbGVjdGVkLWNhc2UtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBT3ZHLE1BQU0sT0FBTyx5QkFBeUI7SUFlcEMsWUFBNkIsWUFBcUM7UUFBckMsaUJBQVksR0FBWixZQUFZLENBQXlCO1FBYjNELGVBQVUsR0FBaUIsRUFBRSxDQUFDO1FBTXJCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFFM0IsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUV2QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUMxQyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0lBRUcsQ0FBQztJQUVoRSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVNLFVBQVUsQ0FBQyxVQUFzQjtRQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsS0FBVTtRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBc0I7UUFDekMsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQzNCLENBQUM7OztZQXJDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsMnBCQUFrRDs7YUFFbkQ7OztZQU5RLHVCQUF1Qjs7OzBCQVc3QixLQUFLO3lDQUVMLEtBQUs7d0JBRUwsS0FBSzt5QkFFTCxLQUFLO3VCQUVMLE1BQU07K0JBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNoYXJlZENhc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FzZS1zaGFyZS5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlU2hhcmluZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nhc2Utc2hhcmluZy1zdGF0ZS9jYXNlLXNoYXJpbmctc3RhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aWxpYi1zZWxlY3RlZC1jYXNlLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0ZWQtY2FzZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0ZWQtY2FzZS1saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0ZWRDYXNlTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIHNoYXJlQ2FzZXM6IFNoYXJlZENhc2VbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBzaGFyZUNhc2VzJDogT2JzZXJ2YWJsZTxTaGFyZWRDYXNlW10+O1xuXG4gIEBJbnB1dCgpIHB1YmxpYyByZW1vdmVVc2VyRnJvbUNhc2VUb2dnbGVPbjogYm9vbGVhbjtcblxuICBASW5wdXQoKSBwdWJsaWMgdG9Db25maXJtOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgcHVibGljIGNoYW5nZUxpbms6IHN0cmluZyA9ICcnO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgdW5zZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFNoYXJlZENhc2U+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgc3luY2hyb25pemVTdG9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2hhcmVkQ2FzZT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogQ2FzZVNoYXJpbmdTdGF0ZVNlcnZpY2UpIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNoYXJlQ2FzZXMkID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc3RhdGU7XG4gICAgdGhpcy5zaGFyZUNhc2VzJC5zdWJzY3JpYmUoc2hhcmVDYXNlcyA9PiB0aGlzLnNoYXJlQ2FzZXMgPSBzaGFyZUNhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBvblVuc2VsZWN0KHNoYXJlZENhc2U6IFNoYXJlZENhc2UpOiB2b2lkIHtcbiAgICB0aGlzLnVuc2VsZWN0LmVtaXQoc2hhcmVkQ2FzZSk7XG4gIH1cblxuICBwdWJsaWMgb25TeW5jaHJvbml6ZVN0b3JlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNocm9uaXplU3RvcmUuZW1pdChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUNhc2VJZChzaGFyZWRDYXNlOiBTaGFyZWRDYXNlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc2hhcmVkQ2FzZS5jYXNlSWQ7XG4gIH1cbn1cbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtY2FzZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0ZWQtY2FzZS1saXN0L3NlbGVjdGVkLWNhc2UtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBT3ZHLE1BQU0sT0FBTyx5QkFBeUI7SUFnQnBDLFlBQTZCLFlBQXFDO1FBQXJDLGlCQUFZLEdBQVosWUFBWSxDQUF5QjtRQWQzRCxlQUFVLEdBQWlCLEVBQUUsQ0FBQztRQU9yQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFFdkIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFDMUMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUVHLENBQUM7SUFFaEUsUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFVBQVUsQ0FBQyxVQUFzQjtRQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQzFDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxLQUFVO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLGFBQWEsQ0FBQyxVQUFzQjtRQUN6QyxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFDM0IsQ0FBQzs7O1lBMUNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQywwckJBQWtEOzthQUVuRDs7O1lBTlEsdUJBQXVCOzs7MEJBWTdCLEtBQUs7eUNBRUwsS0FBSzt3QkFFTCxLQUFLO3lCQUVMLEtBQUs7dUJBRUwsTUFBTTsrQkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2hhcmVkQ2FzZSB9IGZyb20gJy4uLy4uL21vZGVscy9jYXNlLXNoYXJlLm1vZGVsJztcbmltcG9ydCB7IENhc2VTaGFyaW5nU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FzZS1zaGFyaW5nLXN0YXRlL2Nhc2Utc2hhcmluZy1zdGF0ZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXNlbGVjdGVkLWNhc2UtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3RlZC1jYXNlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3RlZC1jYXNlLWxpc3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RlZENhc2VMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgc2hhcmVDYXNlczogU2hhcmVkQ2FzZVtdID0gW107XG4gIHB1YmxpYyBjYXNlQ291bnQ6IG51bWJlcjtcblxuICBASW5wdXQoKSBwdWJsaWMgc2hhcmVDYXNlcyQ6IE9ic2VydmFibGU8U2hhcmVkQ2FzZVtdPjtcblxuICBASW5wdXQoKSBwdWJsaWMgcmVtb3ZlVXNlckZyb21DYXNlVG9nZ2xlT246IGJvb2xlYW47XG5cbiAgQElucHV0KCkgcHVibGljIHRvQ29uZmlybTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGFuZ2VMaW5rOiBzdHJpbmcgPSAnJztcblxuICBAT3V0cHV0KCkgcHVibGljIHVuc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxTaGFyZWRDYXNlPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHN5bmNocm9uaXplU3RvcmUgPSBuZXcgRXZlbnRFbWl0dGVyPFNoYXJlZENhc2U+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IENhc2VTaGFyaW5nU3RhdGVTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zaGFyZUNhc2VzJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLnN0YXRlO1xuICAgIHRoaXMuc2hhcmVDYXNlcyQuc3Vic2NyaWJlKChzaGFyZUNhc2VzKSA9PiB7XG4gICAgICB0aGlzLnNoYXJlQ2FzZXMgPSBzaGFyZUNhc2VzO1xuICAgICAgdGhpcy5jYXNlQ291bnQgPSB0aGlzLnNoYXJlQ2FzZXMubGVuZ3RoO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uVW5zZWxlY3Qoc2hhcmVkQ2FzZTogU2hhcmVkQ2FzZSk6IHZvaWQge1xuICAgIHRoaXMudW5zZWxlY3QuZW1pdChzaGFyZWRDYXNlKTtcbiAgICB0aGlzLmNhc2VDb3VudCA9IHRoaXMuc2hhcmVDYXNlcy5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgb25TeW5jaHJvbml6ZVN0b3JlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNocm9uaXplU3RvcmUuZW1pdChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUNhc2VJZChzaGFyZWRDYXNlOiBTaGFyZWRDYXNlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc2hhcmVkQ2FzZS5jYXNlSWQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,27 +1,59 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { Router } from '@angular/router';
2
3
  import { Observable } from 'rxjs';
4
+ import { tap } from 'rxjs/operators';
5
+ import { SharedCaseErrorMessages } from '../../models/case-share.model';
3
6
  import { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';
4
7
  import { UserSelectComponent } from '../user-select/user-select.component';
5
8
  export class ShareCaseComponent {
6
- constructor(stateService) {
9
+ constructor(stateService, router) {
7
10
  this.stateService = stateService;
11
+ this.router = router;
8
12
  this.shareCases = []; // cases selected for sharing
13
+ this.continueAllowed = false;
14
+ this.selectedUserToRemove = null;
9
15
  this.removeUserFromCaseToggleOn = false;
10
16
  this.users = []; // users of this organisation the cases can be shared with
11
17
  this.confirmLink = '';
18
+ this.cancelLink = '';
19
+ this.showRemoveUsers = false;
20
+ this.fnTitle = '';
21
+ this.title = '';
12
22
  this.unselect = new EventEmitter();
13
23
  this.synchronizeStore = new EventEmitter();
24
+ this.validationErrors = [];
14
25
  }
15
26
  ngOnInit() {
16
- this.shareCases$.subscribe(shareCases => {
27
+ this.shareCases$
28
+ .pipe(tap(sharedCases => {
29
+ // Update the list of users assigned to at least one case
30
+ this.getAssignedUsers(sharedCases.filter(sharedCase => sharedCase.sharedWith && sharedCase.sharedWith.length > 0));
31
+ }))
32
+ .subscribe(shareCases => {
17
33
  this.shareCases = shareCases;
18
34
  this.stateService.setCases(shareCases);
35
+ // Set the config to be used by the xuilib-gov-uk-error-message component, in particular the element ID to
36
+ // which the error message is associated
37
+ if (shareCases) {
38
+ this.selectedCasesErrorMessageConfig = {
39
+ id: shareCases.length > 0 ? 'cases' : 'noCaseDisplay'
40
+ };
41
+ }
19
42
  });
20
43
  this.shareCases$ = this.stateService.state;
44
+ this.shareCaseErrorMessage = { isInvalid: false, messages: [] };
21
45
  }
22
46
  onUnselect(c) {
23
- this.unselect.emit(c);
24
- this.stateService.removeCase(c.caseId);
47
+ this.validationErrors = [];
48
+ if (this.stateService.getCases().length === 1) {
49
+ this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.OneCaseMustBeSelected });
50
+ this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.OneCaseMustBeSelected] };
51
+ window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
52
+ }
53
+ else {
54
+ this.unselect.emit(c);
55
+ this.stateService.removeCase(c.caseId);
56
+ }
25
57
  }
26
58
  onSynchronizeStore(event) {
27
59
  this.synchronizeStore.emit(event);
@@ -36,25 +68,39 @@ export class ShareCaseComponent {
36
68
  this.userSelect.clear();
37
69
  }
38
70
  this.synchronizeStore.emit(newSharedCases);
71
+ // Update the list of assigned users (which includes pending users)
72
+ this.getAssignedUsers(newSharedCases);
73
+ }
74
+ removeUser() {
75
+ if (this.selectedUserToRemove) {
76
+ const newSharedCases = this.stateService.requestUnshare(this.selectedUserToRemove);
77
+ this.synchronizeStore.emit(newSharedCases);
78
+ }
39
79
  }
40
80
  isDisabledAdd() {
41
81
  return this.selectedUser === null || this.shareCases.length === 0;
42
82
  }
43
- isDisabledContinue() {
44
- let isDisabled = true;
83
+ /**
84
+ * Function originally used to set disabled state of "Continue" button, now called by the button click handler to
85
+ * control whether navigation to the confirmation page is allowed. It is prevented if no changes have been made
86
+ */
87
+ setContinueAllowed() {
88
+ // Always start with continueAllowed = false. This covers the scenario where a user might add someone for sharing
89
+ // a case (so, continueAllowed = true), then removes the same user before trying to continue. This would
90
+ // erroneously leave continueAllowed as true
91
+ this.continueAllowed = false;
45
92
  this.shareCases$.subscribe(shareCases => {
46
93
  for (const caseState of shareCases) {
47
94
  if (caseState.pendingShares && caseState.pendingShares.length > 0) {
48
- isDisabled = false;
95
+ this.continueAllowed = true;
49
96
  break;
50
97
  }
51
98
  if (caseState.pendingUnshares && caseState.pendingUnshares.length > 0) {
52
- isDisabled = false;
99
+ this.continueAllowed = true;
53
100
  break;
54
101
  }
55
102
  }
56
103
  });
57
- return isDisabled;
58
104
  }
59
105
  onDeselect(sharedCase) {
60
106
  if (sharedCase !== null) {
@@ -68,24 +114,92 @@ export class ShareCaseComponent {
68
114
  }
69
115
  this.stateService.setCases(this.shareCases);
70
116
  }
117
+ onContinue() {
118
+ this.setContinueAllowed();
119
+ // If continuation is not allowed, set an error message
120
+ if (!this.continueAllowed) {
121
+ this.validationErrors = [];
122
+ this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.NoChangesRequested });
123
+ this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.NoChangesRequested] };
124
+ window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
125
+ }
126
+ // Navigate to confirmation page only if allowed to continue
127
+ if (this.continueAllowed) {
128
+ // Check that no case is left unassigned; a user can be removed only if there is another current user, or if at
129
+ // least one user is to be added. Prevent navigation to confirmation page if there is at least one case left in
130
+ // an unassigned state
131
+ if (this.hasCasesLeftUnassigned(this.shareCases)) {
132
+ this.validationErrors = [];
133
+ this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.OnePersonMustBeAssigned });
134
+ this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.OnePersonMustBeAssigned] };
135
+ window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
136
+ }
137
+ else {
138
+ this.router.navigate([this.confirmLink]);
139
+ }
140
+ }
141
+ }
142
+ /**
143
+ * Gets a unique list of all users that have been assigned, or are pending assigment to, at least one case
144
+ * @param sharedCases The list of shared cases from which to get users these are shared with, or are to be shared with
145
+ */
146
+ getAssignedUsers(sharedCases) {
147
+ const users = [];
148
+ sharedCases.forEach(sharedCase => {
149
+ if (sharedCase.sharedWith) {
150
+ sharedCase.sharedWith.forEach(user => {
151
+ if (!users.some(existingUser => user.idamId === existingUser.idamId)) {
152
+ users.push(user);
153
+ }
154
+ });
155
+ }
156
+ if (sharedCase.pendingShares) {
157
+ sharedCase.pendingShares.forEach(user => {
158
+ if (!users.some(existingUser => user.idamId === existingUser.idamId)) {
159
+ users.push(user);
160
+ }
161
+ });
162
+ }
163
+ });
164
+ this.assignedUsers = users;
165
+ }
166
+ /**
167
+ * Checks if any shared cases have been left unassigned. This occurs if a shared case has a number of pending
168
+ * unshares equal to the number of current shares, and there are no pending shares.
169
+ * @param sharedCases The array of shared cases to check
170
+ * @returns `true` if at least one case has the condition described above; `false` otherwise
171
+ */
172
+ hasCasesLeftUnassigned(sharedCases) {
173
+ return sharedCases.some(sharedCase => {
174
+ return sharedCase.pendingUnshares && sharedCase.sharedWith &&
175
+ sharedCase.pendingUnshares.length === sharedCase.sharedWith.length &&
176
+ (!sharedCase.pendingShares || sharedCase.pendingShares.length === 0);
177
+ });
178
+ }
71
179
  }
72
180
  ShareCaseComponent.decorators = [
73
181
  { type: Component, args: [{
74
182
  selector: 'xuilib-share-case',
75
- 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",
76
- styles: [""]
183
+ template: "<xuilib-hmcts-error-summary\n [errorMessages]=\"validationErrors\"\n [header]=\"'There is a problem'\"\n></xuilib-hmcts-error-summary>\n<h1 *ngIf=\"title\" class=\"govuk-heading-xl govuk-!-margin-top-2\">\n <span *ngIf=\"fnTitle\" class=\"govuk-caption-xl\">{{fnTitle}}</span>\n {{title}}\n</h1>\n<div id=\"add-user\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"add-user-input\">{{addUserLabel}}</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 [(ngModel)]=\"selectedUserToRemove\" class=\"govuk-select\" id=\"remove-user-input\" aria-describedby=\"remove-user-hint\">\n <option [ngValue]=\"null\" selected>Select a person</option>\n <option *ngFor=\"let user of assignedUsers\" [ngValue]=\"user\">{{user.firstName}} {{user.lastName}} - {{user.email}}</option>\n </select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-remove-user\" (click)=\"removeUser()\" class=\"govuk-button govuk-button--secondary\" title=\"Remove user from selected cases\">Remove</button>\n </div>\n </div>\n </div>\n</div>\n\n<div id=\"cases\" [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n <h3 id=\"title-selected-cases\" class=\"govuk-heading-m\">Selected cases</h3>\n <xuilib-gov-uk-error-message [config]=\"selectedCasesErrorMessageConfig\" [errorMessage]=\"shareCaseErrorMessage\"></xuilib-gov-uk-error-message>\n <div *ngIf=\"shareCases && shareCases.length > 0\" class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-with-summary-sections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\"\n [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n No cases to display.\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" class=\"govuk-button-group\">\n <button id=\"btn-continue\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"onContinue()\" title=\"Continue\">Continue</button>\n <button id=\"btn-cancel\" class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" title=\"Cancel\" [routerLink]=\"cancelLink\">Cancel</button>\n</div>\n",
184
+ styles: ["select{width:100%}"]
77
185
  },] }
78
186
  ];
79
187
  ShareCaseComponent.ctorParameters = () => [
80
- { type: CaseSharingStateService }
188
+ { type: CaseSharingStateService },
189
+ { type: Router }
81
190
  ];
82
191
  ShareCaseComponent.propDecorators = {
83
192
  removeUserFromCaseToggleOn: [{ type: Input }],
84
193
  shareCases$: [{ type: Input }],
85
194
  users: [{ type: Input }],
86
195
  confirmLink: [{ type: Input }],
196
+ cancelLink: [{ type: Input }],
197
+ addUserLabel: [{ type: Input }],
198
+ showRemoveUsers: [{ type: Input }],
199
+ fnTitle: [{ type: Input }],
200
+ title: [{ type: Input }],
87
201
  unselect: [{ type: Output }],
88
202
  synchronizeStore: [{ type: Output }],
89
203
  userSelect: [{ type: ViewChild, args: [UserSelectComponent, { static: true },] }]
90
204
  };
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtY2FzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlLWNhc2Uvc2hhcmUtY2FzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdsQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQU8zRSxNQUFNLE9BQU8sa0JBQWtCO0lBbUI3QixZQUE2QixZQUFxQztRQUFyQyxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFqQjNELGVBQVUsR0FBaUIsRUFBRSxDQUFDLENBQUMsNkJBQTZCO1FBRW5ELCtCQUEwQixHQUFZLEtBQUssQ0FBQztRQUc1QyxVQUFLLEdBQWtCLEVBQUUsQ0FBQyxDQUFDLDBEQUEwRDtRQUVyRixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUV4QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUMxQyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBT1UsQ0FBQztJQUVoRSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7WUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQzdDLENBQUM7SUFFTSxVQUFVLENBQUMsQ0FBYTtRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEtBQVU7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sY0FBYyxDQUFDLElBQWlCO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFTSxPQUFPO1FBQ1osTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7U0FBRTtRQUNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxVQUFVLEdBQVksSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3RDLEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFO2dCQUNsQyxJQUFJLFNBQVMsQ0FBQyxhQUFhLElBQUksU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUNqRSxVQUFVLEdBQUcsS0FBSyxDQUFDO29CQUNuQixNQUFNO2lCQUNQO2dCQUNELElBQUksU0FBUyxDQUFDLGVBQWUsSUFBSSxTQUFTLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3JFLFVBQVUsR0FBRyxLQUFLLENBQUM7b0JBQ25CLE1BQU07aUJBQ1A7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxVQUFzQjtRQUN0QyxJQUFJLFVBQVUsS0FBSyxJQUFJLEVBQUU7WUFDdkIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ25CLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDckMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxNQUFNLEVBQUU7b0JBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ3ZCO2FBQ0Y7WUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztTQUMzQjtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QyxDQUFDOzs7WUF0RkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLCt2RUFBMEM7O2FBRTNDOzs7WUFQUSx1QkFBdUI7Ozt5Q0FZN0IsS0FBSzswQkFFTCxLQUFLO29CQUNMLEtBQUs7MEJBRUwsS0FBSzt1QkFFTCxNQUFNOytCQUNOLE1BQU07eUJBSU4sU0FBUyxTQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2hhcmVkQ2FzZSB9IGZyb20gJy4uLy4uL21vZGVscy9jYXNlLXNoYXJlLm1vZGVsJztcbmltcG9ydCB7IFVzZXJEZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXItZGV0YWlscy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlU2hhcmluZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nhc2Utc2hhcmluZy1zdGF0ZS9jYXNlLXNoYXJpbmctc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vdXNlci1zZWxlY3QvdXNlci1zZWxlY3QuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXNoYXJlLWNhc2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2hhcmUtY2FzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NoYXJlLWNhc2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZUNhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBzaGFyZUNhc2VzOiBTaGFyZWRDYXNlW10gPSBbXTsgLy8gY2FzZXMgc2VsZWN0ZWQgZm9yIHNoYXJpbmdcblxuICBASW5wdXQoKSBwdWJsaWMgcmVtb3ZlVXNlckZyb21DYXNlVG9nZ2xlT246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBwdWJsaWMgc2hhcmVDYXNlcyQ6IE9ic2VydmFibGU8U2hhcmVkQ2FzZVtdPjtcbiAgQElucHV0KCkgcHVibGljIHVzZXJzOiBVc2VyRGV0YWlsc1tdID0gW107IC8vIHVzZXJzIG9mIHRoaXMgb3JnYW5pc2F0aW9uIHRoZSBjYXNlcyBjYW4gYmUgc2hhcmVkIHdpdGhcblxuICBASW5wdXQoKSBwdWJsaWMgY29uZmlybUxpbms6IHN0cmluZyA9ICcnO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgdW5zZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFNoYXJlZENhc2U+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgc3luY2hyb25pemVTdG9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHByaXZhdGUgc2VsZWN0ZWRVc2VyOiBVc2VyRGV0YWlscztcblxuICBAVmlld0NoaWxkKFVzZXJTZWxlY3RDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlclNlbGVjdDogVXNlclNlbGVjdENvbXBvbmVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogQ2FzZVNoYXJpbmdTdGF0ZVNlcnZpY2UpIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNoYXJlQ2FzZXMkLnN1YnNjcmliZShzaGFyZUNhc2VzID0+IHtcbiAgICAgIHRoaXMuc2hhcmVDYXNlcyA9IHNoYXJlQ2FzZXM7XG4gICAgICB0aGlzLnN0YXRlU2VydmljZS5zZXRDYXNlcyhzaGFyZUNhc2VzKTtcbiAgICB9KTtcbiAgICB0aGlzLnNoYXJlQ2FzZXMkID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc3RhdGU7XG4gIH1cblxuICBwdWJsaWMgb25VbnNlbGVjdChjOiBTaGFyZWRDYXNlKTogdm9pZCB7XG4gICAgdGhpcy51bnNlbGVjdC5lbWl0KGMpO1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnJlbW92ZUNhc2UoYy5jYXNlSWQpO1xuICB9XG5cbiAgcHVibGljIG9uU3luY2hyb25pemVTdG9yZShldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zeW5jaHJvbml6ZVN0b3JlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0ZWRVc2VyKHVzZXI6IFVzZXJEZXRhaWxzKSB7XG4gICAgdGhpcy5zZWxlY3RlZFVzZXIgPSB1c2VyO1xuICB9XG5cbiAgcHVibGljIGFkZFVzZXIoKSB7XG4gICAgY29uc3QgbmV3U2hhcmVkQ2FzZXMgPSB0aGlzLnN0YXRlU2VydmljZS5yZXF1ZXN0U2hhcmUodGhpcy5zZWxlY3RlZFVzZXIpO1xuICAgIHRoaXMuc2VsZWN0ZWRVc2VyID0gbnVsbDtcbiAgICBpZiAodGhpcy51c2VyU2VsZWN0KSB7IHRoaXMudXNlclNlbGVjdC5jbGVhcigpOyB9XG4gICAgdGhpcy5zeW5jaHJvbml6ZVN0b3JlLmVtaXQobmV3U2hhcmVkQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIGlzRGlzYWJsZWRBZGQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRVc2VyID09PSBudWxsIHx8IHRoaXMuc2hhcmVDYXNlcy5sZW5ndGggPT09IDA7XG4gIH1cblxuICBwdWJsaWMgaXNEaXNhYmxlZENvbnRpbnVlKCk6IGJvb2xlYW4ge1xuICAgIGxldCBpc0Rpc2FibGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgICB0aGlzLnNoYXJlQ2FzZXMkLnN1YnNjcmliZShzaGFyZUNhc2VzID0+IHtcbiAgICAgIGZvciAoY29uc3QgY2FzZVN0YXRlIG9mIHNoYXJlQ2FzZXMpIHtcbiAgICAgICAgaWYgKGNhc2VTdGF0ZS5wZW5kaW5nU2hhcmVzICYmIGNhc2VTdGF0ZS5wZW5kaW5nU2hhcmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhc2VTdGF0ZS5wZW5kaW5nVW5zaGFyZXMgJiYgY2FzZVN0YXRlLnBlbmRpbmdVbnNoYXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgb25EZXNlbGVjdChzaGFyZWRDYXNlOiBTaGFyZWRDYXNlKTogdm9pZCB7XG4gICAgaWYgKHNoYXJlZENhc2UgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZWQgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aGlzLnNoYXJlQ2FzZXMpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQuY2FzZUlkICE9PSBzaGFyZWRDYXNlLmNhc2VJZCkge1xuICAgICAgICAgIHVwZGF0ZWQucHVzaChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5zaGFyZUNhc2VzID0gdXBkYXRlZDtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0Q2FzZXModGhpcy5zaGFyZUNhc2VzKTtcbiAgfVxufVxuIl19
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtY2FzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlLWNhc2Uvc2hhcmUtY2FzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBYyx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXBGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBTzNFLE1BQU0sT0FBTyxrQkFBa0I7SUErQjdCLFlBQTZCLFlBQXFDLEVBQ3JDLE1BQWM7UUFEZCxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFDckMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQTlCcEMsZUFBVSxHQUFpQixFQUFFLENBQUMsQ0FBQyw2QkFBNkI7UUFFNUQsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEIseUJBQW9CLEdBQWdCLElBQUksQ0FBQztRQUVoQywrQkFBMEIsR0FBWSxLQUFLLENBQUM7UUFHNUMsVUFBSyxHQUFrQixFQUFFLENBQUMsQ0FBQywwREFBMEQ7UUFFckYsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUV4QixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxZQUFPLEdB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Q3RDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7d0JBQ3BFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2xCO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLHNCQUFzQixDQUFDLFdBQXlCO1FBQ3JELE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNuQyxPQUFPLFVBQVUsQ0FBQyxlQUFlLElBQUksVUFBVSxDQUFDLFVBQVU7Z0JBQ3hELFVBQVUsQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTTtnQkFDbEUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUF0TUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLDZ0SUFBMEM7O2FBRTNDOzs7WUFQUSx1QkFBdUI7WUFOdkIsTUFBTTs7O3lDQXNCWixLQUFLOzBCQUVMLEtBQUs7b0JBQ0wsS0FBSzswQkFFTCxLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzs4QkFDTCxLQUFLO3NCQUNMLEtBQUs7b0JBQ0wsS0FBSzt1QkFFTCxNQUFNOytCQUNOLE1BQU07eUJBSU4sU0FBUyxTQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVycm9yTWVzc2FnZXNNb2RlbCwgR292VWlDb25maWdNb2RlbCB9IGZyb20gJy4uLy4uL2dvdi11aS9tb2RlbHMnO1xuaW1wb3J0IHsgU2hhcmVkQ2FzZSwgU2hhcmVkQ2FzZUVycm9yTWVzc2FnZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FzZS1zaGFyZS5tb2RlbCc7XG5pbXBvcnQgeyBVc2VyRGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyLWRldGFpbHMubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZVNoYXJpbmdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXNlLXNoYXJpbmctc3RhdGUvY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uL3VzZXItc2VsZWN0L3VzZXItc2VsZWN0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aWxpYi1zaGFyZS1jYXNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NoYXJlLWNhc2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaGFyZS1jYXNlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVDYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgc2hhcmVDYXNlczogU2hhcmVkQ2FzZVtdID0gW107IC8vIGNhc2VzIHNlbGVjdGVkIGZvciBzaGFyaW5nXG4gIHB1YmxpYyBzZWxlY3RlZENhc2VzRXJyb3JNZXNzYWdlQ29uZmlnOiBHb3ZVaUNvbmZpZ01vZGVsO1xuICBwdWJsaWMgY29udGludWVBbGxvd2VkID0gZmFsc2U7XG4gIHB1YmxpYyBhc3NpZ25lZFVzZXJzOiBVc2VyRGV0YWlsc1tdO1xuICBwdWJsaWMgc2VsZWN0ZWRVc2VyVG9SZW1vdmU6IFVzZXJEZXRhaWxzID0gbnVsbDtcblxuICBASW5wdXQoKSBwdWJsaWMgcmVtb3ZlVXNlckZyb21DYXNlVG9nZ2xlT246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBwdWJsaWMgc2hhcmVDYXNlcyQ6IE9ic2VydmFibGU8U2hhcmVkQ2FzZVtdPjtcbiAgQElucHV0KCkgcHVibGljIHVzZXJzOiBVc2VyRGV0YWlsc1tdID0gW107IC8vIHVzZXJzIG9mIHRoaXMgb3JnYW5pc2F0aW9uIHRoZSBjYXNlcyBjYW4gYmUgc2hhcmVkIHdpdGhcblxuICBASW5wdXQoKSBwdWJsaWMgY29uZmlybUxpbms6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgY2FuY2VsTGluazogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRVc2VyTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHNob3dSZW1vdmVVc2VyczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgZm5UaXRsZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyB0aXRsZTogc3RyaW5nID0gJyc7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyB1bnNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8U2hhcmVkQ2FzZT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBzeW5jaHJvbml6ZVN0b3JlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZFVzZXI6IFVzZXJEZXRhaWxzO1xuXG4gIEBWaWV3Q2hpbGQoVXNlclNlbGVjdENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSByZWFkb25seSB1c2VyU2VsZWN0OiBVc2VyU2VsZWN0Q29tcG9uZW50O1xuXG4gIHB1YmxpYyB2YWxpZGF0aW9uRXJyb3JzOiB7IGlkOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyB9W10gPSBbXTtcbiAgcHVibGljIHNoYXJlQ2FzZUVycm9yTWVzc2FnZTogRXJyb3JNZXNzYWdlc01vZGVsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3RhdGVTZXJ2aWNlOiBDYXNlU2hhcmluZ1N0YXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcikgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2hhcmVDYXNlcyRcbiAgICAgIC5waXBlKHRhcChzaGFyZWRDYXNlcyA9PiB7XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgbGlzdCBvZiB1c2VycyBhc3NpZ25lZCB0byBhdCBsZWFzdCBvbmUgY2FzZVxuICAgICAgICB0aGlzLmdldEFzc2lnbmVkVXNlcnMoc2hhcmVkQ2FzZXMuZmlsdGVyKHNoYXJlZENhc2UgPT4gc2hhcmVkQ2FzZS5zaGFyZWRXaXRoICYmIHNoYXJlZENhc2Uuc2hhcmVkV2l0aC5sZW5ndGggPiAwKSk7XG4gICAgICB9KSlcbiAgICAgIC5zdWJzY3JpYmUoc2hhcmVDYXNlcyA9PiB7XG4gICAgICAgIHRoaXMuc2hhcmVDYXNlcyA9IHNoYXJlQ2FzZXM7XG4gICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNldENhc2VzKHNoYXJlQ2FzZXMpO1xuICAgICAgICAvLyBTZXQgdGhlIGNvbmZpZyB0byBiZSB1c2VkIGJ5IHRoZSB4dWlsaWItZ292LXVrLWVycm9yLW1lc3NhZ2UgY29tcG9uZW50LCBpbiBwYXJ0aWN1bGFyIHRoZSBlbGVtZW50IElEIHRvXG4gICAgICAgIC8vIHdoaWNoIHRoZSBlcnJvciBtZXNzYWdlIGlzIGFzc29jaWF0ZWRcbiAgICAgICAgaWYgKHNoYXJlQ2FzZXMpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXNFcnJvck1lc3NhZ2VDb25maWcgPSB7XG4gICAgICAgICAgICBpZDogc2hhcmVDYXNlcy5sZW5ndGggPiAwID8gJ2Nhc2VzJyA6ICdub0Nhc2VEaXNwbGF5J1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuc2hhcmVDYXNlcyQgPSB0aGlzLnN0YXRlU2VydmljZS5zdGF0ZTtcbiAgICB0aGlzLnNoYXJlQ2FzZUVycm9yTWVzc2FnZSA9IHsgaXNJbnZhbGlkOiBmYWxzZSwgbWVzc2FnZXM6IFtdIH07XG4gIH1cblxuICBwdWJsaWMgb25VbnNlbGVjdChjOiBTaGFyZWRDYXNlKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gW107XG4gICAgaWYgKHRoaXMuc3RhdGVTZXJ2aWNlLmdldENhc2VzKCkubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaCh7IGlkOiAnY2FzZXMnLCBtZXNzYWdlOiBTaGFyZWRDYXNlRXJyb3JNZXNzYWdlcy5PbmVDYXNlTXVzdEJlU2VsZWN0ZWQgfSk7XG4gICAgICB0aGlzLnNoYXJlQ2FzZUVycm9yTWVzc2FnZSA9IHsgaXNJbnZhbGlkOiB0cnVlLCBtZXNzYWdlczogW1NoYXJlZENhc2VFcnJvck1lc3NhZ2VzLk9uZUNhc2VNdXN0QmVTZWxlY3RlZF0gfTtcbiAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgbGVmdDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVuc2VsZWN0LmVtaXQoYyk7XG4gICAgICB0aGlzLnN0YXRlU2VydmljZS5yZW1vdmVDYXNlKGMuY2FzZUlkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25TeW5jaHJvbml6ZVN0b3JlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNocm9uaXplU3RvcmUuZW1pdChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RlZFVzZXIodXNlcjogVXNlckRldGFpbHMpIHtcbiAgICB0aGlzLnNlbGVjdGVkVXNlciA9IHVzZXI7XG4gIH1cblxuICBwdWJsaWMgYWRkVXNlcigpIHtcbiAgICBjb25zdCBuZXdTaGFyZWRDYXNlcyA9IHRoaXMuc3RhdGVTZXJ2aWNlLnJlcXVlc3RTaGFyZSh0aGlzLnNlbGVjdGVkVXNlcik7XG4gICAgdGhpcy5zZWxlY3RlZFVzZXIgPSBudWxsO1xuICAgIGlmICh0aGlzLnVzZXJTZWxlY3QpIHsgdGhpcy51c2VyU2VsZWN0LmNsZWFyKCk7IH1cbiAgICB0aGlzLnN5bmNocm9uaXplU3RvcmUuZW1pdChuZXdTaGFyZWRDYXNlcyk7XG4gICAgLy8gVXBkYXRlIHRoZSBsaXN0IG9mIGFzc2lnbmVkIHVzZXJzICh3aGljaCBpbmNsdWRlcyBwZW5kaW5nIHVzZXJzKVxuICAgIHRoaXMuZ2V0QXNzaWduZWRVc2VycyhuZXdTaGFyZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlVXNlcigpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFVzZXJUb1JlbW92ZSkge1xuICAgICAgY29uc3QgbmV3U2hhcmVkQ2FzZXMgPSB0aGlzLnN0YXRlU2VydmljZS5yZXF1ZXN0VW5zaGFyZSh0aGlzLnNlbGVjdGVkVXNlclRvUmVtb3ZlKTtcbiAgICAgIHRoaXMuc3luY2hyb25pemVTdG9yZS5lbWl0KG5ld1NoYXJlZENhc2VzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNEaXNhYmxlZEFkZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFVzZXIgPT09IG51bGwgfHwgdGhpcy5zaGFyZUNhc2VzLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiBvcmlnaW5hbGx5IHVzZWQgdG8gc2V0IGRpc2FibGVkIHN0YXRlIG9mIFwiQ29udGludWVcIiBidXR0b24sIG5vdyBjYWxsZWQgYnkgdGhlIGJ1dHRvbiBjbGljayBoYW5kbGVyIHRvXG4gICAqIGNvbnRyb2wgd2hldGhlciBuYXZpZ2F0aW9uIHRvIHRoZSBjb25maXJtYXRpb24gcGFnZSBpcyBhbGxvd2VkLiBJdCBpcyBwcmV2ZW50ZWQgaWYgbm8gY2hhbmdlcyBoYXZlIGJlZW4gbWFkZVxuICAgKi9cbiAgcHVibGljIHNldENvbnRpbnVlQWxsb3dlZCgpOiB2b2lkIHtcbiAgICAvLyBBbHdheXMgc3RhcnQgd2l0aCBjb250aW51ZUFsbG93ZWQgPSBmYWxzZS4gVGhpcyBjb3ZlcnMgdGhlIHNjZW5hcmlvIHdoZXJlIGEgdXNlciBtaWdodCBhZGQgc29tZW9uZSBmb3Igc2hhcmluZ1xuICAgIC8vIGEgY2FzZSAoc28sIGNvbnRpbnVlQWxsb3dlZCA9IHRydWUpLCB0aGVuIHJlbW92ZXMgdGhlIHNhbWUgdXNlciBiZWZvcmUgdHJ5aW5nIHRvIGNvbnRpbnVlLiBUaGlzIHdvdWxkXG4gICAgLy8gZXJyb25lb3VzbHkgbGVhdmUgY29udGludWVBbGxvd2VkIGFzIHRydWVcbiAgICB0aGlzLmNvbnRpbnVlQWxsb3dlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2hhcmVDYXNlcyQuc3Vic2NyaWJlKHNoYXJlQ2FzZXMgPT4ge1xuICAgICAgZm9yIChjb25zdCBjYXNlU3RhdGUgb2Ygc2hhcmVDYXNlcykge1xuICAgICAgICBpZiAoY2FzZVN0YXRlLnBlbmRpbmdTaGFyZXMgJiYgY2FzZVN0YXRlLnBlbmRpbmdTaGFyZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuY29udGludWVBbGxvd2VkID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FzZVN0YXRlLnBlbmRpbmdVbnNoYXJlcyAmJiBjYXNlU3RhdGUucGVuZGluZ1Vuc2hhcmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmNvbnRpbnVlQWxsb3dlZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRlc2VsZWN0KHNoYXJlZENhc2U6IFNoYXJlZENhc2UpOiB2b2lkIHtcbiAgICBpZiAoc2hhcmVkQ2FzZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdXBkYXRlZCA9IFtdO1xuICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRoaXMuc2hhcmVDYXNlcykge1xuICAgICAgICBpZiAoZWxlbWVudC5jYXNlSWQgIT09IHNoYXJlZENhc2UuY2FzZUlkKSB7XG4gICAgICAgICAgdXBkYXRlZC5wdXNoKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnNoYXJlQ2FzZXMgPSB1cGRhdGVkO1xuICAgIH1cbiAgICB0aGlzLnN0YXRlU2VydmljZS5zZXRDYXNlcyh0aGlzLnNoYXJlQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIG9uQ29udGludWUoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRDb250aW51ZUFsbG93ZWQoKTtcbiAgICAvLyBJZiBjb250aW51YXRpb24gaXMgbm90IGFsbG93ZWQsIHNldCBhbiBlcnJvciBtZXNzYWdlXG4gICAgaWYgKCF0aGlzLmNvbnRpbnVlQWxsb3dlZCkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gW107XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaCh7IGlkOiAnY2FzZXMnLCBtZXNzYWdlOiBTaGFyZWRDYXNlRXJyb3JNZXNzYWdlcy5Ob0NoYW5nZXNSZXF1ZXN0ZWQgfSk7XG4gICAgICB0aGlzLnNoYXJlQ2FzZUVycm9yTWVzc2FnZSA9IHsgaXNJbnZhbGlkOiB0cnVlLCBtZXNzYWdlczogW1NoYXJlZENhc2VFcnJvck1lc3NhZ2VzLk5vQ2hhbmdlc1JlcXVlc3RlZF0gfTtcbiAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgbGVmdDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIH1cbiAgICAvLyBOYXZpZ2F0ZSB0byBjb25maXJtYXRpb24gcGFnZSBvbmx5IGlmIGFsbG93ZWQgdG8gY29udGludWVcbiAgICBpZiAodGhpcy5jb250aW51ZUFsbG93ZWQpIHtcbiAgICAgIC8vIENoZWNrIHRoYXQgbm8gY2FzZSBpcyBsZWZ0IHVuYXNzaWduZWQ7IGEgdXNlciBjYW4gYmUgcmVtb3ZlZCBvbmx5IGlmIHRoZXJlIGlzIGFub3RoZXIgY3VycmVudCB1c2VyLCBvciBpZiBhdFxuICAgICAgLy8gbGVhc3Qgb25lIHVzZXIgaXMgdG8gYmUgYWRkZWQuIFByZXZlbnQgbmF2aWdhdGlvbiB0byBjb25maXJtYXRpb24gcGFnZSBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2FzZSBsZWZ0IGluXG4gICAgICAvLyBhbiB1bmFzc2lnbmVkIHN0YXRlXG4gICAgICBpZiAodGhpcy5oYXNDYXNlc0xlZnRVbmFzc2lnbmVkKHRoaXMuc2hhcmVDYXNlcykpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gW107XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKHsgaWQ6ICdjYXNlcycsIG1lc3NhZ2U6IFNoYXJlZENhc2VFcnJvck1lc3NhZ2VzLk9uZVBlcnNvbk11c3RCZUFzc2lnbmVkIH0pO1xuICAgICAgICB0aGlzLnNoYXJlQ2FzZUVycm9yTWVzc2FnZSA9IHsgaXNJbnZhbGlkOiB0cnVlLCBtZXNzYWdlczogW1NoYXJlZENhc2VFcnJvck1lc3NhZ2VzLk9uZVBlcnNvbk11c3RCZUFzc2lnbmVkXSB9O1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGxlZnQ6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmNvbmZpcm1MaW5rXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSB1bmlxdWUgbGlzdCBvZiBhbGwgdXNlcnMgdGhhdCBoYXZlIGJlZW4gYXNzaWduZWQsIG9yIGFyZSBwZW5kaW5nIGFzc2lnbWVudCB0bywgYXQgbGVhc3Qgb25lIGNhc2VcbiAgICogQHBhcmFtIHNoYXJlZENhc2VzIFRoZSBsaXN0IG9mIHNoYXJlZCBjYXNlcyBmcm9tIHdoaWNoIHRvIGdldCB1c2VycyB0aGVzZSBhcmUgc2hhcmVkIHdpdGgsIG9yIGFyZSB0byBiZSBzaGFyZWQgd2l0aFxuICAgKi9cbiAgcHVibGljIGdldEFzc2lnbmVkVXNlcnMoc2hhcmVkQ2FzZXM6IFNoYXJlZENhc2VbXSk6IHZvaWQge1xuICAgIGNvbnN0IHVzZXJzOiBVc2VyRGV0YWlsc1tdID0gW107XG4gICAgc2hhcmVkQ2FzZXMuZm9yRWFjaChzaGFyZWRDYXNlID0+IHtcbiAgICAgIGlmIChzaGFyZWRDYXNlLnNoYXJlZFdpdGgpIHtcbiAgICAgICAgc2hhcmVkQ2FzZS5zaGFyZWRXaXRoLmZvckVhY2godXNlciA9PiB7XG4gICAgICAgICAgaWYgKCF1c2Vycy5zb21lKGV4aXN0aW5nVXNlciA9PiB1c2VyLmlkYW1JZCA9PT0gZXhpc3RpbmdVc2VyLmlkYW1JZCkpIHtcbiAgICAgICAgICAgIHVzZXJzLnB1c2godXNlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMpIHtcbiAgICAgICAgc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLmZvckVhY2godXNlciA9PiB7XG4gICAgICAgICAgaWYgKCF1c2Vycy5zb21lKGV4aXN0aW5nVXNlciA9PiB1c2VyLmlkYW1JZCA9PT0gZXhpc3RpbmdVc2VyLmlkYW1JZCkpIHtcbiAgICAgICAgICAgIHVzZXJzLnB1c2godXNlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmFzc2lnbmVkVXNlcnMgPSB1c2VycztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYW55IHNoYXJlZCBjYXNlcyBoYXZlIGJlZW4gbGVmdCB1bmFzc2lnbmVkLiBUaGlzIG9jY3VycyBpZiBhIHNoYXJlZCBjYXNlIGhhcyBhIG51bWJlciBvZiBwZW5kaW5nXG4gICAqIHVuc2hhcmVzIGVxdWFsIHRvIHRoZSBudW1iZXIgb2YgY3VycmVudCBzaGFyZXMsIGFuZCB0aGVyZSBhcmUgbm8gcGVuZGluZyBzaGFyZXMuXG4gICAqIEBwYXJhbSBzaGFyZWRDYXNlcyBUaGUgYXJyYXkgb2Ygc2hhcmVkIGNhc2VzIHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIGB0cnVlYCBpZiBhdCBsZWFzdCBvbmUgY2FzZSBoYXMgdGhlIGNvbmRpdGlvbiBkZXNjcmliZWQgYWJvdmU7IGBmYWxzZWAgb3RoZXJ3aXNlXG4gICAqL1xuICBwdWJsaWMgaGFzQ2FzZXNMZWZ0VW5hc3NpZ25lZChzaGFyZWRDYXNlczogU2hhcmVkQ2FzZVtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNoYXJlZENhc2VzLnNvbWUoc2hhcmVkQ2FzZSA9PiB7XG4gICAgICByZXR1cm4gc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMgJiYgc2hhcmVkQ2FzZS5zaGFyZWRXaXRoICYmXG4gICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzLmxlbmd0aCA9PT0gc2hhcmVkQ2FzZS5zaGFyZWRXaXRoLmxlbmd0aCAmJlxuICAgICAgICAoIXNoYXJlZENhc2UucGVuZGluZ1NoYXJlcyB8fCBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMubGVuZ3RoID09PSAwKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './feature-toggle/feature-toggle.directive';
2
+ export * from './let/let.directive';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2RpcmVjdGl2ZXMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZlYXR1cmUtdG9nZ2xlL2ZlYXR1cmUtdG9nZ2xlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xldC9sZXQuZGlyZWN0aXZlJztcbiJdfQ==