@colijnit/sharedcomponents 1.0.13 → 1.0.14

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 (28) hide show
  1. package/bundles/colijnit-sharedcomponents.umd.js +485 -129
  2. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
  3. package/colijnit-sharedcomponents.d.ts +1 -0
  4. package/colijnit-sharedcomponents.metadata.json +1 -1
  5. package/esm2015/colijnit-sharedcomponents.js +2 -1
  6. package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +14 -7
  7. package/esm2015/lib/components/stock/stock-information/stock-information.component.js +6 -7
  8. package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +137 -56
  9. package/esm2015/lib/components/stock/stock-location/stock-location.component.js +7 -13
  10. package/esm2015/lib/components/stock/stock-transfer/stock-change-amount.component.js +68 -0
  11. package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +52 -20
  12. package/esm2015/lib/components/stock/stock.component.js +23 -22
  13. package/esm2015/lib/components/stock/stock.module.js +9 -4
  14. package/esm2015/lib/service/ione-connector-adapter.service.js +121 -32
  15. package/esm2015/lib/service/stock.service.js +48 -10
  16. package/fesm2015/colijnit-sharedcomponents.js +473 -165
  17. package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
  18. package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +8 -4
  19. package/lib/components/stock/stock-information/stock-information.component.d.ts +2 -3
  20. package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +23 -10
  21. package/lib/components/stock/stock-location/stock-location.component.d.ts +4 -5
  22. package/lib/components/stock/stock-transfer/stock-change-amount.component.d.ts +18 -0
  23. package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +18 -3
  24. package/lib/components/stock/stock.component.d.ts +7 -5
  25. package/lib/components/stock/style/_layout.scss +4 -30
  26. package/lib/service/ione-connector-adapter.service.d.ts +19 -6
  27. package/lib/service/stock.service.d.ts +18 -3
  28. package/package.json +1 -1
@@ -4,11 +4,14 @@ import { Sharedapi } from "@colijnit/sharedapi/build/sharedapi";
4
4
  import { Printer } from "@colijnit/sharedapi/build/model/report/printer.bo";
5
5
  import { Injectable } from "@angular/core";
6
6
  import { BusinessObjectFactory } from "../factory/business-object-factory";
7
- import { PrintStockStickers } from "@colijnit/articleapi/build/model/print-stock-stickers";
8
- import { ArticleFlat } from "@colijnit/articleapi/build/model/article-flat.bo";
9
- import { ArticlesPublic } from "@colijnit/articleapi/build/articles-public";
10
- import { PrintJob } from "@colijnit/sharedapi/build/model/report/print-job";
7
+ import { PrintStockStickers } from "@colijnit/sharedapi/build/model/print-stock-stickers";
11
8
  import { ArticleStockBo } from "@colijnit/articleapi/build/model/article-stock.bo";
9
+ import { StockHistoryBo } from "@colijnit/articleapi/build/model/stock-history.bo";
10
+ import { StockStickersPrintLayoutsBo } from "@colijnit/sharedapi/build/model/report/stock-stickers-print-layouts.bo";
11
+ import { ArticleDetailsBo } from "@colijnit/articleapi/build/model/article-details.bo";
12
+ import { StockStatus } from "@colijnit/articleapi/build/model/stock-status.bo";
13
+ import { StockManagementWarehouses } from "@colijnit/articleapi/build/model/stock-management-warehouses.bo";
14
+ import { StockLocation } from "@colijnit/articleapi/build/model/stock-location.bo";
12
15
  import * as i0 from "@angular/core";
13
16
  export class IoneConnectorAdapterService {
14
17
  constructor() {
@@ -16,10 +19,12 @@ export class IoneConnectorAdapterService {
16
19
  }
17
20
  connect(options) {
18
21
  return __awaiter(this, void 0, void 0, function* () {
19
- this.options = options;
20
- this.connector = new Articles(options);
21
- this.sharedConnector = new Sharedapi(options);
22
- this.options.session = this.connector.session && this.sharedConnector.session;
22
+ if (this.options === undefined) {
23
+ this.options = options;
24
+ this.connector = new Articles(options);
25
+ this.sharedConnector = new Sharedapi(options);
26
+ this.options.session = this.connector.session && this.sharedConnector.session;
27
+ }
23
28
  });
24
29
  }
25
30
  disconnect() {
@@ -59,26 +64,13 @@ export class IoneConnectorAdapterService {
59
64
  });
60
65
  });
61
66
  }
62
- // public async getPrintLayouts(defaultPrinterName: PrintJob): Promise<PrintJob> {
63
- // return new Promise((resolve: Function, reject: Function) => {
64
- // return this.sharedConnector.getPrintTemplates(defaultPrinterName).then((result: DataServiceResponse) => {
65
- // if (result.validationResult && result.validationResult.success) {
66
- // if (result.resultObject) {
67
- // resolve(this._boFactory.makeWithRawBackendData(PrintJob, result.resultObject));
68
- // }
69
- // } else {
70
- // reject(result.validationMessagesAsString);
71
- // }
72
- // })
73
- // })
74
- // }
75
- getStockHistory(request) {
67
+ getStockStickerPrintLayouts(stockStickersPrintLayoutsBo) {
76
68
  return __awaiter(this, void 0, void 0, function* () {
77
69
  return new Promise((resolve, reject) => {
78
- return this.connector.getStockHistory(request).then((result) => {
70
+ return this.sharedConnector.getStockStickerPrintLayouts(stockStickersPrintLayoutsBo).then((result) => {
79
71
  if (result.validationResult && result.validationResult.success) {
80
72
  if (result.resultObject) {
81
- resolve(this._boFactory.makeWithRawBackendData(PrintJob, result.resultObject));
73
+ resolve(this._boFactory.makeWithRawBackendData(stockStickersPrintLayoutsBo, result.resultObject));
82
74
  }
83
75
  }
84
76
  else {
@@ -103,13 +95,13 @@ export class IoneConnectorAdapterService {
103
95
  });
104
96
  });
105
97
  }
106
- getArticleFlatObject(goodId) {
98
+ getStockHistory(request) {
107
99
  return __awaiter(this, void 0, void 0, function* () {
108
100
  return new Promise((resolve, reject) => {
109
- return this.connector.getArticleFullObject(goodId).then((result) => {
101
+ return this.connector.getStockHistory(request).then((result) => {
110
102
  if (result.validationResult && result.validationResult.success) {
111
- if (result.resultObject) {
112
- resolve(this._boFactory.makeWithRawBackendData(ArticleFlat, result.resultObject));
103
+ if (result.resultObject && result.resultObject.hasOwnProperty("stockHistory")) {
104
+ resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockHistoryBo, result.resultObject.stockHistory));
113
105
  }
114
106
  }
115
107
  else {
@@ -135,13 +127,107 @@ export class IoneConnectorAdapterService {
135
127
  });
136
128
  });
137
129
  }
138
- getWarehouses(goodId) {
130
+ getStockManagementWarehouses() {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ return new Promise((resolve, reject) => {
133
+ return this.connector.getStockManagementWarehouses().then((result) => {
134
+ if (result.validationResult && result.validationResult.success) {
135
+ if (result.resultObjects) {
136
+ resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockManagementWarehouses, result.resultObjects));
137
+ }
138
+ }
139
+ else {
140
+ reject(result.validationMessagesAsString);
141
+ }
142
+ });
143
+ });
144
+ });
145
+ }
146
+ getStockManagementLocations(warehouseNo) {
147
+ return __awaiter(this, void 0, void 0, function* () {
148
+ return new Promise((resolve, reject) => {
149
+ return this.connector.getStockManagementLocations(warehouseNo).then((result) => {
150
+ if (result.validationResult && result.validationResult.success) {
151
+ if (result.resultObjects) {
152
+ resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockLocation, result.resultObjects));
153
+ }
154
+ }
155
+ else {
156
+ reject(result.validationMessagesAsString);
157
+ }
158
+ });
159
+ });
160
+ });
161
+ }
162
+ getArticleDetails(data) {
139
163
  return __awaiter(this, void 0, void 0, function* () {
140
164
  return new Promise((resolve, reject) => {
141
- return this.connector.getWarehouses(goodId).then((result) => {
165
+ return this.connector.getArticleDetails(data).then((result) => {
166
+ if (result.validationResult && result.validationResult.success) {
167
+ if (result.resultObjects) {
168
+ resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(ArticleDetailsBo, result.resultObjects));
169
+ }
170
+ }
171
+ else {
172
+ reject(result.validationMessagesAsString);
173
+ }
174
+ });
175
+ });
176
+ });
177
+ }
178
+ updateArticleDetails(data) {
179
+ return __awaiter(this, void 0, void 0, function* () {
180
+ return new Promise((resolve, reject) => {
181
+ return this.connector.updateArticleDetails(data).then((result) => __awaiter(this, void 0, void 0, function* () {
182
+ if (result.validationResult && result.validationResult.success) {
183
+ yield this.commit();
184
+ resolve(true);
185
+ }
186
+ else {
187
+ reject(result.validationMessagesAsString);
188
+ }
189
+ }));
190
+ });
191
+ });
192
+ }
193
+ lockArticleDetails(data) {
194
+ return __awaiter(this, void 0, void 0, function* () {
195
+ return new Promise((resolve, reject) => {
196
+ return this.connector.lockArticleDetails(data).then((result) => __awaiter(this, void 0, void 0, function* () {
197
+ if (result.validationResult && result.validationResult.success) {
198
+ yield this.commit();
199
+ resolve(true);
200
+ }
201
+ else {
202
+ reject(result.validationMessagesAsString);
203
+ }
204
+ }));
205
+ });
206
+ });
207
+ }
208
+ getStockStatus() {
209
+ return __awaiter(this, void 0, void 0, function* () {
210
+ return new Promise((resolve, reject) => {
211
+ return this.connector.getStockState().then((result) => {
212
+ if (result.validationResult && result.validationResult.success) {
213
+ if (result.resultObjects) {
214
+ resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockStatus, result.resultObjects));
215
+ }
216
+ }
217
+ else {
218
+ reject(result.validationMessagesAsString);
219
+ }
220
+ });
221
+ });
222
+ });
223
+ }
224
+ getStockStickerTemplates(data) {
225
+ return __awaiter(this, void 0, void 0, function* () {
226
+ return new Promise((resolve, reject) => {
227
+ return this.sharedConnector.getStockStickerPrintLayouts(data).then((result) => {
142
228
  if (result.validationResult && result.validationResult.success) {
143
229
  if (result.resultObject) {
144
- resolve(this._boFactory.makeWithRawBackendData(ArticlesPublic, result.resultObject));
230
+ resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockStickersPrintLayoutsBo, result.resultObject));
145
231
  }
146
232
  }
147
233
  else {
@@ -151,6 +237,9 @@ export class IoneConnectorAdapterService {
151
237
  });
152
238
  });
153
239
  }
240
+ commit() {
241
+ return this.connector.commit();
242
+ }
154
243
  }
155
244
  IoneConnectorAdapterService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IoneConnectorAdapterService_Factory() { return new IoneConnectorAdapterService(); }, token: IoneConnectorAdapterService, providedIn: "root" });
156
245
  IoneConnectorAdapterService.decorators = [
@@ -159,4 +248,4 @@ IoneConnectorAdapterService.decorators = [
159
248
  },] }
160
249
  ];
161
250
  IoneConnectorAdapterService.ctorParameters = () => [];
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uZS1jb25uZWN0b3ItYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2UvaW9uZS1jb25uZWN0b3ItYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDN0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUMxRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSXpDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUM3RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDMUUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBRTFFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtREFBbUQsQ0FBQzs7QUFRakYsTUFBTSxPQUFPLDJCQUEyQjtJQVF0QztRQUhRLGVBQVUsR0FBMEIsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO0lBSXhFLENBQUM7SUFFWSxPQUFPLENBQUMsT0FBWTs7WUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxPQUFP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aWNsZXN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9hcnRpY2xlc1wiO1xyXG5pbXBvcnQge1NoYXJlZGFwaX0gZnJvbSBcIkBjb2xpam5pdC9zaGFyZWRhcGkvYnVpbGQvc2hhcmVkYXBpXCI7XHJcbmltcG9ydCB7UHJpbnRlcn0gZnJvbSBcIkBjb2xpam5pdC9zaGFyZWRhcGkvYnVpbGQvbW9kZWwvcmVwb3J0L3ByaW50ZXIuYm9cIjtcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0FydGljbGVFeHRlbmRlZH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZXh0ZW5kZWQuYm9cIjtcclxuaW1wb3J0IHtEYXRhU2VydmljZVJlc3BvbnNlRGF0YX0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2RhdGEtc2VydmljZS1yZXNwb25zZS1kYXRhXCI7XHJcbmltcG9ydCB7RGF0YVNlcnZpY2VSZXNwb25zZURhdGEgYXMgRGF0YVNlcnZpY2VSZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC9zaGFyZWRhcGkvYnVpbGQvbW9kZWwvZGF0YS1zZXJ2aWNlLXJlc3BvbnNlLWRhdGFcIjtcclxuaW1wb3J0IHtCdXNpbmVzc09iamVjdEZhY3Rvcnl9IGZyb20gXCIuLi9mYWN0b3J5L2J1c2luZXNzLW9iamVjdC1mYWN0b3J5XCI7XHJcbmltcG9ydCB7UHJpbnRTdG9ja1N0aWNrZXJzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvcHJpbnQtc3RvY2stc3RpY2tlcnNcIjtcclxuaW1wb3J0IHtBcnRpY2xlRmxhdH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZmxhdC5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVzUHVibGljfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvYXJ0aWNsZXMtcHVibGljXCI7XHJcbmltcG9ydCB7UHJpbnRKb2J9IGZyb20gXCJAY29saWpuaXQvc2hhcmVkYXBpL2J1aWxkL21vZGVsL3JlcG9ydC9wcmludC1qb2JcIjtcclxuaW1wb3J0IHtHZXRTdG9ja0hpc3RvcnlSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvZ2V0LXN0b2NrLWhpc3RvcnktcmVxdWVzdFwiO1xyXG5pbXBvcnQge0FydGljbGVTdG9ja0JvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVTdG9ja30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2tcIjtcclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBJb25lQ29ubmVjdG9yQWRhcHRlclNlcnZpY2Uge1xyXG4gIHB1YmxpYyBvcHRpb25zOiBhbnk7XHJcbiAgcHVibGljIGNvbm5lY3RvcjogQXJ0aWNsZXM7XHJcbiAgcHVibGljIHNoYXJlZENvbm5lY3RvcjogU2hhcmVkYXBpO1xyXG5cclxuICBwcml2YXRlIF9ib0ZhY3Rvcnk6IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSA9IG5ldyBCdXNpbmVzc09iamVjdEZhY3RvcnkoKTtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNvbm5lY3Qob3B0aW9uczogYW55KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICAgIHRoaXMuY29ubmVjdG9yID0gbmV3IEFydGljbGVzKG9wdGlvbnMpO1xyXG4gICAgICB0aGlzLnNoYXJlZENvbm5lY3RvciA9IG5ldyBTaGFyZWRhcGkob3B0aW9ucyk7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5zZXNzaW9uID0gdGhpcy5jb25uZWN0b3Iuc2Vzc2lvbiAmJiB0aGlzLnNoYXJlZENvbm5lY3Rvci5zZXNzaW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRpc2Nvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QWxsUHJpbnRlcnMoc2hvd0FsbDogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPFByaW50ZXJbXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5zaGFyZWRDb25uZWN0b3IubGlzdEFsbFByaW50ZXJzKHNob3dBbGwpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFByaW50ZXIsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFByaW50U3RvY2tTdGlja2VycyhyZXF1ZXN0OiBQcmludFN0b2NrU3RpY2tlcnMpOiBQcm9taXNlPFByaW50U3RvY2tTdGlja2Vycz4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5zaGFyZWRDb25uZWN0b3IuZ2V0UHJpbnRTdG9ja1N0aWNrZXJzKHJlcXVlc3QpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFByaW50U3RvY2tTdGlja2VycywgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgLy8gcHVibGljIGFzeW5jIGdldFByaW50TGF5b3V0cyhkZWZhdWx0UHJpbnRlck5hbWU6IFByaW50Sm9iKTogUHJvbWlzZTxQcmludEpvYj4ge1xyXG4gIC8vICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy5zaGFyZWRDb25uZWN0b3IuZ2V0UHJpbnRUZW1wbGF0ZXMoZGVmYXVsdFByaW50ZXJOYW1lKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2UpID0+IHtcclxuICAvLyAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gIC8vICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3QpIHtcclxuICAvLyAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShQcmludEpvYiwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pXHJcbiAgLy8gICB9KVxyXG4gIC8vIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFN0b2NrSGlzdG9yeShyZXF1ZXN0OiBHZXRTdG9ja0hpc3RvcnlSZXF1ZXN0KTogUHJvbWlzZTxHZXRTdG9ja0hpc3RvcnlSZXF1ZXN0PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRTdG9ja0hpc3RvcnkocmVxdWVzdCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFByaW50Sm9iLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QXJ0aWNsZUZ1bGxPYmplY3QoZ29vZElkOiBudW1iZXIpOiBQcm9taXNlPEFydGljbGVFeHRlbmRlZD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0QXJ0aWNsZUZ1bGxPYmplY3QoZ29vZElkKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgLy8gaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAvLyAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0KSB7XHJcbiAgICAgICAgLy8gICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQXJ0aWNsZUV4dGVuZGVkLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgLy8gICB9XHJcbiAgICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgICAvLyAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRBcnRpY2xlRmxhdE9iamVjdChnb29kSWQ6IG51bWJlcik6IFByb21pc2U8QXJ0aWNsZUZsYXQ+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldEFydGljbGVGdWxsT2JqZWN0KGdvb2RJZCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKEFydGljbGVGbGF0LCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTdG9ja0luZm9ybWF0aW9uKGRhdGE6IEFydGljbGVTdG9jayk6IFByb21pc2U8QXJ0aWNsZVN0b2NrQm9bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0U3RvY2tJbmZvcm1hdGlvbihkYXRhKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KEFydGljbGVTdG9ja0JvLCByZXN1bHQucmVzdWx0T2JqZWN0cykpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0V2FyZWhvdXNlcyhnb29kSWQ6IG51bWJlcik6IFByb21pc2U8QXJ0aWNsZXNQdWJsaWM+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldFdhcmVob3VzZXMoZ29vZElkKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0KSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQXJ0aWNsZXNQdWJsaWMsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uZS1jb25uZWN0b3ItYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2UvaW9uZS1jb25uZWN0b3ItYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDN0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUMxRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSXpDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBR3hGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUVqRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDakYsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFFbkgsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDckYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzdFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQzFHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxvREFBb0QsQ0FBQzs7QUFPakYsTUFBTSxPQUFPLDJCQUEyQjtJQVF0QztRQUhRLGVBQVUsR0FBMEIsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO0lBSXhFLENBQUM7SUFFWSxPQUFPLENBQUMsT0FBWTs7WUFDL0IsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNB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MEIsQ0FBQyxDQUFDO3FCQUMzQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRU0sTUFBTTtRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzs7O1lBbE5GLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXJ0aWNsZXN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9hcnRpY2xlc1wiO1xyXG5pbXBvcnQge1NoYXJlZGFwaX0gZnJvbSBcIkBjb2xpam5pdC9zaGFyZWRhcGkvYnVpbGQvc2hhcmVkYXBpXCI7XHJcbmltcG9ydCB7UHJpbnRlcn0gZnJvbSBcIkBjb2xpam5pdC9zaGFyZWRhcGkvYnVpbGQvbW9kZWwvcmVwb3J0L3ByaW50ZXIuYm9cIjtcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0FydGljbGVFeHRlbmRlZH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZXh0ZW5kZWQuYm9cIjtcclxuaW1wb3J0IHtEYXRhU2VydmljZVJlc3BvbnNlRGF0YX0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2RhdGEtc2VydmljZS1yZXNwb25zZS1kYXRhXCI7XHJcbmltcG9ydCB7RGF0YVNlcnZpY2VSZXNwb25zZURhdGEgYXMgRGF0YVNlcnZpY2VSZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC9zaGFyZWRhcGkvYnVpbGQvbW9kZWwvZGF0YS1zZXJ2aWNlLXJlc3BvbnNlLWRhdGFcIjtcclxuaW1wb3J0IHtCdXNpbmVzc09iamVjdEZhY3Rvcnl9IGZyb20gXCIuLi9mYWN0b3J5L2J1c2luZXNzLW9iamVjdC1mYWN0b3J5XCI7XHJcbmltcG9ydCB7UHJpbnRTdG9ja1N0aWNrZXJzfSBmcm9tIFwiQGNvbGlqbml0L3NoYXJlZGFwaS9idWlsZC9tb2RlbC9wcmludC1zdG9jay1zdGlja2Vyc1wiO1xyXG5pbXBvcnQge0FydGljbGVzUHVibGljfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvYXJ0aWNsZXMtcHVibGljXCI7XHJcbmltcG9ydCB7R2V0U3RvY2tIaXN0b3J5UmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2dldC1zdG9jay1oaXN0b3J5LXJlcXVlc3RcIjtcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2tCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2suYm9cIjtcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2t9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrXCI7XHJcbmltcG9ydCB7U3RvY2tIaXN0b3J5Qm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1oaXN0b3J5LmJvXCI7XHJcbmltcG9ydCB7U3RvY2tTdGlja2Vyc1ByaW50TGF5b3V0c0JvfSBmcm9tIFwiQGNvbGlqbml0L3NoYXJlZGFwaS9idWlsZC9tb2RlbC9yZXBvcnQvc3RvY2stc3RpY2tlcnMtcHJpbnQtbGF5b3V0cy5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVTdG9ja01hbmFnZW1lbnR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrLW1hbmFnZW1lbnRcIjtcclxuaW1wb3J0IHtBcnRpY2xlRGV0YWlsc0JvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1kZXRhaWxzLmJvXCI7XHJcbmltcG9ydCB7U3RvY2tTdGF0dXN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1zdGF0dXMuYm9cIjtcclxuaW1wb3J0IHtTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stbWFuYWdlbWVudC13YXJlaG91c2VzLmJvXCI7XHJcbmltcG9ydCB7U3RvY2tMb2NhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWxvY2F0aW9uLmJvXCI7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgSW9uZUNvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlIHtcclxuICBwdWJsaWMgb3B0aW9uczogYW55O1xyXG4gIHB1YmxpYyBjb25uZWN0b3I6IEFydGljbGVzO1xyXG4gIHB1YmxpYyBzaGFyZWRDb25uZWN0b3I6IFNoYXJlZGFwaTtcclxuXHJcbiAgcHJpdmF0ZSBfYm9GYWN0b3J5OiBCdXNpbmVzc09iamVjdEZhY3RvcnkgPSBuZXcgQnVzaW5lc3NPYmplY3RGYWN0b3J5KCk7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjb25uZWN0KG9wdGlvbnM6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICAgIHRoaXMuY29ubmVjdG9yID0gbmV3IEFydGljbGVzKG9wdGlvbnMpO1xyXG4gICAgICB0aGlzLnNoYXJlZENvbm5lY3RvciA9IG5ldyBTaGFyZWRhcGkob3B0aW9ucyk7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5zZXNzaW9uID0gdGhpcy5jb25uZWN0b3Iuc2Vzc2lvbiAmJiB0aGlzLnNoYXJlZENvbm5lY3Rvci5zZXNzaW9uO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRpc2Nvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QWxsUHJpbnRlcnMoc2hvd0FsbDogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPFByaW50ZXJbXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5zaGFyZWRDb25uZWN0b3IubGlzdEFsbFByaW50ZXJzKHNob3dBbGwpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFByaW50ZXIsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFByaW50U3RvY2tTdGlja2VycyhyZXF1ZXN0OiBQcmludFN0b2NrU3RpY2tlcnMpOiBQcm9taXNlPFByaW50U3RvY2tTdGlja2Vycz4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5zaGFyZWRDb25uZWN0b3IuZ2V0UHJpbnRTdG9ja1N0aWNrZXJzKHJlcXVlc3QpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFByaW50U3RvY2tTdGlja2VycywgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFN0b2NrU3RpY2tlclByaW50TGF5b3V0cyhzdG9ja1N0aWNrZXJzUHJpbnRMYXlvdXRzQm86IFN0b2NrU3RpY2tlcnNQcmludExheW91dHNCbyk6IFByb21pc2U8U3RvY2tTdGlja2Vyc1ByaW50TGF5b3V0c0JvW10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2hhcmVkQ29ubmVjdG9yLmdldFN0b2NrU3RpY2tlclByaW50TGF5b3V0cyhzdG9ja1N0aWNrZXJzUHJpbnRMYXlvdXRzQm8pLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKHN0b2NrU3RpY2tlcnNQcmludExheW91dHNCbywgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEFydGljbGVGdWxsT2JqZWN0KGdvb2RJZDogbnVtYmVyKTogUHJvbWlzZTxBcnRpY2xlRXh0ZW5kZWQ+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldEFydGljbGVGdWxsT2JqZWN0KGdvb2RJZCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIC8vIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgLy8gICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gICAgICAgIC8vICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKEFydGljbGVFeHRlbmRlZCwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIC8vICAgfVxyXG4gICAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U3RvY2tIaXN0b3J5KHJlcXVlc3Q6IEdldFN0b2NrSGlzdG9yeVJlcXVlc3QpOiBQcm9taXNlPFN0b2NrSGlzdG9yeUJvW10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldFN0b2NrSGlzdG9yeShyZXF1ZXN0KS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0ICYmIHJlc3VsdC5yZXN1bHRPYmplY3QuaGFzT3duUHJvcGVydHkoXCJzdG9ja0hpc3RvcnlcIikpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShTdG9ja0hpc3RvcnlCbywgcmVzdWx0LnJlc3VsdE9iamVjdC5zdG9ja0hpc3RvcnkpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTdG9ja0luZm9ybWF0aW9uKGRhdGE6IEFydGljbGVTdG9jayk6IFByb21pc2U8QXJ0aWNsZVN0b2NrQm9bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0U3RvY2tJbmZvcm1hdGlvbihkYXRhKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KEFydGljbGVTdG9ja0JvLCByZXN1bHQucmVzdWx0T2JqZWN0cykpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcygpOiBQcm9taXNlPFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXNbXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcygpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3RzKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcywgcmVzdWx0LnJlc3VsdE9iamVjdHMpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFN0b2NrTWFuYWdlbWVudExvY2F0aW9ucyh3YXJlaG91c2VObzogbnVtYmVyKTogUHJvbWlzZTxTdG9ja0xvY2F0aW9uW10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldFN0b2NrTWFuYWdlbWVudExvY2F0aW9ucyh3YXJlaG91c2VObykudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdHMpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShTdG9ja0xvY2F0aW9uLCByZXN1bHQucmVzdWx0T2JqZWN0cykpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QXJ0aWNsZURldGFpbHMoZGF0YTogQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCk6IFByb21pc2U8QXJ0aWNsZURldGFpbHNCb1tdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRBcnRpY2xlRGV0YWlscyhkYXRhKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KEFydGljbGVEZXRhaWxzQm8sIHJlc3VsdC5yZXN1bHRPYmplY3RzKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVBcnRpY2xlRGV0YWlscyhkYXRhOiBBcnRpY2xlRGV0YWlsc0JvKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci51cGRhdGVBcnRpY2xlRGV0YWlscyhkYXRhKS50aGVuKGFzeW5jIChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuY29tbWl0KCk7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBhc3luYyBsb2NrQXJ0aWNsZURldGFpbHMoZGF0YTogQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IubG9ja0FydGljbGVEZXRhaWxzKGRhdGEpLnRoZW4oYXN5bmMgKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5jb21taXQoKTtcclxuICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U3RvY2tTdGF0dXMoKTogUHJvbWlzZTxTdG9ja1N0YXR1c1tdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRTdG9ja1N0YXRlKCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdHMpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShTdG9ja1N0YXR1cywgcmVzdWx0LnJlc3VsdE9iamVjdHMpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFN0b2NrU3RpY2tlclRlbXBsYXRlcyhkYXRhOiBTdG9ja1N0aWNrZXJzUHJpbnRMYXlvdXRzQm8pOiBQcm9taXNlPFN0b2NrU3RpY2tlcnNQcmludExheW91dHNCb1tdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNoYXJlZENvbm5lY3Rvci5nZXRTdG9ja1N0aWNrZXJQcmludExheW91dHMoZGF0YSkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0KSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoU3RvY2tTdGlja2Vyc1ByaW50TGF5b3V0c0JvLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb21taXQoKTogUHJvbWlzZTxEYXRhU2VydmljZVJlc3BvbnNlRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmNvbW1pdCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -8,22 +8,17 @@ export class StockService {
8
8
  connectConnector(options) {
9
9
  this._connector.connect(options);
10
10
  }
11
- getPrintStockStickers(data) {
12
- return __awaiter(this, void 0, void 0, function* () {
13
- yield this._connector.getPrintStockStickers(data);
14
- });
15
- }
11
+ // public async getPrintStockStickers(data: PrintStockStickers): Promise<void> {
12
+ // await this._connector.getPrintStockStickers(data);
13
+ // }
16
14
  getAllPrinters(showAll = true) {
17
15
  return __awaiter(this, void 0, void 0, function* () {
18
16
  return yield this._connector.getAllPrinters(showAll);
19
17
  });
20
18
  }
21
- // public async getPrintTemplates(defaultPrinterName: PrintJob): Promise<PrintJob> {
22
- // return await this._connector.getPrintLayouts(defaultPrinterName);
23
- // }
24
19
  getStockHistory(data) {
25
20
  return __awaiter(this, void 0, void 0, function* () {
26
- yield this._connector.getStockHistory(data);
21
+ return yield this._connector.getStockHistory(data);
27
22
  });
28
23
  }
29
24
  getStockInformation(data) {
@@ -31,6 +26,49 @@ export class StockService {
31
26
  return yield this._connector.getStockInformation(data);
32
27
  });
33
28
  }
29
+ getStockStickerPrintLayouts(data) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ return yield this._connector.getStockStickerPrintLayouts(data);
32
+ });
33
+ }
34
+ getArticleDetails(data) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ return yield this._connector.getArticleDetails(data);
37
+ });
38
+ }
39
+ updateArticleDetails(data) {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ return yield this._connector.updateArticleDetails(data);
42
+ });
43
+ }
44
+ getStockState() {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ return yield this._connector.getStockStatus();
47
+ });
48
+ }
49
+ getStockStickerTemplates(data) {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ return yield this._connector.getStockStickerTemplates(data);
52
+ });
53
+ }
54
+ getStockManagementWarehouses() {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ return yield this._connector.getStockManagementWarehouses();
57
+ });
58
+ }
59
+ getStockManagementLocations(warehouseNo) {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ return yield this._connector.getStockManagementLocations(warehouseNo);
62
+ });
63
+ }
64
+ lockArticleDetails(data) {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ return yield this._connector.lockArticleDetails(data);
67
+ });
68
+ }
69
+ commit() {
70
+ return this._connector.commit();
71
+ }
34
72
  }
35
73
  StockService.decorators = [
36
74
  { type: Injectable }
@@ -38,4 +76,4 @@ StockService.decorators = [
38
76
  StockService.ctorParameters = () => [
39
77
  { type: IoneConnectorAdapterService }
40
78
  ];
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFVN0UsTUFBTSxPQUFPLFlBQVk7SUFNdkIsWUFDVSxVQUF1QztRQUF2QyxlQUFVLEdBQVYsVUFBVSxDQUE2QjtJQUdqRCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsT0FBWTtRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRVkscUJBQXFCLENBQUMsSUFBd0I7O1lBQ3pELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxDQUFDO0tBQUE7SUFFWSxjQUFjLENBQUMsVUFBbUIsSUFBSTs7WUFDakQsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELENBQUM7S0FBQTtJQUVELG9GQUFvRjtJQUNwRixzRUFBc0U7SUFDdEUsSUFBSTtJQUVTLGVBQWUsQ0FBQyxJQUE0Qjs7WUFDdkQsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxDQUFDO0tBQUE7SUFFWSxtQkFBbUIsQ0FBQyxJQUFrQjs7WUFDakQsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsQ0FBQztLQUFBOzs7WUFuQ0YsVUFBVTs7O1lBVEgsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0lvbmVDb25uZWN0b3JBZGFwdGVyU2VydmljZX0gZnJvbSBcIi4vaW9uZS1jb25uZWN0b3ItYWRhcHRlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UHJpbnRTdG9ja1N0aWNrZXJzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvcHJpbnQtc3RvY2stc3RpY2tlcnNcIjtcclxuaW1wb3J0IHtBcnRpY2xlRmxhdH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZmxhdC5ib1wiO1xyXG5pbXBvcnQge1ByaW50ZXJ9IGZyb20gXCJAY29saWpuaXQvc2hhcmVkYXBpL2J1aWxkL21vZGVsL3JlcG9ydC9wcmludGVyLmJvXCI7XHJcbmltcG9ydCB7UHJpbnRKb2J9IGZyb20gXCJAY29saWpuaXQvc2hhcmVkYXBpL2J1aWxkL21vZGVsL3JlcG9ydC9wcmludC1qb2JcIjtcclxuaW1wb3J0IHtHZXRTdG9ja0hpc3RvcnlSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvZ2V0LXN0b2NrLWhpc3RvcnktcmVxdWVzdFwiO1xyXG5pbXBvcnQge0FydGljbGVTdG9ja0JvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVTdG9ja30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2tcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN0b2NrU2VydmljZSB7XHJcblxyXG5cclxuICBwdWJsaWMgc3RvY2tTdGlja2VyczogUHJpbnRTdG9ja1N0aWNrZXJzO1xyXG4gIHB1YmxpYyBhcnRpY2xlU3RvY2tJbmZvcm1hdGlvbjogQXJ0aWNsZVN0b2NrQm87XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfY29ubmVjdG9yOiBJb25lQ29ubmVjdG9yQWRhcHRlclNlcnZpY2UsXHJcbiAgKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbm5lY3RDb25uZWN0b3Iob3B0aW9uczogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb25uZWN0b3IuY29ubmVjdChvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRQcmludFN0b2NrU3RpY2tlcnMoZGF0YTogUHJpbnRTdG9ja1N0aWNrZXJzKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0UHJpbnRTdG9ja1N0aWNrZXJzKGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEFsbFByaW50ZXJzKHNob3dBbGw6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxQcmludGVyW10+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0QWxsUHJpbnRlcnMoc2hvd0FsbCk7XHJcbiAgfVxyXG5cclxuICAvLyBwdWJsaWMgYXN5bmMgZ2V0UHJpbnRUZW1wbGF0ZXMoZGVmYXVsdFByaW50ZXJOYW1lOiBQcmludEpvYik6IFByb21pc2U8UHJpbnRKb2I+IHtcclxuICAvLyAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0UHJpbnRMYXlvdXRzKGRlZmF1bHRQcmludGVyTmFtZSk7XHJcbiAgLy8gfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U3RvY2tIaXN0b3J5KGRhdGE6IEdldFN0b2NrSGlzdG9yeVJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRTdG9ja0hpc3RvcnkoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U3RvY2tJbmZvcm1hdGlvbihkYXRhOiBBcnRpY2xlU3RvY2spOiBQcm9taXNlPEFydGljbGVTdG9ja0JvW10+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0U3RvY2tJbmZvcm1hdGlvbihkYXRhKTtcclxuICB9XHJcbiAgLy9cclxuICAvLyBwdWJsaWMgYXN5bmMgbG9hZFN0b2NrTG9jYXRpb25zKGdvb2RJZDogbnVtYmVyKTogUHJvbWlzZTxBcnRpY2xlRmxhdD4ge1xyXG4gIC8vICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRBcnRpY2xlRmxhdE9iamVjdChnb29kSWQpO1xyXG4gIC8vIH1cclxuXHJcbn1cclxuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFnQjdFLE1BQU0sT0FBTyxZQUFZO0lBSXZCLFlBQ1UsVUFBdUM7UUFBdkMsZUFBVSxHQUFWLFVBQVUsQ0FBNkI7SUFHakQsQ0FBQztJQUVNLGdCQUFnQixDQUFDLE9BQVk7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGdGQUFnRjtJQUNoRix1REFBdUQ7SUFDdkQsSUFBSTtJQUVTLGNBQWMsQ0FBQyxVQUFtQixJQUFJOztZQUNqRCxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsQ0FBQztLQUFBO0lBRVksZUFBZSxDQUFDLElBQTRCOztZQUN2RCxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckQsQ0FBQztLQUFBO0lBRVksbUJBQW1CLENBQUMsSUFBa0I7O1lBQ2pELE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pELENBQUM7S0FBQTtJQUVZLDJCQUEyQixDQUFDLElBQWlDOztZQUN4RSxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRSxDQUFDO0tBQUE7SUFFWSxpQkFBaUIsQ0FBQyxJQUE0Qjs7WUFDekQsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkQsQ0FBQztLQUFBO0lBRVksb0JBQW9CLENBQUMsSUFBc0I7O1lBQ3RELE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELENBQUM7S0FBQTtJQUVZLGFBQWE7O1lBQ3hCLE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2hELENBQUM7S0FBQTtJQUVZLHdCQUF3QixDQUFDLElBQWlDOztZQUNyRSxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxDQUFDO0tBQUE7SUFFWSw0QkFBNEI7O1lBQ3ZDLE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDOUQsQ0FBQztLQUFBO0lBRVksMkJBQTJCLENBQUMsV0FBbUI7O1lBQzFELE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7S0FBQTtJQUVZLGtCQUFrQixDQUFDLElBQTRCOztZQUMxRCxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxDQUFDO0tBQUE7SUFFTSxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xDLENBQUM7OztZQWpFRixVQUFVOzs7WUFmSCwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SW9uZUNvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlfSBmcm9tIFwiLi9pb25lLWNvbm5lY3Rvci1hZGFwdGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtQcmludFN0b2NrU3RpY2tlcnN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9wcmludC1zdG9jay1zdGlja2Vyc1wiO1xyXG5pbXBvcnQge1ByaW50ZXJ9IGZyb20gXCJAY29saWpuaXQvc2hhcmVkYXBpL2J1aWxkL21vZGVsL3JlcG9ydC9wcmludGVyLmJvXCI7XHJcbmltcG9ydCB7R2V0U3RvY2tIaXN0b3J5UmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2dldC1zdG9jay1oaXN0b3J5LXJlcXVlc3RcIjtcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2tCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2suYm9cIjtcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2t9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrXCI7XHJcbmltcG9ydCB7U3RvY2tIaXN0b3J5Qm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1oaXN0b3J5LmJvXCI7XHJcbmltcG9ydCB7U3RvY2tTdGlja2Vyc1ByaW50TGF5b3V0c0JvfSBmcm9tIFwiQGNvbGlqbml0L3NoYXJlZGFwaS9idWlsZC9tb2RlbC9yZXBvcnQvc3RvY2stc3RpY2tlcnMtcHJpbnQtbGF5b3V0cy5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVEZXRhaWxzQm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWRldGFpbHMuYm9cIjtcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2tNYW5hZ2VtZW50fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay1tYW5hZ2VtZW50XCI7XHJcbmltcG9ydCB7U3RvY2tTdGF0dXN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1zdGF0dXMuYm9cIjtcclxuaW1wb3J0IHtTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stbWFuYWdlbWVudC13YXJlaG91c2VzLmJvXCI7XHJcbmltcG9ydCB7U3RvY2tMb2NhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWxvY2F0aW9uLmJvXCI7XHJcbmltcG9ydCB7RGF0YVNlcnZpY2VSZXNwb25zZURhdGF9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9kYXRhLXNlcnZpY2UtcmVzcG9uc2UtZGF0YVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU3RvY2tTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIHN0b2NrU3RpY2tlcnM6IFByaW50U3RvY2tTdGlja2VycztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9jb25uZWN0b3I6IElvbmVDb25uZWN0b3JBZGFwdGVyU2VydmljZSxcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29ubmVjdENvbm5lY3RvcihvcHRpb25zOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Nvbm5lY3Rvci5jb25uZWN0KG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLy8gcHVibGljIGFzeW5jIGdldFByaW50U3RvY2tTdGlja2VycyhkYXRhOiBQcmludFN0b2NrU3RpY2tlcnMpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAvLyAgIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRQcmludFN0b2NrU3RpY2tlcnMoZGF0YSk7XHJcbiAgLy8gfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QWxsUHJpbnRlcnMoc2hvd0FsbDogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPFByaW50ZXJbXT4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRBbGxQcmludGVycyhzaG93QWxsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTdG9ja0hpc3RvcnkoZGF0YTogR2V0U3RvY2tIaXN0b3J5UmVxdWVzdCk6IFByb21pc2U8U3RvY2tIaXN0b3J5Qm9bXT4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRTdG9ja0hpc3RvcnkoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U3RvY2tJbmZvcm1hdGlvbihkYXRhOiBBcnRpY2xlU3RvY2spOiBQcm9taXNlPEFydGljbGVTdG9ja0JvW10+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0U3RvY2tJbmZvcm1hdGlvbihkYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTdG9ja1N0aWNrZXJQcmludExheW91dHMoZGF0YTogU3RvY2tTdGlja2Vyc1ByaW50TGF5b3V0c0JvKTogUHJvbWlzZTxTdG9ja1N0aWNrZXJzUHJpbnRMYXlvdXRzQm9bXT4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRTdG9ja1N0aWNrZXJQcmludExheW91dHMoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QXJ0aWNsZURldGFpbHMoZGF0YTogQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCk6IFByb21pc2U8QXJ0aWNsZURldGFpbHNCb1tdPiB7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldEFydGljbGVEZXRhaWxzKGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHVwZGF0ZUFydGljbGVEZXRhaWxzKGRhdGE6IEFydGljbGVEZXRhaWxzQm8pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IudXBkYXRlQXJ0aWNsZURldGFpbHMoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U3RvY2tTdGF0ZSgpOiBQcm9taXNlPFN0b2NrU3RhdHVzW10+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0U3RvY2tTdGF0dXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTdG9ja1N0aWNrZXJUZW1wbGF0ZXMoZGF0YTogU3RvY2tTdGlja2Vyc1ByaW50TGF5b3V0c0JvKTogUHJvbWlzZTxTdG9ja1N0aWNrZXJzUHJpbnRMYXlvdXRzQm9bXT4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRTdG9ja1N0aWNrZXJUZW1wbGF0ZXMoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcygpOiBQcm9taXNlPFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXNbXT4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U3RvY2tNYW5hZ2VtZW50TG9jYXRpb25zKHdhcmVob3VzZU5vOiBudW1iZXIpOiBQcm9taXNlPFN0b2NrTG9jYXRpb25bXT4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRTdG9ja01hbmFnZW1lbnRMb2NhdGlvbnMod2FyZWhvdXNlTm8pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGxvY2tBcnRpY2xlRGV0YWlscyhkYXRhOiBBcnRpY2xlU3RvY2tNYW5hZ2VtZW50KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmxvY2tBcnRpY2xlRGV0YWlscyhkYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb21taXQoKTogUHJvbWlzZTxEYXRhU2VydmljZVJlc3BvbnNlRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rvci5jb21taXQoKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==