@nvs-dynamic-form/react-core 2.3.1 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/cjs/nvs-dynamic-form/_template.js +4 -17
  2. package/dist/cjs/nvs-dynamic-form/_template.js.map +1 -1
  3. package/dist/cjs/nvs-dynamic-form/components/arrayField/_template.js +24 -25
  4. package/dist/cjs/nvs-dynamic-form/components/arrayField/_template.js.map +1 -1
  5. package/dist/cjs/nvs-dynamic-form/components/elements/_template.d.ts +16 -0
  6. package/dist/cjs/nvs-dynamic-form/components/elements/_template.js +62 -0
  7. package/dist/cjs/nvs-dynamic-form/components/elements/_template.js.map +1 -0
  8. package/dist/cjs/nvs-dynamic-form/components/elements/index.d.ts +1 -0
  9. package/dist/cjs/nvs-dynamic-form/components/elements/index.js +18 -0
  10. package/dist/cjs/nvs-dynamic-form/components/elements/index.js.map +1 -0
  11. package/dist/cjs/nvs-dynamic-form/components/formBuilder/_template.d.ts +20 -0
  12. package/dist/cjs/nvs-dynamic-form/components/formBuilder/_template.js +84 -0
  13. package/dist/cjs/nvs-dynamic-form/components/formBuilder/_template.js.map +1 -0
  14. package/dist/cjs/nvs-dynamic-form/components/formBuilder/index.d.ts +1 -0
  15. package/dist/cjs/nvs-dynamic-form/components/formBuilder/index.js +18 -0
  16. package/dist/cjs/nvs-dynamic-form/components/formBuilder/index.js.map +1 -0
  17. package/dist/cjs/nvs-dynamic-form/components/groupField/_template.d.ts +2 -1
  18. package/dist/cjs/nvs-dynamic-form/components/groupField/_template.js +33 -17
  19. package/dist/cjs/nvs-dynamic-form/components/groupField/_template.js.map +1 -1
  20. package/dist/cjs/nvs-dynamic-form/components/groupField/_type.d.ts +1 -0
  21. package/dist/cjs/types/array-field.type.d.ts +4 -2
  22. package/dist/cjs/types/array-field.type.js +2 -0
  23. package/dist/cjs/types/array-field.type.js.map +1 -1
  24. package/dist/cjs/types/group-field.type.d.ts +5 -5
  25. package/dist/cjs/types/group-field.type.js +2 -0
  26. package/dist/cjs/types/group-field.type.js.map +1 -1
  27. package/dist/esm/nvs-dynamic-form/_template.js +4 -17
  28. package/dist/esm/nvs-dynamic-form/_template.js.map +1 -1
  29. package/dist/esm/nvs-dynamic-form/components/arrayField/_template.js +25 -26
  30. package/dist/esm/nvs-dynamic-form/components/arrayField/_template.js.map +1 -1
  31. package/dist/esm/nvs-dynamic-form/components/elements/_template.d.ts +16 -0
  32. package/dist/esm/nvs-dynamic-form/components/elements/_template.js +35 -0
  33. package/dist/esm/nvs-dynamic-form/components/elements/_template.js.map +1 -0
  34. package/dist/esm/nvs-dynamic-form/components/elements/index.d.ts +1 -0
  35. package/dist/esm/nvs-dynamic-form/components/elements/index.js +2 -0
  36. package/dist/esm/nvs-dynamic-form/components/elements/index.js.map +1 -0
  37. package/dist/esm/nvs-dynamic-form/components/formBuilder/_template.d.ts +20 -0
  38. package/dist/esm/nvs-dynamic-form/components/formBuilder/_template.js +57 -0
  39. package/dist/esm/nvs-dynamic-form/components/formBuilder/_template.js.map +1 -0
  40. package/dist/esm/nvs-dynamic-form/components/formBuilder/index.d.ts +1 -0
  41. package/dist/esm/nvs-dynamic-form/components/formBuilder/index.js +2 -0
  42. package/dist/esm/nvs-dynamic-form/components/formBuilder/index.js.map +1 -0
  43. package/dist/esm/nvs-dynamic-form/components/groupField/_template.d.ts +2 -1
  44. package/dist/esm/nvs-dynamic-form/components/groupField/_template.js +10 -17
  45. package/dist/esm/nvs-dynamic-form/components/groupField/_template.js.map +1 -1
  46. package/dist/esm/nvs-dynamic-form/components/groupField/_type.d.ts +1 -0
  47. package/dist/esm/types/array-field.type.d.ts +4 -2
  48. package/dist/esm/types/array-field.type.js +2 -0
  49. package/dist/esm/types/array-field.type.js.map +1 -1
  50. package/dist/esm/types/group-field.type.d.ts +5 -5
  51. package/dist/esm/types/group-field.type.js +2 -0
  52. package/dist/esm/types/group-field.type.js.map +1 -1
  53. package/lib/nvs-dynamic-form/_template.tsx +21 -18
  54. package/lib/nvs-dynamic-form/components/arrayField/_template.tsx +50 -39
  55. package/lib/nvs-dynamic-form/components/elements/_template.tsx +94 -0
  56. package/lib/nvs-dynamic-form/components/elements/index.tsx +1 -0
  57. package/lib/nvs-dynamic-form/components/formBuilder/_template.tsx +149 -0
  58. package/lib/nvs-dynamic-form/components/formBuilder/index.tsx +1 -0
  59. package/lib/nvs-dynamic-form/components/groupField/_template.tsx +33 -13
  60. package/lib/nvs-dynamic-form/components/groupField/_type.tsx +1 -0
  61. package/lib/nvs-dynamic-form/stories/components/button.tsx +17 -0
  62. package/lib/nvs-dynamic-form/stories/components/container.tsx +14 -0
  63. package/lib/nvs-dynamic-form/stories/components/index.tsx +3 -0
  64. package/lib/nvs-dynamic-form/stories/components/textboxElement.tsx +20 -0
  65. package/lib/nvs-dynamic-form/stories/fields/arrayField/basicExample.stories.tsx +87 -0
  66. package/lib/nvs-dynamic-form/stories/fields/arrayField/groupField.stories.tsx +102 -0
  67. package/lib/nvs-dynamic-form/stories/fields/arrayField/nested.stories.tsx +137 -0
  68. package/lib/nvs-dynamic-form/stories/fields/basicExample.stories.tsx +66 -0
  69. package/lib/nvs-dynamic-form/stories/fields/groupField/arrayFields.stories.tsx +113 -0
  70. package/lib/nvs-dynamic-form/stories/fields/groupField/basicExample.stories.tsx +86 -0
  71. package/lib/nvs-dynamic-form/stories/fields/groupField/container.stories.tsx +112 -0
  72. package/lib/nvs-dynamic-form/stories/fields/groupField/nested.stories.tsx +103 -0
  73. package/lib/types/array-field.type.tsx +6 -2
  74. package/lib/types/group-field.type.tsx +7 -3
  75. package/package.json +1 -1
  76. package/dist/cjs/nvs-dynamic-form/services/generateFormContentUtils.d.ts +0 -46
  77. package/dist/cjs/nvs-dynamic-form/services/generateFormContentUtils.js +0 -97
  78. package/dist/cjs/nvs-dynamic-form/services/generateFormContentUtils.js.map +0 -1
  79. package/dist/esm/nvs-dynamic-form/services/generateFormContentUtils.d.ts +0 -46
  80. package/dist/esm/nvs-dynamic-form/services/generateFormContentUtils.js +0 -90
  81. package/dist/esm/nvs-dynamic-form/services/generateFormContentUtils.js.map +0 -1
  82. package/lib/nvs-dynamic-form/_stories.tsx +0 -349
  83. package/lib/nvs-dynamic-form/services/generateFormContentUtils.tsx +0 -196
@@ -0,0 +1,103 @@
1
+ import * as Yup from "yup";
2
+
3
+ import {
4
+ ButtonComponent,
5
+ TextboxElement,
6
+ TextboxField,
7
+ } from "../../components";
8
+ import { INvsDynamicForm, NvsDynamicForm } from "../../..";
9
+
10
+ import { ChangeEvent } from "react";
11
+ import { GroupField } from "../../../../types";
12
+
13
+ export default {
14
+ component: NvsDynamicForm,
15
+ title: "Group Field",
16
+ };
17
+
18
+ export const NestedGroup: { args: INvsDynamicForm; name: string } = {
19
+ name: "Nested Group",
20
+ args: {
21
+ onSubmit: (values) => {
22
+ alert(JSON.stringify(values));
23
+ },
24
+ submitButtonIsFullWidth: false,
25
+ submitButtonLabel: "Save",
26
+ submitButtonVisible: true,
27
+ submitButtonPosition: "right",
28
+ submitButtonDefaultOptions: {
29
+ label: "Save",
30
+ isFullWidth: true,
31
+ position: "right",
32
+ },
33
+ buttonComponent: ButtonComponent,
34
+ formElements: {
35
+ textbox: {
36
+ component: TextboxElement,
37
+ class: TextboxField,
38
+ },
39
+ },
40
+ fields: [
41
+ new TextboxField({
42
+ id: "firstName",
43
+ label: "First Name",
44
+ placeholder: "Enter your first name",
45
+ defaultValue: "ismet",
46
+ validate: Yup.string().required(),
47
+ onChange: (event) => {
48
+ console.log((event as ChangeEvent<HTMLInputElement>).target.value);
49
+ },
50
+ screenSize: {
51
+ desktop: 6,
52
+ mobile: 6,
53
+ },
54
+ }),
55
+ new TextboxField({
56
+ id: "lastName",
57
+ label: "Last Name",
58
+ placeholder: "Enter your last name",
59
+ validate: Yup.string().required(),
60
+ screenSize: {
61
+ desktop: 6,
62
+ mobile: 6,
63
+ },
64
+ }),
65
+ new GroupField({
66
+ id: "contactInfo",
67
+ fields: [
68
+ new TextboxField({
69
+ id: "emailAddress",
70
+ label: "E-mail Address",
71
+ placeholder: "Enter your e-mail address",
72
+ screenSize: 6,
73
+ type: "email",
74
+ defaultValue: "info@ismetkizgin.com",
75
+ }),
76
+ new TextboxField({
77
+ id: "phoneNumber",
78
+ label: "Phone Number",
79
+ placeholder: "Enter your phone number",
80
+ screenSize: 6,
81
+ }),
82
+ new GroupField({
83
+ id: "address",
84
+ fields: [
85
+ new TextboxField({
86
+ id: "cityName",
87
+ label: "City Name",
88
+ placeholder: "Enter your city name",
89
+ screenSize: 6,
90
+ }),
91
+ new TextboxField({
92
+ id: "districtName",
93
+ label: "District Name",
94
+ placeholder: "Enter your district name",
95
+ screenSize: 6,
96
+ }),
97
+ ],
98
+ }),
99
+ ],
100
+ }),
101
+ ],
102
+ },
103
+ };
@@ -5,19 +5,21 @@ import {
5
5
  ArrayFieldRemoveButton,
6
6
  } from "./array-field-action-button.type";
7
7
 
8
- import { FieldBase } from "./field-base.type";
8
+ import { FieldType } from "../nvs-dynamic-form";
9
9
  import { LabelOptions } from "./label-options.type";
10
10
 
11
11
  export class ArrayField<ValueType = { [key: string]: any }> {
12
12
  fieldType?: string = "fieldArray";
13
13
  id!: string;
14
- fields: Array<FieldBase<any>>;
14
+ fields: Array<FieldType>;
15
15
  addButtonOptions?: ArrayFieldAddButton;
16
16
  removeButtonOptions?: ArrayFieldRemoveButton;
17
17
  defaultValues?: Array<ValueType>;
18
18
  label?: string;
19
19
  labelOptions?: LabelOptions;
20
20
  validate?: Yup.ArraySchema<any, any>;
21
+ containerVisible?: boolean;
22
+ containerOptions?: Record<string, any>;
21
23
 
22
24
  constructor(options: ArrayField<ValueType>) {
23
25
  this.id = options.id;
@@ -28,5 +30,7 @@ export class ArrayField<ValueType = { [key: string]: any }> {
28
30
  this.label = options.label;
29
31
  this.labelOptions = options.labelOptions ?? {};
30
32
  this.validate = options.validate ?? Yup.array();
33
+ this.containerVisible = options.containerVisible ?? false;
34
+ this.containerOptions = options.containerOptions ?? {};
31
35
  }
32
36
  }
@@ -1,15 +1,19 @@
1
- import { FieldBase } from "./field-base.type";
1
+ import { FieldType } from "../nvs-dynamic-form";
2
2
 
3
3
  export class GroupField {
4
4
  id!: string;
5
- fields: Array<FieldBase<unknown>>;
5
+ fields: Array<FieldType>;
6
6
  containerVisible?: boolean;
7
- containerOptions?: { [key: string]: any };
7
+ containerOptions?: Record<string, any>;
8
+ useContainersOutsideGroup?: boolean;
9
+ useGroupContainer?: boolean;
8
10
 
9
11
  constructor(options: GroupField) {
10
12
  this.id = options.id;
11
13
  this.fields = options.fields ?? [];
12
14
  this.containerVisible = options.containerVisible ?? false;
15
+ this.useContainersOutsideGroup = options.useContainersOutsideGroup ?? false;
16
+ this.useGroupContainer = options.useGroupContainer ?? false;
13
17
  this.containerOptions = options.containerOptions ?? {};
14
18
  }
15
19
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nvs-dynamic-form/react-core",
3
- "version": "2.3.1",
3
+ "version": "2.4.1",
4
4
  "types": "dist/cjs/index.d.ts",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -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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"}