@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
package/lib/cjs/Wizard.js
CHANGED
|
@@ -35,7 +35,9 @@ class Wizard extends Webform_1.default {
|
|
|
35
35
|
this.page = 0;
|
|
36
36
|
this.currentPanel = null;
|
|
37
37
|
this.currentNextPage = 0;
|
|
38
|
-
this._seenPages = [
|
|
38
|
+
this._seenPages = [
|
|
39
|
+
0,
|
|
40
|
+
];
|
|
39
41
|
this.subWizards = [];
|
|
40
42
|
this.allPages = [];
|
|
41
43
|
this.lastPromise = Promise.resolve();
|
|
@@ -53,8 +55,7 @@ class Wizard extends Webform_1.default {
|
|
|
53
55
|
getPages(args = {}) {
|
|
54
56
|
const { all = false } = args;
|
|
55
57
|
const pages = this.hasSubWizards ? this.components : this.pages;
|
|
56
|
-
const filteredPages = pages
|
|
57
|
-
.filter(all ? lodash_1.default.identity : (p, index) => this._seenPages.includes(index));
|
|
58
|
+
const filteredPages = pages.filter(all ? lodash_1.default.identity : (p, index) => this._seenPages.includes(index));
|
|
58
59
|
return filteredPages;
|
|
59
60
|
}
|
|
60
61
|
get hasSubWizards() {
|
|
@@ -79,9 +80,7 @@ class Wizard extends Webform_1.default {
|
|
|
79
80
|
});
|
|
80
81
|
}
|
|
81
82
|
getComponents() {
|
|
82
|
-
return this.submitting
|
|
83
|
-
? this.getPages({ all: this.isLastPage() })
|
|
84
|
-
: super.getComponents();
|
|
83
|
+
return this.submitting ? this.getPages({ all: this.isLastPage() }) : super.getComponents();
|
|
85
84
|
}
|
|
86
85
|
resetValue() {
|
|
87
86
|
this.getPages({ all: true }).forEach((page) => page.resetValue());
|
|
@@ -94,10 +93,10 @@ class Wizard extends Webform_1.default {
|
|
|
94
93
|
showPrevious: true,
|
|
95
94
|
showNext: true,
|
|
96
95
|
showSubmit: true,
|
|
97
|
-
showCancel: !this.options.readOnly
|
|
96
|
+
showCancel: !this.options.readOnly,
|
|
98
97
|
});
|
|
99
98
|
this.options.breadcrumbSettings = lodash_1.default.defaults(this.options.breadcrumbSettings, {
|
|
100
|
-
clickable: true
|
|
99
|
+
clickable: true,
|
|
101
100
|
});
|
|
102
101
|
this.options.allowPrevious = this.options.allowPrevious || false;
|
|
103
102
|
this.page = 0;
|
|
@@ -107,7 +106,7 @@ class Wizard extends Webform_1.default {
|
|
|
107
106
|
this.component = this.pages[this.page].component;
|
|
108
107
|
}
|
|
109
108
|
this.on('subWizardsUpdated', (subForm) => {
|
|
110
|
-
const subWizard = this.subWizards.find(subWizard => { var _a; return (subForm === null || subForm === void 0 ? void 0 : subForm.id) && ((_a = subWizard.subForm) === null || _a === void 0 ? void 0 : _a.id) === (subForm === null || subForm === void 0 ? void 0 : subForm.id); });
|
|
109
|
+
const subWizard = this.subWizards.find((subWizard) => { var _a; return (subForm === null || subForm === void 0 ? void 0 : subForm.id) && ((_a = subWizard.subForm) === null || _a === void 0 ? void 0 : _a.id) === (subForm === null || subForm === void 0 ? void 0 : subForm.id); });
|
|
111
110
|
if (this.subWizards.length && subWizard) {
|
|
112
111
|
subWizard.subForm.setValue(subForm._submission, {}, true);
|
|
113
112
|
this.establishPages();
|
|
@@ -131,7 +130,7 @@ class Wizard extends Webform_1.default {
|
|
|
131
130
|
{ name: 'cancel', method: 'cancel' },
|
|
132
131
|
{ name: 'previous', method: 'prevPage' },
|
|
133
132
|
{ name: 'next', method: 'nextPage' },
|
|
134
|
-
{ name: 'submit', method: 'submit' }
|
|
133
|
+
{ name: 'submit', method: 'submit' },
|
|
135
134
|
].forEach((button) => {
|
|
136
135
|
if (this.hasButton(button.name)) {
|
|
137
136
|
buttons[button.name] = button;
|
|
@@ -145,9 +144,9 @@ class Wizard extends Webform_1.default {
|
|
|
145
144
|
'cancel',
|
|
146
145
|
'previous',
|
|
147
146
|
'next',
|
|
148
|
-
'submit'
|
|
147
|
+
'submit',
|
|
149
148
|
];
|
|
150
|
-
return (_c = (_b = (_a = this.options.properties) === null || _a === void 0 ? void 0 : _a.wizardButtonOrder) === null || _b === void 0 ? void 0 : _b.toLowerCase().split(', ')) !== null && _c !== void 0 ? _c : defaultButtonOrder;
|
|
149
|
+
return ((_c = (_b = (_a = this.options.properties) === null || _a === void 0 ? void 0 : _a.wizardButtonOrder) === null || _b === void 0 ? void 0 : _b.toLowerCase().split(', ')) !== null && _c !== void 0 ? _c : defaultButtonOrder);
|
|
151
150
|
}
|
|
152
151
|
get renderContext() {
|
|
153
152
|
var _a, _b;
|
|
@@ -156,7 +155,9 @@ class Wizard extends Webform_1.default {
|
|
|
156
155
|
wizardKey: this.wizardKey,
|
|
157
156
|
isBreadcrumbClickable: this.isBreadcrumbClickable(),
|
|
158
157
|
isSubForm: !!this.parent && !((_b = (_a = this.root) === null || _a === void 0 ? void 0 : _a.component) === null || _b === void 0 ? void 0 : _b.type) === 'wizard',
|
|
159
|
-
panels: this.allPages.length
|
|
158
|
+
panels: this.allPages.length
|
|
159
|
+
? this.allPages.map((page) => page.component)
|
|
160
|
+
: this.pages.map((page) => page.component),
|
|
160
161
|
buttons: this.buttons,
|
|
161
162
|
currentPage: this.page,
|
|
162
163
|
buttonOrder: this.buttonOrder,
|
|
@@ -166,8 +167,10 @@ class Wizard extends Webform_1.default {
|
|
|
166
167
|
const currentPanel = this.currentPanel;
|
|
167
168
|
if (currentPanel && currentPanel.buttonSettings) {
|
|
168
169
|
Object.keys(currentPanel.buttonSettings).forEach(() => {
|
|
169
|
-
Object.keys(ctx.buttons).forEach(key => {
|
|
170
|
-
if (typeof currentPanel.buttonSettings[key] !== 'undefined' &&
|
|
170
|
+
Object.keys(ctx.buttons).forEach((key) => {
|
|
171
|
+
if ((typeof currentPanel.buttonSettings[key] !== 'undefined' &&
|
|
172
|
+
!currentPanel.buttonSettings[key]) ||
|
|
173
|
+
ctx.isSubForm) {
|
|
171
174
|
ctx.buttons[key] = null;
|
|
172
175
|
}
|
|
173
176
|
});
|
|
@@ -187,7 +190,7 @@ class Wizard extends Webform_1.default {
|
|
|
187
190
|
render() {
|
|
188
191
|
const ctx = this.renderContext;
|
|
189
192
|
if (this.component.id) {
|
|
190
|
-
ctx.panels.forEach(panel => {
|
|
193
|
+
ctx.panels.forEach((panel) => {
|
|
191
194
|
if (panel.id === this.component.id) {
|
|
192
195
|
this.currentPanel = panel;
|
|
193
196
|
ctx.wizardPageTooltip = this.getFormattedTooltip(panel.tooltip);
|
|
@@ -204,7 +207,7 @@ class Wizard extends Webform_1.default {
|
|
|
204
207
|
wizardNav, components: this.renderComponents([
|
|
205
208
|
...this.prefixComps,
|
|
206
209
|
...this.currentPage.components,
|
|
207
|
-
...this.suffixComps
|
|
210
|
+
...this.suffixComps,
|
|
208
211
|
]) }), this.builderMode ? 'builder' : 'form');
|
|
209
212
|
}
|
|
210
213
|
redrawNavigation() {
|
|
@@ -233,7 +236,7 @@ class Wizard extends Webform_1.default {
|
|
|
233
236
|
headerElement = this.element.querySelector(`#${this.wizardKey}-header`);
|
|
234
237
|
this.loadRefs(headerElement, {
|
|
235
238
|
[`${this.wizardKey}-link`]: 'multiple',
|
|
236
|
-
[`${this.wizardKey}-tooltip`]: 'multiple'
|
|
239
|
+
[`${this.wizardKey}-tooltip`]: 'multiple',
|
|
237
240
|
});
|
|
238
241
|
this.attachHeader();
|
|
239
242
|
}
|
|
@@ -257,7 +260,7 @@ class Wizard extends Webform_1.default {
|
|
|
257
260
|
[`${this.wizardKey}-next`]: 'single',
|
|
258
261
|
[`${this.wizardKey}-submit`]: 'single',
|
|
259
262
|
[`${this.wizardKey}-link`]: 'multiple',
|
|
260
|
-
[`${this.wizardKey}-tooltip`]: 'multiple'
|
|
263
|
+
[`${this.wizardKey}-tooltip`]: 'multiple',
|
|
261
264
|
});
|
|
262
265
|
if ((this.options.readOnly || this.editMode) && !this.enabledIndex) {
|
|
263
266
|
this.enabledIndex = ((_a = this.pages) === null || _a === void 0 ? void 0 : _a.length) - 1;
|
|
@@ -292,7 +295,7 @@ class Wizard extends Webform_1.default {
|
|
|
292
295
|
}
|
|
293
296
|
isBreadcrumbClickable() {
|
|
294
297
|
let currentPage = null;
|
|
295
|
-
this.pages.map(page => {
|
|
298
|
+
this.pages.map((page) => {
|
|
296
299
|
if (lodash_1.default.isEqual(this.currentPage.component, page.component)) {
|
|
297
300
|
currentPage = page;
|
|
298
301
|
}
|
|
@@ -307,7 +310,7 @@ class Wizard extends Webform_1.default {
|
|
|
307
310
|
}
|
|
308
311
|
isAllowPrevious() {
|
|
309
312
|
let currentPage = null;
|
|
310
|
-
this.pages.map(page => {
|
|
313
|
+
this.pages.map((page) => {
|
|
311
314
|
if (lodash_1.default.isEqual(this.currentPage.component, page.component)) {
|
|
312
315
|
currentPage = page;
|
|
313
316
|
}
|
|
@@ -355,10 +358,12 @@ class Wizard extends Webform_1.default {
|
|
|
355
358
|
buttonElement.setAttribute('disabled', 'disabled');
|
|
356
359
|
this.setLoading(buttonElement, true);
|
|
357
360
|
// Call the button method, then re-enable the button.
|
|
358
|
-
this[button.method]()
|
|
361
|
+
this[button.method]()
|
|
362
|
+
.then(() => {
|
|
359
363
|
buttonElement.removeAttribute('disabled');
|
|
360
364
|
this.setLoading(buttonElement, false);
|
|
361
|
-
})
|
|
365
|
+
})
|
|
366
|
+
.catch(() => {
|
|
362
367
|
buttonElement.removeAttribute('disabled');
|
|
363
368
|
this.setLoading(buttonElement, false);
|
|
364
369
|
});
|
|
@@ -417,15 +422,24 @@ class Wizard extends Webform_1.default {
|
|
|
417
422
|
// Get all components including all nested components and line up in the correct order
|
|
418
423
|
const getAllComponents = (nestedComp, compsArr, pushAllowed = true) => {
|
|
419
424
|
const nestedPages = [];
|
|
420
|
-
const dataArrayComponents = [
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
+
const dataArrayComponents = [
|
|
426
|
+
'datagrid',
|
|
427
|
+
'editgrid',
|
|
428
|
+
'dynamicWizard',
|
|
429
|
+
];
|
|
430
|
+
const currentComponents = (nestedComp === null || nestedComp === void 0 ? void 0 : nestedComp.subForm)
|
|
431
|
+
? this.getSortedComponents(nestedComp.subForm)
|
|
432
|
+
: (nestedComp === null || nestedComp === void 0 ? void 0 : nestedComp.components) || [];
|
|
433
|
+
const visibleComponents = currentComponents.filter((comp) => comp._visible);
|
|
434
|
+
const filteredComponents = visibleComponents.filter((comp) => !dataArrayComponents.includes(comp.component.type) &&
|
|
435
|
+
(comp.type !== 'form' || comp.isNestedWizard));
|
|
436
|
+
const additionalComponents = currentComponents.filter((comp) => { var _a; return ((_a = comp.subForm) === null || _a === void 0 ? void 0 : _a._form.display) !== 'wizard'; });
|
|
425
437
|
let hasNested = false;
|
|
426
438
|
(0, utils_1.eachComponent)(filteredComponents, (comp) => {
|
|
427
439
|
if (comp && comp.component) {
|
|
428
|
-
if (comp.component.type === 'panel' &&
|
|
440
|
+
if (comp.component.type === 'panel' &&
|
|
441
|
+
(comp === null || comp === void 0 ? void 0 : comp.parent.wizard) &&
|
|
442
|
+
!getAllComponents(comp, compsArr, false)) {
|
|
429
443
|
if (pushAllowed) {
|
|
430
444
|
this.setRootPanelId(comp);
|
|
431
445
|
nestedPages.push(comp);
|
|
@@ -474,10 +488,11 @@ class Wizard extends Webform_1.default {
|
|
|
474
488
|
this.allPages = allComponents;
|
|
475
489
|
}
|
|
476
490
|
getSortedComponents({ components, originalComponents }) {
|
|
491
|
+
// sorts components if they were shuffled after the conditional logic
|
|
477
492
|
const currentComponents = [];
|
|
478
493
|
const currentPages = [];
|
|
479
494
|
if (components && components.length) {
|
|
480
|
-
components.map(page => {
|
|
495
|
+
components.map((page) => {
|
|
481
496
|
if (page.component.type === 'panel') {
|
|
482
497
|
currentPages[page.component.key || page.component.title] = page;
|
|
483
498
|
}
|
|
@@ -511,9 +526,9 @@ class Wizard extends Webform_1.default {
|
|
|
511
526
|
this.suffixComps = [];
|
|
512
527
|
const visible = [];
|
|
513
528
|
const currentPages = {};
|
|
514
|
-
const pageOptions = Object.assign(Object.assign({},
|
|
529
|
+
const pageOptions = Object.assign(Object.assign({}, lodash_1.default.clone(this.options)), (this.parent ? { root: this } : {}));
|
|
515
530
|
if (this.components && this.components.length) {
|
|
516
|
-
this.components.forEach(page => {
|
|
531
|
+
this.components.forEach((page) => {
|
|
517
532
|
if (page.component.type === 'panel') {
|
|
518
533
|
currentPages[page.component.key || page.component.title] = page;
|
|
519
534
|
}
|
|
@@ -548,7 +563,7 @@ class Wizard extends Webform_1.default {
|
|
|
548
563
|
page.visible = isVisible;
|
|
549
564
|
this.pages.push(page);
|
|
550
565
|
page.eachComponent((component) => {
|
|
551
|
-
component.page =
|
|
566
|
+
component.page = this.pages.length - 1;
|
|
552
567
|
});
|
|
553
568
|
}
|
|
554
569
|
}
|
|
@@ -590,7 +605,7 @@ class Wizard extends Webform_1.default {
|
|
|
590
605
|
const pageFromPages = this.pages[num];
|
|
591
606
|
const pageFromComponents = this.components[num];
|
|
592
607
|
if (!pageFromComponents || (pageFromPages === null || pageFromPages === void 0 ? void 0 : pageFromPages.id) !== pageFromComponents.id) {
|
|
593
|
-
parentNum = this.components.findIndex(comp => {
|
|
608
|
+
parentNum = this.components.findIndex((comp) => {
|
|
594
609
|
var _a, _b;
|
|
595
610
|
return comp.id === ((_b = (_a = this.pages) === null || _a === void 0 ? void 0 : _a[parentNum]) === null || _b === void 0 ? void 0 : _b.rootPanelId);
|
|
596
611
|
});
|
|
@@ -602,7 +617,9 @@ class Wizard extends Webform_1.default {
|
|
|
602
617
|
return this.redraw().then(() => {
|
|
603
618
|
this.checkData(this.submission.data);
|
|
604
619
|
this.triggerCaptcha(this.currentPage.components);
|
|
605
|
-
const errors = this.submitted
|
|
620
|
+
const errors = this.submitted
|
|
621
|
+
? this.validate(this.localData, { dirty: true })
|
|
622
|
+
: this.validateCurrentPage();
|
|
606
623
|
if (this.alert) {
|
|
607
624
|
this.showErrors(errors, true, true);
|
|
608
625
|
}
|
|
@@ -626,7 +643,9 @@ class Wizard extends Webform_1.default {
|
|
|
626
643
|
}
|
|
627
644
|
}
|
|
628
645
|
get currentPage() {
|
|
629
|
-
return
|
|
646
|
+
return this.pages && this.pages.length >= this.page
|
|
647
|
+
? this.pages[this.page]
|
|
648
|
+
: { components: [] };
|
|
630
649
|
}
|
|
631
650
|
getNextPage() {
|
|
632
651
|
var _a;
|
|
@@ -635,13 +654,13 @@ class Wizard extends Webform_1.default {
|
|
|
635
654
|
const form = this.pages[this.page].component;
|
|
636
655
|
// Check conditional nextPage
|
|
637
656
|
if (form) {
|
|
638
|
-
const page = this.pages.length >
|
|
657
|
+
const page = this.pages.length > this.page + 1 && !this.showAllErrors ? this.page + 1 : -1;
|
|
639
658
|
if (form.nextPage) {
|
|
640
659
|
const next = this.evaluate(form.nextPage, {
|
|
641
660
|
next: page,
|
|
642
661
|
data,
|
|
643
662
|
page,
|
|
644
|
-
form
|
|
663
|
+
form,
|
|
645
664
|
}, 'next');
|
|
646
665
|
if (next === null) {
|
|
647
666
|
this.currentNextPage = null;
|
|
@@ -704,7 +723,9 @@ class Wizard extends Webform_1.default {
|
|
|
704
723
|
}
|
|
705
724
|
// Validate the form before going to the next page
|
|
706
725
|
const currentPageErrors = this.validateCurrentPage({ dirty: true });
|
|
707
|
-
const errors = this.submitted
|
|
726
|
+
const errors = this.submitted
|
|
727
|
+
? this.validate(this.localData, { dirty: true })
|
|
728
|
+
: currentPageErrors;
|
|
708
729
|
// allow going to the next page if the current page is valid, even if there are form level errors
|
|
709
730
|
if (currentPageErrors.length === 0) {
|
|
710
731
|
this.checkData(this.submission.data);
|
|
@@ -778,14 +799,14 @@ class Wizard extends Webform_1.default {
|
|
|
778
799
|
this.originalComponents = [];
|
|
779
800
|
this.component.components.map((item) => {
|
|
780
801
|
if (item.type === 'panel') {
|
|
781
|
-
item.key = (0, utils_1.uniqueKey)(pageKeys,
|
|
802
|
+
item.key = (0, utils_1.uniqueKey)(pageKeys, item.key || 'panel');
|
|
782
803
|
pageKeys[item.key] = true;
|
|
783
804
|
if (this.wizard.full) {
|
|
784
805
|
this.options.show = this.options.show || {};
|
|
785
806
|
this.options.show[item.key] = true;
|
|
786
807
|
}
|
|
787
|
-
else if (Object.prototype.hasOwnProperty.call(this.wizard, 'full')
|
|
788
|
-
|
|
808
|
+
else if (Object.prototype.hasOwnProperty.call(this.wizard, 'full') &&
|
|
809
|
+
!lodash_1.default.isEqual(this.originalOptions.show, this.options.show)) {
|
|
789
810
|
this.options.show = Object.assign({}, (this.originalOptions.show || {}));
|
|
790
811
|
}
|
|
791
812
|
}
|
|
@@ -797,9 +818,11 @@ class Wizard extends Webform_1.default {
|
|
|
797
818
|
title: 'Page 1',
|
|
798
819
|
label: 'Page 1',
|
|
799
820
|
key: 'page1',
|
|
800
|
-
components: this.component.components
|
|
821
|
+
components: this.component.components,
|
|
801
822
|
};
|
|
802
|
-
this.component.components = [
|
|
823
|
+
this.component.components = [
|
|
824
|
+
newPage,
|
|
825
|
+
];
|
|
803
826
|
this.originalComponents.push(lodash_1.default.clone(newPage));
|
|
804
827
|
}
|
|
805
828
|
}
|
|
@@ -810,7 +833,8 @@ class Wizard extends Webform_1.default {
|
|
|
810
833
|
return super.setForm(form, flags);
|
|
811
834
|
}
|
|
812
835
|
onSetForm(clonedForm, initialForm) {
|
|
813
|
-
this.component.components =
|
|
836
|
+
this.component.components =
|
|
837
|
+
(this.parent ? initialForm.components : clonedForm.components) || [];
|
|
814
838
|
this.setComponentSchema();
|
|
815
839
|
}
|
|
816
840
|
setEditMode(submission) {
|
|
@@ -841,23 +865,26 @@ class Wizard extends Webform_1.default {
|
|
|
841
865
|
return changed;
|
|
842
866
|
}
|
|
843
867
|
isClickable(page, index) {
|
|
844
|
-
return this.page !== index &&
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
868
|
+
return (this.page !== index &&
|
|
869
|
+
(0, utils_1.firstNonNil)([
|
|
870
|
+
lodash_1.default.get(page, 'breadcrumbClickable'),
|
|
871
|
+
this.options.breadcrumbSettings.clickable,
|
|
872
|
+
]));
|
|
848
873
|
}
|
|
849
874
|
hasButton(name, nextPage = this.getNextPage()) {
|
|
850
875
|
// get page options with global options as default values
|
|
851
|
-
const { previous = this.options.buttonSettings.showPrevious, cancel = this.options.buttonSettings.showCancel, submit = this.options.buttonSettings.showSubmit, next = this.options.buttonSettings.showNext } = lodash_1.default.get(this.currentPage, 'component.buttonSettings', {});
|
|
876
|
+
const { previous = this.options.buttonSettings.showPrevious, cancel = this.options.buttonSettings.showCancel, submit = this.options.buttonSettings.showSubmit, next = this.options.buttonSettings.showNext, } = lodash_1.default.get(this.currentPage, 'component.buttonSettings', {});
|
|
852
877
|
switch (name) {
|
|
853
878
|
case 'previous':
|
|
854
|
-
return previous &&
|
|
879
|
+
return previous && this.getPreviousPage() > -1;
|
|
855
880
|
case 'next':
|
|
856
|
-
return next &&
|
|
881
|
+
return next && nextPage !== null && nextPage !== -1;
|
|
857
882
|
case 'cancel':
|
|
858
883
|
return cancel && !this.options.readOnly;
|
|
859
884
|
case 'submit':
|
|
860
|
-
return submit &&
|
|
885
|
+
return (submit &&
|
|
886
|
+
!this.options.readOnly &&
|
|
887
|
+
(nextPage === null || this.page === this.pages.length - 1));
|
|
861
888
|
default:
|
|
862
889
|
return true;
|
|
863
890
|
}
|
|
@@ -867,8 +894,7 @@ class Wizard extends Webform_1.default {
|
|
|
867
894
|
// Some panels have the same key....
|
|
868
895
|
return `${page.key}-${page.title}`;
|
|
869
896
|
}
|
|
870
|
-
else if (page.components &&
|
|
871
|
-
page.components.length > 0) {
|
|
897
|
+
else if (page.components && page.components.length > 0) {
|
|
872
898
|
return this.pageId(page.components[0]);
|
|
873
899
|
}
|
|
874
900
|
else {
|
|
@@ -879,7 +905,11 @@ class Wizard extends Webform_1.default {
|
|
|
879
905
|
var _a;
|
|
880
906
|
super.onChange(flags, changed, modified, changes);
|
|
881
907
|
// The onChange loop doesn't need all components for wizards
|
|
882
|
-
const errors =
|
|
908
|
+
const errors = (flags === null || flags === void 0 ? void 0 : flags.noValidate)
|
|
909
|
+
? []
|
|
910
|
+
: this.submitted
|
|
911
|
+
? this.validate(this.localData, { dirty: true })
|
|
912
|
+
: this.validateCurrentPage();
|
|
883
913
|
if (this.alert) {
|
|
884
914
|
this.showErrors(errors, true, true);
|
|
885
915
|
}
|
|
@@ -890,8 +920,10 @@ class Wizard extends Webform_1.default {
|
|
|
890
920
|
const newPanels = this.pages;
|
|
891
921
|
const currentNextPage = this.currentNextPage;
|
|
892
922
|
const panelsUpdated = !lodash_1.default.isEqual(newPanels, currentPanels);
|
|
893
|
-
if (((_a = this.currentPanel) === null || _a === void 0 ? void 0 : _a.id) &&
|
|
894
|
-
|
|
923
|
+
if (((_a = this.currentPanel) === null || _a === void 0 ? void 0 : _a.id) &&
|
|
924
|
+
this.pages.length &&
|
|
925
|
+
(!this.hasSubWizards || (this.hasSubWizards && panelsUpdated))) {
|
|
926
|
+
const newIndex = this.pages.findIndex((page) => page.id === this.currentPanel.id);
|
|
895
927
|
if (newIndex !== -1)
|
|
896
928
|
this.setPage(newIndex);
|
|
897
929
|
}
|
|
@@ -916,9 +948,7 @@ class Wizard extends Webform_1.default {
|
|
|
916
948
|
this.setCustomValidity('');
|
|
917
949
|
return true;
|
|
918
950
|
}
|
|
919
|
-
const components = !currentPageOnly || this.isLastPage()
|
|
920
|
-
? this.getComponents()
|
|
921
|
-
: this.currentPage.components;
|
|
951
|
+
const components = !currentPageOnly || this.isLastPage() ? this.getComponents() : this.currentPage.components;
|
|
922
952
|
return components.reduce((check, comp) => comp.checkValidity(data, dirty, row, currentPageOnly, childErrors) && check, true);
|
|
923
953
|
}
|
|
924
954
|
get errors() {
|
|
@@ -931,7 +961,7 @@ class Wizard extends Webform_1.default {
|
|
|
931
961
|
while (!(topPanel.parent instanceof Wizard)) {
|
|
932
962
|
topPanel = topPanel.parent;
|
|
933
963
|
}
|
|
934
|
-
const pageIndex = this.pages.findIndex(page => page.id === topPanel.id);
|
|
964
|
+
const pageIndex = this.pages.findIndex((page) => page.id === topPanel.id);
|
|
935
965
|
if (pageIndex >= 0) {
|
|
936
966
|
const page = this.pages[pageIndex];
|
|
937
967
|
if (page && page !== this.currentPage) {
|
package/lib/cjs/WizardBuilder.js
CHANGED
|
@@ -32,10 +32,10 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
32
32
|
for (const group in this.groups) {
|
|
33
33
|
if (this.groups[group] && this.groups[group].components) {
|
|
34
34
|
this.groups[group].componentOrder = Object.keys(this.groups[group].components)
|
|
35
|
-
.map(key => this.groups[group].components[key])
|
|
36
|
-
.filter(component => component && !component.ignore)
|
|
35
|
+
.map((key) => this.groups[group].components[key])
|
|
36
|
+
.filter((component) => component && !component.ignore)
|
|
37
37
|
.sort((a, b) => a.weight - b.weight)
|
|
38
|
-
.map(component => component.key);
|
|
38
|
+
.map((component) => component.key);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
const originalRenderComponentsHook = this.options.hooks.renderComponents;
|
|
@@ -88,14 +88,16 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
88
88
|
return remove;
|
|
89
89
|
}
|
|
90
90
|
allowDrop(element) {
|
|
91
|
-
return
|
|
91
|
+
return this.webform && this.webform.refs && this.webform.refs.webform === element
|
|
92
|
+
? false
|
|
93
|
+
: true;
|
|
92
94
|
}
|
|
93
95
|
get pages() {
|
|
94
96
|
return lodash_1.default.filter(this._form.components, { type: 'panel' });
|
|
95
97
|
}
|
|
96
98
|
get currentPage() {
|
|
97
99
|
const pages = this.pages;
|
|
98
|
-
return
|
|
100
|
+
return pages && pages.length >= this.page ? pages[this.page] : null;
|
|
99
101
|
}
|
|
100
102
|
setForm(value) {
|
|
101
103
|
this._form = value;
|
|
@@ -104,11 +106,12 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
104
106
|
}
|
|
105
107
|
if (this.pages.length === 0) {
|
|
106
108
|
const components = this._form.components.filter((component) => component.type !== 'button');
|
|
107
|
-
this._form.components = [
|
|
109
|
+
this._form.components = [
|
|
110
|
+
this.getPageConfig(1, components),
|
|
111
|
+
];
|
|
108
112
|
}
|
|
109
113
|
else {
|
|
110
|
-
const components = this._form.components
|
|
111
|
-
.filter((component) => component.type !== 'button' || component.action !== 'submit');
|
|
114
|
+
const components = this._form.components.filter((component) => component.type !== 'button' || component.action !== 'submit');
|
|
112
115
|
this._form.components = components;
|
|
113
116
|
}
|
|
114
117
|
this.rebuild();
|
|
@@ -139,7 +142,7 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
139
142
|
group,
|
|
140
143
|
groupKey: group.key,
|
|
141
144
|
groupId: `group-container-${groupKey}`,
|
|
142
|
-
subgroups: []
|
|
145
|
+
subgroups: [],
|
|
143
146
|
})),
|
|
144
147
|
})),
|
|
145
148
|
}),
|
|
@@ -156,13 +159,14 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
156
159
|
page.parentNode.dragInfo = { index };
|
|
157
160
|
});
|
|
158
161
|
if (this.dragulaLib) {
|
|
159
|
-
this.navigationDragula = this.dragulaLib([
|
|
160
|
-
|
|
162
|
+
this.navigationDragula = this.dragulaLib([
|
|
163
|
+
this.element.querySelector('.wizard-pages'),
|
|
164
|
+
], {
|
|
165
|
+
moves: (el) => !el.classList.contains('wizard-add-page'),
|
|
161
166
|
accepts: (el, target, source, sibling) => (sibling ? true : false),
|
|
162
|
-
})
|
|
163
|
-
.on('drop', this.onReorder.bind(this));
|
|
167
|
+
}).on('drop', this.onReorder.bind(this));
|
|
164
168
|
}
|
|
165
|
-
this.refs.addPage.forEach(link => {
|
|
169
|
+
this.refs.addPage.forEach((link) => {
|
|
166
170
|
this.addEventListener(link, 'click', (event) => {
|
|
167
171
|
event.preventDefault();
|
|
168
172
|
this.addPage();
|
|
@@ -189,8 +193,12 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
189
193
|
this.webform.setForm({
|
|
190
194
|
display: 'form',
|
|
191
195
|
type: 'form',
|
|
192
|
-
components: page
|
|
193
|
-
|
|
196
|
+
components: page
|
|
197
|
+
? [
|
|
198
|
+
page,
|
|
199
|
+
]
|
|
200
|
+
: [],
|
|
201
|
+
controller: ((_a = this._form) === null || _a === void 0 ? void 0 : _a.controller) || '',
|
|
194
202
|
}, { keepAsReference: true });
|
|
195
203
|
return this.redraw();
|
|
196
204
|
}
|
|
@@ -198,7 +206,7 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
198
206
|
const newPage = page && page.schema ? (0, utils_1.fastCloneDeep)(page.schema) : this.getPageConfig(this.pages.length + 1);
|
|
199
207
|
builder_1.default.uniquify(this._form.components, newPage);
|
|
200
208
|
this._form.components.push(newPage);
|
|
201
|
-
this.emitSaveComponentEvent(newPage, newPage, this._form, 'components',
|
|
209
|
+
this.emitSaveComponentEvent(newPage, newPage, this._form, 'components', this._form.components.length - 1, true, newPage);
|
|
202
210
|
this.emit('change', this._form);
|
|
203
211
|
return this.rebuild();
|
|
204
212
|
}
|
|
@@ -228,7 +236,7 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
228
236
|
}
|
|
229
237
|
const oldPosition = element.dragInfo.index;
|
|
230
238
|
//should drop at next sibling position; no next sibling means drop to last position
|
|
231
|
-
const newPosition =
|
|
239
|
+
const newPosition = sibling && sibling.dragInfo ? sibling.dragInfo.index : this.pages.length;
|
|
232
240
|
const movedBelow = newPosition > oldPosition;
|
|
233
241
|
const formComponents = (0, utils_1.fastCloneDeep)(this._form.components);
|
|
234
242
|
const draggedRowData = this._form.components[oldPosition];
|
|
@@ -261,7 +269,7 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
261
269
|
if (component instanceof WizardBuilder) {
|
|
262
270
|
return;
|
|
263
271
|
}
|
|
264
|
-
if (this._form.components.find(comp => lodash_1.default.isEqual(component.component, comp))) {
|
|
272
|
+
if (this._form.components.find((comp) => lodash_1.default.isEqual(component.component, comp))) {
|
|
265
273
|
this.addPage(component);
|
|
266
274
|
}
|
|
267
275
|
else {
|