@nvs-dynamic-form/react-core 2.0.0 → 2.1.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.
Files changed (41) hide show
  1. package/dist/cjs/nvs-dynamic-form/_template.d.ts +1 -1
  2. package/dist/cjs/nvs-dynamic-form/_template.js +3 -1
  3. package/dist/cjs/nvs-dynamic-form/_template.js.map +1 -1
  4. package/dist/cjs/nvs-dynamic-form/_type.d.ts +5 -3
  5. package/dist/cjs/nvs-dynamic-form/elements/arrayField/_template.d.ts +1 -1
  6. package/dist/cjs/nvs-dynamic-form/elements/arrayField/_template.js +33 -7
  7. package/dist/cjs/nvs-dynamic-form/elements/arrayField/_template.js.map +1 -1
  8. package/dist/cjs/nvs-dynamic-form/elements/arrayField/_type.d.ts +3 -1
  9. package/dist/cjs/nvs-dynamic-form/services/generateFormContentUtils.d.ts +6 -1
  10. package/dist/cjs/nvs-dynamic-form/services/generateFormContentUtils.js +7 -3
  11. package/dist/cjs/nvs-dynamic-form/services/generateFormContentUtils.js.map +1 -1
  12. package/dist/cjs/types/array-field.type.js +2 -3
  13. package/dist/cjs/types/array-field.type.js.map +1 -1
  14. package/dist/cjs/types/index.d.ts +1 -0
  15. package/dist/cjs/types/index.js +1 -0
  16. package/dist/cjs/types/index.js.map +1 -1
  17. package/dist/esm/nvs-dynamic-form/_template.d.ts +1 -1
  18. package/dist/esm/nvs-dynamic-form/_template.js +3 -1
  19. package/dist/esm/nvs-dynamic-form/_template.js.map +1 -1
  20. package/dist/esm/nvs-dynamic-form/_type.d.ts +5 -3
  21. package/dist/esm/nvs-dynamic-form/elements/arrayField/_template.d.ts +1 -1
  22. package/dist/esm/nvs-dynamic-form/elements/arrayField/_template.js +11 -5
  23. package/dist/esm/nvs-dynamic-form/elements/arrayField/_template.js.map +1 -1
  24. package/dist/esm/nvs-dynamic-form/elements/arrayField/_type.d.ts +3 -1
  25. package/dist/esm/nvs-dynamic-form/services/generateFormContentUtils.d.ts +6 -1
  26. package/dist/esm/nvs-dynamic-form/services/generateFormContentUtils.js +8 -4
  27. package/dist/esm/nvs-dynamic-form/services/generateFormContentUtils.js.map +1 -1
  28. package/dist/esm/types/array-field.type.js +2 -3
  29. package/dist/esm/types/array-field.type.js.map +1 -1
  30. package/dist/esm/types/index.d.ts +1 -0
  31. package/dist/esm/types/index.js +1 -0
  32. package/dist/esm/types/index.js.map +1 -1
  33. package/lib/nvs-dynamic-form/_stories.tsx +4 -5
  34. package/lib/nvs-dynamic-form/_template.tsx +4 -0
  35. package/lib/nvs-dynamic-form/_type.tsx +6 -2
  36. package/lib/nvs-dynamic-form/elements/arrayField/_template.tsx +31 -5
  37. package/lib/nvs-dynamic-form/elements/arrayField/_type.tsx +8 -1
  38. package/lib/nvs-dynamic-form/services/generateFormContentUtils.tsx +19 -2
  39. package/lib/types/array-field.type.tsx +2 -6
  40. package/lib/types/index.tsx +1 -0
  41. package/package.json +1 -1
@@ -2,4 +2,4 @@ import "nvs-flexgrid";
2
2
  import "./_style.css";
3
3
  import { INvsDynamicForm } from "./_type";
4
4
  import React from "react";
5
- export declare const NvsDynamicForm: ({ onSubmit, formElements, fields, formClass, buttonComponent, submitButtonDefaultOptions, submitButtonVisible, submitButtonLabel, submitButtonIsFullWidth, submitButtonPosition, submitButtonContainerClass, container, containerVisible, containerOptions, useContainersOutsideGroup, useGroupContainer, }: INvsDynamicForm) => React.JSX.Element;
5
+ export declare const NvsDynamicForm: ({ onSubmit, formElements, fields, formClass, buttonComponent, submitButtonDefaultOptions, submitButtonVisible, submitButtonLabel, submitButtonIsFullWidth, submitButtonPosition, submitButtonContainerClass, container, containerVisible, containerOptions, useContainersOutsideGroup, useGroupContainer, addButtonDefaultOptions, removeButtonDefaultOptions, }: INvsDynamicForm) => React.JSX.Element;
@@ -10,7 +10,7 @@ const button_1 = require("./elements/button");
10
10
  const formikForm_1 = require("./formikForm");
11
11
  const generateFormContentUtils_1 = require("./services/generateFormContentUtils");
12
12
  const react_1 = __importDefault(require("react"));
13
- const NvsDynamicForm = ({ onSubmit, formElements = {}, fields = [], formClass, buttonComponent, submitButtonDefaultOptions, submitButtonVisible = true, submitButtonLabel = submitButtonDefaultOptions.label, submitButtonIsFullWidth = submitButtonDefaultOptions.isFullWidth, submitButtonPosition = submitButtonDefaultOptions.position, submitButtonContainerClass, container = ({ children }) => react_1.default.createElement(react_1.default.Fragment, null, children), containerVisible = false, containerOptions = {}, useContainersOutsideGroup = false, useGroupContainer = false, }) => {
13
+ const NvsDynamicForm = ({ onSubmit, formElements = {}, fields = [], formClass, buttonComponent, submitButtonDefaultOptions, submitButtonVisible = true, submitButtonLabel = submitButtonDefaultOptions.label, submitButtonIsFullWidth = submitButtonDefaultOptions.isFullWidth, submitButtonPosition = submitButtonDefaultOptions.position, submitButtonContainerClass, container = ({ children }) => react_1.default.createElement(react_1.default.Fragment, null, children), containerVisible = false, containerOptions = {}, useContainersOutsideGroup = false, useGroupContainer = false, addButtonDefaultOptions, removeButtonDefaultOptions, }) => {
14
14
  const generateFormContentUtils = new generateFormContentUtils_1.GenerateFormContentUtils({
15
15
  containerComponent: container,
16
16
  formElements,
@@ -20,6 +20,8 @@ const NvsDynamicForm = ({ onSubmit, formElements = {}, fields = [], formClass, b
20
20
  fields,
21
21
  containerOptions,
22
22
  buttonComponent,
23
+ fieldArrayAddButtonDefaultOptions: addButtonDefaultOptions,
24
+ fieldArrayRemoveButtonDefaultOptions: removeButtonDefaultOptions,
23
25
  });
24
26
  const formikForm = (react_1.default.createElement(formikForm_1.FormikForm, { onSubmit: onSubmit, fields: fields, formClass: formClass },
25
27
  generateFormContentUtils.createFormContent(),
@@ -1 +1 @@
1
- {"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../lib/nvs-dynamic-form/_template.tsx"],"names":[],"mappings":";;;;;;AAAA,wBAAsB;AACtB,wBAAsB;AAEtB,8CAA2C;AAC3C,6CAA0C;AAC1C,kFAA+E;AAE/E,kDAA0B;AAEnB,MAAM,cAAc,GAAG,CAAC,EAC7B,QAAQ,EACR,YAAY,GAAG,EAAE,EACjB,MAAM,GAAG,EAAE,EACX,SAAS,EACT,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,GAAG,IAAI,EAC1B,iBAAiB,GAAG,0BAA0B,CAAC,KAAK,EACpD,uBAAuB,GAAG,0BAA0B,CAAC,WAAW,EAChE,oBAAoB,GAAG,0BAA0B,CAAC,QAAQ,EAC1D,0BAA0B,EAC1B,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,8DAAG,QAAQ,CAAI,EAC7C,gBAAgB,GAAG,KAAK,EACxB,gBAAgB,GAAG,EAAE,EACrB,yBAAyB,GAAG,KAAK,EACjC,iBAAiB,GAAG,KAAK,GACT,EAAE,EAAE;IACpB,MAAM,wBAAwB,GAAG,IAAI,mDAAwB,CAAC;QAC5D,kBAAkB,EAAE,SAAS;QAC7B,YAAY;QACZ,yBAAyB;QACzB,iBAAiB;QACjB,gBAAgB;QAChB,MAAM;QACN,gBAAgB;QAChB,eAAe;KAChB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,CACjB,8BAAC,uBAAU,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;QACjE,wBAAwB,CAAC,iBAAiB,EAAE;QAC7C,8BAAC,eAAM,IACL,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,uBAAuB,EACpC,QAAQ,EAAE,oBAAoB,EAC9B,cAAc,EAAE,0BAA0B,GAC1C,CACS,CACd,CAAC;IAEF,OAAO,gBAAgB,IAAI,CAAC,yBAAyB;QACnD,CAAC,CAAC,wBAAwB,CAAC,eAAe,CAAC,UAAU,EAAE,gBAAgB,CAAC;QACxE,CAAC,CAAC,UAAU,CAAC;AACjB,CAAC,CAAC;AA9CW,QAAA,cAAc,kBA8CzB"}
1
+ {"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../lib/nvs-dynamic-form/_template.tsx"],"names":[],"mappings":";;;;;;AAAA,wBAAsB;AACtB,wBAAsB;AAEtB,8CAA2C;AAC3C,6CAA0C;AAC1C,kFAA+E;AAE/E,kDAA0B;AAEnB,MAAM,cAAc,GAAG,CAAC,EAC7B,QAAQ,EACR,YAAY,GAAG,EAAE,EACjB,MAAM,GAAG,EAAE,EACX,SAAS,EACT,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,GAAG,IAAI,EAC1B,iBAAiB,GAAG,0BAA0B,CAAC,KAAK,EACpD,uBAAuB,GAAG,0BAA0B,CAAC,WAAW,EAChE,oBAAoB,GAAG,0BAA0B,CAAC,QAAQ,EAC1D,0BAA0B,EAC1B,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,8DAAG,QAAQ,CAAI,EAC7C,gBAAgB,GAAG,KAAK,EACxB,gBAAgB,GAAG,EAAE,EACrB,yBAAyB,GAAG,KAAK,EACjC,iBAAiB,GAAG,KAAK,EACzB,uBAAuB,EACvB,0BAA0B,GACV,EAAE,EAAE;IACpB,MAAM,wBAAwB,GAAG,IAAI,mDAAwB,CAAC;QAC5D,kBAAkB,EAAE,SAAS;QAC7B,YAAY;QACZ,yBAAyB;QACzB,iBAAiB;QACjB,gBAAgB;QAChB,MAAM;QACN,gBAAgB;QAChB,eAAe;QACf,iCAAiC,EAAE,uBAAuB;QAC1D,oCAAoC,EAAE,0BAA0B;KACjE,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,CACjB,8BAAC,uBAAU,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;QACjE,wBAAwB,CAAC,iBAAiB,EAAE;QAC7C,8BAAC,eAAM,IACL,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,uBAAuB,EACpC,QAAQ,EAAE,oBAAoB,EAC9B,cAAc,EAAE,0BAA0B,GAC1C,CACS,CACd,CAAC;IAEF,OAAO,gBAAgB,IAAI,CAAC,yBAAyB;QACnD,CAAC,CAAC,wBAAwB,CAAC,eAAe,CAAC,UAAU,EAAE,gBAAgB,CAAC;QACxE,CAAC,CAAC,UAAU,CAAC;AACjB,CAAC,CAAC;AAlDW,QAAA,cAAc,kBAkDzB"}
@@ -1,8 +1,7 @@
1
- import { ArrayField, FieldBase, GroupField, ISubmitButtonDefaultOptions } from "../types";
2
- import { IButton } from "./elements/button/_type";
1
+ import { ArrayField, ArrayFieldAddButton, ArrayFieldRemoveButton, FieldBase, GroupField, ISubmitButtonDefaultOptions } from "../types";
3
2
  import { IField } from "./elements/field";
4
3
  export type FieldType = FieldBase<any> | GroupField | ArrayField<any>;
5
- export interface INvsDynamicForm extends IButton, Omit<IField, "field"> {
4
+ export interface INvsDynamicForm extends Omit<IField, "field"> {
6
5
  onSubmit?: ((values: unknown) => void) | ((values: unknown) => Promise<void>);
7
6
  fields: Array<FieldType>;
8
7
  formClass?: string;
@@ -13,10 +12,13 @@ export interface INvsDynamicForm extends IButton, Omit<IField, "field"> {
13
12
  containerVisible?: boolean;
14
13
  useContainersOutsideGroup?: boolean;
15
14
  useGroupContainer?: boolean;
15
+ buttonComponent: React.FC<any>;
16
16
  submitButtonDefaultOptions: ISubmitButtonDefaultOptions;
17
17
  submitButtonVisible?: boolean;
18
18
  submitButtonLabel?: string;
19
19
  submitButtonPosition?: "left" | "center" | "right";
20
20
  submitButtonIsFullWidth?: boolean;
21
21
  submitButtonContainerClass?: string;
22
+ addButtonDefaultOptions?: ArrayFieldAddButton;
23
+ removeButtonDefaultOptions?: ArrayFieldRemoveButton;
22
24
  }
@@ -1,3 +1,3 @@
1
- import { IArrayField } from "./_type";
2
1
  import React from "react";
2
+ import { IArrayField } from "./_type";
3
3
  export declare const ArrayField: React.FC<IArrayField>;
@@ -1,13 +1,37 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
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;
4
24
  };
5
25
  Object.defineProperty(exports, "__esModule", { value: true });
6
26
  exports.ArrayField = void 0;
27
+ const lodash = __importStar(require("lodash"));
28
+ const types_1 = require("../../../types");
29
+ const react_1 = __importStar(require("react"));
7
30
  const formik_1 = require("formik");
8
31
  const generateFormContentUtils_1 = require("../../services/generateFormContentUtils");
9
- const react_1 = __importDefault(require("react"));
10
- const ArrayField = ({ field: arrayField, formElements, containerComponent, containerVisible, useContainersOutsideGroup, useGroupContainer, buttonComponent: ButtonComponent, }) => {
32
+ const ArrayField = ({ field: arrayField, formElements, containerComponent, containerVisible, useContainersOutsideGroup, useGroupContainer, buttonComponent: ButtonComponent, addButtonDefaultOptions, removeButtonDefaultOptions, }) => {
33
+ const [addButtonOptions] = (0, react_1.useState)(new types_1.ArrayFieldAddButton(lodash.merge(addButtonDefaultOptions ?? {}, arrayField.addButtonOptions ?? {})));
34
+ const [removeButtonOptions] = (0, react_1.useState)(new types_1.ArrayFieldRemoveButton(lodash.merge(removeButtonDefaultOptions ?? {}, arrayField.removeButtonOptions ?? {})));
11
35
  const generateFormContentUtils = new generateFormContentUtils_1.GenerateFormContentUtils({
12
36
  containerComponent,
13
37
  formElements,
@@ -15,6 +39,8 @@ const ArrayField = ({ field: arrayField, formElements, containerComponent, conta
15
39
  useGroupContainer,
16
40
  containerVisible: containerVisible,
17
41
  fields: arrayField.fields,
42
+ fieldArrayAddButtonDefaultOptions: addButtonDefaultOptions,
43
+ fieldArrayRemoveButtonDefaultOptions: removeButtonDefaultOptions,
18
44
  });
19
45
  const createArrayItem = (name, index) => {
20
46
  return arrayField.fields.map((field) => ({
@@ -37,19 +63,19 @@ const ArrayField = ({ field: arrayField, formElements, containerComponent, conta
37
63
  return (react_1.default.createElement("div", { className: "nvs-col-12" },
38
64
  react_1.default.createElement(ButtonComponent, { onClick: () => {
39
65
  onRemoveItem();
40
- }, type: "button" }, arrayField.removeButtonOptions?.label)));
66
+ }, type: "button", ...removeButtonOptions.options }, removeButtonOptions.label)));
41
67
  };
42
68
  const createArrayItemRemoveButton = (onRemoveItem) => {
43
69
  return (react_1.default.createElement("div", { className: "df-array-field-remove-button" }, generateFormContentUtils.createContentContainer(createRemoveButton(onRemoveItem))));
44
70
  };
45
71
  const createFieldArrayContent = (onRemoveItem, index) => {
46
- return (react_1.default.createElement("div", { className: `df-array-field remove-button-${arrayField.removeButtonOptions?.position}`, key: index },
72
+ return (react_1.default.createElement("div", { className: `df-array-field remove-button-${removeButtonOptions.position}`, key: index },
47
73
  createArrayFields(index),
48
74
  createArrayItemRemoveButton(() => onRemoveItem(index))));
49
75
  };
50
76
  const createAddButton = (onAddItem) => {
51
77
  return (react_1.default.createElement("div", { className: "df-array-field-add-button" },
52
- react_1.default.createElement(ButtonComponent, { onClick: () => onAddItem(getDefaultItem()), type: "button" }, arrayField.addButtonOptions?.label)));
78
+ react_1.default.createElement(ButtonComponent, { onClick: () => onAddItem(getDefaultItem()), type: "button", ...addButtonOptions.options }, addButtonOptions.label)));
53
79
  };
54
80
  const createArrayItemAddButton = (onAddItem) => {
55
81
  return generateFormContentUtils.createContentContainer(createAddButton(onAddItem));
@@ -1 +1 @@
1
- {"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../../../lib/nvs-dynamic-form/elements/arrayField/_template.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../../../lib/nvs-dynamic-form/elements/arrayField/_template.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ArrayField } from "../../../types";
1
+ import { ArrayField, ArrayFieldAddButton, ArrayFieldRemoveButton } from "../../../types";
2
2
  import { IField } from "../field";
3
3
  export interface IArrayField extends IField {
4
4
  field: ArrayField;
@@ -7,4 +7,6 @@ export interface IArrayField extends IField {
7
7
  containerVisible: boolean;
8
8
  useContainersOutsideGroup: boolean;
9
9
  useGroupContainer: boolean;
10
+ addButtonDefaultOptions?: ArrayFieldAddButton;
11
+ removeButtonDefaultOptions?: ArrayFieldRemoveButton;
10
12
  }
@@ -1,3 +1,4 @@
1
+ import { ArrayFieldAddButton } from "../../types";
1
2
  import { FieldType } from "../_type";
2
3
  import { IFormElement } from "../elements/field";
3
4
  import React from "react";
@@ -11,7 +12,9 @@ export declare class GenerateFormContentUtils {
11
12
  private readonly fields;
12
13
  private readonly containerOptions;
13
14
  private readonly buttonComponent?;
14
- constructor({ containerComponent, formElements, useContainersOutsideGroup, useGroupContainer, containerVisible, fields, containerOptions, buttonComponent, }: {
15
+ private readonly fieldArrayAddButtonDefaultOptions;
16
+ private readonly fieldArrayRemoveButtonDefaultOptions;
17
+ constructor({ containerComponent, formElements, useContainersOutsideGroup, useGroupContainer, containerVisible, fields, containerOptions, buttonComponent, fieldArrayAddButtonDefaultOptions, fieldArrayRemoveButtonDefaultOptions, }: {
15
18
  containerComponent: React.FC<any>;
16
19
  formElements: IFormElement;
17
20
  useContainersOutsideGroup: boolean;
@@ -22,6 +25,8 @@ export declare class GenerateFormContentUtils {
22
25
  containerOptions?: {
23
26
  [key: string]: any;
24
27
  };
28
+ fieldArrayAddButtonDefaultOptions?: ArrayFieldAddButton;
29
+ fieldArrayRemoveButtonDefaultOptions?: ArrayFieldAddButton;
25
30
  });
26
31
  createContainer(content: ReactNode, containerProps: object): React.JSX.Element;
27
32
  createFormContent(): React.JSX.Element;
@@ -11,15 +11,19 @@ const field_1 = require("../elements/field");
11
11
  const groupField_1 = require("../elements/groupField");
12
12
  const react_1 = __importDefault(require("react"));
13
13
  class GenerateFormContentUtils {
14
- constructor({ containerComponent, formElements, useContainersOutsideGroup, useGroupContainer, containerVisible, fields, containerOptions, buttonComponent, }) {
14
+ constructor({ containerComponent, formElements, useContainersOutsideGroup, useGroupContainer, containerVisible, fields, containerOptions, buttonComponent, fieldArrayAddButtonDefaultOptions, fieldArrayRemoveButtonDefaultOptions, }) {
15
15
  this.containerComponent = containerComponent;
16
16
  this.formElements = formElements;
17
17
  this.useContainersOutsideGroup = useContainersOutsideGroup;
18
18
  this.useGroupContainer = useGroupContainer;
19
19
  this.containerVisible = containerVisible;
20
20
  this.fields = fields;
21
- this.containerOptions = containerOptions || {};
21
+ this.containerOptions = containerOptions ?? {};
22
22
  this.buttonComponent = buttonComponent;
23
+ this.fieldArrayAddButtonDefaultOptions =
24
+ fieldArrayAddButtonDefaultOptions ?? {};
25
+ this.fieldArrayRemoveButtonDefaultOptions =
26
+ fieldArrayRemoveButtonDefaultOptions ?? {};
23
27
  }
24
28
  createContainer(content, containerProps) {
25
29
  return (react_1.default.createElement(container_1.Container, { containerComponent: this.containerComponent, options: containerProps }, content));
@@ -76,7 +80,7 @@ class GenerateFormContentUtils {
76
80
  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 }));
77
81
  }
78
82
  createArrayFieldElement(field) {
79
- 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 }));
83
+ 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 }));
80
84
  }
81
85
  isSingleField(field) {
82
86
  return !(field instanceof types_1.GroupField &&
@@ -1 +1 @@
1
- {"version":3,"file":"generateFormContentUtils.js","sourceRoot":"","sources":["../../../../lib/nvs-dynamic-form/services/generateFormContentUtils.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateFormContentUtils.js","sourceRoot":"","sources":["../../../../lib/nvs-dynamic-form/services/generateFormContentUtils.tsx"],"names":[],"mappings":"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"}
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ArrayField = void 0;
4
- const array_field_action_button_type_1 = require("./array-field-action-button.type");
5
4
  class ArrayField {
6
5
  constructor(options) {
7
6
  this.fieldType = "fieldArray";
8
7
  this.id = options.id;
9
8
  this.fields = options.fields ?? [];
10
- this.addButtonOptions = new array_field_action_button_type_1.ArrayFieldAddButton(options.addButtonOptions ?? {});
11
- this.removeButtonOptions = new array_field_action_button_type_1.ArrayFieldRemoveButton(options.removeButtonOptions ?? {});
9
+ this.addButtonOptions = options.addButtonOptions ?? {};
10
+ this.removeButtonOptions = options.removeButtonOptions ?? {};
12
11
  this.defaultValues = options.defaultValues ?? [];
13
12
  }
14
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"array-field.type.js","sourceRoot":"","sources":["../../../lib/types/array-field.type.tsx"],"names":[],"mappings":";;;AAAA,qFAG0C;AAI1C,MAAa,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,oDAAmB,CAC7C,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAC/B,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,uDAAsB,CACnD,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAClC,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;IACnD,CAAC;CACF;AAnBD,gCAmBC"}
1
+ {"version":3,"file":"array-field.type.js","sourceRoot":"","sources":["../../../lib/types/array-field.type.tsx"],"names":[],"mappings":";;;AAOA,MAAa,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,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;IACnD,CAAC;CACF;AAfD,gCAeC"}
@@ -4,3 +4,4 @@ export * from "./dynamic-object.type";
4
4
  export * from "./submit-button-default-options.type";
5
5
  export * from "./group-field.type";
6
6
  export * from "./array-field.type";
7
+ export * from "./array-field-action-button.type";
@@ -20,4 +20,5 @@ __exportStar(require("./dynamic-object.type"), exports);
20
20
  __exportStar(require("./submit-button-default-options.type"), exports);
21
21
  __exportStar(require("./group-field.type"), exports);
22
22
  __exportStar(require("./array-field.type"), exports);
23
+ __exportStar(require("./array-field-action-button.type"), exports);
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/types/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,qDAAmC;AACnC,wDAAsC;AACtC,uEAAqD;AACrD,qDAAmC;AACnC,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/types/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,qDAAmC;AACnC,wDAAsC;AACtC,uEAAqD;AACrD,qDAAmC;AACnC,qDAAmC;AACnC,mEAAiD"}
@@ -2,4 +2,4 @@ import "nvs-flexgrid";
2
2
  import "./_style.css";
3
3
  import { INvsDynamicForm } from "./_type";
4
4
  import React from "react";
5
- export declare const NvsDynamicForm: ({ onSubmit, formElements, fields, formClass, buttonComponent, submitButtonDefaultOptions, submitButtonVisible, submitButtonLabel, submitButtonIsFullWidth, submitButtonPosition, submitButtonContainerClass, container, containerVisible, containerOptions, useContainersOutsideGroup, useGroupContainer, }: INvsDynamicForm) => React.JSX.Element;
5
+ export declare const NvsDynamicForm: ({ onSubmit, formElements, fields, formClass, buttonComponent, submitButtonDefaultOptions, submitButtonVisible, submitButtonLabel, submitButtonIsFullWidth, submitButtonPosition, submitButtonContainerClass, container, containerVisible, containerOptions, useContainersOutsideGroup, useGroupContainer, addButtonDefaultOptions, removeButtonDefaultOptions, }: INvsDynamicForm) => React.JSX.Element;
@@ -4,7 +4,7 @@ import { Button } from "./elements/button";
4
4
  import { FormikForm } from "./formikForm";
5
5
  import { GenerateFormContentUtils } from "./services/generateFormContentUtils";
6
6
  import React from "react";
7
- export const NvsDynamicForm = ({ onSubmit, formElements = {}, fields = [], formClass, buttonComponent, submitButtonDefaultOptions, submitButtonVisible = true, submitButtonLabel = submitButtonDefaultOptions.label, submitButtonIsFullWidth = submitButtonDefaultOptions.isFullWidth, submitButtonPosition = submitButtonDefaultOptions.position, submitButtonContainerClass, container = ({ children }) => React.createElement(React.Fragment, null, children), containerVisible = false, containerOptions = {}, useContainersOutsideGroup = false, useGroupContainer = false, }) => {
7
+ export const NvsDynamicForm = ({ onSubmit, formElements = {}, fields = [], formClass, buttonComponent, submitButtonDefaultOptions, submitButtonVisible = true, submitButtonLabel = submitButtonDefaultOptions.label, submitButtonIsFullWidth = submitButtonDefaultOptions.isFullWidth, submitButtonPosition = submitButtonDefaultOptions.position, submitButtonContainerClass, container = ({ children }) => React.createElement(React.Fragment, null, children), containerVisible = false, containerOptions = {}, useContainersOutsideGroup = false, useGroupContainer = false, addButtonDefaultOptions, removeButtonDefaultOptions, }) => {
8
8
  const generateFormContentUtils = new GenerateFormContentUtils({
9
9
  containerComponent: container,
10
10
  formElements,
@@ -14,6 +14,8 @@ export const NvsDynamicForm = ({ onSubmit, formElements = {}, fields = [], formC
14
14
  fields,
15
15
  containerOptions,
16
16
  buttonComponent,
17
+ fieldArrayAddButtonDefaultOptions: addButtonDefaultOptions,
18
+ fieldArrayRemoveButtonDefaultOptions: removeButtonDefaultOptions,
17
19
  });
18
20
  const formikForm = (React.createElement(FormikForm, { onSubmit: onSubmit, fields: fields, formClass: formClass },
19
21
  generateFormContentUtils.createFormContent(),
@@ -1 +1 @@
1
- {"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../lib/nvs-dynamic-form/_template.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,QAAQ,EACR,YAAY,GAAG,EAAE,EACjB,MAAM,GAAG,EAAE,EACX,SAAS,EACT,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,GAAG,IAAI,EAC1B,iBAAiB,GAAG,0BAA0B,CAAC,KAAK,EACpD,uBAAuB,GAAG,0BAA0B,CAAC,WAAW,EAChE,oBAAoB,GAAG,0BAA0B,CAAC,QAAQ,EAC1D,0BAA0B,EAC1B,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,0CAAG,QAAQ,CAAI,EAC7C,gBAAgB,GAAG,KAAK,EACxB,gBAAgB,GAAG,EAAE,EACrB,yBAAyB,GAAG,KAAK,EACjC,iBAAiB,GAAG,KAAK,GACT,EAAE,EAAE;IACpB,MAAM,wBAAwB,GAAG,IAAI,wBAAwB,CAAC;QAC5D,kBAAkB,EAAE,SAAS;QAC7B,YAAY;QACZ,yBAAyB;QACzB,iBAAiB;QACjB,gBAAgB;QAChB,MAAM;QACN,gBAAgB;QAChB,eAAe;KAChB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,CACjB,oBAAC,UAAU,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;QACjE,wBAAwB,CAAC,iBAAiB,EAAE;QAC7C,oBAAC,MAAM,IACL,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,uBAAuB,EACpC,QAAQ,EAAE,oBAAoB,EAC9B,cAAc,EAAE,0BAA0B,GAC1C,CACS,CACd,CAAC;IAEF,OAAO,gBAAgB,IAAI,CAAC,yBAAyB;QACnD,CAAC,CAAC,wBAAwB,CAAC,eAAe,CAAC,UAAU,EAAE,gBAAgB,CAAC;QACxE,CAAC,CAAC,UAAU,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../lib/nvs-dynamic-form/_template.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,QAAQ,EACR,YAAY,GAAG,EAAE,EACjB,MAAM,GAAG,EAAE,EACX,SAAS,EACT,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,GAAG,IAAI,EAC1B,iBAAiB,GAAG,0BAA0B,CAAC,KAAK,EACpD,uBAAuB,GAAG,0BAA0B,CAAC,WAAW,EAChE,oBAAoB,GAAG,0BAA0B,CAAC,QAAQ,EAC1D,0BAA0B,EAC1B,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,0CAAG,QAAQ,CAAI,EAC7C,gBAAgB,GAAG,KAAK,EACxB,gBAAgB,GAAG,EAAE,EACrB,yBAAyB,GAAG,KAAK,EACjC,iBAAiB,GAAG,KAAK,EACzB,uBAAuB,EACvB,0BAA0B,GACV,EAAE,EAAE;IACpB,MAAM,wBAAwB,GAAG,IAAI,wBAAwB,CAAC;QAC5D,kBAAkB,EAAE,SAAS;QAC7B,YAAY;QACZ,yBAAyB;QACzB,iBAAiB;QACjB,gBAAgB;QAChB,MAAM;QACN,gBAAgB;QAChB,eAAe;QACf,iCAAiC,EAAE,uBAAuB;QAC1D,oCAAoC,EAAE,0BAA0B;KACjE,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,CACjB,oBAAC,UAAU,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;QACjE,wBAAwB,CAAC,iBAAiB,EAAE;QAC7C,oBAAC,MAAM,IACL,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,uBAAuB,EACpC,QAAQ,EAAE,oBAAoB,EAC9B,cAAc,EAAE,0BAA0B,GAC1C,CACS,CACd,CAAC;IAEF,OAAO,gBAAgB,IAAI,CAAC,yBAAyB;QACnD,CAAC,CAAC,wBAAwB,CAAC,eAAe,CAAC,UAAU,EAAE,gBAAgB,CAAC;QACxE,CAAC,CAAC,UAAU,CAAC;AACjB,CAAC,CAAC"}
@@ -1,8 +1,7 @@
1
- import { ArrayField, FieldBase, GroupField, ISubmitButtonDefaultOptions } from "../types";
2
- import { IButton } from "./elements/button/_type";
1
+ import { ArrayField, ArrayFieldAddButton, ArrayFieldRemoveButton, FieldBase, GroupField, ISubmitButtonDefaultOptions } from "../types";
3
2
  import { IField } from "./elements/field";
4
3
  export type FieldType = FieldBase<any> | GroupField | ArrayField<any>;
5
- export interface INvsDynamicForm extends IButton, Omit<IField, "field"> {
4
+ export interface INvsDynamicForm extends Omit<IField, "field"> {
6
5
  onSubmit?: ((values: unknown) => void) | ((values: unknown) => Promise<void>);
7
6
  fields: Array<FieldType>;
8
7
  formClass?: string;
@@ -13,10 +12,13 @@ export interface INvsDynamicForm extends IButton, Omit<IField, "field"> {
13
12
  containerVisible?: boolean;
14
13
  useContainersOutsideGroup?: boolean;
15
14
  useGroupContainer?: boolean;
15
+ buttonComponent: React.FC<any>;
16
16
  submitButtonDefaultOptions: ISubmitButtonDefaultOptions;
17
17
  submitButtonVisible?: boolean;
18
18
  submitButtonLabel?: string;
19
19
  submitButtonPosition?: "left" | "center" | "right";
20
20
  submitButtonIsFullWidth?: boolean;
21
21
  submitButtonContainerClass?: string;
22
+ addButtonDefaultOptions?: ArrayFieldAddButton;
23
+ removeButtonDefaultOptions?: ArrayFieldRemoveButton;
22
24
  }
@@ -1,3 +1,3 @@
1
- import { IArrayField } from "./_type";
2
1
  import React from "react";
2
+ import { IArrayField } from "./_type";
3
3
  export declare const ArrayField: React.FC<IArrayField>;
@@ -1,7 +1,11 @@
1
+ import * as lodash from "lodash";
2
+ import { ArrayFieldAddButton, ArrayFieldRemoveButton } from "../../../types";
3
+ import React, { useState } from "react";
1
4
  import { FieldArray } from "formik";
2
5
  import { GenerateFormContentUtils } from "../../services/generateFormContentUtils";
3
- import React from "react";
4
- export const ArrayField = ({ field: arrayField, formElements, containerComponent, containerVisible, useContainersOutsideGroup, useGroupContainer, buttonComponent: ButtonComponent, }) => {
6
+ export const ArrayField = ({ field: arrayField, formElements, containerComponent, containerVisible, useContainersOutsideGroup, useGroupContainer, buttonComponent: ButtonComponent, addButtonDefaultOptions, removeButtonDefaultOptions, }) => {
7
+ const [addButtonOptions] = useState(new ArrayFieldAddButton(lodash.merge(addButtonDefaultOptions ?? {}, arrayField.addButtonOptions ?? {})));
8
+ const [removeButtonOptions] = useState(new ArrayFieldRemoveButton(lodash.merge(removeButtonDefaultOptions ?? {}, arrayField.removeButtonOptions ?? {})));
5
9
  const generateFormContentUtils = new GenerateFormContentUtils({
6
10
  containerComponent,
7
11
  formElements,
@@ -9,6 +13,8 @@ export const ArrayField = ({ field: arrayField, formElements, containerComponent
9
13
  useGroupContainer,
10
14
  containerVisible: containerVisible,
11
15
  fields: arrayField.fields,
16
+ fieldArrayAddButtonDefaultOptions: addButtonDefaultOptions,
17
+ fieldArrayRemoveButtonDefaultOptions: removeButtonDefaultOptions,
12
18
  });
13
19
  const createArrayItem = (name, index) => {
14
20
  return arrayField.fields.map((field) => ({
@@ -31,19 +37,19 @@ export const ArrayField = ({ field: arrayField, formElements, containerComponent
31
37
  return (React.createElement("div", { className: "nvs-col-12" },
32
38
  React.createElement(ButtonComponent, { onClick: () => {
33
39
  onRemoveItem();
34
- }, type: "button" }, arrayField.removeButtonOptions?.label)));
40
+ }, type: "button", ...removeButtonOptions.options }, removeButtonOptions.label)));
35
41
  };
36
42
  const createArrayItemRemoveButton = (onRemoveItem) => {
37
43
  return (React.createElement("div", { className: "df-array-field-remove-button" }, generateFormContentUtils.createContentContainer(createRemoveButton(onRemoveItem))));
38
44
  };
39
45
  const createFieldArrayContent = (onRemoveItem, index) => {
40
- return (React.createElement("div", { className: `df-array-field remove-button-${arrayField.removeButtonOptions?.position}`, key: index },
46
+ return (React.createElement("div", { className: `df-array-field remove-button-${removeButtonOptions.position}`, key: index },
41
47
  createArrayFields(index),
42
48
  createArrayItemRemoveButton(() => onRemoveItem(index))));
43
49
  };
44
50
  const createAddButton = (onAddItem) => {
45
51
  return (React.createElement("div", { className: "df-array-field-add-button" },
46
- React.createElement(ButtonComponent, { onClick: () => onAddItem(getDefaultItem()), type: "button" }, arrayField.addButtonOptions?.label)));
52
+ React.createElement(ButtonComponent, { onClick: () => onAddItem(getDefaultItem()), type: "button", ...addButtonOptions.options }, addButtonOptions.label)));
47
53
  };
48
54
  const createArrayItemAddButton = (onAddItem) => {
49
55
  return generateFormContentUtils.createContentContainer(createAddButton(onAddItem));
@@ -1 +1 @@
1
- {"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../../../lib/nvs-dynamic-form/elements/arrayField/_template.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_template.js","sourceRoot":"","sources":["../../../../../lib/nvs-dynamic-form/elements/arrayField/_template.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ArrayField } from "../../../types";
1
+ import { ArrayField, ArrayFieldAddButton, ArrayFieldRemoveButton } from "../../../types";
2
2
  import { IField } from "../field";
3
3
  export interface IArrayField extends IField {
4
4
  field: ArrayField;
@@ -7,4 +7,6 @@ export interface IArrayField extends IField {
7
7
  containerVisible: boolean;
8
8
  useContainersOutsideGroup: boolean;
9
9
  useGroupContainer: boolean;
10
+ addButtonDefaultOptions?: ArrayFieldAddButton;
11
+ removeButtonDefaultOptions?: ArrayFieldRemoveButton;
10
12
  }
@@ -1,3 +1,4 @@
1
+ import { ArrayFieldAddButton } from "../../types";
1
2
  import { FieldType } from "../_type";
2
3
  import { IFormElement } from "../elements/field";
3
4
  import React from "react";
@@ -11,7 +12,9 @@ export declare class GenerateFormContentUtils {
11
12
  private readonly fields;
12
13
  private readonly containerOptions;
13
14
  private readonly buttonComponent?;
14
- constructor({ containerComponent, formElements, useContainersOutsideGroup, useGroupContainer, containerVisible, fields, containerOptions, buttonComponent, }: {
15
+ private readonly fieldArrayAddButtonDefaultOptions;
16
+ private readonly fieldArrayRemoveButtonDefaultOptions;
17
+ constructor({ containerComponent, formElements, useContainersOutsideGroup, useGroupContainer, containerVisible, fields, containerOptions, buttonComponent, fieldArrayAddButtonDefaultOptions, fieldArrayRemoveButtonDefaultOptions, }: {
15
18
  containerComponent: React.FC<any>;
16
19
  formElements: IFormElement;
17
20
  useContainersOutsideGroup: boolean;
@@ -22,6 +25,8 @@ export declare class GenerateFormContentUtils {
22
25
  containerOptions?: {
23
26
  [key: string]: any;
24
27
  };
28
+ fieldArrayAddButtonDefaultOptions?: ArrayFieldAddButton;
29
+ fieldArrayRemoveButtonDefaultOptions?: ArrayFieldAddButton;
25
30
  });
26
31
  createContainer(content: ReactNode, containerProps: object): React.JSX.Element;
27
32
  createFormContent(): React.JSX.Element;
@@ -1,19 +1,23 @@
1
- import { ArrayField, GroupField } from "../../types";
1
+ import { ArrayField, GroupField, } from "../../types";
2
2
  import { ArrayField as ArrayFieldElement } from "../elements/arrayField";
3
3
  import { Container } from "../elements/container";
4
4
  import { Field } from "../elements/field";
5
5
  import { GroupField as GroupFieldElement } from "../elements/groupField";
6
6
  import React from "react";
7
7
  export class GenerateFormContentUtils {
8
- constructor({ containerComponent, formElements, useContainersOutsideGroup, useGroupContainer, containerVisible, fields, containerOptions, buttonComponent, }) {
8
+ constructor({ containerComponent, formElements, useContainersOutsideGroup, useGroupContainer, containerVisible, fields, containerOptions, buttonComponent, fieldArrayAddButtonDefaultOptions, fieldArrayRemoveButtonDefaultOptions, }) {
9
9
  this.containerComponent = containerComponent;
10
10
  this.formElements = formElements;
11
11
  this.useContainersOutsideGroup = useContainersOutsideGroup;
12
12
  this.useGroupContainer = useGroupContainer;
13
13
  this.containerVisible = containerVisible;
14
14
  this.fields = fields;
15
- this.containerOptions = containerOptions || {};
15
+ this.containerOptions = containerOptions ?? {};
16
16
  this.buttonComponent = buttonComponent;
17
+ this.fieldArrayAddButtonDefaultOptions =
18
+ fieldArrayAddButtonDefaultOptions ?? {};
19
+ this.fieldArrayRemoveButtonDefaultOptions =
20
+ fieldArrayRemoveButtonDefaultOptions ?? {};
17
21
  }
18
22
  createContainer(content, containerProps) {
19
23
  return (React.createElement(Container, { containerComponent: this.containerComponent, options: containerProps }, content));
@@ -70,7 +74,7 @@ export class GenerateFormContentUtils {
70
74
  return (React.createElement(GroupFieldElement, { key: field.id, formElements: this.formElements, field: field, containerComponent: this.containerComponent, useContainersOutsideGroup: this.useContainersOutsideGroup, useGroupContainer: this.useGroupContainer, containerVisible: this.containerVisible }));
71
75
  }
72
76
  createArrayFieldElement(field) {
73
- 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 }));
77
+ 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 }));
74
78
  }
75
79
  isSingleField(field) {
76
80
  return !(field instanceof GroupField &&
@@ -1 +1 @@
1
- {"version":3,"file":"generateFormContentUtils.js","sourceRoot":"","sources":["../../../../lib/nvs-dynamic-form/services/generateFormContentUtils.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateFormContentUtils.js","sourceRoot":"","sources":["../../../../lib/nvs-dynamic-form/services/generateFormContentUtils.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
- import { ArrayFieldAddButton, ArrayFieldRemoveButton, } from "./array-field-action-button.type";
2
1
  export class ArrayField {
3
2
  constructor(options) {
4
3
  this.fieldType = "fieldArray";
5
4
  this.id = options.id;
6
5
  this.fields = options.fields ?? [];
7
- this.addButtonOptions = new ArrayFieldAddButton(options.addButtonOptions ?? {});
8
- this.removeButtonOptions = new ArrayFieldRemoveButton(options.removeButtonOptions ?? {});
6
+ this.addButtonOptions = options.addButtonOptions ?? {};
7
+ this.removeButtonOptions = options.removeButtonOptions ?? {};
9
8
  this.defaultValues = options.defaultValues ?? [];
10
9
  }
11
10
  }
@@ -1 +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"}
1
+ {"version":3,"file":"array-field.type.js","sourceRoot":"","sources":["../../../lib/types/array-field.type.tsx"],"names":[],"mappings":"AAOA,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,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;IACnD,CAAC;CACF"}
@@ -4,3 +4,4 @@ export * from "./dynamic-object.type";
4
4
  export * from "./submit-button-default-options.type";
5
5
  export * from "./group-field.type";
6
6
  export * from "./array-field.type";
7
+ export * from "./array-field-action-button.type";
@@ -4,4 +4,5 @@ export * from "./dynamic-object.type";
4
4
  export * from "./submit-button-default-options.type";
5
5
  export * from "./group-field.type";
6
6
  export * from "./array-field.type";
7
+ export * from "./array-field-action-button.type";
7
8
  //# 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,sCAAsC,CAAC;AACrD,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,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;AACnC,cAAc,kCAAkC,CAAC"}
@@ -298,6 +298,9 @@ export const FieldArray: { args: INvsDynamicForm; name: string } = {
298
298
  class: TextboxField,
299
299
  },
300
300
  },
301
+ addButtonDefaultOptions: {
302
+ label: "ismet",
303
+ },
301
304
  fields: [
302
305
  new TextboxField({
303
306
  id: "firstName",
@@ -323,12 +326,8 @@ export const FieldArray: { args: INvsDynamicForm; name: string } = {
323
326
  }),
324
327
  new ArrayField({
325
328
  id: "addresses",
326
- removeButtonOptions: {
327
- label: "-",
328
- position: "right",
329
- },
330
329
  addButtonOptions: {
331
- label: "+",
330
+ label: "Add Address",
332
331
  },
333
332
  defaultValues: [
334
333
  { cityName: "İzmir", districtName: "Göztepe" },
@@ -24,6 +24,8 @@ export const NvsDynamicForm = ({
24
24
  containerOptions = {},
25
25
  useContainersOutsideGroup = false,
26
26
  useGroupContainer = false,
27
+ addButtonDefaultOptions,
28
+ removeButtonDefaultOptions,
27
29
  }: INvsDynamicForm) => {
28
30
  const generateFormContentUtils = new GenerateFormContentUtils({
29
31
  containerComponent: container,
@@ -34,6 +36,8 @@ export const NvsDynamicForm = ({
34
36
  fields,
35
37
  containerOptions,
36
38
  buttonComponent,
39
+ fieldArrayAddButtonDefaultOptions: addButtonDefaultOptions,
40
+ fieldArrayRemoveButtonDefaultOptions: removeButtonDefaultOptions,
37
41
  });
38
42
 
39
43
  const formikForm = (
@@ -1,16 +1,17 @@
1
1
  import {
2
2
  ArrayField,
3
+ ArrayFieldAddButton,
4
+ ArrayFieldRemoveButton,
3
5
  FieldBase,
4
6
  GroupField,
5
7
  ISubmitButtonDefaultOptions,
6
8
  } from "../types";
7
9
 
8
- import { IButton } from "./elements/button/_type";
9
10
  import { IField } from "./elements/field";
10
11
 
11
12
  export type FieldType = FieldBase<any> | GroupField | ArrayField<any>;
12
13
 
13
- export interface INvsDynamicForm extends IButton, Omit<IField, "field"> {
14
+ export interface INvsDynamicForm extends Omit<IField, "field"> {
14
15
  onSubmit?: ((values: unknown) => void) | ((values: unknown) => Promise<void>);
15
16
  fields: Array<FieldType>;
16
17
  formClass?: string;
@@ -19,10 +20,13 @@ export interface INvsDynamicForm extends IButton, Omit<IField, "field"> {
19
20
  containerVisible?: boolean;
20
21
  useContainersOutsideGroup?: boolean;
21
22
  useGroupContainer?: boolean;
23
+ buttonComponent: React.FC<any>;
22
24
  submitButtonDefaultOptions: ISubmitButtonDefaultOptions;
23
25
  submitButtonVisible?: boolean;
24
26
  submitButtonLabel?: string;
25
27
  submitButtonPosition?: "left" | "center" | "right";
26
28
  submitButtonIsFullWidth?: boolean;
27
29
  submitButtonContainerClass?: string;
30
+ addButtonDefaultOptions?: ArrayFieldAddButton;
31
+ removeButtonDefaultOptions?: ArrayFieldRemoveButton;
28
32
  }
@@ -1,7 +1,11 @@
1
+ import * as lodash from "lodash";
2
+
3
+ import { ArrayFieldAddButton, ArrayFieldRemoveButton } from "../../../types";
4
+ import React, { useState } from "react";
5
+
1
6
  import { FieldArray } from "formik";
2
7
  import { GenerateFormContentUtils } from "../../services/generateFormContentUtils";
3
8
  import { IArrayField } from "./_type";
4
- import React from "react";
5
9
 
6
10
  export const ArrayField: React.FC<IArrayField> = ({
7
11
  field: arrayField,
@@ -11,7 +15,25 @@ export const ArrayField: React.FC<IArrayField> = ({
11
15
  useContainersOutsideGroup,
12
16
  useGroupContainer,
13
17
  buttonComponent: ButtonComponent,
14
- }) => {
18
+ addButtonDefaultOptions,
19
+ removeButtonDefaultOptions,
20
+ }: IArrayField) => {
21
+ const [addButtonOptions] = useState(
22
+ new ArrayFieldAddButton(
23
+ lodash.merge(
24
+ addButtonDefaultOptions ?? {},
25
+ arrayField.addButtonOptions ?? {},
26
+ ),
27
+ ),
28
+ );
29
+ const [removeButtonOptions] = useState(
30
+ new ArrayFieldRemoveButton(
31
+ lodash.merge(
32
+ removeButtonDefaultOptions ?? {},
33
+ arrayField.removeButtonOptions ?? {},
34
+ ),
35
+ ),
36
+ );
15
37
  const generateFormContentUtils = new GenerateFormContentUtils({
16
38
  containerComponent,
17
39
  formElements,
@@ -19,6 +41,8 @@ export const ArrayField: React.FC<IArrayField> = ({
19
41
  useGroupContainer,
20
42
  containerVisible: containerVisible,
21
43
  fields: arrayField.fields,
44
+ fieldArrayAddButtonDefaultOptions: addButtonDefaultOptions,
45
+ fieldArrayRemoveButtonDefaultOptions: removeButtonDefaultOptions,
22
46
  });
23
47
 
24
48
  const createArrayItem = (name: string, index: number) => {
@@ -57,8 +81,9 @@ export const ArrayField: React.FC<IArrayField> = ({
57
81
  onRemoveItem();
58
82
  }}
59
83
  type="button"
84
+ {...removeButtonOptions.options}
60
85
  >
61
- {arrayField.removeButtonOptions?.label}
86
+ {removeButtonOptions.label}
62
87
  </ButtonComponent>
63
88
  </div>
64
89
  );
@@ -80,7 +105,7 @@ export const ArrayField: React.FC<IArrayField> = ({
80
105
  ) => {
81
106
  return (
82
107
  <div
83
- className={`df-array-field remove-button-${arrayField.removeButtonOptions?.position}`}
108
+ className={`df-array-field remove-button-${removeButtonOptions.position}`}
84
109
  key={index}
85
110
  >
86
111
  {createArrayFields(index)}
@@ -95,8 +120,9 @@ export const ArrayField: React.FC<IArrayField> = ({
95
120
  <ButtonComponent
96
121
  onClick={() => onAddItem(getDefaultItem())}
97
122
  type="button"
123
+ {...addButtonOptions.options}
98
124
  >
99
- {arrayField.addButtonOptions?.label}
125
+ {addButtonOptions.label}
100
126
  </ButtonComponent>
101
127
  </div>
102
128
  );
@@ -1,4 +1,9 @@
1
- import { ArrayField } from "../../../types";
1
+ import {
2
+ ArrayField,
3
+ ArrayFieldAddButton,
4
+ ArrayFieldRemoveButton,
5
+ } from "../../../types";
6
+
2
7
  import { IField } from "../field";
3
8
 
4
9
  export interface IArrayField extends IField {
@@ -8,4 +13,6 @@ export interface IArrayField extends IField {
8
13
  containerVisible: boolean;
9
14
  useContainersOutsideGroup: boolean;
10
15
  useGroupContainer: boolean;
16
+ addButtonDefaultOptions?: ArrayFieldAddButton;
17
+ removeButtonDefaultOptions?: ArrayFieldRemoveButton;
11
18
  }
@@ -1,4 +1,9 @@
1
- import { ArrayField, FieldBase, GroupField } from "../../types";
1
+ import {
2
+ ArrayField,
3
+ ArrayFieldAddButton,
4
+ FieldBase,
5
+ GroupField,
6
+ } from "../../types";
2
7
 
3
8
  import { ArrayField as ArrayFieldElement } from "../elements/arrayField";
4
9
  import { Container } from "../elements/container";
@@ -18,6 +23,8 @@ export class GenerateFormContentUtils {
18
23
  private readonly fields: Array<FieldType>;
19
24
  private readonly containerOptions: { [key: string]: any };
20
25
  private readonly buttonComponent?: React.FC<any>;
26
+ private readonly fieldArrayAddButtonDefaultOptions: ArrayFieldAddButton;
27
+ private readonly fieldArrayRemoveButtonDefaultOptions: ArrayFieldAddButton;
21
28
 
22
29
  constructor({
23
30
  containerComponent,
@@ -28,6 +35,8 @@ export class GenerateFormContentUtils {
28
35
  fields,
29
36
  containerOptions,
30
37
  buttonComponent,
38
+ fieldArrayAddButtonDefaultOptions,
39
+ fieldArrayRemoveButtonDefaultOptions,
31
40
  }: {
32
41
  containerComponent: React.FC<any>;
33
42
  formElements: IFormElement;
@@ -37,6 +46,8 @@ export class GenerateFormContentUtils {
37
46
  fields: Array<FieldType>;
38
47
  buttonComponent?: React.FC<any>;
39
48
  containerOptions?: { [key: string]: any };
49
+ fieldArrayAddButtonDefaultOptions?: ArrayFieldAddButton;
50
+ fieldArrayRemoveButtonDefaultOptions?: ArrayFieldAddButton;
40
51
  }) {
41
52
  this.containerComponent = containerComponent;
42
53
  this.formElements = formElements;
@@ -44,8 +55,12 @@ export class GenerateFormContentUtils {
44
55
  this.useGroupContainer = useGroupContainer;
45
56
  this.containerVisible = containerVisible;
46
57
  this.fields = fields;
47
- this.containerOptions = containerOptions || {};
58
+ this.containerOptions = containerOptions ?? {};
48
59
  this.buttonComponent = buttonComponent;
60
+ this.fieldArrayAddButtonDefaultOptions =
61
+ fieldArrayAddButtonDefaultOptions ?? {};
62
+ this.fieldArrayRemoveButtonDefaultOptions =
63
+ fieldArrayRemoveButtonDefaultOptions ?? {};
49
64
  }
50
65
 
51
66
  createContainer(content: ReactNode, containerProps: object) {
@@ -154,6 +169,8 @@ export class GenerateFormContentUtils {
154
169
  useGroupContainer={this.useGroupContainer}
155
170
  containerVisible={this.containerVisible}
156
171
  buttonComponent={this.buttonComponent!}
172
+ addButtonDefaultOptions={this.fieldArrayAddButtonDefaultOptions}
173
+ removeButtonDefaultOptions={this.fieldArrayRemoveButtonDefaultOptions}
157
174
  />
158
175
  );
159
176
  }
@@ -16,12 +16,8 @@ export class ArrayField<ValueType = { [key: string]: any }> {
16
16
  constructor(options: ArrayField<ValueType>) {
17
17
  this.id = options.id;
18
18
  this.fields = options.fields ?? [];
19
- this.addButtonOptions = new ArrayFieldAddButton(
20
- options.addButtonOptions ?? {},
21
- );
22
- this.removeButtonOptions = new ArrayFieldRemoveButton(
23
- options.removeButtonOptions ?? {},
24
- );
19
+ this.addButtonOptions = options.addButtonOptions ?? {};
20
+ this.removeButtonOptions = options.removeButtonOptions ?? {};
25
21
  this.defaultValues = options.defaultValues ?? [];
26
22
  }
27
23
  }
@@ -4,3 +4,4 @@ export * from "./dynamic-object.type";
4
4
  export * from "./submit-button-default-options.type";
5
5
  export * from "./group-field.type";
6
6
  export * from "./array-field.type";
7
+ export * from "./array-field-action-button.type";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nvs-dynamic-form/react-core",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "types": "dist/cjs/index.d.ts",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",