cat-documents-ng 0.1.13 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/Shared/constant/SHARED.d.ts +0 -6
- package/fesm2022/cat-documents-ng.mjs +172 -134
- package/fesm2022/cat-documents-ng.mjs.map +1 -1
- package/lib/document/components/document-container/document-container.component.d.ts +7 -4
- package/lib/document/components/document-list/document-list.component.d.ts +1 -18
- package/lib/document/components/document-viewer/document-viewer.component.d.ts +9 -1
- package/lib/document/components/linked-document/linked-document.component.d.ts +38 -0
- package/lib/document/document.module.d.ts +19 -18
- package/lib/document/models/document.model.d.ts +0 -1
- package/lib/document/services/document-http.service.d.ts +1 -10
- package/lib/document/state/document.query.d.ts +7 -1
- 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
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Injectable, Component, Input, EventEmitter, Output, ViewEncapsulation, ViewChild, Directive, APP_INITIALIZER, NgModule } from '@angular/core';
|
|
3
3
|
import * as i5 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
-
import { firstValueFrom, tap,
|
|
5
|
+
import { firstValueFrom, tap, catchError, throwError, BehaviorSubject, Subscription } from 'rxjs';
|
|
6
6
|
import { __decorate } from 'tslib';
|
|
7
7
|
import { EntityStore, StoreConfig, QueryEntity } from '@datorama/akita';
|
|
8
8
|
import * as i2 from '@angular/common/http';
|
|
@@ -22,8 +22,6 @@ import * as i11 from 'primeng/dialog';
|
|
|
22
22
|
import { DialogModule } from 'primeng/dialog';
|
|
23
23
|
import * as i12 from 'primeng/dropdown';
|
|
24
24
|
import { DropdownModule } from 'primeng/dropdown';
|
|
25
|
-
import * as i13 from 'primeng/inputtext';
|
|
26
|
-
import { InputTextModule } from 'primeng/inputtext';
|
|
27
25
|
import * as i7$1 from 'primeng/fileupload';
|
|
28
26
|
import { FileUploadModule } from 'primeng/fileupload';
|
|
29
27
|
import * as i8 from 'primeng/progressbar';
|
|
@@ -36,6 +34,7 @@ import { ListboxModule } from 'primeng/listbox';
|
|
|
36
34
|
import { TimelineModule } from 'primeng/timeline';
|
|
37
35
|
import { CheckboxModule } from 'primeng/checkbox';
|
|
38
36
|
import { InputTextareaModule } from 'primeng/inputtextarea';
|
|
37
|
+
import { InputTextModule } from 'primeng/inputtext';
|
|
39
38
|
|
|
40
39
|
/**
|
|
41
40
|
* The `SHARED` class contains shared constants used across the application.
|
|
@@ -174,12 +173,6 @@ class SHARED {
|
|
|
174
173
|
* @type {string}
|
|
175
174
|
*/
|
|
176
175
|
static UPLOAD_ERROR_DETAILS = 'Required form data is missing. Please ensure the document and all required fields are provided.';
|
|
177
|
-
/**
|
|
178
|
-
* Represents the message prefix for a successful document name update.
|
|
179
|
-
* @static
|
|
180
|
-
* @type {string}
|
|
181
|
-
*/
|
|
182
|
-
static UPDATE_DOCUMENT_NAME = 'Document name updated for ID:';
|
|
183
176
|
}
|
|
184
177
|
/**
|
|
185
178
|
* `DUMMYDOCUMENTLIST` is a mock list of document objects used for testing and development purposes.
|
|
@@ -358,67 +351,6 @@ class ERRORS {
|
|
|
358
351
|
static ERROR_DOCUMENT_TYPES = "Error fetching document types:";
|
|
359
352
|
}
|
|
360
353
|
|
|
361
|
-
/**
|
|
362
|
-
* Class that holds the URLs used throughout the application.
|
|
363
|
-
* These URLs are typically used for making API requests and accessing various resources.
|
|
364
|
-
* @class URLS
|
|
365
|
-
* @typedef {URLS}
|
|
366
|
-
*/
|
|
367
|
-
class URLS {
|
|
368
|
-
/**
|
|
369
|
-
* The URL to fetch the application configuration file.
|
|
370
|
-
* This JSON file typically contains settings and options for the application.
|
|
371
|
-
* @static
|
|
372
|
-
* @type {string}
|
|
373
|
-
*/
|
|
374
|
-
static CONFIGFILEURL = "assets/config/api.config.json";
|
|
375
|
-
/**
|
|
376
|
-
* The URL endpoint for document uploads.
|
|
377
|
-
* Used to send documents to the server for storage or processing.
|
|
378
|
-
* @static
|
|
379
|
-
* @type {string}
|
|
380
|
-
*/
|
|
381
|
-
static DOCUMENT_UPLOAD = "Documents";
|
|
382
|
-
/**
|
|
383
|
-
* The query parameter to pass a context ID in API requests.
|
|
384
|
-
* Used to specify the context for certain API calls, such as filtering or scoping the request.
|
|
385
|
-
* @static
|
|
386
|
-
* @type {string}
|
|
387
|
-
*/
|
|
388
|
-
static CONTEXT = "?contextId=";
|
|
389
|
-
/**
|
|
390
|
-
* The query parameter to pass a document ID in API requests.
|
|
391
|
-
* @static
|
|
392
|
-
* @type {string}
|
|
393
|
-
*/
|
|
394
|
-
static DOCUMENT_TYPES = "documentTypes";
|
|
395
|
-
/**
|
|
396
|
-
* The query parameter to pass a context ID in API requests.
|
|
397
|
-
* @static
|
|
398
|
-
* @type {string}
|
|
399
|
-
*/
|
|
400
|
-
static FOLDERS = "/folders?contextId=";
|
|
401
|
-
/**
|
|
402
|
-
* The query parameter to pass a document ID in API requests.
|
|
403
|
-
* @static
|
|
404
|
-
* @type {string}
|
|
405
|
-
*/
|
|
406
|
-
static ALERT_BY_DOCUMENT_ID = "alerts?documentId=";
|
|
407
|
-
/**
|
|
408
|
-
* The query parameter to pass a document ID in API requests.
|
|
409
|
-
* @static
|
|
410
|
-
* @type {string}
|
|
411
|
-
*/
|
|
412
|
-
static PARENT_DOCUMENT_TYPE_ID = "parentDocumentType?parentDocumentTypeId=";
|
|
413
|
-
/**
|
|
414
|
-
* The query parameter to pass a context ID in API requests.
|
|
415
|
-
* Used to specify the context for certain API calls, such as filtering or scoping the request.
|
|
416
|
-
* @static
|
|
417
|
-
* @type {string}
|
|
418
|
-
*/
|
|
419
|
-
static CONTEXT_ID = "&contextId=";
|
|
420
|
-
}
|
|
421
|
-
|
|
422
354
|
/**
|
|
423
355
|
* Creates the initial state for the `DocumentState` store.
|
|
424
356
|
* This function provides default values for all properties in the `DocumentState` interface,
|
|
@@ -436,7 +368,8 @@ function createInitialState() {
|
|
|
436
368
|
parentDocumentTypeId: null,
|
|
437
369
|
documentAlert: { _id: '' },
|
|
438
370
|
folders: [],
|
|
439
|
-
messages: []
|
|
371
|
+
messages: [],
|
|
372
|
+
documentList: []
|
|
440
373
|
};
|
|
441
374
|
}
|
|
442
375
|
|
|
@@ -472,6 +405,9 @@ let DocumentStore = class DocumentStore extends EntityStore {
|
|
|
472
405
|
setMessage(message) {
|
|
473
406
|
this.update({ messages: message });
|
|
474
407
|
}
|
|
408
|
+
setDocumentList(documents) {
|
|
409
|
+
this.update({ documents: documents });
|
|
410
|
+
}
|
|
475
411
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
476
412
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentStore, providedIn: 'root' });
|
|
477
413
|
};
|
|
@@ -483,6 +419,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
483
419
|
args: [{ providedIn: 'root' }]
|
|
484
420
|
}], ctorParameters: () => [] });
|
|
485
421
|
|
|
422
|
+
/**
|
|
423
|
+
* Class that holds the URLs used throughout the application.
|
|
424
|
+
* These URLs are typically used for making API requests and accessing various resources.
|
|
425
|
+
* @class URLS
|
|
426
|
+
* @typedef {URLS}
|
|
427
|
+
*/
|
|
428
|
+
class URLS {
|
|
429
|
+
/**
|
|
430
|
+
* The URL to fetch the application configuration file.
|
|
431
|
+
* This JSON file typically contains settings and options for the application.
|
|
432
|
+
* @static
|
|
433
|
+
* @type {string}
|
|
434
|
+
*/
|
|
435
|
+
static CONFIGFILEURL = "assets/config/api.config.json";
|
|
436
|
+
/**
|
|
437
|
+
* The URL endpoint for document uploads.
|
|
438
|
+
* Used to send documents to the server for storage or processing.
|
|
439
|
+
* @static
|
|
440
|
+
* @type {string}
|
|
441
|
+
*/
|
|
442
|
+
static DOCUMENT_UPLOAD = "Documents";
|
|
443
|
+
/**
|
|
444
|
+
* The query parameter to pass a context ID in API requests.
|
|
445
|
+
* Used to specify the context for certain API calls, such as filtering or scoping the request.
|
|
446
|
+
* @static
|
|
447
|
+
* @type {string}
|
|
448
|
+
*/
|
|
449
|
+
static CONTEXT = "?contextId=";
|
|
450
|
+
/**
|
|
451
|
+
* The query parameter to pass a document ID in API requests.
|
|
452
|
+
* @static
|
|
453
|
+
* @type {string}
|
|
454
|
+
*/
|
|
455
|
+
static DOCUMENT_TYPES = "documentTypes";
|
|
456
|
+
/**
|
|
457
|
+
* The query parameter to pass a context ID in API requests.
|
|
458
|
+
* @static
|
|
459
|
+
* @type {string}
|
|
460
|
+
*/
|
|
461
|
+
static FOLDERS = "/folders?contextId=";
|
|
462
|
+
/**
|
|
463
|
+
* The query parameter to pass a document ID in API requests.
|
|
464
|
+
* @static
|
|
465
|
+
* @type {string}
|
|
466
|
+
*/
|
|
467
|
+
static ALERT_BY_DOCUMENT_ID = "alerts?documentId=";
|
|
468
|
+
/**
|
|
469
|
+
* The query parameter to pass a document ID in API requests.
|
|
470
|
+
* @static
|
|
471
|
+
* @type {string}
|
|
472
|
+
*/
|
|
473
|
+
static PARENT_DOCUMENT_TYPE_ID = "parentDocumentType?parentDocumentTypeId=";
|
|
474
|
+
/**
|
|
475
|
+
* The query parameter to pass a context ID in API requests.
|
|
476
|
+
* Used to specify the context for certain API calls, such as filtering or scoping the request.
|
|
477
|
+
* @static
|
|
478
|
+
* @type {string}
|
|
479
|
+
*/
|
|
480
|
+
static CONTEXT_ID = "&contextId=";
|
|
481
|
+
}
|
|
482
|
+
|
|
486
483
|
/**
|
|
487
484
|
* Service that handles loading and providing configuration settings for the application.
|
|
488
485
|
* It fetches configuration data from a remote server and exposes various configuration options.
|
|
@@ -638,7 +635,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
638
635
|
* This class extends Akita's `QueryEntity` to provide additional functionality for querying document data.
|
|
639
636
|
* @class DocumentQuery
|
|
640
637
|
* @typedef {DocumentQuery}
|
|
641
|
-
* @
|
|
638
|
+
* @augments {QueryEntity<DocumentState>}
|
|
642
639
|
*/
|
|
643
640
|
class DocumentQuery extends QueryEntity {
|
|
644
641
|
store;
|
|
@@ -667,6 +664,13 @@ class DocumentQuery extends QueryEntity {
|
|
|
667
664
|
selectMessages() {
|
|
668
665
|
return this.select((state) => state.messages);
|
|
669
666
|
}
|
|
667
|
+
/**
|
|
668
|
+
* Selects the set documents.
|
|
669
|
+
* @returns {Observable<DocumentModel[]>} Observable that emits the documets.
|
|
670
|
+
*/
|
|
671
|
+
selectDocumets() {
|
|
672
|
+
return this.select((state) => state.documentList);
|
|
673
|
+
}
|
|
670
674
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentQuery, deps: [{ token: DocumentStore }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
671
675
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentQuery, providedIn: 'root' });
|
|
672
676
|
}
|
|
@@ -710,8 +714,6 @@ class DocumentHttpService {
|
|
|
710
714
|
* @returns {Observable<any>} Observable that emits the transformed data for dropdown options.
|
|
711
715
|
*/
|
|
712
716
|
getFoldersData(contextId) {
|
|
713
|
-
if (!contextId)
|
|
714
|
-
return EMPTY;
|
|
715
717
|
return this.http.get(`${this.apiUrl}${URLS.DOCUMENT_UPLOAD}${URLS.FOLDERS}${contextId}`).pipe(tap((folders) => {
|
|
716
718
|
this.documentStore.setFolders(folders);
|
|
717
719
|
}), catchError((error) => {
|
|
@@ -755,19 +757,6 @@ class DocumentHttpService {
|
|
|
755
757
|
return throwError(() => new Error(error));
|
|
756
758
|
}));
|
|
757
759
|
}
|
|
758
|
-
/**
|
|
759
|
-
* Updates the name of a document.
|
|
760
|
-
* This method sends an HTTP PUT request to update the document's file name using the provided document ID and payload.
|
|
761
|
-
* In case of an error, it will return an observable that throws an Error.
|
|
762
|
-
* @param {string} documentId - The unique identifier of the document to update.
|
|
763
|
-
* @param {any} payload - The payload containing the updated document data (e.g., fileName).
|
|
764
|
-
* @returns {Observable<DocumentModel>} An observable that emits the updated DocumentModel.
|
|
765
|
-
*/
|
|
766
|
-
updateDocumentName(documentId, payload) {
|
|
767
|
-
return this.http.put(`${this.apiUrl}${URLS.DOCUMENT_UPLOAD}/${documentId}`, payload).pipe(catchError((error) => {
|
|
768
|
-
return throwError(() => new Error(error));
|
|
769
|
-
}));
|
|
770
|
-
}
|
|
771
760
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentHttpService, deps: [{ token: DocumentStore }, { token: i2.HttpClient }, { token: AppConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
772
761
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentHttpService, providedIn: 'root' });
|
|
773
762
|
}
|
|
@@ -1266,6 +1255,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
1266
1255
|
}]
|
|
1267
1256
|
}] });
|
|
1268
1257
|
|
|
1258
|
+
/**
|
|
1259
|
+
* Description placeholder
|
|
1260
|
+
* @class LinkedDocumentComponent
|
|
1261
|
+
* @typedef {LinkedDocumentComponent}
|
|
1262
|
+
* @implements {OnChanges}
|
|
1263
|
+
*/
|
|
1264
|
+
class LinkedDocumentComponent {
|
|
1265
|
+
/**
|
|
1266
|
+
* Selected document for view.
|
|
1267
|
+
* @type {?DocumentModel}
|
|
1268
|
+
*/
|
|
1269
|
+
selectedDocument;
|
|
1270
|
+
/**
|
|
1271
|
+
* Whole document list.
|
|
1272
|
+
* @type {?DocumentModel[]}
|
|
1273
|
+
*/
|
|
1274
|
+
documentList;
|
|
1275
|
+
/**
|
|
1276
|
+
* Changed selected document.
|
|
1277
|
+
* @type {*}
|
|
1278
|
+
*/
|
|
1279
|
+
selectedDocumentChange = new EventEmitter();
|
|
1280
|
+
/**
|
|
1281
|
+
* Filtered documents.
|
|
1282
|
+
* @type {DocumentModel[]}
|
|
1283
|
+
*/
|
|
1284
|
+
filteredDocuments = [];
|
|
1285
|
+
/**
|
|
1286
|
+
* Handle the click on the document.
|
|
1287
|
+
* @param {DocumentModel} document - Clicked document.
|
|
1288
|
+
*/
|
|
1289
|
+
handleDocumentClick(document) {
|
|
1290
|
+
this.selectedDocument = document;
|
|
1291
|
+
this.selectedDocumentChange.emit(this.selectedDocument);
|
|
1292
|
+
}
|
|
1293
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: LinkedDocumentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1294
|
+
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" }, 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 documentList; track document){\r\n <div class=\"linkedDocument documentName m-2\">\r\n <div class=\"documentName\" [class.selected]=\"document._id === selectedDocument?._id\"\r\n (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;width:max-content}.selected{color:var(--primary-color)}\n"] });
|
|
1295
|
+
}
|
|
1296
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: LinkedDocumentComponent, decorators: [{
|
|
1297
|
+
type: Component,
|
|
1298
|
+
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 documentList; track document){\r\n <div class=\"linkedDocument documentName m-2\">\r\n <div class=\"documentName\" [class.selected]=\"document._id === selectedDocument?._id\"\r\n (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;width:max-content}.selected{color:var(--primary-color)}\n"] }]
|
|
1299
|
+
}], propDecorators: { selectedDocument: [{
|
|
1300
|
+
type: Input
|
|
1301
|
+
}], documentList: [{
|
|
1302
|
+
type: Input
|
|
1303
|
+
}], selectedDocumentChange: [{
|
|
1304
|
+
type: Output
|
|
1305
|
+
}] } });
|
|
1306
|
+
|
|
1269
1307
|
/**
|
|
1270
1308
|
* Component for viewing and managing document details.
|
|
1271
1309
|
* @class DocumentViewerComponent
|
|
@@ -1279,6 +1317,11 @@ class DocumentViewerComponent {
|
|
|
1279
1317
|
* @type {*}
|
|
1280
1318
|
*/
|
|
1281
1319
|
selectedDocument; // <-- Made optional to prevent undefined issues
|
|
1320
|
+
/**
|
|
1321
|
+
* Get the selected document by user.
|
|
1322
|
+
* @type {*}
|
|
1323
|
+
*/
|
|
1324
|
+
documentList; // <-- Made optional to prevent undefined issues
|
|
1282
1325
|
/**
|
|
1283
1326
|
* Indicates whether a checkbox is selected.
|
|
1284
1327
|
* @type {boolean}
|
|
@@ -1307,6 +1350,8 @@ class DocumentViewerComponent {
|
|
|
1307
1350
|
subscription = new Subscription();
|
|
1308
1351
|
/**
|
|
1309
1352
|
* Initializes a new instance of the DocumentViewerComponent.
|
|
1353
|
+
* @param {DocumentHttpService} documentHttpService - Handle the http service.
|
|
1354
|
+
* @param {DocumentService} documentService - Handle the states.
|
|
1310
1355
|
*/
|
|
1311
1356
|
constructor(documentHttpService, documentService) {
|
|
1312
1357
|
this.documentHttpService = documentHttpService;
|
|
@@ -1322,6 +1367,10 @@ class DocumentViewerComponent {
|
|
|
1322
1367
|
this.alertData = DocumentAlertList.find((res) => res.status === this.selectedDocument?.status);
|
|
1323
1368
|
}
|
|
1324
1369
|
}
|
|
1370
|
+
handleSelectedDocument(document) {
|
|
1371
|
+
this.selectedDocument = document;
|
|
1372
|
+
this.documentService.set(this.selectedDocument);
|
|
1373
|
+
}
|
|
1325
1374
|
/**
|
|
1326
1375
|
* Determines if the given content type is an image.
|
|
1327
1376
|
* @param {string | undefined} contentType - The MIME type of the content.
|
|
@@ -1334,13 +1383,15 @@ class DocumentViewerComponent {
|
|
|
1334
1383
|
this.subscription.unsubscribe();
|
|
1335
1384
|
}
|
|
1336
1385
|
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 });
|
|
1337
|
-
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
|
|
1386
|
+
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 }@else{\r\n <div class=\"incorrect-docType\">\r\n ContentType is incorrect.\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 });
|
|
1338
1387
|
}
|
|
1339
1388
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentViewerComponent, decorators: [{
|
|
1340
1389
|
type: Component,
|
|
1341
|
-
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
|
|
1390
|
+
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 }@else{\r\n <div class=\"incorrect-docType\">\r\n ContentType is incorrect.\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"] }]
|
|
1342
1391
|
}], ctorParameters: () => [{ type: DocumentHttpService }, { type: DocumentService }], propDecorators: { selectedDocument: [{
|
|
1343
1392
|
type: Input
|
|
1393
|
+
}], documentList: [{
|
|
1394
|
+
type: Input
|
|
1344
1395
|
}] } });
|
|
1345
1396
|
|
|
1346
1397
|
/**
|
|
@@ -1556,16 +1607,7 @@ class DocumentListComponent {
|
|
|
1556
1607
|
* @memberof DocumentListComponent
|
|
1557
1608
|
*/
|
|
1558
1609
|
selectedOption = null;
|
|
1559
|
-
/**
|
|
1560
|
-
* The set of permissions available for this component.
|
|
1561
|
-
*/
|
|
1562
1610
|
PERMISSION = PERMISSIONS;
|
|
1563
|
-
/**
|
|
1564
|
-
* The file name associated with the document.
|
|
1565
|
-
* It may be undefined until a file is selected or loaded.
|
|
1566
|
-
* @type {string | undefined}
|
|
1567
|
-
*/
|
|
1568
|
-
fileName;
|
|
1569
1611
|
/**
|
|
1570
1612
|
* Creates an instance of DocumentListComponent.
|
|
1571
1613
|
* @class
|
|
@@ -1606,30 +1648,14 @@ class DocumentListComponent {
|
|
|
1606
1648
|
handleClickForDocument(document) {
|
|
1607
1649
|
this.isdialogVisible = SHARED.TRUE;
|
|
1608
1650
|
this.selectedDocument = document;
|
|
1609
|
-
this.fileName = document.fileName;
|
|
1610
|
-
}
|
|
1611
|
-
/**
|
|
1612
|
-
* Handles the save click event to update the document's file name.
|
|
1613
|
-
* This method creates a payload with the updated file name and calls the
|
|
1614
|
-
* updateDocumentName() method from the documentHttpService. On a successful update,
|
|
1615
|
-
* it logs a message with the document's ID.
|
|
1616
|
-
* @returns {void}
|
|
1617
|
-
*/
|
|
1618
|
-
handleSaveClick() {
|
|
1619
|
-
const payload = { fileName: this.fileName };
|
|
1620
|
-
this.documentHttpService.updateDocumentName(this.selectedDocument._id, payload)
|
|
1621
|
-
.subscribe((res) => {
|
|
1622
|
-
console.log(`${SHARED.UPDATE_DOCUMENT_NAME} ${this.selectedDocument._id}`);
|
|
1623
|
-
});
|
|
1624
1651
|
}
|
|
1625
1652
|
/**
|
|
1626
1653
|
* Closes the dialog and resets the selected document.
|
|
1627
1654
|
* @memberof DocumentListComponent
|
|
1628
1655
|
*/
|
|
1629
|
-
|
|
1656
|
+
handleCloseModel() {
|
|
1630
1657
|
this.selectedDocument = { _id: SHARED.EMPTY };
|
|
1631
1658
|
this.isdialogVisible = SHARED.FALSE;
|
|
1632
|
-
this.onRefresh.emit();
|
|
1633
1659
|
}
|
|
1634
1660
|
/**
|
|
1635
1661
|
* Handles the upload action for a document.
|
|
@@ -1692,11 +1718,11 @@ class DocumentListComponent {
|
|
|
1692
1718
|
this.isSidebarVisible = isVisible;
|
|
1693
1719
|
}
|
|
1694
1720
|
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 });
|
|
1695
|
-
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: "
|
|
1721
|
+
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 });
|
|
1696
1722
|
}
|
|
1697
1723
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentListComponent, decorators: [{
|
|
1698
1724
|
type: Component,
|
|
1699
|
-
args: [{ selector: 'lib-document-list', standalone: false, encapsulation: ViewEncapsulation.None, template: "
|
|
1725
|
+
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"] }]
|
|
1700
1726
|
}], ctorParameters: () => [{ type: DocumentUploadService }, { type: DocumentHttpService }, { type: DocumentQuery }, { type: DocumentStore }], propDecorators: { onRefresh: [{
|
|
1701
1727
|
type: Output
|
|
1702
1728
|
}], contextId: [{
|
|
@@ -1713,16 +1739,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
1713
1739
|
* @typedef {DocumentContainerComponent}
|
|
1714
1740
|
*/
|
|
1715
1741
|
class DocumentContainerComponent {
|
|
1742
|
+
documentStore;
|
|
1716
1743
|
documentService;
|
|
1717
1744
|
documentQuery;
|
|
1718
1745
|
documentHttpService;
|
|
1719
1746
|
/**
|
|
1720
1747
|
* Creates an instance of DocumentContainerComponent.
|
|
1748
|
+
* @param {DocumentStore} documentStore - Query Store service to manage store document-related state.
|
|
1721
1749
|
* @param {DocumentService} documentService - Service to manage document-related operations.
|
|
1722
1750
|
* @param {DocumentQuery} documentQuery - Query service to manage document-related state.
|
|
1723
1751
|
* @param {DocumentHttpService} documentHttpService - Service to make HTTP requests related to documents.
|
|
1724
1752
|
*/
|
|
1725
|
-
constructor(documentService, documentQuery, documentHttpService) {
|
|
1753
|
+
constructor(documentStore, documentService, documentQuery, documentHttpService) {
|
|
1754
|
+
this.documentStore = documentStore;
|
|
1726
1755
|
this.documentService = documentService;
|
|
1727
1756
|
this.documentQuery = documentQuery;
|
|
1728
1757
|
this.documentHttpService = documentHttpService;
|
|
@@ -1783,9 +1812,9 @@ class DocumentContainerComponent {
|
|
|
1783
1812
|
* @returns {void}
|
|
1784
1813
|
*/
|
|
1785
1814
|
/**
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1815
|
+
* Fetches the folder data from the API.
|
|
1816
|
+
* @returns {void}
|
|
1817
|
+
*/
|
|
1789
1818
|
fetchFolder() {
|
|
1790
1819
|
const folderSubscription = this.documentHttpService.getFoldersData(this.contextId).subscribe({
|
|
1791
1820
|
/**
|
|
@@ -1830,6 +1859,7 @@ class DocumentContainerComponent {
|
|
|
1830
1859
|
next: (documentList) => {
|
|
1831
1860
|
if (documentList) {
|
|
1832
1861
|
this.documentList = documentList;
|
|
1862
|
+
this.documentStore.setDocumentList(documentList);
|
|
1833
1863
|
}
|
|
1834
1864
|
else {
|
|
1835
1865
|
console.error(ERRORS.ERROR_FETCHING_DOCUMENTS);
|
|
@@ -1851,13 +1881,13 @@ class DocumentContainerComponent {
|
|
|
1851
1881
|
ngOnDestroy() {
|
|
1852
1882
|
this.subscription.unsubscribe();
|
|
1853
1883
|
}
|
|
1854
|
-
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 });
|
|
1884
|
+
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 });
|
|
1855
1885
|
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"] }] });
|
|
1856
1886
|
}
|
|
1857
1887
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DocumentContainerComponent, decorators: [{
|
|
1858
1888
|
type: Component,
|
|
1859
1889
|
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"] }]
|
|
1860
|
-
}], ctorParameters: () => [{ type: DocumentService$1 }, { type: DocumentQuery }, { type: DocumentHttpService }], propDecorators: { contextId: [{
|
|
1890
|
+
}], ctorParameters: () => [{ type: DocumentStore }, { type: DocumentService$1 }, { type: DocumentQuery }, { type: DocumentHttpService }], propDecorators: { contextId: [{
|
|
1861
1891
|
type: Input
|
|
1862
1892
|
}], showFolderList: [{
|
|
1863
1893
|
type: Input
|
|
@@ -1981,9 +2011,13 @@ class DocumentModule {
|
|
|
1981
2011
|
*/
|
|
1982
2012
|
DocumentDirective,
|
|
1983
2013
|
/**
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
HasPermissionDirective
|
|
2014
|
+
* A directive to give permission.
|
|
2015
|
+
*/
|
|
2016
|
+
HasPermissionDirective,
|
|
2017
|
+
/**
|
|
2018
|
+
* A component which have linked documents.
|
|
2019
|
+
*/
|
|
2020
|
+
LinkedDocumentComponent], imports: [
|
|
1987
2021
|
/**
|
|
1988
2022
|
* Angular's CommonModule is imported to access common directives like `ngIf` and `ngFor`.
|
|
1989
2023
|
*/
|
|
@@ -2053,8 +2087,8 @@ class DocumentModule {
|
|
|
2053
2087
|
*/
|
|
2054
2088
|
InputTextModule], exports: [
|
|
2055
2089
|
/**
|
|
2056
|
-
|
|
2057
|
-
|
|
2090
|
+
* A directive to give permission.
|
|
2091
|
+
*/
|
|
2058
2092
|
HasPermissionDirective,
|
|
2059
2093
|
/**
|
|
2060
2094
|
* Exports the `DocumentContainerComponent` to be used in other modules.
|
|
@@ -2103,7 +2137,7 @@ class DocumentModule {
|
|
|
2103
2137
|
}),
|
|
2104
2138
|
deps: [AppConfigService],
|
|
2105
2139
|
multi: true,
|
|
2106
|
-
}
|
|
2140
|
+
},
|
|
2107
2141
|
], imports: [
|
|
2108
2142
|
/**
|
|
2109
2143
|
* Angular's CommonModule is imported to access common directives like `ngIf` and `ngFor`.
|
|
@@ -2216,9 +2250,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
2216
2250
|
*/
|
|
2217
2251
|
DocumentDirective,
|
|
2218
2252
|
/**
|
|
2219
|
-
|
|
2220
|
-
|
|
2253
|
+
* A directive to give permission.
|
|
2254
|
+
*/
|
|
2221
2255
|
HasPermissionDirective,
|
|
2256
|
+
/**
|
|
2257
|
+
* A component which have linked documents.
|
|
2258
|
+
*/
|
|
2259
|
+
LinkedDocumentComponent,
|
|
2222
2260
|
],
|
|
2223
2261
|
imports: [
|
|
2224
2262
|
/**
|
|
@@ -2292,8 +2330,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
2292
2330
|
],
|
|
2293
2331
|
exports: [
|
|
2294
2332
|
/**
|
|
2295
|
-
|
|
2296
|
-
|
|
2333
|
+
* A directive to give permission.
|
|
2334
|
+
*/
|
|
2297
2335
|
HasPermissionDirective,
|
|
2298
2336
|
/**
|
|
2299
2337
|
* Exports the `DocumentContainerComponent` to be used in other modules.
|
|
@@ -2343,7 +2381,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
2343
2381
|
}),
|
|
2344
2382
|
deps: [AppConfigService],
|
|
2345
2383
|
multi: true,
|
|
2346
|
-
}
|
|
2384
|
+
},
|
|
2347
2385
|
]
|
|
2348
2386
|
}]
|
|
2349
2387
|
}] });
|