@ram_28/kf-ai-sdk 2.0.15 → 2.0.16
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 +8 -8
- package/dist/bdo/core/BaseBdo.d.ts +1 -1
- package/dist/bdo.mjs +2 -2
- package/dist/components/hooks/useActivityForm/createActivityItemProxy.d.ts +1 -1
- package/dist/components/hooks/useActivityForm/createActivityItemProxy.d.ts.map +1 -1
- package/dist/components/hooks/useActivityForm/types.d.ts +2 -2
- package/dist/components/hooks/useActivityForm/types.d.ts.map +1 -1
- package/dist/components/hooks/useActivityForm/useActivityForm.d.ts.map +1 -1
- package/dist/components/hooks/useActivityTable/types.d.ts +4 -4
- package/dist/components/hooks/useActivityTable/types.d.ts.map +1 -1
- package/dist/components/hooks/useActivityTable/useActivityTable.d.ts +1 -1
- package/dist/components/hooks/useActivityTable/useActivityTable.d.ts.map +1 -1
- package/dist/components/hooks/useBDOForm/createItemProxy.d.ts.map +1 -0
- package/dist/components/hooks/useBDOForm/createResolver.d.ts.map +1 -0
- package/dist/components/hooks/useBDOForm/index.d.ts +6 -0
- package/dist/components/hooks/useBDOForm/index.d.ts.map +1 -0
- package/dist/components/hooks/useBDOForm/shared.d.ts +50 -0
- package/dist/components/hooks/useBDOForm/shared.d.ts.map +1 -0
- package/dist/components/hooks/{useForm → useBDOForm}/types.d.ts +6 -6
- package/dist/components/hooks/useBDOForm/types.d.ts.map +1 -0
- package/dist/components/hooks/{useForm/useForm.d.ts → useBDOForm/useBDOForm.d.ts} +4 -4
- package/dist/components/hooks/useBDOForm/useBDOForm.d.ts.map +1 -0
- package/dist/components/hooks/useBDOTable/types.d.ts +1 -3
- package/dist/components/hooks/useBDOTable/types.d.ts.map +1 -1
- package/dist/components/hooks/useBDOTable/useBDOTable.d.ts.map +1 -1
- 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 +250 -253
- package/dist/form.types.d.ts +1 -1
- package/dist/form.types.d.ts.map +1 -1
- package/dist/shared-5a7UkED1.js +1180 -0
- package/dist/shared-nnmlRVs7.cjs +1 -0
- package/dist/table.cjs +1 -1
- package/dist/table.mjs +12 -11
- package/dist/types/constants.d.ts +3 -3
- package/dist/workflow/Activity.d.ts +15 -3
- package/dist/workflow/Activity.d.ts.map +1 -1
- package/dist/workflow/client.d.ts +2 -2
- package/dist/workflow/client.d.ts.map +1 -1
- package/dist/workflow/types.d.ts +7 -3
- package/dist/workflow/types.d.ts.map +1 -1
- package/dist/workflow.cjs +1 -1
- package/dist/workflow.mjs +503 -546
- package/docs/bdo.md +1 -1
- package/docs/gaps.md +14 -64
- package/docs/useActivityForm.md +393 -0
- package/docs/useActivityTable.md +42 -105
- package/docs/{useForm.md → useBDOForm.md} +24 -24
- package/docs/useBDOTable.md +6 -39
- package/docs/workflow.md +43 -301
- package/package.json +2 -2
- package/sdk/bdo/core/BaseBdo.ts +2 -2
- package/sdk/components/hooks/useActivityForm/createActivityItemProxy.ts +1 -1
- package/sdk/components/hooks/useActivityForm/createActivityResolver.ts +1 -1
- package/sdk/components/hooks/useActivityForm/types.ts +4 -4
- package/sdk/components/hooks/useActivityForm/useActivityForm.ts +44 -194
- package/sdk/components/hooks/useActivityTable/types.ts +4 -2
- package/sdk/components/hooks/useActivityTable/useActivityTable.ts +8 -39
- package/sdk/components/hooks/{useForm → useBDOForm}/index.ts +4 -3
- package/sdk/components/hooks/useBDOForm/shared.ts +250 -0
- package/sdk/components/hooks/{useForm → useBDOForm}/types.ts +9 -9
- package/sdk/components/hooks/{useForm/useForm.ts → useBDOForm/useBDOForm.ts} +70 -96
- package/sdk/components/hooks/useBDOTable/types.ts +1 -3
- package/sdk/components/hooks/useBDOTable/useBDOTable.ts +3 -2
- package/sdk/form.ts +2 -2
- package/sdk/form.types.ts +4 -4
- package/sdk/types/constants.ts +3 -3
- package/sdk/workflow/Activity.ts +29 -6
- package/sdk/workflow/client.ts +65 -25
- package/sdk/workflow/types.ts +10 -2
- package/dist/components/hooks/useForm/createItemProxy.d.ts.map +0 -1
- package/dist/components/hooks/useForm/createResolver.d.ts.map +0 -1
- package/dist/components/hooks/useForm/index.d.ts +0 -5
- package/dist/components/hooks/useForm/index.d.ts.map +0 -1
- package/dist/components/hooks/useForm/types.d.ts.map +0 -1
- package/dist/components/hooks/useForm/useForm.d.ts.map +0 -1
- package/dist/createResolver-AIgUwoS6.cjs +0 -1
- package/dist/createResolver-ZHXQ7QMa.js +0 -1078
- /package/dist/components/hooks/{useForm → useBDOForm}/createItemProxy.d.ts +0 -0
- /package/dist/components/hooks/{useForm → useBDOForm}/createResolver.d.ts +0 -0
- /package/sdk/components/hooks/{useForm → useBDOForm}/createItemProxy.ts +0 -0
- /package/sdk/components/hooks/{useForm → useBDOForm}/createResolver.ts +0 -0
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ A type-safe SDK for building modern web applications with React hooks for forms,
|
|
|
14
14
|
- [Multiple Auth Providers](#multiple-auth-providers)
|
|
15
15
|
- [Protected Routes](#protected-routes)
|
|
16
16
|
- [Hooks](#hooks)
|
|
17
|
-
- [
|
|
17
|
+
- [useBDOForm](#usebdoform)
|
|
18
18
|
- [useTable](#usetable)
|
|
19
19
|
- [useFilter](#usefilter)
|
|
20
20
|
- [BDO (Business Data Object)](#bdo-business-data-object)
|
|
@@ -42,7 +42,7 @@ npm install react @tanstack/react-query
|
|
|
42
42
|
## Features
|
|
43
43
|
|
|
44
44
|
- **Authentication** - Cookie-based auth with AuthProvider and useAuth hook
|
|
45
|
-
- **
|
|
45
|
+
- **useBDOForm** - BDO-integrated forms with automatic validation and API calls
|
|
46
46
|
- **useTable** - Data tables with sorting, pagination, and React Query integration
|
|
47
47
|
- **useFilter** - Advanced filtering with logical operators and payload builders
|
|
48
48
|
- **BDO Module** - Type-safe, role-based data access layer with expression validation
|
|
@@ -58,12 +58,12 @@ import { AuthProvider, useAuth } from "@ram_28/kf-ai-sdk/auth";
|
|
|
58
58
|
import type { UseAuthReturnType, UserDetailsType } from "@ram_28/kf-ai-sdk/auth/types";
|
|
59
59
|
|
|
60
60
|
// Hooks
|
|
61
|
-
import {
|
|
61
|
+
import { useBDOForm } from "@ram_28/kf-ai-sdk/form";
|
|
62
62
|
import { useTable } from "@ram_28/kf-ai-sdk/table";
|
|
63
63
|
import { useFilter } from "@ram_28/kf-ai-sdk/filter";
|
|
64
64
|
|
|
65
65
|
// Types
|
|
66
|
-
import type {
|
|
66
|
+
import type { UseBDOFormOptionsType, UseBDOFormReturnType } from "@ram_28/kf-ai-sdk/form/types";
|
|
67
67
|
import type { UseTableOptionsType, UseTableReturnType } from "@ram_28/kf-ai-sdk/table/types";
|
|
68
68
|
import type { UseFilterOptionsType, UseFilterReturnType } from "@ram_28/kf-ai-sdk/filter/types";
|
|
69
69
|
|
|
@@ -202,18 +202,18 @@ function ProtectedRoute({ children, requiredRoles }) {
|
|
|
202
202
|
|
|
203
203
|
## Hooks
|
|
204
204
|
|
|
205
|
-
###
|
|
205
|
+
### useBDOForm
|
|
206
206
|
|
|
207
207
|
BDO-integrated form hook with automatic validation and API calls.
|
|
208
208
|
|
|
209
209
|
```tsx
|
|
210
|
-
import {
|
|
210
|
+
import { useBDOForm } from "@ram_28/kf-ai-sdk/form";
|
|
211
211
|
import { AdminProduct } from "./bdo/admin/Product";
|
|
212
212
|
|
|
213
213
|
function ProductForm() {
|
|
214
214
|
const product = new AdminProduct();
|
|
215
215
|
|
|
216
|
-
const { register, handleSubmit, errors, isSubmitting } =
|
|
216
|
+
const { register, handleSubmit, errors, isSubmitting } = useBDOForm({
|
|
217
217
|
bdo: product,
|
|
218
218
|
defaultValues: { Title: "", Price: 0 },
|
|
219
219
|
});
|
|
@@ -466,7 +466,7 @@ Detailed documentation for each feature:
|
|
|
466
466
|
- [useBDOTable Documentation](./docs/useBDOTable.md)
|
|
467
467
|
- [useActivityTable Documentation](./docs/useActivityTable.md)
|
|
468
468
|
- [useFilter Documentation](./docs/useFilter.md)
|
|
469
|
-
- [
|
|
469
|
+
- [useBDOForm Documentation](./docs/useBDOForm.md)
|
|
470
470
|
- [useAuth Documentation](./docs/useAuth.md)
|
|
471
471
|
- [API Documentation](./docs/api.md)
|
|
472
472
|
|
|
@@ -55,7 +55,7 @@ export declare abstract class BaseBdo<TEntity extends Record<string, unknown>, T
|
|
|
55
55
|
/**
|
|
56
56
|
* Load backend metadata for expression-based validation
|
|
57
57
|
*
|
|
58
|
-
* Called by
|
|
58
|
+
* Called by useBDOForm after fetching schema from the backend.
|
|
59
59
|
* This enables expression-based validation rules to be used
|
|
60
60
|
* in addition to type validation.
|
|
61
61
|
*
|
package/dist/bdo.mjs
CHANGED
|
@@ -676,7 +676,7 @@ class z {
|
|
|
676
676
|
/**
|
|
677
677
|
* Load backend metadata for expression-based validation
|
|
678
678
|
*
|
|
679
|
-
* Called by
|
|
679
|
+
* Called by useBDOForm after fetching schema from the backend.
|
|
680
680
|
* This enables expression-based validation rules to be used
|
|
681
681
|
* in addition to type validation.
|
|
682
682
|
*
|
|
@@ -765,7 +765,7 @@ class z {
|
|
|
765
765
|
return i(this.meta._id).delete(e);
|
|
766
766
|
}
|
|
767
767
|
// ============================================================
|
|
768
|
-
// DRAFT OPERATIONS (for
|
|
768
|
+
// DRAFT OPERATIONS (for useBDOForm integration)
|
|
769
769
|
// ============================================================
|
|
770
770
|
/**
|
|
771
771
|
* Create a draft - compute fields without persisting
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { UseFormReturn, FieldValues } from 'react-hook-form';
|
|
2
|
-
import type { FormItemType } from '../
|
|
2
|
+
import type { FormItemType } from '../useBDOForm/types';
|
|
3
3
|
import type { Activity } from '../../../workflow/Activity';
|
|
4
4
|
import type { ExtractActivityEditable, ExtractActivityReadonly } from './types';
|
|
5
5
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createActivityItemProxy.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useActivityForm/createActivityItemProxy.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAQ,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAQxE,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,
|
|
1
|
+
{"version":3,"file":"createActivityItemProxy.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useActivityForm/createActivityItemProxy.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAQ,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAQxE,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAOjB;;;;;;;;;;;;;GAaG;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,EAChC,UAAU,EAAE,MAAM,GACjB,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC,CA6VtE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { UseFormWatch, UseFormSetValue, UseFormGetValues, UseFormReset, UseFormTrigger, Control, FieldErrors } from 'react-hook-form';
|
|
2
2
|
import type { Activity } from '../../../workflow/Activity';
|
|
3
|
-
import type { HandleSubmitType, FormItemType, FormRegisterType, EditableFormFieldAccessorType, ReadonlyFormFieldAccessorType } from '../
|
|
3
|
+
import type { HandleSubmitType, FormItemType, FormRegisterType, EditableFormFieldAccessorType, ReadonlyFormFieldAccessorType } from '../useBDOForm/types';
|
|
4
4
|
export type { HandleSubmitType, FormItemType, FormRegisterType, EditableFormFieldAccessorType, ReadonlyFormFieldAccessorType, };
|
|
5
5
|
/** Extract TEntity from an Activity instance */
|
|
6
6
|
export type ExtractActivityEntity<A> = A extends Activity<infer E, any, any> ? E : never;
|
|
@@ -33,7 +33,7 @@ export interface UseActivityFormOptions<A extends Activity<any, any, any>> {
|
|
|
33
33
|
enabled?: boolean;
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
|
-
* useActivityForm hook return type — mirrors
|
|
36
|
+
* useActivityForm hook return type — mirrors useBDOForm return structure
|
|
37
37
|
*/
|
|
38
38
|
export interface UseActivityFormReturn<A extends Activity<any, any, any>> {
|
|
39
39
|
/** Item proxy with typed field accessors */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useActivityForm/types.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,OAAO,EACP,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,6BAA6B,EAC7B,6BAA6B,EAC9B,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useActivityForm/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActivityForm.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useActivityForm/useActivityForm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useActivityForm.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useActivityForm/useActivityForm.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAwBjB,wBAAgB,eAAe,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC/D,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GACjC,qBAAqB,CAAC,CAAC,CAAC,CAkb1B"}
|
|
@@ -13,12 +13,12 @@ export declare const ActivityTableStatus: {
|
|
|
13
13
|
export type ActivityTableStatusType = (typeof ActivityTableStatus)[keyof typeof ActivityTableStatus];
|
|
14
14
|
/**
|
|
15
15
|
* Row type for activity table data.
|
|
16
|
-
* System fields
|
|
16
|
+
* System fields and entity fields are flat at the top level.
|
|
17
17
|
*/
|
|
18
|
-
export type ActivityRowType<A extends Activity<any, any, any>> = A extends Activity<infer E, any, any> ? ActivityInstanceFieldsType &
|
|
19
|
-
ADO: E;
|
|
20
|
-
} : never;
|
|
18
|
+
export type ActivityRowType<A extends Activity<any, any, any>> = A extends Activity<infer E, any, any> ? ActivityInstanceFieldsType & E : never;
|
|
21
19
|
export interface UseActivityTableOptionsType<A extends Activity<any, any, any>> {
|
|
20
|
+
/** The activity instance to fetch data for */
|
|
21
|
+
activity: A;
|
|
22
22
|
/** Which operation — determines endpoint (inprogress vs completed) */
|
|
23
23
|
status: ActivityTableStatusType;
|
|
24
24
|
/** Initial state */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useActivityTable/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;CAGtB,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAC3D,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GACjC,0BAA0B,GAAG
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useActivityTable/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;CAGtB,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAC3D,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GACjC,0BAA0B,GAAG,CAAC,GAC9B,KAAK,CAAC;AAEZ,MAAM,WAAW,2BAA2B,CAC1C,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAEjC,8CAA8C;IAC9C,QAAQ,EAAE,CAAC,CAAC;IACZ,sEAAsE;IACtE,MAAM,EAAE,uBAAuB,CAAC;IAChC,oBAAoB;IACpB,YAAY,CAAC,EAAE;QACb,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,UAAU,CAAC,EAAE,mBAAmB,CAAC;QACjC,MAAM,CAAC,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;KACnD,CAAC;IACF,qBAAqB;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,qCAAqC;IACrC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;CAClD;AAED,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IACtE,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Activity } from '../../../workflow/Activity';
|
|
2
2
|
import type { UseActivityTableOptionsType, UseActivityTableReturnType } from './types';
|
|
3
|
-
export declare function useActivityTable<A extends Activity<any, any, any>>(
|
|
3
|
+
export declare function useActivityTable<A extends Activity<any, any, any>>(options: UseActivityTableOptionsType<A>): UseActivityTableReturnType<A>;
|
|
4
4
|
//# sourceMappingURL=useActivityTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActivityTable.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useActivityTable/useActivityTable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAE3B,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"useActivityTable.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useActivityTable/useActivityTable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAE3B,MAAM,SAAS,CAAC;AAEjB,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAChE,OAAO,EAAE,2BAA2B,CAAC,CAAC,CAAC,GACtC,0BAA0B,CAAC,CAAC,CAAC,CA4B/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createItemProxy.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useBDOForm/createItemProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAQ,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQ5C,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EAGpB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC9D,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,GAC/B,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAiV9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createResolver.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useBDOForm/createResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAsCnG;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC7D,GAAG,EAAE,CAAC,EACN,eAAe,CAAC,EAAE;IAAE,0BAA0B,CAAC,EAAE,OAAO,CAAA;CAAE,IAG5C,QAAQ,WAAW,EAAE,UAAU,GAAG,EAAE,SAAS,GAAG;;;;;;cACvB,MAAM;iBAAW,MAAM;;GAkF/D"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { useBDOForm } from "./useBDOForm";
|
|
2
|
+
export { createResolver } from "./createResolver";
|
|
3
|
+
export { createItemProxy } from "./createItemProxy";
|
|
4
|
+
export { coerceFieldValue, coerceRecordForForm } from "./shared";
|
|
5
|
+
export type { UseBDOFormOptionsType, UseBDOFormReturnType, FormItemType, EditableFormFieldAccessorType, ReadonlyFormFieldAccessorType, FormRegisterType, HandleSubmitType, ExtractEditableType, ExtractReadonlyType, AllFieldsType, CreatableBdo, UpdatableBdo, FormBdo, } from "./types";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useBDOForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACjE,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,6BAA6B,EAC7B,6BAA6B,EAC7B,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,OAAO,GACR,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { UseFormReturn, Control } from 'react-hook-form';
|
|
2
|
+
import type { MutableRefObject } from 'react';
|
|
3
|
+
import type { BaseField } from '../../../bdo/fields/BaseField';
|
|
4
|
+
/** Coerce form value to match field's expected type (HTML inputs return strings) */
|
|
5
|
+
export declare function coerceFieldValue(field: BaseField<unknown>, value: unknown): unknown;
|
|
6
|
+
/**
|
|
7
|
+
* Strip trailing Z from DateTime response values for HTML datetime-local inputs.
|
|
8
|
+
* Takes a fields map (use bdo.getFields() for BDO forms).
|
|
9
|
+
*/
|
|
10
|
+
export declare function coerceRecordForForm(fields: Record<string, BaseField<unknown>>, data: Record<string, unknown>): Record<string, unknown>;
|
|
11
|
+
/** API function signature for per-field sync */
|
|
12
|
+
export type SyncApiFnType = (fieldName: string, value: unknown) => Promise<unknown>;
|
|
13
|
+
export interface CreateSyncFieldOptionsType {
|
|
14
|
+
apiFn: SyncApiFnType;
|
|
15
|
+
allFields: Record<string, BaseField<unknown>>;
|
|
16
|
+
readonlyFieldNames: string[];
|
|
17
|
+
rhf: UseFormReturn;
|
|
18
|
+
isComputingRef: MutableRefObject<boolean>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Factory that returns a `syncField(fieldName)` function.
|
|
22
|
+
* Validates the field, coerces its value, sends it to the API,
|
|
23
|
+
* resets dirty state, and updates computed/readonly fields from the response.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createSyncField(opts: CreateSyncFieldOptionsType): (fieldName: string) => Promise<void>;
|
|
26
|
+
export interface CreateEnhancedRegisterOptionsType {
|
|
27
|
+
rhf: UseFormReturn;
|
|
28
|
+
allFields: Record<string, BaseField<unknown>>;
|
|
29
|
+
syncField: (fieldName: string) => Promise<void>;
|
|
30
|
+
syncOnBlur: boolean;
|
|
31
|
+
syncOnChange: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Factory that returns an enhanced `register` function.
|
|
35
|
+
* Injects syncField into onBlur/onChange based on mode, and auto-disables readonly fields.
|
|
36
|
+
*/
|
|
37
|
+
export declare function createEnhancedRegister(opts: CreateEnhancedRegisterOptionsType): (name: string, registerOptions?: any) => import("react-hook-form").UseFormRegisterReturn<string>;
|
|
38
|
+
export interface CreateEnhancedControlOptionsType {
|
|
39
|
+
control: Control;
|
|
40
|
+
syncField: (fieldName: string) => Promise<void>;
|
|
41
|
+
syncOnBlur: boolean;
|
|
42
|
+
syncOnChange: boolean;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Factory that returns a Proxy over RHF's `control` object.
|
|
46
|
+
* Intercepts `control.register` to inject syncField into onChange/onBlur
|
|
47
|
+
* for Controller components.
|
|
48
|
+
*/
|
|
49
|
+
export declare function createEnhancedControl(opts: CreateEnhancedControlOptionsType): Control;
|
|
50
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useBDOForm/shared.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,aAAa,EACb,OAAO,EAGR,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D,oFAAoF;AACpF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EACzB,KAAK,EAAE,OAAO,GACb,OAAO,CAyBT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAC1C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYzB;AAUD,gDAAgD;AAChD,MAAM,MAAM,aAAa,GAAG,CAC1B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,GAAG,EAAE,aAAa,CAAC;IACnB,cAAc,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;CAC3C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,0BAA0B,GAC/B,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAqDtC;AAED,MAAM,WAAW,iCAAiC;IAChD,GAAG,EAAE,aAAa,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,iCAAiC,IAI/B,MAAM,MAAM,EAAE,kBAAkB,GAAG,6DA+B5C;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,gCAAgC,GACrC,OAAO,CAmCT"}
|
|
@@ -10,7 +10,7 @@ export type ExtractEditableType<B> = B extends BaseBdo<any, infer E, any> ? E :
|
|
|
10
10
|
export type ExtractReadonlyType<B> = B extends BaseBdo<any, any, infer R> ? R : never;
|
|
11
11
|
/** All accessible fields (editable + readonly + system) for RHF internal use */
|
|
12
12
|
export type AllFieldsType<B> = ExtractEditableType<B> & ExtractReadonlyType<B> & SystemFieldsType;
|
|
13
|
-
/** Minimum BDO shape required for any
|
|
13
|
+
/** Minimum BDO shape required for any useBDOForm usage */
|
|
14
14
|
interface BaseBdoShape {
|
|
15
15
|
readonly meta: BdoMetaType;
|
|
16
16
|
getFields(): Record<string, BaseField<unknown>>;
|
|
@@ -36,9 +36,9 @@ export type FormBdo<TEditable = any> = CreatableBdo<TEditable> & UpdatableBdo<TE
|
|
|
36
36
|
* - onError: Called with FieldErrors (validation) or Error (API)
|
|
37
37
|
*/
|
|
38
38
|
export type HandleSubmitType<TRead = unknown> = (onSuccess?: (data: TRead, e?: React.BaseSyntheticEvent) => void | Promise<void>, onError?: (error: FieldErrors | Error, e?: React.BaseSyntheticEvent) => void | Promise<void>) => (e?: React.BaseSyntheticEvent) => Promise<void>;
|
|
39
|
-
export type
|
|
39
|
+
export type UseBDOFormOptionsType<B extends BaseBdo<any, any, any>> = UseBDOFormCreateOptionsType<B> | UseBDOFormUpdateOptionsType<B> | UseBDOFormAutoOptionsType<B>;
|
|
40
40
|
/** Options when operation is explicitly "create" — BDO must have create() */
|
|
41
|
-
interface
|
|
41
|
+
interface UseBDOFormCreateOptionsType<B extends BaseBdo<any, any, any>> {
|
|
42
42
|
bdo: B & CreatableBdo<ExtractEditableType<B>>;
|
|
43
43
|
operation: "create";
|
|
44
44
|
recordId?: undefined;
|
|
@@ -49,7 +49,7 @@ interface UseFormCreateOptionsType<B extends BaseBdo<any, any, any>> {
|
|
|
49
49
|
enableExpressionValidation?: boolean;
|
|
50
50
|
}
|
|
51
51
|
/** Options when operation is explicitly "update" — BDO must have get() + update() */
|
|
52
|
-
interface
|
|
52
|
+
interface UseBDOFormUpdateOptionsType<B extends BaseBdo<any, any, any>> {
|
|
53
53
|
bdo: B & UpdatableBdo<ExtractEditableType<B>>;
|
|
54
54
|
operation: "update";
|
|
55
55
|
recordId: string;
|
|
@@ -60,7 +60,7 @@ interface UseFormUpdateOptionsType<B extends BaseBdo<any, any, any>> {
|
|
|
60
60
|
enableExpressionValidation?: boolean;
|
|
61
61
|
}
|
|
62
62
|
/** Options when operation is auto-inferred — BDO must support both */
|
|
63
|
-
interface
|
|
63
|
+
interface UseBDOFormAutoOptionsType<B extends BaseBdo<any, any, any>> {
|
|
64
64
|
bdo: B & FormBdo<ExtractEditableType<B>>;
|
|
65
65
|
operation?: undefined;
|
|
66
66
|
recordId?: string;
|
|
@@ -107,7 +107,7 @@ export type FormItemType<TEditable extends Record<string, unknown>, TReadonly ex
|
|
|
107
107
|
toJSON(): Partial<TEditable & TReadonly>;
|
|
108
108
|
validate(): Promise<boolean>;
|
|
109
109
|
};
|
|
110
|
-
export interface
|
|
110
|
+
export interface UseBDOFormReturnType<B extends BaseBdo<any, any, any>> {
|
|
111
111
|
item: FormItemType<ExtractEditableType<B>, ExtractReadonlyType<B>>;
|
|
112
112
|
bdo: B;
|
|
113
113
|
operation: "create" | "update";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useBDOForm/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BaseBdo } from "../../../bdo";
|
|
2
|
-
import type {
|
|
2
|
+
import type { UseBDOFormOptionsType, UseBDOFormReturnType } from "./types";
|
|
3
3
|
/**
|
|
4
4
|
* A form hook that integrates with React Hook Form.
|
|
5
5
|
*
|
|
@@ -12,7 +12,7 @@ import type { UseFormOptionsType, UseFormReturnType } from "./types";
|
|
|
12
12
|
* - Smart register: auto-disables readonly fields
|
|
13
13
|
* - Payload filtering: handleSubmit auto-filters to editable fields only
|
|
14
14
|
* - Constraint validation: auto-validates required, length, etc. from field meta
|
|
15
|
-
* -
|
|
15
|
+
* - Per-field sync: validates, sends to API, resets dirty, updates computed fields
|
|
16
16
|
*/
|
|
17
|
-
export declare function
|
|
18
|
-
//# sourceMappingURL=
|
|
17
|
+
export declare function useBDOForm<B extends BaseBdo<any, any, any>>(options: UseBDOFormOptionsType<B>): UseBDOFormReturnType<B>;
|
|
18
|
+
//# sourceMappingURL=useBDOForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBDOForm.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useBDOForm/useBDOForm.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EAIrB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACzD,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAChC,oBAAoB,CAAC,CAAC,CAAC,CAwRzB"}
|
|
@@ -2,14 +2,12 @@ import type { UseTableReturnType, PaginationStateType } from '../useTable/types'
|
|
|
2
2
|
import type { UseFilterOptionsType } from '../useFilter/types';
|
|
3
3
|
import type { SortType } from '../../../types/common';
|
|
4
4
|
export interface UseBDOTableOptionsType<T> {
|
|
5
|
-
/** BDO instance
|
|
5
|
+
/** BDO instance — only meta._id is used (for API routing) */
|
|
6
6
|
bdo: {
|
|
7
7
|
meta: {
|
|
8
8
|
readonly _id: string;
|
|
9
9
|
readonly name: string;
|
|
10
10
|
};
|
|
11
|
-
list(options?: any): Promise<any>;
|
|
12
|
-
count(options?: any): Promise<any>;
|
|
13
11
|
};
|
|
14
12
|
/** Initial state */
|
|
15
13
|
initialState?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useBDOTable/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useBDOTable/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,6DAA6D;IAC7D,GAAG,EAAE;QACH,IAAI,EAAE;YAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACvD,CAAC;IACF,oBAAoB;IACpB,YAAY,CAAC,EAAE;QACb,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,UAAU,CAAC,EAAE,mBAAmB,CAAC;QACjC,MAAM,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;KAClC,CAAC;IACF,qBAAqB;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,yDAAyD;IACzD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBDOTable.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useBDOTable/useBDOTable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useBDOTable.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useBDOTable/useBDOTable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAE7E,wBAAgB,WAAW,CAAC,CAAC,GAAG,GAAG,EACjC,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GACjC,qBAAqB,CAAC,CAAC,CAAC,CAS1B"}
|
package/dist/form.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const K=require("./constants-QX2RX-wu.cjs"),_=require("react"),I=require("./shared-nnmlRVs7.cjs"),J=require("@tanstack/react-query"),y=require("./client-D5k4SYuw.cjs"),k=require("./attachment-constants-B5jlqoKI.cjs"),W=require("./metadata-DWXQPDav.cjs");function X(T,a){const g=T.getFields(),b=new Map,C=T.getBoId();let m=null,x=null;async function M(){const S=a.getValues("_id");return S||m||(x||(x=y.api(C).draftInteraction({}).then(e=>(m=e._id,a.setValue("_id",m,{shouldDirty:!1}),m)).catch(e=>{throw x=null,e})),x)}return new Proxy({},{get(S,e){if(typeof e=="symbol")return;if(e==="_id")return a.getValues("_id");if(e==="toJSON")return()=>a.getValues();if(e==="validate")return()=>a.trigger();if(e==="_hasDraft")return()=>!!m;if(b.has(e))return b.get(e);const i=g[e],d=(i==null?void 0:i.meta)??{_id:e,Name:e,Type:"String"},L=(i==null?void 0:i.readOnly)??!1,N=()=>{if(!i)return{valid:!0,errors:[]};let l=a.getValues(e);if("integerPart"in i&&typeof l=="string"&&l!==""){const o=Number(l);isNaN(o)||(l=o,a.setValue(e,o,{shouldDirty:!1}))}if(!i.required&&(l==null||l===""||Array.isArray(l)&&l.length===0))return{valid:!0,errors:[]};const s=i.validate(l);if(!s.valid)return s;const t=I.validateConstraints(i,l);if(!t.valid)return t;if(T.hasMetadata()){const o=T.validateFieldExpression(e,l,a.getValues());if(!o.valid)return o}return{valid:!0,errors:[]}},B=l=>{const s=a.getValues(e);return s??l};if(!L){const l=()=>{const t=a.getValues(e);return d.Type==="File"?t??[]:t},s={label:(i==null?void 0:i.label)??e,required:(i==null?void 0:i.required)??!1,readOnly:!1,defaultValue:i==null?void 0:i.defaultValue,meta:d,get:l,getOrDefault:B,set:t=>{a.setValue(e,t,{shouldDirty:!0,shouldTouch:!0,shouldValidate:!1})},validate:N};if(d.Type==="Image"||d.Type==="File"){const t=C,o=()=>{const n=a.getValues("_id");if(!n)throw new Error("Save the record before attachment operations");return n};d.Type==="Image"?(s.upload=async n=>{k.validateFileExtension(n.name,"Image");const r=await M(),[c]=await y.api(t).getUploadUrl(r,e,[{FileName:n.name,Size:n.size,FileExtension:k.extractFileExtension(n.name)}]);await fetch(c.UploadUrl.URL,{method:"PUT",headers:{"Content-Type":c.ContentType},body:n});const f={_id:c._id,_name:c._name,FileName:c.FileName,FileExtension:c.FileExtension,Size:c.Size,ContentType:c.ContentType};return a.setValue(e,f,{shouldDirty:!0}),f},s.deleteAttachment=async()=>{const n=a.getValues(e),r=o();if(!(n!=null&&n._id))throw new Error(`${e} has no image to delete`);await y.api(t).deleteAttachment(r,e,n._id),a.setValue(e,null,{shouldDirty:!0})},s.getDownloadUrl=async n=>{const r=a.getValues(e),c=o();if(!(r!=null&&r._id))throw new Error(`${e} has no image`);return y.api(t).getDownloadUrl(c,e,r._id,n)}):(s.upload=async n=>{for(const V of n)k.validateFileExtension(V.name,"File");const r=await M(),c=n.map(V=>({FileName:V.name,Size:V.size,FileExtension:k.extractFileExtension(V.name)})),f=await y.api(t).getUploadUrl(r,e,c),R=await Promise.all(n.map(async(V,h)=>(await fetch(f[h].UploadUrl.URL,{method:"PUT",headers:{"Content-Type":f[h].ContentType},body:V}),{_id:f[h]._id,_name:f[h]._name,FileName:f[h].FileName,FileExtension:f[h].FileExtension,Size:f[h].Size,ContentType:f[h].ContentType}))),U=a.getValues(e)??[];return a.setValue(e,[...U,...R],{shouldDirty:!0}),R},s.deleteAttachment=async n=>{const r=a.getValues(e)??[],c=o();await y.api(t).deleteAttachment(c,e,n),a.setValue(e,r.filter(f=>f._id!==n),{shouldDirty:!0})},s.getDownloadUrl=async(n,r)=>{const c=o();return y.api(t).getDownloadUrl(c,e,n,r)},s.getDownloadUrls=async n=>{const r=o();return y.api(t).getDownloadUrls(r,e,n)})}return b.set(e,s),s}const u=()=>{const l=a.getValues(e);return d.Type==="File"?l??[]:l},v={label:(i==null?void 0:i.label)??e,required:(i==null?void 0:i.required)??!1,readOnly:!0,defaultValue:i==null?void 0:i.defaultValue,meta:d,get:u,getOrDefault:B,validate:N};if(d.Type==="Image"||d.Type==="File"){const l=C,s=()=>{const t=a.getValues("_id");if(!t)throw new Error("Cannot perform attachment operation: item has no _id. Save the item first.");return t};d.Type==="Image"?v.getDownloadUrl=async t=>{const o=a.getValues(e),n=s();if(!(o!=null&&o._id))throw new Error(`${e} has no image to download`);return y.api(l).getDownloadUrl(n,e,o._id,t)}:(v.getDownloadUrl=async(t,o)=>{const n=s();return y.api(l).getDownloadUrl(n,e,t,o)},v.getDownloadUrls=async t=>{const o=s();return y.api(l).getDownloadUrls(o,e,t)})}return b.set(e,v),v},has(S,e){return typeof e=="symbol"?!1:e==="_id"||e==="toJSON"||e==="validate"||e==="_hasDraft"?!0:e in g},ownKeys(S){return[...Object.keys(g),"_id","toJSON","validate"]},getOwnPropertyDescriptor(S,e){if(typeof e!="symbol")return{configurable:!0,enumerable:e!=="toJSON"&&e!=="validate"&&e!=="_hasDraft"}}})}function Y(T){const{bdo:a,recordId:g,operation:b,defaultValues:C,mode:m="onBlur",enableDraft:x=!1,enableConstraintValidation:M,enableExpressionValidation:S}=T,e=b??(g?"update":"create"),i=_.useMemo(()=>I.createResolver(a,{enableConstraintValidation:M}),[a,M]),{data:d,isLoading:L,isFetching:N,error:B}=J.useQuery({queryKey:["form-record",a.meta._id,g],queryFn:async()=>{const w=await a.get(g);return I.coerceRecordForForm(a.getFields(),w.toJSON())},enabled:e==="update"&&!!g,staleTime:0}),{data:u,isLoading:v,error:l}=J.useQuery({queryKey:["form-draft",a.meta._id],queryFn:async()=>y.api(a.meta._id).draftInteraction({}),enabled:e==="create",staleTime:1/0,gcTime:0,retry:1}),{data:s}=J.useQuery({queryKey:["form-schema",a.meta._id],queryFn:()=>W.getBdoSchema(a.meta._id),staleTime:30*60*1e3,gcTime:60*60*1e3,enabled:S!==!1});_.useEffect(()=>{s!=null&&s.BDOBlob?a.loadMetadata(s.BDOBlob):s!=null&&s.MetaBlob&&a.loadMetadata(s.MetaBlob)},[s,a]);const t=I.useForm({mode:m,resolver:i,defaultValues:C}),o=_.useRef(null);_.useEffect(()=>{e==="update"&&d&&d!==o.current&&(t.reset(d),o.current=d)},[d,e,t]),_.useEffect(()=>{u!=null&&u._id&&t.setValue("_id",u._id)},[u,t]);const n=_.useMemo(()=>X(a,t),[a,t]),r=a.getFields(),c=_.useRef(!1),f=_.useMemo(()=>Object.keys(r).filter(w=>r[w].readOnly),[r]),R=_.useCallback(async(w,F)=>{if(e==="create"&&(u!=null&&u._id))return y.api(a.meta._id).draftInteraction({_id:u._id,[w]:F});if(e==="update"&&g)return y.api(a.meta._id).update(g,{[w]:F})},[e,u,g,a]),U=_.useMemo(()=>I.createSyncField({apiFn:R,allFields:r,readonlyFieldNames:f,rhf:t,isComputingRef:c}),[R,r,f,t]),V=m==="onChange"||m==="all",h=m==="onBlur"||m==="onTouched"||m==="all",Q=_.useMemo(()=>I.createEnhancedRegister({rhf:t,allFields:r,syncField:U,syncOnBlur:h,syncOnChange:V}),[t,r,U,h,V]),$=_.useMemo(()=>I.createEnhancedControl({control:t.control,syncField:U,syncOnBlur:h,syncOnChange:V}),[t.control,U,h,V]),G=_.useCallback((w,F)=>t.handleSubmit(async(P,z)=>{try{const O={},A=t.getValues();if(e==="create")for(const[q,D]of Object.entries(r)){if(D.readOnly)continue;const E=A[q]!==void 0?A[q]:P[q];E!==void 0&&(O[q]=I.coerceFieldValue(D,E))}else{const q=t.formState.dirtyFields;for(const[D,E]of Object.entries(r)){if(E.readOnly||!q[D])continue;const H=A[D]!==void 0?A[D]:P[D];O[D]=I.coerceFieldValue(E,H)}}let j;e==="create"?(O._id=u==null?void 0:u._id,j=await y.api(a.meta._id).draft(O)):j=await y.api(a.meta._id).update(g,O),w==null||w(j,z)}catch(O){F==null||F(O,z)}},(P,z)=>{F==null||F(P,z)}),[t,a,e,g,r,u]);return{item:n,bdo:a,operation:e,recordId:g,register:Q,handleSubmit:G,watch:t.watch,setValue:t.setValue,getValues:t.getValues,reset:t.reset,trigger:t.trigger,control:$,formState:t.formState,errors:t.formState.errors,isDirty:t.formState.isDirty,isValid:t.formState.isValid,isSubmitting:t.formState.isSubmitting,isSubmitSuccessful:t.formState.isSubmitSuccessful,dirtyFields:t.formState.dirtyFields,isLoading:L||v,isFetching:N,loadError:B??l,draftId:u==null?void 0:u._id,isCreatingDraft:v}}exports.FormOperation=K.FormOperation;exports.InteractionMode=K.InteractionMode;exports.ValidationMode=K.ValidationMode;exports.useBDOForm=Y;
|
package/dist/form.d.ts
CHANGED
package/dist/form.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../sdk/form.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../sdk/form.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|