ngx-techlify-checksheet 18.0.0 → 18.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/checksheet/checksheet-form/checksheet-form.component.mjs +88 -116
- package/esm2022/lib/checksheet/checksheet-form-button/checksheet-form-button.component.mjs +10 -12
- package/esm2022/lib/checksheet/checksheet-format/checksheet-format-copy-button/checksheet-format-copy-button.component.mjs +56 -0
- package/esm2022/lib/checksheet/checksheet-format/checksheet-format-delete-button/checksheet-format-delete-button.component.mjs +54 -0
- package/esm2022/lib/checksheet/checksheet-format/checksheet-format-publish-button/checksheet-format-publish-button.component.mjs +68 -0
- package/esm2022/lib/checksheet/checksheet-format/checksheet-format-unpublish-button/checksheet-format-unpublish-button.component.mjs +57 -0
- package/esm2022/lib/checksheet/checksheet-format/checksheet-format-view/checksheet-format-view.component.mjs +140 -0
- package/esm2022/lib/checksheet/checksheet-format-form/checksheet-format-form.component.mjs +136 -0
- package/esm2022/lib/checksheet/checksheet-format-list/checksheet-format-list.component.mjs +9 -67
- package/esm2022/lib/checksheet/checksheet-list/checksheet-list.component.mjs +28 -11
- package/esm2022/lib/checksheet/checksheet-list-widget/checksheet-list-widget.component.mjs +59 -0
- package/esm2022/lib/checksheet/checksheet-node-view/checksheet-node-view.component.mjs +24 -24
- package/esm2022/lib/checksheet/checksheet-question/checksheet-question.component.mjs +12 -13
- package/esm2022/lib/checksheet/checksheet-question-list/checksheet-question-list.component.mjs +7 -9
- package/esm2022/lib/checksheet/checksheet-report/checksheet-report.component.mjs +3 -3
- package/esm2022/lib/checksheet/checksheet-routing.module.mjs +6 -6
- package/esm2022/lib/checksheet/checksheet-submission-file/checksheet-submission-files/checksheet-submission-files.component.mjs +83 -17
- package/esm2022/lib/checksheet/checksheet-submission-list/checksheet-submission-list.component.mjs +5 -5
- package/esm2022/lib/checksheet/checksheet-submission-view/checksheet-submission-view.component.mjs +4 -4
- package/esm2022/lib/checksheet/checksheet.module.mjs +42 -20
- package/esm2022/public-api.mjs +2 -2
- package/fesm2022/ngx-techlify-checksheet.mjs +570 -359
- package/fesm2022/ngx-techlify-checksheet.mjs.map +1 -1
- package/lib/checksheet/checksheet-form/checksheet-form.component.d.ts +15 -34
- package/lib/checksheet/checksheet-form-button/checksheet-form-button.component.d.ts +3 -4
- package/lib/checksheet/checksheet-format/checksheet-format-copy-button/checksheet-format-copy-button.component.d.ts +16 -0
- package/lib/checksheet/checksheet-format/checksheet-format-delete-button/checksheet-format-delete-button.component.d.ts +16 -0
- package/lib/checksheet/checksheet-format/checksheet-format-publish-button/checksheet-format-publish-button.component.d.ts +18 -0
- package/lib/checksheet/checksheet-format/checksheet-format-unpublish-button/checksheet-format-unpublish-button.component.d.ts +16 -0
- package/lib/checksheet/{checksheet-view/checksheet-view.component.d.ts → checksheet-format/checksheet-format-view/checksheet-format-view.component.d.ts} +4 -4
- package/lib/checksheet/checksheet-format-form/checksheet-format-form.component.d.ts +45 -0
- package/lib/checksheet/checksheet-format-list/checksheet-format-list.component.d.ts +0 -3
- package/lib/checksheet/checksheet-list/checksheet-list.component.d.ts +5 -3
- package/lib/checksheet/checksheet-list-widget/checksheet-list-widget.component.d.ts +17 -0
- package/lib/checksheet/checksheet-node-view/checksheet-node-view.component.d.ts +2 -4
- package/lib/checksheet/checksheet-submission-file/checksheet-submission-files/checksheet-submission-files.component.d.ts +14 -4
- package/lib/checksheet/checksheet.module.d.ts +12 -7
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/esm2022/lib/checksheet/checksheet-submission-form/checksheet-submission-form.component.mjs +0 -131
- package/esm2022/lib/checksheet/checksheet-submission-form-button/checksheet-submission-form-button.component.mjs +0 -58
- package/esm2022/lib/checksheet/checksheet-view/checksheet-view.component.mjs +0 -140
- package/lib/checksheet/checksheet-submission-form/checksheet-submission-form.component.d.ts +0 -27
- package/lib/checksheet/checksheet-submission-form-button/checksheet-submission-form-button.component.d.ts +0 -29
|
@@ -1 +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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"}
|
|
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/checksheet-format-copy-button/checksheet-format-copy-button.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-format/checksheet-format-copy-button/checksheet-format-copy-button.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-format/checksheet-format-delete-button/checksheet-format-delete-button.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-format/checksheet-format-delete-button/checksheet-format-delete-button.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-format/checksheet-format-unpublish-button/checksheet-format-unpublish-button.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-format/checksheet-format-unpublish-button/checksheet-format-unpublish-button.component.html","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-format/checksheet-format-publish-button/checksheet-format-publish-button.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-format/checksheet-format-publish-button/checksheet-format-publish-button.component.html","../../../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/checksheet/checksheet-submission-file.service.ts","../../../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-format-form/checksheet-format-form.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-format-form/checksheet-format-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-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-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-list-widget/checksheet-list-widget.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-list-widget/checksheet-list-widget.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-format/checksheet-format-view/checksheet-format-view.component.ts","../../../projects/ngx-techlify-checksheet/src/lib/checksheet/checksheet-format/checksheet-format-view/checksheet-format-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/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-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/@shared/material.module.ts","../../../projects/ngx-techlify-checksheet/src/lib/@shared/shared.module.ts","../../../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 {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {MatIcon} from '@angular/material/icon';\nimport {MatTooltip} from '@angular/material/tooltip';\nimport {NgIf} from '@angular/common';\nimport {ActionPopup, ActionPopupComponent, AlertService} from 'ngx-techlify-core';\nimport {MatDialog} from '@angular/material/dialog';\nimport {ChecksheetFormatService} from '../../checksheet-format.service';\n\n@Component({\n selector: 'app-checksheet-format-copy-button',\n standalone: true,\n imports: [\n MatIcon,\n MatTooltip,\n NgIf\n ],\n templateUrl: './checksheet-format-copy-button.component.html',\n styleUrl: './checksheet-format-copy-button.component.css'\n})\nexport class ChecksheetFormatCopyButtonComponent {\n @Input() checksheetFormat: any;\n @Output() changed: EventEmitter<any> = new EventEmitter();\n\n constructor(\n private dialog: MatDialog,\n private alertService: AlertService,\n private service: ChecksheetFormatService\n ) {}\n\n copyChecksheet() {\n const dialogRef = this.dialog.open(ActionPopupComponent, {\n width: '400px',\n data: <ActionPopup>{\n title: 'Copy Checksheet Format',\n message: `Are you sure to proceed copy the ${this.checksheetFormat?.title}?`\n },\n autoFocus: false\n });\n\n dialogRef.afterClosed().subscribe(async (result) => {\n if (result) {\n this.service.copy(this.checksheetFormat).subscribe({\n next: () => {\n this.alertService.addAlert('Checksheet format copied successfully!', 'success');\n this.changed.emit();\n }\n });\n }\n });\n }\n}\n","<mat-icon *ngIf=\"!checksheetFormat.is_published\" (click)=\"copyChecksheet()\" matTooltip=\"Copy\" class=\"cursor-pointer\">\n content_copy\n</mat-icon>\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {MatDialog} from '@angular/material/dialog';\nimport {ActionPopup, ActionPopupComponent, AlertService} from 'ngx-techlify-core';\nimport {ChecksheetFormatService} from '../../checksheet-format.service';\nimport {MatIcon} from '@angular/material/icon';\nimport {NgIf} from '@angular/common';\n\n@Component({\n selector: 'app-checksheet-format-delete-button',\n standalone: true,\n imports: [\n MatIcon,\n NgIf\n ],\n templateUrl: './checksheet-format-delete-button.component.html',\n styleUrl: './checksheet-format-delete-button.component.css'\n})\nexport class ChecksheetFormatDeleteButtonComponent {\n @Input() checksheetFormat: any;\n @Output() deleted: EventEmitter<any> = new EventEmitter();\n\n constructor(\n private dialog: MatDialog,\n private alertService: AlertService,\n private service: ChecksheetFormatService\n ) {}\n\n delete() {\n const dialogRef = this.dialog.open(ActionPopupComponent, {\n width: '400px',\n data: <ActionPopup>{\n title: 'Deactivate Checksheet Format',\n message: `Are you sure to proceed deactivate the ${this.checksheetFormat?.title}?`\n },\n autoFocus: false\n });\n\n dialogRef.afterClosed().subscribe(async (result) => {\n if (result) {\n this.service.delete(this.checksheetFormat).subscribe({\n next: () => {\n this.alertService.addAlert('Checksheet format deactivated successfully!', 'success');\n this.deleted.emit();\n }\n });\n }\n });\n }\n}\n","<mat-icon class=\"cursor-pointer\" *ngIf=\"!checksheetFormat?.submissions_count\" (click)=\"delete()\">\n delete\n</mat-icon>\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {MatDialog} from '@angular/material/dialog';\nimport {ActionPopup, ActionPopupComponent, AlertService} from 'ngx-techlify-core';\nimport {ChecksheetFormatService} from '../../checksheet-format.service';\nimport {MatIcon} from '@angular/material/icon';\nimport {MatTooltip} from '@angular/material/tooltip';\nimport {NgIf} from '@angular/common';\n\n@Component({\n selector: 'app-checksheet-format-unpublish-button',\n standalone: true,\n imports: [\n MatIcon,\n MatTooltip,\n NgIf\n ],\n templateUrl: './checksheet-format-unpublish-button.component.html',\n styleUrl: './checksheet-format-unpublish-button.component.css'\n})\nexport class ChecksheetFormatUnpublishButtonComponent {\n @Input() checksheetFormat: any;\n @Output() changed: EventEmitter<any> = new EventEmitter();\n\n constructor(\n private dialog: MatDialog,\n private alertService: AlertService,\n private service: ChecksheetFormatService\n ) {}\n\n unpublishChecksheet() {\n const dialogRef = this.dialog.open(ActionPopupComponent, {\n width: '400px',\n data: <ActionPopup>{\n title: 'Unpublish Checksheet Format',\n message: `Are you sure to unpublish the format ${this.checksheetFormat.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(this.checksheetFormat).subscribe({\n next: () => {\n this.alertService.addAlert('Checksheet Format unpublished successfully!', 'success');\n this.changed.emit();\n }\n });\n }\n });\n }\n}\n","<mat-icon class=\"cursor-pointer\" *ngIf=\"checksheetFormat?.is_published\" matTooltip=\"Unpublish\"\n (click)=\"unpublishChecksheet()\">\n unpublished\n</mat-icon>\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {MatDialog} from '@angular/material/dialog';\nimport {ActionPopup, ActionPopupComponent, AlertService} from 'ngx-techlify-core';\nimport {ChecksheetFormatService} from '../../checksheet-format.service';\nimport {MatButton} from '@angular/material/button';\nimport {NgIf} from '@angular/common';\nimport {MatIcon} from '@angular/material/icon';\nimport {MatTooltip} from '@angular/material/tooltip';\n\n@Component({\n selector: 'app-checksheet-format-publish-button',\n standalone: true,\n imports: [\n MatButton,\n NgIf,\n MatIcon,\n MatTooltip\n ],\n templateUrl: './checksheet-format-publish-button.component.html',\n styleUrl: './checksheet-format-publish-button.component.css'\n})\nexport class ChecksheetFormatPublishButtonComponent {\n @Input() checksheetFormat: any;\n @Output() changed: EventEmitter<any> = new EventEmitter();\n @Input() viewMode : 'button' | 'icon' = 'button';\n isSaving: boolean = false;\n\n constructor(\n private dialog: MatDialog,\n private alertService: AlertService,\n private service: ChecksheetFormatService\n ) {}\n\n publishChecksheet() {\n const dialogRef = this.dialog.open(ActionPopupComponent, {\n width: '400px',\n data: <ActionPopup>{\n title: 'Publish Checksheet Format',\n message: `Review the checksheet format completely before publishing, you cannot alter once it is published.\n Are you sure to publish the Checksheet format?`\n },\n autoFocus: false\n });\n\n dialogRef.afterClosed().subscribe(async (result) => {\n if (result) {\n const model = { ...this.checksheetFormat };\n model.is_published = true;\n this.isSaving = true;\n this.service.update(model).subscribe({\n next: (response: any) => {\n this.alertService.addAlert(\n 'Checksheet format published successfully.',\n 'success'\n );\n this.changed.emit(response?.item);\n this.isSaving = false;\n },\n error: () => { this.isSaving = false; }\n });\n }\n });\n }\n}\n","<button mat-raised-button [disabled]=\"isSaving\" color=\"accent\" type=\"button\" (click)=\"publishChecksheet()\"\n *ngIf=\"viewMode === 'button' && !checksheetFormat?.is_published\">\n Publish\n</button>\n<span matTooltip=\"Publish\" class=\"material-symbols-outlined cursor-pointer\" (click)=\"publishChecksheet()\"\n *ngIf=\"viewMode === 'icon' && !checksheetFormat?.is_published\">\n published_with_changes\n</span>\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 { 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 {\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 AlertService,\n EntityFileService,\n FileDropperConfig,\n FileDropperModule,\n MaterialModule,\n ReadMoreModule,\n TechlifyListingControllerInterface, WrapPipe\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\";\nimport {forkJoin, map, Observable} from 'rxjs';\n\n@Component({\n selector: 'app-checksheet-submission-files',\n standalone: true,\n imports: [\n CommonModule, MaterialModule, MatProgressBarModule, ReactiveFormsModule,\n ChecksheetSubmissionFileDeleteButtonComponent, FileDropperModule, ReadMoreModule, WrapPipe\n ],\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 @Input() viewMode: 'table' | 'horizontal-timeline' = 'horizontal-timeline';\n @Input() fileDropperHeight = '150px';\n @Input() allowMultipleFiles = false;\n displayedColumns: string[] = ['No', 'File', 'Actions'];\n fileConfig!: FileDropperConfig;\n fileList: any[] = [];\n\n constructor(\n private formBuilder: FormBuilder,\n private service: ChecksheetSubmissionFileService,\n private entityFileService: EntityFileService,\n private alertService: AlertService\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.fileConfig = {\n fileId: \"entityDashboardDropper-\"+this.submissionId+'-'+this.questionId,\n containerId: \"entityDashboardDropperContainer-\"+this.submissionId+'-'+this.questionId,\n styles: {\n height: this.fileDropperHeight\n },\n multiple: this.allowMultipleFiles,\n acceptFile: \"*\",\n maxSize: 10,\n acceptFileText: \"All Files\"\n };\n\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 with: 'creator'\n };\n this.isWorking = true;\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 },\n complete: () => (this.isWorking = false)\n });\n }\n\n async fileChanged(event: any) {\n if (event && event?.length > 0) {\n const fileArray: File[] = Array.from(event);\n // upload files\n const results = await this.uploadFiles(fileArray);\n // link with submission question\n this.onUploadComplete(results);\n }\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 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.service\n .store(data)\n .pipe(map((response) => response?.item));\n });\n\n forkJoin(uploadObservables).subscribe({\n next: () => {\n this.reload();\n\n this.fileList = [];\n const fileInput = document.getElementById(\n \"entityDashboardDropper-\"+this.submissionId+'-'+this.questionId\n ) as HTMLInputElement;\n fileInput.value = '';\n }\n });\n }\n}\n","<mat-card class=\"p-0\" *ngIf=\"viewMode === 'table'\">\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\n<mat-card *ngIf=\"viewMode === 'horizontal-timeline'\">\n <mat-card-content class=\"mt-3 d-flex justify-content-start gap-3\">\n <app-file-dropper class=\"w-50\" [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\" [fileArray]=\"fileList\">\n </app-file-dropper>\n <div style=\"width: calc(50% - 1rem)\">\n <div *ngFor=\"let model of models\" class=\"d-flex flex-column gap-0\">\n <div class=\"d-flex flex-column gap-0\">\n <div class=\"d-flex justify-content-between align-items-center gap-1\">\n <p class=\"mb-0 fw-bold text-wrap\">{{ model?.file_name | wrap:20 }}</p>\n </div>\n </div>\n <app-read-more [text]=\"model?.details\" [maxLength]=\"50\"></app-read-more>\n <div class=\"d-flex justify-content-between gap-2\">\n <small class=\"text-secondary\" style=\"max-width: 70%\">\n <i>Uploaded By {{ model?.creator?.name }} {{ model?.created_at | date: 'mediumDate'}}</i>\n </small>\n <div class=\"d-flex justify-content-end align-items-center gap-1\">\n <a class=\"text-decoration-none cursor-pointer text-dark\" [href]=\"model?.file_url\" target=\"_blank\">\n <span class=\"material-symbols-outlined\"> download </span>\n </a>\n <app-checksheet-submission-file-delete-button [checksheetSubmissionFile]=\"model\" (deleted)=\"reload()\">\n </app-checksheet-submission-file-delete-button>\n </div>\n </div>\n <hr style=\"margin: 0.5rem 0\">\n </div>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </div>\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 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 class=\"d-flex flex-column gap-2\" *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 <span class=\"badge bg-secondary\">{{ questionInfo?.type?.title }}</span>\n </div>\n </div>\n\n <div *ngIf=\"questionInfo?.type_id === 1\" fxLayout=\"column\" fxLayoutGap=\"0.25rem\" class=\"mr-3\">\n <mat-radio-group class=\"answer-radio-group\" [disabled]=\"true\">\n <mat-radio-button class=\"answer-radio-button\" *ngFor=\"let answer of questionInfo?.answers\" [value]=\"answer.id\">\n {{ answer.value }}\n </mat-radio-button>\n </mat-radio-group>\n </div>\n\n <div *ngIf=\"questionInfo?.type_id === 2\" fxLayout=\"column\" fxLayoutGap=\"0.25rem\" class=\"mr-3\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngFor=\"let answer of questionInfo?.answers; let i = index\">\n <mat-checkbox [disabled]=\"true\" fxFlex=\"80%\">{{ i + 1 }} ) {{ answer.value }}</mat-checkbox>\n </div>\n </div>\n\n <div *ngIf=\"questionInfo?.type_id === 3 || questionInfo?.type_id === 5 || questionInfo?.type_id === 6\"\n class=\"mr-3 d-flex justify-content-start align-items-center gap-2\">\n <span class=\"material-symbols-outlined\">lightbulb</span>\n <p class=\"mb-0\">Answer</p>\n </div>\n\n <div *ngIf=\"questionInfo?.type_id === 4\" class=\"mr-3 d-flex justify-content-start align-items-center gap-2\">\n <span class=\"material-symbols-outlined\">lightbulb</span>\n <p class=\"mb-0\">Answer</p>\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<mat-card *ngIf=\"submissionView\">\n <mat-card-content>\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 <span class=\"badge bg-secondary\">{{ questionInfo?.type?.title }}</span>\n </div>\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 class=\"answer-radio-group\" [disabled]=\"disableInput\" [formControl]=\"submittedAnswer\">\n <mat-radio-button class=\"answer-radio-button\" *ngFor=\"let answer of questionInfo?.answers\"\n [value]=\"answer.id\" [disabled]=\"disableInput\">\n {{ answer.value }}\n </mat-radio-button>\n </mat-radio-group>\n </div>\n\n <div *ngIf=\"questionInfo?.type_id === 2\" class=\"d-flex flex-column gap-2\">\n <ng-container>\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngFor=\"let answer of questionInfo?.answers; let i = index\">\n <mat-checkbox (change)=\"onMultiSelectAnswerChange()\" [disabled]=\"disableInput\" [(ngModel)]=\"answer.isChecked\"\n fxFlex=\"80%\">\n {{ i + 1 }} ) {{ answer.value }}\n </mat-checkbox>\n </div>\n </ng-container>\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 matInput type=\"number\" size=\"10\" [formControl]=\"submittedAnswer\"/>\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 matInput [matDatepicker]=\"picker\" placeholder=\"Date\" [formControl]=\"submittedAnswer\"\n (focus)=\"picker.open()\"/>\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\">\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 fxLayout=\"row\" (change)=\"onMultiSelectYesNoAnswerChange($event, answer)\"\n [disabled]=\"disableInput\" [value]=\"answer.selectedValue\">\n <mat-radio-button class=\"mt-1 ml-2 yes-no\" [value]=\"true\" [disabled]=\"disableInput\">\n Yes\n </mat-radio-button>\n <mat-radio-button class=\"mt-1 ml-2 yes-no\" [value]=\"false\" [disabled]=\"disableInput\">\n No\n </mat-radio-button>\n </mat-radio-group>\n </div>\n </li>\n </ol>\n </div>\n\n <span class=\"flex-fill\"></span>\n\n <app-checksheet-submission-files style=\"width: calc(33.33%)\" [submissionId]=\"submissionId\"\n [questionId]=\"questionInfo?.id\"></app-checksheet-submission-files>\n </div>\n\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\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 <mat-card *ngIf=\"!disableInput\" class=\"mb-3\">\n <mat-card-content class=\"d-flex justify-content-start align-items-center gap-2\">\n <h2 class=\"mb-0\">Questions</h2>\n <mat-icon (click)=\"addQuestion()\" class=\"cursor-pointer\">add</mat-icon>\n </mat-card-content>\n </mat-card>\n\n <div class=\"d-flex flex-column gap-3 mat-typography\" infiniteScroll\n [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\">\n <mat-card *ngFor=\"let question of questions; let i = index\">\n <mat-card-content class=\"d-flex justify-content-between align-items-start gap-3\">\n <app-checksheet-question [questionInfo]=\"question\" [index]=\"i\"></app-checksheet-question>\n <div class=\"d-flex flex-row gap-3 justify-content-end\" *ngIf=\"!disableInput\">\n <mat-icon class=\"cursor-pointer\" (click)=\"deleteQuestion(question)\">delete</mat-icon>\n <mat-icon class=\"cursor-pointer\" (click)=\"editQuestion(question, i)\">edit</mat-icon>\n <mat-icon class=\"cursor-pointer\" *ngIf=\"i > 0\" (click)=\"moveQuestionUp(i)\">arrow_upward</mat-icon>\n <mat-icon class=\"cursor-pointer\" *ngIf=\"i < questions.length - 1\" (click)=\"moveQuestionDown(i)\">\n arrow_downward\n </mat-icon>\n </div>\n\n </mat-card-content>\n </mat-card>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"submission?.id\">\n <div class=\"d-flex flex-column gap-2\">\n <app-checksheet-question *ngFor=\"let question of submission.format.questions; let i = index\"\n [questionInfo]=\"question\" [index]=\"i\" [submissionView]=\"true\"\n [submissionId]=\"submission.id\" [disableInput]=\"disableInput\">\n </app-checksheet-question>\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-format-form',\n templateUrl: './checksheet-format-form.component.html',\n styleUrls: ['./checksheet-format-form.component.scss']\n})\nexport class ChecksheetFormatFormComponent implements OnInit {\n checksheetForm!: UntypedFormGroup;\n updateMode!: boolean;\n checksheetFormat: any;\n isSaving: boolean = false;\n id!: number;\n\n @Input() disableInput!: boolean;\n isLoading: boolean = false;\n showChecksheetInfo: 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 this.checksheetFormat = result?.item;\n this.checksheetForm.patchValue({ ...this.checksheetFormat });\n this.updateMode = true;\n this.showChecksheetInfo = false;\n this.alertService.addAlert('Checksheet format saved successfully', 'success');\n },\n error: () => {\n this.isSaving = false;\n }\n });\n }\n\n 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.checksheetFormat = result?.item;\n },\n error: () => {\n this.isLoading = false;\n }\n });\n }\n}\n","<div class=\"d-flex justify-content-start align-items-start gap-3 w-100\" *ngIf=\"!isLoading\">\n <div class=\"d-flex flex-column gap-3\" style=\"width: 80%\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <span class=\"material-symbols-outlined fs-1\">\n list_alt_check\n </span>\n <h2 class=\"mb-0\">{{ checksheetFormat ? 'Update' : 'Create' }} Checksheet Format</h2>\n </div>\n <span class=\"badge bg-secondary\" *ngIf=\"checksheetFormat?.questions\">\n {{ checksheetFormat?.questions?.length }} Questions\n </span>\n </mat-card-content>\n </mat-card>\n\n <app-checksheet-question-list class=\"w-100\" [(checksheet)]=\"checksheetFormat\" [disableInput]=\"disableInput\">\n </app-checksheet-question-list>\n </div>\n <div style=\"width: calc(20% - 1rem)\" class=\"d-flex flex-column gap-3\">\n <mat-card *ngIf=\"!checksheetFormat || showChecksheetInfo\">\n <mat-card-content>\n <h3>Checksheet Format Information</h3>\n <form [formGroup]=\"checksheetForm\" (submit)=\"submit()\" fxLayout=\"column\" fxLayoutGap=\"0.25rem\">\n <mat-form-field>\n <input matInput formControlName=\"title\" placeholder=\"Title\" autocomplete=\"off\" required/>\n <mat-error *ngIf=\"isFieldValid('title')\">\n {{ getErrorMessage('title') }}\n </mat-error>\n </mat-form-field>\n\n <div class=\"my-2\" fxLayout=\"row\" fxLayoutGap=\"15px\" fxLayoutAlign=\"end\" *ngIf=\"!disableInput\">\n <button [disabled]=\"isSaving\" mat-flat-button type=\"button\" (click)=\"showChecksheetInfo = false\">\n Cancel\n </button>\n <button [disabled]=\"isSaving\" mat-raised-button type=\"submit\" color=\"primary\">\n Save\n </button>\n\n <app-checksheet-format-publish-button [checksheetFormat]=\"checksheetFormat\" *ngIf=\"updateMode\"\n (changed)=\"loadChecksheetFormat()\">\n </app-checksheet-format-publish-button>\n </div>\n </form>\n </mat-card-content>\n </mat-card>\n\n <mat-card *ngIf=\"checksheetFormat && !showChecksheetInfo\">\n <mat-card-content>\n <div class=\"d-flex justify-content-between align-items-center gap-2\">\n <h3 class=\"mb-0\">Information</h3>\n <div class=\"d-flex justify-content-end align-items-center gap-2\">\n <mat-icon class=\"cursor-pointer\" (click)=\"showChecksheetInfo = true\">edit</mat-icon>\n <app-checksheet-format-delete-button [checksheetFormat]=\"checksheetFormat\" (deleted)=\"loadChecksheetFormat()\">\n </app-checksheet-format-delete-button>\n\n <app-checksheet-format-copy-button [checksheetFormat]=\"checksheetFormat\" (changed)=\"loadChecksheetFormat()\">\n </app-checksheet-format-copy-button>\n\n <app-checksheet-format-unpublish-button [checksheetFormat]=\"checksheetFormat\" (changed)=\"loadChecksheetFormat()\">\n </app-checksheet-format-unpublish-button>\n\n <app-checksheet-format-publish-button [checksheetFormat]=\"checksheetFormat\" (changed)=\"loadChecksheetFormat()\" viewMode=\"icon\">\n </app-checksheet-format-publish-button>\n </div>\n </div>\n </mat-card-content>\n <mat-card-content class=\"mt-3 d-flex flex-column justify-content-center align-items-center gap-2\">\n <h2 class=\"mb-0\">{{ checksheetFormat?.title }}</h2>\n <span class=\"badge bg-secondary\">{{ checksheetFormat?.submissions_count }} Checksheet Submissions</span>\n <small class=\"text-secondary\">\n By {{ checksheetFormat?.creator?.name }} on {{ checksheetFormat?.created_at| date }}\n </small>\n </mat-card-content>\n </mat-card>\n\n <app-note-list *ngIf=\"checksheetFormat\" viewMode=\"timeline\" [relatedModelId]=\"checksheetFormat?.id\"\n modelType=\"ChecksheetFormat\"></app-note-list>\n </div>\n</div>\n\n<mat-progress-bar mode=\"indeterminate\" *ngIf=\"isLoading\"></mat-progress-bar>\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 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-format-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; let i = index;\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <a [routerLink]=\"['../checksheet-format-view/', element?.id]\" class=\"text-decoration-none text-dark\">\n <mat-icon>search</mat-icon>\n </a>\n\n <a *ngIf=\"!element.is_published\" [routerLink]=\"['../checksheet-format-form/', element?.id]\"\n class=\"text-decoration-none text-dark\">\n <mat-icon>edit</mat-icon>\n </a>\n\n <app-checksheet-format-delete-button [checksheetFormat]=\"element\" (deleted)=\"modelDeleted(i)\">\n </app-checksheet-format-delete-button>\n\n <app-checksheet-format-copy-button [checksheetFormat]=\"element\" (changed)=\"reload()\">\n </app-checksheet-format-copy-button>\n\n <app-checksheet-format-unpublish-button [checksheetFormat]=\"element\" (changed)=\"reload()\">\n </app-checksheet-format-unpublish-button>\n\n <app-checksheet-format-publish-button [checksheetFormat]=\"element\" (changed)=\"reload()\" viewMode=\"icon\">\n </app-checksheet-format-publish-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 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 { MatDialog } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-checksheet-form',\n templateUrl: './checksheet-form.component.html',\n styleUrls: ['./checksheet-form.component.scss']\n})\nexport class ChecksheetFormComponent\n extends TechlifyFormComponentInterface\n implements OnInit\n{\n @Input() submittableType!: string;\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 service: 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 console.log(this.submittableType, this.submittableId);\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.service.update(data)\n : this.service.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.\n 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.service\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 *ngIf=\"!submittableType\">\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 <ng-container *ngIf=\"!submittableId\">\n <mat-form-field *ngIf=\"form.get('submittable_type')?.value === 'fixed-asset'\">\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 </ng-container>\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 { ChecksheetFormComponent } from '../checksheet-form/checksheet-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 ChecksheetFormComponent,\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: string = '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 checksheet\n */\n onSaved(checksheet: any) {\n this.saved.emit(checksheet);\n this.matDialog.closeAll();\n this.alertService.addAlert(\n 'The Checksheet is saved successfully!',\n 'success'\n );\n\n this.router.navigate([\n '/checksheets/checksheets',\n checksheet?.id,\n 'view'\n ]);\n }\n}\n","<mat-icon\n class=\"cursor-pointer text-secondary\"\n (click)=\"openForm(formTemplate)\"\n>\n add\n</mat-icon>\n\n<ng-template #formTemplate>\n <app-checksheet-form\n mat-dialog-content\n (cancelled)=\"matDialog.closeAll()\"\n (saved)=\"onSaved($event)\"\n [submittableType]=\"submittableType\"\n [submittableId]=\"submittableId\"\n ></app-checksheet-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, Input, 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 @Input() submittableId!: number;\n @Input() submittableType!: string;\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 service: ChecksheetService,\n private requestHelperService: RequestHelperService,\n private activatedRoute: ActivatedRoute\n ) {\n super();\n this.createForm();\n }\n\n ngOnInit(): void {\n if (this.submittableId) {\n this.filterForm.get('submittable_ids')?.setValue(this.submittableId, { emitEvent: false });\n this.displayedColumns = this.displayedColumns.filter((column: string) => column !== 'for');\n }\n\n if (this.submittableType) {\n this.filterForm.get('submittable_type')?.setValue(this.submittableType, { emitEvent: false });\n }\n\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 submittable_ids: [''],\n submittable_type:[''],\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.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: () => (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 }, { emitEvent: false });\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 submittable_ids: { multiple: true }\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\" [submittableType]=\"submittableType\" [submittableId]=\"submittableId\">\n </app-checksheet-form-button>\n <a [routerLink]=\"['checksheet-formats']\" mat-raised-button>Formats</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/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]=\"['/checksheets/checksheets', 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 {Component, Input, OnInit} from '@angular/core';\nimport {TechlifyListingControllerInterface} from 'ngx-techlify-core';\nimport {ChecksheetService} from '../checksheet.service';\n\n@Component({\n selector: 'app-checksheet-list-widget',\n templateUrl: './checksheet-list-widget.component.html',\n styleUrl: './checksheet-list-widget.component.css'\n})\nexport class ChecksheetListWidgetComponent extends TechlifyListingControllerInterface implements OnInit {\n @Input() submittable: any;\n @Input() submittableType!: string;\n @Input() title: string = 'Checksheets';\n @Input() submittableTitleField: string = 'name';\n @Input() showChecksheetButton: boolean = false;\n\n constructor(\n private service: ChecksheetService\n ) {\n super();\n this.perPage = 5;\n }\n\n ngOnInit() {\n this.loadData();\n }\n\n override loadData() {\n const params: any = {\n page: 1,\n perPage: this.perPage,\n submittable_type: this.submittableType,\n submittable_ids: this.submittable?.id,\n with: 'creator',\n }\n this.isWorking = true;\n this.service.index(params).subscribe({\n next: (response: any) => {\n this.models = this.models.concat(response?.data);\n this.isWorking = false;\n },\n error: () => { this.isWorking = false; }\n });\n }\n}\n","<mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-3\">\n <h3 class=\"mb-0 fw-bold\">{{ title }}</h3>\n <span class=\"flex-fill\"></span>\n <app-checksheet-form-button *ngIf=\"showChecksheetButton\" [submittableType]=\"submittableType\"\n [submittableId]=\"submittable?.id\"></app-checksheet-form-button>\n </mat-card-content>\n <mat-card-content>\n <p class=\"mb-0\">Checksheets for <span class=\"badge bg-secondary\">{{ submittableType }}</span>\n # {{ submittable?.id }} : {{ submittable[submittableTitleField] }}\n </p>\n </mat-card-content>\n <mat-card-content>\n <a *ngFor=\"let model of models\" [routerLink]=\"['/checksheets/checksheets-view', model?.id]\"\n class=\"d-flex justify-content-start align-items-center gap-2 p-2 cursor-pointer text-decoration-none text-dark\">\n <span class=\"material-symbols-outlined fs-2\">\n article\n </span>\n <div class=\"d-flex flex-column gap-1\">\n <p class=\"mb-0\">on {{ model?.date | date }}</p>\n <small class=\"text-secondary\">By {{ model?.creator?.name }}</small>\n </div>\n </a>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n","import { 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 = 'format.questions.answers,format.questions.type,creator,reviewer,status,submittable';\n\n constructor(\n private route: ActivatedRoute,\n private service: ChecksheetService\n ) {}\n\n ngOnInit(): void {\n this.route.params.subscribe((params: any) => {\n this.submissionId = params['submissionId'];\n if (this.submissionId) {\n this.loadSubmission();\n }\n });\n }\n\n private loadSubmission() {\n const params: any = {\n with: this.with\n };\n\n this.isLoading = true;\n this.service.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 class=\"d-flex justify-content-start gap-3 w-100\" id=\"pdfable-section\" *ngIf=\"submission\">\n <div class=\"d-flex flex-column gap-3\" style=\"width: 85%\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <span class=\"material-symbols-outlined fs-1\">\n list_alt_check\n </span>\n <div>\n <h2 class=\"mb-0\">{{ submission?.format?.title }}</h2>\n <p class=\"mb-0\" *ngIf=\"submission?.details\">{{ submission?.details }}</p>\n </div>\n </div>\n <div class=\"d-flex justify-content-end align-items-center gap-2\">\n <div class=\"d-flex flex-column gap-1\">\n <p class=\"mb-0 text-secondary\">for <span class=\"badge bg-secondary\">{{ submission?.submittable_type }}</span>\n #{{ submission?.submittable_id }} : {{ submission?.submittable?.name }}\n </p>\n <div class=\"d-flex justify-content-end align-items-center gap-2\">\n <p class=\"mb-0 text-secondary\">By</p> <ngx-avatars [name]=\"submission?.creator?.name\" size=\"30\"></ngx-avatars>\n <p class=\"text-dark mb-0\">{{ submission?.creator?.name }}</p>\n <p class=\"mb-0 text-secondary\">on {{ submission?.date | date }}</p>\n </div>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n\n <app-checksheet-question-list [submission]=\"submission\" [disableInput]=\"true\"></app-checksheet-question-list>\n\n </div>\n <div class=\"d-flex flex-column gap-3\" style=\"width: calc(15% - 1rem)\">\n <app-checksheet-list-widget title=\"Previous Checksheets\" [submittableType]=\"submission?.submittable_type\"\n [submittable]=\"submission?.submittable\"></app-checksheet-list-widget>\n <app-note-list *ngIf=\"submission?.id && !isLoading\" [relatedModelId]=\"submission?.id\" class=\"w-100\"\n modelType=\"ChecksheetSubmission\" viewMode=\"timeline\"></app-note-list>\n </div>\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-format-view',\n templateUrl: './checksheet-format-view.component.html',\n styleUrls: ['./checksheet-format-view.component.scss']\n})\nexport class ChecksheetFormatViewComponent 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-format-form [disableInput]=\"false\"></app-checksheet-format-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-form\n (cancelled)=\"redirectBack()\"\n (saved)=\"onSaved()\"\n [checksheetSubmission]=\"submission\"\n [submittableType]=\"submission?.submittable_type\"\n [submittableId]=\"submission?.submission_id\"\n ></app-checksheet-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 { ChecksheetFormatFormComponent } from './checksheet-format-form/checksheet-format-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 { ChecksheetFormatViewComponent } from './checksheet-format/checksheet-format-view/checksheet-format-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-format-form', component: ChecksheetFormatFormComponent },\n { path: 'checksheet-format-view/:checksheetId', component: ChecksheetFormatViewComponent },\n { path: 'checksheet-format-form/:checksheetId', component: ChecksheetFormatFormComponent },\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>","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 { 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","/*\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 { 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-form-button></app-checksheet-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 { ChecksheetFormatFormComponent } from './checksheet-format-form/checksheet-format-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 { ChecksheetFormComponent } from './checksheet-form/checksheet-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 {ChecksheetFormatViewComponent} from \"./checksheet-format/checksheet-format-view/checksheet-format-view.component\";\nimport {ChecksheetSubmissionViewComponent} from \"./checksheet-submission-view/checksheet-submission-view.component\";\nimport {SharedModule} from \"../@shared\";\nimport {ChecksheetSubmissionListComponent} from './checksheet-submission-list/checksheet-submission-list.component';\nimport {\n ChecksheetSubmissionReviewButtonComponent\n} from './checksheet-submission-review-button/checksheet-submission-review-button.component';\nimport {AvatarComponent} from 'ngx-avatars';\nimport {ChecksheetListWidgetComponent} from \"./checksheet-list-widget/checksheet-list-widget.component\";\nimport {\n ChecksheetFormatCopyButtonComponent\n} from './checksheet-format/checksheet-format-copy-button/checksheet-format-copy-button.component';\nimport {\n ChecksheetFormatDeleteButtonComponent\n} from './checksheet-format/checksheet-format-delete-button/checksheet-format-delete-button.component';\nimport {\n ChecksheetFormatUnpublishButtonComponent\n} from './checksheet-format/checksheet-format-unpublish-button/checksheet-format-unpublish-button.component';\nimport {\n ChecksheetFormatPublishButtonComponent\n} from './checksheet-format/checksheet-format-publish-button/checksheet-format-publish-button.component';\n\n@NgModule({\n declarations: [\n ChecksheetFormatListComponent,\n ChecksheetFormatFormComponent,\n ChecksheetQuestionFormComponent,\n ChecksheetQuestionComponent,\n ChecksheetQuestionListComponent,\n ChecksheetListComponent,\n ChecksheetFormComponent,\n ChecksheetFormatViewComponent,\n ChecksheetNodeViewComponent,\n MechanicalIssueFormComponent,\n ChecksheetReportComponent,\n ChecksheetFormButtonComponent,\n ChecksheetSubmissionDeleteButtonComponent,\n ChecksheetReviewButtonComponent,\n ChecksheetSubmissionViewComponent,\n ChecksheetSubmissionListComponent,\n ChecksheetSubmissionReviewButtonComponent,\n ChecksheetListWidgetComponent\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 AvatarComponent,\n ChecksheetFormatCopyButtonComponent,\n ChecksheetFormatDeleteButtonComponent,\n ChecksheetFormatUnpublishButtonComponent,\n ChecksheetFormatPublishButtonComponent\n ],\n exports: [\n ChecksheetListComponent,\n ChecksheetFormButtonComponent,\n ChecksheetListWidgetComponent\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-form-button/checksheet-form-button.component';\nexport * from './lib/checksheet/checksheet-list/checksheet-list.component';\nexport * from './lib/checksheet/checksheet-list-widget/checksheet-list-widget.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3.ChecksheetFormatService","errorMessages","i3","i4.ChecksheetFormatQuestionService","i5","i7","i8","i9","i10","i11","i2.ChecksheetSubmissionFileService","MaterialModule","i4","i6","i1.ChecksheetSubmissionAnswerService","i12","i13.ChecksheetSubmissionFilesComponent","i8.ChecksheetQuestionComponent","i7.ChecksheetFormatService","i13","i14","i15.ChecksheetFormatCopyButtonComponent","i16.ChecksheetFormatDeleteButtonComponent","i17.ChecksheetFormatUnpublishButtonComponent","i18.ChecksheetFormatPublishButtonComponent","i19.ChecksheetQuestionListComponent","i2.ChecksheetFormatService","i11.ChecksheetFormatCopyButtonComponent","i12.ChecksheetFormatDeleteButtonComponent","i13.ChecksheetFormatUnpublishButtonComponent","i14.ChecksheetFormatPublishButtonComponent","i3.ChecksheetService","i5.ChecksheetFormComponent","i2.ChecksheetService","debounceTime","i16","i17.ChecksheetFormButtonComponent","i18.ChecksheetSubmissionDeleteButtonComponent","i19.ChecksheetReviewButtonComponent","i1.ChecksheetService","i6.ChecksheetFormButtonComponent","i8.ChecksheetQuestionListComponent","i9.ChecksheetListWidgetComponent","i7.ChecksheetService","i8.ChecksheetFormatFormComponent","i9.ChecksheetQuestionListComponent","i10.ChecksheetFormComponent","i1.ChecksheetSubmissionFileService","i3.ChecksheetSubmissionService","i14.ChecksheetFormButtonComponent","i15.ChecksheetSubmissionDeleteButtonComponent","i16.ChecksheetSubmissionReviewButtonComponent"],"mappings":"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"}
|