@ram_28/kf-ai-sdk 2.0.1 → 2.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 +36 -39
- package/dist/BaseField-B6da88U7.js +40 -0
- package/dist/BaseField-Drp0-OxL.cjs +1 -0
- package/dist/api/client.d.ts +7 -0
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/metadata.d.ts +26 -22
- package/dist/api/metadata.d.ts.map +1 -1
- package/dist/api.cjs +1 -1
- package/dist/api.mjs +3 -3
- package/dist/auth.cjs +1 -1
- package/dist/auth.mjs +2 -2
- package/dist/base-types.d.ts +1 -1
- package/dist/base-types.d.ts.map +1 -1
- package/dist/bdo/core/BaseBdo.d.ts +12 -20
- package/dist/bdo/core/BaseBdo.d.ts.map +1 -1
- package/dist/bdo/core/Item.d.ts +8 -44
- package/dist/bdo/core/Item.d.ts.map +1 -1
- package/dist/bdo/core/types.d.ts +124 -41
- package/dist/bdo/core/types.d.ts.map +1 -1
- package/dist/bdo/fields/ArrayField.d.ts +5 -4
- package/dist/bdo/fields/ArrayField.d.ts.map +1 -1
- package/dist/bdo/fields/BaseField.d.ts +14 -19
- package/dist/bdo/fields/BaseField.d.ts.map +1 -1
- package/dist/bdo/fields/BooleanField.d.ts +3 -4
- package/dist/bdo/fields/BooleanField.d.ts.map +1 -1
- package/dist/bdo/fields/DateField.d.ts +3 -4
- package/dist/bdo/fields/DateField.d.ts.map +1 -1
- package/dist/bdo/fields/DateTimeField.d.ts +5 -4
- package/dist/bdo/fields/DateTimeField.d.ts.map +1 -1
- package/dist/bdo/fields/FileField.d.ts +18 -0
- package/dist/bdo/fields/FileField.d.ts.map +1 -0
- package/dist/bdo/fields/NumberField.d.ts +6 -4
- package/dist/bdo/fields/NumberField.d.ts.map +1 -1
- package/dist/bdo/fields/ObjectField.d.ts +5 -4
- package/dist/bdo/fields/ObjectField.d.ts.map +1 -1
- package/dist/bdo/fields/ReferenceField.d.ts +13 -14
- package/dist/bdo/fields/ReferenceField.d.ts.map +1 -1
- package/dist/bdo/fields/SelectField.d.ts +9 -16
- package/dist/bdo/fields/SelectField.d.ts.map +1 -1
- package/dist/bdo/fields/StringField.d.ts +6 -4
- package/dist/bdo/fields/StringField.d.ts.map +1 -1
- package/dist/bdo/fields/TextAreaField.d.ts +1 -18
- package/dist/bdo/fields/TextAreaField.d.ts.map +1 -1
- package/dist/bdo/fields/TextField.d.ts +22 -0
- package/dist/bdo/fields/TextField.d.ts.map +1 -0
- package/dist/bdo/fields/UserField.d.ts +20 -0
- package/dist/bdo/fields/UserField.d.ts.map +1 -0
- package/dist/bdo/fields/index.d.ts +5 -2
- package/dist/bdo/fields/index.d.ts.map +1 -1
- package/dist/bdo/index.d.ts +2 -2
- package/dist/bdo/index.d.ts.map +1 -1
- package/dist/bdo.cjs +1 -1
- package/dist/bdo.d.ts +1 -5
- package/dist/bdo.d.ts.map +1 -1
- package/dist/bdo.mjs +286 -243
- package/dist/bdo.types.d.ts +2 -3
- package/dist/bdo.types.d.ts.map +1 -1
- package/dist/{client-BIkaIr2y.js → client-BULEEaCP.js} +84 -79
- package/dist/client-DtPpfJc1.cjs +1 -0
- package/dist/components/hooks/useFilter/useFilter.d.ts.map +1 -1
- package/dist/components/hooks/useForm/createItemProxy.d.ts.map +1 -1
- package/dist/components/hooks/useForm/createResolver.d.ts +12 -2
- package/dist/components/hooks/useForm/createResolver.d.ts.map +1 -1
- package/dist/components/hooks/useForm/index.d.ts +1 -1
- package/dist/components/hooks/useForm/index.d.ts.map +1 -1
- package/dist/components/hooks/useForm/types.d.ts +77 -8
- package/dist/components/hooks/useForm/types.d.ts.map +1 -1
- package/dist/components/hooks/useForm/useDraftInteraction.d.ts +26 -0
- package/dist/components/hooks/useForm/useDraftInteraction.d.ts.map +1 -0
- package/dist/components/hooks/useForm/useForm.d.ts +2 -27
- package/dist/components/hooks/useForm/useForm.d.ts.map +1 -1
- package/dist/components/hooks/useTable/useTable.d.ts.map +1 -1
- package/dist/{constants-DaX7GLgl.js → constants-BQrBcCON.js} +37 -13
- package/dist/constants-D0J69if5.cjs +1 -0
- package/dist/error-handling-CAoD0Kwb.cjs +1 -0
- package/dist/error-handling-CrhTtD88.js +14 -0
- package/dist/filter.cjs +1 -1
- package/dist/filter.mjs +2 -2
- package/dist/form.cjs +1 -1
- package/dist/form.d.ts +1 -1
- package/dist/form.d.ts.map +1 -1
- package/dist/form.mjs +333 -1142
- package/dist/form.types.d.ts +1 -1
- package/dist/form.types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm-Cj63v5ny.js +1014 -0
- package/dist/index.esm-DuwT11sx.cjs +1 -0
- package/dist/{metadata-Bz8zJqC1.cjs → metadata-BJWukIqS.cjs} +1 -1
- package/dist/{metadata-VbQzyD2C.js → metadata-CJuFxytC.js} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.mjs +116 -122
- package/dist/types/base-fields.d.ts +24 -59
- package/dist/types/base-fields.d.ts.map +1 -1
- package/dist/types/constants.d.ts +2 -2
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/useFilter-Bg0jvIL6.cjs +1 -0
- package/dist/useFilter-DPNLKY3H.js +118 -0
- package/dist/utils/formatting.d.ts +10 -1
- package/dist/utils/formatting.d.ts.map +1 -1
- package/dist/workflow/Activity.d.ts +85 -0
- package/dist/workflow/Activity.d.ts.map +1 -0
- package/dist/workflow/ActivityInstance.d.ts +96 -0
- package/dist/workflow/ActivityInstance.d.ts.map +1 -0
- package/dist/workflow/client.d.ts +39 -0
- package/dist/workflow/client.d.ts.map +1 -0
- package/dist/workflow/components/useActivityForm/createActivityItemProxy.d.ts +16 -0
- package/dist/workflow/components/useActivityForm/createActivityItemProxy.d.ts.map +1 -0
- package/dist/workflow/components/useActivityForm/createActivityResolver.d.ts +22 -0
- package/dist/workflow/components/useActivityForm/createActivityResolver.d.ts.map +1 -0
- package/dist/workflow/components/useActivityForm/index.d.ts +3 -0
- package/dist/workflow/components/useActivityForm/index.d.ts.map +1 -0
- package/dist/workflow/components/useActivityForm/types.d.ts +80 -0
- package/dist/workflow/components/useActivityForm/types.d.ts.map +1 -0
- package/dist/workflow/components/useActivityForm/useActivityForm.d.ts +4 -0
- package/dist/workflow/components/useActivityForm/useActivityForm.d.ts.map +1 -0
- package/dist/workflow/index.d.ts +8 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/types.d.ts +53 -0
- package/dist/workflow/types.d.ts.map +1 -0
- package/dist/workflow.cjs +1 -0
- package/dist/workflow.d.ts +8 -0
- package/dist/workflow.d.ts.map +1 -0
- package/dist/workflow.mjs +565 -0
- package/dist/workflow.types.cjs +1 -0
- package/dist/workflow.types.d.ts +2 -0
- package/dist/workflow.types.d.ts.map +1 -0
- package/dist/workflow.types.mjs +1 -0
- package/docs/api.md +140 -572
- package/docs/bdo.md +742 -0
- package/docs/useAuth.md +10 -4
- package/docs/useFilter.md +40 -40
- package/docs/useForm.md +91 -62
- package/docs/useTable.md +38 -38
- package/docs/workflow.md +703 -0
- package/package.json +21 -1
- package/sdk/api/client.ts +77 -57
- package/sdk/api/index.ts +1 -0
- package/sdk/api/metadata.ts +22 -20
- package/sdk/base-types.ts +5 -9
- package/sdk/bdo/core/BaseBdo.ts +23 -38
- package/sdk/bdo/core/Item.ts +34 -56
- package/sdk/bdo/core/types.ts +147 -45
- package/sdk/bdo/fields/ArrayField.ts +9 -5
- package/sdk/bdo/fields/BaseField.ts +19 -29
- package/sdk/bdo/fields/BooleanField.ts +4 -5
- package/sdk/bdo/fields/DateField.ts +4 -5
- package/sdk/bdo/fields/DateTimeField.ts +9 -5
- package/sdk/bdo/fields/FileField.ts +39 -0
- package/sdk/bdo/fields/NumberField.ts +8 -5
- package/sdk/bdo/fields/ObjectField.ts +9 -5
- package/sdk/bdo/fields/ReferenceField.ts +22 -28
- package/sdk/bdo/fields/SelectField.ts +13 -26
- package/sdk/bdo/fields/StringField.ts +10 -5
- package/sdk/bdo/fields/TextAreaField.ts +3 -32
- package/sdk/bdo/fields/TextField.ts +42 -0
- package/sdk/bdo/fields/UserField.ts +52 -0
- package/sdk/bdo/fields/index.ts +5 -2
- package/sdk/bdo/index.ts +19 -4
- package/sdk/bdo.ts +4 -31
- package/sdk/bdo.types.ts +26 -21
- package/sdk/components/hooks/useFilter/useFilter.ts +13 -30
- package/sdk/components/hooks/useForm/createItemProxy.ts +47 -11
- package/sdk/components/hooks/useForm/createResolver.ts +65 -6
- package/sdk/components/hooks/useForm/index.ts +4 -0
- package/sdk/components/hooks/useForm/types.ts +92 -9
- package/sdk/components/hooks/useForm/useDraftInteraction.ts +251 -0
- package/sdk/components/hooks/useForm/useForm.ts +132 -60
- package/sdk/components/hooks/useTable/useTable.ts +10 -2
- package/sdk/form.ts +1 -12
- package/sdk/form.types.ts +1 -0
- package/sdk/index.ts +9 -3
- package/sdk/types/base-fields.ts +28 -72
- package/sdk/types/constants.ts +2 -2
- package/sdk/utils/formatting.ts +13 -1
- package/sdk/workflow/Activity.ts +181 -0
- package/sdk/workflow/ActivityInstance.ts +339 -0
- package/sdk/workflow/client.ts +208 -0
- package/sdk/workflow/components/useActivityForm/createActivityItemProxy.ts +126 -0
- package/sdk/workflow/components/useActivityForm/createActivityResolver.ts +61 -0
- package/sdk/workflow/components/useActivityForm/index.ts +5 -0
- package/sdk/workflow/components/useActivityForm/types.ts +166 -0
- package/sdk/workflow/components/useActivityForm/useActivityForm.ts +386 -0
- package/sdk/workflow/index.ts +20 -0
- package/sdk/workflow/types.ts +84 -0
- package/sdk/workflow.ts +25 -0
- package/sdk/workflow.types.ts +11 -0
- package/dist/client-DxjRcEtN.cjs +0 -1
- package/dist/constants-C49b9Exc.cjs +0 -1
- package/dist/useFilter-DzpP_ag0.cjs +0 -1
- package/dist/useFilter-H5bgAZQF.js +0 -120
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { useRef as k, useMemo as h, useState as O, useCallback as a } from "react";
|
|
2
|
+
const c = (r) => "Condition" in r, H = (r) => "LHSField" in r, x = (r) => () => {
|
|
3
|
+
const o = Math.random().toString(36).substring(2, 9);
|
|
4
|
+
return `filter_${Date.now()}_${o}_${++r.current}`;
|
|
5
|
+
}, B = (r, o) => r.id ? r : { ...r, id: o() }, g = (r, o) => r.map((t) => {
|
|
6
|
+
const n = B(t, o);
|
|
7
|
+
return c(n) ? {
|
|
8
|
+
...n,
|
|
9
|
+
Condition: g(n.Condition, o)
|
|
10
|
+
} : n;
|
|
11
|
+
}), G = (r) => r.map((o) => {
|
|
12
|
+
if (c(o)) {
|
|
13
|
+
const { id: d, ...f } = o;
|
|
14
|
+
return {
|
|
15
|
+
...f,
|
|
16
|
+
Condition: G(o.Condition)
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
const { id: t, ...n } = o;
|
|
20
|
+
return n;
|
|
21
|
+
}), v = (r, o) => {
|
|
22
|
+
for (const t of r) {
|
|
23
|
+
if (t.id === o)
|
|
24
|
+
return t;
|
|
25
|
+
if (c(t)) {
|
|
26
|
+
const n = v(t.Condition, o);
|
|
27
|
+
if (n) return n;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}, p = (r, o, t) => r.map((n) => n.id === o ? t(n) : c(n) ? {
|
|
31
|
+
...n,
|
|
32
|
+
Condition: p(n.Condition, o, t)
|
|
33
|
+
} : n), I = (r, o) => r.filter((t) => t.id !== o).map((t) => c(t) ? {
|
|
34
|
+
...t,
|
|
35
|
+
Condition: I(t.Condition, o)
|
|
36
|
+
} : t), l = (r, o, t) => r.map((n) => n.id === o && c(n) ? {
|
|
37
|
+
...n,
|
|
38
|
+
Condition: [...n.Condition, t]
|
|
39
|
+
} : c(n) ? {
|
|
40
|
+
...n,
|
|
41
|
+
Condition: l(n.Condition, o, t)
|
|
42
|
+
} : n);
|
|
43
|
+
function L(r = {}) {
|
|
44
|
+
const o = k(0), t = h(() => x(o), []), [n, d] = O(
|
|
45
|
+
() => g(r.conditions || [], t)
|
|
46
|
+
), [f, S] = O(
|
|
47
|
+
r.operator || "And"
|
|
48
|
+
), w = h(() => {
|
|
49
|
+
if (n.length !== 0)
|
|
50
|
+
return {
|
|
51
|
+
Operator: f,
|
|
52
|
+
Condition: G(n)
|
|
53
|
+
};
|
|
54
|
+
}, [n, f]), F = n.length > 0, R = a(
|
|
55
|
+
(i, s) => {
|
|
56
|
+
const u = t(), e = { ...i, id: u };
|
|
57
|
+
return d(s ? (C) => l(C, s, e) : (C) => [...C, e]), u;
|
|
58
|
+
},
|
|
59
|
+
[]
|
|
60
|
+
), T = a(
|
|
61
|
+
(i, s) => {
|
|
62
|
+
const u = t(), e = {
|
|
63
|
+
id: u,
|
|
64
|
+
Operator: i,
|
|
65
|
+
Condition: []
|
|
66
|
+
};
|
|
67
|
+
return d(s ? (C) => l(C, s, e) : (C) => [...C, e]), u;
|
|
68
|
+
},
|
|
69
|
+
[]
|
|
70
|
+
), _ = a(
|
|
71
|
+
(i, s) => {
|
|
72
|
+
d(
|
|
73
|
+
(u) => p(u, i, (e) => c(e) ? e : { ...e, ...s })
|
|
74
|
+
);
|
|
75
|
+
},
|
|
76
|
+
[]
|
|
77
|
+
), $ = a(
|
|
78
|
+
(i, s) => {
|
|
79
|
+
d(
|
|
80
|
+
(u) => p(u, i, (e) => c(e) ? { ...e, Operator: s } : e)
|
|
81
|
+
);
|
|
82
|
+
},
|
|
83
|
+
[]
|
|
84
|
+
), b = a((i) => {
|
|
85
|
+
d((s) => I(s, i));
|
|
86
|
+
}, []), y = a(
|
|
87
|
+
(i) => v(n, i),
|
|
88
|
+
[n]
|
|
89
|
+
), A = a(() => {
|
|
90
|
+
d([]);
|
|
91
|
+
}, []), M = a((i) => {
|
|
92
|
+
S(i);
|
|
93
|
+
}, []);
|
|
94
|
+
return {
|
|
95
|
+
// State
|
|
96
|
+
operator: f,
|
|
97
|
+
items: n,
|
|
98
|
+
payload: w,
|
|
99
|
+
hasConditions: F,
|
|
100
|
+
// Add operations
|
|
101
|
+
addCondition: R,
|
|
102
|
+
addConditionGroup: T,
|
|
103
|
+
// Update operations
|
|
104
|
+
updateCondition: _,
|
|
105
|
+
updateGroupOperator: $,
|
|
106
|
+
// Remove & access
|
|
107
|
+
removeCondition: b,
|
|
108
|
+
getCondition: y,
|
|
109
|
+
// Utility
|
|
110
|
+
clearAllConditions: A,
|
|
111
|
+
setRootOperator: M
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
export {
|
|
115
|
+
c as a,
|
|
116
|
+
H as i,
|
|
117
|
+
L as u
|
|
118
|
+
};
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
/** Currency value format - supports both object and string representations */
|
|
2
|
+
type CurrencyValueType = {
|
|
3
|
+
value: number;
|
|
4
|
+
currency: string;
|
|
5
|
+
} | string;
|
|
6
|
+
/** Valid JSON value types */
|
|
7
|
+
type JSONValueType = string | number | boolean | null | {
|
|
8
|
+
[key: string]: JSONValueType;
|
|
9
|
+
} | JSONValueType[];
|
|
2
10
|
/**
|
|
3
11
|
* Data formatting utilities for display and conversion
|
|
4
12
|
*/
|
|
@@ -49,4 +57,5 @@ export declare function formatTextArea(value: string, maxLines?: number): string
|
|
|
49
57
|
* Generic formatter that automatically detects field type and formats accordingly
|
|
50
58
|
*/
|
|
51
59
|
export declare function formatFieldValue(value: any, fieldType?: 'id' | 'string' | 'textarea' | 'number' | 'boolean' | 'date' | 'datetime' | 'currency' | 'json' | 'array'): string;
|
|
60
|
+
export {};
|
|
52
61
|
//# sourceMappingURL=formatting.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../sdk/utils/formatting.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../sdk/utils/formatting.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,KAAK,iBAAiB,GAClB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACnC,MAAM,CAAC;AAEX,6BAA6B;AAC7B,KAAK,aAAa,GACd,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;CAAE,GAChC,aAAa,EAAE,CAAC;AAEpB;;GAEG;AAEH;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAc/D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAcrE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,GAAE,OAAO,GAAG,QAAQ,GAAG,MAAiB,GAAG,MAAM,CAY7F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,GAAE,OAAO,GAAG,QAAQ,GAAG,MAAiB,GAAG,MAAM,CAYjG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,MAAU,GAAG,MAAM,CAMzE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CAM3E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC/B,SAAS,GAAE,MAAa,GACvB,MAAM,CAUR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAQT;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,MAAW,GAAG,MAAM,CAU5E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAYvE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,GAAG,EACV,SAAS,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GACpH,MAAM,CAsCR"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { ActivityInstanceType } from "./ActivityInstance";
|
|
2
|
+
import type { ActivityInstanceFieldsType, ActivityOperations } from "./types";
|
|
3
|
+
import type { ListOptionsType, ListResponseType, MetricOptionsType, MetricResponseType } from "../types/common";
|
|
4
|
+
import { BaseField } from "../bdo/fields/BaseField";
|
|
5
|
+
/**
|
|
6
|
+
* Abstract base class for workflow activities.
|
|
7
|
+
*
|
|
8
|
+
* Extend this class to define typed activity input fields.
|
|
9
|
+
* Each activity is a typed class with field definitions and data operations.
|
|
10
|
+
*
|
|
11
|
+
* @template TEntity - The full entity type with all fields
|
|
12
|
+
* @template TEditable - Fields the user can edit
|
|
13
|
+
* @template TReadonly - Fields that are read-only (computed / system)
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* class EmployeeInputActivity extends Activity<
|
|
18
|
+
* EmployeeInputEntityType,
|
|
19
|
+
* EmployeeInputEditable,
|
|
20
|
+
* EmployeeInputReadonly
|
|
21
|
+
* > {
|
|
22
|
+
* readonly meta = {
|
|
23
|
+
* businessProcessId: "SimpleLeaveProcess",
|
|
24
|
+
* activityId: "EMPLOYEE_INPUT",
|
|
25
|
+
* };
|
|
26
|
+
*
|
|
27
|
+
* readonly StartDate = new DateTimeField({ id: "StartDate", label: "Start Date" });
|
|
28
|
+
* readonly EndDate = new DateTimeField({ id: "EndDate", label: "End Date" });
|
|
29
|
+
* readonly LeaveDays = new NumberField({ id: "LeaveDays", label: "Leave Days", editable: false });
|
|
30
|
+
* }
|
|
31
|
+
*
|
|
32
|
+
* const activity = new EmployeeInputActivity();
|
|
33
|
+
* const items = await activity.getInstanceList({ Page: 1, PageSize: 10 });
|
|
34
|
+
* const instance = await activity.getInstance("inst_123");
|
|
35
|
+
* instance.StartDate.get(); // typed value
|
|
36
|
+
* instance.StartDate.set("2026-03-01");
|
|
37
|
+
* await instance.update({ StartDate: "2026-03-01" });
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare abstract class Activity<TEntity extends Record<string, unknown>, TEditable extends Record<string, unknown> = TEntity, TReadonly extends Record<string, unknown> = {}> {
|
|
41
|
+
/**
|
|
42
|
+
* Activity metadata — identifies the business process and activity
|
|
43
|
+
*/
|
|
44
|
+
abstract readonly meta: {
|
|
45
|
+
readonly businessProcessId: string;
|
|
46
|
+
readonly activityId: string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Get ActivityOperations for this activity.
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
private _ops;
|
|
53
|
+
private _fieldsCache;
|
|
54
|
+
/**
|
|
55
|
+
* Discover BaseField instances from subclass properties.
|
|
56
|
+
* @internal
|
|
57
|
+
*/
|
|
58
|
+
private _discoverFields;
|
|
59
|
+
/**
|
|
60
|
+
* List activity instances with optional filtering/pagination.
|
|
61
|
+
*/
|
|
62
|
+
getInstanceList(options?: ListOptionsType): Promise<ListResponseType<ActivityInstanceFieldsType & TEntity>>;
|
|
63
|
+
/**
|
|
64
|
+
* Get aggregated metrics for activity instances.
|
|
65
|
+
*/
|
|
66
|
+
instanceMetrics(options: Omit<MetricOptionsType, "Type">): Promise<MetricResponseType>;
|
|
67
|
+
/**
|
|
68
|
+
* Get a typed ActivityInstance with field accessors and persistence methods.
|
|
69
|
+
*
|
|
70
|
+
* @param instanceId - The activity instance identifier
|
|
71
|
+
* @returns ActivityInstance with typed field accessors
|
|
72
|
+
*/
|
|
73
|
+
getInstance(instanceId: string): Promise<ActivityInstanceType<TEntity, TEditable, TReadonly>>;
|
|
74
|
+
/**
|
|
75
|
+
* Get discovered fields — used internally by useActivityForm hook.
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
_getFields(): Record<string, BaseField<unknown>>;
|
|
79
|
+
/**
|
|
80
|
+
* Get ActivityOperations — used internally by useActivityForm hook.
|
|
81
|
+
* @internal
|
|
82
|
+
*/
|
|
83
|
+
_getOps(): ActivityOperations<TEntity>;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=Activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Activity.d.ts","sourceRoot":"","sources":["../../sdk/workflow/Activity.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,8BAAsB,QAAQ,CAC5B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAEnD,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE;IAE9C;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;QACtB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;QACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,CAAC;IAMF;;;OAGG;IACH,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,YAAY,CAAmD;IAEvE;;;OAGG;IACH,OAAO,CAAC,eAAe;IAmBvB;;OAEG;IACG,eAAe,CACnB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,gBAAgB,CAAC,0BAA0B,GAAG,OAAO,CAAC,CAAC;IAIlE;;OAEG;IACG,eAAe,CACnB,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GACvC,OAAO,CAAC,kBAAkB,CAAC;IAI9B;;;;;OAKG;IACG,WAAW,CACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAgB/D;;;OAGG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAIhD;;;OAGG;IACH,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC;CAGvC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { ValidationResultType, BaseFieldMetaType } from "../bdo/core/types";
|
|
2
|
+
import type { BaseField } from "../bdo/fields/BaseField";
|
|
3
|
+
import type { ActivityOperations, ActivityProgressType } from "./types";
|
|
4
|
+
import type { CreateUpdateResponseType } from "../types/common";
|
|
5
|
+
/**
|
|
6
|
+
* Editable field accessor — has get(), set(), validate(), meta
|
|
7
|
+
*/
|
|
8
|
+
export interface EditableFieldAccessor<T> {
|
|
9
|
+
readonly label: string;
|
|
10
|
+
readonly required: boolean;
|
|
11
|
+
readonly readOnly: boolean;
|
|
12
|
+
readonly defaultValue: unknown;
|
|
13
|
+
readonly meta: BaseFieldMetaType;
|
|
14
|
+
get(): T | undefined;
|
|
15
|
+
set(value: T): void;
|
|
16
|
+
validate(): ValidationResultType;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Readonly field accessor — has get(), validate(), meta (NO set)
|
|
20
|
+
*/
|
|
21
|
+
export interface ReadonlyFieldAccessor<T> {
|
|
22
|
+
readonly label: string;
|
|
23
|
+
readonly required: boolean;
|
|
24
|
+
readonly readOnly: boolean;
|
|
25
|
+
readonly defaultValue: unknown;
|
|
26
|
+
readonly meta: BaseFieldMetaType;
|
|
27
|
+
get(): T | undefined;
|
|
28
|
+
validate(): ValidationResultType;
|
|
29
|
+
}
|
|
30
|
+
type EditableAccessors<T> = {
|
|
31
|
+
[K in keyof T]: EditableFieldAccessor<T[K]>;
|
|
32
|
+
};
|
|
33
|
+
type ReadonlyAccessors<T> = {
|
|
34
|
+
[K in keyof T]: ReadonlyFieldAccessor<T[K]>;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Full ActivityInstance type with field accessors and persistence methods.
|
|
38
|
+
*/
|
|
39
|
+
export type ActivityInstanceType<TEntity extends Record<string, unknown>, TEditable extends Record<string, unknown> = TEntity, TReadonly extends Record<string, unknown> = {}> = ActivityInstance<TEntity, TEditable> & EditableAccessors<TEditable> & ReadonlyAccessors<TReadonly> & {
|
|
40
|
+
readonly _id: string;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* ActivityInstance wraps a single activity instance record with:
|
|
44
|
+
* - BDO Item-style field accessors (get/set/meta/validate)
|
|
45
|
+
* - Workflow persistence methods (update, save, complete, progress)
|
|
46
|
+
*
|
|
47
|
+
* @template TEntity - Full entity type (all fields)
|
|
48
|
+
* @template TEditable - Editable subset of fields
|
|
49
|
+
*/
|
|
50
|
+
export declare class ActivityInstance<TEntity extends Record<string, unknown>, TEditable extends Record<string, unknown> = TEntity> {
|
|
51
|
+
readonly _id: string;
|
|
52
|
+
private readonly _data;
|
|
53
|
+
private readonly _ops;
|
|
54
|
+
private readonly _fields;
|
|
55
|
+
private readonly _accessorCache;
|
|
56
|
+
constructor(ops: ActivityOperations<TEntity>, instanceId: string, data: Record<string, unknown>, fields: Record<string, BaseField<unknown>>);
|
|
57
|
+
/**
|
|
58
|
+
* Convert the instance to a plain object
|
|
59
|
+
*/
|
|
60
|
+
toJSON(): Partial<TEntity>;
|
|
61
|
+
/**
|
|
62
|
+
* Validate all fields and return combined results
|
|
63
|
+
*/
|
|
64
|
+
validate(): ValidationResultType;
|
|
65
|
+
/**
|
|
66
|
+
* Regular update — calls ActivityOperations.update()
|
|
67
|
+
*/
|
|
68
|
+
update(data: Partial<TEditable>): Promise<CreateUpdateResponseType>;
|
|
69
|
+
/**
|
|
70
|
+
* Commit draft — calls ActivityOperations.draftEnd()
|
|
71
|
+
*/
|
|
72
|
+
save(data: Partial<TEditable>): Promise<CreateUpdateResponseType>;
|
|
73
|
+
/**
|
|
74
|
+
* Complete the activity — calls ActivityOperations.complete()
|
|
75
|
+
*/
|
|
76
|
+
complete(): Promise<CreateUpdateResponseType>;
|
|
77
|
+
/**
|
|
78
|
+
* Get activity progress — calls ActivityOperations.progress()
|
|
79
|
+
*/
|
|
80
|
+
progress(): Promise<ActivityProgressType>;
|
|
81
|
+
/** @internal */
|
|
82
|
+
_getAccessor(fieldId: string): EditableFieldAccessor<unknown> | ReadonlyFieldAccessor<unknown>;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Creates an ActivityInstance with Proxy-based field accessors.
|
|
86
|
+
* Fields are discovered from the provided fields map.
|
|
87
|
+
*
|
|
88
|
+
* @param ops - ActivityOperations for API calls
|
|
89
|
+
* @param instanceId - The activity instance ID
|
|
90
|
+
* @param data - Raw instance data from the API
|
|
91
|
+
* @param fields - Map of field name -> BaseField instance
|
|
92
|
+
* @returns Proxied ActivityInstance with typed field accessors
|
|
93
|
+
*/
|
|
94
|
+
export declare function createActivityInstance<TEntity extends Record<string, unknown>, TEditable extends Record<string, unknown> = TEntity, TReadonly extends Record<string, unknown> = {}>(ops: ActivityOperations<TEntity>, instanceId: string, data: TEntity, fields: Record<string, BaseField<unknown>>): ActivityInstanceType<TEntity, TEditable, TReadonly>;
|
|
95
|
+
export {};
|
|
96
|
+
//# sourceMappingURL=ActivityInstance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityInstance.d.ts","sourceRoot":"","sources":["../../sdk/workflow/ActivityInstance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ActivityOperations, WorkflowStartResponseType } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Workflow client for Business Process / Activity operations.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* const wf = new Workflow<LeaveType>("SimpleLeaveProcess");
|
|
8
|
+
*
|
|
9
|
+
* // Start workflow
|
|
10
|
+
* const { activityId, activityInstanceId } = await wf.start();
|
|
11
|
+
*
|
|
12
|
+
* // Get activity operations
|
|
13
|
+
* const act = wf.activity("EMPLOYEE_INPUT");
|
|
14
|
+
*
|
|
15
|
+
* // Instance operations (instanceId as first param)
|
|
16
|
+
* await act.read("inst_123");
|
|
17
|
+
* await act.draftStart("inst_123", data);
|
|
18
|
+
* await act.draftEnd("inst_123", data);
|
|
19
|
+
* await act.complete("inst_123");
|
|
20
|
+
*
|
|
21
|
+
* // List operations
|
|
22
|
+
* await act.list({ Page: 1, PageSize: 10 });
|
|
23
|
+
* await act.metric({ Metric: [...] });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare class Workflow<T = any> {
|
|
27
|
+
private bp_id;
|
|
28
|
+
constructor(bp_id: string);
|
|
29
|
+
/**
|
|
30
|
+
* Start a new workflow instance
|
|
31
|
+
*/
|
|
32
|
+
start(): Promise<WorkflowStartResponseType>;
|
|
33
|
+
/**
|
|
34
|
+
* Get all operations for a specific activity
|
|
35
|
+
* @param activity_id - Activity identifier
|
|
36
|
+
*/
|
|
37
|
+
activity(activity_id: string): ActivityOperations<T>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../sdk/workflow/client.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAEV,kBAAkB,EAElB,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,QAAQ,CAAC,CAAC,GAAG,GAAG;IAC3B,OAAO,CAAC,KAAK,CAAS;gBAEV,KAAK,EAAE,MAAM;IAIzB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAgBjD;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC;CAiIrD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { UseFormReturn, FieldValues } from "react-hook-form";
|
|
2
|
+
import type { FormItemType } from "../../../components/hooks/useForm/types";
|
|
3
|
+
import type { Activity } from "../../Activity";
|
|
4
|
+
import type { ExtractActivityEditable, ExtractActivityReadonly } from "./types";
|
|
5
|
+
/**
|
|
6
|
+
* Creates a Proxy-based Item that delegates to RHF for state management.
|
|
7
|
+
*
|
|
8
|
+
* Key principle: Item has NO state. It's a view over RHF's state.
|
|
9
|
+
* Editable fields get set(), readonly fields do not.
|
|
10
|
+
*
|
|
11
|
+
* @param activity - The Activity instance for field metadata
|
|
12
|
+
* @param form - The RHF useForm return object
|
|
13
|
+
* @returns FormItemType proxy
|
|
14
|
+
*/
|
|
15
|
+
export declare function createActivityItemProxy<A extends Activity<any, any, any>>(activity: A, form: UseFormReturn<FieldValues>): FormItemType<ExtractActivityEditable<A>, ExtractActivityReadonly<A>>;
|
|
16
|
+
//# sourceMappingURL=createActivityItemProxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createActivityItemProxy.d.ts","sourceRoot":"","sources":["../../../../sdk/workflow/components/useActivityForm/createActivityItemProxy.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAQ,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGxE,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACvE,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,GAC/B,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC,CA2FtE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { FieldValues } from "react-hook-form";
|
|
2
|
+
import type { Activity } from "../../Activity";
|
|
3
|
+
/**
|
|
4
|
+
* Creates a React Hook Form resolver for Activity field validation.
|
|
5
|
+
*
|
|
6
|
+
* Validates only editable fields using BaseField.validate().
|
|
7
|
+
* Readonly fields (editable: false) are skipped.
|
|
8
|
+
*
|
|
9
|
+
* @param activity - The Activity instance with field definitions
|
|
10
|
+
* @returns RHF Resolver function
|
|
11
|
+
*/
|
|
12
|
+
export declare function createActivityResolver<A extends Activity<any, any, any>>(activity: A): (values: FieldValues, _context: any, options: any) => Promise<{
|
|
13
|
+
values: FieldValues;
|
|
14
|
+
errors: {};
|
|
15
|
+
} | {
|
|
16
|
+
values: {};
|
|
17
|
+
errors: Record<string, {
|
|
18
|
+
type: string;
|
|
19
|
+
message: string;
|
|
20
|
+
}>;
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=createActivityResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createActivityResolver.d.ts","sourceRoot":"","sources":["../../../../sdk/workflow/components/useActivityForm/createActivityResolver.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,QAAQ,EAAE,CAAC,IAGG,QAAQ,WAAW,EAAE,UAAU,GAAG,EAAE,SAAS,GAAG;;;;;;cACvB,MAAM;iBAAW,MAAM;;GAkC/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../sdk/workflow/components/useActivityForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { UseFormWatch, UseFormSetValue, UseFormGetValues, UseFormReset, UseFormTrigger, Control, FieldErrors } from "react-hook-form";
|
|
2
|
+
import type { Activity } from "../../Activity";
|
|
3
|
+
import type { HandleSubmitType, FormItemType, FormRegisterType, EditableFormFieldAccessorType, ReadonlyFormFieldAccessorType } from "../../../components/hooks/useForm/types";
|
|
4
|
+
export type { HandleSubmitType, FormItemType, FormRegisterType, EditableFormFieldAccessorType, ReadonlyFormFieldAccessorType, };
|
|
5
|
+
/** Extract TEntity from an Activity instance */
|
|
6
|
+
export type ExtractActivityEntity<A> = A extends Activity<infer E, any, any> ? E : never;
|
|
7
|
+
/** Extract TEditable from an Activity instance */
|
|
8
|
+
export type ExtractActivityEditable<A> = A extends Activity<any, infer E, any> ? E : never;
|
|
9
|
+
/** Extract TReadonly from an Activity instance */
|
|
10
|
+
export type ExtractActivityReadonly<A> = A extends Activity<any, any, infer R> ? R : never;
|
|
11
|
+
/** All accessible fields (editable + readonly) */
|
|
12
|
+
export type AllActivityFields<A> = ExtractActivityEditable<A> & ExtractActivityReadonly<A>;
|
|
13
|
+
/**
|
|
14
|
+
* useActivityForm hook options.
|
|
15
|
+
*
|
|
16
|
+
* The Activity instance already carries businessProcessId, activityId, and field definitions.
|
|
17
|
+
* Options only contain runtime configuration.
|
|
18
|
+
*/
|
|
19
|
+
export interface UseActivityFormOptions<A extends Activity<any, any, any>> {
|
|
20
|
+
/** Activity instance identifier */
|
|
21
|
+
activity_instance_id: string;
|
|
22
|
+
/** Default form values */
|
|
23
|
+
defaultValues?: Partial<ExtractActivityEditable<A>>;
|
|
24
|
+
/**
|
|
25
|
+
* Validation mode — controls when validation runs
|
|
26
|
+
* @default "onBlur"
|
|
27
|
+
*/
|
|
28
|
+
mode?: "onBlur" | "onChange" | "onSubmit" | "onTouched" | "all";
|
|
29
|
+
/**
|
|
30
|
+
* Whether to enable activity.read() on mount
|
|
31
|
+
* @default true
|
|
32
|
+
*/
|
|
33
|
+
enabled?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* useActivityForm hook return type — mirrors useForm return structure
|
|
37
|
+
*/
|
|
38
|
+
export interface UseActivityFormReturn<A extends Activity<any, any, any>> {
|
|
39
|
+
/** Item proxy with typed field accessors */
|
|
40
|
+
item: FormItemType<ExtractActivityEditable<A>, ExtractActivityReadonly<A>>;
|
|
41
|
+
/** The Activity instance */
|
|
42
|
+
activity: A;
|
|
43
|
+
/** Smart register with auto-disable for readonly fields */
|
|
44
|
+
register: FormRegisterType<ExtractActivityEditable<A>, ExtractActivityReadonly<A>>;
|
|
45
|
+
/** Handle form submission — calls activity.update() + activity.draftEnd() */
|
|
46
|
+
handleSubmit: HandleSubmitType<AllActivityFields<A>>;
|
|
47
|
+
/** Handle form completion — calls activity.complete() */
|
|
48
|
+
handleComplete: HandleSubmitType<AllActivityFields<A>>;
|
|
49
|
+
/** Watch field values */
|
|
50
|
+
watch: UseFormWatch<AllActivityFields<A>>;
|
|
51
|
+
/** Set field value programmatically */
|
|
52
|
+
setValue: UseFormSetValue<ExtractActivityEditable<A>>;
|
|
53
|
+
/** Get current field values */
|
|
54
|
+
getValues: UseFormGetValues<AllActivityFields<A>>;
|
|
55
|
+
/** Reset form to default values */
|
|
56
|
+
reset: UseFormReset<AllActivityFields<A>>;
|
|
57
|
+
/** Trigger validation for specific fields or all fields */
|
|
58
|
+
trigger: UseFormTrigger<AllActivityFields<A>>;
|
|
59
|
+
/** RHF control object (for Controller components) */
|
|
60
|
+
control: Control<AllActivityFields<A>>;
|
|
61
|
+
/** Form validation errors */
|
|
62
|
+
errors: FieldErrors<AllActivityFields<A>>;
|
|
63
|
+
/** Form is valid */
|
|
64
|
+
isValid: boolean;
|
|
65
|
+
/** Form has been modified */
|
|
66
|
+
isDirty: boolean;
|
|
67
|
+
/** Form is currently submitting (save or complete) */
|
|
68
|
+
isSubmitting: boolean;
|
|
69
|
+
/** Form submission was successful */
|
|
70
|
+
isSubmitSuccessful: boolean;
|
|
71
|
+
/** True during activity.read() */
|
|
72
|
+
isLoading: boolean;
|
|
73
|
+
/** Schema/data load error */
|
|
74
|
+
loadError: Error | null;
|
|
75
|
+
/** Any error active */
|
|
76
|
+
hasError: boolean;
|
|
77
|
+
/** Clear all form errors */
|
|
78
|
+
clearErrors: () => void;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../sdk/workflow/components/useActivityForm/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Activity } from "../../Activity";
|
|
2
|
+
import type { UseActivityFormOptions, UseActivityFormReturn } from "./types";
|
|
3
|
+
export declare function useActivityForm<A extends Activity<any, any, any>>(activity: A, options: UseActivityFormOptions<A>): UseActivityFormReturn<A>;
|
|
4
|
+
//# sourceMappingURL=useActivityForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useActivityForm.d.ts","sourceRoot":"","sources":["../../../../sdk/workflow/components/useActivityForm/useActivityForm.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAUjB,wBAAgB,eAAe,CAC7B,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAEjC,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GACjC,qBAAqB,CAAC,CAAC,CAAC,CAkW1B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { Workflow } from './client';
|
|
2
|
+
export { Activity } from './Activity';
|
|
3
|
+
export { ActivityInstance } from './ActivityInstance';
|
|
4
|
+
export type { ActivityInstanceType, EditableFieldAccessor, ReadonlyFieldAccessor, } from './ActivityInstance';
|
|
5
|
+
export type { ActivityInstanceFieldsType, ActivityOperations, ActivityProgressType, WorkflowStartResponseType, } from './types';
|
|
6
|
+
export { useActivityForm } from './components/useActivityForm';
|
|
7
|
+
export type { UseActivityFormOptions, UseActivityFormReturn, } from './components/useActivityForm';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../sdk/workflow/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { ListOptionsType, ListResponseType, MetricOptionsType, MetricResponseType, DraftResponseType, CreateUpdateResponseType } from "../types/common";
|
|
2
|
+
import type { StringFieldType, SelectFieldType, DateTimeFieldType, ReferenceFieldType } from "../types/base-fields";
|
|
3
|
+
import type { UserRefType } from "../types/base-fields";
|
|
4
|
+
/**
|
|
5
|
+
* Response from Workflow.start()
|
|
6
|
+
*/
|
|
7
|
+
export interface WorkflowStartResponseType {
|
|
8
|
+
activityId: string;
|
|
9
|
+
activityInstanceId: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Response from the activity progress endpoint
|
|
13
|
+
*/
|
|
14
|
+
export interface ActivityProgressType {
|
|
15
|
+
Stage?: string;
|
|
16
|
+
Progress?: number;
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* System fields present on every activity instance response.
|
|
21
|
+
* Returned alongside activity-specific fields from `list()` and `read()`.
|
|
22
|
+
*/
|
|
23
|
+
export type ActivityInstanceFieldsType = {
|
|
24
|
+
_id: StringFieldType;
|
|
25
|
+
Status: SelectFieldType<"InProgress" | "Completed">;
|
|
26
|
+
AssignedTo: ReferenceFieldType<UserRefType>;
|
|
27
|
+
CompletedAt: DateTimeFieldType;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Unified activity operations — returned by Workflow.activity(activityId)
|
|
31
|
+
*
|
|
32
|
+
* List-level methods operate on the activity as a whole.
|
|
33
|
+
* Instance-level methods accept `instanceId` as their first parameter.
|
|
34
|
+
*/
|
|
35
|
+
export interface ActivityOperations<T> {
|
|
36
|
+
/** List activity instances (POST .../list) */
|
|
37
|
+
list(options?: ListOptionsType): Promise<ListResponseType<ActivityInstanceFieldsType & T>>;
|
|
38
|
+
/** Get activity metrics (POST .../metric) */
|
|
39
|
+
metric(options: Omit<MetricOptionsType, "Type">): Promise<MetricResponseType>;
|
|
40
|
+
/** Read the activity instance data (GET .../read) */
|
|
41
|
+
read(instanceId: string): Promise<ActivityInstanceFieldsType & T>;
|
|
42
|
+
/** Update the activity instance (POST .../update) */
|
|
43
|
+
update(instanceId: string, data: Partial<T>): Promise<CreateUpdateResponseType>;
|
|
44
|
+
/** Start a draft edit session (PATCH .../draft) */
|
|
45
|
+
draftStart(instanceId: string, data: Partial<T>): Promise<DraftResponseType>;
|
|
46
|
+
/** End a draft edit session and commit (POST .../draft) */
|
|
47
|
+
draftEnd(instanceId: string, data: Partial<T>): Promise<CreateUpdateResponseType>;
|
|
48
|
+
/** Complete the activity (POST .../done) */
|
|
49
|
+
complete(instanceId: string): Promise<CreateUpdateResponseType>;
|
|
50
|
+
/** Get activity progress (GET .../progress) */
|
|
51
|
+
progress(instanceId: string): Promise<ActivityProgressType>;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../sdk/workflow/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,GAAG,EAAE,eAAe,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC;IACpD,UAAU,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC5C,WAAW,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IAGnC,8CAA8C;IAC9C,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,0BAA0B,GAAG,CAAC,CAAC,CAAC,CAAC;IAE3F,6CAA6C;IAC7C,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAI9E,qDAAqD;IACrD,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,GAAG,CAAC,CAAC,CAAC;IAElE,qDAAqD;IACrD,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEhF,mDAAmD;IACnD,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE7E,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAElF,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEhE,+CAA+C;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAC7D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var F=Object.defineProperty;var U=(c,s,t)=>s in c?F(c,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[s]=t;var b=(c,s,t)=>U(c,typeof s!="symbol"?s+"":s,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./client-DtPpfJc1.cjs"),L=require("./BaseField-Drp0-OxL.cjs"),f=require("react"),p=require("./index.esm-DuwT11sx.cjs"),N=require("./error-handling-CAoD0Kwb.cjs");class q{constructor(s){b(this,"bp_id");this.bp_id=s}async start(){const s=await fetch(`${d.getApiBaseUrl()}/api/app/process/${this.bp_id}/start`,{method:"POST",headers:d.getDefaultHeaders()});if(!s.ok)throw new Error(`Failed to start process: ${s.statusText}`);return s.json()}activity(s){const t=`/api/app/process/${this.bp_id}/${s}`;return{async list(i){const a={Type:"List",...i},e=await fetch(`${d.getApiBaseUrl()}${t}/list`,{method:"POST",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!e.ok)throw new Error(`Failed to list activities: ${e.statusText}`);return e.json()},async metric(i){const a={Type:"Metric",...i},e=await fetch(`${d.getApiBaseUrl()}${t}/metric`,{method:"POST",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!e.ok)throw new Error(`Failed to get activity metrics: ${e.statusText}`);return e.json()},async read(i){const a=await fetch(`${d.getApiBaseUrl()}${t}/${i}/read`,{method:"GET",headers:d.getDefaultHeaders()});if(!a.ok)throw new Error(`Failed to read activity: ${a.statusText}`);return(await a.json()).Data},async update(i,a){const e=await fetch(`${d.getApiBaseUrl()}${t}/${i}/update`,{method:"POST",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!e.ok)throw new Error(`Failed to update activity: ${e.statusText}`);return e.json()},async draftStart(i,a){const e=await fetch(`${d.getApiBaseUrl()}${t}/${i}/draft`,{method:"PATCH",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!e.ok)throw new Error(`Failed to start draft: ${e.statusText}`);return e.json()},async draftEnd(i,a){const e=await fetch(`${d.getApiBaseUrl()}${t}/${i}/draft`,{method:"POST",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!e.ok)throw new Error(`Failed to end draft: ${e.statusText}`);return e.json()},async complete(i){const a=await fetch(`${d.getApiBaseUrl()}${t}/${i}/done`,{method:"POST",headers:d.getDefaultHeaders()});if(!a.ok)throw new Error(`Failed to complete activity: ${a.statusText}`);return a.json()},async progress(i){const a=await fetch(`${d.getApiBaseUrl()}${t}/${i}/progress`,{method:"GET",headers:d.getDefaultHeaders()});if(!a.ok)throw new Error(`Failed to get activity progress: ${a.statusText}`);return a.json()}}}}class x{constructor(s,t,i,a){b(this,"_id");b(this,"_data");b(this,"_ops");b(this,"_fields");b(this,"_accessorCache",new Map);this._ops=s,this._id=t,this._data={...i},this._fields=a}toJSON(){return{...this._data}}validate(){const s=[];for(const[t,i]of Object.entries(this._fields)){const a=this._data[t],e=i.validate(a);e.valid||s.push(...e.errors)}return{valid:s.length===0,errors:s}}async update(s){return this._ops.update(this._id,s)}async save(s){return this._ops.draftEnd(this._id,s)}async complete(){return this._ops.complete(this._id)}async progress(){return this._ops.progress(this._id)}_getAccessor(s){if(this._accessorCache.has(s))return this._accessorCache.get(s);const t=this._fields[s],i=(t==null?void 0:t.meta)??{_id:s,Name:s,Type:"String"},a=(t==null?void 0:t.readOnly)??!1,e=()=>t?t.validate(this._data[s]):{valid:!0,errors:[]};let r;return a?r={label:(t==null?void 0:t.label)??s,required:(t==null?void 0:t.required)??!1,readOnly:!0,defaultValue:t==null?void 0:t.defaultValue,meta:i,get:()=>this._data[s],validate:e}:r={label:(t==null?void 0:t.label)??s,required:(t==null?void 0:t.required)??!1,readOnly:!1,defaultValue:t==null?void 0:t.defaultValue,meta:i,get:()=>this._data[s],set:y=>{this._data[s]=y},validate:e},this._accessorCache.set(s,r),r}}function G(c,s,t,i){const a=new x(c,s,t,i);return new Proxy(a,{get(e,r,y){return r==="validate"||r==="toJSON"||r==="update"||r==="save"||r==="complete"||r==="progress"||r==="_ops"||r==="_data"||r==="_fields"||r==="_accessorCache"||r==="_getAccessor"||typeof r=="symbol"?Reflect.get(e,r,y):r==="_id"?e._id:e._getAccessor(r)},has(e,r){return typeof r=="symbol"?!1:r==="validate"||r==="toJSON"||r==="update"||r==="save"||r==="complete"||r==="progress"||r==="_id"?!0:r in e._fields},ownKeys(e){return[...Object.keys(e._fields),"_id","validate","toJSON","update","save","complete","progress"]},getOwnPropertyDescriptor(e,r){if(typeof r!="symbol")return{configurable:!0,enumerable:r!=="validate"&&r!=="toJSON"&&r!=="update"&&r!=="save"&&r!=="complete"&&r!=="progress"}}})}class K{constructor(){b(this,"_fieldsCache",null)}_ops(){return new q(this.meta.businessProcessId).activity(this.meta.activityId)}_discoverFields(){if(this._fieldsCache)return this._fieldsCache;const s={};for(const t of Object.keys(this)){const i=this[t];i instanceof L.BaseField&&(s[t]=i)}return this._fieldsCache=s,s}async getInstanceList(s){return this._ops().list(s)}async instanceMetrics(s){return this._ops().metric(s)}async getInstance(s){const t=this._ops(),i=await t.read(s),a=this._discoverFields();return G(t,s,i,a)}_getFields(){return this._discoverFields()}_getOps(){return this._ops()}}function W(c){return async(s,t,i)=>{const a={},e=c._getFields(),r=(i==null?void 0:i.names)??Object.keys(e);for(const y of r){const w=e[y];if(!w||w.readOnly)continue;const $=s[y],O=w.validate($);!O.valid&&O.errors.length>0&&(a[y]={type:"validate",message:O.errors[0]||`${y} is invalid`})}return Object.keys(a).length===0?{values:s,errors:{}}:{values:{},errors:a}}}function z(c,s){const t=c._getFields();return new Proxy({},{get(i,a){if(typeof a=="symbol")return;if(a==="toJSON")return()=>s.getValues();if(a==="validate")return()=>s.trigger();const e=t[a],r=(e==null?void 0:e.meta)??{_id:a,Name:a,Type:"String"},y=(e==null?void 0:e.readOnly)??!1,w=()=>e?e.validate(s.getValues(a)):{valid:!0,errors:[]};return y?{label:(e==null?void 0:e.label)??a,required:(e==null?void 0:e.required)??!1,readOnly:!0,defaultValue:e==null?void 0:e.defaultValue,meta:r,get:()=>s.getValues(a),validate:w}:{label:(e==null?void 0:e.label)??a,required:(e==null?void 0:e.required)??!1,readOnly:!1,defaultValue:e==null?void 0:e.defaultValue,meta:r,get:()=>s.getValues(a),set:S=>{s.setValue(a,S,{shouldDirty:!0,shouldTouch:!0,shouldValidate:!1})},validate:w}},has(i,a){return typeof a=="symbol"?!1:a==="toJSON"||a==="validate"?!0:a in t},ownKeys(i){return[...Object.keys(t),"toJSON","validate"]},getOwnPropertyDescriptor(i,a){if(typeof a!="symbol")return{configurable:!0,enumerable:a!=="toJSON"&&a!=="validate"}}})}function Q(c,s){const{activity_instance_id:t,defaultValues:i={},mode:a="onBlur",enabled:e=!0}=s,[r,y]=f.useState(!1),[w,$]=f.useState(null),[O,S]=f.useState(!1),j=f.useRef(!1),A=f.useRef(null),T=f.useMemo(()=>c._getFields(),[c]),V=f.useMemo(()=>Object.keys(T).filter(u=>T[u].readOnly),[T]),J=f.useMemo(()=>W(c),[c]),n=p.useForm({mode:a,defaultValues:i,resolver:J}),P=f.useMemo(()=>z(c,n),[c,n]),v=f.useMemo(()=>c._getOps(),[c]);f.useEffect(()=>{if(!e)return;let u=!0;return(async()=>{y(!0),$(null);try{const o=await v.read(t);if(!u)return;o&&typeof o=="object"&&n.reset({...i,...o})}catch(o){if(!u)return;console.error("Failed to read activity data:",o),$(N.toError(o))}finally{u&&y(!1)}})(),()=>{u=!1}},[e,v,t]);const k=f.useCallback(async u=>{V.length!==0&&(j.current||(A.current&&clearTimeout(A.current),A.current=setTimeout(async()=>{if(!j.current){j.current=!0;try{const l=n.getValues(),o={},h=new Set(V);Object.keys(l).forEach(_=>{h.has(_)||(o[_]=l[_])});const g=await v.draftStart(t,o);g&&typeof g=="object"&&Object.entries(g).forEach(([_,m])=>{h.has(_)&&n.getValues(_)!==m&&n.setValue(_,m,{shouldDirty:!1,shouldValidate:!1})})}catch(l){console.warn("Draft computation failed:",l)}finally{j.current=!1}}},300)))},[v,V,n]),R=f.useCallback((u,l)=>{const o=T[u],h=o?o.readOnly:!1,g=l==null?void 0:l.onBlur,_=async C=>{g&&await g(C);let B=!0;a==="onBlur"||a==="onTouched"||a==="all"?B=await n.trigger(u):B=!n.getFieldState(u,n.formState).error,B&&await k(u)},m=n.register(u,{...l,onBlur:_,...h?{disabled:!0}:{}});return h?{...m,disabled:!0}:m},[n,T,k,a]),H=f.useCallback((u,l)=>n.handleSubmit(async(o,h)=>{S(!0);try{const g={},_=new Set(V);Object.keys(o).forEach(m=>{!_.has(m)&&o[m]!==void 0&&(g[m]=o[m])}),await v.update(t,g),await v.draftEnd(t,g),await(u==null?void 0:u(o,h))}catch(g){l==null||l(N.toError(g),h)}finally{S(!1)}},(o,h)=>{l==null||l(o,h)}),[n,v,V]),M=f.useCallback((u,l)=>n.handleSubmit(async(o,h)=>{S(!0);try{await v.complete(t),await(u==null?void 0:u(o,h))}catch(g){l==null||l(N.toError(g),h)}finally{S(!1)}},(o,h)=>{l==null||l(o,h)}),[n,v]),D=f.useCallback(()=>{n.clearErrors()},[n]),E=!!w;return{item:P,activity:c,register:R,handleSubmit:H,handleComplete:M,watch:n.watch,setValue:n.setValue,getValues:n.getValues,reset:n.reset,trigger:n.trigger,control:n.control,errors:n.formState.errors,isValid:n.formState.isValid,isDirty:n.formState.isDirty,isSubmitting:n.formState.isSubmitting||O,isSubmitSuccessful:n.formState.isSubmitSuccessful,isLoading:r,loadError:w,hasError:E,clearErrors:D}}exports.Activity=K;exports.ActivityInstance=x;exports.Workflow=q;exports.useActivityForm=Q;
|