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.
Files changed (210) hide show
  1. package/ng-package.json +10 -0
  2. package/package.json +5 -11
  3. package/src/Shared/components/confirmation-dialog/confirmation-dialog.component.html +3 -0
  4. package/src/Shared/components/confirmation-dialog/confirmation-dialog.component.scss +13 -0
  5. package/src/Shared/components/confirmation-dialog/confirmation-dialog.component.spec.ts +70 -0
  6. package/src/Shared/components/confirmation-dialog/confirmation-dialog.component.ts +133 -0
  7. package/src/Shared/components/table-primary/table-primary.component.html +66 -0
  8. package/src/Shared/components/table-primary/table-primary.component.scss +227 -0
  9. package/src/Shared/components/table-primary/table-primary.component.spec.ts +23 -0
  10. package/src/Shared/components/table-primary/table-primary.component.ts +143 -0
  11. package/src/Shared/components/table-primary/table-primary.model.ts +21 -0
  12. package/src/Shared/constant/ERROR.ts +55 -0
  13. package/src/Shared/constant/PERMISSIONS.ts +17 -0
  14. package/src/Shared/constant/SHARED.ts +936 -0
  15. package/{Shared/constant/URLS.d.ts → src/Shared/constant/URLS.ts} +31 -25
  16. package/src/Shared/services/app-config.service.spec.ts +19 -0
  17. package/src/Shared/services/app-config.service.ts +73 -0
  18. package/{Shared/services/global-error.handler.d.ts → src/Shared/services/global-error.handler.ts} +11 -9
  19. package/src/Shared/services/session.service.spec.ts +16 -0
  20. package/src/Shared/services/session.service.ts +76 -0
  21. package/src/Shared/shared.module.ts +25 -0
  22. package/src/lib/document/components/csv-viewer/csv-viewer.component.ts +1 -0
  23. package/src/lib/document/components/document-actions/document-actions.component.html +59 -0
  24. package/src/lib/document/components/document-actions/document-actions.component.scss +362 -0
  25. package/src/lib/document/components/document-actions/document-actions.component.spec.ts +297 -0
  26. package/src/lib/document/components/document-actions/document-actions.component.ts +163 -0
  27. package/src/lib/document/components/document-container/document-container.component.html +36 -0
  28. package/src/lib/document/components/document-container/document-container.component.scss +144 -0
  29. package/src/lib/document/components/document-container/document-container.component.spec.ts +110 -0
  30. package/src/lib/document/components/document-container/document-container.component.ts +363 -0
  31. package/src/lib/document/components/document-content-viewer/document-content-viewer.component.html +332 -0
  32. package/src/lib/document/components/document-content-viewer/document-content-viewer.component.scss +1877 -0
  33. package/src/lib/document/components/document-content-viewer/document-content-viewer.component.spec.ts +258 -0
  34. package/src/lib/document/components/document-content-viewer/document-content-viewer.component.ts +664 -0
  35. package/src/lib/document/components/document-history/document-history.component.html +96 -0
  36. package/src/lib/document/components/document-history/document-history.component.scss +392 -0
  37. package/src/lib/document/components/document-history/document-history.component.spec.ts +93 -0
  38. package/src/lib/document/components/document-history/document-history.component.ts +373 -0
  39. package/src/lib/document/components/document-list/document-list.component.html +46 -0
  40. package/src/lib/document/components/document-list/document-list.component.scss +513 -0
  41. package/src/lib/document/components/document-list/document-list.component.spec.ts +486 -0
  42. package/src/lib/document/components/document-list/document-list.component.ts +682 -0
  43. package/src/lib/document/components/document-list-item/document-list-item.component.html +36 -0
  44. package/src/lib/document/components/document-list-item/document-list-item.component.scss +34 -0
  45. package/src/lib/document/components/document-list-item/document-list-item.component.spec.ts +75 -0
  46. package/src/lib/document/components/document-list-item/document-list-item.component.ts +40 -0
  47. package/src/lib/document/components/document-search/document-search.component.html +64 -0
  48. package/src/lib/document/components/document-search/document-search.component.scss +206 -0
  49. package/src/lib/document/components/document-search/document-search.component.spec.ts +82 -0
  50. package/src/lib/document/components/document-search/document-search.component.ts +163 -0
  51. package/src/lib/document/components/document-status/document-status.component.html +31 -0
  52. package/src/lib/document/components/document-status/document-status.component.scss +192 -0
  53. package/src/lib/document/components/document-status/document-status.component.spec.ts +23 -0
  54. package/src/lib/document/components/document-status/document-status.component.ts +87 -0
  55. package/src/lib/document/components/document-upload/document-upload.component.html +160 -0
  56. package/src/lib/document/components/document-upload/document-upload.component.scss +235 -0
  57. package/src/lib/document/components/document-upload/document-upload.component.spec.ts +95 -0
  58. package/src/lib/document/components/document-upload/document-upload.component.ts +668 -0
  59. package/src/lib/document/components/document-viewer/document-viewer.component.html +50 -0
  60. package/src/lib/document/components/document-viewer/document-viewer.component.scss +187 -0
  61. package/src/lib/document/components/document-viewer/document-viewer.component.spec.ts +79 -0
  62. package/src/lib/document/components/document-viewer/document-viewer.component.ts +261 -0
  63. package/src/lib/document/components/document-zoom-controls/document-zoom-controls.component.html +48 -0
  64. package/src/lib/document/components/document-zoom-controls/document-zoom-controls.component.scss +320 -0
  65. package/src/lib/document/components/document-zoom-controls/document-zoom-controls.component.spec.ts +59 -0
  66. package/src/lib/document/components/document-zoom-controls/document-zoom-controls.component.ts +150 -0
  67. package/src/lib/document/components/documents-menu/documents-menu.component.html +44 -0
  68. package/src/lib/document/components/documents-menu/documents-menu.component.scss +363 -0
  69. package/src/lib/document/components/documents-menu/documents-menu.component.spec.ts +23 -0
  70. package/src/lib/document/components/documents-menu/documents-menu.component.ts +316 -0
  71. package/src/lib/document/components/folder-block/folder-block.component.html +46 -0
  72. package/src/lib/document/components/folder-block/folder-block.component.scss +9 -0
  73. package/src/lib/document/components/folder-block/folder-block.component.spec.ts +70 -0
  74. package/{lib/document/components/folder-block/folder-block.component.d.ts → src/lib/document/components/folder-block/folder-block.component.ts} +28 -12
  75. package/src/lib/document/components/folder-container/folder-container.component.html +56 -0
  76. package/src/lib/document/components/folder-container/folder-container.component.scss +20 -0
  77. package/src/lib/document/components/folder-container/folder-container.component.spec.ts +27 -0
  78. package/src/lib/document/components/folder-container/folder-container.component.ts +328 -0
  79. package/src/lib/document/components/linked-document/linked-document.component.html +23 -0
  80. package/src/lib/document/components/linked-document/linked-document.component.scss +10 -0
  81. package/src/lib/document/components/linked-document/linked-document.component.spec.ts +61 -0
  82. package/src/lib/document/components/linked-document/linked-document.component.ts +49 -0
  83. package/src/lib/document/components/request-document/request-document.component.html +86 -0
  84. package/src/lib/document/components/request-document/request-document.component.scss +16 -0
  85. package/src/lib/document/components/request-document/request-document.component.ts +278 -0
  86. package/src/lib/document/components/sidebar/sidebar.component.html +75 -0
  87. package/src/lib/document/components/sidebar/sidebar.component.scss +157 -0
  88. package/src/lib/document/components/sidebar/sidebar.component.spec.ts +114 -0
  89. package/src/lib/document/components/sidebar/sidebar.component.ts +223 -0
  90. package/src/lib/document/components/user-list/user-list.component.html +33 -0
  91. package/src/lib/document/components/user-list/user-list.component.scss +118 -0
  92. package/src/lib/document/components/user-list/user-list.component.spec.ts +23 -0
  93. package/src/lib/document/components/user-list/user-list.component.ts +181 -0
  94. package/src/lib/document/constant/DOCUMENT_HISTORY.ts +52 -0
  95. package/src/lib/document/directives/document.directive.ts +32 -0
  96. package/src/lib/document/directives/permission.directive.spec.ts +0 -0
  97. package/src/lib/document/directives/permission.directive.ts +72 -0
  98. package/src/lib/document/document.module.ts +351 -0
  99. package/{lib/document/models/document-alert.model.d.ts → src/lib/document/models/document-alert.model.ts} +11 -4
  100. package/src/lib/document/models/document-category.model.ts +30 -0
  101. package/src/lib/document/models/document-history.model.ts +109 -0
  102. package/src/lib/document/models/document-list-response.model.ts +37 -0
  103. package/src/lib/document/models/document-type.model.ts +44 -0
  104. package/src/lib/document/models/document.model.ts +53 -0
  105. package/{lib/document/models/folder.model.d.ts → src/lib/document/models/folder.model.ts} +10 -4
  106. package/src/lib/document/models/status-data.model.ts +31 -0
  107. package/src/lib/document/models/uploaded-file-response.model.ts +7 -0
  108. package/src/lib/document/models/user-list.model.ts +10 -0
  109. package/src/lib/document/services/csv-parser.service.spec.ts +97 -0
  110. package/src/lib/document/services/csv-parser.service.ts +303 -0
  111. package/src/lib/document/services/document-actions.service.ts +125 -0
  112. package/src/lib/document/services/document-content-type.service.ts +193 -0
  113. package/src/lib/document/services/document-history-style.service.ts +138 -0
  114. package/src/lib/document/services/document-history.service.ts +129 -0
  115. package/src/lib/document/services/document-http.service.spec.ts +119 -0
  116. package/src/lib/document/services/document-http.service.ts +497 -0
  117. package/src/lib/document/services/document-list.service.ts +195 -0
  118. package/src/lib/document/services/document-menu.service.ts +277 -0
  119. package/src/lib/document/services/document-scroll.service.ts +138 -0
  120. package/src/lib/document/services/document-severity.service.ts +98 -0
  121. package/src/lib/document/services/document-table-builder.service.ts +82 -0
  122. package/src/lib/document/services/document-upload-business.service.ts +326 -0
  123. package/src/lib/document/services/document-upload-data.service.ts +82 -0
  124. package/src/lib/document/services/document-upload-form.service.ts +149 -0
  125. package/src/lib/document/services/document-upload.service.spec.ts +99 -0
  126. package/src/lib/document/services/document-upload.service.ts +209 -0
  127. package/src/lib/document/services/document-viewer.service.ts +279 -0
  128. package/src/lib/document/services/document-zoom.service.spec.ts +56 -0
  129. package/src/lib/document/services/document-zoom.service.ts +164 -0
  130. package/src/lib/document/services/document.service.ts +356 -0
  131. package/src/lib/document/services/eml-parser.service.ts +444 -0
  132. package/src/lib/document/services/excel-parser.service.spec.ts +66 -0
  133. package/src/lib/document/services/excel-parser.service.ts +483 -0
  134. package/src/lib/document/services/file-format.service.spec.ts +16 -0
  135. package/src/lib/document/services/file-format.service.ts +63 -0
  136. package/src/lib/document/services/status-calculator.service.ts +44 -0
  137. package/src/lib/document/services/user-list.service.ts +77 -0
  138. package/src/lib/document/state/document.query.ts +378 -0
  139. package/{lib/document/state/document.service.d.ts → src/lib/document/state/document.service.ts} +46 -15
  140. package/src/lib/document/state/document.state.ts +100 -0
  141. package/src/lib/document/state/document.store.ts +200 -0
  142. package/{public-api.d.ts → src/public-api.ts} +4 -0
  143. package/tsconfig.lib.json +15 -0
  144. package/tsconfig.lib.prod.json +11 -0
  145. package/tsconfig.spec.json +15 -0
  146. package/Shared/components/confirmation-dialog/confirmation-dialog.component.d.ts +0 -44
  147. package/Shared/components/table-primary/table-primary.component.d.ts +0 -31
  148. package/Shared/components/table-primary/table-primary.model.d.ts +0 -19
  149. package/Shared/constant/ERROR.d.ts +0 -52
  150. package/Shared/constant/SHARED.d.ts +0 -546
  151. package/Shared/services/app-config.service.d.ts +0 -51
  152. package/Shared/services/session.service.d.ts +0 -46
  153. package/Shared/shared.module.d.ts +0 -14
  154. package/fesm2022/cat-documents-ng.mjs +0 -11392
  155. package/fesm2022/cat-documents-ng.mjs.map +0 -1
  156. package/index.d.ts +0 -5
  157. package/lib/document/components/document-actions/document-actions.component.d.ts +0 -78
  158. package/lib/document/components/document-container/document-container.component.d.ts +0 -162
  159. package/lib/document/components/document-content-viewer/document-content-viewer.component.d.ts +0 -291
  160. package/lib/document/components/document-history/document-history.component.d.ts +0 -160
  161. package/lib/document/components/document-list/document-list.component.d.ts +0 -299
  162. package/lib/document/components/document-list-item/document-list-item.component.d.ts +0 -28
  163. package/lib/document/components/document-search/document-search.component.d.ts +0 -77
  164. package/lib/document/components/document-status/document-status.component.d.ts +0 -24
  165. package/lib/document/components/document-upload/document-upload.component.d.ts +0 -321
  166. package/lib/document/components/document-viewer/document-viewer.component.d.ts +0 -137
  167. package/lib/document/components/document-zoom-controls/document-zoom-controls.component.d.ts +0 -33
  168. package/lib/document/components/documents-menu/documents-menu.component.d.ts +0 -110
  169. package/lib/document/components/folder-container/folder-container.component.d.ts +0 -162
  170. package/lib/document/components/linked-document/linked-document.component.d.ts +0 -39
  171. package/lib/document/components/request-document/request-document.component.d.ts +0 -69
  172. package/lib/document/components/sidebar/sidebar.component.d.ts +0 -109
  173. package/lib/document/components/user-list/user-list.component.d.ts +0 -34
  174. package/lib/document/constant/DOCUMENT_HISTORY.d.ts +0 -41
  175. package/lib/document/directives/document.directive.d.ts +0 -20
  176. package/lib/document/directives/permission.directive.d.ts +0 -38
  177. package/lib/document/document.module.d.ts +0 -60
  178. package/lib/document/models/document-category.model.d.ts +0 -24
  179. package/lib/document/models/document-history.model.d.ts +0 -94
  180. package/lib/document/models/document-list-response.model.d.ts +0 -33
  181. package/lib/document/models/document-type.model.d.ts +0 -37
  182. package/lib/document/models/document.model.d.ts +0 -44
  183. package/lib/document/models/status-data.model.d.ts +0 -27
  184. package/lib/document/models/uploaded-file-response.model.d.ts +0 -7
  185. package/lib/document/models/user-list.model.d.ts +0 -8
  186. package/lib/document/services/csv-parser.service.d.ts +0 -88
  187. package/lib/document/services/document-actions.service.d.ts +0 -48
  188. package/lib/document/services/document-content-type.service.d.ts +0 -85
  189. package/lib/document/services/document-history-style.service.d.ts +0 -34
  190. package/lib/document/services/document-history.service.d.ts +0 -42
  191. package/lib/document/services/document-http.service.d.ts +0 -179
  192. package/lib/document/services/document-list.service.d.ts +0 -74
  193. package/lib/document/services/document-menu.service.d.ts +0 -122
  194. package/lib/document/services/document-scroll.service.d.ts +0 -55
  195. package/lib/document/services/document-table-builder.service.d.ts +0 -38
  196. package/lib/document/services/document-upload-business.service.d.ts +0 -107
  197. package/lib/document/services/document-upload-data.service.d.ts +0 -40
  198. package/lib/document/services/document-upload-form.service.d.ts +0 -41
  199. package/lib/document/services/document-upload.service.d.ts +0 -99
  200. package/lib/document/services/document-viewer.service.d.ts +0 -97
  201. package/lib/document/services/document-zoom.service.d.ts +0 -81
  202. package/lib/document/services/document.service.d.ts +0 -161
  203. package/lib/document/services/eml-parser.service.d.ts +0 -116
  204. package/lib/document/services/excel-parser.service.d.ts +0 -169
  205. package/lib/document/services/file-format.service.d.ts +0 -34
  206. package/lib/document/services/status-calculator.service.d.ts +0 -20
  207. package/lib/document/services/user-list.service.d.ts +0 -29
  208. package/lib/document/state/document.query.d.ts +0 -243
  209. package/lib/document/state/document.state.d.ts +0 -61
  210. 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 declare class DocumentAlertModel {
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?: string;
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 declare class FolderBlockModel {
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,7 @@
1
+ export interface UploadedFileResponse {
2
+ id?: string;
3
+ fileName: string;
4
+ contentType: string;
5
+ url: string;
6
+ size: string;
7
+ }
@@ -0,0 +1,10 @@
1
+ import { SHARED } from "../../../Shared/constant/SHARED";
2
+
3
+ export class UserListModel {
4
+ _id: string = SHARED.EMPTY
5
+ name: string = SHARED.EMPTY
6
+ approved: number = 0
7
+ pending: number = 0
8
+ initials?: string
9
+ color?: string
10
+ }
@@ -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
+ });