@syncfusion/ej2-form-renderer 34.2.2
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/README.md +60 -0
- package/common.d.ts +4 -0
- package/common.js +4 -0
- package/dist/ej2-form-renderer.umd.min.js +11 -0
- package/dist/ej2-form-renderer.umd.min.js.map +1 -0
- package/dist/es6/ej2-form-renderer.es2015.js +6787 -0
- package/dist/es6/ej2-form-renderer.es2015.js.map +1 -0
- package/dist/es6/ej2-form-renderer.es5.js +7055 -0
- package/dist/es6/ej2-form-renderer.es5.js.map +1 -0
- package/dist/global/ej2-form-renderer.min.js +11 -0
- package/dist/global/ej2-form-renderer.min.js.map +1 -0
- package/dist/global/index.d.ts +14 -0
- package/form-renderer.d.ts +4 -0
- package/form-renderer.js +4 -0
- package/index.d.ts +4 -0
- package/index.js +4 -0
- package/license +10 -0
- package/package.json +41 -0
- package/src/common/checkbox-group.d.ts +55 -0
- package/src/common/checkbox-group.js +241 -0
- package/src/common/conditional-rule-engine.d.ts +241 -0
- package/src/common/conditional-rule-engine.js +505 -0
- package/src/common/custom-validation-engine.d.ts +57 -0
- package/src/common/custom-validation-engine.js +152 -0
- package/src/common/datagrid-component.d.ts +156 -0
- package/src/common/datagrid-component.js +410 -0
- package/src/common/expressions/dependency-tracker.d.ts +29 -0
- package/src/common/expressions/dependency-tracker.js +137 -0
- package/src/common/expressions/expression-engine.d.ts +94 -0
- package/src/common/expressions/expression-engine.js +514 -0
- package/src/common/expressions/expression-parser.d.ts +40 -0
- package/src/common/expressions/expression-parser.js +270 -0
- package/src/common/expressions/grid-expressions.d.ts +24 -0
- package/src/common/expressions/grid-expressions.js +92 -0
- package/src/common/expressions/index.d.ts +4 -0
- package/src/common/expressions/index.js +4 -0
- package/src/common/index.d.ts +10 -0
- package/src/common/index.js +10 -0
- package/src/common/json-converter.d.ts +945 -0
- package/src/common/json-converter.js +1110 -0
- package/src/common/minmax-rule-engine.d.ts +105 -0
- package/src/common/minmax-rule-engine.js +380 -0
- package/src/common/option-fetcher.d.ts +30 -0
- package/src/common/option-fetcher.js +139 -0
- package/src/common/parser.d.ts +98 -0
- package/src/common/parser.js +788 -0
- package/src/common/static-html-renderer.d.ts +45 -0
- package/src/common/static-html-renderer.js +77 -0
- package/src/common/utils.d.ts +116 -0
- package/src/common/utils.js +484 -0
- package/src/form-renderer/form-renderer-model.d.ts +65 -0
- package/src/form-renderer/form-renderer.d.ts +425 -0
- package/src/form-renderer/form-renderer.js +2277 -0
- package/src/form-renderer/index.d.ts +6 -0
- package/src/form-renderer/index.js +5 -0
- package/src/form-renderer/render-form-field.d.ts +31 -0
- package/src/form-renderer/render-form-field.js +816 -0
- package/src/form-renderer/types/form-schema.d.ts +452 -0
- package/src/form-renderer/types/form-schema.js +32 -0
- package/src/global.js +1 -0
- package/src/index.d.ts +4 -0
- package/src/index.js +4 -0
- package/styles/bds-lite.css +599 -0
- package/styles/bds-lite.scss +2 -0
- package/styles/bds.css +599 -0
- package/styles/bds.scss +2 -0
- package/styles/bootstrap-dark-lite.css +608 -0
- package/styles/bootstrap-dark-lite.scss +2 -0
- package/styles/bootstrap-dark.css +608 -0
- package/styles/bootstrap-dark.scss +2 -0
- package/styles/bootstrap-lite.css +595 -0
- package/styles/bootstrap-lite.scss +2 -0
- package/styles/bootstrap.css +595 -0
- package/styles/bootstrap.scss +2 -0
- package/styles/bootstrap4-lite.css +595 -0
- package/styles/bootstrap4-lite.scss +2 -0
- package/styles/bootstrap4.css +595 -0
- package/styles/bootstrap4.scss +2 -0
- package/styles/bootstrap5-dark-lite.css +595 -0
- package/styles/bootstrap5-dark-lite.scss +2 -0
- package/styles/bootstrap5-dark.css +595 -0
- package/styles/bootstrap5-dark.scss +2 -0
- package/styles/bootstrap5-lite.css +595 -0
- package/styles/bootstrap5-lite.scss +2 -0
- package/styles/bootstrap5.3-lite.css +679 -0
- package/styles/bootstrap5.3-lite.scss +2 -0
- package/styles/bootstrap5.3.css +679 -0
- package/styles/bootstrap5.3.scss +2 -0
- package/styles/bootstrap5.css +595 -0
- package/styles/bootstrap5.scss +2 -0
- package/styles/fabric-dark-lite.css +608 -0
- package/styles/fabric-dark-lite.scss +2 -0
- package/styles/fabric-dark.css +608 -0
- package/styles/fabric-dark.scss +2 -0
- package/styles/fabric-lite.css +595 -0
- package/styles/fabric-lite.scss +2 -0
- package/styles/fabric.css +595 -0
- package/styles/fabric.scss +2 -0
- package/styles/fluent-dark-lite.css +595 -0
- package/styles/fluent-dark-lite.scss +2 -0
- package/styles/fluent-dark.css +595 -0
- package/styles/fluent-dark.scss +2 -0
- package/styles/fluent-lite.css +595 -0
- package/styles/fluent-lite.scss +2 -0
- package/styles/fluent.css +595 -0
- package/styles/fluent.scss +2 -0
- package/styles/fluent2-lite.css +681 -0
- package/styles/fluent2-lite.scss +2 -0
- package/styles/fluent2.css +681 -0
- package/styles/fluent2.scss +2 -0
- package/styles/form-renderer/_all.scss +2 -0
- package/styles/form-renderer/_bds-definition.scss +8 -0
- package/styles/form-renderer/_bootstrap-dark-definition.scss +8 -0
- package/styles/form-renderer/_bootstrap-definition.scss +8 -0
- package/styles/form-renderer/_bootstrap4-definition.scss +8 -0
- package/styles/form-renderer/_bootstrap5-dark-definition.scss +8 -0
- package/styles/form-renderer/_bootstrap5-definition.scss +8 -0
- package/styles/form-renderer/_bootstrap5.3-definition.scss +8 -0
- package/styles/form-renderer/_fabric-dark-definition.scss +8 -0
- package/styles/form-renderer/_fabric-definition.scss +8 -0
- package/styles/form-renderer/_fluent-dark-definition.scss +8 -0
- package/styles/form-renderer/_fluent-definition.scss +8 -0
- package/styles/form-renderer/_fluent2-definition.scss +8 -0
- package/styles/form-renderer/_highcontrast-definition.scss +8 -0
- package/styles/form-renderer/_highcontrast-light-definition.scss +8 -0
- package/styles/form-renderer/_layout.scss +480 -0
- package/styles/form-renderer/_material-dark-definition.scss +8 -0
- package/styles/form-renderer/_material-definition.scss +8 -0
- package/styles/form-renderer/_material3-dark-definition.scss +8 -0
- package/styles/form-renderer/_material3-definition.scss +8 -0
- package/styles/form-renderer/_mixin.scss +26 -0
- package/styles/form-renderer/_tailwind-dark-definition.scss +8 -0
- package/styles/form-renderer/_tailwind-definition.scss +8 -0
- package/styles/form-renderer/_tailwind3-definition.scss +8 -0
- package/styles/form-renderer/_theme.scss +69 -0
- package/styles/form-renderer/_variables.scss +2 -0
- package/styles/form-renderer/bds.css +599 -0
- package/styles/form-renderer/bds.scss +2 -0
- package/styles/form-renderer/bootstrap-dark.css +608 -0
- package/styles/form-renderer/bootstrap-dark.scss +2 -0
- package/styles/form-renderer/bootstrap.css +595 -0
- package/styles/form-renderer/bootstrap.scss +2 -0
- package/styles/form-renderer/bootstrap4.css +595 -0
- package/styles/form-renderer/bootstrap4.scss +2 -0
- package/styles/form-renderer/bootstrap5-dark.css +595 -0
- package/styles/form-renderer/bootstrap5-dark.scss +2 -0
- package/styles/form-renderer/bootstrap5.3.css +679 -0
- package/styles/form-renderer/bootstrap5.3.scss +2 -0
- package/styles/form-renderer/bootstrap5.css +595 -0
- package/styles/form-renderer/bootstrap5.scss +2 -0
- package/styles/form-renderer/fabric-dark.css +608 -0
- package/styles/form-renderer/fabric-dark.scss +2 -0
- package/styles/form-renderer/fabric.css +595 -0
- package/styles/form-renderer/fabric.scss +2 -0
- package/styles/form-renderer/fluent-dark.css +595 -0
- package/styles/form-renderer/fluent-dark.scss +2 -0
- package/styles/form-renderer/fluent.css +595 -0
- package/styles/form-renderer/fluent.scss +2 -0
- package/styles/form-renderer/fluent2.css +681 -0
- package/styles/form-renderer/fluent2.scss +2 -0
- package/styles/form-renderer/highcontrast-light.css +595 -0
- package/styles/form-renderer/highcontrast-light.scss +2 -0
- package/styles/form-renderer/highcontrast.css +608 -0
- package/styles/form-renderer/highcontrast.scss +2 -0
- package/styles/form-renderer/material-dark.css +608 -0
- package/styles/form-renderer/material-dark.scss +2 -0
- package/styles/form-renderer/material.css +595 -0
- package/styles/form-renderer/material.scss +2 -0
- package/styles/form-renderer/material3-dark.css +677 -0
- package/styles/form-renderer/material3-dark.scss +2 -0
- package/styles/form-renderer/material3.css +679 -0
- package/styles/form-renderer/material3.scss +2 -0
- package/styles/form-renderer/tailwind-dark.css +595 -0
- package/styles/form-renderer/tailwind-dark.scss +2 -0
- package/styles/form-renderer/tailwind.css +595 -0
- package/styles/form-renderer/tailwind.scss +2 -0
- package/styles/form-renderer/tailwind3.css +669 -0
- package/styles/form-renderer/tailwind3.scss +2 -0
- package/styles/highcontrast-light-lite.css +595 -0
- package/styles/highcontrast-light-lite.scss +2 -0
- package/styles/highcontrast-light.css +595 -0
- package/styles/highcontrast-light.scss +2 -0
- package/styles/highcontrast-lite.css +608 -0
- package/styles/highcontrast-lite.scss +2 -0
- package/styles/highcontrast.css +608 -0
- package/styles/highcontrast.scss +2 -0
- package/styles/material-dark-lite.css +608 -0
- package/styles/material-dark-lite.scss +2 -0
- package/styles/material-dark.css +608 -0
- package/styles/material-dark.scss +2 -0
- package/styles/material-lite.css +595 -0
- package/styles/material-lite.scss +2 -0
- package/styles/material.css +595 -0
- package/styles/material.scss +2 -0
- package/styles/material3-dark-lite.css +677 -0
- package/styles/material3-dark-lite.scss +2 -0
- package/styles/material3-dark.css +677 -0
- package/styles/material3-dark.scss +2 -0
- package/styles/material3-lite.css +679 -0
- package/styles/material3-lite.scss +2 -0
- package/styles/material3.css +679 -0
- package/styles/material3.scss +2 -0
- package/styles/tailwind-dark-lite.css +595 -0
- package/styles/tailwind-dark-lite.scss +2 -0
- package/styles/tailwind-dark.css +595 -0
- package/styles/tailwind-dark.scss +2 -0
- package/styles/tailwind-lite.css +595 -0
- package/styles/tailwind-lite.scss +2 -0
- package/styles/tailwind.css +595 -0
- package/styles/tailwind.scss +2 -0
- package/styles/tailwind3-lite.css +669 -0
- package/styles/tailwind3-lite.scss +2 -0
- package/styles/tailwind3.css +669 -0
- package/styles/tailwind3.scss +2 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { ExpressionEngine } from './expressions/expression-engine';
|
|
13
|
+
/**
|
|
14
|
+
* Custom Validation Engine
|
|
15
|
+
*
|
|
16
|
+
* Evaluates FormIO-style custom validation expressions:
|
|
17
|
+
* valid = (condition) ? true : 'error message';
|
|
18
|
+
*
|
|
19
|
+
* Reuses ExpressionEngine for dependency extraction and expression parsing
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
var CustomValidationEngine = /** @class */ (function () {
|
|
23
|
+
function CustomValidationEngine() {
|
|
24
|
+
this.expressionEngine = new ExpressionEngine();
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Validate field using custom validation expression
|
|
28
|
+
*
|
|
29
|
+
* @param expression - FormIO-style validation expression (generated by UI)
|
|
30
|
+
* @param fieldValue - Current field value (as 'input')
|
|
31
|
+
* @param formValues - All form values for cross-field references
|
|
32
|
+
* @returns true if valid, error message string if invalid
|
|
33
|
+
*/
|
|
34
|
+
CustomValidationEngine.prototype.validate = function (expression, fieldValue, formValues) {
|
|
35
|
+
if (!expression || expression.trim() === '') {
|
|
36
|
+
return true; // No validation rule = valid
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
// Inject 'input' as current field value
|
|
40
|
+
var context = __assign({}, formValues, { input: fieldValue, valid: true // Initialize valid variable
|
|
41
|
+
});
|
|
42
|
+
// Parse expression - FormIO pattern uses assignment: valid = ...
|
|
43
|
+
// Pattern: valid = (condition) ? true : 'error message'
|
|
44
|
+
var validPattern = /valid\s*=\s*(.+?)\s*\?\s*true\s*:\s*['"](.+?)['"]\s*$/;
|
|
45
|
+
var match = expression.match(validPattern);
|
|
46
|
+
if (!match) {
|
|
47
|
+
return 'Invalid validation expression format';
|
|
48
|
+
}
|
|
49
|
+
var condition = match[1].trim();
|
|
50
|
+
var errorMessage = match[2];
|
|
51
|
+
// Evaluate the condition (should return boolean)
|
|
52
|
+
var conditionResult = this.expressionEngine.evaluate(condition, context, { throwOnError: false }, true);
|
|
53
|
+
// If condition is true, validation passes
|
|
54
|
+
if (conditionResult === true) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// Condition is false, return the error message
|
|
59
|
+
return errorMessage;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
return 'Validation expression error';
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Extract field dependencies from validation expression
|
|
68
|
+
*
|
|
69
|
+
* @param expression - Custom validation expression (or just condition)
|
|
70
|
+
* @returns Array of field names referenced in expression
|
|
71
|
+
*/
|
|
72
|
+
CustomValidationEngine.prototype.extractDependencies = function (expression) {
|
|
73
|
+
if (!expression)
|
|
74
|
+
return [];
|
|
75
|
+
// Extract validation logic (right side of = sign if present)
|
|
76
|
+
var validPattern = /valid\s*=\s*(.+)/;
|
|
77
|
+
var match = expression.match(validPattern);
|
|
78
|
+
var validationLogic = match ? match[1] : expression;
|
|
79
|
+
// Use ExpressionEngine to extract field references
|
|
80
|
+
var deps = this.expressionEngine.extractDependencies(validationLogic);
|
|
81
|
+
// Filter out 'input' as it's the current field, not a dependency
|
|
82
|
+
return deps.filter(function (dep) { return dep !== 'input'; });
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Validate condition syntax (simplified - no need for "valid =" check)
|
|
86
|
+
*
|
|
87
|
+
* @param condition - Validation condition (without "valid =" prefix)
|
|
88
|
+
* @param availableFields - Available field names for reference validation
|
|
89
|
+
* @returns Array of validation error messages
|
|
90
|
+
*/
|
|
91
|
+
CustomValidationEngine.prototype.validateConditionSyntax = function (condition, availableFields) {
|
|
92
|
+
if (!condition || condition.trim() === '') {
|
|
93
|
+
return ['Condition cannot be empty'];
|
|
94
|
+
}
|
|
95
|
+
var errors = [];
|
|
96
|
+
// Check for balanced parentheses
|
|
97
|
+
var openParens = (condition.match(/\(/g) || []).length;
|
|
98
|
+
var closeParens = (condition.match(/\)/g) || []).length;
|
|
99
|
+
if (openParens !== closeParens) {
|
|
100
|
+
errors.push("Unbalanced parentheses (" + openParens + " open, " + closeParens + " close)");
|
|
101
|
+
}
|
|
102
|
+
// Check for balanced braces
|
|
103
|
+
var openBraces = (condition.match(/\{/g) || []).length;
|
|
104
|
+
var closeBraces = (condition.match(/\}/g) || []).length;
|
|
105
|
+
if (openBraces !== closeBraces) {
|
|
106
|
+
errors.push("Unbalanced braces (" + openBraces + " open, " + closeBraces + " close)");
|
|
107
|
+
}
|
|
108
|
+
// Validate field references
|
|
109
|
+
var deps = this.extractDependencies(condition);
|
|
110
|
+
var invalidFields = deps.filter(function (field) { return availableFields.indexOf(field) === -1; });
|
|
111
|
+
if (invalidFields.length > 0) {
|
|
112
|
+
errors.push("Unknown field references: " + invalidFields.join(', '));
|
|
113
|
+
}
|
|
114
|
+
return errors;
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Build full FormIO expression from condition and error message
|
|
118
|
+
*
|
|
119
|
+
* @param condition - Validation condition (e.g., "(input === {password})")
|
|
120
|
+
* @param errorMessage - Error message to show when validation fails
|
|
121
|
+
* @returns Full FormIO expression
|
|
122
|
+
*/
|
|
123
|
+
CustomValidationEngine.prototype.buildExpression = function (condition, errorMessage) {
|
|
124
|
+
// Remove outer parentheses if present (we'll add them back in ternary)
|
|
125
|
+
var trimmedCondition = condition.trim();
|
|
126
|
+
// Escape single quotes in error message
|
|
127
|
+
var escapedMessage = errorMessage.replace(/'/g, "\\'");
|
|
128
|
+
// Build FormIO expression
|
|
129
|
+
return "valid = " + trimmedCondition + " ? true : '" + escapedMessage + "'";
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* Extract condition and error message from full FormIO expression
|
|
133
|
+
* For editing existing rules
|
|
134
|
+
*
|
|
135
|
+
* @param expression - Full FormIO expression
|
|
136
|
+
* @returns { condition, errorMessage } or null if invalid
|
|
137
|
+
*/
|
|
138
|
+
CustomValidationEngine.prototype.parseExpression = function (expression) {
|
|
139
|
+
// Pattern: valid = (condition) ? true : 'error message'
|
|
140
|
+
var pattern = /valid\s*=\s*(.+?)\s*\?\s*true\s*:\s*'(.+)'/;
|
|
141
|
+
var match = expression.match(pattern);
|
|
142
|
+
if (match) {
|
|
143
|
+
return {
|
|
144
|
+
condition: match[1].trim(),
|
|
145
|
+
errorMessage: match[2].replace(/\\'/g, "'") // Unescape quotes
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
return null;
|
|
149
|
+
};
|
|
150
|
+
return CustomValidationEngine;
|
|
151
|
+
}());
|
|
152
|
+
export { CustomValidationEngine };
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { Grid } from '@syncfusion/ej2-grids';
|
|
2
|
+
/**
|
|
3
|
+
* @private
|
|
4
|
+
*/
|
|
5
|
+
export interface GridColumn {
|
|
6
|
+
field: string;
|
|
7
|
+
headerText?: string;
|
|
8
|
+
type?: 'string' | 'number' | 'boolean' | 'date' | 'datetime';
|
|
9
|
+
isPrimaryKey?: boolean;
|
|
10
|
+
width?: number | string;
|
|
11
|
+
format?: string;
|
|
12
|
+
editType?: string;
|
|
13
|
+
allowEditing?: boolean;
|
|
14
|
+
expression?: string;
|
|
15
|
+
validationRules?: any;
|
|
16
|
+
customValidation?: {
|
|
17
|
+
expression: string;
|
|
18
|
+
}[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @private
|
|
22
|
+
*/
|
|
23
|
+
export interface GridComponentSchema {
|
|
24
|
+
id?: string;
|
|
25
|
+
columns?: GridColumn[];
|
|
26
|
+
dataSource?: Record<string, any>[];
|
|
27
|
+
height?: string | number;
|
|
28
|
+
width?: string | number;
|
|
29
|
+
locale?: string;
|
|
30
|
+
cssClass?: string;
|
|
31
|
+
pageSize?: number;
|
|
32
|
+
allowPaging?: boolean;
|
|
33
|
+
allowAdding?: boolean;
|
|
34
|
+
allowEditing?: boolean;
|
|
35
|
+
allowDeleting?: boolean;
|
|
36
|
+
allowFiltering?: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
41
|
+
export interface DataGridRef {
|
|
42
|
+
getGridData: () => Record<string, any>[];
|
|
43
|
+
gridRef: {
|
|
44
|
+
current: Grid | null;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @private
|
|
49
|
+
* Constructor options for `DataGridComponent`.
|
|
50
|
+
*/
|
|
51
|
+
export interface DataGridComponentOptions extends GridComponentSchema {
|
|
52
|
+
isPreviewMode?: boolean;
|
|
53
|
+
onDataChange?: (data: Record<string, any>[]) => void;
|
|
54
|
+
enableRtl?: boolean;
|
|
55
|
+
target?: HTMLElement;
|
|
56
|
+
ref?: any;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @private
|
|
60
|
+
*
|
|
61
|
+
* `DataGridComponent` is the Category C native reimplementation of
|
|
62
|
+
* `Common/DataGridComponent.tsx` using the EJ2 `Grid` (with `Edit`,
|
|
63
|
+
* `Toolbar`, `Page`, `Resize`, `Sort`, `Filter` inject modules).
|
|
64
|
+
*
|
|
65
|
+
* Reproduces:
|
|
66
|
+
* - internal current-data state seeded from `dataSource`;
|
|
67
|
+
* - calculated/expression columns (disable `allowEditing`, recompute on
|
|
68
|
+
* sibling field change via edit `change` params, update UI value by
|
|
69
|
+
* column type);
|
|
70
|
+
* - per-column custom validation merged into `validationRules`
|
|
71
|
+
* (required + custom validator via `CustomValidationEngine`);
|
|
72
|
+
* - dynamic toolbar (`Add`/`Edit`/`Delete` conditional + always
|
|
73
|
+
* `Update`/`Cancel`);
|
|
74
|
+
* - `actionComplete` → sync state + `onDataChange` callback;
|
|
75
|
+
* - `getGridData()` equivalent;
|
|
76
|
+
* - column mapping (`field, headerText, type, isPrimaryKey, width,
|
|
77
|
+
* format (date default 'MM/dd/yyyy'), editType, allowEditing`);
|
|
78
|
+
* - `filterSettings.mode='Immediate'`.
|
|
79
|
+
*/
|
|
80
|
+
export declare class DataGridComponent {
|
|
81
|
+
private id?;
|
|
82
|
+
private columns;
|
|
83
|
+
private dataSource;
|
|
84
|
+
private height;
|
|
85
|
+
private width;
|
|
86
|
+
private locale;
|
|
87
|
+
private cssClass;
|
|
88
|
+
private pageSize;
|
|
89
|
+
private allowPaging;
|
|
90
|
+
private allowAdding;
|
|
91
|
+
private allowEditing;
|
|
92
|
+
private allowDeleting;
|
|
93
|
+
private allowFiltering;
|
|
94
|
+
private onDataChange;
|
|
95
|
+
private isPreviewMode;
|
|
96
|
+
private enableRtl;
|
|
97
|
+
private ref;
|
|
98
|
+
private currentData;
|
|
99
|
+
private grid;
|
|
100
|
+
private gridExpressions;
|
|
101
|
+
private validationEngine;
|
|
102
|
+
private wrapper;
|
|
103
|
+
constructor(options: DataGridComponentOptions);
|
|
104
|
+
private readonly calculatedColumns;
|
|
105
|
+
private readonly hasExpressions;
|
|
106
|
+
/**
|
|
107
|
+
* Map React custom validation to a Syncfusion-style custom validator
|
|
108
|
+
* closure. Mirrors `mapCustomValidationToSyncfusion`.
|
|
109
|
+
*/
|
|
110
|
+
private mapCustomValidationToSyncfusion;
|
|
111
|
+
/**
|
|
112
|
+
* Create edit params attaching a `change` callback for non-calculated
|
|
113
|
+
* columns that have calc dependents. Mirrors `createEditParams`.
|
|
114
|
+
*/
|
|
115
|
+
private createEditParams;
|
|
116
|
+
/**
|
|
117
|
+
* Sync the working data on `actionComplete`. Mirrors `handleActionComplete`.
|
|
118
|
+
*/
|
|
119
|
+
private handleActionComplete;
|
|
120
|
+
/**
|
|
121
|
+
* Build the dynamic toolbar array. Mirrors `buildToolbar`.
|
|
122
|
+
*/
|
|
123
|
+
private buildToolbar;
|
|
124
|
+
/**
|
|
125
|
+
* Map a GridColumn to the EJ2 Grid column model, merging standard + custom
|
|
126
|
+
* validation rules and disabling editing on expression / no-edit columns.
|
|
127
|
+
*/
|
|
128
|
+
private mapColumn;
|
|
129
|
+
/**
|
|
130
|
+
* Build the grid element, instantiate `Grid`, inject services and append
|
|
131
|
+
* to the target/created container. Returns the wrapper element.
|
|
132
|
+
*/
|
|
133
|
+
render(targetOrHost?: HTMLElement): HTMLElement;
|
|
134
|
+
/**
|
|
135
|
+
* @private
|
|
136
|
+
*/
|
|
137
|
+
getRef(): DataGridRef;
|
|
138
|
+
/**
|
|
139
|
+
* Equivalent of `getGridData()`.
|
|
140
|
+
*/
|
|
141
|
+
getGridData(): Record<string, any>[];
|
|
142
|
+
/**
|
|
143
|
+
* Recompute expression-bearing rows from fresh `dataSource` (mirrors the
|
|
144
|
+
* useEffect on `[dataSource, hasExpressions, columns, ...]`).
|
|
145
|
+
*/
|
|
146
|
+
setDataSource(dataSource: Record<string, any>[]): void;
|
|
147
|
+
/**
|
|
148
|
+
* Re-detect columns; refresh the grid (mirrors the useEffect on columns).
|
|
149
|
+
*/
|
|
150
|
+
setColumns(columns: GridColumn[]): void;
|
|
151
|
+
/**
|
|
152
|
+
* @private
|
|
153
|
+
*/
|
|
154
|
+
destroy(): void;
|
|
155
|
+
}
|
|
156
|
+
export default DataGridComponent;
|