techlify-inventory-common 18.38.2 → 18.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/esm2022/lib/inventory-common/product/product-basic-info/product-basic-info.component.mjs +3 -3
  2. package/esm2022/lib/inventory-common/product/product-list/product-list.component.mjs +28 -37
  3. package/esm2022/lib/inventory-common/product/product-view-page/product-view-page.component.mjs +1 -1
  4. package/esm2022/lib/inventory-common/stock-issue/stock-issue-form/stock-issue-form.component.mjs +18 -7
  5. package/esm2022/lib/inventory-common/stock-issue/stock-issue-list/stock-issue-list.component.mjs +11 -2
  6. package/esm2022/lib/inventory-common/stock-issue/stock-issue-page/stock-issue-page.component.mjs +5 -10
  7. package/esm2022/lib/inventory-common/stock-issue/stock-issue-page/stock-issue-page.module.mjs +5 -6
  8. package/esm2022/lib/inventory-common/stock-issue/stock-issue-product-form/stock-issue-product-form.component.mjs +7 -7
  9. package/esm2022/lib/inventory-common/stock-issue/stock-issue-products-list/stock-issue-products-list.component.mjs +25 -9
  10. package/esm2022/lib/inventory-common/stock-issue/stock-issue.module.mjs +7 -3
  11. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-product-list/stock-receipt-product-list.component.mjs +3 -3
  12. package/fesm2022/{techlify-inventory-common-category.module-CKpiM1p_.mjs → techlify-inventory-common-category.module-CiZXYGS7.mjs} +2 -2
  13. package/fesm2022/{techlify-inventory-common-category.module-CKpiM1p_.mjs.map → techlify-inventory-common-category.module-CiZXYGS7.mjs.map} +1 -1
  14. package/fesm2022/{techlify-inventory-common-measure.module-DMkQVem6.mjs → techlify-inventory-common-measure.module-D9tk7RWL.mjs} +2 -2
  15. package/fesm2022/{techlify-inventory-common-measure.module-DMkQVem6.mjs.map → techlify-inventory-common-measure.module-D9tk7RWL.mjs.map} +1 -1
  16. package/fesm2022/{techlify-inventory-common-purchase-order-view.component-DswAv0_x.mjs → techlify-inventory-common-purchase-order-view.component-CsmrVmZs.mjs} +2 -2
  17. package/fesm2022/{techlify-inventory-common-purchase-order-view.component-DswAv0_x.mjs.map → techlify-inventory-common-purchase-order-view.component-CsmrVmZs.mjs.map} +1 -1
  18. package/fesm2022/{techlify-inventory-common-stock-issue-form.component-DAnutTOL.mjs → techlify-inventory-common-stock-issue-form.component-CnjtA7Hb.mjs} +19 -8
  19. package/fesm2022/techlify-inventory-common-stock-issue-form.component-CnjtA7Hb.mjs.map +1 -0
  20. package/fesm2022/{techlify-inventory-common-stock-issue-view.component-D4IpVw8z.mjs → techlify-inventory-common-stock-issue-view.component-zoK_HeFx.mjs} +2 -2
  21. package/fesm2022/{techlify-inventory-common-stock-issue-view.component-D4IpVw8z.mjs.map → techlify-inventory-common-stock-issue-view.component-zoK_HeFx.mjs.map} +1 -1
  22. package/fesm2022/{techlify-inventory-common-techlify-inventory-common-SNPp2SDU.mjs → techlify-inventory-common-techlify-inventory-common-CHc35QxL.mjs} +119 -106
  23. package/fesm2022/techlify-inventory-common-techlify-inventory-common-CHc35QxL.mjs.map +1 -0
  24. package/fesm2022/techlify-inventory-common.mjs +1 -1
  25. package/lib/inventory-common/product/product-list/product-list.component.d.ts +0 -1
  26. package/lib/inventory-common/stock-issue/stock-issue-form/stock-issue-form.component.d.ts +8 -3
  27. package/lib/inventory-common/stock-issue/stock-issue-list/stock-issue-list.component.d.ts +6 -1
  28. package/lib/inventory-common/stock-issue/stock-issue-page/stock-issue-page.component.d.ts +5 -3
  29. package/lib/inventory-common/stock-issue/stock-issue-page/stock-issue-page.module.d.ts +1 -2
  30. package/lib/inventory-common/stock-issue/stock-issue-products-list/stock-issue-products-list.component.d.ts +12 -3
  31. package/lib/inventory-common/stock-issue/stock-issue.module.d.ts +2 -1
  32. package/package.json +1 -1
  33. package/fesm2022/techlify-inventory-common-stock-issue-form.component-DAnutTOL.mjs.map +0 -1
  34. package/fesm2022/techlify-inventory-common-techlify-inventory-common-SNPp2SDU.mjs.map +0 -1
@@ -1,2 +1,2 @@
1
- export { aa as ExportToExcelButtonComponent, a4 as IncidentFormButtonComponent, a3 as IncidentFormComponent, a2 as IncidentListComponent, a0 as IncidentModule, a1 as IncidentService, f as InventoryCommonModule, I as InventoryCommonRoutingModule, ae as LocationFormButtonComponent, ad as LocationFormComponent, ac as LocationListComponent, ab as LocationModule, L as LocationService, M as MeasureService, $ as PayeeSelectorComponent, _ as PayeeSelectorModule, j as ProductBasicInfoComponent, r as ProductBatchUpdateFormComponent, k as ProductFormButtonComponent, i as ProductFormComponent, q as ProductFormService, s as ProductImportPageComponent, o as ProductListComponent, h as ProductModule, l as ProductQuickSearchComponent, n as ProductSearchComponent, m as ProductSearchModule, p as ProductService, t as ProductViewPageComponent, a9 as RatingFormButtonComponent, a8 as RatingFormComponent, a7 as RatingListComponent, a5 as RatingModule, a6 as RatingService, aj as ShelfFormButtonComponent, ai as ShelfFormComponent, ah as ShelfListComponent, af as ShelfModule, ag as ShelfService, e as StockIssueFormButtonComponent, d as StockIssueFormModule, x as StockIssueListComponent, u as StockIssueModule, v as StockIssuePageComponent, w as StockIssuePageModule, B as StockIssueProductFormButtonComponent, A as StockIssueProductFormComponent, y as StockIssueProductListComponent, z as StockIssueProductService, H as StockReceiptFormButtonComponent, E as StockReceiptListComponent, D as StockReceiptPageComponent, N as StockReceiptProductFormButtonComponent, K as StockReceiptProductFormComponent, F as StockReceiptProductsListComponent, G as StockReceiptSimpleFormModule, J as StockReceiptViewComponent, C as StockReceiptsModule, g as StockSummaryService, R as StockTransferFormButtonComponent, Q as StockTransferFormComponent, O as StockTransferListComponent, U as StockTransferService, W as SupplierFormButtonComponent, X as SupplierFormComponent, V as SupplierModule, Z as SupplierTypeService, Y as SuppliersListComponent, T as TechlifyFilterComponent, a as TechlifyFilterModule } from './techlify-inventory-common-techlify-inventory-common-SNPp2SDU.mjs';
1
+ export { aa as ExportToExcelButtonComponent, a4 as IncidentFormButtonComponent, a3 as IncidentFormComponent, a2 as IncidentListComponent, a0 as IncidentModule, a1 as IncidentService, f as InventoryCommonModule, I as InventoryCommonRoutingModule, ae as LocationFormButtonComponent, ad as LocationFormComponent, ac as LocationListComponent, ab as LocationModule, L as LocationService, M as MeasureService, $ as PayeeSelectorComponent, _ as PayeeSelectorModule, j as ProductBasicInfoComponent, r as ProductBatchUpdateFormComponent, k as ProductFormButtonComponent, i as ProductFormComponent, q as ProductFormService, s as ProductImportPageComponent, o as ProductListComponent, h as ProductModule, l as ProductQuickSearchComponent, n as ProductSearchComponent, m as ProductSearchModule, p as ProductService, t as ProductViewPageComponent, a9 as RatingFormButtonComponent, a8 as RatingFormComponent, a7 as RatingListComponent, a5 as RatingModule, a6 as RatingService, aj as ShelfFormButtonComponent, ai as ShelfFormComponent, ah as ShelfListComponent, af as ShelfModule, ag as ShelfService, e as StockIssueFormButtonComponent, d as StockIssueFormModule, x as StockIssueListComponent, u as StockIssueModule, v as StockIssuePageComponent, w as StockIssuePageModule, B as StockIssueProductFormButtonComponent, A as StockIssueProductFormComponent, y as StockIssueProductListComponent, z as StockIssueProductService, H as StockReceiptFormButtonComponent, E as StockReceiptListComponent, D as StockReceiptPageComponent, N as StockReceiptProductFormButtonComponent, K as StockReceiptProductFormComponent, F as StockReceiptProductsListComponent, G as StockReceiptSimpleFormModule, J as StockReceiptViewComponent, C as StockReceiptsModule, g as StockSummaryService, R as StockTransferFormButtonComponent, Q as StockTransferFormComponent, O as StockTransferListComponent, U as StockTransferService, W as SupplierFormButtonComponent, X as SupplierFormComponent, V as SupplierModule, Z as SupplierTypeService, Y as SuppliersListComponent, T as TechlifyFilterComponent, a as TechlifyFilterModule } from './techlify-inventory-common-techlify-inventory-common-CHc35QxL.mjs';
2
2
  //# sourceMappingURL=techlify-inventory-common.mjs.map
@@ -14,7 +14,6 @@ export declare class ProductListComponent extends TechlifyListComponent implemen
14
14
  private productService;
15
15
  private productFormService;
16
16
  selection: SelectionModel<any>;
17
- private customExportColumns;
18
17
  exportInProgress: boolean;
19
18
  columnConfig: ColumnConfig[];
20
19
  selectedColumns: ColumnConfig[];
@@ -3,20 +3,23 @@ import { FormArray, FormBuilder } from '@angular/forms';
3
3
  import { FormValidatorService, TechlifyFormComponent } from "ngx-techlify-core";
4
4
  import { Location } from '@angular/common';
5
5
  import { StockIssueService } from '../stock-issue.service';
6
- import { ActivatedRoute, Router } from '@angular/router';
6
+ import { ActivatedRoute } from '@angular/router';
7
7
  import { LocationService } from '../../location/location.service';
8
8
  import * as i0 from "@angular/core";
9
9
  export declare class StockIssueFormComponent extends TechlifyFormComponent implements OnInit {
10
10
  protected formValidatorService: FormValidatorService;
11
11
  private fb;
12
12
  private stockIssueService;
13
- private router;
14
13
  private route;
15
14
  private locationService;
16
15
  private location;
17
16
  locationCount: import("@angular/core").WritableSignal<number>;
18
17
  stockIssue: import("@angular/core").WritableSignal<any>;
19
- constructor(formValidatorService: FormValidatorService, fb: FormBuilder, stockIssueService: StockIssueService, router: Router, route: ActivatedRoute, locationService: LocationService, location: Location);
18
+ issuableData: import("@angular/core").WritableSignal<{
19
+ issuable_type: String;
20
+ issuable_id: number;
21
+ } | null>;
22
+ constructor(formValidatorService: FormValidatorService, fb: FormBuilder, stockIssueService: StockIssueService, route: ActivatedRoute, locationService: LocationService, location: Location);
20
23
  ngOnInit(): void;
21
24
  private loadStockIssue;
22
25
  get stockIssueProducts(): FormArray;
@@ -26,6 +29,8 @@ export declare class StockIssueFormComponent extends TechlifyFormComponent imple
26
29
  location_id: import("@angular/forms").FormControl<string | null>;
27
30
  quantity: import("@angular/forms").FormControl<number | null>;
28
31
  particulars: import("@angular/forms").FormControl<string | null>;
32
+ issuable_id: import("@angular/forms").FormControl<string | number | null>;
33
+ issuable_type: import("@angular/forms").FormControl<string | String | null>;
29
34
  }>;
30
35
  addStockIssueProduct(): void;
31
36
  removeStockIssueProduct(index: number): void;
@@ -14,6 +14,10 @@ export declare class StockIssueListComponent extends TechlifyListComponent imple
14
14
  exportInProgress: import("@angular/core").InputSignal<boolean>;
15
15
  listUpdated: import("@angular/core").OutputEmitterRef<any>;
16
16
  columnConfigReady: import("@angular/core").OutputEmitterRef<ColumnConfig[]>;
17
+ issuableData: import("@angular/core").InputSignal<{
18
+ issuable_type: string;
19
+ issuable_id: number;
20
+ } | null>;
17
21
  private _defaultSelectedColumns;
18
22
  columnConfig: ColumnConfig[];
19
23
  get displayedColumns(): string[];
@@ -21,8 +25,9 @@ export declare class StockIssueListComponent extends TechlifyListComponent imple
21
25
  get footerColumns(): string[];
22
26
  constructor(service: StockIssueService, formBuilder: FormBuilder, router: Router, featureService: TechlifyFeatureService);
23
27
  ngOnInit(): void;
28
+ loadData(): void;
24
29
  private loadFeatures;
25
30
  redirectToView(model: any): void;
26
31
  static ɵfac: i0.ɵɵFactoryDeclaration<StockIssueListComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<StockIssueListComponent, "app-stock-issue-list", never, { "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "selectedColumns": { "alias": "selectedColumns"; "required": false; "isSignal": true; }; "exportInProgress": { "alias": "exportInProgress"; "required": false; "isSignal": true; }; }, { "listUpdated": "listUpdated"; "columnConfigReady": "columnConfigReady"; }, never, never, false, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<StockIssueListComponent, "app-stock-issue-list", never, { "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "selectedColumns": { "alias": "selectedColumns"; "required": false; "isSignal": true; }; "exportInProgress": { "alias": "exportInProgress"; "required": false; "isSignal": true; }; "issuableData": { "alias": "issuableData"; "required": false; "isSignal": true; }; }, { "listUpdated": "listUpdated"; "columnConfigReady": "columnConfigReady"; }, never, never, false, never>;
28
33
  }
@@ -5,8 +5,6 @@ import * as i0 from "@angular/core";
5
5
  export declare class StockIssuePageComponent implements OnInit {
6
6
  private formBuilder;
7
7
  product: any;
8
- issuableType: string;
9
- issuableId: number;
10
8
  label: string;
11
9
  showActions: boolean;
12
10
  showFilters: boolean;
@@ -15,6 +13,10 @@ export declare class StockIssuePageComponent implements OnInit {
15
13
  private groupedList?;
16
14
  selectedView: import("@angular/core").WritableSignal<"itemized" | "grouped">;
17
15
  exportInProgress: import("@angular/core").WritableSignal<boolean>;
16
+ issuableData: import("@angular/core").InputSignal<{
17
+ issuable_type: string;
18
+ issuable_id: number;
19
+ } | null>;
18
20
  columnConfig: ColumnConfig[];
19
21
  selectedColumns: ColumnConfig[];
20
22
  filterForm: FormGroup;
@@ -24,5 +26,5 @@ export declare class StockIssuePageComponent implements OnInit {
24
26
  reload(): void;
25
27
  onColumnConfigReady(config: ColumnConfig[]): void;
26
28
  static ɵfac: i0.ɵɵFactoryDeclaration<StockIssuePageComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<StockIssuePageComponent, "app-stock-issue-page", never, { "product": { "alias": "product"; "required": false; }; "issuableType": { "alias": "issuableType"; "required": false; }; "issuableId": { "alias": "issuableId"; "required": false; }; "label": { "alias": "label"; "required": false; }; "showActions": { "alias": "showActions"; "required": false; }; "showFilters": { "alias": "showFilters"; "required": false; }; }, { "listUpdated": "listUpdated"; }, never, never, false, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<StockIssuePageComponent, "app-stock-issue-page", never, { "product": { "alias": "product"; "required": false; }; "label": { "alias": "label"; "required": false; }; "showActions": { "alias": "showActions"; "required": false; }; "showFilters": { "alias": "showFilters"; "required": false; }; "issuableData": { "alias": "issuableData"; "required": false; "isSignal": true; }; }, { "listUpdated": "listUpdated"; }, never, never, false, never>;
28
30
  }
@@ -12,9 +12,8 @@ import * as i10 from "@angular/router";
12
12
  import * as i11 from "@angular/forms";
13
13
  import * as i12 from "../../product/widgets/product-category-badges/product-category-badges.component";
14
14
  import * as i13 from "../../shared/export-to-excel-button/export-to-excel-button.component";
15
- import * as i14 from "../stock-issue-product-form/stock-issue-product-form-button/stock-issue-product-form-button.component";
16
15
  export declare class StockIssuePageModule {
17
16
  static ɵfac: i0.ɵɵFactoryDeclaration<StockIssuePageModule, never>;
18
- static ɵmod: i0.ɵɵNgModuleDeclaration<StockIssuePageModule, [typeof i1.StockIssuePageComponent, typeof i2.StockIssueListComponent, typeof i3.StockIssueProductListComponent], [typeof i4.CommonModule, typeof i5.MaterialModule, typeof i6.TechlifyFilterModule, typeof i7.StockIssueFormModule, typeof i8.InfiniteScrollDirective, typeof i9.MatProgressBarModule, typeof i10.RouterModule, typeof i5.SearchableSelectorModule, typeof i5.TimelineFilterModule, typeof i11.ReactiveFormsModule, typeof i12.ProductCategoryBadgesComponent, typeof i5.ColumnSelectorModule, typeof i5.TechlifyIconModule, typeof i13.ExportToExcelButtonComponent, typeof i14.StockIssueProductFormButtonComponent, typeof i5.TechlifyDeleteButtonComponent], [typeof i1.StockIssuePageComponent, typeof i2.StockIssueListComponent, typeof i3.StockIssueProductListComponent]>;
17
+ static ɵmod: i0.ɵɵNgModuleDeclaration<StockIssuePageModule, [typeof i1.StockIssuePageComponent, typeof i2.StockIssueListComponent, typeof i3.StockIssueProductListComponent], [typeof i4.CommonModule, typeof i5.MaterialModule, typeof i6.TechlifyFilterModule, typeof i7.StockIssueFormModule, typeof i8.InfiniteScrollDirective, typeof i9.MatProgressBarModule, typeof i10.RouterModule, typeof i5.SearchableSelectorModule, typeof i5.TimelineFilterModule, typeof i11.ReactiveFormsModule, typeof i12.ProductCategoryBadgesComponent, typeof i5.ColumnSelectorModule, typeof i5.TechlifyIconModule, typeof i13.ExportToExcelButtonComponent, typeof i5.TechlifyFormButtonComponent, typeof i5.TechlifyDeleteButtonComponent], [typeof i1.StockIssuePageComponent, typeof i2.StockIssueListComponent, typeof i3.StockIssueProductListComponent]>;
19
18
  static ɵinj: i0.ɵɵInjectorDeclaration<StockIssuePageModule>;
20
19
  }
@@ -1,27 +1,36 @@
1
1
  import { OnInit } from "@angular/core";
2
+ import { StockIssueProductFormComponent } from "../stock-issue-product-form/stock-issue-product-form.component";
2
3
  import { ColumnConfig, TechlifyFeatureService, TechlifyListComponent } from 'ngx-techlify-core';
3
4
  import { StockIssueProductService } from "../stock-issue-product.service";
4
5
  import { FormBuilder } from "@angular/forms";
6
+ import { DatePipe } from "@angular/common";
5
7
  import * as i0 from "@angular/core";
6
8
  export declare class StockIssueProductListComponent extends TechlifyListComponent implements OnInit {
7
9
  protected service: StockIssueProductService;
8
10
  private formBuilder;
9
11
  private featureService;
12
+ private datePipe;
10
13
  filters: import("@angular/core").InputSignal<any>;
11
14
  isProductView: import("@angular/core").InputSignal<boolean>;
12
- selectedColumns: import("@angular/core").InputSignal<ColumnConfig[]>;
15
+ selectedColumns: import("@angular/core").ModelSignal<ColumnConfig[]>;
13
16
  exportInProgress: import("@angular/core").InputSignal<boolean>;
14
17
  listUpdated: import("@angular/core").OutputEmitterRef<any>;
15
18
  columnConfigReady: import("@angular/core").OutputEmitterRef<ColumnConfig[]>;
19
+ issuableData: import("@angular/core").InputSignal<{
20
+ issuable_type: string;
21
+ issuable_id: number;
22
+ } | null>;
23
+ stockIssueProductForm: import("@angular/core").WritableSignal<typeof StockIssueProductFormComponent>;
16
24
  private readonly productViewHiddenColumns;
17
25
  private _defaultSelectedColumns;
18
26
  columnConfig: ColumnConfig[];
19
27
  get displayedColumns(): string[];
20
28
  get totalQuantity(): number;
21
29
  get footerColumns(): string[];
22
- constructor(service: StockIssueProductService, formBuilder: FormBuilder, featureService: TechlifyFeatureService);
30
+ constructor(service: StockIssueProductService, formBuilder: FormBuilder, featureService: TechlifyFeatureService, datePipe: DatePipe);
23
31
  ngOnInit(): void;
32
+ loadData(): void;
24
33
  private loadFeatures;
25
34
  static ɵfac: i0.ɵɵFactoryDeclaration<StockIssueProductListComponent, never>;
26
- static ɵcmp: i0.ɵɵComponentDeclaration<StockIssueProductListComponent, "app-stock-issue-products-list", never, { "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "isProductView": { "alias": "isProductView"; "required": false; "isSignal": true; }; "selectedColumns": { "alias": "selectedColumns"; "required": false; "isSignal": true; }; "exportInProgress": { "alias": "exportInProgress"; "required": false; "isSignal": true; }; }, { "listUpdated": "listUpdated"; "columnConfigReady": "columnConfigReady"; }, never, never, false, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<StockIssueProductListComponent, "app-stock-issue-products-list", never, { "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "isProductView": { "alias": "isProductView"; "required": false; "isSignal": true; }; "selectedColumns": { "alias": "selectedColumns"; "required": false; "isSignal": true; }; "exportInProgress": { "alias": "exportInProgress"; "required": false; "isSignal": true; }; "issuableData": { "alias": "issuableData"; "required": false; "isSignal": true; }; }, { "selectedColumns": "selectedColumnsChange"; "listUpdated": "listUpdated"; "columnConfigReady": "columnConfigReady"; }, never, never, false, never>;
27
36
  }
@@ -8,8 +8,9 @@ import * as i6 from "./stock-issue-simple-form/stock-issue-form.module";
8
8
  import * as i7 from "@angular/material/dialog";
9
9
  import * as i8 from "@angular/material/button";
10
10
  import * as i9 from "./stock-issue-page/stock-issue-page.module";
11
+ import * as i10 from "ngx-techlify-core";
11
12
  export declare class StockIssueModule {
12
13
  static ɵfac: i0.ɵɵFactoryDeclaration<StockIssueModule, never>;
13
- static ɵmod: i0.ɵɵNgModuleDeclaration<StockIssueModule, never, [typeof i1.CommonModule, typeof i2.StockIssueRoutingModule, typeof i3.MatCardModule, typeof i4.TechlifyFilterModule, typeof i5.StockReceiptSimpleFormModule, typeof i6.StockIssueFormModule, typeof i7.MatDialogModule, typeof i8.MatButtonModule, typeof i9.StockIssuePageModule], never>;
14
+ static ɵmod: i0.ɵɵNgModuleDeclaration<StockIssueModule, never, [typeof i1.CommonModule, typeof i2.StockIssueRoutingModule, typeof i3.MatCardModule, typeof i4.TechlifyFilterModule, typeof i5.StockReceiptSimpleFormModule, typeof i6.StockIssueFormModule, typeof i7.MatDialogModule, typeof i8.MatButtonModule, typeof i9.StockIssuePageModule, typeof i10.TechlifyFormButtonComponent], never>;
14
15
  static ɵinj: i0.ɵɵInjectorDeclaration<StockIssueModule>;
15
16
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "techlify-inventory-common",
3
- "version": "18.38.2",
3
+ "version": "18.40.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.13",
6
6
  "@angular/core": "^18.2.13"
@@ -1 +0,0 @@
1
- {"version":3,"file":"techlify-inventory-common-stock-issue-form.component-DAnutTOL.mjs","sources":["../../../projects/inventory-common/src/lib/inventory-common/stock-issue/stock-issue-form/stock-issue-form.component.ts","../../../projects/inventory-common/src/lib/inventory-common/stock-issue/stock-issue-form/stock-issue-form.component.html"],"sourcesContent":["import { Component, OnInit, signal } from \"@angular/core\";\nimport { FormArray, FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { FormValidatorService, TechlifyFormComponent, TechlifyIconModule } from \"ngx-techlify-core\";\nimport { MaterialModule } from '../../material.module';\nimport { CommonModule, Location } from '@angular/common';\nimport { SearchableSelectorModule } from 'ngx-techlify-core';\nimport { LocationSelectorComponent } from '../../location/location-selector/location-selector.component';\nimport { StockIssueService } from '../stock-issue.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport moment from 'moment';\nimport { LocationService } from '../../location/location.service';\n\n@Component({\n selector: 'app-stock-issue-form',\n templateUrl: './stock-issue-form.component.html',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MaterialModule,\n SearchableSelectorModule,\n LocationSelectorComponent,\n TechlifyIconModule\n ]\n})\n\nexport class StockIssueFormComponent extends TechlifyFormComponent implements OnInit {\n\n locationCount = signal<number>(0);\n stockIssue = signal<any>(null);\n\n constructor(protected override formValidatorService: FormValidatorService,\n private fb: FormBuilder,\n private stockIssueService: StockIssueService,\n private router: Router,\n private route: ActivatedRoute,\n private locationService: LocationService,\n private location: Location\n ) {\n super(formValidatorService);\n\n this.form = this.fb.group({\n date: [new Date(), Validators.compose([Validators.required])],\n particulars: ['', Validators.compose([Validators.required])],\n stock_issue_products: this.fb.array([])\n });\n }\n\n ngOnInit(): void {\n this.locationService.count().subscribe((count: number) => {\n this.locationCount.set(count);\n });\n\n const id = this.route.snapshot.paramMap.get('id');\n if (id) {\n this.loadStockIssue(+id);\n }\n }\n\n private loadStockIssue(id: number): void {\n this.isWorking = true;\n this.stockIssueService.show(id, { with: 'stockIssueProducts.product' }).subscribe({\n next: (response: any) => {\n this.isWorking = false;\n this.stockIssue.set(response.item);\n },\n error: () => {\n this.isWorking = false;\n },\n complete: () => {\n const issue = this.stockIssue();\n this.form.patchValue({\n date: issue.date ? new Date(issue.date) : new Date(),\n particulars: issue.details,\n });\n\n this.stockIssueProducts.clear();\n issue.stock_issue_products?.forEach((sip: any) => {\n const group = this.createStockIssueProduct();\n group.patchValue({\n id: sip.id,\n product_id: sip.product_id,\n location_id: sip.location_id,\n quantity: sip.quantity,\n particulars: sip.particulars,\n });\n this.stockIssueProducts.push(group);\n });\n }\n });\n }\n\n get stockIssueProducts(): FormArray {\n return this.form.get('stock_issue_products') as FormArray;\n }\n\n createStockIssueProduct() {\n return this.fb.group({\n id: [''],\n product_id: ['', Validators.required],\n location_id: ['', this.locationCount() > 0 ? Validators.required : null],\n quantity: [1, [Validators.required, Validators.min(1)]],\n particulars: ['']\n });\n }\n\n addStockIssueProduct() {\n this.stockIssueProducts.push(this.createStockIssueProduct());\n }\n\n removeStockIssueProduct(index: number) {\n this.stockIssueProducts.removeAt(index);\n }\n\n clearProducts() {\n this.stockIssueProducts.clear();\n }\n\n save() {\n if (this.form.invalid) {\n this.form.markAllAsTouched();\n this.form.markAsDirty();\n this.alertService.addAlert('Please check the form for errors.', 'error');\n return;\n }\n\n if (this.stockIssueProducts.length === 0) {\n this.alertService.addAlert('Please add at least one product.', 'error');\n return;\n }\n\n const formData = this.form.getRawValue();\n const data: any = {\n id: this.stockIssue()?.id ?? null,\n date: moment(formData.date).format('YYYY-MM-DD'),\n details: formData.particulars,\n products: formData.stock_issue_products.map((row: any) => ({\n id: row.product_id,\n product_id: row.product_id,\n quantity: row.quantity,\n location_id: row.location_id,\n particulars: row.particulars,\n }))\n };\n\n this.isWorking = true;\n const request$ = this.stockIssue()?.id\n ? this.stockIssueService.update(data)\n : this.stockIssueService.store(data);\n\n request$.subscribe({\n next: () => {\n this.isWorking = false;\n this.alertService.addAlert('Stock issues saved successfully!', 'success');\n this.location.back();\n },\n error: () => {\n this.isWorking = false;\n }\n });\n }\n\n cancel() {\n this.location.back();\n }\n}\n","<mat-card class=\"d-flex flex-column gap-2 container\">\n <mat-card-content>\n\n <div class=\"d-flex flex-column gap-1\">\n <h5>\n <span class=\"material-symbols-outlined align-middle\">upload</span>\n Issue Stock\n </h5>\n </div>\n\n <form class=\"d-flex flex-column gap-2\" [formGroup]=\"form\" (submit)=\"save()\">\n\n <div class=\"d-flex flex-column\">\n <div class=\"d-flex flex-row gap-2 justify-content-between\">\n <mat-form-field appearance='outline' class=\"w-100\">\n <mat-label>Start Date</mat-label>\n <input matInput [matDatepicker]=\"picker\" placeholder=\"Date\" formControlName=\"date\" required>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n <mat-error *ngIf=\"isFieldValid('date')\">{{ getErrorMessage('date') }}</mat-error>\n </mat-form-field>\n\n <mat-form-field appearance='outline' class=\"w-100\">\n <mat-label>Particulars</mat-label>\n <textarea matInput placeholder=\"Particulars\" formControlName=\"particulars\"></textarea>\n <mat-error *ngIf=\"isFieldValid('particulars')\">{{ getErrorMessage('particulars') }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n\n <table class=\"table mt-3\">\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">Product</th>\n <th *ngIf=\"locationCount() > 0\" scope=\"col\">Location</th>\n <th scope=\"col\">Quantity</th>\n <th scope=\"col\">Particulars</th>\n <th scope=\"col\" class=\"text-center\" width=\"50\"></th>\n </tr>\n </thead>\n <tbody formArrayName=\"stock_issue_products\">\n <tr *ngFor=\"let row of stockIssueProducts.controls; let i = index\" [formGroupName]=\"i\">\n <th scope=\"row\">{{ i + 1 }}</th>\n <td>\n <mat-form-field appearance='outline' class=\"w-100\">\n <mat-label>Product</mat-label>\n <app-searchable-selector apiUrl='api/products' formControlName=\"product_id\"\n titleField='name' [cache]=\"true\" required></app-searchable-selector>\n </mat-form-field>\n </td>\n <td *ngIf=\"locationCount() > 0\">\n <app-location-selector appearance='outline'\n formControlName=\"location_id\"></app-location-selector>\n </td>\n <td>\n <mat-form-field appearance='outline' class='fl-sm'>\n <mat-label>Quantity</mat-label>\n <input matInput formControlName=\"quantity\" type=\"number\" min=\"1\">\n </mat-form-field>\n </td>\n <td>\n <mat-form-field appearance='outline'>\n <mat-label>Particulars</mat-label>\n <input matInput formControlName=\"particulars\">\n </mat-form-field>\n </td>\n <td class=\"text-center align-middle\">\n <div class=\"d-flex gap-2 justify-content-center align-items-center text-secondary\">\n <app-techlify-icon role='button' name='delete' (click)=\"removeStockIssueProduct(i)\"\n matTooltip=\"Remove row\"></app-techlify-icon>\n </div>\n </td>\n </tr>\n </tbody>\n <tfoot>\n <tr>\n <td colspan=\"6\" class=\"text-end\">\n <div class=\"d-flex flex-row gap-2 justify-content-end\">\n <button mat-button color=\"primary\" type=\"button\" (click)=\"clearProducts()\"\n [disabled]=\"stockIssueProducts.length === 0\">\n <mat-icon>block</mat-icon> CLEAR ALL\n </button>\n <button mat-raised-button color=\"primary\" type=\"button\"\n (click)=\"addStockIssueProduct()\">\n <mat-icon>add</mat-icon> ADD\n </button>\n </div>\n </td>\n </tr>\n </tfoot>\n </table>\n\n <div class=\"d-flex justify-content-end align-items-center gap-2 mt-2\">\n <button [disabled]=\"isWorking\" mat-flat-button type=\"button\" (click)=\"cancel()\">Cancel</button>\n <button [disabled]=\"isWorking || stockIssueProducts.length === 0\" mat-raised-button color=\"primary\"\n type=\"submit\">Save</button>\n </div>\n\n </form>\n\n </mat-card-content>\n</mat-card>\n"],"names":["i3.StockIssueService","i5.LocationService","i6","i7","i8","i10","i12","i13"],"mappings":";;;;;;;;;;;;;;;;;;;AA0BM,MAAO,uBAAwB,SAAQ,qBAAqB,CAAA;AAK/B,IAAA,oBAAA,CAAA;AACnB,IAAA,EAAA,CAAA;AACA,IAAA,iBAAA,CAAA;AACA,IAAA,MAAA,CAAA;AACA,IAAA,KAAA,CAAA;AACA,IAAA,eAAA,CAAA;AACA,IAAA,QAAA,CAAA;AATZ,IAAA,aAAa,GAAG,MAAM,CAAS,CAAC,CAAC,CAAC;AAClC,IAAA,UAAU,GAAG,MAAM,CAAM,IAAI,CAAC,CAAC;AAE/B,IAAA,WAAA,CAA+B,oBAA0C,EAC7D,EAAe,EACf,iBAAoC,EACpC,MAAc,EACd,KAAqB,EACrB,eAAgC,EAChC,QAAkB,EAAA;QAE1B,KAAK,CAAC,oBAAoB,CAAC,CAAC;QARD,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;QAC7D,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAI1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AACtB,YAAA,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7D,YAAA,WAAW,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5D,oBAAoB,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;AAC1C,SAAA,CAAC,CAAC;KACN;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,KAAa,KAAI;AACrD,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClC,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,EAAE,EAAE;AACJ,YAAA,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;SAC5B;KACJ;AAEO,IAAA,cAAc,CAAC,EAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC,SAAS,CAAC;AAC9E,YAAA,IAAI,EAAE,CAAC,QAAa,KAAI;AACpB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACtC;YACD,KAAK,EAAE,MAAK;AACR,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aAC1B;YACD,QAAQ,EAAE,MAAK;AACX,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAChC,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AACjB,oBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE;oBACpD,WAAW,EAAE,KAAK,CAAC,OAAO;AAC7B,iBAAA,CAAC,CAAC;AAEH,gBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;gBAChC,KAAK,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,GAAQ,KAAI;AAC7C,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC7C,KAAK,CAAC,UAAU,CAAC;wBACb,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,WAAW,EAAE,GAAG,CAAC,WAAW;AAC/B,qBAAA,CAAC,CAAC;AACH,oBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,iBAAC,CAAC,CAAC;aACN;AACJ,SAAA,CAAC,CAAC;KACN;AAED,IAAA,IAAI,kBAAkB,GAAA;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAc,CAAC;KAC7D;IAED,uBAAuB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACjB,EAAE,EAAE,CAAC,EAAE,CAAC;AACR,YAAA,UAAU,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;YACrC,WAAW,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxE,YAAA,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,WAAW,EAAE,CAAC,EAAE,CAAC;AACpB,SAAA,CAAC,CAAC;KACN;IAED,oBAAoB,GAAA;QAChB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;KAChE;AAED,IAAA,uBAAuB,CAAC,KAAa,EAAA;AACjC,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC3C;IAED,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;KACnC;IAED,IAAI,GAAA;AACA,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,mCAAmC,EAAE,OAAO,CAAC,CAAC;YACzE,OAAO;SACV;QAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAC;YACxE,OAAO;SACV;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACzC,QAAA,MAAM,IAAI,GAAQ;YACd,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,IAAI;YACjC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YAChD,OAAO,EAAE,QAAQ,CAAC,WAAW;AAC7B,YAAA,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAQ,MAAM;gBACvD,EAAE,EAAE,GAAG,CAAC,UAAU;gBAClB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;AAC/B,aAAA,CAAC,CAAC;SACN,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE;cAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC;cACnC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzC,QAAQ,CAAC,SAAS,CAAC;YACf,IAAI,EAAE,MAAK;AACP,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,kCAAkC,EAAE,SAAS,CAAC,CAAC;AAC1E,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;aACxB;YACD,KAAK,EAAE,MAAK;AACR,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aAC1B;AACJ,SAAA,CAAC,CAAC;KACN;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACxB;wGA1IQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EC1BpC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,4gLAuGA,EDtFQ,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,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,UAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,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,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,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,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,EACd,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,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,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,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,UAAA,EAAA,IAAA,EAAA,wBAAwB,EACxB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,oBAAA,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,EAAA,yBAAyB,gIACzB,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAIb,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAdnC,SAAS;+BACI,sBAAsB,EAAA,UAAA,EAEpB,IAAI,EACP,OAAA,EAAA;wBACL,YAAY;wBACZ,mBAAmB;wBACnB,cAAc;wBACd,wBAAwB;wBACxB,yBAAyB;wBACzB,kBAAkB;AACrB,qBAAA,EAAA,QAAA,EAAA,4gLAAA,EAAA,CAAA;;;;;"}