@colijnit/transaction 12.0.5 → 12.1.3

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 (81) hide show
  1. package/app/component/core/base/default-ok-cancel-buttons.component.d.ts +13 -0
  2. package/app/component/core/base/transaction-base.component.d.ts +48 -0
  3. package/app/component/{shopping-cart → core}/characteristic-answer/characteristic-answer.component.d.ts +0 -0
  4. package/app/component/core/directive/template-wrapper.directive.d.ts +13 -0
  5. package/app/component/{shopping-cart → core}/stock-status-indicator/stock-status-indicator.component.d.ts +0 -0
  6. package/app/component/core/warehouse/warehouse.component.d.ts +35 -0
  7. package/app/component/service-order/ione-service-order-module.d.ts +2 -0
  8. package/app/component/service-order/ione-service-order.component.d.ts +25 -0
  9. package/app/component/service-order/service-order.component.d.ts +53 -0
  10. package/app/component/service-order/summary/transaction-article-summary.component.d.ts +17 -0
  11. package/app/component/service-order/summary/transaction-delivery-summary.component.d.ts +20 -0
  12. package/app/component/service-order/summary/transaction-order-summary.component.d.ts +16 -0
  13. package/app/component/service-order/summary/transaction-payment-info.component.d.ts +14 -0
  14. package/app/component/service-order/summary/transaction-product-contract-summary.component.d.ts +7 -0
  15. package/app/component/service-order/summary/transaction-product-summary.component.d.ts +15 -0
  16. package/app/component/service-order/summary/transaction-service-status.component.d.ts +15 -0
  17. package/app/component/service-order/summary/transaction-service-summary.component.d.ts +15 -0
  18. package/app/component/service-order/summary/transaction-summary-block.component.d.ts +16 -0
  19. package/app/component/service-order/transaction-article-text/transaction-article-text.component.d.ts +24 -0
  20. package/app/component/service-order/transaction-header-block/transaction-header-block.component.d.ts +15 -0
  21. package/app/component/service-order/transaction-manager/transaction-manager.component.d.ts +63 -0
  22. package/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.d.ts +16 -0
  23. package/app/component/service-order/transaction-order-lines/transaction-order-lines.component.d.ts +25 -0
  24. package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.d.ts +6 -0
  25. package/app/component/service-order/transaction-relation/transaction-relation-address.component.d.ts +22 -0
  26. package/app/component/service-order/transaction-relation/transaction-relation-edit.component.d.ts +29 -0
  27. package/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.d.ts +11 -0
  28. package/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.d.ts +26 -0
  29. package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +1 -1
  30. package/app/service/ione-connector-adapter.service.d.ts +1 -0
  31. package/app/service/transaction-event.service.d.ts +5 -0
  32. package/app/service/transaction.service.d.ts +19 -8
  33. package/bundles/colijnit-transaction.umd.js +2396 -63
  34. package/bundles/colijnit-transaction.umd.js.map +1 -1
  35. package/colijnit-transaction.d.ts +26 -2
  36. package/colijnit-transaction.metadata.json +1 -1
  37. package/esm2015/app/component/checkout/checkout-overview/checkout-overview.component.js +2 -2
  38. package/esm2015/app/component/checkout/ione-checkout.module.js +3 -3
  39. package/esm2015/app/component/common/icon/icon.component.js +2 -1
  40. package/esm2015/app/component/core/base/default-ok-cancel-buttons.component.js +39 -0
  41. package/esm2015/app/component/core/base/transaction-base.component.js +146 -0
  42. package/esm2015/app/component/core/characteristic-answer/characteristic-answer.component.js +100 -0
  43. package/esm2015/app/component/core/directive/template-wrapper.directive.js +69 -0
  44. package/esm2015/app/component/{shopping-cart → core}/stock-status-indicator/stock-status-indicator.component.js +1 -1
  45. package/esm2015/app/component/core/warehouse/warehouse.component.js +133 -0
  46. package/esm2015/app/component/service-order/ione-service-order-module.js +108 -0
  47. package/esm2015/app/component/service-order/ione-service-order.component.js +96 -0
  48. package/esm2015/app/component/service-order/service-order.component.js +195 -0
  49. package/esm2015/app/component/service-order/summary/transaction-article-summary.component.js +55 -0
  50. package/esm2015/app/component/service-order/summary/transaction-delivery-summary.component.js +59 -0
  51. package/esm2015/app/component/service-order/summary/transaction-order-summary.component.js +43 -0
  52. package/esm2015/app/component/service-order/summary/transaction-payment-info.component.js +35 -0
  53. package/esm2015/app/component/service-order/summary/transaction-product-contract-summary.component.js +38 -0
  54. package/esm2015/app/component/service-order/summary/transaction-product-summary.component.js +41 -0
  55. package/esm2015/app/component/service-order/summary/transaction-service-status.component.js +37 -0
  56. package/esm2015/app/component/service-order/summary/transaction-service-summary.component.js +38 -0
  57. package/esm2015/app/component/service-order/summary/transaction-summary-block.component.js +53 -0
  58. package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +194 -0
  59. package/esm2015/app/component/service-order/transaction-header-block/transaction-header-block.component.js +83 -0
  60. package/esm2015/app/component/service-order/transaction-manager/transaction-manager.component.js +305 -0
  61. package/esm2015/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.js +76 -0
  62. package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +71 -0
  63. package/esm2015/app/component/service-order/transaction-order-totals/transaction-order-totals.component.js +36 -0
  64. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-address.component.js +116 -0
  65. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-edit.component.js +225 -0
  66. package/esm2015/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.js +172 -0
  67. package/esm2015/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.js +120 -0
  68. package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +4 -6
  69. package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +1 -1
  70. package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +1 -1
  71. package/esm2015/app/service/ione-connector-adapter.service.js +24 -6
  72. package/esm2015/app/service/transaction-event.service.js +4 -1
  73. package/esm2015/app/service/transaction.service.js +122 -37
  74. package/esm2015/assets/dictionary/text.properties.js +37 -1
  75. package/esm2015/colijnit-transaction.js +27 -3
  76. package/esm2015/public_api.js +3 -1
  77. package/fesm2015/colijnit-transaction.js +2625 -50
  78. package/fesm2015/colijnit-transaction.js.map +1 -1
  79. package/package.json +3 -3
  80. package/public_api.d.ts +2 -0
  81. package/esm2015/app/component/shopping-cart/characteristic-answer/characteristic-answer.component.js +0 -99
@@ -0,0 +1,133 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Component, EventEmitter, Input, Output, ViewChild } from "@angular/core";
3
+ import { TransactionService } from "../../../service/transaction.service";
4
+ import { DictionaryService } from "../../../service/dictionary.service";
5
+ export class WarehouseComponent {
6
+ constructor(service, _dictionaryService) {
7
+ this.service = service;
8
+ this._dictionaryService = _dictionaryService;
9
+ this.message = "";
10
+ this.okClick = new EventEmitter();
11
+ this.cancelClick = new EventEmitter();
12
+ this.commissionCodes = [];
13
+ this.commissionFields = { text: "description", value: "code" };
14
+ this.transactionArticleWarehouses = [];
15
+ this.columns = [];
16
+ this._okOrCancelClick = false;
17
+ 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") });
18
+ }
19
+ ngOnInit() {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ this.commissionCodes = yield this.service.getCommissionCodes("NL");
22
+ });
23
+ }
24
+ ngOnDestroy() {
25
+ this.warehouseDialog.close();
26
+ }
27
+ showStockManager(line) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ this.selectedWarehouseNr = line.warehouseNumber;
30
+ this.amount = line.amount;
31
+ this.commissionCode = line.commissionCode;
32
+ this.show(line.articleNumber);
33
+ });
34
+ }
35
+ hide() {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ if (this._okOrCancelClick) {
38
+ this._okOrCancelClick = false;
39
+ return;
40
+ }
41
+ yield this.onStockManagerCancelClick();
42
+ });
43
+ }
44
+ show(articleNr) {
45
+ this._reloadDataCollections(articleNr).then();
46
+ this.warehouseGrid.selectRow(this.selectedWarehouseNr);
47
+ this.warehouseDialog.targetElement = null;
48
+ this.warehouseDialog.open();
49
+ }
50
+ handleRowsSelected(rows) {
51
+ this.selectedWarehouseNr = (rows.find(x => x !== undefined)).warehouseNr;
52
+ }
53
+ onStockManagerCancelClick() {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ this._okOrCancelClick = true;
56
+ this.warehouseDialog.close();
57
+ this.cancelClick.emit();
58
+ });
59
+ }
60
+ onStockManagerOkClick() {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ this._okOrCancelClick = true;
63
+ this.warehouseDialog.close();
64
+ this.okClick.emit();
65
+ });
66
+ }
67
+ _reloadDataCollections(articleNr) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ const goodId = yield this.service.getGoodIdFromArticleNr(articleNr);
70
+ this.transactionArticleWarehouses = yield this.service.getTransactionArticleWarehouses(goodId);
71
+ });
72
+ }
73
+ }
74
+ WarehouseComponent.decorators = [
75
+ { type: Component, args: [{
76
+ // eslint-disable-next-line @angular-eslint/component-selector
77
+ selector: "warehouse",
78
+ template: `
79
+ <co-dialog #warehouseDialog
80
+ (closeClick)="hide()"
81
+ (overlayClick)="onStockManagerCancelClick()"
82
+ >
83
+ <ng-container header>{{ 'STOCK_NOTIFICATION' | localize }}</ng-container>
84
+
85
+ <ng-container content>
86
+ <co-form>
87
+ <div class="form-content">
88
+ <span *ngIf="message" class="message-field" [textContent]="message | localize"></span>
89
+ <div class="commission-fields" fxLayout="row">
90
+ <co-input-number-picker class="horizontal" [(model)]="amount" [min]="0" decimals="3"></co-input-number-picker>
91
+ <co-input-combo-box [(model)]="commissionCode"
92
+ [source]="commissionCodes"
93
+ [fields]="commissionFields"
94
+ [placeholder]="'COMMISSION_CODE' | localize"
95
+ [required]="true"
96
+ ></co-input-combo-box>
97
+ </div>
98
+ <div>
99
+ <co-grid #warehouseGrid
100
+ [data]="transactionArticleWarehouses"
101
+ [columns]="columns"
102
+ [pagingEnabled]="'true'"
103
+ [maxNumberOfRows]="'10'"
104
+ (rowsSelected)="handleRowsSelected($event)"
105
+ ></co-grid>
106
+ </div>
107
+ </div>
108
+ </co-form>
109
+ </ng-container>
110
+
111
+ <ng-container footer>
112
+ <div class="flex-center">
113
+ <co-button [label]="'OK' | localize" (click)="onStockManagerOkClick()"></co-button>
114
+ <co-button [label]="'CANCEL' | localize" (click)="onStockManagerCancelClick()"></co-button>
115
+ </div>
116
+ </ng-container>
117
+ </co-dialog>
118
+ `,
119
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center,.warehouse-line-container{display:flex}.flex-center,.warehouse-line-container{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field,.commission-fields{margin-left:11px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}::ng-deep #warehouseDialog{align-items:center;max-height:100%}::ng-deep #warehouseDialog ::ng-deep co-form{height:100%;width:500px}::ng-deep #warehouseDialog ::ng-deep .form-content{height:calc(100% - 80px);width:100%}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field{height:20px;word-wrap:break-word;white-space:normal}co-button:not(:last-child){margin-right:10px}.commission-fields{justify-content:space-between;margin:10px 0}.warehouse-description-item{width:15rem}.warehouse-nr-item{width:5rem}co-input-number-picker co-button{max-width:20px}\n"]
120
+ },] }
121
+ ];
122
+ WarehouseComponent.ctorParameters = () => [
123
+ { type: TransactionService },
124
+ { type: DictionaryService }
125
+ ];
126
+ WarehouseComponent.propDecorators = {
127
+ warehouseDialog: [{ type: ViewChild, args: ["warehouseDialog",] }],
128
+ warehouseGrid: [{ type: ViewChild, args: ["warehouseGrid",] }],
129
+ message: [{ type: Input }],
130
+ okClick: [{ type: Output }],
131
+ cancelClick: [{ type: Output }]
132
+ };
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FyZWhvdXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50L2NvcmUvd2FyZWhvdXNlL3dhcmVob3VzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFVLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQU14RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQWdEdEUsTUFBTSxPQUFPLGtCQUFrQjtJQTZCN0IsWUFDUyxPQUEyQixFQUMzQixrQkFBcUM7UUFEckMsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQXZCdkMsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUdaLFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUd2RCxnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBT3BFLG9CQUFlLEdBQW9CLEVBQUUsQ0FBQztRQUN0QyxxQkFBZ0IsR0FBVyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBRWxFLGlDQUE0QixHQUFrQyxFQUFFLENBQUM7UUFDakUsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUVuQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFPeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2YsRUFBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUMsRUFDbkcsRUFBQyxLQUFLLEVBQUUsZUFB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ekIsS0FBSztzQkFHTCxNQUFNOzBCQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Q29tbWlzc2lvbkNvZGVUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcmVmY29kZS9jb21taXNzaW9uLWNvZGUtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcclxuaW1wb3J0IHtDb0RvbWFpblZhbHVlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NvLWRvbWFpbi12YWx1ZS5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hcnRpY2xlLXdhcmVob3VzZS5ib1wiO1xyXG5pbXBvcnQge0NvRGlhbG9nQ29tcG9uZW50LCBDb0dyaWRDb21wb25lbnQsIFByb21wdFNlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogXCJ3YXJlaG91c2VcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLWRpYWxvZyAjd2FyZWhvdXNlRGlhbG9nXHJcbiAgICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cImhpZGUoKVwiXHJcbiAgICAgICAgICAgICAgIChvdmVybGF5Q2xpY2spPVwib25TdG9ja01hbmFnZXJDYW5jZWxDbGljaygpXCJcclxuICAgICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyIGhlYWRlcj57eyAnU1RPQ0tfTk9USUZJQ0FUSU9OJyB8IGxvY2FsaXplIH19PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XHJcbiAgICAgICAgPGNvLWZvcm0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibWVzc2FnZVwiIGNsYXNzPVwibWVzc2FnZS1maWVsZFwiIFt0ZXh0Q29udGVudF09XCJtZXNzYWdlIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1pc3Npb24tZmllbGRzXCIgZnhMYXlvdXQ9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC1udW1iZXItcGlja2VyIGNsYXNzPVwiaG9yaXpvbnRhbFwiIFsobW9kZWwpXT1cImFtb3VudFwiIFttaW5dPVwiMFwiIGRlY2ltYWxzPVwiM1wiPjwvY28taW5wdXQtbnVtYmVyLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC1jb21iby1ib3ggWyhtb2RlbCldPVwiY29tbWlzc2lvbkNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3VyY2VdPVwiY29tbWlzc2lvbkNvZGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRzXT1cImNvbW1pc3Npb25GaWVsZHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQ09NTUlTU0lPTl9DT0RFJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1jb21iby1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxjby1ncmlkICN3YXJlaG91c2VHcmlkXHJcbiAgICAgICAgICAgICAgICAgIFtkYXRhXT1cInRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZXNcIlxyXG4gICAgICAgICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgICAgW3BhZ2luZ0VuYWJsZWRdPVwiJ3RydWUnXCJcclxuICAgICAgICAgICAgICAgICAgW21heE51bWJlck9mUm93c109XCInMTAnXCJcclxuICAgICAgICAgICAgICAgICAgKHJvd3NTZWxlY3RlZCk9XCJoYW5kbGVSb3dzU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICA+PC9jby1ncmlkPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9jby1mb3JtPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgZm9vdGVyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxjby1idXR0b24gW2xhYmVsXT1cIidPSycgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJvblN0b2NrTWFuYWdlck9rQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInQ0FOQ0VMJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cIm9uU3RvY2tNYW5hZ2VyQ2FuY2VsQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9jby1kaWFsb2c+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFtcIi4vd2FyZWhvdXNlLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXYXJlaG91c2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZChcIndhcmVob3VzZURpYWxvZ1wiKVxyXG4gIHB1YmxpYyB3YXJlaG91c2VEaWFsb2c6IENvRGlhbG9nQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwid2FyZWhvdXNlR3JpZFwiKVxyXG4gIHB1YmxpYyB3YXJlaG91c2VHcmlkOiBDb0dyaWRDb21wb25lbnQ8YW55PjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5IG9rQ2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5IGNhbmNlbENsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG5cclxuICBwdWJsaWMgc2VsZWN0ZWRXYXJlaG91c2VOcjogbnVtYmVyO1xyXG4gIHB1YmxpYyBhbW91bnQ6IG51bWJlcjtcclxuXHJcbiAgcHVibGljIGNvbW1pc3Npb25Db2RlOiBDb21taXNzaW9uQ29kZVR5cGU7XHJcbiAgcHVibGljIGNvbW1pc3Npb25Db2RlczogQ29Eb21haW5WYWx1ZVtdID0gW107XHJcbiAgcHVibGljIGNvbW1pc3Npb25GaWVsZHM6IE9iamVjdCA9IHsgdGV4dDogXCJkZXNjcmlwdGlvblwiLCB2YWx1ZTogXCJjb2RlXCIgfTtcclxuXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZXM6IFRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZVtdID0gW107XHJcbiAgcHVibGljIGNvbHVtbnM6IGFueVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX29rT3JDYW5jZWxDbGljazogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICApIHtcclxuXHJcbiAgICB0aGlzLmNvbHVtbnMucHVzaChcclxuICAgICAge2ZpZWxkOiBcIndhcmVob3VzZU5yXCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIldBUkVIT1VTRVwiKSwgYWxsb3dGaWx0ZXJpbmc6IGZhbHNlfSxcclxuICAgICAge2ZpZWxkOiBcIndhcmVob3VzZURlc2NcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiREVTQ1JJUFRJT05cIil9LFxyXG4gICAgICB7ZmllbGQ6IFwic3RvY2tBbW91bnRcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiU1RPQ0tcIil9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmNvbW1pc3Npb25Db2RlcyA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRDb21taXNzaW9uQ29kZXMoXCJOTFwiKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy53YXJlaG91c2VEaWFsb2cuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzaG93U3RvY2tNYW5hZ2VyKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuc2VsZWN0ZWRXYXJlaG91c2VOciA9IGxpbmUud2FyZWhvdXNlTnVtYmVyO1xyXG4gICAgdGhpcy5hbW91bnQgPSBsaW5lLmFtb3VudDtcclxuICAgIHRoaXMuY29tbWlzc2lvbkNvZGUgPSBsaW5lLmNvbW1pc3Npb25Db2RlO1xyXG4gICAgdGhpcy5zaG93KGxpbmUuYXJ0aWNsZU51bWJlcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGlkZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLl9va09yQ2FuY2VsQ2xpY2spIHtcclxuICAgICAgdGhpcy5fb2tPckNhbmNlbENsaWNrID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGF3YWl0IHRoaXMub25TdG9ja01hbmFnZXJDYW5jZWxDbGljaygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3coYXJ0aWNsZU5yOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX3JlbG9hZERhdGFDb2xsZWN0aW9ucyhhcnRpY2xlTnIpLnRoZW4oKTtcclxuXHJcbiAgICB0aGlzLndhcmVob3VzZUdyaWQuc2VsZWN0Um93KHRoaXMuc2VsZWN0ZWRXYXJlaG91c2VOcik7XHJcbiAgICB0aGlzLndhcmVob3VzZURpYWxvZy50YXJnZXRFbGVtZW50ID0gbnVsbDtcclxuICAgIHRoaXMud2FyZWhvdXNlRGlhbG9nLm9wZW4oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVSb3dzU2VsZWN0ZWQocm93czogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkV2FyZWhvdXNlTnIgPSAocm93cy5maW5kKHggPT4geCAhPT0gdW5kZWZpbmVkKSkud2FyZWhvdXNlTnI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgb25TdG9ja01hbmFnZXJDYW5jZWxDbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuX29rT3JDYW5jZWxDbGljayA9IHRydWU7XHJcbiAgICB0aGlzLndhcmVob3VzZURpYWxvZy5jbG9zZSgpO1xyXG4gICAgdGhpcy5jYW5jZWxDbGljay5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgb25TdG9ja01hbmFnZXJPa0NsaWNrKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5fb2tPckNhbmNlbENsaWNrID0gdHJ1ZTtcclxuICAgIHRoaXMud2FyZWhvdXNlRGlhbG9nLmNsb3NlKCk7XHJcbiAgICB0aGlzLm9rQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfcmVsb2FkRGF0YUNvbGxlY3Rpb25zKGFydGljbGVOcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBnb29kSWQ6IG51bWJlciAgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0R29vZElkRnJvbUFydGljbGVOcihhcnRpY2xlTnIpO1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VzID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldFRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZXMoZ29vZElkKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,108 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { ButtonModule, CoDialogModule, CoDialogPromptModule, CoGridModule, CoSidebarModule, DropDownModule, FormModule, IconModule, InputCheckboxModule, InputComboBoxModule, InputDatePickerModule, InputNumberPickerModule, InputRadioButtonModule, InputTextModule, MultiSelectListModule, PopupModule, } from "@colijnit/corecomponents_v12";
3
+ import { FlexModule } from "@angular/flex-layout";
4
+ import { DictionaryService } from "../../service/dictionary.service";
5
+ import { TransactionService } from "../../service/transaction.service";
6
+ import { OptionsService } from "../../service/options.service";
7
+ import { CoreModule } from "../core/core.module";
8
+ import { IoneServiceOrderComponent } from "./ione-service-order.component";
9
+ import { ServiceOrderComponent } from "./service-order.component";
10
+ import { DropDownButtonModule } from "@syncfusion/ej2-angular-splitbuttons";
11
+ import { CheckBoxModule, ChipListModule } from "@syncfusion/ej2-angular-buttons";
12
+ import { DropDownListModule } from "@syncfusion/ej2-angular-dropdowns";
13
+ import { TransactionOrderTotalsComponent } from "./transaction-order-totals/transaction-order-totals.component";
14
+ import { TransactionOrderLineViewComponent } from "./transaction-order-line-view/transaction-order-line-view.component";
15
+ import { IoneShoppingCartModule } from "../shopping-cart/ione-shopping-cart.module";
16
+ import { TransactionOrderLinesComponent } from "./transaction-order-lines/transaction-order-lines.component";
17
+ import { TransactionRelationAddressComponent } from "./transaction-relation/transaction-relation-address.component";
18
+ import { TransactionArticleTextComponent } from "./transaction-article-text/transaction-article-text.component";
19
+ import { TransactionSidebarRightComponent } from "./transaction-sidebar/transaction-sidebar-right.component";
20
+ import { TabModule } from "@syncfusion/ej2-angular-navigations";
21
+ import { TransactionLineAccordionComponent } from "./transaction-sidebar/transaction-line-accordion.component";
22
+ import { TransactionHeaderBlockComponent } from "./transaction-header-block/transaction-header-block.component";
23
+ import { TransactionServiceSummaryComponent } from "./summary/transaction-service-summary.component";
24
+ import { TransactionSummaryBlockComponent } from "./summary/transaction-summary-block.component";
25
+ import { TransactionServiceStatusComponent } from "./summary/transaction-service-status.component";
26
+ import { TransactionOrderSummaryComponent } from "./summary/transaction-order-summary.component";
27
+ import { TransactionPaymentInfoComponent } from "./summary/transaction-payment-info.component";
28
+ import { TransactionRelationEditComponent } from "./transaction-relation/transaction-relation-edit.component";
29
+ import { TransactionArticleSummaryComponent } from "./summary/transaction-article-summary.component";
30
+ import { TransactionDeliverySummaryComponent } from "./summary/transaction-delivery-summary.component";
31
+ import { TransactionProductContractSummaryComponent } from "./summary/transaction-product-contract-summary.component";
32
+ import { TransactionProductSummaryComponent } from "./summary/transaction-product-summary.component";
33
+ import { TemplateWrapperDirective } from "../core/directive/template-wrapper.directive";
34
+ import { DefaultOkCancelButtonsComponent } from "../core/base/default-ok-cancel-buttons.component";
35
+ import { CommonModule } from "@angular/common";
36
+ import { TransactionManagerComponent } from "./transaction-manager/transaction-manager.component";
37
+ import { WarehouseComponent } from "../core/warehouse/warehouse.component";
38
+ export class IoneServiceOrderModule {
39
+ }
40
+ IoneServiceOrderModule.decorators = [
41
+ { type: NgModule, args: [{
42
+ imports: [
43
+ IconModule,
44
+ InputTextModule,
45
+ InputCheckboxModule,
46
+ InputRadioButtonModule,
47
+ FormModule,
48
+ InputComboBoxModule,
49
+ InputDatePickerModule,
50
+ InputNumberPickerModule,
51
+ CoDialogModule,
52
+ CoDialogPromptModule,
53
+ ButtonModule,
54
+ FlexModule,
55
+ MultiSelectListModule,
56
+ DropDownModule,
57
+ PopupModule.forRoot(),
58
+ CoSidebarModule,
59
+ CoGridModule,
60
+ CoreModule,
61
+ ChipListModule,
62
+ DropDownButtonModule,
63
+ CheckBoxModule,
64
+ DropDownListModule,
65
+ IoneShoppingCartModule,
66
+ TabModule,
67
+ CommonModule,
68
+ // RichTextEditorModule
69
+ ],
70
+ declarations: [
71
+ TemplateWrapperDirective,
72
+ DefaultOkCancelButtonsComponent,
73
+ IoneServiceOrderComponent,
74
+ ServiceOrderComponent,
75
+ TransactionOrderTotalsComponent,
76
+ TransactionOrderLineViewComponent,
77
+ TransactionOrderLinesComponent,
78
+ TransactionRelationAddressComponent,
79
+ TransactionArticleTextComponent,
80
+ TransactionSidebarRightComponent,
81
+ TransactionLineAccordionComponent,
82
+ TransactionHeaderBlockComponent,
83
+ TransactionServiceSummaryComponent,
84
+ TransactionSummaryBlockComponent,
85
+ TransactionServiceStatusComponent,
86
+ TransactionOrderSummaryComponent,
87
+ TransactionPaymentInfoComponent,
88
+ TransactionRelationEditComponent,
89
+ TransactionArticleSummaryComponent,
90
+ TransactionDeliverySummaryComponent,
91
+ TransactionProductContractSummaryComponent,
92
+ TransactionProductSummaryComponent,
93
+ TransactionManagerComponent,
94
+ WarehouseComponent,
95
+ ],
96
+ providers: [
97
+ DictionaryService,
98
+ TransactionService,
99
+ OptionsService,
100
+ ],
101
+ entryComponents: [
102
+ IoneServiceOrderComponent
103
+ ],
104
+ exports: [IoneServiceOrderComponent],
105
+ bootstrap: [IoneServiceOrderComponent]
106
+ },] }
107
+ ];
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uZS1zZXJ2aWNlLW9yZGVyLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50L3NlcnZpY2Utb3JkZXIvaW9uZS1zZXJ2aWNlLW9yZGVyLW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFDSCxZQUFZLEVBQ1osY0FBYyxFQUNkLG9CQUFvQixFQUNwQixZQUFZLEVBQ1osZUFBZSxFQUNmLGNBQWMsRUFDZCxVQUFVLEVBQ1YsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixXQUFXLEdBQ2QsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUMsY0FBYyxFQUFFLGNBQWMsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFB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bUM7b0JBQ25DLDBDQUEwQztvQkFDMUMsa0NBQWtDO29CQUNsQywyQkFBMkI7b0JBQzNCLGtCQUFrQjtpQkFDbkI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGlCQUFpQjtvQkFDakIsa0JBQWtCO29CQUNsQixjQUFjO2lCQUNmO2dCQUNELGVBQWUsRUFBRTtvQkFDZix5QkFBeUI7aUJBQzFCO2dCQUNELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2dCQUNwQyxTQUFTLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQzthQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7XHJcbiAgICBCdXR0b25Nb2R1bGUsXHJcbiAgICBDb0RpYWxvZ01vZHVsZSxcclxuICAgIENvRGlhbG9nUHJvbXB0TW9kdWxlLFxyXG4gICAgQ29HcmlkTW9kdWxlLFxyXG4gICAgQ29TaWRlYmFyTW9kdWxlLFxyXG4gICAgRHJvcERvd25Nb2R1bGUsXHJcbiAgICBGb3JtTW9kdWxlLFxyXG4gICAgSWNvbk1vZHVsZSxcclxuICAgIElucHV0Q2hlY2tib3hNb2R1bGUsXHJcbiAgICBJbnB1dENvbWJvQm94TW9kdWxlLFxyXG4gICAgSW5wdXREYXRlUGlja2VyTW9kdWxlLFxyXG4gICAgSW5wdXROdW1iZXJQaWNrZXJNb2R1bGUsXHJcbiAgICBJbnB1dFJhZGlvQnV0dG9uTW9kdWxlLFxyXG4gICAgSW5wdXRUZXh0TW9kdWxlLFxyXG4gICAgTXVsdGlTZWxlY3RMaXN0TW9kdWxlLFxyXG4gICAgUG9wdXBNb2R1bGUsXHJcbn0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtGbGV4TW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZmxleC1sYXlvdXRcIjtcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7T3B0aW9uc1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL29wdGlvbnMuc2VydmljZVwiO1xyXG5pbXBvcnQge0NvcmVNb2R1bGV9IGZyb20gXCIuLi9jb3JlL2NvcmUubW9kdWxlXCI7XHJcbmltcG9ydCB7SW9uZVNlcnZpY2VPcmRlckNvbXBvbmVudH0gZnJvbSBcIi4vaW9uZS1zZXJ2aWNlLW9yZGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1NlcnZpY2VPcmRlckNvbXBvbmVudH0gZnJvbSBcIi4vc2VydmljZS1vcmRlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtEcm9wRG93bkJ1dHRvbk1vZHVsZX0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXNwbGl0YnV0dG9uc1wiO1xyXG5pbXBvcnQge0NoZWNrQm94TW9kdWxlLCBDaGlwTGlzdE1vZHVsZX0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJ1dHRvbnNcIjtcclxuaW1wb3J0IHtEcm9wRG93bkxpc3RNb2R1bGV9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1kcm9wZG93bnNcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbk9yZGVyVG90YWxzQ29tcG9uZW50fSBmcm9tIFwiLi90cmFuc2FjdGlvbi1vcmRlci10b3RhbHMvdHJhbnNhY3Rpb24tb3JkZXItdG90YWxzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uT3JkZXJMaW5lVmlld0NvbXBvbmVudH0gZnJvbSBcIi4vdHJhbnNhY3Rpb24tb3JkZXItbGluZS12aWV3L3RyYW5zYWN0aW9uLW9yZGVyLWxpbmUtdmlldy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtJb25lU2hvcHBpbmdDYXJ0TW9kdWxlfSBmcm9tIFwiLi4vc2hvcHBpbmctY2FydC9pb25lLXNob3BwaW5nLWNhcnQubW9kdWxlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25PcmRlckxpbmVzQ29tcG9uZW50fSBmcm9tIFwiLi90cmFuc2FjdGlvbi1vcmRlci1saW5lcy90cmFuc2FjdGlvbi1vcmRlci1saW5lcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblJlbGF0aW9uQWRkcmVzc0NvbXBvbmVudH0gZnJvbSBcIi4vdHJhbnNhY3Rpb24tcmVsYXRpb24vdHJhbnNhY3Rpb24tcmVsYXRpb24tYWRkcmVzcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkFydGljbGVUZXh0Q29tcG9uZW50fSBmcm9tIFwiLi90cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQvdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2lkZWJhclJpZ2h0Q29tcG9uZW50fSBmcm9tIFwiLi90cmFuc2FjdGlvbi1zaWRlYmFyL3RyYW5zYWN0aW9uLXNpZGViYXItcmlnaHQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VGFiTW9kdWxlfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItbmF2aWdhdGlvbnNcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVBY2NvcmRpb25Db21wb25lbnR9IGZyb20gXCIuL3RyYW5zYWN0aW9uLXNpZGViYXIvdHJhbnNhY3Rpb24tbGluZS1hY2NvcmRpb24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25IZWFkZXJCbG9ja0NvbXBvbmVudH0gZnJvbSBcIi4vdHJhbnNhY3Rpb24taGVhZGVyLWJsb2NrL3RyYW5zYWN0aW9uLWhlYWRlci1ibG9jay5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2VTdW1tYXJ5Q29tcG9uZW50fSBmcm9tIFwiLi9zdW1tYXJ5L3RyYW5zYWN0aW9uLXNlcnZpY2Utc3VtbWFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblN1bW1hcnlCbG9ja0NvbXBvbmVudH0gZnJvbSBcIi4vc3VtbWFyeS90cmFuc2FjdGlvbi1zdW1tYXJ5LWJsb2NrLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZVN0YXR1c0NvbXBvbmVudH0gZnJvbSBcIi4vc3VtbWFyeS90cmFuc2FjdGlvbi1zZXJ2aWNlLXN0YXR1cy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbk9yZGVyU3VtbWFyeUNvbXBvbmVudH0gZnJvbSBcIi4vc3VtbWFyeS90cmFuc2FjdGlvbi1vcmRlci1zdW1tYXJ5LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUGF5bWVudEluZm9Db21wb25lbnR9IGZyb20gXCIuL3N1bW1hcnkvdHJhbnNhY3Rpb24tcGF5bWVudC1pbmZvLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVsYXRpb25FZGl0Q29tcG9uZW50fSBmcm9tIFwiLi90cmFuc2FjdGlvbi1yZWxhdGlvbi90cmFuc2FjdGlvbi1yZWxhdGlvbi1lZGl0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQXJ0aWNsZVN1bW1hcnlDb21wb25lbnR9IGZyb20gXCIuL3N1bW1hcnkvdHJhbnNhY3Rpb24tYXJ0aWNsZS1zdW1tYXJ5LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRGVsaXZlcnlTdW1tYXJ5Q29tcG9uZW50fSBmcm9tIFwiLi9zdW1tYXJ5L3RyYW5zYWN0aW9uLWRlbGl2ZXJ5LXN1bW1hcnkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Qcm9kdWN0Q29udHJhY3RTdW1tYXJ5Q29tcG9uZW50fSBmcm9tIFwiLi9zdW1tYXJ5L3RyYW5zYWN0aW9uLXByb2R1Y3QtY29udHJhY3Qtc3VtbWFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblByb2R1Y3RTdW1tYXJ5Q29tcG9uZW50fSBmcm9tIFwiLi9zdW1tYXJ5L3RyYW5zYWN0aW9uLXByb2R1Y3Qtc3VtbWFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUZW1wbGF0ZVdyYXBwZXJEaXJlY3RpdmV9IGZyb20gXCIuLi9jb3JlL2RpcmVjdGl2ZS90ZW1wbGF0ZS13cmFwcGVyLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge0RlZmF1bHRPa0NhbmNlbEJ1dHRvbnNDb21wb25lbnR9IGZyb20gXCIuLi9jb3JlL2Jhc2UvZGVmYXVsdC1vay1jYW5jZWwtYnV0dG9ucy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbk1hbmFnZXJDb21wb25lbnR9IGZyb20gXCIuL3RyYW5zYWN0aW9uLW1hbmFnZXIvdHJhbnNhY3Rpb24tbWFuYWdlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtXYXJlaG91c2VDb21wb25lbnR9IGZyb20gXCIuLi9jb3JlL3dhcmVob3VzZS93YXJlaG91c2UuY29tcG9uZW50XCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIEljb25Nb2R1bGUsXHJcbiAgICBJbnB1dFRleHRNb2R1bGUsXHJcbiAgICBJbnB1dENoZWNrYm94TW9kdWxlLFxyXG4gICAgSW5wdXRSYWRpb0J1dHRvbk1vZHVsZSxcclxuICAgIEZvcm1Nb2R1bGUsXHJcbiAgICBJbnB1dENvbWJvQm94TW9kdWxlLFxyXG4gICAgSW5wdXREYXRlUGlja2VyTW9kdWxlLFxyXG4gICAgSW5wdXROdW1iZXJQaWNrZXJNb2R1bGUsXHJcbiAgICBDb0RpYWxvZ01vZHVsZSxcclxuICAgIENvRGlhbG9nUHJvbXB0TW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgRmxleE1vZHVsZSxcclxuICAgIE11bHRpU2VsZWN0TGlzdE1vZHVsZSxcclxuICAgIERyb3BEb3duTW9kdWxlLFxyXG4gICAgUG9wdXBNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgQ29TaWRlYmFyTW9kdWxlLFxyXG4gICAgQ29HcmlkTW9kdWxlLFxyXG4gICAgQ29yZU1vZHVsZSxcclxuICAgIENoaXBMaXN0TW9kdWxlLFxyXG4gICAgRHJvcERvd25CdXR0b25Nb2R1bGUsXHJcbiAgICBDaGVja0JveE1vZHVsZSxcclxuICAgIERyb3BEb3duTGlzdE1vZHVsZSxcclxuICAgIElvbmVTaG9wcGluZ0NhcnRNb2R1bGUsXHJcbiAgICBUYWJNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbi8vICAgIFJpY2hUZXh0RWRpdG9yTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRlbXBsYXRlV3JhcHBlckRpcmVjdGl2ZSxcclxuICAgIERlZmF1bHRPa0NhbmNlbEJ1dHRvbnNDb21wb25lbnQsXHJcbiAgICBJb25lU2VydmljZU9yZGVyQ29tcG9uZW50LFxyXG4gICAgU2VydmljZU9yZGVyQ29tcG9uZW50LFxyXG4gICAgVHJhbnNhY3Rpb25PcmRlclRvdGFsc0NvbXBvbmVudCxcclxuICAgIFRyYW5zYWN0aW9uT3JkZXJMaW5lVmlld0NvbXBvbmVudCxcclxuICAgIFRyYW5zYWN0aW9uT3JkZXJMaW5lc0NvbXBvbmVudCxcclxuICAgIFRyYW5zYWN0aW9uUmVsYXRpb25BZGRyZXNzQ29tcG9uZW50LFxyXG4gICAgVHJhbnNhY3Rpb25BcnRpY2xlVGV4dENvbXBvbmVudCxcclxuICAgIFRyYW5zYWN0aW9uU2lkZWJhclJpZ2h0Q29tcG9uZW50LFxyXG4gICAgVHJhbnNhY3Rpb25MaW5lQWNjb3JkaW9uQ29tcG9uZW50LFxyXG4gICAgVHJhbnNhY3Rpb25IZWFkZXJCbG9ja0NvbXBvbmVudCxcclxuICAgIFRyYW5zYWN0aW9uU2VydmljZVN1bW1hcnlDb21wb25lbnQsXHJcbiAgICBUcmFuc2FjdGlvblN1bW1hcnlCbG9ja0NvbXBvbmVudCxcclxuICAgIFRyYW5zYWN0aW9uU2VydmljZVN0YXR1c0NvbXBvbmVudCxcclxuICAgIFRyYW5zYWN0aW9uT3JkZXJTdW1tYXJ5Q29tcG9uZW50LFxyXG4gICAgVHJhbnNhY3Rpb25QYXltZW50SW5mb0NvbXBvbmVudCxcclxuICAgIFRyYW5zYWN0aW9uUmVsYXRpb25FZGl0Q29tcG9uZW50LFxyXG4gICAgVHJhbnNhY3Rpb25BcnRpY2xlU3VtbWFyeUNvbXBvbmVudCxcclxuICAgIFRyYW5zYWN0aW9uRGVsaXZlcnlTdW1tYXJ5Q29tcG9uZW50LFxyXG4gICAgVHJhbnNhY3Rpb25Qcm9kdWN0Q29udHJhY3RTdW1tYXJ5Q29tcG9uZW50LFxyXG4gICAgVHJhbnNhY3Rpb25Qcm9kdWN0U3VtbWFyeUNvbXBvbmVudCxcclxuICAgIFRyYW5zYWN0aW9uTWFuYWdlckNvbXBvbmVudCxcclxuICAgIFdhcmVob3VzZUNvbXBvbmVudCxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBPcHRpb25zU2VydmljZSxcclxuICBdLFxyXG4gIGVudHJ5Q29tcG9uZW50czogW1xyXG4gICAgSW9uZVNlcnZpY2VPcmRlckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW0lvbmVTZXJ2aWNlT3JkZXJDb21wb25lbnRdLFxyXG4gIGJvb3RzdHJhcDogW0lvbmVTZXJ2aWNlT3JkZXJDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJb25lU2VydmljZU9yZGVyTW9kdWxlIHt9XHJcbiJdfQ==
@@ -0,0 +1,96 @@
1
+ import { __awaiter } from "tslib";
2
+ import { ChangeDetectorRef, Component, Input } from "@angular/core";
3
+ import { OptionsService } from "../../service/options.service";
4
+ import { DictionaryService } from "../../service/dictionary.service";
5
+ import { IOneConnectorAdapterService } from "../../service/ione-connector-adapter.service";
6
+ import { TransactionService } from "../../service/transaction.service";
7
+ export class IoneServiceOrderComponent {
8
+ constructor(_changeDetector, _optionsService, _connector, _dictionary, _service) {
9
+ this._changeDetector = _changeDetector;
10
+ this._optionsService = _optionsService;
11
+ this._connector = _connector;
12
+ this._dictionary = _dictionary;
13
+ this._service = _service;
14
+ this.upAndLoaded = false;
15
+ this._subscriptions = [];
16
+ this._remoteOptions = true;
17
+ this._publicOptions = true;
18
+ this._orderId = 0;
19
+ this._subscriptions.push(this._optionsService.optionsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)));
20
+ }
21
+ set orderId(value) {
22
+ this._orderId = value;
23
+ this._getTransactionById(this._orderId);
24
+ }
25
+ ;
26
+ set options(value) {
27
+ if (value) {
28
+ let options;
29
+ if (typeof value === "string") {
30
+ options = JSON.parse(value);
31
+ }
32
+ else {
33
+ options = value;
34
+ }
35
+ this._publicOptions = true;
36
+ this._optionsService.initialize(options).then();
37
+ }
38
+ }
39
+ ngOnInit() {
40
+ if (!this._publicOptions) {
41
+ this._optionsService.initializeDevelopmentOptions(this._remoteOptions);
42
+ }
43
+ }
44
+ ngOnDestroy() {
45
+ this._subscriptions.forEach(subscription => subscription.unsubscribe());
46
+ }
47
+ _handleSettingsLoaded(loaded) {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ if (loaded) {
50
+ yield this._initConnection().then();
51
+ this.upAndLoaded = true;
52
+ }
53
+ });
54
+ }
55
+ _initConnection() {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ yield this._connector.connect(this._optionsService.options);
58
+ if (this._optionsService.options.url) {
59
+ this._dictionary.rootUrl = this._optionsService.options.url.replace("/ajaxservice", "");
60
+ }
61
+ yield this._dictionary.setDictionary(this._optionsService.options.languageCode);
62
+ setTimeout(() => {
63
+ this._changeDetector.detectChanges();
64
+ });
65
+ });
66
+ }
67
+ _getTransactionById(orderId) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ yield this._service.getTransactionById(orderId);
70
+ });
71
+ }
72
+ }
73
+ IoneServiceOrderComponent.decorators = [
74
+ { type: Component, args: [{
75
+ // eslint-disable-next-line @angular-eslint/component-selector
76
+ selector: "ione-service-order",
77
+ template: `
78
+ <div>
79
+ <service-order></service-order>
80
+ </div>
81
+ <transaction-sidebar-right></transaction-sidebar-right>
82
+ `
83
+ },] }
84
+ ];
85
+ IoneServiceOrderComponent.ctorParameters = () => [
86
+ { type: ChangeDetectorRef },
87
+ { type: OptionsService },
88
+ { type: IOneConnectorAdapterService },
89
+ { type: DictionaryService },
90
+ { type: TransactionService }
91
+ ];
92
+ IoneServiceOrderComponent.propDecorators = {
93
+ orderId: [{ type: Input }],
94
+ options: [{ type: Input }]
95
+ };
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uZS1zZXJ2aWNlLW9yZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50L3NlcnZpY2Utb3JkZXIvaW9uZS1zZXJ2aWNlLW9yZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsS0FBSyxFQUtOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQVlyRSxNQUFNLE9BQU8seUJBQXlCO0lBMkJwQyxZQUNTLGVBQWtDLEVBQ2xDLGVBQStCLEVBQy9CLFVBQXVDLEVBQ3ZDLFdBQThCLEVBQzlCLFFBQTRCO1FBSjVCLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IsZUFBVSxHQUFWLFVBQVUsQ0FBNkI7UUFDdkMsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBWjlCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTVCLG1CQUFjLEdBQW1CLEVBQUUsQ0FBQztRQUNwQyxtQkFBYyxHQUFZLElBQUksQ0FBQztRQUMvQixtQkFBYyxHQUFZLElBQUksQ0FBQztRQUMvQixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBUzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDM0YsQ0FBQztJQUNKLENBQUM7SUFwQ0QsSUFDVyxPQUFPLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFBQSxDQUFDO0lBRUYsSUFDVyxPQUFPLENBQUMsS0FBVTtRQUMzQixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksT0FBWSxDQUFDO1lBQ2pCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUM3QixPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM3QjtpQkFBTTtnQkFDTCxPQUFPLEdBQUcsS0FBSyxDQUFDO2FBQ2pCO1lBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7WUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDakQ7SUFDSCxDQUFDO0lBb0JELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN4RTtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRWEscUJBQXFCLENBQUMsTUFBZTs7WUFDakQsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQztLQUFBO0lBRWEsZUFBZTs7WUFDM0IsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTVELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUN6RjtZQUNELE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDaEYsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRWEsbUJBQW1CLENBQUMsT0FBZTs7WUFDL0MsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELENBQUM7S0FBQTs7O1lBaEZGLFNBQVMsU0FBQztnQkFDVCw4REFBOEQ7Z0JBQzlELFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLFFBQVEsRUFBRTs7Ozs7R0FLVDthQUNGOzs7WUF4QkMsaUJBQWlCO1lBVVgsY0FBYztZQUVkLDJCQUEyQjtZQUQzQixpQkFBaUI7WUFFakIsa0JBQWtCOzs7c0JBYXZCLEtBQUs7c0JBTUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlciwgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtPcHRpb25zU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uvb3B0aW9ucy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5pbXBvcnQge0lPbmVDb25uZWN0b3JBZGFwdGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvaW9uZS1jb25uZWN0b3ItYWRhcHRlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiBcImlvbmUtc2VydmljZS1vcmRlclwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2PlxyXG4gICAgICAgIDxzZXJ2aWNlLW9yZGVyPjwvc2VydmljZS1vcmRlcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHRyYW5zYWN0aW9uLXNpZGViYXItcmlnaHQ+PC90cmFuc2FjdGlvbi1zaWRlYmFyLXJpZ2h0PlxyXG4gIGBcclxufSlcclxuZXhwb3J0IGNsYXNzIElvbmVTZXJ2aWNlT3JkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IG9yZGVySWQodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fb3JkZXJJZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5fZ2V0VHJhbnNhY3Rpb25CeUlkKHRoaXMuX29yZGVySWQpO1xyXG4gIH07XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBvcHRpb25zKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICBsZXQgb3B0aW9uczogYW55O1xyXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgb3B0aW9ucyA9IEpTT04ucGFyc2UodmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG9wdGlvbnMgPSB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9wdWJsaWNPcHRpb25zID0gdHJ1ZTtcclxuICAgICAgdGhpcy5fb3B0aW9uc1NlcnZpY2UuaW5pdGlhbGl6ZShvcHRpb25zKS50aGVuKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHB1YmxpYyB1cEFuZExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3JlbW90ZU9wdGlvbnM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaXZhdGUgX3B1YmxpY09wdGlvbnM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaXZhdGUgX29yZGVySWQ6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgX29wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSxcclxuICAgIHB1YmxpYyBfY29ubmVjdG9yOiBJT25lQ29ubmVjdG9yQWRhcHRlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgX2RpY3Rpb25hcnk6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHVibGljIF9zZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnNMb2FkZWQuc3Vic2NyaWJlKGxvYWRlZCA9PiB0aGlzLl9oYW5kbGVTZXR0aW5nc0xvYWRlZChsb2FkZWQpKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fcHVibGljT3B0aW9ucykge1xyXG4gICAgICB0aGlzLl9vcHRpb25zU2VydmljZS5pbml0aWFsaXplRGV2ZWxvcG1lbnRPcHRpb25zKHRoaXMuX3JlbW90ZU9wdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2hhbmRsZVNldHRpbmdzTG9hZGVkKGxvYWRlZDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKGxvYWRlZCkge1xyXG4gICAgICBhd2FpdCB0aGlzLl9pbml0Q29ubmVjdGlvbigpLnRoZW4oKTtcclxuICAgICAgdGhpcy51cEFuZExvYWRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9pbml0Q29ubmVjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5jb25uZWN0KHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMpO1xyXG5cclxuICAgIGlmICh0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLnVybCkge1xyXG4gICAgICB0aGlzLl9kaWN0aW9uYXJ5LnJvb3RVcmwgPSB0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLnVybC5yZXBsYWNlKFwiL2FqYXhzZXJ2aWNlXCIsIFwiXCIpO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy5fZGljdGlvbmFyeS5zZXREaWN0aW9uYXJ5KHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMubGFuZ3VhZ2VDb2RlKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2dldFRyYW5zYWN0aW9uQnlJZChvcmRlcklkOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuX3NlcnZpY2UuZ2V0VHJhbnNhY3Rpb25CeUlkKG9yZGVySWQpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,195 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Component, ViewChild } from "@angular/core";
3
+ import { animate, state, style, transition, trigger } from "@angular/animations";
4
+ import { TransactionService } from "../../service/transaction.service";
5
+ import { TransactionEventService } from "../../service/transaction-event.service";
6
+ import { ContentViewMode } from "../../enum/content-view-mode.enum";
7
+ import { CoreComponentsIcon, IconCacheService, PromptService } from "@colijnit/corecomponents_v12";
8
+ import { TransactionBaseComponent } from "../core/base/transaction-base.component";
9
+ import { TransactionArticleTextComponent } from "./transaction-article-text/transaction-article-text.component";
10
+ import { TransactionManagerComponent } from "./transaction-manager/transaction-manager.component";
11
+ import { PositionGridRow } from "../../../enum/position-grid-row.enum";
12
+ export class ServiceOrderComponent extends TransactionBaseComponent {
13
+ constructor(service, transactionEvents, iconCacheService, _promptService) {
14
+ super(service);
15
+ this.service = service;
16
+ this.transactionEvents = transactionEvents;
17
+ this.iconCacheService = iconCacheService;
18
+ this._promptService = _promptService;
19
+ this.iconThickLines = CoreComponentsIcon.ThickLines;
20
+ this.iconThinLines = CoreComponentsIcon.ThinLines;
21
+ this.iconOrder = CoreComponentsIcon.Order;
22
+ this.viewModes = ContentViewMode;
23
+ this.canPlanDelivery = false;
24
+ this.showTotals = true;
25
+ this.contextMenuItems = [];
26
+ this.isRouteOptimizationConfigured = false;
27
+ this.activeViewMode = ContentViewMode.List;
28
+ this.floatButtonSelected = false;
29
+ this.newArticleNr = "";
30
+ this._subs = [];
31
+ }
32
+ get inListView() {
33
+ return this.activeViewMode === ContentViewMode.List;
34
+ }
35
+ get inGridView() {
36
+ return this.activeViewMode === ContentViewMode.Grid;
37
+ }
38
+ ngOnInit() {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ this._subs.push(this.service.transactionLoaded.subscribe((transactionInfoResponse) => {
41
+ if (transactionInfoResponse.isSuccess) {
42
+ this.transaction = transactionInfoResponse;
43
+ if (this.transaction && this.transaction.transactionInfo) {
44
+ this.customerId = Number(this.transaction.transactionInfo.relation.relationNr);
45
+ this.relationId = this.transaction.transactionInfo.relation.relationId;
46
+ }
47
+ }
48
+ }), this.transactionEvents.rightSidebarClose.subscribe(() => {
49
+ this.moveFloatingButtonToRight();
50
+ }), this.transactionEvents.transactionLineClicked.subscribe((transactionLine) => {
51
+ this._selectedTransLine = transactionLine;
52
+ this.moveFloatingButtonToLeft();
53
+ }), this.transactionEvents.scrollContent.subscribe((event) => {
54
+ this.hideOrderTotals(event);
55
+ }));
56
+ });
57
+ }
58
+ ngAfterViewInit() {
59
+ this._subs.push(this._transactionManager.articleAdded.subscribe((transactionInfoResponse) => {
60
+ this.transaction = transactionInfoResponse;
61
+ }));
62
+ }
63
+ ngOnDestroy() {
64
+ this._subs.forEach(sub => sub.unsubscribe());
65
+ }
66
+ animationFn() {
67
+ return trigger("showPopup", [
68
+ state("void", style({ transform: "translate3d(0, 0, 0)" })),
69
+ state("*", style({ transform: "translate3d(100%, 0, 0)" })),
70
+ transition("void <=> *", [
71
+ animate("200ms ease-in-out")
72
+ ])
73
+ ]);
74
+ }
75
+ trackByFn(index, line) {
76
+ return line.lineNr;
77
+ }
78
+ handleRowsSelected(rows) {
79
+ this._selectedTransLine = rows.find(x => x !== undefined);
80
+ }
81
+ handlePlanningRequest(event) {
82
+ // TODO: handlePlanningRequest... from new Planning package
83
+ }
84
+ moveFloatingButtonToLeft() {
85
+ if (this.floatButtonRightPosition === ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITHOUT_SIDEBAR) {
86
+ this.floatButtonRightPosition = ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITH_SIDEBAR;
87
+ }
88
+ }
89
+ moveFloatingButtonToRight() {
90
+ if (this.floatButtonRightPosition === ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITH_SIDEBAR) {
91
+ this.floatButtonRightPosition = ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITHOUT_SIDEBAR;
92
+ }
93
+ }
94
+ onOkClick() {
95
+ this.hide();
96
+ }
97
+ hide() {
98
+ this.floatButtonSelected = false;
99
+ }
100
+ floatButtonClick() {
101
+ this.floatButtonSelected = true;
102
+ this._transactionArticleTextComponent.visible = this.floatButtonSelected;
103
+ }
104
+ get subHeader() {
105
+ if (this._selectedTransLine) {
106
+ return this._selectedTransLine.goodDescription;
107
+ }
108
+ return "";
109
+ }
110
+ hideOrderTotals(event) {
111
+ this.showTotals = false;
112
+ }
113
+ addArticleLine(event) {
114
+ return __awaiter(this, void 0, void 0, function* () {
115
+ if (event.code === "Enter") {
116
+ if (this.newArticleNr && this.newArticleNr !== "") {
117
+ yield this._transactionManager.addArticleLine(this.transactionInfo.uuid, this.newArticleNr, 1, 0, PositionGridRow.After);
118
+ }
119
+ }
120
+ });
121
+ }
122
+ }
123
+ ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITHOUT_SIDEBAR = 50;
124
+ ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITH_SIDEBAR = 350;
125
+ ServiceOrderComponent.decorators = [
126
+ { type: Component, args: [{
127
+ // eslint-disable-next-line @angular-eslint/component-selector
128
+ selector: "service-order",
129
+ template: `
130
+ <transaction-manager></transaction-manager>
131
+ <div id="transaction-general-tab" style="height:100%;">
132
+ <transaction-header-block
133
+ [relationId]="relationId"
134
+ [transaction]="transaction"
135
+ [canPlanDelivery]="canPlanDelivery"
136
+ (planningRequestButtonClick)="handlePlanningRequest($event)"
137
+ ></transaction-header-block>
138
+ <div *ngIf="!isService">
139
+ <div style="display: flex; flex-direction: row; place-content: center">
140
+ <co-input-text style="width: 200px;"
141
+ [(model)]="newArticleNr"
142
+ [placeholder]="'WHERE_ARE_YOU_LOOKING_FOR' | localize"
143
+ [showClearButton]="true"
144
+ (keypress)="addArticleLine($event)"
145
+ ></co-input-text>
146
+ </div>
147
+ <div class="transaction-view" fxLayout="row" fxLayoutGap="1px" fxLayoutAlign="flex-end">
148
+ <div class="view-mode-buttons">
149
+ <co-button [iconData]="iconCacheService.getIcon(iconThickLines)"
150
+ [title]="'LIST_VIEW' | localize"
151
+ (click)="this.activeViewMode = viewModes.List"
152
+ class="triangle white"
153
+ iconClass="medium light"></co-button>
154
+ <co-button [iconData]="iconCacheService.getIcon(iconThinLines)"
155
+ [title]="'GRID_VIEW' | localize"
156
+ (click)="this.activeViewMode = viewModes.Grid"
157
+ class="triangle white"
158
+ iconClass="medium light"></co-button>
159
+ </div>
160
+ </div>
161
+ <div *ngIf="this.activeViewMode === viewModes.List">
162
+ <transaction-order-line-view *ngFor="let line of transactionLines; trackBy:trackByFn;"
163
+ [line]="line"
164
+ ></transaction-order-line-view>
165
+ </div>
166
+ <div *ngIf="this.activeViewMode === viewModes.Grid">
167
+ <transaction-order-lines [transaction]="transaction"></transaction-order-lines>
168
+ </div>
169
+ <div class="floating-icon-wrapper" [style.right.px]="floatButtonRightPosition">
170
+ <icon [icon]="iconOrder"
171
+ class="light"
172
+ (click)="floatButtonClick()" id="floatingIcon"
173
+ [style.right.px]="floatButtonRightPosition"></icon>
174
+ </div>
175
+ </div>
176
+ <transaction-order-totals *ngIf="!isService"
177
+ [ngClass]="showTotals ? 'transaction-totals-show' : 'transaction-totals-hide'"></transaction-order-totals>
178
+ </div>
179
+
180
+ <transaction-article-text></transaction-article-text>
181
+ `,
182
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center,:host :host{display:flex}.flex-center{flex-direction:row}:host :host{flex-direction:column}.flex-center{align-items:center!important;justify-content:center!important}.transaction-view .view-mode-buttons{margin-left:11px}:host :host{width:100%}:host :host{overflow:hidden}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host :host{padding-bottom:60px}.page-wrapper :host{padding:20px;margin-bottom:60px}:host transaction-order-totals{display:flex;flex-direction:column;align-items:flex-end}:host .transaction-totals-show{padding:20px}:host .transaction-totals-hide{position:relative;bottom:0;right:0}::ng-deep #transaction_planning_agenda{top:160px!important;width:calc(100vw - 80px)!important}::ng-deep #transaction_planning_agenda .popup-card-title{padding:10px 20px;background:#74B77F;color:#fff}::ng-deep #transaction_planning_agenda .popup-card-title .header-wrapper{align-items:center!important}::ng-deep #transaction_planning_agenda .popup-card-title .separator{border-color:#fff!important}::ng-deep #transaction_planning_agenda .popup-card-title .header{font-size:15px;font-weight:normal}::ng-deep #transaction_planning_agenda .popup-card-title .sub-header{font-size:18px;color:#fff!important;font-weight:bold!important}::ng-deep #transaction_planning_agenda .popup-card-title button-select icon [fill]{fill:#fff}::ng-deep #transaction_planning_agenda .popup-card-content{overflow:hidden}@media only screen and (max-width: 599px){::ng-deep #transaction_planning_agenda{width:100vw!important}::ng-deep #transaction_planning_agenda .popup-card-content{padding:0}}.column-separator{padding-right:25px;border-right:1px solid #0000001c}.floating-icon-wrapper{position:fixed;bottom:50px;right:50px;display:flex;flex-shrink:0;align-items:center;justify-content:center;background:#475060;height:50px;width:50px;opacity:.5;transition:opacity .4s ease-in-out;border-radius:50%;overflow:hidden;box-shadow:0 0 6px #0009;-webkit-box-shadow:0px 0px 6px 0px rgba(0,0,0,.6);-moz-box-shadow:0px 0px 6px 0px rgba(0,0,0,.6);cursor:pointer}.floating-icon-wrapper:hover{opacity:1;transition:opacity .4s ease-in-out}.floating-icon-wrapper ::ng-deep icon{height:44px!important;width:44px!important;color:#fff!important;flex-shrink:0}.transaction-wrapper{padding:0 20px}.view-mode-buttons co-button{padding:0}.transaction-view{display:flex;margin-top:10px;justify-content:stretch}.transaction-view .view-mode-buttons{display:flex;flex-direction:row}.transaction-view .view-mode-buttons button-select ::ng-deep button-colijn{border-radius:0}.transaction-view .view-mode-buttons button-select:first-child{margin-right:5px}.transaction-view .view-mode-buttons button-select:first-child ::ng-deep button-colijn{border-radius:3px}.transaction-view .view-mode-buttons button-select:nth-child(2) ::ng-deep button-colijn{border-top-left-radius:3px;border-bottom-left-radius:3px}.transaction-view .view-mode-buttons button-select:last-child ::ng-deep button-colijn{border-top-right-radius:3px;border-bottom-right-radius:3px}\n"]
183
+ },] }
184
+ ];
185
+ ServiceOrderComponent.ctorParameters = () => [
186
+ { type: TransactionService },
187
+ { type: TransactionEventService },
188
+ { type: IconCacheService },
189
+ { type: PromptService }
190
+ ];
191
+ ServiceOrderComponent.propDecorators = {
192
+ _transactionArticleTextComponent: [{ type: ViewChild, args: [TransactionArticleTextComponent,] }],
193
+ _transactionManager: [{ type: ViewChild, args: [TransactionManagerComponent,] }]
194
+ };
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1vcmRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudC9zZXJ2aWNlLW9yZGVyL3NlcnZpY2Utb3JkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxPQUFPLEVBQTRCLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXpHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBSWhGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFakcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFHOUcsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDaEcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBOERyRSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsd0JBQXdCO0lBeUMvRCxZQUNTLE9BQTJCLEVBQzNCLGlCQUEwQyxFQUMxQyxnQkFBa0MsRUFDakMsY0FBNkI7UUFFckMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBTFIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5QjtRQUMxQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENB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QyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDN0UsQ0FBQztJQUVELElBQVcsU0FBUztRQUNoQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7U0FDbEQ7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTSxlQUFlLENBQUMsS0FBYTtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRVksY0FBYyxDQUFDLEtBQW9COztZQUM5QyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO2dCQUMxQixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxFQUFFLEVBQUU7b0JBQ2pELE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDOUU7YUFDRjtRQUNILENBQUM7S0FBQTs7QUFwSnNCLGlFQUEyQyxHQUFHLEVBQUUsQ0FBQztBQUNqRCw4REFBd0MsR0FBRyxHQUFHLENBQUM7O1lBcEV6RSxTQUFTLFNBQUM7Z0JBQ1QsOERBQThEO2dCQUM1RCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBb0RUOzthQUlKOzs7WUExRU8sa0JBQWtCO1lBQ2xCLHVCQUF1QjtZQUtILGdCQUFnQjtZQUFFLGFBQWE7OzsrQ0FzRXRELFNBQVMsU0FBQywrQkFBK0I7a0NBR3pDLFNBQVMsU0FBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHthbmltYXRlLCBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcclxuaW1wb3J0IHtTY3JvbGx9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZVwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcclxuaW1wb3J0IHtDb250ZW50Vmlld01vZGV9IGZyb20gXCIuLi8uLi9lbnVtL2NvbnRlbnQtdmlldy1tb2RlLmVudW1cIjtcclxuaW1wb3J0IHtDb3JlQ29tcG9uZW50c0ljb24sIEljb25DYWNoZVNlcnZpY2UsIFByb21wdFNlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcbmltcG9ydCB7Q29udGV4dE1lbnVJdGVtTW9kZWx9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1ncmlkc1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQXJ0aWNsZVRleHRDb21wb25lbnR9IGZyb20gXCIuL3RyYW5zYWN0aW9uLWFydGljbGUtdGV4dC90cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TGluZU9wZXJhdGlvblJlc3BvbnNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2xpbmUtb3BlcmF0aW9uLXJlc3BvbnNlLmJvXCI7XHJcbmltcG9ydCB7Q29tbWlzc2lvbkNvZGVUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcmVmY29kZS9jb21taXNzaW9uLWNvZGUtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25NYW5hZ2VyQ29tcG9uZW50fSBmcm9tIFwiLi90cmFuc2FjdGlvbi1tYW5hZ2VyL3RyYW5zYWN0aW9uLW1hbmFnZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7UG9zaXRpb25HcmlkUm93fSBmcm9tIFwiLi4vLi4vLi4vZW51bS9wb3NpdGlvbi1ncmlkLXJvdy5lbnVtXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gICAgc2VsZWN0b3I6IFwic2VydmljZS1vcmRlclwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgPHRyYW5zYWN0aW9uLW1hbmFnZXI+PC90cmFuc2FjdGlvbi1tYW5hZ2VyPlxyXG4gICAgICA8ZGl2IGlkPVwidHJhbnNhY3Rpb24tZ2VuZXJhbC10YWJcIiBzdHlsZT1cImhlaWdodDoxMDAlO1wiPlxyXG4gICAgICAgIDx0cmFuc2FjdGlvbi1oZWFkZXItYmxvY2tcclxuICAgICAgICAgIFtyZWxhdGlvbklkXT1cInJlbGF0aW9uSWRcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgIFtjYW5QbGFuRGVsaXZlcnldPVwiY2FuUGxhbkRlbGl2ZXJ5XCJcclxuICAgICAgICAgIChwbGFubmluZ1JlcXVlc3RCdXR0b25DbGljayk9XCJoYW5kbGVQbGFubmluZ1JlcXVlc3QoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvdHJhbnNhY3Rpb24taGVhZGVyLWJsb2NrPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhaXNTZXJ2aWNlXCI+XHJcbiAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IHJvdzsgcGxhY2UtY29udGVudDogY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IHN0eWxlPVwid2lkdGg6IDIwMHB4O1wiXHJcbiAgICAgICAgICAgICAgWyhtb2RlbCldPVwibmV3QXJ0aWNsZU5yXCJcclxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1dIRVJFX0FSRV9ZT1VfTE9PS0lOR19GT1InIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgKGtleXByZXNzKT1cImFkZEFydGljbGVMaW5lKCRldmVudClcIlxyXG4gICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tdmlld1wiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxcHhcIiBmeExheW91dEFsaWduPVwiZmxleC1lbmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZpZXctbW9kZS1idXR0b25zXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25UaGlja0xpbmVzKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0xJU1RfVklFVycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidGhpcy5hY3RpdmVWaWV3TW9kZSA9IHZpZXdNb2Rlcy5MaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJpYW5nbGUgd2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzPVwibWVkaXVtIGxpZ2h0XCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25UaGluTGluZXMpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInR1JJRF9WSUVXJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0aGlzLmFjdGl2ZVZpZXdNb2RlID0gdmlld01vZGVzLkdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmlhbmdsZSB3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBpY29uQ2xhc3M9XCJtZWRpdW0gbGlnaHRcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGlzLmFjdGl2ZVZpZXdNb2RlID09PSB2aWV3TW9kZXMuTGlzdFwiPlxyXG4gICAgICAgICAgICA8dHJhbnNhY3Rpb24tb3JkZXItbGluZS12aWV3ICpuZ0Zvcj1cImxldCBsaW5lIG9mIHRyYW5zYWN0aW9uTGluZXM7IHRyYWNrQnk6dHJhY2tCeUZuO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmVdPVwibGluZVwiXHJcbiAgICAgICAgICAgID48L3RyYW5zYWN0aW9uLW9yZGVyLWxpbmUtdmlldz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cInRoaXMuYWN0aXZlVmlld01vZGUgPT09IHZpZXdNb2Rlcy5HcmlkXCI+XHJcbiAgICAgICAgICAgIDx0cmFuc2FjdGlvbi1vcmRlci1saW5lcyBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIj48L3RyYW5zYWN0aW9uLW9yZGVyLWxpbmVzPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxvYXRpbmctaWNvbi13cmFwcGVyXCIgW3N0eWxlLnJpZ2h0LnB4XT1cImZsb2F0QnV0dG9uUmlnaHRQb3NpdGlvblwiPlxyXG4gICAgICAgICAgPGljb24gW2ljb25dPVwiaWNvbk9yZGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlnaHRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImZsb2F0QnV0dG9uQ2xpY2soKVwiIGlkPVwiZmxvYXRpbmdJY29uXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5yaWdodC5weF09XCJmbG9hdEJ1dHRvblJpZ2h0UG9zaXRpb25cIj48L2ljb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8dHJhbnNhY3Rpb24tb3JkZXItdG90YWxzICpuZ0lmPVwiIWlzU2VydmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzaG93VG90YWxzID8gJ3RyYW5zYWN0aW9uLXRvdGFscy1zaG93JyA6ICd0cmFuc2FjdGlvbi10b3RhbHMtaGlkZSdcIj48L3RyYW5zYWN0aW9uLW9yZGVyLXRvdGFscz5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8dHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0PjwvdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0PlxyXG4gICAgYCxcclxuICAgIHN0eWxlVXJsczogW1xyXG4gICAgICAgIFwiLi9zZXJ2aWNlLW9yZGVyLmNvbXBvbmVudC5zY3NzXCJcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNlcnZpY2VPcmRlckNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBWaWV3Q2hpbGQoVHJhbnNhY3Rpb25BcnRpY2xlVGV4dENvbXBvbmVudClcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uQXJ0aWNsZVRleHRDb21wb25lbnQ6IFRyYW5zYWN0aW9uQXJ0aWNsZVRleHRDb21wb25lbnQ7XHJcblxyXG4gICAgQFZpZXdDaGlsZChUcmFuc2FjdGlvbk1hbmFnZXJDb21wb25lbnQpXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbk1hbmFnZXI6IFRyYW5zYWN0aW9uTWFuYWdlckNvbXBvbmVudDtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZMT0FUX0JVVFRPTl9SSUdIVF9QT1NJVElPTl9XSVRIT1VUX1NJREVCQVIgPSA1MDtcclxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRkxPQVRfQlVUVE9OX1JJR0hUX1BPU0lUSU9OX1dJVEhfU0lERUJBUiA9IDM1MDtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWNvblRoaWNrTGluZXM6IENvcmVDb21wb25lbnRzSWNvbiA9IENvcmVDb21wb25lbnRzSWNvbi5UaGlja0xpbmVzO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGljb25UaGluTGluZXM6IENvcmVDb21wb25lbnRzSWNvbiA9IENvcmVDb21wb25lbnRzSWNvbi5UaGluTGluZXM7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWNvbk9yZGVyOiBDb3JlQ29tcG9uZW50c0ljb24gPSBDb3JlQ29tcG9uZW50c0ljb24uT3JkZXI7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmlld01vZGVzOiB0eXBlb2YgQ29udGVudFZpZXdNb2RlID0gQ29udGVudFZpZXdNb2RlO1xyXG5cclxuICAgIHB1YmxpYyBwb3B1cEhlYWRlckxhYmVsOiBzdHJpbmc7XHJcblxyXG4gICAgcHVibGljIGNhblBsYW5EZWxpdmVyeTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBzaG93VG90YWxzOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHB1YmxpYyBmbG9hdEJ1dHRvblJpZ2h0UG9zaXRpb246IG51bWJlcjtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IGluTGlzdFZpZXcoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlVmlld01vZGUgPT09IENvbnRlbnRWaWV3TW9kZS5MaXN0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaW5HcmlkVmlldygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVWaWV3TW9kZSA9PT0gQ29udGVudFZpZXdNb2RlLkdyaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbnRleHRNZW51SXRlbXM6IENvbnRleHRNZW51SXRlbU1vZGVsW10gPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgaXNSb3V0ZU9wdGltaXphdGlvbkNvbmZpZ3VyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwdWJsaWMgYWN0aXZlVmlld01vZGU6IENvbnRlbnRWaWV3TW9kZSA9IENvbnRlbnRWaWV3TW9kZS5MaXN0O1xyXG4gICAgcHVibGljIGZsb2F0QnV0dG9uU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBuZXdBcnRpY2xlTnI6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICAgIHByaXZhdGUgX3NlbGVjdGVkVHJhbnNMaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudHM6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBfcHJvbXB0U2VydmljZTogUHJvbXB0U2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgIHN1cGVyKHNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uTG9hZGVkLnN1YnNjcmliZSgodHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UuaXNTdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbkluZm9SZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb24gJiYgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbWVySWQgPSBOdW1iZXIodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucmVsYXRpb24ucmVsYXRpb25Ocik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxhdGlvbklkID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucmVsYXRpb24ucmVsYXRpb25JZDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50cy5yaWdodFNpZGViYXJDbG9zZS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb3ZlRmxvYXRpbmdCdXR0b25Ub1JpZ2h0KCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG5cclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50cy50cmFuc2FjdGlvbkxpbmVDbGlja2VkLnN1YnNjcmliZSgodHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFRyYW5zTGluZSA9IHRyYW5zYWN0aW9uTGluZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubW92ZUZsb2F0aW5nQnV0dG9uVG9MZWZ0KCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG5cclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50cy5zY3JvbGxDb250ZW50LnN1YnNjcmliZSgoZXZlbnQ6IFNjcm9sbCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlT3JkZXJUb3RhbHMoZXZlbnQpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uTWFuYWdlci5hcnRpY2xlQWRkZWQuc3Vic2NyaWJlKCh0cmFuc2FjdGlvbkluZm9SZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbkluZm9SZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc3Vicy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFuaW1hdGlvbkZuKCk6IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSB7XHJcbiAgICAgICAgcmV0dXJuIHRyaWdnZXIoXCJzaG93UG9wdXBcIiwgW1xyXG4gICAgICAgICAgICBzdGF0ZShcInZvaWRcIiwgc3R5bGUoe3RyYW5zZm9ybTogXCJ0cmFuc2xhdGUzZCgwLCAwLCAwKVwifSkpLFxyXG4gICAgICAgICAgICBzdGF0ZShcIipcIiwgc3R5bGUoe3RyYW5zZm9ybTogXCJ0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKVwifSkpLFxyXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwidm9pZCA8PT4gKlwiLCBbXHJcbiAgICAgICAgICAgICAgICBhbmltYXRlKFwiMjAwbXMgZWFzZS1pbi1vdXRcIilcclxuICAgICAgICAgICAgXSlcclxuICAgICAgICBdKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiBhbnkge1xyXG4gICAgICByZXR1cm4gbGluZS5saW5lTnI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZVJvd3NTZWxlY3RlZChyb3dzOiBhbnkpOiB2b2lkIHtcclxuICAgICAgdGhpcy5fc2VsZWN0ZWRUcmFuc0xpbmUgPSByb3dzLmZpbmQoeCA9PiB4ICE9PSB1bmRlZmluZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVQbGFubmluZ1JlcXVlc3QoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAvLyBUT0RPOiBoYW5kbGVQbGFubmluZ1JlcXVlc3QuLi4gZnJvbSBuZXcgUGxhbm5pbmcgcGFja2FnZVxyXG4gICAgfVxyXG5cclxuXHJcbiAgcHVibGljIG1vdmVGbG9hdGluZ0J1dHRvblRvTGVmdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5mbG9hdEJ1dHRvblJpZ2h0UG9zaXRpb24gPT09IFNlcnZpY2VPcmRlckNvbXBvbmVudC5GTE9BVF9CVVRUT05fUklHSFRfUE9TSVRJT05fV0lUSE9VVF9TSURFQkFSKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmxvYXRCdXR0b25SaWdodFBvc2l0aW9uID0gU2VydmljZU9yZGVyQ29tcG9uZW50LkZMT0FUX0JVVFRPTl9SSUdIVF9QT1NJVElPTl9XSVRIX1NJREVCQVI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBtb3ZlRmxvYXRpbmdCdXR0b25Ub1JpZ2h0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZsb2F0QnV0dG9uUmlnaHRQb3NpdGlvbiA9PT0gU2VydmljZU9yZGVyQ29tcG9uZW50LkZMT0FUX0JVVFRPTl9SSUdIVF9QT1NJVElPTl9XSVRIX1NJREVCQVIpIHtcclxuICAgICAgICAgICAgdGhpcy5mbG9hdEJ1dHRvblJpZ2h0UG9zaXRpb24gPSBTZXJ2aWNlT3JkZXJDb21wb25lbnQuRkxPQVRfQlVUVE9OX1JJR0hUX1BPU0lUSU9OX1dJVEhPVVRfU0lERUJBUjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uT2tDbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGlkZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZsb2F0QnV0dG9uU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZmxvYXRCdXR0b25DbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZsb2F0QnV0dG9uU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uQXJ0aWNsZVRleHRDb21wb25lbnQudmlzaWJsZSA9IHRoaXMuZmxvYXRCdXR0b25TZWxlY3RlZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHN1YkhlYWRlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZFRyYW5zTGluZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRUcmFuc0xpbmUuZ29vZERlc2NyaXB0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGlkZU9yZGVyVG90YWxzKGV2ZW50OiBTY3JvbGwpOiB2b2lkIHtcclxuICAgICAgdGhpcy5zaG93VG90YWxzID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGFkZEFydGljbGVMaW5lKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgIGlmIChldmVudC5jb2RlID09PSBcIkVudGVyXCIpIHtcclxuICAgICAgICBpZiAodGhpcy5uZXdBcnRpY2xlTnIgJiYgdGhpcy5uZXdBcnRpY2xlTnIgIT09IFwiXCIpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uTWFuYWdlci5hZGRBcnRpY2xlTGluZShcclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkluZm8udXVpZCwgdGhpcy5uZXdBcnRpY2xlTnIsIDEsIDAsIFBvc2l0aW9uR3JpZFJvdy5BZnRlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19