@colijnit/transaction 255.1.60 → 255.1.61
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/bundles/colijnit-transaction.umd.js +11 -13
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.js +56 -55
- package/esm2015/lib/transaction-version.js +3 -3
- package/fesm2015/colijnit-transaction.js +59 -58
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.d.ts +2 -3
- package/package.json +1 -1
- package/colijnit-transaction-255.1.58.tgz +0 -0
- package/colijnit-transaction-255.1.60.tgz +0 -0
|
@@ -14,13 +14,12 @@ import { ProductConnectorAdapterService, ProductConnectorService, ProductEventSe
|
|
|
14
14
|
import { CatalogScreenConfigurationService } from "./service/catalog-screen-configuration.service";
|
|
15
15
|
import { BaseModuleScreenConfigService } from "@colijnit/corecomponents_v12";
|
|
16
16
|
export class DialogCatalogComponent {
|
|
17
|
-
constructor(_transactionService, _catalogService, _catalogEventService, _articleService, _dialogService,
|
|
17
|
+
constructor(_transactionService, _catalogService, _catalogEventService, _articleService, _dialogService, iconCacheService) {
|
|
18
18
|
this._transactionService = _transactionService;
|
|
19
19
|
this._catalogService = _catalogService;
|
|
20
20
|
this._catalogEventService = _catalogEventService;
|
|
21
21
|
this._articleService = _articleService;
|
|
22
22
|
this._dialogService = _dialogService;
|
|
23
|
-
this._screenConfigService = _screenConfigService;
|
|
24
23
|
this.iconCacheService = iconCacheService;
|
|
25
24
|
this.icons = Icon;
|
|
26
25
|
this.handleAddArticleInternally = true;
|
|
@@ -34,6 +33,7 @@ export class DialogCatalogComponent {
|
|
|
34
33
|
this.addArticleClicked = new EventEmitter();
|
|
35
34
|
this.addCatFarmArticleClicked = new EventEmitter();
|
|
36
35
|
this.addExternalArticleClicked = new EventEmitter();
|
|
36
|
+
this.settingsSet = false;
|
|
37
37
|
this.showExternalCatalog = false;
|
|
38
38
|
this.showStock = false;
|
|
39
39
|
this.showProduct = false;
|
|
@@ -49,13 +49,13 @@ export class DialogCatalogComponent {
|
|
|
49
49
|
}
|
|
50
50
|
ngOnInit() {
|
|
51
51
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
yield this._screenConfigService.loadConfig();
|
|
53
52
|
this.catalogSettings = Object.assign({}, this._transactionService.optionsService.settings);
|
|
54
53
|
if (this.catalogSettings) {
|
|
55
54
|
this.catalogSettings.createWebOrder = false;
|
|
56
55
|
this.catalogSettings.options = this.options;
|
|
57
56
|
this.catalogSettings.catalogParameters = this.parameters;
|
|
58
57
|
yield this._catalogService.init(this.catalogSettings, true);
|
|
58
|
+
this.settingsSet = true;
|
|
59
59
|
}
|
|
60
60
|
this._subs.push(this._catalogEventService.stockDetailsClick.subscribe((article) => {
|
|
61
61
|
this.handleStockButtonClick(article);
|
|
@@ -199,60 +199,62 @@ DialogCatalogComponent.decorators = [
|
|
|
199
199
|
<co-dialog (closeClick)="closeClick.emit($event)" [@.disabled]="destroyed">
|
|
200
200
|
<co-icon *ngIf="showExternalCatalog" [iconData]="iconCacheService.getIcon(icons.ArrowPointLeft)"
|
|
201
201
|
(click)="handleBackClick($event)"></co-icon>
|
|
202
|
-
<ng-container *ngIf="
|
|
203
|
-
<
|
|
204
|
-
<
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
<
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
202
|
+
<ng-container *ngIf="settingsSet">
|
|
203
|
+
<ng-container *ngIf="!showExternalCatalog">
|
|
204
|
+
<div class="dialog-catalog-product-wrapper" [class.show-product]="showProduct">
|
|
205
|
+
<co-catalog-search
|
|
206
|
+
[title]="'CATALOG' | localize"
|
|
207
|
+
[subTitle]="'SEARCH_BY_ARTICLENUMBER_NAME_OR_DESCRIPTION' | localize"
|
|
208
|
+
[searchPlaceholder]="'SEARCH_BY_ARTICLENUMBER_OR_DESCRIPTION' | localize"
|
|
209
|
+
[createFrozenArticle]="false"
|
|
210
|
+
[showNavigation]="showNavigation"
|
|
211
|
+
[settings]="catalogSettings"
|
|
212
|
+
(onExternalSourceClick)="handleExternalSourceClick($event)"
|
|
213
|
+
(onAddArticleButtonClick)="handleAddArticleClick($event)"
|
|
214
|
+
(onLookAtArticleButtonClick)="handleArticleClick($event)"
|
|
215
|
+
(onArticleClick)="handleArticleClick($event)">
|
|
216
|
+
</co-catalog-search>
|
|
217
|
+
<div class="catalog-article-wrapper">
|
|
218
|
+
<co-icon class="back-button-product" [iconData]="iconCacheService.getIcon(icons.ArrowPointLeft)"
|
|
219
|
+
(click)="showProduct = false"></co-icon>
|
|
220
|
+
<app-ione-product *ngIf="showProduct"
|
|
221
|
+
[sku]="sku"
|
|
222
|
+
[settings]="catalogSettings"
|
|
223
|
+
[handleAddArticleInternally]="false"
|
|
224
|
+
[isReturn]="isReturn"
|
|
225
|
+
(onAddToCart)="handleAddArticleFromArticleClick($event)"
|
|
226
|
+
(onAlternativeClick)="handleOnAlternativeClick($event)"
|
|
227
|
+
></app-ione-product>
|
|
228
|
+
</div>
|
|
227
229
|
</div>
|
|
228
|
-
</
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
<div class="dialog-catalog-product-wrapper" [class.show-product]="showProduct">
|
|
230
|
+
</ng-container>
|
|
231
|
+
<ng-container *ngIf="showExternalCatalog">
|
|
232
|
+
<div class="dialog-catalog-product-wrapper" [class.show-product]="showProduct">
|
|
232
233
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
234
|
+
<co-catalog-external-source
|
|
235
|
+
[externalCatalogStartupInfo]="catalogInfo"
|
|
236
|
+
[title]="'CATALOG' | localize | append: ' ' | append: externalCatalogName"
|
|
237
|
+
[subTitle]="'SEARCH_BY_ARTICLENUMBER_NAME_OR_DESCRIPTION' | localize"
|
|
238
|
+
[searchPlaceholder]="'SEARCH_BY_ARTICLENUMBER_OR_DESCRIPTION' | localize"
|
|
239
|
+
[name]="externalCatalogName"
|
|
240
|
+
[options]="externalCatalogOptions"
|
|
241
|
+
[showNavigation]="false"
|
|
242
|
+
(articleClick)="handleCatFarmArticleClicked($event)"
|
|
243
|
+
(addArticleClick)="handleAddCatFarmArticleClicked($event)"
|
|
244
|
+
(iFrameFeedbackReceived)="handleIFrameFeedback($event)"
|
|
245
|
+
></co-catalog-external-source>
|
|
245
246
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
247
|
+
<div class="catalog-article-wrapper">
|
|
248
|
+
<co-icon class="back-button-product" [iconData]="iconCacheService.getIcon(icons.ArrowPointLeft)"
|
|
249
|
+
(click)="showProduct = false"></co-icon>
|
|
250
|
+
<co-product-external-source *ngIf="showProduct"
|
|
251
|
+
[externalSource]="externalSource"
|
|
252
|
+
[sku]="catSku"
|
|
253
|
+
(addToCart)="handleAddCatFarmArticleClicked($event)"
|
|
254
|
+
></co-product-external-source>
|
|
255
|
+
</div>
|
|
254
256
|
</div>
|
|
255
|
-
</
|
|
257
|
+
</ng-container>
|
|
256
258
|
</ng-container>
|
|
257
259
|
</co-dialog>
|
|
258
260
|
<co-dialog *ngIf="articleForStock && showStock" (closeClick)="cancelStockButtonClick()">
|
|
@@ -283,7 +285,6 @@ DialogCatalogComponent.ctorParameters = () => [
|
|
|
283
285
|
{ type: CatalogEventService },
|
|
284
286
|
{ type: ArticleService },
|
|
285
287
|
{ type: DialogService },
|
|
286
|
-
{ type: CatalogScreenConfigurationService },
|
|
287
288
|
{ type: IconCacheService }
|
|
288
289
|
];
|
|
289
290
|
DialogCatalogComponent.propDecorators = {
|
|
@@ -302,4 +303,4 @@ DialogCatalogComponent.propDecorators = {
|
|
|
302
303
|
addExternalArticleClicked: [{ type: Output }],
|
|
303
304
|
showClass: [{ type: HostBinding, args: ["class.co-dialog-catalog",] }]
|
|
304
305
|
};
|
|
305
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNhdGFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvZGlhbG9nL2NhdGFsb2cvZGlhbG9nLWNhdGFsb2cvZGlhbG9nLWNhdGFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBSXRFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRS9FLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQzFHLE9BQU8sRUFDTCxpQ0FBaUMsRUFDbEMsTUFBTSx3RUFBd0UsQ0FBQztBQUNoRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFJbkUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQ3JHLE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdkIsTUFBTSxtQkFBbUIsQ0FBQztBQUUz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QUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFDLENBQUMsQ0FBQzt3QkFDckQsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLENBQUMsQ0FBQzt3QkFDbkQsVUFBVSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO3FCQUMzRCxDQUFDO2lCQUNIO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUEvR08sa0JBQWtCO1lBQ0csY0FBYztZQUFuQyxtQkFBbUI7WUFZbkIsY0FBYztZQUlkLGFBQWE7WUFTYixpQ0FBaUM7WUFyQmpDLGdCQUFnQjs7O3lDQThHckIsS0FBSztzQkFHTCxLQUFLO3lCQUdMLEtBQUs7NkJBR0wsS0FBSzt1Q0FHTCxLQUFLOzBCQUdMLEtBQUs7dUJBR0wsS0FBSzt5QkFHTCxNQUFNOzZCQUdOLE1BQU07NkJBTU4sTUFBTTtnQ0FJTixNQUFNO3VDQU1OLE1BQU07d0NBT04sTUFBTTt3QkFHTixXQUFXLFNBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QXJ0aWNsZUV4dGVuZGVkfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWV4dGVuZGVkLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7Q2F0YWxvZ0V2ZW50U2VydmljZSwgQ2F0YWxvZ1NlcnZpY2V9IGZyb20gJ0Bjb2xpam5pdC9jYXRhbG9nJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0V4dGVybmFsU291cmNlfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9leHRlcm5hbC1zb3VyY2UuYm8nO1xyXG5pbXBvcnQge0V4dGVybmFsU291cmNlVmlld21vZGVsfSBmcm9tICdAY29saWpuaXQvY2F0YWxvZy9saWIvbW9kZWwvZXh0ZXJuYWwtc291cmNlLXZpZXdtb2RlbCc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQge0NhdGFsb2dEZWZpbml0aW9ufSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9jYXRhbG9nLWRlZmluaXRpb24uYm8nO1xyXG5pbXBvcnQge0V4dGVybmFsQ2F0YWxvZ1N0YXJ0dXBJbmZvfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9leHRlcm5hbC1jYXRhbG9nLXN0YXJ0dXAtaW5mbyc7XHJcbmltcG9ydCB7XHJcbiAgRXh0ZXJuYWxDYXRhbG9nU3RhcnR1cEluZm9SZXF1ZXN0XHJcbn0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvZXh0ZXJuYWwtY2F0YWxvZy1zdGFydHVwLWluZm8tcmVxdWVzdCc7XHJcbmltcG9ydCB7QXJ0aWNsZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2UvYXJ0aWNsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm8nO1xyXG5pbXBvcnQge09yZGVyTGluZVNldEluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9vcmRlci1saW5lLXNldC1pbmZvLmJvJztcclxuaW1wb3J0IHtBcnRpY2xlTGlzdE9iamVjdEV4dGVuZGVkfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWxpc3Qtb2JqZWN0LWV4dGVuZGVkLmJvJztcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtFeHRlcm5hbENhdGFsb2dUeXBlc30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vZXh0ZXJuYWwtY2F0YWxvZy10eXBlcy5lbnVtJztcclxuaW1wb3J0IHtcclxuICBQcm9kdWN0Q29ubmVjdG9yQWRhcHRlclNlcnZpY2UsXHJcbiAgUHJvZHVjdENvbm5lY3RvclNlcnZpY2UsXHJcbiAgUHJvZHVjdEV2ZW50U2VydmljZSxcclxuICBQcm9kdWN0U2V0dGluZ3NTZXJ2aWNlXHJcbn0gZnJvbSAnQGNvbGlqbml0L3Byb2R1Y3QnO1xyXG5pbXBvcnQge0FydGljbGVMaXN0T2JqZWN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1saXN0LW9iamVjdCc7XHJcbmltcG9ydCB7Q2F0YWxvZ1NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlL2NhdGFsb2ctc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tZGlhbG9nLWNhdGFsb2dcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLWRpYWxvZyAoY2xvc2VDbGljayk9XCJjbG9zZUNsaWNrLmVtaXQoJGV2ZW50KVwiIFtALmRpc2FibGVkXT1cImRlc3Ryb3llZFwiPlxyXG4gICAgICA8Y28taWNvbiAqbmdJZj1cInNob3dFeHRlcm5hbENhdGFsb2dcIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRMZWZ0KVwiXHJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVCYWNrQ2xpY2soJGV2ZW50KVwiPjwvY28taWNvbj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93RXh0ZXJuYWxDYXRhbG9nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy1jYXRhbG9nLXByb2R1Y3Qtd3JhcHBlclwiIFtjbGFzcy5zaG93LXByb2R1Y3RdPVwic2hvd1Byb2R1Y3RcIj5cclxuICAgICAgICAgIDxjby1jYXRhbG9nLXNlYXJjaFxyXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ0NBVEFMT0cnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICBbc3ViVGl0bGVdPVwiJ1NFQVJDSF9CWV9BUlRJQ0xFTlVNQkVSX05BTUVfT1JfREVTQ1JJUFRJT04nIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICBbc2VhcmNoUGxhY2Vob2xkZXJdPVwiJ1NFQVJDSF9CWV9BUlRJQ0xFTlVNQkVSX09SX0RFU0NSSVBUSU9OJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgW2NyZWF0ZUZyb3plbkFydGljbGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbc2hvd05hdmlnYXRpb25dPVwic2hvd05hdmlnYXRpb25cIlxyXG4gICAgICAgICAgICBbc2V0dGluZ3NdPVwiY2F0YWxvZ1NldHRpbmdzXCJcclxuICAgICAgICAgICAgKG9uRXh0ZXJuYWxTb3VyY2VDbGljayk9XCJoYW5kbGVFeHRlcm5hbFNvdXJjZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAob25BZGRBcnRpY2xlQnV0dG9uQ2xpY2spPVwiaGFuZGxlQWRkQXJ0aWNsZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAob25Mb29rQXRBcnRpY2xlQnV0dG9uQ2xpY2spPVwiaGFuZGxlQXJ0aWNsZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAob25BcnRpY2xlQ2xpY2spPVwiaGFuZGxlQXJ0aWNsZUNsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgIDwvY28tY2F0YWxvZy1zZWFyY2g+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0YWxvZy1hcnRpY2xlLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJiYWNrLWJ1dHRvbi1wcm9kdWN0XCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50TGVmdClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd1Byb2R1Y3QgPSBmYWxzZVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgPGFwcC1pb25lLXByb2R1Y3QgKm5nSWY9XCJzaG93UHJvZHVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtza3VdPVwic2t1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NldHRpbmdzXT1cImNhdGFsb2dTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoYW5kbGVBZGRBcnRpY2xlSW50ZXJuYWxseV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc1JldHVybl09XCJpc1JldHVyblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkFkZFRvQ2FydCk9XCJoYW5kbGVBZGRBcnRpY2xlRnJvbUFydGljbGVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQWx0ZXJuYXRpdmVDbGljayk9XCJoYW5kbGVPbkFsdGVybmF0aXZlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID48L2FwcC1pb25lLXByb2R1Y3Q+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93RXh0ZXJuYWxDYXRhbG9nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy1jYXRhbG9nLXByb2R1Y3Qtd3JhcHBlclwiIFtjbGFzcy5zaG93LXByb2R1Y3RdPVwic2hvd1Byb2R1Y3RcIj5cclxuXHJcbiAgICAgICAgICA8Y28tY2F0YWxvZy1leHRlcm5hbC1zb3VyY2VcclxuICAgICAgICAgICAgW2V4dGVybmFsQ2F0YWxvZ1N0YXJ0dXBJbmZvXT1cImNhdGFsb2dJbmZvXCJcclxuICAgICAgICAgICAgW3RpdGxlXT1cIidDQVRBTE9HJyB8IGxvY2FsaXplIHwgYXBwZW5kOiAnICcgfCBhcHBlbmQ6IGV4dGVybmFsQ2F0YWxvZ05hbWVcIlxyXG4gICAgICAgICAgICBbc3ViVGl0bGVdPVwiJ1NFQVJDSF9CWV9BUlRJQ0xFTlVNQkVSX05BTUVfT1JfREVTQ1JJUFRJT04nIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICBbc2VhcmNoUGxhY2Vob2xkZXJdPVwiJ1NFQVJDSF9CWV9BUlRJQ0xFTlVNQkVSX09SX0RFU0NSSVBUSU9OJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgW25hbWVdPVwiZXh0ZXJuYWxDYXRhbG9nTmFtZVwiXHJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cImV4dGVybmFsQ2F0YWxvZ09wdGlvbnNcIlxyXG4gICAgICAgICAgICBbc2hvd05hdmlnYXRpb25dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAoYXJ0aWNsZUNsaWNrKT1cImhhbmRsZUNhdEZhcm1BcnRpY2xlQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGFkZEFydGljbGVDbGljayk9XCJoYW5kbGVBZGRDYXRGYXJtQXJ0aWNsZUNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChpRnJhbWVGZWVkYmFja1JlY2VpdmVkKT1cImhhbmRsZUlGcmFtZUZlZWRiYWNrKCRldmVudClcIlxyXG4gICAgICAgICAgPjwvY28tY2F0YWxvZy1leHRlcm5hbC1zb3VyY2U+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGFsb2ctYXJ0aWNsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwiYmFjay1idXR0b24tcHJvZHVjdFwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dQcm9kdWN0ID0gZmFsc2VcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgIDxjby1wcm9kdWN0LWV4dGVybmFsLXNvdXJjZSAqbmdJZj1cInNob3dQcm9kdWN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleHRlcm5hbFNvdXJjZV09XCJleHRlcm5hbFNvdXJjZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2t1XT1cImNhdFNrdVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWRkVG9DYXJ0KT1cImhhbmRsZUFkZENhdEZhcm1BcnRpY2xlQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvY28tcHJvZHVjdC1leHRlcm5hbC1zb3VyY2U+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2NvLWRpYWxvZz5cclxuICAgIDxjby1kaWFsb2cgKm5nSWY9XCJhcnRpY2xlRm9yU3RvY2sgJiYgc2hvd1N0b2NrXCIgKGNsb3NlQ2xpY2spPVwiY2FuY2VsU3RvY2tCdXR0b25DbGljaygpXCI+XHJcbiAgICAgIDxjby1zdG9jayBbYXJ0aWNsZV09XCJhcnRpY2xlRm9yU3RvY2tcIiAoY2FuY2VsQnV0dG9uQ2xpY2tlZCk9XCJjYW5jZWxTdG9ja0J1dHRvbkNsaWNrKClcIj48L2NvLXN0b2NrPlxyXG4gICAgPC9jby1kaWFsb2c+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIENhdGFsb2dTZXJ2aWNlLFxyXG4gICAgUHJvZHVjdENvbm5lY3RvclNlcnZpY2UsXHJcbiAgICBQcm9kdWN0Q29ubmVjdG9yQWRhcHRlclNlcnZpY2UsXHJcbiAgICBQcm9kdWN0U2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgUHJvZHVjdEV2ZW50U2VydmljZSxcclxuICAgIHtwcm92aWRlOiBCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZSwgdXNlRXhpc3Rpbmc6IENhdGFsb2dTY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0sXHJcbiAgXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKFwic2hvd0hpZGVQcm9kdWN0XCIsIFtcclxuICAgICAgc3RhdGUoXCJ0cnVlXCIsIHN0eWxlKHt0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgtNTAlKVwifSkpLFxyXG4gICAgICBzdGF0ZShcImZhbHNlXCIsIHN0eWxlKHt0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgwKVwifSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKFwiZmFsc2UgPD0+IHRydWVcIiwgYW5pbWF0ZShcIjIwMG1zIGVhc2UtaW4tb3V0XCIpKVxyXG4gICAgXSlcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ0NhdGFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGhhbmRsZUFkZEFydGljbGVJbnRlcm5hbGx5OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgb3B0aW9uczogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwYXJhbWV0ZXJzOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dOYXZpZ2F0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmV0dXJuQXJ0aWNsZU9uVGlsZUNsaWNrOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNSZXR1cm46IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBjbG9zZUNsaWNrOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPEFydGljbGVFeHRlbmRlZD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFydGljbGVFeHRlbmRlZD4oKTtcclxuXHJcbiAgLypAT3V0cHV0KClcclxuICBwdWJsaWMgaGFuZGxlQWRkQXJ0aWNsZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxBcnRpY2xlRXh0ZW5kZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBcnRpY2xlRXh0ZW5kZWQ+KCk7Ki9cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGlGcmFtZUZlZWRiYWNrOiBFdmVudEVtaXR0ZXI8eyBqc29uU3RyaW5nOiBzdHJpbmcsIGNhdGFsb2c6IG51bWJlciwgc291cmNlVHlwZTogc3RyaW5nIH0+XHJcbiAgICA9IG5ldyBFdmVudEVtaXR0ZXI8eyBqc29uU3RyaW5nOiBzdHJpbmcsIGNhdGFsb2c6IG51bWJlciwgc291cmNlVHlwZTogc3RyaW5nIH0+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhZGRBcnRpY2xlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHsgYXJ0aWNsZTogc3RyaW5nIHwgQXJ0aWNsZUV4dGVuZGVkLCBxdWFudGl0eTogbnVtYmVyIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBhcnRpY2xlOiBzdHJpbmcgfCBBcnRpY2xlRXh0ZW5kZWQsXHJcbiAgICBxdWFudGl0eTogbnVtYmVyXHJcbiAgfT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGFkZENhdEZhcm1BcnRpY2xlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHtcclxuICAgIHF1YW50aXR5OiBudW1iZXIsXHJcbiAgICBqc29uU3RyaW5nOiBzdHJpbmcsXHJcbiAgICBjYXRhbG9nOiBudW1iZXJcclxuICB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBxdWFudGl0eTogbnVtYmVyLCBqc29uU3RyaW5nOiBzdHJpbmcsIGNhdGFsb2c6IG51bWJlciB9PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgYWRkRXh0ZXJuYWxBcnRpY2xlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tZGlhbG9nLWNhdGFsb2dcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2F0YWxvZ1NldHRpbmdzOiBhbnk7XHJcbiAgcHVibGljIGV4dGVybmFsQ2F0YWxvZ05hbWU6IHN0cmluZztcclxuICBwdWJsaWMgc2hvd0V4dGVybmFsQ2F0YWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBleHRlcm5hbFNvdXJjZTogRXh0ZXJuYWxTb3VyY2U7XHJcbiAgcHVibGljIGNhdGFsb2dEZWZpbml0aW9uOiBDYXRhbG9nRGVmaW5pdGlvbjtcclxuICBwdWJsaWMgYXJ0aWNsZUZvclN0b2NrOiBBcnRpY2xlRXh0ZW5kZWQ7XHJcbiAgcHVibGljIHNob3dTdG9jazogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93UHJvZHVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93RXh0ZXJuYWxQcm9kdWN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNrdTogc3RyaW5nO1xyXG4gIHB1YmxpYyBjYXRTa3U6IHN0cmluZztcclxuICBwdWJsaWMgY2F0QXJ0TmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBkZXN0cm95ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZXh0ZXJuYWxDYXRhbG9nT3B0aW9ucyA9IHtcclxuICAgIHNlYXJjaE9uU3RhcnQ6IHRydWVcclxuICB9XHJcbiAgcHVibGljIGNhdGFsb2dJbmZvOiBFeHRlcm5hbENhdGFsb2dTdGFydHVwSW5mbztcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NhdGFsb2dTZXJ2aWNlOiBDYXRhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NhdGFsb2dFdmVudFNlcnZpY2U6IENhdGFsb2dFdmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hcnRpY2xlU2VydmljZTogQXJ0aWNsZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2NyZWVuQ29uZmlnU2VydmljZTogQ2F0YWxvZ1NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5fc2NyZWVuQ29uZmlnU2VydmljZS5sb2FkQ29uZmlnKCk7XHJcblxyXG4gICAgdGhpcy5jYXRhbG9nU2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl90cmFuc2FjdGlvblNlcnZpY2Uub3B0aW9uc1NlcnZpY2Uuc2V0dGluZ3MpO1xyXG4gICAgaWYgKHRoaXMuY2F0YWxvZ1NldHRpbmdzKSB7XHJcbiAgICAgIHRoaXMuY2F0YWxvZ1NldHRpbmdzLmNyZWF0ZVdlYk9yZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2F0YWxvZ1NldHRpbmdzLm9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XHJcbiAgICAgIHRoaXMuY2F0YWxvZ1NldHRpbmdzLmNhdGFsb2dQYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzO1xyXG4gICAgICBhd2FpdCB0aGlzLl9jYXRhbG9nU2VydmljZS5pbml0KHRoaXMuY2F0YWxvZ1NldHRpbmdzLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuX2NhdGFsb2dFdmVudFNlcnZpY2Uuc3RvY2tEZXRhaWxzQ2xpY2suc3Vic2NyaWJlKChhcnRpY2xlOiBBcnRpY2xlRXh0ZW5kZWQpID0+IHtcclxuICAgICAgICB0aGlzLmhhbmRsZVN0b2NrQnV0dG9uQ2xpY2soYXJ0aWNsZSk7XHJcbiAgICAgIH0pLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZCA9IHRydWU7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN0b2NrQnV0dG9uQ2xpY2soYXJ0aWNsZTogQXJ0aWNsZUV4dGVuZGVkKTogdm9pZCB7XHJcbiAgICB0aGlzLmFydGljbGVGb3JTdG9jayA9IGFydGljbGU7XHJcbiAgICB0aGlzLnNob3dTdG9jayA9ICF0aGlzLnNob3dTdG9jaztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYW5jZWxTdG9ja0J1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93U3RvY2sgPSAhdGhpcy5zaG93U3RvY2s7XHJcbiAgICB0aGlzLmFydGljbGVGb3JTdG9jayA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVFeHRlcm5hbFNvdXJjZUNsaWNrKHNvdXJjZT86IEV4dGVybmFsU291cmNlVmlld21vZGVsKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoc291cmNlKSB7XHJcbiAgICAgIHRoaXMuY2F0YWxvZ0RlZmluaXRpb24gPSBzb3VyY2UuY2F0YWxvZ0RlZmluaXRpb247XHJcbiAgICAgIHRoaXMuZXh0ZXJuYWxTb3VyY2UgPSBzb3VyY2UuZXh0ZXJuYWxTb3VyY2U7XHJcbiAgICAgIGxldCBpbmZvOiBFeHRlcm5hbENhdGFsb2dTdGFydHVwSW5mbyA9IG5ldyBFeHRlcm5hbENhdGFsb2dTdGFydHVwSW5mbygpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuY2hlY2tJZk9wZW5pbmdJc0FsbG93ZWQoKSkge1xyXG4gICAgICAgIGNvbnN0IHJlcXVlc3Q6IEV4dGVybmFsQ2F0YWxvZ1N0YXJ0dXBJbmZvUmVxdWVzdCA9IHRoaXMuYnVpbGRFeHRlcm5hbENhdGFsb2dSZXF1ZXN0KCk7XHJcblxyXG4gICAgICAgIGluZm8gPSBhd2FpdCB0aGlzLl9hcnRpY2xlU2VydmljZS5nZXRXZWJWaWV3U3RhcnR1cEluZm8ocmVxdWVzdCk7XHJcbiAgICAgICAgdGhpcy5jYXRhbG9nSW5mbyA9IGluZm87XHJcbiAgICAgICAgdGhpcy5zaG93RXh0ZXJuYWxDYXRhbG9nID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dUb2FzdChcIkVYVEVSTkFMX0NBVEFMT0dfSVRFTVNfQUxSRUFEWV9PUkRFUkVEXCIsIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQXJ0aWNsZUNsaWNrKGFydGljbGU6IEFydGljbGVFeHRlbmRlZCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnJldHVybkFydGljbGVPblRpbGVDbGljaykge1xyXG4gICAgICB0aGlzLnNrdSA9IGFydGljbGUuYXJ0aWNsZU51bWJlcjtcclxuICAgICAgdGhpcy5zaG93UHJvZHVjdCA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFydGljbGVDbGlja2VkLm5leHQoYXJ0aWNsZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQWRkQXJ0aWNsZUNsaWNrKGpzb246IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGRBcnRpY2xlQ2xpY2tlZC5uZXh0KHthcnRpY2xlOiBqc29uLCBxdWFudGl0eTogMX0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUFkZEFydGljbGVGcm9tQXJ0aWNsZUNsaWNrKGRhdGE6IHsgYXJ0aWNsZTogc3RyaW5nIHwgQXJ0aWNsZUV4dGVuZGVkLCBxdWFudGl0eTogbnVtYmVyIH0pOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkQXJ0aWNsZUNsaWNrZWQubmV4dChkYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVBZGRFeHRlcm5hbEFydGljbGVDbGljayhqc29uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkRXh0ZXJuYWxBcnRpY2xlQ2xpY2tlZC5uZXh0KGpzb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUJhY2tDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93RXh0ZXJuYWxDYXRhbG9nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlSUZyYW1lRmVlZGJhY2soanNvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmlGcmFtZUZlZWRiYWNrLmVtaXQoe1xyXG4gICAgICBqc29uU3RyaW5nOiBqc29uLFxyXG4gICAgICBjYXRhbG9nOiB0aGlzLmNhdGFsb2dEZWZpbml0aW9uLmdldElkKCksXHJcbiAgICAgIHNvdXJjZVR5cGU6IHRoaXMuZXh0ZXJuYWxTb3VyY2UudHlwZVxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5leHRlcm5hbFNvdXJjZS50eXBlICE9PSBFeHRlcm5hbENhdGFsb2dUeXBlcy5XZWJzaG9wKSB7XHJcbiAgICAgIHRoaXMuc2hvd0V4dGVybmFsQ2F0YWxvZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNhdEZhcm1BcnRpY2xlQ2xpY2tlZChkYXRhOiB7IGFydGljbGU6IEFydGljbGVMaXN0T2JqZWN0RXh0ZW5kZWQsIHNldHRpbmdzOiBhbnkgfSk6IHZvaWQge1xyXG4gICAgdGhpcy5jYXRTa3UgPSBkYXRhLmFydGljbGUuYXJ0aWNsZU51bWJlcjtcclxuICAgIHRoaXMuY2F0QXJ0TmFtZSA9IGRhdGEuYXJ0aWNsZS5uYW1lO1xyXG4gICAgdGhpcy5zaG93UHJvZHVjdCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQWRkQ2F0RmFybUFydGljbGVDbGlja2VkKGRhdGE6IHsgcXVhbnRpdHk6IG51bWJlciwgYXJ0aWNsZTogc3RyaW5nIH0pOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkQ2F0RmFybUFydGljbGVDbGlja2VkLmVtaXQoe1xyXG4gICAgICBxdWFudGl0eTogZGF0YS5xdWFudGl0eSxcclxuICAgICAganNvblN0cmluZzogZGF0YS5hcnRpY2xlLFxyXG4gICAgICBjYXRhbG9nOiB0aGlzLmNhdGFsb2dEZWZpbml0aW9uLmdldElkKClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlT25BbHRlcm5hdGl2ZUNsaWNrKGFydGljbGU6IEFydGljbGVMaXN0T2JqZWN0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvblNlcnZpY2UuZ2V0QXJ0aWNsZUV4dGVuZGVkKGFydGljbGUuYXJ0aWNsZU51bWJlcikudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgdGhpcy5za3UgPSByZXN1bHQuYXJ0aWNsZU51bWJlcjtcclxuICAgICAgICB0aGlzLnNob3dQcm9kdWN0ID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tJZk9wZW5pbmdJc0FsbG93ZWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ub3JkZXJMaW5lU2V0cyAmJiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5vcmRlckxpbmVTZXRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IG9yZGVyTGluZVNldENvZGVzOiBzdHJpbmdbXSA9XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ub3JkZXJMaW5lU2V0cy5maWx0ZXIobyA9PiBvLmNhdGFsb2dJZCA9IHRoaXMuY2F0YWxvZ0RlZmluaXRpb24uZ2V0SWQoKSkubWFwKG8gPT4gby5vcmRlckxpbmVTZXRDb2RlKTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzLmZvckVhY2gobCA9PiB7XHJcbiAgICAgICAgaWYgKChvcmRlckxpbmVTZXRDb2Rlcy5maW5kSW5kZXgoYyA9PiBjID09PSBsLm9yZGVyTGluZVNldENvZGUpID49IDApXHJcbiAgICAgICAgICAmJiBsLmFydGljbGVMaW5lU3RhdHVzICYmIGwuYXJ0aWNsZUxpbmVTdGF0dXMuaGFzT3duUHJvcGVydHkoJ3F1YW50aXR5T3JkZXJlZCcpICYmIGwuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlPcmRlcmVkID4gMCkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkRXh0ZXJuYWxDYXRhbG9nUmVxdWVzdCgpOiBFeHRlcm5hbENhdGFsb2dTdGFydHVwSW5mb1JlcXVlc3Qge1xyXG4gICAgY29uc3QgcmVxdWVzdDogRXh0ZXJuYWxDYXRhbG9nU3RhcnR1cEluZm9SZXF1ZXN0ID0gbmV3IEV4dGVybmFsQ2F0YWxvZ1N0YXJ0dXBJbmZvUmVxdWVzdCgpO1xyXG4gICAgcmVxdWVzdC5jYXRhbG9nSWQgPSB0aGlzLmNhdGFsb2dEZWZpbml0aW9uLmdldElkKCk7XHJcbiAgICByZXF1ZXN0LnBvc0VtcGxveWVlID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaGFuZGxlZEJ5O1xyXG4gICAgcmVxdWVzdC5pb25lT3JkZXJOciA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uTnIudG9TdHJpbmcoKTtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5yZWxhdGlvbikge1xyXG4gICAgICByZXF1ZXN0LnBvc05hbWUgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5yZWxhdGlvbi5mYW1pbHlOYW1lO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVxdWVzdC5wb3NOYW1lID0gJ05OQicgLy9Ob2cgTmlldCBCZXBhYWxkXHJcbiAgICB9XHJcbiAgICB0aGlzLmV4cGFuZEV4dGVybmFsQ2F0YWxvZ1JlcXVlc3RJZk5lZWRlZChyZXF1ZXN0KTtcclxuICAgIHJldHVybiByZXF1ZXN0XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4cGFuZEV4dGVybmFsQ2F0YWxvZ1JlcXVlc3RJZk5lZWRlZChyZXF1ZXN0OiBFeHRlcm5hbENhdGFsb2dTdGFydHVwSW5mb1JlcXVlc3QpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5vcmRlckxpbmVTZXRzICYmIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLm9yZGVyTGluZVNldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgb3JkZXJMaW5lU2V0OiBPcmRlckxpbmVTZXRJbmZvID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ub3JkZXJMaW5lU2V0cy5maW5kKHNldCA9PiBzZXQuY2F0YWxvZ0lkID09PSB0aGlzLmNhdGFsb2dEZWZpbml0aW9uLmdldElkKCkpO1xyXG4gICAgICBpZiAob3JkZXJMaW5lU2V0KSB7XHJcbiAgICAgICAgcmVxdWVzdC5wb3NBdXBpbmcgPSBvcmRlckxpbmVTZXQuYXVwT3JkZXJOclxyXG4gICAgICAgIGlmIChyZXF1ZXN0LnBvc0F1cGluZykge1xyXG4gICAgICAgICAgcmVxdWVzdC5wb3NTdGF0dXMgPSAnQ2hhbmdlJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9yZGVyTGluZVNldC52ZFByb2plY3RJZCkge1xyXG4gICAgICAgICAgcmVxdWVzdC5vcmRlcklkID0gb3JkZXJMaW5lU2V0LnZkUHJvamVjdElkO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3JkZXJMaW5lU2V0Lnd0UHJvamVjdE5yKSB7XHJcbiAgICAgICAgICByZXF1ZXN0Lm9yZGVySWQgPSBvcmRlckxpbmVTZXQud3RQcm9qZWN0TnI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNhdGFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvZGlhbG9nL2NhdGFsb2cvZGlhbG9nLWNhdGFsb2cvZGlhbG9nLWNhdGFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBSXRFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRS9FLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQzFHLE9BQU8sRUFDTCxpQ0FBaUMsRUFDbEMsTUFBTSx3RUFBd0UsQ0FBQztBQUNoRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFJbkUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQ3JHLE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdkIsTUFBTSxtQkFBbUIsQ0FBQztBQUUz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LEVBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFDLENBQUMsQ0FBQzt3QkFDckQsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLENBQUMsQ0FBQzt3QkFDbkQsVUFBVSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO3FCQUMzRCxDQUFDO2lCQUNIO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUFqSE8sa0JBQWtCO1lBQ0csY0FBYztZQUFuQyxtQkFBbUI7WUFZbkIsY0FBYztZQUlkLGFBQWE7WUFaYixnQkFBZ0I7Ozt5Q0FnSHJCLEtBQUs7c0JBR0wsS0FBSzt5QkFHTCxLQUFLOzZCQUdMLEtBQUs7dUNBR0wsS0FBSzswQkFHTCxLQUFLO3VCQUdMLEtBQUs7eUJBR0wsTUFBTTs2QkFHTixNQUFNOzZCQU1OLE1BQU07Z0NBSU4sTUFBTTt1Q0FNTixNQUFNO3dDQU9OLE1BQU07d0JBR04sV0FBVyxTQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FydGljbGVFeHRlbmRlZH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1leHRlbmRlZC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NhdGFsb2dFdmVudFNlcnZpY2UsIENhdGFsb2dTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY2F0YWxvZyc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtFeHRlcm5hbFNvdXJjZX0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvZXh0ZXJuYWwtc291cmNlLmJvJztcclxuaW1wb3J0IHtFeHRlcm5hbFNvdXJjZVZpZXdtb2RlbH0gZnJvbSAnQGNvbGlqbml0L2NhdGFsb2cvbGliL21vZGVsL2V4dGVybmFsLXNvdXJjZS12aWV3bW9kZWwnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtL2ljb24uZW51bSc7XHJcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHtDYXRhbG9nRGVmaW5pdGlvbn0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvY2F0YWxvZy1kZWZpbml0aW9uLmJvJztcclxuaW1wb3J0IHtFeHRlcm5hbENhdGFsb2dTdGFydHVwSW5mb30gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvZXh0ZXJuYWwtY2F0YWxvZy1zdGFydHVwLWluZm8nO1xyXG5pbXBvcnQge1xyXG4gIEV4dGVybmFsQ2F0YWxvZ1N0YXJ0dXBJbmZvUmVxdWVzdFxyXG59IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2V4dGVybmFsLWNhdGFsb2ctc3RhcnR1cC1pbmZvLXJlcXVlc3QnO1xyXG5pbXBvcnQge0FydGljbGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlL2FydGljbGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvJztcclxuaW1wb3J0IHtPcmRlckxpbmVTZXRJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvb3JkZXItbGluZS1zZXQtaW5mby5ibyc7XHJcbmltcG9ydCB7QXJ0aWNsZUxpc3RPYmplY3RFeHRlbmRlZH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1saXN0LW9iamVjdC1leHRlbmRlZC5ibyc7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7RXh0ZXJuYWxDYXRhbG9nVHlwZXN9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL2V4dGVybmFsLWNhdGFsb2ctdHlwZXMuZW51bSc7XHJcbmltcG9ydCB7XHJcbiAgUHJvZHVjdENvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlLFxyXG4gIFByb2R1Y3RDb25uZWN0b3JTZXJ2aWNlLFxyXG4gIFByb2R1Y3RFdmVudFNlcnZpY2UsXHJcbiAgUHJvZHVjdFNldHRpbmdzU2VydmljZVxyXG59IGZyb20gJ0Bjb2xpam5pdC9wcm9kdWN0JztcclxuaW1wb3J0IHtBcnRpY2xlTGlzdE9iamVjdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2FydGljbGUtbGlzdC1vYmplY3QnO1xyXG5pbXBvcnQge0NhdGFsb2dTY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSBcIi4vc2VydmljZS9jYXRhbG9nLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLWRpYWxvZy1jYXRhbG9nXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby1kaWFsb2cgKGNsb3NlQ2xpY2spPVwiY2xvc2VDbGljay5lbWl0KCRldmVudClcIiBbQC5kaXNhYmxlZF09XCJkZXN0cm95ZWRcIj5cclxuICAgICAgPGNvLWljb24gKm5nSWY9XCJzaG93RXh0ZXJuYWxDYXRhbG9nXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50TGVmdClcIlxyXG4gICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQmFja0NsaWNrKCRldmVudClcIj48L2NvLWljb24+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZXR0aW5nc1NldFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd0V4dGVybmFsQ2F0YWxvZ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy1jYXRhbG9nLXByb2R1Y3Qtd3JhcHBlclwiIFtjbGFzcy5zaG93LXByb2R1Y3RdPVwic2hvd1Byb2R1Y3RcIj5cclxuICAgICAgICAgICAgPGNvLWNhdGFsb2ctc2VhcmNoXHJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cIidDQVRBTE9HJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICBbc3ViVGl0bGVdPVwiJ1NFQVJDSF9CWV9BUlRJQ0xFTlVNQkVSX05BTUVfT1JfREVTQ1JJUFRJT04nIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgIFtzZWFyY2hQbGFjZWhvbGRlcl09XCInU0VBUkNIX0JZX0FSVElDTEVOVU1CRVJfT1JfREVTQ1JJUFRJT04nIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgIFtjcmVhdGVGcm96ZW5BcnRpY2xlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICBbc2hvd05hdmlnYXRpb25dPVwic2hvd05hdmlnYXRpb25cIlxyXG4gICAgICAgICAgICAgIFtzZXR0aW5nc109XCJjYXRhbG9nU2V0dGluZ3NcIlxyXG4gICAgICAgICAgICAgIChvbkV4dGVybmFsU291cmNlQ2xpY2spPVwiaGFuZGxlRXh0ZXJuYWxTb3VyY2VDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAob25BZGRBcnRpY2xlQnV0dG9uQ2xpY2spPVwiaGFuZGxlQWRkQXJ0aWNsZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChvbkxvb2tBdEFydGljbGVCdXR0b25DbGljayk9XCJoYW5kbGVBcnRpY2xlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKG9uQXJ0aWNsZUNsaWNrKT1cImhhbmRsZUFydGljbGVDbGljaygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDwvY28tY2F0YWxvZy1zZWFyY2g+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRhbG9nLWFydGljbGUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwiYmFjay1idXR0b24tcHJvZHVjdFwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd1Byb2R1Y3QgPSBmYWxzZVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICA8YXBwLWlvbmUtcHJvZHVjdCAqbmdJZj1cInNob3dQcm9kdWN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2t1XT1cInNrdVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NldHRpbmdzXT1cImNhdGFsb2dTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hhbmRsZUFkZEFydGljbGVJbnRlcm5hbGx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNSZXR1cm5dPVwiaXNSZXR1cm5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkFkZFRvQ2FydCk9XCJoYW5kbGVBZGRBcnRpY2xlRnJvbUFydGljbGVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25BbHRlcm5hdGl2ZUNsaWNrKT1cImhhbmRsZU9uQWx0ZXJuYXRpdmVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICA+PC9hcHAtaW9uZS1wcm9kdWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93RXh0ZXJuYWxDYXRhbG9nXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWNhdGFsb2ctcHJvZHVjdC13cmFwcGVyXCIgW2NsYXNzLnNob3ctcHJvZHVjdF09XCJzaG93UHJvZHVjdFwiPlxyXG5cclxuICAgICAgICAgICAgPGNvLWNhdGFsb2ctZXh0ZXJuYWwtc291cmNlXHJcbiAgICAgICAgICAgICAgW2V4dGVybmFsQ2F0YWxvZ1N0YXJ0dXBJbmZvXT1cImNhdGFsb2dJbmZvXCJcclxuICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0NBVEFMT0cnIHwgbG9jYWxpemUgfCBhcHBlbmQ6ICcgJyB8IGFwcGVuZDogZXh0ZXJuYWxDYXRhbG9nTmFtZVwiXHJcbiAgICAgICAgICAgICAgW3N1YlRpdGxlXT1cIidTRUFSQ0hfQllfQVJUSUNMRU5VTUJFUl9OQU1FX09SX0RFU0NSSVBUSU9OJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICBbc2VhcmNoUGxhY2Vob2xkZXJdPVwiJ1NFQVJDSF9CWV9BUlRJQ0xFTlVNQkVSX09SX0RFU0NSSVBUSU9OJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICBbbmFtZV09XCJleHRlcm5hbENhdGFsb2dOYW1lXCJcclxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJleHRlcm5hbENhdGFsb2dPcHRpb25zXCJcclxuICAgICAgICAgICAgICBbc2hvd05hdmlnYXRpb25dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIChhcnRpY2xlQ2xpY2spPVwiaGFuZGxlQ2F0RmFybUFydGljbGVDbGlja2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChhZGRBcnRpY2xlQ2xpY2spPVwiaGFuZGxlQWRkQ2F0RmFybUFydGljbGVDbGlja2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChpRnJhbWVGZWVkYmFja1JlY2VpdmVkKT1cImhhbmRsZUlGcmFtZUZlZWRiYWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICA+PC9jby1jYXRhbG9nLWV4dGVybmFsLXNvdXJjZT5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRhbG9nLWFydGljbGUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwiYmFjay1idXR0b24tcHJvZHVjdFwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd1Byb2R1Y3QgPSBmYWxzZVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICA8Y28tcHJvZHVjdC1leHRlcm5hbC1zb3VyY2UgKm5nSWY9XCJzaG93UHJvZHVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleHRlcm5hbFNvdXJjZV09XCJleHRlcm5hbFNvdXJjZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtza3VdPVwiY2F0U2t1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFkZFRvQ2FydCk9XCJoYW5kbGVBZGRDYXRGYXJtQXJ0aWNsZUNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgPjwvY28tcHJvZHVjdC1leHRlcm5hbC1zb3VyY2U+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9jby1kaWFsb2c+XHJcbiAgICA8Y28tZGlhbG9nICpuZ0lmPVwiYXJ0aWNsZUZvclN0b2NrICYmIHNob3dTdG9ja1wiIChjbG9zZUNsaWNrKT1cImNhbmNlbFN0b2NrQnV0dG9uQ2xpY2soKVwiPlxyXG4gICAgICA8Y28tc3RvY2sgW2FydGljbGVdPVwiYXJ0aWNsZUZvclN0b2NrXCIgKGNhbmNlbEJ1dHRvbkNsaWNrZWQpPVwiY2FuY2VsU3RvY2tCdXR0b25DbGljaygpXCI+PC9jby1zdG9jaz5cclxuICAgIDwvY28tZGlhbG9nPlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBDYXRhbG9nU2VydmljZSxcclxuICAgIFByb2R1Y3RDb25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgUHJvZHVjdENvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlLFxyXG4gICAgUHJvZHVjdFNldHRpbmdzU2VydmljZSxcclxuICAgIFByb2R1Y3RFdmVudFNlcnZpY2UsXHJcbiAgICB7cHJvdmlkZTogQmFzZU1vZHVsZVNjcmVlbkNvbmZpZ1NlcnZpY2UsIHVzZUV4aXN0aW5nOiBDYXRhbG9nU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9LFxyXG4gIF0sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcihcInNob3dIaWRlUHJvZHVjdFwiLCBbXHJcbiAgICAgIHN0YXRlKFwidHJ1ZVwiLCBzdHlsZSh7dHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoLTUwJSlcIn0pKSxcclxuICAgICAgc3RhdGUoXCJmYWxzZVwiLCBzdHlsZSh7dHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoMClcIn0pKSxcclxuICAgICAgdHJhbnNpdGlvbihcImZhbHNlIDw9PiB0cnVlXCIsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluLW91dFwiKSlcclxuICAgIF0pXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dDYXRhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBoYW5kbGVBZGRBcnRpY2xlSW50ZXJuYWxseTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG9wdGlvbnM6IGFueTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGFyYW1ldGVyczogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93TmF2aWdhdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJldHVybkFydGljbGVPblRpbGVDbGljazogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGlzUmV0dXJuOiBib29sZWFuO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2xvc2VDbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxBcnRpY2xlRXh0ZW5kZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBcnRpY2xlRXh0ZW5kZWQ+KCk7XHJcblxyXG4gIC8qQE91dHB1dCgpXHJcbiAgcHVibGljIGhhbmRsZUFkZEFydGljbGVDbGlja2VkOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZUV4dGVuZGVkPiA9IG5ldyBFdmVudEVtaXR0ZXI8QXJ0aWNsZUV4dGVuZGVkPigpOyovXHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBpRnJhbWVGZWVkYmFjazogRXZlbnRFbWl0dGVyPHsganNvblN0cmluZzogc3RyaW5nLCBjYXRhbG9nOiBudW1iZXIsIHNvdXJjZVR5cGU6IHN0cmluZyB9PlxyXG4gICAgPSBuZXcgRXZlbnRFbWl0dGVyPHsganNvblN0cmluZzogc3RyaW5nLCBjYXRhbG9nOiBudW1iZXIsIHNvdXJjZVR5cGU6IHN0cmluZyB9PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgYWRkQXJ0aWNsZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjx7IGFydGljbGU6IHN0cmluZyB8IEFydGljbGVFeHRlbmRlZCwgcXVhbnRpdHk6IG51bWJlciB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgYXJ0aWNsZTogc3RyaW5nIHwgQXJ0aWNsZUV4dGVuZGVkLFxyXG4gICAgcXVhbnRpdHk6IG51bWJlclxyXG4gIH0+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhZGRDYXRGYXJtQXJ0aWNsZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBxdWFudGl0eTogbnVtYmVyLFxyXG4gICAganNvblN0cmluZzogc3RyaW5nLFxyXG4gICAgY2F0YWxvZzogbnVtYmVyXHJcbiAgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgcXVhbnRpdHk6IG51bWJlciwganNvblN0cmluZzogc3RyaW5nLCBjYXRhbG9nOiBudW1iZXIgfT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGFkZEV4dGVybmFsQXJ0aWNsZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWRpYWxvZy1jYXRhbG9nXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhdGFsb2dTZXR0aW5nczogYW55O1xyXG4gIHB1YmxpYyBzZXR0aW5nc1NldDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBleHRlcm5hbENhdGFsb2dOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHNob3dFeHRlcm5hbENhdGFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZXh0ZXJuYWxTb3VyY2U6IEV4dGVybmFsU291cmNlO1xyXG4gIHB1YmxpYyBjYXRhbG9nRGVmaW5pdGlvbjogQ2F0YWxvZ0RlZmluaXRpb247XHJcbiAgcHVibGljIGFydGljbGVGb3JTdG9jazogQXJ0aWNsZUV4dGVuZGVkO1xyXG4gIHB1YmxpYyBzaG93U3RvY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1Byb2R1Y3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0V4dGVybmFsUHJvZHVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBza3U6IHN0cmluZztcclxuICBwdWJsaWMgY2F0U2t1OiBzdHJpbmc7XHJcbiAgcHVibGljIGNhdEFydE5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgZGVzdHJveWVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGV4dGVybmFsQ2F0YWxvZ09wdGlvbnMgPSB7XHJcbiAgICBzZWFyY2hPblN0YXJ0OiB0cnVlXHJcbiAgfVxyXG4gIHB1YmxpYyBjYXRhbG9nSW5mbzogRXh0ZXJuYWxDYXRhbG9nU3RhcnR1cEluZm87XHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NhdGFsb2dTZXJ2aWNlOiBDYXRhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NhdGFsb2dFdmVudFNlcnZpY2U6IENhdGFsb2dFdmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hcnRpY2xlU2VydmljZTogQXJ0aWNsZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5jYXRhbG9nU2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl90cmFuc2FjdGlvblNlcnZpY2Uub3B0aW9uc1NlcnZpY2Uuc2V0dGluZ3MpO1xyXG4gICAgaWYgKHRoaXMuY2F0YWxvZ1NldHRpbmdzKSB7XHJcbiAgICAgIHRoaXMuY2F0YWxvZ1NldHRpbmdzLmNyZWF0ZVdlYk9yZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2F0YWxvZ1NldHRpbmdzLm9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XHJcbiAgICAgIHRoaXMuY2F0YWxvZ1NldHRpbmdzLmNhdGFsb2dQYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzO1xyXG4gICAgICBhd2FpdCB0aGlzLl9jYXRhbG9nU2VydmljZS5pbml0KHRoaXMuY2F0YWxvZ1NldHRpbmdzLCB0cnVlKTtcclxuICAgICAgdGhpcy5zZXR0aW5nc1NldCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLl9jYXRhbG9nRXZlbnRTZXJ2aWNlLnN0b2NrRGV0YWlsc0NsaWNrLnN1YnNjcmliZSgoYXJ0aWNsZTogQXJ0aWNsZUV4dGVuZGVkKSA9PiB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVTdG9ja0J1dHRvbkNsaWNrKGFydGljbGUpO1xyXG4gICAgICB9KSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTdG9ja0J1dHRvbkNsaWNrKGFydGljbGU6IEFydGljbGVFeHRlbmRlZCk6IHZvaWQge1xyXG4gICAgdGhpcy5hcnRpY2xlRm9yU3RvY2sgPSBhcnRpY2xlO1xyXG4gICAgdGhpcy5zaG93U3RvY2sgPSAhdGhpcy5zaG93U3RvY2s7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FuY2VsU3RvY2tCdXR0b25DbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1N0b2NrID0gIXRoaXMuc2hvd1N0b2NrO1xyXG4gICAgdGhpcy5hcnRpY2xlRm9yU3RvY2sgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlRXh0ZXJuYWxTb3VyY2VDbGljayhzb3VyY2U/OiBFeHRlcm5hbFNvdXJjZVZpZXdtb2RlbCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHNvdXJjZSkge1xyXG4gICAgICB0aGlzLmNhdGFsb2dEZWZpbml0aW9uID0gc291cmNlLmNhdGFsb2dEZWZpbml0aW9uO1xyXG4gICAgICB0aGlzLmV4dGVybmFsU291cmNlID0gc291cmNlLmV4dGVybmFsU291cmNlO1xyXG4gICAgICBsZXQgaW5mbzogRXh0ZXJuYWxDYXRhbG9nU3RhcnR1cEluZm8gPSBuZXcgRXh0ZXJuYWxDYXRhbG9nU3RhcnR1cEluZm8oKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmNoZWNrSWZPcGVuaW5nSXNBbGxvd2VkKCkpIHtcclxuICAgICAgICBjb25zdCByZXF1ZXN0OiBFeHRlcm5hbENhdGFsb2dTdGFydHVwSW5mb1JlcXVlc3QgPSB0aGlzLmJ1aWxkRXh0ZXJuYWxDYXRhbG9nUmVxdWVzdCgpO1xyXG5cclxuICAgICAgICBpbmZvID0gYXdhaXQgdGhpcy5fYXJ0aWNsZVNlcnZpY2UuZ2V0V2ViVmlld1N0YXJ0dXBJbmZvKHJlcXVlc3QpO1xyXG4gICAgICAgIHRoaXMuY2F0YWxvZ0luZm8gPSBpbmZvO1xyXG4gICAgICAgIHRoaXMuc2hvd0V4dGVybmFsQ2F0YWxvZyA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5zaG93VG9hc3QoXCJFWFRFUk5BTF9DQVRBTE9HX0lURU1TX0FMUkVBRFlfT1JERVJFRFwiLCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUFydGljbGVDbGljayhhcnRpY2xlOiBBcnRpY2xlRXh0ZW5kZWQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5yZXR1cm5BcnRpY2xlT25UaWxlQ2xpY2spIHtcclxuICAgICAgdGhpcy5za3UgPSBhcnRpY2xlLmFydGljbGVOdW1iZXI7XHJcbiAgICAgIHRoaXMuc2hvd1Byb2R1Y3QgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hcnRpY2xlQ2xpY2tlZC5uZXh0KGFydGljbGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUFkZEFydGljbGVDbGljayhqc29uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkQXJ0aWNsZUNsaWNrZWQubmV4dCh7YXJ0aWNsZToganNvbiwgcXVhbnRpdHk6IDF9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVBZGRBcnRpY2xlRnJvbUFydGljbGVDbGljayhkYXRhOiB7IGFydGljbGU6IHN0cmluZyB8IEFydGljbGVFeHRlbmRlZCwgcXVhbnRpdHk6IG51bWJlciB9KTogdm9pZCB7XHJcbiAgICB0aGlzLmFkZEFydGljbGVDbGlja2VkLm5leHQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQWRkRXh0ZXJuYWxBcnRpY2xlQ2xpY2soanNvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmFkZEV4dGVybmFsQXJ0aWNsZUNsaWNrZWQubmV4dChqc29uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVCYWNrQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0V4dGVybmFsQ2F0YWxvZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUlGcmFtZUZlZWRiYWNrKGpzb246IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5pRnJhbWVGZWVkYmFjay5lbWl0KHtcclxuICAgICAganNvblN0cmluZzoganNvbixcclxuICAgICAgY2F0YWxvZzogdGhpcy5jYXRhbG9nRGVmaW5pdGlvbi5nZXRJZCgpLFxyXG4gICAgICBzb3VyY2VUeXBlOiB0aGlzLmV4dGVybmFsU291cmNlLnR5cGVcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuZXh0ZXJuYWxTb3VyY2UudHlwZSAhPT0gRXh0ZXJuYWxDYXRhbG9nVHlwZXMuV2Vic2hvcCkge1xyXG4gICAgICB0aGlzLnNob3dFeHRlcm5hbENhdGFsb2cgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDYXRGYXJtQXJ0aWNsZUNsaWNrZWQoZGF0YTogeyBhcnRpY2xlOiBBcnRpY2xlTGlzdE9iamVjdEV4dGVuZGVkLCBzZXR0aW5nczogYW55IH0pOiB2b2lkIHtcclxuICAgIHRoaXMuY2F0U2t1ID0gZGF0YS5hcnRpY2xlLmFydGljbGVOdW1iZXI7XHJcbiAgICB0aGlzLmNhdEFydE5hbWUgPSBkYXRhLmFydGljbGUubmFtZTtcclxuICAgIHRoaXMuc2hvd1Byb2R1Y3QgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUFkZENhdEZhcm1BcnRpY2xlQ2xpY2tlZChkYXRhOiB7IHF1YW50aXR5OiBudW1iZXIsIGFydGljbGU6IHN0cmluZyB9KTogdm9pZCB7XHJcbiAgICB0aGlzLmFkZENhdEZhcm1BcnRpY2xlQ2xpY2tlZC5lbWl0KHtcclxuICAgICAgcXVhbnRpdHk6IGRhdGEucXVhbnRpdHksXHJcbiAgICAgIGpzb25TdHJpbmc6IGRhdGEuYXJ0aWNsZSxcclxuICAgICAgY2F0YWxvZzogdGhpcy5jYXRhbG9nRGVmaW5pdGlvbi5nZXRJZCgpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZU9uQWx0ZXJuYXRpdmVDbGljayhhcnRpY2xlOiBBcnRpY2xlTGlzdE9iamVjdCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb25TZXJ2aWNlLmdldEFydGljbGVFeHRlbmRlZChhcnRpY2xlLmFydGljbGVOdW1iZXIpLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgIHRoaXMuc2t1ID0gcmVzdWx0LmFydGljbGVOdW1iZXI7XHJcbiAgICAgICAgdGhpcy5zaG93UHJvZHVjdCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrSWZPcGVuaW5nSXNBbGxvd2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLm9yZGVyTGluZVNldHMgJiYgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ub3JkZXJMaW5lU2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBvcmRlckxpbmVTZXRDb2Rlczogc3RyaW5nW10gPVxyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLm9yZGVyTGluZVNldHMuZmlsdGVyKG8gPT4gby5jYXRhbG9nSWQgPSB0aGlzLmNhdGFsb2dEZWZpbml0aW9uLmdldElkKCkpLm1hcChvID0+IG8ub3JkZXJMaW5lU2V0Q29kZSk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcy5mb3JFYWNoKGwgPT4ge1xyXG4gICAgICAgIGlmICgob3JkZXJMaW5lU2V0Q29kZXMuZmluZEluZGV4KGMgPT4gYyA9PT0gbC5vcmRlckxpbmVTZXRDb2RlKSA+PSAwKVxyXG4gICAgICAgICAgJiYgbC5hcnRpY2xlTGluZVN0YXR1cyAmJiBsLmFydGljbGVMaW5lU3RhdHVzLmhhc093blByb3BlcnR5KCdxdWFudGl0eU9yZGVyZWQnKSAmJiBsLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5T3JkZXJlZCA+IDApIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZEV4dGVybmFsQ2F0YWxvZ1JlcXVlc3QoKTogRXh0ZXJuYWxDYXRhbG9nU3RhcnR1cEluZm9SZXF1ZXN0IHtcclxuICAgIGNvbnN0IHJlcXVlc3Q6IEV4dGVybmFsQ2F0YWxvZ1N0YXJ0dXBJbmZvUmVxdWVzdCA9IG5ldyBFeHRlcm5hbENhdGFsb2dTdGFydHVwSW5mb1JlcXVlc3QoKTtcclxuICAgIHJlcXVlc3QuY2F0YWxvZ0lkID0gdGhpcy5jYXRhbG9nRGVmaW5pdGlvbi5nZXRJZCgpO1xyXG4gICAgcmVxdWVzdC5wb3NFbXBsb3llZSA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmhhbmRsZWRCeTtcclxuICAgIHJlcXVlc3QuaW9uZU9yZGVyTnIgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbk5yLnRvU3RyaW5nKCk7XHJcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucmVsYXRpb24pIHtcclxuICAgICAgcmVxdWVzdC5wb3NOYW1lID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucmVsYXRpb24uZmFtaWx5TmFtZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlcXVlc3QucG9zTmFtZSA9ICdOTkInIC8vTm9nIE5pZXQgQmVwYWFsZFxyXG4gICAgfVxyXG4gICAgdGhpcy5leHBhbmRFeHRlcm5hbENhdGFsb2dSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCk7XHJcbiAgICByZXR1cm4gcmVxdWVzdFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleHBhbmRFeHRlcm5hbENhdGFsb2dSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdDogRXh0ZXJuYWxDYXRhbG9nU3RhcnR1cEluZm9SZXF1ZXN0KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ub3JkZXJMaW5lU2V0cyAmJiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5vcmRlckxpbmVTZXRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IG9yZGVyTGluZVNldDogT3JkZXJMaW5lU2V0SW5mbyA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLm9yZGVyTGluZVNldHMuZmluZChzZXQgPT4gc2V0LmNhdGFsb2dJZCA9PT0gdGhpcy5jYXRhbG9nRGVmaW5pdGlvbi5nZXRJZCgpKTtcclxuICAgICAgaWYgKG9yZGVyTGluZVNldCkge1xyXG4gICAgICAgIHJlcXVlc3QucG9zQXVwaW5nID0gb3JkZXJMaW5lU2V0LmF1cE9yZGVyTnJcclxuICAgICAgICBpZiAocmVxdWVzdC5wb3NBdXBpbmcpIHtcclxuICAgICAgICAgIHJlcXVlc3QucG9zU3RhdHVzID0gJ0NoYW5nZSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvcmRlckxpbmVTZXQudmRQcm9qZWN0SWQpIHtcclxuICAgICAgICAgIHJlcXVlc3Qub3JkZXJJZCA9IG9yZGVyTGluZVNldC52ZFByb2plY3RJZDtcclxuICAgICAgICB9IGVsc2UgaWYgKG9yZGVyTGluZVNldC53dFByb2plY3ROcikge1xyXG4gICAgICAgICAgcmVxdWVzdC5vcmRlcklkID0gb3JkZXJMaW5lU2V0Lnd0UHJvamVjdE5yO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -3,8 +3,8 @@ export class Version {
|
|
|
3
3
|
constructor() {
|
|
4
4
|
this.name = "@colijnit/transaction";
|
|
5
5
|
this.description = "Colijn IT transaction package";
|
|
6
|
-
this.symVer = "255.1.
|
|
7
|
-
this.publishDate = "
|
|
6
|
+
this.symVer = "255.1.61";
|
|
7
|
+
this.publishDate = "12-11-2024 10:37:23";
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tdmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvdHJhbnNhY3Rpb24tdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsTUFBTSxPQUFPLE9BQU87SUFBcEI7UUFDUyxTQUFJLEdBQUcsdUJBQXVCLENBQUM7UUFDL0IsZ0JBQVcsR0FBRywrQkFBK0IsQ0FBQztRQUM5QyxXQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ3BCLGdCQUFXLEdBQUcscUJBQXFCLENBQUM7SUFDN0MsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdGhpcyBmaWxlIGlzIGR5bmFtaWNhbGx5IGNyZWF0ZWQsIGRvIG5vdCBjaGFuZ2UgdGhpc1xuZXhwb3J0IGNsYXNzIFZlcnNpb24ge1xuICBwdWJsaWMgbmFtZSA9IFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uXCI7XG4gIHB1YmxpYyBkZXNjcmlwdGlvbiA9IFwiQ29saWpuIElUIHRyYW5zYWN0aW9uIHBhY2thZ2VcIjtcbiAgcHVibGljIHN5bVZlciA9IFwiMjU1LjEuNjFcIjtcbiAgcHVibGljIHB1Ymxpc2hEYXRlID0gXCIxMi0xMS0yMDI0IDEwOjM3OjIzXCI7XG59Il19
|
|
@@ -277,8 +277,8 @@ class Version {
|
|
|
277
277
|
constructor() {
|
|
278
278
|
this.name = "@colijnit/transaction";
|
|
279
279
|
this.description = "Colijn IT transaction package";
|
|
280
|
-
this.symVer = "255.1.
|
|
281
|
-
this.publishDate = "
|
|
280
|
+
this.symVer = "255.1.61";
|
|
281
|
+
this.publishDate = "12-11-2024 10:37:23";
|
|
282
282
|
}
|
|
283
283
|
}
|
|
284
284
|
|
|
@@ -37292,13 +37292,12 @@ CatalogScreenConfigurationService.ctorParameters = () => [
|
|
|
37292
37292
|
];
|
|
37293
37293
|
|
|
37294
37294
|
class DialogCatalogComponent {
|
|
37295
|
-
constructor(_transactionService, _catalogService, _catalogEventService, _articleService, _dialogService,
|
|
37295
|
+
constructor(_transactionService, _catalogService, _catalogEventService, _articleService, _dialogService, iconCacheService) {
|
|
37296
37296
|
this._transactionService = _transactionService;
|
|
37297
37297
|
this._catalogService = _catalogService;
|
|
37298
37298
|
this._catalogEventService = _catalogEventService;
|
|
37299
37299
|
this._articleService = _articleService;
|
|
37300
37300
|
this._dialogService = _dialogService;
|
|
37301
|
-
this._screenConfigService = _screenConfigService;
|
|
37302
37301
|
this.iconCacheService = iconCacheService;
|
|
37303
37302
|
this.icons = Icon;
|
|
37304
37303
|
this.handleAddArticleInternally = true;
|
|
@@ -37312,6 +37311,7 @@ class DialogCatalogComponent {
|
|
|
37312
37311
|
this.addArticleClicked = new EventEmitter();
|
|
37313
37312
|
this.addCatFarmArticleClicked = new EventEmitter();
|
|
37314
37313
|
this.addExternalArticleClicked = new EventEmitter();
|
|
37314
|
+
this.settingsSet = false;
|
|
37315
37315
|
this.showExternalCatalog = false;
|
|
37316
37316
|
this.showStock = false;
|
|
37317
37317
|
this.showProduct = false;
|
|
@@ -37327,13 +37327,13 @@ class DialogCatalogComponent {
|
|
|
37327
37327
|
}
|
|
37328
37328
|
ngOnInit() {
|
|
37329
37329
|
return __awaiter(this, void 0, void 0, function* () {
|
|
37330
|
-
yield this._screenConfigService.loadConfig();
|
|
37331
37330
|
this.catalogSettings = Object.assign({}, this._transactionService.optionsService.settings);
|
|
37332
37331
|
if (this.catalogSettings) {
|
|
37333
37332
|
this.catalogSettings.createWebOrder = false;
|
|
37334
37333
|
this.catalogSettings.options = this.options;
|
|
37335
37334
|
this.catalogSettings.catalogParameters = this.parameters;
|
|
37336
37335
|
yield this._catalogService.init(this.catalogSettings, true);
|
|
37336
|
+
this.settingsSet = true;
|
|
37337
37337
|
}
|
|
37338
37338
|
this._subs.push(this._catalogEventService.stockDetailsClick.subscribe((article) => {
|
|
37339
37339
|
this.handleStockButtonClick(article);
|
|
@@ -37477,60 +37477,62 @@ DialogCatalogComponent.decorators = [
|
|
|
37477
37477
|
<co-dialog (closeClick)="closeClick.emit($event)" [@.disabled]="destroyed">
|
|
37478
37478
|
<co-icon *ngIf="showExternalCatalog" [iconData]="iconCacheService.getIcon(icons.ArrowPointLeft)"
|
|
37479
37479
|
(click)="handleBackClick($event)"></co-icon>
|
|
37480
|
-
<ng-container *ngIf="
|
|
37481
|
-
<
|
|
37482
|
-
<
|
|
37483
|
-
|
|
37484
|
-
|
|
37485
|
-
|
|
37486
|
-
|
|
37487
|
-
|
|
37488
|
-
|
|
37489
|
-
|
|
37490
|
-
|
|
37491
|
-
|
|
37492
|
-
|
|
37493
|
-
|
|
37494
|
-
|
|
37495
|
-
<
|
|
37496
|
-
|
|
37497
|
-
|
|
37498
|
-
|
|
37499
|
-
|
|
37500
|
-
|
|
37501
|
-
|
|
37502
|
-
|
|
37503
|
-
|
|
37504
|
-
|
|
37480
|
+
<ng-container *ngIf="settingsSet">
|
|
37481
|
+
<ng-container *ngIf="!showExternalCatalog">
|
|
37482
|
+
<div class="dialog-catalog-product-wrapper" [class.show-product]="showProduct">
|
|
37483
|
+
<co-catalog-search
|
|
37484
|
+
[title]="'CATALOG' | localize"
|
|
37485
|
+
[subTitle]="'SEARCH_BY_ARTICLENUMBER_NAME_OR_DESCRIPTION' | localize"
|
|
37486
|
+
[searchPlaceholder]="'SEARCH_BY_ARTICLENUMBER_OR_DESCRIPTION' | localize"
|
|
37487
|
+
[createFrozenArticle]="false"
|
|
37488
|
+
[showNavigation]="showNavigation"
|
|
37489
|
+
[settings]="catalogSettings"
|
|
37490
|
+
(onExternalSourceClick)="handleExternalSourceClick($event)"
|
|
37491
|
+
(onAddArticleButtonClick)="handleAddArticleClick($event)"
|
|
37492
|
+
(onLookAtArticleButtonClick)="handleArticleClick($event)"
|
|
37493
|
+
(onArticleClick)="handleArticleClick($event)">
|
|
37494
|
+
</co-catalog-search>
|
|
37495
|
+
<div class="catalog-article-wrapper">
|
|
37496
|
+
<co-icon class="back-button-product" [iconData]="iconCacheService.getIcon(icons.ArrowPointLeft)"
|
|
37497
|
+
(click)="showProduct = false"></co-icon>
|
|
37498
|
+
<app-ione-product *ngIf="showProduct"
|
|
37499
|
+
[sku]="sku"
|
|
37500
|
+
[settings]="catalogSettings"
|
|
37501
|
+
[handleAddArticleInternally]="false"
|
|
37502
|
+
[isReturn]="isReturn"
|
|
37503
|
+
(onAddToCart)="handleAddArticleFromArticleClick($event)"
|
|
37504
|
+
(onAlternativeClick)="handleOnAlternativeClick($event)"
|
|
37505
|
+
></app-ione-product>
|
|
37506
|
+
</div>
|
|
37505
37507
|
</div>
|
|
37506
|
-
</
|
|
37507
|
-
|
|
37508
|
-
|
|
37509
|
-
|
|
37510
|
-
|
|
37511
|
-
|
|
37512
|
-
|
|
37513
|
-
|
|
37514
|
-
|
|
37515
|
-
|
|
37516
|
-
|
|
37517
|
-
|
|
37518
|
-
|
|
37519
|
-
|
|
37520
|
-
|
|
37521
|
-
|
|
37522
|
-
|
|
37523
|
-
|
|
37524
|
-
|
|
37525
|
-
|
|
37526
|
-
|
|
37527
|
-
|
|
37528
|
-
|
|
37529
|
-
|
|
37530
|
-
|
|
37531
|
-
|
|
37508
|
+
</ng-container>
|
|
37509
|
+
<ng-container *ngIf="showExternalCatalog">
|
|
37510
|
+
<div class="dialog-catalog-product-wrapper" [class.show-product]="showProduct">
|
|
37511
|
+
|
|
37512
|
+
<co-catalog-external-source
|
|
37513
|
+
[externalCatalogStartupInfo]="catalogInfo"
|
|
37514
|
+
[title]="'CATALOG' | localize | append: ' ' | append: externalCatalogName"
|
|
37515
|
+
[subTitle]="'SEARCH_BY_ARTICLENUMBER_NAME_OR_DESCRIPTION' | localize"
|
|
37516
|
+
[searchPlaceholder]="'SEARCH_BY_ARTICLENUMBER_OR_DESCRIPTION' | localize"
|
|
37517
|
+
[name]="externalCatalogName"
|
|
37518
|
+
[options]="externalCatalogOptions"
|
|
37519
|
+
[showNavigation]="false"
|
|
37520
|
+
(articleClick)="handleCatFarmArticleClicked($event)"
|
|
37521
|
+
(addArticleClick)="handleAddCatFarmArticleClicked($event)"
|
|
37522
|
+
(iFrameFeedbackReceived)="handleIFrameFeedback($event)"
|
|
37523
|
+
></co-catalog-external-source>
|
|
37524
|
+
|
|
37525
|
+
<div class="catalog-article-wrapper">
|
|
37526
|
+
<co-icon class="back-button-product" [iconData]="iconCacheService.getIcon(icons.ArrowPointLeft)"
|
|
37527
|
+
(click)="showProduct = false"></co-icon>
|
|
37528
|
+
<co-product-external-source *ngIf="showProduct"
|
|
37529
|
+
[externalSource]="externalSource"
|
|
37530
|
+
[sku]="catSku"
|
|
37531
|
+
(addToCart)="handleAddCatFarmArticleClicked($event)"
|
|
37532
|
+
></co-product-external-source>
|
|
37533
|
+
</div>
|
|
37532
37534
|
</div>
|
|
37533
|
-
</
|
|
37535
|
+
</ng-container>
|
|
37534
37536
|
</ng-container>
|
|
37535
37537
|
</co-dialog>
|
|
37536
37538
|
<co-dialog *ngIf="articleForStock && showStock" (closeClick)="cancelStockButtonClick()">
|
|
@@ -37561,7 +37563,6 @@ DialogCatalogComponent.ctorParameters = () => [
|
|
|
37561
37563
|
{ type: CatalogEventService },
|
|
37562
37564
|
{ type: ArticleService },
|
|
37563
37565
|
{ type: DialogService },
|
|
37564
|
-
{ type: CatalogScreenConfigurationService },
|
|
37565
37566
|
{ type: IconCacheService }
|
|
37566
37567
|
];
|
|
37567
37568
|
DialogCatalogComponent.propDecorators = {
|