@vanillabp/bc-ui 0.0.3
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/README.md +1 -0
- package/dist/chunk-YH4NJHER.js +58 -0
- package/dist/components/ListCell.d.ts +27 -0
- package/dist/components/ListCell.js +123 -0
- package/dist/components/ListColumnHeader.d.ts +22 -0
- package/dist/components/ListColumnHeader.js +135 -0
- package/dist/components/ListOfTasks.d.ts +35 -0
- package/dist/components/ListOfTasks.js +1327 -0
- package/dist/components/ListOfWorkflows.d.ts +36 -0
- package/dist/components/ListOfWorkflows.js +974 -0
- package/dist/components/NoElementGivenByModule.d.ts +10 -0
- package/dist/components/NoElementGivenByModule.js +54 -0
- package/dist/components/NoUserTaskGiven.d.ts +10 -0
- package/dist/components/NoUserTaskGiven.js +23 -0
- package/dist/components/NoWorkflowGiven.d.ts +10 -0
- package/dist/components/NoWorkflowGiven.js +22 -0
- package/dist/components/SearchableAndSortableUpdatingList.d.ts +49 -0
- package/dist/components/SearchableAndSortableUpdatingList.js +200 -0
- package/dist/components/SnapScrolling.d.ts +15 -0
- package/dist/components/SnapScrolling.js +17 -0
- package/dist/components/SnapScrollingDataTable.d.ts +17 -0
- package/dist/components/SnapScrollingDataTable.js +113 -0
- package/dist/components/User.d.ts +11 -0
- package/dist/components/User.js +39 -0
- package/dist/components/UserAvatar.d.ts +12 -0
- package/dist/components/UserAvatar.js +133 -0
- package/dist/components/UserTaskPage.d.ts +24 -0
- package/dist/components/UserTaskPage.js +121 -0
- package/dist/components/WorkflowPage.d.ts +16 -0
- package/dist/components/WorkflowPage.js +124 -0
- package/dist/components/index.d.ts +25 -0
- package/dist/components/index.js +13 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.js +3 -0
- package/dist/types/apis.d.ts +50 -0
- package/dist/types/apis.js +0 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.js +3 -0
- package/dist/types/lists.d.ts +12 -0
- package/dist/types/lists.js +0 -0
- package/dist/types/navigate.d.ts +6 -0
- package/dist/types/navigate.js +0 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/module-federation.d.ts +40 -0
- package/dist/utils/module-federation.js +182 -0
- package/package.json +66 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__async
|
|
3
|
+
} from "../chunk-YH4NJHER.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Sex } from "@vanillabp/bc-official-gui-client";
|
|
6
|
+
import { User as UserMale, UserFemale } from "grommet-icons";
|
|
7
|
+
import { Anchor, Avatar, Box, Text } from "grommet";
|
|
8
|
+
import { useRef, useState } from "react";
|
|
9
|
+
import { useOnClickOutside, useResponsiveScreen } from "@vanillabp/bc-shared";
|
|
10
|
+
const hashCode = (value) => value.split("").reduce((s, c) => Math.imul(31, s) + c.charCodeAt(0) | 0, 0);
|
|
11
|
+
const UserAvatar = ({
|
|
12
|
+
user,
|
|
13
|
+
isUserLoggedIn = false,
|
|
14
|
+
border,
|
|
15
|
+
size = "medium"
|
|
16
|
+
}) => {
|
|
17
|
+
const backgroundColor = user.id ? `hsl(${hashCode(user.id) * 207 % 360}, 70%, 45%)` : "#333333";
|
|
18
|
+
const intSize = parseInt(size);
|
|
19
|
+
let symbolSize;
|
|
20
|
+
if (Number.isNaN(intSize)) {
|
|
21
|
+
switch (size) {
|
|
22
|
+
case "xsmall":
|
|
23
|
+
symbolSize = "10rem";
|
|
24
|
+
break;
|
|
25
|
+
case "small":
|
|
26
|
+
symbolSize = "16rem";
|
|
27
|
+
break;
|
|
28
|
+
case "medium":
|
|
29
|
+
symbolSize = "28rem";
|
|
30
|
+
break;
|
|
31
|
+
case "large":
|
|
32
|
+
symbolSize = "40rem";
|
|
33
|
+
break;
|
|
34
|
+
case "xlarge":
|
|
35
|
+
symbolSize = "57rem";
|
|
36
|
+
break;
|
|
37
|
+
default:
|
|
38
|
+
symbolSize = "27rem";
|
|
39
|
+
}
|
|
40
|
+
} else {
|
|
41
|
+
symbolSize = `${intSize * 0.65}px`;
|
|
42
|
+
}
|
|
43
|
+
const [showDetails, setShowDetails] = useState(void 0);
|
|
44
|
+
const ref = useRef(null);
|
|
45
|
+
useOnClickOutside(ref, (event) => {
|
|
46
|
+
if (!showDetails)
|
|
47
|
+
return;
|
|
48
|
+
event.preventDefault();
|
|
49
|
+
event.stopPropagation();
|
|
50
|
+
setShowDetails(void 0);
|
|
51
|
+
});
|
|
52
|
+
const loadAndShowDetails = () => __async(void 0, null, function* () {
|
|
53
|
+
if (isUserLoggedIn)
|
|
54
|
+
return;
|
|
55
|
+
setShowDetails(user);
|
|
56
|
+
});
|
|
57
|
+
const { isPhone } = useResponsiveScreen();
|
|
58
|
+
return /* @__PURE__ */ jsxs(
|
|
59
|
+
Box,
|
|
60
|
+
{
|
|
61
|
+
style: { position: "relative" },
|
|
62
|
+
onMouseDown: () => loadAndShowDetails(),
|
|
63
|
+
children: [
|
|
64
|
+
showDetails ? /* @__PURE__ */ jsxs(
|
|
65
|
+
Box,
|
|
66
|
+
{
|
|
67
|
+
ref,
|
|
68
|
+
background: "white",
|
|
69
|
+
style: {
|
|
70
|
+
position: "absolute",
|
|
71
|
+
maxWidth: "unset",
|
|
72
|
+
margin: "-0.3rem",
|
|
73
|
+
zIndex: 20,
|
|
74
|
+
opacity: 2,
|
|
75
|
+
boxShadow: "5px 5px 10px rgba(0, 0, 0, 0.5)"
|
|
76
|
+
},
|
|
77
|
+
height: "xsmall",
|
|
78
|
+
width: "16rem",
|
|
79
|
+
round: "small",
|
|
80
|
+
border: true,
|
|
81
|
+
pad: {
|
|
82
|
+
left: `calc(${symbolSize} * 0.15)`,
|
|
83
|
+
top: "0.3rem"
|
|
84
|
+
},
|
|
85
|
+
children: [
|
|
86
|
+
/* @__PURE__ */ jsx(
|
|
87
|
+
Text,
|
|
88
|
+
{
|
|
89
|
+
weight: "bold",
|
|
90
|
+
children: user.id
|
|
91
|
+
}
|
|
92
|
+
),
|
|
93
|
+
/* @__PURE__ */ jsxs(
|
|
94
|
+
Box,
|
|
95
|
+
{
|
|
96
|
+
pad: { bottom: isPhone ? "medium" : "small" },
|
|
97
|
+
children: [
|
|
98
|
+
/* @__PURE__ */ jsxs(Text, { truncate: "tip", children: [
|
|
99
|
+
showDetails.firstName,
|
|
100
|
+
" ",
|
|
101
|
+
showDetails.lastName
|
|
102
|
+
] }),
|
|
103
|
+
/* @__PURE__ */ jsx(
|
|
104
|
+
Anchor,
|
|
105
|
+
{
|
|
106
|
+
href: `mailto:${showDetails.email}`,
|
|
107
|
+
children: showDetails.email
|
|
108
|
+
}
|
|
109
|
+
)
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
)
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
) : void 0,
|
|
116
|
+
/* @__PURE__ */ jsx(
|
|
117
|
+
Avatar,
|
|
118
|
+
{
|
|
119
|
+
style: { zIndex: !isUserLoggedIn && showDetails ? 20 : void 0 },
|
|
120
|
+
background: backgroundColor,
|
|
121
|
+
size,
|
|
122
|
+
border,
|
|
123
|
+
src: user.avatar ? `/api/v1/gui/user/${user.id}/avatar?ts=${user.avatar}` : void 0,
|
|
124
|
+
children: user.sex === Sex.Female ? /* @__PURE__ */ jsx(UserFemale, { color: "accent-1", size: symbolSize }) : /* @__PURE__ */ jsx(UserMale, { color: "accent-1", size: symbolSize })
|
|
125
|
+
}
|
|
126
|
+
)
|
|
127
|
+
]
|
|
128
|
+
}
|
|
129
|
+
);
|
|
130
|
+
};
|
|
131
|
+
export {
|
|
132
|
+
UserAvatar
|
|
133
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { ShowLoadingIndicatorFunction, ToastFunction, TranslationFunction, BcUserTask, UserTaskForm } from '@vanillabp/bc-shared';
|
|
3
|
+
import { OpenTaskFunction, NavigateToWorkflowFunction } from '../types/navigate.js';
|
|
4
|
+
import { TasklistApiHook } from '../types/apis.js';
|
|
5
|
+
import { AssignTaskFunction } from '../types/lists.js';
|
|
6
|
+
import '@vanillabp/bc-official-gui-client';
|
|
7
|
+
import '@vanillabp/bc-official-gui-client/dist/models/UserTasks';
|
|
8
|
+
|
|
9
|
+
interface UserTaskPageProps {
|
|
10
|
+
userTaskId: string;
|
|
11
|
+
showLoadingIndicator: ShowLoadingIndicatorFunction;
|
|
12
|
+
toast: ToastFunction;
|
|
13
|
+
openTask: OpenTaskFunction;
|
|
14
|
+
navigateToWorkflow: NavigateToWorkflowFunction;
|
|
15
|
+
assignTask: AssignTaskFunction;
|
|
16
|
+
useTasklistApi: TasklistApiHook;
|
|
17
|
+
t: TranslationFunction;
|
|
18
|
+
header?: React.ReactNode;
|
|
19
|
+
footer?: React.ReactNode;
|
|
20
|
+
children?: (userTask: BcUserTask, Form: UserTaskForm) => JSX.Element;
|
|
21
|
+
}
|
|
22
|
+
declare const UserTaskPage: FC<UserTaskPageProps>;
|
|
23
|
+
|
|
24
|
+
export { UserTaskPage };
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__spreadProps,
|
|
3
|
+
__spreadValues
|
|
4
|
+
} from "../chunk-YH4NJHER.js";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { useEffect, useState } from "react";
|
|
7
|
+
import {
|
|
8
|
+
UserTaskAppLayout
|
|
9
|
+
} from "@vanillabp/bc-shared";
|
|
10
|
+
import {
|
|
11
|
+
NoUserTaskGiven,
|
|
12
|
+
useFederationModule
|
|
13
|
+
} from "../index.js";
|
|
14
|
+
const loadUserTask = (tasklistApi, userTaskId, setUserTask, navigateToWorkflow, openTask, unassign) => {
|
|
15
|
+
tasklistApi.getUserTask(userTaskId, true).then((value) => {
|
|
16
|
+
const bcUserTask = __spreadProps(__spreadValues({}, value), {
|
|
17
|
+
open: () => openTask(value),
|
|
18
|
+
navigateToWorkflow: () => navigateToWorkflow(value),
|
|
19
|
+
unassign: (userId) => unassign(value, userId)
|
|
20
|
+
});
|
|
21
|
+
setUserTask(bcUserTask);
|
|
22
|
+
}).catch((error) => {
|
|
23
|
+
setUserTask(null);
|
|
24
|
+
console.warn(error);
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
;
|
|
28
|
+
const UserTaskPage = ({
|
|
29
|
+
userTaskId,
|
|
30
|
+
showLoadingIndicator,
|
|
31
|
+
toast,
|
|
32
|
+
openTask,
|
|
33
|
+
navigateToWorkflow,
|
|
34
|
+
useTasklistApi,
|
|
35
|
+
assignTask,
|
|
36
|
+
t,
|
|
37
|
+
children,
|
|
38
|
+
header,
|
|
39
|
+
footer
|
|
40
|
+
}) => {
|
|
41
|
+
const tasklistApi = useTasklistApi();
|
|
42
|
+
const [userTask, setUserTask] = useState();
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
if (userTaskId == void 0) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
loadUserTask(
|
|
48
|
+
tasklistApi,
|
|
49
|
+
userTaskId,
|
|
50
|
+
setUserTask,
|
|
51
|
+
(userTask2) => navigateToWorkflow(userTask2),
|
|
52
|
+
(userTask2) => openTask(userTask2),
|
|
53
|
+
(userTask2, userId) => assignTask(userTask2, userId, true)
|
|
54
|
+
);
|
|
55
|
+
}, [userTaskId]);
|
|
56
|
+
const module = useFederationModule(userTask, "UserTaskForm");
|
|
57
|
+
useEffect(() => {
|
|
58
|
+
if (!module) {
|
|
59
|
+
showLoadingIndicator(true);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
showLoadingIndicator(false);
|
|
63
|
+
}, [module, showLoadingIndicator]);
|
|
64
|
+
if (userTask === void 0) {
|
|
65
|
+
return /* @__PURE__ */ jsx(
|
|
66
|
+
NoUserTaskGiven,
|
|
67
|
+
{
|
|
68
|
+
loading: true,
|
|
69
|
+
t,
|
|
70
|
+
showLoadingIndicator
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
if (userTask === null) {
|
|
75
|
+
return /* @__PURE__ */ jsx(
|
|
76
|
+
NoUserTaskGiven,
|
|
77
|
+
{
|
|
78
|
+
showLoadingIndicator,
|
|
79
|
+
t,
|
|
80
|
+
retry: () => loadUserTask(
|
|
81
|
+
tasklistApi,
|
|
82
|
+
userTaskId,
|
|
83
|
+
setUserTask,
|
|
84
|
+
(userTask2) => navigateToWorkflow(userTask2),
|
|
85
|
+
(userTask2) => openTask(userTask2),
|
|
86
|
+
(userTask2, userId) => assignTask(userTask2, userId, true)
|
|
87
|
+
)
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
document.title = userTask.title.de;
|
|
92
|
+
if (module == null ? void 0 : module.retry) {
|
|
93
|
+
return /* @__PURE__ */ jsx(
|
|
94
|
+
NoUserTaskGiven,
|
|
95
|
+
{
|
|
96
|
+
retry: module.retry,
|
|
97
|
+
t,
|
|
98
|
+
showLoadingIndicator
|
|
99
|
+
}
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
if (!module || module.buildTimestamp === void 0 || !(module == null ? void 0 : module.UserTaskForm)) {
|
|
103
|
+
return /* @__PURE__ */ jsx(
|
|
104
|
+
NoUserTaskGiven,
|
|
105
|
+
{
|
|
106
|
+
loading: true,
|
|
107
|
+
t,
|
|
108
|
+
showLoadingIndicator
|
|
109
|
+
}
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
const Form = module.UserTaskForm;
|
|
113
|
+
const bcUserTask = __spreadProps(__spreadValues({}, userTask), {
|
|
114
|
+
open: () => openTask(userTask),
|
|
115
|
+
navigateToWorkflow: () => navigateToWorkflow(userTask)
|
|
116
|
+
});
|
|
117
|
+
return children === void 0 ? /* @__PURE__ */ jsx(UserTaskAppLayout, { header, footer, children: /* @__PURE__ */ jsx(Form, { userTask: bcUserTask }) }) : children(userTask, Form);
|
|
118
|
+
};
|
|
119
|
+
export {
|
|
120
|
+
UserTaskPage
|
|
121
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ShowLoadingIndicatorFunction, ToastFunction, TranslationFunction } from '@vanillabp/bc-shared';
|
|
2
|
+
import { OpenTaskFunction } from '../types/navigate.js';
|
|
3
|
+
import { WorkflowlistApiHook } from '../types/apis.js';
|
|
4
|
+
import '@vanillabp/bc-official-gui-client';
|
|
5
|
+
import '@vanillabp/bc-official-gui-client/dist/models/UserTasks';
|
|
6
|
+
|
|
7
|
+
declare const WorkflowPage: ({ workflowId, showLoadingIndicator, toast, useWorkflowlistApi, openTask, t, }: {
|
|
8
|
+
workflowId: string | undefined;
|
|
9
|
+
showLoadingIndicator: ShowLoadingIndicatorFunction;
|
|
10
|
+
toast: ToastFunction;
|
|
11
|
+
useWorkflowlistApi: WorkflowlistApiHook;
|
|
12
|
+
openTask: OpenTaskFunction;
|
|
13
|
+
t: TranslationFunction;
|
|
14
|
+
}) => JSX.Element;
|
|
15
|
+
|
|
16
|
+
export { WorkflowPage };
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__async,
|
|
3
|
+
__spreadProps,
|
|
4
|
+
__spreadValues
|
|
5
|
+
} from "../chunk-YH4NJHER.js";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
import { useEffect, useRef, useState } from "react";
|
|
8
|
+
import {
|
|
9
|
+
NoWorkflowGiven,
|
|
10
|
+
useFederationModule
|
|
11
|
+
} from "../index.js";
|
|
12
|
+
import { Box } from "grommet";
|
|
13
|
+
const loadWorkflow = (workflowId, workflowListApi, openTask, setWorkflow) => __async(void 0, null, function* () {
|
|
14
|
+
const workflow = yield workflowListApi.getWorkflow(workflowId);
|
|
15
|
+
const getUserTasksFunction = (activeOnly, limitListAccordingToCurrentUsersPermissions) => __async(void 0, null, function* () {
|
|
16
|
+
return (yield workflowListApi.getUserTasksOfWorkflow(
|
|
17
|
+
workflow.id,
|
|
18
|
+
activeOnly,
|
|
19
|
+
limitListAccordingToCurrentUsersPermissions
|
|
20
|
+
)).map((userTask) => __spreadProps(__spreadValues({}, userTask), {
|
|
21
|
+
open: () => openTask(userTask),
|
|
22
|
+
navigateToWorkflow: () => {
|
|
23
|
+
}
|
|
24
|
+
// don't change view because workflow is already shown
|
|
25
|
+
}));
|
|
26
|
+
});
|
|
27
|
+
const bcWorkflows = __spreadProps(__spreadValues({}, workflow), {
|
|
28
|
+
navigateToWorkflow: () => {
|
|
29
|
+
},
|
|
30
|
+
getUserTasks: getUserTasksFunction
|
|
31
|
+
});
|
|
32
|
+
setWorkflow(bcWorkflows);
|
|
33
|
+
});
|
|
34
|
+
const WorkflowPage = ({
|
|
35
|
+
workflowId,
|
|
36
|
+
showLoadingIndicator,
|
|
37
|
+
toast,
|
|
38
|
+
useWorkflowlistApi,
|
|
39
|
+
openTask,
|
|
40
|
+
t
|
|
41
|
+
}) => {
|
|
42
|
+
const loadingWorkflow = useRef(false);
|
|
43
|
+
const [workflow, setWorkflow] = useState(void 0);
|
|
44
|
+
const workflowListApi = useWorkflowlistApi();
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
if (workflowId === void 0) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (workflow !== void 0) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (loadingWorkflow.current) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
loadingWorkflow.current = true;
|
|
56
|
+
showLoadingIndicator(true);
|
|
57
|
+
loadWorkflow(
|
|
58
|
+
workflowId,
|
|
59
|
+
workflowListApi,
|
|
60
|
+
(userTask) => openTask(userTask),
|
|
61
|
+
setWorkflow
|
|
62
|
+
);
|
|
63
|
+
}, [workflowListApi, workflowId, workflow, loadingWorkflow, showLoadingIndicator, setWorkflow]);
|
|
64
|
+
const module = useFederationModule(workflow, "WorkflowPage");
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
if (!module) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (module.buildTimestamp === void 0 && module.retry === void 0) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
showLoadingIndicator(false);
|
|
73
|
+
}, [module, module == null ? void 0 : module.buildTimestamp, module == null ? void 0 : module.retry, showLoadingIndicator]);
|
|
74
|
+
if (workflow === void 0) {
|
|
75
|
+
return /* @__PURE__ */ jsx(
|
|
76
|
+
NoWorkflowGiven,
|
|
77
|
+
{
|
|
78
|
+
loading: true,
|
|
79
|
+
t,
|
|
80
|
+
showLoadingIndicator
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
if (workflow === null) {
|
|
85
|
+
return /* @__PURE__ */ jsx(
|
|
86
|
+
NoWorkflowGiven,
|
|
87
|
+
{
|
|
88
|
+
showLoadingIndicator,
|
|
89
|
+
t,
|
|
90
|
+
retry: () => loadWorkflow(
|
|
91
|
+
workflowId,
|
|
92
|
+
workflowListApi,
|
|
93
|
+
(userTask) => openTask(userTask),
|
|
94
|
+
setWorkflow
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
if (module == null ? void 0 : module.retry) {
|
|
100
|
+
return /* @__PURE__ */ jsx(
|
|
101
|
+
NoWorkflowGiven,
|
|
102
|
+
{
|
|
103
|
+
retry: module.retry,
|
|
104
|
+
t,
|
|
105
|
+
showLoadingIndicator
|
|
106
|
+
}
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
if (!module || module.buildTimestamp === void 0) {
|
|
110
|
+
return /* @__PURE__ */ jsx(
|
|
111
|
+
NoWorkflowGiven,
|
|
112
|
+
{
|
|
113
|
+
loading: true,
|
|
114
|
+
t,
|
|
115
|
+
showLoadingIndicator
|
|
116
|
+
}
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
const Page = module.WorkflowPage;
|
|
120
|
+
return /* @__PURE__ */ jsx(Box, { fill: true, children: /* @__PURE__ */ jsx(Page, { workflow }) });
|
|
121
|
+
};
|
|
122
|
+
export {
|
|
123
|
+
WorkflowPage
|
|
124
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export { NoElementGivenByModule } from './NoElementGivenByModule.js';
|
|
2
|
+
export { SnapAlignBox, SnapScrollingGrid } from './SnapScrolling.js';
|
|
3
|
+
export { SnapScrollingDataTable } from './SnapScrollingDataTable.js';
|
|
4
|
+
export { ListItem, ListItemData, ListItems, RefreshItemCallbackFunction, ReloadCallbackFunction, SearchableAndSortableUpdatingList } from './SearchableAndSortableUpdatingList.js';
|
|
5
|
+
export { ListCell, TypeOfItem } from './ListCell.js';
|
|
6
|
+
export { ListOfTasks } from './ListOfTasks.js';
|
|
7
|
+
export { ListOfWorkflows } from './ListOfWorkflows.js';
|
|
8
|
+
export { NoWorkflowGiven } from './NoWorkflowGiven.js';
|
|
9
|
+
export { WorkflowPage } from './WorkflowPage.js';
|
|
10
|
+
export { NoUserTaskGiven } from './NoUserTaskGiven.js';
|
|
11
|
+
export { UserTaskPage } from './UserTaskPage.js';
|
|
12
|
+
export { UserAvatar } from './UserAvatar.js';
|
|
13
|
+
export { User } from './User.js';
|
|
14
|
+
import '../utils/module-federation.js';
|
|
15
|
+
import '../types/navigate.js';
|
|
16
|
+
import '../types/apis.js';
|
|
17
|
+
import '../types/lists.js';
|
|
18
|
+
import '@vanillabp/bc-shared';
|
|
19
|
+
import 'styled-components';
|
|
20
|
+
import 'react';
|
|
21
|
+
import 'grommet';
|
|
22
|
+
import 'csstype';
|
|
23
|
+
import 'grommet/utils';
|
|
24
|
+
import '@vanillabp/bc-official-gui-client';
|
|
25
|
+
import '@vanillabp/bc-official-gui-client/dist/models/UserTasks';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from "./NoElementGivenByModule.js";
|
|
2
|
+
export * from "./SnapScrolling.js";
|
|
3
|
+
export * from "./SnapScrollingDataTable.js";
|
|
4
|
+
export * from "./SearchableAndSortableUpdatingList.js";
|
|
5
|
+
export * from "./ListCell.js";
|
|
6
|
+
export * from "./ListOfTasks.js";
|
|
7
|
+
export * from "./ListOfWorkflows.js";
|
|
8
|
+
export * from "./NoWorkflowGiven.js";
|
|
9
|
+
export * from "./WorkflowPage.js";
|
|
10
|
+
export * from "./NoUserTaskGiven.js";
|
|
11
|
+
export * from "./UserTaskPage.js";
|
|
12
|
+
export * from "./UserAvatar.js";
|
|
13
|
+
export * from "./User.js";
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export { NoElementGivenByModule } from './components/NoElementGivenByModule.js';
|
|
2
|
+
export { SnapAlignBox, SnapScrollingGrid } from './components/SnapScrolling.js';
|
|
3
|
+
export { SnapScrollingDataTable } from './components/SnapScrollingDataTable.js';
|
|
4
|
+
export { ListItem, ListItemData, ListItems, RefreshItemCallbackFunction, ReloadCallbackFunction, SearchableAndSortableUpdatingList } from './components/SearchableAndSortableUpdatingList.js';
|
|
5
|
+
export { ListCell, TypeOfItem } from './components/ListCell.js';
|
|
6
|
+
export { ListOfTasks } from './components/ListOfTasks.js';
|
|
7
|
+
export { ListOfWorkflows } from './components/ListOfWorkflows.js';
|
|
8
|
+
export { NoWorkflowGiven } from './components/NoWorkflowGiven.js';
|
|
9
|
+
export { WorkflowPage } from './components/WorkflowPage.js';
|
|
10
|
+
export { NoUserTaskGiven } from './components/NoUserTaskGiven.js';
|
|
11
|
+
export { UserTaskPage } from './components/UserTaskPage.js';
|
|
12
|
+
export { UserAvatar } from './components/UserAvatar.js';
|
|
13
|
+
export { User } from './components/User.js';
|
|
14
|
+
export { Module, ModuleDefinition, TasklistCellProps, UiUriType, UseCase, WorkflowCellProps, attachScript, detachScript, useFederationModule, useFederationModules } from './utils/module-federation.js';
|
|
15
|
+
export { NavigateToWorkflowFunction, OpenTaskFunction } from './types/navigate.js';
|
|
16
|
+
export { TasklistApi, TasklistApiHook, WakeupSseCallbackReference, WorkflowlistApi, WorkflowlistApiHook } from './types/apis.js';
|
|
17
|
+
export { AssignTaskFunction, ListOfTasksHeaderFooterFunction, ListOfWorkflowsHeaderFooterFunction } from './types/lists.js';
|
|
18
|
+
import '@vanillabp/bc-shared';
|
|
19
|
+
import 'styled-components';
|
|
20
|
+
import 'react';
|
|
21
|
+
import 'grommet';
|
|
22
|
+
import 'csstype';
|
|
23
|
+
import 'grommet/utils';
|
|
24
|
+
import '@vanillabp/bc-official-gui-client';
|
|
25
|
+
import '@vanillabp/bc-official-gui-client/dist/models/UserTasks';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { WakeupSseCallback } from '@vanillabp/bc-shared';
|
|
2
|
+
import { UserTask, UserSearchResult, SearchQuery, Workflows, Workflow, KwicResult } from '@vanillabp/bc-official-gui-client';
|
|
3
|
+
import { UserTasks } from '@vanillabp/bc-official-gui-client/dist/models/UserTasks';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* This helps to initialize the given API hook late by
|
|
7
|
+
* first passing the empty reference and setting
|
|
8
|
+
* 'current' property later.
|
|
9
|
+
*/
|
|
10
|
+
interface WakeupSseCallbackReference {
|
|
11
|
+
current: WakeupSseCallback | undefined;
|
|
12
|
+
}
|
|
13
|
+
declare type TasklistApiCall = (listId: string, pageNumber: number, pageSize: number, sort: string | undefined, sortAscending: boolean, initialTimestamp?: Date) => Promise<UserTasks>;
|
|
14
|
+
declare type TasklistUpdateCall = (listId: string, size: number, knownUserTasksIds: Array<string>, sort: string | undefined, sortAscending: boolean, initialTimestamp?: Date) => Promise<UserTasks>;
|
|
15
|
+
declare type TasklistMarkAsReadCall = (userTaskId: string, unread?: boolean) => void;
|
|
16
|
+
declare type TasklistMarkMultipleAsReadCall = (userTaskIds: Array<string>, unread?: boolean) => void;
|
|
17
|
+
declare type TasklistClaimTaskCall = (userTaskId: string, unclaim?: boolean) => void;
|
|
18
|
+
declare type TasklistClaimMultipleTasksCall = (userTaskIds: Array<string>, unclaim?: boolean) => void;
|
|
19
|
+
declare type TasklistAssignTaskCall = (userTaskId: string, userId: string, unassign?: boolean) => void;
|
|
20
|
+
declare type TasklistAssignMultipleTasksCall = (userTaskIds: Array<string>, userId: string, unassign?: boolean) => void;
|
|
21
|
+
declare type GetUserTaskCall = (userTaskId: string, markAsRead?: boolean) => Promise<UserTask>;
|
|
22
|
+
declare type FindUsersCall = (query?: string, limit?: number) => Promise<UserSearchResult>;
|
|
23
|
+
interface TasklistApi {
|
|
24
|
+
getUserTasks: TasklistApiCall;
|
|
25
|
+
getUserTasksUpdate: TasklistUpdateCall;
|
|
26
|
+
markUserTaskAsRead: TasklistMarkAsReadCall;
|
|
27
|
+
markUserTasksAsRead: TasklistMarkMultipleAsReadCall;
|
|
28
|
+
claimTask: TasklistClaimTaskCall;
|
|
29
|
+
claimTasks: TasklistClaimMultipleTasksCall;
|
|
30
|
+
assignTask: TasklistAssignTaskCall;
|
|
31
|
+
assignTasks: TasklistAssignMultipleTasksCall;
|
|
32
|
+
getUserTask: GetUserTaskCall;
|
|
33
|
+
findUsers: FindUsersCall;
|
|
34
|
+
}
|
|
35
|
+
declare type GetWorkflowsApiCall = (requestId: string, pageNumber: number, pageSize: number, sort: string | undefined, sortAscending: boolean, searchQueries?: Array<SearchQuery>, initialTimestamp?: Date) => Promise<Workflows>;
|
|
36
|
+
declare type GetWorkflowsUpdateApiCall = (requestId: string, size: number, knownWorkflowsIds: Array<string>, sort: string | undefined, sortAscending: boolean, searchQueries?: Array<SearchQuery>, initialTimestamp?: Date) => Promise<Workflows>;
|
|
37
|
+
declare type GetUserTasksOfWorkflowApiCall = (workflowId: string, activeOnlyRequested?: boolean, limitListAccordingToCurrentUsersPermissions?: boolean) => Promise<Array<UserTask>>;
|
|
38
|
+
declare type GetWorkflowApiCall = (workflowId: string) => Promise<Workflow>;
|
|
39
|
+
declare type KwicWorkflowsApiCall = (query: string, path?: string, searchQueries?: Array<SearchQuery>, initialTimestamp?: Date) => Promise<Array<KwicResult>>;
|
|
40
|
+
interface WorkflowlistApi {
|
|
41
|
+
getUserTasksOfWorkflow: GetUserTasksOfWorkflowApiCall;
|
|
42
|
+
getWorkflows: GetWorkflowsApiCall;
|
|
43
|
+
getWorkflowsUpdate: GetWorkflowsUpdateApiCall;
|
|
44
|
+
getWorkflow: GetWorkflowApiCall;
|
|
45
|
+
kwicWorkflows: KwicWorkflowsApiCall;
|
|
46
|
+
}
|
|
47
|
+
declare type WorkflowlistApiHook = (wakeupSseCallback?: WakeupSseCallbackReference) => WorkflowlistApi;
|
|
48
|
+
declare type TasklistApiHook = (wakeupSseCallback?: WakeupSseCallbackReference) => TasklistApi;
|
|
49
|
+
|
|
50
|
+
export { TasklistApi, TasklistApiHook, WakeupSseCallbackReference, WorkflowlistApi, WorkflowlistApiHook };
|
|
File without changes
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { NavigateToWorkflowFunction, OpenTaskFunction } from './navigate.js';
|
|
2
|
+
export { TasklistApi, TasklistApiHook, WakeupSseCallbackReference, WorkflowlistApi, WorkflowlistApiHook } from './apis.js';
|
|
3
|
+
export { AssignTaskFunction, ListOfTasksHeaderFooterFunction, ListOfWorkflowsHeaderFooterFunction } from './lists.js';
|
|
4
|
+
import '@vanillabp/bc-official-gui-client';
|
|
5
|
+
import '@vanillabp/bc-shared';
|
|
6
|
+
import '@vanillabp/bc-official-gui-client/dist/models/UserTasks';
|
|
7
|
+
import 'react';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { UserTask } from '@vanillabp/bc-official-gui-client';
|
|
3
|
+
import { Column } from '@vanillabp/bc-shared';
|
|
4
|
+
|
|
5
|
+
declare type ListOfTasksHeaderFooterFunction = (isPhone: boolean, isTablet: boolean, numberOfTasks: number, columns: Column[] | undefined, sort: string | undefined, setSort: (column?: Column) => void, sortAscending: boolean, setSortAscending: (sortAscending: boolean) => void, selectAll: (select: boolean) => void, allSelected: boolean, refresh: () => void, refreshDisabled: boolean, markAsRead: () => void, markAsUnread: () => void, markAsReadDisabled: boolean, claimTasks: () => void, unclaimTasks: () => void, claimTasksDisabled: boolean, assignTasks: (userId: string) => void, assignDisabled: boolean) => ReactNode | undefined;
|
|
6
|
+
declare type AssignTaskFunction = (userTask: UserTask, userId: string, unassign: boolean) => void;
|
|
7
|
+
declare type ListOfWorkflowsHeaderFooterFunction = (isPhone: boolean, isTablet: boolean, numberOfWorkflows: number, columns: Column[] | undefined, sort: string | undefined, setSort: (column?: Column) => void, sortAscending: boolean, setSortAscending: (sortAscending: boolean) => void, selectAll: (select: boolean) => void, allSelected: boolean, refresh: () => void, refreshDisabled: boolean, initialKwicQuery: (columnPath?: string) => string, limitListToKwic: (columnPath: string | undefined, query?: string) => void, kwic: (columnPath: string | undefined, query: string) => Promise<Array<{
|
|
8
|
+
item: string;
|
|
9
|
+
count: number;
|
|
10
|
+
}>>) => ReactNode | undefined;
|
|
11
|
+
|
|
12
|
+
export { AssignTaskFunction, ListOfTasksHeaderFooterFunction, ListOfWorkflowsHeaderFooterFunction };
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { UserTask, Workflow } from '@vanillabp/bc-official-gui-client';
|
|
2
|
+
|
|
3
|
+
declare type OpenTaskFunction = (userTask: UserTask) => void;
|
|
4
|
+
declare type NavigateToWorkflowFunction = (workflowDefinition: UserTask | Workflow) => void;
|
|
5
|
+
|
|
6
|
+
export { NavigateToWorkflowFunction, OpenTaskFunction };
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./module-federation.js";
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ColumnsOfUserTaskFunction, ColumnsOfWorkflowFunction, UserTaskForm, UserTaskListCell, WorkflowListCell, WorkflowPage } from '@vanillabp/bc-shared';
|
|
2
|
+
|
|
3
|
+
declare type UseCase = 'UserTaskList' | 'UserTaskForm' | 'WorkflowList' | 'WorkflowPage';
|
|
4
|
+
declare enum UiUriType {
|
|
5
|
+
External = "EXTERNAL",
|
|
6
|
+
WebpackMfReact = "WEBPACK_MF_REACT"
|
|
7
|
+
}
|
|
8
|
+
interface ModuleDefinition {
|
|
9
|
+
workflowModuleId: string;
|
|
10
|
+
uiUriType: UiUriType;
|
|
11
|
+
uiUri: string;
|
|
12
|
+
}
|
|
13
|
+
interface TasklistCellProps {
|
|
14
|
+
bpmnProcessId: string;
|
|
15
|
+
taskDefinition: string;
|
|
16
|
+
path: string;
|
|
17
|
+
}
|
|
18
|
+
interface WorkflowCellProps {
|
|
19
|
+
bpmnProcessId: string;
|
|
20
|
+
path: string;
|
|
21
|
+
}
|
|
22
|
+
interface Module {
|
|
23
|
+
moduleId: string;
|
|
24
|
+
workflowModuleId: string;
|
|
25
|
+
retry?: (callback?: () => void) => void;
|
|
26
|
+
buildVersion?: string;
|
|
27
|
+
buildTimestamp?: Date;
|
|
28
|
+
userTaskListColumns?: ColumnsOfUserTaskFunction;
|
|
29
|
+
workflowListColumns?: ColumnsOfWorkflowFunction;
|
|
30
|
+
UserTaskForm?: UserTaskForm;
|
|
31
|
+
UserTaskListCell?: UserTaskListCell;
|
|
32
|
+
WorkflowListCell?: WorkflowListCell;
|
|
33
|
+
WorkflowPage?: WorkflowPage;
|
|
34
|
+
}
|
|
35
|
+
declare const attachScript: (webpackModuleId: string, url: string) => Promise<boolean> | Promise<HTMLScriptElement>;
|
|
36
|
+
declare const detachScript: (webpackModuleId: string) => void;
|
|
37
|
+
declare const useFederationModule: (moduleDefinition: ModuleDefinition | undefined, useCase: UseCase) => Module | undefined;
|
|
38
|
+
declare const useFederationModules: (moduleDefinitions: ModuleDefinition[] | undefined, useCase: UseCase) => Module[] | undefined;
|
|
39
|
+
|
|
40
|
+
export { Module, ModuleDefinition, TasklistCellProps, UiUriType, UseCase, WorkflowCellProps, attachScript, detachScript, useFederationModule, useFederationModules };
|