@colijnit/transaction 12.0.2 → 12.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/component/core/base/default-ok-cancel-buttons.component.d.ts +13 -0
- package/app/component/core/base/transaction-base.component.d.ts +38 -0
- package/app/component/core/directive/template-wrapper.directive.d.ts +13 -0
- package/app/component/{shopping-cart → core}/stock-status-indicator/stock-status-indicator.component.d.ts +0 -0
- package/app/component/service-order/ione-service-order-module.d.ts +2 -0
- package/app/component/service-order/ione-service-order.component.d.ts +25 -0
- package/app/component/service-order/service-order.component.d.ts +48 -0
- package/app/component/service-order/summary/transaction-article-summary.component.d.ts +17 -0
- package/app/component/service-order/summary/transaction-delivery-summary.component.d.ts +20 -0
- package/app/component/service-order/summary/transaction-order-summary.component.d.ts +16 -0
- package/app/component/service-order/summary/transaction-payment-info.component.d.ts +14 -0
- package/app/component/service-order/summary/transaction-product-contract-summary.component.d.ts +7 -0
- package/app/component/service-order/summary/transaction-product-summary.component.d.ts +15 -0
- package/app/component/service-order/summary/transaction-service-status.component.d.ts +15 -0
- package/app/component/service-order/summary/transaction-service-summary.component.d.ts +15 -0
- package/app/component/service-order/summary/transaction-summary-block.component.d.ts +16 -0
- package/app/component/service-order/transaction-article-text/transaction-article-text.component.d.ts +24 -0
- package/app/component/service-order/transaction-header-block/transaction-header-block.component.d.ts +15 -0
- package/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.d.ts +16 -0
- package/app/component/service-order/transaction-order-lines/transaction-order-lines.component.d.ts +25 -0
- package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.d.ts +7 -0
- package/app/component/service-order/transaction-relation/transaction-relation-address.component.d.ts +22 -0
- package/app/component/service-order/transaction-relation/transaction-relation-edit.component.d.ts +29 -0
- package/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.d.ts +11 -0
- package/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.d.ts +26 -0
- package/app/component/shopping-cart/ione-shopping-cart.component.d.ts +20 -0
- package/app/component/shopping-cart/shopping-cart/shopping-cart.component.d.ts +7 -2
- package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +7 -0
- package/app/service/ione-connector-adapter.service.d.ts +5 -1
- package/app/service/transaction-event.service.d.ts +29 -0
- package/app/service/transaction.service.d.ts +9 -2
- package/bundles/colijnit-transaction.umd.js +1930 -62
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +23 -1
- package/colijnit-transaction.metadata.json +1 -1
- package/enum/position-grid-row.enum.d.ts +4 -0
- package/esm2015/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +3 -3
- package/esm2015/app/component/checkout/ione-checkout.module.js +1 -3
- package/esm2015/app/component/common/icon/icon.component.js +2 -1
- package/esm2015/app/component/core/base/default-ok-cancel-buttons.component.js +39 -0
- package/esm2015/app/component/core/base/transaction-base.component.js +121 -0
- package/esm2015/app/component/core/directive/template-wrapper.directive.js +69 -0
- package/esm2015/app/component/{shopping-cart → core}/stock-status-indicator/stock-status-indicator.component.js +1 -1
- package/esm2015/app/component/service-order/ione-service-order-module.js +103 -0
- package/esm2015/app/component/service-order/ione-service-order.component.js +98 -0
- package/esm2015/app/component/service-order/service-order.component.js +167 -0
- package/esm2015/app/component/service-order/summary/transaction-article-summary.component.js +55 -0
- package/esm2015/app/component/service-order/summary/transaction-delivery-summary.component.js +59 -0
- package/esm2015/app/component/service-order/summary/transaction-order-summary.component.js +43 -0
- package/esm2015/app/component/service-order/summary/transaction-payment-info.component.js +35 -0
- package/esm2015/app/component/service-order/summary/transaction-product-contract-summary.component.js +38 -0
- package/esm2015/app/component/service-order/summary/transaction-product-summary.component.js +41 -0
- package/esm2015/app/component/service-order/summary/transaction-service-status.component.js +37 -0
- package/esm2015/app/component/service-order/summary/transaction-service-summary.component.js +38 -0
- package/esm2015/app/component/service-order/summary/transaction-summary-block.component.js +53 -0
- package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +183 -0
- package/esm2015/app/component/service-order/transaction-header-block/transaction-header-block.component.js +83 -0
- package/esm2015/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.js +76 -0
- package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +71 -0
- package/esm2015/app/component/service-order/transaction-order-totals/transaction-order-totals.component.js +37 -0
- package/esm2015/app/component/service-order/transaction-relation/transaction-relation-address.component.js +116 -0
- package/esm2015/app/component/service-order/transaction-relation/transaction-relation-edit.component.js +225 -0
- package/esm2015/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.js +172 -0
- package/esm2015/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.js +120 -0
- package/esm2015/app/component/shopping-cart/ione-shopping-cart.component.js +52 -7
- package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +4 -6
- package/esm2015/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +42 -9
- package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +1 -1
- package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +63 -3
- package/esm2015/app/service/ione-connector-adapter.service.js +60 -8
- package/esm2015/app/service/transaction-event.service.js +9 -1
- package/esm2015/app/service/transaction.service.js +87 -19
- package/esm2015/assets/dictionary/text.properties.js +43 -3
- package/esm2015/colijnit-transaction.js +24 -2
- package/esm2015/enum/position-grid-row.enum.js +6 -0
- package/esm2015/public_api.js +3 -1
- package/fesm2015/colijnit-transaction.js +2309 -50
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/package.json +17 -17
- package/public_api.d.ts +2 -0
|
@@ -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=
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Component } from "@angular/core";
|
|
2
|
+
import { Sidebar } from "@syncfusion/ej2-navigations";
|
|
3
|
+
import { TransactionEventService } from "../../../service/transaction-event.service";
|
|
4
|
+
import { TransactionBaseComponent } from "../../core/base/transaction-base.component";
|
|
5
|
+
import { TransactionService } from "../../../service/transaction.service";
|
|
6
|
+
import { CoreComponentsIcon, IconCacheService } from "@colijnit/corecomponents_v12";
|
|
7
|
+
export class TransactionSidebarRightComponent extends TransactionBaseComponent {
|
|
8
|
+
constructor(service, iconCacheService, _eventService, changeDetector) {
|
|
9
|
+
super(service);
|
|
10
|
+
this.service = service;
|
|
11
|
+
this.iconCacheService = iconCacheService;
|
|
12
|
+
this._eventService = _eventService;
|
|
13
|
+
this.changeDetector = changeDetector;
|
|
14
|
+
this.iconDetailView = CoreComponentsIcon.DetailView;
|
|
15
|
+
this.iconArrowPointRight = CoreComponentsIcon.ArrowPointRight;
|
|
16
|
+
this.iconStock = CoreComponentsIcon.Stock;
|
|
17
|
+
this.iconDocuments = CoreComponentsIcon.Documents;
|
|
18
|
+
this.test = "";
|
|
19
|
+
this.defaultSidebar = new Sidebar({
|
|
20
|
+
width: "320px",
|
|
21
|
+
type: "Auto",
|
|
22
|
+
isOpen: false,
|
|
23
|
+
position: "Right",
|
|
24
|
+
target: "#app-module-sidebar-right"
|
|
25
|
+
});
|
|
26
|
+
this._subscriptions = [];
|
|
27
|
+
this._subscriptions.push(this._eventService.transactionLineClicked.subscribe((transactionLine) => {
|
|
28
|
+
this.transactionLine = transactionLine;
|
|
29
|
+
this.defaultSidebar.show();
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
ngOnInit() {
|
|
33
|
+
setTimeout(() => {
|
|
34
|
+
this.defaultSidebar.appendTo("#default-sidebar");
|
|
35
|
+
this.sidebarCloseClick();
|
|
36
|
+
this.changeDetector.detectChanges();
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
ngOnDestroy() {
|
|
40
|
+
this._subscriptions.forEach(sub => sub.unsubscribe());
|
|
41
|
+
}
|
|
42
|
+
sidebarCloseClick() {
|
|
43
|
+
this.defaultSidebar.hide();
|
|
44
|
+
this._eventService.rightSidebarClose.next();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
TransactionSidebarRightComponent.decorators = [
|
|
48
|
+
{ type: Component, args: [{
|
|
49
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
50
|
+
selector: "transaction-sidebar-right",
|
|
51
|
+
template: `
|
|
52
|
+
<div id="default-sidebar">
|
|
53
|
+
<div>
|
|
54
|
+
<icon [icon]="iconArrowPointRight" (click)="sidebarCloseClick()"></icon>
|
|
55
|
+
<label [textContent]="transactionLine?.goodDescription"></label>
|
|
56
|
+
</div>
|
|
57
|
+
<div>
|
|
58
|
+
<ejs-tab id="element2">
|
|
59
|
+
<e-tabitems>
|
|
60
|
+
<e-tabitem>
|
|
61
|
+
<ng-template #headerText>
|
|
62
|
+
<icon [icon]="iconDetailView" title="Regeldetails"></icon>
|
|
63
|
+
</ng-template>
|
|
64
|
+
<ng-template #content>
|
|
65
|
+
<transaction-line-accordion [transactionLine]="transactionLine"></transaction-line-accordion>
|
|
66
|
+
</ng-template>
|
|
67
|
+
</e-tabitem>
|
|
68
|
+
<e-tabitem>
|
|
69
|
+
<ng-template #headerText>
|
|
70
|
+
<icon [icon]="iconStock" title="Voorraad"></icon>
|
|
71
|
+
</ng-template>
|
|
72
|
+
<ng-template #content>
|
|
73
|
+
<div style="margin: 10px;">
|
|
74
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
75
|
+
<co-input-text placeholder="In voorraad"></co-input-text>
|
|
76
|
+
<co-input-text placeholder="In order voorraad"></co-input-text>
|
|
77
|
+
</div>
|
|
78
|
+
|
|
79
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
80
|
+
<co-input-text placeholder="In order commissie"></co-input-text>
|
|
81
|
+
<co-input-text placeholder="Beschikbaar"></co-input-text>
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
85
|
+
<co-input-text placeholder="In bestelling"></co-input-text>
|
|
86
|
+
<co-input-text placeholder="Later beschikbaar"></co-input-text>
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
90
|
+
<co-input-text placeholder="Toegewezen" [model]="transactionLine?.amount"></co-input-text>
|
|
91
|
+
<co-input-text placeholder="Vrije voorraad"></co-input-text>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
</ng-template>
|
|
95
|
+
</e-tabitem>
|
|
96
|
+
<e-tabitem>
|
|
97
|
+
<ng-template #headerText>
|
|
98
|
+
<icon [icon]="iconDocuments" title="Documenten en notities"></icon>
|
|
99
|
+
</ng-template>
|
|
100
|
+
<ng-template #content>
|
|
101
|
+
<div>
|
|
102
|
+
Documenten en notities
|
|
103
|
+
</div>
|
|
104
|
+
</ng-template>
|
|
105
|
+
</e-tabitem>
|
|
106
|
+
</e-tabitems>
|
|
107
|
+
</ejs-tab>
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
`,
|
|
111
|
+
styles: [":host{display:block;width:100%}.e-accordion{border:none}.e-accordion .e-acrdn-item .e-acrdn-header .e-toggle-icon .e-icons{color:#add8e6}.e-tab .e-toolbar-items{display:flex;justify-content:center}\n"]
|
|
112
|
+
},] }
|
|
113
|
+
];
|
|
114
|
+
TransactionSidebarRightComponent.ctorParameters = () => [
|
|
115
|
+
{ type: TransactionService },
|
|
116
|
+
{ type: IconCacheService },
|
|
117
|
+
{ type: TransactionEventService },
|
|
118
|
+
{ type: ChangeDetectorRef }
|
|
119
|
+
];
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2lkZWJhci1yaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudC9zZXJ2aWNlLW9yZGVyL3RyYW5zYWN0aW9uLXNpZGViYXIvdHJhbnNhY3Rpb24tc2lkZWJhci1yaWdodC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRXBELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBRXBGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBcUVsRixNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsd0JBQXdCO0lBcUI1RSxZQUNXLE9BQTJCLEVBQzNCLGdCQUFrQyxFQUNqQyxhQUFzQyxFQUNwQyxjQUFpQztRQUU3QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFMTixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUF4Qi9CLG1CQUFjLEdBQXVCLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztRQUNuRSx3QkFBbUIsR0FBdUIsa0JBQWtCLENBQUMsZUFBZSxDQUFDO1FBQzdFLGNBQVMsR0FBdUIsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1FBQ3pELGtCQUFhLEdBQXVCLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztRQUkxRSxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBR2xCLG1CQUFjLEdBQVksSUFBSSxPQUFPLENBQUM7WUFDM0MsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsTUFBTTtZQUNaLE1BQU0sRUFBRSxLQUFLO1lBQ2IsUUFBUSxFQUFFLE9BQU87WUFDakIsTUFBTSxFQUFFLDJCQUEyQjtTQUNwQyxDQUFDLENBQUM7UUFFSyxtQkFBYyxHQUFtQixFQUFFLENBQUM7UUFTMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsZUFBb0MsRUFBRSxFQUFFO1lBQzNGLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlDLENBQUM7OztZQXRIRixTQUFTLFNBQUM7Z0JBQ1QsOERBQThEO2dCQUM5RCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBMkRQOzthQUlKOzs7WUFyRU8sa0JBQWtCO1lBQ0UsZ0JBQWdCO1lBSnBDLHVCQUF1QjtZQUh2QixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1NpZGViYXJ9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItbmF2aWdhdGlvbnNcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzL2luZGV4XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gXCIuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge0NvcmVDb21wb25lbnRzSWNvbiwgSWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6IFwidHJhbnNhY3Rpb24tc2lkZWJhci1yaWdodFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGRpdiBpZD1cImRlZmF1bHQtc2lkZWJhclwiPlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGljb24gW2ljb25dPVwiaWNvbkFycm93UG9pbnRSaWdodFwiIChjbGljayk9XCJzaWRlYmFyQ2xvc2VDbGljaygpXCI+PC9pY29uPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIFt0ZXh0Q29udGVudF09XCJ0cmFuc2FjdGlvbkxpbmU/Lmdvb2REZXNjcmlwdGlvblwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGVqcy10YWIgaWQ9XCJlbGVtZW50MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlLXRhYml0ZW1zPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZS10YWJpdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uIFtpY29uXT1cImljb25EZXRhaWxWaWV3XCIgdGl0bGU9XCJSZWdlbGRldGFpbHNcIj48L2ljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cmFuc2FjdGlvbi1saW5lLWFjY29yZGlvbiBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiPjwvdHJhbnNhY3Rpb24tbGluZS1hY2NvcmRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2UtdGFiaXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGUtdGFiaXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyVGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aWNvbiBbaWNvbl09XCJpY29uU3RvY2tcIiB0aXRsZT1cIlZvb3JyYWFkXCI+PC9pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luOiAxMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBwbGFjZWhvbGRlcj1cIkluIHZvb3JyYWFkXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJJbiBvcmRlciB2b29ycmFhZFwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBwbGFjZWhvbGRlcj1cIkluIG9yZGVyIGNvbW1pc3NpZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHBsYWNlaG9sZGVyPVwiQmVzY2hpa2JhYXJcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJJbiBiZXN0ZWxsaW5nXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcGxhY2Vob2xkZXI9XCJMYXRlciBiZXNjaGlrYmFhclwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBwbGFjZWhvbGRlcj1cIlRvZWdld2V6ZW5cIiBbbW9kZWxdPVwidHJhbnNhY3Rpb25MaW5lPy5hbW91bnRcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBwbGFjZWhvbGRlcj1cIlZyaWplIHZvb3JyYWFkXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZS10YWJpdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZS10YWJpdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uIFtpY29uXT1cImljb25Eb2N1bWVudHNcIiB0aXRsZT1cIkRvY3VtZW50ZW4gZW4gbm90aXRpZXNcIj48L2ljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvY3VtZW50ZW4gZW4gbm90aXRpZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZS10YWJpdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZS10YWJpdGVtcz5cclxuICAgICAgICAgICAgICAgIDwvZWpzLXRhYj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gIHN0eWxlVXJsczogW1xyXG4gICAgXCIuL3RyYW5zYWN0aW9uLXNpZGViYXItcmlnaHQuY29tcG9uZW50LnNjc3NcIlxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2lkZWJhclJpZ2h0Q29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uRGV0YWlsVmlldzogQ29yZUNvbXBvbmVudHNJY29uID0gQ29yZUNvbXBvbmVudHNJY29uLkRldGFpbFZpZXc7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25BcnJvd1BvaW50UmlnaHQ6IENvcmVDb21wb25lbnRzSWNvbiA9IENvcmVDb21wb25lbnRzSWNvbi5BcnJvd1BvaW50UmlnaHQ7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25TdG9jazogQ29yZUNvbXBvbmVudHNJY29uID0gQ29yZUNvbXBvbmVudHNJY29uLlN0b2NrO1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uRG9jdW1lbnRzOiBDb3JlQ29tcG9uZW50c0ljb24gPSBDb3JlQ29tcG9uZW50c0ljb24uRG9jdW1lbnRzO1xyXG5cclxuICBBcnJvd1BvaW50UmlnaHRcclxuXHJcbiAgcHVibGljIHRlc3Q6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHRyYW5zYWN0aW9uTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbztcclxuXHJcbiAgcHVibGljIGRlZmF1bHRTaWRlYmFyOiBTaWRlYmFyID0gbmV3IFNpZGViYXIoe1xyXG4gICAgd2lkdGg6IFwiMzIwcHhcIixcclxuICAgIHR5cGU6IFwiQXV0b1wiLFxyXG4gICAgaXNPcGVuOiBmYWxzZSxcclxuICAgIHBvc2l0aW9uOiBcIlJpZ2h0XCIsXHJcbiAgICB0YXJnZXQ6IFwiI2FwcC1tb2R1bGUtc2lkZWJhci1yaWdodFwiXHJcbiAgfSk7XHJcblxyXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBfZXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICAgIHN1cGVyKHNlcnZpY2UpO1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UudHJhbnNhY3Rpb25MaW5lQ2xpY2tlZC5zdWJzY3JpYmUoKHRyYW5zYWN0aW9uTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbykgPT4ge1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lID0gdHJhbnNhY3Rpb25MaW5lO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFNpZGViYXIuc2hvdygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdFNpZGViYXIuYXBwZW5kVG8oXCIjZGVmYXVsdC1zaWRlYmFyXCIpO1xyXG4gICAgICB0aGlzLnNpZGViYXJDbG9zZUNsaWNrKCk7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgc2lkZWJhckNsb3NlQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlZmF1bHRTaWRlYmFyLmhpZGUoKTtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5yaWdodFNpZGViYXJDbG9zZS5uZXh0KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|