techlify-inventory-common 18.9.0 → 18.10.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/incident/incident-form/incident-form.component.mjs +116 -0
- package/esm2022/lib/inventory-common/incident/incident-form-button/incident-form-button.component.mjs +45 -0
- package/esm2022/lib/inventory-common/incident/incident-list/incident-list.component.mjs +142 -0
- package/esm2022/lib/inventory-common/incident/incident-routing.module.mjs +24 -0
- package/esm2022/lib/inventory-common/incident/incident.module.mjs +22 -0
- package/esm2022/lib/inventory-common/incident/incident.service.mjs +18 -0
- package/esm2022/lib/inventory-common/location/location-list/location-list.component.mjs +4 -4
- package/esm2022/lib/inventory-common/location/location-status-changer/location-status-changer.component.mjs +2 -2
- package/esm2022/lib/inventory-common/location/location.service.mjs +5 -2
- package/esm2022/lib/inventory-common/rating/rating-form/rating-form.component.mjs +115 -0
- package/esm2022/lib/inventory-common/rating/rating-form-button/rating-form-button.component.mjs +45 -0
- package/esm2022/lib/inventory-common/rating/rating-list/rating-list.component.mjs +138 -0
- package/esm2022/lib/inventory-common/rating/rating-routing.module.mjs +23 -0
- package/esm2022/lib/inventory-common/rating/rating.module.mjs +22 -0
- package/esm2022/lib/inventory-common/rating/rating.service.mjs +18 -0
- package/esm2022/lib/inventory-common/stock-issuances/stock-issuances-list/stock-issuances-list.component.mjs +4 -4
- package/esm2022/lib/inventory-common/stock-receipts/stock-receipts-list-page/stock-receipts-list-page.component.mjs +4 -4
- package/esm2022/lib/inventory-common/supplier/supplier-routing.module.mjs +1 -1
- package/esm2022/lib/inventory-common/supplier/supplier-view/supplier-view.component.mjs +6 -4
- package/esm2022/lib/inventory-common/supplier/supplier.module.mjs +12 -4
- package/esm2022/public-api.mjs +11 -1
- package/fesm2022/{techlify-inventory-common-category.module-CudtmNjt.mjs → techlify-inventory-common-category.module-BmhaQykz.mjs} +2 -2
- package/fesm2022/{techlify-inventory-common-category.module-CudtmNjt.mjs.map → techlify-inventory-common-category.module-BmhaQykz.mjs.map} +1 -1
- package/fesm2022/{techlify-inventory-common-location.module-CnPskQPn.mjs → techlify-inventory-common-location.module-CSrRu4pQ.mjs} +6 -6
- package/fesm2022/techlify-inventory-common-location.module-CSrRu4pQ.mjs.map +1 -0
- package/fesm2022/{techlify-inventory-common-measure.module-DPksMxa4.mjs → techlify-inventory-common-measure.module-Dz5Lc4oT.mjs} +2 -2
- package/fesm2022/{techlify-inventory-common-measure.module-DPksMxa4.mjs.map → techlify-inventory-common-measure.module-Dz5Lc4oT.mjs.map} +1 -1
- package/fesm2022/{techlify-inventory-common-techlify-inventory-common-DvqFrI7f.mjs → techlify-inventory-common-techlify-inventory-common-BBi2hKoE.mjs} +669 -36
- package/fesm2022/techlify-inventory-common-techlify-inventory-common-BBi2hKoE.mjs.map +1 -0
- package/fesm2022/techlify-inventory-common.mjs +1 -1
- package/lib/inventory-common/incident/incident-form/incident-form.component.d.ts +21 -0
- package/lib/inventory-common/incident/incident-form-button/incident-form-button.component.d.ts +15 -0
- package/lib/inventory-common/incident/incident-list/incident-list.component.d.ts +23 -0
- package/lib/inventory-common/incident/incident-routing.module.d.ts +7 -0
- package/lib/inventory-common/incident/incident.module.d.ts +8 -0
- package/lib/inventory-common/incident/incident.service.d.ts +7 -0
- package/lib/inventory-common/location/location.service.d.ts +3 -0
- package/lib/inventory-common/rating/rating-form/rating-form.component.d.ts +21 -0
- package/lib/inventory-common/rating/rating-form-button/rating-form-button.component.d.ts +15 -0
- package/lib/inventory-common/rating/rating-list/rating-list.component.d.ts +23 -0
- package/lib/inventory-common/rating/rating-routing.module.d.ts +7 -0
- package/lib/inventory-common/rating/rating.module.d.ts +8 -0
- package/lib/inventory-common/rating/rating.service.d.ts +7 -0
- package/lib/inventory-common/supplier/supplier.module.d.ts +3 -1
- package/package.json +1 -1
- package/public-api.d.ts +10 -0
- package/fesm2022/techlify-inventory-common-location.module-CnPskQPn.mjs.map +0 -1
- package/fesm2022/techlify-inventory-common-techlify-inventory-common-DvqFrI7f.mjs.map +0 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { SearchableSelectorModule, TechlifyFormComponentInterface } from "ngx-techlify-core";
|
|
3
|
+
import { ReactiveFormsModule, Validators } from "@angular/forms";
|
|
4
|
+
import { MatError, MatFormField, MatLabel } from "@angular/material/form-field";
|
|
5
|
+
import { MatInput } from "@angular/material/input";
|
|
6
|
+
import { MatDatepicker, MatDatepickerInput } from "@angular/material/datepicker";
|
|
7
|
+
import { MatButton } from "@angular/material/button";
|
|
8
|
+
import { NgIf } from "@angular/common";
|
|
9
|
+
import moment from "moment/moment";
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "ngx-techlify-core";
|
|
12
|
+
import * as i2 from "@angular/forms";
|
|
13
|
+
import * as i3 from "../incident.service";
|
|
14
|
+
export class IncidentFormComponent extends TechlifyFormComponentInterface {
|
|
15
|
+
formBuilder;
|
|
16
|
+
alertService;
|
|
17
|
+
incidentService;
|
|
18
|
+
incident;
|
|
19
|
+
incidentableType;
|
|
20
|
+
incidentableId;
|
|
21
|
+
saved = new EventEmitter();
|
|
22
|
+
cancelled = new EventEmitter();
|
|
23
|
+
isWorking = false;
|
|
24
|
+
constructor(formValidatorService, formBuilder, alertService, incidentService) {
|
|
25
|
+
super(formValidatorService);
|
|
26
|
+
this.formBuilder = formBuilder;
|
|
27
|
+
this.alertService = alertService;
|
|
28
|
+
this.incidentService = incidentService;
|
|
29
|
+
this.errorMessages = {
|
|
30
|
+
date: {
|
|
31
|
+
required: 'The date field is required.'
|
|
32
|
+
},
|
|
33
|
+
classification_id: {
|
|
34
|
+
required: 'The classification field is required.'
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
this.form = this.formBuilder.group({
|
|
38
|
+
id: [''],
|
|
39
|
+
date: ['', Validators.required],
|
|
40
|
+
classification_id: ['', Validators.required],
|
|
41
|
+
cost: [''],
|
|
42
|
+
details: [''],
|
|
43
|
+
incidentable_id: [''],
|
|
44
|
+
incidentable_type: ['']
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
ngOnInit() {
|
|
48
|
+
if (this.incidentableType && this.incidentableId) {
|
|
49
|
+
this.form.patchValue({
|
|
50
|
+
incidentable_type: this.incidentableType,
|
|
51
|
+
incidentable_id: this.incidentableId
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
if (this.incident) {
|
|
55
|
+
const data = { ...this.incident };
|
|
56
|
+
if (data?.date) {
|
|
57
|
+
data.date = new Date(data.date);
|
|
58
|
+
}
|
|
59
|
+
this.form.patchValue(data);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
save() {
|
|
63
|
+
this.form.markAllAsTouched();
|
|
64
|
+
if (this.form.invalid) {
|
|
65
|
+
this.alertService.addAlert('Please check the form for errors.', 'error');
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const data = {
|
|
69
|
+
...this.form.value
|
|
70
|
+
};
|
|
71
|
+
if (data?.date) {
|
|
72
|
+
data.date = moment(data.date).format('YYYY-MM-DD');
|
|
73
|
+
}
|
|
74
|
+
let request = this.incidentService.store(data);
|
|
75
|
+
if (data?.id) {
|
|
76
|
+
request = this.incidentService.update(data);
|
|
77
|
+
}
|
|
78
|
+
this.isWorking = true;
|
|
79
|
+
request.subscribe({
|
|
80
|
+
next: (response) => {
|
|
81
|
+
this.saved.emit(response?.item);
|
|
82
|
+
this.isWorking = false;
|
|
83
|
+
this.alertService.addAlert('The incident saved successfully!', 'success');
|
|
84
|
+
},
|
|
85
|
+
error: () => (this.isWorking = false)
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IncidentFormComponent, deps: [{ token: i1.FormValidatorService }, { token: i2.FormBuilder }, { token: i1.AlertService }, { token: i3.IncidentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
89
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: IncidentFormComponent, isStandalone: true, selector: "app-incident-form", inputs: { incident: "incident", incidentableType: "incidentableType", incidentableId: "incidentableId" }, outputs: { saved: "saved", cancelled: "cancelled" }, usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\"\n (submit)=\"save()\"\n class=\"d-flex flex-column justify-content-start gap-2\">\n <mat-form-field>\n <mat-label>Date</mat-label>\n <input matInput formControlName=\"date\" [matDatepicker]=\"picker\" placeholder=\"Date\" (focus)=\"picker.open()\">\n <mat-datepicker #picker></mat-datepicker>\n <mat-error *ngIf=\"isFieldValid('date')\">\n {{ getErrorMessage('date') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Classification</mat-label>\n <app-searchable-selector\n required\n formControlName=\"classification_id\"\n apiUrl=\"api/incident-classifications\"\n [enableSearch]=\"false\"\n ></app-searchable-selector>\n <mat-error *ngIf=\"isFieldValid('classification_id')\">\n {{ getErrorMessage('classification_id') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Cost</mat-label>\n <input matInput type=\"number\" formControlName=\"cost\" placeholder=\"Cost\"/>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Details</mat-label>\n <textarea matInput formControlName=\"details\" rows=\"3\" placeholder=\"Details\"></textarea>\n </mat-form-field>\n\n <div class=\"d-flex justify-content-end align-items-center gap-3\">\n <button [disabled]=\"isWorking\" mat-raised-button color=\"primary\" type=\"submit\">Save</button>\n <button [disabled]=\"isWorking\" mat-flat-button type=\"button\" (click)=\"cancelled.emit()\">Cancel</button>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: 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: "directive", type: MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { 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: i1.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], preserveWhitespaces: true });
|
|
90
|
+
}
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IncidentFormComponent, decorators: [{
|
|
92
|
+
type: Component,
|
|
93
|
+
args: [{ selector: 'app-incident-form', standalone: true, imports: [
|
|
94
|
+
MatFormField,
|
|
95
|
+
MatLabel,
|
|
96
|
+
MatInput,
|
|
97
|
+
MatDatepickerInput,
|
|
98
|
+
MatDatepicker,
|
|
99
|
+
ReactiveFormsModule,
|
|
100
|
+
SearchableSelectorModule,
|
|
101
|
+
MatButton,
|
|
102
|
+
MatError,
|
|
103
|
+
NgIf
|
|
104
|
+
], template: "<form [formGroup]=\"form\"\n (submit)=\"save()\"\n class=\"d-flex flex-column justify-content-start gap-2\">\n <mat-form-field>\n <mat-label>Date</mat-label>\n <input matInput formControlName=\"date\" [matDatepicker]=\"picker\" placeholder=\"Date\" (focus)=\"picker.open()\">\n <mat-datepicker #picker></mat-datepicker>\n <mat-error *ngIf=\"isFieldValid('date')\">\n {{ getErrorMessage('date') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Classification</mat-label>\n <app-searchable-selector\n required\n formControlName=\"classification_id\"\n apiUrl=\"api/incident-classifications\"\n [enableSearch]=\"false\"\n ></app-searchable-selector>\n <mat-error *ngIf=\"isFieldValid('classification_id')\">\n {{ getErrorMessage('classification_id') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Cost</mat-label>\n <input matInput type=\"number\" formControlName=\"cost\" placeholder=\"Cost\"/>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Details</mat-label>\n <textarea matInput formControlName=\"details\" rows=\"3\" placeholder=\"Details\"></textarea>\n </mat-form-field>\n\n <div class=\"d-flex justify-content-end align-items-center gap-3\">\n <button [disabled]=\"isWorking\" mat-raised-button color=\"primary\" type=\"submit\">Save</button>\n <button [disabled]=\"isWorking\" mat-flat-button type=\"button\" (click)=\"cancelled.emit()\">Cancel</button>\n </div>\n</form>\n" }]
|
|
105
|
+
}], ctorParameters: () => [{ type: i1.FormValidatorService }, { type: i2.FormBuilder }, { type: i1.AlertService }, { type: i3.IncidentService }], propDecorators: { incident: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}], incidentableType: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}], incidentableId: [{
|
|
110
|
+
type: Input
|
|
111
|
+
}], saved: [{
|
|
112
|
+
type: Output
|
|
113
|
+
}], cancelled: [{
|
|
114
|
+
type: Output
|
|
115
|
+
}] } });
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jaWRlbnQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9pbmNpZGVudC9pbmNpZGVudC1mb3JtL2luY2lkZW50LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vaW5jaWRlbnQvaW5jaWRlbnQtZm9ybS9pbmNpZGVudC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUdMLHdCQUF3QixFQUN4Qiw4QkFBOEIsRUFDL0IsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQWMsbUJBQW1CLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUUsT0FBTyxFQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDOUUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sRUFBQyxhQUFhLEVBQUUsa0JBQWtCLEVBQXNCLE1BQU0sOEJBQThCLENBQUM7QUFDcEcsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUdyQyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7Ozs7O0FBb0JuQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsOEJBQThCO0lBVzdEO0lBQ0E7SUFDQTtJQVpELFFBQVEsQ0FBTTtJQUNkLGdCQUFnQixDQUFV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QUcsSUFBSSxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDaEIsSUFBSSxFQUFFLENBQUMsUUFBYSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGtDQUFrQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzVFLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUN0QyxDQUFDLENBQUE7SUFDSixDQUFDO3dHQWpGVSxxQkFBcUI7NEZBQXJCLHFCQUFxQixtUUNuQ2xDLCsvQ0F3Q0EsMEREbkJJLFlBQVksNExBQ1osUUFBUSxzREFDUixRQUFRLGlVQUNSLGtCQUFrQixtS0FDbEIsYUFBYSx1RkFDYixtQkFBbUIsMjBDQUNuQix3QkFBd0IsbWhCQUN4QixTQUFTLGlMQUNULFFBQVEsa0ZBQ1IsSUFBSTs7NEZBS0sscUJBQXFCO2tCQWxCakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osUUFBUTt3QkFDUixRQUFRO3dCQUNSLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsU0FBUzt3QkFDVCxRQUFRO3dCQUNSLElBQUk7cUJBQ0w7NEtBS1EsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICBTZWFyY2hhYmxlU2VsZWN0b3JNb2R1bGUsXG4gIFRlY2hsaWZ5Rm9ybUNvbXBvbmVudEludGVyZmFjZVxufSBmcm9tIFwibmd4LXRlY2hsaWZ5LWNvcmVcIjtcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnN9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtNYXRFcnJvciwgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xuaW1wb3J0IHtNYXREYXRlcGlja2VyLCBNYXREYXRlcGlja2VySW5wdXQsIE1hdERhdGVwaWNrZXJUb2dnbGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyXCI7XG5pbXBvcnQge01hdEJ1dHRvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xuaW1wb3J0IHtOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge0luY2lkZW50U2VydmljZX0gZnJvbSBcIi4uL2luY2lkZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudC9tb21lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWluY2lkZW50LWZvcm0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0Rm9ybUZpZWxkLFxuICAgIE1hdExhYmVsLFxuICAgIE1hdElucHV0LFxuICAgIE1hdERhdGVwaWNrZXJJbnB1dCxcbiAgICBNYXREYXRlcGlja2VyLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU2VhcmNoYWJsZVNlbGVjdG9yTW9kdWxlLFxuICAgIE1hdEJ1dHRvbixcbiAgICBNYXRFcnJvcixcbiAgICBOZ0lmXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmNpZGVudC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2luY2lkZW50LWZvcm0uY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEluY2lkZW50Rm9ybUNvbXBvbmVudCBleHRlbmRzIFRlY2hsaWZ5Rm9ybUNvbXBvbmVudEludGVyZmFjZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGluY2lkZW50OiBhbnk7XG4gIEBJbnB1dCgpIGluY2lkZW50YWJsZVR5cGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGluY2lkZW50YWJsZUlkITogbnVtYmVyO1xuICBAT3V0cHV0KCkgc2F2ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxsZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgaXNXb3JraW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmNpZGVudFNlcnZpY2U6IEluY2lkZW50U2VydmljZVxuICApIHtcbiAgICBzdXBlcihmb3JtVmFsaWRhdG9yU2VydmljZSk7XG5cbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSB7XG4gICAgICBkYXRlOiB7XG4gICAgICAgIHJlcXVpcmVkOiAnVGhlIGRhdGUgZmllbGQgaXMgcmVxdWlyZWQuJ1xuICAgICAgfSxcbiAgICAgIGNsYXNzaWZpY2F0aW9uX2lkOiB7XG4gICAgICAgIHJlcXVpcmVkOiAnVGhlIGNsYXNzaWZpY2F0aW9uIGZpZWxkIGlzIHJlcXVpcmVkLidcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGlkOiBbJyddLFxuICAgICAgZGF0ZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGNsYXNzaWZpY2F0aW9uX2lkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgY29zdDogWycnXSxcbiAgICAgIGRldGFpbHM6IFsnJ10sXG4gICAgICBpbmNpZGVudGFibGVfaWQ6IFsnJ10sXG4gICAgICBpbmNpZGVudGFibGVfdHlwZTogWycnXVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuaW5jaWRlbnRhYmxlVHlwZSAmJiB0aGlzLmluY2lkZW50YWJsZUlkKSB7XG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIGluY2lkZW50YWJsZV90eXBlOiB0aGlzLmluY2lkZW50YWJsZVR5cGUsXG4gICAgICAgIGluY2lkZW50YWJsZV9pZDogdGhpcy5pbmNpZGVudGFibGVJZFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5jaWRlbnQpIHtcbiAgICAgIGNvbnN0IGRhdGE6IGFueSA9IHsgLi4udGhpcy5pbmNpZGVudCB9O1xuICAgICAgaWYgKGRhdGE/LmRhdGUpIHtcbiAgICAgICAgZGF0YS5kYXRlID0gbmV3IERhdGUoZGF0YS5kYXRlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKGRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcbiAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydCgnUGxlYXNlIGNoZWNrIHRoZSBmb3JtIGZvciBlcnJvcnMuJywgJ2Vycm9yJyk7XG4gICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGE6IGFueSA9IHtcbiAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZVxuICAgIH1cbiAgICBpZiAoZGF0YT8uZGF0ZSkge1xuICAgICAgZGF0YS5kYXRlID0gbW9tZW50KGRhdGEuZGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gICAgfVxuXG4gICAgbGV0IHJlcXVlc3Q6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuaW5jaWRlbnRTZXJ2aWNlLnN0b3JlKGRhdGEpO1xuICAgIGlmIChkYXRhPy5pZCkge1xuICAgICAgcmVxdWVzdCA9IHRoaXMuaW5jaWRlbnRTZXJ2aWNlLnVwZGF0ZShkYXRhKTtcbiAgICB9XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIHJlcXVlc3Quc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc2F2ZWQuZW1pdChyZXNwb25zZT8uaXRlbSk7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KCdUaGUgaW5jaWRlbnQgc2F2ZWQgc3VjY2Vzc2Z1bGx5IScsICdzdWNjZXNzJyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+ICh0aGlzLmlzV29ya2luZyA9IGZhbHNlKVxuICAgIH0pXG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICAoc3VibWl0KT1cInNhdmUoKVwiXG4gICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgZ2FwLTJcIj5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+RGF0ZTwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCIgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCIgcGxhY2Vob2xkZXI9XCJEYXRlXCIgKGZvY3VzKT1cInBpY2tlci5vcGVuKClcIj5cbiAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcj48L21hdC1kYXRlcGlja2VyPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ2RhdGUnKVwiPlxuICAgICAge3sgZ2V0RXJyb3JNZXNzYWdlKCdkYXRlJykgfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1sYWJlbD5DbGFzc2lmaWNhdGlvbjwvbWF0LWxhYmVsPlxuICAgIDxhcHAtc2VhcmNoYWJsZS1zZWxlY3RvclxuICAgICAgcmVxdWlyZWRcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImNsYXNzaWZpY2F0aW9uX2lkXCJcbiAgICAgIGFwaVVybD1cImFwaS9pbmNpZGVudC1jbGFzc2lmaWNhdGlvbnNcIlxuICAgICAgW2VuYWJsZVNlYXJjaF09XCJmYWxzZVwiXG4gICAgPjwvYXBwLXNlYXJjaGFibGUtc2VsZWN0b3I+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgnY2xhc3NpZmljYXRpb25faWQnKVwiPlxuICAgICAge3sgZ2V0RXJyb3JNZXNzYWdlKCdjbGFzc2lmaWNhdGlvbl9pZCcpIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+Q29zdDwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgZm9ybUNvbnRyb2xOYW1lPVwiY29zdFwiIHBsYWNlaG9sZGVyPVwiQ29zdFwiLz5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1sYWJlbD5EZXRhaWxzPC9tYXQtbGFiZWw+XG4gICAgPHRleHRhcmVhIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImRldGFpbHNcIiByb3dzPVwiM1wiIHBsYWNlaG9sZGVyPVwiRGV0YWlsc1wiPjwvdGV4dGFyZWE+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImlzV29ya2luZ1wiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIj5TYXZlPC9idXR0b24+XG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNXb3JraW5nXCIgbWF0LWZsYXQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2FuY2VsbGVkLmVtaXQoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { MatIcon } from "@angular/material/icon";
|
|
3
|
+
import { MatDialogContent, MatDialogTitle } from "@angular/material/dialog";
|
|
4
|
+
import { IncidentFormComponent } from "../incident-form/incident-form.component";
|
|
5
|
+
import { NgIf } from "@angular/common";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/material/dialog";
|
|
8
|
+
export class IncidentFormButtonComponent {
|
|
9
|
+
matDialog;
|
|
10
|
+
incident;
|
|
11
|
+
incidentableType;
|
|
12
|
+
incidentableId;
|
|
13
|
+
saved = new EventEmitter();
|
|
14
|
+
constructor(matDialog) {
|
|
15
|
+
this.matDialog = matDialog;
|
|
16
|
+
}
|
|
17
|
+
showForm(templateRef) {
|
|
18
|
+
this.matDialog.open(templateRef, { width: '400px' });
|
|
19
|
+
}
|
|
20
|
+
onSaved(category) {
|
|
21
|
+
this.matDialog.closeAll();
|
|
22
|
+
this.saved.emit(category);
|
|
23
|
+
}
|
|
24
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IncidentFormButtonComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: IncidentFormButtonComponent, isStandalone: true, selector: "app-incident-form-button", inputs: { incident: "incident", incidentableType: "incidentableType", incidentableId: "incidentableId" }, outputs: { saved: "saved" }, ngImport: i0, template: "<mat-icon\n *ngIf=\"!incident\"\n color=\"primary\"\n class=\"cursor-pointer\"\n (click)=\"showForm(formTemplate)\"\n>\n add\n</mat-icon>\n\n<mat-icon\n *ngIf=\"incident\"\n class=\"cursor-pointer\"\n (click)=\"showForm(formTemplate)\"\n>\n edit\n</mat-icon>\n\n<ng-template #formTemplate>\n <h3 mat-dialog-title class=\"mb-0\">\n {{ incident ? 'Edit' : 'Create' }} Incident\n </h3>\n <div mat-dialog-content>\n <app-incident-form\n [incident]=\"incident\"\n [incidentableId]=\"incidentableId\"\n [incidentableType]=\"incidentableType\"\n (saved)=\"onSaved($event)\"\n (cancelled)=\"matDialog.closeAll()\"\n ></app-incident-form>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: IncidentFormComponent, selector: "app-incident-form", inputs: ["incident", "incidentableType", "incidentableId"], outputs: ["saved", "cancelled"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }], preserveWhitespaces: true });
|
|
26
|
+
}
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IncidentFormButtonComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ selector: 'app-incident-form-button', standalone: true, imports: [
|
|
30
|
+
MatIcon,
|
|
31
|
+
IncidentFormComponent,
|
|
32
|
+
NgIf,
|
|
33
|
+
MatDialogTitle,
|
|
34
|
+
MatDialogContent
|
|
35
|
+
], template: "<mat-icon\n *ngIf=\"!incident\"\n color=\"primary\"\n class=\"cursor-pointer\"\n (click)=\"showForm(formTemplate)\"\n>\n add\n</mat-icon>\n\n<mat-icon\n *ngIf=\"incident\"\n class=\"cursor-pointer\"\n (click)=\"showForm(formTemplate)\"\n>\n edit\n</mat-icon>\n\n<ng-template #formTemplate>\n <h3 mat-dialog-title class=\"mb-0\">\n {{ incident ? 'Edit' : 'Create' }} Incident\n </h3>\n <div mat-dialog-content>\n <app-incident-form\n [incident]=\"incident\"\n [incidentableId]=\"incidentableId\"\n [incidentableType]=\"incidentableType\"\n (saved)=\"onSaved($event)\"\n (cancelled)=\"matDialog.closeAll()\"\n ></app-incident-form>\n </div>\n</ng-template>\n" }]
|
|
36
|
+
}], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { incident: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], incidentableType: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], incidentableId: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], saved: [{
|
|
43
|
+
type: Output
|
|
44
|
+
}] } });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jaWRlbnQtZm9ybS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vaW5jaWRlbnQvaW5jaWRlbnQtZm9ybS1idXR0b24vaW5jaWRlbnQtZm9ybS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vaW5jaWRlbnQvaW5jaWRlbnQtZm9ybS1idXR0b24vaW5jaWRlbnQtZm9ybS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDL0MsT0FBTyxFQUFZLGdCQUFnQixFQUFFLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBZXJDLE1BQU0sT0FBTywyQkFBMkI7SUFNbkI7SUFMVixRQUFRLENBQU07SUFDZCxnQkFBZ0IsQ0FBVTtJQUMxQixjQUFjLENBQVU7SUFDdkIsS0FBSyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBRTdELFlBQW1CLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFBRyxDQUFDO0lBRTNDLFFBQVEsQ0FBQyxXQUE2QjtRQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQWE7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixDQUFDO3dHQWZVLDJCQUEyQjs0RkFBM0IsMkJBQTJCLDJOQ25CeEMsaXNCQStCQSwwRERyQkksT0FBTywySUFDUCxxQkFBcUIsMkpBQ3JCLElBQUksNkZBQ0osY0FBYywrSEFDZCxnQkFBZ0I7OzRGQUtQLDJCQUEyQjtrQkFidkMsU0FBUzsrQkFDRSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AscUJBQXFCO3dCQUNyQixJQUFJO3dCQUNKLGNBQWM7d0JBQ2QsZ0JBQWdCO3FCQUNqQjs4RUFLUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0SWNvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcbmltcG9ydCB7TWF0RGlhbG9nLCBNYXREaWFsb2dDb250ZW50LCBNYXREaWFsb2dUaXRsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHtJbmNpZGVudEZvcm1Db21wb25lbnR9IGZyb20gXCIuLi9pbmNpZGVudC1mb3JtL2luY2lkZW50LWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQge05nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWluY2lkZW50LWZvcm0tYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEljb24sXG4gICAgSW5jaWRlbnRGb3JtQ29tcG9uZW50LFxuICAgIE5nSWYsXG4gICAgTWF0RGlhbG9nVGl0bGUsXG4gICAgTWF0RGlhbG9nQ29udGVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5jaWRlbnQtZm9ybS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaW5jaWRlbnQtZm9ybS1idXR0b24uY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEluY2lkZW50Rm9ybUJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGluY2lkZW50OiBhbnk7XG4gIEBJbnB1dCgpIGluY2lkZW50YWJsZVR5cGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGluY2lkZW50YWJsZUlkITogbnVtYmVyO1xuICBAT3V0cHV0KCkgc2F2ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIG1hdERpYWxvZzogTWF0RGlhbG9nKSB7fVxuXG4gIHNob3dGb3JtKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5tYXREaWFsb2cub3Blbih0ZW1wbGF0ZVJlZiwgeyB3aWR0aDogJzQwMHB4JyB9KTtcbiAgfVxuXG4gIG9uU2F2ZWQoY2F0ZWdvcnk6IGFueSkge1xuICAgIHRoaXMubWF0RGlhbG9nLmNsb3NlQWxsKCk7XG4gICAgdGhpcy5zYXZlZC5lbWl0KGNhdGVnb3J5KTtcbiAgfVxufVxuIiwiPG1hdC1pY29uXG4gICpuZ0lmPVwiIWluY2lkZW50XCJcbiAgY29sb3I9XCJwcmltYXJ5XCJcbiAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXG4gIChjbGljayk9XCJzaG93Rm9ybShmb3JtVGVtcGxhdGUpXCJcbj5cbiAgYWRkXG48L21hdC1pY29uPlxuXG48bWF0LWljb25cbiAgKm5nSWY9XCJpbmNpZGVudFwiXG4gIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxuICAoY2xpY2spPVwic2hvd0Zvcm0oZm9ybVRlbXBsYXRlKVwiXG4+XG4gIGVkaXRcbjwvbWF0LWljb24+XG5cbjxuZy10ZW1wbGF0ZSAjZm9ybVRlbXBsYXRlPlxuICA8aDMgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cIm1iLTBcIj5cbiAgICB7eyBpbmNpZGVudCA/ICdFZGl0JyA6ICdDcmVhdGUnIH19IEluY2lkZW50XG4gIDwvaDM+XG4gIDxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxhcHAtaW5jaWRlbnQtZm9ybVxuICAgICAgW2luY2lkZW50XT1cImluY2lkZW50XCJcbiAgICAgIFtpbmNpZGVudGFibGVJZF09XCJpbmNpZGVudGFibGVJZFwiXG4gICAgICBbaW5jaWRlbnRhYmxlVHlwZV09XCJpbmNpZGVudGFibGVUeXBlXCJcbiAgICAgIChzYXZlZCk9XCJvblNhdmVkKCRldmVudClcIlxuICAgICAgKGNhbmNlbGxlZCk9XCJtYXREaWFsb2cuY2xvc2VBbGwoKVwiXG4gICAgPjwvYXBwLWluY2lkZW50LWZvcm0+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { MatCard, MatCardContent } from "@angular/material/card";
|
|
3
|
+
import { SearchableSelectorModule, TechlifyListingControllerInterface } from "ngx-techlify-core";
|
|
4
|
+
import { ReactiveFormsModule } from "@angular/forms";
|
|
5
|
+
import { CurrencyPipe, DatePipe, NgIf } from "@angular/common";
|
|
6
|
+
import { InfiniteScrollDirective } from "ngx-infinite-scroll";
|
|
7
|
+
import { MatCell, MatCellDef, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef, MatTable } from "@angular/material/table";
|
|
8
|
+
import { MatProgressBar } from "@angular/material/progress-bar";
|
|
9
|
+
import { MatSort, MatSortHeader } from "@angular/material/sort";
|
|
10
|
+
import { debounceTime, distinctUntilChanged } from "rxjs";
|
|
11
|
+
import { MatFormField, MatLabel } from "@angular/material/form-field";
|
|
12
|
+
import { MatInput } from "@angular/material/input";
|
|
13
|
+
import { IncidentFormButtonComponent } from "../incident-form-button/incident-form-button.component";
|
|
14
|
+
import { NgxPermissionsModule } from "ngx-permissions";
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
import * as i1 from "@angular/forms";
|
|
17
|
+
import * as i2 from "ngx-techlify-core";
|
|
18
|
+
import * as i3 from "@angular/router";
|
|
19
|
+
import * as i4 from "../incident.service";
|
|
20
|
+
import * as i5 from "ngx-permissions";
|
|
21
|
+
export class IncidentListComponent extends TechlifyListingControllerInterface {
|
|
22
|
+
formBuilder;
|
|
23
|
+
requestHelperService;
|
|
24
|
+
activatedRoute;
|
|
25
|
+
incidentService;
|
|
26
|
+
supplierId;
|
|
27
|
+
incidentableType;
|
|
28
|
+
incidentableId;
|
|
29
|
+
displayedColumns = [
|
|
30
|
+
'No',
|
|
31
|
+
'Date',
|
|
32
|
+
'Classification',
|
|
33
|
+
'Cost',
|
|
34
|
+
'Details',
|
|
35
|
+
'Creator',
|
|
36
|
+
'Actions',
|
|
37
|
+
];
|
|
38
|
+
constructor(formBuilder, requestHelperService, activatedRoute, incidentService) {
|
|
39
|
+
super();
|
|
40
|
+
this.formBuilder = formBuilder;
|
|
41
|
+
this.requestHelperService = requestHelperService;
|
|
42
|
+
this.activatedRoute = activatedRoute;
|
|
43
|
+
this.incidentService = incidentService;
|
|
44
|
+
this.lastPage = 0;
|
|
45
|
+
this.filterForm = this.formBuilder.group({
|
|
46
|
+
search: [''],
|
|
47
|
+
classification_ids: [''],
|
|
48
|
+
sort_by: ['created_at|desc'],
|
|
49
|
+
incidentable_types: [''],
|
|
50
|
+
incidentable_ids: [''],
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
ngOnInit() {
|
|
54
|
+
if (this.incidentableType && this.incidentableId) {
|
|
55
|
+
this.filterForm.patchValue({
|
|
56
|
+
incidentable_types: this.incidentableType,
|
|
57
|
+
incidentable_ids: this.incidentableId
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
this.requestHelperService.updateFormWithQueryParams(this.filterForm, {
|
|
61
|
+
classification_ids: { multiple: true }
|
|
62
|
+
});
|
|
63
|
+
this.filterForm.valueChanges.pipe(debounceTime(800)).subscribe({
|
|
64
|
+
next: () => {
|
|
65
|
+
this.requestHelperService.updateQueryParams(this.requestHelperService.convertToFormData(this.filterForm.value));
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
// listen for route change
|
|
69
|
+
this.activatedRoute.queryParams
|
|
70
|
+
.pipe(debounceTime(500), distinctUntilChanged())
|
|
71
|
+
.subscribe((val) => {
|
|
72
|
+
this.reload();
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
loadData() {
|
|
76
|
+
this.isWorking = true;
|
|
77
|
+
const params = {
|
|
78
|
+
...this.requestHelperService.convertToFormData(this.filterForm.value),
|
|
79
|
+
page: this.page,
|
|
80
|
+
perPage: this.perPage,
|
|
81
|
+
with: 'classification,creator'
|
|
82
|
+
};
|
|
83
|
+
this.incidentService.index(params).subscribe({
|
|
84
|
+
next: (response) => {
|
|
85
|
+
this.models = this.models.concat(response?.data);
|
|
86
|
+
this.lastPage = response?.last_page;
|
|
87
|
+
this.isWorking = false;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
onSortChange(sort) {
|
|
92
|
+
let { direction, active } = sort;
|
|
93
|
+
if (!active) {
|
|
94
|
+
active = 'created_at';
|
|
95
|
+
direction = 'desc';
|
|
96
|
+
}
|
|
97
|
+
if (!direction) {
|
|
98
|
+
direction = 'desc';
|
|
99
|
+
}
|
|
100
|
+
this.filterForm.get('sort_by')?.setValue(active + '|' + direction);
|
|
101
|
+
}
|
|
102
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IncidentListComponent, deps: [{ token: i1.FormBuilder }, { token: i2.RequestHelperService }, { token: i3.ActivatedRoute }, { token: i4.IncidentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
103
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: IncidentListComponent, isStandalone: true, selector: "app-incident-list", inputs: { supplierId: "supplierId", incidentableType: "incidentableType", incidentableId: "incidentableId" }, usesInheritance: true, ngImport: i0, template: "<mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gal-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-3\">\n <h2 class=\"mb-0\">Incidents</h2>\n <app-incident-form-button\n *ngxPermissionsOnly=\"['incident.create']\"\n incidentableType=\"Supplier\"\n [incidentableId]=\"supplierId\"\n (saved)=\"reload()\"\n ></app-incident-form-button>\n </div>\n <form\n [formGroup]=\"filterForm\" (submit)=\"reload()\"\n class=\"d-flex justify-content-end align-items-center gap-3\"\n >\n <mat-form-field>\n <mat-label>Search</mat-label>\n <input type=\"text\" placeholder=\"Search Details\" matInput formControlName=\"search\">\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Classification</mat-label>\n <app-searchable-selector\n apiUrl=\"api/incident-classifications\"\n [enableSearch]=\"false\"\n formControlName=\"classification_ids\"\n [multiple]=\"true\"\n ></app-searchable-selector>\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\n mat-table [dataSource]=\"models\" class=\"w-100\"\n matSort\n (matSortChange)=\"onSortChange($event)\"\n infiniteScroll\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\"\n >\n\n <!-- No 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 <!-- Date Column -->\n <ng-container matColumnDef=\"Date\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"date\"> Date </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.date | date }} </td>\n </ng-container>\n\n <!-- Classification Column -->\n <ng-container matColumnDef=\"Classification\">\n <th mat-header-cell *matHeaderCellDef> Classification </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.classification?.title }}\n </td>\n </ng-container>\n\n <!-- Cost Column -->\n <ng-container matColumnDef=\"Cost\">\n <th mat-header-cell *matHeaderCellDef> Cost </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.cost | currency }}\n </td>\n </ng-container>\n\n <!-- Details Column -->\n <ng-container matColumnDef=\"Details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.details }}\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"Creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-1\">{{ element?.creator?.name }}</p>\n <small class=\"text-secondary\">{{ element?.created_at | date }}</small>\n </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 <app-incident-form-button\n *ngxPermissionsOnly=\"['incident.update']\"\n [incident]=\"element\"\n incidentableType=\"Supplier\"\n [incidentableId]=\"supplierId\"\n (saved)=\"reload()\"\n ></app-incident-form-button>\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 mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n", styles: [""], dependencies: [{ kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: MatCardContent, selector: "mat-card-content" }, { kind: "pipe", type: DatePipe, name: "date" }, { 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: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "component", type: MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "directive", type: MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "component", type: MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: 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: "directive", type: MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: SearchableSelectorModule }, { kind: "component", type: i2.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }, { kind: "component", type: IncidentFormButtonComponent, selector: "app-incident-form-button", inputs: ["incident", "incidentableType", "incidentableId"], outputs: ["saved"] }, { kind: "ngmodule", type: NgxPermissionsModule }, { kind: "directive", type: i5.NgxPermissionsDirective, selector: "[ngxPermissionsOnly],[ngxPermissionsExcept]", inputs: ["ngxPermissionsOnly", "ngxPermissionsOnlyThen", "ngxPermissionsOnlyElse", "ngxPermissionsExcept", "ngxPermissionsExceptElse", "ngxPermissionsExceptThen", "ngxPermissionsThen", "ngxPermissionsElse", "ngxPermissionsOnlyAuthorisedStrategy", "ngxPermissionsOnlyUnauthorisedStrategy", "ngxPermissionsExceptUnauthorisedStrategy", "ngxPermissionsExceptAuthorisedStrategy", "ngxPermissionsUnauthorisedStrategy", "ngxPermissionsAuthorisedStrategy"], outputs: ["permissionsAuthorized", "permissionsUnauthorized"] }], preserveWhitespaces: true });
|
|
104
|
+
}
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IncidentListComponent, decorators: [{
|
|
106
|
+
type: Component,
|
|
107
|
+
args: [{ selector: 'app-incident-list', standalone: true, imports: [
|
|
108
|
+
MatCard,
|
|
109
|
+
MatCardContent,
|
|
110
|
+
DatePipe,
|
|
111
|
+
InfiniteScrollDirective,
|
|
112
|
+
MatCell,
|
|
113
|
+
MatCellDef,
|
|
114
|
+
MatColumnDef,
|
|
115
|
+
MatHeaderCell,
|
|
116
|
+
MatHeaderRow,
|
|
117
|
+
MatHeaderRowDef,
|
|
118
|
+
MatProgressBar,
|
|
119
|
+
MatRow,
|
|
120
|
+
MatRowDef,
|
|
121
|
+
MatSort,
|
|
122
|
+
MatSortHeader,
|
|
123
|
+
MatTable,
|
|
124
|
+
NgIf,
|
|
125
|
+
MatHeaderCellDef,
|
|
126
|
+
CurrencyPipe,
|
|
127
|
+
ReactiveFormsModule,
|
|
128
|
+
MatFormField,
|
|
129
|
+
MatInput,
|
|
130
|
+
MatLabel,
|
|
131
|
+
SearchableSelectorModule,
|
|
132
|
+
IncidentFormButtonComponent,
|
|
133
|
+
NgxPermissionsModule
|
|
134
|
+
], template: "<mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gal-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-3\">\n <h2 class=\"mb-0\">Incidents</h2>\n <app-incident-form-button\n *ngxPermissionsOnly=\"['incident.create']\"\n incidentableType=\"Supplier\"\n [incidentableId]=\"supplierId\"\n (saved)=\"reload()\"\n ></app-incident-form-button>\n </div>\n <form\n [formGroup]=\"filterForm\" (submit)=\"reload()\"\n class=\"d-flex justify-content-end align-items-center gap-3\"\n >\n <mat-form-field>\n <mat-label>Search</mat-label>\n <input type=\"text\" placeholder=\"Search Details\" matInput formControlName=\"search\">\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Classification</mat-label>\n <app-searchable-selector\n apiUrl=\"api/incident-classifications\"\n [enableSearch]=\"false\"\n formControlName=\"classification_ids\"\n [multiple]=\"true\"\n ></app-searchable-selector>\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\n mat-table [dataSource]=\"models\" class=\"w-100\"\n matSort\n (matSortChange)=\"onSortChange($event)\"\n infiniteScroll\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\"\n >\n\n <!-- No 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 <!-- Date Column -->\n <ng-container matColumnDef=\"Date\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"date\"> Date </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.date | date }} </td>\n </ng-container>\n\n <!-- Classification Column -->\n <ng-container matColumnDef=\"Classification\">\n <th mat-header-cell *matHeaderCellDef> Classification </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.classification?.title }}\n </td>\n </ng-container>\n\n <!-- Cost Column -->\n <ng-container matColumnDef=\"Cost\">\n <th mat-header-cell *matHeaderCellDef> Cost </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.cost | currency }}\n </td>\n </ng-container>\n\n <!-- Details Column -->\n <ng-container matColumnDef=\"Details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.details }}\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"Creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-1\">{{ element?.creator?.name }}</p>\n <small class=\"text-secondary\">{{ element?.created_at | date }}</small>\n </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 <app-incident-form-button\n *ngxPermissionsOnly=\"['incident.update']\"\n [incident]=\"element\"\n incidentableType=\"Supplier\"\n [incidentableId]=\"supplierId\"\n (saved)=\"reload()\"\n ></app-incident-form-button>\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 mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n" }]
|
|
135
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.RequestHelperService }, { type: i3.ActivatedRoute }, { type: i4.IncidentService }], propDecorators: { supplierId: [{
|
|
136
|
+
type: Input
|
|
137
|
+
}], incidentableType: [{
|
|
138
|
+
type: Input
|
|
139
|
+
}], incidentableId: [{
|
|
140
|
+
type: Input
|
|
141
|
+
}] } });
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jaWRlbnQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9pbmNpZGVudC9pbmNpZGVudC1saXN0L2luY2lkZW50LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vaW5jaWRlbnQvaW5jaWRlbnQtbGlzdC9pbmNpZGVudC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxPQUFPLEVBQUUsY0FBYyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUF1Qix3QkFBd0IsRUFBRSxrQ0FBa0MsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3JILE9BQU8sRUFBeUIsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQ0wsT0FBTyxFQUNQLFVBQVUsRUFDVixZQUFZLEVBQ1osYUFBYSxFQUFFLGdCQUFnQixFQUMvQixZQUFZLEVBQ1osZUFBZSxFQUNmLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUM1QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBTyxNQUFNLHdCQUF3QixDQUFDO0FB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Q2IsWUFBWSwyR0FDWixlQUFlLG9IQUNmLGNBQWMseUtBQ2QsTUFBTSx1RkFDTixTQUFTLHVHQUNULE9BQU8sa05BQ1AsYUFBYSx1TUFDYixRQUFRLGdHQUNSLElBQUksNkZBQ0osZ0JBQWdCLDBEQUNoQixZQUFZLGdEQUNaLG1CQUFtQiw2OEJBQ25CLFlBQVksNExBQ1osUUFBUSxpVUFDUixRQUFRLHFEQUNSLHdCQUF3QixtaEJBQ3hCLDJCQUEyQixvSkFDM0Isb0JBQW9COzs0RkFLWCxxQkFBcUI7a0JBbENqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLFFBQVE7d0JBQ1IsdUJBQXVCO3dCQUN2QixPQUFPO3dCQUNQLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixjQUFjO3dCQUNkLE1BQU07d0JBQ04sU0FBUzt3QkFDVCxPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsUUFBUTt3QkFDUixJQUFJO3dCQUNKLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osUUFBUTt3QkFDUixRQUFRO3dCQUNSLHdCQUF3Qjt3QkFDeEIsMkJBQTJCO3dCQUMzQixvQkFBb0I7cUJBQ3JCOzhLQUtRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdENhcmQsIE1hdENhcmRDb250ZW50fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZFwiO1xuaW1wb3J0IHtSZXF1ZXN0SGVscGVyU2VydmljZSwgU2VhcmNoYWJsZVNlbGVjdG9yTW9kdWxlLCBUZWNobGlmeUxpc3RpbmdDb250cm9sbGVySW50ZXJmYWNlfSBmcm9tIFwibmd4LXRlY2hsaWZ5LWNvcmVcIjtcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge0N1cnJlbmN5UGlwZSwgRGF0ZVBpcGUsIE5nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7SW5maW5pdGVTY3JvbGxEaXJlY3RpdmV9IGZyb20gXCJuZ3gtaW5maW5pdGUtc2Nyb2xsXCI7XG5pbXBvcnQge1xuICBNYXRDZWxsLFxuICBNYXRDZWxsRGVmLFxuICBNYXRDb2x1bW5EZWYsXG4gIE1hdEhlYWRlckNlbGwsIE1hdEhlYWRlckNlbGxEZWYsXG4gIE1hdEhlYWRlclJvdyxcbiAgTWF0SGVhZGVyUm93RGVmLFxuICBNYXRSb3csIE1hdFJvd0RlZiwgTWF0VGFibGVcbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYmxlXCI7XG5pbXBvcnQge01hdFByb2dyZXNzQmFyfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyXCI7XG5pbXBvcnQge01hdFNvcnQsIE1hdFNvcnRIZWFkZXIsIFNvcnR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zb3J0XCI7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQge0luY2lkZW50U2VydmljZX0gZnJvbSBcIi4uL2luY2lkZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7TWF0Rm9ybUZpZWxkLCBNYXRMYWJlbH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xuaW1wb3J0IHtJbmNpZGVudEZvcm1CdXR0b25Db21wb25lbnR9IGZyb20gXCIuLi9pbmNpZGVudC1mb3JtLWJ1dHRvbi9pbmNpZGVudC1mb3JtLWJ1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7Tmd4UGVybWlzc2lvbnNNb2R1bGV9IGZyb20gXCJuZ3gtcGVybWlzc2lvbnNcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWluY2lkZW50LWxpc3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0Q2FyZCxcbiAgICBNYXRDYXJkQ29udGVudCxcbiAgICBEYXRlUGlwZSxcbiAgICBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSxcbiAgICBNYXRDZWxsLFxuICAgIE1hdENlbGxEZWYsXG4gICAgTWF0Q29sdW1uRGVmLFxuICAgIE1hdEhlYWRlckNlbGwsXG4gICAgTWF0SGVhZGVyUm93LFxuICAgIE1hdEhlYWRlclJvd0RlZixcbiAgICBNYXRQcm9ncmVzc0JhcixcbiAgICBNYXRSb3csXG4gICAgTWF0Um93RGVmLFxuICAgIE1hdFNvcnQsXG4gICAgTWF0U29ydEhlYWRlcixcbiAgICBNYXRUYWJsZSxcbiAgICBOZ0lmLFxuICAgIE1hdEhlYWRlckNlbGxEZWYsXG4gICAgQ3VycmVuY3lQaXBlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkLFxuICAgIE1hdElucHV0LFxuICAgIE1hdExhYmVsLFxuICAgIFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSxcbiAgICBJbmNpZGVudEZvcm1CdXR0b25Db21wb25lbnQsXG4gICAgTmd4UGVybWlzc2lvbnNNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2luY2lkZW50LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaW5jaWRlbnQtbGlzdC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgSW5jaWRlbnRMaXN0Q29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlMaXN0aW5nQ29udHJvbGxlckludGVyZmFjZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHN1cHBsaWVySWQhOiBudW1iZXI7XG4gIEBJbnB1dCgpIGluY2lkZW50YWJsZVR5cGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGluY2lkZW50YWJsZUlkITogbnVtYmVyO1xuXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW1xuICAgICdObycsXG4gICAgJ0RhdGUnLFxuICAgICdDbGFzc2lmaWNhdGlvbicsXG4gICAgJ0Nvc3QnLFxuICAgICdEZXRhaWxzJyxcbiAgICAnQ3JlYXRvcicsXG4gICAgJ0FjdGlvbnMnLFxuICBdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVxdWVzdEhlbHBlclNlcnZpY2U6IFJlcXVlc3RIZWxwZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgaW5jaWRlbnRTZXJ2aWNlOiBJbmNpZGVudFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxhc3RQYWdlID0gMDtcbiAgICB0aGlzLmZpbHRlckZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIHNlYXJjaDogWycnXSxcbiAgICAgIGNsYXNzaWZpY2F0aW9uX2lkczogWycnXSxcbiAgICAgIHNvcnRfYnk6IFsnY3JlYXRlZF9hdHxkZXNjJ10sXG4gICAgICBpbmNpZGVudGFibGVfdHlwZXM6IFsnJ10sXG4gICAgICBpbmNpZGVudGFibGVfaWRzOiBbJyddLFxuICAgIH0pO1xuICB9XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbmNpZGVudGFibGVUeXBlICYmIHRoaXMuaW5jaWRlbnRhYmxlSWQpIHtcbiAgICAgIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgaW5jaWRlbnRhYmxlX3R5cGVzOiB0aGlzLmluY2lkZW50YWJsZVR5cGUsXG4gICAgICAgIGluY2lkZW50YWJsZV9pZHM6IHRoaXMuaW5jaWRlbnRhYmxlSWRcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UudXBkYXRlRm9ybVdpdGhRdWVyeVBhcmFtcyhcbiAgICAgIHRoaXMuZmlsdGVyRm9ybSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NpZmljYXRpb25faWRzOiB7IG11bHRpcGxlOiB0cnVlIH1cbiAgICAgIH1cbiAgICApO1xuXG4gICAgKHRoaXMuZmlsdGVyRm9ybSBhcyBGb3JtR3JvdXApLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDgwMClcbiAgICApLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UudXBkYXRlUXVlcnlQYXJhbXMoXG4gICAgICAgICAgdGhpcy5yZXF1ZXN0SGVscGVyU2VydmljZS5jb252ZXJ0VG9Gb3JtRGF0YSh0aGlzLmZpbHRlckZvcm0udmFsdWUpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBsaXN0ZW4gZm9yIHJvdXRlIGNoYW5nZVxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXNcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZSgodmFsOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbG9hZERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xuICAgICAgLi4udGhpcy5yZXF1ZXN0SGVscGVyU2VydmljZS5jb252ZXJ0VG9Gb3JtRGF0YSh0aGlzLmZpbHRlckZvcm0udmFsdWUpLFxuICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgcGVyUGFnZTogdGhpcy5wZXJQYWdlLFxuICAgICAgd2l0aDogJ2NsYXNzaWZpY2F0aW9uLGNyZWF0b3InXG4gICAgfVxuICAgIHRoaXMuaW5jaWRlbnRTZXJ2aWNlLmluZGV4KHBhcmFtcykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubW9kZWxzID0gdGhpcy5tb2RlbHMuY29uY2F0KHJlc3BvbnNlPy5kYXRhKTtcbiAgICAgICAgdGhpcy5sYXN0UGFnZSA9IHJlc3BvbnNlPy5sYXN0X3BhZ2U7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG9uU29ydENoYW5nZShzb3J0OiBTb3J0KSB7XG4gICAgbGV0IHsgZGlyZWN0aW9uLCBhY3RpdmUgfSA9IHNvcnQ7XG4gICAgaWYgKCFhY3RpdmUpIHtcbiAgICAgIGFjdGl2ZSA9ICdjcmVhdGVkX2F0JztcbiAgICAgIGRpcmVjdGlvbiA9ICdkZXNjJztcbiAgICB9XG4gICAgaWYgKCFkaXJlY3Rpb24pIHtcbiAgICAgIGRpcmVjdGlvbiA9ICdkZXNjJztcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJGb3JtLmdldCgnc29ydF9ieScpPy5zZXRWYWx1ZShhY3RpdmUgKyAnfCcgKyBkaXJlY3Rpb24pO1xuICB9XG59XG4iLCI8bWF0LWNhcmQ+XG4gIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYWwtM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgPGgyIGNsYXNzPVwibWItMFwiPkluY2lkZW50czwvaDI+XG4gICAgICA8YXBwLWluY2lkZW50LWZvcm0tYnV0dG9uXG4gICAgICAgICpuZ3hQZXJtaXNzaW9uc09ubHk9XCJbJ2luY2lkZW50LmNyZWF0ZSddXCJcbiAgICAgICAgaW5jaWRlbnRhYmxlVHlwZT1cIlN1cHBsaWVyXCJcbiAgICAgICAgW2luY2lkZW50YWJsZUlkXT1cInN1cHBsaWVySWRcIlxuICAgICAgICAoc2F2ZWQpPVwicmVsb2FkKClcIlxuICAgICAgPjwvYXBwLWluY2lkZW50LWZvcm0tYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxmb3JtXG4gICAgICBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1cIiAoc3VibWl0KT1cInJlbG9hZCgpXCJcbiAgICAgIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCJcbiAgICA+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtbGFiZWw+U2VhcmNoPC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIERldGFpbHNcIiBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hcIj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1sYWJlbD5DbGFzc2lmaWNhdGlvbjwvbWF0LWxhYmVsPlxuICAgICAgICA8YXBwLXNlYXJjaGFibGUtc2VsZWN0b3JcbiAgICAgICAgICBhcGlVcmw9XCJhcGkvaW5jaWRlbnQtY2xhc3NpZmljYXRpb25zXCJcbiAgICAgICAgICBbZW5hYmxlU2VhcmNoXT1cImZhbHNlXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjbGFzc2lmaWNhdGlvbl9pZHNcIlxuICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcbiAgICAgICAgPjwvYXBwLXNlYXJjaGFibGUtc2VsZWN0b3I+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZm9ybT5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cblxuPG1hdC1jYXJkIGNsYXNzPVwibXQtM1wiPlxuICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cInAtMFwiPlxuICAgIDx0YWJsZVxuICAgICAgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cIm1vZGVsc1wiIGNsYXNzPVwidy0xMDBcIlxuICAgICAgbWF0U29ydFxuICAgICAgKG1hdFNvcnRDaGFuZ2UpPVwib25Tb3J0Q2hhbmdlKCRldmVudClcIlxuICAgICAgaW5maW5pdGVTY3JvbGxcbiAgICAgIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjJcIlxuICAgICAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIlxuICAgICAgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIlxuICAgID5cblxuICAgICAgPCEtLSBObyBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIk5vXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+ICMgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7IGxldCBpID0gaW5kZXhcIj4ge3sgaSArIDEgfX0gPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIERhdGUgQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJEYXRlXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPVwiZGF0ZVwiPiBEYXRlIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7IGVsZW1lbnQ/LmRhdGUgfCBkYXRlIH19IDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBDbGFzc2lmaWNhdGlvbiBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIkNsYXNzaWZpY2F0aW9uXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IENsYXNzaWZpY2F0aW9uIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAge3sgZWxlbWVudD8uY2xhc3NpZmljYXRpb24/LnRpdGxlIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBDb3N0IENvbHVtbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiQ29zdFwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBDb3N0IDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAge3sgZWxlbWVudD8uY29zdCB8IGN1cnJlbmN5IH19XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBEZXRhaWxzIENvbHVtbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiRGV0YWlsc1wiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBEZXRhaWxzIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAge3sgZWxlbWVudD8uZGV0YWlscyB9fVxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gQ3JlYXRvciBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIkNyZWF0b3JcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQ3JlYXRvciA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgIDxwIGNsYXNzPVwibWItMVwiPnt7IGVsZW1lbnQ/LmNyZWF0b3I/Lm5hbWUgfX08L3A+XG4gICAgICAgICAgPHNtYWxsIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIj57eyBlbGVtZW50Py5jcmVhdGVkX2F0IHwgZGF0ZSB9fTwvc21hbGw+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBBY3Rpb25zIENvbHVtbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiQWN0aW9uc1wiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBBY3Rpb25zIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgPGFwcC1pbmNpZGVudC1mb3JtLWJ1dHRvblxuICAgICAgICAgICAgKm5neFBlcm1pc3Npb25zT25seT1cIlsnaW5jaWRlbnQudXBkYXRlJ11cIlxuICAgICAgICAgICAgW2luY2lkZW50XT1cImVsZW1lbnRcIlxuICAgICAgICAgICAgaW5jaWRlbnRhYmxlVHlwZT1cIlN1cHBsaWVyXCJcbiAgICAgICAgICAgIFtpbmNpZGVudGFibGVJZF09XCJzdXBwbGllcklkXCJcbiAgICAgICAgICAgIChzYXZlZCk9XCJyZWxvYWQoKVwiXG4gICAgICAgICAgPjwvYXBwLWluY2lkZW50LWZvcm0tYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICAgIDwvdGFibGU+XG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAqbmdJZj1cImlzV29ya2luZ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { RouterModule } from '@angular/router';
|
|
3
|
+
import { IncidentListComponent } from "./incident-list/incident-list.component";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/router";
|
|
6
|
+
const routes = [
|
|
7
|
+
{
|
|
8
|
+
path: '',
|
|
9
|
+
component: IncidentListComponent
|
|
10
|
+
}
|
|
11
|
+
];
|
|
12
|
+
export class IncidentRoutingModule {
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IncidentRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IncidentRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
|
|
15
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IncidentRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IncidentRoutingModule, decorators: [{
|
|
18
|
+
type: NgModule,
|
|
19
|
+
args: [{
|
|
20
|
+
imports: [RouterModule.forChild(routes)],
|
|
21
|
+
exports: [RouterModule]
|
|
22
|
+
}]
|
|
23
|
+
}] });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jaWRlbnQtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZlbnRvcnktY29tbW9uL3NyYy9saWIvaW52ZW50b3J5LWNvbW1vbi9pbmNpZGVudC9pbmNpZGVudC1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQzs7O0FBRTlFLE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUscUJBQXFCO0tBQ2pDO0NBQ0YsQ0FBQztBQU1GLE1BQU0sT0FBTyxxQkFBcUI7d0dBQXJCLHFCQUFxQjt5R0FBckIscUJBQXFCLHdDQUZ0QixZQUFZO3lHQUVYLHFCQUFxQixZQUh0QixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzs0RkFFWCxxQkFBcUI7a0JBSmpDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0luY2lkZW50TGlzdENvbXBvbmVudH0gZnJvbSBcIi4vaW5jaWRlbnQtbGlzdC9pbmNpZGVudC1saXN0LmNvbXBvbmVudFwiO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIGNvbXBvbmVudDogSW5jaWRlbnRMaXN0Q29tcG9uZW50XG4gIH1cbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEluY2lkZW50Um91dGluZ01vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { IncidentRoutingModule } from './incident-routing.module';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class IncidentModule {
|
|
6
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IncidentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IncidentModule, imports: [CommonModule,
|
|
8
|
+
IncidentRoutingModule] });
|
|
9
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IncidentModule, imports: [CommonModule,
|
|
10
|
+
IncidentRoutingModule] });
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IncidentModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
declarations: [],
|
|
16
|
+
imports: [
|
|
17
|
+
CommonModule,
|
|
18
|
+
IncidentRoutingModule
|
|
19
|
+
]
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jaWRlbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52ZW50b3J5LWNvbW1vbi9zcmMvbGliL2ludmVudG9yeS1jb21tb24vaW5jaWRlbnQvaW5jaWRlbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQVVsRSxNQUFNLE9BQU8sY0FBYzt3R0FBZCxjQUFjO3lHQUFkLGNBQWMsWUFKdkIsWUFBWTtZQUNaLHFCQUFxQjt5R0FHWixjQUFjLFlBSnZCLFlBQVk7WUFDWixxQkFBcUI7OzRGQUdaLGNBQWM7a0JBUDFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLHFCQUFxQjtxQkFDdEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgSW5jaWRlbnRSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9pbmNpZGVudC1yb3V0aW5nLm1vZHVsZSc7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJbmNpZGVudFJvdXRpbmdNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbmNpZGVudE1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { TechlifyServiceBaseClass } from "ngx-techlify-core";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "ngx-techlify-core";
|
|
5
|
+
export class IncidentService extends TechlifyServiceBaseClass {
|
|
6
|
+
constructor(httpService) {
|
|
7
|
+
super(httpService, 'incidents');
|
|
8
|
+
}
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IncidentService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
10
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IncidentService, providedIn: 'root' });
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IncidentService, decorators: [{
|
|
13
|
+
type: Injectable,
|
|
14
|
+
args: [{
|
|
15
|
+
providedIn: 'root'
|
|
16
|
+
}]
|
|
17
|
+
}], ctorParameters: () => [{ type: i1.HttpService }] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jaWRlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludmVudG9yeS1jb21tb24vc3JjL2xpYi9pbnZlbnRvcnktY29tbW9uL2luY2lkZW50L2luY2lkZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsd0JBQXdCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBS3hFLE1BQU0sT0FBTyxlQUFnQixTQUFRLHdCQUF3QjtJQUUzRCxZQUNFLFdBQXdCO1FBRXhCLEtBQUssQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbEMsQ0FBQzt3R0FOVSxlQUFlOzRHQUFmLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cFNlcnZpY2UsIFRlY2hsaWZ5U2VydmljZUJhc2VDbGFzc30gZnJvbSBcIm5neC10ZWNobGlmeS1jb3JlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEluY2lkZW50U2VydmljZSBleHRlbmRzIFRlY2hsaWZ5U2VydmljZUJhc2VDbGFzcyB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGh0dHBTZXJ2aWNlLCAnaW5jaWRlbnRzJyk7XG4gIH1cbn1cbiJdfQ==
|