@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.
Files changed (47) hide show
  1. package/README.md +1 -0
  2. package/dist/chunk-YH4NJHER.js +58 -0
  3. package/dist/components/ListCell.d.ts +27 -0
  4. package/dist/components/ListCell.js +123 -0
  5. package/dist/components/ListColumnHeader.d.ts +22 -0
  6. package/dist/components/ListColumnHeader.js +135 -0
  7. package/dist/components/ListOfTasks.d.ts +35 -0
  8. package/dist/components/ListOfTasks.js +1327 -0
  9. package/dist/components/ListOfWorkflows.d.ts +36 -0
  10. package/dist/components/ListOfWorkflows.js +974 -0
  11. package/dist/components/NoElementGivenByModule.d.ts +10 -0
  12. package/dist/components/NoElementGivenByModule.js +54 -0
  13. package/dist/components/NoUserTaskGiven.d.ts +10 -0
  14. package/dist/components/NoUserTaskGiven.js +23 -0
  15. package/dist/components/NoWorkflowGiven.d.ts +10 -0
  16. package/dist/components/NoWorkflowGiven.js +22 -0
  17. package/dist/components/SearchableAndSortableUpdatingList.d.ts +49 -0
  18. package/dist/components/SearchableAndSortableUpdatingList.js +200 -0
  19. package/dist/components/SnapScrolling.d.ts +15 -0
  20. package/dist/components/SnapScrolling.js +17 -0
  21. package/dist/components/SnapScrollingDataTable.d.ts +17 -0
  22. package/dist/components/SnapScrollingDataTable.js +113 -0
  23. package/dist/components/User.d.ts +11 -0
  24. package/dist/components/User.js +39 -0
  25. package/dist/components/UserAvatar.d.ts +12 -0
  26. package/dist/components/UserAvatar.js +133 -0
  27. package/dist/components/UserTaskPage.d.ts +24 -0
  28. package/dist/components/UserTaskPage.js +121 -0
  29. package/dist/components/WorkflowPage.d.ts +16 -0
  30. package/dist/components/WorkflowPage.js +124 -0
  31. package/dist/components/index.d.ts +25 -0
  32. package/dist/components/index.js +13 -0
  33. package/dist/index.d.ts +25 -0
  34. package/dist/index.js +3 -0
  35. package/dist/types/apis.d.ts +50 -0
  36. package/dist/types/apis.js +0 -0
  37. package/dist/types/index.d.ts +7 -0
  38. package/dist/types/index.js +3 -0
  39. package/dist/types/lists.d.ts +12 -0
  40. package/dist/types/lists.js +0 -0
  41. package/dist/types/navigate.d.ts +6 -0
  42. package/dist/types/navigate.js +0 -0
  43. package/dist/utils/index.d.ts +2 -0
  44. package/dist/utils/index.js +1 -0
  45. package/dist/utils/module-federation.d.ts +40 -0
  46. package/dist/utils/module-federation.js +182 -0
  47. 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";
@@ -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,3 @@
1
+ export * from "./components/index.js";
2
+ export * from "./utils/index.js";
3
+ export * from "./types/index.js";
@@ -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,3 @@
1
+ export * from "./navigate.js";
2
+ export * from "./apis.js";
3
+ export * from "./lists.js";
@@ -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,2 @@
1
+ export { Module, ModuleDefinition, TasklistCellProps, UiUriType, UseCase, WorkflowCellProps, attachScript, detachScript, useFederationModule, useFederationModules } from './module-federation.js';
2
+ import '@vanillabp/bc-shared';
@@ -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 };