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
@@ -0,0 +1,373 @@
1
+ import { Component, Input, Output, EventEmitter, HostListener, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { DocumentHistorySection, HistoryDocument } from '../../models/document-history.model';
3
+ import { SHARED } from '../../../../Shared/constant/SHARED';
4
+ import { DocumentHistoryService } from '../../services/document-history.service';
5
+ import { DocumentViewerService } from '../../services/document-viewer.service';
6
+ import { DocumentActionsService } from '../../services/document-actions.service';
7
+ import { ConfirmationService } from 'primeng/api';
8
+ import { ConfirmationDialogComponent } from '../../../../Shared/components/confirmation-dialog/confirmation-dialog.component';
9
+ import { DocumentHttpService } from '../../services/document-http.service';
10
+
11
+ // Extended interface for processed items with computed properties
12
+ interface ProcessedDocumentHistoryItem {
13
+ label: string;
14
+ dateTime: string;
15
+ requestDescription: string;
16
+ userName: string;
17
+ userRole: string;
18
+ documentUrl?: string;
19
+ docName?: string;
20
+ actionIcon: string;
21
+ actionColor: string;
22
+ actionBgColor: string;
23
+ actionBorderColor: string;
24
+ actionIconBgColor: string;
25
+ }
26
+
27
+ interface ProcessedDocumentHistorySection extends DocumentHistorySection {
28
+ list: ProcessedDocumentHistoryItem[];
29
+ accordionClass?: string;
30
+ hasValidContent?: boolean;
31
+ }
32
+
33
+ /**
34
+ * Component for displaying document history in a timeline format.
35
+ */
36
+ @Component({
37
+ selector: 'document-history',
38
+ standalone: false,
39
+ templateUrl: './document-history.component.html',
40
+ styleUrls: ['./document-history.component.scss']
41
+ })
42
+ export class DocumentHistoryComponent implements OnChanges {
43
+
44
+ /**
45
+ * Input data for document history sections
46
+ */
47
+ @Input() historyData: DocumentHistorySection[] = SHARED.EMPTY_ARRAY;
48
+
49
+ /**
50
+ * Whether to show the history component
51
+ */
52
+ @Input() showHistory: boolean = false;
53
+
54
+ /**
55
+ * The context ID for API calls
56
+ */
57
+ @Input() contextId?: string;
58
+
59
+ /**
60
+ * The selected document for actions
61
+ */
62
+ @Input() selectedDocument?: any;
63
+
64
+
65
+
66
+ /**
67
+ * Event emitted when delete task is requested
68
+ */
69
+ @Output() deleteTaskRequested = new EventEmitter<void>();
70
+
71
+ /**
72
+ * Event emitted when a document from history is selected
73
+ */
74
+ @Output() documentSelected = new EventEmitter<HistoryDocument>();
75
+
76
+ /**
77
+ * Reference to the document actions component
78
+ */
79
+ documentActionsComponent?: any;
80
+
81
+ /**
82
+ * Active accordion index for controlling expand/collapse
83
+ */
84
+ activeAccordionIndex: number = 0;
85
+
86
+ /**
87
+ * Whether the accordion is expanded
88
+ */
89
+ isAccordionExpanded: boolean = true;
90
+
91
+ /**
92
+ * Whether the actions dropdown menu is visible
93
+ */
94
+ showActionsMenu: boolean = false;
95
+
96
+
97
+
98
+ constructor(
99
+ private documentHistoryService: DocumentHistoryService,
100
+ private documentViewerService: DocumentViewerService,
101
+ private documentActionsService: DocumentActionsService,
102
+ private confirmationService: ConfirmationService,
103
+ private documentHttpService: DocumentHttpService
104
+ ) {}
105
+
106
+ /**
107
+ * Handles changes to input properties
108
+ */
109
+ ngOnChanges(changes: SimpleChanges): void {
110
+ if (changes['historyData'] && this.historyData) {
111
+ this.processHistoryData();
112
+ }
113
+ }
114
+
115
+ /**
116
+ * Handle accordion open event
117
+ */
118
+ onAccordionOpen(): void {
119
+ this.isAccordionExpanded = true;
120
+ this.activeAccordionIndex = 0;
121
+ }
122
+
123
+ /**
124
+ * Handle accordion close event
125
+ */
126
+ onAccordionClose(): void {
127
+ this.isAccordionExpanded = false;
128
+ this.activeAccordionIndex = -1;
129
+ }
130
+
131
+ /**
132
+ * Toggle accordion state
133
+ */
134
+ toggleAccordion(): void {
135
+ if (this.isAccordionExpanded) {
136
+ this.onAccordionClose();
137
+ } else {
138
+ this.onAccordionOpen();
139
+ }
140
+ }
141
+
142
+ /**
143
+ * Process history data to add computed properties
144
+ */
145
+ get processedHistoryData(): any[] {
146
+ return this._processedHistoryData;
147
+ }
148
+
149
+ /**
150
+ * Downloads a document when clicked
151
+ * @param documentUrl - The URL of the document to download
152
+ * @param docName - The name of the document
153
+ */
154
+ downloadDocument(documentUrl: string, docName?: string): void {
155
+ this.documentHistoryService.downloadDocument(documentUrl, docName);
156
+ }
157
+
158
+ /**
159
+ * Get alert count for the alerts section
160
+ */
161
+ getAlertCount(): number {
162
+ // This could be enhanced to get actual alert count from a service
163
+ return 3; // Placeholder value matching the image
164
+ }
165
+
166
+ /**
167
+ * Get CSS class for event card based on action type
168
+ */
169
+ getEventCardClass(label: string): string {
170
+ const lowerLabel = label.toLowerCase();
171
+ if (lowerLabel.includes(SHARED.REQUESTED)) {
172
+ return SHARED.EVENT_REQUESTED;
173
+ } else if (lowerLabel.includes(SHARED.ACCEPTED) || lowerLabel.includes(SHARED.UPLOADED)) {
174
+ return SHARED.EVENT_ACCEPTED;
175
+ } else if (lowerLabel.includes(SHARED.REJECTED)) {
176
+ return SHARED.EVENT_REJECTED;
177
+ }
178
+ return SHARED.EVENT_DEFAULT;
179
+ }
180
+
181
+ /**
182
+ * Get CSS class for event icon based on action type
183
+ */
184
+ getEventIconClass(label: string): string {
185
+ const lowerLabel = label.toLowerCase();
186
+ if (lowerLabel.includes(SHARED.REQUESTED)) {
187
+ return SHARED.ICON_REQUESTED;
188
+ } else if (lowerLabel.includes(SHARED.ACCEPTED) || lowerLabel.includes(SHARED.UPLOADED)) {
189
+ return SHARED.ICON_ACCEPTED;
190
+ } else if (lowerLabel.includes(SHARED.REJECTED)) {
191
+ return SHARED.ICON_REJECTED;
192
+ }
193
+ return SHARED.ICON_DEFAULT;
194
+ }
195
+
196
+ /**
197
+ * Get the appropriate icon for the event
198
+ * @param label - The event label
199
+ * @returns {string} The icon class
200
+ */
201
+ getEventIcon(label: string): string {
202
+ const lowerLabel = label.toLowerCase();
203
+ if (lowerLabel.includes(SHARED.UPLOADED)) {
204
+ return SHARED.ICON_CHECK_CIRCLE;
205
+ } else if (lowerLabel.includes(SHARED.REQUESTED)) {
206
+ return SHARED.ICON_FOLDER_PLUS;
207
+ } else if (lowerLabel.includes(SHARED.ACCEPTED) || lowerLabel.includes(SHARED.APPROVED)) {
208
+ return SHARED.ICON_CHECK_CIRCLE;
209
+ } else if (lowerLabel.includes(SHARED.REJECTED)) {
210
+ return SHARED.ICON_TIMES;
211
+ }
212
+ return SHARED.ICON_FILE;
213
+ }
214
+
215
+
216
+
217
+ /**
218
+ * Toggle the actions dropdown menu
219
+ */
220
+ toggleActionsMenu(): void {
221
+ this.showActionsMenu = !this.showActionsMenu;
222
+ }
223
+
224
+ /**
225
+ * Close the actions dropdown menu
226
+ */
227
+ closeActionsMenu(): void {
228
+ this.showActionsMenu = false;
229
+ }
230
+
231
+
232
+
233
+ /**
234
+ * Handle delete task action
235
+ */
236
+ onDeleteTask(): void {
237
+ this.closeActionsMenu();
238
+ if (this.selectedDocument && this.contextId) {
239
+ const documentName = this.selectedDocument?.docName || 'this document';
240
+ const documentId = this.selectedDocument?._id;
241
+ const documentTypeName = this.selectedDocument?.documentTypeName?.toLowerCase() || '';
242
+ // Check if the document is a valuation report
243
+ const isValuationReport = documentTypeName.includes(SHARED.VALUATION_REPORT);
244
+ if (isValuationReport && documentId) { // First check if valuation report data exists in the database
245
+ this.documentHttpService.getValuationReportByContextId(this.contextId).subscribe({
246
+ next: (valuationReportData) => { // Check if valuation report data exists and if the documentId matches
247
+ const hasValuationReportData = valuationReportData && Object.keys(valuationReportData).length > 0;
248
+ const documentIdMatches = valuationReportData?.documentId === documentId;
249
+ if (hasValuationReportData && documentIdMatches) { // Show custom confirmation message for valuation report with matching documentId
250
+ ConfirmationDialogComponent.confirm( this.confirmationService,
251
+ { message: SHARED.VALUATION_REPORT_DELETE_MESSAGE, header: SHARED.DELETE_CONFIRMATION_HEADER,
252
+ acceptLabel: SHARED.DELETE, rejectLabel: SHARED.CANCEL, acceptButtonClass: SHARED.DELETE_BUTTON_STYLE_CLASS },
253
+ () => { this.performDelete(); },
254
+ () => {}
255
+ );
256
+ } else { this.showStandardDeleteConfirmation(documentName); // No valuation report data or documentId doesn't match, show standard delete confirmation
257
+ }
258
+ },
259
+ error: () => { this.showStandardDeleteConfirmation(documentName); // If API fails, show standard delete confirmation
260
+ }
261
+ });
262
+ } else { this.showStandardDeleteConfirmation(documentName); // Show standard delete confirmation for other document types
263
+ }
264
+ }
265
+ }
266
+
267
+ /**
268
+ * Shows standard delete confirmation dialog
269
+ * @private
270
+ */
271
+ private showStandardDeleteConfirmation(documentName: string): void {
272
+ ConfirmationDialogComponent.confirmDelete(
273
+ this.confirmationService,
274
+ documentName,
275
+ () => {
276
+ this.performDelete();
277
+ },
278
+ () => {}
279
+ );
280
+ }
281
+
282
+ /**
283
+ * Performs the actual delete operation
284
+ * @private
285
+ */
286
+ private performDelete(): void {
287
+ // Ensure the viewer service has the latest selected document (with _id from history)
288
+ // eslint-disable-next-line no-console
289
+ try {
290
+ (this.documentViewerService as any).updateSelectedDocument?.(this.selectedDocument, true);
291
+ } catch {}
292
+ const deleteAction = this.documentActionsService.createDeleteAction();
293
+ this.documentViewerService.handleDocumentAction(deleteAction, this.contextId);
294
+ this.deleteTaskRequested.emit();
295
+ }
296
+
297
+ /**
298
+ * Set reference to document actions component
299
+ */
300
+ setDocumentActionsComponent(component: any): void {
301
+ this.documentActionsComponent = component;
302
+ }
303
+
304
+ /**
305
+ * Handles document selection from history
306
+ * @param document - The selected document from history
307
+ */
308
+ onDocumentClick(document: HistoryDocument): void {
309
+ if (document && document.documentUrl && document.docName) {
310
+ this.documentSelected.emit(document);
311
+ }
312
+ }
313
+
314
+ /**
315
+ * Processed history data with document lists
316
+ */
317
+ private _processedHistoryData: any[] = [];
318
+
319
+ /**
320
+ * Processes history data to include document lists for each item
321
+ */
322
+ private processHistoryData(): void {
323
+ this._processedHistoryData = this.historyData.map(section => ({
324
+ ...section,
325
+ list: section.list.map(item => ({
326
+ ...item,
327
+ documentList: this.getValidDocuments(item),
328
+ eventCardClass: this.getEventCardClass(item.label),
329
+ eventIconClass: this.getEventIconClass(item.label),
330
+ eventIcon: this.getEventIcon(item.label),
331
+ shouldHide: this.shouldHideItem(item)
332
+ }))
333
+ }));
334
+ }
335
+
336
+ /**
337
+ * Gets the list of valid documents for a history item
338
+ * @param item - The history item
339
+ * @returns Array of valid documents
340
+ */
341
+ private getValidDocuments(item: any): HistoryDocument[] {
342
+ if (item.documents && Array.isArray(item.documents)) {
343
+ return item.documents.filter((doc: HistoryDocument) =>
344
+ doc && doc.docName && doc.documentUrl && doc.contentType
345
+ );
346
+ }
347
+ return [];
348
+ }
349
+
350
+ /**
351
+ * Determines if a timeline item should be hidden
352
+ * @param item - The history item
353
+ * @returns True if the item should be hidden
354
+ */
355
+ private shouldHideItem(item: any): boolean {
356
+ return this.selectedDocument?.isUploaded &&
357
+ item.label.toLowerCase().includes(SHARED.REQUESTED);
358
+ }
359
+
360
+ /**
361
+ * Listen for clicks outside the dropdown to close it
362
+ */
363
+ @HostListener('document:click', ['$event'])
364
+ onDocumentClickOutside(event: Event): void {
365
+ if (this.showActionsMenu) {
366
+ const target = event.target as HTMLElement;
367
+ const actionsMenu = target.closest('.actions-menu');
368
+ if (!actionsMenu) {
369
+ this.closeActionsMenu();
370
+ }
371
+ }
372
+ }
373
+ }
@@ -0,0 +1,46 @@
1
+ <div class="document-viewer">
2
+ <p-dialog [(visible)]="isdialogVisible" [modal]="true"
3
+ class="w-full h-full document-dailog-wrapper" [draggable]="false" [closable]="true" (onHide)="handleCloseModal()">
4
+ <p-messages [(value)]="deleteMessage" [enableService]="false" [closable]="false" />
5
+
6
+ <document-viewer [selectedDocument]="selectedDocument" [documentList]="documentList" [contextId]="contextId"
7
+ (documentStatusUpdated)="handleDocumentStatusUpdate($event)"
8
+ (viewerDestroyed)="handleViewerDestroyed()"
9
+ (deleteError)="handleDeleteError($event)"
10
+ (deleteSuccess)="handleDeleteSuccess()">
11
+ <ng-template pTemplate="header">
12
+ <div class="w-full flex align-items-center justify-content-between">
13
+ <input type="text" class="w-full border-none bg-white h-3rem file-input-wrapper" pInputText
14
+ [(ngModel)]="fileName" />
15
+
16
+ </div>
17
+ </ng-template>
18
+ <ng-content></ng-content>
19
+ </document-viewer>
20
+ </p-dialog>
21
+ </div>
22
+
23
+ <div class="document-categories-container" #documentCategoriesContainer>
24
+ <div class="category" *ngFor="let category of documentCategories; let i = index"
25
+ [id]="categoryIds[i]">
26
+ <div class="category-header" *ngIf="documentCategories[i]?.list?.length">
27
+ <div class="category-title">
28
+ <h3>{{ formattedCategoryLabels[i] }}</h3>
29
+ <p class="category-description">{{ category.categoryDescription }}</p>
30
+ </div>
31
+ <div class="completion-status">
32
+ <p-badge
33
+ [severity]="categorySeverities[i]"
34
+ [value]="(((categoryCompletionCounts && categoryCompletionCounts[i]) || 0) + ' Complete')"
35
+ class="completion-badge">
36
+ </p-badge>
37
+ </div>
38
+ </div>
39
+
40
+ <div class="table-container">
41
+ <lib-table-primary [tableData]="categoryTables[i]" [tableStyle]="{ 'min-width': '100%' }"
42
+ (rowClick)="handleTableRowClick($event)" (deleteAction)="handleDeleteAction($event)" (rowCtrlClick)="handleTableRowCtrlClick($event)" >
43
+ </lib-table-primary>
44
+ </div>
45
+ </div>
46
+ </div>