@hitsoft/abp.kadooglu 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 (182) hide show
  1. package/README.md +24 -0
  2. package/config/enums/index.d.ts +1 -0
  3. package/config/enums/route-names.d.ts +12 -0
  4. package/config/index.d.ts +5 -0
  5. package/config/kadooglu-config.module.d.ts +8 -0
  6. package/config/providers/hit-providers/hit-carrier-person-route.provider.d.ts +9 -0
  7. package/config/providers/hit-providers/hit-entry-weighing-route.provider.d.ts +9 -0
  8. package/config/providers/hit-providers/hit-factory-entry-route.provider.d.ts +9 -0
  9. package/config/providers/hit-providers/hit-gate-route.provider.d.ts +9 -0
  10. package/config/providers/hit-providers/hit-knt-item-esl-route.provider.d.ts +9 -0
  11. package/config/providers/hit-providers/hit-plate-route.provider.d.ts +9 -0
  12. package/config/providers/hit-providers/hit-route.provider.d.ts +8 -0
  13. package/config/providers/hit-providers/hit-scale-route.provider.d.ts +9 -0
  14. package/config/providers/hit-providers/hit-tanimlamalar-route.provider.d.ts +9 -0
  15. package/config/providers/hit-providers/hit-vehicle-type-route.provider.d.ts +9 -0
  16. package/config/providers/index.d.ts +1 -0
  17. package/config/providers/route.provider.d.ts +8 -0
  18. package/config/public-api.d.ts +3 -0
  19. package/esm2020/config/enums/index.mjs +2 -0
  20. package/esm2020/config/enums/route-names.mjs +2 -0
  21. package/esm2020/config/hitsoft-abp.kadooglu-config.mjs +5 -0
  22. package/esm2020/config/kadooglu-config.module.mjs +40 -0
  23. package/esm2020/config/providers/hit-providers/hit-carrier-person-route.provider.mjs +20 -0
  24. package/esm2020/config/providers/hit-providers/hit-entry-weighing-route.provider.mjs +20 -0
  25. package/esm2020/config/providers/hit-providers/hit-factory-entry-route.provider.mjs +20 -0
  26. package/esm2020/config/providers/hit-providers/hit-gate-route.provider.mjs +20 -0
  27. package/esm2020/config/providers/hit-providers/hit-knt-item-esl-route.provider.mjs +20 -0
  28. package/esm2020/config/providers/hit-providers/hit-plate-route.provider.mjs +20 -0
  29. package/esm2020/config/providers/hit-providers/hit-route.provider.mjs +24 -0
  30. package/esm2020/config/providers/hit-providers/hit-scale-route.provider.mjs +20 -0
  31. package/esm2020/config/providers/hit-providers/hit-tanimlamalar-route.provider.mjs +20 -0
  32. package/esm2020/config/providers/hit-providers/hit-vehicle-type-route.provider.mjs +20 -0
  33. package/esm2020/config/providers/index.mjs +2 -0
  34. package/esm2020/config/providers/route.provider.mjs +24 -0
  35. package/esm2020/config/public-api.mjs +4 -0
  36. package/esm2020/hitsoft-abp.kadooglu.mjs +5 -0
  37. package/esm2020/lib/components/kadooglu.component.mjs +18 -0
  38. package/esm2020/lib/hit-components/hit-carrier-person/hit-carrier-person-form/hit-carrier-person-form.component.mjs +160 -0
  39. package/esm2020/lib/hit-components/hit-carrier-person/hit-carrier-person-list/hit-carrier-person-list.component.mjs +101 -0
  40. package/esm2020/lib/hit-components/hit-carrier-person/hit-carrier-person-routing.module.mjs +21 -0
  41. package/esm2020/lib/hit-components/hit-carrier-person/hit-carrier-person.module.mjs +68 -0
  42. package/esm2020/lib/hit-components/hit-entry-weighing/hit-entry-weighing-form/hit-entry-weighing-form.component.mjs +544 -0
  43. package/esm2020/lib/hit-components/hit-entry-weighing/hit-entry-weighing-list/hit-entry-weighing-list.component.mjs +202 -0
  44. package/esm2020/lib/hit-components/hit-entry-weighing/hit-entry-weighing-routing.module.mjs +24 -0
  45. package/esm2020/lib/hit-components/hit-entry-weighing/hit-entry-weighing.module.mjs +77 -0
  46. package/esm2020/lib/hit-components/hit-factory-entry/hit-factory-entry-form/hit-factory-entry-form.component.mjs +380 -0
  47. package/esm2020/lib/hit-components/hit-factory-entry/hit-factory-entry-list/hit-factory-entry-list.component.mjs +115 -0
  48. package/esm2020/lib/hit-components/hit-factory-entry/hit-factory-entry-routing.module.mjs +21 -0
  49. package/esm2020/lib/hit-components/hit-factory-entry/hit-factory-entry.module.mjs +83 -0
  50. package/esm2020/lib/hit-components/hit-gate/hit-gate-form/hit-gate-form.component.mjs +148 -0
  51. package/esm2020/lib/hit-components/hit-gate/hit-gate-list/hit-gate-list.component.mjs +93 -0
  52. package/esm2020/lib/hit-components/hit-gate/hit-gate-routing.module.mjs +21 -0
  53. package/esm2020/lib/hit-components/hit-gate/hit-gate.module.mjs +71 -0
  54. package/esm2020/lib/hit-components/hit-knt-item-esl/hit-knt-item-esl-form/hit-knt-item-esl-form.component.mjs +140 -0
  55. package/esm2020/lib/hit-components/hit-knt-item-esl/hit-knt-item-esl-list/hit-knt-item-esl-list.component.mjs +78 -0
  56. package/esm2020/lib/hit-components/hit-knt-item-esl/hit-knt-item-esl-routing.module.mjs +21 -0
  57. package/esm2020/lib/hit-components/hit-knt-item-esl/hit-knt-item-esl.module.mjs +68 -0
  58. package/esm2020/lib/hit-components/hit-plate/hit-plate-form/hit-plate-form.component.mjs +102 -0
  59. package/esm2020/lib/hit-components/hit-plate/hit-plate-list/hit-plate-list.component.mjs +101 -0
  60. package/esm2020/lib/hit-components/hit-plate/hit-plate-routing.module.mjs +21 -0
  61. package/esm2020/lib/hit-components/hit-plate/hit-plate.module.mjs +68 -0
  62. package/esm2020/lib/hit-components/hit-scale/hit-scale-form/hit-scale-form.component.mjs +127 -0
  63. package/esm2020/lib/hit-components/hit-scale/hit-scale-list/hit-scale-list.component.mjs +106 -0
  64. package/esm2020/lib/hit-components/hit-scale/hit-scale-routing.module.mjs +21 -0
  65. package/esm2020/lib/hit-components/hit-scale/hit-scale.module.mjs +71 -0
  66. package/esm2020/lib/hit-components/hit-vehicle-type/hit-vehicle-type-form/hit-vehicle-type-form.component.mjs +143 -0
  67. package/esm2020/lib/hit-components/hit-vehicle-type/hit-vehicle-type-list/hit-vehicle-type-list.component.mjs +96 -0
  68. package/esm2020/lib/hit-components/hit-vehicle-type/hit-vehicle-type-routing.module.mjs +21 -0
  69. package/esm2020/lib/hit-components/hit-vehicle-type/hit-vehicle-type.module.mjs +68 -0
  70. package/esm2020/lib/hit-proxy/hit-business-partner/hit-business-partner.service.mjs +22 -0
  71. package/esm2020/lib/hit-proxy/hit-business-partner/models.mjs +2 -0
  72. package/esm2020/lib/hit-proxy/hit-carrier-person/hit-carrier-person.service.mjs +33 -0
  73. package/esm2020/lib/hit-proxy/hit-carrier-person/models.mjs +2 -0
  74. package/esm2020/lib/hit-proxy/hit-entry-weighing/hit-entry-weighing.service.mjs +95 -0
  75. package/esm2020/lib/hit-proxy/hit-entry-weighing/models.mjs +2 -0
  76. package/esm2020/lib/hit-proxy/hit-factory-entry/hit-factory-entry.service.mjs +34 -0
  77. package/esm2020/lib/hit-proxy/hit-factory-entry/models.mjs +2 -0
  78. package/esm2020/lib/hit-proxy/hit-gate/hit-gate.service.mjs +33 -0
  79. package/esm2020/lib/hit-proxy/hit-gate/models.mjs +2 -0
  80. package/esm2020/lib/hit-proxy/hit-item/hit-item.service.mjs +22 -0
  81. package/esm2020/lib/hit-proxy/hit-item/models.mjs +2 -0
  82. package/esm2020/lib/hit-proxy/hit-knt-item-esl/hit-knt-item-esl.service.mjs +33 -0
  83. package/esm2020/lib/hit-proxy/hit-knt-item-esl/models.mjs +2 -0
  84. package/esm2020/lib/hit-proxy/hit-plate/hit-plate.service.mjs +33 -0
  85. package/esm2020/lib/hit-proxy/hit-plate/models.mjs +2 -0
  86. package/esm2020/lib/hit-proxy/hit-purchase-delivery-note/hit-purchase-delivery-note.service.mjs +22 -0
  87. package/esm2020/lib/hit-proxy/hit-purchase-delivery-note/models.mjs +2 -0
  88. package/esm2020/lib/hit-proxy/hit-scale/hit-scale.service.mjs +33 -0
  89. package/esm2020/lib/hit-proxy/hit-scale/models.mjs +2 -0
  90. package/esm2020/lib/hit-proxy/hit-stock-transfer/hit-stock-transfer.service.mjs +22 -0
  91. package/esm2020/lib/hit-proxy/hit-stock-transfer/models.mjs +2 -0
  92. package/esm2020/lib/hit-proxy/hit-user-gate/hit-user-gate.service.mjs +31 -0
  93. package/esm2020/lib/hit-proxy/hit-user-gate/models.mjs +2 -0
  94. package/esm2020/lib/hit-proxy/hit-vehicle-type/hit-vehicle-type.service.mjs +33 -0
  95. package/esm2020/lib/hit-proxy/hit-vehicle-type/models.mjs +2 -0
  96. package/esm2020/lib/hit-proxy/hit-warehouse/hit-warehouse.service.mjs +21 -0
  97. package/esm2020/lib/hit-proxy/hit-warehouse/models.mjs +2 -0
  98. package/esm2020/lib/hit-proxy/models.mjs +2 -0
  99. package/esm2020/lib/kadooglu-routing.module.mjs +41 -0
  100. package/esm2020/lib/kadooglu.module.mjs +49 -0
  101. package/esm2020/lib/services/kadooglu.service.mjs +21 -0
  102. package/esm2020/lib/shared/hit-modal/hit-modal.component.mjs +110 -0
  103. package/esm2020/lib/shared/hit-modal/hit-ui.module.mjs +35 -0
  104. package/esm2020/public-api.mjs +9 -0
  105. package/fesm2015/hitsoft-abp.kadooglu-config.mjs +243 -0
  106. package/fesm2015/hitsoft-abp.kadooglu-config.mjs.map +1 -0
  107. package/fesm2015/hitsoft-abp.kadooglu.mjs +3774 -0
  108. package/fesm2015/hitsoft-abp.kadooglu.mjs.map +1 -0
  109. package/fesm2020/hitsoft-abp.kadooglu-config.mjs +243 -0
  110. package/fesm2020/hitsoft-abp.kadooglu-config.mjs.map +1 -0
  111. package/fesm2020/hitsoft-abp.kadooglu.mjs +3728 -0
  112. package/fesm2020/hitsoft-abp.kadooglu.mjs.map +1 -0
  113. package/index.d.ts +5 -0
  114. package/lib/components/kadooglu.component.d.ts +10 -0
  115. package/lib/hit-components/hit-carrier-person/hit-carrier-person-form/hit-carrier-person-form.component.d.ts +49 -0
  116. package/lib/hit-components/hit-carrier-person/hit-carrier-person-list/hit-carrier-person-list.component.d.ts +30 -0
  117. package/lib/hit-components/hit-carrier-person/hit-carrier-person-routing.module.d.ts +7 -0
  118. package/lib/hit-components/hit-carrier-person/hit-carrier-person.module.d.ts +19 -0
  119. package/lib/hit-components/hit-entry-weighing/hit-entry-weighing-form/hit-entry-weighing-form.component.d.ts +200 -0
  120. package/lib/hit-components/hit-entry-weighing/hit-entry-weighing-list/hit-entry-weighing-list.component.d.ts +46 -0
  121. package/lib/hit-components/hit-entry-weighing/hit-entry-weighing-routing.module.d.ts +7 -0
  122. package/lib/hit-components/hit-entry-weighing/hit-entry-weighing.module.d.ts +19 -0
  123. package/lib/hit-components/hit-factory-entry/hit-factory-entry-form/hit-factory-entry-form.component.d.ts +119 -0
  124. package/lib/hit-components/hit-factory-entry/hit-factory-entry-list/hit-factory-entry-list.component.d.ts +32 -0
  125. package/lib/hit-components/hit-factory-entry/hit-factory-entry-routing.module.d.ts +7 -0
  126. package/lib/hit-components/hit-factory-entry/hit-factory-entry.module.d.ts +19 -0
  127. package/lib/hit-components/hit-gate/hit-gate-form/hit-gate-form.component.d.ts +42 -0
  128. package/lib/hit-components/hit-gate/hit-gate-list/hit-gate-list.component.d.ts +29 -0
  129. package/lib/hit-components/hit-gate/hit-gate-routing.module.d.ts +7 -0
  130. package/lib/hit-components/hit-gate/hit-gate.module.d.ts +19 -0
  131. package/lib/hit-components/hit-knt-item-esl/hit-knt-item-esl-form/hit-knt-item-esl-form.component.d.ts +46 -0
  132. package/lib/hit-components/hit-knt-item-esl/hit-knt-item-esl-list/hit-knt-item-esl-list.component.d.ts +27 -0
  133. package/lib/hit-components/hit-knt-item-esl/hit-knt-item-esl-routing.module.d.ts +7 -0
  134. package/lib/hit-components/hit-knt-item-esl/hit-knt-item-esl.module.d.ts +19 -0
  135. package/lib/hit-components/hit-plate/hit-plate-form/hit-plate-form.component.d.ts +29 -0
  136. package/lib/hit-components/hit-plate/hit-plate-list/hit-plate-list.component.d.ts +30 -0
  137. package/lib/hit-components/hit-plate/hit-plate-routing.module.d.ts +7 -0
  138. package/lib/hit-components/hit-plate/hit-plate.module.d.ts +19 -0
  139. package/lib/hit-components/hit-scale/hit-scale-form/hit-scale-form.component.d.ts +44 -0
  140. package/lib/hit-components/hit-scale/hit-scale-list/hit-scale-list.component.d.ts +41 -0
  141. package/lib/hit-components/hit-scale/hit-scale-routing.module.d.ts +7 -0
  142. package/lib/hit-components/hit-scale/hit-scale.module.d.ts +19 -0
  143. package/lib/hit-components/hit-vehicle-type/hit-vehicle-type-form/hit-vehicle-type-form.component.d.ts +46 -0
  144. package/lib/hit-components/hit-vehicle-type/hit-vehicle-type-list/hit-vehicle-type-list.component.d.ts +29 -0
  145. package/lib/hit-components/hit-vehicle-type/hit-vehicle-type-routing.module.d.ts +7 -0
  146. package/lib/hit-components/hit-vehicle-type/hit-vehicle-type.module.d.ts +19 -0
  147. package/lib/hit-proxy/hit-business-partner/hit-business-partner.service.d.ts +13 -0
  148. package/lib/hit-proxy/hit-business-partner/models.d.ts +5 -0
  149. package/lib/hit-proxy/hit-carrier-person/hit-carrier-person.service.d.ts +17 -0
  150. package/lib/hit-proxy/hit-carrier-person/models.d.ts +22 -0
  151. package/lib/hit-proxy/hit-entry-weighing/hit-entry-weighing.service.d.ts +49 -0
  152. package/lib/hit-proxy/hit-entry-weighing/models.d.ts +107 -0
  153. package/lib/hit-proxy/hit-factory-entry/hit-factory-entry.service.d.ts +17 -0
  154. package/lib/hit-proxy/hit-factory-entry/models.d.ts +40 -0
  155. package/lib/hit-proxy/hit-gate/hit-gate.service.d.ts +17 -0
  156. package/lib/hit-proxy/hit-gate/models.d.ts +10 -0
  157. package/lib/hit-proxy/hit-item/hit-item.service.d.ts +13 -0
  158. package/lib/hit-proxy/hit-item/models.d.ts +4 -0
  159. package/lib/hit-proxy/hit-knt-item-esl/hit-knt-item-esl.service.d.ts +21 -0
  160. package/lib/hit-proxy/hit-knt-item-esl/models.d.ts +16 -0
  161. package/lib/hit-proxy/hit-plate/hit-plate.service.d.ts +17 -0
  162. package/lib/hit-proxy/hit-plate/models.d.ts +14 -0
  163. package/lib/hit-proxy/hit-purchase-delivery-note/hit-purchase-delivery-note.service.d.ts +13 -0
  164. package/lib/hit-proxy/hit-purchase-delivery-note/models.d.ts +9 -0
  165. package/lib/hit-proxy/hit-scale/hit-scale.service.d.ts +17 -0
  166. package/lib/hit-proxy/hit-scale/models.d.ts +20 -0
  167. package/lib/hit-proxy/hit-stock-transfer/hit-stock-transfer.service.d.ts +13 -0
  168. package/lib/hit-proxy/hit-stock-transfer/models.d.ts +15 -0
  169. package/lib/hit-proxy/hit-user-gate/hit-user-gate.service.d.ts +18 -0
  170. package/lib/hit-proxy/hit-user-gate/models.d.ts +7 -0
  171. package/lib/hit-proxy/hit-vehicle-type/hit-vehicle-type.service.d.ts +17 -0
  172. package/lib/hit-proxy/hit-vehicle-type/models.d.ts +18 -0
  173. package/lib/hit-proxy/hit-warehouse/hit-warehouse.service.d.ts +13 -0
  174. package/lib/hit-proxy/hit-warehouse/models.d.ts +4 -0
  175. package/lib/hit-proxy/models.d.ts +8 -0
  176. package/lib/kadooglu-routing.module.d.ts +7 -0
  177. package/lib/kadooglu.module.d.ts +17 -0
  178. package/lib/services/kadooglu.service.d.ts +10 -0
  179. package/lib/shared/hit-modal/hit-modal.component.d.ts +30 -0
  180. package/lib/shared/hit-modal/hit-ui.module.d.ts +11 -0
  181. package/package.json +41 -0
  182. package/public-api.d.ts +4 -0
@@ -0,0 +1,202 @@
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../hit-proxy/hit-entry-weighing/hit-entry-weighing.service";
4
+ import * as i2 from "@abp/ng.theme.shared";
5
+ import * as i3 from "@angular/router";
6
+ import * as i4 from "@abp/ng.core";
7
+ import * as i5 from "../../../hit-proxy/hit-gate/hit-gate.service";
8
+ import * as i6 from "@angular/common";
9
+ import * as i7 from "@abp/ng.components/page";
10
+ import * as i8 from "devextreme-angular";
11
+ import * as i9 from "devextreme-angular/ui/nested";
12
+ import * as i10 from "devextreme-angular/core";
13
+ import * as i11 from "@ng-bootstrap/ng-bootstrap";
14
+ export class HitEntryWeighingListComponent {
15
+ constructor(service, confirmation, router, localizationService, gateService) {
16
+ this.service = service;
17
+ this.confirmation = confirmation;
18
+ this.router = router;
19
+ this.localizationService = localizationService;
20
+ this.gateService = gateService;
21
+ this.allData = [];
22
+ this.filteredData = [];
23
+ this.vehicleTypeList = [];
24
+ this.gateList = [];
25
+ this.malGcTypes = new Set();
26
+ this.weighingTypes = new Set();
27
+ this.disabledIdColumn = false;
28
+ this.filterMode = 'pending';
29
+ }
30
+ ngOnInit() {
31
+ this.gateService.getList().subscribe(gates => (this.gateList = gates));
32
+ this.service.getVehicleTypes().subscribe(types => {
33
+ this.vehicleTypeList = types;
34
+ this.malGcTypes = new Set(types.filter(t => t.u_MalGC === 'Y').map(t => t.code));
35
+ this.weighingTypes = new Set(types.filter(t => t.u_TrtmYpilck === 'Y').map(t => t.code));
36
+ this.loadList();
37
+ });
38
+ }
39
+ loadList() {
40
+ this.service.getList().subscribe(data => {
41
+ this.allData = data.filter(x => this.weighingTypes.has(x.u_EntryType));
42
+ this.applyFilter();
43
+ });
44
+ }
45
+ setFilter(mode) {
46
+ this.filterMode = mode;
47
+ this.applyFilter();
48
+ this.dataGrid?.instance?.repaint();
49
+ }
50
+ onToolbarPreparing(e) {
51
+ const allText = this.localizationService.instant('Kadooglu::AllWeighings');
52
+ const pendingText = this.localizationService.instant('Kadooglu::PendingWeighings');
53
+ const newRecordText = this.localizationService.instant('Kadooglu::NewRecord');
54
+ e.toolbarOptions.items.unshift({
55
+ location: 'after',
56
+ widget: 'dxButton',
57
+ options: {
58
+ icon: 'plus',
59
+ text: newRecordText,
60
+ type: 'default',
61
+ onClick: () => this.yeniKayit(),
62
+ },
63
+ }, {
64
+ location: 'before',
65
+ widget: 'dxButton',
66
+ options: {
67
+ text: allText,
68
+ type: this.filterMode === 'all' ? 'success' : 'normal',
69
+ stylingMode: this.filterMode === 'all' ? 'contained' : 'outlined',
70
+ onClick: () => this.setFilter('all'),
71
+ },
72
+ }, {
73
+ location: 'before',
74
+ widget: 'dxButton',
75
+ options: {
76
+ text: pendingText,
77
+ type: this.filterMode === 'pending' ? 'success' : 'normal',
78
+ stylingMode: this.filterMode === 'pending' ? 'contained' : 'outlined',
79
+ onClick: () => this.setFilter('pending'),
80
+ },
81
+ });
82
+ }
83
+ applyFilter() {
84
+ if (this.filterMode === 'pending') {
85
+ this.filteredData = this.allData.filter(x => {
86
+ if (x.u_Status === '4')
87
+ return false;
88
+ if (x.u_Status === '2' && this.malGcTypes.has(x.u_EntryType))
89
+ return true;
90
+ return !(x.u_LastWeighing ?? x.u_LastWeighing);
91
+ });
92
+ }
93
+ else {
94
+ this.filteredData = [...this.allData];
95
+ }
96
+ }
97
+ isMalGC(entryType) {
98
+ return this.malGcTypes?.has(entryType) ?? false;
99
+ }
100
+ yeniKayit() {
101
+ this.router.navigate(['/kadooglu/entry-weighing/new']);
102
+ }
103
+ duzenle(row) {
104
+ this.router.navigate(['/kadooglu/entry-weighing', row.docEntry ?? row.docEntry], {
105
+ state: { rowData: row }
106
+ });
107
+ }
108
+ tartimYap(row, mode) {
109
+ this.router.navigate(['/kadooglu/entry-weighing', row.docEntry ?? row.docEntry], {
110
+ queryParams: { mode },
111
+ state: { rowData: row }
112
+ });
113
+ }
114
+ sil(row) {
115
+ const docEntry = row.docEntry ?? row.docEntry;
116
+ this.confirmation
117
+ .warn(`"${row.u_Plate || row.u_Plate || row.docNum || row.docNum}" kaydı silmek istediğinize emin misiniz?`, ``, {
118
+ yesText: 'Evet',
119
+ cancelText: 'Hayır',
120
+ })
121
+ .subscribe(status => {
122
+ if (status === 'confirm') {
123
+ this.service.delete(docEntry).subscribe(() => this.loadList());
124
+ }
125
+ });
126
+ }
127
+ formatPlate(plate) {
128
+ if (!plate)
129
+ return '';
130
+ const p = plate.replace(/\s+/g, '').toUpperCase();
131
+ const match = p.match(/^(\d{2})([A-ZÇĞİÖŞÜ]{1,3})(\d{1,4})$/);
132
+ return match ? `${match[1]} ${match[2]} ${match[3]}` : plate;
133
+ }
134
+ formatEntryDateTime(dateStr, timeStr) {
135
+ if (!dateStr)
136
+ return '';
137
+ const parts = dateStr.split('T')[0].split('-');
138
+ if (parts.length < 3)
139
+ return dateStr;
140
+ const d = new Date(+parts[0], +parts[1] - 1, +parts[2]);
141
+ if (isNaN(d.getTime()))
142
+ return dateStr;
143
+ const dd = String(d.getDate()).padStart(2, '0');
144
+ const mm = String(d.getMonth() + 1).padStart(2, '0');
145
+ const yyyy = d.getFullYear();
146
+ const time = this.formatTime(timeStr);
147
+ return time ? `${dd}.${mm}.${yyyy} ${time}` : `${dd}.${mm}.${yyyy}`;
148
+ }
149
+ formatTime(time) {
150
+ if (!time)
151
+ return '';
152
+ const t = time.replace(/[^0-9]/g, '');
153
+ if (t.length === 4)
154
+ return t.substring(0, 2) + ':' + t.substring(2);
155
+ if (t.length === 3)
156
+ return '0' + t.substring(0, 1) + ':' + t.substring(1);
157
+ return time;
158
+ }
159
+ getStatusLabel(status) {
160
+ switch (status) {
161
+ case '0': return this.localizationService.instant('Kadooglu::StatusEntered');
162
+ case '1': return this.localizationService.instant('Kadooglu::StatusFirstWeighingDone');
163
+ case '2': return this.localizationService.instant('Kadooglu::StatusLastWeighingDone');
164
+ case '3': return this.localizationService.instant('Kadooglu::StatusExited');
165
+ case '4': return this.localizationService.instant('Kadooglu::StatusGoodsMovementDone');
166
+ default: return this.localizationService.instant('Kadooglu::StatusUnknown');
167
+ }
168
+ }
169
+ getStatusClass(status) {
170
+ switch (status) {
171
+ case '0': return 'badge rounded-pill bg-secondary fs-6 fw-normal';
172
+ case '1': return 'badge rounded-pill bg-info fs-6 fw-normal';
173
+ case '2': return 'badge rounded-pill bg-success fs-6 fw-normal';
174
+ case '3': return 'badge rounded-pill bg-success fs-6 fw-normal';
175
+ case '4': return 'badge rounded-pill bg-success fs-6 fw-normal';
176
+ default: return 'badge rounded-pill bg-secondary fs-6 fw-normal';
177
+ }
178
+ }
179
+ malGcYap(row) {
180
+ const docEntry = row.docEntry ?? row.docEntry;
181
+ this.confirmation
182
+ .warn(this.localizationService.instant('Kadooglu::MalGcConfirmMessage', String(row.u_Plate || row.docNum)), '', {
183
+ yesText: this.localizationService.instant('Kadooglu::Yes'),
184
+ cancelText: this.localizationService.instant('Kadooglu::No'),
185
+ })
186
+ .subscribe(status => {
187
+ if (status === 'confirm') {
188
+ this.service.doGoodsMovement(docEntry).subscribe(() => this.loadList());
189
+ }
190
+ });
191
+ }
192
+ }
193
+ HitEntryWeighingListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingListComponent, deps: [{ token: i1.HitEntryWeighingService }, { token: i2.ConfirmationService }, { token: i3.Router }, { token: i4.LocalizationService }, { token: i5.HitGateService }], target: i0.ɵɵFactoryTarget.Component });
194
+ HitEntryWeighingListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitEntryWeighingListComponent, selector: "lib-hit-entry-weighing-list", viewQueries: [{ propertyName: "dataGrid", first: true, predicate: ["dataGrid"], descendants: true }], ngImport: i0, template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col\">\r\n <h3 class=\"page-title\">{{ 'Kadooglu::EntryWeighingTitle' | abpLocalization }}</h3>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"filteredData\"\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n [rowAlternationEnabled]=\"true\"\r\n keyExpr=\"docEntry\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n style=\"height: calc(100vh - 280px);\">\r\n\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [visible]=\"true\" [width]=\"200\" [placeholder]=\"'Kadooglu::Ara' | abpLocalization\"></dxo-search-panel>\r\n\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column [fixed]=\"true\" dataField=\"docEntry\" [allowGrouping]=\"false\" [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\" [allowHiding]=\"false\" [allowReordering]=\"false\"\r\n alignment=\"center\"\r\n cellTemplate=\"operationTemplate\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\">\r\n <div *dxTemplate=\"let row of 'operationTemplate'\" style=\"text-align:center\">\r\n <!-- Devam eden tart\u0131m: i\u015Flemler dropdown (status '0' ve '1') -->\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm dropdown-toggle\" style=\"min-width: 110px;\" data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\" ngbDropdownToggle [disabled]=\"disabledIdColumn\">\r\n <i class=\"fa fa-cog mr-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '0'\" (click)=\"tartimYap(row.data, 'first')\">\r\n <i class=\"fa fa-balance-scale\" aria-hidden=\"true\"></i> {{ 'Kadooglu::PerformFirstWeighing' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '1'\" (click)=\"tartimYap(row.data, 'last')\">\r\n <i class=\"fa fa-balance-scale\" aria-hidden=\"true\"></i> {{ 'Kadooglu::PerformLastWeighing' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '2' && isMalGC(row.data.u_EntryType)\" (click)=\"malGcYap(row.data)\">\r\n <i class=\"fa fa-exchange\" aria-hidden=\"true\"></i> {{ 'Kadooglu::MalGcYap' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '0'\" (click)=\"duzenle(row.data)\">\r\n <i class=\"fa fa-edit\" aria-hidden=\"true\"></i> {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_Status\"\r\n caption=\"{{ 'Kadooglu::Status' | abpLocalization }}\"\r\n [fixed]=\"true\"\r\n alignment=\"center\"\r\n cellTemplate=\"statusTemplate\"\r\n [allowFiltering]=\"false\">\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"docNum\" caption=\"{{ 'Kadooglu::DocumentNo' | abpLocalization }}\" width=\"100\"></dxi-column>\r\n\r\n <dxi-column dataField=\"u_GateCode\" caption=\"{{ 'Kadooglu::Gate' | abpLocalization }}\">\r\n <dxo-lookup [dataSource]=\"gateList\" valueExpr=\"code\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_EntryDate\"\r\n caption=\"{{ 'Kadooglu::EntryDateTime' | abpLocalization }}\"\r\n cellTemplate=\"entryDateTimeTemplate\"\r\n [allowFiltering]=\"true\">\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"u_EntryType\" caption=\"Ara\u00E7 Hareket T\u00FCr\u00FC\">\r\n <dxo-lookup [dataSource]=\"vehicleTypeList\" valueExpr=\"code\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"u_Plate\" caption=\"{{ 'Kadooglu::TruckPlate' | abpLocalization }}\" cellTemplate=\"plateTemplate\"></dxi-column>\r\n <dxi-column dataField=\"u_DorsePlate\" caption=\"{{ 'Kadooglu::DorsePlate' | abpLocalization }}\" cellTemplate=\"dorsePlateTemplate\"></dxi-column>\r\n <dxi-column dataField=\"u_Driver\" caption=\"{{ 'Kadooglu::DriverName' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_DriverCode\" caption=\"{{ 'Kadooglu::DriverCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_TcNo\" caption=\"{{ 'Kadooglu::TcIdentityNo' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_CardCode\" caption=\"{{ 'Kadooglu::CardCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_ItemCode\" caption=\"{{ 'Kadooglu::ItemCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_DespatchAdviceNo\" caption=\"{{ 'Kadooglu::DespatchAdviceNo' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_ScaleCode\" caption=\"{{ 'Kadooglu::ScaleCode' | abpLocalization }}\"></dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_FirstWeighing\"\r\n caption=\"{{ 'Kadooglu::FirstWeighingKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_LastWeighing\"\r\n caption=\"{{ 'Kadooglu::LastWeighingKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_Net\"\r\n caption=\"{{ 'Kadooglu::NetKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_ExitDate\"\r\n caption=\"{{ 'Kadooglu::ExitDate' | abpLocalization }}\"\r\n cellTemplate=\"exitDateTimeTemplate\"\r\n [allowFiltering]=\"true\">\r\n </dxi-column>\r\n <dxi-column dataField=\"u_Description\" caption=\"{{ 'Kadooglu::Description' | abpLocalization }}\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let cell of 'plateTemplate'\">\r\n <span *ngIf=\"cell.data.u_Plate\" class=\"tr-plate\">\r\n <span class=\"tr-plate-blue\">TR</span>\r\n <span class=\"tr-plate-text\">{{ formatPlate(cell.data.u_Plate) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'dorsePlateTemplate'\">\r\n <span *ngIf=\"cell.data.u_DorsePlate\" class=\"tr-plate\">\r\n <span class=\"tr-plate-blue\">TR</span>\r\n <span class=\"tr-plate-text\">{{ formatPlate(cell.data.u_DorsePlate) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'entryDateTimeTemplate'\">\r\n {{ formatEntryDateTime(cell.data.u_EntryDate, cell.data.u_EntryTime) }}\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'exitDateTimeTemplate'\">\r\n <span *ngIf=\"cell.data.u_ExitDate\">\r\n {{ cell.data.u_ExitDate | date:'dd.MM.yyyy' }}\r\n <span *ngIf=\"cell.data.u_ExitTime\" class=\"text-muted ms-1\">{{ formatTime(cell.data.u_ExitTime) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'statusTemplate'\">\r\n <span [class]=\"getStatusClass(cell.data.u_Status)\" style=\"padding: 0.25em .5em .25em .5em;\">\r\n {{ getStatusLabel(cell.data.u_Status) }}\r\n </span>\r\n </div>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [""], 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.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.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i9.DxoLookupComponent, selector: "dxo-lookup", inputs: ["allowClearing", "calculateCellValue", "dataSource", "displayExpr", "valueExpr"] }, { kind: "component", type: i9.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i9.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i9.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i9.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "directive", type: i10.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "directive", type: i11.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i11.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i11.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i11.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingListComponent, decorators: [{
196
+ type: Component,
197
+ args: [{ selector: 'lib-hit-entry-weighing-list', template: "<abp-page [breadcrumb]=\"false\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col\">\r\n <h3 class=\"page-title\">{{ 'Kadooglu::EntryWeighingTitle' | abpLocalization }}</h3>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <div class=\"card mt-2\">\r\n <div class=\"card-body\">\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"filteredData\"\r\n [columnAutoWidth]=\"true\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n [rowAlternationEnabled]=\"true\"\r\n keyExpr=\"docEntry\"\r\n (onToolbarPreparing)=\"onToolbarPreparing($event)\"\r\n style=\"height: calc(100vh - 280px);\">\r\n\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\r\n <dxo-search-panel [visible]=\"true\" [width]=\"200\" [placeholder]=\"'Kadooglu::Ara' | abpLocalization\"></dxo-search-panel>\r\n\r\n <dxo-pager\r\n [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n [allowedPageSizes]=\"[10, 20, 50]\"\r\n [showPageSizeSelector]=\"true\"\r\n [showNavigationButtons]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\r\n <dxi-column [fixed]=\"true\" dataField=\"docEntry\" [allowGrouping]=\"false\" [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\" [allowHiding]=\"false\" [allowReordering]=\"false\"\r\n alignment=\"center\"\r\n cellTemplate=\"operationTemplate\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\">\r\n <div *dxTemplate=\"let row of 'operationTemplate'\" style=\"text-align:center\">\r\n <!-- Devam eden tart\u0131m: i\u015Flemler dropdown (status '0' ve '1') -->\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm dropdown-toggle\" style=\"min-width: 110px;\" data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\" ngbDropdownToggle [disabled]=\"disabledIdColumn\">\r\n <i class=\"fa fa-cog mr-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '0'\" (click)=\"tartimYap(row.data, 'first')\">\r\n <i class=\"fa fa-balance-scale\" aria-hidden=\"true\"></i> {{ 'Kadooglu::PerformFirstWeighing' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '1'\" (click)=\"tartimYap(row.data, 'last')\">\r\n <i class=\"fa fa-balance-scale\" aria-hidden=\"true\"></i> {{ 'Kadooglu::PerformLastWeighing' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '2' && isMalGC(row.data.u_EntryType)\" (click)=\"malGcYap(row.data)\">\r\n <i class=\"fa fa-exchange\" aria-hidden=\"true\"></i> {{ 'Kadooglu::MalGcYap' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem *ngIf=\"row.data.u_Status === '0'\" (click)=\"duzenle(row.data)\">\r\n <i class=\"fa fa-edit\" aria-hidden=\"true\"></i> {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_Status\"\r\n caption=\"{{ 'Kadooglu::Status' | abpLocalization }}\"\r\n [fixed]=\"true\"\r\n alignment=\"center\"\r\n cellTemplate=\"statusTemplate\"\r\n [allowFiltering]=\"false\">\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"docNum\" caption=\"{{ 'Kadooglu::DocumentNo' | abpLocalization }}\" width=\"100\"></dxi-column>\r\n\r\n <dxi-column dataField=\"u_GateCode\" caption=\"{{ 'Kadooglu::Gate' | abpLocalization }}\">\r\n <dxo-lookup [dataSource]=\"gateList\" valueExpr=\"code\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_EntryDate\"\r\n caption=\"{{ 'Kadooglu::EntryDateTime' | abpLocalization }}\"\r\n cellTemplate=\"entryDateTimeTemplate\"\r\n [allowFiltering]=\"true\">\r\n </dxi-column>\r\n\r\n <dxi-column dataField=\"u_EntryType\" caption=\"Ara\u00E7 Hareket T\u00FCr\u00FC\">\r\n <dxo-lookup [dataSource]=\"vehicleTypeList\" valueExpr=\"code\" displayExpr=\"name\"></dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"u_Plate\" caption=\"{{ 'Kadooglu::TruckPlate' | abpLocalization }}\" cellTemplate=\"plateTemplate\"></dxi-column>\r\n <dxi-column dataField=\"u_DorsePlate\" caption=\"{{ 'Kadooglu::DorsePlate' | abpLocalization }}\" cellTemplate=\"dorsePlateTemplate\"></dxi-column>\r\n <dxi-column dataField=\"u_Driver\" caption=\"{{ 'Kadooglu::DriverName' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_DriverCode\" caption=\"{{ 'Kadooglu::DriverCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_TcNo\" caption=\"{{ 'Kadooglu::TcIdentityNo' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_CardCode\" caption=\"{{ 'Kadooglu::CardCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_ItemCode\" caption=\"{{ 'Kadooglu::ItemCode' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_DespatchAdviceNo\" caption=\"{{ 'Kadooglu::DespatchAdviceNo' | abpLocalization }}\"></dxi-column>\r\n <dxi-column dataField=\"u_ScaleCode\" caption=\"{{ 'Kadooglu::ScaleCode' | abpLocalization }}\"></dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_FirstWeighing\"\r\n caption=\"{{ 'Kadooglu::FirstWeighingKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_LastWeighing\"\r\n caption=\"{{ 'Kadooglu::LastWeighingKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_Net\"\r\n caption=\"{{ 'Kadooglu::NetKg' | abpLocalization }}\"\r\n dataType=\"number\"\r\n [format]=\"{ type: 'fixedPoint', precision: 0 }\">\r\n </dxi-column>\r\n\r\n <dxi-column\r\n dataField=\"u_ExitDate\"\r\n caption=\"{{ 'Kadooglu::ExitDate' | abpLocalization }}\"\r\n cellTemplate=\"exitDateTimeTemplate\"\r\n [allowFiltering]=\"true\">\r\n </dxi-column>\r\n <dxi-column dataField=\"u_Description\" caption=\"{{ 'Kadooglu::Description' | abpLocalization }}\"></dxi-column>\r\n\r\n <div *dxTemplate=\"let cell of 'plateTemplate'\">\r\n <span *ngIf=\"cell.data.u_Plate\" class=\"tr-plate\">\r\n <span class=\"tr-plate-blue\">TR</span>\r\n <span class=\"tr-plate-text\">{{ formatPlate(cell.data.u_Plate) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'dorsePlateTemplate'\">\r\n <span *ngIf=\"cell.data.u_DorsePlate\" class=\"tr-plate\">\r\n <span class=\"tr-plate-blue\">TR</span>\r\n <span class=\"tr-plate-text\">{{ formatPlate(cell.data.u_DorsePlate) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'entryDateTimeTemplate'\">\r\n {{ formatEntryDateTime(cell.data.u_EntryDate, cell.data.u_EntryTime) }}\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'exitDateTimeTemplate'\">\r\n <span *ngIf=\"cell.data.u_ExitDate\">\r\n {{ cell.data.u_ExitDate | date:'dd.MM.yyyy' }}\r\n <span *ngIf=\"cell.data.u_ExitTime\" class=\"text-muted ms-1\">{{ formatTime(cell.data.u_ExitTime) }}</span>\r\n </span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let cell of 'statusTemplate'\">\r\n <span [class]=\"getStatusClass(cell.data.u_Status)\" style=\"padding: 0.25em .5em .25em .5em;\">\r\n {{ getStatusLabel(cell.data.u_Status) }}\r\n </span>\r\n </div>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n" }]
198
+ }], ctorParameters: function () { return [{ type: i1.HitEntryWeighingService }, { type: i2.ConfirmationService }, { type: i3.Router }, { type: i4.LocalizationService }, { type: i5.HitGateService }]; }, propDecorators: { dataGrid: [{
199
+ type: ViewChild,
200
+ args: ['dataGrid', { static: false }]
201
+ }] } });
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUvc3JjL2xpYi9oaXQtY29tcG9uZW50cy9oaXQtZW50cnktd2VpZ2hpbmcvaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QvaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUvc3JjL2xpYi9oaXQtY29tcG9uZW50cy9oaXQtZW50cnktd2VpZ2hpbmcvaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QvaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFnQjdELE1BQU0sT0FBTyw2QkFBNkI7SUFheEMsWUFDVSxPQUFnQyxFQUNoQyxZQUFpQyxFQUNqQyxNQUFjLEVBQ2QsbUJBQXdDLEVBQ3hDLFdBQTJCO1FBSjNCLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2hDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFmckMsWUFBTyxHQUFvQixFQUFFLENBQUM7UUFDOUIsaUJBQVksR0FBb0IsRUFBRSxDQUFDO1FBQ25DLG9CQUFlLEdBQWtCLEVBQUUsQ0FBQztRQUNwQyxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQy9CLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUVsQyxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7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RUFBRSxDQUFDO1lBQUUsT0FBTyxPQUFPLENBQUM7UUFDdkMsTUFBTSxFQUFFLEdBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEQsTUFBTSxFQUFFLEdBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7SUFDdEUsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFtQjtRQUM1QixJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFxQjtRQUNsQyxRQUFRLE1BQU0sRUFBRTtZQUNkLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDN0UsS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsbUNBQW1DLENBQUMsQ0FBQztZQUN2RixLQUFLLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1lBQ3RGLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDNUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsbUNBQW1DLENBQUMsQ0FBQztZQUN2RixPQUFPLENBQUMsQ0FBRSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztTQUM5RTtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsTUFBcUI7UUFDbEMsUUFBUSxNQUFNLEVBQUU7WUFDZCxLQUFLLEdBQUcsQ0FBQyxDQUFDLE9BQU8sZ0RBQWdELENBQUM7WUFDbEUsS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLDJDQUEyQyxDQUFDO1lBQzdELEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyw4Q0FBOEMsQ0FBQztZQUNoRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLE9BQU8sOENBQThDLENBQUM7WUFDaEUsS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLDhDQUE4QyxDQUFDO1lBQ2hFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sZ0RBQWdELENBQUM7U0FDbEU7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQWtCO1FBQ3pCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLElBQUssR0FBVyxDQUFDLFFBQVEsQ0FBQztRQUN2RCxJQUFJLENBQUMsWUFBWTthQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUM5RyxPQUFPLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7WUFDMUQsVUFBVSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1NBQzdELENBQUM7YUFDRCxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO2dCQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDekU7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OzBIQS9MVSw2QkFBNkI7OEdBQTdCLDZCQUE2Qix5S0NoQjFDLHlrUkFxS0E7MkZEckphLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSw2QkFBNkI7b09BS0csUUFBUTtzQkFBakQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgRHhEYXRhR3JpZENvbXBvbmVudCB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCB7IEhpdEVudHJ5V2VpZ2hpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vaGl0LXByb3h5L2hpdC1lbnRyeS13ZWlnaGluZy9oaXQtZW50cnktd2VpZ2hpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudHJ5V2VpZ2hpbmcgfSBmcm9tICcuLi8uLi8uLi9oaXQtcHJveHkvaGl0LWVudHJ5LXdlaWdoaW5nL21vZGVscyc7XHJcbmltcG9ydCB7IFZlaGljbGVUeXBlIH0gZnJvbSAnLi4vLi4vLi4vaGl0LXByb3h5L2hpdC12ZWhpY2xlLXR5cGUvbW9kZWxzJztcclxuaW1wb3J0IHsgSGl0R2F0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9oaXQtcHJveHkvaGl0LWdhdGUvaGl0LWdhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEdhdGUgfSBmcm9tICcuLi8uLi8uLi9oaXQtcHJveHkvaGl0LWdhdGUvbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWhpdC1lbnRyeS13ZWlnaGluZy1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGl0LWVudHJ5LXdlaWdoaW5nLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hpdC1lbnRyeS13ZWlnaGluZy1saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRFbnRyeVdlaWdoaW5nTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnZGF0YUdyaWQnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGF0YUdyaWQhOiBEeERhdGFHcmlkQ29tcG9uZW50O1xyXG5cclxuICBhbGxEYXRhOiBFbnRyeVdlaWdoaW5nW10gPSBbXTtcclxuICBmaWx0ZXJlZERhdGE6IEVudHJ5V2VpZ2hpbmdbXSA9IFtdO1xyXG4gIHZlaGljbGVUeXBlTGlzdDogVmVoaWNsZVR5cGVbXSA9IFtdO1xyXG4gIGdhdGVMaXN0OiBHYXRlW10gPSBbXTtcclxuICBtYWxHY1R5cGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcbiAgd2VpZ2hpbmdUeXBlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG5cclxuICBkaXNhYmxlZElkQ29sdW1uID0gZmFsc2U7XHJcbiAgZmlsdGVyTW9kZTogJ2FsbCcgfCAncGVuZGluZycgPSAncGVuZGluZyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBIaXRFbnRyeVdlaWdoaW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgbG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZ2F0ZVNlcnZpY2U6IEhpdEdhdGVTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2F0ZVNlcnZpY2UuZ2V0TGlzdCgpLnN1YnNjcmliZShnYXRlcyA9PiAodGhpcy5nYXRlTGlzdCA9IGdhdGVzKSk7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0VmVoaWNsZVR5cGVzKCkuc3Vic2NyaWJlKHR5cGVzID0+IHtcclxuICAgICAgdGhpcy52ZWhpY2xlVHlwZUxpc3QgPSB0eXBlcztcclxuICAgICAgdGhpcy5tYWxHY1R5cGVzID0gbmV3IFNldCh0eXBlcy5maWx0ZXIodCA9PiB0LnVfTWFsR0MgPT09ICdZJykubWFwKHQgPT4gdC5jb2RlKSk7XHJcbiAgICAgIHRoaXMud2VpZ2hpbmdUeXBlcyA9IG5ldyBTZXQodHlwZXMuZmlsdGVyKHQgPT4gdC51X1RydG1ZcGlsY2sgPT09ICdZJykubWFwKHQgPT4gdC5jb2RlKSk7XHJcbiAgICAgIHRoaXMubG9hZExpc3QoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZExpc3QoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0TGlzdCgpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgdGhpcy5hbGxEYXRhID0gZGF0YS5maWx0ZXIoeCA9PiB0aGlzLndlaWdoaW5nVHlwZXMuaGFzKHgudV9FbnRyeVR5cGUpKTtcclxuICAgICAgdGhpcy5hcHBseUZpbHRlcigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRGaWx0ZXIobW9kZTogJ2FsbCcgfCAncGVuZGluZycpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyTW9kZSA9IG1vZGU7XHJcbiAgICB0aGlzLmFwcGx5RmlsdGVyKCk7XHJcbiAgICB0aGlzLmRhdGFHcmlkPy5pbnN0YW5jZT8ucmVwYWludCgpO1xyXG4gIH1cclxuXHJcbiAgb25Ub29sYmFyUHJlcGFyaW5nKGU6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgYWxsVGV4dCA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdLYWRvb2dsdTo6QWxsV2VpZ2hpbmdzJyk7XHJcbiAgICBjb25zdCBwZW5kaW5nVGV4dCA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdLYWRvb2dsdTo6UGVuZGluZ1dlaWdoaW5ncycpO1xyXG4gICAgY29uc3QgbmV3UmVjb3JkVGV4dCA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdLYWRvb2dsdTo6TmV3UmVjb3JkJyk7XHJcbiAgICBlLnRvb2xiYXJPcHRpb25zLml0ZW1zLnVuc2hpZnQoXHJcbiAgICAgIHtcclxuICAgICAgICBsb2NhdGlvbjogJ2FmdGVyJyxcclxuICAgICAgICB3aWRnZXQ6ICdkeEJ1dHRvbicsXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgaWNvbjogJ3BsdXMnLFxyXG4gICAgICAgICAgdGV4dDogbmV3UmVjb3JkVGV4dCxcclxuICAgICAgICAgIHR5cGU6ICdkZWZhdWx0JyxcclxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHRoaXMueWVuaUtheWl0KCksXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGxvY2F0aW9uOiAnYmVmb3JlJyxcclxuICAgICAgICB3aWRnZXQ6ICdkeEJ1dHRvbicsXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgdGV4dDogYWxsVGV4dCxcclxuICAgICAgICAgIHR5cGU6IHRoaXMuZmlsdGVyTW9kZSA9PT0gJ2FsbCcgPyAnc3VjY2VzcycgOiAnbm9ybWFsJyxcclxuICAgICAgICAgIHN0eWxpbmdNb2RlOiB0aGlzLmZpbHRlck1vZGUgPT09ICdhbGwnID8gJ2NvbnRhaW5lZCcgOiAnb3V0bGluZWQnLFxyXG4gICAgICAgICAgb25DbGljazogKCkgPT4gdGhpcy5zZXRGaWx0ZXIoJ2FsbCcpLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBsb2NhdGlvbjogJ2JlZm9yZScsXHJcbiAgICAgICAgd2lkZ2V0OiAnZHhCdXR0b24nLFxyXG4gICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgIHRleHQ6IHBlbmRpbmdUZXh0LFxyXG4gICAgICAgICAgdHlwZTogdGhpcy5maWx0ZXJNb2RlID09PSAncGVuZGluZycgPyAnc3VjY2VzcycgOiAnbm9ybWFsJyxcclxuICAgICAgICAgIHN0eWxpbmdNb2RlOiB0aGlzLmZpbHRlck1vZGUgPT09ICdwZW5kaW5nJyA/ICdjb250YWluZWQnIDogJ291dGxpbmVkJyxcclxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHRoaXMuc2V0RmlsdGVyKCdwZW5kaW5nJyksXHJcbiAgICAgICAgfSxcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFwcGx5RmlsdGVyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZmlsdGVyTW9kZSA9PT0gJ3BlbmRpbmcnKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5hbGxEYXRhLmZpbHRlcih4ID0+IHtcclxuICAgICAgICBpZiAoeC51X1N0YXR1cyA9PT0gJzQnKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgaWYgKHgudV9TdGF0dXMgPT09ICcyJyAmJiB0aGlzLm1hbEdjVHlwZXMuaGFzKHgudV9FbnRyeVR5cGUpKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gISh4LnVfTGFzdFdlaWdoaW5nID8/ICh4IGFzIGFueSkudV9MYXN0V2VpZ2hpbmcpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gWy4uLnRoaXMuYWxsRGF0YV07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc01hbEdDKGVudHJ5VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5tYWxHY1R5cGVzPy5oYXMoZW50cnlUeXBlKSA/PyBmYWxzZTtcclxuICB9XHJcblxyXG4gIHllbmlLYXlpdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2thZG9vZ2x1L2VudHJ5LXdlaWdoaW5nL25ldyddKTtcclxuICB9XHJcblxyXG4gIGR1emVubGUocm93OiBFbnRyeVdlaWdoaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9rYWRvb2dsdS9lbnRyeS13ZWlnaGluZycsIHJvdy5kb2NFbnRyeSA/PyAocm93IGFzIGFueSkuZG9jRW50cnldLCB7XHJcbiAgICAgIHN0YXRlOiB7IHJvd0RhdGE6IHJvdyB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRhcnRpbVlhcChyb3c6IEVudHJ5V2VpZ2hpbmcsIG1vZGU6ICdmaXJzdCcgfCAnbGFzdCcpOiB2b2lkIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2thZG9vZ2x1L2VudHJ5LXdlaWdoaW5nJywgcm93LmRvY0VudHJ5ID8/IChyb3cgYXMgYW55KS5kb2NFbnRyeV0sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgbW9kZSB9LFxyXG4gICAgICBzdGF0ZTogeyByb3dEYXRhOiByb3cgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzaWwocm93OiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRvY0VudHJ5ID0gcm93LmRvY0VudHJ5ID8/IHJvdy5kb2NFbnRyeTtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uXHJcbiAgICAgIC53YXJuKGBcIiR7cm93LnVfUGxhdGUgfHwgcm93LnVfUGxhdGUgfHwgcm93LmRvY051bSB8fCByb3cuZG9jTnVtfVwiIGtheWTEsSBzaWxtZWsgaXN0ZWRpxJ9pbml6ZSBlbWluIG1pc2luaXo/YCwgYGAsIHtcclxuICAgICAgICB5ZXNUZXh0OiAnRXZldCcsXHJcbiAgICAgICAgY2FuY2VsVGV4dDogJ0hhecSxcicsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5zdWJzY3JpYmUoc3RhdHVzID0+IHtcclxuICAgICAgICBpZiAoc3RhdHVzID09PSAnY29uZmlybScpIHtcclxuICAgICAgICAgIHRoaXMuc2VydmljZS5kZWxldGUoZG9jRW50cnkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmxvYWRMaXN0KCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXRQbGF0ZShwbGF0ZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXBsYXRlKSByZXR1cm4gJyc7XHJcbiAgICBjb25zdCBwID0gcGxhdGUucmVwbGFjZSgvXFxzKy9nLCAnJykudG9VcHBlckNhc2UoKTtcclxuICAgIGNvbnN0IG1hdGNoID0gcC5tYXRjaCgvXihcXGR7Mn0pKFtBLVrDh8SexLDDlsWew5xdezEsM30pKFxcZHsxLDR9KSQvKTtcclxuICAgIHJldHVybiBtYXRjaCA/IGAke21hdGNoWzFdfSAke21hdGNoWzJdfSAke21hdGNoWzNdfWAgOiBwbGF0ZTtcclxuICB9XHJcblxyXG4gIGZvcm1hdEVudHJ5RGF0ZVRpbWUoZGF0ZVN0cjogc3RyaW5nIHwgbnVsbCwgdGltZVN0cjogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWRhdGVTdHIpIHJldHVybiAnJztcclxuICAgIGNvbnN0IHBhcnRzID0gZGF0ZVN0ci5zcGxpdCgnVCcpWzBdLnNwbGl0KCctJyk7XHJcbiAgICBpZiAocGFydHMubGVuZ3RoIDwgMykgcmV0dXJuIGRhdGVTdHI7XHJcbiAgICBjb25zdCBkID0gbmV3IERhdGUoK3BhcnRzWzBdLCArcGFydHNbMV0gLSAxLCArcGFydHNbMl0pO1xyXG4gICAgaWYgKGlzTmFOKGQuZ2V0VGltZSgpKSkgcmV0dXJuIGRhdGVTdHI7XHJcbiAgICBjb25zdCBkZCAgID0gU3RyaW5nKGQuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgbW0gICA9IFN0cmluZyhkLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgeXl5eSA9IGQuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IHRpbWUgPSB0aGlzLmZvcm1hdFRpbWUodGltZVN0cik7XHJcbiAgICByZXR1cm4gdGltZSA/IGAke2RkfS4ke21tfS4ke3l5eXl9ICR7dGltZX1gIDogYCR7ZGR9LiR7bW19LiR7eXl5eX1gO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0VGltZSh0aW1lOiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcclxuICAgIGlmICghdGltZSkgcmV0dXJuICcnO1xyXG4gICAgY29uc3QgdCA9IHRpbWUucmVwbGFjZSgvW14wLTldL2csICcnKTtcclxuICAgIGlmICh0Lmxlbmd0aCA9PT0gNCkgcmV0dXJuIHQuc3Vic3RyaW5nKDAsIDIpICsgJzonICsgdC5zdWJzdHJpbmcoMik7XHJcbiAgICBpZiAodC5sZW5ndGggPT09IDMpIHJldHVybiAnMCcgKyB0LnN1YnN0cmluZygwLCAxKSArICc6JyArIHQuc3Vic3RyaW5nKDEpO1xyXG4gICAgcmV0dXJuIHRpbWU7XHJcbiAgfVxyXG5cclxuICBnZXRTdGF0dXNMYWJlbChzdGF0dXM6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoIChzdGF0dXMpIHtcclxuICAgICAgY2FzZSAnMCc6IHJldHVybiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6OlN0YXR1c0VudGVyZWQnKTtcclxuICAgICAgY2FzZSAnMSc6IHJldHVybiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6OlN0YXR1c0ZpcnN0V2VpZ2hpbmdEb25lJyk7XHJcbiAgICAgIGNhc2UgJzInOiByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpTdGF0dXNMYXN0V2VpZ2hpbmdEb25lJyk7XHJcbiAgICAgIGNhc2UgJzMnOiByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpTdGF0dXNFeGl0ZWQnKTtcclxuICAgICAgY2FzZSAnNCc6IHJldHVybiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6OlN0YXR1c0dvb2RzTW92ZW1lbnREb25lJyk7XHJcbiAgICAgIGRlZmF1bHQ6ICByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpTdGF0dXNVbmtub3duJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTdGF0dXNDbGFzcyhzdGF0dXM6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoIChzdGF0dXMpIHtcclxuICAgICAgY2FzZSAnMCc6IHJldHVybiAnYmFkZ2Ugcm91bmRlZC1waWxsIGJnLXNlY29uZGFyeSBmcy02IGZ3LW5vcm1hbCc7XHJcbiAgICAgIGNhc2UgJzEnOiByZXR1cm4gJ2JhZGdlIHJvdW5kZWQtcGlsbCBiZy1pbmZvIGZzLTYgZnctbm9ybWFsJztcclxuICAgICAgY2FzZSAnMic6IHJldHVybiAnYmFkZ2Ugcm91bmRlZC1waWxsIGJnLXN1Y2Nlc3MgZnMtNiBmdy1ub3JtYWwnO1xyXG4gICAgICBjYXNlICczJzogcmV0dXJuICdiYWRnZSByb3VuZGVkLXBpbGwgYmctc3VjY2VzcyBmcy02IGZ3LW5vcm1hbCc7XHJcbiAgICAgIGNhc2UgJzQnOiByZXR1cm4gJ2JhZGdlIHJvdW5kZWQtcGlsbCBiZy1zdWNjZXNzIGZzLTYgZnctbm9ybWFsJztcclxuICAgICAgZGVmYXVsdDogcmV0dXJuICdiYWRnZSByb3VuZGVkLXBpbGwgYmctc2Vjb25kYXJ5IGZzLTYgZnctbm9ybWFsJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hbEdjWWFwKHJvdzogRW50cnlXZWlnaGluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZG9jRW50cnkgPSByb3cuZG9jRW50cnkgPz8gKHJvdyBhcyBhbnkpLmRvY0VudHJ5O1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25cclxuICAgICAgLndhcm4odGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoJ0thZG9vZ2x1OjpNYWxHY0NvbmZpcm1NZXNzYWdlJywgU3RyaW5nKHJvdy51X1BsYXRlIHx8IHJvdy5kb2NOdW0pKSwgJycsIHtcclxuICAgICAgICB5ZXNUZXh0OiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnS2Fkb29nbHU6OlllcycpLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdLYWRvb2dsdTo6Tm8nKSxcclxuICAgICAgfSlcclxuICAgICAgLnN1YnNjcmliZShzdGF0dXMgPT4ge1xyXG4gICAgICAgIGlmIChzdGF0dXMgPT09ICdjb25maXJtJykge1xyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLmRvR29vZHNNb3ZlbWVudChkb2NFbnRyeSkuc3Vic2NyaWJlKCgpID0+IHRoaXMubG9hZExpc3QoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGFicC1wYWdlIFticmVhZGNydW1iXT1cImZhbHNlXCI+XHJcbiAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyIGNsYXNzPVwiY29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgPGgzIGNsYXNzPVwicGFnZS10aXRsZVwiPnt7ICdLYWRvb2dsdTo6RW50cnlXZWlnaGluZ1RpdGxlJyB8IGFicExvY2FsaXphdGlvbiB9fTwvaDM+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNhcmQgbXQtMlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICA8ZHgtZGF0YS1ncmlkXHJcbiAgICAgICAgI2RhdGFHcmlkXHJcbiAgICAgICAgW2RhdGFTb3VyY2VdPVwiZmlsdGVyZWREYXRhXCJcclxuICAgICAgICBbY29sdW1uQXV0b1dpZHRoXT1cInRydWVcIlxyXG4gICAgICAgIFtzaG93Qm9yZGVyc109XCJ0cnVlXCJcclxuICAgICAgICBbc2hvd1Jvd0xpbmVzXT1cInRydWVcIlxyXG4gICAgICAgIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCJcclxuICAgICAgICBjb2x1bW5SZXNpemluZ01vZGU9XCJ3aWRnZXRcIlxyXG4gICAgICAgIFtyb3dBbHRlcm5hdGlvbkVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAga2V5RXhwcj1cImRvY0VudHJ5XCJcclxuICAgICAgICAob25Ub29sYmFyUHJlcGFyaW5nKT1cIm9uVG9vbGJhclByZXBhcmluZygkZXZlbnQpXCJcclxuICAgICAgICBzdHlsZT1cImhlaWdodDogY2FsYygxMDB2aCAtIDI4MHB4KTtcIj5cclxuXHJcbiAgICAgICAgPGR4by1maWx0ZXItcm93IFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcm93PlxyXG4gICAgICAgIDxkeG8taGVhZGVyLWZpbHRlciBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8taGVhZGVyLWZpbHRlcj5cclxuICAgICAgICA8ZHhvLXNlYXJjaC1wYW5lbCBbdmlzaWJsZV09XCJ0cnVlXCIgW3dpZHRoXT1cIjIwMFwiIFtwbGFjZWhvbGRlcl09XCInS2Fkb29nbHU6OkFyYScgfCBhYnBMb2NhbGl6YXRpb25cIj48L2R4by1zZWFyY2gtcGFuZWw+XHJcblxyXG4gICAgICAgIDxkeG8tcGFnZXJcclxuICAgICAgICAgIFt2aXNpYmxlXT1cInRydWVcIlxyXG4gICAgICAgICAgW3Nob3dJbmZvXT1cInRydWVcIlxyXG4gICAgICAgICAgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzEwLCAyMCwgNTBdXCJcclxuICAgICAgICAgIFtzaG93UGFnZVNpemVTZWxlY3Rvcl09XCJ0cnVlXCJcclxuICAgICAgICAgIFtzaG93TmF2aWdhdGlvbkJ1dHRvbnNdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDwvZHhvLXBhZ2VyPlxyXG4gICAgICAgIDxkeG8tcGFnaW5nIFtwYWdlU2l6ZV09XCIxMFwiPjwvZHhvLXBhZ2luZz5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBbZml4ZWRdPVwidHJ1ZVwiIGRhdGFGaWVsZD1cImRvY0VudHJ5XCIgW2FsbG93R3JvdXBpbmddPVwiZmFsc2VcIiBbYWxsb3dGaWx0ZXJpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbYWxsb3dIZWFkZXJGaWx0ZXJpbmddPVwiZmFsc2VcIiBbYWxsb3dIaWRpbmddPVwiZmFsc2VcIiBbYWxsb3dSZW9yZGVyaW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgYWxpZ25tZW50PVwiY2VudGVyXCJcclxuICAgICAgICAgICAgY2VsbFRlbXBsYXRlPVwib3BlcmF0aW9uVGVtcGxhdGVcIiBjYXB0aW9uPVwie3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IHJvdyBvZiAnb3BlcmF0aW9uVGVtcGxhdGUnXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDwhLS0gRGV2YW0gZWRlbiB0YXJ0xLFtOiBpxZ9sZW1sZXIgZHJvcGRvd24gKHN0YXR1cyAnMCcgdmUgJzEnKSAtLT5cclxuICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIiBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBkcm9wZG93bi10b2dnbGVcIiBzdHlsZT1cIm1pbi13aWR0aDogMTEwcHg7XCIgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgbmdiRHJvcGRvd25Ub2dnbGUgW2Rpc2FibGVkXT1cImRpc2FibGVkSWRDb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jb2cgbXItMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAge3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudT5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKm5nSWY9XCJyb3cuZGF0YS51X1N0YXR1cyA9PT0gJzAnXCIgKGNsaWNrKT1cInRhcnRpbVlhcChyb3cuZGF0YSwgJ2ZpcnN0JylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJhbGFuY2Utc2NhbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdLYWRvb2dsdTo6UGVyZm9ybUZpcnN0V2VpZ2hpbmcnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAqbmdJZj1cInJvdy5kYXRhLnVfU3RhdHVzID09PSAnMSdcIiAoY2xpY2spPVwidGFydGltWWFwKHJvdy5kYXRhLCAnbGFzdCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1iYWxhbmNlLXNjYWxlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnS2Fkb29nbHU6OlBlcmZvcm1MYXN0V2VpZ2hpbmcnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAqbmdJZj1cInJvdy5kYXRhLnVfU3RhdHVzID09PSAnMicgJiYgaXNNYWxHQyhyb3cuZGF0YS51X0VudHJ5VHlwZSlcIiAoY2xpY2spPVwibWFsR2NZYXAocm93LmRhdGEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1leGNoYW5nZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ0thZG9vZ2x1OjpNYWxHY1lhcCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtICpuZ0lmPVwicm93LmRhdGEudV9TdGF0dXMgPT09ICcwJ1wiIChjbGljayk9XCJkdXplbmxlKHJvdy5kYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWRpdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxkeGktY29sdW1uXHJcbiAgICAgICAgICBkYXRhRmllbGQ9XCJ1X1N0YXR1c1wiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpTdGF0dXMnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIFtmaXhlZF09XCJ0cnVlXCJcclxuICAgICAgICAgIGFsaWdubWVudD1cImNlbnRlclwiXHJcbiAgICAgICAgICBjZWxsVGVtcGxhdGU9XCJzdGF0dXNUZW1wbGF0ZVwiXHJcbiAgICAgICAgICBbYWxsb3dGaWx0ZXJpbmddPVwiZmFsc2VcIj5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRvY051bVwiIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6OkRvY3VtZW50Tm8nIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgd2lkdGg9XCIxMDBcIj48L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInVfR2F0ZUNvZGVcIiBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpHYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPlxyXG4gICAgICAgICAgPGR4by1sb29rdXAgW2RhdGFTb3VyY2VdPVwiZ2F0ZUxpc3RcIiB2YWx1ZUV4cHI9XCJjb2RlXCIgZGlzcGxheUV4cHI9XCJuYW1lXCI+PC9keG8tbG9va3VwPlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPGR4aS1jb2x1bW5cclxuICAgICAgICAgIGRhdGFGaWVsZD1cInVfRW50cnlEYXRlXCJcclxuICAgICAgICAgIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6OkVudHJ5RGF0ZVRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cImVudHJ5RGF0ZVRpbWVUZW1wbGF0ZVwiXHJcbiAgICAgICAgICBbYWxsb3dGaWx0ZXJpbmddPVwidHJ1ZVwiPlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidV9FbnRyeVR5cGVcIiBjYXB0aW9uPVwiQXJhw6cgSGFyZWtldCBUw7xyw7xcIj5cclxuICAgICAgICAgIDxkeG8tbG9va3VwIFtkYXRhU291cmNlXT1cInZlaGljbGVUeXBlTGlzdFwiIHZhbHVlRXhwcj1cImNvZGVcIiBkaXNwbGF5RXhwcj1cIm5hbWVcIj48L2R4by1sb29rdXA+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInVfUGxhdGVcIiBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpUcnVja1BsYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIGNlbGxUZW1wbGF0ZT1cInBsYXRlVGVtcGxhdGVcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidV9Eb3JzZVBsYXRlXCIgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6RG9yc2VQbGF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBjZWxsVGVtcGxhdGU9XCJkb3JzZVBsYXRlVGVtcGxhdGVcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidV9Ecml2ZXJcIiBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpEcml2ZXJOYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJ1X0RyaXZlckNvZGVcIiBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpEcml2ZXJDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJ1X1RjTm9cIiBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpUY0lkZW50aXR5Tm8nIHwgYWJwTG9jYWxpemF0aW9uIH19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInVfQ2FyZENvZGVcIiBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpDYXJkQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidV9JdGVtQ29kZVwiIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6Okl0ZW1Db2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJ1X0Rlc3BhdGNoQWR2aWNlTm9cIiBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpEZXNwYXRjaEFkdmljZU5vJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJ1X1NjYWxlQ29kZVwiIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6OlNjYWxlQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj48L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxkeGktY29sdW1uXHJcbiAgICAgICAgICBkYXRhRmllbGQ9XCJ1X0ZpcnN0V2VpZ2hpbmdcIlxyXG4gICAgICAgICAgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6Rmlyc3RXZWlnaGluZ0tnJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBkYXRhVHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICBbZm9ybWF0XT1cInsgdHlwZTogJ2ZpeGVkUG9pbnQnLCBwcmVjaXNpb246IDAgfVwiPlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPGR4aS1jb2x1bW5cclxuICAgICAgICAgIGRhdGFGaWVsZD1cInVfTGFzdFdlaWdoaW5nXCJcclxuICAgICAgICAgIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6Okxhc3RXZWlnaGluZ0tnJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBkYXRhVHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICBbZm9ybWF0XT1cInsgdHlwZTogJ2ZpeGVkUG9pbnQnLCBwcmVjaXNpb246IDAgfVwiPlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPGR4aS1jb2x1bW5cclxuICAgICAgICAgIGRhdGFGaWVsZD1cInVfTmV0XCJcclxuICAgICAgICAgIGNhcHRpb249XCJ7eyAnS2Fkb29nbHU6Ok5ldEtnJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBkYXRhVHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICBbZm9ybWF0XT1cInsgdHlwZTogJ2ZpeGVkUG9pbnQnLCBwcmVjaXNpb246IDAgfVwiPlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPGR4aS1jb2x1bW5cclxuICAgICAgICAgIGRhdGFGaWVsZD1cInVfRXhpdERhdGVcIlxyXG4gICAgICAgICAgY2FwdGlvbj1cInt7ICdLYWRvb2dsdTo6RXhpdERhdGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cImV4aXREYXRlVGltZVRlbXBsYXRlXCJcclxuICAgICAgICAgIFthbGxvd0ZpbHRlcmluZ109XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInVfRGVzY3JpcHRpb25cIiBjYXB0aW9uPVwie3sgJ0thZG9vZ2x1OjpEZXNjcmlwdGlvbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj48L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbCBvZiAncGxhdGVUZW1wbGF0ZSdcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY2VsbC5kYXRhLnVfUGxhdGVcIiBjbGFzcz1cInRyLXBsYXRlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHItcGxhdGUtYmx1ZVwiPlRSPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRyLXBsYXRlLXRleHRcIj57eyBmb3JtYXRQbGF0ZShjZWxsLmRhdGEudV9QbGF0ZSkgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbCBvZiAnZG9yc2VQbGF0ZVRlbXBsYXRlJ1wiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjZWxsLmRhdGEudV9Eb3JzZVBsYXRlXCIgY2xhc3M9XCJ0ci1wbGF0ZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRyLXBsYXRlLWJsdWVcIj5UUjwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ci1wbGF0ZS10ZXh0XCI+e3sgZm9ybWF0UGxhdGUoY2VsbC5kYXRhLnVfRG9yc2VQbGF0ZSkgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbCBvZiAnZW50cnlEYXRlVGltZVRlbXBsYXRlJ1wiPlxyXG4gICAgICAgICAge3sgZm9ybWF0RW50cnlEYXRlVGltZShjZWxsLmRhdGEudV9FbnRyeURhdGUsIGNlbGwuZGF0YS51X0VudHJ5VGltZSkgfX1cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsIG9mICdleGl0RGF0ZVRpbWVUZW1wbGF0ZSdcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY2VsbC5kYXRhLnVfRXhpdERhdGVcIj5cclxuICAgICAgICAgICAge3sgY2VsbC5kYXRhLnVfRXhpdERhdGUgfCBkYXRlOidkZC5NTS55eXl5JyB9fVxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNlbGwuZGF0YS51X0V4aXRUaW1lXCIgY2xhc3M9XCJ0ZXh0LW11dGVkIG1zLTFcIj57eyBmb3JtYXRUaW1lKGNlbGwuZGF0YS51X0V4aXRUaW1lKSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsIG9mICdzdGF0dXNUZW1wbGF0ZSdcIj5cclxuICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJnZXRTdGF0dXNDbGFzcyhjZWxsLmRhdGEudV9TdGF0dXMpXCIgc3R5bGU9XCJwYWRkaW5nOiAwLjI1ZW0gLjVlbSAuMjVlbSAuNWVtO1wiPlxyXG4gICAgICAgICAgICB7eyBnZXRTdGF0dXNMYWJlbChjZWxsLmRhdGEudV9TdGF0dXMpIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+XHJcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ import { HitEntryWeighingListComponent } from './hit-entry-weighing-list/hit-entry-weighing-list.component';
4
+ import { HitEntryWeighingFormComponent } from './hit-entry-weighing-form/hit-entry-weighing-form.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/router";
7
+ const routes = [
8
+ { path: '', component: HitEntryWeighingListComponent },
9
+ { path: 'new', component: HitEntryWeighingFormComponent },
10
+ { path: ':id', component: HitEntryWeighingFormComponent },
11
+ ];
12
+ export class HitEntryWeighingRoutingModule {
13
+ }
14
+ HitEntryWeighingRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ HitEntryWeighingRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
16
+ HitEntryWeighingRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingRoutingModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ imports: [RouterModule.forChild(routes)],
21
+ exports: [RouterModule],
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWVudHJ5LXdlaWdoaW5nLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUvc3JjL2xpYi9oaXQtY29tcG9uZW50cy9oaXQtZW50cnktd2VpZ2hpbmcvaGl0LWVudHJ5LXdlaWdoaW5nLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzVHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDOzs7QUFFNUcsTUFBTSxNQUFNLEdBQVc7SUFDckIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSw2QkFBNkIsRUFBRTtJQUN0RCxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLDZCQUE2QixFQUFFO0lBQ3pELEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsNkJBQTZCLEVBQUU7Q0FDMUQsQ0FBQztBQU1GLE1BQU0sT0FBTyw2QkFBNkI7OzBIQUE3Qiw2QkFBNkI7MkhBQTdCLDZCQUE2Qix3Q0FGOUIsWUFBWTsySEFFWCw2QkFBNkIsWUFIOUIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDN0IsWUFBWTsyRkFFWCw2QkFBNkI7a0JBSnpDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSGl0RW50cnlXZWlnaGluZ0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2hpdC1lbnRyeS13ZWlnaGluZy1saXN0L2hpdC1lbnRyeS13ZWlnaGluZy1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEhpdEVudHJ5V2VpZ2hpbmdGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9oaXQtZW50cnktd2VpZ2hpbmctZm9ybS9oaXQtZW50cnktd2VpZ2hpbmctZm9ybS5jb21wb25lbnQnO1xyXG5cclxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXHJcbiAgeyBwYXRoOiAnJywgY29tcG9uZW50OiBIaXRFbnRyeVdlaWdoaW5nTGlzdENvbXBvbmVudCB9LFxyXG4gIHsgcGF0aDogJ25ldycsIGNvbXBvbmVudDogSGl0RW50cnlXZWlnaGluZ0Zvcm1Db21wb25lbnQgfSxcclxuICB7IHBhdGg6ICc6aWQnLCBjb21wb25lbnQ6IEhpdEVudHJ5V2VpZ2hpbmdGb3JtQ29tcG9uZW50IH0sXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXHJcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRFbnRyeVdlaWdoaW5nUm91dGluZ01vZHVsZSB7fVxyXG4iXX0=
@@ -0,0 +1,77 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { CoreModule } from '@abp/ng.core';
5
+ import { ThemeSharedModule } from '@abp/ng.theme.shared';
6
+ import { PageModule } from '@abp/ng.components/page';
7
+ import { CommercialUiModule } from '@volo/abp.commercial.ng.ui';
8
+ import { HitEntryWeighingRoutingModule } from './hit-entry-weighing-routing.module';
9
+ import { HitEntryWeighingListComponent } from './hit-entry-weighing-list/hit-entry-weighing-list.component';
10
+ import { HitEntryWeighingFormComponent } from './hit-entry-weighing-form/hit-entry-weighing-form.component';
11
+ import { HitUIModule } from '../../shared/hit-modal/hit-ui.module';
12
+ import { DxDataGridModule, DxDateBoxModule, DxTextBoxModule, DxTextAreaModule, DxNumberBoxModule, DxButtonModule, DxCheckBoxModule, } from 'devextreme-angular';
13
+ import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
14
+ import * as i0 from "@angular/core";
15
+ export class HitEntryWeighingModule {
16
+ }
17
+ HitEntryWeighingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
+ HitEntryWeighingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingModule, declarations: [HitEntryWeighingListComponent, HitEntryWeighingFormComponent], imports: [CommonModule,
19
+ FormsModule,
20
+ CoreModule,
21
+ ThemeSharedModule,
22
+ PageModule,
23
+ CommercialUiModule,
24
+ HitEntryWeighingRoutingModule,
25
+ HitUIModule,
26
+ DxDataGridModule,
27
+ DxDateBoxModule,
28
+ DxTextBoxModule,
29
+ DxTextAreaModule,
30
+ DxNumberBoxModule,
31
+ DxButtonModule,
32
+ NgbDropdownModule,
33
+ DxCheckBoxModule] });
34
+ HitEntryWeighingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingModule, imports: [CommonModule,
35
+ FormsModule,
36
+ CoreModule,
37
+ ThemeSharedModule,
38
+ PageModule,
39
+ CommercialUiModule,
40
+ HitEntryWeighingRoutingModule,
41
+ HitUIModule,
42
+ DxDataGridModule,
43
+ DxDateBoxModule,
44
+ DxTextBoxModule,
45
+ DxTextAreaModule,
46
+ DxNumberBoxModule,
47
+ DxButtonModule,
48
+ NgbDropdownModule,
49
+ DxCheckBoxModule] });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingModule, decorators: [{
51
+ type: NgModule,
52
+ args: [{
53
+ declarations: [HitEntryWeighingListComponent, HitEntryWeighingFormComponent],
54
+ imports: [
55
+ CommonModule,
56
+ FormsModule,
57
+ CoreModule,
58
+ ThemeSharedModule,
59
+ PageModule,
60
+ CommercialUiModule,
61
+ HitEntryWeighingRoutingModule,
62
+ HitUIModule,
63
+ DxDataGridModule,
64
+ DxDateBoxModule,
65
+ DxTextBoxModule,
66
+ DxTextAreaModule,
67
+ DxNumberBoxModule,
68
+ DxButtonModule,
69
+ NgbDropdownModule,
70
+ DxCheckBoxModule
71
+ ],
72
+ }]
73
+ }] });
74
+ export function loadHitEntryWeighingModuleAsChild() {
75
+ return Promise.resolve(HitEntryWeighingModule);
76
+ }
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWVudHJ5LXdlaWdoaW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thZG9vZ2x1L3NyYy9saWIvaGl0LWNvbXBvbmVudHMvaGl0LWVudHJ5LXdlaWdoaW5nL2hpdC1lbnRyeS13ZWlnaGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzVHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzVHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRSxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixjQUFjLEVBQUUsZ0JBQWdCLEdBQ25DLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBdUIvRCxNQUFNLE9BQU8sc0JBQXNCOzttSEFBdEIsc0JBQXNCO29IQUF0QixzQkFBc0IsaUJBcEJsQiw2QkFBNkIsRUFBRSw2QkFBNkIsYUFFckUsWUFBWTtRQUNaLFdBQVc7UUFDWCxVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLFVBQVU7UUFDVixrQkFBa0I7UUFDbEIsNkJBQTZCO1FBQzdCLFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsZ0JBQWdCO29IQUdYLHNCQUFzQixZQWxCM0IsWUFBWTtRQUNaLFdBQVc7UUFDWCxVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLFVBQVU7UUFDVixrQkFBa0I7UUFDbEIsNkJBQTZCO1FBQzdCLFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsZ0JBQWdCOzJGQUdYLHNCQUFzQjtrQkFyQmxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsNkJBQTZCLEVBQUUsNkJBQTZCLENBQUM7b0JBQzFFLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVixpQkFBaUI7d0JBQ2pCLFVBQVU7d0JBQ1Ysa0JBQWtCO3dCQUNsQiw2QkFBNkI7d0JBQzdCLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixnQkFBZ0I7cUJBQ25CO2lCQUNKOztBQUdELE1BQU0sVUFBVSxpQ0FBaUM7SUFDL0MsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IFBhZ2VNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvbXBvbmVudHMvcGFnZSc7XHJcbmltcG9ydCB7IENvbW1lcmNpYWxVaU1vZHVsZSB9IGZyb20gJ0B2b2xvL2FicC5jb21tZXJjaWFsLm5nLnVpJztcclxuaW1wb3J0IHsgSGl0RW50cnlXZWlnaGluZ1JvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2hpdC1lbnRyeS13ZWlnaGluZy1yb3V0aW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IEhpdEVudHJ5V2VpZ2hpbmdMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9oaXQtZW50cnktd2VpZ2hpbmctbGlzdC9oaXQtZW50cnktd2VpZ2hpbmctbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIaXRFbnRyeVdlaWdoaW5nRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaGl0LWVudHJ5LXdlaWdoaW5nLWZvcm0vaGl0LWVudHJ5LXdlaWdoaW5nLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgSGl0VUlNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvaGl0LW1vZGFsL2hpdC11aS5tb2R1bGUnO1xyXG5pbXBvcnQge1xyXG4gICAgRHhEYXRhR3JpZE1vZHVsZSxcclxuICAgIER4RGF0ZUJveE1vZHVsZSxcclxuICAgIER4VGV4dEJveE1vZHVsZSxcclxuICAgIER4VGV4dEFyZWFNb2R1bGUsXHJcbiAgICBEeE51bWJlckJveE1vZHVsZSxcclxuICAgIER4QnV0dG9uTW9kdWxlLCBEeENoZWNrQm94TW9kdWxlLFxyXG59IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCB7IE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtIaXRFbnRyeVdlaWdoaW5nTGlzdENvbXBvbmVudCwgSGl0RW50cnlXZWlnaGluZ0Zvcm1Db21wb25lbnRdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBDb3JlTW9kdWxlLFxyXG4gICAgICAgIFRoZW1lU2hhcmVkTW9kdWxlLFxyXG4gICAgICAgIFBhZ2VNb2R1bGUsXHJcbiAgICAgICAgQ29tbWVyY2lhbFVpTW9kdWxlLFxyXG4gICAgICAgIEhpdEVudHJ5V2VpZ2hpbmdSb3V0aW5nTW9kdWxlLFxyXG4gICAgICAgIEhpdFVJTW9kdWxlLFxyXG4gICAgICAgIER4RGF0YUdyaWRNb2R1bGUsXHJcbiAgICAgICAgRHhEYXRlQm94TW9kdWxlLFxyXG4gICAgICAgIER4VGV4dEJveE1vZHVsZSxcclxuICAgICAgICBEeFRleHRBcmVhTW9kdWxlLFxyXG4gICAgICAgIER4TnVtYmVyQm94TW9kdWxlLFxyXG4gICAgICAgIER4QnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG4gICAgICAgIER4Q2hlY2tCb3hNb2R1bGVcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRFbnRyeVdlaWdoaW5nTW9kdWxlIHt9XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZEhpdEVudHJ5V2VpZ2hpbmdNb2R1bGVBc0NoaWxkKCkge1xyXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoSGl0RW50cnlXZWlnaGluZ01vZHVsZSk7XHJcbn1cclxuIl19