ngx-techlify-checksheet 18.0.0 → 18.2.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/checksheet/checksheet-form/checksheet-form.component.mjs +88 -116
- package/esm2022/lib/checksheet/checksheet-form-button/checksheet-form-button.component.mjs +10 -12
- package/esm2022/lib/checksheet/checksheet-format/checksheet-format-copy-button/checksheet-format-copy-button.component.mjs +56 -0
- package/esm2022/lib/checksheet/checksheet-format/checksheet-format-delete-button/checksheet-format-delete-button.component.mjs +54 -0
- package/esm2022/lib/checksheet/checksheet-format/checksheet-format-publish-button/checksheet-format-publish-button.component.mjs +68 -0
- package/esm2022/lib/checksheet/checksheet-format/checksheet-format-unpublish-button/checksheet-format-unpublish-button.component.mjs +57 -0
- package/esm2022/lib/checksheet/checksheet-format/checksheet-format-view/checksheet-format-view.component.mjs +140 -0
- package/esm2022/lib/checksheet/checksheet-format-form/checksheet-format-form.component.mjs +139 -0
- package/esm2022/lib/checksheet/checksheet-format-list/checksheet-format-list.component.mjs +9 -67
- package/esm2022/lib/checksheet/checksheet-list/checksheet-list.component.mjs +28 -11
- package/esm2022/lib/checksheet/checksheet-list-widget/checksheet-list-widget.component.mjs +59 -0
- package/esm2022/lib/checksheet/checksheet-node-view/checksheet-node-view.component.mjs +24 -24
- package/esm2022/lib/checksheet/checksheet-question/checksheet-question.component.mjs +12 -13
- package/esm2022/lib/checksheet/checksheet-question-list/checksheet-question-list.component.mjs +7 -9
- package/esm2022/lib/checksheet/checksheet-report/checksheet-report.component.mjs +3 -3
- package/esm2022/lib/checksheet/checksheet-routing.module.mjs +6 -6
- package/esm2022/lib/checksheet/checksheet-submission-file/checksheet-submission-files/checksheet-submission-files.component.mjs +83 -17
- package/esm2022/lib/checksheet/checksheet-submission-list/checksheet-submission-list.component.mjs +5 -5
- package/esm2022/lib/checksheet/checksheet-submission-view/checksheet-submission-view.component.mjs +4 -4
- package/esm2022/lib/checksheet/checksheet.module.mjs +42 -20
- package/esm2022/public-api.mjs +2 -2
- package/fesm2022/ngx-techlify-checksheet.mjs +594 -378
- package/fesm2022/ngx-techlify-checksheet.mjs.map +1 -1
- package/lib/checksheet/checksheet-form/checksheet-form.component.d.ts +15 -34
- package/lib/checksheet/checksheet-form-button/checksheet-form-button.component.d.ts +3 -4
- package/lib/checksheet/checksheet-format/checksheet-format-copy-button/checksheet-format-copy-button.component.d.ts +16 -0
- package/lib/checksheet/checksheet-format/checksheet-format-delete-button/checksheet-format-delete-button.component.d.ts +16 -0
- package/lib/checksheet/checksheet-format/checksheet-format-publish-button/checksheet-format-publish-button.component.d.ts +18 -0
- package/lib/checksheet/checksheet-format/checksheet-format-unpublish-button/checksheet-format-unpublish-button.component.d.ts +16 -0
- package/lib/checksheet/{checksheet-view/checksheet-view.component.d.ts → checksheet-format/checksheet-format-view/checksheet-format-view.component.d.ts} +4 -4
- package/lib/checksheet/checksheet-format-form/checksheet-format-form.component.d.ts +39 -0
- package/lib/checksheet/checksheet-format-list/checksheet-format-list.component.d.ts +0 -3
- package/lib/checksheet/checksheet-list/checksheet-list.component.d.ts +5 -3
- package/lib/checksheet/checksheet-list-widget/checksheet-list-widget.component.d.ts +17 -0
- package/lib/checksheet/checksheet-node-view/checksheet-node-view.component.d.ts +2 -4
- package/lib/checksheet/checksheet-submission-file/checksheet-submission-files/checksheet-submission-files.component.d.ts +14 -4
- package/lib/checksheet/checksheet.module.d.ts +12 -7
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/esm2022/lib/checksheet/checksheet-submission-form/checksheet-submission-form.component.mjs +0 -131
- package/esm2022/lib/checksheet/checksheet-submission-form-button/checksheet-submission-form-button.component.mjs +0 -58
- package/esm2022/lib/checksheet/checksheet-view/checksheet-view.component.mjs +0 -140
- package/lib/checksheet/checksheet-submission-form/checksheet-submission-form.component.d.ts +0 -27
- package/lib/checksheet/checksheet-submission-form-button/checksheet-submission-form-button.component.d.ts +0 -29
|
@@ -1,45 +1,26 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import { FormValidatorService } from 'ngx-techlify-core';
|
|
4
|
-
import {
|
|
5
|
-
import { AlertService, ErrorHandlerService, DataManager } from 'ngx-techlify-core';
|
|
6
|
-
import { ActivatedRoute } from '@angular/router';
|
|
7
|
-
import { Location } from '@angular/common';
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { UntypedFormBuilder } from '@angular/forms';
|
|
3
|
+
import { FormValidatorService, TechlifyFormComponentInterface, AlertService } from 'ngx-techlify-core';
|
|
4
|
+
import { ChecksheetService } from '../checksheet.service';
|
|
8
5
|
import { MatDialog } from '@angular/material/dialog';
|
|
9
|
-
import { ChecksheetFormatService } from '../checksheet-format.service';
|
|
10
6
|
import * as i0 from "@angular/core";
|
|
11
|
-
export declare class ChecksheetFormComponent implements OnInit {
|
|
12
|
-
private formValidatorService;
|
|
7
|
+
export declare class ChecksheetFormComponent extends TechlifyFormComponentInterface implements OnInit {
|
|
13
8
|
private fb;
|
|
14
|
-
private
|
|
9
|
+
private service;
|
|
15
10
|
private alertService;
|
|
16
|
-
location: Location;
|
|
17
|
-
private errorHandler;
|
|
18
|
-
private dataManager;
|
|
19
11
|
private dialog;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
submittableType: string;
|
|
13
|
+
submittableId: number;
|
|
14
|
+
cancelled: EventEmitter<any>;
|
|
15
|
+
saved: EventEmitter<any>;
|
|
23
16
|
updateMode: boolean;
|
|
24
|
-
|
|
17
|
+
checksheetSubmission: any;
|
|
25
18
|
isSaving: boolean;
|
|
26
|
-
|
|
27
|
-
disableInput: boolean;
|
|
28
|
-
isLoading: boolean;
|
|
29
|
-
constructor(formValidatorService: FormValidatorService, fb: UntypedFormBuilder, spinnerService: NgxSpinnerService, alertService: AlertService, location: Location, errorHandler: ErrorHandlerService, dataManager: DataManager, dialog: MatDialog, route: ActivatedRoute, checksheetFormatService: ChecksheetFormatService);
|
|
30
|
-
ngOnInit(): void;
|
|
31
|
-
/**
|
|
32
|
-
* Create a check-sheet form.
|
|
33
|
-
* @private
|
|
34
|
-
*/
|
|
19
|
+
constructor(formValidatorService: FormValidatorService, fb: UntypedFormBuilder, service: ChecksheetService, alertService: AlertService, dialog: MatDialog);
|
|
35
20
|
private createForm;
|
|
36
|
-
|
|
37
|
-
isFieldValid(field: string): any;
|
|
38
|
-
/**Method to find error in form fields*/
|
|
39
|
-
getErrorMessage(field: string): any;
|
|
21
|
+
ngOnInit(): void;
|
|
40
22
|
submit(): void;
|
|
41
|
-
|
|
42
|
-
private loadChecksheetFormat;
|
|
23
|
+
submitChecksheet(): void;
|
|
43
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<ChecksheetFormComponent, never>;
|
|
44
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ChecksheetFormComponent, "app-checksheet-form", never, { "
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChecksheetFormComponent, "app-checksheet-form", never, { "submittableType": { "alias": "submittableType"; "required": false; }; "submittableId": { "alias": "submittableId"; "required": false; }; "checksheetSubmission": { "alias": "checksheetSubmission"; "required": false; }; }, { "cancelled": "cancelled"; "saved": "saved"; }, never, never, false, never>;
|
|
45
26
|
}
|
|
@@ -2,13 +2,12 @@ import { EventEmitter, TemplateRef } from '@angular/core';
|
|
|
2
2
|
import { MatDialog } from '@angular/material/dialog';
|
|
3
3
|
import { AlertService } from 'ngx-techlify-core';
|
|
4
4
|
import { Router } from '@angular/router';
|
|
5
|
-
import { ChecksheetSubmittableType } from '../checksheet-submittable.type';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
export declare class ChecksheetFormButtonComponent {
|
|
8
7
|
matDialog: MatDialog;
|
|
9
8
|
private alertService;
|
|
10
9
|
private router;
|
|
11
|
-
submittableType:
|
|
10
|
+
submittableType: string;
|
|
12
11
|
submittableId: number;
|
|
13
12
|
saved: EventEmitter<any>;
|
|
14
13
|
constructor(matDialog: MatDialog, alertService: AlertService, router: Router);
|
|
@@ -21,9 +20,9 @@ export declare class ChecksheetFormButtonComponent {
|
|
|
21
20
|
/**
|
|
22
21
|
* Handle Checksheet save event.
|
|
23
22
|
*
|
|
24
|
-
* @param
|
|
23
|
+
* @param checksheet
|
|
25
24
|
*/
|
|
26
|
-
onSaved(
|
|
25
|
+
onSaved(checksheet: any): void;
|
|
27
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<ChecksheetFormButtonComponent, never>;
|
|
28
27
|
static ɵcmp: i0.ɵɵComponentDeclaration<ChecksheetFormButtonComponent, "app-checksheet-form-button", never, { "submittableType": { "alias": "submittableType"; "required": false; }; "submittableId": { "alias": "submittableId"; "required": false; }; }, { "saved": "saved"; }, never, never, false, never>;
|
|
29
28
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { AlertService } from 'ngx-techlify-core';
|
|
3
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
4
|
+
import { ChecksheetFormatService } from '../../checksheet-format.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class ChecksheetFormatCopyButtonComponent {
|
|
7
|
+
private dialog;
|
|
8
|
+
private alertService;
|
|
9
|
+
private service;
|
|
10
|
+
checksheetFormat: any;
|
|
11
|
+
changed: EventEmitter<any>;
|
|
12
|
+
constructor(dialog: MatDialog, alertService: AlertService, service: ChecksheetFormatService);
|
|
13
|
+
copyChecksheet(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChecksheetFormatCopyButtonComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChecksheetFormatCopyButtonComponent, "app-checksheet-format-copy-button", never, { "checksheetFormat": { "alias": "checksheetFormat"; "required": false; }; }, { "changed": "changed"; }, never, never, true, never>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
+
import { AlertService } from 'ngx-techlify-core';
|
|
4
|
+
import { ChecksheetFormatService } from '../../checksheet-format.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class ChecksheetFormatDeleteButtonComponent {
|
|
7
|
+
private dialog;
|
|
8
|
+
private alertService;
|
|
9
|
+
private service;
|
|
10
|
+
checksheetFormat: any;
|
|
11
|
+
deleted: EventEmitter<any>;
|
|
12
|
+
constructor(dialog: MatDialog, alertService: AlertService, service: ChecksheetFormatService);
|
|
13
|
+
delete(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChecksheetFormatDeleteButtonComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChecksheetFormatDeleteButtonComponent, "app-checksheet-format-delete-button", never, { "checksheetFormat": { "alias": "checksheetFormat"; "required": false; }; }, { "deleted": "deleted"; }, never, never, true, never>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
+
import { AlertService } from 'ngx-techlify-core';
|
|
4
|
+
import { ChecksheetFormatService } from '../../checksheet-format.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class ChecksheetFormatPublishButtonComponent {
|
|
7
|
+
private dialog;
|
|
8
|
+
private alertService;
|
|
9
|
+
private service;
|
|
10
|
+
checksheetFormat: any;
|
|
11
|
+
changed: EventEmitter<any>;
|
|
12
|
+
viewMode: 'button' | 'icon';
|
|
13
|
+
isSaving: boolean;
|
|
14
|
+
constructor(dialog: MatDialog, alertService: AlertService, service: ChecksheetFormatService);
|
|
15
|
+
publishChecksheet(): void;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChecksheetFormatPublishButtonComponent, never>;
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChecksheetFormatPublishButtonComponent, "app-checksheet-format-publish-button", never, { "checksheetFormat": { "alias": "checksheetFormat"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; }, { "changed": "changed"; }, never, never, true, never>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
+
import { AlertService } from 'ngx-techlify-core';
|
|
4
|
+
import { ChecksheetFormatService } from '../../checksheet-format.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class ChecksheetFormatUnpublishButtonComponent {
|
|
7
|
+
private dialog;
|
|
8
|
+
private alertService;
|
|
9
|
+
private service;
|
|
10
|
+
checksheetFormat: any;
|
|
11
|
+
changed: EventEmitter<any>;
|
|
12
|
+
constructor(dialog: MatDialog, alertService: AlertService, service: ChecksheetFormatService);
|
|
13
|
+
unpublishChecksheet(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChecksheetFormatUnpublishButtonComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChecksheetFormatUnpublishButtonComponent, "app-checksheet-format-unpublish-button", never, { "checksheetFormat": { "alias": "checksheetFormat"; "required": false; }; }, { "changed": "changed"; }, never, never, true, never>;
|
|
16
|
+
}
|
|
@@ -5,9 +5,9 @@ import { MatDialog } from '@angular/material/dialog';
|
|
|
5
5
|
import { ActivatedRoute } from '@angular/router';
|
|
6
6
|
import { NgxSpinnerService } from 'ngx-spinner';
|
|
7
7
|
import { AlertService, DataManager, FormValidatorService, ErrorHandlerService } from 'ngx-techlify-core';
|
|
8
|
-
import { ChecksheetService } from '
|
|
8
|
+
import { ChecksheetService } from '../../checksheet.service';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
|
-
export declare class
|
|
10
|
+
export declare class ChecksheetFormatViewComponent implements OnInit {
|
|
11
11
|
private formValidatorService;
|
|
12
12
|
private fb;
|
|
13
13
|
private spinnerService;
|
|
@@ -32,6 +32,6 @@ export declare class ChecksheetViewComponent implements OnInit {
|
|
|
32
32
|
getErrorMessage(field: string): any;
|
|
33
33
|
submit(): Promise<void>;
|
|
34
34
|
onSaved(): void;
|
|
35
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
36
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
35
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChecksheetFormatViewComponent, never>;
|
|
36
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChecksheetFormatViewComponent, "app-checksheet-format-view", never, {}, {}, never, never, false, never>;
|
|
37
37
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
|
|
3
|
+
import { AlertService, FormValidatorService } from 'ngx-techlify-core';
|
|
4
|
+
import { ActivatedRoute } from '@angular/router';
|
|
5
|
+
import { Location } from '@angular/common';
|
|
6
|
+
import { ChecksheetFormatService } from '../checksheet-format.service';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare class ChecksheetFormatFormComponent implements OnInit {
|
|
9
|
+
private formValidatorService;
|
|
10
|
+
private fb;
|
|
11
|
+
private alertService;
|
|
12
|
+
location: Location;
|
|
13
|
+
private route;
|
|
14
|
+
private checksheetFormatService;
|
|
15
|
+
checksheetForm: UntypedFormGroup;
|
|
16
|
+
updateMode: boolean;
|
|
17
|
+
checksheetFormat: any;
|
|
18
|
+
isSaving: boolean;
|
|
19
|
+
id: number;
|
|
20
|
+
disableInput: boolean;
|
|
21
|
+
isLoading: boolean;
|
|
22
|
+
isShowChecksheetInfo: boolean;
|
|
23
|
+
constructor(formValidatorService: FormValidatorService, fb: UntypedFormBuilder, alertService: AlertService, location: Location, route: ActivatedRoute, checksheetFormatService: ChecksheetFormatService);
|
|
24
|
+
ngOnInit(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Create a check-sheet form.
|
|
27
|
+
* @private
|
|
28
|
+
*/
|
|
29
|
+
private createForm;
|
|
30
|
+
/**Method to evaluate form fields*/
|
|
31
|
+
isFieldValid(field: string): any;
|
|
32
|
+
/**Method to find error in form fields*/
|
|
33
|
+
getErrorMessage(field: string): any;
|
|
34
|
+
submit(): void;
|
|
35
|
+
loadChecksheetFormat(): void;
|
|
36
|
+
handleCancel(): void;
|
|
37
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChecksheetFormatFormComponent, never>;
|
|
38
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChecksheetFormatFormComponent, "app-checksheet-format-form", never, { "disableInput": { "alias": "disableInput"; "required": false; }; }, {}, never, never, false, never>;
|
|
39
|
+
}
|
|
@@ -10,9 +10,6 @@ export declare class ChecksheetFormatListComponent extends TechlifyListingContro
|
|
|
10
10
|
displayedColumns: any[];
|
|
11
11
|
constructor(dialog: MatDialog, service: ChecksheetFormatService, alertService: AlertService);
|
|
12
12
|
ngOnInit(): void;
|
|
13
|
-
deactivateChecksheet(checksheet: any): void;
|
|
14
|
-
copyChecksheet(checksheet: any): void;
|
|
15
|
-
unpublishChecksheet(checksheet: any): void;
|
|
16
13
|
loadData(): void;
|
|
17
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<ChecksheetFormatListComponent, never>;
|
|
18
15
|
static ɵcmp: i0.ɵɵComponentDeclaration<ChecksheetFormatListComponent, "app-checksheet-format-list", never, {}, {}, never, never, false, never>;
|
|
@@ -8,12 +8,14 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
export declare class ChecksheetListComponent extends TechlifyListingControllerInterface implements OnInit {
|
|
9
9
|
private alertService;
|
|
10
10
|
private fb;
|
|
11
|
-
private
|
|
11
|
+
private service;
|
|
12
12
|
private requestHelperService;
|
|
13
13
|
private activatedRoute;
|
|
14
|
+
submittableId: number;
|
|
15
|
+
submittableType: string;
|
|
14
16
|
displayedColumns: any[];
|
|
15
17
|
with: string;
|
|
16
|
-
constructor(alertService: AlertService, fb: UntypedFormBuilder,
|
|
18
|
+
constructor(alertService: AlertService, fb: UntypedFormBuilder, service: ChecksheetService, requestHelperService: RequestHelperService, activatedRoute: ActivatedRoute);
|
|
17
19
|
ngOnInit(): void;
|
|
18
20
|
private createForm;
|
|
19
21
|
loadData(): void;
|
|
@@ -27,5 +29,5 @@ export declare class ChecksheetListComponent extends TechlifyListingControllerIn
|
|
|
27
29
|
private subscribeToRouteChanges;
|
|
28
30
|
onSortChange(sort: Sort): void;
|
|
29
31
|
static ɵfac: i0.ɵɵFactoryDeclaration<ChecksheetListComponent, never>;
|
|
30
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ChecksheetListComponent, "app-checksheet-list", never, {}, {}, never, never, false, never>;
|
|
32
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChecksheetListComponent, "app-checksheet-list", never, { "submittableId": { "alias": "submittableId"; "required": false; }; "submittableType": { "alias": "submittableType"; "required": false; }; }, {}, never, never, false, never>;
|
|
31
33
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { TechlifyListingControllerInterface } from 'ngx-techlify-core';
|
|
3
|
+
import { ChecksheetService } from '../checksheet.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class ChecksheetListWidgetComponent extends TechlifyListingControllerInterface implements OnInit {
|
|
6
|
+
private service;
|
|
7
|
+
submittable: any;
|
|
8
|
+
submittableType: string;
|
|
9
|
+
title: string;
|
|
10
|
+
submittableTitleField: string;
|
|
11
|
+
showChecksheetButton: boolean;
|
|
12
|
+
constructor(service: ChecksheetService);
|
|
13
|
+
ngOnInit(): void;
|
|
14
|
+
loadData(): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChecksheetListWidgetComponent, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChecksheetListWidgetComponent, "app-checksheet-list-widget", never, { "submittable": { "alias": "submittable"; "required": false; }; "submittableType": { "alias": "submittableType"; "required": false; }; "title": { "alias": "title"; "required": false; }; "submittableTitleField": { "alias": "submittableTitleField"; "required": false; }; "showChecksheetButton": { "alias": "showChecksheetButton"; "required": false; }; }, {}, never, never, false, never>;
|
|
17
|
+
}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import { Location } from '@angular/common';
|
|
2
1
|
import { OnInit } from '@angular/core';
|
|
3
2
|
import { ActivatedRoute } from '@angular/router';
|
|
4
3
|
import { ChecksheetService } from '../checksheet.service';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
5
|
export declare class ChecksheetNodeViewComponent implements OnInit {
|
|
7
|
-
location: Location;
|
|
8
6
|
private route;
|
|
9
|
-
private
|
|
7
|
+
private service;
|
|
10
8
|
submission: any;
|
|
11
9
|
submissionId: number;
|
|
12
10
|
isLoading: boolean;
|
|
13
11
|
with: string;
|
|
14
|
-
constructor(
|
|
12
|
+
constructor(route: ActivatedRoute, service: ChecksheetService);
|
|
15
13
|
ngOnInit(): void;
|
|
16
14
|
private loadSubmission;
|
|
17
15
|
/**
|
|
@@ -1,17 +1,27 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
|
-
import { TechlifyListingControllerInterface } from 'ngx-techlify-core';
|
|
2
|
+
import { AlertService, EntityFileService, FileDropperConfig, TechlifyListingControllerInterface } from 'ngx-techlify-core';
|
|
3
3
|
import { FormBuilder } from '@angular/forms';
|
|
4
4
|
import { ChecksheetSubmissionFileService } from '../../checksheet-submission-file.service';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class ChecksheetSubmissionFilesComponent extends TechlifyListingControllerInterface implements OnInit {
|
|
7
7
|
private formBuilder;
|
|
8
|
-
private
|
|
8
|
+
private service;
|
|
9
|
+
private entityFileService;
|
|
10
|
+
private alertService;
|
|
9
11
|
submissionId: number;
|
|
10
12
|
questionId: number;
|
|
13
|
+
viewMode: 'table' | 'horizontal-timeline';
|
|
14
|
+
fileDropperHeight: string;
|
|
15
|
+
allowMultipleFiles: boolean;
|
|
11
16
|
displayedColumns: string[];
|
|
12
|
-
|
|
17
|
+
fileConfig: FileDropperConfig;
|
|
18
|
+
fileList: any[];
|
|
19
|
+
constructor(formBuilder: FormBuilder, service: ChecksheetSubmissionFileService, entityFileService: EntityFileService, alertService: AlertService);
|
|
13
20
|
ngOnInit(): void;
|
|
14
21
|
loadData(): void;
|
|
22
|
+
fileChanged(event: any): Promise<void>;
|
|
23
|
+
private uploadFiles;
|
|
24
|
+
onUploadComplete(uploadedFiles: any[]): void;
|
|
15
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<ChecksheetSubmissionFilesComponent, never>;
|
|
16
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ChecksheetSubmissionFilesComponent, "app-checksheet-submission-files", never, { "submissionId": { "alias": "submissionId"; "required": false; }; "questionId": { "alias": "questionId"; "required": false; }; }, {}, never, never, true, never>;
|
|
26
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChecksheetSubmissionFilesComponent, "app-checksheet-submission-files", never, { "submissionId": { "alias": "submissionId"; "required": false; }; "questionId": { "alias": "questionId"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "fileDropperHeight": { "alias": "fileDropperHeight"; "required": false; }; "allowMultipleFiles": { "alias": "allowMultipleFiles"; "required": false; }; }, {}, never, never, true, never>;
|
|
17
27
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import * as i1 from "./checksheet-format-list/checksheet-format-list.component";
|
|
3
|
-
import * as i2 from "./checksheet-form/checksheet-form.component";
|
|
3
|
+
import * as i2 from "./checksheet-format-form/checksheet-format-form.component";
|
|
4
4
|
import * as i3 from "./checksheet-question-form/checksheet-question-form.component";
|
|
5
5
|
import * as i4 from "./checksheet-question/checksheet-question.component";
|
|
6
6
|
import * as i5 from "./checksheet-question-list/checksheet-question-list.component";
|
|
7
7
|
import * as i6 from "./checksheet-list/checksheet-list.component";
|
|
8
|
-
import * as i7 from "./checksheet-
|
|
9
|
-
import * as i8 from "./checksheet-view/checksheet-view.component";
|
|
8
|
+
import * as i7 from "./checksheet-form/checksheet-form.component";
|
|
9
|
+
import * as i8 from "./checksheet-format/checksheet-format-view/checksheet-format-view.component";
|
|
10
10
|
import * as i9 from "./checksheet-node-view/checksheet-node-view.component";
|
|
11
11
|
import * as i10 from "./mechanical-issue-form/mechanical-issue-form.component";
|
|
12
12
|
import * as i11 from "./checksheet-report/checksheet-report.component";
|
|
@@ -14,9 +14,9 @@ import * as i12 from "./checksheet-form-button/checksheet-form-button.component"
|
|
|
14
14
|
import * as i13 from "./checksheet-submission-delete-button/checksheet-submission-delete-button.component";
|
|
15
15
|
import * as i14 from "./checksheet-review-button/checksheet-review-button.component";
|
|
16
16
|
import * as i15 from "./checksheet-submission-view/checksheet-submission-view.component";
|
|
17
|
-
import * as i16 from "./checksheet-submission-
|
|
18
|
-
import * as i17 from "./checksheet-submission-
|
|
19
|
-
import * as i18 from "./checksheet-
|
|
17
|
+
import * as i16 from "./checksheet-submission-list/checksheet-submission-list.component";
|
|
18
|
+
import * as i17 from "./checksheet-submission-review-button/checksheet-submission-review-button.component";
|
|
19
|
+
import * as i18 from "./checksheet-list-widget/checksheet-list-widget.component";
|
|
20
20
|
import * as i19 from "@angular/common";
|
|
21
21
|
import * as i20 from "./checksheet-routing.module";
|
|
22
22
|
import * as i21 from "../@shared/shared.module";
|
|
@@ -27,8 +27,13 @@ import * as i25 from "@angular/material/radio";
|
|
|
27
27
|
import * as i26 from "@angular/material/progress-bar";
|
|
28
28
|
import * as i27 from "./checksheet-submission-file-upload/checksheet-submisison-file-upload.component";
|
|
29
29
|
import * as i28 from "./checksheet-submission-file/checksheet-submission-files/checksheet-submission-files.component";
|
|
30
|
+
import * as i29 from "ngx-avatars";
|
|
31
|
+
import * as i30 from "./checksheet-format/checksheet-format-copy-button/checksheet-format-copy-button.component";
|
|
32
|
+
import * as i31 from "./checksheet-format/checksheet-format-delete-button/checksheet-format-delete-button.component";
|
|
33
|
+
import * as i32 from "./checksheet-format/checksheet-format-unpublish-button/checksheet-format-unpublish-button.component";
|
|
34
|
+
import * as i33 from "./checksheet-format/checksheet-format-publish-button/checksheet-format-publish-button.component";
|
|
30
35
|
export declare class ChecksheetModule {
|
|
31
36
|
static ɵfac: i0.ɵɵFactoryDeclaration<ChecksheetModule, never>;
|
|
32
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ChecksheetModule, [typeof i1.ChecksheetFormatListComponent, typeof i2.
|
|
37
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ChecksheetModule, [typeof i1.ChecksheetFormatListComponent, typeof i2.ChecksheetFormatFormComponent, typeof i3.ChecksheetQuestionFormComponent, typeof i4.ChecksheetQuestionComponent, typeof i5.ChecksheetQuestionListComponent, typeof i6.ChecksheetListComponent, typeof i7.ChecksheetFormComponent, typeof i8.ChecksheetFormatViewComponent, typeof i9.ChecksheetNodeViewComponent, typeof i10.MechanicalIssueFormComponent, typeof i11.ChecksheetReportComponent, typeof i12.ChecksheetFormButtonComponent, typeof i13.ChecksheetSubmissionDeleteButtonComponent, typeof i14.ChecksheetReviewButtonComponent, typeof i15.ChecksheetSubmissionViewComponent, typeof i16.ChecksheetSubmissionListComponent, typeof i17.ChecksheetSubmissionReviewButtonComponent, typeof i18.ChecksheetListWidgetComponent], [typeof i19.CommonModule, typeof i20.ChecksheetRoutingModule, typeof i21.SharedModule, typeof i22.InfiniteScrollModule, typeof i23.ActionPopupModule, typeof i23.SearchableSelectorModule, typeof i23.NoteModule, typeof i24.NgxEditorModule, typeof i25.MatRadioModule, typeof i23.EntityFilesViewAllModule, typeof i23.ExportExcelModule, typeof i26.MatProgressBarModule, typeof i23.TimelineFilterModule, typeof i27.ChecksheetSubmissionFileUploadComponent, typeof i28.ChecksheetSubmissionFilesComponent, typeof i21.SharedModule, typeof i29.AvatarComponent, typeof i30.ChecksheetFormatCopyButtonComponent, typeof i31.ChecksheetFormatDeleteButtonComponent, typeof i32.ChecksheetFormatUnpublishButtonComponent, typeof i33.ChecksheetFormatPublishButtonComponent], [typeof i6.ChecksheetListComponent, typeof i12.ChecksheetFormButtonComponent, typeof i18.ChecksheetListWidgetComponent]>;
|
|
33
38
|
static ɵinj: i0.ɵɵInjectorDeclaration<ChecksheetModule>;
|
|
34
39
|
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from './lib/checksheet/checksheet.module';
|
|
2
2
|
export * from './lib/checksheet/checksheet-submission-list/checksheet-submission-list.component';
|
|
3
|
-
export * from './lib/checksheet/checksheet-submission-form-button/checksheet-submission-form-button.component';
|
|
4
3
|
export * from './lib/checksheet/checksheet-form-button/checksheet-form-button.component';
|
|
5
4
|
export * from './lib/checksheet/checksheet-list/checksheet-list.component';
|
|
5
|
+
export * from './lib/checksheet/checksheet-list-widget/checksheet-list-widget.component';
|
package/esm2022/lib/checksheet/checksheet-submission-form/checksheet-submission-form.component.mjs
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
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=
|