@hitsoft/uretim-yonetimi 1.0.0

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 (90) 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 +3 -0
  4. package/config/index.d.ts +5 -0
  5. package/config/providers/create-barcode-route.provider.d.ts +9 -0
  6. package/config/providers/index.d.ts +1 -0
  7. package/config/providers/issues-for-production-route.provider.d.ts +9 -0
  8. package/config/providers/production-order-route.provider.d.ts +9 -0
  9. package/config/providers/receipt-from-production-route.provider.d.ts +9 -0
  10. package/config/providers/route.provider.d.ts +8 -0
  11. package/config/public-api.d.ts +3 -0
  12. package/config/uretim-yonetimi-config.module.d.ts +8 -0
  13. package/esm2020/config/enums/index.mjs +2 -0
  14. package/esm2020/config/enums/route-names.mjs +2 -0
  15. package/esm2020/config/hitsoft-uretim-yonetimi-config.mjs +5 -0
  16. package/esm2020/config/providers/create-barcode-route.provider.mjs +19 -0
  17. package/esm2020/config/providers/index.mjs +2 -0
  18. package/esm2020/config/providers/issues-for-production-route.provider.mjs +19 -0
  19. package/esm2020/config/providers/production-order-route.provider.mjs +19 -0
  20. package/esm2020/config/providers/receipt-from-production-route.provider.mjs +19 -0
  21. package/esm2020/config/providers/route.provider.mjs +24 -0
  22. package/esm2020/config/public-api.mjs +4 -0
  23. package/esm2020/config/uretim-yonetimi-config.module.mjs +28 -0
  24. package/esm2020/hitsoft-uretim-yonetimi.mjs +5 -0
  25. package/esm2020/lib/components/hit-create-barcodes/hit-create-barcodes-routing.module.mjs +26 -0
  26. package/esm2020/lib/components/hit-create-barcodes/hit-create-barcodes.component.mjs +136 -0
  27. package/esm2020/lib/components/hit-create-barcodes/hit-create-barcodes.module.mjs +65 -0
  28. package/esm2020/lib/components/hit-issues-for-productions/hit-issues-for-productions-routing.module.mjs +26 -0
  29. package/esm2020/lib/components/hit-issues-for-productions/hit-issues-for-productions.component.mjs +246 -0
  30. package/esm2020/lib/components/hit-issues-for-productions/hit-issues-for-productions.module.mjs +68 -0
  31. package/esm2020/lib/components/hit-production-orders/hit-production-orders-routing.module.mjs +26 -0
  32. package/esm2020/lib/components/hit-production-orders/hit-production-orders.component.mjs +154 -0
  33. package/esm2020/lib/components/hit-production-orders/hit-production-orders.module.mjs +65 -0
  34. package/esm2020/lib/components/hit-receipt-from-productions/hit-receipt-from-production-routing.module.mjs +26 -0
  35. package/esm2020/lib/components/hit-receipt-from-productions/hit-receipt-from-productions.component.mjs +217 -0
  36. package/esm2020/lib/components/hit-receipt-from-productions/hit-receipt-from-productions.module.mjs +62 -0
  37. package/esm2020/lib/components/uretim-yonetimi.component.mjs +17 -0
  38. package/esm2020/lib/hit-proxy/devexpress-query-builder/devexpress-load-options.model.mjs +2 -0
  39. package/esm2020/lib/hit-proxy/devexpress-query-builder/devexpress-query-builder.mjs +54 -0
  40. package/esm2020/lib/hit-proxy/hit-create-barcodes/hit-create-barcodes.service.mjs +35 -0
  41. package/esm2020/lib/hit-proxy/hit-create-barcodes/models.mjs +3 -0
  42. package/esm2020/lib/hit-proxy/hit-issues-for-productions/hit-issues-for-productions.service.mjs +35 -0
  43. package/esm2020/lib/hit-proxy/hit-issues-for-productions/models.mjs +24 -0
  44. package/esm2020/lib/hit-proxy/hit-production-orders/hit-production-orders.service.mjs +40 -0
  45. package/esm2020/lib/hit-proxy/hit-production-orders/models.mjs +65 -0
  46. package/esm2020/lib/hit-proxy/hit-receipt-from-productions/hit-receipt-from-productions.service.mjs +30 -0
  47. package/esm2020/lib/hit-proxy/hit-receipt-from-productions/models.mjs +14 -0
  48. package/esm2020/lib/hit-proxy/models.mjs +72 -0
  49. package/esm2020/lib/services/uretim-yonetimi.service.mjs +18 -0
  50. package/esm2020/lib/uretim-yonetimi-routing.module.mjs +33 -0
  51. package/esm2020/lib/uretim-yonetimi.module.mjs +55 -0
  52. package/esm2020/public-api.mjs +7 -0
  53. package/fesm2015/hitsoft-uretim-yonetimi-config.mjs +121 -0
  54. package/fesm2015/hitsoft-uretim-yonetimi-config.mjs.map +1 -0
  55. package/fesm2015/hitsoft-uretim-yonetimi.mjs +1487 -0
  56. package/fesm2015/hitsoft-uretim-yonetimi.mjs.map +1 -0
  57. package/fesm2020/hitsoft-uretim-yonetimi-config.mjs +121 -0
  58. package/fesm2020/hitsoft-uretim-yonetimi-config.mjs.map +1 -0
  59. package/fesm2020/hitsoft-uretim-yonetimi.mjs +1466 -0
  60. package/fesm2020/hitsoft-uretim-yonetimi.mjs.map +1 -0
  61. package/index.d.ts +5 -0
  62. package/lib/components/hit-create-barcodes/hit-create-barcodes-routing.module.d.ts +7 -0
  63. package/lib/components/hit-create-barcodes/hit-create-barcodes.component.d.ts +38 -0
  64. package/lib/components/hit-create-barcodes/hit-create-barcodes.module.d.ts +16 -0
  65. package/lib/components/hit-issues-for-productions/hit-issues-for-productions-routing.module.d.ts +7 -0
  66. package/lib/components/hit-issues-for-productions/hit-issues-for-productions.component.d.ts +46 -0
  67. package/lib/components/hit-issues-for-productions/hit-issues-for-productions.module.d.ts +16 -0
  68. package/lib/components/hit-production-orders/hit-production-orders-routing.module.d.ts +7 -0
  69. package/lib/components/hit-production-orders/hit-production-orders.component.d.ts +43 -0
  70. package/lib/components/hit-production-orders/hit-production-orders.module.d.ts +16 -0
  71. package/lib/components/hit-receipt-from-productions/hit-receipt-from-production-routing.module.d.ts +7 -0
  72. package/lib/components/hit-receipt-from-productions/hit-receipt-from-productions.component.d.ts +53 -0
  73. package/lib/components/hit-receipt-from-productions/hit-receipt-from-productions.module.d.ts +16 -0
  74. package/lib/components/uretim-yonetimi.component.d.ts +10 -0
  75. package/lib/hit-proxy/devexpress-query-builder/devexpress-load-options.model.d.ts +17 -0
  76. package/lib/hit-proxy/devexpress-query-builder/devexpress-query-builder.d.ts +18 -0
  77. package/lib/hit-proxy/hit-create-barcodes/hit-create-barcodes.service.d.ts +23 -0
  78. package/lib/hit-proxy/hit-create-barcodes/models.d.ts +5 -0
  79. package/lib/hit-proxy/hit-issues-for-productions/hit-issues-for-productions.service.d.ts +17 -0
  80. package/lib/hit-proxy/hit-issues-for-productions/models.d.ts +30 -0
  81. package/lib/hit-proxy/hit-production-orders/hit-production-orders.service.d.ts +18 -0
  82. package/lib/hit-proxy/hit-production-orders/models.d.ts +85 -0
  83. package/lib/hit-proxy/hit-receipt-from-productions/hit-receipt-from-productions.service.d.ts +16 -0
  84. package/lib/hit-proxy/hit-receipt-from-productions/models.d.ts +39 -0
  85. package/lib/hit-proxy/models.d.ts +20 -0
  86. package/lib/services/uretim-yonetimi.service.d.ts +9 -0
  87. package/lib/uretim-yonetimi-routing.module.d.ts +7 -0
  88. package/lib/uretim-yonetimi.module.d.ts +17 -0
  89. package/package.json +42 -0
  90. package/public-api.d.ts +3 -0
@@ -0,0 +1,65 @@
1
+ import { CoreModule } from '@abp/ng.core';
2
+ import { ThemeSharedModule } from '@abp/ng.theme.shared';
3
+ import { NgModule } from '@angular/core';
4
+ import { NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, } from '@ng-bootstrap/ng-bootstrap';
5
+ import { NgxValidateCoreModule } from '@ngx-validate/core';
6
+ import { CommercialUiModule } from '@volo/abp.commercial.ng.ui';
7
+ import { PageModule } from '@abp/ng.components/page';
8
+ import { HitCreateBarcodesComponent } from "./hit-create-barcodes.component";
9
+ import { HitCreateBarcodesRoutingModule } from "./hit-create-barcodes-routing.module";
10
+ import { DxButtonModule, DxDataGridModule, DxNumberBoxModule, DxTextBoxModule } from "devextreme-angular";
11
+ import * as i0 from "@angular/core";
12
+ export class HitCreateBarcodesModule {
13
+ }
14
+ HitCreateBarcodesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCreateBarcodesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ HitCreateBarcodesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitCreateBarcodesModule, declarations: [HitCreateBarcodesComponent], imports: [HitCreateBarcodesRoutingModule,
16
+ CoreModule,
17
+ ThemeSharedModule,
18
+ CommercialUiModule,
19
+ NgxValidateCoreModule,
20
+ NgbCollapseModule,
21
+ NgbDatepickerModule,
22
+ NgbDropdownModule,
23
+ PageModule,
24
+ DxButtonModule,
25
+ DxNumberBoxModule,
26
+ DxTextBoxModule,
27
+ DxDataGridModule] });
28
+ HitCreateBarcodesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCreateBarcodesModule, imports: [HitCreateBarcodesRoutingModule,
29
+ CoreModule,
30
+ ThemeSharedModule,
31
+ CommercialUiModule,
32
+ NgxValidateCoreModule,
33
+ NgbCollapseModule,
34
+ NgbDatepickerModule,
35
+ NgbDropdownModule,
36
+ PageModule,
37
+ DxButtonModule,
38
+ DxNumberBoxModule,
39
+ DxTextBoxModule,
40
+ DxDataGridModule] });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitCreateBarcodesModule, decorators: [{
42
+ type: NgModule,
43
+ args: [{
44
+ declarations: [HitCreateBarcodesComponent],
45
+ imports: [
46
+ HitCreateBarcodesRoutingModule,
47
+ CoreModule,
48
+ ThemeSharedModule,
49
+ CommercialUiModule,
50
+ NgxValidateCoreModule,
51
+ NgbCollapseModule,
52
+ NgbDatepickerModule,
53
+ NgbDropdownModule,
54
+ PageModule,
55
+ DxButtonModule,
56
+ DxNumberBoxModule,
57
+ DxTextBoxModule,
58
+ DxDataGridModule,
59
+ ],
60
+ }]
61
+ }] });
62
+ export function loadHitCreateBarcodesAsChild() {
63
+ return Promise.resolve(HitCreateBarcodesModule);
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWNyZWF0ZS1iYXJjb2Rlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1jcmVhdGUtYmFyY29kZXMvaGl0LWNyZWF0ZS1iYXJjb2Rlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGlCQUFpQixHQUNsQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRixPQUFPLEVBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDOztBQW9CeEcsTUFBTSxPQUFPLHVCQUF1Qjs7b0hBQXZCLHVCQUF1QjtxSEFBdkIsdUJBQXVCLGlCQWpCbkIsMEJBQTBCLGFBRXZDLDhCQUE4QjtRQUM5QixVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixxQkFBcUI7UUFDckIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsVUFBVTtRQUNWLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsZUFBZTtRQUNmLGdCQUFnQjtxSEFHUCx1QkFBdUIsWUFmaEMsOEJBQThCO1FBQzlCLFVBQVU7UUFDVixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixVQUFVO1FBQ1YsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixlQUFlO1FBQ2YsZ0JBQWdCOzJGQUdQLHVCQUF1QjtrQkFsQm5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRTt3QkFDUCw4QkFBOEI7d0JBQzlCLFVBQVU7d0JBQ1YsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsVUFBVTt3QkFDVixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixnQkFBZ0I7cUJBQ2pCO2lCQUNGOztBQUlELE1BQU0sVUFBVSw0QkFBNEI7SUFDMUMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29yZU1vZHVsZX0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHtUaGVtZVNoYXJlZE1vZHVsZX0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBOZ2JDb2xsYXBzZU1vZHVsZSxcclxuICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG59IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHtOZ3hWYWxpZGF0ZUNvcmVNb2R1bGV9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XHJcbmltcG9ydCB7Q29tbWVyY2lhbFVpTW9kdWxlfSBmcm9tICdAdm9sby9hYnAuY29tbWVyY2lhbC5uZy51aSc7XHJcbmltcG9ydCB7UGFnZU1vZHVsZX0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL3BhZ2UnO1xyXG5pbXBvcnQge0hpdENyZWF0ZUJhcmNvZGVzQ29tcG9uZW50fSBmcm9tIFwiLi9oaXQtY3JlYXRlLWJhcmNvZGVzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0hpdENyZWF0ZUJhcmNvZGVzUm91dGluZ01vZHVsZX0gZnJvbSBcIi4vaGl0LWNyZWF0ZS1iYXJjb2Rlcy1yb3V0aW5nLm1vZHVsZVwiO1xyXG5pbXBvcnQge0R4QnV0dG9uTW9kdWxlLCBEeERhdGFHcmlkTW9kdWxlLCBEeE51bWJlckJveE1vZHVsZSwgRHhUZXh0Qm94TW9kdWxlfSBmcm9tIFwiZGV2ZXh0cmVtZS1hbmd1bGFyXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0hpdENyZWF0ZUJhcmNvZGVzQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBIaXRDcmVhdGVCYXJjb2Rlc1JvdXRpbmdNb2R1bGUsXHJcbiAgICBDb3JlTW9kdWxlLFxyXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXHJcbiAgICBDb21tZXJjaWFsVWlNb2R1bGUsXHJcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUsXHJcbiAgICBOZ2JDb2xsYXBzZU1vZHVsZSxcclxuICAgIE5nYkRhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcclxuICAgIFBhZ2VNb2R1bGUsXHJcbiAgICBEeEJ1dHRvbk1vZHVsZSxcclxuICAgIER4TnVtYmVyQm94TW9kdWxlLFxyXG4gICAgRHhUZXh0Qm94TW9kdWxlLFxyXG4gICAgRHhEYXRhR3JpZE1vZHVsZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0Q3JlYXRlQmFyY29kZXNNb2R1bGUge1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZEhpdENyZWF0ZUJhcmNvZGVzQXNDaGlsZCgpIHtcclxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKEhpdENyZWF0ZUJhcmNvZGVzTW9kdWxlKTtcclxufVxyXG4iXX0=
@@ -0,0 +1,26 @@
1
+ import { AuthGuard, PermissionGuard } from '@abp/ng.core';
2
+ import { NgModule } from '@angular/core';
3
+ import { RouterModule } from '@angular/router';
4
+ import { HitIssuesForProductionsComponent } from "./hit-issues-for-productions.component";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/router";
7
+ const routes = [
8
+ {
9
+ path: '',
10
+ component: HitIssuesForProductionsComponent,
11
+ canActivate: [AuthGuard, PermissionGuard],
12
+ },
13
+ ];
14
+ export class HitIssuesForProductionsRoutingModule {
15
+ }
16
+ HitIssuesForProductionsRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIssuesForProductionsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ HitIssuesForProductionsRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitIssuesForProductionsRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
18
+ HitIssuesForProductionsRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIssuesForProductionsRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIssuesForProductionsRoutingModule, decorators: [{
20
+ type: NgModule,
21
+ args: [{
22
+ imports: [RouterModule.forChild(routes)],
23
+ exports: [RouterModule],
24
+ }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWlzc3Vlcy1mb3ItcHJvZHVjdGlvbnMtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1pc3N1ZXMtZm9yLXByb2R1Y3Rpb25zL2hpdC1pc3N1ZXMtZm9yLXByb2R1Y3Rpb25zLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLHdDQUF3QyxDQUFDOzs7QUFFeEYsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxnQ0FBZ0M7UUFDM0MsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQztLQUMxQztDQUNGLENBQUM7QUFNRixNQUFNLE9BQU8sb0NBQW9DOztpSUFBcEMsb0NBQW9DO2tJQUFwQyxvQ0FBb0Msd0NBRnJDLFlBQVk7a0lBRVgsb0NBQW9DLFlBSHJDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7MkZBRVgsb0NBQW9DO2tCQUpoRCxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0F1dGhHdWFyZCwgUGVybWlzc2lvbkd1YXJkfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtSb3V0ZXJNb2R1bGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtIaXRJc3N1ZXNGb3JQcm9kdWN0aW9uc0NvbXBvbmVudH0gZnJvbSBcIi4vaGl0LWlzc3Vlcy1mb3ItcHJvZHVjdGlvbnMuY29tcG9uZW50XCI7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICB7XHJcbiAgICBwYXRoOiAnJyxcclxuICAgIGNvbXBvbmVudDogSGl0SXNzdWVzRm9yUHJvZHVjdGlvbnNDb21wb25lbnQsXHJcbiAgICBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZCwgUGVybWlzc2lvbkd1YXJkXSxcclxuICB9LFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxyXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0SXNzdWVzRm9yUHJvZHVjdGlvbnNSb3V0aW5nTW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -0,0 +1,246 @@
1
+ import { ListService } from '@abp/ng.core';
2
+ import { DateAdapter } from '@abp/ng.theme.shared/extensions';
3
+ import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
4
+ import { NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap';
5
+ import { BatchNumber, IssueLine, IssuesForProductionPostDto } from "../../hit-proxy/hit-issues-for-productions/models";
6
+ import { HitHelper } from "../../hit-proxy/models";
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@abp/ng.core";
9
+ import * as i2 from "../../hit-proxy/hit-issues-for-productions/hit-issues-for-productions.service";
10
+ import * as i3 from "@abp/ng.theme.shared";
11
+ import * as i4 from "@angular/forms";
12
+ import * as i5 from "../../hit-proxy/hit-production-orders/hit-production-orders.service";
13
+ import * as i6 from "@angular/common";
14
+ import * as i7 from "@abp/ng.components/page";
15
+ import * as i8 from "devextreme-angular";
16
+ import * as i9 from "devextreme-angular/ui/nested";
17
+ export class HitIssuesForProductionsComponent {
18
+ constructor(ngZone, list, track, service, confirmation, fb, productionOrdersService) {
19
+ this.ngZone = ngZone;
20
+ this.list = list;
21
+ this.track = track;
22
+ this.service = service;
23
+ this.confirmation = confirmation;
24
+ this.fb = fb;
25
+ this.productionOrdersService = productionOrdersService;
26
+ this.options = {
27
+ hideYesBtn: true,
28
+ cancelText: 'Kapat',
29
+ dismissible: false,
30
+ };
31
+ this.isLoading = false;
32
+ this.isEmriBarkoduGecerliMi = false;
33
+ this.hammaddeQR = '';
34
+ this.warehouses = [];
35
+ this.HitHelper = HitHelper;
36
+ }
37
+ ngAfterViewInit() {
38
+ this.focusBarkodInput();
39
+ }
40
+ ngOnInit() {
41
+ this.clearAll();
42
+ this.getWarehouses();
43
+ }
44
+ async getProductionOrder() {
45
+ if (!this.isEmriBarkodu) {
46
+ this.focusBarkodInput();
47
+ return;
48
+ }
49
+ this.isLoading = true;
50
+ this.isEmriBarkoduGecerliMi = false;
51
+ this.productionOrdersService.get(this.isEmriBarkodu).subscribe({
52
+ next: (response) => {
53
+ if (response.isSuccessful) {
54
+ this.productionOrder = response.items;
55
+ this.isEmriBarkoduGecerliMi = true;
56
+ const issueLines = this.productionOrder.getProductionOrderLine.map((issueLine) => {
57
+ issueLine.quantity = 0;
58
+ const newIssueLine = new IssueLine();
59
+ newIssueLine.ItemCode = issueLine.itemCode;
60
+ newIssueLine.BaseLine = issueLine.lineNum;
61
+ newIssueLine.WarehouseCode = issueLine.warehouse;
62
+ newIssueLine.BaseEntry = issueLine.absoluteEntry;
63
+ newIssueLine.BatchNumbers = [new BatchNumber(issueLine.batchNumber, issueLine.plannedQty)];
64
+ return newIssueLine;
65
+ });
66
+ this.issuesForProductionPost = new IssuesForProductionPostDto(issueLines);
67
+ this.ngZone.run(() => {
68
+ setTimeout(() => {
69
+ this.nmbBoxHammaddeQR.instance.focus();
70
+ }, 0);
71
+ });
72
+ }
73
+ else {
74
+ this.isEmriBarkoduGecerliMi = false;
75
+ }
76
+ },
77
+ error: (e) => {
78
+ this.isLoading = false;
79
+ this.isEmriBarkoduGecerliMi = false;
80
+ this.confirmation.status$.subscribe({
81
+ next: () => {
82
+ this.clearAll();
83
+ }
84
+ });
85
+ this.focusBarkodInput();
86
+ }
87
+ });
88
+ this.isLoading = false;
89
+ }
90
+ async parseAndAddQR() {
91
+ if (!this.hammaddeQR) {
92
+ this.focusQRInput();
93
+ return;
94
+ }
95
+ this.isLoading = true;
96
+ const parsed = HitHelper.parseQR(this.hammaddeQR);
97
+ if (!parsed) {
98
+ this.confirmation.error('', 'Geçersiz barkod!', this.options).subscribe({
99
+ next: () => {
100
+ this.hammaddeQR = '';
101
+ this.focusQRInput();
102
+ }
103
+ });
104
+ return;
105
+ }
106
+ this.service.get(parsed.chemicalCode, this.productionOrder.absoluteEntry.toString()).subscribe({
107
+ next: (response) => {
108
+ if (response.isSuccessful) {
109
+ const issueLine = this.productionOrder.getProductionOrderLine.find((x) => x.itemCode === parsed.chemicalCode);
110
+ if (issueLine == null) {
111
+ this.confirmation.error('', "Bu iş emrinde " + parsed.chemicalCode + " kodlu stok bulunmuyor. ", this.options);
112
+ }
113
+ const issueLineForPost = this.issuesForProductionPost.DocumentLines.find((x) => x.ItemCode === parsed.chemicalCode);
114
+ if (issueLine) {
115
+ if (issueLine.issuedQty + issueLine.quantity + parsed.weightKg > issueLine.plannedQty) {
116
+ this.confirmation.error('', 'Toplanan miktar planlanan miktarı aşıyor!', this.options);
117
+ return;
118
+ }
119
+ issueLine.quantity += parsed.weightKg;
120
+ issueLine.batchNumber = parsed.lotNumber;
121
+ issueLineForPost.Quantity += parsed.weightKg;
122
+ if (issueLineForPost.IsQRReady) {
123
+ issueLineForPost.BatchNumbers.push(new BatchNumber(parsed.lotNumber, parsed.weightKg));
124
+ }
125
+ else {
126
+ issueLineForPost.BatchNumbers = [new BatchNumber(parsed.lotNumber, parsed.weightKg)];
127
+ issueLineForPost.IsQRReady = true;
128
+ }
129
+ }
130
+ }
131
+ },
132
+ error: (e) => {
133
+ this.confirmation.status$.subscribe({
134
+ next: () => {
135
+ this.focusQRInput();
136
+ this.hammaddeQR = '';
137
+ this.isLoading = false;
138
+ }
139
+ });
140
+ },
141
+ complete: () => {
142
+ this.focusQRInput();
143
+ this.hammaddeQR = '';
144
+ this.isLoading = false;
145
+ }
146
+ });
147
+ }
148
+ async postIssuesForProduction() {
149
+ if (!this.issuesForProductionPost) {
150
+ this.focusBarkodInput();
151
+ return;
152
+ }
153
+ this.isLoading = true;
154
+ this.issuesForProductionPost.DocumentLines.forEach((x) => {
155
+ x.BaseEntry = this.productionOrder.absoluteEntry;
156
+ });
157
+ console.log(this.issuesForProductionPost);
158
+ this.issuesForProductionPost.DocumentLines = this.issuesForProductionPost.DocumentLines.filter((x) => x.IsQRReady);
159
+ this.service.post(this.issuesForProductionPost).subscribe({
160
+ next: (response) => {
161
+ if (response.isSuccessful) {
162
+ this.confirmation.success('', 'İşlem başarılı!', this.options).subscribe(() => {
163
+ this.clearAll();
164
+ });
165
+ }
166
+ else {
167
+ this.confirmation.status$.subscribe({
168
+ next: () => {
169
+ this.clearAll();
170
+ }
171
+ });
172
+ }
173
+ },
174
+ error: (e) => {
175
+ this.confirmation.error('', 'Bir hata oluştu!', this.options).subscribe({
176
+ next: () => {
177
+ this.clearAll();
178
+ }
179
+ });
180
+ this.isLoading = false;
181
+ },
182
+ complete: () => {
183
+ this.isLoading = false;
184
+ }
185
+ });
186
+ }
187
+ clearAll() {
188
+ this.isEmriBarkoduGecerliMi = false;
189
+ this.issuesForProductionPost = null;
190
+ this.isEmriBarkodu = null;
191
+ this.hammaddeQR = '';
192
+ this.productionOrder = null;
193
+ this.focusBarkodInput();
194
+ }
195
+ getWarehouses() {
196
+ this.isLoading = true;
197
+ this.productionOrdersService.getWarehouses().subscribe({
198
+ next: (result) => {
199
+ if (result.items) {
200
+ this.warehouses = result.items.slice();
201
+ }
202
+ }
203
+ });
204
+ this.isLoading = false;
205
+ }
206
+ onRowPrepared(e) {
207
+ if (e.rowType === 'data') {
208
+ if (e.data.plannedQty === e.data.issuedQty) {
209
+ e.rowElement.classList.add('hit-grey-row');
210
+ }
211
+ else if (e.data.quantity > 0) {
212
+ e.rowElement.classList.add('hit-green-row');
213
+ }
214
+ }
215
+ }
216
+ focusQRInput() {
217
+ this.ngZone.run(() => {
218
+ setTimeout(() => {
219
+ this.nmbBoxHammaddeQR.instance.focus();
220
+ }, 0);
221
+ });
222
+ }
223
+ focusBarkodInput() {
224
+ this.ngZone.run(() => {
225
+ setTimeout(() => {
226
+ this.nmbBoxBarkodNumarasi.instance.focus();
227
+ }, 0);
228
+ });
229
+ }
230
+ }
231
+ HitIssuesForProductionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIssuesForProductionsComponent, deps: [{ token: i0.NgZone }, { token: i1.ListService }, { token: i1.TrackByService }, { token: i2.HitIssuesForProductionsService }, { token: i3.ConfirmationService }, { token: i4.FormBuilder }, { token: i5.HitProductionOrdersService }], target: i0.ɵɵFactoryTarget.Component });
232
+ HitIssuesForProductionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitIssuesForProductionsComponent, selector: "lib-hit-issues-for-productions", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], viewQueries: [{ propertyName: "nmbBoxBarkodNumarasi", first: true, predicate: ["barkodNumarasiRef"], descendants: true }, { propertyName: "nmbBoxHammaddeQR", first: true, predicate: ["hammaddeQRRef"], descendants: true }, { propertyName: "dataGrid", first: true, predicate: ["getProductionOrderLineGrid"], descendants: true }], ngImport: i0, template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n {{ 'UretimYonetimi::IssuesForProductions.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row text-lg-end pt-2\">\r\n <div class=\"col-8\">\r\n <button class=\"btn btn-success btn-sm\" type=\"button\" (click)=\"postIssuesForProduction()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi\">\r\n <i class=\"fa fa-plus me-1\"></i>\r\n {{ 'UretimYonetimi::IssuesForProductions.Create' | abpLocalization }}\r\n </button>\r\n </div>\r\n <div class=\"col-4\">\r\n <button class=\"btn btn-warning btn-sm\" type=\"button\" (click)=\"clearAll()\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n {{ 'UretimYonetimi::IssuesForProductions.Clean' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #barkodNumarasiRef\r\n class=\"me-1\" style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::IssuesForProductions.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"isEmriBarkodu\"\r\n (onChange)=\"getProductionOrder()\"\r\n (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"isEmriBarkoduGecerliMi\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\" (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"isEmriBarkoduGecerliMi\">\r\n </dx-button>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"isEmriBarkoduGecerliMi\">\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::IssuesForProductions.WorkOrderName' | abpLocalization\"\r\n [(value)]=\"productionOrder.productDescription\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-number-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::IssuesForProductions.PlannedQty' | abpLocalization\"\r\n [(value)]=\"productionOrder.plannedQuantity\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-text-box #hammaddeQRRef\r\n style=\"width:100%;\"\r\n class=\"me-1\"\r\n [label]=\"'UretimYonetimi::IssuesForProductions.IssueQRCode' | abpLocalization\"\r\n [maxLength]=\"256\"\r\n [(value)]=\"hammaddeQR\"\r\n (onEnterKey)=\"parseAndAddQR()\"\r\n placeholder=\"QR kod okutun...\">\r\n </dx-text-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"plus\" type=\"default\" (onClick)=\"parseAndAddQR()\">\r\n </dx-button>\r\n </div>\r\n\r\n <div *ngIf=\"productionOrder.getProductionOrderLine?.length\" class=\"mt-3\">\r\n <dx-data-grid #getProductionOrderLineGrid\r\n [dataSource]=\"productionOrder.getProductionOrderLine\"\r\n [showBorders]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [sorting]=\"{ mode: 'none' }\"\r\n (onRowPrepared)=\"onRowPrepared($event)\">\r\n <dxi-column dataField=\"itemName\"\r\n caption=\"{{'UretimYonetimi::IssuesForProductions.ItemName' | abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"quantity\"\r\n caption=\"{{'UretimYonetimi::IssuesForProductions.Quantity' | abpLocalization}}\"\r\n dataType=\"number\" [format]=\"HitHelper.getMeasurementFormatted('kg')\"></dxi-column>\r\n <dxi-column dataField=\"plannedQty\"\r\n caption=\"{{'UretimYonetimi::IssuesForProductions.PlannedQty' | abpLocalization}}\"\r\n dataType=\"number\" [format]=\"HitHelper.getMeasurementFormatted('kg')\"></dxi-column>\r\n <dxi-column dataField=\"issuedQty\"\r\n caption=\"{{'UretimYonetimi::IssuesForProductions.CompletedQty' | abpLocalization}}\"\r\n dataType=\"number\" [format]=\"HitHelper.getMeasurementFormatted('kg')\"></dxi-column>\r\n <dxi-column dataField=\"itemCode\"\r\n caption=\"{{'UretimYonetimi::IssuesForProductions.ItemCode' | abpLocalization}}\"\r\n [width]=\"150\"></dxi-column>\r\n <dxi-column dataField=\"batchNumber\"\r\n caption=\"{{'UretimYonetimi::IssuesForProductions.BatchNumber' | abpLocalization}}\"\r\n [width]=\"120\"></dxi-column>\r\n <dxi-column dataField=\"warehouse\"\r\n caption=\"{{'UretimYonetimi::IssuesForProductions.Warehouse' | abpLocalization}}\"\r\n [width]=\"120\">\r\n\r\n <dxo-lookup [dataSource]=\"warehouses\" displayExpr=\"whsName\" valueExpr=\"whsCode\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: ["::ng-deep .hit-green-row{background-color:#daf5dc!important}::ng-deep .hit-grey-row{background-color:#f2f4f7!important}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i7.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i8.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i8.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i8.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: i9.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: i9.DxoLookupComponent, selector: "dxo-lookup", inputs: ["allowClearing", "calculateCellValue", "dataSource", "displayExpr", "valueExpr"] }, { kind: "component", type: i8.DxNumberBoxComponent, selector: "dx-number-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "format", "height", "hint", "hoverStateEnabled", "inputAttr", "invalidValueMessage", "isValid", "label", "labelMode", "max", "min", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showSpinButtons", "step", "stylingMode", "tabIndex", "text", "useLargeSpinButtons", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formatChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "invalidValueMessageChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "minChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showSpinButtonsChange", "stepChange", "stylingModeChange", "tabIndexChange", "textChange", "useLargeSpinButtonsChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIssuesForProductionsComponent, decorators: [{
234
+ type: Component,
235
+ args: [{ selector: 'lib-hit-issues-for-productions', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n {{ 'UretimYonetimi::IssuesForProductions.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row text-lg-end pt-2\">\r\n <div class=\"col-8\">\r\n <button class=\"btn btn-success btn-sm\" type=\"button\" (click)=\"postIssuesForProduction()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi\">\r\n <i class=\"fa fa-plus me-1\"></i>\r\n {{ 'UretimYonetimi::IssuesForProductions.Create' | abpLocalization }}\r\n </button>\r\n </div>\r\n <div class=\"col-4\">\r\n <button class=\"btn btn-warning btn-sm\" type=\"button\" (click)=\"clearAll()\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n {{ 'UretimYonetimi::IssuesForProductions.Clean' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #barkodNumarasiRef\r\n class=\"me-1\" style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::IssuesForProductions.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"isEmriBarkodu\"\r\n (onChange)=\"getProductionOrder()\"\r\n (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"isEmriBarkoduGecerliMi\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\" (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"isEmriBarkoduGecerliMi\">\r\n </dx-button>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"isEmriBarkoduGecerliMi\">\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::IssuesForProductions.WorkOrderName' | abpLocalization\"\r\n [(value)]=\"productionOrder.productDescription\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-number-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::IssuesForProductions.PlannedQty' | abpLocalization\"\r\n [(value)]=\"productionOrder.plannedQuantity\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-text-box #hammaddeQRRef\r\n style=\"width:100%;\"\r\n class=\"me-1\"\r\n [label]=\"'UretimYonetimi::IssuesForProductions.IssueQRCode' | abpLocalization\"\r\n [maxLength]=\"256\"\r\n [(value)]=\"hammaddeQR\"\r\n (onEnterKey)=\"parseAndAddQR()\"\r\n placeholder=\"QR kod okutun...\">\r\n </dx-text-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"plus\" type=\"default\" (onClick)=\"parseAndAddQR()\">\r\n </dx-button>\r\n </div>\r\n\r\n <div *ngIf=\"productionOrder.getProductionOrderLine?.length\" class=\"mt-3\">\r\n <dx-data-grid #getProductionOrderLineGrid\r\n [dataSource]=\"productionOrder.getProductionOrderLine\"\r\n [showBorders]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [sorting]=\"{ mode: 'none' }\"\r\n (onRowPrepared)=\"onRowPrepared($event)\">\r\n <dxi-column dataField=\"itemName\"\r\n caption=\"{{'UretimYonetimi::IssuesForProductions.ItemName' | abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"quantity\"\r\n caption=\"{{'UretimYonetimi::IssuesForProductions.Quantity' | abpLocalization}}\"\r\n dataType=\"number\" [format]=\"HitHelper.getMeasurementFormatted('kg')\"></dxi-column>\r\n <dxi-column dataField=\"plannedQty\"\r\n caption=\"{{'UretimYonetimi::IssuesForProductions.PlannedQty' | abpLocalization}}\"\r\n dataType=\"number\" [format]=\"HitHelper.getMeasurementFormatted('kg')\"></dxi-column>\r\n <dxi-column dataField=\"issuedQty\"\r\n caption=\"{{'UretimYonetimi::IssuesForProductions.CompletedQty' | abpLocalization}}\"\r\n dataType=\"number\" [format]=\"HitHelper.getMeasurementFormatted('kg')\"></dxi-column>\r\n <dxi-column dataField=\"itemCode\"\r\n caption=\"{{'UretimYonetimi::IssuesForProductions.ItemCode' | abpLocalization}}\"\r\n [width]=\"150\"></dxi-column>\r\n <dxi-column dataField=\"batchNumber\"\r\n caption=\"{{'UretimYonetimi::IssuesForProductions.BatchNumber' | abpLocalization}}\"\r\n [width]=\"120\"></dxi-column>\r\n <dxi-column dataField=\"warehouse\"\r\n caption=\"{{'UretimYonetimi::IssuesForProductions.Warehouse' | abpLocalization}}\"\r\n [width]=\"120\">\r\n\r\n <dxo-lookup [dataSource]=\"warehouses\" displayExpr=\"whsName\" valueExpr=\"whsCode\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: ["::ng-deep .hit-green-row{background-color:#daf5dc!important}::ng-deep .hit-grey-row{background-color:#f2f4f7!important}\n"] }]
236
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.ListService }, { type: i1.TrackByService }, { type: i2.HitIssuesForProductionsService }, { type: i3.ConfirmationService }, { type: i4.FormBuilder }, { type: i5.HitProductionOrdersService }]; }, propDecorators: { nmbBoxBarkodNumarasi: [{
237
+ type: ViewChild,
238
+ args: ['barkodNumarasiRef', { static: false }]
239
+ }], nmbBoxHammaddeQR: [{
240
+ type: ViewChild,
241
+ args: ['hammaddeQRRef', { static: false }]
242
+ }], dataGrid: [{
243
+ type: ViewChild,
244
+ args: ['getProductionOrderLineGrid', { static: false }]
245
+ }] } });
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWlzc3Vlcy1mb3ItcHJvZHVjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvY29tcG9uZW50cy9oaXQtaXNzdWVzLWZvci1wcm9kdWN0aW9ucy9oaXQtaXNzdWVzLWZvci1wcm9kdWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1pc3N1ZXMtZm9yLXByb2R1Y3Rpb25zL2hpdC1pc3N1ZXMtZm9yLXByb2R1Y3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBTSxXQUFXLEVBQWlDLE1BQU0sY0FBYyxDQUFDO0FBRTlFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQWdCLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFFM0csT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBSzFELE9BQU8sRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUNULDBCQUEwQixFQUMzQixNQUFNLG1EQUFtRCxDQUFDO0FBSTNELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFTakQsTUFBTSxPQUFPLGdDQUFnQztJQVczQyxZQUNVLE1BQWMsRUFDTixJQUFpQixFQUNqQixLQUFxQixFQUNyQixPQUF1QyxFQUMvQyxZQUFpQyxFQUNqQyxFQUFlLEVBQ2YsdUJBQW1EO1FBTm5ELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDTixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWdD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b3J0IHtBQlAsIExpc3RTZXJ2aWNlLCBQYWdlZFJlc3VsdER0bywgVHJhY2tCeVNlcnZpY2V9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7Q29uZmlybWF0aW9uLCBDb25maXJtYXRpb25TZXJ2aWNlfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7RGF0ZUFkYXB0ZXJ9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xyXG5pbXBvcnQge0FmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBOZ1pvbmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1CdWlsZGVyfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TmdiRGF0ZUFkYXB0ZXJ9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHtcclxuICBIaXRJc3N1ZXNGb3JQcm9kdWN0aW9uc1NlcnZpY2VcclxufSBmcm9tIFwiLi4vLi4vaGl0LXByb3h5L2hpdC1pc3N1ZXMtZm9yLXByb2R1Y3Rpb25zL2hpdC1pc3N1ZXMtZm9yLXByb2R1Y3Rpb25zLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtIaXRQcm9kdWN0aW9uT3JkZXJzU2VydmljZX0gZnJvbSBcIi4uLy4uL2hpdC1wcm94eS9oaXQtcHJvZHVjdGlvbi1vcmRlcnMvaGl0LXByb2R1Y3Rpb24tb3JkZXJzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtcclxuICBCYXRjaE51bWJlcixcclxuICBJc3N1ZUxpbmUsXHJcbiAgSXNzdWVzRm9yUHJvZHVjdGlvblBvc3REdG9cclxufSBmcm9tIFwiLi4vLi4vaGl0LXByb3h5L2hpdC1pc3N1ZXMtZm9yLXByb2R1Y3Rpb25zL21vZGVsc1wiO1xyXG5pbXBvcnQge0dldFByb2R1Y3Rpb25PcmRlckR0b30gZnJvbSBcIi4uLy4uL2hpdC1wcm94eS9oaXQtcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb25zL21vZGVsc1wiO1xyXG5pbXBvcnQge0R4RGF0YUdyaWRDb21wb25lbnQsIER4VGV4dEJveENvbXBvbmVudH0gZnJvbSBcImRldmV4dHJlbWUtYW5ndWxhclwiO1xyXG5pbXBvcnQge1dhcmVob3VzZX0gZnJvbSBcIi4uLy4uL2hpdC1wcm94eS9oaXQtcHJvZHVjdGlvbi1vcmRlcnMvbW9kZWxzXCI7XHJcbmltcG9ydCB7SGl0SGVscGVyfSBmcm9tIFwiLi4vLi4vaGl0LXByb3h5L21vZGVsc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItaGl0LWlzc3Vlcy1mb3ItcHJvZHVjdGlvbnMnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxuICBwcm92aWRlcnM6IFtMaXN0U2VydmljZSwge3Byb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUFkYXB0ZXJ9XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGl0LWlzc3Vlcy1mb3ItcHJvZHVjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hpdC1pc3N1ZXMtZm9yLXByb2R1Y3Rpb25zLmNvbXBvbmVuZXQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRJc3N1ZXNGb3JQcm9kdWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnYmFya29kTnVtYXJhc2lSZWYnLCB7c3RhdGljOiBmYWxzZX0pIG5tYkJveEJhcmtvZE51bWFyYXNpOiBEeFRleHRCb3hDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnaGFtbWFkZGVRUlJlZicsIHtzdGF0aWM6IGZhbHNlfSkgbm1iQm94SGFtbWFkZGVRUjogRHhUZXh0Qm94Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2dldFByb2R1Y3Rpb25PcmRlckxpbmVHcmlkJywge3N0YXRpYzogZmFsc2V9KSBkYXRhR3JpZDogRHhEYXRhR3JpZENvbXBvbmVudDtcclxuXHJcbiAgb3B0aW9uczogUGFydGlhbDxDb25maXJtYXRpb24uT3B0aW9ucz4gPSB7XHJcbiAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdDogTGlzdFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHJhY2s6IFRyYWNrQnlTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IEhpdElzc3Vlc0ZvclByb2R1Y3Rpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHByb2R1Y3Rpb25PcmRlcnNTZXJ2aWNlOiBIaXRQcm9kdWN0aW9uT3JkZXJzU2VydmljZSxcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZm9jdXNCYXJrb2RJbnB1dCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICB0aGlzLmdldFdhcmVob3VzZXMoKTtcclxuICB9XHJcblxyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzRW1yaUJhcmtvZHVHZWNlcmxpTWk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0VtcmlCYXJrb2R1OiBudW1iZXI7XHJcbiAgaGFtbWFkZGVRUjogc3RyaW5nID0gJyc7XHJcbiAgcHJvZHVjdGlvbk9yZGVyOiBHZXRQcm9kdWN0aW9uT3JkZXJEdG87XHJcbiAgaXNzdWVzRm9yUHJvZHVjdGlvblBvc3Q6IElzc3Vlc0ZvclByb2R1Y3Rpb25Qb3N0RHRvO1xyXG5cclxuICBhc3luYyBnZXRQcm9kdWN0aW9uT3JkZXIoKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNFbXJpQmFya29kdSkge1xyXG4gICAgICB0aGlzLmZvY3VzQmFya29kSW5wdXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNFbXJpQmFya29kdUdlY2VybGlNaSA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMucHJvZHVjdGlvbk9yZGVyc1NlcnZpY2UuZ2V0KHRoaXMuaXNFbXJpQmFya29kdSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlLmlzU3VjY2Vzc2Z1bCkge1xyXG4gICAgICAgICAgdGhpcy5wcm9kdWN0aW9uT3JkZXIgPSByZXNwb25zZS5pdGVtcztcclxuICAgICAgICAgIHRoaXMuaXNFbXJpQmFya29kdUdlY2VybGlNaSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgY29uc3QgaXNzdWVMaW5lczogSXNzdWVMaW5lW10gPSB0aGlzLnByb2R1Y3Rpb25PcmRlci5nZXRQcm9kdWN0aW9uT3JkZXJMaW5lLm1hcCgoaXNzdWVMaW5lKSA9PiB7XHJcbiAgICAgICAgICAgIGlzc3VlTGluZS5xdWFudGl0eSA9IDA7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0lzc3VlTGluZSA9IG5ldyBJc3N1ZUxpbmUoKTtcclxuICAgICAgICAgICAgbmV3SXNzdWVMaW5lLkl0ZW1Db2RlID0gaXNzdWVMaW5lLml0ZW1Db2RlO1xyXG4gICAgICAgICAgICBuZXdJc3N1ZUxpbmUuQmFzZUxpbmUgPSBpc3N1ZUxpbmUubGluZU51bTtcclxuICAgICAgICAgICAgbmV3SXNzdWVMaW5lLldhcmVob3VzZUNvZGUgPSBpc3N1ZUxpbmUud2FyZWhvdXNlO1xyXG4gICAgICAgICAgICBuZXdJc3N1ZUxpbmUuQmFzZUVudHJ5ID0gaXNzdWVMaW5lLmFic29sdXRlRW50cnk7XHJcbiAgICAgICAgICAgIG5ld0lzc3VlTGluZS5CYXRjaE51bWJlcnMgPSBbbmV3IEJhdGNoTnVtYmVyKGlzc3VlTGluZS5iYXRjaE51bWJlciwgaXNzdWVMaW5lLnBsYW5uZWRRdHkpXTtcclxuICAgICAgICAgICAgcmV0dXJuIG5ld0lzc3VlTGluZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5pc3N1ZXNGb3JQcm9kdWN0aW9uUG9zdCA9IG5ldyBJc3N1ZXNGb3JQcm9kdWN0aW9uUG9zdER0byhpc3N1ZUxpbmVzKTtcclxuXHJcbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLm5tYkJveEhhbW1hZGRlUVIuaW5zdGFuY2UuZm9jdXMoKTtcclxuICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGUpID0+IHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNFbXJpQmFya29kdUdlY2VybGlNaSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLnN0YXR1cyQuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZm9jdXNCYXJrb2RJbnB1dCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcGFyc2VBbmRBZGRRUigpIHtcclxuICAgIGlmICghdGhpcy5oYW1tYWRkZVFSKSB7XHJcbiAgICAgIHRoaXMuZm9jdXNRUklucHV0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdCBwYXJzZWQgPSBIaXRIZWxwZXIucGFyc2VRUih0aGlzLmhhbW1hZGRlUVIpO1xyXG4gICAgaWYgKCFwYXJzZWQpe1xyXG4gICAgICB0aGlzLmNvbmZpcm1hdGlvbi5lcnJvcignJywgJ0dlw6dlcnNpeiBiYXJrb2QhJywgdGhpcy5vcHRpb25zKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaGFtbWFkZGVRUiA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZXJ2aWNlLmdldChwYXJzZWQuY2hlbWljYWxDb2RlLCB0aGlzLnByb2R1Y3Rpb25PcmRlci5hYnNvbHV0ZUVudHJ5LnRvU3RyaW5nKCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZS5pc1N1Y2Nlc3NmdWwpIHtcclxuICAgICAgICAgIGNvbnN0IGlzc3VlTGluZSA9IHRoaXMucHJvZHVjdGlvbk9yZGVyLmdldFByb2R1Y3Rpb25PcmRlckxpbmUuZmluZCgoeCkgPT4geC5pdGVtQ29kZSA9PT0gcGFyc2VkLmNoZW1pY2FsQ29kZSk7XHJcbiAgICAgICAgICBpZihpc3N1ZUxpbmUgPT0gbnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCBcIkJ1IGnFnyBlbXJpbmRlIFwiICsgcGFyc2VkLmNoZW1pY2FsQ29kZSArIFwiIGtvZGx1IHN0b2sgYnVsdW5tdXlvci4gXCIsIHRoaXMub3B0aW9ucyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCBpc3N1ZUxpbmVGb3JQb3N0ID0gdGhpcy5pc3N1ZXNGb3JQcm9kdWN0aW9uUG9zdC5Eb2N1bWVudExpbmVzLmZpbmQoKHgpID0+IHguSXRlbUNvZGUgPT09IHBhcnNlZC5jaGVtaWNhbENvZGUpO1xyXG4gICAgICAgICAgaWYgKGlzc3VlTGluZSkge1xyXG4gICAgICAgICAgICBpZiAoaXNzdWVMaW5lLmlzc3VlZFF0eSArIGlzc3VlTGluZS5xdWFudGl0eSArIHBhcnNlZC53ZWlnaHRLZyA+IGlzc3VlTGluZS5wbGFubmVkUXR5KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uZXJyb3IoJycsICdUb3BsYW5hbiBtaWt0YXIgcGxhbmxhbmFuIG1pa3RhcsSxIGHFn8SxeW9yIScsIHRoaXMub3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlzc3VlTGluZS5xdWFudGl0eSArPSBwYXJzZWQud2VpZ2h0S2c7XHJcbiAgICAgICAgICAgIGlzc3VlTGluZS5iYXRjaE51bWJlciA9IHBhcnNlZC5sb3ROdW1iZXI7XHJcbiAgICAgICAgICAgIGlzc3VlTGluZUZvclBvc3QuUXVhbnRpdHkgKz0gcGFyc2VkLndlaWdodEtnO1xyXG5cclxuICAgICAgICAgICAgaWYgKGlzc3VlTGluZUZvclBvc3QuSXNRUlJlYWR5KSB7XHJcbiAgICAgICAgICAgICAgaXNzdWVMaW5lRm9yUG9zdC5CYXRjaE51bWJlcnMucHVzaChuZXcgQmF0Y2hOdW1iZXIocGFyc2VkLmxvdE51bWJlciwgcGFyc2VkLndlaWdodEtnKSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgICAgICAgIGlzc3VlTGluZUZvclBvc3QuQmF0Y2hOdW1iZXJzID0gW25ldyBCYXRjaE51bWJlcihwYXJzZWQubG90TnVtYmVyLCBwYXJzZWQud2VpZ2h0S2cpXTtcclxuICAgICAgICAgICAgICBpc3N1ZUxpbmVGb3JQb3N0LklzUVJSZWFkeSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLnN0YXR1cyQuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgICAgICAgdGhpcy5oYW1tYWRkZVFSID0gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgICB0aGlzLmhhbW1hZGRlUVIgPSAnJztcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHBvc3RJc3N1ZXNGb3JQcm9kdWN0aW9uKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzc3Vlc0ZvclByb2R1Y3Rpb25Qb3N0KSB7XHJcbiAgICAgIHRoaXMuZm9jdXNCYXJrb2RJbnB1dCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmlzc3Vlc0ZvclByb2R1Y3Rpb25Qb3N0LkRvY3VtZW50TGluZXMuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICB4LkJhc2VFbnRyeSA9IHRoaXMucHJvZHVjdGlvbk9yZGVyLmFic29sdXRlRW50cnk7XHJcbiAgICB9KTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuaXNzdWVzRm9yUHJvZHVjdGlvblBvc3QpO1xyXG4gICAgdGhpcy5pc3N1ZXNGb3JQcm9kdWN0aW9uUG9zdC5Eb2N1bWVudExpbmVzID0gdGhpcy5pc3N1ZXNGb3JQcm9kdWN0aW9uUG9zdC5Eb2N1bWVudExpbmVzLmZpbHRlcigoeCkgPT4geC5Jc1FSUmVhZHkpO1xyXG5cclxuICAgIHRoaXMuc2VydmljZS5wb3N0KHRoaXMuaXNzdWVzRm9yUHJvZHVjdGlvblBvc3QpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZS5pc1N1Y2Nlc3NmdWwpIHtcclxuICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLnN1Y2Nlc3MoJycsICfEsMWfbGVtIGJhxZ9hcsSxbMSxIScsIHRoaXMub3B0aW9ucykuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLnN0YXR1cyQuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJBbGwoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGUpID0+IHtcclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5lcnJvcignJywgJ0JpciBoYXRhIG9sdcWfdHUhJywgdGhpcy5vcHRpb25zKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsKCkge1xyXG4gICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzc3Vlc0ZvclByb2R1Y3Rpb25Qb3N0ID0gbnVsbDtcclxuICAgIHRoaXMuaXNFbXJpQmFya29kdSA9IG51bGw7XHJcbiAgICB0aGlzLmhhbW1hZGRlUVIgPSAnJztcclxuICAgIHRoaXMucHJvZHVjdGlvbk9yZGVyID0gbnVsbDtcclxuICAgIHRoaXMuZm9jdXNCYXJrb2RJbnB1dCgpO1xyXG4gIH1cclxuXHJcbiAgd2FyZWhvdXNlczogV2FyZWhvdXNlW10gPSBbXTtcclxuXHJcbiAgZ2V0V2FyZWhvdXNlcygpIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucHJvZHVjdGlvbk9yZGVyc1NlcnZpY2UuZ2V0V2FyZWhvdXNlcygpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0Lml0ZW1zKSB7XHJcbiAgICAgICAgICB0aGlzLndhcmVob3VzZXMgPSByZXN1bHQuaXRlbXMuc2xpY2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCByZWFkb25seSBIaXRIZWxwZXIgPSBIaXRIZWxwZXI7XHJcblxyXG4gIG9uUm93UHJlcGFyZWQoZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoZS5yb3dUeXBlID09PSAnZGF0YScpIHtcclxuICAgICAgaWYgKGUuZGF0YS5wbGFubmVkUXR5ID09PSBlLmRhdGEuaXNzdWVkUXR5KSB7XHJcbiAgICAgICAgZS5yb3dFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2hpdC1ncmV5LXJvdycpO1xyXG4gICAgICB9IGVsc2UgaWYgKGUuZGF0YS5xdWFudGl0eSA+IDApIHtcclxuICAgICAgICBlLnJvd0VsZW1lbnQuY2xhc3NMaXN0LmFkZCgnaGl0LWdyZWVuLXJvdycpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb2N1c1FSSW5wdXQoKSB7XHJcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLm5tYkJveEhhbW1hZGRlUVIuaW5zdGFuY2UuZm9jdXMoKTtcclxuICAgICAgfSwgMCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZvY3VzQmFya29kSW5wdXQoKSB7XHJcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLm5tYkJveEJhcmtvZE51bWFyYXNpLmluc3RhbmNlLmZvY3VzKCk7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbYnJlYWRjcnVtYl09XCJmYWxzZVwiPlxyXG4gIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciBjbGFzcz1cImNvbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJwYWdlLXRpdGxlXCI+XHJcbiAgICAgICAge3sgJ1VyZXRpbVlvbmV0aW1pOjpJc3N1ZXNGb3JQcm9kdWN0aW9ucy5UaXRsZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9oMz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyB0ZXh0LWxnLWVuZCBwdC0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOFwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJwb3N0SXNzdWVzRm9yUHJvZHVjdGlvbigpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNFbXJpQmFya29kdUdlY2VybGlNaVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1wbHVzIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICB7eyAnVXJldGltWW9uZXRpbWk6Oklzc3Vlc0ZvclByb2R1Y3Rpb25zLkNyZWF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXdhcm5pbmcgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbGVhckFsbCgpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJyb29tIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICB7eyAnVXJldGltWW9uZXRpbWk6Oklzc3Vlc0ZvclByb2R1Y3Rpb25zLkNsZWFuJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQgbXQtMlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICA8ZHgtbnVtYmVyLWJveCAjYmFya29kTnVtYXJhc2lSZWZcclxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1lLTFcIiBzdHlsZT1cIndpZHRoOjEwMCU7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpJc3N1ZXNGb3JQcm9kdWN0aW9ucy5Xb3JrT3JkZXJObycgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cImlzRW1yaUJhcmtvZHVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJnZXRQcm9kdWN0aW9uT3JkZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG9uRW50ZXJLZXkpPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0VtcmlCYXJrb2R1R2VjZXJsaU1pXCI+XHJcbiAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgIDxkeC1idXR0b24gc3R5bGU9XCJtYXJnaW4tdG9wOiA3LjVweDtcIiBpY29uPVwic2VhcmNoXCIgdHlwZT1cImRlZmF1bHRcIiAob25DbGljayk9XCJnZXRQcm9kdWN0aW9uT3JkZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNFbXJpQmFya29kdUdlY2VybGlNaVwiPlxyXG4gICAgICAgIDwvZHgtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cImlzRW1yaUJhcmtvZHVHZWNlcmxpTWlcIj5cclxuICAgICAgICA8ZHgtdGV4dC1ib3ggc3R5bGU9XCJ3aWR0aDoxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6Oklzc3Vlc0ZvclByb2R1Y3Rpb25zLldvcmtPcmRlck5hbWUnIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicHJvZHVjdGlvbk9yZGVyLnByb2R1Y3REZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICA8ZHgtbnVtYmVyLWJveCBzdHlsZT1cIndpZHRoOjEwMCU7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpJc3N1ZXNGb3JQcm9kdWN0aW9ucy5QbGFubmVkUXR5JyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicHJvZHVjdGlvbk9yZGVyLnBsYW5uZWRRdWFudGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcblxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgICAgPGR4LXRleHQtYm94ICNoYW1tYWRkZVFSUmVmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZS0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpJc3N1ZXNGb3JQcm9kdWN0aW9ucy5Jc3N1ZVFSQ29kZScgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFttYXhMZW5ndGhdPVwiMjU2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJoYW1tYWRkZVFSXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAob25FbnRlcktleSk9XCJwYXJzZUFuZEFkZFFSKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiUVIga29kIG9rdXR1bi4uLlwiPlxyXG4gICAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICAgIDxkeC1idXR0b24gc3R5bGU9XCJtYXJnaW4tdG9wOiA3LjVweDtcIiBpY29uPVwicGx1c1wiIHR5cGU9XCJkZWZhdWx0XCIgKG9uQ2xpY2spPVwicGFyc2VBbmRBZGRRUigpXCI+XHJcbiAgICAgICAgICA8L2R4LWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInByb2R1Y3Rpb25PcmRlci5nZXRQcm9kdWN0aW9uT3JkZXJMaW5lPy5sZW5ndGhcIiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgIDxkeC1kYXRhLWdyaWQgI2dldFByb2R1Y3Rpb25PcmRlckxpbmVHcmlkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cInByb2R1Y3Rpb25PcmRlci5nZXRQcm9kdWN0aW9uT3JkZXJMaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dCb3JkZXJzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uQXV0b1dpZHRoXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc29ydGluZ109XCJ7IG1vZGU6ICdub25lJyB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9uUm93UHJlcGFyZWQpPVwib25Sb3dQcmVwYXJlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIml0ZW1OYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FwdGlvbj1cInt7J1VyZXRpbVlvbmV0aW1pOjpJc3N1ZXNGb3JQcm9kdWN0aW9ucy5JdGVtTmFtZScgfCBhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwicXVhbnRpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uPVwie3snVXJldGltWW9uZXRpbWk6Oklzc3Vlc0ZvclByb2R1Y3Rpb25zLlF1YW50aXR5JyB8IGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU9XCJudW1iZXJcIiBbZm9ybWF0XT1cIkhpdEhlbHBlci5nZXRNZWFzdXJlbWVudEZvcm1hdHRlZCgna2cnKVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwicGxhbm5lZFF0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcHRpb249XCJ7eydVcmV0aW1Zb25ldGltaTo6SXNzdWVzRm9yUHJvZHVjdGlvbnMuUGxhbm5lZFF0eScgfCBhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlPVwibnVtYmVyXCIgW2Zvcm1hdF09XCJIaXRIZWxwZXIuZ2V0TWVhc3VyZW1lbnRGb3JtYXR0ZWQoJ2tnJylcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImlzc3VlZFF0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcHRpb249XCJ7eydVcmV0aW1Zb25ldGltaTo6SXNzdWVzRm9yUHJvZHVjdGlvbnMuQ29tcGxldGVkUXR5JyB8IGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU9XCJudW1iZXJcIiBbZm9ybWF0XT1cIkhpdEhlbHBlci5nZXRNZWFzdXJlbWVudEZvcm1hdHRlZCgna2cnKVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiaXRlbUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uPVwie3snVXJldGltWW9uZXRpbWk6Oklzc3Vlc0ZvclByb2R1Y3Rpb25zLkl0ZW1Db2RlJyB8IGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3dpZHRoXT1cIjE1MFwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiYmF0Y2hOdW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uPVwie3snVXJldGltWW9uZXRpbWk6Oklzc3Vlc0ZvclByb2R1Y3Rpb25zLkJhdGNoTnVtYmVyJyB8IGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3dpZHRoXT1cIjEyMFwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwid2FyZWhvdXNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FwdGlvbj1cInt7J1VyZXRpbVlvbmV0aW1pOjpJc3N1ZXNGb3JQcm9kdWN0aW9ucy5XYXJlaG91c2UnIHwgYWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiMTIwXCI+XHJcblxyXG4gICAgICAgICAgICAgIDxkeG8tbG9va3VwIFtkYXRhU291cmNlXT1cIndhcmVob3VzZXNcIiBkaXNwbGF5RXhwcj1cIndoc05hbWVcIiB2YWx1ZUV4cHI9XCJ3aHNDb2RlXCI+XHJcbiAgICAgICAgICAgICAgPC9keG8tbG9va3VwPlxyXG4gICAgICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9hYnAtcGFnZT5cclxuIl19
@@ -0,0 +1,68 @@
1
+ import { CoreModule } from '@abp/ng.core';
2
+ import { ThemeSharedModule } from '@abp/ng.theme.shared';
3
+ import { NgModule } from '@angular/core';
4
+ import { NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, } from '@ng-bootstrap/ng-bootstrap';
5
+ import { NgxValidateCoreModule } from '@ngx-validate/core';
6
+ import { CommercialUiModule } from '@volo/abp.commercial.ng.ui';
7
+ import { PageModule } from '@abp/ng.components/page';
8
+ import { HitIssuesForProductionsComponent } from "./hit-issues-for-productions.component";
9
+ import { HitIssuesForProductionsRoutingModule } from "./hit-issues-for-productions-routing.module";
10
+ import { DevExtremeModule, DxButtonModule, DxDataGridModule, DxLoadIndicatorModule, DxTextBoxModule } from "devextreme-angular";
11
+ import * as i0 from "@angular/core";
12
+ export class HitIssuesForProductionModule {
13
+ }
14
+ HitIssuesForProductionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIssuesForProductionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ HitIssuesForProductionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitIssuesForProductionModule, declarations: [HitIssuesForProductionsComponent], imports: [HitIssuesForProductionsRoutingModule,
16
+ CoreModule,
17
+ ThemeSharedModule,
18
+ CommercialUiModule,
19
+ NgxValidateCoreModule,
20
+ NgbCollapseModule,
21
+ NgbDatepickerModule,
22
+ NgbDropdownModule,
23
+ PageModule,
24
+ DxTextBoxModule,
25
+ DxButtonModule,
26
+ DxDataGridModule,
27
+ DxLoadIndicatorModule,
28
+ DevExtremeModule] });
29
+ HitIssuesForProductionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIssuesForProductionModule, imports: [HitIssuesForProductionsRoutingModule,
30
+ CoreModule,
31
+ ThemeSharedModule,
32
+ CommercialUiModule,
33
+ NgxValidateCoreModule,
34
+ NgbCollapseModule,
35
+ NgbDatepickerModule,
36
+ NgbDropdownModule,
37
+ PageModule,
38
+ DxTextBoxModule,
39
+ DxButtonModule,
40
+ DxDataGridModule,
41
+ DxLoadIndicatorModule,
42
+ DevExtremeModule] });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitIssuesForProductionModule, decorators: [{
44
+ type: NgModule,
45
+ args: [{
46
+ declarations: [HitIssuesForProductionsComponent],
47
+ imports: [
48
+ HitIssuesForProductionsRoutingModule,
49
+ CoreModule,
50
+ ThemeSharedModule,
51
+ CommercialUiModule,
52
+ NgxValidateCoreModule,
53
+ NgbCollapseModule,
54
+ NgbDatepickerModule,
55
+ NgbDropdownModule,
56
+ PageModule,
57
+ DxTextBoxModule,
58
+ DxButtonModule,
59
+ DxDataGridModule,
60
+ DxLoadIndicatorModule,
61
+ DevExtremeModule
62
+ ],
63
+ }]
64
+ }] });
65
+ export function loadHitIssuesForProductionsAsChild() {
66
+ return Promise.resolve(HitIssuesForProductionModule);
67
+ }
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWlzc3Vlcy1mb3ItcHJvZHVjdGlvbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvY29tcG9uZW50cy9oaXQtaXNzdWVzLWZvci1wcm9kdWN0aW9ucy9oaXQtaXNzdWVzLWZvci1wcm9kdWN0aW9ucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGlCQUFpQixHQUNsQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUN4RixPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLGVBQWUsRUFDaEIsTUFBTSxvQkFBb0IsQ0FBQzs7QUFxQjVCLE1BQU0sT0FBTyw0QkFBNEI7O3lIQUE1Qiw0QkFBNEI7MEhBQTVCLDRCQUE0QixpQkFsQnhCLGdDQUFnQyxhQUU3QyxvQ0FBb0M7UUFDcEMsVUFBVTtRQUNWLGlCQUFpQjtRQUNqQixrQkFBa0I7UUFDbEIscUJBQXFCO1FBQ3JCLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLFVBQVU7UUFDVixlQUFlO1FBQ2YsY0FBYztRQUNkLGdCQUFnQjtRQUNoQixxQkFBcUI7UUFDckIsZ0JBQWdCOzBIQUdQLDRCQUE0QixZQWhCckMsb0NBQW9DO1FBQ3BDLFVBQVU7UUFDVixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixVQUFVO1FBQ1YsZUFBZTtRQUNmLGNBQWM7UUFDZCxnQkFBZ0I7UUFDaEIscUJBQXFCO1FBQ3JCLGdCQUFnQjsyRkFHUCw0QkFBNEI7a0JBbkJ4QyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGdDQUFnQyxDQUFDO29CQUNoRCxPQUFPLEVBQUU7d0JBQ1Asb0NBQW9DO3dCQUNwQyxVQUFVO3dCQUNWLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixnQkFBZ0I7cUJBQ2pCO2lCQUNGOztBQUlELE1BQU0sVUFBVSxrQ0FBa0M7SUFDaEQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29yZU1vZHVsZX0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHtUaGVtZVNoYXJlZE1vZHVsZX0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBOZ2JDb2xsYXBzZU1vZHVsZSxcclxuICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG59IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHtOZ3hWYWxpZGF0ZUNvcmVNb2R1bGV9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XHJcbmltcG9ydCB7Q29tbWVyY2lhbFVpTW9kdWxlfSBmcm9tICdAdm9sby9hYnAuY29tbWVyY2lhbC5uZy51aSc7XHJcbmltcG9ydCB7UGFnZU1vZHVsZX0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL3BhZ2UnO1xyXG5pbXBvcnQge0hpdElzc3Vlc0ZvclByb2R1Y3Rpb25zQ29tcG9uZW50fSBmcm9tIFwiLi9oaXQtaXNzdWVzLWZvci1wcm9kdWN0aW9ucy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtIaXRJc3N1ZXNGb3JQcm9kdWN0aW9uc1JvdXRpbmdNb2R1bGV9IGZyb20gXCIuL2hpdC1pc3N1ZXMtZm9yLXByb2R1Y3Rpb25zLXJvdXRpbmcubW9kdWxlXCI7XHJcbmltcG9ydCB7XHJcbiAgRGV2RXh0cmVtZU1vZHVsZSxcclxuICBEeEJ1dHRvbk1vZHVsZSxcclxuICBEeERhdGFHcmlkTW9kdWxlLFxyXG4gIER4TG9hZEluZGljYXRvck1vZHVsZSxcclxuICBEeFRleHRCb3hNb2R1bGVcclxufSBmcm9tIFwiZGV2ZXh0cmVtZS1hbmd1bGFyXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0hpdElzc3Vlc0ZvclByb2R1Y3Rpb25zQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBIaXRJc3N1ZXNGb3JQcm9kdWN0aW9uc1JvdXRpbmdNb2R1bGUsXHJcbiAgICBDb3JlTW9kdWxlLFxyXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXHJcbiAgICBDb21tZXJjaWFsVWlNb2R1bGUsXHJcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUsXHJcbiAgICBOZ2JDb2xsYXBzZU1vZHVsZSxcclxuICAgIE5nYkRhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcclxuICAgIFBhZ2VNb2R1bGUsXHJcbiAgICBEeFRleHRCb3hNb2R1bGUsXHJcbiAgICBEeEJ1dHRvbk1vZHVsZSxcclxuICAgIER4RGF0YUdyaWRNb2R1bGUsXHJcbiAgICBEeExvYWRJbmRpY2F0b3JNb2R1bGUsXHJcbiAgICBEZXZFeHRyZW1lTW9kdWxlXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdElzc3Vlc0ZvclByb2R1Y3Rpb25Nb2R1bGUge1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZEhpdElzc3Vlc0ZvclByb2R1Y3Rpb25zQXNDaGlsZCgpIHtcclxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKEhpdElzc3Vlc0ZvclByb2R1Y3Rpb25Nb2R1bGUpO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { AuthGuard, PermissionGuard } from '@abp/ng.core';
2
+ import { NgModule } from '@angular/core';
3
+ import { RouterModule } from '@angular/router';
4
+ import { HitProductionOrdersComponent } from "./hit-production-orders.component";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/router";
7
+ const routes = [
8
+ {
9
+ path: '',
10
+ component: HitProductionOrdersComponent,
11
+ canActivate: [AuthGuard, PermissionGuard],
12
+ },
13
+ ];
14
+ export class HitProductionOrdersRoutingModule {
15
+ }
16
+ HitProductionOrdersRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitProductionOrdersRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ HitProductionOrdersRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitProductionOrdersRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
18
+ HitProductionOrdersRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitProductionOrdersRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitProductionOrdersRoutingModule, decorators: [{
20
+ type: NgModule,
21
+ args: [{
22
+ imports: [RouterModule.forChild(routes)],
23
+ exports: [RouterModule],
24
+ }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXByb2R1Y3Rpb24tb3JkZXJzLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvY29tcG9uZW50cy9oaXQtcHJvZHVjdGlvbi1vcmRlcnMvaGl0LXByb2R1Y3Rpb24tb3JkZXJzLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDOzs7QUFFL0UsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSw0QkFBNEI7UUFDdkMsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQztLQUMxQztDQUNGLENBQUM7QUFNRixNQUFNLE9BQU8sZ0NBQWdDOzs2SEFBaEMsZ0NBQWdDOzhIQUFoQyxnQ0FBZ0Msd0NBRmpDLFlBQVk7OEhBRVgsZ0NBQWdDLFlBSGpDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7MkZBRVgsZ0NBQWdDO2tCQUo1QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0F1dGhHdWFyZCwgUGVybWlzc2lvbkd1YXJkfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtSb3V0ZXJNb2R1bGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHtIaXRQcm9kdWN0aW9uT3JkZXJzQ29tcG9uZW50fSBmcm9tIFwiLi9oaXQtcHJvZHVjdGlvbi1vcmRlcnMuY29tcG9uZW50XCI7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICB7XHJcbiAgICBwYXRoOiAnJyxcclxuICAgIGNvbXBvbmVudDogSGl0UHJvZHVjdGlvbk9yZGVyc0NvbXBvbmVudCxcclxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkLCBQZXJtaXNzaW9uR3VhcmRdLFxyXG4gIH0sXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXHJcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRQcm9kdWN0aW9uT3JkZXJzUm91dGluZ01vZHVsZSB7XHJcbn1cclxuIl19