@colijnit/transaction 12.1.4 → 12.1.5

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 (37) hide show
  1. package/app/component/service-order/service-order.component.d.ts +4 -5
  2. package/app/component/service-order/transaction-article-text/transaction-article-text.component.d.ts +22 -13
  3. package/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +23 -0
  4. package/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.d.ts +19 -0
  5. package/app/component/service-order/transaction-manager/transaction-manager.component.d.ts +2 -1
  6. package/app/component/{core → service-order}/warehouse/warehouse.component.d.ts +0 -0
  7. package/app/model/standard-text.d.ts +5 -0
  8. package/app/model/transaction-add-text-line-request.d.ts +9 -0
  9. package/app/service/ione-connector-adapter.service.d.ts +3 -0
  10. package/app/service/transaction.service.d.ts +5 -1
  11. package/bundles/colijnit-transaction.umd.js +355 -97
  12. package/bundles/colijnit-transaction.umd.js.map +1 -1
  13. package/colijnit-transaction.d.ts +16 -14
  14. package/colijnit-transaction.metadata.json +1 -1
  15. package/esm2015/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +2 -2
  16. package/esm2015/app/component/checkout/ione-checkout.module.js +3 -1
  17. package/esm2015/app/component/core/base/transaction-base.component.js +1 -1
  18. package/esm2015/app/component/service-order/ione-service-order-module.js +10 -4
  19. package/esm2015/app/component/service-order/service-order.component.js +21 -17
  20. package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +107 -161
  21. package/esm2015/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.js +105 -0
  22. package/esm2015/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.js +73 -0
  23. package/esm2015/app/component/service-order/transaction-manager/transaction-manager.component.js +10 -1
  24. package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +2 -2
  25. package/esm2015/app/component/service-order/warehouse/warehouse.component.js +133 -0
  26. package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +1 -1
  27. package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +2 -2
  28. package/esm2015/app/model/standard-text.js +3 -0
  29. package/esm2015/app/model/transaction-add-text-line-request.js +11 -0
  30. package/esm2015/app/service/ione-connector-adapter.service.js +30 -1
  31. package/esm2015/app/service/transaction.service.js +28 -2
  32. package/esm2015/assets/dictionary/text.properties.js +9 -1
  33. package/esm2015/colijnit-transaction.js +17 -15
  34. package/fesm2015/colijnit-transaction.js +390 -184
  35. package/fesm2015/colijnit-transaction.js.map +1 -1
  36. package/package.json +4 -3
  37. package/esm2015/app/component/core/warehouse/warehouse.component.js +0 -134
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@colijnit/transaction",
3
- "version": "12.1.4",
3
+ "version": "12.1.5",
4
4
  "private": false,
5
5
  "dependencies": {
6
6
  "@angular/animations": "^12.2.7",
@@ -14,8 +14,8 @@
14
14
  "@angular/platform-browser": "^12.2.7",
15
15
  "@angular/platform-browser-dynamic": "^12.2.7",
16
16
  "@angular/router": "^12.2.7",
17
- "@colijnit/corecomponents_v12": "12.0.9",
18
- "@colijnit/transactionapi": "1.1.7",
17
+ "@colijnit/corecomponents_v12": "12.0.11",
18
+ "@colijnit/transactionapi": "1.1.8",
19
19
  "@syncfusion/ej2-angular-buttons": "~19.3.44",
20
20
  "@syncfusion/ej2-angular-calendars": "~19.3.44",
21
21
  "@syncfusion/ej2-angular-dropdowns": "~19.3.45",
@@ -26,6 +26,7 @@
26
26
  "@syncfusion/ej2-angular-navigations": "~19.3.45",
27
27
  "@syncfusion/ej2-angular-pivotview": "~19.3.44",
28
28
  "@syncfusion/ej2-angular-popups": "~19.3.43",
29
+ "@syncfusion/ej2-angular-richtexteditor": "^19.3.45",
29
30
  "@syncfusion/ej2-angular-schedule": "~19.3.44",
30
31
  "@syncfusion/ej2-angular-splitbuttons": "~19.3.45",
31
32
  "@syncfusion/ej2-base": "~19.3.43",
@@ -1,134 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Component, EventEmitter, Input, Output, ViewChild } from "@angular/core";
3
- import { TransactionService } from "../../../service/transaction.service";
4
- import { DictionaryService } from "../../../service/dictionary.service";
5
- export class WarehouseComponent {
6
- constructor(service, _dictionaryService) {
7
- this.service = service;
8
- this._dictionaryService = _dictionaryService;
9
- this.message = "";
10
- this.okClick = new EventEmitter();
11
- this.cancelClick = new EventEmitter();
12
- this.commissionCodes = [];
13
- this.commissionFields = { text: "description", value: "code" };
14
- this.transactionArticleWarehouses = [];
15
- this.columns = [];
16
- this._okOrCancelClick = false;
17
- }
18
- ngOnInit() {
19
- return __awaiter(this, void 0, void 0, function* () {
20
- this.commissionCodes = yield this.service.getCommissionCodes("NL");
21
- this.columns.push({ field: "warehouseNr", headerText: this._dictionaryService.get("WAREHOUSE"), allowFiltering: false }, { field: "warehouseDesc", headerText: this._dictionaryService.get("DESCRIPTION") }, { field: "stockAmount", headerText: this._dictionaryService.get("STOCK") });
22
- });
23
- }
24
- ngOnDestroy() {
25
- this.warehouseDialog.close();
26
- }
27
- showStockManager(line) {
28
- return __awaiter(this, void 0, void 0, function* () {
29
- this.selectedWarehouseNr = line.warehouseNumber;
30
- this.amount = line.amount;
31
- this.commissionCode = line.commissionCode;
32
- this.show(line.articleNumber);
33
- });
34
- }
35
- hide() {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- if (this._okOrCancelClick) {
38
- this._okOrCancelClick = false;
39
- return;
40
- }
41
- yield this.onStockManagerCancelClick();
42
- });
43
- }
44
- show(articleNr) {
45
- this._reloadDataCollections(articleNr).then();
46
- this.warehouseGrid.selectRow(this.selectedWarehouseNr);
47
- this.warehouseDialog.targetElement = null;
48
- this.warehouseDialog.open();
49
- }
50
- handleRowsSelected(rows) {
51
- this.selectedWarehouseNr = (rows.find(x => x !== undefined)).warehouseNr;
52
- }
53
- onStockManagerCancelClick() {
54
- return __awaiter(this, void 0, void 0, function* () {
55
- this._okOrCancelClick = true;
56
- this.warehouseDialog.close();
57
- this.cancelClick.emit();
58
- });
59
- }
60
- onStockManagerOkClick() {
61
- return __awaiter(this, void 0, void 0, function* () {
62
- this._okOrCancelClick = true;
63
- this.warehouseDialog.close();
64
- this.okClick.emit();
65
- });
66
- }
67
- _reloadDataCollections(articleNr) {
68
- return __awaiter(this, void 0, void 0, function* () {
69
- const goodId = yield this.service.getGoodIdFromArticleNr(articleNr);
70
- this.transactionArticleWarehouses = yield this.service.getTransactionArticleWarehouses(goodId);
71
- });
72
- }
73
- }
74
- WarehouseComponent.decorators = [
75
- { type: Component, args: [{
76
- // eslint-disable-next-line @angular-eslint/component-selector
77
- selector: "warehouse",
78
- template: `
79
- <co-dialog #warehouseDialog
80
- (closeClick)="hide()"
81
- (overlayClick)="onStockManagerCancelClick()"
82
- >
83
- <ng-container header>{{ 'STOCK_NOTIFICATION' | localize }}</ng-container>
84
-
85
- <ng-container content>
86
- <co-form>
87
- <div class="form-content">
88
- <span *ngIf="message" class="message-field" [textContent]="message | localize"></span>
89
- <div class="commission-fields" fxLayout="row">
90
- <co-input-number-picker class="horizontal" [(model)]="amount" [min]="0" decimals="3"></co-input-number-picker>
91
- <co-input-combo-box [(model)]="commissionCode"
92
- [source]="commissionCodes"
93
- [fields]="commissionFields"
94
- [placeholder]="'COMMISSION_CODE' | localize"
95
- [required]="true"
96
- ></co-input-combo-box>
97
- </div>
98
- <div>
99
- <co-grid #warehouseGrid
100
- [data]="transactionArticleWarehouses"
101
- [columns]="columns"
102
- [pagingEnabled]="'true'"
103
- [maxNumberOfRows]="'10'"
104
- (rowsSelected)="handleRowsSelected($event)"
105
- ></co-grid>
106
- </div>
107
- </div>
108
- </co-form>
109
- </ng-container>
110
-
111
- <ng-container footer>
112
- <div class="flex-center">
113
- <co-button [label]="'OK' | localize" (click)="onStockManagerOkClick()"></co-button>
114
- <co-button [label]="'CANCEL' | localize" (click)="onStockManagerCancelClick()"></co-button>
115
- </div>
116
- </ng-container>
117
- </co-dialog>
118
- `,
119
- providers: [DictionaryService],
120
- styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center,.warehouse-line-container{display:flex}.flex-center,.warehouse-line-container{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field,.commission-fields{margin-left:11px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}::ng-deep #warehouseDialog{align-items:center;max-height:100%}::ng-deep #warehouseDialog ::ng-deep co-form{height:100%;width:500px}::ng-deep #warehouseDialog ::ng-deep .form-content{height:calc(100% - 80px);width:100%}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field{height:20px;word-wrap:break-word;white-space:normal}co-button:not(:last-child){margin-right:10px}.commission-fields{justify-content:space-between;margin:10px 0}.warehouse-description-item{width:15rem}.warehouse-nr-item{width:5rem}co-input-number-picker co-button{max-width:20px}\n"]
121
- },] }
122
- ];
123
- WarehouseComponent.ctorParameters = () => [
124
- { type: TransactionService },
125
- { type: DictionaryService }
126
- ];
127
- WarehouseComponent.propDecorators = {
128
- warehouseDialog: [{ type: ViewChild, args: ["warehouseDialog",] }],
129
- warehouseGrid: [{ type: ViewChild, args: ["warehouseGrid",] }],
130
- message: [{ type: Input }],
131
- okClick: [{ type: Output }],
132
- cancelClick: [{ type: Output }]
133
- };
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FyZWhvdXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50L2NvcmUvd2FyZWhvdXNlL3dhcmVob3VzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFVLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQU14RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQWlEdEUsTUFBTSxPQUFPLGtCQUFrQjtJQTZCN0IsWUFDUyxPQUEyQixFQUMzQixrQkFBcUM7UUFEckMsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQXZCdkMsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUdaLFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUd2RCxnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBT3BFLG9CQUFlLEdBQW9CLEVBQUUsQ0FBQztRQUN0QyxxQkFBZ0IsR0FBVyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBRWxFLGlDQUE0QixHQUFrQyxFQUFFLENBQUM7UUFDakUsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUVuQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFNMUMsQ0FBQztJQUVLLFFBQVE7O1lBQ1osSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFbkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsRUFBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLFVB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LGlCQUFpQjs0QkFHM0IsU0FBUyxTQUFDLGVBQWU7c0JBR3pCLEtBQUs7c0JBR0wsTUFBTTswQkFHTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge0NvbW1pc3Npb25Db2RlVHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3JlZmNvZGUvY29tbWlzc2lvbi1jb2RlLXR5cGUuZW51bVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvXCI7XHJcbmltcG9ydCB7Q29Eb21haW5WYWx1ZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jby1kb21haW4tdmFsdWUuYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tYXJ0aWNsZS13YXJlaG91c2UuYm9cIjtcclxuaW1wb3J0IHtDb0RpYWxvZ0NvbXBvbmVudCwgQ29HcmlkQ29tcG9uZW50LCBQcm9tcHRTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6IFwid2FyZWhvdXNlXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby1kaWFsb2cgI3dhcmVob3VzZURpYWxvZ1xyXG4gICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJoaWRlKClcIlxyXG4gICAgICAgICAgICAgICAob3ZlcmxheUNsaWNrKT1cIm9uU3RvY2tNYW5hZ2VyQ2FuY2VsQ2xpY2soKVwiXHJcbiAgICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lciBoZWFkZXI+e3sgJ1NUT0NLX05PVElGSUNBVElPTicgfCBsb2NhbGl6ZSB9fTwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxyXG4gICAgICAgIDxjby1mb3JtPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udGVudFwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1lc3NhZ2VcIiBjbGFzcz1cIm1lc3NhZ2UtZmllbGRcIiBbdGV4dENvbnRlbnRdPVwibWVzc2FnZSB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21taXNzaW9uLWZpZWxkc1wiIGZ4TGF5b3V0PVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtbnVtYmVyLXBpY2tlciBjbGFzcz1cImhvcml6b250YWxcIiBbKG1vZGVsKV09XCJhbW91bnRcIiBbbWluXT1cIjBcIiBkZWNpbWFscz1cIjNcIj48L2NvLWlucHV0LW51bWJlci1waWNrZXI+XHJcbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtY29tYm8tYm94IFsobW9kZWwpXT1cImNvbW1pc3Npb25Db2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc291cmNlXT1cImNvbW1pc3Npb25Db2Rlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkc109XCJjb21taXNzaW9uRmllbGRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0NPTU1JU1NJT05fQ09ERScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgPjwvY28taW5wdXQtY29tYm8tYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8Y28tZ3JpZCAjd2FyZWhvdXNlR3JpZFxyXG4gICAgICAgICAgICAgICAgICBbZGF0YV09XCJ0cmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VzXCJcclxuICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtwYWdpbmdFbmFibGVkXT1cIid0cnVlJ1wiXHJcbiAgICAgICAgICAgICAgICAgIFttYXhOdW1iZXJPZlJvd3NdPVwiJzEwJ1wiXHJcbiAgICAgICAgICAgICAgICAgIChyb3dzU2VsZWN0ZWQpPVwiaGFuZGxlUm93c1NlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgPjwvY28tZ3JpZD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvY28tZm9ybT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIGZvb3Rlcj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInT0snIHwgbG9jYWxpemVcIiAoY2xpY2spPVwib25TdG9ja01hbmFnZXJPa0NsaWNrKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ0NBTkNFTCcgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJvblN0b2NrTWFuYWdlckNhbmNlbENsaWNrKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvY28tZGlhbG9nPlxyXG4gIGAsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3dhcmVob3VzZS5jb21wb25lbnQuc2Nzc1wiXSxcclxuICBwcm92aWRlcnM6IFtEaWN0aW9uYXJ5U2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFdhcmVob3VzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKFwid2FyZWhvdXNlRGlhbG9nXCIpXHJcbiAgcHVibGljIHdhcmVob3VzZURpYWxvZzogQ29EaWFsb2dDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJ3YXJlaG91c2VHcmlkXCIpXHJcbiAgcHVibGljIHdhcmVob3VzZUdyaWQ6IENvR3JpZENvbXBvbmVudDxhbnk+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgb2tDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgY2FuY2VsQ2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZFdhcmVob3VzZU5yOiBudW1iZXI7XHJcbiAgcHVibGljIGFtb3VudDogbnVtYmVyO1xyXG5cclxuICBwdWJsaWMgY29tbWlzc2lvbkNvZGU6IENvbW1pc3Npb25Db2RlVHlwZTtcclxuICBwdWJsaWMgY29tbWlzc2lvbkNvZGVzOiBDb0RvbWFpblZhbHVlW10gPSBbXTtcclxuICBwdWJsaWMgY29tbWlzc2lvbkZpZWxkczogT2JqZWN0ID0geyB0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIiB9O1xyXG5cclxuICBwdWJsaWMgdHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlczogVHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlW10gPSBbXTtcclxuICBwdWJsaWMgY29sdW1uczogYW55W10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfb2tPckNhbmNlbENsaWNrOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBfZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmNvbW1pc3Npb25Db2RlcyA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRDb21taXNzaW9uQ29kZXMoXCJOTFwiKTtcclxuXHJcbiAgICB0aGlzLmNvbHVtbnMucHVzaChcclxuICAgICAge2ZpZWxkOiBcIndhcmVob3VzZU5yXCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIldBUkVIT1VTRVwiKSwgYWxsb3dGaWx0ZXJpbmc6IGZhbHNlfSxcclxuICAgICAge2ZpZWxkOiBcIndhcmVob3VzZURlc2NcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiREVTQ1JJUFRJT05cIil9LFxyXG4gICAgICB7ZmllbGQ6IFwic3RvY2tBbW91bnRcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiU1RPQ0tcIil9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLndhcmVob3VzZURpYWxvZy5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNob3dTdG9ja01hbmFnZXIobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5zZWxlY3RlZFdhcmVob3VzZU5yID0gbGluZS53YXJlaG91c2VOdW1iZXI7XHJcbiAgICB0aGlzLmFtb3VudCA9IGxpbmUuYW1vdW50O1xyXG4gICAgdGhpcy5jb21taXNzaW9uQ29kZSA9IGxpbmUuY29tbWlzc2lvbkNvZGU7XHJcbiAgICB0aGlzLnNob3cobGluZS5hcnRpY2xlTnVtYmVyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoaWRlKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuX29rT3JDYW5jZWxDbGljaykge1xyXG4gICAgICB0aGlzLl9va09yQ2FuY2VsQ2xpY2sgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy5vblN0b2NrTWFuYWdlckNhbmNlbENsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvdyhhcnRpY2xlTnI6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVsb2FkRGF0YUNvbGxlY3Rpb25zKGFydGljbGVOcikudGhlbigpO1xyXG5cclxuICAgIHRoaXMud2FyZWhvdXNlR3JpZC5zZWxlY3RSb3codGhpcy5zZWxlY3RlZFdhcmVob3VzZU5yKTtcclxuICAgIHRoaXMud2FyZWhvdXNlRGlhbG9nLnRhcmdldEVsZW1lbnQgPSBudWxsO1xyXG4gICAgdGhpcy53YXJlaG91c2VEaWFsb2cub3BlbigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVJvd3NTZWxlY3RlZChyb3dzOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRXYXJlaG91c2VOciA9IChyb3dzLmZpbmQoeCA9PiB4ICE9PSB1bmRlZmluZWQpKS53YXJlaG91c2VOcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBvblN0b2NrTWFuYWdlckNhbmNlbENsaWNrKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5fb2tPckNhbmNlbENsaWNrID0gdHJ1ZTtcclxuICAgIHRoaXMud2FyZWhvdXNlRGlhbG9nLmNsb3NlKCk7XHJcbiAgICB0aGlzLmNhbmNlbENsaWNrLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBvblN0b2NrTWFuYWdlck9rQ2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLl9va09yQ2FuY2VsQ2xpY2sgPSB0cnVlO1xyXG4gICAgdGhpcy53YXJlaG91c2VEaWFsb2cuY2xvc2UoKTtcclxuICAgIHRoaXMub2tDbGljay5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9yZWxvYWREYXRhQ29sbGVjdGlvbnMoYXJ0aWNsZU5yOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IGdvb2RJZDogbnVtYmVyICA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRHb29kSWRGcm9tQXJ0aWNsZU5yKGFydGljbGVOcik7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZXMgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlcyhnb29kSWQpO1xyXG4gIH1cclxufVxyXG4iXX0=