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
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { QueryEntity } from '@datorama/akita';
|
|
3
|
+
import { DocumentStore } from './document.store';
|
|
4
|
+
import { DocumentState } from './document.state';
|
|
5
|
+
import { Observable } from 'rxjs';
|
|
6
|
+
import { Message } from 'primeng/api';
|
|
7
|
+
import { DocumentModel } from '../models/document.model';
|
|
8
|
+
import { DocumentCategory } from '../models/document-category.model';
|
|
9
|
+
import { UserListModel } from '../models/user-list.model';
|
|
10
|
+
import { StatusDataModel } from '../models/status-data.model';
|
|
11
|
+
import { DocumentListResponse } from '../models/document-list-response.model';
|
|
12
|
+
import { DocumentListItem } from '../models/document-list-response.model';
|
|
13
|
+
import { DocumentHistorySection } from '../models/document-history.model';
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Query service for managing document state.
|
|
18
|
+
* This class extends Akita's `QueryEntity` to provide additional functionality for querying document data.
|
|
19
|
+
* @class DocumentQuery
|
|
20
|
+
* @typedef {DocumentQuery}
|
|
21
|
+
* @augments {QueryEntity<DocumentState>}
|
|
22
|
+
*/
|
|
23
|
+
@Injectable({ providedIn: 'root' })
|
|
24
|
+
export class DocumentQuery extends QueryEntity<DocumentState> {
|
|
25
|
+
constructor(protected override store: DocumentStore) {
|
|
26
|
+
super(store);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Selects the currently selected folder ID from the document state.
|
|
31
|
+
* @returns {Observable<string | null>} Observable that emits the currently selected folder ID.
|
|
32
|
+
*/
|
|
33
|
+
getParentDocumentTypeId() : string | null {
|
|
34
|
+
return this.getValue()['parentDocumentTypeId'];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Selects the currently selected folder ID from the document state.
|
|
39
|
+
* @returns {Observable<string | null>} Observable that emits the currently selected folder ID.
|
|
40
|
+
*/
|
|
41
|
+
selectParentDocumentTypeId():Observable<string | null> {
|
|
42
|
+
return this.select((state) => state['parentDocumentTypeId']);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Selects the set messages.
|
|
46
|
+
* @returns {Observable<Message>} Observable that emits the current Message.
|
|
47
|
+
*/
|
|
48
|
+
selectMessages():Observable<Message[]> {
|
|
49
|
+
return this.select((state) => state.messages);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Selects the set documents.
|
|
53
|
+
* @returns {Observable<DocumentModel[]>} Observable that emits the documets.
|
|
54
|
+
*/
|
|
55
|
+
selectDocumets():Observable<DocumentModel[]> {
|
|
56
|
+
return this.select((state) => state.documentList);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Selects the document categories.
|
|
61
|
+
* @returns {Observable<DocumentCategory[]>} Observable that emits the document categories.
|
|
62
|
+
*/
|
|
63
|
+
selectDocumentCategories(): Observable<DocumentCategory[]> {
|
|
64
|
+
return this.select((state) => state.documentCategories);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// New query methods for selection state
|
|
68
|
+
/**
|
|
69
|
+
* Selects the currently selected menu item.
|
|
70
|
+
* @returns {Observable<string | null>} Observable that emits the currently selected menu item _id (not the label).
|
|
71
|
+
*/
|
|
72
|
+
selectSelectedMenuItem(): Observable<string | null> {
|
|
73
|
+
return this.select((state) => state.selectedMenuItem);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Selects the currently selected user ID.
|
|
78
|
+
* @returns {Observable<string | null>} Observable that emits the currently selected user ID.
|
|
79
|
+
*/
|
|
80
|
+
selectSelectedUserId(): Observable<string | null> {
|
|
81
|
+
return this.select((state) => state.selectedUserId);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Selects the currently selected status.
|
|
86
|
+
* @returns {Observable<string | null>} Observable that emits the currently selected status.
|
|
87
|
+
*/
|
|
88
|
+
selectSelectedStatus(): Observable<string | null> {
|
|
89
|
+
return this.select((state) => state.selectedStatus);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Selects the current search key.
|
|
94
|
+
* @returns {Observable<string | null>} Observable that emits the current search key.
|
|
95
|
+
*/
|
|
96
|
+
selectSearchKey(): Observable<string | null> {
|
|
97
|
+
return this.select((state) => state.searchKey);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Selects all selection state properties (menu item, user ID, status, search key).
|
|
102
|
+
* @returns {Observable<{menuItem: string | null, userId: string | null, status: string | null, searchKey: string | null}>} Observable that emits the current selection state.
|
|
103
|
+
* Note: menuItem is the _id of the selected menu item, not the label.
|
|
104
|
+
*/
|
|
105
|
+
selectSelectionState(): Observable<{menuItem: string | null, userId: string | null, status: string | null, searchKey: string | null}> {
|
|
106
|
+
return this.select((state) => ({
|
|
107
|
+
menuItem: state.selectedMenuItem,
|
|
108
|
+
userId: state.selectedUserId,
|
|
109
|
+
status: state.selectedStatus,
|
|
110
|
+
searchKey: state.searchKey
|
|
111
|
+
}));
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Gets the current selection state values (synchronous).
|
|
116
|
+
* @returns {Object} The current selection state values.
|
|
117
|
+
* Note: menuItem is the _id of the selected menu item, not the label.
|
|
118
|
+
*/
|
|
119
|
+
getSelectionState(): {menuItem: string | null, userId: string | null, status: string | null, searchKey: string | null} {
|
|
120
|
+
const state = this.getValue();
|
|
121
|
+
return {
|
|
122
|
+
menuItem: state.selectedMenuItem,
|
|
123
|
+
userId: state.selectedUserId,
|
|
124
|
+
status: state.selectedStatus,
|
|
125
|
+
searchKey: state.searchKey
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Selects the user list visibility state.
|
|
131
|
+
* @returns {Observable<boolean>} Observable that emits the current user list visibility.
|
|
132
|
+
*/
|
|
133
|
+
selectShowUserList(): Observable<boolean> {
|
|
134
|
+
return this.select((state) => state.showUserList);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Gets the current user list visibility value (synchronous).
|
|
139
|
+
* @returns {boolean} The current user list visibility.
|
|
140
|
+
*/
|
|
141
|
+
getShowUserList(): boolean {
|
|
142
|
+
return this.getValue().showUserList;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Selects the current document.
|
|
147
|
+
* @returns {Observable<DocumentModel | null>} Observable that emits the current document.
|
|
148
|
+
*/
|
|
149
|
+
selectCurrentDocument(): Observable<DocumentModel | null> {
|
|
150
|
+
return this.select((state) => state.currentDocument);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Gets the current document value (synchronous).
|
|
155
|
+
* @returns {DocumentModel | null} The current document.
|
|
156
|
+
*/
|
|
157
|
+
getCurrentDocument(): DocumentModel | null {
|
|
158
|
+
return this.getValue().currentDocument;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Selects the user list.
|
|
163
|
+
* @returns {Observable<UserListModel[]>} Observable that emits the user list.
|
|
164
|
+
*/
|
|
165
|
+
selectUserList(): Observable<UserListModel[]> {
|
|
166
|
+
return this.select((state) => state.userList);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Gets the current user list value (synchronous).
|
|
171
|
+
* @returns {UserListModel[]} The current user list.
|
|
172
|
+
*/
|
|
173
|
+
getUserList(): UserListModel[] {
|
|
174
|
+
return this.getValue().userList;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Selects the status data.
|
|
179
|
+
* @returns {Observable<StatusDataModel[]>} Observable that emits the status data.
|
|
180
|
+
*/
|
|
181
|
+
selectStatusData(): Observable<StatusDataModel[]> {
|
|
182
|
+
return this.select((state) => state.statusData);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Gets the current status data value (synchronous).
|
|
187
|
+
* @returns {StatusDataModel[]} The current status data.
|
|
188
|
+
*/
|
|
189
|
+
getStatusData(): StatusDataModel[] {
|
|
190
|
+
return this.getValue().statusData;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Selects the document list response.
|
|
195
|
+
* @returns {Observable<DocumentListResponse[] | null>} Observable that emits the document list response.
|
|
196
|
+
*/
|
|
197
|
+
selectDocumentListResponse(): Observable<DocumentListResponse[] | null> {
|
|
198
|
+
return this.select((state) => state.documentListResponse);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Gets the current document list response value (synchronous).
|
|
203
|
+
* @returns {DocumentListResponse[] | null} The current document list response.
|
|
204
|
+
*/
|
|
205
|
+
getDocumentListResponse(): DocumentListResponse[] | null {
|
|
206
|
+
return this.getValue().documentListResponse;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// Document Viewer State Query Methods
|
|
210
|
+
/**
|
|
211
|
+
* Selects the selected document for viewing.
|
|
212
|
+
* @returns {Observable<DocumentListItem | undefined>} Observable that emits the selected document.
|
|
213
|
+
*/
|
|
214
|
+
selectSelectedDocument(): Observable<DocumentListItem | undefined> {
|
|
215
|
+
return this.select((state) => state.selectedDocument);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Gets the current selected document value (synchronous).
|
|
220
|
+
* @returns {DocumentListItem | undefined} The current selected document.
|
|
221
|
+
*/
|
|
222
|
+
getSelectedDocument(): DocumentListItem | undefined {
|
|
223
|
+
return this.getValue().selectedDocument;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Selects the document history.
|
|
228
|
+
* @returns {Observable<DocumentHistorySection[]>} Observable that emits the document history.
|
|
229
|
+
*/
|
|
230
|
+
selectDocumentHistory(): Observable<DocumentHistorySection[]> {
|
|
231
|
+
return this.select((state) => state.documentHistory);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Gets the current document history value (synchronous).
|
|
236
|
+
* @returns {DocumentHistorySection[]} The current document history.
|
|
237
|
+
*/
|
|
238
|
+
getDocumentHistory(): DocumentHistorySection[] {
|
|
239
|
+
return this.getValue().documentHistory;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Selects the document history visibility state.
|
|
244
|
+
* @returns {Observable<boolean>} Observable that emits the current document history visibility.
|
|
245
|
+
*/
|
|
246
|
+
selectShowDocumentHistory(): Observable<boolean> {
|
|
247
|
+
return this.select((state) => state.showDocumentHistory);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Gets the current document history visibility value (synchronous).
|
|
252
|
+
* @returns {boolean} The current document history visibility.
|
|
253
|
+
*/
|
|
254
|
+
getShowDocumentHistory(): boolean {
|
|
255
|
+
return this.getValue().showDocumentHistory;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Selects the action loading state.
|
|
260
|
+
* @returns {Observable<boolean>} Observable that emits the current action loading state.
|
|
261
|
+
*/
|
|
262
|
+
selectIsActionLoading(): Observable<boolean> {
|
|
263
|
+
return this.select((state) => state.isActionLoading);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Gets the current action loading value (synchronous).
|
|
268
|
+
* @returns {boolean} The current action loading state.
|
|
269
|
+
*/
|
|
270
|
+
getIsActionLoading(): boolean {
|
|
271
|
+
return this.getValue().isActionLoading;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Selects the document status.
|
|
276
|
+
* @returns {Observable<'pending' | 'accepted' | 'rejected'>} Observable that emits the current document status.
|
|
277
|
+
*/
|
|
278
|
+
selectDocumentStatus(): Observable<'pending' | 'accepted' | 'rejected'> {
|
|
279
|
+
return this.select((state) => state.documentStatus);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Gets the current document status value (synchronous).
|
|
284
|
+
* @returns {'pending' | 'accepted' | 'rejected'} The current document status.
|
|
285
|
+
*/
|
|
286
|
+
getDocumentStatus(): 'pending' | 'accepted' | 'rejected' {
|
|
287
|
+
return this.getValue().documentStatus;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Selects the document uploaded state.
|
|
292
|
+
* @returns {Observable<boolean>} Observable that emits the current document uploaded state.
|
|
293
|
+
*/
|
|
294
|
+
selectDocumentIsUploaded(): Observable<boolean> {
|
|
295
|
+
return this.select((state) => state.documentIsUploaded);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* Gets the current document uploaded value (synchronous).
|
|
300
|
+
* @returns {boolean} The current document uploaded state.
|
|
301
|
+
*/
|
|
302
|
+
getDocumentIsUploaded(): boolean {
|
|
303
|
+
return this.getValue().documentIsUploaded;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Selects the alert data.
|
|
308
|
+
* @returns {Observable<any>} Observable that emits the current alert data.
|
|
309
|
+
*/
|
|
310
|
+
selectAlertData(): Observable<any> {
|
|
311
|
+
return this.select((state) => state.alertData);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* Gets the current alert data value (synchronous).
|
|
316
|
+
* @returns {any} The current alert data.
|
|
317
|
+
*/
|
|
318
|
+
getAlertData(): any {
|
|
319
|
+
return this.getValue().alertData;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* Selects all document viewer state properties.
|
|
324
|
+
* @returns {Observable<{selectedDocument?: DocumentListItem, documentHistory: DocumentHistorySection[], showDocumentHistory: boolean, isActionLoading: boolean, documentStatus: 'pending' | 'accepted' | 'rejected', documentIsUploaded: boolean, alertData: any, deleteError: any, deleteSuccess: boolean}>} Observable that emits the current document viewer state.
|
|
325
|
+
*/
|
|
326
|
+
selectDocumentViewerState(): Observable<{
|
|
327
|
+
selectedDocument?: DocumentListItem;
|
|
328
|
+
documentHistory: DocumentHistorySection[];
|
|
329
|
+
showDocumentHistory: boolean;
|
|
330
|
+
isActionLoading: boolean;
|
|
331
|
+
documentStatus: 'pending' | 'accepted' | 'rejected';
|
|
332
|
+
documentIsUploaded: boolean;
|
|
333
|
+
alertData: any;
|
|
334
|
+
deleteError: any;
|
|
335
|
+
deleteSuccess: boolean;
|
|
336
|
+
}> {
|
|
337
|
+
return this.select((state) => ({
|
|
338
|
+
selectedDocument: state.selectedDocument,
|
|
339
|
+
documentHistory: state.documentHistory,
|
|
340
|
+
showDocumentHistory: state.showDocumentHistory,
|
|
341
|
+
isActionLoading: state.isActionLoading,
|
|
342
|
+
documentStatus: state.documentStatus,
|
|
343
|
+
documentIsUploaded: state.documentIsUploaded,
|
|
344
|
+
alertData: state.alertData,
|
|
345
|
+
deleteError: state.deleteError,
|
|
346
|
+
deleteSuccess: state.deleteSuccess
|
|
347
|
+
}));
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* Gets the current document viewer state values (synchronous).
|
|
352
|
+
* @returns {Object} The current document viewer state values.
|
|
353
|
+
*/
|
|
354
|
+
getDocumentViewerState(): {
|
|
355
|
+
selectedDocument?: DocumentListItem;
|
|
356
|
+
documentHistory: DocumentHistorySection[];
|
|
357
|
+
showDocumentHistory: boolean;
|
|
358
|
+
isActionLoading: boolean;
|
|
359
|
+
documentStatus: 'pending' | 'accepted' | 'rejected';
|
|
360
|
+
documentIsUploaded: boolean;
|
|
361
|
+
alertData: any;
|
|
362
|
+
deleteError: any;
|
|
363
|
+
deleteSuccess: boolean;
|
|
364
|
+
} {
|
|
365
|
+
const state = this.getValue();
|
|
366
|
+
return {
|
|
367
|
+
selectedDocument: state.selectedDocument,
|
|
368
|
+
documentHistory: state.documentHistory,
|
|
369
|
+
showDocumentHistory: state.showDocumentHistory,
|
|
370
|
+
isActionLoading: state.isActionLoading,
|
|
371
|
+
documentStatus: state.documentStatus,
|
|
372
|
+
documentIsUploaded: state.documentIsUploaded,
|
|
373
|
+
alertData: state.alertData,
|
|
374
|
+
deleteError: state.deleteError,
|
|
375
|
+
deleteSuccess: state.deleteSuccess
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
}
|
package/{lib/document/state/document.service.d.ts → src/lib/document/state/document.service.ts}
RENAMED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
1
2
|
import { HttpClient } from '@angular/common/http';
|
|
2
3
|
import { DocumentStore } from './document.store';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
4
|
+
import { Observable, tap } from 'rxjs';
|
|
4
5
|
import { AppConfigService } from '../../../Shared/services/app-config.service';
|
|
6
|
+
import { URLS } from '../../../Shared/constant/URLS';
|
|
5
7
|
import { DocumentModel } from '../models/document.model';
|
|
6
|
-
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* Service for managing document-related operations.
|
|
9
11
|
* The `DocumentService` acts as a bridge between the application and the backend API for handling document-related data.
|
|
@@ -12,53 +14,82 @@ import * as i0 from "@angular/core";
|
|
|
12
14
|
* @param {DocumentStore} documentStore - The store that manages the state of documents.
|
|
13
15
|
* @param {HttpClient} http - The Angular HTTP client for making API requests.
|
|
14
16
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
appConfigService: AppConfigService;
|
|
17
|
+
@Injectable({ providedIn: 'root' })
|
|
18
|
+
export class DocumentService {
|
|
19
|
+
|
|
19
20
|
/**
|
|
20
21
|
* Creates an instance of DocumentService.
|
|
21
22
|
* @param {DocumentStore} documentStore - Store managing the state of documents.
|
|
22
23
|
* @param {HttpClient} http - Angular HTTP client for making API requests.
|
|
23
24
|
* @param {AppConfigService} appConfigService - Service for retrieving application configuration, such as API base URL.
|
|
24
25
|
*/
|
|
25
|
-
constructor(
|
|
26
|
+
constructor(
|
|
27
|
+
public documentStore: DocumentStore,
|
|
28
|
+
private http: HttpClient,
|
|
29
|
+
public appConfigService: AppConfigService
|
|
30
|
+
) { }
|
|
31
|
+
|
|
26
32
|
/**
|
|
27
33
|
* Get api url from appConfigService.
|
|
28
34
|
* @readonly
|
|
29
35
|
* @type {string}
|
|
30
36
|
*/
|
|
31
|
-
get apiUrl(): string
|
|
37
|
+
get apiUrl(): string {
|
|
38
|
+
return this.appConfigService.apiBaseUrl;
|
|
39
|
+
}
|
|
40
|
+
|
|
32
41
|
/**
|
|
33
42
|
* Sends a request to create a new document.
|
|
34
43
|
* @param {*} entity - The data of the document to be created.
|
|
35
44
|
* @returns {Observable<any>} Observable that emits the newly created document.
|
|
36
45
|
*/
|
|
37
|
-
create(entity: any): Observable<any
|
|
46
|
+
create(entity: any): Observable<any> {
|
|
47
|
+
return this.http.post<any>(`${this.apiUrl}${URLS.DOCUMENT_UPLOAD_FILE}`, entity).pipe(
|
|
48
|
+
tap((newEntity: any) => this.documentStore.add(newEntity))
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
38
52
|
/**
|
|
39
53
|
* Fetches all documents from the backend.
|
|
40
54
|
* @returns {Observable<DocumentModel[]>} Observable that emits an array of documents.
|
|
41
55
|
*/
|
|
42
|
-
getAll(): Observable<DocumentModel[]
|
|
56
|
+
getAll(): Observable<DocumentModel[]> {
|
|
57
|
+
return this.http.get<DocumentModel[]>(`${this.apiUrl}${URLS.DOCUMENT_UPLOAD}`).pipe(
|
|
58
|
+
tap((entities: DocumentModel[]) => this.documentStore.set(entities))
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
43
62
|
/**
|
|
44
63
|
* Fetches a document by its ID.
|
|
45
64
|
* @param {string} id - The unique identifier of the document.
|
|
46
65
|
* @returns {Observable<any>} Observable that emits the retrieved document.
|
|
47
66
|
*/
|
|
48
|
-
getById(id: string): Observable<any
|
|
67
|
+
getById(id: string): Observable<any> {
|
|
68
|
+
return this.http.get<any>(`${this.apiUrl}${URLS.DOCUMENT_UPLOAD}/${id}`).pipe(
|
|
69
|
+
tap((entity: any) => this.documentStore.upsert(id, entity))
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
|
|
49
73
|
/**
|
|
50
74
|
* Updates an existing document by its ID.
|
|
51
75
|
* @param {string} id - The unique identifier of the document.
|
|
52
76
|
* @param {DocumentModel} entity - The updated data of the document.
|
|
53
77
|
* @returns {Observable<DocumentModel>} Observable that emits the updated document.
|
|
54
78
|
*/
|
|
55
|
-
update(id: string, entity: DocumentModel): Observable<DocumentModel
|
|
79
|
+
update(id: string, entity: DocumentModel): Observable<DocumentModel> {
|
|
80
|
+
return this.http.put<DocumentModel>(`${this.apiUrl}${URLS.DOCUMENT_UPLOAD}/${id}`, entity).pipe(
|
|
81
|
+
tap((updatedEntity: DocumentModel) => this.documentStore.update(id, updatedEntity))
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
|
|
56
85
|
/**
|
|
57
86
|
* Deletes a document by its ID.
|
|
58
87
|
* @param {string} id - The unique identifier of the document to be deleted.
|
|
59
88
|
* @returns {Observable<void>} Observable that completes when the document is deleted.
|
|
60
89
|
*/
|
|
61
|
-
delete(id: string): Observable<void
|
|
62
|
-
|
|
63
|
-
|
|
90
|
+
delete(id: string): Observable<void> {
|
|
91
|
+
return this.http.delete<void>(`${this.apiUrl}${URLS.DOCUMENT_UPLOAD_FILE}/${id}`).pipe(
|
|
92
|
+
tap(() => this.documentStore.remove(id))
|
|
93
|
+
);
|
|
94
|
+
}
|
|
64
95
|
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { EntityState } from '@datorama/akita';
|
|
2
|
+
import { DocumentModel } from '../models/document.model';
|
|
3
|
+
import { DocumentTypeModel } from '../models/document-type.model';
|
|
4
|
+
import { DocumentAlertModel } from '../models/document-alert.model';
|
|
5
|
+
import { FolderBlockModel } from '../models/folder.model';
|
|
6
|
+
import { DocumentCategory } from '../models/document-category.model';
|
|
7
|
+
import { Message } from 'primeng/api';
|
|
8
|
+
import { UserListModel } from '../models/user-list.model';
|
|
9
|
+
import { StatusDataModel } from '../models/status-data.model';
|
|
10
|
+
import { DocumentListResponse } from '../models/document-list-response.model';
|
|
11
|
+
import { DocumentListItem } from '../models/document-list-response.model';
|
|
12
|
+
import { DocumentHistorySection } from '../models/document-history.model';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Represents the state of the documents in the application.
|
|
16
|
+
* This interface extends Akita's `EntityState` to include additional properties
|
|
17
|
+
* for managing document-specific data, such as `records`, `filteredRecords` and `folderId`.
|
|
18
|
+
* @interface DocumentState
|
|
19
|
+
* @property {any[]} records - A collection of records related to documents.
|
|
20
|
+
* @property {any[]} filteredRecords - A collection of filteredRecords related to documents.
|
|
21
|
+
* @property {string | null} folderId - The ID of the currently selected folder, or `null` if no folder is selected.
|
|
22
|
+
* @property {boolean} isDialogOpen - A flag indicating whether a dialog is open.
|
|
23
|
+
*/
|
|
24
|
+
export interface DocumentState extends EntityState<DocumentModel, string> {
|
|
25
|
+
records: DocumentModel[];
|
|
26
|
+
folderId: string | null;
|
|
27
|
+
isDialogOpen: boolean;
|
|
28
|
+
filteredRecords:DocumentModel[];
|
|
29
|
+
dropdownOptions: DocumentTypeModel[];
|
|
30
|
+
uploadedDocumentFiles: DocumentModel[];
|
|
31
|
+
parentDocumentTypeId: string | null;
|
|
32
|
+
documentAlert:DocumentAlertModel
|
|
33
|
+
folders:FolderBlockModel[]
|
|
34
|
+
messages: Message[]
|
|
35
|
+
documentList : DocumentModel[]
|
|
36
|
+
documentCategories: DocumentCategory[];
|
|
37
|
+
selectedMenuItem: string | null; // Stores the _id of the selected menu item, not the label
|
|
38
|
+
selectedUserId: string | null;
|
|
39
|
+
selectedStatus: string | null;
|
|
40
|
+
searchKey: string | null; // Search term for filtering documents
|
|
41
|
+
showUserList: boolean;
|
|
42
|
+
currentDocument: DocumentModel | null;
|
|
43
|
+
userList: UserListModel[];
|
|
44
|
+
statusData: StatusDataModel[];
|
|
45
|
+
documentListResponse: DocumentListResponse[] | null;
|
|
46
|
+
|
|
47
|
+
// Document Viewer State
|
|
48
|
+
selectedDocument?: DocumentListItem;
|
|
49
|
+
documentHistory: DocumentHistorySection[];
|
|
50
|
+
showDocumentHistory: boolean;
|
|
51
|
+
isActionLoading: boolean;
|
|
52
|
+
documentStatus: 'pending' | 'accepted' | 'rejected';
|
|
53
|
+
documentIsUploaded: boolean;
|
|
54
|
+
alertData: any;
|
|
55
|
+
deleteError: any;
|
|
56
|
+
deleteSuccess: boolean;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Creates the initial state for the `DocumentState` store.
|
|
61
|
+
* This function provides default values for all properties in the `DocumentState` interface,
|
|
62
|
+
* ensuring the store starts with a consistent initial structure.
|
|
63
|
+
* @returns {DocumentState} The initial state of the document store.
|
|
64
|
+
*/
|
|
65
|
+
export function createInitialState(): DocumentState {
|
|
66
|
+
return {
|
|
67
|
+
records: [],
|
|
68
|
+
filteredRecords: [],
|
|
69
|
+
folderId: null,
|
|
70
|
+
isDialogOpen: false,
|
|
71
|
+
dropdownOptions: [],
|
|
72
|
+
uploadedDocumentFiles: [],
|
|
73
|
+
parentDocumentTypeId: null,
|
|
74
|
+
documentAlert: {_id:''},
|
|
75
|
+
folders:[],
|
|
76
|
+
messages:[],
|
|
77
|
+
documentList : [],
|
|
78
|
+
documentCategories: [],
|
|
79
|
+
selectedMenuItem: null,
|
|
80
|
+
selectedUserId: null,
|
|
81
|
+
selectedStatus: null,
|
|
82
|
+
searchKey: null,
|
|
83
|
+
showUserList: true,
|
|
84
|
+
currentDocument: null,
|
|
85
|
+
userList: [],
|
|
86
|
+
statusData: [],
|
|
87
|
+
documentListResponse: null,
|
|
88
|
+
|
|
89
|
+
// Document Viewer State
|
|
90
|
+
selectedDocument: undefined,
|
|
91
|
+
documentHistory: [],
|
|
92
|
+
showDocumentHistory: false,
|
|
93
|
+
isActionLoading: false,
|
|
94
|
+
documentStatus: 'pending' as 'pending',
|
|
95
|
+
documentIsUploaded: false,
|
|
96
|
+
alertData: null,
|
|
97
|
+
deleteError: null,
|
|
98
|
+
deleteSuccess: false
|
|
99
|
+
};
|
|
100
|
+
}
|