@nvs-dynamic-form/react-core 2.7.1 → 2.7.3
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/LICENSE +1 -1
- package/README.md +25 -0
- package/dist/cjs/nvs-dynamic-form/components/elements/_template.d.ts +1 -1
- package/dist/cjs/nvs-dynamic-form/components/elements/_template.js +10 -34
- package/dist/cjs/nvs-dynamic-form/components/elements/_template.js.map +1 -1
- package/dist/cjs/nvs-dynamic-form/components/formBuilder/_template.js +8 -35
- package/dist/cjs/nvs-dynamic-form/components/formBuilder/_template.js.map +1 -1
- package/dist/esm/nvs-dynamic-form/components/elements/_template.d.ts +1 -1
- package/dist/esm/nvs-dynamic-form/components/elements/_template.js +8 -12
- package/dist/esm/nvs-dynamic-form/components/elements/_template.js.map +1 -1
- package/dist/esm/nvs-dynamic-form/components/formBuilder/_template.js +6 -13
- package/dist/esm/nvs-dynamic-form/components/formBuilder/_template.js.map +1 -1
- package/lib/nvs-dynamic-form/components/elements/_template.tsx +8 -13
- package/lib/nvs-dynamic-form/components/formBuilder/_template.tsx +9 -18
- package/package.json +1 -1
package/LICENSE
CHANGED
package/README.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<p align="center"><a href="https://novatorsoft.com" target="_blank"><img src="https://os.novatorsoft.com/novatorsoft/dark-logo.png" width="700" alt="Novatorsoft Logo"/></a></p>
|
|
2
|
+
|
|
3
|
+
<h1 align="center">React Dynamic Form</h1>
|
|
4
|
+
<p align="center">A React core library that provides the foundational building blocks for creating typed, schema-driven dynamic forms with a consistent developer experience.</p>
|
|
5
|
+
|
|
6
|
+
<p align="center">
|
|
7
|
+
<a href="https://www.npmjs.com/package/nestjs-auth-module" target="_blank"><img src="https://img.shields.io/npm/v/nestjs-auth-module.svg" alt="NPM Version" /></a>
|
|
8
|
+
<a href="https://www.npmjs.com/package/nestjs-auth-module" target="_blank"><img src="https://img.shields.io/npm/l/nestjs-auth-module.svg" alt="Package License" /></a>
|
|
9
|
+
<a href="https://www.npmjs.com/package/nestjs-auth-module" target="_blank"><img src="https://img.shields.io/npm/dm/nestjs-auth-module.svg" alt="NPM Downloads" /></a>
|
|
10
|
+
</p>
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://www.instagram.com/novatorsoft/" target="_blank"><img src="https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white" alt="Instagram" /></a>
|
|
13
|
+
<a href="https://www.linkedin.com/company/novatorsoft/" target="_blank"><img src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white" alt="LinkedIn" /></a>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
## About
|
|
17
|
+
`@nvs-dynamic-form/react-core` helps you build reusable dynamic form systems by centralizing core form primitives, types, and patterns, while integrating with common form and validation tooling (notably Formik and Yup). It’s designed to standardize how dynamic fields are defined, rendered, and validated across projects, reducing duplicated form logic and making complex, data-driven UI forms easier to maintain and scale.
|
|
18
|
+
|
|
19
|
+
## Documentation
|
|
20
|
+
|
|
21
|
+
For installation, usage, configuration, and examples, see the documentation:
|
|
22
|
+
- [Documentation](https://opensource.novatorsoft.com/docs/dynamic-form-react-core/intro)
|
|
23
|
+
|
|
24
|
+
## License
|
|
25
|
+
MIT — see [LICENSE](./LICENSE).
|
|
@@ -13,4 +13,4 @@ export declare const Elements: ({ fields, formElements, containerComponent, useC
|
|
|
13
13
|
fieldArrayAddButtonDefaultOptions?: ArrayFieldAddButton;
|
|
14
14
|
fieldArrayRemoveButtonDefaultOptions?: ArrayFieldAddButton;
|
|
15
15
|
labelDefaultOptions?: LabelOptions;
|
|
16
|
-
}) => React.JSX.Element
|
|
16
|
+
}) => React.JSX.Element;
|
|
@@ -1,47 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
4
|
};
|
|
25
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
6
|
exports.Elements = void 0;
|
|
27
7
|
const types_1 = require("../../../types");
|
|
28
8
|
const field_1 = require("../field");
|
|
29
|
-
const react_1 =
|
|
9
|
+
const react_1 = __importDefault(require("react"));
|
|
30
10
|
const arrayField_1 = require("../arrayField");
|
|
31
11
|
const groupField_1 = require("../groupField");
|
|
32
12
|
const Elements = ({ fields, formElements, containerComponent, useContainersOutsideGroup, useGroupContainer, containerVisible, buttonComponent, fieldArrayAddButtonDefaultOptions = {}, fieldArrayRemoveButtonDefaultOptions = {}, labelDefaultOptions = {}, }) => {
|
|
33
|
-
const [fieldsElements, setFieldsElements] = (0, react_1.useState)([]);
|
|
34
13
|
const createFormElements = () => {
|
|
35
|
-
const
|
|
14
|
+
const elements = [];
|
|
36
15
|
for (const field of fields) {
|
|
37
16
|
if (field instanceof types_1.GroupField)
|
|
38
|
-
|
|
17
|
+
elements.push(createGroupFieldElement(field));
|
|
39
18
|
else if (field instanceof types_1.ArrayField)
|
|
40
|
-
|
|
19
|
+
elements.push(createArrayFieldElement(field));
|
|
41
20
|
else
|
|
42
|
-
|
|
21
|
+
elements.push(createSingleFieldElement(field));
|
|
43
22
|
}
|
|
44
|
-
return
|
|
23
|
+
return elements;
|
|
45
24
|
};
|
|
46
25
|
const createSingleFieldElement = (field) => {
|
|
47
26
|
return react_1.default.createElement(field_1.Field, { key: field.id, formElements: formElements, field: field });
|
|
@@ -52,11 +31,8 @@ const Elements = ({ fields, formElements, containerComponent, useContainersOutsi
|
|
|
52
31
|
const createArrayFieldElement = (field) => {
|
|
53
32
|
return (react_1.default.createElement(arrayField_1.ArrayField, { key: field.id, formElements: formElements, field: field, containerComponent: containerComponent, useContainersOutsideGroup: useContainersOutsideGroup, useGroupContainer: useGroupContainer, containerVisible: containerVisible, buttonComponent: buttonComponent, addButtonDefaultOptions: fieldArrayAddButtonDefaultOptions, removeButtonDefaultOptions: fieldArrayRemoveButtonDefaultOptions, labelDefaultOptions: labelDefaultOptions }));
|
|
54
33
|
};
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
setFieldsElements(createFormElements());
|
|
58
|
-
}, [fields]);
|
|
59
|
-
return fieldsElements.length > 0 ? fieldsElements : react_1.default.createElement(react_1.default.Fragment, null);
|
|
34
|
+
const fieldsElements = fields.length > 0 ? createFormElements() : [];
|
|
35
|
+
return fieldsElements.length > 0 ? react_1.default.createElement(react_1.default.Fragment, null, fieldsElements) : react_1.default.createElement(react_1.default.Fragment, null);
|
|
60
36
|
};
|
|
61
37
|
exports.Elements = Elements;
|
|
62
38
|
//# sourceMappingURL=_template.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../../../lib/nvs-dynamic-form/components/elements/_template.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../../../lib/nvs-dynamic-form/components/elements/_template.tsx"],"names":[],"mappings":";;;;;;AAAA,0CAKwB;AACxB,oCAA+C;AAC/C,kDAA0B;AAE1B,8CAAgE;AAGhE,8CAAgE;AAEzD,MAAM,QAAQ,GAAG,CAAC,EACvB,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iCAAiC,GAAG,EAAE,EACtC,oCAAoC,GAAG,EAAE,EACzC,mBAAmB,GAAG,EAAE,GAYzB,EAAE,EAAE;IACH,MAAM,kBAAkB,GAAG,GAAkB,EAAE;QAC7C,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,YAAY,kBAAU;gBAC7B,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3C,IAAI,KAAK,YAAY,kBAAU;gBAClC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;;gBAC3C,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,CAAC,KAAyB,EAAE,EAAE;QAC7D,OAAO,8BAAC,aAAK,IAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,GAAI,CAAC;IAC5E,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,CAAC,KAAiB,EAAE,EAAE;QACpD,OAAO,CACL,8BAAC,uBAAiB,IAChB,GAAG,EAAE,KAAK,CAAC,EAAE,EACb,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,kBAAkB,EACtC,yBAAyB,EAAE,yBAAyB,EACpD,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAgB,GACjC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,CAAC,KAAiB,EAAE,EAAE;QACpD,OAAO,CACL,8BAAC,uBAAiB,IAChB,GAAG,EAAE,KAAK,CAAC,EAAE,EACb,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,kBAAkB,EACtC,yBAAyB,EAAE,yBAAyB,EACpD,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAgB,EACjC,uBAAuB,EAAE,iCAAiC,EAC1D,0BAA0B,EAAE,oCAAoC,EAChE,mBAAmB,EAAE,mBAAmB,GACxC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,8DAAG,cAAc,CAAI,CAAC,CAAC,CAAC,6DAAK,CAAC;AACnE,CAAC,CAAC;AA1EW,QAAA,QAAQ,YA0EnB"}
|
|
@@ -1,48 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
4
|
};
|
|
25
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
6
|
exports.FormBuilder = void 0;
|
|
27
|
-
const react_1 =
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
28
8
|
const types_1 = require("../../../types");
|
|
29
9
|
const container_1 = require("../container");
|
|
30
10
|
const elements_1 = require("../elements");
|
|
31
11
|
const FormBuilder = ({ containerComponent, formElements, useContainersOutsideGroup, useGroupContainer, containerVisible, fields, containerOptions = {}, buttonComponent, fieldArrayAddButtonDefaultOptions, fieldArrayRemoveButtonDefaultOptions, labelDefaultOptions, }) => {
|
|
32
|
-
const [formContent, setFormContent] = (0, react_1.useState)();
|
|
33
12
|
const createFormContent = () => {
|
|
34
13
|
const singleFields = createSingleFieldsElements();
|
|
35
14
|
const groupFields = createGroupFieldsElements();
|
|
36
|
-
let formContent;
|
|
37
15
|
if (containerVisible && useContainersOutsideGroup && singleFields)
|
|
38
|
-
|
|
16
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
39
17
|
createContainer(singleFields, containerOptions),
|
|
40
18
|
groupFields));
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
groupFields));
|
|
45
|
-
return formContent;
|
|
19
|
+
return createFormGroup(react_1.default.createElement(react_1.default.Fragment, null,
|
|
20
|
+
singleFields,
|
|
21
|
+
groupFields));
|
|
46
22
|
};
|
|
47
23
|
const createContentContainer = (formElements) => {
|
|
48
24
|
return (react_1.default.createElement("div", { className: "nvs-container-fluid" },
|
|
@@ -75,10 +51,7 @@ const FormBuilder = ({ containerComponent, formElements, useContainersOutsideGro
|
|
|
75
51
|
const createFormGroup = (formContent) => {
|
|
76
52
|
return react_1.default.createElement("div", { className: "df-form-group" }, formContent);
|
|
77
53
|
};
|
|
78
|
-
|
|
79
|
-
setFormContent(createFormContent());
|
|
80
|
-
}, [fields]);
|
|
81
|
-
return react_1.default.createElement(react_1.default.Fragment, null, formContent);
|
|
54
|
+
return react_1.default.createElement(react_1.default.Fragment, null, createFormContent());
|
|
82
55
|
};
|
|
83
56
|
exports.FormBuilder = FormBuilder;
|
|
84
57
|
//# sourceMappingURL=_template.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../../../lib/nvs-dynamic-form/components/formBuilder/_template.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../../../lib/nvs-dynamic-form/components/formBuilder/_template.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAAyC;AACzC,0CAAsE;AAItE,4CAAyC;AACzC,0CAAuC;AAEhC,MAAM,WAAW,GAAG,CAAC,EAC1B,kBAAkB,EAClB,YAAY,EACZ,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,EACN,gBAAgB,GAAG,EAAE,EACrB,eAAe,EACf,iCAAiC,EACjC,oCAAoC,EACpC,mBAAmB,GAapB,EAAE,EAAE;IACH,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,MAAM,YAAY,GAAG,0BAA0B,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;QAEhD,IAAI,gBAAgB,IAAI,yBAAyB,IAAI,YAAY;YAC/D,OAAO,CACL;gBACG,eAAe,CAAC,YAAY,EAAE,gBAAgB,CAAC;gBAC/C,WAAW,CACX,CACJ,CAAC;QAEJ,OAAO,eAAe,CACpB;YACG,YAAY;YACZ,WAAW,CACX,CACJ,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAAC,YAAuB,EAAE,EAAE;QACzD,OAAO,CACL,uCAAK,SAAS,EAAC,qBAAqB;YAClC,uCAAK,SAAS,EAAC,SAAS,IAAE,YAAY,CAAO,CACzC,CACP,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,0BAA0B,GAAG,GAAG,EAAE;QACtC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QACvC,OAAO,CACL,YAAY,CAAC,MAAM,GAAG,CAAC;YACvB,sBAAsB,CACpB,8BAAC,mBAAQ,IACP,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,yBAAyB,EAAE,yBAAyB,EACpD,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAe,EAChC,iCAAiC,EAAE,iCAAiC,EACpE,oCAAoC,EAClC,oCAAoC,EAEtC,mBAAmB,EAAE,mBAAmB,GACxC,CACH,CACF,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,yBAAyB,GAAG,GAAG,EAAE;QACrC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,OAAO,CACL,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CACxB,8BAAC,mBAAQ,IACP,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,yBAAyB,EAAE,yBAAyB,EACpD,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAe,EAChC,iCAAiC,EAAE,iCAAiC,EACpE,oCAAoC,EAClC,oCAAoC,EAEtC,mBAAmB,EAAE,mBAAmB,GACxC,CACH,CACF,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,KAAgB,EAAE,EAAE;QACzC,OAAO,CAAC,CACN,CAAC,KAAK,YAAY,kBAAU,IAAI,KAAK,YAAY,kBAAU,CAAC;YAC5D,KAAK,CAAC,gBAAgB;YACtB,iBAAiB;YACjB,gBAAgB,CACjB,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,OAAkB,EAAE,cAAsB,EAAE,EAAE;QACrE,OAAO,CACL,8BAAC,qBAAS,IACR,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,cAAc,IAEtB,OAAO,CACE,CACb,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,WAAsB,EAAE,EAAE;QACjD,OAAO,uCAAK,SAAS,EAAC,eAAe,IAAE,WAAW,CAAO,CAAC;IAC5D,CAAC,CAAC;IAEF,OAAO,8DAAG,iBAAiB,EAAE,CAAI,CAAC;AACpC,CAAC,CAAC;AAnIW,QAAA,WAAW,eAmItB"}
|
|
@@ -13,4 +13,4 @@ export declare const Elements: ({ fields, formElements, containerComponent, useC
|
|
|
13
13
|
fieldArrayAddButtonDefaultOptions?: ArrayFieldAddButton;
|
|
14
14
|
fieldArrayRemoveButtonDefaultOptions?: ArrayFieldAddButton;
|
|
15
15
|
labelDefaultOptions?: LabelOptions;
|
|
16
|
-
}) => React.JSX.Element
|
|
16
|
+
}) => React.JSX.Element;
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import { ArrayField, GroupField, } from "../../../types";
|
|
2
2
|
import { Field } from "../field";
|
|
3
|
-
import React
|
|
3
|
+
import React from "react";
|
|
4
4
|
import { ArrayField as ArrayFieldElement } from "../arrayField";
|
|
5
5
|
import { GroupField as GroupFieldElement } from "../groupField";
|
|
6
6
|
export const Elements = ({ fields, formElements, containerComponent, useContainersOutsideGroup, useGroupContainer, containerVisible, buttonComponent, fieldArrayAddButtonDefaultOptions = {}, fieldArrayRemoveButtonDefaultOptions = {}, labelDefaultOptions = {}, }) => {
|
|
7
|
-
const [fieldsElements, setFieldsElements] = useState([]);
|
|
8
7
|
const createFormElements = () => {
|
|
9
|
-
const
|
|
8
|
+
const elements = [];
|
|
10
9
|
for (const field of fields) {
|
|
11
10
|
if (field instanceof GroupField)
|
|
12
|
-
|
|
11
|
+
elements.push(createGroupFieldElement(field));
|
|
13
12
|
else if (field instanceof ArrayField)
|
|
14
|
-
|
|
13
|
+
elements.push(createArrayFieldElement(field));
|
|
15
14
|
else
|
|
16
|
-
|
|
15
|
+
elements.push(createSingleFieldElement(field));
|
|
17
16
|
}
|
|
18
|
-
return
|
|
17
|
+
return elements;
|
|
19
18
|
};
|
|
20
19
|
const createSingleFieldElement = (field) => {
|
|
21
20
|
return React.createElement(Field, { key: field.id, formElements: formElements, field: field });
|
|
@@ -26,10 +25,7 @@ export const Elements = ({ fields, formElements, containerComponent, useContaine
|
|
|
26
25
|
const createArrayFieldElement = (field) => {
|
|
27
26
|
return (React.createElement(ArrayFieldElement, { key: field.id, formElements: formElements, field: field, containerComponent: containerComponent, useContainersOutsideGroup: useContainersOutsideGroup, useGroupContainer: useGroupContainer, containerVisible: containerVisible, buttonComponent: buttonComponent, addButtonDefaultOptions: fieldArrayAddButtonDefaultOptions, removeButtonDefaultOptions: fieldArrayRemoveButtonDefaultOptions, labelDefaultOptions: labelDefaultOptions }));
|
|
28
27
|
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
setFieldsElements(createFormElements());
|
|
32
|
-
}, [fields]);
|
|
33
|
-
return fieldsElements.length > 0 ? fieldsElements : React.createElement(React.Fragment, null);
|
|
28
|
+
const fieldsElements = fields.length > 0 ? createFormElements() : [];
|
|
29
|
+
return fieldsElements.length > 0 ? React.createElement(React.Fragment, null, fieldsElements) : React.createElement(React.Fragment, null);
|
|
34
30
|
};
|
|
35
31
|
//# sourceMappingURL=_template.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../../../lib/nvs-dynamic-form/components/elements/_template.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,UAAU,GAEX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAgB,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../../../lib/nvs-dynamic-form/components/elements/_template.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,UAAU,GAEX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAgB,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iCAAiC,GAAG,EAAE,EACtC,oCAAoC,GAAG,EAAE,EACzC,mBAAmB,GAAG,EAAE,GAYzB,EAAE,EAAE;IACH,MAAM,kBAAkB,GAAG,GAAkB,EAAE;QAC7C,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,YAAY,UAAU;gBAC7B,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3C,IAAI,KAAK,YAAY,UAAU;gBAClC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;;gBAC3C,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,CAAC,KAAyB,EAAE,EAAE;QAC7D,OAAO,oBAAC,KAAK,IAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,GAAI,CAAC;IAC5E,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,CAAC,KAAiB,EAAE,EAAE;QACpD,OAAO,CACL,oBAAC,iBAAiB,IAChB,GAAG,EAAE,KAAK,CAAC,EAAE,EACb,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,kBAAkB,EACtC,yBAAyB,EAAE,yBAAyB,EACpD,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAgB,GACjC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,CAAC,KAAiB,EAAE,EAAE;QACpD,OAAO,CACL,oBAAC,iBAAiB,IAChB,GAAG,EAAE,KAAK,CAAC,EAAE,EACb,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,kBAAkB,EACtC,yBAAyB,EAAE,yBAAyB,EACpD,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAgB,EACjC,uBAAuB,EAAE,iCAAiC,EAC1D,0BAA0B,EAAE,oCAAoC,EAChE,mBAAmB,EAAE,mBAAmB,GACxC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,0CAAG,cAAc,CAAI,CAAC,CAAC,CAAC,yCAAK,CAAC;AACnE,CAAC,CAAC"}
|
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from "react";
|
|
2
2
|
import { ArrayField, GroupField } from "../../../types";
|
|
3
3
|
import { Container } from "../container";
|
|
4
4
|
import { Elements } from "../elements";
|
|
5
5
|
export const FormBuilder = ({ containerComponent, formElements, useContainersOutsideGroup, useGroupContainer, containerVisible, fields, containerOptions = {}, buttonComponent, fieldArrayAddButtonDefaultOptions, fieldArrayRemoveButtonDefaultOptions, labelDefaultOptions, }) => {
|
|
6
|
-
const [formContent, setFormContent] = useState();
|
|
7
6
|
const createFormContent = () => {
|
|
8
7
|
const singleFields = createSingleFieldsElements();
|
|
9
8
|
const groupFields = createGroupFieldsElements();
|
|
10
|
-
let formContent;
|
|
11
9
|
if (containerVisible && useContainersOutsideGroup && singleFields)
|
|
12
|
-
|
|
10
|
+
return (React.createElement(React.Fragment, null,
|
|
13
11
|
createContainer(singleFields, containerOptions),
|
|
14
12
|
groupFields));
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
groupFields));
|
|
19
|
-
return formContent;
|
|
13
|
+
return createFormGroup(React.createElement(React.Fragment, null,
|
|
14
|
+
singleFields,
|
|
15
|
+
groupFields));
|
|
20
16
|
};
|
|
21
17
|
const createContentContainer = (formElements) => {
|
|
22
18
|
return (React.createElement("div", { className: "nvs-container-fluid" },
|
|
@@ -49,9 +45,6 @@ export const FormBuilder = ({ containerComponent, formElements, useContainersOut
|
|
|
49
45
|
const createFormGroup = (formContent) => {
|
|
50
46
|
return React.createElement("div", { className: "df-form-group" }, formContent);
|
|
51
47
|
};
|
|
52
|
-
|
|
53
|
-
setFormContent(createFormContent());
|
|
54
|
-
}, [fields]);
|
|
55
|
-
return React.createElement(React.Fragment, null, formContent);
|
|
48
|
+
return React.createElement(React.Fragment, null, createFormContent());
|
|
56
49
|
};
|
|
57
50
|
//# sourceMappingURL=_template.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../../../lib/nvs-dynamic-form/components/formBuilder/_template.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../../../lib/nvs-dynamic-form/components/formBuilder/_template.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
LabelOptions,
|
|
6
6
|
} from "../../../types";
|
|
7
7
|
import { Field, IFormElement } from "../field";
|
|
8
|
-
import React
|
|
8
|
+
import React from "react";
|
|
9
9
|
|
|
10
10
|
import { ArrayField as ArrayFieldElement } from "../arrayField";
|
|
11
11
|
import { FieldBase } from "../../../types";
|
|
@@ -35,18 +35,16 @@ export const Elements = ({
|
|
|
35
35
|
fieldArrayRemoveButtonDefaultOptions?: ArrayFieldAddButton;
|
|
36
36
|
labelDefaultOptions?: LabelOptions;
|
|
37
37
|
}) => {
|
|
38
|
-
const [fieldsElements, setFieldsElements] = useState<JSX.Element[]>([]);
|
|
39
|
-
|
|
40
38
|
const createFormElements = (): JSX.Element[] => {
|
|
41
|
-
const
|
|
39
|
+
const elements = [];
|
|
42
40
|
for (const field of fields) {
|
|
43
41
|
if (field instanceof GroupField)
|
|
44
|
-
|
|
42
|
+
elements.push(createGroupFieldElement(field));
|
|
45
43
|
else if (field instanceof ArrayField)
|
|
46
|
-
|
|
47
|
-
else
|
|
44
|
+
elements.push(createArrayFieldElement(field));
|
|
45
|
+
else elements.push(createSingleFieldElement(field));
|
|
48
46
|
}
|
|
49
|
-
return
|
|
47
|
+
return elements;
|
|
50
48
|
};
|
|
51
49
|
|
|
52
50
|
const createSingleFieldElement = (field: FieldBase<unknown>) => {
|
|
@@ -86,9 +84,6 @@ export const Elements = ({
|
|
|
86
84
|
);
|
|
87
85
|
};
|
|
88
86
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}, [fields]);
|
|
92
|
-
|
|
93
|
-
return fieldsElements.length > 0 ? fieldsElements : <></>;
|
|
87
|
+
const fieldsElements = fields.length > 0 ? createFormElements() : [];
|
|
88
|
+
return fieldsElements.length > 0 ? <>{fieldsElements}</> : <></>;
|
|
94
89
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { ReactNode
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
2
|
import { ArrayField, GroupField, LabelOptions } from "../../../types";
|
|
3
3
|
import { IFormElement } from "../field";
|
|
4
4
|
import { FieldType } from "../../_type";
|
|
@@ -31,29 +31,24 @@ export const FormBuilder = ({
|
|
|
31
31
|
fieldArrayRemoveButtonDefaultOptions?: ArrayFieldAddButton;
|
|
32
32
|
labelDefaultOptions?: LabelOptions;
|
|
33
33
|
}) => {
|
|
34
|
-
const [formContent, setFormContent] = useState<ReactNode>();
|
|
35
|
-
|
|
36
34
|
const createFormContent = () => {
|
|
37
35
|
const singleFields = createSingleFieldsElements();
|
|
38
36
|
const groupFields = createGroupFieldsElements();
|
|
39
37
|
|
|
40
|
-
let formContent;
|
|
41
38
|
if (containerVisible && useContainersOutsideGroup && singleFields)
|
|
42
|
-
|
|
39
|
+
return (
|
|
43
40
|
<>
|
|
44
41
|
{createContainer(singleFields, containerOptions)}
|
|
45
42
|
{groupFields}
|
|
46
43
|
</>
|
|
47
44
|
);
|
|
48
|
-
else
|
|
49
|
-
formContent = createFormGroup(
|
|
50
|
-
<>
|
|
51
|
-
{singleFields}
|
|
52
|
-
{groupFields}
|
|
53
|
-
</>,
|
|
54
|
-
);
|
|
55
45
|
|
|
56
|
-
return
|
|
46
|
+
return createFormGroup(
|
|
47
|
+
<>
|
|
48
|
+
{singleFields}
|
|
49
|
+
{groupFields}
|
|
50
|
+
</>,
|
|
51
|
+
);
|
|
57
52
|
};
|
|
58
53
|
|
|
59
54
|
const createContentContainer = (formElements: ReactNode) => {
|
|
@@ -141,9 +136,5 @@ export const FormBuilder = ({
|
|
|
141
136
|
return <div className="df-form-group">{formContent}</div>;
|
|
142
137
|
};
|
|
143
138
|
|
|
144
|
-
|
|
145
|
-
setFormContent(createFormContent());
|
|
146
|
-
}, [fields]);
|
|
147
|
-
|
|
148
|
-
return <>{formContent}</>;
|
|
139
|
+
return <>{createFormContent()}</>;
|
|
149
140
|
};
|