@colijnit/transaction 12.1.2 → 12.1.6

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 (66) hide show
  1. package/app/component/checkout/{retail-transaction-checkout/retail-transaction-checkout.component.d.ts → checkout-transaction/checkout-transaction.component.d.ts} +1 -1
  2. package/app/component/checkout/ione-checkout.component.d.ts +0 -2
  3. package/app/component/core/base/transaction-base.component.d.ts +10 -0
  4. package/app/component/{shopping-cart → core}/characteristic-answer/characteristic-answer.component.d.ts +0 -0
  5. package/app/component/{common → core}/icon/icon.component.d.ts +0 -0
  6. package/app/component/{common → core}/image-display/image-display.component.d.ts +0 -0
  7. package/app/component/{common → core}/no-image-display/no-image-display.component.d.ts +0 -0
  8. package/app/component/service-order/service-order.component.d.ts +13 -9
  9. package/app/component/service-order/transaction-article-text/transaction-article-text.component.d.ts +22 -13
  10. package/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +23 -0
  11. package/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.d.ts +19 -0
  12. package/app/component/service-order/transaction-manager/transaction-manager.component.d.ts +64 -0
  13. package/app/component/service-order/warehouse/warehouse.component.d.ts +35 -0
  14. package/app/component/shopping-cart/ione-shopping-cart.component.d.ts +1 -1
  15. package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +2 -2
  16. package/{enum → app/enum}/position-grid-row.enum.d.ts +0 -0
  17. package/app/model/standard-text.d.ts +5 -0
  18. package/app/model/transaction-add-text-line-request.d.ts +9 -0
  19. package/app/service/dictionary.service.d.ts +1 -0
  20. package/app/service/ione-connector-adapter.service.d.ts +3 -0
  21. package/app/service/transaction-event.service.d.ts +1 -1
  22. package/app/service/transaction.service.d.ts +18 -8
  23. package/bundles/colijnit-transaction.umd.js +1535 -533
  24. package/bundles/colijnit-transaction.umd.js.map +1 -1
  25. package/colijnit-transaction.d.ts +45 -41
  26. package/colijnit-transaction.metadata.json +1 -1
  27. package/esm2015/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +2 -2
  28. package/esm2015/app/component/checkout/checkout-transaction/checkout-transaction.component.js +53 -0
  29. package/esm2015/app/component/checkout/ione-checkout.component.js +2 -4
  30. package/esm2015/app/component/checkout/ione-checkout.module.js +5 -3
  31. package/esm2015/app/component/core/base/transaction-base.component.js +35 -12
  32. package/esm2015/app/component/core/characteristic-answer/characteristic-answer.component.js +100 -0
  33. package/esm2015/app/component/core/core.module.js +4 -4
  34. package/esm2015/app/component/{common → core}/icon/icon.component.js +1 -1
  35. package/esm2015/app/component/core/image-display/image-display.component.js +41 -0
  36. package/esm2015/app/component/core/no-image-display/no-image-display.component.js +26 -0
  37. package/esm2015/app/component/service-order/ione-service-order-module.js +15 -4
  38. package/esm2015/app/component/service-order/service-order.component.js +53 -20
  39. package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +107 -150
  40. package/esm2015/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.js +105 -0
  41. package/esm2015/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.js +73 -0
  42. package/esm2015/app/component/service-order/transaction-manager/transaction-manager.component.js +314 -0
  43. package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +2 -2
  44. package/esm2015/app/component/service-order/warehouse/warehouse.component.js +133 -0
  45. package/esm2015/app/component/shopping-cart/ione-shopping-cart.component.js +2 -2
  46. package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +3 -3
  47. package/esm2015/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +3 -3
  48. package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +1 -1
  49. package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +3 -3
  50. package/esm2015/app/enum/position-grid-row.enum.js +6 -0
  51. package/esm2015/app/model/standard-text.js +3 -0
  52. package/esm2015/app/model/transaction-add-text-line-request.js +11 -0
  53. package/esm2015/app/service/dictionary.service.js +20 -9
  54. package/esm2015/app/service/ione-connector-adapter.service.js +30 -1
  55. package/esm2015/app/service/transaction-event.service.js +1 -1
  56. package/esm2015/app/service/transaction.service.js +98 -23
  57. package/esm2015/assets/dictionary/text.properties.js +13 -1
  58. package/esm2015/colijnit-transaction.js +46 -42
  59. package/fesm2015/colijnit-transaction.js +1512 -757
  60. package/fesm2015/colijnit-transaction.js.map +1 -1
  61. package/package.json +4 -3
  62. package/esm2015/app/component/checkout/retail-transaction-checkout/retail-transaction-checkout.component.js +0 -53
  63. package/esm2015/app/component/common/image-display/image-display.component.js +0 -41
  64. package/esm2015/app/component/common/no-image-display/no-image-display.component.js +0 -26
  65. package/esm2015/app/component/shopping-cart/characteristic-answer/characteristic-answer.component.js +0 -99
  66. package/esm2015/enum/position-grid-row.enum.js +0 -6
@@ -0,0 +1,314 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Component, EventEmitter, Output, ViewChild } from "@angular/core";
3
+ import { TransactionService } from "../../../service/transaction.service";
4
+ import { NumberUtils } from "@colijnit/transactionapi/build/utils/number-utils";
5
+ import { TransactionEventService } from "../../../service/transaction-event.service";
6
+ import { ResolvePendingLineReasonRequest } from "@colijnit/transactionapi/build/model/resolve-pending-reason-request.bo";
7
+ import { TransactionLineType } from "@colijnit/transactionapi/build/enum/transaction-line-type.enum";
8
+ import { PendingReasonType } from "@colijnit/transactionapi/build/enum/pending-reason-type.enum";
9
+ import { DictionaryService } from "../../../service/dictionary.service";
10
+ import { PositionGridRow } from "../../../enum/position-grid-row.enum";
11
+ import { TransactionBaseComponent } from "../../core/base/transaction-base.component";
12
+ import { PromptService } from "@colijnit/corecomponents_v12";
13
+ export class TransactionManagerComponent extends TransactionBaseComponent {
14
+ constructor(service, transactionEvents, promptService, _dictionaryService) {
15
+ super(service);
16
+ this.service = service;
17
+ this.transactionEvents = transactionEvents;
18
+ this.promptService = promptService;
19
+ this._dictionaryService = _dictionaryService;
20
+ this.linesChanged = new EventEmitter();
21
+ this.articleAdded = new EventEmitter();
22
+ this.columns = [];
23
+ this._inOutCollection = [];
24
+ this._showCharacteristic = false;
25
+ this._subs = [];
26
+ this._subs.push(this.service.transactionLoaded.subscribe((transactionInfoResponse) => {
27
+ if (transactionInfoResponse.isSuccess) {
28
+ this.transaction = transactionInfoResponse;
29
+ }
30
+ }));
31
+ }
32
+ get amountOfLines() {
33
+ return NumberUtils.NrOrDefault(this.service.articleAmount, 0);
34
+ }
35
+ get showCharacteristicDialog() {
36
+ return this._showCharacteristic;
37
+ }
38
+ set showCharacteristicDialog(value) {
39
+ this._showCharacteristic = value;
40
+ }
41
+ ngOnDestroy() {
42
+ this._subs.forEach(sub => sub.unsubscribe());
43
+ }
44
+ addArticleLine(transactionUuid, sku, amount, lineNr, beforeOrAfter) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ const goodId = yield this.service.getGoodIdFromArticleNr(sku);
47
+ if (goodId) {
48
+ yield this._loadArticle(goodId);
49
+ yield this._handleAddArticleLineAt(amount, lineNr, beforeOrAfter);
50
+ }
51
+ else {
52
+ this.promptService.showError(this._dictionaryService.get("ARTICLE_UNKNOWN"));
53
+ }
54
+ });
55
+ }
56
+ changeLineSequence(fromIndex, toIndex) {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ let fromLine = this._getTransactionLineInfoByIndex(fromIndex);
59
+ let toLine = this._getTransactionLineInfoByIndex(toIndex);
60
+ let aboveLineNr;
61
+ let belowLineNr;
62
+ if (fromIndex > toIndex) {
63
+ aboveLineNr = toLine.lineNr;
64
+ }
65
+ else {
66
+ belowLineNr = toLine.lineNr;
67
+ }
68
+ yield this.service.changeLineSequence(fromLine.uuid, aboveLineNr, belowLineNr, false)
69
+ .then((value) => {
70
+ this.handleLineOperationStatus(value);
71
+ }, (error) => this.promptService.showError(error));
72
+ });
73
+ }
74
+ showStockManager(line) {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ this.warehouse.selectedWarehouseNr = line.warehouseNumber;
77
+ this.warehouse.amount = line.amount;
78
+ this.warehouse.commissionCode = line.commissionCode;
79
+ this.warehouse.message = this.currentOperationStatus.pendingReason;
80
+ this.warehouse.show(line.articleNumber);
81
+ });
82
+ }
83
+ warehouseOkClick() {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ if (this.warehouse.commissionCode !== undefined) {
86
+ this.currentReason.commissionCode = this.warehouse.commissionCode;
87
+ }
88
+ if (this.warehouse.amount !== undefined) {
89
+ this.currentReason.quantity = this.warehouse.amount;
90
+ }
91
+ if (this.warehouse.selectedWarehouseNr !== undefined) {
92
+ this.currentReason.warehouseNr = this.warehouse.selectedWarehouseNr;
93
+ }
94
+ if (this.currentReason) {
95
+ yield this.service.resolvePendingLineReason(this.currentReason, false)
96
+ .then((value) => {
97
+ this.handleLineOperationStatus(value);
98
+ });
99
+ }
100
+ });
101
+ }
102
+ warehouseCancelClick() {
103
+ return __awaiter(this, void 0, void 0, function* () {
104
+ if (this.currentReason) {
105
+ yield this._cancelArticle(this.currentReason.lineUuid);
106
+ }
107
+ });
108
+ }
109
+ handleCharacteristicAnswerOkClick(answer) {
110
+ return __awaiter(this, void 0, void 0, function* () {
111
+ this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
112
+ this.currentReason.textualUserInput = answer;
113
+ yield this.service.resolvePendingLineReason(this.currentReason, false)
114
+ .then((value) => {
115
+ this.handleLineOperationStatus(value);
116
+ });
117
+ });
118
+ }
119
+ _handleAddArticle(amount = 1) {
120
+ return __awaiter(this, void 0, void 0, function* () {
121
+ yield this.service.addTransactionLine(TransactionLineType.ArticleLine, this.newArticleNr, amount, this.newArticle.standardWareHouse, this.newArticle.commissionCode, false, 0, 0, false)
122
+ .then((value) => {
123
+ this.handleLineOperationStatus(value);
124
+ }, (error) => this.promptService.showError(error));
125
+ });
126
+ }
127
+ _handleAddArticleLineAt(amount, lineNr, beforeOrAfter) {
128
+ return __awaiter(this, void 0, void 0, function* () {
129
+ yield this.service.addArticleToTransaction(this.transactionInfo.uuid, this.newArticleNr, amount, this.newArticle.standardWareHouse, this.newArticle.commissionCode, false, beforeOrAfter === PositionGridRow.Before ? lineNr : undefined, beforeOrAfter === PositionGridRow.After ? lineNr : undefined)
130
+ .then((value) => {
131
+ this.lineOperationStatuses = value.lineOperationStatuses;
132
+ this.handleLineOperationStatus(value);
133
+ }, (error) => this.promptService.showError(error));
134
+ });
135
+ }
136
+ _getWareHouseNoFromArticle() {
137
+ if (this.newArticle !== undefined && this.newArticle.stockLocations !== undefined && this.newArticle.stockLocations.length) {
138
+ return this.newArticle.stockLocations[0].warehouseNr;
139
+ }
140
+ return 0;
141
+ }
142
+ isLineOperationStatus(lineOperationStatuses) {
143
+ this.currentOperationStatus = this.service.pendingLineOperationStatus(lineOperationStatuses);
144
+ if (this.currentOperationStatus !== undefined) {
145
+ return true;
146
+ }
147
+ return false;
148
+ }
149
+ _confirmAction() {
150
+ return __awaiter(this, void 0, void 0, function* () {
151
+ this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
152
+ const pendingReasonText = yield this._getPendingReasonText(this.currentOperationStatus.pendingReason);
153
+ this.currentReason.confirmation = yield this.promptService.showYesNo(pendingReasonText, " ");
154
+ yield this.service.resolvePendingLineReason(this.currentReason, false)
155
+ .then((value) => {
156
+ this.handleLineOperationStatus(value);
157
+ });
158
+ });
159
+ }
160
+ _showInformation() {
161
+ return __awaiter(this, void 0, void 0, function* () {
162
+ this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
163
+ const pendingReasonText = yield this._getPendingReasonText(this.currentOperationStatus.pendingReason);
164
+ yield this.promptService.showOkModal(pendingReasonText, " ");
165
+ yield this.service.resolvePendingLineReason(this.currentReason, false)
166
+ .then((value) => {
167
+ this.handleLineOperationStatus(value);
168
+ });
169
+ });
170
+ }
171
+ _getPendingReasonText(pendingReason) {
172
+ return __awaiter(this, void 0, void 0, function* () {
173
+ if (pendingReason === "ARTICLE_IS_DISCONTINUED_DO_YOU_WANT_TO_CONTINUE_PLEASE_CONFIRM") {
174
+ return this._dictionaryService.get("ARTICLE_IN_OUT_COLLECTION").replace("|~", yield this.getInOutCollectionOfArticle());
175
+ }
176
+ return this._dictionaryService.get(pendingReason);
177
+ });
178
+ }
179
+ getInOutCollectionOfArticle() {
180
+ return __awaiter(this, void 0, void 0, function* () {
181
+ if (!this._inOutCollection.length) {
182
+ this._inOutCollection = yield this.service.getInOutCollection("NL");
183
+ }
184
+ const domainValue = this._inOutCollection.find(element => element.code === this.newArticle.inOutCollection);
185
+ if (domainValue) {
186
+ return domainValue.description;
187
+ }
188
+ return "";
189
+ });
190
+ }
191
+ handleLineOperationStatus(lineOperationResponse) {
192
+ return __awaiter(this, void 0, void 0, function* () {
193
+ if (this.isLineOperationStatus(lineOperationResponse.lineOperationStatuses)) {
194
+ this.transaction = lineOperationResponse;
195
+ this.articleAdded.emit(this.transaction);
196
+ yield this._handlePendingLine(this.currentOperationStatus.uuid).then();
197
+ }
198
+ else {
199
+ yield this._saveTransaction();
200
+ }
201
+ });
202
+ }
203
+ _handlePendingLine(lineUuid) {
204
+ return __awaiter(this, void 0, void 0, function* () {
205
+ this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
206
+ this.currentPendingLine = this.transactionLines.find(l => l.uuid === lineUuid);
207
+ switch (this.currentOperationStatus.pendingReasonType) {
208
+ case PendingReasonType.ABORTED:
209
+ case PendingReasonType.CANCELLED:
210
+ yield this._cancelArticle(this.currentPendingLine.uuid);
211
+ break;
212
+ case PendingReasonType.CONFIRMATION_NEEDED:
213
+ yield this._confirmAction();
214
+ break;
215
+ case PendingReasonType.INVALID_LOGISTICS:
216
+ yield this.showStockManager(this.currentPendingLine);
217
+ break;
218
+ case PendingReasonType.NON_CRITICAL_DISCONTINUATION:
219
+ yield this._showInformation();
220
+ break;
221
+ case PendingReasonType.CHARACTERISTICS_ANSWER_NEEDED:
222
+ this.CharacteristicsAnswerNeeded();
223
+ break;
224
+ case PendingReasonType.NONE:
225
+ default:
226
+ this.currentReason = undefined;
227
+ this.currentPendingLine = undefined;
228
+ break;
229
+ }
230
+ });
231
+ }
232
+ _saveTransaction() {
233
+ return __awaiter(this, void 0, void 0, function* () {
234
+ if (this.transactionInfo) {
235
+ const success = yield this.service.saveTransactionByUuid(this.transactionInfo.uuid);
236
+ if (!success) {
237
+ this.promptService.showError("Transaction could not be saved!");
238
+ }
239
+ }
240
+ });
241
+ }
242
+ _loadArticle(goodId) {
243
+ return __awaiter(this, void 0, void 0, function* () {
244
+ this.newArticle = yield this.service.getArticleFullObject(goodId);
245
+ this.newArticleNr = this.newArticle.articleNr;
246
+ });
247
+ }
248
+ addEmailAddressToTransaction(emailAddress) {
249
+ this.service.emailAddress = emailAddress;
250
+ }
251
+ CharacteristicsAnswerNeeded() {
252
+ this.characteristicAnswer.question = this.currentOperationStatus.characteristic.question;
253
+ this.characteristicAnswer.title = this.newArticle.description;
254
+ this.characteristicAnswer.value = this.currentOperationStatus.characteristic.value;
255
+ this.characteristicAnswer.characteristics = this.currentOperationStatus.characteristic.transactionLineCharacteristicChoices;
256
+ setTimeout(() => {
257
+ this.characteristicAnswer.open();
258
+ // eslint-disable-next-line no-magic-numbers
259
+ }, 1000);
260
+ }
261
+ _getTransactionLineInfoByIndex(index) {
262
+ if (index >= 0 && index < this.transactionLines.length) {
263
+ return this.service.currentLines[index];
264
+ }
265
+ }
266
+ _cancelArticle(uuid) {
267
+ return __awaiter(this, void 0, void 0, function* () {
268
+ yield this.service.cancelAddTransactionLine(uuid, false)
269
+ .then((response) => {
270
+ this.transaction = response;
271
+ this.articleAdded.emit(response);
272
+ });
273
+ });
274
+ }
275
+ addTextLineToTransaction(transactionUuid, text, lineNr, beforeOrAfter) {
276
+ return __awaiter(this, void 0, void 0, function* () {
277
+ yield this.service.addTextLineToTransaction(transactionUuid, 0, text, 0, false, lineNr, beforeOrAfter === PositionGridRow.Before ? lineNr : undefined, beforeOrAfter === PositionGridRow.After ? lineNr : undefined)
278
+ .then((response) => {
279
+ this.transaction = response;
280
+ this.articleAdded.emit(response);
281
+ }, (error) => this.promptService.showError(error));
282
+ });
283
+ }
284
+ }
285
+ TransactionManagerComponent.decorators = [
286
+ { type: Component, args: [{
287
+ // eslint-disable-next-line @angular-eslint/component-selector
288
+ selector: "transaction-manager",
289
+ template: `
290
+ <warehouse #warehouse
291
+ (okClick)="warehouseOkClick()"
292
+ (cancelClick)="warehouseCancelClick()"
293
+ ></warehouse>
294
+ <characteristic-answer
295
+ #characteristicAnswer
296
+ (okClick)="handleCharacteristicAnswerOkClick($event)"
297
+ ></characteristic-answer>
298
+ `,
299
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center,.warehouse-line-container{display:flex}.flex-center,.warehouse-line-container{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field,.commission-fields{margin-left:11px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}::ng-deep #warehouseDialog{align-items:center;max-height:100%}::ng-deep #warehouseDialog ::ng-deep co-form{height:100%;width:500px}::ng-deep #warehouseDialog ::ng-deep .form-content{height:calc(100% - 80px);width:100%}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field{height:20px;word-wrap:break-word;white-space:normal}co-button:not(:last-child){margin-right:10px}.commission-fields{justify-content:space-between;margin:10px 0}.warehouse-description-item{width:15rem}.warehouse-nr-item{width:5rem}co-input-number-picker co-button{max-width:20px}\n"]
300
+ },] }
301
+ ];
302
+ TransactionManagerComponent.ctorParameters = () => [
303
+ { type: TransactionService },
304
+ { type: TransactionEventService },
305
+ { type: PromptService },
306
+ { type: DictionaryService }
307
+ ];
308
+ TransactionManagerComponent.propDecorators = {
309
+ warehouse: [{ type: ViewChild, args: ["warehouse",] }],
310
+ characteristicAnswer: [{ type: ViewChild, args: ["characteristicAnswer",] }],
311
+ linesChanged: [{ type: Output }],
312
+ articleAdded: [{ type: Output }]
313
+ };
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbWFuYWdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudC9zZXJ2aWNlLW9yZGVyL3RyYW5zYWN0aW9uLW1hbmFnZXIvdHJhbnNhY3Rpb24tbWFuYWdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBRTlFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBRW5GLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ3ZILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBR25HLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBRS9GLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRXRFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUVyRSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUVwRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFrQjNELE1BQU0sT0FBTywyQkFBNEIsU0FBUSx3QkFBd0I7SUF3Q3ZFLFlBQ1MsT0FBMkIsRUFDM0IsaUJBQTBDLEVBQzFDLGFBQTRCLEVBQzVCLGtCQUFxQztRQUU1QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFMUixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixzQkFBaUIsR0FBakIsaUJBQWlC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QUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQ0YsQ0FBQztRQUNOLENBQUM7S0FBQTtJQUVZLHdCQUF3QixDQUFDLGVBQXVCLEVBQUUsSUFBWSxFQUFFLE1BQWMsRUFBRSxhQUE4Qjs7WUFDekgsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLGVBQWUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUNwRixhQUFhLEtBQUssZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQzdELGFBQWEsS0FBSyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztpQkFDNUQsSUFBSSxDQUFDLENBQUMsUUFBK0IsRUFBRSxFQUFFO2dCQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkMsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RELENBQUM7S0FBQTs7O1lBelVGLFNBQVMsU0FBQztnQkFDVCw4REFBOEQ7Z0JBQzlELFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLFFBQVEsRUFBRTs7Ozs7Ozs7O0dBU1Q7O2FBRUY7OztZQWxDTyxrQkFBa0I7WUFHbEIsdUJBQXVCO1lBY3ZCLGFBQWE7WUFOYixpQkFBaUI7Ozt3QkF5QnRCLFNBQVMsU0FBQyxXQUFXO21DQUdyQixTQUFTLFNBQUMsc0JBQXNCOzJCQUdoQyxNQUFNOzJCQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7TnVtYmVyVXRpbHN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvdXRpbHMvbnVtYmVyLXV0aWxzXCI7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcbmltcG9ydCB7UmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZXNvbHZlLXBlbmRpbmctcmVhc29uLXJlcXVlc3QuYm9cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lVHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWxpbmUtdHlwZS5lbnVtXCI7XG5pbXBvcnQge0NvRG9tYWluVmFsdWV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY28tZG9tYWluLXZhbHVlLmJvXCI7XG5pbXBvcnQge0xpbmVPcGVyYXRpb25TdGF0dXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tc3RhdHVzLmJvXCI7XG5pbXBvcnQge1BlbmRpbmdSZWFzb25UeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcGVuZGluZy1yZWFzb24tdHlwZS5lbnVtXCI7XG5pbXBvcnQge0FydGljbGVGdWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZnVsbC1vYmplY3RcIjtcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xuaW1wb3J0IHtMaW5lT3BlcmF0aW9uUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tcmVzcG9uc2UuYm9cIjtcbmltcG9ydCB7UG9zaXRpb25HcmlkUm93fSBmcm9tIFwiLi4vLi4vLi4vZW51bS9wb3NpdGlvbi1ncmlkLXJvdy5lbnVtXCI7XG5pbXBvcnQge0NoYXJhY3RlcmlzdGljQW5zd2VyQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vY29yZS9jaGFyYWN0ZXJpc3RpYy1hbnN3ZXIvY2hhcmFjdGVyaXN0aWMtYW5zd2VyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gXCIuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnRcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xuaW1wb3J0IHtQcm9tcHRTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xuaW1wb3J0IHtXYXJlaG91c2VDb21wb25lbnR9IGZyb20gXCIuLi93YXJlaG91c2Uvd2FyZWhvdXNlLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6IFwidHJhbnNhY3Rpb24tbWFuYWdlclwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx3YXJlaG91c2UgI3dhcmVob3VzZVxuICAgICAgICAob2tDbGljayk9XCJ3YXJlaG91c2VPa0NsaWNrKClcIlxuICAgICAgICAoY2FuY2VsQ2xpY2spPVwid2FyZWhvdXNlQ2FuY2VsQ2xpY2soKVwiXG4gICAgPjwvd2FyZWhvdXNlPlxuICAgIDxjaGFyYWN0ZXJpc3RpYy1hbnN3ZXJcbiAgICAgICNjaGFyYWN0ZXJpc3RpY0Fuc3dlclxuICAgICAgKG9rQ2xpY2spPVwiaGFuZGxlQ2hhcmFjdGVyaXN0aWNBbnN3ZXJPa0NsaWNrKCRldmVudClcIlxuICAgID48L2NoYXJhY3RlcmlzdGljLWFuc3dlcj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbXCIuL3RyYW5zYWN0aW9uLW1hbmFnZXIuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25NYW5hZ2VyQ29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZChcIndhcmVob3VzZVwiKVxuICBwdWJsaWMgd2FyZWhvdXNlOiBXYXJlaG91c2VDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChcImNoYXJhY3RlcmlzdGljQW5zd2VyXCIpXG4gIHB1YmxpYyBjaGFyYWN0ZXJpc3RpY0Fuc3dlcjogQ2hhcmFjdGVyaXN0aWNBbnN3ZXJDb21wb25lbnQ7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBsaW5lc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGFydGljbGVBZGRlZDogRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+KCk7XG5cbiAgcHVibGljIGdldCBhbW91bnRPZkxpbmVzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE51bWJlclV0aWxzLk5yT3JEZWZhdWx0KHRoaXMuc2VydmljZS5hcnRpY2xlQW1vdW50LCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2hvd0NoYXJhY3RlcmlzdGljRGlhbG9nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zaG93Q2hhcmFjdGVyaXN0aWM7XG4gIH1cblxuICBwdWJsaWMgc2V0IHNob3dDaGFyYWN0ZXJpc3RpY0RpYWxvZyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dDaGFyYWN0ZXJpc3RpYyA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIG5ld0FydGljbGVOcjogc3RyaW5nO1xuICBwdWJsaWMgbmV3QXJ0aWNsZTogQXJ0aWNsZUZ1bGxPYmplY3Q7XG4gIHB1YmxpYyBzZWxlY3RlZFdhcmVob3VzZU5yOiBudW1iZXI7XG4gIHB1YmxpYyBhbW91bnQ6IG51bWJlcjtcblxuICBwdWJsaWMgY29sdW1uczogYW55W10gPSBbXTtcblxuICBwdWJsaWMgY3VycmVudFBlbmRpbmdMaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvO1xuICBwdWJsaWMgY3VycmVudFJlYXNvbjogUmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdDtcblxuICBwcml2YXRlIGN1cnJlbnRPcGVyYXRpb25TdGF0dXM6IExpbmVPcGVyYXRpb25TdGF0dXM7XG4gIHByaXZhdGUgX2luT3V0Q29sbGVjdGlvbjogQ29Eb21haW5WYWx1ZVtdID0gW107XG4gIHByaXZhdGUgX3Nob3dDaGFyYWN0ZXJpc3RpYzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRzOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcbiAgICBwdWJsaWMgcHJvbXB0U2VydmljZTogUHJvbXB0U2VydmljZSxcbiAgICBwdWJsaWMgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoc2VydmljZSk7XG5cbiAgICB0aGlzLl9zdWJzLnB1c2goXG4gICAgICB0aGlzLnNlcnZpY2UudHJhbnNhY3Rpb25Mb2FkZWQuc3Vic2NyaWJlKCh0cmFuc2FjdGlvbkluZm9SZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLmlzU3VjY2Vzcykge1xuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbkluZm9SZXNwb25zZTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRBcnRpY2xlTGluZSh0cmFuc2FjdGlvblV1aWQ6IHN0cmluZywgc2t1OiBzdHJpbmcsIGFtb3VudDogbnVtYmVyLCBsaW5lTnI6IG51bWJlciwgYmVmb3JlT3JBZnRlcjogUG9zaXRpb25HcmlkUm93KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZ29vZElkOiBudW1iZXIgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0R29vZElkRnJvbUFydGljbGVOcihza3UpO1xuICAgIGlmIChnb29kSWQpIHtcbiAgICAgIGF3YWl0IHRoaXMuX2xvYWRBcnRpY2xlKGdvb2RJZCk7XG4gICAgICBhd2FpdCB0aGlzLl9oYW5kbGVBZGRBcnRpY2xlTGluZUF0KGFtb3VudCwgbGluZU5yLCBiZWZvcmVPckFmdGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9tcHRTZXJ2aWNlLnNob3dFcnJvcih0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJBUlRJQ0xFX1VOS05PV05cIikpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VMaW5lU2VxdWVuY2UoZnJvbUluZGV4OiBudW1iZXIsIHRvSW5kZXg6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGxldCBmcm9tTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyA9IHRoaXMuX2dldFRyYW5zYWN0aW9uTGluZUluZm9CeUluZGV4KGZyb21JbmRleClcbiAgICBsZXQgdG9MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvID0gdGhpcy5fZ2V0VHJhbnNhY3Rpb25MaW5lSW5mb0J5SW5kZXgodG9JbmRleCk7XG4gICAgbGV0IGFib3ZlTGluZU5yOiBudW1iZXI7XG4gICAgbGV0IGJlbG93TGluZU5yOiBudW1iZXI7XG5cbiAgICBpZiAoZnJvbUluZGV4ID4gdG9JbmRleCkge1xuICAgICAgYWJvdmVMaW5lTnIgPSB0b0xpbmUubGluZU5yO1xuICAgIH0gZWxzZSB7XG4gICAgICBiZWxvd0xpbmVOciA9IHRvTGluZS5saW5lTnI7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmNoYW5nZUxpbmVTZXF1ZW5jZShmcm9tTGluZS51dWlkLCBhYm92ZUxpbmVOciwgYmVsb3dMaW5lTnIsIGZhbHNlKVxuICAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXModmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHRoaXMucHJvbXB0U2VydmljZS5zaG93RXJyb3IoZXJyb3IpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzaG93U3RvY2tNYW5hZ2VyKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLndhcmVob3VzZS5zZWxlY3RlZFdhcmVob3VzZU5yID0gbGluZS53YXJlaG91c2VOdW1iZXI7XG4gICAgdGhpcy53YXJlaG91c2UuYW1vdW50ID0gbGluZS5hbW91bnQ7XG4gICAgdGhpcy53YXJlaG91c2UuY29tbWlzc2lvbkNvZGUgPSBsaW5lLmNvbW1pc3Npb25Db2RlO1xuICAgIHRoaXMud2FyZWhvdXNlLm1lc3NhZ2UgPSB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbjtcbiAgICB0aGlzLndhcmVob3VzZS5zaG93KGxpbmUuYXJ0aWNsZU51bWJlcik7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgd2FyZWhvdXNlT2tDbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy53YXJlaG91c2UuY29tbWlzc2lvbkNvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jdXJyZW50UmVhc29uLmNvbW1pc3Npb25Db2RlID0gdGhpcy53YXJlaG91c2UuY29tbWlzc2lvbkNvZGU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMud2FyZWhvdXNlLmFtb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmN1cnJlbnRSZWFzb24ucXVhbnRpdHkgPSB0aGlzLndhcmVob3VzZS5hbW91bnQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMud2FyZWhvdXNlLnNlbGVjdGVkV2FyZWhvdXNlTnIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jdXJyZW50UmVhc29uLndhcmVob3VzZU5yID0gdGhpcy53YXJlaG91c2Uuc2VsZWN0ZWRXYXJlaG91c2VOcjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jdXJyZW50UmVhc29uKSB7XG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbiwgZmFsc2UpXG4gICAgICAgIC50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHdhcmVob3VzZUNhbmNlbENsaWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmN1cnJlbnRSZWFzb24pIHtcbiAgICAgIGF3YWl0IHRoaXMuX2NhbmNlbEFydGljbGUodGhpcy5jdXJyZW50UmVhc29uLmxpbmVVdWlkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaGFuZGxlQ2hhcmFjdGVyaXN0aWNBbnN3ZXJPa0NsaWNrKGFuc3dlcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jdXJyZW50UmVhc29uID0gbmV3IFJlc29sdmVQZW5kaW5nTGluZVJlYXNvblJlcXVlc3QodGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnV1aWQsIHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uLCB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpO1xuICAgIHRoaXMuY3VycmVudFJlYXNvbi50ZXh0dWFsVXNlcklucHV0ID0gYW5zd2VyO1xuICAgIGF3YWl0IHRoaXMuc2VydmljZS5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24odGhpcy5jdXJyZW50UmVhc29uLCBmYWxzZSlcbiAgICAgIC50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlTGluZU9wZXJhdGlvblN0YXR1cyh2YWx1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2hhbmRsZUFkZEFydGljbGUoYW1vdW50OiBudW1iZXIgPSAxKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmFkZFRyYW5zYWN0aW9uTGluZShUcmFuc2FjdGlvbkxpbmVUeXBlLkFydGljbGVMaW5lLFxuICAgICAgdGhpcy5uZXdBcnRpY2xlTnIsXG4gICAgICBhbW91bnQsXG4gICAgICB0aGlzLm5ld0FydGljbGUuc3RhbmRhcmRXYXJlSG91c2UsXG4gICAgICB0aGlzLm5ld0FydGljbGUuY29tbWlzc2lvbkNvZGUsXG4gICAgICBmYWxzZSxcbiAgICAgIDAsXG4gICAgICAwLFxuICAgICAgZmFsc2UpXG4gICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlTGluZU9wZXJhdGlvblN0YXR1cyh2YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcikgPT4gdGhpcy5wcm9tcHRTZXJ2aWNlLnNob3dFcnJvcihlcnJvcikpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlQWRkQXJ0aWNsZUxpbmVBdChhbW91bnQ6IG51bWJlciwgbGluZU5yOiBudW1iZXIsIGJlZm9yZU9yQWZ0ZXI6IFBvc2l0aW9uR3JpZFJvdyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc2VydmljZS5hZGRBcnRpY2xlVG9UcmFuc2FjdGlvbih0aGlzLnRyYW5zYWN0aW9uSW5mby51dWlkLFxuICAgICAgdGhpcy5uZXdBcnRpY2xlTnIsXG4gICAgICBhbW91bnQsXG4gICAgICB0aGlzLm5ld0FydGljbGUuc3RhbmRhcmRXYXJlSG91c2UsXG4gICAgICB0aGlzLm5ld0FydGljbGUuY29tbWlzc2lvbkNvZGUsXG4gICAgICBmYWxzZSxcbiAgICAgIGJlZm9yZU9yQWZ0ZXIgPT09IFBvc2l0aW9uR3JpZFJvdy5CZWZvcmUgPyBsaW5lTnIgOiB1bmRlZmluZWQsXG4gICAgICBiZWZvcmVPckFmdGVyID09PSBQb3NpdGlvbkdyaWRSb3cuQWZ0ZXIgPyBsaW5lTnIgOiB1bmRlZmluZWQpXG4gICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMubGluZU9wZXJhdGlvblN0YXR1c2VzID0gdmFsdWUubGluZU9wZXJhdGlvblN0YXR1c2VzO1xuICAgICAgICAgIHRoaXMuaGFuZGxlTGluZU9wZXJhdGlvblN0YXR1cyh2YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcikgPT4gdGhpcy5wcm9tcHRTZXJ2aWNlLnNob3dFcnJvcihlcnJvcikpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0V2FyZUhvdXNlTm9Gcm9tQXJ0aWNsZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLm5ld0FydGljbGUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLm5ld0FydGljbGUuc3RvY2tMb2NhdGlvbnMgIT09IHVuZGVmaW5lZCAmJiB0aGlzLm5ld0FydGljbGUuc3RvY2tMb2NhdGlvbnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcy5uZXdBcnRpY2xlLnN0b2NrTG9jYXRpb25zWzBdLndhcmVob3VzZU5yO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHB1YmxpYyBpc0xpbmVPcGVyYXRpb25TdGF0dXMobGluZU9wZXJhdGlvblN0YXR1c2VzOiBMaW5lT3BlcmF0aW9uU3RhdHVzW10pOiBib29sZWFuIHtcbiAgICB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMgPSB0aGlzLnNlcnZpY2UucGVuZGluZ0xpbmVPcGVyYXRpb25TdGF0dXMobGluZU9wZXJhdGlvblN0YXR1c2VzKTtcbiAgICBpZiAodGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9jb25maXJtQWN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY3VycmVudFJlYXNvbiA9IG5ldyBSZXNvbHZlUGVuZGluZ0xpbmVSZWFzb25SZXF1ZXN0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy51dWlkLCB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKTtcbiAgICBjb25zdCBwZW5kaW5nUmVhc29uVGV4dDogc3RyaW5nID0gYXdhaXQgdGhpcy5fZ2V0UGVuZGluZ1JlYXNvblRleHQodGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24pO1xuICAgIHRoaXMuY3VycmVudFJlYXNvbi5jb25maXJtYXRpb24gPSBhd2FpdCB0aGlzLnByb21wdFNlcnZpY2Uuc2hvd1llc05vKHBlbmRpbmdSZWFzb25UZXh0LCBcIiBcIik7XG4gICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbih0aGlzLmN1cnJlbnRSZWFzb24sIGZhbHNlKVxuICAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKHZhbHVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfc2hvd0luZm9ybWF0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY3VycmVudFJlYXNvbiA9IG5ldyBSZXNvbHZlUGVuZGluZ0xpbmVSZWFzb25SZXF1ZXN0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy51dWlkLCB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKTtcbiAgICBjb25zdCBwZW5kaW5nUmVhc29uVGV4dDogc3RyaW5nID0gYXdhaXQgdGhpcy5fZ2V0UGVuZGluZ1JlYXNvblRleHQodGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24pO1xuICAgIGF3YWl0IHRoaXMucHJvbXB0U2VydmljZS5zaG93T2tNb2RhbChwZW5kaW5nUmVhc29uVGV4dCwgXCIgXCIpO1xuICAgIGF3YWl0IHRoaXMuc2VydmljZS5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24odGhpcy5jdXJyZW50UmVhc29uLCBmYWxzZSlcbiAgICAgIC50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlTGluZU9wZXJhdGlvblN0YXR1cyh2YWx1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2dldFBlbmRpbmdSZWFzb25UZXh0KHBlbmRpbmdSZWFzb246IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKHBlbmRpbmdSZWFzb24gPT09IFwiQVJUSUNMRV9JU19ESVNDT05USU5VRURfRE9fWU9VX1dBTlRfVE9fQ09OVElOVUVfUExFQVNFX0NPTkZJUk1cIikge1xuICAgICAgcmV0dXJuIHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIkFSVElDTEVfSU5fT1VUX0NPTExFQ1RJT05cIikucmVwbGFjZShcInx+XCIsIGF3YWl0IHRoaXMuZ2V0SW5PdXRDb2xsZWN0aW9uT2ZBcnRpY2xlKCkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KHBlbmRpbmdSZWFzb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRJbk91dENvbGxlY3Rpb25PZkFydGljbGUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoIXRoaXMuX2luT3V0Q29sbGVjdGlvbi5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX2luT3V0Q29sbGVjdGlvbiA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRJbk91dENvbGxlY3Rpb24oXCJOTFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBkb21haW5WYWx1ZTogQ29Eb21haW5WYWx1ZSA9IHRoaXMuX2luT3V0Q29sbGVjdGlvbi5maW5kKGVsZW1lbnQgPT4gZWxlbWVudC5jb2RlID09PSB0aGlzLm5ld0FydGljbGUuaW5PdXRDb2xsZWN0aW9uKTtcbiAgICBpZiAoZG9tYWluVmFsdWUpIHtcbiAgICAgIHJldHVybiBkb21haW5WYWx1ZS5kZXNjcmlwdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaGFuZGxlTGluZU9wZXJhdGlvblN0YXR1cyhsaW5lT3BlcmF0aW9uUmVzcG9uc2U6IExpbmVPcGVyYXRpb25SZXNwb25zZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmlzTGluZU9wZXJhdGlvblN0YXR1cyhsaW5lT3BlcmF0aW9uUmVzcG9uc2UubGluZU9wZXJhdGlvblN0YXR1c2VzKSkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbiA9IGxpbmVPcGVyYXRpb25SZXNwb25zZTtcbiAgICAgIHRoaXMuYXJ0aWNsZUFkZGVkLmVtaXQodGhpcy50cmFuc2FjdGlvbik7XG4gICAgICBhd2FpdCB0aGlzLl9oYW5kbGVQZW5kaW5nTGluZSh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMudXVpZCkudGhlbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB0aGlzLl9zYXZlVHJhbnNhY3Rpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9oYW5kbGVQZW5kaW5nTGluZShsaW5lVXVpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jdXJyZW50UmVhc29uID0gbmV3IFJlc29sdmVQZW5kaW5nTGluZVJlYXNvblJlcXVlc3QodGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnV1aWQsIHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uLCB0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpO1xuICAgIHRoaXMuY3VycmVudFBlbmRpbmdMaW5lID0gdGhpcy50cmFuc2FjdGlvbkxpbmVzLmZpbmQobCA9PiBsLnV1aWQgPT09IGxpbmVVdWlkKTtcblxuICAgIHN3aXRjaCAodGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKSB7XG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkFCT1JURUQ6XG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkNBTkNFTExFRDpcbiAgICAgICAgYXdhaXQgdGhpcy5fY2FuY2VsQXJ0aWNsZSh0aGlzLmN1cnJlbnRQZW5kaW5nTGluZS51dWlkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkNPTkZJUk1BVElPTl9ORUVERUQ6XG4gICAgICAgIGF3YWl0IHRoaXMuX2NvbmZpcm1BY3Rpb24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLklOVkFMSURfTE9HSVNUSUNTOlxuICAgICAgICBhd2FpdCB0aGlzLnNob3dTdG9ja01hbmFnZXIodGhpcy5jdXJyZW50UGVuZGluZ0xpbmUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuTk9OX0NSSVRJQ0FMX0RJU0NPTlRJTlVBVElPTjpcbiAgICAgICAgYXdhaXQgdGhpcy5fc2hvd0luZm9ybWF0aW9uKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DSEFSQUNURVJJU1RJQ1NfQU5TV0VSX05FRURFRDpcbiAgICAgICAgdGhpcy5DaGFyYWN0ZXJpc3RpY3NBbnN3ZXJOZWVkZWQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLk5PTkU6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmN1cnJlbnRSZWFzb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuY3VycmVudFBlbmRpbmdMaW5lID0gdW5kZWZpbmVkO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9zYXZlVHJhbnNhY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25JbmZvKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnNhdmVUcmFuc2FjdGlvbkJ5VXVpZCh0aGlzLnRyYW5zYWN0aW9uSW5mby51dWlkKTtcbiAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICB0aGlzLnByb21wdFNlcnZpY2Uuc2hvd0Vycm9yKFwiVHJhbnNhY3Rpb24gY291bGQgbm90IGJlIHNhdmVkIVwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9sb2FkQXJ0aWNsZShnb29kSWQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubmV3QXJ0aWNsZSA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRBcnRpY2xlRnVsbE9iamVjdChnb29kSWQpO1xuICAgIHRoaXMubmV3QXJ0aWNsZU5yID0gdGhpcy5uZXdBcnRpY2xlLmFydGljbGVOcjtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRW1haWxBZGRyZXNzVG9UcmFuc2FjdGlvbihlbWFpbEFkZHJlc3M6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5lbWFpbEFkZHJlc3MgPSBlbWFpbEFkZHJlc3M7XG4gIH1cblxuICBwcml2YXRlIENoYXJhY3RlcmlzdGljc0Fuc3dlck5lZWRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYXJhY3RlcmlzdGljQW5zd2VyLnF1ZXN0aW9uID0gdGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLmNoYXJhY3RlcmlzdGljLnF1ZXN0aW9uO1xuICAgIHRoaXMuY2hhcmFjdGVyaXN0aWNBbnN3ZXIudGl0bGUgPSB0aGlzLm5ld0FydGljbGUuZGVzY3JpcHRpb247XG4gICAgdGhpcy5jaGFyYWN0ZXJpc3RpY0Fuc3dlci52YWx1ZSA9IHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5jaGFyYWN0ZXJpc3RpYy52YWx1ZTtcbiAgICB0aGlzLmNoYXJhY3RlcmlzdGljQW5zd2VyLmNoYXJhY3RlcmlzdGljcyA9IHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5jaGFyYWN0ZXJpc3RpYy50cmFuc2FjdGlvbkxpbmVDaGFyYWN0ZXJpc3RpY0Nob2ljZXM7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2hhcmFjdGVyaXN0aWNBbnN3ZXIub3BlbigpO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnNcbiAgICB9LCAxMDAwKTtcblxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VHJhbnNhY3Rpb25MaW5lSW5mb0J5SW5kZXgoaW5kZXg6IG51bWJlcik6IFRyYW5zYWN0aW9uTGluZUluZm8ge1xuICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgdGhpcy50cmFuc2FjdGlvbkxpbmVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5jdXJyZW50TGluZXNbaW5kZXhdXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfY2FuY2VsQXJ0aWNsZSh1dWlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UuY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKHV1aWQsIGZhbHNlKVxuICAgICAgLnRoZW4oKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb24gPSByZXNwb25zZTtcbiAgICAgICAgICB0aGlzLmFydGljbGVBZGRlZC5lbWl0KHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRUZXh0TGluZVRvVHJhbnNhY3Rpb24odHJhbnNhY3Rpb25VdWlkOiBzdHJpbmcsIHRleHQ6IHN0cmluZywgbGluZU5yOiBudW1iZXIsIGJlZm9yZU9yQWZ0ZXI6IFBvc2l0aW9uR3JpZFJvdyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc2VydmljZS5hZGRUZXh0TGluZVRvVHJhbnNhY3Rpb24odHJhbnNhY3Rpb25VdWlkLCAwLCB0ZXh0LCAwLCBmYWxzZSwgbGluZU5yLFxuICAgICAgYmVmb3JlT3JBZnRlciA9PT0gUG9zaXRpb25HcmlkUm93LkJlZm9yZSA/IGxpbmVOciA6IHVuZGVmaW5lZCxcbiAgICAgIGJlZm9yZU9yQWZ0ZXIgPT09IFBvc2l0aW9uR3JpZFJvdy5BZnRlciA/IGxpbmVOciA6IHVuZGVmaW5lZClcbiAgICAgIC50aGVuKChyZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbiA9IHJlc3BvbnNlO1xuICAgICAgICAgIHRoaXMuYXJ0aWNsZUFkZGVkLmVtaXQocmVzcG9uc2UpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHRoaXMucHJvbXB0U2VydmljZS5zaG93RXJyb3IoZXJyb3IpKTtcbiAgfVxufVxuIl19
@@ -12,7 +12,7 @@ export class TransactionOrderLinesComponent extends TransactionBaseComponent {
12
12
  this.createServiceClick = new EventEmitter();
13
13
  this.nothingSelected = true;
14
14
  this.columns = [];
15
- this.columns.push({ field: "articleNumber", headerText: this._dictionaryService.get("ARTICLE_NR"), allowFiltering: false }, { field: "goodDescription", headerText: this._dictionaryService.get("DESCRIPTION") }, { field: "detailsAsString", headerText: this._dictionaryService.get("DETAILS") }, { field: "price", headerText: this._dictionaryService.get("PRICE") }, { field: "amount", headerText: this._dictionaryService.get("NUMBER") }, { field: "lineTotal", headerText: this._dictionaryService.get("SUBTOTAL") }, { field: "logisticState", headerText: this._dictionaryService.get("STATE") }, { field: "expectedDeliveryDate", headerText: this._dictionaryService.get("EXPECTED_DELIVERY_DATE") });
15
+ this.columns.push({ field: "articleNumber", headerText: this._dictionaryService.get("ARTICLE_NR"), allowFiltering: false }, { field: "goodDescription", headerText: this._dictionaryService.get("DESCRIPTION") }, { field: "text", headerText: this._dictionaryService.get("TEXT") }, { field: "detailsAsString", headerText: this._dictionaryService.get("DETAILS") }, { field: "price", headerText: this._dictionaryService.get("PRICE") }, { field: "amount", headerText: this._dictionaryService.get("NUMBER") }, { field: "lineTotal", headerText: this._dictionaryService.get("SUBTOTAL") }, { field: "logisticState", headerText: this._dictionaryService.get("STATE") }, { field: "expectedDeliveryDate", headerText: this._dictionaryService.get("EXPECTED_DELIVERY_DATE") });
16
16
  }
17
17
  get pagingEnabled() {
18
18
  if (this.transactionLines) {
@@ -68,4 +68,4 @@ TransactionOrderLinesComponent.propDecorators = {
68
68
  transactionGrid: [{ type: ViewChild, args: ["transactionGrid",] }],
69
69
  createServiceClick: [{ type: Output }]
70
70
  };
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tb3JkZXItbGluZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnQvc2VydmljZS1vcmRlci90cmFuc2FjdGlvbi1vcmRlci1saW5lcy90cmFuc2FjdGlvbi1vcmRlci1saW5lcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQVMsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUdoRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQWtCcEYsTUFBTSxPQUFPLDhCQUErQixTQUFRLHdCQUF3QjtJQStCeEUsWUFDVyxPQUEyQixFQUMxQixhQUFzQyxFQUN0QyxrQkFBcUM7UUFFN0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBSlIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBQ3RDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUEzQjFDLHVCQUFrQixHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQVVoRyxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUNoQyxZQUFPLEdBQVUsRUFBRSxDQUFDO1FBb0J2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDYixFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBQyxFQUN0RyxFQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBQyxFQUNsRixFQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBQyxFQUM5RSxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUMsRUFDbEUsRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFDLEVBQ3BFLEVBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBQyxFQUN6RSxFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUMsRUFDMUUsRUFBQyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsRUFBQyxDQUNyRyxDQUFDO0lBQ04sQ0FBQztJQXRDRCxJQUFXLGFBQWE7UUFDcEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxJQUFJLDhCQUE4QixDQUFDLHFCQUFxQixDQUFDO1NBQzdGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQU9ELElBQVksaUJBQWlCLENBQUMsS0FBMEI7UUFDcEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxJQUFJLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQVksaUJBQWlCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFxQk0sVUFBVSxDQUFDLEdBQXdCO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFVO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVELGtFQUFrRTtJQUMzRCxzQkFBc0I7UUFDekIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDMUQsQ0FBQzs7QUFoRXNCLG9EQUFxQixHQUFHLEVBQUUsQ0FBQzs7WUFqQnJELFNBQVMsU0FBQztnQkFDVCw4REFBOEQ7Z0JBQzVELFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFFBQVEsRUFBRTs7Ozs7Ozs7S0FRVDs7YUFJSjs7O1lBbEJPLGtCQUFrQjtZQURsQix1QkFBdUI7WUFEdkIsaUJBQWlCOzs7OEJBd0JwQixTQUFTLFNBQUMsaUJBQWlCO2lDQUczQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvR3JpZENvbXBvbmVudH0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1iYXNlLmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICAgIHNlbGVjdG9yOiBcInRyYW5zYWN0aW9uLW9yZGVyLWxpbmVzXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxjby1ncmlkICN0cmFuc2FjdGlvbkdyaWRcclxuICAgICAgICAgICAgICAgICBbZGF0YV09XCJ0cmFuc2FjdGlvbkxpbmVzXCJcclxuICAgICAgICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgICBbcGFnaW5nRW5hYmxlZF09XCJwYWdpbmdFbmFibGVkXCJcclxuICAgICAgICAgICAgICAgICBbbWF4TnVtYmVyT2ZSb3dzXT1cIicyMCdcIlxyXG4gICAgICAgICAgICAgICAgIChyb3dzU2VsZWN0ZWQpPVwib25Sb3dDbGljaygkZXZlbnQpXCJcclxuICAgICAgICA+PC9jby1ncmlkPlxyXG4gICAgYCxcclxuICAgIHN0eWxlVXJsczogW1xyXG4gICAgICAgIFwiLi90cmFuc2FjdGlvbi1vcmRlci1saW5lcy5jb21wb25lbnQuc2Nzc1wiXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbk9yZGVyTGluZXNDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQge1xyXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBNQVhfVFJBTlNBQ1RJT05fTElORVMgPSAyMDtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwidHJhbnNhY3Rpb25HcmlkXCIpXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25HcmlkOiBDb0dyaWRDb21wb25lbnQ8YW55PjtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBjcmVhdGVTZXJ2aWNlQ2xpY2s6IEV2ZW50RW1pdHRlcjxUcmFuc2FjdGlvbkxpbmVJbmZvPiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25MaW5lSW5mbz4oKTtcclxuXHJcblxyXG4gICAgcHVibGljIGdldCBwYWdpbmdFbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uTGluZXMpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uTGluZXMubGVuZ3RoID49IFRyYW5zYWN0aW9uT3JkZXJMaW5lc0NvbXBvbmVudC5NQVhfVFJBTlNBQ1RJT05fTElORVM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbm90aGluZ1NlbGVjdGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHB1YmxpYyBjb2x1bW5zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgX3NlbGVjdGVkVHJhbnNMaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvO1xyXG5cclxuICAgIHByaXZhdGUgc2V0IHNlbGVjdGVkVHJhbnNMaW5lKHZhbHVlOiBUcmFuc2FjdGlvbkxpbmVJbmZvKSB7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRUcmFuc0xpbmUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLm5vdGhpbmdTZWxlY3RlZCA9IHRoaXMuX3NlbGVjdGVkVHJhbnNMaW5lID09PSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0IHNlbGVjdGVkVHJhbnNMaW5lKCk6IFRyYW5zYWN0aW9uTGluZUluZm8ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZFRyYW5zTGluZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2V2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoc2VydmljZSk7XHJcblxyXG4gICAgICAgIHRoaXMuY29sdW1ucy5wdXNoKFxyXG4gICAgICAgICAgICB7ZmllbGQ6IFwiYXJ0aWNsZU51bWJlclwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJBUlRJQ0xFX05SXCIpLCBhbGxvd0ZpbHRlcmluZzogZmFsc2V9LFxyXG4gICAgICAgICAgICB7ZmllbGQ6IFwiZ29vZERlc2NyaXB0aW9uXCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIkRFU0NSSVBUSU9OXCIpfSxcclxuICAgICAgICAgICAge2ZpZWxkOiBcImRldGFpbHNBc1N0cmluZ1wiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJERVRBSUxTXCIpfSxcclxuICAgICAgICAgICAge2ZpZWxkOiBcInByaWNlXCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIlBSSUNFXCIpfSxcclxuICAgICAgICAgICAge2ZpZWxkOiBcImFtb3VudFwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJOVU1CRVJcIil9LFxyXG4gICAgICAgICAgICB7ZmllbGQ6IFwibGluZVRvdGFsXCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIlNVQlRPVEFMXCIpfSxcclxuICAgICAgICAgICAge2ZpZWxkOiBcImxvZ2lzdGljU3RhdGVcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiU1RBVEVcIil9LFxyXG4gICAgICAgICAgICB7ZmllbGQ6IFwiZXhwZWN0ZWREZWxpdmVyeURhdGVcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiRVhQRUNURURfREVMSVZFUllfREFURVwiKX0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Sb3dDbGljayhyb3c6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVHJhbnNMaW5lID0gcm93O1xyXG4gICAgICAgIHRoaXMuX2V2ZW50U2VydmljZS50cmFuc2FjdGlvbkxpbmVDbGlja2VkLm5leHQodGhpcy5zZWxlY3RlZFRyYW5zTGluZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uUm93RGVzZWxlY3QoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUcmFuc0xpbmUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRPRE86IG5hdnJhZ2VuIHdhdCBkZSBiZWRvZWxpbmcgaXMsIHppZSBvcmlnaW5lbGUgc291cmNlIGlPbmVKU1xyXG4gICAgcHVibGljIG5ld1NlcnZpY2VSZXF1ZXN0Q2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMubm90aGluZ1NlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jcmVhdGVTZXJ2aWNlQ2xpY2suZW1pdCh0aGlzLl9zZWxlY3RlZFRyYW5zTGluZSk7XHJcbiAgICB9XHJcbn1cclxuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tb3JkZXItbGluZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnQvc2VydmljZS1vcmRlci90cmFuc2FjdGlvbi1vcmRlci1saW5lcy90cmFuc2FjdGlvbi1vcmRlci1saW5lcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQVMsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUdoRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQWtCcEYsTUFBTSxPQUFPLDhCQUErQixTQUFRLHdCQUF3QjtJQStCeEUsWUFDVyxPQUEyQixFQUMxQixhQUFzQyxFQUN0QyxrQkFBcUM7UUFFN0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBSlIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBQ3RDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUEzQjFDLHVCQUFrQixHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQVVoRyxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUNoQyxZQUFPLEdBQVUsRUFBRSxDQUFDO1FBb0J2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDYixFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBQyxFQUN0RyxFQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBQyxFQUNsRixFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUMsRUFDaEUsRUFBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUMsRUFDOUUsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFDLEVBQ2xFLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBQyxFQUNwRSxFQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUMsRUFDekUsRUFBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFDLEVBQzFFLEVBQUMsS0FBSyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLEVBQUMsQ0FDckcsQ0FBQztJQUNOLENBQUM7SUF2Q0QsSUFBVyxhQUFhO1FBQ3BCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sSUFBSSw4QkFBOEIsQ0FBQyxxQkFBcUIsQ0FBQztTQUM3RjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFPRCxJQUFZLGlCQUFpQixDQUFDLEtBQTBCO1FBQ3BELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEtBQUssSUFBSSxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFZLGlCQUFpQjtRQUN6QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBc0JNLFVBQVUsQ0FBQyxHQUF3QjtRQUN0QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrRUFBa0U7SUFDM0Qsc0JBQXNCO1FBQ3pCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7O0FBakVzQixvREFBcUIsR0FBRyxFQUFFLENBQUM7O1lBakJyRCxTQUFTLFNBQUM7Z0JBQ1QsOERBQThEO2dCQUM1RCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxRQUFRLEVBQUU7Ozs7Ozs7O0tBUVQ7O2FBSUo7OztZQWxCTyxrQkFBa0I7WUFEbEIsdUJBQXVCO1lBRHZCLGlCQUFpQjs7OzhCQXdCcEIsU0FBUyxTQUFDLGlCQUFpQjtpQ0FHM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb0dyaWRDb21wb25lbnR9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gXCIuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgICBzZWxlY3RvcjogXCJ0cmFuc2FjdGlvbi1vcmRlci1saW5lc1wiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8Y28tZ3JpZCAjdHJhbnNhY3Rpb25HcmlkXHJcbiAgICAgICAgICAgICAgICAgW2RhdGFdPVwidHJhbnNhY3Rpb25MaW5lc1wiXHJcbiAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICAgICAgICAgICAgICAgW3BhZ2luZ0VuYWJsZWRdPVwicGFnaW5nRW5hYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgW21heE51bWJlck9mUm93c109XCInMjAnXCJcclxuICAgICAgICAgICAgICAgICAocm93c1NlbGVjdGVkKT1cIm9uUm93Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvY28tZ3JpZD5cclxuICAgIGAsXHJcbiAgICBzdHlsZVVybHM6IFtcclxuICAgICAgICBcIi4vdHJhbnNhY3Rpb24tb3JkZXItbGluZXMuY29tcG9uZW50LnNjc3NcIlxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25PcmRlckxpbmVzQ29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50IHtcclxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTUFYX1RSQU5TQUNUSU9OX0xJTkVTID0gMjA7XHJcblxyXG4gICAgQFZpZXdDaGlsZChcInRyYW5zYWN0aW9uR3JpZFwiKVxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uR3JpZDogQ29HcmlkQ29tcG9uZW50PGFueT47XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY3JlYXRlU2VydmljZUNsaWNrOiBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25MaW5lSW5mbz4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uTGluZUluZm8+KCk7XHJcblxyXG5cclxuICAgIHB1YmxpYyBnZXQgcGFnaW5nRW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy50cmFuc2FjdGlvbkxpbmVzKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbkxpbmVzLmxlbmd0aCA+PSBUcmFuc2FjdGlvbk9yZGVyTGluZXNDb21wb25lbnQuTUFYX1RSQU5TQUNUSU9OX0xJTkVTO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5vdGhpbmdTZWxlY3RlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBwdWJsaWMgY29sdW1uczogYW55W10gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIF9zZWxlY3RlZFRyYW5zTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbztcclxuXHJcbiAgICBwcml2YXRlIHNldCBzZWxlY3RlZFRyYW5zTGluZSh2YWx1ZTogVHJhbnNhY3Rpb25MaW5lSW5mbykge1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkVHJhbnNMaW5lID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5ub3RoaW5nU2VsZWN0ZWQgPSB0aGlzLl9zZWxlY3RlZFRyYW5zTGluZSA9PT0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCBzZWxlY3RlZFRyYW5zTGluZSgpOiBUcmFuc2FjdGlvbkxpbmVJbmZvIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRUcmFuc0xpbmU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9ldmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKHNlcnZpY2UpO1xyXG5cclxuICAgICAgICB0aGlzLmNvbHVtbnMucHVzaChcclxuICAgICAgICAgICAge2ZpZWxkOiBcImFydGljbGVOdW1iZXJcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiQVJUSUNMRV9OUlwiKSwgYWxsb3dGaWx0ZXJpbmc6IGZhbHNlfSxcclxuICAgICAgICAgICAge2ZpZWxkOiBcImdvb2REZXNjcmlwdGlvblwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJERVNDUklQVElPTlwiKX0sXHJcbiAgICAgICAgICAgIHtmaWVsZDogXCJ0ZXh0XCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIlRFWFRcIil9LFxyXG4gICAgICAgICAgICB7ZmllbGQ6IFwiZGV0YWlsc0FzU3RyaW5nXCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIkRFVEFJTFNcIil9LFxyXG4gICAgICAgICAgICB7ZmllbGQ6IFwicHJpY2VcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiUFJJQ0VcIil9LFxyXG4gICAgICAgICAgICB7ZmllbGQ6IFwiYW1vdW50XCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIk5VTUJFUlwiKX0sXHJcbiAgICAgICAgICAgIHtmaWVsZDogXCJsaW5lVG90YWxcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiU1VCVE9UQUxcIil9LFxyXG4gICAgICAgICAgICB7ZmllbGQ6IFwibG9naXN0aWNTdGF0ZVwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJTVEFURVwiKX0sXHJcbiAgICAgICAgICAgIHtmaWVsZDogXCJleHBlY3RlZERlbGl2ZXJ5RGF0ZVwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJFWFBFQ1RFRF9ERUxJVkVSWV9EQVRFXCIpfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvblJvd0NsaWNrKHJvdzogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUcmFuc0xpbmUgPSByb3c7XHJcbiAgICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRyYW5zYWN0aW9uTGluZUNsaWNrZWQubmV4dCh0aGlzLnNlbGVjdGVkVHJhbnNMaW5lKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Sb3dEZXNlbGVjdChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRyYW5zTGluZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVE9ETzogbmF2cmFnZW4gd2F0IGRlIGJlZG9lbGluZyBpcywgemllIG9yaWdpbmVsZSBzb3VyY2UgaU9uZUpTXHJcbiAgICBwdWJsaWMgbmV3U2VydmljZVJlcXVlc3RDbGljaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5ub3RoaW5nU2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNyZWF0ZVNlcnZpY2VDbGljay5lbWl0KHRoaXMuX3NlbGVjdGVkVHJhbnNMaW5lKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,133 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Component, EventEmitter, Input, Output, ViewChild } from "@angular/core";
3
+ import { TransactionService } from "../../../service/transaction.service";
4
+ import { DictionaryService } from "../../../service/dictionary.service";
5
+ export class WarehouseComponent {
6
+ constructor(service, _dictionaryService) {
7
+ this.service = service;
8
+ this._dictionaryService = _dictionaryService;
9
+ this.message = "";
10
+ this.okClick = new EventEmitter();
11
+ this.cancelClick = new EventEmitter();
12
+ this.commissionCodes = [];
13
+ this.commissionFields = { text: "description", value: "code" };
14
+ this.transactionArticleWarehouses = [];
15
+ this.columns = [];
16
+ this._okOrCancelClick = false;
17
+ }
18
+ ngOnInit() {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ this.commissionCodes = yield this.service.getCommissionCodes("NL");
21
+ this.columns.push({ field: "warehouseNr", headerText: this._dictionaryService.get("WAREHOUSE"), allowFiltering: false }, { field: "warehouseDesc", headerText: this._dictionaryService.get("DESCRIPTION") }, { field: "stockAmount", headerText: this._dictionaryService.get("STOCK") });
22
+ });
23
+ }
24
+ ngOnDestroy() {
25
+ this.warehouseDialog.close();
26
+ }
27
+ showStockManager(line) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ this.selectedWarehouseNr = line.warehouseNumber;
30
+ this.amount = line.amount;
31
+ this.commissionCode = line.commissionCode;
32
+ this.show(line.articleNumber);
33
+ });
34
+ }
35
+ hide() {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ if (this._okOrCancelClick) {
38
+ this._okOrCancelClick = false;
39
+ return;
40
+ }
41
+ yield this.onStockManagerCancelClick();
42
+ });
43
+ }
44
+ show(articleNr) {
45
+ this._reloadDataCollections(articleNr).then();
46
+ this.warehouseGrid.selectRow(this.selectedWarehouseNr);
47
+ this.warehouseDialog.targetElement = null;
48
+ this.warehouseDialog.open();
49
+ }
50
+ handleRowsSelected(rows) {
51
+ this.selectedWarehouseNr = (rows.find(x => x !== undefined)).warehouseNr;
52
+ }
53
+ onStockManagerCancelClick() {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ this._okOrCancelClick = true;
56
+ this.warehouseDialog.close();
57
+ this.cancelClick.emit();
58
+ });
59
+ }
60
+ onStockManagerOkClick() {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ this._okOrCancelClick = true;
63
+ this.warehouseDialog.close();
64
+ this.okClick.emit();
65
+ });
66
+ }
67
+ _reloadDataCollections(articleNr) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ const goodId = yield this.service.getGoodIdFromArticleNr(articleNr);
70
+ this.transactionArticleWarehouses = yield this.service.getTransactionArticleWarehouses(goodId);
71
+ });
72
+ }
73
+ }
74
+ WarehouseComponent.decorators = [
75
+ { type: Component, args: [{
76
+ // eslint-disable-next-line @angular-eslint/component-selector
77
+ selector: "warehouse",
78
+ template: `
79
+ <co-dialog #warehouseDialog
80
+ (closeClick)="hide()"
81
+ (overlayClick)="onStockManagerCancelClick()"
82
+ >
83
+ <ng-container header>{{ 'STOCK_NOTIFICATION' | localize }}</ng-container>
84
+
85
+ <ng-container content>
86
+ <co-form>
87
+ <div class="form-content">
88
+ <span *ngIf="message" class="message-field" [textContent]="message | localize"></span>
89
+ <div class="commission-fields" fxLayout="row">
90
+ <co-input-number-picker class="horizontal" [(model)]="amount" [min]="0" decimals="3"></co-input-number-picker>
91
+ <co-input-combo-box [(model)]="commissionCode"
92
+ [source]="commissionCodes"
93
+ [fields]="commissionFields"
94
+ [placeholder]="'COMMISSION_CODE' | localize"
95
+ [required]="true"
96
+ ></co-input-combo-box>
97
+ </div>
98
+ <div>
99
+ <co-grid #warehouseGrid
100
+ [data]="transactionArticleWarehouses"
101
+ [columns]="columns"
102
+ [pagingEnabled]="'true'"
103
+ [maxNumberOfRows]="'10'"
104
+ (rowsSelected)="handleRowsSelected($event)"
105
+ ></co-grid>
106
+ </div>
107
+ </div>
108
+ </co-form>
109
+ </ng-container>
110
+
111
+ <ng-container footer>
112
+ <div class="flex-center">
113
+ <co-button [label]="'OK' | localize" (click)="onStockManagerOkClick()"></co-button>
114
+ <co-button [label]="'CANCEL' | localize" (click)="onStockManagerCancelClick()"></co-button>
115
+ </div>
116
+ </ng-container>
117
+ </co-dialog>
118
+ `,
119
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center,.warehouse-line-container{display:flex}.flex-center,.warehouse-line-container{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field,.commission-fields{margin-left:11px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}::ng-deep #warehouseDialog{align-items:center;max-height:100%}::ng-deep #warehouseDialog ::ng-deep co-form{height:100%;width:500px}::ng-deep #warehouseDialog ::ng-deep .form-content{height:calc(100% - 80px);width:100%}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field{height:20px;word-wrap:break-word;white-space:normal}co-button:not(:last-child){margin-right:10px}.commission-fields{justify-content:space-between;margin:10px 0}.warehouse-description-item{width:15rem}.warehouse-nr-item{width:5rem}co-input-number-picker co-button{max-width:20px}\n"]
120
+ },] }
121
+ ];
122
+ WarehouseComponent.ctorParameters = () => [
123
+ { type: TransactionService },
124
+ { type: DictionaryService }
125
+ ];
126
+ WarehouseComponent.propDecorators = {
127
+ warehouseDialog: [{ type: ViewChild, args: ["warehouseDialog",] }],
128
+ warehouseGrid: [{ type: ViewChild, args: ["warehouseGrid",] }],
129
+ message: [{ type: Input }],
130
+ okClick: [{ type: Output }],
131
+ cancelClick: [{ type: Output }]
132
+ };
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FyZWhvdXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50L3NlcnZpY2Utb3JkZXIvd2FyZWhvdXNlL3dhcmVob3VzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFVLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQU14RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQWdEdEUsTUFBTSxPQUFPLGtCQUFrQjtJQTZCN0IsWUFDUyxPQUEyQixFQUMzQixrQkFBcUM7UUFEckMsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQXZCdkMsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUdaLFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUd2RCxnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBT3BFLG9CQUFlLEdBQW9CLEVBQUUsQ0FBQztRQUN0QyxxQkFBZ0IsR0FBVyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBRWxFLGlDQUE0QixHQUFrQyxFQUFFLENBQUM7UUFDakUsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUVuQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFNMUMsQ0FBQztJQUVLLFFBQVE7O1lBQ1osSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFbkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsRUFBQyxLQUFLLEVBQUUsYUFB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ZUFBZTtzQkFHekIsS0FBSztzQkFHTCxNQUFNOzBCQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Q29tbWlzc2lvbkNvZGVUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcmVmY29kZS9jb21taXNzaW9uLWNvZGUtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcclxuaW1wb3J0IHtDb0RvbWFpblZhbHVlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NvLWRvbWFpbi12YWx1ZS5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hcnRpY2xlLXdhcmVob3VzZS5ib1wiO1xyXG5pbXBvcnQge0NvRGlhbG9nQ29tcG9uZW50LCBDb0dyaWRDb21wb25lbnQsIFByb21wdFNlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogXCJ3YXJlaG91c2VcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLWRpYWxvZyAjd2FyZWhvdXNlRGlhbG9nXHJcbiAgICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cImhpZGUoKVwiXHJcbiAgICAgICAgICAgICAgIChvdmVybGF5Q2xpY2spPVwib25TdG9ja01hbmFnZXJDYW5jZWxDbGljaygpXCJcclxuICAgICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyIGhlYWRlcj57eyAnU1RPQ0tfTk9USUZJQ0FUSU9OJyB8IGxvY2FsaXplIH19PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XHJcbiAgICAgICAgPGNvLWZvcm0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibWVzc2FnZVwiIGNsYXNzPVwibWVzc2FnZS1maWVsZFwiIFt0ZXh0Q29udGVudF09XCJtZXNzYWdlIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1pc3Npb24tZmllbGRzXCIgZnhMYXlvdXQ9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC1udW1iZXItcGlja2VyIGNsYXNzPVwiaG9yaXpvbnRhbFwiIFsobW9kZWwpXT1cImFtb3VudFwiIFttaW5dPVwiMFwiIGRlY2ltYWxzPVwiM1wiPjwvY28taW5wdXQtbnVtYmVyLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC1jb21iby1ib3ggWyhtb2RlbCldPVwiY29tbWlzc2lvbkNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3VyY2VdPVwiY29tbWlzc2lvbkNvZGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRzXT1cImNvbW1pc3Npb25GaWVsZHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQ09NTUlTU0lPTl9DT0RFJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1jb21iby1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxjby1ncmlkICN3YXJlaG91c2VHcmlkXHJcbiAgICAgICAgICAgICAgICAgIFtkYXRhXT1cInRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZXNcIlxyXG4gICAgICAgICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgICAgW3BhZ2luZ0VuYWJsZWRdPVwiJ3RydWUnXCJcclxuICAgICAgICAgICAgICAgICAgW21heE51bWJlck9mUm93c109XCInMTAnXCJcclxuICAgICAgICAgICAgICAgICAgKHJvd3NTZWxlY3RlZCk9XCJoYW5kbGVSb3dzU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICA+PC9jby1ncmlkPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9jby1mb3JtPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgZm9vdGVyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxjby1idXR0b24gW2xhYmVsXT1cIidPSycgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJvblN0b2NrTWFuYWdlck9rQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInQ0FOQ0VMJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cIm9uU3RvY2tNYW5hZ2VyQ2FuY2VsQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9jby1kaWFsb2c+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFtcIi4vd2FyZWhvdXNlLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV2FyZWhvdXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoXCJ3YXJlaG91c2VEaWFsb2dcIilcclxuICBwdWJsaWMgd2FyZWhvdXNlRGlhbG9nOiBDb0RpYWxvZ0NvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcIndhcmVob3VzZUdyaWRcIilcclxuICBwdWJsaWMgd2FyZWhvdXNlR3JpZDogQ29HcmlkQ29tcG9uZW50PGFueT47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBva0NsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBjYW5jZWxDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuXHJcbiAgcHVibGljIHNlbGVjdGVkV2FyZWhvdXNlTnI6IG51bWJlcjtcclxuICBwdWJsaWMgYW1vdW50OiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBjb21taXNzaW9uQ29kZTogQ29tbWlzc2lvbkNvZGVUeXBlO1xyXG4gIHB1YmxpYyBjb21taXNzaW9uQ29kZXM6IENvRG9tYWluVmFsdWVbXSA9IFtdO1xyXG4gIHB1YmxpYyBjb21taXNzaW9uRmllbGRzOiBPYmplY3QgPSB7IHRleHQ6IFwiZGVzY3JpcHRpb25cIiwgdmFsdWU6IFwiY29kZVwiIH07XHJcblxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VzOiBUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VbXSA9IFtdO1xyXG4gIHB1YmxpYyBjb2x1bW5zOiBhbnlbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIF9va09yQ2FuY2VsQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIF9kaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuY29tbWlzc2lvbkNvZGVzID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldENvbW1pc3Npb25Db2RlcyhcIk5MXCIpO1xyXG5cclxuICAgIHRoaXMuY29sdW1ucy5wdXNoKFxyXG4gICAgICB7ZmllbGQ6IFwid2FyZWhvdXNlTnJcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiV0FSRUhPVVNFXCIpLCBhbGxvd0ZpbHRlcmluZzogZmFsc2V9LFxyXG4gICAgICB7ZmllbGQ6IFwid2FyZWhvdXNlRGVzY1wiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJERVNDUklQVElPTlwiKX0sXHJcbiAgICAgIHtmaWVsZDogXCJzdG9ja0Ftb3VudFwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJTVE9DS1wiKX1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMud2FyZWhvdXNlRGlhbG9nLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2hvd1N0b2NrTWFuYWdlcihsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnNlbGVjdGVkV2FyZWhvdXNlTnIgPSBsaW5lLndhcmVob3VzZU51bWJlcjtcclxuICAgIHRoaXMuYW1vdW50ID0gbGluZS5hbW91bnQ7XHJcbiAgICB0aGlzLmNvbW1pc3Npb25Db2RlID0gbGluZS5jb21taXNzaW9uQ29kZTtcclxuICAgIHRoaXMuc2hvdyhsaW5lLmFydGljbGVOdW1iZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhpZGUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5fb2tPckNhbmNlbENsaWNrKSB7XHJcbiAgICAgIHRoaXMuX29rT3JDYW5jZWxDbGljayA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLm9uU3RvY2tNYW5hZ2VyQ2FuY2VsQ2xpY2soKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93KGFydGljbGVOcjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZWxvYWREYXRhQ29sbGVjdGlvbnMoYXJ0aWNsZU5yKS50aGVuKCk7XHJcblxyXG4gICAgdGhpcy53YXJlaG91c2VHcmlkLnNlbGVjdFJvdyh0aGlzLnNlbGVjdGVkV2FyZWhvdXNlTnIpO1xyXG4gICAgdGhpcy53YXJlaG91c2VEaWFsb2cudGFyZ2V0RWxlbWVudCA9IG51bGw7XHJcbiAgICB0aGlzLndhcmVob3VzZURpYWxvZy5vcGVuKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlUm93c1NlbGVjdGVkKHJvd3M6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFdhcmVob3VzZU5yID0gKHJvd3MuZmluZCh4ID0+IHggIT09IHVuZGVmaW5lZCkpLndhcmVob3VzZU5yO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIG9uU3RvY2tNYW5hZ2VyQ2FuY2VsQ2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLl9va09yQ2FuY2VsQ2xpY2sgPSB0cnVlO1xyXG4gICAgdGhpcy53YXJlaG91c2VEaWFsb2cuY2xvc2UoKTtcclxuICAgIHRoaXMuY2FuY2VsQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIG9uU3RvY2tNYW5hZ2VyT2tDbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuX29rT3JDYW5jZWxDbGljayA9IHRydWU7XHJcbiAgICB0aGlzLndhcmVob3VzZURpYWxvZy5jbG9zZSgpO1xyXG4gICAgdGhpcy5va0NsaWNrLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX3JlbG9hZERhdGFDb2xsZWN0aW9ucyhhcnRpY2xlTnI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgZ29vZElkOiBudW1iZXIgID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldEdvb2RJZEZyb21BcnRpY2xlTnIoYXJ0aWNsZU5yKTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlcyA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VzKGdvb2RJZCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==