@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.
Files changed (62) hide show
  1. package/dist/formio.embed.js +1 -1
  2. package/dist/formio.embed.min.js +1 -1
  3. package/dist/formio.embed.min.js.LICENSE.txt +1 -1
  4. package/dist/formio.form.js +28 -17
  5. package/dist/formio.form.min.js +1 -1
  6. package/dist/formio.form.min.js.LICENSE.txt +1 -1
  7. package/dist/formio.full.js +29 -18
  8. package/dist/formio.full.min.js +1 -1
  9. package/dist/formio.full.min.js.LICENSE.txt +1 -1
  10. package/dist/formio.js +3 -3
  11. package/dist/formio.min.js +1 -1
  12. package/dist/formio.min.js.LICENSE.txt +1 -1
  13. package/dist/formio.utils.js +21 -10
  14. package/dist/formio.utils.min.js +1 -1
  15. package/dist/formio.utils.min.js.LICENSE.txt +1 -1
  16. package/lib/cjs/Webform.js +1 -1
  17. package/lib/cjs/WebformBuilder.js +11 -2
  18. package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +2 -1
  19. package/lib/cjs/components/_classes/nested/NestedComponent.js +4 -1
  20. package/lib/cjs/components/currency/Currency.d.ts +1 -0
  21. package/lib/cjs/components/number/Number.d.ts +7 -1
  22. package/lib/cjs/components/number/Number.js +11 -0
  23. package/lib/cjs/components/number/fixtures/comp10.d.ts +18 -0
  24. package/lib/cjs/components/number/fixtures/comp10.js +21 -0
  25. package/lib/cjs/components/number/fixtures/index.d.ts +2 -1
  26. package/lib/cjs/components/number/fixtures/index.js +3 -1
  27. package/lib/cjs/components/panel/Panel.d.ts +1 -0
  28. package/lib/cjs/components/panel/Panel.js +1 -0
  29. package/lib/cjs/components/time/Time.d.ts +2 -2
  30. package/lib/cjs/components/time/Time.js +3 -2
  31. package/lib/cjs/components/time/fixtures/comp4.d.ts +166 -0
  32. package/lib/cjs/components/time/fixtures/comp4.js +171 -0
  33. package/lib/cjs/components/time/fixtures/index.d.ts +2 -1
  34. package/lib/cjs/components/time/fixtures/index.js +3 -1
  35. package/lib/cjs/utils/conditionOperators/IsEmptyValue.js +4 -3
  36. package/lib/cjs/utils/conditionOperators/IsEqualTo.js +3 -3
  37. package/lib/cjs/utils/utils.d.ts +1 -10
  38. package/lib/cjs/utils/utils.js +59 -7
  39. package/lib/mjs/Webform.js +1 -1
  40. package/lib/mjs/WebformBuilder.js +10 -2
  41. package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +2 -1
  42. package/lib/mjs/components/_classes/nested/NestedComponent.js +4 -1
  43. package/lib/mjs/components/currency/Currency.d.ts +1 -0
  44. package/lib/mjs/components/number/Number.d.ts +7 -1
  45. package/lib/mjs/components/number/Number.js +11 -0
  46. package/lib/mjs/components/number/fixtures/comp10.d.ts +18 -0
  47. package/lib/mjs/components/number/fixtures/comp10.js +19 -0
  48. package/lib/mjs/components/number/fixtures/index.d.ts +2 -1
  49. package/lib/mjs/components/number/fixtures/index.js +2 -1
  50. package/lib/mjs/components/panel/Panel.d.ts +1 -0
  51. package/lib/mjs/components/panel/Panel.js +1 -0
  52. package/lib/mjs/components/time/Time.d.ts +2 -2
  53. package/lib/mjs/components/time/Time.js +3 -2
  54. package/lib/mjs/components/time/fixtures/comp4.d.ts +166 -0
  55. package/lib/mjs/components/time/fixtures/comp4.js +169 -0
  56. package/lib/mjs/components/time/fixtures/index.d.ts +2 -1
  57. package/lib/mjs/components/time/fixtures/index.js +2 -1
  58. package/lib/mjs/utils/conditionOperators/IsEmptyValue.js +3 -3
  59. package/lib/mjs/utils/conditionOperators/IsEqualTo.js +1 -1
  60. package/lib/mjs/utils/utils.d.ts +1 -10
  61. package/lib/mjs/utils/utils.js +58 -7
  62. package/package.json +2 -2
@@ -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.
@@ -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 value = getComponentActualValue(conditionComponentPath, data, row);
219
- const ConditionOperator = conditionOperators_1.default[operator];
220
- return ConditionOperator
221
- ? new ConditionOperator().getResult({ value, comparedValue, instance, component, conditionComponentPath })
222
- : true;
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
  }
@@ -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
- this.keyboardActionsEnabled = _.get(this.options, 'keyboardBuilder', false) || this.options.properties?.keyboardBuilder;
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
- parseNumber(value: any): number;
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
- export { comp1, comp2, comp3, comp4, comp5, comp6, comp7, comp8, comp9 };
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
- export { comp1, comp2, comp3, comp4, comp5, comp6, comp7, comp8, comp9 };
10
+ import comp10 from './comp10';
11
+ export { comp1, comp2, comp3, comp4, comp5, comp6, comp7, comp8, comp9, comp10 };
@@ -4,6 +4,7 @@ export default class PanelComponent extends NestedComponent {
4
4
  icon: string;
5
5
  group: string;
6
6
  documentation: string;
7
+ showPreview: boolean;
7
8
  weight: number;
8
9
  schema: any;
9
10
  };
@@ -22,6 +22,7 @@ export default class PanelComponent extends NestedComponent {
22
22
  icon: 'list-alt',
23
23
  group: 'layout',
24
24
  documentation: '/userguide/form-building/layout-components#panel',
25
+ showPreview: false,
25
26
  weight: 30,
26
27
  schema: PanelComponent.schema()
27
28
  };
@@ -1,12 +1,12 @@
1
1
  export default class TimeComponent extends TextFieldComponent {
2
- rawData: string | never[];
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): string | never[];
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
- this.rawData = this.component.multiple ? [] : this.emptyValue;
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;