ngx-techlify-checksheet 18.0.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/README.md +24 -0
- package/esm2022/lib/@shared/file-upload-button/file-upload-button.component.mjs +50 -0
- package/esm2022/lib/@shared/index.mjs +2 -0
- package/esm2022/lib/@shared/material.module.mjs +171 -0
- package/esm2022/lib/@shared/shared.module.mjs +54 -0
- package/esm2022/lib/checksheet/checksheet-form/checksheet-form.component.mjs +161 -0
- package/esm2022/lib/checksheet/checksheet-form-button/checksheet-form-button.component.mjs +58 -0
- package/esm2022/lib/checksheet/checksheet-format-list/checksheet-format-list.component.mjs +123 -0
- package/esm2022/lib/checksheet/checksheet-format-question.service.mjs +18 -0
- package/esm2022/lib/checksheet/checksheet-format.service.mjs +24 -0
- package/esm2022/lib/checksheet/checksheet-list/checksheet-list.component.mjs +138 -0
- package/esm2022/lib/checksheet/checksheet-node-view/checksheet-node-view.component.mjs +59 -0
- package/esm2022/lib/checksheet/checksheet-question/checksheet-question.component.mjs +174 -0
- package/esm2022/lib/checksheet/checksheet-question-form/checksheet-question-form.component.mjs +148 -0
- package/esm2022/lib/checksheet/checksheet-question-list/checksheet-question-list.component.mjs +161 -0
- package/esm2022/lib/checksheet/checksheet-report/checksheet-report.component.mjs +242 -0
- package/esm2022/lib/checksheet/checksheet-review-button/checksheet-review-button.component.mjs +68 -0
- package/esm2022/lib/checksheet/checksheet-routing.module.mjs +44 -0
- package/esm2022/lib/checksheet/checksheet-submission-answer.service.mjs +18 -0
- package/esm2022/lib/checksheet/checksheet-submission-delete-button/checksheet-submission-delete-button.component.mjs +52 -0
- package/esm2022/lib/checksheet/checksheet-submission-file/checksheet-submission-file-delete-button/checksheet-submission-file-delete-button.component.mjs +55 -0
- package/esm2022/lib/checksheet/checksheet-submission-file/checksheet-submission-files/checksheet-submission-files.component.mjs +67 -0
- package/esm2022/lib/checksheet/checksheet-submission-file-upload/checksheet-submisison-file-upload.component.mjs +46 -0
- package/esm2022/lib/checksheet/checksheet-submission-file.service.mjs +18 -0
- package/esm2022/lib/checksheet/checksheet-submission-form/checksheet-submission-form.component.mjs +131 -0
- package/esm2022/lib/checksheet/checksheet-submission-form-button/checksheet-submission-form-button.component.mjs +58 -0
- package/esm2022/lib/checksheet/checksheet-submission-list/checksheet-submission-list.component.mjs +107 -0
- package/esm2022/lib/checksheet/checksheet-submission-review-button/checksheet-submission-review-button.component.mjs +68 -0
- package/esm2022/lib/checksheet/checksheet-submission-view/checksheet-submission-view.component.mjs +142 -0
- package/esm2022/lib/checksheet/checksheet-submission.service.mjs +36 -0
- package/esm2022/lib/checksheet/checksheet-submittable.type.mjs +2 -0
- package/esm2022/lib/checksheet/checksheet-view/checksheet-view.component.mjs +140 -0
- package/esm2022/lib/checksheet/checksheet.module.mjs +131 -0
- package/esm2022/lib/checksheet/checksheet.service.mjs +44 -0
- package/esm2022/lib/checksheet/mechanical-issue-form/mechanical-issue-form.component.mjs +73 -0
- package/esm2022/ngx-techlify-checksheet.mjs +5 -0
- package/esm2022/public-api.mjs +9 -0
- package/fesm2022/ngx-techlify-checksheet.mjs +2550 -0
- package/fesm2022/ngx-techlify-checksheet.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/@shared/file-upload-button/file-upload-button.component.d.ts +20 -0
- package/lib/@shared/index.d.ts +1 -0
- package/lib/@shared/material.module.d.ts +40 -0
- package/lib/@shared/shared.module.d.ts +14 -0
- package/lib/checksheet/checksheet-form/checksheet-form.component.d.ts +45 -0
- package/lib/checksheet/checksheet-form-button/checksheet-form-button.component.d.ts +29 -0
- package/lib/checksheet/checksheet-format-list/checksheet-format-list.component.d.ts +19 -0
- package/lib/checksheet/checksheet-format-question.service.d.ts +7 -0
- package/lib/checksheet/checksheet-format.service.d.ts +10 -0
- package/lib/checksheet/checksheet-list/checksheet-list.component.d.ts +31 -0
- package/lib/checksheet/checksheet-node-view/checksheet-node-view.component.d.ts +25 -0
- package/lib/checksheet/checksheet-question/checksheet-question.component.d.ts +34 -0
- package/lib/checksheet/checksheet-question-form/checksheet-question-form.component.d.ts +38 -0
- package/lib/checksheet/checksheet-question-list/checksheet-question-list.component.d.ts +26 -0
- package/lib/checksheet/checksheet-report/checksheet-report.component.d.ts +47 -0
- package/lib/checksheet/checksheet-review-button/checksheet-review-button.component.d.ts +32 -0
- package/lib/checksheet/checksheet-routing.module.d.ts +7 -0
- package/lib/checksheet/checksheet-submission-answer.service.d.ts +7 -0
- package/lib/checksheet/checksheet-submission-delete-button/checksheet-submission-delete-button.component.d.ts +24 -0
- package/lib/checksheet/checksheet-submission-file/checksheet-submission-file-delete-button/checksheet-submission-file-delete-button.component.d.ts +24 -0
- package/lib/checksheet/checksheet-submission-file/checksheet-submission-files/checksheet-submission-files.component.d.ts +17 -0
- package/lib/checksheet/checksheet-submission-file-upload/checksheet-submisison-file-upload.component.d.ts +13 -0
- package/lib/checksheet/checksheet-submission-file.service.d.ts +7 -0
- package/lib/checksheet/checksheet-submission-form/checksheet-submission-form.component.d.ts +27 -0
- package/lib/checksheet/checksheet-submission-form-button/checksheet-submission-form-button.component.d.ts +29 -0
- package/lib/checksheet/checksheet-submission-list/checksheet-submission-list.component.d.ts +24 -0
- package/lib/checksheet/checksheet-submission-review-button/checksheet-submission-review-button.component.d.ts +32 -0
- package/lib/checksheet/checksheet-submission-view/checksheet-submission-view.component.d.ts +37 -0
- package/lib/checksheet/checksheet-submission.service.d.ts +22 -0
- package/lib/checksheet/checksheet-submittable.type.d.ts +1 -0
- package/lib/checksheet/checksheet-view/checksheet-view.component.d.ts +37 -0
- package/lib/checksheet/checksheet.module.d.ts +34 -0
- package/lib/checksheet/checksheet.service.d.ts +25 -0
- package/lib/checksheet/mechanical-issue-form/mechanical-issue-form.component.d.ts +21 -0
- package/package.json +45 -0
- package/public-api.d.ts +5 -0
package/esm2022/lib/checksheet/checksheet-submission-form/checksheet-submission-form.component.mjs
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { DateValidator, TechlifyFormComponentInterface, ActionPopupComponent } from 'ngx-techlify-core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "ngx-techlify-core";
|
|
6
|
+
import * as i2 from "@angular/forms";
|
|
7
|
+
import * as i3 from "../checksheet.service";
|
|
8
|
+
import * as i4 from "@angular/material/dialog";
|
|
9
|
+
import * as i5 from "@angular/common";
|
|
10
|
+
import * as i6 from "@angular/flex-layout/flex";
|
|
11
|
+
import * as i7 from "@angular/material/core";
|
|
12
|
+
import * as i8 from "@angular/material/button";
|
|
13
|
+
import * as i9 from "@angular/material/datepicker";
|
|
14
|
+
import * as i10 from "@angular/material/form-field";
|
|
15
|
+
import * as i11 from "@angular/material/input";
|
|
16
|
+
import * as i12 from "@angular/material/select";
|
|
17
|
+
export class ChecksheetSubmissionFormComponent extends TechlifyFormComponentInterface {
|
|
18
|
+
fb;
|
|
19
|
+
checksheetSubmissionService;
|
|
20
|
+
alertService;
|
|
21
|
+
dialog;
|
|
22
|
+
submittableType;
|
|
23
|
+
submittableId;
|
|
24
|
+
cancelled = new EventEmitter();
|
|
25
|
+
saved = new EventEmitter();
|
|
26
|
+
updateMode;
|
|
27
|
+
checksheetSubmission;
|
|
28
|
+
isSaving = false;
|
|
29
|
+
constructor(formValidatorService, fb, checksheetSubmissionService, alertService, dialog) {
|
|
30
|
+
super(formValidatorService);
|
|
31
|
+
this.fb = fb;
|
|
32
|
+
this.checksheetSubmissionService = checksheetSubmissionService;
|
|
33
|
+
this.alertService = alertService;
|
|
34
|
+
this.dialog = dialog;
|
|
35
|
+
this.errorMessages = {
|
|
36
|
+
date: {
|
|
37
|
+
required: 'The date field is required.'
|
|
38
|
+
},
|
|
39
|
+
format_id: {
|
|
40
|
+
required: 'The checksheet format is required.'
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
this.createForm();
|
|
44
|
+
}
|
|
45
|
+
createForm() {
|
|
46
|
+
this.form = this.fb.group({
|
|
47
|
+
id: [''],
|
|
48
|
+
date: ['', Validators.compose([Validators.required, DateValidator()])],
|
|
49
|
+
format_id: ['', Validators.required],
|
|
50
|
+
submittable_type: ['fixed-asset'],
|
|
51
|
+
submittable_id: ['', Validators.required],
|
|
52
|
+
details: ['']
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
ngOnInit() {
|
|
56
|
+
// Set the submittable type and id and make it readonly
|
|
57
|
+
if (this.submittableType && this.submittableId) {
|
|
58
|
+
this.form.patchValue({
|
|
59
|
+
submittable_type: this.submittableType,
|
|
60
|
+
submittable_id: this.submittableId
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
// Set the Checksheet to form
|
|
64
|
+
if (this.checksheetSubmission) {
|
|
65
|
+
this.updateMode = true;
|
|
66
|
+
this.form.patchValue({
|
|
67
|
+
...this.checksheetSubmission,
|
|
68
|
+
date: new Date(this.checksheetSubmission?.date)
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
submit() {
|
|
73
|
+
if (this.form.invalid) {
|
|
74
|
+
this.alertService.addAlert('Please check the form for errors', 'error');
|
|
75
|
+
}
|
|
76
|
+
const data = { ...this.form.value };
|
|
77
|
+
const request = this.updateMode
|
|
78
|
+
? this.checksheetSubmissionService.update(data)
|
|
79
|
+
: this.checksheetSubmissionService.store(data);
|
|
80
|
+
this.isSaving = true;
|
|
81
|
+
request.subscribe({
|
|
82
|
+
next: (response) => {
|
|
83
|
+
this.isSaving = false;
|
|
84
|
+
this.saved.emit(response?.item);
|
|
85
|
+
},
|
|
86
|
+
error: () => {
|
|
87
|
+
this.isSaving = false;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
submitChecksheet() {
|
|
92
|
+
const dialogRef = this.dialog.open(ActionPopupComponent, {
|
|
93
|
+
width: '400px',
|
|
94
|
+
data: {
|
|
95
|
+
title: 'Submit Checksheet',
|
|
96
|
+
message: `Review the checksheet completely before submitting, you cannot alter once it is submitted. Are you sure to submit the Checksheet?`
|
|
97
|
+
},
|
|
98
|
+
autoFocus: false
|
|
99
|
+
});
|
|
100
|
+
dialogRef.afterClosed().subscribe(async (result) => {
|
|
101
|
+
if (result) {
|
|
102
|
+
// Action confirmed
|
|
103
|
+
this.checksheetSubmissionService
|
|
104
|
+
.submit(this.checksheetSubmission?.id)
|
|
105
|
+
.subscribe({
|
|
106
|
+
next: (response) => {
|
|
107
|
+
this.alertService.addAlert('The Checksheet submitted!', 'success');
|
|
108
|
+
this.saved.emit(response?.item);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChecksheetSubmissionFormComponent, deps: [{ token: i1.FormValidatorService }, { token: i2.UntypedFormBuilder }, { token: i3.ChecksheetService }, { token: i1.AlertService }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
115
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChecksheetSubmissionFormComponent, selector: "app-checksheet-submission-form", inputs: { submittableType: "submittableType", submittableId: "submittableId", checksheetSubmission: "checksheetSubmission" }, outputs: { cancelled: "cancelled", saved: "saved" }, usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\" (submit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <h3>Checksheet</h3>\n\n <mat-form-field>\n <mat-label>Date</mat-label>\n <input\n matInput\n [matDatepicker]=\"picker\"\n placeholder=\"Date (MM/DD/YYYY)\"\n formControlName=\"date\"\n autocomplete=\"off\"\n required\n (focus)=\"picker.open()\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\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>Checksheet Format</mat-label>\n <app-searchable-selector\n formControlName=\"format_id\"\n apiUrl=\"api/checksheet-formats?is_published=1\"\n [enableSearch]=\"true\"\n >\n </app-searchable-selector>\n <mat-error *ngIf=\"isFieldValid('format_id')\"\n >{{ getErrorMessage('format_id') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Checksheet For</mat-label>\n <mat-select formControlName=\"submittable_type\">\n <mat-option value=\"fixed-asset\">Fixed Asset</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field\n *ngIf=\"form.get('submittable_type')?.value === 'fixed-asset'\"\n >\n <mat-label>Fixed Asset</mat-label>\n <app-searchable-selector\n apiUrl=\"api/accounting-plus/fixed-assets\"\n titleField=\"name\"\n formControlName=\"submittable_id\"\n ></app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Details</mat-label>\n <textarea\n matInput\n placeholder=\"Details\"\n formControlName=\"details\"\n ></textarea>\n </mat-form-field>\n <div class=\"d-flex justify-content-end align-items-center gap-2\">\n <button\n [disabled]=\"isSaving\"\n mat-flat-button\n type=\"button\"\n (click)=\"cancelled.emit()\"\n >\n Cancel\n </button>\n <button\n [disabled]=\"isSaving\"\n mat-raised-button\n type=\"submit\"\n color=\"primary\"\n >\n Save\n </button>\n <button\n *ngIf=\"checksheetSubmission?.id\"\n [disabled]=\"isSaving\"\n mat-raised-button\n (click)=\"submitChecksheet()\"\n type=\"button\"\n color=\"accent\"\n >\n Submit\n </button>\n </div>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i9.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i9.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i9.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i11.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: i12.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: "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: 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: "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"] }] });
|
|
116
|
+
}
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChecksheetSubmissionFormComponent, decorators: [{
|
|
118
|
+
type: Component,
|
|
119
|
+
args: [{ selector: 'app-checksheet-submission-form', template: "<form [formGroup]=\"form\" (submit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <h3>Checksheet</h3>\n\n <mat-form-field>\n <mat-label>Date</mat-label>\n <input\n matInput\n [matDatepicker]=\"picker\"\n placeholder=\"Date (MM/DD/YYYY)\"\n formControlName=\"date\"\n autocomplete=\"off\"\n required\n (focus)=\"picker.open()\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\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>Checksheet Format</mat-label>\n <app-searchable-selector\n formControlName=\"format_id\"\n apiUrl=\"api/checksheet-formats?is_published=1\"\n [enableSearch]=\"true\"\n >\n </app-searchable-selector>\n <mat-error *ngIf=\"isFieldValid('format_id')\"\n >{{ getErrorMessage('format_id') }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Checksheet For</mat-label>\n <mat-select formControlName=\"submittable_type\">\n <mat-option value=\"fixed-asset\">Fixed Asset</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field\n *ngIf=\"form.get('submittable_type')?.value === 'fixed-asset'\"\n >\n <mat-label>Fixed Asset</mat-label>\n <app-searchable-selector\n apiUrl=\"api/accounting-plus/fixed-assets\"\n titleField=\"name\"\n formControlName=\"submittable_id\"\n ></app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Details</mat-label>\n <textarea\n matInput\n placeholder=\"Details\"\n formControlName=\"details\"\n ></textarea>\n </mat-form-field>\n <div class=\"d-flex justify-content-end align-items-center gap-2\">\n <button\n [disabled]=\"isSaving\"\n mat-flat-button\n type=\"button\"\n (click)=\"cancelled.emit()\"\n >\n Cancel\n </button>\n <button\n [disabled]=\"isSaving\"\n mat-raised-button\n type=\"submit\"\n color=\"primary\"\n >\n Save\n </button>\n <button\n *ngIf=\"checksheetSubmission?.id\"\n [disabled]=\"isSaving\"\n mat-raised-button\n (click)=\"submitChecksheet()\"\n type=\"button\"\n color=\"accent\"\n >\n Submit\n </button>\n </div>\n </div>\n</form>\n" }]
|
|
120
|
+
}], ctorParameters: () => [{ type: i1.FormValidatorService }, { type: i2.UntypedFormBuilder }, { type: i3.ChecksheetService }, { type: i1.AlertService }, { type: i4.MatDialog }], propDecorators: { submittableType: [{
|
|
121
|
+
type: Input
|
|
122
|
+
}], submittableId: [{
|
|
123
|
+
type: Input
|
|
124
|
+
}], cancelled: [{
|
|
125
|
+
type: Output
|
|
126
|
+
}], saved: [{
|
|
127
|
+
type: Output
|
|
128
|
+
}], checksheetSubmission: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}] } });
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tzaGVldC1zdWJtaXNzaW9uLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNoZWNrc2hlZXQvc3JjL2xpYi9jaGVja3NoZWV0L2NoZWNrc2hlZXQtc3VibWlzc2lvbi1mb3JtL2NoZWNrc2hlZXQtc3VibWlzc2lvbi1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jaGVja3NoZWV0L3NyYy9saWIvY2hlY2tzaGVldC9jaGVja3NoZWV0LXN1Ym1pc3Npb24tZm9ybS9jaGVja3NoZWV0LXN1Ym1pc3Npb24tZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBc0IsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUVMLGFBQWEsRUFDYiw4QkFBOEIsRUFFOUIsb0JBQW9CLEVBRXJCLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBVzNCLE1BQU0sT0FBTyxpQ0FDWCxTQUFRLDhCQUE4QjtJQWE1QjtJQUNBO0lBQ0E7SUFDQTtJQWJELGVBQWUsQ0FBNkI7SUFDNUMsYUFBYSxDQUFVO0lBQ3RCLFNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNsRCxLQUFLLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFDeEQsVUFBVSxDQUFXO0lBQ1osb0JBQW9CLENBQU07SUFDbkMsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUUxQixZQUNFLG9CQUEwQyxFQUNsQyxFQUFzQixFQUN0QiwyQkFBOEMsRUFDOUMsWUFBMEIsRUFDMUIsTUFBaUI7UUFFekIsS0FBSyxDQUFDLG9CQUFvQixD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O1FBQ2QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDdkQsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQWU7Z0JBQ2pCLEtBQUssRUFBRSxtQkFBbUI7Z0JBQzFCLE9BQU8sRUFBRSxtSUFBbUk7YUFDN0k7WUFDRCxTQUFTLEVBQUUsS0FBSztTQUNqQixDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNqRCxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLG1CQUFtQjtnQkFDbkIsSUFBSSxDQUFDLDJCQUEyQjtxQkFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7cUJBQ3JDLFNBQVMsQ0FBQztvQkFDVCxJQUFJLEVBQUUsQ0FBQyxRQUFhLEVBQUUsRUFBRTt3QkFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQ3hCLDJCQUEyQixFQUMzQixTQUFTLENBQ1YsQ0FBQzt3QkFDRixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ2xDLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0E1R1UsaUNBQWlDOzRGQUFqQyxpQ0FBaUMsZ1JDcEI5QywyakZBMkZBOzs0RkR2RWEsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNFLGdDQUFnQzs2TUFRakMsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUVFLG9CQUFvQjtzQkFBNUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICBEYXRlVmFsaWRhdG9yLFxuICBUZWNobGlmeUZvcm1Db21wb25lbnRJbnRlcmZhY2UsXG4gIEFsZXJ0U2VydmljZSxcbiAgQWN0aW9uUG9wdXBDb21wb25lbnQsXG4gIEFjdGlvblBvcHVwXG59IGZyb20gJ25neC10ZWNobGlmeS1jb3JlJztcbmltcG9ydCB7IENoZWNrc2hlZXRTZXJ2aWNlIH0gZnJvbSAnLi4vY2hlY2tzaGVldC5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENoZWNrc2hlZXRTdWJtaXR0YWJsZVR5cGUgfSBmcm9tICcuLi9jaGVja3NoZWV0LXN1Ym1pdHRhYmxlLnR5cGUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNoZWNrc2hlZXQtc3VibWlzc2lvbi1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrc2hlZXQtc3VibWlzc2lvbi1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tzaGVldC1zdWJtaXNzaW9uLWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja3NoZWV0U3VibWlzc2lvbkZvcm1Db21wb25lbnRcbiAgZXh0ZW5kcyBUZWNobGlmeUZvcm1Db21wb25lbnRJbnRlcmZhY2VcbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgQElucHV0KCkgc3VibWl0dGFibGVUeXBlITogQ2hlY2tzaGVldFN1Ym1pdHRhYmxlVHlwZTtcbiAgQElucHV0KCkgc3VibWl0dGFibGVJZCE6IG51bWJlcjtcbiAgQE91dHB1dCgpIGNhbmNlbGxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBzYXZlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHVwZGF0ZU1vZGUhOiBib29sZWFuO1xuICBASW5wdXQoKSBjaGVja3NoZWV0U3VibWlzc2lvbjogYW55O1xuICBpc1NhdmluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGZvcm1WYWxpZGF0b3JTZXJ2aWNlOiBGb3JtVmFsaWRhdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBjaGVja3NoZWV0U3VibWlzc2lvblNlcnZpY2U6IENoZWNrc2hlZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xuICApIHtcbiAgICBzdXBlcihmb3JtVmFsaWRhdG9yU2VydmljZSk7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0ge1xuICAgICAgZGF0ZToge1xuICAgICAgICByZXF1aXJlZDogJ1RoZSBkYXRlIGZpZWxkIGlzIHJlcXVpcmVkLidcbiAgICAgIH0sXG4gICAgICBmb3JtYXRfaWQ6IHtcbiAgICAgICAgcmVxdWlyZWQ6ICdUaGUgY2hlY2tzaGVldCBmb3JtYXQgaXMgcmVxdWlyZWQuJ1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRm9ybSgpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGlkOiBbJyddLFxuICAgICAgZGF0ZTogWycnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIERhdGVWYWxpZGF0b3IoKV0pXSxcbiAgICAgIGZvcm1hdF9pZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIHN1Ym1pdHRhYmxlX3R5cGU6IFsnZml4ZWQtYXNzZXQnXSxcbiAgICAgIHN1Ym1pdHRhYmxlX2lkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgZGV0YWlsczogWycnXVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gU2V0IHRoZSBzdWJtaXR0YWJsZSB0eXBlIGFuZCBpZCBhbmQgbWFrZSBpdCByZWFkb25seVxuICAgIGlmICh0aGlzLnN1Ym1pdHRhYmxlVHlwZSAmJiB0aGlzLnN1Ym1pdHRhYmxlSWQpIHtcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgc3VibWl0dGFibGVfdHlwZTogdGhpcy5zdWJtaXR0YWJsZVR5cGUsXG4gICAgICAgIHN1Ym1pdHRhYmxlX2lkOiB0aGlzLnN1Ym1pdHRhYmxlSWRcbiAgICAgIH0pO1xuICAgIH1cbiAgICAvLyBTZXQgdGhlIENoZWNrc2hlZXQgdG8gZm9ybVxuICAgIGlmICh0aGlzLmNoZWNrc2hlZXRTdWJtaXNzaW9uKSB7XG4gICAgICB0aGlzLnVwZGF0ZU1vZGUgPSB0cnVlO1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAuLi50aGlzLmNoZWNrc2hlZXRTdWJtaXNzaW9uLFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZSh0aGlzLmNoZWNrc2hlZXRTdWJtaXNzaW9uPy5kYXRlKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ1BsZWFzZSBjaGVjayB0aGUgZm9ybSBmb3IgZXJyb3JzJywgJ2Vycm9yJyk7XG4gICAgfVxuICAgIGNvbnN0IGRhdGE6IGFueSA9IHsgLi4udGhpcy5mb3JtLnZhbHVlIH07XG4gICAgY29uc3QgcmVxdWVzdDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy51cGRhdGVNb2RlXG4gICAgICA/IHRoaXMuY2hlY2tzaGVldFN1Ym1pc3Npb25TZXJ2aWNlLnVwZGF0ZShkYXRhKVxuICAgICAgOiB0aGlzLmNoZWNrc2hlZXRTdWJtaXNzaW9uU2VydmljZS5zdG9yZShkYXRhKTtcblxuICAgIHRoaXMuaXNTYXZpbmcgPSB0cnVlO1xuICAgIHJlcXVlc3Quc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zYXZlZC5lbWl0KHJlc3BvbnNlPy5pdGVtKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmlzU2F2aW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdWJtaXRDaGVja3NoZWV0KCkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQWN0aW9uUG9wdXBDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YTogPEFjdGlvblBvcHVwPntcbiAgICAgICAgdGl0bGU6ICdTdWJtaXQgQ2hlY2tzaGVldCcsXG4gICAgICAgIG1lc3NhZ2U6IGBSZXZpZXcgdGhlIGNoZWNrc2hlZXQgY29tcGxldGVseSBiZWZvcmUgc3VibWl0dGluZywgeW91IGNhbm5vdCBhbHRlciBvbmNlIGl0IGlzIHN1Ym1pdHRlZC4gQXJlIHlvdSBzdXJlIHRvIHN1Ym1pdCB0aGUgQ2hlY2tzaGVldD9gXG4gICAgICB9LFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZVxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgLy8gQWN0aW9uIGNvbmZpcm1lZFxuICAgICAgICB0aGlzLmNoZWNrc2hlZXRTdWJtaXNzaW9uU2VydmljZVxuICAgICAgICAgIC5zdWJtaXQodGhpcy5jaGVja3NoZWV0U3VibWlzc2lvbj8uaWQpXG4gICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydChcbiAgICAgICAgICAgICAgICAnVGhlIENoZWNrc2hlZXQgc3VibWl0dGVkIScsXG4gICAgICAgICAgICAgICAgJ3N1Y2Nlc3MnXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHRoaXMuc2F2ZWQuZW1pdChyZXNwb25zZT8uaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChzdWJtaXQpPVwic3VibWl0KClcIj5cbiAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cbiAgICA8aDM+Q2hlY2tzaGVldDwvaDM+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPkRhdGU8L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXJcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIkRhdGUgKE1NL0REL1lZWVkpXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgIHJlcXVpcmVkXG4gICAgICAgIChmb2N1cyk9XCJwaWNrZXIub3BlbigpXCJcbiAgICAgIC8+XG4gICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ2RhdGUnKVwiXG4gICAgICAgID57eyBnZXRFcnJvck1lc3NhZ2UoJ2RhdGUnKSB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+Q2hlY2tzaGVldCBGb3JtYXQ8L21hdC1sYWJlbD5cbiAgICAgIDxhcHAtc2VhcmNoYWJsZS1zZWxlY3RvclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJmb3JtYXRfaWRcIlxuICAgICAgICBhcGlVcmw9XCJhcGkvY2hlY2tzaGVldC1mb3JtYXRzP2lzX3B1Ymxpc2hlZD0xXCJcbiAgICAgICAgW2VuYWJsZVNlYXJjaF09XCJ0cnVlXCJcbiAgICAgID5cbiAgICAgIDwvYXBwLXNlYXJjaGFibGUtc2VsZWN0b3I+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCdmb3JtYXRfaWQnKVwiXG4gICAgICAgID57eyBnZXRFcnJvck1lc3NhZ2UoJ2Zvcm1hdF9pZCcpIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD5DaGVja3NoZWV0IEZvcjwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwic3VibWl0dGFibGVfdHlwZVwiPlxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cImZpeGVkLWFzc2V0XCI+Rml4ZWQgQXNzZXQ8L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgKm5nSWY9XCJmb3JtLmdldCgnc3VibWl0dGFibGVfdHlwZScpPy52YWx1ZSA9PT0gJ2ZpeGVkLWFzc2V0J1wiXG4gICAgPlxuICAgICAgPG1hdC1sYWJlbD5GaXhlZCBBc3NldDwvbWF0LWxhYmVsPlxuICAgICAgPGFwcC1zZWFyY2hhYmxlLXNlbGVjdG9yXG4gICAgICAgIGFwaVVybD1cImFwaS9hY2NvdW50aW5nLXBsdXMvZml4ZWQtYXNzZXRzXCJcbiAgICAgICAgdGl0bGVGaWVsZD1cIm5hbWVcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdWJtaXR0YWJsZV9pZFwiXG4gICAgICA+PC9hcHAtc2VhcmNoYWJsZS1zZWxlY3Rvcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD5EZXRhaWxzPC9tYXQtbGFiZWw+XG4gICAgICA8dGV4dGFyZWFcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJEZXRhaWxzXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGV0YWlsc1wiXG4gICAgICA+PC90ZXh0YXJlYT5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgW2Rpc2FibGVkXT1cImlzU2F2aW5nXCJcbiAgICAgICAgbWF0LWZsYXQtYnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiY2FuY2VsbGVkLmVtaXQoKVwiXG4gICAgICA+XG4gICAgICAgIENhbmNlbFxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1NhdmluZ1wiXG4gICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgPlxuICAgICAgICBTYXZlXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJjaGVja3NoZWV0U3VibWlzc2lvbj8uaWRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNTYXZpbmdcIlxuICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAoY2xpY2spPVwic3VibWl0Q2hlY2tzaGVldCgpXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgID5cbiAgICAgICAgU3VibWl0XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/material/dialog";
|
|
4
|
+
import * as i2 from "ngx-techlify-core";
|
|
5
|
+
import * as i3 from "@angular/router";
|
|
6
|
+
import * as i4 from "@angular/common";
|
|
7
|
+
import * as i5 from "@angular/material/icon";
|
|
8
|
+
import * as i6 from "@angular/material/tooltip";
|
|
9
|
+
import * as i7 from "../checksheet-submission-form/checksheet-submission-form.component";
|
|
10
|
+
export class ChecksheetSubmissionFormButtonComponent {
|
|
11
|
+
matDialog;
|
|
12
|
+
alertService;
|
|
13
|
+
router;
|
|
14
|
+
submittableType = 'fixed-asset';
|
|
15
|
+
submittableId;
|
|
16
|
+
saved = new EventEmitter();
|
|
17
|
+
constructor(matDialog, alertService, router) {
|
|
18
|
+
this.matDialog = matDialog;
|
|
19
|
+
this.alertService = alertService;
|
|
20
|
+
this.router = router;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Open checksheet submission form.
|
|
24
|
+
*
|
|
25
|
+
* @param templateRef
|
|
26
|
+
*/
|
|
27
|
+
openForm(templateRef) {
|
|
28
|
+
this.matDialog.open(templateRef, { width: '500px' });
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Handle checksheet submission save event.
|
|
32
|
+
*
|
|
33
|
+
* @param checksheetSubmission
|
|
34
|
+
*/
|
|
35
|
+
onSaved(checksheetSubmission) {
|
|
36
|
+
this.saved.emit(checksheetSubmission);
|
|
37
|
+
this.matDialog.closeAll();
|
|
38
|
+
this.alertService.addAlert('The checksheet submission is saved successfully!', 'success');
|
|
39
|
+
this.router.navigate([
|
|
40
|
+
'fixed-assets/checksheets/checksheet-submissions',
|
|
41
|
+
checksheetSubmission?.id,
|
|
42
|
+
'view'
|
|
43
|
+
]);
|
|
44
|
+
}
|
|
45
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChecksheetSubmissionFormButtonComponent, deps: [{ token: i1.MatDialog }, { token: i2.AlertService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
46
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChecksheetSubmissionFormButtonComponent, selector: "app-checksheet-submission-form-button", inputs: { submittableType: "submittableType", submittableId: "submittableId" }, outputs: { saved: "saved" }, ngImport: i0, template: "<span\n *ngIf=\"submittableId\"\n class=\"material-symbols-outlined text-secondary\"\n matTooltip=\"Add Checksheet Submission\"\n (click)=\"openForm(formTemplate)\"\n>\n assignment_turned_in\n</span>\n<mat-icon\n *ngIf=\"!submittableId\"\n class=\"cursor-pointer text-secondary\"\n (click)=\"openForm(formTemplate)\"\n>\n add\n</mat-icon>\n\n<ng-template #formTemplate>\n <app-checksheet-submission-form\n mat-dialog-content\n (cancelled)=\"matDialog.closeAll()\"\n (saved)=\"onSaved($event)\"\n [submittableType]=\"submittableType\"\n [submittableId]=\"submittableId\"\n ></app-checksheet-submission-form>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i7.ChecksheetSubmissionFormComponent, selector: "app-checksheet-submission-form", inputs: ["submittableType", "submittableId", "checksheetSubmission"], outputs: ["cancelled", "saved"] }] });
|
|
47
|
+
}
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChecksheetSubmissionFormButtonComponent, decorators: [{
|
|
49
|
+
type: Component,
|
|
50
|
+
args: [{ selector: 'app-checksheet-submission-form-button', template: "<span\n *ngIf=\"submittableId\"\n class=\"material-symbols-outlined text-secondary\"\n matTooltip=\"Add Checksheet Submission\"\n (click)=\"openForm(formTemplate)\"\n>\n assignment_turned_in\n</span>\n<mat-icon\n *ngIf=\"!submittableId\"\n class=\"cursor-pointer text-secondary\"\n (click)=\"openForm(formTemplate)\"\n>\n add\n</mat-icon>\n\n<ng-template #formTemplate>\n <app-checksheet-submission-form\n mat-dialog-content\n (cancelled)=\"matDialog.closeAll()\"\n (saved)=\"onSaved($event)\"\n [submittableType]=\"submittableType\"\n [submittableId]=\"submittableId\"\n ></app-checksheet-submission-form>\n</ng-template>\n" }]
|
|
51
|
+
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.AlertService }, { type: i3.Router }], propDecorators: { submittableType: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], submittableId: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], saved: [{
|
|
56
|
+
type: Output
|
|
57
|
+
}] } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tzaGVldC1zdWJtaXNzaW9uLWZvcm0tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jaGVja3NoZWV0L3NyYy9saWIvY2hlY2tzaGVldC9jaGVja3NoZWV0LXN1Ym1pc3Npb24tZm9ybS1idXR0b24vY2hlY2tzaGVldC1zdWJtaXNzaW9uLWZvcm0tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jaGVja3NoZWV0L3NyYy9saWIvY2hlY2tzaGVldC9jaGVja3NoZWV0LXN1Ym1pc3Npb24tZm9ybS1idXR0b24vY2hlY2tzaGVldC1zdWJtaXNzaW9uLWZvcm0tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQVd2QixNQUFNLE9BQU8sdUNBQXVDO0lBTXpDO0lBQ0M7SUFDQTtJQVBELGVBQWUsR0FBOEIsYUFBYSxDQUFDO0lBQzNELGFBQWEsQ0FBVTtJQUN0QixLQUFLLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFFN0QsWUFDUyxTQUFvQixFQUNuQixZQUEwQixFQUMxQixNQUFjO1FBRmYsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNuQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSjs7OztPQUlHO0lBQ0gsUUFBUSxDQUFDLFdBQTZCO1FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLG9CQUF5QjtRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQ3hCLGtEQUFrRCxFQUNsRCxTQUFTLENBQ1YsQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ25CLGlEQUFpRDtZQUNqRCxvQkFBb0IsRUFBRSxFQUFFO1lBQ3hCLE1BQU07U0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDO3dHQXRDVSx1Q0FBdUM7NEZBQXZDLHVDQUF1QywwTENqQnBELDRvQkF5QkE7OzRGRFJhLHVDQUF1QztrQkFMbkQsU0FBUzsrQkFDRSx1Q0FBdUM7OEhBS3hDLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnbmd4LXRlY2hsaWZ5LWNvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENoZWNrc2hlZXRTdWJtaXR0YWJsZVR5cGUgfSBmcm9tICcuLi9jaGVja3NoZWV0LXN1Ym1pdHRhYmxlLnR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY2hlY2tzaGVldC1zdWJtaXNzaW9uLWZvcm0tYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrc2hlZXQtc3VibWlzc2lvbi1mb3JtLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrc2hlZXQtc3VibWlzc2lvbi1mb3JtLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrc2hlZXRTdWJtaXNzaW9uRm9ybUJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHN1Ym1pdHRhYmxlVHlwZTogQ2hlY2tzaGVldFN1Ym1pdHRhYmxlVHlwZSA9ICdmaXhlZC1hc3NldCc7XG4gIEBJbnB1dCgpIHN1Ym1pdHRhYmxlSWQhOiBudW1iZXI7XG4gIEBPdXRwdXQoKSBzYXZlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbWF0RGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge31cblxuICAvKipcbiAgICogT3BlbiBjaGVja3NoZWV0IHN1Ym1pc3Npb24gZm9ybS5cbiAgICpcbiAgICogQHBhcmFtIHRlbXBsYXRlUmVmXG4gICAqL1xuICBvcGVuRm9ybSh0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMubWF0RGlhbG9nLm9wZW4odGVtcGxhdGVSZWYsIHsgd2lkdGg6ICc1MDBweCcgfSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGNoZWNrc2hlZXQgc3VibWlzc2lvbiBzYXZlIGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY2hlY2tzaGVldFN1Ym1pc3Npb25cbiAgICovXG4gIG9uU2F2ZWQoY2hlY2tzaGVldFN1Ym1pc3Npb246IGFueSkge1xuICAgIHRoaXMuc2F2ZWQuZW1pdChjaGVja3NoZWV0U3VibWlzc2lvbik7XG4gICAgdGhpcy5tYXREaWFsb2cuY2xvc2VBbGwoKTtcbiAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydChcbiAgICAgICdUaGUgY2hlY2tzaGVldCBzdWJtaXNzaW9uIGlzIHNhdmVkIHN1Y2Nlc3NmdWxseSEnLFxuICAgICAgJ3N1Y2Nlc3MnXG4gICAgKTtcblxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcbiAgICAgICdmaXhlZC1hc3NldHMvY2hlY2tzaGVldHMvY2hlY2tzaGVldC1zdWJtaXNzaW9ucycsXG4gICAgICBjaGVja3NoZWV0U3VibWlzc2lvbj8uaWQsXG4gICAgICAndmlldydcbiAgICBdKTtcbiAgfVxufVxuIiwiPHNwYW5cbiAgKm5nSWY9XCJzdWJtaXR0YWJsZUlkXCJcbiAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIHRleHQtc2Vjb25kYXJ5XCJcbiAgbWF0VG9vbHRpcD1cIkFkZCBDaGVja3NoZWV0IFN1Ym1pc3Npb25cIlxuICAoY2xpY2spPVwib3BlbkZvcm0oZm9ybVRlbXBsYXRlKVwiXG4+XG4gIGFzc2lnbm1lbnRfdHVybmVkX2luXG48L3NwYW4+XG48bWF0LWljb25cbiAgKm5nSWY9XCIhc3VibWl0dGFibGVJZFwiXG4gIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgdGV4dC1zZWNvbmRhcnlcIlxuICAoY2xpY2spPVwib3BlbkZvcm0oZm9ybVRlbXBsYXRlKVwiXG4+XG4gIGFkZFxuPC9tYXQtaWNvbj5cblxuPG5nLXRlbXBsYXRlICNmb3JtVGVtcGxhdGU+XG4gIDxhcHAtY2hlY2tzaGVldC1zdWJtaXNzaW9uLWZvcm1cbiAgICBtYXQtZGlhbG9nLWNvbnRlbnRcbiAgICAoY2FuY2VsbGVkKT1cIm1hdERpYWxvZy5jbG9zZUFsbCgpXCJcbiAgICAoc2F2ZWQpPVwib25TYXZlZCgkZXZlbnQpXCJcbiAgICBbc3VibWl0dGFibGVUeXBlXT1cInN1Ym1pdHRhYmxlVHlwZVwiXG4gICAgW3N1Ym1pdHRhYmxlSWRdPVwic3VibWl0dGFibGVJZFwiXG4gID48L2FwcC1jaGVja3NoZWV0LXN1Ym1pc3Npb24tZm9ybT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
package/esm2022/lib/checksheet/checksheet-submission-list/checksheet-submission-list.component.mjs
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import { TechlifyListingControllerInterface, Timeline } from 'ngx-techlify-core';
|
|
4
|
+
import { UntilDestroy } from '@ngneat/until-destroy';
|
|
5
|
+
import { debounceTime } from 'rxjs';
|
|
6
|
+
import moment from 'moment';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "ngx-techlify-core";
|
|
9
|
+
import * as i2 from "@angular/forms";
|
|
10
|
+
import * as i3 from "../checksheet-submission.service";
|
|
11
|
+
import * as i4 from "@angular/common";
|
|
12
|
+
import * as i5 from "@angular/router";
|
|
13
|
+
import * as i6 from "@angular/flex-layout/flex";
|
|
14
|
+
import * as i7 from "@angular/material/card";
|
|
15
|
+
import * as i8 from "@angular/material/form-field";
|
|
16
|
+
import * as i9 from "@angular/material/icon";
|
|
17
|
+
import * as i10 from "@angular/material/progress-bar";
|
|
18
|
+
import * as i11 from "@angular/material/table";
|
|
19
|
+
import * as i12 from "ngx-permissions";
|
|
20
|
+
import * as i13 from "ngx-infinite-scroll";
|
|
21
|
+
import * as i14 from "../checksheet-submission-delete-button/checksheet-submission-delete-button.component";
|
|
22
|
+
import * as i15 from "../checksheet-submission-form-button/checksheet-submission-form-button.component";
|
|
23
|
+
import * as i16 from "../checksheet-submission-review-button/checksheet-submission-review-button.component";
|
|
24
|
+
let ChecksheetSubmissionListComponent = class ChecksheetSubmissionListComponent extends TechlifyListingControllerInterface {
|
|
25
|
+
alertService;
|
|
26
|
+
fb;
|
|
27
|
+
checksheetSubmissionService;
|
|
28
|
+
requestHelperService;
|
|
29
|
+
displayedColumns = [
|
|
30
|
+
'index',
|
|
31
|
+
'date',
|
|
32
|
+
'format.title',
|
|
33
|
+
'creator.name',
|
|
34
|
+
'reviewer.name',
|
|
35
|
+
'status.title',
|
|
36
|
+
'actions'
|
|
37
|
+
];
|
|
38
|
+
with = 'format,creator,reviewer,status';
|
|
39
|
+
constructor(alertService, fb, checksheetSubmissionService, requestHelperService) {
|
|
40
|
+
super();
|
|
41
|
+
this.alertService = alertService;
|
|
42
|
+
this.fb = fb;
|
|
43
|
+
this.checksheetSubmissionService = checksheetSubmissionService;
|
|
44
|
+
this.requestHelperService = requestHelperService;
|
|
45
|
+
this.createForm();
|
|
46
|
+
}
|
|
47
|
+
ngOnInit() {
|
|
48
|
+
this.loadData();
|
|
49
|
+
this.filterForm.valueChanges
|
|
50
|
+
.pipe(debounceTime(800))
|
|
51
|
+
.subscribe(() => this.reload());
|
|
52
|
+
}
|
|
53
|
+
createForm() {
|
|
54
|
+
this.filterForm = this.fb.group({
|
|
55
|
+
duration: [Timeline.ALL],
|
|
56
|
+
date_from: [''],
|
|
57
|
+
date_to: [''],
|
|
58
|
+
status_ids: [''],
|
|
59
|
+
creator_ids: [''],
|
|
60
|
+
reviewer_ids: [''],
|
|
61
|
+
format_ids: [''],
|
|
62
|
+
sort_by: ['created_at|DESC'],
|
|
63
|
+
with: [this.with]
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
loadData() {
|
|
67
|
+
this.isWorking = true;
|
|
68
|
+
const params = {
|
|
69
|
+
...this.requestHelperService.convertToFormData(this.filterForm.value),
|
|
70
|
+
perPage: this.perPage,
|
|
71
|
+
page: this.page
|
|
72
|
+
};
|
|
73
|
+
this.checksheetSubmissionService.index(params).subscribe({
|
|
74
|
+
next: (response) => {
|
|
75
|
+
this.models = this.models.concat(response?.data);
|
|
76
|
+
this.lastPage = response?.last_page;
|
|
77
|
+
this.isWorking = false;
|
|
78
|
+
},
|
|
79
|
+
error: () => (this.isWorking = false)
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
onDurationChange(timelineValue) {
|
|
83
|
+
let { date_to, date_from } = timelineValue;
|
|
84
|
+
this.filterForm.patchValue({
|
|
85
|
+
date_from: date_from ? moment(date_from).format('YYYY-MM-DD') : '',
|
|
86
|
+
date_to: date_to ? moment(date_to).format('YYYY-MM-DD') : ''
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Handle checksheet submission delete event.
|
|
91
|
+
*/
|
|
92
|
+
onDeleted() {
|
|
93
|
+
this.alertService.addAlert('Checksheet submission deleted successfully!', 'success');
|
|
94
|
+
this.reload();
|
|
95
|
+
}
|
|
96
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChecksheetSubmissionListComponent, deps: [{ token: i1.AlertService }, { token: i2.UntypedFormBuilder }, { token: i3.ChecksheetSubmissionService }, { token: i1.RequestHelperService }], target: i0.ɵɵFactoryTarget.Component });
|
|
97
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChecksheetSubmissionListComponent, selector: "app-checksheet-submission-list", usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex justify-content-center align-items-center gap-3\">\n <h3 class=\"m-0 font-weight-bold\">Checksheet Submissions</h3>\n <app-checksheet-submission-form-button></app-checksheet-submission-form-button>\n</div>\n\n<mat-card class=\"mt-3\">\n <mat-card-content>\n <form fxLayout=\"row wrap\" fxLayoutGap=\"1rem\" [formGroup]=\"filterForm\">\n <app-timeline-filter\n formControlName=\"duration\"\n (selectionChange)=\"onDurationChange($event)\"\n [dateFrom]=\"filterForm.value?.date_from\"\n [dateTo]=\"filterForm.value?.date_to\"\n appearance=\"fill\"\n ></app-timeline-filter>\n\n <mat-form-field>\n <mat-label>Status</mat-label>\n <app-searchable-selector\n formControlName=\"status_ids\"\n apiUrl=\"api/checksheet-submission-statuses\"\n [enableSearch]=\"false\"\n [multiple]=\"true\"\n >\n </app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field *ngxPermissionsOnly=\"['user_read']\">\n <mat-label>Creator</mat-label>\n <app-searchable-selector\n formControlName=\"creator_ids\"\n apiUrl=\"api/users\"\n [enableSearch]=\"true\"\n titleField=\"name\"\n [multiple]=\"true\"\n >\n </app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field *ngxPermissionsOnly=\"['user_read']\">\n <mat-label>Reviewer</mat-label>\n <app-searchable-selector\n formControlName=\"reviewer_ids\"\n apiUrl=\"api/users\"\n [enableSearch]=\"true\"\n titleField=\"name\"\n [multiple]=\"true\"\n >\n </app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Checksheet Format</mat-label>\n <app-searchable-selector\n formControlName=\"format_ids\"\n apiUrl=\"api/checksheet-formats?is_published=1\"\n [enableSearch]=\"true\"\n [multiple]=\"true\"\n >\n </app-searchable-selector>\n </mat-form-field>\n </form>\n </mat-card-content>\n</mat-card>\n\n<mat-card\n class=\"p-0 mt-3\"\n infiniteScroll\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\"\n [fromRoot]=\"true\"\n>\n <table\n mat-table\n [dataSource]=\"models\"\n class=\"w-100\"\n multiTemplateDataRows\n aria-describedby=\"Checksheet Submissions\"\n >\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\">\n {{ i + 1 }}\n </td>\n </ng-container>\n\n <!-- Checksheet Format Column -->\n <ng-container matColumnDef=\"format.title\">\n <th mat-header-cell *matHeaderCellDef>Checksheet Format</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.format?.title }}\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator.name\">\n <th mat-header-cell *matHeaderCellDef>Creator</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.creator?.name }}\n </td>\n </ng-container>\n\n <!-- Reviewer Column -->\n <ng-container matColumnDef=\"reviewer.name\">\n <th mat-header-cell *matHeaderCellDef>Reviewer</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.reviewer?.name }}\n </td>\n </ng-container>\n\n <!-- Status Column -->\n <ng-container matColumnDef=\"status.title\">\n <th mat-header-cell *matHeaderCellDef>Status</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.status?.title }}\n </td>\n </ng-container>\n\n <!-- Date Column -->\n <ng-container matColumnDef=\"date\">\n <th mat-header-cell *matHeaderCellDef>Date</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element.date | date }}\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 <div class=\"d-flex gap-2\">\n <mat-icon\n [routerLink]=\"['../checksheet-submissions-view', element?.id]\"\n class=\"cursor-pointer\"\n >\n visibility\n </mat-icon>\n\n <mat-icon\n *ngIf=\"element.status_id === 1\"\n [routerLink]=\"[element?.id, 'view']\"\n class=\"cursor-pointer\"\n >\n edit\n </mat-icon>\n <app-checksheet-submission-review-button\n [submission]=\"element\"\n [requestParams]=\"{ with: this.with }\"\n (reviewed)=\"reload()\"\n ></app-checksheet-submission-review-button>\n <app-checksheet-submission-delete-button\n [checksheetSubmission]=\"element\"\n (deleted)=\"onDeleted()\"\n ></app-checksheet-submission-delete-button>\n </div>\n </td>\n </ng-container>\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>\n", styles: [".scroll-container{max-height:800px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i6.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i11.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i11.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i11.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i11.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i11.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i11.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i11.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i11.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i11.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i11.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i12.NgxPermissionsDirective, selector: "[ngxPermissionsOnly],[ngxPermissionsExcept]", inputs: ["ngxPermissionsOnly", "ngxPermissionsOnlyThen", "ngxPermissionsOnlyElse", "ngxPermissionsExcept", "ngxPermissionsExceptElse", "ngxPermissionsExceptThen", "ngxPermissionsThen", "ngxPermissionsElse", "ngxPermissionsOnlyAuthorisedStrategy", "ngxPermissionsOnlyUnauthorisedStrategy", "ngxPermissionsExceptUnauthorisedStrategy", "ngxPermissionsExceptAuthorisedStrategy", "ngxPermissionsUnauthorisedStrategy", "ngxPermissionsAuthorisedStrategy"], outputs: ["permissionsAuthorized", "permissionsUnauthorized"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i13.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: 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: i1.TimelineFilterComponent, selector: "app-timeline-filter", inputs: ["defaultValue", "required", "disabled", "value", "timelines", "dateFrom", "dateTo", "appearance", "showClearButton", "form", "labelText"], outputs: ["selectionChange"] }, { kind: "component", type: i14.ChecksheetSubmissionDeleteButtonComponent, selector: "app-checksheet-submission-delete-button", inputs: ["checksheetSubmission"], outputs: ["deleted"] }, { kind: "component", type: i15.ChecksheetSubmissionFormButtonComponent, selector: "app-checksheet-submission-form-button", inputs: ["submittableType", "submittableId"], outputs: ["saved"] }, { kind: "component", type: i16.ChecksheetSubmissionReviewButtonComponent, selector: "app-checksheet-submission-review-button", inputs: ["submission", "viewType", "requestParams"], outputs: ["reviewed"] }, { kind: "pipe", type: i4.DatePipe, name: "date" }] });
|
|
98
|
+
};
|
|
99
|
+
ChecksheetSubmissionListComponent = __decorate([
|
|
100
|
+
UntilDestroy()
|
|
101
|
+
], ChecksheetSubmissionListComponent);
|
|
102
|
+
export { ChecksheetSubmissionListComponent };
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChecksheetSubmissionListComponent, decorators: [{
|
|
104
|
+
type: Component,
|
|
105
|
+
args: [{ selector: 'app-checksheet-submission-list', template: "<div class=\"d-flex justify-content-center align-items-center gap-3\">\n <h3 class=\"m-0 font-weight-bold\">Checksheet Submissions</h3>\n <app-checksheet-submission-form-button></app-checksheet-submission-form-button>\n</div>\n\n<mat-card class=\"mt-3\">\n <mat-card-content>\n <form fxLayout=\"row wrap\" fxLayoutGap=\"1rem\" [formGroup]=\"filterForm\">\n <app-timeline-filter\n formControlName=\"duration\"\n (selectionChange)=\"onDurationChange($event)\"\n [dateFrom]=\"filterForm.value?.date_from\"\n [dateTo]=\"filterForm.value?.date_to\"\n appearance=\"fill\"\n ></app-timeline-filter>\n\n <mat-form-field>\n <mat-label>Status</mat-label>\n <app-searchable-selector\n formControlName=\"status_ids\"\n apiUrl=\"api/checksheet-submission-statuses\"\n [enableSearch]=\"false\"\n [multiple]=\"true\"\n >\n </app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field *ngxPermissionsOnly=\"['user_read']\">\n <mat-label>Creator</mat-label>\n <app-searchable-selector\n formControlName=\"creator_ids\"\n apiUrl=\"api/users\"\n [enableSearch]=\"true\"\n titleField=\"name\"\n [multiple]=\"true\"\n >\n </app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field *ngxPermissionsOnly=\"['user_read']\">\n <mat-label>Reviewer</mat-label>\n <app-searchable-selector\n formControlName=\"reviewer_ids\"\n apiUrl=\"api/users\"\n [enableSearch]=\"true\"\n titleField=\"name\"\n [multiple]=\"true\"\n >\n </app-searchable-selector>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Checksheet Format</mat-label>\n <app-searchable-selector\n formControlName=\"format_ids\"\n apiUrl=\"api/checksheet-formats?is_published=1\"\n [enableSearch]=\"true\"\n [multiple]=\"true\"\n >\n </app-searchable-selector>\n </mat-form-field>\n </form>\n </mat-card-content>\n</mat-card>\n\n<mat-card\n class=\"p-0 mt-3\"\n infiniteScroll\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\"\n [fromRoot]=\"true\"\n>\n <table\n mat-table\n [dataSource]=\"models\"\n class=\"w-100\"\n multiTemplateDataRows\n aria-describedby=\"Checksheet Submissions\"\n >\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\">\n {{ i + 1 }}\n </td>\n </ng-container>\n\n <!-- Checksheet Format Column -->\n <ng-container matColumnDef=\"format.title\">\n <th mat-header-cell *matHeaderCellDef>Checksheet Format</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.format?.title }}\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator.name\">\n <th mat-header-cell *matHeaderCellDef>Creator</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.creator?.name }}\n </td>\n </ng-container>\n\n <!-- Reviewer Column -->\n <ng-container matColumnDef=\"reviewer.name\">\n <th mat-header-cell *matHeaderCellDef>Reviewer</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.reviewer?.name }}\n </td>\n </ng-container>\n\n <!-- Status Column -->\n <ng-container matColumnDef=\"status.title\">\n <th mat-header-cell *matHeaderCellDef>Status</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.status?.title }}\n </td>\n </ng-container>\n\n <!-- Date Column -->\n <ng-container matColumnDef=\"date\">\n <th mat-header-cell *matHeaderCellDef>Date</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element.date | date }}\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 <div class=\"d-flex gap-2\">\n <mat-icon\n [routerLink]=\"['../checksheet-submissions-view', element?.id]\"\n class=\"cursor-pointer\"\n >\n visibility\n </mat-icon>\n\n <mat-icon\n *ngIf=\"element.status_id === 1\"\n [routerLink]=\"[element?.id, 'view']\"\n class=\"cursor-pointer\"\n >\n edit\n </mat-icon>\n <app-checksheet-submission-review-button\n [submission]=\"element\"\n [requestParams]=\"{ with: this.with }\"\n (reviewed)=\"reload()\"\n ></app-checksheet-submission-review-button>\n <app-checksheet-submission-delete-button\n [checksheetSubmission]=\"element\"\n (deleted)=\"onDeleted()\"\n ></app-checksheet-submission-delete-button>\n </div>\n </td>\n </ng-container>\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>\n", styles: [".scroll-container{max-height:800px;overflow-y:auto}\n"] }]
|
|
106
|
+
}], ctorParameters: () => [{ type: i1.AlertService }, { type: i2.UntypedFormBuilder }, { type: i3.ChecksheetSubmissionService }, { type: i1.RequestHelperService }] });
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tzaGVldC1zdWJtaXNzaW9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNoZWNrc2hlZXQvc3JjL2xpYi9jaGVja3NoZWV0L2NoZWNrc2hlZXQtc3VibWlzc2lvbi1saXN0L2NoZWNrc2hlZXQtc3VibWlzc2lvbi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jaGVja3NoZWV0L3NyYy9saWIvY2hlY2tzaGVldC9jaGVja3NoZWV0LXN1Ym1pc3Npb24tbGlzdC9jaGVja3NoZWV0LXN1Ym1pc3Npb24tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBRUwsa0NBQWtDLEVBQ2xDLFFBQVEsRUFHVCxNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUXJCLElBQU0saUNBQWlDLEdBQXZDLE1BQU0saUNBQ1gsU0FBUSxrQ0FBa0M7SUFlaEM7SUFDQTtJQUNBO0lBQ0E7SUFmVixnQkFBZ0IsR0FBVTtRQUN4QixPQUFPO1FBQ1AsTUFBTTtRQUNOLGNBQWM7UUFDZCxjQUFjO1FBQ2QsZUFBZTtRQUNmLGNBQWM7UUFDZCxTQUFTO0tBQ1YsQ0FBQztJQUNGLElBQUksR0FBVyxnQ0FBZ0MsQ0FBQztJQUVoRCxZQUNVLFlBQTBCLEVBQzFCLEVBQXNCLEVBQ3RCLDJCQUF3RCxFQUN4RCxvQkFBMEM7UUFFbEQsS0FBSyxFQUFFLENBQUM7UUFMQSxpQkFB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cEI5QyxpeEtBb0tBOztBRGhKYSxpQ0FBaUM7SUFON0MsWUFBWSxFQUFFO0dBTUYsaUNBQWlDLENBaUY3Qzs7NEZBakZZLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDRSxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgUmVxdWVzdEhlbHBlclNlcnZpY2UsXG4gIFRlY2hsaWZ5TGlzdGluZ0NvbnRyb2xsZXJJbnRlcmZhY2UsXG4gIFRpbWVsaW5lLFxuICBUaW1lbGluZVZhbHVlLFxuICBBbGVydFNlcnZpY2Vcbn0gZnJvbSAnbmd4LXRlY2hsaWZ5LWNvcmUnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95IH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IENoZWNrc2hlZXRTdWJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NoZWNrc2hlZXQtc3VibWlzc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jaGVja3NoZWV0LXN1Ym1pc3Npb24tbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja3NoZWV0LXN1Ym1pc3Npb24tbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrc2hlZXQtc3VibWlzc2lvbi1saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tzaGVldFN1Ym1pc3Npb25MaXN0Q29tcG9uZW50XG4gIGV4dGVuZHMgVGVjaGxpZnlMaXN0aW5nQ29udHJvbGxlckludGVyZmFjZVxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICBkaXNwbGF5ZWRDb2x1bW5zOiBhbnlbXSA9IFtcbiAgICAnaW5kZXgnLFxuICAgICdkYXRlJyxcbiAgICAnZm9ybWF0LnRpdGxlJyxcbiAgICAnY3JlYXRvci5uYW1lJyxcbiAgICAncmV2aWV3ZXIubmFtZScsXG4gICAgJ3N0YXR1cy50aXRsZScsXG4gICAgJ2FjdGlvbnMnXG4gIF07XG4gIHdpdGg6IHN0cmluZyA9ICdmb3JtYXQsY3JlYXRvcixyZXZpZXdlcixzdGF0dXMnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY2hlY2tzaGVldFN1Ym1pc3Npb25TZXJ2aWNlOiBDaGVja3NoZWV0U3VibWlzc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZXF1ZXN0SGVscGVyU2VydmljZTogUmVxdWVzdEhlbHBlclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB0aGlzLmZpbHRlckZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoODAwKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWxvYWQoKSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZvcm0oKSB7XG4gICAgdGhpcy5maWx0ZXJGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBkdXJhdGlvbjogW1RpbWVsaW5lLkFMTF0sXG4gICAgICBkYXRlX2Zyb206IFsnJ10sXG4gICAgICBkYXRlX3RvOiBbJyddLFxuICAgICAgc3RhdHVzX2lkczogWycnXSxcbiAgICAgIGNyZWF0b3JfaWRzOiBbJyddLFxuICAgICAgcmV2aWV3ZXJfaWRzOiBbJyddLFxuICAgICAgZm9ybWF0X2lkczogWycnXSxcbiAgICAgIHNvcnRfYnk6IFsnY3JlYXRlZF9hdHxERVNDJ10sXG4gICAgICB3aXRoOiBbdGhpcy53aXRoXVxuICAgIH0pO1xuICB9XG5cbiAgbG9hZERhdGEoKSB7XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xuICAgICAgLi4udGhpcy5yZXF1ZXN0SGVscGVyU2VydmljZS5jb252ZXJ0VG9Gb3JtRGF0YSh0aGlzLmZpbHRlckZvcm0udmFsdWUpLFxuICAgICAgcGVyUGFnZTogdGhpcy5wZXJQYWdlLFxuICAgICAgcGFnZTogdGhpcy5wYWdlXG4gICAgfTtcbiAgICB0aGlzLmNoZWNrc2hlZXRTdWJtaXNzaW9uU2VydmljZS5pbmRleChwYXJhbXMpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm1vZGVscyA9IHRoaXMubW9kZWxzLmNvbmNhdChyZXNwb25zZT8uZGF0YSk7XG4gICAgICAgIHRoaXMubGFzdFBhZ2UgPSByZXNwb25zZT8ubGFzdF9wYWdlO1xuICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiAodGhpcy5pc1dvcmtpbmcgPSBmYWxzZSlcbiAgICB9KTtcbiAgfVxuXG4gIG9uRHVyYXRpb25DaGFuZ2UodGltZWxpbmVWYWx1ZTogVGltZWxpbmVWYWx1ZSkge1xuICAgIGxldCB7IGRhdGVfdG8sIGRhdGVfZnJvbSB9ID0gdGltZWxpbmVWYWx1ZTtcbiAgICB0aGlzLmZpbHRlckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBkYXRlX2Zyb206IGRhdGVfZnJvbSA/IG1vbWVudChkYXRlX2Zyb20pLmZvcm1hdCgnWVlZWS1NTS1ERCcpIDogJycsXG4gICAgICBkYXRlX3RvOiBkYXRlX3RvID8gbW9tZW50KGRhdGVfdG8pLmZvcm1hdCgnWVlZWS1NTS1ERCcpIDogJydcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgY2hlY2tzaGVldCBzdWJtaXNzaW9uIGRlbGV0ZSBldmVudC5cbiAgICovXG4gIG9uRGVsZXRlZCgpIHtcbiAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydChcbiAgICAgICdDaGVja3NoZWV0IHN1Ym1pc3Npb24gZGVsZXRlZCBzdWNjZXNzZnVsbHkhJyxcbiAgICAgICdzdWNjZXNzJ1xuICAgICk7XG4gICAgdGhpcy5yZWxvYWQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICA8aDMgY2xhc3M9XCJtLTAgZm9udC13ZWlnaHQtYm9sZFwiPkNoZWNrc2hlZXQgU3VibWlzc2lvbnM8L2gzPlxuICA8YXBwLWNoZWNrc2hlZXQtc3VibWlzc2lvbi1mb3JtLWJ1dHRvbj48L2FwcC1jaGVja3NoZWV0LXN1Ym1pc3Npb24tZm9ybS1idXR0b24+XG48L2Rpdj5cblxuPG1hdC1jYXJkIGNsYXNzPVwibXQtM1wiPlxuICA8bWF0LWNhcmQtY29udGVudD5cbiAgICA8Zm9ybSBmeExheW91dD1cInJvdyB3cmFwXCIgZnhMYXlvdXRHYXA9XCIxcmVtXCIgW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtXCI+XG4gICAgICA8YXBwLXRpbWVsaW5lLWZpbHRlclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkdXJhdGlvblwiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25EdXJhdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW2RhdGVGcm9tXT1cImZpbHRlckZvcm0udmFsdWU/LmRhdGVfZnJvbVwiXG4gICAgICAgIFtkYXRlVG9dPVwiZmlsdGVyRm9ybS52YWx1ZT8uZGF0ZV90b1wiXG4gICAgICAgIGFwcGVhcmFuY2U9XCJmaWxsXCJcbiAgICAgID48L2FwcC10aW1lbGluZS1maWx0ZXI+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1sYWJlbD5TdGF0dXM8L21hdC1sYWJlbD5cbiAgICAgICAgPGFwcC1zZWFyY2hhYmxlLXNlbGVjdG9yXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RhdHVzX2lkc1wiXG4gICAgICAgICAgYXBpVXJsPVwiYXBpL2NoZWNrc2hlZXQtc3VibWlzc2lvbi1zdGF0dXNlc1wiXG4gICAgICAgICAgW2VuYWJsZVNlYXJjaF09XCJmYWxzZVwiXG4gICAgICAgICAgW211bHRpcGxlXT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXBwLXNlYXJjaGFibGUtc2VsZWN0b3I+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8bWF0LWZvcm0tZmllbGQgKm5neFBlcm1pc3Npb25zT25seT1cIlsndXNlcl9yZWFkJ11cIj5cbiAgICAgICAgPG1hdC1sYWJlbD5DcmVhdG9yPC9tYXQtbGFiZWw+XG4gICAgICAgIDxhcHAtc2VhcmNoYWJsZS1zZWxlY3RvclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNyZWF0b3JfaWRzXCJcbiAgICAgICAgICBhcGlVcmw9XCJhcGkvdXNlcnNcIlxuICAgICAgICAgIFtlbmFibGVTZWFyY2hdPVwidHJ1ZVwiXG4gICAgICAgICAgdGl0bGVGaWVsZD1cIm5hbWVcIlxuICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC1zZWFyY2hhYmxlLXNlbGVjdG9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkICpuZ3hQZXJtaXNzaW9uc09ubHk9XCJbJ3VzZXJfcmVhZCddXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+UmV2aWV3ZXI8L21hdC1sYWJlbD5cbiAgICAgICAgPGFwcC1zZWFyY2hhYmxlLXNlbGVjdG9yXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmV2aWV3ZXJfaWRzXCJcbiAgICAgICAgICBhcGlVcmw9XCJhcGkvdXNlcnNcIlxuICAgICAgICAgIFtlbmFibGVTZWFyY2hdPVwidHJ1ZVwiXG4gICAgICAgICAgdGl0bGVGaWVsZD1cIm5hbWVcIlxuICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC1zZWFyY2hhYmxlLXNlbGVjdG9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWxhYmVsPkNoZWNrc2hlZXQgRm9ybWF0PC9tYXQtbGFiZWw+XG4gICAgICAgIDxhcHAtc2VhcmNoYWJsZS1zZWxlY3RvclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZvcm1hdF9pZHNcIlxuICAgICAgICAgIGFwaVVybD1cImFwaS9jaGVja3NoZWV0LWZvcm1hdHM/aXNfcHVibGlzaGVkPTFcIlxuICAgICAgICAgIFtlbmFibGVTZWFyY2hdPVwidHJ1ZVwiXG4gICAgICAgICAgW211bHRpcGxlXT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXBwLXNlYXJjaGFibGUtc2VsZWN0b3I+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZm9ybT5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cblxuPG1hdC1jYXJkXG4gIGNsYXNzPVwicC0wIG10LTNcIlxuICBpbmZpbml0ZVNjcm9sbFxuICBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIyXCJcbiAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIlxuICAoc2Nyb2xsZWQpPVwib25TY3JvbGwoKVwiXG4gIFtmcm9tUm9vdF09XCJ0cnVlXCJcbj5cbiAgPHRhYmxlXG4gICAgbWF0LXRhYmxlXG4gICAgW2RhdGFTb3VyY2VdPVwibW9kZWxzXCJcbiAgICBjbGFzcz1cInctMTAwXCJcbiAgICBtdWx0aVRlbXBsYXRlRGF0YVJvd3NcbiAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiQ2hlY2tzaGVldCBTdWJtaXNzaW9uc1wiXG4gID5cbiAgICA8IS0tIEluZGV4IENvbHVtbiAtLT5cbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiM8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7IGxldCBpID0gZGF0YUluZGV4XCI+XG4gICAgICAgIHt7IGkgKyAxIH19XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBDaGVja3NoZWV0IEZvcm1hdCBDb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJmb3JtYXQudGl0bGVcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+Q2hlY2tzaGVldCBGb3JtYXQ8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAge3sgZWxlbWVudD8uZm9ybWF0Py50aXRsZSB9fVxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gQ3JlYXRvciBDb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjcmVhdG9yLm5hbWVcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+Q3JlYXRvcjwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICB7eyBlbGVtZW50Py5jcmVhdG9yPy5uYW1lIH19XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBSZXZpZXdlciBDb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJyZXZpZXdlci5uYW1lXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlJldmlld2VyPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgIHt7IGVsZW1lbnQ/LnJldmlld2VyPy5uYW1lIH19XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBTdGF0dXMgQ29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3RhdHVzLnRpdGxlXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlN0YXR1czwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICB7eyBlbGVtZW50Py5zdGF0dXM/LnRpdGxlIH19XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBEYXRlIENvbHVtbiAtLT5cbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRhdGVcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+RGF0ZTwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICB7eyBlbGVtZW50LmRhdGUgfCBkYXRlIH19XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBBY3Rpb25zIENvbHVtbiAtLT5cbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+QWN0aW9uczwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDtcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxuICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycuLi9jaGVja3NoZWV0LXN1Ym1pc3Npb25zLXZpZXcnLCBlbGVtZW50Py5pZF1cIlxuICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgdmlzaWJpbGl0eVxuICAgICAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICpuZ0lmPVwiZWxlbWVudC5zdGF0dXNfaWQgPT09IDFcIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW2VsZW1lbnQ/LmlkLCAndmlldyddXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIGVkaXRcbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIDxhcHAtY2hlY2tzaGVldC1zdWJtaXNzaW9uLXJldmlldy1idXR0b25cbiAgICAgICAgICAgIFtzdWJtaXNzaW9uXT1cImVsZW1lbnRcIlxuICAgICAgICAgICAgW3JlcXVlc3RQYXJhbXNdPVwieyB3aXRoOiB0aGlzLndpdGggfVwiXG4gICAgICAgICAgICAocmV2aWV3ZWQpPVwicmVsb2FkKClcIlxuICAgICAgICAgID48L2FwcC1jaGVja3NoZWV0LXN1Ym1pc3Npb24tcmV2aWV3LWJ1dHRvbj5cbiAgICAgICAgICA8YXBwLWNoZWNrc2hlZXQtc3VibWlzc2lvbi1kZWxldGUtYnV0dG9uXG4gICAgICAgICAgICBbY2hlY2tzaGVldFN1Ym1pc3Npb25dPVwiZWxlbWVudFwiXG4gICAgICAgICAgICAoZGVsZXRlZCk9XCJvbkRlbGV0ZWQoKVwiXG4gICAgICAgICAgPjwvYXBwLWNoZWNrc2hlZXQtc3VibWlzc2lvbi1kZWxldGUtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gIDwvdGFibGU+XG4gIDxtYXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwiaXNXb3JraW5nXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG48L21hdC1jYXJkPlxuIl19
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/material/dialog";
|
|
4
|
+
import * as i2 from "ngx-techlify-core";
|
|
5
|
+
import * as i3 from "../checksheet-submission.service";
|
|
6
|
+
import * as i4 from "@angular/common";
|
|
7
|
+
import * as i5 from "@angular/material/button";
|
|
8
|
+
import * as i6 from "@angular/material/icon";
|
|
9
|
+
import * as i7 from "@angular/material/tooltip";
|
|
10
|
+
export class ChecksheetSubmissionReviewButtonComponent {
|
|
11
|
+
matDialog;
|
|
12
|
+
credentialsService;
|
|
13
|
+
checksheetSubmissionService;
|
|
14
|
+
alertService;
|
|
15
|
+
submission;
|
|
16
|
+
viewType = 'icon';
|
|
17
|
+
requestParams;
|
|
18
|
+
reviewed = new EventEmitter();
|
|
19
|
+
user;
|
|
20
|
+
isWorking = false;
|
|
21
|
+
constructor(matDialog, credentialsService, checksheetSubmissionService, alertService) {
|
|
22
|
+
this.matDialog = matDialog;
|
|
23
|
+
this.credentialsService = credentialsService;
|
|
24
|
+
this.checksheetSubmissionService = checksheetSubmissionService;
|
|
25
|
+
this.alertService = alertService;
|
|
26
|
+
this.user = this.credentialsService.credentials?.user;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Show the review dialog.
|
|
30
|
+
*
|
|
31
|
+
* @param templateRef
|
|
32
|
+
*/
|
|
33
|
+
openDialog(templateRef) {
|
|
34
|
+
this.matDialog.open(templateRef, { width: '400px' });
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Review checksheet.
|
|
38
|
+
*/
|
|
39
|
+
reviewChecksheet() {
|
|
40
|
+
this.isWorking = true;
|
|
41
|
+
this.checksheetSubmissionService
|
|
42
|
+
.review(this.submission?.id, this.requestParams)
|
|
43
|
+
.subscribe({
|
|
44
|
+
next: (response) => {
|
|
45
|
+
this.matDialog.closeAll();
|
|
46
|
+
this.isWorking = false;
|
|
47
|
+
this.reviewed.next(response?.item);
|
|
48
|
+
this.alertService.addAlert('The checksheet submission marked as reviewed.', 'success');
|
|
49
|
+
},
|
|
50
|
+
error: () => (this.isWorking = false)
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChecksheetSubmissionReviewButtonComponent, deps: [{ token: i1.MatDialog }, { token: i2.CredentialsService }, { token: i3.ChecksheetSubmissionService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
54
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ChecksheetSubmissionReviewButtonComponent, selector: "app-checksheet-submission-review-button", inputs: { submission: "submission", viewType: "viewType", requestParams: "requestParams" }, outputs: { reviewed: "reviewed" }, ngImport: i0, template: "<ng-container\n *ngIf=\"submission?.status_id === 2 && submission?.creator_id !== user?.id\"\n>\n <button\n *ngIf=\"viewType === 'button'\"\n mat-raised-button\n color=\"primary\"\n type=\"button\"\n (click)=\"openDialog(reviewTemplate)\"\n >\n Review\n </button>\n\n <mat-icon\n *ngIf=\"viewType === 'icon'\"\n class=\"cursor-pointer\"\n matTooltip=\"Review\"\n (click)=\"openDialog(reviewTemplate)\"\n >\n rate_review\n </mat-icon>\n</ng-container>\n\n<ng-template #reviewTemplate>\n <h3 mat-dialog-title>Review Checksheet Submission</h3>\n <div mat-dialog-content>\n <p>Are you sure you want to mark the checksheet submission as Reviewed?</p>\n </div>\n <div mat-dialog-actions class=\"d-flex justify-content-end align-items-center\">\n <button [disabled]=\"isWorking\" mat-flat-button mat-dialog-close>\n Cancel\n </button>\n <button\n [disabled]=\"isWorking\"\n mat-raised-button\n color=\"primary\"\n (click)=\"reviewChecksheet()\"\n >\n Review\n </button>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] });
|
|
55
|
+
}
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChecksheetSubmissionReviewButtonComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{ selector: 'app-checksheet-submission-review-button', template: "<ng-container\n *ngIf=\"submission?.status_id === 2 && submission?.creator_id !== user?.id\"\n>\n <button\n *ngIf=\"viewType === 'button'\"\n mat-raised-button\n color=\"primary\"\n type=\"button\"\n (click)=\"openDialog(reviewTemplate)\"\n >\n Review\n </button>\n\n <mat-icon\n *ngIf=\"viewType === 'icon'\"\n class=\"cursor-pointer\"\n matTooltip=\"Review\"\n (click)=\"openDialog(reviewTemplate)\"\n >\n rate_review\n </mat-icon>\n</ng-container>\n\n<ng-template #reviewTemplate>\n <h3 mat-dialog-title>Review Checksheet Submission</h3>\n <div mat-dialog-content>\n <p>Are you sure you want to mark the checksheet submission as Reviewed?</p>\n </div>\n <div mat-dialog-actions class=\"d-flex justify-content-end align-items-center\">\n <button [disabled]=\"isWorking\" mat-flat-button mat-dialog-close>\n Cancel\n </button>\n <button\n [disabled]=\"isWorking\"\n mat-raised-button\n color=\"primary\"\n (click)=\"reviewChecksheet()\"\n >\n Review\n </button>\n </div>\n</ng-template>\n" }]
|
|
59
|
+
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.CredentialsService }, { type: i3.ChecksheetSubmissionService }, { type: i2.AlertService }], propDecorators: { submission: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], viewType: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], requestParams: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], reviewed: [{
|
|
66
|
+
type: Output
|
|
67
|
+
}] } });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tzaGVldC1zdWJtaXNzaW9uLXJldmlldy1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNoZWNrc2hlZXQvc3JjL2xpYi9jaGVja3NoZWV0L2NoZWNrc2hlZXQtc3VibWlzc2lvbi1yZXZpZXctYnV0dG9uL2NoZWNrc2hlZXQtc3VibWlzc2lvbi1yZXZpZXctYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jaGVja3NoZWV0L3NyYy9saWIvY2hlY2tzaGVldC9jaGVja3NoZWV0LXN1Ym1pc3Npb24tcmV2aWV3LWJ1dHRvbi9jaGVja3NoZWV0LXN1Ym1pc3Npb24tcmV2aWV3LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFVdkIsTUFBTSxPQUFPLHlDQUF5QztJQVMxQztJQUNBO0lBQ0E7SUFDQTtJQVhELFVBQVUsQ0FBTTtJQUNoQixRQUFRLEdBQXNCLE1BQU0sQ0FBQztJQUNyQyxhQUFhLENBQW9CO0lBQ2hDLFFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUNoRSxJQUFJLENBQU87SUFDWCxTQUFTLEdBQVksS0FBSyxDQUFDO0lBRTNCLFlBQ1UsU0FBb0IsRUFDcEIsa0JBQXNDLEVBQ3RDLDJCQUF3RCxFQUN4RCxZQUEwQjtRQUgxQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUN4RCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUVsQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDO0lBQ3hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLFdBQTZCO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQjtRQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQywyQkFBMkI7YUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUM7YUFDL0MsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsUUFBYSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUN4QiwrQ0FBK0MsRUFDL0MsU0FBUyxDQUNWLENBQUM7WUFDSixDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDdEMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt3R0E3Q1UseUNBQXlDOzRGQUF6Qyx5Q0FBeUMsOE1DaEJ0RCw0akNBMENBOzs0RkQxQmEseUNBQXlDO2tCQUxyRCxTQUFTOytCQUNFLHlDQUF5QztvTEFLMUMsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgQ3JlZGVudGlhbHNTZXJ2aWNlLCBVc2VyIH0gZnJvbSAnbmd4LXRlY2hsaWZ5LWNvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IENoZWNrc2hlZXRTdWJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NoZWNrc2hlZXQtc3VibWlzc2lvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNoZWNrc2hlZXQtc3VibWlzc2lvbi1yZXZpZXctYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrc2hlZXQtc3VibWlzc2lvbi1yZXZpZXctYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tzaGVldC1zdWJtaXNzaW9uLXJldmlldy1idXR0b24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja3NoZWV0U3VibWlzc2lvblJldmlld0J1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHN1Ym1pc3Npb246IGFueTtcbiAgQElucHV0KCkgdmlld1R5cGU6ICdpY29uJyB8ICdidXR0b24nID0gJ2ljb24nO1xuICBASW5wdXQoKSByZXF1ZXN0UGFyYW1zITogeyB3aXRoOiBzdHJpbmcgfTtcbiAgQE91dHB1dCgpIHJldmlld2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICB1c2VyOiBVc2VyO1xuICBpc1dvcmtpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1hdERpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgY3JlZGVudGlhbHNTZXJ2aWNlOiBDcmVkZW50aWFsc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGVja3NoZWV0U3VibWlzc2lvblNlcnZpY2U6IENoZWNrc2hlZXRTdWJtaXNzaW9uU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudXNlciA9IHRoaXMuY3JlZGVudGlhbHNTZXJ2aWNlLmNyZWRlbnRpYWxzPy51c2VyO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgdGhlIHJldmlldyBkaWFsb2cuXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZVJlZlxuICAgKi9cbiAgb3BlbkRpYWxvZyh0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMubWF0RGlhbG9nLm9wZW4odGVtcGxhdGVSZWYsIHsgd2lkdGg6ICc0MDBweCcgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV2aWV3IGNoZWNrc2hlZXQuXG4gICAqL1xuICByZXZpZXdDaGVja3NoZWV0KCkge1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLmNoZWNrc2hlZXRTdWJtaXNzaW9uU2VydmljZVxuICAgICAgLnJldmlldyh0aGlzLnN1Ym1pc3Npb24/LmlkLCB0aGlzLnJlcXVlc3RQYXJhbXMpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLm1hdERpYWxvZy5jbG9zZUFsbCgpO1xuICAgICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5yZXZpZXdlZC5uZXh0KHJlc3BvbnNlPy5pdGVtKTtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydChcbiAgICAgICAgICAgICdUaGUgY2hlY2tzaGVldCBzdWJtaXNzaW9uIG1hcmtlZCBhcyByZXZpZXdlZC4nLFxuICAgICAgICAgICAgJ3N1Y2Nlc3MnXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+ICh0aGlzLmlzV29ya2luZyA9IGZhbHNlKVxuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJzdWJtaXNzaW9uPy5zdGF0dXNfaWQgPT09IDIgJiYgc3VibWlzc2lvbj8uY3JlYXRvcl9pZCAhPT0gdXNlcj8uaWRcIlxuPlxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJ2aWV3VHlwZSA9PT0gJ2J1dHRvbidcIlxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwib3BlbkRpYWxvZyhyZXZpZXdUZW1wbGF0ZSlcIlxuICA+XG4gICAgUmV2aWV3XG4gIDwvYnV0dG9uPlxuXG4gIDxtYXQtaWNvblxuICAgICpuZ0lmPVwidmlld1R5cGUgPT09ICdpY29uJ1wiXG4gICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXG4gICAgbWF0VG9vbHRpcD1cIlJldmlld1wiXG4gICAgKGNsaWNrKT1cIm9wZW5EaWFsb2cocmV2aWV3VGVtcGxhdGUpXCJcbiAgPlxuICAgIHJhdGVfcmV2aWV3XG4gIDwvbWF0LWljb24+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNyZXZpZXdUZW1wbGF0ZT5cbiAgPGgzIG1hdC1kaWFsb2ctdGl0bGU+UmV2aWV3IENoZWNrc2hlZXQgU3VibWlzc2lvbjwvaDM+XG4gIDxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxwPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBtYXJrIHRoZSBjaGVja3NoZWV0IHN1Ym1pc3Npb24gYXMgUmV2aWV3ZWQ/PC9wPlxuICA8L2Rpdj5cbiAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJpc1dvcmtpbmdcIiBtYXQtZmxhdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZT5cbiAgICAgIENhbmNlbFxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIFtkaXNhYmxlZF09XCJpc1dvcmtpbmdcIlxuICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAoY2xpY2spPVwicmV2aWV3Q2hlY2tzaGVldCgpXCJcbiAgICA+XG4gICAgICBSZXZpZXdcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|