@formio/js 5.1.0-dev.6039.a838d78 → 5.1.0-dev.6042.18ef5d3
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/Changelog.md +140 -6
- package/dist/formio.form.js +587 -576
- package/dist/formio.form.min.js +1 -1
- package/dist/formio.full.js +609 -598
- package/dist/formio.full.min.js +1 -1
- package/dist/formio.js +45 -12
- package/dist/formio.min.js +1 -1
- package/dist/formio.utils.js +46 -13
- package/dist/formio.utils.min.js +1 -1
- package/lib/cjs/Element.d.ts +2 -1
- package/lib/cjs/Element.js +6 -4
- package/lib/cjs/Webform.d.ts +2 -2
- package/lib/cjs/Webform.js +6 -8
- package/lib/cjs/WebformBuilder.js +4 -0
- package/lib/cjs/Wizard.d.ts +1 -0
- package/lib/cjs/Wizard.js +23 -3
- package/lib/cjs/components/_classes/component/Component.d.ts +27 -17
- package/lib/cjs/components/_classes/component/Component.js +124 -70
- package/lib/cjs/components/_classes/component/editForm/Component.edit.data.js +19 -0
- package/lib/cjs/components/_classes/component/editForm/utils.js +1 -1
- package/lib/cjs/components/_classes/list/ListComponent.js +2 -2
- package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +0 -1
- package/lib/cjs/components/_classes/nested/NestedComponent.form.js +13 -0
- package/lib/cjs/components/_classes/nested/NestedComponent.js +10 -18
- package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.d.ts +0 -2
- package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +0 -11
- package/lib/cjs/components/address/Address.d.ts +9 -0
- package/lib/cjs/components/address/Address.js +31 -8
- package/lib/cjs/components/address/editForm/Address.edit.display.d.ts +4 -0
- package/lib/cjs/components/address/editForm/Address.edit.display.js +1 -0
- package/lib/cjs/components/address/editForm/Address.edit.provider.js +8 -8
- package/lib/cjs/components/content/editForm/Content.edit.display.js +8 -0
- package/lib/cjs/components/currency/editForm/Currency.edit.display.js +12 -0
- package/lib/cjs/components/datagrid/DataGrid.js +0 -3
- package/lib/cjs/components/datamap/DataMap.js +2 -6
- package/lib/cjs/components/datetime/editForm/DateTime.edit.validation.d.ts +66 -15
- package/lib/cjs/components/datetime/editForm/DateTime.edit.validation.js +68 -47
- package/lib/cjs/components/day/editForm/Day.edit.display.js +8 -0
- package/lib/cjs/components/editgrid/EditGrid.js +3 -13
- package/lib/cjs/components/email/editForm/Email.edit.display.js +12 -0
- package/lib/cjs/components/fieldset/editForm/Fieldset.edit.display.js +8 -0
- package/lib/cjs/components/file/File.js +7 -2
- package/lib/cjs/components/file/editForm/File.edit.file.d.ts +13 -0
- package/lib/cjs/components/file/editForm/File.edit.file.js +1 -0
- package/lib/cjs/components/form/Form.js +11 -11
- package/lib/cjs/components/hidden/editForm/Hidden.edit.display.js +8 -0
- package/lib/cjs/components/html/HTML.js +1 -2
- package/lib/cjs/components/html/editForm/HTML.edit.display.js +8 -0
- package/lib/cjs/components/number/editForm/Number.edit.display.js +12 -0
- package/lib/cjs/components/password/editForm/Password.edit.display.js +13 -1
- package/lib/cjs/components/phonenumber/PhoneNumber.form.js +9 -1
- package/lib/cjs/components/radio/Radio.js +1 -1
- package/lib/cjs/components/select/Select.js +1 -1
- package/lib/cjs/components/select/editForm/Select.edit.data.d.ts +68 -110
- package/lib/cjs/components/select/editForm/Select.edit.data.js +2 -37
- package/lib/cjs/components/selectboxes/SelectBoxes.js +3 -0
- package/lib/cjs/components/survey/Survey.js +1 -1
- package/lib/cjs/components/tabs/Tabs.js +1 -0
- package/lib/cjs/components/tabs/editForm/Tabs.edit.display.js +8 -0
- package/lib/cjs/components/textarea/TextArea.js +9 -1
- package/lib/cjs/components/textarea/editForm/TextArea.edit.display.js +12 -0
- package/lib/cjs/components/unknown/Unknown.form.d.ts +2 -1
- package/lib/cjs/components/unknown/Unknown.form.js +13 -9
- package/lib/cjs/components/url/editForm/Url.edit.display.js +12 -0
- package/lib/cjs/components/well/editForm/Well.edit.display.js +8 -0
- package/lib/cjs/formio.form.js +2 -2
- package/lib/cjs/providers/storage/uploadAdapter.js +5 -3
- package/lib/cjs/translations/en.d.ts +1 -234
- package/lib/cjs/translations/en.js +4 -2
- package/lib/cjs/utils/formUtils.d.ts +2 -2
- package/lib/cjs/utils/utils.d.ts +0 -8
- package/lib/cjs/utils/utils.js +3 -23
- package/lib/mjs/Element.d.ts +2 -1
- package/lib/mjs/Element.js +6 -4
- package/lib/mjs/Webform.d.ts +2 -2
- package/lib/mjs/Webform.js +6 -8
- package/lib/mjs/WebformBuilder.js +4 -0
- package/lib/mjs/Wizard.d.ts +1 -0
- package/lib/mjs/Wizard.js +22 -2
- package/lib/mjs/components/_classes/component/Component.d.ts +27 -17
- package/lib/mjs/components/_classes/component/Component.js +125 -71
- package/lib/mjs/components/_classes/component/editForm/Component.edit.data.js +19 -0
- package/lib/mjs/components/_classes/component/editForm/utils.js +1 -1
- package/lib/mjs/components/_classes/list/ListComponent.js +2 -2
- package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +0 -1
- package/lib/mjs/components/_classes/nested/NestedComponent.form.js +13 -0
- package/lib/mjs/components/_classes/nested/NestedComponent.js +10 -18
- package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.d.ts +0 -2
- package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +0 -11
- package/lib/mjs/components/address/Address.d.ts +9 -0
- package/lib/mjs/components/address/Address.js +31 -8
- package/lib/mjs/components/address/editForm/Address.edit.display.d.ts +4 -0
- package/lib/mjs/components/address/editForm/Address.edit.display.js +1 -0
- package/lib/mjs/components/address/editForm/Address.edit.provider.js +8 -8
- package/lib/mjs/components/content/editForm/Content.edit.display.js +8 -0
- package/lib/mjs/components/currency/editForm/Currency.edit.display.js +12 -0
- package/lib/mjs/components/datagrid/DataGrid.js +0 -3
- package/lib/mjs/components/datamap/DataMap.js +2 -6
- package/lib/mjs/components/datetime/editForm/DateTime.edit.validation.d.ts +66 -15
- package/lib/mjs/components/datetime/editForm/DateTime.edit.validation.js +68 -47
- package/lib/mjs/components/day/editForm/Day.edit.display.js +8 -0
- package/lib/mjs/components/editgrid/EditGrid.js +3 -12
- package/lib/mjs/components/email/editForm/Email.edit.display.js +12 -0
- package/lib/mjs/components/fieldset/editForm/Fieldset.edit.display.js +8 -0
- package/lib/mjs/components/file/File.js +7 -2
- package/lib/mjs/components/file/editForm/File.edit.file.d.ts +13 -0
- package/lib/mjs/components/file/editForm/File.edit.file.js +1 -0
- package/lib/mjs/components/form/Form.js +11 -11
- package/lib/mjs/components/hidden/editForm/Hidden.edit.display.js +8 -0
- package/lib/mjs/components/html/HTML.js +1 -2
- package/lib/mjs/components/html/editForm/HTML.edit.display.js +8 -0
- package/lib/mjs/components/number/editForm/Number.edit.display.js +12 -0
- package/lib/mjs/components/password/editForm/Password.edit.display.js +13 -1
- package/lib/mjs/components/phonenumber/PhoneNumber.form.js +9 -1
- package/lib/mjs/components/radio/Radio.js +1 -1
- package/lib/mjs/components/select/Select.js +1 -1
- package/lib/mjs/components/select/editForm/Select.edit.data.d.ts +68 -110
- package/lib/mjs/components/select/editForm/Select.edit.data.js +2 -37
- package/lib/mjs/components/selectboxes/SelectBoxes.js +3 -0
- package/lib/mjs/components/survey/Survey.js +1 -1
- package/lib/mjs/components/tabs/Tabs.js +1 -0
- package/lib/mjs/components/tabs/editForm/Tabs.edit.display.js +8 -0
- package/lib/mjs/components/textarea/TextArea.js +9 -1
- package/lib/mjs/components/textarea/editForm/TextArea.edit.display.js +12 -0
- package/lib/mjs/components/unknown/Unknown.form.d.ts +2 -1
- package/lib/mjs/components/unknown/Unknown.form.js +13 -9
- package/lib/mjs/components/url/editForm/Url.edit.display.js +12 -0
- package/lib/mjs/components/well/editForm/Well.edit.display.js +8 -0
- package/lib/mjs/formio.form.js +1 -1
- package/lib/mjs/providers/storage/uploadAdapter.js +5 -3
- package/lib/mjs/translations/en.d.ts +1 -234
- package/lib/mjs/translations/en.js +3 -47
- package/lib/mjs/utils/formUtils.d.ts +2 -2
- package/lib/mjs/utils/utils.d.ts +0 -8
- package/lib/mjs/utils/utils.js +2 -21
- package/package.json +2 -2
- package/lib/cjs/i18n.d.ts +0 -13
- package/lib/cjs/i18n.js +0 -19
- package/lib/cjs/utils/i18n.d.ts +0 -19
- package/lib/cjs/utils/i18n.js +0 -120
- package/lib/mjs/i18n.d.ts +0 -13
- package/lib/mjs/i18n.js +0 -14
- package/lib/mjs/utils/i18n.d.ts +0 -19
- package/lib/mjs/utils/i18n.js +0 -112
@@ -11,35 +11,44 @@ exports.default = [
|
|
11
11
|
tooltip: 'Enables to use input for moment functions instead of calendar.'
|
12
12
|
},
|
13
13
|
{
|
14
|
-
|
15
|
-
|
14
|
+
label: 'Minimum Date',
|
15
|
+
tooltip: "The minimum date that can be picked. You can also use Moment.js functions. For example: moment().subtract(10, 'days')",
|
16
|
+
applyMaskOn: 'change',
|
16
17
|
key: 'datePicker.minDate',
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
18
|
+
logic: [
|
19
|
+
{
|
20
|
+
name: 'check input mode',
|
21
|
+
trigger: {
|
22
|
+
type: 'javascript',
|
23
|
+
javascript: "if (component.datePicker && component.datePicker.minDate && component.datePicker.minDate.indexOf('moment') !== -1) {\r\n result = false;\r\n}\r\nelse {\r\n result = !data.enableMinDateInput;\r\n}",
|
24
|
+
},
|
25
|
+
actions: [
|
26
|
+
{
|
27
|
+
name: 'change component',
|
28
|
+
type: 'mergeComponentSchema',
|
29
|
+
schemaDefinition: "schema = {\n type: 'datetime',\n label: 'Use calendar to set minDate',\n enableDate: true,\n enableTime: true,\n tooltip: 'Enables to use calendar to set date.',\n widget: {\n type: 'calendar',\n displayInTimezone: 'viewer',\n locale: 'en',\n useLocaleSettings: false,\n allowInput: true,\n mode: 'single',\n enableTime: true,\n noCalendar: false,\n format: 'yyyy-MM-dd hh:mm a',\n hourIncrement: 1,\n minuteIncrement: 1,\n time_24hr: false,\n disableWeekends: false,\n disableWeekdays: false,\n maxDate: null,\n },\n};",
|
30
|
+
},
|
31
|
+
],
|
32
|
+
},
|
33
|
+
{
|
34
|
+
name: 'clear value',
|
35
|
+
trigger: {
|
36
|
+
type: 'event',
|
37
|
+
event: 'componentChange',
|
38
|
+
},
|
39
|
+
actions: [
|
40
|
+
{
|
41
|
+
name: 'reset value',
|
42
|
+
type: 'customAction',
|
43
|
+
customAction: "var isDateInput = instance.component?.type === 'datetime';\nvar enableInput = data.enableMinDateInput;\nvar allowReset = result[0].component && result[0].component.key === 'enableMinDateInput' && !result[0].flags?.fromSubmission;\nif(((enableInput && isDateInput) || (!enableInput && !isDateInput)) && allowReset) {\n instance.resetValue()\n}\n",
|
44
|
+
},
|
45
|
+
],
|
46
|
+
},
|
47
|
+
],
|
29
48
|
type: 'textfield',
|
30
49
|
input: true,
|
31
|
-
enableTime: false,
|
32
|
-
key: 'datePicker.minDate',
|
33
50
|
skipMerge: true,
|
34
|
-
label: 'Minimum Date',
|
35
51
|
weight: 10,
|
36
|
-
tooltip: 'The minimum date that can be picked. You can also use Moment.js functions. For example: \n \n moment().subtract(10, \'days\')',
|
37
|
-
customConditional({ data, component }) {
|
38
|
-
if (component.datePicker && component.datePicker.minDate && component.datePicker.minDate.indexOf('moment') !== -1) {
|
39
|
-
return true;
|
40
|
-
}
|
41
|
-
return data.enableMinDateInput;
|
42
|
-
},
|
43
52
|
},
|
44
53
|
{
|
45
54
|
type: 'checkbox',
|
@@ -51,34 +60,46 @@ exports.default = [
|
|
51
60
|
tooltip: 'Enables to use input for moment functions instead of calendar.'
|
52
61
|
},
|
53
62
|
{
|
54
|
-
|
55
|
-
|
63
|
+
label: 'Maximum Date',
|
64
|
+
tooltip: "The maximum date that can be picked. You can also use Moment.js functions. For example: moment().add(10, 'days')",
|
65
|
+
applyMaskOn: 'change',
|
66
|
+
tableView: true,
|
67
|
+
validateWhenHidden: false,
|
56
68
|
key: 'datePicker.maxDate',
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
+
logic: [
|
70
|
+
{
|
71
|
+
name: 'check input mode',
|
72
|
+
trigger: {
|
73
|
+
type: 'javascript',
|
74
|
+
javascript: "if (component.datePicker && component.datePicker.maxDate && component.datePicker.maxDate.indexOf('moment') !== -1) {\r\n result = false;\r\n}\r\nelse {\r\n result = !data.enableMaxDateInput;\r\n}",
|
75
|
+
},
|
76
|
+
actions: [
|
77
|
+
{
|
78
|
+
name: 'change component',
|
79
|
+
type: 'mergeComponentSchema',
|
80
|
+
schemaDefinition: "schema = {\n type: 'datetime',\n label: 'Use calendar to set maxDate',\n enableDate: true,\n enableTime: true,\n tooltip: 'Enables to use calendar to set date.',\n widget: {\n type: 'calendar',\n displayInTimezone: 'viewer',\n locale: 'en',\n useLocaleSettings: false,\n allowInput: true,\n mode: 'single',\n enableTime: true,\n noCalendar: false,\n format: 'yyyy-MM-dd hh:mm a',\n hourIncrement: 1,\n minuteIncrement: 1,\n time_24hr: false,\n disableWeekends: false,\n disableWeekdays: false,\n maxDate: null,\n },\n};",
|
81
|
+
},
|
82
|
+
],
|
83
|
+
},
|
84
|
+
{
|
85
|
+
name: 'clear value',
|
86
|
+
trigger: {
|
87
|
+
type: 'event',
|
88
|
+
event: 'componentChange',
|
89
|
+
},
|
90
|
+
actions: [
|
91
|
+
{
|
92
|
+
name: 'reset value',
|
93
|
+
type: 'customAction',
|
94
|
+
customAction: "var isDateInput = instance.component?.type === 'datetime';\nvar enableInput = data.enableMaxDateInput;\nvar allowReset = result[0].component && result[0].component.key === 'enableMaxDateInput' && !result[0].flags?.fromSubmission;\nif(((enableInput && isDateInput) || (!enableInput && !isDateInput)) && allowReset) {\n instance.resetValue()\n}\n",
|
95
|
+
},
|
96
|
+
],
|
97
|
+
},
|
98
|
+
],
|
69
99
|
type: 'textfield',
|
70
100
|
input: true,
|
71
101
|
enableTime: false,
|
72
|
-
key: 'datePicker.maxDate',
|
73
102
|
skipMerge: true,
|
74
|
-
label: 'Maximum Date',
|
75
|
-
tooltip: 'The maximum date that can be picked. You can also use Moment.js functions. For example: \n \n moment().add(10, \'days\')',
|
76
103
|
weight: 20,
|
77
|
-
customConditional({ data, component }) {
|
78
|
-
if (component.datePicker && component.datePicker.maxDate && component.datePicker.maxDate.indexOf('moment') !== -1) {
|
79
|
-
return true;
|
80
|
-
}
|
81
|
-
return data.enableMaxDateInput;
|
82
|
-
},
|
83
104
|
}
|
84
105
|
];
|
@@ -553,14 +553,6 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
553
553
|
}
|
554
554
|
});
|
555
555
|
}
|
556
|
-
restoreComponentsContext() {
|
557
|
-
this.getComponents().forEach((component) => {
|
558
|
-
var _a;
|
559
|
-
const rowData = this.dataValue[component.rowIndex];
|
560
|
-
const editRowData = (_a = this.editRows[component.rowIndex]) === null || _a === void 0 ? void 0 : _a.data;
|
561
|
-
component.data = rowData || editRowData;
|
562
|
-
});
|
563
|
-
}
|
564
556
|
flattenComponents(rowIndex) {
|
565
557
|
const result = {};
|
566
558
|
this.everyComponent((component) => {
|
@@ -1115,7 +1107,9 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
1115
1107
|
errors.push(...this._errors);
|
1116
1108
|
return false;
|
1117
1109
|
}
|
1118
|
-
|
1110
|
+
// TODO: this is the only place invalidMessage gets called, and it's not clear why it's needed - we already validate the editGrid
|
1111
|
+
// component above with super.checkComponentValidity
|
1112
|
+
const message = this.invalid || this.invalidMessage(data, dirty, false, row, options);
|
1119
1113
|
if (allRowErrors.length && ((_b = this.root) === null || _b === void 0 ? void 0 : _b.submitted) && !message) {
|
1120
1114
|
this._errors = this.setCustomValidity(message, dirty);
|
1121
1115
|
errors.push(...this._errors);
|
@@ -1159,9 +1153,6 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
1159
1153
|
}
|
1160
1154
|
}
|
1161
1155
|
const changed = this.hasChanged(value, this.dataValue);
|
1162
|
-
if (this.parent) {
|
1163
|
-
this.parent.checkComponentConditions();
|
1164
|
-
}
|
1165
1156
|
this.dataValue = value;
|
1166
1157
|
// Refresh editRow data when data changes.
|
1167
1158
|
this.dataValue.forEach((row, rowIndex) => {
|
@@ -1192,7 +1183,6 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
1192
1183
|
this.editRows = this.editRows.slice(0, dataLength);
|
1193
1184
|
this.openWhenEmpty();
|
1194
1185
|
this.updateOnChange(flags, changed);
|
1195
|
-
this.checkData();
|
1196
1186
|
this.changeState(changed, flags);
|
1197
1187
|
return changed;
|
1198
1188
|
}
|
@@ -9,6 +9,18 @@ exports.default = [
|
|
9
9
|
key: 'allowMultipleMasks',
|
10
10
|
ignore: true,
|
11
11
|
},
|
12
|
+
{
|
13
|
+
key: 'inputMasks',
|
14
|
+
ignore: true
|
15
|
+
},
|
16
|
+
{
|
17
|
+
key: 'widget.type',
|
18
|
+
ignore: true
|
19
|
+
},
|
20
|
+
{
|
21
|
+
key: 'widget',
|
22
|
+
ignore: true
|
23
|
+
},
|
12
24
|
{
|
13
25
|
key: 'showWordCount',
|
14
26
|
ignore: true
|
@@ -905,14 +905,17 @@ class FileComponent extends Field_1.default {
|
|
905
905
|
}
|
906
906
|
uploadFile(fileToSync) {
|
907
907
|
return __awaiter(this, void 0, void 0, function* () {
|
908
|
-
|
908
|
+
const filePromise = this.fileService.uploadFile(fileToSync.storage, fileToSync.file, fileToSync.name, fileToSync.dir,
|
909
909
|
// Progress callback
|
910
|
-
this.updateProgress.bind(this, fileToSync), fileToSync.url, fileToSync.options, fileToSync.fileKey, fileToSync.groupPermissions, fileToSync.groupResourceId, () => {
|
910
|
+
this.updateProgress.bind(this, fileToSync), fileToSync.url, fileToSync.options, fileToSync.fileKey, fileToSync.groupPermissions, fileToSync.groupResourceId, () => {
|
911
|
+
this.emit('fileUploadingStart', filePromise);
|
912
|
+
},
|
911
913
|
// Abort upload callback
|
912
914
|
(abort) => this.abortUploads.push({
|
913
915
|
id: fileToSync.id,
|
914
916
|
abort,
|
915
917
|
}), this.getMultipartOptions(fileToSync));
|
918
|
+
return yield filePromise;
|
916
919
|
});
|
917
920
|
}
|
918
921
|
upload() {
|
@@ -934,6 +937,7 @@ class FileComponent extends Field_1.default {
|
|
934
937
|
fileToSync.message = this.t('succefullyUploaded');
|
935
938
|
fileInfo.originalName = fileToSync.originalName;
|
936
939
|
fileInfo.hash = fileToSync.hash;
|
940
|
+
this.emit('fileUploadingEnd', Promise.resolve(fileInfo));
|
937
941
|
}
|
938
942
|
catch (response) {
|
939
943
|
fileToSync.status = 'error';
|
@@ -943,6 +947,7 @@ class FileComponent extends Field_1.default {
|
|
943
947
|
: response.type === 'abort'
|
944
948
|
? this.t('Request was aborted')
|
945
949
|
: response.toString();
|
950
|
+
this.emit('fileUploadingEnd', Promise.reject(response));
|
946
951
|
this.emit('fileUploadError', {
|
947
952
|
fileToSync,
|
948
953
|
response,
|
@@ -16,6 +16,7 @@ declare const _default: ({
|
|
16
16
|
components?: undefined;
|
17
17
|
rows?: undefined;
|
18
18
|
editor?: undefined;
|
19
|
+
as?: undefined;
|
19
20
|
optionsLabelPosition?: undefined;
|
20
21
|
inline?: undefined;
|
21
22
|
defaultValue?: undefined;
|
@@ -45,6 +46,7 @@ declare const _default: ({
|
|
45
46
|
components?: undefined;
|
46
47
|
rows?: undefined;
|
47
48
|
editor?: undefined;
|
49
|
+
as?: undefined;
|
48
50
|
optionsLabelPosition?: undefined;
|
49
51
|
inline?: undefined;
|
50
52
|
defaultValue?: undefined;
|
@@ -91,6 +93,7 @@ declare const _default: ({
|
|
91
93
|
data?: undefined;
|
92
94
|
rows?: undefined;
|
93
95
|
editor?: undefined;
|
96
|
+
as?: undefined;
|
94
97
|
optionsLabelPosition?: undefined;
|
95
98
|
inline?: undefined;
|
96
99
|
defaultValue?: undefined;
|
@@ -120,6 +123,7 @@ declare const _default: ({
|
|
120
123
|
components?: undefined;
|
121
124
|
rows?: undefined;
|
122
125
|
editor?: undefined;
|
126
|
+
as?: undefined;
|
123
127
|
optionsLabelPosition?: undefined;
|
124
128
|
inline?: undefined;
|
125
129
|
defaultValue?: undefined;
|
@@ -149,6 +153,7 @@ declare const _default: ({
|
|
149
153
|
components?: undefined;
|
150
154
|
rows?: undefined;
|
151
155
|
editor?: undefined;
|
156
|
+
as?: undefined;
|
152
157
|
optionsLabelPosition?: undefined;
|
153
158
|
inline?: undefined;
|
154
159
|
defaultValue?: undefined;
|
@@ -160,6 +165,7 @@ declare const _default: ({
|
|
160
165
|
tooltip: string;
|
161
166
|
rows: number;
|
162
167
|
editor: string;
|
168
|
+
as: string;
|
163
169
|
input: boolean;
|
164
170
|
weight: number;
|
165
171
|
placeholder: string;
|
@@ -207,6 +213,7 @@ declare const _default: ({
|
|
207
213
|
components?: undefined;
|
208
214
|
rows?: undefined;
|
209
215
|
editor?: undefined;
|
216
|
+
as?: undefined;
|
210
217
|
optionsLabelPosition?: undefined;
|
211
218
|
inline?: undefined;
|
212
219
|
defaultValue?: undefined;
|
@@ -227,6 +234,7 @@ declare const _default: ({
|
|
227
234
|
components?: undefined;
|
228
235
|
rows?: undefined;
|
229
236
|
editor?: undefined;
|
237
|
+
as?: undefined;
|
230
238
|
optionsLabelPosition?: undefined;
|
231
239
|
inline?: undefined;
|
232
240
|
defaultValue?: undefined;
|
@@ -247,6 +255,7 @@ declare const _default: ({
|
|
247
255
|
components?: undefined;
|
248
256
|
rows?: undefined;
|
249
257
|
editor?: undefined;
|
258
|
+
as?: undefined;
|
250
259
|
optionsLabelPosition?: undefined;
|
251
260
|
inline?: undefined;
|
252
261
|
defaultValue?: undefined;
|
@@ -276,6 +285,7 @@ declare const _default: ({
|
|
276
285
|
components?: undefined;
|
277
286
|
rows?: undefined;
|
278
287
|
editor?: undefined;
|
288
|
+
as?: undefined;
|
279
289
|
optionsLabelPosition?: undefined;
|
280
290
|
inline?: undefined;
|
281
291
|
defaultValue?: undefined;
|
@@ -305,6 +315,7 @@ declare const _default: ({
|
|
305
315
|
components?: undefined;
|
306
316
|
rows?: undefined;
|
307
317
|
editor?: undefined;
|
318
|
+
as?: undefined;
|
308
319
|
optionsLabelPosition?: undefined;
|
309
320
|
inline?: undefined;
|
310
321
|
defaultValue?: undefined;
|
@@ -332,6 +343,7 @@ declare const _default: ({
|
|
332
343
|
components?: undefined;
|
333
344
|
rows?: undefined;
|
334
345
|
editor?: undefined;
|
346
|
+
as?: undefined;
|
335
347
|
} | {
|
336
348
|
type: string;
|
337
349
|
input: boolean;
|
@@ -353,6 +365,7 @@ declare const _default: ({
|
|
353
365
|
tableView?: undefined;
|
354
366
|
rows?: undefined;
|
355
367
|
editor?: undefined;
|
368
|
+
as?: undefined;
|
356
369
|
optionsLabelPosition?: undefined;
|
357
370
|
inline?: undefined;
|
358
371
|
defaultValue?: undefined;
|
@@ -115,6 +115,10 @@ class FormComponent extends Component_1.default {
|
|
115
115
|
get emptyValue() {
|
116
116
|
return { data: {} };
|
117
117
|
}
|
118
|
+
// In order for the subform values to set properly, we must always say that nested forms have a default value.
|
119
|
+
get hasDefaultValue() {
|
120
|
+
return true;
|
121
|
+
}
|
118
122
|
get ready() {
|
119
123
|
return this.subFormReady || Promise.resolve();
|
120
124
|
}
|
@@ -448,7 +452,7 @@ class FormComponent extends Component_1.default {
|
|
448
452
|
loadSubForm(fromAttach, beforeSubmit) {
|
449
453
|
var _a, _b, _c, _d, _e;
|
450
454
|
const loadHiddenForm = beforeSubmit && !this.component.clearOnHide;
|
451
|
-
if (this.builderMode || (this.conditionallyHidden && !loadHiddenForm) || (this.isSubFormLazyLoad() && !fromAttach)) {
|
455
|
+
if (this.builderMode || (this.conditionallyHidden() && !loadHiddenForm) || (this.isSubFormLazyLoad() && !fromAttach)) {
|
452
456
|
return Promise.resolve();
|
453
457
|
}
|
454
458
|
if (this.hasLoadedForm && !this.isRevisionChanged &&
|
@@ -520,7 +524,7 @@ class FormComponent extends Component_1.default {
|
|
520
524
|
* @returns {*|boolean} - TRUE if the subform should be submitted, FALSE if it should not.
|
521
525
|
*/
|
522
526
|
get shouldSubmit() {
|
523
|
-
return this.subFormReady && (!this.component.hasOwnProperty('reference') || this.component.reference) &&
|
527
|
+
return this.subFormReady && (!this.component.hasOwnProperty('reference') || this.component.reference) && !this.shouldConditionallyClear();
|
524
528
|
}
|
525
529
|
/**
|
526
530
|
* Returns the data for the subform.
|
@@ -592,20 +596,16 @@ class FormComponent extends Component_1.default {
|
|
592
596
|
return Promise.resolve(this.dataValue);
|
593
597
|
}
|
594
598
|
// we need to load a hidden form (when clearOnHide is disabled) in order to get and submit (if needed) its data
|
595
|
-
const loadHiddenForm = !this.
|
596
|
-
if ((this.isSubFormLazyLoad() || loadHiddenForm) && !this.subFormLoading) {
|
599
|
+
const loadHiddenForm = !this.component.clearOnHide;
|
600
|
+
if ((this.isSubFormLazyLoad() || loadHiddenForm) && !this.subFormLoading && !this.subForm) {
|
597
601
|
return this.createSubForm(true, true)
|
598
|
-
.then(this.submitSubForm(false))
|
599
|
-
.then(() =>
|
600
|
-
return this.dataValue;
|
601
|
-
})
|
602
|
+
.then(() => this.submitSubForm(false))
|
603
|
+
.then(() => this.dataValue)
|
602
604
|
.then(() => super.beforeSubmit());
|
603
605
|
}
|
604
606
|
else {
|
605
607
|
return this.submitSubForm(false)
|
606
|
-
.then(() =>
|
607
|
-
return this.dataValue;
|
608
|
-
})
|
608
|
+
.then(() => this.dataValue)
|
609
609
|
.then(() => super.beforeSubmit());
|
610
610
|
}
|
611
611
|
}
|
@@ -58,8 +58,7 @@ class HTMLComponent extends Component_1.default {
|
|
58
58
|
super.checkRefreshOn(changed);
|
59
59
|
let visible;
|
60
60
|
if (this.hasCondition()) {
|
61
|
-
|
62
|
-
visible = !this.conditionallyHidden;
|
61
|
+
visible = !this.conditionallyHidden();
|
63
62
|
}
|
64
63
|
else {
|
65
64
|
visible = !this.component.hidden;
|
@@ -13,6 +13,18 @@ exports.default = [
|
|
13
13
|
key: 'allowMultipleMasks',
|
14
14
|
ignore: true
|
15
15
|
},
|
16
|
+
{
|
17
|
+
key: 'inputMasks',
|
18
|
+
ignore: true
|
19
|
+
},
|
20
|
+
{
|
21
|
+
key: 'widget.type',
|
22
|
+
ignore: true
|
23
|
+
},
|
24
|
+
{
|
25
|
+
key: 'widget',
|
26
|
+
ignore: true
|
27
|
+
},
|
16
28
|
{
|
17
29
|
key: 'showWordCount',
|
18
30
|
ignore: true,
|
@@ -365,7 +365,7 @@ class RadioComponent extends ListComponent_1.default {
|
|
365
365
|
const value = this.dataValue;
|
366
366
|
this.refs.wrapper.forEach((wrapper, index) => {
|
367
367
|
const input = this.refs.input[index];
|
368
|
-
const checked = (input.type === 'checkbox') ? value[input.value] || input.checked : (input.value.toString() === value.toString());
|
368
|
+
const checked = (value === undefined || value === null) ? false : (input.type === 'checkbox') ? value[input.value] || input.checked : (input.value.toString() === value.toString());
|
369
369
|
if (checked) {
|
370
370
|
//add class to container when selected
|
371
371
|
this.addClass(wrapper, this.optionSelectedClass);
|
@@ -1459,7 +1459,7 @@ class SelectComponent extends ListComponent_1.default {
|
|
1459
1459
|
asString(value, options = {}) {
|
1460
1460
|
var _a;
|
1461
1461
|
value = value !== null && value !== void 0 ? value : this.getValue();
|
1462
|
-
if (options.modalPreview || this.inDataTable) {
|
1462
|
+
if (options.modalPreview || this.inDataTable || options.email) {
|
1463
1463
|
if (this.inDataTable) {
|
1464
1464
|
value = this.undoValueTyping(value);
|
1465
1465
|
}
|