@hitsoft/uretim-yonetimi 1.0.28 → 1.0.29

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 +151 -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 +236 -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 +319 -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 +196 -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 +27 -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 +1440 -98
  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 +1421 -98
  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 +35 -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 +38 -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 +39 -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 +35 -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 +14 -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 +41 -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,196 @@
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../hit-proxy/hit-filling-receipt-from-production/hit-filling-receipt-from-production.service";
4
+ import * as i2 from "@abp/ng.theme.shared";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "@abp/ng.components/page";
7
+ import * as i5 from "devextreme-angular";
8
+ import * as i6 from "devextreme-angular/ui/radio-group";
9
+ export class HitFillingReceiptFromProductionComponent {
10
+ constructor(service, confirmation, ngZone) {
11
+ this.service = service;
12
+ this.confirmation = confirmation;
13
+ this.ngZone = ngZone;
14
+ this.isLoading = false;
15
+ this.isWorkOrderLoaded = false;
16
+ this.workOrderInfo = null;
17
+ // Pallet controls
18
+ this.paletTipi = 'TAM'; // TAM or KISMI
19
+ this.paletTipleri = ['TAM', 'KISMI'];
20
+ this.koliAdet = null;
21
+ this.toplamMiktar = 0;
22
+ }
23
+ ngOnInit() {
24
+ // Initialize
25
+ }
26
+ ngAfterViewInit() {
27
+ this.focusOnIsEmriNo();
28
+ }
29
+ async getProductionOrder() {
30
+ if (!this.isEmriNo) {
31
+ return;
32
+ }
33
+ this.isLoading = true;
34
+ this.isWorkOrderLoaded = false;
35
+ this.service.getWorkOrderInfo(this.isEmriNo).subscribe({
36
+ next: response => {
37
+ if (response?.isSuccessful && response.items) {
38
+ this.workOrderInfo = response.items;
39
+ this.isWorkOrderLoaded = true;
40
+ // Calculate default values for TAM pallet
41
+ this.calculateTotalQuantity();
42
+ }
43
+ this.isLoading = false;
44
+ },
45
+ error: e => {
46
+ this.isWorkOrderLoaded = false;
47
+ this.isLoading = false;
48
+ this.confirmation.status$.subscribe({
49
+ next: () => {
50
+ this.clearAll();
51
+ },
52
+ });
53
+ },
54
+ });
55
+ }
56
+ onPaletTipiChange() {
57
+ this.calculateTotalQuantity();
58
+ if (this.paletTipi === 'KISMI') {
59
+ setTimeout(() => {
60
+ this.nmbBoxKoliAdet?.instance.focus();
61
+ }, 100);
62
+ }
63
+ }
64
+ onKoliAdetChange() {
65
+ this.calculateTotalQuantity();
66
+ }
67
+ calculateTotalQuantity() {
68
+ if (!this.workOrderInfo) {
69
+ this.toplamMiktar = 0;
70
+ return;
71
+ }
72
+ const salPackUn = this.workOrderInfo.salPackUn || 0;
73
+ if (this.paletTipi === 'TAM') {
74
+ // Tam Palet: Pallet height × Pieces per box
75
+ const paletYukseklik = this.workOrderInfo.u_DKpaletyuseklik || 0;
76
+ this.toplamMiktar = paletYukseklik * salPackUn;
77
+ }
78
+ else {
79
+ // Kısmi Palet: Koli count × Pieces per box
80
+ const koliAdet = this.koliAdet || 0;
81
+ this.toplamMiktar = koliAdet * salPackUn;
82
+ }
83
+ }
84
+ async save() {
85
+ if (!this.isEmriNo || !this.workOrderInfo || this.toplamMiktar <= 0) {
86
+ this.confirmation.warn('', 'Lütfen tüm alanları doldurun!', {
87
+ hideYesBtn: true,
88
+ cancelText: 'Kapat',
89
+ dismissible: false,
90
+ });
91
+ return;
92
+ }
93
+ // Check if completed quantity will exceed planned quantity
94
+ const remainingQty = this.workOrderInfo.plannedQty - this.workOrderInfo.cmpltQty;
95
+ if (this.toplamMiktar > remainingQty) {
96
+ this.confirmation.warn('', `Girilen miktar (${this.toplamMiktar}) kalan miktarı (${remainingQty}) aşıyor!`, {
97
+ hideYesBtn: true,
98
+ cancelText: 'Kapat',
99
+ dismissible: false,
100
+ });
101
+ return;
102
+ }
103
+ const saveData = {
104
+ docEntry: this.isEmriNo,
105
+ palletType: this.paletTipi,
106
+ koliCount: this.paletTipi === 'KISMI' ? this.koliAdet : null,
107
+ totalQuantity: this.toplamMiktar,
108
+ warehouseCode: this.workOrderInfo.warehouse,
109
+ batchNumber: '',
110
+ componentsToConsume: this.prepareComponentsToConsume()
111
+ };
112
+ this.isLoading = true;
113
+ this.service.createReceipt(saveData).subscribe({
114
+ next: response => {
115
+ if (response?.isSuccessful) {
116
+ this.confirmation.success('', 'Üretimden giriş başarıyla gerçekleştirildi!', {
117
+ hideYesBtn: true,
118
+ cancelText: 'Kapat',
119
+ dismissible: false,
120
+ });
121
+ this.clearAll();
122
+ }
123
+ this.isLoading = false;
124
+ },
125
+ error: e => {
126
+ this.isLoading = false;
127
+ },
128
+ });
129
+ }
130
+ prepareComponentsToConsume() {
131
+ if (!this.workOrderInfo || !this.workOrderInfo.lines) {
132
+ return [];
133
+ }
134
+ const components = [];
135
+ const itemCode = this.workOrderInfo.itemCode;
136
+ // Determine if this is YM or 151* product
137
+ const isYM = itemCode.startsWith('YM');
138
+ const is151 = itemCode.startsWith('151');
139
+ // Get controlled lines (YM/151* items marked with U_Kontrol='E')
140
+ const controlledLines = this.workOrderInfo.lines.filter(line => line.isControlled && line.batchNumber);
141
+ // For YM/151* products, consume by lot from control screen
142
+ for (const line of controlledLines) {
143
+ const remainingQty = line.plannedQty - line.issuedQty;
144
+ if (remainingQty > 0) {
145
+ components.push({
146
+ itemCode: line.itemCode,
147
+ quantity: remainingQty,
148
+ warehouseCode: line.warehouse,
149
+ batchNumber: line.batchNumber,
150
+ baseLine: line.lineNum
151
+ });
152
+ }
153
+ }
154
+ // For other components, use "Teyit sonrası otomatik çekme" logic
155
+ // (This would be handled by the backend with FIFO for batch/serial items)
156
+ return components;
157
+ }
158
+ clearAll() {
159
+ this.isWorkOrderLoaded = false;
160
+ this.isEmriNo = null;
161
+ this.workOrderInfo = null;
162
+ this.paletTipi = 'TAM';
163
+ this.koliAdet = null;
164
+ this.toplamMiktar = 0;
165
+ this.focusOnIsEmriNo();
166
+ }
167
+ get isSaveButtonDisabled() {
168
+ return !this.isEmriNo ||
169
+ !this.workOrderInfo ||
170
+ this.toplamMiktar <= 0 ||
171
+ (this.paletTipi === 'KISMI' && (!this.koliAdet || this.koliAdet <= 0));
172
+ }
173
+ focusOnIsEmriNo() {
174
+ this.ngZone.run(() => {
175
+ setTimeout(() => {
176
+ this.nmbBoxIsEmriNo?.instance.focus();
177
+ }, 0);
178
+ });
179
+ }
180
+ }
181
+ HitFillingReceiptFromProductionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFillingReceiptFromProductionComponent, deps: [{ token: i1.HitFillingReceiptFromProductionService }, { token: i2.ConfirmationService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
182
+ HitFillingReceiptFromProductionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitFillingReceiptFromProductionComponent, selector: "lib-hit-filling-receipt-from-production", viewQueries: [{ propertyName: "nmbBoxIsEmriNo", first: true, predicate: ["isEmriNoRef"], descendants: true }, { propertyName: "radioPaletTipi", first: true, predicate: ["paletTipiRef"], descendants: true }, { propertyName: "nmbBoxKoliAdet", first: true, predicate: ["koliAdetRef"], 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 \u00DCretimden Giri\u015F\r\n </h3>\r\n </div>\r\n <div class=\"row text-lg-end pt-2\">\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-success btn-sm\" type=\"button\" (click)=\"save()\" [disabled]=\"isSaveButtonDisabled\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u00DCretimden Giri\u015F Yap\r\n </button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-warning btn-sm\" type=\"button\" (click)=\"clearAll()\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n Temizle\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\" style=\"height: calc(100vh - 241px); overflow: auto;\">\r\n <!-- Work Order Input -->\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #isEmriNoRef \r\n class=\"me-1\" \r\n style=\"width:100%;\"\r\n label=\"\u0130\u015F Emri No\"\r\n [(value)]=\"isEmriNo\"\r\n (onChange)=\"getProductionOrder()\" \r\n (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"isWorkOrderLoaded\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" \r\n icon=\"search\" \r\n type=\"default\" \r\n (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"isWorkOrderLoaded\">\r\n </dx-button>\r\n </div>\r\n\r\n <!-- Work Order Information -->\r\n <div class=\"mt-3\" *ngIf=\"isWorkOrderLoaded && workOrderInfo\">\r\n <!-- Product Info -->\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <dx-text-box \r\n label=\"\u00DCr\u00FCn Kodu\" \r\n [(value)]=\"workOrderInfo.itemCode\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <dx-text-box \r\n label=\"\u00DCr\u00FCn Ad\u0131\" \r\n [(value)]=\"workOrderInfo.itemName\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row mt-2\">\r\n <div class=\"col-md-4\">\r\n <dx-number-box \r\n label=\"Planlanan Miktar\" \r\n [(value)]=\"workOrderInfo.plannedQty\" \r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <dx-number-box \r\n label=\"Tamamlanan Miktar\" \r\n [(value)]=\"workOrderInfo.cmpltQty\" \r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <dx-text-box \r\n label=\"Depo\" \r\n [(value)]=\"workOrderInfo.warehouse\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!-- Pallet Type Selection -->\r\n <div class=\"row mt-3\">\r\n <div class=\"col-md-12\">\r\n <dx-radio-group #paletTipiRef\r\n [items]=\"paletTipleri\"\r\n layout=\"horizontal\"\r\n [(value)]=\"paletTipi\"\r\n (onValueChanged)=\"onPaletTipiChange()\">\r\n </dx-radio-group>\r\n </div>\r\n </div>\r\n\r\n <!-- Koli Count for KISMI Pallet -->\r\n <div class=\"row mt-2\" *ngIf=\"paletTipi === 'KISMI'\">\r\n <div class=\"col-md-6\">\r\n <dx-number-box #koliAdetRef\r\n label=\"Koli Adedi\"\r\n [(value)]=\"koliAdet\"\r\n (onValueChanged)=\"onKoliAdetChange()\"\r\n [min]=\"1\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n\r\n <!-- Calculated Total Quantity -->\r\n <div class=\"row mt-2\">\r\n <div class=\"col-md-6\">\r\n <dx-number-box \r\n label=\"Toplam Miktar (Adet)\"\r\n [(value)]=\"toplamMiktar\"\r\n [disabled]=\"true\"\r\n [stylingMode]=\"'filled'\">\r\n </dx-number-box>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <dx-number-box \r\n label=\"Koli \u0130\u00E7i Adet\"\r\n [(value)]=\"workOrderInfo.salPackUn\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n\r\n <!-- Quality Status Info -->\r\n <div class=\"row mt-2\" *ngIf=\"workOrderInfo.u_KaliteDurumu\">\r\n <div class=\"col-md-12\">\r\n <div class=\"alert alert-info\" role=\"alert\">\r\n <strong>Kalite Durumu:</strong> {{ workOrderInfo.u_KaliteDurumu }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [".page-title{margin:0;padding:0}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i4.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i5.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: i5.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: "component", type: i5.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: i6.DxRadioGroupComponent, selector: "dx-radio-group", inputs: ["accessKey", "activeStateEnabled", "dataSource", "disabled", "displayExpr", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "isValid", "items", "itemTemplate", "layout", "name", "readOnly", "rtlEnabled", "tabIndex", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueExpr", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "dataSourceChange", "disabledChange", "displayExprChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "isValidChange", "itemsChange", "itemTemplateChange", "layoutChange", "nameChange", "readOnlyChange", "rtlEnabledChange", "tabIndexChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueExprChange", "visibleChange", "widthChange", "onBlur"] }] });
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFillingReceiptFromProductionComponent, decorators: [{
184
+ type: Component,
185
+ args: [{ selector: 'lib-hit-filling-receipt-from-production', 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 \u00DCretimden Giri\u015F\r\n </h3>\r\n </div>\r\n <div class=\"row text-lg-end pt-2\">\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-success btn-sm\" type=\"button\" (click)=\"save()\" [disabled]=\"isSaveButtonDisabled\">\r\n <i class=\"fa fa-check me-1\"></i>\r\n \u00DCretimden Giri\u015F Yap\r\n </button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"btn btn-warning btn-sm\" type=\"button\" (click)=\"clearAll()\">\r\n <i class=\"fa fa-broom me-1\"></i>\r\n Temizle\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\" style=\"height: calc(100vh - 241px); overflow: auto;\">\r\n <!-- Work Order Input -->\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box #isEmriNoRef \r\n class=\"me-1\" \r\n style=\"width:100%;\"\r\n label=\"\u0130\u015F Emri No\"\r\n [(value)]=\"isEmriNo\"\r\n (onChange)=\"getProductionOrder()\" \r\n (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"isWorkOrderLoaded\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" \r\n icon=\"search\" \r\n type=\"default\" \r\n (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"isWorkOrderLoaded\">\r\n </dx-button>\r\n </div>\r\n\r\n <!-- Work Order Information -->\r\n <div class=\"mt-3\" *ngIf=\"isWorkOrderLoaded && workOrderInfo\">\r\n <!-- Product Info -->\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <dx-text-box \r\n label=\"\u00DCr\u00FCn Kodu\" \r\n [(value)]=\"workOrderInfo.itemCode\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <dx-text-box \r\n label=\"\u00DCr\u00FCn Ad\u0131\" \r\n [(value)]=\"workOrderInfo.itemName\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row mt-2\">\r\n <div class=\"col-md-4\">\r\n <dx-number-box \r\n label=\"Planlanan Miktar\" \r\n [(value)]=\"workOrderInfo.plannedQty\" \r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <dx-number-box \r\n label=\"Tamamlanan Miktar\" \r\n [(value)]=\"workOrderInfo.cmpltQty\" \r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <dx-text-box \r\n label=\"Depo\" \r\n [(value)]=\"workOrderInfo.warehouse\" \r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n </div>\r\n </div>\r\n\r\n <!-- Pallet Type Selection -->\r\n <div class=\"row mt-3\">\r\n <div class=\"col-md-12\">\r\n <dx-radio-group #paletTipiRef\r\n [items]=\"paletTipleri\"\r\n layout=\"horizontal\"\r\n [(value)]=\"paletTipi\"\r\n (onValueChanged)=\"onPaletTipiChange()\">\r\n </dx-radio-group>\r\n </div>\r\n </div>\r\n\r\n <!-- Koli Count for KISMI Pallet -->\r\n <div class=\"row mt-2\" *ngIf=\"paletTipi === 'KISMI'\">\r\n <div class=\"col-md-6\">\r\n <dx-number-box #koliAdetRef\r\n label=\"Koli Adedi\"\r\n [(value)]=\"koliAdet\"\r\n (onValueChanged)=\"onKoliAdetChange()\"\r\n [min]=\"1\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n\r\n <!-- Calculated Total Quantity -->\r\n <div class=\"row mt-2\">\r\n <div class=\"col-md-6\">\r\n <dx-number-box \r\n label=\"Toplam Miktar (Adet)\"\r\n [(value)]=\"toplamMiktar\"\r\n [disabled]=\"true\"\r\n [stylingMode]=\"'filled'\">\r\n </dx-number-box>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <dx-number-box \r\n label=\"Koli \u0130\u00E7i Adet\"\r\n [(value)]=\"workOrderInfo.salPackUn\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n\r\n <!-- Quality Status Info -->\r\n <div class=\"row mt-2\" *ngIf=\"workOrderInfo.u_KaliteDurumu\">\r\n <div class=\"col-md-12\">\r\n <div class=\"alert alert-info\" role=\"alert\">\r\n <strong>Kalite Durumu:</strong> {{ workOrderInfo.u_KaliteDurumu }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n", styles: [".page-title{margin:0;padding:0}\n"] }]
186
+ }], ctorParameters: function () { return [{ type: i1.HitFillingReceiptFromProductionService }, { type: i2.ConfirmationService }, { type: i0.NgZone }]; }, propDecorators: { nmbBoxIsEmriNo: [{
187
+ type: ViewChild,
188
+ args: ['isEmriNoRef', { static: false }]
189
+ }], radioPaletTipi: [{
190
+ type: ViewChild,
191
+ args: ['paletTipiRef', { static: false }]
192
+ }], nmbBoxKoliAdet: [{
193
+ type: ViewChild,
194
+ args: ['koliAdetRef', { static: false }]
195
+ }] } });
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvY29tcG9uZW50cy9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQWM3RCxNQUFNLE9BQU8sd0NBQXdDO0lBZ0JuRCxZQUNVLE9BQStDLEVBQy9DLFlBQWlDLEVBQ2pDLE1BQWM7UUFGZCxZQUFPLEdBQVAsT0FBTyxDQUF3QztRQUMvQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWJ4QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxrQkFBYSxHQUF3QixJQUFJLENBQUM7UUFFMUMsa0JBQWtCO1FBQ2xCLGNBQVMsR0FBVyxLQUFLLENBQUMsQ0FBQyxlQUFlO1FBQzFDLGlCQUFZLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEMsYUFBUSxHQUFXLElBQUksQ0FBQztRQUN4QixpQkFBWSxHQUFXLENBQUMsQ0FBQztJQU10QixDQUFDO0lBRUosUUFBUTtRQUNOLGFBQWE7SUFDZixDQUFDO0lBRUQs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b0tBK0lBOzJGRGpJYSx3Q0FBd0M7a0JBTHBELFNBQVM7K0JBQ0UseUNBQXlDO29MQUtOLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDRyxjQUFjO3NCQUEzRCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0MsY0FBYztzQkFBMUQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEeE51bWJlckJveENvbXBvbmVudCwgRHhSYWRpb0dyb3VwQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgXHJcbiAgSGl0RmlsbGluZ1JlY2VpcHRGcm9tUHJvZHVjdGlvblNlcnZpY2UsXHJcbiAgR2V0V29ya09yZGVySW5mb0R0byxcclxuICBXb3JrT3JkZXJMaW5lRHRvXHJcbn0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24uY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0RmlsbGluZ1JlY2VpcHRGcm9tUHJvZHVjdGlvbkNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnaXNFbXJpTm9SZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgbm1iQm94SXNFbXJpTm86IER4TnVtYmVyQm94Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3BhbGV0VGlwaVJlZicsIHsgc3RhdGljOiBmYWxzZSB9KSByYWRpb1BhbGV0VGlwaTogRHhSYWRpb0dyb3VwQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2tvbGlBZGV0UmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIG5tYkJveEtvbGlBZGV0OiBEeE51bWJlckJveENvbXBvbmVudDtcclxuXHJcbiAgaXNFbXJpTm86IG51bWJlcjtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1dvcmtPcmRlckxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHdvcmtPcmRlckluZm86IEdldFdvcmtPcmRlckluZm9EdG8gPSBudWxsO1xyXG4gIFxyXG4gIC8vIFBhbGxldCBjb250cm9sc1xyXG4gIHBhbGV0VGlwaTogc3RyaW5nID0gJ1RBTSc7IC8vIFRBTSBvciBLSVNNSVxyXG4gIHBhbGV0VGlwbGVyaSA9IFsnVEFNJywgJ0tJU01JJ107XHJcbiAga29saUFkZXQ6IG51bWJlciA9IG51bGw7XHJcbiAgdG9wbGFtTWlrdGFyOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2VydmljZTogSGl0RmlsbGluZ1JlY2VpcHRGcm9tUHJvZHVjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gSW5pdGlhbGl6ZVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5mb2N1c09uSXNFbXJpTm8oKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFByb2R1Y3Rpb25PcmRlcigpIHtcclxuICAgIGlmICghdGhpcy5pc0VtcmlObykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5pc1dvcmtPcmRlckxvYWRlZCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuc2VydmljZS5nZXRXb3JrT3JkZXJJbmZvKHRoaXMuaXNFbXJpTm8pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCAmJiByZXNwb25zZS5pdGVtcykge1xyXG4gICAgICAgICAgdGhpcy53b3JrT3JkZXJJbmZvID0gcmVzcG9uc2UuaXRlbXM7XHJcbiAgICAgICAgICB0aGlzLmlzV29ya09yZGVyTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIGRlZmF1bHQgdmFsdWVzIGZvciBUQU0gcGFsbGV0XHJcbiAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUXVhbnRpdHkoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNXb3JrT3JkZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLnN0YXR1cyQuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25QYWxldFRpcGlDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUXVhbnRpdHkoKTtcclxuICAgIFxyXG4gICAgaWYgKHRoaXMucGFsZXRUaXBpID09PSAnS0lTTUknKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubm1iQm94S29saUFkZXQ/Lmluc3RhbmNlLmZvY3VzKCk7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbktvbGlBZGV0Q2hhbmdlKCkge1xyXG4gICAgdGhpcy5jYWxjdWxhdGVUb3RhbFF1YW50aXR5KCk7XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVUb3RhbFF1YW50aXR5KCkge1xyXG4gICAgaWYgKCF0aGlzLndvcmtPcmRlckluZm8pIHtcclxuICAgICAgdGhpcy50b3BsYW1NaWt0YXIgPSAwO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2FsUGFja1VuID0gdGhpcy53b3JrT3JkZXJJbmZvLnNhbFBhY2tVbiB8fCAwO1xyXG4gICAgXHJcbiAgICBpZiAodGhpcy5wYWxldFRpcGkgPT09ICdUQU0nKSB7XHJcbiAgICAgIC8vIFRhbSBQYWxldDogUGFsbGV0IGhlaWdodCDDlyBQaWVjZXMgcGVyIGJveFxyXG4gICAgICBjb25zdCBwYWxldFl1a3Nla2xpayA9IHRoaXMud29ya09yZGVySW5mby51X0RLcGFsZXR5dXNla2xpayB8fCAwO1xyXG4gICAgICB0aGlzLnRvcGxhbU1pa3RhciA9IHBhbGV0WXVrc2VrbGlrICogc2FsUGFja1VuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gS8Sxc21pIFBhbGV0OiBLb2xpIGNvdW50IMOXIFBpZWNlcyBwZXIgYm94XHJcbiAgICAgIGNvbnN0IGtvbGlBZGV0ID0gdGhpcy5rb2xpQWRldCB8fCAwO1xyXG4gICAgICB0aGlzLnRvcGxhbU1pa3RhciA9IGtvbGlBZGV0ICogc2FsUGFja1VuO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgc2F2ZSgpIHtcclxuICAgIGlmICghdGhpcy5pc0VtcmlObyB8fCAhdGhpcy53b3JrT3JkZXJJbmZvIHx8IHRoaXMudG9wbGFtTWlrdGFyIDw9IDApIHtcclxuICAgICAgdGhpcy5jb25maXJtYXRpb24ud2FybignJywgJ0zDvHRmZW4gdMO8bSBhbGFubGFyxLEgZG9sZHVydW4hJywge1xyXG4gICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgY29tcGxldGVkIHF1YW50aXR5IHdpbGwgZXhjZWVkIHBsYW5uZWQgcXVhbnRpdHlcclxuICAgIGNvbnN0IHJlbWFpbmluZ1F0eSA9IHRoaXMud29ya09yZGVySW5mby5wbGFubmVkUXR5IC0gdGhpcy53b3JrT3JkZXJJbmZvLmNtcGx0UXR5O1xyXG4gICAgaWYgKHRoaXMudG9wbGFtTWlrdGFyID4gcmVtYWluaW5nUXR5KSB7XHJcbiAgICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oJycsIGBHaXJpbGVuIG1pa3RhciAoJHt0aGlzLnRvcGxhbU1pa3Rhcn0pIGthbGFuIG1pa3RhcsSxICgke3JlbWFpbmluZ1F0eX0pIGHFn8SxeW9yIWAsIHtcclxuICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNhdmVEYXRhID0ge1xyXG4gICAgICBkb2NFbnRyeTogdGhpcy5pc0VtcmlObyxcclxuICAgICAgcGFsbGV0VHlwZTogdGhpcy5wYWxldFRpcGksXHJcbiAgICAgIGtvbGlDb3VudDogdGhpcy5wYWxldFRpcGkgPT09ICdLSVNNSScgPyB0aGlzLmtvbGlBZGV0IDogbnVsbCxcclxuICAgICAgdG90YWxRdWFudGl0eTogdGhpcy50b3BsYW1NaWt0YXIsXHJcbiAgICAgIHdhcmVob3VzZUNvZGU6IHRoaXMud29ya09yZGVySW5mby53YXJlaG91c2UsXHJcbiAgICAgIGJhdGNoTnVtYmVyOiAnJywgLy8gQmF0Y2ggbnVtYmVyIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IFNBUFxyXG4gICAgICBjb21wb25lbnRzVG9Db25zdW1lOiB0aGlzLnByZXBhcmVDb21wb25lbnRzVG9Db25zdW1lKClcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZVJlY2VpcHQoc2F2ZURhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCkge1xyXG4gICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uc3VjY2VzcygnJywgJ8OccmV0aW1kZW4gZ2lyacWfIGJhxZ9hcsSxeWxhIGdlcsOnZWtsZcWfdGlyaWxkaSEnLCB7XHJcbiAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJlcGFyZUNvbXBvbmVudHNUb0NvbnN1bWUoKTogYW55W10ge1xyXG4gICAgaWYgKCF0aGlzLndvcmtPcmRlckluZm8gfHwgIXRoaXMud29ya09yZGVySW5mby5saW5lcykge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29tcG9uZW50cyA9IFtdO1xyXG4gICAgY29uc3QgaXRlbUNvZGUgPSB0aGlzLndvcmtPcmRlckluZm8uaXRlbUNvZGU7XHJcblxyXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHRoaXMgaXMgWU0gb3IgMTUxKiBwcm9kdWN0XHJcbiAgICBjb25zdCBpc1lNID0gaXRlbUNvZGUuc3RhcnRzV2l0aCgnWU0nKTtcclxuICAgIGNvbnN0IGlzMTUxID0gaXRlbUNvZGUuc3RhcnRzV2l0aCgnMTUxJyk7XHJcblxyXG4gICAgLy8gR2V0IGNvbnRyb2xsZWQgbGluZXMgKFlNLzE1MSogaXRlbXMgbWFya2VkIHdpdGggVV9Lb250cm9sPSdFJylcclxuICAgIGNvbnN0IGNvbnRyb2xsZWRMaW5lcyA9IHRoaXMud29ya09yZGVySW5mby5saW5lcy5maWx0ZXIobGluZSA9PiBcclxuICAgICAgbGluZS5pc0NvbnRyb2xsZWQgJiYgbGluZS5iYXRjaE51bWJlclxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBGb3IgWU0vMTUxKiBwcm9kdWN0cywgY29uc3VtZSBieSBsb3QgZnJvbSBjb250cm9sIHNjcmVlblxyXG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGNvbnRyb2xsZWRMaW5lcykge1xyXG4gICAgICBjb25zdCByZW1haW5pbmdRdHkgPSBsaW5lLnBsYW5uZWRRdHkgLSBsaW5lLmlzc3VlZFF0eTtcclxuICAgICAgaWYgKHJlbWFpbmluZ1F0eSA+IDApIHtcclxuICAgICAgICBjb21wb25lbnRzLnB1c2goe1xyXG4gICAgICAgICAgaXRlbUNvZGU6IGxpbmUuaXRlbUNvZGUsXHJcbiAgICAgICAgICBxdWFudGl0eTogcmVtYWluaW5nUXR5LFxyXG4gICAgICAgICAgd2FyZWhvdXNlQ29kZTogbGluZS53YXJlaG91c2UsXHJcbiAgICAgICAgICBiYXRjaE51bWJlcjogbGluZS5iYXRjaE51bWJlcixcclxuICAgICAgICAgIGJhc2VMaW5lOiBsaW5lLmxpbmVOdW1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEZvciBvdGhlciBjb21wb25lbnRzLCB1c2UgXCJUZXlpdCBzb25yYXPEsSBvdG9tYXRpayDDp2VrbWVcIiBsb2dpY1xyXG4gICAgLy8gKFRoaXMgd291bGQgYmUgaGFuZGxlZCBieSB0aGUgYmFja2VuZCB3aXRoIEZJRk8gZm9yIGJhdGNoL3NlcmlhbCBpdGVtcylcclxuXHJcbiAgICByZXR1cm4gY29tcG9uZW50cztcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsKCkge1xyXG4gICAgdGhpcy5pc1dvcmtPcmRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0VtcmlObyA9IG51bGw7XHJcbiAgICB0aGlzLndvcmtPcmRlckluZm8gPSBudWxsO1xyXG4gICAgdGhpcy5wYWxldFRpcGkgPSAnVEFNJztcclxuICAgIHRoaXMua29saUFkZXQgPSBudWxsO1xyXG4gICAgdGhpcy50b3BsYW1NaWt0YXIgPSAwO1xyXG4gICAgdGhpcy5mb2N1c09uSXNFbXJpTm8oKTtcclxuICB9XHJcblxyXG4gIGdldCBpc1NhdmVCdXR0b25EaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5pc0VtcmlObyB8fCBcclxuICAgICAgICAgICAhdGhpcy53b3JrT3JkZXJJbmZvIHx8IFxyXG4gICAgICAgICAgIHRoaXMudG9wbGFtTWlrdGFyIDw9IDAgfHxcclxuICAgICAgICAgICAodGhpcy5wYWxldFRpcGkgPT09ICdLSVNNSScgJiYgKCF0aGlzLmtvbGlBZGV0IHx8IHRoaXMua29saUFkZXQgPD0gMCkpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPbklzRW1yaU5vKCkge1xyXG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ubWJCb3hJc0VtcmlObz8uaW5zdGFuY2UuZm9jdXMoKTtcclxuICAgICAgfSwgMCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxhYnAtcGFnZSBbYnJlYWRjcnVtYl09XCJmYWxzZVwiPlxyXG4gIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciBjbGFzcz1cImNvbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJwYWdlLXRpdGxlXCI+XHJcbiAgICAgICAgw5xyZXRpbWRlbiBHaXJpxZ9cclxuICAgICAgPC9oMz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyB0ZXh0LWxnLWVuZCBwdC0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwiaXNTYXZlQnV0dG9uRGlzYWJsZWRcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2sgbWUtMVwiPjwvaT5cclxuICAgICAgICAgIMOccmV0aW1kZW4gR2lyacWfIFlhcFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4td2FybmluZyBidG4tc21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsZWFyQWxsKClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYnJvb20gbWUtMVwiPjwvaT5cclxuICAgICAgICAgIFRlbWl6bGVcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxyXG4gIFxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIG10LTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIiBzdHlsZT1cImhlaWdodDogY2FsYygxMDB2aCAtIDI0MXB4KTsgb3ZlcmZsb3c6IGF1dG87XCI+XHJcbiAgICAgIDwhLS0gV29yayBPcmRlciBJbnB1dCAtLT5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgPGR4LW51bWJlci1ib3ggI2lzRW1yaU5vUmVmIFxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWUtMVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MTAwJTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwixLDFnyBFbXJpIE5vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJpc0VtcmlOb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG9uRW50ZXJLZXkpPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1dvcmtPcmRlckxvYWRlZFwiPlxyXG4gICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICA8ZHgtYnV0dG9uIHN0eWxlPVwibWFyZ2luLXRvcDogNy41cHg7XCIgXHJcbiAgICAgICAgICAgICAgICAgICBpY29uPVwic2VhcmNoXCIgXHJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwiZGVmYXVsdFwiIFxyXG4gICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzV29ya09yZGVyTG9hZGVkXCI+XHJcbiAgICAgICAgPC9keC1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBXb3JrIE9yZGVyIEluZm9ybWF0aW9uIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPVwiaXNXb3JrT3JkZXJMb2FkZWQgJiYgd29ya09yZGVySW5mb1wiPlxyXG4gICAgICAgIDwhLS0gUHJvZHVjdCBJbmZvIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZHgtdGV4dC1ib3ggXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCLDnHLDvG4gS29kdVwiIFxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cIndvcmtPcmRlckluZm8uaXRlbUNvZGVcIiBcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGR4LXRleHQtYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiw5xyw7xuIEFkxLFcIiBcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLml0ZW1OYW1lXCIgXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8ZHgtbnVtYmVyLWJveCBcclxuICAgICAgICAgICAgICBsYWJlbD1cIlBsYW5sYW5hbiBNaWt0YXJcIiBcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLnBsYW5uZWRRdHlcIiBcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8ZHgtbnVtYmVyLWJveCBcclxuICAgICAgICAgICAgICBsYWJlbD1cIlRhbWFtbGFuYW4gTWlrdGFyXCIgXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwid29ya09yZGVySW5mby5jbXBsdFF0eVwiIFxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgIDxkeC10ZXh0LWJveCBcclxuICAgICAgICAgICAgICBsYWJlbD1cIkRlcG9cIiBcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLndhcmVob3VzZVwiIFxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBQYWxsZXQgVHlwZSBTZWxlY3Rpb24gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxkeC1yYWRpby1ncm91cCAjcGFsZXRUaXBpUmVmXHJcbiAgICAgICAgICAgICAgW2l0ZW1zXT1cInBhbGV0VGlwbGVyaVwiXHJcbiAgICAgICAgICAgICAgbGF5b3V0PVwiaG9yaXpvbnRhbFwiXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicGFsZXRUaXBpXCJcclxuICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwib25QYWxldFRpcGlDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICA8L2R4LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gS29saSBDb3VudCBmb3IgS0lTTUkgUGFsbGV0IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMlwiICpuZ0lmPVwicGFsZXRUaXBpID09PSAnS0lTTUknXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGR4LW51bWJlci1ib3ggI2tvbGlBZGV0UmVmXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJLb2xpIEFkZWRpXCJcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJrb2xpQWRldFwiXHJcbiAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIm9uS29saUFkZXRDaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgW21pbl09XCIxXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIENhbGN1bGF0ZWQgVG90YWwgUXVhbnRpdHkgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0yXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGR4LW51bWJlci1ib3ggXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJUb3BsYW0gTWlrdGFyIChBZGV0KVwiXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwidG9wbGFtTWlrdGFyXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxpbmdNb2RlXT1cIidmaWxsZWQnXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkeC1udW1iZXItYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiS29saSDEsMOnaSBBZGV0XCJcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLnNhbFBhY2tVblwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gUXVhbGl0eSBTdGF0dXMgSW5mbyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTJcIiAqbmdJZj1cIndvcmtPcmRlckluZm8udV9LYWxpdGVEdXJ1bXVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIiByb2xlPVwiYWxlcnRcIj5cclxuICAgICAgICAgICAgICA8c3Ryb25nPkthbGl0ZSBEdXJ1bXU6PC9zdHJvbmc+IHt7IHdvcmtPcmRlckluZm8udV9LYWxpdGVEdXJ1bXUgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9hYnAtcGFnZT5cclxuIl19
@@ -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 { HitFillingReceiptFromProductionComponent } from './hit-filling-receipt-from-production.component';
9
+ import { HitFillingReceiptFromProductionRoutingModule } from './hit-filling-receipt-from-production-routing.module';
10
+ import { DxButtonModule, DxNumberBoxModule, DxTextBoxModule, DxRadioGroupModule } from 'devextreme-angular';
11
+ import * as i0 from "@angular/core";
12
+ export class HitFillingReceiptFromProductionModule {
13
+ }
14
+ HitFillingReceiptFromProductionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFillingReceiptFromProductionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ HitFillingReceiptFromProductionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitFillingReceiptFromProductionModule, declarations: [HitFillingReceiptFromProductionComponent], imports: [HitFillingReceiptFromProductionRoutingModule,
16
+ CoreModule,
17
+ ThemeSharedModule,
18
+ CommercialUiModule,
19
+ NgxValidateCoreModule,
20
+ NgbCollapseModule,
21
+ NgbDatepickerModule,
22
+ NgbDropdownModule,
23
+ PageModule,
24
+ DxButtonModule,
25
+ DxNumberBoxModule,
26
+ DxTextBoxModule,
27
+ DxRadioGroupModule] });
28
+ HitFillingReceiptFromProductionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFillingReceiptFromProductionModule, imports: [HitFillingReceiptFromProductionRoutingModule,
29
+ CoreModule,
30
+ ThemeSharedModule,
31
+ CommercialUiModule,
32
+ NgxValidateCoreModule,
33
+ NgbCollapseModule,
34
+ NgbDatepickerModule,
35
+ NgbDropdownModule,
36
+ PageModule,
37
+ DxButtonModule,
38
+ DxNumberBoxModule,
39
+ DxTextBoxModule,
40
+ DxRadioGroupModule] });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitFillingReceiptFromProductionModule, decorators: [{
42
+ type: NgModule,
43
+ args: [{
44
+ declarations: [HitFillingReceiptFromProductionComponent],
45
+ imports: [
46
+ HitFillingReceiptFromProductionRoutingModule,
47
+ CoreModule,
48
+ ThemeSharedModule,
49
+ CommercialUiModule,
50
+ NgxValidateCoreModule,
51
+ NgbCollapseModule,
52
+ NgbDatepickerModule,
53
+ NgbDropdownModule,
54
+ PageModule,
55
+ DxButtonModule,
56
+ DxNumberBoxModule,
57
+ DxTextBoxModule,
58
+ DxRadioGroupModule,
59
+ ],
60
+ }]
61
+ }] });
62
+ export function loadHitFillingReceiptFromProductionAsChild() {
63
+ return Promise.resolve(HitFillingReceiptFromProductionModule);
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvY29tcG9uZW50cy9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGlCQUFpQixHQUNsQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsNENBQTRDLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNwSCxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQW9CNUcsTUFBTSxPQUFPLHFDQUFxQzs7a0lBQXJDLHFDQUFxQzttSUFBckMscUNBQXFDLGlCQWpCakMsd0NBQXdDLGFBRXJELDRDQUE0QztRQUM1QyxVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixxQkFBcUI7UUFDckIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsVUFBVTtRQUNWLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsZUFBZTtRQUNmLGtCQUFrQjttSUFHVCxxQ0FBcUMsWUFmOUMsNENBQTRDO1FBQzVDLFVBQVU7UUFDVixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixVQUFVO1FBQ1YsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixlQUFlO1FBQ2Ysa0JBQWtCOzJGQUdULHFDQUFxQztrQkFsQmpELFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsd0NBQXdDLENBQUM7b0JBQ3hELE9BQU8sRUFBRTt3QkFDUCw0Q0FBNEM7d0JBQzVDLFVBQVU7d0JBQ1YsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsVUFBVTt3QkFDVixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixrQkFBa0I7cUJBQ25CO2lCQUNGOztBQUdELE1BQU0sVUFBVSwwQ0FBMEM7SUFDeEQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7QUFDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBOZ2JDb2xsYXBzZU1vZHVsZSxcclxuICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG59IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQ29tbWVyY2lhbFVpTW9kdWxlIH0gZnJvbSAnQHZvbG8vYWJwLmNvbW1lcmNpYWwubmcudWknO1xyXG5pbXBvcnQgeyBQYWdlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL3BhZ2UnO1xyXG5pbXBvcnQgeyBIaXRGaWxsaW5nUmVjZWlwdEZyb21Qcm9kdWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIaXRGaWxsaW5nUmVjZWlwdEZyb21Qcm9kdWN0aW9uUm91dGluZ01vZHVsZSB9IGZyb20gJy4vaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24tcm91dGluZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBEeEJ1dHRvbk1vZHVsZSwgRHhOdW1iZXJCb3hNb2R1bGUsIER4VGV4dEJveE1vZHVsZSwgRHhSYWRpb0dyb3VwTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbSGl0RmlsbGluZ1JlY2VpcHRGcm9tUHJvZHVjdGlvbkNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgSGl0RmlsbGluZ1JlY2VpcHRGcm9tUHJvZHVjdGlvblJvdXRpbmdNb2R1bGUsXHJcbiAgICBDb3JlTW9kdWxlLFxyXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXHJcbiAgICBDb21tZXJjaWFsVWlNb2R1bGUsXHJcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUsXHJcbiAgICBOZ2JDb2xsYXBzZU1vZHVsZSxcclxuICAgIE5nYkRhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcclxuICAgIFBhZ2VNb2R1bGUsXHJcbiAgICBEeEJ1dHRvbk1vZHVsZSxcclxuICAgIER4TnVtYmVyQm94TW9kdWxlLFxyXG4gICAgRHhUZXh0Qm94TW9kdWxlLFxyXG4gICAgRHhSYWRpb0dyb3VwTW9kdWxlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRGaWxsaW5nUmVjZWlwdEZyb21Qcm9kdWN0aW9uTW9kdWxlIHt9XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZEhpdEZpbGxpbmdSZWNlaXB0RnJvbVByb2R1Y3Rpb25Bc0NoaWxkKCkge1xyXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoSGl0RmlsbGluZ1JlY2VpcHRGcm9tUHJvZHVjdGlvbk1vZHVsZSk7XHJcbn1cclxuIl19