@hmcts/rpx-xui-common-lib 1.9.0-consume-jrd-e-links-api-new-version-v3 → 1.9.0-persist-postcode
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/hmcts-rpx-xui-common-lib.umd.js +492 -103
- package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +1 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
- package/esm2015/hmcts-rpx-xui-common-lib.js +27 -24
- package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +2 -2
- package/esm2015/lib/components/find-service/find-service.component.js +2 -2
- package/esm2015/lib/components/generic-filter/generic-filter.component.js +2 -2
- package/esm2015/lib/components/public_api.js +3 -1
- package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +2 -2
- package/esm2015/lib/components/share-case/share-case.component.js +2 -2
- package/esm2015/lib/components/write-address/write-address.component.js +182 -0
- package/esm2015/lib/components/write-address-inputs/write-address-inputs.component.js +30 -0
- package/esm2015/lib/exui-common-lib.module.js +6 -2
- package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +2 -2
- package/esm2015/lib/models/address-message.enum.js +11 -0
- package/esm2015/lib/models/address-option.model.js +21 -0
- package/esm2015/lib/models/address.model.js +4 -0
- package/esm2015/lib/models/index.js +4 -1
- package/esm2015/lib/models/person.model.js +1 -1
- package/esm2015/lib/services/address/address-parser.js +76 -0
- package/esm2015/lib/services/address/address-type.enum.js +7 -0
- package/esm2015/lib/services/address/address.service.js +50 -0
- package/esm2015/lib/services/public-api.js +2 -1
- package/fesm2015/hmcts-rpx-xui-common-lib.js +426 -58
- package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
- package/hmcts-rpx-xui-common-lib.d.ts +26 -23
- package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
- package/lib/components/public_api.d.ts +2 -0
- package/lib/components/write-address/write-address.component.d.ts +42 -0
- package/lib/components/write-address-inputs/write-address-inputs.component.d.ts +13 -0
- package/lib/exui-common-lib.module.d.ts +2 -1
- package/lib/models/address-message.enum.d.ts +9 -0
- package/lib/models/address-option.model.d.ts +9 -0
- package/lib/models/address.model.d.ts +9 -0
- package/lib/models/index.d.ts +3 -0
- package/lib/models/person.model.d.ts +8 -7
- package/lib/services/address/address-parser.d.ts +17 -0
- package/lib/services/address/address-type.enum.d.ts +5 -0
- package/lib/services/address/address.service.d.ts +12 -0
- package/lib/services/public-api.d.ts +1 -0
- package/package.json +1 -1
|
@@ -8,14 +8,14 @@ import * as i1 from '@angular/router';
|
|
|
8
8
|
import { Router, NavigationEnd, RouterModule } from '@angular/router';
|
|
9
9
|
import { map, filter, distinctUntilChanged, delay, skipWhile, shareReplay, catchError, take, tap, switchMap, debounceTime, mergeMap } from 'rxjs/operators';
|
|
10
10
|
import * as LDClient from 'launchdarkly-js-client-sdk';
|
|
11
|
+
import * as i1$2 from '@angular/common/http';
|
|
12
|
+
import { HttpClient, HttpParams } from '@angular/common/http';
|
|
11
13
|
import * as i2 from '@angular/platform-browser';
|
|
12
14
|
import { Title } from '@angular/platform-browser';
|
|
13
15
|
import * as i1$1 from '@ng-idle/core';
|
|
14
16
|
import { DocumentInterruptSource, Idle, WindowInterruptSource } from '@ng-idle/core';
|
|
15
17
|
import * as i2$1 from '@ng-idle/keepalive';
|
|
16
18
|
import { Keepalive } from '@ng-idle/keepalive';
|
|
17
|
-
import * as i1$2 from '@angular/common/http';
|
|
18
|
-
import { HttpParams, HttpClient } from '@angular/common/http';
|
|
19
19
|
import { of as of$1 } from 'rxjs/internal/observable/of';
|
|
20
20
|
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
21
21
|
import { MatInputModule } from '@angular/material/input';
|
|
@@ -470,6 +470,216 @@ LaunchDarklyService.decorators = [
|
|
|
470
470
|
},] }
|
|
471
471
|
];
|
|
472
472
|
|
|
473
|
+
var AddressMessageEnum;
|
|
474
|
+
(function (AddressMessageEnum) {
|
|
475
|
+
AddressMessageEnum["NO_OPTION_SELECTED"] = "Please select an answer";
|
|
476
|
+
AddressMessageEnum["NO_STREET_SELECTED"] = "Enter building and street";
|
|
477
|
+
AddressMessageEnum["NO_CITY_SELECTED"] = "Enter town or city";
|
|
478
|
+
AddressMessageEnum["NO_COUNTRY_SELECTED"] = "Enter country";
|
|
479
|
+
AddressMessageEnum["NO_POSTCODE_SELECTED"] = "Enter a valid postcode";
|
|
480
|
+
AddressMessageEnum["SELECT_ADDRESS"] = "Select an address";
|
|
481
|
+
AddressMessageEnum["INVALID_POSTCODE"] = "Enter valid postcode";
|
|
482
|
+
})(AddressMessageEnum || (AddressMessageEnum = {}));
|
|
483
|
+
|
|
484
|
+
class AddressOption {
|
|
485
|
+
constructor(addressModel, description) {
|
|
486
|
+
if (description === null) {
|
|
487
|
+
this.value = addressModel;
|
|
488
|
+
this.description = this.getDescription();
|
|
489
|
+
}
|
|
490
|
+
else {
|
|
491
|
+
this.description = description;
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
getDescription() {
|
|
495
|
+
return this.removeInitialCommaIfPresent(`${this.value.addressLine1 === undefined ? '' : this.value.addressLine1}${this.prefixWithCommaIfPresent(this.value.addressLine2)}${this.prefixWithCommaIfPresent(this.value.addressLine3)}, ${this.value.postTown}`);
|
|
496
|
+
}
|
|
497
|
+
prefixWithCommaIfPresent(value) {
|
|
498
|
+
return value ? `, ${value}` : value;
|
|
499
|
+
}
|
|
500
|
+
removeInitialCommaIfPresent(value) {
|
|
501
|
+
return value.replace(new RegExp('^,', 'gi'), '');
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
// tslint:disable:variable-name
|
|
506
|
+
class AddressModel {
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
var SharedCaseErrorMessages;
|
|
510
|
+
(function (SharedCaseErrorMessages) {
|
|
511
|
+
SharedCaseErrorMessages["OneCaseMustBeSelected"] = "At least one case must be selected";
|
|
512
|
+
SharedCaseErrorMessages["NoChangesRequested"] = "You have not requested any changes to case sharing";
|
|
513
|
+
SharedCaseErrorMessages["OnePersonMustBeAssigned"] = "At least one person must be assigned to each case";
|
|
514
|
+
})(SharedCaseErrorMessages || (SharedCaseErrorMessages = {}));
|
|
515
|
+
|
|
516
|
+
var BadgeColour;
|
|
517
|
+
(function (BadgeColour) {
|
|
518
|
+
BadgeColour["BADGE_RED"] = "hmcts-badge--red";
|
|
519
|
+
BadgeColour["BADGE_BLUE"] = "hmcts-badge--blue";
|
|
520
|
+
BadgeColour["BADGE_GREEN"] = "hmcts-badge--green";
|
|
521
|
+
})(BadgeColour || (BadgeColour = {}));
|
|
522
|
+
|
|
523
|
+
class AnonymousFeatureUser {
|
|
524
|
+
}
|
|
525
|
+
class LoggedInFeatureUser {
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
class RadioFilterFieldConfig {
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
var BookingCheckType;
|
|
532
|
+
(function (BookingCheckType) {
|
|
533
|
+
BookingCheckType["NO_CHECK"] = "NO_CHECK";
|
|
534
|
+
BookingCheckType["BOOKINGS_AND_BASE"] = "BOOKINGS_AND_BASE";
|
|
535
|
+
BookingCheckType["POSSIBLE_BOOKINGS"] = "POSSIBLE_BOOKINGS";
|
|
536
|
+
})(BookingCheckType || (BookingCheckType = {}));
|
|
537
|
+
|
|
538
|
+
var PersonRole;
|
|
539
|
+
(function (PersonRole) {
|
|
540
|
+
PersonRole["JUDICIAL"] = "Judicial";
|
|
541
|
+
PersonRole["CASEWORKER"] = "Legal Ops";
|
|
542
|
+
PersonRole["ADMIN"] = "Admin";
|
|
543
|
+
PersonRole["CTSC"] = "CTSC";
|
|
544
|
+
PersonRole["ALL"] = "All";
|
|
545
|
+
})(PersonRole || (PersonRole = {}));
|
|
546
|
+
// Note: RoleCategory could replace PersonRole possibly
|
|
547
|
+
// However a lot of webapp logic is based on current PersonRole understanding
|
|
548
|
+
var RoleCategory;
|
|
549
|
+
(function (RoleCategory) {
|
|
550
|
+
RoleCategory["JUDICIAL"] = "JUDICIAL";
|
|
551
|
+
RoleCategory["CASEWORKER"] = "LEGAL_OPERATIONS";
|
|
552
|
+
RoleCategory["ADMIN"] = "ADMIN";
|
|
553
|
+
RoleCategory["CTSC"] = "CTSC";
|
|
554
|
+
RoleCategory["ALL"] = "ALL";
|
|
555
|
+
})(RoleCategory || (RoleCategory = {}));
|
|
556
|
+
|
|
557
|
+
var AddressType;
|
|
558
|
+
(function (AddressType) {
|
|
559
|
+
AddressType["DPA"] = "DPA";
|
|
560
|
+
AddressType["UK"] = "United Kingdom";
|
|
561
|
+
AddressType["RD06"] = "RD06";
|
|
562
|
+
})(AddressType || (AddressType = {}));
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* Moving all this logic here into Address Parser class, so that it
|
|
566
|
+
* will be easier for us when we move this parsing logic to into
|
|
567
|
+
* `Shim` java service.
|
|
568
|
+
*/
|
|
569
|
+
class AddressParser {
|
|
570
|
+
parse(address) {
|
|
571
|
+
const classification = `${address.CLASSIFICATION_CODE}`;
|
|
572
|
+
const addressModel = new AddressModel();
|
|
573
|
+
addressModel.addressLine1 = this.parseAddressLine1(classification, address);
|
|
574
|
+
addressModel.addressLine2 = this.parseAddressLine2(classification, address);
|
|
575
|
+
addressModel.addressLine3 = this.parseAddressLine3(classification, address);
|
|
576
|
+
addressModel.postCode = address.POSTCODE;
|
|
577
|
+
addressModel.postTown = address.POST_TOWN;
|
|
578
|
+
addressModel.country = AddressType.UK;
|
|
579
|
+
return addressModel;
|
|
580
|
+
}
|
|
581
|
+
parseAddressLine1(classification, address) {
|
|
582
|
+
let addressLine;
|
|
583
|
+
if (classification === AddressType.RD06) {
|
|
584
|
+
addressLine =
|
|
585
|
+
`${address.SUB_BUILDING_NAME} ${address.ORGANISATION_NAME} ${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;
|
|
586
|
+
}
|
|
587
|
+
else {
|
|
588
|
+
addressLine =
|
|
589
|
+
`${address.ORGANISATION_NAME}${this.prefixWithCommaIfPresent(address.BUILDING_NAME)}` +
|
|
590
|
+
`${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;
|
|
591
|
+
}
|
|
592
|
+
return this.removeNonAddressValues(addressLine);
|
|
593
|
+
}
|
|
594
|
+
parseAddressLine2(classification, address) {
|
|
595
|
+
let addressLine;
|
|
596
|
+
if (classification === AddressType.RD06) {
|
|
597
|
+
addressLine = `${address.BUILDING_NAME} `;
|
|
598
|
+
}
|
|
599
|
+
else {
|
|
600
|
+
addressLine =
|
|
601
|
+
`${address.SUB_BUILDING_NAME} ${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;
|
|
602
|
+
}
|
|
603
|
+
return this.removeNonAddressValues(addressLine);
|
|
604
|
+
}
|
|
605
|
+
parseAddressLine3(classification, address) {
|
|
606
|
+
let addressLine;
|
|
607
|
+
if (classification === AddressType.RD06) {
|
|
608
|
+
addressLine =
|
|
609
|
+
`${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;
|
|
610
|
+
}
|
|
611
|
+
else {
|
|
612
|
+
addressLine =
|
|
613
|
+
`${address.DEPENDENT_LOCALITY} ${address.DOUBLE_DEPENDENT_LOCALITY} ${address.DEPENDENT_THOROUGHFARE_NAME}`;
|
|
614
|
+
}
|
|
615
|
+
return this.removeNonAddressValues(addressLine);
|
|
616
|
+
}
|
|
617
|
+
removeNonAddressValues(line) {
|
|
618
|
+
line = line.replace(' null', ' ').replace('null ', ' ');
|
|
619
|
+
line = this.removeUndefinedString(line);
|
|
620
|
+
line = this.removeInitialComma(line);
|
|
621
|
+
line = this.removeEmptySpaces(line);
|
|
622
|
+
return line;
|
|
623
|
+
}
|
|
624
|
+
removeUndefinedString(value) {
|
|
625
|
+
return value.replace(new RegExp('undefined', 'gi'), '');
|
|
626
|
+
}
|
|
627
|
+
removeEmptySpaces(value) {
|
|
628
|
+
return value.replace(new RegExp(' +', 'gi'), ' ').trim();
|
|
629
|
+
}
|
|
630
|
+
removeInitialComma(value) {
|
|
631
|
+
return value.replace(new RegExp('^,', 'gi'), '');
|
|
632
|
+
}
|
|
633
|
+
prefixWithCommaIfPresent(value) {
|
|
634
|
+
return value ? `, ${value}` : value;
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
class AddressService {
|
|
639
|
+
constructor(http) {
|
|
640
|
+
this.http = http;
|
|
641
|
+
}
|
|
642
|
+
getAddressesForPostcode(postcode) {
|
|
643
|
+
return this.http
|
|
644
|
+
.get('/external/addresses?postcode=${postcode}'.replace('${postcode}', postcode), undefined)
|
|
645
|
+
.pipe(map((res) => res.results))
|
|
646
|
+
.pipe(map(output => output ? output.map((addresses) => this.format(new AddressParser().parse(addresses[AddressType.DPA]))) : []));
|
|
647
|
+
}
|
|
648
|
+
format(addressModel) {
|
|
649
|
+
return this.formatAddressLines(this.shiftAddressLinesUp(addressModel));
|
|
650
|
+
}
|
|
651
|
+
formatAddressLines(addressModel) {
|
|
652
|
+
['addressLine1', 'addressLine2', 'addressLine3', 'postTown'].forEach((value) => {
|
|
653
|
+
addressModel[value] = this.toCapitalCase(addressModel[value]);
|
|
654
|
+
});
|
|
655
|
+
return addressModel;
|
|
656
|
+
}
|
|
657
|
+
shiftAddressLinesUp(addressModel) {
|
|
658
|
+
if (addressModel.addressLine2 === '') {
|
|
659
|
+
addressModel.addressLine2 = addressModel.addressLine3;
|
|
660
|
+
addressModel.addressLine3 = '';
|
|
661
|
+
}
|
|
662
|
+
if (addressModel.addressLine1 === '') {
|
|
663
|
+
addressModel.addressLine1 = addressModel.addressLine2;
|
|
664
|
+
addressModel.addressLine2 = '';
|
|
665
|
+
}
|
|
666
|
+
return addressModel;
|
|
667
|
+
}
|
|
668
|
+
toCapitalCase(sentence) {
|
|
669
|
+
sentence = sentence.toLowerCase();
|
|
670
|
+
sentence.split(' ').forEach((value) => {
|
|
671
|
+
sentence = sentence.replace(value, value.charAt(0).toUpperCase() + value.substr(1));
|
|
672
|
+
});
|
|
673
|
+
return sentence;
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
AddressService.decorators = [
|
|
677
|
+
{ type: Injectable }
|
|
678
|
+
];
|
|
679
|
+
AddressService.ctorParameters = () => [
|
|
680
|
+
{ type: HttpClient }
|
|
681
|
+
];
|
|
682
|
+
|
|
473
683
|
const windowToken = new InjectionToken('Window');
|
|
474
684
|
function windowProvider() { return window; }
|
|
475
685
|
|
|
@@ -1643,7 +1853,7 @@ class GenericFilterComponent {
|
|
|
1643
1853
|
GenericFilterComponent.decorators = [
|
|
1644
1854
|
{ type: Component, args: [{
|
|
1645
1855
|
selector: 'xuilib-generic-filter',
|
|
1646
|
-
template: "<form [formGroup]=\"form\" (ngSubmit)=\"applyFilter(form)\">\n <div class=\"contain-classes\" *ngFor=\"let field of config.fields\">\n <hr *ngIf=\"field.lineBreakBefore\" class=\"govuk-section-break govuk-section-break--visible elevated-break\">\n <ng-container [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'group-title'\">\n <div [class]=\"field.titleClasses ? field.titleClasses: 'govuk-label govuk-label--m govuk-!-margin-bottom-4'\">\n {{ field.name | capitalize }}\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div class=\"govuk-form-group xui-generic-filter\"\n [hidden]=\"hidden(field, form)\"\n [id]=\"field.name\"\n [ngClass]=\"{'form-group-error': submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength || form.get(field.name).errors?.maxLength)}\">\n <div *ngIf=\"field.title\" class=\"xui-generic-filter__field-title\">\n <h3 [class]=\"field.titleClasses ? field.titleClasses : 'govuk-heading-s'\" style=\"margin-bottom: 0!important\">\n {{field.title | capitalize}}\n </h3>\n <div *ngIf=\"field?.titleHint\" class=\"govuk-!-margin-left-2\">\n {{ field.titleHint }}\n </div>\n </div>\n <p class=\"govuk-body\" *ngIf=\"field.subTitle\">{{field.subTitle}}</p>\n <div *ngIf=\"field.hintText\"\n [id]=\"field.hintText + '-hint'\" class=\"govuk-hint\">\n {{ field.hintText | rpxTranslate }}\n </div>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMinSelectedError && submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength)\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate}}</span> {{field.minSelectedError | rpxTranslate }}\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:' | rpxTranslate}}</span> {{field.maxSelectedError | rpxTranslate }}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\"\n *ngIf=\"field.emailError && submitted && form.get(field.name).errors?.email\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }}</span> {{field.emailError | rpxTranslate }}\n </span>\n <div class=\"govuk-body\" [class.govuk-body--maxWidth480px]=\"field.maxWidth480px\" [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" [attr.selected]=\"true\" [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <option class=\"govuk-radios__item\" *ngFor=\"let item of field.options\" [value]=\"item.key\">{{item.label}}</option>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'group-select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" selected [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <optgroup *ngFor = 'let grp of filteredSkillsByServices' label=\"{{grp.group | titlecase}}\">\n <option *ngFor = 'let item of grp.options' [value]=\"item.key\">{{item.label}}</option>\n </optgroup>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'nested-checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of filteredSkillsByServicesCheckbox; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'nested-checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of filteredSkillsByServicesCheckbox; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox-large'\">\n <div class=\"govuk-checkboxes\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label | rpxTranslate}}</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 | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-person'\">\n <xuilib-find-person subTitle=\"\" (personSelected)=\"updatePersonControls($event, field)\"\n (personFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findPersonGroup]=\"form\"\n [selectedPerson]=\"form.get(field.name)?.value?.email\"\n [userIncluded]=\"false\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n [services]=\"form.get(field.servicesField)?.value\"\n ></xuilib-find-person>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-location'\">\n <xuilib-find-location (locationFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [locationTitle]=\"field.locationTitle\"\n [enableAddLocationButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [submitted]=\"submitted\"\n [field]=\"field\"\n [services]=\"form.get(field.findLocationField)?.value\"\n [formSubmissionEvent$]=\"formSubmissionEvent$\"\n ></xuilib-find-location>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-task-name'\">\n <xuilib-find-task-name subTitle=\"\" (taskNameSelected)=\"updateTaskNameControls($event, field)\"\n (taskNameFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findTaskNameGroup]=\"form\"\n [selectedTaskName]=\"form.get(field.name)?.value?.task_type_name\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n [services]=\"form.get(field.servicesField)?.value\"\n ></xuilib-find-task-name>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-service'\">\n <xuilib-find-service (serviceFieldChanged)=\"inputServiceChanged(field)\"\n [field]=\"field\"\n [form]=\"form\"\n [formSubmissionEvent$]=\"formSubmissionEvent$\"\n [disabled]=\"disabled(field, form)\">\n </xuilib-find-service>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text-input'\">\n <input class=\"govuk-input\" type=\"text\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n [attr.maxlength]=\"field.maxlength ? field.maxlength : null\"\n [readonly]=\"field.readonly\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'email-input'\">\n <input class=\"govuk-input\" type=\"email\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n [readonly]=\"field.readonly\"\n />\n </ng-container>\n </div>\n </div>\n </ng-container>\n</ng-container>\n </div>\n <hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible\"/>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <button\n class=\"govuk-button govuk-!-margin-right-1 govuk-!-margin-bottom-0\"\n type=\"submit\"\n id=\"applyFilter\"\n [disabled]=\"config.enableDisabledButton && form.invalid\"\n >{{(config.applyButtonText || 'Apply') | rpxTranslate}}</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') | rpxTranslate}}</button>\n </div>\n </div>\n</form>\n",
|
|
1856
|
+
template: "<form [formGroup]=\"form\" (ngSubmit)=\"applyFilter(form)\">\n <div class=\"contain-classes\" *ngFor=\"let field of config.fields\">\n <hr *ngIf=\"field.lineBreakBefore\" class=\"govuk-section-break govuk-section-break--visible elevated-break\">\n <ng-container [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'group-title'\">\n <div [class]=\"field.titleClasses ? field.titleClasses: 'govuk-label govuk-label--m govuk-!-margin-bottom-4'\">\n {{ field.name | capitalize }}\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div class=\"govuk-form-group xui-generic-filter\"\n [hidden]=\"hidden(field, form)\"\n [id]=\"field.name\"\n [ngClass]=\"{'form-group-error': submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength || form.get(field.name).errors?.maxLength)}\">\n <div *ngIf=\"field.title\" class=\"xui-generic-filter__field-title\">\n <h3 [class]=\"field.titleClasses ? field.titleClasses : 'govuk-heading-s'\" style=\"margin-bottom: 0!important\">\n {{field.title | capitalize}}\n </h3>\n <div *ngIf=\"field?.titleHint\" class=\"govuk-!-margin-left-2\">\n {{ field.titleHint }}\n </div>\n </div>\n <p class=\"govuk-body\" *ngIf=\"field.subTitle\">{{field.subTitle}}</p>\n <div *ngIf=\"field.hintText\"\n [id]=\"field.hintText + '-hint'\" class=\"govuk-hint\">\n {{ field.hintText | rpxTranslate }}\n </div>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMinSelectedError && submitted && (form.get(field.name).errors?.required || form.get(field.name).errors?.minlength)\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate}}</span> {{field.minSelectedError | rpxTranslate }}\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:' | rpxTranslate}}</span> {{field.maxSelectedError | rpxTranslate }}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\"\n *ngIf=\"field.emailError && submitted && form.get(field.name).errors?.email\">\n <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }}</span> {{field.emailError | rpxTranslate }}\n </span>\n <div class=\"govuk-body\" [class.govuk-body--maxWidth480px]=\"field.maxWidth480px\" [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" [attr.selected]=\"true\" [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <option class=\"govuk-radios__item\" *ngFor=\"let item of field.options\" [value]=\"item.key\">{{item.label}}</option>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'group-select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option *ngIf=\"field.defaultOption\" selected [value]=\"field.defaultOption.key\">{{field.defaultOption.label}}</option>\n <optgroup *ngFor = 'let grp of filteredSkillsByServices' label=\"{{grp.group | titlecase}}\">\n <option *ngFor = 'let item of grp.options' [value]=\"item.key\">{{item.label}}</option>\n </optgroup>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'nested-checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of filteredSkillsByServicesCheckbox; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox-large'\">\n <div class=\"govuk-checkboxes\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + field.name + item.key\"\n [name]=\"'checkbox_' + field.name + item.key\"\n />\n <label\n [for]=\"'checkbox_' + field.name + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label | rpxTranslate}}</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 | rpxTranslate}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-person'\">\n <xuilib-find-person subTitle=\"\" (personSelected)=\"updatePersonControls($event, field)\"\n (personFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findPersonGroup]=\"form\"\n [selectedPerson]=\"form.get(field.name)?.value?.email\"\n [userIncluded]=\"false\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n [services]=\"form.get(field.servicesField)?.value\"\n ></xuilib-find-person>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-location'\">\n <xuilib-find-location (locationFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [locationTitle]=\"field.locationTitle\"\n [enableAddLocationButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [submitted]=\"submitted\"\n [field]=\"field\"\n [services]=\"form.get(field.findLocationField)?.value\"\n [formSubmissionEvent$]=\"formSubmissionEvent$\"\n ></xuilib-find-location>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-task-name'\">\n <xuilib-find-task-name subTitle=\"\" (taskNameSelected)=\"updateTaskNameControls($event, field)\"\n (taskNameFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findTaskNameGroup]=\"form\"\n [selectedTaskName]=\"form.get(field.name)?.value?.task_type_name\"\n [placeholderContent]=\"field.placeholderContent ? field.placeholderContent : ''\"\n [services]=\"form.get(field.servicesField)?.value\"\n ></xuilib-find-task-name>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-service'\">\n <xuilib-find-service (serviceFieldChanged)=\"inputServiceChanged(field)\"\n [field]=\"field\"\n [form]=\"form\"\n [formSubmissionEvent$]=\"formSubmissionEvent$\"\n [disabled]=\"disabled(field, form)\">\n </xuilib-find-service>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text-input'\">\n <input class=\"govuk-input\" type=\"text\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n [attr.maxlength]=\"field.maxlength ? field.maxlength : null\"\n [readonly]=\"field.readonly\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'email-input'\">\n <input class=\"govuk-input\" type=\"email\"\n [formControlName]=\"field.name\"\n [id]=\"field.name\"\n [attr.disabled]=\"disabled(field, form)\"\n (change)=\"fieldChanged(field, form)\"\n [readonly]=\"field.readonly\"\n />\n </ng-container>\n </div>\n </div>\n </ng-container>\n</ng-container>\n </div>\n <hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible\"/>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <button\n class=\"govuk-button govuk-!-margin-right-1 govuk-!-margin-bottom-0\"\n type=\"submit\"\n id=\"applyFilter\"\n [disabled]=\"config.enableDisabledButton && form.invalid\"\n >{{(config.applyButtonText || 'Apply') | rpxTranslate}}</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') | rpxTranslate}}</button>\n </div>\n </div>\n</form>\n",
|
|
1647
1857
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1648
1858
|
encapsulation: ViewEncapsulation.None,
|
|
1649
1859
|
styles: [".contain-classes .elevated-break{margin-bottom:20px}@media (min-width:40.0625em){.contain-classes .elevated-break{margin-bottom:30px}}.contain-classes .govuk-body--maxWidth480px{max-width:480px}.contain-classes .xui-generic-filter .select-all{margin-bottom:10px}.contain-classes .xui-generic-filter .govuk-checkboxes{display:flex;flex-direction:column;flex-wrap:wrap}.contain-classes .xui-generic-filter .govuk-checkboxes>div{flex-grow:1;flex-shrink:0}.contain-classes .xui-generic-filter__field-title{display:flex;align-items:center;margin-bottom:10px}.contain-classes .govuk-select{width:100%}"]
|
|
@@ -1930,7 +2140,7 @@ class SelectedCaseConfirmComponent {
|
|
|
1930
2140
|
SelectedCaseConfirmComponent.decorators = [
|
|
1931
2141
|
{ type: Component, args: [{
|
|
1932
2142
|
selector: 'xuilib-selected-case-confirm',
|
|
1933
|
-
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\"
|
|
2143
|
+
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' | rpxTranslate}}</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' | rpxTranslate}}</th>\n <th class=\"govuk-table__header govuk-table-column-header\" scope=\"col\">{{'Email address' | rpxTranslate}}</th>\n <th class=\"govuk-table__header govuk-table-column-actions\" scope=\"col\">{{'Actions' | rpxTranslate}}</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' | rpxTranslate}}</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\">\n {{'To be removed' | rpxTranslate}}\n </span>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n",
|
|
1934
2144
|
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%}"]
|
|
1935
2145
|
},] }
|
|
1936
2146
|
];
|
|
@@ -2241,13 +2451,6 @@ ShareCaseConfirmComponent.propDecorators = {
|
|
|
2241
2451
|
completeLink: [{ type: Input }]
|
|
2242
2452
|
};
|
|
2243
2453
|
|
|
2244
|
-
var SharedCaseErrorMessages;
|
|
2245
|
-
(function (SharedCaseErrorMessages) {
|
|
2246
|
-
SharedCaseErrorMessages["OneCaseMustBeSelected"] = "At least one case must be selected";
|
|
2247
|
-
SharedCaseErrorMessages["NoChangesRequested"] = "You have not requested any changes to case sharing";
|
|
2248
|
-
SharedCaseErrorMessages["OnePersonMustBeAssigned"] = "At least one person must be assigned to each case";
|
|
2249
|
-
})(SharedCaseErrorMessages || (SharedCaseErrorMessages = {}));
|
|
2250
|
-
|
|
2251
2454
|
class UserSelectComponent {
|
|
2252
2455
|
constructor() {
|
|
2253
2456
|
this.selected = new EventEmitter();
|
|
@@ -2478,7 +2681,7 @@ class ShareCaseComponent {
|
|
|
2478
2681
|
ShareCaseComponent.decorators = [
|
|
2479
2682
|
{ type: Component, args: [{
|
|
2480
2683
|
selector: 'xuilib-share-case',
|
|
2481
|
-
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 | rpxTranslate}}</span>\n {{title | rpxTranslate}}\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 | rpxTranslate}}</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.' | rpxTranslate}}\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()\"\n class=\"govuk-button govuk-button--secondary\" [disabled]=\"isDisabledAdd()\"\n title=\"{{'Add user to selected cases' | rpxTranslate}}\">\n {{'Add' | rpxTranslate}}\n
|
|
2684
|
+
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 | rpxTranslate}}</span>\n {{title | rpxTranslate}}\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 | rpxTranslate}}</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.' | rpxTranslate}}\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()\"\n class=\"govuk-button govuk-button--secondary\" [disabled]=\"isDisabledAdd()\"\n title=\"{{'Add user to selected cases' | rpxTranslate}}\">\n {{'Add' | rpxTranslate}}\n </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?\" | rpxTranslate}}\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 administrator for help.\" | rpxTranslate}}\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\">\n {{'Remove a person from all cases' | rpxTranslate}}\n </label>\n <span id=\"remove-user-hint\" class=\"govuk-hint\">\n {{'Select a person to remove them from all selected cases.' | rpxTranslate}}\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' | rpxTranslate}}\">\n {{'Remove' | rpxTranslate}}\n </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\">\n {{'Selected cases' | rpxTranslate}}\n </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.' | rpxTranslate}}\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' | rpxTranslate}}\">\n {{'Continue' | rpxTranslate}}\n </button>\n <button id=\"btn-cancel\" class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" title=\"{{'Cancel' | rpxTranslate}}\" [routerLink]=\"cancelLink\">\n {{'Cancel' | rpxTranslate}}\n </button>\n</div>\n",
|
|
2482
2685
|
styles: ["select{width:100%}"]
|
|
2483
2686
|
},] }
|
|
2484
2687
|
];
|
|
@@ -2704,7 +2907,7 @@ class CookieBannerComponent {
|
|
|
2704
2907
|
CookieBannerComponent.decorators = [
|
|
2705
2908
|
{ type: Component, args: [{
|
|
2706
2909
|
selector: 'xuilib-cookie-banner',
|
|
2707
|
-
template: "<div class=\"govuk-cookie-banner \" role=\"region\" attr.aria-label=\"'Cookies on {{appName}}'\" *ngIf=\"isCookieBannerVisible\">\n <div class=\"govuk-cookie-banner__message govuk-width-container\">\n\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h2 class=\"govuk-cookie-banner__heading govuk-heading-m\">{{'Cookies on' | rpxTranslate}} {{appName | rpxTranslate}}</h2>\n\n <div class=\"govuk-cookie-banner__content\">\n <p>{{'We use some essential cookies to make this service work.' | rpxTranslate}}</p>\n <p>{{'We
|
|
2910
|
+
template: "<div class=\"govuk-cookie-banner \" role=\"region\" attr.aria-label=\"'Cookies on {{appName}}'\" *ngIf=\"isCookieBannerVisible\">\n <div class=\"govuk-cookie-banner__message govuk-width-container\">\n\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h2 class=\"govuk-cookie-banner__heading govuk-heading-m\">{{'Cookies on' | rpxTranslate}} {{appName | rpxTranslate}}</h2>\n\n <div class=\"govuk-cookie-banner__content\">\n <p>{{'We use some essential cookies to make this service work.' | rpxTranslate}}</p>\n <p>{{'We\\\u2019d also like to use analytics cookies so we can understand how you use the service and make improvements.' | rpxTranslate}}</p>\n </div>\n </div>\n </div>\n\n <div class=\"govuk-button-group\">\n <button value=\"accept\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"acceptCookie()\">\n {{'Accept analytics cookies' | rpxTranslate}}\n </button>\n <button value=\"reject\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"rejectCookie()\">\n {{'Reject analytics cookies' | rpxTranslate}}\n </button>\n <a class=\"govuk-link\" routerLink=\"/cookies\">{{'View cookies' | rpxTranslate}}</a>\n </div>\n </div>\n</div>\n"
|
|
2708
2911
|
},] }
|
|
2709
2912
|
];
|
|
2710
2913
|
CookieBannerComponent.ctorParameters = () => [
|
|
@@ -2854,7 +3057,7 @@ class FindServiceComponent {
|
|
|
2854
3057
|
FindServiceComponent.decorators = [
|
|
2855
3058
|
{ type: Component, args: [{
|
|
2856
3059
|
selector: 'xuilib-find-service',
|
|
2857
|
-
template: "<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div class=\"govuk-body\">\n <label id=\"selectServiceSearch-label\" for=\"serviceSearch__select\" *ngIf=\"serviceTitle\">\n {{ serviceTitle | rpxTranslate}}\n </label>\n </div>\n <div class=\"search-service__input-container\">\n <exui-search-service class=\"search-service__input\"\n [options]=\"field.options\"\n [selectedOptions]=\"selectedServices\"\n [disabled]=\"disabled\"\n (optionChanged)=\"onOptionSelected($event)\">\n </exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addOption(tempSelectedService)\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"field?.enableAddButton\" id=\"add-service\">\n {{ 'Add' | rpxTranslate}}\n
|
|
3060
|
+
template: "<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div class=\"govuk-body\">\n <label id=\"selectServiceSearch-label\" for=\"serviceSearch__select\" *ngIf=\"serviceTitle\">\n {{ serviceTitle | rpxTranslate}}\n </label>\n </div>\n <div class=\"search-service__input-container\">\n <exui-search-service class=\"search-service__input\"\n [options]=\"field.options\"\n [selectedOptions]=\"selectedServices\"\n [disabled]=\"disabled\"\n (optionChanged)=\"onOptionSelected($event)\">\n </exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addOption(tempSelectedService)\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"field?.enableAddButton\" id=\"add-service\">\n {{ 'Add' | rpxTranslate}}\n </a>\n </div>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedServices\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeOption(selection)\" href=\"javascript:void(0)\">\n {{ selection.label | rpxTranslate }}\n </a>\n </li>\n </ul>\n</div>\n",
|
|
2858
3061
|
styles: ["#add-service{background-color:#ddd}"]
|
|
2859
3062
|
},] }
|
|
2860
3063
|
];
|
|
@@ -2868,47 +3071,6 @@ FindServiceComponent.propDecorators = {
|
|
|
2868
3071
|
serviceFieldChanged: [{ type: Output }]
|
|
2869
3072
|
};
|
|
2870
3073
|
|
|
2871
|
-
var BadgeColour;
|
|
2872
|
-
(function (BadgeColour) {
|
|
2873
|
-
BadgeColour["BADGE_RED"] = "hmcts-badge--red";
|
|
2874
|
-
BadgeColour["BADGE_BLUE"] = "hmcts-badge--blue";
|
|
2875
|
-
BadgeColour["BADGE_GREEN"] = "hmcts-badge--green";
|
|
2876
|
-
})(BadgeColour || (BadgeColour = {}));
|
|
2877
|
-
|
|
2878
|
-
class AnonymousFeatureUser {
|
|
2879
|
-
}
|
|
2880
|
-
class LoggedInFeatureUser {
|
|
2881
|
-
}
|
|
2882
|
-
|
|
2883
|
-
class RadioFilterFieldConfig {
|
|
2884
|
-
}
|
|
2885
|
-
|
|
2886
|
-
var BookingCheckType;
|
|
2887
|
-
(function (BookingCheckType) {
|
|
2888
|
-
BookingCheckType["NO_CHECK"] = "NO_CHECK";
|
|
2889
|
-
BookingCheckType["BOOKINGS_AND_BASE"] = "BOOKINGS_AND_BASE";
|
|
2890
|
-
BookingCheckType["POSSIBLE_BOOKINGS"] = "POSSIBLE_BOOKINGS";
|
|
2891
|
-
})(BookingCheckType || (BookingCheckType = {}));
|
|
2892
|
-
|
|
2893
|
-
var PersonRole;
|
|
2894
|
-
(function (PersonRole) {
|
|
2895
|
-
PersonRole["JUDICIAL"] = "Judicial";
|
|
2896
|
-
PersonRole["CASEWORKER"] = "Legal Ops";
|
|
2897
|
-
PersonRole["ADMIN"] = "Admin";
|
|
2898
|
-
PersonRole["CTSC"] = "CTSC";
|
|
2899
|
-
PersonRole["ALL"] = "All";
|
|
2900
|
-
})(PersonRole || (PersonRole = {}));
|
|
2901
|
-
// Note: RoleCategory could replace PersonRole possibly
|
|
2902
|
-
// However a lot of webapp logic is based on current PersonRole understanding
|
|
2903
|
-
var RoleCategory;
|
|
2904
|
-
(function (RoleCategory) {
|
|
2905
|
-
RoleCategory["JUDICIAL"] = "JUDICIAL";
|
|
2906
|
-
RoleCategory["CASEWORKER"] = "LEGAL_OPERATIONS";
|
|
2907
|
-
RoleCategory["ADMIN"] = "ADMIN";
|
|
2908
|
-
RoleCategory["CTSC"] = "CTSC";
|
|
2909
|
-
RoleCategory["ALL"] = "ALL";
|
|
2910
|
-
})(RoleCategory || (RoleCategory = {}));
|
|
2911
|
-
|
|
2912
3074
|
class LocationService {
|
|
2913
3075
|
constructor(http) {
|
|
2914
3076
|
this.http = http;
|
|
@@ -3905,6 +4067,210 @@ ExuiPageWrapperComponent.propDecorators = {
|
|
|
3905
4067
|
fnTitle: [{ type: Input }]
|
|
3906
4068
|
};
|
|
3907
4069
|
|
|
4070
|
+
class WriteAddressFieldComponent {
|
|
4071
|
+
constructor(addressesService) {
|
|
4072
|
+
this.addressesService = addressesService;
|
|
4073
|
+
this.internationalMode = false;
|
|
4074
|
+
this.submissionAttempted = false;
|
|
4075
|
+
this.addressChosen = false;
|
|
4076
|
+
this.postcodeOptionSelected = new EventEmitter();
|
|
4077
|
+
this.internationalModeStart = new EventEmitter();
|
|
4078
|
+
this.ukAddressOptionSelected = new EventEmitter();
|
|
4079
|
+
// indicated what error to display to user
|
|
4080
|
+
this.canSelectAddress = new EventEmitter();
|
|
4081
|
+
// tells parent to reset submission attempted field
|
|
4082
|
+
// only relevant to when user re-clicks find address
|
|
4083
|
+
this.resetSubmission = new EventEmitter();
|
|
4084
|
+
this.addressField = {
|
|
4085
|
+
addressLine1: '',
|
|
4086
|
+
addressLine2: '',
|
|
4087
|
+
addressLine3: '',
|
|
4088
|
+
postCode: '',
|
|
4089
|
+
postTown: '',
|
|
4090
|
+
country: '',
|
|
4091
|
+
county: ''
|
|
4092
|
+
};
|
|
4093
|
+
this.optionErrorsPresent = false;
|
|
4094
|
+
this.addressSelectable = false;
|
|
4095
|
+
this.missingPostcode = false;
|
|
4096
|
+
this.optionErrorMessage = AddressMessageEnum.NO_OPTION_SELECTED;
|
|
4097
|
+
this.postcodeErrorMessage = AddressMessageEnum.NO_POSTCODE_SELECTED;
|
|
4098
|
+
this.selectErrorMessage = AddressMessageEnum.SELECT_ADDRESS;
|
|
4099
|
+
}
|
|
4100
|
+
ngOnInit() {
|
|
4101
|
+
if (!this.formGroup.get('address')) {
|
|
4102
|
+
this.formGroup.addControl('address', new FormControl({}));
|
|
4103
|
+
}
|
|
4104
|
+
// set the form group relevant to only the external parent component
|
|
4105
|
+
this.addressFormGroup = new FormGroup({
|
|
4106
|
+
// relevant to international mode
|
|
4107
|
+
ukAddress: new FormControl(this.isInternational !== undefined ? (this.isInternational ? 'no' : 'yes') : null),
|
|
4108
|
+
// relevant to postocode lookup
|
|
4109
|
+
postcode: new FormControl(''),
|
|
4110
|
+
addressList: new FormControl('')
|
|
4111
|
+
});
|
|
4112
|
+
this.setPostcodeForm();
|
|
4113
|
+
}
|
|
4114
|
+
findAddress() {
|
|
4115
|
+
this.resetSubmission.emit();
|
|
4116
|
+
if (!this.addressFormGroup.get('postcode').value) {
|
|
4117
|
+
this.missingPostcode = true;
|
|
4118
|
+
this.canSelectAddress.emit(false);
|
|
4119
|
+
}
|
|
4120
|
+
else {
|
|
4121
|
+
this.missingPostcode = false;
|
|
4122
|
+
this.addressField = null;
|
|
4123
|
+
const postcode = this.addressFormGroup.get('postcode').value;
|
|
4124
|
+
this.addressOptions = [];
|
|
4125
|
+
this.addressesService.getAddressesForPostcode(postcode.replace(' ', '').toUpperCase()).subscribe(result => {
|
|
4126
|
+
result.forEach(address => {
|
|
4127
|
+
this.addressOptions.push(new AddressOption(address, null));
|
|
4128
|
+
});
|
|
4129
|
+
this.addressOptions.unshift(new AddressOption(undefined, this.defaultLabel(this.addressOptions.length)));
|
|
4130
|
+
}, (error) => {
|
|
4131
|
+
// Edited this so that errors not produced if there are no results for a postcode
|
|
4132
|
+
console.log(`An error occurred retrieving addresses for postcode ${postcode}. ${error}`);
|
|
4133
|
+
this.addressOptions.unshift(new AddressOption(undefined, this.defaultLabel(this.addressOptions.length)));
|
|
4134
|
+
});
|
|
4135
|
+
this.addressFormGroup.get('addressList').setValue(undefined);
|
|
4136
|
+
}
|
|
4137
|
+
}
|
|
4138
|
+
blankAddress() {
|
|
4139
|
+
this.setFormValue();
|
|
4140
|
+
this.resetSubmission.emit();
|
|
4141
|
+
if (this.internationalMode) {
|
|
4142
|
+
this.internationalModeStart.emit();
|
|
4143
|
+
}
|
|
4144
|
+
}
|
|
4145
|
+
shouldShowDetailFields() {
|
|
4146
|
+
if (!this.formGroup.get('address')) {
|
|
4147
|
+
return false;
|
|
4148
|
+
}
|
|
4149
|
+
const address = this.formGroup.get('address').value;
|
|
4150
|
+
let hasAddress = false;
|
|
4151
|
+
if (address) {
|
|
4152
|
+
Object.keys(address).forEach((key) => {
|
|
4153
|
+
if (address[key] !== null) {
|
|
4154
|
+
hasAddress = true;
|
|
4155
|
+
}
|
|
4156
|
+
});
|
|
4157
|
+
}
|
|
4158
|
+
return hasAddress;
|
|
4159
|
+
}
|
|
4160
|
+
addressSelected() {
|
|
4161
|
+
this.missingPostcode = false;
|
|
4162
|
+
this.addressField = this.addressFormGroup.get('addressList').value;
|
|
4163
|
+
this.addressChosen = true;
|
|
4164
|
+
this.setFormValue();
|
|
4165
|
+
this.postcodeOptionSelected.emit();
|
|
4166
|
+
}
|
|
4167
|
+
ngOnChanges(changes) {
|
|
4168
|
+
const addressChange = changes['addressField'];
|
|
4169
|
+
const internationalChange = changes['isInternational'];
|
|
4170
|
+
if (addressChange) {
|
|
4171
|
+
this.setFormValue();
|
|
4172
|
+
}
|
|
4173
|
+
if (internationalChange && this.addressFormGroup && this.addressFormGroup.get('ukAddress')) {
|
|
4174
|
+
this.addressFormGroup.get('ukAddress').patchValue(this.isInternational ? 'no' : 'yes');
|
|
4175
|
+
}
|
|
4176
|
+
if (!this.addressChosen && this.addressFormGroup && this.addressFormGroup.get('addressList')) {
|
|
4177
|
+
// resets address options on internal back
|
|
4178
|
+
this.addressFormGroup.get('addressList').patchValue(undefined);
|
|
4179
|
+
}
|
|
4180
|
+
this.checkIfErrorsNeeded();
|
|
4181
|
+
}
|
|
4182
|
+
checkIfErrorsNeeded() {
|
|
4183
|
+
if (this.submissionAttempted && this.internationalMode && !this.postcodeLookupVisible()) {
|
|
4184
|
+
// ensure errors present when submission attmempted on international radio buttons
|
|
4185
|
+
this.optionErrorsPresent = true;
|
|
4186
|
+
this.optionErrorMessage = AddressMessageEnum.NO_OPTION_SELECTED;
|
|
4187
|
+
}
|
|
4188
|
+
else {
|
|
4189
|
+
this.optionErrorsPresent = false;
|
|
4190
|
+
}
|
|
4191
|
+
if (this.optionErrorsPresent && (this.addressChosen || this.isInternational !== undefined)) {
|
|
4192
|
+
// ensure parent errors not present when the child form group is present
|
|
4193
|
+
this.optionErrorsPresent = false;
|
|
4194
|
+
}
|
|
4195
|
+
}
|
|
4196
|
+
setInternationalAddress(isInternational) {
|
|
4197
|
+
this.isInternational = isInternational;
|
|
4198
|
+
this.ukAddressOptionSelected.emit(this.isInternational);
|
|
4199
|
+
}
|
|
4200
|
+
postcodeErrorPresent(isPostcodeField) {
|
|
4201
|
+
const checkForField = isPostcodeField ? !this.addressSelectable : this.addressSelectable;
|
|
4202
|
+
return this.submissionAttempted && checkForField;
|
|
4203
|
+
}
|
|
4204
|
+
postcodeLookupVisible() {
|
|
4205
|
+
return !this.shouldShowDetailFields() || (!this.startedInternational && !this.addressChosen);
|
|
4206
|
+
}
|
|
4207
|
+
defaultLabel(numberOfAddresses) {
|
|
4208
|
+
this.addressSelectable = numberOfAddresses > 0 ? true : false;
|
|
4209
|
+
this.canSelectAddress.emit(this.addressSelectable);
|
|
4210
|
+
return numberOfAddresses === 0 ? 'No address found'
|
|
4211
|
+
: `${numberOfAddresses}${numberOfAddresses === 1 ? ' address ' : ' addresses '}found`;
|
|
4212
|
+
}
|
|
4213
|
+
setFormValue() {
|
|
4214
|
+
if (this.formGroup) {
|
|
4215
|
+
this.formGroup.get('address').patchValue(this.addressField);
|
|
4216
|
+
}
|
|
4217
|
+
}
|
|
4218
|
+
setPostcodeForm() {
|
|
4219
|
+
const postcodeNeeded = this.isInternational === undefined && this.formGroup.get('address') && this.formGroup.get('address').get('postCode');
|
|
4220
|
+
this.addressFormGroup.get('postcode').patchValue(postcodeNeeded ? this.formGroup.get('address').get('postCode').value : '');
|
|
4221
|
+
}
|
|
4222
|
+
}
|
|
4223
|
+
WriteAddressFieldComponent.decorators = [
|
|
4224
|
+
{ type: Component, args: [{
|
|
4225
|
+
selector: 'xuilib-write-address-field',
|
|
4226
|
+
template: "<div class=\"govuk-form-group\" [formGroup]=\"addressFormGroup\" [ngClass]=\"{'govuk-form-group--error': optionErrorsPresent}\">\n <p class=\"govuk-error-message\" *ngIf=\"optionErrorsPresent\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{optionErrorMessage}}\n </p>\n <div *ngIf=\"postcodeLookupVisible()\">\n <div class=\"govuk-form-group postcodeLookup\" id=\"addressLookup\">\n <label for=\"postcodeInput\">\n <span class=\"govuk-label\"><b>Provide address details</b></span>\n <span class=\"govuk-label\">Enter a UK postcode</span>\n </label>\n <div class=\"govuk-form-group\"\n [ngClass]=\"{'govuk-form-group--error': missingPostcode || postcodeErrorPresent(true)}\">\n <p class=\"govuk-error-message\" *ngIf=\"missingPostcode || postcodeErrorPresent(true)\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{postcodeErrorMessage}}\n </p>\n <input type=\"text\" [ngClass]=\"{'govuk-input--error': missingPostcode}\" id=\"postcodeInput\" name=\"postcode\"\n class=\"govuk-input govuk-!-width-two-thirds postcodeinput inline-block\" formControlName=\"postcode\">\n <button type=\"button\" class=\"govuk-button\" (click)=\"findAddress()\">Find address</button>\n </div>\n </div>\n\n <div class=\"govuk-form-group\"\n *ngIf=\"addressOptions\" id=\"selectAddress\">\n <label class=\"govuk-label\" for=\"addressList\">\n <span class=\"form-label\">Select an address</span>\n </label>\n <div class=\"govuk-form-group\"\n [ngClass]=\"{'govuk-form-group--error': postcodeErrorPresent(false)}\">\n <p class=\"govuk-error-message\" *ngIf=\"postcodeErrorPresent(false)\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{selectErrorMessage}}\n </p>\n <select class=\"form-control govuk-select ccd-dropdown addressList\" id=\"addressList\" name=\"address\"\n formControlName=\"addressList\" (change)=\"addressSelected()\" focusElement>\n <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n {{addressOption.description}}\n </option>\n </select>\n </div>\n </div>\n\n <a class=\"manual-link govuk-link\" *ngIf=\"!shouldShowDetailFields() || (!startedInternational && !addressChosen)\" (click)=\"blankAddress()\"\n href=\"javascript:void(0)\">I can't enter a UK postcode</a>\n </div>\n\n <div class=\"govuk-radios\" data-module=\"govuk-radios\"\n *ngIf=\"shouldShowDetailFields() && internationalMode && startedInternational && !addressChosen\">\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"yes\" value=\"yes\" name=\"ukAddress\" type=\"radio\" data-aria-controls=\"address-fields\"\n (click)=\"setInternationalAddress(false)\" formControlName=\"ukAddress\">\n <label class=\"govuk-label govuk-radios__label\" for=\"yes\">\n Yes\n </label>\n </div>\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"no\" value=\"no\" name=\"ukAddress\" type=\"radio\" data-aria-controls=\"address-fields\"\n (click)=\"setInternationalAddress(true)\" formControlName=\"ukAddress\">\n <label class=\"govuk-label govuk-radios__label\" for=\"no\">\n No\n </label>\n </div>\n <div class=\"govuk-radios__conditional\" id=\"address-fields\">\n <xuilib-write-address-inputs *ngIf=\"isInternational !== undefined\" [formGroup]=\"formGroup\" [isInternational]=\"isInternational\"\n [submissionAttempted]=\"submissionAttempted\">\n </xuilib-write-address-inputs>\n </div>\n </div>\n\n <xuilib-write-address-inputs *ngIf=\"shouldShowDetailFields() && (addressChosen || !internationalMode)\"\n [formGroup]=\"formGroup\" [isInternational]=\"false\" [submissionAttempted]=\"submissionAttempted\"></xuilib-write-address-inputs>\n\n</div>",
|
|
4227
|
+
styles: [".manual-link{cursor:pointer;text-decoration:underline;margin-top:10px}.manual-link,:host{display:block}"]
|
|
4228
|
+
},] }
|
|
4229
|
+
];
|
|
4230
|
+
WriteAddressFieldComponent.ctorParameters = () => [
|
|
4231
|
+
{ type: AddressService }
|
|
4232
|
+
];
|
|
4233
|
+
WriteAddressFieldComponent.propDecorators = {
|
|
4234
|
+
formGroup: [{ type: Input }],
|
|
4235
|
+
internationalMode: [{ type: Input }],
|
|
4236
|
+
isInternational: [{ type: Input }],
|
|
4237
|
+
submissionAttempted: [{ type: Input }],
|
|
4238
|
+
startedInternational: [{ type: Input }],
|
|
4239
|
+
addressChosen: [{ type: Input }],
|
|
4240
|
+
postcodeOptionSelected: [{ type: Output }],
|
|
4241
|
+
internationalModeStart: [{ type: Output }],
|
|
4242
|
+
ukAddressOptionSelected: [{ type: Output }],
|
|
4243
|
+
canSelectAddress: [{ type: Output }],
|
|
4244
|
+
resetSubmission: [{ type: Output }]
|
|
4245
|
+
};
|
|
4246
|
+
|
|
4247
|
+
class WriteAddressInputsComponent {
|
|
4248
|
+
constructor() {
|
|
4249
|
+
this.MESSAGE_ENUM = AddressMessageEnum;
|
|
4250
|
+
this.isInternational = false;
|
|
4251
|
+
this.submissionAttempted = false;
|
|
4252
|
+
this.missingPostcode = false;
|
|
4253
|
+
this.errorsPresent = false;
|
|
4254
|
+
}
|
|
4255
|
+
ngOnChanges() {
|
|
4256
|
+
const addressGroup = this.formGroup.get('address');
|
|
4257
|
+
// if there is an issue with the formgroup, ensure error styling is displayed
|
|
4258
|
+
this.errorsPresent = !addressGroup.valid;
|
|
4259
|
+
}
|
|
4260
|
+
}
|
|
4261
|
+
WriteAddressInputsComponent.decorators = [
|
|
4262
|
+
{ type: Component, args: [{
|
|
4263
|
+
selector: 'xuilib-write-address-inputs',
|
|
4264
|
+
template: "<ng-container>\n <form [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" formGroupName=\"address\" [ngClass]=\"{'govuk-form-group--error': submissionAttempted && errorsPresent}\">\n <label class=\"govuk-label govuk-!-font-weight-bold\">\n Enter address details\n </label>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"addressLine1\">\n Building and Street\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !formGroup.get('address').get('addressLine1').valid\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_STREET_SELECTED}}\n </p>\n <input class=\"govuk-input govuk-!-width-full\" id=\"addressLine1\" name=\"addressLine1\" type=\"text\"\n formControlName=\"addressLine1\">\n </div>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"addressLine2\">\n Address line 2 (Optional)\n </label>\n <input class=\"govuk-input govuk-!-width-full\" id=\"addressLine2\" name=\"addressLine2\" type=\"text\"\n formControlName=\"addressLine2\">\n </div>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"addressLine3\">\n Address line 3 (Optional)\n </label>\n <input class=\"govuk-input govuk-!-width-full\" id=\"addressLine3\" name=\"addressLine3\" type=\"text\"\n formControlName=\"addressLine3\">\n </div>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"postTown\">\n Town or City\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !formGroup.get('address').get('postTown').valid\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_CITY_SELECTED}}\n </p>\n <input class=\"govuk-input govuk-!-width-two-thirds\" id=\"postTown\" name=\"postTown\" type=\"text\"\n formControlName=\"postTown\">\n </div>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"county\">\n County{{this.isInternational ? '/ State/ Province' : ''}} (Optional)\n </label>\n <input class=\"govuk-input govuk-!-width-two-thirds\" id=\"county\" name=\"county\" type=\"text\"\n formControlName=\"county\">\n </div>\n\n <div *ngIf=\"isInternational\" class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"country\">\n Country\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !formGroup.get('address').get('country').valid\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_COUNTRY_SELECTED}}\n </p>\n <input class=\"govuk-input govuk-!-width-two-thirds\" id=\"country\" name=\"country\" type=\"text\"\n formControlName=\"country\">\n </div>\n\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label\" for=\"postCode\">\n Postcode{{this.isInternational ? ' (Optional)' : ''}}\n </label>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !isInternational && this.formGroup.get('address').get('postCode').hasError('required')\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.NO_POSTCODE_SELECTED}}\n </p>\n <p class=\"govuk-error-message\" *ngIf=\"submissionAttempted && !isInternational && this.formGroup.get('address').get('postCode').hasError('invalidPostcode')\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{MESSAGE_ENUM.INVALID_POSTCODE}}\n </p>\n <input class=\"govuk-input govuk-!-width-one-third\" id=\"postCode\" name=\"postCode\" type=\"text\"\n formControlName=\"postCode\">\n </div>\n </div>\n</form>\n</ng-container>"
|
|
4265
|
+
},] }
|
|
4266
|
+
];
|
|
4267
|
+
WriteAddressInputsComponent.ctorParameters = () => [];
|
|
4268
|
+
WriteAddressInputsComponent.propDecorators = {
|
|
4269
|
+
formGroup: [{ type: Input }],
|
|
4270
|
+
isInternational: [{ type: Input }],
|
|
4271
|
+
submissionAttempted: [{ type: Input }]
|
|
4272
|
+
};
|
|
4273
|
+
|
|
3908
4274
|
class FeatureToggleDirective {
|
|
3909
4275
|
constructor(service, viewContainer, templateRef) {
|
|
3910
4276
|
this.service = service;
|
|
@@ -4511,7 +4877,7 @@ class HmctsIdentityBarComponent {
|
|
|
4511
4877
|
HmctsIdentityBarComponent.decorators = [
|
|
4512
4878
|
{ type: Component, args: [{
|
|
4513
4879
|
selector: 'xuilib-hmcts-identity-bar',
|
|
4514
|
-
template: "<div class=\"hmcts-identity-bar\" *ngIf=\"value\">\n
|
|
4880
|
+
template: "<div class=\"hmcts-identity-bar\" *ngIf=\"value\">\n\n <div class=\"hmcts-identity-bar__container\">\n\n <div class=\"hmcts-identity-bar__details\">\n\n <span class=\"hmcts-identity-bar__title\">{{value | rpxTranslate}}</span>\n\n </div>\n\n </div>\n\n</div>\n",
|
|
4515
4881
|
styles: [""]
|
|
4516
4882
|
},] }
|
|
4517
4883
|
];
|
|
@@ -4698,7 +5064,9 @@ const COMMON_COMPONENTS = [
|
|
|
4698
5064
|
FindServiceComponent,
|
|
4699
5065
|
SearchServiceComponent,
|
|
4700
5066
|
SearchVenueComponent,
|
|
4701
|
-
PaginationComponent
|
|
5067
|
+
PaginationComponent,
|
|
5068
|
+
WriteAddressFieldComponent,
|
|
5069
|
+
WriteAddressInputsComponent
|
|
4702
5070
|
];
|
|
4703
5071
|
const GOV_UI_COMPONENTS = [
|
|
4704
5072
|
HmctsIdentityBarComponent,
|
|
@@ -4835,5 +5203,5 @@ function radioGroupValidator() {
|
|
|
4835
5203
|
* Generated bundle index. Do not edit.
|
|
4836
5204
|
*/
|
|
4837
5205
|
|
|
4838
|
-
export { AccessibilityComponent, AnonymousFeatureUser, BadgeColour, BookingCheckType, COMMON_COMPONENTS, CapitalizePipe, CheckboxListComponent, ContactDetailsComponent, CookieBannerComponent, CookieService, DateBadgeColour, DueDateComponent, ExuiCommonLibModule, ExuiPageWrapperComponent, FeatureToggleDirective, FeatureToggleGuard, FeatureToggleService, FilterService, FindLocationComponent, FindPersonComponent, FindServiceComponent, FindTaskNameComponent, GOV_UI_COMPONENTS, GenericFilterComponent, GoogleAnalyticsService, GoogleTagManagerService, GovUiService, GovUkCheckboxComponent, GovUkCheckboxesComponent, GovUkDateComponent, GovUkErrorMessageComponent, GovUkFieldsetComponent, GovUkFileUploadComponent, GovUkFormGroupWrapperComponent, GovUkInputComponent, GovUkLabelComponent, GovUkRadioComponent, GovUkRadiosComponent, GovUkSelectComponent, GovUkTextareaComponent, GovukTableColumnConfig, GovukTableComponent, HasLoadingState, HmctsBannerComponent, HmctsErrorSummaryComponent, HmctsIdentityBarComponent, HmctsMainWrapperComponent, HmctsPaginationComponent, HmctsPrimaryNavigationComponent, HmctsSessionDialogComponent, HmctsSubNavigationComponent, InviteUserFormComponent, InviteUserPermissionComponent, LaunchDarklyService, LetContext, LetDirective, LoadingService, LoadingSpinnerComponent, LoggedInFeatureUser, ManageSessionServices, PaginationComponent, PersonRole, RadioFilterFieldConfig, RefDataService, RemoveHostDirective, RoleCategory, RoleGuard, RoleMatching, RoleService, SECONDS_IN_A_DAY, SearchJudicialsComponent, SearchLocationComponent, SearchServiceComponent, SearchVenueComponent, SelectedCaseComponent, SelectedCaseConfirmComponent, SelectedCaseListComponent, ServiceMessageComponent, ServiceMessagesComponent, ShareCaseComponent, ShareCaseConfirmComponent, SharedCaseErrorMessages, TabComponent, TcConfirmComponent, TcDisplayHtmlComponent, TcDisplayPlainComponent, TermsAndConditionsComponent, TimeoutNotificationsService, UserDetailsComponent, UserListComponent, UserSelectComponent, checkboxesBeCheckedValidator, dateValidator, radioGroupValidator, windowProvider, windowToken, ɵ0, ExuiPageWrapperComponent as ɵa, TermsAndConditionsComponent as ɵb, ServiceMessageComponent as ɵba, ServiceMessagesComponent as ɵbb, LoadingSpinnerComponent as ɵbc, GenericFilterComponent as ɵbd, FilterService as ɵbe, CookieBannerComponent as ɵbf, CookieService as ɵbg, FindPersonComponent as ɵbh, FindAPersonService as ɵbi, SessionStorageService as ɵbj, SearchJudicialsComponent as ɵbk, FindLocationComponent as ɵbl, SearchLocationComponent as ɵbm, LocationService as ɵbn, RefDataService as ɵbo, FindTaskNameComponent as ɵbp, TaskNameService as ɵbq, FindServiceComponent as ɵbr, SearchServiceComponent as ɵbs, SearchVenueComponent as ɵbt, PaginationComponent as ɵbu,
|
|
5206
|
+
export { AccessibilityComponent, AddressMessageEnum, AddressModel, AddressOption, AddressService, AnonymousFeatureUser, BadgeColour, BookingCheckType, COMMON_COMPONENTS, CapitalizePipe, CheckboxListComponent, ContactDetailsComponent, CookieBannerComponent, CookieService, DateBadgeColour, DueDateComponent, ExuiCommonLibModule, ExuiPageWrapperComponent, FeatureToggleDirective, FeatureToggleGuard, FeatureToggleService, FilterService, FindLocationComponent, FindPersonComponent, FindServiceComponent, FindTaskNameComponent, GOV_UI_COMPONENTS, GenericFilterComponent, GoogleAnalyticsService, GoogleTagManagerService, GovUiService, GovUkCheckboxComponent, GovUkCheckboxesComponent, GovUkDateComponent, GovUkErrorMessageComponent, GovUkFieldsetComponent, GovUkFileUploadComponent, GovUkFormGroupWrapperComponent, GovUkInputComponent, GovUkLabelComponent, GovUkRadioComponent, GovUkRadiosComponent, GovUkSelectComponent, GovUkTextareaComponent, GovukTableColumnConfig, GovukTableComponent, HasLoadingState, HmctsBannerComponent, HmctsErrorSummaryComponent, HmctsIdentityBarComponent, HmctsMainWrapperComponent, HmctsPaginationComponent, HmctsPrimaryNavigationComponent, HmctsSessionDialogComponent, HmctsSubNavigationComponent, InviteUserFormComponent, InviteUserPermissionComponent, LaunchDarklyService, LetContext, LetDirective, LoadingService, LoadingSpinnerComponent, LoggedInFeatureUser, ManageSessionServices, PaginationComponent, PersonRole, RadioFilterFieldConfig, RefDataService, RemoveHostDirective, RoleCategory, RoleGuard, RoleMatching, RoleService, SECONDS_IN_A_DAY, SearchJudicialsComponent, SearchLocationComponent, SearchServiceComponent, SearchVenueComponent, SelectedCaseComponent, SelectedCaseConfirmComponent, SelectedCaseListComponent, ServiceMessageComponent, ServiceMessagesComponent, ShareCaseComponent, ShareCaseConfirmComponent, SharedCaseErrorMessages, TabComponent, TcConfirmComponent, TcDisplayHtmlComponent, TcDisplayPlainComponent, TermsAndConditionsComponent, TimeoutNotificationsService, UserDetailsComponent, UserListComponent, UserSelectComponent, WriteAddressFieldComponent, WriteAddressInputsComponent, checkboxesBeCheckedValidator, dateValidator, radioGroupValidator, windowProvider, windowToken, ɵ0, ExuiPageWrapperComponent as ɵa, TermsAndConditionsComponent as ɵb, ServiceMessageComponent as ɵba, ServiceMessagesComponent as ɵbb, LoadingSpinnerComponent as ɵbc, GenericFilterComponent as ɵbd, FilterService as ɵbe, CookieBannerComponent as ɵbf, CookieService as ɵbg, FindPersonComponent as ɵbh, FindAPersonService as ɵbi, SessionStorageService as ɵbj, SearchJudicialsComponent as ɵbk, FindLocationComponent as ɵbl, SearchLocationComponent as ɵbm, LocationService as ɵbn, RefDataService as ɵbo, FindTaskNameComponent as ɵbp, TaskNameService as ɵbq, FindServiceComponent as ɵbr, SearchServiceComponent as ɵbs, SearchVenueComponent as ɵbt, PaginationComponent as ɵbu, WriteAddressFieldComponent as ɵbv, AddressService as ɵbw, WriteAddressInputsComponent as ɵbx, HmctsIdentityBarComponent as ɵby, HmctsPaginationComponent as ɵbz, TcDisplayHtmlComponent as ɵc, HmctsSubNavigationComponent as ɵca, HmctsPrimaryNavigationComponent as ɵcb, HmctsErrorSummaryComponent as ɵcc, HmctsMainWrapperComponent as ɵcd, HmctsBannerComponent as ɵce, GovukTableComponent as ɵcf, GovUkInputComponent as ɵcg, GovUkCheckboxComponent as ɵch, GovUkFormGroupWrapperComponent as ɵci, GovUkLabelComponent as ɵcj, GovUkErrorMessageComponent as ɵck, GovUkFieldsetComponent as ɵcl, GovUkDateComponent as ɵcm, GovUkCheckboxesComponent as ɵcn, GovUkRadioComponent as ɵco, GovUkRadiosComponent as ɵcp, GovUkSelectComponent as ɵcq, GovUkTextareaComponent as ɵcr, GovUkFileUploadComponent as ɵcs, RemoveHostDirective as ɵct, CapitalizePipe as ɵcu, TcDisplayPlainComponent as ɵd, TcConfirmComponent as ɵe, ContactDetailsComponent as ɵf, FeatureToggleDirective as ɵg, FeatureToggleService as ɵh, LetContext as ɵi, LetDirective as ɵj, HmctsSessionDialogComponent as ɵk, UserListComponent as ɵl, UserDetailsComponent as ɵm, InviteUserPermissionComponent as ɵn, InviteUserFormComponent as ɵo, ShareCaseComponent as ɵp, UserSelectComponent as ɵq, CaseSharingStateService as ɵr, ShareCaseConfirmComponent as ɵs, SelectedCaseListComponent as ɵt, SelectedCaseComponent as ɵu, SelectedCaseConfirmComponent as ɵv, TabComponent as ɵw, AccessibilityComponent as ɵx, DueDateComponent as ɵy, CheckboxListComponent as ɵz };
|
|
4839
5207
|
//# sourceMappingURL=hmcts-rpx-xui-common-lib.js.map
|