@bolttech/form-engine 3.1.1-beta.2 → 3.1.2-beta.0

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/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bolttech/form-engine",
3
- "version": "3.1.1-beta.2",
3
+ "version": "3.1.2-beta.0",
4
4
  "description": "A react adapter for bolttech form engine",
5
5
  "module": "./index.esm.js",
6
6
  "type": "module",
7
7
  "main": "./index.esm.js",
8
8
  "dependencies": {
9
- "@bolttech/form-engine-core": "1.0.1-beta.2",
9
+ "@bolttech/form-engine-core": "1.0.2-beta.0",
10
10
  "react": "18.2.0"
11
11
  },
12
12
  "peerDependencies": {}
@@ -1,6 +1,7 @@
1
1
  import { IComponentSchema, TFieldEvent, TMapper } from '@bolttech/form-engine-core';
2
2
  import { ElementType, PropsWithChildren } from 'react';
3
3
  import { TFieldWrapper } from '../../types';
4
+ import { OneOf } from '@bolttech/form-engine-core/src/types/utility';
4
5
  /**
5
6
  * AsFormField props, inherits all schema field implementation except the children
6
7
  * property, that will be a ReactNode
@@ -12,10 +13,12 @@ import { TFieldWrapper } from '../../types';
12
13
  * @see {@link IComponentSchema}
13
14
  * @see {@link TFieldWrapper}
14
15
  */
15
- type TAsFormFieldBuilderProps = PropsWithChildren<Omit<IComponentSchema, 'children' | 'component' | 'name'> & Required<TFieldWrapper> & {
16
- mapper: TMapper<ElementType>;
16
+ type TAsFormFieldBuilderProps = PropsWithChildren<Omit<IComponentSchema, 'component' | 'children' | 'name'> & Required<TFieldWrapper> & {
17
17
  visibility?: boolean;
18
18
  onSelected?: (data: TFieldEvent) => void;
19
19
  formMounted?: boolean;
20
- }>;
20
+ } & OneOf<{
21
+ mapper: TMapper<ElementType>;
22
+ component: string;
23
+ }>>;
21
24
  export type { TAsFormFieldBuilderProps };
@@ -0,0 +1,23 @@
1
+ import { ElementType, ReactNode } from 'react';
2
+ import { TFormGroupOnDataEventPayload } from '@bolttech/form-engine-core';
3
+ /**
4
+ * Component Wrapper to render form fields without the Form component, gets additional formId and mapper since
5
+ * it won't rely on them and needs to be manually declared
6
+ *
7
+ * @param {TAsFormFieldBuilderProps} props JSON schema props along with FieldWrapper props and mapper props
8
+ * @returns {ReactElement}
9
+ */
10
+ declare const AsFormFieldRepeater: ({ RepeaterComponent, addFieldName, removeFieldName, existingElements, stateUpdater, formPrefix, RepeaterFooter, }: {
11
+ RepeaterComponent: ElementType<{
12
+ formIndex: string;
13
+ }>;
14
+ addFieldName?: string | undefined;
15
+ removeFieldName?: string | undefined;
16
+ existingElements?: Record<string, unknown>[] | undefined;
17
+ stateUpdater?: ((payload: TFormGroupOnDataEventPayload<unknown>) => void) | undefined;
18
+ formPrefix?: string | undefined;
19
+ RepeaterFooter: ElementType<{
20
+ formIndex: string;
21
+ }>;
22
+ }) => ReactNode;
23
+ export default AsFormFieldRepeater;
@@ -7,5 +7,5 @@ import { TFieldWrapperProps } from './FieldWrapper.type';
7
7
  * @param {TFieldWrapperProps} param FieldWrapper params
8
8
  * @returns {ReactElement}
9
9
  */
10
- declare const FieldWrapper: ({ name, formIndex, children, props, context, mounted, mapper, visibility, }: TFieldWrapperProps) => ReactElement;
10
+ declare const FieldWrapper: ({ name, formIndex, children, props, context, mounted, mapper, visibility, component, }: TFieldWrapperProps) => ReactElement;
11
11
  export default FieldWrapper;
@@ -15,6 +15,7 @@ type TFieldWrapperProps = PropsWithChildren<TFieldWrapper & {
15
15
  context?: TFormContext | null;
16
16
  mounted?: boolean;
17
17
  mapper?: TMapper<ElementType>;
18
+ component?: string;
18
19
  visibility?: boolean;
19
20
  }>;
20
21
  /**
@@ -26,7 +26,7 @@ type TFormContext = {
26
26
  removeForm: (payload: {
27
27
  key: string;
28
28
  }) => void;
29
- formGroupInstance: TFormGroup;
29
+ formGroupInstance: TFormGroup<ElementType>;
30
30
  mappers?: TMapper<ElementType>[];
31
31
  printFormGroupInstance: () => void;
32
32
  submitMultipleFormsByIndex: <T>(indexes: string[], callback?: (payload: TFormValues<T>) => void) => void;
@@ -4,4 +4,5 @@ import { TEventProps } from '../types';
4
4
  * events mapping to aid function callback binding
5
5
  */
6
6
  declare const eventsMapping: Partial<Record<TEvents, TEventProps>>;
7
- export { eventsMapping };
7
+ declare const uniqueIdGen: () => string;
8
+ export { eventsMapping, uniqueIdGen };