@nvs-dynamic-form/react-core 2.3.1 → 2.4.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/_template.js +4 -17
- package/dist/cjs/nvs-dynamic-form/_template.js.map +1 -1
- package/dist/cjs/nvs-dynamic-form/components/arrayField/_template.js +24 -25
- package/dist/cjs/nvs-dynamic-form/components/arrayField/_template.js.map +1 -1
- package/dist/cjs/nvs-dynamic-form/components/elements/_template.d.ts +16 -0
- package/dist/cjs/nvs-dynamic-form/components/elements/_template.js +62 -0
- package/dist/cjs/nvs-dynamic-form/components/elements/_template.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/components/elements/index.d.ts +1 -0
- package/dist/cjs/nvs-dynamic-form/components/elements/index.js +18 -0
- package/dist/cjs/nvs-dynamic-form/components/elements/index.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/components/formBuilder/_template.d.ts +20 -0
- package/dist/cjs/nvs-dynamic-form/components/formBuilder/_template.js +84 -0
- package/dist/cjs/nvs-dynamic-form/components/formBuilder/_template.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/components/formBuilder/index.d.ts +1 -0
- package/dist/cjs/nvs-dynamic-form/components/formBuilder/index.js +18 -0
- package/dist/cjs/nvs-dynamic-form/components/formBuilder/index.js.map +1 -0
- package/dist/cjs/nvs-dynamic-form/components/groupField/_template.d.ts +2 -1
- package/dist/cjs/nvs-dynamic-form/components/groupField/_template.js +33 -17
- package/dist/cjs/nvs-dynamic-form/components/groupField/_template.js.map +1 -1
- package/dist/cjs/nvs-dynamic-form/components/groupField/_type.d.ts +1 -0
- package/dist/cjs/types/array-field.type.d.ts +4 -2
- package/dist/cjs/types/array-field.type.js +2 -0
- package/dist/cjs/types/array-field.type.js.map +1 -1
- package/dist/cjs/types/group-field.type.d.ts +3 -5
- package/dist/esm/nvs-dynamic-form/_template.js +4 -17
- package/dist/esm/nvs-dynamic-form/_template.js.map +1 -1
- package/dist/esm/nvs-dynamic-form/components/arrayField/_template.js +25 -26
- package/dist/esm/nvs-dynamic-form/components/arrayField/_template.js.map +1 -1
- package/dist/esm/nvs-dynamic-form/components/elements/_template.d.ts +16 -0
- package/dist/esm/nvs-dynamic-form/components/elements/_template.js +35 -0
- package/dist/esm/nvs-dynamic-form/components/elements/_template.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/components/elements/index.d.ts +1 -0
- package/dist/esm/nvs-dynamic-form/components/elements/index.js +2 -0
- package/dist/esm/nvs-dynamic-form/components/elements/index.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/components/formBuilder/_template.d.ts +20 -0
- package/dist/esm/nvs-dynamic-form/components/formBuilder/_template.js +57 -0
- package/dist/esm/nvs-dynamic-form/components/formBuilder/_template.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/components/formBuilder/index.d.ts +1 -0
- package/dist/esm/nvs-dynamic-form/components/formBuilder/index.js +2 -0
- package/dist/esm/nvs-dynamic-form/components/formBuilder/index.js.map +1 -0
- package/dist/esm/nvs-dynamic-form/components/groupField/_template.d.ts +2 -1
- package/dist/esm/nvs-dynamic-form/components/groupField/_template.js +10 -17
- package/dist/esm/nvs-dynamic-form/components/groupField/_template.js.map +1 -1
- package/dist/esm/nvs-dynamic-form/components/groupField/_type.d.ts +1 -0
- package/dist/esm/types/array-field.type.d.ts +4 -2
- package/dist/esm/types/array-field.type.js +2 -0
- package/dist/esm/types/array-field.type.js.map +1 -1
- package/dist/esm/types/group-field.type.d.ts +3 -5
- package/lib/nvs-dynamic-form/_template.tsx +21 -18
- package/lib/nvs-dynamic-form/components/arrayField/_template.tsx +50 -39
- package/lib/nvs-dynamic-form/components/elements/_template.tsx +94 -0
- package/lib/nvs-dynamic-form/components/elements/index.tsx +1 -0
- package/lib/nvs-dynamic-form/components/formBuilder/_template.tsx +149 -0
- package/lib/nvs-dynamic-form/components/formBuilder/index.tsx +1 -0
- package/lib/nvs-dynamic-form/components/groupField/_template.tsx +33 -13
- package/lib/nvs-dynamic-form/components/groupField/_type.tsx +1 -0
- package/lib/nvs-dynamic-form/stories/components/button.tsx +17 -0
- package/lib/nvs-dynamic-form/stories/components/container.tsx +14 -0
- package/lib/nvs-dynamic-form/stories/components/index.tsx +3 -0
- package/lib/nvs-dynamic-form/stories/components/textboxElement.tsx +20 -0
- package/lib/nvs-dynamic-form/stories/fields/arrayField/basicExample.stories.tsx +87 -0
- package/lib/nvs-dynamic-form/stories/fields/arrayField/groupField.stories.tsx +102 -0
- package/lib/nvs-dynamic-form/stories/fields/arrayField/nested.stories.tsx +137 -0
- package/lib/nvs-dynamic-form/stories/fields/basicExample.stories.tsx +66 -0
- package/lib/nvs-dynamic-form/stories/fields/groupField/arrayFields.stories.tsx +113 -0
- package/lib/nvs-dynamic-form/stories/fields/groupField/basicExample.stories.tsx +86 -0
- package/lib/nvs-dynamic-form/stories/fields/groupField/container.stories.tsx +112 -0
- package/lib/nvs-dynamic-form/stories/fields/groupField/nested.stories.tsx +103 -0
- package/lib/types/array-field.type.tsx +6 -2
- package/lib/types/group-field.type.tsx +3 -3
- package/package.json +1 -1
- package/dist/cjs/nvs-dynamic-form/services/generateFormContentUtils.d.ts +0 -46
- package/dist/cjs/nvs-dynamic-form/services/generateFormContentUtils.js +0 -97
- package/dist/cjs/nvs-dynamic-form/services/generateFormContentUtils.js.map +0 -1
- package/dist/esm/nvs-dynamic-form/services/generateFormContentUtils.d.ts +0 -46
- package/dist/esm/nvs-dynamic-form/services/generateFormContentUtils.js +0 -90
- package/dist/esm/nvs-dynamic-form/services/generateFormContentUtils.js.map +0 -1
- package/lib/nvs-dynamic-form/_stories.tsx +0 -349
- package/lib/nvs-dynamic-form/services/generateFormContentUtils.tsx +0 -196
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { ArrayFieldAddButton, LabelOptions } from "../../types";
|
|
2
|
-
import { FieldType } from "../_type";
|
|
3
|
-
import { IFormElement } from "../components/field";
|
|
4
|
-
import React from "react";
|
|
5
|
-
import { ReactNode } from "react";
|
|
6
|
-
export declare class GenerateFormContentUtils {
|
|
7
|
-
private readonly containerComponent;
|
|
8
|
-
private readonly formElements;
|
|
9
|
-
private readonly useContainersOutsideGroup;
|
|
10
|
-
private readonly useGroupContainer;
|
|
11
|
-
private readonly containerVisible;
|
|
12
|
-
private readonly fields;
|
|
13
|
-
private readonly containerOptions;
|
|
14
|
-
private readonly buttonComponent?;
|
|
15
|
-
private readonly fieldArrayAddButtonDefaultOptions;
|
|
16
|
-
private readonly fieldArrayRemoveButtonDefaultOptions;
|
|
17
|
-
private readonly labelDefaultOptions;
|
|
18
|
-
constructor({ containerComponent, formElements, useContainersOutsideGroup, useGroupContainer, containerVisible, fields, containerOptions, buttonComponent, fieldArrayAddButtonDefaultOptions, fieldArrayRemoveButtonDefaultOptions, labelDefaultOptions, }: {
|
|
19
|
-
containerComponent: React.FC<any>;
|
|
20
|
-
formElements: IFormElement;
|
|
21
|
-
useContainersOutsideGroup: boolean;
|
|
22
|
-
useGroupContainer: boolean;
|
|
23
|
-
containerVisible: boolean;
|
|
24
|
-
fields: Array<FieldType>;
|
|
25
|
-
buttonComponent?: React.FC<any>;
|
|
26
|
-
containerOptions?: {
|
|
27
|
-
[key: string]: any;
|
|
28
|
-
};
|
|
29
|
-
fieldArrayAddButtonDefaultOptions?: ArrayFieldAddButton;
|
|
30
|
-
fieldArrayRemoveButtonDefaultOptions?: ArrayFieldAddButton;
|
|
31
|
-
labelDefaultOptions?: LabelOptions;
|
|
32
|
-
});
|
|
33
|
-
createContainer(content: ReactNode, containerProps: object): React.JSX.Element;
|
|
34
|
-
createFormContent(): React.JSX.Element;
|
|
35
|
-
createFormElements(fields: Array<FieldType>): JSX.Element[];
|
|
36
|
-
createContentContainer(formElements: ReactNode): React.JSX.Element;
|
|
37
|
-
private getSingleFields;
|
|
38
|
-
private getGroupFields;
|
|
39
|
-
private createSingleFieldsElements;
|
|
40
|
-
private createGroupFieldsElements;
|
|
41
|
-
private createSingleFieldElement;
|
|
42
|
-
private createGroupFieldElement;
|
|
43
|
-
private createArrayFieldElement;
|
|
44
|
-
private isSingleField;
|
|
45
|
-
private createFormGroup;
|
|
46
|
-
}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.GenerateFormContentUtils = void 0;
|
|
7
|
-
const types_1 = require("../../types");
|
|
8
|
-
const arrayField_1 = require("../components/arrayField");
|
|
9
|
-
const container_1 = require("../components/container");
|
|
10
|
-
const field_1 = require("../components/field");
|
|
11
|
-
const groupField_1 = require("../components/groupField");
|
|
12
|
-
const react_1 = __importDefault(require("react"));
|
|
13
|
-
class GenerateFormContentUtils {
|
|
14
|
-
constructor({ containerComponent, formElements, useContainersOutsideGroup, useGroupContainer, containerVisible, fields, containerOptions, buttonComponent, fieldArrayAddButtonDefaultOptions, fieldArrayRemoveButtonDefaultOptions, labelDefaultOptions, }) {
|
|
15
|
-
this.containerComponent = containerComponent;
|
|
16
|
-
this.formElements = formElements;
|
|
17
|
-
this.useContainersOutsideGroup = useContainersOutsideGroup;
|
|
18
|
-
this.useGroupContainer = useGroupContainer;
|
|
19
|
-
this.containerVisible = containerVisible;
|
|
20
|
-
this.fields = fields;
|
|
21
|
-
this.containerOptions = containerOptions ?? {};
|
|
22
|
-
this.buttonComponent = buttonComponent;
|
|
23
|
-
this.fieldArrayAddButtonDefaultOptions =
|
|
24
|
-
fieldArrayAddButtonDefaultOptions ?? {};
|
|
25
|
-
this.fieldArrayRemoveButtonDefaultOptions =
|
|
26
|
-
fieldArrayRemoveButtonDefaultOptions ?? {};
|
|
27
|
-
this.labelDefaultOptions = labelDefaultOptions ?? {};
|
|
28
|
-
}
|
|
29
|
-
createContainer(content, containerProps) {
|
|
30
|
-
return (react_1.default.createElement(container_1.Container, { containerComponent: this.containerComponent, options: containerProps }, content));
|
|
31
|
-
}
|
|
32
|
-
createFormContent() {
|
|
33
|
-
const singleFields = this.createSingleFieldsElements();
|
|
34
|
-
const groupFields = this.createGroupFieldsElements();
|
|
35
|
-
let formContent;
|
|
36
|
-
if (this.containerVisible && this.useContainersOutsideGroup && singleFields)
|
|
37
|
-
formContent = (react_1.default.createElement(react_1.default.Fragment, null,
|
|
38
|
-
this.createContainer(singleFields, this.containerOptions),
|
|
39
|
-
groupFields));
|
|
40
|
-
else
|
|
41
|
-
formContent = this.createFormGroup(react_1.default.createElement(react_1.default.Fragment, null,
|
|
42
|
-
singleFields,
|
|
43
|
-
groupFields));
|
|
44
|
-
return formContent;
|
|
45
|
-
}
|
|
46
|
-
createFormElements(fields) {
|
|
47
|
-
const fieldsElements = [];
|
|
48
|
-
for (const field of fields) {
|
|
49
|
-
if (field instanceof types_1.GroupField)
|
|
50
|
-
fieldsElements.push(this.createGroupFieldElement(field));
|
|
51
|
-
else if (field instanceof types_1.ArrayField)
|
|
52
|
-
fieldsElements.push(this.createArrayFieldElement(field));
|
|
53
|
-
else
|
|
54
|
-
fieldsElements.push(this.createSingleFieldElement(field));
|
|
55
|
-
}
|
|
56
|
-
return fieldsElements;
|
|
57
|
-
}
|
|
58
|
-
createContentContainer(formElements) {
|
|
59
|
-
return (react_1.default.createElement("div", { className: "nvs-container-fluid" },
|
|
60
|
-
react_1.default.createElement("div", { className: "nvs-row" }, formElements)));
|
|
61
|
-
}
|
|
62
|
-
getSingleFields() {
|
|
63
|
-
return this.fields.filter((field) => this.isSingleField(field));
|
|
64
|
-
}
|
|
65
|
-
getGroupFields() {
|
|
66
|
-
return this.fields.filter((field) => !this.isSingleField(field));
|
|
67
|
-
}
|
|
68
|
-
createSingleFieldsElements() {
|
|
69
|
-
const singleFields = this.getSingleFields();
|
|
70
|
-
return (singleFields.length > 0 &&
|
|
71
|
-
this.createContentContainer(this.createFormElements(singleFields)));
|
|
72
|
-
}
|
|
73
|
-
createGroupFieldsElements() {
|
|
74
|
-
const groupFields = this.getGroupFields();
|
|
75
|
-
return groupFields.length > 0 && this.createFormElements(groupFields);
|
|
76
|
-
}
|
|
77
|
-
createSingleFieldElement(field) {
|
|
78
|
-
return (react_1.default.createElement(field_1.Field, { key: field.id, formElements: this.formElements, field: field }));
|
|
79
|
-
}
|
|
80
|
-
createGroupFieldElement(field) {
|
|
81
|
-
return (react_1.default.createElement(groupField_1.GroupField, { key: field.id, formElements: this.formElements, field: field, containerComponent: this.containerComponent, useContainersOutsideGroup: this.useContainersOutsideGroup, useGroupContainer: this.useGroupContainer, containerVisible: this.containerVisible }));
|
|
82
|
-
}
|
|
83
|
-
createArrayFieldElement(field) {
|
|
84
|
-
return (react_1.default.createElement(arrayField_1.ArrayField, { key: field.id, formElements: this.formElements, field: field, containerComponent: this.containerComponent, useContainersOutsideGroup: this.useContainersOutsideGroup, useGroupContainer: this.useGroupContainer, containerVisible: this.containerVisible, buttonComponent: this.buttonComponent, addButtonDefaultOptions: this.fieldArrayAddButtonDefaultOptions, removeButtonDefaultOptions: this.fieldArrayRemoveButtonDefaultOptions, labelDefaultOptions: this.labelDefaultOptions }));
|
|
85
|
-
}
|
|
86
|
-
isSingleField(field) {
|
|
87
|
-
return !(field instanceof types_1.GroupField &&
|
|
88
|
-
field.containerVisible &&
|
|
89
|
-
this.useGroupContainer &&
|
|
90
|
-
this.containerVisible);
|
|
91
|
-
}
|
|
92
|
-
createFormGroup(formContent) {
|
|
93
|
-
return react_1.default.createElement("div", { className: "df-form-group" }, formContent);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
exports.GenerateFormContentUtils = GenerateFormContentUtils;
|
|
97
|
-
//# sourceMappingURL=generateFormContentUtils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateFormContentUtils.js","sourceRoot":"","sources":["../../../../lib/nvs-dynamic-form/services/generateFormContentUtils.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { ArrayFieldAddButton, LabelOptions } from "../../types";
|
|
2
|
-
import { FieldType } from "../_type";
|
|
3
|
-
import { IFormElement } from "../components/field";
|
|
4
|
-
import React from "react";
|
|
5
|
-
import { ReactNode } from "react";
|
|
6
|
-
export declare class GenerateFormContentUtils {
|
|
7
|
-
private readonly containerComponent;
|
|
8
|
-
private readonly formElements;
|
|
9
|
-
private readonly useContainersOutsideGroup;
|
|
10
|
-
private readonly useGroupContainer;
|
|
11
|
-
private readonly containerVisible;
|
|
12
|
-
private readonly fields;
|
|
13
|
-
private readonly containerOptions;
|
|
14
|
-
private readonly buttonComponent?;
|
|
15
|
-
private readonly fieldArrayAddButtonDefaultOptions;
|
|
16
|
-
private readonly fieldArrayRemoveButtonDefaultOptions;
|
|
17
|
-
private readonly labelDefaultOptions;
|
|
18
|
-
constructor({ containerComponent, formElements, useContainersOutsideGroup, useGroupContainer, containerVisible, fields, containerOptions, buttonComponent, fieldArrayAddButtonDefaultOptions, fieldArrayRemoveButtonDefaultOptions, labelDefaultOptions, }: {
|
|
19
|
-
containerComponent: React.FC<any>;
|
|
20
|
-
formElements: IFormElement;
|
|
21
|
-
useContainersOutsideGroup: boolean;
|
|
22
|
-
useGroupContainer: boolean;
|
|
23
|
-
containerVisible: boolean;
|
|
24
|
-
fields: Array<FieldType>;
|
|
25
|
-
buttonComponent?: React.FC<any>;
|
|
26
|
-
containerOptions?: {
|
|
27
|
-
[key: string]: any;
|
|
28
|
-
};
|
|
29
|
-
fieldArrayAddButtonDefaultOptions?: ArrayFieldAddButton;
|
|
30
|
-
fieldArrayRemoveButtonDefaultOptions?: ArrayFieldAddButton;
|
|
31
|
-
labelDefaultOptions?: LabelOptions;
|
|
32
|
-
});
|
|
33
|
-
createContainer(content: ReactNode, containerProps: object): React.JSX.Element;
|
|
34
|
-
createFormContent(): React.JSX.Element;
|
|
35
|
-
createFormElements(fields: Array<FieldType>): JSX.Element[];
|
|
36
|
-
createContentContainer(formElements: ReactNode): React.JSX.Element;
|
|
37
|
-
private getSingleFields;
|
|
38
|
-
private getGroupFields;
|
|
39
|
-
private createSingleFieldsElements;
|
|
40
|
-
private createGroupFieldsElements;
|
|
41
|
-
private createSingleFieldElement;
|
|
42
|
-
private createGroupFieldElement;
|
|
43
|
-
private createArrayFieldElement;
|
|
44
|
-
private isSingleField;
|
|
45
|
-
private createFormGroup;
|
|
46
|
-
}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { ArrayField, GroupField, } from "../../types";
|
|
2
|
-
import { ArrayField as ArrayFieldElement } from "../components/arrayField";
|
|
3
|
-
import { Container } from "../components/container";
|
|
4
|
-
import { Field } from "../components/field";
|
|
5
|
-
import { GroupField as GroupFieldElement } from "../components/groupField";
|
|
6
|
-
import React from "react";
|
|
7
|
-
export class GenerateFormContentUtils {
|
|
8
|
-
constructor({ containerComponent, formElements, useContainersOutsideGroup, useGroupContainer, containerVisible, fields, containerOptions, buttonComponent, fieldArrayAddButtonDefaultOptions, fieldArrayRemoveButtonDefaultOptions, labelDefaultOptions, }) {
|
|
9
|
-
this.containerComponent = containerComponent;
|
|
10
|
-
this.formElements = formElements;
|
|
11
|
-
this.useContainersOutsideGroup = useContainersOutsideGroup;
|
|
12
|
-
this.useGroupContainer = useGroupContainer;
|
|
13
|
-
this.containerVisible = containerVisible;
|
|
14
|
-
this.fields = fields;
|
|
15
|
-
this.containerOptions = containerOptions ?? {};
|
|
16
|
-
this.buttonComponent = buttonComponent;
|
|
17
|
-
this.fieldArrayAddButtonDefaultOptions =
|
|
18
|
-
fieldArrayAddButtonDefaultOptions ?? {};
|
|
19
|
-
this.fieldArrayRemoveButtonDefaultOptions =
|
|
20
|
-
fieldArrayRemoveButtonDefaultOptions ?? {};
|
|
21
|
-
this.labelDefaultOptions = labelDefaultOptions ?? {};
|
|
22
|
-
}
|
|
23
|
-
createContainer(content, containerProps) {
|
|
24
|
-
return (React.createElement(Container, { containerComponent: this.containerComponent, options: containerProps }, content));
|
|
25
|
-
}
|
|
26
|
-
createFormContent() {
|
|
27
|
-
const singleFields = this.createSingleFieldsElements();
|
|
28
|
-
const groupFields = this.createGroupFieldsElements();
|
|
29
|
-
let formContent;
|
|
30
|
-
if (this.containerVisible && this.useContainersOutsideGroup && singleFields)
|
|
31
|
-
formContent = (React.createElement(React.Fragment, null,
|
|
32
|
-
this.createContainer(singleFields, this.containerOptions),
|
|
33
|
-
groupFields));
|
|
34
|
-
else
|
|
35
|
-
formContent = this.createFormGroup(React.createElement(React.Fragment, null,
|
|
36
|
-
singleFields,
|
|
37
|
-
groupFields));
|
|
38
|
-
return formContent;
|
|
39
|
-
}
|
|
40
|
-
createFormElements(fields) {
|
|
41
|
-
const fieldsElements = [];
|
|
42
|
-
for (const field of fields) {
|
|
43
|
-
if (field instanceof GroupField)
|
|
44
|
-
fieldsElements.push(this.createGroupFieldElement(field));
|
|
45
|
-
else if (field instanceof ArrayField)
|
|
46
|
-
fieldsElements.push(this.createArrayFieldElement(field));
|
|
47
|
-
else
|
|
48
|
-
fieldsElements.push(this.createSingleFieldElement(field));
|
|
49
|
-
}
|
|
50
|
-
return fieldsElements;
|
|
51
|
-
}
|
|
52
|
-
createContentContainer(formElements) {
|
|
53
|
-
return (React.createElement("div", { className: "nvs-container-fluid" },
|
|
54
|
-
React.createElement("div", { className: "nvs-row" }, formElements)));
|
|
55
|
-
}
|
|
56
|
-
getSingleFields() {
|
|
57
|
-
return this.fields.filter((field) => this.isSingleField(field));
|
|
58
|
-
}
|
|
59
|
-
getGroupFields() {
|
|
60
|
-
return this.fields.filter((field) => !this.isSingleField(field));
|
|
61
|
-
}
|
|
62
|
-
createSingleFieldsElements() {
|
|
63
|
-
const singleFields = this.getSingleFields();
|
|
64
|
-
return (singleFields.length > 0 &&
|
|
65
|
-
this.createContentContainer(this.createFormElements(singleFields)));
|
|
66
|
-
}
|
|
67
|
-
createGroupFieldsElements() {
|
|
68
|
-
const groupFields = this.getGroupFields();
|
|
69
|
-
return groupFields.length > 0 && this.createFormElements(groupFields);
|
|
70
|
-
}
|
|
71
|
-
createSingleFieldElement(field) {
|
|
72
|
-
return (React.createElement(Field, { key: field.id, formElements: this.formElements, field: field }));
|
|
73
|
-
}
|
|
74
|
-
createGroupFieldElement(field) {
|
|
75
|
-
return (React.createElement(GroupFieldElement, { key: field.id, formElements: this.formElements, field: field, containerComponent: this.containerComponent, useContainersOutsideGroup: this.useContainersOutsideGroup, useGroupContainer: this.useGroupContainer, containerVisible: this.containerVisible }));
|
|
76
|
-
}
|
|
77
|
-
createArrayFieldElement(field) {
|
|
78
|
-
return (React.createElement(ArrayFieldElement, { key: field.id, formElements: this.formElements, field: field, containerComponent: this.containerComponent, useContainersOutsideGroup: this.useContainersOutsideGroup, useGroupContainer: this.useGroupContainer, containerVisible: this.containerVisible, buttonComponent: this.buttonComponent, addButtonDefaultOptions: this.fieldArrayAddButtonDefaultOptions, removeButtonDefaultOptions: this.fieldArrayRemoveButtonDefaultOptions, labelDefaultOptions: this.labelDefaultOptions }));
|
|
79
|
-
}
|
|
80
|
-
isSingleField(field) {
|
|
81
|
-
return !(field instanceof GroupField &&
|
|
82
|
-
field.containerVisible &&
|
|
83
|
-
this.useGroupContainer &&
|
|
84
|
-
this.containerVisible);
|
|
85
|
-
}
|
|
86
|
-
createFormGroup(formContent) {
|
|
87
|
-
return React.createElement("div", { className: "df-form-group" }, formContent);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
//# sourceMappingURL=generateFormContentUtils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateFormContentUtils.js","sourceRoot":"","sources":["../../../../lib/nvs-dynamic-form/services/generateFormContentUtils.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,349 +0,0 @@
|
|
|
1
|
-
import { INvsDynamicForm, NvsDynamicForm } from ".";
|
|
2
|
-
import * as Yup from "yup";
|
|
3
|
-
|
|
4
|
-
import React, { ChangeEvent } from "react";
|
|
5
|
-
import { ArrayField, FieldBase, GroupField } from "../types";
|
|
6
|
-
|
|
7
|
-
export default {
|
|
8
|
-
component: NvsDynamicForm,
|
|
9
|
-
title: "Nvs Dynamic Form",
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const ButtonComponent = ({
|
|
13
|
-
children,
|
|
14
|
-
type = "submit",
|
|
15
|
-
onClick = () => {},
|
|
16
|
-
}: {
|
|
17
|
-
children: string;
|
|
18
|
-
type: "submit" | "reset" | "button";
|
|
19
|
-
onClick?: () => void;
|
|
20
|
-
}) => {
|
|
21
|
-
return (
|
|
22
|
-
<button onClick={onClick} style={{ width: "100%" }} type={type}>
|
|
23
|
-
{children}
|
|
24
|
-
</button>
|
|
25
|
-
);
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
const TextboxElement = ({ defaultValue, ...props }: TextboxField) => {
|
|
29
|
-
return (
|
|
30
|
-
<input style={{ width: "100%", boxSizing: "border-box" }} {...props} />
|
|
31
|
-
);
|
|
32
|
-
};
|
|
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
|
-
|
|
47
|
-
class TextboxField extends FieldBase<string> {
|
|
48
|
-
override readonly fieldType? = "textbox";
|
|
49
|
-
type?: "email" | "number" | "password" | "tel" | "text" | "url";
|
|
50
|
-
placeholder?: string;
|
|
51
|
-
|
|
52
|
-
constructor(options: TextboxField) {
|
|
53
|
-
super(options, "");
|
|
54
|
-
this.type = options.type ?? "text";
|
|
55
|
-
this.placeholder = options.placeholder ?? "";
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export const Default: { args: INvsDynamicForm; name: string } = {
|
|
60
|
-
name: "Simple Example",
|
|
61
|
-
args: {
|
|
62
|
-
onSubmit: (values) => {
|
|
63
|
-
alert(JSON.stringify(values));
|
|
64
|
-
},
|
|
65
|
-
submitButtonIsFullWidth: false,
|
|
66
|
-
submitButtonLabel: "Save",
|
|
67
|
-
submitButtonVisible: true,
|
|
68
|
-
submitButtonPosition: "right",
|
|
69
|
-
submitButtonDefaultOptions: {
|
|
70
|
-
label: "Save",
|
|
71
|
-
isFullWidth: true,
|
|
72
|
-
position: "right",
|
|
73
|
-
},
|
|
74
|
-
buttonComponent: ButtonComponent,
|
|
75
|
-
formElements: {
|
|
76
|
-
textbox: {
|
|
77
|
-
component: TextboxElement,
|
|
78
|
-
class: TextboxField,
|
|
79
|
-
},
|
|
80
|
-
},
|
|
81
|
-
fields: [
|
|
82
|
-
new TextboxField({
|
|
83
|
-
id: "firstName",
|
|
84
|
-
placeholder: "Enter your first name",
|
|
85
|
-
defaultValue: "ismet",
|
|
86
|
-
validate: Yup.string().required(),
|
|
87
|
-
onChange: (event) => {
|
|
88
|
-
console.log((event as ChangeEvent<HTMLInputElement>).target.value);
|
|
89
|
-
},
|
|
90
|
-
screenSize: {
|
|
91
|
-
desktop: 6,
|
|
92
|
-
mobile: 6,
|
|
93
|
-
},
|
|
94
|
-
}),
|
|
95
|
-
new TextboxField({
|
|
96
|
-
id: "lastName",
|
|
97
|
-
placeholder: "Enter your last name",
|
|
98
|
-
validate: Yup.string().required(),
|
|
99
|
-
screenSize: {
|
|
100
|
-
desktop: 6,
|
|
101
|
-
mobile: 6,
|
|
102
|
-
},
|
|
103
|
-
}),
|
|
104
|
-
new TextboxField({
|
|
105
|
-
id: "emailAddress",
|
|
106
|
-
placeholder: "Enter your e-mail address",
|
|
107
|
-
screenSize: 12,
|
|
108
|
-
type: "email",
|
|
109
|
-
}),
|
|
110
|
-
],
|
|
111
|
-
},
|
|
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
|
-
screenSize: {
|
|
308
|
-
desktop: 6,
|
|
309
|
-
mobile: 6,
|
|
310
|
-
},
|
|
311
|
-
}),
|
|
312
|
-
new TextboxField({
|
|
313
|
-
id: "lastName",
|
|
314
|
-
placeholder: "Enter your last name",
|
|
315
|
-
screenSize: {
|
|
316
|
-
desktop: 6,
|
|
317
|
-
mobile: 6,
|
|
318
|
-
},
|
|
319
|
-
}),
|
|
320
|
-
new ArrayField({
|
|
321
|
-
id: "addresses",
|
|
322
|
-
label: "Addresses",
|
|
323
|
-
addButtonOptions: {
|
|
324
|
-
label: "Add Address",
|
|
325
|
-
},
|
|
326
|
-
defaultValues: [
|
|
327
|
-
{ cityName: "İzmir", districtName: "Göztepe" },
|
|
328
|
-
{ cityName: "İstanbul", districtName: "Kadıköy" },
|
|
329
|
-
],
|
|
330
|
-
validate: Yup.array().min(2).max(3),
|
|
331
|
-
fields: [
|
|
332
|
-
new TextboxField({
|
|
333
|
-
id: "cityName",
|
|
334
|
-
label: "City Name",
|
|
335
|
-
placeholder: "Enter your city name",
|
|
336
|
-
screenSize: 6,
|
|
337
|
-
validate: Yup.string().required(),
|
|
338
|
-
}),
|
|
339
|
-
new TextboxField({
|
|
340
|
-
id: "districtName",
|
|
341
|
-
label: "district Name",
|
|
342
|
-
placeholder: "Enter your district name",
|
|
343
|
-
screenSize: 6,
|
|
344
|
-
}),
|
|
345
|
-
],
|
|
346
|
-
}),
|
|
347
|
-
],
|
|
348
|
-
},
|
|
349
|
-
};
|