techlify-inventory-common 18.35.0 → 18.36.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/esm2022/lib/inventory-common/product/product-list/product-list.component.mjs +15 -17
  2. package/esm2022/lib/inventory-common/product/product-view-page/product-view-page.component.mjs +8 -8
  3. package/esm2022/lib/inventory-common/product/product.module.mjs +5 -5
  4. package/esm2022/lib/inventory-common/product/widgets/product-category-badges/product-category-badges.component.mjs +3 -3
  5. package/esm2022/lib/inventory-common/stock-issuances/stock-issue-list/stock-issue-list.component.mjs +65 -66
  6. package/esm2022/lib/inventory-common/stock-issuances/stock-issue-page/stock-issue-page.component.mjs +96 -0
  7. package/esm2022/lib/inventory-common/stock-issuances/stock-issue-page/stock-issue-page.module.mjs +91 -0
  8. package/esm2022/lib/inventory-common/stock-issuances/stock-issue-product-form/stock-issue-product-form-button/stock-issue-product-form-button.component.mjs +35 -0
  9. package/esm2022/lib/inventory-common/stock-issuances/stock-issue-product-form/stock-issue-product-form.component.mjs +102 -0
  10. package/esm2022/lib/inventory-common/stock-issuances/stock-issue-product.service.mjs +16 -0
  11. package/esm2022/lib/inventory-common/stock-issuances/stock-issue-products-list/stock-issue-products-list.component.mjs +138 -0
  12. package/esm2022/lib/inventory-common/stock-issuances/stock-issue-routing.module.mjs +3 -3
  13. package/esm2022/lib/inventory-common/stock-issuances/stock-issue.module.mjs +5 -21
  14. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-list/stock-receipt-list.component.mjs +153 -0
  15. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-product-form/stock-receipt-product-form-button/stock-receipt-product-form-button.component.mjs +37 -0
  16. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-product-form/stock-receipt-product-form.component.mjs +80 -0
  17. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-product-list/stock-receipt-product-list.component.mjs +146 -0
  18. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-product.service.mjs +18 -0
  19. package/esm2022/lib/inventory-common/stock-receipts/stock-receipts-page/stock-receipts-page.component.mjs +70 -0
  20. package/esm2022/lib/inventory-common/stock-receipts/stock-receipts-routing.module.mjs +3 -3
  21. package/esm2022/lib/inventory-common/stock-receipts/stock-receipts.module.mjs +29 -11
  22. package/esm2022/lib/inventory-common/supplier/supplier-view/supplier-view.component.mjs +4 -4
  23. package/esm2022/public-api.mjs +13 -4
  24. package/fesm2022/{techlify-inventory-common-category.module-CjruFhHc.mjs → techlify-inventory-common-category.module-qyYKbe_g.mjs} +14 -14
  25. package/fesm2022/techlify-inventory-common-category.module-qyYKbe_g.mjs.map +1 -0
  26. package/fesm2022/{techlify-inventory-common-measure.module-B8UHsYQT.mjs → techlify-inventory-common-measure.module-Azgdcpqu.mjs} +11 -11
  27. package/fesm2022/{techlify-inventory-common-measure.module-B8UHsYQT.mjs.map → techlify-inventory-common-measure.module-Azgdcpqu.mjs.map} +1 -1
  28. package/fesm2022/{techlify-inventory-common-purchase-order-view.component-C5DXKp05.mjs → techlify-inventory-common-purchase-order-view.component-tSf0_Lj_.mjs} +10 -10
  29. package/fesm2022/{techlify-inventory-common-purchase-order-view.component-C5DXKp05.mjs.map → techlify-inventory-common-purchase-order-view.component-tSf0_Lj_.mjs.map} +1 -1
  30. package/fesm2022/{techlify-inventory-common-stock-issue-batch-form.component-D5Df9-Xg.mjs → techlify-inventory-common-stock-issue-batch-form.component-8u8sZ4gb.mjs} +7 -7
  31. package/fesm2022/{techlify-inventory-common-stock-issue-batch-form.component-D5Df9-Xg.mjs.map → techlify-inventory-common-stock-issue-batch-form.component-8u8sZ4gb.mjs.map} +1 -1
  32. package/fesm2022/{techlify-inventory-common-stock-issue-view.component-Cm9zHnNw.mjs → techlify-inventory-common-stock-issue-view.component-C-SHFxmY.mjs} +4 -4
  33. package/fesm2022/{techlify-inventory-common-stock-issue-view.component-Cm9zHnNw.mjs.map → techlify-inventory-common-stock-issue-view.component-C-SHFxmY.mjs.map} +1 -1
  34. package/fesm2022/{techlify-inventory-common-techlify-inventory-common-ekkMO8hI.mjs → techlify-inventory-common-techlify-inventory-common-CqakmnCI.mjs} +2245 -1618
  35. package/fesm2022/techlify-inventory-common-techlify-inventory-common-CqakmnCI.mjs.map +1 -0
  36. package/fesm2022/techlify-inventory-common.mjs +1 -1
  37. package/lib/inventory-common/product/product-view-page/product-view-page.component.d.ts +4 -4
  38. package/lib/inventory-common/product/product.module.d.ts +2 -2
  39. package/lib/inventory-common/stock-issuances/stock-issue-list/stock-issue-list.component.d.ts +15 -16
  40. package/lib/inventory-common/stock-issuances/stock-issue-page/stock-issue-page.component.d.ts +28 -0
  41. package/lib/inventory-common/stock-issuances/stock-issue-page/stock-issue-page.module.d.ts +21 -0
  42. package/lib/inventory-common/stock-issuances/stock-issue-product-form/stock-issue-product-form-button/stock-issue-product-form-button.component.d.ts +12 -0
  43. package/lib/inventory-common/stock-issuances/stock-issue-product-form/stock-issue-product-form.component.d.ts +21 -0
  44. package/lib/inventory-common/stock-issuances/stock-issue-product.service.d.ts +7 -0
  45. package/lib/inventory-common/stock-issuances/stock-issue-products-list/stock-issue-products-list.component.d.ts +27 -0
  46. package/lib/inventory-common/stock-issuances/stock-issue.module.d.ts +6 -10
  47. package/lib/inventory-common/stock-receipts/stock-receipt-list/stock-receipt-list.component.d.ts +30 -0
  48. package/lib/inventory-common/stock-receipts/stock-receipt-product-form/stock-receipt-product-form-button/stock-receipt-product-form-button.component.d.ts +12 -0
  49. package/lib/inventory-common/stock-receipts/stock-receipt-product-form/stock-receipt-product-form.component.d.ts +17 -0
  50. package/lib/inventory-common/stock-receipts/stock-receipt-product-list/stock-receipt-product-list.component.d.ts +28 -0
  51. package/lib/inventory-common/stock-receipts/stock-receipt-product.service.d.ts +7 -0
  52. package/lib/inventory-common/stock-receipts/stock-receipts-page/stock-receipts-page.component.d.ts +21 -0
  53. package/lib/inventory-common/stock-receipts/stock-receipts.module.d.ts +17 -14
  54. package/package.json +1 -1
  55. package/public-api.d.ts +12 -3
  56. package/esm2022/lib/inventory-common/stock-issuances/stock-issue-list/stock-issue-list.module.mjs +0 -71
  57. package/esm2022/lib/inventory-common/stock-receipts/stock-receipts-list-page/stock-receipts-list-page.component.mjs +0 -158
  58. package/fesm2022/techlify-inventory-common-category.module-CjruFhHc.mjs.map +0 -1
  59. package/fesm2022/techlify-inventory-common-techlify-inventory-common-ekkMO8hI.mjs.map +0 -1
  60. package/lib/inventory-common/stock-issuances/stock-issue-list/stock-issue-list.module.d.ts +0 -18
  61. package/lib/inventory-common/stock-receipts/stock-receipts-list-page/stock-receipts-list-page.component.d.ts +0 -29
@@ -0,0 +1,96 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, EventEmitter, Input, Output, ViewChild, signal } from '@angular/core';
3
+ import { toSignal } from '@angular/core/rxjs-interop';
4
+ import { startWith } from 'rxjs';
5
+ import { UntilDestroy } from '@ngneat/until-destroy';
6
+ import { StockIssueListComponent } from '../stock-issue-list/stock-issue-list.component';
7
+ import { StockIssueProductListComponent } from '../stock-issue-products-list/stock-issue-products-list.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/forms";
10
+ import * as i2 from "@angular/common";
11
+ import * as i3 from "@angular/material/form-field";
12
+ import * as i4 from "@angular/material/input";
13
+ import * as i5 from "@angular/material/card";
14
+ import * as i6 from "@angular/material/tooltip";
15
+ import * as i7 from "@angular/material/button-toggle";
16
+ import * as i8 from "@angular/router";
17
+ import * as i9 from "ngx-techlify-core";
18
+ import * as i10 from "../../shared/export-to-excel-button/export-to-excel-button.component";
19
+ import * as i11 from "../stock-issue-list/stock-issue-list.component";
20
+ import * as i12 from "../stock-issue-products-list/stock-issue-products-list.component";
21
+ let StockIssuePageComponent = class StockIssuePageComponent {
22
+ formBuilder;
23
+ product;
24
+ issuableType;
25
+ issuableId;
26
+ label = 'Stock Issues';
27
+ showActions = true;
28
+ showFilters = true;
29
+ listUpdated = new EventEmitter();
30
+ itemizedList;
31
+ groupedList;
32
+ selectedView = signal('itemized');
33
+ exportInProgress = signal(false);
34
+ columnConfig = [];
35
+ selectedColumns = [];
36
+ filterForm;
37
+ filtersValue;
38
+ constructor(formBuilder) {
39
+ this.formBuilder = formBuilder;
40
+ this.filterForm = this.formBuilder.group({
41
+ category_ids: [''],
42
+ date_from: [''],
43
+ date_to: [''],
44
+ duration: [''],
45
+ location_ids: [''],
46
+ measure_ids: [''],
47
+ product_ids: [''],
48
+ search: [''],
49
+ });
50
+ this.filtersValue = toSignal(this.filterForm.valueChanges.pipe(startWith(this.filterForm.value)));
51
+ }
52
+ ngOnInit() {
53
+ if (this.product) {
54
+ this.filterForm.get('product_ids')?.setValue(this.product?.id);
55
+ }
56
+ }
57
+ reload() {
58
+ this.itemizedList?.reload();
59
+ this.groupedList?.reload();
60
+ }
61
+ onColumnConfigReady(config) {
62
+ this.columnConfig = config;
63
+ this.selectedColumns = config.filter(col => col.isSelected);
64
+ }
65
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StockIssuePageComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
66
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: StockIssuePageComponent, selector: "app-stock-issue-page", inputs: { product: "product", issuableType: "issuableType", issuableId: "issuableId", label: "label", showActions: "showActions", showFilters: "showFilters" }, outputs: { listUpdated: "listUpdated" }, viewQueries: [{ propertyName: "itemizedList", first: true, predicate: StockIssueProductListComponent, descendants: true }, { propertyName: "groupedList", first: true, predicate: StockIssueListComponent, descendants: true }], ngImport: i0, template: "<mat-card *ngIf=\"!product\" class=\"mb-2\">\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"mb-0\">{{ label }}</h3>\n\n <div class=\"d-flex gap-2 align-items-center ms-2 d-print-none\">\n <app-techlify-icon role='button' name='add'\n [routerLink]=\"['/inventory/stock-issues/batch-form']\"></app-techlify-icon>\n\n <span *ngIf=\"showActions\" matTooltip=\"Import\" routerLink=\"import\"\n class=\"cursor-pointer material-symbols-outlined\">\n file_upload\n </span>\n\n <app-export-to-excel-button tableId=\"stockIssueTable\" fileName=\"Stock Issues\"\n (onExportStart)=\"exportInProgress.set(true)\" (onExportEnd)=\"exportInProgress.set(false)\">\n </app-export-to-excel-button>\n\n <app-column-selector *ngIf=\"showActions && columnConfig.length > 0\" mode=\"icon\" [columnConfigs]=\"columnConfig\"\n [(selectedColumns)]=\"selectedColumns\"></app-column-selector>\n\n <mat-button-toggle-group class=\"view-toggle\" [value]=\"selectedView()\" (change)=\"selectedView.set($event.value)\">\n <mat-button-toggle value=\"itemized\">Itemized</mat-button-toggle>\n <mat-button-toggle value=\"grouped\">Grouped</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n <form [formGroup]=\"filterForm\" *ngIf=\"showFilters\" class=\"d-flex align-items-center gap-2 flex-wrap\">\n <mat-form-field class='fl-md'>\n <mat-label>Search</mat-label>\n <input matInput placeholder=\"Search products\" formControlName=\"search\" />\n </mat-form-field>\n\n <app-timeline-filter appearance=\"fill\" labelText=\"Date\" formControlName=\"duration\" [form]=\"filterForm\"\n [showClearButton]=\"true\"></app-timeline-filter>\n\n <mat-form-field class='fl-sm'>\n <mat-label>Category</mat-label>\n <app-searchable-selector apiUrl=\"api/product-categories\" formControlName=\"category_ids\" [multiple]=\"true\">\n </app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field class='fl-sm'>\n <mat-label>Measure</mat-label>\n <app-searchable-selector apiUrl=\"api/product-measures\" formControlName=\"measure_ids\" [multiple]=\"true\">\n </app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field class='fl-sm'>\n <mat-label>Location</mat-label>\n <app-searchable-selector apiUrl=\"api/inventory-locations\" formControlName=\"location_ids\" [multiple]=\"true\">\n </app-searchable-selector>\n </mat-form-field>\n </form>\n </mat-card-content>\n</mat-card>\n\n<app-stock-issue-products-list *ngIf=\"selectedView() === 'itemized'\" [filters]=\"filtersValue()\"\n [isProductView]=\"!!product\" [selectedColumns]=\"selectedColumns\" [exportInProgress]=\"exportInProgress()\"\n (columnConfigReady)=\"onColumnConfigReady($event)\" (listUpdated)=\"listUpdated.emit($event)\">\n</app-stock-issue-products-list>\n\n<app-stock-issue-list *ngIf=\"selectedView() === 'grouped'\" [filters]=\"filtersValue()\"\n [selectedColumns]=\"selectedColumns\" [exportInProgress]=\"exportInProgress()\"\n (columnConfigReady)=\"onColumnConfigReady($event)\" (listUpdated)=\"listUpdated.emit($event)\">\n</app-stock-issue-list>", styles: [":host ::ng-deep .view-toggle{--mat-standard-button-toggle-height: 28px;font-size:12px}:host ::ng-deep .mat-mdc-footer-row{position:sticky;bottom:0;background-color:#fff;z-index:10;box-shadow:0 -2px 4px #0000001a}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.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: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i7.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i7.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i8.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i9.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"] }, { kind: "component", type: i9.TimelineFilterComponent, selector: "app-timeline-filter", inputs: ["defaultValue", "required", "disabled", "value", "timelines", "dateFrom", "dateTo", "appearance", "showClearButton", "form", "labelText"], outputs: ["selectionChange"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i9.ColumnSelectorComponent, selector: "app-column-selector", inputs: ["label", "mode", "columnConfigs", "selectedColumns", "isExportWorking"], outputs: ["selectedColumnsChange", "displayedColumnsChange"] }, { kind: "component", type: i9.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "component", type: i10.ExportToExcelButtonComponent, selector: "app-export-to-excel-button", inputs: ["tableId", "fileName"], outputs: ["onExportStart", "onExportEnd"] }, { kind: "component", type: i11.StockIssueListComponent, selector: "app-stock-issue-list", inputs: ["filters", "selectedColumns", "exportInProgress"], outputs: ["listUpdated", "columnConfigReady"] }, { kind: "component", type: i12.StockIssueProductListComponent, selector: "app-stock-issue-products-list", inputs: ["filters", "isProductView", "selectedColumns", "exportInProgress"], outputs: ["listUpdated", "columnConfigReady"] }], preserveWhitespaces: true });
67
+ };
68
+ StockIssuePageComponent = __decorate([
69
+ UntilDestroy()
70
+ ], StockIssuePageComponent);
71
+ export { StockIssuePageComponent };
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StockIssuePageComponent, decorators: [{
73
+ type: Component,
74
+ args: [{ selector: 'app-stock-issue-page', template: "<mat-card *ngIf=\"!product\" class=\"mb-2\">\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"mb-0\">{{ label }}</h3>\n\n <div class=\"d-flex gap-2 align-items-center ms-2 d-print-none\">\n <app-techlify-icon role='button' name='add'\n [routerLink]=\"['/inventory/stock-issues/batch-form']\"></app-techlify-icon>\n\n <span *ngIf=\"showActions\" matTooltip=\"Import\" routerLink=\"import\"\n class=\"cursor-pointer material-symbols-outlined\">\n file_upload\n </span>\n\n <app-export-to-excel-button tableId=\"stockIssueTable\" fileName=\"Stock Issues\"\n (onExportStart)=\"exportInProgress.set(true)\" (onExportEnd)=\"exportInProgress.set(false)\">\n </app-export-to-excel-button>\n\n <app-column-selector *ngIf=\"showActions && columnConfig.length > 0\" mode=\"icon\" [columnConfigs]=\"columnConfig\"\n [(selectedColumns)]=\"selectedColumns\"></app-column-selector>\n\n <mat-button-toggle-group class=\"view-toggle\" [value]=\"selectedView()\" (change)=\"selectedView.set($event.value)\">\n <mat-button-toggle value=\"itemized\">Itemized</mat-button-toggle>\n <mat-button-toggle value=\"grouped\">Grouped</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n <form [formGroup]=\"filterForm\" *ngIf=\"showFilters\" class=\"d-flex align-items-center gap-2 flex-wrap\">\n <mat-form-field class='fl-md'>\n <mat-label>Search</mat-label>\n <input matInput placeholder=\"Search products\" formControlName=\"search\" />\n </mat-form-field>\n\n <app-timeline-filter appearance=\"fill\" labelText=\"Date\" formControlName=\"duration\" [form]=\"filterForm\"\n [showClearButton]=\"true\"></app-timeline-filter>\n\n <mat-form-field class='fl-sm'>\n <mat-label>Category</mat-label>\n <app-searchable-selector apiUrl=\"api/product-categories\" formControlName=\"category_ids\" [multiple]=\"true\">\n </app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field class='fl-sm'>\n <mat-label>Measure</mat-label>\n <app-searchable-selector apiUrl=\"api/product-measures\" formControlName=\"measure_ids\" [multiple]=\"true\">\n </app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field class='fl-sm'>\n <mat-label>Location</mat-label>\n <app-searchable-selector apiUrl=\"api/inventory-locations\" formControlName=\"location_ids\" [multiple]=\"true\">\n </app-searchable-selector>\n </mat-form-field>\n </form>\n </mat-card-content>\n</mat-card>\n\n<app-stock-issue-products-list *ngIf=\"selectedView() === 'itemized'\" [filters]=\"filtersValue()\"\n [isProductView]=\"!!product\" [selectedColumns]=\"selectedColumns\" [exportInProgress]=\"exportInProgress()\"\n (columnConfigReady)=\"onColumnConfigReady($event)\" (listUpdated)=\"listUpdated.emit($event)\">\n</app-stock-issue-products-list>\n\n<app-stock-issue-list *ngIf=\"selectedView() === 'grouped'\" [filters]=\"filtersValue()\"\n [selectedColumns]=\"selectedColumns\" [exportInProgress]=\"exportInProgress()\"\n (columnConfigReady)=\"onColumnConfigReady($event)\" (listUpdated)=\"listUpdated.emit($event)\">\n</app-stock-issue-list>", styles: [":host ::ng-deep .view-toggle{--mat-standard-button-toggle-height: 28px;font-size:12px}:host ::ng-deep .mat-mdc-footer-row{position:sticky;bottom:0;background-color:#fff;z-index:10;box-shadow:0 -2px 4px #0000001a}\n"] }]
75
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { product: [{
76
+ type: Input
77
+ }], issuableType: [{
78
+ type: Input
79
+ }], issuableId: [{
80
+ type: Input
81
+ }], label: [{
82
+ type: Input
83
+ }], showActions: [{
84
+ type: Input
85
+ }], showFilters: [{
86
+ type: Input
87
+ }], listUpdated: [{
88
+ type: Output
89
+ }], itemizedList: [{
90
+ type: ViewChild,
91
+ args: [StockIssueProductListComponent]
92
+ }], groupedList: [{
93
+ type: ViewChild,
94
+ args: [StockIssueListComponent]
95
+ }] } });
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staXNzdWUtcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9zdG9jay1pc3N1YW5jZXMvc3RvY2staXNzdWUtcGFnZS9zdG9jay1pc3N1ZS1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL3N0b2NrLWlzc3VhbmNlcy9zdG9jay1pc3N1ZS1wYWdlL3N0b2NrLWlzc3VlLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUTNHLElBQU0sdUJBQXVCLEdBQTdCLE1BQU0sdUJBQXVCO0lBcUJkO0lBcEJYLE9BQU8sQ0FBTTtJQUNiLFlBQVksQ0FBVTtJQUN0QixVQUFVLENBQVU7SUFDcEIsS0FBSyxHQUFHLGNBQWMsQ0FBQztJQUN2QixXQUFXLEdBQVksSUFBSSxDQUFDO0lBQzVCLFdBQVcsR0FBWSxJQUFJLENBQUM7SUFDM0IsV0FBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBRWhCLFlBQVksQ0FBa0M7SUFDckQsV0FBVyxDQUEyQjtJQUVsRixZQUFZLEdBQUcsTUFBTSxDQUF5QixVQUFVLENBQUMsQ0FBQztJQUMxRCxnQkFBZ0IsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFMUMsWUFBWSxHQUFtQixFQUFFLENBQUM7SUFDbEMsZUFBZSxHQUFtQixFQUFFLENBQUM7SUFFckMsVUFBVSxDQUFZO0lBQ3RCLFlBQVksQ0FBYztJQUUxQixZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3ZDLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNsQixTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDZixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDYixRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDZCxZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDbEIsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2pCLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNqQixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDYixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3BFLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBc0I7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlELENBQUM7d0dBcERVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLG1UQVN2Qiw4QkFBOEIsOEVBQzlCLHVCQUF1QixnREN6QnBDLGkxR0FrRXVCOztBRG5EVix1QkFBdUI7SUFObkMsWUFBWSxFQUFFO0dBTUYsdUJBQXVCLENBcURuQzs7NEZBckRZLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxzQkFBc0I7Z0ZBS3ZCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUU0QyxZQUFZO3NCQUE5RCxTQUFTO3VCQUFDLDhCQUE4QjtnQkFDRyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFNpZ25hbCwgVmlld0NoaWxkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbHVtbkNvbmZpZyB9IGZyb20gJ25neC10ZWNobGlmeS1jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95IH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IFN0b2NrSXNzdWVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vc3RvY2staXNzdWUtbGlzdC9zdG9jay1pc3N1ZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdG9ja0lzc3VlUHJvZHVjdExpc3RDb21wb25lbnQgfSBmcm9tICcuLi9zdG9jay1pc3N1ZS1wcm9kdWN0cy1saXN0L3N0b2NrLWlzc3VlLXByb2R1Y3RzLWxpc3QuY29tcG9uZW50JztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc3RvY2staXNzdWUtcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdG9jay1pc3N1ZS1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RvY2staXNzdWUtcGFnZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdG9ja0lzc3VlUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHByb2R1Y3Q6IGFueTtcbiAgQElucHV0KCkgaXNzdWFibGVUeXBlITogc3RyaW5nO1xuICBASW5wdXQoKSBpc3N1YWJsZUlkITogbnVtYmVyO1xuICBASW5wdXQoKSBsYWJlbCA9ICdTdG9jayBJc3N1ZXMnO1xuICBASW5wdXQoKSBzaG93QWN0aW9uczogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dGaWx0ZXJzOiBib29sZWFuID0gdHJ1ZTtcbiAgQE91dHB1dCgpIGxpc3RVcGRhdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBWaWV3Q2hpbGQoU3RvY2tJc3N1ZVByb2R1Y3RMaXN0Q29tcG9uZW50KSBwcml2YXRlIGl0ZW1pemVkTGlzdD86IFN0b2NrSXNzdWVQcm9kdWN0TGlzdENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZChTdG9ja0lzc3VlTGlzdENvbXBvbmVudCkgcHJpdmF0ZSBncm91cGVkTGlzdD86IFN0b2NrSXNzdWVMaXN0Q29tcG9uZW50O1xuXG4gIHNlbGVjdGVkVmlldyA9IHNpZ25hbDwnaXRlbWl6ZWQnIHwgJ2dyb3VwZWQnPignaXRlbWl6ZWQnKTtcbiAgZXhwb3J0SW5Qcm9ncmVzcyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29sdW1uQ29uZmlnOiBDb2x1bW5Db25maWdbXSA9IFtdO1xuICBzZWxlY3RlZENvbHVtbnM6IENvbHVtbkNvbmZpZ1tdID0gW107XG5cbiAgZmlsdGVyRm9ybTogRm9ybUdyb3VwO1xuICBmaWx0ZXJzVmFsdWU6IFNpZ25hbDxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5maWx0ZXJGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBjYXRlZ29yeV9pZHM6IFsnJ10sXG4gICAgICBkYXRlX2Zyb206IFsnJ10sXG4gICAgICBkYXRlX3RvOiBbJyddLFxuICAgICAgZHVyYXRpb246IFsnJ10sXG4gICAgICBsb2NhdGlvbl9pZHM6IFsnJ10sXG4gICAgICBtZWFzdXJlX2lkczogWycnXSxcbiAgICAgIHByb2R1Y3RfaWRzOiBbJyddLFxuICAgICAgc2VhcmNoOiBbJyddLFxuICAgIH0pO1xuXG4gICAgdGhpcy5maWx0ZXJzVmFsdWUgPSB0b1NpZ25hbChcbiAgICAgIHRoaXMuZmlsdGVyRm9ybS52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5maWx0ZXJGb3JtLnZhbHVlKSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvZHVjdCkge1xuICAgICAgdGhpcy5maWx0ZXJGb3JtLmdldCgncHJvZHVjdF9pZHMnKT8uc2V0VmFsdWUodGhpcy5wcm9kdWN0Py5pZCk7XG4gICAgfVxuICB9XG5cbiAgcmVsb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbWl6ZWRMaXN0Py5yZWxvYWQoKTtcbiAgICB0aGlzLmdyb3VwZWRMaXN0Py5yZWxvYWQoKTtcbiAgfVxuXG4gIG9uQ29sdW1uQ29uZmlnUmVhZHkoY29uZmlnOiBDb2x1bW5Db25maWdbXSkge1xuICAgIHRoaXMuY29sdW1uQ29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zID0gY29uZmlnLmZpbHRlcihjb2wgPT4gY29sLmlzU2VsZWN0ZWQpO1xuICB9XG59XG4iLCI8bWF0LWNhcmQgKm5nSWY9XCIhcHJvZHVjdFwiIGNsYXNzPVwibWItMlwiPlxuICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgIDxoMyBjbGFzcz1cIm1iLTBcIj57eyBsYWJlbCB9fTwvaDM+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTIgYWxpZ24taXRlbXMtY2VudGVyIG1zLTIgZC1wcmludC1ub25lXCI+XG4gICAgICAgIDxhcHAtdGVjaGxpZnktaWNvbiByb2xlPSdidXR0b24nIG5hbWU9J2FkZCdcbiAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9pbnZlbnRvcnkvc3RvY2staXNzdWVzL2JhdGNoLWZvcm0nXVwiPjwvYXBwLXRlY2hsaWZ5LWljb24+XG5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJzaG93QWN0aW9uc1wiIG1hdFRvb2x0aXA9XCJJbXBvcnRcIiByb3V0ZXJMaW5rPVwiaW1wb3J0XCJcbiAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIG1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj5cbiAgICAgICAgICBmaWxlX3VwbG9hZFxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPGFwcC1leHBvcnQtdG8tZXhjZWwtYnV0dG9uIHRhYmxlSWQ9XCJzdG9ja0lzc3VlVGFibGVcIiBmaWxlTmFtZT1cIlN0b2NrIElzc3Vlc1wiXG4gICAgICAgICAgKG9uRXhwb3J0U3RhcnQpPVwiZXhwb3J0SW5Qcm9ncmVzcy5zZXQodHJ1ZSlcIiAob25FeHBvcnRFbmQpPVwiZXhwb3J0SW5Qcm9ncmVzcy5zZXQoZmFsc2UpXCI+XG4gICAgICAgIDwvYXBwLWV4cG9ydC10by1leGNlbC1idXR0b24+XG5cbiAgICAgICAgPGFwcC1jb2x1bW4tc2VsZWN0b3IgKm5nSWY9XCJzaG93QWN0aW9ucyAmJiBjb2x1bW5Db25maWcubGVuZ3RoID4gMFwiIG1vZGU9XCJpY29uXCIgW2NvbHVtbkNvbmZpZ3NdPVwiY29sdW1uQ29uZmlnXCJcbiAgICAgICAgICBbKHNlbGVjdGVkQ29sdW1ucyldPVwic2VsZWN0ZWRDb2x1bW5zXCI+PC9hcHAtY29sdW1uLXNlbGVjdG9yPlxuXG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBjbGFzcz1cInZpZXctdG9nZ2xlXCIgW3ZhbHVlXT1cInNlbGVjdGVkVmlldygpXCIgKGNoYW5nZSk9XCJzZWxlY3RlZFZpZXcuc2V0KCRldmVudC52YWx1ZSlcIj5cbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJpdGVtaXplZFwiPkl0ZW1pemVkPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJncm91cGVkXCI+R3JvdXBlZDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZmlsdGVyRm9ybVwiICpuZ0lmPVwic2hvd0ZpbHRlcnNcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgZmxleC13cmFwXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9J2ZsLW1kJz5cbiAgICAgICAgPG1hdC1sYWJlbD5TZWFyY2g8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiU2VhcmNoIHByb2R1Y3RzXCIgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoXCIgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxhcHAtdGltZWxpbmUtZmlsdGVyIGFwcGVhcmFuY2U9XCJmaWxsXCIgbGFiZWxUZXh0PVwiRGF0ZVwiIGZvcm1Db250cm9sTmFtZT1cImR1cmF0aW9uXCIgW2Zvcm1dPVwiZmlsdGVyRm9ybVwiXG4gICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwidHJ1ZVwiPjwvYXBwLXRpbWVsaW5lLWZpbHRlcj5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPSdmbC1zbSc+XG4gICAgICAgIDxtYXQtbGFiZWw+Q2F0ZWdvcnk8L21hdC1sYWJlbD5cbiAgICAgICAgPGFwcC1zZWFyY2hhYmxlLXNlbGVjdG9yIGFwaVVybD1cImFwaS9wcm9kdWN0LWNhdGVnb3JpZXNcIiBmb3JtQ29udHJvbE5hbWU9XCJjYXRlZ29yeV9pZHNcIiBbbXVsdGlwbGVdPVwidHJ1ZVwiPlxuICAgICAgICA8L2FwcC1zZWFyY2hhYmxlLXNlbGVjdG9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPSdmbC1zbSc+XG4gICAgICAgIDxtYXQtbGFiZWw+TWVhc3VyZTwvbWF0LWxhYmVsPlxuICAgICAgICA8YXBwLXNlYXJjaGFibGUtc2VsZWN0b3IgYXBpVXJsPVwiYXBpL3Byb2R1Y3QtbWVhc3VyZXNcIiBmb3JtQ29udHJvbE5hbWU9XCJtZWFzdXJlX2lkc1wiIFttdWx0aXBsZV09XCJ0cnVlXCI+XG4gICAgICAgIDwvYXBwLXNlYXJjaGFibGUtc2VsZWN0b3I+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9J2ZsLXNtJz5cbiAgICAgICAgPG1hdC1sYWJlbD5Mb2NhdGlvbjwvbWF0LWxhYmVsPlxuICAgICAgICA8YXBwLXNlYXJjaGFibGUtc2VsZWN0b3IgYXBpVXJsPVwiYXBpL2ludmVudG9yeS1sb2NhdGlvbnNcIiBmb3JtQ29udHJvbE5hbWU9XCJsb2NhdGlvbl9pZHNcIiBbbXVsdGlwbGVdPVwidHJ1ZVwiPlxuICAgICAgICA8L2FwcC1zZWFyY2hhYmxlLXNlbGVjdG9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Zvcm0+XG4gIDwvbWF0LWNhcmQtY29udGVudD5cbjwvbWF0LWNhcmQ+XG5cbjxhcHAtc3RvY2staXNzdWUtcHJvZHVjdHMtbGlzdCAqbmdJZj1cInNlbGVjdGVkVmlldygpID09PSAnaXRlbWl6ZWQnXCIgW2ZpbHRlcnNdPVwiZmlsdGVyc1ZhbHVlKClcIlxuICBbaXNQcm9kdWN0Vmlld109XCIhIXByb2R1Y3RcIiBbc2VsZWN0ZWRDb2x1bW5zXT1cInNlbGVjdGVkQ29sdW1uc1wiIFtleHBvcnRJblByb2dyZXNzXT1cImV4cG9ydEluUHJvZ3Jlc3MoKVwiXG4gIChjb2x1bW5Db25maWdSZWFkeSk9XCJvbkNvbHVtbkNvbmZpZ1JlYWR5KCRldmVudClcIiAobGlzdFVwZGF0ZWQpPVwibGlzdFVwZGF0ZWQuZW1pdCgkZXZlbnQpXCI+XG48L2FwcC1zdG9jay1pc3N1ZS1wcm9kdWN0cy1saXN0PlxuXG48YXBwLXN0b2NrLWlzc3VlLWxpc3QgKm5nSWY9XCJzZWxlY3RlZFZpZXcoKSA9PT0gJ2dyb3VwZWQnXCIgW2ZpbHRlcnNdPVwiZmlsdGVyc1ZhbHVlKClcIlxuICBbc2VsZWN0ZWRDb2x1bW5zXT1cInNlbGVjdGVkQ29sdW1uc1wiIFtleHBvcnRJblByb2dyZXNzXT1cImV4cG9ydEluUHJvZ3Jlc3MoKVwiXG4gIChjb2x1bW5Db25maWdSZWFkeSk9XCJvbkNvbHVtbkNvbmZpZ1JlYWR5KCRldmVudClcIiAobGlzdFVwZGF0ZWQpPVwibGlzdFVwZGF0ZWQuZW1pdCgkZXZlbnQpXCI+XG48L2FwcC1zdG9jay1pc3N1ZS1saXN0PiJdfQ==
@@ -0,0 +1,91 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { StockIssuePageComponent } from './stock-issue-page.component';
4
+ import { StockIssueFormModule } from '../stock-issue-form/stock-issue-form.module';
5
+ import { InfiniteScrollDirective } from 'ngx-infinite-scroll';
6
+ import { StockIssuanceDeleteButtonModule } from '../stock-issuance-delete-button/stock-issuance-delete-button.module';
7
+ import { ColumnSelectorModule, MaterialModule, SearchableSelectorModule, TechlifyDeleteButtonComponent, TechlifyIconModule, TimelineFilterModule } from 'ngx-techlify-core';
8
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
9
+ import { RouterModule } from '@angular/router';
10
+ import { TechlifyFilterModule } from '../../techlify-filter/techlify-filter.module';
11
+ import { ReactiveFormsModule } from '@angular/forms';
12
+ import { ProductCategoryBadgesComponent } from '../../product/widgets/product-category-badges/product-category-badges.component';
13
+ import { ExportToExcelButtonComponent } from '../../shared/export-to-excel-button/export-to-excel-button.component';
14
+ import { StockIssueListComponent } from '../stock-issue-list/stock-issue-list.component';
15
+ import { StockIssueProductListComponent } from '../stock-issue-products-list/stock-issue-products-list.component';
16
+ import { StockIssueProductFormButtonComponent } from '../stock-issue-product-form/stock-issue-product-form-button/stock-issue-product-form-button.component';
17
+ import * as i0 from "@angular/core";
18
+ export class StockIssuePageModule {
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StockIssuePageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: StockIssuePageModule, declarations: [StockIssuePageComponent,
21
+ StockIssueListComponent,
22
+ StockIssueProductListComponent], imports: [CommonModule,
23
+ MaterialModule,
24
+ TechlifyFilterModule,
25
+ StockIssueFormModule,
26
+ InfiniteScrollDirective,
27
+ StockIssuanceDeleteButtonModule,
28
+ MatProgressBarModule,
29
+ RouterModule,
30
+ SearchableSelectorModule,
31
+ TimelineFilterModule,
32
+ ReactiveFormsModule,
33
+ ProductCategoryBadgesComponent,
34
+ ColumnSelectorModule,
35
+ TechlifyIconModule,
36
+ ExportToExcelButtonComponent,
37
+ StockIssueProductFormButtonComponent,
38
+ TechlifyDeleteButtonComponent], exports: [StockIssuePageComponent,
39
+ StockIssueListComponent,
40
+ StockIssueProductListComponent] });
41
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StockIssuePageModule, imports: [CommonModule,
42
+ MaterialModule,
43
+ TechlifyFilterModule,
44
+ StockIssueFormModule,
45
+ StockIssuanceDeleteButtonModule,
46
+ MatProgressBarModule,
47
+ RouterModule,
48
+ SearchableSelectorModule,
49
+ TimelineFilterModule,
50
+ ReactiveFormsModule,
51
+ ColumnSelectorModule,
52
+ TechlifyIconModule,
53
+ ExportToExcelButtonComponent,
54
+ StockIssueProductFormButtonComponent,
55
+ TechlifyDeleteButtonComponent] });
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StockIssuePageModule, decorators: [{
58
+ type: NgModule,
59
+ args: [{
60
+ declarations: [
61
+ StockIssuePageComponent,
62
+ StockIssueListComponent,
63
+ StockIssueProductListComponent,
64
+ ],
65
+ imports: [
66
+ CommonModule,
67
+ MaterialModule,
68
+ TechlifyFilterModule,
69
+ StockIssueFormModule,
70
+ InfiniteScrollDirective,
71
+ StockIssuanceDeleteButtonModule,
72
+ MatProgressBarModule,
73
+ RouterModule,
74
+ SearchableSelectorModule,
75
+ TimelineFilterModule,
76
+ ReactiveFormsModule,
77
+ ProductCategoryBadgesComponent,
78
+ ColumnSelectorModule,
79
+ TechlifyIconModule,
80
+ ExportToExcelButtonComponent,
81
+ StockIssueProductFormButtonComponent,
82
+ TechlifyDeleteButtonComponent
83
+ ],
84
+ exports: [
85
+ StockIssuePageComponent,
86
+ StockIssueListComponent,
87
+ StockIssueProductListComponent,
88
+ ],
89
+ }]
90
+ }] });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staXNzdWUtcGFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9zdG9jay1pc3N1YW5jZXMvc3RvY2staXNzdWUtcGFnZS9zdG9jay1pc3N1ZS1wYWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUN0SCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIsNkJBQTZCLEVBQzdCLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDckIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUZBQWlGLENBQUM7QUFDakksT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDcEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDbEgsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sdUdBQXVHLENBQUM7O0FBaUM3SixNQUFNLE9BQU8sb0JBQW9CO3dHQUFwQixvQkFBb0I7eUdBQXBCLG9CQUFvQixpQkE3QjdCLHVCQUF1QjtZQUN2Qix1QkFBdUI7WUFDdkIsOEJBQThCLGFBRzlCLFlBQVk7WUFDWixjQUFjO1lBQ2Qsb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQUNwQix1QkFBdUI7WUFDdkIsK0JBQStCO1lBQy9CLG9CQUFvQjtZQUNwQixZQUFZO1lBQ1osd0JBQXdCO1lBQ3hCLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFDbkIsOEJBQThCO1lBQzlCLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsNEJBQTRCO1lBQzVCLG9DQUFvQztZQUNwQyw2QkFBNkIsYUFHN0IsdUJBQXVCO1lBQ3ZCLHVCQUF1QjtZQUN2Qiw4QkFBOEI7eUdBR3JCLG9CQUFvQixZQXhCN0IsWUFBWTtZQUNaLGNBQWM7WUFDZCxvQkFBb0I7WUFDcEIsb0JBQW9CO1lBRXBCLCtCQUErQjtZQUMvQixvQkFBb0I7WUFDcEIsWUFBWTtZQUNaLHdCQUF3QjtZQUN4QixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBRW5CLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsNEJBQTRCO1lBQzVCLG9DQUFvQztZQUNwQyw2QkFBNkI7OzRGQVFwQixvQkFBb0I7a0JBL0JoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsOEJBQThCO3FCQUMvQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLCtCQUErQjt3QkFDL0Isb0JBQW9CO3dCQUNwQixZQUFZO3dCQUNaLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLDhCQUE4Qjt3QkFDOUIsb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLDRCQUE0Qjt3QkFDNUIsb0NBQW9DO3dCQUNwQyw2QkFBNkI7cUJBQzlCO29CQUNELE9BQU8sRUFBRTt3QkFDUCx1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsOEJBQThCO3FCQUMvQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3RvY2tJc3N1ZVBhZ2VDb21wb25lbnQgfSBmcm9tICcuL3N0b2NrLWlzc3VlLXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFN0b2NrSXNzdWVGb3JtTW9kdWxlIH0gZnJvbSAnLi4vc3RvY2staXNzdWUtZm9ybS9zdG9jay1pc3N1ZS1mb3JtLm1vZHVsZSc7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJ25neC1pbmZpbml0ZS1zY3JvbGwnO1xuaW1wb3J0IHsgU3RvY2tJc3N1YW5jZURlbGV0ZUJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL3N0b2NrLWlzc3VhbmNlLWRlbGV0ZS1idXR0b24vc3RvY2staXNzdWFuY2UtZGVsZXRlLWJ1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHtcbiAgQ29sdW1uU2VsZWN0b3JNb2R1bGUsXG4gIE1hdGVyaWFsTW9kdWxlLFxuICBTZWFyY2hhYmxlU2VsZWN0b3JNb2R1bGUsXG4gIFRlY2hsaWZ5RGVsZXRlQnV0dG9uQ29tcG9uZW50LFxuICBUZWNobGlmeUljb25Nb2R1bGUsXG4gIFRpbWVsaW5lRmlsdGVyTW9kdWxlXG59IGZyb20gJ25neC10ZWNobGlmeS1jb3JlJztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUZWNobGlmeUZpbHRlck1vZHVsZSB9IGZyb20gJy4uLy4uL3RlY2hsaWZ5LWZpbHRlci90ZWNobGlmeS1maWx0ZXIubW9kdWxlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQcm9kdWN0Q2F0ZWdvcnlCYWRnZXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wcm9kdWN0L3dpZGdldHMvcHJvZHVjdC1jYXRlZ29yeS1iYWRnZXMvcHJvZHVjdC1jYXRlZ29yeS1iYWRnZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEV4cG9ydFRvRXhjZWxCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvZXhwb3J0LXRvLWV4Y2VsLWJ1dHRvbi9leHBvcnQtdG8tZXhjZWwtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdG9ja0lzc3VlTGlzdENvbXBvbmVudCB9IGZyb20gJy4uL3N0b2NrLWlzc3VlLWxpc3Qvc3RvY2staXNzdWUtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3RvY2tJc3N1ZVByb2R1Y3RMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vc3RvY2staXNzdWUtcHJvZHVjdHMtbGlzdC9zdG9jay1pc3N1ZS1wcm9kdWN0cy1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdG9ja0lzc3VlUHJvZHVjdEZvcm1CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9zdG9jay1pc3N1ZS1wcm9kdWN0LWZvcm0vc3RvY2staXNzdWUtcHJvZHVjdC1mb3JtLWJ1dHRvbi9zdG9jay1pc3N1ZS1wcm9kdWN0LWZvcm0tYnV0dG9uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFN0b2NrSXNzdWVQYWdlQ29tcG9uZW50LFxuICAgIFN0b2NrSXNzdWVMaXN0Q29tcG9uZW50LFxuICAgIFN0b2NrSXNzdWVQcm9kdWN0TGlzdENvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRlcmlhbE1vZHVsZSxcbiAgICBUZWNobGlmeUZpbHRlck1vZHVsZSxcbiAgICBTdG9ja0lzc3VlRm9ybU1vZHVsZSxcbiAgICBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSxcbiAgICBTdG9ja0lzc3VhbmNlRGVsZXRlQnV0dG9uTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBTZWFyY2hhYmxlU2VsZWN0b3JNb2R1bGUsXG4gICAgVGltZWxpbmVGaWx0ZXJNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBQcm9kdWN0Q2F0ZWdvcnlCYWRnZXNDb21wb25lbnQsXG4gICAgQ29sdW1uU2VsZWN0b3JNb2R1bGUsXG4gICAgVGVjaGxpZnlJY29uTW9kdWxlLFxuICAgIEV4cG9ydFRvRXhjZWxCdXR0b25Db21wb25lbnQsXG4gICAgU3RvY2tJc3N1ZVByb2R1Y3RGb3JtQnV0dG9uQ29tcG9uZW50LFxuICAgIFRlY2hsaWZ5RGVsZXRlQnV0dG9uQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTdG9ja0lzc3VlUGFnZUNvbXBvbmVudCxcbiAgICBTdG9ja0lzc3VlTGlzdENvbXBvbmVudCxcbiAgICBTdG9ja0lzc3VlUHJvZHVjdExpc3RDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFN0b2NrSXNzdWVQYWdlTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,35 @@
1
+ import { Component, input, output } from '@angular/core';
2
+ import { TechlifyIconModule } from 'ngx-techlify-core';
3
+ import { StockIssueProductFormComponent } from '../stock-issue-product-form.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/dialog";
6
+ import * as i2 from "ngx-techlify-core";
7
+ export class StockIssueProductFormButtonComponent {
8
+ dialog;
9
+ stockIssueProduct = input();
10
+ stockIssueId = input.required();
11
+ saved = output();
12
+ constructor(dialog) {
13
+ this.dialog = dialog;
14
+ }
15
+ open() {
16
+ this.dialog.open(StockIssueProductFormComponent, {
17
+ width: '500px',
18
+ data: {
19
+ stockIssueId: this.stockIssueId(),
20
+ stockIssueProduct: this.stockIssueProduct() ?? null,
21
+ },
22
+ }).afterClosed().subscribe((item) => {
23
+ if (item) {
24
+ this.saved.emit(item);
25
+ }
26
+ });
27
+ }
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StockIssueProductFormButtonComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: StockIssueProductFormButtonComponent, isStandalone: true, selector: "app-stock-issue-product-form-button", inputs: { stockIssueProduct: { classPropertyName: "stockIssueProduct", publicName: "stockIssueProduct", isSignal: true, isRequired: false, transformFunction: null }, stockIssueId: { classPropertyName: "stockIssueId", publicName: "stockIssueId", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { saved: "saved" }, ngImport: i0, template: "<app-techlify-icon role=\"button\" [name]=\"stockIssueProduct() ? 'edit' : 'add'\" (click)=\"open()\">\n</app-techlify-icon>\n", dependencies: [{ kind: "ngmodule", type: TechlifyIconModule }, { kind: "component", type: i2.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }], preserveWhitespaces: true });
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StockIssueProductFormButtonComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ selector: 'app-stock-issue-product-form-button', standalone: true, imports: [TechlifyIconModule], template: "<app-techlify-icon role=\"button\" [name]=\"stockIssueProduct() ? 'edit' : 'add'\" (click)=\"open()\">\n</app-techlify-icon>\n" }]
34
+ }], ctorParameters: () => [{ type: i1.MatDialog }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staXNzdWUtcHJvZHVjdC1mb3JtLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9zdG9jay1pc3N1YW5jZXMvc3RvY2staXNzdWUtcHJvZHVjdC1mb3JtL3N0b2NrLWlzc3VlLXByb2R1Y3QtZm9ybS1idXR0b24vc3RvY2staXNzdWUtcHJvZHVjdC1mb3JtLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9zdG9jay1pc3N1YW5jZXMvc3RvY2staXNzdWUtcHJvZHVjdC1mb3JtL3N0b2NrLWlzc3VlLXByb2R1Y3QtZm9ybS1idXR0b24vc3RvY2staXNzdWUtcHJvZHVjdC1mb3JtLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7QUFRdkYsTUFBTSxPQUFPLG9DQUFvQztJQU16QjtJQUxwQixpQkFBaUIsR0FBRyxLQUFLLEVBQU8sQ0FBQztJQUNqQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBRXhDLEtBQUssR0FBRyxNQUFNLEVBQU8sQ0FBQztJQUV0QixZQUFvQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO0lBQUcsQ0FBQztJQUV6QyxJQUFJO1FBQ0EsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUU7WUFDN0MsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUU7Z0JBQ0YsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ2pDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLElBQUk7YUFDdEQ7U0FDSixDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDckMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDUCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO3dHQXBCUSxvQ0FBb0M7NEZBQXBDLG9DQUFvQyxnYkNYakQsZ0lBRUEsMkNET2Msa0JBQWtCOzs0RkFFbkIsb0NBQW9DO2tCQU5oRCxTQUFTOytCQUNJLHFDQUFxQyxjQUVuQyxJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFRlY2hsaWZ5SWNvbk1vZHVsZSB9IGZyb20gJ25neC10ZWNobGlmeS1jb3JlJztcbmltcG9ydCB7IFN0b2NrSXNzdWVQcm9kdWN0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL3N0b2NrLWlzc3VlLXByb2R1Y3QtZm9ybS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1zdG9jay1pc3N1ZS1wcm9kdWN0LWZvcm0tYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RvY2staXNzdWUtcHJvZHVjdC1mb3JtLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGVjaGxpZnlJY29uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RvY2tJc3N1ZVByb2R1Y3RGb3JtQnV0dG9uQ29tcG9uZW50IHtcbiAgICBzdG9ja0lzc3VlUHJvZHVjdCA9IGlucHV0PGFueT4oKTtcbiAgICBzdG9ja0lzc3VlSWQgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG5cbiAgICBzYXZlZCA9IG91dHB1dDxhbnk+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nKSB7fVxuXG4gICAgb3BlbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2cub3BlbihTdG9ja0lzc3VlUHJvZHVjdEZvcm1Db21wb25lbnQsIHtcbiAgICAgICAgICAgIHdpZHRoOiAnNTAwcHgnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIHN0b2NrSXNzdWVJZDogdGhpcy5zdG9ja0lzc3VlSWQoKSxcbiAgICAgICAgICAgICAgICBzdG9ja0lzc3VlUHJvZHVjdDogdGhpcy5zdG9ja0lzc3VlUHJvZHVjdCgpID8/IG51bGwsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2F2ZWQuZW1pdChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGFwcC10ZWNobGlmeS1pY29uIHJvbGU9XCJidXR0b25cIiBbbmFtZV09XCJzdG9ja0lzc3VlUHJvZHVjdCgpID8gJ2VkaXQnIDogJ2FkZCdcIiAoY2xpY2spPVwib3BlbigpXCI+XG48L2FwcC10ZWNobGlmeS1pY29uPlxuIl19
@@ -0,0 +1,102 @@
1
+ import { Component, Inject, ViewChild } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ReactiveFormsModule, Validators } from '@angular/forms';
4
+ import { SearchableSelectorModule, TechlifyFeatureModule, TechlifyFormComponentInterface, } from 'ngx-techlify-core';
5
+ import { MAT_DIALOG_DATA, MatDialogContent, MatDialogTitle } from '@angular/material/dialog';
6
+ import { MaterialModule } from '../../material.module';
7
+ import { debounceTime, distinctUntilChanged } from 'rxjs';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "ngx-techlify-core";
10
+ import * as i2 from "@angular/forms";
11
+ import * as i3 from "../stock-issue-product.service";
12
+ import * as i4 from "@angular/material/dialog";
13
+ import * as i5 from "@angular/common";
14
+ import * as i6 from "@angular/material/button";
15
+ import * as i7 from "@angular/material/form-field";
16
+ import * as i8 from "@angular/material/input";
17
+ export class StockIssueProductFormComponent extends TechlifyFormComponentInterface {
18
+ fb;
19
+ service;
20
+ data;
21
+ batchSelector;
22
+ batchesApiUrl = '';
23
+ isBatchPatched = false;
24
+ constructor(formValidatorService, fb, service, dialogRef, data) {
25
+ super(formValidatorService);
26
+ this.fb = fb;
27
+ this.service = service;
28
+ this.data = data;
29
+ this.dialogRef = dialogRef;
30
+ this.errorMessages = {
31
+ product_id: { required: 'Product is required.' },
32
+ quantity: { required: 'Quantity is required.', min: 'Quantity must be greater than 0.' },
33
+ };
34
+ this.form = this.fb.group({
35
+ id: [''],
36
+ stock_issue_id: ['', Validators.required],
37
+ product_id: ['', Validators.required],
38
+ quantity: [1, [Validators.required, Validators.min(0.01)]],
39
+ location_id: [''],
40
+ batch_id: [''],
41
+ particulars: [''],
42
+ });
43
+ }
44
+ ngOnInit() {
45
+ this.form.patchValue({ stock_issue_id: this.data.stockIssueId });
46
+ this.form.get('location_id')?.valueChanges.pipe(debounceTime(50), distinctUntilChanged()).subscribe((val) => {
47
+ this.resetBatchSelector(val);
48
+ });
49
+ const product = this.data.stockIssueProduct;
50
+ if (product) {
51
+ this.isUpdate = true;
52
+ this.form.patchValue(product, { emitEvent: false });
53
+ this.resetBatchSelector(product.location_id, false);
54
+ }
55
+ }
56
+ onBatchItemsChange() {
57
+ if (this.data.stockIssueProduct && !this.isBatchPatched && this.batchSelector) {
58
+ this.form.get('batch_id')?.setValue(this.data.stockIssueProduct.batch_id);
59
+ this.batchSelector.selectedValue = this.data.stockIssueProduct.batch;
60
+ this.isBatchPatched = true;
61
+ }
62
+ }
63
+ resetBatchSelector(locationId, reset = true) {
64
+ if (reset) {
65
+ this.form.get('batch_id')?.setValue(null, { emitEvent: false });
66
+ }
67
+ this.batchesApiUrl = locationId ? `api/stock-receipt-batches?location_ids=${locationId}` : '';
68
+ Promise.resolve().then(() => {
69
+ if (this.batchSelector) {
70
+ if (reset) {
71
+ this.batchSelector.selectedValue = null;
72
+ }
73
+ this.batchSelector.apiUrl = this.batchesApiUrl;
74
+ this.batchSelector.reloadData();
75
+ }
76
+ });
77
+ }
78
+ cancel() {
79
+ this.dialogRef.close();
80
+ }
81
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StockIssueProductFormComponent, deps: [{ token: i1.FormValidatorService }, { token: i2.FormBuilder }, { token: i3.StockIssueProductService }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
82
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: StockIssueProductFormComponent, isStandalone: true, selector: "app-stock-issue-product-form", viewQueries: [{ propertyName: "batchSelector", first: true, predicate: ["batchSelector"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<h3 mat-dialog-title class='text-center'>Stock Issue Product Form</h3>\n\n<mat-dialog-content>\n <form [formGroup]=\"form\" (submit)=\"submit(form.getRawValue())\" class=\"d-flex flex-column gap-3 mt-2\">\n\n <mat-form-field class=\"w-100\">\n <mat-label>Product</mat-label>\n <app-searchable-selector formControlName=\"product_id\" apiUrl=\"api/products\" titleField=\"name\"\n [selectedValue]=\"data.stockIssueProduct?.product\" [cache]=\"true\"></app-searchable-selector>\n <mat-error *ngIf=\"isFieldValid('product_id')\">{{ getErrorMessage('product_id') }}</mat-error>\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>Quantity</mat-label>\n <input matInput type=\"number\" formControlName=\"quantity\" min=\"0.01\" step=\"any\">\n <mat-error *ngIf=\"isFieldValid('quantity')\">{{ getErrorMessage('quantity') }}</mat-error>\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>Location</mat-label>\n <app-searchable-selector formControlName=\"location_id\" apiUrl=\"api/inventory-locations\"\n [selectedValue]=\"data.stockIssueProduct?.location\" titleField=\"title\"></app-searchable-selector>\n </mat-form-field>\n\n <ng-container *ngIf=\"form.value?.location_id && batchesApiUrl\">\n <mat-form-field class=\"w-100\" techlifyFeatureEnabled=\"product-batch-numbers\">\n <mat-label>Batch</mat-label>\n <app-searchable-selector #batchSelector formControlName=\"batch_id\"\n [apiUrl]=\"batchesApiUrl\" [enableSearch]=\"false\"\n (itemsChange)=\"onBatchItemsChange()\">\n </app-searchable-selector>\n </mat-form-field>\n </ng-container>\n\n <mat-form-field class=\"w-100\">\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 gap-2\">\n <button mat-flat-button type=\"button\" [disabled]=\"isWorking\" (click)=\"cancel()\">Cancel</button>\n <button mat-raised-button color=\"primary\" type=\"submit\" [disabled]=\"isWorking\">Save</button>\n </div>\n\n </form>\n</mat-dialog-content>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.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: "ngmodule", type: MaterialModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i8.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: "ngmodule", type: SearchableSelectorModule }, { 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"] }, { kind: "ngmodule", type: TechlifyFeatureModule }, { kind: "directive", type: i1.TechlifyFeatureEnabledDirective, selector: "[techlifyFeatureEnabled]", inputs: ["techlifyFeatureEnabled"] }], preserveWhitespaces: true });
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StockIssueProductFormComponent, decorators: [{
85
+ type: Component,
86
+ args: [{ selector: 'app-stock-issue-product-form', standalone: true, imports: [
87
+ CommonModule,
88
+ ReactiveFormsModule,
89
+ MaterialModule,
90
+ SearchableSelectorModule,
91
+ TechlifyFeatureModule,
92
+ MatDialogTitle,
93
+ MatDialogContent,
94
+ ], template: "<h3 mat-dialog-title class='text-center'>Stock Issue Product Form</h3>\n\n<mat-dialog-content>\n <form [formGroup]=\"form\" (submit)=\"submit(form.getRawValue())\" class=\"d-flex flex-column gap-3 mt-2\">\n\n <mat-form-field class=\"w-100\">\n <mat-label>Product</mat-label>\n <app-searchable-selector formControlName=\"product_id\" apiUrl=\"api/products\" titleField=\"name\"\n [selectedValue]=\"data.stockIssueProduct?.product\" [cache]=\"true\"></app-searchable-selector>\n <mat-error *ngIf=\"isFieldValid('product_id')\">{{ getErrorMessage('product_id') }}</mat-error>\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>Quantity</mat-label>\n <input matInput type=\"number\" formControlName=\"quantity\" min=\"0.01\" step=\"any\">\n <mat-error *ngIf=\"isFieldValid('quantity')\">{{ getErrorMessage('quantity') }}</mat-error>\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>Location</mat-label>\n <app-searchable-selector formControlName=\"location_id\" apiUrl=\"api/inventory-locations\"\n [selectedValue]=\"data.stockIssueProduct?.location\" titleField=\"title\"></app-searchable-selector>\n </mat-form-field>\n\n <ng-container *ngIf=\"form.value?.location_id && batchesApiUrl\">\n <mat-form-field class=\"w-100\" techlifyFeatureEnabled=\"product-batch-numbers\">\n <mat-label>Batch</mat-label>\n <app-searchable-selector #batchSelector formControlName=\"batch_id\"\n [apiUrl]=\"batchesApiUrl\" [enableSearch]=\"false\"\n (itemsChange)=\"onBatchItemsChange()\">\n </app-searchable-selector>\n </mat-form-field>\n </ng-container>\n\n <mat-form-field class=\"w-100\">\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 gap-2\">\n <button mat-flat-button type=\"button\" [disabled]=\"isWorking\" (click)=\"cancel()\">Cancel</button>\n <button mat-raised-button color=\"primary\" type=\"submit\" [disabled]=\"isWorking\">Save</button>\n </div>\n\n </form>\n</mat-dialog-content>\n" }]
95
+ }], ctorParameters: () => [{ type: i1.FormValidatorService }, { type: i2.FormBuilder }, { type: i3.StockIssueProductService }, { type: i4.MatDialogRef }, { type: undefined, decorators: [{
96
+ type: Inject,
97
+ args: [MAT_DIALOG_DATA]
98
+ }] }], propDecorators: { batchSelector: [{
99
+ type: ViewChild,
100
+ args: ['batchSelector']
101
+ }] } });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staXNzdWUtcHJvZHVjdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL3N0b2NrLWlzc3VhbmNlcy9zdG9jay1pc3N1ZS1wcm9kdWN0LWZvcm0vc3RvY2staXNzdWUtcHJvZHVjdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL3N0b2NrLWlzc3VhbmNlcy9zdG9jay1pc3N1ZS1wcm9kdWN0LWZvcm0vc3RvY2staXNzdWUtcHJvZHVjdC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFlLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlFLE9BQU8sRUFHSCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLDhCQUE4QixHQUNqQyxNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQWdCLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBZ0IxRCxNQUFNLE9BQU8sOEJBQStCLFNBQVEsOEJBQThCO0lBUWxFO0lBQ1c7SUFFYTtJQVZSLGFBQWEsQ0FBK0I7SUFFeEUsYUFBYSxH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dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBGb3JtVmFsaWRhdG9yU2VydmljZSxcbiAgICBTZWFyY2hhYmxlU2VsZWN0b3JDb21wb25lbnQsXG4gICAgU2VhcmNoYWJsZVNlbGVjdG9yTW9kdWxlLFxuICAgIFRlY2hsaWZ5RmVhdHVyZU1vZHVsZSxcbiAgICBUZWNobGlmeUZvcm1Db21wb25lbnRJbnRlcmZhY2UsXG59IGZyb20gJ25neC10ZWNobGlmeS1jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nUmVmLCBNYXREaWFsb2dUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uLy4uL21hdGVyaWFsLm1vZHVsZSc7XG5pbXBvcnQgeyBTdG9ja0lzc3VlUHJvZHVjdFNlcnZpY2UgfSBmcm9tICcuLi9zdG9jay1pc3N1ZS1wcm9kdWN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1zdG9jay1pc3N1ZS1wcm9kdWN0LWZvcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zdG9jay1pc3N1ZS1wcm9kdWN0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgICAgICBTZWFyY2hhYmxlU2VsZWN0b3JNb2R1bGUsXG4gICAgICAgIFRlY2hsaWZ5RmVhdHVyZU1vZHVsZSxcbiAgICAgICAgTWF0RGlhbG9nVGl0bGUsXG4gICAgICAgIE1hdERpYWxvZ0NvbnRlbnQsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RvY2tJc3N1ZVByb2R1Y3RGb3JtQ29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlGb3JtQ29tcG9uZW50SW50ZXJmYWNlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCdiYXRjaFNlbGVjdG9yJykgYmF0Y2hTZWxlY3Rvcj86IFNlYXJjaGFibGVTZWxlY3RvckNvbXBvbmVudDtcblxuICAgIGJhdGNoZXNBcGlVcmwgPSAnJztcbiAgICBpc0JhdGNoUGF0Y2hlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGZvcm1WYWxpZGF0b3JTZXJ2aWNlOiBGb3JtVmFsaWRhdG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBzZXJ2aWNlOiBTdG9ja0lzc3VlUHJvZHVjdFNlcnZpY2UsXG4gICAgICAgIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFN0b2NrSXNzdWVQcm9kdWN0Rm9ybUNvbXBvbmVudD4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxuICAgICkge1xuICAgICAgICBzdXBlcihmb3JtVmFsaWRhdG9yU2VydmljZSk7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gZGlhbG9nUmVmO1xuXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IHtcbiAgICAgICAgICAgIHByb2R1Y3RfaWQ6IHsgcmVxdWlyZWQ6ICdQcm9kdWN0IGlzIHJlcXVpcmVkLicgfSxcbiAgICAgICAgICAgIHF1YW50aXR5OiB7IHJlcXVpcmVkOiAnUXVhbnRpdHkgaXMgcmVxdWlyZWQuJywgbWluOiAnUXVhbnRpdHkgbXVzdCBiZSBncmVhdGVyIHRoYW4gMC4nIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICBpZDogWycnXSxcbiAgICAgICAgICAgIHN0b2NrX2lzc3VlX2lkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgcHJvZHVjdF9pZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIHF1YW50aXR5OiBbMSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKDAuMDEpXV0sXG4gICAgICAgICAgICBsb2NhdGlvbl9pZDogWycnXSxcbiAgICAgICAgICAgIGJhdGNoX2lkOiBbJyddLFxuICAgICAgICAgICAgcGFydGljdWxhcnM6IFsnJ10sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHN0b2NrX2lzc3VlX2lkOiB0aGlzLmRhdGEuc3RvY2tJc3N1ZUlkIH0pO1xuXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2xvY2F0aW9uX2lkJyk/LnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICkuc3Vic2NyaWJlKCh2YWw6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXNldEJhdGNoU2VsZWN0b3IodmFsKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgcHJvZHVjdCA9IHRoaXMuZGF0YS5zdG9ja0lzc3VlUHJvZHVjdDtcbiAgICAgICAgaWYgKHByb2R1Y3QpIHtcbiAgICAgICAgICAgIHRoaXMuaXNVcGRhdGUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUocHJvZHVjdCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgdGhpcy5yZXNldEJhdGNoU2VsZWN0b3IocHJvZHVjdC5sb2NhdGlvbl9pZCwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CYXRjaEl0ZW1zQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kYXRhLnN0b2NrSXNzdWVQcm9kdWN0ICYmICF0aGlzLmlzQmF0Y2hQYXRjaGVkICYmIHRoaXMuYmF0Y2hTZWxlY3Rvcikge1xuICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnYmF0Y2hfaWQnKT8uc2V0VmFsdWUodGhpcy5kYXRhLnN0b2NrSXNzdWVQcm9kdWN0LmJhdGNoX2lkKTtcbiAgICAgICAgICAgIHRoaXMuYmF0Y2hTZWxlY3Rvci5zZWxlY3RlZFZhbHVlID0gdGhpcy5kYXRhLnN0b2NrSXNzdWVQcm9kdWN0LmJhdGNoO1xuICAgICAgICAgICAgdGhpcy5pc0JhdGNoUGF0Y2hlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0QmF0Y2hTZWxlY3Rvcihsb2NhdGlvbklkOiBudW1iZXIsIHJlc2V0ID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAocmVzZXQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ2JhdGNoX2lkJyk/LnNldFZhbHVlKG51bGwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJhdGNoZXNBcGlVcmwgPSBsb2NhdGlvbklkID8gYGFwaS9zdG9jay1yZWNlaXB0LWJhdGNoZXM/bG9jYXRpb25faWRzPSR7bG9jYXRpb25JZH1gIDogJyc7XG5cbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5iYXRjaFNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmF0Y2hTZWxlY3Rvci5zZWxlY3RlZFZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5iYXRjaFNlbGVjdG9yLmFwaVVybCA9IHRoaXMuYmF0Y2hlc0FwaVVybDtcbiAgICAgICAgICAgICAgICB0aGlzLmJhdGNoU2VsZWN0b3IucmVsb2FkRGF0YSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxufVxuIiwiPGgzIG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9J3RleHQtY2VudGVyJz5TdG9jayBJc3N1ZSBQcm9kdWN0IEZvcm08L2gzPlxuXG48bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChzdWJtaXQpPVwic3VibWl0KGZvcm0uZ2V0UmF3VmFsdWUoKSlcIiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMyBtdC0yXCI+XG5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+UHJvZHVjdDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGFwcC1zZWFyY2hhYmxlLXNlbGVjdG9yIGZvcm1Db250cm9sTmFtZT1cInByb2R1Y3RfaWRcIiBhcGlVcmw9XCJhcGkvcHJvZHVjdHNcIiB0aXRsZUZpZWxkPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwiZGF0YS5zdG9ja0lzc3VlUHJvZHVjdD8ucHJvZHVjdFwiIFtjYWNoZV09XCJ0cnVlXCI+PC9hcHAtc2VhcmNoYWJsZS1zZWxlY3Rvcj5cbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ3Byb2R1Y3RfaWQnKVwiPnt7IGdldEVycm9yTWVzc2FnZSgncHJvZHVjdF9pZCcpIH19PC9tYXQtZXJyb3I+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+UXVhbnRpdHk8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgZm9ybUNvbnRyb2xOYW1lPVwicXVhbnRpdHlcIiBtaW49XCIwLjAxXCIgc3RlcD1cImFueVwiPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgncXVhbnRpdHknKVwiPnt7IGdldEVycm9yTWVzc2FnZSgncXVhbnRpdHknKSB9fTwvbWF0LWVycm9yPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPkxvY2F0aW9uPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8YXBwLXNlYXJjaGFibGUtc2VsZWN0b3IgZm9ybUNvbnRyb2xOYW1lPVwibG9jYXRpb25faWRcIiBhcGlVcmw9XCJhcGkvaW52ZW50b3J5LWxvY2F0aW9uc1wiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwiZGF0YS5zdG9ja0lzc3VlUHJvZHVjdD8ubG9jYXRpb25cIiB0aXRsZUZpZWxkPVwidGl0bGVcIj48L2FwcC1zZWFyY2hhYmxlLXNlbGVjdG9yPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtLnZhbHVlPy5sb2NhdGlvbl9pZCAmJiBiYXRjaGVzQXBpVXJsXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiIHRlY2hsaWZ5RmVhdHVyZUVuYWJsZWQ9XCJwcm9kdWN0LWJhdGNoLW51bWJlcnNcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkJhdGNoPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGFwcC1zZWFyY2hhYmxlLXNlbGVjdG9yICNiYXRjaFNlbGVjdG9yIGZvcm1Db250cm9sTmFtZT1cImJhdGNoX2lkXCJcbiAgICAgICAgICAgICAgICAgICAgW2FwaVVybF09XCJiYXRjaGVzQXBpVXJsXCIgW2VuYWJsZVNlYXJjaF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIChpdGVtc0NoYW5nZSk9XCJvbkJhdGNoSXRlbXNDaGFuZ2UoKVwiPlxuICAgICAgICAgICAgICAgIDwvYXBwLXNlYXJjaGFibGUtc2VsZWN0b3I+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD5QYXJ0aWN1bGFyczwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInBhcnRpY3VsYXJzXCIgcm93cz1cIjNcIj48L3RleHRhcmVhPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBnYXAtMlwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCJpc1dvcmtpbmdcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCJpc1dvcmtpbmdcIj5TYXZlPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9mb3JtPlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TechlifyServiceBaseClass } from 'ngx-techlify-core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "ngx-techlify-core";
5
+ export class StockIssueProductService extends TechlifyServiceBaseClass {
6
+ constructor(httpService) {
7
+ super(httpService, 'stock-issue-products');
8
+ }
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StockIssueProductService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
10
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StockIssueProductService, providedIn: 'root' });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StockIssueProductService, decorators: [{
13
+ type: Injectable,
14
+ args: [{ providedIn: 'root' }]
15
+ }], ctorParameters: () => [{ type: i1.HttpService }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staXNzdWUtcHJvZHVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vc3RvY2staXNzdWFuY2VzL3N0b2NrLWlzc3VlLXByb2R1Y3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBZSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFHMUUsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHdCQUF3QjtJQUNwRSxZQUFZLFdBQXdCO1FBQ2xDLEtBQUssQ0FBQyxXQUFXLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUM3QyxDQUFDO3dHQUhVLHdCQUF3Qjs0R0FBeEIsd0JBQXdCLGNBRFgsTUFBTTs7NEZBQ25CLHdCQUF3QjtrQkFEcEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSwgVGVjaGxpZnlTZXJ2aWNlQmFzZUNsYXNzIH0gZnJvbSAnbmd4LXRlY2hsaWZ5LWNvcmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFN0b2NrSXNzdWVQcm9kdWN0U2VydmljZSBleHRlbmRzIFRlY2hsaWZ5U2VydmljZUJhc2VDbGFzcyB7XG4gIGNvbnN0cnVjdG9yKGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSkge1xuICAgIHN1cGVyKGh0dHBTZXJ2aWNlLCAnc3RvY2staXNzdWUtcHJvZHVjdHMnKTtcbiAgfVxufVxuIl19