techlify-inventory-common 18.4.1 → 18.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/inventory-common/inventory-dashboard-page/inventory-dashboard-page.component.mjs +8 -8
- package/esm2022/lib/inventory-common/location/location.service.mjs +5 -1
- package/esm2022/lib/inventory-common/measure/measures-list/measures-list.component.mjs +12 -4
- package/esm2022/lib/inventory-common/product/product-basic-info/product-basic-info.component.mjs +3 -3
- package/esm2022/lib/inventory-common/product/product-list/product-list.component.mjs +25 -17
- package/esm2022/lib/inventory-common/product/product-measure-form/product-measure-form.component.mjs +9 -9
- package/esm2022/lib/inventory-common/product/product-measures-list/product-measures-list.component.mjs +8 -8
- package/esm2022/lib/inventory-common/product/product-quick-search/product-quick-search.component.mjs +2 -2
- package/esm2022/lib/inventory-common/product/product-summary-chart/product-summary-chart.component.mjs +8 -8
- package/esm2022/lib/inventory-common/product/product-summary.service.mjs +20 -0
- package/esm2022/lib/inventory-common/product/product-view-page/product-view-page.component.mjs +1 -1
- package/esm2022/lib/inventory-common/product/product.service.mjs +4 -33
- package/esm2022/lib/inventory-common/reports/inventory-value-report/inventory-value-report.component.mjs +18 -52
- package/esm2022/lib/inventory-common/stock-issuances/stock-issuances-list/stock-issuances-list.component.mjs +4 -4
- package/esm2022/lib/inventory-common/stock-issuances/stock-issue-form/stock-issue-form/stock-issue-form.component.mjs +23 -11
- package/esm2022/lib/inventory-common/stock-issuances/stock-issue-form/stock-issue-form.module.mjs +5 -25
- package/esm2022/lib/inventory-common/stock-issuances/stock-issue-import-page/stock-issue-import-page.component.mjs +2 -2
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form/stock-receipt-form.component.mjs +27 -12
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form-button/stock-receipt-form-button.component.mjs +6 -3
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form.module.mjs +9 -25
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-import-page/stock-receipt-import-page.component.mjs +2 -2
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipts-list-page/stock-receipts-list-page.component.mjs +16 -5
- package/esm2022/lib/inventory-common/supplier/supplier-view/supplier-view.component.mjs +7 -5
- package/esm2022/lib/inventory-common/supplier/supplier.module.mjs +8 -4
- package/fesm2022/{techlify-inventory-common-category.module-isHvDgRZ.mjs → techlify-inventory-common-category.module-BSXuRnsI.mjs} +14 -14
- package/fesm2022/{techlify-inventory-common-category.module-isHvDgRZ.mjs.map → techlify-inventory-common-category.module-BSXuRnsI.mjs.map} +1 -1
- package/fesm2022/{techlify-inventory-common-location.module-DI57PYtO.mjs → techlify-inventory-common-location.module-hLxnh3np.mjs} +7 -26
- package/fesm2022/techlify-inventory-common-location.module-hLxnh3np.mjs.map +1 -0
- package/fesm2022/{techlify-inventory-common-measure.module-eEfRzXya.mjs → techlify-inventory-common-measure.module-CZcQfmvz.mjs} +23 -29
- package/fesm2022/techlify-inventory-common-measure.module-CZcQfmvz.mjs.map +1 -0
- package/fesm2022/{techlify-inventory-common-stock-issuances.module-BnpAew18.mjs → techlify-inventory-common-stock-issuances.module-9HG3-aO_.mjs} +3 -3
- package/fesm2022/techlify-inventory-common-stock-issuances.module-9HG3-aO_.mjs.map +1 -0
- package/fesm2022/{techlify-inventory-common-supplier.module-CbKK7WeC.mjs → techlify-inventory-common-supplier.module-BzCsszWn.mjs} +21 -17
- package/fesm2022/techlify-inventory-common-supplier.module-BzCsszWn.mjs.map +1 -0
- package/fesm2022/{techlify-inventory-common-techlify-inventory-common-BCHHzF2b.mjs → techlify-inventory-common-techlify-inventory-common-CmIBHBen.mjs} +229 -222
- package/fesm2022/techlify-inventory-common-techlify-inventory-common-CmIBHBen.mjs.map +1 -0
- package/fesm2022/techlify-inventory-common.mjs +1 -1
- package/lib/inventory-common/inventory-dashboard-page/inventory-dashboard-page.component.d.ts +3 -3
- package/lib/inventory-common/location/location.service.d.ts +1 -0
- package/lib/inventory-common/product/product-list/product-list.component.d.ts +1 -0
- package/lib/inventory-common/product/product-measure-form/product-measure-form.component.d.ts +3 -3
- package/lib/inventory-common/product/product-measures-list/product-measures-list.component.d.ts +3 -3
- package/lib/inventory-common/product/product-summary-chart/product-summary-chart.component.d.ts +3 -3
- package/lib/inventory-common/product/product-summary.service.d.ts +8 -0
- package/lib/inventory-common/product/product.service.d.ts +2 -13
- package/lib/inventory-common/stock-issuances/stock-issue-form/stock-issue-form/stock-issue-form.component.d.ts +5 -1
- package/lib/inventory-common/stock-issuances/stock-issue-form/stock-issue-form.module.d.ts +3 -8
- package/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form/stock-receipt-form.component.d.ts +7 -2
- package/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form-button/stock-receipt-form-button.component.d.ts +2 -1
- package/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form.module.d.ts +5 -9
- package/lib/inventory-common/stock-receipts/stock-receipts-list-page/stock-receipts-list-page.component.d.ts +2 -1
- package/lib/inventory-common/supplier/supplier.module.d.ts +2 -1
- package/package.json +1 -1
- package/fesm2022/techlify-inventory-common-location.module-DI57PYtO.mjs.map +0 -1
- package/fesm2022/techlify-inventory-common-measure.module-eEfRzXya.mjs.map +0 -1
- package/fesm2022/techlify-inventory-common-stock-issuances.module-BnpAew18.mjs.map +0 -1
- package/fesm2022/techlify-inventory-common-supplier.module-CbKK7WeC.mjs.map +0 -1
- package/fesm2022/techlify-inventory-common-techlify-inventory-common-BCHHzF2b.mjs.map +0 -1
|
@@ -5,16 +5,18 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
import * as i1 from "ngx-techlify-core";
|
|
6
6
|
import * as i2 from "@angular/forms";
|
|
7
7
|
import * as i3 from "../../stock-issuance.service";
|
|
8
|
-
import * as i4 from "
|
|
9
|
-
import * as i5 from "@angular/
|
|
10
|
-
import * as i6 from "@angular/material/
|
|
8
|
+
import * as i4 from "../../../location/location.service";
|
|
9
|
+
import * as i5 from "@angular/common";
|
|
10
|
+
import * as i6 from "@angular/material/button";
|
|
11
11
|
import * as i7 from "@angular/material/datepicker";
|
|
12
|
-
import * as i8 from "@angular/material/
|
|
12
|
+
import * as i8 from "@angular/material/form-field";
|
|
13
|
+
import * as i9 from "@angular/material/input";
|
|
13
14
|
export class StockIssueFormComponent extends TechlifyFormComponentInterface {
|
|
14
15
|
formBuilder;
|
|
15
16
|
stockIssuanceService;
|
|
16
17
|
alertService;
|
|
17
18
|
dateUtils;
|
|
19
|
+
locationService;
|
|
18
20
|
product;
|
|
19
21
|
stockIssuance;
|
|
20
22
|
issuableType;
|
|
@@ -22,12 +24,14 @@ export class StockIssueFormComponent extends TechlifyFormComponentInterface {
|
|
|
22
24
|
saved = new EventEmitter();
|
|
23
25
|
cancelled = new EventEmitter();
|
|
24
26
|
isWorking;
|
|
25
|
-
|
|
27
|
+
locationsCountValue = 0;
|
|
28
|
+
constructor(formValidatorService, formBuilder, stockIssuanceService, alertService, dateUtils, locationService) {
|
|
26
29
|
super(formValidatorService);
|
|
27
30
|
this.formBuilder = formBuilder;
|
|
28
31
|
this.stockIssuanceService = stockIssuanceService;
|
|
29
32
|
this.alertService = alertService;
|
|
30
33
|
this.dateUtils = dateUtils;
|
|
34
|
+
this.locationService = locationService;
|
|
31
35
|
this.errorMessages = {
|
|
32
36
|
date: {
|
|
33
37
|
required: 'The date field is required.',
|
|
@@ -39,12 +43,16 @@ export class StockIssueFormComponent extends TechlifyFormComponentInterface {
|
|
|
39
43
|
this.form = this.formBuilder.group({
|
|
40
44
|
id: [''],
|
|
41
45
|
product_id: [''],
|
|
46
|
+
location_id: ['', Validators.required],
|
|
42
47
|
date: [new Date(), Validators.required],
|
|
43
48
|
quantity: [1, Validators.required],
|
|
44
49
|
particulars: [''],
|
|
45
50
|
});
|
|
46
51
|
}
|
|
47
52
|
ngOnInit() {
|
|
53
|
+
this.locationService.count().subscribe((count) => {
|
|
54
|
+
this.locationsCountValue = count;
|
|
55
|
+
});
|
|
48
56
|
if (this.product) {
|
|
49
57
|
this.form.get('product_id')?.setValue(this.product?.id);
|
|
50
58
|
}
|
|
@@ -58,13 +66,17 @@ export class StockIssueFormComponent extends TechlifyFormComponentInterface {
|
|
|
58
66
|
else {
|
|
59
67
|
// on create for set default quantity from last record
|
|
60
68
|
if (this.product?.last_stock_issuance) {
|
|
61
|
-
const { quantity } = this.product.last_stock_issuance;
|
|
69
|
+
const { quantity, location_id } = this.product.last_stock_issuance;
|
|
62
70
|
this.form.patchValue({
|
|
63
71
|
quantity,
|
|
72
|
+
location_id,
|
|
64
73
|
});
|
|
65
74
|
}
|
|
66
75
|
}
|
|
67
76
|
}
|
|
77
|
+
get locationsCount() {
|
|
78
|
+
return this.locationsCountValue;
|
|
79
|
+
}
|
|
68
80
|
save() {
|
|
69
81
|
if (this.form.invalid) {
|
|
70
82
|
this.alertService.addAlert('Please check the form for errors', 'error');
|
|
@@ -98,13 +110,13 @@ export class StockIssueFormComponent extends TechlifyFormComponentInterface {
|
|
|
98
110
|
onProductChange(product) {
|
|
99
111
|
this.product = product;
|
|
100
112
|
}
|
|
101
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssueFormComponent, deps: [{ token: i1.FormValidatorService }, { token: i2.FormBuilder }, { token: i3.StockIssuanceService }, { token: i1.AlertService }, { token: i1.DateUtils }], target: i0.ɵɵFactoryTarget.Component });
|
|
102
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StockIssueFormComponent, selector: "app-stock-issue-form", inputs: { product: "product", stockIssuance: "stockIssuance", issuableType: "issuableType", issuableId: "issuableId" }, outputs: { saved: "saved", cancelled: "cancelled" }, usesInheritance: true, ngImport: i0, template: "<h3 class=\"text-center\">{{ stockIssuance?.id ? 'Edit' : 'Issue' }} Stock for {{ product?.name }}</h3>\n<form [formGroup]=\"form\" class=\"d-flex flex-column gap-1 justify-content-start\" (submit)=\"save()\">\n <mat-form-field *ngIf=\"!product\">\n <mat-label>Product</mat-label>\n <app-searchable-selector
|
|
113
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssueFormComponent, deps: [{ token: i1.FormValidatorService }, { token: i2.FormBuilder }, { token: i3.StockIssuanceService }, { token: i1.AlertService }, { token: i1.DateUtils }, { token: i4.LocationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
114
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StockIssueFormComponent, selector: "app-stock-issue-form", inputs: { product: "product", stockIssuance: "stockIssuance", issuableType: "issuableType", issuableId: "issuableId" }, outputs: { saved: "saved", cancelled: "cancelled" }, usesInheritance: true, ngImport: i0, template: "<h3 class=\"text-center\">{{ stockIssuance?.id ? 'Edit' : 'Issue' }} Stock for {{ product?.name }}</h3>\n<form [formGroup]=\"form\" class=\"d-flex flex-column gap-1 justify-content-start\" (submit)=\"save()\">\n <mat-form-field *ngIf=\"!product\">\n <mat-label>Product</mat-label>\n <app-searchable-selector formControlName=\"product_id\" apiUrl=\"api/products\" titleField=\"name\"\n (selectedValueChange)=\"onProductChange($event)\"></app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"locationsCount > 1\">\n <mat-label>Location</mat-label>\n <app-searchable-selector required formControlName=\"location_id\" apiUrl=\"api/inventory-locations\"></app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Date</mat-label>\n <input matInput [matDatepicker]=\"datePicker\" formControlName=\"date\" (focus)=\"datePicker.open()\" />\n <mat-datepicker #datePicker></mat-datepicker>\n <mat-error *ngIf=\"isFieldValid('date')\">\n {{ getErrorMessage('date') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Quantity</mat-label>\n <input matInput formControlName=\"quantity\" type=\"number\" min=\"0\" />\n <mat-error *ngIf=\"isFieldValid('quantity')\">\n {{ getErrorMessage('quantity') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Particulars</mat-label>\n <textarea matInput formControlName=\"particulars\" rows=\"3\"></textarea>\n </mat-form-field>\n\n <div class=\"d-flex justify-content-end align-items-center gap-2\">\n <button [disabled]=\"isWorking\" mat-raised-button color=\"primary\" type=\"submit\">Save</button>\n <button [disabled]=\"isWorking\" (click)=\"cancelled.emit()\" mat-flat-button type=\"button\">Cancel</button>\n </div>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i7.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i7.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i1.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }], preserveWhitespaces: true });
|
|
103
115
|
}
|
|
104
116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssueFormComponent, decorators: [{
|
|
105
117
|
type: Component,
|
|
106
|
-
args: [{ selector: 'app-stock-issue-form', template: "<h3 class=\"text-center\">{{ stockIssuance?.id ? 'Edit' : 'Issue' }} Stock for {{ product?.name }}</h3>\n<form [formGroup]=\"form\" class=\"d-flex flex-column gap-1 justify-content-start\" (submit)=\"save()\">\n <mat-form-field *ngIf=\"!product\">\n <mat-label>Product</mat-label>\n <app-searchable-selector
|
|
107
|
-
}], ctorParameters: () => [{ type: i1.FormValidatorService }, { type: i2.FormBuilder }, { type: i3.StockIssuanceService }, { type: i1.AlertService }, { type: i1.DateUtils }], propDecorators: { product: [{
|
|
118
|
+
args: [{ selector: 'app-stock-issue-form', template: "<h3 class=\"text-center\">{{ stockIssuance?.id ? 'Edit' : 'Issue' }} Stock for {{ product?.name }}</h3>\n<form [formGroup]=\"form\" class=\"d-flex flex-column gap-1 justify-content-start\" (submit)=\"save()\">\n <mat-form-field *ngIf=\"!product\">\n <mat-label>Product</mat-label>\n <app-searchable-selector formControlName=\"product_id\" apiUrl=\"api/products\" titleField=\"name\"\n (selectedValueChange)=\"onProductChange($event)\"></app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"locationsCount > 1\">\n <mat-label>Location</mat-label>\n <app-searchable-selector required formControlName=\"location_id\" apiUrl=\"api/inventory-locations\"></app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Date</mat-label>\n <input matInput [matDatepicker]=\"datePicker\" formControlName=\"date\" (focus)=\"datePicker.open()\" />\n <mat-datepicker #datePicker></mat-datepicker>\n <mat-error *ngIf=\"isFieldValid('date')\">\n {{ getErrorMessage('date') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Quantity</mat-label>\n <input matInput formControlName=\"quantity\" type=\"number\" min=\"0\" />\n <mat-error *ngIf=\"isFieldValid('quantity')\">\n {{ getErrorMessage('quantity') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Particulars</mat-label>\n <textarea matInput formControlName=\"particulars\" rows=\"3\"></textarea>\n </mat-form-field>\n\n <div class=\"d-flex justify-content-end align-items-center gap-2\">\n <button [disabled]=\"isWorking\" mat-raised-button color=\"primary\" type=\"submit\">Save</button>\n <button [disabled]=\"isWorking\" (click)=\"cancelled.emit()\" mat-flat-button type=\"button\">Cancel</button>\n </div>\n</form>" }]
|
|
119
|
+
}], ctorParameters: () => [{ type: i1.FormValidatorService }, { type: i2.FormBuilder }, { type: i3.StockIssuanceService }, { type: i1.AlertService }, { type: i1.DateUtils }, { type: i4.LocationService }], propDecorators: { product: [{
|
|
108
120
|
type: Input
|
|
109
121
|
}], stockIssuance: [{
|
|
110
122
|
type: Input
|
|
@@ -117,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
117
129
|
}], cancelled: [{
|
|
118
130
|
type: Output
|
|
119
131
|
}] } });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staXNzdWUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9zdG9jay1pc3N1YW5jZXMvc3RvY2staXNzdWUtZm9ybS9zdG9jay1pc3N1ZS1mb3JtL3N0b2NrLWlzc3VlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vc3RvY2staXNzdWFuY2VzL3N0b2NrLWlzc3VlLWZvcm0vc3RvY2staXNzdWUtZm9ybS9zdG9jay1pc3N1ZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFpRCw4QkFBOEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xILE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQVN6RCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsOEJBQThCO0lBWS9EO0lBQ0E7SUFDQTtJQUNBO0lBZEQsT0FBTyxDQUFNO0lBQ2IsYUFBYSxDQUFNO0lBQ25CLFlBQVksQ0FBVTtJQUN0QixVQUFVLENBQVU7SUFDbkIsS0FBSyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ25ELFNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVqRSxTQUFTLENBQVc7SUFFcEIsWUFDRSxvQkFBMEMsRUFDbEMsV0FBd0IsRUFDeEIsb0JBQTBDLEVBQzFDLFlBQTBCLEVBQzFCLFNBQW9CO1FBRTVCLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBTHBC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UUFDckUsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQzNCLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQ2hCLElBQUksRUFBRSxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxvQ0FBb0MsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM5RSxDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFZO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7d0dBM0ZVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLGdRQ1hwQyx3a0RBdUNBOzs0RkQ1QmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQjt5TUFLdkIsT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBEYXRlVXRpbHMsIEZvcm1WYWxpZGF0b3JTZXJ2aWNlLCBUZWNobGlmeUZvcm1Db21wb25lbnRJbnRlcmZhY2UgfSBmcm9tICduZ3gtdGVjaGxpZnktY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN0b2NrSXNzdWFuY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3RvY2staXNzdWFuY2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zdG9jay1pc3N1ZS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0b2NrLWlzc3VlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdG9jay1pc3N1ZS1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0b2NrSXNzdWVGb3JtQ29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlGb3JtQ29tcG9uZW50SW50ZXJmYWNlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHJvZHVjdDogYW55O1xuICBASW5wdXQoKSBzdG9ja0lzc3VhbmNlOiBhbnk7XG4gIEBJbnB1dCgpIGlzc3VhYmxlVHlwZSE6IHN0cmluZztcbiAgQElucHV0KCkgaXNzdWFibGVJZCE6IG51bWJlcjtcbiAgQE91dHB1dCgpIHNhdmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgY2FuY2VsbGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGlzV29ya2luZyE6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgc3RvY2tJc3N1YW5jZVNlcnZpY2U6IFN0b2NrSXNzdWFuY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRlVXRpbHM6IERhdGVVdGlsc1xuICApIHtcbiAgICBzdXBlcihmb3JtVmFsaWRhdG9yU2VydmljZSk7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0ge1xuICAgICAgZGF0ZToge1xuICAgICAgICByZXF1aXJlZDogJ1RoZSBkYXRlIGZpZWxkIGlzIHJlcXVpcmVkLicsXG4gICAgICB9LFxuICAgICAgcXVhbnRpdHk6IHtcbiAgICAgICAgcmVxdWlyZWQ6ICdUaGUgcXVhbnRpdHkgZmllbGQgaXMgcmVxdWlyZWQuJyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgaWQ6IFsnJ10sXG4gICAgICBwcm9kdWN0X2lkOiBbJyddLFxuICAgICAgZGF0ZTogW25ldyBEYXRlKCksIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgcXVhbnRpdHk6IFsxLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIHBhcnRpY3VsYXJzOiBbJyddLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMucHJvZHVjdCkge1xuICAgICAgdGhpcy5mb3JtLmdldCgncHJvZHVjdF9pZCcpPy5zZXRWYWx1ZSh0aGlzLnByb2R1Y3Q/LmlkKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RvY2tJc3N1YW5jZSkge1xuICAgICAgbGV0IGRhdGE6IGFueSA9IHsgLi4udGhpcy5zdG9ja0lzc3VhbmNlIH07XG4gICAgICBpZiAoZGF0YS5kYXRlKSB7XG4gICAgICAgIGRhdGEuZGF0ZSA9IG5ldyBEYXRlKGRhdGEuZGF0ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShkYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gb24gY3JlYXRlIGZvciBzZXQgZGVmYXVsdCBxdWFudGl0eSBmcm9tIGxhc3QgcmVjb3JkXG4gICAgICBpZiAodGhpcy5wcm9kdWN0Py5sYXN0X3N0b2NrX2lzc3VhbmNlKSB7XG4gICAgICAgIGNvbnN0IHsgcXVhbnRpdHkgfSA9IHRoaXMucHJvZHVjdC5sYXN0X3N0b2NrX2lzc3VhbmNlO1xuICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgcXVhbnRpdHksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydCgnUGxlYXNlIGNoZWNrIHRoZSBmb3JtIGZvciBlcnJvcnMnLCAnZXJyb3InKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGF0YTogYW55ID0ge1xuICAgICAgcHJvZHVjdF9pZDogdGhpcy5wcm9kdWN0Py5pZCxcbiAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcbiAgICB9O1xuICAgIGlmIChkYXRhLmRhdGUpIHtcbiAgICAgIGRhdGEuZGF0ZSA9IHRoaXMuZGF0ZVV0aWxzLmdldFlZWVlNTUREU3RyaW5nKGRhdGEuZGF0ZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzc3VhYmxlSWQgJiYgdGhpcy5pc3N1YWJsZVR5cGUpIHtcbiAgICAgIGRhdGEuaXNzdWFibGVfdHlwZSA9IHRoaXMuaXNzdWFibGVUeXBlO1xuICAgICAgZGF0YS5pc3N1YWJsZV9pZCA9IHRoaXMuaXNzdWFibGVJZDtcbiAgICB9XG5cbiAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgbGV0IHJlcXVlc3Q6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuc3RvY2tJc3N1YW5jZVNlcnZpY2Uuc3RvcmUoZGF0YSk7XG4gICAgaWYgKHRoaXMuc3RvY2tJc3N1YW5jZT8uaWQpIHtcbiAgICAgIHJlcXVlc3QgPSB0aGlzLnN0b2NrSXNzdWFuY2VTZXJ2aWNlLnVwZGF0ZShkYXRhKTtcbiAgICB9XG4gICAgcmVxdWVzdC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zYXZlZC5lbWl0KHJlc3BvbnNlPy5pdGVtKTtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ1N0b2NrIElzc3VhbmNlIFNhdmVkIFN1Y2Nlc3NmdWxseSEnLCAnc3VjY2VzcycpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiAodGhpcy5pc1dvcmtpbmcgPSBmYWxzZSksXG4gICAgfSk7XG4gIH1cblxuICBvblByb2R1Y3RDaGFuZ2UocHJvZHVjdDogYW55KSB7XG4gICAgdGhpcy5wcm9kdWN0ID0gcHJvZHVjdDtcbiAgfVxufVxuIiwiPGgzIGNsYXNzPVwidGV4dC1jZW50ZXJcIj57eyBzdG9ja0lzc3VhbmNlPy5pZCA/ICdFZGl0JyA6ICdJc3N1ZScgfX0gU3RvY2sgZm9yIHt7IHByb2R1Y3Q/Lm5hbWUgfX08L2gzPlxuPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTEganVzdGlmeS1jb250ZW50LXN0YXJ0XCIgKHN1Ym1pdCk9XCJzYXZlKClcIj5cbiAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiIXByb2R1Y3RcIj5cbiAgICA8bWF0LWxhYmVsPlByb2R1Y3Q8L21hdC1sYWJlbD5cbiAgICA8YXBwLXNlYXJjaGFibGUtc2VsZWN0b3JcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb2R1Y3RfaWRcIlxuICAgICAgYXBpVXJsPVwiYXBpL3Byb2R1Y3RzXCJcbiAgICAgIHRpdGxlRmllbGQ9XCJuYW1lXCJcbiAgICAgIChzZWxlY3RlZFZhbHVlQ2hhbmdlKT1cIm9uUHJvZHVjdENoYW5nZSgkZXZlbnQpXCJcbiAgICA+PC9hcHAtc2VhcmNoYWJsZS1zZWxlY3Rvcj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1sYWJlbD5EYXRlPC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IG1hdElucHV0IFttYXREYXRlcGlja2VyXT1cImRhdGVQaWNrZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCIgKGZvY3VzKT1cImRhdGVQaWNrZXIub3BlbigpXCIgLz5cbiAgICA8bWF0LWRhdGVwaWNrZXIgI2RhdGVQaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCdkYXRlJylcIj5cbiAgICAgIHt7IGdldEVycm9yTWVzc2FnZSgnZGF0ZScpIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+UXVhbnRpdHk8L21hdC1sYWJlbD5cbiAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicXVhbnRpdHlcIiB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiIC8+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgncXVhbnRpdHknKVwiPlxuICAgICAge3sgZ2V0RXJyb3JNZXNzYWdlKCdxdWFudGl0eScpIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+UGFydGljdWxhcnM8L21hdC1sYWJlbD5cbiAgICA8dGV4dGFyZWEgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicGFydGljdWxhcnNcIiByb3dzPVwiM1wiPjwvdGV4dGFyZWE+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImlzV29ya2luZ1wiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIj5TYXZlPC9idXR0b24+XG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNXb3JraW5nXCIgKGNsaWNrKT1cImNhbmNlbGxlZC5lbWl0KClcIiBtYXQtZmxhdC1idXR0b24gdHlwZT1cImJ1dHRvblwiPkNhbmNlbDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staXNzdWUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9zdG9jay1pc3N1YW5jZXMvc3RvY2staXNzdWUtZm9ybS9zdG9jay1pc3N1ZS1mb3JtL3N0b2NrLWlzc3VlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vc3RvY2staXNzdWFuY2VzL3N0b2NrLWlzc3VlLWZvcm0vc3RvY2staXNzdWUtZm9ybS9zdG9jay1pc3N1ZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFpRCw4QkFBOEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xILE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFTekQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLDhCQUE4QjtJQWEvRDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBaEJELE9BQU8sQ0FBTTtJQUNiLGFBQWEsQ0FBTTtJQUNuQixZQUFZLENBQVU7SUFDdEIsVUFBVSxDQUFVO0lBQ25CLEtBQUssR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUNuRCxTQUFTLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFFakUsU0FBUyxDQUFXO0lBQ1osbUJBQW1CLEdBQVcsQ0FBQyxDQUFDO0lBRXhDLFlBQ0Usb0JBQTBDLEVBQ2xDLFdBQXdCLEVBQ3hCLG9CQUEwQyxFQUMxQyxZQUEwQixFQUMxQixTQUFvQixFQUNw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QXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQjt1T0FLdkIsT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBEYXRlVXRpbHMsIEZvcm1WYWxpZGF0b3JTZXJ2aWNlLCBUZWNobGlmeUZvcm1Db21wb25lbnRJbnRlcmZhY2UgfSBmcm9tICduZ3gtdGVjaGxpZnktY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN0b2NrSXNzdWFuY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3RvY2staXNzdWFuY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9sb2NhdGlvbi9sb2NhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXN0b2NrLWlzc3VlLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RvY2staXNzdWUtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0b2NrLWlzc3VlLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RvY2tJc3N1ZUZvcm1Db21wb25lbnQgZXh0ZW5kcyBUZWNobGlmeUZvcm1Db21wb25lbnRJbnRlcmZhY2UgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwcm9kdWN0OiBhbnk7XG4gIEBJbnB1dCgpIHN0b2NrSXNzdWFuY2U6IGFueTtcbiAgQElucHV0KCkgaXNzdWFibGVUeXBlITogc3RyaW5nO1xuICBASW5wdXQoKSBpc3N1YWJsZUlkITogbnVtYmVyO1xuICBAT3V0cHV0KCkgc2F2ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxsZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgaXNXb3JraW5nITogYm9vbGVhbjtcbiAgcHJpdmF0ZSBsb2NhdGlvbnNDb3VudFZhbHVlOiBudW1iZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGZvcm1WYWxpZGF0b3JTZXJ2aWNlOiBGb3JtVmFsaWRhdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHN0b2NrSXNzdWFuY2VTZXJ2aWNlOiBTdG9ja0lzc3VhbmNlU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0ZVV0aWxzOiBEYXRlVXRpbHMsXG4gICAgcHJpdmF0ZSBsb2NhdGlvblNlcnZpY2U6IExvY2F0aW9uU2VydmljZVxuICApIHtcbiAgICBzdXBlcihmb3JtVmFsaWRhdG9yU2VydmljZSk7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0ge1xuICAgICAgZGF0ZToge1xuICAgICAgICByZXF1aXJlZDogJ1RoZSBkYXRlIGZpZWxkIGlzIHJlcXVpcmVkLicsXG4gICAgICB9LFxuICAgICAgcXVhbnRpdHk6IHtcbiAgICAgICAgcmVxdWlyZWQ6ICdUaGUgcXVhbnRpdHkgZmllbGQgaXMgcmVxdWlyZWQuJyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgaWQ6IFsnJ10sXG4gICAgICBwcm9kdWN0X2lkOiBbJyddLFxuICAgICAgbG9jYXRpb25faWQ6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBkYXRlOiBbbmV3IERhdGUoKSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBxdWFudGl0eTogWzEsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgcGFydGljdWxhcnM6IFsnJ10sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxvY2F0aW9uU2VydmljZS5jb3VudCgpLnN1YnNjcmliZSgoY291bnQ6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy5sb2NhdGlvbnNDb3VudFZhbHVlID0gY291bnQ7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5wcm9kdWN0KSB7XG4gICAgICB0aGlzLmZvcm0uZ2V0KCdwcm9kdWN0X2lkJyk/LnNldFZhbHVlKHRoaXMucHJvZHVjdD8uaWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdG9ja0lzc3VhbmNlKSB7XG4gICAgICBsZXQgZGF0YTogYW55ID0geyAuLi50aGlzLnN0b2NrSXNzdWFuY2UgfTtcbiAgICAgIGlmIChkYXRhLmRhdGUpIHtcbiAgICAgICAgZGF0YS5kYXRlID0gbmV3IERhdGUoZGF0YS5kYXRlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBvbiBjcmVhdGUgZm9yIHNldCBkZWZhdWx0IHF1YW50aXR5IGZyb20gbGFzdCByZWNvcmRcbiAgICAgIGlmICh0aGlzLnByb2R1Y3Q/Lmxhc3Rfc3RvY2tfaXNzdWFuY2UpIHtcbiAgICAgICAgY29uc3QgeyBxdWFudGl0eSwgbG9jYXRpb25faWQgfSA9IHRoaXMucHJvZHVjdC5sYXN0X3N0b2NrX2lzc3VhbmNlO1xuICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgcXVhbnRpdHksXG4gICAgICAgICAgbG9jYXRpb25faWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBsb2NhdGlvbnNDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uc0NvdW50VmFsdWU7XG4gIH1cblxuICBzYXZlKCkge1xuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ1BsZWFzZSBjaGVjayB0aGUgZm9ybSBmb3IgZXJyb3JzJywgJ2Vycm9yJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGRhdGE6IGFueSA9IHtcbiAgICAgIHByb2R1Y3RfaWQ6IHRoaXMucHJvZHVjdD8uaWQsXG4gICAgICAuLi50aGlzLmZvcm0udmFsdWUsXG4gICAgfTtcbiAgICBpZiAoZGF0YS5kYXRlKSB7XG4gICAgICBkYXRhLmRhdGUgPSB0aGlzLmRhdGVVdGlscy5nZXRZWVlZTU1ERFN0cmluZyhkYXRhLmRhdGUpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc3N1YWJsZUlkICYmIHRoaXMuaXNzdWFibGVUeXBlKSB7XG4gICAgICBkYXRhLmlzc3VhYmxlX3R5cGUgPSB0aGlzLmlzc3VhYmxlVHlwZTtcbiAgICAgIGRhdGEuaXNzdWFibGVfaWQgPSB0aGlzLmlzc3VhYmxlSWQ7XG4gICAgfVxuXG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIGxldCByZXF1ZXN0OiBhbnkgPSB0aGlzLnN0b2NrSXNzdWFuY2VTZXJ2aWNlLnN0b3JlKGRhdGEpO1xuICAgIGlmICh0aGlzLnN0b2NrSXNzdWFuY2U/LmlkKSB7XG4gICAgICByZXF1ZXN0ID0gdGhpcy5zdG9ja0lzc3VhbmNlU2VydmljZS51cGRhdGUoZGF0YSk7XG4gICAgfVxuICAgIHJlcXVlc3Quc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2F2ZWQuZW1pdChyZXNwb25zZT8uaXRlbSk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KCdTdG9jayBJc3N1YW5jZSBTYXZlZCBTdWNjZXNzZnVsbHkhJywgJ3N1Y2Nlc3MnKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4gKHRoaXMuaXNXb3JraW5nID0gZmFsc2UpLFxuICAgIH0pO1xuICB9XG5cbiAgb25Qcm9kdWN0Q2hhbmdlKHByb2R1Y3Q6IGFueSkge1xuICAgIHRoaXMucHJvZHVjdCA9IHByb2R1Y3Q7XG4gIH1cbn1cbiIsIjxoMyBjbGFzcz1cInRleHQtY2VudGVyXCI+e3sgc3RvY2tJc3N1YW5jZT8uaWQgPyAnRWRpdCcgOiAnSXNzdWUnIH19IFN0b2NrIGZvciB7eyBwcm9kdWN0Py5uYW1lIH19PC9oMz5cbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0xIGp1c3RpZnktY29udGVudC1zdGFydFwiIChzdWJtaXQpPVwic2F2ZSgpXCI+XG4gIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIiFwcm9kdWN0XCI+XG4gICAgPG1hdC1sYWJlbD5Qcm9kdWN0PC9tYXQtbGFiZWw+XG4gICAgPGFwcC1zZWFyY2hhYmxlLXNlbGVjdG9yIGZvcm1Db250cm9sTmFtZT1cInByb2R1Y3RfaWRcIiBhcGlVcmw9XCJhcGkvcHJvZHVjdHNcIiB0aXRsZUZpZWxkPVwibmFtZVwiXG4gICAgICAoc2VsZWN0ZWRWYWx1ZUNoYW5nZSk9XCJvblByb2R1Y3RDaGFuZ2UoJGV2ZW50KVwiPjwvYXBwLXNlYXJjaGFibGUtc2VsZWN0b3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwibG9jYXRpb25zQ291bnQgPiAxXCI+XG4gICAgPG1hdC1sYWJlbD5Mb2NhdGlvbjwvbWF0LWxhYmVsPlxuICAgIDxhcHAtc2VhcmNoYWJsZS1zZWxlY3RvciByZXF1aXJlZCBmb3JtQ29udHJvbE5hbWU9XCJsb2NhdGlvbl9pZFwiIGFwaVVybD1cImFwaS9pbnZlbnRvcnktbG9jYXRpb25zXCI+PC9hcHAtc2VhcmNoYWJsZS1zZWxlY3Rvcj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1sYWJlbD5EYXRlPC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IG1hdElucHV0IFttYXREYXRlcGlja2VyXT1cImRhdGVQaWNrZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCIgKGZvY3VzKT1cImRhdGVQaWNrZXIub3BlbigpXCIgLz5cbiAgICA8bWF0LWRhdGVwaWNrZXIgI2RhdGVQaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCdkYXRlJylcIj5cbiAgICAgIHt7IGdldEVycm9yTWVzc2FnZSgnZGF0ZScpIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+UXVhbnRpdHk8L21hdC1sYWJlbD5cbiAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicXVhbnRpdHlcIiB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiIC8+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgncXVhbnRpdHknKVwiPlxuICAgICAge3sgZ2V0RXJyb3JNZXNzYWdlKCdxdWFudGl0eScpIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+UGFydGljdWxhcnM8L21hdC1sYWJlbD5cbiAgICA8dGV4dGFyZWEgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicGFydGljdWxhcnNcIiByb3dzPVwiM1wiPjwvdGV4dGFyZWE+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImlzV29ya2luZ1wiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIj5TYXZlPC9idXR0b24+XG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNXb3JraW5nXCIgKGNsaWNrKT1cImNhbmNlbGxlZC5lbWl0KClcIiBtYXQtZmxhdC1idXR0b24gdHlwZT1cImJ1dHRvblwiPkNhbmNlbDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT4iXX0=
|
package/esm2022/lib/inventory-common/stock-issuances/stock-issue-form/stock-issue-form.module.mjs
CHANGED
|
@@ -3,33 +3,18 @@ import { CommonModule } from '@angular/common';
|
|
|
3
3
|
import { StockIssueFormComponent } from './stock-issue-form/stock-issue-form.component';
|
|
4
4
|
import { StockIssueFormButtonComponent } from './stock-issue-form-button/stock-issue-form-button.component';
|
|
5
5
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
6
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
7
|
-
import { MatInputModule } from '@angular/material/input';
|
|
8
|
-
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
9
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
10
|
-
import { MatDialogModule } from '@angular/material/dialog';
|
|
11
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
12
6
|
import { SearchableSelectorModule } from 'ngx-techlify-core';
|
|
7
|
+
import { MaterialModule } from '../../material.module';
|
|
13
8
|
import * as i0 from "@angular/core";
|
|
14
9
|
export class StockIssueFormModule {
|
|
15
10
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssueFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
11
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: StockIssueFormModule, declarations: [StockIssueFormComponent, StockIssueFormButtonComponent], imports: [CommonModule,
|
|
17
12
|
ReactiveFormsModule,
|
|
18
|
-
|
|
19
|
-
MatInputModule,
|
|
20
|
-
MatDatepickerModule,
|
|
21
|
-
MatButtonModule,
|
|
22
|
-
MatDialogModule,
|
|
23
|
-
MatTooltipModule,
|
|
13
|
+
MaterialModule,
|
|
24
14
|
SearchableSelectorModule], exports: [StockIssueFormButtonComponent] });
|
|
25
15
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssueFormModule, imports: [CommonModule,
|
|
26
16
|
ReactiveFormsModule,
|
|
27
|
-
|
|
28
|
-
MatInputModule,
|
|
29
|
-
MatDatepickerModule,
|
|
30
|
-
MatButtonModule,
|
|
31
|
-
MatDialogModule,
|
|
32
|
-
MatTooltipModule,
|
|
17
|
+
MaterialModule,
|
|
33
18
|
SearchableSelectorModule] });
|
|
34
19
|
}
|
|
35
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssueFormModule, decorators: [{
|
|
@@ -40,14 +25,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
40
25
|
imports: [
|
|
41
26
|
CommonModule,
|
|
42
27
|
ReactiveFormsModule,
|
|
43
|
-
|
|
44
|
-
MatInputModule,
|
|
45
|
-
MatDatepickerModule,
|
|
46
|
-
MatButtonModule,
|
|
47
|
-
MatDialogModule,
|
|
48
|
-
MatTooltipModule,
|
|
28
|
+
MaterialModule,
|
|
49
29
|
SearchableSelectorModule,
|
|
50
30
|
],
|
|
51
31
|
}]
|
|
52
32
|
}] });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staXNzdWUtZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9zdG9jay1pc3N1YW5jZXMvc3RvY2staXNzdWUtZm9ybS9zdG9jay1pc3N1ZS1mb3JtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN4RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM1RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBWXZELE1BQU0sT0FBTyxvQkFBb0I7d0dBQXBCLG9CQUFvQjt5R0FBcEIsb0JBQW9CLGlCQVRoQix1QkFBdUIsRUFBRSw2QkFBNkIsYUFHbkUsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixjQUFjO1lBQ2Qsd0JBQXdCLGFBTGhCLDZCQUE2Qjt5R0FRNUIsb0JBQW9CLFlBTjdCLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLHdCQUF3Qjs7NEZBR2Ysb0JBQW9CO2tCQVZoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHVCQUF1QixFQUFFLDZCQUE2QixDQUFDO29CQUN0RSxPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDeEMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLHdCQUF3QjtxQkFDekI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFN0b2NrSXNzdWVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9zdG9jay1pc3N1ZS1mb3JtL3N0b2NrLWlzc3VlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFN0b2NrSXNzdWVGb3JtQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9zdG9jay1pc3N1ZS1mb3JtLWJ1dHRvbi9zdG9jay1pc3N1ZS1mb3JtLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSB9IGZyb20gJ25neC10ZWNobGlmeS1jb3JlJztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vLi4vbWF0ZXJpYWwubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU3RvY2tJc3N1ZUZvcm1Db21wb25lbnQsIFN0b2NrSXNzdWVGb3JtQnV0dG9uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1N0b2NrSXNzdWVGb3JtQnV0dG9uQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RvY2tJc3N1ZUZvcm1Nb2R1bGUge31cbiJdfQ==
|
|
@@ -40,7 +40,7 @@ export class StockIssueImportPageComponent {
|
|
|
40
40
|
type: 'stock-issue',
|
|
41
41
|
apiUrl: 'api/import-histories',
|
|
42
42
|
},
|
|
43
|
-
viewRouterLink: '/stock-issuances',
|
|
43
|
+
viewRouterLink: '/inventory/stock-issuances',
|
|
44
44
|
};
|
|
45
45
|
constructor() { }
|
|
46
46
|
ngOnInit() {
|
|
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
56
56
|
ImportCsvModule
|
|
57
57
|
], template: "<app-import-csv [config]=\"importConfig\"></app-import-csv>" }]
|
|
58
58
|
}], ctorParameters: () => [] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staXNzdWUtaW1wb3J0LXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vc3RvY2staXNzdWFuY2VzL3N0b2NrLWlzc3VlLWltcG9ydC1wYWdlL3N0b2NrLWlzc3VlLWltcG9ydC1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL3N0b2NrLWlzc3VhbmNlcy9zdG9jay1pc3N1ZS1pbXBvcnQtcGFnZS9zdG9jay1pc3N1ZS1pbXBvcnQtcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFtQixlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBYXJFLE1BQU0sT0FBTyw2QkFBNkI7SUFFeEMsWUFBWSxHQUFvQjtRQUM5QixNQUFNLEVBQUUseUJBQXlCO1FBQ2pDLEtBQUssRUFBRSxjQUFjO1FBQ3JCLFVBQVUsRUFBRSxhQUFhO1FBQ3pCLFVBQVUsRUFBRTtZQUNWO2dCQUNFLEtBQUssRUFBRSxTQUFTO2dCQUNoQixLQUFLLEVBQUUsU0FBUztnQkFDaEIsSUFBSSxFQUFFLE1BQU07YUFDYjtZQUNEO2dCQUNFLEtBQUssRUFBRSxNQUFNO2dCQUNiLEtBQUssRUFBRSxNQUFNO2dCQUNiLElBQUksRUFBRSxNQUFNO2FBQ2I7WUFDRDtnQkFDRSxLQUFLLEVBQUUsVUFBVTtnQkFDakIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLElBQUksRUFBRSxRQUFRO2FBQ2Y7WUFDRDtnQkFDRSxLQUFLLEVBQUUsYUFBYTtnQkFDcEIsS0FBSyxFQUFFLGFBQWE7Z0JBQ3BCLElBQUksRUFBRSxNQUFNO2FBQ2I7U0FDRjtRQUNELFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsSUFBSSxFQUFFLDJDQUEyQztTQUNsRDtRQUNELGFBQWEsRUFBRTtZQUNiLFNBQVMsRUFBRSxJQUFJO1lBQ2YsSUFBSSxFQUFFLGFBQWE7WUFDbkIsTUFBTSxFQUFFLHNCQUFzQjtTQUMvQjtRQUNELGNBQWMsRUFBRSw0QkFBNEI7S0FDN0MsQ0FBQztJQUVGLGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO3dHQTNDVSw2QkFBNkI7NEZBQTdCLDZCQUE2Qix1RkNoQjFDLDZEQUF5RCx5RERXckQsWUFBWSw4QkFDWixjQUFjLDhCQUNkLGVBQWU7OzRGQUdOLDZCQUE2QjtrQkFYekMsU0FBUzsrQkFDRSw2QkFBNkIsY0FHM0IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxlQUFlO3FCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi8uLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgSW1wb3J0Q3N2Q29uZmlnLCBJbXBvcnRDc3ZNb2R1bGUgfSBmcm9tICduZ3gtdGVjaGxpZnktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zdG9jay1pc3N1ZS1pbXBvcnQtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdG9jay1pc3N1ZS1pbXBvcnQtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0b2NrLWlzc3VlLWltcG9ydC1wYWdlLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRlcmlhbE1vZHVsZSxcbiAgICBJbXBvcnRDc3ZNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTdG9ja0lzc3VlSW1wb3J0UGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgaW1wb3J0Q29uZmlnOiBJbXBvcnRDc3ZDb25maWcgPSB7XG4gICAgYXBpVXJsOiAnYXBpL3N0b2NrLWlzc3Vlcy1pbXBvcnQnLFxuICAgIHRpdGxlOiAnU3RvY2sgSXNzdWVzJyxcbiAgICBpbXBvcnRUeXBlOiAnc3RvY2staXNzdWUnLFxuICAgIHByb3BlcnRpZXM6IFtcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICdQcm9kdWN0JyxcbiAgICAgICAgdmFsdWU6ICdwcm9kdWN0JyxcbiAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICdEYXRlJyxcbiAgICAgICAgdmFsdWU6ICdkYXRlJyxcbiAgICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICdRdWFudGl0eScsXG4gICAgICAgIHZhbHVlOiAncXVhbnRpdHknLFxuICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAnUGFydGljdWxhcnMnLFxuICAgICAgICB2YWx1ZTogJ3BhcnRpY3VsYXJzJyxcbiAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIHNhbXBsZUZpbGU6IHtcbiAgICAgIG5hbWU6ICdTdG9jayBJc3N1ZSBTYW1wbGUnLFxuICAgICAgcGF0aDogJ2Fzc2V0cy9zdG9jay1pc3N1ZS9zdG9jay1pc3N1ZS1zYW1wbGUuY3N2JyxcbiAgICB9LFxuICAgIGltcG9ydEhpc3Rvcnk6IHtcbiAgICAgIGlzRW5hYmxlZDogdHJ1ZSxcbiAgICAgIHR5cGU6ICdzdG9jay1pc3N1ZScsXG4gICAgICBhcGlVcmw6ICdhcGkvaW1wb3J0LWhpc3RvcmllcycsXG4gICAgfSxcbiAgICB2aWV3Um91dGVyTGluazogJy9pbnZlbnRvcnkvc3RvY2staXNzdWFuY2VzJyxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbn1cbiIsIjxhcHAtaW1wb3J0LWNzdiBbY29uZmlnXT1cImltcG9ydENvbmZpZ1wiPjwvYXBwLWltcG9ydC1jc3Y+Il19
|
|
@@ -6,28 +6,33 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
import * as i1 from "ngx-techlify-core";
|
|
7
7
|
import * as i2 from "@angular/forms";
|
|
8
8
|
import * as i3 from "../../stock-receipt.service";
|
|
9
|
-
import * as i4 from "
|
|
10
|
-
import * as i5 from "
|
|
11
|
-
import * as i6 from "
|
|
12
|
-
import * as i7 from "@angular/material/
|
|
9
|
+
import * as i4 from "../../../location/location.service";
|
|
10
|
+
import * as i5 from "@angular/common";
|
|
11
|
+
import * as i6 from "../../../supplier/payee-selector/payee-selector/payee-selector.component";
|
|
12
|
+
import * as i7 from "@angular/material/button";
|
|
13
13
|
import * as i8 from "@angular/material/datepicker";
|
|
14
|
-
import * as i9 from "@angular/material/
|
|
14
|
+
import * as i9 from "@angular/material/form-field";
|
|
15
|
+
import * as i10 from "@angular/material/input";
|
|
15
16
|
export class StockReceiptFormComponent extends TechlifyFormComponentInterface {
|
|
16
17
|
formBuilder;
|
|
17
18
|
stockReceiptService;
|
|
18
19
|
alertService;
|
|
19
20
|
dateUtils;
|
|
21
|
+
locationService;
|
|
20
22
|
product;
|
|
21
23
|
stockReceipt;
|
|
24
|
+
latestLocationId;
|
|
22
25
|
saved = new EventEmitter();
|
|
23
26
|
cancelled = new EventEmitter();
|
|
24
27
|
isWorking;
|
|
25
|
-
|
|
28
|
+
locationsCountValue = 0;
|
|
29
|
+
constructor(formValidatorService, formBuilder, stockReceiptService, alertService, dateUtils, locationService) {
|
|
26
30
|
super(formValidatorService);
|
|
27
31
|
this.formBuilder = formBuilder;
|
|
28
32
|
this.stockReceiptService = stockReceiptService;
|
|
29
33
|
this.alertService = alertService;
|
|
30
34
|
this.dateUtils = dateUtils;
|
|
35
|
+
this.locationService = locationService;
|
|
31
36
|
this.errorMessages = {
|
|
32
37
|
date: {
|
|
33
38
|
required: 'The date field is required.',
|
|
@@ -42,6 +47,7 @@ export class StockReceiptFormComponent extends TechlifyFormComponentInterface {
|
|
|
42
47
|
this.form = this.formBuilder.group({
|
|
43
48
|
id: [''],
|
|
44
49
|
supplier_id: [''],
|
|
50
|
+
location_id: ['', Validators.required],
|
|
45
51
|
date: [new Date(), Validators.required],
|
|
46
52
|
quantity: [1, Validators.required],
|
|
47
53
|
purchase_price: [0, Validators.required],
|
|
@@ -50,6 +56,9 @@ export class StockReceiptFormComponent extends TechlifyFormComponentInterface {
|
|
|
50
56
|
});
|
|
51
57
|
}
|
|
52
58
|
ngOnInit() {
|
|
59
|
+
this.locationService.count().subscribe((count) => {
|
|
60
|
+
this.locationsCountValue = count;
|
|
61
|
+
});
|
|
53
62
|
this.form
|
|
54
63
|
.get('quantity')
|
|
55
64
|
?.valueChanges.pipe(debounceTime(500))
|
|
@@ -68,14 +77,18 @@ export class StockReceiptFormComponent extends TechlifyFormComponentInterface {
|
|
|
68
77
|
else {
|
|
69
78
|
// on create for set default quantity and purchase price from last record
|
|
70
79
|
if (this.product?.last_stock_receipt) {
|
|
71
|
-
const { quantity, purchase_price } = this.product.last_stock_receipt;
|
|
80
|
+
const { quantity, purchase_price, location_id } = this.product.last_stock_receipt;
|
|
72
81
|
this.form.patchValue({
|
|
73
82
|
quantity,
|
|
74
83
|
purchase_price,
|
|
84
|
+
location_id,
|
|
75
85
|
});
|
|
76
86
|
}
|
|
77
87
|
}
|
|
78
88
|
}
|
|
89
|
+
get locationsCount() {
|
|
90
|
+
return this.locationsCountValue;
|
|
91
|
+
}
|
|
79
92
|
save() {
|
|
80
93
|
if (this.form.invalid) {
|
|
81
94
|
this.alertService.addAlert('Please check the form for errors', 'error');
|
|
@@ -107,19 +120,21 @@ export class StockReceiptFormComponent extends TechlifyFormComponentInterface {
|
|
|
107
120
|
const amount = parseFloat(purchase_price) * parseFloat(quantity) || 0;
|
|
108
121
|
this.form.get('amount')?.setValue(amount);
|
|
109
122
|
}
|
|
110
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptFormComponent, deps: [{ token: i1.FormValidatorService }, { token: i2.FormBuilder }, { token: i3.StockReceiptService }, { token: i1.AlertService }, { token: i1.DateUtils }], target: i0.ɵɵFactoryTarget.Component });
|
|
111
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StockReceiptFormComponent, selector: "app-stock-receipt-form", inputs: { product: "product", stockReceipt: "stockReceipt" }, outputs: { saved: "saved", cancelled: "cancelled" }, usesInheritance: true, ngImport: i0, template: "<h3 class=\"text-center\">{{ stockReceipt?.id ? 'Edit' : 'Receive' }} Stock for {{ product?.name }}</h3>\n<form [formGroup]=\"form\" class=\"d-flex flex-column gap-1 justify-content-start\" (submit)=\"save()\">\n <app-payee-selector
|
|
123
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptFormComponent, deps: [{ token: i1.FormValidatorService }, { token: i2.FormBuilder }, { token: i3.StockReceiptService }, { token: i1.AlertService }, { token: i1.DateUtils }, { token: i4.LocationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
124
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StockReceiptFormComponent, selector: "app-stock-receipt-form", inputs: { product: "product", stockReceipt: "stockReceipt", latestLocationId: "latestLocationId" }, outputs: { saved: "saved", cancelled: "cancelled" }, usesInheritance: true, ngImport: i0, template: "<h3 class=\"text-center\">{{ stockReceipt?.id ? 'Edit' : 'Receive' }} Stock for {{ product?.name }}</h3>\n<form [formGroup]=\"form\" class=\"d-flex flex-column gap-1 justify-content-start\" (submit)=\"save()\">\n <app-payee-selector label=\"Supplier\" formControlName=\"supplier_id\" appearance=\"fill\"\n [showAddButton]=\"true\"></app-payee-selector>\n\n <mat-form-field *ngIf=\"locationsCount > 1\">\n <mat-label>Location</mat-label>\n <app-searchable-selector required formControlName=\"location_id\" apiUrl=\"api/inventory-locations\"></app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Date</mat-label>\n <input matInput [matDatepicker]=\"datePicker\" formControlName=\"date\" (focus)=\"datePicker.open()\" />\n <mat-datepicker #datePicker></mat-datepicker>\n <mat-error *ngIf=\"isFieldValid('date')\">\n {{ getErrorMessage('date') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Quantity</mat-label>\n <input matInput formControlName=\"quantity\" type=\"number\" min=\"0\" />\n <mat-error *ngIf=\"isFieldValid('quantity')\">\n {{ getErrorMessage('quantity') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Purchase Price</mat-label>\n <input matInput formControlName=\"purchase_price\" type=\"number\" min=\"0\" />\n <mat-error *ngIf=\"isFieldValid('purchase_price')\">\n {{ getErrorMessage('purchase_price') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Total Value</mat-label>\n <input matInput formControlName=\"amount\" readonly type=\"number\" min=\"0\" />\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Particulars</mat-label>\n <textarea matInput formControlName=\"particulars\" rows=\"3\"></textarea>\n </mat-form-field>\n\n <div class=\"d-flex justify-content-end align-items-center gap-2\">\n <button [disabled]=\"isWorking\" mat-raised-button color=\"primary\" type=\"submit\">Save</button>\n <button [disabled]=\"isWorking\" (click)=\"cancelled.emit()\" mat-flat-button type=\"button\">Cancel</button>\n </div>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.PayeeSelectorComponent, selector: "app-payee-selector", inputs: ["label", "appearance", "required", "showAddButton", "multiple"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i8.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i1.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }], preserveWhitespaces: true });
|
|
112
125
|
}
|
|
113
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptFormComponent, decorators: [{
|
|
114
127
|
type: Component,
|
|
115
|
-
args: [{ selector: 'app-stock-receipt-form', template: "<h3 class=\"text-center\">{{ stockReceipt?.id ? 'Edit' : 'Receive' }} Stock for {{ product?.name }}</h3>\n<form [formGroup]=\"form\" class=\"d-flex flex-column gap-1 justify-content-start\" (submit)=\"save()\">\n <app-payee-selector
|
|
116
|
-
}], ctorParameters: () => [{ type: i1.FormValidatorService }, { type: i2.FormBuilder }, { type: i3.StockReceiptService }, { type: i1.AlertService }, { type: i1.DateUtils }], propDecorators: { product: [{
|
|
128
|
+
args: [{ selector: 'app-stock-receipt-form', template: "<h3 class=\"text-center\">{{ stockReceipt?.id ? 'Edit' : 'Receive' }} Stock for {{ product?.name }}</h3>\n<form [formGroup]=\"form\" class=\"d-flex flex-column gap-1 justify-content-start\" (submit)=\"save()\">\n <app-payee-selector label=\"Supplier\" formControlName=\"supplier_id\" appearance=\"fill\"\n [showAddButton]=\"true\"></app-payee-selector>\n\n <mat-form-field *ngIf=\"locationsCount > 1\">\n <mat-label>Location</mat-label>\n <app-searchable-selector required formControlName=\"location_id\" apiUrl=\"api/inventory-locations\"></app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Date</mat-label>\n <input matInput [matDatepicker]=\"datePicker\" formControlName=\"date\" (focus)=\"datePicker.open()\" />\n <mat-datepicker #datePicker></mat-datepicker>\n <mat-error *ngIf=\"isFieldValid('date')\">\n {{ getErrorMessage('date') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Quantity</mat-label>\n <input matInput formControlName=\"quantity\" type=\"number\" min=\"0\" />\n <mat-error *ngIf=\"isFieldValid('quantity')\">\n {{ getErrorMessage('quantity') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Purchase Price</mat-label>\n <input matInput formControlName=\"purchase_price\" type=\"number\" min=\"0\" />\n <mat-error *ngIf=\"isFieldValid('purchase_price')\">\n {{ getErrorMessage('purchase_price') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Total Value</mat-label>\n <input matInput formControlName=\"amount\" readonly type=\"number\" min=\"0\" />\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Particulars</mat-label>\n <textarea matInput formControlName=\"particulars\" rows=\"3\"></textarea>\n </mat-form-field>\n\n <div class=\"d-flex justify-content-end align-items-center gap-2\">\n <button [disabled]=\"isWorking\" mat-raised-button color=\"primary\" type=\"submit\">Save</button>\n <button [disabled]=\"isWorking\" (click)=\"cancelled.emit()\" mat-flat-button type=\"button\">Cancel</button>\n </div>\n</form>" }]
|
|
129
|
+
}], ctorParameters: () => [{ type: i1.FormValidatorService }, { type: i2.FormBuilder }, { type: i3.StockReceiptService }, { type: i1.AlertService }, { type: i1.DateUtils }, { type: i4.LocationService }], propDecorators: { product: [{
|
|
117
130
|
type: Input
|
|
118
131
|
}], stockReceipt: [{
|
|
119
132
|
type: Input
|
|
133
|
+
}], latestLocationId: [{
|
|
134
|
+
type: Input
|
|
120
135
|
}], saved: [{
|
|
121
136
|
type: Output
|
|
122
137
|
}], cancelled: [{
|
|
123
138
|
type: Output
|
|
124
139
|
}] } });
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stcmVjZWlwdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL3N0b2NrLXJlY2VpcHRzL3N0b2NrLXJlY2VpcHQtZm9ybS9zdG9jay1yZWNlaXB0LWZvcm0vc3RvY2stcmVjZWlwdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL3N0b2NrLXJlY2VpcHRzL3N0b2NrLXJlY2VpcHQtZm9ybS9zdG9jay1yZWNlaXB0LWZvcm0vc3RvY2stcmVjZWlwdC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFpRCw4QkFBOEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xILE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQU9oRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsOEJBQThCO0lBVWpFO0lBQ0E7SUFDQTtJQUNBO0lBWkQsT0FBTyxDQUFNO0lBQ2IsWUFBWSxDQUFNO0lBQ2pCLEtBQUssR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUNuRCxTQUFTLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFFakUsU0FBUyxDQUFXO0lBRXBCLFlBQ0Usb0JBQTBDLEVBQ2xDLFdBQXdCLEVBQ3hCLG1CQUF3QyxFQUN4QyxZQUEwQixFQUMxQixTQUFvQjtRQUU1QixLQUFLLENBQUMs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bEdVLHlCQUF5Qjs0RkFBekIseUJBQXlCLHdNQ1h0QyxxNERBaURBOzs0RkR0Q2EseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdCQUF3Qjt3TUFLekIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksS0FBSztzQkFBZCxNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UsIERhdGVVdGlscywgRm9ybVZhbGlkYXRvclNlcnZpY2UsIFRlY2hsaWZ5Rm9ybUNvbXBvbmVudEludGVyZmFjZSB9IGZyb20gJ25neC10ZWNobGlmeS1jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3RvY2tSZWNlaXB0U2VydmljZSB9IGZyb20gJy4uLy4uL3N0b2NrLXJlY2VpcHQuc2VydmljZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXN0b2NrLXJlY2VpcHQtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdG9jay1yZWNlaXB0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdG9jay1yZWNlaXB0LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RvY2tSZWNlaXB0Rm9ybUNvbXBvbmVudCBleHRlbmRzIFRlY2hsaWZ5Rm9ybUNvbXBvbmVudEludGVyZmFjZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHByb2R1Y3Q6IGFueTtcbiAgQElucHV0KCkgc3RvY2tSZWNlaXB0OiBhbnk7XG4gIEBPdXRwdXQoKSBzYXZlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbGxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBpc1dvcmtpbmchOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGZvcm1WYWxpZGF0b3JTZXJ2aWNlOiBGb3JtVmFsaWRhdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHN0b2NrUmVjZWlwdFNlcnZpY2U6IFN0b2NrUmVjZWlwdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGRhdGVVdGlsczogRGF0ZVV0aWxzXG4gICkge1xuICAgIHN1cGVyKGZvcm1WYWxpZGF0b3JTZXJ2aWNlKTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSB7XG4gICAgICBkYXRlOiB7XG4gICAgICAgIHJlcXVpcmVkOiAnVGhlIGRhdGUgZmllbGQgaXMgcmVxdWlyZWQuJyxcbiAgICAgIH0sXG4gICAgICBxdWFudGl0eToge1xuICAgICAgICByZXF1aXJlZDogJ1RoZSBxdWFudGl0eSBmaWVsZCBpcyByZXF1aXJlZC4nLFxuICAgICAgfSxcbiAgICAgIHB1cmNoYXNlX3ByaWNlOiB7XG4gICAgICAgIHJlcXVpcmVkOiAnVGhlIHB1cmNoYXNlIHByaWNlIGZpZWxkIGlzIHJlcXVpcmVkLicsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGlkOiBbJyddLFxuICAgICAgc3VwcGxpZXJfaWQ6IFsnJ10sXG4gICAgICBkYXRlOiBbbmV3IERhdGUoKSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBxdWFudGl0eTogWzEsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgcHVyY2hhc2VfcHJpY2U6IFswLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGFtb3VudDogWzBdLFxuICAgICAgcGFydGljdWxhcnM6IFsnJ10sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZvcm1cbiAgICAgIC5nZXQoJ3F1YW50aXR5JylcbiAgICAgID8udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlVG90YWxBbW91bnQoKSk7XG4gICAgdGhpcy5mb3JtXG4gICAgICAuZ2V0KCdwdXJjaGFzZV9wcmljZScpXG4gICAgICA/LnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSg1MDApKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZVRvdGFsQW1vdW50KCkpO1xuXG4gICAgaWYgKHRoaXMuc3RvY2tSZWNlaXB0KSB7XG4gICAgICBsZXQgZGF0YTogYW55ID0geyAuLi50aGlzLnN0b2NrUmVjZWlwdCB9O1xuICAgICAgaWYgKGRhdGEuZGF0ZSkge1xuICAgICAgICBkYXRhLmRhdGUgPSBuZXcgRGF0ZShkYXRhLmRhdGUpO1xuICAgICAgfVxuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIG9uIGNyZWF0ZSBmb3Igc2V0IGRlZmF1bHQgcXVhbnRpdHkgYW5kIHB1cmNoYXNlIHByaWNlIGZyb20gbGFzdCByZWNvcmRcbiAgICAgIGlmICh0aGlzLnByb2R1Y3Q/Lmxhc3Rfc3RvY2tfcmVjZWlwdCkge1xuICAgICAgICBjb25zdCB7IHF1YW50aXR5LCBwdXJjaGFzZV9wcmljZSB9ID0gdGhpcy5wcm9kdWN0Lmxhc3Rfc3RvY2tfcmVjZWlwdDtcbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIHF1YW50aXR5LFxuICAgICAgICAgIHB1cmNoYXNlX3ByaWNlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzYXZlKCkge1xuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ1BsZWFzZSBjaGVjayB0aGUgZm9ybSBmb3IgZXJyb3JzJywgJ2Vycm9yJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGRhdGE6IGFueSA9IHtcbiAgICAgIHByb2R1Y3RfaWQ6IHRoaXMucHJvZHVjdD8uaWQsXG4gICAgICAuLi50aGlzLmZvcm0udmFsdWUsXG4gICAgfTtcbiAgICBpZiAoZGF0YS5kYXRlKSB7XG4gICAgICBkYXRhLmRhdGUgPSB0aGlzLmRhdGVVdGlscy5nZXRZWVlZTU1ERFN0cmluZyhkYXRhLmRhdGUpO1xuICAgIH1cbiAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgbGV0IHJlcXVlc3Q6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuc3RvY2tSZWNlaXB0U2VydmljZS5zdG9yZShkYXRhKTtcbiAgICBpZiAodGhpcy5zdG9ja1JlY2VpcHQ/LmlkKSB7XG4gICAgICByZXF1ZXN0ID0gdGhpcy5zdG9ja1JlY2VpcHRTZXJ2aWNlLnVwZGF0ZShkYXRhKTtcbiAgICB9XG4gICAgcmVxdWVzdC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zYXZlZC5lbWl0KHJlc3BvbnNlPy5pdGVtKTtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ1N0b2NrIFJlY2VpcHQgU2F2ZWQgU3VjY2Vzc2Z1bGx5IScsICdzdWNjZXNzJyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+ICh0aGlzLmlzV29ya2luZyA9IGZhbHNlKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVG90YWxBbW91bnQoKSB7XG4gICAgY29uc3QgeyBwdXJjaGFzZV9wcmljZSwgcXVhbnRpdHkgfSA9IHRoaXMuZm9ybS52YWx1ZTtcbiAgICBjb25zdCBhbW91bnQ6IGFueSA9IHBhcnNlRmxvYXQocHVyY2hhc2VfcHJpY2UpICogcGFyc2VGbG9hdChxdWFudGl0eSkgfHwgMDtcbiAgICB0aGlzLmZvcm0uZ2V0KCdhbW91bnQnKT8uc2V0VmFsdWUoYW1vdW50KTtcbiAgfVxufVxuIiwiPGgzIGNsYXNzPVwidGV4dC1jZW50ZXJcIj57eyBzdG9ja1JlY2VpcHQ/LmlkID8gJ0VkaXQnIDogJ1JlY2VpdmUnIH19IFN0b2NrIGZvciB7eyBwcm9kdWN0Py5uYW1lIH19PC9oMz5cbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0xIGp1c3RpZnktY29udGVudC1zdGFydFwiIChzdWJtaXQpPVwic2F2ZSgpXCI+XG4gIDxhcHAtcGF5ZWUtc2VsZWN0b3JcbiAgICBsYWJlbD1cIlN1cHBsaWVyXCJcbiAgICBmb3JtQ29udHJvbE5hbWU9XCJzdXBwbGllcl9pZFwiXG4gICAgYXBwZWFyYW5jZT1cImZpbGxcIlxuICAgIFtzaG93QWRkQnV0dG9uXT1cInRydWVcIlxuICA+PC9hcHAtcGF5ZWUtc2VsZWN0b3I+XG5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+RGF0ZTwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dCBtYXRJbnB1dCBbbWF0RGF0ZXBpY2tlcl09XCJkYXRlUGlja2VyXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiIChmb2N1cyk9XCJkYXRlUGlja2VyLm9wZW4oKVwiIC8+XG4gICAgPG1hdC1kYXRlcGlja2VyICNkYXRlUGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgnZGF0ZScpXCI+XG4gICAgICB7eyBnZXRFcnJvck1lc3NhZ2UoJ2RhdGUnKSB9fVxuICAgIDwvbWF0LWVycm9yPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWxhYmVsPlF1YW50aXR5PC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInF1YW50aXR5XCIgdHlwZT1cIm51bWJlclwiIG1pbj1cIjBcIiAvPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ3F1YW50aXR5JylcIj5cbiAgICAgIHt7IGdldEVycm9yTWVzc2FnZSgncXVhbnRpdHknKSB9fVxuICAgIDwvbWF0LWVycm9yPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWxhYmVsPlB1cmNoYXNlIFByaWNlPC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInB1cmNoYXNlX3ByaWNlXCIgdHlwZT1cIm51bWJlclwiIG1pbj1cIjBcIiAvPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ3B1cmNoYXNlX3ByaWNlJylcIj5cbiAgICAgIHt7IGdldEVycm9yTWVzc2FnZSgncHVyY2hhc2VfcHJpY2UnKSB9fVxuICAgIDwvbWF0LWVycm9yPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWxhYmVsPlRvdGFsIFZhbHVlPC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImFtb3VudFwiIHJlYWRvbmx5IHR5cGU9XCJudW1iZXJcIiBtaW49XCIwXCIgLz5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1sYWJlbD5QYXJ0aWN1bGFyczwvbWF0LWxhYmVsPlxuICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJwYXJ0aWN1bGFyc1wiIHJvd3M9XCIzXCI+PC90ZXh0YXJlYT5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNXb3JraW5nXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiPlNhdmU8L2J1dHRvbj5cbiAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJpc1dvcmtpbmdcIiAoY2xpY2spPVwiY2FuY2VsbGVkLmVtaXQoKVwiIG1hdC1mbGF0LWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCI+Q2FuY2VsPC9idXR0b24+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stcmVjZWlwdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL3N0b2NrLXJlY2VpcHRzL3N0b2NrLXJlY2VpcHQtZm9ybS9zdG9jay1yZWNlaXB0LWZvcm0vc3RvY2stcmVjZWlwdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL3N0b2NrLXJlY2VpcHRzL3N0b2NrLXJlY2VpcHQtZm9ybS9zdG9jay1yZWNlaXB0LWZvcm0vc3RvY2stcmVjZWlwdC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFpRCw4QkFBOEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xILE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFRaEQsTUFBTSxPQUFPLHlCQUEwQixTQUFRLDhCQUE4QjtJQVlqRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBZkQsT0FBTyxDQUFNO0lBQ2IsWUFBWSxDQUFNO0lBQ2xCLGdCQUFnQixDQUFNO0lBQ3JCLEtBQUssR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUNuRCxTQUFTLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFFakUsU0FBUyxDQUFXO0lBQ1osbUJBQW1CLEdBQVcsQ0FBQyxDQUFDO0lBRXhDLFlBQ0Usb0JBQTBDLEVBQ2xDLFdBQXdCLEVBQ3hCLG1CQUF3QyxFQUN4QyxZQUEwQixFQUMxQixTQUFvQixFQUNwQixlQUFnQztRQUV4QyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQU5wQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBR3hDLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSw2QkFBNkI7YUFDeEM7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsUUFBUSxFQUFFLGlDQUFpQzthQUM1QztZQUNELGNBQWMsRUFBRTtnQkFDZCxRQUFRLEVBQUUsdUNBQXVDO2FBQ2xEO1NBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDakMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ1IsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2pCLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3RDLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN2QyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNsQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN4QyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDWCxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSTthQUNOLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDaEIsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsSUFBSTthQUNOLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN0QixFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3JDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBRTdDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksSUFBSSxHQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDekMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEMsQ0FBQztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUM7YUFBTSxDQUFDO1lBQ04seUVBQXlFO1lBQ3pFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO2dCQUNsRixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztvQkFDbkIsUUFBUTtvQkFDUixjQUFjO29CQUNkLFdBQVc7aUJBQ1osQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGtDQUFrQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3hFLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQVE7WUFDaEIsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM1QixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztTQUNuQixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLE9BQU8sR0FBb0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDMUIsT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDaEIsSUFBSSxFQUFFLENBQUMsUUFBYSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLG1DQUFtQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzdFLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUN0QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE1BQU0sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDckQsTUFBTSxNQUFNLEdBQVEsVUFBVSxDQUFDLGNBQWMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7d0dBL0dVLHlCQUF5Qjs0RkFBekIseUJBQXlCLDhPQ1p0QyxrbUVBaURPOzs0RkRyQ00seUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdCQUF3QjtzT0FLekIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBEYXRlVXRpbHMsIEZvcm1WYWxpZGF0b3JTZXJ2aWNlLCBUZWNobGlmeUZvcm1Db21wb25lbnRJbnRlcmZhY2UgfSBmcm9tICduZ3gtdGVjaGxpZnktY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN0b2NrUmVjZWlwdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zdG9jay1yZWNlaXB0LnNlcnZpY2UnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9sb2NhdGlvbi9sb2NhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXN0b2NrLXJlY2VpcHQtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdG9jay1yZWNlaXB0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdG9jay1yZWNlaXB0LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RvY2tSZWNlaXB0Rm9ybUNvbXBvbmVudCBleHRlbmRzIFRlY2hsaWZ5Rm9ybUNvbXBvbmVudEludGVyZmFjZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHByb2R1Y3Q6IGFueTtcbiAgQElucHV0KCkgc3RvY2tSZWNlaXB0OiBhbnk7XG4gIEBJbnB1dCgpIGxhdGVzdExvY2F0aW9uSWQ6IGFueTtcbiAgQE91dHB1dCgpIHNhdmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgY2FuY2VsbGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGlzV29ya2luZyE6IGJvb2xlYW47XG4gIHByaXZhdGUgbG9jYXRpb25zQ291bnRWYWx1ZTogbnVtYmVyID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBmb3JtVmFsaWRhdG9yU2VydmljZTogRm9ybVZhbGlkYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBzdG9ja1JlY2VpcHRTZXJ2aWNlOiBTdG9ja1JlY2VpcHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRlVXRpbHM6IERhdGVVdGlscyxcbiAgICBwcml2YXRlIGxvY2F0aW9uU2VydmljZTogTG9jYXRpb25TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGZvcm1WYWxpZGF0b3JTZXJ2aWNlKTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSB7XG4gICAgICBkYXRlOiB7XG4gICAgICAgIHJlcXVpcmVkOiAnVGhlIGRhdGUgZmllbGQgaXMgcmVxdWlyZWQuJyxcbiAgICAgIH0sXG4gICAgICBxdWFudGl0eToge1xuICAgICAgICByZXF1aXJlZDogJ1RoZSBxdWFudGl0eSBmaWVsZCBpcyByZXF1aXJlZC4nLFxuICAgICAgfSxcbiAgICAgIHB1cmNoYXNlX3ByaWNlOiB7XG4gICAgICAgIHJlcXVpcmVkOiAnVGhlIHB1cmNoYXNlIHByaWNlIGZpZWxkIGlzIHJlcXVpcmVkLicsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGlkOiBbJyddLFxuICAgICAgc3VwcGxpZXJfaWQ6IFsnJ10sXG4gICAgICBsb2NhdGlvbl9pZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGRhdGU6IFtuZXcgRGF0ZSgpLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIHF1YW50aXR5OiBbMSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBwdXJjaGFzZV9wcmljZTogWzAsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgYW1vdW50OiBbMF0sXG4gICAgICBwYXJ0aWN1bGFyczogWycnXSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9jYXRpb25TZXJ2aWNlLmNvdW50KCkuc3Vic2NyaWJlKChjb3VudDogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLmxvY2F0aW9uc0NvdW50VmFsdWUgPSBjb3VudDtcbiAgICB9KTtcblxuICAgIHRoaXMuZm9ybVxuICAgICAgLmdldCgncXVhbnRpdHknKVxuICAgICAgPy52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVUb3RhbEFtb3VudCgpKTtcbiAgICB0aGlzLmZvcm1cbiAgICAgIC5nZXQoJ3B1cmNoYXNlX3ByaWNlJylcbiAgICAgID8udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlVG90YWxBbW91bnQoKSk7XG5cbiAgICBpZiAodGhpcy5zdG9ja1JlY2VpcHQpIHtcbiAgICAgIGxldCBkYXRhOiBhbnkgPSB7IC4uLnRoaXMuc3RvY2tSZWNlaXB0IH07XG4gICAgICBpZiAoZGF0YS5kYXRlKSB7XG4gICAgICAgIGRhdGEuZGF0ZSA9IG5ldyBEYXRlKGRhdGEuZGF0ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShkYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gb24gY3JlYXRlIGZvciBzZXQgZGVmYXVsdCBxdWFudGl0eSBhbmQgcHVyY2hhc2UgcHJpY2UgZnJvbSBsYXN0IHJlY29yZFxuICAgICAgaWYgKHRoaXMucHJvZHVjdD8ubGFzdF9zdG9ja19yZWNlaXB0KSB7XG4gICAgICAgIGNvbnN0IHsgcXVhbnRpdHksIHB1cmNoYXNlX3ByaWNlLCBsb2NhdGlvbl9pZCB9ID0gdGhpcy5wcm9kdWN0Lmxhc3Rfc3RvY2tfcmVjZWlwdDtcbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIHF1YW50aXR5LFxuICAgICAgICAgIHB1cmNoYXNlX3ByaWNlLFxuICAgICAgICAgIGxvY2F0aW9uX2lkLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgbG9jYXRpb25zQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5sb2NhdGlvbnNDb3VudFZhbHVlO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KCdQbGVhc2UgY2hlY2sgdGhlIGZvcm0gZm9yIGVycm9ycycsICdlcnJvcicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkYXRhOiBhbnkgPSB7XG4gICAgICBwcm9kdWN0X2lkOiB0aGlzLnByb2R1Y3Q/LmlkLFxuICAgICAgLi4udGhpcy5mb3JtLnZhbHVlLFxuICAgIH07XG4gICAgaWYgKGRhdGEuZGF0ZSkge1xuICAgICAgZGF0YS5kYXRlID0gdGhpcy5kYXRlVXRpbHMuZ2V0WVlZWU1NRERTdHJpbmcoZGF0YS5kYXRlKTtcbiAgICB9XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIGxldCByZXF1ZXN0OiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnN0b2NrUmVjZWlwdFNlcnZpY2Uuc3RvcmUoZGF0YSk7XG4gICAgaWYgKHRoaXMuc3RvY2tSZWNlaXB0Py5pZCkge1xuICAgICAgcmVxdWVzdCA9IHRoaXMuc3RvY2tSZWNlaXB0U2VydmljZS51cGRhdGUoZGF0YSk7XG4gICAgfVxuICAgIHJlcXVlc3Quc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2F2ZWQuZW1pdChyZXNwb25zZT8uaXRlbSk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KCdTdG9jayBSZWNlaXB0IFNhdmVkIFN1Y2Nlc3NmdWxseSEnLCAnc3VjY2VzcycpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiAodGhpcy5pc1dvcmtpbmcgPSBmYWxzZSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVRvdGFsQW1vdW50KCkge1xuICAgIGNvbnN0IHsgcHVyY2hhc2VfcHJpY2UsIHF1YW50aXR5IH0gPSB0aGlzLmZvcm0udmFsdWU7XG4gICAgY29uc3QgYW1vdW50OiBhbnkgPSBwYXJzZUZsb2F0KHB1cmNoYXNlX3ByaWNlKSAqIHBhcnNlRmxvYXQocXVhbnRpdHkpIHx8IDA7XG4gICAgdGhpcy5mb3JtLmdldCgnYW1vdW50Jyk/LnNldFZhbHVlKGFtb3VudCk7XG4gIH1cbn1cbiIsIjxoMyBjbGFzcz1cInRleHQtY2VudGVyXCI+e3sgc3RvY2tSZWNlaXB0Py5pZCA/ICdFZGl0JyA6ICdSZWNlaXZlJyB9fSBTdG9jayBmb3Ige3sgcHJvZHVjdD8ubmFtZSB9fTwvaDM+XG48Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMSBqdXN0aWZ5LWNvbnRlbnQtc3RhcnRcIiAoc3VibWl0KT1cInNhdmUoKVwiPlxuICA8YXBwLXBheWVlLXNlbGVjdG9yIGxhYmVsPVwiU3VwcGxpZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJzdXBwbGllcl9pZFwiIGFwcGVhcmFuY2U9XCJmaWxsXCJcbiAgICBbc2hvd0FkZEJ1dHRvbl09XCJ0cnVlXCI+PC9hcHAtcGF5ZWUtc2VsZWN0b3I+XG5cbiAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwibG9jYXRpb25zQ291bnQgPiAxXCI+XG4gICAgPG1hdC1sYWJlbD5Mb2NhdGlvbjwvbWF0LWxhYmVsPlxuICAgIDxhcHAtc2VhcmNoYWJsZS1zZWxlY3RvciByZXF1aXJlZCBmb3JtQ29udHJvbE5hbWU9XCJsb2NhdGlvbl9pZFwiIGFwaVVybD1cImFwaS9pbnZlbnRvcnktbG9jYXRpb25zXCI+PC9hcHAtc2VhcmNoYWJsZS1zZWxlY3Rvcj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1sYWJlbD5EYXRlPC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IG1hdElucHV0IFttYXREYXRlcGlja2VyXT1cImRhdGVQaWNrZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCIgKGZvY3VzKT1cImRhdGVQaWNrZXIub3BlbigpXCIgLz5cbiAgICA8bWF0LWRhdGVwaWNrZXIgI2RhdGVQaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCdkYXRlJylcIj5cbiAgICAgIHt7IGdldEVycm9yTWVzc2FnZSgnZGF0ZScpIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+UXVhbnRpdHk8L21hdC1sYWJlbD5cbiAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicXVhbnRpdHlcIiB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiIC8+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgncXVhbnRpdHknKVwiPlxuICAgICAge3sgZ2V0RXJyb3JNZXNzYWdlKCdxdWFudGl0eScpIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+UHVyY2hhc2UgUHJpY2U8L21hdC1sYWJlbD5cbiAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicHVyY2hhc2VfcHJpY2VcIiB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiIC8+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgncHVyY2hhc2VfcHJpY2UnKVwiPlxuICAgICAge3sgZ2V0RXJyb3JNZXNzYWdlKCdwdXJjaGFzZV9wcmljZScpIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+VG90YWwgVmFsdWU8L21hdC1sYWJlbD5cbiAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiYW1vdW50XCIgcmVhZG9ubHkgdHlwZT1cIm51bWJlclwiIG1pbj1cIjBcIiAvPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWxhYmVsPlBhcnRpY3VsYXJzPC9tYXQtbGFiZWw+XG4gICAgPHRleHRhcmVhIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInBhcnRpY3VsYXJzXCIgcm93cz1cIjNcIj48L3RleHRhcmVhPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJpc1dvcmtpbmdcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwic3VibWl0XCI+U2F2ZTwvYnV0dG9uPlxuICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImlzV29ya2luZ1wiIChjbGljayk9XCJjYW5jZWxsZWQuZW1pdCgpXCIgbWF0LWZsYXQtYnV0dG9uIHR5cGU9XCJidXR0b25cIj5DYW5jZWw8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Zvcm0+Il19
|
|
@@ -7,6 +7,7 @@ export class StockReceiptFormButtonComponent {
|
|
|
7
7
|
matDialog;
|
|
8
8
|
product;
|
|
9
9
|
stockReceipt;
|
|
10
|
+
latestLocationId;
|
|
10
11
|
icon;
|
|
11
12
|
saved = new EventEmitter();
|
|
12
13
|
matDialogRef;
|
|
@@ -21,18 +22,20 @@ export class StockReceiptFormButtonComponent {
|
|
|
21
22
|
this.saved.emit(item);
|
|
22
23
|
}
|
|
23
24
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptFormButtonComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StockReceiptFormButtonComponent, selector: "app-stock-receipt-form-button", inputs: { product: "product", stockReceipt: "stockReceipt", icon: "icon" }, outputs: { saved: "saved" }, ngImport: i0, template: "<span\n class=\"material-symbols-outlined cursor-pointer\"\n [class.text-primary]=\"icon\"\n matTooltip=\"Stock Receipt\"\n (click)=\"showStockReceiptForm(stockReceiptFormTemplate)\"\n>\n {{ stockReceipt ? 'edit' : icon ?? 'download' }}\n</span>\n\n<ng-template #stockReceiptFormTemplate>\n <app-stock-receipt-form\n mat-dialog-content\n [product]=\"product\"\n [stockReceipt]=\"stockReceipt\"\n (cancelled)=\"matDialogRef.close()\"\n (saved)=\"onStockReceiptSaved($event)\"\n ></app-stock-receipt-form>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "
|
|
25
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StockReceiptFormButtonComponent, selector: "app-stock-receipt-form-button", inputs: { product: "product", stockReceipt: "stockReceipt", latestLocationId: "latestLocationId", icon: "icon" }, outputs: { saved: "saved" }, ngImport: i0, template: "<span\n class=\"material-symbols-outlined cursor-pointer\"\n [class.text-primary]=\"icon\"\n matTooltip=\"Stock Receipt\"\n (click)=\"showStockReceiptForm(stockReceiptFormTemplate)\"\n>\n {{ stockReceipt ? 'edit' : icon ?? 'download' }}\n</span>\n\n<ng-template #stockReceiptFormTemplate>\n <app-stock-receipt-form\n mat-dialog-content\n [latestLocationId]=\"latestLocationId\"\n [product]=\"product\"\n [stockReceipt]=\"stockReceipt\"\n (cancelled)=\"matDialogRef.close()\"\n (saved)=\"onStockReceiptSaved($event)\"\n ></app-stock-receipt-form>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3.StockReceiptFormComponent, selector: "app-stock-receipt-form", inputs: ["product", "stockReceipt", "latestLocationId"], outputs: ["saved", "cancelled"] }], preserveWhitespaces: true });
|
|
25
26
|
}
|
|
26
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptFormButtonComponent, decorators: [{
|
|
27
28
|
type: Component,
|
|
28
|
-
args: [{ selector: 'app-stock-receipt-form-button', template: "<span\n class=\"material-symbols-outlined cursor-pointer\"\n [class.text-primary]=\"icon\"\n matTooltip=\"Stock Receipt\"\n (click)=\"showStockReceiptForm(stockReceiptFormTemplate)\"\n>\n {{ stockReceipt ? 'edit' : icon ?? 'download' }}\n</span>\n\n<ng-template #stockReceiptFormTemplate>\n <app-stock-receipt-form\n mat-dialog-content\n [product]=\"product\"\n [stockReceipt]=\"stockReceipt\"\n (cancelled)=\"matDialogRef.close()\"\n (saved)=\"onStockReceiptSaved($event)\"\n ></app-stock-receipt-form>\n</ng-template>\n" }]
|
|
29
|
+
args: [{ selector: 'app-stock-receipt-form-button', template: "<span\n class=\"material-symbols-outlined cursor-pointer\"\n [class.text-primary]=\"icon\"\n matTooltip=\"Stock Receipt\"\n (click)=\"showStockReceiptForm(stockReceiptFormTemplate)\"\n>\n {{ stockReceipt ? 'edit' : icon ?? 'download' }}\n</span>\n\n<ng-template #stockReceiptFormTemplate>\n <app-stock-receipt-form\n mat-dialog-content\n [latestLocationId]=\"latestLocationId\"\n [product]=\"product\"\n [stockReceipt]=\"stockReceipt\"\n (cancelled)=\"matDialogRef.close()\"\n (saved)=\"onStockReceiptSaved($event)\"\n ></app-stock-receipt-form>\n</ng-template>\n" }]
|
|
29
30
|
}], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { product: [{
|
|
30
31
|
type: Input
|
|
31
32
|
}], stockReceipt: [{
|
|
32
33
|
type: Input
|
|
34
|
+
}], latestLocationId: [{
|
|
35
|
+
type: Input
|
|
33
36
|
}], icon: [{
|
|
34
37
|
type: Input
|
|
35
38
|
}], saved: [{
|
|
36
39
|
type: Output
|
|
37
40
|
}] } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stcmVjZWlwdC1mb3JtLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9zdG9jay1yZWNlaXB0cy9zdG9jay1yZWNlaXB0LWZvcm0vc3RvY2stcmVjZWlwdC1mb3JtLWJ1dHRvbi9zdG9jay1yZWNlaXB0LWZvcm0tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL3N0b2NrLXJlY2VpcHRzL3N0b2NrLXJlY2VpcHQtZm9ybS9zdG9jay1yZWNlaXB0LWZvcm0tYnV0dG9uL3N0b2NrLXJlY2VpcHQtZm9ybS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRcEYsTUFBTSxPQUFPLCtCQUErQjtJQVN0QjtJQVJYLE9BQU8sQ0FBTTtJQUNiLFlBQVksQ0FBTTtJQUNsQixnQkFBZ0IsQ0FBTTtJQUN0QixJQUFJLENBQWlCO0lBQ3BCLEtBQUssR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUU3RCxZQUFZLENBQXFCO0lBRWpDLFlBQW9CLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFBRyxDQUFDO0lBRTVDLG9CQUFvQixDQUFDLFdBQTZCO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQVM7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO3dHQWxCVSwrQkFBK0I7NEZBQS9CLCtCQUErQixvTkNSNUMsOGtCQW1CQTs7NEZEWGEsK0JBQStCO2tCQUwzQyxTQUFTOytCQUNFLCtCQUErQjs4RUFLaEMsT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXN0b2NrLXJlY2VpcHQtZm9ybS1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RvY2stcmVjZWlwdC1mb3JtLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0b2NrLXJlY2VpcHQtZm9ybS1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RvY2tSZWNlaXB0Rm9ybUJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHByb2R1Y3Q6IGFueTtcbiAgQElucHV0KCkgc3RvY2tSZWNlaXB0OiBhbnk7XG4gIEBJbnB1dCgpIGxhdGVzdExvY2F0aW9uSWQ6IGFueTtcbiAgQElucHV0KCkgaWNvbiE6IHN0cmluZyB8IG51bGw7XG4gIEBPdXRwdXQoKSBzYXZlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBtYXREaWFsb2dSZWYhOiBNYXREaWFsb2dSZWY8YW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hdERpYWxvZzogTWF0RGlhbG9nKSB7fVxuXG4gIHNob3dTdG9ja1JlY2VpcHRGb3JtKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5tYXREaWFsb2dSZWYgPSB0aGlzLm1hdERpYWxvZy5vcGVuKHRlbXBsYXRlUmVmLCB7IHdpZHRoOiAnNTAwcHgnIH0pO1xuICB9XG5cbiAgb25TdG9ja1JlY2VpcHRTYXZlZChpdGVtOiBhbnkpIHtcbiAgICB0aGlzLm1hdERpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIHRoaXMuc2F2ZWQuZW1pdChpdGVtKTtcbiAgfVxufVxuIiwiPHNwYW5cbiAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGN1cnNvci1wb2ludGVyXCJcbiAgW2NsYXNzLnRleHQtcHJpbWFyeV09XCJpY29uXCJcbiAgbWF0VG9vbHRpcD1cIlN0b2NrIFJlY2VpcHRcIlxuICAoY2xpY2spPVwic2hvd1N0b2NrUmVjZWlwdEZvcm0oc3RvY2tSZWNlaXB0Rm9ybVRlbXBsYXRlKVwiXG4+XG4gIHt7IHN0b2NrUmVjZWlwdCA/ICdlZGl0JyA6IGljb24gPz8gJ2Rvd25sb2FkJyB9fVxuPC9zcGFuPlxuXG48bmctdGVtcGxhdGUgI3N0b2NrUmVjZWlwdEZvcm1UZW1wbGF0ZT5cbiAgPGFwcC1zdG9jay1yZWNlaXB0LWZvcm1cbiAgICBtYXQtZGlhbG9nLWNvbnRlbnRcbiAgICBbbGF0ZXN0TG9jYXRpb25JZF09XCJsYXRlc3RMb2NhdGlvbklkXCJcbiAgICBbcHJvZHVjdF09XCJwcm9kdWN0XCJcbiAgICBbc3RvY2tSZWNlaXB0XT1cInN0b2NrUmVjZWlwdFwiXG4gICAgKGNhbmNlbGxlZCk9XCJtYXREaWFsb2dSZWYuY2xvc2UoKVwiXG4gICAgKHNhdmVkKT1cIm9uU3RvY2tSZWNlaXB0U2F2ZWQoJGV2ZW50KVwiXG4gID48L2FwcC1zdG9jay1yZWNlaXB0LWZvcm0+XG48L25nLXRlbXBsYXRlPlxuIl19
|