@syncfusion/ej2-react-form-builder 0.1.0-beta
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/Common/CheckboxGroup.d.ts +13 -0
- package/Common/CheckboxGroup.js +50 -0
- package/Common/ConditionalRuleEngine.d.ts +296 -0
- package/Common/ConditionalRuleEngine.js +566 -0
- package/Common/CustomTabComponent.d.ts +17 -0
- package/Common/CustomTabComponent.js +30 -0
- package/Common/CustomValidationEngine.d.ts +58 -0
- package/Common/CustomValidationEngine.js +146 -0
- package/Common/DataGridComponent.d.ts +20 -0
- package/Common/DataGridComponent.js +273 -0
- package/Common/FormValidator.d.ts +485 -0
- package/Common/FormValidator.js +575 -0
- package/Common/MinMaxRuleEngine.d.ts +105 -0
- package/Common/MinMaxRuleEngine.js +365 -0
- package/Common/StaticHtmlRenderer.d.ts +14 -0
- package/Common/StaticHtmlRenderer.js +24 -0
- package/Common/expressions/DependencyTracker.d.ts +30 -0
- package/Common/expressions/DependencyTracker.js +128 -0
- package/Common/expressions/ExpressionEngine.d.ts +95 -0
- package/Common/expressions/ExpressionEngine.js +506 -0
- package/Common/expressions/ExpressionParser.d.ts +41 -0
- package/Common/expressions/ExpressionParser.js +269 -0
- package/Common/expressions/useGridExpressions.d.ts +12 -0
- package/Common/expressions/useGridExpressions.js +71 -0
- package/Common/globalFormId.d.ts +26 -0
- package/Common/globalFormId.js +45 -0
- package/Common/json-converter.d.ts +444 -0
- package/Common/json-converter.js +1184 -0
- package/Common/parser.d.ts +98 -0
- package/Common/parser.js +753 -0
- package/Common/utils.d.ts +130 -0
- package/Common/utils.js +574 -0
- package/README.md +53 -0
- package/index.d.ts +6 -0
- package/index.js +6 -0
- package/license +13 -0
- package/package.json +54 -0
- package/src/FormBuilder.d.ts +211 -0
- package/src/FormBuilder.js +1299 -0
- package/src/components/Database/ConnectionForm.d.ts +8 -0
- package/src/components/Database/ConnectionForm.js +28 -0
- package/src/components/TopBar.d.ts +10 -0
- package/src/components/TopBar.js +7 -0
- package/src/components/icons/ComponentIcons.d.ts +44 -0
- package/src/components/icons/ComponentIcons.js +40 -0
- package/src/components/layout/FormFieldWrapper.d.ts +41 -0
- package/src/components/layout/FormFieldWrapper.js +112 -0
- package/src/components/layout/LeftPane.d.ts +23 -0
- package/src/components/layout/LeftPane.js +310 -0
- package/src/components/layout/ListBoxPane.d.ts +24 -0
- package/src/components/layout/ListBoxPane.js +94 -0
- package/src/components/layout/MainSection.d.ts +39 -0
- package/src/components/layout/MainSection.js +1766 -0
- package/src/components/layout/Preview.d.ts +12 -0
- package/src/components/layout/Preview.js +337 -0
- package/src/components/layout/RightPane.d.ts +22 -0
- package/src/components/layout/RightPane.js +370 -0
- package/src/components/theme/ThemeSwitcher.d.ts +14 -0
- package/src/components/theme/ThemeSwitcher.js +24 -0
- package/src/components/theme/theme-constant.d.ts +37 -0
- package/src/components/theme/theme-constant.js +23 -0
- package/src/config/component-properties.json +4929 -0
- package/src/config/form-setting.json +56 -0
- package/src/config/locale.d.ts +449 -0
- package/src/config/locale.js +449 -0
- package/src/context/FormSchemaContext.d.ts +32 -0
- package/src/context/FormSchemaContext.js +155 -0
- package/src/context/LocalizationContext.d.ts +27 -0
- package/src/context/LocalizationContext.js +43 -0
- package/src/context/ThemeContext.d.ts +23 -0
- package/src/context/ThemeContext.js +161 -0
- package/src/context/contexts.d.ts +6 -0
- package/src/context/contexts.js +6 -0
- package/src/context/defaultFormSchema.d.ts +6 -0
- package/src/context/defaultFormSchema.js +20 -0
- package/src/defaultPalette.d.ts +9 -0
- package/src/defaultPalette.js +45 -0
- package/src/defaultTemplate.d.ts +3 -0
- package/src/defaultTemplate.js +185 -0
- package/src/import/schemaImportUtils.d.ts +24 -0
- package/src/import/schemaImportUtils.js +121 -0
- package/src/index.d.ts +16 -0
- package/src/index.js +6 -0
- package/src/types/ActionButtons.d.ts +44 -0
- package/src/types/ActionButtons.js +27 -0
- package/src/types/ComponentProperties.d.ts +33 -0
- package/src/types/ComponentProperties.js +2 -0
- package/src/types/FormSchema.d.ts +585 -0
- package/src/types/FormSchema.js +147 -0
- package/src/types/connection.d.ts +19 -0
- package/src/types/connection.js +9 -0
- package/src/utils/AttributesEditor.d.ts +13 -0
- package/src/utils/AttributesEditor.js +117 -0
- package/src/utils/ButtonGroupEditor.d.ts +15 -0
- package/src/utils/ButtonGroupEditor.js +141 -0
- package/src/utils/ChoiceBasedFieldEditor.d.ts +16 -0
- package/src/utils/ChoiceBasedFieldEditor.js +87 -0
- package/src/utils/ClipboardHelper.d.ts +26 -0
- package/src/utils/ClipboardHelper.js +83 -0
- package/src/utils/ColumnBuilder.d.ts +11 -0
- package/src/utils/ColumnBuilder.js +153 -0
- package/src/utils/ColumnSpanEditor.d.ts +8 -0
- package/src/utils/ColumnSpanEditor.js +98 -0
- package/src/utils/ConditionDataEditor.d.ts +29 -0
- package/src/utils/ConditionDataEditor.js +177 -0
- package/src/utils/ConditionalEditorUtils.d.ts +27 -0
- package/src/utils/ConditionalEditorUtils.js +310 -0
- package/src/utils/ConditionsEditor.d.ts +20 -0
- package/src/utils/ConditionsEditor.js +571 -0
- package/src/utils/CustomAccordion.d.ts +13 -0
- package/src/utils/CustomAccordion.js +38 -0
- package/src/utils/CustomValidationEditor.d.ts +11 -0
- package/src/utils/CustomValidationEditor.js +208 -0
- package/src/utils/DataSourceCollector.d.ts +3 -0
- package/src/utils/DataSourceCollector.js +252 -0
- package/src/utils/ExpressionEditor.d.ts +13 -0
- package/src/utils/ExpressionEditor.js +99 -0
- package/src/utils/FormSettingsPanel.d.ts +9 -0
- package/src/utils/FormSettingsPanel.js +60 -0
- package/src/utils/LookupConfig.d.ts +11 -0
- package/src/utils/LookupConfig.js +159 -0
- package/src/utils/MinMaxValueEditor.d.ts +25 -0
- package/src/utils/MinMaxValueEditor.js +188 -0
- package/src/utils/OptionsEditor.d.ts +8 -0
- package/src/utils/OptionsEditor.js +79 -0
- package/src/utils/PropertyRenderer.d.ts +22 -0
- package/src/utils/PropertyRenderer.js +210 -0
- package/src/utils/ValueRenderer.d.ts +2 -0
- package/src/utils/ValueRenderer.js +91 -0
- package/src/utils/ej2DbAdaptor.d.ts +6 -0
- package/src/utils/ej2DbAdaptor.js +38 -0
- package/src/utils/mappingHeuristics.d.ts +10 -0
- package/src/utils/mappingHeuristics.js +33 -0
- package/src/utils/renderComponent.d.ts +18 -0
- package/src/utils/renderComponent.js +300 -0
- package/styles/tailwind3.css +67 -0
- package/styles/themes/action-buttons.css +110 -0
- package/styles/themes/datagrid.css +380 -0
- package/styles/themes/drag-reorder.css +248 -0
- package/styles/themes/import-dialog.css +292 -0
- package/styles/themes/index.css +658 -0
- package/styles/themes/left-pane.css +253 -0
- package/styles/themes/options-editor.css +63 -0
- package/styles/themes/preview.css +702 -0
- package/styles/themes/property-dialog.css +371 -0
package/README.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Syncfusion® EJ2 React Form Builder
|
|
2
|
+
|
|
3
|
+
A powerful visual drag-and-drop form builder component for creating JSON form schemas.
|
|
4
|
+
|
|
5
|
+
## Key features
|
|
6
|
+
|
|
7
|
+
- **Visual drag-and-drop designer** — Create forms through an intuitive drag-and-drop interface that allows users to add, arrange, resize, and organize form elements visually without writing code.
|
|
8
|
+
|
|
9
|
+
- **20+ field types** — Supports a rich collection of form controls including TextBox, TextArea, Number, DatePicker, TimePicker, DateTimePicker, CheckBox, RadioButton, DropDown, MultiSelect, Grid, File Upload, Rich Text Editor, Signature, Rating, and more.
|
|
10
|
+
|
|
11
|
+
- **Nested layouts** — Supports advanced form composition with panels, tabs, tables, cards, and multi-column layouts, enabling the creation of structured and complex form designs.
|
|
12
|
+
|
|
13
|
+
- **Property editor** — Provides a dedicated configuration panel for customizing field properties such as labels, placeholders, default values, validation rules, visibility settings, styling, and data sources.
|
|
14
|
+
|
|
15
|
+
- **Import/export JSON schemas** — Allows form definitions to be imported from and exported to JSON schemas, enabling form portability, versioning, persistence, and integration with external applications.
|
|
16
|
+
|
|
17
|
+
- **Theme support** — Supports light and dark themes with customizable styling options, allowing forms to align with application branding and user preferences.
|
|
18
|
+
|
|
19
|
+
- **Validation rules** — Supports field-level and form-level validation, including required fields, length constraints, numeric ranges, pattern matching, custom validation rules, and cross-field validations.
|
|
20
|
+
|
|
21
|
+
- **Conditional logic** — Supports dynamic visibility, required state, read-only state, default values, and data filtering based on conditions evaluated from other form fields, enabling adaptive form experiences.
|
|
22
|
+
|
|
23
|
+
- **Expression engine** — Enables calculated fields and business logic using expressions that support arithmetic operations, string manipulation, date calculations, conditional formulas, and automatic value updates.
|
|
24
|
+
|
|
25
|
+
- **Preview form & JSON export** — Provides real-time form preview for validating layouts, rules, and interactions before publishing, along with JSON export for deployment, storage, or runtime rendering.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## Installation
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm install @syncfusion/ej2-react-form-builder
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Usage
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
import { FormBuilder } from '@syncfusion/ej2-react-form-builder';
|
|
38
|
+
import '@syncfusion/ej2-react-form-builder/styles/tailwind3.css';
|
|
39
|
+
|
|
40
|
+
function App() {
|
|
41
|
+
return <FormBuilder />;
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## License and copyright
|
|
46
|
+
|
|
47
|
+
> This is a commercial product and requires a paid license for possession or use. Syncfusion<sup>®</sup> licensed software, including this component, is subject to the terms and conditions of Syncfusion<sup>®</sup> [EULA](https://www.syncfusion.com/eula/es/). To acquire a license for 140+ Syncfusion UI components, you can [purchase](https://www.syncfusion.com/sales/products) or [start a free 30-day trial](https://www.syncfusion.com/account/manage-trials/start-trials).
|
|
48
|
+
|
|
49
|
+
> A free community [license](https://www.syncfusion.com/products/communitylicense) is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue and five or fewer developers.
|
|
50
|
+
|
|
51
|
+
See [LICENSE FILE](license) for more info.
|
|
52
|
+
|
|
53
|
+
© Copyright 2026 Syncfusion<sup>®</sup> Inc. All Rights Reserved. The Syncfusion<sup>®</sup> Essential Studio<sup>®</sup> license and copyright applies to this distribution.
|
package/index.d.ts
ADDED
package/index.js
ADDED
package/license
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Syncfusion® License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Syncfusion®, Inc. All rights reserved.
|
|
4
|
+
|
|
5
|
+
Essential® JS 2 Form Builder library is available through the Syncfusion® Essential Studio® program and can be licensed under either the Syncfusion® Community License Program or the Syncfusion® Commercial License.
|
|
6
|
+
|
|
7
|
+
To qualify for the Syncfusion® Community License Program, your organization must have annual gross revenue of less than one (1) million U.S. dollars ($1,000,000.00 USD) per year and fewer than five (5) developers. Additionally, you must agree to Syncfusion®'s terms and conditions.
|
|
8
|
+
|
|
9
|
+
If you do not meet the requirements for the community license, please reach out to sales@syncfusion.com for commercial licensing options.
|
|
10
|
+
|
|
11
|
+
You are required to obtain either a Community License or a Commercial License before using this product and must agree to comply with Syncfusion®'s terms and conditions.
|
|
12
|
+
|
|
13
|
+
The full Syncfusion® license, including terms and conditions, can be found at: https://www.syncfusion.com/content/downloads/syncfusion_license.pdf
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@syncfusion/ej2-react-form-builder",
|
|
3
|
+
"version": "0.1.0-beta",
|
|
4
|
+
"description": "Syncfusion Form Builder component is a visual drag-and-drop interface for creating JSON form schemas.",
|
|
5
|
+
"author": "Syncfusion Inc.",
|
|
6
|
+
"license": "SEE LICENSE IN license",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"syncfusion",
|
|
9
|
+
"ej2",
|
|
10
|
+
"react",
|
|
11
|
+
"form",
|
|
12
|
+
"form-builder",
|
|
13
|
+
"form-renderer",
|
|
14
|
+
"dynamic-forms",
|
|
15
|
+
"json-forms",
|
|
16
|
+
"schema-forms",
|
|
17
|
+
"ui-components",
|
|
18
|
+
"react-components",
|
|
19
|
+
"drag-and-drop"
|
|
20
|
+
],
|
|
21
|
+
"main": "./index.js",
|
|
22
|
+
"module": "./index.js",
|
|
23
|
+
"types": "./index.d.ts",
|
|
24
|
+
"typings": "./index.d.ts",
|
|
25
|
+
"readme": "README.md",
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"import": "./index.js",
|
|
29
|
+
"types": "./index.d.ts"
|
|
30
|
+
},
|
|
31
|
+
"./styles/*": "./styles/*"
|
|
32
|
+
},
|
|
33
|
+
"sideEffects": false,
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@syncfusion/ej2-react-buttons": "*",
|
|
36
|
+
"@syncfusion/ej2-react-calendars": "*",
|
|
37
|
+
"@syncfusion/ej2-react-dropdowns": "*",
|
|
38
|
+
"@syncfusion/ej2-react-grids": "*",
|
|
39
|
+
"@syncfusion/ej2-react-image-editor": "*",
|
|
40
|
+
"@syncfusion/ej2-react-inplace-editor": "*",
|
|
41
|
+
"@syncfusion/ej2-react-inputs": "*",
|
|
42
|
+
"@syncfusion/ej2-react-layouts": "*",
|
|
43
|
+
"@syncfusion/ej2-react-lists": "*",
|
|
44
|
+
"@syncfusion/ej2-react-navigations": "*",
|
|
45
|
+
"@syncfusion/ej2-react-notifications": "*",
|
|
46
|
+
"@syncfusion/ej2-react-popups": "*",
|
|
47
|
+
"@syncfusion/ej2-react-querybuilder": "*",
|
|
48
|
+
"@syncfusion/ej2-react-richtexteditor": "*",
|
|
49
|
+
"@syncfusion/ej2-react-splitbuttons": "*",
|
|
50
|
+
"@syncfusion/ej2-react-form-renderer": "*",
|
|
51
|
+
"@syncfusion/react-base": "*"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {}
|
|
54
|
+
}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import React, { type HTMLAttributes } from 'react';
|
|
2
|
+
import type { FormComponent, PaletteConfig, Schema } from './types/FormSchema';
|
|
3
|
+
import type { DefaultTemplates } from './types/FormSchema';
|
|
4
|
+
/**
|
|
5
|
+
* @private
|
|
6
|
+
*/
|
|
7
|
+
export declare let formBuilderMode: string;
|
|
8
|
+
/**
|
|
9
|
+
* @private
|
|
10
|
+
*/
|
|
11
|
+
export declare const extractTemplateComponents: (template: DefaultTemplates) => FormComponent[];
|
|
12
|
+
/**
|
|
13
|
+
* The IFormBuilder interface defines the configuration options of the FormBuilder component, which is used to design form schemas.
|
|
14
|
+
*/
|
|
15
|
+
export interface IFormBuilder {
|
|
16
|
+
/**
|
|
17
|
+
* This is the FormBuilder component element.
|
|
18
|
+
*
|
|
19
|
+
* @private
|
|
20
|
+
* @default null
|
|
21
|
+
*/
|
|
22
|
+
element?: HTMLElement | null;
|
|
23
|
+
/**
|
|
24
|
+
* Specifies the locale of the Form Builder Component.
|
|
25
|
+
*
|
|
26
|
+
* @property
|
|
27
|
+
* @default 'en-US'
|
|
28
|
+
*/
|
|
29
|
+
locale?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Specifies whether the form schema created with the Form Builder can be exported.
|
|
32
|
+
*
|
|
33
|
+
* @property
|
|
34
|
+
* @default true
|
|
35
|
+
*/
|
|
36
|
+
allowExport?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Enables or disables the form preview mode option in the Form Builder.
|
|
39
|
+
*
|
|
40
|
+
* @property
|
|
41
|
+
* @default true
|
|
42
|
+
*/
|
|
43
|
+
enablePreview?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Specifies the mode of the Form Builder. There are two modes available:
|
|
46
|
+
* - Simple - This mode limits the supported components and options in the Form Builder to provide ease for non-technical users.
|
|
47
|
+
* - Developer - This mode enables the complete features in the Form Builder. This is the default mode.
|
|
48
|
+
*
|
|
49
|
+
* @property
|
|
50
|
+
* @default true
|
|
51
|
+
*/
|
|
52
|
+
mode?: 'Simple' | 'Developer';
|
|
53
|
+
/**
|
|
54
|
+
* Specifies whether the form schema state should be persisted in the Form Builder. The local storage is used to maintain the persistence behavior.
|
|
55
|
+
*
|
|
56
|
+
* @property
|
|
57
|
+
* @default false
|
|
58
|
+
*/
|
|
59
|
+
enablePersistence?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Specifies whether the form elements to be displayed in Right to Left.
|
|
62
|
+
*
|
|
63
|
+
* @property
|
|
64
|
+
* @default false
|
|
65
|
+
*/
|
|
66
|
+
enableRtl?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* This property is used to provide a set of custom components in addition to the existing form field components.
|
|
69
|
+
*
|
|
70
|
+
* @property
|
|
71
|
+
* @default undefined (uses defaultTemplates)
|
|
72
|
+
*/
|
|
73
|
+
formTemplates?: DefaultTemplates[];
|
|
74
|
+
/**
|
|
75
|
+
* This property is used to modify the components for the form fields in basic, advanced, and layout categories in the left panel of the Form Builder.
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* paletteConfig={{
|
|
79
|
+
* [ComponentCategory.BASIC]: [
|
|
80
|
+
* { type: FormComponentType.TEXTBOX, category: 'basic' },
|
|
81
|
+
* { type: FormComponentType.CHECKBOX, category: 'basic' }
|
|
82
|
+
* ],
|
|
83
|
+
* [ComponentCategory.ADVANCED]: [
|
|
84
|
+
* { type: FormComponentType.MULTISELECT, category: 'advanced' }
|
|
85
|
+
* ]
|
|
86
|
+
* }}
|
|
87
|
+
*
|
|
88
|
+
* @property
|
|
89
|
+
* @private
|
|
90
|
+
* @default undefined (uses defaultPalette)
|
|
91
|
+
*/
|
|
92
|
+
paletteConfig?: PaletteConfig;
|
|
93
|
+
/**
|
|
94
|
+
* Event triggered when a component property is changed in the property panel.
|
|
95
|
+
* Fires on every property value change with details of the changed field.
|
|
96
|
+
*
|
|
97
|
+
* @event
|
|
98
|
+
*
|
|
99
|
+
* @param args - Event data containing label, property key, value, and component id
|
|
100
|
+
*/
|
|
101
|
+
onPropertyChanged?: (args: PropertyChangedEventArgs) => void;
|
|
102
|
+
/**
|
|
103
|
+
* Event triggered when a field drag operation starts.
|
|
104
|
+
* Fires for both root-level and nested container drags.
|
|
105
|
+
*
|
|
106
|
+
* @event
|
|
107
|
+
*
|
|
108
|
+
* @param args - Event data containing component and source container info
|
|
109
|
+
*/
|
|
110
|
+
onFieldDragStarted?: (args: FieldDragStartedEventArgs) => void;
|
|
111
|
+
/**
|
|
112
|
+
* Event triggered when a dragged field is over a valid drop zone.
|
|
113
|
+
* Fires repeatedly while hovering over drop targets.
|
|
114
|
+
*
|
|
115
|
+
* @event
|
|
116
|
+
*
|
|
117
|
+
* @param args - Event data containing target container info
|
|
118
|
+
*/
|
|
119
|
+
onFieldDraggingOver?: (args: FieldDraggingOverEventArgs) => void;
|
|
120
|
+
/**
|
|
121
|
+
* Event triggered when a field drop operation completes.
|
|
122
|
+
* Fires for successful drops in both root and nested containers.
|
|
123
|
+
*
|
|
124
|
+
* @event
|
|
125
|
+
*
|
|
126
|
+
* @param args - Event data containing source, target, and drop details
|
|
127
|
+
*/
|
|
128
|
+
onFieldDropped?: (args: FieldDroppedEventArgs) => void;
|
|
129
|
+
/**
|
|
130
|
+
* This property facilitates an optional initial form schema to load in the Form Builder.
|
|
131
|
+
*
|
|
132
|
+
* @property
|
|
133
|
+
* @default null
|
|
134
|
+
*/
|
|
135
|
+
schema?: Schema | any;
|
|
136
|
+
/**
|
|
137
|
+
* Gets the current form settings as a JSON string in the required export format.
|
|
138
|
+
*
|
|
139
|
+
* @returns Form settings JSON string
|
|
140
|
+
* @private
|
|
141
|
+
*/
|
|
142
|
+
getFormSettings(): any;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* FormBuilder component props (used for JSX props, excludes imperative methods)
|
|
146
|
+
*/
|
|
147
|
+
type IFormBuilderProps = Omit<IFormBuilder, 'element' | 'getFormSettings'> & HTMLAttributes<HTMLDivElement>;
|
|
148
|
+
/**
|
|
149
|
+
* The FormBuilder component provides a visual, drag-and-drop interface for authoring form schemas. It supports palette customization, template insertion, dual modes (Simple/Developer), and emits structural form schemas (FormSchema) that can be consumed by FormRenderer.
|
|
150
|
+
*
|
|
151
|
+
* ```typescript
|
|
152
|
+
* import { FormBuilder } from '@syncfusion/ej2-react-form-builder';
|
|
153
|
+
*
|
|
154
|
+
* <FormBuilder />
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
export declare const FormBuilder: React.ForwardRefExoticComponent<IFormBuilderProps & React.RefAttributes<IFormBuilder>>;
|
|
158
|
+
declare const _default: React.NamedExoticComponent<Omit<IFormBuilder, "element" | "getFormSettings"> & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<IFormBuilder>>;
|
|
159
|
+
export default _default;
|
|
160
|
+
/**
|
|
161
|
+
* This event argument provides details when a form field's drag action starts.
|
|
162
|
+
*/
|
|
163
|
+
export interface FieldDragStartedEventArgs {
|
|
164
|
+
/** Specifies the name of the component being dragged. */
|
|
165
|
+
componentName: string | null;
|
|
166
|
+
/** Specifies the type of the component (e.g., 'textbox', 'dropdown', 'panel'). */
|
|
167
|
+
componentType: string;
|
|
168
|
+
/** Specifies the container ID where the drag originated ('root', panel ID, table ID, etc.). */
|
|
169
|
+
sourceContainerId: string;
|
|
170
|
+
/** Specifies whether this is a nested container drag. */
|
|
171
|
+
isNested: boolean;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* This event argument provides details when a form field's drag action is in progress over a drop zone.
|
|
175
|
+
*/
|
|
176
|
+
export interface FieldDraggingOverEventArgs {
|
|
177
|
+
/** Specifies whether hovering over a nested container. */
|
|
178
|
+
isNested: boolean;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* This event argument provides details when a form field's drag action is completed by dropping on a drop zone.
|
|
182
|
+
*/
|
|
183
|
+
export interface FieldDroppedEventArgs {
|
|
184
|
+
/** Specifies the name of the dropped component */
|
|
185
|
+
componentName: string;
|
|
186
|
+
/** Specifies whether the component was reordered. */
|
|
187
|
+
isReordered: boolean;
|
|
188
|
+
/** Specifies the type of the component. */
|
|
189
|
+
componentType: string;
|
|
190
|
+
/** Specifies the source container ID ('root', panel ID, 'palette' for new components) which acts as a drop zone. */
|
|
191
|
+
sourceContainerId: string;
|
|
192
|
+
/** Specifies the target container ID where the component was dropped. */
|
|
193
|
+
targetContainerId: string;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* This event argument provides details when a property value changes in the property panel.
|
|
197
|
+
*/
|
|
198
|
+
export interface PropertyChangedEventArgs {
|
|
199
|
+
/**
|
|
200
|
+
* Specifies the display label of the changed property.
|
|
201
|
+
*
|
|
202
|
+
* @private
|
|
203
|
+
*/
|
|
204
|
+
field: string;
|
|
205
|
+
/** Specifies the property name of the field. */
|
|
206
|
+
property: string;
|
|
207
|
+
/** Specifies the new value of the property. */
|
|
208
|
+
value: any;
|
|
209
|
+
/** Specifies the name of the component being edited. */
|
|
210
|
+
name: string;
|
|
211
|
+
}
|