@formio/js 5.0.0-rc.69 → 5.0.0-rc.70
Sign up to get free protection for your applications and to get access to all the features.
- 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;
|