@hmcts/rpx-xui-common-lib 1.9.0-consume-jrd-e-links-api-new-version-v3 → 1.9.0-postcode-validation
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 +456 -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 +147 -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 +10 -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 +390 -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 +34 -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 +8 -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
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { AddressModel } from '../../models';
|
|
2
|
+
import { AddressType } from './address-type.enum';
|
|
3
|
+
/**
|
|
4
|
+
* Moving all this logic here into Address Parser class, so that it
|
|
5
|
+
* will be easier for us when we move this parsing logic to into
|
|
6
|
+
* `Shim` java service.
|
|
7
|
+
*/
|
|
8
|
+
export class AddressParser {
|
|
9
|
+
parse(address) {
|
|
10
|
+
const classification = `${address.CLASSIFICATION_CODE}`;
|
|
11
|
+
const addressModel = new AddressModel();
|
|
12
|
+
addressModel.addressLine1 = this.parseAddressLine1(classification, address);
|
|
13
|
+
addressModel.addressLine2 = this.parseAddressLine2(classification, address);
|
|
14
|
+
addressModel.addressLine3 = this.parseAddressLine3(classification, address);
|
|
15
|
+
addressModel.postCode = address.POSTCODE;
|
|
16
|
+
addressModel.postTown = address.POST_TOWN;
|
|
17
|
+
addressModel.country = AddressType.UK;
|
|
18
|
+
return addressModel;
|
|
19
|
+
}
|
|
20
|
+
parseAddressLine1(classification, address) {
|
|
21
|
+
let addressLine;
|
|
22
|
+
if (classification === AddressType.RD06) {
|
|
23
|
+
addressLine =
|
|
24
|
+
`${address.SUB_BUILDING_NAME} ${address.ORGANISATION_NAME} ${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
addressLine =
|
|
28
|
+
`${address.ORGANISATION_NAME}${this.prefixWithCommaIfPresent(address.BUILDING_NAME)}` +
|
|
29
|
+
`${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;
|
|
30
|
+
}
|
|
31
|
+
return this.removeNonAddressValues(addressLine);
|
|
32
|
+
}
|
|
33
|
+
parseAddressLine2(classification, address) {
|
|
34
|
+
let addressLine;
|
|
35
|
+
if (classification === AddressType.RD06) {
|
|
36
|
+
addressLine = `${address.BUILDING_NAME} `;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
addressLine =
|
|
40
|
+
`${address.SUB_BUILDING_NAME} ${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;
|
|
41
|
+
}
|
|
42
|
+
return this.removeNonAddressValues(addressLine);
|
|
43
|
+
}
|
|
44
|
+
parseAddressLine3(classification, address) {
|
|
45
|
+
let addressLine;
|
|
46
|
+
if (classification === AddressType.RD06) {
|
|
47
|
+
addressLine =
|
|
48
|
+
`${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
addressLine =
|
|
52
|
+
`${address.DEPENDENT_LOCALITY} ${address.DOUBLE_DEPENDENT_LOCALITY} ${address.DEPENDENT_THOROUGHFARE_NAME}`;
|
|
53
|
+
}
|
|
54
|
+
return this.removeNonAddressValues(addressLine);
|
|
55
|
+
}
|
|
56
|
+
removeNonAddressValues(line) {
|
|
57
|
+
line = line.replace(' null', ' ').replace('null ', ' ');
|
|
58
|
+
line = this.removeUndefinedString(line);
|
|
59
|
+
line = this.removeInitialComma(line);
|
|
60
|
+
line = this.removeEmptySpaces(line);
|
|
61
|
+
return line;
|
|
62
|
+
}
|
|
63
|
+
removeUndefinedString(value) {
|
|
64
|
+
return value.replace(new RegExp('undefined', 'gi'), '');
|
|
65
|
+
}
|
|
66
|
+
removeEmptySpaces(value) {
|
|
67
|
+
return value.replace(new RegExp(' +', 'gi'), ' ').trim();
|
|
68
|
+
}
|
|
69
|
+
removeInitialComma(value) {
|
|
70
|
+
return value.replace(new RegExp('^,', 'gi'), '');
|
|
71
|
+
}
|
|
72
|
+
prefixWithCommaIfPresent(value) {
|
|
73
|
+
return value ? `, ${value}` : value;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9hZGRyZXNzL2FkZHJlc3MtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxEOzs7O0dBSUc7QUFDRixNQUFNLE9BQU8sYUFBYTtJQUNsQixLQUFLLENBQUMsT0FBWTtRQUN2QixNQUFNLGNBQWMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3hELE1BQU0sWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVFLFlBQVksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1RSxZQUFZLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUUsWUFBWSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ3pDLFlBQVksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUMxQyxZQUFZLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLGNBQXNCLEVBQUUsT0FBWTtRQUM1RCxJQUFJLFdBQVcsQ0FBQztRQUNoQixJQUFJLGNBQWMsS0FBSyxXQUFXLENBQUMsSUFBSSxFQUFFO1lBQ3ZD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b20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBBZGRyZXNzVHlwZSB9IGZyb20gJy4vYWRkcmVzcy10eXBlLmVudW0nO1xuXG4vKipcbiAqIE1vdmluZyBhbGwgdGhpcyBsb2dpYyBoZXJlIGludG8gQWRkcmVzcyBQYXJzZXIgY2xhc3MsIHNvIHRoYXQgaXRcbiAqIHdpbGwgYmUgZWFzaWVyIGZvciB1cyB3aGVuIHdlIG1vdmUgdGhpcyBwYXJzaW5nIGxvZ2ljIHRvIGludG9cbiAqIGBTaGltYCBqYXZhIHNlcnZpY2UuXG4gKi9cbiBleHBvcnQgY2xhc3MgQWRkcmVzc1BhcnNlciB7XG4gIHB1YmxpYyBwYXJzZShhZGRyZXNzOiBhbnkpIHtcbiAgICBjb25zdCBjbGFzc2lmaWNhdGlvbiA9IGAke2FkZHJlc3MuQ0xBU1NJRklDQVRJT05fQ09ERX1gO1xuICAgIGNvbnN0IGFkZHJlc3NNb2RlbCA9IG5ldyBBZGRyZXNzTW9kZWwoKTtcbiAgICBhZGRyZXNzTW9kZWwuYWRkcmVzc0xpbmUxID0gdGhpcy5wYXJzZUFkZHJlc3NMaW5lMShjbGFzc2lmaWNhdGlvbiwgYWRkcmVzcyk7XG4gICAgYWRkcmVzc01vZGVsLmFkZHJlc3NMaW5lMiA9IHRoaXMucGFyc2VBZGRyZXNzTGluZTIoY2xhc3NpZmljYXRpb24sIGFkZHJlc3MpO1xuICAgIGFkZHJlc3NNb2RlbC5hZGRyZXNzTGluZTMgPSB0aGlzLnBhcnNlQWRkcmVzc0xpbmUzKGNsYXNzaWZpY2F0aW9uLCBhZGRyZXNzKTtcbiAgICBhZGRyZXNzTW9kZWwucG9zdENvZGUgPSBhZGRyZXNzLlBPU1RDT0RFO1xuICAgIGFkZHJlc3NNb2RlbC5wb3N0VG93biA9IGFkZHJlc3MuUE9TVF9UT1dOO1xuICAgIGFkZHJlc3NNb2RlbC5jb3VudHJ5ID0gQWRkcmVzc1R5cGUuVUs7XG4gICAgcmV0dXJuIGFkZHJlc3NNb2RlbDtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VBZGRyZXNzTGluZTEoY2xhc3NpZmljYXRpb246IHN0cmluZywgYWRkcmVzczogYW55KSB7XG4gICAgbGV0IGFkZHJlc3NMaW5lO1xuICAgIGlmIChjbGFzc2lmaWNhdGlvbiA9PT0gQWRkcmVzc1R5cGUuUkQwNikge1xuICAgICAgYWRkcmVzc0xpbmUgPVxuICAgICAgICBgJHthZGRyZXNzLlNVQl9CVUlMRElOR19OQU1FfSAke2FkZHJlc3MuT1JHQU5JU0FUSU9OX05BTUV9ICR7YWRkcmVzcy5ERVBBUlRNRU5UX05BTUV9ICR7YWRkcmVzcy5QT19CT1hfTlVNQkVSfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFkZHJlc3NMaW5lID1cbiAgICAgICAgYCR7YWRkcmVzcy5PUkdBTklTQVRJT05fTkFNRX0ke3RoaXMucHJlZml4V2l0aENvbW1hSWZQcmVzZW50KGFkZHJlc3MuQlVJTERJTkdfTkFNRSl9YCArXG4gICAgICAgIGAke2FkZHJlc3MuREVQQVJUTUVOVF9OQU1FfSAke2FkZHJlc3MuUE9fQk9YX05VTUJFUn1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZW1vdmVOb25BZGRyZXNzVmFsdWVzKGFkZHJlc3NMaW5lKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VBZGRyZXNzTGluZTIoY2xhc3NpZmljYXRpb246IHN0cmluZywgYWRkcmVzczogYW55KSB7XG4gICAgbGV0IGFkZHJlc3NMaW5lO1xuICAgIGlmIChjbGFzc2lmaWNhdGlvbiA9PT0gQWRkcmVzc1R5cGUuUkQwNikge1xuICAgICAgYWRkcmVzc0xpbmUgPSBgJHthZGRyZXNzLkJVSUxESU5HX05BTUV9IGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFkZHJlc3NMaW5lID1cbiAgICAgICAgYCR7YWRkcmVzcy5TVUJfQlVJTERJTkdfTkFNRX0gJHthZGRyZXNzLkJVSUxESU5HX05VTUJFUn0gJHthZGRyZXNzLlRIT1JPVUdIRkFSRV9OQU1FfWA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJlbW92ZU5vbkFkZHJlc3NWYWx1ZXMoYWRkcmVzc0xpbmUpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUFkZHJlc3NMaW5lMyhjbGFzc2lmaWNhdGlvbjogc3RyaW5nLCBhZGRyZXNzOiBhbnkpIHtcbiAgICBsZXQgYWRkcmVzc0xpbmU7XG4gICAgaWYgKGNsYXNzaWZpY2F0aW9uID09PSBBZGRyZXNzVHlwZS5SRDA2KSB7XG4gICAgICBhZGRyZXNzTGluZSA9XG4gICAgICAgIGAke2FkZHJlc3MuQlVJTERJTkdfTlVNQkVSfSAke2FkZHJlc3MuVEhPUk9VR0hGQVJFX05BTUV9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgYWRkcmVzc0xpbmUgPVxuICAgICAgICBgJHthZGRyZXNzLkRFUEVOREVOVF9MT0NBTElUWX0gJHthZGRyZXNzLkRPVUJMRV9ERVBFTkRFTlRfTE9DQUxJVFl9ICR7YWRkcmVzcy5ERVBFTkRFTlRfVEhPUk9VR0hGQVJFX05BTUV9YDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucmVtb3ZlTm9uQWRkcmVzc1ZhbHVlcyhhZGRyZXNzTGluZSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZU5vbkFkZHJlc3NWYWx1ZXMobGluZTogc3RyaW5nKSB7XG4gICAgbGluZSA9IGxpbmUucmVwbGFjZSgnIG51bGwnLCAnICcpLnJlcGxhY2UoJ251bGwgJywgJyAnKTtcbiAgICBsaW5lID0gdGhpcy5yZW1vdmVVbmRlZmluZWRTdHJpbmcobGluZSk7XG4gICAgbGluZSA9IHRoaXMucmVtb3ZlSW5pdGlhbENvbW1hKGxpbmUpO1xuICAgIGxpbmUgPSB0aGlzLnJlbW92ZUVtcHR5U3BhY2VzKGxpbmUpO1xuICAgIHJldHVybiBsaW5lO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVVbmRlZmluZWRTdHJpbmcodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoJ3VuZGVmaW5lZCcsICdnaScpLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUVtcHR5U3BhY2VzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKCcgKycsICdnaScpLCAnICcpLnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlSW5pdGlhbENvbW1hKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKCdeLCcsICdnaScpLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIHByZWZpeFdpdGhDb21tYUlmUHJlc2VudCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHZhbHVlID8gYCwgJHt2YWx1ZX1gIDogdmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var AddressType;
|
|
2
|
+
(function (AddressType) {
|
|
3
|
+
AddressType["DPA"] = "DPA";
|
|
4
|
+
AddressType["UK"] = "United Kingdom";
|
|
5
|
+
AddressType["RD06"] = "RD06";
|
|
6
|
+
})(AddressType || (AddressType = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy9hZGRyZXNzL2FkZHJlc3MtdHlwZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZLFdBQVc7SUFDbkIsMEJBQVcsQ0FBQTtJQUNYLG9DQUFxQixDQUFBO0lBQ3JCLDRCQUFhLENBQUE7QUFDakIsQ0FBQyxFQUpXLFdBQVcsS0FBWCxXQUFXLFFBSXRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQWRkcmVzc1R5cGUge1xuICAgIERQQSA9ICdEUEEnLFxuICAgIFVLID0gJ1VuaXRlZCBLaW5nZG9tJyxcbiAgICBSRDA2ID0gJ1JEMDYnXG59XG4iXX0=
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import { AddressParser } from './address-parser';
|
|
5
|
+
import { AddressType } from './address-type.enum';
|
|
6
|
+
export class AddressService {
|
|
7
|
+
constructor(http) {
|
|
8
|
+
this.http = http;
|
|
9
|
+
}
|
|
10
|
+
getAddressesForPostcode(postcode) {
|
|
11
|
+
return this.http
|
|
12
|
+
.get('/external/addresses?postcode=${postcode}'.replace('${postcode}', postcode), undefined)
|
|
13
|
+
.pipe(map((res) => res.results))
|
|
14
|
+
.pipe(map(output => output.map((addresses) => this.format(new AddressParser().parse(addresses[AddressType.DPA])))));
|
|
15
|
+
}
|
|
16
|
+
format(addressModel) {
|
|
17
|
+
return this.formatAddressLines(this.shiftAddressLinesUp(addressModel));
|
|
18
|
+
}
|
|
19
|
+
formatAddressLines(addressModel) {
|
|
20
|
+
['addressLine1', 'addressLine2', 'addressLine3', 'postTown'].forEach((value) => {
|
|
21
|
+
addressModel[value] = this.toCapitalCase(addressModel[value]);
|
|
22
|
+
});
|
|
23
|
+
return addressModel;
|
|
24
|
+
}
|
|
25
|
+
shiftAddressLinesUp(addressModel) {
|
|
26
|
+
if (addressModel.addressLine2 === '') {
|
|
27
|
+
addressModel.addressLine2 = addressModel.addressLine3;
|
|
28
|
+
addressModel.addressLine3 = '';
|
|
29
|
+
}
|
|
30
|
+
if (addressModel.addressLine1 === '') {
|
|
31
|
+
addressModel.addressLine1 = addressModel.addressLine2;
|
|
32
|
+
addressModel.addressLine2 = '';
|
|
33
|
+
}
|
|
34
|
+
return addressModel;
|
|
35
|
+
}
|
|
36
|
+
toCapitalCase(sentence) {
|
|
37
|
+
sentence = sentence.toLowerCase();
|
|
38
|
+
sentence.split(' ').forEach((value) => {
|
|
39
|
+
sentence = sentence.replace(value, value.charAt(0).toUpperCase() + value.substr(1));
|
|
40
|
+
});
|
|
41
|
+
return sentence;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
AddressService.decorators = [
|
|
45
|
+
{ type: Injectable }
|
|
46
|
+
];
|
|
47
|
+
AddressService.ctorParameters = () => [
|
|
48
|
+
{ type: HttpClient }
|
|
49
|
+
];
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvYWRkcmVzcy9hZGRyZXNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHbEQsTUFBTSxPQUFPLGNBQWM7SUFFekIsWUFBNkIsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUM3QyxDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBZ0I7UUFDN0MsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBTSwwQ0FBMEMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxFQUFFLFNBQW1CLENBQUM7YUFDMUcsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzNCLElBQUksQ0FDSCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBYyxFQUFFLEVBQUUsQ0FDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDbkUsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRU8sTUFBTSxDQUFDLFlBQTBCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxZQUEwQjtRQUNuRCxDQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQWdDLEVBQUUsRUFBRTtZQUN4RyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxZQUEwQjtRQUNwRCxJQUFJLFlBQVksQ0FBQyxZQUFZLEtBQUssRUFBRSxFQUFFO1lBQ3BDLFlBQVksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQztZQUN0RCxZQUFZLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztTQUNoQztRQUNELElBQUksWUFBWSxDQUFDLFlBQVksS0FBSyxFQUFFLEVBQUU7WUFDcEMsWUFBWSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDO1lBQ3RELFlBQVksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxRQUFnQjtRQUNwQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbEMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLENBQUMsQ0FDRixDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7O1lBaERGLFVBQVU7OztZQVJGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWRkcmVzc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEFkZHJlc3NQYXJzZXIgfSBmcm9tICcuL2FkZHJlc3MtcGFyc2VyJztcbmltcG9ydCB7IEFkZHJlc3NUeXBlIH0gZnJvbSAnLi9hZGRyZXNzLXR5cGUuZW51bSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBZGRyZXNzU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWRkcmVzc2VzRm9yUG9zdGNvZGUocG9zdGNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8QWRkcmVzc01vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueT4oJy9leHRlcm5hbC9hZGRyZXNzZXM/cG9zdGNvZGU9JHtwb3N0Y29kZX0nLnJlcGxhY2UoJyR7cG9zdGNvZGV9JywgcG9zdGNvZGUpLCB1bmRlZmluZWQgYXMgb2JqZWN0KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzKSA9PiByZXMucmVzdWx0cykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKG91dHB1dCA9PiBvdXRwdXQubWFwKChhZGRyZXNzZXM6IGFueSkgPT5cbiAgICAgICAgICB0aGlzLmZvcm1hdChuZXcgQWRkcmVzc1BhcnNlcigpLnBhcnNlKGFkZHJlc3Nlc1tBZGRyZXNzVHlwZS5EUEFdKSlcbiAgICAgICAgKSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdChhZGRyZXNzTW9kZWw6IEFkZHJlc3NNb2RlbCkge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdEFkZHJlc3NMaW5lcyh0aGlzLnNoaWZ0QWRkcmVzc0xpbmVzVXAoYWRkcmVzc01vZGVsKSk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEFkZHJlc3NMaW5lcyhhZGRyZXNzTW9kZWw6IEFkZHJlc3NNb2RlbCkge1xuICAgIFsnYWRkcmVzc0xpbmUxJywgJ2FkZHJlc3NMaW5lMicsICdhZGRyZXNzTGluZTMnLCAncG9zdFRvd24nXS5mb3JFYWNoKCh2YWx1ZToga2V5b2YgdHlwZW9mIGFkZHJlc3NNb2RlbCkgPT4ge1xuICAgICAgYWRkcmVzc01vZGVsW3ZhbHVlXSA9IHRoaXMudG9DYXBpdGFsQ2FzZShhZGRyZXNzTW9kZWxbdmFsdWVdKTtcbiAgICB9KTtcbiAgICByZXR1cm4gYWRkcmVzc01vZGVsO1xuICB9XG5cbiAgcHJpdmF0ZSBzaGlmdEFkZHJlc3NMaW5lc1VwKGFkZHJlc3NNb2RlbDogQWRkcmVzc01vZGVsKSB7XG4gICAgaWYgKGFkZHJlc3NNb2RlbC5hZGRyZXNzTGluZTIgPT09ICcnKSB7XG4gICAgICBhZGRyZXNzTW9kZWwuYWRkcmVzc0xpbmUyID0gYWRkcmVzc01vZGVsLmFkZHJlc3NMaW5lMztcbiAgICAgIGFkZHJlc3NNb2RlbC5hZGRyZXNzTGluZTMgPSAnJztcbiAgICB9XG4gICAgaWYgKGFkZHJlc3NNb2RlbC5hZGRyZXNzTGluZTEgPT09ICcnKSB7XG4gICAgICBhZGRyZXNzTW9kZWwuYWRkcmVzc0xpbmUxID0gYWRkcmVzc01vZGVsLmFkZHJlc3NMaW5lMjtcbiAgICAgIGFkZHJlc3NNb2RlbC5hZGRyZXNzTGluZTIgPSAnJztcbiAgICB9XG4gICAgcmV0dXJuIGFkZHJlc3NNb2RlbDtcbiAgfVxuXG4gIHByaXZhdGUgdG9DYXBpdGFsQ2FzZShzZW50ZW5jZTogc3RyaW5nKSB7XG4gICAgc2VudGVuY2UgPSBzZW50ZW5jZS50b0xvd2VyQ2FzZSgpO1xuICAgIHNlbnRlbmNlLnNwbGl0KCcgJykuZm9yRWFjaCgodmFsdWUpID0+IHtcbiAgICAgICAgc2VudGVuY2UgPSBzZW50ZW5jZS5yZXBsYWNlKHZhbHVlLCB2YWx1ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbHVlLnN1YnN0cigxKSk7XG4gICAgICB9XG4gICAgKTtcbiAgICByZXR1cm4gc2VudGVuY2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
export * from './feature-toggle/feature-toggle.guard';
|
|
5
5
|
export * from './feature-toggle/feature-toggle.service';
|
|
6
6
|
export * from './feature-toggle/launch-darkly.service';
|
|
7
|
+
export * from './address/address.service';
|
|
7
8
|
export * from './google-analytics/google-analytics.service';
|
|
8
9
|
export * from './google-tag-manager/google-tag-manager.service';
|
|
9
10
|
export * from './manage-session/manage-session.services';
|
|
@@ -14,4 +15,4 @@ export * from './cookie/cookie.service';
|
|
|
14
15
|
export * from './loading/loading.service';
|
|
15
16
|
export * from './filter/filter.service';
|
|
16
17
|
export * from './ref-data';
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBleHVpLWNvbW1vbi1saWJcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlLXRvZ2dsZS9mZWF0dXJlLXRvZ2dsZS5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL2ZlYXR1cmUtdG9nZ2xlL2ZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlLXRvZ2dsZS9sYXVuY2gtZGFya2x5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hZGRyZXNzL2FkZHJlc3Muc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2dvb2dsZS1hbmFseXRpY3MvZ29vZ2xlLWFuYWx5dGljcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLXRhZy1tYW5hZ2VyL2dvb2dsZS10YWctbWFuYWdlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFuYWdlLXNlc3Npb24vbWFuYWdlLXNlc3Npb24uc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi90aW1lb3V0LW5vdGlmaWNhdGlvbnMvdGltZW91dC1ub3RpZmljYXRpb25zLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yb2xlLWd1YXJkL3JvbGUuZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9yb2xlLWd1YXJkL3JvbGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2Nvb2tpZS9jb29raWUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xvYWRpbmcvbG9hZGluZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyL2ZpbHRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVmLWRhdGEnO1xuIl19
|