techlify-inventory-common 18.28.0 → 18.30.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/location/location-form/location-form.component.mjs +19 -40
- package/esm2022/lib/inventory-common/location/location-form-button/location-form-button.component.mjs +17 -5
- package/esm2022/lib/inventory-common/location/location-information/location-information.component.mjs +17 -15
- package/esm2022/lib/inventory-common/location/location-list/location-list.component.mjs +38 -81
- package/esm2022/lib/inventory-common/location/location-selector/location-selector.component.mjs +160 -0
- package/esm2022/lib/inventory-common/location/location-status-changer/location-status-changer.component.mjs +3 -3
- package/esm2022/lib/inventory-common/location/location-view/location-view.component.mjs +8 -9
- package/esm2022/lib/inventory-common/location/shelf/shelf-form-button/shelf-form-button.component.mjs +10 -6
- package/esm2022/lib/inventory-common/location/shelf/shelf-list/shelf-list.component.mjs +17 -16
- package/esm2022/lib/inventory-common/product/product-form-button/product-form-button.component.mjs +4 -4
- package/esm2022/lib/inventory-common/product/product-list/product-list.component.mjs +13 -14
- package/esm2022/lib/inventory-common/product/product-view-page/product-view-page.component.mjs +5 -4
- package/esm2022/lib/inventory-common/product/product.module.mjs +11 -5
- package/esm2022/lib/inventory-common/stock-issuances/stock-issue-batch-form/stock-issue-batch-form.component.mjs +120 -0
- package/esm2022/lib/inventory-common/stock-issuances/stock-issue-list/stock-issue-list.component.mjs +3 -3
- package/esm2022/lib/inventory-common/stock-issuances/stock-issue-routing.module.mjs +6 -1
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-batch-form/stock-receipt-batch-form.component.mjs +152 -0
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form/stock-receipt-form.component.mjs +4 -3
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form.module.mjs +8 -4
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipt-view/stock-receipt-view.component.mjs +1 -1
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipts-list-page/stock-receipts-list-page.component.mjs +19 -72
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipts-routing.module.mjs +7 -1
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipts.module.mjs +31 -30
- package/esm2022/lib/inventory-common/supplier/purchase-order/purchase-order-listing/purchase-order-listing.component.mjs +63 -0
- package/esm2022/lib/inventory-common/supplier/purchase-order/purchase-order.service.mjs +20 -0
- package/esm2022/lib/inventory-common/supplier/supplier-delete-button/supplier-delete-button.component.mjs +2 -2
- package/esm2022/lib/inventory-common/supplier/supplier-information/supplier-information.component.mjs +2 -2
- package/esm2022/lib/inventory-common/supplier/supplier-routing.module.mjs +6 -1
- package/esm2022/lib/inventory-common/supplier/supplier.service.mjs +4 -45
- package/esm2022/lib/inventory-common/supplier/suppliers-list/suppliers-list.component.mjs +33 -107
- package/esm2022/public-api.mjs +1 -3
- package/fesm2022/{techlify-inventory-common-category.module-C5qu8Li1.mjs → techlify-inventory-common-category.module--x7n_KLq.mjs} +12 -12
- package/fesm2022/techlify-inventory-common-category.module--x7n_KLq.mjs.map +1 -0
- package/fesm2022/{techlify-inventory-common-measure.module-CrVS3WXL.mjs → techlify-inventory-common-measure.module-D2jxHH_D.mjs} +8 -8
- package/fesm2022/{techlify-inventory-common-measure.module-CrVS3WXL.mjs.map → techlify-inventory-common-measure.module-D2jxHH_D.mjs.map} +1 -1
- package/fesm2022/techlify-inventory-common-stock-issue-batch-form.component-DWWhMwul.mjs +119 -0
- package/fesm2022/techlify-inventory-common-stock-issue-batch-form.component-DWWhMwul.mjs.map +1 -0
- package/fesm2022/{techlify-inventory-common-stock-issue-view.component-cgDRjuD7.mjs → techlify-inventory-common-stock-issue-view.component-CVmdJazX.mjs} +2 -2
- package/fesm2022/{techlify-inventory-common-stock-issue-view.component-cgDRjuD7.mjs.map → techlify-inventory-common-stock-issue-view.component-CVmdJazX.mjs.map} +1 -1
- package/fesm2022/{techlify-inventory-common-techlify-inventory-common-V_0lyccf.mjs → techlify-inventory-common-techlify-inventory-common-DZ-tDtUV.mjs} +701 -665
- package/fesm2022/techlify-inventory-common-techlify-inventory-common-DZ-tDtUV.mjs.map +1 -0
- package/fesm2022/techlify-inventory-common.mjs +1 -1
- package/lib/inventory-common/location/location-form/location-form.component.d.ts +3 -3
- package/lib/inventory-common/location/location-information/location-information.component.d.ts +3 -1
- package/lib/inventory-common/location/location-list/location-list.component.d.ts +6 -7
- package/lib/inventory-common/location/location-selector/location-selector.component.d.ts +45 -0
- package/lib/inventory-common/product/product.module.d.ts +1 -1
- package/lib/inventory-common/stock-issuances/stock-issue-batch-form/stock-issue-batch-form.component.d.ts +31 -0
- package/lib/inventory-common/stock-receipts/stock-receipt-batch-form/stock-receipt-batch-form.component.d.ts +39 -0
- package/lib/inventory-common/stock-receipts/stock-receipt-form/stock-receipt-form.module.d.ts +2 -1
- package/lib/inventory-common/stock-receipts/stock-receipts-list-page/stock-receipts-list-page.component.d.ts +3 -10
- package/lib/inventory-common/stock-receipts/stock-receipts.module.d.ts +10 -12
- package/lib/inventory-common/supplier/purchase-order/purchase-order-listing/purchase-order-listing.component.d.ts +16 -0
- package/lib/inventory-common/supplier/purchase-order/purchase-order.service.d.ts +8 -0
- package/lib/inventory-common/supplier/supplier.service.d.ts +2 -33
- package/lib/inventory-common/supplier/suppliers-list/suppliers-list.component.d.ts +4 -18
- package/package.json +1 -1
- package/public-api.d.ts +0 -2
- package/esm2022/lib/inventory-common/location/location-delete-button/location-delete-button.component.mjs +0 -68
- package/esm2022/lib/inventory-common/location/shelf/shelf-delete-button/shelf-delete-button.component.mjs +0 -60
- package/fesm2022/techlify-inventory-common-category.module-C5qu8Li1.mjs.map +0 -1
- package/fesm2022/techlify-inventory-common-techlify-inventory-common-V_0lyccf.mjs.map +0 -1
- package/lib/inventory-common/location/location-delete-button/location-delete-button.component.d.ts +0 -28
- package/lib/inventory-common/location/shelf/shelf-delete-button/shelf-delete-button.component.d.ts +0 -20
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import { SearchableSelectorModule, TechlifyListingControllerInterface } from 'ngx-techlify-core';
|
|
1
|
+
import { Component, signal } from '@angular/core';
|
|
2
|
+
import { SearchableSelectorModule, TechlifyDeleteButtonComponent, TechlifyIconModule, TechlifyListingControllerInterface } from 'ngx-techlify-core';
|
|
4
3
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
4
|
import { RouterLink } from '@angular/router';
|
|
6
|
-
import { debounceTime, distinctUntilChanged } from 'rxjs';
|
|
7
|
-
import { MatSort, MatSortHeader } from '@angular/material/sort';
|
|
8
|
-
import { NgIf } from '@angular/common';
|
|
9
5
|
import { InfiniteScrollDirective } from 'ngx-infinite-scroll';
|
|
10
|
-
import { MatCell, MatCellDef, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef, MatTable } from '@angular/material/table';
|
|
11
|
-
import { MatFormField, MatLabel } from '@angular/material/form-field';
|
|
12
|
-
import { MatInput } from '@angular/material/input';
|
|
13
|
-
import { MatProgressBar } from '@angular/material/progress-bar';
|
|
14
6
|
import { LocationFormButtonComponent } from '../location-form-button/location-form-button.component';
|
|
15
|
-
import { LocationDeleteButtonComponent } from '../location-delete-button/location-delete-button.component';
|
|
16
7
|
import { LocationStatusChangerComponent } from '../location-status-changer/location-status-changer.component';
|
|
8
|
+
import { MaterialModule } from '../../material.module';
|
|
9
|
+
import { CommonModule } from '@angular/common';
|
|
17
10
|
import * as i0 from "@angular/core";
|
|
18
11
|
import * as i1 from "../location.service";
|
|
19
12
|
import * as i2 from "@angular/forms";
|
|
20
|
-
import * as i3 from "
|
|
13
|
+
import * as i3 from "ngx-techlify-core";
|
|
14
|
+
import * as i4 from "@angular/common";
|
|
15
|
+
import * as i5 from "@angular/material/card";
|
|
16
|
+
import * as i6 from "@angular/material/form-field";
|
|
17
|
+
import * as i7 from "@angular/material/input";
|
|
18
|
+
import * as i8 from "@angular/material/progress-bar";
|
|
19
|
+
import * as i9 from "@angular/material/sort";
|
|
20
|
+
import * as i10 from "@angular/material/table";
|
|
21
21
|
export class LocationListComponent extends TechlifyListingControllerInterface {
|
|
22
22
|
service;
|
|
23
23
|
formBuilder;
|
|
24
|
-
|
|
24
|
+
featureService;
|
|
25
25
|
displayedColumns = [
|
|
26
26
|
'#',
|
|
27
27
|
'Title',
|
|
@@ -32,93 +32,50 @@ export class LocationListComponent extends TechlifyListingControllerInterface {
|
|
|
32
32
|
'status',
|
|
33
33
|
'Actions',
|
|
34
34
|
];
|
|
35
|
-
|
|
35
|
+
filterFormConfiguration = {};
|
|
36
|
+
isSublocationsEnabled = signal(false);
|
|
37
|
+
constructor(service, formBuilder, featureService) {
|
|
36
38
|
super();
|
|
37
39
|
this.service = service;
|
|
38
40
|
this.formBuilder = formBuilder;
|
|
39
|
-
this.
|
|
40
|
-
this.lastPage = 0;
|
|
41
|
+
this.featureService = featureService;
|
|
41
42
|
this.filterForm = this.formBuilder.group({
|
|
42
43
|
search: [''],
|
|
43
44
|
sort_by: ['id|desc'],
|
|
45
|
+
with: 'status,parent',
|
|
46
|
+
withCount: 'stockReceipts,stockIssues',
|
|
44
47
|
});
|
|
45
48
|
}
|
|
46
49
|
ngOnInit() {
|
|
47
|
-
this.
|
|
48
|
-
this.
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
// listen for route change
|
|
54
|
-
this.activatedRoute.queryParams
|
|
55
|
-
.pipe(debounceTime(500), distinctUntilChanged())
|
|
56
|
-
.subscribe((val) => {
|
|
57
|
-
this.reload();
|
|
58
|
-
});
|
|
50
|
+
this.addParentColumn();
|
|
51
|
+
this.patchFiltersFromRoute();
|
|
52
|
+
this.listenFilterChanges();
|
|
53
|
+
this.loadData();
|
|
59
54
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
addParentColumn() {
|
|
56
|
+
this.isSublocationsEnabled.set(this.featureService.isFeatureExists('sub-locations'));
|
|
57
|
+
if (this.isSublocationsEnabled()) {
|
|
58
|
+
const index = this.displayedColumns.indexOf('Title');
|
|
59
|
+
this.displayedColumns.splice(index + 1, 0, 'parent');
|
|
63
60
|
}
|
|
64
|
-
const params = {
|
|
65
|
-
...this.requestHelperService.convertToFormData(this.filterForm.value),
|
|
66
|
-
page: this.page,
|
|
67
|
-
perPage: this.perPage,
|
|
68
|
-
with: 'status',
|
|
69
|
-
withCount: 'stockReceipts,stockIssues',
|
|
70
|
-
};
|
|
71
|
-
this.isWorking = true;
|
|
72
|
-
this.service.index(params).subscribe({
|
|
73
|
-
next: (response) => {
|
|
74
|
-
this.models = this.models?.concat(response?.data);
|
|
75
|
-
this.lastPage = response?.last_page;
|
|
76
|
-
this.isWorking = false;
|
|
77
|
-
},
|
|
78
|
-
error: () => (this.isWorking = false)
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
onSortChange(sort) {
|
|
82
|
-
let { active, direction } = sort;
|
|
83
|
-
if (!active)
|
|
84
|
-
active = 'id';
|
|
85
|
-
if (!direction)
|
|
86
|
-
direction = 'desc';
|
|
87
|
-
this.filterForm.get('sort_by')?.setValue(active + '|' + direction);
|
|
88
61
|
}
|
|
89
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocationListComponent, deps: [{ token: i1.LocationService }, { token: i2.FormBuilder }, { token: i3.
|
|
90
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LocationListComponent, isStandalone: true, selector: "app-location-list", usesInheritance: true, ngImport: i0, template: "<mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-2\">\n <div class=\"d-flex justify-content-start align-items-center gap-3\">\n <
|
|
62
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocationListComponent, deps: [{ token: i1.LocationService }, { token: i2.FormBuilder }, { token: i3.TechlifyFeatureService }], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LocationListComponent, isStandalone: true, selector: "app-location-list", usesInheritance: true, ngImport: i0, template: "<mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-2\">\n <div class=\"d-flex justify-content-start align-items-center gap-3 mb-0\">\n <h5 class=\"mb-0\">Locations</h5>\n <app-location-form-button (saved)=\"reload()\"></app-location-form-button>\n </div>\n <form class=\"d-flex justify-content-end align-items-center gap-2\" [formGroup]=\"filterForm\" (submit)=\"reload()\">\n <mat-form-field>\n <mat-label>Search</mat-label>\n <input type=\"text\" placeholder=\"Search locations\" matInput formControlName=\"search\">\n </mat-form-field>\n </form>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"mt-3\">\n <mat-card-content class=\"p-0\">\n <table #table mat-table [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [fromRoot]=\"true\" matSort\n (matSortChange)=\"sortColumn($event)\">\n\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=\"Title\">\n <th mat-header-cell mat-sort-header=\"title\" *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.title }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"parent\">\n <th mat-header-cell mat-sort-header=\"parent\" *matHeaderCellDef> Parent </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.parent?.title }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"Address\">\n <th mat-header-cell mat-sort-header=\"address\" *matHeaderCellDef> Address </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.address }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"stock_receipts\">\n <th mat-header-cell *matHeaderCellDef> Stock Receipts </th>\n <td mat-cell *matCellDef=\"let element\">\n <span [routerLink]=\"['/inventory/stock-receipts']\" [queryParams]=\"{ location_ids: element.id }\"\n class='cursor-pointer'>\n {{element?.stock_receipts_count }} receipt(s)</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"stock_issues\">\n <th mat-header-cell *matHeaderCellDef> Stock Issues </th>\n <td mat-cell *matCellDef=\"let element\">\n <span [routerLink]=\"['/inventory/stock-issues']\" [queryParams]=\"{ location_ids: element.id }\"\n class='cursor-pointer'>\n {{element?.stock_issues_count }} issue(s)</span>\n </td>\n </ng-container>\n\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 <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> Status </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-location-status-changer [location]=\"element\"></app-location-status-changer>\n </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; let i = index\">\n <div class=\"d-flex justify-content-start align-items-center gap-2 text-secondary\">\n <app-techlify-icon role='button' name=\"view\"\n [routerLink]=\"['/location/locations', element?.id, 'view']\"></app-techlify-icon>\n\n <app-location-form-button [model]=\"element\" (saved)=\"reload()\"></app-location-form-button>\n\n <span *ngIf=\"element?.stock_receipts_count == 0 && element?.stock_issues_count == 0\">\n <app-techlify-delete-button [data]=\"{title: element?.title, type: 'Location'}\" [model]=\"element\"\n [service]=\"service\" (deleted)=\"reload()\"></app-techlify-delete-button>\n </span>\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 <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "ngmodule", type: MaterialModule }, { 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: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i9.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i9.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i10.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i10.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i10.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i10.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i10.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i10.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i10.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i10.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i10.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i10.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: SearchableSelectorModule }, { kind: "component", type: LocationFormButtonComponent, selector: "app-location-form-button", inputs: ["model"], outputs: ["saved"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: LocationStatusChangerComponent, selector: "app-location-status-changer", inputs: ["location"] }, { kind: "ngmodule", type: TechlifyIconModule }, { kind: "component", type: i3.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "component", type: TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted"] }], preserveWhitespaces: true });
|
|
91
64
|
}
|
|
92
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocationListComponent, decorators: [{
|
|
93
66
|
type: Component,
|
|
94
67
|
args: [{ selector: 'app-location-list', standalone: true, imports: [
|
|
95
|
-
|
|
96
|
-
MatCardContent,
|
|
68
|
+
CommonModule,
|
|
97
69
|
FormsModule,
|
|
98
70
|
InfiniteScrollDirective,
|
|
99
|
-
|
|
100
|
-
MatCellDef,
|
|
101
|
-
MatColumnDef,
|
|
102
|
-
MatFormField,
|
|
103
|
-
MatHeaderCell,
|
|
104
|
-
MatHeaderRow,
|
|
105
|
-
MatHeaderRowDef,
|
|
106
|
-
MatInput,
|
|
107
|
-
MatLabel,
|
|
108
|
-
MatProgressBar,
|
|
109
|
-
MatRow,
|
|
110
|
-
MatRowDef,
|
|
111
|
-
MatSort,
|
|
112
|
-
MatSortHeader,
|
|
113
|
-
MatTable,
|
|
114
|
-
NgIf,
|
|
71
|
+
MaterialModule,
|
|
115
72
|
ReactiveFormsModule,
|
|
116
73
|
SearchableSelectorModule,
|
|
117
|
-
MatHeaderCellDef,
|
|
118
74
|
LocationFormButtonComponent,
|
|
119
75
|
RouterLink,
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9sb2NhdGlvbi9sb2NhdGlvbi1saXN0L2xvY2F0aW9uLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vbG9jYXRpb24vbG9jYXRpb24tbGlzdC9sb2NhdGlvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQXdCLHdCQUF3QixFQUFFLGtDQUFrQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkgsT0FBTyxFQUEwQixXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRixPQUFPLEVBQWtCLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQVEsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUNMLE9BQU8sRUFDUCxVQUFVLEVBQ1YsWUFBWSxFQUNaLGFBQWEsRUFBRSxnQkFBZ0IsRUFDL0IsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQUUsU0FBUyxF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QkFDUCxPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCx1QkFBdUI7d0JBQ3ZCLE9BQU87d0JBQ1AsVUFBVTt3QkFDVixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsUUFBUTt3QkFDUixRQUFRO3dCQUNSLGNBQWM7d0JBQ2QsTUFBTTt3QkFDTixTQUFTO3dCQUNULE9BQU87d0JBQ1AsYUFBYTt3QkFDYixRQUFRO3dCQUNSLElBQUk7d0JBQ0osbUJBQW1CO3dCQUNuQix3QkFBd0I7d0JBQ3hCLGdCQUFnQjt3QkFDaEIsMkJBQTJCO3dCQUMzQixVQUFVO3dCQUNWLDZCQUE2Qjt3QkFDN0IsOEJBQThCO3FCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRDYXJkLCBNYXRDYXJkQ29udGVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgUmVxdWVzdEhlbHBlclNlcnZpY2UsIFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSwgVGVjaGxpZnlMaXN0aW5nQ29udHJvbGxlckludGVyZmFjZSB9IGZyb20gJ25neC10ZWNobGlmeS1jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWF0U29ydCwgTWF0U29ydEhlYWRlciwgU29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJ25neC1pbmZpbml0ZS1zY3JvbGwnO1xuaW1wb3J0IHtcbiAgTWF0Q2VsbCxcbiAgTWF0Q2VsbERlZixcbiAgTWF0Q29sdW1uRGVmLFxuICBNYXRIZWFkZXJDZWxsLCBNYXRIZWFkZXJDZWxsRGVmLFxuICBNYXRIZWFkZXJSb3csXG4gIE1hdEhlYWRlclJvd0RlZixcbiAgTWF0Um93LCBNYXRSb3dEZWYsIE1hdFRhYmxlXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0TGFiZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgTG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vbG9jYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhdGlvbkZvcm1CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9sb2NhdGlvbi1mb3JtLWJ1dHRvbi9sb2NhdGlvbi1mb3JtLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9jYXRpb25EZWxldGVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9sb2NhdGlvbi1kZWxldGUtYnV0dG9uL2xvY2F0aW9uLWRlbGV0ZS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IExvY2F0aW9uU3RhdHVzQ2hhbmdlckNvbXBvbmVudCB9IGZyb20gJy4uL2xvY2F0aW9uLXN0YXR1cy1jaGFuZ2VyL2xvY2F0aW9uLXN0YXR1cy1jaGFuZ2VyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1sb2NhdGlvbi1saXN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdENhcmQsXG4gICAgTWF0Q2FyZENvbnRlbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgSW5maW5pdGVTY3JvbGxEaXJlY3RpdmUsXG4gICAgTWF0Q2VsbCxcbiAgICBNYXRDZWxsRGVmLFxuICAgIE1hdENvbHVtbkRlZixcbiAgICBNYXRGb3JtRmllbGQsXG4gICAgTWF0SGVhZGVyQ2VsbCxcbiAgICBNYXRIZWFkZXJSb3csXG4gICAgTWF0SGVhZGVyUm93RGVmLFxuICAgIE1hdElucHV0LFxuICAgIE1hdExhYmVsLFxuICAgIE1hdFByb2dyZXNzQmFyLFxuICAgIE1hdFJvdyxcbiAgICBNYXRSb3dEZWYsXG4gICAgTWF0U29ydCxcbiAgICBNYXRTb3J0SGVhZGVyLFxuICAgIE1hdFRhYmxlLFxuICAgIE5nSWYsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTZWFyY2hhYmxlU2VsZWN0b3JNb2R1bGUsXG4gICAgTWF0SGVhZGVyQ2VsbERlZixcbiAgICBMb2NhdGlvbkZvcm1CdXR0b25Db21wb25lbnQsXG4gICAgUm91dGVyTGluayxcbiAgICBMb2NhdGlvbkRlbGV0ZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBMb2NhdGlvblN0YXR1c0NoYW5nZXJDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvY2F0aW9uLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbG9jYXRpb24tbGlzdC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgTG9jYXRpb25MaXN0Q29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlMaXN0aW5nQ29udHJvbGxlckludGVyZmFjZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW1xuICAgICcjJyxcbiAgICAnVGl0bGUnLFxuICAgICdBZGRyZXNzJyxcbiAgICAnc3RvY2tfcmVjZWlwdHMnLFxuICAgICdzdG9ja19pc3N1ZXMnLFxuICAgICdEZXNjcmlwdGlvbicsXG4gICAgJ3N0YXR1cycsXG4gICAgJ0FjdGlvbnMnLFxuICBdXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNlcnZpY2U6IExvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxhc3RQYWdlID0gMDtcblxuICAgIHRoaXMuZmlsdGVyRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgc2VhcmNoOiBbJyddLFxuICAgICAgc29ydF9ieTogWydpZHxkZXNjJ10sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlcXVlc3RIZWxwZXJTZXJ2aWNlLnVwZGF0ZUZvcm1XaXRoUXVlcnlQYXJhbXMoXG4gICAgICB0aGlzLmZpbHRlckZvcm0sXG4gICAgICB7fVxuICAgICk7XG5cbiAgICAodGhpcy5maWx0ZXJGb3JtIGFzIEZvcm1Hcm91cCkudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUoODAwKVxuICAgICkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5yZXF1ZXN0SGVscGVyU2VydmljZS51cGRhdGVRdWVyeVBhcmFtcyhcbiAgICAgICAgICB0aGlzLnJlcXVlc3RIZWxwZXJTZXJ2aWNlLmNvbnZlcnRUb0Zvcm1EYXRhKHRoaXMuZmlsdGVyRm9ybS52YWx1ZSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIGxpc3RlbiBmb3Igcm91dGUgY2hhbmdlXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtc1xuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWw6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBsb2FkRGF0YSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1dvcmtpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7XG4gICAgICAuLi50aGlzLnJlcXVlc3RIZWxwZXJTZXJ2aWNlLmNvbnZlcnRUb0Zvcm1EYXRhKHRoaXMuZmlsdGVyRm9ybS52YWx1ZSksXG4gICAgICBwYWdlOiB0aGlzLnBhZ2UsXG4gICAgICBwZXJQYWdlOiB0aGlzLnBlclBhZ2UsXG4gICAgICB3aXRoOiAnc3RhdHVzJyxcbiAgICAgIHdpdGhDb3VudDogJ3N0b2NrUmVjZWlwdHMsc3RvY2tJc3N1ZXMnLFxuICAgIH1cbiAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgdGhpcy5zZXJ2aWNlLmluZGV4KHBhcmFtcykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubW9kZWxzID0gdGhpcy5tb2RlbHM/LmNvbmNhdChyZXNwb25zZT8uZGF0YSk7XG4gICAgICAgIHRoaXMubGFzdFBhZ2UgPSByZXNwb25zZT8ubGFzdF9wYWdlO1xuICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiAodGhpcy5pc1dvcmtpbmcgPSBmYWxzZSlcbiAgICB9KTtcbiAgfVxuXG4gIG9uU29ydENoYW5nZShzb3J0OiBTb3J0KSB7XG4gICAgbGV0IHsgYWN0aXZlLCBkaXJlY3Rpb24gfSA9IHNvcnQ7XG4gICAgaWYgKCFhY3RpdmUpIGFjdGl2ZSA9ICdpZCc7XG4gICAgaWYgKCFkaXJlY3Rpb24pIGRpcmVjdGlvbiA9ICdkZXNjJztcblxuICAgIHRoaXMuZmlsdGVyRm9ybS5nZXQoJ3NvcnRfYnknKT8uc2V0VmFsdWUoYWN0aXZlICsgJ3wnICsgZGlyZWN0aW9uKTtcbiAgfVxufVxuIiwiPG1hdC1jYXJkPlxuICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgIDxzdHJvbmc+TG9jYXRpb25zPC9zdHJvbmc+XG4gICAgICA8YXBwLWxvY2F0aW9uLWZvcm0tYnV0dG9uIChzYXZlZCk9XCJtb2RlbENyZWF0ZWQoJGV2ZW50KVwiPjwvYXBwLWxvY2F0aW9uLWZvcm0tYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxmb3JtIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCIgW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtXCIgKHN1Ym1pdCk9XCJyZWxvYWQoKVwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWxhYmVsPlNlYXJjaDwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBsb2NhdGlvbnNcIiBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hcIj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9mb3JtPlxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG48L21hdC1jYXJkPlxuXG48bWF0LWNhcmQgY2xhc3M9XCJtdC0zXCI+XG4gIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwicC0wXCI+XG4gICAgPHRhYmxlICN0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwibW9kZWxzXCIgY2xhc3M9XCJ3LTEwMFwiIGluZmluaXRlU2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjJcIlxuICAgICAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIiAoc2Nyb2xsZWQpPVwib25TY3JvbGwoKVwiIFtmcm9tUm9vdF09XCJ0cnVlXCIgbWF0U29ydFxuICAgICAgKG1hdFNvcnRDaGFuZ2UpPVwib25Tb3J0Q2hhbmdlKCRldmVudClcIj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCIjXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+ICMgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7IGxldCBpID0gaW5kZXhcIj57eyBpICsgMSB9fTwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJUaXRsZVwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsIG1hdC1zb3J0LWhlYWRlcj1cInRpdGxlXCIgKm1hdEhlYWRlckNlbGxEZWY+IFRpdGxlIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3sgZWxlbWVudD8udGl0bGUgfX08L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiQWRkcmVzc1wiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsIG1hdC1zb3J0LWhlYWRlcj1cImFkZHJlc3NcIiAqbWF0SGVhZGVyQ2VsbERlZj4gQWRkcmVzcyA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnQ/LmFkZHJlc3MgfX08L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3RvY2tfcmVjZWlwdHNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gU3RvY2sgUmVjZWlwdHMgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICA8c3BhbiBbcm91dGVyTGlua109XCJbJy9pbnZlbnRvcnkvc3RvY2stcmVjZWlwdHMnXVwiIFtxdWVyeVBhcmFtc109XCJ7IGxvY2F0aW9uX2lkczogZWxlbWVudC5pZCB9XCJcbiAgICAgICAgICAgIGNsYXNzPSdjdXJzb3ItcG9pbnRlcic+XG4gICAgICAgICAgICB7e2VsZW1lbnQ/LnN0b2NrX3JlY2VpcHRzX2NvdW50IH19IHJlY2VpcHQocyk8L3NwYW4+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdG9ja19pc3N1ZXNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gU3RvY2sgSXNzdWVzIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgPHNwYW4gW3JvdXRlckxpbmtdPVwiWycvaW52ZW50b3J5L3N0b2NrLWlzc3VlcyddXCIgW3F1ZXJ5UGFyYW1zXT1cInsgbG9jYXRpb25faWRzOiBlbGVtZW50LmlkIH1cIlxuICAgICAgICAgICAgY2xhc3M9J2N1cnNvci1wb2ludGVyJz5cbiAgICAgICAgICAgIHt7ZWxlbWVudD8uc3RvY2tfaXNzdWVzX2NvdW50IH19IGlzc3VlKHMpPC9zcGFuPlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiRGVzY3JpcHRpb25cIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gRGVzY3JpcHRpb24gPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57eyBlbGVtZW50Py5kZXNjcmlwdGlvbiB9fTwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdGF0dXNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gU3RhdHVzIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgPGFwcC1sb2NhdGlvbi1zdGF0dXMtY2hhbmdlciBbbG9jYXRpb25dPVwiZWxlbWVudFwiPjwvYXBwLWxvY2F0aW9uLXN0YXR1cy1jaGFuZ2VyPlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiQWN0aW9uc1wiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBBY3Rpb25zIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICA8YXBwLWxvY2F0aW9uLWZvcm0tYnV0dG9uIFttb2RlbF09XCJlbGVtZW50XCIgKHNhdmVkKT1cIm1vZGVsVXBkYXRlZCgkZXZlbnQsIGkpXCI+PC9hcHAtbG9jYXRpb24tZm9ybS1idXR0b24+XG4gICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy9pbnZlbnRvcnkvbG9jYXRpb25zJywgZWxlbWVudD8uaWQsICd2aWV3J11cIiBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi1ub25lIHRleHQtZGFya1wiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj52aXNpYmlsaXR5PC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJlbGVtZW50Py5zdG9ja19yZWNlaXB0c19jb3VudCA9PSAwICYmIGVsZW1lbnQ/LnN0b2NrX2lzc3Vlc19jb3VudCA9PSAwXCI+XG4gICAgICAgICAgICAgIDxhcHAtbG9jYXRpb24tZGVsZXRlLWJ1dHRvbiBbbW9kZWxdPVwiZWxlbWVudFwiIChkZWxldGVkKT1cIm1vZGVsRGVsZXRlZChpKVwiPjwvYXBwLWxvY2F0aW9uLWRlbGV0ZS1idXR0b24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XG4gICAgPC90YWJsZT5cbiAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cImlzV29ya2luZ1wiIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG48L21hdC1jYXJkPiJdfQ==
|
|
76
|
+
LocationStatusChangerComponent,
|
|
77
|
+
TechlifyIconModule,
|
|
78
|
+
TechlifyDeleteButtonComponent
|
|
79
|
+
], template: "<mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-2\">\n <div class=\"d-flex justify-content-start align-items-center gap-3 mb-0\">\n <h5 class=\"mb-0\">Locations</h5>\n <app-location-form-button (saved)=\"reload()\"></app-location-form-button>\n </div>\n <form class=\"d-flex justify-content-end align-items-center gap-2\" [formGroup]=\"filterForm\" (submit)=\"reload()\">\n <mat-form-field>\n <mat-label>Search</mat-label>\n <input type=\"text\" placeholder=\"Search locations\" matInput formControlName=\"search\">\n </mat-form-field>\n </form>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"mt-3\">\n <mat-card-content class=\"p-0\">\n <table #table mat-table [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [fromRoot]=\"true\" matSort\n (matSortChange)=\"sortColumn($event)\">\n\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=\"Title\">\n <th mat-header-cell mat-sort-header=\"title\" *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.title }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"parent\">\n <th mat-header-cell mat-sort-header=\"parent\" *matHeaderCellDef> Parent </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.parent?.title }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"Address\">\n <th mat-header-cell mat-sort-header=\"address\" *matHeaderCellDef> Address </th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.address }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"stock_receipts\">\n <th mat-header-cell *matHeaderCellDef> Stock Receipts </th>\n <td mat-cell *matCellDef=\"let element\">\n <span [routerLink]=\"['/inventory/stock-receipts']\" [queryParams]=\"{ location_ids: element.id }\"\n class='cursor-pointer'>\n {{element?.stock_receipts_count }} receipt(s)</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"stock_issues\">\n <th mat-header-cell *matHeaderCellDef> Stock Issues </th>\n <td mat-cell *matCellDef=\"let element\">\n <span [routerLink]=\"['/inventory/stock-issues']\" [queryParams]=\"{ location_ids: element.id }\"\n class='cursor-pointer'>\n {{element?.stock_issues_count }} issue(s)</span>\n </td>\n </ng-container>\n\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 <ng-container matColumnDef=\"status\">\n <th mat-header-cell *matHeaderCellDef> Status </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-location-status-changer [location]=\"element\"></app-location-status-changer>\n </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; let i = index\">\n <div class=\"d-flex justify-content-start align-items-center gap-2 text-secondary\">\n <app-techlify-icon role='button' name=\"view\"\n [routerLink]=\"['/location/locations', element?.id, 'view']\"></app-techlify-icon>\n\n <app-location-form-button [model]=\"element\" (saved)=\"reload()\"></app-location-form-button>\n\n <span *ngIf=\"element?.stock_receipts_count == 0 && element?.stock_issues_count == 0\">\n <app-techlify-delete-button [data]=\"{title: element?.title, type: 'Location'}\" [model]=\"element\"\n [service]=\"service\" (deleted)=\"reload()\"></app-techlify-delete-button>\n </span>\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 <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>" }]
|
|
80
|
+
}], ctorParameters: () => [{ type: i1.LocationService }, { type: i2.FormBuilder }, { type: i3.TechlifyFeatureService }] });
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9sb2NhdGlvbi9sb2NhdGlvbi1saXN0L2xvY2F0aW9uLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vbG9jYXRpb24vbG9jYXRpb24tbGlzdC9sb2NhdGlvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSw2QkFBNkIsRUFBMEIsa0JBQWtCLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1SyxPQUFPLEVBQWUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzlHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7OztBQXFCL0MsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGtDQUFrQztJQWdCdEQ7SUFDWDtJQUNBO0lBakJWLGdCQUFnQixHQUFhO1FBQzNCLEdBQUc7UUFDSCxPQUFPO1FBQ1AsU0FBUztRQUNULGdCQUFnQjtRQUNoQixjQUFjO1FBQ2QsYUFBYTtRQUNiLFFBQVE7UUFDUixTQUFTO0tBQ1YsQ0FBQTtJQUVRLHVCQUF1QixHQUFRLEVBQUUsQ0FBQztJQUMzQyxxQkFBcUIsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFL0MsWUFDcUIsT0FBd0IsRUFDbkMsV0FBd0IsRUFDeEIsY0FBc0M7UUFFOUMsS0FBSyxFQUFFLENBQUM7UUFKVyxZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUNuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFJOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUN2QyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDWixPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDcEIsSUFBSSxFQUFFLGVBQWU7WUFDckIsU0FBUyxFQUFFLDJCQUEyQjtTQUN2QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFFckYsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBRUgsQ0FBQzt3R0E5Q1UscUJBQXFCOzRGQUFyQixxQkFBcUIsb0dDOUJsQyx5NElBNkZXLHlERDlFUCxZQUFZLGtJQUNaLFdBQVcsNHBCQUNYLHVCQUF1Qix5V0FDdkIsY0FBYyxpNUVBQ2QsbUJBQW1CLCtVQUNuQix3QkFBd0IsK0JBQ3hCLDJCQUEyQiw0R0FDM0IsVUFBVSxvT0FDViw4QkFBOEIsNkZBQzlCLGtCQUFrQiwrSUFDbEIsNkJBQTZCOzs0RkFLcEIscUJBQXFCO2tCQW5CakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCx1QkFBdUI7d0JBQ3ZCLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQix3QkFBd0I7d0JBQ3hCLDJCQUEyQjt3QkFDM0IsVUFBVTt3QkFDViw4QkFBOEI7d0JBQzlCLGtCQUFrQjt3QkFDbEIsNkJBQTZCO3FCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSwgVGVjaGxpZnlEZWxldGVCdXR0b25Db21wb25lbnQsIFRlY2hsaWZ5RmVhdHVyZVNlcnZpY2UsIFRlY2hsaWZ5SWNvbk1vZHVsZSwgVGVjaGxpZnlMaXN0aW5nQ29udHJvbGxlckludGVyZmFjZSB9IGZyb20gJ25neC10ZWNobGlmeS1jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICduZ3gtaW5maW5pdGUtc2Nyb2xsJztcbmltcG9ydCB7IExvY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2xvY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYXRpb25Gb3JtQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9jYXRpb24tZm9ybS1idXR0b24vbG9jYXRpb24tZm9ybS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IExvY2F0aW9uU3RhdHVzQ2hhbmdlckNvbXBvbmVudCB9IGZyb20gJy4uL2xvY2F0aW9uLXN0YXR1cy1jaGFuZ2VyL2xvY2F0aW9uLXN0YXR1cy1jaGFuZ2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uLy4uL21hdGVyaWFsLm1vZHVsZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbG9jYXRpb24tbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgSW5maW5pdGVTY3JvbGxEaXJlY3RpdmUsXG4gICAgTWF0ZXJpYWxNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTZWFyY2hhYmxlU2VsZWN0b3JNb2R1bGUsXG4gICAgTG9jYXRpb25Gb3JtQnV0dG9uQ29tcG9uZW50LFxuICAgIFJvdXRlckxpbmssXG4gICAgTG9jYXRpb25TdGF0dXNDaGFuZ2VyQ29tcG9uZW50LFxuICAgIFRlY2hsaWZ5SWNvbk1vZHVsZSxcbiAgICBUZWNobGlmeURlbGV0ZUJ1dHRvbkNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9jYXRpb24tbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9sb2NhdGlvbi1saXN0LmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBMb2NhdGlvbkxpc3RDb21wb25lbnQgZXh0ZW5kcyBUZWNobGlmeUxpc3RpbmdDb250cm9sbGVySW50ZXJmYWNlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXG4gICAgJyMnLFxuICAgICdUaXRsZScsXG4gICAgJ0FkZHJlc3MnLFxuICAgICdzdG9ja19yZWNlaXB0cycsXG4gICAgJ3N0b2NrX2lzc3VlcycsXG4gICAgJ0Rlc2NyaXB0aW9uJyxcbiAgICAnc3RhdHVzJyxcbiAgICAnQWN0aW9ucycsXG4gIF1cblxuICBvdmVycmlkZSBmaWx0ZXJGb3JtQ29uZmlndXJhdGlvbjogYW55ID0ge307XG4gIGlzU3VibG9jYXRpb25zRW5hYmxlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNlcnZpY2U6IExvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGZlYXR1cmVTZXJ2aWNlOiBUZWNobGlmeUZlYXR1cmVTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmZpbHRlckZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIHNlYXJjaDogWycnXSxcbiAgICAgIHNvcnRfYnk6IFsnaWR8ZGVzYyddLFxuICAgICAgd2l0aDogJ3N0YXR1cyxwYXJlbnQnLFxuICAgICAgd2l0aENvdW50OiAnc3RvY2tSZWNlaXB0cyxzdG9ja0lzc3VlcycsXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFkZFBhcmVudENvbHVtbigpO1xuXG4gICAgdGhpcy5wYXRjaEZpbHRlcnNGcm9tUm91dGUoKTtcbiAgICB0aGlzLmxpc3RlbkZpbHRlckNoYW5nZXMoKTtcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gIH1cblxuICBhZGRQYXJlbnRDb2x1bW4oKSB7XG4gICAgdGhpcy5pc1N1YmxvY2F0aW9uc0VuYWJsZWQuc2V0KHRoaXMuZmVhdHVyZVNlcnZpY2UuaXNGZWF0dXJlRXhpc3RzKCdzdWItbG9jYXRpb25zJykpO1xuXG4gICAgaWYgKHRoaXMuaXNTdWJsb2NhdGlvbnNFbmFibGVkKCkpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLmluZGV4T2YoJ1RpdGxlJyk7XG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMuc3BsaWNlKGluZGV4ICsgMSwgMCwgJ3BhcmVudCcpO1xuICAgIH1cblxuICB9XG59XG4iLCI8bWF0LWNhcmQ+XG4gIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMyBtYi0wXCI+XG4gICAgICA8aDUgY2xhc3M9XCJtYi0wXCI+TG9jYXRpb25zPC9oNT5cbiAgICAgIDxhcHAtbG9jYXRpb24tZm9ybS1idXR0b24gKHNhdmVkKT1cInJlbG9hZCgpXCI+PC9hcHAtbG9jYXRpb24tZm9ybS1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGZvcm0gY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIiBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1cIiAoc3VibWl0KT1cInJlbG9hZCgpXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtbGFiZWw+U2VhcmNoPC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGxvY2F0aW9uc1wiIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInNlYXJjaFwiPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Zvcm0+XG4gIDwvbWF0LWNhcmQtY29udGVudD5cbjwvbWF0LWNhcmQ+XG5cbjxtYXQtY2FyZCBjbGFzcz1cIm10LTNcIj5cbiAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJwLTBcIj5cbiAgICA8dGFibGUgI3RhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJtb2RlbHNcIiBjbGFzcz1cInctMTAwXCIgaW5maW5pdGVTY3JvbGwgW2luZmluaXRlU2Nyb2xsRGlzdGFuY2VdPVwiMlwiXG4gICAgICBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCI1MFwiIChzY3JvbGxlZCk9XCJvblNjcm9sbCgpXCIgW2Zyb21Sb290XT1cInRydWVcIiBtYXRTb3J0XG4gICAgICAobWF0U29ydENoYW5nZSk9XCJzb3J0Q29sdW1uKCRldmVudClcIj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCIjXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+ICMgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7IGxldCBpID0gaW5kZXhcIj57eyBpICsgMSB9fTwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJUaXRsZVwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsIG1hdC1zb3J0LWhlYWRlcj1cInRpdGxlXCIgKm1hdEhlYWRlckNlbGxEZWY+IFRpdGxlIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3sgZWxlbWVudD8udGl0bGUgfX08L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicGFyZW50XCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgbWF0LXNvcnQtaGVhZGVyPVwicGFyZW50XCIgKm1hdEhlYWRlckNlbGxEZWY+IFBhcmVudCA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnQ/LnBhcmVudD8udGl0bGUgfX08L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiQWRkcmVzc1wiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsIG1hdC1zb3J0LWhlYWRlcj1cImFkZHJlc3NcIiAqbWF0SGVhZGVyQ2VsbERlZj4gQWRkcmVzcyA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnQ/LmFkZHJlc3MgfX08L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3RvY2tfcmVjZWlwdHNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gU3RvY2sgUmVjZWlwdHMgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICA8c3BhbiBbcm91dGVyTGlua109XCJbJy9pbnZlbnRvcnkvc3RvY2stcmVjZWlwdHMnXVwiIFtxdWVyeVBhcmFtc109XCJ7IGxvY2F0aW9uX2lkczogZWxlbWVudC5pZCB9XCJcbiAgICAgICAgICAgIGNsYXNzPSdjdXJzb3ItcG9pbnRlcic+XG4gICAgICAgICAgICB7e2VsZW1lbnQ/LnN0b2NrX3JlY2VpcHRzX2NvdW50IH19IHJlY2VpcHQocyk8L3NwYW4+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdG9ja19pc3N1ZXNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gU3RvY2sgSXNzdWVzIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgPHNwYW4gW3JvdXRlckxpbmtdPVwiWycvaW52ZW50b3J5L3N0b2NrLWlzc3VlcyddXCIgW3F1ZXJ5UGFyYW1zXT1cInsgbG9jYXRpb25faWRzOiBlbGVtZW50LmlkIH1cIlxuICAgICAgICAgICAgY2xhc3M9J2N1cnNvci1wb2ludGVyJz5cbiAgICAgICAgICAgIHt7ZWxlbWVudD8uc3RvY2tfaXNzdWVzX2NvdW50IH19IGlzc3VlKHMpPC9zcGFuPlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiRGVzY3JpcHRpb25cIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gRGVzY3JpcHRpb24gPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57eyBlbGVtZW50Py5kZXNjcmlwdGlvbiB9fTwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdGF0dXNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gU3RhdHVzIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgPGFwcC1sb2NhdGlvbi1zdGF0dXMtY2hhbmdlciBbbG9jYXRpb25dPVwiZWxlbWVudFwiPjwvYXBwLWxvY2F0aW9uLXN0YXR1cy1jaGFuZ2VyPlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiQWN0aW9uc1wiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBBY3Rpb25zIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHRleHQtc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWljb24gcm9sZT0nYnV0dG9uJyBuYW1lPVwidmlld1wiXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL2xvY2F0aW9uL2xvY2F0aW9ucycsIGVsZW1lbnQ/LmlkLCAndmlldyddXCI+PC9hcHAtdGVjaGxpZnktaWNvbj5cblxuICAgICAgICAgICAgPGFwcC1sb2NhdGlvbi1mb3JtLWJ1dHRvbiBbbW9kZWxdPVwiZWxlbWVudFwiIChzYXZlZCk9XCJyZWxvYWQoKVwiPjwvYXBwLWxvY2F0aW9uLWZvcm0tYnV0dG9uPlxuXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImVsZW1lbnQ/LnN0b2NrX3JlY2VpcHRzX2NvdW50ID09IDAgJiYgZWxlbWVudD8uc3RvY2tfaXNzdWVzX2NvdW50ID09IDBcIj5cbiAgICAgICAgICAgICAgPGFwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uIFtkYXRhXT1cInt0aXRsZTogZWxlbWVudD8udGl0bGUsIHR5cGU6ICdMb2NhdGlvbid9XCIgW21vZGVsXT1cImVsZW1lbnRcIlxuICAgICAgICAgICAgICAgIFtzZXJ2aWNlXT1cInNlcnZpY2VcIiAoZGVsZXRlZCk9XCJyZWxvYWQoKVwiPjwvYXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XG4gICAgPC90YWJsZT5cbiAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cImlzV29ya2luZ1wiIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG48L21hdC1jYXJkPiJdfQ==
|
package/esm2022/lib/inventory-common/location/location-selector/location-selector.component.mjs
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { Component, forwardRef, input, signal } from '@angular/core';
|
|
2
|
+
import { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
|
5
|
+
import { MaterialModule } from '../../material.module';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../location.service";
|
|
8
|
+
import * as i2 from "ngx-techlify-core";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
import * as i4 from "@angular/material/core";
|
|
11
|
+
import * as i5 from "@angular/material/form-field";
|
|
12
|
+
import * as i6 from "@angular/material/select";
|
|
13
|
+
import * as i7 from "@angular/forms";
|
|
14
|
+
export class LocationSelectorComponent {
|
|
15
|
+
locationService;
|
|
16
|
+
featureService;
|
|
17
|
+
appearance = input('outline');
|
|
18
|
+
label = input('Location');
|
|
19
|
+
placeholder = input('Select a location');
|
|
20
|
+
includeNone = input(true);
|
|
21
|
+
isSubLocationEnabled = signal(false);
|
|
22
|
+
locations = [];
|
|
23
|
+
selectedValue = null;
|
|
24
|
+
isDisabled = false;
|
|
25
|
+
searchControl = new FormControl('');
|
|
26
|
+
onChange = () => { };
|
|
27
|
+
onTouched = () => { };
|
|
28
|
+
constructor(locationService, featureService) {
|
|
29
|
+
this.locationService = locationService;
|
|
30
|
+
this.featureService = featureService;
|
|
31
|
+
}
|
|
32
|
+
ngOnInit() {
|
|
33
|
+
this.isSubLocationEnabled.set(this.featureService.isFeatureExists('sub-locations'));
|
|
34
|
+
this.loadData();
|
|
35
|
+
this.setupSearch();
|
|
36
|
+
}
|
|
37
|
+
setupSearch() {
|
|
38
|
+
this.searchControl.valueChanges.pipe(debounceTime(400), distinctUntilChanged()).subscribe((value) => {
|
|
39
|
+
this.loadData(value);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
loadData(search = null) {
|
|
43
|
+
const params = {};
|
|
44
|
+
if (search) {
|
|
45
|
+
params.search = search;
|
|
46
|
+
}
|
|
47
|
+
this.locationService.index(params, true).subscribe({
|
|
48
|
+
next: (response) => {
|
|
49
|
+
const flatLocations = response.data;
|
|
50
|
+
this.locations = this.isSubLocationEnabled()
|
|
51
|
+
? this.buildHierarchy(flatLocations)
|
|
52
|
+
: flatLocations;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* To prevent recursive calls in the api while trying to get
|
|
58
|
+
* parent and children of a location, i've opted to have the ui
|
|
59
|
+
* build the hierarchy of locations
|
|
60
|
+
*/
|
|
61
|
+
buildHierarchy(locations) {
|
|
62
|
+
const locationMap = new Map();
|
|
63
|
+
locations.forEach(location => locationMap.set(location.id, location));
|
|
64
|
+
// Calculate depth for each location with cycle detection
|
|
65
|
+
const getDepth = (location, visited = new Set()) => {
|
|
66
|
+
if (!location.parent_id)
|
|
67
|
+
return 0;
|
|
68
|
+
if (visited.has(location.id))
|
|
69
|
+
return 0; // Prevent infinite loop if parent is same as child
|
|
70
|
+
visited.add(location.id); // Take note of visited locations
|
|
71
|
+
const parent = locationMap.get(location.parent_id);
|
|
72
|
+
if (!parent)
|
|
73
|
+
return 0;
|
|
74
|
+
return 1 + getDepth(parent, visited);
|
|
75
|
+
};
|
|
76
|
+
// Build hierarchical list with depths
|
|
77
|
+
const withDepths = locations.map(location => ({
|
|
78
|
+
id: location.id,
|
|
79
|
+
title: location.title,
|
|
80
|
+
parent_id: location.parent_id,
|
|
81
|
+
depth: getDepth(location)
|
|
82
|
+
}));
|
|
83
|
+
// Sort: root items first, then recursively add children
|
|
84
|
+
const result = [];
|
|
85
|
+
const added = new Set(); // Prevent infinite loop on cycles
|
|
86
|
+
// Find all "roots" - items with no parent, OR items whose parent is missing from the list
|
|
87
|
+
const rootIds = withDepths
|
|
88
|
+
.filter(location => !location.parent_id || !locationMap.has(location.parent_id))
|
|
89
|
+
.map(location => location.id);
|
|
90
|
+
const addWithChildren = (parentId, depth) => {
|
|
91
|
+
// If parentId is null, we look for our identified roots.
|
|
92
|
+
// Otherwise we look for children of the parentId.
|
|
93
|
+
const itemsToAdd = parentId === null
|
|
94
|
+
? withDepths.filter(location => rootIds.includes(location.id))
|
|
95
|
+
: withDepths.filter(location => location.parent_id === parentId);
|
|
96
|
+
itemsToAdd
|
|
97
|
+
.filter(location => !added.has(location.id))
|
|
98
|
+
.sort((a, b) => a.title.localeCompare(b.title))
|
|
99
|
+
.forEach(location => {
|
|
100
|
+
added.add(location.id);
|
|
101
|
+
result.push(location);
|
|
102
|
+
addWithChildren(location.id, depth + 1);
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
addWithChildren(null, 0);
|
|
106
|
+
// If there are still items not added (due to circular references A->B->A), add them as roots
|
|
107
|
+
if (added.size < withDepths.length) {
|
|
108
|
+
withDepths
|
|
109
|
+
.filter(location => !added.has(location.id))
|
|
110
|
+
.sort((a, b) => a.title.localeCompare(b.title))
|
|
111
|
+
.forEach(location => {
|
|
112
|
+
added.add(location.id);
|
|
113
|
+
result.push(location);
|
|
114
|
+
// Try to add children for this "forced root" in case it has valid children
|
|
115
|
+
addWithChildren(location.id, location.depth + 1);
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
onSelectionChange(value) {
|
|
121
|
+
this.selectedValue = value;
|
|
122
|
+
this.onChange(value);
|
|
123
|
+
this.onTouched();
|
|
124
|
+
}
|
|
125
|
+
writeValue(value) {
|
|
126
|
+
this.selectedValue = value;
|
|
127
|
+
}
|
|
128
|
+
registerOnChange(fn) {
|
|
129
|
+
this.onChange = fn;
|
|
130
|
+
}
|
|
131
|
+
registerOnTouched(fn) {
|
|
132
|
+
this.onTouched = fn;
|
|
133
|
+
}
|
|
134
|
+
setDisabledState(isDisabled) {
|
|
135
|
+
this.isDisabled = isDisabled;
|
|
136
|
+
}
|
|
137
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocationSelectorComponent, deps: [{ token: i1.LocationService }, { token: i2.TechlifyFeatureService }], target: i0.ɵɵFactoryTarget.Component });
|
|
138
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: LocationSelectorComponent, isStandalone: true, selector: "app-location-selector", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, includeNone: { classPropertyName: "includeNone", publicName: "includeNone", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
139
|
+
{
|
|
140
|
+
provide: NG_VALUE_ACCESSOR,
|
|
141
|
+
useExisting: forwardRef(() => LocationSelectorComponent),
|
|
142
|
+
multi: true
|
|
143
|
+
}
|
|
144
|
+
], ngImport: i0, template: "<mat-form-field class=\"w-100\" [appearance]=\"appearance()\">\n <mat-label>{{ label() }}</mat-label>\n <mat-select [value]=\"selectedValue\" [disabled]=\"isDisabled\" [placeholder]=\"placeholder()\"\n (selectionChange)=\"onSelectionChange($event.value)\">\n\n <div class=\"sticky-search-container\">\n <input [formControl]=\"searchControl\" placeholder=\"Search...\" class=\"search-input\" (keydown)=\"$event.stopPropagation()\">\n </div>\n\n <mat-option *ngIf=\"includeNone()\" [value]=\"null\">None</mat-option>\n\n <mat-option *ngFor=\"let location of locations\" [value]=\"location.id\">\n <span [ngStyle]=\"{'padding-left.px': location.depth * 16}\">\n <span *ngIf=\"location.depth > 0\">\u21B3 </span>{{ location.title }}\n </span>\n </mat-option>\n\n </mat-select>\n</mat-form-field>", styles: [".sticky-search-container{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid rgba(0,0,0,.04);margin-top:-8px;padding:8px 16px}.search-input{width:100%;padding:8px;border:none;outline:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MaterialModule }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], preserveWhitespaces: true });
|
|
145
|
+
}
|
|
146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocationSelectorComponent, decorators: [{
|
|
147
|
+
type: Component,
|
|
148
|
+
args: [{ selector: 'app-location-selector', standalone: true, imports: [
|
|
149
|
+
CommonModule,
|
|
150
|
+
MaterialModule,
|
|
151
|
+
ReactiveFormsModule
|
|
152
|
+
], providers: [
|
|
153
|
+
{
|
|
154
|
+
provide: NG_VALUE_ACCESSOR,
|
|
155
|
+
useExisting: forwardRef(() => LocationSelectorComponent),
|
|
156
|
+
multi: true
|
|
157
|
+
}
|
|
158
|
+
], template: "<mat-form-field class=\"w-100\" [appearance]=\"appearance()\">\n <mat-label>{{ label() }}</mat-label>\n <mat-select [value]=\"selectedValue\" [disabled]=\"isDisabled\" [placeholder]=\"placeholder()\"\n (selectionChange)=\"onSelectionChange($event.value)\">\n\n <div class=\"sticky-search-container\">\n <input [formControl]=\"searchControl\" placeholder=\"Search...\" class=\"search-input\" (keydown)=\"$event.stopPropagation()\">\n </div>\n\n <mat-option *ngIf=\"includeNone()\" [value]=\"null\">None</mat-option>\n\n <mat-option *ngFor=\"let location of locations\" [value]=\"location.id\">\n <span [ngStyle]=\"{'padding-left.px': location.depth * 16}\">\n <span *ngIf=\"location.depth > 0\">\u21B3 </span>{{ location.title }}\n </span>\n </mat-option>\n\n </mat-select>\n</mat-form-field>", styles: [".sticky-search-container{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid rgba(0,0,0,.04);margin-top:-8px;padding:8px 16px}.search-input{width:100%;padding:8px;border:none;outline:none}\n"] }]
|
|
159
|
+
}], ctorParameters: () => [{ type: i1.LocationService }, { type: i2.TechlifyFeatureService }] });
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24tc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vbG9jYXRpb24vbG9jYXRpb24tc2VsZWN0b3IvbG9jYXRpb24tc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vbG9jYXRpb24vbG9jYXRpb24tc2VsZWN0b3IvbG9jYXRpb24tc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7QUE4QnZELE1BQU0sT0FBTyx5QkFBeUI7SUFpQmhCO0lBQ1Y7SUFoQlYsVUFBVSxHQUFHLEtBQUssQ0FBeUIsU0FBUyxDQUFDLENBQUM7SUFDdEQsS0FBSyxHQUFHLEtBQUssQ0FBUyxVQUFVLENBQUMsQ0FBQztJQUNsQyxXQUFXLEdBQUcsS0FBSyxDQUFTLG1CQUFtQixDQUFDLENBQUM7SUFDakQsV0FBVyxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztJQUVuQyxvQkFBb0IsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENB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cndhcmRSZWYsIGlucHV0LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi8uLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgTG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vbG9jYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUZWNobGlmeUZlYXR1cmVTZXJ2aWNlIH0gZnJvbSAnbmd4LXRlY2hsaWZ5LWNvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuXG5pbnRlcmZhY2UgSGllcmFyY2hpY2FsTG9jYXRpb24ge1xuICBpZDogbnVtYmVyO1xuICB0aXRsZTogc3RyaW5nO1xuICBwYXJlbnRfaWQ6IG51bWJlciB8IG51bGw7XG4gIGRlcHRoOiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1sb2NhdGlvbi1zZWxlY3RvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0ZXJpYWxNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9jYXRpb24tc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sb2NhdGlvbi1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExvY2F0aW9uU2VsZWN0b3JDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9jYXRpb25TZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuXG4gIGFwcGVhcmFuY2UgPSBpbnB1dDxNYXRGb3JtRmllbGRBcHBlYXJhbmNlPignb3V0bGluZScpO1xuICBsYWJlbCA9IGlucHV0PHN0cmluZz4oJ0xvY2F0aW9uJyk7XG4gIHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignU2VsZWN0IGEgbG9jYXRpb24nKTtcbiAgaW5jbHVkZU5vbmUgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICBpc1N1YkxvY2F0aW9uRW5hYmxlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgbG9jYXRpb25zOiBIaWVyYXJjaGljYWxMb2NhdGlvbltdID0gW107XG4gIHNlbGVjdGVkVmFsdWU6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBpc0Rpc2FibGVkID0gZmFsc2U7XG4gIHNlYXJjaENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogbnVtYmVyIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHsgfTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7IH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2NhdGlvblNlcnZpY2U6IExvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGZlYXR1cmVTZXJ2aWNlOiBUZWNobGlmeUZlYXR1cmVTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc1N1YkxvY2F0aW9uRW5hYmxlZC5zZXQodGhpcy5mZWF0dXJlU2VydmljZS5pc0ZlYXR1cmVFeGlzdHMoJ3N1Yi1sb2NhdGlvbnMnKSk7XG5cbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgdGhpcy5zZXR1cFNlYXJjaCgpO1xuICB9XG5cbiAgc2V0dXBTZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDQwMCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKS5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICB0aGlzLmxvYWREYXRhKHZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWREYXRhKHNlYXJjaDogc3RyaW5nIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJhbXM6IGFueSA9IHt9O1xuICAgIGlmIChzZWFyY2gpIHtcbiAgICAgIHBhcmFtcy5zZWFyY2ggPSBzZWFyY2g7XG4gICAgfVxuXG4gICAgdGhpcy5sb2NhdGlvblNlcnZpY2UuaW5kZXgocGFyYW1zLCB0cnVlKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgZmxhdExvY2F0aW9ucyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIHRoaXMubG9jYXRpb25zID0gdGhpcy5pc1N1YkxvY2F0aW9uRW5hYmxlZCgpXG4gICAgICAgICAgPyB0aGlzLmJ1aWxkSGllcmFyY2h5KGZsYXRMb2NhdGlvbnMpXG4gICAgICAgICAgOiBmbGF0TG9jYXRpb25zO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvIHByZXZlbnQgcmVjdXJzaXZlIGNhbGxzIGluIHRoZSBhcGkgd2hpbGUgdHJ5aW5nIHRvIGdldFxuICAgKiBwYXJlbnQgYW5kIGNoaWxkcmVuIG9mIGEgbG9jYXRpb24sIGkndmUgb3B0ZWQgdG8gaGF2ZSB0aGUgdWkgXG4gICAqIGJ1aWxkIHRoZSBoaWVyYXJjaHkgb2YgbG9jYXRpb25zIFxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEhpZXJhcmNoeShsb2NhdGlvbnM6IGFueVtdKTogSGllcmFyY2hpY2FsTG9jYXRpb25bXSB7XG4gICAgY29uc3QgbG9jYXRpb25NYXAgPSBuZXcgTWFwPG51bWJlciwgYW55PigpO1xuICAgIGxvY2F0aW9ucy5mb3JFYWNoKGxvY2F0aW9uID0+IGxvY2F0aW9uTWFwLnNldChsb2NhdGlvbi5pZCwgbG9jYXRpb24pKTtcblxuICAgIC8vIENhbGN1bGF0ZSBkZXB0aCBmb3IgZWFjaCBsb2NhdGlvbiB3aXRoIGN5Y2xlIGRldGVjdGlvblxuICAgIGNvbnN0IGdldERlcHRoID0gKGxvY2F0aW9uOiBhbnksIHZpc2l0ZWQ6IFNldDxudW1iZXI+ID0gbmV3IFNldCgpKTogbnVtYmVyID0+IHtcbiAgICAgIGlmICghbG9jYXRpb24ucGFyZW50X2lkKSByZXR1cm4gMDtcbiAgICAgIGlmICh2aXNpdGVkLmhhcyhsb2NhdGlvbi5pZCkpIHJldHVybiAwOyAvLyBQcmV2ZW50IGluZmluaXRlIGxvb3AgaWYgcGFyZW50IGlzIHNhbWUgYXMgY2hpbGRcbiAgICAgIHZpc2l0ZWQuYWRkKGxvY2F0aW9uLmlkKTsgLy8gVGFrZSBub3RlIG9mIHZpc2l0ZWQgbG9jYXRpb25zXG5cbiAgICAgIGNvbnN0IHBhcmVudCA9IGxvY2F0aW9uTWFwLmdldChsb2NhdGlvbi5wYXJlbnRfaWQpO1xuICAgICAgaWYgKCFwYXJlbnQpIHJldHVybiAwO1xuXG4gICAgICByZXR1cm4gMSArIGdldERlcHRoKHBhcmVudCwgdmlzaXRlZCk7XG4gICAgfTtcblxuICAgIC8vIEJ1aWxkIGhpZXJhcmNoaWNhbCBsaXN0IHdpdGggZGVwdGhzXG4gICAgY29uc3Qgd2l0aERlcHRoczogSGllcmFyY2hpY2FsTG9jYXRpb25bXSA9IGxvY2F0aW9ucy5tYXAobG9jYXRpb24gPT4gKHtcbiAgICAgIGlkOiBsb2NhdGlvbi5pZCxcbiAgICAgIHRpdGxlOiBsb2NhdGlvbi50aXRsZSxcbiAgICAgIHBhcmVudF9pZDogbG9jYXRpb24ucGFyZW50X2lkLFxuICAgICAgZGVwdGg6IGdldERlcHRoKGxvY2F0aW9uKVxuICAgIH0pKTtcblxuICAgIC8vIFNvcnQ6IHJvb3QgaXRlbXMgZmlyc3QsIHRoZW4gcmVjdXJzaXZlbHkgYWRkIGNoaWxkcmVuXG4gICAgY29uc3QgcmVzdWx0OiBIaWVyYXJjaGljYWxMb2NhdGlvbltdID0gW107XG4gICAgY29uc3QgYWRkZWQgPSBuZXcgU2V0PG51bWJlcj4oKTsgLy8gUHJldmVudCBpbmZpbml0ZSBsb29wIG9uIGN5Y2xlc1xuXG4gICAgLy8gRmluZCBhbGwgXCJyb290c1wiIC0gaXRlbXMgd2l0aCBubyBwYXJlbnQsIE9SIGl0ZW1zIHdob3NlIHBhcmVudCBpcyBtaXNzaW5nIGZyb20gdGhlIGxpc3RcbiAgICBjb25zdCByb290SWRzID0gd2l0aERlcHRoc1xuICAgICAgLmZpbHRlcihsb2NhdGlvbiA9PiAhbG9jYXRpb24ucGFyZW50X2lkIHx8ICFsb2NhdGlvbk1hcC5oYXMobG9jYXRpb24ucGFyZW50X2lkKSlcbiAgICAgIC5tYXAobG9jYXRpb24gPT4gbG9jYXRpb24uaWQpO1xuXG4gICAgY29uc3QgYWRkV2l0aENoaWxkcmVuID0gKHBhcmVudElkOiBudW1iZXIgfCBudWxsLCBkZXB0aDogbnVtYmVyKSA9PiB7XG4gICAgICAvLyBJZiBwYXJlbnRJZCBpcyBudWxsLCB3ZSBsb29rIGZvciBvdXIgaWRlbnRpZmllZCByb290cy4gXG4gICAgICAvLyBPdGhlcndpc2Ugd2UgbG9vayBmb3IgY2hpbGRyZW4gb2YgdGhlIHBhcmVudElkLlxuICAgICAgY29uc3QgaXRlbXNUb0FkZCA9IHBhcmVudElkID09PSBudWxsXG4gICAgICAgID8gd2l0aERlcHRocy5maWx0ZXIobG9jYXRpb24gPT4gcm9vdElkcy5pbmNsdWRlcyhsb2NhdGlvbi5pZCkpXG4gICAgICAgIDogd2l0aERlcHRocy5maWx0ZXIobG9jYXRpb24gPT4gbG9jYXRpb24ucGFyZW50X2lkID09PSBwYXJlbnRJZCk7XG5cbiAgICAgIGl0ZW1zVG9BZGRcbiAgICAgICAgLmZpbHRlcihsb2NhdGlvbiA9PiAhYWRkZWQuaGFzKGxvY2F0aW9uLmlkKSlcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEudGl0bGUubG9jYWxlQ29tcGFyZShiLnRpdGxlKSlcbiAgICAgICAgLmZvckVhY2gobG9jYXRpb24gPT4ge1xuICAgICAgICAgIGFkZGVkLmFkZChsb2NhdGlvbi5pZCk7XG4gICAgICAgICAgcmVzdWx0LnB1c2gobG9jYXRpb24pO1xuICAgICAgICAgIGFkZFdpdGhDaGlsZHJlbihsb2NhdGlvbi5pZCwgZGVwdGggKyAxKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGFkZFdpdGhDaGlsZHJlbihudWxsLCAwKTtcblxuICAgIC8vIElmIHRoZXJlIGFyZSBzdGlsbCBpdGVtcyBub3QgYWRkZWQgKGR1ZSB0byBjaXJjdWxhciByZWZlcmVuY2VzIEEtPkItPkEpLCBhZGQgdGhlbSBhcyByb290c1xuICAgIGlmIChhZGRlZC5zaXplIDwgd2l0aERlcHRocy5sZW5ndGgpIHtcbiAgICAgIHdpdGhEZXB0aHNcbiAgICAgICAgLmZpbHRlcihsb2NhdGlvbiA9PiAhYWRkZWQuaGFzKGxvY2F0aW9uLmlkKSlcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEudGl0bGUubG9jYWxlQ29tcGFyZShiLnRpdGxlKSlcbiAgICAgICAgLmZvckVhY2gobG9jYXRpb24gPT4ge1xuICAgICAgICAgICBhZGRlZC5hZGQobG9jYXRpb24uaWQpO1xuICAgICAgICAgICByZXN1bHQucHVzaChsb2NhdGlvbik7XG4gICAgICAgICAgIC8vIFRyeSB0byBhZGQgY2hpbGRyZW4gZm9yIHRoaXMgXCJmb3JjZWQgcm9vdFwiIGluIGNhc2UgaXQgaGFzIHZhbGlkIGNoaWxkcmVuXG4gICAgICAgICAgIGFkZFdpdGhDaGlsZHJlbihsb2NhdGlvbi5pZCwgbG9jYXRpb24uZGVwdGggKyAxKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIG9uU2VsZWN0aW9uQ2hhbmdlKHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogbnVtYmVyIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCIgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZSgpXCI+XG4gIDxtYXQtbGFiZWw+e3sgbGFiZWwoKSB9fTwvbWF0LWxhYmVsPlxuICA8bWF0LXNlbGVjdCBbdmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxuICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50LnZhbHVlKVwiPlxuXG4gICAgPGRpdiBjbGFzcz1cInN0aWNreS1zZWFyY2gtY29udGFpbmVyXCI+XG4gICAgICAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJzZWFyY2hDb250cm9sXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2guLi5cIiBjbGFzcz1cInNlYXJjaC1pbnB1dFwiIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgIDwvZGl2PlxuXG4gICAgPG1hdC1vcHRpb24gKm5nSWY9XCJpbmNsdWRlTm9uZSgpXCIgW3ZhbHVlXT1cIm51bGxcIj5Ob25lPC9tYXQtb3B0aW9uPlxuXG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGxvY2F0aW9uIG9mIGxvY2F0aW9uc1wiIFt2YWx1ZV09XCJsb2NhdGlvbi5pZFwiPlxuICAgICAgPHNwYW4gW25nU3R5bGVdPVwieydwYWRkaW5nLWxlZnQucHgnOiBsb2NhdGlvbi5kZXB0aCAqIDE2fVwiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImxvY2F0aW9uLmRlcHRoID4gMFwiPuKGsyA8L3NwYW4+e3sgbG9jYXRpb24udGl0bGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L21hdC1vcHRpb24+XG5cbiAgPC9tYXQtc2VsZWN0PlxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
|
|
@@ -48,7 +48,7 @@ export class LocationStatusChangerComponent extends TechlifyFormComponentInterfa
|
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
50
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocationStatusChangerComponent, deps: [{ token: i1.FormValidatorService }, { token: i2.LocationService }, { token: i3.FormBuilder }, { token: i1.ErrorHandlerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
51
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LocationStatusChangerComponent, isStandalone: true, selector: "app-location-status-changer", inputs: { location: "location" }, usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <mat-label>Status</mat-label>\n <app-searchable-selector apiUrl=\"api/
|
|
51
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LocationStatusChangerComponent, isStandalone: true, selector: "app-location-status-changer", inputs: { location: "location" }, usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <mat-label>Status</mat-label>\n <app-searchable-selector apiUrl=\"api/techlify-statuses\"\n formControlName=\"status_id\" [cache]=\"true\"></app-searchable-selector>\n </mat-form-field>\n</form>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MaterialModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: SearchableSelectorModule }, { kind: "component", type: i1.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }], preserveWhitespaces: true });
|
|
52
52
|
}
|
|
53
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocationStatusChangerComponent, decorators: [{
|
|
54
54
|
type: Component,
|
|
@@ -57,8 +57,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
57
57
|
MaterialModule,
|
|
58
58
|
ReactiveFormsModule,
|
|
59
59
|
SearchableSelectorModule
|
|
60
|
-
], template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <mat-label>Status</mat-label>\n <app-searchable-selector apiUrl=\"api/
|
|
60
|
+
], template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <mat-label>Status</mat-label>\n <app-searchable-selector apiUrl=\"api/techlify-statuses\"\n formControlName=\"status_id\" [cache]=\"true\"></app-searchable-selector>\n </mat-form-field>\n</form>" }]
|
|
61
61
|
}], ctorParameters: () => [{ type: i1.FormValidatorService }, { type: i2.LocationService }, { type: i3.FormBuilder }, { type: i1.ErrorHandlerService }], propDecorators: { location: [{
|
|
62
62
|
type: Input
|
|
63
63
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24tc3RhdHVzLWNoYW5nZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vbG9jYXRpb24vbG9jYXRpb24tc3RhdHVzLWNoYW5nZXIvbG9jYXRpb24tc3RhdHVzLWNoYW5nZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vbG9jYXRpb24vbG9jYXRpb24tc3RhdHVzLWNoYW5nZXIvbG9jYXRpb24tc3RhdHVzLWNoYW5nZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQTJELHdCQUF3QixFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEosT0FBTyxFQUFlLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQWVsRSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsOEJBQThCO0lBSWpEO0lBQ1Y7SUFDWDtJQUNBO0lBTEQsUUFBUSxDQUFPO0lBRXhCLFlBQStCLG9CQUEwQyxFQUNwRCxPQUF3QixFQUNuQyxFQUFlLEVBQ2YsWUFBaUM7UUFFekMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFMQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQ3BELFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ25DLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFJekMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDUixTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNuQixFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3BCLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVM7U0FDbkMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO1lBQy9CLElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDbkQsSUFBSSxFQUFFLEdBQUcsRUFBRTtnQkFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUUzQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyx1Q0FBdUMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNqRixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO3dHQXpDVSw4QkFBOEI7NEZBQTlCLDhCQUE4QixnSkNuQjNDLGtRQU1PLHlERE9ILFlBQVksOEJBQ1osY0FBYywwU0FDZCxtQkFBbUIsNHJCQUNuQix3QkFBd0I7OzRGQUdmLDhCQUE4QjtrQkFaMUMsU0FBUzsrQkFDRSw2QkFBNkIsY0FHM0IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLHdCQUF3QjtxQkFDekI7bUxBSVEsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vLi4vbWF0ZXJpYWwubW9kdWxlJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgRXJyb3JIYW5kbGVyU2VydmljZSwgRm9ybVZhbGlkYXRvclNlcnZpY2UsIFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSwgVGVjaGxpZnlGb3JtQ29tcG9uZW50SW50ZXJmYWNlIH0gZnJvbSAnbmd4LXRlY2hsaWZ5LWNvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9sb2NhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWxvY2F0aW9uLXN0YXR1cy1jaGFuZ2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvY2F0aW9uLXN0YXR1cy1jaGFuZ2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbG9jYXRpb24tc3RhdHVzLWNoYW5nZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRlcmlhbE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBMb2NhdGlvblN0YXR1c0NoYW5nZXJDb21wb25lbnQgZXh0ZW5kcyBUZWNobGlmeUZvcm1Db21wb25lbnRJbnRlcmZhY2UgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGxvY2F0aW9uITogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvdmVycmlkZSBmb3JtVmFsaWRhdG9yU2VydmljZTogRm9ybVZhbGlkYXRvclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNlcnZpY2U6IExvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGVycm9ySGFuZGxlcjogRXJyb3JIYW5kbGVyU2VydmljZVxuICApIHtcbiAgICBzdXBlcihmb3JtVmFsaWRhdG9yU2VydmljZSk7XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGlkOiBbJyddLFxuICAgICAgc3RhdHVzX2lkOiBbJyddXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBpZDogdGhpcy5sb2NhdGlvbi5pZCxcbiAgICAgIHN0YXR1c19pZDogdGhpcy5sb2NhdGlvbi5zdGF0dXNfaWRcbiAgICB9KVxuXG4gICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICB0aGlzLnNhdmUoKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLnNlcnZpY2UudXBkYXRlU3RhdHVzKHRoaXMuZm9ybS52YWx1ZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG5cbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ0xvY2F0aW9uIHN0YXR1cyB1cGRhdGVkIHN1Y2Nlc3NmdWxseSEnLCAnc3VjY2VzcycpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWxhYmVsPlN0YXR1czwvbWF0LWxhYmVsPlxuICAgIDxhcHAtc2VhcmNoYWJsZS1zZWxlY3RvciBhcGlVcmw9XCJhcGkvdGVjaGxpZnktc3RhdHVzZXNcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RhdHVzX2lkXCIgW2NhY2hlXT1cInRydWVcIj48L2FwcC1zZWFyY2hhYmxlLXNlbGVjdG9yPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9mb3JtPiJdfQ==
|