techlify-inventory-common 18.48.0 → 18.49.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 (68) hide show
  1. package/esm2022/lib/inventory-common/incident/incident-form/incident-form.component.mjs +2 -2
  2. package/esm2022/lib/inventory-common/incident/incident-list/incident-list.component.mjs +2 -2
  3. package/esm2022/lib/inventory-common/location/location-form/location-form.component.mjs +2 -2
  4. package/esm2022/lib/inventory-common/location/location-status-changer/location-status-changer.component.mjs +1 -1
  5. package/esm2022/lib/inventory-common/location/shelf/shelf-form/shelf-form.component.mjs +1 -1
  6. package/esm2022/lib/inventory-common/location/shelf/shelf-list/shelf-list.component.mjs +2 -2
  7. package/esm2022/lib/inventory-common/product/product-batch-update-form/product-batch-update-form.component.mjs +1 -1
  8. package/esm2022/lib/inventory-common/product/product-form/product-form.component.mjs +1 -1
  9. package/esm2022/lib/inventory-common/product/product-list/product-list.component.mjs +1 -1
  10. package/esm2022/lib/inventory-common/rating/rating-form/rating-form.component.mjs +2 -2
  11. package/esm2022/lib/inventory-common/rating/rating-list/rating-list.component.mjs +2 -2
  12. package/esm2022/lib/inventory-common/reports/inventory-value-report/inventory-value-report.component.mjs +2 -2
  13. package/esm2022/lib/inventory-common/reports/low-stock-report/low-stock-report.component.mjs +2 -2
  14. package/esm2022/lib/inventory-common/reports/stock-issue-summary-report/stock-issue-summary-report.component.mjs +2 -2
  15. package/esm2022/lib/inventory-common/shared.module.mjs +10 -4
  16. package/esm2022/lib/inventory-common/stock-issue/stock-issue-form/stock-issue-form.component.mjs +2 -2
  17. package/esm2022/lib/inventory-common/stock-issue/stock-issue-page/stock-issue-page.component.mjs +1 -1
  18. package/esm2022/lib/inventory-common/stock-issue/stock-issue-product-form/stock-issue-product-form.component.mjs +2 -2
  19. package/esm2022/lib/inventory-common/stock-issue/stock-issue-product-view/stock-issue-product-view.component.mjs +2 -2
  20. package/esm2022/lib/inventory-common/stock-issue/stock-issue-single-product-form/stock-issue-single-product-form.component.mjs +2 -2
  21. package/esm2022/lib/inventory-common/stock-issue/stock-issue-view/stock-issue-view.component.mjs +2 -2
  22. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form.component.mjs +2 -2
  23. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-product-form/stock-receipt-product-form.component.mjs +1 -1
  24. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-product-view/stock-receipt-product-view.component.mjs +2 -2
  25. package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-view/stock-receipt-view.component.mjs +1 -1
  26. package/esm2022/lib/inventory-common/stock-receipts/stock-receipts-page/stock-receipts-page.component.mjs +1 -1
  27. package/esm2022/lib/inventory-common/stock-transfer/stock-transfer-form/stock-transfer-form.component.mjs +2 -2
  28. package/esm2022/lib/inventory-common/stock-transfer/stock-transfer-list/stock-transfer-list.component.mjs +1 -1
  29. package/esm2022/lib/inventory-common/supplier/payee-selector/payee-selector/payee-selector.component.mjs +1 -1
  30. package/esm2022/lib/inventory-common/supplier/purchase-order/purchase-order-form/purchase-order-form.component.mjs +2 -2
  31. package/esm2022/lib/inventory-common/supplier/purchase-order/purchase-order-listing/purchase-order-listing.component.mjs +2 -2
  32. package/esm2022/lib/inventory-common/supplier/purchase-order/purchase-order-product-list/purchase-order-product-form/purchase-order-product-form.component.mjs +1 -1
  33. package/esm2022/lib/inventory-common/supplier/supplier-branches-list/supplier-branches-list.component.mjs +12 -12
  34. package/esm2022/lib/inventory-common/supplier/supplier-form/supplier-form.component.mjs +47 -56
  35. package/esm2022/lib/inventory-common/supplier/supplier-information/supplier-information.component.mjs +1 -1
  36. package/esm2022/lib/inventory-common/supplier/supplier-list/supplier-list.component.mjs +68 -0
  37. package/esm2022/lib/inventory-common/supplier/supplier-routing.module.mjs +3 -3
  38. package/esm2022/lib/inventory-common/supplier/supplier-view/supplier-view.component.mjs +11 -11
  39. package/esm2022/lib/inventory-common/supplier/supplier.module.mjs +10 -45
  40. package/esm2022/lib/inventory-common/techlify-filter/techlify-filter.component.mjs +1 -1
  41. package/esm2022/public-api.mjs +2 -3
  42. package/fesm2022/{techlify-inventory-common-category.module-VjAS4ehQ.mjs → techlify-inventory-common-category.module-BBpgG9L3.mjs} +8 -8
  43. package/fesm2022/{techlify-inventory-common-category.module-VjAS4ehQ.mjs.map → techlify-inventory-common-category.module-BBpgG9L3.mjs.map} +1 -1
  44. package/fesm2022/{techlify-inventory-common-purchase-order-view.component-D5GrUK-m.mjs → techlify-inventory-common-purchase-order-view.component-6qbMJdAs.mjs} +7 -7
  45. package/fesm2022/{techlify-inventory-common-purchase-order-view.component-D5GrUK-m.mjs.map → techlify-inventory-common-purchase-order-view.component-6qbMJdAs.mjs.map} +1 -1
  46. package/fesm2022/{techlify-inventory-common-recipient.module-BnRAWk8N.mjs → techlify-inventory-common-recipient.module-DsYw54Uj.mjs} +7 -7
  47. package/fesm2022/{techlify-inventory-common-recipient.module-BnRAWk8N.mjs.map → techlify-inventory-common-recipient.module-DsYw54Uj.mjs.map} +1 -1
  48. package/fesm2022/{techlify-inventory-common-stock-issue-form.component-B-aNyhLA.mjs → techlify-inventory-common-stock-issue-form.component-C3RoFfcY.mjs} +5 -5
  49. package/fesm2022/{techlify-inventory-common-stock-issue-form.component-B-aNyhLA.mjs.map → techlify-inventory-common-stock-issue-form.component-C3RoFfcY.mjs.map} +1 -1
  50. package/fesm2022/{techlify-inventory-common-stock-issue-product-view.component-BP2yFaQn.mjs → techlify-inventory-common-stock-issue-product-view.component-b_8gpI7x.mjs} +3 -3
  51. package/fesm2022/{techlify-inventory-common-stock-issue-product-view.component-BP2yFaQn.mjs.map → techlify-inventory-common-stock-issue-product-view.component-b_8gpI7x.mjs.map} +1 -1
  52. package/fesm2022/{techlify-inventory-common-stock-issue-view.component-DHdnoIR8.mjs → techlify-inventory-common-stock-issue-view.component-BDOR4X49.mjs} +3 -3
  53. package/fesm2022/{techlify-inventory-common-stock-issue-view.component-DHdnoIR8.mjs.map → techlify-inventory-common-stock-issue-view.component-BDOR4X49.mjs.map} +1 -1
  54. package/fesm2022/{techlify-inventory-common-techlify-inventory-common-DuAN6iqX.mjs → techlify-inventory-common-techlify-inventory-common-Bveawfj2.mjs} +190 -248
  55. package/fesm2022/techlify-inventory-common-techlify-inventory-common-Bveawfj2.mjs.map +1 -0
  56. package/fesm2022/techlify-inventory-common.mjs +1 -1
  57. package/lib/inventory-common/shared.module.d.ts +1 -1
  58. package/lib/inventory-common/stock-receipts/stock-receipts.module.d.ts +1 -1
  59. package/lib/inventory-common/supplier/supplier-form/supplier-form.component.d.ts +13 -12
  60. package/lib/inventory-common/supplier/supplier-list/supplier-list.component.d.ts +20 -0
  61. package/lib/inventory-common/supplier/supplier.module.d.ts +13 -20
  62. package/package.json +1 -1
  63. package/public-api.d.ts +1 -2
  64. package/esm2022/lib/inventory-common/supplier/supplier-form/supplier-form-button/supplier-form-button.component.mjs +0 -43
  65. package/esm2022/lib/inventory-common/supplier/suppliers-list/suppliers-list.component.mjs +0 -59
  66. package/fesm2022/techlify-inventory-common-techlify-inventory-common-DuAN6iqX.mjs.map +0 -1
  67. package/lib/inventory-common/supplier/supplier-form/supplier-form-button/supplier-form-button.component.d.ts +0 -13
  68. package/lib/inventory-common/supplier/suppliers-list/suppliers-list.component.d.ts +0 -15
@@ -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, R as MeasureModule, U 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, y as StockIssueListComponent, u as StockIssueModule, v as StockIssuePageComponent, w as StockIssuePageModule, B as StockIssueProductFormButtonComponent, A as StockIssueProductFormComponent, z as StockIssueProductListComponent, d as StockIssueProductService, x as StockIssueSingleProductFormComponent, E as StockReceiptListComponent, D as StockReceiptPageComponent, K as StockReceiptProductFormButtonComponent, J as StockReceiptProductFormComponent, F as StockReceiptProductsListComponent, G as StockReceiptSingleProductFormComponent, H as StockReceiptViewComponent, C as StockReceiptsModule, g as StockSummaryService, O as StockTransferFormComponent, N as StockTransferListComponent, Q 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-DuAN6iqX.mjs';
1
+ export { a9 as ExportToExcelButtonComponent, a3 as IncidentFormButtonComponent, a2 as IncidentFormComponent, a1 as IncidentListComponent, $ as IncidentModule, a0 as IncidentService, f as InventoryCommonModule, I as InventoryCommonRoutingModule, ad as LocationFormButtonComponent, ac as LocationFormComponent, ab as LocationListComponent, aa as LocationModule, L as LocationService, R as MeasureModule, U as MeasureService, _ as PayeeSelectorComponent, Z 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, a8 as RatingFormButtonComponent, a7 as RatingFormComponent, a6 as RatingListComponent, a4 as RatingModule, a5 as RatingService, ai as ShelfFormButtonComponent, ah as ShelfFormComponent, ag as ShelfListComponent, ae as ShelfModule, af as ShelfService, y as StockIssueListComponent, u as StockIssueModule, v as StockIssuePageComponent, w as StockIssuePageModule, B as StockIssueProductFormButtonComponent, A as StockIssueProductFormComponent, z as StockIssueProductListComponent, d as StockIssueProductService, x as StockIssueSingleProductFormComponent, E as StockReceiptListComponent, D as StockReceiptPageComponent, K as StockReceiptProductFormButtonComponent, J as StockReceiptProductFormComponent, F as StockReceiptProductsListComponent, G as StockReceiptSingleProductFormComponent, H as StockReceiptViewComponent, C as StockReceiptsModule, g as StockSummaryService, O as StockTransferFormComponent, N as StockTransferListComponent, Q as StockTransferService, W as SupplierFormComponent, X as SupplierListComponent, V as SupplierModule, Y as SupplierTypeService, T as TechlifyFilterComponent, a as TechlifyFilterModule } from './techlify-inventory-common-techlify-inventory-common-Bveawfj2.mjs';
2
2
  //# sourceMappingURL=techlify-inventory-common.mjs.map
@@ -8,6 +8,6 @@ import * as i6 from "@angular/forms";
8
8
  import * as i7 from "@angular/router";
9
9
  export declare class SharedModule {
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<SharedModule, never>;
11
- static ɵmod: i0.ɵɵNgModuleDeclaration<SharedModule, never, [typeof i1.TechlifyDeleteButtonComponent, typeof i1.TechlifyFormButtonComponent, typeof i2.InfiniteScrollDirective], [typeof i3.CommonModule, typeof i1.FormConfigurationForFormModule, typeof i2.InfiniteScrollDirective, typeof i4.MaterialModule, typeof i5.NgxPermissionsModule, typeof i6.ReactiveFormsModule, typeof i7.RouterModule, typeof i1.SearchableSelectorModule, typeof i1.TechlifyDeleteButtonComponent, typeof i1.TechlifyFormButtonComponent, typeof i1.TechlifyIconModule, typeof i1.TimelineFilterModule]>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SharedModule, never, [typeof i1.TechlifyDeleteButtonComponent, typeof i1.TechlifyFormButtonComponent, typeof i2.InfiniteScrollDirective], [typeof i1.AuditLogForModelModule, typeof i3.CommonModule, typeof i1.FormConfigurationForFormModule, typeof i2.InfiniteScrollDirective, typeof i4.MaterialModule, typeof i5.NgxPermissionsModule, typeof i1.NoteModule, typeof i6.ReactiveFormsModule, typeof i7.RouterModule, typeof i1.SearchableSelectorModule, typeof i1.TechlifyDeleteButtonComponent, typeof i1.TechlifyFormButtonComponent, typeof i1.TechlifyIconModule, typeof i1.TimelineFilterModule]>;
12
12
  static ɵinj: i0.ɵɵInjectorDeclaration<SharedModule>;
13
13
  }
@@ -17,6 +17,6 @@ import * as i15 from "../shared/export-to-excel-button/export-to-excel-button.co
17
17
  import * as i16 from "./stock-receipt-product-form/stock-receipt-product-form-button/stock-receipt-product-form-button.component";
18
18
  export declare class StockReceiptsModule {
19
19
  static ɵfac: i0.ɵɵFactoryDeclaration<StockReceiptsModule, never>;
20
- static ɵmod: i0.ɵɵNgModuleDeclaration<StockReceiptsModule, [typeof i1.StockReceiptPageComponent, typeof i2.StockReceiptViewComponent, typeof i3.StockReceiptListComponent, typeof i4.StockReceiptProductsListComponent], [typeof i5.CommonModule, typeof i6.MaterialModule, typeof i7.StockReceiptsRoutingModule, typeof i8.TechlifyFilterModule, typeof i9.SearchableSelectorModule, typeof i9.TimelineFilterModule, typeof i10.ReactiveFormsModule, typeof i11.PayeeSelectorModule, typeof i12.InfiniteScrollDirective, typeof i13.ProductCategoryBadgesComponent, typeof i9.ColumnSelectorModule, typeof i9.EntityFilesViewAllModule, typeof i9.TechlifyFeatureModule, typeof i9.NoteModule, typeof i9.TechlifyIconModule, typeof i14.RouterModule, typeof i15.ExportToExcelButtonComponent, typeof i9.TechlifyDeleteButtonComponent, typeof i16.StockReceiptProductFormButtonComponent, typeof i9.TechlifyFormButtonComponent], [typeof i1.StockReceiptPageComponent, typeof i3.StockReceiptListComponent, typeof i4.StockReceiptProductsListComponent]>;
20
+ static ɵmod: i0.ɵɵNgModuleDeclaration<StockReceiptsModule, [typeof i1.StockReceiptPageComponent, typeof i2.StockReceiptViewComponent, typeof i3.StockReceiptListComponent, typeof i4.StockReceiptProductsListComponent], [typeof i5.CommonModule, typeof i6.MaterialModule, typeof i7.StockReceiptsRoutingModule, typeof i8.TechlifyFilterModule, typeof i9.SearchableSelectorModule, typeof i9.TimelineFilterModule, typeof i10.ReactiveFormsModule, typeof i11.PayeeSelectorModule, typeof i12.InfiniteScrollDirective, typeof i13.ProductCategoryBadgesComponent, typeof i9.ColumnSelectorModule, typeof i9.EntityFileListModule, typeof i9.TechlifyFeatureModule, typeof i9.NoteModule, typeof i9.TechlifyIconModule, typeof i14.RouterModule, typeof i15.ExportToExcelButtonComponent, typeof i9.TechlifyDeleteButtonComponent, typeof i16.StockReceiptProductFormButtonComponent, typeof i9.TechlifyFormButtonComponent], [typeof i1.StockReceiptPageComponent, typeof i3.StockReceiptListComponent, typeof i4.StockReceiptProductsListComponent]>;
21
21
  static ɵinj: i0.ɵɵInjectorDeclaration<StockReceiptsModule>;
22
22
  }
@@ -1,24 +1,25 @@
1
- import { SupplierService } from '../supplier.service';
2
1
  import { OnInit } from '@angular/core';
3
2
  import { FormBuilder, FormControl } from '@angular/forms';
4
3
  import { MatDialogRef } from '@angular/material/dialog';
5
- import { NgxSpinnerService } from 'ngx-spinner';
6
- import { ErrorHandlerService, FormValidatorService, TechlifyFormComponent } from 'ngx-techlify-core';
4
+ import { FormValidatorService, TechlifyFormComponent } from 'ngx-techlify-core';
5
+ import { SupplierService } from '../supplier.service';
7
6
  import * as i0 from "@angular/core";
8
7
  export declare class SupplierFormComponent extends TechlifyFormComponent implements OnInit {
8
+ protected formValidatorService: FormValidatorService;
9
9
  private fb;
10
- private spinnerService;
10
+ protected service: SupplierService;
11
11
  dialogRef: MatDialogRef<SupplierFormComponent>;
12
- private errorService;
13
- data: any;
14
- private supplierService;
12
+ data: {
13
+ model?: any;
14
+ };
15
15
  errorMessages: any;
16
- isUpdateMode: boolean;
17
16
  isCreateAnother: FormControl;
18
17
  totalRecordSaved: import("@angular/core").WritableSignal<number>;
19
- constructor(fb: FormBuilder, formValidatorService: FormValidatorService, spinnerService: NgxSpinnerService, dialogRef: MatDialogRef<SupplierFormComponent>, errorService: ErrorHandlerService, data: any, supplierService: SupplierService);
18
+ constructor(formValidatorService: FormValidatorService, fb: FormBuilder, service: SupplierService, dialogRef: MatDialogRef<SupplierFormComponent>, data: {
19
+ model?: any;
20
+ });
20
21
  ngOnInit(): void;
21
- submit(): Promise<void>;
22
- static ɵfac: i0.ɵɵFactoryDeclaration<SupplierFormComponent, never>;
23
- static ɵcmp: i0.ɵɵComponentDeclaration<SupplierFormComponent, "app-supplier-form", never, {}, {}, never, never, false, never>;
22
+ submit(): void;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<SupplierFormComponent, [null, null, null, null, { optional: true; }]>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<SupplierFormComponent, "app-supplier-form", never, {}, {}, never, never, true, never>;
24
25
  }
@@ -0,0 +1,20 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { FormBuilder } from '@angular/forms';
3
+ import { Router } from '@angular/router';
4
+ import { TechlifyListComponent } from 'ngx-techlify-core';
5
+ import { SupplierService } from '../supplier.service';
6
+ import { SupplierFormComponent } from '../supplier-form/supplier-form.component';
7
+ import * as i0 from "@angular/core";
8
+ export declare class SupplierListComponent extends TechlifyListComponent implements OnInit {
9
+ private fb;
10
+ private router;
11
+ protected service: SupplierService;
12
+ supplierForm: import("@angular/core").WritableSignal<typeof SupplierFormComponent>;
13
+ displayedColumns: string[];
14
+ filterFormConfiguration: any;
15
+ constructor(fb: FormBuilder, router: Router, service: SupplierService);
16
+ ngOnInit(): void;
17
+ onSaved(model: any): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<SupplierListComponent, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<SupplierListComponent, "app-supplier-list", never, {}, {}, never, never, false, never>;
20
+ }
@@ -1,27 +1,20 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./supplier.component";
3
3
  import * as i2 from "./supplier-view/supplier-view.component";
4
- import * as i3 from "./suppliers-list/suppliers-list.component";
5
- import * as i4 from "./supplier-form/supplier-form.component";
6
- import * as i5 from "./supplier-information/supplier-information.component";
7
- import * as i6 from "./supplier-branches-list/supplier-branches-list.component";
8
- import * as i7 from "./supplier-branch-form/supplier-branch-form.component";
9
- import * as i8 from "@angular/common";
10
- import * as i9 from "./supplier-routing.module";
11
- import * as i10 from "../material.module";
12
- import * as i11 from "ngx-techlify-core";
13
- import * as i12 from "@angular/flex-layout";
14
- import * as i13 from "@angular/forms";
15
- import * as i14 from "ngx-infinite-scroll";
16
- import * as i15 from "ngx-permissions";
17
- import * as i16 from "./supplier-form/supplier-form-button/supplier-form-button.component";
18
- import * as i17 from "../stock-receipts/stock-receipts.module";
19
- import * as i18 from "../incident/incident-list/incident-list.component";
20
- import * as i19 from "../rating/rating-list/rating-list.component";
21
- import * as i20 from "./supplier-branch-form/supplier-branch-form-button/supplier-branch-form-button.component";
22
- import * as i21 from "./supplier-branch-delete-button/supplier-branch-delete-button.component";
4
+ import * as i3 from "./supplier-list/supplier-list.component";
5
+ import * as i4 from "./supplier-information/supplier-information.component";
6
+ import * as i5 from "./supplier-branches-list/supplier-branches-list.component";
7
+ import * as i6 from "./supplier-branch-form/supplier-branch-form.component";
8
+ import * as i7 from "./supplier-routing.module";
9
+ import * as i8 from "@angular/flex-layout";
10
+ import * as i9 from "../stock-receipts/stock-receipts.module";
11
+ import * as i10 from "../incident/incident-list/incident-list.component";
12
+ import * as i11 from "../rating/rating-list/rating-list.component";
13
+ import * as i12 from "./supplier-branch-form/supplier-branch-form-button/supplier-branch-form-button.component";
14
+ import * as i13 from "./supplier-branch-delete-button/supplier-branch-delete-button.component";
15
+ import * as i14 from "../shared.module";
23
16
  export declare class SupplierModule {
24
17
  static ɵfac: i0.ɵɵFactoryDeclaration<SupplierModule, never>;
25
- static ɵmod: i0.ɵɵNgModuleDeclaration<SupplierModule, [typeof i1.SupplierComponent, typeof i2.SupplierViewComponent, typeof i3.SuppliersListComponent, typeof i4.SupplierFormComponent, typeof i5.SupplierInformationComponent, typeof i6.SupplierBranchesListComponent, typeof i7.SupplierBranchFormComponent], [typeof i8.CommonModule, typeof i9.SupplierRoutingModule, typeof i10.MaterialModule, typeof i11.SearchableSelectorModule, typeof i11.AuditLogForModelModule, typeof i11.NoteModule, typeof i12.FlexModule, typeof i13.ReactiveFormsModule, typeof i14.InfiniteScrollDirective, typeof i15.NgxPermissionsModule, typeof i16.SupplierFormButtonComponent, typeof i17.StockReceiptsModule, typeof i18.IncidentListComponent, typeof i19.RatingListComponent, typeof i20.SupplierBranchFormButtonComponent, typeof i21.SupplierBranchDeleteButtonComponent, typeof i11.TechlifyDeleteButtonComponent], never>;
18
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SupplierModule, [typeof i1.SupplierComponent, typeof i2.SupplierViewComponent, typeof i3.SupplierListComponent, typeof i4.SupplierInformationComponent, typeof i5.SupplierBranchesListComponent, typeof i6.SupplierBranchFormComponent], [typeof i7.SupplierRoutingModule, typeof i8.FlexModule, typeof i9.StockReceiptsModule, typeof i10.IncidentListComponent, typeof i11.RatingListComponent, typeof i12.SupplierBranchFormButtonComponent, typeof i13.SupplierBranchDeleteButtonComponent, typeof i14.SharedModule], never>;
26
19
  static ɵinj: i0.ɵɵInjectorDeclaration<SupplierModule>;
27
20
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "techlify-inventory-common",
3
- "version": "18.48.0",
3
+ "version": "18.49.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.13",
6
6
  "@angular/core": "^18.2.13"
package/public-api.d.ts CHANGED
@@ -39,9 +39,8 @@ export * from './lib/inventory-common/stock-transfer/stock-transfer.service';
39
39
  export * from './lib/inventory-common/measure/measure.module';
40
40
  export * from './lib/inventory-common/measure/measure.service';
41
41
  export * from './lib/inventory-common/supplier/supplier.module';
42
- export * from './lib/inventory-common/supplier/supplier-form/supplier-form-button/supplier-form-button.component';
43
42
  export * from './lib/inventory-common/supplier/supplier-form/supplier-form.component';
44
- export * from './lib/inventory-common/supplier/suppliers-list/suppliers-list.component';
43
+ export * from './lib/inventory-common/supplier/supplier-list/supplier-list.component';
45
44
  export * from './lib/inventory-common/supplier/supplier-type.service';
46
45
  export * from './lib/inventory-common/supplier/payee-selector/payee-selector.module';
47
46
  export * from './lib/inventory-common/supplier/payee-selector/payee-selector/payee-selector.component';
@@ -1,43 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { MaterialModule } from '../../../material.module';
4
- import { SupplierFormComponent } from '../supplier-form.component';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/material/dialog";
7
- import * as i2 from "@angular/material/icon";
8
- export class SupplierFormButtonComponent {
9
- matDialog;
10
- supplier;
11
- onSaved = new EventEmitter();
12
- constructor(matDialog) {
13
- this.matDialog = matDialog;
14
- }
15
- ngOnInit() {
16
- }
17
- openDialog() {
18
- this.matDialog.open(SupplierFormComponent, {
19
- width: '600px',
20
- data: {
21
- details: this.supplier
22
- },
23
- }).afterClosed().subscribe((result) => {
24
- if (result) {
25
- this.onSaved.emit(result);
26
- }
27
- });
28
- }
29
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SupplierFormButtonComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
30
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SupplierFormButtonComponent, isStandalone: true, selector: "app-supplier-form-button", inputs: { supplier: "supplier" }, outputs: { onSaved: "onSaved" }, ngImport: i0, template: "<mat-icon color=\"primary\" class=\"cursor-pointer\" [class.text-secondary]=\"supplier\" (click)=\"openDialog()\">\n {{ supplier ? \"edit\" : \"add\" }}\n</mat-icon>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MaterialModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], preserveWhitespaces: true });
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SupplierFormButtonComponent, decorators: [{
33
- type: Component,
34
- args: [{ selector: 'app-supplier-form-button', standalone: true, imports: [
35
- CommonModule,
36
- MaterialModule
37
- ], template: "<mat-icon color=\"primary\" class=\"cursor-pointer\" [class.text-secondary]=\"supplier\" (click)=\"openDialog()\">\n {{ supplier ? \"edit\" : \"add\" }}\n</mat-icon>" }]
38
- }], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { supplier: [{
39
- type: Input
40
- }], onSaved: [{
41
- type: Output
42
- }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcGxpZXItZm9ybS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vc3VwcGxpZXIvc3VwcGxpZXItZm9ybS9zdXBwbGllci1mb3JtLWJ1dHRvbi9zdXBwbGllci1mb3JtLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9zdXBwbGllci9zdXBwbGllci1mb3JtL3N1cHBsaWVyLWZvcm0tYnV0dG9uL3N1cHBsaWVyLWZvcm0tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQVluRSxNQUFNLE9BQU8sMkJBQTJCO0lBS2xCO0lBSFgsUUFBUSxDQUFLO0lBQ1osT0FBTyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFBO0lBRTlELFlBQW9CLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFBSSxDQUFDO0lBRTdDLFFBQVE7SUFDUixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQ3pDLEtBQUssRUFBRSxPQUFPO1lBQ2QsSUFBSSxFQUFFO2dCQUNKLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUTthQUN2QjtTQUNGLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUN6QyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBckJVLDJCQUEyQjs0RkFBM0IsMkJBQTJCLHVKQ2hCeEMsd0tBRVcseUREVVAsWUFBWSw4QkFDWixjQUFjOzs0RkFHTCwyQkFBMkI7a0JBVnZDLFNBQVM7K0JBQ0UsMEJBQTBCLGNBR3hCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7cUJBQ2Y7OEVBSVEsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vbWF0ZXJpYWwubW9kdWxlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTdXBwbGllckZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9zdXBwbGllci1mb3JtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zdXBwbGllci1mb3JtLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXBwbGllci1mb3JtLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N1cHBsaWVyLWZvcm0tYnV0dG9uLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRlcmlhbE1vZHVsZVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTdXBwbGllckZvcm1CdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHN1cHBsaWVyOiBhbnlcbiAgQE91dHB1dCgpIG9uU2F2ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hdERpYWxvZzogTWF0RGlhbG9nKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIG9wZW5EaWFsb2coKSB7XG4gICAgdGhpcy5tYXREaWFsb2cub3BlbihTdXBwbGllckZvcm1Db21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNjAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICBkZXRhaWxzOiB0aGlzLnN1cHBsaWVyXG4gICAgICB9LFxuICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0aGlzLm9uU2F2ZWQuZW1pdChyZXN1bHQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbn1cbiIsIjxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgW2NsYXNzLnRleHQtc2Vjb25kYXJ5XT1cInN1cHBsaWVyXCIgKGNsaWNrKT1cIm9wZW5EaWFsb2coKVwiPlxuICB7eyBzdXBwbGllciA/IFwiZWRpdFwiIDogXCJhZGRcIiB9fVxuPC9tYXQtaWNvbj4iXX0=
@@ -1,59 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { TechlifyListComponent } from 'ngx-techlify-core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/forms";
5
- import * as i2 from "../supplier.service";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "@angular/router";
8
- import * as i5 from "@angular/material/card";
9
- import * as i6 from "@angular/material/form-field";
10
- import * as i7 from "@angular/material/icon";
11
- import * as i8 from "@angular/material/input";
12
- import * as i9 from "@angular/material/progress-bar";
13
- import * as i10 from "@angular/material/sort";
14
- import * as i11 from "@angular/material/table";
15
- import * as i12 from "@angular/material/tooltip";
16
- import * as i13 from "ngx-techlify-core";
17
- import * as i14 from "ngx-infinite-scroll";
18
- import * as i15 from "ngx-permissions";
19
- import * as i16 from "../supplier-form/supplier-form-button/supplier-form-button.component";
20
- export class SuppliersListComponent extends TechlifyListComponent {
21
- fb;
22
- service;
23
- displayedColumns = [
24
- '#',
25
- 'company_name',
26
- 'type',
27
- 'contact_name',
28
- 'phone',
29
- 'address',
30
- 'email',
31
- 'details',
32
- 'actions',
33
- ];
34
- filterFormConfiguration = {
35
- supplier_type_ids: { multuple: true }
36
- };
37
- constructor(fb, service) {
38
- super();
39
- this.fb = fb;
40
- this.service = service;
41
- this.filterForm = this.fb.group({
42
- search: [''],
43
- supplier_type_ids: [''],
44
- sort_by: ['created_at|desc'],
45
- });
46
- }
47
- ngOnInit() {
48
- this.patchFiltersFromRoute();
49
- this.loadData();
50
- this.listenFilterChanges();
51
- }
52
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SuppliersListComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SupplierService }], target: i0.ɵɵFactoryTarget.Component });
53
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SuppliersListComponent, selector: "app-suppliers-list", usesInheritance: true, ngImport: i0, template: "<mat-card class=\"mb-3\">\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-1\">\n <h3 class=\"mb-0 fw-bold\">Suppliers</h3>\n <app-supplier-form-button class='mt-2' (onSaved)=\"reload()\"></app-supplier-form-button>\n </div>\n <form [formGroup]=\"filterForm\" class=\"d-flex justify-content-end align-items-center gap-2\">\n <mat-form-field>\n <mat-label>Search</mat-label>\n <input matInput placeholder=\"Search Supplier by Name, Phone, Address, Email, Description\"\n formControlName=\"search\" />\n <mat-icon matSuffix>search</mat-icon>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Type</mat-label>\n <app-searchable-selector apiUrl=\"api/supplier-types\" formControlName=\"supplier_type_ids\" [multiple]=\"true\">\n </app-searchable-selector>\n </mat-form-field>\n </form>\n </mat-card-content>\n</mat-card>\n<mat-card>\n <mat-card-content class=\"p-0\">\n <table mat-table #table [dataSource]=\"models\" class=\"w-100 table-hover\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [fromRoot]=\"true\" matSort\n (matSortChange)=\"sortColumn($event)\" aria-describedby=\"Suppliers List\">\n <ng-container matColumnDef=\"#\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = index\">{{ i + 1 }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"company_name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Name</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.company_name }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"type\">\n <th mat-header-cell *matHeaderCellDef>Type</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.type?.title }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"contact_name\">\n <th mat-header-cell *matHeaderCellDef>Contact</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.contact_name }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"phone\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Phone</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.phone }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"address\">\n <th mat-header-cell *matHeaderCellDef>Address</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.address }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Email</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.email }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef>Details</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.details }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef>Actions</th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"text-secondary d-flex align-items-center gap-1\">\n\n <a class=\"text-decoration-none text-secondary\" [routerLink]=\"['/inventory/suppliers', element.id, 'view']\"\n routerLinkActive=\"route-link-active\" *ngxPermissionsOnly=\"['supplier.read']\">\n <mat-icon matTooltip=\"View\">remove_red_eye</mat-icon>\n </a>\n <app-supplier-form-button *ngxPermissionsOnly=\"['supplier.update']\" [supplier]=\"element\"\n (onSaved)=\"reload()\"></app-supplier-form-button>\n <app-techlify-delete-button [service]=\"service\" [model]=\"element\"\n [data]='{title: element?.company_name, type: \"Supplier\"}'\n (deleted)=\"reload()\"></app-techlify-delete-button>\n <app-audit-log-for-model [modelId]=\"element?.id\" modelType=\"Supplier\"\n logView=\"all\"></app-audit-log-for-model>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content" }, { 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.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i10.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i10.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i11.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i11.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i11.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i11.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i11.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i11.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i11.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i11.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i11.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i11.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i13.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", "isEmitInitialEvent", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }, { kind: "component", type: i13.AuditLogForModelComponent, selector: "app-audit-log-for-model", inputs: ["isIconView", "modelType", "modelId", "logView"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i14.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: i15.NgxPermissionsDirective, selector: "[ngxPermissionsOnly],[ngxPermissionsExcept]", inputs: ["ngxPermissionsOnly", "ngxPermissionsOnlyThen", "ngxPermissionsOnlyElse", "ngxPermissionsExcept", "ngxPermissionsExceptElse", "ngxPermissionsExceptThen", "ngxPermissionsThen", "ngxPermissionsElse", "ngxPermissionsOnlyAuthorisedStrategy", "ngxPermissionsOnlyUnauthorisedStrategy", "ngxPermissionsExceptUnauthorisedStrategy", "ngxPermissionsExceptAuthorisedStrategy", "ngxPermissionsUnauthorisedStrategy", "ngxPermissionsAuthorisedStrategy"], outputs: ["permissionsAuthorized", "permissionsUnauthorized"] }, { kind: "component", type: i16.SupplierFormButtonComponent, selector: "app-supplier-form-button", inputs: ["supplier"], outputs: ["onSaved"] }, { kind: "component", type: i13.TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted"] }], preserveWhitespaces: true });
54
- }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SuppliersListComponent, decorators: [{
56
- type: Component,
57
- args: [{ selector: 'app-suppliers-list', template: "<mat-card class=\"mb-3\">\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-1\">\n <h3 class=\"mb-0 fw-bold\">Suppliers</h3>\n <app-supplier-form-button class='mt-2' (onSaved)=\"reload()\"></app-supplier-form-button>\n </div>\n <form [formGroup]=\"filterForm\" class=\"d-flex justify-content-end align-items-center gap-2\">\n <mat-form-field>\n <mat-label>Search</mat-label>\n <input matInput placeholder=\"Search Supplier by Name, Phone, Address, Email, Description\"\n formControlName=\"search\" />\n <mat-icon matSuffix>search</mat-icon>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Type</mat-label>\n <app-searchable-selector apiUrl=\"api/supplier-types\" formControlName=\"supplier_type_ids\" [multiple]=\"true\">\n </app-searchable-selector>\n </mat-form-field>\n </form>\n </mat-card-content>\n</mat-card>\n<mat-card>\n <mat-card-content class=\"p-0\">\n <table mat-table #table [dataSource]=\"models\" class=\"w-100 table-hover\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [fromRoot]=\"true\" matSort\n (matSortChange)=\"sortColumn($event)\" aria-describedby=\"Suppliers List\">\n <ng-container matColumnDef=\"#\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = index\">{{ i + 1 }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"company_name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Name</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.company_name }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"type\">\n <th mat-header-cell *matHeaderCellDef>Type</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.type?.title }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"contact_name\">\n <th mat-header-cell *matHeaderCellDef>Contact</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.contact_name }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"phone\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Phone</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.phone }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"address\">\n <th mat-header-cell *matHeaderCellDef>Address</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.address }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Email</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.email }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef>Details</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.details }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef>Actions</th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"text-secondary d-flex align-items-center gap-1\">\n\n <a class=\"text-decoration-none text-secondary\" [routerLink]=\"['/inventory/suppliers', element.id, 'view']\"\n routerLinkActive=\"route-link-active\" *ngxPermissionsOnly=\"['supplier.read']\">\n <mat-icon matTooltip=\"View\">remove_red_eye</mat-icon>\n </a>\n <app-supplier-form-button *ngxPermissionsOnly=\"['supplier.update']\" [supplier]=\"element\"\n (onSaved)=\"reload()\"></app-supplier-form-button>\n <app-techlify-delete-button [service]=\"service\" [model]=\"element\"\n [data]='{title: element?.company_name, type: \"Supplier\"}'\n (deleted)=\"reload()\"></app-techlify-delete-button>\n <app-audit-log-for-model [modelId]=\"element?.id\" modelType=\"Supplier\"\n logView=\"all\"></app-audit-log-for-model>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>" }]
58
- }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.SupplierService }] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcGxpZXJzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vc3VwcGxpZXIvc3VwcGxpZXJzLWxpc3Qvc3VwcGxpZXJzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vc3VwcGxpZXIvc3VwcGxpZXJzLWxpc3Qvc3VwcGxpZXJzLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTzFELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxxQkFBcUI7SUFtQnJEO0lBQ1c7SUFsQnJCLGdCQUFnQixHQUFhO1FBQzNCLEdBQUc7UUFDSCxjQUFjO1FBQ2QsTUFBTTtRQUNOLGNBQWM7UUFDZCxPQUFPO1FBQ1AsU0FBUztRQUNULE9BQU87UUFDUCxTQUFTO1FBQ1QsU0FBUztLQUNWLENBQUM7SUFFTyx1QkFBdUIsR0FBUTtRQUN0QyxpQkFBaUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7S0FDdEMsQ0FBQztJQUVGLFlBQ1UsRUFBZSxFQUNKLE9BQXdCO1FBRTNDLEtBQUssRUFBRSxDQUFDO1FBSEEsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNKLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBSTNDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDOUIsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ1osaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkIsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQzt3R0FuQ1Usc0JBQXNCOzRGQUF0QixzQkFBc0IsaUZDVG5DLDAvSUFrR1c7OzRGRHpGRSxzQkFBc0I7a0JBSmxDLFNBQVM7K0JBQ0Usb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGVjaGxpZnlMaXN0Q29tcG9uZW50IH0gZnJvbSAnbmd4LXRlY2hsaWZ5LWNvcmUnO1xuaW1wb3J0IHsgU3VwcGxpZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc3VwcGxpZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zdXBwbGllcnMtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXBwbGllcnMtbGlzdC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFN1cHBsaWVyc0xpc3RDb21wb25lbnQgZXh0ZW5kcyBUZWNobGlmeUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW1xuICAgICcjJyxcbiAgICAnY29tcGFueV9uYW1lJyxcbiAgICAndHlwZScsXG4gICAgJ2NvbnRhY3RfbmFtZScsXG4gICAgJ3Bob25lJyxcbiAgICAnYWRkcmVzcycsXG4gICAgJ2VtYWlsJyxcbiAgICAnZGV0YWlscycsXG4gICAgJ2FjdGlvbnMnLFxuICBdO1xuXG4gIG92ZXJyaWRlIGZpbHRlckZvcm1Db25maWd1cmF0aW9uOiBhbnkgPSB7XG4gICAgc3VwcGxpZXJfdHlwZV9pZHM6IHsgbXVsdHVwbGU6IHRydWUgfVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzZXJ2aWNlOiBTdXBwbGllclNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmZpbHRlckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHNlYXJjaDogWycnXSxcbiAgICAgIHN1cHBsaWVyX3R5cGVfaWRzOiBbJyddLFxuICAgICAgc29ydF9ieTogWydjcmVhdGVkX2F0fGRlc2MnXSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucGF0Y2hGaWx0ZXJzRnJvbVJvdXRlKCk7XG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgIHRoaXMubGlzdGVuRmlsdGVyQ2hhbmdlcygpO1xuICB9XG59XG4iLCI8bWF0LWNhcmQgY2xhc3M9XCJtYi0zXCI+XG4gIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMVwiPlxuICAgICAgPGgzIGNsYXNzPVwibWItMCBmdy1ib2xkXCI+U3VwcGxpZXJzPC9oMz5cbiAgICAgIDxhcHAtc3VwcGxpZXItZm9ybS1idXR0b24gY2xhc3M9J210LTInIChvblNhdmVkKT1cInJlbG9hZCgpXCI+PC9hcHAtc3VwcGxpZXItZm9ybS1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtXCIgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1sYWJlbD5TZWFyY2g8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiU2VhcmNoIFN1cHBsaWVyIGJ5IE5hbWUsIFBob25lLCBBZGRyZXNzLCBFbWFpbCwgRGVzY3JpcHRpb25cIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlYXJjaFwiIC8+XG4gICAgICAgIDxtYXQtaWNvbiBtYXRTdWZmaXg+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtbGFiZWw+VHlwZTwvbWF0LWxhYmVsPlxuICAgICAgICA8YXBwLXNlYXJjaGFibGUtc2VsZWN0b3IgYXBpVXJsPVwiYXBpL3N1cHBsaWVyLXR5cGVzXCIgZm9ybUNvbnRyb2xOYW1lPVwic3VwcGxpZXJfdHlwZV9pZHNcIiBbbXVsdGlwbGVdPVwidHJ1ZVwiPlxuICAgICAgICA8L2FwcC1zZWFyY2hhYmxlLXNlbGVjdG9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Zvcm0+XG4gIDwvbWF0LWNhcmQtY29udGVudD5cbjwvbWF0LWNhcmQ+XG48bWF0LWNhcmQ+XG4gIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwicC0wXCI+XG4gICAgPHRhYmxlIG1hdC10YWJsZSAjdGFibGUgW2RhdGFTb3VyY2VdPVwibW9kZWxzXCIgY2xhc3M9XCJ3LTEwMCB0YWJsZS1ob3ZlclwiIGluZmluaXRlU2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjJcIlxuICAgICAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIiAoc2Nyb2xsZWQpPVwib25TY3JvbGwoKVwiIFtmcm9tUm9vdF09XCJ0cnVlXCIgbWF0U29ydFxuICAgICAgKG1hdFNvcnRDaGFuZ2UpPVwic29ydENvbHVtbigkZXZlbnQpXCIgYXJpYS1kZXNjcmliZWRieT1cIlN1cHBsaWVycyBMaXN0XCI+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIiNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4jPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7IGxldCBpID0gaW5kZXhcIj57eyBpICsgMSB9fTwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjb21wYW55X25hbWVcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+TmFtZTwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAge3sgZWxlbWVudD8uY29tcGFueV9uYW1lIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ0eXBlXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+VHlwZTwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAge3sgZWxlbWVudD8udHlwZT8udGl0bGUgfX1cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNvbnRhY3RfbmFtZVwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPkNvbnRhY3Q8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgIHt7IGVsZW1lbnQ/LmNvbnRhY3RfbmFtZSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicGhvbmVcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+UGhvbmU8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnQ/LnBob25lIH19PC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFkZHJlc3NcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5BZGRyZXNzPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57eyBlbGVtZW50Py5hZGRyZXNzIH19PC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImVtYWlsXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPkVtYWlsPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57eyBlbGVtZW50Py5lbWFpbCB9fTwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJkZXRhaWxzXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+RGV0YWlsczwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3sgZWxlbWVudD8uZGV0YWlscyB9fTwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+QWN0aW9uczwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTFcIj5cblxuICAgICAgICAgICAgPGEgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tbm9uZSB0ZXh0LXNlY29uZGFyeVwiIFtyb3V0ZXJMaW5rXT1cIlsnL2ludmVudG9yeS9zdXBwbGllcnMnLCBlbGVtZW50LmlkLCAndmlldyddXCJcbiAgICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cInJvdXRlLWxpbmstYWN0aXZlXCIgKm5neFBlcm1pc3Npb25zT25seT1cIlsnc3VwcGxpZXIucmVhZCddXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRUb29sdGlwPVwiVmlld1wiPnJlbW92ZV9yZWRfZXllPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDxhcHAtc3VwcGxpZXItZm9ybS1idXR0b24gKm5neFBlcm1pc3Npb25zT25seT1cIlsnc3VwcGxpZXIudXBkYXRlJ11cIiBbc3VwcGxpZXJdPVwiZWxlbWVudFwiXG4gICAgICAgICAgICAgIChvblNhdmVkKT1cInJlbG9hZCgpXCI+PC9hcHAtc3VwcGxpZXItZm9ybS1idXR0b24+XG4gICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24gW3NlcnZpY2VdPVwic2VydmljZVwiIFttb2RlbF09XCJlbGVtZW50XCJcbiAgICAgICAgICAgICAgW2RhdGFdPSd7dGl0bGU6IGVsZW1lbnQ/LmNvbXBhbnlfbmFtZSwgdHlwZTogXCJTdXBwbGllclwifSdcbiAgICAgICAgICAgICAgKGRlbGV0ZWQpPVwicmVsb2FkKClcIj48L2FwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uPlxuICAgICAgICAgICAgPGFwcC1hdWRpdC1sb2ctZm9yLW1vZGVsIFttb2RlbElkXT1cImVsZW1lbnQ/LmlkXCIgbW9kZWxUeXBlPVwiU3VwcGxpZXJcIlxuICAgICAgICAgICAgICBsb2dWaWV3PVwiYWxsXCI+PC9hcHAtYXVkaXQtbG9nLWZvci1tb2RlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnM7IHN0aWNreTogdHJ1ZVwiPjwvdHI+XG4gICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgPC90YWJsZT5cblxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgKm5nSWY9XCJpc1dvcmtpbmdcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gIDwvbWF0LWNhcmQtY29udGVudD5cbjwvbWF0LWNhcmQ+Il19