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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-techlify-checksheet.mjs","sources":["../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-format.service.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-format-question.service.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-question-form/checksheet-question-form.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-question-form/checksheet-question-form.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-answer.service.ts","../../../projects/ngx-techlify-checksheet/src/lib/@shared/file-upload-button/file-upload-button.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/@shared/file-upload-button/file-upload-button.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-file.service.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-file-upload/checksheet-submisison-file-upload.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-file-upload/checksheet-submission-file-upload.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-file/checksheet-submission-file-delete-button/checksheet-submission-file-delete-button.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-file/checksheet-submission-file-delete-button/checksheet-submission-file-delete-button.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-file/checksheet-submission-files/checksheet-submission-files.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-file/checksheet-submission-files/checksheet-submission-files.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-question/checksheet-question.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-question/checksheet-question.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-question-list/checksheet-question-list.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-question-list/checksheet-question-list.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-form/checksheet-form.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-form/checksheet-form.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-format-list/checksheet-format-list.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-format-list/checksheet-format-list.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet.service.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-form/checksheet-submission-form.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-form/checksheet-submission-form.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-report/checksheet-report.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-report/checksheet-report.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-form-button/checksheet-form-button.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-form-button/checksheet-form-button.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-delete-button/checksheet-submission-delete-button.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-delete-button/checksheet-submission-delete-button.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-review-button/checksheet-review-button.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-review-button/checksheet-review-button.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-list/checksheet-list.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-list/checksheet-list.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-node-view/checksheet-node-view.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-node-view/checksheet-node-view.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-view/checksheet-view.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-view/checksheet-view.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-view/checksheet-submission-view.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-view/checksheet-submission-view.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-routing.module.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/mechanical-issue-form/mechanical-issue-form.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/mechanical-issue-form/mechanical-issue-form.component.html","../../../projects/ngx-techlify-checksheet/src/lib/@shared/material.module.ts","../../../projects/ngx-techlify-checksheet/src/lib/@shared/shared.module.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-form-button/checksheet-submission-form-button.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-form-button/checksheet-submission-form-button.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission.service.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-review-button/checksheet-submission-review-button.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-review-button/checksheet-submission-review-button.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-list/checksheet-submission-list.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-submission-list/checksheet-submission-list.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet.module.ts","../../../projects/ngx-techlify-checksheet/src/public-api.ts","../../../projects/ngx-techlify-checksheet/src/ngx-techlify-checksheet.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { HttpService, TechlifyServiceBaseClass } from 'ngx-techlify-core';\nimport {Observable} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChecksheetFormatService extends TechlifyServiceBaseClass {\n constructor(httpService: HttpService) {\n super(httpService, 'checksheet-formats');\n }\n\n copy(model: any): Observable<any> {\n return this.http.post(`api/checksheet-formats-copy/${model.id}`, {});\n }\n\n unpublish(model: any): Observable<any> {\n return this.http.put(`api/checksheet-formats/${model.id}/unpublish`, {});\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpService, TechlifyServiceBaseClass } from 'ngx-techlify-core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChecksheetFormatQuestionService extends TechlifyServiceBaseClass {\n constructor(httpService: HttpService) {\n super(httpService, 'checksheet-format-questions');\n }\n}\n","import {Component, Inject, OnDestroy, OnInit} from '@angular/core';\nimport {UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators} from '@angular/forms';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {AlertService, FormValidatorService} from 'ngx-techlify-core';\nimport {Editor} from 'ngx-editor';\nimport {ChecksheetFormatQuestionService} from '../checksheet-format-question.service';\nimport {Observable} from 'rxjs';\n\nconst errorMessages: any = {\n label: {\n required: 'Question is required'\n },\n type_id: {\n required: 'Question Type is required'\n },\n value: {\n required: 'Answer is required'\n }\n};\n@Component({\n selector: 'app-checksheet-question-form',\n templateUrl: './checksheet-question-form.component.html',\n styleUrls: ['./checksheet-question-form.component.scss']\n})\nexport class ChecksheetQuestionFormComponent implements OnInit, OnDestroy {\n updateMode!: boolean;\n questionFormGroup!: UntypedFormGroup;\n questionFormFirstAttempt!: boolean;\n editor!: Editor;\n isSaving: boolean = false;\n\n constructor(\n public dialogRef: MatDialogRef<ChecksheetQuestionFormComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private fb: UntypedFormBuilder,\n private formValidatorService: FormValidatorService,\n private alertService: AlertService,\n private checksheetFormatQuestionService: ChecksheetFormatQuestionService\n ) {\n this.createForm();\n }\n\n /** Method to create a form **/\n private createForm() {\n this.questionFormGroup = this.fb.group({\n id: [''],\n label: ['', Validators.compose([Validators.required])],\n type_id: ['', Validators.required],\n format_id: ['', Validators.required],\n answers: this.fb.array([]),\n rank: [1]\n });\n }\n\n createAnswer() {\n return this.fb.group({\n id: '',\n question_id: '',\n value: ['', Validators.required],\n rank: [1]\n });\n }\n\n ngOnDestroy(): void {\n this.editor.destroy();\n }\n\n ngOnInit() {\n this.editor = new Editor();\n\n if (this.data.update) {\n this.updateMode = true;\n }\n this.questionFormGroup.patchValue(this.data.question);\n if (\n this.data.question.type_id === 1 ||\n this.data.question.type_id === 2 ||\n this.data.question.type_id === 7\n ) {\n this.data.question.answers.forEach((answer: any) => {\n const form: UntypedFormGroup = this.createAnswer();\n form.patchValue(answer);\n this.answerFormArray.push(form);\n });\n }\n }\n\n submit() {\n this.questionFormFirstAttempt = true;\n this.answerFormArray.controls.forEach((fb: any) => {\n fb.markAllAsTouched();\n });\n if (this.questionFormGroup.valid) {\n const model = this.questionFormGroup.value;\n const params: any = { with: 'answers,type' };\n this.isSaving = true;\n let request: Observable<any> = this.updateMode\n ? this.checksheetFormatQuestionService.update(model, params)\n : this.checksheetFormatQuestionService.store(model, params);\n\n request.subscribe({\n next: (result: any) => {\n this.isSaving = false;\n this.dialogRef.close(result?.item);\n this.alertService.addAlert('Question saved successfully!', 'success');\n },\n error: () => { this.isSaving = false }\n });\n }\n }\n\n cancel() {\n this.dialogRef.close();\n }\n\n get isChoiceTypeSelected() {\n return (\n this.questionFormGroup.get('type_id')?.value === 1 ||\n this.questionFormGroup.get('type_id')?.value === 2 ||\n this.questionFormGroup.get('type_id')?.value === 7\n );\n }\n\n get answerFormArray() {\n return this.questionFormGroup.get('answers') as UntypedFormArray;\n }\n\n addAnswer() {\n this.answerFormArray.push(this.createAnswer());\n }\n\n questionChange(value: number) {\n this.answerFormArray.clear();\n if (value === 1 || value === 2 || value === 7) {\n this.addAnswer();\n this.addAnswer();\n }\n }\n\n /**Method to evaluate form fields*/\n isFieldValid(field: string, formGroup: any = this.questionFormGroup) {\n return this.formValidatorService.isFieldValid(\n field,\n formGroup,\n this.questionFormFirstAttempt\n );\n }\n\n /**Method to find error in form fields*/\n getErrorMessage(field: string, formGroup: any = this.questionFormGroup) {\n return this.formValidatorService.getErrorMessage(\n field,\n formGroup,\n errorMessages\n );\n }\n}\n","<form [formGroup]=\"questionFormGroup\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div mat-dialog-title class=\"text-center\">\n <div>Checksheet Question</div>\n </div>\n\n <div mat-dialog-content fxLayout=\"row wrap\" fxLayoutAlign=\"space-between\">\n <div fxFlex=\"100%\" class=\"mt-2\">Question</div>\n <div fxFlex=\"100%\" class=\"mt-3 border\">\n <div class=\"NgxEditor__Wrapper\">\n <ngx-editor-menu [editor]=\"editor\"> </ngx-editor-menu>\n <ngx-editor [editor]=\"editor\" formControlName=\"label\"></ngx-editor>\n </div>\n </div>\n <div class=\"text-danger my-1\" fxFlex=\"100%\" *ngIf=\"isFieldValid('label')\">\n {{ getErrorMessage('label') }}\n </div>\n\n <mat-form-field fxFlex=\"100%\" class=\"mt-2\">\n <mat-label>Question Type</mat-label>\n <app-searchable-selector\n apiUrl=\"api/checksheet-question-types\"\n [enableSearch]=\"false\"\n formControlName=\"type_id\"\n (selectionChange)=\"questionChange($event)\"\n ></app-searchable-selector>\n <mat-error *ngIf=\"isFieldValid('type_id')\">\n {{ getErrorMessage('type_id') }}\n </mat-error>\n </mat-form-field>\n\n <div\n fxFlex=\"100%\"\n fxLayout=\"column\"\n fxLayoutGap=\"0.25rem\"\n *ngIf=\"isChoiceTypeSelected\"\n >\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <h3 class=\"m-0\">Answers</h3>\n <button\n mat-icon-button\n color=\"primary\"\n type=\"button\"\n (click)=\"addAnswer()\"\n >\n <mat-icon>add</mat-icon>\n </button>\n </div>\n\n <ng-container\n formArrayName=\"answers\"\n *ngFor=\"let answer of answerFormArray.controls; let i = index\"\n >\n <form\n [formGroupName]=\"i\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n fxLayoutGap=\"0.5rem\"\n >\n <mat-form-field>\n <input\n matInput\n formControlName=\"value\"\n placeholder=\"Answer\"\n autocomplete=\"off\"\n required\n />\n <mat-error *ngIf=\"isFieldValid('value', answer)\"\n >{{ getErrorMessage('value', answer) }}\n </mat-error>\n </mat-form-field>\n\n <button\n [disabled]=\"questionFormGroup.get('answers')?.value?.length <= 2\"\n mat-icon-button\n color=\"primary\"\n type=\"button\"\n (click)=\"answerFormArray.removeAt(i)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n </form>\n </ng-container>\n </div>\n\n <div\n class=\"my-2\"\n fxLayout=\"row\"\n fxLayoutGap=\"30px\"\n fxLayoutAlign=\"end\"\n fxFlex=\"100%\"\n >\n <button\n [disabled]=\"isSaving\"\n mat-raised-button\n type=\"button\"\n (click)=\"cancel()\"\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 </div>\n </div>\n </div>\n</form>\n","import { Injectable } from '@angular/core';\nimport { HttpService, TechlifyServiceBaseClass } from 'ngx-techlify-core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChecksheetSubmissionAnswerService extends TechlifyServiceBaseClass {\n constructor(httpService: HttpService) {\n super(httpService, 'checksheet-submission-answers');\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { EntityFileService } from 'ngx-techlify-core';\n\n@Component({\n selector: 'app-file-upload-button',\n standalone: true,\n imports: [CommonModule, MatButtonModule, MatIconModule],\n templateUrl: './file-upload-button.component.html',\n styleUrls: ['./file-upload-button.component.scss']\n})\nexport class FileUploadButtonComponent {\n @Input() config!: {\n fileId?: string | undefined;\n multiple?: boolean | undefined;\n accept?: string | undefined;\n };\n @Output() uploaded: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n readonly DEFAULT_FILE_ID = 'file-upload-button';\n isUploading!: boolean;\n\n constructor(private entityFileService: EntityFileService) {}\n\n async onFileChange(event: any) {\n if (event.target.files && event.target.files.length) {\n const fileArray: File[] = Array.from(event.target.files);\n const fileInput = document.getElementById(\n this.config?.fileId ?? this.DEFAULT_FILE_ID\n ) as HTMLInputElement;\n fileInput.value = '';\n this.isUploading = true;\n const results = await this.uploadFiles(fileArray);\n this.uploaded.emit(results);\n this.isUploading = false;\n }\n }\n\n selectFiles(event: any) {\n event.preventDefault();\n document\n .getElementById(this.config?.fileId ?? this.DEFAULT_FILE_ID)\n ?.click();\n }\n\n private async uploadFiles(files: File[]): Promise<any[]> {\n const uploadPromises = files.map((file) =>\n this.entityFileService.uploadEntityFile(file)\n );\n return await Promise.all(uploadPromises);\n }\n}\n","<button\n [disabled]=\"isUploading\"\n mat-stroked-button\n type=\"button\"\n (click)=\"selectFiles($event)\"\n>\n <mat-icon>attachment</mat-icon> Attach\n</button>\n\n<input\n type=\"file\"\n id=\"{{ config.fileId ?? DEFAULT_FILE_ID }}\"\n [accept]=\"config.accept ?? '*'\"\n (change)=\"onFileChange($event)\"\n [multiple]=\"config.multiple ?? false\"\n class=\"d-none\"\n/>\n","import { Injectable } from '@angular/core';\nimport { HttpService, TechlifyServiceBaseClass } from 'ngx-techlify-core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChecksheetSubmissionFileService extends TechlifyServiceBaseClass {\n constructor(httpService: HttpService) {\n super(httpService, 'checksheet-submission-files');\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ChecksheetSubmissionFileService } from '../checksheet-submission-file.service';\nimport { forkJoin, map, Observable } from 'rxjs';\nimport { FileUploadButtonComponent } from '../../@shared/file-upload-button/file-upload-button.component';\n\n@Component({\n selector: 'app-checksheet-submission-file-upload',\n standalone: true,\n imports: [CommonModule, FileUploadButtonComponent],\n templateUrl: './checksheet-submission-file-upload.component.html',\n styleUrls: ['./checksheet-submission-file-upload.component.scss']\n})\nexport class ChecksheetSubmissionFileUploadComponent {\n @Input() submissionId!: number;\n @Input() questionId!: number;\n @Output() uploaded: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n constructor(\n private checksheetSubmissionFileService: ChecksheetSubmissionFileService\n ) {}\n\n onUploadComplete(uploadedFiles: any[]) {\n const uploadObservables: Observable<any>[] = uploadedFiles.map((file) => {\n const data: any = {\n file_name: file.item.file_name,\n file_url: file.item.url,\n submission_id: this.submissionId,\n question_id: this.questionId\n };\n return this.checksheetSubmissionFileService\n .store(data)\n .pipe(map((response) => response?.item));\n });\n\n forkJoin(uploadObservables).subscribe({\n next: (checksheetSubmissionFiles: any[]) => {\n this.uploaded.emit(checksheetSubmissionFiles);\n }\n });\n }\n}\n","<app-file-upload-button\n (uploaded)=\"onUploadComplete($event)\"\n [config]=\"{ fileId: 'question-' + questionId }\"\n></app-file-upload-button>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ChecksheetSubmissionFileService } from '../../checksheet-submission-file.service';\nimport {MaterialModule} from \"ngx-techlify-core\";\n\n@Component({\n selector: 'app-checksheet-submission-file-delete-button',\n standalone: true,\n imports: [CommonModule, MatIconModule, MaterialModule],\n templateUrl: './checksheet-submission-file-delete-button.component.html',\n styleUrls: ['./checksheet-submission-file-delete-button.component.scss']\n})\nexport class ChecksheetSubmissionFileDeleteButtonComponent {\n @Input() checksheetSubmissionFile: any;\n @Output() deleted: EventEmitter<any> = new EventEmitter<any>();\n isDeleting: boolean = false;\n\n constructor(\n private matDialog: MatDialog,\n private checksheetSubmissionFileService: ChecksheetSubmissionFileService\n ) {}\n\n /**\n * Show delete confirmation dialog.\n *\n * @param templateRef\n */\n openDialog(templateRef: TemplateRef<any>) {\n this.matDialog.open(templateRef, { width: '400px' });\n }\n\n /**\n * Send request to delete the model.\n */\n deleteModel() {\n this.isDeleting = true;\n this.checksheetSubmissionFileService\n .delete(this.checksheetSubmissionFile)\n .subscribe({\n next: () => {\n this.isDeleting = false;\n this.deleted.emit();\n this.matDialog.closeAll();\n },\n error: () => (this.isDeleting = false)\n });\n }\n}\n","<mat-icon class=\"cursor-pointer\" (click)=\"openDialog(deleteTemplate)\">\n delete\n</mat-icon>\n\n<ng-template #deleteTemplate>\n <h3 mat-dialog-title>Delete Checksheet Attachment</h3>\n <div mat-dialog-content>\n <p>Are you sure you want to delete the file?</p>\n </div>\n <div\n mat-dialog-actions\n class=\"d-flex justify-content-end gap-2 align-items-center\"\n >\n <button\n [disabled]=\"isDeleting\"\n type=\"button\"\n mat-flat-button\n mat-dialog-close\n >\n Cancel\n </button>\n <button\n [disabled]=\"isDeleting\"\n type=\"button\"\n (click)=\"deleteModel()\"\n mat-raised-button\n color=\"warn\"\n >\n Delete\n </button>\n </div>\n</ng-template>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n MaterialModule,\n TechlifyListingControllerInterface\n} from 'ngx-techlify-core';\nimport {FormBuilder, ReactiveFormsModule} from '@angular/forms';\nimport { ChecksheetSubmissionFileService } from '../../checksheet-submission-file.service';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport {\n ChecksheetSubmissionFileDeleteButtonComponent\n} from \"../checksheet-submission-file-delete-button/checksheet-submission-file-delete-button.component\";\n\n@Component({\n selector: 'app-checksheet-submission-files',\n standalone: true,\n imports: [CommonModule, MaterialModule, MatProgressBarModule, ReactiveFormsModule, ChecksheetSubmissionFileDeleteButtonComponent],\n templateUrl: './checksheet-submission-files.component.html',\n styleUrls: ['./checksheet-submission-files.component.scss']\n})\nexport class ChecksheetSubmissionFilesComponent\n extends TechlifyListingControllerInterface\n implements OnInit\n{\n @Input() submissionId!: number;\n @Input() questionId!: number;\n displayedColumns: string[] = ['No', 'File', 'Actions'];\n\n constructor(\n private formBuilder: FormBuilder,\n private checksheetSubmissionFileService: ChecksheetSubmissionFileService\n ) {\n super();\n this.lastPage = 0;\n this.filterForm = this.formBuilder.group({\n search: [''],\n submission_ids: [''],\n question_ids: ['']\n });\n }\n\n ngOnInit(): void {\n this.filterForm.patchValue(\n {\n submission_ids: this.submissionId ?? '',\n question_ids: this.questionId ?? ''\n },\n { emitEvent: false }\n );\n this.listenForChanges();\n this.loadData();\n }\n\n loadData(): void {\n const params: any = {\n ...this.filterForm.value,\n perPage: this.perPage,\n page: this.page\n };\n this.isWorking = true;\n this.checksheetSubmissionFileService.index(params).subscribe({\n next: (response: any) => {\n this.models = this.models.concat(response?.data);\n this.lastPage = response?.last_page;\n },\n complete: () => (this.isWorking = false)\n });\n }\n}\n","<mat-card class=\"p-0\">\n <mat-card-content\n class=\"p-2 mb-0 d-flex justify-content-between align-items-center\"\n >\n <div>\n <h3 class=\"mb-0\">Files</h3>\n </div>\n <form [formGroup]=\"filterForm\">\n <mat-form-field>\n <mat-label>Search</mat-label>\n <input\n formControlName=\"search\"\n type=\"text\"\n matInput\n placeholder=\"Search\"\n />\n </mat-form-field>\n </form>\n </mat-card-content>\n <mat-card-content class=\"p-0\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\">\n <!-- No Column -->\n <ng-container matColumnDef=\"No\">\n <th mat-header-cell *matHeaderCellDef>#</th>\n <td mat-cell *matCellDef=\"let element; let i = index\">{{ i + 1 }}</td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"Title\">\n <th mat-header-cell *matHeaderCellDef>Title</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.title }}</td>\n </ng-container>\n\n <!-- Details Column -->\n <ng-container matColumnDef=\"Details\">\n <th mat-header-cell *matHeaderCellDef>Details</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.description }}</td>\n </ng-container>\n\n <!-- File Column -->\n <ng-container matColumnDef=\"File\">\n <th mat-header-cell *matHeaderCellDef>File</th>\n <td mat-cell *matCellDef=\"let element\">{{ element?.file_name }}</td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"Actions\">\n <th mat-header-cell *matHeaderCellDef>Actions</th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <a\n class=\"text-decoration-none cursor-pointer text-dark\"\n [href]=\"element?.file_url\"\n target=\"_blank\"\n >\n <span class=\"material-symbols-outlined\"> visibility </span>\n </a>\n\n <app-checksheet-submission-file-delete-button\n [checksheetSubmissionFile]=\"element\"\n (deleted)=\"reload()\"\n ></app-checksheet-submission-file-delete-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { debounceTime } from 'rxjs/operators';\nimport { UntilDestroy } from '@ngneat/until-destroy';\nimport { Editor } from 'ngx-editor';\nimport { ChecksheetSubmissionAnswerService } from '../checksheet-submission-answer.service';\nimport { FormControl } from '@angular/forms';\n\n@UntilDestroy()\n@Component({\n selector: 'app-checksheet-question',\n templateUrl: './checksheet-question.component.html',\n encapsulation: ViewEncapsulation.None, // Lets us style the innerHTML code\n styleUrls: ['./checksheet-question.component.scss']\n})\nexport class ChecksheetQuestionComponent implements OnInit {\n @Input() questionInfo: any;\n\n @Input() index!: any;\n\n @Input() submissionView!: boolean;\n\n @Input() submissionId!: number;\n\n @Input() disableInput!: boolean;\n\n fileEntityId!: number;\n editor!: Editor;\n\n @Input() isWorking: boolean = false;\n @Output() isWorkingChange = new EventEmitter<boolean>();\n submittedAnswer: FormControl = new FormControl<any>('');\n\n constructor(\n private checksheetSubmissionAnswerService: ChecksheetSubmissionAnswerService\n ) {}\n\n ngOnInit(): void {\n console.log(this.disableInput, this.submissionView);\n this.editor = new Editor();\n\n this.submittedAnswer.valueChanges\n .pipe(debounceTime(1000))\n .subscribe((val: any) => {\n if (this.questionInfo?.type_id === 1) {\n this.saveAnswer({ answer_id: val });\n } else {\n this.saveAnswer({ details: val });\n }\n });\n\n if (this.submissionView) {\n // load the answer for current submission question\n this.loadAnswer();\n }\n\n this.fileEntityId = this.questionInfo.id;\n }\n\n onMultiSelectAnswerChange() {\n const answerIds: number[] = (this.questionInfo.answers as [])\n .filter((item: any) => item.isChecked)\n .map((item: any) => item.id);\n\n this.saveAnswer({ answer_ids: answerIds });\n }\n\n onMultiSelectYesNoAnswerChange(event: any, answer: any) {\n this.saveAnswer({ answer_id: answer?.id, details: event.value });\n }\n\n getSubmittedMCQAnswer(answers: any[] = [], answer_id: any = null) {\n if (answer_id) {\n const submittedAnswer = answers.find((x) => x.id === answer_id);\n if (submittedAnswer) {\n return submittedAnswer?.value || '';\n }\n }\n return '';\n }\n\n getSubmittedMSQAnswer() {\n return (this.questionInfo?.answers as [])\n .filter((answer: any) => answer?.isChecked)\n ?.map((answer: any) => answer.value)\n ?.join(', ');\n }\n\n private loadAnswer() {\n const params: any = {\n submission_ids: this.submissionId,\n question_ids: this.questionInfo?.id\n };\n this.isWorking = true;\n this.checksheetSubmissionAnswerService.index(params).subscribe({\n next: (response: any) => {\n this.isWorking = false;\n const answers: any[] = response?.data;\n if (this.questionInfo?.type_id === 1 && answers?.length > 0) {\n this.submittedAnswer.setValue(answers[0]?.answer_id, {\n emitEvent: false\n });\n } else if (this.questionInfo?.type_id === 2) {\n this.submittedAnswer.setValue(answers, { emitEvent: false });\n this.questionInfo.answers = (this.questionInfo?.answers as []).map(\n (answer: any) => {\n return {\n ...answer,\n isChecked: answers.some(\n (item: any) => item.answer_id === answer.id\n )\n };\n }\n );\n } else if (\n (this.questionInfo?.type_id === 3 ||\n this.questionInfo?.type_id === 4 ||\n this.questionInfo?.type_id === 5 ||\n this.questionInfo?.type_id === 6) &&\n answers?.length > 0\n ) {\n this.submittedAnswer.setValue(answers[0].details || '', {\n emitEvent: false\n });\n } else if (this.questionInfo?.type_id === 7) {\n this.submittedAnswer.setValue(answers, { emitEvent: false });\n this.questionInfo.answers = (this.questionInfo?.answers as []).map(\n (answer: any) => {\n const result: any = answers.find(\n (item: any) => item.answer_id === answer.id\n );\n return {\n ...answer,\n selectedValue: result ? Boolean(Number(result?.details)) : null\n };\n }\n );\n }\n },\n error: () => (this.isWorking = false)\n });\n }\n\n /**\n * Send request to save the question answers.\n *\n * @param answerData\n * @private\n */\n private saveAnswer(answerData: {\n answer_id?: number;\n answer_ids?: number[];\n details?: string;\n }): void {\n const data: any = {\n question_id: this.questionInfo?.id,\n submission_id: this.submissionId,\n answer_id: answerData?.answer_id,\n answer_ids: answerData?.answer_ids,\n question_type_id: this.questionInfo?.type_id,\n details: answerData?.details\n };\n this.isWorking = true;\n this.checksheetSubmissionAnswerService.store(data).subscribe({\n next: () => {\n this.isWorking = false;\n },\n error: () => (this.isWorking = false)\n });\n }\n}\n","<div\n fxLayout=\"column\"\n fxLayoutGap=\"0.5rem\"\n class=\"mat-typography\"\n *ngIf=\"!submissionView\"\n>\n <div fxLayout=\"row\" fxLayoutGap=\"0.5rem\" class=\"font-weight-bold\">\n <div>{{ index + 1 }}.</div>\n <div [innerHTML]=\"questionInfo?.label\"></div>\n </div>\n <div fxLayout=\"row\" fxLayoutGap=\"0.5rem\">\n <small>{{ questionInfo?.type?.title }}</small>\n </div>\n\n <div\n *ngIf=\"questionInfo?.type_id === 1\"\n fxLayout=\"column\"\n fxLayoutGap=\"0.25rem\"\n class=\"mr-3\"\n >\n <mat-radio-group class=\"answer-radio-group\" [disabled]=\"true\">\n <mat-radio-button\n class=\"answer-radio-button\"\n *ngFor=\"let answer of questionInfo?.answers\"\n [value]=\"answer.id\"\n >\n {{ answer.value }}\n </mat-radio-button>\n </mat-radio-group>\n </div>\n\n <div\n *ngIf=\"questionInfo?.type_id === 2\"\n fxLayout=\"column\"\n fxLayoutGap=\"0.25rem\"\n class=\"mr-3\"\n >\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n *ngFor=\"let answer of questionInfo?.answers; let i = index\"\n >\n <mat-checkbox [disabled]=\"true\" fxFlex=\"80%\"\n >{{ i + 1 }} ) {{ answer.value }}</mat-checkbox\n >\n </div>\n </div>\n\n <div\n *ngIf=\"\n questionInfo?.type_id === 3 ||\n questionInfo?.type_id === 5 ||\n questionInfo?.type_id === 6\n \"\n fxLayout=\"column\"\n fxLayoutGap=\"0.25rem\"\n class=\"mr-3 w-50 border short-answer\"\n ></div>\n\n <div\n *ngIf=\"questionInfo?.type_id === 4\"\n fxLayout=\"column\"\n fxLayoutGap=\"0.25rem\"\n class=\"mr-3 w-50 border long-answer\"\n ></div>\n\n <div\n *ngIf=\"questionInfo?.type_id === 7\"\n fxLayout=\"column\"\n fxLayoutGap=\"0.25rem\"\n class=\"mr-3\"\n >\n <ol>\n <li *ngFor=\"let answer of questionInfo?.answers\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <div>{{ answer?.value }} -</div>\n <mat-radio-group [disabled]=\"true\" fxLayout=\"row\">\n <mat-radio-button class=\"mt-1 ml-2 yes-no\" value=\"1\"\n >Yes\n </mat-radio-button>\n <mat-radio-button class=\"mt-1 ml-2 yes-no\" value=\"0\"\n >No\n </mat-radio-button>\n </mat-radio-group>\n </div>\n </li>\n </ol>\n </div>\n</div>\n\n<div *ngIf=\"submissionView\">\n <div class=\"d-flex justify-content-between align-items-center gap-3 mb-2\">\n <div class=\"d-flex align-items-center gap-2\">\n <strong>{{ index + 1 }}.</strong>\n <strong [innerHTML]=\"questionInfo?.label\"></strong>\n <app-checksheet-submission-file-upload\n [submissionId]=\"submissionId\"\n [questionId]=\"questionInfo?.id\"\n (uploaded)=\"checksheetSubmissionFilesComponent.reload()\"\n class=\"ml-3\"\n ></app-checksheet-submission-file-upload>\n </div>\n <span class=\"badge badge-primary\">{{ questionInfo?.type?.title }}</span>\n </div>\n <div class=\"d-flex justify-content-between align-items-start gap-1\">\n <div *ngIf=\"questionInfo?.type_id === 1\" class=\"d-flex flex-column gap-2\">\n <mat-radio-group\n class=\"answer-radio-group\"\n [disabled]=\"disableInput\"\n *ngIf=\"!disableInput\"\n [formControl]=\"submittedAnswer\"\n >\n <mat-radio-button\n class=\"answer-radio-button\"\n *ngFor=\"let answer of questionInfo?.answers\"\n [value]=\"answer.id\"\n >\n {{ answer.value }}\n </mat-radio-button>\n </mat-radio-group>\n <span *ngIf=\"disableInput\">\n <b>Answer:</b>\n {{\n getSubmittedMCQAnswer(\n questionInfo?.answers,\n this.submittedAnswer.value\n )\n }}\n </span>\n </div>\n\n <div *ngIf=\"questionInfo?.type_id === 2\" class=\"d-flex flex-column gap-2\">\n <ng-container *ngIf=\"!disableInput\">\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n *ngFor=\"let answer of questionInfo?.answers; let i = index\"\n >\n <mat-checkbox\n (change)=\"onMultiSelectAnswerChange()\"\n [disabled]=\"disableInput\"\n [(ngModel)]=\"answer.isChecked\"\n fxFlex=\"80%\"\n >\n {{ i + 1 }}\n )\n {{ answer.value }}\n </mat-checkbox>\n </div>\n </ng-container>\n\n <span *ngIf=\"disableInput\">\n <b>Answers:</b>\n {{ getSubmittedMSQAnswer() }}\n </span>\n </div>\n\n <div *ngIf=\"questionInfo?.type_id === 3 || questionInfo?.type_id === 4\">\n <div class=\"NgxEditor__Wrapper mb-2\" *ngIf=\"!disableInput\">\n <ngx-editor-menu [editor]=\"editor\"> </ngx-editor-menu>\n <ngx-editor\n [editor]=\"editor\"\n [formControl]=\"submittedAnswer\"\n ></ngx-editor>\n </div>\n <div *ngIf=\"disableInput\" [innerHtml]=\"submittedAnswer.value\"></div>\n </div>\n\n <div *ngIf=\"questionInfo?.type_id === 5\">\n <mat-form-field *ngIf=\"!disableInput\">\n <mat-label>Answer</mat-label>\n <input\n matInput\n type=\"number\"\n size=\"10\"\n [formControl]=\"submittedAnswer\"\n />\n </mat-form-field>\n <span *ngIf=\"disableInput\">{{ submittedAnswer.value }}</span>\n </div>\n\n <div *ngIf=\"questionInfo?.type_id === 6\">\n <mat-form-field *ngIf=\"!disableInput\">\n <input\n matInput\n [matDatepicker]=\"picker\"\n placeholder=\"Date\"\n [formControl]=\"submittedAnswer\"\n (focus)=\"picker.open()\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n <span *ngIf=\"disableInput\">{{ submittedAnswer.value | date }}</span>\n </div>\n\n <div *ngIf=\"questionInfo?.type_id === 7 && !disableInput\">\n <ol>\n <li *ngFor=\"let answer of questionInfo?.answers\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <div>{{ answer?.value }} -</div>\n <mat-radio-group\n fxLayout=\"row\"\n (change)=\"onMultiSelectYesNoAnswerChange($event, answer)\"\n [disabled]=\"disableInput\"\n [value]=\"answer.selectedValue\"\n >\n <mat-radio-button class=\"mt-1 ml-2 yes-no\" [value]=\"true\">\n Yes\n </mat-radio-button>\n <mat-radio-button class=\"mt-1 ml-2 yes-no\" [value]=\"false\">\n No\n </mat-radio-button>\n </mat-radio-group>\n </div>\n </li>\n </ol>\n </div>\n\n <app-checksheet-submission-files\n class=\"w-50\"\n #checksheetSubmissionFilesComponent\n [submissionId]=\"submissionId\"\n [questionId]=\"questionInfo?.id\"\n ></app-checksheet-submission-files>\n </div>\n\n <ng-container *ngIf=\"questionInfo?.type_id === 7 && disableInput\">\n <div *ngFor=\"let answer of questionInfo?.answers\">\n {{ answer?.value }} - {{ answer?.selectedValue ? 'Yes' : 'No' }}\n </div>\n </ng-container>\n\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport {\n ActionPopup,\n ActionPopupComponent,\n AlertService,\n DataManager\n} from 'ngx-techlify-core';\nimport { ChecksheetQuestionFormComponent } from '../checksheet-question-form/checksheet-question-form.component';\n\n@Component({\n selector: 'app-checksheet-question-list',\n templateUrl: './checksheet-question-list.component.html',\n styleUrls: ['./checksheet-question-list.component.scss']\n})\nexport class ChecksheetQuestionListComponent implements OnInit {\n @Input() checksheet: any = {};\n @Output() checksheetChange = new EventEmitter();\n\n @Input() submission!: any;\n @Input() disableInput!: boolean;\n questions: any[] = [];\n\n constructor(\n private spinnerService: NgxSpinnerService,\n private alertService: AlertService,\n private dialog: MatDialog,\n private dataManager: DataManager\n ) {}\n\n ngOnInit(): void {\n this.questions = this.checksheet?.questions || [];\n }\n\n onScroll() {}\n\n editQuestion(question: any, index: any) {\n const dialogRef = this.dialog.open(ChecksheetQuestionFormComponent, {\n width: '800px',\n data: {\n update: true,\n question: question\n },\n autoFocus: false\n });\n\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n question = result;\n this.questions[index] = question;\n }\n });\n }\n\n addQuestion() {\n const dialogRef = this.dialog.open(ChecksheetQuestionFormComponent, {\n width: '800px',\n data: {\n question: {\n format_id: this.checksheet.id\n }\n },\n autoFocus: false\n });\n\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.questions.push(result);\n }\n });\n }\n\n async moveQuestionUp(index: any) {\n if (index < this.questions.length) {\n this.spinnerService.show();\n try {\n if (index <= 0) {\n return;\n }\n const q1 = this.questions[index];\n const q2 = this.questions[index - 1];\n await this.dataManager.PUT(`api/checksheet-format-questions/${q1.id}`, {\n ...q1,\n rank: index - 1\n });\n await this.dataManager.PUT(`api/checksheet-format-questions/${q2.id}`, {\n ...q2,\n rank: index\n });\n\n this.questions[index] = q2;\n this.questions[index - 1] = q1;\n } catch (error) {\n this.alertService.addAlert(\n 'Unable to move question, try later',\n 'warn'\n );\n } finally {\n this.spinnerService.hide();\n }\n }\n }\n\n async moveQuestionDown(index: any) {\n if (index < this.questions.length) {\n this.spinnerService.show();\n try {\n const q1 = this.questions[index];\n const q2 = this.questions[index + 1];\n await this.dataManager.PUT(`api/checksheet-format-questions/${q1.id}`, {\n ...q1,\n rank: index + 1\n });\n await this.dataManager.PUT(`api/checksheet-format-questions/${q2.id}`, {\n ...q2,\n rank: index\n });\n\n this.questions[index] = q2;\n this.questions[index + 1] = q1;\n } catch (error) {\n this.alertService.addAlert(\n 'Unable to move question, try later',\n 'warn'\n );\n } finally {\n this.spinnerService.hide();\n }\n }\n }\n\n deleteQuestion(question: any) {\n const dialogRef = this.dialog.open(ActionPopupComponent, {\n width: '400px',\n data: <ActionPopup>{\n title: 'Delete Question',\n message: `Are you sure to delete the question?`\n },\n autoFocus: false\n });\n\n dialogRef.afterClosed().subscribe(async (result) => {\n if (result) {\n //Action confirmed\n try {\n this.spinnerService.show();\n await this.dataManager.DELETE(\n `api/checksheet-format-questions/${question.id}`\n );\n this.questions = this.questions.filter(\n (x: any) => x.id !== question.id\n );\n } catch (error) {\n this.alertService.addAlert(\n 'Unable to delete question, try later',\n 'warn'\n );\n } finally {\n this.spinnerService.hide();\n }\n }\n });\n }\n}\n","<ng-container *ngIf=\"checksheet?.id\">\n <button\n *ngIf=\"!disableInput\"\n type=\"button\"\n mat-raised-button\n color=\"primary\"\n (click)=\"addQuestion()\"\n class=\"mb-2\"\n >\n Add Question\n </button>\n\n <div\n class=\"d-flex flex-column gap-3 mat-typography scroll-container\"\n infiniteScroll\n [infiniteScrollDistance]=\"1\"\n [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\"\n [scrollWindow]=\"false\"\n >\n <mat-card\n class=\"d-flex flex-column gap-3\"\n *ngFor=\"let question of questions; let i = index\"\n >\n <div\n class=\"d-flex flex-row gap-3 justify-content-end\"\n *ngIf=\"!disableInput\"\n >\n <mat-icon class=\"cursor-pointer\" (click)=\"deleteQuestion(question)\">\n delete\n </mat-icon>\n <mat-icon class=\"cursor-pointer\" (click)=\"editQuestion(question, i)\">\n edit\n </mat-icon>\n <mat-icon\n class=\"cursor-pointer\"\n *ngIf=\"i > 0\"\n (click)=\"moveQuestionUp(i)\"\n >\n arrow_upward\n </mat-icon>\n <mat-icon\n class=\"cursor-pointer\"\n *ngIf=\"i < questions.length - 1\"\n (click)=\"moveQuestionDown(i)\"\n >\n arrow_downward\n </mat-icon>\n </div>\n\n <div>\n <app-checksheet-question\n [questionInfo]=\"question\"\n [index]=\"i\"\n ></app-checksheet-question>\n </div>\n </mat-card>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"submission?.id\">\n <div fxLayout=\"column\" fxLayoutGap=\"1rem\" class=\"mat-typography\">\n <mat-card\n fxLayout=\"column\"\n fxLayoutGap=\"0.5rem\"\n class=\"w-100\"\n *ngFor=\"let question of submission.format.questions; let i = index\"\n >\n <app-checksheet-question\n [questionInfo]=\"question\"\n [index]=\"i\"\n [submissionView]=\"true\"\n [submissionId]=\"submission.id\"\n [disableInput]=\"disableInput\"\n >\n </app-checksheet-question>\n </mat-card>\n </div>\n</ng-container>\n","import { Component, OnInit, Input } from '@angular/core';\nimport {\n UntypedFormGroup,\n UntypedFormBuilder,\n Validators\n} from '@angular/forms';\nimport { FormValidatorService } from 'ngx-techlify-core';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport {\n AlertService,\n ActionPopupComponent,\n ActionPopup,\n ErrorHandlerService,\n DataManager\n} from 'ngx-techlify-core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Location } from '@angular/common';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ChecksheetFormatService } from '../checksheet-format.service';\nimport { Observable } from 'rxjs';\n\nconst errorMessages: any = {\n title: {\n required: 'The title is required.'\n }\n};\n\n@Component({\n selector: 'app-checksheet-form',\n templateUrl: './checksheet-form.component.html',\n styleUrls: ['./checksheet-form.component.scss']\n})\nexport class ChecksheetFormComponent implements OnInit {\n checksheetForm!: UntypedFormGroup;\n updateMode!: boolean;\n checksheet: any;\n isSaving: boolean = false;\n id!: number;\n\n @Input() disableInput!: boolean;\n isLoading: boolean = false;\n\n constructor(\n private formValidatorService: FormValidatorService,\n private fb: UntypedFormBuilder,\n private spinnerService: NgxSpinnerService,\n private alertService: AlertService,\n public location: Location,\n private errorHandler: ErrorHandlerService,\n private dataManager: DataManager,\n private dialog: MatDialog,\n private route: ActivatedRoute,\n private checksheetFormatService: ChecksheetFormatService\n ) {\n this.id = parseInt(this.route.snapshot.params?.['checksheetId']);\n this.createForm();\n }\n\n ngOnInit(): void {\n if (this.disableInput) {\n this.checksheetForm.disable();\n }\n if (this.id) {\n this.updateMode = true;\n this.loadChecksheetFormat();\n }\n }\n\n /**\n * Create a check-sheet form.\n * @private\n */\n private createForm() {\n this.checksheetForm = this.fb.group({\n id: [''],\n title: ['', Validators.required]\n });\n }\n\n /**Method to evaluate form fields*/\n isFieldValid(field: string) {\n return this.formValidatorService.isFieldValid(field, this.checksheetForm);\n }\n\n /**Method to find error in form fields*/\n getErrorMessage(field: string) {\n return this.formValidatorService.getErrorMessage(\n field,\n this.checksheetForm,\n errorMessages\n );\n }\n\n submit() {\n this.checksheetForm.markAllAsTouched();\n if (this.checksheetForm.invalid) {\n this.alertService.addAlert('Please check the form for errors.', 'error');\n return;\n }\n\n const model = { ...this.checksheetForm.value };\n this.isSaving = true;\n let request: Observable<any> = this.updateMode\n ? this.checksheetFormatService.update(model)\n : this.checksheetFormatService.store(model);\n\n request.subscribe({\n next: (result: any) => {\n this.isSaving = false;\n if (!this.updateMode) {\n this.checksheet = result.item;\n this.checksheetForm.patchValue({ ...this.checksheet });\n }\n this.updateMode = true;\n this.alertService.addAlert('Checksheet saved successfully', 'success');\n },\n error: (error: any) => {\n this.isSaving = false;\n }\n });\n }\n\n publishChecksheet() {\n const dialogRef = this.dialog.open(ActionPopupComponent, {\n width: '400px',\n data: <ActionPopup>{\n title: 'Publish Checksheet',\n message: `Review the checksheet completely before publishing, you cannot alter once it is published. Are you sure to publish the Checksheet?`\n },\n autoFocus: false\n });\n\n dialogRef.afterClosed().subscribe(async (result) => {\n if (result) {\n //Action confirmed\n try {\n this.spinnerService.show();\n const model = this.checksheetForm.value;\n model.is_published = true;\n const result = await this.dataManager.PUT(\n `api/checksheet-formats/${model.id}`,\n model\n );\n this.alertService.addAlert(\n 'Checksheet successfully published',\n 'success'\n );\n this.location.back();\n } catch (error) {\n this.errorHandler.handleError(\n error,\n 'Unable to publish checksheet, try later'\n );\n } finally {\n this.spinnerService.hide();\n }\n }\n });\n }\n\n private loadChecksheetFormat() {\n this.isLoading = true;\n const params: any = { with: 'questions.answers,questions.type' };\n this.checksheetFormatService.show(this.id, params).subscribe({\n next: (result: any) => {\n this.isLoading = false;\n this.checksheetForm.patchValue(result?.item);\n this.checksheet = result?.item;\n },\n error: () => {\n this.isLoading = false;\n }\n });\n }\n}\n","<div fxLayout=\"column\" fxLayoutGap=\"0.5rem\">\n <h2>Checksheet Form</h2>\n\n <div\n class=\"d-flex justify-content-start align-items-start gap-3\"\n *ngIf=\"!isLoading\"\n >\n <div style=\"width: calc(70% - 1rem)\" *ngIf=\"checksheet\">\n <app-checksheet-question-list\n class=\"w-100\"\n [(checksheet)]=\"checksheet\"\n [disableInput]=\"disableInput\"\n >\n </app-checksheet-question-list>\n </div>\n <mat-card style=\"width: calc(30% - 1rem)\">\n <mat-card-content>\n <h3>Checksheet Info</h3>\n <form\n [formGroup]=\"checksheetForm\"\n (submit)=\"submit()\"\n fxLayout=\"column\"\n fxLayoutGap=\"0.25rem\"\n >\n <mat-form-field>\n <input\n matInput\n formControlName=\"title\"\n placeholder=\"Title\"\n autocomplete=\"off\"\n required\n />\n <mat-error *ngIf=\"isFieldValid('title')\">\n {{ getErrorMessage('title') }}\n </mat-error>\n </mat-form-field>\n\n <div\n class=\"my-2\"\n fxLayout=\"row\"\n fxLayoutGap=\"15px\"\n fxLayoutAlign=\"end\"\n *ngIf=\"!disableInput\"\n >\n <button\n [disabled]=\"isSaving\"\n mat-flat-button\n type=\"button\"\n (click)=\"location.back()\"\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\n <button\n mat-raised-button\n [disabled]=\"isSaving\"\n color=\"accent\"\n *ngIf=\"updateMode\"\n type=\"button\"\n (click)=\"publishChecksheet()\"\n >\n Publish\n </button>\n </div>\n </form>\n </mat-card-content>\n </mat-card>\n </div>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isLoading\"></mat-progress-bar>\n</div>\n","import {Component, OnInit} from '@angular/core';\nimport {ActionPopup, ActionPopupComponent, AlertService, TechlifyListingControllerInterface} from 'ngx-techlify-core';\nimport {MatDialog} from '@angular/material/dialog';\nimport {ChecksheetFormatService} from \"../checksheet-format.service\";\n\n@Component({\n selector: 'app-checksheet-format-list',\n templateUrl: './checksheet-format-list.component.html',\n styleUrls: ['./checksheet-format-list.component.scss']\n})\nexport class ChecksheetFormatListComponent extends TechlifyListingControllerInterface implements OnInit {\n displayedColumns: any[] = [\n 'index',\n 'title',\n 'questions',\n 'submissions',\n 'is_published',\n 'actions'\n ];\n\n constructor(\n private dialog: MatDialog,\n private service: ChecksheetFormatService,\n private alertService: AlertService\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.loadData();\n }\n\n deactivateChecksheet(checksheet: any) {\n const dialogRef = this.dialog.open(ActionPopupComponent, {\n width: '400px',\n data: <ActionPopup>{\n title: 'Deactivate Checksheet',\n message: `Are you sure to proceed deactivate the ${checksheet.title}?`\n },\n autoFocus: false\n });\n\n dialogRef.afterClosed().subscribe(async (result) => {\n if (result) {\n this.service.delete(checksheet).subscribe({\n next: () => {\n this.alertService.addAlert('Checksheet deactivated successfully!', 'success');\n this.models = this.models.filter(\n (x) => x.id !== checksheet.id\n );\n }\n });\n }\n });\n }\n\n copyChecksheet(checksheet: any) {\n const dialogRef = this.dialog.open(ActionPopupComponent, {\n width: '400px',\n data: <ActionPopup>{\n title: 'Copy Checksheet',\n message: `Are you sure to proceed copy the ${checksheet.title}?`\n },\n autoFocus: false\n });\n\n dialogRef.afterClosed().subscribe(async (result) => {\n if (result) {\n this.service.copy(checksheet).subscribe({\n next: () => {\n this.alertService.addAlert('Checksheet copied successfully!', 'success');\n this.reload();\n }\n })\n }\n });\n }\n\n unpublishChecksheet(checksheet: any) {\n const dialogRef = this.dialog.open(ActionPopupComponent, {\n width: '400px',\n data: <ActionPopup>{\n title: 'Unpublish Checksheet',\n message: `Are you sure to unpublish the format ${checksheet.title}?\n This checksheet format would no longer be available to team members to create submissions for. `\n },\n autoFocus: false\n });\n\n dialogRef.afterClosed().subscribe(async (result) => {\n if (result) {\n this.service.unpublish(checksheet).subscribe({\n next: () => {\n this.alertService.addAlert('Checksheet unpublished successfully!', 'success');\n this.reload();\n }\n });\n }\n });\n }\n\n loadData() {\n this.isWorking = true;\n const params = {\n sort_by: 'created_at|DESC',\n withCount: 'questions,submissions',\n page: this.page,\n perPage: this.perPage,\n }\n this.service.index(params).subscribe({\n next: (response: any) => {\n this.models = this.models?.concat(response?.data);\n this.lastPage = response?.last_page;\n this.isWorking = false;\n },\n error: () => {\n this.isWorking = false;\n },\n });\n }\n}\n","<mat-card>\n <mat-card-content>\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"mb-0\">Checksheet Formats</h3>\n <a [routerLink]=\"['../checksheet-form']\" class=\"text-decoration-none text-dark mt-2\">\n <mat-icon>add</mat-icon>\n </a>\n </div>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"mt-3\">\n <mat-card-content class=\"p-0\">\n <table\n mat-table [dataSource]=\"models\" class=\"w-100\"\n infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\"\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 = index\">\n {{ i + 1 }}\n </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef>Title</th>\n <td mat-cell *matCellDef=\"let element\">{{ element.title }} <br /></td>\n </ng-container>\n\n <!-- Questions Column -->\n <ng-container matColumnDef=\"questions\">\n <th mat-header-cell *matHeaderCellDef>Questions</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element.questions_count }}\n </td>\n </ng-container>\n\n <!-- Submissions Column -->\n <ng-container matColumnDef=\"submissions\">\n <th mat-header-cell *matHeaderCellDef>Submissions</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element.submissions_count }}\n </td>\n </ng-container>\n\n <!-- is Published Column -->\n <ng-container matColumnDef=\"is_published\">\n <th mat-header-cell *matHeaderCellDef>Published</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.is_published ? 'Yes' : 'No' }}\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 justify-content-start align-items-center gap-2\">\n <a\n [routerLink]=\"['../checksheet-view/', element?.id]\"\n class=\"text-decoration-none text-dark\"\n >\n <mat-icon>search</mat-icon>\n </a>\n\n <a\n *ngIf=\"!element.is_published\"\n [routerLink]=\"['../checksheet-form/', element?.id]\"\n class=\"text-decoration-none text-dark\"\n >\n <mat-icon>edit</mat-icon>\n </a>\n\n <mat-icon\n class=\"cursor-pointer text-dark\"\n *ngIf=\"!element.submissions_count\"\n (click)=\"$event.stopPropagation(); deactivateChecksheet(element)\"\n >\n delete\n </mat-icon>\n\n <a\n *ngIf=\"!element.is_published\"\n [routerLink]=\"['../checksheet-view/', element?.id]\"\n (click)=\"$event.stopPropagation(); copyChecksheet(element)\"\n class=\"text-decoration-none text-dark\"\n matTooltip=\"Copy\"\n >\n <mat-icon>content_copy</mat-icon>\n </a>\n\n <mat-icon\n class=\"cursor-pointer text-dark\"\n *ngIf=\"element.is_published\"\n (click)=\"$event.stopPropagation(); unpublishChecksheet(element)\"\n matTooltip=\"Unpublish\"\n >\n unpublished\n </mat-icon>\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 mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n","import { Injectable } from '@angular/core';\nimport {DataManager, HttpService, TechlifyServiceBaseClass} from 'ngx-techlify-core';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChecksheetService extends TechlifyServiceBaseClass {\n constructor(httpService: HttpService, private dataManager: DataManager) {\n super(httpService, 'checksheets');\n }\n\n /**\n * Sent request to submit the Checksheet.\n *\n * @param submissionId\n * @param params\n */\n submit(submissionId: number, params?: any): Observable<any> {\n return this.http.put(\n 'api/checksheets/' + submissionId + '/submit',\n {},\n { params }\n );\n }\n\n /**\n * Send request to submit the Checksheet review.\n *\n * @param submissionId\n * @param params\n */\n review(submissionId: number, params?: any): Observable<any> {\n return this.http.put(\n 'api/checksheets/' + submissionId + '/review',\n {},\n { params }\n );\n }\n\n async getMechanicalIssues(submissionId: any) {\n return this.dataManager.GET(\n `api/checksheets/` + submissionId + `/mechanical-issues`\n );\n }\n\n async createMechanicalIssues(submissionId: any, data: any) {\n return this.dataManager.POST(\n `api/checksheets/` + submissionId + `/mechanical-issues`,\n data\n );\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { UntypedFormBuilder, Validators } from '@angular/forms';\nimport {\n FormValidatorService,\n DateValidator,\n TechlifyFormComponentInterface,\n AlertService,\n ActionPopupComponent,\n ActionPopup\n} from 'ngx-techlify-core';\nimport { ChecksheetService } from '../checksheet.service';\nimport { Observable } from 'rxjs';\nimport { ChecksheetSubmittableType } from '../checksheet-submittable.type';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-checksheet-submission-form',\n templateUrl: './checksheet-submission-form.component.html',\n styleUrls: ['./checksheet-submission-form.component.scss']\n})\nexport class ChecksheetSubmissionFormComponent\n extends TechlifyFormComponentInterface\n implements OnInit\n{\n @Input() submittableType!: ChecksheetSubmittableType;\n @Input() submittableId!: number;\n @Output() cancelled: EventEmitter<any> = new EventEmitter();\n @Output() saved: EventEmitter<any> = new EventEmitter();\n updateMode!: boolean;\n @Input() checksheetSubmission: any;\n isSaving: boolean = false;\n\n constructor(\n formValidatorService: FormValidatorService,\n private fb: UntypedFormBuilder,\n private checksheetSubmissionService: ChecksheetService,\n private alertService: AlertService,\n private dialog: MatDialog\n ) {\n super(formValidatorService);\n this.errorMessages = {\n date: {\n required: 'The date field is required.'\n },\n format_id: {\n required: 'The checksheet format is required.'\n }\n };\n\n this.createForm();\n }\n\n private createForm() {\n this.form = this.fb.group({\n id: [''],\n date: ['', Validators.compose([Validators.required, DateValidator()])],\n format_id: ['', Validators.required],\n submittable_type: ['fixed-asset'],\n submittable_id: ['', Validators.required],\n details: ['']\n });\n }\n\n ngOnInit() {\n // Set the submittable type and id and make it readonly\n if (this.submittableType && this.submittableId) {\n this.form.patchValue({\n submittable_type: this.submittableType,\n submittable_id: this.submittableId\n });\n }\n // Set the Checksheet to form\n if (this.checksheetSubmission) {\n this.updateMode = true;\n this.form.patchValue({\n ...this.checksheetSubmission,\n date: new Date(this.checksheetSubmission?.date)\n });\n }\n }\n\n submit() {\n if (this.form.invalid) {\n this.alertService.addAlert('Please check the form for errors', 'error');\n }\n const data: any = { ...this.form.value };\n const request: Observable<any> = this.updateMode\n ? this.checksheetSubmissionService.update(data)\n : this.checksheetSubmissionService.store(data);\n\n this.isSaving = true;\n request.subscribe({\n next: (response: any) => {\n this.isSaving = false;\n this.saved.emit(response?.item);\n },\n error: () => {\n this.isSaving = false;\n }\n });\n }\n\n submitChecksheet() {\n const dialogRef = this.dialog.open(ActionPopupComponent, {\n width: '400px',\n data: <ActionPopup>{\n title: 'Submit Checksheet',\n message: `Review the checksheet completely before submitting, you cannot alter once it is submitted. Are you sure to submit the Checksheet?`\n },\n autoFocus: false\n });\n\n dialogRef.afterClosed().subscribe(async (result) => {\n if (result) {\n // Action confirmed\n this.checksheetSubmissionService\n .submit(this.checksheetSubmission?.id)\n .subscribe({\n next: (response: any) => {\n this.alertService.addAlert(\n 'The Checksheet submitted!',\n 'success'\n );\n this.saved.emit(response?.item);\n }\n });\n }\n });\n }\n}\n","<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","import { DatePipe } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators\n} from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { DateValidator } from 'ngx-techlify-core';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport {\n ActionPopup,\n ActionPopupComponent,\n AlertService,\n DataManager,\n FormValidatorService\n} from 'ngx-techlify-core';\nimport { CurrentUserService } from 'ngx-techlify-core';\nimport { debounceTime } from 'rxjs/operators';\nimport { ChecksheetSubmissionFormComponent } from '../checksheet-submission-form/checksheet-submission-form.component';\n\nconst errorMessages: any = {\n date_from: {\n required: 'Start date is required',\n invalidDate: 'Invalid date'\n },\n date_to: {\n required: 'End date is required',\n invalidDate: 'Invalid date'\n }\n};\n@UntilDestroy()\n@Component({\n selector: 'app-checksheet-report',\n templateUrl: './checksheet-report.component.html',\n styleUrls: ['./checksheet-report.component.scss']\n})\nexport class ChecksheetReportComponent implements OnInit {\n checksheetSubmissionList: any[] = [];\n pageEvent: any = { page: 1, perPage: 25, lastPage: 1 };\n filters: any;\n @Input() vehicle: any;\n\n displayedColumns: any[] = [\n 'index',\n 'date',\n 'vehicle',\n 'created_at',\n 'reviewer.name',\n 'mechanical_issues',\n 'notes'\n ];\n\n filterFormGroup!: UntypedFormGroup;\n\n constructor(\n private spinnerService: NgxSpinnerService,\n private alertService: AlertService,\n private router: Router,\n private dataManager: DataManager,\n private currentUserService: CurrentUserService,\n private dialog: MatDialog,\n private formValidator: FormValidatorService,\n private fb: UntypedFormBuilder,\n private datePipe: DatePipe\n ) {\n this.filters = {};\n this.filters.sort_by = 'created_at|DESC';\n this.createForm();\n }\n\n get excelData(): any[] {\n if (this.checksheetSubmissionList.length <= 0) {\n return [];\n }\n\n return this.checksheetSubmissionList.map((item) => {\n return {\n Date: item?.date ? new Date(item?.date).toDateString() : '',\n Vehicle: item?.vehicle?.title_field,\n Driver: item?.creator?.name,\n 'Time Submitted': item?.created_at\n ? this.datePipe.transform(\n new Date(item?.created_at),\n 'yyyy-MM-dd HH:mm'\n )\n : '',\n 'Verified By ': item?.reviewer?.name,\n 'Mechanical Issues': ((item?.mechanical_issues || []) as []).reduce(\n (a: any, v: any) => `${a}${v?.details_without_html}, `,\n ''\n ),\n Notes: item?.comments\n };\n });\n }\n\n ngOnInit(): void {\n this.filterFormGroup.valueChanges\n .pipe(debounceTime(500), untilDestroyed(this))\n .subscribe((x) => {\n let model = this.filterFormGroup.value;\n model.date_from = model.date_from\n ? this.datePipe.transform(model.date_from, 'yyyy-MM-dd')\n : '';\n model.date_to = model.date_to\n ? this.datePipe.transform(model.date_to, 'yyyy-MM-dd')\n : '';\n this.filters = { ...this.filters, ...model };\n this.reload();\n });\n this.fetchChecksheetSubmissionsDetails();\n }\n\n private createForm() {\n this.filterFormGroup = this.fb.group({\n date_from: ['', Validators.compose([DateValidator()])],\n date_to: ['', Validators.compose([DateValidator()])],\n status_id: [''],\n model_id: [''],\n creator_id: [''],\n reviewer_id: [''],\n checksheet_format_id: [''],\n driver_assigned_customer_id: [''],\n vehicle_assigned_customer_id: ['']\n });\n }\n\n get currentUserId() {\n return this.currentUserService.getUser().id;\n }\n\n createChecksheetSubmission() {\n const dialogRef = this.dialog.open(\n ChecksheetSubmissionFormComponent,\n {\n width: '400px',\n data: {\n submission: {},\n vehicle: this.vehicle\n },\n autoFocus: false\n }\n );\n\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n //Action confirmed\n this.editChecksheetSubmission(result);\n }\n });\n }\n\n deactivateChecksheetSubmission(checksheetSubmission: any) {\n const dialogRef = this.dialog.open(ActionPopupComponent, {\n width: '400px',\n data: <ActionPopup>{\n title: 'Deactivate Submissions',\n message: `Are you sure to proceed deactivate?`\n },\n autoFocus: false\n });\n\n dialogRef.afterClosed().subscribe(async (result) => {\n if (result) {\n //Action confirmed\n try {\n this.spinnerService.show();\n await this.dataManager.DELETE(\n `api/checksheets/${checksheetSubmission.id}`\n );\n\n this.checksheetSubmissionList = this.checksheetSubmissionList.filter(\n (x) => x.id !== checksheetSubmission.id\n );\n } catch (error) {\n this.alertService.addAlert(\n 'Unable to deactivate Checksheet, try later',\n 'warn'\n );\n } finally {\n this.spinnerService.hide();\n }\n }\n });\n }\n\n editChecksheetSubmission(checksheetSubmission: any) {\n this.router.navigate(\n [\n 'vehicles/checksheets/checksheets/view',\n checksheetSubmission.id\n ],\n { queryParams: { is_vehicle_view: true } }\n );\n }\n\n viewChecksheetSubmission(checksheetSubmission: any) {\n this.router.navigate([\n 'vehicles/checksheets/checksheets-view',\n checksheetSubmission.id\n ]);\n }\n\n reviewChecksheetSubmission(checksheetSubmission: any) {\n this.router.navigate([\n 'vehicles/checksheets/checksheets/review',\n checksheetSubmission.id\n ]);\n }\n\n onScroll() {\n if (this.pageEvent.page < this.pageEvent.lastPage) {\n this.pageEvent.page += 1;\n }\n this.fetchChecksheetSubmissionsDetails();\n }\n\n async fetchChecksheetSubmissionsDetails() {\n this.spinnerService.show();\n if (this.vehicle) {\n this.filters.model_id = this.vehicle.id;\n }\n\n try {\n const result = await this.dataManager.GET(`api/checksheets`, {\n ...this.pageEvent,\n ...this.filters\n });\n this.checksheetSubmissionList = this.checksheetSubmissionList.concat(\n result.data\n );\n this.pageEvent.page = result.current_page;\n this.pageEvent.lastPage = result.last_page;\n } catch (error) {\n this.alertService.addAlert(\n 'Unable to get Checksheets, try later',\n 'warn'\n );\n } finally {\n this.spinnerService.hide();\n }\n }\n\n reload() {\n this.pageEvent = { page: 1, perPage: 25, lastPage: 1 };\n this.checksheetSubmissionList = [];\n this.fetchChecksheetSubmissionsDetails();\n }\n\n getFieldValue(field: string) {\n return this.filterFormGroup.get(field)?.value;\n }\n\n resetFieldValue(field: string, event: any) {\n event.stopPropagation();\n this.filterFormGroup.get(field)?.setValue('');\n }\n\n /** Method to evaluate form fields*/\n isFieldValid(field: string) {\n return this.formValidator.isFieldValid(field, this.filterFormGroup, true);\n }\n /** Method to find error in form fields*/\n getErrorMessage(field: string) {\n return this.formValidator.getErrorMessage(\n field,\n this.filterFormGroup,\n errorMessages\n );\n }\n}\n","<div\n fxLayout=\"column\"\n fxLayoutAlign=\"start\"\n fxLayoutGap=\"1.5rem\"\n class=\"mat-typography m-4\"\n>\n <div fxLayout fxLayoutAlign=\"center center\">\n <h3 class=\"m-0 font-weight-bold mr-3\">\n Checksheet Report\n\n <app-export-excel-button\n class=\"ml-2\"\n elementId=\"pdfable-section\"\n name=\"checksheet-report-download\"\n [data]=\"excelData\"\n >\n </app-export-excel-button>\n </h3>\n </div>\n\n <form\n fxLayout=\"row wrap d-print-none\"\n fxLayoutGap=\"1rem\"\n [formGroup]=\"filterFormGroup\"\n >\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"picker\"\n placeholder=\"Start Date (MM/DD/YYYY)\"\n formControlName=\"date_from\"\n autocomplete=\"off\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n <mat-error *ngIf=\"isFieldValid('date_from')\"\n >{{ getErrorMessage('date_from') }}\n </mat-error>\n <button\n mat-button\n *ngIf=\"getFieldValue('date_from')\"\n matSuffix\n mat-icon-button\n (click)=\"resetFieldValue('date_from', $event)\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"p2\"\n placeholder=\"End Date (MM/DD/YYYY)\"\n formControlName=\"date_to\"\n autocomplete=\"off\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"p2\"></mat-datepicker-toggle>\n <mat-datepicker #p2></mat-datepicker>\n <mat-error *ngIf=\"isFieldValid('date_to')\"\n >{{ getErrorMessage('date_to') }}\n </mat-error>\n <button\n mat-button\n *ngIf=\"getFieldValue('date_to')\"\n matSuffix\n mat-icon-button\n (click)=\"resetFieldValue('date_to', $event)\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Status</mat-label>\n <app-searchable-selector\n formControlName=\"status_id\"\n apiUrl=\"api/checksheet-submission-statuses\"\n [enableSearch]=\"false\"\n >\n </app-searchable-selector>\n <mat-icon\n matSuffix\n *ngIf=\"getFieldValue('status_id')\"\n (click)=\"resetFieldValue('status_id', $event)\"\n >\n close</mat-icon\n >\n </mat-form-field>\n\n <mat-form-field *ngIf=\"!vehicle\">\n <mat-label>Vehicle</mat-label>\n <app-searchable-selector\n formControlName=\"model_id\"\n apiUrl=\"api/vehicles\"\n [enableSearch]=\"true\"\n titleField=\"title_field\"\n [sort]=\"false\"\n >\n </app-searchable-selector>\n <mat-icon\n matSuffix\n *ngIf=\"getFieldValue('model_id')\"\n (click)=\"resetFieldValue('model_id', $event)\"\n >\n close</mat-icon\n >\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Creator</mat-label>\n <app-searchable-selector\n formControlName=\"creator_id\"\n apiUrl=\"api/users\"\n [enableSearch]=\"true\"\n titleField=\"name\"\n >\n </app-searchable-selector>\n <mat-icon\n matSuffix\n *ngIf=\"getFieldValue('creator_id')\"\n (click)=\"resetFieldValue('creator_id', $event)\"\n >\n close</mat-icon\n >\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Reviewer</mat-label>\n <app-searchable-selector\n formControlName=\"reviewer_id\"\n apiUrl=\"api/users\"\n [enableSearch]=\"true\"\n titleField=\"name\"\n >\n </app-searchable-selector>\n <mat-icon\n matSuffix\n *ngIf=\"getFieldValue('reviewer_id')\"\n (click)=\"resetFieldValue('reviewer_id', $event)\"\n >\n close</mat-icon\n >\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Checksheet Format</mat-label>\n <app-searchable-selector\n formControlName=\"checksheet_format_id\"\n apiUrl=\"api/checksheet-formats?is_published=true\"\n [enableSearch]=\"true\"\n >\n </app-searchable-selector>\n <mat-icon\n matSuffix\n *ngIf=\"getFieldValue('checksheet_format_id')\"\n (click)=\"resetFieldValue('checksheet_format_id', $event)\"\n >\n close</mat-icon\n >\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Vehicle Assigned Customer</mat-label>\n <app-searchable-selector\n formControlName=\"vehicle_assigned_customer_id\"\n apiUrl=\"api/customers\"\n [enableSearch]=\"true\"\n titleField=\"name\"\n >\n </app-searchable-selector>\n <mat-icon\n matSuffix\n *ngIf=\"getFieldValue('vehicle_assigned_customer_id')\"\n (click)=\"resetFieldValue('vehicle_assigned_customer_id', $event)\"\n >\n close</mat-icon\n >\n </mat-form-field>\n\n <!-- <mat-form-field>\n <mat-label>Driver Assigned Customer</mat-label>\n <app-searchable-selector formControlName=\"driver_assigned_customer_id\" apiUrl=\"api/customers\"\n [enableSearch]=\"true\" titleField=\"name\">\n </app-searchable-selector>\n <mat-icon matSuffix *ngIf=\"getFieldValue('driver_assigned_customer_id')\"\n (click)=\"resetFieldValue('driver_assigned_customer_id', $event)\">\n close</mat-icon>\n </mat-form-field> -->\n </form>\n\n <div\n id=\"pdfable-section\"\n class=\"scroll-container\"\n infiniteScroll\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\"\n [scrollWindow]=\"false\"\n >\n <table\n mat-table\n [dataSource]=\"checksheetSubmissionList\"\n class=\"w-100\"\n multiTemplateDataRows\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 <!-- 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 : 'mediumDate' }}\n </td>\n </ng-container>\n\n <!-- Vehicle Column -->\n <ng-container matColumnDef=\"vehicle\">\n <th mat-header-cell *matHeaderCellDef>Vehicle</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element.vehicle?.title_field }}\n </td>\n </ng-container>\n\n <!-- Category Column -->\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef>Submitted On</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element.created_at | date : 'mediumDate' }}\n {{ element.created_at | date : 'shortTime' }} <br />\n <small>by {{ element.creator?.name }}</small>\n </td>\n </ng-container>\n\n <!-- Category Column -->\n <ng-container matColumnDef=\"reviewer.name\">\n <th mat-header-cell *matHeaderCellDef>Verified By</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element.reviewer?.name }} <br />\n <small *ngIf=\"element.reviewed_at\">\n on {{ element.reviewed_at | date : 'mediumDate' }}\n {{ element.reviewed_at | date : 'shortTime' }}\n </small>\n </td>\n </ng-container>\n\n <!-- Category Column -->\n <ng-container matColumnDef=\"mechanical_issues\">\n <th mat-header-cell *matHeaderCellDef>Mechanical Issues</th>\n <td mat-cell *matCellDef=\"let element\" class=\"w-50\">\n <ul>\n <li\n *ngFor=\"let issue of element?.mechanical_issues\"\n [innerHTML]=\"issue.details_without_html\"\n ></li>\n </ul>\n </td>\n </ng-container>\n\n <!-- Category Column -->\n <ng-container matColumnDef=\"notes\">\n <th mat-header-cell *matHeaderCellDef>Notes</th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element.comments }}\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AlertService } from 'ngx-techlify-core';\nimport { Router } from '@angular/router';\nimport { ChecksheetSubmittableType } from '../checksheet-submittable.type';\n\n@Component({\n selector: 'app-checksheet-form-button',\n templateUrl: './checksheet-form-button.component.html',\n styleUrls: ['./checksheet-form-button.component.scss']\n})\nexport class ChecksheetFormButtonComponent {\n @Input() submittableType: ChecksheetSubmittableType = 'fixed-asset';\n @Input() submittableId!: number;\n @Output() saved: EventEmitter<any> = new EventEmitter<any>();\n\n constructor(\n public matDialog: MatDialog,\n private alertService: AlertService,\n private router: Router\n ) {}\n\n /**\n * Open Checksheet form.\n *\n * @param templateRef\n */\n openForm(templateRef: TemplateRef<any>) {\n this.matDialog.open(templateRef, { width: '500px' });\n }\n\n /**\n * Handle Checksheet save event.\n *\n * @param checksheetSubmission\n */\n onSaved(checksheetSubmission: any) {\n this.saved.emit(checksheetSubmission);\n this.matDialog.closeAll();\n this.alertService.addAlert(\n 'The Checksheet is saved successfully!',\n 'success'\n );\n\n this.router.navigate([\n 'fixed-assets/checksheets/checksheets',\n checksheetSubmission?.id,\n 'view'\n ]);\n }\n}\n","<span\n *ngIf=\"submittableId\"\n class=\"material-symbols-outlined text-secondary\"\n matTooltip=\"Add Checksheet\"\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","import {\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ChecksheetService } from '../checksheet.service';\n\n@Component({\n selector: 'app-checksheet-submission-delete-button',\n templateUrl: './checksheet-submission-delete-button.component.html',\n styleUrls: ['./checksheet-submission-delete-button.component.scss']\n})\nexport class ChecksheetSubmissionDeleteButtonComponent {\n @Input() checksheetSubmission: any;\n @Output() deleted: EventEmitter<any> = new EventEmitter<any>();\n isDeleting: boolean = false;\n\n constructor(\n private matDialog: MatDialog,\n private checksheetSubmissionService: ChecksheetService\n ) {}\n\n /**\n * Show delete confirmation dialog.\n *\n * @param templateRef\n */\n openDialog(templateRef: TemplateRef<any>) {\n this.matDialog.open(templateRef, { width: '400px' });\n }\n\n /**\n * Send request to delete the model.\n */\n deleteModel() {\n this.isDeleting = true;\n this.checksheetSubmissionService\n .delete(this.checksheetSubmission)\n .subscribe({\n next: () => {\n this.isDeleting = false;\n this.deleted.emit();\n this.matDialog.closeAll();\n },\n error: () => (this.isDeleting = false)\n });\n }\n}\n","<mat-icon class=\"cursor-pointer\" (click)=\"openDialog(deleteTemplate)\">\n delete\n</mat-icon>\n\n<ng-template #deleteTemplate>\n <h3 mat-dialog-title>Delete Checksheet</h3>\n <div mat-dialog-content>\n <p>Are you sure you want to delete the Checksheet?</p>\n </div>\n <div\n mat-dialog-actions\n class=\"d-flex justify-content-end gap-2 align-items-center\"\n >\n <button\n [disabled]=\"isDeleting\"\n type=\"button\"\n mat-flat-button\n mat-dialog-close\n >\n Cancel\n </button>\n <button\n [disabled]=\"isDeleting\"\n type=\"button\"\n (click)=\"deleteModel()\"\n mat-raised-button\n color=\"warn\"\n >\n Delete\n </button>\n </div>\n</ng-template>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef\n} from '@angular/core';\nimport { AlertService, CredentialsService, User } from 'ngx-techlify-core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ChecksheetService } from '../checksheet.service';\n\n@Component({\n selector: 'app-checksheet-review-button',\n templateUrl: './checksheet-review-button.component.html',\n styleUrls: ['./checksheet-review-button.component.scss']\n})\nexport class ChecksheetReviewButtonComponent {\n @Input() submission: any;\n @Input() viewType: 'icon' | 'button' = 'icon';\n @Input() requestParams!: { with: string };\n @Output() reviewed: EventEmitter<any> = new EventEmitter<any>();\n user: User;\n isWorking: boolean = false;\n\n constructor(\n private matDialog: MatDialog,\n private credentialsService: CredentialsService,\n private checksheetSubmissionService: ChecksheetService,\n private alertService: AlertService\n ) {\n this.user = this.credentialsService.credentials?.user;\n }\n\n /**\n * Show the review dialog.\n *\n * @param templateRef\n */\n openDialog(templateRef: TemplateRef<any>) {\n this.matDialog.open(templateRef, { width: '400px' });\n }\n\n /**\n * Review checksheet.\n */\n reviewChecksheet() {\n this.isWorking = true;\n this.checksheetSubmissionService\n .review(this.submission?.id, this.requestParams)\n .subscribe({\n next: (response: any) => {\n this.matDialog.closeAll();\n this.isWorking = false;\n this.reviewed.next(response?.item);\n this.alertService.addAlert(\n 'The Checksheet marked as reviewed.',\n 'success'\n );\n },\n error: () => (this.isWorking = false)\n });\n }\n}\n","<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</h3>\n <div mat-dialog-content>\n <p>Are you sure you want to mark the Checksheet 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","import { Component, OnInit } from '@angular/core';\nimport {FormGroup, UntypedFormBuilder} from '@angular/forms';\nimport {\n RequestHelperService,\n TechlifyListingControllerInterface,\n Timeline,\n TimelineValue,\n AlertService\n} from 'ngx-techlify-core';\nimport { UntilDestroy } from '@ngneat/until-destroy';\nimport { ChecksheetService } from '../checksheet.service';\nimport {debounceTime, distinctUntilChanged} from 'rxjs';\nimport moment from 'moment';\nimport {ActivatedRoute} from \"@angular/router\";\nimport {Sort} from \"@angular/material/sort\";\n\n@UntilDestroy()\n@Component({\n selector: 'app-checksheet-list',\n templateUrl: './checksheet-list.component.html',\n styleUrls: ['./checksheet-list.component.scss']\n})\nexport class ChecksheetListComponent\n extends TechlifyListingControllerInterface\n implements OnInit\n{\n displayedColumns: any[] = [\n 'index',\n 'date',\n 'format.title',\n 'for',\n 'creator.name',\n 'reviewer.name',\n 'status.title',\n 'actions'\n ];\n with: string = 'format,creator,reviewer,status,submittable';\n\n constructor(\n private alertService: AlertService,\n private fb: UntypedFormBuilder,\n private checksheetSubmissionService: ChecksheetService,\n private requestHelperService: RequestHelperService,\n private activatedRoute: ActivatedRoute\n ) {\n super();\n this.createForm();\n }\n\n ngOnInit(): void {\n this.updateFormWithQueryParams();\n this.subscribeToFormChanges();\n this.subscribeToRouteChanges();\n }\n\n private createForm() {\n this.filterForm = this.fb.group({\n search: [''],\n duration: [Timeline.ALL],\n date_from: [''],\n date_to: [''],\n status_ids: [''],\n creator_ids: [''],\n reviewer_ids: [''],\n format_ids: [''],\n sort_by: ['created_at|DESC'],\n with: [this.with]\n });\n }\n\n loadData() {\n this.isWorking = true;\n const params: any = {\n ...this.requestHelperService.convertToFormData(this.filterForm.value),\n perPage: this.perPage,\n page: this.page\n };\n this.checksheetSubmissionService.index(params).subscribe({\n next: (response: any) => {\n this.models = this.models.concat(response?.data);\n this.lastPage = response?.last_page;\n this.isWorking = false;\n },\n error: () => (this.isWorking = false)\n });\n }\n\n onDurationChange(timelineValue: TimelineValue) {\n let { date_to, date_from } = timelineValue;\n this.filterForm.patchValue({\n date_from: date_from ? moment(date_from).format('YYYY-MM-DD') : '',\n date_to: date_to ? moment(date_to).format('YYYY-MM-DD') : ''\n });\n }\n\n /**\n * Handle Checksheet delete event.\n */\n onDeleted() {\n this.alertService.addAlert(\n 'Checksheet deleted successfully!',\n 'success'\n );\n this.reload();\n }\n\n private updateFormWithQueryParams(): void {\n this.requestHelperService.updateFormWithQueryParams(\n this.filterForm,\n {}\n );\n }\n\n private subscribeToFormChanges(): void {\n (this.filterForm as FormGroup).valueChanges.pipe(\n debounceTime(800)\n ).subscribe({\n next: () => {\n this.requestHelperService.updateQueryParams(\n this.requestHelperService.convertToFormData(this.filterForm.value)\n );\n }\n });\n }\n\n private subscribeToRouteChanges(): void {\n this.activatedRoute.queryParams\n .pipe(debounceTime(500),\n distinctUntilChanged())\n .subscribe(() => {\n this.reload();\n });\n }\n\n onSortChange(sort: Sort) {\n let {active, direction} = sort;\n if (!active) active = 'id';\n if (!direction) direction = 'desc';\n this.filterForm.get('sort_by')?.setValue(active + '|' + direction);\n }\n}\n","<mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-2\">\n <div class=\"d-flex justify-content-center align-items-center gap-2\">\n <h3 class=\"m-0 font-weight-bold\">Checksheets</h3>\n <app-checksheet-form-button class=\"mt-1\"></app-checksheet-form-button>\n <a\n [routerLink]=\"['checksheet-formats']\"\n mat-raised-button\n >\n Formats\n </a>\n </div>\n\n <form fxLayout=\"row wrap\" fxLayoutGap=\"1rem\" [formGroup]=\"filterForm\">\n <mat-form-field>\n <mat-label>Search</mat-label>\n <input matInput formControlName=\"search\" placeholder=\"Search Checksheets\">\n </mat-form-field>\n\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>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=\"Checksheets\"\n matSort\n (matSortChange)=\"onSortChange($event)\"\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 <!-- Format Column -->\n <ng-container matColumnDef=\"format.title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>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 mat-sort-header>Creator</th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-0\">{{ element?.creator?.name }}</p>\n <small class=\"text-secondary\">{{ element?.created_at | date }}</small>\n </td>\n </ng-container>\n\n <!-- Reviewer Column -->\n <ng-container matColumnDef=\"reviewer.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Reviewer</th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-0\">{{ element?.reviewer?.name }}</p>\n <small class=\"text-secondary\" *ngIf=\"element?.reviewed_at\">{{ element?.reviewed_at | date }}</small>\n </td>\n </ng-container>\n\n <!-- For Column -->\n <ng-container matColumnDef=\"for\">\n <th mat-header-cell *matHeaderCellDef>For</th>\n <td mat-cell *matCellDef=\"let element\">\n <a\n class=\"mb-0 text-decoration-none text-dark\"\n *ngIf=\"element?.submittable\"\n [routerLink]=\"['/fixed-assets/', element?.submittable_id, 'read']\"\n >\n {{ element?.submittable?.name }}\n </a> <br>\n <small class=\"text-secondary\" *ngIf=\"element?.submittable_type\">{{ element?.submittable_type }}</small>\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 mat-sort-header>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]=\"['../checksheets-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-review-button\n [submission]=\"element\"\n [requestParams]=\"{ with: this.with }\"\n (reviewed)=\"reload()\"\n ></app-checksheet-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","import { Location } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ChecksheetService } from '../checksheet.service';\n\n@Component({\n selector: 'app-checksheet-node-view',\n templateUrl: './checksheet-node-view.component.html',\n styleUrls: ['./checksheet-node-view.component.scss']\n})\nexport class ChecksheetNodeViewComponent implements OnInit {\n submission: any;\n submissionId!: number;\n isLoading: boolean = false;\n with: string =\n 'format.questions.answers,format.questions.type,creator,reviewer,status';\n\n constructor(\n public location: Location,\n private route: ActivatedRoute,\n private checksheetSubmissionService: ChecksheetService\n ) {\n this.submissionId = parseInt(this.route.snapshot.params?.['submissionId']);\n }\n\n ngOnInit(): void {\n if (this.submissionId) {\n this.loadSubmission();\n }\n }\n\n private loadSubmission() {\n const params: any = {\n with: this.with\n };\n\n this.isLoading = true;\n this.checksheetSubmissionService.show(this.submissionId, params).subscribe({\n next: (response: any) => {\n this.submission = response?.item;\n this.isLoading = false;\n },\n error: () => (this.isLoading = false)\n });\n }\n\n /**\n * On Checksheet reviewed.\n *\n * @param model\n */\n onUpdated(model: any) {\n this.submission = model;\n }\n}\n","<div\n fxLayout=\"column\"\n fxLayoutGap=\"0.5rem\"\n id=\"pdfable-section\"\n *ngIf=\"submission\"\n>\n <div fxLayout fxLayoutAlign=\"start center\">\n <h2 class=\"m-auto\">Checksheet</h2>\n </div>\n\n <div fxLayout=\"column\">\n <mat-card class=\"w-100\">\n <h4>Date: {{ submission?.date | date }}</h4>\n <h4>Format: {{ submission?.format?.title }}</h4>\n <h4>Creator: {{ submission?.creator?.name }}</h4>\n <h4 *ngIf=\"submission?.reviewer\">\n Reviewer: {{ submission?.reviewer?.name }}\n </h4>\n <h4 *ngIf=\"submission?.status\">\n Status: {{ submission?.status?.title }}\n </h4>\n\n <div\n class=\"my-2 d-print-none\"\n fxLayout=\"row\"\n fxLayoutGap=\"5px\"\n fxLayoutAlign=\"center\"\n >\n <app-checksheet-review-button\n [submission]=\"submission\"\n viewType=\"button\"\n [requestParams]=\"{ with: this.with }\"\n (reviewed)=\"onUpdated($event)\"\n ></app-checksheet-review-button>\n </div>\n </mat-card>\n </div>\n\n <div fxLayout=\"column\" *ngIf=\"submission\">\n <h2>Submission</h2>\n <app-checksheet-question-list\n class=\"w-100 pt-0 pr-4\"\n [submission]=\"submission\"\n [disableInput]=\"true\"\n >\n </app-checksheet-question-list>\n </div>\n\n <app-note-list\n *ngIf=\"submission?.id\"\n [relatedModelId]=\"submission?.id\"\n modelType=\"ChecksheetSubmission\"\n ></app-note-list>\n</div>\n\n<mat-progress-bar *ngIf=\"isLoading\" mode=\"indeterminate\"></mat-progress-bar>\n","import { Location } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormGroup,\n Validators\n} from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DateValidator } from 'ngx-techlify-core';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport {\n ActionPopup,\n ActionPopupComponent,\n AlertService,\n DataManager,\n FormValidatorService,\n ErrorHandlerService\n} from 'ngx-techlify-core';\nimport { ChecksheetService } from '../checksheet.service';\n\nconst errorMessages: any = {\n date: {\n required: 'Date is required',\n invalid: 'Invalid date'\n },\n model_id: {\n required: 'Vehicle is required'\n },\n checksheet_format_id: {\n required: 'Checksheet Format is required'\n },\n status_id: {\n required: 'Status is required'\n }\n};\n\n@Component({\n selector: 'app-checksheet-view',\n templateUrl: './checksheet-view.component.html',\n styleUrls: ['./checksheet-view.component.scss']\n})\nexport class ChecksheetViewComponent implements OnInit {\n checksheetSubmissionForm!: UntypedFormGroup;\n submission: any;\n selectedFormat: any;\n submissionId: number;\n\n constructor(\n private formValidatorService: FormValidatorService,\n private fb: UntypedFormBuilder,\n private spinnerService: NgxSpinnerService,\n private alertService: AlertService,\n public location: Location,\n private errorHandler: ErrorHandlerService,\n private dataManager: DataManager,\n private dialog: MatDialog,\n private route: ActivatedRoute,\n private checksheetSubmissionService: ChecksheetService\n ) {\n this.submissionId = parseInt(this.route.snapshot.params['submissionId']);\n this.createForm();\n }\n\n ngOnInit(): void {\n if (this.submissionId) {\n const params: any = {\n with: 'format.questions.type,format.questions.answers'\n };\n this.checksheetSubmissionService\n .show(this.submissionId, params)\n .subscribe({\n next: (response: any) => {\n this.submission = response?.item;\n this.selectedFormat = this.submission?.format;\n }\n });\n }\n }\n\n private createForm() {\n this.checksheetSubmissionForm = this.fb.group({\n id: [''],\n date: ['', Validators.compose([Validators.required, DateValidator()])],\n reviewer_id: [''],\n model_id: ['', Validators.required],\n model: ['vehicle'],\n status_id: [''],\n comments: [''],\n checksheet_format_id: ['', Validators.required]\n });\n }\n\n redirectBack() {\n this.location.back();\n }\n\n /**Method to evaluate form fields*/\n isFieldValid(field: string) {\n return this.formValidatorService.isFieldValid(\n field,\n this.checksheetSubmissionForm\n );\n }\n\n /**Method to find error in form fields*/\n getErrorMessage(field: string) {\n return this.formValidatorService.getErrorMessage(\n field,\n this.checksheetSubmissionForm,\n errorMessages\n );\n }\n\n async submit() {\n if (this.checksheetSubmissionForm.valid) {\n this.spinnerService.show();\n let result: any;\n const model = this.checksheetSubmissionForm.value;\n const submission = (\n await this.dataManager.GET(\n `api/checksheets/${this.submission.id}`\n )\n ).item;\n //Submission Validation for MSQYN\n let validSubmission = true;\n ((submission.format.questions as []) || [])\n .filter((question: any) => question.type_id === 7)\n .forEach((question: any) => {\n if (\n question?.submitted_answers == null ||\n ((question?.answers as []) || []).length >\n ((question?.submitted_answer?.msq_answer as []) || []).length\n ) {\n this.alertService.addAlert(\n `Answer all the required Yes/No Question`,\n 'warn'\n );\n validSubmission = false;\n return;\n }\n });\n if (!validSubmission) {\n return;\n }\n try {\n result = await this.dataManager.PUT(\n `api/checksheets/${model.id}`,\n model\n );\n this.alertService.addAlert(\n 'Checksheet saved successfully',\n 'success'\n );\n } catch (error) {\n this.errorHandler.handleError(\n error,\n 'Unable to save Checksheet, try later'\n );\n } finally {\n this.spinnerService.hide();\n }\n }\n }\n\n onSaved() {\n this.alertService.addAlert(\n 'Checksheet saved successfully!',\n 'success'\n );\n this.redirectBack();\n }\n}\n","<app-checksheet-form [disableInput]=\"false\"></app-checksheet-form>\n","import {Location} from '@angular/common';\nimport {Component, OnInit} from '@angular/core';\nimport {UntypedFormBuilder, UntypedFormGroup, Validators} from '@angular/forms';\nimport {MatDialog} from '@angular/material/dialog';\nimport {ActivatedRoute} from '@angular/router';\nimport {AlertService, DataManager, DateValidator, ErrorHandlerService, FormValidatorService} from 'ngx-techlify-core';\nimport {NgxSpinnerService} from 'ngx-spinner';\nimport {ChecksheetService} from \"../checksheet.service\";\n\nconst errorMessages: any = {\n date: {\n required: 'Date is required',\n invalid: 'Invalid date'\n },\n model_id: {\n required: 'Vehicle is required'\n },\n checksheet_format_id: {\n required: 'Checksheet Format is required'\n },\n status_id: {\n required: 'Status is required'\n }\n};\n\n@Component({\n selector: 'app-checksheet-submission-view',\n templateUrl: './checksheet-submission-view.component.html',\n styleUrls: ['./checksheet-submission-view.component.scss']\n})\nexport class ChecksheetSubmissionViewComponent implements OnInit {\n checksheetSubmissionForm!: UntypedFormGroup;\n submission: any;\n selectedFormat: any;\n submissionId: number;\n\n constructor(\n private formValidatorService: FormValidatorService,\n private fb: UntypedFormBuilder,\n private spinnerService: NgxSpinnerService,\n private alertService: AlertService,\n public location: Location,\n private errorHandler: ErrorHandlerService,\n private dataManager: DataManager,\n private dialog: MatDialog,\n private route: ActivatedRoute,\n private service: ChecksheetService\n ) {\n this.submissionId = parseInt(this.route.snapshot.params['submissionId']);\n this.createForm();\n }\n\n ngOnInit(): void {\n if (this.submissionId) {\n const params: any = {\n with: 'format.questions.type,format.questions.answers'\n };\n this.service\n .show(this.submissionId, params)\n .subscribe({\n next: (response: any) => {\n this.submission = response?.item;\n this.selectedFormat = this.submission?.format;\n }\n });\n }\n }\n\n redirectBack() {\n this.location.back();\n }\n\n /**Method to evaluate form fields*/\n isFieldValid(field: string) {\n return this.formValidatorService.isFieldValid(\n field,\n this.checksheetSubmissionForm\n );\n }\n\n /**Method to find error in form fields*/\n getErrorMessage(field: string) {\n return this.formValidatorService.getErrorMessage(\n field,\n this.checksheetSubmissionForm,\n errorMessages\n );\n }\n\n async submit() {\n if (this.checksheetSubmissionForm.valid) {\n this.spinnerService.show();\n let result: any;\n const model = this.checksheetSubmissionForm.value;\n const submission = (\n await this.dataManager.GET(\n `api/checksheet-submissions/${this.submission.id}`\n )\n ).item;\n //Submission Validation for MSQYN\n let validSubmission = true;\n ((submission.format.questions as []) || [])\n .filter((question: any) => question.type_id === 7)\n .forEach((question: any) => {\n if (\n question?.submitted_answers == null ||\n ((question?.answers as []) || []).length >\n ((question?.submitted_answer?.msq_answer as []) || []).length\n ) {\n this.alertService.addAlert(\n `Answer all the required Yes/No Question`,\n 'warn'\n );\n validSubmission = false;\n return;\n }\n });\n if (!validSubmission) {\n return;\n }\n try {\n result = await this.dataManager.PUT(\n `api/checksheet-submissions/${model.id}`,\n model\n );\n this.alertService.addAlert(\n 'Checksheet Submission saved successfully',\n 'success'\n );\n } catch (error) {\n this.errorHandler.handleError(\n error,\n 'Unable to save checksheet submission, try later'\n );\n } finally {\n this.spinnerService.hide();\n }\n }\n }\n\n onSaved() {\n this.alertService.addAlert(\n 'Checksheet submission saved successfully!',\n 'success'\n );\n this.redirectBack();\n }\n\n private createForm() {\n this.checksheetSubmissionForm = this.fb.group({\n id: [''],\n date: ['', Validators.compose([Validators.required, DateValidator()])],\n reviewer_id: [''],\n model_id: ['', Validators.required],\n model: ['vehicle'],\n status_id: [''],\n comments: [''],\n checksheet_format_id: ['', Validators.required]\n });\n }\n}\n","<div>\n <h2 class=\"m-0\">Checksheet</h2>\n\n <div class=\"d-flex justify-content-start align-items-start gap-1\">\n <app-checksheet-question-list\n *ngIf=\"submission\"\n class=\"w-100 p-4\"\n [submission]=\"submission\"\n style=\"width: calc(70% - 1rem)\"\n >\n </app-checksheet-question-list>\n <div style=\"width: calc(30% - 1rem)\">\n <mat-card class=\"w-100\" *ngIf=\"submission\">\n <app-checksheet-submission-form\n (cancelled)=\"redirectBack()\"\n (saved)=\"onSaved()\"\n [checksheetSubmission]=\"submission\"\n ></app-checksheet-submission-form>\n </mat-card>\n <mat-card class=\"mt-2 p-0\" *ngIf=\"submission?.id\">\n <app-note-list\n [relatedModelId]=\"submission?.id\"\n modelType=\"ChecksheetSubmission\"\n ></app-note-list>\n </mat-card>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { ChecksheetFormComponent } from './checksheet-form/checksheet-form.component';\nimport { ChecksheetFormatListComponent } from './checksheet-format-list/checksheet-format-list.component';\nimport { ChecksheetReportComponent } from './checksheet-report/checksheet-report.component';\nimport { ChecksheetListComponent } from './checksheet-list/checksheet-list.component';\nimport { ChecksheetNodeViewComponent } from './checksheet-node-view/checksheet-node-view.component';\nimport { ChecksheetViewComponent } from './checksheet-view/checksheet-view.component';\nimport {ChecksheetSubmissionViewComponent} from \"./checksheet-submission-view/checksheet-submission-view.component\";\n\nconst routes: Routes = [\n { path: 'checksheet-format-list', component: ChecksheetFormatListComponent },\n { path: 'checksheet-report', component: ChecksheetReportComponent },\n { path: 'checksheet-form', component: ChecksheetFormComponent },\n { path: 'checksheet-view/:checksheetId', component: ChecksheetViewComponent },\n { path: 'checksheet-form/:checksheetId', component: ChecksheetFormComponent },\n {\n path: 'checksheets',\n component: ChecksheetListComponent\n },\n {\n path: 'checksheets-view/:submissionId',\n component: ChecksheetNodeViewComponent\n },\n {\n path: 'checksheets/:submissionId/view',\n component: ChecksheetSubmissionViewComponent\n },\n { path: '**', redirectTo: 'checksheet-format-list', pathMatch: 'full' }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class ChecksheetRoutingModule {}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { ErrorHandlerService } from 'ngx-techlify-core';\nimport { ChecksheetService } from '../checksheet.service';\n\n@Component({\n selector: 'app-mechanical-issue-form',\n templateUrl: './mechanical-issue-form.component.html',\n styleUrls: ['./mechanical-issue-form.component.scss']\n})\nexport class MechanicalIssueFormComponent implements OnInit {\n submission: any;\n mechanicalIssues: any;\n\n constructor(\n public dialogRef: MatDialogRef<MechanicalIssueFormComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n public service: ChecksheetService,\n private errorHandler: ErrorHandlerService,\n private spinnerService: NgxSpinnerService\n ) {}\n\n ngOnInit(): void {\n if (!this.data?.submission) {\n // do some error\n return;\n }\n\n this.submission = this.data.submission;\n\n this.loadMechanicalIssues();\n }\n\n async loadMechanicalIssues() {\n let result = await this.service.getMechanicalIssues(this.submission.id);\n console.log(result);\n this.mechanicalIssues = result.data;\n this.mechanicalIssues.forEach((element: any) => {\n element.is_selected = true;\n });\n }\n\n async submit() {\n let result;\n try {\n this.spinnerService.show();\n let data = {\n submission_id: this.submission,\n issues: this.mechanicalIssues\n };\n result = await this.service.createMechanicalIssues(\n this.submission.id,\n data\n );\n } catch (error) {\n this.errorHandler.handleError(error);\n } finally {\n this.spinnerService.hide();\n if (result) {\n this.dialogRef.close(result.item);\n }\n }\n }\n}\n","<div>\n <h4>Mechanical Issues Form</h4>\n <form>\n <div *ngFor=\"let issue of mechanicalIssues\">\n <mat-checkbox name=\"mechanicalIssues[]\" [(ngModel)]=\"issue.is_selected\">\n {{issue.question.label}}: {{issue.answer.value}}\n </mat-checkbox>\n </div>\n <div>\n <button mat-raised-button type=\"submit\" color=\"primary\" (click)=\"submit()\">Save</button>\n </div>\n </form>\n</div>","/*\n * This module imports and re-exports all Angular Material modules for convenience,\n * so only 1 module import is needed in your feature modules.\n * See https://material.angular.io/guide/getting-started#step-3-import-the-component-modules.\n *\n * To optimize your production builds, you should only import the components used in your app.\n */\n\nimport { NgModule } from '@angular/core';\nimport {\n MatCommonModule,\n MatLineModule,\n MatNativeDateModule,\n MatOptionModule,\n MatPseudoCheckboxModule,\n MatRippleModule\n} from '@angular/material/core';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatTreeModule } from '@angular/material/tree';\n\n@NgModule({\n exports: [\n MatAutocompleteModule,\n MatBadgeModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatCommonModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatLineModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatOptionModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatPseudoCheckboxModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSlideToggleModule,\n MatSliderModule,\n MatSnackBarModule,\n MatSortModule,\n MatStepperModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatTreeModule\n ]\n})\nexport class MaterialModule { }\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FlexLayoutModule} from '@angular/flex-layout';\nimport {MaterialModule} from './material.module';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {InfiniteScrollModule} from 'ngx-infinite-scroll';\nimport {RouterModule} from '@angular/router';\nimport {LoaderModule} from 'ngx-techlify-core';\nimport {NgxPermissionsModule} from 'ngx-permissions';\n\n@NgModule({\n imports: [\n FlexLayoutModule,\n MaterialModule,\n CommonModule\n ],\n exports: [\n FlexLayoutModule,\n MaterialModule,\n NgxPermissionsModule,\n FormsModule,\n ReactiveFormsModule,\n InfiniteScrollModule,\n RouterModule,\n LoaderModule\n ]\n})\nexport class SharedModule {\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AlertService } from 'ngx-techlify-core';\nimport { Router } from '@angular/router';\nimport { ChecksheetSubmittableType } from '../checksheet-submittable.type';\n\n@Component({\n selector: 'app-checksheet-submission-form-button',\n templateUrl: './checksheet-submission-form-button.component.html',\n styleUrls: ['./checksheet-submission-form-button.component.scss']\n})\nexport class ChecksheetSubmissionFormButtonComponent {\n @Input() submittableType: ChecksheetSubmittableType = 'fixed-asset';\n @Input() submittableId!: number;\n @Output() saved: EventEmitter<any> = new EventEmitter<any>();\n\n constructor(\n public matDialog: MatDialog,\n private alertService: AlertService,\n private router: Router\n ) {}\n\n /**\n * Open checksheet submission form.\n *\n * @param templateRef\n */\n openForm(templateRef: TemplateRef<any>) {\n this.matDialog.open(templateRef, { width: '500px' });\n }\n\n /**\n * Handle checksheet submission save event.\n *\n * @param checksheetSubmission\n */\n onSaved(checksheetSubmission: any) {\n this.saved.emit(checksheetSubmission);\n this.matDialog.closeAll();\n this.alertService.addAlert(\n 'The checksheet submission is saved successfully!',\n 'success'\n );\n\n this.router.navigate([\n 'fixed-assets/checksheets/checksheet-submissions',\n checksheetSubmission?.id,\n 'view'\n ]);\n }\n}\n","<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","import { Injectable } from '@angular/core';\nimport { HttpService, TechlifyServiceBaseClass } from 'ngx-techlify-core';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChecksheetSubmissionService extends TechlifyServiceBaseClass {\n constructor(httpService: HttpService) {\n super(httpService, 'checksheet-submissions');\n }\n\n /**\n * Sent request to submit the checksheet submission.\n *\n * @param submissionId\n * @param params\n */\n submit(submissionId: number, params?: any): Observable<any> {\n return this.http.put(\n 'api/checksheet-submissions/' + submissionId + '/submit',\n {},\n { params }\n );\n }\n\n /**\n * Send request to submit the checksheet submission review.\n *\n * @param submissionId\n * @param params\n */\n review(submissionId: number, params?: any): Observable<any> {\n return this.http.put(\n 'api/checksheet-submissions/' + submissionId + '/review',\n {},\n { params }\n );\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef\n} from '@angular/core';\nimport { AlertService, CredentialsService, User } from 'ngx-techlify-core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ChecksheetSubmissionService } from '../checksheet-submission.service';\n\n@Component({\n selector: 'app-checksheet-submission-review-button',\n templateUrl: './checksheet-submission-review-button.component.html',\n styleUrls: ['./checksheet-submission-review-button.component.scss']\n})\nexport class ChecksheetSubmissionReviewButtonComponent {\n @Input() submission: any;\n @Input() viewType: 'icon' | 'button' = 'icon';\n @Input() requestParams!: { with: string };\n @Output() reviewed: EventEmitter<any> = new EventEmitter<any>();\n user: User;\n isWorking: boolean = false;\n\n constructor(\n private matDialog: MatDialog,\n private credentialsService: CredentialsService,\n private checksheetSubmissionService: ChecksheetSubmissionService,\n private alertService: AlertService\n ) {\n this.user = this.credentialsService.credentials?.user;\n }\n\n /**\n * Show the review dialog.\n *\n * @param templateRef\n */\n openDialog(templateRef: TemplateRef<any>) {\n this.matDialog.open(templateRef, { width: '400px' });\n }\n\n /**\n * Review checksheet.\n */\n reviewChecksheet() {\n this.isWorking = true;\n this.checksheetSubmissionService\n .review(this.submission?.id, this.requestParams)\n .subscribe({\n next: (response: any) => {\n this.matDialog.closeAll();\n this.isWorking = false;\n this.reviewed.next(response?.item);\n this.alertService.addAlert(\n 'The checksheet submission marked as reviewed.',\n 'success'\n );\n },\n error: () => (this.isWorking = false)\n });\n }\n}\n","<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","import { Component, OnInit } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport {\n RequestHelperService,\n TechlifyListingControllerInterface,\n Timeline,\n TimelineValue,\n AlertService\n} from 'ngx-techlify-core';\nimport { UntilDestroy } from '@ngneat/until-destroy';\nimport { ChecksheetSubmissionService } from '../checksheet-submission.service';\nimport { debounceTime } from 'rxjs';\nimport moment from 'moment';\n\n@UntilDestroy()\n@Component({\n selector: 'app-checksheet-submission-list',\n templateUrl: './checksheet-submission-list.component.html',\n styleUrls: ['./checksheet-submission-list.component.scss']\n})\nexport class ChecksheetSubmissionListComponent\n extends TechlifyListingControllerInterface\n implements OnInit\n{\n displayedColumns: any[] = [\n 'index',\n 'date',\n 'format.title',\n 'creator.name',\n 'reviewer.name',\n 'status.title',\n 'actions'\n ];\n with: string = 'format,creator,reviewer,status';\n\n constructor(\n private alertService: AlertService,\n private fb: UntypedFormBuilder,\n private checksheetSubmissionService: ChecksheetSubmissionService,\n private requestHelperService: RequestHelperService\n ) {\n super();\n this.createForm();\n }\n\n ngOnInit(): void {\n this.loadData();\n this.filterForm.valueChanges\n .pipe(debounceTime(800))\n .subscribe(() => this.reload());\n }\n\n private createForm() {\n this.filterForm = this.fb.group({\n duration: [Timeline.ALL],\n date_from: [''],\n date_to: [''],\n status_ids: [''],\n creator_ids: [''],\n reviewer_ids: [''],\n format_ids: [''],\n sort_by: ['created_at|DESC'],\n with: [this.with]\n });\n }\n\n loadData() {\n this.isWorking = true;\n const params: any = {\n ...this.requestHelperService.convertToFormData(this.filterForm.value),\n perPage: this.perPage,\n page: this.page\n };\n this.checksheetSubmissionService.index(params).subscribe({\n next: (response: any) => {\n this.models = this.models.concat(response?.data);\n this.lastPage = response?.last_page;\n this.isWorking = false;\n },\n error: () => (this.isWorking = false)\n });\n }\n\n onDurationChange(timelineValue: TimelineValue) {\n let { date_to, date_from } = timelineValue;\n this.filterForm.patchValue({\n date_from: date_from ? moment(date_from).format('YYYY-MM-DD') : '',\n date_to: date_to ? moment(date_to).format('YYYY-MM-DD') : ''\n });\n }\n\n /**\n * Handle checksheet submission delete event.\n */\n onDeleted() {\n this.alertService.addAlert(\n 'Checksheet submission deleted successfully!',\n 'success'\n );\n this.reload();\n }\n}\n","<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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ChecksheetRoutingModule } from './checksheet-routing.module';\nimport { ChecksheetFormatListComponent } from './checksheet-format-list/checksheet-format-list.component';\nimport { ChecksheetFormComponent } from './checksheet-form/checksheet-form.component';\nimport { ChecksheetQuestionFormComponent } from './checksheet-question-form/checksheet-question-form.component';\nimport { ChecksheetQuestionComponent } from './checksheet-question/checksheet-question.component';\nimport { ChecksheetQuestionListComponent } from './checksheet-question-list/checksheet-question-list.component';\nimport { ChecksheetListComponent } from './checksheet-list/checksheet-list.component';\nimport { ChecksheetSubmissionFormComponent } from './checksheet-submission-form/checksheet-submission-form.component';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport {\n ActionPopupModule,\n EntityFilesViewAllModule,\n ExportExcelModule,\n NoteModule,\n SearchableSelectorModule,\n TimelineFilterModule\n} from 'ngx-techlify-core';\nimport { ChecksheetNodeViewComponent } from './checksheet-node-view/checksheet-node-view.component';\nimport { MechanicalIssueFormComponent } from './mechanical-issue-form/mechanical-issue-form.component';\nimport { ChecksheetReportComponent } from './checksheet-report/checksheet-report.component';\nimport { NgxEditorModule } from 'ngx-editor';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { ChecksheetFormButtonComponent } from './checksheet-form-button/checksheet-form-button.component';\nimport { ChecksheetSubmissionDeleteButtonComponent } from './checksheet-submission-delete-button/checksheet-submission-delete-button.component';\nimport { ChecksheetReviewButtonComponent } from './checksheet-review-button/checksheet-review-button.component';\nimport { ChecksheetSubmissionFileUploadComponent } from './checksheet-submission-file-upload/checksheet-submisison-file-upload.component';\nimport {\n ChecksheetSubmissionFilesComponent\n} from \"./checksheet-submission-file/checksheet-submission-files/checksheet-submission-files.component\";\nimport {ChecksheetViewComponent} from \"./checksheet-view/checksheet-view.component\";\nimport {ChecksheetSubmissionViewComponent} from \"./checksheet-submission-view/checksheet-submission-view.component\";\nimport {SharedModule} from \"../@shared\";\nimport {\n ChecksheetSubmissionFormButtonComponent\n} from './checksheet-submission-form-button/checksheet-submission-form-button.component';\nimport {ChecksheetSubmissionListComponent} from './checksheet-submission-list/checksheet-submission-list.component';\nimport {\n ChecksheetSubmissionReviewButtonComponent\n} from './checksheet-submission-review-button/checksheet-submission-review-button.component';\n\n@NgModule({\n declarations: [\n ChecksheetFormatListComponent,\n ChecksheetFormComponent,\n ChecksheetQuestionFormComponent,\n ChecksheetQuestionComponent,\n ChecksheetQuestionListComponent,\n ChecksheetListComponent,\n ChecksheetSubmissionFormComponent,\n ChecksheetViewComponent,\n ChecksheetNodeViewComponent,\n MechanicalIssueFormComponent,\n ChecksheetReportComponent,\n ChecksheetFormButtonComponent,\n ChecksheetSubmissionDeleteButtonComponent,\n ChecksheetReviewButtonComponent,\n ChecksheetSubmissionViewComponent,\n ChecksheetSubmissionFormButtonComponent,\n ChecksheetSubmissionListComponent,\n ChecksheetSubmissionReviewButtonComponent\n ],\n imports: [\n CommonModule,\n ChecksheetRoutingModule,\n SharedModule,\n InfiniteScrollModule,\n ActionPopupModule,\n SearchableSelectorModule,\n NoteModule,\n NgxEditorModule,\n MatRadioModule,\n EntityFilesViewAllModule,\n ExportExcelModule,\n MatProgressBarModule,\n TimelineFilterModule,\n ChecksheetSubmissionFileUploadComponent,\n ChecksheetSubmissionFilesComponent,\n SharedModule\n ],\n exports: [\n ChecksheetListComponent,\n ChecksheetFormButtonComponent\n ]\n})\nexport class ChecksheetModule {}\n","/*\n * Public API Surface of ngx-techlify-checksheet\n */\n\nexport * from './lib/checksheet/checksheet.module';\n\nexport * from './lib/checksheet/checksheet-submission-list/checksheet-submission-list.component';\nexport * from './lib/checksheet/checksheet-submission-form-button/checksheet-submission-form-button.component';\nexport * from './lib/checksheet/checksheet-form-button/checksheet-form-button.component';\nexport * from './lib/checksheet/checksheet-list/checksheet-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["errorMessages","i3","i4.ChecksheetFormatQuestionService","i5","i7","i1","i8","i9","i10","i1.ChecksheetSubmissionFileService","i2.ChecksheetSubmissionFileService","MaterialModule","i4","i6","i1.ChecksheetSubmissionAnswerService","i2","i12.ChecksheetSubmissionFileUploadComponent","i13.ChecksheetSubmissionFilesComponent","i10.ChecksheetQuestionComponent","i7.ChecksheetFormatService","i11","i13","i14.ChecksheetQuestionListComponent","i2.ChecksheetFormatService","i3.ChecksheetService","i12","i14","i7.ChecksheetSubmissionFormComponent","i2.ChecksheetService","debounceTime","i16","i17.ChecksheetFormButtonComponent","i18.ChecksheetSubmissionDeleteButtonComponent","i19.ChecksheetReviewButtonComponent","i8.ChecksheetQuestionListComponent","i9.ChecksheetReviewButtonComponent","i7.ChecksheetService","i8.ChecksheetFormComponent","i9.ChecksheetQuestionListComponent","i10.ChecksheetSubmissionFormComponent","i3.ChecksheetSubmissionService","i14.ChecksheetSubmissionDeleteButtonComponent","i15.ChecksheetSubmissionFormButtonComponent","i16.ChecksheetSubmissionReviewButtonComponent"],"mappings":"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"}
|