@hitsoft/smart-warehouse 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +24 -0
  2. package/config/enums/index.d.ts +1 -0
  3. package/config/enums/route-names.d.ts +12 -0
  4. package/config/index.d.ts +5 -0
  5. package/config/providers/connector-params-route.provider.d.ts +8 -0
  6. package/config/providers/index.d.ts +7 -0
  7. package/config/providers/order-station-route.provider.d.ts +8 -0
  8. package/config/providers/orders-route.provider.d.ts +8 -0
  9. package/config/providers/quantity-correction-route.provider.d.ts +8 -0
  10. package/config/providers/route.provider.d.ts +8 -0
  11. package/config/providers/shelf-placement-route.provider.d.ts +8 -0
  12. package/config/providers/shelf-transfer-route.provider.d.ts +8 -0
  13. package/config/providers/shortages-route.provider.d.ts +8 -0
  14. package/config/providers/station.provider.d.ts +8 -0
  15. package/config/providers/stock-report.d.ts +8 -0
  16. package/config/public-api.d.ts +3 -0
  17. package/config/smart-warehouse-config.module.d.ts +8 -0
  18. package/esm2020/config/enums/index.mjs +2 -0
  19. package/esm2020/config/enums/route-names.mjs +2 -0
  20. package/esm2020/config/hitsoft-smart-warehouse-config.mjs +5 -0
  21. package/esm2020/config/providers/connector-params-route.provider.mjs +25 -0
  22. package/esm2020/config/providers/index.mjs +8 -0
  23. package/esm2020/config/providers/order-station-route.provider.mjs +25 -0
  24. package/esm2020/config/providers/orders-route.provider.mjs +25 -0
  25. package/esm2020/config/providers/quantity-correction-route.provider.mjs +25 -0
  26. package/esm2020/config/providers/route.provider.mjs +24 -0
  27. package/esm2020/config/providers/shelf-placement-route.provider.mjs +25 -0
  28. package/esm2020/config/providers/shelf-transfer-route.provider.mjs +25 -0
  29. package/esm2020/config/providers/shortages-route.provider.mjs +25 -0
  30. package/esm2020/config/providers/station.provider.mjs +25 -0
  31. package/esm2020/config/providers/stock-report.mjs +25 -0
  32. package/esm2020/config/public-api.mjs +4 -0
  33. package/esm2020/config/smart-warehouse-config.module.mjs +37 -0
  34. package/esm2020/hitsoft-smart-warehouse.mjs +5 -0
  35. package/esm2020/lib/components/connector-params/connector-params.component.mjs +182 -0
  36. package/esm2020/lib/components/connector-params/connector-params.module.mjs +41 -0
  37. package/esm2020/lib/components/order-station/order-station.component.mjs +160 -0
  38. package/esm2020/lib/components/order-station/order-station.module.mjs +57 -0
  39. package/esm2020/lib/components/orders/orders.component.mjs +445 -0
  40. package/esm2020/lib/components/orders/orders.module.mjs +75 -0
  41. package/esm2020/lib/components/quantity-correction/quantity-correction.component.mjs +231 -0
  42. package/esm2020/lib/components/quantity-correction/quantity-correction.module.mjs +41 -0
  43. package/esm2020/lib/components/shelf-placement/shelf-placement.component.mjs +297 -0
  44. package/esm2020/lib/components/shelf-placement/shelf-placement.module.mjs +66 -0
  45. package/esm2020/lib/components/shelf-transfer/shelf-transfer.component.mjs +146 -0
  46. package/esm2020/lib/components/shelf-transfer/shelf-transfer.module.mjs +41 -0
  47. package/esm2020/lib/components/shortages/shortages.component.mjs +75 -0
  48. package/esm2020/lib/components/shortages/shortages.module.mjs +42 -0
  49. package/esm2020/lib/components/smart-warehouse.component.mjs +18 -0
  50. package/esm2020/lib/components/stock-report/stock-report.component.mjs +29 -0
  51. package/esm2020/lib/components/stock-report/stock-report.module.mjs +42 -0
  52. package/esm2020/lib/guards/connector-params.guard.mjs +58 -0
  53. package/esm2020/lib/hit-proxy/connector-params/connector-params.service.mjs +27 -0
  54. package/esm2020/lib/hit-proxy/devexpress-query-builder/devexpress-load-options.model.mjs +2 -0
  55. package/esm2020/lib/hit-proxy/devexpress-query-builder/devexpress-query-builder.mjs +62 -0
  56. package/esm2020/lib/hit-proxy/inventory/inventory.service.mjs +21 -0
  57. package/esm2020/lib/hit-proxy/order-station/order-station.service.mjs +18 -0
  58. package/esm2020/lib/hit-proxy/orders/model.mjs +2 -0
  59. package/esm2020/lib/hit-proxy/orders/order.service.mjs +81 -0
  60. package/esm2020/lib/hit-proxy/quantity-correction/quantity-correction.service.mjs +47 -0
  61. package/esm2020/lib/hit-proxy/shortages/model.mjs +2 -0
  62. package/esm2020/lib/hit-proxy/shortages/shortages.service.mjs +26 -0
  63. package/esm2020/lib/hit-proxy/stations/station.service.mjs +86 -0
  64. package/esm2020/lib/hit-proxy/stock-report/stock-report.service.mjs +22 -0
  65. package/esm2020/lib/hit-proxy/stock-transfer/stock-transfer.service.mjs +21 -0
  66. package/esm2020/lib/hit-proxy/warehouse/warehouse.service.mjs +65 -0
  67. package/esm2020/lib/services/smart-warehouse.service.mjs +21 -0
  68. package/esm2020/lib/smart-warehouse-routing.module.mjs +79 -0
  69. package/esm2020/lib/smart-warehouse.module.mjs +34 -0
  70. package/esm2020/lib/stations/station.component.mjs +43 -0
  71. package/esm2020/lib/stations/station.module.mjs +42 -0
  72. package/esm2020/public-api.mjs +20 -0
  73. package/fesm2015/hitsoft-smart-warehouse-config.mjs +264 -0
  74. package/fesm2015/hitsoft-smart-warehouse-config.mjs.map +1 -0
  75. package/fesm2015/hitsoft-smart-warehouse.mjs +2577 -0
  76. package/fesm2015/hitsoft-smart-warehouse.mjs.map +1 -0
  77. package/fesm2020/hitsoft-smart-warehouse-config.mjs +264 -0
  78. package/fesm2020/hitsoft-smart-warehouse-config.mjs.map +1 -0
  79. package/fesm2020/hitsoft-smart-warehouse.mjs +2515 -0
  80. package/fesm2020/hitsoft-smart-warehouse.mjs.map +1 -0
  81. package/index.d.ts +5 -0
  82. package/lib/components/connector-params/connector-params.component.d.ts +44 -0
  83. package/lib/components/connector-params/connector-params.module.d.ts +13 -0
  84. package/lib/components/order-station/order-station.component.d.ts +31 -0
  85. package/lib/components/order-station/order-station.module.d.ts +16 -0
  86. package/lib/components/orders/orders.component.d.ts +63 -0
  87. package/lib/components/orders/orders.module.d.ts +17 -0
  88. package/lib/components/quantity-correction/quantity-correction.component.d.ts +52 -0
  89. package/lib/components/quantity-correction/quantity-correction.module.d.ts +16 -0
  90. package/lib/components/shelf-placement/shelf-placement.component.d.ts +93 -0
  91. package/lib/components/shelf-placement/shelf-placement.module.d.ts +17 -0
  92. package/lib/components/shelf-transfer/shelf-transfer.component.d.ts +26 -0
  93. package/lib/components/shelf-transfer/shelf-transfer.module.d.ts +16 -0
  94. package/lib/components/shortages/shortages.component.d.ts +25 -0
  95. package/lib/components/shortages/shortages.module.d.ts +17 -0
  96. package/lib/components/smart-warehouse.component.d.ts +10 -0
  97. package/lib/components/stock-report/stock-report.component.d.ts +16 -0
  98. package/lib/components/stock-report/stock-report.module.d.ts +17 -0
  99. package/lib/guards/connector-params.guard.d.ts +21 -0
  100. package/lib/hit-proxy/connector-params/connector-params.service.d.ts +46 -0
  101. package/lib/hit-proxy/devexpress-query-builder/devexpress-load-options.model.d.ts +8 -0
  102. package/lib/hit-proxy/devexpress-query-builder/devexpress-query-builder.d.ts +17 -0
  103. package/lib/hit-proxy/inventory/inventory.service.d.ts +22 -0
  104. package/lib/hit-proxy/order-station/order-station.service.d.ts +24 -0
  105. package/lib/hit-proxy/orders/model.d.ts +74 -0
  106. package/lib/hit-proxy/orders/order.service.d.ts +26 -0
  107. package/lib/hit-proxy/quantity-correction/quantity-correction.service.d.ts +88 -0
  108. package/lib/hit-proxy/shortages/model.d.ts +17 -0
  109. package/lib/hit-proxy/shortages/shortages.service.d.ts +13 -0
  110. package/lib/hit-proxy/stations/station.service.d.ts +25 -0
  111. package/lib/hit-proxy/stock-report/stock-report.service.d.ts +12 -0
  112. package/lib/hit-proxy/stock-transfer/stock-transfer.service.d.ts +19 -0
  113. package/lib/hit-proxy/warehouse/warehouse.service.d.ts +59 -0
  114. package/lib/services/smart-warehouse.service.d.ts +10 -0
  115. package/lib/smart-warehouse-routing.module.d.ts +7 -0
  116. package/lib/smart-warehouse.module.d.ts +13 -0
  117. package/lib/stations/station.component.d.ts +14 -0
  118. package/lib/stations/station.module.d.ts +17 -0
  119. package/package.json +45 -0
  120. package/public-api.d.ts +16 -0
@@ -0,0 +1,146 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../hit-proxy/warehouse/warehouse.service";
4
+ import * as i2 from "../../hit-proxy/stock-transfer/stock-transfer.service";
5
+ import * as i3 from "@abp/ng.theme.shared";
6
+ import * as i4 from "@angular/common";
7
+ import * as i5 from "@angular/forms";
8
+ import * as i6 from "@abp/ng.components/page";
9
+ export class ShelfTransferComponent {
10
+ constructor(warehouseService, stockTransferService, toasterService) {
11
+ this.warehouseService = warehouseService;
12
+ this.stockTransferService = stockTransferService;
13
+ this.toasterService = toasterService;
14
+ this.sourceBinCode = '';
15
+ this.destinationBinCode = '';
16
+ this.sourceBinAbsEntry = null;
17
+ this.destinationBinAbsEntry = null;
18
+ this.quantity = null;
19
+ this.binContent = null;
20
+ this.isLoadingContent = false;
21
+ this.isLoadingDestination = false;
22
+ this.isSaving = false;
23
+ }
24
+ onSourceBinEnter() {
25
+ this.binContent = null;
26
+ this.sourceBinAbsEntry = null;
27
+ if (!this.sourceBinCode || this.sourceBinCode.trim() === '') {
28
+ return;
29
+ }
30
+ this.isLoadingContent = true;
31
+ this.warehouseService.getBinLocationByBinCode(this.sourceBinCode.trim()).subscribe({
32
+ next: (binLocation) => {
33
+ if (!binLocation) {
34
+ this.toasterService.warn('Depo yeri bulunamad\u0131.');
35
+ this.isLoadingContent = false;
36
+ return;
37
+ }
38
+ this.sourceBinAbsEntry = binLocation.AbsEntry;
39
+ this.loadBinContent(binLocation.AbsEntry);
40
+ },
41
+ error: () => {
42
+ this.toasterService.error('Depo yeri sorgulanamad\u0131.');
43
+ this.isLoadingContent = false;
44
+ },
45
+ });
46
+ }
47
+ onDestinationBinEnter() {
48
+ this.destinationBinAbsEntry = null;
49
+ if (!this.destinationBinCode || this.destinationBinCode.trim() === '') {
50
+ return;
51
+ }
52
+ this.isLoadingDestination = true;
53
+ this.warehouseService.getBinLocationByBinCode(this.destinationBinCode.trim()).subscribe({
54
+ next: (binLocation) => {
55
+ if (!binLocation) {
56
+ this.toasterService.warn('Giri\u015f depo yeri bulunamad\u0131.');
57
+ this.isLoadingDestination = false;
58
+ return;
59
+ }
60
+ this.destinationBinAbsEntry = binLocation.AbsEntry;
61
+ this.isLoadingDestination = false;
62
+ },
63
+ error: () => {
64
+ this.toasterService.error('Giri\u015f depo yeri sorgulanamad\u0131.');
65
+ this.isLoadingDestination = false;
66
+ },
67
+ });
68
+ }
69
+ onSave() {
70
+ if (!this.sourceBinAbsEntry) {
71
+ this.toasterService.warn('\u00c7\u0131k\u0131\u015f raf\u0131 giriniz.');
72
+ return;
73
+ }
74
+ if (!this.binContent) {
75
+ this.toasterService.warn('Se\u00e7ilen rafta kalem bilgisi bulunamad\u0131.');
76
+ return;
77
+ }
78
+ if (!this.destinationBinAbsEntry) {
79
+ this.toasterService.warn('Giri\u015f raf\u0131 giriniz.');
80
+ return;
81
+ }
82
+ if (this.sourceBinAbsEntry === this.destinationBinAbsEntry) {
83
+ this.toasterService.warn('\u00c7\u0131k\u0131\u015f ve giri\u015f raf\u0131 ayn\u0131 olamaz.');
84
+ return;
85
+ }
86
+ if (!this.quantity || this.quantity <= 0) {
87
+ this.toasterService.warn('Ge\u00e7erli bir miktar giriniz.');
88
+ return;
89
+ }
90
+ if (this.quantity > this.binContent.OnHandQty) {
91
+ this.toasterService.warn(`Miktar, mevcut stoktan (${this.binContent.OnHandQty}) fazla olamaz.`);
92
+ return;
93
+ }
94
+ const dto = {
95
+ fromBinAbsEntry: this.sourceBinAbsEntry,
96
+ toBinAbsEntry: this.destinationBinAbsEntry,
97
+ itemCode: this.binContent.ItemCode,
98
+ batchNumber: this.binContent.BatchNumber,
99
+ warehouseCode: this.binContent.WarehouseCode,
100
+ quantity: this.quantity,
101
+ };
102
+ this.isSaving = true;
103
+ this.stockTransferService.createShelfTransfer(dto).subscribe({
104
+ next: (result) => {
105
+ this.toasterService.success(result);
106
+ this.onClear();
107
+ this.isSaving = false;
108
+ },
109
+ error: (error) => {
110
+ const errorMessage = error?.error?.error?.message || '\u0130\u015flem s\u0131ras\u0131nda bir hata olu\u015ftu.';
111
+ this.toasterService.error(errorMessage);
112
+ this.isSaving = false;
113
+ },
114
+ });
115
+ }
116
+ onClear() {
117
+ this.sourceBinCode = '';
118
+ this.destinationBinCode = '';
119
+ this.sourceBinAbsEntry = null;
120
+ this.destinationBinAbsEntry = null;
121
+ this.quantity = null;
122
+ this.binContent = null;
123
+ }
124
+ loadBinContent(binAbsEntry) {
125
+ this.warehouseService.getBinLocationContent(binAbsEntry).subscribe({
126
+ next: (data) => {
127
+ this.binContent = data || null;
128
+ this.isLoadingContent = false;
129
+ if (!data) {
130
+ this.toasterService.warn('Bu depo yerinde kalem bulunamad\u0131.');
131
+ }
132
+ },
133
+ error: () => {
134
+ this.toasterService.error('Depo yeri i\u00e7eri\u011fi y\u00fcklenemedi.');
135
+ this.isLoadingContent = false;
136
+ },
137
+ });
138
+ }
139
+ }
140
+ ShelfTransferComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ShelfTransferComponent, deps: [{ token: i1.WarehouseService }, { token: i2.StockTransferService }, { token: i3.ToasterService }], target: i0.ɵɵFactoryTarget.Component });
141
+ ShelfTransferComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ShelfTransferComponent, selector: "lib-shelf-transfer", ngImport: i0, template: "<abp-page [title]=\"'Raf Transfer'\">\r\n <div class=\"shelf-transfer-container\">\r\n <div class=\"shelf-transfer-layout\">\r\n <div class=\"shelf-form-card\">\r\n\r\n <!-- \u00C7\u0131k\u0131\u015F Raf\u0131 -->\r\n <div class=\"form-section\">\r\n <label class=\"section-label\" for=\"sourceBinInput\">\u00C7\u0131k\u0131\u015F Raf\u0131</label>\r\n <input type=\"text\" class=\"form-control form-input\" id=\"sourceBinInput\"\r\n [(ngModel)]=\"sourceBinCode\"\r\n (keydown.enter)=\"onSourceBinEnter()\"\r\n (blur)=\"onSourceBinEnter()\"\r\n placeholder=\"Depo yeri kodu girin...\"\r\n [disabled]=\"isLoadingContent\" />\r\n </div>\r\n\r\n <!-- Kalem Bilgisi -->\r\n <div class=\"form-section\" *ngIf=\"isLoadingContent\">\r\n <div class=\"content-loading\">\r\n <i class=\"fa fa-spinner fa-spin\"></i> Kalem bilgisi y\u00FCkleniyor...\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-section\" *ngIf=\"binContent && !isLoadingContent\">\r\n <div class=\"bin-content-card\">\r\n <div class=\"content-row\">\r\n <span class=\"content-label\">Kalem Kodu:</span>\r\n <span class=\"content-value\">{{ binContent.ItemCode }}</span>\r\n </div>\r\n <div class=\"content-row\" *ngIf=\"binContent.ItemName\">\r\n <span class=\"content-label\">Kalem Ad\u0131:</span>\r\n <span class=\"content-value\">{{ binContent.ItemName }}</span>\r\n </div>\r\n <div class=\"content-row\">\r\n <span class=\"content-label\">Parti:</span>\r\n <span class=\"content-value\">{{ binContent.BatchNumber }}</span>\r\n </div>\r\n <div class=\"content-row\">\r\n <span class=\"content-label\">Mevcut Miktar:</span>\r\n <span class=\"content-value content-qty\">{{ binContent.OnHandQty }}</span>\r\n </div>\r\n <div class=\"content-row\">\r\n <span class=\"content-label\">Depo:</span>\r\n <span class=\"content-value\">{{ binContent.WarehouseCode }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-section\" *ngIf=\"sourceBinAbsEntry && !binContent && !isLoadingContent\">\r\n <div class=\"bin-content-empty\">\r\n <i class=\"fa fa-info-circle\"></i> Bu depo yerinde kalem bulunamad\u0131.\r\n </div>\r\n </div>\r\n\r\n <hr class=\"form-divider\" />\r\n\r\n <!-- Giri\u015F Raf\u0131 -->\r\n <div class=\"form-section\">\r\n <label class=\"section-label\" for=\"destBinInput\">Giri\u015F Raf\u0131</label>\r\n <input type=\"text\" class=\"form-control form-input\" id=\"destBinInput\"\r\n [(ngModel)]=\"destinationBinCode\"\r\n (keydown.enter)=\"onDestinationBinEnter()\"\r\n (blur)=\"onDestinationBinEnter()\"\r\n placeholder=\"Depo yeri kodu girin...\"\r\n [disabled]=\"isLoadingDestination\" />\r\n <div *ngIf=\"isLoadingDestination\" class=\"content-loading\">\r\n <i class=\"fa fa-spinner fa-spin\"></i> Depo yeri sorgulan\u0131yor...\r\n </div>\r\n </div>\r\n\r\n <hr class=\"form-divider\" />\r\n\r\n <!-- Miktar -->\r\n <div class=\"form-section\">\r\n <label class=\"section-label\" for=\"quantityInput\">Miktar</label>\r\n <input type=\"number\" class=\"form-control form-input\" id=\"quantityInput\"\r\n [(ngModel)]=\"quantity\" (keydown.enter)=\"onSave()\"\r\n placeholder=\"Miktar girin...\" min=\"0\"\r\n [max]=\"binContent?.OnHandQty\" />\r\n </div>\r\n\r\n <hr class=\"form-divider\" />\r\n\r\n <!-- Buttons -->\r\n <div class=\"form-section button-group\">\r\n <button class=\"btn btn-action-success btn-sm\" (click)=\"onSave()\"\r\n [disabled]=\"isSaving || !sourceBinAbsEntry || !destinationBinAbsEntry || !quantity || !binContent\">\r\n <i class=\"fa\" [ngClass]=\"isSaving ? 'fa-spinner fa-spin' : 'fa-save'\"></i>\r\n {{ isSaving ? 'Kaydediliyor...' : 'Kaydet' }}\r\n </button>\r\n <button class=\"btn btn-action-outline btn-sm\" (click)=\"onClear()\" [disabled]=\"isSaving\">\r\n <i class=\"fa fa-eraser\"></i> Temizle\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [".shelf-transfer-container{width:100%}.shelf-transfer-layout{display:flex;justify-content:center;align-items:flex-start}.shelf-form-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px 24px;box-shadow:0 1px 3px #0000000f;width:500px;max-width:100%}.form-divider{border:none;border-top:1px solid #eee;margin:14px 0}.form-section{margin-bottom:12px}.section-label{display:block;font-size:11px;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.form-dx-select{width:100%}::ng-deep .form-dx-select .dx-texteditor-input{height:40px;font-size:14px}::ng-deep .form-dx-select .dx-dropdowneditor-icon{height:40px}.form-input{height:40px;border:1px solid #ced4da;border-radius:6px;padding:0 12px;font-size:14px;background:#fff;transition:border-color .15s;width:100%}.form-input:focus{border-color:#556ee6;outline:none;box-shadow:0 0 0 2px #556ee626}.bin-content-card{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;padding:12px 16px}.content-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid #eee}.content-row:last-child{border-bottom:none}.content-label{font-size:12px;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.3px}.content-value{font-size:14px;font-weight:500;color:#333}.content-qty{color:#34c38f;font-weight:700;font-size:16px}.content-loading{padding:12px 0;color:#6c757d;font-size:13px}.content-loading i{color:#556ee6;margin-right:6px}.bin-content-empty{background:#fff3cd;border:1px solid #ffc107;border-radius:6px;padding:10px 14px;font-size:13px;color:#856404}.bin-content-empty i{margin-right:4px}.button-group{display:flex;gap:10px;margin-top:4px;flex-wrap:wrap}.button-group .btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;padding:8px 20px;border-radius:6px;font-weight:500;white-space:nowrap;transition:all .15s;flex:1 1 0;justify-content:center;min-width:120px}.btn-action-success{background:#34c38f;color:#fff;border:none}.btn-action-success:hover{background:#2ca67a;color:#fff}.btn-action-success:disabled{background:#9dd3bd;color:#fff;cursor:not-allowed}.btn-action-outline{background:transparent;color:#556ee6;border:1px solid #556ee6}.btn-action-outline:hover{background:#556ee6;color:#fff}.loading-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:9999}.loading-spinner{background:#fff;padding:40px 60px;border-radius:8px;box-shadow:0 10px 40px #0000004d;text-align:center}.loading-spinner i{color:#556ee6}.loading-spinner p{margin:0;font-size:16px;font-weight:500;color:#495057}@media (max-width: 768px){.shelf-form-card{padding:16px;width:100%}.button-group{flex-direction:column}.button-group .btn{font-size:12px;padding:7px 14px;width:100%;flex:1 1 auto}}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i5.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }] });
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ShelfTransferComponent, decorators: [{
143
+ type: Component,
144
+ args: [{ selector: 'lib-shelf-transfer', template: "<abp-page [title]=\"'Raf Transfer'\">\r\n <div class=\"shelf-transfer-container\">\r\n <div class=\"shelf-transfer-layout\">\r\n <div class=\"shelf-form-card\">\r\n\r\n <!-- \u00C7\u0131k\u0131\u015F Raf\u0131 -->\r\n <div class=\"form-section\">\r\n <label class=\"section-label\" for=\"sourceBinInput\">\u00C7\u0131k\u0131\u015F Raf\u0131</label>\r\n <input type=\"text\" class=\"form-control form-input\" id=\"sourceBinInput\"\r\n [(ngModel)]=\"sourceBinCode\"\r\n (keydown.enter)=\"onSourceBinEnter()\"\r\n (blur)=\"onSourceBinEnter()\"\r\n placeholder=\"Depo yeri kodu girin...\"\r\n [disabled]=\"isLoadingContent\" />\r\n </div>\r\n\r\n <!-- Kalem Bilgisi -->\r\n <div class=\"form-section\" *ngIf=\"isLoadingContent\">\r\n <div class=\"content-loading\">\r\n <i class=\"fa fa-spinner fa-spin\"></i> Kalem bilgisi y\u00FCkleniyor...\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-section\" *ngIf=\"binContent && !isLoadingContent\">\r\n <div class=\"bin-content-card\">\r\n <div class=\"content-row\">\r\n <span class=\"content-label\">Kalem Kodu:</span>\r\n <span class=\"content-value\">{{ binContent.ItemCode }}</span>\r\n </div>\r\n <div class=\"content-row\" *ngIf=\"binContent.ItemName\">\r\n <span class=\"content-label\">Kalem Ad\u0131:</span>\r\n <span class=\"content-value\">{{ binContent.ItemName }}</span>\r\n </div>\r\n <div class=\"content-row\">\r\n <span class=\"content-label\">Parti:</span>\r\n <span class=\"content-value\">{{ binContent.BatchNumber }}</span>\r\n </div>\r\n <div class=\"content-row\">\r\n <span class=\"content-label\">Mevcut Miktar:</span>\r\n <span class=\"content-value content-qty\">{{ binContent.OnHandQty }}</span>\r\n </div>\r\n <div class=\"content-row\">\r\n <span class=\"content-label\">Depo:</span>\r\n <span class=\"content-value\">{{ binContent.WarehouseCode }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-section\" *ngIf=\"sourceBinAbsEntry && !binContent && !isLoadingContent\">\r\n <div class=\"bin-content-empty\">\r\n <i class=\"fa fa-info-circle\"></i> Bu depo yerinde kalem bulunamad\u0131.\r\n </div>\r\n </div>\r\n\r\n <hr class=\"form-divider\" />\r\n\r\n <!-- Giri\u015F Raf\u0131 -->\r\n <div class=\"form-section\">\r\n <label class=\"section-label\" for=\"destBinInput\">Giri\u015F Raf\u0131</label>\r\n <input type=\"text\" class=\"form-control form-input\" id=\"destBinInput\"\r\n [(ngModel)]=\"destinationBinCode\"\r\n (keydown.enter)=\"onDestinationBinEnter()\"\r\n (blur)=\"onDestinationBinEnter()\"\r\n placeholder=\"Depo yeri kodu girin...\"\r\n [disabled]=\"isLoadingDestination\" />\r\n <div *ngIf=\"isLoadingDestination\" class=\"content-loading\">\r\n <i class=\"fa fa-spinner fa-spin\"></i> Depo yeri sorgulan\u0131yor...\r\n </div>\r\n </div>\r\n\r\n <hr class=\"form-divider\" />\r\n\r\n <!-- Miktar -->\r\n <div class=\"form-section\">\r\n <label class=\"section-label\" for=\"quantityInput\">Miktar</label>\r\n <input type=\"number\" class=\"form-control form-input\" id=\"quantityInput\"\r\n [(ngModel)]=\"quantity\" (keydown.enter)=\"onSave()\"\r\n placeholder=\"Miktar girin...\" min=\"0\"\r\n [max]=\"binContent?.OnHandQty\" />\r\n </div>\r\n\r\n <hr class=\"form-divider\" />\r\n\r\n <!-- Buttons -->\r\n <div class=\"form-section button-group\">\r\n <button class=\"btn btn-action-success btn-sm\" (click)=\"onSave()\"\r\n [disabled]=\"isSaving || !sourceBinAbsEntry || !destinationBinAbsEntry || !quantity || !binContent\">\r\n <i class=\"fa\" [ngClass]=\"isSaving ? 'fa-spinner fa-spin' : 'fa-save'\"></i>\r\n {{ isSaving ? 'Kaydediliyor...' : 'Kaydet' }}\r\n </button>\r\n <button class=\"btn btn-action-outline btn-sm\" (click)=\"onClear()\" [disabled]=\"isSaving\">\r\n <i class=\"fa fa-eraser\"></i> Temizle\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [".shelf-transfer-container{width:100%}.shelf-transfer-layout{display:flex;justify-content:center;align-items:flex-start}.shelf-form-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px 24px;box-shadow:0 1px 3px #0000000f;width:500px;max-width:100%}.form-divider{border:none;border-top:1px solid #eee;margin:14px 0}.form-section{margin-bottom:12px}.section-label{display:block;font-size:11px;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.form-dx-select{width:100%}::ng-deep .form-dx-select .dx-texteditor-input{height:40px;font-size:14px}::ng-deep .form-dx-select .dx-dropdowneditor-icon{height:40px}.form-input{height:40px;border:1px solid #ced4da;border-radius:6px;padding:0 12px;font-size:14px;background:#fff;transition:border-color .15s;width:100%}.form-input:focus{border-color:#556ee6;outline:none;box-shadow:0 0 0 2px #556ee626}.bin-content-card{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;padding:12px 16px}.content-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid #eee}.content-row:last-child{border-bottom:none}.content-label{font-size:12px;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.3px}.content-value{font-size:14px;font-weight:500;color:#333}.content-qty{color:#34c38f;font-weight:700;font-size:16px}.content-loading{padding:12px 0;color:#6c757d;font-size:13px}.content-loading i{color:#556ee6;margin-right:6px}.bin-content-empty{background:#fff3cd;border:1px solid #ffc107;border-radius:6px;padding:10px 14px;font-size:13px;color:#856404}.bin-content-empty i{margin-right:4px}.button-group{display:flex;gap:10px;margin-top:4px;flex-wrap:wrap}.button-group .btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;padding:8px 20px;border-radius:6px;font-weight:500;white-space:nowrap;transition:all .15s;flex:1 1 0;justify-content:center;min-width:120px}.btn-action-success{background:#34c38f;color:#fff;border:none}.btn-action-success:hover{background:#2ca67a;color:#fff}.btn-action-success:disabled{background:#9dd3bd;color:#fff;cursor:not-allowed}.btn-action-outline{background:transparent;color:#556ee6;border:1px solid #556ee6}.btn-action-outline:hover{background:#556ee6;color:#fff}.loading-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:9999}.loading-spinner{background:#fff;padding:40px 60px;border-radius:8px;box-shadow:0 10px 40px #0000004d;text-align:center}.loading-spinner i{color:#556ee6}.loading-spinner p{margin:0;font-size:16px;font-weight:500;color:#495057}@media (max-width: 768px){.shelf-form-card{padding:16px;width:100%}.button-group{flex-direction:column}.button-group .btn{font-size:12px;padding:7px 14px;width:100%;flex:1 1 auto}}\n"] }]
145
+ }], ctorParameters: function () { return [{ type: i1.WarehouseService }, { type: i2.StockTransferService }, { type: i3.ToasterService }]; } });
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGYtdHJhbnNmZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtd2FyZWhvdXNlL3NyYy9saWIvY29tcG9uZW50cy9zaGVsZi10cmFuc2Zlci9zaGVsZi10cmFuc2Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC13YXJlaG91c2Uvc3JjL2xpYi9jb21wb25lbnRzL3NoZWxmLXRyYW5zZmVyL3NoZWxmLXRyYW5zZmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBVTFDLE1BQU0sT0FBTyxzQkFBc0I7SUFhL0IsWUFDWSxnQkFBa0MsRUFDbEMsb0JBQTBDLEVBQzFDLGNBQThCO1FBRjlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFmMUMsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLHNCQUFpQixHQUFrQixJQUFJLENBQUM7UUFDeEMsMkJBQXNCLEdBQWtCLElBQUksQ0FBQztRQUM3QyxhQUFRLEdBQWtCLElBQUksQ0FBQztRQUUvQixlQUFVLEdBQWlDLElBQUksQ0FBQztRQUVoRCxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBQ3RDLGFBQVEsR0FBWSxLQUFLLENBQUM7SUFNdkIsQ0FBQztJQUVKLGdCQUFnQjtRQUNaLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFFOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDekQsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMvRSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO29CQUN2RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO29CQUM5QixPQUFPO2lCQUNWO2dCQUNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDUixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBQ2xDLENBQUM7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFFbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ25FLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNwRixJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO29CQUNsRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO29CQUNsQyxPQUFPO2lCQUNWO2dCQUNELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO2dCQUNuRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1lBQ3RDLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7WUFDdEMsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1lBQ3pFLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLG1EQUFtRCxDQUFDLENBQUM7WUFDOUUsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1lBQzFELE9BQU87U0FDVjtRQUNELElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO1lBQ2hHLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7WUFDN0QsT0FBTztTQUNWO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFO1lBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLDJCQUEyQixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsaUJBQWlCLENBQUMsQ0FBQztZQUNoRyxPQUFPO1NBQ1Y7UUFFRCxNQUFNLEdBQUcsR0FBcUI7WUFDMUIsZUFBZSxFQUFFLElBQUksQ0FBQyxpQkFBaUI7WUFDdkMsYUFBYSxFQUFFLElBQUksQ0FBQyxzQkFBc0I7WUFDMUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUTtZQUNsQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXO1lBQ3hDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWE7WUFDNUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQzFCLENBQUM7UUFFRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pELElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDMUIsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNiLE1BQU0sWUFBWSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSwyREFBMkQsQ0FBQztnQkFDakgsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQzFCLENBQUM7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFTyxjQUFjLENBQUMsV0FBbUI7UUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMvRCxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxJQUFJLEVBQUU7b0JBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsd0NBQXdDLENBQUMsQ0FBQztpQkFDdEU7WUFDTCxDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDUixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO2dCQUMzRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBQ2xDLENBQUM7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDOzttSEEvSVEsc0JBQXNCO3VHQUF0QixzQkFBc0IsMERDVm5DLGtrSkFrR0E7MkZEeEZhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDSSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgV2FyZWhvdXNlU2VydmljZSwgQmluTG9jYXRpb25Db250ZW50RHRvIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L3dhcmVob3VzZS93YXJlaG91c2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b2NrVHJhbnNmZXJTZXJ2aWNlLCBTaGVsZlRyYW5zZmVyRHRvIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L3N0b2NrLXRyYW5zZmVyL3N0b2NrLXRyYW5zZmVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsaWItc2hlbGYtdHJhbnNmZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NoZWxmLXRyYW5zZmVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3NoZWxmLXRyYW5zZmVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGVsZlRyYW5zZmVyQ29tcG9uZW50IHtcclxuICAgIHNvdXJjZUJpbkNvZGU6IHN0cmluZyA9ICcnO1xyXG4gICAgZGVzdGluYXRpb25CaW5Db2RlOiBzdHJpbmcgPSAnJztcclxuICAgIHNvdXJjZUJpbkFic0VudHJ5OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICAgIGRlc3RpbmF0aW9uQmluQWJzRW50cnk6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gICAgcXVhbnRpdHk6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIGJpbkNvbnRlbnQ6IEJpbkxvY2F0aW9uQ29udGVudER0byB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIGlzTG9hZGluZ0NvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlzTG9hZGluZ0Rlc3RpbmF0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpc1NhdmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgd2FyZWhvdXNlU2VydmljZTogV2FyZWhvdXNlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHN0b2NrVHJhbnNmZXJTZXJ2aWNlOiBTdG9ja1RyYW5zZmVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZVxyXG4gICAgKSB7fVxyXG5cclxuICAgIG9uU291cmNlQmluRW50ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5iaW5Db250ZW50ID0gbnVsbDtcclxuICAgICAgICB0aGlzLnNvdXJjZUJpbkFic0VudHJ5ID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnNvdXJjZUJpbkNvZGUgfHwgdGhpcy5zb3VyY2VCaW5Db2RlLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdDb250ZW50ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLndhcmVob3VzZVNlcnZpY2UuZ2V0QmluTG9jYXRpb25CeUJpbkNvZGUodGhpcy5zb3VyY2VCaW5Db2RlLnRyaW0oKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKGJpbkxvY2F0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWJpbkxvY2F0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS53YXJuKCdEZXBvIHllcmkgYnVsdW5hbWFkXFx1MDEzMS4nKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZ0NvbnRlbnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZUJpbkFic0VudHJ5ID0gYmluTG9jYXRpb24uQWJzRW50cnk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRCaW5Db250ZW50KGJpbkxvY2F0aW9uLkFic0VudHJ5KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoJ0RlcG8geWVyaSBzb3JndWxhbmFtYWRcXHUwMTMxLicpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdDb250ZW50ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25EZXN0aW5hdGlvbkJpbkVudGVyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdGluYXRpb25CaW5BYnNFbnRyeSA9IG51bGw7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5kZXN0aW5hdGlvbkJpbkNvZGUgfHwgdGhpcy5kZXN0aW5hdGlvbkJpbkNvZGUudHJpbSgpID09PSAnJykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmlzTG9hZGluZ0Rlc3RpbmF0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLndhcmVob3VzZVNlcnZpY2UuZ2V0QmluTG9jYXRpb25CeUJpbkNvZGUodGhpcy5kZXN0aW5hdGlvbkJpbkNvZGUudHJpbSgpKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAoYmluTG9jYXRpb24pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghYmluTG9jYXRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLndhcm4oJ0dpcmlcXHUwMTVmIGRlcG8geWVyaSBidWx1bmFtYWRcXHUwMTMxLicpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nRGVzdGluYXRpb24gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uQmluQWJzRW50cnkgPSBiaW5Mb2NhdGlvbi5BYnNFbnRyeTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nRGVzdGluYXRpb24gPSBmYWxzZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoJ0dpcmlcXHUwMTVmIGRlcG8geWVyaSBzb3JndWxhbmFtYWRcXHUwMTMxLicpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdEZXN0aW5hdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2F2ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuc291cmNlQmluQWJzRW50cnkpIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS53YXJuKCdcXHUwMGM3XFx1MDEzMWtcXHUwMTMxXFx1MDE1ZiByYWZcXHUwMTMxIGdpcmluaXouJyk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmJpbkNvbnRlbnQpIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS53YXJuKCdTZVxcdTAwZTdpbGVuIHJhZnRhIGthbGVtIGJpbGdpc2kgYnVsdW5hbWFkXFx1MDEzMS4nKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMuZGVzdGluYXRpb25CaW5BYnNFbnRyeSkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLndhcm4oJ0dpcmlcXHUwMTVmIHJhZlxcdTAxMzEgZ2lyaW5pei4nKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5zb3VyY2VCaW5BYnNFbnRyeSA9PT0gdGhpcy5kZXN0aW5hdGlvbkJpbkFic0VudHJ5KSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uud2FybignXFx1MDBjN1xcdTAxMzFrXFx1MDEzMVxcdTAxNWYgdmUgZ2lyaVxcdTAxNWYgcmFmXFx1MDEzMSBheW5cXHUwMTMxIG9sYW1hei4nKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMucXVhbnRpdHkgfHwgdGhpcy5xdWFudGl0eSA8PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uud2FybignR2VcXHUwMGU3ZXJsaSBiaXIgbWlrdGFyIGdpcmluaXouJyk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMucXVhbnRpdHkgPiB0aGlzLmJpbkNvbnRlbnQuT25IYW5kUXR5KSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uud2FybihgTWlrdGFyLCBtZXZjdXQgc3Rva3RhbiAoJHt0aGlzLmJpbkNvbnRlbnQuT25IYW5kUXR5fSkgZmF6bGEgb2xhbWF6LmApO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBkdG86IFNoZWxmVHJhbnNmZXJEdG8gPSB7XHJcbiAgICAgICAgICAgIGZyb21CaW5BYnNFbnRyeTogdGhpcy5zb3VyY2VCaW5BYnNFbnRyeSxcclxuICAgICAgICAgICAgdG9CaW5BYnNFbnRyeTogdGhpcy5kZXN0aW5hdGlvbkJpbkFic0VudHJ5LFxyXG4gICAgICAgICAgICBpdGVtQ29kZTogdGhpcy5iaW5Db250ZW50Lkl0ZW1Db2RlLFxyXG4gICAgICAgICAgICBiYXRjaE51bWJlcjogdGhpcy5iaW5Db250ZW50LkJhdGNoTnVtYmVyLFxyXG4gICAgICAgICAgICB3YXJlaG91c2VDb2RlOiB0aGlzLmJpbkNvbnRlbnQuV2FyZWhvdXNlQ29kZSxcclxuICAgICAgICAgICAgcXVhbnRpdHk6IHRoaXMucXVhbnRpdHksXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5pc1NhdmluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zdG9ja1RyYW5zZmVyU2VydmljZS5jcmVhdGVTaGVsZlRyYW5zZmVyKGR0bykuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2xlYXIoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3I/LmVycm9yPy5lcnJvcj8ubWVzc2FnZSB8fCAnXFx1MDEzMFxcdTAxNWZsZW0gc1xcdTAxMzFyYXNcXHUwMTMxbmRhIGJpciBoYXRhIG9sdVxcdTAxNWZ0dS4nO1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihlcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xlYXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zb3VyY2VCaW5Db2RlID0gJyc7XHJcbiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbkJpbkNvZGUgPSAnJztcclxuICAgICAgICB0aGlzLnNvdXJjZUJpbkFic0VudHJ5ID0gbnVsbDtcclxuICAgICAgICB0aGlzLmRlc3RpbmF0aW9uQmluQWJzRW50cnkgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucXVhbnRpdHkgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuYmluQ29udGVudCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBsb2FkQmluQ29udGVudChiaW5BYnNFbnRyeTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy53YXJlaG91c2VTZXJ2aWNlLmdldEJpbkxvY2F0aW9uQ29udGVudChiaW5BYnNFbnRyeSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmluQ29udGVudCA9IGRhdGEgfHwgbnVsbDtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nQ29udGVudCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS53YXJuKCdCdSBkZXBvIHllcmluZGUga2FsZW0gYnVsdW5hbWFkXFx1MDEzMS4nKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoJ0RlcG8geWVyaSBpXFx1MDBlN2VyaVxcdTAxMWZpIHlcXHUwMGZja2xlbmVtZWRpLicpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdDb250ZW50ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInUmFmIFRyYW5zZmVyJ1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJzaGVsZi10cmFuc2Zlci1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaGVsZi10cmFuc2Zlci1sYXlvdXRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNoZWxmLWZvcm0tY2FyZFwiPlxyXG5cclxuICAgICAgICA8IS0tIMOHxLFrxLHFnyBSYWbEsSAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1zZWN0aW9uXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJzZWN0aW9uLWxhYmVsXCIgZm9yPVwic291cmNlQmluSW5wdXRcIj7Dh8Sxa8SxxZ8gUmFmxLE8L2xhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1pbnB1dFwiIGlkPVwic291cmNlQmluSW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic291cmNlQmluQ29kZVwiXHJcbiAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25Tb3VyY2VCaW5FbnRlcigpXCJcclxuICAgICAgICAgICAgICAgICAoYmx1cik9XCJvblNvdXJjZUJpbkVudGVyKClcIlxyXG4gICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRGVwbyB5ZXJpIGtvZHUgZ2lyaW4uLi5cIlxyXG4gICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvYWRpbmdDb250ZW50XCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBLYWxlbSBCaWxnaXNpIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlY3Rpb25cIiAqbmdJZj1cImlzTG9hZGluZ0NvbnRlbnRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWxvYWRpbmdcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zcGlubmVyIGZhLXNwaW5cIj48L2k+IEthbGVtIGJpbGdpc2kgecO8a2xlbml5b3IuLi5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1zZWN0aW9uXCIgKm5nSWY9XCJiaW5Db250ZW50ICYmICFpc0xvYWRpbmdDb250ZW50XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmluLWNvbnRlbnQtY2FyZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1yb3dcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbnRlbnQtbGFiZWxcIj5LYWxlbSBLb2R1Ojwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbnRlbnQtdmFsdWVcIj57eyBiaW5Db250ZW50Lkl0ZW1Db2RlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtcm93XCIgKm5nSWY9XCJiaW5Db250ZW50Lkl0ZW1OYW1lXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb250ZW50LWxhYmVsXCI+S2FsZW0gQWTEsTo8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb250ZW50LXZhbHVlXCI+e3sgYmluQ29udGVudC5JdGVtTmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LXJvd1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29udGVudC1sYWJlbFwiPlBhcnRpOjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbnRlbnQtdmFsdWVcIj57eyBiaW5Db250ZW50LkJhdGNoTnVtYmVyIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtcm93XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb250ZW50LWxhYmVsXCI+TWV2Y3V0IE1pa3Rhcjo8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb250ZW50LXZhbHVlIGNvbnRlbnQtcXR5XCI+e3sgYmluQ29udGVudC5PbkhhbmRRdHkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1yb3dcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbnRlbnQtbGFiZWxcIj5EZXBvOjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbnRlbnQtdmFsdWVcIj57eyBiaW5Db250ZW50LldhcmVob3VzZUNvZGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlY3Rpb25cIiAqbmdJZj1cInNvdXJjZUJpbkFic0VudHJ5ICYmICFiaW5Db250ZW50ICYmICFpc0xvYWRpbmdDb250ZW50XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmluLWNvbnRlbnQtZW1wdHlcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1pbmZvLWNpcmNsZVwiPjwvaT4gQnUgZGVwbyB5ZXJpbmRlIGthbGVtIGJ1bHVuYW1hZMSxLlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxociBjbGFzcz1cImZvcm0tZGl2aWRlclwiIC8+XHJcblxyXG4gICAgICAgIDwhLS0gR2lyacWfIFJhZsSxIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlY3Rpb25cIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInNlY3Rpb24tbGFiZWxcIiBmb3I9XCJkZXN0QmluSW5wdXRcIj5HaXJpxZ8gUmFmxLE8L2xhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1pbnB1dFwiIGlkPVwiZGVzdEJpbklucHV0XCJcclxuICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRlc3RpbmF0aW9uQmluQ29kZVwiXHJcbiAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25EZXN0aW5hdGlvbkJpbkVudGVyKClcIlxyXG4gICAgICAgICAgICAgICAgIChibHVyKT1cIm9uRGVzdGluYXRpb25CaW5FbnRlcigpXCJcclxuICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkRlcG8geWVyaSBrb2R1IGdpcmluLi4uXCJcclxuICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nRGVzdGluYXRpb25cIiAvPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ0Rlc3RpbmF0aW9uXCIgY2xhc3M9XCJjb250ZW50LWxvYWRpbmdcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zcGlubmVyIGZhLXNwaW5cIj48L2k+IERlcG8geWVyaSBzb3JndWxhbsSxeW9yLi4uXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGhyIGNsYXNzPVwiZm9ybS1kaXZpZGVyXCIgLz5cclxuXHJcbiAgICAgICAgPCEtLSBNaWt0YXIgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VjdGlvblwiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwic2VjdGlvbi1sYWJlbFwiIGZvcj1cInF1YW50aXR5SW5wdXRcIj5NaWt0YXI8L2xhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWlucHV0XCIgaWQ9XCJxdWFudGl0eUlucHV0XCJcclxuICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInF1YW50aXR5XCIgKGtleWRvd24uZW50ZXIpPVwib25TYXZlKClcIlxyXG4gICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTWlrdGFyIGdpcmluLi4uXCIgbWluPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgW21heF09XCJiaW5Db250ZW50Py5PbkhhbmRRdHlcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8aHIgY2xhc3M9XCJmb3JtLWRpdmlkZXJcIiAvPlxyXG5cclxuICAgICAgICA8IS0tIEJ1dHRvbnMgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VjdGlvbiBidXR0b24tZ3JvdXBcIj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWFjdGlvbi1zdWNjZXNzIGJ0bi1zbVwiIChjbGljayk9XCJvblNhdmUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1NhdmluZyB8fCAhc291cmNlQmluQWJzRW50cnkgfHwgIWRlc3RpbmF0aW9uQmluQWJzRW50cnkgfHwgIXF1YW50aXR5IHx8ICFiaW5Db250ZW50XCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFcIiBbbmdDbGFzc109XCJpc1NhdmluZyA/ICdmYS1zcGlubmVyIGZhLXNwaW4nIDogJ2ZhLXNhdmUnXCI+PC9pPlxyXG4gICAgICAgICAgICB7eyBpc1NhdmluZyA/ICdLYXlkZWRpbGl5b3IuLi4nIDogJ0theWRldCcgfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tYWN0aW9uLW91dGxpbmUgYnRuLXNtXCIgKGNsaWNrKT1cIm9uQ2xlYXIoKVwiIFtkaXNhYmxlZF09XCJpc1NhdmluZ1wiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVyYXNlclwiPjwvaT4gVGVtaXpsZVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+XHJcbiJdfQ==
@@ -0,0 +1,41 @@
1
+ import { CoreModule } from '@abp/ng.core';
2
+ import { ThemeSharedModule } from '@abp/ng.theme.shared';
3
+ import { NgModule } from '@angular/core';
4
+ import { FormsModule } from '@angular/forms';
5
+ import { RouterModule } from '@angular/router';
6
+ import { NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
7
+ import { NgxValidateCoreModule } from '@ngx-validate/core';
8
+ import { CommercialUiModule } from '@volo/abp.commercial.ng.ui';
9
+ import { PageModule } from '@abp/ng.components/page';
10
+ import { ShelfTransferComponent } from './shelf-transfer.component';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/router";
13
+ const routes = [
14
+ { path: '', component: ShelfTransferComponent },
15
+ ];
16
+ export class ShelfTransferModule {
17
+ }
18
+ ShelfTransferModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ShelfTransferModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
+ ShelfTransferModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ShelfTransferModule, declarations: [ShelfTransferComponent], imports: [CoreModule, ThemeSharedModule, FormsModule, CommercialUiModule,
20
+ NgxValidateCoreModule, NgbCollapseModule, NgbDatepickerModule,
21
+ NgbDropdownModule, PageModule, i1.RouterModule] });
22
+ ShelfTransferModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ShelfTransferModule, imports: [CoreModule, ThemeSharedModule, FormsModule, CommercialUiModule,
23
+ NgxValidateCoreModule, NgbCollapseModule, NgbDatepickerModule,
24
+ NgbDropdownModule, PageModule,
25
+ RouterModule.forChild(routes)] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ShelfTransferModule, decorators: [{
27
+ type: NgModule,
28
+ args: [{
29
+ declarations: [ShelfTransferComponent],
30
+ imports: [
31
+ CoreModule, ThemeSharedModule, FormsModule, CommercialUiModule,
32
+ NgxValidateCoreModule, NgbCollapseModule, NgbDatepickerModule,
33
+ NgbDropdownModule, PageModule,
34
+ RouterModule.forChild(routes),
35
+ ],
36
+ }]
37
+ }] });
38
+ export function loadShelfTransferModuleAsChild() {
39
+ return Promise.resolve(ShelfTransferModule);
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGYtdHJhbnNmZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtd2FyZWhvdXNlL3NyYy9saWIvY29tcG9uZW50cy9zaGVsZi10cmFuc2Zlci9zaGVsZi10cmFuc2Zlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFcEUsTUFBTSxNQUFNLEdBQVc7SUFDbkIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRTtDQUNsRCxDQUFDO0FBV0YsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQVJiLHNCQUFzQixhQUVqQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQjtRQUM5RCxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUI7UUFDN0QsaUJBQWlCLEVBQUUsVUFBVTtpSEFJeEIsbUJBQW1CLFlBTnhCLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsa0JBQWtCO1FBQzlELHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQjtRQUM3RCxpQkFBaUIsRUFBRSxVQUFVO1FBQzdCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDOzJGQUd4QixtQkFBbUI7a0JBVC9CLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ3RDLE9BQU8sRUFBRTt3QkFDTCxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQjt3QkFDOUQscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CO3dCQUM3RCxpQkFBaUIsRUFBRSxVQUFVO3dCQUM3QixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztxQkFDaEM7aUJBQ0o7O0FBR0QsTUFBTSxVQUFVLDhCQUE4QjtJQUMxQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOZ2JDb2xsYXBzZU1vZHVsZSwgTmdiRGF0ZXBpY2tlck1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XHJcbmltcG9ydCB7IENvbW1lcmNpYWxVaU1vZHVsZSB9IGZyb20gJ0B2b2xvL2FicC5jb21tZXJjaWFsLm5nLnVpJztcclxuaW1wb3J0IHsgUGFnZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29tcG9uZW50cy9wYWdlJztcclxuaW1wb3J0IHsgU2hlbGZUcmFuc2ZlckNvbXBvbmVudCB9IGZyb20gJy4vc2hlbGYtdHJhbnNmZXIuY29tcG9uZW50JztcclxuXHJcbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xyXG4gICAgeyBwYXRoOiAnJywgY29tcG9uZW50OiBTaGVsZlRyYW5zZmVyQ29tcG9uZW50IH0sXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbU2hlbGZUcmFuc2ZlckNvbXBvbmVudF0sXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29yZU1vZHVsZSwgVGhlbWVTaGFyZWRNb2R1bGUsIEZvcm1zTW9kdWxlLCBDb21tZXJjaWFsVWlNb2R1bGUsXHJcbiAgICAgICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLCBOZ2JDb2xsYXBzZU1vZHVsZSwgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICAgICAgICBOZ2JEcm9wZG93bk1vZHVsZSwgUGFnZU1vZHVsZSxcclxuICAgICAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGVsZlRyYW5zZmVyTW9kdWxlIHt9XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZFNoZWxmVHJhbnNmZXJNb2R1bGVBc0NoaWxkKCkge1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShTaGVsZlRyYW5zZmVyTW9kdWxlKTtcclxufVxyXG4iXX0=
@@ -0,0 +1,75 @@
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../hit-proxy/shortages/shortages.service";
4
+ import * as i2 from "@abp/ng.theme.shared";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "@abp/ng.components/page";
7
+ import * as i5 from "devextreme-angular";
8
+ import * as i6 from "devextreme-angular/ui/nested";
9
+ export class ShortagesComponent {
10
+ constructor(shortagesService, toasterService) {
11
+ this.shortagesService = shortagesService;
12
+ this.toasterService = toasterService;
13
+ this.viewMode = 'detay';
14
+ this.activeOrderType = null; // null = tümü, '1' | '2' | '3'
15
+ this.detailDataSource = [];
16
+ this.summaryDataSource = [];
17
+ this.isLoading = false;
18
+ }
19
+ ngOnInit() {
20
+ this.load();
21
+ }
22
+ toggleOrderType(key) {
23
+ this.activeOrderType = this.activeOrderType === key ? null : key;
24
+ this.load();
25
+ }
26
+ setViewMode(mode) {
27
+ this.viewMode = mode;
28
+ this.load();
29
+ }
30
+ load() {
31
+ this.isLoading = true;
32
+ if (this.viewMode === 'detay') {
33
+ this.shortagesService.getShortages(this.activeOrderType).subscribe({
34
+ next: (data) => {
35
+ this.detailDataSource = data || [];
36
+ this.isLoading = false;
37
+ },
38
+ error: (error) => {
39
+ const errorMessage = error?.error?.error?.message || 'Fark listesi yüklenirken bir hata oluştu.';
40
+ this.toasterService.error(errorMessage);
41
+ this.isLoading = false;
42
+ },
43
+ });
44
+ }
45
+ else {
46
+ this.shortagesService.getShortagesSummary(this.activeOrderType).subscribe({
47
+ next: (data) => {
48
+ this.summaryDataSource = data || [];
49
+ this.isLoading = false;
50
+ },
51
+ error: (error) => {
52
+ const errorMessage = error?.error?.error?.message || 'Fark özeti yüklenirken bir hata oluştu.';
53
+ this.toasterService.error(errorMessage);
54
+ this.isLoading = false;
55
+ },
56
+ });
57
+ }
58
+ }
59
+ onRefresh() {
60
+ this.load();
61
+ }
62
+ }
63
+ ShortagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ShortagesComponent, deps: [{ token: i1.ShortagesService }, { token: i2.ToasterService }], target: i0.ɵɵFactoryTarget.Component });
64
+ ShortagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ShortagesComponent, selector: "lib-shortages", viewQueries: [{ propertyName: "dxDetailInstance", first: true, predicate: ["dxDetailInstance"], descendants: true }, { propertyName: "dxSummaryInstance", first: true, predicate: ["dxSummaryInstance"], descendants: true }], ngImport: i0, template: "<abp-page [title]=\"'Fark Listesi'\">\n\n <div class=\"mb-3 d-flex flex-wrap align-items-center gap-2\">\n <div class=\"btn-group me-3\" role=\"group\">\n <button\n type=\"button\"\n class=\"btn btn-sm\"\n [ngClass]=\"viewMode === 'detay' ? 'btn-primary' : 'btn-outline-primary'\"\n (click)=\"setViewMode('detay')\"\n >\n Detay (Sipari\u015F Baz\u0131nda)\n </button>\n <button\n type=\"button\"\n class=\"btn btn-sm\"\n [ngClass]=\"viewMode === 'ozet' ? 'btn-primary' : 'btn-outline-primary'\"\n (click)=\"setViewMode('ozet')\"\n >\n \u00D6zet (Kalem Baz\u0131nda)\n </button>\n </div>\n\n <span class=\"badge bg-light text-dark border\" [class.border-primary]=\"!activeOrderType\" style=\"cursor:pointer\" (click)=\"activeOrderType = null; load()\">\n T\u00FCm\u00FC\n </span>\n <span class=\"badge\" [ngClass]=\"activeOrderType === '1' ? 'bg-primary' : 'bg-light text-dark border'\" style=\"cursor:pointer\" (click)=\"toggleOrderType('1')\">\n Sanayi Sipari\u015Fleri\n </span>\n <span class=\"badge\" [ngClass]=\"activeOrderType === '2' ? 'bg-primary' : 'bg-light text-dark border'\" style=\"cursor:pointer\" (click)=\"toggleOrderType('2')\">\n Da\u011F\u0131t\u0131m Sipari\u015Fleri\n </span>\n <span class=\"badge\" [ngClass]=\"activeOrderType === '3' ? 'bg-primary' : 'bg-light text-dark border'\" style=\"cursor:pointer\" (click)=\"toggleOrderType('3')\">\n Depo Talepleri\n </span>\n\n <button class=\"btn btn-sm btn-outline-secondary ms-auto\" (click)=\"onRefresh()\" [disabled]=\"isLoading\">\n <i class=\"fa fa-redo\"></i> Yenile\n </button>\n </div>\n\n <div class=\"card\" *ngIf=\"viewMode === 'detay'\">\n <div class=\"card-body\">\n <dx-data-grid\n #dxDetailInstance\n [dataSource]=\"detailDataSource\"\n [showRowLines]=\"true\"\n [showBorders]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n [allowColumnReordering]=\"true\"\n [columnAutoWidth]=\"true\"\n [columnHidingEnabled]=\"true\"\n style=\"height: 70vh;\"\n >\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[20, 50, 100]\" [showNavigationButtons]=\"true\" [showPageSizeSelector]=\"true\"></dxo-pager>\n <dxo-paging [pageSize]=\"20\"></dxo-paging>\n <dxo-column-chooser [allowSearch]=\"true\" [enabled]=\"true\" mode=\"select\"></dxo-column-chooser>\n <dxo-group-panel [visible]=\"true\" [allowColumnDragging]=\"true\"></dxo-group-panel>\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-export [enabled]=\"true\" [allowExportSelectedData]=\"false\"></dxo-export>\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\n <dxo-sorting mode=\"single\"></dxo-sorting>\n <dxo-scrolling mode=\"standard\" showScrollbar=\"always\"></dxo-scrolling>\n\n <dxi-column dataField=\"OrderDocNum\" caption=\"Belge No\" [width]=\"110\"></dxi-column>\n <dxi-column dataField=\"CardCode\" caption=\"M\u00FC\u015Fteri Kodu\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"CardName\" caption=\"M\u00FC\u015Fteri Ad\u0131\" [width]=\"220\"></dxi-column>\n <dxi-column dataField=\"ItemCode\" caption=\"Kalem Kodu\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"ItemName\" caption=\"Kalem Ad\u0131\"></dxi-column>\n <dxi-column dataField=\"RequestedQty\" caption=\"Talep Edilen\" dataType=\"number\" format=\"#,##0.##\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"ShortQty\" caption=\"Eksik Miktar\" dataType=\"number\" format=\"#,##0.##\" [width]=\"120\"></dxi-column>\n\n <dxo-summary>\n <dxi-total-item column=\"ShortQty\" summaryType=\"sum\" displayFormat=\"Toplam Eksik: {0}\" valueFormat=\"#,##0.##\"></dxi-total-item>\n </dxo-summary>\n </dx-data-grid>\n </div>\n </div>\n\n <div class=\"card\" *ngIf=\"viewMode === 'ozet'\">\n <div class=\"card-body\">\n <dx-data-grid\n #dxSummaryInstance\n [dataSource]=\"summaryDataSource\"\n [showRowLines]=\"true\"\n [showBorders]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n [allowColumnReordering]=\"true\"\n [columnAutoWidth]=\"true\"\n style=\"height: 70vh;\"\n >\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[20, 50, 100]\" [showNavigationButtons]=\"true\" [showPageSizeSelector]=\"true\"></dxo-pager>\n <dxo-paging [pageSize]=\"20\"></dxo-paging>\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-export [enabled]=\"true\" [allowExportSelectedData]=\"false\"></dxo-export>\n <dxo-sorting mode=\"single\"></dxo-sorting>\n <dxo-scrolling mode=\"standard\" showScrollbar=\"always\"></dxo-scrolling>\n\n <dxi-column dataField=\"ItemCode\" caption=\"Kalem Kodu\" [width]=\"160\"></dxi-column>\n <dxi-column dataField=\"ItemName\" caption=\"Kalem Ad\u0131\"></dxi-column>\n <dxi-column dataField=\"TotalShortQty\" caption=\"Toplam Eksik\" dataType=\"number\" format=\"#,##0.##\" [width]=\"140\" sortOrder=\"desc\"></dxi-column>\n <dxi-column dataField=\"OrderCount\" caption=\"Sipari\u015F Say\u0131s\u0131\" dataType=\"number\" [width]=\"130\"></dxi-column>\n </dx-data-grid>\n </div>\n </div>\n\n</abp-page>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i5.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i6.DxoColumnChooserComponent, selector: "dxo-column-chooser", inputs: ["allowSearch", "emptyPanelText", "enabled", "height", "mode", "searchTimeout", "sortOrder", "title", "width"] }, { kind: "component", type: i6.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i6.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i6.DxoExportComponent, selector: "dxo-export", inputs: ["backgroundColor", "enabled", "fileName", "formats", "margin", "printingEnabled", "svgToCanvas", "allowExportSelectedData", "texts"] }, { kind: "component", type: i6.DxoFilterPanelComponent, selector: "dxo-filter-panel", inputs: ["customizeText", "filterEnabled", "texts", "visible"], outputs: ["filterEnabledChange"] }, { kind: "component", type: i6.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i6.DxoGroupPanelComponent, selector: "dxo-group-panel", inputs: ["allowColumnDragging", "emptyPanelText", "visible"], outputs: ["visibleChange"] }, { kind: "component", type: i6.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i6.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i6.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i6.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: i6.DxoSummaryComponent, selector: "dxo-summary", inputs: ["calculateCustomSummary", "groupItems", "recalculateWhileEditing", "skipEmptyValues", "texts", "totalItems"] }, { kind: "component", type: i6.DxiTotalItemComponent, selector: "dxi-total-item", inputs: ["alignment", "column", "cssClass", "customizeText", "displayFormat", "name", "showInColumn", "skipEmptyValues", "summaryType", "valueFormat"] }] });
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ShortagesComponent, decorators: [{
66
+ type: Component,
67
+ args: [{ selector: 'lib-shortages', template: "<abp-page [title]=\"'Fark Listesi'\">\n\n <div class=\"mb-3 d-flex flex-wrap align-items-center gap-2\">\n <div class=\"btn-group me-3\" role=\"group\">\n <button\n type=\"button\"\n class=\"btn btn-sm\"\n [ngClass]=\"viewMode === 'detay' ? 'btn-primary' : 'btn-outline-primary'\"\n (click)=\"setViewMode('detay')\"\n >\n Detay (Sipari\u015F Baz\u0131nda)\n </button>\n <button\n type=\"button\"\n class=\"btn btn-sm\"\n [ngClass]=\"viewMode === 'ozet' ? 'btn-primary' : 'btn-outline-primary'\"\n (click)=\"setViewMode('ozet')\"\n >\n \u00D6zet (Kalem Baz\u0131nda)\n </button>\n </div>\n\n <span class=\"badge bg-light text-dark border\" [class.border-primary]=\"!activeOrderType\" style=\"cursor:pointer\" (click)=\"activeOrderType = null; load()\">\n T\u00FCm\u00FC\n </span>\n <span class=\"badge\" [ngClass]=\"activeOrderType === '1' ? 'bg-primary' : 'bg-light text-dark border'\" style=\"cursor:pointer\" (click)=\"toggleOrderType('1')\">\n Sanayi Sipari\u015Fleri\n </span>\n <span class=\"badge\" [ngClass]=\"activeOrderType === '2' ? 'bg-primary' : 'bg-light text-dark border'\" style=\"cursor:pointer\" (click)=\"toggleOrderType('2')\">\n Da\u011F\u0131t\u0131m Sipari\u015Fleri\n </span>\n <span class=\"badge\" [ngClass]=\"activeOrderType === '3' ? 'bg-primary' : 'bg-light text-dark border'\" style=\"cursor:pointer\" (click)=\"toggleOrderType('3')\">\n Depo Talepleri\n </span>\n\n <button class=\"btn btn-sm btn-outline-secondary ms-auto\" (click)=\"onRefresh()\" [disabled]=\"isLoading\">\n <i class=\"fa fa-redo\"></i> Yenile\n </button>\n </div>\n\n <div class=\"card\" *ngIf=\"viewMode === 'detay'\">\n <div class=\"card-body\">\n <dx-data-grid\n #dxDetailInstance\n [dataSource]=\"detailDataSource\"\n [showRowLines]=\"true\"\n [showBorders]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n [allowColumnReordering]=\"true\"\n [columnAutoWidth]=\"true\"\n [columnHidingEnabled]=\"true\"\n style=\"height: 70vh;\"\n >\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[20, 50, 100]\" [showNavigationButtons]=\"true\" [showPageSizeSelector]=\"true\"></dxo-pager>\n <dxo-paging [pageSize]=\"20\"></dxo-paging>\n <dxo-column-chooser [allowSearch]=\"true\" [enabled]=\"true\" mode=\"select\"></dxo-column-chooser>\n <dxo-group-panel [visible]=\"true\" [allowColumnDragging]=\"true\"></dxo-group-panel>\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-export [enabled]=\"true\" [allowExportSelectedData]=\"false\"></dxo-export>\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\n <dxo-sorting mode=\"single\"></dxo-sorting>\n <dxo-scrolling mode=\"standard\" showScrollbar=\"always\"></dxo-scrolling>\n\n <dxi-column dataField=\"OrderDocNum\" caption=\"Belge No\" [width]=\"110\"></dxi-column>\n <dxi-column dataField=\"CardCode\" caption=\"M\u00FC\u015Fteri Kodu\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"CardName\" caption=\"M\u00FC\u015Fteri Ad\u0131\" [width]=\"220\"></dxi-column>\n <dxi-column dataField=\"ItemCode\" caption=\"Kalem Kodu\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"ItemName\" caption=\"Kalem Ad\u0131\"></dxi-column>\n <dxi-column dataField=\"RequestedQty\" caption=\"Talep Edilen\" dataType=\"number\" format=\"#,##0.##\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"ShortQty\" caption=\"Eksik Miktar\" dataType=\"number\" format=\"#,##0.##\" [width]=\"120\"></dxi-column>\n\n <dxo-summary>\n <dxi-total-item column=\"ShortQty\" summaryType=\"sum\" displayFormat=\"Toplam Eksik: {0}\" valueFormat=\"#,##0.##\"></dxi-total-item>\n </dxo-summary>\n </dx-data-grid>\n </div>\n </div>\n\n <div class=\"card\" *ngIf=\"viewMode === 'ozet'\">\n <div class=\"card-body\">\n <dx-data-grid\n #dxSummaryInstance\n [dataSource]=\"summaryDataSource\"\n [showRowLines]=\"true\"\n [showBorders]=\"true\"\n [hoverStateEnabled]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n [allowColumnReordering]=\"true\"\n [columnAutoWidth]=\"true\"\n style=\"height: 70vh;\"\n >\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[20, 50, 100]\" [showNavigationButtons]=\"true\" [showPageSizeSelector]=\"true\"></dxo-pager>\n <dxo-paging [pageSize]=\"20\"></dxo-paging>\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-export [enabled]=\"true\" [allowExportSelectedData]=\"false\"></dxo-export>\n <dxo-sorting mode=\"single\"></dxo-sorting>\n <dxo-scrolling mode=\"standard\" showScrollbar=\"always\"></dxo-scrolling>\n\n <dxi-column dataField=\"ItemCode\" caption=\"Kalem Kodu\" [width]=\"160\"></dxi-column>\n <dxi-column dataField=\"ItemName\" caption=\"Kalem Ad\u0131\"></dxi-column>\n <dxi-column dataField=\"TotalShortQty\" caption=\"Toplam Eksik\" dataType=\"number\" format=\"#,##0.##\" [width]=\"140\" sortOrder=\"desc\"></dxi-column>\n <dxi-column dataField=\"OrderCount\" caption=\"Sipari\u015F Say\u0131s\u0131\" dataType=\"number\" [width]=\"130\"></dxi-column>\n </dx-data-grid>\n </div>\n </div>\n\n</abp-page>\n" }]
68
+ }], ctorParameters: function () { return [{ type: i1.ShortagesService }, { type: i2.ToasterService }]; }, propDecorators: { dxDetailInstance: [{
69
+ type: ViewChild,
70
+ args: ['dxDetailInstance', { static: false }]
71
+ }], dxSummaryInstance: [{
72
+ type: ViewChild,
73
+ args: ['dxSummaryInstance', { static: false }]
74
+ }] } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcnRhZ2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LXdhcmVob3VzZS9zcmMvbGliL2NvbXBvbmVudHMvc2hvcnRhZ2VzL3Nob3J0YWdlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC13YXJlaG91c2Uvc3JjL2xpYi9jb21wb25lbnRzL3Nob3J0YWdlcy9zaG9ydGFnZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBVzdELE1BQU0sT0FBTyxrQkFBa0I7SUFXM0IsWUFDcUIsZ0JBQWtDLEVBQ2xDLGNBQThCO1FBRDlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBVG5ELGFBQVEsR0FBcUIsT0FBTyxDQUFDO1FBQ3JDLG9CQUFlLEdBQWtCLElBQUksQ0FBQyxDQUFDLCtCQUErQjtRQUV0RSxxQkFBZ0IsR0FBMEIsRUFBRSxDQUFDO1FBQzdDLHNCQUFpQixHQUE2QixFQUFFLENBQUM7UUFDakQsY0FBUyxHQUFZLEtBQUssQ0FBQztJQUt4QixDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQVc7UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDakUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBc0I7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRTtZQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQy9ELElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNYLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDM0IsQ0FBQztnQkFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDYixNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLElBQUksMkNBQTJDLENBQUM7b0JBQ2pHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDM0IsQ0FBQzthQUNKLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDdEUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ1gsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUMzQixDQUFDO2dCQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNiLE1BQU0sWUFBWSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSx5Q0FBeUMsQ0FBQztvQkFDL0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUMzQixDQUFDO2FBQ0osQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDOzsrR0E5RFEsa0JBQWtCO21HQUFsQixrQkFBa0Isb1JDWC9CLDRwTEFnSEE7MkZEckdhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDSSxlQUFlO29JQUt5QixnQkFBZ0I7c0JBQWpFLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNHLGlCQUFpQjtzQkFBbkUsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeERhdGFHcmlkQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgU2hvcnRhZ2VzU2VydmljZSB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9zaG9ydGFnZXMvc2hvcnRhZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzZXJ2YXRpb25TaG9ydER0bywgSXRlbVNob3J0YWdlU3VtbWFyeUR0byB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9zaG9ydGFnZXMvbW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1zaG9ydGFnZXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaG9ydGFnZXMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNob3J0YWdlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnZHhEZXRhaWxJbnN0YW5jZScsIHsgc3RhdGljOiBmYWxzZSB9KSBkeERldGFpbEluc3RhbmNlOiBEeERhdGFHcmlkQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ2R4U3VtbWFyeUluc3RhbmNlJywgeyBzdGF0aWM6IGZhbHNlIH0pIGR4U3VtbWFyeUluc3RhbmNlOiBEeERhdGFHcmlkQ29tcG9uZW50O1xuXG4gICAgdmlld01vZGU6ICdkZXRheScgfCAnb3pldCcgPSAnZGV0YXknO1xuICAgIGFjdGl2ZU9yZGVyVHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7IC8vIG51bGwgPSB0w7xtw7wsICcxJyB8ICcyJyB8ICczJ1xuXG4gICAgZGV0YWlsRGF0YVNvdXJjZTogUmVzZXJ2YXRpb25TaG9ydER0b1tdID0gW107XG4gICAgc3VtbWFyeURhdGFTb3VyY2U6IEl0ZW1TaG9ydGFnZVN1bW1hcnlEdG9bXSA9IFtdO1xuICAgIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2hvcnRhZ2VzU2VydmljZTogU2hvcnRhZ2VzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkKCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlT3JkZXJUeXBlKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlT3JkZXJUeXBlID0gdGhpcy5hY3RpdmVPcmRlclR5cGUgPT09IGtleSA/IG51bGwgOiBrZXk7XG4gICAgICAgIHRoaXMubG9hZCgpO1xuICAgIH1cblxuICAgIHNldFZpZXdNb2RlKG1vZGU6ICdkZXRheScgfCAnb3pldCcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3TW9kZSA9IG1vZGU7XG4gICAgICAgIHRoaXMubG9hZCgpO1xuICAgIH1cblxuICAgIGxvYWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy52aWV3TW9kZSA9PT0gJ2RldGF5Jykge1xuICAgICAgICAgICAgdGhpcy5zaG9ydGFnZXNTZXJ2aWNlLmdldFNob3J0YWdlcyh0aGlzLmFjdGl2ZU9yZGVyVHlwZSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRldGFpbERhdGFTb3VyY2UgPSBkYXRhIHx8IFtdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvcj8uZXJyb3I/LmVycm9yPy5tZXNzYWdlIHx8ICdGYXJrIGxpc3Rlc2kgecO8a2xlbmlya2VuIGJpciBoYXRhIG9sdcWfdHUuJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2hvcnRhZ2VzU2VydmljZS5nZXRTaG9ydGFnZXNTdW1tYXJ5KHRoaXMuYWN0aXZlT3JkZXJUeXBlKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VtbWFyeURhdGFTb3VyY2UgPSBkYXRhIHx8IFtdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvcj8uZXJyb3I/LmVycm9yPy5tZXNzYWdlIHx8ICdGYXJrIMO2emV0aSB5w7xrbGVuaXJrZW4gYmlyIGhhdGEgb2x1xZ90dS4nO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25SZWZyZXNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICB9XG59XG4iLCI8YWJwLXBhZ2UgW3RpdGxlXT1cIidGYXJrIExpc3Rlc2knXCI+XG5cbiAgPGRpdiBjbGFzcz1cIm1iLTMgZC1mbGV4IGZsZXgtd3JhcCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwIG1lLTNcIiByb2xlPVwiZ3JvdXBcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInZpZXdNb2RlID09PSAnZGV0YXknID8gJ2J0bi1wcmltYXJ5JyA6ICdidG4tb3V0bGluZS1wcmltYXJ5J1wiXG4gICAgICAgIChjbGljayk9XCJzZXRWaWV3TW9kZSgnZGV0YXknKVwiXG4gICAgICA+XG4gICAgICAgIERldGF5IChTaXBhcmnFnyBCYXrEsW5kYSlcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtXCJcbiAgICAgICAgW25nQ2xhc3NdPVwidmlld01vZGUgPT09ICdvemV0JyA/ICdidG4tcHJpbWFyeScgOiAnYnRuLW91dGxpbmUtcHJpbWFyeSdcIlxuICAgICAgICAoY2xpY2spPVwic2V0Vmlld01vZGUoJ296ZXQnKVwiXG4gICAgICA+XG4gICAgICAgIMOWemV0IChLYWxlbSBCYXrEsW5kYSlcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiZy1saWdodCB0ZXh0LWRhcmsgYm9yZGVyXCIgW2NsYXNzLmJvcmRlci1wcmltYXJ5XT1cIiFhY3RpdmVPcmRlclR5cGVcIiBzdHlsZT1cImN1cnNvcjpwb2ludGVyXCIgKGNsaWNrKT1cImFjdGl2ZU9yZGVyVHlwZSA9IG51bGw7IGxvYWQoKVwiPlxuICAgICAgVMO8bcO8XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIiBbbmdDbGFzc109XCJhY3RpdmVPcmRlclR5cGUgPT09ICcxJyA/ICdiZy1wcmltYXJ5JyA6ICdiZy1saWdodCB0ZXh0LWRhcmsgYm9yZGVyJ1wiIHN0eWxlPVwiY3Vyc29yOnBvaW50ZXJcIiAoY2xpY2spPVwidG9nZ2xlT3JkZXJUeXBlKCcxJylcIj5cbiAgICAgIFNhbmF5aSBTaXBhcmnFn2xlcmlcbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJiYWRnZVwiIFtuZ0NsYXNzXT1cImFjdGl2ZU9yZGVyVHlwZSA9PT0gJzInID8gJ2JnLXByaW1hcnknIDogJ2JnLWxpZ2h0IHRleHQtZGFyayBib3JkZXInXCIgc3R5bGU9XCJjdXJzb3I6cG9pbnRlclwiIChjbGljayk9XCJ0b2dnbGVPcmRlclR5cGUoJzInKVwiPlxuICAgICAgRGHEn8SxdMSxbSBTaXBhcmnFn2xlcmlcbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJiYWRnZVwiIFtuZ0NsYXNzXT1cImFjdGl2ZU9yZGVyVHlwZSA9PT0gJzMnID8gJ2JnLXByaW1hcnknIDogJ2JnLWxpZ2h0IHRleHQtZGFyayBib3JkZXInXCIgc3R5bGU9XCJjdXJzb3I6cG9pbnRlclwiIChjbGljayk9XCJ0b2dnbGVPcmRlclR5cGUoJzMnKVwiPlxuICAgICAgRGVwbyBUYWxlcGxlcmlcbiAgICA8L3NwYW4+XG5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZS1zZWNvbmRhcnkgbXMtYXV0b1wiIChjbGljayk9XCJvblJlZnJlc2goKVwiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmdcIj5cbiAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcmVkb1wiPjwvaT4gWWVuaWxlXG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjYXJkXCIgKm5nSWY9XCJ2aWV3TW9kZSA9PT0gJ2RldGF5J1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICAgIDxkeC1kYXRhLWdyaWRcbiAgICAgICAgI2R4RGV0YWlsSW5zdGFuY2VcbiAgICAgICAgW2RhdGFTb3VyY2VdPVwiZGV0YWlsRGF0YVNvdXJjZVwiXG4gICAgICAgIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXG4gICAgICAgIFtzaG93Qm9yZGVyc109XCJ0cnVlXCJcbiAgICAgICAgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIlxuICAgICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCJcbiAgICAgICAgY29sdW1uUmVzaXppbmdNb2RlPVwid2lkZ2V0XCJcbiAgICAgICAgW2FsbG93Q29sdW1uUmVvcmRlcmluZ109XCJ0cnVlXCJcbiAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgW2NvbHVtbkhpZGluZ0VuYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgIHN0eWxlPVwiaGVpZ2h0OiA3MHZoO1wiXG4gICAgICA+XG4gICAgICAgIDxkeG8tcGFnZXIgW3Zpc2libGVdPVwidHJ1ZVwiIFtzaG93SW5mb109XCJ0cnVlXCIgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzIwLCA1MCwgMTAwXVwiIFtzaG93TmF2aWdhdGlvbkJ1dHRvbnNdPVwidHJ1ZVwiIFtzaG93UGFnZVNpemVTZWxlY3Rvcl09XCJ0cnVlXCI+PC9keG8tcGFnZXI+XG4gICAgICAgIDxkeG8tcGFnaW5nIFtwYWdlU2l6ZV09XCIyMFwiPjwvZHhvLXBhZ2luZz5cbiAgICAgICAgPGR4by1jb2x1bW4tY2hvb3NlciBbYWxsb3dTZWFyY2hdPVwidHJ1ZVwiIFtlbmFibGVkXT1cInRydWVcIiBtb2RlPVwic2VsZWN0XCI+PC9keG8tY29sdW1uLWNob29zZXI+XG4gICAgICAgIDxkeG8tZ3JvdXAtcGFuZWwgW3Zpc2libGVdPVwidHJ1ZVwiIFthbGxvd0NvbHVtbkRyYWdnaW5nXT1cInRydWVcIj48L2R4by1ncm91cC1wYW5lbD5cbiAgICAgICAgPGR4by1oZWFkZXItZmlsdGVyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWhlYWRlci1maWx0ZXI+XG4gICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cbiAgICAgICAgPGR4by1leHBvcnQgW2VuYWJsZWRdPVwidHJ1ZVwiIFthbGxvd0V4cG9ydFNlbGVjdGVkRGF0YV09XCJmYWxzZVwiPjwvZHhvLWV4cG9ydD5cbiAgICAgICAgPGR4by1maWx0ZXItcGFuZWwgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1wYW5lbD5cbiAgICAgICAgPGR4by1zb3J0aW5nIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zb3J0aW5nPlxuICAgICAgICA8ZHhvLXNjcm9sbGluZyBtb2RlPVwic3RhbmRhcmRcIiBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxuXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIk9yZGVyRG9jTnVtXCIgY2FwdGlvbj1cIkJlbGdlIE5vXCIgW3dpZHRoXT1cIjExMFwiPjwvZHhpLWNvbHVtbj5cbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiQ2FyZENvZGVcIiBjYXB0aW9uPVwiTcO8xZ90ZXJpIEtvZHVcIiBbd2lkdGhdPVwiMTQwXCI+PC9keGktY29sdW1uPlxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJDYXJkTmFtZVwiIGNhcHRpb249XCJNw7zFn3RlcmkgQWTEsVwiIFt3aWR0aF09XCIyMjBcIj48L2R4aS1jb2x1bW4+XG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIkl0ZW1Db2RlXCIgY2FwdGlvbj1cIkthbGVtIEtvZHVcIiBbd2lkdGhdPVwiMTQwXCI+PC9keGktY29sdW1uPlxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJJdGVtTmFtZVwiIGNhcHRpb249XCJLYWxlbSBBZMSxXCI+PC9keGktY29sdW1uPlxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJSZXF1ZXN0ZWRRdHlcIiBjYXB0aW9uPVwiVGFsZXAgRWRpbGVuXCIgZGF0YVR5cGU9XCJudW1iZXJcIiBmb3JtYXQ9XCIjLCMjMC4jI1wiIFt3aWR0aF09XCIxMjBcIj48L2R4aS1jb2x1bW4+XG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIlNob3J0UXR5XCIgY2FwdGlvbj1cIkVrc2lrIE1pa3RhclwiIGRhdGFUeXBlPVwibnVtYmVyXCIgZm9ybWF0PVwiIywjIzAuIyNcIiBbd2lkdGhdPVwiMTIwXCI+PC9keGktY29sdW1uPlxuXG4gICAgICAgIDxkeG8tc3VtbWFyeT5cbiAgICAgICAgICA8ZHhpLXRvdGFsLWl0ZW0gY29sdW1uPVwiU2hvcnRRdHlcIiBzdW1tYXJ5VHlwZT1cInN1bVwiIGRpc3BsYXlGb3JtYXQ9XCJUb3BsYW0gRWtzaWs6IHswfVwiIHZhbHVlRm9ybWF0PVwiIywjIzAuIyNcIj48L2R4aS10b3RhbC1pdGVtPlxuICAgICAgICA8L2R4by1zdW1tYXJ5PlxuICAgICAgPC9keC1kYXRhLWdyaWQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjYXJkXCIgKm5nSWY9XCJ2aWV3TW9kZSA9PT0gJ296ZXQnXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgPGR4LWRhdGEtZ3JpZFxuICAgICAgICAjZHhTdW1tYXJ5SW5zdGFuY2VcbiAgICAgICAgW2RhdGFTb3VyY2VdPVwic3VtbWFyeURhdGFTb3VyY2VcIlxuICAgICAgICBbc2hvd1Jvd0xpbmVzXT1cInRydWVcIlxuICAgICAgICBbc2hvd0JvcmRlcnNdPVwidHJ1ZVwiXG4gICAgICAgIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgW2FsbG93Q29sdW1uUmVzaXppbmddPVwidHJ1ZVwiXG4gICAgICAgIGNvbHVtblJlc2l6aW5nTW9kZT1cIndpZGdldFwiXG4gICAgICAgIFthbGxvd0NvbHVtblJlb3JkZXJpbmddPVwidHJ1ZVwiXG4gICAgICAgIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgIHN0eWxlPVwiaGVpZ2h0OiA3MHZoO1wiXG4gICAgICA+XG4gICAgICAgIDxkeG8tcGFnZXIgW3Zpc2libGVdPVwidHJ1ZVwiIFtzaG93SW5mb109XCJ0cnVlXCIgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzIwLCA1MCwgMTAwXVwiIFtzaG93TmF2aWdhdGlvbkJ1dHRvbnNdPVwidHJ1ZVwiIFtzaG93UGFnZVNpemVTZWxlY3Rvcl09XCJ0cnVlXCI+PC9keG8tcGFnZXI+XG4gICAgICAgIDxkeG8tcGFnaW5nIFtwYWdlU2l6ZV09XCIyMFwiPjwvZHhvLXBhZ2luZz5cbiAgICAgICAgPGR4by1oZWFkZXItZmlsdGVyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWhlYWRlci1maWx0ZXI+XG4gICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cbiAgICAgICAgPGR4by1leHBvcnQgW2VuYWJsZWRdPVwidHJ1ZVwiIFthbGxvd0V4cG9ydFNlbGVjdGVkRGF0YV09XCJmYWxzZVwiPjwvZHhvLWV4cG9ydD5cbiAgICAgICAgPGR4by1zb3J0aW5nIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zb3J0aW5nPlxuICAgICAgICA8ZHhvLXNjcm9sbGluZyBtb2RlPVwic3RhbmRhcmRcIiBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxuXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIkl0ZW1Db2RlXCIgY2FwdGlvbj1cIkthbGVtIEtvZHVcIiBbd2lkdGhdPVwiMTYwXCI+PC9keGktY29sdW1uPlxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJJdGVtTmFtZVwiIGNhcHRpb249XCJLYWxlbSBBZMSxXCI+PC9keGktY29sdW1uPlxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJUb3RhbFNob3J0UXR5XCIgY2FwdGlvbj1cIlRvcGxhbSBFa3Npa1wiIGRhdGFUeXBlPVwibnVtYmVyXCIgZm9ybWF0PVwiIywjIzAuIyNcIiBbd2lkdGhdPVwiMTQwXCIgc29ydE9yZGVyPVwiZGVzY1wiPjwvZHhpLWNvbHVtbj5cbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiT3JkZXJDb3VudFwiIGNhcHRpb249XCJTaXBhcmnFnyBTYXnEsXPEsVwiIGRhdGFUeXBlPVwibnVtYmVyXCIgW3dpZHRoXT1cIjEzMFwiPjwvZHhpLWNvbHVtbj5cbiAgICAgIDwvZHgtZGF0YS1ncmlkPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuPC9hYnAtcGFnZT5cbiJdfQ==
@@ -0,0 +1,42 @@
1
+ import { CoreModule } from '@abp/ng.core';
2
+ import { ThemeSharedModule } from '@abp/ng.theme.shared';
3
+ import { NgModule } from '@angular/core';
4
+ import { FormsModule } from '@angular/forms';
5
+ import { RouterModule } from '@angular/router';
6
+ import { NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
7
+ import { NgxValidateCoreModule } from '@ngx-validate/core';
8
+ import { CommercialUiModule } from '@volo/abp.commercial.ng.ui';
9
+ import { PageModule } from '@abp/ng.components/page';
10
+ import { DxDataGridModule, DxSelectBoxModule } from 'devextreme-angular';
11
+ import { ShortagesComponent } from './shortages.component';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/router";
14
+ const routes = [
15
+ { path: '', component: ShortagesComponent },
16
+ ];
17
+ export class ShortagesModule {
18
+ }
19
+ ShortagesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ShortagesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
+ ShortagesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ShortagesModule, declarations: [ShortagesComponent], imports: [CoreModule, ThemeSharedModule, FormsModule, CommercialUiModule,
21
+ NgxValidateCoreModule, NgbCollapseModule, NgbDatepickerModule,
22
+ NgbDropdownModule, DxSelectBoxModule, PageModule, DxDataGridModule, i1.RouterModule] });
23
+ ShortagesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ShortagesModule, imports: [CoreModule, ThemeSharedModule, FormsModule, CommercialUiModule,
24
+ NgxValidateCoreModule, NgbCollapseModule, NgbDatepickerModule,
25
+ NgbDropdownModule, DxSelectBoxModule, PageModule, DxDataGridModule,
26
+ RouterModule.forChild(routes)] });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ShortagesModule, decorators: [{
28
+ type: NgModule,
29
+ args: [{
30
+ declarations: [ShortagesComponent],
31
+ imports: [
32
+ CoreModule, ThemeSharedModule, FormsModule, CommercialUiModule,
33
+ NgxValidateCoreModule, NgbCollapseModule, NgbDatepickerModule,
34
+ NgbDropdownModule, DxSelectBoxModule, PageModule, DxDataGridModule,
35
+ RouterModule.forChild(routes),
36
+ ],
37
+ }]
38
+ }] });
39
+ export function loadShortagesModuleAsChild() {
40
+ return Promise.resolve(ShortagesModule);
41
+ }
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcnRhZ2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LXdhcmVob3VzZS9zcmMvbGliL2NvbXBvbmVudHMvc2hvcnRhZ2VzL3Nob3J0YWdlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFFM0QsTUFBTSxNQUFNLEdBQVc7SUFDbkIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRTtDQUM5QyxDQUFDO0FBV0YsTUFBTSxPQUFPLGVBQWU7OzRHQUFmLGVBQWU7NkdBQWYsZUFBZSxpQkFSVCxrQkFBa0IsYUFFN0IsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxrQkFBa0I7UUFDOUQscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CO1FBQzdELGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxnQkFBZ0I7NkdBSTdELGVBQWUsWUFOcEIsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxrQkFBa0I7UUFDOUQscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CO1FBQzdELGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxnQkFBZ0I7UUFDbEUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7MkZBR3hCLGVBQWU7a0JBVDNCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQ2xDLE9BQU8sRUFBRTt3QkFDTCxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQjt3QkFDOUQscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CO3dCQUM3RCxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCO3dCQUNsRSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztxQkFDaEM7aUJBQ0o7O0FBR0QsTUFBTSxVQUFVLDBCQUEwQjtJQUN0QyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOZ2JDb2xsYXBzZU1vZHVsZSwgTmdiRGF0ZXBpY2tlck1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ29tbWVyY2lhbFVpTW9kdWxlIH0gZnJvbSAnQHZvbG8vYWJwLmNvbW1lcmNpYWwubmcudWknO1xuaW1wb3J0IHsgUGFnZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IER4RGF0YUdyaWRNb2R1bGUsIER4U2VsZWN0Qm94TW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcbmltcG9ydCB7IFNob3J0YWdlc0NvbXBvbmVudCB9IGZyb20gJy4vc2hvcnRhZ2VzLmNvbXBvbmVudCc7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICAgIHsgcGF0aDogJycsIGNvbXBvbmVudDogU2hvcnRhZ2VzQ29tcG9uZW50IH0sXG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1Nob3J0YWdlc0NvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb3JlTW9kdWxlLCBUaGVtZVNoYXJlZE1vZHVsZSwgRm9ybXNNb2R1bGUsIENvbW1lcmNpYWxVaU1vZHVsZSxcbiAgICAgICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLCBOZ2JDb2xsYXBzZU1vZHVsZSwgTmdiRGF0ZXBpY2tlck1vZHVsZSxcbiAgICAgICAgTmdiRHJvcGRvd25Nb2R1bGUsIER4U2VsZWN0Qm94TW9kdWxlLCBQYWdlTW9kdWxlLCBEeERhdGFHcmlkTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTaG9ydGFnZXNNb2R1bGUge31cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRTaG9ydGFnZXNNb2R1bGVBc0NoaWxkKCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoU2hvcnRhZ2VzTW9kdWxlKTtcbn1cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../services/smart-warehouse.service";
4
+ export class SmartWarehouseComponent {
5
+ constructor(service) {
6
+ this.service = service;
7
+ }
8
+ ngOnInit() {
9
+ this.service.sample().subscribe(console.log);
10
+ }
11
+ }
12
+ SmartWarehouseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SmartWarehouseComponent, deps: [{ token: i1.SmartWarehouseService }], target: i0.ɵɵFactoryTarget.Component });
13
+ SmartWarehouseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SmartWarehouseComponent, selector: "lib-smart-warehouse", ngImport: i0, template: ` <p>smart-warehouse works!</p> `, isInline: true });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SmartWarehouseComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'lib-smart-warehouse', template: ` <p>smart-warehouse works!</p> ` }]
17
+ }], ctorParameters: function () { return [{ type: i1.SmartWarehouseService }]; } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtd2FyZWhvdXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LXdhcmVob3VzZS9zcmMvbGliL2NvbXBvbmVudHMvc21hcnQtd2FyZWhvdXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFRbEQsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUFvQixPQUE4QjtRQUE5QixZQUFPLEdBQVAsT0FBTyxDQUF1QjtJQUFHLENBQUM7SUFFdEQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxDQUFDOztvSEFMVSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwyREFIeEIsaUNBQWlDOzJGQUdoQyx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCLFlBQ3JCLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNtYXJ0V2FyZWhvdXNlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NtYXJ0LXdhcmVob3VzZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNtYXJ0LXdhcmVob3VzZScsXHJcbiAgdGVtcGxhdGU6IGAgPHA+c21hcnQtd2FyZWhvdXNlIHdvcmtzITwvcD4gYCxcclxuICBzdHlsZXM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRXYXJlaG91c2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogU21hcnRXYXJlaG91c2VTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5zYW1wbGUoKS5zdWJzY3JpYmUoY29uc29sZS5sb2cpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../hit-proxy/stock-report/stock-report.service";
4
+ import * as i2 from "@abp/ng.theme.shared";
5
+ import * as i3 from "@abp/ng.components/page";
6
+ import * as i4 from "devextreme-angular";
7
+ import * as i5 from "devextreme-angular/ui/nested";
8
+ export class StockReportComponent {
9
+ constructor(stockReportService, toasterService) {
10
+ this.stockReportService = stockReportService;
11
+ this.toasterService = toasterService;
12
+ }
13
+ ngOnInit() {
14
+ this.stockDataSource = this.stockReportService.loadStockReports;
15
+ }
16
+ onRefresh() {
17
+ this.dxStockInstance?.instance?.refresh();
18
+ }
19
+ }
20
+ StockReportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StockReportComponent, deps: [{ token: i1.StockReportService }, { token: i2.ToasterService }], target: i0.ɵɵFactoryTarget.Component });
21
+ StockReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: StockReportComponent, selector: "lib-stock-report", viewQueries: [{ propertyName: "dxStockInstance", first: true, predicate: ["dxStockInstance"], descendants: true }], ngImport: i0, template: "<abp-page [title]=\"'Depo Stok Raporu'\">\r\n\r\n <div class=\"mb-2\">\r\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"onRefresh()\">\r\n <i class=\"fa fa-redo\"></i> Yenile\r\n </button>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxStockInstance [dataSource]=\"stockDataSource\" [showRowLines]=\"true\" [showBorders]=\"true\"\r\n [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\"\r\n [allowColumnResizing]=\"true\" columnResizingMode=\"widget\" [allowColumnReordering]=\"true\"\r\n [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"true\" style=\"height: 75vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\"\r\n [showNavigationButtons]=\"true\" [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-column-chooser [allowSearch]=\"true\" [enabled]=\"true\" mode=\"select\"></dxo-column-chooser>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-group-panel [visible]=\"true\" [allowColumnDragging]=\"true\"></dxo-group-panel>\r\n <dxo-grouping #expand [autoExpandAll]=\"false\" [allowCollapsing]=\"true\"\r\n [contextMenuEnabled]=\"true\"></dxo-grouping>\r\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-export [enabled]=\"true\" [allowExportSelectedData]=\"false\"></dxo-export>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-filter-builder [allowHierarchicalFields]=\"true\"></dxo-filter-builder>\r\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxi-column dataField=\"ItemCode\" caption=\"Kalem Kodu\"></dxi-column>\r\n <dxi-column dataField=\"ItemName\" caption=\"Kalem Ad\u0131\"></dxi-column>\r\n <dxi-column dataField=\"WhsCode\" caption=\"Depo\"></dxi-column>\r\n <dxi-column dataField=\"BinCode\" caption=\"Depo Yeri\"></dxi-column>\r\n <dxi-column dataField=\"DistNumber\" caption=\"Parti\"></dxi-column>\r\n <dxi-column dataField=\"OnHandQty\" caption=\"Miktar\" dataType=\"number\" [format]=\"{ \r\n type: 'fixedPoint', \r\n precision: 2 \r\n }\">\r\n\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n\r\n</abp-page>", dependencies: [{ kind: "component", type: i3.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i4.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i5.DxoColumnChooserComponent, selector: "dxo-column-chooser", inputs: ["allowSearch", "emptyPanelText", "enabled", "height", "mode", "searchTimeout", "sortOrder", "title", "width"] }, { kind: "component", type: i5.DxoColumnFixingComponent, selector: "dxo-column-fixing", inputs: ["enabled", "texts"] }, { kind: "component", type: i5.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i5.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i5.DxoExportComponent, selector: "dxo-export", inputs: ["backgroundColor", "enabled", "fileName", "formats", "margin", "printingEnabled", "svgToCanvas", "allowExportSelectedData", "texts"] }, { kind: "component", type: i5.DxoFilterBuilderComponent, selector: "dxo-filter-builder", inputs: ["accessKey", "activeStateEnabled", "allowHierarchicalFields", "customOperations", "disabled", "elementAttr", "fields", "filterOperationDescriptions", "focusStateEnabled", "groupOperationDescriptions", "groupOperations", "height", "hint", "hoverStateEnabled", "maxGroupLevel", "onContentReady", "onDisposing", "onEditorPrepared", "onEditorPreparing", "onInitialized", "onOptionChanged", "onValueChanged", "rtlEnabled", "tabIndex", "value", "visible", "width"], outputs: ["valueChange"] }, { kind: "component", type: i5.DxoFilterPanelComponent, selector: "dxo-filter-panel", inputs: ["customizeText", "filterEnabled", "texts", "visible"], outputs: ["filterEnabledChange"] }, { kind: "component", type: i5.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i5.DxoGroupingComponent, selector: "dxo-grouping", inputs: ["allowCollapsing", "autoExpandAll", "contextMenuEnabled", "expandMode", "texts"] }, { kind: "component", type: i5.DxoGroupPanelComponent, selector: "dxo-group-panel", inputs: ["allowColumnDragging", "emptyPanelText", "visible"], outputs: ["visibleChange"] }, { kind: "component", type: i5.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i5.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i5.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i5.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }] });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StockReportComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'lib-stock-report', template: "<abp-page [title]=\"'Depo Stok Raporu'\">\r\n\r\n <div class=\"mb-2\">\r\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"onRefresh()\">\r\n <i class=\"fa fa-redo\"></i> Yenile\r\n </button>\r\n </div>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxStockInstance [dataSource]=\"stockDataSource\" [showRowLines]=\"true\" [showBorders]=\"true\"\r\n [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\"\r\n [allowColumnResizing]=\"true\" columnResizingMode=\"widget\" [allowColumnReordering]=\"true\"\r\n [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"true\" style=\"height: 75vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\"\r\n [showNavigationButtons]=\"true\" [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-column-chooser [allowSearch]=\"true\" [enabled]=\"true\" mode=\"select\"></dxo-column-chooser>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-group-panel [visible]=\"true\" [allowColumnDragging]=\"true\"></dxo-group-panel>\r\n <dxo-grouping #expand [autoExpandAll]=\"false\" [allowCollapsing]=\"true\"\r\n [contextMenuEnabled]=\"true\"></dxo-grouping>\r\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-export [enabled]=\"true\" [allowExportSelectedData]=\"false\"></dxo-export>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-filter-builder [allowHierarchicalFields]=\"true\"></dxo-filter-builder>\r\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxi-column dataField=\"ItemCode\" caption=\"Kalem Kodu\"></dxi-column>\r\n <dxi-column dataField=\"ItemName\" caption=\"Kalem Ad\u0131\"></dxi-column>\r\n <dxi-column dataField=\"WhsCode\" caption=\"Depo\"></dxi-column>\r\n <dxi-column dataField=\"BinCode\" caption=\"Depo Yeri\"></dxi-column>\r\n <dxi-column dataField=\"DistNumber\" caption=\"Parti\"></dxi-column>\r\n <dxi-column dataField=\"OnHandQty\" caption=\"Miktar\" dataType=\"number\" [format]=\"{ \r\n type: 'fixedPoint', \r\n precision: 2 \r\n }\">\r\n\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n\r\n</abp-page>" }]
25
+ }], ctorParameters: function () { return [{ type: i1.StockReportService }, { type: i2.ToasterService }]; }, propDecorators: { dxStockInstance: [{
26
+ type: ViewChild,
27
+ args: ['dxStockInstance', { static: false }]
28
+ }] } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stcmVwb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LXdhcmVob3VzZS9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2stcmVwb3J0L3N0b2NrLXJlcG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC13YXJlaG91c2Uvc3JjL2xpYi9jb21wb25lbnRzL3N0b2NrLXJlcG9ydC9zdG9jay1yZXBvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFZN0QsTUFBTSxPQUFPLG9CQUFvQjtJQUk3QixZQUNZLGtCQUFxQyxFQUNyQyxjQUE4QjtRQUQ5Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUN0QyxDQUFDO0lBRUwsUUFBUTtRQUNaLElBQUksQ0FBQyxlQUFlLEdBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFBO0lBQ3pELENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxDQUFDLGVBQWUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs7aUhBZlEsb0JBQW9CO3FHQUFwQixvQkFBb0IsNEtDWmpDLHk2RkE4Q1c7MkZEbENFLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDSSxrQkFBa0I7c0lBS3FCLGVBQWU7c0JBQS9ELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEeERhdGFHcmlkQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgV2FyZWhvdXNlU2VydmljZSwgQmluTG9jYXRpb25EdG8sIEJpbkxvY2F0aW9uQ29udGVudER0byB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS93YXJlaG91c2Uvd2FyZWhvdXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdG9ja1RyYW5zZmVyU2VydmljZSwgU2hlbGZUcmFuc2ZlckR0byB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9zdG9jay10cmFuc2Zlci9zdG9jay10cmFuc2Zlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IFN0b2NrUmVwb3J0U2VydmljZSB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9zdG9jay1yZXBvcnQvc3RvY2stcmVwb3J0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1zdG9jay1yZXBvcnQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N0b2NrLXJlcG9ydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvY2tSZXBvcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZCgnZHhTdG9ja0luc3RhbmNlJywgeyBzdGF0aWM6IGZhbHNlIH0pIGR4U3RvY2tJbnN0YW5jZTogRHhEYXRhR3JpZENvbXBvbmVudDtcclxuXHJcbiAgICBzdG9ja0RhdGFTb3VyY2U6YW55XHJcbiAgICBjb25zdHJ1Y3RvciggXHJcbiAgICAgICAgcHJpdmF0ZSBzdG9ja1JlcG9ydFNlcnZpY2U6U3RvY2tSZXBvcnRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgdG9hc3RlclNlcnZpY2U6IFRvYXN0ZXJTZXJ2aWNlXHJcbiAgICApIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG50aGlzLnN0b2NrRGF0YVNvdXJjZT10aGlzLnN0b2NrUmVwb3J0U2VydmljZS5sb2FkU3RvY2tSZXBvcnRzXHJcbiAgICB9XHJcblxyXG4gICAgb25SZWZyZXNoKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZHhTdG9ja0luc3RhbmNlPy5pbnN0YW5jZT8ucmVmcmVzaCgpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ0RlcG8gU3RvayBSYXBvcnUnXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZS1wcmltYXJ5XCIgKGNsaWNrKT1cIm9uUmVmcmVzaCgpXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcmVkb1wiPjwvaT4gWWVuaWxlXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICAgICAgPGR4LWRhdGEtZ3JpZCAjZHhTdG9ja0luc3RhbmNlIFtkYXRhU291cmNlXT1cInN0b2NrRGF0YVNvdXJjZVwiIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiIFtzaG93Qm9yZGVyc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCIgW3JlcGFpbnRDaGFuZ2VzT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFthbGxvd0NvbHVtblJlc2l6aW5nXT1cInRydWVcIiBjb2x1bW5SZXNpemluZ01vZGU9XCJ3aWRnZXRcIiBbYWxsb3dDb2x1bW5SZW9yZGVyaW5nXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCIgW2NvbHVtbkhpZGluZ0VuYWJsZWRdPVwidHJ1ZVwiIHN0eWxlPVwiaGVpZ2h0OiA3NXZoO1wiPlxyXG4gICAgICAgICAgICAgICAgPGR4by1wYWdlciBbdmlzaWJsZV09XCJ0cnVlXCIgW3Nob3dJbmZvXT1cInRydWVcIiBbYWxsb3dlZFBhZ2VTaXplc109XCJbNTAsMTAwLDIwMF1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93TmF2aWdhdGlvbkJ1dHRvbnNdPVwidHJ1ZVwiIFtzaG93UGFnZVNpemVTZWxlY3Rvcl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2R4by1wYWdlcj5cclxuICAgICAgICAgICAgICAgIDxkeG8tcGFnaW5nIFtwYWdlU2l6ZV09XCI1MFwiPjwvZHhvLXBhZ2luZz5cclxuICAgICAgICAgICAgICAgIDxkeG8tY29sdW1uLWNob29zZXIgW2FsbG93U2VhcmNoXT1cInRydWVcIiBbZW5hYmxlZF09XCJ0cnVlXCIgbW9kZT1cInNlbGVjdFwiPjwvZHhvLWNvbHVtbi1jaG9vc2VyPlxyXG4gICAgICAgICAgICAgICAgPGR4by1jb2x1bW4tZml4aW5nIFtlbmFibGVkXT1cInRydWVcIj48L2R4by1jb2x1bW4tZml4aW5nPlxyXG4gICAgICAgICAgICAgICAgPGR4by1ncm91cC1wYW5lbCBbdmlzaWJsZV09XCJ0cnVlXCIgW2FsbG93Q29sdW1uRHJhZ2dpbmddPVwidHJ1ZVwiPjwvZHhvLWdyb3VwLXBhbmVsPlxyXG4gICAgICAgICAgICAgICAgPGR4by1ncm91cGluZyAjZXhwYW5kIFthdXRvRXhwYW5kQWxsXT1cImZhbHNlXCIgW2FsbG93Q29sbGFwc2luZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbY29udGV4dE1lbnVFbmFibGVkXT1cInRydWVcIj48L2R4by1ncm91cGluZz5cclxuICAgICAgICAgICAgICAgIDxkeG8taGVhZGVyLWZpbHRlciBbYWxsb3dTZWFyY2hdPVwidHJ1ZVwiIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgPGR4by1maWx0ZXItcm93IFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcm93PlxyXG4gICAgICAgICAgICAgICAgPGR4by1leHBvcnQgW2VuYWJsZWRdPVwidHJ1ZVwiIFthbGxvd0V4cG9ydFNlbGVjdGVkRGF0YV09XCJmYWxzZVwiPjwvZHhvLWV4cG9ydD5cclxuICAgICAgICAgICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuICAgICAgICAgICAgICAgIDxkeG8tZmlsdGVyLWJ1aWxkZXIgW2FsbG93SGllcmFyY2hpY2FsRmllbGRzXT1cInRydWVcIj48L2R4by1maWx0ZXItYnVpbGRlcj5cclxuICAgICAgICAgICAgICAgIDxkeG8tZmlsdGVyLXBhbmVsIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcGFuZWw+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLXNvcnRpbmcgbW9kZT1cInNpbmdsZVwiPjwvZHhvLXNvcnRpbmc+XHJcbiAgICAgICAgICAgICAgICA8ZHhvLXNjcm9sbGluZyBtb2RlPVwiaG9yaXpvbnRhbFwiIHNob3dTY3JvbGxiYXI9XCJhbHdheXNcIj48L2R4by1zY3JvbGxpbmc+XHJcbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJJdGVtQ29kZVwiIGNhcHRpb249XCJLYWxlbSBLb2R1XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiSXRlbU5hbWVcIiBjYXB0aW9uPVwiS2FsZW0gQWTEsVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIldoc0NvZGVcIiBjYXB0aW9uPVwiRGVwb1wiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIkJpbkNvZGVcIiBjYXB0aW9uPVwiRGVwbyBZZXJpXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiRGlzdE51bWJlclwiIGNhcHRpb249XCJQYXJ0aVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIk9uSGFuZFF0eVwiIGNhcHRpb249XCJNaWt0YXJcIiBkYXRhVHlwZT1cIm51bWJlclwiIFtmb3JtYXRdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZml4ZWRQb2ludCcsIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWNpc2lvbjogMiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG48L2FicC1wYWdlPiJdfQ==