@formio/js 5.2.3 → 5.2.4-rc.0
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/dist/formio.builder.css +161 -50
- 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 +158 -49
- package/dist/formio.form.js +152 -108
- package/dist/formio.form.min.css +1 -1
- package/dist/formio.form.min.js +1 -1
- package/dist/formio.form.min.js.LICENSE.txt +1 -1
- package/dist/formio.full.css +161 -50
- package/dist/formio.full.js +401 -227
- package/dist/formio.full.min.css +1 -1
- package/dist/formio.full.min.js +1 -1
- package/dist/formio.full.min.js.LICENSE.txt +1 -1
- package/dist/formio.js +51 -18
- package/dist/formio.min.js +1 -1
- package/dist/formio.min.js.LICENSE.txt +1 -1
- package/dist/formio.utils.js +47 -14
- package/dist/formio.utils.min.js +1 -1
- package/dist/formio.utils.min.js.LICENSE.txt +1 -1
- package/lib/cjs/CDN.js +12 -12
- package/lib/cjs/Element.d.ts +3 -2
- package/lib/cjs/Element.js +27 -21
- package/lib/cjs/Embed.js +74 -40
- package/lib/cjs/EventEmitter.js +1 -1
- package/lib/cjs/Form.d.ts +371 -341
- package/lib/cjs/Form.js +153 -39
- package/lib/cjs/FormBuilder.d.ts +3 -3
- package/lib/cjs/FormBuilder.js +2 -3
- package/lib/cjs/Formio.js +26 -23
- package/lib/cjs/InlineEmbed.js +23 -17
- package/lib/cjs/PDF.d.ts +1 -0
- package/lib/cjs/PDF.js +18 -15
- package/lib/cjs/PDFBuilder.js +51 -36
- package/lib/cjs/Webform.d.ts +8 -366
- package/lib/cjs/Webform.js +176 -235
- package/lib/cjs/WebformBuilder.js +217 -144
- package/lib/cjs/Wizard.js +92 -62
- package/lib/cjs/WizardBuilder.js +27 -19
- package/lib/cjs/addons/FormioAddon.js +1 -1
- package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.form.js +59 -57
- package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.js +24 -16
- package/lib/cjs/addons/index.js +3 -3
- package/lib/cjs/components/Components.js +0 -4
- package/lib/cjs/components/_classes/component/Component.form.js +11 -11
- package/lib/cjs/components/_classes/component/Component.js +298 -179
- package/lib/cjs/components/_classes/component/editForm/Component.edit.addons.js +2 -4
- package/lib/cjs/components/_classes/component/editForm/Component.edit.api.js +5 -5
- package/lib/cjs/components/_classes/component/editForm/Component.edit.conditional.js +9 -11
- package/lib/cjs/components/_classes/component/editForm/Component.edit.data.d.ts +37 -0
- package/lib/cjs/components/_classes/component/editForm/Component.edit.data.js +39 -25
- package/lib/cjs/components/_classes/component/editForm/Component.edit.display.js +47 -29
- package/lib/cjs/components/_classes/component/editForm/Component.edit.layout.js +9 -9
- package/lib/cjs/components/_classes/component/editForm/Component.edit.logic.js +5 -7
- package/lib/cjs/components/_classes/component/editForm/Component.edit.validation.js +37 -34
- package/lib/cjs/components/_classes/component/editForm/utils.js +12 -16
- package/lib/cjs/components/_classes/componentModal/ComponentModal.js +6 -6
- package/lib/cjs/components/_classes/field/Field.js +7 -1
- package/lib/cjs/components/_classes/input/Input.js +30 -26
- package/lib/cjs/components/_classes/list/ListComponent.form.js +1 -1
- package/lib/cjs/components/_classes/list/ListComponent.js +27 -18
- package/lib/cjs/components/_classes/list/editForm/ListComponent.edit.data.js +36 -9
- package/lib/cjs/components/_classes/multivalue/Multivalue.js +32 -13
- package/lib/cjs/components/_classes/nested/NestedComponent.form.js +3 -3
- package/lib/cjs/components/_classes/nested/NestedComponent.js +36 -32
- package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +19 -14
- package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +19 -17
- package/lib/cjs/components/address/Address.js +52 -45
- package/lib/cjs/components/address/editForm/Address.edit.data.js +2 -2
- package/lib/cjs/components/address/editForm/Address.edit.display.js +2 -2
- package/lib/cjs/components/address/editForm/Address.edit.provider.js +53 -11
- package/lib/cjs/components/alert/Alert.js +21 -15
- package/lib/cjs/components/button/Button.form.js +1 -1
- package/lib/cjs/components/button/Button.js +50 -27
- package/lib/cjs/components/button/editForm/Button.edit.display.js +49 -9
- package/lib/cjs/components/checkbox/Checkbox.d.ts +1 -1
- package/lib/cjs/components/checkbox/Checkbox.form.js +3 -3
- package/lib/cjs/components/checkbox/Checkbox.js +28 -20
- package/lib/cjs/components/checkbox/editForm/Checkbox.edit.data.js +1 -1
- package/lib/cjs/components/checkbox/editForm/Checkbox.edit.display.js +13 -3
- package/lib/cjs/components/checkbox/editForm/Checkbox.edit.validation.js +2 -2
- package/lib/cjs/components/columns/Columns.form.js +1 -1
- package/lib/cjs/components/columns/Columns.js +24 -12
- package/lib/cjs/components/columns/editForm/Columns.edit.display.js +17 -17
- package/lib/cjs/components/container/Container.form.js +2 -2
- package/lib/cjs/components/container/Container.js +6 -4
- package/lib/cjs/components/container/editForm/Container.edit.data.js +3 -3
- package/lib/cjs/components/container/editForm/Container.edit.display.js +4 -4
- package/lib/cjs/components/content/Content.form.js +4 -2
- package/lib/cjs/components/content/Content.js +10 -8
- package/lib/cjs/components/content/editForm/Content.edit.display.js +10 -10
- package/lib/cjs/components/currency/Currency.form.js +3 -3
- package/lib/cjs/components/currency/Currency.js +19 -10
- package/lib/cjs/components/currency/editForm/Currency.edit.data.js +5 -5
- package/lib/cjs/components/currency/editForm/Currency.edit.display.js +8 -8
- package/lib/cjs/components/datagrid/DataGrid.form.js +3 -3
- package/lib/cjs/components/datagrid/DataGrid.js +89 -38
- package/lib/cjs/components/datagrid/editForm/DataGrid.edit.data.js +1 -1
- package/lib/cjs/components/datagrid/editForm/DataGrid.edit.display.js +14 -14
- package/lib/cjs/components/datagrid/editForm/DataGrid.edit.validation.js +3 -3
- package/lib/cjs/components/datamap/DataMap.form.js +2 -2
- package/lib/cjs/components/datamap/DataMap.js +44 -31
- package/lib/cjs/components/datamap/editForm/DataMap.edit.data.js +1 -1
- package/lib/cjs/components/datamap/editForm/DataMap.edit.display.js +8 -8
- package/lib/cjs/components/datetime/DateTime.form.js +5 -5
- package/lib/cjs/components/datetime/DateTime.js +30 -15
- package/lib/cjs/components/datetime/editForm/DateTime.edit.data.js +4 -3
- package/lib/cjs/components/datetime/editForm/DateTime.edit.date.js +10 -10
- package/lib/cjs/components/datetime/editForm/DateTime.edit.display.js +22 -17
- package/lib/cjs/components/datetime/editForm/DateTime.edit.time.js +5 -5
- package/lib/cjs/components/datetime/editForm/DateTime.edit.validation.js +3 -3
- package/lib/cjs/components/day/Day.form.js +5 -5
- package/lib/cjs/components/day/Day.js +146 -56
- package/lib/cjs/components/day/editForm/Day.edit.day.js +13 -9
- package/lib/cjs/components/day/editForm/Day.edit.display.js +7 -7
- package/lib/cjs/components/day/editForm/Day.edit.month.js +12 -8
- package/lib/cjs/components/day/editForm/Day.edit.validation.js +7 -7
- package/lib/cjs/components/day/editForm/Day.edit.year.js +8 -8
- package/lib/cjs/components/editgrid/EditGrid.form.js +2 -2
- package/lib/cjs/components/editgrid/EditGrid.js +137 -89
- package/lib/cjs/components/editgrid/editForm/EditGrid.edit.data.js +2 -2
- package/lib/cjs/components/editgrid/editForm/EditGrid.edit.display.js +7 -2
- package/lib/cjs/components/editgrid/editForm/EditGrid.edit.templates.js +16 -16
- package/lib/cjs/components/editgrid/editForm/EditGrid.edit.validation.js +3 -3
- package/lib/cjs/components/email/Email.js +4 -4
- package/lib/cjs/components/email/editForm/Email.edit.display.js +3 -3
- package/lib/cjs/components/email/editForm/Email.edit.validation.js +6 -6
- package/lib/cjs/components/fieldset/Fieldset.form.js +1 -1
- package/lib/cjs/components/fieldset/Fieldset.js +2 -2
- package/lib/cjs/components/fieldset/editForm/Fieldset.edit.display.js +8 -8
- package/lib/cjs/components/file/File.form.js +4 -4
- package/lib/cjs/components/file/File.js +126 -80
- package/lib/cjs/components/file/editForm/File.edit.display.js +9 -5
- package/lib/cjs/components/file/editForm/File.edit.file.d.ts +37 -16
- package/lib/cjs/components/file/editForm/File.edit.file.js +169 -72
- package/lib/cjs/components/file/editForm/File.edit.validation.js +2 -2
- package/lib/cjs/components/form/Form.form.js +3 -3
- package/lib/cjs/components/form/Form.js +67 -51
- package/lib/cjs/components/form/editForm/Form.edit.data.js +1 -3
- package/lib/cjs/components/form/editForm/Form.edit.display.js +6 -7
- package/lib/cjs/components/form/editForm/Form.edit.form.js +11 -9
- package/lib/cjs/components/hidden/Hidden.form.js +4 -4
- package/lib/cjs/components/hidden/Hidden.js +2 -2
- package/lib/cjs/components/hidden/editForm/Hidden.edit.data.js +3 -3
- package/lib/cjs/components/hidden/editForm/Hidden.edit.display.js +10 -10
- package/lib/cjs/components/html/HTML.js +23 -17
- package/lib/cjs/components/html/editForm/HTML.edit.display.js +17 -17
- package/lib/cjs/components/html/editForm/HTML.edit.logic.js +2 -2
- package/lib/cjs/components/number/Number.form.js +3 -3
- package/lib/cjs/components/number/Number.js +27 -11
- package/lib/cjs/components/number/editForm/Number.edit.data.js +3 -3
- package/lib/cjs/components/number/editForm/Number.edit.display.js +4 -4
- package/lib/cjs/components/number/editForm/Number.edit.validation.js +9 -9
- package/lib/cjs/components/panel/Panel.form.js +1 -1
- package/lib/cjs/components/panel/Panel.js +2 -2
- package/lib/cjs/components/panel/editForm/Panel.edit.conditional.js +5 -7
- package/lib/cjs/components/panel/editForm/Panel.edit.display.js +55 -29
- package/lib/cjs/components/password/Password.form.js +3 -3
- package/lib/cjs/components/password/Password.js +5 -2
- package/lib/cjs/components/password/editForm/Password.edit.data.js +11 -11
- package/lib/cjs/components/password/editForm/Password.edit.display.js +3 -3
- package/lib/cjs/components/password/editForm/Password.edit.validation.js +3 -3
- package/lib/cjs/components/phonenumber/PhoneNumber.form.js +8 -8
- package/lib/cjs/components/phonenumber/PhoneNumber.js +3 -3
- package/lib/cjs/components/phonenumber/editForm/PhoneNumber.edit.validation.js +6 -6
- package/lib/cjs/components/radio/Radio.form.js +3 -3
- package/lib/cjs/components/radio/Radio.js +55 -26
- package/lib/cjs/components/radio/editForm/Radio.edit.data.js +23 -9
- package/lib/cjs/components/radio/editForm/Radio.edit.display.js +6 -6
- package/lib/cjs/components/radio/editForm/Radio.edit.validation.js +2 -2
- package/lib/cjs/components/recaptcha/ReCaptcha.form.js +5 -5
- package/lib/cjs/components/recaptcha/ReCaptcha.js +7 -5
- package/lib/cjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +24 -24
- package/lib/cjs/components/select/Select.form.js +3 -3
- package/lib/cjs/components/select/Select.js +235 -129
- package/lib/cjs/components/select/editForm/Select.edit.data.d.ts +1 -1
- package/lib/cjs/components/select/editForm/Select.edit.data.js +191 -57
- package/lib/cjs/components/select/editForm/Select.edit.display.js +2 -2
- package/lib/cjs/components/select/editForm/Select.edit.validation.js +4 -4
- package/lib/cjs/components/selectboxes/SelectBoxes.form.js +3 -3
- package/lib/cjs/components/selectboxes/SelectBoxes.js +31 -15
- package/lib/cjs/components/selectboxes/editForm/SelectBoxes.edit.validation.js +5 -5
- package/lib/cjs/components/signature/Signature.form.js +3 -3
- package/lib/cjs/components/signature/Signature.js +25 -15
- package/lib/cjs/components/signature/editForm/Signature.edit.display.js +19 -10
- package/lib/cjs/components/survey/Survey.form.js +3 -3
- package/lib/cjs/components/survey/Survey.js +30 -17
- package/lib/cjs/components/survey/editForm/Survey.edit.data.js +23 -11
- package/lib/cjs/components/survey/editForm/Survey.edit.display.js +1 -1
- package/lib/cjs/components/survey/editForm/Survey.edit.validation.js +1 -1
- package/lib/cjs/components/table/Table.form.js +1 -1
- package/lib/cjs/components/table/Table.js +7 -5
- package/lib/cjs/components/table/editForm/Table.edit.display.js +22 -22
- package/lib/cjs/components/tabs/Tabs.form.js +1 -1
- package/lib/cjs/components/tabs/Tabs.js +26 -8
- package/lib/cjs/components/tabs/editForm/Tabs.edit.display.js +21 -17
- package/lib/cjs/components/tags/Tags.form.js +1 -1
- package/lib/cjs/components/tags/Tags.js +28 -12
- package/lib/cjs/components/tags/editForm/Tags.edit.data.js +7 -7
- package/lib/cjs/components/textarea/TextArea.form.js +2 -2
- package/lib/cjs/components/textarea/TextArea.js +63 -45
- package/lib/cjs/components/textarea/editForm/TextArea.edit.display.js +96 -72
- package/lib/cjs/components/textarea/editForm/TextArea.edit.validation.js +3 -3
- package/lib/cjs/components/textfield/TextField.form.js +3 -3
- package/lib/cjs/components/textfield/TextField.js +32 -21
- package/lib/cjs/components/textfield/editForm/TextField.edit.data.js +15 -13
- package/lib/cjs/components/textfield/editForm/TextField.edit.display.js +31 -21
- package/lib/cjs/components/textfield/editForm/TextField.edit.validation.js +6 -6
- package/lib/cjs/components/time/Time.js +17 -10
- package/lib/cjs/components/time/editForm/Time.edit.display.js +2 -2
- package/lib/cjs/components/unknown/Unknown.form.js +5 -5
- package/lib/cjs/components/unknown/Unknown.js +2 -2
- package/lib/cjs/components/unknown/editForm/Unknown.edit.display.js +3 -3
- package/lib/cjs/components/url/Url.form.js +3 -3
- package/lib/cjs/components/url/Url.js +2 -2
- package/lib/cjs/components/url/editForm/Url.edit.display.js +3 -3
- package/lib/cjs/components/url/editForm/Url.edit.validation.js +1 -1
- package/lib/cjs/components/well/Well.form.js +1 -1
- package/lib/cjs/components/well/Well.js +2 -2
- package/lib/cjs/components/well/editForm/Well.edit.display.js +10 -10
- package/lib/cjs/formio.form.d.ts +2 -1
- package/lib/cjs/formio.form.js +38 -12
- package/lib/cjs/i18n.d.ts +4 -0
- package/lib/cjs/i18n.js +7 -3
- package/lib/cjs/package.json +1 -1
- package/lib/cjs/providers/address/AddressProvider.js +8 -5
- package/lib/cjs/providers/address/GoogleAddressProvider.d.ts +3 -3
- package/lib/cjs/providers/address/GoogleAddressProvider.js +24 -13
- package/lib/cjs/providers/processor/fileProcessor.js +3 -1
- package/lib/cjs/providers/storage/azure.js +5 -2
- package/lib/cjs/providers/storage/dropbox.js +4 -5
- package/lib/cjs/providers/storage/googleDrive.js +3 -4
- package/lib/cjs/providers/storage/index.js +1 -1
- package/lib/cjs/providers/storage/indexeddb.js +16 -6
- package/lib/cjs/providers/storage/s3.js +17 -6
- package/lib/cjs/providers/storage/uploadAdapter.js +17 -11
- package/lib/cjs/providers/storage/url.js +13 -11
- package/lib/cjs/providers/storage/xhr.js +17 -9
- package/lib/cjs/templates/index.js +1 -1
- package/lib/cjs/translations/de.d.ts +80 -0
- package/lib/cjs/translations/de.js +81 -0
- package/lib/cjs/translations/en.d.ts +0 -2
- package/lib/cjs/translations/en.js +7 -9
- package/lib/cjs/utils/ChoicesWrapper.js +2 -2
- package/lib/cjs/utils/builder.js +31 -7
- package/lib/cjs/utils/calendarUtils.js +7 -5
- package/lib/cjs/utils/conditionOperators/ConditionOperator.js +1 -1
- package/lib/cjs/utils/conditionOperators/DateGreaterThan.js +12 -4
- package/lib/cjs/utils/conditionOperators/IsEmptyValue.js +3 -1
- package/lib/cjs/utils/conditionOperators/IsEqualTo.js +10 -6
- package/lib/cjs/utils/conditionOperators/index.js +1 -1
- package/lib/cjs/utils/formUtils.js +1 -1
- package/lib/cjs/utils/i18n.js +7 -1
- package/lib/cjs/utils/index.d.ts +2 -1
- package/lib/cjs/utils/index.js +2 -2
- package/lib/cjs/utils/utils.d.ts +10 -1
- package/lib/cjs/utils/utils.js +175 -92
- package/lib/cjs/widgets/CalendarWidget.js +66 -49
- package/lib/cjs/widgets/InputWidget.js +6 -4
- package/lib/cjs/widgets/index.js +1 -1
- package/lib/mjs/CDN.js +12 -12
- package/lib/mjs/Element.d.ts +3 -2
- package/lib/mjs/Element.js +27 -21
- package/lib/mjs/Embed.js +76 -42
- package/lib/mjs/EventEmitter.js +1 -1
- package/lib/mjs/Form.d.ts +371 -341
- package/lib/mjs/Form.js +142 -126
- package/lib/mjs/FormBuilder.d.ts +3 -3
- package/lib/mjs/FormBuilder.js +2 -3
- package/lib/mjs/Formio.js +26 -23
- package/lib/mjs/InlineEmbed.js +23 -17
- package/lib/mjs/PDF.d.ts +1 -0
- package/lib/mjs/PDF.js +18 -15
- package/lib/mjs/PDFBuilder.js +51 -36
- package/lib/mjs/Webform.d.ts +8 -366
- package/lib/mjs/Webform.js +183 -250
- package/lib/mjs/WebformBuilder.js +220 -147
- package/lib/mjs/Wizard.js +93 -63
- package/lib/mjs/WizardBuilder.js +27 -19
- package/lib/mjs/addons/FormioAddon.js +1 -1
- package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.form.js +59 -57
- package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.js +24 -16
- package/lib/mjs/addons/index.js +3 -3
- package/lib/mjs/components/Components.js +0 -4
- package/lib/mjs/components/_classes/component/Component.form.js +11 -11
- package/lib/mjs/components/_classes/component/Component.js +303 -184
- package/lib/mjs/components/_classes/component/editForm/Component.edit.addons.js +2 -4
- package/lib/mjs/components/_classes/component/editForm/Component.edit.api.js +5 -5
- package/lib/mjs/components/_classes/component/editForm/Component.edit.conditional.js +9 -11
- package/lib/mjs/components/_classes/component/editForm/Component.edit.data.d.ts +37 -0
- package/lib/mjs/components/_classes/component/editForm/Component.edit.data.js +39 -25
- package/lib/mjs/components/_classes/component/editForm/Component.edit.display.js +47 -29
- package/lib/mjs/components/_classes/component/editForm/Component.edit.layout.js +9 -9
- package/lib/mjs/components/_classes/component/editForm/Component.edit.logic.js +5 -7
- package/lib/mjs/components/_classes/component/editForm/Component.edit.validation.js +37 -34
- package/lib/mjs/components/_classes/component/editForm/utils.js +12 -16
- package/lib/mjs/components/_classes/componentModal/ComponentModal.js +2 -2
- package/lib/mjs/components/_classes/field/Field.js +8 -2
- package/lib/mjs/components/_classes/input/Input.js +27 -23
- package/lib/mjs/components/_classes/list/ListComponent.form.js +1 -1
- package/lib/mjs/components/_classes/list/ListComponent.js +27 -18
- package/lib/mjs/components/_classes/list/editForm/ListComponent.edit.data.js +36 -9
- package/lib/mjs/components/_classes/multivalue/Multivalue.js +32 -13
- package/lib/mjs/components/_classes/nested/NestedComponent.form.js +3 -3
- package/lib/mjs/components/_classes/nested/NestedComponent.js +32 -28
- package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +20 -15
- package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +19 -17
- package/lib/mjs/components/address/Address.js +57 -46
- package/lib/mjs/components/address/editForm/Address.edit.data.js +2 -2
- package/lib/mjs/components/address/editForm/Address.edit.display.js +2 -2
- package/lib/mjs/components/address/editForm/Address.edit.provider.js +53 -11
- package/lib/mjs/components/alert/Alert.js +22 -16
- package/lib/mjs/components/button/Button.form.js +1 -1
- package/lib/mjs/components/button/Button.js +51 -28
- package/lib/mjs/components/button/editForm/Button.edit.display.js +49 -9
- package/lib/mjs/components/checkbox/Checkbox.d.ts +1 -1
- package/lib/mjs/components/checkbox/Checkbox.form.js +3 -3
- package/lib/mjs/components/checkbox/Checkbox.js +29 -21
- package/lib/mjs/components/checkbox/editForm/Checkbox.edit.data.js +1 -1
- package/lib/mjs/components/checkbox/editForm/Checkbox.edit.display.js +13 -3
- package/lib/mjs/components/checkbox/editForm/Checkbox.edit.validation.js +2 -2
- package/lib/mjs/components/columns/Columns.form.js +1 -1
- package/lib/mjs/components/columns/Columns.js +24 -12
- package/lib/mjs/components/columns/editForm/Columns.edit.display.js +17 -17
- package/lib/mjs/components/container/Container.form.js +2 -2
- package/lib/mjs/components/container/Container.js +6 -4
- package/lib/mjs/components/container/editForm/Container.edit.data.js +3 -3
- package/lib/mjs/components/container/editForm/Container.edit.display.js +4 -4
- package/lib/mjs/components/content/Content.form.js +4 -2
- package/lib/mjs/components/content/Content.js +10 -8
- package/lib/mjs/components/content/editForm/Content.edit.display.js +10 -10
- package/lib/mjs/components/currency/Currency.form.js +3 -3
- package/lib/mjs/components/currency/Currency.js +19 -10
- package/lib/mjs/components/currency/editForm/Currency.edit.data.js +5 -5
- package/lib/mjs/components/currency/editForm/Currency.edit.display.js +8 -8
- package/lib/mjs/components/datagrid/DataGrid.form.js +3 -3
- package/lib/mjs/components/datagrid/DataGrid.js +90 -39
- package/lib/mjs/components/datagrid/editForm/DataGrid.edit.data.js +1 -1
- package/lib/mjs/components/datagrid/editForm/DataGrid.edit.display.js +14 -14
- package/lib/mjs/components/datagrid/editForm/DataGrid.edit.validation.js +3 -3
- package/lib/mjs/components/datamap/DataMap.form.js +2 -2
- package/lib/mjs/components/datamap/DataMap.js +44 -31
- package/lib/mjs/components/datamap/editForm/DataMap.edit.data.js +1 -1
- package/lib/mjs/components/datamap/editForm/DataMap.edit.display.js +8 -8
- package/lib/mjs/components/datetime/DateTime.form.js +5 -5
- package/lib/mjs/components/datetime/DateTime.js +31 -16
- package/lib/mjs/components/datetime/editForm/DateTime.edit.data.js +4 -3
- package/lib/mjs/components/datetime/editForm/DateTime.edit.date.js +10 -10
- package/lib/mjs/components/datetime/editForm/DateTime.edit.display.js +22 -17
- package/lib/mjs/components/datetime/editForm/DateTime.edit.time.js +5 -5
- package/lib/mjs/components/datetime/editForm/DateTime.edit.validation.js +3 -3
- package/lib/mjs/components/day/Day.form.js +5 -5
- package/lib/mjs/components/day/Day.js +147 -57
- package/lib/mjs/components/day/editForm/Day.edit.day.js +13 -9
- package/lib/mjs/components/day/editForm/Day.edit.display.js +7 -7
- package/lib/mjs/components/day/editForm/Day.edit.month.js +12 -8
- package/lib/mjs/components/day/editForm/Day.edit.validation.js +7 -7
- package/lib/mjs/components/day/editForm/Day.edit.year.js +8 -8
- package/lib/mjs/components/editgrid/EditGrid.form.js +2 -2
- package/lib/mjs/components/editgrid/EditGrid.js +138 -90
- package/lib/mjs/components/editgrid/editForm/EditGrid.edit.data.js +2 -2
- package/lib/mjs/components/editgrid/editForm/EditGrid.edit.display.js +7 -2
- package/lib/mjs/components/editgrid/editForm/EditGrid.edit.templates.js +16 -16
- package/lib/mjs/components/editgrid/editForm/EditGrid.edit.validation.js +3 -3
- package/lib/mjs/components/email/Email.js +4 -4
- package/lib/mjs/components/email/editForm/Email.edit.display.js +3 -3
- package/lib/mjs/components/email/editForm/Email.edit.validation.js +6 -6
- package/lib/mjs/components/fieldset/Fieldset.form.js +1 -1
- package/lib/mjs/components/fieldset/Fieldset.js +2 -2
- package/lib/mjs/components/fieldset/editForm/Fieldset.edit.display.js +8 -8
- package/lib/mjs/components/file/File.form.js +4 -4
- package/lib/mjs/components/file/File.js +131 -84
- package/lib/mjs/components/file/editForm/File.edit.display.js +9 -5
- package/lib/mjs/components/file/editForm/File.edit.file.d.ts +37 -16
- package/lib/mjs/components/file/editForm/File.edit.file.js +169 -72
- package/lib/mjs/components/file/editForm/File.edit.validation.js +2 -2
- package/lib/mjs/components/form/Form.form.js +3 -3
- package/lib/mjs/components/form/Form.js +67 -51
- package/lib/mjs/components/form/editForm/Form.edit.data.js +1 -3
- package/lib/mjs/components/form/editForm/Form.edit.display.js +6 -7
- package/lib/mjs/components/form/editForm/Form.edit.form.js +10 -8
- package/lib/mjs/components/hidden/Hidden.form.js +4 -4
- package/lib/mjs/components/hidden/Hidden.js +2 -2
- package/lib/mjs/components/hidden/editForm/Hidden.edit.data.js +3 -3
- package/lib/mjs/components/hidden/editForm/Hidden.edit.display.js +10 -10
- package/lib/mjs/components/html/HTML.js +23 -17
- package/lib/mjs/components/html/editForm/HTML.edit.display.js +17 -17
- package/lib/mjs/components/html/editForm/HTML.edit.logic.js +2 -2
- package/lib/mjs/components/number/Number.form.js +3 -3
- package/lib/mjs/components/number/Number.js +28 -12
- package/lib/mjs/components/number/editForm/Number.edit.data.js +3 -3
- package/lib/mjs/components/number/editForm/Number.edit.display.js +4 -4
- package/lib/mjs/components/number/editForm/Number.edit.validation.js +9 -9
- package/lib/mjs/components/panel/Panel.form.js +1 -1
- package/lib/mjs/components/panel/Panel.js +2 -2
- package/lib/mjs/components/panel/editForm/Panel.edit.conditional.js +6 -8
- package/lib/mjs/components/panel/editForm/Panel.edit.display.js +55 -29
- package/lib/mjs/components/password/Password.form.js +3 -3
- package/lib/mjs/components/password/Password.js +5 -2
- package/lib/mjs/components/password/editForm/Password.edit.data.js +11 -11
- package/lib/mjs/components/password/editForm/Password.edit.display.js +3 -3
- package/lib/mjs/components/password/editForm/Password.edit.validation.js +3 -3
- package/lib/mjs/components/phonenumber/PhoneNumber.form.js +8 -8
- package/lib/mjs/components/phonenumber/PhoneNumber.js +3 -3
- package/lib/mjs/components/phonenumber/editForm/PhoneNumber.edit.validation.js +6 -6
- package/lib/mjs/components/radio/Radio.form.js +3 -3
- package/lib/mjs/components/radio/Radio.js +56 -27
- package/lib/mjs/components/radio/editForm/Radio.edit.data.js +23 -9
- package/lib/mjs/components/radio/editForm/Radio.edit.display.js +6 -6
- package/lib/mjs/components/radio/editForm/Radio.edit.validation.js +2 -2
- package/lib/mjs/components/recaptcha/ReCaptcha.form.js +5 -5
- package/lib/mjs/components/recaptcha/ReCaptcha.js +7 -5
- package/lib/mjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +24 -24
- package/lib/mjs/components/select/Select.form.js +3 -3
- package/lib/mjs/components/select/Select.js +240 -134
- package/lib/mjs/components/select/editForm/Select.edit.data.d.ts +1 -1
- package/lib/mjs/components/select/editForm/Select.edit.data.js +191 -57
- package/lib/mjs/components/select/editForm/Select.edit.display.js +2 -2
- package/lib/mjs/components/select/editForm/Select.edit.validation.js +4 -4
- package/lib/mjs/components/selectboxes/SelectBoxes.form.js +3 -3
- package/lib/mjs/components/selectboxes/SelectBoxes.js +32 -16
- package/lib/mjs/components/selectboxes/editForm/SelectBoxes.edit.validation.js +5 -5
- package/lib/mjs/components/signature/Signature.form.js +3 -3
- package/lib/mjs/components/signature/Signature.js +25 -15
- package/lib/mjs/components/signature/editForm/Signature.edit.display.js +19 -10
- package/lib/mjs/components/survey/Survey.form.js +3 -3
- package/lib/mjs/components/survey/Survey.js +30 -17
- package/lib/mjs/components/survey/editForm/Survey.edit.data.js +23 -11
- package/lib/mjs/components/survey/editForm/Survey.edit.display.js +1 -1
- package/lib/mjs/components/survey/editForm/Survey.edit.validation.js +1 -1
- package/lib/mjs/components/table/Table.form.js +1 -1
- package/lib/mjs/components/table/Table.js +7 -5
- package/lib/mjs/components/table/editForm/Table.edit.display.js +22 -22
- package/lib/mjs/components/tabs/Tabs.form.js +1 -1
- package/lib/mjs/components/tabs/Tabs.js +26 -8
- package/lib/mjs/components/tabs/editForm/Tabs.edit.display.js +21 -17
- package/lib/mjs/components/tags/Tags.form.js +1 -1
- package/lib/mjs/components/tags/Tags.js +28 -12
- package/lib/mjs/components/tags/editForm/Tags.edit.data.js +7 -7
- package/lib/mjs/components/textarea/TextArea.form.js +2 -2
- package/lib/mjs/components/textarea/TextArea.js +75 -51
- package/lib/mjs/components/textarea/editForm/TextArea.edit.display.js +96 -72
- package/lib/mjs/components/textarea/editForm/TextArea.edit.validation.js +3 -3
- package/lib/mjs/components/textfield/TextField.form.js +3 -3
- package/lib/mjs/components/textfield/TextField.js +34 -23
- package/lib/mjs/components/textfield/editForm/TextField.edit.data.js +15 -13
- package/lib/mjs/components/textfield/editForm/TextField.edit.display.js +31 -21
- package/lib/mjs/components/textfield/editForm/TextField.edit.validation.js +6 -6
- package/lib/mjs/components/time/Time.js +17 -10
- package/lib/mjs/components/time/editForm/Time.edit.display.js +2 -2
- package/lib/mjs/components/unknown/Unknown.form.js +5 -5
- package/lib/mjs/components/unknown/Unknown.js +2 -2
- package/lib/mjs/components/unknown/editForm/Unknown.edit.display.js +3 -3
- package/lib/mjs/components/url/Url.form.js +3 -3
- package/lib/mjs/components/url/Url.js +2 -2
- package/lib/mjs/components/url/editForm/Url.edit.display.js +3 -3
- package/lib/mjs/components/url/editForm/Url.edit.validation.js +1 -1
- package/lib/mjs/components/well/Well.form.js +1 -1
- package/lib/mjs/components/well/Well.js +2 -2
- package/lib/mjs/components/well/editForm/Well.edit.display.js +10 -10
- package/lib/mjs/formio.form.d.ts +2 -1
- package/lib/mjs/formio.form.js +10 -8
- package/lib/mjs/i18n.d.ts +4 -0
- package/lib/mjs/i18n.js +7 -3
- package/lib/mjs/package.json +1 -1
- package/lib/mjs/providers/address/AddressProvider.js +8 -5
- package/lib/mjs/providers/address/GoogleAddressProvider.d.ts +3 -3
- package/lib/mjs/providers/address/GoogleAddressProvider.js +24 -13
- package/lib/mjs/providers/processor/fileProcessor.js +3 -1
- package/lib/mjs/providers/storage/azure.js +5 -2
- package/lib/mjs/providers/storage/dropbox.js +4 -5
- package/lib/mjs/providers/storage/googleDrive.js +3 -4
- package/lib/mjs/providers/storage/index.js +1 -1
- package/lib/mjs/providers/storage/indexeddb.js +16 -6
- package/lib/mjs/providers/storage/s3.js +19 -8
- package/lib/mjs/providers/storage/uploadAdapter.js +17 -11
- package/lib/mjs/providers/storage/url.js +13 -11
- package/lib/mjs/providers/storage/xhr.js +17 -9
- package/lib/mjs/templates/index.js +1 -1
- package/lib/mjs/translations/de.d.ts +80 -0
- package/lib/mjs/translations/de.js +79 -0
- package/lib/mjs/translations/en.d.ts +0 -2
- package/lib/mjs/translations/en.js +7 -9
- package/lib/mjs/utils/ChoicesWrapper.js +2 -2
- package/lib/mjs/utils/builder.js +31 -7
- package/lib/mjs/utils/calendarUtils.js +7 -5
- package/lib/mjs/utils/conditionOperators/ConditionOperator.js +1 -1
- package/lib/mjs/utils/conditionOperators/DateGreaterThan.js +16 -5
- package/lib/mjs/utils/conditionOperators/IsEmptyValue.js +3 -1
- package/lib/mjs/utils/conditionOperators/IsEqualTo.js +10 -6
- package/lib/mjs/utils/conditionOperators/index.js +1 -1
- package/lib/mjs/utils/formUtils.js +2 -2
- package/lib/mjs/utils/i18n.js +7 -1
- package/lib/mjs/utils/index.d.ts +2 -1
- package/lib/mjs/utils/index.js +3 -3
- package/lib/mjs/utils/utils.d.ts +10 -1
- package/lib/mjs/utils/utils.js +178 -91
- package/lib/mjs/widgets/CalendarWidget.js +67 -50
- package/lib/mjs/widgets/InputWidget.js +6 -4
- package/lib/mjs/widgets/index.js +1 -1
- package/package.json +3 -3
- package/lib/cjs/pdf.image.d.ts +0 -2
- package/lib/cjs/pdf.image.js +0 -94
- package/lib/cjs/utils/jsonlogic/operators.d.ts +0 -1
- package/lib/cjs/utils/jsonlogic/operators.js +0 -265
- package/lib/mjs/pdf.image.d.ts +0 -2
- package/lib/mjs/pdf.image.js +0 -94
- package/lib/mjs/utils/jsonlogic/operators.d.ts +0 -1
- package/lib/mjs/utils/jsonlogic/operators.js +0 -262
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable max-statements */
|
|
2
1
|
import _ from 'lodash';
|
|
3
2
|
import Component from '../_classes/component/Component';
|
|
4
3
|
import ComponentModal from '../_classes/componentModal/ComponentModal';
|
|
@@ -26,18 +25,20 @@ export default class FormComponent extends Component {
|
|
|
26
25
|
group: 'premium',
|
|
27
26
|
documentation: '/userguide/form-building/premium-components#nested-form',
|
|
28
27
|
weight: 110,
|
|
29
|
-
schema: FormComponent.schema()
|
|
28
|
+
schema: FormComponent.schema(),
|
|
30
29
|
};
|
|
31
30
|
}
|
|
32
31
|
static savedValueTypes() {
|
|
33
|
-
return [
|
|
32
|
+
return [
|
|
33
|
+
componentValueTypes.object,
|
|
34
|
+
];
|
|
34
35
|
}
|
|
35
36
|
init() {
|
|
36
37
|
super.init();
|
|
37
38
|
this.formObj = {
|
|
38
39
|
display: this.component.display,
|
|
39
40
|
settings: this.component.settings,
|
|
40
|
-
components: this.component.components
|
|
41
|
+
components: this.component.components,
|
|
41
42
|
};
|
|
42
43
|
this.valueChanged = false;
|
|
43
44
|
this.subForm = null;
|
|
@@ -89,9 +90,11 @@ export default class FormComponent extends Component {
|
|
|
89
90
|
delete this.component.formRevision;
|
|
90
91
|
}
|
|
91
92
|
// Add revision version if set.
|
|
92
|
-
if (this.component.revision ||
|
|
93
|
-
this.component.
|
|
94
|
-
|
|
93
|
+
if (this.component.revision ||
|
|
94
|
+
this.component.revision === 0 ||
|
|
95
|
+
this.component.formRevision ||
|
|
96
|
+
this.component.formRevision === 0 ||
|
|
97
|
+
this.component.revisionId) {
|
|
95
98
|
this.setFormRevision(this.component.revisionId || this.component.revision || this.component.formRevision);
|
|
96
99
|
}
|
|
97
100
|
return this.createSubForm();
|
|
@@ -140,7 +143,6 @@ export default class FormComponent extends Component {
|
|
|
140
143
|
}
|
|
141
144
|
return this.subForm.getComponent(path);
|
|
142
145
|
}
|
|
143
|
-
/* eslint-disable max-statements */
|
|
144
146
|
getSubOptions(options = {}) {
|
|
145
147
|
options.events = this.createEmitter();
|
|
146
148
|
// Make sure to not show the submit button in wizards in the nested forms.
|
|
@@ -211,7 +213,6 @@ export default class FormComponent extends Component {
|
|
|
211
213
|
options.parent = this;
|
|
212
214
|
return options;
|
|
213
215
|
}
|
|
214
|
-
/* eslint-enable max-statements */
|
|
215
216
|
render() {
|
|
216
217
|
if (this.builderMode) {
|
|
217
218
|
return super.render(this.component.label || 'Nested form');
|
|
@@ -236,27 +237,27 @@ export default class FormComponent extends Component {
|
|
|
236
237
|
return 'No data provided';
|
|
237
238
|
}
|
|
238
239
|
if (options?.email) {
|
|
239
|
-
let result =
|
|
240
|
+
let result = `
|
|
240
241
|
<table border="1" style="width:100%">
|
|
241
242
|
<tbody>
|
|
242
|
-
|
|
243
|
+
`;
|
|
243
244
|
this.everyComponent((component) => {
|
|
244
245
|
if (component.isInputComponent && component.visible && !component.skipInEmail) {
|
|
245
|
-
result +=
|
|
246
|
+
result += `
|
|
246
247
|
<tr>
|
|
247
248
|
<th style="padding: 5px 10px;">${component.label}</th>
|
|
248
249
|
<td style="width:100%;padding:5px 10px;">${component.getView(component.dataValue, options)}</td>
|
|
249
250
|
</tr>
|
|
250
|
-
|
|
251
|
+
`;
|
|
251
252
|
}
|
|
252
253
|
}, {
|
|
253
254
|
...options,
|
|
254
255
|
fromRoot: true,
|
|
255
256
|
});
|
|
256
|
-
result +=
|
|
257
|
+
result += `
|
|
257
258
|
</tbody>
|
|
258
259
|
</table>
|
|
259
|
-
|
|
260
|
+
`;
|
|
260
261
|
return result;
|
|
261
262
|
}
|
|
262
263
|
if (_.isEmpty(value)) {
|
|
@@ -269,8 +270,7 @@ export default class FormComponent extends Component {
|
|
|
269
270
|
if (this.builderMode) {
|
|
270
271
|
return super.attach(element);
|
|
271
272
|
}
|
|
272
|
-
return super.attach(element)
|
|
273
|
-
.then(() => {
|
|
273
|
+
return super.attach(element).then(() => {
|
|
274
274
|
if (this.isSubFormLazyLoad() && !this.hasLoadedForm && !this.subFormLoading) {
|
|
275
275
|
this.createSubForm(true);
|
|
276
276
|
}
|
|
@@ -281,7 +281,7 @@ export default class FormComponent extends Component {
|
|
|
281
281
|
this.empty(element);
|
|
282
282
|
if (this.options.builder) {
|
|
283
283
|
this.setContent(element, this.ce('div', {
|
|
284
|
-
class: 'text-muted text-center p-2'
|
|
284
|
+
class: 'text-muted text-center p-2',
|
|
285
285
|
}, this.text(this.formObj.title)));
|
|
286
286
|
return;
|
|
287
287
|
}
|
|
@@ -289,9 +289,12 @@ export default class FormComponent extends Component {
|
|
|
289
289
|
const postAttach = () => {
|
|
290
290
|
if (!this.builderMode && this.component.modalEdit) {
|
|
291
291
|
const modalShouldBeOpened = this.componentModal ? this.componentModal.isOpened : false;
|
|
292
|
-
const currentValue = modalShouldBeOpened
|
|
292
|
+
const currentValue = modalShouldBeOpened
|
|
293
|
+
? this.componentModal.currentValue
|
|
294
|
+
: this.dataValue;
|
|
293
295
|
this.componentModal = new ComponentModal(this, element, modalShouldBeOpened, currentValue, this._referenceAttributeName);
|
|
294
|
-
this.subForm.element =
|
|
296
|
+
this.subForm.element =
|
|
297
|
+
this.componentModal.refs.componentContent || this.subForm.element;
|
|
295
298
|
this.setOpenModalElement();
|
|
296
299
|
}
|
|
297
300
|
this.calculateValue();
|
|
@@ -328,24 +331,24 @@ export default class FormComponent extends Component {
|
|
|
328
331
|
return this._currentForm;
|
|
329
332
|
}
|
|
330
333
|
get hasLoadedForm() {
|
|
331
|
-
return this.formObj
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
334
|
+
return (this.formObj &&
|
|
335
|
+
this.formObj.components &&
|
|
336
|
+
Array.isArray(this.formObj.components) &&
|
|
337
|
+
this.formObj.components.length);
|
|
335
338
|
}
|
|
336
339
|
set currentForm(instance) {
|
|
337
340
|
this._currentForm = instance;
|
|
338
341
|
if (!this.subForm) {
|
|
339
342
|
return;
|
|
340
343
|
}
|
|
341
|
-
this.subForm.getComponents().forEach(component => {
|
|
344
|
+
this.subForm.getComponents().forEach((component) => {
|
|
342
345
|
component.currentForm = this;
|
|
343
346
|
});
|
|
344
347
|
}
|
|
345
348
|
get isRevisionChanged() {
|
|
346
|
-
return _.isNumber(this.subFormRevision)
|
|
347
|
-
|
|
348
|
-
|
|
349
|
+
return (_.isNumber(this.subFormRevision) &&
|
|
350
|
+
_.isNumber(this.formObj._vid) &&
|
|
351
|
+
this.formObj._vid !== this.subFormRevision);
|
|
349
352
|
}
|
|
350
353
|
get subFormData() {
|
|
351
354
|
return this.dataValue?.data || {};
|
|
@@ -380,7 +383,7 @@ export default class FormComponent extends Component {
|
|
|
380
383
|
}
|
|
381
384
|
updateSubWizards(subForm) {
|
|
382
385
|
if (this.isNestedWizard && this.root?.subWizards && subForm?._form?.display === 'wizard') {
|
|
383
|
-
const existedForm = this.root.subWizards.findIndex(form => form.component.form === this.component.form);
|
|
386
|
+
const existedForm = this.root.subWizards.findIndex((form) => form.component.form === this.component.form);
|
|
384
387
|
if (existedForm !== -1) {
|
|
385
388
|
this.root.subWizards[existedForm] = this;
|
|
386
389
|
}
|
|
@@ -405,7 +408,8 @@ export default class FormComponent extends Component {
|
|
|
405
408
|
* @returns {*} - The subform instance.
|
|
406
409
|
*/
|
|
407
410
|
createSubForm(fromAttach, beforeSubmit) {
|
|
408
|
-
this.subFormReady = this.loadSubForm(fromAttach, beforeSubmit)
|
|
411
|
+
this.subFormReady = this.loadSubForm(fromAttach, beforeSubmit)
|
|
412
|
+
.then((form) => {
|
|
409
413
|
if (!form) {
|
|
410
414
|
return;
|
|
411
415
|
}
|
|
@@ -418,7 +422,8 @@ export default class FormComponent extends Component {
|
|
|
418
422
|
this.subForm.destroy();
|
|
419
423
|
}
|
|
420
424
|
// Render the form.
|
|
421
|
-
return
|
|
425
|
+
return new Form(form, this.getSubOptions()).ready
|
|
426
|
+
.then((instance) => {
|
|
422
427
|
this.subForm = instance;
|
|
423
428
|
this.subForm.currentForm = this;
|
|
424
429
|
this.subForm.parentVisible = this.visible;
|
|
@@ -429,7 +434,7 @@ export default class FormComponent extends Component {
|
|
|
429
434
|
if (this.subForm && !this.shouldConditionallyClear()) {
|
|
430
435
|
this.dataValue = this.subForm.getValue();
|
|
431
436
|
this.triggerChange({
|
|
432
|
-
noEmit: true
|
|
437
|
+
noEmit: true,
|
|
433
438
|
});
|
|
434
439
|
}
|
|
435
440
|
});
|
|
@@ -441,10 +446,12 @@ export default class FormComponent extends Component {
|
|
|
441
446
|
this.valueChanged = this.hasSetValue;
|
|
442
447
|
this.onChange();
|
|
443
448
|
return this.subForm;
|
|
444
|
-
})
|
|
449
|
+
})
|
|
450
|
+
.catch((err) => {
|
|
445
451
|
console.log(err);
|
|
446
452
|
});
|
|
447
|
-
})
|
|
453
|
+
})
|
|
454
|
+
.then((subForm) => {
|
|
448
455
|
this.updateSubWizards(subForm);
|
|
449
456
|
return subForm;
|
|
450
457
|
});
|
|
@@ -466,11 +473,17 @@ export default class FormComponent extends Component {
|
|
|
466
473
|
*/
|
|
467
474
|
loadSubForm(fromAttach, beforeSubmit) {
|
|
468
475
|
const loadHiddenForm = beforeSubmit && !this.component.clearOnHide;
|
|
469
|
-
if (this.builderMode ||
|
|
476
|
+
if (this.builderMode ||
|
|
477
|
+
(this.conditionallyHidden() && !loadHiddenForm) ||
|
|
478
|
+
(this.isSubFormLazyLoad() && !fromAttach)) {
|
|
470
479
|
return Promise.resolve();
|
|
471
480
|
}
|
|
472
|
-
if (this.hasLoadedForm &&
|
|
473
|
-
!
|
|
481
|
+
if (this.hasLoadedForm &&
|
|
482
|
+
!this.isRevisionChanged &&
|
|
483
|
+
!(this.options.pdf &&
|
|
484
|
+
this.component?.useOriginalRevision &&
|
|
485
|
+
_.isNull(this.subForm) &&
|
|
486
|
+
!this.subFormLoading)) {
|
|
474
487
|
// Pass config down to sub forms.
|
|
475
488
|
if (this.root && this.root.form && this.root.form.config && !this.formObj.config) {
|
|
476
489
|
this.formObj.config = this.root.form.config;
|
|
@@ -485,7 +498,8 @@ export default class FormComponent extends Component {
|
|
|
485
498
|
project: this.root.formio.projectUrl,
|
|
486
499
|
}
|
|
487
500
|
: {};
|
|
488
|
-
return
|
|
501
|
+
return new Formio(this.formSrc, options)
|
|
502
|
+
.loadForm({ params: { live: 1 } })
|
|
489
503
|
.then((formObj) => {
|
|
490
504
|
this.formObj = formObj;
|
|
491
505
|
if (this.options.pdf && this.component.useOriginalRevision) {
|
|
@@ -538,7 +552,9 @@ export default class FormComponent extends Component {
|
|
|
538
552
|
* @returns {*|boolean} - TRUE if the subform should be submitted, FALSE if it should not.
|
|
539
553
|
*/
|
|
540
554
|
get shouldSubmit() {
|
|
541
|
-
return this.subFormReady &&
|
|
555
|
+
return (this.subFormReady &&
|
|
556
|
+
(!this.component.hasOwnProperty('reference') || this.component.reference) &&
|
|
557
|
+
!this.shouldConditionallyClear());
|
|
542
558
|
}
|
|
543
559
|
/**
|
|
544
560
|
* Returns the data for the subform.
|
|
@@ -565,12 +581,15 @@ export default class FormComponent extends Component {
|
|
|
565
581
|
}
|
|
566
582
|
this.subForm.nosubmit = false;
|
|
567
583
|
this.subForm.submitted = true;
|
|
568
|
-
return this.subForm
|
|
584
|
+
return this.subForm
|
|
585
|
+
.submitForm({}, true)
|
|
586
|
+
.then((result) => {
|
|
569
587
|
this.subForm.loading = false;
|
|
570
588
|
this.subForm.showAllErrors = false;
|
|
571
589
|
this.dataValue = result.submission;
|
|
572
590
|
return this.dataValue;
|
|
573
|
-
})
|
|
591
|
+
})
|
|
592
|
+
.catch((err) => {
|
|
574
593
|
this.subForm.showAllErrors = true;
|
|
575
594
|
this.subForm.onSubmissionError(err);
|
|
576
595
|
return Promise.reject(err);
|
|
@@ -636,10 +655,10 @@ export default class FormComponent extends Component {
|
|
|
636
655
|
this.valueChanged = true;
|
|
637
656
|
if (this.subForm) {
|
|
638
657
|
const revisionPath = submission._frid ? '_frid' : '_vid';
|
|
639
|
-
const shouldLoadOriginalRevision = this.useOriginalRevision
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
658
|
+
const shouldLoadOriginalRevision = this.useOriginalRevision &&
|
|
659
|
+
(_.isNumber(submission[revisionPath]) || _.isNumber(submission._fvid)) &&
|
|
660
|
+
_.isNumber(this.subForm.form?.[revisionPath]) &&
|
|
661
|
+
submission._fvid !== this.subForm.form[revisionPath];
|
|
643
662
|
if (shouldLoadOriginalRevision) {
|
|
644
663
|
this.setFormRevision(submission._frid || submission._fvid);
|
|
645
664
|
this.createSubForm().then(() => {
|
|
@@ -653,10 +672,7 @@ export default class FormComponent extends Component {
|
|
|
653
672
|
return changed;
|
|
654
673
|
}
|
|
655
674
|
setSubFormValue(submission, flags) {
|
|
656
|
-
const shouldLoadSubmissionById = submission
|
|
657
|
-
&& submission._id
|
|
658
|
-
&& this.subForm.formio
|
|
659
|
-
&& _.isEmpty(submission.data);
|
|
675
|
+
const shouldLoadSubmissionById = submission && submission._id && this.subForm.formio && _.isEmpty(submission.data);
|
|
660
676
|
const shouldLoadDraftById = this.options.saveDraft && _.isEmpty(submission.data) && _.get(this.subForm, 'submission._id');
|
|
661
677
|
if (shouldLoadSubmissionById || shouldLoadDraftById) {
|
|
662
678
|
const formId = submission.form || this.formObj.form || this.component.form;
|
|
@@ -722,7 +738,7 @@ export default class FormComponent extends Component {
|
|
|
722
738
|
* @returns {boolean} - TRUE if this form is a Nested Wizard, FALSE otherwise
|
|
723
739
|
*/
|
|
724
740
|
get isNestedWizard() {
|
|
725
|
-
return this.subForm?._form?.display === 'wizard' && this.parent?.parent?._form?.display === 'wizard';
|
|
741
|
+
return (this.subForm?._form?.display === 'wizard' && this.parent?.parent?._form?.display === 'wizard');
|
|
726
742
|
}
|
|
727
743
|
get visible() {
|
|
728
744
|
return super.visible;
|
|
@@ -817,7 +833,7 @@ export default class FormComponent extends Component {
|
|
|
817
833
|
deleteValue() {
|
|
818
834
|
super.setValue(null, {
|
|
819
835
|
noUpdateEvent: true,
|
|
820
|
-
noDefault: true
|
|
836
|
+
noDefault: true,
|
|
821
837
|
});
|
|
822
838
|
this.unset();
|
|
823
839
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import EditFormUtils from '../../_classes/component/editForm/utils';
|
|
2
|
-
/* eslint-disable max-len */
|
|
3
2
|
export default [
|
|
4
3
|
EditFormUtils.javaScriptValue('Custom Default Value', 'customDefaultValue', 'customDefaultValue', 120, '<p><h4>Example:</h4><pre>value = data.firstName + " " + data.lastName;</pre></p>', '<p><h4>Example:</h4><pre>{"cat": [{"var": "data.firstName"}, " ", {"var": "data.lastName"}]}</pre>'),
|
|
5
4
|
EditFormUtils.javaScriptValue('Calculated Value', 'calculateValue', 'calculateValue', 130, '<p><h4>Example:</h4><pre>value = data.a + data.b + data.c;</pre></p>', '<p><h4>Example:</h4><pre>{"+": [{"var": "data.a"}, {"var": "data.b"}, {"var": "data.c"}]}</pre><p><a href="https://help.form.io/userguide/form-building/logic-and-conditions#calculated-values" target="_blank" rel="noopener noreferrer">Click here for an example</a></p>'),
|
|
@@ -10,7 +9,6 @@ export default [
|
|
|
10
9
|
key: 'clearOnHide',
|
|
11
10
|
defaultValue: true,
|
|
12
11
|
tooltip: 'When a field is hidden, clear the value.',
|
|
13
|
-
input: true
|
|
12
|
+
input: true,
|
|
14
13
|
},
|
|
15
14
|
];
|
|
16
|
-
/* eslint-enable max-len */
|
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
export default [
|
|
2
2
|
{
|
|
3
3
|
key: 'labelPosition',
|
|
4
|
-
ignore: true
|
|
4
|
+
ignore: true,
|
|
5
5
|
},
|
|
6
6
|
{
|
|
7
7
|
key: 'placeholder',
|
|
8
|
-
ignore: true
|
|
8
|
+
ignore: true,
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
key: 'description',
|
|
12
|
-
ignore: true
|
|
12
|
+
ignore: true,
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
key: 'tooltip',
|
|
16
|
-
ignore: true
|
|
16
|
+
ignore: true,
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
key: 'tabIndex',
|
|
20
|
-
ignore: true
|
|
20
|
+
ignore: true,
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
key: 'autofocus',
|
|
24
|
-
ignore: true
|
|
24
|
+
ignore: true,
|
|
25
25
|
},
|
|
26
26
|
];
|
|
27
|
-
/* eslint-enable max-len */
|
|
@@ -4,7 +4,7 @@ export default [
|
|
|
4
4
|
input: true,
|
|
5
5
|
dataSrc: 'url',
|
|
6
6
|
data: {
|
|
7
|
-
url: '/form?limit=1000000&select=_id,title,display'
|
|
7
|
+
url: '/form?limit=1000000&select=_id,title,display',
|
|
8
8
|
},
|
|
9
9
|
searchField: 'title__regex',
|
|
10
10
|
template: '<span>{{ item.title }}</span>',
|
|
@@ -30,9 +30,11 @@ export default [
|
|
|
30
30
|
tooltip: 'if it is checked, the subform is loaded after navigation to the page with this component within the wizard.',
|
|
31
31
|
input: true,
|
|
32
32
|
customConditional({ instance, data }) {
|
|
33
|
-
const
|
|
33
|
+
const formComp = instance.root?.getComponent('form');
|
|
34
|
+
const formInfo = formComp?.defaultDownloadedResources.find((res) => res._id === data.form);
|
|
34
35
|
const displayMode = 'wizard';
|
|
35
|
-
return instance.options?.editForm?.display === displayMode &&
|
|
36
|
+
return (instance.options?.editForm?.display === displayMode &&
|
|
37
|
+
((data.form && !formInfo) || (formInfo && formInfo.display !== displayMode)));
|
|
36
38
|
},
|
|
37
39
|
},
|
|
38
40
|
{
|
|
@@ -40,7 +42,7 @@ export default [
|
|
|
40
42
|
input: true,
|
|
41
43
|
dataSrc: 'url',
|
|
42
44
|
data: {
|
|
43
|
-
url: '/form/{{ data.form }}/v'
|
|
45
|
+
url: '/form/{{ data.form }}/v',
|
|
44
46
|
},
|
|
45
47
|
searchField: 'title__regex',
|
|
46
48
|
template: '<span>{{ item._vid }}</span>',
|
|
@@ -51,7 +53,7 @@ export default [
|
|
|
51
53
|
weight: 10,
|
|
52
54
|
lazyLoad: true,
|
|
53
55
|
tooltip: 'You can lock the nested form to a specific revision by choosing the revision number here.',
|
|
54
|
-
customConditional: 'show = !!data.form'
|
|
56
|
+
customConditional: 'show = !!data.form',
|
|
55
57
|
},
|
|
56
58
|
{
|
|
57
59
|
type: 'checkbox',
|
|
@@ -59,7 +61,7 @@ export default [
|
|
|
59
61
|
weight: 19,
|
|
60
62
|
key: 'useOriginalRevision',
|
|
61
63
|
label: 'Use Original Revision while Submissions Viewing',
|
|
62
|
-
tooltip: 'Using this option will make form load the original revision (the one which was used to make a submission) when viewing a submission.'
|
|
64
|
+
tooltip: 'Using this option will make form load the original revision (the one which was used to make a submission) when viewing a submission.',
|
|
63
65
|
},
|
|
64
66
|
{
|
|
65
67
|
type: 'checkbox',
|
|
@@ -67,6 +69,6 @@ export default [
|
|
|
67
69
|
weight: 20,
|
|
68
70
|
key: 'reference',
|
|
69
71
|
label: 'Save as reference',
|
|
70
|
-
tooltip: 'Using this option will save this field as a reference and link its value to the value of the origin record.'
|
|
71
|
-
}
|
|
72
|
+
tooltip: 'Using this option will save this field as a reference and link its value to the value of the origin record.',
|
|
73
|
+
},
|
|
72
74
|
];
|
|
@@ -10,19 +10,19 @@ export default function (...extend) {
|
|
|
10
10
|
return Components.baseEditForm([
|
|
11
11
|
{
|
|
12
12
|
key: 'display',
|
|
13
|
-
components: HiddenEditDisplay
|
|
13
|
+
components: HiddenEditDisplay,
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
key: 'data',
|
|
17
|
-
components: HiddenEditData
|
|
17
|
+
components: HiddenEditData,
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
key: 'validation',
|
|
21
|
-
ignore: true
|
|
21
|
+
ignore: true,
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
key: 'conditional',
|
|
25
|
-
ignore: true
|
|
25
|
+
ignore: true,
|
|
26
26
|
},
|
|
27
27
|
], ...extend);
|
|
28
28
|
}
|
|
@@ -4,7 +4,7 @@ export default class HiddenComponent extends Input {
|
|
|
4
4
|
return Input.schema({
|
|
5
5
|
type: 'hidden',
|
|
6
6
|
tableView: false,
|
|
7
|
-
inputType: 'hidden'
|
|
7
|
+
inputType: 'hidden',
|
|
8
8
|
}, ...extend);
|
|
9
9
|
}
|
|
10
10
|
static get builderInfo() {
|
|
@@ -15,7 +15,7 @@ export default class HiddenComponent extends Input {
|
|
|
15
15
|
weight: 0,
|
|
16
16
|
documentation: '/userguide/form-building/data-components#hidden',
|
|
17
17
|
showPreview: false,
|
|
18
|
-
schema: HiddenComponent.schema()
|
|
18
|
+
schema: HiddenComponent.schema(),
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
get defaultSchema() {
|
|
@@ -1,42 +1,42 @@
|
|
|
1
1
|
export default [
|
|
2
2
|
{
|
|
3
3
|
key: 'labelPosition',
|
|
4
|
-
ignore: true
|
|
4
|
+
ignore: true,
|
|
5
5
|
},
|
|
6
6
|
{
|
|
7
7
|
key: 'placeholder',
|
|
8
|
-
ignore: true
|
|
8
|
+
ignore: true,
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
key: 'description',
|
|
12
|
-
ignore: true
|
|
12
|
+
ignore: true,
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
key: 'tooltip',
|
|
16
|
-
ignore: true
|
|
16
|
+
ignore: true,
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
key: 'hideLabel',
|
|
20
|
-
ignore: true
|
|
20
|
+
ignore: true,
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
key: 'autofocus',
|
|
24
|
-
ignore: true
|
|
24
|
+
ignore: true,
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
key: 'tabindex',
|
|
28
|
-
ignore: true
|
|
28
|
+
ignore: true,
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
key: 'hidden',
|
|
32
|
-
ignore: true
|
|
32
|
+
ignore: true,
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
key: 'tableView',
|
|
36
|
-
ignore: true
|
|
36
|
+
ignore: true,
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
key: 'disabled',
|
|
40
|
-
ignore: true
|
|
40
|
+
ignore: true,
|
|
41
41
|
},
|
|
42
42
|
];
|
|
@@ -9,7 +9,7 @@ export default class HTMLComponent extends Component {
|
|
|
9
9
|
attrs: [],
|
|
10
10
|
content: '',
|
|
11
11
|
input: false,
|
|
12
|
-
persistent: false
|
|
12
|
+
persistent: false,
|
|
13
13
|
}, ...extend);
|
|
14
14
|
}
|
|
15
15
|
static get builderInfo() {
|
|
@@ -20,7 +20,7 @@ export default class HTMLComponent extends Component {
|
|
|
20
20
|
weight: 0,
|
|
21
21
|
documentation: '/userguide/form-building/layout-components#html-element',
|
|
22
22
|
showPreview: false,
|
|
23
|
-
schema: HTMLComponent.schema()
|
|
23
|
+
schema: HTMLComponent.schema(),
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
static savedValueTypes() {
|
|
@@ -38,28 +38,34 @@ export default class HTMLComponent extends Component {
|
|
|
38
38
|
return ` ${this.component.content} `;
|
|
39
39
|
}
|
|
40
40
|
const submission = _.get(this.root, 'submission', {});
|
|
41
|
-
const content = this.component.content
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
const content = this.component.content
|
|
42
|
+
? this.interpolate(this.sanitize(this.component.content, this.shouldSanitizeValue), {
|
|
43
|
+
metadata: submission.metadata || {},
|
|
44
|
+
submission: submission,
|
|
45
|
+
data: this.rootValue,
|
|
46
|
+
row: this.data,
|
|
47
|
+
})
|
|
48
|
+
: '';
|
|
47
49
|
return content;
|
|
48
50
|
}
|
|
49
51
|
get singleTags() {
|
|
50
|
-
return [
|
|
52
|
+
return [
|
|
53
|
+
'br',
|
|
54
|
+
'img',
|
|
55
|
+
'hr',
|
|
56
|
+
];
|
|
51
57
|
}
|
|
52
58
|
checkRefreshOn(changed) {
|
|
53
59
|
super.checkRefreshOn(changed);
|
|
54
60
|
const isVisible = () => {
|
|
55
61
|
return this.hasCondition() ? !this.conditionallyHidden() : !this.component.hidden;
|
|
56
62
|
};
|
|
57
|
-
const shouldSetContent = !this.builderMode
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
const shouldSetContent = !this.builderMode &&
|
|
64
|
+
this.component.refreshOnChange &&
|
|
65
|
+
this.element &&
|
|
66
|
+
!_.isUndefined(changed) &&
|
|
67
|
+
((_.isBoolean(changed) && changed) || !_.isEmpty(changed)) &&
|
|
68
|
+
isVisible();
|
|
63
69
|
if (shouldSetContent) {
|
|
64
70
|
this.setContent(this.element, this.renderContent());
|
|
65
71
|
}
|
|
@@ -76,8 +82,8 @@ export default class HTMLComponent extends Component {
|
|
|
76
82
|
metadata: submission.metadata || {},
|
|
77
83
|
submission: submission,
|
|
78
84
|
data: this.rootValue,
|
|
79
|
-
row: this.data
|
|
80
|
-
})
|
|
85
|
+
row: this.data,
|
|
86
|
+
}),
|
|
81
87
|
};
|
|
82
88
|
}),
|
|
83
89
|
content: this.content,
|