@nvs-dynamic-form/react-core 1.4.1 → 2.0.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/dist/cjs/nvs-dynamic-form/_style.css +40 -0
- package/dist/cjs/nvs-dynamic-form/_template.d.ts +2 -2
- package/dist/cjs/nvs-dynamic-form/_template.js +22 -62
- package/dist/cjs/nvs-dynamic-form/_template.js.map +1 -1
- package/dist/cjs/nvs-dynamic-form/_type.d.ts +18 -4
- package/dist/cjs/nvs-dynamic-form/elements/arrayField/_template.d.ts +3 -0
- package/dist/cjs/nvs-dynamic-form/elements/arrayField/_template.js +62 -0
- package/dist/cjs/nvs-dynamic-form/elements/arrayField/_template.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/elements/arrayField/_type.d.ts +10 -0
- package/dist/cjs/nvs-dynamic-form/elements/arrayField/_type.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/elements/arrayField/index.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/elements/button/_template.d.ts +3 -0
- package/dist/cjs/nvs-dynamic-form/elements/button/_template.js +28 -0
- package/dist/cjs/nvs-dynamic-form/elements/button/_template.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/elements/button/_type.d.ts +8 -0
- package/dist/cjs/nvs-dynamic-form/elements/button/_type.js +3 -0
- package/dist/cjs/nvs-dynamic-form/elements/button/_type.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/elements/button/index.js +19 -0
- package/dist/cjs/nvs-dynamic-form/elements/button/index.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/elements/container/_template.d.ts +3 -0
- package/dist/cjs/nvs-dynamic-form/elements/container/_template.js +12 -0
- package/dist/cjs/nvs-dynamic-form/elements/container/_template.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/elements/container/_type.d.ts +8 -0
- package/dist/cjs/nvs-dynamic-form/elements/container/_type.js +3 -0
- package/dist/cjs/nvs-dynamic-form/elements/container/_type.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/elements/container/index.d.ts +2 -0
- package/dist/cjs/nvs-dynamic-form/elements/container/index.js +19 -0
- package/dist/cjs/nvs-dynamic-form/elements/container/index.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/elements/field/_template.js +9 -3
- package/dist/cjs/nvs-dynamic-form/elements/field/_template.js.map +1 -1
- package/dist/cjs/nvs-dynamic-form/elements/field/_type.d.ts +7 -6
- package/dist/cjs/nvs-dynamic-form/elements/groupField/_template.d.ts +2 -0
- package/dist/cjs/nvs-dynamic-form/elements/groupField/_template.js +26 -0
- package/dist/cjs/nvs-dynamic-form/elements/groupField/_template.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/elements/groupField/_type.d.ts +9 -0
- package/dist/cjs/nvs-dynamic-form/elements/groupField/_type.js +3 -0
- package/dist/cjs/nvs-dynamic-form/elements/groupField/_type.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/elements/groupField/index.d.ts +2 -0
- package/dist/cjs/nvs-dynamic-form/elements/groupField/index.js +19 -0
- package/dist/cjs/nvs-dynamic-form/elements/groupField/index.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/formikForm/_template.d.ts +3 -0
- package/dist/cjs/nvs-dynamic-form/formikForm/_template.js +87 -0
- package/dist/cjs/nvs-dynamic-form/formikForm/_template.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/formikForm/_type.d.ts +8 -0
- package/dist/cjs/nvs-dynamic-form/formikForm/_type.js +3 -0
- package/dist/cjs/nvs-dynamic-form/formikForm/_type.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/formikForm/index.d.ts +1 -0
- package/dist/cjs/nvs-dynamic-form/formikForm/index.js +18 -0
- package/dist/cjs/nvs-dynamic-form/formikForm/index.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/services/generateFormContentUtils.d.ts +39 -0
- package/dist/cjs/nvs-dynamic-form/services/generateFormContentUtils.js +92 -0
- package/dist/cjs/nvs-dynamic-form/services/generateFormContentUtils.js.map +1 -0
- package/dist/cjs/types/array-field-action-button.type.d.ts +14 -0
- package/dist/cjs/types/array-field-action-button.type.js +26 -0
- package/dist/cjs/types/array-field-action-button.type.js.map +1 -0
- package/dist/cjs/types/array-field.type.d.ts +13 -0
- package/dist/cjs/types/array-field.type.js +16 -0
- package/dist/cjs/types/array-field.type.js.map +1 -0
- package/dist/cjs/types/{form-field.type.d.ts → field-base.type.d.ts} +1 -1
- package/dist/cjs/types/{form-field.type.js → field-base.type.js} +1 -1
- package/dist/cjs/types/{form-field.type.js.map → field-base.type.js.map} +1 -1
- package/dist/cjs/types/group-field.type.d.ts +10 -0
- package/dist/cjs/types/group-field.type.js +13 -0
- package/dist/cjs/types/group-field.type.js.map +1 -0
- package/dist/cjs/types/index.d.ts +4 -2
- package/dist/cjs/types/index.js +4 -2
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/{submit-button-options.type.d.ts → submit-button-default-options.type.d.ts} +1 -1
- package/dist/cjs/types/submit-button-default-options.type.js +3 -0
- package/dist/cjs/types/submit-button-default-options.type.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/_style.css +40 -0
- package/dist/esm/nvs-dynamic-form/_template.d.ts +2 -2
- package/dist/esm/nvs-dynamic-form/_template.js +20 -40
- package/dist/esm/nvs-dynamic-form/_template.js.map +1 -1
- package/dist/esm/nvs-dynamic-form/_type.d.ts +18 -4
- package/dist/esm/nvs-dynamic-form/elements/arrayField/_template.d.ts +3 -0
- package/dist/esm/nvs-dynamic-form/elements/arrayField/_template.js +55 -0
- package/dist/esm/nvs-dynamic-form/elements/arrayField/_template.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/elements/arrayField/_type.d.ts +10 -0
- package/dist/esm/nvs-dynamic-form/elements/arrayField/_type.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/elements/arrayField/index.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/elements/button/_template.d.ts +3 -0
- package/dist/esm/nvs-dynamic-form/elements/button/_template.js +21 -0
- package/dist/esm/nvs-dynamic-form/elements/button/_template.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/elements/button/_type.d.ts +8 -0
- package/dist/esm/nvs-dynamic-form/elements/button/_type.js +2 -0
- package/dist/esm/nvs-dynamic-form/elements/button/_type.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/elements/button/index.d.ts +2 -0
- package/dist/esm/nvs-dynamic-form/elements/button/index.js +3 -0
- package/dist/esm/nvs-dynamic-form/elements/button/index.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/elements/container/_template.d.ts +3 -0
- package/dist/esm/nvs-dynamic-form/elements/container/_template.js +5 -0
- package/dist/esm/nvs-dynamic-form/elements/container/_template.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/elements/container/_type.d.ts +8 -0
- package/dist/esm/nvs-dynamic-form/elements/container/_type.js +2 -0
- package/dist/esm/nvs-dynamic-form/elements/container/_type.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/elements/container/index.d.ts +2 -0
- package/dist/esm/nvs-dynamic-form/elements/container/index.js +3 -0
- package/dist/esm/nvs-dynamic-form/elements/container/index.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/elements/field/_template.js +9 -3
- package/dist/esm/nvs-dynamic-form/elements/field/_template.js.map +1 -1
- package/dist/esm/nvs-dynamic-form/elements/field/_type.d.ts +7 -6
- package/dist/esm/nvs-dynamic-form/elements/groupField/_template.d.ts +2 -0
- package/dist/esm/nvs-dynamic-form/elements/groupField/_template.js +22 -0
- package/dist/esm/nvs-dynamic-form/elements/groupField/_template.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/elements/groupField/_type.d.ts +9 -0
- package/dist/esm/nvs-dynamic-form/elements/groupField/_type.js +2 -0
- package/dist/esm/nvs-dynamic-form/elements/groupField/_type.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/elements/groupField/index.d.ts +2 -0
- package/dist/esm/nvs-dynamic-form/elements/groupField/index.js +3 -0
- package/dist/esm/nvs-dynamic-form/elements/groupField/index.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/formikForm/_template.d.ts +3 -0
- package/dist/esm/nvs-dynamic-form/formikForm/_template.js +60 -0
- package/dist/esm/nvs-dynamic-form/formikForm/_template.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/formikForm/_type.d.ts +8 -0
- package/dist/esm/nvs-dynamic-form/formikForm/_type.js +2 -0
- package/dist/esm/nvs-dynamic-form/formikForm/_type.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/formikForm/index.d.ts +1 -0
- package/dist/esm/nvs-dynamic-form/formikForm/index.js +2 -0
- package/dist/esm/nvs-dynamic-form/formikForm/index.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/services/generateFormContentUtils.d.ts +39 -0
- package/dist/esm/nvs-dynamic-form/services/generateFormContentUtils.js +85 -0
- package/dist/esm/nvs-dynamic-form/services/generateFormContentUtils.js.map +1 -0
- package/dist/esm/types/array-field-action-button.type.d.ts +14 -0
- package/dist/esm/types/array-field-action-button.type.js +20 -0
- package/dist/esm/types/array-field-action-button.type.js.map +1 -0
- package/dist/esm/types/array-field.type.d.ts +13 -0
- package/dist/esm/types/array-field.type.js +12 -0
- package/dist/esm/types/array-field.type.js.map +1 -0
- package/dist/esm/types/{form-field.type.d.ts → field-base.type.d.ts} +1 -1
- package/dist/esm/types/{form-field.type.js → field-base.type.js} +1 -1
- package/dist/esm/types/{form-field.type.js.map → field-base.type.js.map} +1 -1
- package/dist/esm/types/group-field.type.d.ts +10 -0
- package/dist/esm/types/group-field.type.js +9 -0
- package/dist/esm/types/group-field.type.js.map +1 -0
- package/dist/esm/types/index.d.ts +4 -2
- package/dist/esm/types/index.js +4 -2
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/{submit-button-options.type.d.ts → submit-button-default-options.type.d.ts} +1 -1
- package/dist/esm/types/submit-button-default-options.type.js +2 -0
- package/dist/esm/types/submit-button-default-options.type.js.map +1 -0
- package/lib/nvs-dynamic-form/_stories.tsx +276 -16
- package/lib/nvs-dynamic-form/_style.css +40 -0
- package/lib/nvs-dynamic-form/_template.tsx +40 -65
- package/lib/nvs-dynamic-form/_type.tsx +23 -4
- package/lib/nvs-dynamic-form/elements/arrayField/_template.tsx +123 -0
- package/lib/nvs-dynamic-form/elements/arrayField/_type.tsx +11 -0
- package/lib/nvs-dynamic-form/elements/arrayField/index.tsx +2 -0
- package/lib/nvs-dynamic-form/elements/button/_template.tsx +42 -0
- package/lib/nvs-dynamic-form/elements/button/_type.tsx +8 -0
- package/lib/nvs-dynamic-form/elements/button/index.tsx +2 -0
- package/lib/nvs-dynamic-form/elements/container/_template.tsx +10 -0
- package/lib/nvs-dynamic-form/elements/container/_type.tsx +7 -0
- package/lib/nvs-dynamic-form/elements/container/index.tsx +2 -0
- package/lib/nvs-dynamic-form/elements/field/_template.tsx +9 -4
- package/lib/nvs-dynamic-form/elements/field/_type.tsx +8 -6
- package/lib/nvs-dynamic-form/elements/groupField/_template.tsx +32 -0
- package/lib/nvs-dynamic-form/elements/groupField/_type.tsx +10 -0
- package/lib/nvs-dynamic-form/elements/groupField/index.tsx +2 -0
- package/lib/nvs-dynamic-form/formikForm/_template.tsx +85 -0
- package/lib/nvs-dynamic-form/formikForm/_type.tsx +9 -0
- package/lib/nvs-dynamic-form/formikForm/index.tsx +1 -0
- package/lib/nvs-dynamic-form/services/generateFormContentUtils.tsx +173 -0
- package/lib/types/array-field-action-button.type.tsx +26 -0
- package/lib/types/array-field.type.tsx +27 -0
- package/lib/types/{form-field.type.tsx → field-base.type.tsx} +1 -1
- package/lib/types/group-field.type.tsx +15 -0
- package/lib/types/index.tsx +4 -2
- package/lib/types/submit-button-default-options.type.tsx +5 -0
- package/package.json +1 -1
- package/dist/cjs/nvs-dynamic-form/elements/submit-button/_template.d.ts +0 -3
- package/dist/cjs/nvs-dynamic-form/elements/submit-button/_template.js +0 -30
- package/dist/cjs/nvs-dynamic-form/elements/submit-button/_template.js.map +0 -1
- package/dist/cjs/nvs-dynamic-form/elements/submit-button/_type.d.ts +0 -11
- package/dist/cjs/nvs-dynamic-form/elements/submit-button/_type.js.map +0 -1
- package/dist/cjs/nvs-dynamic-form/elements/submit-button/index.js.map +0 -1
- package/dist/cjs/types/submit-button-options.type.js +0 -7
- package/dist/cjs/types/submit-button-options.type.js.map +0 -1
- package/dist/esm/nvs-dynamic-form/elements/submit-button/_template.d.ts +0 -3
- package/dist/esm/nvs-dynamic-form/elements/submit-button/_template.js +0 -23
- package/dist/esm/nvs-dynamic-form/elements/submit-button/_template.js.map +0 -1
- package/dist/esm/nvs-dynamic-form/elements/submit-button/_type.d.ts +0 -11
- package/dist/esm/nvs-dynamic-form/elements/submit-button/_type.js.map +0 -1
- package/dist/esm/nvs-dynamic-form/elements/submit-button/index.js.map +0 -1
- package/dist/esm/types/submit-button-options.type.js +0 -3
- package/dist/esm/types/submit-button-options.type.js.map +0 -1
- package/lib/nvs-dynamic-form/elements/submit-button/_template.tsx +0 -42
- package/lib/nvs-dynamic-form/elements/submit-button/_type.tsx +0 -12
- package/lib/types/submit-button-options.type.tsx +0 -5
- /package/dist/cjs/nvs-dynamic-form/elements/{submit-button → arrayField}/_type.js +0 -0
- /package/dist/cjs/nvs-dynamic-form/elements/{submit-button → arrayField}/index.d.ts +0 -0
- /package/dist/cjs/nvs-dynamic-form/elements/{submit-button → arrayField}/index.js +0 -0
- /package/dist/{esm/nvs-dynamic-form/elements/submit-button → cjs/nvs-dynamic-form/elements/button}/index.d.ts +0 -0
- /package/dist/esm/nvs-dynamic-form/elements/{submit-button → arrayField}/_type.js +0 -0
- /package/{lib/nvs-dynamic-form/elements/submit-button/index.tsx → dist/esm/nvs-dynamic-form/elements/arrayField/index.d.ts} +0 -0
- /package/dist/esm/nvs-dynamic-form/elements/{submit-button → arrayField}/index.js +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ArrayFieldAddButton, ArrayFieldRemoveButton, } from "./array-field-action-button.type";
|
|
2
|
+
export class ArrayField {
|
|
3
|
+
constructor(options) {
|
|
4
|
+
this.fieldType = "fieldArray";
|
|
5
|
+
this.id = options.id;
|
|
6
|
+
this.fields = options.fields ?? [];
|
|
7
|
+
this.addButtonOptions = new ArrayFieldAddButton(options.addButtonOptions ?? {});
|
|
8
|
+
this.removeButtonOptions = new ArrayFieldRemoveButton(options.removeButtonOptions ?? {});
|
|
9
|
+
this.defaultValues = options.defaultValues ?? [];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=array-field.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-field.type.js","sourceRoot":"","sources":["../../../lib/types/array-field.type.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAI1C,MAAM,OAAO,UAAU;IAQrB,YAAY,OAA8B;QAP1C,cAAS,GAAY,YAAY,CAAC;QAQhC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,mBAAmB,CAC7C,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAC/B,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,sBAAsB,CACnD,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAClC,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;IACnD,CAAC;CACF"}
|
|
@@ -9,7 +9,7 @@ export declare abstract class FieldBase<ValueType, HtmlElement = any> {
|
|
|
9
9
|
screenSize?: ScreenSizeType | IScreenSize;
|
|
10
10
|
validate?: Yup.AnySchema;
|
|
11
11
|
error?: string;
|
|
12
|
-
onChange?: (event: ChangeEvent<HtmlElement>) => void;
|
|
12
|
+
onChange?: (event: ChangeEvent<HtmlElement> | Array<unknown>) => void;
|
|
13
13
|
onBlur?: (event: FocusEvent<HtmlElement>) => void;
|
|
14
14
|
constructor(options: FieldBase<ValueType>, fieldDefaultValue?: ValueType);
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"field-base.type.js","sourceRoot":"","sources":["../../../lib/types/field-base.type.tsx"],"names":[],"mappings":"AAKA,MAAM,OAAgB,SAAS;IAW7B,YAAY,OAA6B,EAAE,iBAA6B;QACtE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,iBAAiB,CAAC;QAC9D,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export class GroupField {
|
|
2
|
+
constructor(options) {
|
|
3
|
+
this.id = options.id;
|
|
4
|
+
this.fields = options.fields ?? [];
|
|
5
|
+
this.containerVisible = options.containerVisible ?? false;
|
|
6
|
+
this.containerOptions = options.containerOptions ?? {};
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=group-field.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-field.type.js","sourceRoot":"","sources":["../../../lib/types/group-field.type.tsx"],"names":[],"mappings":"AAEA,MAAM,OAAO,UAAU;IAMrB,YAAY,OAAmB;QAC7B,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC;QAC1D,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;IACzD,CAAC;CACF"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
export * from "./
|
|
1
|
+
export * from "./field-base.type";
|
|
2
2
|
export * from "./screen-size.type";
|
|
3
3
|
export * from "./dynamic-object.type";
|
|
4
|
-
export * from "./submit-button-options.type";
|
|
4
|
+
export * from "./submit-button-default-options.type";
|
|
5
|
+
export * from "./group-field.type";
|
|
6
|
+
export * from "./array-field.type";
|
package/dist/esm/types/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
export * from "./
|
|
1
|
+
export * from "./field-base.type";
|
|
2
2
|
export * from "./screen-size.type";
|
|
3
3
|
export * from "./dynamic-object.type";
|
|
4
|
-
export * from "./submit-button-options.type";
|
|
4
|
+
export * from "./submit-button-default-options.type";
|
|
5
|
+
export * from "./group-field.type";
|
|
6
|
+
export * from "./array-field.type";
|
|
5
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/types/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/types/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sCAAsC,CAAC;AACrD,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submit-button-default-options.type.js","sourceRoot":"","sources":["../../../lib/types/submit-button-default-options.type.tsx"],"names":[],"mappings":""}
|
|
@@ -2,16 +2,24 @@ import { INvsDynamicForm, NvsDynamicForm } from ".";
|
|
|
2
2
|
import * as Yup from "yup";
|
|
3
3
|
|
|
4
4
|
import React, { ChangeEvent } from "react";
|
|
5
|
-
import { FieldBase } from "../types";
|
|
5
|
+
import { ArrayField, FieldBase, GroupField } from "../types";
|
|
6
6
|
|
|
7
7
|
export default {
|
|
8
8
|
component: NvsDynamicForm,
|
|
9
9
|
title: "Nvs Dynamic Form",
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
const ButtonComponent = ({
|
|
12
|
+
const ButtonComponent = ({
|
|
13
|
+
children,
|
|
14
|
+
type = "submit",
|
|
15
|
+
onClick = () => {},
|
|
16
|
+
}: {
|
|
17
|
+
children: string;
|
|
18
|
+
type: "submit" | "reset" | "button";
|
|
19
|
+
onClick?: () => void;
|
|
20
|
+
}) => {
|
|
13
21
|
return (
|
|
14
|
-
<button style={{ width: "100%" }} type=
|
|
22
|
+
<button onClick={onClick} style={{ width: "100%" }} type={type}>
|
|
15
23
|
{children}
|
|
16
24
|
</button>
|
|
17
25
|
);
|
|
@@ -23,6 +31,19 @@ const TextboxElement = ({ defaultValue, ...props }: TextboxField) => {
|
|
|
23
31
|
);
|
|
24
32
|
};
|
|
25
33
|
|
|
34
|
+
const Container = ({ children, ...props }) => {
|
|
35
|
+
return (
|
|
36
|
+
<div id="custom-container" className="nvs-container-fluid">
|
|
37
|
+
<div className="nvs-row">
|
|
38
|
+
<div className="nvs-col-12">
|
|
39
|
+
<h1>{props.title}</h1>
|
|
40
|
+
</div>
|
|
41
|
+
<div className="nvs-col-12">{children}</div>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
);
|
|
45
|
+
};
|
|
46
|
+
|
|
26
47
|
class TextboxField extends FieldBase<string> {
|
|
27
48
|
override readonly fieldType? = "textbox";
|
|
28
49
|
type?: "email" | "number" | "password" | "tel" | "text" | "url";
|
|
@@ -35,7 +56,8 @@ class TextboxField extends FieldBase<string> {
|
|
|
35
56
|
}
|
|
36
57
|
}
|
|
37
58
|
|
|
38
|
-
export const Default: { args: INvsDynamicForm } = {
|
|
59
|
+
export const Default: { args: INvsDynamicForm; name: string } = {
|
|
60
|
+
name: "Simple Example",
|
|
39
61
|
args: {
|
|
40
62
|
onSubmit: (values) => {
|
|
41
63
|
alert(JSON.stringify(values));
|
|
@@ -44,14 +66,12 @@ export const Default: { args: INvsDynamicForm } = {
|
|
|
44
66
|
submitButtonLabel: "Save",
|
|
45
67
|
submitButtonVisible: true,
|
|
46
68
|
submitButtonPosition: "right",
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
isFullWidth: true,
|
|
52
|
-
position: "right",
|
|
53
|
-
},
|
|
69
|
+
submitButtonDefaultOptions: {
|
|
70
|
+
label: "Save",
|
|
71
|
+
isFullWidth: true,
|
|
72
|
+
position: "right",
|
|
54
73
|
},
|
|
74
|
+
buttonComponent: ButtonComponent,
|
|
55
75
|
formElements: {
|
|
56
76
|
textbox: {
|
|
57
77
|
component: TextboxElement,
|
|
@@ -61,12 +81,11 @@ export const Default: { args: INvsDynamicForm } = {
|
|
|
61
81
|
fields: [
|
|
62
82
|
new TextboxField({
|
|
63
83
|
id: "firstName",
|
|
64
|
-
label: "First Name",
|
|
65
84
|
placeholder: "Enter your first name",
|
|
66
85
|
defaultValue: "ismet",
|
|
67
86
|
validate: Yup.string().required(),
|
|
68
|
-
onChange: (event
|
|
69
|
-
console.log(event.target.value);
|
|
87
|
+
onChange: (event) => {
|
|
88
|
+
console.log((event as ChangeEvent<HTMLInputElement>).target.value);
|
|
70
89
|
},
|
|
71
90
|
screenSize: {
|
|
72
91
|
desktop: 6,
|
|
@@ -75,7 +94,6 @@ export const Default: { args: INvsDynamicForm } = {
|
|
|
75
94
|
}),
|
|
76
95
|
new TextboxField({
|
|
77
96
|
id: "lastName",
|
|
78
|
-
label: "Last Name",
|
|
79
97
|
placeholder: "Enter your last name",
|
|
80
98
|
validate: Yup.string().required(),
|
|
81
99
|
screenSize: {
|
|
@@ -85,7 +103,6 @@ export const Default: { args: INvsDynamicForm } = {
|
|
|
85
103
|
}),
|
|
86
104
|
new TextboxField({
|
|
87
105
|
id: "emailAddress",
|
|
88
|
-
label: "E-mail Address",
|
|
89
106
|
placeholder: "Enter your e-mail address",
|
|
90
107
|
screenSize: 12,
|
|
91
108
|
type: "email",
|
|
@@ -93,3 +110,246 @@ export const Default: { args: INvsDynamicForm } = {
|
|
|
93
110
|
],
|
|
94
111
|
},
|
|
95
112
|
};
|
|
113
|
+
|
|
114
|
+
export const Group: { args: INvsDynamicForm; name: string } = {
|
|
115
|
+
name: "Group Example",
|
|
116
|
+
args: {
|
|
117
|
+
onSubmit: (values) => {
|
|
118
|
+
alert(JSON.stringify(values));
|
|
119
|
+
},
|
|
120
|
+
submitButtonIsFullWidth: false,
|
|
121
|
+
submitButtonLabel: "Save",
|
|
122
|
+
submitButtonVisible: true,
|
|
123
|
+
submitButtonPosition: "right",
|
|
124
|
+
submitButtonDefaultOptions: {
|
|
125
|
+
label: "Save",
|
|
126
|
+
isFullWidth: true,
|
|
127
|
+
position: "right",
|
|
128
|
+
},
|
|
129
|
+
buttonComponent: ButtonComponent,
|
|
130
|
+
formElements: {
|
|
131
|
+
textbox: {
|
|
132
|
+
component: TextboxElement,
|
|
133
|
+
class: TextboxField,
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
fields: [
|
|
137
|
+
new TextboxField({
|
|
138
|
+
id: "firstName",
|
|
139
|
+
label: "First Name",
|
|
140
|
+
placeholder: "Enter your first name",
|
|
141
|
+
defaultValue: "ismet",
|
|
142
|
+
validate: Yup.string().required(),
|
|
143
|
+
onChange: (event) => {
|
|
144
|
+
console.log((event as ChangeEvent<HTMLInputElement>).target.value);
|
|
145
|
+
},
|
|
146
|
+
screenSize: {
|
|
147
|
+
desktop: 6,
|
|
148
|
+
mobile: 6,
|
|
149
|
+
},
|
|
150
|
+
}),
|
|
151
|
+
new TextboxField({
|
|
152
|
+
id: "lastName",
|
|
153
|
+
label: "Last Name",
|
|
154
|
+
placeholder: "Enter your last name",
|
|
155
|
+
validate: Yup.string().required(),
|
|
156
|
+
screenSize: {
|
|
157
|
+
desktop: 6,
|
|
158
|
+
mobile: 6,
|
|
159
|
+
},
|
|
160
|
+
}),
|
|
161
|
+
new GroupField({
|
|
162
|
+
id: "contact",
|
|
163
|
+
fields: [
|
|
164
|
+
new TextboxField({
|
|
165
|
+
id: "emailAddress",
|
|
166
|
+
label: "E-mail Address",
|
|
167
|
+
placeholder: "Enter your e-mail address",
|
|
168
|
+
screenSize: 6,
|
|
169
|
+
type: "email",
|
|
170
|
+
defaultValue: "info@ismetkizgin.com",
|
|
171
|
+
}),
|
|
172
|
+
new TextboxField({
|
|
173
|
+
id: "phoneNumber",
|
|
174
|
+
label: "Phone Number",
|
|
175
|
+
placeholder: "Enter your phone number",
|
|
176
|
+
screenSize: 6,
|
|
177
|
+
}),
|
|
178
|
+
],
|
|
179
|
+
}),
|
|
180
|
+
],
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
export const GroupAndContainer: { args: INvsDynamicForm; name: string } = {
|
|
185
|
+
name: "Container Example",
|
|
186
|
+
args: {
|
|
187
|
+
onSubmit: (values) => {
|
|
188
|
+
alert(JSON.stringify(values));
|
|
189
|
+
},
|
|
190
|
+
container: Container,
|
|
191
|
+
containerVisible: true,
|
|
192
|
+
useGroupContainer: true,
|
|
193
|
+
useContainersOutsideGroup: true,
|
|
194
|
+
containerOptions: {
|
|
195
|
+
title: "Personal Information",
|
|
196
|
+
},
|
|
197
|
+
submitButtonDefaultOptions: {
|
|
198
|
+
label: "Save",
|
|
199
|
+
isFullWidth: true,
|
|
200
|
+
position: "right",
|
|
201
|
+
},
|
|
202
|
+
buttonComponent: ButtonComponent,
|
|
203
|
+
formElements: {
|
|
204
|
+
textbox: {
|
|
205
|
+
component: TextboxElement,
|
|
206
|
+
class: TextboxField,
|
|
207
|
+
},
|
|
208
|
+
},
|
|
209
|
+
fields: [
|
|
210
|
+
new TextboxField({
|
|
211
|
+
id: "firstName",
|
|
212
|
+
label: "First Name",
|
|
213
|
+
placeholder: "Enter your first name",
|
|
214
|
+
defaultValue: "ismet",
|
|
215
|
+
validate: Yup.string().required(),
|
|
216
|
+
onChange: (event) => {
|
|
217
|
+
console.log((event as ChangeEvent<HTMLInputElement>).target.value);
|
|
218
|
+
},
|
|
219
|
+
screenSize: {
|
|
220
|
+
desktop: 6,
|
|
221
|
+
mobile: 6,
|
|
222
|
+
},
|
|
223
|
+
}),
|
|
224
|
+
new TextboxField({
|
|
225
|
+
id: "lastName",
|
|
226
|
+
label: "Last Name",
|
|
227
|
+
placeholder: "Enter your last name",
|
|
228
|
+
validate: Yup.string().required(),
|
|
229
|
+
screenSize: {
|
|
230
|
+
desktop: 6,
|
|
231
|
+
mobile: 6,
|
|
232
|
+
},
|
|
233
|
+
}),
|
|
234
|
+
new GroupField({
|
|
235
|
+
id: "contact",
|
|
236
|
+
containerVisible: true,
|
|
237
|
+
containerOptions: {
|
|
238
|
+
title: "Contact Information",
|
|
239
|
+
},
|
|
240
|
+
fields: [
|
|
241
|
+
new TextboxField({
|
|
242
|
+
id: "emailAddress",
|
|
243
|
+
label: "E-mail Address",
|
|
244
|
+
placeholder: "Enter your e-mail address",
|
|
245
|
+
screenSize: 6,
|
|
246
|
+
type: "email",
|
|
247
|
+
defaultValue: "info@ismetkizgin.com",
|
|
248
|
+
}),
|
|
249
|
+
new TextboxField({
|
|
250
|
+
id: "phoneNumber",
|
|
251
|
+
label: "Phone Number",
|
|
252
|
+
placeholder: "Enter your phone number",
|
|
253
|
+
screenSize: 6,
|
|
254
|
+
}),
|
|
255
|
+
],
|
|
256
|
+
}),
|
|
257
|
+
new GroupField({
|
|
258
|
+
id: "location",
|
|
259
|
+
containerVisible: false,
|
|
260
|
+
fields: [
|
|
261
|
+
new TextboxField({
|
|
262
|
+
id: "cityName",
|
|
263
|
+
label: "City Name",
|
|
264
|
+
placeholder: "Enter your city name",
|
|
265
|
+
screenSize: 6,
|
|
266
|
+
}),
|
|
267
|
+
new TextboxField({
|
|
268
|
+
id: "districtName",
|
|
269
|
+
label: "district Name",
|
|
270
|
+
placeholder: "Enter your district name",
|
|
271
|
+
screenSize: 6,
|
|
272
|
+
}),
|
|
273
|
+
],
|
|
274
|
+
}),
|
|
275
|
+
],
|
|
276
|
+
},
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
export const FieldArray: { args: INvsDynamicForm; name: string } = {
|
|
280
|
+
name: "Field Array Example",
|
|
281
|
+
args: {
|
|
282
|
+
onSubmit: (values) => {
|
|
283
|
+
alert(JSON.stringify(values));
|
|
284
|
+
},
|
|
285
|
+
submitButtonIsFullWidth: false,
|
|
286
|
+
submitButtonLabel: "Save",
|
|
287
|
+
submitButtonVisible: true,
|
|
288
|
+
submitButtonPosition: "right",
|
|
289
|
+
submitButtonDefaultOptions: {
|
|
290
|
+
label: "Save",
|
|
291
|
+
isFullWidth: true,
|
|
292
|
+
position: "right",
|
|
293
|
+
},
|
|
294
|
+
buttonComponent: ButtonComponent,
|
|
295
|
+
formElements: {
|
|
296
|
+
textbox: {
|
|
297
|
+
component: TextboxElement,
|
|
298
|
+
class: TextboxField,
|
|
299
|
+
},
|
|
300
|
+
},
|
|
301
|
+
fields: [
|
|
302
|
+
new TextboxField({
|
|
303
|
+
id: "firstName",
|
|
304
|
+
placeholder: "Enter your first name",
|
|
305
|
+
defaultValue: "ismet",
|
|
306
|
+
validate: Yup.string().required(),
|
|
307
|
+
onChange: (event) => {
|
|
308
|
+
console.log((event as ChangeEvent<HTMLInputElement>).target.value);
|
|
309
|
+
},
|
|
310
|
+
screenSize: {
|
|
311
|
+
desktop: 6,
|
|
312
|
+
mobile: 6,
|
|
313
|
+
},
|
|
314
|
+
}),
|
|
315
|
+
new TextboxField({
|
|
316
|
+
id: "lastName",
|
|
317
|
+
placeholder: "Enter your last name",
|
|
318
|
+
validate: Yup.string().required(),
|
|
319
|
+
screenSize: {
|
|
320
|
+
desktop: 6,
|
|
321
|
+
mobile: 6,
|
|
322
|
+
},
|
|
323
|
+
}),
|
|
324
|
+
new ArrayField({
|
|
325
|
+
id: "addresses",
|
|
326
|
+
removeButtonOptions: {
|
|
327
|
+
label: "-",
|
|
328
|
+
position: "right",
|
|
329
|
+
},
|
|
330
|
+
addButtonOptions: {
|
|
331
|
+
label: "+",
|
|
332
|
+
},
|
|
333
|
+
defaultValues: [
|
|
334
|
+
{ cityName: "İzmir", districtName: "Göztepe" },
|
|
335
|
+
{ cityName: "İstanbul", districtName: "Kadıköy" },
|
|
336
|
+
],
|
|
337
|
+
fields: [
|
|
338
|
+
new TextboxField({
|
|
339
|
+
id: "cityName",
|
|
340
|
+
label: "City Name",
|
|
341
|
+
placeholder: "Enter your city name",
|
|
342
|
+
screenSize: 6,
|
|
343
|
+
validate: Yup.string().required(),
|
|
344
|
+
}),
|
|
345
|
+
new TextboxField({
|
|
346
|
+
id: "districtName",
|
|
347
|
+
label: "district Name",
|
|
348
|
+
placeholder: "Enter your district name",
|
|
349
|
+
screenSize: 6,
|
|
350
|
+
}),
|
|
351
|
+
],
|
|
352
|
+
}),
|
|
353
|
+
],
|
|
354
|
+
},
|
|
355
|
+
};
|
|
@@ -3,3 +3,43 @@
|
|
|
3
3
|
margin-top: 8px;
|
|
4
4
|
padding: 0 4px;
|
|
5
5
|
}
|
|
6
|
+
|
|
7
|
+
.df-form-group {
|
|
8
|
+
gap: 8px;
|
|
9
|
+
display: flex;
|
|
10
|
+
flex-direction: column;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.df-array-field {
|
|
14
|
+
display: flex;
|
|
15
|
+
width: 100%;
|
|
16
|
+
box-sizing: border-box;
|
|
17
|
+
align-items: center;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.df-array-field-content {
|
|
21
|
+
flex-grow: 1;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.df-array-field-remove-button {
|
|
25
|
+
flex-shrink: 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.df-array-field.remove-button-bottom {
|
|
29
|
+
flex-direction: column;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.df-array-field.remove-button-bottom .df-array-field-content {
|
|
33
|
+
width: 100%;
|
|
34
|
+
margin-right: 0;
|
|
35
|
+
margin-bottom: 8px;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.df-array-field.remove-button-bottom .df-array-field-remove-button {
|
|
39
|
+
width: 100%;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.df-array-field-add-button {
|
|
43
|
+
width: 100%;
|
|
44
|
+
padding: 0 4px;
|
|
45
|
+
}
|
|
@@ -1,81 +1,56 @@
|
|
|
1
1
|
import "nvs-flexgrid";
|
|
2
2
|
import "./_style.css";
|
|
3
3
|
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
import { Form, FormikProvider, useFormik } from "formik";
|
|
8
|
-
import React, { useEffect, useState } from "react";
|
|
9
|
-
|
|
10
|
-
import { Field } from "./elements/field";
|
|
4
|
+
import { Button } from "./elements/button";
|
|
5
|
+
import { FormikForm } from "./formikForm";
|
|
6
|
+
import { GenerateFormContentUtils } from "./services/generateFormContentUtils";
|
|
11
7
|
import { INvsDynamicForm } from "./_type";
|
|
12
|
-
import
|
|
8
|
+
import React from "react";
|
|
13
9
|
|
|
14
10
|
export const NvsDynamicForm = ({
|
|
15
11
|
onSubmit,
|
|
16
12
|
formElements = {},
|
|
17
13
|
fields = [],
|
|
18
14
|
formClass,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
buttonComponent,
|
|
16
|
+
submitButtonDefaultOptions,
|
|
17
|
+
submitButtonVisible = true,
|
|
18
|
+
submitButtonLabel = submitButtonDefaultOptions.label,
|
|
19
|
+
submitButtonIsFullWidth = submitButtonDefaultOptions.isFullWidth,
|
|
20
|
+
submitButtonPosition = submitButtonDefaultOptions.position,
|
|
21
|
+
submitButtonContainerClass,
|
|
22
|
+
container = ({ children }) => <>{children}</>,
|
|
23
|
+
containerVisible = false,
|
|
24
|
+
containerOptions = {},
|
|
25
|
+
useContainersOutsideGroup = false,
|
|
26
|
+
useGroupContainer = false,
|
|
24
27
|
}: INvsDynamicForm) => {
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
if (field?.validate) {
|
|
36
|
-
acc[field.id] = field.validate;
|
|
37
|
-
}
|
|
38
|
-
return acc;
|
|
39
|
-
},
|
|
40
|
-
{},
|
|
41
|
-
);
|
|
42
|
-
return Yup.object(validationSchema);
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
const [defaultValues, setDefaultValues] = useState(getDefaultValues());
|
|
46
|
-
const [validateSchema, setValidateSchema] = useState(getValidateSchema());
|
|
47
|
-
|
|
48
|
-
useEffect(() => {
|
|
49
|
-
setDefaultValues(getDefaultValues());
|
|
50
|
-
setValidateSchema(getValidateSchema());
|
|
51
|
-
}, [fields]);
|
|
52
|
-
|
|
53
|
-
const createFormElements = () => {
|
|
54
|
-
return fields.map((field: FieldBase<any>) => (
|
|
55
|
-
<Field key={field.id} formElements={formElements} field={field} />
|
|
56
|
-
));
|
|
57
|
-
};
|
|
28
|
+
const generateFormContentUtils = new GenerateFormContentUtils({
|
|
29
|
+
containerComponent: container,
|
|
30
|
+
formElements,
|
|
31
|
+
useContainersOutsideGroup,
|
|
32
|
+
useGroupContainer,
|
|
33
|
+
containerVisible,
|
|
34
|
+
fields,
|
|
35
|
+
containerOptions,
|
|
36
|
+
buttonComponent,
|
|
37
|
+
});
|
|
58
38
|
|
|
59
|
-
const
|
|
60
|
-
<
|
|
61
|
-
|
|
62
|
-
<
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
39
|
+
const formikForm = (
|
|
40
|
+
<FormikForm onSubmit={onSubmit} fields={fields} formClass={formClass}>
|
|
41
|
+
{generateFormContentUtils.createFormContent()}
|
|
42
|
+
<Button
|
|
43
|
+
buttonComponent={buttonComponent}
|
|
44
|
+
visible={submitButtonVisible}
|
|
45
|
+
label={submitButtonLabel}
|
|
46
|
+
isFullWidth={submitButtonIsFullWidth}
|
|
47
|
+
position={submitButtonPosition}
|
|
48
|
+
containerClass={submitButtonContainerClass}
|
|
68
49
|
/>
|
|
69
|
-
</
|
|
50
|
+
</FormikForm>
|
|
70
51
|
);
|
|
71
52
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
onSubmit: async (values) => {
|
|
76
|
-
onSubmit && (await onSubmit(values));
|
|
77
|
-
},
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
return <FormikProvider value={formik}>{createForm()}</FormikProvider>;
|
|
53
|
+
return containerVisible && !useContainersOutsideGroup
|
|
54
|
+
? generateFormContentUtils.createContainer(formikForm, containerOptions)
|
|
55
|
+
: formikForm;
|
|
81
56
|
};
|
|
@@ -1,9 +1,28 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
ArrayField,
|
|
3
|
+
FieldBase,
|
|
4
|
+
GroupField,
|
|
5
|
+
ISubmitButtonDefaultOptions,
|
|
6
|
+
} from "../types";
|
|
7
|
+
|
|
8
|
+
import { IButton } from "./elements/button/_type";
|
|
2
9
|
import { IField } from "./elements/field";
|
|
3
|
-
import { ISubmitButton } from "./elements/submit-button/_type";
|
|
4
10
|
|
|
5
|
-
export
|
|
11
|
+
export type FieldType = FieldBase<any> | GroupField | ArrayField<any>;
|
|
12
|
+
|
|
13
|
+
export interface INvsDynamicForm extends IButton, Omit<IField, "field"> {
|
|
6
14
|
onSubmit?: ((values: unknown) => void) | ((values: unknown) => Promise<void>);
|
|
7
|
-
fields: Array<
|
|
15
|
+
fields: Array<FieldType>;
|
|
8
16
|
formClass?: string;
|
|
17
|
+
container?: React.FC<any>;
|
|
18
|
+
containerOptions?: { [key: string]: any };
|
|
19
|
+
containerVisible?: boolean;
|
|
20
|
+
useContainersOutsideGroup?: boolean;
|
|
21
|
+
useGroupContainer?: boolean;
|
|
22
|
+
submitButtonDefaultOptions: ISubmitButtonDefaultOptions;
|
|
23
|
+
submitButtonVisible?: boolean;
|
|
24
|
+
submitButtonLabel?: string;
|
|
25
|
+
submitButtonPosition?: "left" | "center" | "right";
|
|
26
|
+
submitButtonIsFullWidth?: boolean;
|
|
27
|
+
submitButtonContainerClass?: string;
|
|
9
28
|
}
|