cat-documents-ng 0.2.97 → 0.2.98
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/components/table-primary/table-primary.component.d.ts +2 -0
- package/fesm2022/cat-documents-ng.mjs +103 -124
- package/fesm2022/cat-documents-ng.mjs.map +1 -1
- package/lib/document/services/document-table-builder.service.d.ts +1 -3
- package/package.json +1 -1
- package/Shared/constant/PERMISSIONS.d.ts +0 -15
|
@@ -9,12 +9,14 @@ export declare class TablePrimaryComponent implements OnChanges {
|
|
|
9
9
|
rowClick: EventEmitter<any>;
|
|
10
10
|
processedData: ProcessedRowData[];
|
|
11
11
|
readonly SHARED: typeof SHARED;
|
|
12
|
+
get visibleColumns(): import("cat-documents-ng").TableColumn[];
|
|
12
13
|
ngOnChanges(changes: SimpleChanges): void;
|
|
13
14
|
private processTableData;
|
|
14
15
|
getStatusClass(status: string): string;
|
|
15
16
|
getStatusIcon(status: string): string;
|
|
16
17
|
getFileExtension(fileName: string): string;
|
|
17
18
|
onRowClick(rowData: any): void;
|
|
19
|
+
getVisibleColumnCount(): number;
|
|
18
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<TablePrimaryComponent, never>;
|
|
19
21
|
static ɵcmp: i0.ɵɵComponentDeclaration<TablePrimaryComponent, "lib-table-primary", never, { "tableData": { "alias": "tableData"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "tableStyle": { "alias": "tableStyle"; "required": false; }; }, { "rowClick": "rowClick"; }, never, never, false, never>;
|
|
20
22
|
}
|
|
@@ -27,7 +27,6 @@ import * as i4 from 'primeng/sidebar';
|
|
|
27
27
|
import { SidebarModule } from 'primeng/sidebar';
|
|
28
28
|
import * as i5 from 'primeng/messages';
|
|
29
29
|
import { MessagesModule } from 'primeng/messages';
|
|
30
|
-
import * as i1 from '@angular/router';
|
|
31
30
|
import * as i8 from 'primeng/dialog';
|
|
32
31
|
import { DialogModule } from 'primeng/dialog';
|
|
33
32
|
import * as i7 from 'primeng/inputtext';
|
|
@@ -38,6 +37,7 @@ import * as i6$1 from 'ng2-pdf-viewer';
|
|
|
38
37
|
import { PdfViewerModule } from 'ng2-pdf-viewer';
|
|
39
38
|
import * as i3$2 from 'primeng/accordion';
|
|
40
39
|
import { AccordionModule } from 'primeng/accordion';
|
|
40
|
+
import * as i1 from '@angular/router';
|
|
41
41
|
import * as i6 from 'primeng/inputtextarea';
|
|
42
42
|
import { InputTextareaModule } from 'primeng/inputtextarea';
|
|
43
43
|
import * as i9$1 from 'primeng/tooltip';
|
|
@@ -1333,7 +1333,7 @@ class DocumentHttpService {
|
|
|
1333
1333
|
* @returns {Observable<any>} Observable that emits the transformed data for dropdown options.
|
|
1334
1334
|
*/
|
|
1335
1335
|
getDocumentCatagories(contextId) {
|
|
1336
|
-
let headers = new HttpHeaders({ Authorization: `Bearer
|
|
1336
|
+
let headers = new HttpHeaders({ Authorization: `Bearer 87e35e9a-69b3-48e4-ba8e-d909ca6deeb6` });
|
|
1337
1337
|
return this.http.get(`${this.apiUrl}${URLS.DOCUMENTS_CATAGORIES}/${contextId}`, { headers }).pipe(tap((response) => {
|
|
1338
1338
|
// Store only the categories array, not the entire response
|
|
1339
1339
|
if (response && response.categories) {
|
|
@@ -1392,7 +1392,7 @@ class DocumentHttpService {
|
|
|
1392
1392
|
* @returns {Observable<DocumentModel>} An observable that emits the updated DocumentModel.
|
|
1393
1393
|
*/
|
|
1394
1394
|
updateDocumentName(documentId, payload) {
|
|
1395
|
-
let headers = new HttpHeaders({ Authorization: `Bearer
|
|
1395
|
+
let headers = new HttpHeaders({ Authorization: `Bearer 87e35e9a-69b3-48e4-ba8e-d909ca6deeb6` });
|
|
1396
1396
|
return this.http.put(`${this.apiUrl}${URLS.DOCUMENT_UPLOAD}/${documentId}`, payload, { headers }).pipe(catchError((error) => {
|
|
1397
1397
|
return throwError(() => new Error(error));
|
|
1398
1398
|
}));
|
|
@@ -1405,7 +1405,7 @@ class DocumentHttpService {
|
|
|
1405
1405
|
getUserListByContextId(contextId) {
|
|
1406
1406
|
if (!contextId)
|
|
1407
1407
|
return EMPTY;
|
|
1408
|
-
let headers = new HttpHeaders({ Authorization: `Bearer
|
|
1408
|
+
let headers = new HttpHeaders({ Authorization: `Bearer 87e35e9a-69b3-48e4-ba8e-d909ca6deeb6` });
|
|
1409
1409
|
return this.http.get(`${this.apiUrl}${URLS.USERLIST}${contextId}`, { headers }).pipe(tap((userList) => {
|
|
1410
1410
|
this.documentStore.setUserList(userList);
|
|
1411
1411
|
}), catchError((error) => {
|
|
@@ -1431,7 +1431,7 @@ class DocumentHttpService {
|
|
|
1431
1431
|
if (categoryId) {
|
|
1432
1432
|
params = params.set(SHARED.CATEGORY, categoryId);
|
|
1433
1433
|
}
|
|
1434
|
-
let headers = new HttpHeaders({ Authorization: `Bearer
|
|
1434
|
+
let headers = new HttpHeaders({ Authorization: `Bearer 87e35e9a-69b3-48e4-ba8e-d909ca6deeb6` });
|
|
1435
1435
|
return this.http.get(url, { params, headers }).pipe(tap((statusData) => {
|
|
1436
1436
|
this.documentStore.setStatusData(statusData);
|
|
1437
1437
|
}), catchError((error) => {
|
|
@@ -1464,7 +1464,7 @@ class DocumentHttpService {
|
|
|
1464
1464
|
if (searchKey) {
|
|
1465
1465
|
params = params.set(SHARED.SEARCH_KEY, searchKey);
|
|
1466
1466
|
}
|
|
1467
|
-
let headers = new HttpHeaders({ Authorization: `Bearer
|
|
1467
|
+
let headers = new HttpHeaders({ Authorization: `Bearer 87e35e9a-69b3-48e4-ba8e-d909ca6deeb6` });
|
|
1468
1468
|
return this.http.get(`${this.apiUrl}${URLS.GETALL}/${contextId}`, { params, headers }).pipe(tap((response) => {
|
|
1469
1469
|
if (response.documents) {
|
|
1470
1470
|
this.documentStore.setDocumentList(response.documents);
|
|
@@ -1477,7 +1477,7 @@ class DocumentHttpService {
|
|
|
1477
1477
|
if (!documentId) {
|
|
1478
1478
|
return of([]);
|
|
1479
1479
|
}
|
|
1480
|
-
let headers = new HttpHeaders({ Authorization: `Bearer
|
|
1480
|
+
let headers = new HttpHeaders({ Authorization: `Bearer 87e35e9a-69b3-48e4-ba8e-d909ca6deeb6` });
|
|
1481
1481
|
return this.http.get(`${this.apiUrl}${URLS.DOCUMENT_HISTORY}${documentId}`, { headers });
|
|
1482
1482
|
}
|
|
1483
1483
|
/**
|
|
@@ -1488,7 +1488,7 @@ class DocumentHttpService {
|
|
|
1488
1488
|
getCategoriesBySource(source) {
|
|
1489
1489
|
if (!source)
|
|
1490
1490
|
return EMPTY;
|
|
1491
|
-
let headers = new HttpHeaders({ Authorization: `Bearer
|
|
1491
|
+
let headers = new HttpHeaders({ Authorization: `Bearer 87e35e9a-69b3-48e4-ba8e-d909ca6deeb6` });
|
|
1492
1492
|
return this.http.get(`${this.apiUrl}${URLS.GET_CATEGORIES_BY_SOURCE}${source}`, { headers }).pipe(catchError((error) => {
|
|
1493
1493
|
return throwError(() => new Error(error));
|
|
1494
1494
|
}));
|
|
@@ -1501,7 +1501,7 @@ class DocumentHttpService {
|
|
|
1501
1501
|
getDocumentTypesByCategory(categoryId) {
|
|
1502
1502
|
if (!categoryId)
|
|
1503
1503
|
return EMPTY;
|
|
1504
|
-
let headers = new HttpHeaders({ Authorization: `Bearer
|
|
1504
|
+
let headers = new HttpHeaders({ Authorization: `Bearer 87e35e9a-69b3-48e4-ba8e-d909ca6deeb6` });
|
|
1505
1505
|
return this.http.get(`${this.apiUrl}${URLS.GET_DOCUMENT_TYPES_BY_CATEGORY}${categoryId}`, { headers }).pipe(catchError((error) => {
|
|
1506
1506
|
return throwError(() => new Error(error));
|
|
1507
1507
|
}));
|
|
@@ -1512,7 +1512,7 @@ class DocumentHttpService {
|
|
|
1512
1512
|
* @returns {Observable<any>} Observable that emits the upload response.
|
|
1513
1513
|
*/
|
|
1514
1514
|
uploadFile(formData) {
|
|
1515
|
-
let headers = new HttpHeaders({ Authorization: `Bearer
|
|
1515
|
+
let headers = new HttpHeaders({ Authorization: `Bearer 87e35e9a-69b3-48e4-ba8e-d909ca6deeb6` });
|
|
1516
1516
|
return this.http.post(`${this.apiUrl}${URLS.DOCUMENT_UPLOAD_FILE}`, formData, { headers }).pipe(catchError((error) => {
|
|
1517
1517
|
return throwError(() => new Error(error));
|
|
1518
1518
|
}));
|
|
@@ -1523,7 +1523,7 @@ class DocumentHttpService {
|
|
|
1523
1523
|
* @returns {Observable<any>} Observable that emits the save response.
|
|
1524
1524
|
*/
|
|
1525
1525
|
saveDocumentUpload(payload) {
|
|
1526
|
-
let headers = new HttpHeaders({ Authorization: `Bearer
|
|
1526
|
+
let headers = new HttpHeaders({ Authorization: `Bearer 87e35e9a-69b3-48e4-ba8e-d909ca6deeb6` });
|
|
1527
1527
|
return this.http.post(`${this.apiUrl}${URLS.SAVE_DOCUMENT_UPLOAD}`, payload, { headers }).pipe(catchError((error) => {
|
|
1528
1528
|
return throwError(() => new Error(error));
|
|
1529
1529
|
}));
|
|
@@ -1539,7 +1539,7 @@ class DocumentHttpService {
|
|
|
1539
1539
|
const payload = {
|
|
1540
1540
|
statusUpdateDescription: statusUpdateDescription
|
|
1541
1541
|
};
|
|
1542
|
-
let headers = new HttpHeaders({ Authorization: `Bearer
|
|
1542
|
+
let headers = new HttpHeaders({ Authorization: `Bearer 87e35e9a-69b3-48e4-ba8e-d909ca6deeb6` });
|
|
1543
1543
|
return this.http.put(`${this.apiUrl}${URLS.UPDATE_DOCUMENT_STATUS}${documentId}/${status}`, payload, { headers }).pipe(tap((response) => {
|
|
1544
1544
|
if (response && response.status) {
|
|
1545
1545
|
const normalizedStatus = this.normalizeStatus(response.status);
|
|
@@ -1573,7 +1573,7 @@ class DocumentHttpService {
|
|
|
1573
1573
|
* @returns {Observable<any>} Observable that emits the delete response
|
|
1574
1574
|
*/
|
|
1575
1575
|
deleteDocument(documentId, contextId) {
|
|
1576
|
-
let headers = new HttpHeaders({ Authorization: `Bearer
|
|
1576
|
+
let headers = new HttpHeaders({ Authorization: `Bearer 87e35e9a-69b3-48e4-ba8e-d909ca6deeb6` });
|
|
1577
1577
|
return this.http.delete(`${this.apiUrl}${URLS.DELETE_DOCUMENT}${documentId}`, { headers }).pipe(tap(() => {
|
|
1578
1578
|
this.getDocumentCatagories(contextId).subscribe();
|
|
1579
1579
|
this.getUserListByContextId(contextId).subscribe();
|
|
@@ -4412,118 +4412,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
4412
4412
|
args: [SidebarComponent]
|
|
4413
4413
|
}] } });
|
|
4414
4414
|
|
|
4415
|
-
/**
|
|
4416
|
-
* Storing all permission properties.
|
|
4417
|
-
* @export
|
|
4418
|
-
* @class PERMISSIONS
|
|
4419
|
-
* @typedef {PERMISSIONS}
|
|
4420
|
-
*/
|
|
4421
|
-
class PERMISSIONS {
|
|
4422
|
-
/**
|
|
4423
|
-
* Access permission.
|
|
4424
|
-
* @static
|
|
4425
|
-
* @type {string}
|
|
4426
|
-
*/
|
|
4427
|
-
static DOCUMENT_POST = 'Documents-POST';
|
|
4428
|
-
static DOCUMENT_DELETE = 'documents-deleteDocumentByDocumentId';
|
|
4429
|
-
}
|
|
4430
|
-
|
|
4431
|
-
/**
|
|
4432
|
-
* Service for managing user session details.
|
|
4433
|
-
* @class SessionService
|
|
4434
|
-
* @typedef {SessionService}
|
|
4435
|
-
*/
|
|
4436
|
-
class SessionService {
|
|
4437
|
-
router;
|
|
4438
|
-
/**
|
|
4439
|
-
* Creates an instance of SessionService.
|
|
4440
|
-
* @param {Router} router - Angular Router for navigation.
|
|
4441
|
-
*/
|
|
4442
|
-
constructor(router) {
|
|
4443
|
-
this.router = router;
|
|
4444
|
-
}
|
|
4445
|
-
/**
|
|
4446
|
-
* Retrieves the current user's role from local storage.
|
|
4447
|
-
* @returns {string | null} The user's role, or null if not found.
|
|
4448
|
-
*/
|
|
4449
|
-
getUserRole() {
|
|
4450
|
-
return localStorage.getItem('role');
|
|
4451
|
-
}
|
|
4452
|
-
/**
|
|
4453
|
-
* Stores the user session data in local storage.
|
|
4454
|
-
* @param {any} data - The session data to store.
|
|
4455
|
-
*/
|
|
4456
|
-
setUserSession(data) {
|
|
4457
|
-
localStorage.setItem(SHARED.SESSIONKEY, JSON.stringify(data));
|
|
4458
|
-
}
|
|
4459
|
-
/**
|
|
4460
|
-
* Retrieves the stored user session data.
|
|
4461
|
-
* @returns {any | null} The parsed session data, or null if not found.
|
|
4462
|
-
*/
|
|
4463
|
-
getUserSession() {
|
|
4464
|
-
const sessionData = localStorage.getItem(SHARED.SESSIONKEY);
|
|
4465
|
-
return sessionData ? JSON.parse(sessionData) : null;
|
|
4466
|
-
}
|
|
4467
|
-
/**
|
|
4468
|
-
* Retrieves the user's permissions from the stored session data.
|
|
4469
|
-
* @returns {any | null} The user's permissions, or null if not found.
|
|
4470
|
-
*/
|
|
4471
|
-
getUserPermissions() {
|
|
4472
|
-
const sessionData = localStorage.getItem(SHARED.SESSIONKEY);
|
|
4473
|
-
return sessionData ? JSON.parse(sessionData).permissions : null;
|
|
4474
|
-
}
|
|
4475
|
-
/**
|
|
4476
|
-
* Retrieves the session ID from the stored session data.
|
|
4477
|
-
* @returns {any | null} The session ID, or null if not found.
|
|
4478
|
-
*/
|
|
4479
|
-
getSessionID() {
|
|
4480
|
-
const sessionData = localStorage.getItem(SHARED.SESSIONKEY);
|
|
4481
|
-
console.log(sessionData);
|
|
4482
|
-
if (sessionData) {
|
|
4483
|
-
const sessionId = JSON.parse(sessionData);
|
|
4484
|
-
console.log(sessionId);
|
|
4485
|
-
return sessionId;
|
|
4486
|
-
}
|
|
4487
|
-
return null;
|
|
4488
|
-
}
|
|
4489
|
-
/**
|
|
4490
|
-
* Clears all stored session data from local storage.
|
|
4491
|
-
*/
|
|
4492
|
-
clearSession() {
|
|
4493
|
-
localStorage.clear();
|
|
4494
|
-
}
|
|
4495
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SessionService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4496
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SessionService, providedIn: 'root' });
|
|
4497
|
-
}
|
|
4498
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SessionService, decorators: [{
|
|
4499
|
-
type: Injectable,
|
|
4500
|
-
args: [{
|
|
4501
|
-
providedIn: 'root'
|
|
4502
|
-
}]
|
|
4503
|
-
}], ctorParameters: () => [{ type: i1.Router }] });
|
|
4504
|
-
|
|
4505
4415
|
class DocumentTableBuilderService {
|
|
4506
|
-
|
|
4507
|
-
constructor(sessionService) {
|
|
4508
|
-
this.sessionService = sessionService;
|
|
4509
|
-
}
|
|
4416
|
+
constructor() { }
|
|
4510
4417
|
/**
|
|
4511
4418
|
* Builds a single table from document list items
|
|
4512
4419
|
* @param documents Array of document list items
|
|
4513
4420
|
* @returns TableData object
|
|
4514
4421
|
*/
|
|
4515
4422
|
buildDocumentTable(documents) {
|
|
4516
|
-
|
|
4517
|
-
const
|
|
4518
|
-
const hasDeletePermission = userPermissionNames.includes(PERMISSIONS.DOCUMENT_DELETE);
|
|
4519
|
-
const columns = SHARED.DOCUMENT_TABLE_COLUMNS.filter(col => {
|
|
4520
|
-
// Always include non-action columns
|
|
4521
|
-
if (col.type !== SHARED.ACTIONS) {
|
|
4522
|
-
return true;
|
|
4523
|
-
}
|
|
4524
|
-
// Only include action column if user has delete permission
|
|
4525
|
-
return hasDeletePermission;
|
|
4526
|
-
});
|
|
4423
|
+
// Filter out the actions column completely - not needed for anyone
|
|
4424
|
+
const columns = SHARED.DOCUMENT_TABLE_COLUMNS.filter(col => col.type !== SHARED.ACTIONS);
|
|
4527
4425
|
return {
|
|
4528
4426
|
columns: columns,
|
|
4529
4427
|
data: documents
|
|
@@ -4575,7 +4473,7 @@ class DocumentTableBuilderService {
|
|
|
4575
4473
|
isUploaded: doc.isUploaded || false
|
|
4576
4474
|
}));
|
|
4577
4475
|
}
|
|
4578
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DocumentTableBuilderService, deps: [
|
|
4476
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DocumentTableBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4579
4477
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DocumentTableBuilderService, providedIn: 'root' });
|
|
4580
4478
|
}
|
|
4581
4479
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DocumentTableBuilderService, decorators: [{
|
|
@@ -4583,7 +4481,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
4583
4481
|
args: [{
|
|
4584
4482
|
providedIn: 'root'
|
|
4585
4483
|
}]
|
|
4586
|
-
}], ctorParameters: () => [
|
|
4484
|
+
}], ctorParameters: () => [] });
|
|
4587
4485
|
|
|
4588
4486
|
class DocumentListService {
|
|
4589
4487
|
documentUploadService;
|
|
@@ -4731,6 +4629,10 @@ class TablePrimaryComponent {
|
|
|
4731
4629
|
processedData = [];
|
|
4732
4630
|
// Expose SHARED constants for template use
|
|
4733
4631
|
SHARED = SHARED;
|
|
4632
|
+
// Computed property for visible columns (excluding actions)
|
|
4633
|
+
get visibleColumns() {
|
|
4634
|
+
return this.tableData.columns.filter(col => col.type !== SHARED.CELL_TYPE_ACTIONS);
|
|
4635
|
+
}
|
|
4734
4636
|
ngOnChanges(changes) {
|
|
4735
4637
|
if (changes['tableData'] && this.tableData) {
|
|
4736
4638
|
this.processTableData();
|
|
@@ -4798,12 +4700,15 @@ class TablePrimaryComponent {
|
|
|
4798
4700
|
onRowClick(rowData) {
|
|
4799
4701
|
this.rowClick.emit(rowData);
|
|
4800
4702
|
}
|
|
4703
|
+
getVisibleColumnCount() {
|
|
4704
|
+
return this.visibleColumns.length;
|
|
4705
|
+
}
|
|
4801
4706
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TablePrimaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4802
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: TablePrimaryComponent, isStandalone: false, selector: "lib-table-primary", inputs: { tableData: "tableData", showHeader: "showHeader", tableStyle: "tableStyle" }, outputs: { rowClick: "rowClick" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"card\">\n <p-table [value]=\"processedData\" [tableStyle]=\"tableStyle\">\n <ng-template pTemplate=\"header\" *ngIf=\"showHeader\">\n <tr>\n <
|
|
4707
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: TablePrimaryComponent, isStandalone: false, selector: "lib-table-primary", inputs: { tableData: "tableData", showHeader: "showHeader", tableStyle: "tableStyle" }, outputs: { rowClick: "rowClick" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"card\">\n <p-table [value]=\"processedData\" [tableStyle]=\"tableStyle\">\n <ng-template pTemplate=\"header\" *ngIf=\"showHeader\">\n <tr>\n <ng-container *ngFor=\"let col of visibleColumns\">\n <th [style.width]=\"col.width\">\n {{ col.header }}\n </th>\n </ng-container>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData>\n <tr (click)=\"onRowClick(rowData)\" class=\"clickable-row\">\n <ng-container *ngFor=\"let col of visibleColumns\">\n <td [style.width]=\"col.width\">\n <!-- Document Cell -->\n <div *ngIf=\"col.type === SHARED.CELL_TYPE_DOCUMENT\" class=\"document-cell\">\n <div class=\"document-info\">\n <div class=\"document-icon\">\n <i [class]=\"SHARED.ICON_FILE_PDF\" *ngIf=\"rowData._isPdfFile\"></i>\n <i [class]=\"SHARED.ICON_IMAGE\" *ngIf=\"rowData._isImageFile\"></i>\n <i [class]=\"SHARED.ICON_FILE_EXCEL\" *ngIf=\"rowData._isExcelFile\"></i>\n <i [class]=\"SHARED.ICON_FILE\" *ngIf=\"rowData._isOtherFile\"></i>\n </div>\n <div class=\"document-details\">\n <div class=\"document-name\">{{ rowData.docName }}</div>\n <div class=\"file-info\">{{ rowData.fileName }} - {{ rowData.fileSize }}</div>\n </div>\n </div>\n </div>\n\n <!-- Status Cell -->\n \n <div *ngIf=\"col.type === SHARED.CELL_TYPE_STATUS\" class=\"status-cell\">\n <span class=\"status-pill\" [ngClass]=\"rowData._statusClass\">\n <i [class]=\"rowData._statusIcon\"></i>\n {{ rowData[col.field] }}\n </span>\n </div>\n\n <!-- Actions Cell -->\n <div *ngIf=\"col.type === SHARED.CELL_TYPE_ACTIONS\" class=\"actions-cell\">\n <!-- Actions content can be added here if needed -->\n </div>\n\n <!-- Default Text Cell -->\n <div *ngIf=\"!col.type || col.type === SHARED.CELL_TYPE_TEXT\" class=\"text-cell\">\n {{ rowData[col.field] }}\n </div>\n </td>\n </ng-container>\n </tr>\n </ng-template>\n \n <!-- No Records Template -->\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td [attr.colspan]=\"getVisibleColumnCount()\" class=\"no-records-cell\">\n <div class=\"no-records-content\">\n <i class=\"pi pi-inbox\" style=\"font-size: 2rem; color: #6c757d;\"></i>\n <p class=\"no-records-text\">No records found</p>\n </div>\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>", styles: [".document-cell .document-info{display:flex;align-items:center;gap:.75rem;text-align:left}.document-cell .document-info .document-icon{width:40px;height:40px;background-color:#e3f2fd;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#1976d2;font-size:1.25rem;flex-shrink:0}.document-cell .document-info .document-details{flex:1;min-width:0}.document-cell .document-info .document-details .document-name{font-weight:400;color:#334155;line-height:20px;font-size:14px;margin-bottom:.25rem;text-align:left;word-break:break-word}.document-cell .document-info .document-details .file-info{font-size:.75rem;color:#6c757d;text-align:left}.status-cell .status-pill{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.375rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;white-space:nowrap;min-width:80px}.status-cell .status-pill i{font-size:.875rem}.status-cell .status-pill.status-pending{background-color:#f3f4f6;color:#6b7280}.status-cell .status-pill.status-approved{background-color:#d1fae5;color:#065f46}.status-cell .status-pill.status-alert{background-color:#fee2e2;color:#dc2626}.status-cell .status-pill.status-uploaded{background-color:#dbeafe;color:#1d4ed8}.status-cell .status-pill.status-reviewing{background-color:#fef3c7;color:#d97706}.status-cell .status-pill.status-rejected{background-color:#fee2e2;color:#dc2626}.actions-cell{text-align:left}.actions-cell .p-button{width:2rem;height:2rem;border-radius:50%;background-color:transparent;border:none;color:#6c757d}.actions-cell .p-button:hover{background-color:#f8f9fa;color:#495057}.text-cell{font-weight:500;color:#475569;font-size:14px;line-height:20px;text-align:left}.clickable-row{cursor:pointer;transition:background-color .2s ease}.clickable-row:hover{background-color:#f8f9fa!important}.clickable-row:active{background-color:#e9ecef!important}::ng-deep .p-datatable .p-datatable-wrapper{border:1px solid #E2E8F0;border-radius:10px}::ng-deep .p-datatable .p-datatable-thead>tr>th{background-color:#f8f9fa;border:none;border-bottom:1px solid #dee2e6;padding:1rem 1.5rem;font-weight:600;color:#64748b;font-size:.875rem;text-transform:capitalize;letter-spacing:.5px;text-align:left;border-radius:8px 8px 0 0}::ng-deep .p-datatable .p-datatable-thead>tr>th:first-child{border-top-left-radius:8px}::ng-deep .p-datatable .p-datatable-thead>tr>th:last-child{border-top-right-radius:8px}::ng-deep .p-datatable .p-datatable-tbody>tr{border-bottom:1px solid #f1f3f4}::ng-deep .p-datatable .p-datatable-tbody>tr:hover{background-color:#f8f9fa}::ng-deep .p-datatable .p-datatable-tbody>tr:last-child>td:first-child{border-bottom-left-radius:8px}::ng-deep .p-datatable .p-datatable-tbody>tr:last-child>td:last-child{border-bottom-right-radius:8px}::ng-deep .p-datatable .p-datatable-tbody>tr>td{border:none;padding:1rem 1.5rem;vertical-align:middle;text-align:left}.no-records-cell{text-align:center;padding:3rem 1.5rem!important;border:none}.no-records-cell .no-records-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.no-records-cell .no-records-content .no-records-text{margin:0;color:#6c757d;font-size:1rem;font-weight:500}\n"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] });
|
|
4803
4708
|
}
|
|
4804
4709
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TablePrimaryComponent, decorators: [{
|
|
4805
4710
|
type: Component,
|
|
4806
|
-
args: [{ selector: 'lib-table-primary', standalone: false, template: "<div class=\"card\">\n <p-table [value]=\"processedData\" [tableStyle]=\"tableStyle\">\n <ng-template pTemplate=\"header\" *ngIf=\"showHeader\">\n <tr>\n <
|
|
4711
|
+
args: [{ selector: 'lib-table-primary', standalone: false, template: "<div class=\"card\">\n <p-table [value]=\"processedData\" [tableStyle]=\"tableStyle\">\n <ng-template pTemplate=\"header\" *ngIf=\"showHeader\">\n <tr>\n <ng-container *ngFor=\"let col of visibleColumns\">\n <th [style.width]=\"col.width\">\n {{ col.header }}\n </th>\n </ng-container>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData>\n <tr (click)=\"onRowClick(rowData)\" class=\"clickable-row\">\n <ng-container *ngFor=\"let col of visibleColumns\">\n <td [style.width]=\"col.width\">\n <!-- Document Cell -->\n <div *ngIf=\"col.type === SHARED.CELL_TYPE_DOCUMENT\" class=\"document-cell\">\n <div class=\"document-info\">\n <div class=\"document-icon\">\n <i [class]=\"SHARED.ICON_FILE_PDF\" *ngIf=\"rowData._isPdfFile\"></i>\n <i [class]=\"SHARED.ICON_IMAGE\" *ngIf=\"rowData._isImageFile\"></i>\n <i [class]=\"SHARED.ICON_FILE_EXCEL\" *ngIf=\"rowData._isExcelFile\"></i>\n <i [class]=\"SHARED.ICON_FILE\" *ngIf=\"rowData._isOtherFile\"></i>\n </div>\n <div class=\"document-details\">\n <div class=\"document-name\">{{ rowData.docName }}</div>\n <div class=\"file-info\">{{ rowData.fileName }} - {{ rowData.fileSize }}</div>\n </div>\n </div>\n </div>\n\n <!-- Status Cell -->\n \n <div *ngIf=\"col.type === SHARED.CELL_TYPE_STATUS\" class=\"status-cell\">\n <span class=\"status-pill\" [ngClass]=\"rowData._statusClass\">\n <i [class]=\"rowData._statusIcon\"></i>\n {{ rowData[col.field] }}\n </span>\n </div>\n\n <!-- Actions Cell -->\n <div *ngIf=\"col.type === SHARED.CELL_TYPE_ACTIONS\" class=\"actions-cell\">\n <!-- Actions content can be added here if needed -->\n </div>\n\n <!-- Default Text Cell -->\n <div *ngIf=\"!col.type || col.type === SHARED.CELL_TYPE_TEXT\" class=\"text-cell\">\n {{ rowData[col.field] }}\n </div>\n </td>\n </ng-container>\n </tr>\n </ng-template>\n \n <!-- No Records Template -->\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td [attr.colspan]=\"getVisibleColumnCount()\" class=\"no-records-cell\">\n <div class=\"no-records-content\">\n <i class=\"pi pi-inbox\" style=\"font-size: 2rem; color: #6c757d;\"></i>\n <p class=\"no-records-text\">No records found</p>\n </div>\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>", styles: [".document-cell .document-info{display:flex;align-items:center;gap:.75rem;text-align:left}.document-cell .document-info .document-icon{width:40px;height:40px;background-color:#e3f2fd;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#1976d2;font-size:1.25rem;flex-shrink:0}.document-cell .document-info .document-details{flex:1;min-width:0}.document-cell .document-info .document-details .document-name{font-weight:400;color:#334155;line-height:20px;font-size:14px;margin-bottom:.25rem;text-align:left;word-break:break-word}.document-cell .document-info .document-details .file-info{font-size:.75rem;color:#6c757d;text-align:left}.status-cell .status-pill{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.375rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;white-space:nowrap;min-width:80px}.status-cell .status-pill i{font-size:.875rem}.status-cell .status-pill.status-pending{background-color:#f3f4f6;color:#6b7280}.status-cell .status-pill.status-approved{background-color:#d1fae5;color:#065f46}.status-cell .status-pill.status-alert{background-color:#fee2e2;color:#dc2626}.status-cell .status-pill.status-uploaded{background-color:#dbeafe;color:#1d4ed8}.status-cell .status-pill.status-reviewing{background-color:#fef3c7;color:#d97706}.status-cell .status-pill.status-rejected{background-color:#fee2e2;color:#dc2626}.actions-cell{text-align:left}.actions-cell .p-button{width:2rem;height:2rem;border-radius:50%;background-color:transparent;border:none;color:#6c757d}.actions-cell .p-button:hover{background-color:#f8f9fa;color:#495057}.text-cell{font-weight:500;color:#475569;font-size:14px;line-height:20px;text-align:left}.clickable-row{cursor:pointer;transition:background-color .2s ease}.clickable-row:hover{background-color:#f8f9fa!important}.clickable-row:active{background-color:#e9ecef!important}::ng-deep .p-datatable .p-datatable-wrapper{border:1px solid #E2E8F0;border-radius:10px}::ng-deep .p-datatable .p-datatable-thead>tr>th{background-color:#f8f9fa;border:none;border-bottom:1px solid #dee2e6;padding:1rem 1.5rem;font-weight:600;color:#64748b;font-size:.875rem;text-transform:capitalize;letter-spacing:.5px;text-align:left;border-radius:8px 8px 0 0}::ng-deep .p-datatable .p-datatable-thead>tr>th:first-child{border-top-left-radius:8px}::ng-deep .p-datatable .p-datatable-thead>tr>th:last-child{border-top-right-radius:8px}::ng-deep .p-datatable .p-datatable-tbody>tr{border-bottom:1px solid #f1f3f4}::ng-deep .p-datatable .p-datatable-tbody>tr:hover{background-color:#f8f9fa}::ng-deep .p-datatable .p-datatable-tbody>tr:last-child>td:first-child{border-bottom-left-radius:8px}::ng-deep .p-datatable .p-datatable-tbody>tr:last-child>td:last-child{border-bottom-right-radius:8px}::ng-deep .p-datatable .p-datatable-tbody>tr>td{border:none;padding:1rem 1.5rem;vertical-align:middle;text-align:left}.no-records-cell{text-align:center;padding:3rem 1.5rem!important;border:none}.no-records-cell .no-records-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.no-records-cell .no-records-content .no-records-text{margin:0;color:#6c757d;font-size:1rem;font-weight:500}\n"] }]
|
|
4807
4712
|
}], propDecorators: { tableData: [{
|
|
4808
4713
|
type: Input
|
|
4809
4714
|
}], showHeader: [{
|
|
@@ -5495,6 +5400,80 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
5495
5400
|
}]
|
|
5496
5401
|
}] });
|
|
5497
5402
|
|
|
5403
|
+
/**
|
|
5404
|
+
* Service for managing user session details.
|
|
5405
|
+
* @class SessionService
|
|
5406
|
+
* @typedef {SessionService}
|
|
5407
|
+
*/
|
|
5408
|
+
class SessionService {
|
|
5409
|
+
router;
|
|
5410
|
+
/**
|
|
5411
|
+
* Creates an instance of SessionService.
|
|
5412
|
+
* @param {Router} router - Angular Router for navigation.
|
|
5413
|
+
*/
|
|
5414
|
+
constructor(router) {
|
|
5415
|
+
this.router = router;
|
|
5416
|
+
}
|
|
5417
|
+
/**
|
|
5418
|
+
* Retrieves the current user's role from local storage.
|
|
5419
|
+
* @returns {string | null} The user's role, or null if not found.
|
|
5420
|
+
*/
|
|
5421
|
+
getUserRole() {
|
|
5422
|
+
return localStorage.getItem('role');
|
|
5423
|
+
}
|
|
5424
|
+
/**
|
|
5425
|
+
* Stores the user session data in local storage.
|
|
5426
|
+
* @param {any} data - The session data to store.
|
|
5427
|
+
*/
|
|
5428
|
+
setUserSession(data) {
|
|
5429
|
+
localStorage.setItem(SHARED.SESSIONKEY, JSON.stringify(data));
|
|
5430
|
+
}
|
|
5431
|
+
/**
|
|
5432
|
+
* Retrieves the stored user session data.
|
|
5433
|
+
* @returns {any | null} The parsed session data, or null if not found.
|
|
5434
|
+
*/
|
|
5435
|
+
getUserSession() {
|
|
5436
|
+
const sessionData = localStorage.getItem(SHARED.SESSIONKEY);
|
|
5437
|
+
return sessionData ? JSON.parse(sessionData) : null;
|
|
5438
|
+
}
|
|
5439
|
+
/**
|
|
5440
|
+
* Retrieves the user's permissions from the stored session data.
|
|
5441
|
+
* @returns {any | null} The user's permissions, or null if not found.
|
|
5442
|
+
*/
|
|
5443
|
+
getUserPermissions() {
|
|
5444
|
+
const sessionData = localStorage.getItem(SHARED.SESSIONKEY);
|
|
5445
|
+
return sessionData ? JSON.parse(sessionData).permissions : null;
|
|
5446
|
+
}
|
|
5447
|
+
/**
|
|
5448
|
+
* Retrieves the session ID from the stored session data.
|
|
5449
|
+
* @returns {any | null} The session ID, or null if not found.
|
|
5450
|
+
*/
|
|
5451
|
+
getSessionID() {
|
|
5452
|
+
const sessionData = localStorage.getItem(SHARED.SESSIONKEY);
|
|
5453
|
+
console.log(sessionData);
|
|
5454
|
+
if (sessionData) {
|
|
5455
|
+
const sessionId = JSON.parse(sessionData);
|
|
5456
|
+
console.log(sessionId);
|
|
5457
|
+
return sessionId;
|
|
5458
|
+
}
|
|
5459
|
+
return null;
|
|
5460
|
+
}
|
|
5461
|
+
/**
|
|
5462
|
+
* Clears all stored session data from local storage.
|
|
5463
|
+
*/
|
|
5464
|
+
clearSession() {
|
|
5465
|
+
localStorage.clear();
|
|
5466
|
+
}
|
|
5467
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SessionService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5468
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SessionService, providedIn: 'root' });
|
|
5469
|
+
}
|
|
5470
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SessionService, decorators: [{
|
|
5471
|
+
type: Injectable,
|
|
5472
|
+
args: [{
|
|
5473
|
+
providedIn: 'root'
|
|
5474
|
+
}]
|
|
5475
|
+
}], ctorParameters: () => [{ type: i1.Router }] });
|
|
5476
|
+
|
|
5498
5477
|
/**
|
|
5499
5478
|
* Directive to conditionally show or hide elements based on user permissions.
|
|
5500
5479
|
* @class HasPermissionDirective
|
|
@@ -6927,11 +6906,11 @@ class DocumentContainerComponent {
|
|
|
6927
6906
|
this.clearAllState();
|
|
6928
6907
|
}
|
|
6929
6908
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DocumentContainerComponent, deps: [{ token: DocumentHttpService }, { token: DocumentHelperService }, { token: DocumentQuery }, { token: DocumentStore }], target: i0.ɵɵFactoryTarget.Component });
|
|
6930
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: DocumentContainerComponent, isStandalone: false, selector: "lib-document-container", inputs: { contextId: "contextId" }, viewQueries: [{ propertyName: "contentScrollContainer", first: true, predicate: ["contentScrollContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"document-container-layout\">\r\n <!-- Fixed Left Menu -->\r\n <div class=\"menu-panel\">\r\n <lib-documents-menu \r\n [catagories]=\"catagories\" \r\n [applicationNumber]=\"applicationNumber\" \r\n [contextId]=\"contextId\"\r\n (menuItemSelected)=\"onMenuItemSelected($event)\">\r\n </lib-documents-menu>\r\n </div>\r\n \r\n <!-- Scrollable Right Content -->\r\n <div class=\"content-panel\" #contentScrollContainer>\r\n <div class=\"card content-card\">\r\n <lib-folder-container [contextId]=\"contextId\" [userList]=\"userList\" [statusData]=\"statusData\" [categories]=\"catagories\"></lib-folder-container>\r\n </div>\r\n <div>\r\n <lib-document-list \r\n [contextId]=\"contextId\" \r\n [documentListResponse]=\"documentListResponse\"\r\n [selectedMenuItemId]=\"selectedMenuItemId\"\r\n [navigationInfo]=\"navigationInfo\">\r\n <ng-content></ng-content>\r\n </lib-document-list>\r\n </div>\r\n </div>\r\n</div>", styles: [".document-container-layout{display:flex;height:98vh;overflow:auto;position:relative}.menu-panel{position:fixed;left:0;top:0;bottom:0;width:280px;background-color:#fff;overflow-y:auto;overflow-x:hidden
|
|
6909
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: DocumentContainerComponent, isStandalone: false, selector: "lib-document-container", inputs: { contextId: "contextId" }, viewQueries: [{ propertyName: "contentScrollContainer", first: true, predicate: ["contentScrollContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"document-container-layout\">\r\n <!-- Fixed Left Menu -->\r\n <div class=\"menu-panel\">\r\n <lib-documents-menu \r\n [catagories]=\"catagories\" \r\n [applicationNumber]=\"applicationNumber\" \r\n [contextId]=\"contextId\"\r\n (menuItemSelected)=\"onMenuItemSelected($event)\">\r\n </lib-documents-menu>\r\n </div>\r\n \r\n <!-- Scrollable Right Content -->\r\n <div class=\"content-panel\" #contentScrollContainer>\r\n <div class=\"card content-card\">\r\n <lib-folder-container [contextId]=\"contextId\" [userList]=\"userList\" [statusData]=\"statusData\" [categories]=\"catagories\"></lib-folder-container>\r\n </div>\r\n <div>\r\n <lib-document-list \r\n [contextId]=\"contextId\" \r\n [documentListResponse]=\"documentListResponse\"\r\n [selectedMenuItemId]=\"selectedMenuItemId\"\r\n [navigationInfo]=\"navigationInfo\">\r\n <ng-content></ng-content>\r\n </lib-document-list>\r\n </div>\r\n </div>\r\n</div>", styles: [".document-container-layout{display:flex;height:98vh;overflow:auto;position:relative}.menu-panel{position:fixed;left:0;top:0;bottom:0;width:280px;background-color:#fff;overflow-y:auto;overflow-x:hidden}.menu-panel::-webkit-scrollbar{width:6px}.menu-panel::-webkit-scrollbar-track{background:#f1f5f9}.menu-panel::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.menu-panel::-webkit-scrollbar-thumb:hover{background:#94a3b8}.content-panel{flex:1;margin-left:280px;display:flex;flex-direction:column;height:98vh;overflow-y:auto;overflow-x:hidden;padding:0;position:relative;z-index:10}.content-panel::-webkit-scrollbar{width:8px}.content-panel::-webkit-scrollbar-track{background:#f8fafc}.content-panel::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.content-panel::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media (max-width: 1024px){.menu-panel{width:240px}.content-panel{margin-left:240px}}@media (max-width: 768px){.document-container-layout{flex-direction:column}.menu-panel{position:relative;width:100%;height:200px;border-right:none;border-bottom:1px solid #e5e7eb;z-index:auto}.content-panel{margin-left:0;flex:1}}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}*{scrollbar-width:thin}body,html{height:100%}::ng-deep .p-card{overflow:visible!important}::ng-deep .p-card-body{overflow:visible!important}::ng-deep .p-dialog{z-index:9999!important}::ng-deep .p-dialog-mask{z-index:9998!important}::ng-deep .content-panel .p-card{overflow:visible!important}\n"], dependencies: [{ kind: "component", type: FolderContainerComponent, selector: "lib-folder-container", inputs: ["documentList", "folderList", "contextId", "userList", "statusData", "categories"] }, { kind: "component", type: DocumentListComponent, selector: "lib-document-list", inputs: ["contextId", "documentListResponse", "selectedMenuItemId", "navigationInfo", "documentList"] }, { kind: "component", type: DocumentsMenuComponent, selector: "lib-documents-menu", inputs: ["catagories", "applicationNumber", "contextId"], outputs: ["menuItemSelected"] }] });
|
|
6931
6910
|
}
|
|
6932
6911
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DocumentContainerComponent, decorators: [{
|
|
6933
6912
|
type: Component,
|
|
6934
|
-
args: [{ selector: 'lib-document-container', standalone: false, template: "<div class=\"document-container-layout\">\r\n <!-- Fixed Left Menu -->\r\n <div class=\"menu-panel\">\r\n <lib-documents-menu \r\n [catagories]=\"catagories\" \r\n [applicationNumber]=\"applicationNumber\" \r\n [contextId]=\"contextId\"\r\n (menuItemSelected)=\"onMenuItemSelected($event)\">\r\n </lib-documents-menu>\r\n </div>\r\n \r\n <!-- Scrollable Right Content -->\r\n <div class=\"content-panel\" #contentScrollContainer>\r\n <div class=\"card content-card\">\r\n <lib-folder-container [contextId]=\"contextId\" [userList]=\"userList\" [statusData]=\"statusData\" [categories]=\"catagories\"></lib-folder-container>\r\n </div>\r\n <div>\r\n <lib-document-list \r\n [contextId]=\"contextId\" \r\n [documentListResponse]=\"documentListResponse\"\r\n [selectedMenuItemId]=\"selectedMenuItemId\"\r\n [navigationInfo]=\"navigationInfo\">\r\n <ng-content></ng-content>\r\n </lib-document-list>\r\n </div>\r\n </div>\r\n</div>", styles: [".document-container-layout{display:flex;height:98vh;overflow:auto;position:relative}.menu-panel{position:fixed;left:0;top:0;bottom:0;width:280px;background-color:#fff;overflow-y:auto;overflow-x:hidden
|
|
6913
|
+
args: [{ selector: 'lib-document-container', standalone: false, template: "<div class=\"document-container-layout\">\r\n <!-- Fixed Left Menu -->\r\n <div class=\"menu-panel\">\r\n <lib-documents-menu \r\n [catagories]=\"catagories\" \r\n [applicationNumber]=\"applicationNumber\" \r\n [contextId]=\"contextId\"\r\n (menuItemSelected)=\"onMenuItemSelected($event)\">\r\n </lib-documents-menu>\r\n </div>\r\n \r\n <!-- Scrollable Right Content -->\r\n <div class=\"content-panel\" #contentScrollContainer>\r\n <div class=\"card content-card\">\r\n <lib-folder-container [contextId]=\"contextId\" [userList]=\"userList\" [statusData]=\"statusData\" [categories]=\"catagories\"></lib-folder-container>\r\n </div>\r\n <div>\r\n <lib-document-list \r\n [contextId]=\"contextId\" \r\n [documentListResponse]=\"documentListResponse\"\r\n [selectedMenuItemId]=\"selectedMenuItemId\"\r\n [navigationInfo]=\"navigationInfo\">\r\n <ng-content></ng-content>\r\n </lib-document-list>\r\n </div>\r\n </div>\r\n</div>", styles: [".document-container-layout{display:flex;height:98vh;overflow:auto;position:relative}.menu-panel{position:fixed;left:0;top:0;bottom:0;width:280px;background-color:#fff;overflow-y:auto;overflow-x:hidden}.menu-panel::-webkit-scrollbar{width:6px}.menu-panel::-webkit-scrollbar-track{background:#f1f5f9}.menu-panel::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.menu-panel::-webkit-scrollbar-thumb:hover{background:#94a3b8}.content-panel{flex:1;margin-left:280px;display:flex;flex-direction:column;height:98vh;overflow-y:auto;overflow-x:hidden;padding:0;position:relative;z-index:10}.content-panel::-webkit-scrollbar{width:8px}.content-panel::-webkit-scrollbar-track{background:#f8fafc}.content-panel::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.content-panel::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media (max-width: 1024px){.menu-panel{width:240px}.content-panel{margin-left:240px}}@media (max-width: 768px){.document-container-layout{flex-direction:column}.menu-panel{position:relative;width:100%;height:200px;border-right:none;border-bottom:1px solid #e5e7eb;z-index:auto}.content-panel{margin-left:0;flex:1}}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}*{scrollbar-width:thin}body,html{height:100%}::ng-deep .p-card{overflow:visible!important}::ng-deep .p-card-body{overflow:visible!important}::ng-deep .p-dialog{z-index:9999!important}::ng-deep .p-dialog-mask{z-index:9998!important}::ng-deep .content-panel .p-card{overflow:visible!important}\n"] }]
|
|
6935
6914
|
}], ctorParameters: () => [{ type: DocumentHttpService }, { type: DocumentHelperService }, { type: DocumentQuery }, { type: DocumentStore }], propDecorators: { contentScrollContainer: [{
|
|
6936
6915
|
type: ViewChild,
|
|
6937
6916
|
args: ['contentScrollContainer', { static: false }]
|