@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.
Files changed (193) hide show
  1. package/README.md +36 -39
  2. package/dist/BaseField-B6da88U7.js +40 -0
  3. package/dist/BaseField-Drp0-OxL.cjs +1 -0
  4. package/dist/api/client.d.ts +7 -0
  5. package/dist/api/client.d.ts.map +1 -1
  6. package/dist/api/index.d.ts +1 -1
  7. package/dist/api/index.d.ts.map +1 -1
  8. package/dist/api/metadata.d.ts +26 -22
  9. package/dist/api/metadata.d.ts.map +1 -1
  10. package/dist/api.cjs +1 -1
  11. package/dist/api.mjs +3 -3
  12. package/dist/auth.cjs +1 -1
  13. package/dist/auth.mjs +2 -2
  14. package/dist/base-types.d.ts +1 -1
  15. package/dist/base-types.d.ts.map +1 -1
  16. package/dist/bdo/core/BaseBdo.d.ts +12 -20
  17. package/dist/bdo/core/BaseBdo.d.ts.map +1 -1
  18. package/dist/bdo/core/Item.d.ts +8 -44
  19. package/dist/bdo/core/Item.d.ts.map +1 -1
  20. package/dist/bdo/core/types.d.ts +124 -41
  21. package/dist/bdo/core/types.d.ts.map +1 -1
  22. package/dist/bdo/fields/ArrayField.d.ts +5 -4
  23. package/dist/bdo/fields/ArrayField.d.ts.map +1 -1
  24. package/dist/bdo/fields/BaseField.d.ts +14 -19
  25. package/dist/bdo/fields/BaseField.d.ts.map +1 -1
  26. package/dist/bdo/fields/BooleanField.d.ts +3 -4
  27. package/dist/bdo/fields/BooleanField.d.ts.map +1 -1
  28. package/dist/bdo/fields/DateField.d.ts +3 -4
  29. package/dist/bdo/fields/DateField.d.ts.map +1 -1
  30. package/dist/bdo/fields/DateTimeField.d.ts +5 -4
  31. package/dist/bdo/fields/DateTimeField.d.ts.map +1 -1
  32. package/dist/bdo/fields/FileField.d.ts +18 -0
  33. package/dist/bdo/fields/FileField.d.ts.map +1 -0
  34. package/dist/bdo/fields/NumberField.d.ts +6 -4
  35. package/dist/bdo/fields/NumberField.d.ts.map +1 -1
  36. package/dist/bdo/fields/ObjectField.d.ts +5 -4
  37. package/dist/bdo/fields/ObjectField.d.ts.map +1 -1
  38. package/dist/bdo/fields/ReferenceField.d.ts +13 -14
  39. package/dist/bdo/fields/ReferenceField.d.ts.map +1 -1
  40. package/dist/bdo/fields/SelectField.d.ts +9 -16
  41. package/dist/bdo/fields/SelectField.d.ts.map +1 -1
  42. package/dist/bdo/fields/StringField.d.ts +6 -4
  43. package/dist/bdo/fields/StringField.d.ts.map +1 -1
  44. package/dist/bdo/fields/TextAreaField.d.ts +1 -18
  45. package/dist/bdo/fields/TextAreaField.d.ts.map +1 -1
  46. package/dist/bdo/fields/TextField.d.ts +22 -0
  47. package/dist/bdo/fields/TextField.d.ts.map +1 -0
  48. package/dist/bdo/fields/UserField.d.ts +20 -0
  49. package/dist/bdo/fields/UserField.d.ts.map +1 -0
  50. package/dist/bdo/fields/index.d.ts +5 -2
  51. package/dist/bdo/fields/index.d.ts.map +1 -1
  52. package/dist/bdo/index.d.ts +2 -2
  53. package/dist/bdo/index.d.ts.map +1 -1
  54. package/dist/bdo.cjs +1 -1
  55. package/dist/bdo.d.ts +1 -5
  56. package/dist/bdo.d.ts.map +1 -1
  57. package/dist/bdo.mjs +286 -243
  58. package/dist/bdo.types.d.ts +2 -3
  59. package/dist/bdo.types.d.ts.map +1 -1
  60. package/dist/{client-BIkaIr2y.js → client-BULEEaCP.js} +84 -79
  61. package/dist/client-DtPpfJc1.cjs +1 -0
  62. package/dist/components/hooks/useFilter/useFilter.d.ts.map +1 -1
  63. package/dist/components/hooks/useForm/createItemProxy.d.ts.map +1 -1
  64. package/dist/components/hooks/useForm/createResolver.d.ts +12 -2
  65. package/dist/components/hooks/useForm/createResolver.d.ts.map +1 -1
  66. package/dist/components/hooks/useForm/index.d.ts +1 -1
  67. package/dist/components/hooks/useForm/index.d.ts.map +1 -1
  68. package/dist/components/hooks/useForm/types.d.ts +77 -8
  69. package/dist/components/hooks/useForm/types.d.ts.map +1 -1
  70. package/dist/components/hooks/useForm/useDraftInteraction.d.ts +26 -0
  71. package/dist/components/hooks/useForm/useDraftInteraction.d.ts.map +1 -0
  72. package/dist/components/hooks/useForm/useForm.d.ts +2 -27
  73. package/dist/components/hooks/useForm/useForm.d.ts.map +1 -1
  74. package/dist/components/hooks/useTable/useTable.d.ts.map +1 -1
  75. package/dist/{constants-DaX7GLgl.js → constants-BQrBcCON.js} +37 -13
  76. package/dist/constants-D0J69if5.cjs +1 -0
  77. package/dist/error-handling-CAoD0Kwb.cjs +1 -0
  78. package/dist/error-handling-CrhTtD88.js +14 -0
  79. package/dist/filter.cjs +1 -1
  80. package/dist/filter.mjs +2 -2
  81. package/dist/form.cjs +1 -1
  82. package/dist/form.d.ts +1 -1
  83. package/dist/form.d.ts.map +1 -1
  84. package/dist/form.mjs +333 -1142
  85. package/dist/form.types.d.ts +1 -1
  86. package/dist/form.types.d.ts.map +1 -1
  87. package/dist/index.d.ts +2 -1
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.esm-Cj63v5ny.js +1014 -0
  90. package/dist/index.esm-DuwT11sx.cjs +1 -0
  91. package/dist/{metadata-Bz8zJqC1.cjs → metadata-BJWukIqS.cjs} +1 -1
  92. package/dist/{metadata-VbQzyD2C.js → metadata-CJuFxytC.js} +1 -1
  93. package/dist/table.cjs +1 -1
  94. package/dist/table.mjs +116 -122
  95. package/dist/types/base-fields.d.ts +24 -59
  96. package/dist/types/base-fields.d.ts.map +1 -1
  97. package/dist/types/constants.d.ts +2 -2
  98. package/dist/types/constants.d.ts.map +1 -1
  99. package/dist/useFilter-Bg0jvIL6.cjs +1 -0
  100. package/dist/useFilter-DPNLKY3H.js +118 -0
  101. package/dist/utils/formatting.d.ts +10 -1
  102. package/dist/utils/formatting.d.ts.map +1 -1
  103. package/dist/workflow/Activity.d.ts +85 -0
  104. package/dist/workflow/Activity.d.ts.map +1 -0
  105. package/dist/workflow/ActivityInstance.d.ts +96 -0
  106. package/dist/workflow/ActivityInstance.d.ts.map +1 -0
  107. package/dist/workflow/client.d.ts +39 -0
  108. package/dist/workflow/client.d.ts.map +1 -0
  109. package/dist/workflow/components/useActivityForm/createActivityItemProxy.d.ts +16 -0
  110. package/dist/workflow/components/useActivityForm/createActivityItemProxy.d.ts.map +1 -0
  111. package/dist/workflow/components/useActivityForm/createActivityResolver.d.ts +22 -0
  112. package/dist/workflow/components/useActivityForm/createActivityResolver.d.ts.map +1 -0
  113. package/dist/workflow/components/useActivityForm/index.d.ts +3 -0
  114. package/dist/workflow/components/useActivityForm/index.d.ts.map +1 -0
  115. package/dist/workflow/components/useActivityForm/types.d.ts +80 -0
  116. package/dist/workflow/components/useActivityForm/types.d.ts.map +1 -0
  117. package/dist/workflow/components/useActivityForm/useActivityForm.d.ts +4 -0
  118. package/dist/workflow/components/useActivityForm/useActivityForm.d.ts.map +1 -0
  119. package/dist/workflow/index.d.ts +8 -0
  120. package/dist/workflow/index.d.ts.map +1 -0
  121. package/dist/workflow/types.d.ts +53 -0
  122. package/dist/workflow/types.d.ts.map +1 -0
  123. package/dist/workflow.cjs +1 -0
  124. package/dist/workflow.d.ts +8 -0
  125. package/dist/workflow.d.ts.map +1 -0
  126. package/dist/workflow.mjs +565 -0
  127. package/dist/workflow.types.cjs +1 -0
  128. package/dist/workflow.types.d.ts +2 -0
  129. package/dist/workflow.types.d.ts.map +1 -0
  130. package/dist/workflow.types.mjs +1 -0
  131. package/docs/api.md +140 -572
  132. package/docs/bdo.md +742 -0
  133. package/docs/useAuth.md +10 -4
  134. package/docs/useFilter.md +40 -40
  135. package/docs/useForm.md +91 -62
  136. package/docs/useTable.md +38 -38
  137. package/docs/workflow.md +703 -0
  138. package/package.json +21 -1
  139. package/sdk/api/client.ts +77 -57
  140. package/sdk/api/index.ts +1 -0
  141. package/sdk/api/metadata.ts +22 -20
  142. package/sdk/base-types.ts +5 -9
  143. package/sdk/bdo/core/BaseBdo.ts +23 -38
  144. package/sdk/bdo/core/Item.ts +34 -56
  145. package/sdk/bdo/core/types.ts +147 -45
  146. package/sdk/bdo/fields/ArrayField.ts +9 -5
  147. package/sdk/bdo/fields/BaseField.ts +19 -29
  148. package/sdk/bdo/fields/BooleanField.ts +4 -5
  149. package/sdk/bdo/fields/DateField.ts +4 -5
  150. package/sdk/bdo/fields/DateTimeField.ts +9 -5
  151. package/sdk/bdo/fields/FileField.ts +39 -0
  152. package/sdk/bdo/fields/NumberField.ts +8 -5
  153. package/sdk/bdo/fields/ObjectField.ts +9 -5
  154. package/sdk/bdo/fields/ReferenceField.ts +22 -28
  155. package/sdk/bdo/fields/SelectField.ts +13 -26
  156. package/sdk/bdo/fields/StringField.ts +10 -5
  157. package/sdk/bdo/fields/TextAreaField.ts +3 -32
  158. package/sdk/bdo/fields/TextField.ts +42 -0
  159. package/sdk/bdo/fields/UserField.ts +52 -0
  160. package/sdk/bdo/fields/index.ts +5 -2
  161. package/sdk/bdo/index.ts +19 -4
  162. package/sdk/bdo.ts +4 -31
  163. package/sdk/bdo.types.ts +26 -21
  164. package/sdk/components/hooks/useFilter/useFilter.ts +13 -30
  165. package/sdk/components/hooks/useForm/createItemProxy.ts +47 -11
  166. package/sdk/components/hooks/useForm/createResolver.ts +65 -6
  167. package/sdk/components/hooks/useForm/index.ts +4 -0
  168. package/sdk/components/hooks/useForm/types.ts +92 -9
  169. package/sdk/components/hooks/useForm/useDraftInteraction.ts +251 -0
  170. package/sdk/components/hooks/useForm/useForm.ts +132 -60
  171. package/sdk/components/hooks/useTable/useTable.ts +10 -2
  172. package/sdk/form.ts +1 -12
  173. package/sdk/form.types.ts +1 -0
  174. package/sdk/index.ts +9 -3
  175. package/sdk/types/base-fields.ts +28 -72
  176. package/sdk/types/constants.ts +2 -2
  177. package/sdk/utils/formatting.ts +13 -1
  178. package/sdk/workflow/Activity.ts +181 -0
  179. package/sdk/workflow/ActivityInstance.ts +339 -0
  180. package/sdk/workflow/client.ts +208 -0
  181. package/sdk/workflow/components/useActivityForm/createActivityItemProxy.ts +126 -0
  182. package/sdk/workflow/components/useActivityForm/createActivityResolver.ts +61 -0
  183. package/sdk/workflow/components/useActivityForm/index.ts +5 -0
  184. package/sdk/workflow/components/useActivityForm/types.ts +166 -0
  185. package/sdk/workflow/components/useActivityForm/useActivityForm.ts +386 -0
  186. package/sdk/workflow/index.ts +20 -0
  187. package/sdk/workflow/types.ts +84 -0
  188. package/sdk/workflow.ts +25 -0
  189. package/sdk/workflow.types.ts +11 -0
  190. package/dist/client-DxjRcEtN.cjs +0 -1
  191. package/dist/constants-C49b9Exc.cjs +0 -1
  192. package/dist/useFilter-DzpP_ag0.cjs +0 -1
  193. 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
- import type { CurrencyValueType, JSONValueType } from '../types/base-fields';
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,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE7E;;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"}
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,3 @@
1
+ export { useActivityForm } from './useActivityForm';
2
+ export type { UseActivityFormOptions, UseActivityFormReturn, } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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;