@hitsoft/uretim-yonetimi 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,32 +1,25 @@
1
1
  import { ListService } from '@abp/ng.core';
2
2
  import { DateAdapter } from '@abp/ng.theme.shared/extensions';
3
3
  import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
4
- import { Validators } from '@angular/forms';
5
4
  import { NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap';
6
- import { ReceiptFromProductionsBatchNumbers, ReceiptFromProductionsLines, ReceiptFromProductionsPostDto } from '../../hit-proxy/hit-receipt-from-productions/models';
5
+ import { GetProductionOrderDto, ReceiptFromProductionsBatchNumbers, ReceiptFromProductionsLines, ReceiptFromProductionsPostDto } from '../../hit-proxy/hit-receipt-from-productions/models';
7
6
  import { HitHelper } from "../../hit-proxy/models";
8
7
  import * as i0 from "@angular/core";
9
8
  import * as i1 from "@abp/ng.core";
10
9
  import * as i2 from "../../hit-proxy/hit-receipt-from-productions/hit-receipt-from-productions.service";
11
10
  import * as i3 from "@abp/ng.theme.shared";
12
- import * as i4 from "@angular/forms";
13
- import * as i5 from "../../hit-proxy/hit-production-orders/hit-production-orders.service";
14
- import * as i6 from "@angular/platform-browser";
15
- import * as i7 from "@angular/common";
16
- import * as i8 from "@ngx-validate/core";
17
- import * as i9 from "@abp/ng.components/page";
18
- import * as i10 from "devextreme-angular";
19
- import * as i11 from "devextreme-angular/ui/nested";
20
- import * as i12 from "devextreme-angular/ui/form";
21
- import * as i13 from "devextreme-angular/ui/load-indicator";
11
+ import * as i4 from "../../hit-proxy/hit-production-orders/hit-production-orders.service";
12
+ import * as i5 from "@angular/platform-browser";
13
+ import * as i6 from "@angular/common";
14
+ import * as i7 from "@abp/ng.components/page";
15
+ import * as i8 from "devextreme-angular";
22
16
  export class HitReceiptFromProductionsComponent {
23
- constructor(ngZone, list, track, service, confirmation, fb, productionOrdersService, sanitizer) {
17
+ constructor(ngZone, list, track, service, confirmation, productionOrdersService, sanitizer) {
24
18
  this.ngZone = ngZone;
25
19
  this.list = list;
26
20
  this.track = track;
27
21
  this.service = service;
28
22
  this.confirmation = confirmation;
29
- this.fb = fb;
30
23
  this.productionOrdersService = productionOrdersService;
31
24
  this.sanitizer = sanitizer;
32
25
  this.HitHelper = HitHelper;
@@ -36,34 +29,23 @@ export class HitReceiptFromProductionsComponent {
36
29
  cancelText: 'Kapat',
37
30
  dismissible: false,
38
31
  };
39
- this.getProductionOrderDtoIsLoading = "valid";
40
32
  this.isProductionOrderValid = false;
41
33
  this.showModal = false;
42
34
  this.pdfSrc = null;
43
- this.receiptFromProductionsPostDtoIsLoading = false;
35
+ this.productionOrder = new GetProductionOrderDto();
36
+ this.receiptFromProductionsPostDtoQuantity = 0;
44
37
  this.receiptFromProductionsPostDto = new ReceiptFromProductionsPostDto();
38
+ this.receiptFromProductionsPostDtoDocumentLine = new ReceiptFromProductionsLines();
39
+ this.receiptFromProductionsPostDtoBatchNumber = new ReceiptFromProductionsBatchNumbers();
45
40
  this.warehouses = [];
46
41
  }
47
42
  ngOnInit() {
48
- this.createForm();
49
43
  this.clearAll();
50
44
  this.getWarehouses();
51
45
  }
52
46
  ngAfterViewInit() {
53
47
  this.focusOnBarkodNumarasi();
54
48
  }
55
- createForm() {
56
- this.form = this.fb.group({
57
- stokKodu: ['', Validators.required],
58
- stokTanimi: ['', Validators.required],
59
- miktar: ['', Validators.required],
60
- toplanan: ['', Validators.required],
61
- kalan: ['', Validators.required],
62
- hedefDepo: ['', Validators.required],
63
- hedefDepoCode: ['', Validators.required],
64
- partiNo: ['', Validators.required],
65
- });
66
- }
67
49
  generateReport() {
68
50
  this.service.getBarcodeInfo(this.barkodNumarasi, this.newRecordDocEntry, 1).subscribe({
69
51
  next: response => {
@@ -88,27 +70,18 @@ export class HitReceiptFromProductionsComponent {
88
70
  }
89
71
  async getProductionOrder() {
90
72
  this.clearForm();
91
- this.getProductionOrderDtoIsLoading = "pending";
92
73
  this.isLoading = true;
93
74
  this.productionOrdersService.get(this.barkodNumarasi).subscribe({
94
75
  next: (result) => {
95
76
  if (result.isSuccessful) {
96
- this.form.patchValue({
97
- stokKodu: result.items.itemNo,
98
- stokTanimi: result.items.productDescription,
99
- miktar: result.items.plannedQuantity,
100
- toplanan: result.items.completedQuantity,
101
- kalan: result.items.plannedQuantity - result.items.completedQuantity,
102
- hedefDepo: result.items.warehouse,
103
- hedefDepoCode: result.items.warehouse,
104
- partiNo: result.items.u_trkBatch,
105
- });
106
- const filteredWarehouses = this.warehouses.filter(warehouse => warehouse.whsCode === result.items.warehouse);
107
- if (filteredWarehouses.length > 0) {
108
- this.form.patchValue({
109
- hedefDepo: filteredWarehouses[0].whsName,
110
- });
111
- }
77
+ this.productionOrder = result.items;
78
+ this.receiptFromProductionsPostDtoQuantity = result.items.plannedQuantity - result.items.completedQuantity;
79
+ this.receiptFromProductionsPostDtoDocumentLine.baseEntry = this.barkodNumarasi;
80
+ this.receiptFromProductionsPostDtoDocumentLine.baseType = 202;
81
+ this.receiptFromProductionsPostDtoDocumentLine.quantity = this.receiptFromProductionsPostDtoQuantity;
82
+ this.receiptFromProductionsPostDtoDocumentLine.warehouseCode = result.items.warehouse;
83
+ this.receiptFromProductionsPostDtoBatchNumber.batchNumber = result.items.u_trkBatch;
84
+ this.receiptFromProductionsPostDtoBatchNumber.quantity = this.receiptFromProductionsPostDtoQuantity;
112
85
  this.unitOfMeasure = result.items.unitOfMeasurement;
113
86
  this.isProductionOrderValid = true;
114
87
  this.focusOnToplananMiktar();
@@ -124,23 +97,15 @@ export class HitReceiptFromProductionsComponent {
124
97
  }
125
98
  }
126
99
  });
127
- this.getProductionOrderDtoIsLoading = "valid";
128
100
  this.isLoading = false;
129
101
  }
130
102
  async postReceiptFromProductions() {
131
103
  this.isLoading = true;
132
- this.receiptFromProductionsPostDtoIsLoading = true;
133
- this.receiptFromProductionsPostDto = new ReceiptFromProductionsPostDto();
134
- const line = new ReceiptFromProductionsLines();
135
- line.baseEntry = this.barkodNumarasi;
136
- line.baseType = 202;
137
- line.quantity = this.form.value.kalan;
138
- line.warehouseCode = this.form.value.hedefDepoCode;
139
- const batchNumber = new ReceiptFromProductionsBatchNumbers();
140
- batchNumber.batchNumber = this.form.value.u_trkBatch;
141
- batchNumber.quantity = this.form.value.kalan;
142
- line.batchNumbers = [batchNumber];
143
- this.receiptFromProductionsPostDto.documentLines = [line];
104
+ this.receiptFromProductionsPostDtoDocumentLine.batchNumbers = [this.receiptFromProductionsPostDtoBatchNumber];
105
+ this.receiptFromProductionsPostDto.documentLines = [this.receiptFromProductionsPostDtoDocumentLine];
106
+ console.log('documentLines', this.receiptFromProductionsPostDto.documentLines);
107
+ console.log('batchNumbers', this.receiptFromProductionsPostDtoDocumentLine.batchNumbers);
108
+ return;
144
109
  this.service.create(this.receiptFromProductionsPostDto).subscribe({
145
110
  next: (result) => {
146
111
  if (result.isSuccessful) {
@@ -161,7 +126,6 @@ export class HitReceiptFromProductionsComponent {
161
126
  });
162
127
  }
163
128
  });
164
- this.receiptFromProductionsPostDtoIsLoading = false;
165
129
  this.isLoading = false;
166
130
  }
167
131
  clearAll() {
@@ -169,10 +133,11 @@ export class HitReceiptFromProductionsComponent {
169
133
  this.clearForm();
170
134
  }
171
135
  clearForm() {
136
+ this.productionOrder = new GetProductionOrderDto();
137
+ this.receiptFromProductionsPostDto = new ReceiptFromProductionsPostDto();
138
+ this.receiptFromProductionsPostDtoDocumentLine = new ReceiptFromProductionsLines();
139
+ this.receiptFromProductionsPostDtoBatchNumber = new ReceiptFromProductionsBatchNumbers();
172
140
  this.unitOfMeasure = null;
173
- this.form.reset();
174
- this.form.markAsPristine();
175
- this.form.markAsUntouched();
176
141
  this.isProductionOrderValid = false;
177
142
  this.focusOnBarkodNumarasi();
178
143
  }
@@ -201,17 +166,25 @@ export class HitReceiptFromProductionsComponent {
201
166
  }, 0);
202
167
  });
203
168
  }
169
+ getWarehouseName(code) {
170
+ const match = this.warehouses.find(x => x.whsCode === code);
171
+ return match ? match.whsName : '';
172
+ }
173
+ quantityChanged(e) {
174
+ this.receiptFromProductionsPostDtoBatchNumber.quantity = e.value;
175
+ this.receiptFromProductionsPostDtoDocumentLine.quantity = e.value;
176
+ }
204
177
  }
205
- HitReceiptFromProductionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitReceiptFromProductionsComponent, deps: [{ token: i0.NgZone }, { token: i1.ListService }, { token: i1.TrackByService }, { token: i2.HitReceiptFromProductionsService }, { token: i3.ConfirmationService }, { token: i4.FormBuilder }, { token: i5.HitProductionOrdersService }, { token: i6.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
206
- HitReceiptFromProductionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitReceiptFromProductionsComponent, selector: "lib-hit-receipt-from-productions", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], viewQueries: [{ propertyName: "nmbBoxBarkodNumarasi", first: true, predicate: ["barkodNumarasiRef"], descendants: true }, { propertyName: "nmbBoxToplananMiktar", first: true, predicate: ["toplananMiktarRef"], descendants: true }], ngImport: i0, template: "<abp-page [breadcrumb]=\"false\" style=\"padding: 0;\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n {{ 'UretimYonetimi::ReceiptFromProductions.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row text-lg-end pt-2\">\r\n <div class=\"col-8\">\r\n <button class=\"btn btn-success btn-sm\" type=\"button\"\r\n (click)=\"postReceiptFromProductions()\"\r\n [disabled]=\"!isProductionOrderValid\">\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'UretimYonetimi::ReceiptFromProductions.Create' | abpLocalization }}\r\n </button>\r\n </div>\r\n <div class=\"col-4\">\r\n <button class=\"btn btn-warning btn-sm\" type=\"button\" (click)=\"clearAll()\">\r\n <i class=\"fa fa-broom me-1\" aria-hidden=\"true\"></i>\r\n {{ 'UretimYonetimi::ReceiptFromProductions.Clean' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div *ngIf=\"isLoading\">\r\n <dx-load-indicator [visible]=\"true\"></dx-load-indicator>\r\n </div>\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box class=\"me-1 w-100\"\r\n #barkodNumarasiRef\r\n [label]=\"'UretimYonetimi::ReceiptFromProductions.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"barkodNumarasi\"\r\n (onChange)=\"getProductionOrder()\"\r\n (onEnterKey)=\"getProductionOrder()\"\r\n [validationStatus]=\"getProductionOrderDtoIsLoading\"\r\n [disabled]=\"isProductionOrderValid\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\"\r\n (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"isProductionOrderValid\">\r\n </dx-button>\r\n </div>\r\n <form [formGroup]=\"form\" id=\"hit-order\" *ngIf=\"isProductionOrderValid\">\r\n <dx-form id=\"form\" labelLocation=\"top\">\r\n <dxi-item>\r\n <dx-text-box [formControlName]=\"'stokKodu'\" [label]=\"'UretimYonetimi::ReceiptFromProductions.StokCode' | abpLocalization\" [maxLength]=\"128\" [disabled]=\"true\">\r\n </dx-text-box>\r\n </dxi-item>\r\n\r\n <dxi-item>\r\n <dx-text-box [formControlName]=\"'stokTanimi'\" [label]=\"'UretimYonetimi::ReceiptFromProductions.StokDesc' | abpLocalization\" [maxLength]=\"128\" [disabled]=\"true\">\r\n </dx-text-box>\r\n </dxi-item>\r\n\r\n <dxi-item>\r\n <dx-text-box [formControlName]=\"'hedefDepo'\" [label]=\"'UretimYonetimi::ReceiptFromProductions.ToWhs' | abpLocalization\" [maxLength]=\"128\" [disabled]=\"true\">\r\n </dx-text-box>\r\n </dxi-item>\r\n\r\n <dxi-item>\r\n <dx-text-box [formControlName]=\"'partiNo'\" [label]=\"'UretimYonetimi::ReceiptFromProductions.BatchNumber' | abpLocalization\" [maxLength]=\"128\" [disabled]=\"true\">\r\n </dx-text-box>\r\n </dxi-item>\r\n\r\n <dxi-item>\r\n <dx-number-box [formControlName]=\"'miktar'\" [label]=\"'UretimYonetimi::ReceiptFromProductions.PlannedQty' | abpLocalization\"\r\n [format]=\"HitHelper.getMeasurementFormatted(unitOfMeasure)\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </dxi-item>\r\n\r\n <dxi-item>\r\n <dx-number-box [formControlName]=\"'toplanan'\" [label]=\"'UretimYonetimi::ReceiptFromProductions.CompletedQty' | abpLocalization\"\r\n [format]=\"HitHelper.getMeasurementFormatted(unitOfMeasure)\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </dxi-item>\r\n\r\n <dxi-item>\r\n <dx-number-box #toplananMiktarRef [formControlName]=\"'kalan'\" [label]=\"'UretimYonetimi::ReceiptFromProductions.Quantity' | abpLocalization\"\r\n [format]=\"HitHelper.getMeasurementFormatted(unitOfMeasure)\"\r\n [showSpinButtons]=\"true\" [min]=\"0\">\r\n </dx-number-box>\r\n </dxi-item>\r\n </dx-form>\r\n </form>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [(visible)]=\"showModal\" (appear)=\"generateReport()\" (disappear)=\"clearAll()\"> <ng-template #abpHeader>\r\n <h3>{{ 'UretimYonetimi::CreateBarcodes.BarcodePreview' | abpLocalization }}</h3>\r\n </ng-template> <ng-template #abpBody> <iframe *ngIf=\"pdfSrc\" [src]=\"pdfSrc\" width=\"100%\" height=\"300\"\r\n webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> </ng-template> <ng-template #abpFooter> <button type=\"button\"\r\n class=\"btn btn-secondary\" abpClose> {{ 'UretimYonetimi::CreateBarcodes.Close' | abpLocalization }} </button>\r\n </ng-template> \r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i8.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i8.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i9.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i9.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i10.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: i10.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: i11.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "titleTemplate", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "heightRatio", "widthRatio", "expanded", "hasItems", "id", "parentId"] }, { kind: "component", type: i12.DxFormComponent, selector: "dx-form", inputs: ["accessKey", "activeStateEnabled", "alignItemLabels", "alignItemLabelsInAllGroups", "colCount", "colCountByScreen", "customizeItem", "disabled", "elementAttr", "focusStateEnabled", "formData", "height", "hint", "hoverStateEnabled", "items", "labelLocation", "labelMode", "minColWidth", "optionalMark", "readOnly", "requiredMark", "requiredMessage", "rtlEnabled", "screenByWidth", "scrollingEnabled", "showColonAfterLabel", "showOptionalMark", "showRequiredMark", "showValidationSummary", "tabIndex", "validationGroup", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onEditorEnterKey", "onFieldDataChanged", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "alignItemLabelsChange", "alignItemLabelsInAllGroupsChange", "colCountChange", "colCountByScreenChange", "customizeItemChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formDataChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemsChange", "labelLocationChange", "labelModeChange", "minColWidthChange", "optionalMarkChange", "readOnlyChange", "requiredMarkChange", "requiredMessageChange", "rtlEnabledChange", "screenByWidthChange", "scrollingEnabledChange", "showColonAfterLabelChange", "showOptionalMarkChange", "showRequiredMarkChange", "showValidationSummaryChange", "tabIndexChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i13.DxLoadIndicatorComponent, selector: "dx-load-indicator", inputs: ["elementAttr", "height", "hint", "indicatorSrc", "rtlEnabled", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "elementAttrChange", "heightChange", "hintChange", "indicatorSrcChange", "rtlEnabledChange", "visibleChange", "widthChange"] }, { kind: "component", type: i10.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: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
178
+ HitReceiptFromProductionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitReceiptFromProductionsComponent, deps: [{ token: i0.NgZone }, { token: i1.ListService }, { token: i1.TrackByService }, { token: i2.HitReceiptFromProductionsService }, { token: i3.ConfirmationService }, { token: i4.HitProductionOrdersService }, { token: i5.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
179
+ HitReceiptFromProductionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitReceiptFromProductionsComponent, selector: "lib-hit-receipt-from-productions", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], viewQueries: [{ propertyName: "nmbBoxBarkodNumarasi", first: true, predicate: ["barkodNumarasiRef"], descendants: true }, { propertyName: "nmbBoxToplananMiktar", first: true, predicate: ["toplananMiktarRef"], descendants: true }], ngImport: i0, template: "<abp-page [breadcrumb]=\"false\" style=\"padding: 0;\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n {{ 'UretimYonetimi::ReceiptFromProductions.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row text-lg-end pt-2\">\r\n <div class=\"col-8\">\r\n <button class=\"btn btn-success btn-sm\" type=\"button\"\r\n (click)=\"postReceiptFromProductions()\"\r\n [disabled]=\"!isProductionOrderValid\">\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'UretimYonetimi::ReceiptFromProductions.Create' | abpLocalization }}\r\n </button>\r\n </div>\r\n <div class=\"col-4\">\r\n <button class=\"btn btn-warning btn-sm\" type=\"button\" (click)=\"clearAll()\">\r\n <i class=\"fa fa-broom me-1\" aria-hidden=\"true\"></i>\r\n {{ 'UretimYonetimi::ReceiptFromProductions.Clean' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box class=\"me-1 w-100\"\r\n #barkodNumarasiRef\r\n [label]=\"'UretimYonetimi::ReceiptFromProductions.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"barkodNumarasi\"\r\n (onChange)=\"getProductionOrder()\"\r\n (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"isProductionOrderValid\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\"\r\n (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"isProductionOrderValid\">\r\n </dx-button>\r\n </div>\r\n <div *ngIf=\"isProductionOrderValid\">\r\n <dx-text-box [label]=\"'UretimYonetimi::ReceiptFromProductions.StokCode' | abpLocalization\"\r\n [(value)]=\"productionOrder.itemNo\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n\r\n <dx-text-box [label]=\"'UretimYonetimi::ReceiptFromProductions.StokDesc' | abpLocalization\"\r\n [(value)]=\"productionOrder.productDescription\"\r\n [maxLength]=\"128\" [disabled]=\"true\">\r\n </dx-text-box>\r\n\r\n <dx-text-box [label]=\"'UretimYonetimi::ReceiptFromProductions.ToWhs' | abpLocalization\" [maxLength]=\"128\"\r\n [value]=\"getWarehouseName(receiptFromProductionsPostDtoDocumentLine.warehouseCode)\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n\r\n <dx-text-box [label]=\"'UretimYonetimi::ReceiptFromProductions.BatchNumber' | abpLocalization\"\r\n [(value)]=\"receiptFromProductionsPostDtoBatchNumber.batchNumber\"\r\n [maxLength]=\"128\" [disabled]=\"true\">\r\n </dx-text-box>\r\n\r\n <dx-number-box [label]=\"'UretimYonetimi::ReceiptFromProductions.PlannedQty' | abpLocalization\"\r\n [(value)]=\"productionOrder.plannedQuantity\"\r\n [format]=\"HitHelper.getMeasurementFormatted(unitOfMeasure)\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n\r\n <dx-number-box [label]=\"'UretimYonetimi::ReceiptFromProductions.CompletedQty' | abpLocalization\"\r\n [(value)]=\"productionOrder.completedQuantity\"\r\n [format]=\"HitHelper.getMeasurementFormatted(unitOfMeasure)\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n\r\n <dx-number-box [label]=\"'UretimYonetimi::ReceiptFromProductions.Quantity' | abpLocalization\"\r\n [(value)]=\"receiptFromProductionsPostDtoBatchNumber.quantity\"\r\n (onValueChanged)=\"quantityChanged($event)\"\r\n [format]=\"HitHelper.getMeasurementFormatted(unitOfMeasure)\"\r\n [showSpinButtons]=\"true\" [min]=\"0\" #toplananMiktarRef>\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [(visible)]=\"showModal\" (appear)=\"generateReport()\" (disappear)=\"clearAll()\">\r\n <ng-template #abpHeader>\r\n <h3>{{ 'UretimYonetimi::CreateBarcodes.BarcodePreview' | abpLocalization }}</h3>\r\n </ng-template>\r\n <ng-template #abpBody>\r\n <iframe *ngIf=\"pdfSrc\" [src]=\"pdfSrc\" width=\"100%\" height=\"300\"\r\n webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>\r\n </ng-template>\r\n <ng-template #abpFooter>\r\n <button type=\"button\"\r\n class=\"btn btn-secondary\" abpClose> {{ 'UretimYonetimi::CreateBarcodes.Close' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i7.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i7.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "component", type: i8.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i8.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: i8.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
207
180
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitReceiptFromProductionsComponent, decorators: [{
208
181
  type: Component,
209
- args: [{ selector: 'lib-hit-receipt-from-productions', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [breadcrumb]=\"false\" style=\"padding: 0;\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n {{ 'UretimYonetimi::ReceiptFromProductions.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row text-lg-end pt-2\">\r\n <div class=\"col-8\">\r\n <button class=\"btn btn-success btn-sm\" type=\"button\"\r\n (click)=\"postReceiptFromProductions()\"\r\n [disabled]=\"!isProductionOrderValid\">\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'UretimYonetimi::ReceiptFromProductions.Create' | abpLocalization }}\r\n </button>\r\n </div>\r\n <div class=\"col-4\">\r\n <button class=\"btn btn-warning btn-sm\" type=\"button\" (click)=\"clearAll()\">\r\n <i class=\"fa fa-broom me-1\" aria-hidden=\"true\"></i>\r\n {{ 'UretimYonetimi::ReceiptFromProductions.Clean' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div *ngIf=\"isLoading\">\r\n <dx-load-indicator [visible]=\"true\"></dx-load-indicator>\r\n </div>\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box class=\"me-1 w-100\"\r\n #barkodNumarasiRef\r\n [label]=\"'UretimYonetimi::ReceiptFromProductions.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"barkodNumarasi\"\r\n (onChange)=\"getProductionOrder()\"\r\n (onEnterKey)=\"getProductionOrder()\"\r\n [validationStatus]=\"getProductionOrderDtoIsLoading\"\r\n [disabled]=\"isProductionOrderValid\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\"\r\n (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"isProductionOrderValid\">\r\n </dx-button>\r\n </div>\r\n <form [formGroup]=\"form\" id=\"hit-order\" *ngIf=\"isProductionOrderValid\">\r\n <dx-form id=\"form\" labelLocation=\"top\">\r\n <dxi-item>\r\n <dx-text-box [formControlName]=\"'stokKodu'\" [label]=\"'UretimYonetimi::ReceiptFromProductions.StokCode' | abpLocalization\" [maxLength]=\"128\" [disabled]=\"true\">\r\n </dx-text-box>\r\n </dxi-item>\r\n\r\n <dxi-item>\r\n <dx-text-box [formControlName]=\"'stokTanimi'\" [label]=\"'UretimYonetimi::ReceiptFromProductions.StokDesc' | abpLocalization\" [maxLength]=\"128\" [disabled]=\"true\">\r\n </dx-text-box>\r\n </dxi-item>\r\n\r\n <dxi-item>\r\n <dx-text-box [formControlName]=\"'hedefDepo'\" [label]=\"'UretimYonetimi::ReceiptFromProductions.ToWhs' | abpLocalization\" [maxLength]=\"128\" [disabled]=\"true\">\r\n </dx-text-box>\r\n </dxi-item>\r\n\r\n <dxi-item>\r\n <dx-text-box [formControlName]=\"'partiNo'\" [label]=\"'UretimYonetimi::ReceiptFromProductions.BatchNumber' | abpLocalization\" [maxLength]=\"128\" [disabled]=\"true\">\r\n </dx-text-box>\r\n </dxi-item>\r\n\r\n <dxi-item>\r\n <dx-number-box [formControlName]=\"'miktar'\" [label]=\"'UretimYonetimi::ReceiptFromProductions.PlannedQty' | abpLocalization\"\r\n [format]=\"HitHelper.getMeasurementFormatted(unitOfMeasure)\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </dxi-item>\r\n\r\n <dxi-item>\r\n <dx-number-box [formControlName]=\"'toplanan'\" [label]=\"'UretimYonetimi::ReceiptFromProductions.CompletedQty' | abpLocalization\"\r\n [format]=\"HitHelper.getMeasurementFormatted(unitOfMeasure)\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n </dxi-item>\r\n\r\n <dxi-item>\r\n <dx-number-box #toplananMiktarRef [formControlName]=\"'kalan'\" [label]=\"'UretimYonetimi::ReceiptFromProductions.Quantity' | abpLocalization\"\r\n [format]=\"HitHelper.getMeasurementFormatted(unitOfMeasure)\"\r\n [showSpinButtons]=\"true\" [min]=\"0\">\r\n </dx-number-box>\r\n </dxi-item>\r\n </dx-form>\r\n </form>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [(visible)]=\"showModal\" (appear)=\"generateReport()\" (disappear)=\"clearAll()\"> <ng-template #abpHeader>\r\n <h3>{{ 'UretimYonetimi::CreateBarcodes.BarcodePreview' | abpLocalization }}</h3>\r\n </ng-template> <ng-template #abpBody> <iframe *ngIf=\"pdfSrc\" [src]=\"pdfSrc\" width=\"100%\" height=\"300\"\r\n webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> </ng-template> <ng-template #abpFooter> <button type=\"button\"\r\n class=\"btn btn-secondary\" abpClose> {{ 'UretimYonetimi::CreateBarcodes.Close' | abpLocalization }} </button>\r\n </ng-template> \r\n</abp-modal>\r\n" }]
210
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.ListService }, { type: i1.TrackByService }, { type: i2.HitReceiptFromProductionsService }, { type: i3.ConfirmationService }, { type: i4.FormBuilder }, { type: i5.HitProductionOrdersService }, { type: i6.DomSanitizer }]; }, propDecorators: { nmbBoxBarkodNumarasi: [{
182
+ args: [{ selector: 'lib-hit-receipt-from-productions', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [breadcrumb]=\"false\" style=\"padding: 0;\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"row\">\r\n <h3 class=\"page-title\">\r\n {{ 'UretimYonetimi::ReceiptFromProductions.Title' | abpLocalization }}\r\n </h3>\r\n </div>\r\n <div class=\"row text-lg-end pt-2\">\r\n <div class=\"col-8\">\r\n <button class=\"btn btn-success btn-sm\" type=\"button\"\r\n (click)=\"postReceiptFromProductions()\"\r\n [disabled]=\"!isProductionOrderValid\">\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'UretimYonetimi::ReceiptFromProductions.Create' | abpLocalization }}\r\n </button>\r\n </div>\r\n <div class=\"col-4\">\r\n <button class=\"btn btn-warning btn-sm\" type=\"button\" (click)=\"clearAll()\">\r\n <i class=\"fa fa-broom me-1\" aria-hidden=\"true\"></i>\r\n {{ 'UretimYonetimi::ReceiptFromProductions.Clean' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <div style=\"display: flex; align-items: center;\">\r\n <dx-number-box class=\"me-1 w-100\"\r\n #barkodNumarasiRef\r\n [label]=\"'UretimYonetimi::ReceiptFromProductions.WorkOrderNo' | abpLocalization\"\r\n [(value)]=\"barkodNumarasi\"\r\n (onChange)=\"getProductionOrder()\"\r\n (onEnterKey)=\"getProductionOrder()\"\r\n [disabled]=\"isProductionOrderValid\">\r\n </dx-number-box>\r\n <dx-button style=\"margin-top: 7.5px;\" icon=\"search\" type=\"default\"\r\n (onClick)=\"getProductionOrder()\"\r\n [disabled]=\"isProductionOrderValid\">\r\n </dx-button>\r\n </div>\r\n <div *ngIf=\"isProductionOrderValid\">\r\n <dx-text-box [label]=\"'UretimYonetimi::ReceiptFromProductions.StokCode' | abpLocalization\"\r\n [(value)]=\"productionOrder.itemNo\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n\r\n <dx-text-box [label]=\"'UretimYonetimi::ReceiptFromProductions.StokDesc' | abpLocalization\"\r\n [(value)]=\"productionOrder.productDescription\"\r\n [maxLength]=\"128\" [disabled]=\"true\">\r\n </dx-text-box>\r\n\r\n <dx-text-box [label]=\"'UretimYonetimi::ReceiptFromProductions.ToWhs' | abpLocalization\" [maxLength]=\"128\"\r\n [value]=\"getWarehouseName(receiptFromProductionsPostDtoDocumentLine.warehouseCode)\"\r\n [disabled]=\"true\">\r\n </dx-text-box>\r\n\r\n <dx-text-box [label]=\"'UretimYonetimi::ReceiptFromProductions.BatchNumber' | abpLocalization\"\r\n [(value)]=\"receiptFromProductionsPostDtoBatchNumber.batchNumber\"\r\n [maxLength]=\"128\" [disabled]=\"true\">\r\n </dx-text-box>\r\n\r\n <dx-number-box [label]=\"'UretimYonetimi::ReceiptFromProductions.PlannedQty' | abpLocalization\"\r\n [(value)]=\"productionOrder.plannedQuantity\"\r\n [format]=\"HitHelper.getMeasurementFormatted(unitOfMeasure)\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n\r\n <dx-number-box [label]=\"'UretimYonetimi::ReceiptFromProductions.CompletedQty' | abpLocalization\"\r\n [(value)]=\"productionOrder.completedQuantity\"\r\n [format]=\"HitHelper.getMeasurementFormatted(unitOfMeasure)\"\r\n [disabled]=\"true\">\r\n </dx-number-box>\r\n\r\n <dx-number-box [label]=\"'UretimYonetimi::ReceiptFromProductions.Quantity' | abpLocalization\"\r\n [(value)]=\"receiptFromProductionsPostDtoBatchNumber.quantity\"\r\n (onValueChanged)=\"quantityChanged($event)\"\r\n [format]=\"HitHelper.getMeasurementFormatted(unitOfMeasure)\"\r\n [showSpinButtons]=\"true\" [min]=\"0\" #toplananMiktarRef>\r\n </dx-number-box>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [(visible)]=\"showModal\" (appear)=\"generateReport()\" (disappear)=\"clearAll()\">\r\n <ng-template #abpHeader>\r\n <h3>{{ 'UretimYonetimi::CreateBarcodes.BarcodePreview' | abpLocalization }}</h3>\r\n </ng-template>\r\n <ng-template #abpBody>\r\n <iframe *ngIf=\"pdfSrc\" [src]=\"pdfSrc\" width=\"100%\" height=\"300\"\r\n webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>\r\n </ng-template>\r\n <ng-template #abpFooter>\r\n <button type=\"button\"\r\n class=\"btn btn-secondary\" abpClose> {{ 'UretimYonetimi::CreateBarcodes.Close' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
183
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.ListService }, { type: i1.TrackByService }, { type: i2.HitReceiptFromProductionsService }, { type: i3.ConfirmationService }, { type: i4.HitProductionOrdersService }, { type: i5.DomSanitizer }]; }, propDecorators: { nmbBoxBarkodNumarasi: [{
211
184
  type: ViewChild,
212
185
  args: ['barkodNumarasiRef', { static: false }]
213
186
  }], nmbBoxToplananMiktar: [{
214
187
  type: ViewChild,
215
188
  args: ['toplananMiktarRef', { static: false }]
216
189
  }] } });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbnMvaGl0LXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbnMvaGl0LXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsV0FBVyxFQUFpQixNQUFNLGNBQWMsQ0FBQztBQUV6RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFnQix1QkFBdUIsRUFBRSxTQUFTLEVBQWtCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQXlCLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUkxRCxPQUFPLEVBRUwsa0NBQWtDLEVBQ2xDLDJCQUEyQixFQUMzQiw2QkFBNkIsRUFDOUIsTUFBTSxxREFBcUQsQ0FBQztBQUU3RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVlqRCxNQUFNLE9BQU8sa0NBQWtDO0lBWTdDLFlBQ1UsTUFBYyxFQUNOLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLE9BQXlDLEVBQ2pELFlBQWlDLEVBQ2pDLEVBQWUsRUFDZix1QkFBbUQsRUFDbkQsU0FBdUI7UUFQdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtR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QUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ0Usb0JBQW9CO3NCQUFwRSxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TGlzdFNlcnZpY2UsIFRyYWNrQnlTZXJ2aWNlfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQge0NvbmZpcm1hdGlvblNlcnZpY2UsIENvbmZpcm1hdGlvbn0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQge0RhdGVBZGFwdGVyfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBOZ1pvbmUsIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TmdiRGF0ZUFkYXB0ZXJ9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHtcclxuICBIaXRSZWNlaXB0RnJvbVByb2R1Y3Rpb25zU2VydmljZVxyXG59IGZyb20gXCIuLi8uLi9oaXQtcHJveHkvaGl0LXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9ucy9oaXQtcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb25zLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtcclxuICBHZXRQcm9kdWN0aW9uT3JkZXJEdG8sXHJcbiAgUmVjZWlwdEZyb21Qcm9kdWN0aW9uc0JhdGNoTnVtYmVycyxcclxuICBSZWNlaXB0RnJvbVByb2R1Y3Rpb25zTGluZXMsXHJcbiAgUmVjZWlwdEZyb21Qcm9kdWN0aW9uc1Bvc3REdG9cclxufSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9ucy9tb2RlbHMnO1xyXG5pbXBvcnQge0hpdFByb2R1Y3Rpb25PcmRlcnNTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vaGl0LXByb3h5L2hpdC1wcm9kdWN0aW9uLW9yZGVycy9oaXQtcHJvZHVjdGlvbi1vcmRlcnMuc2VydmljZVwiO1xyXG5pbXBvcnQge0hpdEhlbHBlcn0gZnJvbSBcIi4uLy4uL2hpdC1wcm94eS9tb2RlbHNcIjtcclxuaW1wb3J0IHtEeE51bWJlckJveENvbXBvbmVudCwgRHhUZXh0Qm94Q29tcG9uZW50fSBmcm9tIFwiZGV2ZXh0cmVtZS1hbmd1bGFyXCI7XHJcbmltcG9ydCB7V2FyZWhvdXNlfSBmcm9tIFwiLi4vLi4vaGl0LXByb3h5L2hpdC1wcm9kdWN0aW9uLW9yZGVycy9tb2RlbHNcIjtcclxuaW1wb3J0IHtEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1oaXQtcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb25zJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXHJcbiAgcHJvdmlkZXJzOiBbTGlzdFNlcnZpY2UsIHtwcm92aWRlOiBOZ2JEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IERhdGVBZGFwdGVyfV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRSZWNlaXB0RnJvbVByb2R1Y3Rpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgSGl0SGVscGVyID0gSGl0SGVscGVyO1xyXG4gIEBWaWV3Q2hpbGQoJ2JhcmtvZE51bWFyYXNpUmVmJywge3N0YXRpYzogZmFsc2V9KSBubWJCb3hCYXJrb2ROdW1hcmFzaTogRHhUZXh0Qm94Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3RvcGxhbmFuTWlrdGFyUmVmJywge3N0YXRpYzogZmFsc2V9KSBubWJCb3hUb3BsYW5hbk1pa3RhcjogRHhOdW1iZXJCb3hDb21wb25lbnQ7XHJcbiAgaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG4gIG9wdGlvbnM6IFBhcnRpYWw8Q29uZmlybWF0aW9uLk9wdGlvbnM+ID0ge1xyXG4gICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGxpc3Q6IExpc3RTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHRyYWNrOiBUcmFja0J5U2VydmljZSxcclxuICAgIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlOiBIaXRSZWNlaXB0RnJvbVByb2R1Y3Rpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHByb2R1Y3Rpb25PcmRlcnNTZXJ2aWNlOiBIaXRQcm9kdWN0aW9uT3JkZXJzU2VydmljZSxcclxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XHJcbiAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICB0aGlzLmdldFdhcmVob3VzZXMoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZm9jdXNPbkJhcmtvZE51bWFyYXNpKCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVGb3JtKCkge1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgc3Rva0tvZHU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgc3Rva1RhbmltaTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICBtaWt0YXI6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgdG9wbGFuYW46IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAga2FsYW46IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgaGVkZWZEZXBvOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgIGhlZGVmRGVwb0NvZGU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgcGFydGlObzogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFByb2R1Y3Rpb25PcmRlckR0b0lzTG9hZGluZzogc3RyaW5nID0gXCJ2YWxpZFwiO1xyXG4gIGJhcmtvZE51bWFyYXNpOiBudW1iZXI7XHJcbiAgaXNQcm9kdWN0aW9uT3JkZXJWYWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHVuaXRPZk1lYXN1cmU6IHN0cmluZztcclxuICBzaG93TW9kYWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwZGZTcmM6IFNhZmVSZXNvdXJjZVVybCB8IG51bGwgPSBudWxsO1xyXG4gIG5ld1JlY29yZERvY0VudHJ5OiBudW1iZXI7XHJcblxyXG4gIGdlbmVyYXRlUmVwb3J0KCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldEJhcmNvZGVJbmZvKHRoaXMuYmFya29kTnVtYXJhc2ksIHRoaXMubmV3UmVjb3JkRG9jRW50cnksIDEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICBjb25zdCBiYXNlNjREYXRhID0gcmVzcG9uc2UuYmFzZTY0OyAvLyBiYXNlNjQgc3RyaW5nIChzYWRlY2UgdmVyaSBrxLFzbcSxLCBcImRhdGE6YXBwbGljYXRpb24vcGRmO2Jhc2U2NCwuLi5cIiBkZcSfaWxzZSlcclxuXHJcbiAgICAgICAgLy8gQmFzZTY0J8O8IGRlY29kZSBlZGlwIGJpbmFyeSB2ZXJpeWUgw6dldmlyaXlvcnV6XHJcbiAgICAgICAgY29uc3QgYnl0ZUNoYXJhY3RlcnMgPSBhdG9iKGJhc2U2NERhdGEpO1xyXG4gICAgICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlQ2hhcmFjdGVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgYnl0ZU51bWJlcnNbaV0gPSBieXRlQ2hhcmFjdGVycy5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XHJcblxyXG4gICAgICAgIC8vIEJsb2Igb2x1xZ90dXJ1eW9ydXpcclxuICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2J5dGVBcnJheV0sIHt0eXBlOiAnYXBwbGljYXRpb24vcGRmJ30pO1xyXG5cclxuICAgICAgICAvLyBCbG9iJ3RhbiBVUkwgb2x1xZ90dXJ1cCB5ZW5pIHNla21lZGUgYcOnxLF5b3J1eiAodmV5YSBkb3dubG9hZCBlZGViaWxpcnNpbilcclxuICAgICAgICBjb25zdCBibG9iVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICB0aGlzLnBkZlNyYyA9IHRoaXMuYnlwYXNzQW5kU2FuaXRpemUoYmxvYlVybCk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGJ5cGFzc0FuZFNhbml0aXplKHVybCk6IFNhZmVSZXNvdXJjZVVybCB7XHJcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVybCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRQcm9kdWN0aW9uT3JkZXIoKSB7XHJcbiAgICB0aGlzLmNsZWFyRm9ybSgpO1xyXG4gICAgdGhpcy5nZXRQcm9kdWN0aW9uT3JkZXJEdG9Jc0xvYWRpbmcgPSBcInBlbmRpbmdcIjtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucHJvZHVjdGlvbk9yZGVyc1NlcnZpY2UuZ2V0KHRoaXMuYmFya29kTnVtYXJhc2kpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LmlzU3VjY2Vzc2Z1bCkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgICBzdG9rS29kdTogcmVzdWx0Lml0ZW1zLml0ZW1ObyxcclxuICAgICAgICAgICAgc3Rva1RhbmltaTogcmVzdWx0Lml0ZW1zLnByb2R1Y3REZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgbWlrdGFyOiByZXN1bHQuaXRlbXMucGxhbm5lZFF1YW50aXR5LFxyXG4gICAgICAgICAgICB0b3BsYW5hbjogcmVzdWx0Lml0ZW1zLmNvbXBsZXRlZFF1YW50aXR5LFxyXG4gICAgICAgICAgICBrYWxhbjogcmVzdWx0Lml0ZW1zLnBsYW5uZWRRdWFudGl0eSAtIHJlc3VsdC5pdGVtcy5jb21wbGV0ZWRRdWFudGl0eSxcclxuICAgICAgICAgICAgaGVkZWZEZXBvOiByZXN1bHQuaXRlbXMud2FyZWhvdXNlLFxyXG4gICAgICAgICAgICBoZWRlZkRlcG9Db2RlOiByZXN1bHQuaXRlbXMud2FyZWhvdXNlLFxyXG4gICAgICAgICAgICBwYXJ0aU5vOiByZXN1bHQuaXRlbXMudV90cmtCYXRjaCxcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGZpbHRlcmVkV2FyZWhvdXNlcyA9IHRoaXMud2FyZWhvdXNlcy5maWx0ZXIod2FyZWhvdXNlID0+IHdhcmVob3VzZS53aHNDb2RlID09PSByZXN1bHQuaXRlbXMud2FyZWhvdXNlKTtcclxuICAgICAgICAgIGlmIChmaWx0ZXJlZFdhcmVob3VzZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICAgICAgaGVkZWZEZXBvOiBmaWx0ZXJlZFdhcmVob3VzZXNbMF0ud2hzTmFtZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy51bml0T2ZNZWFzdXJlID0gcmVzdWx0Lml0ZW1zLnVuaXRPZk1lYXN1cmVtZW50O1xyXG4gICAgICAgICAgdGhpcy5pc1Byb2R1Y3Rpb25PcmRlclZhbGlkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuZm9jdXNPblRvcGxhbmFuTWlrdGFyKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQ/LmlzU3VjY2Vzc2Z1bCA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5zdGF0dXMkLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZ2V0UHJvZHVjdGlvbk9yZGVyRHRvSXNMb2FkaW5nID0gXCJ2YWxpZFwiO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvSXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcmVjZWlwdEZyb21Qcm9kdWN0aW9uc1Bvc3REdG86IFJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvID0gbmV3IFJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvKCk7XHJcblxyXG4gIGFzeW5jIHBvc3RSZWNlaXB0RnJvbVByb2R1Y3Rpb25zKCkge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5yZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0b0lzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvID0gbmV3IFJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvKCk7XHJcbiAgICBjb25zdCBsaW5lID0gbmV3IFJlY2VpcHRGcm9tUHJvZHVjdGlvbnNMaW5lcygpO1xyXG4gICAgbGluZS5iYXNlRW50cnkgPSB0aGlzLmJhcmtvZE51bWFyYXNpO1xyXG4gICAgbGluZS5iYXNlVHlwZSA9IDIwMjtcclxuICAgIGxpbmUucXVhbnRpdHkgPSB0aGlzLmZvcm0udmFsdWUua2FsYW47XHJcbiAgICBsaW5lLndhcmVob3VzZUNvZGUgPSB0aGlzLmZvcm0udmFsdWUuaGVkZWZEZXBvQ29kZTtcclxuXHJcbiAgICBjb25zdCBiYXRjaE51bWJlciA9IG5ldyBSZWNlaXB0RnJvbVByb2R1Y3Rpb25zQmF0Y2hOdW1iZXJzKCk7XHJcbiAgICBiYXRjaE51bWJlci5iYXRjaE51bWJlciA9IHRoaXMuZm9ybS52YWx1ZS51X3Rya0JhdGNoO1xyXG4gICAgYmF0Y2hOdW1iZXIucXVhbnRpdHkgPSB0aGlzLmZvcm0udmFsdWUua2FsYW47XHJcbiAgICBsaW5lLmJhdGNoTnVtYmVycyA9IFtiYXRjaE51bWJlcl07XHJcblxyXG4gICAgdGhpcy5yZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0by5kb2N1bWVudExpbmVzID0gW2xpbmVdO1xyXG5cclxuICAgIHRoaXMuc2VydmljZS5jcmVhdGUodGhpcy5yZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0bykuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQuaXNTdWNjZXNzZnVsKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5zdWNjZXNzKCfEsMWfbGVtIEJhxZ9hcsSxbMSxJywgJycsIHRoaXMub3B0aW9ucykuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5uZXdSZWNvcmREb2NFbnRyeSA9IHJlc3VsdC5pdGVtcy5kb2NFbnRyeTtcclxuICAgICAgICAgICAgdGhpcy5zaG93TW9kYWwgPSB0cnVlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLnN0YXR1cyQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5mb2N1c09uVG9wbGFuYW5NaWt0YXIoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5zdGF0dXMkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZvY3VzT25Ub3BsYW5hbk1pa3RhcigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvSXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJBbGwoKSB7XHJcbiAgICB0aGlzLmJhcmtvZE51bWFyYXNpID0gbnVsbDtcclxuICAgIHRoaXMuY2xlYXJGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBjbGVhckZvcm0oKSB7XHJcbiAgICB0aGlzLnVuaXRPZk1lYXN1cmUgPSBudWxsO1xyXG4gICAgdGhpcy5mb3JtLnJlc2V0KCk7XHJcbiAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcclxuICAgIHRoaXMuZm9ybS5tYXJrQXNVbnRvdWNoZWQoKTtcclxuICAgIHRoaXMuaXNQcm9kdWN0aW9uT3JkZXJWYWxpZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5mb2N1c09uQmFya29kTnVtYXJhc2koKTtcclxuICB9XHJcblxyXG4gIHdhcmVob3VzZXM6IFdhcmVob3VzZVtdID0gW107XHJcblxyXG4gIGFzeW5jIGdldFdhcmVob3VzZXMoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnByb2R1Y3Rpb25PcmRlcnNTZXJ2aWNlLmdldFdhcmVob3VzZXMoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5pdGVtcykge1xyXG4gICAgICAgICAgdGhpcy53YXJlaG91c2VzID0gcmVzdWx0Lml0ZW1zLnNsaWNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBmb2N1c09uQmFya29kTnVtYXJhc2koKSB7XHJcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLm5tYkJveEJhcmtvZE51bWFyYXNpLmluc3RhbmNlLmZvY3VzKCk7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmb2N1c09uVG9wbGFuYW5NaWt0YXIoKSB7XHJcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLm5tYkJveFRvcGxhbmFuTWlrdGFyLmluc3RhbmNlLmZvY3VzKCk7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbYnJlYWRjcnVtYl09XCJmYWxzZVwiIHN0eWxlPVwicGFkZGluZzogMDtcIj5cclxuICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGgzIGNsYXNzPVwicGFnZS10aXRsZVwiPlxyXG4gICAgICAgIHt7ICdVcmV0aW1Zb25ldGltaTo6UmVjZWlwdEZyb21Qcm9kdWN0aW9ucy5UaXRsZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9oMz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyB0ZXh0LWxnLWVuZCBwdC0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOFwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicG9zdFJlY2VpcHRGcm9tUHJvZHVjdGlvbnMoKVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzUHJvZHVjdGlvbk9yZGVyVmFsaWRcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1cyBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAge3sgJ1VyZXRpbVlvbmV0aW1pOjpSZWNlaXB0RnJvbVByb2R1Y3Rpb25zLkNyZWF0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXdhcm5pbmcgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbGVhckFsbCgpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJyb29tIG1lLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICB7eyAnVXJldGltWW9uZXRpbWk6OlJlY2VpcHRGcm9tUHJvZHVjdGlvbnMuQ2xlYW4nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuICA8ZGl2ICpuZ0lmPVwiaXNMb2FkaW5nXCI+XHJcbiAgICA8ZHgtbG9hZC1pbmRpY2F0b3IgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHgtbG9hZC1pbmRpY2F0b3I+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgPGR4LW51bWJlci1ib3ggY2xhc3M9XCJtZS0xIHctMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgI2JhcmtvZE51bWFyYXNpUmVmXHJcbiAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OlJlY2VpcHRGcm9tUHJvZHVjdGlvbnMuV29ya09yZGVyTm8nIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiYmFya29kTnVtYXJhc2lcIlxyXG4gICAgICAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAob25FbnRlcktleSk9XCJnZXRQcm9kdWN0aW9uT3JkZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFt2YWxpZGF0aW9uU3RhdHVzXT1cImdldFByb2R1Y3Rpb25PcmRlckR0b0lzTG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1Byb2R1Y3Rpb25PcmRlclZhbGlkXCI+XHJcbiAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgIDxkeC1idXR0b24gc3R5bGU9XCJtYXJnaW4tdG9wOiA3LjVweDtcIiBpY29uPVwic2VhcmNoXCIgdHlwZT1cImRlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzUHJvZHVjdGlvbk9yZGVyVmFsaWRcIj5cclxuICAgICAgICA8L2R4LWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGlkPVwiaGl0LW9yZGVyXCIgKm5nSWY9XCJpc1Byb2R1Y3Rpb25PcmRlclZhbGlkXCI+XHJcbiAgICAgICAgPGR4LWZvcm0gaWQ9XCJmb3JtXCIgbGFiZWxMb2NhdGlvbj1cInRvcFwiPlxyXG4gICAgICAgICAgPGR4aS1pdGVtPlxyXG4gICAgICAgICAgICA8ZHgtdGV4dC1ib3ggW2Zvcm1Db250cm9sTmFtZV09XCInc3Rva0tvZHUnXCIgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6UmVjZWlwdEZyb21Qcm9kdWN0aW9ucy5TdG9rQ29kZScgfCBhYnBMb2NhbGl6YXRpb25cIiBbbWF4TGVuZ3RoXT1cIjEyOFwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICA8L2R4aS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxkeGktaXRlbT5cclxuICAgICAgICAgICAgPGR4LXRleHQtYm94IFtmb3JtQ29udHJvbE5hbWVdPVwiJ3N0b2tUYW5pbWknXCIgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6UmVjZWlwdEZyb21Qcm9kdWN0aW9ucy5TdG9rRGVzYycgfCBhYnBMb2NhbGl6YXRpb25cIiBbbWF4TGVuZ3RoXT1cIjEyOFwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICA8L2R4aS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxkeGktaXRlbT5cclxuICAgICAgICAgICAgPGR4LXRleHQtYm94IFtmb3JtQ29udHJvbE5hbWVdPVwiJ2hlZGVmRGVwbydcIiBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpSZWNlaXB0RnJvbVByb2R1Y3Rpb25zLlRvV2hzJyB8IGFicExvY2FsaXphdGlvblwiIFttYXhMZW5ndGhdPVwiMTI4XCIgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICAgIDwvZHhpLWl0ZW0+XHJcblxyXG4gICAgICAgICAgPGR4aS1pdGVtPlxyXG4gICAgICAgICAgICA8ZHgtdGV4dC1ib3ggW2Zvcm1Db250cm9sTmFtZV09XCIncGFydGlObydcIiBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpSZWNlaXB0RnJvbVByb2R1Y3Rpb25zLkJhdGNoTnVtYmVyJyB8IGFicExvY2FsaXphdGlvblwiIFttYXhMZW5ndGhdPVwiMTI4XCIgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICAgIDwvZHhpLWl0ZW0+XHJcblxyXG4gICAgICAgICAgPGR4aS1pdGVtPlxyXG4gICAgICAgICAgICA8ZHgtbnVtYmVyLWJveCBbZm9ybUNvbnRyb2xOYW1lXT1cIidtaWt0YXInXCIgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6UmVjZWlwdEZyb21Qcm9kdWN0aW9ucy5QbGFubmVkUXR5JyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtYXRdPVwiSGl0SGVscGVyLmdldE1lYXN1cmVtZW50Rm9ybWF0dGVkKHVuaXRPZk1lYXN1cmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgICAgPC9keGktaXRlbT5cclxuXHJcbiAgICAgICAgICA8ZHhpLWl0ZW0+XHJcbiAgICAgICAgICAgIDxkeC1udW1iZXItYm94IFtmb3JtQ29udHJvbE5hbWVdPVwiJ3RvcGxhbmFuJ1wiIFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OlJlY2VpcHRGcm9tUHJvZHVjdGlvbnMuQ29tcGxldGVkUXR5JyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtYXRdPVwiSGl0SGVscGVyLmdldE1lYXN1cmVtZW50Rm9ybWF0dGVkKHVuaXRPZk1lYXN1cmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgICAgPC9keGktaXRlbT5cclxuXHJcbiAgICAgICAgICA8ZHhpLWl0ZW0+XHJcbiAgICAgICAgICAgIDxkeC1udW1iZXItYm94ICN0b3BsYW5hbk1pa3RhclJlZiBbZm9ybUNvbnRyb2xOYW1lXT1cIidrYWxhbidcIiBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpSZWNlaXB0RnJvbVByb2R1Y3Rpb25zLlF1YW50aXR5JyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtYXRdPVwiSGl0SGVscGVyLmdldE1lYXN1cmVtZW50Rm9ybWF0dGVkKHVuaXRPZk1lYXN1cmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dTcGluQnV0dG9uc109XCJ0cnVlXCIgW21pbl09XCIwXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZHhpLWl0ZW0+XHJcbiAgICAgICAgPC9keC1mb3JtPlxyXG4gICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9hYnAtcGFnZT5cclxuXHJcbjxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJzaG93TW9kYWxcIiAoYXBwZWFyKT1cImdlbmVyYXRlUmVwb3J0KClcIiAoZGlzYXBwZWFyKT1cImNsZWFyQWxsKClcIj4gPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XHJcbiAgICA8aDM+e3sgJ1VyZXRpbVlvbmV0aW1pOjpDcmVhdGVCYXJjb2Rlcy5CYXJjb2RlUHJldmlldycgfCBhYnBMb2NhbGl6YXRpb24gfX08L2gzPlxyXG4gIDwvbmctdGVtcGxhdGU+IDxuZy10ZW1wbGF0ZSAjYWJwQm9keT4gPGlmcmFtZSAqbmdJZj1cInBkZlNyY1wiIFtzcmNdPVwicGRmU3JjXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMzAwXCJcclxuICAgICAgd2Via2l0YWxsb3dmdWxsc2NyZWVuIG1vemFsbG93ZnVsbHNjcmVlbiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+IDwvbmctdGVtcGxhdGU+IDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPiA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+IHt7ICdVcmV0aW1Zb25ldGltaTo6Q3JlYXRlQmFyY29kZXMuQ2xvc2UnIHwgYWJwTG9jYWxpemF0aW9uIH19IDwvYnV0dG9uPlxyXG4gIDwvbmctdGVtcGxhdGU+IFxyXG48L2FicC1tb2RhbD5cclxuIl19
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbnMvaGl0LXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbnMvaGl0LXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsV0FBVyxFQUFpQixNQUFNLGNBQWMsQ0FBQztBQUV6RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFnQix1QkFBdUIsRUFBRSxTQUFTLEVBQWtCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFJMUQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixrQ0FBa0MsRUFDbEMsMkJBQTJCLEVBQzNCLDZCQUE2QixFQUM5QixNQUFNLHFEQUFxRCxDQUFDO0FBRTdELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQVlqRCxNQUFNLE9BQU8sa0NBQWtDO0lBVzdDLFlBQ1UsTUFBYyxFQUNOLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLE9BQXlDLEVBQ2pELFlBQWlDLEVBQ2pDLHVCQUFtRCxFQUNuRCxTQUF1QjtRQU52QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ04sU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixVQUFLLEdBQUwsS0FBSyxD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QWtHQTsyRkR2RWEsa0NBQWtDO2tCQVA5QyxTQUFTOytCQUNFLGtDQUFrQyxtQkFDM0IsdUJBQXVCLENBQUMsT0FBTyxhQUNyQyxDQUFDLFdBQVcsRUFBRSxFQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBQyxDQUFDO3lTQU16QixvQkFBb0I7c0JBQXBFLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNFLG9CQUFvQjtzQkFBcEUsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xpc3RTZXJ2aWNlLCBUcmFja0J5U2VydmljZX0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHtDb25maXJtYXRpb25TZXJ2aWNlLCBDb25maXJtYXRpb259IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHtEYXRlQWRhcHRlcn0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQvZXh0ZW5zaW9ucyc7XHJcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgTmdab25lLCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TmdiRGF0ZUFkYXB0ZXJ9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHtcclxuICBIaXRSZWNlaXB0RnJvbVByb2R1Y3Rpb25zU2VydmljZVxyXG59IGZyb20gXCIuLi8uLi9oaXQtcHJveHkvaGl0LXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9ucy9oaXQtcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb25zLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtcclxuICBHZXRQcm9kdWN0aW9uT3JkZXJEdG8sXHJcbiAgUmVjZWlwdEZyb21Qcm9kdWN0aW9uc0JhdGNoTnVtYmVycyxcclxuICBSZWNlaXB0RnJvbVByb2R1Y3Rpb25zTGluZXMsXHJcbiAgUmVjZWlwdEZyb21Qcm9kdWN0aW9uc1Bvc3REdG9cclxufSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9ucy9tb2RlbHMnO1xyXG5pbXBvcnQge0hpdFByb2R1Y3Rpb25PcmRlcnNTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vaGl0LXByb3h5L2hpdC1wcm9kdWN0aW9uLW9yZGVycy9oaXQtcHJvZHVjdGlvbi1vcmRlcnMuc2VydmljZVwiO1xyXG5pbXBvcnQge0hpdEhlbHBlcn0gZnJvbSBcIi4uLy4uL2hpdC1wcm94eS9tb2RlbHNcIjtcclxuaW1wb3J0IHtEeE51bWJlckJveENvbXBvbmVudCwgRHhUZXh0Qm94Q29tcG9uZW50fSBmcm9tIFwiZGV2ZXh0cmVtZS1hbmd1bGFyXCI7XHJcbmltcG9ydCB7V2FyZWhvdXNlfSBmcm9tIFwiLi4vLi4vaGl0LXByb3h5L2hpdC1wcm9kdWN0aW9uLW9yZGVycy9tb2RlbHNcIjtcclxuaW1wb3J0IHtEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1oaXQtcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb25zJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXHJcbiAgcHJvdmlkZXJzOiBbTGlzdFNlcnZpY2UsIHtwcm92aWRlOiBOZ2JEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IERhdGVBZGFwdGVyfV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRSZWNlaXB0RnJvbVByb2R1Y3Rpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgSGl0SGVscGVyID0gSGl0SGVscGVyO1xyXG4gIEBWaWV3Q2hpbGQoJ2JhcmtvZE51bWFyYXNpUmVmJywge3N0YXRpYzogZmFsc2V9KSBubWJCb3hCYXJrb2ROdW1hcmFzaTogRHhUZXh0Qm94Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3RvcGxhbmFuTWlrdGFyUmVmJywge3N0YXRpYzogZmFsc2V9KSBubWJCb3hUb3BsYW5hbk1pa3RhcjogRHhOdW1iZXJCb3hDb21wb25lbnQ7XHJcbiAgaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgb3B0aW9uczogUGFydGlhbDxDb25maXJtYXRpb24uT3B0aW9ucz4gPSB7XHJcbiAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdDogTGlzdFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHJhY2s6IFRyYWNrQnlTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IEhpdFJlY2VpcHRGcm9tUHJvZHVjdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHByb2R1Y3Rpb25PcmRlcnNTZXJ2aWNlOiBIaXRQcm9kdWN0aW9uT3JkZXJzU2VydmljZSxcclxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgdGhpcy5nZXRXYXJlaG91c2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmZvY3VzT25CYXJrb2ROdW1hcmFzaSgpO1xyXG4gIH1cclxuXHJcbiAgYmFya29kTnVtYXJhc2k6IG51bWJlcjtcclxuICBpc1Byb2R1Y3Rpb25PcmRlclZhbGlkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdW5pdE9mTWVhc3VyZTogc3RyaW5nO1xyXG4gIHNob3dNb2RhbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHBkZlNyYzogU2FmZVJlc291cmNlVXJsIHwgbnVsbCA9IG51bGw7XHJcbiAgbmV3UmVjb3JkRG9jRW50cnk6IG51bWJlcjtcclxuXHJcbiAgZ2VuZXJhdGVSZXBvcnQoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0QmFyY29kZUluZm8odGhpcy5iYXJrb2ROdW1hcmFzaSwgdGhpcy5uZXdSZWNvcmREb2NFbnRyeSwgMSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogcmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJhc2U2NERhdGEgPSByZXNwb25zZS5iYXNlNjQ7IC8vIGJhc2U2NCBzdHJpbmcgKHNhZGVjZSB2ZXJpIGvEsXNtxLEsIFwiZGF0YTphcHBsaWNhdGlvbi9wZGY7YmFzZTY0LC4uLlwiIGRlxJ9pbHNlKVxyXG5cclxuICAgICAgICAvLyBCYXNlNjQnw7wgZGVjb2RlIGVkaXAgYmluYXJ5IHZlcml5ZSDDp2V2aXJpeW9ydXpcclxuICAgICAgICBjb25zdCBieXRlQ2hhcmFjdGVycyA9IGF0b2IoYmFzZTY0RGF0YSk7XHJcbiAgICAgICAgY29uc3QgYnl0ZU51bWJlcnMgPSBuZXcgQXJyYXkoYnl0ZUNoYXJhY3RlcnMubGVuZ3RoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBieXRlTnVtYmVyc1tpXSA9IGJ5dGVDaGFyYWN0ZXJzLmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGJ5dGVOdW1iZXJzKTtcclxuXHJcbiAgICAgICAgLy8gQmxvYiBvbHXFn3R1cnV5b3J1elxyXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnl0ZUFycmF5XSwge3R5cGU6ICdhcHBsaWNhdGlvbi9wZGYnfSk7XHJcblxyXG4gICAgICAgIC8vIEJsb2IndGFuIFVSTCBvbHXFn3R1cnVwIHllbmkgc2VrbWVkZSBhw6fEsXlvcnV6ICh2ZXlhIGRvd25sb2FkIGVkZWJpbGlyc2luKVxyXG4gICAgICAgIGNvbnN0IGJsb2JVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgICAgIHRoaXMucGRmU3JjID0gdGhpcy5ieXBhc3NBbmRTYW5pdGl6ZShibG9iVXJsKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYnlwYXNzQW5kU2FuaXRpemUodXJsKTogU2FmZVJlc291cmNlVXJsIHtcclxuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodXJsKTtcclxuICB9XHJcblxyXG4gIHByb2R1Y3Rpb25PcmRlcjogR2V0UHJvZHVjdGlvbk9yZGVyRHRvID0gbmV3IEdldFByb2R1Y3Rpb25PcmRlckR0bygpO1xyXG5cclxuICBhc3luYyBnZXRQcm9kdWN0aW9uT3JkZXIoKSB7XHJcbiAgICB0aGlzLmNsZWFyRm9ybSgpO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5wcm9kdWN0aW9uT3JkZXJzU2VydmljZS5nZXQodGhpcy5iYXJrb2ROdW1hcmFzaSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQuaXNTdWNjZXNzZnVsKSB7XHJcbiAgICAgICAgICB0aGlzLnByb2R1Y3Rpb25PcmRlciA9IHJlc3VsdC5pdGVtcztcclxuICAgICAgICAgIHRoaXMucmVjZWlwdEZyb21Qcm9kdWN0aW9uc1Bvc3REdG9RdWFudGl0eSA9IHJlc3VsdC5pdGVtcy5wbGFubmVkUXVhbnRpdHkgLSByZXN1bHQuaXRlbXMuY29tcGxldGVkUXVhbnRpdHk7XHJcblxyXG4gICAgICAgICAgdGhpcy5yZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0b0RvY3VtZW50TGluZS5iYXNlRW50cnkgPSB0aGlzLmJhcmtvZE51bWFyYXNpO1xyXG4gICAgICAgICAgdGhpcy5yZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0b0RvY3VtZW50TGluZS5iYXNlVHlwZSA9IDIwMjtcclxuICAgICAgICAgIHRoaXMucmVjZWlwdEZyb21Qcm9kdWN0aW9uc1Bvc3REdG9Eb2N1bWVudExpbmUucXVhbnRpdHkgPSB0aGlzLnJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvUXVhbnRpdHk7XHJcbiAgICAgICAgICB0aGlzLnJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvRG9jdW1lbnRMaW5lLndhcmVob3VzZUNvZGUgPSByZXN1bHQuaXRlbXMud2FyZWhvdXNlO1xyXG4gICAgICAgICAgdGhpcy5yZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0b0JhdGNoTnVtYmVyLmJhdGNoTnVtYmVyID0gcmVzdWx0Lml0ZW1zLnVfdHJrQmF0Y2g7XHJcbiAgICAgICAgICB0aGlzLnJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvQmF0Y2hOdW1iZXIucXVhbnRpdHkgPSB0aGlzLnJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvUXVhbnRpdHk7XHJcblxyXG4gICAgICAgICAgdGhpcy51bml0T2ZNZWFzdXJlID0gcmVzdWx0Lml0ZW1zLnVuaXRPZk1lYXN1cmVtZW50O1xyXG4gICAgICAgICAgdGhpcy5pc1Byb2R1Y3Rpb25PcmRlclZhbGlkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuZm9jdXNPblRvcGxhbmFuTWlrdGFyKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQ/LmlzU3VjY2Vzc2Z1bCA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5zdGF0dXMkLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0b1F1YW50aXR5OiBudW1iZXIgPSAwO1xyXG4gIHJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvOiBSZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0byA9IG5ldyBSZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0bygpO1xyXG4gIHJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvRG9jdW1lbnRMaW5lOiBSZWNlaXB0RnJvbVByb2R1Y3Rpb25zTGluZXMgPSBuZXcgUmVjZWlwdEZyb21Qcm9kdWN0aW9uc0xpbmVzKCk7XHJcbiAgcmVjZWlwdEZyb21Qcm9kdWN0aW9uc1Bvc3REdG9CYXRjaE51bWJlcjogUmVjZWlwdEZyb21Qcm9kdWN0aW9uc0JhdGNoTnVtYmVycyA9IG5ldyBSZWNlaXB0RnJvbVByb2R1Y3Rpb25zQmF0Y2hOdW1iZXJzKCk7XHJcblxyXG4gIGFzeW5jIHBvc3RSZWNlaXB0RnJvbVByb2R1Y3Rpb25zKCkge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMucmVjZWlwdEZyb21Qcm9kdWN0aW9uc1Bvc3REdG9Eb2N1bWVudExpbmUuYmF0Y2hOdW1iZXJzID0gW3RoaXMucmVjZWlwdEZyb21Qcm9kdWN0aW9uc1Bvc3REdG9CYXRjaE51bWJlcl07XHJcbiAgICB0aGlzLnJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvLmRvY3VtZW50TGluZXMgPSBbdGhpcy5yZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0b0RvY3VtZW50TGluZV07XHJcbiAgICBjb25zb2xlLmxvZygnZG9jdW1lbnRMaW5lcycsdGhpcy5yZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0by5kb2N1bWVudExpbmVzKVxyXG4gICAgY29uc29sZS5sb2coJ2JhdGNoTnVtYmVycycsdGhpcy5yZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0b0RvY3VtZW50TGluZS5iYXRjaE51bWJlcnMpXHJcbiAgICByZXR1cm47XHJcbiAgICB0aGlzLnNlcnZpY2UuY3JlYXRlKHRoaXMucmVjZWlwdEZyb21Qcm9kdWN0aW9uc1Bvc3REdG8pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LmlzU3VjY2Vzc2Z1bCkge1xyXG4gICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uc3VjY2VzcygnxLDFn2xlbSBCYcWfYXLEsWzEsScsICcnLCB0aGlzLm9wdGlvbnMpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubmV3UmVjb3JkRG9jRW50cnkgPSByZXN1bHQuaXRlbXMuZG9jRW50cnk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd01vZGFsID0gdHJ1ZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5zdGF0dXMkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXNPblRvcGxhbmFuTWlrdGFyKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb24uc3RhdHVzJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb2N1c09uVG9wbGFuYW5NaWt0YXIoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsKCkge1xyXG4gICAgdGhpcy5iYXJrb2ROdW1hcmFzaSA9IG51bGw7XHJcbiAgICB0aGlzLmNsZWFyRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJGb3JtKCkge1xyXG4gICAgdGhpcy5wcm9kdWN0aW9uT3JkZXIgPSBuZXcgR2V0UHJvZHVjdGlvbk9yZGVyRHRvKCk7XHJcbiAgICB0aGlzLnJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvID0gbmV3IFJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvKCk7XHJcbiAgICB0aGlzLnJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvRG9jdW1lbnRMaW5lID0gbmV3IFJlY2VpcHRGcm9tUHJvZHVjdGlvbnNMaW5lcygpO1xyXG4gICAgdGhpcy5yZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0b0JhdGNoTnVtYmVyID0gbmV3IFJlY2VpcHRGcm9tUHJvZHVjdGlvbnNCYXRjaE51bWJlcnMoKTtcclxuICAgIHRoaXMudW5pdE9mTWVhc3VyZSA9IG51bGw7XHJcbiAgICB0aGlzLmlzUHJvZHVjdGlvbk9yZGVyVmFsaWQgPSBmYWxzZTtcclxuICAgIHRoaXMuZm9jdXNPbkJhcmtvZE51bWFyYXNpKCk7XHJcbiAgfVxyXG5cclxuICB3YXJlaG91c2VzOiBXYXJlaG91c2VbXSA9IFtdO1xyXG5cclxuICBhc3luYyBnZXRXYXJlaG91c2VzKCkge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5wcm9kdWN0aW9uT3JkZXJzU2VydmljZS5nZXRXYXJlaG91c2VzKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQuaXRlbXMpIHtcclxuICAgICAgICAgIHRoaXMud2FyZWhvdXNlcyA9IHJlc3VsdC5pdGVtcy5zbGljZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPbkJhcmtvZE51bWFyYXNpKCkge1xyXG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ubWJCb3hCYXJrb2ROdW1hcmFzaS5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPblRvcGxhbmFuTWlrdGFyKCkge1xyXG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ubWJCb3hUb3BsYW5hbk1pa3Rhci5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2FyZWhvdXNlTmFtZShjb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbWF0Y2ggPSB0aGlzLndhcmVob3VzZXMuZmluZCh4ID0+IHgud2hzQ29kZSA9PT0gY29kZSk7XHJcbiAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaC53aHNOYW1lIDogJyc7XHJcbiAgfVxyXG5cclxuICBxdWFudGl0eUNoYW5nZWQoZTogYW55KXtcclxuICAgIHRoaXMucmVjZWlwdEZyb21Qcm9kdWN0aW9uc1Bvc3REdG9CYXRjaE51bWJlci5xdWFudGl0eSA9IGUudmFsdWU7XHJcbiAgICB0aGlzLnJlY2VpcHRGcm9tUHJvZHVjdGlvbnNQb3N0RHRvRG9jdW1lbnRMaW5lLnF1YW50aXR5ID0gZS52YWx1ZTtcclxuICB9XHJcbn1cclxuIiwiPGFicC1wYWdlIFticmVhZGNydW1iXT1cImZhbHNlXCIgc3R5bGU9XCJwYWRkaW5nOiAwO1wiPlxyXG4gIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciBjbGFzcz1cImNvbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJwYWdlLXRpdGxlXCI+XHJcbiAgICAgICAge3sgJ1VyZXRpbVlvbmV0aW1pOjpSZWNlaXB0RnJvbVByb2R1Y3Rpb25zLlRpdGxlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2gzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IHRleHQtbGctZW5kIHB0LTJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC04XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBidG4tc21cIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwb3N0UmVjZWlwdEZyb21Qcm9kdWN0aW9ucygpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNQcm9kdWN0aW9uT3JkZXJWYWxpZFwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1wbHVzIG1lLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICB7eyAnVXJldGltWW9uZXRpbWk6OlJlY2VpcHRGcm9tUHJvZHVjdGlvbnMuQ3JlYXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4td2FybmluZyBidG4tc21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsZWFyQWxsKClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYnJvb20gbWUtMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgIHt7ICdVcmV0aW1Zb25ldGltaTo6UmVjZWlwdEZyb21Qcm9kdWN0aW9ucy5DbGVhbicgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgIDxkeC1udW1iZXItYm94IGNsYXNzPVwibWUtMSB3LTEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgI2JhcmtvZE51bWFyYXNpUmVmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6UmVjZWlwdEZyb21Qcm9kdWN0aW9ucy5Xb3JrT3JkZXJObycgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cImJhcmtvZE51bWFyYXNpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChvbkVudGVyS2V5KT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNQcm9kdWN0aW9uT3JkZXJWYWxpZFwiPlxyXG4gICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICA8ZHgtYnV0dG9uIHN0eWxlPVwibWFyZ2luLXRvcDogNy41cHg7XCIgaWNvbj1cInNlYXJjaFwiIHR5cGU9XCJkZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1Byb2R1Y3Rpb25PcmRlclZhbGlkXCI+XHJcbiAgICAgICAgPC9keC1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiaXNQcm9kdWN0aW9uT3JkZXJWYWxpZFwiPlxyXG4gICAgICAgIDxkeC10ZXh0LWJveCBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpSZWNlaXB0RnJvbVByb2R1Y3Rpb25zLlN0b2tDb2RlJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cInByb2R1Y3Rpb25PcmRlci5pdGVtTm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcblxyXG4gICAgICAgIDxkeC10ZXh0LWJveCBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpSZWNlaXB0RnJvbVByb2R1Y3Rpb25zLlN0b2tEZXNjJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cInByb2R1Y3Rpb25PcmRlci5wcm9kdWN0RGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbbWF4TGVuZ3RoXT1cIjEyOFwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keC10ZXh0LWJveD5cclxuXHJcbiAgICAgICAgPGR4LXRleHQtYm94IFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OlJlY2VpcHRGcm9tUHJvZHVjdGlvbnMuVG9XaHMnIHwgYWJwTG9jYWxpemF0aW9uXCIgW21heExlbmd0aF09XCIxMjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZ2V0V2FyZWhvdXNlTmFtZShyZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0b0RvY3VtZW50TGluZS53YXJlaG91c2VDb2RlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keC10ZXh0LWJveD5cclxuXHJcbiAgICAgICAgPGR4LXRleHQtYm94IFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OlJlY2VpcHRGcm9tUHJvZHVjdGlvbnMuQmF0Y2hOdW1iZXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicmVjZWlwdEZyb21Qcm9kdWN0aW9uc1Bvc3REdG9CYXRjaE51bWJlci5iYXRjaE51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFttYXhMZW5ndGhdPVwiMTI4XCIgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICA8L2R4LXRleHQtYm94PlxyXG5cclxuICAgICAgICA8ZHgtbnVtYmVyLWJveCBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpSZWNlaXB0RnJvbVByb2R1Y3Rpb25zLlBsYW5uZWRRdHknIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJwcm9kdWN0aW9uT3JkZXIucGxhbm5lZFF1YW50aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZm9ybWF0XT1cIkhpdEhlbHBlci5nZXRNZWFzdXJlbWVudEZvcm1hdHRlZCh1bml0T2ZNZWFzdXJlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcblxyXG4gICAgICAgIDxkeC1udW1iZXItYm94IFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OlJlY2VpcHRGcm9tUHJvZHVjdGlvbnMuQ29tcGxldGVkUXR5JyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicHJvZHVjdGlvbk9yZGVyLmNvbXBsZXRlZFF1YW50aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZm9ybWF0XT1cIkhpdEhlbHBlci5nZXRNZWFzdXJlbWVudEZvcm1hdHRlZCh1bml0T2ZNZWFzdXJlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcblxyXG4gICAgICAgIDxkeC1udW1iZXItYm94IFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OlJlY2VpcHRGcm9tUHJvZHVjdGlvbnMuUXVhbnRpdHknIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJyZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0b0JhdGNoTnVtYmVyLnF1YW50aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwicXVhbnRpdHlDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtmb3JtYXRdPVwiSGl0SGVscGVyLmdldE1lYXN1cmVtZW50Rm9ybWF0dGVkKHVuaXRPZk1lYXN1cmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1NwaW5CdXR0b25zXT1cInRydWVcIiBbbWluXT1cIjBcIiAjdG9wbGFuYW5NaWt0YXJSZWY+XHJcbiAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2FicC1wYWdlPlxyXG5cclxuPGFicC1tb2RhbCBbKHZpc2libGUpXT1cInNob3dNb2RhbFwiIChhcHBlYXIpPVwiZ2VuZXJhdGVSZXBvcnQoKVwiIChkaXNhcHBlYXIpPVwiY2xlYXJBbGwoKVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgPGgzPnt7ICdVcmV0aW1Zb25ldGltaTo6Q3JlYXRlQmFyY29kZXMuQmFyY29kZVByZXZpZXcnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9oMz5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgIDxpZnJhbWUgKm5nSWY9XCJwZGZTcmNcIiBbc3JjXT1cInBkZlNyY1wiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjMwMFwiXHJcbiAgICAgICAgICAgIHdlYmtpdGFsbG93ZnVsbHNjcmVlbiBtb3phbGxvd2Z1bGxzY3JlZW4gYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+IHt7ICdVcmV0aW1Zb25ldGltaTo6Q3JlYXRlQmFyY29kZXMuQ2xvc2UnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2FicC1tb2RhbD5cclxuIl19
@@ -1,3 +1,3 @@
1
1
  export class ReceiptFromProductions {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvaGl0LXByb3h5L2hpdC1jcmVhdGUtYmFyY29kZXMvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxzQkFBc0I7Q0FJbEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUmVjZWlwdEZyb21Qcm9kdWN0aW9ucyB7XHJcbiAgZG9jRW50cnk6IG51bWJlcjtcclxuICBxdWFudGl0eTogbnVtYmVyO1xyXG4gIGRvY0RhdGU6IERhdGU7XHJcbn1cclxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvaGl0LXByb3h5L2hpdC1jcmVhdGUtYmFyY29kZXMvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxzQkFBc0I7Q0FLbEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUmVjZWlwdEZyb21Qcm9kdWN0aW9ucyB7XHJcbiAgZG9jRW50cnk6IG51bWJlcjtcclxuICBxdWFudGl0eTogbnVtYmVyO1xyXG4gIGRvY0RhdGU6IERhdGU7XHJcbiAgZG9jRGF0ZVN0cmluZzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -1,8 +1,14 @@
1
1
  export class GetProductionOrderDto {
2
2
  }
3
3
  export class ReceiptFromProductionsPostDto {
4
+ constructor() {
5
+ this.documentLines = [];
6
+ }
4
7
  }
5
8
  export class ReceiptFromProductionsLines {
9
+ constructor() {
10
+ this.batchNumbers = [];
11
+ }
6
12
  }
7
13
  export class ReceiptFromProductionsBatchNumbers {
8
14
  }
@@ -11,4 +17,4 @@ export class ProductionOrderLine {
11
17
  this.quantity = 0;
12
18
  }
13
19
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvaGl0LXByb3h5L2hpdC1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbnMvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxxQkFBcUI7Q0FXakM7QUFFRCxNQUFNLE9BQU8sNkJBQTZCO0NBR3pDO0FBRUQsTUFBTSxPQUFPLDJCQUEyQjtDQU12QztBQUVELE1BQU0sT0FBTyxrQ0FBa0M7Q0FHOUM7QUFFRCxNQUFNLE9BQU8sbUJBQW1CO0lBQWhDO1FBVUUsYUFBUSxHQUFXLENBQUMsQ0FBQztJQUN2QixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgR2V0UHJvZHVjdGlvbk9yZGVyRHRvIHtcclxuICBhYnNvbHV0ZUVudHJ5OiBudW1iZXI7IC8vIERvYyBFbnRyeSBQS1xyXG4gIGRvY3VtZW50TnVtYmVyOiBudW1iZXI7IC8vIERvY051bSBHw7Zyw7xuZW4gQWQgQnUgRG9rw7xtYW4gxLDDp2luXHJcbiAgaXRlbU5vOiBzdHJpbmc7IC8vIFBhcsOnYSBLb2R1XHJcbiAgcHJvZHVjdERlc2NyaXB0aW9uOiBzdHJpbmc7IC8vIFBhcsOnYSBBZMSxXHJcbiAgd2FyZWhvdXNlOiBzdHJpbmc7IC8vIEhlZGVmIERlcG9cclxuICB1bml0T2ZNZWFzdXJlbWVudDogc3RyaW5nOyAvLyBCaXJpbSBUw7xyw7xcclxuICBwbGFubmVkUXVhbnRpdHk6IG51bWJlcjsgLy8gUGxhbmxhbmFuIGvEsXNtxLFuYSBnZWxlY2VrIFRvcGxhbmFuIGRlxJ9pxZ90aXJpbGViaWxlY2VrXHJcbiAgY29tcGxldGVkUXVhbnRpdHk6IG51bWJlcjsgLy8gUGxhbmxhbmFuIGvEsXNtxLFuYSBnZWxlY2VrIFRvcGxhbmFuIGRlxJ9pxZ90aXJpbGViaWxlY2VrXHJcbiAgdV90cmtCYXRjaDogc3RyaW5nOyAvLyBQYXJ0aSBOdW1hcmFzxLFcclxuICBnZXRQcm9kdWN0aW9uT3JkZXJMaW5lOiBQcm9kdWN0aW9uT3JkZXJMaW5lW107IC8vIMOccmV0aW0gRW1yaSBTYXTEsXJsYXLEsVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVjZWlwdEZyb21Qcm9kdWN0aW9uc1Bvc3REdG8ge1xyXG4gIGRvY0VudHJ5OiBudW1iZXI7XHJcbiAgZG9jdW1lbnRMaW5lczogUmVjZWlwdEZyb21Qcm9kdWN0aW9uc0xpbmVzW107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZWNlaXB0RnJvbVByb2R1Y3Rpb25zTGluZXMge1xyXG4gIHdhcmVob3VzZUNvZGU6IHN0cmluZztcclxuICBxdWFudGl0eTogbnVtYmVyO1xyXG4gIGJhc2VUeXBlOiBudW1iZXI7XHJcbiAgYmFzZUVudHJ5OiBudW1iZXI7XHJcbiAgYmF0Y2hOdW1iZXJzOiBSZWNlaXB0RnJvbVByb2R1Y3Rpb25zQmF0Y2hOdW1iZXJzW107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZWNlaXB0RnJvbVByb2R1Y3Rpb25zQmF0Y2hOdW1iZXJzIHtcclxuICBiYXRjaE51bWJlcjogc3RyaW5nO1xyXG4gIHF1YW50aXR5OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0aW9uT3JkZXJMaW5lIHtcclxuICBhYnNvbHV0ZUVudHJ5OiBudW1iZXI7IC8vIERvYyBFbnRyeSBQS1xyXG4gIGxpbmVOdW06IG51bWJlcjsgLy8gU2F0xLFyIE51bWFyYXPEsVxyXG4gIGJhdGNoTnVtYmVyOiBzdHJpbmc7IC8vIFBhcnRpIE51bWFyYXPEsVxyXG4gIGl0ZW1Db2RlOiBzdHJpbmc7IC8vIFBhcsOnYSBLb2R1XHJcbiAgaXRlbU5hbWU6IHN0cmluZzsgLy8gUGFyw6dhIEFkxLFcclxuICBwbGFubmVkUXR5OiBudW1iZXI7IC8vIE1pa3RhciB2ZSBUb3BsYW5hbiBrxLFzbcSxbmEgZ2VsZWNlayBUb3BsYW5hbiBkZcSfacWfdGlyaWxlYmlsZWNla1xyXG4gIHdhcmVob3VzZTogc3RyaW5nOyAvLyBIZWRlZiBEZXBvXHJcbiAgdW5pdE9mTWVhc3VyZW1lbnQ6IHN0cmluZzsgLy8gQmlyaW0gVMO8csO8XHJcbiAgaXNzdWVkUXR5OiBudW1iZXI7IC8vIFRvcGxhbmFuXHJcbiAgcXVhbnRpdHk6IG51bWJlciA9IDA7XHJcbn1cclxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvaGl0LXByb3h5L2hpdC1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbnMvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxxQkFBcUI7Q0FXakM7QUFFRCxNQUFNLE9BQU8sNkJBQTZCO0lBQTFDO1FBRUUsa0JBQWEsR0FBa0MsRUFBRSxDQUFDO0lBQ3BELENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTywyQkFBMkI7SUFBeEM7UUFLRSxpQkFBWSxHQUF5QyxFQUFFLENBQUM7SUFDMUQsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLGtDQUFrQztDQUc5QztBQUVELE1BQU0sT0FBTyxtQkFBbUI7SUFBaEM7UUFVRSxhQUFRLEdBQVcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBHZXRQcm9kdWN0aW9uT3JkZXJEdG8ge1xyXG4gIGFic29sdXRlRW50cnk6IG51bWJlcjsgLy8gRG9jIEVudHJ5IFBLXHJcbiAgZG9jdW1lbnROdW1iZXI6IG51bWJlcjsgLy8gRG9jTnVtIEfDtnLDvG5lbiBBZCBCdSBEb2vDvG1hbiDEsMOnaW5cclxuICBpdGVtTm86IHN0cmluZzsgLy8gUGFyw6dhIEtvZHVcclxuICBwcm9kdWN0RGVzY3JpcHRpb246IHN0cmluZzsgLy8gUGFyw6dhIEFkxLFcclxuICB3YXJlaG91c2U6IHN0cmluZzsgLy8gSGVkZWYgRGVwb1xyXG4gIHVuaXRPZk1lYXN1cmVtZW50OiBzdHJpbmc7IC8vIEJpcmltIFTDvHLDvFxyXG4gIHBsYW5uZWRRdWFudGl0eTogbnVtYmVyOyAvLyBQbGFubGFuYW4ga8Sxc23EsW5hIGdlbGVjZWsgVG9wbGFuYW4gZGXEn2nFn3RpcmlsZWJpbGVjZWtcclxuICBjb21wbGV0ZWRRdWFudGl0eTogbnVtYmVyOyAvLyBQbGFubGFuYW4ga8Sxc23EsW5hIGdlbGVjZWsgVG9wbGFuYW4gZGXEn2nFn3RpcmlsZWJpbGVjZWtcclxuICB1X3Rya0JhdGNoOiBzdHJpbmc7IC8vIFBhcnRpIE51bWFyYXPEsVxyXG4gIGdldFByb2R1Y3Rpb25PcmRlckxpbmU6IFByb2R1Y3Rpb25PcmRlckxpbmVbXTsgLy8gw5xyZXRpbSBFbXJpIFNhdMSxcmxhcsSxXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZWNlaXB0RnJvbVByb2R1Y3Rpb25zUG9zdER0byB7XHJcbiAgZG9jRW50cnk6IG51bWJlcjtcclxuICBkb2N1bWVudExpbmVzOiBSZWNlaXB0RnJvbVByb2R1Y3Rpb25zTGluZXNbXSA9IFtdO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVjZWlwdEZyb21Qcm9kdWN0aW9uc0xpbmVzIHtcclxuICB3YXJlaG91c2VDb2RlOiBzdHJpbmc7XHJcbiAgcXVhbnRpdHk6IG51bWJlcjtcclxuICBiYXNlVHlwZTogbnVtYmVyO1xyXG4gIGJhc2VFbnRyeTogbnVtYmVyO1xyXG4gIGJhdGNoTnVtYmVyczogUmVjZWlwdEZyb21Qcm9kdWN0aW9uc0JhdGNoTnVtYmVyc1tdID0gW107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZWNlaXB0RnJvbVByb2R1Y3Rpb25zQmF0Y2hOdW1iZXJzIHtcclxuICBiYXRjaE51bWJlcjogc3RyaW5nO1xyXG4gIHF1YW50aXR5OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0aW9uT3JkZXJMaW5lIHtcclxuICBhYnNvbHV0ZUVudHJ5OiBudW1iZXI7IC8vIERvYyBFbnRyeSBQS1xyXG4gIGxpbmVOdW06IG51bWJlcjsgLy8gU2F0xLFyIE51bWFyYXPEsVxyXG4gIGJhdGNoTnVtYmVyOiBzdHJpbmc7IC8vIFBhcnRpIE51bWFyYXPEsVxyXG4gIGl0ZW1Db2RlOiBzdHJpbmc7IC8vIFBhcsOnYSBLb2R1XHJcbiAgaXRlbU5hbWU6IHN0cmluZzsgLy8gUGFyw6dhIEFkxLFcclxuICBwbGFubmVkUXR5OiBudW1iZXI7IC8vIE1pa3RhciB2ZSBUb3BsYW5hbiBrxLFzbcSxbmEgZ2VsZWNlayBUb3BsYW5hbiBkZcSfacWfdGlyaWxlYmlsZWNla1xyXG4gIHdhcmVob3VzZTogc3RyaW5nOyAvLyBIZWRlZiBEZXBvXHJcbiAgdW5pdE9mTWVhc3VyZW1lbnQ6IHN0cmluZzsgLy8gQmlyaW0gVMO8csO8XHJcbiAgaXNzdWVkUXR5OiBudW1iZXI7IC8vIFRvcGxhbmFuXHJcbiAgcXVhbnRpdHk6IG51bWJlciA9IDA7XHJcbn1cclxuIl19