@formio/js 5.0.0-dev.5719.d2d4a61 → 5.0.0-dev.5722.6a7e4ac

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.
Files changed (56) hide show
  1. package/Changelog.md +3 -0
  2. package/dist/formio.form.js +6 -6
  3. package/dist/formio.form.min.js +1 -1
  4. package/dist/formio.full.js +7 -7
  5. package/dist/formio.full.min.js +1 -1
  6. package/lib/cjs/Webform.js +1 -1
  7. package/lib/cjs/WebformBuilder.js +2 -0
  8. package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +2 -1
  9. package/lib/cjs/components/_classes/nested/NestedComponent.js +4 -1
  10. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +0 -2
  11. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +29 -50
  12. package/lib/cjs/components/currency/Currency.d.ts +1 -0
  13. package/lib/cjs/components/editgrid/fixtures/index.d.ts +1 -2
  14. package/lib/cjs/components/editgrid/fixtures/index.js +1 -3
  15. package/lib/cjs/components/number/Number.d.ts +7 -1
  16. package/lib/cjs/components/number/Number.js +11 -0
  17. package/lib/cjs/components/number/fixtures/comp10.d.ts +18 -0
  18. package/lib/cjs/components/number/fixtures/comp10.js +21 -0
  19. package/lib/cjs/components/number/fixtures/index.d.ts +2 -1
  20. package/lib/cjs/components/number/fixtures/index.js +3 -1
  21. package/lib/cjs/components/panel/Panel.d.ts +1 -0
  22. package/lib/cjs/components/panel/Panel.js +1 -0
  23. package/lib/cjs/components/time/Time.d.ts +2 -2
  24. package/lib/cjs/components/time/Time.js +3 -2
  25. package/lib/cjs/components/time/fixtures/comp4.d.ts +166 -0
  26. package/lib/cjs/components/time/fixtures/comp4.js +171 -0
  27. package/lib/cjs/components/time/fixtures/index.d.ts +2 -1
  28. package/lib/cjs/components/time/fixtures/index.js +3 -1
  29. package/lib/mjs/Webform.js +1 -1
  30. package/lib/mjs/WebformBuilder.js +1 -0
  31. package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +2 -1
  32. package/lib/mjs/components/_classes/nested/NestedComponent.js +4 -1
  33. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +0 -2
  34. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +29 -51
  35. package/lib/mjs/components/currency/Currency.d.ts +1 -0
  36. package/lib/mjs/components/editgrid/fixtures/index.d.ts +1 -2
  37. package/lib/mjs/components/editgrid/fixtures/index.js +1 -2
  38. package/lib/mjs/components/number/Number.d.ts +7 -1
  39. package/lib/mjs/components/number/Number.js +11 -0
  40. package/lib/mjs/components/number/fixtures/comp10.d.ts +18 -0
  41. package/lib/mjs/components/number/fixtures/comp10.js +19 -0
  42. package/lib/mjs/components/number/fixtures/index.d.ts +2 -1
  43. package/lib/mjs/components/number/fixtures/index.js +2 -1
  44. package/lib/mjs/components/panel/Panel.d.ts +1 -0
  45. package/lib/mjs/components/panel/Panel.js +1 -0
  46. package/lib/mjs/components/time/Time.d.ts +2 -2
  47. package/lib/mjs/components/time/Time.js +3 -2
  48. package/lib/mjs/components/time/fixtures/comp4.d.ts +166 -0
  49. package/lib/mjs/components/time/fixtures/comp4.js +169 -0
  50. package/lib/mjs/components/time/fixtures/index.d.ts +2 -1
  51. package/lib/mjs/components/time/fixtures/index.js +2 -1
  52. package/package.json +1 -1
  53. package/lib/cjs/components/editgrid/fixtures/comp17.d.ts +0 -80
  54. package/lib/cjs/components/editgrid/fixtures/comp17.js +0 -99
  55. package/lib/mjs/components/editgrid/fixtures/comp17.d.ts +0 -80
  56. package/lib/mjs/components/editgrid/fixtures/comp17.js +0 -97
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ "type": "form",
5
+ "display": "wizard",
6
+ "components": [
7
+ {
8
+ "title": "Page 1",
9
+ "breadcrumbClickable": true,
10
+ "buttonSettings": {
11
+ "previous": true,
12
+ "cancel": true,
13
+ "next": true
14
+ },
15
+ "navigateOnEnter": false,
16
+ "saveOnEnter": false,
17
+ "scrollToTop": false,
18
+ "collapsible": false,
19
+ "key": "page1",
20
+ "type": "panel",
21
+ "label": "Page 1",
22
+ "components": [
23
+ {
24
+ "label": "Time",
25
+ "disabled": true,
26
+ "alwaysEnabled": false,
27
+ "tableView": true,
28
+ "defaultValue": "03:03 PM",
29
+ "key": "time1",
30
+ "type": "time",
31
+ "input": true,
32
+ "inputMask": "99:99",
33
+ "hideOnChildrenHidden": false,
34
+ "id": "efw9yyq",
35
+ "placeholder": "",
36
+ "prefix": "",
37
+ "customClass": "",
38
+ "suffix": "",
39
+ "multiple": false,
40
+ "protected": false,
41
+ "unique": false,
42
+ "persistent": true,
43
+ "hidden": false,
44
+ "clearOnHide": true,
45
+ "refreshOn": "",
46
+ "redrawOn": "",
47
+ "modalEdit": false,
48
+ "dataGridLabel": false,
49
+ "labelPosition": "top",
50
+ "description": "",
51
+ "errorLabel": "",
52
+ "tooltip": "",
53
+ "hideLabel": false,
54
+ "tabindex": "",
55
+ "autofocus": false,
56
+ "dbIndex": false,
57
+ "customDefaultValue": "",
58
+ "calculateValue": "",
59
+ "calculateServer": false,
60
+ "widget": {
61
+ "type": "input"
62
+ },
63
+ "attributes": {},
64
+ "validateOn": "change",
65
+ "validate": {
66
+ "required": false,
67
+ "custom": "",
68
+ "customPrivate": false,
69
+ "strictDateValidation": false,
70
+ "multiple": false,
71
+ "unique": false,
72
+ "minLength": "",
73
+ "maxLength": "",
74
+ "pattern": ""
75
+ },
76
+ "conditional": {
77
+ "show": null,
78
+ "when": null,
79
+ "eq": ""
80
+ },
81
+ "overlay": {
82
+ "style": "",
83
+ "left": "",
84
+ "top": "",
85
+ "width": "",
86
+ "height": ""
87
+ },
88
+ "allowCalculateOverride": false,
89
+ "encrypted": false,
90
+ "showCharCount": false,
91
+ "showWordCount": false,
92
+ "properties": {},
93
+ "allowMultipleMasks": false,
94
+ "addons": [],
95
+ "mask": false,
96
+ "inputType": "time",
97
+ "inputFormat": "plain",
98
+ "displayMask": "",
99
+ "spellcheck": true,
100
+ "truncateMultipleSpaces": false,
101
+ "format": "HH:mm",
102
+ "dataFormat": "HH:mm:ss"
103
+ }
104
+ ],
105
+ "input": false,
106
+ "tableView": false,
107
+ "id": "e7vej1d",
108
+ "placeholder": "",
109
+ "prefix": "",
110
+ "customClass": "",
111
+ "suffix": "",
112
+ "multiple": false,
113
+ "defaultValue": null,
114
+ "protected": false,
115
+ "unique": false,
116
+ "persistent": false,
117
+ "hidden": false,
118
+ "clearOnHide": false,
119
+ "refreshOn": "",
120
+ "redrawOn": "",
121
+ "modalEdit": false,
122
+ "dataGridLabel": false,
123
+ "labelPosition": "top",
124
+ "description": "",
125
+ "errorLabel": "",
126
+ "tooltip": "",
127
+ "hideLabel": false,
128
+ "tabindex": "",
129
+ "disabled": false,
130
+ "autofocus": false,
131
+ "dbIndex": false,
132
+ "customDefaultValue": "",
133
+ "calculateValue": "",
134
+ "calculateServer": false,
135
+ "widget": null,
136
+ "attributes": {},
137
+ "validateOn": "change",
138
+ "validate": {
139
+ "required": false,
140
+ "custom": "",
141
+ "customPrivate": false,
142
+ "strictDateValidation": false,
143
+ "multiple": false,
144
+ "unique": false
145
+ },
146
+ "conditional": {
147
+ "show": null,
148
+ "when": null,
149
+ "eq": ""
150
+ },
151
+ "overlay": {
152
+ "style": "",
153
+ "left": "",
154
+ "top": "",
155
+ "width": "",
156
+ "height": ""
157
+ },
158
+ "allowCalculateOverride": false,
159
+ "encrypted": false,
160
+ "showCharCount": false,
161
+ "showWordCount": false,
162
+ "properties": {},
163
+ "allowMultipleMasks": false,
164
+ "addons": [],
165
+ "tree": false,
166
+ "lazyLoad": false,
167
+ "theme": "default",
168
+ "breadcrumb": "default"
169
+ }
170
+ ],
171
+ };
@@ -1,6 +1,7 @@
1
1
  import comp1 from './comp1';
2
2
  import comp2 from './comp2';
3
3
  import comp3 from './comp3';
4
+ import comp4 from './comp4';
4
5
  import timeForm from './timeForm';
5
6
  import timeForm2 from './timeForm2';
6
- export { comp1, comp2, comp3, timeForm, timeForm2 };
7
+ export { comp1, comp2, comp3, comp4, timeForm, timeForm2 };
@@ -3,13 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.timeForm2 = exports.timeForm = exports.comp3 = exports.comp2 = exports.comp1 = void 0;
6
+ exports.timeForm2 = exports.timeForm = exports.comp4 = exports.comp3 = exports.comp2 = exports.comp1 = void 0;
7
7
  const comp1_1 = __importDefault(require("./comp1"));
8
8
  exports.comp1 = comp1_1.default;
9
9
  const comp2_1 = __importDefault(require("./comp2"));
10
10
  exports.comp2 = comp2_1.default;
11
11
  const comp3_1 = __importDefault(require("./comp3"));
12
12
  exports.comp3 = comp3_1.default;
13
+ const comp4_1 = __importDefault(require("./comp4"));
14
+ exports.comp4 = comp4_1.default;
13
15
  const timeForm_1 = __importDefault(require("./timeForm"));
14
16
  exports.timeForm = timeForm_1.default;
15
17
  const timeForm2_1 = __importDefault(require("./timeForm2"));
@@ -1134,7 +1134,7 @@ export default class Webform extends NestedDataComponent {
1134
1134
  });
1135
1135
  const displayedErrors = [];
1136
1136
  if (errors.length) {
1137
- errors = _.uniqBy(errors, (error) => error.message);
1137
+ errors = _.uniqBy(errors, (error) => [error.message, error.component?.id, error.context?.path].join());
1138
1138
  const createListItem = (message, index) => {
1139
1139
  const err = errors[index];
1140
1140
  const messageFromIndex = !_.isUndefined(index) && errors && errors[index];
@@ -1231,6 +1231,7 @@ export default class WebformBuilder extends Component {
1231
1231
  helplinks: this.helplinks,
1232
1232
  }));
1233
1233
  this.editForm.attach(this.componentEdit.querySelector(`[${this._referenceAttributeName}="editForm"]`));
1234
+ this.updateComponent(this.editForm.submission.data ?? component);
1234
1235
  this.attachEditComponentControls(component, parent, isNew, original, ComponentClass);
1235
1236
  });
1236
1237
  });
@@ -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
  }
@@ -12,8 +12,6 @@ export default class NestedArrayComponent extends NestedDataComponent {
12
12
  hasAddButton(): any;
13
13
  getComponent(path: any, fn: any, originalPath: any): any;
14
14
  everyComponent(fn: any, rowIndex: any, options?: {}): void;
15
- _getEmailTableHeader(options: any): string;
16
- _getEmailTableBody(options: any): string;
17
15
  getComponents(rowIndex: any): any;
18
16
  }
19
17
  import NestedDataComponent from '../nesteddata/NestedDataComponent';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  import _ from 'lodash';
3
- import { componentValueTypes, getStringFromComponentPath, isLayoutComponent } from '../../../utils/utils';
3
+ import { componentValueTypes, getStringFromComponentPath } from '../../../utils/utils';
4
4
  import Component from '../component/Component';
5
5
  import NestedDataComponent from '../nesteddata/NestedDataComponent';
6
6
  export default class NestedArrayComponent extends NestedDataComponent {
@@ -145,60 +145,38 @@ export default class NestedArrayComponent extends NestedDataComponent {
145
145
  }
146
146
  });
147
147
  }
148
- _getEmailTableHeader(options) {
149
- let row = '';
150
- const getHeaderCell = (component) => {
151
- if (!component.isInputComponent || !component.visible || component.skipInEmail) {
152
- return '';
153
- }
154
- const label = component.label || component.key;
155
- return `<th style="padding: 5px 10px;">${label}</th>`;
156
- };
157
- const components = this.getComponents(0);
158
- for (const component of components) {
159
- if (component.isInputComponent) {
160
- row += getHeaderCell(component);
161
- }
162
- else if (isLayoutComponent(component) && typeof component.everyComponent === 'function') {
163
- component.everyComponent((comp) => {
164
- row += getHeaderCell(comp);
165
- }, options);
166
- }
167
- }
168
- return `<thead><tr>${row}</tr></thead>`;
169
- }
170
- _getEmailTableBody(options) {
171
- const getBodyCell = (component) => {
172
- if (!component.isInputComponent || !component.visible || component.skipInEmail) {
173
- return '';
174
- }
175
- return `<td style="padding: 5px 10px;">${component.getView(component.dataValue, options)}</td>`;
176
- };
177
- const rows = [];
178
- for (const { components } of this.iteratableRows) {
179
- let row = '';
180
- for (const component of components) {
181
- if (component.isInputComponent) {
182
- row += getBodyCell(component);
183
- }
184
- else if (isLayoutComponent(component) && typeof component.everyComponent === 'function') {
185
- component.everyComponent((comp) => {
186
- row += getBodyCell(comp);
187
- }, options);
188
- }
189
- }
190
- rows.push(`<tr>${row}</tr>`);
191
- }
192
- return `<tbody>${rows.join('')}</tbody>`;
193
- }
194
148
  getValueAsString(value, options) {
195
149
  if (options?.email) {
196
- return `
150
+ let result = (`
197
151
  <table border="1" style="width:100%">
198
- ${this._getEmailTableHeader(options)}
199
- ${this._getEmailTableBody(options)}
152
+ <thead>
153
+ <tr>
154
+ `);
155
+ this.component.components?.forEach((component) => {
156
+ const label = component.label || component.key;
157
+ result += `<th style="padding: 5px 10px;">${label}</th>`;
158
+ });
159
+ result += (`
160
+ </tr>
161
+ </thead>
162
+ <tbody>
163
+ `);
164
+ this.iteratableRows.forEach(({ components }) => {
165
+ result += '<tr>';
166
+ _.each(components, (component) => {
167
+ result += '<td style="padding:5px 10px;">';
168
+ if (component.isInputComponent && component.visible && !component.skipInEmail) {
169
+ result += component.getView(component.dataValue, options);
170
+ }
171
+ result += '</td>';
172
+ });
173
+ result += '</tr>';
174
+ });
175
+ result += (`
176
+ </tbody>
200
177
  </table>
201
- `;
178
+ `);
179
+ return result;
202
180
  }
203
181
  if (!value || !value.length) {
204
182
  return '';
@@ -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;
@@ -14,9 +14,8 @@ import comp7 from './comp7';
14
14
  import comp8 from './comp8';
15
15
  import comp9 from './comp9';
16
16
  import comp16 from './comp16';
17
- import comp17 from './comp17';
18
17
  import compOpenWhenEmpty from './comp-openWhenEmpty';
19
18
  import withOpenWhenEmptyAndConditions from './comp-with-conditions-and-openWhenEmpty';
20
19
  import compWithCustomDefaultValue from './comp-with-custom-default-value';
21
20
  import compTestEvents from './comp-test-events';
22
- export { comp1, comp2, comp3, comp10, comp11, comp12, comp13, comp14, comp15, comp4, comp5, comp6, comp7, comp8, comp9, comp16, comp17, compOpenWhenEmpty, withOpenWhenEmptyAndConditions, compWithCustomDefaultValue, compTestEvents };
21
+ export { comp1, comp2, comp3, comp10, comp11, comp12, comp13, comp14, comp15, comp4, comp5, comp6, comp7, comp8, comp9, comp16, compOpenWhenEmpty, withOpenWhenEmptyAndConditions, compWithCustomDefaultValue, compTestEvents };
@@ -14,9 +14,8 @@ import comp13 from './comp13';
14
14
  import comp14 from './comp14';
15
15
  import comp15 from './comp15';
16
16
  import comp16 from './comp16';
17
- import comp17 from './comp17';
18
17
  import withOpenWhenEmptyAndConditions from './comp-with-conditions-and-openWhenEmpty';
19
18
  import compOpenWhenEmpty from './comp-openWhenEmpty';
20
19
  import compWithCustomDefaultValue from './comp-with-custom-default-value';
21
20
  import compTestEvents from './comp-test-events';
22
- export { comp1, comp2, comp3, comp10, comp11, comp12, comp13, comp14, comp15, comp4, comp5, comp6, comp7, comp8, comp9, comp16, comp17, compOpenWhenEmpty, withOpenWhenEmptyAndConditions, compWithCustomDefaultValue, compTestEvents };
21
+ export { comp1, comp2, comp3, comp10, comp11, comp12, comp13, comp14, comp15, comp4, comp5, comp6, comp7, comp8, comp9, comp16, compOpenWhenEmpty, withOpenWhenEmptyAndConditions, compWithCustomDefaultValue, compTestEvents };
@@ -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;