@zeniai/client-epic-state 5.0.2-betaRR6 → 5.0.2-betaRR8
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/lib/entity/file/fileState.d.ts +4 -4
- package/lib/entity/file/fileState.js +4 -0
- package/lib/entity/transaction/stateTypes/attachment.d.ts +2 -2
- package/lib/esm/entity/file/fileState.js +4 -0
- package/lib/esm/view/taskManager/taskListView/taskListSelector.js +34 -9
- package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
- package/lib/view/taskManager/taskListView/taskListSelector.d.ts +6 -2
- package/lib/view/taskManager/taskListView/taskListSelector.js +34 -9
- package/package.json +1 -1
|
@@ -43,16 +43,16 @@ export interface AttachmentFile {
|
|
|
43
43
|
fileName: string;
|
|
44
44
|
}
|
|
45
45
|
export type FileSizeUnit = 'bytes';
|
|
46
|
-
declare const toSupportedFileType: (v: string) => "application/pdf" | "image/jpeg" | "image/jpg" | "image/png" | "image/bmp" | "image/heic" | "text/html" | "text/csv" | "text/plain";
|
|
47
|
-
export declare const toSupportedFileTypeStrict: (v: string) => "application/pdf" | "image/jpeg" | "image/jpg" | "image/png" | "image/bmp" | "image/heic" | "text/html" | "text/csv" | "text/plain" | undefined;
|
|
46
|
+
declare const toSupportedFileType: (v: string) => "application/pdf" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "image/jpeg" | "image/jpg" | "image/png" | "image/bmp" | "image/heic" | "text/html" | "text/csv" | "text/plain";
|
|
47
|
+
export declare const toSupportedFileTypeStrict: (v: string) => "application/pdf" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "image/jpeg" | "image/jpg" | "image/png" | "image/bmp" | "image/heic" | "text/html" | "text/csv" | "text/plain" | undefined;
|
|
48
48
|
export type SupportedFileType = ReturnType<typeof toSupportedFileType>;
|
|
49
49
|
declare const toSupportedFileFormatType: (v: string) => ".pdf" | ".jpeg" | ".jpg" | ".bmp" | ".heic" | ".png" | ".csv" | ".txt";
|
|
50
50
|
export type SupportedFileFormatType = ReturnType<typeof toSupportedFileFormatType>;
|
|
51
51
|
export declare const SUPPORTED_ATTACHMENT_FILE_TYPES: readonly ["application/pdf", "image/jpeg", "image/jpg", "image/png", "text/plain", "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"];
|
|
52
|
-
export declare const toSupportedAttachmentFileType: (v: string) => "application/pdf" | "
|
|
52
|
+
export declare const toSupportedAttachmentFileType: (v: string) => "application/pdf" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "image/jpeg" | "image/jpg" | "image/png" | "text/plain";
|
|
53
53
|
export type SupportedAttachmentFileType = ReturnType<typeof toSupportedAttachmentFileType>;
|
|
54
54
|
export declare const SUPPORTED_TRANSACTION_LINE_ATTACHMENT_FILE_TYPES: readonly ["application/x-excel", "application/pdf", "image/jpeg", "image/jpg", "image/png", "text/csv", "image/tiff", "image/tif", "image/gif", "text/xml", "application/xml", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/msword"];
|
|
55
|
-
export declare const toSupportedTransactionLineAttachmentFileType: (v: string) => "application/pdf" | "image/jpeg" | "image/jpg" | "image/png" | "text/csv" | "application/
|
|
55
|
+
export declare const toSupportedTransactionLineAttachmentFileType: (v: string) => "application/pdf" | "application/msword" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "image/jpeg" | "image/jpg" | "image/png" | "text/csv" | "application/x-excel" | "image/tiff" | "image/tif" | "image/gif" | "text/xml" | "application/xml";
|
|
56
56
|
export type SupportedTransactionLineAttachmentFileType = ReturnType<typeof toSupportedTransactionLineAttachmentFileType>;
|
|
57
57
|
export declare const toSupportedAttachmentFileFormatType: (v: string) => ".pdf" | ".jpeg" | ".jpg" | ".png" | ".txt" | ".xls" | ".xlsx";
|
|
58
58
|
type SupportedAttachmentFileFormatType = ReturnType<typeof toSupportedAttachmentFileFormatType>;
|
|
@@ -4,6 +4,10 @@ exports.toAllowedDocumentTypeStrict = exports.toAllowedDocumentType = exports.to
|
|
|
4
4
|
const stringToUnion_1 = require("../../commonStateTypes/stringToUnion");
|
|
5
5
|
const SUPPORTED_FILE_TYPES = [
|
|
6
6
|
'application/pdf',
|
|
7
|
+
'application/msword',
|
|
8
|
+
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
9
|
+
'application/vnd.ms-excel',
|
|
10
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
7
11
|
'image/jpeg',
|
|
8
12
|
'image/jpg',
|
|
9
13
|
'image/png',
|
|
@@ -4,9 +4,9 @@ import { ZeniDate } from '../../../zeniDayJS';
|
|
|
4
4
|
import { ZeniUrl as Url } from '../../../zeniUrl';
|
|
5
5
|
import { File } from '../../file/fileState';
|
|
6
6
|
import { AttachmentPayload } from '../payloadTypes/attachmentPayload';
|
|
7
|
-
export declare const toContentType: (v: string) => "application/pdf" | "
|
|
7
|
+
export declare const toContentType: (v: string) => "application/pdf" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "image/jpeg" | "image/jpg" | "image/png" | "image/heic" | "text/html" | "text/csv" | "text/plain" | "image/gif" | "text/xml" | "application/postscript" | "application/vnd.oasis.opendocument.text" | "application/vnd.oasis.opendocument.spreadsheet" | "application/rtf" | "image/heif" | "image/svg+xml" | "image/webp";
|
|
8
8
|
export type ContentType = ReturnType<typeof toContentType>;
|
|
9
|
-
export declare const toContentTypeStrict: (v: string) => "application/pdf" | "
|
|
9
|
+
export declare const toContentTypeStrict: (v: string) => "application/pdf" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "image/jpeg" | "image/jpg" | "image/png" | "image/heic" | "text/html" | "text/csv" | "text/plain" | "image/gif" | "text/xml" | "application/postscript" | "application/vnd.oasis.opendocument.text" | "application/vnd.oasis.opendocument.spreadsheet" | "application/rtf" | "image/heif" | "image/svg+xml" | "image/webp" | undefined;
|
|
10
10
|
export interface Attachment {
|
|
11
11
|
createTime: ZeniDate;
|
|
12
12
|
fileDownloadUrl: Url;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { stringToUnion, stringToUnionStrict, } from '../../commonStateTypes/stringToUnion';
|
|
2
2
|
const SUPPORTED_FILE_TYPES = [
|
|
3
3
|
'application/pdf',
|
|
4
|
+
'application/msword',
|
|
5
|
+
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
6
|
+
'application/vnd.ms-excel',
|
|
7
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
4
8
|
'image/jpeg',
|
|
5
9
|
'image/jpg',
|
|
6
10
|
'image/png',
|
|
@@ -34,6 +34,8 @@ const sortTasksList = (tagState, tasksList, sortKey, sortOrder) => {
|
|
|
34
34
|
return task.status.name;
|
|
35
35
|
case 'priority':
|
|
36
36
|
return ALL_PRIORITY_CODE.indexOf(task.priority.code);
|
|
37
|
+
case 'assignee':
|
|
38
|
+
return task.firstAssigneeSortName;
|
|
37
39
|
case 'timeSpent':
|
|
38
40
|
return task.timeSpent;
|
|
39
41
|
case 'visibility':
|
|
@@ -45,7 +47,7 @@ const sortTasksList = (tagState, tasksList, sortKey, sortOrder) => {
|
|
|
45
47
|
}, sortOrder);
|
|
46
48
|
return tasksInOrder;
|
|
47
49
|
};
|
|
48
|
-
const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRoleState, addressState, taskIds, tagState, }) => {
|
|
50
|
+
const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRoleState, addressState, taskIds, tagState, userGroupsState, }) => {
|
|
49
51
|
const { sortKey, searchText } = taskListState.uiState;
|
|
50
52
|
const sortOrder = getSortOrder(taskListState.uiState.sortOrder);
|
|
51
53
|
const tasks = taskIds
|
|
@@ -55,7 +57,17 @@ const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRole
|
|
|
55
57
|
const assigneeUsers = task.assignees
|
|
56
58
|
.map((userId) => getUserAndUserRole(userState, userRoleState, addressState, userId))
|
|
57
59
|
.filter((value) => value != null);
|
|
58
|
-
|
|
60
|
+
const firstUser = assigneeUsers[0]?.user;
|
|
61
|
+
const firstUserName = (firstUser != null ? getUserName(firstUser) : '') ||
|
|
62
|
+
firstUser?.email ||
|
|
63
|
+
'';
|
|
64
|
+
const firstGroupName = task.groupAssignees
|
|
65
|
+
.map((gId) => userGroupsState.userGroupByUserGroupId[gId]?.name)
|
|
66
|
+
.find((name) => name != null && name !== '');
|
|
67
|
+
const firstAssigneeSortName = (firstUserName ||
|
|
68
|
+
firstGroupName ||
|
|
69
|
+
'').toLowerCase();
|
|
70
|
+
return { ...task, assigneeUsers, firstAssigneeSortName };
|
|
59
71
|
}
|
|
60
72
|
return undefined;
|
|
61
73
|
})
|
|
@@ -64,7 +76,7 @@ const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRole
|
|
|
64
76
|
const sortedTaskList = sortTasksList(tagState, filteredTaskList, sortKey, sortOrder);
|
|
65
77
|
return sortedTaskList;
|
|
66
78
|
};
|
|
67
|
-
const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupState, taskGroupViewState, userState, userRoleState, addressState, tagState, }) => {
|
|
79
|
+
const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupState, taskGroupViewState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
|
|
68
80
|
const { taskGroupsIds } = taskGroupViewState;
|
|
69
81
|
const taskGroupsWithTasksList = taskGroupsIds
|
|
70
82
|
.map((taskGroupId) => {
|
|
@@ -78,6 +90,7 @@ const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupStat
|
|
|
78
90
|
addressState,
|
|
79
91
|
taskIds,
|
|
80
92
|
tagState,
|
|
93
|
+
userGroupsState,
|
|
81
94
|
});
|
|
82
95
|
if (taskGroup != null) {
|
|
83
96
|
return {
|
|
@@ -112,7 +125,7 @@ const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupStat
|
|
|
112
125
|
}
|
|
113
126
|
return sortedTaskGroupsWithTasksList;
|
|
114
127
|
};
|
|
115
|
-
export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
|
|
128
|
+
export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
|
|
116
129
|
const assigneeGroups = Object.keys(taskListState.taskIdsByAssignees);
|
|
117
130
|
const taskGroupsWithTasksList = assigneeGroups.map((groupKey) => {
|
|
118
131
|
const taskIds = taskListState.taskIdsByAssignees[groupKey];
|
|
@@ -124,6 +137,7 @@ export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userSt
|
|
|
124
137
|
addressState,
|
|
125
138
|
taskIds,
|
|
126
139
|
tagState,
|
|
140
|
+
userGroupsState,
|
|
127
141
|
});
|
|
128
142
|
const assigneeIds = groupKey.split(',');
|
|
129
143
|
const groupName = getUsersByUserIds(userState, assigneeIds)
|
|
@@ -145,7 +159,7 @@ export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userSt
|
|
|
145
159
|
}
|
|
146
160
|
return taskGroupsWithTasksList;
|
|
147
161
|
};
|
|
148
|
-
export const getTaskListGroupedByPriority = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
|
|
162
|
+
export const getTaskListGroupedByPriority = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
|
|
149
163
|
const taskGroupsWithTasksList = ALL_PRIORITY_CODE.map((groupKey) => {
|
|
150
164
|
const taskIds = taskListState.taskIdsByPriority[groupKey] ?? [];
|
|
151
165
|
const tasksWithUserDetails = getTasksWithUserDetails({
|
|
@@ -156,6 +170,7 @@ export const getTaskListGroupedByPriority = ({ taskListState, taskState, userSta
|
|
|
156
170
|
addressState,
|
|
157
171
|
taskIds,
|
|
158
172
|
tagState,
|
|
173
|
+
userGroupsState,
|
|
159
174
|
});
|
|
160
175
|
return {
|
|
161
176
|
groupName: allTaskPriority.find((priority) => priority.code === groupKey)?.name ??
|
|
@@ -171,7 +186,7 @@ export const getTaskListGroupedByPriority = ({ taskListState, taskState, userSta
|
|
|
171
186
|
}
|
|
172
187
|
return taskGroupsWithTasksList;
|
|
173
188
|
};
|
|
174
|
-
const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
|
|
189
|
+
const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
|
|
175
190
|
const taskGroupsWithTasksList = ALL_TASK_STATUS_CODE.map((groupKey) => {
|
|
176
191
|
const taskIds = taskListState.taskIdsByStatus[groupKey] ?? [];
|
|
177
192
|
const tasksWithUserDetails = getTasksWithUserDetails({
|
|
@@ -182,6 +197,7 @@ const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userR
|
|
|
182
197
|
addressState,
|
|
183
198
|
taskIds,
|
|
184
199
|
tagState,
|
|
200
|
+
userGroupsState,
|
|
185
201
|
});
|
|
186
202
|
return {
|
|
187
203
|
groupName: allTaskStatus.find((taskStatus) => taskStatus.code === groupKey)
|
|
@@ -197,7 +213,7 @@ const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userR
|
|
|
197
213
|
}
|
|
198
214
|
return taskGroupsWithTasksList;
|
|
199
215
|
};
|
|
200
|
-
const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
|
|
216
|
+
const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
|
|
201
217
|
const tagGroups = Object.keys(taskListState.taskIdsByTags);
|
|
202
218
|
const taskGroupsWithTasksList = tagGroups.map((groupKey) => {
|
|
203
219
|
const taskIds = taskListState.taskIdsByTags[groupKey];
|
|
@@ -209,6 +225,7 @@ const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRol
|
|
|
209
225
|
addressState,
|
|
210
226
|
taskIds,
|
|
211
227
|
tagState,
|
|
228
|
+
userGroupsState,
|
|
212
229
|
});
|
|
213
230
|
const tagIds = groupKey.split(',');
|
|
214
231
|
const groupName = getTagsByIds(tagState, tagIds)
|
|
@@ -229,7 +246,7 @@ const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRol
|
|
|
229
246
|
}
|
|
230
247
|
return taskGroupsWithTasksList;
|
|
231
248
|
};
|
|
232
|
-
const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
|
|
249
|
+
const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
|
|
233
250
|
const taskGroupsWithTasksList = DUE_DATE_GROUP_KEYS.map((groupKey) => {
|
|
234
251
|
const taskIds = taskListState.taskIdsByDueDate[groupKey];
|
|
235
252
|
const tasksWithUserDetails = getTasksWithUserDetails({
|
|
@@ -240,6 +257,7 @@ const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, user
|
|
|
240
257
|
addressState,
|
|
241
258
|
taskIds,
|
|
242
259
|
tagState,
|
|
260
|
+
userGroupsState,
|
|
243
261
|
});
|
|
244
262
|
return {
|
|
245
263
|
groupName: groupKey,
|
|
@@ -254,7 +272,7 @@ const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, user
|
|
|
254
272
|
}
|
|
255
273
|
return taskGroupsWithTasksList;
|
|
256
274
|
};
|
|
257
|
-
const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRoleState, addressState, taskGroupState, taskGroupViewState, tagState, }) => {
|
|
275
|
+
const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRoleState, addressState, taskGroupState, taskGroupViewState, tagState, userGroupsState, }) => {
|
|
258
276
|
const { groupByKey } = taskListState.uiState;
|
|
259
277
|
if (groupByKey === 'groupName') {
|
|
260
278
|
return getTaskListGroupedByGroupName({
|
|
@@ -266,6 +284,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
266
284
|
taskGroupState,
|
|
267
285
|
taskGroupViewState,
|
|
268
286
|
tagState,
|
|
287
|
+
userGroupsState,
|
|
269
288
|
});
|
|
270
289
|
}
|
|
271
290
|
if (groupByKey === 'assignee') {
|
|
@@ -276,6 +295,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
276
295
|
userRoleState,
|
|
277
296
|
addressState,
|
|
278
297
|
tagState,
|
|
298
|
+
userGroupsState,
|
|
279
299
|
});
|
|
280
300
|
}
|
|
281
301
|
if (groupByKey === 'priority') {
|
|
@@ -286,6 +306,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
286
306
|
userRoleState,
|
|
287
307
|
addressState,
|
|
288
308
|
tagState,
|
|
309
|
+
userGroupsState,
|
|
289
310
|
});
|
|
290
311
|
}
|
|
291
312
|
if (groupByKey === 'status') {
|
|
@@ -296,6 +317,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
296
317
|
userRoleState,
|
|
297
318
|
addressState,
|
|
298
319
|
tagState,
|
|
320
|
+
userGroupsState,
|
|
299
321
|
});
|
|
300
322
|
}
|
|
301
323
|
if (groupByKey === 'tag') {
|
|
@@ -306,6 +328,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
306
328
|
userRoleState,
|
|
307
329
|
addressState,
|
|
308
330
|
tagState,
|
|
331
|
+
userGroupsState,
|
|
309
332
|
});
|
|
310
333
|
}
|
|
311
334
|
return getTaskListGroupedByDueDate({
|
|
@@ -315,6 +338,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
|
|
|
315
338
|
userRoleState,
|
|
316
339
|
addressState,
|
|
317
340
|
tagState,
|
|
341
|
+
userGroupsState,
|
|
318
342
|
});
|
|
319
343
|
};
|
|
320
344
|
export const getAllTasks = createSelector((state) => state.taskListState, (state) => state.taskState, (state) => state.userState, (state) => state.userRoleState, (state) => state.userListViewState, (state) => state.addressState, (state) => state.taskGroupState, (state) => state.taskGroupViewState, (state) => state.tagViewState, (state) => state.tagState, (state) => state.taskGroupTemplateState, (state) => state.taskGroupTemplateViewState, (state) => state.userGroupsState, (state) => state.userGroupListViewState, (_state, isTaskTemplatesEnabled) => isTaskTemplatesEnabled, (taskListState, taskState, userState, userRoleState, userListViewState, addressState, taskGroupState, taskGroupViewState, tagViewState, tagState, taskGroupTemplateState, taskGroupTemplateViewState, userGroupsState, userGroupListViewState, isTaskTemplatesEnabled) => {
|
|
@@ -328,6 +352,7 @@ export const getAllTasks = createSelector((state) => state.taskListState, (state
|
|
|
328
352
|
taskGroupState,
|
|
329
353
|
taskGroupViewState,
|
|
330
354
|
tagState,
|
|
355
|
+
userGroupsState,
|
|
331
356
|
});
|
|
332
357
|
const fetchStateVariables = [
|
|
333
358
|
taskListState,
|