@formio/js 5.4.1 → 5.4.3
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/README.md +11 -5
- package/dist/formio.builder.css +1 -0
- package/dist/formio.builder.min.css +1 -1
- 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.css +1 -0
- package/dist/formio.form.js +137 -115
- package/dist/formio.form.min.css +1 -1
- package/dist/formio.form.min.js +1 -1
- package/dist/formio.form.min.js.LICENSE.txt +2 -2
- package/dist/formio.full.css +1 -0
- package/dist/formio.full.js +161 -139
- package/dist/formio.full.min.css +1 -1
- package/dist/formio.full.min.js +1 -1
- package/dist/formio.full.min.js.LICENSE.txt +2 -2
- package/dist/formio.js +27 -27
- package/dist/formio.min.js +1 -1
- package/dist/formio.min.js.LICENSE.txt +2 -2
- package/dist/formio.utils.js +19 -19
- package/dist/formio.utils.min.js +1 -1
- package/dist/formio.utils.min.js.LICENSE.txt +2 -2
- package/lib/cjs/Element.js +1 -1
- package/lib/cjs/Embed.js +8 -16
- package/lib/cjs/Form.js +4 -4
- package/lib/cjs/Formio.js +2 -9
- package/lib/cjs/InlineEmbed.js +1 -4
- package/lib/cjs/PDF.js +28 -8
- package/lib/cjs/PDFBuilder.js +6 -10
- package/lib/cjs/Webform.d.ts +1 -0
- package/lib/cjs/Webform.js +19 -34
- package/lib/cjs/WebformBuilder.js +27 -68
- package/lib/cjs/Wizard.d.ts +2 -0
- package/lib/cjs/Wizard.js +59 -31
- package/lib/cjs/WizardBuilder.js +5 -15
- package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.form.js +2 -6
- package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.js +3 -9
- package/lib/cjs/addons/index.js +1 -3
- package/lib/cjs/components/_classes/component/Component.d.ts +5 -5
- package/lib/cjs/components/_classes/component/Component.js +60 -132
- package/lib/cjs/components/_classes/component/editForm/Component.edit.data.js +2 -4
- package/lib/cjs/components/_classes/component/editForm/Component.edit.display.js +4 -16
- package/lib/cjs/components/_classes/component/editForm/Component.edit.validation.js +1 -4
- package/lib/cjs/components/_classes/field/Field.js +1 -4
- package/lib/cjs/components/_classes/input/Input.js +2 -2
- package/lib/cjs/components/_classes/list/ListComponent.js +4 -4
- package/lib/cjs/components/_classes/list/editForm/ListComponent.edit.data.js +6 -28
- package/lib/cjs/components/_classes/multivalue/Multivalue.js +8 -26
- package/lib/cjs/components/_classes/nested/NestedComponent.js +1 -4
- package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +5 -9
- package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +1 -3
- package/lib/cjs/components/address/Address.js +10 -30
- package/lib/cjs/components/address/editForm/Address.edit.provider.js +8 -32
- package/lib/cjs/components/alert/Alert.js +3 -6
- package/lib/cjs/components/button/Button.js +10 -17
- package/lib/cjs/components/button/editForm/Button.edit.display.js +8 -32
- package/lib/cjs/components/checkbox/Checkbox.js +4 -10
- package/lib/cjs/components/checkbox/editForm/Checkbox.edit.display.js +2 -8
- package/lib/cjs/components/columns/Columns.js +5 -17
- package/lib/cjs/components/container/Container.js +1 -3
- package/lib/cjs/components/currency/Currency.js +2 -7
- package/lib/cjs/components/datagrid/DataGrid.js +31 -63
- package/lib/cjs/components/datamap/DataMap.js +4 -16
- package/lib/cjs/components/datetime/DateTime.js +2 -6
- package/lib/cjs/components/datetime/editForm/DateTime.edit.display.js +1 -4
- package/lib/cjs/components/day/Day.js +12 -70
- package/lib/cjs/components/day/editForm/Day.edit.day.js +1 -3
- package/lib/cjs/components/day/editForm/Day.edit.month.js +1 -3
- package/lib/cjs/components/editgrid/EditGrid.d.ts +1 -0
- package/lib/cjs/components/editgrid/EditGrid.js +18 -44
- package/lib/cjs/components/editgrid/editForm/EditGrid.edit.display.js +1 -4
- package/lib/cjs/components/file/File.js +52 -75
- package/lib/cjs/components/file/editForm/File.edit.display.js +1 -5
- package/lib/cjs/components/file/editForm/File.edit.file.d.ts +9 -3
- package/lib/cjs/components/file/editForm/File.edit.file.js +27 -52
- package/lib/cjs/components/form/Form.js +5 -7
- package/lib/cjs/components/html/HTML.d.ts +1 -1
- package/lib/cjs/components/html/HTML.js +8 -10
- package/lib/cjs/components/number/Number.js +7 -5
- package/lib/cjs/components/panel/editForm/Panel.edit.display.js +3 -12
- package/lib/cjs/components/password/Password.js +1 -4
- package/lib/cjs/components/radio/Radio.js +17 -17
- package/lib/cjs/components/radio/editForm/Radio.edit.data.js +4 -14
- package/lib/cjs/components/recaptcha/ReCaptcha.js +3 -6
- package/lib/cjs/components/select/Select.js +48 -92
- package/lib/cjs/components/select/editForm/Select.edit.data.js +37 -182
- package/lib/cjs/components/select/editForm/Select.edit.validation.js +1 -9
- package/lib/cjs/components/selectboxes/SelectBoxes.js +3 -6
- package/lib/cjs/components/signature/Signature.d.ts +1 -1
- package/lib/cjs/components/signature/Signature.js +21 -24
- package/lib/cjs/components/signature/editForm/Signature.edit.display.d.ts +4 -10
- package/lib/cjs/components/signature/editForm/Signature.edit.display.js +8 -12
- package/lib/cjs/components/survey/Survey.js +6 -17
- package/lib/cjs/components/survey/editForm/Survey.edit.data.js +4 -12
- package/lib/cjs/components/table/editForm/Table.edit.display.js +3 -3
- package/lib/cjs/components/tabs/Tabs.js +4 -19
- package/lib/cjs/components/tabs/editForm/Tabs.edit.display.js +1 -3
- package/lib/cjs/components/tags/Tags.js +4 -14
- package/lib/cjs/components/textarea/TextArea.js +8 -15
- package/lib/cjs/components/textarea/editForm/TextArea.edit.display.js +14 -56
- package/lib/cjs/components/textfield/TextField.js +4 -4
- package/lib/cjs/components/textfield/editForm/TextField.edit.display.js +2 -8
- package/lib/cjs/components/time/Time.js +1 -4
- package/lib/cjs/components/time/editForm/Time.edit.display.js +1 -4
- package/lib/cjs/formio.form.js +5 -5
- package/lib/cjs/package.json +1 -1
- package/lib/cjs/providers/address/AddressProvider.js +1 -1
- package/lib/cjs/providers/address/GoogleAddressProvider.js +1 -3
- package/lib/cjs/providers/processor/fileProcessor.js +1 -3
- package/lib/cjs/providers/storage/azure.js +5 -6
- package/lib/cjs/providers/storage/indexeddb.js +17 -18
- package/lib/cjs/providers/storage/s3.js +3 -14
- package/lib/cjs/providers/storage/url.js +13 -2
- package/lib/cjs/providers/storage/xhr.js +19 -28
- package/lib/cjs/templates/Templates.js +1 -0
- package/lib/cjs/templates/index.d.ts +1 -0
- package/lib/cjs/translations/en.d.ts +237 -82
- package/lib/cjs/translations/en.js +9 -82
- package/lib/cjs/utils/ChoicesWrapper.js +1 -1
- package/lib/cjs/utils/builder.js +5 -26
- package/lib/cjs/utils/i18n.d.ts +5 -2
- package/lib/cjs/utils/i18n.js +33 -12
- package/lib/cjs/utils/utils.js +37 -47
- package/lib/cjs/widgets/CalendarWidget.js +2 -6
- package/lib/mjs/Element.js +1 -1
- package/lib/mjs/Embed.js +8 -16
- package/lib/mjs/Form.js +4 -4
- package/lib/mjs/Formio.js +2 -9
- package/lib/mjs/InlineEmbed.js +1 -4
- package/lib/mjs/PDF.js +27 -8
- package/lib/mjs/PDFBuilder.js +6 -10
- package/lib/mjs/Webform.d.ts +1 -0
- package/lib/mjs/Webform.js +19 -31
- package/lib/mjs/WebformBuilder.js +27 -68
- package/lib/mjs/Wizard.d.ts +2 -0
- package/lib/mjs/Wizard.js +54 -27
- package/lib/mjs/WizardBuilder.js +5 -15
- package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.form.js +2 -6
- package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.js +3 -9
- package/lib/mjs/addons/index.js +1 -3
- package/lib/mjs/components/_classes/component/Component.d.ts +5 -5
- package/lib/mjs/components/_classes/component/Component.js +59 -132
- package/lib/mjs/components/_classes/component/editForm/Component.edit.data.js +2 -4
- package/lib/mjs/components/_classes/component/editForm/Component.edit.display.js +4 -16
- package/lib/mjs/components/_classes/component/editForm/Component.edit.validation.js +1 -4
- package/lib/mjs/components/_classes/field/Field.js +1 -4
- package/lib/mjs/components/_classes/input/Input.js +2 -2
- package/lib/mjs/components/_classes/list/ListComponent.js +4 -4
- package/lib/mjs/components/_classes/list/editForm/ListComponent.edit.data.js +6 -28
- package/lib/mjs/components/_classes/multivalue/Multivalue.js +8 -26
- package/lib/mjs/components/_classes/nested/NestedComponent.js +1 -4
- package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +5 -9
- package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +1 -3
- package/lib/mjs/components/address/Address.js +10 -30
- package/lib/mjs/components/address/editForm/Address.edit.provider.js +8 -32
- package/lib/mjs/components/alert/Alert.js +3 -6
- package/lib/mjs/components/button/Button.js +9 -16
- package/lib/mjs/components/button/editForm/Button.edit.display.js +8 -32
- package/lib/mjs/components/checkbox/Checkbox.js +4 -10
- package/lib/mjs/components/checkbox/editForm/Checkbox.edit.display.js +2 -8
- package/lib/mjs/components/columns/Columns.js +5 -17
- package/lib/mjs/components/container/Container.js +1 -3
- package/lib/mjs/components/currency/Currency.js +2 -7
- package/lib/mjs/components/datagrid/DataGrid.js +30 -63
- package/lib/mjs/components/datamap/DataMap.js +12 -18
- package/lib/mjs/components/datetime/DateTime.js +2 -6
- package/lib/mjs/components/datetime/editForm/DateTime.edit.display.js +1 -4
- package/lib/mjs/components/day/Day.js +12 -70
- package/lib/mjs/components/day/editForm/Day.edit.day.js +1 -3
- package/lib/mjs/components/day/editForm/Day.edit.month.js +1 -3
- package/lib/mjs/components/editgrid/EditGrid.d.ts +1 -0
- package/lib/mjs/components/editgrid/EditGrid.js +18 -44
- package/lib/mjs/components/editgrid/editForm/EditGrid.edit.display.js +1 -4
- package/lib/mjs/components/file/File.js +52 -75
- package/lib/mjs/components/file/editForm/File.edit.display.js +1 -5
- package/lib/mjs/components/file/editForm/File.edit.file.d.ts +9 -3
- package/lib/mjs/components/file/editForm/File.edit.file.js +27 -52
- package/lib/mjs/components/form/Form.js +5 -7
- package/lib/mjs/components/html/HTML.d.ts +1 -1
- package/lib/mjs/components/html/HTML.js +8 -10
- package/lib/mjs/components/number/Number.js +7 -5
- package/lib/mjs/components/panel/editForm/Panel.edit.display.js +3 -12
- package/lib/mjs/components/password/Password.js +1 -4
- package/lib/mjs/components/radio/Radio.js +17 -17
- package/lib/mjs/components/radio/editForm/Radio.edit.data.js +4 -14
- package/lib/mjs/components/recaptcha/ReCaptcha.js +3 -6
- package/lib/mjs/components/select/Select.js +51 -95
- package/lib/mjs/components/select/editForm/Select.edit.data.js +37 -182
- package/lib/mjs/components/select/editForm/Select.edit.validation.js +1 -9
- package/lib/mjs/components/selectboxes/SelectBoxes.js +3 -6
- package/lib/mjs/components/signature/Signature.d.ts +1 -1
- package/lib/mjs/components/signature/Signature.js +20 -23
- package/lib/mjs/components/signature/editForm/Signature.edit.display.d.ts +4 -10
- package/lib/mjs/components/signature/editForm/Signature.edit.display.js +6 -12
- package/lib/mjs/components/survey/Survey.js +6 -17
- package/lib/mjs/components/survey/editForm/Survey.edit.data.js +4 -12
- package/lib/mjs/components/table/editForm/Table.edit.display.js +3 -3
- package/lib/mjs/components/tabs/Tabs.js +4 -19
- package/lib/mjs/components/tabs/editForm/Tabs.edit.display.js +1 -3
- package/lib/mjs/components/tags/Tags.js +4 -14
- package/lib/mjs/components/textarea/TextArea.js +8 -15
- package/lib/mjs/components/textarea/editForm/TextArea.edit.display.js +14 -56
- package/lib/mjs/components/textfield/TextField.js +4 -4
- package/lib/mjs/components/textfield/editForm/TextField.edit.display.js +2 -8
- package/lib/mjs/components/time/Time.js +1 -4
- package/lib/mjs/components/time/editForm/Time.edit.display.js +1 -4
- package/lib/mjs/formio.form.js +6 -6
- package/lib/mjs/package.json +1 -1
- package/lib/mjs/providers/address/AddressProvider.js +1 -1
- package/lib/mjs/providers/address/GoogleAddressProvider.js +1 -3
- package/lib/mjs/providers/processor/fileProcessor.js +1 -3
- package/lib/mjs/providers/storage/azure.js +5 -6
- package/lib/mjs/providers/storage/indexeddb.js +17 -18
- package/lib/mjs/providers/storage/s3.js +3 -14
- package/lib/mjs/providers/storage/url.js +13 -2
- package/lib/mjs/providers/storage/xhr.js +19 -32
- package/lib/mjs/templates/Templates.js +1 -0
- package/lib/mjs/templates/index.d.ts +1 -0
- package/lib/mjs/translations/en.d.ts +237 -82
- package/lib/mjs/translations/en.js +88 -0
- package/lib/mjs/utils/ChoicesWrapper.js +1 -1
- package/lib/mjs/utils/builder.js +5 -26
- package/lib/mjs/utils/i18n.d.ts +5 -2
- package/lib/mjs/utils/i18n.js +33 -12
- package/lib/mjs/utils/utils.js +37 -47
- package/lib/mjs/widgets/CalendarWidget.js +2 -6
- package/package.json +6 -4
|
@@ -28,10 +28,7 @@ export default [
|
|
|
28
28
|
tooltip: "The <a href='https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html'>S3 Multipart Upload API</a> is designed to improve the upload experience for larger objects (> 5GB).",
|
|
29
29
|
conditional: {
|
|
30
30
|
json: {
|
|
31
|
-
'===': [
|
|
32
|
-
{ var: 'data.storage' },
|
|
33
|
-
's3',
|
|
34
|
-
],
|
|
31
|
+
'===': [{ var: 'data.storage' }, 's3'],
|
|
35
32
|
},
|
|
36
33
|
},
|
|
37
34
|
},
|
|
@@ -63,10 +60,7 @@ export default [
|
|
|
63
60
|
],
|
|
64
61
|
conditional: {
|
|
65
62
|
json: {
|
|
66
|
-
'===': [
|
|
67
|
-
{ var: 'data.useMultipartUpload' },
|
|
68
|
-
true,
|
|
69
|
-
],
|
|
63
|
+
'===': [{ var: 'data.useMultipartUpload' }, true],
|
|
70
64
|
},
|
|
71
65
|
},
|
|
72
66
|
},
|
|
@@ -80,56 +74,46 @@ export default [
|
|
|
80
74
|
tooltip: "See <a href='https://github.com/danialfarid/ng-file-upload#server-side' target='_blank'>https://github.com/danialfarid/ng-file-upload#server-side</a> for how to set up the server.",
|
|
81
75
|
conditional: {
|
|
82
76
|
json: {
|
|
83
|
-
'===': [
|
|
84
|
-
{ var: 'data.storage' },
|
|
85
|
-
'url',
|
|
86
|
-
],
|
|
77
|
+
'===': [{ var: 'data.storage' }, 'url'],
|
|
87
78
|
},
|
|
88
79
|
},
|
|
89
80
|
},
|
|
90
81
|
{
|
|
91
|
-
type: '
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
label: 'Database',
|
|
82
|
+
type: 'container',
|
|
83
|
+
key: 'options',
|
|
84
|
+
label: 'IndexedDB options',
|
|
95
85
|
weight: 10,
|
|
96
|
-
placeholder: 'Enter the indexeddb database name',
|
|
97
|
-
conditional: {
|
|
98
|
-
json: {
|
|
99
|
-
in: [
|
|
100
|
-
{
|
|
101
|
-
var: 'data.storage',
|
|
102
|
-
},
|
|
103
|
-
[
|
|
104
|
-
'indexeddb',
|
|
105
|
-
],
|
|
106
|
-
],
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
type: 'textfield',
|
|
112
86
|
input: true,
|
|
113
|
-
label: 'Table',
|
|
114
|
-
key: 'options.indexeddbTable',
|
|
115
|
-
weight: 10,
|
|
116
|
-
placeholder: 'Enter the name for indexeddb table',
|
|
117
87
|
conditional: {
|
|
118
88
|
json: {
|
|
119
89
|
in: [
|
|
120
90
|
{
|
|
121
91
|
var: 'data.storage',
|
|
122
92
|
},
|
|
123
|
-
[
|
|
124
|
-
'indexeddb',
|
|
125
|
-
],
|
|
93
|
+
['indexeddb'],
|
|
126
94
|
],
|
|
127
95
|
},
|
|
128
96
|
},
|
|
97
|
+
components: [
|
|
98
|
+
{
|
|
99
|
+
type: 'textfield',
|
|
100
|
+
input: true,
|
|
101
|
+
key: 'indexeddb',
|
|
102
|
+
label: 'Database',
|
|
103
|
+
placeholder: 'Enter the indexeddb database name',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'textfield',
|
|
107
|
+
input: true,
|
|
108
|
+
key: 'indexeddbTable',
|
|
109
|
+
label: 'Table',
|
|
110
|
+
placeholder: 'Enter the name for indexeddb table',
|
|
111
|
+
},
|
|
112
|
+
],
|
|
129
113
|
},
|
|
130
114
|
{
|
|
131
115
|
type: 'textarea',
|
|
132
|
-
key: '
|
|
116
|
+
key: 'urlRequestOptions',
|
|
133
117
|
label: 'Custom request options',
|
|
134
118
|
tooltip: 'Pass your custom xhr options(optional)',
|
|
135
119
|
rows: 5,
|
|
@@ -296,10 +280,7 @@ export default [
|
|
|
296
280
|
weight: 31,
|
|
297
281
|
conditional: {
|
|
298
282
|
json: {
|
|
299
|
-
'===': [
|
|
300
|
-
{ var: 'data.storage' },
|
|
301
|
-
'url',
|
|
302
|
-
],
|
|
283
|
+
'===': [{ var: 'data.storage' }, 'url'],
|
|
303
284
|
},
|
|
304
285
|
},
|
|
305
286
|
},
|
|
@@ -313,10 +294,7 @@ export default [
|
|
|
313
294
|
weight: 40,
|
|
314
295
|
conditional: {
|
|
315
296
|
json: {
|
|
316
|
-
'==': [
|
|
317
|
-
{ var: 'data.image' },
|
|
318
|
-
true,
|
|
319
|
-
],
|
|
297
|
+
'==': [{ var: 'data.image' }, true],
|
|
320
298
|
},
|
|
321
299
|
},
|
|
322
300
|
},
|
|
@@ -338,10 +316,7 @@ export default [
|
|
|
338
316
|
weight: 38,
|
|
339
317
|
conditional: {
|
|
340
318
|
json: {
|
|
341
|
-
'==': [
|
|
342
|
-
{ var: 'data.webcam' },
|
|
343
|
-
true,
|
|
344
|
-
],
|
|
319
|
+
'==': [{ var: 'data.webcam' }, true],
|
|
345
320
|
},
|
|
346
321
|
},
|
|
347
322
|
},
|
|
@@ -29,9 +29,7 @@ export default class FormComponent extends Component {
|
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
static savedValueTypes() {
|
|
32
|
-
return [
|
|
33
|
-
componentValueTypes.object,
|
|
34
|
-
];
|
|
32
|
+
return [componentValueTypes.object];
|
|
35
33
|
}
|
|
36
34
|
init() {
|
|
37
35
|
super.init();
|
|
@@ -215,7 +213,7 @@ export default class FormComponent extends Component {
|
|
|
215
213
|
}
|
|
216
214
|
render() {
|
|
217
215
|
if (this.builderMode) {
|
|
218
|
-
return super.render(this.component.label || '
|
|
216
|
+
return super.render(this.t(this.component.label || 'nestedForm'));
|
|
219
217
|
}
|
|
220
218
|
const subform = this.subForm ? this.subForm.render() : this.renderTemplate('loading');
|
|
221
219
|
return super.render(subform);
|
|
@@ -228,13 +226,13 @@ export default class FormComponent extends Component {
|
|
|
228
226
|
*/
|
|
229
227
|
getValueAsString(value, options) {
|
|
230
228
|
if (!value) {
|
|
231
|
-
return '
|
|
229
|
+
return this.t('noDataProvided');
|
|
232
230
|
}
|
|
233
231
|
if (!value.data && value._id) {
|
|
234
232
|
return value._id;
|
|
235
233
|
}
|
|
236
234
|
if (!value.data || !Object.keys(value.data).length) {
|
|
237
|
-
return '
|
|
235
|
+
return this.t('noDataProvided');
|
|
238
236
|
}
|
|
239
237
|
if (options?.email) {
|
|
240
238
|
let result = `
|
|
@@ -696,7 +694,7 @@ export default class FormComponent extends Component {
|
|
|
696
694
|
: {};
|
|
697
695
|
this.subForm.setUrl(submissionUrl, { ...this.options, ...options });
|
|
698
696
|
this.subForm.loadSubmission().catch((err) => {
|
|
699
|
-
console.error(
|
|
697
|
+
console.error(this.t('subformSubmissionLoadingError', { submissionId: submission._id }), err);
|
|
700
698
|
});
|
|
701
699
|
}
|
|
702
700
|
else {
|
|
@@ -12,7 +12,7 @@ export default class HTMLComponent extends Component {
|
|
|
12
12
|
get content(): any;
|
|
13
13
|
get singleTags(): string[];
|
|
14
14
|
checkRefreshOn(changed: any): void;
|
|
15
|
-
renderContent(): any;
|
|
15
|
+
renderContent(content?: any): any;
|
|
16
16
|
render(): string;
|
|
17
17
|
get dataReady(): any;
|
|
18
18
|
attach(element: any): Promise<void>;
|
|
@@ -49,11 +49,7 @@ export default class HTMLComponent extends Component {
|
|
|
49
49
|
return content;
|
|
50
50
|
}
|
|
51
51
|
get singleTags() {
|
|
52
|
-
return [
|
|
53
|
-
'br',
|
|
54
|
-
'img',
|
|
55
|
-
'hr',
|
|
56
|
-
];
|
|
52
|
+
return ['br', 'img', 'hr'];
|
|
57
53
|
}
|
|
58
54
|
checkRefreshOn(changed) {
|
|
59
55
|
super.checkRefreshOn(changed);
|
|
@@ -70,7 +66,7 @@ export default class HTMLComponent extends Component {
|
|
|
70
66
|
this.setContent(this.element, this.renderContent());
|
|
71
67
|
}
|
|
72
68
|
}
|
|
73
|
-
renderContent() {
|
|
69
|
+
renderContent(content = this.content) {
|
|
74
70
|
const submission = _.get(this.root, 'submission', {});
|
|
75
71
|
return this.renderTemplate('html', {
|
|
76
72
|
component: this.component,
|
|
@@ -86,23 +82,25 @@ export default class HTMLComponent extends Component {
|
|
|
86
82
|
}),
|
|
87
83
|
};
|
|
88
84
|
}),
|
|
89
|
-
content
|
|
85
|
+
content,
|
|
90
86
|
singleTags: this.singleTags,
|
|
91
87
|
});
|
|
92
88
|
}
|
|
93
89
|
render() {
|
|
94
|
-
return super.render(this.renderContent());
|
|
90
|
+
return super.render(this.renderContent(''));
|
|
95
91
|
}
|
|
96
92
|
get dataReady() {
|
|
97
93
|
return this.root?.submissionReady || Promise.resolve();
|
|
98
94
|
}
|
|
99
95
|
attach(element) {
|
|
100
96
|
this.loadRefs(element, { html: 'single' });
|
|
101
|
-
|
|
97
|
+
const setHtmlContent = () => {
|
|
102
98
|
if (this.refs.html) {
|
|
103
99
|
this.setContent(this.refs.html, this.content);
|
|
104
100
|
}
|
|
105
|
-
}
|
|
101
|
+
};
|
|
102
|
+
setHtmlContent();
|
|
103
|
+
this.dataReady.then(setHtmlContent);
|
|
106
104
|
return super.attach(element);
|
|
107
105
|
}
|
|
108
106
|
}
|
|
@@ -47,9 +47,7 @@ export default class NumberComponent extends Input {
|
|
|
47
47
|
}
|
|
48
48
|
static savedValueTypes(schema) {
|
|
49
49
|
schema = schema || {};
|
|
50
|
-
return
|
|
51
|
-
componentValueTypes.number,
|
|
52
|
-
]);
|
|
50
|
+
return getComponentSavedTypes(schema) || [componentValueTypes.number];
|
|
53
51
|
}
|
|
54
52
|
constructor(...args) {
|
|
55
53
|
super(...args);
|
|
@@ -70,7 +68,7 @@ export default class NumberComponent extends Input {
|
|
|
70
68
|
if (this.component.thousandsSeparator ||
|
|
71
69
|
this.options.properties?.thousandsSeparator ||
|
|
72
70
|
this.options.thousandsSeparator) {
|
|
73
|
-
console.warn('
|
|
71
|
+
console.warn(this.t('noDelimiterSet'));
|
|
74
72
|
}
|
|
75
73
|
this.delimiter = '';
|
|
76
74
|
}
|
|
@@ -187,7 +185,11 @@ export default class NumberComponent extends Input {
|
|
|
187
185
|
return null;
|
|
188
186
|
}
|
|
189
187
|
const val = this.refs.input[index].value;
|
|
190
|
-
|
|
188
|
+
const result = val && val !== '-_' ? this.parseNumber(val) : null;
|
|
189
|
+
if (_.isNaN(result)) {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
return result;
|
|
191
193
|
}
|
|
192
194
|
setValueAt(index, value, flags = {}) {
|
|
193
195
|
return super.setValueAt(index, this.formatValue(this.parseValue(value)), flags);
|
|
@@ -87,10 +87,7 @@ export default [
|
|
|
87
87
|
defaultValue: true,
|
|
88
88
|
customConditional({ data = {}, buildingForm = {} }) {
|
|
89
89
|
const formSettings = buildingForm.settings || {};
|
|
90
|
-
return ![
|
|
91
|
-
data.breadcrumb,
|
|
92
|
-
formSettings.wizardBreadcrumbsType,
|
|
93
|
-
].includes('none');
|
|
90
|
+
return ![data.breadcrumb, formSettings.wizardBreadcrumbsType].includes('none');
|
|
94
91
|
},
|
|
95
92
|
},
|
|
96
93
|
{
|
|
@@ -102,10 +99,7 @@ export default [
|
|
|
102
99
|
tooltip: 'Determines if the breadcrumb bar is clickable or not for visited tabs.',
|
|
103
100
|
conditional: {
|
|
104
101
|
json: {
|
|
105
|
-
'===': [
|
|
106
|
-
{ var: 'data.breadcrumbClickable' },
|
|
107
|
-
false,
|
|
108
|
-
],
|
|
102
|
+
'===': [{ var: 'data.breadcrumbClickable' }, false],
|
|
109
103
|
},
|
|
110
104
|
},
|
|
111
105
|
},
|
|
@@ -211,10 +205,7 @@ export default [
|
|
|
211
205
|
input: true,
|
|
212
206
|
conditional: {
|
|
213
207
|
json: {
|
|
214
|
-
'===': [
|
|
215
|
-
{ var: 'data.collapsible' },
|
|
216
|
-
true,
|
|
217
|
-
],
|
|
208
|
+
'===': [{ var: 'data.collapsible' }, true],
|
|
218
209
|
},
|
|
219
210
|
},
|
|
220
211
|
},
|
|
@@ -21,10 +21,7 @@ export default class PasswordComponent extends TextFieldComponent {
|
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
get defaultSchema() {
|
|
24
|
-
return _.omit(PasswordComponent.schema(), [
|
|
25
|
-
'protected',
|
|
26
|
-
'tableView',
|
|
27
|
-
]);
|
|
24
|
+
return _.omit(PasswordComponent.schema(), ['protected', 'tableView']);
|
|
28
25
|
}
|
|
29
26
|
get inputInfo() {
|
|
30
27
|
const info = super.inputInfo;
|
|
@@ -9,9 +9,7 @@ export default class RadioComponent extends ListComponent {
|
|
|
9
9
|
inputType: 'radio',
|
|
10
10
|
label: 'Radio',
|
|
11
11
|
key: 'radio',
|
|
12
|
-
values: [
|
|
13
|
-
{ label: '', value: '' },
|
|
14
|
-
],
|
|
12
|
+
values: [{ label: '', value: '' }],
|
|
15
13
|
data: {
|
|
16
14
|
url: '',
|
|
17
15
|
},
|
|
@@ -61,23 +59,12 @@ export default class RadioComponent extends ListComponent {
|
|
|
61
59
|
return types;
|
|
62
60
|
}
|
|
63
61
|
if (dataType === 'object') {
|
|
64
|
-
return [
|
|
65
|
-
object,
|
|
66
|
-
array,
|
|
67
|
-
];
|
|
62
|
+
return [object, array];
|
|
68
63
|
}
|
|
69
64
|
if (componentValueTypes[dataType]) {
|
|
70
|
-
return [
|
|
71
|
-
componentValueTypes[dataType],
|
|
72
|
-
];
|
|
65
|
+
return [componentValueTypes[dataType]];
|
|
73
66
|
}
|
|
74
|
-
return [
|
|
75
|
-
boolean,
|
|
76
|
-
string,
|
|
77
|
-
number,
|
|
78
|
-
object,
|
|
79
|
-
array,
|
|
80
|
-
];
|
|
67
|
+
return [boolean, string, number, object, array];
|
|
81
68
|
}
|
|
82
69
|
constructor(component, options, data) {
|
|
83
70
|
super(component, options, data);
|
|
@@ -356,6 +343,16 @@ export default class RadioComponent extends ListComponent {
|
|
|
356
343
|
}
|
|
357
344
|
setItems(items) {
|
|
358
345
|
const listData = [];
|
|
346
|
+
// If the items is a string, then parse as JSON.
|
|
347
|
+
if (typeof items == 'string') {
|
|
348
|
+
try {
|
|
349
|
+
items = JSON.parse(items);
|
|
350
|
+
}
|
|
351
|
+
catch (err) {
|
|
352
|
+
console.warn(err.message);
|
|
353
|
+
items = [];
|
|
354
|
+
}
|
|
355
|
+
}
|
|
359
356
|
items?.forEach((item, i) => {
|
|
360
357
|
const valueAtProperty = _.get(item, this.component.valueProperty);
|
|
361
358
|
this.loadedOptions[i] = {
|
|
@@ -415,6 +412,9 @@ export default class RadioComponent extends ListComponent {
|
|
|
415
412
|
if (changed) {
|
|
416
413
|
this.previousValue = this.dataValue;
|
|
417
414
|
}
|
|
415
|
+
if (!this.visible) {
|
|
416
|
+
this.previousValue = this.emptyValue;
|
|
417
|
+
}
|
|
418
418
|
return changed;
|
|
419
419
|
}
|
|
420
420
|
// If they clicked on the radio that is currently selected, it needs to reset the value.
|
|
@@ -18,9 +18,7 @@ export default [
|
|
|
18
18
|
},
|
|
19
19
|
onChange(context) {
|
|
20
20
|
if (context && context.flags && context.flags && context.flags.modified) {
|
|
21
|
-
context.data.values = [
|
|
22
|
-
{ label: '', value: '' },
|
|
23
|
-
];
|
|
21
|
+
context.data.values = [{ label: '', value: '' }];
|
|
24
22
|
}
|
|
25
23
|
},
|
|
26
24
|
},
|
|
@@ -32,9 +30,7 @@ export default [
|
|
|
32
30
|
tooltip: 'The radio button values that can be picked for this field. Values are text submitted with the form data. Labels are text that appears next to the radio buttons on the form.',
|
|
33
31
|
weight: 10,
|
|
34
32
|
reorder: true,
|
|
35
|
-
defaultValue: [
|
|
36
|
-
{ label: '', value: '' },
|
|
37
|
-
],
|
|
33
|
+
defaultValue: [{ label: '', value: '' }],
|
|
38
34
|
components: [
|
|
39
35
|
{
|
|
40
36
|
label: 'Label',
|
|
@@ -73,10 +69,7 @@ export default [
|
|
|
73
69
|
],
|
|
74
70
|
conditional: {
|
|
75
71
|
json: {
|
|
76
|
-
'===': [
|
|
77
|
-
{ var: 'data.dataSrc' },
|
|
78
|
-
'values',
|
|
79
|
-
],
|
|
72
|
+
'===': [{ var: 'data.dataSrc' }, 'values'],
|
|
80
73
|
},
|
|
81
74
|
},
|
|
82
75
|
},
|
|
@@ -104,10 +97,7 @@ export default [
|
|
|
104
97
|
key: 'template',
|
|
105
98
|
conditional: {
|
|
106
99
|
json: {
|
|
107
|
-
'===': [
|
|
108
|
-
{ var: 'data.dataSrc' },
|
|
109
|
-
'url',
|
|
110
|
-
],
|
|
100
|
+
'===': [{ var: 'data.dataSrc' }, 'url'],
|
|
111
101
|
},
|
|
112
102
|
},
|
|
113
103
|
},
|
|
@@ -20,10 +20,7 @@ export default class ReCaptchaComponent extends Component {
|
|
|
20
20
|
static get conditionOperatorsSettings() {
|
|
21
21
|
return {
|
|
22
22
|
...super.conditionOperatorsSettings,
|
|
23
|
-
operators: [
|
|
24
|
-
'isEmpty',
|
|
25
|
-
'isNotEmpty',
|
|
26
|
-
],
|
|
23
|
+
operators: ['isEmpty', 'isNotEmpty'],
|
|
27
24
|
};
|
|
28
25
|
}
|
|
29
26
|
static get serverConditionSettings() {
|
|
@@ -50,7 +47,7 @@ export default class ReCaptchaComponent extends Component {
|
|
|
50
47
|
this.recaptchaApiReady = Formio.requireLibrary('googleRecaptcha', 'grecaptcha', recaptchaApiScriptUrl, true);
|
|
51
48
|
}
|
|
52
49
|
else {
|
|
53
|
-
console.warn('
|
|
50
|
+
console.warn(this.t('noSiteKey'));
|
|
54
51
|
}
|
|
55
52
|
}
|
|
56
53
|
}
|
|
@@ -63,7 +60,7 @@ export default class ReCaptchaComponent extends Component {
|
|
|
63
60
|
async verify(actionName) {
|
|
64
61
|
const siteKey = _get(this.root?.form, 'settings.recaptcha.siteKey');
|
|
65
62
|
if (!siteKey) {
|
|
66
|
-
console.warn('
|
|
63
|
+
console.warn(this.t('noSiteKey'));
|
|
67
64
|
return;
|
|
68
65
|
}
|
|
69
66
|
if (!this.recaptchaApiReady) {
|