cat-documents-ng 0.1.6 → 0.1.7
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/Shared/interceptor/error-interceptor.interceptor.d.ts +15 -0
- package/fesm2022/cat-documents-ng.mjs +221 -75
- package/fesm2022/cat-documents-ng.mjs.map +1 -1
- package/lib/document/components/document-container/document-container.component.d.ts +3 -1
- package/lib/document/components/document-viewer/document-viewer.component.d.ts +7 -1
- package/lib/document/components/linked-document/linked-document.component.d.ts +14 -0
- package/lib/document/document.module.d.ts +19 -18
- package/lib/document/state/document.query.d.ts +6 -0
- package/lib/document/state/document.state.d.ts +1 -0
- package/lib/document/state/document.store.d.ts +2 -0
- package/package.json +1 -1
- package/src/assets/config/api.config.json +20 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from "@angular/common/http";
|
|
2
|
+
import { Observable } from "rxjs";
|
|
3
|
+
import { Router } from "@angular/router";
|
|
4
|
+
import { SessionService } from "../services/session.service";
|
|
5
|
+
import { AppConfigService } from "../services/app-config.service";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class ErrorInterceptor implements HttpInterceptor {
|
|
8
|
+
private router;
|
|
9
|
+
private sessionService;
|
|
10
|
+
private appconfigService;
|
|
11
|
+
constructor(router: Router, sessionService: SessionService, appconfigService: AppConfigService);
|
|
12
|
+
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>;
|
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ErrorInterceptor, never>;
|
|
14
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ErrorInterceptor>;
|
|
15
|
+
}
|
|
@@ -6,7 +6,7 @@ import { firstValueFrom, tap, catchError, throwError, BehaviorSubject, Subscript
|
|
|
6
6
|
import { __decorate } from 'tslib';
|
|
7
7
|
import { EntityStore, StoreConfig, QueryEntity } from '@datorama/akita';
|
|
8
8
|
import * as i2 from '@angular/common/http';
|
|
9
|
-
import { HttpClientModule } from '@angular/common/http';
|
|
9
|
+
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
10
10
|
import * as i3 from 'primeng/api';
|
|
11
11
|
import { MessageService } from 'primeng/api';
|
|
12
12
|
import * as i5$1 from 'primeng/accordion';
|
|
@@ -35,6 +35,7 @@ import { TimelineModule } from 'primeng/timeline';
|
|
|
35
35
|
import { CheckboxModule } from 'primeng/checkbox';
|
|
36
36
|
import { InputTextareaModule } from 'primeng/inputtextarea';
|
|
37
37
|
import { InputTextModule } from 'primeng/inputtext';
|
|
38
|
+
import { catchError as catchError$1 } from 'rxjs/operators';
|
|
38
39
|
|
|
39
40
|
/**
|
|
40
41
|
* The `SHARED` class contains shared constants used across the application.
|
|
@@ -351,67 +352,6 @@ class ERRORS {
|
|
|
351
352
|
static ERROR_DOCUMENT_TYPES = "Error fetching document types:";
|
|
352
353
|
}
|
|
353
354
|
|
|
354
|
-
/**
|
|
355
|
-
* Class that holds the URLs used throughout the application.
|
|
356
|
-
* These URLs are typically used for making API requests and accessing various resources.
|
|
357
|
-
* @class URLS
|
|
358
|
-
* @typedef {URLS}
|
|
359
|
-
*/
|
|
360
|
-
class URLS {
|
|
361
|
-
/**
|
|
362
|
-
* The URL to fetch the application configuration file.
|
|
363
|
-
* This JSON file typically contains settings and options for the application.
|
|
364
|
-
* @static
|
|
365
|
-
* @type {string}
|
|
366
|
-
*/
|
|
367
|
-
static CONFIGFILEURL = "assets/config/api.config.json";
|
|
368
|
-
/**
|
|
369
|
-
* The URL endpoint for document uploads.
|
|
370
|
-
* Used to send documents to the server for storage or processing.
|
|
371
|
-
* @static
|
|
372
|
-
* @type {string}
|
|
373
|
-
*/
|
|
374
|
-
static DOCUMENT_UPLOAD = "Documents";
|
|
375
|
-
/**
|
|
376
|
-
* The query parameter to pass a context ID in API requests.
|
|
377
|
-
* Used to specify the context for certain API calls, such as filtering or scoping the request.
|
|
378
|
-
* @static
|
|
379
|
-
* @type {string}
|
|
380
|
-
*/
|
|
381
|
-
static CONTEXT = "?contextId=";
|
|
382
|
-
/**
|
|
383
|
-
* The query parameter to pass a document ID in API requests.
|
|
384
|
-
* @static
|
|
385
|
-
* @type {string}
|
|
386
|
-
*/
|
|
387
|
-
static DOCUMENT_TYPES = "documentTypes";
|
|
388
|
-
/**
|
|
389
|
-
* The query parameter to pass a context ID in API requests.
|
|
390
|
-
* @static
|
|
391
|
-
* @type {string}
|
|
392
|
-
*/
|
|
393
|
-
static FOLDERS = "/folders?contextId=";
|
|
394
|
-
/**
|
|
395
|
-
* The query parameter to pass a document ID in API requests.
|
|
396
|
-
* @static
|
|
397
|
-
* @type {string}
|
|
398
|
-
*/
|
|
399
|
-
static ALERT_BY_DOCUMENT_ID = "alerts?documentId=";
|
|
400
|
-
/**
|
|
401
|
-
* The query parameter to pass a document ID in API requests.
|
|
402
|
-
* @static
|
|
403
|
-
* @type {string}
|
|
404
|
-
*/
|
|
405
|
-
static PARENT_DOCUMENT_TYPE_ID = "parentDocumentType?parentDocumentTypeId=";
|
|
406
|
-
/**
|
|
407
|
-
* The query parameter to pass a context ID in API requests.
|
|
408
|
-
* Used to specify the context for certain API calls, such as filtering or scoping the request.
|
|
409
|
-
* @static
|
|
410
|
-
* @type {string}
|
|
411
|
-
*/
|
|
412
|
-
static CONTEXT_ID = "&contextId=";
|
|
413
|
-
}
|
|
414
|
-
|
|
415
355
|
/**
|
|
416
356
|
* Creates the initial state for the `DocumentState` store.
|
|
417
357
|
* This function provides default values for all properties in the `DocumentState` interface,
|
|
@@ -429,7 +369,8 @@ function createInitialState() {
|
|
|
429
369
|
parentDocumentTypeId: null,
|
|
430
370
|
documentAlert: { _id: '' },
|
|
431
371
|
folders: [],
|
|
432
|
-
messages: []
|
|
372
|
+
messages: [],
|
|
373
|
+
documentList: []
|
|
433
374
|
};
|
|
434
375
|
}
|
|
435
376
|
|
|
@@ -465,6 +406,9 @@ let DocumentStore = class DocumentStore extends EntityStore {
|
|
|
465
406
|
setMessage(message) {
|
|
466
407
|
this.update({ messages: message });
|
|
467
408
|
}
|
|
409
|
+
setDocumentList(documents) {
|
|
410
|
+
this.update({ documents: documents });
|
|
411
|
+
}
|
|
468
412
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
469
413
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentStore, providedIn: 'root' });
|
|
470
414
|
};
|
|
@@ -476,6 +420,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
476
420
|
args: [{ providedIn: 'root' }]
|
|
477
421
|
}], ctorParameters: () => [] });
|
|
478
422
|
|
|
423
|
+
/**
|
|
424
|
+
* Class that holds the URLs used throughout the application.
|
|
425
|
+
* These URLs are typically used for making API requests and accessing various resources.
|
|
426
|
+
* @class URLS
|
|
427
|
+
* @typedef {URLS}
|
|
428
|
+
*/
|
|
429
|
+
class URLS {
|
|
430
|
+
/**
|
|
431
|
+
* The URL to fetch the application configuration file.
|
|
432
|
+
* This JSON file typically contains settings and options for the application.
|
|
433
|
+
* @static
|
|
434
|
+
* @type {string}
|
|
435
|
+
*/
|
|
436
|
+
static CONFIGFILEURL = "assets/config/api.config.json";
|
|
437
|
+
/**
|
|
438
|
+
* The URL endpoint for document uploads.
|
|
439
|
+
* Used to send documents to the server for storage or processing.
|
|
440
|
+
* @static
|
|
441
|
+
* @type {string}
|
|
442
|
+
*/
|
|
443
|
+
static DOCUMENT_UPLOAD = "Documents";
|
|
444
|
+
/**
|
|
445
|
+
* The query parameter to pass a context ID in API requests.
|
|
446
|
+
* Used to specify the context for certain API calls, such as filtering or scoping the request.
|
|
447
|
+
* @static
|
|
448
|
+
* @type {string}
|
|
449
|
+
*/
|
|
450
|
+
static CONTEXT = "?contextId=";
|
|
451
|
+
/**
|
|
452
|
+
* The query parameter to pass a document ID in API requests.
|
|
453
|
+
* @static
|
|
454
|
+
* @type {string}
|
|
455
|
+
*/
|
|
456
|
+
static DOCUMENT_TYPES = "documentTypes";
|
|
457
|
+
/**
|
|
458
|
+
* The query parameter to pass a context ID in API requests.
|
|
459
|
+
* @static
|
|
460
|
+
* @type {string}
|
|
461
|
+
*/
|
|
462
|
+
static FOLDERS = "/folders?contextId=";
|
|
463
|
+
/**
|
|
464
|
+
* The query parameter to pass a document ID in API requests.
|
|
465
|
+
* @static
|
|
466
|
+
* @type {string}
|
|
467
|
+
*/
|
|
468
|
+
static ALERT_BY_DOCUMENT_ID = "alerts?documentId=";
|
|
469
|
+
/**
|
|
470
|
+
* The query parameter to pass a document ID in API requests.
|
|
471
|
+
* @static
|
|
472
|
+
* @type {string}
|
|
473
|
+
*/
|
|
474
|
+
static PARENT_DOCUMENT_TYPE_ID = "parentDocumentType?parentDocumentTypeId=";
|
|
475
|
+
/**
|
|
476
|
+
* The query parameter to pass a context ID in API requests.
|
|
477
|
+
* Used to specify the context for certain API calls, such as filtering or scoping the request.
|
|
478
|
+
* @static
|
|
479
|
+
* @type {string}
|
|
480
|
+
*/
|
|
481
|
+
static CONTEXT_ID = "&contextId=";
|
|
482
|
+
}
|
|
483
|
+
|
|
479
484
|
/**
|
|
480
485
|
* Service that handles loading and providing configuration settings for the application.
|
|
481
486
|
* It fetches configuration data from a remote server and exposes various configuration options.
|
|
@@ -660,6 +665,13 @@ class DocumentQuery extends QueryEntity {
|
|
|
660
665
|
selectMessages() {
|
|
661
666
|
return this.select((state) => state.messages);
|
|
662
667
|
}
|
|
668
|
+
/**
|
|
669
|
+
* Selects the set documents.
|
|
670
|
+
* @returns {Observable<documentModel[]>} Observable that emits the documets.
|
|
671
|
+
*/
|
|
672
|
+
selectDocumets() {
|
|
673
|
+
return this.select((state) => state.documentList);
|
|
674
|
+
}
|
|
663
675
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentQuery, deps: [{ token: DocumentStore }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
664
676
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentQuery, providedIn: 'root' });
|
|
665
677
|
}
|
|
@@ -1244,6 +1256,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
1244
1256
|
}]
|
|
1245
1257
|
}] });
|
|
1246
1258
|
|
|
1259
|
+
class LinkedDocumentComponent {
|
|
1260
|
+
selectedDocument;
|
|
1261
|
+
documentList;
|
|
1262
|
+
selectedDocumentChange = new EventEmitter();
|
|
1263
|
+
filteredDocuments = [];
|
|
1264
|
+
ngOnChanges() {
|
|
1265
|
+
this.updateFilteredDocuments();
|
|
1266
|
+
}
|
|
1267
|
+
updateFilteredDocuments() {
|
|
1268
|
+
if (this.documentList && this.selectedDocument) {
|
|
1269
|
+
this.filteredDocuments = this.documentList.filter((doc) => doc._id !== this.selectedDocument?._id);
|
|
1270
|
+
}
|
|
1271
|
+
else {
|
|
1272
|
+
this.filteredDocuments = this.documentList || [];
|
|
1273
|
+
}
|
|
1274
|
+
}
|
|
1275
|
+
handleDocumentClick(document) {
|
|
1276
|
+
this.selectedDocument = document;
|
|
1277
|
+
this.selectedDocumentChange.emit(this.selectedDocument);
|
|
1278
|
+
this.updateFilteredDocuments();
|
|
1279
|
+
}
|
|
1280
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: LinkedDocumentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1281
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: LinkedDocumentComponent, isStandalone: false, selector: "app-linked-document", inputs: { selectedDocument: "selectedDocument", documentList: "documentList" }, outputs: { selectedDocumentChange: "selectedDocumentChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"summary-card mb-4 pb-1\">\r\n <div class=\"card p-0 mb-0\"\r\n style=\"border-bottom: 1px solid;border-color: rgba(68, 72, 109, 0.2); border-bottom-right-radius: 0px;border-bottom-left-radius: 0px; background-color: #F9fafb;\">\r\n <div class=\"p-0\">\r\n <h4 class=\"m-0 pt-3 pl-3 mb-3\" style=\"font-size: 21px; font-weight: bold; \">Linked Documents</h4>\r\n </div>\r\n </div>\r\n <div class=\"card mb-0\" style=\"border-top-right-radius: 0px;border-top-left-radius: 0px;\">\r\n @for(document of filteredDocuments; track document){\r\n <div class=\"linkedDocument documentName m-2\">\r\n <div class=\"documentName\" (click)=\"handleDocumentClick(document)\">\r\n <span class=\"pi pi-link\"></span>\r\n {{document.fileName}}\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n \r\n \r\n </div>\r\n ", styles: [".documentName{font-family:inherit;text-decoration:underline;cursor:pointer}\n"] });
|
|
1282
|
+
}
|
|
1283
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: LinkedDocumentComponent, decorators: [{
|
|
1284
|
+
type: Component,
|
|
1285
|
+
args: [{ selector: 'app-linked-document', standalone: false, template: "<div class=\"summary-card mb-4 pb-1\">\r\n <div class=\"card p-0 mb-0\"\r\n style=\"border-bottom: 1px solid;border-color: rgba(68, 72, 109, 0.2); border-bottom-right-radius: 0px;border-bottom-left-radius: 0px; background-color: #F9fafb;\">\r\n <div class=\"p-0\">\r\n <h4 class=\"m-0 pt-3 pl-3 mb-3\" style=\"font-size: 21px; font-weight: bold; \">Linked Documents</h4>\r\n </div>\r\n </div>\r\n <div class=\"card mb-0\" style=\"border-top-right-radius: 0px;border-top-left-radius: 0px;\">\r\n @for(document of filteredDocuments; track document){\r\n <div class=\"linkedDocument documentName m-2\">\r\n <div class=\"documentName\" (click)=\"handleDocumentClick(document)\">\r\n <span class=\"pi pi-link\"></span>\r\n {{document.fileName}}\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n \r\n \r\n </div>\r\n ", styles: [".documentName{font-family:inherit;text-decoration:underline;cursor:pointer}\n"] }]
|
|
1286
|
+
}], propDecorators: { selectedDocument: [{
|
|
1287
|
+
type: Input
|
|
1288
|
+
}], documentList: [{
|
|
1289
|
+
type: Input
|
|
1290
|
+
}], selectedDocumentChange: [{
|
|
1291
|
+
type: Output
|
|
1292
|
+
}] } });
|
|
1293
|
+
|
|
1247
1294
|
/**
|
|
1248
1295
|
* Component for viewing and managing document details.
|
|
1249
1296
|
* @class DocumentViewerComponent
|
|
@@ -1257,6 +1304,11 @@ class DocumentViewerComponent {
|
|
|
1257
1304
|
* @type {*}
|
|
1258
1305
|
*/
|
|
1259
1306
|
selectedDocument; // <-- Made optional to prevent undefined issues
|
|
1307
|
+
/**
|
|
1308
|
+
* Get the selected document by user.
|
|
1309
|
+
* @type {*}
|
|
1310
|
+
*/
|
|
1311
|
+
documentList; // <-- Made optional to prevent undefined issues
|
|
1260
1312
|
/**
|
|
1261
1313
|
* Indicates whether a checkbox is selected.
|
|
1262
1314
|
* @type {boolean}
|
|
@@ -1300,6 +1352,10 @@ class DocumentViewerComponent {
|
|
|
1300
1352
|
this.alertData = DocumentAlertList.find((res) => res.status === this.selectedDocument?.status);
|
|
1301
1353
|
}
|
|
1302
1354
|
}
|
|
1355
|
+
handleSelectedDocument(document) {
|
|
1356
|
+
this.selectedDocument = document;
|
|
1357
|
+
this.documentService.set(this.selectedDocument);
|
|
1358
|
+
}
|
|
1303
1359
|
/**
|
|
1304
1360
|
* Determines if the given content type is an image.
|
|
1305
1361
|
* @param {string | undefined} contentType - The MIME type of the content.
|
|
@@ -1312,13 +1368,15 @@ class DocumentViewerComponent {
|
|
|
1312
1368
|
this.subscription.unsubscribe();
|
|
1313
1369
|
}
|
|
1314
1370
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentViewerComponent, deps: [{ token: DocumentHttpService }, { token: DocumentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1315
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: DocumentViewerComponent, isStandalone: false, selector: "document-viewer", inputs: { selectedDocument: "selectedDocument" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"p-fluid p-formgrid grid m-0\">\r\n <div class=\"col-12 md:col-12 md:flex justify-content-evenly\">\r\n @if(selectedDocument){\r\n <div id=\"outerContainer col-12 md:col-7\">\r\n <div\r\n *ngIf=\"isImage(selectedDocument?.contentType)\"\r\n class=\"img-container\"\r\n >\r\n <img\r\n [src]=\"selectedDocument?.documentUrl || ''\"\r\n class=\"uploadedImages\"\r\n alt=\"Document Image\"\r\n />\r\n </div>\r\n @if(selectedDocument?.contentType && selectedDocument?.contentType === \"application/pdf\"){\r\n <div class=\"pdf-container\">\r\n <pdf-viewer\r\n [src]=\"selectedDocument?.documentUrl || ''\"\r\n [rotation]=\"0\"\r\n [original-size]=\"false\"\r\n [show-all]=\"true\"\r\n [fit-to-page]=\"false\"\r\n [zoom]=\"1\"\r\n [zoom-scale]=\"'page-width'\"\r\n [stick-to-page]=\"false\"\r\n [render-text]=\"true\"\r\n [external-link-target]=\"'blank'\"\r\n [autoresize]=\"true\"\r\n [show-borders]=\"false\"\r\n style=\"width: 50vw; height: 75vh\"\r\n ></pdf-viewer>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"left-part col-12 md:col-3 pt-0\">\r\n <div class=\"alerts mb-4 pb-1\">\r\n <button\r\n type=\"button\"\r\n *ngIf=\"\r\n (alertData?.status !== 'Pending' && !!alertData?.status) ||\r\n alertData?.isAlert === false\r\n \"\r\n class=\"bg-green-500 border-none border-round-md flex align-items-center mb-3 p-2 px-3\"\r\n >\r\n <i\r\n class=\"pi pi-verified mr-2 cursor-pointer\"\r\n [ngStyle]=\"{\r\n color:\r\n alertData?.status === 'Pending' &&\r\n alertData?.isAlert !== false\r\n ? '#FFFFFF'\r\n : '#8A8EA6'\r\n }\"\r\n style=\"font-size: 20px\"\r\n ></i>\r\n <span class=\"font-semibold text-white\">Verified</span>\r\n </button>\r\n <div\r\n class=\"card mb-0\"\r\n [ngClass]=\"\r\n (alertData?.status === 'Pending' || !alertData?.status) &&\r\n alertData?.isAlert !== false\r\n ? 'alert-card'\r\n : 'success-alert'\r\n \"\r\n >\r\n <div class=\"flex align-items-center mb-2 pb-1\" *ngIf=\"alertData?.status !== 'Verified'\">\r\n <h4 class=\"mr-3 mt-0 mb-0 text-color font-bold\" style=\"font-size: 21px; font-weight: bold; border-color: rgba(68, 72, 109, 0.2) ;\" >Alerts</h4>\r\n <i\r\n class=\"pi pi-exclamation-triangle\"\r\n style=\"font-size: 20px\"\r\n [ngStyle]=\"{\r\n color:\r\n (alertData?.status === 'Pending' || !alertData?.status) &&\r\n alertData?.isAlert !== false\r\n ? '#FB392D'\r\n : '#8A8EA6'\r\n }\"\r\n ></i>\r\n </div>\r\n <p class=\"text-color mb-0\">{{ alertData?.alertMessage }}</p>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".alert-card{background-color:#fb392d1a}.success-alert{border-radius:10px;border:1px solid rgba(251,57,45,.1);background:linear-gradient(0deg,#dedede 0% 100%),#fff}.p-timeline-event-opposite{display:none}.decription{color:#676b89}.textAreaControl textarea{width:100%;resize:vertical;max-width:100%}.document-btn-wrapper .p-button-outlined{color:#f57c00}.document-viewer .p-dialog
|
|
1371
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: DocumentViewerComponent, isStandalone: false, selector: "document-viewer", inputs: { selectedDocument: "selectedDocument", documentList: "documentList" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"p-fluid p-formgrid grid m-0\">\r\n <div class=\"col-12 md:col-12 md:flex justify-content-evenly\">\r\n @if(selectedDocument){\r\n <div id=\"outerContainer col-12 md:col-7\">\r\n <div\r\n *ngIf=\"isImage(selectedDocument?.contentType)\"\r\n class=\"img-container\"\r\n >\r\n <img\r\n [src]=\"selectedDocument?.documentUrl || ''\"\r\n class=\"uploadedImages\"\r\n alt=\"Document Image\"\r\n />\r\n </div>\r\n @if(selectedDocument?.contentType && selectedDocument?.contentType === \"application/pdf\"){\r\n <div class=\"pdf-container\">\r\n <pdf-viewer\r\n [src]=\"selectedDocument?.documentUrl || ''\"\r\n [rotation]=\"0\"\r\n [original-size]=\"false\"\r\n [show-all]=\"true\"\r\n [fit-to-page]=\"false\"\r\n [zoom]=\"1\"\r\n [zoom-scale]=\"'page-width'\"\r\n [stick-to-page]=\"false\"\r\n [render-text]=\"true\"\r\n [external-link-target]=\"'blank'\"\r\n [autoresize]=\"true\"\r\n [show-borders]=\"false\"\r\n style=\"width: 50vw; height: 75vh\"\r\n ></pdf-viewer>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"left-part col-12 md:col-3 pt-0\">\r\n <div class=\"alerts mb-4 pb-1\">\r\n <button\r\n type=\"button\"\r\n *ngIf=\"\r\n (alertData?.status !== 'Pending' && !!alertData?.status) ||\r\n alertData?.isAlert === false\r\n \"\r\n class=\"bg-green-500 border-none border-round-md flex align-items-center mb-3 p-2 px-3\"\r\n >\r\n <i\r\n class=\"pi pi-verified mr-2 cursor-pointer\"\r\n [ngStyle]=\"{\r\n color:\r\n alertData?.status === 'Pending' &&\r\n alertData?.isAlert !== false\r\n ? '#FFFFFF'\r\n : '#8A8EA6'\r\n }\"\r\n style=\"font-size: 20px\"\r\n ></i>\r\n <span class=\"font-semibold text-white\">Verified</span>\r\n </button>\r\n <div\r\n class=\"card mb-0\"\r\n [ngClass]=\"\r\n (alertData?.status === 'Pending' || !alertData?.status) &&\r\n alertData?.isAlert !== false\r\n ? 'alert-card'\r\n : 'success-alert'\r\n \"\r\n >\r\n <div class=\"flex align-items-center mb-2 pb-1\" *ngIf=\"alertData?.status !== 'Verified'\">\r\n <h4 class=\"mr-3 mt-0 mb-0 text-color font-bold\" style=\"font-size: 21px; font-weight: bold; border-color: rgba(68, 72, 109, 0.2) ;\" >Alerts</h4>\r\n <i\r\n class=\"pi pi-exclamation-triangle\"\r\n style=\"font-size: 20px\"\r\n [ngStyle]=\"{\r\n color:\r\n (alertData?.status === 'Pending' || !alertData?.status) &&\r\n alertData?.isAlert !== false\r\n ? '#FB392D'\r\n : '#8A8EA6'\r\n }\"\r\n ></i>\r\n </div>\r\n <p class=\"text-color mb-0\">{{ alertData?.alertMessage }}</p>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n <app-linked-document (selectedDocumentChange)=\"handleSelectedDocument($event)\" [selectedDocument]=\"selectedDocument\" [documentList]=\"documentList\"></app-linked-document>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".alert-card{background-color:#fb392d1a}.success-alert{border-radius:10px;border:1px solid rgba(251,57,45,.1);background:linear-gradient(0deg,#dedede 0% 100%),#fff}.p-timeline-event-opposite{display:none}.decription{color:#676b89}.textAreaControl textarea{width:100%;resize:vertical;max-width:100%}.document-btn-wrapper .p-button-outlined{color:#f57c00}.document-viewer .p-dialog-header,.document-viewer .p-dialog-content{background-color:#ececf9}.uploadedImages{width:95%;height:100%;object-fit:contain}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.PdfViewerComponent, selector: "pdf-viewer", inputs: ["src", "c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }, { kind: "component", type: LinkedDocumentComponent, selector: "app-linked-document", inputs: ["selectedDocument", "documentList"], outputs: ["selectedDocumentChange"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
1316
1372
|
}
|
|
1317
1373
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentViewerComponent, decorators: [{
|
|
1318
1374
|
type: Component,
|
|
1319
|
-
args: [{ selector: 'document-viewer', standalone: false, encapsulation: ViewEncapsulation.None, template: "<div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"p-fluid p-formgrid grid m-0\">\r\n <div class=\"col-12 md:col-12 md:flex justify-content-evenly\">\r\n @if(selectedDocument){\r\n <div id=\"outerContainer col-12 md:col-7\">\r\n <div\r\n *ngIf=\"isImage(selectedDocument?.contentType)\"\r\n class=\"img-container\"\r\n >\r\n <img\r\n [src]=\"selectedDocument?.documentUrl || ''\"\r\n class=\"uploadedImages\"\r\n alt=\"Document Image\"\r\n />\r\n </div>\r\n @if(selectedDocument?.contentType && selectedDocument?.contentType === \"application/pdf\"){\r\n <div class=\"pdf-container\">\r\n <pdf-viewer\r\n [src]=\"selectedDocument?.documentUrl || ''\"\r\n [rotation]=\"0\"\r\n [original-size]=\"false\"\r\n [show-all]=\"true\"\r\n [fit-to-page]=\"false\"\r\n [zoom]=\"1\"\r\n [zoom-scale]=\"'page-width'\"\r\n [stick-to-page]=\"false\"\r\n [render-text]=\"true\"\r\n [external-link-target]=\"'blank'\"\r\n [autoresize]=\"true\"\r\n [show-borders]=\"false\"\r\n style=\"width: 50vw; height: 75vh\"\r\n ></pdf-viewer>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"left-part col-12 md:col-3 pt-0\">\r\n <div class=\"alerts mb-4 pb-1\">\r\n <button\r\n type=\"button\"\r\n *ngIf=\"\r\n (alertData?.status !== 'Pending' && !!alertData?.status) ||\r\n alertData?.isAlert === false\r\n \"\r\n class=\"bg-green-500 border-none border-round-md flex align-items-center mb-3 p-2 px-3\"\r\n >\r\n <i\r\n class=\"pi pi-verified mr-2 cursor-pointer\"\r\n [ngStyle]=\"{\r\n color:\r\n alertData?.status === 'Pending' &&\r\n alertData?.isAlert !== false\r\n ? '#FFFFFF'\r\n : '#8A8EA6'\r\n }\"\r\n style=\"font-size: 20px\"\r\n ></i>\r\n <span class=\"font-semibold text-white\">Verified</span>\r\n </button>\r\n <div\r\n class=\"card mb-0\"\r\n [ngClass]=\"\r\n (alertData?.status === 'Pending' || !alertData?.status) &&\r\n alertData?.isAlert !== false\r\n ? 'alert-card'\r\n : 'success-alert'\r\n \"\r\n >\r\n <div class=\"flex align-items-center mb-2 pb-1\" *ngIf=\"alertData?.status !== 'Verified'\">\r\n <h4 class=\"mr-3 mt-0 mb-0 text-color font-bold\" style=\"font-size: 21px; font-weight: bold; border-color: rgba(68, 72, 109, 0.2) ;\" >Alerts</h4>\r\n <i\r\n class=\"pi pi-exclamation-triangle\"\r\n style=\"font-size: 20px\"\r\n [ngStyle]=\"{\r\n color:\r\n (alertData?.status === 'Pending' || !alertData?.status) &&\r\n alertData?.isAlert !== false\r\n ? '#FB392D'\r\n : '#8A8EA6'\r\n }\"\r\n ></i>\r\n </div>\r\n <p class=\"text-color mb-0\">{{ alertData?.alertMessage }}</p>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".alert-card{background-color:#fb392d1a}.success-alert{border-radius:10px;border:1px solid rgba(251,57,45,.1);background:linear-gradient(0deg,#dedede 0% 100%),#fff}.p-timeline-event-opposite{display:none}.decription{color:#676b89}.textAreaControl textarea{width:100%;resize:vertical;max-width:100%}.document-btn-wrapper .p-button-outlined{color:#f57c00}.document-viewer .p-dialog
|
|
1375
|
+
args: [{ selector: 'document-viewer', standalone: false, encapsulation: ViewEncapsulation.None, template: "<div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"p-fluid p-formgrid grid m-0\">\r\n <div class=\"col-12 md:col-12 md:flex justify-content-evenly\">\r\n @if(selectedDocument){\r\n <div id=\"outerContainer col-12 md:col-7\">\r\n <div\r\n *ngIf=\"isImage(selectedDocument?.contentType)\"\r\n class=\"img-container\"\r\n >\r\n <img\r\n [src]=\"selectedDocument?.documentUrl || ''\"\r\n class=\"uploadedImages\"\r\n alt=\"Document Image\"\r\n />\r\n </div>\r\n @if(selectedDocument?.contentType && selectedDocument?.contentType === \"application/pdf\"){\r\n <div class=\"pdf-container\">\r\n <pdf-viewer\r\n [src]=\"selectedDocument?.documentUrl || ''\"\r\n [rotation]=\"0\"\r\n [original-size]=\"false\"\r\n [show-all]=\"true\"\r\n [fit-to-page]=\"false\"\r\n [zoom]=\"1\"\r\n [zoom-scale]=\"'page-width'\"\r\n [stick-to-page]=\"false\"\r\n [render-text]=\"true\"\r\n [external-link-target]=\"'blank'\"\r\n [autoresize]=\"true\"\r\n [show-borders]=\"false\"\r\n style=\"width: 50vw; height: 75vh\"\r\n ></pdf-viewer>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <div class=\"left-part col-12 md:col-3 pt-0\">\r\n <div class=\"alerts mb-4 pb-1\">\r\n <button\r\n type=\"button\"\r\n *ngIf=\"\r\n (alertData?.status !== 'Pending' && !!alertData?.status) ||\r\n alertData?.isAlert === false\r\n \"\r\n class=\"bg-green-500 border-none border-round-md flex align-items-center mb-3 p-2 px-3\"\r\n >\r\n <i\r\n class=\"pi pi-verified mr-2 cursor-pointer\"\r\n [ngStyle]=\"{\r\n color:\r\n alertData?.status === 'Pending' &&\r\n alertData?.isAlert !== false\r\n ? '#FFFFFF'\r\n : '#8A8EA6'\r\n }\"\r\n style=\"font-size: 20px\"\r\n ></i>\r\n <span class=\"font-semibold text-white\">Verified</span>\r\n </button>\r\n <div\r\n class=\"card mb-0\"\r\n [ngClass]=\"\r\n (alertData?.status === 'Pending' || !alertData?.status) &&\r\n alertData?.isAlert !== false\r\n ? 'alert-card'\r\n : 'success-alert'\r\n \"\r\n >\r\n <div class=\"flex align-items-center mb-2 pb-1\" *ngIf=\"alertData?.status !== 'Verified'\">\r\n <h4 class=\"mr-3 mt-0 mb-0 text-color font-bold\" style=\"font-size: 21px; font-weight: bold; border-color: rgba(68, 72, 109, 0.2) ;\" >Alerts</h4>\r\n <i\r\n class=\"pi pi-exclamation-triangle\"\r\n style=\"font-size: 20px\"\r\n [ngStyle]=\"{\r\n color:\r\n (alertData?.status === 'Pending' || !alertData?.status) &&\r\n alertData?.isAlert !== false\r\n ? '#FB392D'\r\n : '#8A8EA6'\r\n }\"\r\n ></i>\r\n </div>\r\n <p class=\"text-color mb-0\">{{ alertData?.alertMessage }}</p>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n <app-linked-document (selectedDocumentChange)=\"handleSelectedDocument($event)\" [selectedDocument]=\"selectedDocument\" [documentList]=\"documentList\"></app-linked-document>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".alert-card{background-color:#fb392d1a}.success-alert{border-radius:10px;border:1px solid rgba(251,57,45,.1);background:linear-gradient(0deg,#dedede 0% 100%),#fff}.p-timeline-event-opposite{display:none}.decription{color:#676b89}.textAreaControl textarea{width:100%;resize:vertical;max-width:100%}.document-btn-wrapper .p-button-outlined{color:#f57c00}.document-viewer .p-dialog-header,.document-viewer .p-dialog-content{background-color:#ececf9}.uploadedImages{width:95%;height:100%;object-fit:contain}\n"] }]
|
|
1320
1376
|
}], ctorParameters: () => [{ type: DocumentHttpService }, { type: DocumentService }], propDecorators: { selectedDocument: [{
|
|
1321
1377
|
type: Input
|
|
1378
|
+
}], documentList: [{
|
|
1379
|
+
type: Input
|
|
1322
1380
|
}] } });
|
|
1323
1381
|
|
|
1324
1382
|
/**
|
|
@@ -1645,11 +1703,11 @@ class DocumentListComponent {
|
|
|
1645
1703
|
this.isSidebarVisible = isVisible;
|
|
1646
1704
|
}
|
|
1647
1705
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentListComponent, deps: [{ token: DocumentUploadService }, { token: DocumentHttpService }, { token: DocumentQuery }, { token: DocumentStore }], target: i0.ɵɵFactoryTarget.Component });
|
|
1648
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: DocumentListComponent, isStandalone: false, selector: "lib-document-list", inputs: { contextId: "contextId", isUploadButtonVisible: "isUploadButtonVisible", documentList: "documentList" }, outputs: { onRefresh: "onRefresh" }, ngImport: i0, template: "<div class=\"document-viewer\">\r\n <p-dialog [(visible)]=\"isdialogVisible\" [modal]=\"true\" (onHide)=\"handleCloseModel()\"
|
|
1706
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: DocumentListComponent, isStandalone: false, selector: "lib-document-list", inputs: { contextId: "contextId", isUploadButtonVisible: "isUploadButtonVisible", documentList: "documentList" }, outputs: { onRefresh: "onRefresh" }, ngImport: i0, template: "<div class=\"document-viewer\">\r\n <p-dialog [(visible)]=\"isdialogVisible\" [modal]=\"true\" (onHide)=\"handleCloseModel()\" [style]=\"{ width: '90vw', height : '100vh' }\"\r\n [draggable]=\"false\" [closable]=\"true\">\r\n <document-viewer [selectedDocument]=\"selectedDocument\" [documentList]=\"documentList\">\r\n <ng-content></ng-content>\r\n </document-viewer>\r\n </p-dialog>\r\n</div>\r\n\r\n<div class=\"col-12 p-0\">\r\n <div class=\"card p-0 mb-0 document-list-wrapper\">\r\n <p-accordion>\r\n <p-accordionTab [selected]=\"true\" class=\"line-height-2 m-0\">\r\n <ng-template pTemplate=\"header\" let-active=\"active\">\r\n <div class=\"flex align-items-center justify-content-between w-full\">\r\n <span class=\"flex align-items-center gap-2 document-title-wrapper\">\r\n Documents\r\n </span>\r\n @if(isUploadButtonVisible){\r\n <button pButton pRipple class=\"p-button-raised col-3\" [permission]=\"PERMISSION.DOCUMENT_POST\" type=\"button\" label=\"Upload File\"\r\n style=\"border-radius: 10px;\" (click)=\"handleFileUploadClick($event)\"></button>\r\n }\r\n </div>\r\n </ng-template>\r\n @for(document of documentList; track document){\r\n <lib-document-list-item [document]=\"document\"\r\n (documentClick)=\"handleClickForDocument($event)\"></lib-document-list-item>\r\n }\r\n </p-accordionTab>\r\n </p-accordion>\r\n </div>\r\n</div>\r\n<div class=\"grid m-0\">\r\n <div class=\"col-12 p-0\">\r\n <p-sidebar [(visible)]=\"isSidebarVisible\" position=\"right\" [styleClass]=\"'right-sidebar'\" class=\"relative\">\r\n <ng-template pTemplate=\"header\">\r\n <p-messages [(value)]=\"messages\" [enableService]=\"false\" />\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <div class=\"side-bar-con\">\r\n <lib-document-upload [contextId]=\"contextId\"></lib-document-upload>\r\n <div class=\"p-fluid\">\r\n <div class=\"field\">\r\n <label for=\"city\">Select Folder</label>\r\n <p-dropdown id=\"city\" optionLabel=\"label\" optionValue=\"value\" [options]=\"options\"\r\n placeholder=\"Select a Folder\" [(ngModel)]=\"selectedOption\"></p-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"footer\" class=\"bg-gray-100 p-0\">\r\n <div class=\"bg-gray-100 p-4\">\r\n <p-button label=\"Save\" class=\"p-button-rounded p-button-success save-btn\" (click)=\"handleUploadDocument()\"\r\n [disabled]=\"!selectedOption\">\r\n </p-button>\r\n </div>\r\n </ng-template>\r\n </p-sidebar>\r\n </div>\r\n</div>", styles: [".document-list-wrapper .p-accordion-header-link{padding:.5rem}.document-list-wrapper .p-sidebar-right,.right-sidebar{width:35%}.document-title-wrapper{font-size:20px;font-weight:700;color:var(--text-color)}.document-input-field{display:flex;flex-direction:column}.document-input-field input{width:100%;height:46px;padding:10px 15px;gap:10px;border-radius:10px;outline:none;border:1px solid rgba(76,98,146,.1019607843);font-size:15px}label{color:#0f1729;font-weight:600}.document-list-dropDown .p-element{padding:10px 0 10px 15px}.document-list-dropDown .p-dropdown{border-radius:10px!important}.side-bar-con{display:flex;flex-direction:column}.save-btn-con{width:100%;border-top:1px solid rgba(76,98,146,.2);background:#4c629214;padding:13px 40px}.save-btn .p-button{height:45px!important;width:140px;border-radius:10px}.p-sidebar-footer{padding:0}\n"], dependencies: [{ kind: "component", type: i5$1.Accordion, selector: "p-accordion", inputs: ["multiple", "style", "styleClass", "expandIcon", "collapseIcon", "activeIndex", "selectOnFocus", "headerAriaLevel"], outputs: ["onClose", "onOpen", "activeIndexChange"] }, { kind: "component", type: i5$1.AccordionTab, selector: "p-accordionTab", inputs: ["id", "header", "headerStyle", "tabStyle", "contentStyle", "tabStyleClass", "headerStyleClass", "contentStyleClass", "disabled", "cache", "transitionOptions", "iconPos", "selected", "headerAriaLevel"], outputs: ["selectedChange"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i7.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: i7.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i8$1.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "component", type: i9.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i11.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: i12.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "autoShowPanelOnPrintableCharacterKeyDown", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: DocumentListItemComponent, selector: "lib-document-list-item", inputs: ["document"], outputs: ["documentClick"] }, { kind: "component", type: DocumentUploadComponent, selector: "lib-document-upload", inputs: ["contextId"] }, { kind: "component", type: DocumentViewerComponent, selector: "document-viewer", inputs: ["selectedDocument", "documentList"] }, { kind: "directive", type: HasPermissionDirective, selector: "[permission]", inputs: ["permission"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
1649
1707
|
}
|
|
1650
1708
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentListComponent, decorators: [{
|
|
1651
1709
|
type: Component,
|
|
1652
|
-
args: [{ selector: 'lib-document-list', standalone: false, encapsulation: ViewEncapsulation.None, template: "<div class=\"document-viewer\">\r\n <p-dialog [(visible)]=\"isdialogVisible\" [modal]=\"true\" (onHide)=\"handleCloseModel()\"
|
|
1710
|
+
args: [{ selector: 'lib-document-list', standalone: false, encapsulation: ViewEncapsulation.None, template: "<div class=\"document-viewer\">\r\n <p-dialog [(visible)]=\"isdialogVisible\" [modal]=\"true\" (onHide)=\"handleCloseModel()\" [style]=\"{ width: '90vw', height : '100vh' }\"\r\n [draggable]=\"false\" [closable]=\"true\">\r\n <document-viewer [selectedDocument]=\"selectedDocument\" [documentList]=\"documentList\">\r\n <ng-content></ng-content>\r\n </document-viewer>\r\n </p-dialog>\r\n</div>\r\n\r\n<div class=\"col-12 p-0\">\r\n <div class=\"card p-0 mb-0 document-list-wrapper\">\r\n <p-accordion>\r\n <p-accordionTab [selected]=\"true\" class=\"line-height-2 m-0\">\r\n <ng-template pTemplate=\"header\" let-active=\"active\">\r\n <div class=\"flex align-items-center justify-content-between w-full\">\r\n <span class=\"flex align-items-center gap-2 document-title-wrapper\">\r\n Documents\r\n </span>\r\n @if(isUploadButtonVisible){\r\n <button pButton pRipple class=\"p-button-raised col-3\" [permission]=\"PERMISSION.DOCUMENT_POST\" type=\"button\" label=\"Upload File\"\r\n style=\"border-radius: 10px;\" (click)=\"handleFileUploadClick($event)\"></button>\r\n }\r\n </div>\r\n </ng-template>\r\n @for(document of documentList; track document){\r\n <lib-document-list-item [document]=\"document\"\r\n (documentClick)=\"handleClickForDocument($event)\"></lib-document-list-item>\r\n }\r\n </p-accordionTab>\r\n </p-accordion>\r\n </div>\r\n</div>\r\n<div class=\"grid m-0\">\r\n <div class=\"col-12 p-0\">\r\n <p-sidebar [(visible)]=\"isSidebarVisible\" position=\"right\" [styleClass]=\"'right-sidebar'\" class=\"relative\">\r\n <ng-template pTemplate=\"header\">\r\n <p-messages [(value)]=\"messages\" [enableService]=\"false\" />\r\n </ng-template>\r\n <ng-template pTemplate=\"content\">\r\n <div class=\"side-bar-con\">\r\n <lib-document-upload [contextId]=\"contextId\"></lib-document-upload>\r\n <div class=\"p-fluid\">\r\n <div class=\"field\">\r\n <label for=\"city\">Select Folder</label>\r\n <p-dropdown id=\"city\" optionLabel=\"label\" optionValue=\"value\" [options]=\"options\"\r\n placeholder=\"Select a Folder\" [(ngModel)]=\"selectedOption\"></p-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"footer\" class=\"bg-gray-100 p-0\">\r\n <div class=\"bg-gray-100 p-4\">\r\n <p-button label=\"Save\" class=\"p-button-rounded p-button-success save-btn\" (click)=\"handleUploadDocument()\"\r\n [disabled]=\"!selectedOption\">\r\n </p-button>\r\n </div>\r\n </ng-template>\r\n </p-sidebar>\r\n </div>\r\n</div>", styles: [".document-list-wrapper .p-accordion-header-link{padding:.5rem}.document-list-wrapper .p-sidebar-right,.right-sidebar{width:35%}.document-title-wrapper{font-size:20px;font-weight:700;color:var(--text-color)}.document-input-field{display:flex;flex-direction:column}.document-input-field input{width:100%;height:46px;padding:10px 15px;gap:10px;border-radius:10px;outline:none;border:1px solid rgba(76,98,146,.1019607843);font-size:15px}label{color:#0f1729;font-weight:600}.document-list-dropDown .p-element{padding:10px 0 10px 15px}.document-list-dropDown .p-dropdown{border-radius:10px!important}.side-bar-con{display:flex;flex-direction:column}.save-btn-con{width:100%;border-top:1px solid rgba(76,98,146,.2);background:#4c629214;padding:13px 40px}.save-btn .p-button{height:45px!important;width:140px;border-radius:10px}.p-sidebar-footer{padding:0}\n"] }]
|
|
1653
1711
|
}], ctorParameters: () => [{ type: DocumentUploadService }, { type: DocumentHttpService }, { type: DocumentQuery }, { type: DocumentStore }], propDecorators: { onRefresh: [{
|
|
1654
1712
|
type: Output
|
|
1655
1713
|
}], contextId: [{
|
|
@@ -1666,6 +1724,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
1666
1724
|
* @typedef {DocumentContainerComponent}
|
|
1667
1725
|
*/
|
|
1668
1726
|
class DocumentContainerComponent {
|
|
1727
|
+
documentStore;
|
|
1669
1728
|
documentService;
|
|
1670
1729
|
documentQuery;
|
|
1671
1730
|
documentHttpService;
|
|
@@ -1675,7 +1734,8 @@ class DocumentContainerComponent {
|
|
|
1675
1734
|
* @param {DocumentQuery} documentQuery - Query service to manage document-related state.
|
|
1676
1735
|
* @param {DocumentHttpService} documentHttpService - Service to make HTTP requests related to documents.
|
|
1677
1736
|
*/
|
|
1678
|
-
constructor(documentService, documentQuery, documentHttpService) {
|
|
1737
|
+
constructor(documentStore, documentService, documentQuery, documentHttpService) {
|
|
1738
|
+
this.documentStore = documentStore;
|
|
1679
1739
|
this.documentService = documentService;
|
|
1680
1740
|
this.documentQuery = documentQuery;
|
|
1681
1741
|
this.documentHttpService = documentHttpService;
|
|
@@ -1783,6 +1843,7 @@ class DocumentContainerComponent {
|
|
|
1783
1843
|
next: (documentList) => {
|
|
1784
1844
|
if (documentList) {
|
|
1785
1845
|
this.documentList = documentList;
|
|
1846
|
+
this.documentStore.setDocumentList(documentList);
|
|
1786
1847
|
}
|
|
1787
1848
|
else {
|
|
1788
1849
|
console.error(ERRORS.ERROR_FETCHING_DOCUMENTS);
|
|
@@ -1804,13 +1865,13 @@ class DocumentContainerComponent {
|
|
|
1804
1865
|
ngOnDestroy() {
|
|
1805
1866
|
this.subscription.unsubscribe();
|
|
1806
1867
|
}
|
|
1807
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentContainerComponent, deps: [{ token: DocumentService$1 }, { token: DocumentQuery }, { token: DocumentHttpService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1868
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentContainerComponent, deps: [{ token: DocumentStore }, { token: DocumentService$1 }, { token: DocumentQuery }, { token: DocumentHttpService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1808
1869
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: DocumentContainerComponent, isStandalone: false, selector: "lib-document-container", inputs: { contextId: "contextId", showFolderList: "showFolderList", isUploadButtonVisible: "isUploadButtonVisible" }, ngImport: i0, template: "<div class=\"grid m-0 h-full\">\r\n <div class=\"col-12 md:col-12 lg:col-12 p-0 h-full\" [ngClass]=\"showFolderList ? 'custom-scroll' : ''\">\r\n @if(showFolderList){\r\n <div>\r\n <lib-folder-container [documentList]=\"documentList\" [folderList]=\"folderList\" [contextId]=\"contextId\"></lib-folder-container>\r\n </div>\r\n }\r\n <div [ngClass]=\"showFolderList ? 'mt-3' : ''\">\r\n <lib-document-list [documentList]=\"documentList\" [contextId]=\"contextId\" [isUploadButtonVisible]=\"isUploadButtonVisible\" (onRefresh)=\"fetchFolder()\">\r\n <ng-content></ng-content>\r\n </lib-document-list>\r\n </div>\r\n </div>\r\n</div>", styles: [".custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: FolderContainerComponent, selector: "lib-folder-container", inputs: ["documentList", "folderList", "contextId"] }, { kind: "component", type: DocumentListComponent, selector: "lib-document-list", inputs: ["contextId", "isUploadButtonVisible", "documentList"], outputs: ["onRefresh"] }] });
|
|
1809
1870
|
}
|
|
1810
1871
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentContainerComponent, decorators: [{
|
|
1811
1872
|
type: Component,
|
|
1812
1873
|
args: [{ selector: 'lib-document-container', standalone: false, template: "<div class=\"grid m-0 h-full\">\r\n <div class=\"col-12 md:col-12 lg:col-12 p-0 h-full\" [ngClass]=\"showFolderList ? 'custom-scroll' : ''\">\r\n @if(showFolderList){\r\n <div>\r\n <lib-folder-container [documentList]=\"documentList\" [folderList]=\"folderList\" [contextId]=\"contextId\"></lib-folder-container>\r\n </div>\r\n }\r\n <div [ngClass]=\"showFolderList ? 'mt-3' : ''\">\r\n <lib-document-list [documentList]=\"documentList\" [contextId]=\"contextId\" [isUploadButtonVisible]=\"isUploadButtonVisible\" (onRefresh)=\"fetchFolder()\">\r\n <ng-content></ng-content>\r\n </lib-document-list>\r\n </div>\r\n </div>\r\n</div>", styles: [".custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}\n"] }]
|
|
1813
|
-
}], ctorParameters: () => [{ type: DocumentService$1 }, { type: DocumentQuery }, { type: DocumentHttpService }], propDecorators: { contextId: [{
|
|
1874
|
+
}], ctorParameters: () => [{ type: DocumentStore }, { type: DocumentService$1 }, { type: DocumentQuery }, { type: DocumentHttpService }], propDecorators: { contextId: [{
|
|
1814
1875
|
type: Input
|
|
1815
1876
|
}], showFolderList: [{
|
|
1816
1877
|
type: Input
|
|
@@ -1886,6 +1947,73 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
1886
1947
|
}]
|
|
1887
1948
|
}], ctorParameters: () => [{ type: DocumentService }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
|
|
1888
1949
|
|
|
1950
|
+
class ErrorInterceptor {
|
|
1951
|
+
router;
|
|
1952
|
+
sessionService;
|
|
1953
|
+
appconfigService;
|
|
1954
|
+
constructor(router, sessionService, appconfigService) {
|
|
1955
|
+
this.router = router;
|
|
1956
|
+
this.sessionService = sessionService;
|
|
1957
|
+
this.appconfigService = appconfigService;
|
|
1958
|
+
}
|
|
1959
|
+
intercept(request, next) {
|
|
1960
|
+
const token = "118c9918-dd59-4faa-a031-513d53210ca4";
|
|
1961
|
+
const loginUrl = `${this.appconfigService.apiBaseUrl}Auth/login`;
|
|
1962
|
+
if (token && request.url !== loginUrl) {
|
|
1963
|
+
request = request.clone({
|
|
1964
|
+
setHeaders: {
|
|
1965
|
+
Authorization: `Bearer ${token}`,
|
|
1966
|
+
},
|
|
1967
|
+
});
|
|
1968
|
+
}
|
|
1969
|
+
return next.handle(request).pipe(catchError$1((error) => {
|
|
1970
|
+
// const errorMessage = {
|
|
1971
|
+
// status: error.status,
|
|
1972
|
+
// url: request.url,
|
|
1973
|
+
// message: error?.error?.message ?? error?.error?.error?.message,
|
|
1974
|
+
// statusText : error.statusText
|
|
1975
|
+
// };
|
|
1976
|
+
// if (error.status >= 400 && error.status < 500) {
|
|
1977
|
+
// this.baseStore.errors = [errorMessage]
|
|
1978
|
+
// this.baseStore.errorMessage$.next(this.baseStore.errors);
|
|
1979
|
+
// }
|
|
1980
|
+
// if (request.url === loginUrl && error.status === 401) {
|
|
1981
|
+
// this.baseStore.errors.push( errorMessage );
|
|
1982
|
+
// this.baseStore.errorMessage$.next(this.baseStore.errors);
|
|
1983
|
+
// }
|
|
1984
|
+
// if (error.status === 0) {
|
|
1985
|
+
// console.error(ERROR.NETWORK_ERROR,error?.error?.error?.message);
|
|
1986
|
+
// } else if (error.status >= 500) {
|
|
1987
|
+
// console.error(ERROR.SERVER_ERROR, error?.error?.error?.message);
|
|
1988
|
+
// this.router.navigate([ROUTES.ERROR]);
|
|
1989
|
+
// } else if (error.status === 401) {
|
|
1990
|
+
// localStorage.clear()
|
|
1991
|
+
// this.baseStore.errorMessage$.next([]);
|
|
1992
|
+
// this.router.navigate([ROUTES.HOME]);
|
|
1993
|
+
// } else if (error.status === 401 && request.url !== loginUrl) {
|
|
1994
|
+
// localStorage.clear()
|
|
1995
|
+
// this.baseStore.errorMessage$.next([]);
|
|
1996
|
+
// this.router.navigate([ROUTES.HOME]);
|
|
1997
|
+
// }else if (error.status === 403) {
|
|
1998
|
+
// localStorage.clear()
|
|
1999
|
+
// this.baseStore.errorMessage$.next([]);
|
|
2000
|
+
// this.router.navigate([ROUTES.ERROR]);
|
|
2001
|
+
// } else {
|
|
2002
|
+
// console.error(error?.error?.error?.message);
|
|
2003
|
+
// }
|
|
2004
|
+
return throwError(() => new Error(error?.error?.error?.message));
|
|
2005
|
+
}));
|
|
2006
|
+
}
|
|
2007
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ErrorInterceptor, deps: [{ token: i1.Router }, { token: SessionService }, { token: AppConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2008
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ErrorInterceptor, providedIn: "root" });
|
|
2009
|
+
}
|
|
2010
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ErrorInterceptor, decorators: [{
|
|
2011
|
+
type: Injectable,
|
|
2012
|
+
args: [{
|
|
2013
|
+
providedIn: "root",
|
|
2014
|
+
}]
|
|
2015
|
+
}], ctorParameters: () => [{ type: i1.Router }, { type: SessionService }, { type: AppConfigService }] });
|
|
2016
|
+
|
|
1889
2017
|
/**
|
|
1890
2018
|
* @module DocumentModule
|
|
1891
2019
|
*
|
|
@@ -1934,9 +2062,13 @@ class DocumentModule {
|
|
|
1934
2062
|
*/
|
|
1935
2063
|
DocumentDirective,
|
|
1936
2064
|
/**
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
HasPermissionDirective
|
|
2065
|
+
* A directive to give permission.
|
|
2066
|
+
*/
|
|
2067
|
+
HasPermissionDirective,
|
|
2068
|
+
/**
|
|
2069
|
+
* A component which have linked documents.
|
|
2070
|
+
*/
|
|
2071
|
+
LinkedDocumentComponent], imports: [
|
|
1940
2072
|
/**
|
|
1941
2073
|
* Angular's CommonModule is imported to access common directives like `ngIf` and `ngFor`.
|
|
1942
2074
|
*/
|
|
@@ -2056,6 +2188,11 @@ class DocumentModule {
|
|
|
2056
2188
|
}),
|
|
2057
2189
|
deps: [AppConfigService],
|
|
2058
2190
|
multi: true,
|
|
2191
|
+
},
|
|
2192
|
+
{
|
|
2193
|
+
provide: HTTP_INTERCEPTORS,
|
|
2194
|
+
useClass: ErrorInterceptor,
|
|
2195
|
+
multi: true
|
|
2059
2196
|
}
|
|
2060
2197
|
], imports: [
|
|
2061
2198
|
/**
|
|
@@ -2169,9 +2306,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
2169
2306
|
*/
|
|
2170
2307
|
DocumentDirective,
|
|
2171
2308
|
/**
|
|
2172
|
-
|
|
2173
|
-
|
|
2309
|
+
* A directive to give permission.
|
|
2310
|
+
*/
|
|
2174
2311
|
HasPermissionDirective,
|
|
2312
|
+
/**
|
|
2313
|
+
* A component which have linked documents.
|
|
2314
|
+
*/
|
|
2315
|
+
LinkedDocumentComponent,
|
|
2175
2316
|
],
|
|
2176
2317
|
imports: [
|
|
2177
2318
|
/**
|
|
@@ -2296,6 +2437,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
2296
2437
|
}),
|
|
2297
2438
|
deps: [AppConfigService],
|
|
2298
2439
|
multi: true,
|
|
2440
|
+
},
|
|
2441
|
+
{
|
|
2442
|
+
provide: HTTP_INTERCEPTORS,
|
|
2443
|
+
useClass: ErrorInterceptor,
|
|
2444
|
+
multi: true
|
|
2299
2445
|
}
|
|
2300
2446
|
]
|
|
2301
2447
|
}]
|