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,89 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i2 from '@angular/router';
5
+ import { RouterModule } from '@angular/router';
6
+ import { S as StockIssuancesListComponent, a as StockIssueFormModule, b as StockIssuancesListModule } from './techlify-inventory-common-stock-issuances-list.module-CyFDxARk.mjs';
7
+ import { MatCardModule } from '@angular/material/card';
8
+ import { InfiniteScrollModule } from 'ngx-infinite-scroll';
9
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
10
+ import { MatSortModule } from '@angular/material/sort';
11
+ import { MatTableModule } from '@angular/material/table';
12
+ import { S as StockReceiptFormModule } from './techlify-inventory-common-stock-receipt-form.module-BZDrN7la.mjs';
13
+ import { MatDialogModule } from '@angular/material/dialog';
14
+ import { MatButtonModule } from '@angular/material/button';
15
+ import { a as TechlifyFilterModule } from './techlify-inventory-common-techlify-inventory-common-Czyc0jLI.mjs';
16
+
17
+ const routes = [
18
+ {
19
+ path: "",
20
+ component: StockIssuancesListComponent,
21
+ },
22
+ ];
23
+ class StockIssuancesRoutingModule {
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesRoutingModule, imports: [i2.RouterModule], exports: [RouterModule] });
26
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesRoutingModule, decorators: [{
29
+ type: NgModule,
30
+ args: [{
31
+ imports: [RouterModule.forChild(routes)],
32
+ exports: [RouterModule],
33
+ }]
34
+ }] });
35
+
36
+ class StockIssuancesModule {
37
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
38
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesModule, imports: [CommonModule,
39
+ StockIssuancesRoutingModule,
40
+ MatCardModule,
41
+ TechlifyFilterModule,
42
+ InfiniteScrollModule,
43
+ MatProgressBarModule,
44
+ MatSortModule,
45
+ MatTableModule,
46
+ StockReceiptFormModule,
47
+ StockIssueFormModule,
48
+ MatDialogModule,
49
+ MatButtonModule,
50
+ StockIssuancesListModule] });
51
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesModule, imports: [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
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockIssuancesModule, decorators: [{
66
+ type: NgModule,
67
+ args: [{
68
+ declarations: [],
69
+ exports: [],
70
+ imports: [
71
+ CommonModule,
72
+ StockIssuancesRoutingModule,
73
+ MatCardModule,
74
+ TechlifyFilterModule,
75
+ InfiniteScrollModule,
76
+ MatProgressBarModule,
77
+ MatSortModule,
78
+ MatTableModule,
79
+ StockReceiptFormModule,
80
+ StockIssueFormModule,
81
+ MatDialogModule,
82
+ MatButtonModule,
83
+ StockIssuancesListModule,
84
+ ],
85
+ }]
86
+ }] });
87
+
88
+ export { StockIssuancesModule };
89
+ //# sourceMappingURL=techlify-inventory-common-stock-issuances.module-Dm9i2kcf.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"techlify-inventory-common-stock-issuances.module-Dm9i2kcf.mjs","sources":["../../../projects/inventory-common/src/lib/inventory-common/stock-issuances/stock-issuances-routing.module.ts","../../../projects/inventory-common/src/lib/inventory-common/stock-issuances/stock-issuances.module.ts"],"sourcesContent":["import { NgModule } from \"@angular/core\";\nimport { RouterModule, Routes } from \"@angular/router\";\nimport { StockIssuancesListComponent } from \"./stock-issuances-list/stock-issuances-list.component\";\n\nconst routes: Routes = [\n {\n path: \"\",\n component: StockIssuancesListComponent,\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class StockIssuancesRoutingModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { StockIssuancesRoutingModule } from \"./stock-issuances-routing.module\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { InfiniteScrollModule } from \"ngx-infinite-scroll\";\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\";\nimport { MatSortModule } from \"@angular/material/sort\";\nimport { MatTableModule } from \"@angular/material/table\";\nimport { StockReceiptFormModule } from \"../stock-receipts/stock-receipt-form/stock-receipt-form.module\";\nimport { StockIssueFormModule } from \"./stock-issue-form/stock-issue-form.module\";\nimport { MatDialogModule } from \"@angular/material/dialog\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { StockIssuancesListModule } from \"./stock-issuances-list/stock-issuances-list.module\";\nimport { TechlifyFilterModule } from '../techlify-filter/techlify-filter.module';\n\n@NgModule({\n declarations: [],\n exports: [],\n imports: [\n CommonModule,\n StockIssuancesRoutingModule,\n MatCardModule,\n TechlifyFilterModule,\n InfiniteScrollModule,\n MatProgressBarModule,\n MatSortModule,\n MatTableModule,\n StockReceiptFormModule,\n StockIssueFormModule,\n MatDialogModule,\n MatButtonModule,\n StockIssuancesListModule,\n ],\n})\nexport class StockIssuancesModule {}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIA,MAAM,MAAM,GAAW;AACrB,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,SAAS,EAAE,2BAA2B;AACvC,KAAA;CACF;MAMY,2BAA2B,CAAA;wGAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,wCAF5B,YAAY,CAAA,EAAA,CAAA;yGAEX,2BAA2B,EAAA,OAAA,EAAA,CAH5B,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC7B,YAAY,CAAA,EAAA,CAAA;;4FAEX,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;MCqBY,oBAAoB,CAAA;wGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAf7B,YAAY;YACZ,2BAA2B;YAC3B,aAAa;YACb,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;YACpB,aAAa;YACb,cAAc;YACd,sBAAsB;YACtB,oBAAoB;YACpB,eAAe;YACf,eAAe;YACf,wBAAwB,CAAA,EAAA,CAAA;AAGf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAf7B,YAAY;YACZ,2BAA2B;YAC3B,aAAa;YACb,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;YACpB,aAAa;YACb,cAAc;YACd,sBAAsB;YACtB,oBAAoB;YACpB,eAAe;YACf,eAAe;YACf,wBAAwB,CAAA,EAAA,CAAA;;4FAGf,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAnBhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,2BAA2B;wBAC3B,aAAa;wBACb,oBAAoB;wBACpB,oBAAoB;wBACpB,oBAAoB;wBACpB,aAAa;wBACb,cAAc;wBACd,sBAAsB;wBACtB,oBAAoB;wBACpB,eAAe;wBACf,eAAe;wBACf,wBAAwB;AACzB,qBAAA;AACF,iBAAA;;;;;"}
@@ -0,0 +1,302 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, forwardRef, Input, Component, EventEmitter, Output, NgModule } from '@angular/core';
3
+ import * as i4 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i1 from 'ngx-techlify-core';
6
+ import { TechlifyServiceBaseClass, TechlifyFormComponentInterface, SearchableSelectorModule } from 'ngx-techlify-core';
7
+ import * as i2 from '@angular/forms';
8
+ import { NG_VALUE_ACCESSOR, Validators, ReactiveFormsModule, FormsModule } from '@angular/forms';
9
+ import { debounceTime } from 'rxjs';
10
+ import { S as SupplierFormComponent } from './techlify-inventory-common-supplier-form.component-CHmMG7O8.mjs';
11
+ import * as i6 from '@angular/material/form-field';
12
+ import { MatFormFieldModule } from '@angular/material/form-field';
13
+ import * as i7 from '@angular/material/input';
14
+ import { MatInputModule } from '@angular/material/input';
15
+ import * as i9 from '@angular/material/datepicker';
16
+ import { MatDatepickerModule } from '@angular/material/datepicker';
17
+ import * as i7$1 from '@angular/material/button';
18
+ import { MatButtonModule } from '@angular/material/button';
19
+ import * as i1$1 from '@angular/material/dialog';
20
+ import { MatDialogModule } from '@angular/material/dialog';
21
+ import * as i2$1 from '@angular/material/tooltip';
22
+ import { MatTooltipModule } from '@angular/material/tooltip';
23
+
24
+ class StockReceiptService extends TechlifyServiceBaseClass {
25
+ constructor(httpService) {
26
+ super(httpService, "stock-receipts");
27
+ }
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
29
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptService, providedIn: "root" });
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptService, decorators: [{
32
+ type: Injectable,
33
+ args: [{
34
+ providedIn: "root",
35
+ }]
36
+ }], ctorParameters: () => [{ type: i1.HttpService }] });
37
+
38
+ class PayeeSelectorComponent {
39
+ label = "Payee";
40
+ appearance = "fill";
41
+ required = false;
42
+ showAddButton = false;
43
+ multiple = false;
44
+ value;
45
+ onChange = () => { };
46
+ onTouch = () => { };
47
+ writeValue(value) {
48
+ this.value = value;
49
+ this.onChange(value);
50
+ this.onTouch(value);
51
+ }
52
+ registerOnChange(fn) {
53
+ this.onChange = fn;
54
+ }
55
+ registerOnTouched(fn) {
56
+ this.onTouch = fn;
57
+ }
58
+ SupplierFormComponent = SupplierFormComponent;
59
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PayeeSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
60
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PayeeSelectorComponent, selector: "app-payee-selector", inputs: { label: "label", appearance: "appearance", required: "required", showAddButton: "showAddButton", multiple: "multiple" }, providers: [
61
+ {
62
+ provide: NG_VALUE_ACCESSOR,
63
+ useExisting: forwardRef(() => PayeeSelectorComponent),
64
+ multi: true,
65
+ },
66
+ ], ngImport: i0, template: "<mat-form-field [appearance]=\"appearance\" class=\"w-100\">\n <mat-label>{{ label }}</mat-label>\n <app-searchable-selector\n apiUrl=\"api/suppliers\"\n titleField=\"company_name\"\n sortBy=\"company_name|asc\"\n [required]=\"required\"\n [(ngModel)]=\"value\"\n #payeeSelector=\"ngModel\"\n name=\"payeeSelector\"\n [add]=\"showAddButton\"\n [itemComponent]=\"SupplierFormComponent\"\n (ngModelChange)=\"onChange($event)\"\n [addConfig]=\"{ width: '600px' }\"\n [ngModelOptions]=\"{ standalone: true }\"\n [multiple]=\"multiple\"\n >\n </app-searchable-selector>\n <mat-error *ngIf=\"payeeSelector.invalid && payeeSelector.touched\">\n The payee field is required.\n </mat-error>\n</mat-form-field>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "component", type: i1.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], preserveWhitespaces: true });
67
+ }
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PayeeSelectorComponent, decorators: [{
69
+ type: Component,
70
+ args: [{ selector: "app-payee-selector", providers: [
71
+ {
72
+ provide: NG_VALUE_ACCESSOR,
73
+ useExisting: forwardRef(() => PayeeSelectorComponent),
74
+ multi: true,
75
+ },
76
+ ], template: "<mat-form-field [appearance]=\"appearance\" class=\"w-100\">\n <mat-label>{{ label }}</mat-label>\n <app-searchable-selector\n apiUrl=\"api/suppliers\"\n titleField=\"company_name\"\n sortBy=\"company_name|asc\"\n [required]=\"required\"\n [(ngModel)]=\"value\"\n #payeeSelector=\"ngModel\"\n name=\"payeeSelector\"\n [add]=\"showAddButton\"\n [itemComponent]=\"SupplierFormComponent\"\n (ngModelChange)=\"onChange($event)\"\n [addConfig]=\"{ width: '600px' }\"\n [ngModelOptions]=\"{ standalone: true }\"\n [multiple]=\"multiple\"\n >\n </app-searchable-selector>\n <mat-error *ngIf=\"payeeSelector.invalid && payeeSelector.touched\">\n The payee field is required.\n </mat-error>\n</mat-form-field>\n" }]
77
+ }], propDecorators: { label: [{
78
+ type: Input
79
+ }], appearance: [{
80
+ type: Input
81
+ }], required: [{
82
+ type: Input
83
+ }], showAddButton: [{
84
+ type: Input
85
+ }], multiple: [{
86
+ type: Input
87
+ }] } });
88
+
89
+ class StockReceiptFormComponent extends TechlifyFormComponentInterface {
90
+ formBuilder;
91
+ stockReceiptService;
92
+ alertService;
93
+ dateUtils;
94
+ product;
95
+ stockReceipt;
96
+ saved = new EventEmitter();
97
+ cancelled = new EventEmitter();
98
+ isWorking;
99
+ constructor(formValidatorService, formBuilder, stockReceiptService, alertService, dateUtils) {
100
+ super(formValidatorService);
101
+ this.formBuilder = formBuilder;
102
+ this.stockReceiptService = stockReceiptService;
103
+ this.alertService = alertService;
104
+ this.dateUtils = dateUtils;
105
+ this.errorMessages = {
106
+ date: {
107
+ required: "The date field is required.",
108
+ },
109
+ quantity: {
110
+ required: "The quantity field is required.",
111
+ },
112
+ purchase_price: {
113
+ required: "The purchase price field is required.",
114
+ },
115
+ };
116
+ this.form = this.formBuilder.group({
117
+ id: [""],
118
+ supplier_id: [""],
119
+ date: [new Date(), Validators.required],
120
+ quantity: [1, Validators.required],
121
+ purchase_price: [0, Validators.required],
122
+ amount: [0],
123
+ particulars: [""],
124
+ });
125
+ }
126
+ ngOnInit() {
127
+ this.form
128
+ .get("quantity")
129
+ ?.valueChanges.pipe(debounceTime(500))
130
+ .subscribe(() => this.updateTotalAmount());
131
+ this.form
132
+ .get("purchase_price")
133
+ ?.valueChanges.pipe(debounceTime(500))
134
+ .subscribe(() => this.updateTotalAmount());
135
+ if (this.stockReceipt) {
136
+ let data = { ...this.stockReceipt };
137
+ if (data.date) {
138
+ data.date = new Date(data.date);
139
+ }
140
+ this.form.patchValue(data);
141
+ }
142
+ else {
143
+ // on create for set default quantity and purchase price from last record
144
+ if (this.product?.last_stock_receipt) {
145
+ const { quantity, purchase_price } = this.product.last_stock_receipt;
146
+ this.form.patchValue({
147
+ quantity,
148
+ purchase_price,
149
+ });
150
+ }
151
+ }
152
+ }
153
+ save() {
154
+ if (this.form.invalid) {
155
+ this.alertService.addAlert("Please check the form for errors", "error");
156
+ return;
157
+ }
158
+ const data = {
159
+ product_id: this.product?.id,
160
+ ...this.form.value,
161
+ };
162
+ if (data.date) {
163
+ data.date = this.dateUtils.getYYYYMMDDString(data.date);
164
+ }
165
+ this.isWorking = true;
166
+ let request = this.stockReceiptService.store(data);
167
+ if (this.stockReceipt?.id) {
168
+ request = this.stockReceiptService.update(data);
169
+ }
170
+ request.subscribe({
171
+ next: (response) => {
172
+ this.isWorking = false;
173
+ this.saved.emit(response?.item);
174
+ this.alertService.addAlert("Stock Receipt Saved Successfully!", "success");
175
+ },
176
+ error: () => (this.isWorking = false),
177
+ });
178
+ }
179
+ updateTotalAmount() {
180
+ const { purchase_price, quantity } = this.form.value;
181
+ const amount = parseFloat(purchase_price) * parseFloat(quantity) || 0;
182
+ this.form.get("amount")?.setValue(amount);
183
+ }
184
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptFormComponent, deps: [{ token: i1.FormValidatorService }, { token: i2.FormBuilder }, { token: StockReceiptService }, { token: i1.AlertService }, { token: i1.DateUtils }], target: i0.ɵɵFactoryTarget.Component });
185
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StockReceiptFormComponent, selector: "app-stock-receipt-form", inputs: { product: "product", stockReceipt: "stockReceipt" }, outputs: { saved: "saved", cancelled: "cancelled" }, usesInheritance: true, ngImport: i0, template: "<h3 class=\"text-center\">\n {{ stockReceipt?.id ? \"Edit\" : \"Receive\" }} 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 <app-payee-selector\n label=\"Supplier\"\n formControlName=\"supplier_id\"\n appearance=\"fill\"\n [showAddButton]=\"true\"\n ></app-payee-selector>\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>Purchase Price</mat-label>\n <input matInput formControlName=\"purchase_price\" type=\"number\" min=\"0\" />\n <mat-error *ngIf=\"isFieldValid('purchase_price')\">\n {{ getErrorMessage(\"purchase_price\") }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Total Value</mat-label>\n <input matInput formControlName=\"amount\" readonly type=\"number\" min=\"0\" />\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Particulars</mat-label>\n <textarea matInput formControlName=\"particulars\" rows=\"3\"></textarea>\n </mat-form-field>\n\n <div class=\"d-flex justify-content-end align-items-center gap-2\">\n <button\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: "component", type: PayeeSelectorComponent, selector: "app-payee-selector", inputs: ["label", "appearance", "required", "showAddButton", "multiple"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7.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: i9.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i9.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i7$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], preserveWhitespaces: true });
186
+ }
187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptFormComponent, decorators: [{
188
+ type: Component,
189
+ args: [{ selector: "app-stock-receipt-form", template: "<h3 class=\"text-center\">\n {{ stockReceipt?.id ? \"Edit\" : \"Receive\" }} 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 <app-payee-selector\n label=\"Supplier\"\n formControlName=\"supplier_id\"\n appearance=\"fill\"\n [showAddButton]=\"true\"\n ></app-payee-selector>\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>Purchase Price</mat-label>\n <input matInput formControlName=\"purchase_price\" type=\"number\" min=\"0\" />\n <mat-error *ngIf=\"isFieldValid('purchase_price')\">\n {{ getErrorMessage(\"purchase_price\") }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Total Value</mat-label>\n <input matInput formControlName=\"amount\" readonly type=\"number\" min=\"0\" />\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Particulars</mat-label>\n <textarea matInput formControlName=\"particulars\" rows=\"3\"></textarea>\n </mat-form-field>\n\n <div class=\"d-flex justify-content-end align-items-center gap-2\">\n <button\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" }]
190
+ }], ctorParameters: () => [{ type: i1.FormValidatorService }, { type: i2.FormBuilder }, { type: StockReceiptService }, { type: i1.AlertService }, { type: i1.DateUtils }], propDecorators: { product: [{
191
+ type: Input
192
+ }], stockReceipt: [{
193
+ type: Input
194
+ }], saved: [{
195
+ type: Output
196
+ }], cancelled: [{
197
+ type: Output
198
+ }] } });
199
+
200
+ class StockReceiptFormButtonComponent {
201
+ matDialog;
202
+ product;
203
+ stockReceipt;
204
+ icon;
205
+ saved = new EventEmitter();
206
+ matDialogRef;
207
+ constructor(matDialog) {
208
+ this.matDialog = matDialog;
209
+ }
210
+ showStockReceiptForm(templateRef) {
211
+ this.matDialogRef = this.matDialog.open(templateRef, { width: "500px" });
212
+ }
213
+ onStockReceiptSaved(item) {
214
+ this.matDialogRef.close();
215
+ this.saved.emit(item);
216
+ }
217
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptFormButtonComponent, deps: [{ token: i1$1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
218
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StockReceiptFormButtonComponent, selector: "app-stock-receipt-form-button", inputs: { product: "product", stockReceipt: "stockReceipt", icon: "icon" }, outputs: { saved: "saved" }, ngImport: i0, template: "<span\n class=\"material-symbols-outlined cursor-pointer\"\n [class.text-primary]=\"icon\"\n matTooltip=\"Stock Receipt\"\n (click)=\"showStockReceiptForm(stockReceiptFormTemplate)\"\n>\n {{ stockReceipt ? \"edit\" : icon ?? \"download\" }}\n</span>\n\n<ng-template #stockReceiptFormTemplate>\n <app-stock-receipt-form\n mat-dialog-content\n [product]=\"product\"\n [stockReceipt]=\"stockReceipt\"\n (cancelled)=\"matDialogRef.close()\"\n (saved)=\"onStockReceiptSaved($event)\"\n ></app-stock-receipt-form>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i1$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: StockReceiptFormComponent, selector: "app-stock-receipt-form", inputs: ["product", "stockReceipt"], outputs: ["saved", "cancelled"] }], preserveWhitespaces: true });
219
+ }
220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptFormButtonComponent, decorators: [{
221
+ type: Component,
222
+ args: [{ selector: "app-stock-receipt-form-button", template: "<span\n class=\"material-symbols-outlined cursor-pointer\"\n [class.text-primary]=\"icon\"\n matTooltip=\"Stock Receipt\"\n (click)=\"showStockReceiptForm(stockReceiptFormTemplate)\"\n>\n {{ stockReceipt ? \"edit\" : icon ?? \"download\" }}\n</span>\n\n<ng-template #stockReceiptFormTemplate>\n <app-stock-receipt-form\n mat-dialog-content\n [product]=\"product\"\n [stockReceipt]=\"stockReceipt\"\n (cancelled)=\"matDialogRef.close()\"\n (saved)=\"onStockReceiptSaved($event)\"\n ></app-stock-receipt-form>\n</ng-template>\n" }]
223
+ }], ctorParameters: () => [{ type: i1$1.MatDialog }], propDecorators: { product: [{
224
+ type: Input
225
+ }], stockReceipt: [{
226
+ type: Input
227
+ }], icon: [{
228
+ type: Input
229
+ }], saved: [{
230
+ type: Output
231
+ }] } });
232
+
233
+ class PayeeSelectorModule {
234
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PayeeSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
235
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: PayeeSelectorModule, declarations: [PayeeSelectorComponent], imports: [CommonModule,
236
+ MatFormFieldModule,
237
+ ReactiveFormsModule,
238
+ SearchableSelectorModule,
239
+ FormsModule], exports: [PayeeSelectorComponent] });
240
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PayeeSelectorModule, imports: [CommonModule,
241
+ MatFormFieldModule,
242
+ ReactiveFormsModule,
243
+ SearchableSelectorModule,
244
+ FormsModule] });
245
+ }
246
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PayeeSelectorModule, decorators: [{
247
+ type: NgModule,
248
+ args: [{
249
+ declarations: [PayeeSelectorComponent],
250
+ exports: [PayeeSelectorComponent],
251
+ imports: [
252
+ CommonModule,
253
+ MatFormFieldModule,
254
+ ReactiveFormsModule,
255
+ SearchableSelectorModule,
256
+ FormsModule,
257
+ ],
258
+ }]
259
+ }] });
260
+
261
+ class StockReceiptFormModule {
262
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
263
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptFormModule, declarations: [StockReceiptFormComponent, StockReceiptFormButtonComponent], imports: [CommonModule,
264
+ MatTooltipModule,
265
+ MatDialogModule,
266
+ PayeeSelectorModule,
267
+ ReactiveFormsModule,
268
+ MatFormFieldModule,
269
+ MatInputModule,
270
+ MatDatepickerModule,
271
+ MatButtonModule], exports: [StockReceiptFormButtonComponent] });
272
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptFormModule, imports: [CommonModule,
273
+ MatTooltipModule,
274
+ MatDialogModule,
275
+ PayeeSelectorModule,
276
+ ReactiveFormsModule,
277
+ MatFormFieldModule,
278
+ MatInputModule,
279
+ MatDatepickerModule,
280
+ MatButtonModule] });
281
+ }
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StockReceiptFormModule, decorators: [{
283
+ type: NgModule,
284
+ args: [{
285
+ declarations: [StockReceiptFormComponent, StockReceiptFormButtonComponent],
286
+ exports: [StockReceiptFormButtonComponent],
287
+ imports: [
288
+ CommonModule,
289
+ MatTooltipModule,
290
+ MatDialogModule,
291
+ PayeeSelectorModule,
292
+ ReactiveFormsModule,
293
+ MatFormFieldModule,
294
+ MatInputModule,
295
+ MatDatepickerModule,
296
+ MatButtonModule,
297
+ ],
298
+ }]
299
+ }] });
300
+
301
+ export { PayeeSelectorModule as P, StockReceiptFormModule as S, StockReceiptFormButtonComponent as a, StockReceiptService as b };
302
+ //# sourceMappingURL=techlify-inventory-common-stock-receipt-form.module-BZDrN7la.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"techlify-inventory-common-stock-receipt-form.module-BZDrN7la.mjs","sources":["../../../projects/inventory-common/src/lib/inventory-common/stock-receipts/stock-receipt.service.ts","../../../projects/inventory-common/src/lib/inventory-common/supplier/payee-selector/payee-selector/payee-selector.component.ts","../../../projects/inventory-common/src/lib/inventory-common/supplier/payee-selector/payee-selector/payee-selector.component.html","../../../projects/inventory-common/src/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form/stock-receipt-form.component.ts","../../../projects/inventory-common/src/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form/stock-receipt-form.component.html","../../../projects/inventory-common/src/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form-button/stock-receipt-form-button.component.ts","../../../projects/inventory-common/src/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form-button/stock-receipt-form-button.component.html","../../../projects/inventory-common/src/lib/inventory-common/supplier/payee-selector/payee-selector.module.ts","../../../projects/inventory-common/src/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form.module.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport { HttpService, TechlifyServiceBaseClass } from \"ngx-techlify-core\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class StockReceiptService extends TechlifyServiceBaseClass {\n constructor(httpService: HttpService) {\n super(httpService, \"stock-receipts\");\n }\n}\n","import { Component, forwardRef, Input, OnInit } from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { SupplierFormComponent } from \"../../supplier-form/supplier-form.component\";\nimport { MatFormFieldAppearance } from \"@angular/material/form-field\";\n\n@Component({\n selector: \"app-payee-selector\",\n templateUrl: \"./payee-selector.component.html\",\n styleUrls: [\"./payee-selector.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PayeeSelectorComponent),\n multi: true,\n },\n ],\n})\nexport class PayeeSelectorComponent implements ControlValueAccessor {\n @Input() label = \"Payee\";\n @Input() appearance: MatFormFieldAppearance = \"fill\";\n @Input() required: boolean = false;\n @Input() showAddButton: boolean = false;\n @Input() multiple: boolean = false;\n\n value: any;\n onChange: any = () => {};\n onTouch: any = () => {};\n\n writeValue(value: any): void {\n this.value = value;\n this.onChange(value);\n this.onTouch(value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n protected readonly SupplierFormComponent = SupplierFormComponent;\n}\n","<mat-form-field [appearance]=\"appearance\" class=\"w-100\">\n <mat-label>{{ label }}</mat-label>\n <app-searchable-selector\n apiUrl=\"api/suppliers\"\n titleField=\"company_name\"\n sortBy=\"company_name|asc\"\n [required]=\"required\"\n [(ngModel)]=\"value\"\n #payeeSelector=\"ngModel\"\n name=\"payeeSelector\"\n [add]=\"showAddButton\"\n [itemComponent]=\"SupplierFormComponent\"\n (ngModelChange)=\"onChange($event)\"\n [addConfig]=\"{ width: '600px' }\"\n [ngModelOptions]=\"{ standalone: true }\"\n [multiple]=\"multiple\"\n >\n </app-searchable-selector>\n <mat-error *ngIf=\"payeeSelector.invalid && payeeSelector.touched\">\n The payee field is required.\n </mat-error>\n</mat-form-field>\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport {\n AlertService,\n DateUtils,\n FormValidatorService,\n TechlifyFormComponentInterface,\n} from \"ngx-techlify-core\";\nimport { FormBuilder, Validators } from \"@angular/forms\";\nimport { StockReceiptService } from \"../../stock-receipt.service\";\nimport { debounceTime, Observable } from \"rxjs\";\n\n@Component({\n selector: \"app-stock-receipt-form\",\n templateUrl: \"./stock-receipt-form.component.html\",\n styleUrls: [\"./stock-receipt-form.component.scss\"],\n})\nexport class StockReceiptFormComponent\n extends TechlifyFormComponentInterface\n implements OnInit\n{\n @Input() product: any;\n @Input() stockReceipt: any;\n @Output() saved: EventEmitter<any> = new EventEmitter<any>();\n @Output() cancelled: EventEmitter<any> = new EventEmitter<any>();\n\n isWorking!: boolean;\n\n constructor(\n formValidatorService: FormValidatorService,\n private formBuilder: FormBuilder,\n private stockReceiptService: StockReceiptService,\n private alertService: AlertService,\n private dateUtils: DateUtils\n ) {\n super(formValidatorService);\n this.errorMessages = {\n date: {\n required: \"The date field is required.\",\n },\n quantity: {\n required: \"The quantity field is required.\",\n },\n purchase_price: {\n required: \"The purchase price field is required.\",\n },\n };\n\n this.form = this.formBuilder.group({\n id: [\"\"],\n supplier_id: [\"\"],\n date: [new Date(), Validators.required],\n quantity: [1, Validators.required],\n purchase_price: [0, Validators.required],\n amount: [0],\n particulars: [\"\"],\n });\n }\n\n ngOnInit() {\n this.form\n .get(\"quantity\")\n ?.valueChanges.pipe(debounceTime(500))\n .subscribe(() => this.updateTotalAmount());\n this.form\n .get(\"purchase_price\")\n ?.valueChanges.pipe(debounceTime(500))\n .subscribe(() => this.updateTotalAmount());\n\n if (this.stockReceipt) {\n let data: any = { ...this.stockReceipt };\n if (data.date) {\n data.date = new Date(data.date);\n }\n this.form.patchValue(data);\n } else {\n // on create for set default quantity and purchase price from last record\n if (this.product?.last_stock_receipt) {\n const { quantity, purchase_price } = this.product.last_stock_receipt;\n this.form.patchValue({\n quantity,\n purchase_price,\n });\n }\n }\n }\n\n save() {\n if (this.form.invalid) {\n this.alertService.addAlert(\"Please check the form for errors\", \"error\");\n return;\n }\n const data: any = {\n product_id: this.product?.id,\n ...this.form.value,\n };\n if (data.date) {\n data.date = this.dateUtils.getYYYYMMDDString(data.date);\n }\n this.isWorking = true;\n let request: Observable<any> = this.stockReceiptService.store(data);\n if (this.stockReceipt?.id) {\n request = this.stockReceiptService.update(data);\n }\n request.subscribe({\n next: (response: any) => {\n this.isWorking = false;\n this.saved.emit(response?.item);\n this.alertService.addAlert(\n \"Stock Receipt Saved Successfully!\",\n \"success\"\n );\n },\n error: () => (this.isWorking = false),\n });\n }\n\n private updateTotalAmount() {\n const { purchase_price, quantity } = this.form.value;\n const amount: any = parseFloat(purchase_price) * parseFloat(quantity) || 0;\n this.form.get(\"amount\")?.setValue(amount);\n }\n}\n","<h3 class=\"text-center\">\n {{ stockReceipt?.id ? \"Edit\" : \"Receive\" }} 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 <app-payee-selector\n label=\"Supplier\"\n formControlName=\"supplier_id\"\n appearance=\"fill\"\n [showAddButton]=\"true\"\n ></app-payee-selector>\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>Purchase Price</mat-label>\n <input matInput formControlName=\"purchase_price\" type=\"number\" min=\"0\" />\n <mat-error *ngIf=\"isFieldValid('purchase_price')\">\n {{ getErrorMessage(\"purchase_price\") }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Total Value</mat-label>\n <input matInput formControlName=\"amount\" readonly type=\"number\" min=\"0\" />\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Particulars</mat-label>\n <textarea matInput formControlName=\"particulars\" rows=\"3\"></textarea>\n </mat-form-field>\n\n <div class=\"d-flex justify-content-end align-items-center gap-2\">\n <button\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","import {\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n} from \"@angular/core\";\nimport { MatDialog, MatDialogRef } from \"@angular/material/dialog\";\n\n@Component({\n selector: \"app-stock-receipt-form-button\",\n templateUrl: \"./stock-receipt-form-button.component.html\",\n styleUrls: [\"./stock-receipt-form-button.component.scss\"],\n})\nexport class StockReceiptFormButtonComponent {\n @Input() product: any;\n @Input() stockReceipt: any;\n @Input() icon!: string | null;\n @Output() saved: EventEmitter<any> = new EventEmitter<any>();\n\n matDialogRef!: MatDialogRef<any>;\n\n constructor(private matDialog: MatDialog) {}\n\n showStockReceiptForm(templateRef: TemplateRef<any>) {\n this.matDialogRef = this.matDialog.open(templateRef, { width: \"500px\" });\n }\n\n onStockReceiptSaved(item: any) {\n this.matDialogRef.close();\n this.saved.emit(item);\n }\n}\n","<span\n class=\"material-symbols-outlined cursor-pointer\"\n [class.text-primary]=\"icon\"\n matTooltip=\"Stock Receipt\"\n (click)=\"showStockReceiptForm(stockReceiptFormTemplate)\"\n>\n {{ stockReceipt ? \"edit\" : icon ?? \"download\" }}\n</span>\n\n<ng-template #stockReceiptFormTemplate>\n <app-stock-receipt-form\n mat-dialog-content\n [product]=\"product\"\n [stockReceipt]=\"stockReceipt\"\n (cancelled)=\"matDialogRef.close()\"\n (saved)=\"onStockReceiptSaved($event)\"\n ></app-stock-receipt-form>\n</ng-template>\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { PayeeSelectorComponent } from \"./payee-selector/payee-selector.component\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { SearchableSelectorModule } from \"ngx-techlify-core\";\n\n@NgModule({\n declarations: [PayeeSelectorComponent],\n exports: [PayeeSelectorComponent],\n imports: [\n CommonModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n SearchableSelectorModule,\n FormsModule,\n ],\n})\nexport class PayeeSelectorModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { StockReceiptFormComponent } from \"./stock-receipt-form/stock-receipt-form.component\";\nimport { StockReceiptFormButtonComponent } from \"./stock-receipt-form-button/stock-receipt-form-button.component\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { MatDialogModule } from \"@angular/material/dialog\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { PayeeSelectorModule } from '../../supplier/payee-selector/payee-selector.module';\n\n@NgModule({\n declarations: [StockReceiptFormComponent, StockReceiptFormButtonComponent],\n exports: [StockReceiptFormButtonComponent],\n imports: [\n CommonModule,\n MatTooltipModule,\n MatDialogModule,\n PayeeSelectorModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatDatepickerModule,\n MatButtonModule,\n ],\n})\nexport class StockReceiptFormModule {}\n"],"names":["i1","i2","i3","i4","i3.StockReceiptService","i5.PayeeSelectorComponent","i8","i9","i3.StockReceiptFormComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAMM,MAAO,mBAAoB,SAAQ,wBAAwB,CAAA;AAC/D,IAAA,WAAA,CAAY,WAAwB,EAAA;AAClC,QAAA,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC;;wGAF3B,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCYY,sBAAsB,CAAA;IACxB,KAAK,GAAG,OAAO;IACf,UAAU,GAA2B,MAAM;IAC3C,QAAQ,GAAY,KAAK;IACzB,aAAa,GAAY,KAAK;IAC9B,QAAQ,GAAY,KAAK;AAElC,IAAA,KAAK;AACL,IAAA,QAAQ,GAAQ,MAAK,GAAG;AACxB,IAAA,OAAO,GAAQ,MAAK,GAAG;AAEvB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;AAGrB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;;IAGA,qBAAqB,GAAG,qBAAqB;wGAzBrD,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EARtB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECfH,gvBAsBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,KAAA,EAAA,WAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,CAAA;;4FDLa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAZlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGnB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,4BAA4B,CAAC;AACrD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,gvBAAA,EAAA;8BAGQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;;;AENG,MAAO,yBACX,SAAQ,8BAA8B,CAAA;AAY5B,IAAA,WAAA;AACA,IAAA,mBAAA;AACA,IAAA,YAAA;AACA,IAAA,SAAA;AAZD,IAAA,OAAO;AACP,IAAA,YAAY;AACX,IAAA,KAAK,GAAsB,IAAI,YAAY,EAAO;AAClD,IAAA,SAAS,GAAsB,IAAI,YAAY,EAAO;AAEhE,IAAA,SAAS;IAET,WACE,CAAA,oBAA0C,EAClC,WAAwB,EACxB,mBAAwC,EACxC,YAA0B,EAC1B,SAAoB,EAAA;QAE5B,KAAK,CAAC,oBAAoB,CAAC;QALnB,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;QACnB,IAAY,CAAA,YAAA,GAAZ,YAAY;QACZ,IAAS,CAAA,SAAA,GAAT,SAAS;QAGjB,IAAI,CAAC,aAAa,GAAG;AACnB,YAAA,IAAI,EAAE;AACJ,gBAAA,QAAQ,EAAE,6BAA6B;AACxC,aAAA;AACD,YAAA,QAAQ,EAAE;AACR,gBAAA,QAAQ,EAAE,iCAAiC;AAC5C,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,QAAQ,EAAE,uCAAuC;AAClD,aAAA;SACF;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACjC,EAAE,EAAE,CAAC,EAAE,CAAC;YACR,WAAW,EAAE,CAAC,EAAE,CAAC;YACjB,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACvC,YAAA,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;AAClC,YAAA,cAAc,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;YACxC,MAAM,EAAE,CAAC,CAAC,CAAC;YACX,WAAW,EAAE,CAAC,EAAE,CAAC;AAClB,SAAA,CAAC;;IAGJ,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC;aACF,GAAG,CAAC,UAAU;cACb,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;aACpC,SAAS,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC5C,QAAA,IAAI,CAAC;aACF,GAAG,CAAC,gBAAgB;cACnB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;aACpC,SAAS,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAE5C,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,IAAI,GAAQ,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE;AACxC,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;AAEjC,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;;aACrB;;AAEL,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE;gBACpC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB;AACpE,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;oBACnB,QAAQ;oBACR,cAAc;AACf,iBAAA,CAAC;;;;IAKR,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,kCAAkC,EAAE,OAAO,CAAC;YACvE;;AAEF,QAAA,MAAM,IAAI,GAAQ;AAChB,YAAA,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE;AAC5B,YAAA,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK;SACnB;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;;AAEzD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,IAAI,OAAO,GAAoB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC;AACnE,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE;YACzB,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC;;QAEjD,OAAO,CAAC,SAAS,CAAC;AAChB,YAAA,IAAI,EAAE,CAAC,QAAa,KAAI;AACtB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;gBACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;gBAC/B,IAAI,CAAC,YAAY,CAAC,QAAQ,CACxB,mCAAmC,EACnC,SAAS,CACV;aACF;YACD,KAAK,EAAE,OAAO,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACtC,SAAA,CAAC;;IAGI,iBAAiB,GAAA;QACvB,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK;AACpD,QAAA,MAAM,MAAM,GAAQ,UAAU,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC1E,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;;wGAvGhC,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,wMChBtC,iiEA0EA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,CAAA;;4FD1Da,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,iiEAAA,EAAA;qMAQzB,OAAO,EAAA,CAAA;sBAAf;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACS,KAAK,EAAA,CAAA;sBAAd;gBACS,SAAS,EAAA,CAAA;sBAAlB;;;METU,+BAA+B,CAAA;AAQtB,IAAA,SAAA;AAPX,IAAA,OAAO;AACP,IAAA,YAAY;AACZ,IAAA,IAAI;AACH,IAAA,KAAK,GAAsB,IAAI,YAAY,EAAO;AAE5D,IAAA,YAAY;AAEZ,IAAA,WAAA,CAAoB,SAAoB,EAAA;QAApB,IAAS,CAAA,SAAA,GAAT,SAAS;;AAE7B,IAAA,oBAAoB,CAAC,WAA6B,EAAA;AAChD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;;AAG1E,IAAA,mBAAmB,CAAC,IAAS,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AACzB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;wGAhBZ,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,IAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,8KCd5C,qiBAkBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,CAAA;;4FDJa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,+BAA+B,EAAA,QAAA,EAAA,qiBAAA,EAAA;gFAKhC,OAAO,EAAA,CAAA;sBAAf;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACS,KAAK,EAAA,CAAA;sBAAd;;;MEAU,mBAAmB,CAAA;wGAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAnB,mBAAmB,EAAA,YAAA,EAAA,CAVf,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAGnC,YAAY;YACZ,kBAAkB;YAClB,mBAAmB;YACnB,wBAAwB;AACxB,YAAA,WAAW,aANH,sBAAsB,CAAA,EAAA,CAAA;AASrB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAP5B,YAAY;YACZ,kBAAkB;YAClB,mBAAmB;YACnB,wBAAwB;YACxB,WAAW,CAAA,EAAA,CAAA;;4FAGF,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAX/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,kBAAkB;wBAClB,mBAAmB;wBACnB,wBAAwB;wBACxB,WAAW;AACZ,qBAAA;AACF,iBAAA;;;MCWY,sBAAsB,CAAA;wGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EAdlB,YAAA,EAAA,CAAA,yBAAyB,EAAE,+BAA+B,aAGvE,YAAY;YACZ,gBAAgB;YAChB,eAAe;YACf,mBAAmB;YACnB,mBAAmB;YACnB,kBAAkB;YAClB,cAAc;YACd,mBAAmB;AACnB,YAAA,eAAe,aAVP,+BAA+B,CAAA,EAAA,CAAA;AAa9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAX/B,YAAY;YACZ,gBAAgB;YAChB,eAAe;YACf,mBAAmB;YACnB,mBAAmB;YACnB,kBAAkB;YAClB,cAAc;YACd,mBAAmB;YACnB,eAAe,CAAA,EAAA,CAAA;;4FAGN,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAflC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,yBAAyB,EAAE,+BAA+B,CAAC;oBAC1E,OAAO,EAAE,CAAC,+BAA+B,CAAC;AAC1C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,eAAe;wBACf,mBAAmB;wBACnB,mBAAmB;wBACnB,kBAAkB;wBAClB,cAAc;wBACd,mBAAmB;wBACnB,eAAe;AAChB,qBAAA;AACF,iBAAA;;;;;"}