@colijnit/transaction 12.0.3 → 12.1.1

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 (87) hide show
  1. package/app/component/core/base/default-ok-cancel-buttons.component.d.ts +13 -0
  2. package/app/component/core/base/transaction-base.component.d.ts +38 -0
  3. package/app/component/core/directive/template-wrapper.directive.d.ts +13 -0
  4. package/app/component/{shopping-cart → core}/stock-status-indicator/stock-status-indicator.component.d.ts +0 -0
  5. package/app/component/service-order/ione-service-order-module.d.ts +2 -0
  6. package/app/component/service-order/ione-service-order.component.d.ts +25 -0
  7. package/app/component/service-order/service-order.component.d.ts +48 -0
  8. package/app/component/service-order/summary/transaction-article-summary.component.d.ts +17 -0
  9. package/app/component/service-order/summary/transaction-delivery-summary.component.d.ts +20 -0
  10. package/app/component/service-order/summary/transaction-order-summary.component.d.ts +16 -0
  11. package/app/component/service-order/summary/transaction-payment-info.component.d.ts +14 -0
  12. package/app/component/service-order/summary/transaction-product-contract-summary.component.d.ts +7 -0
  13. package/app/component/service-order/summary/transaction-product-summary.component.d.ts +15 -0
  14. package/app/component/service-order/summary/transaction-service-status.component.d.ts +15 -0
  15. package/app/component/service-order/summary/transaction-service-summary.component.d.ts +15 -0
  16. package/app/component/service-order/summary/transaction-summary-block.component.d.ts +16 -0
  17. package/app/component/service-order/transaction-article-text/transaction-article-text.component.d.ts +24 -0
  18. package/app/component/service-order/transaction-header-block/transaction-header-block.component.d.ts +15 -0
  19. package/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.d.ts +16 -0
  20. package/app/component/service-order/transaction-order-lines/transaction-order-lines.component.d.ts +25 -0
  21. package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.d.ts +7 -0
  22. package/app/component/service-order/transaction-relation/transaction-relation-address.component.d.ts +22 -0
  23. package/app/component/service-order/transaction-relation/transaction-relation-edit.component.d.ts +29 -0
  24. package/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.d.ts +11 -0
  25. package/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.d.ts +26 -0
  26. package/app/component/shopping-cart/ione-shopping-cart.component.d.ts +20 -0
  27. package/app/component/shopping-cart/shopping-cart/shopping-cart.component.d.ts +2 -5
  28. package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +7 -0
  29. package/app/service/ione-connector-adapter.service.d.ts +5 -1
  30. package/app/service/transaction-event.service.d.ts +20 -0
  31. package/app/service/transaction.service.d.ts +9 -2
  32. package/bundles/colijnit-transaction.umd.js +1911 -89
  33. package/bundles/colijnit-transaction.umd.js.map +1 -1
  34. package/colijnit-transaction.d.ts +23 -1
  35. package/colijnit-transaction.metadata.json +1 -1
  36. package/css/styles.css +38 -0
  37. package/esm2015/app/component/checkout/checkout/checkout.component.js +1 -1
  38. package/esm2015/app/component/checkout/checkout-overview/checkout-overview.component.js +1 -1
  39. package/esm2015/app/component/checkout/checkout-overview-block/checkout-overview-block.component.js +1 -1
  40. package/esm2015/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +1 -1
  41. package/esm2015/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +4 -4
  42. package/esm2015/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.js +1 -1
  43. package/esm2015/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +1 -1
  44. package/esm2015/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +1 -1
  45. package/esm2015/app/component/checkout/ione-checkout.module.js +1 -3
  46. package/esm2015/app/component/common/icon/icon.component.js +3 -2
  47. package/esm2015/app/component/common/image-display/image-display.component.js +1 -1
  48. package/esm2015/app/component/core/base/default-ok-cancel-buttons.component.js +39 -0
  49. package/esm2015/app/component/core/base/transaction-base.component.js +121 -0
  50. package/esm2015/app/component/core/directive/template-wrapper.directive.js +69 -0
  51. package/esm2015/app/component/{shopping-cart → core}/stock-status-indicator/stock-status-indicator.component.js +2 -2
  52. package/esm2015/app/component/service-order/ione-service-order-module.js +103 -0
  53. package/esm2015/app/component/service-order/ione-service-order.component.js +98 -0
  54. package/esm2015/app/component/service-order/service-order.component.js +167 -0
  55. package/esm2015/app/component/service-order/summary/transaction-article-summary.component.js +55 -0
  56. package/esm2015/app/component/service-order/summary/transaction-delivery-summary.component.js +59 -0
  57. package/esm2015/app/component/service-order/summary/transaction-order-summary.component.js +43 -0
  58. package/esm2015/app/component/service-order/summary/transaction-payment-info.component.js +35 -0
  59. package/esm2015/app/component/service-order/summary/transaction-product-contract-summary.component.js +38 -0
  60. package/esm2015/app/component/service-order/summary/transaction-product-summary.component.js +41 -0
  61. package/esm2015/app/component/service-order/summary/transaction-service-status.component.js +37 -0
  62. package/esm2015/app/component/service-order/summary/transaction-service-summary.component.js +38 -0
  63. package/esm2015/app/component/service-order/summary/transaction-summary-block.component.js +53 -0
  64. package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +183 -0
  65. package/esm2015/app/component/service-order/transaction-header-block/transaction-header-block.component.js +83 -0
  66. package/esm2015/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.js +76 -0
  67. package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +71 -0
  68. package/esm2015/app/component/service-order/transaction-order-totals/transaction-order-totals.component.js +37 -0
  69. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-address.component.js +116 -0
  70. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-edit.component.js +225 -0
  71. package/esm2015/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.js +172 -0
  72. package/esm2015/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.js +120 -0
  73. package/esm2015/app/component/shopping-cart/ione-shopping-cart.component.js +52 -7
  74. package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +4 -6
  75. package/esm2015/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +16 -19
  76. package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +1 -1
  77. package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +64 -4
  78. package/esm2015/app/service/ione-connector-adapter.service.js +60 -8
  79. package/esm2015/app/service/transaction-event.service.js +7 -1
  80. package/esm2015/app/service/transaction.service.js +87 -19
  81. package/esm2015/assets/dictionary/text.properties.js +33 -1
  82. package/esm2015/colijnit-transaction.js +24 -2
  83. package/esm2015/public_api.js +3 -1
  84. package/fesm2015/colijnit-transaction.js +2284 -76
  85. package/fesm2015/colijnit-transaction.js.map +1 -1
  86. package/package.json +17 -17
  87. package/public_api.d.ts +2 -0
@@ -0,0 +1,116 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Component, Input } from "@angular/core";
3
+ import { isNill } from "@colijnit/transactionapi/build/utils/function/is-nill.function";
4
+ import { StringUtils } from "../../../utils/string-utils";
5
+ import { Address } from "@colijnit/transactionapi/build/model/address.bo";
6
+ import { IOneConnectorAdapterService } from "../../../service/ione-connector-adapter.service";
7
+ import { DictionaryService } from "../../../service/dictionary.service";
8
+ export class TransactionRelationAddressComponent {
9
+ constructor(_dictionary, _connector) {
10
+ this._dictionary = _dictionary;
11
+ this._connector = _connector;
12
+ this.countries = [];
13
+ this.fields = { text: "description", value: "code" };
14
+ this.postalCodeCheckErrorMessage = "";
15
+ this._prevPostalCodeForCheck = "";
16
+ }
17
+ set address(address) {
18
+ this._address = address;
19
+ }
20
+ get address() {
21
+ if (this._address === undefined) {
22
+ this._address = new Address();
23
+ }
24
+ return this._address;
25
+ }
26
+ ngOnInit() {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ this.countries = yield this._connector.getCountries();
29
+ });
30
+ }
31
+ checkForPostalCodeCheckError() {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ if (!this.address.postalCode || isNill(this.address.houseNo)) {
34
+ this.postalCodeCheckErrorMessage = "";
35
+ return;
36
+ }
37
+ if (this._prevPostalCodeForCheck !== this.address.postalCode || this._prevHouseNoForCheck !== this.address.houseNo) {
38
+ this._prevPostalCodeForCheck = this.address.postalCode;
39
+ this._prevHouseNoForCheck = this.address.houseNo;
40
+ const postalCodeResponse = yield this._connector.getPostalCodeRetrieval((this.address.postalCode ? this.address.postalCode : ""), StringUtils.ParseString(this.address.houseNo));
41
+ if (postalCodeResponse && postalCodeResponse.isBadAddress) {
42
+ this.postalCodeCheckErrorMessage = this._dictionary.get("UNKNOWN_ADDRESS_CHECK_IT");
43
+ }
44
+ else {
45
+ this.postalCodeCheckErrorMessage = "";
46
+ this.address.streetName = postalCodeResponse.street;
47
+ this.address.city = postalCodeResponse.city;
48
+ }
49
+ }
50
+ });
51
+ }
52
+ changeHouseNo() {
53
+ this.address.houseNo = Number(this.address.houseNo);
54
+ }
55
+ }
56
+ TransactionRelationAddressComponent.decorators = [
57
+ { type: Component, args: [{
58
+ // eslint-disable-next-line @angular-eslint/component-selector
59
+ selector: "transaction-relation-address",
60
+ template: `
61
+ <label [textContent]="label | localize"
62
+ class="transaction-relation-label-h3"
63
+ ></label>
64
+ <div class="default-flex-row">
65
+ <div class="default-flex-column">
66
+ <co-input-text [(model)]="address.postalCode"
67
+ [placeholder]="'POSTAL_CODE' | localize"
68
+ (blur)="checkForPostalCodeCheckError()"
69
+ required
70
+ ></co-input-text>
71
+ </div>
72
+ <div class="default-flex-column">
73
+ <co-input-text [(model)]="address.houseNo"
74
+ [placeholder]="'HOUSE_NO' | localize"
75
+ (blur)="checkForPostalCodeCheckError()"
76
+ (modelChange) = "changeHouseNo()"
77
+ required
78
+ ></co-input-text>
79
+ </div>
80
+ <div class="default-flex-column">
81
+ <co-input-text [(model)]="address.houseNoAddition"
82
+ [placeholder]="'HOUSE_NO_ADDITION' | localize"
83
+ ></co-input-text>
84
+ </div>
85
+ </div>
86
+ <div>
87
+ <div class="default-flex-row">
88
+ <div class="default-flex-column">
89
+ <co-input-text [(model)]="address.streetName" [placeholder]="'STREET' | localize" required></co-input-text>
90
+ </div>
91
+ <div class="default-flex-column">
92
+ <co-input-text [(model)]="address.city" [placeholder]="'CITY' | localize" required></co-input-text>
93
+ </div>
94
+ <div class="default-flex-column">
95
+ <co-input-combo-box [(model)]="address.countryId"
96
+ [source]="countries"
97
+ [fields]="fields"
98
+ [placeholder]="'COUNTRY'| localize"
99
+ [required]="true"
100
+ ></co-input-combo-box>
101
+ </div>
102
+ </div>
103
+ </div>
104
+ `,
105
+ styles: [".button-wrapper{margin-top:10px;justify-content:center}co-input-radio-button{margin-left:16px}.transaction-relation-label-h2{display:block;margin-top:1em;margin-bottom:1em;font-size:18px;font-weight:bold}.transaction-relation-label-h3{display:block;margin-top:1em;margin-bottom:1em;font-size:14px;font-weight:bold}\n"]
106
+ },] }
107
+ ];
108
+ TransactionRelationAddressComponent.ctorParameters = () => [
109
+ { type: DictionaryService },
110
+ { type: IOneConnectorAdapterService }
111
+ ];
112
+ TransactionRelationAddressComponent.propDecorators = {
113
+ label: [{ type: Input }],
114
+ address: [{ type: Input }]
115
+ };
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcmVsYXRpb24tYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudC9zZXJ2aWNlLW9yZGVyL3RyYW5zYWN0aW9uLXJlbGF0aW9uL3RyYW5zYWN0aW9uLXJlbGF0aW9uLWFkZHJlc3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFFdEYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUV4RSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQXNEdEUsTUFBTSxPQUFPLG1DQUFtQztJQXFCNUMsWUFDWSxXQUE4QixFQUM5QixVQUF1QztRQUR2QyxnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFDOUIsZUFBVSxHQUFWLFVBQVUsQ0FBNkI7UUFMNUMsY0FBUyxHQUFjLEVBQUUsQ0FBQztRQUMxQixXQUFNLEdBQVcsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztRQU94RCxnQ0FBMkIsR0FBVyxFQUFFLENBQUM7UUFFeEMsNEJBQXVCLEdBQVcsRUFBRSxDQUFDO0lBSjFDLENBQUM7SUFuQkosSUFDVyxPQUFPLENBQUMsT0FBZ0I7UUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1NBQ2pDO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFnQkssUUFBUTs7WUFDVixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxRCxDQUFDO0tBQUE7SUFFWSw0QkFBNEI7O1lBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDMUQsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEVBQUUsQ0FBQztnQkFDdEMsT0FBTzthQUNWO1lBRUQsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLG9CQUFvQixLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUNoSCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDakQsTUFBTSxrQkFBa0IsR0FBdUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDaEssV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ25ELElBQUksa0JBQWtCLElBQUksa0JBQWtCLENBQUMsWUFBWSxFQUFFO29CQUN2RCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQztpQkFDdkY7cUJBQU07b0JBQ0gsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEVBQUUsQ0FBQztvQkFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDO29CQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7aUJBQy9DO2FBQ0o7UUFDTCxDQUFDO0tBQUE7SUFFTSxhQUFhO1FBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELENBQUM7OztZQS9HSixTQUFTLFNBQUM7Z0JBQ1QsOERBQThEO2dCQUM1RCxRQUFRLEVBQUUsOEJBQThCO2dCQUN4QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBNENUOzthQUlKOzs7WUFyRE8saUJBQWlCO1lBRGpCLDJCQUEyQjs7O29CQXlEOUIsS0FBSztzQkFHTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uSW5pdH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtpc05pbGx9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvdXRpbHMvZnVuY3Rpb24vaXMtbmlsbC5mdW5jdGlvblwiO1xyXG5pbXBvcnQge0dldFBvc3RhbENvZGVSZXRyaWV2YWxPdXRwdXRQYXJhbXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZ2V0LXBvc3RhbC1jb2RlLXJldHJpZXZhbC1vdXRwdXQtcGFyYW1zXCI7XHJcbmltcG9ydCB7U3RyaW5nVXRpbHN9IGZyb20gXCIuLi8uLi8uLi91dGlscy9zdHJpbmctdXRpbHNcIjtcclxuaW1wb3J0IHtBZGRyZXNzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2FkZHJlc3MuYm9cIjtcclxuaW1wb3J0IHtDb3VudHJ5fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NvdW50cnkuYm9cIjtcclxuaW1wb3J0IHtJT25lQ29ubmVjdG9yQWRhcHRlclNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL2lvbmUtY29ubmVjdG9yLWFkYXB0ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgICBzZWxlY3RvcjogXCJ0cmFuc2FjdGlvbi1yZWxhdGlvbi1hZGRyZXNzXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxsYWJlbCBbdGV4dENvbnRlbnRdPVwibGFiZWwgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tcmVsYXRpb24tbGFiZWwtaDNcIlxyXG4gICAgICAgID48L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwiYWRkcmVzcy5wb3N0YWxDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1BPU1RBTF9DT0RFJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJjaGVja0ZvclBvc3RhbENvZGVDaGVja0Vycm9yKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwiYWRkcmVzcy5ob3VzZU5vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0hPVVNFX05PJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJjaGVja0ZvclBvc3RhbENvZGVDaGVja0Vycm9yKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSkgPSBcImNoYW5nZUhvdXNlTm8oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcclxuICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJhZGRyZXNzLmhvdXNlTm9BZGRpdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidIT1VTRV9OT19BRERJVElPTicgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1yb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwiYWRkcmVzcy5zdHJlZXROYW1lXCIgW3BsYWNlaG9sZGVyXT1cIidTVFJFRVQnIHwgbG9jYWxpemVcIiByZXF1aXJlZD48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cImFkZHJlc3MuY2l0eVwiIFtwbGFjZWhvbGRlcl09XCInQ0lUWScgfCBsb2NhbGl6ZVwiIHJlcXVpcmVkPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LWNvbWJvLWJveCBbKG1vZGVsKV09XCJhZGRyZXNzLmNvdW50cnlJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3VyY2VdPVwiY291bnRyaWVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkc109XCJmaWVsZHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0NPVU5UUlknfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgID48L2NvLWlucHV0LWNvbWJvLWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgc3R5bGVVcmxzOiBbXHJcbiAgICAgICAgXCIuL3RyYW5zYWN0aW9uLXJlbGF0aW9uLWVkaXQuY29tcG9uZW50LnNjc3NcIlxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25SZWxhdGlvbkFkZHJlc3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbGFiZWw6IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBhZGRyZXNzKGFkZHJlc3M6IEFkZHJlc3MpIHtcclxuICAgICAgICB0aGlzLl9hZGRyZXNzID0gYWRkcmVzcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGFkZHJlc3MoKTogQWRkcmVzcyB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2FkZHJlc3MgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hZGRyZXNzID0gbmV3IEFkZHJlc3MoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRyZXNzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjb3VudHJpZXM6IENvdW50cnlbXSA9IFtdO1xyXG4gICAgcHVibGljIGZpZWxkczogT2JqZWN0ID0geyB0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIiB9O1xyXG5cclxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9kaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9jb25uZWN0b3I6IElPbmVDb25uZWN0b3JBZGFwdGVyU2VydmljZVxyXG4gICAgKSB7fVxyXG5cclxuICAgIHB1YmxpYyBwb3N0YWxDb2RlQ2hlY2tFcnJvck1lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgcHJpdmF0ZSBfcHJldlBvc3RhbENvZGVGb3JDaGVjazogc3RyaW5nID0gXCJcIjtcclxuICAgIHByaXZhdGUgX3ByZXZIb3VzZU5vRm9yQ2hlY2s6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX2FkZHJlc3M6IEFkZHJlc3M7XHJcblxyXG4gICAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgdGhpcy5jb3VudHJpZXMgPSBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0Q291bnRyaWVzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGNoZWNrRm9yUG9zdGFsQ29kZUNoZWNrRXJyb3IoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmFkZHJlc3MucG9zdGFsQ29kZSB8fCBpc05pbGwodGhpcy5hZGRyZXNzLmhvdXNlTm8pKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9zdGFsQ29kZUNoZWNrRXJyb3JNZXNzYWdlID0gXCJcIjtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX3ByZXZQb3N0YWxDb2RlRm9yQ2hlY2sgIT09IHRoaXMuYWRkcmVzcy5wb3N0YWxDb2RlIHx8IHRoaXMuX3ByZXZIb3VzZU5vRm9yQ2hlY2sgIT09IHRoaXMuYWRkcmVzcy5ob3VzZU5vKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ByZXZQb3N0YWxDb2RlRm9yQ2hlY2sgPSB0aGlzLmFkZHJlc3MucG9zdGFsQ29kZTtcclxuICAgICAgICAgICAgdGhpcy5fcHJldkhvdXNlTm9Gb3JDaGVjayA9IHRoaXMuYWRkcmVzcy5ob3VzZU5vO1xyXG4gICAgICAgICAgICBjb25zdCBwb3N0YWxDb2RlUmVzcG9uc2U6IEdldFBvc3RhbENvZGVSZXRyaWV2YWxPdXRwdXRQYXJhbXMgPSBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0UG9zdGFsQ29kZVJldHJpZXZhbCgodGhpcy5hZGRyZXNzLnBvc3RhbENvZGUgPyB0aGlzLmFkZHJlc3MucG9zdGFsQ29kZSA6IFwiXCIpLFxyXG4gICAgICAgICAgICAgICAgU3RyaW5nVXRpbHMuUGFyc2VTdHJpbmcodGhpcy5hZGRyZXNzLmhvdXNlTm8pKTtcclxuICAgICAgICAgICAgaWYgKHBvc3RhbENvZGVSZXNwb25zZSAmJiBwb3N0YWxDb2RlUmVzcG9uc2UuaXNCYWRBZGRyZXNzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc3RhbENvZGVDaGVja0Vycm9yTWVzc2FnZSA9IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiVU5LTk9XTl9BRERSRVNTX0NIRUNLX0lUXCIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3N0YWxDb2RlQ2hlY2tFcnJvck1lc3NhZ2UgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRyZXNzLnN0cmVldE5hbWUgPSBwb3N0YWxDb2RlUmVzcG9uc2Uuc3RyZWV0O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRyZXNzLmNpdHkgPSBwb3N0YWxDb2RlUmVzcG9uc2UuY2l0eTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2hhbmdlSG91c2VObygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFkZHJlc3MuaG91c2VObyA9IE51bWJlcih0aGlzLmFkZHJlc3MuaG91c2VObyk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,225 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from "@angular/core";
2
+ import { GenderType } from "@colijnit/transactionapi/build/enum/gender-type.enum";
3
+ import { Address } from "@colijnit/transactionapi/build/model/address.bo";
4
+ import { ContactOption } from "@colijnit/transactionapi/build/model/contact-option.bo";
5
+ import { RelationNameKind } from "@colijnit/transactionapi/build/enum/relation-name-kind.enum";
6
+ import { FormComponent } from "@colijnit/corecomponents_v12";
7
+ import { AddressType } from "@colijnit/transactionapi/build/enum/address-type.enum";
8
+ import { TransactionService } from "../../../service/transaction.service";
9
+ import { TransactionBaseComponent } from "../../core/base/transaction-base.component";
10
+ export class TransactionRelationEditComponent extends TransactionBaseComponent {
11
+ constructor(service) {
12
+ super(service);
13
+ this.service = service;
14
+ this.showPopup = false;
15
+ this.relType = RelationNameKind;
16
+ this.genderType = GenderType;
17
+ this.validSubmit = new EventEmitter();
18
+ this.invalidSubmit = new EventEmitter();
19
+ this.dateOfBirth = new Date();
20
+ this.phoneNumber = new ContactOption();
21
+ }
22
+ get readonly() {
23
+ return false;
24
+ }
25
+ get subHeader() {
26
+ return "";
27
+ }
28
+ get editFirstAddress() {
29
+ if (this.firstAddress) {
30
+ return this.firstAddress;
31
+ }
32
+ else if (this.customer) {
33
+ const address = new Address();
34
+ address.addressType = AddressType.DeliveryAddress;
35
+ address.startDate = new Date();
36
+ address.sequence = this.customer.getNextAddressSequence();
37
+ this.customer.addresses.push(address);
38
+ return address;
39
+ }
40
+ }
41
+ get firstAddress() {
42
+ if (!this.relation || !this.customer.addresses.length) {
43
+ return;
44
+ }
45
+ return this.customer.getFirstAvailableAddress([
46
+ AddressType.DeliveryAddress,
47
+ AddressType.BillingAddress,
48
+ AddressType.VisitingAddress,
49
+ AddressType.MailingAddress,
50
+ AddressType.NursingAddress
51
+ ]);
52
+ }
53
+ onPopupClose() {
54
+ this.showPopup = false;
55
+ }
56
+ changeRelationType(relationType) {
57
+ if (this.customer) {
58
+ this.customer.type = relationType;
59
+ }
60
+ }
61
+ changeGenderType(genderType) {
62
+ if (this.customer) {
63
+ this.customer.gender = genderType;
64
+ }
65
+ }
66
+ firstNameChange(firstName) {
67
+ if (this.customer) {
68
+ this.customer.firstName = firstName;
69
+ }
70
+ }
71
+ familyNameChange(familyName) {
72
+ if (this.customer) {
73
+ this.customer.familyName = familyName;
74
+ }
75
+ }
76
+ }
77
+ TransactionRelationEditComponent.decorators = [
78
+ { type: Component, args: [{
79
+ // eslint-disable-next-line @angular-eslint/component-selector
80
+ selector: "transaction-relation-edit",
81
+ template: `
82
+ <co-dialog [visible]="showPopup" header="ACCOUNT_DETAILS" (close)="onPopupClose()"
83
+ noClickOutside contentSize>
84
+ <ng-container content>
85
+ <co-form #transactionRelationEditForm (validSubmit)="validSubmit.emit()" (invalidSubmit)="invalidSubmit.emit()">
86
+ <div style="min-width: 500px;">
87
+ <div>
88
+ <label [textContent]="'PERSONAL_DATA' | localize"
89
+ class="transaction-relation-label-h3"
90
+ ></label>
91
+ </div>
92
+ <div>
93
+ <div>
94
+ <label [textContent]="'ORDER_TYPE' | localize "
95
+ class="transaction-relation-label-h3"
96
+ ></label>
97
+ </div>
98
+ <div *ngIf="customer?.type">
99
+ <co-input-radio-button [name]="'type'"
100
+ [label]="'PRIVATE_PERSON' | localize"
101
+ [value]="relType.Private"
102
+ [checked]="customer.type === relType.Private"
103
+ (modelChange)="changeRelationType(relType.Private)"
104
+ ></co-input-radio-button>
105
+ <co-input-radio-button [name]="'type'"
106
+ [label]="'COMPANY' | localize"
107
+ [value]="relType.Company"
108
+ [checked]="customer.type === relType.Company"
109
+ (modelChange)="changeRelationType(relType.Company)"
110
+ ></co-input-radio-button>
111
+ </div>
112
+ </div>
113
+ <div *ngIf="customer?.type === relType.Private">
114
+ <label [textContent]="'SALUTATION' | localize"
115
+ class="transaction-relation-label-h3"
116
+ ></label>
117
+ <div *ngIf="customer?.gender">
118
+ <co-input-radio-button [name]="'gender'"
119
+ [label]="'MALE' | localize"
120
+ [value]="genderType.Male"
121
+ [checked]="customer.gender === genderType.Male"
122
+ (modelChange)="changeGenderType(genderType.Male)"
123
+ ></co-input-radio-button>
124
+ <co-input-radio-button [name]="'gender'"
125
+ [label]="'FEMALE' | localize "
126
+ [value]="genderType.Female"
127
+ [checked]="customer.gender === genderType.Female"
128
+ (modelChange)="changeGenderType(genderType.Female)"
129
+ ></co-input-radio-button>
130
+ <co-input-radio-button [name]="'gender'"
131
+ [label]="'UNKNOWN' | localize"
132
+ [value]="genderType.Unspecified"
133
+ [checked]="customer.gender === genderType.Unspecified"
134
+ (modelChange)="changeGenderType(genderType.Unspecified)"
135
+ ></co-input-radio-button>
136
+ </div>
137
+ </div>
138
+ <div *ngIf="customer?.type === relType.Private">
139
+ <div>
140
+ <label [textContent]="'NAME' | localize "
141
+ class="transaction-relation-label-h3"
142
+ ></label>
143
+ <div class="default-flex-row">
144
+ <div class="default-flex-column">
145
+ <co-input-text
146
+ [(model)]="customer.firstName"
147
+ [placeholder]="'FIRST_NAME' | localize "
148
+ (modelChange)="firstNameChange($event)"
149
+ required
150
+ ></co-input-text>
151
+ </div>
152
+ <div class="default-flex-column">
153
+ <co-input-text
154
+ [(model)]="customer.prefix"
155
+ [placeholder]="'PREFIX' | localize "
156
+ ></co-input-text>
157
+ </div>
158
+ <div class="default-flex-column">
159
+ <co-input-text
160
+ [(model)]="customer.familyName"
161
+ [placeholder]="'LAST_NAME' | localize"
162
+ (modelChange)="familyNameChange($event)"
163
+ required
164
+ ></co-input-text>
165
+ </div>
166
+ <div class="default-flex-column">
167
+ <co-input-date
168
+ [placeholder]="'DATE_OF_BIRTH' | localize "
169
+ [(model)]="dateOfBirth"
170
+ required
171
+ ></co-input-date>
172
+ </div>
173
+ <div class="default-flex-column">
174
+ <co-input-text
175
+ [(model)]="phoneNumber.value"
176
+ [placeholder]="'PHONE_NO' | localize "
177
+ required
178
+ ></co-input-text>
179
+ </div>
180
+ </div>
181
+ </div>
182
+ </div>
183
+ <div>
184
+ <div *ngIf="customer?.type === relType.Company" class="default-flex-column">
185
+ <label [textContent]="'COMPANY_NAME' | localize "
186
+ class="transaction-relation-label-h3"
187
+ ></label>
188
+ <co-input-text
189
+ [(model)]="customer.familyName"
190
+ [label]="'COMPANY_NAME'"
191
+ required
192
+ ></co-input-text>
193
+ </div>
194
+ </div>
195
+
196
+ <div>
197
+ <transaction-relation-address
198
+ label="DELIVERY_ADDRESS" [address]="editFirstAddress"
199
+ ></transaction-relation-address>
200
+ </div>
201
+
202
+ <div fxLayout="row" fxLayoutGap="10px" class="button-wrapper">
203
+ <default-ok-cancel-buttons
204
+ [okDisabled]="readonly"
205
+ (okClick)="transactionRelationEditForm.submit()"
206
+ (cancelClick)="onPopupClose()"
207
+ ></default-ok-cancel-buttons>
208
+ </div>
209
+ </div>
210
+ </co-form>
211
+ </ng-container>
212
+ </co-dialog>
213
+ `,
214
+ styles: [".button-wrapper{margin-top:10px;justify-content:center}co-input-radio-button{margin-left:16px}.transaction-relation-label-h2{display:block;margin-top:1em;margin-bottom:1em;font-size:18px;font-weight:bold}.transaction-relation-label-h3{display:block;margin-top:1em;margin-bottom:1em;font-size:14px;font-weight:bold}\n"]
215
+ },] }
216
+ ];
217
+ TransactionRelationEditComponent.ctorParameters = () => [
218
+ { type: TransactionService }
219
+ ];
220
+ TransactionRelationEditComponent.propDecorators = {
221
+ transactionRelationEditForm: [{ type: ViewChild, args: ["transactionRelationEditForm", { read: FormComponent },] }],
222
+ showPopup: [{ type: Input }],
223
+ validSubmit: [{ type: Output }]
224
+ };
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcmVsYXRpb24tZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudC9zZXJ2aWNlLW9yZGVyL3RyYW5zYWN0aW9uLXJlbGF0aW9uL3RyYW5zYWN0aW9uLXJlbGF0aW9uLWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUNoRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saURBQWlELENBQUM7QUFDeEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDbEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUErSXBGLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSx3QkFBd0I7SUFxQjFFLFlBQStCLE9BQTJCO1FBQ3RELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQURZLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBaEJuRCxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRWxCLFlBQU8sR0FBNEIsZ0JBQWdCLENBQUM7UUFDcEQsZUFBVSxHQUFzQixVQUFVLENBQUM7UUFHcEQsZ0JBQVcsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUMzRCxrQkFBYSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTdELGdCQUFXLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMvQixnQkFBVyxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO0lBUXhELENBQUM7SUFORCxJQUFXLFFBQVE7UUFDZixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBTUQsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDNUI7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDdEIsTUFBTSxPQUFPLEdBQVksSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUN2QyxPQUFPLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDbEQsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQy9CLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QyxPQUFPLE9BQU8sQ0FBQztTQUNsQjtJQUNMLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDbkQsT0FBTztTQUNWO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDO1lBQzFDLFdBQVcsQ0FBQyxlQUFlO1lBQzNCLFdBQVcsQ0FBQyxjQUFjO1lBQzFCLFdBQVcsQ0FBQyxlQUFlO1lBQzNCLFdBQVcsQ0FBQyxjQUFjO1lBQzFCLFdBQVcsQ0FBQyxjQUFjO1NBQzdCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxZQUFZO1FBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFlBQThCO1FBQ3BELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztTQUNyQztJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxVQUFzQjtRQUMxQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUM7U0FDckM7SUFDTCxDQUFDO0lBRU0sZUFBZSxDQUFDLFNBQWlCO1FBQ3BDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztTQUN2QztJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxVQUFrQjtRQUN0QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7U0FDekM7SUFDTCxDQUFDOzs7WUE5TkosU0FBUyxTQUFDO2dCQUNULDhEQUE4RDtnQkFDNUQsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FvSVQ7O2FBSUo7OztZQS9JTyxrQkFBa0I7OzswQ0FpSnJCLFNBQVMsU0FBQyw2QkFBNkIsRUFBRSxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUM7d0JBRzlELEtBQUs7MEJBTUwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtHZW5kZXJUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vZ2VuZGVyLXR5cGUuZW51bVwiO1xyXG5pbXBvcnQge0FkZHJlc3N9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvYWRkcmVzcy5ib1wiO1xyXG5pbXBvcnQge0NvbnRhY3RPcHRpb259IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY29udGFjdC1vcHRpb24uYm9cIjtcclxuaW1wb3J0IHtSZWxhdGlvbk5hbWVLaW5kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcmVsYXRpb24tbmFtZS1raW5kLmVudW1cIjtcclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50fSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0FkZHJlc3NUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vYWRkcmVzcy10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gXCIuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnRcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gICAgc2VsZWN0b3I6IFwidHJhbnNhY3Rpb24tcmVsYXRpb24tZWRpdFwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8Y28tZGlhbG9nIFt2aXNpYmxlXT1cInNob3dQb3B1cFwiIGhlYWRlcj1cIkFDQ09VTlRfREVUQUlMU1wiICAoY2xvc2UpPVwib25Qb3B1cENsb3NlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIG5vQ2xpY2tPdXRzaWRlIGNvbnRlbnRTaXplPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDxjby1mb3JtICN0cmFuc2FjdGlvblJlbGF0aW9uRWRpdEZvcm0gKHZhbGlkU3VibWl0KT1cInZhbGlkU3VibWl0LmVtaXQoKVwiIChpbnZhbGlkU3VibWl0KT1cImludmFsaWRTdWJtaXQuZW1pdCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWluLXdpZHRoOiA1MDBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidQRVJTT05BTF9EQVRBJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tcmVsYXRpb24tbGFiZWwtaDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFt0ZXh0Q29udGVudF09XCInT1JERVJfVFlQRScgfCBsb2NhbGl6ZSBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tcmVsYXRpb24tbGFiZWwtaDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3VzdG9tZXI/LnR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1yYWRpby1idXR0b24gW25hbWVdPVwiJ3R5cGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidQUklWQVRFX1BFUlNPTicgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyZWxUeXBlLlByaXZhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjdXN0b21lci50eXBlID09PSByZWxUeXBlLlByaXZhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiY2hhbmdlUmVsYXRpb25UeXBlKHJlbFR5cGUuUHJpdmF0ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXJhZGlvLWJ1dHRvbiBbbmFtZV09XCIndHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NPTVBBTlknIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwicmVsVHlwZS5Db21wYW55XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY3VzdG9tZXIudHlwZSA9PT0gcmVsVHlwZS5Db21wYW55XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoYW5nZVJlbGF0aW9uVHlwZShyZWxUeXBlLkNvbXBhbnkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImN1c3RvbWVyPy50eXBlID09PSByZWxUeXBlLlByaXZhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFt0ZXh0Q29udGVudF09XCInU0FMVVRBVElPTicgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLXJlbGF0aW9uLWxhYmVsLWgzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjdXN0b21lcj8uZ2VuZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtcmFkaW8tYnV0dG9uIFtuYW1lXT1cIidnZW5kZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidNQUxFJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdlbmRlclR5cGUuTWFsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImN1c3RvbWVyLmdlbmRlciA9PT0gZ2VuZGVyVHlwZS5NYWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoYW5nZUdlbmRlclR5cGUoZ2VuZGVyVHlwZS5NYWxlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtcmFkaW8tYnV0dG9uIFtuYW1lXT1cIidnZW5kZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidGRU1BTEUnIHwgbG9jYWxpemUgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdlbmRlclR5cGUuRmVtYWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY3VzdG9tZXIuZ2VuZGVyID09PSBnZW5kZXJUeXBlLkZlbWFsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJjaGFuZ2VHZW5kZXJUeXBlKGdlbmRlclR5cGUuRmVtYWxlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtcmFkaW8tYnV0dG9uIFtuYW1lXT1cIidnZW5kZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidVTktOT1dOJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdlbmRlclR5cGUuVW5zcGVjaWZpZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjdXN0b21lci5nZW5kZXIgPT09IGdlbmRlclR5cGUuVW5zcGVjaWZpZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiY2hhbmdlR2VuZGVyVHlwZShnZW5kZXJUeXBlLlVuc3BlY2lmaWVkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjdXN0b21lcj8udHlwZSA9PT0gcmVsVHlwZS5Qcml2YXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidOQU1FJyB8IGxvY2FsaXplIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmFuc2FjdGlvbi1yZWxhdGlvbi1sYWJlbC1oM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJjdXN0b21lci5maXJzdE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInRklSU1RfTkFNRScgfCBsb2NhbGl6ZSBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJmaXJzdE5hbWVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImN1c3RvbWVyLnByZWZpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidQUkVGSVgnIHwgbG9jYWxpemUgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImN1c3RvbWVyLmZhbWlseU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInTEFTVF9OQU1FJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiZmFtaWx5TmFtZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1kYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidEQVRFX09GX0JJUlRIJyB8IGxvY2FsaXplIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiZGF0ZU9mQmlydGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LWRhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJwaG9uZU51bWJlci52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidQSE9ORV9OTycgfCBsb2NhbGl6ZSBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImN1c3RvbWVyPy50eXBlID09PSByZWxUeXBlLkNvbXBhbnlcIiBjbGFzcz1cImRlZmF1bHQtZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbdGV4dENvbnRlbnRdPVwiJ0NPTVBBTllfTkFNRScgfCBsb2NhbGl6ZSBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tcmVsYXRpb24tbGFiZWwtaDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJjdXN0b21lci5mYW1pbHlOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidDT01QQU5ZX05BTUUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHJhbnNhY3Rpb24tcmVsYXRpb24tYWRkcmVzc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiREVMSVZFUllfQUREUkVTU1wiIFthZGRyZXNzXT1cImVkaXRGaXJzdEFkZHJlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC90cmFuc2FjdGlvbi1yZWxhdGlvbi1hZGRyZXNzPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCIgY2xhc3M9XCJidXR0b24td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGVmYXVsdC1vay1jYW5jZWwtYnV0dG9uc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtva0Rpc2FibGVkXT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob2tDbGljayk9XCJ0cmFuc2FjdGlvblJlbGF0aW9uRWRpdEZvcm0uc3VibWl0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5jZWxDbGljayk9XCJvblBvcHVwQ2xvc2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2RlZmF1bHQtb2stY2FuY2VsLWJ1dHRvbnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9jby1mb3JtPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2NvLWRpYWxvZz5cclxuICAgIGAsXHJcbiAgICBzdHlsZVVybHM6IFtcclxuICAgICAgICBcIi4vdHJhbnNhY3Rpb24tcmVsYXRpb24tZWRpdC5jb21wb25lbnQuc2Nzc1wiXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblJlbGF0aW9uRWRpdENvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCB7XHJcbiAgICBAVmlld0NoaWxkKFwidHJhbnNhY3Rpb25SZWxhdGlvbkVkaXRGb3JtXCIsIHtyZWFkOiBGb3JtQ29tcG9uZW50fSlcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvblJlbGF0aW9uRWRpdEZvcm06IEZvcm1Db21wb25lbnQ7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93UG9wdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVsVHlwZTogdHlwZW9mIFJlbGF0aW9uTmFtZUtpbmQgPSBSZWxhdGlvbk5hbWVLaW5kO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGdlbmRlclR5cGU6IHR5cGVvZiBHZW5kZXJUeXBlID0gR2VuZGVyVHlwZTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB2YWxpZFN1Ym1pdDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgcHVibGljIGludmFsaWRTdWJtaXQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBwdWJsaWMgZGF0ZU9mQmlydGg6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgcHVibGljIHBob25lTnVtYmVyOiBDb250YWN0T3B0aW9uID0gbmV3IENvbnRhY3RPcHRpb24oKTtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IHJlYWRvbmx5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoc2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzdWJIZWFkZXIoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGVkaXRGaXJzdEFkZHJlc3MoKTogQWRkcmVzcyB7XHJcbiAgICAgICAgaWYgKHRoaXMuZmlyc3RBZGRyZXNzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZpcnN0QWRkcmVzcztcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3VzdG9tZXIpIHtcclxuICAgICAgICAgICAgY29uc3QgYWRkcmVzczogQWRkcmVzcyA9IG5ldyBBZGRyZXNzKCk7XHJcbiAgICAgICAgICAgIGFkZHJlc3MuYWRkcmVzc1R5cGUgPSBBZGRyZXNzVHlwZS5EZWxpdmVyeUFkZHJlc3M7XHJcbiAgICAgICAgICAgIGFkZHJlc3Muc3RhcnREYXRlID0gbmV3IERhdGUoKTtcclxuICAgICAgICAgICAgYWRkcmVzcy5zZXF1ZW5jZSA9IHRoaXMuY3VzdG9tZXIuZ2V0TmV4dEFkZHJlc3NTZXF1ZW5jZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbWVyLmFkZHJlc3Nlcy5wdXNoKGFkZHJlc3MpO1xyXG4gICAgICAgICAgICByZXR1cm4gYWRkcmVzcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBmaXJzdEFkZHJlc3MoKTogQWRkcmVzcyB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnJlbGF0aW9uIHx8ICF0aGlzLmN1c3RvbWVyLmFkZHJlc3Nlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tZXIuZ2V0Rmlyc3RBdmFpbGFibGVBZGRyZXNzKFtcclxuICAgICAgICAgICAgQWRkcmVzc1R5cGUuRGVsaXZlcnlBZGRyZXNzLFxyXG4gICAgICAgICAgICBBZGRyZXNzVHlwZS5CaWxsaW5nQWRkcmVzcyxcclxuICAgICAgICAgICAgQWRkcmVzc1R5cGUuVmlzaXRpbmdBZGRyZXNzLFxyXG4gICAgICAgICAgICBBZGRyZXNzVHlwZS5NYWlsaW5nQWRkcmVzcyxcclxuICAgICAgICAgICAgQWRkcmVzc1R5cGUuTnVyc2luZ0FkZHJlc3NcclxuICAgICAgICBdKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Qb3B1cENsb3NlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvd1BvcHVwID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNoYW5nZVJlbGF0aW9uVHlwZShyZWxhdGlvblR5cGU6IFJlbGF0aW9uTmFtZUtpbmQpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jdXN0b21lcikge1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbWVyLnR5cGUgPSByZWxhdGlvblR5cGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGFuZ2VHZW5kZXJUeXBlKGdlbmRlclR5cGU6IEdlbmRlclR5cGUpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jdXN0b21lcikge1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbWVyLmdlbmRlciA9IGdlbmRlclR5cGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBmaXJzdE5hbWVDaGFuZ2UoZmlyc3ROYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jdXN0b21lcikge1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbWVyLmZpcnN0TmFtZSA9IGZpcnN0TmFtZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZhbWlseU5hbWVDaGFuZ2UoZmFtaWx5TmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21lci5mYW1pbHlOYW1lID0gZmFtaWx5TmFtZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,172 @@
1
+ import { ChangeDetectorRef, Component, Input } from "@angular/core";
2
+ import { Accordion } from "@syncfusion/ej2-navigations";
3
+ import { TransactionLineInfo } from "@colijnit/transactionapi/build/model/transaction-line-info.bo";
4
+ export class TransactionLineAccordionComponent {
5
+ constructor(changeDetector) {
6
+ this.changeDetector = changeDetector;
7
+ this.transactionLine = new TransactionLineInfo;
8
+ this.accordion = new Accordion({});
9
+ this._subscriptions = [];
10
+ }
11
+ ngOnInit() {
12
+ setTimeout(() => {
13
+ this.accordion.appendTo("#accordion_html_markup");
14
+ this.changeDetector.detectChanges();
15
+ });
16
+ }
17
+ }
18
+ TransactionLineAccordionComponent.decorators = [
19
+ { type: Component, args: [{
20
+ // eslint-disable-next-line @angular-eslint/component-selector
21
+ selector: "transaction-line-accordion",
22
+ template: `
23
+ <div id='container'>
24
+ <div id='accordion_html_markup'>
25
+ <div>
26
+ <div>Prijsdetails</div>
27
+ <div>
28
+ <div style="margin-left:10px;">
29
+ <div fxLayout="row" fxLayoutGap="10px">
30
+ <co-input-text placeholder="Aantal" [model]="transactionLine?.amount"></co-input-text>
31
+ <co-input-text placeholder="Verkoopprijs" [model]="transactionLine?.price"></co-input-text>
32
+ </div>
33
+ <div fxLayout="row" fxLayoutGap="10px">
34
+ <co-input-text placeholder="Adviesprijs"></co-input-text>
35
+ <co-input-text placeholder="Totaal korting"></co-input-text>
36
+ </div>
37
+ <div fxLayout="row" fxLayoutGap="10px">
38
+ <co-input-text placeholder="Koritngspercentage"></co-input-text>
39
+ <co-input-text placeholder="Kortingsbedrag" [model]="transactionLine?.discountAmount"></co-input-text>
40
+ </div>
41
+
42
+ <div fxLayout="row" fxLayoutGap="10px">
43
+ <co-input-text placeholder="Speciale korting"></co-input-text>
44
+ <co-input-text placeholder="Transactiekorting"></co-input-text>
45
+ </div>
46
+
47
+ <div fxLayout="row" fxLayoutGap="10px">
48
+ <co-input-text placeholder="Business rule korting"></co-input-text>
49
+ <co-input-text placeholder="Kwantumkorting"></co-input-text>
50
+ </div>
51
+
52
+ <div fxLayout="row" fxLayoutGap="10px">
53
+ <co-input-text placeholder="Toeslag"></co-input-text>
54
+ <co-input-text placeholder="BTW"></co-input-text>
55
+ </div>
56
+
57
+ <div fxLayout="row" fxLayoutGap="10px">
58
+ <co-input-text placeholder="Prijslijst"></co-input-text>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ <div>
64
+ <div>Logistiek</div>
65
+ <div>
66
+ <div style="margin-left:10px;">
67
+ <div fxLayout="row" fxLayoutGap="10px">
68
+ <co-input-text placeholder="Commissiecode"></co-input-text>
69
+ <co-input-text placeholder="Levermethode"></co-input-text>
70
+ </div>
71
+ <div fxLayout="row" fxLayoutGap="10px">
72
+ <co-input-text placeholder="Montagetijd"></co-input-text>
73
+ <co-input-text placeholder="Bewerkingstijd"></co-input-text>
74
+ </div>
75
+ <div fxLayout="row" fxLayoutGap="10px">
76
+ <co-input-text placeholder="Leverancier"></co-input-text>
77
+ <co-input-text placeholder="Artikelnummer leverancier"></co-input-text>
78
+ </div>
79
+
80
+ <div fxLayout="row" fxLayoutGap="10px">
81
+ <co-input-text placeholder="In/uit collectie"></co-input-text>
82
+ <co-input-text placeholder="Dropshipment"></co-input-text>
83
+ </div>
84
+
85
+ <div fxLayout="row" fxLayoutGap="10px">
86
+ <co-input-text placeholder="Leverdatum"></co-input-text>
87
+ <co-input-text placeholder="Referentie"></co-input-text>
88
+ </div>
89
+ </div>
90
+ </div>
91
+
92
+ </div>
93
+ <div>
94
+ <div id="header">Opmaak</div>
95
+ <div id="opmaak">
96
+ <div style="margin-left:10px;">
97
+ <div fxLayout="row" fxLayoutGap="10px">
98
+ <co-input-text placeholder="Orderregelset"></co-input-text>
99
+ <co-input-text placeholder="Hoofdstuk"></co-input-text>
100
+ </div>
101
+ <div>
102
+ <co-input-text placeholder="Laatste wijziging Door"></co-input-text>
103
+ </div>
104
+ <div>
105
+ <co-input-text placeholder="Zichtbaar op documenten"></co-input-text>
106
+ </div>
107
+ </div>
108
+ </div>
109
+ </div>
110
+ <div>
111
+ <div>Artikelkenmerken</div>
112
+ <div>
113
+ <div style="margin-left:10px;">
114
+ <div fxLayout="row" fxLayoutGap="10px">
115
+ <co-input-text placeholder="Breedte"></co-input-text>
116
+ <co-input-text placeholder="Lengte"></co-input-text>
117
+ </div>
118
+ <div fxLayout="row" fxLayoutGap="10px">
119
+ <co-input-text placeholder="Hoogte"></co-input-text>
120
+ <co-input-text placeholder="Zitdiepte"></co-input-text>
121
+ </div>
122
+ <div fxLayout="row" fxLayoutGap="10px">
123
+ <co-input-text placeholder="Zithoogte"></co-input-text>
124
+ <co-input-text placeholder="Volume"></co-input-text>
125
+ </div>
126
+ <div fxLayout="row" fxLayoutGap="10px">
127
+ <co-input-text placeholder="Stopmaat"></co-input-text>
128
+ <co-input-text placeholder="Patroonhoogte"></co-input-text>
129
+ </div>
130
+ <br>
131
+ <div fxLayout="row" fxLayoutGap="10px">
132
+ <co-input-text placeholder="Standaard levertijd"></co-input-text>
133
+ <co-input-text placeholder="Standaard levertijd verkoop"></co-input-text>
134
+ </div>
135
+ <div fxLayout="row" fxLayoutGap="10px">
136
+ <co-input-text placeholder="Eenheid verkoop"></co-input-text>
137
+ <co-input-text placeholder="Verkoophoeveelheid"></co-input-text>
138
+ </div>
139
+ <div fxLayout="row" fxLayoutGap="10px">
140
+ <co-input-text placeholder="Aantal"></co-input-text>
141
+ <co-input-text placeholder="Colli"></co-input-text>
142
+ </div>
143
+ <br>
144
+ <div fxLayout="row" fxLayoutGap="10px">
145
+ <co-input-text placeholder="Omzetgroep"></co-input-text>
146
+ <co-input-text placeholder="Artikelgroep"></co-input-text>
147
+ </div>
148
+ <div fxLayout="row" fxLayoutGap="10px">
149
+ <co-input-text placeholder="Hoofdartikel"></co-input-text>
150
+ <co-input-text placeholder="Sfeer"></co-input-text>
151
+ </div>
152
+ <div fxLayout="row" fxLayoutGap="10px">
153
+ <co-input-text placeholder="Concept"></co-input-text>
154
+ <co-input-text placeholder="Afdeling"></co-input-text>
155
+ </div>
156
+ </div>
157
+ </div>
158
+ </div>
159
+
160
+ </div>
161
+ </div>
162
+ `,
163
+ styles: [""]
164
+ },] }
165
+ ];
166
+ TransactionLineAccordionComponent.ctorParameters = () => [
167
+ { type: ChangeDetectorRef }
168
+ ];
169
+ TransactionLineAccordionComponent.propDecorators = {
170
+ transactionLine: [{ type: Input }]
171
+ };
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1hY2NvcmRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnQvc2VydmljZS1vcmRlci90cmFuc2FjdGlvbi1zaWRlYmFyL3RyYW5zYWN0aW9uLWxpbmUtYWNjb3JkaW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFdEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFvSmxHLE1BQU0sT0FBTyxpQ0FBaUM7SUFRNUMsWUFBc0IsY0FBaUM7UUFBakMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBTmhELG9CQUFlLEdBQXdCLElBQUksbUJBQW1CLENBQUM7UUFFL0QsY0FBUyxHQUFjLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXhDLG1CQUFjLEdBQW1CLEVBQUUsQ0FBQztJQUVjLENBQUM7SUFFM0QsUUFBUTtRQUNOLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFqS0YsU0FBUyxTQUFDO2dCQUNULDhEQUE4RDtnQkFDOUQsUUFBUSxFQUFFLDRCQUE0QjtnQkFDdEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRJVDs7YUFFRjs7O1lBdEpPLGlCQUFpQjs7OzhCQXdKdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtBY2NvcmRpb259IGZyb20gXCJAc3luY2Z1c2lvbi9lajItbmF2aWdhdGlvbnNcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6IFwidHJhbnNhY3Rpb24tbGluZS1hY2NvcmRpb25cIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBpZD0nY29udGFpbmVyJz5cclxuICAgICAgPGRpdiBpZD0nYWNjb3JkaW9uX2h0bWxfbWFya3VwJz5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPGRpdj5Qcmlqc2RldGFpbHM8L2Rpdj5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tbGVmdDoxMHB4O1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjEwcHhcIj5cclxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiQWFudGFsXCIgW21vZGVsXT1cInRyYW5zYWN0aW9uTGluZT8uYW1vdW50XCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJWZXJrb29wcHJpanNcIiBbbW9kZWxdPVwidHJhbnNhY3Rpb25MaW5lPy5wcmljZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XHJcbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBwbGFjZWhvbGRlcj1cIkFkdmllc3ByaWpzXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJUb3RhYWwga29ydGluZ1wiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XHJcbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBwbGFjZWhvbGRlcj1cIktvcml0bmdzcGVyY2VudGFnZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiS29ydGluZ3NiZWRyYWdcIiBbbW9kZWxdPVwidHJhbnNhY3Rpb25MaW5lPy5kaXNjb3VudEFtb3VudFwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJTcGVjaWFsZSBrb3J0aW5nXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJUcmFuc2FjdGlla29ydGluZ1wiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJCdXNpbmVzcyBydWxlIGtvcnRpbmdcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBwbGFjZWhvbGRlcj1cIkt3YW50dW1rb3J0aW5nXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XHJcbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBwbGFjZWhvbGRlcj1cIlRvZXNsYWdcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBwbGFjZWhvbGRlcj1cIkJUV1wiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJQcmlqc2xpanN0XCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8ZGl2PkxvZ2lzdGllazwvZGl2PlxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1sZWZ0OjEwcHg7XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJDb21taXNzaWVjb2RlXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJMZXZlcm1ldGhvZGVcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJNb250YWdldGlqZFwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiQmV3ZXJraW5nc3RpamRcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJMZXZlcmFuY2llclwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiQXJ0aWtlbG51bW1lciBsZXZlcmFuY2llclwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJJbi91aXQgY29sbGVjdGllXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJEcm9wc2hpcG1lbnRcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjEwcHhcIj5cclxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiTGV2ZXJkYXR1bVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiUmVmZXJlbnRpZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxkaXYgaWQ9XCJoZWFkZXJcIj5PcG1hYWs8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgaWQ9XCJvcG1hYWtcIj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1sZWZ0OjEwcHg7XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJPcmRlcnJlZ2Vsc2V0XCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJIb29mZHN0dWtcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiTGFhdHN0ZSB3aWp6aWdpbmcgRG9vclwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJaaWNodGJhYXIgb3AgZG9jdW1lbnRlblwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGRpdj5BcnRpa2Vsa2VubWVya2VuPC9kaXY+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tbGVmdDoxMHB4O1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJCcmVlZHRlXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiTGVuZ3RlXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiSG9vZ3RlXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiWml0ZGllcHRlXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiWml0aG9vZ3RlXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiVm9sdW1lXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiU3RvcG1hYXRcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJQYXRyb29uaG9vZ3RlXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJTdGFuZGFhcmQgbGV2ZXJ0aWpkXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiU3RhbmRhYXJkIGxldmVydGlqZCB2ZXJrb29wXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiRWVuaGVpZCB2ZXJrb29wXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiVmVya29vcGhvZXZlZWxoZWlkXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiQWFudGFsXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiQ29sbGlcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjEwcHhcIj5cclxuICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBwbGFjZWhvbGRlcj1cIk9temV0Z3JvZXBcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJBcnRpa2VsZ3JvZXBcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJIb29mZGFydGlrZWxcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJTZmVlclwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjEwcHhcIj5cclxuICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBwbGFjZWhvbGRlcj1cIkNvbmNlcHRcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJBZmRlbGluZ1wiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3RyYW5zYWN0aW9uLWxpbmUtYWNjb3JkaW9uLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkxpbmVBY2NvcmRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyA9IG5ldyBUcmFuc2FjdGlvbkxpbmVJbmZvO1xyXG5cclxuICBwdWJsaWMgYWNjb3JkaW9uOiBBY2NvcmRpb24gPSBuZXcgQWNjb3JkaW9uKHt9KTtcclxuXHJcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hY2NvcmRpb24uYXBwZW5kVG8oXCIjYWNjb3JkaW9uX2h0bWxfbWFya3VwXCIpO1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=