@openmrs/esm-form-engine-lib 4.2.2-pre.2546 → 4.2.2-pre.2550

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 (32) hide show
  1. package/dist/components/processor-factory/form-processor-factory.component.js +111 -39
  2. package/dist/components/renderer/custom-hooks-renderer.component.js +2 -2
  3. package/dist/hooks/useFormFieldValidators.js +22 -12
  4. package/dist/hooks/useFormFieldValueAdapters.js +22 -15
  5. package/dist/hooks/useFormFields.js +35 -42
  6. package/dist/hooks/useInitialValues.js +12 -5
  7. package/dist/hooks/useProcessorDependencies.js +2 -2
  8. package/dist/processors/encounter/encounter-form-processor.js +10 -20
  9. package/dist/processors/form-processor.js +4 -1
  10. package/dist/src/components/processor-factory/form-processor-factory.component.d.ts.map +1 -1
  11. package/dist/src/components/renderer/custom-hooks-renderer.component.d.ts +5 -8
  12. package/dist/src/components/renderer/custom-hooks-renderer.component.d.ts.map +1 -1
  13. package/dist/src/hooks/useFormFieldValidators.d.ts.map +1 -1
  14. package/dist/src/hooks/useFormFieldValueAdapters.d.ts.map +1 -1
  15. package/dist/src/hooks/useFormFields.d.ts.map +1 -1
  16. package/dist/src/hooks/useInitialValues.d.ts.map +1 -1
  17. package/dist/src/hooks/useProcessorDependencies.d.ts +2 -2
  18. package/dist/src/hooks/useProcessorDependencies.d.ts.map +1 -1
  19. package/dist/src/processors/encounter/encounter-form-processor.d.ts +6 -3
  20. package/dist/src/processors/encounter/encounter-form-processor.d.ts.map +1 -1
  21. package/dist/src/processors/form-processor.d.ts +21 -2
  22. package/dist/src/processors/form-processor.d.ts.map +1 -1
  23. package/package.json +1 -1
  24. package/src/components/processor-factory/form-processor-factory.component.tsx +151 -35
  25. package/src/components/renderer/custom-hooks-renderer.component.tsx +6 -8
  26. package/src/hooks/useFormFieldValidators.ts +23 -13
  27. package/src/hooks/useFormFieldValueAdapters.ts +23 -16
  28. package/src/hooks/useFormFields.ts +28 -41
  29. package/src/hooks/useInitialValues.ts +15 -6
  30. package/src/hooks/useProcessorDependencies.ts +4 -3
  31. package/src/processors/encounter/encounter-form-processor.ts +12 -21
  32. package/src/processors/form-processor.ts +27 -1
@@ -4,12 +4,33 @@ import { type ValueAndDisplay, type FormField, type FormSchema, type FormProcess
4
4
 
5
5
  export type FormProcessorConstructor = new (...args: ConstructorParameters<typeof FormProcessor>) => FormProcessor;
6
6
 
7
+ /**
8
+ * The setters a processor uses to feed its results back into the processor context. These are the
9
+ * only three properties it can change; the rest of {@link FormProcessorContextProps} is derived by
10
+ * the FormProcessorFactory. They supersede the `setContext` passed alongside them, which is shaped
11
+ * like a `setState` over the whole context but silently discards everything else.
12
+ */
13
+ export interface FormProcessorContextSetters {
14
+ setDomainObjectValue: (value: OpenmrsResource) => void;
15
+ setPreviousDomainObjectValue: (value: OpenmrsResource) => void;
16
+ setCustomDependencies: (
17
+ dependencies: Record<string, any> | ((previous: Record<string, any>) => Record<string, any>),
18
+ ) => void;
19
+ }
20
+
7
21
  export type GetCustomHooksResponse = {
8
22
  useCustomHooks: (context: Partial<FormProcessorContextProps>) => {
9
23
  data: any;
10
24
  isLoading: boolean;
11
25
  error: any;
12
- updateContext: (setContext: React.Dispatch<React.SetStateAction<FormProcessorContextProps>>) => void;
26
+ /**
27
+ * Called once the hook has finished loading, to merge its results into the processor context.
28
+ * `setContext` is deprecated; use `setters`.
29
+ */
30
+ updateContext: (
31
+ setContext: React.Dispatch<React.SetStateAction<FormProcessorContextProps>>,
32
+ setters: FormProcessorContextSetters,
33
+ ) => void;
13
34
  };
14
35
  };
15
36
 
@@ -25,9 +46,14 @@ export abstract class FormProcessor {
25
46
  return this.domainObjectValue;
26
47
  }
27
48
 
49
+ /**
50
+ * Loads whatever the processor needs before the form can render, merging the results into the
51
+ * processor context. `setContext` is deprecated; use `setters`.
52
+ */
28
53
  async loadDependencies(
29
54
  context: Partial<FormProcessorContextProps>,
30
55
  setContext: React.Dispatch<React.SetStateAction<FormProcessorContextProps>>,
56
+ setters: FormProcessorContextSetters,
31
57
  ): Promise<Record<string, any>> {
32
58
  return Promise.resolve({});
33
59
  }