@formio/js 5.0.0-rc.69 → 5.0.0-rc.70
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/dist/formio.embed.js +1 -1
- package/dist/formio.embed.min.js +1 -1
- package/dist/formio.embed.min.js.LICENSE.txt +1 -1
- package/dist/formio.form.js +28 -17
- package/dist/formio.form.min.js +1 -1
- package/dist/formio.form.min.js.LICENSE.txt +1 -1
- package/dist/formio.full.js +29 -18
- package/dist/formio.full.min.js +1 -1
- package/dist/formio.full.min.js.LICENSE.txt +1 -1
- package/dist/formio.js +3 -3
- package/dist/formio.min.js +1 -1
- package/dist/formio.min.js.LICENSE.txt +1 -1
- package/dist/formio.utils.js +21 -10
- package/dist/formio.utils.min.js +1 -1
- package/dist/formio.utils.min.js.LICENSE.txt +1 -1
- package/lib/cjs/Webform.js +1 -1
- package/lib/cjs/WebformBuilder.js +11 -2
- package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +2 -1
- package/lib/cjs/components/_classes/nested/NestedComponent.js +4 -1
- package/lib/cjs/components/currency/Currency.d.ts +1 -0
- package/lib/cjs/components/number/Number.d.ts +7 -1
- package/lib/cjs/components/number/Number.js +11 -0
- package/lib/cjs/components/number/fixtures/comp10.d.ts +18 -0
- package/lib/cjs/components/number/fixtures/comp10.js +21 -0
- package/lib/cjs/components/number/fixtures/index.d.ts +2 -1
- package/lib/cjs/components/number/fixtures/index.js +3 -1
- package/lib/cjs/components/panel/Panel.d.ts +1 -0
- package/lib/cjs/components/panel/Panel.js +1 -0
- package/lib/cjs/components/time/Time.d.ts +2 -2
- package/lib/cjs/components/time/Time.js +3 -2
- package/lib/cjs/components/time/fixtures/comp4.d.ts +166 -0
- package/lib/cjs/components/time/fixtures/comp4.js +171 -0
- package/lib/cjs/components/time/fixtures/index.d.ts +2 -1
- package/lib/cjs/components/time/fixtures/index.js +3 -1
- package/lib/cjs/utils/conditionOperators/IsEmptyValue.js +4 -3
- package/lib/cjs/utils/conditionOperators/IsEqualTo.js +3 -3
- package/lib/cjs/utils/utils.d.ts +1 -10
- package/lib/cjs/utils/utils.js +59 -7
- package/lib/mjs/Webform.js +1 -1
- package/lib/mjs/WebformBuilder.js +10 -2
- package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +2 -1
- package/lib/mjs/components/_classes/nested/NestedComponent.js +4 -1
- package/lib/mjs/components/currency/Currency.d.ts +1 -0
- package/lib/mjs/components/number/Number.d.ts +7 -1
- package/lib/mjs/components/number/Number.js +11 -0
- package/lib/mjs/components/number/fixtures/comp10.d.ts +18 -0
- package/lib/mjs/components/number/fixtures/comp10.js +19 -0
- package/lib/mjs/components/number/fixtures/index.d.ts +2 -1
- package/lib/mjs/components/number/fixtures/index.js +2 -1
- package/lib/mjs/components/panel/Panel.d.ts +1 -0
- package/lib/mjs/components/panel/Panel.js +1 -0
- package/lib/mjs/components/time/Time.d.ts +2 -2
- package/lib/mjs/components/time/Time.js +3 -2
- package/lib/mjs/components/time/fixtures/comp4.d.ts +166 -0
- package/lib/mjs/components/time/fixtures/comp4.js +169 -0
- package/lib/mjs/components/time/fixtures/index.d.ts +2 -1
- package/lib/mjs/components/time/fixtures/index.js +2 -1
- package/lib/mjs/utils/conditionOperators/IsEmptyValue.js +3 -3
- package/lib/mjs/utils/conditionOperators/IsEqualTo.js +1 -1
- package/lib/mjs/utils/utils.d.ts +1 -10
- package/lib/mjs/utils/utils.js +58 -7
- package/package.json +2 -2
package/lib/cjs/utils/utils.d.ts
CHANGED
@@ -56,16 +56,7 @@ export function isMongoId(text: string): boolean;
|
|
56
56
|
* @param {*} rowData - The contextual row data for the component.
|
57
57
|
*/
|
58
58
|
export function checkCalculated(component: import('@formio/core').Component, submission: import('@formio/core').Submission, rowData: any): void;
|
59
|
-
|
60
|
-
* Check if a simple conditional evaluates to true.
|
61
|
-
* @param {import('@formio/core').Component} component - The component to check for the conditional.
|
62
|
-
* @param {import('@formio/core').SimpleConditional} condition - The condition to check.
|
63
|
-
* @param {*} row - The row data for the component.
|
64
|
-
* @param {*} data - The full submission data.
|
65
|
-
* @param {import('../../src/components/_classes/component/Component').Component} instance - The instance of the component.
|
66
|
-
* @returns {boolean} - TRUE if the condition is true; FALSE otherwise.
|
67
|
-
*/
|
68
|
-
export function checkSimpleConditional(component: import('@formio/core').Component, condition: import('@formio/core').SimpleConditional, row: any, data: any, instance: any): boolean;
|
59
|
+
export function checkSimpleConditional(component: any, condition: any, row: any, data: any, instance: any): boolean;
|
69
60
|
/**
|
70
61
|
* Returns a components normalized value.
|
71
62
|
* @param {string} compPath - The full path to the component.
|
package/lib/cjs/utils/utils.js
CHANGED
@@ -190,6 +190,44 @@ exports.checkCalculated = checkCalculated;
|
|
190
190
|
* @param {import('../../src/components/_classes/component/Component').Component} instance - The instance of the component.
|
191
191
|
* @returns {boolean} - TRUE if the condition is true; FALSE otherwise.
|
192
192
|
*/
|
193
|
+
function getConditionalPathsRecursive(conditionPaths, data) {
|
194
|
+
let currentGlobalIndex = 0;
|
195
|
+
const conditionalPathsArray = [];
|
196
|
+
const getConditionalPaths = (data, currentPath = '', localIndex = 0) => {
|
197
|
+
currentPath = currentPath.replace(/^\.+|\.+$/g, '');
|
198
|
+
const currentLocalIndex = localIndex;
|
199
|
+
const currentData = lodash_1.default.get(data, currentPath);
|
200
|
+
if (Array.isArray(currentData) && currentData.filter(Boolean).length > 0) {
|
201
|
+
if (currentData.some(element => typeof element !== 'object')) {
|
202
|
+
return;
|
203
|
+
}
|
204
|
+
const hasInnerDataArray = currentData.find(x => Array.isArray(x[conditionPaths[currentLocalIndex]]));
|
205
|
+
if (hasInnerDataArray) {
|
206
|
+
currentData.forEach((_, indexOutside) => {
|
207
|
+
const innerCompDataPath = `${currentPath}[${indexOutside}].${conditionPaths[currentLocalIndex]}`;
|
208
|
+
getConditionalPaths(data, innerCompDataPath, currentLocalIndex + 1);
|
209
|
+
});
|
210
|
+
}
|
211
|
+
else {
|
212
|
+
currentData.forEach((x, index) => {
|
213
|
+
if (!lodash_1.default.isNil(x[conditionPaths[currentLocalIndex]])) {
|
214
|
+
const compDataPath = `${currentPath}[${index}].${conditionPaths[currentLocalIndex]}`;
|
215
|
+
conditionalPathsArray.push(compDataPath);
|
216
|
+
}
|
217
|
+
});
|
218
|
+
}
|
219
|
+
}
|
220
|
+
else {
|
221
|
+
if (!conditionPaths[currentGlobalIndex]) {
|
222
|
+
return;
|
223
|
+
}
|
224
|
+
currentGlobalIndex = currentGlobalIndex + 1;
|
225
|
+
getConditionalPaths(data, `${currentPath}.${conditionPaths[currentGlobalIndex - 1]}`, currentGlobalIndex);
|
226
|
+
}
|
227
|
+
};
|
228
|
+
getConditionalPaths(data);
|
229
|
+
return conditionalPathsArray;
|
230
|
+
}
|
193
231
|
function checkSimpleConditional(component, condition, row, data, instance) {
|
194
232
|
if (condition.when) {
|
195
233
|
const value = getComponentActualValue(condition.when, data, row);
|
@@ -211,23 +249,37 @@ function checkSimpleConditional(component, condition, row, data, instance) {
|
|
211
249
|
return true;
|
212
250
|
}
|
213
251
|
const conditionsResult = lodash_1.default.map(conditions, (cond) => {
|
252
|
+
var _a, _b;
|
214
253
|
const { value: comparedValue, operator, component: conditionComponentPath } = cond;
|
215
254
|
if (!conditionComponentPath) {
|
216
255
|
return true;
|
217
256
|
}
|
218
|
-
const
|
219
|
-
const
|
220
|
-
|
221
|
-
|
222
|
-
|
257
|
+
const splittedConditionPath = conditionComponentPath.split('.');
|
258
|
+
const conditionalPaths = ((_a = instance === null || instance === void 0 ? void 0 : instance.parent) === null || _a === void 0 ? void 0 : _a.type) === 'datagrid' || ((_b = instance === null || instance === void 0 ? void 0 : instance.parent) === null || _b === void 0 ? void 0 : _b.type) === 'editgrid' ? [] : getConditionalPathsRecursive(splittedConditionPath, data);
|
259
|
+
if (conditionalPaths.length > 0) {
|
260
|
+
return conditionalPaths.map((path) => {
|
261
|
+
const value = getComponentActualValue(path, data, row);
|
262
|
+
const ConditionOperator = conditionOperators_1.default[operator];
|
263
|
+
return ConditionOperator
|
264
|
+
? new ConditionOperator().getResult({ value, comparedValue, instance, component, conditionComponentPath })
|
265
|
+
: true;
|
266
|
+
});
|
267
|
+
}
|
268
|
+
else {
|
269
|
+
const value = getComponentActualValue(conditionComponentPath, data, row);
|
270
|
+
const СonditionOperator = conditionOperators_1.default[operator];
|
271
|
+
return СonditionOperator
|
272
|
+
? new СonditionOperator().getResult({ value, comparedValue, instance, component, conditionComponentPath })
|
273
|
+
: true;
|
274
|
+
}
|
223
275
|
});
|
224
276
|
let result = false;
|
225
277
|
switch (conjunction) {
|
226
278
|
case 'any':
|
227
|
-
result = lodash_1.default.some(conditionsResult, res => !!res);
|
279
|
+
result = lodash_1.default.some(conditionsResult.flat(), res => !!res);
|
228
280
|
break;
|
229
281
|
default:
|
230
|
-
result = lodash_1.default.every(conditionsResult, res => !!res);
|
282
|
+
result = lodash_1.default.every(conditionsResult.flat(), res => !!res);
|
231
283
|
}
|
232
284
|
return show ? result : !result;
|
233
285
|
}
|
package/lib/mjs/Webform.js
CHANGED
@@ -1125,7 +1125,7 @@ export default class Webform extends NestedDataComponent {
|
|
1125
1125
|
});
|
1126
1126
|
const displayedErrors = [];
|
1127
1127
|
if (errors.length) {
|
1128
|
-
errors = _.uniqBy(errors, (error) => error.message);
|
1128
|
+
errors = _.uniqBy(errors, (error) => [error.message, error.component?.id, error.context?.path].join());
|
1129
1129
|
const createListItem = (message, index) => {
|
1130
1130
|
const err = errors[index];
|
1131
1131
|
const messageFromIndex = !_.isUndefined(index) && errors && errors[index];
|
@@ -892,7 +892,11 @@ export default class WebformBuilder extends Component {
|
|
892
892
|
if (form && form.properties) {
|
893
893
|
this.options.properties = form.properties;
|
894
894
|
}
|
895
|
-
|
895
|
+
let keyboardActionsEnabled = _.get(this.options, 'keyboardBuilder', false) || this.options.properties?.keyboardBuilder;
|
896
|
+
if (typeof keyboardActionsEnabled === 'string') {
|
897
|
+
keyboardActionsEnabled = keyboardActionsEnabled === 'true';
|
898
|
+
}
|
899
|
+
this.keyboardActionsEnabled = keyboardActionsEnabled;
|
896
900
|
const isShowSubmitButton = !this.options.noDefaultSubmitButton
|
897
901
|
&& (!form.components.length || !form.components.find(comp => comp.key === 'submit'));
|
898
902
|
// Ensure there is at least a submit button.
|
@@ -1044,7 +1048,10 @@ export default class WebformBuilder extends Component {
|
|
1044
1048
|
'calculateValue',
|
1045
1049
|
'conditional',
|
1046
1050
|
'customConditional',
|
1047
|
-
'id'
|
1051
|
+
'id',
|
1052
|
+
'fields.day.required',
|
1053
|
+
'fields.month.required',
|
1054
|
+
'fields.year.required',
|
1048
1055
|
]));
|
1049
1056
|
const parentComponent = defaultValueComponent.parent;
|
1050
1057
|
let tabIndex = -1;
|
@@ -1231,6 +1238,7 @@ export default class WebformBuilder extends Component {
|
|
1231
1238
|
helplinks: this.helplinks,
|
1232
1239
|
}));
|
1233
1240
|
this.editForm.attach(this.componentEdit.querySelector(`[${this._referenceAttributeName}="editForm"]`));
|
1241
|
+
this.updateComponent(this.editForm.submission.data ?? component);
|
1234
1242
|
this.attachEditComponentControls(component, parent, isNew, original, ComponentClass);
|
1235
1243
|
});
|
1236
1244
|
});
|
@@ -211,11 +211,12 @@ export default class NestedComponent extends Field {
|
|
211
211
|
calculateValue(data: any, flags: any, row: any): any;
|
212
212
|
isLastPage(): boolean;
|
213
213
|
isValid(data: any, dirty: any): any;
|
214
|
-
validationProcessor({ scope, data, row, instance }: {
|
214
|
+
validationProcessor({ scope, data, row, instance, component }: {
|
215
215
|
scope: any;
|
216
216
|
data: any;
|
217
217
|
row: any;
|
218
218
|
instance: any;
|
219
|
+
component: any;
|
219
220
|
}, flags: any): void;
|
220
221
|
/**
|
221
222
|
* Perform a validation on all child components of this nested component.
|
@@ -677,8 +677,11 @@ export default class NestedComponent extends Field {
|
|
677
677
|
isValid(data, dirty) {
|
678
678
|
return this.getComponents().reduce((valid, comp) => comp.isValid(data, dirty) && valid, super.isValid(data, dirty));
|
679
679
|
}
|
680
|
-
validationProcessor({ scope, data, row, instance }, flags) {
|
680
|
+
validationProcessor({ scope, data, row, instance, component }, flags) {
|
681
681
|
const { dirty } = flags;
|
682
|
+
if (this.root.hasExtraPages && this.page !== this.root.page) {
|
683
|
+
instance = this.getComponentById(component.id);
|
684
|
+
}
|
682
685
|
if (!instance) {
|
683
686
|
return;
|
684
687
|
}
|
@@ -2,6 +2,7 @@ export default class CurrencyComponent extends NumberComponent {
|
|
2
2
|
constructor(component: any, options: any, data: any);
|
3
3
|
currencyPrefix: any;
|
4
4
|
currencySuffix: any;
|
5
|
+
parseNumber(value: any): number;
|
5
6
|
parseValue(value: any): string | null;
|
6
7
|
addZerosAndFormatValue(value: any): any;
|
7
8
|
stripPrefixSuffix(value: any): any;
|
@@ -27,7 +27,13 @@ export default class NumberComponent extends Input {
|
|
27
27
|
*/
|
28
28
|
createNumberMask(): any;
|
29
29
|
isDecimalAllowed(): any;
|
30
|
-
|
30
|
+
/**
|
31
|
+
* parses a numeric string by removing the delimiters and replacing the decimal separator back to '.' so that it can
|
32
|
+
* be processed by either parseInt or parseFloat
|
33
|
+
* @param {string} value the value to be parsed
|
34
|
+
* @returns {number} a parsed number
|
35
|
+
*/
|
36
|
+
parseNumber(value: string): number;
|
31
37
|
setInputMask(input: any): void;
|
32
38
|
getValueAt(index: any): number | null;
|
33
39
|
setValueAt(index: any, value: any, flags?: {}): void;
|
@@ -89,6 +89,11 @@ export default class NumberComponent extends Input {
|
|
89
89
|
}
|
90
90
|
get defaultValue() {
|
91
91
|
let defaultValue = super.defaultValue;
|
92
|
+
if (typeof defaultValue === 'string') {
|
93
|
+
// Default value may be a string or have custom thousands separators or decimal symbols, so we need to call
|
94
|
+
// parseNumber on it
|
95
|
+
defaultValue = this.parseNumber(defaultValue);
|
96
|
+
}
|
92
97
|
if (!defaultValue && this.component.defaultValue === 0) {
|
93
98
|
defaultValue = this.component.defaultValue;
|
94
99
|
}
|
@@ -100,6 +105,12 @@ export default class NumberComponent extends Input {
|
|
100
105
|
isDecimalAllowed() {
|
101
106
|
return _.get(this.component, 'allowDecimal', !(this.component.validate && this.component.validate.integer));
|
102
107
|
}
|
108
|
+
/**
|
109
|
+
* parses a numeric string by removing the delimiters and replacing the decimal separator back to '.' so that it can
|
110
|
+
* be processed by either parseInt or parseFloat
|
111
|
+
* @param {string} value the value to be parsed
|
112
|
+
* @returns {number} a parsed number
|
113
|
+
*/
|
103
114
|
parseNumber(value) {
|
104
115
|
// Remove delimiters and convert decimal separator to dot.
|
105
116
|
value = value.split(this.delimiter).join('').replace(this.decimalSeparator, '.');
|
@@ -0,0 +1,18 @@
|
|
1
|
+
declare namespace _default {
|
2
|
+
let components: {
|
3
|
+
label: string;
|
4
|
+
applyMaskOn: string;
|
5
|
+
mask: boolean;
|
6
|
+
tableView: boolean;
|
7
|
+
delimiter: boolean;
|
8
|
+
requireDecimal: boolean;
|
9
|
+
inputFormat: string;
|
10
|
+
truncateMultipleSpaces: boolean;
|
11
|
+
validateWhenHidden: boolean;
|
12
|
+
key: string;
|
13
|
+
type: string;
|
14
|
+
input: boolean;
|
15
|
+
defaultValue: string;
|
16
|
+
}[];
|
17
|
+
}
|
18
|
+
export default _default;
|
@@ -0,0 +1,19 @@
|
|
1
|
+
export default {
|
2
|
+
components: [
|
3
|
+
{
|
4
|
+
"label": "Number",
|
5
|
+
"applyMaskOn": "change",
|
6
|
+
"mask": false,
|
7
|
+
"tableView": false,
|
8
|
+
"delimiter": false,
|
9
|
+
"requireDecimal": false,
|
10
|
+
"inputFormat": "plain",
|
11
|
+
"truncateMultipleSpaces": false,
|
12
|
+
"validateWhenHidden": false,
|
13
|
+
"key": "number",
|
14
|
+
"type": "number",
|
15
|
+
"input": true,
|
16
|
+
"defaultValue": "123.23"
|
17
|
+
}
|
18
|
+
]
|
19
|
+
};
|
@@ -7,4 +7,5 @@ import comp6 from './comp6';
|
|
7
7
|
import comp7 from './comp7';
|
8
8
|
import comp8 from './comp8';
|
9
9
|
import comp9 from './comp9';
|
10
|
-
|
10
|
+
import comp10 from './comp10';
|
11
|
+
export { comp1, comp2, comp3, comp4, comp5, comp6, comp7, comp8, comp9, comp10 };
|
@@ -7,4 +7,5 @@ import comp6 from './comp6';
|
|
7
7
|
import comp7 from './comp7';
|
8
8
|
import comp8 from './comp8';
|
9
9
|
import comp9 from './comp9';
|
10
|
-
|
10
|
+
import comp10 from './comp10';
|
11
|
+
export { comp1, comp2, comp3, comp4, comp5, comp6, comp7, comp8, comp9, comp10 };
|
@@ -1,12 +1,12 @@
|
|
1
1
|
export default class TimeComponent extends TextFieldComponent {
|
2
|
-
rawData:
|
2
|
+
rawData: any;
|
3
3
|
get dataFormat(): any;
|
4
4
|
get skipMaskValidation(): boolean;
|
5
5
|
isNotCompleteInput(value: any): any;
|
6
6
|
removeValue(index: any): void;
|
7
7
|
resetRawData(index: any): void;
|
8
8
|
setRawValue(value: any, index: any): void;
|
9
|
-
getRawValue(index: any):
|
9
|
+
getRawValue(index: any): any;
|
10
10
|
getValueAt(index: any): any;
|
11
11
|
setValueAt(index: any, value: any): void;
|
12
12
|
getStringAsValue(view: any): any;
|
@@ -31,7 +31,8 @@ export default class TimeComponent extends TextFieldComponent {
|
|
31
31
|
this.component.inputType = isEdgeBrowser && edgeVersion <= 18
|
32
32
|
? 'text'
|
33
33
|
: (this.component.inputType || 'time');
|
34
|
-
|
34
|
+
// If default value is given then the raw data needs to be set
|
35
|
+
this.rawData = this.component.multiple ? [] : this.getValueAsString(this.defaultValue) || this.emptyValue;
|
35
36
|
}
|
36
37
|
static get builderInfo() {
|
37
38
|
return {
|
@@ -62,7 +63,7 @@ export default class TimeComponent extends TextFieldComponent {
|
|
62
63
|
return value;
|
63
64
|
}
|
64
65
|
get validationValue() {
|
65
|
-
if (Array.isArray(this.rawData) && !this.rawData.length || !this.rawData) {
|
66
|
+
if ((Array.isArray(this.rawData) && !this.rawData.length) || !this.rawData) {
|
66
67
|
return this.dataValue;
|
67
68
|
}
|
68
69
|
return this.rawData;
|
@@ -0,0 +1,166 @@
|
|
1
|
+
declare namespace _default {
|
2
|
+
let type: string;
|
3
|
+
let display: string;
|
4
|
+
let components: {
|
5
|
+
title: string;
|
6
|
+
breadcrumbClickable: boolean;
|
7
|
+
buttonSettings: {
|
8
|
+
previous: boolean;
|
9
|
+
cancel: boolean;
|
10
|
+
next: boolean;
|
11
|
+
};
|
12
|
+
navigateOnEnter: boolean;
|
13
|
+
saveOnEnter: boolean;
|
14
|
+
scrollToTop: boolean;
|
15
|
+
collapsible: boolean;
|
16
|
+
key: string;
|
17
|
+
type: string;
|
18
|
+
label: string;
|
19
|
+
components: {
|
20
|
+
label: string;
|
21
|
+
disabled: boolean;
|
22
|
+
alwaysEnabled: boolean;
|
23
|
+
tableView: boolean;
|
24
|
+
defaultValue: string;
|
25
|
+
key: string;
|
26
|
+
type: string;
|
27
|
+
input: boolean;
|
28
|
+
inputMask: string;
|
29
|
+
hideOnChildrenHidden: boolean;
|
30
|
+
id: string;
|
31
|
+
placeholder: string;
|
32
|
+
prefix: string;
|
33
|
+
customClass: string;
|
34
|
+
suffix: string;
|
35
|
+
multiple: boolean;
|
36
|
+
protected: boolean;
|
37
|
+
unique: boolean;
|
38
|
+
persistent: boolean;
|
39
|
+
hidden: boolean;
|
40
|
+
clearOnHide: boolean;
|
41
|
+
refreshOn: string;
|
42
|
+
redrawOn: string;
|
43
|
+
modalEdit: boolean;
|
44
|
+
dataGridLabel: boolean;
|
45
|
+
labelPosition: string;
|
46
|
+
description: string;
|
47
|
+
errorLabel: string;
|
48
|
+
tooltip: string;
|
49
|
+
hideLabel: boolean;
|
50
|
+
tabindex: string;
|
51
|
+
autofocus: boolean;
|
52
|
+
dbIndex: boolean;
|
53
|
+
customDefaultValue: string;
|
54
|
+
calculateValue: string;
|
55
|
+
calculateServer: boolean;
|
56
|
+
widget: {
|
57
|
+
type: string;
|
58
|
+
};
|
59
|
+
attributes: {};
|
60
|
+
validateOn: string;
|
61
|
+
validate: {
|
62
|
+
required: boolean;
|
63
|
+
custom: string;
|
64
|
+
customPrivate: boolean;
|
65
|
+
strictDateValidation: boolean;
|
66
|
+
multiple: boolean;
|
67
|
+
unique: boolean;
|
68
|
+
minLength: string;
|
69
|
+
maxLength: string;
|
70
|
+
pattern: string;
|
71
|
+
};
|
72
|
+
conditional: {
|
73
|
+
show: null;
|
74
|
+
when: null;
|
75
|
+
eq: string;
|
76
|
+
};
|
77
|
+
overlay: {
|
78
|
+
style: string;
|
79
|
+
left: string;
|
80
|
+
top: string;
|
81
|
+
width: string;
|
82
|
+
height: string;
|
83
|
+
};
|
84
|
+
allowCalculateOverride: boolean;
|
85
|
+
encrypted: boolean;
|
86
|
+
showCharCount: boolean;
|
87
|
+
showWordCount: boolean;
|
88
|
+
properties: {};
|
89
|
+
allowMultipleMasks: boolean;
|
90
|
+
addons: never[];
|
91
|
+
mask: boolean;
|
92
|
+
inputType: string;
|
93
|
+
inputFormat: string;
|
94
|
+
displayMask: string;
|
95
|
+
spellcheck: boolean;
|
96
|
+
truncateMultipleSpaces: boolean;
|
97
|
+
format: string;
|
98
|
+
dataFormat: string;
|
99
|
+
}[];
|
100
|
+
input: boolean;
|
101
|
+
tableView: boolean;
|
102
|
+
id: string;
|
103
|
+
placeholder: string;
|
104
|
+
prefix: string;
|
105
|
+
customClass: string;
|
106
|
+
suffix: string;
|
107
|
+
multiple: boolean;
|
108
|
+
defaultValue: null;
|
109
|
+
protected: boolean;
|
110
|
+
unique: boolean;
|
111
|
+
persistent: boolean;
|
112
|
+
hidden: boolean;
|
113
|
+
clearOnHide: boolean;
|
114
|
+
refreshOn: string;
|
115
|
+
redrawOn: string;
|
116
|
+
modalEdit: boolean;
|
117
|
+
dataGridLabel: boolean;
|
118
|
+
labelPosition: string;
|
119
|
+
description: string;
|
120
|
+
errorLabel: string;
|
121
|
+
tooltip: string;
|
122
|
+
hideLabel: boolean;
|
123
|
+
tabindex: string;
|
124
|
+
disabled: boolean;
|
125
|
+
autofocus: boolean;
|
126
|
+
dbIndex: boolean;
|
127
|
+
customDefaultValue: string;
|
128
|
+
calculateValue: string;
|
129
|
+
calculateServer: boolean;
|
130
|
+
widget: null;
|
131
|
+
attributes: {};
|
132
|
+
validateOn: string;
|
133
|
+
validate: {
|
134
|
+
required: boolean;
|
135
|
+
custom: string;
|
136
|
+
customPrivate: boolean;
|
137
|
+
strictDateValidation: boolean;
|
138
|
+
multiple: boolean;
|
139
|
+
unique: boolean;
|
140
|
+
};
|
141
|
+
conditional: {
|
142
|
+
show: null;
|
143
|
+
when: null;
|
144
|
+
eq: string;
|
145
|
+
};
|
146
|
+
overlay: {
|
147
|
+
style: string;
|
148
|
+
left: string;
|
149
|
+
top: string;
|
150
|
+
width: string;
|
151
|
+
height: string;
|
152
|
+
};
|
153
|
+
allowCalculateOverride: boolean;
|
154
|
+
encrypted: boolean;
|
155
|
+
showCharCount: boolean;
|
156
|
+
showWordCount: boolean;
|
157
|
+
properties: {};
|
158
|
+
allowMultipleMasks: boolean;
|
159
|
+
addons: never[];
|
160
|
+
tree: boolean;
|
161
|
+
lazyLoad: boolean;
|
162
|
+
theme: string;
|
163
|
+
breadcrumb: string;
|
164
|
+
}[];
|
165
|
+
}
|
166
|
+
export default _default;
|