cat-documents-ng 1.0.4 → 1.0.6
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/ng-package.json +10 -0
- package/package.json +5 -11
- package/src/Shared/components/confirmation-dialog/confirmation-dialog.component.html +3 -0
- package/src/Shared/components/confirmation-dialog/confirmation-dialog.component.scss +13 -0
- package/src/Shared/components/confirmation-dialog/confirmation-dialog.component.spec.ts +70 -0
- package/src/Shared/components/confirmation-dialog/confirmation-dialog.component.ts +133 -0
- package/src/Shared/components/table-primary/table-primary.component.html +66 -0
- package/src/Shared/components/table-primary/table-primary.component.scss +227 -0
- package/src/Shared/components/table-primary/table-primary.component.spec.ts +23 -0
- package/src/Shared/components/table-primary/table-primary.component.ts +143 -0
- package/src/Shared/components/table-primary/table-primary.model.ts +21 -0
- package/src/Shared/constant/ERROR.ts +55 -0
- package/src/Shared/constant/PERMISSIONS.ts +17 -0
- package/src/Shared/constant/SHARED.ts +936 -0
- package/{Shared/constant/URLS.d.ts → src/Shared/constant/URLS.ts} +31 -25
- package/src/Shared/services/app-config.service.spec.ts +19 -0
- package/src/Shared/services/app-config.service.ts +73 -0
- package/{Shared/services/global-error.handler.d.ts → src/Shared/services/global-error.handler.ts} +11 -9
- package/src/Shared/services/session.service.spec.ts +16 -0
- package/src/Shared/services/session.service.ts +76 -0
- package/src/Shared/shared.module.ts +25 -0
- package/src/lib/document/components/csv-viewer/csv-viewer.component.ts +1 -0
- package/src/lib/document/components/document-actions/document-actions.component.html +59 -0
- package/src/lib/document/components/document-actions/document-actions.component.scss +362 -0
- package/src/lib/document/components/document-actions/document-actions.component.spec.ts +297 -0
- package/src/lib/document/components/document-actions/document-actions.component.ts +163 -0
- package/src/lib/document/components/document-container/document-container.component.html +36 -0
- package/src/lib/document/components/document-container/document-container.component.scss +144 -0
- package/src/lib/document/components/document-container/document-container.component.spec.ts +110 -0
- package/src/lib/document/components/document-container/document-container.component.ts +363 -0
- package/src/lib/document/components/document-content-viewer/document-content-viewer.component.html +332 -0
- package/src/lib/document/components/document-content-viewer/document-content-viewer.component.scss +1877 -0
- package/src/lib/document/components/document-content-viewer/document-content-viewer.component.spec.ts +258 -0
- package/src/lib/document/components/document-content-viewer/document-content-viewer.component.ts +664 -0
- package/src/lib/document/components/document-history/document-history.component.html +96 -0
- package/src/lib/document/components/document-history/document-history.component.scss +392 -0
- package/src/lib/document/components/document-history/document-history.component.spec.ts +93 -0
- package/src/lib/document/components/document-history/document-history.component.ts +373 -0
- package/src/lib/document/components/document-list/document-list.component.html +46 -0
- package/src/lib/document/components/document-list/document-list.component.scss +513 -0
- package/src/lib/document/components/document-list/document-list.component.spec.ts +486 -0
- package/src/lib/document/components/document-list/document-list.component.ts +682 -0
- package/src/lib/document/components/document-list-item/document-list-item.component.html +36 -0
- package/src/lib/document/components/document-list-item/document-list-item.component.scss +34 -0
- package/src/lib/document/components/document-list-item/document-list-item.component.spec.ts +75 -0
- package/src/lib/document/components/document-list-item/document-list-item.component.ts +40 -0
- package/src/lib/document/components/document-search/document-search.component.html +64 -0
- package/src/lib/document/components/document-search/document-search.component.scss +206 -0
- package/src/lib/document/components/document-search/document-search.component.spec.ts +82 -0
- package/src/lib/document/components/document-search/document-search.component.ts +163 -0
- package/src/lib/document/components/document-status/document-status.component.html +31 -0
- package/src/lib/document/components/document-status/document-status.component.scss +192 -0
- package/src/lib/document/components/document-status/document-status.component.spec.ts +23 -0
- package/src/lib/document/components/document-status/document-status.component.ts +87 -0
- package/src/lib/document/components/document-upload/document-upload.component.html +160 -0
- package/src/lib/document/components/document-upload/document-upload.component.scss +235 -0
- package/src/lib/document/components/document-upload/document-upload.component.spec.ts +95 -0
- package/src/lib/document/components/document-upload/document-upload.component.ts +668 -0
- package/src/lib/document/components/document-viewer/document-viewer.component.html +50 -0
- package/src/lib/document/components/document-viewer/document-viewer.component.scss +187 -0
- package/src/lib/document/components/document-viewer/document-viewer.component.spec.ts +79 -0
- package/src/lib/document/components/document-viewer/document-viewer.component.ts +261 -0
- package/src/lib/document/components/document-zoom-controls/document-zoom-controls.component.html +48 -0
- package/src/lib/document/components/document-zoom-controls/document-zoom-controls.component.scss +320 -0
- package/src/lib/document/components/document-zoom-controls/document-zoom-controls.component.spec.ts +59 -0
- package/src/lib/document/components/document-zoom-controls/document-zoom-controls.component.ts +150 -0
- package/src/lib/document/components/documents-menu/documents-menu.component.html +44 -0
- package/src/lib/document/components/documents-menu/documents-menu.component.scss +363 -0
- package/src/lib/document/components/documents-menu/documents-menu.component.spec.ts +23 -0
- package/src/lib/document/components/documents-menu/documents-menu.component.ts +316 -0
- package/src/lib/document/components/folder-block/folder-block.component.html +46 -0
- package/src/lib/document/components/folder-block/folder-block.component.scss +9 -0
- package/src/lib/document/components/folder-block/folder-block.component.spec.ts +70 -0
- package/{lib/document/components/folder-block/folder-block.component.d.ts → src/lib/document/components/folder-block/folder-block.component.ts} +28 -12
- package/src/lib/document/components/folder-container/folder-container.component.html +56 -0
- package/src/lib/document/components/folder-container/folder-container.component.scss +20 -0
- package/src/lib/document/components/folder-container/folder-container.component.spec.ts +27 -0
- package/src/lib/document/components/folder-container/folder-container.component.ts +328 -0
- package/src/lib/document/components/linked-document/linked-document.component.html +23 -0
- package/src/lib/document/components/linked-document/linked-document.component.scss +10 -0
- package/src/lib/document/components/linked-document/linked-document.component.spec.ts +61 -0
- package/src/lib/document/components/linked-document/linked-document.component.ts +49 -0
- package/src/lib/document/components/request-document/request-document.component.html +86 -0
- package/src/lib/document/components/request-document/request-document.component.scss +16 -0
- package/src/lib/document/components/request-document/request-document.component.ts +278 -0
- package/src/lib/document/components/sidebar/sidebar.component.html +75 -0
- package/src/lib/document/components/sidebar/sidebar.component.scss +157 -0
- package/src/lib/document/components/sidebar/sidebar.component.spec.ts +114 -0
- package/src/lib/document/components/sidebar/sidebar.component.ts +223 -0
- package/src/lib/document/components/user-list/user-list.component.html +33 -0
- package/src/lib/document/components/user-list/user-list.component.scss +118 -0
- package/src/lib/document/components/user-list/user-list.component.spec.ts +23 -0
- package/src/lib/document/components/user-list/user-list.component.ts +181 -0
- package/src/lib/document/constant/DOCUMENT_HISTORY.ts +52 -0
- package/src/lib/document/directives/document.directive.ts +32 -0
- package/src/lib/document/directives/permission.directive.spec.ts +0 -0
- package/src/lib/document/directives/permission.directive.ts +72 -0
- package/src/lib/document/document.module.ts +351 -0
- package/{lib/document/models/document-alert.model.d.ts → src/lib/document/models/document-alert.model.ts} +11 -4
- package/src/lib/document/models/document-category.model.ts +30 -0
- package/src/lib/document/models/document-history.model.ts +109 -0
- package/src/lib/document/models/document-list-response.model.ts +37 -0
- package/src/lib/document/models/document-type.model.ts +44 -0
- package/src/lib/document/models/document.model.ts +53 -0
- package/{lib/document/models/folder.model.d.ts → src/lib/document/models/folder.model.ts} +10 -4
- package/src/lib/document/models/status-data.model.ts +31 -0
- package/src/lib/document/models/uploaded-file-response.model.ts +7 -0
- package/src/lib/document/models/user-list.model.ts +10 -0
- package/src/lib/document/services/csv-parser.service.spec.ts +97 -0
- package/src/lib/document/services/csv-parser.service.ts +303 -0
- package/src/lib/document/services/document-actions.service.ts +125 -0
- package/src/lib/document/services/document-content-type.service.ts +193 -0
- package/src/lib/document/services/document-history-style.service.ts +138 -0
- package/src/lib/document/services/document-history.service.ts +129 -0
- package/src/lib/document/services/document-http.service.spec.ts +119 -0
- package/src/lib/document/services/document-http.service.ts +497 -0
- package/src/lib/document/services/document-list.service.ts +195 -0
- package/src/lib/document/services/document-menu.service.ts +277 -0
- package/src/lib/document/services/document-scroll.service.ts +138 -0
- package/src/lib/document/services/document-severity.service.ts +98 -0
- package/src/lib/document/services/document-table-builder.service.ts +82 -0
- package/src/lib/document/services/document-upload-business.service.ts +326 -0
- package/src/lib/document/services/document-upload-data.service.ts +82 -0
- package/src/lib/document/services/document-upload-form.service.ts +149 -0
- package/src/lib/document/services/document-upload.service.spec.ts +99 -0
- package/src/lib/document/services/document-upload.service.ts +209 -0
- package/src/lib/document/services/document-viewer.service.ts +279 -0
- package/src/lib/document/services/document-zoom.service.spec.ts +56 -0
- package/src/lib/document/services/document-zoom.service.ts +164 -0
- package/src/lib/document/services/document.service.ts +356 -0
- package/src/lib/document/services/eml-parser.service.ts +444 -0
- package/src/lib/document/services/excel-parser.service.spec.ts +66 -0
- package/src/lib/document/services/excel-parser.service.ts +483 -0
- package/src/lib/document/services/file-format.service.spec.ts +16 -0
- package/src/lib/document/services/file-format.service.ts +63 -0
- package/src/lib/document/services/status-calculator.service.ts +44 -0
- package/src/lib/document/services/user-list.service.ts +77 -0
- package/src/lib/document/state/document.query.ts +378 -0
- package/{lib/document/state/document.service.d.ts → src/lib/document/state/document.service.ts} +46 -15
- package/src/lib/document/state/document.state.ts +100 -0
- package/src/lib/document/state/document.store.ts +200 -0
- package/{public-api.d.ts → src/public-api.ts} +4 -0
- package/tsconfig.lib.json +15 -0
- package/tsconfig.lib.prod.json +11 -0
- package/tsconfig.spec.json +15 -0
- package/Shared/components/confirmation-dialog/confirmation-dialog.component.d.ts +0 -44
- package/Shared/components/table-primary/table-primary.component.d.ts +0 -31
- package/Shared/components/table-primary/table-primary.model.d.ts +0 -19
- package/Shared/constant/ERROR.d.ts +0 -52
- package/Shared/constant/SHARED.d.ts +0 -546
- package/Shared/services/app-config.service.d.ts +0 -51
- package/Shared/services/session.service.d.ts +0 -46
- package/Shared/shared.module.d.ts +0 -14
- package/fesm2022/cat-documents-ng.mjs +0 -11392
- package/fesm2022/cat-documents-ng.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/document/components/document-actions/document-actions.component.d.ts +0 -78
- package/lib/document/components/document-container/document-container.component.d.ts +0 -162
- package/lib/document/components/document-content-viewer/document-content-viewer.component.d.ts +0 -291
- package/lib/document/components/document-history/document-history.component.d.ts +0 -160
- package/lib/document/components/document-list/document-list.component.d.ts +0 -299
- package/lib/document/components/document-list-item/document-list-item.component.d.ts +0 -28
- package/lib/document/components/document-search/document-search.component.d.ts +0 -77
- package/lib/document/components/document-status/document-status.component.d.ts +0 -24
- package/lib/document/components/document-upload/document-upload.component.d.ts +0 -321
- package/lib/document/components/document-viewer/document-viewer.component.d.ts +0 -137
- package/lib/document/components/document-zoom-controls/document-zoom-controls.component.d.ts +0 -33
- package/lib/document/components/documents-menu/documents-menu.component.d.ts +0 -110
- package/lib/document/components/folder-container/folder-container.component.d.ts +0 -162
- package/lib/document/components/linked-document/linked-document.component.d.ts +0 -39
- package/lib/document/components/request-document/request-document.component.d.ts +0 -69
- package/lib/document/components/sidebar/sidebar.component.d.ts +0 -109
- package/lib/document/components/user-list/user-list.component.d.ts +0 -34
- package/lib/document/constant/DOCUMENT_HISTORY.d.ts +0 -41
- package/lib/document/directives/document.directive.d.ts +0 -20
- package/lib/document/directives/permission.directive.d.ts +0 -38
- package/lib/document/document.module.d.ts +0 -60
- package/lib/document/models/document-category.model.d.ts +0 -24
- package/lib/document/models/document-history.model.d.ts +0 -94
- package/lib/document/models/document-list-response.model.d.ts +0 -33
- package/lib/document/models/document-type.model.d.ts +0 -37
- package/lib/document/models/document.model.d.ts +0 -44
- package/lib/document/models/status-data.model.d.ts +0 -27
- package/lib/document/models/uploaded-file-response.model.d.ts +0 -7
- package/lib/document/models/user-list.model.d.ts +0 -8
- package/lib/document/services/csv-parser.service.d.ts +0 -88
- package/lib/document/services/document-actions.service.d.ts +0 -48
- package/lib/document/services/document-content-type.service.d.ts +0 -85
- package/lib/document/services/document-history-style.service.d.ts +0 -34
- package/lib/document/services/document-history.service.d.ts +0 -42
- package/lib/document/services/document-http.service.d.ts +0 -179
- package/lib/document/services/document-list.service.d.ts +0 -74
- package/lib/document/services/document-menu.service.d.ts +0 -122
- package/lib/document/services/document-scroll.service.d.ts +0 -55
- package/lib/document/services/document-table-builder.service.d.ts +0 -38
- package/lib/document/services/document-upload-business.service.d.ts +0 -107
- package/lib/document/services/document-upload-data.service.d.ts +0 -40
- package/lib/document/services/document-upload-form.service.d.ts +0 -41
- package/lib/document/services/document-upload.service.d.ts +0 -99
- package/lib/document/services/document-viewer.service.d.ts +0 -97
- package/lib/document/services/document-zoom.service.d.ts +0 -81
- package/lib/document/services/document.service.d.ts +0 -161
- package/lib/document/services/eml-parser.service.d.ts +0 -116
- package/lib/document/services/excel-parser.service.d.ts +0 -169
- package/lib/document/services/file-format.service.d.ts +0 -34
- package/lib/document/services/status-calculator.service.d.ts +0 -20
- package/lib/document/services/user-list.service.d.ts +0 -29
- package/lib/document/state/document.query.d.ts +0 -243
- package/lib/document/state/document.state.d.ts +0 -61
- package/lib/document/state/document.store.d.ts +0 -56
|
@@ -1,38 +1,45 @@
|
|
|
1
|
+
import { SHARED } from "../../../Shared/constant/SHARED";
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* The `DocumentAlertModel` is responsible for managing and displaying alert messages for documents.
|
|
3
5
|
* @export
|
|
4
6
|
* @class DocumentAlertModel
|
|
5
7
|
* @typedef {DocumentAlertModel} - Represents the document alert model.
|
|
6
8
|
*/
|
|
7
|
-
export
|
|
9
|
+
export class DocumentAlertModel {
|
|
8
10
|
/**
|
|
9
11
|
* The unique identifier for the document alert.
|
|
10
12
|
* @type {string}
|
|
11
13
|
*/
|
|
12
|
-
_id: string
|
|
14
|
+
_id : string = SHARED.EMPTY
|
|
15
|
+
|
|
13
16
|
/**
|
|
14
17
|
* The alert status for the document.
|
|
15
18
|
* @type {string}
|
|
16
19
|
*/
|
|
17
20
|
alertStatus?: string;
|
|
21
|
+
|
|
18
22
|
/**
|
|
19
23
|
* The context ID for the document.
|
|
20
24
|
* @type {?string}
|
|
21
25
|
*/
|
|
22
26
|
contextId?: string;
|
|
27
|
+
|
|
23
28
|
/**
|
|
24
29
|
* The document ID for the document.
|
|
25
30
|
* @type {?string}
|
|
26
31
|
*/
|
|
27
32
|
documentId?: string;
|
|
33
|
+
|
|
28
34
|
/**
|
|
29
35
|
* The alert message for the document.
|
|
30
36
|
* @type {?string}
|
|
31
37
|
*/
|
|
32
|
-
alertMessage?:
|
|
38
|
+
alertMessage?:string;
|
|
39
|
+
|
|
33
40
|
/**
|
|
34
41
|
* The alert type for the document.
|
|
35
42
|
* @type {?string}
|
|
36
43
|
*/
|
|
37
44
|
status?: string;
|
|
38
|
-
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface DocumentCategoryStatus {
|
|
2
|
+
// Uppercase keys (original format)
|
|
3
|
+
Pending?: number;
|
|
4
|
+
Reviewing?: number;
|
|
5
|
+
Accepted?: number;
|
|
6
|
+
Rejected?: number;
|
|
7
|
+
|
|
8
|
+
// Lowercase keys (new format from API)
|
|
9
|
+
pending?: number;
|
|
10
|
+
reviewing?: number;
|
|
11
|
+
approved?: number; // Maps to Accepted
|
|
12
|
+
rejected?: number;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface DocumentCategoryItem {
|
|
16
|
+
_id: string;
|
|
17
|
+
label: string;
|
|
18
|
+
icon: string;
|
|
19
|
+
status: DocumentCategoryStatus;
|
|
20
|
+
isSelectable?: boolean; // Indicates if the menu item can be selected based on filtered sections
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface DocumentCategory {
|
|
24
|
+
label: string;
|
|
25
|
+
items: DocumentCategoryItem[];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface DocumentCategoriesResponse {
|
|
29
|
+
categories: DocumentCategory[];
|
|
30
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a document in the history item.
|
|
3
|
+
*/
|
|
4
|
+
export interface HistoryDocument {
|
|
5
|
+
/**
|
|
6
|
+
* Unique identifier of the document
|
|
7
|
+
*/
|
|
8
|
+
_id?: string | null;
|
|
9
|
+
/**
|
|
10
|
+
* Name of the document
|
|
11
|
+
*/
|
|
12
|
+
docName: string | null;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* URL of the document
|
|
16
|
+
*/
|
|
17
|
+
documentUrl: string | null;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Content type of the document
|
|
21
|
+
*/
|
|
22
|
+
contentType: string | null;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Parent request/task document id, if applicable
|
|
26
|
+
*/
|
|
27
|
+
parentDocumentId?: string | null;
|
|
28
|
+
|
|
29
|
+
/** Optional alias and flags preserved if backend provides them */
|
|
30
|
+
aliasName?: string | null;
|
|
31
|
+
isAliasEditable?: boolean | null;
|
|
32
|
+
documentTypeName?: string | null;
|
|
33
|
+
isSystemDocument?: boolean | null;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Represents a document history item.
|
|
38
|
+
*/
|
|
39
|
+
export interface DocumentHistoryItem {
|
|
40
|
+
/**
|
|
41
|
+
* The label/action type (e.g., "Document Uploaded", "Document Rejected", "Document Accepted")
|
|
42
|
+
*/
|
|
43
|
+
label: string;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* The date and time of the action
|
|
47
|
+
*/
|
|
48
|
+
dateTime: string;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Description or comment for the action
|
|
52
|
+
*/
|
|
53
|
+
requestDescription: string;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* URL of the document (optional) - legacy field
|
|
57
|
+
*/
|
|
58
|
+
documentUrl?: string;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Name of the document (optional) - legacy field
|
|
62
|
+
*/
|
|
63
|
+
docName?: string;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Array of documents associated with this history item
|
|
67
|
+
*/
|
|
68
|
+
documents?: HistoryDocument[];
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Name of the user who performed the action
|
|
72
|
+
*/
|
|
73
|
+
userName: string;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Role of the user who performed the action
|
|
77
|
+
*/
|
|
78
|
+
userRole: string;
|
|
79
|
+
actionColor:string
|
|
80
|
+
actionIcon:string
|
|
81
|
+
actionIconBgColor:string
|
|
82
|
+
actionBgColor:string
|
|
83
|
+
actionBorderColor:string
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Represents a document history section with header and list of items.
|
|
88
|
+
*/
|
|
89
|
+
export interface DocumentHistorySection {
|
|
90
|
+
/**
|
|
91
|
+
* The header/title of the section (e.g., "Initial Request", "Document History")
|
|
92
|
+
*/
|
|
93
|
+
header: string;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* List of history items in this section
|
|
97
|
+
*/
|
|
98
|
+
list: DocumentHistoryItem[];
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Represents the complete document history response.
|
|
103
|
+
*/
|
|
104
|
+
export interface DocumentHistoryResponse {
|
|
105
|
+
/**
|
|
106
|
+
* Array of document history sections
|
|
107
|
+
*/
|
|
108
|
+
sections: DocumentHistorySection[];
|
|
109
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { DocumentModel } from './document.model';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents a document list item within a category
|
|
5
|
+
*/
|
|
6
|
+
export interface DocumentListItem {
|
|
7
|
+
_id: string;
|
|
8
|
+
fileName: string;
|
|
9
|
+
docName: string;
|
|
10
|
+
fileSize: string;
|
|
11
|
+
documentUrl: string;
|
|
12
|
+
status: string;
|
|
13
|
+
isUploaded: boolean;
|
|
14
|
+
statusId?: string;
|
|
15
|
+
uploadedOn: string;
|
|
16
|
+
ownerName: string;
|
|
17
|
+
contentType: string;
|
|
18
|
+
aliasName?: string;
|
|
19
|
+
documentType?: string;
|
|
20
|
+
documentTypeName?: string;
|
|
21
|
+
isAliasEditable?: boolean;
|
|
22
|
+
parentDocumentId ?: string;
|
|
23
|
+
isSystemDocument?: boolean;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Represents the complete document list response
|
|
29
|
+
*/
|
|
30
|
+
export interface DocumentListResponse {
|
|
31
|
+
label: string;
|
|
32
|
+
categoryDescription: string;
|
|
33
|
+
totalDocs: number;
|
|
34
|
+
acceptedDocs: number;
|
|
35
|
+
list: DocumentListItem[];
|
|
36
|
+
completed: string;
|
|
37
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* DocumentTypeModel
|
|
4
|
+
* @interface DocumentTypeModel Model for document types.
|
|
5
|
+
* @typedef {DocumentTypeModel} Model for document types.
|
|
6
|
+
*/
|
|
7
|
+
export interface DocumentTypeModel {
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* The label for the document type.
|
|
11
|
+
* @type {string}
|
|
12
|
+
* @memberof DocumentTypeModel
|
|
13
|
+
*/
|
|
14
|
+
label?: string,
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The match rules for the document type.
|
|
18
|
+
* @type {string}
|
|
19
|
+
* @memberof DocumentTypeModel
|
|
20
|
+
*/
|
|
21
|
+
matchRules?: string,
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The name of the document type.
|
|
25
|
+
* @type {string}
|
|
26
|
+
* @memberof DocumentTypeModel
|
|
27
|
+
*/
|
|
28
|
+
name?: string,
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* The parent document type ID.
|
|
33
|
+
* @type {string}
|
|
34
|
+
* @memberof DocumentTypeModel
|
|
35
|
+
*/
|
|
36
|
+
parentDocumentTypeId?: string,
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* The document type ID.
|
|
40
|
+
* @type {string}
|
|
41
|
+
* @memberof DocumentTypeModel
|
|
42
|
+
*/
|
|
43
|
+
_id: string
|
|
44
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { SHARED } from "../../../Shared/constant/SHARED";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents a document model.
|
|
5
|
+
*
|
|
6
|
+
* This class contains the structure for document-related data, including file name,
|
|
7
|
+
* status, and document URL.
|
|
8
|
+
*/
|
|
9
|
+
export class DocumentModel {
|
|
10
|
+
/**
|
|
11
|
+
* The unique identifier for the document.
|
|
12
|
+
* @type {string}
|
|
13
|
+
*/
|
|
14
|
+
_id: string = SHARED.EMPTY;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The name of the document file.
|
|
18
|
+
* @type {?string}
|
|
19
|
+
*/
|
|
20
|
+
fileName?: string;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* The current status of the document.
|
|
24
|
+
* @type {?string}
|
|
25
|
+
*/
|
|
26
|
+
status?: string;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The URL where the document is hosted or stored.
|
|
30
|
+
* @type {?string}
|
|
31
|
+
*/
|
|
32
|
+
documentUrl?: string;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Date of document get uploaded
|
|
36
|
+
* @type {?Date}
|
|
37
|
+
*/
|
|
38
|
+
createdAt?: Date
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Shows the type of document
|
|
42
|
+
* @type {?string}
|
|
43
|
+
*/
|
|
44
|
+
documentTypeName?:string;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Shows the type of content
|
|
48
|
+
* @type {?string}
|
|
49
|
+
*/
|
|
50
|
+
contentType?: string;
|
|
51
|
+
|
|
52
|
+
documentName?: string;
|
|
53
|
+
}
|
|
@@ -1,27 +1,33 @@
|
|
|
1
|
+
import { SHARED } from "../../../Shared/constant/SHARED";
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Represents the model for a folder block.
|
|
3
|
-
*
|
|
4
|
-
* This class provides the structure for folder block data, including properties
|
|
5
|
+
*
|
|
6
|
+
* This class provides the structure for folder block data, including properties
|
|
5
7
|
* for ID, file counts, descriptive text, and counts for missing and pending files.
|
|
6
8
|
*/
|
|
7
|
-
export
|
|
9
|
+
export class FolderBlockModel {
|
|
8
10
|
/**
|
|
9
11
|
* Unique identifier for the folder block.
|
|
10
12
|
* Defaults to an empty string sourced from `SHARED.EMPTY`.
|
|
11
13
|
*/
|
|
12
|
-
_id: string;
|
|
14
|
+
_id: string = SHARED.EMPTY;
|
|
15
|
+
|
|
13
16
|
/**
|
|
14
17
|
* Total number of document within the folder block.
|
|
15
18
|
*/
|
|
16
19
|
documentCount?: number;
|
|
20
|
+
|
|
17
21
|
/**
|
|
18
22
|
* Descriptive text associated with the folder block.
|
|
19
23
|
*/
|
|
20
24
|
folderName?: string;
|
|
25
|
+
|
|
21
26
|
/**
|
|
22
27
|
* Number of files marked as missing in the folder block.
|
|
23
28
|
*/
|
|
24
29
|
missingFiles?: number;
|
|
30
|
+
|
|
25
31
|
/**
|
|
26
32
|
* Number of files marked as pending in the folder block.
|
|
27
33
|
*/
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model representing status data for documents.
|
|
3
|
+
* @interface StatusDataModel
|
|
4
|
+
*/
|
|
5
|
+
export interface StatusDataModel {
|
|
6
|
+
/**
|
|
7
|
+
* The status name (e.g., 'Approved', 'Pending', 'Rejected')
|
|
8
|
+
* @type {string}
|
|
9
|
+
*/
|
|
10
|
+
status: string;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The count of documents with this status
|
|
14
|
+
* @type {number}
|
|
15
|
+
*/
|
|
16
|
+
count: number;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The color associated with this status for UI display
|
|
20
|
+
* @type {string}
|
|
21
|
+
*/
|
|
22
|
+
color?: string;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The icon class associated with this status
|
|
26
|
+
* @type {string}
|
|
27
|
+
*/
|
|
28
|
+
icon?: string;
|
|
29
|
+
|
|
30
|
+
_id ?: string
|
|
31
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { TestBed } from '@angular/core/testing';
|
|
2
|
+
import { CsvParserService, ParsedCsvData } from './csv-parser.service';
|
|
3
|
+
|
|
4
|
+
describe('CsvParserService', () => {
|
|
5
|
+
let service: CsvParserService;
|
|
6
|
+
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
TestBed.configureTestingModule({});
|
|
9
|
+
service = TestBed.inject(CsvParserService);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it('should be created', () => {
|
|
13
|
+
expect(service).toBeTruthy();
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it('should parse simple CSV data correctly', () => {
|
|
17
|
+
const csvContent = 'Name,Age,City\nJohn,25,New York\nJane,30,Los Angeles';
|
|
18
|
+
const result = service.parseCsvData(csvContent);
|
|
19
|
+
|
|
20
|
+
expect(result.headers).toEqual(['Name', 'Age', 'City']);
|
|
21
|
+
expect(result.rows).toEqual([
|
|
22
|
+
['John', '25', 'New York'],
|
|
23
|
+
['Jane', '30', 'Los Angeles']
|
|
24
|
+
]);
|
|
25
|
+
expect(result.totalRows).toBe(2);
|
|
26
|
+
expect(result.totalColumns).toBe(3);
|
|
27
|
+
expect(result.hasHeaders).toBe(true);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it('should handle CSV without headers', () => {
|
|
31
|
+
const csvContent = 'John,25,New York\nJane,30,Los Angeles';
|
|
32
|
+
const result = service.parseCsvData(csvContent, { hasHeaders: false });
|
|
33
|
+
|
|
34
|
+
expect(result.headers).toEqual(['Column 1', 'Column 2', 'Column 3']);
|
|
35
|
+
expect(result.rows).toEqual([
|
|
36
|
+
['John', '25', 'New York'],
|
|
37
|
+
['Jane', '30', 'Los Angeles']
|
|
38
|
+
]);
|
|
39
|
+
expect(result.hasHeaders).toBe(false);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('should handle quoted fields with commas', () => {
|
|
43
|
+
const csvContent = 'Name,Description,Value\nJohn,"Smith, Jr.",25\nJane,"Doe, Sr.",30';
|
|
44
|
+
const result = service.parseCsvData(csvContent);
|
|
45
|
+
|
|
46
|
+
expect(result.headers).toEqual(['Name', 'Description', 'Value']);
|
|
47
|
+
expect(result.rows).toEqual([
|
|
48
|
+
['John', 'Smith, Jr.', '25'],
|
|
49
|
+
['Jane', 'Doe, Sr.', '30']
|
|
50
|
+
]);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it('should handle empty CSV content', () => {
|
|
54
|
+
const result = service.parseCsvData('');
|
|
55
|
+
|
|
56
|
+
expect(result.headers).toEqual([]);
|
|
57
|
+
expect(result.rows).toEqual([]);
|
|
58
|
+
expect(result.totalRows).toBe(0);
|
|
59
|
+
expect(result.totalColumns).toBe(0);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it('should validate CSV content correctly', () => {
|
|
63
|
+
const validCsv = 'Name,Age\nJohn,25\nJane,30';
|
|
64
|
+
const invalidCsv = 'Name,Age\nJohn,25\nJane,30,Extra';
|
|
65
|
+
|
|
66
|
+
const validResult = service.validateCsvContent(validCsv);
|
|
67
|
+
const invalidResult = service.validateCsvContent(invalidCsv);
|
|
68
|
+
|
|
69
|
+
expect(validResult.isValid).toBe(true);
|
|
70
|
+
expect(validResult.errors).toEqual([]);
|
|
71
|
+
|
|
72
|
+
expect(invalidResult.isValid).toBe(false);
|
|
73
|
+
expect(invalidResult.errors.length).toBeGreaterThan(0);
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it('should export data to CSV format', () => {
|
|
77
|
+
const data = [['John', '25'], ['Jane', '30']];
|
|
78
|
+
const headers = ['Name', 'Age'];
|
|
79
|
+
|
|
80
|
+
const csvOutput = service.exportToCsv(data, headers);
|
|
81
|
+
const expected = 'Name,Age\nJohn,25\nJane,30';
|
|
82
|
+
|
|
83
|
+
expect(csvOutput).toBe(expected);
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it('should get CSV preview with limited rows', () => {
|
|
87
|
+
const csvContent = 'Name,Age,City\nJohn,25,NY\nJane,30,LA\nBob,35,CHI\nAlice,28,SF';
|
|
88
|
+
const preview = service.getCsvPreview(csvContent, 2);
|
|
89
|
+
|
|
90
|
+
expect(preview.totalRows).toBe(2);
|
|
91
|
+
expect(preview.headers).toEqual(['Name', 'Age', 'City']);
|
|
92
|
+
expect(preview.rows).toEqual([
|
|
93
|
+
['John', '25', 'NY'],
|
|
94
|
+
['Jane', '30', 'LA']
|
|
95
|
+
]);
|
|
96
|
+
});
|
|
97
|
+
});
|