techlify-inventory-common 18.45.0 → 18.47.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.
- package/esm2022/lib/inventory-common/measure/measure-list/measure-list.component.mjs +75 -0
- package/esm2022/lib/inventory-common/measure/measure-routing.module.mjs +3 -3
- package/esm2022/lib/inventory-common/measure/measure.module.mjs +4 -4
- package/esm2022/lib/inventory-common/reports/stock-issue-summary-report/stock-issue-summary-report.component.mjs +7 -5
- package/esm2022/lib/inventory-common/stock-allocation/stock-allocation-list/stock-allocation-list.component.mjs +81 -0
- package/esm2022/lib/inventory-common/stock-allocation/stock-allocation.service.mjs +16 -0
- package/esm2022/lib/inventory-common/stock-issue/stock-issue-product-view/stock-issue-product-view.component.mjs +59 -0
- package/esm2022/lib/inventory-common/stock-issue/stock-issue-products-list/stock-issue-products-list.component.mjs +3 -3
- package/esm2022/lib/inventory-common/stock-issue/stock-issue-routing.module.mjs +6 -1
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-product-list/stock-receipt-product-list.component.mjs +3 -3
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-product-view/stock-receipt-product-view.component.mjs +59 -0
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipts-routing.module.mjs +6 -1
- package/fesm2022/{techlify-inventory-common-category.module-D1l7dua9.mjs → techlify-inventory-common-category.module-BL0mKMMU.mjs} +11 -11
- package/fesm2022/{techlify-inventory-common-category.module-D1l7dua9.mjs.map → techlify-inventory-common-category.module-BL0mKMMU.mjs.map} +1 -1
- package/fesm2022/{techlify-inventory-common-purchase-order-view.component-Bumakb5M.mjs → techlify-inventory-common-purchase-order-view.component-BDdTC81P.mjs} +8 -8
- package/fesm2022/{techlify-inventory-common-purchase-order-view.component-Bumakb5M.mjs.map → techlify-inventory-common-purchase-order-view.component-BDdTC81P.mjs.map} +1 -1
- package/fesm2022/{techlify-inventory-common-stock-issue-form.component-BeTQ9t-g.mjs → techlify-inventory-common-stock-issue-form.component-B-5myP-N.mjs} +7 -7
- package/fesm2022/{techlify-inventory-common-stock-issue-form.component-BeTQ9t-g.mjs.map → techlify-inventory-common-stock-issue-form.component-B-5myP-N.mjs.map} +1 -1
- package/fesm2022/techlify-inventory-common-stock-issue-product-view.component-Di1fJWqD.mjs +60 -0
- package/fesm2022/techlify-inventory-common-stock-issue-product-view.component-Di1fJWqD.mjs.map +1 -0
- package/fesm2022/{techlify-inventory-common-stock-issue-view.component--rs8hgm5.mjs → techlify-inventory-common-stock-issue-view.component-DfntkifG.mjs} +9 -9
- package/fesm2022/{techlify-inventory-common-stock-issue-view.component--rs8hgm5.mjs.map → techlify-inventory-common-stock-issue-view.component-DfntkifG.mjs.map} +1 -1
- package/fesm2022/{techlify-inventory-common-techlify-inventory-common-dhFANY2r.mjs → techlify-inventory-common-techlify-inventory-common-BbtWdC-G.mjs} +349 -213
- package/fesm2022/techlify-inventory-common-techlify-inventory-common-BbtWdC-G.mjs.map +1 -0
- package/fesm2022/techlify-inventory-common.mjs +1 -1
- package/lib/inventory-common/measure/{measures-list/measures-list.component.d.ts → measure-list/measure-list.component.d.ts} +3 -3
- package/lib/inventory-common/measure/measure.module.d.ts +2 -2
- package/lib/inventory-common/reports/stock-issue-summary-report/stock-issue-summary-report.component.d.ts +1 -0
- package/lib/inventory-common/stock-allocation/stock-allocation-list/stock-allocation-list.component.d.ts +19 -0
- package/lib/inventory-common/stock-allocation/stock-allocation.service.d.ts +7 -0
- package/lib/inventory-common/stock-issue/stock-issue-product-view/stock-issue-product-view.component.d.ts +19 -0
- package/lib/inventory-common/stock-receipts/stock-receipt-product-view/stock-receipt-product-view.component.d.ts +19 -0
- package/package.json +1 -1
- package/esm2022/lib/inventory-common/measure/measures-list/measures-list.component.mjs +0 -75
- package/fesm2022/techlify-inventory-common-techlify-inventory-common-dhFANY2r.mjs.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
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, c 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-BbtWdC-G.mjs';
|
|
2
2
|
//# sourceMappingURL=techlify-inventory-common.mjs.map
|
|
@@ -5,7 +5,7 @@ import { MeasureService } from '../measure.service';
|
|
|
5
5
|
import { Sort } from '@angular/material/sort';
|
|
6
6
|
import { MeasureFormComponent } from '../measure-form/measure-form.component';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
export declare class
|
|
8
|
+
export declare class MeasureListComponent extends TechlifyListComponent implements OnInit {
|
|
9
9
|
private formBuilder;
|
|
10
10
|
protected service: MeasureService;
|
|
11
11
|
measureForm: import("@angular/core").WritableSignal<typeof MeasureFormComponent>;
|
|
@@ -14,6 +14,6 @@ export declare class MeasuresListComponent extends TechlifyListComponent impleme
|
|
|
14
14
|
ngOnInit(): void;
|
|
15
15
|
loadData(): void;
|
|
16
16
|
onSortChange(sort: Sort): void;
|
|
17
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
18
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MeasureListComponent, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MeasureListComponent, "app-measure-list", never, {}, {}, never, never, false, never>;
|
|
19
19
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./
|
|
2
|
+
import * as i1 from "./measure-list/measure-list.component";
|
|
3
3
|
import * as i2 from "@angular/common";
|
|
4
4
|
import * as i3 from "./measure-routing.module";
|
|
5
5
|
import * as i4 from "ngx-techlify-core";
|
|
@@ -9,6 +9,6 @@ import * as i7 from "ngx-infinite-scroll";
|
|
|
9
9
|
import * as i8 from "@angular/material/progress-bar";
|
|
10
10
|
export declare class MeasureModule {
|
|
11
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<MeasureModule, never>;
|
|
12
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<MeasureModule, [typeof i1.
|
|
12
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<MeasureModule, [typeof i1.MeasureListComponent], [typeof i2.CommonModule, typeof i3.MeasureRoutingModule, typeof i4.MaterialModule, typeof i5.SharedModule, typeof i6.TechlifyFilterModule, typeof i7.InfiniteScrollModule, typeof i8.MatProgressBarModule], never>;
|
|
13
13
|
static ɵinj: i0.ɵɵInjectorDeclaration<MeasureModule>;
|
|
14
14
|
}
|
|
@@ -8,6 +8,7 @@ interface LocationGroup {
|
|
|
8
8
|
models: any[];
|
|
9
9
|
grand_total_quantity: number;
|
|
10
10
|
grand_total_avco: number;
|
|
11
|
+
grand_total_fifo_value: number;
|
|
11
12
|
}
|
|
12
13
|
export declare class StockIssueSummaryReportComponent extends TechlifyListComponent implements OnInit {
|
|
13
14
|
protected service: StockIssueProductDataService;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { FormBuilder } from '@angular/forms';
|
|
3
|
+
import { ColumnConfig, TechlifyListComponent } from 'ngx-techlify-core';
|
|
4
|
+
import { StockAllocationService } from '../stock-allocation.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class StockAllocationListComponent extends TechlifyListComponent implements OnInit {
|
|
7
|
+
protected service: StockAllocationService;
|
|
8
|
+
private formBuilder;
|
|
9
|
+
stockIssueProductId: import("@angular/core").InputSignal<number | null>;
|
|
10
|
+
stockReceiptProductId: import("@angular/core").InputSignal<number | null>;
|
|
11
|
+
selectedColumns: import("@angular/core").ModelSignal<ColumnConfig[]>;
|
|
12
|
+
columnConfig: ColumnConfig[];
|
|
13
|
+
get displayedColumns(): string[];
|
|
14
|
+
constructor(service: StockAllocationService, formBuilder: FormBuilder);
|
|
15
|
+
ngOnInit(): void;
|
|
16
|
+
loadData(): void;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StockAllocationListComponent, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StockAllocationListComponent, "app-stock-allocation-list", never, { "stockIssueProductId": { "alias": "stockIssueProductId"; "required": false; "isSignal": true; }; "stockReceiptProductId": { "alias": "stockReceiptProductId"; "required": false; "isSignal": true; }; "selectedColumns": { "alias": "selectedColumns"; "required": false; "isSignal": true; }; }, { "selectedColumns": "selectedColumnsChange"; }, never, never, true, never>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { HttpService, TechlifyService } from 'ngx-techlify-core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class StockAllocationService extends TechlifyService {
|
|
4
|
+
constructor(httpService: HttpService);
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StockAllocationService, never>;
|
|
6
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<StockAllocationService>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { Location } from '@angular/common';
|
|
3
|
+
import { ActivatedRoute } from '@angular/router';
|
|
4
|
+
import { StockIssueProductService } from '../stock-issue-product.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class StockIssueProductViewComponent implements OnInit {
|
|
7
|
+
private activatedRoute;
|
|
8
|
+
protected service: StockIssueProductService;
|
|
9
|
+
private location;
|
|
10
|
+
id: number;
|
|
11
|
+
isLoading: boolean;
|
|
12
|
+
model: any;
|
|
13
|
+
constructor(activatedRoute: ActivatedRoute, service: StockIssueProductService, location: Location);
|
|
14
|
+
ngOnInit(): void;
|
|
15
|
+
loadData(): void;
|
|
16
|
+
redirectBack(): void;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StockIssueProductViewComponent, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StockIssueProductViewComponent, "app-stock-issue-product-view", never, {}, {}, never, never, true, never>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { Location } from '@angular/common';
|
|
3
|
+
import { ActivatedRoute } from '@angular/router';
|
|
4
|
+
import { StockReceiptProductService } from '../stock-receipt-product.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class StockReceiptProductViewComponent implements OnInit {
|
|
7
|
+
private activatedRoute;
|
|
8
|
+
protected service: StockReceiptProductService;
|
|
9
|
+
private location;
|
|
10
|
+
id: number;
|
|
11
|
+
isLoading: boolean;
|
|
12
|
+
model: any;
|
|
13
|
+
constructor(activatedRoute: ActivatedRoute, service: StockReceiptProductService, location: Location);
|
|
14
|
+
ngOnInit(): void;
|
|
15
|
+
loadData(): void;
|
|
16
|
+
redirectBack(): void;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StockReceiptProductViewComponent, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StockReceiptProductViewComponent, "app-stock-receipt-product-view", never, {}, {}, never, never, true, never>;
|
|
19
|
+
}
|
package/package.json
CHANGED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { Component, signal } from '@angular/core';
|
|
2
|
-
import { TechlifyListComponent } from 'ngx-techlify-core';
|
|
3
|
-
import { MeasureFormComponent } from '../measure-form/measure-form.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/forms";
|
|
6
|
-
import * as i2 from "../measure.service";
|
|
7
|
-
import * as i3 from "@angular/common";
|
|
8
|
-
import * as i4 from "@angular/router";
|
|
9
|
-
import * as i5 from "@angular/material/sort";
|
|
10
|
-
import * as i6 from "@angular/material/table";
|
|
11
|
-
import * as i7 from "@angular/material/card";
|
|
12
|
-
import * as i8 from "@angular/material/progress-bar";
|
|
13
|
-
import * as i9 from "ngx-infinite-scroll";
|
|
14
|
-
import * as i10 from "ngx-techlify-core";
|
|
15
|
-
import * as i11 from "../../techlify-filter/techlify-filter.component";
|
|
16
|
-
export class MeasuresListComponent extends TechlifyListComponent {
|
|
17
|
-
formBuilder;
|
|
18
|
-
service;
|
|
19
|
-
measureForm = signal(MeasureFormComponent);
|
|
20
|
-
displayedColumns = [
|
|
21
|
-
'no',
|
|
22
|
-
'title',
|
|
23
|
-
'products',
|
|
24
|
-
'quantity_measure',
|
|
25
|
-
'description',
|
|
26
|
-
'actions'
|
|
27
|
-
];
|
|
28
|
-
constructor(formBuilder, service) {
|
|
29
|
-
super();
|
|
30
|
-
this.formBuilder = formBuilder;
|
|
31
|
-
this.service = service;
|
|
32
|
-
this.filterForm = this.formBuilder.group({
|
|
33
|
-
search: [''],
|
|
34
|
-
sort_by: ['created_at|desc'],
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
ngOnInit() {
|
|
38
|
-
this.loadData();
|
|
39
|
-
}
|
|
40
|
-
loadData() {
|
|
41
|
-
const params = {
|
|
42
|
-
page: this.page,
|
|
43
|
-
perPage: this.perPage,
|
|
44
|
-
withCount: 'products',
|
|
45
|
-
...this.filterForm.value,
|
|
46
|
-
};
|
|
47
|
-
this.isWorking = true;
|
|
48
|
-
this.service.index(params).subscribe({
|
|
49
|
-
next: (response) => {
|
|
50
|
-
this.isWorking = false;
|
|
51
|
-
this.models = this.models.concat(response?.data);
|
|
52
|
-
this.lastPage = response?.last_page;
|
|
53
|
-
},
|
|
54
|
-
error: () => (this.isWorking = false),
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
onSortChange(sort) {
|
|
58
|
-
let { active, direction } = sort;
|
|
59
|
-
if (!active) {
|
|
60
|
-
active = 'created_at';
|
|
61
|
-
}
|
|
62
|
-
if (!direction) {
|
|
63
|
-
direction = 'desc';
|
|
64
|
-
active = 'created_at';
|
|
65
|
-
}
|
|
66
|
-
this.filterForm.get('sort_by').setValue(active + '|' + direction);
|
|
67
|
-
}
|
|
68
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MeasuresListComponent, deps: [{ token: i1.FormBuilder }, { token: i2.MeasureService }], target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MeasuresListComponent, selector: "app-measure-list", usesInheritance: true, ngImport: i0, template: "<mat-card class=\"mb-2\">\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-center align-items-center gap-2\">\n <h3 class=\"mb-0\">Measures</h3>\n <app-techlify-form-button [component]=\"measureForm()\" [width]=\"'500px'\"\n (saved)=\"reload()\"></app-techlify-form-button>\n </div>\n <app-techlify-filter [filterForm]=\"filterForm\" (filterUpdated)=\"reload()\"></app-techlify-filter>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"p-0\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\" aria-describedby=\"Service Centers\" infiniteScroll\n [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" matSort\n (matSortChange)=\"onSortChange($event)\">\n <!-- # Column -->\n <ng-container matColumnDef=\"no\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = index\">{{ i + 1 }}</td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Title</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.title }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"products\">\n <th mat-header-cell *matHeaderCellDef>Products</th>\n <td mat-cell *matCellDef=\"let element\">\n <a\n class=\"cursor-pointer text-dark text-decoration-none\"\n [routerLink]=\"['/inventory/products']\"\n [queryParams]=\"{ measure_ids: element.id }\"\n >\n {{ element?.products_count }} products\n </a>\n </td>\n </ng-container>\n\n <!-- Quantity Measure Column -->\n <ng-container matColumnDef=\"quantity_measure\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Quantity Measure</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.quantity_measure }}\n </td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef>Description</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.description }}</td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef>Actions</th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <app-techlify-form-button [component]=\"measureForm()\" [model]=\"element\" [width]=\"'500px'\"\n (saved)=\"reload()\" *ngIf=\"element?.client_id\"></app-techlify-form-button>\n <app-techlify-delete-button [service]=\"service\" [model]=\"element\"\n [data]=\"{ type: 'Measure', title: element?.title }\" (deleted)=\"reload()\"\n *ngIf=\"element?.client_id && element?.products_count == 0\"></app-techlify-delete-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n", styles: [""], 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: i5.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i5.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i6.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i6.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i6.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i6.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i6.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i6.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i6.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i6.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i6.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i6.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i8.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i9.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i10.TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted"] }, { kind: "component", type: i10.TechlifyFormButtonComponent, selector: "app-techlify-form-button", inputs: ["component", "model", "data", "width"], outputs: ["saved"] }, { kind: "component", type: i11.TechlifyFilterComponent, selector: "app-techlify-filter", inputs: ["filterForm", "filterConfig"], outputs: ["filterUpdated"] }], preserveWhitespaces: true });
|
|
70
|
-
}
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MeasuresListComponent, decorators: [{
|
|
72
|
-
type: Component,
|
|
73
|
-
args: [{ selector: 'app-measure-list', template: "<mat-card class=\"mb-2\">\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-center align-items-center gap-2\">\n <h3 class=\"mb-0\">Measures</h3>\n <app-techlify-form-button [component]=\"measureForm()\" [width]=\"'500px'\"\n (saved)=\"reload()\"></app-techlify-form-button>\n </div>\n <app-techlify-filter [filterForm]=\"filterForm\" (filterUpdated)=\"reload()\"></app-techlify-filter>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"p-0\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\" aria-describedby=\"Service Centers\" infiniteScroll\n [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" matSort\n (matSortChange)=\"onSortChange($event)\">\n <!-- # Column -->\n <ng-container matColumnDef=\"no\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = index\">{{ i + 1 }}</td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Title</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.title }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"products\">\n <th mat-header-cell *matHeaderCellDef>Products</th>\n <td mat-cell *matCellDef=\"let element\">\n <a\n class=\"cursor-pointer text-dark text-decoration-none\"\n [routerLink]=\"['/inventory/products']\"\n [queryParams]=\"{ measure_ids: element.id }\"\n >\n {{ element?.products_count }} products\n </a>\n </td>\n </ng-container>\n\n <!-- Quantity Measure Column -->\n <ng-container matColumnDef=\"quantity_measure\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Quantity Measure</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.quantity_measure }}\n </td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef>Description</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.description }}</td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef>Actions</th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <app-techlify-form-button [component]=\"measureForm()\" [model]=\"element\" [width]=\"'500px'\"\n (saved)=\"reload()\" *ngIf=\"element?.client_id\"></app-techlify-form-button>\n <app-techlify-delete-button [service]=\"service\" [model]=\"element\"\n [data]=\"{ type: 'Measure', title: element?.title }\" (deleted)=\"reload()\"\n *ngIf=\"element?.client_id && element?.products_count == 0\"></app-techlify-delete-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n" }]
|
|
74
|
-
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.MeasureService }] });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhc3VyZXMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9tZWFzdXJlL21lYXN1cmVzLWxpc3QvbWVhc3VyZXMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9tZWFzdXJlL21lYXN1cmVzLWxpc3QvbWVhc3VyZXMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU85RSxNQUFNLE9BQU8scUJBQXNCLFNBQVEscUJBQXFCO0lBWTFDO0lBQTZDO0lBWGpFLFdBQVcsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUUzQyxnQkFBZ0IsR0FBYTtRQUMzQixJQUFJO1FBQ0osT0FBTztRQUNQLFVBQVU7UUFDVixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLFNBQVM7S0FDVixDQUFDO0lBRUYsWUFBb0IsV0FBd0IsRUFBcUIsT0FBdUI7UUFDdEYsS0FBSyxFQUFFLENBQUM7UUFEVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFxQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUV0RixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNaLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFUSxRQUFRO1FBQ2YsTUFBTSxNQUFNLEdBQVE7WUFDbEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLO1NBQ3pCLENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDbkMsSUFBSSxFQUFFLENBQUMsUUFBYSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLEVBQUUsU0FBUyxDQUFDO1lBQ3RDLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUN0QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVU7UUFDckIsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxHQUFHLFlBQVksQ0FBQztRQUN4QixDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsU0FBUyxHQUFHLE1BQU0sQ0FBQztZQUNuQixNQUFNLEdBQUcsWUFBWSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUNwRSxDQUFDO3dHQXBEVSxxQkFBcUI7NEZBQXJCLHFCQUFxQiwrRUNabEMsKzVHQThFQTs7NEZEbEVhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRlY2hsaWZ5TGlzdENvbXBvbmVudCB9IGZyb20gJ25neC10ZWNobGlmeS1jb3JlJztcbmltcG9ydCB7IE1lYXN1cmVTZXJ2aWNlIH0gZnJvbSAnLi4vbWVhc3VyZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1lYXN1cmVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vbWVhc3VyZS1mb3JtL21lYXN1cmUtZm9ybS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbWVhc3VyZS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lYXN1cmVzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZWFzdXJlcy1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1lYXN1cmVzTGlzdENvbXBvbmVudCBleHRlbmRzIFRlY2hsaWZ5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG1lYXN1cmVGb3JtID0gc2lnbmFsKE1lYXN1cmVGb3JtQ29tcG9uZW50KTtcblxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtcbiAgICAnbm8nLFxuICAgICd0aXRsZScsXG4gICAgJ3Byb2R1Y3RzJyxcbiAgICAncXVhbnRpdHlfbWVhc3VyZScsXG4gICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAnYWN0aW9ucydcbiAgXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgcHJvdGVjdGVkIG92ZXJyaWRlIHNlcnZpY2U6IE1lYXN1cmVTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmZpbHRlckZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIHNlYXJjaDogWycnXSxcbiAgICAgIHNvcnRfYnk6IFsnY3JlYXRlZF9hdHxkZXNjJ10sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gIH1cblxuICBvdmVycmlkZSBsb2FkRGF0YSgpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJhbXM6IGFueSA9IHtcbiAgICAgIHBhZ2U6IHRoaXMucGFnZSxcbiAgICAgIHBlclBhZ2U6IHRoaXMucGVyUGFnZSxcbiAgICAgIHdpdGhDb3VudDogJ3Byb2R1Y3RzJyxcbiAgICAgIC4uLnRoaXMuZmlsdGVyRm9ybS52YWx1ZSxcbiAgICB9O1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNlcnZpY2UuaW5kZXgocGFyYW1zKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tb2RlbHMgPSB0aGlzLm1vZGVscy5jb25jYXQocmVzcG9uc2U/LmRhdGEpO1xuICAgICAgICB0aGlzLmxhc3RQYWdlID0gcmVzcG9uc2U/Lmxhc3RfcGFnZTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4gKHRoaXMuaXNXb3JraW5nID0gZmFsc2UpLFxuICAgIH0pO1xuICB9XG5cbiAgb25Tb3J0Q2hhbmdlKHNvcnQ6IFNvcnQpIHtcbiAgICBsZXQgeyBhY3RpdmUsIGRpcmVjdGlvbiB9ID0gc29ydDtcbiAgICBpZiAoIWFjdGl2ZSkge1xuICAgICAgYWN0aXZlID0gJ2NyZWF0ZWRfYXQnO1xuICAgIH1cbiAgICBpZiAoIWRpcmVjdGlvbikge1xuICAgICAgZGlyZWN0aW9uID0gJ2Rlc2MnO1xuICAgICAgYWN0aXZlID0gJ2NyZWF0ZWRfYXQnO1xuICAgIH1cbiAgICB0aGlzLmZpbHRlckZvcm0uZ2V0KCdzb3J0X2J5Jykuc2V0VmFsdWUoYWN0aXZlICsgJ3wnICsgZGlyZWN0aW9uKTtcbiAgfVxufVxuIiwiPG1hdC1jYXJkIGNsYXNzPVwibWItMlwiPlxuICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICA8aDMgY2xhc3M9XCJtYi0wXCI+TWVhc3VyZXM8L2gzPlxuICAgICAgPGFwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbiBbY29tcG9uZW50XT1cIm1lYXN1cmVGb3JtKClcIiBbd2lkdGhdPVwiJzUwMHB4J1wiXG4gICAgICAgIChzYXZlZCk9XCJyZWxvYWQoKVwiPjwvYXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxhcHAtdGVjaGxpZnktZmlsdGVyIFtmaWx0ZXJGb3JtXT1cImZpbHRlckZvcm1cIiAoZmlsdGVyVXBkYXRlZCk9XCJyZWxvYWQoKVwiPjwvYXBwLXRlY2hsaWZ5LWZpbHRlcj5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cblxuPG1hdC1jYXJkIGNsYXNzPVwicC0wXCI+XG4gIDxtYXQtY2FyZC1jb250ZW50PlxuICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwibW9kZWxzXCIgY2xhc3M9XCJ3LTEwMFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJTZXJ2aWNlIENlbnRlcnNcIiBpbmZpbml0ZVNjcm9sbFxuICAgICAgW2luZmluaXRlU2Nyb2xsRGlzdGFuY2VdPVwiMlwiIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cIjUwXCIgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIiBtYXRTb3J0XG4gICAgICAobWF0U29ydENoYW5nZSk9XCJvblNvcnRDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgPCEtLSAjIENvbHVtbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibm9cIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4jPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7IGxldCBpID0gaW5kZXhcIj57eyBpICsgMSB9fTwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBUaXRsZSBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInRpdGxlXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlRpdGxlPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICB7eyBlbGVtZW50Py50aXRsZSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicHJvZHVjdHNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5Qcm9kdWN0czwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgdGV4dC1kYXJrIHRleHQtZGVjb3JhdGlvbi1ub25lXCJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL2ludmVudG9yeS9wcm9kdWN0cyddXCJcbiAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJ7IG1lYXN1cmVfaWRzOiBlbGVtZW50LmlkIH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGVsZW1lbnQ/LnByb2R1Y3RzX2NvdW50IH19IHByb2R1Y3RzXG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gUXVhbnRpdHkgTWVhc3VyZSBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInF1YW50aXR5X21lYXN1cmVcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+UXVhbnRpdHkgTWVhc3VyZTwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAge3sgZWxlbWVudD8ucXVhbnRpdHlfbWVhc3VyZSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gRGVzY3JpcHRpb24gQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPkRlc2NyaXB0aW9uPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57eyBlbGVtZW50Py5kZXNjcmlwdGlvbiB9fTwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBBY3Rpb25zIENvbHVtbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uc1wiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPkFjdGlvbnM8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgPGFwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbiBbY29tcG9uZW50XT1cIm1lYXN1cmVGb3JtKClcIiBbbW9kZWxdPVwiZWxlbWVudFwiIFt3aWR0aF09XCInNTAwcHgnXCJcbiAgICAgICAgICAgICAgKHNhdmVkKT1cInJlbG9hZCgpXCIgKm5nSWY9XCJlbGVtZW50Py5jbGllbnRfaWRcIj48L2FwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbj5cbiAgICAgICAgICAgIDxhcHAtdGVjaGxpZnktZGVsZXRlLWJ1dHRvbiBbc2VydmljZV09XCJzZXJ2aWNlXCIgW21vZGVsXT1cImVsZW1lbnRcIlxuICAgICAgICAgICAgICBbZGF0YV09XCJ7IHR5cGU6ICdNZWFzdXJlJywgdGl0bGU6IGVsZW1lbnQ/LnRpdGxlIH1cIiAoZGVsZXRlZCk9XCJyZWxvYWQoKVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiZWxlbWVudD8uY2xpZW50X2lkICYmIGVsZW1lbnQ/LnByb2R1Y3RzX2NvdW50ID09IDBcIj48L2FwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgPC90YWJsZT5cblxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgKm5nSWY9XCJpc1dvcmtpbmdcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gIDwvbWF0LWNhcmQtY29udGVudD5cbjwvbWF0LWNhcmQ+XG4iXX0=
|