@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.
- package/README.md +24 -0
- package/config/enums/index.d.ts +1 -0
- package/config/enums/route-names.d.ts +12 -0
- package/config/index.d.ts +5 -0
- package/config/providers/connector-params-route.provider.d.ts +8 -0
- package/config/providers/index.d.ts +7 -0
- package/config/providers/order-station-route.provider.d.ts +8 -0
- package/config/providers/orders-route.provider.d.ts +8 -0
- package/config/providers/quantity-correction-route.provider.d.ts +8 -0
- package/config/providers/route.provider.d.ts +8 -0
- package/config/providers/shelf-placement-route.provider.d.ts +8 -0
- package/config/providers/shelf-transfer-route.provider.d.ts +8 -0
- package/config/providers/shortages-route.provider.d.ts +8 -0
- package/config/providers/station.provider.d.ts +8 -0
- package/config/providers/stock-report.d.ts +8 -0
- package/config/public-api.d.ts +3 -0
- package/config/smart-warehouse-config.module.d.ts +8 -0
- package/esm2020/config/enums/index.mjs +2 -0
- package/esm2020/config/enums/route-names.mjs +2 -0
- package/esm2020/config/hitsoft-smart-warehouse-config.mjs +5 -0
- package/esm2020/config/providers/connector-params-route.provider.mjs +25 -0
- package/esm2020/config/providers/index.mjs +8 -0
- package/esm2020/config/providers/order-station-route.provider.mjs +25 -0
- package/esm2020/config/providers/orders-route.provider.mjs +25 -0
- package/esm2020/config/providers/quantity-correction-route.provider.mjs +25 -0
- package/esm2020/config/providers/route.provider.mjs +24 -0
- package/esm2020/config/providers/shelf-placement-route.provider.mjs +25 -0
- package/esm2020/config/providers/shelf-transfer-route.provider.mjs +25 -0
- package/esm2020/config/providers/shortages-route.provider.mjs +25 -0
- package/esm2020/config/providers/station.provider.mjs +25 -0
- package/esm2020/config/providers/stock-report.mjs +25 -0
- package/esm2020/config/public-api.mjs +4 -0
- package/esm2020/config/smart-warehouse-config.module.mjs +37 -0
- package/esm2020/hitsoft-smart-warehouse.mjs +5 -0
- package/esm2020/lib/components/connector-params/connector-params.component.mjs +182 -0
- package/esm2020/lib/components/connector-params/connector-params.module.mjs +41 -0
- package/esm2020/lib/components/order-station/order-station.component.mjs +160 -0
- package/esm2020/lib/components/order-station/order-station.module.mjs +57 -0
- package/esm2020/lib/components/orders/orders.component.mjs +445 -0
- package/esm2020/lib/components/orders/orders.module.mjs +75 -0
- package/esm2020/lib/components/quantity-correction/quantity-correction.component.mjs +231 -0
- package/esm2020/lib/components/quantity-correction/quantity-correction.module.mjs +41 -0
- package/esm2020/lib/components/shelf-placement/shelf-placement.component.mjs +297 -0
- package/esm2020/lib/components/shelf-placement/shelf-placement.module.mjs +66 -0
- package/esm2020/lib/components/shelf-transfer/shelf-transfer.component.mjs +146 -0
- package/esm2020/lib/components/shelf-transfer/shelf-transfer.module.mjs +41 -0
- package/esm2020/lib/components/shortages/shortages.component.mjs +75 -0
- package/esm2020/lib/components/shortages/shortages.module.mjs +42 -0
- package/esm2020/lib/components/smart-warehouse.component.mjs +18 -0
- package/esm2020/lib/components/stock-report/stock-report.component.mjs +29 -0
- package/esm2020/lib/components/stock-report/stock-report.module.mjs +42 -0
- package/esm2020/lib/guards/connector-params.guard.mjs +58 -0
- package/esm2020/lib/hit-proxy/connector-params/connector-params.service.mjs +27 -0
- package/esm2020/lib/hit-proxy/devexpress-query-builder/devexpress-load-options.model.mjs +2 -0
- package/esm2020/lib/hit-proxy/devexpress-query-builder/devexpress-query-builder.mjs +62 -0
- package/esm2020/lib/hit-proxy/inventory/inventory.service.mjs +21 -0
- package/esm2020/lib/hit-proxy/order-station/order-station.service.mjs +18 -0
- package/esm2020/lib/hit-proxy/orders/model.mjs +2 -0
- package/esm2020/lib/hit-proxy/orders/order.service.mjs +81 -0
- package/esm2020/lib/hit-proxy/quantity-correction/quantity-correction.service.mjs +47 -0
- package/esm2020/lib/hit-proxy/shortages/model.mjs +2 -0
- package/esm2020/lib/hit-proxy/shortages/shortages.service.mjs +26 -0
- package/esm2020/lib/hit-proxy/stations/station.service.mjs +86 -0
- package/esm2020/lib/hit-proxy/stock-report/stock-report.service.mjs +22 -0
- package/esm2020/lib/hit-proxy/stock-transfer/stock-transfer.service.mjs +21 -0
- package/esm2020/lib/hit-proxy/warehouse/warehouse.service.mjs +65 -0
- package/esm2020/lib/services/smart-warehouse.service.mjs +21 -0
- package/esm2020/lib/smart-warehouse-routing.module.mjs +79 -0
- package/esm2020/lib/smart-warehouse.module.mjs +34 -0
- package/esm2020/lib/stations/station.component.mjs +43 -0
- package/esm2020/lib/stations/station.module.mjs +42 -0
- package/esm2020/public-api.mjs +20 -0
- package/fesm2015/hitsoft-smart-warehouse-config.mjs +264 -0
- package/fesm2015/hitsoft-smart-warehouse-config.mjs.map +1 -0
- package/fesm2015/hitsoft-smart-warehouse.mjs +2577 -0
- package/fesm2015/hitsoft-smart-warehouse.mjs.map +1 -0
- package/fesm2020/hitsoft-smart-warehouse-config.mjs +264 -0
- package/fesm2020/hitsoft-smart-warehouse-config.mjs.map +1 -0
- package/fesm2020/hitsoft-smart-warehouse.mjs +2515 -0
- package/fesm2020/hitsoft-smart-warehouse.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/connector-params/connector-params.component.d.ts +44 -0
- package/lib/components/connector-params/connector-params.module.d.ts +13 -0
- package/lib/components/order-station/order-station.component.d.ts +31 -0
- package/lib/components/order-station/order-station.module.d.ts +16 -0
- package/lib/components/orders/orders.component.d.ts +63 -0
- package/lib/components/orders/orders.module.d.ts +17 -0
- package/lib/components/quantity-correction/quantity-correction.component.d.ts +52 -0
- package/lib/components/quantity-correction/quantity-correction.module.d.ts +16 -0
- package/lib/components/shelf-placement/shelf-placement.component.d.ts +93 -0
- package/lib/components/shelf-placement/shelf-placement.module.d.ts +17 -0
- package/lib/components/shelf-transfer/shelf-transfer.component.d.ts +26 -0
- package/lib/components/shelf-transfer/shelf-transfer.module.d.ts +16 -0
- package/lib/components/shortages/shortages.component.d.ts +25 -0
- package/lib/components/shortages/shortages.module.d.ts +17 -0
- package/lib/components/smart-warehouse.component.d.ts +10 -0
- package/lib/components/stock-report/stock-report.component.d.ts +16 -0
- package/lib/components/stock-report/stock-report.module.d.ts +17 -0
- package/lib/guards/connector-params.guard.d.ts +21 -0
- package/lib/hit-proxy/connector-params/connector-params.service.d.ts +46 -0
- package/lib/hit-proxy/devexpress-query-builder/devexpress-load-options.model.d.ts +8 -0
- package/lib/hit-proxy/devexpress-query-builder/devexpress-query-builder.d.ts +17 -0
- package/lib/hit-proxy/inventory/inventory.service.d.ts +22 -0
- package/lib/hit-proxy/order-station/order-station.service.d.ts +24 -0
- package/lib/hit-proxy/orders/model.d.ts +74 -0
- package/lib/hit-proxy/orders/order.service.d.ts +26 -0
- package/lib/hit-proxy/quantity-correction/quantity-correction.service.d.ts +88 -0
- package/lib/hit-proxy/shortages/model.d.ts +17 -0
- package/lib/hit-proxy/shortages/shortages.service.d.ts +13 -0
- package/lib/hit-proxy/stations/station.service.d.ts +25 -0
- package/lib/hit-proxy/stock-report/stock-report.service.d.ts +12 -0
- package/lib/hit-proxy/stock-transfer/stock-transfer.service.d.ts +19 -0
- package/lib/hit-proxy/warehouse/warehouse.service.d.ts +59 -0
- package/lib/services/smart-warehouse.service.d.ts +10 -0
- package/lib/smart-warehouse-routing.module.d.ts +7 -0
- package/lib/smart-warehouse.module.d.ts +13 -0
- package/lib/stations/station.component.d.ts +14 -0
- package/lib/stations/station.module.d.ts +17 -0
- package/package.json +45 -0
- package/public-api.d.ts +16 -0
|
@@ -0,0 +1,75 @@
|
|
|
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 { OrdersComponent } from './orders.component';
|
|
11
|
+
import { DxDataGridModule, DxPopupModule, DxNumberBoxModule, DxButtonModule } from 'devextreme-angular';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@angular/router";
|
|
14
|
+
const routes = [
|
|
15
|
+
{
|
|
16
|
+
path: '',
|
|
17
|
+
component: OrdersComponent,
|
|
18
|
+
},
|
|
19
|
+
];
|
|
20
|
+
export class OrdersModule {
|
|
21
|
+
}
|
|
22
|
+
OrdersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OrdersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23
|
+
OrdersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: OrdersModule, declarations: [OrdersComponent], imports: [CoreModule,
|
|
24
|
+
ThemeSharedModule,
|
|
25
|
+
FormsModule,
|
|
26
|
+
CommercialUiModule,
|
|
27
|
+
NgxValidateCoreModule,
|
|
28
|
+
NgbCollapseModule,
|
|
29
|
+
NgbDatepickerModule,
|
|
30
|
+
NgbDropdownModule,
|
|
31
|
+
DxDataGridModule,
|
|
32
|
+
DxPopupModule,
|
|
33
|
+
DxNumberBoxModule,
|
|
34
|
+
DxButtonModule,
|
|
35
|
+
PageModule, i1.RouterModule] });
|
|
36
|
+
OrdersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OrdersModule, imports: [CoreModule,
|
|
37
|
+
ThemeSharedModule,
|
|
38
|
+
FormsModule,
|
|
39
|
+
CommercialUiModule,
|
|
40
|
+
NgxValidateCoreModule,
|
|
41
|
+
NgbCollapseModule,
|
|
42
|
+
NgbDatepickerModule,
|
|
43
|
+
NgbDropdownModule,
|
|
44
|
+
DxDataGridModule,
|
|
45
|
+
DxPopupModule,
|
|
46
|
+
DxNumberBoxModule,
|
|
47
|
+
DxButtonModule,
|
|
48
|
+
PageModule,
|
|
49
|
+
RouterModule.forChild(routes)] });
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OrdersModule, decorators: [{
|
|
51
|
+
type: NgModule,
|
|
52
|
+
args: [{
|
|
53
|
+
declarations: [OrdersComponent],
|
|
54
|
+
imports: [
|
|
55
|
+
CoreModule,
|
|
56
|
+
ThemeSharedModule,
|
|
57
|
+
FormsModule,
|
|
58
|
+
CommercialUiModule,
|
|
59
|
+
NgxValidateCoreModule,
|
|
60
|
+
NgbCollapseModule,
|
|
61
|
+
NgbDatepickerModule,
|
|
62
|
+
NgbDropdownModule,
|
|
63
|
+
DxDataGridModule,
|
|
64
|
+
DxPopupModule,
|
|
65
|
+
DxNumberBoxModule,
|
|
66
|
+
DxButtonModule,
|
|
67
|
+
PageModule,
|
|
68
|
+
RouterModule.forChild(routes),
|
|
69
|
+
],
|
|
70
|
+
}]
|
|
71
|
+
}] });
|
|
72
|
+
export function loadOrdersModuleAsChild() {
|
|
73
|
+
return Promise.resolve(OrdersModule);
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LXdhcmVob3VzZS9zcmMvbGliL2NvbXBvbmVudHMvb3JkZXJzL29yZGVycy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFFeEcsTUFBTSxNQUFNLEdBQVc7SUFDbkI7UUFDSSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxlQUFlO0tBQzdCO0NBQ0osQ0FBQztBQXFCRixNQUFNLE9BQU8sWUFBWTs7eUdBQVosWUFBWTswR0FBWixZQUFZLGlCQWxCTixlQUFlLGFBRTFCLFVBQVU7UUFDVixpQkFBaUI7UUFDakIsV0FBVztRQUNYLGtCQUFrQjtRQUNsQixxQkFBcUI7UUFDckIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsY0FBYztRQUNkLFVBQVU7MEdBSUwsWUFBWSxZQWhCakIsVUFBVTtRQUNWLGlCQUFpQjtRQUNqQixXQUFXO1FBQ1gsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGlCQUFpQjtRQUNqQixjQUFjO1FBQ2QsVUFBVTtRQUNWLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDOzJGQUd4QixZQUFZO2tCQW5CeEIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQy9CLE9BQU8sRUFBRTt3QkFDTCxVQUFVO3dCQUNWLGlCQUFpQjt3QkFDakIsV0FBVzt3QkFDWCxrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxVQUFVO3dCQUNWLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO3FCQUNoQztpQkFDSjs7QUFHRCxNQUFNLFVBQVUsdUJBQXVCO0lBQ25DLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOZ2JDb2xsYXBzZU1vZHVsZSwgTmdiRGF0ZXBpY2tlck1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XHJcbmltcG9ydCB7IENvbW1lcmNpYWxVaU1vZHVsZSB9IGZyb20gJ0B2b2xvL2FicC5jb21tZXJjaWFsLm5nLnVpJztcclxuaW1wb3J0IHsgUGFnZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29tcG9uZW50cy9wYWdlJztcclxuaW1wb3J0IHsgT3JkZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9vcmRlcnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHhEYXRhR3JpZE1vZHVsZSwgRHhQb3B1cE1vZHVsZSwgRHhOdW1iZXJCb3hNb2R1bGUsIER4QnV0dG9uTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuXHJcbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xyXG4gICAge1xyXG4gICAgICAgIHBhdGg6ICcnLFxyXG4gICAgICAgIGNvbXBvbmVudDogT3JkZXJzQ29tcG9uZW50LFxyXG4gICAgfSxcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtPcmRlcnNDb21wb25lbnRdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvcmVNb2R1bGUsXHJcbiAgICAgICAgVGhlbWVTaGFyZWRNb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgQ29tbWVyY2lhbFVpTW9kdWxlLFxyXG4gICAgICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcclxuICAgICAgICBOZ2JDb2xsYXBzZU1vZHVsZSxcclxuICAgICAgICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG4gICAgICAgIER4RGF0YUdyaWRNb2R1bGUsXHJcbiAgICAgICAgRHhQb3B1cE1vZHVsZSxcclxuICAgICAgICBEeE51bWJlckJveE1vZHVsZSxcclxuICAgICAgICBEeEJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBQYWdlTW9kdWxlLFxyXG4gICAgICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpLFxyXG4gICAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE9yZGVyc01vZHVsZSB7fVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRPcmRlcnNNb2R1bGVBc0NoaWxkKCkge1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShPcmRlcnNNb2R1bGUpO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../hit-proxy/quantity-correction/quantity-correction.service";
|
|
4
|
+
import * as i2 from "@abp/ng.theme.shared";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
import * as i4 from "@angular/forms";
|
|
7
|
+
import * as i5 from "@abp/ng.components/page";
|
|
8
|
+
export class QuantityCorrectionComponent {
|
|
9
|
+
constructor(quantityCorrectionService, confirmationService, toasterService) {
|
|
10
|
+
this.quantityCorrectionService = quantityCorrectionService;
|
|
11
|
+
this.confirmationService = confirmationService;
|
|
12
|
+
this.toasterService = toasterService;
|
|
13
|
+
this.boxBarcode = '';
|
|
14
|
+
this.lines = [];
|
|
15
|
+
this.selectedLine = null;
|
|
16
|
+
this.lastSearchedBoxBarcode = '';
|
|
17
|
+
this.hasSearched = false;
|
|
18
|
+
this.suppressNextBlurSearch = false;
|
|
19
|
+
this.updateType = 'shelfAndOrder'; // default: Raf ve Sipariş
|
|
20
|
+
this.newQuantity = null;
|
|
21
|
+
this.isLoading = false;
|
|
22
|
+
this.isSaving = false;
|
|
23
|
+
}
|
|
24
|
+
onBoxBarcodeChange(value) {
|
|
25
|
+
this.boxBarcode = value;
|
|
26
|
+
if (value.trim() === '') {
|
|
27
|
+
this.resetLineState();
|
|
28
|
+
this.hasSearched = false;
|
|
29
|
+
this.lastSearchedBoxBarcode = '';
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (this.lastSearchedBoxBarcode && value.trim() !== this.lastSearchedBoxBarcode) {
|
|
33
|
+
this.resetLineState();
|
|
34
|
+
this.hasSearched = false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
onBoxBarcodeEnterKeydown() {
|
|
38
|
+
this.suppressNextBlurSearch = true;
|
|
39
|
+
this.onBoxBarcodeEnter();
|
|
40
|
+
}
|
|
41
|
+
onBoxBarcodeBlur() {
|
|
42
|
+
if (this.suppressNextBlurSearch) {
|
|
43
|
+
this.suppressNextBlurSearch = false;
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
this.onBoxBarcodeEnter();
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Kasa barkodu girilip Enter veya blur yapıldığında çalışır.
|
|
50
|
+
* Barkoda göre açık görev taslağı satırlarını yükler.
|
|
51
|
+
*/
|
|
52
|
+
onBoxBarcodeEnter() {
|
|
53
|
+
if (this.isLoading) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const trimmedBarcode = this.boxBarcode.trim();
|
|
57
|
+
this.resetLineState();
|
|
58
|
+
if (!trimmedBarcode) {
|
|
59
|
+
this.hasSearched = false;
|
|
60
|
+
this.lastSearchedBoxBarcode = '';
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
this.hasSearched = true;
|
|
64
|
+
this.lastSearchedBoxBarcode = trimmedBarcode;
|
|
65
|
+
this.isLoading = true;
|
|
66
|
+
this.quantityCorrectionService.getLinesByBoxBarcode(trimmedBarcode).subscribe({
|
|
67
|
+
next: (data) => {
|
|
68
|
+
this.lines = data || [];
|
|
69
|
+
this.isLoading = false;
|
|
70
|
+
if (this.lines.length === 0) {
|
|
71
|
+
this.toasterService.warn('Bu kasada açık görev bulunamadı.');
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
error: (error) => {
|
|
75
|
+
const errorMessage = error?.error?.error?.message || 'Kasa içeriği yüklenirken bir hata oluştu.';
|
|
76
|
+
this.toasterService.error(errorMessage);
|
|
77
|
+
this.isLoading = false;
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Grid'den satır seçildiğinde çalışır.
|
|
83
|
+
*/
|
|
84
|
+
onSelectLine(line) {
|
|
85
|
+
this.selectedLine = line;
|
|
86
|
+
this.newQuantity = line.CurrentQuantity;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Güncelle butonuna basıldığında seçili moda göre miktar düzeltme akışını başlatır.
|
|
90
|
+
*/
|
|
91
|
+
onUpdate() {
|
|
92
|
+
if (!this.selectedLine) {
|
|
93
|
+
this.toasterService.warn('Lütfen bir satır seçiniz.');
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (this.newQuantity === null || this.newQuantity < 0) {
|
|
97
|
+
this.toasterService.warn('Geçerli bir miktar giriniz.');
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
if (this.updateType === 'orderOnly') {
|
|
101
|
+
this.updateOrderOnly();
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
this.previewAndApplyShelfAndOrder();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* "Sadece Sipariş": stok hareketi yok, sipariş iptali/miktar değişikliği senaryosu.
|
|
109
|
+
*/
|
|
110
|
+
updateOrderOnly() {
|
|
111
|
+
const line = this.selectedLine;
|
|
112
|
+
if (this.newQuantity === line.CurrentQuantity) {
|
|
113
|
+
this.toasterService.warn('Yeni miktar mevcut miktar ile aynı.');
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const dto = {
|
|
117
|
+
ItrDocEntry: line.ItrDocEntry,
|
|
118
|
+
ItrLineNum: line.ItrLineNum,
|
|
119
|
+
ReservationCode: line.ReservationCode,
|
|
120
|
+
OrderDocEntry: line.OrderDocEntry,
|
|
121
|
+
LineNum: 0,
|
|
122
|
+
ItemCode: line.ItemCode,
|
|
123
|
+
NewQuantity: this.newQuantity,
|
|
124
|
+
UpdateType: this.updateType,
|
|
125
|
+
BinAbs: line.BinAbs,
|
|
126
|
+
BinCode: line.BinCode,
|
|
127
|
+
BatchNumber: line.BatchNumber,
|
|
128
|
+
WarehouseCode: line.WarehouseCode,
|
|
129
|
+
};
|
|
130
|
+
this.isSaving = true;
|
|
131
|
+
this.quantityCorrectionService.updateQuantity(dto).subscribe({
|
|
132
|
+
next: (result) => {
|
|
133
|
+
this.toasterService.success(result);
|
|
134
|
+
this.isSaving = false;
|
|
135
|
+
this.onBoxBarcodeEnter();
|
|
136
|
+
},
|
|
137
|
+
error: (error) => {
|
|
138
|
+
const errorMessage = error?.error?.error?.message || 'Miktar düzeltme sırasında bir hata oluştu.';
|
|
139
|
+
this.toasterService.error(errorMessage);
|
|
140
|
+
this.isSaving = false;
|
|
141
|
+
},
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* "Raf ve Sipariş": kasada fiilen sayılan miktar farklıysa Dummy Kasa / çapraz kasa kesin algoritması.
|
|
146
|
+
* Önce önizleme yapılır; çapraz kasa önerisi varsa kullanıcıya onay penceresi gösterilir.
|
|
147
|
+
*/
|
|
148
|
+
previewAndApplyShelfAndOrder() {
|
|
149
|
+
const line = this.selectedLine;
|
|
150
|
+
const previewDto = {
|
|
151
|
+
TaskDraftDocEntry: line.ItrDocEntry,
|
|
152
|
+
TaskDraftLineNum: line.ItrLineNum,
|
|
153
|
+
BinAbs: line.BinAbs,
|
|
154
|
+
BinCode: line.BinCode,
|
|
155
|
+
ItemCode: line.ItemCode,
|
|
156
|
+
WarehouseCode: line.WarehouseCode,
|
|
157
|
+
CountedQuantity: this.newQuantity,
|
|
158
|
+
};
|
|
159
|
+
this.isSaving = true;
|
|
160
|
+
this.quantityCorrectionService.previewQuantityCorrection(previewDto).subscribe({
|
|
161
|
+
next: (preview) => {
|
|
162
|
+
if (preview.RequiresConfirmation) {
|
|
163
|
+
this.isSaving = false;
|
|
164
|
+
this.confirmationService.warn(preview.ConfirmationMessage, 'Çapraz Kasa').subscribe((status) => {
|
|
165
|
+
const accepted = status === 'confirm';
|
|
166
|
+
this.applyShelfAndOrder(line, accepted, preview.ReplacementBinCode, preview.ReplacementBinAbs);
|
|
167
|
+
});
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
this.applyShelfAndOrder(line, false, '', 0);
|
|
171
|
+
},
|
|
172
|
+
error: (error) => {
|
|
173
|
+
const errorMessage = error?.error?.error?.message || 'Kasa düzeltmesi önizlenirken bir hata oluştu.';
|
|
174
|
+
this.toasterService.error(errorMessage);
|
|
175
|
+
this.isSaving = false;
|
|
176
|
+
},
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
applyShelfAndOrder(line, useReplacementBox, replacementBinCode, replacementBinAbs) {
|
|
180
|
+
const applyDto = {
|
|
181
|
+
TaskDraftDocEntry: line.ItrDocEntry,
|
|
182
|
+
TaskDraftLineNum: line.ItrLineNum,
|
|
183
|
+
BinAbs: line.BinAbs,
|
|
184
|
+
BinCode: line.BinCode,
|
|
185
|
+
OrderDocEntry: line.OrderDocEntry,
|
|
186
|
+
OrderDocNum: line.OrderDocNum,
|
|
187
|
+
ItemCode: line.ItemCode,
|
|
188
|
+
ItemDescription: line.ItemName,
|
|
189
|
+
WarehouseCode: line.WarehouseCode,
|
|
190
|
+
CountedQuantity: this.newQuantity,
|
|
191
|
+
UseReplacementBox: useReplacementBox,
|
|
192
|
+
ReplacementBinCode: replacementBinCode,
|
|
193
|
+
ReplacementBinAbs: replacementBinAbs,
|
|
194
|
+
};
|
|
195
|
+
this.isSaving = true;
|
|
196
|
+
this.quantityCorrectionService.applyQuantityCorrection(applyDto).subscribe({
|
|
197
|
+
next: (result) => {
|
|
198
|
+
this.toasterService.success(result);
|
|
199
|
+
this.isSaving = false;
|
|
200
|
+
this.onBoxBarcodeEnter();
|
|
201
|
+
},
|
|
202
|
+
error: (error) => {
|
|
203
|
+
const errorMessage = error?.error?.error?.message || 'Kasa düzeltmesi uygulanırken bir hata oluştu.';
|
|
204
|
+
this.toasterService.error(errorMessage);
|
|
205
|
+
this.isSaving = false;
|
|
206
|
+
},
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Formu temizler.
|
|
211
|
+
*/
|
|
212
|
+
onClear() {
|
|
213
|
+
this.boxBarcode = '';
|
|
214
|
+
this.resetLineState();
|
|
215
|
+
this.hasSearched = false;
|
|
216
|
+
this.lastSearchedBoxBarcode = '';
|
|
217
|
+
this.updateType = 'shelfAndOrder';
|
|
218
|
+
}
|
|
219
|
+
resetLineState() {
|
|
220
|
+
this.lines = [];
|
|
221
|
+
this.selectedLine = null;
|
|
222
|
+
this.newQuantity = null;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
QuantityCorrectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: QuantityCorrectionComponent, deps: [{ token: i1.QuantityCorrectionService }, { token: i2.ConfirmationService }, { token: i2.ToasterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
226
|
+
QuantityCorrectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: QuantityCorrectionComponent, selector: "lib-quantity-correction", ngImport: i0, template: "<abp-page [title]=\"'Al\u0131nacak Miktar D\u00FCzeltme'\">\n <div class=\"quantity-correction-container\">\n <div class=\"quantity-correction-layout\">\n <div class=\"qc-form-card\">\n\n <!-- Kasa Barkodu Giri\u015Fi -->\n <div class=\"form-section\">\n <label class=\"section-label\" for=\"boxBarcodeInput\">Kasa Kodu</label>\n <input type=\"text\" class=\"form-control form-input\" id=\"boxBarcodeInput\"\n [ngModel]=\"boxBarcode\"\n (ngModelChange)=\"onBoxBarcodeChange($event)\"\n (keydown.enter)=\"onBoxBarcodeEnterKeydown()\"\n (blur)=\"onBoxBarcodeBlur()\"\n placeholder=\"Kasa barkodunu girin veya taray\u0131n...\"\n [disabled]=\"isLoading\" />\n </div>\n\n <!-- Y\u00FCkleniyor -->\n <div class=\"form-section\" *ngIf=\"isLoading\">\n <div class=\"content-loading\">\n <i class=\"fa fa-spinner fa-spin\"></i> Kasa i\u00E7eri\u011Fi y\u00FCkleniyor...\n </div>\n </div>\n\n <!-- Sat\u0131r Listesi (Grid) -->\n <div class=\"form-section reservation-section\" *ngIf=\"lines.length > 0 && !isLoading\">\n <label class=\"section-label\">Kasadaki G\u00F6rev Sat\u0131rlar\u0131</label>\n <div class=\"reservation-table-wrap\">\n <table class=\"table table-bordered table-hover table-sm\">\n <thead class=\"table-header\">\n <tr>\n <th>Sipari\u015F No</th>\n <th>\u00DCr\u00FCn Kodu</th>\n <th>\u00DCr\u00FCn Ad\u0131</th>\n <th>Parti</th>\n <th>Miktar</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let l of lines\"\n (click)=\"onSelectLine(l)\"\n [class.selected-row]=\"selectedLine?.ReservationCode === l.ReservationCode\"\n class=\"clickable-row\">\n <td>{{ l.OrderDocNum }}</td>\n <td>{{ l.ItemCode }}</td>\n <td>{{ l.ItemName }}</td>\n <td>{{ l.BatchNumber }}</td>\n <td class=\"text-end\">{{ l.CurrentQuantity }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n <!-- Bo\u015F sonu\u00E7 -->\n <div class=\"form-section\" *ngIf=\"hasSearched && lastSearchedBoxBarcode && lines.length === 0 && !isLoading\">\n <div class=\"content-empty\">\n <i class=\"fa fa-info-circle\"></i> Bu kasada a\u00E7\u0131k g\u00F6rev bulunamad\u0131.\n </div>\n </div>\n\n <!-- D\u00FCzenleme Paneli (Sat\u0131r se\u00E7ilince aktif) -->\n <div *ngIf=\"selectedLine\" class=\"edit-panel\">\n <hr class=\"form-divider\" />\n\n <!-- \u00DCr\u00FCn Bilgileri (readonly) -->\n <div class=\"form-section product-info\">\n <div class=\"info-row\">\n <span class=\"info-label\">\u00DCr\u00FCn Kodu:</span>\n <span class=\"info-value\">{{ selectedLine.ItemCode }}</span>\n </div>\n <div class=\"info-row\">\n <span class=\"info-label\">\u00DCr\u00FCn Ad\u0131:</span>\n <span class=\"info-value\">{{ selectedLine.ItemName }}</span>\n </div>\n <div class=\"info-row\">\n <span class=\"info-label\">Beklenen Miktar:</span>\n <span class=\"info-value info-qty\">{{ selectedLine.CurrentQuantity }}</span>\n </div>\n <div class=\"info-row\">\n <span class=\"info-label\">Sipari\u015F No:</span>\n <span class=\"info-value\">{{ selectedLine.OrderDocNum }}</span>\n </div>\n </div>\n\n <hr class=\"form-divider\" />\n\n <!-- G\u00FCncelleme Tipi - Radio Buttons -->\n <div class=\"form-section\">\n <label class=\"section-label\">G\u00FCncelleme Tipi</label>\n <div class=\"radio-group\">\n <label class=\"radio-option\">\n <input type=\"radio\" name=\"updateType\"\n value=\"shelfAndOrder\"\n [(ngModel)]=\"updateType\" />\n <span class=\"radio-text\">Raf ve Sipari\u015F</span>\n </label>\n <label class=\"radio-option\">\n <input type=\"radio\" name=\"updateType\"\n value=\"orderOnly\"\n [(ngModel)]=\"updateType\" />\n <span class=\"radio-text\">Sadece Sipari\u015F</span>\n </label>\n </div>\n </div>\n\n <hr class=\"form-divider\" />\n\n <!-- Miktar -->\n <div class=\"form-section\">\n <label class=\"section-label\" for=\"newQuantityInput\">\n {{ updateType === 'orderOnly' ? 'Yeni Sipari\u015F Miktar\u0131' : 'Kasada Say\u0131lan Miktar' }}\n </label>\n <input type=\"number\" class=\"form-control form-input\" id=\"newQuantityInput\"\n [(ngModel)]=\"newQuantity\"\n (keydown.enter)=\"onUpdate()\"\n placeholder=\"Miktar\u0131 girin...\"\n min=\"0\" />\n </div>\n\n <hr class=\"form-divider\" />\n\n <!-- Butonlar -->\n <div class=\"form-section button-group\">\n <button class=\"btn btn-action-success btn-sm\" (click)=\"onUpdate()\"\n [disabled]=\"isSaving || newQuantity === null || newQuantity < 0\">\n <i class=\"fa\" [ngClass]=\"isSaving ? 'fa-spinner fa-spin' : 'fa-check'\"></i>\n {{ isSaving ? 'G\u00FCncelleniyor...' : 'G\u00FCncelle' }}\n </button>\n <button class=\"btn btn-action-outline btn-sm\" (click)=\"onClear()\" [disabled]=\"isSaving\">\n <i class=\"fa fa-eraser\"></i> Temizle\n </button>\n </div>\n </div>\n\n </div>\n </div>\n </div>\n</abp-page>\n", styles: ["lib-quantity-correction .abp-page-content{display:block!important;flex:unset!important;min-height:unset!important;height:auto!important}lib-quantity-correction .abp-page-content>.row{display:block!important;flex:unset!important;min-height:unset!important}lib-quantity-correction .abp-page-content>.row>.col,lib-quantity-correction .abp-page-content>.row>[class*=col-]{display:block!important;flex:unset!important;min-height:unset!important}.quantity-correction-container{padding:1rem}.quantity-correction-layout{max-width:800px;margin:0 auto}.qc-form-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.form-section{margin-bottom:1rem}.section-label{font-weight:600;font-size:.9rem;color:#333;margin-bottom:.4rem;display:block}.form-input{font-size:1rem;padding:.5rem .75rem}.content-loading{color:#666;padding:.5rem 0;font-size:.9rem}.content-empty{background:#f8f9fa;border:1px solid #e2e6ea;border-radius:6px;padding:.75rem 1rem;color:#6c757d;font-size:.9rem}.reservation-section{margin-bottom:.25rem}.reservation-table-wrap{overflow-x:auto;width:100%}.reservation-section .table{margin-bottom:0}.table-header{background-color:#f0f2f5}.table-header th{font-weight:600;font-size:.85rem;color:#444;white-space:nowrap}.clickable-row{cursor:pointer;transition:background-color .15s}.clickable-row:hover{background-color:#e9f5ff}.selected-row{background-color:#cce5ff!important;font-weight:500}.edit-panel{margin-top:0}.product-info{background:#f8f9fa;border-radius:6px;padding:.75rem 1rem}.info-row{display:flex;gap:.5rem;margin-bottom:.3rem;align-items:baseline}.info-label{font-weight:600;font-size:.85rem;color:#555;min-width:120px}.info-value{font-size:.9rem;color:#222}.info-qty{font-weight:700;color:#0d6efd}.radio-group{display:flex;gap:1.5rem}.radio-option{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.9rem}.radio-text{color:#333}.form-divider{border:none;border-top:1px solid #e9ecef;margin:.75rem 0}.button-group{display:flex;gap:.5rem}.btn-action-success{background-color:#28a745;border-color:#28a745;color:#fff;padding:.4rem 1.2rem;font-size:.9rem}.btn-action-success:hover:not(:disabled){background-color:#218838}.btn-action-success:disabled{opacity:.6}.btn-action-outline{background-color:transparent;border:1px solid #6c757d;color:#6c757d;padding:.4rem 1.2rem;font-size:.9rem}.btn-action-outline:hover:not(:disabled){background-color:#f8f9fa}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
227
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: QuantityCorrectionComponent, decorators: [{
|
|
228
|
+
type: Component,
|
|
229
|
+
args: [{ selector: 'lib-quantity-correction', encapsulation: ViewEncapsulation.None, template: "<abp-page [title]=\"'Al\u0131nacak Miktar D\u00FCzeltme'\">\n <div class=\"quantity-correction-container\">\n <div class=\"quantity-correction-layout\">\n <div class=\"qc-form-card\">\n\n <!-- Kasa Barkodu Giri\u015Fi -->\n <div class=\"form-section\">\n <label class=\"section-label\" for=\"boxBarcodeInput\">Kasa Kodu</label>\n <input type=\"text\" class=\"form-control form-input\" id=\"boxBarcodeInput\"\n [ngModel]=\"boxBarcode\"\n (ngModelChange)=\"onBoxBarcodeChange($event)\"\n (keydown.enter)=\"onBoxBarcodeEnterKeydown()\"\n (blur)=\"onBoxBarcodeBlur()\"\n placeholder=\"Kasa barkodunu girin veya taray\u0131n...\"\n [disabled]=\"isLoading\" />\n </div>\n\n <!-- Y\u00FCkleniyor -->\n <div class=\"form-section\" *ngIf=\"isLoading\">\n <div class=\"content-loading\">\n <i class=\"fa fa-spinner fa-spin\"></i> Kasa i\u00E7eri\u011Fi y\u00FCkleniyor...\n </div>\n </div>\n\n <!-- Sat\u0131r Listesi (Grid) -->\n <div class=\"form-section reservation-section\" *ngIf=\"lines.length > 0 && !isLoading\">\n <label class=\"section-label\">Kasadaki G\u00F6rev Sat\u0131rlar\u0131</label>\n <div class=\"reservation-table-wrap\">\n <table class=\"table table-bordered table-hover table-sm\">\n <thead class=\"table-header\">\n <tr>\n <th>Sipari\u015F No</th>\n <th>\u00DCr\u00FCn Kodu</th>\n <th>\u00DCr\u00FCn Ad\u0131</th>\n <th>Parti</th>\n <th>Miktar</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let l of lines\"\n (click)=\"onSelectLine(l)\"\n [class.selected-row]=\"selectedLine?.ReservationCode === l.ReservationCode\"\n class=\"clickable-row\">\n <td>{{ l.OrderDocNum }}</td>\n <td>{{ l.ItemCode }}</td>\n <td>{{ l.ItemName }}</td>\n <td>{{ l.BatchNumber }}</td>\n <td class=\"text-end\">{{ l.CurrentQuantity }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n <!-- Bo\u015F sonu\u00E7 -->\n <div class=\"form-section\" *ngIf=\"hasSearched && lastSearchedBoxBarcode && lines.length === 0 && !isLoading\">\n <div class=\"content-empty\">\n <i class=\"fa fa-info-circle\"></i> Bu kasada a\u00E7\u0131k g\u00F6rev bulunamad\u0131.\n </div>\n </div>\n\n <!-- D\u00FCzenleme Paneli (Sat\u0131r se\u00E7ilince aktif) -->\n <div *ngIf=\"selectedLine\" class=\"edit-panel\">\n <hr class=\"form-divider\" />\n\n <!-- \u00DCr\u00FCn Bilgileri (readonly) -->\n <div class=\"form-section product-info\">\n <div class=\"info-row\">\n <span class=\"info-label\">\u00DCr\u00FCn Kodu:</span>\n <span class=\"info-value\">{{ selectedLine.ItemCode }}</span>\n </div>\n <div class=\"info-row\">\n <span class=\"info-label\">\u00DCr\u00FCn Ad\u0131:</span>\n <span class=\"info-value\">{{ selectedLine.ItemName }}</span>\n </div>\n <div class=\"info-row\">\n <span class=\"info-label\">Beklenen Miktar:</span>\n <span class=\"info-value info-qty\">{{ selectedLine.CurrentQuantity }}</span>\n </div>\n <div class=\"info-row\">\n <span class=\"info-label\">Sipari\u015F No:</span>\n <span class=\"info-value\">{{ selectedLine.OrderDocNum }}</span>\n </div>\n </div>\n\n <hr class=\"form-divider\" />\n\n <!-- G\u00FCncelleme Tipi - Radio Buttons -->\n <div class=\"form-section\">\n <label class=\"section-label\">G\u00FCncelleme Tipi</label>\n <div class=\"radio-group\">\n <label class=\"radio-option\">\n <input type=\"radio\" name=\"updateType\"\n value=\"shelfAndOrder\"\n [(ngModel)]=\"updateType\" />\n <span class=\"radio-text\">Raf ve Sipari\u015F</span>\n </label>\n <label class=\"radio-option\">\n <input type=\"radio\" name=\"updateType\"\n value=\"orderOnly\"\n [(ngModel)]=\"updateType\" />\n <span class=\"radio-text\">Sadece Sipari\u015F</span>\n </label>\n </div>\n </div>\n\n <hr class=\"form-divider\" />\n\n <!-- Miktar -->\n <div class=\"form-section\">\n <label class=\"section-label\" for=\"newQuantityInput\">\n {{ updateType === 'orderOnly' ? 'Yeni Sipari\u015F Miktar\u0131' : 'Kasada Say\u0131lan Miktar' }}\n </label>\n <input type=\"number\" class=\"form-control form-input\" id=\"newQuantityInput\"\n [(ngModel)]=\"newQuantity\"\n (keydown.enter)=\"onUpdate()\"\n placeholder=\"Miktar\u0131 girin...\"\n min=\"0\" />\n </div>\n\n <hr class=\"form-divider\" />\n\n <!-- Butonlar -->\n <div class=\"form-section button-group\">\n <button class=\"btn btn-action-success btn-sm\" (click)=\"onUpdate()\"\n [disabled]=\"isSaving || newQuantity === null || newQuantity < 0\">\n <i class=\"fa\" [ngClass]=\"isSaving ? 'fa-spinner fa-spin' : 'fa-check'\"></i>\n {{ isSaving ? 'G\u00FCncelleniyor...' : 'G\u00FCncelle' }}\n </button>\n <button class=\"btn btn-action-outline btn-sm\" (click)=\"onClear()\" [disabled]=\"isSaving\">\n <i class=\"fa fa-eraser\"></i> Temizle\n </button>\n </div>\n </div>\n\n </div>\n </div>\n </div>\n</abp-page>\n", styles: ["lib-quantity-correction .abp-page-content{display:block!important;flex:unset!important;min-height:unset!important;height:auto!important}lib-quantity-correction .abp-page-content>.row{display:block!important;flex:unset!important;min-height:unset!important}lib-quantity-correction .abp-page-content>.row>.col,lib-quantity-correction .abp-page-content>.row>[class*=col-]{display:block!important;flex:unset!important;min-height:unset!important}.quantity-correction-container{padding:1rem}.quantity-correction-layout{max-width:800px;margin:0 auto}.qc-form-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.form-section{margin-bottom:1rem}.section-label{font-weight:600;font-size:.9rem;color:#333;margin-bottom:.4rem;display:block}.form-input{font-size:1rem;padding:.5rem .75rem}.content-loading{color:#666;padding:.5rem 0;font-size:.9rem}.content-empty{background:#f8f9fa;border:1px solid #e2e6ea;border-radius:6px;padding:.75rem 1rem;color:#6c757d;font-size:.9rem}.reservation-section{margin-bottom:.25rem}.reservation-table-wrap{overflow-x:auto;width:100%}.reservation-section .table{margin-bottom:0}.table-header{background-color:#f0f2f5}.table-header th{font-weight:600;font-size:.85rem;color:#444;white-space:nowrap}.clickable-row{cursor:pointer;transition:background-color .15s}.clickable-row:hover{background-color:#e9f5ff}.selected-row{background-color:#cce5ff!important;font-weight:500}.edit-panel{margin-top:0}.product-info{background:#f8f9fa;border-radius:6px;padding:.75rem 1rem}.info-row{display:flex;gap:.5rem;margin-bottom:.3rem;align-items:baseline}.info-label{font-weight:600;font-size:.85rem;color:#555;min-width:120px}.info-value{font-size:.9rem;color:#222}.info-qty{font-weight:700;color:#0d6efd}.radio-group{display:flex;gap:1.5rem}.radio-option{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.9rem}.radio-text{color:#333}.form-divider{border:none;border-top:1px solid #e9ecef;margin:.75rem 0}.button-group{display:flex;gap:.5rem}.btn-action-success{background-color:#28a745;border-color:#28a745;color:#fff;padding:.4rem 1.2rem;font-size:.9rem}.btn-action-success:hover:not(:disabled){background-color:#218838}.btn-action-success:disabled{opacity:.6}.btn-action-outline{background-color:transparent;border:1px solid #6c757d;color:#6c757d;padding:.4rem 1.2rem;font-size:.9rem}.btn-action-outline:hover:not(:disabled){background-color:#f8f9fa}\n"] }]
|
|
230
|
+
}], ctorParameters: function () { return [{ type: i1.QuantityCorrectionService }, { type: i2.ConfirmationService }, { type: i2.ToasterService }]; } });
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbnRpdHktY29ycmVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC13YXJlaG91c2Uvc3JjL2xpYi9jb21wb25lbnRzL3F1YW50aXR5LWNvcnJlY3Rpb24vcXVhbnRpdHktY29ycmVjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC13YXJlaG91c2Uvc3JjL2xpYi9jb21wb25lbnRzL3F1YW50aXR5LWNvcnJlY3Rpb24vcXVhbnRpdHktY29ycmVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBZ0I3RCxNQUFNLE9BQU8sMkJBQTJCO0lBY3RDLFlBQ1UseUJBQW9ELEVBQ3BELG1CQUF3QyxFQUN4QyxjQUE4QjtRQUY5Qiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBaEJ4QyxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLFVBQUssR0FBNEIsRUFBRSxDQUFDO1FBQ3BDLGlCQUFZLEdBQWlDLElBQUksQ0FBQztRQUNsRCwyQkFBc0IsR0FBVyxFQUFFLENBQUM7UUFDcEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsMkJBQXNCLEdBQVksS0FBSyxDQUFDO1FBRXhDLGVBQVUsR0FBVyxlQUFlLENBQUMsQ0FBQywwQkFBMEI7UUFDaEUsZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO1FBRWxDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsYUFBUSxHQUFZLEtBQUssQ0FBQztJQU12QixDQUFDO0lBRUosa0JBQWtCLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUV4QixJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7WUFDakMsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsc0JBQXNCLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMvRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQy9CLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7WUFDcEMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixPQUFPO1NBQ1I7UUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTlDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7WUFDakMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMseUJBQXlCLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzVFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO29CQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO2lCQUM5RDtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixNQUFNLFlBQVksR0FDaEIsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLDJDQUEyQyxDQUFDO2dCQUM5RSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksQ0FBQyxJQUEyQjtRQUN0QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDdEQsT0FBTztTQUNSO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBRTtZQUNyRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ3hELE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3hCO2FBQU07WUFDTCxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztTQUNyQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWU7UUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQWEsQ0FBQztRQUVoQyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUM3QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBQ2hFLE9BQU87U0FDUjtRQUVELE1BQU0sR0FBRyxHQUEwQjtZQUNqQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsT0FBTyxFQUFFLENBQUM7WUFDVixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFZO1lBQzlCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDbEMsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzNELElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLE1BQU0sWUFBWSxHQUNoQixLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLElBQUksNENBQTRDLENBQUM7Z0JBQy9FLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN4QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNLLDRCQUE0QjtRQUNsQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBYSxDQUFDO1FBRWhDLE1BQU0sVUFBVSxHQUFvQztZQUNsRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsV0FBVztZQUNuQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUNqQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFZO1NBQ25DLENBQUM7UUFFRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMseUJBQXlCLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzdFLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNoQixJQUFJLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTtvQkFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7b0JBQ3RCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO3dCQUM3RixNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDO3dCQUN0QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQ2pHLENBQUMsQ0FBQyxDQUFDO29CQUNILE9BQU87aUJBQ1I7Z0JBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzlDLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixNQUFNLFlBQVksR0FDaEIsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLCtDQUErQyxDQUFDO2dCQUNsRixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDeEIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0IsQ0FDeEIsSUFBMkIsRUFDM0IsaUJBQTBCLEVBQzFCLGtCQUEwQixFQUMxQixpQkFBeUI7UUFFekIsTUFBTSxRQUFRLEdBQWtDO1lBQzlDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ25DLGdCQUFnQixFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ2pDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsZUFBZSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQzlCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVk7WUFDbEMsaUJBQWlCLEVBQUUsaUJBQWlCO1lBQ3BDLGtCQUFrQixFQUFFLGtCQUFrQjtZQUN0QyxpQkFBaUIsRUFBRSxpQkFBaUI7U0FDckMsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDekUsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUN0QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsTUFBTSxZQUFZLEdBQ2hCLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSwrQ0FBK0MsQ0FBQztnQkFDbEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQUM7SUFDcEMsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQzs7d0hBNVBVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLCtEQ2hCeEMseS9MQTJJQTsyRkQzSGEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLHlCQUF5QixpQkFHcEIsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFF1YW50aXR5Q29ycmVjdGlvblNlcnZpY2UsXG4gIEJpblJlc2VydmF0aW9uSW5mb0R0byxcbiAgUXVhbnRpdHlDb3JyZWN0aW9uRHRvLFxuICBCb3hRdWFudGl0eUNvcnJlY3Rpb25QcmV2aWV3RHRvLFxuICBCb3hRdWFudGl0eUNvcnJlY3Rpb25BcHBseUR0byxcbn0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L3F1YW50aXR5LWNvcnJlY3Rpb24vcXVhbnRpdHktY29ycmVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcXVhbnRpdHktY29ycmVjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWFudGl0eS1jb3JyZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVhbnRpdHktY29ycmVjdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBRdWFudGl0eUNvcnJlY3Rpb25Db21wb25lbnQge1xuICBib3hCYXJjb2RlOiBzdHJpbmcgPSAnJztcbiAgbGluZXM6IEJpblJlc2VydmF0aW9uSW5mb0R0b1tdID0gW107XG4gIHNlbGVjdGVkTGluZTogQmluUmVzZXJ2YXRpb25JbmZvRHRvIHwgbnVsbCA9IG51bGw7XG4gIGxhc3RTZWFyY2hlZEJveEJhcmNvZGU6IHN0cmluZyA9ICcnO1xuICBoYXNTZWFyY2hlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBzdXBwcmVzc05leHRCbHVyU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgdXBkYXRlVHlwZTogc3RyaW5nID0gJ3NoZWxmQW5kT3JkZXInOyAvLyBkZWZhdWx0OiBSYWYgdmUgU2lwYXJpxZ9cbiAgbmV3UXVhbnRpdHk6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1NhdmluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcXVhbnRpdHlDb3JyZWN0aW9uU2VydmljZTogUXVhbnRpdHlDb3JyZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2VcbiAgKSB7fVxuXG4gIG9uQm94QmFyY29kZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5ib3hCYXJjb2RlID0gdmFsdWU7XG5cbiAgICBpZiAodmFsdWUudHJpbSgpID09PSAnJykge1xuICAgICAgdGhpcy5yZXNldExpbmVTdGF0ZSgpO1xuICAgICAgdGhpcy5oYXNTZWFyY2hlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5sYXN0U2VhcmNoZWRCb3hCYXJjb2RlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGFzdFNlYXJjaGVkQm94QmFyY29kZSAmJiB2YWx1ZS50cmltKCkgIT09IHRoaXMubGFzdFNlYXJjaGVkQm94QmFyY29kZSkge1xuICAgICAgdGhpcy5yZXNldExpbmVTdGF0ZSgpO1xuICAgICAgdGhpcy5oYXNTZWFyY2hlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uQm94QmFyY29kZUVudGVyS2V5ZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLnN1cHByZXNzTmV4dEJsdXJTZWFyY2ggPSB0cnVlO1xuICAgIHRoaXMub25Cb3hCYXJjb2RlRW50ZXIoKTtcbiAgfVxuXG4gIG9uQm94QmFyY29kZUJsdXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3VwcHJlc3NOZXh0Qmx1clNlYXJjaCkge1xuICAgICAgdGhpcy5zdXBwcmVzc05leHRCbHVyU2VhcmNoID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5vbkJveEJhcmNvZGVFbnRlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEthc2EgYmFya29kdSBnaXJpbGlwIEVudGVyIHZleWEgYmx1ciB5YXDEsWxkxLHEn8SxbmRhIMOnYWzEscWfxLFyLlxuICAgKiBCYXJrb2RhIGfDtnJlIGHDp8SxayBnw7ZyZXYgdGFzbGHEn8SxIHNhdMSxcmxhcsSxbsSxIHnDvGtsZXIuXG4gICAqL1xuICBvbkJveEJhcmNvZGVFbnRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0cmltbWVkQmFyY29kZSA9IHRoaXMuYm94QmFyY29kZS50cmltKCk7XG5cbiAgICB0aGlzLnJlc2V0TGluZVN0YXRlKCk7XG5cbiAgICBpZiAoIXRyaW1tZWRCYXJjb2RlKSB7XG4gICAgICB0aGlzLmhhc1NlYXJjaGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmxhc3RTZWFyY2hlZEJveEJhcmNvZGUgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmhhc1NlYXJjaGVkID0gdHJ1ZTtcbiAgICB0aGlzLmxhc3RTZWFyY2hlZEJveEJhcmNvZGUgPSB0cmltbWVkQmFyY29kZTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5xdWFudGl0eUNvcnJlY3Rpb25TZXJ2aWNlLmdldExpbmVzQnlCb3hCYXJjb2RlKHRyaW1tZWRCYXJjb2RlKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5saW5lcyA9IGRhdGEgfHwgW107XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLmxpbmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uud2FybignQnUga2FzYWRhIGHDp8SxayBnw7ZyZXYgYnVsdW5hbWFkxLEuJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgZXJyb3I/LmVycm9yPy5lcnJvcj8ubWVzc2FnZSB8fCAnS2FzYSBpw6dlcmnEn2kgecO8a2xlbmlya2VuIGJpciBoYXRhIG9sdcWfdHUuJztcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmlkJ2RlbiBzYXTEsXIgc2XDp2lsZGnEn2luZGUgw6dhbMSxxZ/EsXIuXG4gICAqL1xuICBvblNlbGVjdExpbmUobGluZTogQmluUmVzZXJ2YXRpb25JbmZvRHRvKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZExpbmUgPSBsaW5lO1xuICAgIHRoaXMubmV3UXVhbnRpdHkgPSBsaW5lLkN1cnJlbnRRdWFudGl0eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHw7xuY2VsbGUgYnV0b251bmEgYmFzxLFsZMSxxJ/EsW5kYSBzZcOnaWxpIG1vZGEgZ8O2cmUgbWlrdGFyIGTDvHplbHRtZSBha8SxxZ/EsW7EsSBiYcWfbGF0xLFyLlxuICAgKi9cbiAgb25VcGRhdGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkTGluZSkge1xuICAgICAgdGhpcy50b2FzdGVyU2VydmljZS53YXJuKCdMw7x0ZmVuIGJpciBzYXTEsXIgc2XDp2luaXouJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLm5ld1F1YW50aXR5ID09PSBudWxsIHx8IHRoaXMubmV3UXVhbnRpdHkgPCAwKSB7XG4gICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLndhcm4oJ0dlw6dlcmxpIGJpciBtaWt0YXIgZ2lyaW5pei4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy51cGRhdGVUeXBlID09PSAnb3JkZXJPbmx5Jykge1xuICAgICAgdGhpcy51cGRhdGVPcmRlck9ubHkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmV2aWV3QW5kQXBwbHlTaGVsZkFuZE9yZGVyKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFwiU2FkZWNlIFNpcGFyacWfXCI6IHN0b2sgaGFyZWtldGkgeW9rLCBzaXBhcmnFnyBpcHRhbGkvbWlrdGFyIGRlxJ9pxZ9pa2xpxJ9pIHNlbmFyeW9zdS5cbiAgICovXG4gIHByaXZhdGUgdXBkYXRlT3JkZXJPbmx5KCk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmUgPSB0aGlzLnNlbGVjdGVkTGluZSE7XG5cbiAgICBpZiAodGhpcy5uZXdRdWFudGl0eSA9PT0gbGluZS5DdXJyZW50UXVhbnRpdHkpIHtcbiAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uud2FybignWWVuaSBtaWt0YXIgbWV2Y3V0IG1pa3RhciBpbGUgYXluxLEuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZHRvOiBRdWFudGl0eUNvcnJlY3Rpb25EdG8gPSB7XG4gICAgICBJdHJEb2NFbnRyeTogbGluZS5JdHJEb2NFbnRyeSxcbiAgICAgIEl0ckxpbmVOdW06IGxpbmUuSXRyTGluZU51bSxcbiAgICAgIFJlc2VydmF0aW9uQ29kZTogbGluZS5SZXNlcnZhdGlvbkNvZGUsXG4gICAgICBPcmRlckRvY0VudHJ5OiBsaW5lLk9yZGVyRG9jRW50cnksXG4gICAgICBMaW5lTnVtOiAwLCAvLyBCYWNrZW5kIHNpcGFyacWfdGVuIG90b21hdGlrIGJ1bGFjYWtcbiAgICAgIEl0ZW1Db2RlOiBsaW5lLkl0ZW1Db2RlLFxuICAgICAgTmV3UXVhbnRpdHk6IHRoaXMubmV3UXVhbnRpdHkhLFxuICAgICAgVXBkYXRlVHlwZTogdGhpcy51cGRhdGVUeXBlLFxuICAgICAgQmluQWJzOiBsaW5lLkJpbkFicyxcbiAgICAgIEJpbkNvZGU6IGxpbmUuQmluQ29kZSxcbiAgICAgIEJhdGNoTnVtYmVyOiBsaW5lLkJhdGNoTnVtYmVyLFxuICAgICAgV2FyZWhvdXNlQ29kZTogbGluZS5XYXJlaG91c2VDb2RlLFxuICAgIH07XG5cbiAgICB0aGlzLmlzU2F2aW5nID0gdHJ1ZTtcbiAgICB0aGlzLnF1YW50aXR5Q29ycmVjdGlvblNlcnZpY2UudXBkYXRlUXVhbnRpdHkoZHRvKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3VsdCkgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MocmVzdWx0KTtcbiAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uQm94QmFyY29kZUVudGVyKCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPVxuICAgICAgICAgIGVycm9yPy5lcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfHwgJ01pa3RhciBkw7x6ZWx0bWUgc8SxcmFzxLFuZGEgYmlyIGhhdGEgb2x1xZ90dS4nO1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogXCJSYWYgdmUgU2lwYXJpxZ9cIjoga2FzYWRhIGZpaWxlbiBzYXnEsWxhbiBtaWt0YXIgZmFya2zEsXlzYSBEdW1teSBLYXNhIC8gw6dhcHJheiBrYXNhIGtlc2luIGFsZ29yaXRtYXPEsS5cbiAgICogw5ZuY2Ugw7ZuaXpsZW1lIHlhcMSxbMSxcjsgw6dhcHJheiBrYXNhIMO2bmVyaXNpIHZhcnNhIGt1bGxhbsSxY8SxeWEgb25heSBwZW5jZXJlc2kgZ8O2c3RlcmlsaXIuXG4gICAqL1xuICBwcml2YXRlIHByZXZpZXdBbmRBcHBseVNoZWxmQW5kT3JkZXIoKTogdm9pZCB7XG4gICAgY29uc3QgbGluZSA9IHRoaXMuc2VsZWN0ZWRMaW5lITtcblxuICAgIGNvbnN0IHByZXZpZXdEdG86IEJveFF1YW50aXR5Q29ycmVjdGlvblByZXZpZXdEdG8gPSB7XG4gICAgICBUYXNrRHJhZnREb2NFbnRyeTogbGluZS5JdHJEb2NFbnRyeSxcbiAgICAgIFRhc2tEcmFmdExpbmVOdW06IGxpbmUuSXRyTGluZU51bSxcbiAgICAgIEJpbkFiczogbGluZS5CaW5BYnMsXG4gICAgICBCaW5Db2RlOiBsaW5lLkJpbkNvZGUsXG4gICAgICBJdGVtQ29kZTogbGluZS5JdGVtQ29kZSxcbiAgICAgIFdhcmVob3VzZUNvZGU6IGxpbmUuV2FyZWhvdXNlQ29kZSxcbiAgICAgIENvdW50ZWRRdWFudGl0eTogdGhpcy5uZXdRdWFudGl0eSEsXG4gICAgfTtcblxuICAgIHRoaXMuaXNTYXZpbmcgPSB0cnVlO1xuICAgIHRoaXMucXVhbnRpdHlDb3JyZWN0aW9uU2VydmljZS5wcmV2aWV3UXVhbnRpdHlDb3JyZWN0aW9uKHByZXZpZXdEdG8pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocHJldmlldykgPT4ge1xuICAgICAgICBpZiAocHJldmlldy5SZXF1aXJlc0NvbmZpcm1hdGlvbikge1xuICAgICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2Uud2FybihwcmV2aWV3LkNvbmZpcm1hdGlvbk1lc3NhZ2UsICfDh2FwcmF6IEthc2EnKS5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWNjZXB0ZWQgPSBzdGF0dXMgPT09ICdjb25maXJtJztcbiAgICAgICAgICAgIHRoaXMuYXBwbHlTaGVsZkFuZE9yZGVyKGxpbmUsIGFjY2VwdGVkLCBwcmV2aWV3LlJlcGxhY2VtZW50QmluQ29kZSwgcHJldmlldy5SZXBsYWNlbWVudEJpbkFicyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hcHBseVNoZWxmQW5kT3JkZXIobGluZSwgZmFsc2UsICcnLCAwKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgZXJyb3I/LmVycm9yPy5lcnJvcj8ubWVzc2FnZSB8fCAnS2FzYSBkw7x6ZWx0bWVzaSDDtm5pemxlbmlya2VuIGJpciBoYXRhIG9sdcWfdHUuJztcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICB0aGlzLmlzU2F2aW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNoZWxmQW5kT3JkZXIoXG4gICAgbGluZTogQmluUmVzZXJ2YXRpb25JbmZvRHRvLFxuICAgIHVzZVJlcGxhY2VtZW50Qm94OiBib29sZWFuLFxuICAgIHJlcGxhY2VtZW50QmluQ29kZTogc3RyaW5nLFxuICAgIHJlcGxhY2VtZW50QmluQWJzOiBudW1iZXJcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgYXBwbHlEdG86IEJveFF1YW50aXR5Q29ycmVjdGlvbkFwcGx5RHRvID0ge1xuICAgICAgVGFza0RyYWZ0RG9jRW50cnk6IGxpbmUuSXRyRG9jRW50cnksXG4gICAgICBUYXNrRHJhZnRMaW5lTnVtOiBsaW5lLkl0ckxpbmVOdW0sXG4gICAgICBCaW5BYnM6IGxpbmUuQmluQWJzLFxuICAgICAgQmluQ29kZTogbGluZS5CaW5Db2RlLFxuICAgICAgT3JkZXJEb2NFbnRyeTogbGluZS5PcmRlckRvY0VudHJ5LFxuICAgICAgT3JkZXJEb2NOdW06IGxpbmUuT3JkZXJEb2NOdW0sXG4gICAgICBJdGVtQ29kZTogbGluZS5JdGVtQ29kZSxcbiAgICAgIEl0ZW1EZXNjcmlwdGlvbjogbGluZS5JdGVtTmFtZSxcbiAgICAgIFdhcmVob3VzZUNvZGU6IGxpbmUuV2FyZWhvdXNlQ29kZSxcbiAgICAgIENvdW50ZWRRdWFudGl0eTogdGhpcy5uZXdRdWFudGl0eSEsXG4gICAgICBVc2VSZXBsYWNlbWVudEJveDogdXNlUmVwbGFjZW1lbnRCb3gsXG4gICAgICBSZXBsYWNlbWVudEJpbkNvZGU6IHJlcGxhY2VtZW50QmluQ29kZSxcbiAgICAgIFJlcGxhY2VtZW50QmluQWJzOiByZXBsYWNlbWVudEJpbkFicyxcbiAgICB9O1xuXG4gICAgdGhpcy5pc1NhdmluZyA9IHRydWU7XG4gICAgdGhpcy5xdWFudGl0eUNvcnJlY3Rpb25TZXJ2aWNlLmFwcGx5UXVhbnRpdHlDb3JyZWN0aW9uKGFwcGx5RHRvKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3VsdCkgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MocmVzdWx0KTtcbiAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uQm94QmFyY29kZUVudGVyKCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPVxuICAgICAgICAgIGVycm9yPy5lcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfHwgJ0thc2EgZMO8emVsdG1lc2kgdXlndWxhbsSxcmtlbiBiaXIgaGF0YSBvbHXFn3R1Lic7XG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtdSB0ZW1pemxlci5cbiAgICovXG4gIG9uQ2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5ib3hCYXJjb2RlID0gJyc7XG4gICAgdGhpcy5yZXNldExpbmVTdGF0ZSgpO1xuICAgIHRoaXMuaGFzU2VhcmNoZWQgPSBmYWxzZTtcbiAgICB0aGlzLmxhc3RTZWFyY2hlZEJveEJhcmNvZGUgPSAnJztcbiAgICB0aGlzLnVwZGF0ZVR5cGUgPSAnc2hlbGZBbmRPcmRlcic7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0TGluZVN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMubGluZXMgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkTGluZSA9IG51bGw7XG4gICAgdGhpcy5uZXdRdWFudGl0eSA9IG51bGw7XG4gIH1cbn1cbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ0FsxLFuYWNhayBNaWt0YXIgRMO8emVsdG1lJ1wiPlxuICA8ZGl2IGNsYXNzPVwicXVhbnRpdHktY29ycmVjdGlvbi1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicXVhbnRpdHktY29ycmVjdGlvbi1sYXlvdXRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJxYy1mb3JtLWNhcmRcIj5cblxuICAgICAgICA8IS0tIEthc2EgQmFya29kdSBHaXJpxZ9pIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1zZWN0aW9uXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwic2VjdGlvbi1sYWJlbFwiIGZvcj1cImJveEJhcmNvZGVJbnB1dFwiPkthc2EgS29kdTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1pbnB1dFwiIGlkPVwiYm94QmFyY29kZUlucHV0XCJcbiAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiYm94QmFyY29kZVwiXG4gICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQm94QmFyY29kZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uQm94QmFyY29kZUVudGVyS2V5ZG93bigpXCJcbiAgICAgICAgICAgICAgIChibHVyKT1cIm9uQm94QmFyY29kZUJsdXIoKVwiXG4gICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiS2FzYSBiYXJrb2R1bnUgZ2lyaW4gdmV5YSB0YXJhecSxbi4uLlwiXG4gICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvYWRpbmdcIiAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIFnDvGtsZW5peW9yIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1zZWN0aW9uXCIgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1sb2FkaW5nXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNwaW5uZXIgZmEtc3BpblwiPjwvaT4gS2FzYSBpw6dlcmnEn2kgecO8a2xlbml5b3IuLi5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBTYXTEsXIgTGlzdGVzaSAoR3JpZCkgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlY3Rpb24gcmVzZXJ2YXRpb24tc2VjdGlvblwiICpuZ0lmPVwibGluZXMubGVuZ3RoID4gMCAmJiAhaXNMb2FkaW5nXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwic2VjdGlvbi1sYWJlbFwiPkthc2FkYWtpIEfDtnJldiBTYXTEsXJsYXLEsTwvbGFiZWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJlc2VydmF0aW9uLXRhYmxlLXdyYXBcIj5cbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLWhvdmVyIHRhYmxlLXNtXCI+XG4gICAgICAgICAgICAgIDx0aGVhZCBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgIDx0aD5TaXBhcmnFnyBObzwvdGg+XG4gICAgICAgICAgICAgICAgICA8dGg+w5xyw7xuIEtvZHU8L3RoPlxuICAgICAgICAgICAgICAgICAgPHRoPsOccsO8biBBZMSxPC90aD5cbiAgICAgICAgICAgICAgICAgIDx0aD5QYXJ0aTwvdGg+XG4gICAgICAgICAgICAgICAgICA8dGg+TWlrdGFyPC90aD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBsIG9mIGxpbmVzXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0TGluZShsKVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZC1yb3ddPVwic2VsZWN0ZWRMaW5lPy5SZXNlcnZhdGlvbkNvZGUgPT09IGwuUmVzZXJ2YXRpb25Db2RlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjbGlja2FibGUtcm93XCI+XG4gICAgICAgICAgICAgICAgICA8dGQ+e3sgbC5PcmRlckRvY051bSB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICA8dGQ+e3sgbC5JdGVtQ29kZSB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICA8dGQ+e3sgbC5JdGVtTmFtZSB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICA8dGQ+e3sgbC5CYXRjaE51bWJlciB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ0ZXh0LWVuZFwiPnt7IGwuQ3VycmVudFF1YW50aXR5IH19PC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBCb8WfIHNvbnXDpyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VjdGlvblwiICpuZ0lmPVwiaGFzU2VhcmNoZWQgJiYgbGFzdFNlYXJjaGVkQm94QmFyY29kZSAmJiBsaW5lcy5sZW5ndGggPT09IDAgJiYgIWlzTG9hZGluZ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWVtcHR5XCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWluZm8tY2lyY2xlXCI+PC9pPiBCdSBrYXNhZGEgYcOnxLFrIGfDtnJldiBidWx1bmFtYWTEsS5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBEw7x6ZW5sZW1lIFBhbmVsaSAoU2F0xLFyIHNlw6dpbGluY2UgYWt0aWYpIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRMaW5lXCIgY2xhc3M9XCJlZGl0LXBhbmVsXCI+XG4gICAgICAgICAgPGhyIGNsYXNzPVwiZm9ybS1kaXZpZGVyXCIgLz5cblxuICAgICAgICAgIDwhLS0gw5xyw7xuIEJpbGdpbGVyaSAocmVhZG9ubHkpIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlY3Rpb24gcHJvZHVjdC1pbmZvXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1yb3dcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLWxhYmVsXCI+w5xyw7xuIEtvZHU6PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZm8tdmFsdWVcIj57eyBzZWxlY3RlZExpbmUuSXRlbUNvZGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLXJvd1wiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZm8tbGFiZWxcIj7DnHLDvG4gQWTEsTo8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mby12YWx1ZVwiPnt7IHNlbGVjdGVkTGluZS5JdGVtTmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tcm93XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mby1sYWJlbFwiPkJla2xlbmVuIE1pa3Rhcjo8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mby12YWx1ZSBpbmZvLXF0eVwiPnt7IHNlbGVjdGVkTGluZS5DdXJyZW50UXVhbnRpdHkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLXJvd1wiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZm8tbGFiZWxcIj5TaXBhcmnFnyBObzo8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mby12YWx1ZVwiPnt7IHNlbGVjdGVkTGluZS5PcmRlckRvY051bSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGhyIGNsYXNzPVwiZm9ybS1kaXZpZGVyXCIgLz5cblxuICAgICAgICAgIDwhLS0gR8O8bmNlbGxlbWUgVGlwaSAtIFJhZGlvIEJ1dHRvbnMgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VjdGlvblwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwic2VjdGlvbi1sYWJlbFwiPkfDvG5jZWxsZW1lIFRpcGk8L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLWdyb3VwXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInJhZGlvLW9wdGlvblwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwidXBkYXRlVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwic2hlbGZBbmRPcmRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidXBkYXRlVHlwZVwiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyYWRpby10ZXh0XCI+UmFmIHZlIFNpcGFyacWfPC9zcGFuPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJyYWRpby1vcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cInVwZGF0ZVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIm9yZGVyT25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidXBkYXRlVHlwZVwiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyYWRpby10ZXh0XCI+U2FkZWNlIFNpcGFyacWfPC9zcGFuPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8aHIgY2xhc3M9XCJmb3JtLWRpdmlkZXJcIiAvPlxuXG4gICAgICAgICAgPCEtLSBNaWt0YXIgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VjdGlvblwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwic2VjdGlvbi1sYWJlbFwiIGZvcj1cIm5ld1F1YW50aXR5SW5wdXRcIj5cbiAgICAgICAgICAgICAge3sgdXBkYXRlVHlwZSA9PT0gJ29yZGVyT25seScgPyAnWWVuaSBTaXBhcmnFnyBNaWt0YXLEsScgOiAnS2FzYWRhIFNhecSxbGFuIE1pa3RhcicgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0taW5wdXRcIiBpZD1cIm5ld1F1YW50aXR5SW5wdXRcIlxuICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibmV3UXVhbnRpdHlcIlxuICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uVXBkYXRlKClcIlxuICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTWlrdGFyxLEgZ2lyaW4uLi5cIlxuICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGhyIGNsYXNzPVwiZm9ybS1kaXZpZGVyXCIgLz5cblxuICAgICAgICAgIDwhLS0gQnV0b25sYXIgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VjdGlvbiBidXR0b24tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWFjdGlvbi1zdWNjZXNzIGJ0bi1zbVwiIChjbGljayk9XCJvblVwZGF0ZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzU2F2aW5nIHx8IG5ld1F1YW50aXR5ID09PSBudWxsIHx8IG5ld1F1YW50aXR5IDwgMFwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhXCIgW25nQ2xhc3NdPVwiaXNTYXZpbmcgPyAnZmEtc3Bpbm5lciBmYS1zcGluJyA6ICdmYS1jaGVjaydcIj48L2k+XG4gICAgICAgICAgICAgIHt7IGlzU2F2aW5nID8gJ0fDvG5jZWxsZW5peW9yLi4uJyA6ICdHw7xuY2VsbGUnIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWFjdGlvbi1vdXRsaW5lIGJ0bi1zbVwiIChjbGljayk9XCJvbkNsZWFyKClcIiBbZGlzYWJsZWRdPVwiaXNTYXZpbmdcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lcmFzZXJcIj48L2k+IFRlbWl6bGVcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9hYnAtcGFnZT5cbiJdfQ==
|
|
@@ -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 { QuantityCorrectionComponent } from './quantity-correction.component';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/router";
|
|
13
|
+
const routes = [
|
|
14
|
+
{ path: '', component: QuantityCorrectionComponent },
|
|
15
|
+
];
|
|
16
|
+
export class QuantityCorrectionModule {
|
|
17
|
+
}
|
|
18
|
+
QuantityCorrectionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: QuantityCorrectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
19
|
+
QuantityCorrectionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: QuantityCorrectionModule, declarations: [QuantityCorrectionComponent], imports: [CoreModule, ThemeSharedModule, FormsModule, CommercialUiModule,
|
|
20
|
+
NgxValidateCoreModule, NgbCollapseModule, NgbDatepickerModule,
|
|
21
|
+
NgbDropdownModule, PageModule, i1.RouterModule] });
|
|
22
|
+
QuantityCorrectionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: QuantityCorrectionModule, 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: QuantityCorrectionModule, decorators: [{
|
|
27
|
+
type: NgModule,
|
|
28
|
+
args: [{
|
|
29
|
+
declarations: [QuantityCorrectionComponent],
|
|
30
|
+
imports: [
|
|
31
|
+
CoreModule, ThemeSharedModule, FormsModule, CommercialUiModule,
|
|
32
|
+
NgxValidateCoreModule, NgbCollapseModule, NgbDatepickerModule,
|
|
33
|
+
NgbDropdownModule, PageModule,
|
|
34
|
+
RouterModule.forChild(routes),
|
|
35
|
+
],
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
export function loadQuantityCorrectionModuleAsChild() {
|
|
39
|
+
return Promise.resolve(QuantityCorrectionModule);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbnRpdHktY29ycmVjdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC13YXJlaG91c2Uvc3JjL2xpYi9jb21wb25lbnRzL3F1YW50aXR5LWNvcnJlY3Rpb24vcXVhbnRpdHktY29ycmVjdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFFOUUsTUFBTSxNQUFNLEdBQVc7SUFDbkIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSwyQkFBMkIsRUFBRTtDQUN2RCxDQUFDO0FBV0YsTUFBTSxPQUFPLHdCQUF3Qjs7cUhBQXhCLHdCQUF3QjtzSEFBeEIsd0JBQXdCLGlCQVJsQiwyQkFBMkIsYUFFdEMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxrQkFBa0I7UUFDOUQscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CO1FBQzdELGlCQUFpQixFQUFFLFVBQVU7c0hBSXhCLHdCQUF3QixZQU43QixVQUFVLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQjtRQUM5RCxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUI7UUFDN0QsaUJBQWlCLEVBQUUsVUFBVTtRQUM3QixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzsyRkFHeEIsd0JBQXdCO2tCQVRwQyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUMzQyxPQUFPLEVBQUU7d0JBQ0wsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxrQkFBa0I7d0JBQzlELHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQjt3QkFDN0QsaUJBQWlCLEVBQUUsVUFBVTt3QkFDN0IsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7cUJBQ2hDO2lCQUNKOztBQUdELE1BQU0sVUFBVSxtQ0FBbUM7SUFDL0MsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmdiQ29sbGFwc2VNb2R1bGUsIE5nYkRhdGVwaWNrZXJNb2R1bGUsIE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tZXJjaWFsVWlNb2R1bGUgfSBmcm9tICdAdm9sby9hYnAuY29tbWVyY2lhbC5uZy51aSc7XHJcbmltcG9ydCB7IFBhZ2VNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvbXBvbmVudHMvcGFnZSc7XHJcbmltcG9ydCB7IFF1YW50aXR5Q29ycmVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vcXVhbnRpdHktY29ycmVjdGlvbi5jb21wb25lbnQnO1xyXG5cclxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXHJcbiAgICB7IHBhdGg6ICcnLCBjb21wb25lbnQ6IFF1YW50aXR5Q29ycmVjdGlvbkNvbXBvbmVudCB9LFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW1F1YW50aXR5Q29ycmVjdGlvbkNvbXBvbmVudF0sXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29yZU1vZHVsZSwgVGhlbWVTaGFyZWRNb2R1bGUsIEZvcm1zTW9kdWxlLCBDb21tZXJjaWFsVWlNb2R1bGUsXHJcbiAgICAgICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLCBOZ2JDb2xsYXBzZU1vZHVsZSwgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICAgICAgICBOZ2JEcm9wZG93bk1vZHVsZSwgUGFnZU1vZHVsZSxcclxuICAgICAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRdWFudGl0eUNvcnJlY3Rpb25Nb2R1bGUge31cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUXVhbnRpdHlDb3JyZWN0aW9uTW9kdWxlQXNDaGlsZCgpIHtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoUXVhbnRpdHlDb3JyZWN0aW9uTW9kdWxlKTtcclxufVxyXG4iXX0=
|