@hitsoft/uretim-yonetimi 1.0.28 → 1.0.30

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 (69) hide show
  1. package/config/enums/route-names.d.ts +5 -1
  2. package/config/providers/boiler-ym-product-waste-route.provider.d.ts +9 -0
  3. package/config/providers/component-wastage-route.provider.d.ts +9 -0
  4. package/config/providers/filling-control-route.provider.d.ts +9 -0
  5. package/config/providers/filling-receipt-from-production-route.provider.d.ts +9 -0
  6. package/esm2020/config/enums/route-names.mjs +1 -1
  7. package/esm2020/config/providers/boiler-ym-product-waste-route.provider.mjs +19 -0
  8. package/esm2020/config/providers/component-wastage-route.provider.mjs +19 -0
  9. package/esm2020/config/providers/filling-control-route.provider.mjs +19 -0
  10. package/esm2020/config/providers/filling-receipt-from-production-route.provider.mjs +19 -0
  11. package/esm2020/config/providers/receipt-from-production-route.provider.mjs +2 -2
  12. package/esm2020/config/providers/route.provider.mjs +9 -2
  13. package/esm2020/config/uretim-yonetimi-config.module.mjs +9 -1
  14. package/esm2020/lib/components/hit-boiler-ym-product-waste/hit-boiler-ym-product-waste-routing.module.mjs +26 -0
  15. package/esm2020/lib/components/hit-boiler-ym-product-waste/hit-boiler-ym-product-waste.component.mjs +252 -0
  16. package/esm2020/lib/components/hit-boiler-ym-product-waste/hit-boiler-ym-product-waste.module.mjs +65 -0
  17. package/esm2020/lib/components/hit-component-wastage/hit-component-wastage-routing.module.mjs +24 -0
  18. package/esm2020/lib/components/hit-component-wastage/hit-component-wastage.component.mjs +241 -0
  19. package/esm2020/lib/components/hit-component-wastage/hit-component-wastage.module.mjs +74 -0
  20. package/esm2020/lib/components/hit-filling-control/hit-filling-control-routing.module.mjs +26 -0
  21. package/esm2020/lib/components/hit-filling-control/hit-filling-control.component.mjs +358 -0
  22. package/esm2020/lib/components/hit-filling-control/hit-filling-control.module.mjs +65 -0
  23. package/esm2020/lib/components/hit-filling-receipt-from-production/hit-filling-receipt-from-production-routing.module.mjs +26 -0
  24. package/esm2020/lib/components/hit-filling-receipt-from-production/hit-filling-receipt-from-production.component.mjs +202 -0
  25. package/esm2020/lib/components/hit-filling-receipt-from-production/hit-filling-receipt-from-production.module.mjs +65 -0
  26. package/esm2020/lib/components/hit-production-orders/hit-production-orders.component.mjs +3 -3
  27. package/esm2020/lib/components/hit-receipt-from-productions/hit-receipt-from-productions.component.mjs +3 -3
  28. package/esm2020/lib/hit-proxy/hit-boiler-ym-product-waste/hit-boiler-ym-product-waste.service.mjs +35 -0
  29. package/esm2020/lib/hit-proxy/hit-boiler-ym-product-waste/models.mjs +3 -0
  30. package/esm2020/lib/hit-proxy/hit-component-wastage/hit-component-wastage.service.mjs +33 -0
  31. package/esm2020/lib/hit-proxy/hit-component-wastage/models.mjs +17 -0
  32. package/esm2020/lib/hit-proxy/hit-filling-control/hit-filling-control.service.mjs +40 -0
  33. package/esm2020/lib/hit-proxy/hit-filling-control/models.mjs +3 -0
  34. package/esm2020/lib/hit-proxy/hit-filling-receipt-from-production/hit-filling-receipt-from-production.service.mjs +28 -0
  35. package/esm2020/lib/hit-proxy/hit-production-orders/hit-production-orders.service.mjs +5 -1
  36. package/esm2020/lib/hit-proxy/hit-receipt-from-productions/models.mjs +1 -1
  37. package/esm2020/lib/hit-proxy/models.mjs +42 -47
  38. package/esm2020/lib/uretim-yonetimi-routing.module.mjs +10 -2
  39. package/esm2020/lib/uretim-yonetimi.module.mjs +21 -1
  40. package/fesm2015/hitsoft-uretim-yonetimi-config.mjs +92 -13
  41. package/fesm2015/hitsoft-uretim-yonetimi-config.mjs.map +1 -1
  42. package/fesm2015/hitsoft-uretim-yonetimi.mjs +1602 -99
  43. package/fesm2015/hitsoft-uretim-yonetimi.mjs.map +1 -1
  44. package/fesm2020/hitsoft-uretim-yonetimi-config.mjs +92 -13
  45. package/fesm2020/hitsoft-uretim-yonetimi-config.mjs.map +1 -1
  46. package/fesm2020/hitsoft-uretim-yonetimi.mjs +1580 -99
  47. package/fesm2020/hitsoft-uretim-yonetimi.mjs.map +1 -1
  48. package/lib/components/hit-boiler-ym-product-waste/hit-boiler-ym-product-waste-routing.module.d.ts +7 -0
  49. package/lib/components/hit-boiler-ym-product-waste/hit-boiler-ym-product-waste.component.d.ts +38 -0
  50. package/lib/components/hit-boiler-ym-product-waste/hit-boiler-ym-product-waste.module.d.ts +16 -0
  51. package/lib/components/hit-component-wastage/hit-component-wastage-routing.module.d.ts +7 -0
  52. package/lib/components/hit-component-wastage/hit-component-wastage.component.d.ts +39 -0
  53. package/lib/components/hit-component-wastage/hit-component-wastage.module.d.ts +16 -0
  54. package/lib/components/hit-filling-control/hit-filling-control-routing.module.d.ts +7 -0
  55. package/lib/components/hit-filling-control/hit-filling-control.component.d.ts +40 -0
  56. package/lib/components/hit-filling-control/hit-filling-control.module.d.ts +16 -0
  57. package/lib/components/hit-filling-receipt-from-production/hit-filling-receipt-from-production-routing.module.d.ts +7 -0
  58. package/lib/components/hit-filling-receipt-from-production/hit-filling-receipt-from-production.component.d.ts +36 -0
  59. package/lib/components/hit-filling-receipt-from-production/hit-filling-receipt-from-production.module.d.ts +16 -0
  60. package/lib/hit-proxy/hit-boiler-ym-product-waste/hit-boiler-ym-product-waste.service.d.ts +16 -0
  61. package/lib/hit-proxy/hit-boiler-ym-product-waste/models.d.ts +22 -0
  62. package/lib/hit-proxy/hit-component-wastage/hit-component-wastage.service.d.ts +15 -0
  63. package/lib/hit-proxy/hit-component-wastage/models.d.ts +40 -0
  64. package/lib/hit-proxy/hit-filling-control/hit-filling-control.service.d.ts +17 -0
  65. package/lib/hit-proxy/hit-filling-control/models.d.ts +42 -0
  66. package/lib/hit-proxy/hit-filling-receipt-from-production/hit-filling-receipt-from-production.service.d.ts +52 -0
  67. package/lib/hit-proxy/hit-production-orders/hit-production-orders.service.d.ts +1 -0
  68. package/lib/hit-proxy/hit-receipt-from-productions/models.d.ts +1 -0
  69. package/package.json +2 -2
@@ -0,0 +1,252 @@
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import notify from 'devextreme/ui/notify';
3
+ import { Confirmation } from '@abp/ng.theme.shared';
4
+ import { BoilerYMProductWastePostDto } from "../../hit-proxy/hit-boiler-ym-product-waste/models";
5
+ import { YmProduct } from "../../hit-proxy/hit-filling-control/models";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../hit-proxy/hit-boiler-ym-product-waste/hit-boiler-ym-product-waste.service";
8
+ import * as i2 from "@abp/ng.theme.shared";
9
+ import * as i3 from "../../hit-proxy/hit-production-orders/hit-production-orders.service";
10
+ import * as i4 from "../../hit-proxy/hit-filling-control/hit-filling-control.service";
11
+ import * as i5 from "@angular/common";
12
+ import * as i6 from "@abp/ng.components/page";
13
+ import * as i7 from "devextreme-angular";
14
+ import * as i8 from "@abp/ng.core";
15
+ export class HitBoilerYMProductWasteComponent {
16
+ constructor(service, confirmation, ngZone, productionOrdersService, fillingControlService) {
17
+ this.service = service;
18
+ this.confirmation = confirmation;
19
+ this.ngZone = ngZone;
20
+ this.productionOrdersService = productionOrdersService;
21
+ this.fillingControlService = fillingControlService;
22
+ this.options = {
23
+ hideYesBtn: true,
24
+ cancelText: 'Kapat',
25
+ dismissible: false,
26
+ };
27
+ this.isLoading = false;
28
+ this.isSaving = false;
29
+ this.isEmriBarkoduGecerliMi = false;
30
+ this.searcheBasildiMi = false;
31
+ this.boilerYMProductWastePostDto = new BoilerYMProductWastePostDto;
32
+ this.ymProduct = new YmProduct;
33
+ }
34
+ ngAfterViewInit() {
35
+ this.focusWorkOrder();
36
+ }
37
+ getProductionOrder() {
38
+ if (!this.isEmriBarkodu) {
39
+ this.focusWorkOrder();
40
+ return;
41
+ }
42
+ this.isLoading = true;
43
+ this.isEmriBarkoduGecerliMi = false;
44
+ this.searcheBasildiMi = true;
45
+ this.productionOrder = null;
46
+ this.productionOrdersService.get(this.isEmriBarkodu).subscribe({
47
+ next: (response) => {
48
+ if (response?.isSuccessful && response.items) {
49
+ this.fillingControlService.getYmProduct(response.items.absoluteEntry).subscribe({
50
+ next: (responseYM) => {
51
+ if (responseYM?.isSuccessful && responseYM.items) {
52
+ this.ymProduct = responseYM.items;
53
+ this.productionOrder = response.items;
54
+ this.isEmriBarkoduGecerliMi = true;
55
+ }
56
+ else {
57
+ this.confirmation.error('', 'YM ürün bilgileri alınamadı.', this.options).subscribe(() => {
58
+ this.clearAll();
59
+ });
60
+ }
61
+ },
62
+ error: () => {
63
+ this.confirmation.error('', 'YM ürün bilgileri alınamadı.', this.options).subscribe(() => {
64
+ this.clearAll();
65
+ });
66
+ },
67
+ });
68
+ }
69
+ else {
70
+ const message = response?.errors?.length
71
+ ? response.errors.join('\n')
72
+ : 'İş emri bilgileri alınamadı.';
73
+ this.showError(message);
74
+ this.focusWorkOrder();
75
+ }
76
+ this.isLoading = false;
77
+ this.searcheBasildiMi = false;
78
+ },
79
+ error: () => {
80
+ this.showError('İş emri bilgileri alınamadı.');
81
+ this.focusWorkOrder();
82
+ this.isLoading = false;
83
+ this.searcheBasildiMi = false;
84
+ },
85
+ complete: () => {
86
+ this.isLoading = false;
87
+ this.searcheBasildiMi = false;
88
+ },
89
+ });
90
+ }
91
+ save() {
92
+ if (!this.isEmriBarkoduGecerliMi || !this.productionOrder || this.isSaving) {
93
+ this.focusWorkOrder();
94
+ return;
95
+ }
96
+ this.confirmation.warn('', 'Fire kaydını yapmak istediğinizden emin misiniz?', {
97
+ yesText: 'Evet',
98
+ cancelText: 'Hayır'
99
+ }).subscribe((status) => {
100
+ if (status !== Confirmation.Status.confirm) {
101
+ return;
102
+ }
103
+ this.isSaving = true;
104
+ this.isLoading = true;
105
+ this.service.create(this.productionOrder.absoluteEntry).subscribe({
106
+ next: (response) => {
107
+ if (response?.isSuccessful) {
108
+ this.confirmation
109
+ .success('', 'İşlem başarıyla tamamlandı.', this.options)
110
+ .subscribe(() => this.clearAll());
111
+ }
112
+ else {
113
+ const message = response?.errors?.length
114
+ ? response.errors.join('\n')
115
+ : 'Fire işlemi sırasında bir hata oluştu.';
116
+ this.showError(message);
117
+ }
118
+ },
119
+ error: (error) => {
120
+ this.isSaving = false;
121
+ this.isLoading = false;
122
+ },
123
+ complete: () => {
124
+ this.clearAll();
125
+ },
126
+ });
127
+ });
128
+ }
129
+ clearAll() {
130
+ this.isLoading = false;
131
+ this.isSaving = false;
132
+ this.isEmriBarkoduGecerliMi = false;
133
+ this.searcheBasildiMi = false;
134
+ this.isEmriBarkodu = null;
135
+ this.productionOrder = null;
136
+ this.boilerYMProductWastePostDto = new BoilerYMProductWastePostDto;
137
+ this.ngZone.run(() => {
138
+ setTimeout(() => {
139
+ this.nmbBoxBarkodNumarasi.instance.focus();
140
+ }, 0);
141
+ });
142
+ this.focusWorkOrder();
143
+ }
144
+ focusWorkOrder() {
145
+ this.ngZone.runOutsideAngular(() => {
146
+ setTimeout(() => {
147
+ this.nmbBoxBarkodNumarasi?.instance?.focus();
148
+ });
149
+ });
150
+ }
151
+ showError(message) {
152
+ this.confirmation.error('', message, this.options);
153
+ notify({ message, type: 'error' });
154
+ }
155
+ finishWorkOrderAndSaveWaste() {
156
+ debugger;
157
+ if (!this.isEmriBarkoduGecerliMi || !this.productionOrder || this.isSaving) {
158
+ this.focusWorkOrder();
159
+ return;
160
+ }
161
+ this.confirmation.warn('', 'İş emrini bitirmek ve fireyi kaydetmek istediğinizden emin misiniz?', {
162
+ yesText: 'Evet',
163
+ cancelText: 'Hayır'
164
+ }).subscribe((status) => {
165
+ if (status !== Confirmation.Status.confirm) {
166
+ return;
167
+ }
168
+ this.isSaving = true;
169
+ this.isLoading = true;
170
+ this.service.finishWorkOrderAndSaveWaste(this.productionOrder.absoluteEntry).subscribe({
171
+ next: (response) => {
172
+ debugger;
173
+ if (response?.isSuccessful) {
174
+ this.confirmation
175
+ .success('', 'İş emri bitirildi ve fire kaydedildi.', this.options)
176
+ .subscribe(() => this.clearAll());
177
+ }
178
+ else {
179
+ const message = response?.errors?.length
180
+ ? response.errors.join('\n')
181
+ : 'İş emri bitirme işlemi sırasında bir hata oluştu.';
182
+ this.showError(message);
183
+ this.isSaving = false;
184
+ this.isLoading = false;
185
+ }
186
+ },
187
+ error: (error) => {
188
+ debugger;
189
+ let message = error.error.error.message;
190
+ message = message.length
191
+ ? message
192
+ : 'İş emri bitirme işlemi sırasında bir hata oluştu.';
193
+ this.isSaving = false;
194
+ this.isLoading = false;
195
+ this.showError(message);
196
+ },
197
+ complete: () => {
198
+ this.clearAll();
199
+ },
200
+ });
201
+ });
202
+ }
203
+ finishWorkOrderWithoutSavingWaste() {
204
+ if (!this.isEmriBarkoduGecerliMi || !this.productionOrder || this.isSaving) {
205
+ this.focusWorkOrder();
206
+ return;
207
+ }
208
+ this.confirmation.warn('', 'İş emrini bitirmek istediğinizden emin misiniz? (Fire kaydedilmeyecek)', {
209
+ yesText: 'Evet',
210
+ cancelText: 'Hayır'
211
+ }).subscribe((status) => {
212
+ if (status !== Confirmation.Status.confirm) {
213
+ return;
214
+ }
215
+ this.isSaving = true;
216
+ this.isLoading = true;
217
+ this.service.finishWorkOrderWithoutSavingWaste(this.productionOrder.absoluteEntry).subscribe({
218
+ next: (response) => {
219
+ if (response?.isSuccessful) {
220
+ this.confirmation
221
+ .success('', 'İş emri bitirildi.', this.options)
222
+ .subscribe(() => this.clearAll());
223
+ }
224
+ else {
225
+ const message = response?.errors?.length
226
+ ? response.errors.join('\n')
227
+ : 'İş emri bitirme işlemi sırasında bir hata oluştu.';
228
+ this.showError(message);
229
+ }
230
+ },
231
+ error: (error) => {
232
+ this.showError('İş emri bitirme işlemi sırasında bir hata oluştu.');
233
+ this.isSaving = false;
234
+ this.isLoading = false;
235
+ },
236
+ complete: () => {
237
+ this.clearAll();
238
+ },
239
+ });
240
+ });
241
+ }
242
+ }
243
+ HitBoilerYMProductWasteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBoilerYMProductWasteComponent, deps: [{ token: i1.HitBoilerYMProductWasteService }, { token: i2.ConfirmationService }, { token: i0.NgZone }, { token: i3.HitProductionOrdersService }, { token: i4.HitFillingControlService }], target: i0.ɵɵFactoryTarget.Component });
244
+ HitBoilerYMProductWasteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitBoilerYMProductWasteComponent, selector: "lib-hit-boiler-ym-product-waste", viewQueries: [{ propertyName: "nmbBoxBarkodNumarasi", first: true, predicate: ["barkodNumarasiRef"], 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::BoilerYMProductWaste.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row pt-2 g-2\">\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-success btn-sm w-100\" type=\"button\" (click)=\"save()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-save me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Save' | abpLocalization }}\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-primary btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderAndSaveWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check-double me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydet\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-info btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderWithoutSavingWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydetme\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-warning btn-sm w-100\" type=\"button\" (click)=\"clearAll()\"\r\n [disabled]=\"isLoading\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Clean' | abpLocalization }}\r\n </button>\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 <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #barkodNumarasiRef class=\"me-1\" style=\"width:100%;\" [min]=\"1\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"isEmriBarkodu\" (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\" (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || 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::BoilerYMProductWaste.ConveyorInformation' | abpLocalization\"\r\n [(value)]=\"productionOrder.u_Hat\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductDescription' | abpLocalization\"\r\n [(value)]=\"productionOrder.productDescription\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.BatchNumber' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchNumber\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ItemCode' | abpLocalization\"\r\n [(value)]=\"ymProduct.itemCode\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-number-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductQuantity' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchQuantity\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [":host{display:block}dx-number-box,dx-text-box{width:100%}dx-data-grid{width:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i6.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i7.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: i7.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: i7.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: i8.LocalizationPipe, name: "abpLocalization" }] });
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBoilerYMProductWasteComponent, decorators: [{
246
+ type: Component,
247
+ args: [{ selector: 'lib-hit-boiler-ym-product-waste', 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::BoilerYMProductWaste.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row pt-2 g-2\">\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-success btn-sm w-100\" type=\"button\" (click)=\"save()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-save me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Save' | abpLocalization }}\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-primary btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderAndSaveWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check-double me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydet\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-info btn-sm w-100\" type=\"button\" (click)=\"finishWorkOrderWithoutSavingWaste()\"\r\n [disabled]=\"!isEmriBarkoduGecerliMi || isSaving\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u0130\u015F Emrini Bitir ve Fireyi Kaydetme\r\n </button>\r\n </div>\r\n <div class=\"col-12 col-md-6 col-lg-3\">\r\n <button class=\"btn btn-warning btn-sm w-100\" type=\"button\" (click)=\"clearAll()\"\r\n [disabled]=\"isLoading\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n {{ 'UretimYonetimi::BoilerYMProductWaste.Clean' | abpLocalization }}\r\n </button>\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 <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #barkodNumarasiRef class=\"me-1\" style=\"width:100%;\" [min]=\"1\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"isEmriBarkodu\" (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || isEmriBarkoduGecerliMi\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\" (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"searcheBasildiMi || 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::BoilerYMProductWaste.ConveyorInformation' | abpLocalization\"\r\n [(value)]=\"productionOrder.u_Hat\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductDescription' | abpLocalization\"\r\n [(value)]=\"productionOrder.productDescription\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.BatchNumber' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchNumber\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-text-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ItemCode' | abpLocalization\"\r\n [(value)]=\"ymProduct.itemCode\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n <dx-number-box style=\"width:100%;\"\r\n [label]=\"'UretimYonetimi::BoilerYMProductWaste.ProductQuantity' | abpLocalization\"\r\n [(value)]=\"ymProduct.batchQuantity\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [":host{display:block}dx-number-box,dx-text-box{width:100%}dx-data-grid{width:100%}\n"] }]
248
+ }], ctorParameters: function () { return [{ type: i1.HitBoilerYMProductWasteService }, { type: i2.ConfirmationService }, { type: i0.NgZone }, { type: i3.HitProductionOrdersService }, { type: i4.HitFillingControlService }]; }, propDecorators: { nmbBoxBarkodNumarasi: [{
249
+ type: ViewChild,
250
+ args: ['barkodNumarasiRef', { static: false }]
251
+ }] } });
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWJvaWxlci15bS1wcm9kdWN0LXdhc3RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VyZXRpbS15b25ldGltaS9zcmMvbGliL2NvbXBvbmVudHMvaGl0LWJvaWxlci15bS1wcm9kdWN0LXdhc3RlL2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS9oaXQtYm9pbGVyLXltLXByb2R1Y3Qtd2FzdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sTUFBTSxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBc0IsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFJdkUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFFL0YsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBT3JFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFrQjNDLFlBQ21CLE9BQXVDLEVBQ3ZDLFlBQWlDLEVBQ2pDLE1BQWMsRUFDZCx1QkFBbUQsRUFDbkQscUJBQStDO1FBSi9DLFlBQU8sR0FBUCxPQUFPLENBQWdDO1FBQ3ZDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUE0QjtRQUNuRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQTBCO1FBcEJsRSxZQUFPLEdBQWtDO1lBQ3ZDLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFVBQVUsRUFBRSxPQUFP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QUksQ0FBQyxJQUFJLENBQUM7NEJBQzVCLENBQUMsQ0FBQyxtREFBbUQsQ0FBQzt3QkFDeEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDekI7Z0JBQ0gsQ0FBQztnQkFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDZixJQUFJLENBQUMsU0FBUyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7b0JBQ3BFLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO29CQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDekIsQ0FBQztnQkFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUNiLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7NkhBblFVLGdDQUFnQztpSEFBaEMsZ0NBQWdDLGtNQ2hCN0MsMGxJQWlGQTsyRkRqRWEsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLGlDQUFpQzs0UEFLTSxvQkFBb0I7c0JBQXBFLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIE5nWm9uZSwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtEeFRleHRCb3hDb21wb25lbnR9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCBub3RpZnkgZnJvbSAnZGV2ZXh0cmVtZS91aS9ub3RpZnknO1xyXG5pbXBvcnQge0NvbmZpcm1hdGlvblNlcnZpY2UsIENvbmZpcm1hdGlvbn0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQge0hpdEJvaWxlcllNUHJvZHVjdFdhc3RlU2VydmljZX0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS9oaXQtYm9pbGVyLXltLXByb2R1Y3Qtd2FzdGUuc2VydmljZSc7XHJcbmltcG9ydCB7SGl0UHJvZHVjdGlvbk9yZGVyc1NlcnZpY2V9IGZyb20gXCIuLi8uLi9oaXQtcHJveHkvaGl0LXByb2R1Y3Rpb24tb3JkZXJzL2hpdC1wcm9kdWN0aW9uLW9yZGVycy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7R2V0UHJvZHVjdGlvbk9yZGVyRHRvfSBmcm9tIFwiLi4vLi4vaGl0LXByb3h5L2hpdC1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbnMvbW9kZWxzXCI7XHJcbmltcG9ydCB7Qm9pbGVyWU1Qcm9kdWN0V2FzdGVQb3N0RHRvfSBmcm9tIFwiLi4vLi4vaGl0LXByb3h5L2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS9tb2RlbHNcIjtcclxuaW1wb3J0IHtIaXRGaWxsaW5nQ29udHJvbFNlcnZpY2V9IGZyb20gXCIuLi8uLi9oaXQtcHJveHkvaGl0LWZpbGxpbmctY29udHJvbC9oaXQtZmlsbGluZy1jb250cm9sLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtZbVByb2R1Y3R9IGZyb20gXCIuLi8uLi9oaXQtcHJveHkvaGl0LWZpbGxpbmctY29udHJvbC9tb2RlbHNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWhpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGl0LWJvaWxlci15bS1wcm9kdWN0LXdhc3RlLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdEJvaWxlcllNUHJvZHVjdFdhc3RlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnYmFya29kTnVtYXJhc2lSZWYnLCB7c3RhdGljOiBmYWxzZX0pIG5tYkJveEJhcmtvZE51bWFyYXNpOiBEeFRleHRCb3hDb21wb25lbnQ7XHJcblxyXG4gIG9wdGlvbnM6IFBhcnRpYWw8Q29uZmlybWF0aW9uLk9wdGlvbnM+ID0ge1xyXG4gICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgfTtcclxuXHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNTYXZpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0VtcmlCYXJrb2R1R2VjZXJsaU1pOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VhcmNoZUJhc2lsZGlNaTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzRW1yaUJhcmtvZHU6IG51bWJlcjtcclxuICBwcm9kdWN0aW9uT3JkZXI6IEdldFByb2R1Y3Rpb25PcmRlckR0bztcclxuICBib2lsZXJZTVByb2R1Y3RXYXN0ZVBvc3REdG8gPSBuZXcgQm9pbGVyWU1Qcm9kdWN0V2FzdGVQb3N0RHRvO1xyXG4gIHltUHJvZHVjdCA9IG5ldyBZbVByb2R1Y3Q7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBIaXRCb2lsZXJZTVByb2R1Y3RXYXN0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3Rpb25PcmRlcnNTZXJ2aWNlOiBIaXRQcm9kdWN0aW9uT3JkZXJzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsbGluZ0NvbnRyb2xTZXJ2aWNlOiBIaXRGaWxsaW5nQ29udHJvbFNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzV29ya09yZGVyKCk7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9kdWN0aW9uT3JkZXIoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNFbXJpQmFya29kdSkge1xyXG4gICAgICB0aGlzLmZvY3VzV29ya09yZGVyKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmlzRW1yaUJhcmtvZHVHZWNlcmxpTWkgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VhcmNoZUJhc2lsZGlNaSA9IHRydWU7XHJcbiAgICB0aGlzLnByb2R1Y3Rpb25PcmRlciA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5wcm9kdWN0aW9uT3JkZXJzU2VydmljZS5nZXQodGhpcy5pc0VtcmlCYXJrb2R1KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCAmJiByZXNwb25zZS5pdGVtcykge1xyXG4gICAgICAgICAgdGhpcy5maWxsaW5nQ29udHJvbFNlcnZpY2UuZ2V0WW1Qcm9kdWN0KHJlc3BvbnNlLml0ZW1zLmFic29sdXRlRW50cnkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChyZXNwb25zZVlNKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlWU0/LmlzU3VjY2Vzc2Z1bCAmJiByZXNwb25zZVlNLml0ZW1zKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnltUHJvZHVjdCA9IHJlc3BvbnNlWU0uaXRlbXM7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3Rpb25PcmRlciA9IHJlc3BvbnNlLml0ZW1zO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uZXJyb3IoJycsICdZTSDDvHLDvG4gYmlsZ2lsZXJpIGFsxLFuYW1hZMSxLicsIHRoaXMub3B0aW9ucykuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCAnWU0gw7xyw7xuIGJpbGdpbGVyaSBhbMSxbmFtYWTEsS4nLCB0aGlzLm9wdGlvbnMpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHJlc3BvbnNlPy5lcnJvcnM/Lmxlbmd0aFxyXG4gICAgICAgICAgICA/IHJlc3BvbnNlLmVycm9ycy5qb2luKCdcXG4nKVxyXG4gICAgICAgICAgICA6ICfEsMWfIGVtcmkgYmlsZ2lsZXJpIGFsxLFuYW1hZMSxLic7XHJcbiAgICAgICAgICB0aGlzLnNob3dFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICAgIHRoaXMuZm9jdXNXb3JrT3JkZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNlYXJjaGVCYXNpbGRpTWkgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNob3dFcnJvcignxLDFnyBlbXJpIGJpbGdpbGVyaSBhbMSxbmFtYWTEsS4nKTtcclxuICAgICAgICB0aGlzLmZvY3VzV29ya09yZGVyKCk7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNlYXJjaGVCYXNpbGRpTWkgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoZUJhc2lsZGlNaSA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzYXZlKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzRW1yaUJhcmtvZHVHZWNlcmxpTWkgfHwgIXRoaXMucHJvZHVjdGlvbk9yZGVyIHx8IHRoaXMuaXNTYXZpbmcpIHtcclxuICAgICAgdGhpcy5mb2N1c1dvcmtPcmRlcigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb25maXJtYXRpb24ud2FybihcclxuICAgICAgJycsXHJcbiAgICAgICdGaXJlIGtheWTEsW7EsSB5YXBtYWsgaXN0ZWRpxJ9pbml6ZGVuIGVtaW4gbWlzaW5pej8nLFxyXG4gICAgICB7XHJcbiAgICAgICAgeWVzVGV4dDogJ0V2ZXQnLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6ICdIYXnEsXInXHJcbiAgICAgIH1cclxuICAgICkuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcclxuICAgICAgaWYgKHN0YXR1cyAhPT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmlzU2F2aW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZSh0aGlzLnByb2R1Y3Rpb25PcmRlci5hYnNvbHV0ZUVudHJ5KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlPy5pc1N1Y2Nlc3NmdWwpIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb25cclxuICAgICAgICAgICAgICAuc3VjY2VzcygnJywgJ8SwxZ9sZW0gYmHFn2FyxLF5bGEgdGFtYW1sYW5kxLEuJywgdGhpcy5vcHRpb25zKVxyXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbGVhckFsbCgpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSByZXNwb25zZT8uZXJyb3JzPy5sZW5ndGhcclxuICAgICAgICAgICAgICA/IHJlc3BvbnNlLmVycm9ycy5qb2luKCdcXG4nKVxyXG4gICAgICAgICAgICAgIDogJ0ZpcmUgacWfbGVtaSBzxLFyYXPEsW5kYSBiaXIgaGF0YSBvbHXFn3R1Lic7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNFbXJpQmFya29kdUdlY2VybGlNaSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWFyY2hlQmFzaWxkaU1pID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzRW1yaUJhcmtvZHUgPSBudWxsO1xyXG4gICAgdGhpcy5wcm9kdWN0aW9uT3JkZXIgPSBudWxsO1xyXG4gICAgdGhpcy5ib2lsZXJZTVByb2R1Y3RXYXN0ZVBvc3REdG8gPSBuZXcgQm9pbGVyWU1Qcm9kdWN0V2FzdGVQb3N0RHRvO1xyXG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ubWJCb3hCYXJrb2ROdW1hcmFzaS5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5mb2N1c1dvcmtPcmRlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb2N1c1dvcmtPcmRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ubWJCb3hCYXJrb2ROdW1hcmFzaT8uaW5zdGFuY2U/LmZvY3VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNob3dFcnJvcihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCBtZXNzYWdlLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgbm90aWZ5KHttZXNzYWdlLCB0eXBlOiAnZXJyb3InfSk7XHJcbiAgfVxyXG5cclxuICBmaW5pc2hXb3JrT3JkZXJBbmRTYXZlV2FzdGUoKTogdm9pZCB7XHJcbiAgICBkZWJ1Z2dlcjtcclxuICAgIGlmICghdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pIHx8ICF0aGlzLnByb2R1Y3Rpb25PcmRlciB8fCB0aGlzLmlzU2F2aW5nKSB7XHJcbiAgICAgIHRoaXMuZm9jdXNXb3JrT3JkZXIoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oXHJcbiAgICAgICcnLFxyXG4gICAgICAnxLDFnyBlbXJpbmkgYml0aXJtZWsgdmUgZmlyZXlpIGtheWRldG1layBpc3RlZGnEn2luaXpkZW4gZW1pbiBtaXNpbml6PycsXHJcbiAgICAgIHtcclxuICAgICAgICB5ZXNUZXh0OiAnRXZldCcsXHJcbiAgICAgICAgY2FuY2VsVGV4dDogJ0hhecSxcidcclxuICAgICAgfVxyXG4gICAgKS5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xyXG4gICAgICBpZiAoc3RhdHVzICE9PSBDb25maXJtYXRpb24uU3RhdHVzLmNvbmZpcm0pIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaXNTYXZpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLnNlcnZpY2UuZmluaXNoV29ya09yZGVyQW5kU2F2ZVdhc3RlKHRoaXMucHJvZHVjdGlvbk9yZGVyLmFic29sdXRlRW50cnkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzZnVsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uXHJcbiAgICAgICAgICAgICAgLnN1Y2Nlc3MoJycsICfEsMWfIGVtcmkgYml0aXJpbGRpIHZlIGZpcmUga2F5ZGVkaWxkaS4nLCB0aGlzLm9wdGlvbnMpXHJcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsZWFyQWxsKCkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHJlc3BvbnNlPy5lcnJvcnM/Lmxlbmd0aFxyXG4gICAgICAgICAgICAgID8gcmVzcG9uc2UuZXJyb3JzLmpvaW4oJ1xcbicpXHJcbiAgICAgICAgICAgICAgOiAnxLDFnyBlbXJpIGJpdGlybWUgacWfbGVtaSBzxLFyYXPEsW5kYSBiaXIgaGF0YSBvbHXFn3R1Lic7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB0aGlzLmlzU2F2aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAgIGxldCBtZXNzYWdlID0gZXJyb3IuZXJyb3IuZXJyb3IubWVzc2FnZTtcclxuICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLmxlbmd0aFxyXG4gICAgICAgICAgICAgID8gbWVzc2FnZVxyXG4gICAgICAgICAgICAgIDogJ8SwxZ8gZW1yaSBiaXRpcm1lIGnFn2xlbWkgc8SxcmFzxLFuZGEgYmlyIGhhdGEgb2x1xZ90dS4nO1xyXG4gICAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0Vycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2xlYXJBbGwoKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmluaXNoV29ya09yZGVyV2l0aG91dFNhdmluZ1dhc3RlKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzRW1yaUJhcmtvZHVHZWNlcmxpTWkgfHwgIXRoaXMucHJvZHVjdGlvbk9yZGVyIHx8IHRoaXMuaXNTYXZpbmcpIHtcclxuICAgICAgdGhpcy5mb2N1c1dvcmtPcmRlcigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb25maXJtYXRpb24ud2FybihcclxuICAgICAgJycsXHJcbiAgICAgICfEsMWfIGVtcmluaSBiaXRpcm1layBpc3RlZGnEn2luaXpkZW4gZW1pbiBtaXNpbml6PyAoRmlyZSBrYXlkZWRpbG1leWVjZWspJyxcclxuICAgICAge1xyXG4gICAgICAgIHllc1RleHQ6ICdFdmV0JyxcclxuICAgICAgICBjYW5jZWxUZXh0OiAnSGF5xLFyJ1xyXG4gICAgICB9XHJcbiAgICApLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XHJcbiAgICAgIGlmIChzdGF0dXMgIT09IENvbmZpcm1hdGlvbi5TdGF0dXMuY29uZmlybSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5pc1NhdmluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuc2VydmljZS5maW5pc2hXb3JrT3JkZXJXaXRob3V0U2F2aW5nV2FzdGUodGhpcy5wcm9kdWN0aW9uT3JkZXIuYWJzb2x1dGVFbnRyeSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzZnVsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uXHJcbiAgICAgICAgICAgICAgLnN1Y2Nlc3MoJycsICfEsMWfIGVtcmkgYml0aXJpbGRpLicsIHRoaXMub3B0aW9ucylcclxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xlYXJBbGwoKSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gcmVzcG9uc2U/LmVycm9ycz8ubGVuZ3RoXHJcbiAgICAgICAgICAgICAgPyByZXNwb25zZS5lcnJvcnMuam9pbignXFxuJylcclxuICAgICAgICAgICAgICA6ICfEsMWfIGVtcmkgYml0aXJtZSBpxZ9sZW1pIHPEsXJhc8SxbmRhIGJpciBoYXRhIG9sdcWfdHUuJztcclxuICAgICAgICAgICAgdGhpcy5zaG93RXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNob3dFcnJvcignxLDFnyBlbXJpIGJpdGlybWUgacWfbGVtaSBzxLFyYXPEsW5kYSBiaXIgaGF0YSBvbHXFn3R1LicpO1xyXG4gICAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGFicC1wYWdlIFticmVhZGNydW1iXT1cImZhbHNlXCI+XHJcbiAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyIGNsYXNzPVwiY29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cInBhZ2UtdGl0bGVcIj5cclxuICAgICAgICB7eyAnVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLlRpdGxlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2gzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IHB0LTIgZy0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTYgY29sLWxnLTNcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIGJ0bi1zbSB3LTEwMFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZSgpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNFbXJpQmFya29kdUdlY2VybGlNaSB8fCBpc1NhdmluZ1wiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zYXZlIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICB7eyAnVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLlNhdmUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02IGNvbC1sZy0zXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gdy0xMDBcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImZpbmlzaFdvcmtPcmRlckFuZFNhdmVXYXN0ZSgpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNFbXJpQmFya29kdUdlY2VybGlNaSB8fCBpc1NhdmluZ1wiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGVjay1kb3VibGUgbWUtMVwiPjwvaT5cclxuICAgICAgICAgIMSwxZ8gRW1yaW5pIEJpdGlyIHZlIEZpcmV5aSBLYXlkZXRcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTYgY29sLWxnLTNcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1pbmZvIGJ0bi1zbSB3LTEwMFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZmluaXNoV29ya09yZGVyV2l0aG91dFNhdmluZ1dhc3RlKClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0VtcmlCYXJrb2R1R2VjZXJsaU1pIHx8IGlzU2F2aW5nXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZWNrIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICDEsMWfIEVtcmluaSBCaXRpciB2ZSBGaXJleWkgS2F5ZGV0bWVcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTYgY29sLWxnLTNcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi13YXJuaW5nIGJ0bi1zbSB3LTEwMFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xlYXJBbGwoKVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJyb29tIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICB7eyAnVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLkNsZWFuJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIG10LTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgPGR4LW51bWJlci1ib3ggI2JhcmtvZE51bWFyYXNpUmVmIGNsYXNzPVwibWUtMVwiIHN0eWxlPVwid2lkdGg6MTAwJTtcIiBbbWluXT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLldvcmtPcmRlck5vJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiaXNFbXJpQmFya29kdVwiIChvbkVudGVyS2V5KT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2VhcmNoZUJhc2lsZGlNaSB8fCBpc0VtcmlCYXJrb2R1R2VjZXJsaU1pXCI+XHJcbiAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgIDxkeC1idXR0b24gc3R5bGU9XCJtYXJnaW4tdG9wOiA3LjVweDtcIiBpY29uPVwic2VhcmNoXCIgdHlwZT1cImRlZmF1bHRcIiAob25DbGljayk9XCJnZXRQcm9kdWN0aW9uT3JkZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2VhcmNoZUJhc2lsZGlNaSB8fCBpc0VtcmlCYXJrb2R1R2VjZXJsaU1pXCI+XHJcbiAgICAgICAgPC9keC1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPVwiaXNFbXJpQmFya29kdUdlY2VybGlNaVwiPlxyXG4gICAgICAgIDxkeC10ZXh0LWJveCBzdHlsZT1cIndpZHRoOjEwMCU7XCJcclxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6Qm9pbGVyWU1Qcm9kdWN0V2FzdGUuQ29udmV5b3JJbmZvcm1hdGlvbicgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJwcm9kdWN0aW9uT3JkZXIudV9IYXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgPGR4LXRleHQtYm94IHN0eWxlPVwid2lkdGg6MTAwJTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpCb2lsZXJZTVByb2R1Y3RXYXN0ZS5Qcm9kdWN0RGVzY3JpcHRpb24nIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicHJvZHVjdGlvbk9yZGVyLnByb2R1Y3REZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICA8ZHgtdGV4dC1ib3ggc3R5bGU9XCJ3aWR0aDoxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLkJhdGNoTnVtYmVyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cInltUHJvZHVjdC5iYXRjaE51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICA8ZHgtdGV4dC1ib3ggc3R5bGU9XCJ3aWR0aDoxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OkJvaWxlcllNUHJvZHVjdFdhc3RlLkl0ZW1Db2RlJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cInltUHJvZHVjdC5pdGVtQ29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICA8ZHgtbnVtYmVyLWJveCBzdHlsZT1cIndpZHRoOjEwMCU7XCJcclxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6Qm9pbGVyWU1Qcm9kdWN0V2FzdGUuUHJvZHVjdFF1YW50aXR5JyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cInltUHJvZHVjdC5iYXRjaFF1YW50aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+XHJcbiJdfQ==
@@ -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 { DxButtonModule, DxDataGridModule, DxNumberBoxModule, DxTextBoxModule } from 'devextreme-angular';
9
+ import { HitBoilerYMProductWasteRoutingModule } from './hit-boiler-ym-product-waste-routing.module';
10
+ import { HitBoilerYMProductWasteComponent } from "./hit-boiler-ym-product-waste.component";
11
+ import * as i0 from "@angular/core";
12
+ export class HitBoilerYMProductWasteModule {
13
+ }
14
+ HitBoilerYMProductWasteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBoilerYMProductWasteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ HitBoilerYMProductWasteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitBoilerYMProductWasteModule, declarations: [HitBoilerYMProductWasteComponent], imports: [HitBoilerYMProductWasteRoutingModule,
16
+ CoreModule,
17
+ ThemeSharedModule,
18
+ CommercialUiModule,
19
+ NgxValidateCoreModule,
20
+ NgbCollapseModule,
21
+ NgbDatepickerModule,
22
+ NgbDropdownModule,
23
+ PageModule,
24
+ DxTextBoxModule,
25
+ DxButtonModule,
26
+ DxDataGridModule,
27
+ DxNumberBoxModule] });
28
+ HitBoilerYMProductWasteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBoilerYMProductWasteModule, imports: [HitBoilerYMProductWasteRoutingModule,
29
+ CoreModule,
30
+ ThemeSharedModule,
31
+ CommercialUiModule,
32
+ NgxValidateCoreModule,
33
+ NgbCollapseModule,
34
+ NgbDatepickerModule,
35
+ NgbDropdownModule,
36
+ PageModule,
37
+ DxTextBoxModule,
38
+ DxButtonModule,
39
+ DxDataGridModule,
40
+ DxNumberBoxModule] });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitBoilerYMProductWasteModule, decorators: [{
42
+ type: NgModule,
43
+ args: [{
44
+ declarations: [HitBoilerYMProductWasteComponent],
45
+ imports: [
46
+ HitBoilerYMProductWasteRoutingModule,
47
+ CoreModule,
48
+ ThemeSharedModule,
49
+ CommercialUiModule,
50
+ NgxValidateCoreModule,
51
+ NgbCollapseModule,
52
+ NgbDatepickerModule,
53
+ NgbDropdownModule,
54
+ PageModule,
55
+ DxTextBoxModule,
56
+ DxButtonModule,
57
+ DxDataGridModule,
58
+ DxNumberBoxModule,
59
+ ],
60
+ }]
61
+ }] });
62
+ export function loadHitBoilerYMProductWasteAsChild() {
63
+ return Promise.resolve(HitBoilerYMProductWasteModule);
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWJvaWxlci15bS1wcm9kdWN0LXdhc3RlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VyZXRpbS15b25ldGltaS9zcmMvbGliL2NvbXBvbmVudHMvaGl0LWJvaWxlci15bS1wcm9kdWN0LXdhc3RlL2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3JHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3hHLE9BQU8sRUFBQyxvQ0FBb0MsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLHlDQUF5QyxDQUFDOztBQW9CekYsTUFBTSxPQUFPLDZCQUE2Qjs7MEhBQTdCLDZCQUE2QjsySEFBN0IsNkJBQTZCLGlCQWpCekIsZ0NBQWdDLGFBRTdDLG9DQUFvQztRQUNwQyxVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixxQkFBcUI7UUFDckIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsVUFBVTtRQUNWLGVBQWU7UUFDZixjQUFjO1FBQ2QsZ0JBQWdCO1FBQ2hCLGlCQUFpQjsySEFHUiw2QkFBNkIsWUFmdEMsb0NBQW9DO1FBQ3BDLFVBQVU7UUFDVixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixVQUFVO1FBQ1YsZUFBZTtRQUNmLGNBQWM7UUFDZCxnQkFBZ0I7UUFDaEIsaUJBQWlCOzJGQUdSLDZCQUE2QjtrQkFsQnpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZ0NBQWdDLENBQUM7b0JBQ2hELE9BQU8sRUFBRTt3QkFDUCxvQ0FBb0M7d0JBQ3BDLFVBQVU7d0JBQ1YsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsVUFBVTt3QkFDVixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixpQkFBaUI7cUJBQ2xCO2lCQUNGOztBQUlELE1BQU0sVUFBVSxrQ0FBa0M7SUFDaEQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDLENBQUM7QUFDeEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29yZU1vZHVsZX0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHtUaGVtZVNoYXJlZE1vZHVsZX0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtOZ2JDb2xsYXBzZU1vZHVsZSwgTmdiRGF0ZXBpY2tlck1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGV9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHtOZ3hWYWxpZGF0ZUNvcmVNb2R1bGV9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XHJcbmltcG9ydCB7Q29tbWVyY2lhbFVpTW9kdWxlfSBmcm9tICdAdm9sby9hYnAuY29tbWVyY2lhbC5uZy51aSc7XHJcbmltcG9ydCB7UGFnZU1vZHVsZX0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL3BhZ2UnO1xyXG5pbXBvcnQge0R4QnV0dG9uTW9kdWxlLCBEeERhdGFHcmlkTW9kdWxlLCBEeE51bWJlckJveE1vZHVsZSwgRHhUZXh0Qm94TW9kdWxlfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQge0hpdEJvaWxlcllNUHJvZHVjdFdhc3RlUm91dGluZ01vZHVsZX0gZnJvbSAnLi9oaXQtYm9pbGVyLXltLXByb2R1Y3Qtd2FzdGUtcm91dGluZy5tb2R1bGUnO1xyXG5pbXBvcnQge0hpdEJvaWxlcllNUHJvZHVjdFdhc3RlQ29tcG9uZW50fSBmcm9tIFwiLi9oaXQtYm9pbGVyLXltLXByb2R1Y3Qtd2FzdGUuY29tcG9uZW50XCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0hpdEJvaWxlcllNUHJvZHVjdFdhc3RlQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBIaXRCb2lsZXJZTVByb2R1Y3RXYXN0ZVJvdXRpbmdNb2R1bGUsXHJcbiAgICBDb3JlTW9kdWxlLFxyXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXHJcbiAgICBDb21tZXJjaWFsVWlNb2R1bGUsXHJcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUsXHJcbiAgICBOZ2JDb2xsYXBzZU1vZHVsZSxcclxuICAgIE5nYkRhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcclxuICAgIFBhZ2VNb2R1bGUsXHJcbiAgICBEeFRleHRCb3hNb2R1bGUsXHJcbiAgICBEeEJ1dHRvbk1vZHVsZSxcclxuICAgIER4RGF0YUdyaWRNb2R1bGUsXHJcbiAgICBEeE51bWJlckJveE1vZHVsZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0Qm9pbGVyWU1Qcm9kdWN0V2FzdGVNb2R1bGUge1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZEhpdEJvaWxlcllNUHJvZHVjdFdhc3RlQXNDaGlsZCgpIHtcclxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKEhpdEJvaWxlcllNUHJvZHVjdFdhc3RlTW9kdWxlKTtcclxufVxyXG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ import { HitComponentWastageComponent } from './hit-component-wastage.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ const routes = [
7
+ {
8
+ path: '',
9
+ component: HitComponentWastageComponent,
10
+ },
11
+ ];
12
+ export class HitComponentWastageRoutingModule {
13
+ }
14
+ HitComponentWastageRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitComponentWastageRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ HitComponentWastageRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitComponentWastageRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
16
+ HitComponentWastageRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitComponentWastageRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitComponentWastageRoutingModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ imports: [RouterModule.forChild(routes)],
21
+ exports: [RouterModule],
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWNvbXBvbmVudC13YXN0YWdlLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvY29tcG9uZW50cy9oaXQtY29tcG9uZW50LXdhc3RhZ2UvaGl0LWNvbXBvbmVudC13YXN0YWdlLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7QUFFakYsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSw0QkFBNEI7S0FDeEM7Q0FDRixDQUFDO0FBTUYsTUFBTSxPQUFPLGdDQUFnQzs7NkhBQWhDLGdDQUFnQzs4SEFBaEMsZ0NBQWdDLHdDQUZqQyxZQUFZOzhIQUVYLGdDQUFnQyxZQUhqQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzJGQUVYLGdDQUFnQztrQkFKNUMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBIaXRDb21wb25lbnRXYXN0YWdlQ29tcG9uZW50IH0gZnJvbSAnLi9oaXQtY29tcG9uZW50LXdhc3RhZ2UuY29tcG9uZW50JztcclxuXHJcbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xyXG4gIHtcclxuICAgIHBhdGg6ICcnLFxyXG4gICAgY29tcG9uZW50OiBIaXRDb21wb25lbnRXYXN0YWdlQ29tcG9uZW50LFxyXG4gIH0sXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXHJcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRDb21wb25lbnRXYXN0YWdlUm91dGluZ01vZHVsZSB7fVxyXG4iXX0=