techlify-inventory-common 18.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +24 -0
  2. package/esm2022/lib/inventory-common/category/category-form/category-form.component.mjs +77 -0
  3. package/esm2022/lib/inventory-common/category/category-form-button/category-form-button.component.mjs +32 -0
  4. package/esm2022/lib/inventory-common/category/category-list-page/category-list-page.component.mjs +68 -0
  5. package/esm2022/lib/inventory-common/category/category-routing.module.mjs +24 -0
  6. package/esm2022/lib/inventory-common/category/category.module.mjs +63 -0
  7. package/esm2022/lib/inventory-common/category/category.service.mjs +18 -0
  8. package/esm2022/lib/inventory-common/inventory-common-routing.module.mjs +53 -0
  9. package/esm2022/lib/inventory-common/inventory-common.module.mjs +39 -0
  10. package/esm2022/lib/inventory-common/inventory-dashboard-page/inventory-dashboard-page.component.mjs +42 -0
  11. package/esm2022/lib/inventory-common/material.module.mjs +172 -0
  12. package/esm2022/lib/inventory-common/measure/measure-delete/measure-delete-button/measure-delete-button.component.mjs +44 -0
  13. package/esm2022/lib/inventory-common/measure/measure-delete/measure-delete.module.mjs +19 -0
  14. package/esm2022/lib/inventory-common/measure/measure-form/measure-form/measure-form.component.mjs +80 -0
  15. package/esm2022/lib/inventory-common/measure/measure-form/measure-form-button/measure-form-button.component.mjs +30 -0
  16. package/esm2022/lib/inventory-common/measure/measure-form/measure-form.module.mjs +21 -0
  17. package/esm2022/lib/inventory-common/measure/measure-routing.module.mjs +24 -0
  18. package/esm2022/lib/inventory-common/measure/measure.module.mjs +47 -0
  19. package/esm2022/lib/inventory-common/measure/measure.service.mjs +18 -0
  20. package/esm2022/lib/inventory-common/measure/measures-list/measures-list.component.mjs +71 -0
  21. package/esm2022/lib/inventory-common/product/low-stock-products-widget/low-stock-products-widget.component.mjs +45 -0
  22. package/esm2022/lib/inventory-common/product/low-stock-products-widget/low-stock-products-widget.module.mjs +36 -0
  23. package/esm2022/lib/inventory-common/product/product-basic-info/product-basic-info.component.mjs +54 -0
  24. package/esm2022/lib/inventory-common/product/product-delete-button/product-delete-button.component.mjs +54 -0
  25. package/esm2022/lib/inventory-common/product/product-form/product-form.component.mjs +180 -0
  26. package/esm2022/lib/inventory-common/product/product-form-button/product-form-button.component.mjs +40 -0
  27. package/esm2022/lib/inventory-common/product/product-form.service.mjs +17 -0
  28. package/esm2022/lib/inventory-common/product/product-import-page/product-import-page.component.mjs +66 -0
  29. package/esm2022/lib/inventory-common/product/product-list/product-list.component.mjs +189 -0
  30. package/esm2022/lib/inventory-common/product/product-measure-form/product-measure-form.component.mjs +101 -0
  31. package/esm2022/lib/inventory-common/product/product-measures-list/product-measures-list.component.mjs +151 -0
  32. package/esm2022/lib/inventory-common/product/product-nav-bar/product-nav-bar.component.mjs +12 -0
  33. package/esm2022/lib/inventory-common/product/product-routing.module.mjs +57 -0
  34. package/esm2022/lib/inventory-common/product/product-summary-chart/product-summary-chart.component.mjs +63 -0
  35. package/esm2022/lib/inventory-common/product/product-summary-chart/product-summary-chart.module.mjs +29 -0
  36. package/esm2022/lib/inventory-common/product/product-tax/product-tax-delete-button/product-tax-delete-button.component.mjs +54 -0
  37. package/esm2022/lib/inventory-common/product/product-tax/product-tax-form-button/product-tax-form-button.component.mjs +77 -0
  38. package/esm2022/lib/inventory-common/product/product-tax/product-tax-list/product-tax-list.component.mjs +35 -0
  39. package/esm2022/lib/inventory-common/product/product-tax/product-tax.module.mjs +39 -0
  40. package/esm2022/lib/inventory-common/product/product-tax/product-tax.service.mjs +18 -0
  41. package/esm2022/lib/inventory-common/product/product-view-page/product-view-page.component.mjs +68 -0
  42. package/esm2022/lib/inventory-common/product/product.module.mjs +111 -0
  43. package/esm2022/lib/inventory-common/product/product.service.mjs +49 -0
  44. package/esm2022/lib/inventory-common/services/techlify-form-service.mjs +11 -0
  45. package/esm2022/lib/inventory-common/stock-issuances/stock-issuance-delete-button/stock-issuance-delete-button.component.mjs +47 -0
  46. package/esm2022/lib/inventory-common/stock-issuances/stock-issuance-delete-button/stock-issuance-delete-button.module.mjs +19 -0
  47. package/esm2022/lib/inventory-common/stock-issuances/stock-issuance.service.mjs +18 -0
  48. package/esm2022/lib/inventory-common/stock-issuances/stock-issuances-list/stock-issuances-list.component.mjs +126 -0
  49. package/esm2022/lib/inventory-common/stock-issuances/stock-issuances-list/stock-issuances-list.module.mjs +48 -0
  50. package/esm2022/lib/inventory-common/stock-issuances/stock-issuances-routing.module.mjs +24 -0
  51. package/esm2022/lib/inventory-common/stock-issuances/stock-issuances.module.mjs +67 -0
  52. package/esm2022/lib/inventory-common/stock-issuances/stock-issue-form/stock-issue-form/stock-issue-form.component.mjs +120 -0
  53. package/esm2022/lib/inventory-common/stock-issuances/stock-issue-form/stock-issue-form-button/stock-issue-form-button.component.mjs +44 -0
  54. package/esm2022/lib/inventory-common/stock-issuances/stock-issue-form/stock-issue-form.module.mjs +53 -0
  55. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-delete-button/stock-receipt-delete-button.component.mjs +47 -0
  56. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form/stock-receipt-form.component.mjs +125 -0
  57. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form-button/stock-receipt-form-button.component.mjs +38 -0
  58. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form.module.mjs +53 -0
  59. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt.service.mjs +18 -0
  60. package/esm2022/lib/inventory-common/stock-receipts/stock-receipts-list-page/stock-receipts-list-page.component.mjs +119 -0
  61. package/esm2022/lib/inventory-common/stock-receipts/stock-receipts-routing.module.mjs +24 -0
  62. package/esm2022/lib/inventory-common/stock-receipts/stock-receipts.module.mjs +75 -0
  63. package/esm2022/lib/inventory-common/stock-summary.service.mjs +26 -0
  64. package/esm2022/lib/inventory-common/supplier/payee-selector/payee-selector/payee-selector.component.mjs +59 -0
  65. package/esm2022/lib/inventory-common/supplier/payee-selector/payee-selector.module.mjs +35 -0
  66. package/esm2022/lib/inventory-common/supplier/supplier-form/supplier-form.component.mjs +118 -0
  67. package/esm2022/lib/inventory-common/supplier/supplier-form/supplier-form.service.mjs +17 -0
  68. package/esm2022/lib/inventory-common/supplier/supplier-information/supplier-information.component.mjs +72 -0
  69. package/esm2022/lib/inventory-common/supplier/supplier-routing.module.mjs +40 -0
  70. package/esm2022/lib/inventory-common/supplier/supplier-type.service.mjs +25 -0
  71. package/esm2022/lib/inventory-common/supplier/supplier-view/supplier-view.component.mjs +66 -0
  72. package/esm2022/lib/inventory-common/supplier/supplier.component.mjs +20 -0
  73. package/esm2022/lib/inventory-common/supplier/supplier.module.mjs +63 -0
  74. package/esm2022/lib/inventory-common/supplier/supplier.service.mjs +61 -0
  75. package/esm2022/lib/inventory-common/supplier/suppliers-list/suppliers-list.component.mjs +241 -0
  76. package/esm2022/lib/inventory-common/techlify-filter/techlify-filter.component.mjs +118 -0
  77. package/esm2022/lib/inventory-common/techlify-filter/techlify-filter.module.mjs +38 -0
  78. package/esm2022/public-api.mjs +9 -0
  79. package/esm2022/techlify-inventory-common.mjs +5 -0
  80. package/fesm2022/techlify-inventory-common-category.module-Stn6e73V.mjs +257 -0
  81. package/fesm2022/techlify-inventory-common-category.module-Stn6e73V.mjs.map +1 -0
  82. package/fesm2022/techlify-inventory-common-measure.module-CirswKXn.mjs +313 -0
  83. package/fesm2022/techlify-inventory-common-measure.module-CirswKXn.mjs.map +1 -0
  84. package/fesm2022/techlify-inventory-common-product.module-qdeafFV5.mjs +1172 -0
  85. package/fesm2022/techlify-inventory-common-product.module-qdeafFV5.mjs.map +1 -0
  86. package/fesm2022/techlify-inventory-common-stock-issuances-list.module-CyFDxARk.mjs +436 -0
  87. package/fesm2022/techlify-inventory-common-stock-issuances-list.module-CyFDxARk.mjs.map +1 -0
  88. package/fesm2022/techlify-inventory-common-stock-issuances.module-Dm9i2kcf.mjs +89 -0
  89. package/fesm2022/techlify-inventory-common-stock-issuances.module-Dm9i2kcf.mjs.map +1 -0
  90. package/fesm2022/techlify-inventory-common-stock-receipt-form.module-BZDrN7la.mjs +302 -0
  91. package/fesm2022/techlify-inventory-common-stock-receipt-form.module-BZDrN7la.mjs.map +1 -0
  92. package/fesm2022/techlify-inventory-common-stock-receipts.module-CUPdWteR.mjs +253 -0
  93. package/fesm2022/techlify-inventory-common-stock-receipts.module-CUPdWteR.mjs.map +1 -0
  94. package/fesm2022/techlify-inventory-common-supplier-form.component-CHmMG7O8.mjs +178 -0
  95. package/fesm2022/techlify-inventory-common-supplier-form.component-CHmMG7O8.mjs.map +1 -0
  96. package/fesm2022/techlify-inventory-common-supplier.module-gzHesNtQ.mjs +665 -0
  97. package/fesm2022/techlify-inventory-common-supplier.module-gzHesNtQ.mjs.map +1 -0
  98. package/fesm2022/techlify-inventory-common-techlify-form-service-CiVfwYTS.mjs +14 -0
  99. package/fesm2022/techlify-inventory-common-techlify-form-service-CiVfwYTS.mjs.map +1 -0
  100. package/fesm2022/techlify-inventory-common-techlify-inventory-common-Czyc0jLI.mjs +495 -0
  101. package/fesm2022/techlify-inventory-common-techlify-inventory-common-Czyc0jLI.mjs.map +1 -0
  102. package/fesm2022/techlify-inventory-common.mjs +2 -0
  103. package/fesm2022/techlify-inventory-common.mjs.map +1 -0
  104. package/index.d.ts +5 -0
  105. package/lib/inventory-common/category/category-form/category-form.component.d.ts +19 -0
  106. package/lib/inventory-common/category/category-form-button/category-form-button.component.d.ts +13 -0
  107. package/lib/inventory-common/category/category-list-page/category-list-page.component.d.ts +20 -0
  108. package/lib/inventory-common/category/category-routing.module.d.ts +7 -0
  109. package/lib/inventory-common/category/category.module.d.ts +19 -0
  110. package/lib/inventory-common/category/category.service.d.ts +7 -0
  111. package/lib/inventory-common/inventory-common-routing.module.d.ts +7 -0
  112. package/lib/inventory-common/inventory-common.module.d.ts +13 -0
  113. package/lib/inventory-common/inventory-dashboard-page/inventory-dashboard-page.component.d.ts +14 -0
  114. package/lib/inventory-common/material.module.d.ts +40 -0
  115. package/lib/inventory-common/measure/measure-delete/measure-delete-button/measure-delete-button.component.d.ts +19 -0
  116. package/lib/inventory-common/measure/measure-delete/measure-delete.module.d.ts +9 -0
  117. package/lib/inventory-common/measure/measure-form/measure-form/measure-form.component.d.ts +19 -0
  118. package/lib/inventory-common/measure/measure-form/measure-form-button/measure-form-button.component.d.ts +13 -0
  119. package/lib/inventory-common/measure/measure-form/measure-form.module.d.ts +11 -0
  120. package/lib/inventory-common/measure/measure-routing.module.d.ts +7 -0
  121. package/lib/inventory-common/measure/measure.module.d.ts +15 -0
  122. package/lib/inventory-common/measure/measure.service.d.ts +7 -0
  123. package/lib/inventory-common/measure/measures-list/measures-list.component.d.ts +17 -0
  124. package/lib/inventory-common/product/low-stock-products-widget/low-stock-products-widget.component.d.ts +13 -0
  125. package/lib/inventory-common/product/low-stock-products-widget/low-stock-products-widget.module.d.ts +12 -0
  126. package/lib/inventory-common/product/product-basic-info/product-basic-info.component.d.ts +19 -0
  127. package/lib/inventory-common/product/product-delete-button/product-delete-button.component.d.ts +26 -0
  128. package/lib/inventory-common/product/product-form/product-form.component.d.ts +44 -0
  129. package/lib/inventory-common/product/product-form-button/product-form-button.component.d.ts +20 -0
  130. package/lib/inventory-common/product/product-form.service.d.ts +7 -0
  131. package/lib/inventory-common/product/product-import-page/product-import-page.component.d.ts +10 -0
  132. package/lib/inventory-common/product/product-list/product-list.component.d.ts +44 -0
  133. package/lib/inventory-common/product/product-measure-form/product-measure-form.component.d.ts +33 -0
  134. package/lib/inventory-common/product/product-measures-list/product-measures-list.component.d.ts +43 -0
  135. package/lib/inventory-common/product/product-nav-bar/product-nav-bar.component.d.ts +5 -0
  136. package/lib/inventory-common/product/product-routing.module.d.ts +7 -0
  137. package/lib/inventory-common/product/product-summary-chart/product-summary-chart.component.d.ts +15 -0
  138. package/lib/inventory-common/product/product-summary-chart/product-summary-chart.module.d.ts +10 -0
  139. package/lib/inventory-common/product/product-tax/product-tax-delete-button/product-tax-delete-button.component.d.ts +26 -0
  140. package/lib/inventory-common/product/product-tax/product-tax-form-button/product-tax-form-button.component.d.ts +21 -0
  141. package/lib/inventory-common/product/product-tax/product-tax-list/product-tax-list.component.d.ts +13 -0
  142. package/lib/inventory-common/product/product-tax/product-tax.module.d.ts +12 -0
  143. package/lib/inventory-common/product/product-tax/product-tax.service.d.ts +7 -0
  144. package/lib/inventory-common/product/product-view-page/product-view-page.component.d.ts +33 -0
  145. package/lib/inventory-common/product/product.module.d.ts +28 -0
  146. package/lib/inventory-common/product/product.service.d.ts +19 -0
  147. package/lib/inventory-common/services/techlify-form-service.d.ts +5 -0
  148. package/lib/inventory-common/stock-issuances/stock-issuance-delete-button/stock-issuance-delete-button.component.d.ts +18 -0
  149. package/lib/inventory-common/stock-issuances/stock-issuance-delete-button/stock-issuance-delete-button.module.d.ts +9 -0
  150. package/lib/inventory-common/stock-issuances/stock-issuance.service.d.ts +7 -0
  151. package/lib/inventory-common/stock-issuances/stock-issuances-list/stock-issuances-list.component.d.ts +24 -0
  152. package/lib/inventory-common/stock-issuances/stock-issuances-list/stock-issuances-list.module.d.ts +15 -0
  153. package/lib/inventory-common/stock-issuances/stock-issuances-routing.module.d.ts +7 -0
  154. package/lib/inventory-common/stock-issuances/stock-issuances.module.d.ts +19 -0
  155. package/lib/inventory-common/stock-issuances/stock-issue-form/stock-issue-form/stock-issue-form.component.d.ts +24 -0
  156. package/lib/inventory-common/stock-issuances/stock-issue-form/stock-issue-form-button/stock-issue-form-button.component.d.ts +18 -0
  157. package/lib/inventory-common/stock-issuances/stock-issue-form/stock-issue-form.module.d.ts +17 -0
  158. package/lib/inventory-common/stock-receipts/stock-receipt-delete-button/stock-receipt-delete-button.component.d.ts +18 -0
  159. package/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form/stock-receipt-form.component.d.ts +22 -0
  160. package/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form-button/stock-receipt-form-button.component.d.ts +16 -0
  161. package/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form.module.d.ts +17 -0
  162. package/lib/inventory-common/stock-receipts/stock-receipt.service.d.ts +7 -0
  163. package/lib/inventory-common/stock-receipts/stock-receipts-list-page/stock-receipts-list-page.component.d.ts +21 -0
  164. package/lib/inventory-common/stock-receipts/stock-receipts-routing.module.d.ts +7 -0
  165. package/lib/inventory-common/stock-receipts/stock-receipts.module.d.ts +20 -0
  166. package/lib/inventory-common/stock-summary.service.d.ts +14 -0
  167. package/lib/inventory-common/supplier/payee-selector/payee-selector/payee-selector.component.d.ts +20 -0
  168. package/lib/inventory-common/supplier/payee-selector/payee-selector.module.d.ts +11 -0
  169. package/lib/inventory-common/supplier/supplier-form/supplier-form.component.d.ts +29 -0
  170. package/lib/inventory-common/supplier/supplier-form/supplier-form.service.d.ts +7 -0
  171. package/lib/inventory-common/supplier/supplier-information/supplier-information.component.d.ts +18 -0
  172. package/lib/inventory-common/supplier/supplier-routing.module.d.ts +7 -0
  173. package/lib/inventory-common/supplier/supplier-type.service.d.ts +13 -0
  174. package/lib/inventory-common/supplier/supplier-view/supplier-view.component.d.ts +20 -0
  175. package/lib/inventory-common/supplier/supplier.component.d.ts +10 -0
  176. package/lib/inventory-common/supplier/supplier.module.d.ts +18 -0
  177. package/lib/inventory-common/supplier/supplier.service.d.ts +39 -0
  178. package/lib/inventory-common/supplier/suppliers-list/suppliers-list.component.d.ts +51 -0
  179. package/lib/inventory-common/techlify-filter/techlify-filter.component.d.ts +31 -0
  180. package/lib/inventory-common/techlify-filter/techlify-filter.module.d.ts +11 -0
  181. package/package.json +25 -0
  182. package/public-api.d.ts +5 -0
@@ -0,0 +1,126 @@
1
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
2
+ import { TechlifyListingControllerInterface, Timeline, } from "ngx-techlify-core";
3
+ import { debounceTime } from "rxjs";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "ngx-techlify-core";
7
+ import * as i3 from "../stock-issuance.service";
8
+ import * as i4 from "@angular/common";
9
+ import * as i5 from "@angular/material/sort";
10
+ import * as i6 from "@angular/material/table";
11
+ import * as i7 from "@angular/material/card";
12
+ import * as i8 from "@angular/material/progress-bar";
13
+ import * as i9 from "../../techlify-filter/techlify-filter.component";
14
+ import * as i10 from "../stock-issue-form/stock-issue-form-button/stock-issue-form-button.component";
15
+ import * as i11 from "ngx-infinite-scroll";
16
+ import * as i12 from "../stock-issuance-delete-button/stock-issuance-delete-button.component";
17
+ import * as i13 from "@angular/router";
18
+ export class StockIssuancesListComponent extends TechlifyListingControllerInterface {
19
+ formBuilder;
20
+ requestHelperService;
21
+ stockIssuanceService;
22
+ product;
23
+ issuableType;
24
+ issuableId;
25
+ label = "Stock Issuances";
26
+ listUpdated = new EventEmitter();
27
+ filterConfig = {
28
+ duration: {
29
+ label: "Date",
30
+ },
31
+ search: {
32
+ placeholder: "Search Product Name, SKU, Description, etc",
33
+ },
34
+ };
35
+ displayedColumns = [
36
+ "no",
37
+ "product",
38
+ "date",
39
+ "quantity",
40
+ "related",
41
+ "particulars",
42
+ "creator",
43
+ "actions",
44
+ ];
45
+ constructor(formBuilder, requestHelperService, stockIssuanceService) {
46
+ super();
47
+ this.formBuilder = formBuilder;
48
+ this.requestHelperService = requestHelperService;
49
+ this.stockIssuanceService = stockIssuanceService;
50
+ this.lastPage = 0;
51
+ this.filterForm = this.formBuilder.group({
52
+ duration: [Timeline.THIS_MONTH],
53
+ date_from: [""],
54
+ date_to: [""],
55
+ measure_ids: [""],
56
+ product_ids: [""],
57
+ search: [""],
58
+ sort_by: ["date|desc"],
59
+ });
60
+ }
61
+ ngOnInit() {
62
+ this.filterForm.valueChanges
63
+ .pipe(debounceTime(500))
64
+ .subscribe({
65
+ next: () => this.reload(),
66
+ });
67
+ if (this.product) {
68
+ this.filterForm.get("product_ids")?.setValue(this.product?.id);
69
+ const index = this.displayedColumns.indexOf("product");
70
+ if (index !== -1) {
71
+ this.displayedColumns.splice(index, 1);
72
+ }
73
+ }
74
+ }
75
+ loadData() {
76
+ const params = {
77
+ page: this.page,
78
+ perPage: this.perPage,
79
+ with: "creator,product.measure,issuable.fixedAsset",
80
+ ...this.requestHelperService.convertToFormData(this.filterForm.value),
81
+ };
82
+ if (this.issuableId && this.issuableType) {
83
+ params.issuable_ids = this.issuableId;
84
+ params.issuable_types = this.issuableType;
85
+ }
86
+ this.isWorking = true;
87
+ this.stockIssuanceService.index(params).subscribe({
88
+ next: (response) => {
89
+ this.models = this.models.concat(response?.data);
90
+ this.lastPage = response?.last_page;
91
+ this.isWorking = false;
92
+ },
93
+ error: () => {
94
+ this.isWorking = false;
95
+ },
96
+ });
97
+ }
98
+ onSortChange(sort) {
99
+ let { active, direction } = sort;
100
+ if (!active) {
101
+ active = "date";
102
+ }
103
+ if (!direction) {
104
+ direction = "desc";
105
+ active = "date";
106
+ }
107
+ this.filterForm.get("sort_by").setValue(active + "|" + direction);
108
+ }
109
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesListComponent, deps: [{ token: i1.FormBuilder }, { token: i2.RequestHelperService }, { token: i3.StockIssuanceService }], target: i0.ɵɵFactoryTarget.Component });
110
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StockIssuancesListComponent, selector: "app-stock-issuances-list", inputs: { product: "product", issuableType: "issuableType", issuableId: "issuableId", label: "label" }, outputs: { listUpdated: "listUpdated" }, usesInheritance: true, ngImport: i0, template: "<mat-card *ngIf=\"!product\" class=\"mb-2\">\n <mat-card-content\n class=\"d-flex justify-content-between align-items-center gap-3\"\n >\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"mb-0\">{{ label }}</h3>\n\n <app-stock-issue-form-button\n icon=\"add\"\n [issuableType]=\"issuableType\"\n [issuableId]=\"issuableId\"\n (saved)=\"reload()\"\n ></app-stock-issue-form-button>\n </div>\n\n <app-techlify-filter\n [filterForm]=\"filterForm\"\n [filterConfig]=\"filterConfig\"\n (filterUpdated)=\"reload()\"\n ></app-techlify-filter>\n </mat-card-content>\n</mat-card>\n\n<mat-card>\n <mat-card-content *ngIf=\"product\" class=\"mb-0\">\n <div class=\"d-flex justify-content-start align-items-center gap-2 mb-2\">\n <span class=\"material-symbols-outlined\"> ungroup </span>\n <h3 class=\"mb-0\">Stock Issuances</h3>\n\n <app-stock-issue-form-button\n [product]=\"product\"\n icon=\"add\"\n (saved)=\"reload(); listUpdated.emit()\"\n ></app-stock-issue-form-button>\n </div>\n </mat-card-content>\n <mat-card-content class=\"p-0\">\n <table\n mat-table\n [dataSource]=\"models\"\n class=\"w-100\"\n aria-describedby=\"Stock Issuances\"\n infiniteScroll\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\"\n matSort\n (matSortChange)=\"onSortChange($event)\"\n >\n <!-- # Column -->\n <ng-container matColumnDef=\"no\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = index\">{{ i + 1 }}</td>\n </ng-container>\n\n <!-- Product Column -->\n <ng-container matColumnDef=\"product\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Product</th>\n <td mat-cell *matCellDef=\"let element\">\n <a\n [routerLink]=\"[\n '/inventory/products/',\n element?.product?.id,\n 'view'\n ]\"\n >\n {{ element?.product?.name }}\n </a>\n </td>\n </ng-container>\n\n <!-- Date Column -->\n <ng-container matColumnDef=\"date\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Date</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.date | date }}</td>\n </ng-container>\n\n <!-- Related Column -->\n <ng-container matColumnDef=\"related\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Related</th>\n <td mat-cell *matCellDef=\"let element\">\n <a\n class=\"text-dark\"\n *ngIf=\"element?.issuable\"\n [routerLink]=\"['/maintenances', element?.issuable_id, 'view']\"\n >\n Maintenance for {{ element?.issuable?.fixed_asset?.name }}\n </a>\n </td>\n </ng-container>\n\n <!-- Quantity Column -->\n <ng-container matColumnDef=\"quantity\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Quantity</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.quantity }} {{ element?.product?.measure?.title }}\n </td>\n </ng-container>\n\n <!-- Purchase Price Column -->\n <ng-container matColumnDef=\"purchase_price\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n Purchase Price\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.purchase_price | currency }}\n </td>\n </ng-container>\n\n <!-- Total Value Column -->\n <ng-container matColumnDef=\"amount\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Total Value</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.amount | currency }}\n </td>\n </ng-container>\n\n <!-- Particulars Column -->\n <ng-container matColumnDef=\"particulars\">\n <th mat-header-cell *matHeaderCellDef>Particulars</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.particulars }}</td>\n </ng-container>\n\n <!-- Supplier Column -->\n <ng-container matColumnDef=\"supplier\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Supplier</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.supplier?.company_name }}\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef>Creator</th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-1\">{{ element?.creator?.name }}</p>\n <small class=\"text-secondary\">{{ element?.created_at | date }}</small>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef>Actions</th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex gap-1\">\n <app-stock-issue-form-button\n [product]=\"element.product\"\n [stockIssuance]=\"element\"\n (saved)=\"reload(); listUpdated.emit()\"\n ></app-stock-issue-form-button>\n <app-stock-issuance-delete-button\n [stockIssuance]=\"element\"\n (deleted)=\"reload(); listUpdated.emit()\"\n ></app-stock-issuance-delete-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i5.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i6.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i6.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i6.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i6.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i6.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i6.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i6.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i6.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i6.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i6.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i8.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i9.TechlifyFilterComponent, selector: "app-techlify-filter", inputs: ["filterForm", "filterConfig"], outputs: ["filterUpdated"] }, { kind: "component", type: i10.StockIssueFormButtonComponent, selector: "app-stock-issue-form-button", inputs: ["product", "stockIssuance", "icon", "issuableType", "issuableId"], outputs: ["saved"] }, { kind: "directive", type: i11.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i12.StockIssuanceDeleteButtonComponent, selector: "app-stock-issuance-delete-button", inputs: ["stockIssuance"], outputs: ["deleted"] }, { kind: "directive", type: i13.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i4.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i4.DatePipe, name: "date" }], preserveWhitespaces: true });
111
+ }
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesListComponent, decorators: [{
113
+ type: Component,
114
+ args: [{ selector: "app-stock-issuances-list", template: "<mat-card *ngIf=\"!product\" class=\"mb-2\">\n <mat-card-content\n class=\"d-flex justify-content-between align-items-center gap-3\"\n >\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"mb-0\">{{ label }}</h3>\n\n <app-stock-issue-form-button\n icon=\"add\"\n [issuableType]=\"issuableType\"\n [issuableId]=\"issuableId\"\n (saved)=\"reload()\"\n ></app-stock-issue-form-button>\n </div>\n\n <app-techlify-filter\n [filterForm]=\"filterForm\"\n [filterConfig]=\"filterConfig\"\n (filterUpdated)=\"reload()\"\n ></app-techlify-filter>\n </mat-card-content>\n</mat-card>\n\n<mat-card>\n <mat-card-content *ngIf=\"product\" class=\"mb-0\">\n <div class=\"d-flex justify-content-start align-items-center gap-2 mb-2\">\n <span class=\"material-symbols-outlined\"> ungroup </span>\n <h3 class=\"mb-0\">Stock Issuances</h3>\n\n <app-stock-issue-form-button\n [product]=\"product\"\n icon=\"add\"\n (saved)=\"reload(); listUpdated.emit()\"\n ></app-stock-issue-form-button>\n </div>\n </mat-card-content>\n <mat-card-content class=\"p-0\">\n <table\n mat-table\n [dataSource]=\"models\"\n class=\"w-100\"\n aria-describedby=\"Stock Issuances\"\n infiniteScroll\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\"\n matSort\n (matSortChange)=\"onSortChange($event)\"\n >\n <!-- # Column -->\n <ng-container matColumnDef=\"no\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = index\">{{ i + 1 }}</td>\n </ng-container>\n\n <!-- Product Column -->\n <ng-container matColumnDef=\"product\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Product</th>\n <td mat-cell *matCellDef=\"let element\">\n <a\n [routerLink]=\"[\n '/inventory/products/',\n element?.product?.id,\n 'view'\n ]\"\n >\n {{ element?.product?.name }}\n </a>\n </td>\n </ng-container>\n\n <!-- Date Column -->\n <ng-container matColumnDef=\"date\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Date</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.date | date }}</td>\n </ng-container>\n\n <!-- Related Column -->\n <ng-container matColumnDef=\"related\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Related</th>\n <td mat-cell *matCellDef=\"let element\">\n <a\n class=\"text-dark\"\n *ngIf=\"element?.issuable\"\n [routerLink]=\"['/maintenances', element?.issuable_id, 'view']\"\n >\n Maintenance for {{ element?.issuable?.fixed_asset?.name }}\n </a>\n </td>\n </ng-container>\n\n <!-- Quantity Column -->\n <ng-container matColumnDef=\"quantity\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Quantity</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.quantity }} {{ element?.product?.measure?.title }}\n </td>\n </ng-container>\n\n <!-- Purchase Price Column -->\n <ng-container matColumnDef=\"purchase_price\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n Purchase Price\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.purchase_price | currency }}\n </td>\n </ng-container>\n\n <!-- Total Value Column -->\n <ng-container matColumnDef=\"amount\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Total Value</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.amount | currency }}\n </td>\n </ng-container>\n\n <!-- Particulars Column -->\n <ng-container matColumnDef=\"particulars\">\n <th mat-header-cell *matHeaderCellDef>Particulars</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.particulars }}</td>\n </ng-container>\n\n <!-- Supplier Column -->\n <ng-container matColumnDef=\"supplier\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Supplier</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.supplier?.company_name }}\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef>Creator</th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-1\">{{ element?.creator?.name }}</p>\n <small class=\"text-secondary\">{{ element?.created_at | date }}</small>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef>Actions</th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex gap-1\">\n <app-stock-issue-form-button\n [product]=\"element.product\"\n [stockIssuance]=\"element\"\n (saved)=\"reload(); listUpdated.emit()\"\n ></app-stock-issue-form-button>\n <app-stock-issuance-delete-button\n [stockIssuance]=\"element\"\n (deleted)=\"reload(); listUpdated.emit()\"\n ></app-stock-issuance-delete-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n" }]
115
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.RequestHelperService }, { type: i3.StockIssuanceService }], propDecorators: { product: [{
116
+ type: Input
117
+ }], issuableType: [{
118
+ type: Input
119
+ }], issuableId: [{
120
+ type: Input
121
+ }], label: [{
122
+ type: Input
123
+ }], listUpdated: [{
124
+ type: Output
125
+ }] } });
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staXNzdWFuY2VzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vc3RvY2staXNzdWFuY2VzL3N0b2NrLWlzc3VhbmNlcy1saXN0L3N0b2NrLWlzc3VhbmNlcy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL3N0b2NrLWlzc3VhbmNlcy9zdG9jay1pc3N1YW5jZXMtbGlzdC9zdG9jay1pc3N1YW5jZXMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFFTCxrQ0FBa0MsRUFDbEMsUUFBUSxHQUNULE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBU3BDLE1BQU0sT0FBTywyQkFDWCxTQUFRLGtDQUFrQztJQTRCaEM7SUFDQTtJQUNBO0lBM0JELE9BQU8sQ0FBTTtJQUNiLFlBQVksQ0FBVTtJQUN0QixVQUFVLENBQVU7SUFDcEIsS0FBSyxHQUFHLGlCQUFpQixDQUFDO0lBQ3pCLFdBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVuRSxZQUFZLEdBQVE7UUFDbEIsUUFBUSxFQUFFO1lBQ1IsS0FBSyxFQUFFLE1BQU07U0FDZDtRQUNELE1BQU0sRUFBRTtZQUNOLFdBQVcsRUFBRSw0Q0FBNEM7U0FDMUQ7S0FDRixDQUFDO0lBQ0YsZ0JBQWdCLEdBQWE7UUFDM0IsSUFBSTtRQUNKLFNBQVM7UUFDVCxNQUFN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LENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBVTtRQUNyQixJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQ25CLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDbEIsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7d0dBL0ZVLDJCQUEyQjs0RkFBM0IsMkJBQTJCLHdPQ2hCeEMsd3ZMQXFLQTs7NEZEckphLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEI7c0pBUTNCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIFJlcXVlc3RIZWxwZXJTZXJ2aWNlLFxuICBUZWNobGlmeUxpc3RpbmdDb250cm9sbGVySW50ZXJmYWNlLFxuICBUaW1lbGluZSxcbn0gZnJvbSBcIm5neC10ZWNobGlmeS1jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgU29ydCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zb3J0XCI7XG5pbXBvcnQgeyBTdG9ja0lzc3VhbmNlU2VydmljZSB9IGZyb20gXCIuLi9zdG9jay1pc3N1YW5jZS5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhcHAtc3RvY2staXNzdWFuY2VzLWxpc3RcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zdG9jay1pc3N1YW5jZXMtbGlzdC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vc3RvY2staXNzdWFuY2VzLWxpc3QuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIFN0b2NrSXNzdWFuY2VzTGlzdENvbXBvbmVudFxuICBleHRlbmRzIFRlY2hsaWZ5TGlzdGluZ0NvbnRyb2xsZXJJbnRlcmZhY2VcbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgQElucHV0KCkgcHJvZHVjdDogYW55O1xuICBASW5wdXQoKSBpc3N1YWJsZVR5cGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzc3VhYmxlSWQhOiBudW1iZXI7XG4gIEBJbnB1dCgpIGxhYmVsID0gXCJTdG9jayBJc3N1YW5jZXNcIjtcbiAgQE91dHB1dCgpIGxpc3RVcGRhdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGZpbHRlckNvbmZpZzogYW55ID0ge1xuICAgIGR1cmF0aW9uOiB7XG4gICAgICBsYWJlbDogXCJEYXRlXCIsXG4gICAgfSxcbiAgICBzZWFyY2g6IHtcbiAgICAgIHBsYWNlaG9sZGVyOiBcIlNlYXJjaCBQcm9kdWN0IE5hbWUsIFNLVSwgRGVzY3JpcHRpb24sIGV0Y1wiLFxuICAgIH0sXG4gIH07XG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW1xuICAgIFwibm9cIixcbiAgICBcInByb2R1Y3RcIixcbiAgICBcImRhdGVcIixcbiAgICBcInF1YW50aXR5XCIsXG4gICAgXCJyZWxhdGVkXCIsXG4gICAgXCJwYXJ0aWN1bGFyc1wiLFxuICAgIFwiY3JlYXRvclwiLFxuICAgIFwiYWN0aW9uc1wiLFxuICBdO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlcXVlc3RIZWxwZXJTZXJ2aWNlOiBSZXF1ZXN0SGVscGVyU2VydmljZSxcbiAgICBwcml2YXRlIHN0b2NrSXNzdWFuY2VTZXJ2aWNlOiBTdG9ja0lzc3VhbmNlU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGFzdFBhZ2UgPSAwO1xuICAgIHRoaXMuZmlsdGVyRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgZHVyYXRpb246IFtUaW1lbGluZS5USElTX01PTlRIXSxcbiAgICAgIGRhdGVfZnJvbTogW1wiXCJdLFxuICAgICAgZGF0ZV90bzogW1wiXCJdLFxuICAgICAgbWVhc3VyZV9pZHM6IFtcIlwiXSxcbiAgICAgIHByb2R1Y3RfaWRzOiBbXCJcIl0sXG4gICAgICBzZWFyY2g6IFtcIlwiXSxcbiAgICAgIHNvcnRfYnk6IFtcImRhdGV8ZGVzY1wiXSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICh0aGlzLmZpbHRlckZvcm0gYXMgRm9ybUdyb3VwKS52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MDApKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHRoaXMucmVsb2FkKCksXG4gICAgICB9KTtcbiAgICBpZiAodGhpcy5wcm9kdWN0KSB7XG4gICAgICB0aGlzLmZpbHRlckZvcm0uZ2V0KFwicHJvZHVjdF9pZHNcIik/LnNldFZhbHVlKHRoaXMucHJvZHVjdD8uaWQpO1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmRpc3BsYXllZENvbHVtbnMuaW5kZXhPZihcInByb2R1Y3RcIik7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxvYWREYXRhKCk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xuICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgcGVyUGFnZTogdGhpcy5wZXJQYWdlLFxuICAgICAgd2l0aDogXCJjcmVhdG9yLHByb2R1Y3QubWVhc3VyZSxpc3N1YWJsZS5maXhlZEFzc2V0XCIsXG4gICAgICAuLi50aGlzLnJlcXVlc3RIZWxwZXJTZXJ2aWNlLmNvbnZlcnRUb0Zvcm1EYXRhKHRoaXMuZmlsdGVyRm9ybS52YWx1ZSksXG4gICAgfTtcbiAgICBpZiAodGhpcy5pc3N1YWJsZUlkICYmIHRoaXMuaXNzdWFibGVUeXBlKSB7XG4gICAgICBwYXJhbXMuaXNzdWFibGVfaWRzID0gdGhpcy5pc3N1YWJsZUlkO1xuICAgICAgcGFyYW1zLmlzc3VhYmxlX3R5cGVzID0gdGhpcy5pc3N1YWJsZVR5cGU7XG4gICAgfVxuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLnN0b2NrSXNzdWFuY2VTZXJ2aWNlLmluZGV4KHBhcmFtcykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubW9kZWxzID0gdGhpcy5tb2RlbHMuY29uY2F0KHJlc3BvbnNlPy5kYXRhKTtcbiAgICAgICAgdGhpcy5sYXN0UGFnZSA9IHJlc3BvbnNlPy5sYXN0X3BhZ2U7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBvblNvcnRDaGFuZ2Uoc29ydDogU29ydCkge1xuICAgIGxldCB7IGFjdGl2ZSwgZGlyZWN0aW9uIH0gPSBzb3J0O1xuICAgIGlmICghYWN0aXZlKSB7XG4gICAgICBhY3RpdmUgPSBcImRhdGVcIjtcbiAgICB9XG4gICAgaWYgKCFkaXJlY3Rpb24pIHtcbiAgICAgIGRpcmVjdGlvbiA9IFwiZGVzY1wiO1xuICAgICAgYWN0aXZlID0gXCJkYXRlXCI7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyRm9ybS5nZXQoXCJzb3J0X2J5XCIpLnNldFZhbHVlKGFjdGl2ZSArIFwifFwiICsgZGlyZWN0aW9uKTtcbiAgfVxufVxuIiwiPG1hdC1jYXJkICpuZ0lmPVwiIXByb2R1Y3RcIiBjbGFzcz1cIm1iLTJcIj5cbiAgPG1hdC1jYXJkLWNvbnRlbnRcbiAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICA8aDMgY2xhc3M9XCJtYi0wXCI+e3sgbGFiZWwgfX08L2gzPlxuXG4gICAgICA8YXBwLXN0b2NrLWlzc3VlLWZvcm0tYnV0dG9uXG4gICAgICAgIGljb249XCJhZGRcIlxuICAgICAgICBbaXNzdWFibGVUeXBlXT1cImlzc3VhYmxlVHlwZVwiXG4gICAgICAgIFtpc3N1YWJsZUlkXT1cImlzc3VhYmxlSWRcIlxuICAgICAgICAoc2F2ZWQpPVwicmVsb2FkKClcIlxuICAgICAgPjwvYXBwLXN0b2NrLWlzc3VlLWZvcm0tYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGFwcC10ZWNobGlmeS1maWx0ZXJcbiAgICAgIFtmaWx0ZXJGb3JtXT1cImZpbHRlckZvcm1cIlxuICAgICAgW2ZpbHRlckNvbmZpZ109XCJmaWx0ZXJDb25maWdcIlxuICAgICAgKGZpbHRlclVwZGF0ZWQpPVwicmVsb2FkKClcIlxuICAgID48L2FwcC10ZWNobGlmeS1maWx0ZXI+XG4gIDwvbWF0LWNhcmQtY29udGVudD5cbjwvbWF0LWNhcmQ+XG5cbjxtYXQtY2FyZD5cbiAgPG1hdC1jYXJkLWNvbnRlbnQgKm5nSWY9XCJwcm9kdWN0XCIgY2xhc3M9XCJtYi0wXCI+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIG1iLTJcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPiB1bmdyb3VwIDwvc3Bhbj5cbiAgICAgIDxoMyBjbGFzcz1cIm1iLTBcIj5TdG9jayBJc3N1YW5jZXM8L2gzPlxuXG4gICAgICA8YXBwLXN0b2NrLWlzc3VlLWZvcm0tYnV0dG9uXG4gICAgICAgIFtwcm9kdWN0XT1cInByb2R1Y3RcIlxuICAgICAgICBpY29uPVwiYWRkXCJcbiAgICAgICAgKHNhdmVkKT1cInJlbG9hZCgpOyBsaXN0VXBkYXRlZC5lbWl0KClcIlxuICAgICAgPjwvYXBwLXN0b2NrLWlzc3VlLWZvcm0tYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwicC0wXCI+XG4gICAgPHRhYmxlXG4gICAgICBtYXQtdGFibGVcbiAgICAgIFtkYXRhU291cmNlXT1cIm1vZGVsc1wiXG4gICAgICBjbGFzcz1cInctMTAwXCJcbiAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJTdG9jayBJc3N1YW5jZXNcIlxuICAgICAgaW5maW5pdGVTY3JvbGxcbiAgICAgIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjJcIlxuICAgICAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIlxuICAgICAgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIlxuICAgICAgbWF0U29ydFxuICAgICAgKG1hdFNvcnRDaGFuZ2UpPVwib25Tb3J0Q2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICAgIDwhLS0gIyBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm5vXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IzwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4XCI+e3sgaSArIDEgfX08L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gUHJvZHVjdCBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInByb2R1Y3RcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+UHJvZHVjdDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIltcbiAgICAgICAgICAgICAgJy9pbnZlbnRvcnkvcHJvZHVjdHMvJyxcbiAgICAgICAgICAgICAgZWxlbWVudD8ucHJvZHVjdD8uaWQsXG4gICAgICAgICAgICAgICd2aWV3J1xuICAgICAgICAgICAgXVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgZWxlbWVudD8ucHJvZHVjdD8ubmFtZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIERhdGUgQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJkYXRlXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPkRhdGU8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnQ/LmRhdGUgfCBkYXRlIH19PC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIFJlbGF0ZWQgQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJyZWxhdGVkXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlJlbGF0ZWQ8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtZGFya1wiXG4gICAgICAgICAgICAqbmdJZj1cImVsZW1lbnQ/Lmlzc3VhYmxlXCJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL21haW50ZW5hbmNlcycsIGVsZW1lbnQ/Lmlzc3VhYmxlX2lkLCAndmlldyddXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBNYWludGVuYW5jZSBmb3Ige3sgZWxlbWVudD8uaXNzdWFibGU/LmZpeGVkX2Fzc2V0Py5uYW1lIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gUXVhbnRpdHkgQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJxdWFudGl0eVwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5RdWFudGl0eTwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAge3sgZWxlbWVudD8ucXVhbnRpdHkgfX0ge3sgZWxlbWVudD8ucHJvZHVjdD8ubWVhc3VyZT8udGl0bGUgfX1cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIFB1cmNoYXNlIFByaWNlIENvbHVtbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicHVyY2hhc2VfcHJpY2VcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+XG4gICAgICAgICAgUHVyY2hhc2UgUHJpY2VcbiAgICAgICAgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICB7eyBlbGVtZW50Py5wdXJjaGFzZV9wcmljZSB8IGN1cnJlbmN5IH19XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBUb3RhbCBWYWx1ZSBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFtb3VudFwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5Ub3RhbCBWYWx1ZTwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAge3sgZWxlbWVudD8uYW1vdW50IHwgY3VycmVuY3kgfX1cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIFBhcnRpY3VsYXJzIENvbHVtbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicGFydGljdWxhcnNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5QYXJ0aWN1bGFyczwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3sgZWxlbWVudD8ucGFydGljdWxhcnMgfX08L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gU3VwcGxpZXIgQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdXBwbGllclwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5TdXBwbGllcjwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAge3sgZWxlbWVudD8uc3VwcGxpZXI/LmNvbXBhbnlfbmFtZSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gQ3JlYXRvciBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNyZWF0b3JcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5DcmVhdG9yPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICA8cCBjbGFzcz1cIm1iLTFcIj57eyBlbGVtZW50Py5jcmVhdG9yPy5uYW1lIH19PC9wPlxuICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+e3sgZWxlbWVudD8uY3JlYXRlZF9hdCB8IGRhdGUgfX08L3NtYWxsPlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gQWN0aW9ucyBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5BY3Rpb25zPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xXCI+XG4gICAgICAgICAgICA8YXBwLXN0b2NrLWlzc3VlLWZvcm0tYnV0dG9uXG4gICAgICAgICAgICAgIFtwcm9kdWN0XT1cImVsZW1lbnQucHJvZHVjdFwiXG4gICAgICAgICAgICAgIFtzdG9ja0lzc3VhbmNlXT1cImVsZW1lbnRcIlxuICAgICAgICAgICAgICAoc2F2ZWQpPVwicmVsb2FkKCk7IGxpc3RVcGRhdGVkLmVtaXQoKVwiXG4gICAgICAgICAgICA+PC9hcHAtc3RvY2staXNzdWUtZm9ybS1idXR0b24+XG4gICAgICAgICAgICA8YXBwLXN0b2NrLWlzc3VhbmNlLWRlbGV0ZS1idXR0b25cbiAgICAgICAgICAgICAgW3N0b2NrSXNzdWFuY2VdPVwiZWxlbWVudFwiXG4gICAgICAgICAgICAgIChkZWxldGVkKT1cInJlbG9hZCgpOyBsaXN0VXBkYXRlZC5lbWl0KClcIlxuICAgICAgICAgICAgPjwvYXBwLXN0b2NrLWlzc3VhbmNlLWRlbGV0ZS1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICA8L3RhYmxlPlxuXG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgKm5nSWY9XCJpc1dvcmtpbmdcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cbiJdfQ==
@@ -0,0 +1,48 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { StockIssuancesListComponent } from "./stock-issuances-list.component";
4
+ import { StockIssueFormModule } from "../stock-issue-form/stock-issue-form.module";
5
+ import { InfiniteScrollModule } from "ngx-infinite-scroll";
6
+ import { StockIssuanceDeleteButtonModule } from "../stock-issuance-delete-button/stock-issuance-delete-button.module";
7
+ import { MaterialModule } 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 * as i0 from "@angular/core";
12
+ export class StockIssuancesListModule {
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesListModule, declarations: [StockIssuancesListComponent], imports: [CommonModule,
15
+ MaterialModule,
16
+ TechlifyFilterModule,
17
+ StockIssueFormModule,
18
+ InfiniteScrollModule,
19
+ StockIssuanceDeleteButtonModule,
20
+ MatProgressBarModule,
21
+ RouterModule], exports: [StockIssuancesListComponent] });
22
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesListModule, imports: [CommonModule,
23
+ MaterialModule,
24
+ TechlifyFilterModule,
25
+ StockIssueFormModule,
26
+ InfiniteScrollModule,
27
+ StockIssuanceDeleteButtonModule,
28
+ MatProgressBarModule,
29
+ RouterModule] });
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesListModule, decorators: [{
32
+ type: NgModule,
33
+ args: [{
34
+ declarations: [StockIssuancesListComponent],
35
+ imports: [
36
+ CommonModule,
37
+ MaterialModule,
38
+ TechlifyFilterModule,
39
+ StockIssueFormModule,
40
+ InfiniteScrollModule,
41
+ StockIssuanceDeleteButtonModule,
42
+ MatProgressBarModule,
43
+ RouterModule,
44
+ ],
45
+ exports: [StockIssuancesListComponent],
46
+ }]
47
+ }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staXNzdWFuY2VzLWxpc3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vc3RvY2staXNzdWFuY2VzL3N0b2NrLWlzc3VhbmNlcy1saXN0L3N0b2NrLWlzc3VhbmNlcy1saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOztBQWdCcEYsTUFBTSxPQUFPLHdCQUF3Qjt3R0FBeEIsd0JBQXdCO3lHQUF4Qix3QkFBd0IsaUJBYnBCLDJCQUEyQixhQUV4QyxZQUFZO1lBQ1osY0FBYztZQUNkLG9CQUFvQjtZQUNwQixvQkFBb0I7WUFDcEIsb0JBQW9CO1lBQ3BCLCtCQUErQjtZQUMvQixvQkFBb0I7WUFDcEIsWUFBWSxhQUVKLDJCQUEyQjt5R0FFMUIsd0JBQXdCLFlBWGpDLFlBQVk7WUFDWixjQUFjO1lBQ2Qsb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQUNwQixvQkFBb0I7WUFDcEIsK0JBQStCO1lBQy9CLG9CQUFvQjtZQUNwQixZQUFZOzs0RkFJSCx3QkFBd0I7a0JBZHBDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQzNDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsK0JBQStCO3dCQUMvQixvQkFBb0I7d0JBQ3BCLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7aUJBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgU3RvY2tJc3N1YW5jZXNMaXN0Q29tcG9uZW50IH0gZnJvbSBcIi4vc3RvY2staXNzdWFuY2VzLWxpc3QuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTdG9ja0lzc3VlRm9ybU1vZHVsZSB9IGZyb20gXCIuLi9zdG9jay1pc3N1ZS1mb3JtL3N0b2NrLWlzc3VlLWZvcm0ubW9kdWxlXCI7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbE1vZHVsZSB9IGZyb20gXCJuZ3gtaW5maW5pdGUtc2Nyb2xsXCI7XG5pbXBvcnQgeyBTdG9ja0lzc3VhbmNlRGVsZXRlQnV0dG9uTW9kdWxlIH0gZnJvbSBcIi4uL3N0b2NrLWlzc3VhbmNlLWRlbGV0ZS1idXR0b24vc3RvY2staXNzdWFuY2UtZGVsZXRlLWJ1dHRvbi5tb2R1bGVcIjtcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSBcIm5neC10ZWNobGlmeS1jb3JlXCI7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXJcIjtcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IFRlY2hsaWZ5RmlsdGVyTW9kdWxlIH0gZnJvbSAnLi4vLi4vdGVjaGxpZnktZmlsdGVyL3RlY2hsaWZ5LWZpbHRlci5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTdG9ja0lzc3VhbmNlc0xpc3RDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIFRlY2hsaWZ5RmlsdGVyTW9kdWxlLFxuICAgIFN0b2NrSXNzdWVGb3JtTW9kdWxlLFxuICAgIEluZmluaXRlU2Nyb2xsTW9kdWxlLFxuICAgIFN0b2NrSXNzdWFuY2VEZWxldGVCdXR0b25Nb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbU3RvY2tJc3N1YW5jZXNMaXN0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU3RvY2tJc3N1YW5jZXNMaXN0TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { RouterModule } from "@angular/router";
3
+ import { StockIssuancesListComponent } from "./stock-issuances-list/stock-issuances-list.component";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ const routes = [
7
+ {
8
+ path: "",
9
+ component: StockIssuancesListComponent,
10
+ },
11
+ ];
12
+ export class StockIssuancesRoutingModule {
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
15
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesRoutingModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ imports: [RouterModule.forChild(routes)],
21
+ exports: [RouterModule],
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staXNzdWFuY2VzLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vc3RvY2staXNzdWFuY2VzL3N0b2NrLWlzc3VhbmNlcy1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7O0FBRXBHLE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsMkJBQTJCO0tBQ3ZDO0NBQ0YsQ0FBQztBQU1GLE1BQU0sT0FBTywyQkFBMkI7d0dBQTNCLDJCQUEyQjt5R0FBM0IsMkJBQTJCLHdDQUY1QixZQUFZO3lHQUVYLDJCQUEyQixZQUg1QixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzs0RkFFWCwyQkFBMkI7a0JBSnZDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgU3RvY2tJc3N1YW5jZXNMaXN0Q29tcG9uZW50IH0gZnJvbSBcIi4vc3RvY2staXNzdWFuY2VzLWxpc3Qvc3RvY2staXNzdWFuY2VzLWxpc3QuY29tcG9uZW50XCI7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogXCJcIixcbiAgICBjb21wb25lbnQ6IFN0b2NrSXNzdWFuY2VzTGlzdENvbXBvbmVudCxcbiAgfSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTdG9ja0lzc3VhbmNlc1JvdXRpbmdNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,67 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { StockIssuancesRoutingModule } from "./stock-issuances-routing.module";
4
+ import { MatCardModule } from "@angular/material/card";
5
+ import { InfiniteScrollModule } from "ngx-infinite-scroll";
6
+ import { MatProgressBarModule } from "@angular/material/progress-bar";
7
+ import { MatSortModule } from "@angular/material/sort";
8
+ import { MatTableModule } from "@angular/material/table";
9
+ import { StockReceiptFormModule } from "../stock-receipts/stock-receipt-form/stock-receipt-form.module";
10
+ import { StockIssueFormModule } from "./stock-issue-form/stock-issue-form.module";
11
+ import { MatDialogModule } from "@angular/material/dialog";
12
+ import { MatButtonModule } from "@angular/material/button";
13
+ import { StockIssuancesListModule } from "./stock-issuances-list/stock-issuances-list.module";
14
+ import { TechlifyFilterModule } from '../techlify-filter/techlify-filter.module';
15
+ import * as i0 from "@angular/core";
16
+ export class StockIssuancesModule {
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesModule, imports: [CommonModule,
19
+ StockIssuancesRoutingModule,
20
+ MatCardModule,
21
+ TechlifyFilterModule,
22
+ InfiniteScrollModule,
23
+ MatProgressBarModule,
24
+ MatSortModule,
25
+ MatTableModule,
26
+ StockReceiptFormModule,
27
+ StockIssueFormModule,
28
+ MatDialogModule,
29
+ MatButtonModule,
30
+ StockIssuancesListModule] });
31
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesModule, imports: [CommonModule,
32
+ StockIssuancesRoutingModule,
33
+ MatCardModule,
34
+ TechlifyFilterModule,
35
+ InfiniteScrollModule,
36
+ MatProgressBarModule,
37
+ MatSortModule,
38
+ MatTableModule,
39
+ StockReceiptFormModule,
40
+ StockIssueFormModule,
41
+ MatDialogModule,
42
+ MatButtonModule,
43
+ StockIssuancesListModule] });
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesModule, decorators: [{
46
+ type: NgModule,
47
+ args: [{
48
+ declarations: [],
49
+ exports: [],
50
+ imports: [
51
+ CommonModule,
52
+ StockIssuancesRoutingModule,
53
+ MatCardModule,
54
+ TechlifyFilterModule,
55
+ InfiniteScrollModule,
56
+ MatProgressBarModule,
57
+ MatSortModule,
58
+ MatTableModule,
59
+ StockReceiptFormModule,
60
+ StockIssueFormModule,
61
+ MatDialogModule,
62
+ MatButtonModule,
63
+ StockIssuancesListModule,
64
+ ],
65
+ }]
66
+ }] });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staXNzdWFuY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL3N0b2NrLWlzc3VhbmNlcy9zdG9jay1pc3N1YW5jZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDOUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBcUJqRixNQUFNLE9BQU8sb0JBQW9CO3dHQUFwQixvQkFBb0I7eUdBQXBCLG9CQUFvQixZQWY3QixZQUFZO1lBQ1osMkJBQTJCO1lBQzNCLGFBQWE7WUFDYixvQkFBb0I7WUFDcEIsb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQUNwQixhQUFhO1lBQ2IsY0FBYztZQUNkLHNCQUFzQjtZQUN0QixvQkFBb0I7WUFDcEIsZUFBZTtZQUNmLGVBQWU7WUFDZix3QkFBd0I7eUdBR2Ysb0JBQW9CLFlBZjdCLFlBQVk7WUFDWiwyQkFBMkI7WUFDM0IsYUFBYTtZQUNiLG9CQUFvQjtZQUNwQixvQkFBb0I7WUFDcEIsb0JBQW9CO1lBQ3BCLGFBQWE7WUFDYixjQUFjO1lBQ2Qsc0JBQXNCO1lBQ3RCLG9CQUFvQjtZQUNwQixlQUFlO1lBQ2YsZUFBZTtZQUNmLHdCQUF3Qjs7NEZBR2Ysb0JBQW9CO2tCQW5CaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osMkJBQTJCO3dCQUMzQixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxzQkFBc0I7d0JBQ3RCLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLHdCQUF3QjtxQkFDekI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cbmltcG9ydCB7IFN0b2NrSXNzdWFuY2VzUm91dGluZ01vZHVsZSB9IGZyb20gXCIuL3N0b2NrLWlzc3VhbmNlcy1yb3V0aW5nLm1vZHVsZVwiO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jYXJkXCI7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbE1vZHVsZSB9IGZyb20gXCJuZ3gtaW5maW5pdGUtc2Nyb2xsXCI7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXJcIjtcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydFwiO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcbmltcG9ydCB7IFN0b2NrUmVjZWlwdEZvcm1Nb2R1bGUgfSBmcm9tIFwiLi4vc3RvY2stcmVjZWlwdHMvc3RvY2stcmVjZWlwdC1mb3JtL3N0b2NrLXJlY2VpcHQtZm9ybS5tb2R1bGVcIjtcbmltcG9ydCB7IFN0b2NrSXNzdWVGb3JtTW9kdWxlIH0gZnJvbSBcIi4vc3RvY2staXNzdWUtZm9ybS9zdG9jay1pc3N1ZS1mb3JtLm1vZHVsZVwiO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xuaW1wb3J0IHsgU3RvY2tJc3N1YW5jZXNMaXN0TW9kdWxlIH0gZnJvbSBcIi4vc3RvY2staXNzdWFuY2VzLWxpc3Qvc3RvY2staXNzdWFuY2VzLWxpc3QubW9kdWxlXCI7XG5pbXBvcnQgeyBUZWNobGlmeUZpbHRlck1vZHVsZSB9IGZyb20gJy4uL3RlY2hsaWZ5LWZpbHRlci90ZWNobGlmeS1maWx0ZXIubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgZXhwb3J0czogW10sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU3RvY2tJc3N1YW5jZXNSb3V0aW5nTW9kdWxlLFxuICAgIE1hdENhcmRNb2R1bGUsXG4gICAgVGVjaGxpZnlGaWx0ZXJNb2R1bGUsXG4gICAgSW5maW5pdGVTY3JvbGxNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgTWF0U29ydE1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBTdG9ja1JlY2VpcHRGb3JtTW9kdWxlLFxuICAgIFN0b2NrSXNzdWVGb3JtTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgU3RvY2tJc3N1YW5jZXNMaXN0TW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTdG9ja0lzc3VhbmNlc01vZHVsZSB7fVxuIl19
@@ -0,0 +1,120 @@
1
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
2
+ import { TechlifyFormComponentInterface, } from "ngx-techlify-core";
3
+ import { Validators } from "@angular/forms";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "ngx-techlify-core";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "../../stock-issuance.service";
8
+ import * as i4 from "@angular/common";
9
+ import * as i5 from "@angular/material/form-field";
10
+ import * as i6 from "@angular/material/input";
11
+ import * as i7 from "@angular/material/datepicker";
12
+ import * as i8 from "@angular/material/button";
13
+ export class StockIssueFormComponent extends TechlifyFormComponentInterface {
14
+ formBuilder;
15
+ stockIssuanceService;
16
+ alertService;
17
+ dateUtils;
18
+ product;
19
+ stockIssuance;
20
+ issuableType;
21
+ issuableId;
22
+ saved = new EventEmitter();
23
+ cancelled = new EventEmitter();
24
+ isWorking;
25
+ constructor(formValidatorService, formBuilder, stockIssuanceService, alertService, dateUtils) {
26
+ super(formValidatorService);
27
+ this.formBuilder = formBuilder;
28
+ this.stockIssuanceService = stockIssuanceService;
29
+ this.alertService = alertService;
30
+ this.dateUtils = dateUtils;
31
+ this.errorMessages = {
32
+ date: {
33
+ required: "The date field is required.",
34
+ },
35
+ quantity: {
36
+ required: "The quantity field is required.",
37
+ },
38
+ };
39
+ this.form = this.formBuilder.group({
40
+ id: [""],
41
+ product_id: [""],
42
+ date: [new Date(), Validators.required],
43
+ quantity: [1, Validators.required],
44
+ particulars: [""],
45
+ });
46
+ }
47
+ ngOnInit() {
48
+ if (this.product) {
49
+ this.form.get("product_id")?.setValue(this.product?.id);
50
+ }
51
+ if (this.stockIssuance) {
52
+ let data = { ...this.stockIssuance };
53
+ if (data.date) {
54
+ data.date = new Date(data.date);
55
+ }
56
+ this.form.patchValue(data);
57
+ }
58
+ else {
59
+ // on create for set default quantity from last record
60
+ if (this.product?.last_stock_issuance) {
61
+ const { quantity } = this.product.last_stock_issuance;
62
+ this.form.patchValue({
63
+ quantity,
64
+ });
65
+ }
66
+ }
67
+ }
68
+ save() {
69
+ if (this.form.invalid) {
70
+ this.alertService.addAlert("Please check the form for errors", "error");
71
+ return;
72
+ }
73
+ const data = {
74
+ product_id: this.product?.id,
75
+ ...this.form.value,
76
+ };
77
+ if (data.date) {
78
+ data.date = this.dateUtils.getYYYYMMDDString(data.date);
79
+ }
80
+ if (this.issuableId && this.issuableType) {
81
+ data.issuable_type = this.issuableType;
82
+ data.issuable_id = this.issuableId;
83
+ }
84
+ this.isWorking = true;
85
+ let request = this.stockIssuanceService.store(data);
86
+ if (this.stockIssuance?.id) {
87
+ request = this.stockIssuanceService.update(data);
88
+ }
89
+ request.subscribe({
90
+ next: (response) => {
91
+ this.isWorking = false;
92
+ this.saved.emit(response?.item);
93
+ this.alertService.addAlert("Stock Issuance Saved Successfully!", "success");
94
+ },
95
+ error: () => (this.isWorking = false),
96
+ });
97
+ }
98
+ onProductChange(product) {
99
+ this.product = product;
100
+ }
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\">\n {{ stockIssuance?.id ? \"Edit\" : \"Issue\" }} Stock for {{ product?.name }}\n</h3>\n<form\n [formGroup]=\"form\"\n class=\"d-flex flex-column gap-1 justify-content-start\"\n (submit)=\"save()\"\n>\n <mat-form-field *ngIf=\"!product\">\n <mat-label>Product</mat-label>\n <app-searchable-selector\n formControlName=\"product_id\"\n apiUrl=\"api/products\"\n titleField=\"name\"\n (selectedValueChange)=\"onProductChange($event)\"\n ></app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Date</mat-label>\n <input\n matInput\n [matDatepicker]=\"datePicker\"\n formControlName=\"date\"\n (focus)=\"datePicker.open()\"\n />\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\n [disabled]=\"isWorking\"\n mat-raised-button\n color=\"primary\"\n type=\"submit\"\n >\n Save\n </button>\n <button\n [disabled]=\"isWorking\"\n (click)=\"cancelled.emit()\"\n mat-flat-button\n type=\"button\"\n >\n Cancel\n </button>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.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.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: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.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: 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.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { 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
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssueFormComponent, decorators: [{
105
+ type: Component,
106
+ args: [{ selector: "app-stock-issue-form", template: "<h3 class=\"text-center\">\n {{ stockIssuance?.id ? \"Edit\" : \"Issue\" }} Stock for {{ product?.name }}\n</h3>\n<form\n [formGroup]=\"form\"\n class=\"d-flex flex-column gap-1 justify-content-start\"\n (submit)=\"save()\"\n>\n <mat-form-field *ngIf=\"!product\">\n <mat-label>Product</mat-label>\n <app-searchable-selector\n formControlName=\"product_id\"\n apiUrl=\"api/products\"\n titleField=\"name\"\n (selectedValueChange)=\"onProductChange($event)\"\n ></app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Date</mat-label>\n <input\n matInput\n [matDatepicker]=\"datePicker\"\n formControlName=\"date\"\n (focus)=\"datePicker.open()\"\n />\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\n [disabled]=\"isWorking\"\n mat-raised-button\n color=\"primary\"\n type=\"submit\"\n >\n Save\n </button>\n <button\n [disabled]=\"isWorking\"\n (click)=\"cancelled.emit()\"\n mat-flat-button\n type=\"button\"\n >\n Cancel\n </button>\n </div>\n</form>\n" }]
107
+ }], ctorParameters: () => [{ type: i1.FormValidatorService }, { type: i2.FormBuilder }, { type: i3.StockIssuanceService }, { type: i1.AlertService }, { type: i1.DateUtils }], propDecorators: { product: [{
108
+ type: Input
109
+ }], stockIssuance: [{
110
+ type: Input
111
+ }], issuableType: [{
112
+ type: Input
113
+ }], issuableId: [{
114
+ type: Input
115
+ }], saved: [{
116
+ type: Output
117
+ }], cancelled: [{
118
+ type: Output
119
+ }] } });
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staXNzdWUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9zdG9jay1pc3N1YW5jZXMvc3RvY2staXNzdWUtZm9ybS9zdG9jay1pc3N1ZS1mb3JtL3N0b2NrLWlzc3VlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vc3RvY2staXNzdWFuY2VzL3N0b2NrLWlzc3VlLWZvcm0vc3RvY2staXNzdWUtZm9ybS9zdG9jay1pc3N1ZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUlMLDhCQUE4QixHQUMvQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQVN6RCxNQUFNLE9BQU8sdUJBQ1gsU0FBUSw4QkFBOEI7SUFjNUI7SUFDQTtJQUNBO0lBQ0E7SUFkRCxPQUFPLENBQU07SUFDYixhQUFhLENBQU07SUFDbkIsWUFBWSxDQUFVO0lBQ3RCLFVBQVUsQ0FBVTtJQUNuQixLQUFLLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFDbkQsU0FBUyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBRWpFLFNBQVMsQ0FBVztJQUVwQixZQUNFLG9CQUEwQyxFQUNsQyxXQUF3QixFQUN4QixvQkFBMEMsRUFDMUMsWUFBMEIsRUFDMUIsU0FBb0I7UUFFNUIsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFMcEIs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QUNyRSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDM0IsT0FBTyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDaEIsSUFBSSxFQUFFLENBQUMsUUFBYSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUN4QixvQ0FBb0MsRUFDcEMsU0FBUyxDQUNWLENBQUM7WUFDSixDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFZO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7d0dBakdVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLGdRQ2hCcEMsa3VEQWdFQTs7NEZEaERhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxzQkFBc0I7eU1BUXZCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgQWxlcnRTZXJ2aWNlLFxuICBEYXRlVXRpbHMsXG4gIEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICBUZWNobGlmeUZvcm1Db21wb25lbnRJbnRlcmZhY2UsXG59IGZyb20gXCJuZ3gtdGVjaGxpZnktY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgU3RvY2tJc3N1YW5jZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc3RvY2staXNzdWFuY2Uuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXBwLXN0b2NrLWlzc3VlLWZvcm1cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zdG9jay1pc3N1ZS1mb3JtLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9zdG9jay1pc3N1ZS1mb3JtLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBTdG9ja0lzc3VlRm9ybUNvbXBvbmVudFxuICBleHRlbmRzIFRlY2hsaWZ5Rm9ybUNvbXBvbmVudEludGVyZmFjZVxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICBASW5wdXQoKSBwcm9kdWN0OiBhbnk7XG4gIEBJbnB1dCgpIHN0b2NrSXNzdWFuY2U6IGFueTtcbiAgQElucHV0KCkgaXNzdWFibGVUeXBlITogc3RyaW5nO1xuICBASW5wdXQoKSBpc3N1YWJsZUlkITogbnVtYmVyO1xuICBAT3V0cHV0KCkgc2F2ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxsZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgaXNXb3JraW5nITogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBmb3JtVmFsaWRhdG9yU2VydmljZTogRm9ybVZhbGlkYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBzdG9ja0lzc3VhbmNlU2VydmljZTogU3RvY2tJc3N1YW5jZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGRhdGVVdGlsczogRGF0ZVV0aWxzXG4gICkge1xuICAgIHN1cGVyKGZvcm1WYWxpZGF0b3JTZXJ2aWNlKTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSB7XG4gICAgICBkYXRlOiB7XG4gICAgICAgIHJlcXVpcmVkOiBcIlRoZSBkYXRlIGZpZWxkIGlzIHJlcXVpcmVkLlwiLFxuICAgICAgfSxcbiAgICAgIHF1YW50aXR5OiB7XG4gICAgICAgIHJlcXVpcmVkOiBcIlRoZSBxdWFudGl0eSBmaWVsZCBpcyByZXF1aXJlZC5cIixcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgaWQ6IFtcIlwiXSxcbiAgICAgIHByb2R1Y3RfaWQ6IFtcIlwiXSxcbiAgICAgIGRhdGU6IFtuZXcgRGF0ZSgpLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIHF1YW50aXR5OiBbMSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBwYXJ0aWN1bGFyczogW1wiXCJdLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMucHJvZHVjdCkge1xuICAgICAgdGhpcy5mb3JtLmdldChcInByb2R1Y3RfaWRcIik/LnNldFZhbHVlKHRoaXMucHJvZHVjdD8uaWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdG9ja0lzc3VhbmNlKSB7XG4gICAgICBsZXQgZGF0YTogYW55ID0geyAuLi50aGlzLnN0b2NrSXNzdWFuY2UgfTtcbiAgICAgIGlmIChkYXRhLmRhdGUpIHtcbiAgICAgICAgZGF0YS5kYXRlID0gbmV3IERhdGUoZGF0YS5kYXRlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBvbiBjcmVhdGUgZm9yIHNldCBkZWZhdWx0IHF1YW50aXR5IGZyb20gbGFzdCByZWNvcmRcbiAgICAgIGlmICh0aGlzLnByb2R1Y3Q/Lmxhc3Rfc3RvY2tfaXNzdWFuY2UpIHtcbiAgICAgICAgY29uc3QgeyBxdWFudGl0eSB9ID0gdGhpcy5wcm9kdWN0Lmxhc3Rfc3RvY2tfaXNzdWFuY2U7XG4gICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBxdWFudGl0eSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KFwiUGxlYXNlIGNoZWNrIHRoZSBmb3JtIGZvciBlcnJvcnNcIiwgXCJlcnJvclwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGF0YTogYW55ID0ge1xuICAgICAgcHJvZHVjdF9pZDogdGhpcy5wcm9kdWN0Py5pZCxcbiAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcbiAgICB9O1xuICAgIGlmIChkYXRhLmRhdGUpIHtcbiAgICAgIGRhdGEuZGF0ZSA9IHRoaXMuZGF0ZVV0aWxzLmdldFlZWVlNTUREU3RyaW5nKGRhdGEuZGF0ZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzc3VhYmxlSWQgJiYgdGhpcy5pc3N1YWJsZVR5cGUpIHtcbiAgICAgIGRhdGEuaXNzdWFibGVfdHlwZSA9IHRoaXMuaXNzdWFibGVUeXBlO1xuICAgICAgZGF0YS5pc3N1YWJsZV9pZCA9IHRoaXMuaXNzdWFibGVJZDtcbiAgICB9XG5cbiAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgbGV0IHJlcXVlc3Q6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuc3RvY2tJc3N1YW5jZVNlcnZpY2Uuc3RvcmUoZGF0YSk7XG4gICAgaWYgKHRoaXMuc3RvY2tJc3N1YW5jZT8uaWQpIHtcbiAgICAgIHJlcXVlc3QgPSB0aGlzLnN0b2NrSXNzdWFuY2VTZXJ2aWNlLnVwZGF0ZShkYXRhKTtcbiAgICB9XG4gICAgcmVxdWVzdC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zYXZlZC5lbWl0KHJlc3BvbnNlPy5pdGVtKTtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoXG4gICAgICAgICAgXCJTdG9jayBJc3N1YW5jZSBTYXZlZCBTdWNjZXNzZnVsbHkhXCIsXG4gICAgICAgICAgXCJzdWNjZXNzXCJcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4gKHRoaXMuaXNXb3JraW5nID0gZmFsc2UpLFxuICAgIH0pO1xuICB9XG5cbiAgb25Qcm9kdWN0Q2hhbmdlKHByb2R1Y3Q6IGFueSkge1xuICAgIHRoaXMucHJvZHVjdCA9IHByb2R1Y3Q7XG4gIH1cbn1cbiIsIjxoMyBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gIHt7IHN0b2NrSXNzdWFuY2U/LmlkID8gXCJFZGl0XCIgOiBcIklzc3VlXCIgfX0gU3RvY2sgZm9yIHt7IHByb2R1Y3Q/Lm5hbWUgfX1cbjwvaDM+XG48Zm9ybVxuICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMSBqdXN0aWZ5LWNvbnRlbnQtc3RhcnRcIlxuICAoc3VibWl0KT1cInNhdmUoKVwiXG4+XG4gIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIiFwcm9kdWN0XCI+XG4gICAgPG1hdC1sYWJlbD5Qcm9kdWN0PC9tYXQtbGFiZWw+XG4gICAgPGFwcC1zZWFyY2hhYmxlLXNlbGVjdG9yXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcm9kdWN0X2lkXCJcbiAgICAgIGFwaVVybD1cImFwaS9wcm9kdWN0c1wiXG4gICAgICB0aXRsZUZpZWxkPVwibmFtZVwiXG4gICAgICAoc2VsZWN0ZWRWYWx1ZUNoYW5nZSk9XCJvblByb2R1Y3RDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvYXBwLXNlYXJjaGFibGUtc2VsZWN0b3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+RGF0ZTwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIFttYXREYXRlcGlja2VyXT1cImRhdGVQaWNrZXJcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiXG4gICAgICAoZm9jdXMpPVwiZGF0ZVBpY2tlci5vcGVuKClcIlxuICAgIC8+XG4gICAgPG1hdC1kYXRlcGlja2VyICNkYXRlUGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgnZGF0ZScpXCI+XG4gICAgICB7eyBnZXRFcnJvck1lc3NhZ2UoXCJkYXRlXCIpIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+UXVhbnRpdHk8L21hdC1sYWJlbD5cbiAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicXVhbnRpdHlcIiB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiIC8+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgncXVhbnRpdHknKVwiPlxuICAgICAge3sgZ2V0RXJyb3JNZXNzYWdlKFwicXVhbnRpdHlcIikgfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1sYWJlbD5QYXJ0aWN1bGFyczwvbWF0LWxhYmVsPlxuICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJwYXJ0aWN1bGFyc1wiIHJvd3M9XCIzXCI+PC90ZXh0YXJlYT5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgPGJ1dHRvblxuICAgICAgW2Rpc2FibGVkXT1cImlzV29ya2luZ1wiXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgID5cbiAgICAgIFNhdmVcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBbZGlzYWJsZWRdPVwiaXNXb3JraW5nXCJcbiAgICAgIChjbGljayk9XCJjYW5jZWxsZWQuZW1pdCgpXCJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAgQ2FuY2VsXG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
@@ -0,0 +1,44 @@
1
+ import { Component, EventEmitter, Input, Output, } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/dialog";
4
+ import * as i2 from "@angular/material/tooltip";
5
+ import * as i3 from "../stock-issue-form/stock-issue-form.component";
6
+ export class StockIssueFormButtonComponent {
7
+ matDialog;
8
+ product;
9
+ stockIssuance;
10
+ icon;
11
+ issuableType;
12
+ issuableId;
13
+ saved = new EventEmitter();
14
+ matDialogRef;
15
+ constructor(matDialog) {
16
+ this.matDialog = matDialog;
17
+ }
18
+ showStockIssuanceForm(templateRef) {
19
+ this.matDialogRef = this.matDialog.open(templateRef, { width: "500px" });
20
+ }
21
+ onStockIssuanceSaved(item) {
22
+ this.matDialogRef.close();
23
+ this.saved.emit(item);
24
+ }
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssueFormButtonComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
26
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StockIssueFormButtonComponent, selector: "app-stock-issue-form-button", inputs: { product: "product", stockIssuance: "stockIssuance", icon: "icon", issuableType: "issuableType", issuableId: "issuableId" }, outputs: { saved: "saved" }, ngImport: i0, template: "<span\n class=\"material-symbols-outlined cursor-pointer\"\n [class.text-primary]=\"icon\"\n matTooltip=\"Stock Issuance\"\n (click)=\"showStockIssuanceForm(stockIssuanceFormTemplate)\"\n>\n {{ stockIssuance ? \"edit\" : icon ?? \"upload\" }}\n</span>\n\n<ng-template #stockIssuanceFormTemplate>\n <app-stock-issue-form\n mat-dialog-content\n [product]=\"product\"\n [stockIssuance]=\"stockIssuance\"\n [issuableType]=\"issuableType\"\n [issuableId]=\"issuableId\"\n (cancelled)=\"matDialogRef.close()\"\n (saved)=\"onStockIssuanceSaved($event)\"\n ></app-stock-issue-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.StockIssueFormComponent, selector: "app-stock-issue-form", inputs: ["product", "stockIssuance", "issuableType", "issuableId"], outputs: ["saved", "cancelled"] }], preserveWhitespaces: true });
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssueFormButtonComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: "app-stock-issue-form-button", template: "<span\n class=\"material-symbols-outlined cursor-pointer\"\n [class.text-primary]=\"icon\"\n matTooltip=\"Stock Issuance\"\n (click)=\"showStockIssuanceForm(stockIssuanceFormTemplate)\"\n>\n {{ stockIssuance ? \"edit\" : icon ?? \"upload\" }}\n</span>\n\n<ng-template #stockIssuanceFormTemplate>\n <app-stock-issue-form\n mat-dialog-content\n [product]=\"product\"\n [stockIssuance]=\"stockIssuance\"\n [issuableType]=\"issuableType\"\n [issuableId]=\"issuableId\"\n (cancelled)=\"matDialogRef.close()\"\n (saved)=\"onStockIssuanceSaved($event)\"\n ></app-stock-issue-form>\n</ng-template>\n" }]
31
+ }], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { product: [{
32
+ type: Input
33
+ }], stockIssuance: [{
34
+ type: Input
35
+ }], icon: [{
36
+ type: Input
37
+ }], issuableType: [{
38
+ type: Input
39
+ }], issuableId: [{
40
+ type: Input
41
+ }], saved: [{
42
+ type: Output
43
+ }] } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2staXNzdWUtZm9ybS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vc3RvY2staXNzdWFuY2VzL3N0b2NrLWlzc3VlLWZvcm0vc3RvY2staXNzdWUtZm9ybS1idXR0b24vc3RvY2staXNzdWUtZm9ybS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vc3RvY2staXNzdWFuY2VzL3N0b2NrLWlzc3VlLWZvcm0vc3RvY2staXNzdWUtZm9ybS1idXR0b24vc3RvY2staXNzdWUtZm9ybS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRdkIsTUFBTSxPQUFPLDZCQUE2QjtJQVVwQjtJQVRYLE9BQU8sQ0FBTTtJQUNiLGFBQWEsQ0FBTTtJQUNuQixJQUFJLENBQWlCO0lBQ3JCLFlBQVksQ0FBVTtJQUN0QixVQUFVLENBQVU7SUFDbkIsS0FBSyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBRTdELFlBQVksQ0FBcUI7SUFFakMsWUFBb0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztJQUFHLENBQUM7SUFFNUMscUJBQXFCLENBQUMsV0FBNkI7UUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBUztRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7d0dBbkJVLDZCQUE2Qjs0RkFBN0IsNkJBQTZCLHNPQ2QxQyw2bUJBb0JBOzs0RkROYSw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UsNkJBQTZCOzhFQUs5QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXBwLXN0b2NrLWlzc3VlLWZvcm0tYnV0dG9uXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vc3RvY2staXNzdWUtZm9ybS1idXR0b24uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3N0b2NrLWlzc3VlLWZvcm0tYnV0dG9uLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBTdG9ja0lzc3VlRm9ybUJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHByb2R1Y3Q6IGFueTtcbiAgQElucHV0KCkgc3RvY2tJc3N1YW5jZTogYW55O1xuICBASW5wdXQoKSBpY29uITogc3RyaW5nIHwgbnVsbDtcbiAgQElucHV0KCkgaXNzdWFibGVUeXBlITogc3RyaW5nO1xuICBASW5wdXQoKSBpc3N1YWJsZUlkITogbnVtYmVyO1xuICBAT3V0cHV0KCkgc2F2ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgbWF0RGlhbG9nUmVmITogTWF0RGlhbG9nUmVmPGFueT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXREaWFsb2c6IE1hdERpYWxvZykge31cblxuICBzaG93U3RvY2tJc3N1YW5jZUZvcm0odGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLm1hdERpYWxvZ1JlZiA9IHRoaXMubWF0RGlhbG9nLm9wZW4odGVtcGxhdGVSZWYsIHsgd2lkdGg6IFwiNTAwcHhcIiB9KTtcbiAgfVxuXG4gIG9uU3RvY2tJc3N1YW5jZVNhdmVkKGl0ZW06IGFueSkge1xuICAgIHRoaXMubWF0RGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgdGhpcy5zYXZlZC5lbWl0KGl0ZW0pO1xuICB9XG59XG4iLCI8c3BhblxuICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgY3Vyc29yLXBvaW50ZXJcIlxuICBbY2xhc3MudGV4dC1wcmltYXJ5XT1cImljb25cIlxuICBtYXRUb29sdGlwPVwiU3RvY2sgSXNzdWFuY2VcIlxuICAoY2xpY2spPVwic2hvd1N0b2NrSXNzdWFuY2VGb3JtKHN0b2NrSXNzdWFuY2VGb3JtVGVtcGxhdGUpXCJcbj5cbiAge3sgc3RvY2tJc3N1YW5jZSA/IFwiZWRpdFwiIDogaWNvbiA/PyBcInVwbG9hZFwiIH19XG48L3NwYW4+XG5cbjxuZy10ZW1wbGF0ZSAjc3RvY2tJc3N1YW5jZUZvcm1UZW1wbGF0ZT5cbiAgPGFwcC1zdG9jay1pc3N1ZS1mb3JtXG4gICAgbWF0LWRpYWxvZy1jb250ZW50XG4gICAgW3Byb2R1Y3RdPVwicHJvZHVjdFwiXG4gICAgW3N0b2NrSXNzdWFuY2VdPVwic3RvY2tJc3N1YW5jZVwiXG4gICAgW2lzc3VhYmxlVHlwZV09XCJpc3N1YWJsZVR5cGVcIlxuICAgIFtpc3N1YWJsZUlkXT1cImlzc3VhYmxlSWRcIlxuICAgIChjYW5jZWxsZWQpPVwibWF0RGlhbG9nUmVmLmNsb3NlKClcIlxuICAgIChzYXZlZCk9XCJvblN0b2NrSXNzdWFuY2VTYXZlZCgkZXZlbnQpXCJcbiAgPjwvYXBwLXN0b2NrLWlzc3VlLWZvcm0+XG48L25nLXRlbXBsYXRlPlxuIl19