@colijnit/transaction 1.9.31 → 12.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/component/common/icon/icon.component.d.ts +1 -2
- package/bundles/colijnit-transaction.umd.js +950 -983
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +14 -14
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/app/component/checkout/checkout/checkout.component.js +22 -26
- package/esm2015/app/component/checkout/checkout-login/checkout-login.component.js +18 -27
- package/esm2015/app/component/checkout/checkout-overview/checkout-overview.component.js +26 -49
- package/esm2015/app/component/checkout/checkout-overview-block/checkout-overview-block.component.js +17 -24
- package/esm2015/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +18 -24
- package/esm2015/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +27 -42
- package/esm2015/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.js +19 -22
- package/esm2015/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +25 -36
- package/esm2015/app/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +18 -24
- package/esm2015/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +16 -21
- package/esm2015/app/component/checkout/ione-checkout.component.js +27 -34
- package/esm2015/app/component/checkout/ione-checkout.module.js +55 -58
- package/esm2015/app/component/checkout/retail-transaction-checkout/retail-transaction-checkout.component.js +16 -18
- package/esm2015/app/component/common/icon/icon.component.js +14 -18
- package/esm2015/app/component/common/image-display/image-display.component.js +19 -36
- package/esm2015/app/component/common/no-image-display/no-image-display.component.js +14 -20
- package/esm2015/app/component/core/core.module.js +32 -34
- package/esm2015/app/component/shopping-cart/characteristic-answer/characteristic-answer.component.js +20 -27
- package/esm2015/app/component/shopping-cart/ione-shopping-cart.component.js +31 -48
- package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +51 -52
- package/esm2015/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +29 -49
- package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +25 -38
- package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +27 -38
- package/esm2015/app/component/shopping-cart/stock-status-indicator/stock-status-indicator.component.js +13 -17
- package/esm2015/app/enum/checkout-steps.enum.js +1 -1
- package/esm2015/app/enum/content-view-mode.enum.js +1 -1
- package/esm2015/app/enum/direction.enum.js +1 -1
- package/esm2015/app/enum/language-code.enum.js +1 -1
- package/esm2015/app/enum/order-discount-type.enum.js +1 -1
- package/esm2015/app/enum/time-size.type.js +1 -1
- package/esm2015/app/model/business-object.js +6 -6
- package/esm2015/app/model/text-value-container.js +1 -1
- package/esm2015/app/pipe/append.pipe.js +6 -8
- package/esm2015/app/pipe/co-currency.pipe.js +8 -11
- package/esm2015/app/pipe/date-duration.pipe.js +6 -8
- package/esm2015/app/pipe/delivery-time.pipe.js +6 -8
- package/esm2015/app/pipe/localize.pipe.js +9 -13
- package/esm2015/app/pipe/safe-style-pipe.js +9 -11
- package/esm2015/app/service/dictionary.service.js +10 -10
- package/esm2015/app/service/ione-connector-adapter.service.js +8 -8
- package/esm2015/app/service/options.service.js +8 -8
- package/esm2015/app/service/transaction-event.service.js +6 -8
- package/esm2015/app/service/transaction.service.js +11 -12
- package/esm2015/app/utils/string-utils.js +1 -1
- package/esm2015/assets/dictionary/text.properties.js +1 -1
- package/esm2015/colijnit-transaction.js +15 -15
- package/esm2015/factory/business-object-factory.js +1 -1
- package/esm2015/factory/decorators/boolean.decorator.js +1 -1
- package/esm2015/factory/decorators/complex-array.decorator.js +1 -1
- package/esm2015/factory/decorators/complex-field.decorator.js +2 -2
- package/esm2015/factory/decorators/date-field.decorator.js +1 -1
- package/esm2015/factory/decorators/string-number.decorator.js +1 -1
- package/esm2015/public_api.js +1 -1
- package/esm2015/utils/array-utils.js +1 -1
- package/esm2015/utils/is-nill.function.js +1 -1
- package/fesm2015/colijnit-transaction.js +640 -799
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/package.json +33 -23
- package/bundles/colijnit-transaction.umd.min.js +0 -16
- package/bundles/colijnit-transaction.umd.min.js.map +0 -1
- package/enum/icon.enum.d.ts +0 -281
- package/esm2015/enum/icon.enum.js +0 -283
- package/esm5/app/component/checkout/checkout/checkout.component.js +0 -196
- package/esm5/app/component/checkout/checkout-login/checkout-login.component.js +0 -62
- package/esm5/app/component/checkout/checkout-overview/checkout-overview.component.js +0 -183
- package/esm5/app/component/checkout/checkout-overview-block/checkout-overview-block.component.js +0 -48
- package/esm5/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +0 -34
- package/esm5/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +0 -298
- package/esm5/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.js +0 -98
- package/esm5/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +0 -303
- package/esm5/app/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +0 -33
- package/esm5/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +0 -48
- package/esm5/app/component/checkout/ione-checkout.component.js +0 -163
- package/esm5/app/component/checkout/ione-checkout.module.js +0 -82
- package/esm5/app/component/checkout/retail-transaction-checkout/retail-transaction-checkout.component.js +0 -62
- package/esm5/app/component/common/icon/icon.component.js +0 -40
- package/esm5/app/component/common/image-display/image-display.component.js +0 -57
- package/esm5/app/component/common/no-image-display/no-image-display.component.js +0 -29
- package/esm5/app/component/core/core.module.js +0 -48
- package/esm5/app/component/shopping-cart/characteristic-answer/characteristic-answer.component.js +0 -66
- package/esm5/app/component/shopping-cart/ione-shopping-cart.component.js +0 -169
- package/esm5/app/component/shopping-cart/ione-shopping-cart.module.js +0 -70
- package/esm5/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +0 -179
- package/esm5/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +0 -208
- package/esm5/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +0 -563
- package/esm5/app/component/shopping-cart/stock-status-indicator/stock-status-indicator.component.js +0 -28
- package/esm5/app/enum/checkout-steps.enum.js +0 -10
- package/esm5/app/enum/content-view-mode.enum.js +0 -10
- package/esm5/app/enum/direction.enum.js +0 -9
- package/esm5/app/enum/language-code.enum.js +0 -8
- package/esm5/app/enum/order-discount-type.enum.js +0 -7
- package/esm5/app/enum/time-size.type.js +0 -10
- package/esm5/app/model/business-object.js +0 -85
- package/esm5/app/model/text-value-container.js +0 -7
- package/esm5/app/pipe/append.pipe.js +0 -22
- package/esm5/app/pipe/co-currency.pipe.js +0 -55
- package/esm5/app/pipe/date-duration.pipe.js +0 -61
- package/esm5/app/pipe/delivery-time.pipe.js +0 -38
- package/esm5/app/pipe/localize.pipe.js +0 -34
- package/esm5/app/pipe/safe-style-pipe.js +0 -22
- package/esm5/app/service/dictionary.service.js +0 -83
- package/esm5/app/service/ione-connector-adapter.service.js +0 -549
- package/esm5/app/service/options.service.js +0 -108
- package/esm5/app/service/transaction-event.service.js +0 -21
- package/esm5/app/service/transaction.service.js +0 -690
- package/esm5/app/utils/string-utils.js +0 -73
- package/esm5/assets/dictionary/text.properties.js +0 -282
- package/esm5/colijnit-transaction.js +0 -36
- package/esm5/enum/icon.enum.js +0 -283
- package/esm5/factory/business-object-factory.js +0 -122
- package/esm5/factory/decorators/boolean.decorator.js +0 -106
- package/esm5/factory/decorators/complex-array.decorator.js +0 -59
- package/esm5/factory/decorators/complex-field.decorator.js +0 -61
- package/esm5/factory/decorators/date-field.decorator.js +0 -40
- package/esm5/factory/decorators/string-number.decorator.js +0 -47
- package/esm5/public_api.js +0 -8
- package/esm5/utils/array-utils.js +0 -188
- package/esm5/utils/is-nill.function.js +0 -5
- package/fesm5/colijnit-transaction.js +0 -5620
- package/fesm5/colijnit-transaction.js.map +0 -1
|
@@ -1,690 +0,0 @@
|
|
|
1
|
-
import { __awaiter, __decorate, __generator, __values } from "tslib";
|
|
2
|
-
import { EventEmitter, Injectable } from "@angular/core";
|
|
3
|
-
import { IOneConnectorAdapterService } from "./ione-connector-adapter.service";
|
|
4
|
-
import { NULL_RELATION_OBJECT } from "@colijnit/transactionapi/build/model/nul-relation-object";
|
|
5
|
-
import { TransactionKind } from "@colijnit/transactionapi/build/enum/transaction-kind.enum";
|
|
6
|
-
import { SequenceName } from "@colijnit/transactionapi/build/enum/sequence-name.enum";
|
|
7
|
-
import { isNill } from "@colijnit/transactionapi/build/utils/function/is-nill.function";
|
|
8
|
-
import { ArrayUtils } from "@colijnit/transactionapi/build/utils/array-utils";
|
|
9
|
-
import { SetTransactionDeliveryOptionsRequest } from "@colijnit/transactionapi/build/model/set-transaction-delivery-options-request.bo";
|
|
10
|
-
import { TransactionTotal } from "@colijnit/transactionapi/build/model/transaction-total.bo";
|
|
11
|
-
import { TransactionLineType } from "@colijnit/transactionapi/build/enum/transaction-line-type.enum";
|
|
12
|
-
import { LineOperationStatus } from "@colijnit/transactionapi/build/model/line-operation-status.bo";
|
|
13
|
-
import { TransactionInfo } from "@colijnit/transactionapi/build/model/transaction-info.bo";
|
|
14
|
-
import { PendingReasonType } from "@colijnit/transactionapi/build/enum/pending-reason-type.enum";
|
|
15
|
-
var TransactionService = /** @class */ (function () {
|
|
16
|
-
function TransactionService(_connector) {
|
|
17
|
-
this._connector = _connector;
|
|
18
|
-
this.transactionUpdated = new EventEmitter();
|
|
19
|
-
this.applicationUser = false;
|
|
20
|
-
this.articleAmount = 0;
|
|
21
|
-
this._currentLines = [];
|
|
22
|
-
this._currentTotals = new TransactionTotal();
|
|
23
|
-
this._currentRelation = NULL_RELATION_OBJECT;
|
|
24
|
-
this._currentTransaction = new TransactionInfo();
|
|
25
|
-
this._currentLineOperationStatus = new LineOperationStatus();
|
|
26
|
-
this._currentLineOperationStatuses = [];
|
|
27
|
-
this._initializeTransaction();
|
|
28
|
-
}
|
|
29
|
-
Object.defineProperty(TransactionService.prototype, "currentLines", {
|
|
30
|
-
get: function () {
|
|
31
|
-
return this._currentLines;
|
|
32
|
-
},
|
|
33
|
-
set: function (value) {
|
|
34
|
-
this._currentLines = value;
|
|
35
|
-
this.articleAmount = ArrayUtils.FindAll(this._currentLines, function (line) { return line.isArticle; }).length;
|
|
36
|
-
},
|
|
37
|
-
enumerable: true,
|
|
38
|
-
configurable: true
|
|
39
|
-
});
|
|
40
|
-
Object.defineProperty(TransactionService.prototype, "currentTotals", {
|
|
41
|
-
get: function () {
|
|
42
|
-
return this._currentTotals;
|
|
43
|
-
},
|
|
44
|
-
set: function (value) {
|
|
45
|
-
this._currentTotals = value;
|
|
46
|
-
},
|
|
47
|
-
enumerable: true,
|
|
48
|
-
configurable: true
|
|
49
|
-
});
|
|
50
|
-
Object.defineProperty(TransactionService.prototype, "currentRelation", {
|
|
51
|
-
get: function () {
|
|
52
|
-
return this._currentRelation;
|
|
53
|
-
},
|
|
54
|
-
enumerable: true,
|
|
55
|
-
configurable: true
|
|
56
|
-
});
|
|
57
|
-
Object.defineProperty(TransactionService.prototype, "currentTransaction", {
|
|
58
|
-
get: function () {
|
|
59
|
-
return this._currentTransaction;
|
|
60
|
-
},
|
|
61
|
-
enumerable: true,
|
|
62
|
-
configurable: true
|
|
63
|
-
});
|
|
64
|
-
Object.defineProperty(TransactionService.prototype, "currentLineOperationStatuses", {
|
|
65
|
-
get: function () {
|
|
66
|
-
return this._currentLineOperationStatuses;
|
|
67
|
-
},
|
|
68
|
-
set: function (values) {
|
|
69
|
-
this._currentLineOperationStatuses = values;
|
|
70
|
-
},
|
|
71
|
-
enumerable: true,
|
|
72
|
-
configurable: true
|
|
73
|
-
});
|
|
74
|
-
Object.defineProperty(TransactionService.prototype, "currentLineOperationStatus", {
|
|
75
|
-
get: function () {
|
|
76
|
-
var status = this.currentLineOperationStatuses.find(function (line) { return line.pendingReasonType !== PendingReasonType.NONE
|
|
77
|
-
&& line.pendingReasonType !== PendingReasonType.NON_CRITICAL_DISCONTINUATION; });
|
|
78
|
-
return status;
|
|
79
|
-
},
|
|
80
|
-
set: function (value) {
|
|
81
|
-
this._currentLineOperationStatus = value;
|
|
82
|
-
},
|
|
83
|
-
enumerable: true,
|
|
84
|
-
configurable: true
|
|
85
|
-
});
|
|
86
|
-
TransactionService.prototype.getArticleFullObject = function (goodId) {
|
|
87
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
88
|
-
return __generator(this, function (_a) {
|
|
89
|
-
switch (_a.label) {
|
|
90
|
-
case 0: return [4 /*yield*/, this._connector.getArticleFullObject(goodId)];
|
|
91
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
};
|
|
96
|
-
TransactionService.prototype.getGoodIdFromArticleNr = function (sku) {
|
|
97
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
98
|
-
return __generator(this, function (_a) {
|
|
99
|
-
switch (_a.label) {
|
|
100
|
-
case 0: return [4 /*yield*/, this._connector.getGoodIdFromArticleNr(sku)];
|
|
101
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
};
|
|
106
|
-
TransactionService.prototype.getRelation = function () {
|
|
107
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
108
|
-
var relationNo, _a;
|
|
109
|
-
return __generator(this, function (_b) {
|
|
110
|
-
switch (_b.label) {
|
|
111
|
-
case 0: return [4 /*yield*/, this._connector.getRelationNumber(this._currentTransaction.relation.relationId)];
|
|
112
|
-
case 1:
|
|
113
|
-
relationNo = _b.sent();
|
|
114
|
-
if (!relationNo) return [3 /*break*/, 4];
|
|
115
|
-
_a = this;
|
|
116
|
-
return [4 /*yield*/, this._connector.getCustomerFullObject(Number(relationNo))];
|
|
117
|
-
case 2:
|
|
118
|
-
_a._currentRelation = _b.sent();
|
|
119
|
-
return [4 /*yield*/, this.loadCountriesOfRelationAddresses()];
|
|
120
|
-
case 3:
|
|
121
|
-
_b.sent();
|
|
122
|
-
_b.label = 4;
|
|
123
|
-
case 4: return [2 /*return*/, this._currentRelation];
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
};
|
|
128
|
-
TransactionService.prototype.loadCountriesOfRelationAddresses = function () {
|
|
129
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
130
|
-
var _a, _b, address, country, e_1_1;
|
|
131
|
-
var e_1, _c;
|
|
132
|
-
return __generator(this, function (_d) {
|
|
133
|
-
switch (_d.label) {
|
|
134
|
-
case 0:
|
|
135
|
-
_d.trys.push([0, 5, 6, 7]);
|
|
136
|
-
_a = __values(this.currentRelation.addresses), _b = _a.next();
|
|
137
|
-
_d.label = 1;
|
|
138
|
-
case 1:
|
|
139
|
-
if (!!_b.done) return [3 /*break*/, 4];
|
|
140
|
-
address = _b.value;
|
|
141
|
-
return [4 /*yield*/, this.getCountry(address.countryId)];
|
|
142
|
-
case 2:
|
|
143
|
-
country = _d.sent();
|
|
144
|
-
address.countryName = country.description;
|
|
145
|
-
_d.label = 3;
|
|
146
|
-
case 3:
|
|
147
|
-
_b = _a.next();
|
|
148
|
-
return [3 /*break*/, 1];
|
|
149
|
-
case 4: return [3 /*break*/, 7];
|
|
150
|
-
case 5:
|
|
151
|
-
e_1_1 = _d.sent();
|
|
152
|
-
e_1 = { error: e_1_1 };
|
|
153
|
-
return [3 /*break*/, 7];
|
|
154
|
-
case 6:
|
|
155
|
-
try {
|
|
156
|
-
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
157
|
-
}
|
|
158
|
-
finally { if (e_1) throw e_1.error; }
|
|
159
|
-
return [7 /*endfinally*/];
|
|
160
|
-
case 7: return [2 /*return*/];
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
};
|
|
165
|
-
TransactionService.prototype.getCountry = function (countryCode) {
|
|
166
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
167
|
-
return __generator(this, function (_a) {
|
|
168
|
-
switch (_a.label) {
|
|
169
|
-
case 0: return [4 /*yield*/, this._connector.getCountry(countryCode)];
|
|
170
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
};
|
|
175
|
-
TransactionService.prototype.getRelationNumber = function (relationId) {
|
|
176
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
177
|
-
return __generator(this, function (_a) {
|
|
178
|
-
return [2 /*return*/, this._connector.getRelationNumber(relationId)];
|
|
179
|
-
});
|
|
180
|
-
});
|
|
181
|
-
};
|
|
182
|
-
TransactionService.prototype.saveNewRelation = function () {
|
|
183
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
184
|
-
var _a;
|
|
185
|
-
return __generator(this, function (_b) {
|
|
186
|
-
switch (_b.label) {
|
|
187
|
-
case 0:
|
|
188
|
-
this.cleanRelationBeforeSave();
|
|
189
|
-
_a = this;
|
|
190
|
-
return [4 /*yield*/, this._connector.insertCustomer(this._currentRelation)];
|
|
191
|
-
case 1:
|
|
192
|
-
_a._currentRelation = _b.sent();
|
|
193
|
-
return [4 /*yield*/, this.addRelationToTransaction(this._currentRelation.relationId)];
|
|
194
|
-
case 2:
|
|
195
|
-
_b.sent();
|
|
196
|
-
return [2 /*return*/];
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
};
|
|
201
|
-
TransactionService.prototype.saveRelation = function () {
|
|
202
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
203
|
-
var _a;
|
|
204
|
-
return __generator(this, function (_b) {
|
|
205
|
-
switch (_b.label) {
|
|
206
|
-
case 0:
|
|
207
|
-
this.cleanRelationBeforeSave();
|
|
208
|
-
_a = this;
|
|
209
|
-
return [4 /*yield*/, this._connector.updateCustomer(this._currentRelation)];
|
|
210
|
-
case 1:
|
|
211
|
-
_a._currentRelation = _b.sent();
|
|
212
|
-
return [2 /*return*/];
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
});
|
|
216
|
-
};
|
|
217
|
-
TransactionService.prototype.cleanRelationBeforeSave = function () {
|
|
218
|
-
ArrayUtils.RemoveElementsByFilter(this._currentRelation.contactOptions, (function (item) {
|
|
219
|
-
return isNill(item.value);
|
|
220
|
-
}));
|
|
221
|
-
};
|
|
222
|
-
TransactionService.prototype.getSequenceValue = function () {
|
|
223
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
224
|
-
return __generator(this, function (_a) {
|
|
225
|
-
switch (_a.label) {
|
|
226
|
-
case 0: return [4 /*yield*/, this._connector.getSequenceValue(SequenceName.RelationId)];
|
|
227
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
228
|
-
}
|
|
229
|
-
});
|
|
230
|
-
});
|
|
231
|
-
};
|
|
232
|
-
TransactionService.prototype.getRelationPrivacySettings = function () {
|
|
233
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
234
|
-
return __generator(this, function (_a) {
|
|
235
|
-
switch (_a.label) {
|
|
236
|
-
case 0: return [4 /*yield*/, this._connector.getRelationPrivacySettings()];
|
|
237
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
238
|
-
}
|
|
239
|
-
});
|
|
240
|
-
});
|
|
241
|
-
};
|
|
242
|
-
TransactionService.prototype.createTransaction = function () {
|
|
243
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
244
|
-
var _this = this;
|
|
245
|
-
return __generator(this, function (_a) {
|
|
246
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
247
|
-
_this._connector.createTransaction(TransactionKind.SalesOrder, "1").then(function (response) {
|
|
248
|
-
_this._rememberCurrentTransaction(response);
|
|
249
|
-
resolve(true);
|
|
250
|
-
}, function (error) {
|
|
251
|
-
reject(error);
|
|
252
|
-
}).catch(function (reason) {
|
|
253
|
-
reject(false);
|
|
254
|
-
});
|
|
255
|
-
})];
|
|
256
|
-
});
|
|
257
|
-
});
|
|
258
|
-
};
|
|
259
|
-
TransactionService.prototype.resolvePendingLineReason = function (pendingLineValues) {
|
|
260
|
-
var _this = this;
|
|
261
|
-
return new Promise(function (resolve) {
|
|
262
|
-
_this._connector.resolvePendingLineReason(pendingLineValues).then(function (response) { return __awaiter(_this, void 0, void 0, function () {
|
|
263
|
-
return __generator(this, function (_a) {
|
|
264
|
-
this._rememberCurrentTransaction(response);
|
|
265
|
-
this._rememberCurrentTransactionLineStatus(response);
|
|
266
|
-
resolve(response);
|
|
267
|
-
return [2 /*return*/];
|
|
268
|
-
});
|
|
269
|
-
}); }).catch(function (reason) {
|
|
270
|
-
resolve();
|
|
271
|
-
});
|
|
272
|
-
});
|
|
273
|
-
};
|
|
274
|
-
TransactionService.prototype.getTransaction = function (transactionNo) {
|
|
275
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
276
|
-
return __generator(this, function (_a) {
|
|
277
|
-
switch (_a.label) {
|
|
278
|
-
case 0: return [4 /*yield*/, this.openExistingTransaction(TransactionKind.SalesOrder, transactionNo)];
|
|
279
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
280
|
-
}
|
|
281
|
-
});
|
|
282
|
-
});
|
|
283
|
-
};
|
|
284
|
-
TransactionService.prototype.openExistingTransaction = function (kind, transactionNr) {
|
|
285
|
-
var _this = this;
|
|
286
|
-
return new Promise(function (resolve, reject) {
|
|
287
|
-
_this._connector.getTransactionByNrAndKind(kind, transactionNr)
|
|
288
|
-
.then(function (response) { return __awaiter(_this, void 0, void 0, function () {
|
|
289
|
-
return __generator(this, function (_a) {
|
|
290
|
-
this._rememberCurrentTransaction(response);
|
|
291
|
-
if (response.isSuccess) {
|
|
292
|
-
resolve(true);
|
|
293
|
-
}
|
|
294
|
-
else {
|
|
295
|
-
reject(false);
|
|
296
|
-
}
|
|
297
|
-
return [2 /*return*/];
|
|
298
|
-
});
|
|
299
|
-
}); })
|
|
300
|
-
.catch(function (reason) {
|
|
301
|
-
reject(false);
|
|
302
|
-
});
|
|
303
|
-
});
|
|
304
|
-
};
|
|
305
|
-
TransactionService.prototype.saveTransaction = function (close) {
|
|
306
|
-
if (close === void 0) { close = false; }
|
|
307
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
308
|
-
var response;
|
|
309
|
-
return __generator(this, function (_a) {
|
|
310
|
-
switch (_a.label) {
|
|
311
|
-
case 0: return [4 /*yield*/, this._connector.saveTransaction(this.currentTransaction.uuid)];
|
|
312
|
-
case 1:
|
|
313
|
-
response = _a.sent();
|
|
314
|
-
if (response.isSuccess) {
|
|
315
|
-
this._rememberCurrentTransaction(response);
|
|
316
|
-
}
|
|
317
|
-
return [2 /*return*/];
|
|
318
|
-
}
|
|
319
|
-
});
|
|
320
|
-
});
|
|
321
|
-
};
|
|
322
|
-
TransactionService.prototype.addRelationToTransaction = function (relationId) {
|
|
323
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
324
|
-
var success;
|
|
325
|
-
return __generator(this, function (_a) {
|
|
326
|
-
switch (_a.label) {
|
|
327
|
-
case 0: return [4 /*yield*/, this._connector.addRelationToTransaction(this._currentTransaction.uuid, relationId)];
|
|
328
|
-
case 1:
|
|
329
|
-
success = _a.sent();
|
|
330
|
-
if (!success) return [3 /*break*/, 4];
|
|
331
|
-
return [4 /*yield*/, this.saveTransaction()];
|
|
332
|
-
case 2:
|
|
333
|
-
_a.sent();
|
|
334
|
-
return [4 /*yield*/, this.getTransaction(this._currentTransaction.transactionNr)];
|
|
335
|
-
case 3:
|
|
336
|
-
_a.sent();
|
|
337
|
-
_a.label = 4;
|
|
338
|
-
case 4: return [2 /*return*/];
|
|
339
|
-
}
|
|
340
|
-
});
|
|
341
|
-
});
|
|
342
|
-
};
|
|
343
|
-
TransactionService.prototype.getCommissionCodes = function (languageCode) {
|
|
344
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
345
|
-
return __generator(this, function (_a) {
|
|
346
|
-
switch (_a.label) {
|
|
347
|
-
case 0: return [4 /*yield*/, this._connector.getCommissionCodes(languageCode)];
|
|
348
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
349
|
-
}
|
|
350
|
-
});
|
|
351
|
-
});
|
|
352
|
-
};
|
|
353
|
-
TransactionService.prototype.getInOutCollection = function (languageCode) {
|
|
354
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
355
|
-
return __generator(this, function (_a) {
|
|
356
|
-
switch (_a.label) {
|
|
357
|
-
case 0: return [4 /*yield*/, this._connector.getInOutCollection(languageCode)];
|
|
358
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
359
|
-
}
|
|
360
|
-
});
|
|
361
|
-
});
|
|
362
|
-
};
|
|
363
|
-
TransactionService.prototype.getTransactionArticleWarehouses = function (goodId) {
|
|
364
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
365
|
-
return __generator(this, function (_a) {
|
|
366
|
-
return [2 /*return*/, this._connector.getTransactionArticleWarehouses(goodId)];
|
|
367
|
-
});
|
|
368
|
-
});
|
|
369
|
-
};
|
|
370
|
-
TransactionService.prototype.getMarketingCodes = function () {
|
|
371
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
372
|
-
return __generator(this, function (_a) {
|
|
373
|
-
switch (_a.label) {
|
|
374
|
-
case 0: return [4 /*yield*/, this._connector.getMarketingCodes()];
|
|
375
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
376
|
-
}
|
|
377
|
-
});
|
|
378
|
-
});
|
|
379
|
-
};
|
|
380
|
-
TransactionService.prototype.insertCustomer = function (relation) {
|
|
381
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
382
|
-
return __generator(this, function (_a) {
|
|
383
|
-
switch (_a.label) {
|
|
384
|
-
case 0: return [4 /*yield*/, this._connector.insertCustomer(relation)];
|
|
385
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
386
|
-
}
|
|
387
|
-
});
|
|
388
|
-
});
|
|
389
|
-
};
|
|
390
|
-
TransactionService.prototype.updateCustomer = function (relation) {
|
|
391
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
392
|
-
var _this = this;
|
|
393
|
-
return __generator(this, function (_a) {
|
|
394
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
395
|
-
_this._connector.updateCustomer(relation).then(function (response) { return __awaiter(_this, void 0, void 0, function () {
|
|
396
|
-
return __generator(this, function (_a) {
|
|
397
|
-
this._currentRelation = relation;
|
|
398
|
-
resolve(response);
|
|
399
|
-
return [2 /*return*/];
|
|
400
|
-
});
|
|
401
|
-
}); })
|
|
402
|
-
.catch(function (response) {
|
|
403
|
-
resolve(response);
|
|
404
|
-
});
|
|
405
|
-
})];
|
|
406
|
-
});
|
|
407
|
-
});
|
|
408
|
-
};
|
|
409
|
-
TransactionService.prototype.getDeliveryMethods = function () {
|
|
410
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
411
|
-
return __generator(this, function (_a) {
|
|
412
|
-
switch (_a.label) {
|
|
413
|
-
case 0: return [4 /*yield*/, this._connector.getDeliveryMethods()];
|
|
414
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
415
|
-
}
|
|
416
|
-
});
|
|
417
|
-
});
|
|
418
|
-
};
|
|
419
|
-
TransactionService.prototype.getDeliveryOptions = function () {
|
|
420
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
421
|
-
return __generator(this, function (_a) {
|
|
422
|
-
switch (_a.label) {
|
|
423
|
-
case 0: return [4 /*yield*/, this._connector.getDeliveryOptions()];
|
|
424
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
425
|
-
}
|
|
426
|
-
});
|
|
427
|
-
});
|
|
428
|
-
};
|
|
429
|
-
TransactionService.prototype.setTransactionDeliveryOptions = function () {
|
|
430
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
431
|
-
var transactionDeliveryOptionsRequest;
|
|
432
|
-
var _this = this;
|
|
433
|
-
return __generator(this, function (_a) {
|
|
434
|
-
transactionDeliveryOptionsRequest = this._getTransactionDeliveryOptions();
|
|
435
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
436
|
-
_this._connector.setTransactionDeliveryOptions(transactionDeliveryOptionsRequest).then(function (response) { return __awaiter(_this, void 0, void 0, function () {
|
|
437
|
-
return __generator(this, function (_a) {
|
|
438
|
-
resolve(response.isSuccess);
|
|
439
|
-
return [2 /*return*/];
|
|
440
|
-
});
|
|
441
|
-
}); }, function (error) {
|
|
442
|
-
reject(error);
|
|
443
|
-
})
|
|
444
|
-
.catch(function (response) {
|
|
445
|
-
resolve(false);
|
|
446
|
-
});
|
|
447
|
-
})];
|
|
448
|
-
});
|
|
449
|
-
});
|
|
450
|
-
};
|
|
451
|
-
TransactionService.prototype.getRelationListObjects = function (relationRequest) {
|
|
452
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
453
|
-
return __generator(this, function (_a) {
|
|
454
|
-
switch (_a.label) {
|
|
455
|
-
case 0: return [4 /*yield*/, this._connector.getRelationListObjects(relationRequest)];
|
|
456
|
-
case 1: return [2 /*return*/, _a.sent()];
|
|
457
|
-
}
|
|
458
|
-
});
|
|
459
|
-
});
|
|
460
|
-
};
|
|
461
|
-
TransactionService.prototype.retrieveLineImage = function (line) {
|
|
462
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
463
|
-
var goodId;
|
|
464
|
-
return __generator(this, function (_a) {
|
|
465
|
-
switch (_a.label) {
|
|
466
|
-
case 0: return [4 /*yield*/, this._connector.getGoodIdFromArticleNr(line.articleNumber)];
|
|
467
|
-
case 1:
|
|
468
|
-
goodId = _a.sent();
|
|
469
|
-
if (!isNaN(goodId)) {
|
|
470
|
-
return [2 /*return*/, this._connector.getSingleImage(goodId, 1, true, true)];
|
|
471
|
-
}
|
|
472
|
-
else {
|
|
473
|
-
return [2 /*return*/, ""];
|
|
474
|
-
}
|
|
475
|
-
return [2 /*return*/];
|
|
476
|
-
}
|
|
477
|
-
});
|
|
478
|
-
});
|
|
479
|
-
};
|
|
480
|
-
TransactionService.prototype.addArticle = function (articleNo, amount, warehouseNo, commissionCode, isReturn) {
|
|
481
|
-
if (amount === void 0) { amount = 1; }
|
|
482
|
-
if (warehouseNo === void 0) { warehouseNo = 1; }
|
|
483
|
-
if (commissionCode === void 0) { commissionCode = "2"; }
|
|
484
|
-
if (isReturn === void 0) { isReturn = false; }
|
|
485
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
486
|
-
var _this = this;
|
|
487
|
-
return __generator(this, function (_a) {
|
|
488
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
489
|
-
_this._connector.addTransactionLine(_this._currentTransaction.uuid, TransactionLineType.ArticleLine, articleNo, amount, warehouseNo, commissionCode, isReturn)
|
|
490
|
-
.then(function (response) { return __awaiter(_this, void 0, void 0, function () {
|
|
491
|
-
return __generator(this, function (_a) {
|
|
492
|
-
resolve(true);
|
|
493
|
-
return [2 /*return*/];
|
|
494
|
-
});
|
|
495
|
-
}); }, function (error) {
|
|
496
|
-
reject(error);
|
|
497
|
-
})
|
|
498
|
-
.catch(function (reason) {
|
|
499
|
-
resolve(false);
|
|
500
|
-
});
|
|
501
|
-
})];
|
|
502
|
-
});
|
|
503
|
-
});
|
|
504
|
-
};
|
|
505
|
-
TransactionService.prototype.addTransactionLine = function (lineType, articleNo, amount, warehouseNo, commissionCode, isReturn) {
|
|
506
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
507
|
-
var _this = this;
|
|
508
|
-
return __generator(this, function (_a) {
|
|
509
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
510
|
-
_this._connector.addTransactionLine(_this.currentTransaction.uuid, lineType, articleNo, amount, warehouseNo, commissionCode, isReturn)
|
|
511
|
-
.then(function (response) { return __awaiter(_this, void 0, void 0, function () {
|
|
512
|
-
return __generator(this, function (_a) {
|
|
513
|
-
this._rememberCurrentTransaction(response);
|
|
514
|
-
this._rememberCurrentTransactionLineStatus(response);
|
|
515
|
-
resolve(response);
|
|
516
|
-
return [2 /*return*/];
|
|
517
|
-
});
|
|
518
|
-
}); }, function (error) {
|
|
519
|
-
reject(error);
|
|
520
|
-
})
|
|
521
|
-
.catch(function (reason) {
|
|
522
|
-
resolve();
|
|
523
|
-
});
|
|
524
|
-
})];
|
|
525
|
-
});
|
|
526
|
-
});
|
|
527
|
-
};
|
|
528
|
-
TransactionService.prototype.cancelAddTransactionLine = function (lineUuid) {
|
|
529
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
530
|
-
var _this = this;
|
|
531
|
-
return __generator(this, function (_a) {
|
|
532
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
533
|
-
_this._connector.cancelAddTransactionLine(lineUuid)
|
|
534
|
-
.then(function (response) { return __awaiter(_this, void 0, void 0, function () {
|
|
535
|
-
return __generator(this, function (_a) {
|
|
536
|
-
this._rememberCurrentTransaction(response);
|
|
537
|
-
if (response.isSuccess) {
|
|
538
|
-
resolve(response);
|
|
539
|
-
}
|
|
540
|
-
else {
|
|
541
|
-
reject(response);
|
|
542
|
-
}
|
|
543
|
-
return [2 /*return*/];
|
|
544
|
-
});
|
|
545
|
-
}); })
|
|
546
|
-
.catch(function (reason) {
|
|
547
|
-
resolve();
|
|
548
|
-
});
|
|
549
|
-
})];
|
|
550
|
-
});
|
|
551
|
-
});
|
|
552
|
-
};
|
|
553
|
-
TransactionService.prototype.deleteTransactionLine = function (transactionUuid, TransactionLineUuid) {
|
|
554
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
555
|
-
var _this = this;
|
|
556
|
-
return __generator(this, function (_a) {
|
|
557
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
558
|
-
_this._connector.deleteTransactionLine(transactionUuid, TransactionLineUuid)
|
|
559
|
-
.then(function (response) { return __awaiter(_this, void 0, void 0, function () {
|
|
560
|
-
return __generator(this, function (_a) {
|
|
561
|
-
this._rememberCurrentTransaction(response);
|
|
562
|
-
this._rememberCurrentTransactionLineStatus(response);
|
|
563
|
-
if (response.isSuccess) {
|
|
564
|
-
resolve(response);
|
|
565
|
-
}
|
|
566
|
-
else {
|
|
567
|
-
reject(response);
|
|
568
|
-
}
|
|
569
|
-
return [2 /*return*/];
|
|
570
|
-
});
|
|
571
|
-
}); })
|
|
572
|
-
.catch(function (reason) {
|
|
573
|
-
resolve();
|
|
574
|
-
});
|
|
575
|
-
})];
|
|
576
|
-
});
|
|
577
|
-
});
|
|
578
|
-
};
|
|
579
|
-
TransactionService.prototype.changeTransactionLineQuantity = function (lineUuid, newQuantity) {
|
|
580
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
581
|
-
var _this = this;
|
|
582
|
-
return __generator(this, function (_a) {
|
|
583
|
-
return [2 /*return*/, new Promise(function (resolve) {
|
|
584
|
-
_this._connector.changeTransactionLineQuantity(_this.currentTransaction.uuid, lineUuid, newQuantity)
|
|
585
|
-
.then(function (response) { return __awaiter(_this, void 0, void 0, function () {
|
|
586
|
-
return __generator(this, function (_a) {
|
|
587
|
-
if (response.isSuccess) {
|
|
588
|
-
this._rememberCurrentTransaction(response);
|
|
589
|
-
this._rememberCurrentTransactionLineStatus(response);
|
|
590
|
-
}
|
|
591
|
-
resolve(response);
|
|
592
|
-
return [2 /*return*/];
|
|
593
|
-
});
|
|
594
|
-
}); }).catch(function (reason) {
|
|
595
|
-
resolve();
|
|
596
|
-
});
|
|
597
|
-
})];
|
|
598
|
-
});
|
|
599
|
-
});
|
|
600
|
-
};
|
|
601
|
-
TransactionService.prototype.setRelationByUser = function (username, password) {
|
|
602
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
603
|
-
var _this = this;
|
|
604
|
-
return __generator(this, function (_a) {
|
|
605
|
-
return [2 /*return*/, new Promise(function (resolve) {
|
|
606
|
-
_this._connector.setRelationByUser(_this.currentTransaction.uuid, username, password)
|
|
607
|
-
.then(function (isSuccess) { return __awaiter(_this, void 0, void 0, function () {
|
|
608
|
-
return __generator(this, function (_a) {
|
|
609
|
-
resolve(isSuccess);
|
|
610
|
-
return [2 /*return*/];
|
|
611
|
-
});
|
|
612
|
-
}); }).catch(function (reason) {
|
|
613
|
-
resolve(false);
|
|
614
|
-
});
|
|
615
|
-
})];
|
|
616
|
-
});
|
|
617
|
-
});
|
|
618
|
-
};
|
|
619
|
-
// public async setRelationByUser(username: string, password: string): Promise<boolean> {
|
|
620
|
-
// const response: boolean = await this._connector.setRelationByUser(this.currentTransaction.uuid, username, password);
|
|
621
|
-
// return response;
|
|
622
|
-
// }
|
|
623
|
-
TransactionService.prototype._initializeTransaction = function () {
|
|
624
|
-
if (this._currentTransaction.preferredDeliveryDate2 === undefined) {
|
|
625
|
-
this._currentTransaction.preferredDeliveryDate2 = "=";
|
|
626
|
-
}
|
|
627
|
-
};
|
|
628
|
-
TransactionService.prototype._rememberCurrentTransaction = function (value) {
|
|
629
|
-
this._currentTransaction = value.transactionInfo;
|
|
630
|
-
this._initializeTransaction();
|
|
631
|
-
this.currentLines = value.transactionLines;
|
|
632
|
-
this.currentTotals = value.transactionTotal;
|
|
633
|
-
this.currentLineOperationStatuses = value.lineOperationStatuses;
|
|
634
|
-
this._updateRelation();
|
|
635
|
-
this.transactionUpdated.emit();
|
|
636
|
-
};
|
|
637
|
-
TransactionService.prototype._rememberCurrentTransactionLineStatus = function (value) {
|
|
638
|
-
// this._currentLineOperationStatus.uuid = value.lineUuid;
|
|
639
|
-
// this._currentLineOperationStatus.pendingReason = value.pendingReason;
|
|
640
|
-
// this._currentLineOperationStatus.pendingReasonType = value.pendingReasonType;
|
|
641
|
-
};
|
|
642
|
-
TransactionService.prototype._updateRelation = function () {
|
|
643
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
644
|
-
var relationNr, _a;
|
|
645
|
-
return __generator(this, function (_b) {
|
|
646
|
-
switch (_b.label) {
|
|
647
|
-
case 0:
|
|
648
|
-
if (!(this.currentTransaction && this.currentTransaction.relation && this.currentTransaction.relation.relationId)) return [3 /*break*/, 3];
|
|
649
|
-
if (!(!this._currentRelation || this._currentRelation.relationId !== this.currentTransaction.relation.relationId)) return [3 /*break*/, 3];
|
|
650
|
-
return [4 /*yield*/, this._connector.getRelationNumber(this.currentTransaction.relation.relationId)];
|
|
651
|
-
case 1:
|
|
652
|
-
relationNr = _b.sent();
|
|
653
|
-
if (!relationNr) return [3 /*break*/, 3];
|
|
654
|
-
_a = this;
|
|
655
|
-
return [4 /*yield*/, this._connector.getCustomerFullObject(Number(relationNr))];
|
|
656
|
-
case 2:
|
|
657
|
-
_a._currentRelation = _b.sent();
|
|
658
|
-
_b.label = 3;
|
|
659
|
-
case 3: return [2 /*return*/];
|
|
660
|
-
}
|
|
661
|
-
});
|
|
662
|
-
});
|
|
663
|
-
};
|
|
664
|
-
TransactionService.prototype._getTransactionDeliveryOptions = function () {
|
|
665
|
-
var transactionDeliveryOptionsRequest = new SetTransactionDeliveryOptionsRequest();
|
|
666
|
-
transactionDeliveryOptionsRequest.allowPartialDelivery = this._currentTransaction.allowPartialDelivery;
|
|
667
|
-
transactionDeliveryOptionsRequest.deliveryDate = this._currentTransaction.deliveryDate;
|
|
668
|
-
transactionDeliveryOptionsRequest.deliveryMethod = this._currentTransaction.deliveryMethod;
|
|
669
|
-
transactionDeliveryOptionsRequest.deliveryOptions = this._currentTransaction.deliveryOptions;
|
|
670
|
-
transactionDeliveryOptionsRequest.marketingCode = this._currentTransaction.marketingCode;
|
|
671
|
-
transactionDeliveryOptionsRequest.ownReference = this._currentTransaction.ownReference;
|
|
672
|
-
transactionDeliveryOptionsRequest.preferredDeliveryDate = this._currentTransaction.preferredDeliveryDate;
|
|
673
|
-
transactionDeliveryOptionsRequest.preferredDeliveryDate2 = this._currentTransaction.preferredDeliveryDate2;
|
|
674
|
-
transactionDeliveryOptionsRequest.relationReference = this._currentTransaction.relationReference;
|
|
675
|
-
transactionDeliveryOptionsRequest.remark = this._currentTransaction.remark;
|
|
676
|
-
transactionDeliveryOptionsRequest.transactionUuid = this._currentTransaction.uuid;
|
|
677
|
-
transactionDeliveryOptionsRequest.transactionAddress = this._currentTransaction.transactionAddress.nawNr;
|
|
678
|
-
transactionDeliveryOptionsRequest.invoiceAddress = this._currentTransaction.invoiceAddress.nawNr;
|
|
679
|
-
return transactionDeliveryOptionsRequest;
|
|
680
|
-
};
|
|
681
|
-
TransactionService.ctorParameters = function () { return [
|
|
682
|
-
{ type: IOneConnectorAdapterService }
|
|
683
|
-
]; };
|
|
684
|
-
TransactionService = __decorate([
|
|
685
|
-
Injectable()
|
|
686
|
-
], TransactionService);
|
|
687
|
-
return TransactionService;
|
|
688
|
-
}());
|
|
689
|
-
export { TransactionService };
|
|
690
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb2xpam5pdC90cmFuc2FjdGlvbi8iLCJzb3VyY2VzIjpbImFwcC9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQWtCLFVBQVUsRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUc3RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUU5RixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFHMUYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBSXBGLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUN0RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDNUUsT0FBTyxFQUFDLG9DQUFvQyxFQUFDLE1BQU0sa0ZBQWtGLENBQUM7QUFJdEksT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFFM0YsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFLbkcsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFHbEcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBRXpGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBRy9GO0lBMERFLDRCQUNTLFVBQXVDO1FBQXZDLGVBQVUsR0FBVixVQUFVLENBQTZCO1FBMUR6Qyx1QkFBa0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUdsRSxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQTZDakMsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFFekIsa0JBQWEs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LEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQztRQUN2RixpQ0FBaUMsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLENBQUM7UUFDekcsaUNBQWlDLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHNCQUFzQixDQUFDO1FBQzNHLGlDQUFpQyxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsQ0FBQztRQUNqRyxpQ0FBaUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztRQUMzRSxpQ0FBaUMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztRQUNsRixpQ0FBaUMsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1FBQ3pHLGlDQUFpQyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUNqRyxPQUFPLGlDQUFpQyxDQUFDO0lBQzNDLENBQUM7O2dCQXRWb0IsMkJBQTJCOztJQTNEckMsa0JBQWtCO1FBRDlCLFVBQVUsRUFBRTtPQUNBLGtCQUFrQixDQWtaOUI7SUFBRCx5QkFBQztDQUFBLEFBbFpELElBa1pDO1NBbFpZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXZlbnRFbWl0dGVyLCBJbmplY3QsIGluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0lPbmVDb25uZWN0b3JBZGFwdGVyU2VydmljZX0gZnJvbSBcIi4vaW9uZS1jb25uZWN0b3ItYWRhcHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0N1c3RvbWVyRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ib1wiO1xuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tYW55LXR5cGVcIjtcbmltcG9ydCB7TlVMTF9SRUxBVElPTl9PQkpFQ1R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbnVsLXJlbGF0aW9uLW9iamVjdFwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWtpbmQuZW51bVwiO1xuaW1wb3J0IHtNYXJrZXRpbmd9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbWFya2V0aW5nLmJvXCI7XG5pbXBvcnQge1JlbGF0aW9uUHJpdmFjeVNldHRpbmd9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tcHJpdmFjeS1zZXR0aW5nLmJvXCI7XG5pbXBvcnQge1NlcXVlbmNlTmFtZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3NlcXVlbmNlLW5hbWUuZW51bVwiO1xuaW1wb3J0IHtEZWxpdmVyeU1ldGhvZH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kZWxpdmVyeS1tZXRob2QuYm9cIjtcbmltcG9ydCB7RGVsaXZlcnlPcHRpb259IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktb3B0aW9uLmJvXCI7XG5pbXBvcnQge0NvbnRhY3RPcHRpb259IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY29udGFjdC1vcHRpb24uYm9cIjtcbmltcG9ydCB7aXNOaWxsfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL3V0aWxzL2Z1bmN0aW9uL2lzLW5pbGwuZnVuY3Rpb25cIjtcbmltcG9ydCB7QXJyYXlVdGlsc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC91dGlscy9hcnJheS11dGlsc1wiO1xuaW1wb3J0IHtTZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvc2V0LXRyYW5zYWN0aW9uLWRlbGl2ZXJ5LW9wdGlvbnMtcmVxdWVzdC5ib1wiO1xuaW1wb3J0IHtSZWxhdGlvbkxpc3RPYmplY3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tbGlzdC1vYmplY3QuYm9cIjtcbmltcG9ydCB7UmVsYXRpb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLXJlcXVlc3RcIjtcbmltcG9ydCB7Q291bnRyeX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jb3VudHJ5LmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uVG90YWx9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tdG90YWwuYm9cIjtcbmltcG9ydCB7VmFsaWRhdGlvblJlc3VsdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC92YWxpZGF0aW9uLXJlc3VsdFwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24tbGluZS10eXBlLmVudW1cIjtcbmltcG9ydCB7UmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZXNvbHZlLXBlbmRpbmctcmVhc29uLXJlcXVlc3QuYm9cIjtcbmltcG9ydCB7Q29Eb21haW5WYWx1ZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jby1kb21haW4tdmFsdWUuYm9cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWFydGljbGUtd2FyZWhvdXNlLmJvXCI7XG5pbXBvcnQge0FydGljbGVGdWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZnVsbC1vYmplY3RcIjtcbmltcG9ydCB7TGluZU9wZXJhdGlvblN0YXR1c30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9saW5lLW9wZXJhdGlvbi1zdGF0dXMuYm9cIjtcbmltcG9ydCB7TGluZU9wZXJhdGlvblJlc3BvbnNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2xpbmUtb3BlcmF0aW9uLXJlc3BvbnNlLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uUmVzcG9uc2VCYXNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLXJlc3BvbnNlLWJhc2UuYm9cIjtcbmltcG9ydCB7UGVuZGluZ1JlYXNvblR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9wZW5kaW5nLXJlYXNvbi10eXBlLmVudW1cIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VydmljZSB7XG4gIHB1YmxpYyB0cmFuc2FjdGlvblVwZGF0ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwdWJsaWMgZW1haWxBZGRyZXNzOiBzdHJpbmc7XG4gIHB1YmxpYyBhcHBsaWNhdGlvblVzZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRMaW5lcygpOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10ge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50TGluZXM7XG4gIH1cblxuICBwdWJsaWMgc2V0IGN1cnJlbnRMaW5lcyh2YWx1ZTogVHJhbnNhY3Rpb25MaW5lSW5mb1tdKSB7XG4gICAgdGhpcy5fY3VycmVudExpbmVzID0gdmFsdWU7XG4gICAgdGhpcy5hcnRpY2xlQW1vdW50ID0gQXJyYXlVdGlscy5GaW5kQWxsKHRoaXMuX2N1cnJlbnRMaW5lcywgbGluZSA9PiBsaW5lLmlzQXJ0aWNsZSkubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIHNldCBjdXJyZW50VG90YWxzKHZhbHVlOiBUcmFuc2FjdGlvblRvdGFsKSB7XG4gICAgdGhpcy5fY3VycmVudFRvdGFscyA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50VG90YWxzKCk6IFRyYW5zYWN0aW9uVG90YWwge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VG90YWxzO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50UmVsYXRpb24oKTogUmVsYXRpb25BbnlUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFJlbGF0aW9uO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50VHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25JbmZvIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgcHVibGljIHNldCBjdXJyZW50TGluZU9wZXJhdGlvblN0YXR1c2VzKHZhbHVlczogTGluZU9wZXJhdGlvblN0YXR1c1tdKSB7XG4gICAgdGhpcy5fY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXNlcyA9IHZhbHVlcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXNlcygpOiBMaW5lT3BlcmF0aW9uU3RhdHVzW10ge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1c2VzO1xuICB9XG5cbiAgcHVibGljIHNldCBjdXJyZW50TGluZU9wZXJhdGlvblN0YXR1cyh2YWx1ZTogTGluZU9wZXJhdGlvblN0YXR1cykge1xuICAgIHRoaXMuX2N1cnJlbnRMaW5lT3BlcmF0aW9uU3RhdHVzID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRMaW5lT3BlcmF0aW9uU3RhdHVzKCk6IExpbmVPcGVyYXRpb25TdGF0dXMgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHN0YXR1czogTGluZU9wZXJhdGlvblN0YXR1cyA9IHRoaXMuY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXNlcy5maW5kKGxpbmUgPT4gbGluZS5wZW5kaW5nUmVhc29uVHlwZSAhPT0gUGVuZGluZ1JlYXNvblR5cGUuTk9ORVxuICAgICAgICAmJiBsaW5lLnBlbmRpbmdSZWFzb25UeXBlICE9PSBQZW5kaW5nUmVhc29uVHlwZS5OT05fQ1JJVElDQUxfRElTQ09OVElOVUFUSU9OKTtcbiAgICByZXR1cm4gc3RhdHVzO1xuICB9XG5cbiAgcHVibGljIGFydGljbGVBbW91bnQ6IG51bWJlciA9IDA7XG5cbiAgcHJpdmF0ZSBfY3VycmVudExpbmVzOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10gPSBbXTtcbiAgcHJpdmF0ZSBfY3VycmVudFRvdGFsczogVHJhbnNhY3Rpb25Ub3RhbCA9IG5ldyBUcmFuc2FjdGlvblRvdGFsKCk7XG4gIHByaXZhdGUgX2N1cnJlbnRSZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlID0gTlVMTF9SRUxBVElPTl9PQkpFQ1Q7XG4gIHByaXZhdGUgX2N1cnJlbnRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvID0gbmV3IFRyYW5zYWN0aW9uSW5mbygpO1xuICBwcml2YXRlIF9jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1czogTGluZU9wZXJhdGlvblN0YXR1cyA9IG5ldyBMaW5lT3BlcmF0aW9uU3RhdHVzKCk7XG4gIHByaXZhdGUgX2N1cnJlbnRMaW5lT3BlcmF0aW9uU3RhdHVzZXM6IExpbmVPcGVyYXRpb25TdGF0dXNbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBfY29ubmVjdG9yOiBJT25lQ29ubmVjdG9yQWRhcHRlclNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuX2luaXRpYWxpemVUcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEFydGljbGVGdWxsT2JqZWN0KGdvb2RJZDogbnVtYmVyKTogUHJvbWlzZTxBcnRpY2xlRnVsbE9iamVjdD4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0QXJ0aWNsZUZ1bGxPYmplY3QoZ29vZElkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRHb29kSWRGcm9tQXJ0aWNsZU5yKHNrdTogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldEdvb2RJZEZyb21BcnRpY2xlTnIoc2t1KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvbigpOiBQcm9taXNlPFJlbGF0aW9uQW55VHlwZT4ge1xuICAgIGNvbnN0IHJlbGF0aW9uTm86IHN0cmluZyA9IGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRSZWxhdGlvbk51bWJlcih0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24ucmVsYXRpb24ucmVsYXRpb25JZCk7XG5cbiAgICBpZiAocmVsYXRpb25Obykge1xuICAgICAgdGhpcy5fY3VycmVudFJlbGF0aW9uID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldEN1c3RvbWVyRnVsbE9iamVjdChOdW1iZXIocmVsYXRpb25ObykpO1xuICAgICAgYXdhaXQgdGhpcy5sb2FkQ291bnRyaWVzT2ZSZWxhdGlvbkFkZHJlc3NlcygpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFJlbGF0aW9uO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvYWRDb3VudHJpZXNPZlJlbGF0aW9uQWRkcmVzc2VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAoY29uc3QgYWRkcmVzcyBvZiB0aGlzLmN1cnJlbnRSZWxhdGlvbi5hZGRyZXNzZXMpIHtcbiAgICAgIGNvbnN0IGNvdW50cnk6IENvdW50cnkgPSBhd2FpdCB0aGlzLmdldENvdW50cnkoYWRkcmVzcy5jb3VudHJ5SWQpO1xuICAgICAgYWRkcmVzcy5jb3VudHJ5TmFtZSA9IGNvdW50cnkuZGVzY3JpcHRpb247XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldENvdW50cnkoY291bnRyeUNvZGU6IHN0cmluZyk6IFByb21pc2U8Q291bnRyeT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0Q291bnRyeShjb3VudHJ5Q29kZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0UmVsYXRpb25OdW1iZXIocmVsYXRpb25JZDogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fY29ubmVjdG9yLmdldFJlbGF0aW9uTnVtYmVyKHJlbGF0aW9uSWQpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNhdmVOZXdSZWxhdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNsZWFuUmVsYXRpb25CZWZvcmVTYXZlKCk7XG4gICAgdGhpcy5fY3VycmVudFJlbGF0aW9uID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmluc2VydEN1c3RvbWVyKHRoaXMuX2N1cnJlbnRSZWxhdGlvbik7XG4gICAgYXdhaXQgdGhpcy5hZGRSZWxhdGlvblRvVHJhbnNhY3Rpb24odGhpcy5fY3VycmVudFJlbGF0aW9uLnJlbGF0aW9uSWQpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNhdmVSZWxhdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNsZWFuUmVsYXRpb25CZWZvcmVTYXZlKCk7XG4gICAgdGhpcy5fY3VycmVudFJlbGF0aW9uID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLnVwZGF0ZUN1c3RvbWVyKHRoaXMuX2N1cnJlbnRSZWxhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgY2xlYW5SZWxhdGlvbkJlZm9yZVNhdmUoKTogdm9pZCB7XG4gICAgQXJyYXlVdGlscy5SZW1vdmVFbGVtZW50c0J5RmlsdGVyKHRoaXMuX2N1cnJlbnRSZWxhdGlvbi5jb250YWN0T3B0aW9ucywgKChpdGVtOiBDb250YWN0T3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gaXNOaWxsKGl0ZW0udmFsdWUpO1xuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRTZXF1ZW5jZVZhbHVlKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRTZXF1ZW5jZVZhbHVlKFNlcXVlbmNlTmFtZS5SZWxhdGlvbklkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvblByaXZhY3lTZXR0aW5ncygpOiBQcm9taXNlPFJlbGF0aW9uUHJpdmFjeVNldHRpbmdbXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0UmVsYXRpb25Qcml2YWN5U2V0dGluZ3MoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVUcmFuc2FjdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IuY3JlYXRlVHJhbnNhY3Rpb24oVHJhbnNhY3Rpb25LaW5kLlNhbGVzT3JkZXIsIFwiMVwiKS50aGVuKChyZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5fcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24ocmVzcG9uc2UpO1xuICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgIH0pLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgcmVqZWN0KGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihwZW5kaW5nTGluZVZhbHVlczogUmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdCk6IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4oKHJlc29sdmU6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHBlbmRpbmdMaW5lVmFsdWVzKS50aGVuKGFzeW5jIChyZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuX3JlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5fcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb25MaW5lU3RhdHVzKHJlc3BvbnNlKTtcbiAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICB9KS5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25ObzogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMub3BlbkV4aXN0aW5nVHJhbnNhY3Rpb24oVHJhbnNhY3Rpb25LaW5kLlNhbGVzT3JkZXIsIHRyYW5zYWN0aW9uTm8pO1xuICB9XG5cbiAgcHVibGljIG9wZW5FeGlzdGluZ1RyYW5zYWN0aW9uKGtpbmQ6IFRyYW5zYWN0aW9uS2luZCwgdHJhbnNhY3Rpb25OcjogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLmdldFRyYW5zYWN0aW9uQnlOckFuZEtpbmQoa2luZCwgdHJhbnNhY3Rpb25OcilcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuX3JlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuaXNTdWNjZXNzKSB7XG4gICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWplY3QoZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgICByZWplY3QoZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzYXZlVHJhbnNhY3Rpb24oY2xvc2U6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSA9IGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5zYXZlVHJhbnNhY3Rpb24odGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udXVpZCk7XG4gICAgaWYgKHJlc3BvbnNlLmlzU3VjY2Vzcykge1xuICAgICAgdGhpcy5fcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24ocmVzcG9uc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRSZWxhdGlvblRvVHJhbnNhY3Rpb24ocmVsYXRpb25JZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc3VjY2VzczogYm9vbGVhbiA9ICBhd2FpdCB0aGlzLl9jb25uZWN0b3IuYWRkUmVsYXRpb25Ub1RyYW5zYWN0aW9uKHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi51dWlkLCByZWxhdGlvbklkKTtcbiAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgYXdhaXQgdGhpcy5zYXZlVHJhbnNhY3Rpb24oKTtcbiAgICAgIGF3YWl0IHRoaXMuZ2V0VHJhbnNhY3Rpb24odGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTnIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDb21taXNzaW9uQ29kZXMobGFuZ3VhZ2VDb2RlOiBzdHJpbmcpOiBQcm9taXNlPENvRG9tYWluVmFsdWVbXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0Q29tbWlzc2lvbkNvZGVzKGxhbmd1YWdlQ29kZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0SW5PdXRDb2xsZWN0aW9uKGxhbmd1YWdlQ29kZTogc3RyaW5nKTogUHJvbWlzZTxDb0RvbWFpblZhbHVlW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldEluT3V0Q29sbGVjdGlvbihsYW5ndWFnZUNvZGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZXMoZ29vZElkOiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rvci5nZXRUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VzKGdvb2RJZCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0TWFya2V0aW5nQ29kZXMoKTogUHJvbWlzZTxNYXJrZXRpbmdbXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0TWFya2V0aW5nQ29kZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbnNlcnRDdXN0b21lcihyZWxhdGlvbjogQ3VzdG9tZXJGdWxsT2JqZWN0KTogUHJvbWlzZTxDdXN0b21lckZ1bGxPYmplY3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmluc2VydEN1c3RvbWVyKHJlbGF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVDdXN0b21lcihyZWxhdGlvbjogQ3VzdG9tZXJGdWxsT2JqZWN0KTogUHJvbWlzZTxDdXN0b21lckZ1bGxPYmplY3Q+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Q3VzdG9tZXJGdWxsT2JqZWN0PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IudXBkYXRlQ3VzdG9tZXIocmVsYXRpb24pLnRoZW4oYXN5bmMoIHJlc3BvbnNlOiBDdXN0b21lckZ1bGxPYmplY3QpID0+IHtcbiAgICAgICAgdGhpcy5fY3VycmVudFJlbGF0aW9uID0gcmVsYXRpb247XG4gICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgocmVzcG9uc2U6IEN1c3RvbWVyRnVsbE9iamVjdCkgPT4ge1xuICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldERlbGl2ZXJ5TWV0aG9kcygpOiBQcm9taXNlPERlbGl2ZXJ5TWV0aG9kW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldERlbGl2ZXJ5TWV0aG9kcygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldERlbGl2ZXJ5T3B0aW9ucygpOiBQcm9taXNlPERlbGl2ZXJ5T3B0aW9uW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldERlbGl2ZXJ5T3B0aW9ucygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdDogU2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0ID0gdGhpcy5fZ2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnMoKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLnNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdCkudGhlbihhc3luYyggcmVzcG9uc2U6IFRyYW5zYWN0aW9uUmVzcG9uc2VCYXNlKSA9PiB7XG4gICAgICAgIHJlc29sdmUocmVzcG9uc2UuaXNTdWNjZXNzKTtcbiAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgocmVzcG9uc2U6IFRyYW5zYWN0aW9uUmVzcG9uc2VCYXNlKSA9PiB7XG4gICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0UmVsYXRpb25MaXN0T2JqZWN0cyhyZWxhdGlvblJlcXVlc3Q6IFJlbGF0aW9uUmVxdWVzdCk6IFByb21pc2U8UmVsYXRpb25MaXN0T2JqZWN0W10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldFJlbGF0aW9uTGlzdE9iamVjdHMocmVsYXRpb25SZXF1ZXN0KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZXRyaWV2ZUxpbmVJbWFnZShsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBnb29kSWQ6IG51bWJlciA9IGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRHb29kSWRGcm9tQXJ0aWNsZU5yKGxpbmUuYXJ0aWNsZU51bWJlcik7XG4gICAgaWYgKCFpc05hTihnb29kSWQpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29ubmVjdG9yLmdldFNpbmdsZUltYWdlKGdvb2RJZCwgMSwgdHJ1ZSwgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRBcnRpY2xlKGFydGljbGVObzogc3RyaW5nLCBhbW91bnQ6IG51bWJlciA9IDEsIHdhcmVob3VzZU5vOiBudW1iZXIgPSAxLCBjb21taXNzaW9uQ29kZTogc3RyaW5nID0gXCIyXCIsIGlzUmV0dXJuOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLmFkZFRyYW5zYWN0aW9uTGluZSh0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24udXVpZCwgVHJhbnNhY3Rpb25MaW5lVHlwZS5BcnRpY2xlTGluZSwgYXJ0aWNsZU5vLCBhbW91bnQsIHdhcmVob3VzZU5vLCBjb21taXNzaW9uQ29kZSwgaXNSZXR1cm4pXG4gICAgICAgIC50aGVuKGFzeW5jKCByZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZFRyYW5zYWN0aW9uTGluZShsaW5lVHlwZTogVHJhbnNhY3Rpb25MaW5lVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnRpY2xlTm86IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQ6IG51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJlaG91c2VObz86IG51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21taXNzaW9uQ29kZT86IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JldHVybj86IGJvb2xlYW4pOiBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5hZGRUcmFuc2FjdGlvbkxpbmUodGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udXVpZCwgbGluZVR5cGUsIGFydGljbGVObywgYW1vdW50LCB3YXJlaG91c2VObywgY29tbWlzc2lvbkNvZGUsIGlzUmV0dXJuKVxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2U6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuX3JlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcbiAgICAgICAgICB0aGlzLl9yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbkxpbmVTdGF0dXMocmVzcG9uc2UpO1xuICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKGxpbmVVdWlkOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IuY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKGxpbmVVdWlkKVxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24ocmVzcG9uc2UpO1xuICAgICAgICAgIGlmIChyZXNwb25zZS5pc1N1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWplY3QocmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZVRyYW5zYWN0aW9uTGluZSh0cmFuc2FjdGlvblV1aWQ6IHN0cmluZywgVHJhbnNhY3Rpb25MaW5lVXVpZDogc3RyaW5nKTogUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IuZGVsZXRlVHJhbnNhY3Rpb25MaW5lKHRyYW5zYWN0aW9uVXVpZCwgVHJhbnNhY3Rpb25MaW5lVXVpZClcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLl9yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbihyZXNwb25zZSk7XG4gICAgICAgICAgdGhpcy5fcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb25MaW5lU3RhdHVzKHJlc3BvbnNlKTtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuaXNTdWNjZXNzKSB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VUcmFuc2FjdGlvbkxpbmVRdWFudGl0eShsaW5lVXVpZDogc3RyaW5nLCBuZXdRdWFudGl0eTogbnVtYmVyKTogUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPigocmVzb2x2ZTogRnVuY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVRdWFudGl0eSh0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi51dWlkLCBsaW5lVXVpZCwgbmV3UXVhbnRpdHkpXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmlzU3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5fcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24ocmVzcG9uc2UpO1xuICAgICAgICAgICAgdGhpcy5fcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb25MaW5lU3RhdHVzKHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgIH0pLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRSZWxhdGlvbkJ5VXNlcih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlOiBGdW5jdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLnNldFJlbGF0aW9uQnlVc2VyKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnV1aWQsIHVzZXJuYW1lLCBwYXNzd29yZClcbiAgICAgICAgLnRoZW4oYXN5bmMgKGlzU3VjY2VzczogYm9vbGVhbikgPT4ge1xuICAgICAgICAgIHJlc29sdmUoaXNTdWNjZXNzKTtcbiAgICAgICAgfSkuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIC8vIHB1YmxpYyBhc3luYyBzZXRSZWxhdGlvbkJ5VXNlcih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIC8vICAgY29uc3QgcmVzcG9uc2U6IGJvb2xlYW4gPSBhd2FpdCB0aGlzLl9jb25uZWN0b3Iuc2V0UmVsYXRpb25CeVVzZXIodGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udXVpZCwgdXNlcm5hbWUsIHBhc3N3b3JkKTtcbiAgLy8gICByZXR1cm4gcmVzcG9uc2U7XG4gIC8vIH1cblxuICBwcml2YXRlIF9pbml0aWFsaXplVHJhbnNhY3Rpb24oKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZTIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24ucHJlZmVycmVkRGVsaXZlcnlEYXRlMiA9IFwiPVwiO1xuICAgICAgfVxuICB9XG4gIHByaXZhdGUgX3JlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHZhbHVlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSk6IHZvaWQge1xuICAgIHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbiA9IHZhbHVlLnRyYW5zYWN0aW9uSW5mbztcbiAgICB0aGlzLl9pbml0aWFsaXplVHJhbnNhY3Rpb24oKTtcblxuICAgIHRoaXMuY3VycmVudExpbmVzID0gdmFsdWUudHJhbnNhY3Rpb25MaW5lcztcbiAgICB0aGlzLmN1cnJlbnRUb3RhbHMgPSB2YWx1ZS50cmFuc2FjdGlvblRvdGFsO1xuXG4gICAgdGhpcy5jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1c2VzID0gdmFsdWUubGluZU9wZXJhdGlvblN0YXR1c2VzO1xuXG4gICAgdGhpcy5fdXBkYXRlUmVsYXRpb24oKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uVXBkYXRlZC5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIF9yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbkxpbmVTdGF0dXModmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSk6IHZvaWQge1xuICAgIC8vIHRoaXMuX2N1cnJlbnRMaW5lT3BlcmF0aW9uU3RhdHVzLnV1aWQgPSB2YWx1ZS5saW5lVXVpZDtcbiAgICAvLyB0aGlzLl9jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uID0gdmFsdWUucGVuZGluZ1JlYXNvbjtcbiAgICAvLyB0aGlzLl9jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHlwZSA9IHZhbHVlLnBlbmRpbmdSZWFzb25UeXBlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdXBkYXRlUmVsYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uICYmIHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnJlbGF0aW9uICYmIHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnJlbGF0aW9uLnJlbGF0aW9uSWQpIHtcbiAgICAgIGlmICghdGhpcy5fY3VycmVudFJlbGF0aW9uIHx8IHRoaXMuX2N1cnJlbnRSZWxhdGlvbi5yZWxhdGlvbklkICE9PSB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi5yZWxhdGlvbi5yZWxhdGlvbklkKSB7XG4gICAgICAgIGNvbnN0IHJlbGF0aW9uTnI6IHN0cmluZyA9IGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRSZWxhdGlvbk51bWJlcih0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi5yZWxhdGlvbi5yZWxhdGlvbklkKTtcbiAgICAgICAgaWYgKHJlbGF0aW9uTnIpIHtcbiAgICAgICAgICB0aGlzLl9jdXJyZW50UmVsYXRpb24gPSBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0Q3VzdG9tZXJGdWxsT2JqZWN0KE51bWJlcihyZWxhdGlvbk5yKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9ucygpOiBTZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3Qge1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdDogU2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0ID0gbmV3IFNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdCAoKTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QuYWxsb3dQYXJ0aWFsRGVsaXZlcnkgPSB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24uYWxsb3dQYXJ0aWFsRGVsaXZlcnk7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0LmRlbGl2ZXJ5RGF0ZSA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5kZWxpdmVyeURhdGU7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0LmRlbGl2ZXJ5TWV0aG9kID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLmRlbGl2ZXJ5TWV0aG9kO1xuICAgIHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdC5kZWxpdmVyeU9wdGlvbnMgPSB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24uZGVsaXZlcnlPcHRpb25zO1xuICAgIHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdC5tYXJrZXRpbmdDb2RlID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLm1hcmtldGluZ0NvZGU7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0Lm93blJlZmVyZW5jZSA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5vd25SZWZlcmVuY2U7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0LnByZWZlcnJlZERlbGl2ZXJ5RGF0ZSA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGU7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0LnByZWZlcnJlZERlbGl2ZXJ5RGF0ZTIgPSB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24ucHJlZmVycmVkRGVsaXZlcnlEYXRlMjtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QucmVsYXRpb25SZWZlcmVuY2UgPSB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24ucmVsYXRpb25SZWZlcmVuY2U7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0LnJlbWFyayA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5yZW1hcms7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0LnRyYW5zYWN0aW9uVXVpZCA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi51dWlkO1xuICAgIHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdC50cmFuc2FjdGlvbkFkZHJlc3MgPSB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25BZGRyZXNzLm5hd05yO1xuICAgIHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdC5pbnZvaWNlQWRkcmVzcyA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5pbnZvaWNlQWRkcmVzcy5uYXdOcjtcbiAgICByZXR1cm4gdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0O1xuICB9XG59XG4iXX0=
|