taxtank-core 0.28.12 → 0.28.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/bundles/taxtank-core.umd.js +1484 -1250
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/collection-dictionary.js +5 -2
  4. package/esm2015/lib/collections/sole/sole-invoice-item.collection.js +7 -0
  5. package/esm2015/lib/db/Enums/document-type.enum.js +5 -0
  6. package/esm2015/lib/db/Enums/index.js +3 -0
  7. package/esm2015/lib/db/Enums/sole-invoice-tax-type.enum.js +7 -0
  8. package/esm2015/lib/db/Enums/sole-invoice-template-tax-type.enum.js +4 -4
  9. package/esm2015/lib/db/Models/sole/sole-invoice-item.js +1 -1
  10. package/esm2015/lib/db/Models/sole/sole-invoice.js +1 -1
  11. package/esm2015/lib/forms/bank/bank-account/bank-account-add-manual.form.js +10 -6
  12. package/esm2015/lib/forms/bank/bank-account/bank-account-allocation.form.js +5 -4
  13. package/esm2015/lib/forms/sole/sole-invoice-item.form.js +3 -31
  14. package/esm2015/lib/forms/sole/sole-invoice-template.form.js +4 -5
  15. package/esm2015/lib/forms/sole/sole-invoice.form.js +93 -18
  16. package/esm2015/lib/models/dictionary/dictionary.js +2 -2
  17. package/esm2015/lib/models/document/index.js +3 -0
  18. package/esm2015/lib/models/index.js +2 -1
  19. package/esm2015/lib/models/sole/sole-details.js +1 -3
  20. package/esm2015/lib/models/sole/sole-invoice-item.js +10 -2
  21. package/esm2015/lib/models/sole/sole-invoice-template.js +13 -10
  22. package/esm2015/lib/models/sole/sole-invoice.js +82 -28
  23. package/esm2015/lib/services/http/document/document-folder/document-folder.service.js +1 -1
  24. package/esm2015/lib/services/http/document/document.service.js +20 -0
  25. package/esm2015/lib/services/http/document/index.js +3 -0
  26. package/esm2015/lib/services/http/index.js +2 -1
  27. package/esm2015/lib/services/http/rest/rest.service.js +23 -7
  28. package/esm2015/lib/services/http/sole/sole-invoice/sole-invoice.service.js +15 -1
  29. package/esm2015/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.js +17 -5
  30. package/esm2015/lib/services/transaction/transaction-calculation.service.js +13 -1
  31. package/esm2015/public-api.js +3 -2
  32. package/fesm2015/taxtank-core.js +1149 -952
  33. package/fesm2015/taxtank-core.js.map +1 -1
  34. package/lib/collections/sole/sole-invoice-item.collection.d.ts +5 -0
  35. package/lib/db/Enums/document-type.enum.d.ts +3 -0
  36. package/lib/db/Enums/index.d.ts +1 -0
  37. package/lib/db/Enums/sole-invoice-tax-type.enum.d.ts +5 -0
  38. package/lib/db/Enums/sole-invoice-template-tax-type.enum.d.ts +3 -3
  39. package/lib/db/Models/sole/sole-invoice-item.d.ts +3 -1
  40. package/lib/db/Models/sole/sole-invoice.d.ts +8 -5
  41. package/lib/forms/bank/bank-account/bank-account-add-manual.form.d.ts +3 -1
  42. package/lib/forms/bank/bank-account/bank-account-allocation.form.d.ts +4 -1
  43. package/lib/forms/sole/sole-invoice-item.form.d.ts +2 -7
  44. package/lib/forms/sole/sole-invoice-template.form.d.ts +2 -3
  45. package/lib/forms/sole/sole-invoice.form.d.ts +19 -2
  46. package/lib/models/document/index.d.ts +2 -0
  47. package/lib/models/index.d.ts +1 -0
  48. package/lib/models/sole/sole-details.d.ts +0 -2
  49. package/lib/models/sole/sole-invoice-item.d.ts +7 -1
  50. package/lib/models/sole/sole-invoice-template.d.ts +10 -3
  51. package/lib/models/sole/sole-invoice.d.ts +49 -5
  52. package/lib/services/http/document/document.service.d.ts +10 -0
  53. package/lib/services/http/document/index.d.ts +2 -0
  54. package/lib/services/http/index.d.ts +1 -0
  55. package/lib/services/http/rest/rest.service.d.ts +13 -4
  56. package/lib/services/http/sole/sole-invoice/sole-invoice.service.d.ts +6 -1
  57. package/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.d.ts +5 -1
  58. package/lib/services/transaction/transaction-calculation.service.d.ts +6 -0
  59. package/package.json +1 -1
  60. package/public-api.d.ts +2 -1
@@ -7,16 +7,19 @@ import { SoleInvoiceTemplateTaxTypeEnum } from '../../db/Enums/sole-invoice-temp
7
7
  export class SoleInvoiceTemplate extends SoleInvoiceTemplateBase {
8
8
  constructor() {
9
9
  super(...arguments);
10
- this.taxType = SoleInvoiceTemplateTaxTypeEnum.NONE;
10
+ /**
11
+ * Affects to SoleInvoiceItem.isGST flag availability.
12
+ * When NONE: isGST is unavailable
13
+ * When EXCLUSIVE: GST amount added additionaly to invoice total price
14
+ * When INCLUSIVE: GST amount is already included to invoice total price
15
+ */
16
+ this.taxType = SoleInvoiceTemplateTaxTypeEnum.NO_TAX;
11
17
  }
12
- isNoTax() {
13
- return this.taxType === SoleInvoiceTemplateTaxTypeEnum.NONE;
14
- }
15
- isTaxExclusive() {
16
- return this.taxType === SoleInvoiceTemplateTaxTypeEnum.EXCLUSIVE;
17
- }
18
- isTaxInclusive() {
19
- return this.taxType === SoleInvoiceTemplateTaxTypeEnum.INCLUSIVE;
18
+ /**
19
+ * Get term duration in milliseconds
20
+ */
21
+ get termTime() {
22
+ return this.term * 24 * 3600 * 1000;
20
23
  }
21
24
  }
22
25
  __decorate([
@@ -25,4 +28,4 @@ __decorate([
25
28
  __decorate([
26
29
  Type(() => BankAccount)
27
30
  ], SoleInvoiceTemplate.prototype, "bankAccount", void 0);
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLXRlbXBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9zb2xlL3NvbGUtaW52b2ljZS10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLElBQUksdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFcEcsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHVCQUF1QjtJQUFoRTs7UUFPRSxZQUFPLEdBQW1DLDhCQUE4QixDQUFDLElBQUksQ0FBQztJQWFoRixDQUFDO0lBWEMsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyw4QkFBOEIsQ0FBQyxJQUFJLENBQUM7SUFDOUQsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssOEJBQThCLENBQUMsU0FBUyxDQUFDO0lBQ25FLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLDhCQUE4QixDQUFDLFNBQVMsQ0FBQztJQUNuRSxDQUFDO0NBQ0Y7QUFsQkM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO3FEQUNGO0FBR3ZCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQzt3REFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvbGVCdXNpbmVzcyB9IGZyb20gJy4vc29sZS1idXNpbmVzcyc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudCB9IGZyb20gJy4uL2JhbmsvYmFuay1hY2NvdW50JztcbmltcG9ydCB7IFNvbGVJbnZvaWNlVGVtcGxhdGUgYXMgU29sZUludm9pY2VUZW1wbGF0ZUJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvc29sZS9zb2xlLWludm9pY2UtdGVtcGxhdGUnO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlVGVtcGxhdGVUYXhUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3NvbGUtaW52b2ljZS10ZW1wbGF0ZS10YXgtdHlwZS5lbnVtJztcblxuZXhwb3J0IGNsYXNzIFNvbGVJbnZvaWNlVGVtcGxhdGUgZXh0ZW5kcyBTb2xlSW52b2ljZVRlbXBsYXRlQmFzZSB7XG4gIEBUeXBlKCgpID0+IFNvbGVCdXNpbmVzcylcbiAgYnVzaW5lc3M6IFNvbGVCdXNpbmVzcztcblxuICBAVHlwZSgoKSA9PiBCYW5rQWNjb3VudClcbiAgYmFua0FjY291bnQ6IEJhbmtBY2NvdW50O1xuXG4gIHRheFR5cGU6IFNvbGVJbnZvaWNlVGVtcGxhdGVUYXhUeXBlRW51bSA9IFNvbGVJbnZvaWNlVGVtcGxhdGVUYXhUeXBlRW51bS5OT05FO1xuXG4gIGlzTm9UYXgoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGF4VHlwZSA9PT0gU29sZUludm9pY2VUZW1wbGF0ZVRheFR5cGVFbnVtLk5PTkU7XG4gIH1cblxuICBpc1RheEV4Y2x1c2l2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YXhUeXBlID09PSBTb2xlSW52b2ljZVRlbXBsYXRlVGF4VHlwZUVudW0uRVhDTFVTSVZFO1xuICB9XG5cbiAgaXNUYXhJbmNsdXNpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGF4VHlwZSA9PT0gU29sZUludm9pY2VUZW1wbGF0ZVRheFR5cGVFbnVtLklOQ0xVU0lWRTtcbiAgfVxufVxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLXRlbXBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9zb2xlL3NvbGUtaW52b2ljZS10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLElBQUksdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFcEcsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHVCQUF1QjtJQUFoRTs7UUFPRTs7Ozs7V0FLRztRQUNILFlBQU8sR0FBbUMsOEJBQThCLENBQUMsTUFBTSxDQUFDO0lBUWxGLENBQUM7SUFOQzs7T0FFRztJQUNILElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUFuQkM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO3FEQUNGO0FBR3ZCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQzt3REFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvbGVCdXNpbmVzcyB9IGZyb20gJy4vc29sZS1idXNpbmVzcyc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudCB9IGZyb20gJy4uL2JhbmsvYmFuay1hY2NvdW50JztcbmltcG9ydCB7IFNvbGVJbnZvaWNlVGVtcGxhdGUgYXMgU29sZUludm9pY2VUZW1wbGF0ZUJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvc29sZS9zb2xlLWludm9pY2UtdGVtcGxhdGUnO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlVGVtcGxhdGVUYXhUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3NvbGUtaW52b2ljZS10ZW1wbGF0ZS10YXgtdHlwZS5lbnVtJztcblxuZXhwb3J0IGNsYXNzIFNvbGVJbnZvaWNlVGVtcGxhdGUgZXh0ZW5kcyBTb2xlSW52b2ljZVRlbXBsYXRlQmFzZSB7XG4gIEBUeXBlKCgpID0+IFNvbGVCdXNpbmVzcylcbiAgYnVzaW5lc3M6IFNvbGVCdXNpbmVzcztcblxuICBAVHlwZSgoKSA9PiBCYW5rQWNjb3VudClcbiAgYmFua0FjY291bnQ6IEJhbmtBY2NvdW50O1xuXG4gIC8qKlxuICAgKiBBZmZlY3RzIHRvIFNvbGVJbnZvaWNlSXRlbS5pc0dTVCBmbGFnIGF2YWlsYWJpbGl0eS5cbiAgICogV2hlbiBOT05FOiBpc0dTVCBpcyB1bmF2YWlsYWJsZVxuICAgKiBXaGVuIEVYQ0xVU0lWRTogR1NUIGFtb3VudCBhZGRlZCBhZGRpdGlvbmFseSB0byBpbnZvaWNlIHRvdGFsIHByaWNlXG4gICAqIFdoZW4gSU5DTFVTSVZFOiBHU1QgYW1vdW50IGlzIGFscmVhZHkgaW5jbHVkZWQgdG8gaW52b2ljZSB0b3RhbCBwcmljZVxuICAgKi9cbiAgdGF4VHlwZTogU29sZUludm9pY2VUZW1wbGF0ZVRheFR5cGVFbnVtID0gU29sZUludm9pY2VUZW1wbGF0ZVRheFR5cGVFbnVtLk5PX1RBWDtcblxuICAvKipcbiAgICogR2V0IHRlcm0gZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzXG4gICAqL1xuICBnZXQgdGVybVRpbWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtICogMjQgKiAzNjAwICogMTAwMDtcbiAgfVxufVxuIl19
@@ -5,48 +5,72 @@ import { SoleBusiness } from './sole-business';
5
5
  import { SoleInvoiceItem } from './sole-invoice-item';
6
6
  import { SoleContact } from './sole-contact';
7
7
  import { SoleInvoiceTemplate } from './sole-invoice-template';
8
- import { plainToClass, Type } from 'class-transformer';
8
+ import { Type } from 'class-transformer';
9
9
  import { SoleInvoiceStatusesEnum } from '../../db/Enums/sole-invoice-statuses.enum';
10
- import { SoleDetails } from './sole-details';
10
+ import { BankAccount } from '../bank/bank-account';
11
+ import { SoleInvoiceTaxTypeEnum } from '../../db/Enums/sole-invoice-tax-type.enum';
12
+ import { SoleInvoiceItemCollection } from '../../collections/sole/sole-invoice-item.collection';
11
13
  export class SoleInvoice extends SoleInvoiceBase {
12
14
  constructor() {
13
15
  super(...arguments);
14
- this.items = [plainToClass(SoleInvoiceItem, {})];
15
16
  this.status = SoleInvoiceStatusesEnum.DRAFT;
17
+ this.taxType = SoleInvoiceTaxTypeEnum.NO_TAX;
16
18
  }
17
- get amount() {
18
- return this.items.reduce((sum, item) => sum + item.amount, 0);
19
+ /**
20
+ * Get items array as collection
21
+ */
22
+ get itemsCollection() {
23
+ return new SoleInvoiceItemCollection(this.items);
19
24
  }
20
- getGSTItems() {
21
- return this.items.filter((item) => item.isGST);
25
+ /**
26
+ * Total price of all items
27
+ */
28
+ get price() {
29
+ return this.itemsCollection.sumBy('totalPrice');
22
30
  }
23
- getGSTItemsAmount() {
24
- return this.getGSTItems().reduce((sum, item) => sum + item.amount, 0);
31
+ /**
32
+ * Total invoice price without GST
33
+ */
34
+ get netPrice() {
35
+ if (this.isTaxInclusive()) {
36
+ return this.price - this.GSTAmount;
37
+ }
38
+ return this.price;
25
39
  }
26
- get subtotal() {
27
- var _a;
28
- if ((_a = this.template) === null || _a === void 0 ? void 0 : _a.isTaxInclusive()) {
29
- return this.amount - this.GSTAmount;
40
+ /**
41
+ * Total final price (net + GST)
42
+ */
43
+ get grossPrice() {
44
+ if (this.isTaxExclusive()) {
45
+ return this.price + this.GSTAmount;
30
46
  }
31
- return this.amount;
47
+ return this.price;
32
48
  }
49
+ /**
50
+ * Total GST amount
51
+ */
33
52
  get GSTAmount() {
34
- var _a, _b;
35
- switch (true) {
36
- case (_a = this.template) === null || _a === void 0 ? void 0 : _a.isTaxInclusive():
37
- return +(this.getGSTItemsAmount() / SoleDetails.GSTPercentDivider).toFixed(2);
38
- case (_b = this.template) === null || _b === void 0 ? void 0 : _b.isTaxExclusive():
39
- return +(this.getGSTItemsAmount() * SoleDetails.GSTPercentMultiplier).toFixed(2);
40
- default:
53
+ switch (this.taxType) {
54
+ case SoleInvoiceTaxTypeEnum.TAX_INCLUSIVE:
55
+ return this.inclusiveGSTAmount;
56
+ case SoleInvoiceTaxTypeEnum.TAX_EXCLUSIVE:
57
+ return this.exclusiveGSTAmount;
58
+ case SoleInvoiceTaxTypeEnum.NO_TAX:
41
59
  return 0;
42
60
  }
43
61
  }
44
- get total() {
45
- var _a;
46
- if ((_a = this.template) === null || _a === void 0 ? void 0 : _a.isTaxExclusive()) {
47
- return this.amount + this.GSTAmount;
48
- }
49
- return this.amount;
62
+ /**
63
+ * When tax inclusive, GST amount is included to total price
64
+ */
65
+ get inclusiveGSTAmount() {
66
+ const gstPrice = this.itemsCollection.gstPrice;
67
+ return +(gstPrice - (gstPrice / (1 + SoleInvoiceItem.GSTRatio))).toFixed(2);
68
+ }
69
+ /**
70
+ * When tax exclusive, GST amount should be added additionally to total price
71
+ */
72
+ get exclusiveGSTAmount() {
73
+ return +(this.itemsCollection.gstPrice * SoleInvoiceItem.GSTRatio).toFixed(2);
50
74
  }
51
75
  isDraft() {
52
76
  return this.status === SoleInvoiceStatusesEnum.DRAFT;
@@ -66,7 +90,34 @@ export class SoleInvoice extends SoleInvoiceBase {
66
90
  isUnpaid() {
67
91
  return this.isPending() && this.dateTo >= new Date();
68
92
  }
93
+ /**
94
+ * GST is not available for invoices without taxes
95
+ */
96
+ isNoTax() {
97
+ return this.taxType === SoleInvoiceTaxTypeEnum.NO_TAX;
98
+ }
99
+ /**
100
+ * GST amount is not included in items prices for invoices with tax exclusive,
101
+ * we should add GST amount additionaly to subtotal price to get total price
102
+ */
103
+ isTaxExclusive() {
104
+ return this.taxType === SoleInvoiceTaxTypeEnum.TAX_EXCLUSIVE;
105
+ }
106
+ /**
107
+ * GST amount already included in items prices for invoices with tax inclusive,
108
+ * we should subtract GST amount from total price to get subtotal price
109
+ */
110
+ isTaxInclusive() {
111
+ return this.taxType === SoleInvoiceTaxTypeEnum.TAX_INCLUSIVE;
112
+ }
113
+ getNumber() {
114
+ return String(this.number).padStart(SoleInvoice.NUMBER_LENGTH, '0');
115
+ }
116
+ get name() {
117
+ return `invoice-${this.getNumber()}.pdf`;
118
+ }
69
119
  }
120
+ SoleInvoice.NUMBER_LENGTH = 4;
70
121
  __decorate([
71
122
  Type(() => Date)
72
123
  ], SoleInvoice.prototype, "dateFrom", void 0);
@@ -88,4 +139,7 @@ __decorate([
88
139
  __decorate([
89
140
  Type(() => SoleInvoiceTemplate)
90
141
  ], SoleInvoice.prototype, "template", void 0);
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9zb2xlL3NvbGUtaW52b2ljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsSUFBSSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE1BQU0sT0FBTyxXQUFZLFNBQVEsZUFBZTtJQUFoRDs7UUFjRSxVQUFLLEdBQXNCLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBUS9ELFdBQU0sR0FBNEIsdUJBQXVCLENBQUMsS0FBSyxDQUFDO0lBZ0VsRSxDQUFDO0lBOURDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsSUFBcUIsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxL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bnQiOlsiaW1wb3J0IHsgU29sZUludm9pY2UgYXMgU29sZUludm9pY2VCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3NvbGUvc29sZS1pbnZvaWNlJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi91c2VyL3VzZXInO1xuaW1wb3J0IHsgU29sZUJ1c2luZXNzIH0gZnJvbSAnLi9zb2xlLWJ1c2luZXNzJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlSXRlbSB9IGZyb20gJy4vc29sZS1pbnZvaWNlLWl0ZW0nO1xuaW1wb3J0IHsgU29sZUNvbnRhY3QgfSBmcm9tICcuL3NvbGUtY29udGFjdCc7XG5pbXBvcnQgeyBTb2xlSW52b2ljZVRlbXBsYXRlIH0gZnJvbSAnLi9zb2xlLWludm9pY2UtdGVtcGxhdGUnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzLCBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgU29sZUludm9pY2VTdGF0dXNlc0VudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9zb2xlLWludm9pY2Utc3RhdHVzZXMuZW51bSc7XG5pbXBvcnQgeyBTb2xlRGV0YWlscyB9IGZyb20gJy4vc29sZS1kZXRhaWxzJztcblxuZXhwb3J0IGNsYXNzIFNvbGVJbnZvaWNlIGV4dGVuZHMgU29sZUludm9pY2VCYXNlIHtcbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZGF0ZUZyb206IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZGF0ZVRvOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IFVzZXIpXG4gIHVzZXI6IFVzZXI7XG5cbiAgQFR5cGUoKCkgPT4gU29sZUJ1c2luZXNzKVxuICBidXNpbmVzczogU29sZUJ1c2luZXNzO1xuXG4gIEBUeXBlKCgpID0+IFNvbGVJbnZvaWNlSXRlbSlcbiAgaXRlbXM6IFNvbGVJbnZvaWNlSXRlbVtdID0gW3BsYWluVG9DbGFzcyhTb2xlSW52b2ljZUl0ZW0sIHt9KV07XG5cbiAgQFR5cGUoKCkgPT4gU29sZUNvbnRhY3QpXG4gIHBheWVyOiBTb2xlQ29udGFjdDtcblxuICBAVHlwZSgoKSA9PiBTb2xlSW52b2ljZVRlbXBsYXRlKVxuICB0ZW1wbGF0ZTogU29sZUludm9pY2VUZW1wbGF0ZTtcblxuICBzdGF0dXM6IFNvbGVJbnZvaWNlU3RhdHVzZXNFbnVtID0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uRFJBRlQ7XG5cbiAgZ2V0IGFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGl0ZW06IFNvbGVJbnZvaWNlSXRlbSkgPT4gc3VtICsgaXRlbS5hbW91bnQsIDApO1xuICB9XG5cbiAgZ2V0R1NUSXRlbXMoKTogU29sZUludm9pY2VJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbHRlcigoaXRlbTogU29sZUludm9pY2VJdGVtKSA9PiBpdGVtLmlzR1NUKTtcbiAgfVxuXG4gIGdldEdTVEl0ZW1zQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0R1NUSXRlbXMoKS5yZWR1Y2UoKHN1bTogbnVtYmVyLCBpdGVtOiBTb2xlSW52b2ljZUl0ZW0pID0+IHN1bSArIGl0ZW0uYW1vdW50LCAwKTtcbiAgfVxuXG4gIGdldCBzdWJ0b3RhbCgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLnRlbXBsYXRlPy5pc1RheEluY2x1c2l2ZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5hbW91bnQgLSB0aGlzLkdTVEFtb3VudDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hbW91bnQ7XG4gIH1cblxuICBnZXQgR1NUQW1vdW50KCk6IG51bWJlciB7XG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIHRoaXMudGVtcGxhdGU/LmlzVGF4SW5jbHVzaXZlKCk6XG4gICAgICAgIHJldHVybiArKHRoaXMuZ2V0R1NUSXRlbXNBbW91bnQoKSAvIFNvbGVEZXRhaWxzLkdTVFBlcmNlbnREaXZpZGVyKS50b0ZpeGVkKDIpO1xuICAgICAgY2FzZSB0aGlzLnRlbXBsYXRlPy5pc1RheEV4Y2x1c2l2ZSgpOlxuICAgICAgICByZXR1cm4gKyh0aGlzLmdldEdTVEl0ZW1zQW1vdW50KCkgKiBTb2xlRGV0YWlscy5HU1RQZXJjZW50TXVsdGlwbGllcikudG9GaXhlZCgyKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0b3RhbCgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLnRlbXBsYXRlPy5pc1RheEV4Y2x1c2l2ZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5hbW91bnQgKyB0aGlzLkdTVEFtb3VudDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hbW91bnQ7XG4gIH1cblxuICBpc0RyYWZ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uRFJBRlQ7XG4gIH1cblxuICBpc0NhbmNlbGxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNvbGVJbnZvaWNlU3RhdHVzZXNFbnVtLkNBTkNFTEVEO1xuICB9XG5cbiAgaXNQZW5kaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uUEVORElORztcbiAgfVxuXG4gIGlzUGFpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNvbGVJbnZvaWNlU3RhdHVzZXNFbnVtLlBBSUQ7XG4gIH1cblxuICBpc092ZXJkdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNQZW5kaW5nKCkgJiYgdGhpcy5kYXRlVG8gPCBuZXcgRGF0ZSgpO1xuICB9XG5cbiAgaXNVbnBhaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNQZW5kaW5nKCkgJiYgdGhpcy5kYXRlVG8gPj0gbmV3IERhdGUoKTtcbiAgfVxufVxuIl19
142
+ __decorate([
143
+ Type(() => BankAccount)
144
+ ], SoleInvoice.prototype, "bankAccount", void 0);
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9zb2xlL3NvbGUtaW52b2ljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsSUFBSSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFaEcsTUFBTSxPQUFPLFdBQVksU0FBUSxlQUFlO0lBQWhEOztRQTJCRSxXQUFNLEdBQTRCLHVCQUF1QixDQUFDLEtBQUssQ0FBQztRQUNoRSxZQUFPLEdBQTJCLHNCQUFzQixDQUFDLE1BQU0sQ0FBQztJQTBIbEUsQ0FBQztJQXhIQzs7T0FFRztJQUNILElBQUksZUFBZTtRQUNqQixPQUFPLElBQUkseUJBQXlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNILElBQVksS0FBSztRQUNm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QUFHLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxXQUFXLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQzNDLENBQUM7O0FBcEpNLHlCQUFhLEdBQUcsQ0FBQyxDQUFDO0FBR3pCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzs2Q0FDRjtBQUdmO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzsyQ0FDSjtBQUdiO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzt5Q0FDTjtBQUdYO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQzs2Q0FDRjtBQUd2QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7MENBQ0g7QUFHekI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDOzBDQUNMO0FBR25CO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDOzZDQUNGO0FBRzlCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztnREFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvbGVJbnZvaWNlIGFzIFNvbGVJbnZvaWNlQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9zb2xlL3NvbGUtaW52b2ljZSc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlci91c2VyJztcbmltcG9ydCB7IFNvbGVCdXNpbmVzcyB9IGZyb20gJy4vc29sZS1idXNpbmVzcyc7XG5pbXBvcnQgeyBTb2xlSW52b2ljZUl0ZW0gfSBmcm9tICcuL3NvbGUtaW52b2ljZS1pdGVtJztcbmltcG9ydCB7IFNvbGVDb250YWN0IH0gZnJvbSAnLi9zb2xlLWNvbnRhY3QnO1xuaW1wb3J0IHsgU29sZUludm9pY2VUZW1wbGF0ZSB9IGZyb20gJy4vc29sZS1pbnZvaWNlLXRlbXBsYXRlJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTb2xlSW52b2ljZVN0YXR1c2VzRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3NvbGUtaW52b2ljZS1zdGF0dXNlcy5lbnVtJztcbmltcG9ydCB7IEJhbmtBY2NvdW50IH0gZnJvbSAnLi4vYmFuay9iYW5rLWFjY291bnQnO1xuaW1wb3J0IHsgU29sZUludm9pY2VUYXhUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3NvbGUtaW52b2ljZS10YXgtdHlwZS5lbnVtJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlSXRlbUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy9zb2xlL3NvbGUtaW52b2ljZS1pdGVtLmNvbGxlY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgU29sZUludm9pY2UgZXh0ZW5kcyBTb2xlSW52b2ljZUJhc2Uge1xuICBzdGF0aWMgTlVNQkVSX0xFTkdUSCA9IDQ7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZGF0ZUZyb206IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZGF0ZVRvOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IFVzZXIpXG4gIHVzZXI6IFVzZXI7XG5cbiAgQFR5cGUoKCkgPT4gU29sZUJ1c2luZXNzKVxuICBidXNpbmVzczogU29sZUJ1c2luZXNzO1xuXG4gIEBUeXBlKCgpID0+IFNvbGVJbnZvaWNlSXRlbSlcbiAgaXRlbXM6IFNvbGVJbnZvaWNlSXRlbVtdO1xuXG4gIEBUeXBlKCgpID0+IFNvbGVDb250YWN0KVxuICBwYXllcjogU29sZUNvbnRhY3Q7XG5cbiAgQFR5cGUoKCkgPT4gU29sZUludm9pY2VUZW1wbGF0ZSlcbiAgdGVtcGxhdGU6IFNvbGVJbnZvaWNlVGVtcGxhdGU7XG5cbiAgQFR5cGUoKCkgPT4gQmFua0FjY291bnQpXG4gIGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudDtcblxuICBzdGF0dXM6IFNvbGVJbnZvaWNlU3RhdHVzZXNFbnVtID0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uRFJBRlQ7XG4gIHRheFR5cGU6IFNvbGVJbnZvaWNlVGF4VHlwZUVudW0gPSBTb2xlSW52b2ljZVRheFR5cGVFbnVtLk5PX1RBWDtcblxuICAvKipcbiAgICogR2V0IGl0ZW1zIGFycmF5IGFzIGNvbGxlY3Rpb25cbiAgICovXG4gIGdldCBpdGVtc0NvbGxlY3Rpb24oKTogU29sZUludm9pY2VJdGVtQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBTb2xlSW52b2ljZUl0ZW1Db2xsZWN0aW9uKHRoaXMuaXRlbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvdGFsIHByaWNlIG9mIGFsbCBpdGVtc1xuICAgKi9cbiAgcHJpdmF0ZSBnZXQgcHJpY2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc0NvbGxlY3Rpb24uc3VtQnkoJ3RvdGFsUHJpY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb3RhbCBpbnZvaWNlIHByaWNlIHdpdGhvdXQgR1NUXG4gICAqL1xuICBnZXQgbmV0UHJpY2UoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5pc1RheEluY2x1c2l2ZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcmljZSAtIHRoaXMuR1NUQW1vdW50O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnByaWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvdGFsIGZpbmFsIHByaWNlIChuZXQgKyBHU1QpXG4gICAqL1xuICBnZXQgZ3Jvc3NQcmljZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLmlzVGF4RXhjbHVzaXZlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByaWNlICsgdGhpcy5HU1RBbW91bnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHJpY2U7XG4gIH1cblxuICAvKipcbiAgICogVG90YWwgR1NUIGFtb3VudFxuICAgKi9cbiAgZ2V0IEdTVEFtb3VudCgpOiBudW1iZXIge1xuICAgIHN3aXRjaCAodGhpcy50YXhUeXBlKSB7XG4gICAgICBjYXNlIFNvbGVJbnZvaWNlVGF4VHlwZUVudW0uVEFYX0lOQ0xVU0lWRTpcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5jbHVzaXZlR1NUQW1vdW50O1xuICAgICAgY2FzZSBTb2xlSW52b2ljZVRheFR5cGVFbnVtLlRBWF9FWENMVVNJVkU6XG4gICAgICAgIHJldHVybiB0aGlzLmV4Y2x1c2l2ZUdTVEFtb3VudDtcbiAgICAgIGNhc2UgU29sZUludm9pY2VUYXhUeXBlRW51bS5OT19UQVg6XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIHRheCBpbmNsdXNpdmUsIEdTVCBhbW91bnQgaXMgaW5jbHVkZWQgdG8gdG90YWwgcHJpY2VcbiAgICovXG4gIHByaXZhdGUgZ2V0IGluY2x1c2l2ZUdTVEFtb3VudCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGdzdFByaWNlID0gdGhpcy5pdGVtc0NvbGxlY3Rpb24uZ3N0UHJpY2U7XG5cbiAgICByZXR1cm4gKyhnc3RQcmljZSAtIChnc3RQcmljZSAvICgxICsgU29sZUludm9pY2VJdGVtLkdTVFJhdGlvKSkpLnRvRml4ZWQoMik7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiB0YXggZXhjbHVzaXZlLCBHU1QgYW1vdW50IHNob3VsZCBiZSBhZGRlZCBhZGRpdGlvbmFsbHkgdG8gdG90YWwgcHJpY2VcbiAgICovXG4gIHByaXZhdGUgZ2V0IGV4Y2x1c2l2ZUdTVEFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiArKHRoaXMuaXRlbXNDb2xsZWN0aW9uLmdzdFByaWNlICogU29sZUludm9pY2VJdGVtLkdTVFJhdGlvKS50b0ZpeGVkKDIpXG4gIH1cblxuICBpc0RyYWZ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uRFJBRlQ7XG4gIH1cblxuICBpc0NhbmNlbGxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNvbGVJbnZvaWNlU3RhdHVzZXNFbnVtLkNBTkNFTEVEO1xuICB9XG5cbiAgaXNQZW5kaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uUEVORElORztcbiAgfVxuXG4gIGlzUGFpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNvbGVJbnZvaWNlU3RhdHVzZXNFbnVtLlBBSUQ7XG4gIH1cblxuICBpc092ZXJkdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNQZW5kaW5nKCkgJiYgdGhpcy5kYXRlVG8gPCBuZXcgRGF0ZSgpO1xuICB9XG5cbiAgaXNVbnBhaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNQZW5kaW5nKCkgJiYgdGhpcy5kYXRlVG8gPj0gbmV3IERhdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHU1QgaXMgbm90IGF2YWlsYWJsZSBmb3IgaW52b2ljZXMgd2l0aG91dCB0YXhlc1xuICAgKi9cbiAgaXNOb1RheCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YXhUeXBlID09PSBTb2xlSW52b2ljZVRheFR5cGVFbnVtLk5PX1RBWDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHU1QgYW1vdW50IGlzIG5vdCBpbmNsdWRlZCBpbiBpdGVtcyBwcmljZXMgZm9yIGludm9pY2VzIHdpdGggdGF4IGV4Y2x1c2l2ZSxcbiAgICogd2Ugc2hvdWxkIGFkZCBHU1QgYW1vdW50IGFkZGl0aW9uYWx5IHRvIHN1YnRvdGFsIHByaWNlIHRvIGdldCB0b3RhbCBwcmljZVxuICAgKi9cbiAgaXNUYXhFeGNsdXNpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGF4VHlwZSA9PT0gU29sZUludm9pY2VUYXhUeXBlRW51bS5UQVhfRVhDTFVTSVZFO1xuICB9XG5cbiAgLyoqXG4gICAqIEdTVCBhbW91bnQgYWxyZWFkeSBpbmNsdWRlZCBpbiBpdGVtcyBwcmljZXMgZm9yIGludm9pY2VzIHdpdGggdGF4IGluY2x1c2l2ZSxcbiAgICogd2Ugc2hvdWxkIHN1YnRyYWN0IEdTVCBhbW91bnQgZnJvbSB0b3RhbCBwcmljZSB0byBnZXQgc3VidG90YWwgcHJpY2VcbiAgICovXG4gIGlzVGF4SW5jbHVzaXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRheFR5cGUgPT09IFNvbGVJbnZvaWNlVGF4VHlwZUVudW0uVEFYX0lOQ0xVU0lWRTtcbiAgfVxuXG4gIGdldE51bWJlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiBTdHJpbmcodGhpcy5udW1iZXIpLnBhZFN0YXJ0KFNvbGVJbnZvaWNlLk5VTUJFUl9MRU5HVEgsICcwJyk7XG4gIH1cblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgaW52b2ljZS0ke3RoaXMuZ2V0TnVtYmVyKCl9LnBkZmA7XG4gIH1cbn1cbiJdfQ==
@@ -73,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
73
73
  providedIn: 'root'
74
74
  }]
75
75
  }] });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZm9sZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9kb2N1bWVudC9kb2N1bWVudC1mb2xkZXIvZG9jdW1lbnQtZm9sZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7QUFHN0U7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsV0FBK0M7SUFIMUY7O1FBSUUsUUFBRyxHQUFXLFNBQVMsQ0FBQztRQUN4QixlQUFVLEdBQTBCLGNBQWMsQ0FBQztLQWlFcEQ7SUEvREM7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxJQUFVLEVBQUUsTUFBc0I7UUFDNUMsNENBQTRDO1FBQzVDLE1BQU0sZ0JBQWdCLEdBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNsRCxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXRDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssWUFBWSxNQUFNLENBQUMsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxJ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QUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O21IQWxFVSxxQkFBcUI7dUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvY3VtZW50Rm9sZGVyIGFzIERvY3VtZW50Rm9sZGVyQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy9kb2N1bWVudC9kb2N1bWVudC1mb2xkZXInO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IERvY3VtZW50IGFzIERvY3VtZW50QmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy9kb2N1bWVudC9kb2N1bWVudCc7XG5pbXBvcnQgeyBEb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9kb2N1bWVudC9kb2N1bWVudCc7XG5pbXBvcnQgeyByZXBsYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9jdW1lbnRGb2xkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZG9jdW1lbnQvZG9jdW1lbnQtZm9sZGVyJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gaGFuZGxlIGRvY3VtZW50LWZvbGRlcnMgYW5kIGRlcGVuZGluZyBkb2N1bWVudHMgbG9naWNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRGb2xkZXJTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8RG9jdW1lbnRGb2xkZXJCYXNlLCBEb2N1bWVudEZvbGRlcj4ge1xuICB1cmw6IHN0cmluZyA9ICdmb2xkZXJzJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIERvY3VtZW50Rm9sZGVyID0gRG9jdW1lbnRGb2xkZXI7XG5cbiAgLyoqXG4gICAqIEFkZCBuZXcgZG9jdW1lbnQgdG8gdGhlIGZvbGRlclxuICAgKiBAcGFyYW0gZmlsZSB0byBiZSB1cGxvYWRlZCB0byB0aGUgZm9sZGVyXG4gICAqIEBwYXJhbSBmb2xkZXIgZm9yIGRvY3VtZW50XG4gICAqL1xuICBhZGREb2N1bWVudChmaWxlOiBGaWxlLCBmb2xkZXI6IERvY3VtZW50Rm9sZGVyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgLy8gY3JlYXRlIGZvcm1EYXRhIG9iamVjdCB3aXRoIHByb3ZpZGVkIGZpbGVcbiAgICBjb25zdCBmb3JtRGF0YURvY3VtZW50OiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhRG9jdW1lbnQuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vZm9sZGVycy8ke2ZvbGRlci5pZH0vZG9jdW1lbnRzYCwgZm9ybURhdGFEb2N1bWVudCkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IERvY3VtZW50QmFzZSkgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkRm9sZGVyOiBEb2N1bWVudEZvbGRlciA9IE9iamVjdC5hc3NpZ24ocGxhaW5Ub0NsYXNzKERvY3VtZW50Rm9sZGVyLCB7fSksIGZvbGRlcik7XG4gICAgICAgIHVwZGF0ZWRGb2xkZXIuZG9jdW1lbnRzLnB1c2gocGxhaW5Ub0NsYXNzKERvY3VtZW50LCByZXNwb25zZSkpO1xuXG4gICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgcGxhaW5Ub0NsYXNzKERvY3VtZW50Rm9sZGVyLCB1cGRhdGVkRm9sZGVyKSk7XG4gICAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRWRpdCBmb2xkZXIgZG9jdW1lbnQgYnkgbW92aW5nIGl0IGZyb20gb25lIGZvbGRlciB0byBhbm90aGVyXG4gICAqIEBwYXJhbSBlZGl0ZWREb2N1bWVudFxuICAgKiBAcGFyYW0gc2VsZWN0ZWRGb2xkZXIgdG8gbW92ZSB0aGUgZG9jdW1lbnQgdG9cbiAgICogQHBhcmFtIG9sZEZvbGRlcklkOiBpZCBvZiBvbGQgZm9sZGVyIGZyb20gd2hpY2ggbmVlZCB0byByZW1vdmUgdGhlIGRvY3VtZW50XG4gICAqL1xuICB1cGRhdGVEb2N1bWVudChlZGl0ZWREb2N1bWVudDogRG9jdW1lbnQsIHNlbGVjdGVkRm9sZGVyOiBEb2N1bWVudEZvbGRlciwgb2xkRm9sZGVySWQ6IG51bWJlcik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2ZvbGRlcnMvJHtzZWxlY3RlZEZvbGRlci5pZH0vZG9jdW1lbnRzLyR7ZWRpdGVkRG9jdW1lbnQuaWR9YCwgZWRpdGVkRG9jdW1lbnQpLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBEb2N1bWVudEJhc2UpID0+IHtcbiAgICAgICAgY29uc3Qgb2xkRm9sZGVyOiBEb2N1bWVudEZvbGRlciA9IHRoaXMuY2FjaGUuZmluZCgoZm9sZGVyOiBEb2N1bWVudEZvbGRlcikgPT4gZm9sZGVyLmlkID09PSBvbGRGb2xkZXJJZCk7XG4gICAgICAgIC8vIFJlbW92ZSBkb2N1bWVudCBmcm9tIG9sZCBmb2xkZXJcbiAgICAgICAgb2xkRm9sZGVyLmRvY3VtZW50cyA9IG9sZEZvbGRlci5kb2N1bWVudHMuZmlsdGVyKChkZWxldGVkRG9jdW1lbnQ6IERvY3VtZW50KSA9PiBkZWxldGVkRG9jdW1lbnQuaWQgIT09IHJlc3BvbnNlLmlkKTtcblxuICAgICAgICAvLyB1cGRhdGUgb2xkIGZvbGRlciBhbmQgcmVwbGFjZSBpdCBpbiBjYWNoZVxuICAgICAgICByZXNwb25zZS5mb2xkZXIgPSBwbGFpblRvQ2xhc3MoRG9jdW1lbnRGb2xkZXIsIHtpZDogc2VsZWN0ZWRGb2xkZXIuaWQsIG5hbWU6IHNlbGVjdGVkRm9sZGVyLm5hbWV9KTtcbiAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCBwbGFpblRvQ2xhc3MoRG9jdW1lbnRGb2xkZXIsIG9sZEZvbGRlcikpO1xuXG4gICAgICAgIC8vIHVwZGF0ZSBuZXcgZG9jdW1lbnQgZm9sZGVyIGFuZCByZXBsYWNlIGl0IGluIGNhY2hlXG4gICAgICAgIHNlbGVjdGVkRm9sZGVyLmRvY3VtZW50cy5wdXNoKHBsYWluVG9DbGFzcyhEb2N1bWVudCwgcmVzcG9uc2UpKTtcbiAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCBwbGFpblRvQ2xhc3MoRG9jdW1lbnRGb2xkZXIsIHNlbGVjdGVkRm9sZGVyKSk7XG5cbiAgICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgZG9jdW1lbnQgZnJvbSBmb2xkZXJcbiAgICogQHBhcmFtIGRvY3VtZW50IHRvIHJlbW92ZVxuICAgKiBAcGFyYW0gZm9sZGVyIGZyb20gd2hpY2ggZG9jdW1lbnQgc2hvdWxkIGJlIHJlbW92ZWRcbiAgICovXG4gIGRlbGV0ZURvY3VtZW50KGRvY3VtZW50OiBEb2N1bWVudCwgZm9sZGVyOiBEb2N1bWVudEZvbGRlcik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2ZvbGRlcnMvJHtmb2xkZXIuaWR9L2RvY3VtZW50cy8ke2RvY3VtZW50LmlkfWApLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICBmb2xkZXIuZG9jdW1lbnRzID0gZm9sZGVyLmRvY3VtZW50c1xuICAgICAgICAgIC5maWx0ZXIoKGRlbGV0ZWREb2N1bWVudDogRG9jdW1lbnQpID0+IGRlbGV0ZWREb2N1bWVudC5pZCAhPT0gZG9jdW1lbnQuaWQpO1xuICAgICAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHBsYWluVG9DbGFzcyhEb2N1bWVudEZvbGRlciwgZm9sZGVyKSk7XG5cbiAgICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZm9sZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9kb2N1bWVudC9kb2N1bWVudC1mb2xkZXIvZG9jdW1lbnQtZm9sZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7QUFFN0U7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsV0FBK0M7SUFIMUY7O1FBSUUsUUFBRyxHQUFXLFNBQVMsQ0FBQztRQUN4QixlQUFVLEdBQTBCLGNBQWMsQ0FBQztLQWlFcEQ7SUEvREM7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxJQUFVLEVBQUUsTUFBc0I7UUFDNUMsNENBQTRDO1FBQzVDLE1BQU0sZ0JBQWdCLEdBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNsRCxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXRDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssWUFBWSxNQUFNLENBQUMsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxJ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QUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O21IQWxFVSxxQkFBcUI7dUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudEZvbGRlciBhcyBEb2N1bWVudEZvbGRlckJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9Nb2RlbHMvZG9jdW1lbnQvZG9jdW1lbnQtZm9sZGVyJztcbmltcG9ydCB7IERvY3VtZW50IGFzIERvY3VtZW50QmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy9kb2N1bWVudC9kb2N1bWVudCc7XG5pbXBvcnQgeyBEb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9kb2N1bWVudC9kb2N1bWVudCc7XG5pbXBvcnQgeyByZXBsYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9jdW1lbnRGb2xkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZG9jdW1lbnQvZG9jdW1lbnQtZm9sZGVyJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIGhhbmRsZSBkb2N1bWVudC1mb2xkZXJzIGFuZCBkZXBlbmRpbmcgZG9jdW1lbnRzIGxvZ2ljXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50Rm9sZGVyU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPERvY3VtZW50Rm9sZGVyQmFzZSwgRG9jdW1lbnRGb2xkZXI+IHtcbiAgdXJsOiBzdHJpbmcgPSAnZm9sZGVycyc7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBEb2N1bWVudEZvbGRlciA9IERvY3VtZW50Rm9sZGVyO1xuXG4gIC8qKlxuICAgKiBBZGQgbmV3IGRvY3VtZW50IHRvIHRoZSBmb2xkZXJcbiAgICogQHBhcmFtIGZpbGUgdG8gYmUgdXBsb2FkZWQgdG8gdGhlIGZvbGRlclxuICAgKiBAcGFyYW0gZm9sZGVyIGZvciBkb2N1bWVudFxuICAgKi9cbiAgYWRkRG9jdW1lbnQoZmlsZTogRmlsZSwgZm9sZGVyOiBEb2N1bWVudEZvbGRlcik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIC8vIGNyZWF0ZSBmb3JtRGF0YSBvYmplY3Qgd2l0aCBwcm92aWRlZCBmaWxlXG4gICAgY29uc3QgZm9ybURhdGFEb2N1bWVudDogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YURvY3VtZW50LmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2ZvbGRlcnMvJHtmb2xkZXIuaWR9L2RvY3VtZW50c2AsIGZvcm1EYXRhRG9jdW1lbnQpLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBEb2N1bWVudEJhc2UpID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZEZvbGRlcjogRG9jdW1lbnRGb2xkZXIgPSBPYmplY3QuYXNzaWduKHBsYWluVG9DbGFzcyhEb2N1bWVudEZvbGRlciwge30pLCBmb2xkZXIpO1xuICAgICAgICB1cGRhdGVkRm9sZGVyLmRvY3VtZW50cy5wdXNoKHBsYWluVG9DbGFzcyhEb2N1bWVudCwgcmVzcG9uc2UpKTtcblxuICAgICAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHBsYWluVG9DbGFzcyhEb2N1bWVudEZvbGRlciwgdXBkYXRlZEZvbGRlcikpO1xuICAgICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEVkaXQgZm9sZGVyIGRvY3VtZW50IGJ5IG1vdmluZyBpdCBmcm9tIG9uZSBmb2xkZXIgdG8gYW5vdGhlclxuICAgKiBAcGFyYW0gZWRpdGVkRG9jdW1lbnRcbiAgICogQHBhcmFtIHNlbGVjdGVkRm9sZGVyIHRvIG1vdmUgdGhlIGRvY3VtZW50IHRvXG4gICAqIEBwYXJhbSBvbGRGb2xkZXJJZDogaWQgb2Ygb2xkIGZvbGRlciBmcm9tIHdoaWNoIG5lZWQgdG8gcmVtb3ZlIHRoZSBkb2N1bWVudFxuICAgKi9cbiAgdXBkYXRlRG9jdW1lbnQoZWRpdGVkRG9jdW1lbnQ6IERvY3VtZW50LCBzZWxlY3RlZEZvbGRlcjogRG9jdW1lbnRGb2xkZXIsIG9sZEZvbGRlcklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9mb2xkZXJzLyR7c2VsZWN0ZWRGb2xkZXIuaWR9L2RvY3VtZW50cy8ke2VkaXRlZERvY3VtZW50LmlkfWAsIGVkaXRlZERvY3VtZW50KS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogRG9jdW1lbnRCYXNlKSA9PiB7XG4gICAgICAgIGNvbnN0IG9sZEZvbGRlcjogRG9jdW1lbnRGb2xkZXIgPSB0aGlzLmNhY2hlLmZpbmQoKGZvbGRlcjogRG9jdW1lbnRGb2xkZXIpID0+IGZvbGRlci5pZCA9PT0gb2xkRm9sZGVySWQpO1xuICAgICAgICAvLyBSZW1vdmUgZG9jdW1lbnQgZnJvbSBvbGQgZm9sZGVyXG4gICAgICAgIG9sZEZvbGRlci5kb2N1bWVudHMgPSBvbGRGb2xkZXIuZG9jdW1lbnRzLmZpbHRlcigoZGVsZXRlZERvY3VtZW50OiBEb2N1bWVudCkgPT4gZGVsZXRlZERvY3VtZW50LmlkICE9PSByZXNwb25zZS5pZCk7XG5cbiAgICAgICAgLy8gdXBkYXRlIG9sZCBmb2xkZXIgYW5kIHJlcGxhY2UgaXQgaW4gY2FjaGVcbiAgICAgICAgcmVzcG9uc2UuZm9sZGVyID0gcGxhaW5Ub0NsYXNzKERvY3VtZW50Rm9sZGVyLCB7aWQ6IHNlbGVjdGVkRm9sZGVyLmlkLCBuYW1lOiBzZWxlY3RlZEZvbGRlci5uYW1lfSk7XG4gICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgcGxhaW5Ub0NsYXNzKERvY3VtZW50Rm9sZGVyLCBvbGRGb2xkZXIpKTtcblxuICAgICAgICAvLyB1cGRhdGUgbmV3IGRvY3VtZW50IGZvbGRlciBhbmQgcmVwbGFjZSBpdCBpbiBjYWNoZVxuICAgICAgICBzZWxlY3RlZEZvbGRlci5kb2N1bWVudHMucHVzaChwbGFpblRvQ2xhc3MoRG9jdW1lbnQsIHJlc3BvbnNlKSk7XG4gICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgcGxhaW5Ub0NsYXNzKERvY3VtZW50Rm9sZGVyLCBzZWxlY3RlZEZvbGRlcikpO1xuXG4gICAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGRvY3VtZW50IGZyb20gZm9sZGVyXG4gICAqIEBwYXJhbSBkb2N1bWVudCB0byByZW1vdmVcbiAgICogQHBhcmFtIGZvbGRlciBmcm9tIHdoaWNoIGRvY3VtZW50IHNob3VsZCBiZSByZW1vdmVkXG4gICAqL1xuICBkZWxldGVEb2N1bWVudChkb2N1bWVudDogRG9jdW1lbnQsIGZvbGRlcjogRG9jdW1lbnRGb2xkZXIpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9mb2xkZXJzLyR7Zm9sZGVyLmlkfS9kb2N1bWVudHMvJHtkb2N1bWVudC5pZH1gKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgZm9sZGVyLmRvY3VtZW50cyA9IGZvbGRlci5kb2N1bWVudHNcbiAgICAgICAgICAuZmlsdGVyKChkZWxldGVkRG9jdW1lbnQ6IERvY3VtZW50KSA9PiBkZWxldGVkRG9jdW1lbnQuaWQgIT09IGRvY3VtZW50LmlkKTtcbiAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCBwbGFpblRvQ2xhc3MoRG9jdW1lbnRGb2xkZXIsIGZvbGRlcikpO1xuXG4gICAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Document } from '../../../models';
3
+ import { RestService } from '../rest/rest.service';
4
+ import * as i0 from "@angular/core";
5
+ export class DocumentService extends RestService {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.url = 'documents';
9
+ this.modelClass = Document;
10
+ }
11
+ }
12
+ DocumentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DocumentService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
13
+ DocumentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DocumentService, providedIn: 'root' });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: DocumentService, decorators: [{
15
+ type: Injectable,
16
+ args: [{
17
+ providedIn: 'root'
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2RvY3VtZW50L2RvY3VtZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUtuRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFtQztJQUh4RTs7UUFJRSxRQUFHLEdBQVcsV0FBVyxDQUFDO1FBQzFCLGVBQVUsR0FBb0IsUUFBUSxDQUFDO0tBQ3hDOzs2R0FIWSxlQUFlO2lIQUFmLGVBQWUsY0FGZCxNQUFNOzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9jdW1lbnQgYXMgRG9jdW1lbnRCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzL2RvY3VtZW50L2RvY3VtZW50JztcbmltcG9ydCB7IERvY3VtZW50IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudFNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxEb2N1bWVudEJhc2UsIERvY3VtZW50PiB7XG4gIHVybDogc3RyaW5nID0gJ2RvY3VtZW50cyc7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBEb2N1bWVudCA9IERvY3VtZW50O1xufVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './document.service';
2
+ export * from './document-folder/document-folder.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9kb2N1bWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RvY3VtZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kb2N1bWVudC1mb2xkZXIvZG9jdW1lbnQtZm9sZGVyLnNlcnZpY2UnO1xuIl19
@@ -1,4 +1,5 @@
1
1
  export * from './sole';
2
2
  export * from './vehicle';
3
3
  export * from './user';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc29sZSc7XG5leHBvcnQgKiBmcm9tICcuL3ZlaGljbGUnO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyJztcbiJdfQ==
4
+ export * from './document';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc29sZSc7XG5leHBvcnQgKiBmcm9tICcuL3ZlaGljbGUnO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyJztcbmV4cG9ydCAqIGZyb20gJy4vZG9jdW1lbnQnO1xuIl19
@@ -53,10 +53,9 @@ export class RestService {
53
53
  }
54
54
  /**
55
55
  * add new instance and update cache
56
- * @TODO rename to post
57
56
  */
58
- add(model, shouldUpdateCache = true) {
59
- return this.http.post(`${this.environment.apiV2}/${this.url}`, classToPlain(model))
57
+ create(data, shouldUpdateCache = true) {
58
+ return this.http.post(`${this.environment.apiV2}/${this.url}`, data)
60
59
  .pipe(map((newItem) => {
61
60
  if (!shouldUpdateCache) {
62
61
  return null;
@@ -72,11 +71,28 @@ export class RestService {
72
71
  return newInstance;
73
72
  }));
74
73
  }
74
+ /**
75
+ * @TODO Alex TT-1777 rename to post
76
+ */
77
+ add(model, shouldUpdateCache = true) {
78
+ return this.create(classToPlain(model), shouldUpdateCache);
79
+ }
80
+ /**
81
+ * @TODO Alex TT-1777 rename to upload
82
+ */
83
+ postForm(file, params = {}) {
84
+ const formData = new FormData();
85
+ formData.append('file', file);
86
+ for (let key in params) {
87
+ formData.append(key, params[key]);
88
+ }
89
+ return this.create(formData);
90
+ }
75
91
  /**
76
92
  * Add several new items
77
93
  * @param models Array of new items for saving
78
94
  * @param queryParams query parameters for request
79
- * @TODO rename to postBatch
95
+ * @TODO Alex TT-1777 rename to postBatch
80
96
  */
81
97
  addBatch(models, queryParams = {}) {
82
98
  return this.http.post(`${this.environment.apiV2}/${this.url}`, classToPlain(models), queryParams)
@@ -96,7 +112,7 @@ export class RestService {
96
112
  * Update item
97
113
  * @param model Existing instance for updating
98
114
  * @param queryParams query parameters for request
99
- * @TODO rename to put
115
+ * @TODO Alex TT-1777 rename to put
100
116
  */
101
117
  update(model, queryParams = {}) {
102
118
  return this.http.put(`${this.environment.apiV2}/${this.url}/${model['id']}`, classToPlain(model), queryParams)
@@ -114,7 +130,7 @@ export class RestService {
114
130
  * Update several items
115
131
  * @param models Array of items for updating
116
132
  * @param queryParams query parameters for request
117
- * TODO rename to putBatch
133
+ * TODO Alex TT-1777 rename to putBatch
118
134
  */
119
135
  updateBatch(models, queryParams = {}) {
120
136
  return this.http.put(`${this.environment.apiV2}/${this.url}`, classToPlain(models), queryParams)
@@ -210,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
210
226
  type: Inject,
211
227
  args: ['environment']
212
228
  }] }, { type: i3.ToastService }]; } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvcmVzdC9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBSS9EOzs7Ozs7Ozs7O0dBVUc7QUFJSCxNQUFNLE9BQWdCLFdBQVc7SUFtQi9CLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCLEVBQ3ZDLFlBQTBCO1FBSDFCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUN2QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWZ0Qyw0QkFBNEI7UUFDbEIsaUJBQVksR0FBMkIsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUM7UUFnQjdFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDMUI7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFF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QUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ08sV0FBVztRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxtQkFBbUIsQ0FBQyxLQUFrQyxFQUFFLFNBQW9CO1FBQ3BGLE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxlQUFlLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxLQUFVLENBQUM7O3lHQTlPSCxXQUFXLGtGQXNCckIsYUFBYTs2R0F0QkgsV0FBVyxjQUZuQixNQUFNOzRGQUVFLFdBQVc7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkF1QkksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyByZXBsYWNlIH0gZnJvbSAnLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZXZlbnQvZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IGNsYXNzVG9QbGFpbiwgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3QvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvZXZlbnQtbGlzdGVuZXIuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBBYnN0cmFjdCBiYXNlIHNlcnZpY2UgdGhhdCBpbXBsZW1lbnRzIGNvbW1vbiBzZXJ2aWNlcyBmdW5jdGlvbmFsaXR5XG4gKiBhbmQgZGVzY3JpYmUgYWJzdHJhY3QgbWV0aG9kcy9wcm9wZXJ0aWVzIHRoYXQgaGF2ZSB0byBiZSBpbXBsZW1lbnRlZCBpbiBjaGlsZCBzZXJ2aWNlc1xuICogTW9kZWwgLSBlbnRpdHkgc2VydmljZSBpcyB3b3JraW5nIHdpdGhcbiAqIEJhc2VNb2RlbCAtIGJhc2UgZW50aXR5IG1vZGVsIHRoYXQgZXh0ZW5kcyBieSBNb2RlbFxuICogQFRPRE8gVFQtMTc3NyBBbGV4OiByZWZhY3RvciBhbGwgc2VydmljZXMgZm9yIHdvcmsgd2l0aCBjb2xsZWN0aW9ucyBpbnN0ZWFkIG9mIGFycmF5c1xuICogQFRPRE8gVFQtMTc3NyBBbGV4OiBpbXBsZW1lbnQgc21hcnQgc3lzdGVtIG9mIGRlZmF1bHQgdG9hc3QgbWVzc2FnZXNcbiAqIEBUT0RPIFRULTE3NzcgQWxleDogd29yayBub3Qgb25seSB3aXRoIGFycmF5L2NvbGxlY3Rpb24gYnV0IHdpdGggc2luZ2xlIG9iamVjdHNcbiAqIEBUT0RPIFRULTE3NzcgQWxleDogYXV0b21hdGljIGV2ZW50cyBnZW5lcmF0aW9uIChldmVudERpc3BhdGNoZXIpXG4gKiBAVE9ETyBUVC0xNzc3IEFsZXg6IG9wdGlvbmFsIHJlc3QgbWV0aG9kcyAobm90IGFsbCBzZXJ2aWNlcyBoYXZlIGFsbCA0IG1ldGhvZHMpXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlc3RTZXJ2aWNlPEJhc2VNb2RlbCwgTW9kZWwgZXh0ZW5kcyBCYXNlTW9kZWw+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICAvLyB1cmwgcGFydCBmb3Igc2VydmljZSBlbnRpdHkgQVBJLiBIYXZlIHRvIGJlIGRlZmluZWQgaW4gZXh0ZW5kZWQgY2xhc3Nlc1xuICBhYnN0cmFjdCB1cmw6IHN0cmluZztcbiAgLy8gTW9kZWwgY2xhc3MgZm9yIGluc3RhbmNlcyBjcmVhdGluZ1xuICBhYnN0cmFjdCBtb2RlbENsYXNzO1xuICAvLyBAVE9ETyBNYWtlIGNhY2hlIFJlYWRvbmx5XG4gIC8vIGNhY2hlZCBhcnJheSBvZiBzZXJ2aWNlIGNsYXNzIGluc3RhbmNlc1xuICBwcm90ZWN0ZWQgY2FjaGU6IE1vZGVsW107XG4gIC8vIHN1YmplY3QgZm9yIHNlcnZpY2UgY2FjaGVcbiAgcHJvdGVjdGVkIGNhY2hlU3ViamVjdDogUmVwbGF5U3ViamVjdDxNb2RlbFtdPiA9IG5ldyBSZXBsYXlTdWJqZWN0PE1vZGVsW10+KDEpO1xuICAvLyBmbGFnIGZvciB3b3JrIHdpdGggQVBJIHBsYXRmb3JtXG4gIHByb3RlY3RlZCBpc0h5ZHJhOiBib29sZWFuO1xuICBtZXNzYWdlQ3JlYXRlZDogc3RyaW5nO1xuICBtZXNzYWdlQ3JlYXRlZEJhdGNoOiBzdHJpbmc7XG4gIG1lc3NhZ2VVcGRhdGVkOiBzdHJpbmc7XG4gIG1lc3NhZ2VVcGRhdGVkQmF0Y2g6IHN0cmluZztcbiAgbWVzc2FnZURlbGV0ZWQ6IHN0cmluZztcbiAgbWVzc2FnZURlbGV0ZWRCYXRjaDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnksXG4gICAgcHJvdGVjdGVkIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGNhY2hlZCBsaXN0IG9mIGFsbCBpbnN0YW5jZXNcbiAgICovXG4gIGdldCgpOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuY2FjaGUgPSBbXTtcbiAgICAgIHRoaXMuZmV0Y2goKS5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYWNoZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGluc3RhbmNlIGJ5IGlkIGZyb20gY2FjaGVcbiAgICogQHBhcmFtIGlkIElEIG9mIHJlcXVpcmVkIGl0ZW1cbiAgICovXG4gIGZpbmRCeUlkKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGl0ZW1zOiBNb2RlbFtdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbmQoKGl0ZW06IE1vZGVsKSA9PiBpdGVtWydpZCddID09PSBpZCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZmluZChpZDogbnVtYmVyKTogTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmNhY2hlLmZpbmQoKGl0ZW06IE1vZGVsKSA9PiBpdGVtWydpZCddID09PSBpZCk7XG4gIH1cblxuICAvKipcbiAgICogYWRkIG5ldyBpbnN0YW5jZSBhbmQgdXBkYXRlIGNhY2hlXG4gICAqIEBUT0RPIHJlbmFtZSB0byBwb3N0XG4gICAqL1xuICBhZGQobW9kZWw6IE1vZGVsLCBzaG91bGRVcGRhdGVDYWNoZTogYm9vbGVhbiA9IHRydWUpOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgY2xhc3NUb1BsYWluKG1vZGVsKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKG5ld0l0ZW06IEJhc2VNb2RlbCkgPT4ge1xuICAgICAgICAgIGlmICghc2hvdWxkVXBkYXRlQ2FjaGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbmV3SW5zdGFuY2U6IE1vZGVsID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHRoaXMubW9kZWxDbGFzcywgbmV3SXRlbSk7XG4gICAgICAgICAgaWYgKHRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUucHVzaChuZXdJbnN0YW5jZSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZUNyZWF0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlQ3JlYXRlZCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG5ld0luc3RhbmNlO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgc2V2ZXJhbCBuZXcgaXRlbXNcbiAgICogQHBhcmFtIG1vZGVscyBBcnJheSBvZiBuZXcgaXRlbXMgZm9yIHNhdmluZ1xuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgcXVlcnkgcGFyYW1ldGVycyBmb3IgcmVxdWVzdFxuICAgKiBAVE9ETyByZW5hbWUgdG8gcG9zdEJhdGNoXG4gICAqL1xuICBhZGRCYXRjaChtb2RlbHM6IE1vZGVsW10sIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGNsYXNzVG9QbGFpbihtb2RlbHMpLCBxdWVyeVBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKG5ld0l0ZW1zOiBCYXNlTW9kZWxbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld0luc3RhbmNlczogTW9kZWxbXSA9IG5ld0l0ZW1zLm1hcCgoaXRlbTogQmFzZU1vZGVsKSA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UodGhpcy5tb2RlbENsYXNzLCBpdGVtKSk7XG4gICAgICAgICAgaWYgKHRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUucHVzaCguLi5uZXdJbnN0YW5jZXMpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VDcmVhdGVkQmF0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlQ3JlYXRlZEJhdGNoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmV3SW5zdGFuY2VzO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgaXRlbVxuICAgKiBAcGFyYW0gbW9kZWwgRXhpc3RpbmcgaW5zdGFuY2UgZm9yIHVwZGF0aW5nXG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyBxdWVyeSBwYXJhbWV0ZXJzIGZvciByZXF1ZXN0XG4gICAqIEBUT0RPIHJlbmFtZSB0byBwdXRcbiAgICovXG4gIHVwZGF0ZShtb2RlbDogTW9kZWwsIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke21vZGVsWydpZCddfWAsIGNsYXNzVG9QbGFpbihtb2RlbCksIHF1ZXJ5UGFyYW1zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZEl0ZW06IEJhc2VNb2RlbCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRJbnN0YW5jZTogTW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UodGhpcy5tb2RlbENsYXNzLCB1cGRhdGVkSXRlbSk7XG4gICAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCB1cGRhdGVkSW5zdGFuY2UpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VVcGRhdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMubWVzc2FnZVVwZGF0ZWQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1cGRhdGVkSW5zdGFuY2U7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBzZXZlcmFsIGl0ZW1zXG4gICAqIEBwYXJhbSBtb2RlbHMgQXJyYXkgb2YgaXRlbXMgZm9yIHVwZGF0aW5nXG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyBxdWVyeSBwYXJhbWV0ZXJzIGZvciByZXF1ZXN0XG4gICAqIFRPRE8gcmVuYW1lIHRvIHB1dEJhdGNoXG4gICAqL1xuICB1cGRhdGVCYXRjaChtb2RlbHM6IE1vZGVsW10sIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgY2xhc3NUb1BsYWluKG1vZGVscyksIHF1ZXJ5UGFyYW1zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZEl0ZW1zOiBCYXNlTW9kZWxbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRJbnN0YW5jZXM6IE1vZGVsW10gPSB1cGRhdGVkSXRlbXMubWFwKChpdGVtOiBCYXNlTW9kZWwpID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZSh0aGlzLm1vZGVsQ2xhc3MsIGl0ZW0pKTtcbiAgICAgICAgICB1cGRhdGVkSW5zdGFuY2VzLmZvckVhY2goKGluc3RhbmNlOiBNb2RlbCkgPT4ge1xuICAgICAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCBpbnN0YW5jZSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlVXBkYXRlZEJhdGNoKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMubWVzc2FnZVVwZGF0ZWRCYXRjaCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIHJldHVybiB1cGRhdGVkSW5zdGFuY2VzO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWxldGUgaW5zdGFuY2Ugb2YgY2xhc3NcbiAgICogQHBhcmFtIG1vZGVsIENsYXNzIGluc3RhbmNlIGZvciBkZWxldGluZ1xuICAgKi9cbiAgZGVsZXRlKG1vZGVsOiBNb2RlbCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9LyR7bW9kZWxbJ2lkJ119YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSB0aGlzLmNhY2hlLmZpbHRlcigoaXRlbTogTW9kZWwpID0+IGl0ZW1bJ2lkJ10gIT09IG1vZGVsWydpZCddKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG5cbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlRGVsZXRlZCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VEZWxldGVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgY2xhc3NcbiAgICogQHBhcmFtIG1vZGVscyBDbGFzcyBpbnN0YW5jZXMgYXJyYXkgZm9yIGRlbGV0aW5nXG4gICAqL1xuICBkZWxldGVCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vZGVsZXRlYCwgbW9kZWxzKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaWRzOiBudW1iZXJbXSA9IG1vZGVscy5tYXAoKG1vZGVsOiBNb2RlbCk6IG51bWJlciA9PiBtb2RlbFsnaWQnXSk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRoaXMuY2FjaGUuZmlsdGVyKChpdGVtOiBNb2RlbCkgPT4gIWlkcy5pbmNsdWRlcyhpdGVtWydpZCddKSk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZURlbGV0ZWRCYXRjaCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VEZWxldGVkQmF0Y2gpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogY2xlYXIgc2VydmljZSBjYWNoZVxuICAgKi9cbiAgcmVzZXRDYWNoZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZldGNoKCkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgYmFzZSBjbGFzcyBpbnN0YW5jZXMgZGlyZWN0bHkgZnJvbSBiYWNrZW5kXG4gICAqL1xuICBwcm90ZWN0ZWQgZmV0Y2goKTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH1gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IEJhc2VNb2RlbFtdKTogTW9kZWxbXSA9PiB7XG4gICAgICAgICAgY29uc3QgaXRlbXM6IE1vZGVsW10gPSAodGhpcy5pc0h5ZHJhID8gcmVzcG9uc2VbJ2h5ZHJhOm1lbWJlciddIDogcmVzcG9uc2UpXG4gICAgICAgICAgICAubWFwKChpdGVtOiBCYXNlTW9kZWwpOiBNb2RlbCA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UodGhpcy5tb2RlbENsYXNzLCBpdGVtKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSBpdGVtcztcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgY2FjaGUgc3ViamVjdCB3aXRoIGN1cnJlbnQgY2FjaGUgYXJyYXkgdmFsdWVcbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVDYWNoZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUuc2xpY2UoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIG5ldyBpbnN0YW5jZSBvZiBjbGFzc1xuICAgKiBAcGFyYW0gbW9kZWwgVGhlIGNsYXNzIGZvciB3aGljaCB5b3Ugd2FudCB0byBjcmVhdGUgYW4gaW5zdGFuY2VcbiAgICogQHBhcmFtIGJhc2VNb2RlbCBiYXNlIG1vZGVsIGluc3RhbmNlIHRoYXQgd2Ugd2lsbCB1c2UgYXMgY29uc3RydWN0b3Igb3B0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZU1vZGVsSW5zdGFuY2UobW9kZWw6IG5ldyhibTogQmFzZU1vZGVsKSA9PiBNb2RlbCwgYmFzZU1vZGVsOiBCYXNlTW9kZWwpOiBNb2RlbCB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzcyhtb2RlbCwgYmFzZU1vZGVsLCB7IGV4Y2x1ZGVQcmVmaXhlczogWydAJ10gfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHRoYXQgY2FsbCBhbGwgbGlzdGVuZXJzLiBFbXB0eSBieSBkZWZhdWx0LiBTaG91bGQgYmUgcmVkZWZpbmVkIGJ5IGNoaWxkIHNlcnZpY2VzIGlmIHJlcXVpcmVkXG4gICAqL1xuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7fVxufVxuIl19
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvcmVzdC9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBSS9EOzs7Ozs7Ozs7O0dBVUc7QUFJSCxNQUFNLE9BQWdCLFdBQVc7SUFtQi9CLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCLEVBQ3ZDLFlBQTBCO1FBSDFCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUN2QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWZ0Qyw0QkFBNEI7UUFDbEIsaUJBQVksR0FBMkIsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUM7UUFnQjdFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDMUI7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFF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SSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgY2xhc3NUb1BsYWluLCBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9ldmVudC1saXN0ZW5lci5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEFic3RyYWN0IGJhc2Ugc2VydmljZSB0aGF0IGltcGxlbWVudHMgY29tbW9uIHNlcnZpY2VzIGZ1bmN0aW9uYWxpdHlcbiAqIGFuZCBkZXNjcmliZSBhYnN0cmFjdCBtZXRob2RzL3Byb3BlcnRpZXMgdGhhdCBoYXZlIHRvIGJlIGltcGxlbWVudGVkIGluIGNoaWxkIHNlcnZpY2VzXG4gKiBNb2RlbCAtIGVudGl0eSBzZXJ2aWNlIGlzIHdvcmtpbmcgd2l0aFxuICogQmFzZU1vZGVsIC0gYmFzZSBlbnRpdHkgbW9kZWwgdGhhdCBleHRlbmRzIGJ5IE1vZGVsXG4gKiBAVE9ETyBUVC0xNzc3IEFsZXg6IHJlZmFjdG9yIGFsbCBzZXJ2aWNlcyBmb3Igd29yayB3aXRoIGNvbGxlY3Rpb25zIGluc3RlYWQgb2YgYXJyYXlzXG4gKiBAVE9ETyBUVC0xNzc3IEFsZXg6IGltcGxlbWVudCBzbWFydCBzeXN0ZW0gb2YgZGVmYXVsdCB0b2FzdCBtZXNzYWdlc1xuICogQFRPRE8gVFQtMTc3NyBBbGV4OiB3b3JrIG5vdCBvbmx5IHdpdGggYXJyYXkvY29sbGVjdGlvbiBidXQgd2l0aCBzaW5nbGUgb2JqZWN0c1xuICogQFRPRE8gVFQtMTc3NyBBbGV4OiBhdXRvbWF0aWMgZXZlbnRzIGdlbmVyYXRpb24gKGV2ZW50RGlzcGF0Y2hlcilcbiAqIEBUT0RPIFRULTE3NzcgQWxleDogb3B0aW9uYWwgcmVzdCBtZXRob2RzIChub3QgYWxsIHNlcnZpY2VzIGhhdmUgYWxsIDQgbWV0aG9kcylcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzdFNlcnZpY2U8QmFzZU1vZGVsLCBNb2RlbCBleHRlbmRzIEJhc2VNb2RlbD4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIC8vIHVybCBwYXJ0IGZvciBzZXJ2aWNlIGVudGl0eSBBUEkuIEhhdmUgdG8gYmUgZGVmaW5lZCBpbiBleHRlbmRlZCBjbGFzc2VzXG4gIGFic3RyYWN0IHVybDogc3RyaW5nO1xuICAvLyBNb2RlbCBjbGFzcyBmb3IgaW5zdGFuY2VzIGNyZWF0aW5nXG4gIGFic3RyYWN0IG1vZGVsQ2xhc3M7XG4gIC8vIEBUT0RPIE1ha2UgY2FjaGUgUmVhZG9ubHlcbiAgLy8gY2FjaGVkIGFycmF5IG9mIHNlcnZpY2UgY2xhc3MgaW5zdGFuY2VzXG4gIHByb3RlY3RlZCBjYWNoZTogTW9kZWxbXTtcbiAgLy8gc3ViamVjdCBmb3Igc2VydmljZSBjYWNoZVxuICBwcm90ZWN0ZWQgY2FjaGVTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PE1vZGVsW10+ID0gbmV3IFJlcGxheVN1YmplY3Q8TW9kZWxbXT4oMSk7XG4gIC8vIGZsYWcgZm9yIHdvcmsgd2l0aCBBUEkgcGxhdGZvcm1cbiAgcHJvdGVjdGVkIGlzSHlkcmE6IGJvb2xlYW47XG4gIG1lc3NhZ2VDcmVhdGVkOiBzdHJpbmc7XG4gIG1lc3NhZ2VDcmVhdGVkQmF0Y2g6IHN0cmluZztcbiAgbWVzc2FnZVVwZGF0ZWQ6IHN0cmluZztcbiAgbWVzc2FnZVVwZGF0ZWRCYXRjaDogc3RyaW5nO1xuICBtZXNzYWdlRGVsZXRlZDogc3RyaW5nO1xuICBtZXNzYWdlRGVsZXRlZEJhdGNoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueSxcbiAgICBwcm90ZWN0ZWQgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgY2FjaGVkIGxpc3Qgb2YgYWxsIGluc3RhbmNlc1xuICAgKi9cbiAgZ2V0KCk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgdGhpcy5jYWNoZSA9IFtdO1xuICAgICAgdGhpcy5mZXRjaCgpLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNhY2hlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgaW5zdGFuY2UgYnkgaWQgZnJvbSBjYWNoZVxuICAgKiBAcGFyYW0gaWQgSUQgb2YgcmVxdWlyZWQgaXRlbVxuICAgKi9cbiAgZmluZEJ5SWQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoaXRlbXM6IE1vZGVsW10pID0+IHtcbiAgICAgICAgICByZXR1cm4gaXRlbXMuZmluZCgoaXRlbTogTW9kZWwpID0+IGl0ZW1bJ2lkJ10gPT09IGlkKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBmaW5kKGlkOiBudW1iZXIpOiBNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuZmluZCgoaXRlbTogTW9kZWwpID0+IGl0ZW1bJ2lkJ10gPT09IGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZGQgbmV3IGluc3RhbmNlIGFuZCB1cGRhdGUgY2FjaGVcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlKGRhdGE6IG9iamVjdCwgc2hvdWxkVXBkYXRlQ2FjaGU6IGJvb2xlYW4gPSB0cnVlKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGRhdGEpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChuZXdJdGVtOiBCYXNlTW9kZWwpID0+IHtcbiAgICAgICAgICBpZiAoIXNob3VsZFVwZGF0ZUNhY2hlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG5ld0luc3RhbmNlOiBNb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZSh0aGlzLm1vZGVsQ2xhc3MsIG5ld0l0ZW0pO1xuICAgICAgICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnB1c2gobmV3SW5zdGFuY2UpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VDcmVhdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMubWVzc2FnZUNyZWF0ZWQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXdJbnN0YW5jZTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gQWxleCBUVC0xNzc3IHJlbmFtZSB0byBwb3N0XG4gICAqL1xuICBhZGQobW9kZWw6IE1vZGVsLCBzaG91bGRVcGRhdGVDYWNoZTogYm9vbGVhbiA9IHRydWUpOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKGNsYXNzVG9QbGFpbihtb2RlbCksIHNob3VsZFVwZGF0ZUNhY2hlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBBbGV4IFRULTE3NzcgcmVuYW1lIHRvIHVwbG9hZFxuICAgKi9cbiAgcG9zdEZvcm0oZmlsZTogRmlsZSwgcGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge30pOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG4gICAgZm9yIChsZXQga2V5IGluIHBhcmFtcykge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKGtleSwgcGFyYW1zW2tleV0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZShmb3JtRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHNldmVyYWwgbmV3IGl0ZW1zXG4gICAqIEBwYXJhbSBtb2RlbHMgQXJyYXkgb2YgbmV3IGl0ZW1zIGZvciBzYXZpbmdcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHJlcXVlc3RcbiAgICogQFRPRE8gQWxleCBUVC0xNzc3IHJlbmFtZSB0byBwb3N0QmF0Y2hcbiAgICovXG4gIGFkZEJhdGNoKG1vZGVsczogTW9kZWxbXSwgcXVlcnlQYXJhbXM6IG9iamVjdCA9IHt9KTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgY2xhc3NUb1BsYWluKG1vZGVscyksIHF1ZXJ5UGFyYW1zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgobmV3SXRlbXM6IEJhc2VNb2RlbFtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3SW5zdGFuY2VzOiBNb2RlbFtdID0gbmV3SXRlbXMubWFwKChpdGVtOiBCYXNlTW9kZWwpID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZSh0aGlzLm1vZGVsQ2xhc3MsIGl0ZW0pKTtcbiAgICAgICAgICBpZiAodGhpcy5jYWNoZSkge1xuICAgICAgICAgICAgdGhpcy5jYWNoZS5wdXNoKC4uLm5ld0luc3RhbmNlcyk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZUNyZWF0ZWRCYXRjaCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VDcmVhdGVkQmF0Y2gpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBuZXdJbnN0YW5jZXM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBpdGVtXG4gICAqIEBwYXJhbSBtb2RlbCBFeGlzdGluZyBpbnN0YW5jZSBmb3IgdXBkYXRpbmdcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHJlcXVlc3RcbiAgICogQFRPRE8gQWxleCBUVC0xNzc3IHJlbmFtZSB0byBwdXRcbiAgICovXG4gIHVwZGF0ZShtb2RlbDogTW9kZWwsIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke21vZGVsWydpZCddfWAsIGNsYXNzVG9QbGFpbihtb2RlbCksIHF1ZXJ5UGFyYW1zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZEl0ZW06IEJhc2VNb2RlbCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRJbnN0YW5jZTogTW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UodGhpcy5tb2RlbENsYXNzLCB1cGRhdGVkSXRlbSk7XG4gICAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCB1cGRhdGVkSW5zdGFuY2UpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VVcGRhdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMubWVzc2FnZVVwZGF0ZWQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1cGRhdGVkSW5zdGFuY2U7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBzZXZlcmFsIGl0ZW1zXG4gICAqIEBwYXJhbSBtb2RlbHMgQXJyYXkgb2YgaXRlbXMgZm9yIHVwZGF0aW5nXG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyBxdWVyeSBwYXJhbWV0ZXJzIGZvciByZXF1ZXN0XG4gICAqIFRPRE8gQWxleCBUVC0xNzc3IHJlbmFtZSB0byBwdXRCYXRjaFxuICAgKi9cbiAgdXBkYXRlQmF0Y2gobW9kZWxzOiBNb2RlbFtdLCBxdWVyeVBhcmFtczogb2JqZWN0ID0ge30pOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGNsYXNzVG9QbGFpbihtb2RlbHMpLCBxdWVyeVBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVwZGF0ZWRJdGVtczogQmFzZU1vZGVsW10pID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkSW5zdGFuY2VzOiBNb2RlbFtdID0gdXBkYXRlZEl0ZW1zLm1hcCgoaXRlbTogQmFzZU1vZGVsKSA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UodGhpcy5tb2RlbENsYXNzLCBpdGVtKSk7XG4gICAgICAgICAgdXBkYXRlZEluc3RhbmNlcy5mb3JFYWNoKChpbnN0YW5jZTogTW9kZWwpID0+IHtcbiAgICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgaW5zdGFuY2UpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZVVwZGF0ZWRCYXRjaCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VVcGRhdGVkQmF0Y2gpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZEluc3RhbmNlcztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZGVsZXRlIGluc3RhbmNlIG9mIGNsYXNzXG4gICAqIEBwYXJhbSBtb2RlbCBDbGFzcyBpbnN0YW5jZSBmb3IgZGVsZXRpbmdcbiAgICovXG4gIGRlbGV0ZShtb2RlbDogTW9kZWwpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke21vZGVsWydpZCddfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdGhpcy5jYWNoZS5maWx0ZXIoKGl0ZW06IE1vZGVsKSA9PiBpdGVtWydpZCddICE9PSBtb2RlbFsnaWQnXSk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZURlbGV0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlRGVsZXRlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWxldGUgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIGNsYXNzXG4gICAqIEBwYXJhbSBtb2RlbHMgQ2xhc3MgaW5zdGFuY2VzIGFycmF5IGZvciBkZWxldGluZ1xuICAgKi9cbiAgZGVsZXRlQmF0Y2gobW9kZWxzOiBNb2RlbFtdKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9L2RlbGV0ZWAsIG1vZGVscylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlkczogbnVtYmVyW10gPSBtb2RlbHMubWFwKChtb2RlbDogTW9kZWwpOiBudW1iZXIgPT4gbW9kZWxbJ2lkJ10pO1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSB0aGlzLmNhY2hlLmZpbHRlcigoaXRlbTogTW9kZWwpID0+ICFpZHMuaW5jbHVkZXMoaXRlbVsnaWQnXSkpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VEZWxldGVkQmF0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlRGVsZXRlZEJhdGNoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGNsZWFyIHNlcnZpY2UgY2FjaGVcbiAgICovXG4gIHJlc2V0Q2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5mZXRjaCgpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIGJhc2UgY2xhc3MgaW5zdGFuY2VzIGRpcmVjdGx5IGZyb20gYmFja2VuZFxuICAgKi9cbiAgcHJvdGVjdGVkIGZldGNoKCk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBCYXNlTW9kZWxbXSk6IE1vZGVsW10gPT4ge1xuICAgICAgICAgIGNvbnN0IGl0ZW1zOiBNb2RlbFtdID0gKHRoaXMuaXNIeWRyYSA/IHJlc3BvbnNlWydoeWRyYTptZW1iZXInXSA6IHJlc3BvbnNlKVxuICAgICAgICAgICAgLm1hcCgoaXRlbTogQmFzZU1vZGVsKTogTW9kZWwgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHRoaXMubW9kZWxDbGFzcywgaXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gaXRlbXM7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNhY2hlIHN1YmplY3Qgd2l0aCBjdXJyZW50IGNhY2hlIGFycmF5IHZhbHVlXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlLnNsaWNlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBuZXcgaW5zdGFuY2Ugb2YgY2xhc3NcbiAgICogQHBhcmFtIG1vZGVsIFRoZSBjbGFzcyBmb3Igd2hpY2ggeW91IHdhbnQgdG8gY3JlYXRlIGFuIGluc3RhbmNlXG4gICAqIEBwYXJhbSBiYXNlTW9kZWwgYmFzZSBtb2RlbCBpbnN0YW5jZSB0aGF0IHdlIHdpbGwgdXNlIGFzIGNvbnN0cnVjdG9yIG9wdGlvbnNcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVNb2RlbEluc3RhbmNlKG1vZGVsOiBuZXcoYm06IEJhc2VNb2RlbCkgPT4gTW9kZWwsIGJhc2VNb2RlbDogQmFzZU1vZGVsKTogTW9kZWwge1xuICAgIHJldHVybiBwbGFpblRvQ2xhc3MobW9kZWwsIGJhc2VNb2RlbCwgeyBleGNsdWRlUHJlZml4ZXM6IFsnQCddIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0aGF0IGNhbGwgYWxsIGxpc3RlbmVycy4gRW1wdHkgYnkgZGVmYXVsdC4gU2hvdWxkIGJlIHJlZGVmaW5lZCBieSBjaGlsZCBzZXJ2aWNlcyBpZiByZXF1aXJlZFxuICAgKi9cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge31cbn1cbiJdfQ==
@@ -1,6 +1,9 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { RestService } from '../../rest/rest.service';
3
3
  import { SoleInvoice } from '../../../../models';
4
+ import { SoleInvoiceStatusesEnum } from '../../../../db/Enums/sole-invoice-statuses.enum';
5
+ import { plainToClass } from 'class-transformer';
6
+ import merge from 'lodash/merge';
4
7
  import * as i0 from "@angular/core";
5
8
  export class SoleInvoiceService extends RestService {
6
9
  constructor() {
@@ -9,6 +12,17 @@ export class SoleInvoiceService extends RestService {
9
12
  this.url = 'sole-invoices';
10
13
  this.isHydra = true;
11
14
  }
15
+ updateStatus(invoice, status) {
16
+ // use id only to avoid unexpected changes
17
+ return this.update(plainToClass(SoleInvoice, merge({}, { id: invoice.id }, { status })));
18
+ }
19
+ publish(invoice, document) {
20
+ // use id only to avoid unexpected changes
21
+ return this.update(merge({}, invoice, { document, status: SoleInvoiceStatusesEnum.PENDING }));
22
+ }
23
+ sendEmail(invoice) {
24
+ return this.http.post(`${this.environment.apiV2}/${this.url}/${invoice.id}/send`, {});
25
+ }
12
26
  }
13
27
  SoleInvoiceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SoleInvoiceService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
14
28
  SoleInvoiceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SoleInvoiceService, providedIn: 'root' });
@@ -18,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
18
32
  providedIn: 'root'
19
33
  }]
20
34
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9zb2xlL3NvbGUtaW52b2ljZS9zb2xlLWludm9pY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBS2pELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxXQUF5QztJQUhqRjs7UUFJRSxlQUFVLEdBQXVCLFdBQVcsQ0FBQztRQUM3QyxRQUFHLEdBQVcsZUFBZSxDQUFDO1FBQzlCLFlBQU8sR0FBWSxJQUFJLENBQUM7S0FDekI7O2dIQUpZLGtCQUFrQjtvSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU29sZUludm9pY2UgYXMgU29sZUludm9pY2VCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzL3NvbGUvc29sZS1pbnZvaWNlJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU29sZUludm9pY2VTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8U29sZUludm9pY2VCYXNlLCBTb2xlSW52b2ljZT4ge1xuICBtb2RlbENsYXNzOiB0eXBlb2YgU29sZUludm9pY2UgPSBTb2xlSW52b2ljZTtcbiAgdXJsOiBzdHJpbmcgPSAnc29sZS1pbnZvaWNlcyc7XG4gIGlzSHlkcmE6IGJvb2xlYW4gPSB0cnVlO1xufVxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9zb2xlL3NvbGUtaW52b2ljZS9zb2xlLWludm9pY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsV0FBVyxFQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQzs7QUFLakMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFdBQXlDO0lBSGpGOztRQUlFLGVBQVUsR0FBdUIsV0FBVyxDQUFDO1FBQzdDLFFBQUcsR0FBVyxlQUFlLENBQUM7UUFDOUIsWUFBTyxHQUFZLElBQUksQ0FBQztLQWV6QjtJQWJDLFlBQVksQ0FBQyxPQUFvQixFQUFFLE1BQStCO1FBQ2hFLDBDQUEwQztRQUMxQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBb0IsRUFBRSxRQUFrQjtRQUM5QywwQ0FBMEM7UUFDMUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFvQjtRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEYsQ0FBQzs7Z0hBakJVLGtCQUFrQjtvSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU29sZUludm9pY2UgYXMgU29sZUludm9pY2VCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzL3NvbGUvc29sZS1pbnZvaWNlJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlLCBEb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBTb2xlSW52b2ljZVN0YXR1c2VzRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL0VudW1zL3NvbGUtaW52b2ljZS1zdGF0dXNlcy5lbnVtJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gvbWVyZ2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTb2xlSW52b2ljZVNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxTb2xlSW52b2ljZUJhc2UsIFNvbGVJbnZvaWNlPiB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBTb2xlSW52b2ljZSA9IFNvbGVJbnZvaWNlO1xuICB1cmw6IHN0cmluZyA9ICdzb2xlLWludm9pY2VzJztcbiAgaXNIeWRyYTogYm9vbGVhbiA9IHRydWU7XG5cbiAgdXBkYXRlU3RhdHVzKGludm9pY2U6IFNvbGVJbnZvaWNlLCBzdGF0dXM6IFNvbGVJbnZvaWNlU3RhdHVzZXNFbnVtKTogT2JzZXJ2YWJsZTxTb2xlSW52b2ljZT4ge1xuICAgIC8vIHVzZSBpZCBvbmx5IHRvIGF2b2lkIHVuZXhwZWN0ZWQgY2hhbmdlc1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZShwbGFpblRvQ2xhc3MoU29sZUludm9pY2UsIG1lcmdlKHt9LCB7aWQ6IGludm9pY2UuaWR9LCB7c3RhdHVzfSkpKTtcbiAgfVxuXG4gIHB1Ymxpc2goaW52b2ljZTogU29sZUludm9pY2UsIGRvY3VtZW50OiBEb2N1bWVudCk6IE9ic2VydmFibGU8U29sZUludm9pY2U+IHtcbiAgICAvLyB1c2UgaWQgb25seSB0byBhdm9pZCB1bmV4cGVjdGVkIGNoYW5nZXNcbiAgICByZXR1cm4gdGhpcy51cGRhdGUobWVyZ2Uoe30sIGludm9pY2UsIHsgZG9jdW1lbnQsIHN0YXR1czogU29sZUludm9pY2VTdGF0dXNlc0VudW0uUEVORElORyB9KSk7XG4gIH1cblxuICBzZW5kRW1haWwoaW52b2ljZTogU29sZUludm9pY2UpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHtpbnZvaWNlLmlkfS9zZW5kYCwge30pO1xuICB9XG59XG4iXX0=
@@ -2,27 +2,39 @@ import { Injectable } from '@angular/core';
2
2
  import { from } from 'rxjs';
3
3
  import * as html2pdf from 'html2pdf.js';
4
4
  import { FILE_SETTINGS } from './file-settings';
5
+ import merge from 'lodash/merge';
5
6
  import * as i0 from "@angular/core";
6
7
  /**
8
+ * @TODO mikhail better typehint
9
+ *
7
10
  * Service to generate and export PDF file from provided HTML elements
8
11
  * The file is generated using the html2pdf library in order to get a canvas at the output,
9
12
  * in which all the styles that the user sees on the page will be saved
10
13
  */
11
14
  export class PdfFromDomElementService {
12
- export(elements, fileSettings) {
15
+ init(elements, fileSettings) {
13
16
  const options = FILE_SETTINGS;
14
- options.filename = `${fileSettings.filename}.pdf`;
17
+ if (fileSettings) {
18
+ merge(options, fileSettings);
19
+ }
15
20
  // HTML container in which the exported DOM elements will be placed
16
21
  const htmlWrapper = document.createElement('div');
17
22
  elements.forEach((element) => {
18
23
  htmlWrapper.append(element.cloneNode(true));
19
24
  });
20
25
  // Set PDF options, save file and return result as Observable
21
- return from(html2pdf().from(htmlWrapper)
22
- .set(options)
26
+ return html2pdf().from(htmlWrapper).set(options);
27
+ }
28
+ download(elements, fileSettings) {
29
+ return from(this.init(elements, fileSettings)
23
30
  .save()
24
31
  .then());
25
32
  }
33
+ export(elements, filename = FILE_SETTINGS.filename) {
34
+ return from(this.init(elements)
35
+ .outputPdf('blob')
36
+ .then((blob) => new File([blob], filename, { type: 'application/pdf' })));
37
+ }
26
38
  }
27
39
  PdfFromDomElementService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfFromDomElementService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
28
40
  PdfFromDomElementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PdfFromDomElementService, providedIn: 'root' });
@@ -32,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
32
44
  providedIn: 'root'
33
45
  }]
34
46
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWZyb20tZG9tLWVsZW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9wZGYvcGRmLWZyb20tZG9tLWVsZW1lbnQvcGRmLWZyb20tZG9tLWVsZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxJQUFJLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxhQUFhLENBQUE7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUVoRDs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxNQUFNLENBQUMsUUFBaUMsRUFBRSxZQUF5QjtRQUNqRSxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUM7UUFDOUIsT0FBTyxDQUFDLFFBQVEsR0FBRyxHQUFHLFlBQVksQ0FBQyxRQUFRLE1BQU0sQ0FBQTtRQUVqRCxtRUFBbUU7UUFDbkUsTUFBTSxXQUFXLEdBQWdCLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0QsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQW9CLEVBQUUsRUFBRTtZQUN4QyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztRQUVILDZEQUE2RDtRQUM3RCxPQUFPLElBQUksQ0FDVCxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2FBQ3pCLEdBQUcsQ0FBQyxPQUFPLENBQUM7YUFDWixJQUFJLEVBQUU7YUFDTixJQUFJLEVBQUUsQ0FDVixDQUFDO0lBQ0osQ0FBQzs7c0hBbkJVLHdCQUF3QjswSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07NEZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBkZlNldHRpbmdzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3BkZi9wZGYtc2V0dGluZ3MnO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgaHRtbDJwZGYgZnJvbSAnaHRtbDJwZGYuanMnXG5pbXBvcnQgeyBGSUxFX1NFVFRJTkdTIH0gZnJvbSAnLi9maWxlLXNldHRpbmdzJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIGdlbmVyYXRlIGFuZCBleHBvcnQgUERGIGZpbGUgZnJvbSBwcm92aWRlZCBIVE1MIGVsZW1lbnRzXG4gKiBUaGUgZmlsZSBpcyBnZW5lcmF0ZWQgdXNpbmcgdGhlIGh0bWwycGRmIGxpYnJhcnkgaW4gb3JkZXIgdG8gZ2V0IGEgY2FudmFzIGF0IHRoZSBvdXRwdXQsXG4gKiBpbiB3aGljaCBhbGwgdGhlIHN0eWxlcyB0aGF0IHRoZSB1c2VyIHNlZXMgb24gdGhlIHBhZ2Ugd2lsbCBiZSBzYXZlZFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQZGZGcm9tRG9tRWxlbWVudFNlcnZpY2Uge1xuICBleHBvcnQoZWxlbWVudHM6IE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+LCBmaWxlU2V0dGluZ3M6IFBkZlNldHRpbmdzKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IEZJTEVfU0VUVElOR1M7XG4gICAgb3B0aW9ucy5maWxlbmFtZSA9IGAke2ZpbGVTZXR0aW5ncy5maWxlbmFtZX0ucGRmYFxuXG4gICAgLy8gSFRNTCBjb250YWluZXIgaW4gd2hpY2ggdGhlIGV4cG9ydGVkIERPTSBlbGVtZW50cyB3aWxsIGJlIHBsYWNlZFxuICAgIGNvbnN0IGh0bWxXcmFwcGVyOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIGh0bWxXcmFwcGVyLmFwcGVuZChlbGVtZW50LmNsb25lTm9kZSh0cnVlKSk7XG4gICAgfSk7XG5cbiAgICAvLyBTZXQgUERGIG9wdGlvbnMsIHNhdmUgZmlsZSBhbmQgcmV0dXJuIHJlc3VsdCBhcyBPYnNlcnZhYmxlXG4gICAgcmV0dXJuIGZyb20oXG4gICAgICBodG1sMnBkZigpLmZyb20oaHRtbFdyYXBwZXIpXG4gICAgICAgIC5zZXQob3B0aW9ucylcbiAgICAgICAgLnNhdmUoKVxuICAgICAgICAudGhlbigpXG4gICAgKTtcbiAgfVxufVxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWZyb20tZG9tLWVsZW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9wZGYvcGRmLWZyb20tZG9tLWVsZW1lbnQvcGRmLWZyb20tZG9tLWVsZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxJQUFJLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxhQUFhLENBQUE7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQzs7QUFFakM7Ozs7OztHQU1HO0FBSUgsTUFBTSxPQUFPLHdCQUF3QjtJQUMzQixJQUFJLENBQUMsUUFBaUMsRUFBRSxZQUEwQjtRQUN4RSxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUM7UUFDOUIsSUFBSSxZQUFZLEVBQUU7WUFDaEIsS0FBSyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztTQUM5QjtRQUVELG1FQUFtRTtRQUNuRSxNQUFNLFdBQVcsR0FBZ0IsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvRCxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBb0IsRUFBRSxFQUFFO1lBQ3hDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO1FBRUgsNkRBQTZEO1FBQzdELE9BQU8sUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQWlDLEVBQUUsWUFBMEI7UUFDcEUsT0FBTyxJQUFJLENBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO2FBQzlCLElBQUksRUFBRTthQUNOLElBQUksRUFBRSxDQUNWLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQWlDLEVBQUUsV0FBbUIsYUFBYSxDQUFDLFFBQVE7UUFDakYsT0FBTyxJQUFJLENBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDaEIsU0FBUyxDQUFDLE1BQU0sQ0FBQzthQUNqQixJQUFJLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUNqRixDQUFDO0lBQ0osQ0FBQzs7c0hBaENVLHdCQUF3QjswSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07NEZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBkZlNldHRpbmdzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3BkZi9wZGYtc2V0dGluZ3MnO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgaHRtbDJwZGYgZnJvbSAnaHRtbDJwZGYuanMnXG5pbXBvcnQgeyBGSUxFX1NFVFRJTkdTIH0gZnJvbSAnLi9maWxlLXNldHRpbmdzJztcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gvbWVyZ2UnO1xuXG4vKipcbiAqIEBUT0RPIG1pa2hhaWwgYmV0dGVyIHR5cGVoaW50XG4gKlxuICogU2VydmljZSB0byBnZW5lcmF0ZSBhbmQgZXhwb3J0IFBERiBmaWxlIGZyb20gcHJvdmlkZWQgSFRNTCBlbGVtZW50c1xuICogVGhlIGZpbGUgaXMgZ2VuZXJhdGVkIHVzaW5nIHRoZSBodG1sMnBkZiBsaWJyYXJ5IGluIG9yZGVyIHRvIGdldCBhIGNhbnZhcyBhdCB0aGUgb3V0cHV0LFxuICogaW4gd2hpY2ggYWxsIHRoZSBzdHlsZXMgdGhhdCB0aGUgdXNlciBzZWVzIG9uIHRoZSBwYWdlIHdpbGwgYmUgc2F2ZWRcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGRmRnJvbURvbUVsZW1lbnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBpbml0KGVsZW1lbnRzOiBOb2RlTGlzdE9mPEhUTUxFbGVtZW50PiwgZmlsZVNldHRpbmdzPzogUGRmU2V0dGluZ3MpOiBhbnkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBGSUxFX1NFVFRJTkdTO1xuICAgIGlmIChmaWxlU2V0dGluZ3MpIHtcbiAgICAgIG1lcmdlKG9wdGlvbnMsIGZpbGVTZXR0aW5ncyk7XG4gICAgfVxuXG4gICAgLy8gSFRNTCBjb250YWluZXIgaW4gd2hpY2ggdGhlIGV4cG9ydGVkIERPTSBlbGVtZW50cyB3aWxsIGJlIHBsYWNlZFxuICAgIGNvbnN0IGh0bWxXcmFwcGVyOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIGh0bWxXcmFwcGVyLmFwcGVuZChlbGVtZW50LmNsb25lTm9kZSh0cnVlKSk7XG4gICAgfSk7XG5cbiAgICAvLyBTZXQgUERGIG9wdGlvbnMsIHNhdmUgZmlsZSBhbmQgcmV0dXJuIHJlc3VsdCBhcyBPYnNlcnZhYmxlXG4gICAgcmV0dXJuIGh0bWwycGRmKCkuZnJvbShodG1sV3JhcHBlcikuc2V0KG9wdGlvbnMpO1xuICB9XG5cbiAgZG93bmxvYWQoZWxlbWVudHM6IE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+LCBmaWxlU2V0dGluZ3M/OiBQZGZTZXR0aW5ncyk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHJldHVybiBmcm9tKFxuICAgICAgdGhpcy5pbml0KGVsZW1lbnRzLCBmaWxlU2V0dGluZ3MpXG4gICAgICAgIC5zYXZlKClcbiAgICAgICAgLnRoZW4oKVxuICAgICk7XG4gIH1cblxuICBleHBvcnQoZWxlbWVudHM6IE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+LCBmaWxlbmFtZTogc3RyaW5nID0gRklMRV9TRVRUSU5HUy5maWxlbmFtZSk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHJldHVybiBmcm9tKFxuICAgICAgdGhpcy5pbml0KGVsZW1lbnRzKVxuICAgICAgICAub3V0cHV0UGRmKCdibG9iJylcbiAgICAgICAgLnRoZW4oKGJsb2I6IEJsb2IpID0+IG5ldyBGaWxlKFtibG9iXSwgZmlsZW5hbWUsIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3BkZicgfSkpXG4gICAgKTtcbiAgfVxufVxuIl19