@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
|
@@ -20,7 +20,6 @@ if (typeof window !== 'undefined' && typeof window.global === 'undefined') {
|
|
|
20
20
|
}
|
|
21
21
|
const dragula_1 = __importDefault(require("dragula"));
|
|
22
22
|
class WebformBuilder extends Component_1.default {
|
|
23
|
-
// eslint-disable-next-line max-statements
|
|
24
23
|
constructor() {
|
|
25
24
|
let element, options;
|
|
26
25
|
if (arguments[0] instanceof HTMLElement || arguments[1]) {
|
|
@@ -82,17 +81,17 @@ class WebformBuilder extends Component_1.default {
|
|
|
82
81
|
}
|
|
83
82
|
}
|
|
84
83
|
this.groupOrder = this.groupOrder
|
|
85
|
-
.filter(group => group && !group.ignore)
|
|
84
|
+
.filter((group) => group && !group.ignore)
|
|
86
85
|
.sort((a, b) => a.weight - b.weight);
|
|
87
|
-
const defaultOpenedGroup = this.groupOrder.find(x => x.key !== 'basic' && x.default);
|
|
86
|
+
const defaultOpenedGroup = this.groupOrder.find((x) => x.key !== 'basic' && x.default);
|
|
88
87
|
if (defaultOpenedGroup) {
|
|
89
|
-
this.groupOrder.forEach(x => {
|
|
88
|
+
this.groupOrder.forEach((x) => {
|
|
90
89
|
if ('default' in x && x.key !== defaultOpenedGroup.key) {
|
|
91
90
|
x.default = false;
|
|
92
91
|
}
|
|
93
92
|
});
|
|
94
93
|
}
|
|
95
|
-
this.groupOrder = this.groupOrder.map(group => group.key);
|
|
94
|
+
this.groupOrder = this.groupOrder.map((group) => group.key);
|
|
96
95
|
for (const type in Components_1.default.components) {
|
|
97
96
|
const component = Components_1.default.components[type];
|
|
98
97
|
if (component.builderInfo && component.builderInfo.schema) {
|
|
@@ -110,9 +109,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
110
109
|
for (const key in info.components) {
|
|
111
110
|
const compKey = group === 'resource' ? `component-${key}` : key;
|
|
112
111
|
let comp = info.components[compKey];
|
|
113
|
-
if (comp === true &&
|
|
114
|
-
Components_1.default.components[key] &&
|
|
115
|
-
Components_1.default.components[key].builderInfo) {
|
|
112
|
+
if (comp === true && Components_1.default.components[key] && Components_1.default.components[key].builderInfo) {
|
|
116
113
|
comp = Components_1.default.components[key].builderInfo;
|
|
117
114
|
}
|
|
118
115
|
if (comp && comp.schema) {
|
|
@@ -136,7 +133,8 @@ class WebformBuilder extends Component_1.default {
|
|
|
136
133
|
// The main webform shouldn't have this class as it adds extra styles.
|
|
137
134
|
return template;
|
|
138
135
|
}
|
|
139
|
-
if (this.options.disabled && this.options.disabled.includes(self.key) ||
|
|
136
|
+
if ((this.options.disabled && this.options.disabled.includes(self.key)) ||
|
|
137
|
+
self.parent.noDragDrop) {
|
|
140
138
|
return html;
|
|
141
139
|
}
|
|
142
140
|
return this.renderTemplate('builderComponent', {
|
|
@@ -145,20 +143,23 @@ class WebformBuilder extends Component_1.default {
|
|
|
145
143
|
childComponent: component,
|
|
146
144
|
design: (_b = self === null || self === void 0 ? void 0 : self.options) === null || _b === void 0 ? void 0 : _b.design,
|
|
147
145
|
editJson: (_c = self === null || self === void 0 ? void 0 : self.options) === null || _c === void 0 ? void 0 : _c.editJson,
|
|
148
|
-
editComponent: this.hasEditTabs(component.type)
|
|
146
|
+
editComponent: this.hasEditTabs(component.type),
|
|
149
147
|
});
|
|
150
148
|
};
|
|
151
149
|
this.options.hooks.renderComponents = (html, { components, self }) => {
|
|
152
150
|
// if Datagrid and already has a component, don't make it droppable.
|
|
153
|
-
if (self.type === 'datagrid' && components.length > 0 || self.noDragDrop) {
|
|
151
|
+
if ((self.type === 'datagrid' && components.length > 0) || self.noDragDrop) {
|
|
154
152
|
return html;
|
|
155
153
|
}
|
|
156
154
|
if (!components ||
|
|
157
155
|
(!components.length && !components.nodrop) ||
|
|
158
|
-
(self.type === 'form' &&
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
156
|
+
(self.type === 'form' &&
|
|
157
|
+
components.length <= 1 &&
|
|
158
|
+
(components.length === 0 || components[0].type === 'button'))) {
|
|
159
|
+
html =
|
|
160
|
+
this.renderTemplate('builderPlaceholder', {
|
|
161
|
+
position: 0,
|
|
162
|
+
}) + html;
|
|
162
163
|
}
|
|
163
164
|
return this.renderTemplate('builderComponents', {
|
|
164
165
|
key: self.key,
|
|
@@ -195,7 +196,8 @@ class WebformBuilder extends Component_1.default {
|
|
|
195
196
|
this.dragula.containers.push(containerElement);
|
|
196
197
|
}
|
|
197
198
|
// If this is an existing datagrid element, don't make it draggable.
|
|
198
|
-
if ((component.type === 'datagrid' || component.type === 'datamap') &&
|
|
199
|
+
if ((component.type === 'datagrid' || component.type === 'datamap') &&
|
|
200
|
+
components.length > 0) {
|
|
199
201
|
return element;
|
|
200
202
|
}
|
|
201
203
|
// Since we added a wrapper, need to return the original element so that we can find the components inside it.
|
|
@@ -217,19 +219,27 @@ class WebformBuilder extends Component_1.default {
|
|
|
217
219
|
params: {
|
|
218
220
|
type: 'resource',
|
|
219
221
|
limit: 1000000,
|
|
220
|
-
select: '_id,title,name,components'
|
|
221
|
-
}
|
|
222
|
+
select: '_id,title,name,components',
|
|
223
|
+
},
|
|
222
224
|
};
|
|
223
225
|
if (this.options && this.options.resourceTag) {
|
|
224
|
-
query.params.tags = [
|
|
226
|
+
query.params.tags = [
|
|
227
|
+
this.options.resourceTag,
|
|
228
|
+
];
|
|
225
229
|
}
|
|
226
230
|
else if (!this.options || !this.options.hasOwnProperty('resourceTag')) {
|
|
227
|
-
query.params.tags = [
|
|
231
|
+
query.params.tags = [
|
|
232
|
+
'builder',
|
|
233
|
+
];
|
|
228
234
|
}
|
|
229
235
|
const formio = new Formio_1.Formio(Formio_1.Formio.projectUrl);
|
|
230
236
|
const isResourcesDisabled = this.options.builder && this.options.builder.resource === false;
|
|
231
|
-
formio
|
|
232
|
-
|
|
237
|
+
formio
|
|
238
|
+
.loadProject()
|
|
239
|
+
.then((project) => {
|
|
240
|
+
if (project &&
|
|
241
|
+
(lodash_1.default.get(project, 'settings.addConfigToForms', false) ||
|
|
242
|
+
lodash_1.default.get(project, 'addConfigToForms', false))) {
|
|
233
243
|
const config = project.config || {};
|
|
234
244
|
this.options.formConfig = config;
|
|
235
245
|
const pathToFormConfig = 'webform._form.config';
|
|
@@ -238,13 +248,13 @@ class WebformBuilder extends Component_1.default {
|
|
|
238
248
|
lodash_1.default.set(this, pathToFormConfig, config);
|
|
239
249
|
}
|
|
240
250
|
}
|
|
241
|
-
})
|
|
251
|
+
})
|
|
252
|
+
.catch((err) => {
|
|
242
253
|
console.warn(`Could not load project settings: ${err.message || err}`);
|
|
243
254
|
});
|
|
244
255
|
if (!formio.noProject && !isResourcesDisabled && formio.formsUrl) {
|
|
245
256
|
const resourceOptions = this.options.builder && this.options.builder.resource;
|
|
246
|
-
formio.loadForms(query)
|
|
247
|
-
.then((resources) => {
|
|
257
|
+
formio.loadForms(query).then((resources) => {
|
|
248
258
|
if (resources.length) {
|
|
249
259
|
this.builder.resource = {
|
|
250
260
|
title: resourceOptions ? resourceOptions.title : 'Existing Resource Fields',
|
|
@@ -252,7 +262,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
252
262
|
weight: resourceOptions ? resourceOptions.weight : 50,
|
|
253
263
|
subgroups: [],
|
|
254
264
|
components: [],
|
|
255
|
-
componentOrder: []
|
|
265
|
+
componentOrder: [],
|
|
256
266
|
};
|
|
257
267
|
this.groups.resource = {
|
|
258
268
|
title: resourceOptions ? resourceOptions.title : 'Existing Resource Fields',
|
|
@@ -260,7 +270,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
260
270
|
weight: resourceOptions ? resourceOptions.weight : 50,
|
|
261
271
|
subgroups: [],
|
|
262
272
|
components: [],
|
|
263
|
-
componentOrder: []
|
|
273
|
+
componentOrder: [],
|
|
264
274
|
};
|
|
265
275
|
if (!this.groupOrder.includes('resource')) {
|
|
266
276
|
this.groupOrder.push('resource');
|
|
@@ -310,7 +320,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
310
320
|
group: 'resource',
|
|
311
321
|
subgroup: resourceKey,
|
|
312
322
|
}, {
|
|
313
|
-
schema: Object.assign(Object.assign({}, component), { label: component.label, key: component.key, lockKey: true, source:
|
|
323
|
+
schema: Object.assign(Object.assign({}, component), { label: component.label, key: component.key, lockKey: true, source: !this.options.noSource ? resource._id : undefined, isNew: true }),
|
|
314
324
|
});
|
|
315
325
|
}, true);
|
|
316
326
|
this.groups.resource.subgroups.push(subgroup);
|
|
@@ -322,9 +332,12 @@ class WebformBuilder extends Component_1.default {
|
|
|
322
332
|
allowHTML: true,
|
|
323
333
|
trigger: 'mouseenter focus',
|
|
324
334
|
placement: 'top',
|
|
325
|
-
delay: [
|
|
335
|
+
delay: [
|
|
336
|
+
200,
|
|
337
|
+
0,
|
|
338
|
+
],
|
|
326
339
|
zIndex: 10000,
|
|
327
|
-
content: title
|
|
340
|
+
content: title,
|
|
328
341
|
});
|
|
329
342
|
}
|
|
330
343
|
attachComponent(element, component) {
|
|
@@ -339,7 +352,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
339
352
|
moveComponent: 'single',
|
|
340
353
|
copyComponent: 'single',
|
|
341
354
|
pasteComponent: 'single',
|
|
342
|
-
editJson: 'single'
|
|
355
|
+
editJson: 'single',
|
|
343
356
|
});
|
|
344
357
|
if (component.refs.copyComponent) {
|
|
345
358
|
this.attachTooltip(component.refs.copyComponent, this.t('Copy'));
|
|
@@ -363,7 +376,9 @@ class WebformBuilder extends Component_1.default {
|
|
|
363
376
|
const parent = this.getParentElement(element);
|
|
364
377
|
if (component.refs.editComponent) {
|
|
365
378
|
this.attachTooltip(component.refs.editComponent, this.t('Edit'));
|
|
366
|
-
component.addEventListener(component.refs.editComponent, 'click', () => this.editComponent(component.schema, parent, false, false, component.component, {
|
|
379
|
+
component.addEventListener(component.refs.editComponent, 'click', () => this.editComponent(component.schema, parent, false, false, component.component, {
|
|
380
|
+
inDataGrid: component.isInDataGrid,
|
|
381
|
+
}));
|
|
367
382
|
}
|
|
368
383
|
if (component.refs.editJson) {
|
|
369
384
|
this.attachTooltip(component.refs.editJson, this.t('Edit JSON'));
|
|
@@ -379,7 +394,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
379
394
|
this.webform = new Webform_1.default(this.element, options);
|
|
380
395
|
if (this.element) {
|
|
381
396
|
this.loadRefs(this.element, {
|
|
382
|
-
form: 'single'
|
|
397
|
+
form: 'single',
|
|
383
398
|
});
|
|
384
399
|
if (this.refs.form) {
|
|
385
400
|
this.webform.element = this.refs.form;
|
|
@@ -403,20 +418,20 @@ class WebformBuilder extends Component_1.default {
|
|
|
403
418
|
},
|
|
404
419
|
advanced: {
|
|
405
420
|
title: 'Advanced',
|
|
406
|
-
weight: 10
|
|
421
|
+
weight: 10,
|
|
407
422
|
},
|
|
408
423
|
layout: {
|
|
409
424
|
title: 'Layout',
|
|
410
|
-
weight: 20
|
|
425
|
+
weight: 20,
|
|
411
426
|
},
|
|
412
427
|
data: {
|
|
413
428
|
title: 'Data',
|
|
414
|
-
weight: 30
|
|
429
|
+
weight: 30,
|
|
415
430
|
},
|
|
416
431
|
premium: {
|
|
417
432
|
title: 'Premium',
|
|
418
|
-
weight: 40
|
|
419
|
-
}
|
|
433
|
+
weight: 40,
|
|
434
|
+
},
|
|
420
435
|
};
|
|
421
436
|
}
|
|
422
437
|
redraw() {
|
|
@@ -453,7 +468,10 @@ class WebformBuilder extends Component_1.default {
|
|
|
453
468
|
const componentSchema = component.component;
|
|
454
469
|
// If the current component is the namespace, we don't need to find it again.
|
|
455
470
|
if (namespaceKey === component.key) {
|
|
456
|
-
return [
|
|
471
|
+
return [
|
|
472
|
+
...componentSchema.components,
|
|
473
|
+
componentSchema,
|
|
474
|
+
];
|
|
457
475
|
}
|
|
458
476
|
// Get the namespace component so we have the original object.
|
|
459
477
|
const namespaceComponent = (0, utils_1.getComponent)(this.form.components, namespaceKey, true);
|
|
@@ -465,7 +483,16 @@ class WebformBuilder extends Component_1.default {
|
|
|
465
483
|
return null;
|
|
466
484
|
}
|
|
467
485
|
// Some components are their own namespace.
|
|
468
|
-
if ([
|
|
486
|
+
if ([
|
|
487
|
+
'address',
|
|
488
|
+
'container',
|
|
489
|
+
'datagrid',
|
|
490
|
+
'editgrid',
|
|
491
|
+
'dynamicWizard',
|
|
492
|
+
'tree',
|
|
493
|
+
].includes(component.type) ||
|
|
494
|
+
component.tree ||
|
|
495
|
+
component.arrayTree) {
|
|
469
496
|
return component.key;
|
|
470
497
|
}
|
|
471
498
|
// Anything else, keep going up.
|
|
@@ -485,7 +512,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
485
512
|
group,
|
|
486
513
|
groupKey: group.key,
|
|
487
514
|
groupId: `group-container-${groupKey}`,
|
|
488
|
-
subgroups: []
|
|
515
|
+
subgroups: [],
|
|
489
516
|
})),
|
|
490
517
|
keyboardActionsEnabled: this.keyboardActionsEnabled,
|
|
491
518
|
})),
|
|
@@ -504,7 +531,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
504
531
|
sidebar: 'single',
|
|
505
532
|
'sidebar-search': 'single',
|
|
506
533
|
'sidebar-groups': 'single',
|
|
507
|
-
|
|
534
|
+
container: 'multiple',
|
|
508
535
|
'sidebar-anchor': 'multiple',
|
|
509
536
|
'sidebar-group': 'multiple',
|
|
510
537
|
'sidebar-container': 'multiple',
|
|
@@ -530,11 +557,15 @@ class WebformBuilder extends Component_1.default {
|
|
|
530
557
|
};
|
|
531
558
|
const hideShow = (group, forceShow, toggle = false) => {
|
|
532
559
|
if (forceShow || (toggle && !Array.from(group.classList).includes('show'))) {
|
|
533
|
-
group.classList.add([
|
|
560
|
+
group.classList.add([
|
|
561
|
+
'show',
|
|
562
|
+
]);
|
|
534
563
|
group.style.display = 'inherit';
|
|
535
564
|
}
|
|
536
565
|
else {
|
|
537
|
-
group.classList.remove([
|
|
566
|
+
group.classList.remove([
|
|
567
|
+
'show',
|
|
568
|
+
]);
|
|
538
569
|
group.style.display = 'none';
|
|
539
570
|
}
|
|
540
571
|
};
|
|
@@ -551,7 +582,9 @@ class WebformBuilder extends Component_1.default {
|
|
|
551
582
|
const openByDefault = getAttribute(group, 'default') === 'true';
|
|
552
583
|
const groupId = group.getAttribute('id').slice('group-'.length);
|
|
553
584
|
const groupParent = getAttribute(group, 'parent').slice('#builder-sidebar-'.length);
|
|
554
|
-
if ((
|
|
585
|
+
if ((openByDefault && groupParent === clickedId) ||
|
|
586
|
+
groupId === clickedParentId ||
|
|
587
|
+
groupIndex === index) {
|
|
555
588
|
hideShow(group, false, true);
|
|
556
589
|
}
|
|
557
590
|
});
|
|
@@ -576,13 +609,15 @@ class WebformBuilder extends Component_1.default {
|
|
|
576
609
|
}
|
|
577
610
|
const drake = this.dragula;
|
|
578
611
|
if (this.refs.form) {
|
|
579
|
-
(0, dom_autoscroller_1.default)([
|
|
612
|
+
(0, dom_autoscroller_1.default)([
|
|
613
|
+
window,
|
|
614
|
+
], {
|
|
580
615
|
margin: 20,
|
|
581
616
|
maxSpeed: 6,
|
|
582
617
|
scrollWhenOutside: true,
|
|
583
618
|
autoScroll: function () {
|
|
584
619
|
return this.down && (drake === null || drake === void 0 ? void 0 : drake.dragging);
|
|
585
|
-
}
|
|
620
|
+
},
|
|
586
621
|
});
|
|
587
622
|
return this.webform.attach(this.refs.form);
|
|
588
623
|
}
|
|
@@ -617,30 +652,29 @@ class WebformBuilder extends Component_1.default {
|
|
|
617
652
|
};
|
|
618
653
|
const filterGroupOrder = (groupOrder, searchValue) => {
|
|
619
654
|
const result = lodash_1.default.cloneDeep(groupOrder);
|
|
620
|
-
return result.filter(key => filterGroupBy(this.groups[key], searchValue));
|
|
655
|
+
return result.filter((key) => filterGroupBy(this.groups[key], searchValue));
|
|
621
656
|
};
|
|
622
657
|
const filterSubgroups = (groups, searchValue) => {
|
|
623
658
|
const result = lodash_1.default.clone(groups);
|
|
624
659
|
return result
|
|
625
|
-
.map(subgroup => filterGroupBy(subgroup, searchValue))
|
|
626
|
-
.filter(subgroup => !lodash_1.default.isNull(subgroup));
|
|
660
|
+
.map((subgroup) => filterGroupBy(subgroup, searchValue))
|
|
661
|
+
.filter((subgroup) => !lodash_1.default.isNull(subgroup));
|
|
627
662
|
};
|
|
628
|
-
const toTemplate = groupKey => {
|
|
663
|
+
const toTemplate = (groupKey) => {
|
|
629
664
|
return {
|
|
630
665
|
group: filterGroupBy(this.groups[groupKey], searchValue),
|
|
631
666
|
groupKey,
|
|
632
667
|
groupId: sidebar.id || sidebarGroups.id,
|
|
633
|
-
subgroups: filterSubgroups(this.groups[groupKey].subgroups, searchValue)
|
|
634
|
-
.map((group) => this.renderTemplate('builderSidebarGroup', {
|
|
668
|
+
subgroups: filterSubgroups(this.groups[groupKey].subgroups, searchValue).map((group) => this.renderTemplate('builderSidebarGroup', {
|
|
635
669
|
group,
|
|
636
670
|
groupKey: group.key,
|
|
637
671
|
groupId: `group-container-${groupKey}`,
|
|
638
|
-
subgroups: []
|
|
672
|
+
subgroups: [],
|
|
639
673
|
})),
|
|
640
674
|
};
|
|
641
675
|
};
|
|
642
676
|
sidebarGroups.innerHTML = filterGroupOrder(this.groupOrder, searchValue)
|
|
643
|
-
.map(groupKey => this.renderTemplate('builderSidebarGroup', toTemplate(groupKey)))
|
|
677
|
+
.map((groupKey) => this.renderTemplate('builderSidebarGroup', toTemplate(groupKey)))
|
|
644
678
|
.join('');
|
|
645
679
|
this.loadRefs(this.element, {
|
|
646
680
|
'sidebar-groups': 'single',
|
|
@@ -658,10 +692,10 @@ class WebformBuilder extends Component_1.default {
|
|
|
658
692
|
const isResource = groupInfo.key.indexOf('resource-') === 0;
|
|
659
693
|
if (components) {
|
|
660
694
|
groupInfo.componentOrder = Object.keys(components)
|
|
661
|
-
.map(key => components[key])
|
|
662
|
-
.filter(component => component && !component.ignore && !component.ignoreForForm)
|
|
695
|
+
.map((key) => components[key])
|
|
696
|
+
.filter((component) => component && !component.ignore && !component.ignoreForForm)
|
|
663
697
|
.sort((a, b) => a.weight - b.weight)
|
|
664
|
-
.map(component => isResource ? `component-${component.key}` : component.key);
|
|
698
|
+
.map((component) => (isResource ? `component-${component.key}` : component.key));
|
|
665
699
|
}
|
|
666
700
|
}
|
|
667
701
|
updateDragAndDrop() {
|
|
@@ -677,7 +711,9 @@ class WebformBuilder extends Component_1.default {
|
|
|
677
711
|
if (this.dragula) {
|
|
678
712
|
this.dragula.destroy();
|
|
679
713
|
}
|
|
680
|
-
const containersArray = Array.prototype.slice
|
|
714
|
+
const containersArray = Array.prototype.slice
|
|
715
|
+
.call(this.refs['sidebar-container'])
|
|
716
|
+
.filter((item) => {
|
|
681
717
|
return item.id !== 'group-container-resource';
|
|
682
718
|
});
|
|
683
719
|
if (!dragula_1.default) {
|
|
@@ -686,8 +722,8 @@ class WebformBuilder extends Component_1.default {
|
|
|
686
722
|
this.dragula = (0, dragula_1.default)(containersArray, {
|
|
687
723
|
moves(el) {
|
|
688
724
|
let moves = true;
|
|
689
|
-
const list = Array.from(el.classList).filter(item => item.indexOf('formio-component-') === 0);
|
|
690
|
-
list.forEach(item => {
|
|
725
|
+
const list = Array.from(el.classList).filter((item) => item.indexOf('formio-component-') === 0);
|
|
726
|
+
list.forEach((item) => {
|
|
691
727
|
const key = item.slice('formio-component-'.length);
|
|
692
728
|
if (options.disabled && options.disabled.includes(key)) {
|
|
693
729
|
moves = false;
|
|
@@ -703,7 +739,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
703
739
|
},
|
|
704
740
|
accepts(el, target) {
|
|
705
741
|
return !el.contains(target) && !target.classList.contains('no-drop');
|
|
706
|
-
}
|
|
742
|
+
},
|
|
707
743
|
}).on('drop', (element, target, source, sibling) => this.onDrop(element, target, source, sibling));
|
|
708
744
|
}
|
|
709
745
|
detach() {
|
|
@@ -737,7 +773,8 @@ class WebformBuilder extends Component_1.default {
|
|
|
737
773
|
info = (0, utils_1.fastCloneDeep)(groupComponents[key].schema);
|
|
738
774
|
}
|
|
739
775
|
}
|
|
740
|
-
else if (group === 'searchFields') {
|
|
776
|
+
else if (group === 'searchFields') {
|
|
777
|
+
//Search components go into this group
|
|
741
778
|
const resourceGroups = this.groups.resource.subgroups;
|
|
742
779
|
for (let ix = 0; ix < resourceGroups.length; ix++) {
|
|
743
780
|
const resourceGroup = resourceGroups[ix];
|
|
@@ -765,22 +802,21 @@ class WebformBuilder extends Component_1.default {
|
|
|
765
802
|
let tabIndex = 0;
|
|
766
803
|
switch (parent.type) {
|
|
767
804
|
case 'table':
|
|
768
|
-
tableRowIndex = lodash_1.default.findIndex(parent.rows, row => row.some(column => column.components.some(comp => comp.key === component.key)));
|
|
769
|
-
tableColumnIndex = lodash_1.default.findIndex(parent.rows[tableRowIndex], (column => column.components.some(comp => comp.key === component.key))
|
|
805
|
+
tableRowIndex = lodash_1.default.findIndex(parent.rows, (row) => row.some((column) => column.components.some((comp) => comp.key === component.key)));
|
|
806
|
+
tableColumnIndex = lodash_1.default.findIndex(parent.rows[tableRowIndex], (column) => column.components.some((comp) => comp.key === component.key));
|
|
770
807
|
path = `rows[${tableRowIndex}][${tableColumnIndex}].components`;
|
|
771
808
|
break;
|
|
772
809
|
case 'columns':
|
|
773
|
-
columnIndex = lodash_1.default.findIndex(parent.columns, column => column.components.some(comp => comp.key === component.key));
|
|
810
|
+
columnIndex = lodash_1.default.findIndex(parent.columns, (column) => column.components.some((comp) => comp.key === component.key));
|
|
774
811
|
path = `columns[${columnIndex}].components`;
|
|
775
812
|
break;
|
|
776
813
|
case 'tabs':
|
|
777
|
-
tabIndex = lodash_1.default.findIndex(parent.components, tab => tab.components.some(comp => comp.key === component.key));
|
|
814
|
+
tabIndex = lodash_1.default.findIndex(parent.components, (tab) => tab.components.some((comp) => comp.key === component.key));
|
|
778
815
|
path = `components[${tabIndex}].components`;
|
|
779
816
|
break;
|
|
780
817
|
}
|
|
781
818
|
return path;
|
|
782
819
|
}
|
|
783
|
-
/* eslint-disable max-statements */
|
|
784
820
|
onDrop(element, target, source, sibling) {
|
|
785
821
|
var _a;
|
|
786
822
|
if (!target) {
|
|
@@ -816,7 +852,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
816
852
|
return;
|
|
817
853
|
}
|
|
818
854
|
// Show an error if siblings are disabled for a component and such a component already exists.
|
|
819
|
-
const compKey =
|
|
855
|
+
const compKey = group === 'resource' ? `component-${key}` : key;
|
|
820
856
|
const draggableComponent = ((_a = this.groups[group]) === null || _a === void 0 ? void 0 : _a.components[compKey]) || {};
|
|
821
857
|
if (draggableComponent.disableSiblings) {
|
|
822
858
|
let isCompAlreadyExists = false;
|
|
@@ -855,8 +891,10 @@ class WebformBuilder extends Component_1.default {
|
|
|
855
891
|
if (target.formioContainer) {
|
|
856
892
|
if (sibling) {
|
|
857
893
|
if (!sibling.getAttribute('data-noattach')) {
|
|
858
|
-
index = lodash_1.default.findIndex(target.formioContainer, {
|
|
859
|
-
|
|
894
|
+
index = lodash_1.default.findIndex(target.formioContainer, {
|
|
895
|
+
key: lodash_1.default.get(sibling, 'formioComponent.component.key'),
|
|
896
|
+
});
|
|
897
|
+
index = index === -1 ? 0 : index;
|
|
860
898
|
}
|
|
861
899
|
else {
|
|
862
900
|
index = sibling.getAttribute('data-position');
|
|
@@ -878,11 +916,11 @@ class WebformBuilder extends Component_1.default {
|
|
|
878
916
|
parent.addChildComponent(info, element, target, source, sibling);
|
|
879
917
|
}
|
|
880
918
|
const componentInDataGrid = parent.type === 'datagrid';
|
|
881
|
-
if (isNew
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
919
|
+
if (isNew &&
|
|
920
|
+
!this.options.noNewEdit &&
|
|
921
|
+
!info.noNewEdit &&
|
|
922
|
+
this.hasEditTabs(info.type) &&
|
|
923
|
+
!(this.options.design && info.type === 'reviewpage')) {
|
|
886
924
|
this.editComponent(info, target, isNew, null, null, { inDataGrid: componentInDataGrid });
|
|
887
925
|
}
|
|
888
926
|
// Only rebuild the parts needing to be rebuilt.
|
|
@@ -946,12 +984,12 @@ class WebformBuilder extends Component_1.default {
|
|
|
946
984
|
block: false,
|
|
947
985
|
action: 'submit',
|
|
948
986
|
disableOnInvalid: true,
|
|
949
|
-
theme: 'primary'
|
|
987
|
+
theme: 'primary',
|
|
950
988
|
});
|
|
951
989
|
}
|
|
952
990
|
if (this.webform) {
|
|
953
991
|
const shouldRebuild = !this.webform.form.components ||
|
|
954
|
-
|
|
992
|
+
form.components.length !== this.webform.form.components.length;
|
|
955
993
|
return this.webform.setForm(form, { keepAsReference: true }).then(() => {
|
|
956
994
|
if (this.refs.form) {
|
|
957
995
|
this.builderHeight = this.refs.form.offsetHeight;
|
|
@@ -968,7 +1006,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
968
1006
|
//populate isEnabled for captcha form settings
|
|
969
1007
|
let isCaptchaEnabled = false;
|
|
970
1008
|
if (this.form.components) {
|
|
971
|
-
(0, utils_1.eachComponent)(form.components, component => {
|
|
1009
|
+
(0, utils_1.eachComponent)(form.components, (component) => {
|
|
972
1010
|
if (isCaptchaEnabled) {
|
|
973
1011
|
return;
|
|
974
1012
|
}
|
|
@@ -995,7 +1033,8 @@ class WebformBuilder extends Component_1.default {
|
|
|
995
1033
|
(Array.isArray(component.rows) && component.rows.length) ||
|
|
996
1034
|
(Array.isArray(component.columns) && component.columns.length));
|
|
997
1035
|
if (this.options.alwaysConfirmComponentRemoval || removingComponentsGroup) {
|
|
998
|
-
const message = removingComponentsGroup
|
|
1036
|
+
const message = removingComponentsGroup
|
|
1037
|
+
? 'Removing this component will also remove all of its children. Are you sure you want to do this?'
|
|
999
1038
|
: 'Are you sure you want to remove this component?';
|
|
1000
1039
|
remove = window.confirm(this.t(message));
|
|
1001
1040
|
}
|
|
@@ -1014,7 +1053,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
1014
1053
|
if (component.input && componentInstance && parent.formioComponent) {
|
|
1015
1054
|
const parentDefaultValue = lodash_1.default.get(parent.formioComponent, 'component.defaultValue', null);
|
|
1016
1055
|
if (Array.isArray(parentDefaultValue)) {
|
|
1017
|
-
parentDefaultValue.forEach(v => lodash_1.default.unset(v, componentInstance.key));
|
|
1056
|
+
parentDefaultValue.forEach((v) => lodash_1.default.unset(v, componentInstance.key));
|
|
1018
1057
|
}
|
|
1019
1058
|
else if (typeof parentDefaultValue === 'object') {
|
|
1020
1059
|
lodash_1.default.unset(parentDefaultValue, componentInstance.key);
|
|
@@ -1039,23 +1078,29 @@ class WebformBuilder extends Component_1.default {
|
|
|
1039
1078
|
}
|
|
1040
1079
|
}
|
|
1041
1080
|
updateComponent(component, changed) {
|
|
1042
|
-
const sanitizeConfig = lodash_1.default.get(this.webform, 'form.settings.sanitizeConfig') ||
|
|
1081
|
+
const sanitizeConfig = lodash_1.default.get(this.webform, 'form.settings.sanitizeConfig') ||
|
|
1082
|
+
lodash_1.default.get(this.webform, 'form.globalSettings.sanitizeConfig');
|
|
1043
1083
|
// Update the preview.
|
|
1044
1084
|
if (this.preview) {
|
|
1045
1085
|
this.preview.form = {
|
|
1046
|
-
components: [
|
|
1086
|
+
components: [
|
|
1087
|
+
lodash_1.default.omit(Object.assign({}, component), [
|
|
1047
1088
|
'hidden',
|
|
1048
1089
|
'conditional',
|
|
1049
1090
|
'calculateValue',
|
|
1050
1091
|
'logic',
|
|
1051
1092
|
'autofocus',
|
|
1052
1093
|
'customConditional',
|
|
1053
|
-
])
|
|
1094
|
+
]),
|
|
1095
|
+
],
|
|
1054
1096
|
config: this.options.formConfig || {},
|
|
1055
1097
|
sanitizeConfig,
|
|
1056
1098
|
};
|
|
1057
|
-
const fieldsToRemoveDoubleQuotes = [
|
|
1058
|
-
|
|
1099
|
+
const fieldsToRemoveDoubleQuotes = [
|
|
1100
|
+
'label',
|
|
1101
|
+
'tooltip',
|
|
1102
|
+
];
|
|
1103
|
+
this.preview.form.components.forEach((component) => this.replaceDoubleQuotes(component, fieldsToRemoveDoubleQuotes));
|
|
1059
1104
|
const previewElement = this.componentEdit.querySelector(`[${this._referenceAttributeName}="preview"]`);
|
|
1060
1105
|
if (previewElement) {
|
|
1061
1106
|
this.setContent(previewElement, this.preview.render(), null, sanitizeConfig);
|
|
@@ -1065,8 +1110,11 @@ class WebformBuilder extends Component_1.default {
|
|
|
1065
1110
|
// Change the "default value" field to be reflective of this component.
|
|
1066
1111
|
const defaultValueComponent = (0, utils_1.getComponent)(this.editForm.components, 'defaultValue', true);
|
|
1067
1112
|
if (defaultValueComponent && component.type !== 'hidden') {
|
|
1068
|
-
const defaultChanged = changed &&
|
|
1069
|
-
|
|
1113
|
+
const defaultChanged = changed &&
|
|
1114
|
+
((changed.component && changed.component.key === 'defaultValue') ||
|
|
1115
|
+
(changed.instance &&
|
|
1116
|
+
defaultValueComponent.hasComponent &&
|
|
1117
|
+
defaultValueComponent.hasComponent(changed.instance)));
|
|
1070
1118
|
if (!defaultChanged) {
|
|
1071
1119
|
lodash_1.default.assign(defaultValueComponent.component, lodash_1.default.omit(Object.assign({}, component), [
|
|
1072
1120
|
'key',
|
|
@@ -1095,12 +1143,12 @@ class WebformBuilder extends Component_1.default {
|
|
|
1095
1143
|
if (!this.originalDefaultValue) {
|
|
1096
1144
|
this.originalDefaultValue = (0, utils_1.fastCloneDeep)(defaultValueComponent.component);
|
|
1097
1145
|
}
|
|
1098
|
-
(0, utils_1.eachComponent)(defaultValueComponent.component.components, (comp => {
|
|
1146
|
+
(0, utils_1.eachComponent)(defaultValueComponent.component.components, (comp) => {
|
|
1099
1147
|
var _a;
|
|
1100
1148
|
if ((_a = comp.validate) === null || _a === void 0 ? void 0 : _a.required) {
|
|
1101
1149
|
comp.validate.required = false;
|
|
1102
1150
|
}
|
|
1103
|
-
})
|
|
1151
|
+
});
|
|
1104
1152
|
}
|
|
1105
1153
|
const parentComponent = defaultValueComponent.parent;
|
|
1106
1154
|
let tabIndex = -1;
|
|
@@ -1156,9 +1204,15 @@ class WebformBuilder extends Component_1.default {
|
|
|
1156
1204
|
const isLayout = (0, utils_1.componentInfo)(comp).layout;
|
|
1157
1205
|
if (!isLayout) {
|
|
1158
1206
|
if (keys.has(paths.dataPath)) {
|
|
1159
|
-
const onlyRadioCheckboxes = ((_a = repeatablePaths[paths.dataPath]) === null || _a === void 0 ? void 0 : _a.onlyRadioCheckboxes) === false
|
|
1207
|
+
const onlyRadioCheckboxes = ((_a = repeatablePaths[paths.dataPath]) === null || _a === void 0 ? void 0 : _a.onlyRadioCheckboxes) === false
|
|
1208
|
+
? false
|
|
1209
|
+
: isRadioCheckbox;
|
|
1160
1210
|
repeatablePaths[paths.dataPath] = {
|
|
1161
|
-
comps: [
|
|
1211
|
+
comps: [
|
|
1212
|
+
...(((_b = repeatablePaths[paths.dataPath]) === null || _b === void 0 ? void 0 : _b.comps) || []),
|
|
1213
|
+
keys.get(paths.dataPath),
|
|
1214
|
+
comp,
|
|
1215
|
+
],
|
|
1162
1216
|
onlyRadioCheckboxes,
|
|
1163
1217
|
};
|
|
1164
1218
|
}
|
|
@@ -1203,7 +1257,9 @@ class WebformBuilder extends Component_1.default {
|
|
|
1203
1257
|
const parentContainer = parent ? parent.formioContainer : this.container;
|
|
1204
1258
|
const parentComponent = parent ? parent.formioComponent : this;
|
|
1205
1259
|
this.dialog.close();
|
|
1206
|
-
const path = parentContainer
|
|
1260
|
+
const path = parentContainer
|
|
1261
|
+
? this.getComponentsPath(component, parentComponent.component)
|
|
1262
|
+
: '';
|
|
1207
1263
|
if (!original) {
|
|
1208
1264
|
original = parent.formioContainer.find((comp) => comp.id === component.id);
|
|
1209
1265
|
}
|
|
@@ -1215,7 +1271,10 @@ class WebformBuilder extends Component_1.default {
|
|
|
1215
1271
|
submissionData.components = this.originalDefaultValue.components;
|
|
1216
1272
|
this.originalDefaultValue = null;
|
|
1217
1273
|
}
|
|
1218
|
-
const fieldsToRemoveDoubleQuotes = [
|
|
1274
|
+
const fieldsToRemoveDoubleQuotes = [
|
|
1275
|
+
'label',
|
|
1276
|
+
'tooltip',
|
|
1277
|
+
];
|
|
1219
1278
|
this.replaceDoubleQuotes(submissionData, fieldsToRemoveDoubleQuotes);
|
|
1220
1279
|
this.hook('beforeSaveComponentSettings', submissionData);
|
|
1221
1280
|
let comp = null;
|
|
@@ -1239,7 +1298,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
1239
1298
|
const rebuild = parentComponent.rebuild() || Promise.resolve();
|
|
1240
1299
|
return rebuild.then(() => {
|
|
1241
1300
|
parentComponent.resetValue();
|
|
1242
|
-
const schema = parentContainer ? parentContainer[index] :
|
|
1301
|
+
const schema = parentContainer ? parentContainer[index] : comp ? comp.schema : [];
|
|
1243
1302
|
this.emitSaveComponentEvent(schema, originalComp, parentComponent.schema, path, index, isNew, originalComponentSchema);
|
|
1244
1303
|
this.emit('change', this.form);
|
|
1245
1304
|
this.highlightInvalidComponents();
|
|
@@ -1284,7 +1343,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
1284
1343
|
this.editForm.addEventListener(saveButton, 'click', (event) => {
|
|
1285
1344
|
event.preventDefault();
|
|
1286
1345
|
const errors = this.editForm.validate(this.editForm.data, {
|
|
1287
|
-
dirty: true
|
|
1346
|
+
dirty: true,
|
|
1288
1347
|
});
|
|
1289
1348
|
if (errors.length) {
|
|
1290
1349
|
this.editForm.setPristine(false);
|
|
@@ -1344,62 +1403,74 @@ class WebformBuilder extends Component_1.default {
|
|
|
1344
1403
|
editFormOptions.editComponent = component;
|
|
1345
1404
|
editFormOptions.flags = flags;
|
|
1346
1405
|
this.hook('editComponentParentInstance', editFormOptions, parent);
|
|
1347
|
-
this.editForm = new Webform_1.default(Object.assign(Object.assign(Object.assign(Object.assign({}, lodash_1.default.omit(this.options, [
|
|
1406
|
+
this.editForm = new Webform_1.default(Object.assign(Object.assign(Object.assign(Object.assign({}, lodash_1.default.omit(this.options, [
|
|
1407
|
+
'hooks',
|
|
1408
|
+
'builder',
|
|
1409
|
+
'events',
|
|
1410
|
+
'attachMode',
|
|
1411
|
+
'skipInit',
|
|
1412
|
+
])), { language: this.options.language }), editFormOptions), { evalContext: Object.assign(Object.assign({}, ((editFormOptions === null || editFormOptions === void 0 ? void 0 : editFormOptions.evalContext) || ((_a = this.options) === null || _a === void 0 ? void 0 : _a.evalContext) || {})), { buildingForm: this.form }) }));
|
|
1348
1413
|
this.hook('editFormProperties', parent);
|
|
1349
|
-
this.editForm.form =
|
|
1350
|
-
|
|
1351
|
-
{
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1414
|
+
this.editForm.form =
|
|
1415
|
+
isJsonEdit && !isCustom
|
|
1416
|
+
? {
|
|
1417
|
+
components: [
|
|
1418
|
+
{
|
|
1419
|
+
type: 'textarea',
|
|
1420
|
+
as: 'json',
|
|
1421
|
+
editor: 'ace',
|
|
1422
|
+
weight: 10,
|
|
1423
|
+
input: true,
|
|
1424
|
+
key: 'componentJson',
|
|
1425
|
+
label: 'Component JSON',
|
|
1426
|
+
tooltip: 'Edit the JSON for this component.',
|
|
1427
|
+
},
|
|
1428
|
+
{
|
|
1429
|
+
type: 'checkbox',
|
|
1430
|
+
key: 'showFullSchema',
|
|
1431
|
+
label: 'Full Schema',
|
|
1432
|
+
},
|
|
1433
|
+
],
|
|
1365
1434
|
}
|
|
1366
|
-
|
|
1367
|
-
} : ComponentClass.editForm(lodash_1.default.cloneDeep(overrides));
|
|
1435
|
+
: ComponentClass.editForm(lodash_1.default.cloneDeep(overrides));
|
|
1368
1436
|
const instanceOptions = {
|
|
1369
1437
|
inFormBuilder: true,
|
|
1370
1438
|
};
|
|
1371
1439
|
this.hook('instanceOptionsPreview', instanceOptions);
|
|
1372
1440
|
const instance = new ComponentClass(componentCopy, instanceOptions);
|
|
1373
1441
|
const schema = this.hook('builderComponentSchema', component, instance);
|
|
1374
|
-
this.editForm.submission = isJsonEdit
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1442
|
+
this.editForm.submission = isJsonEdit
|
|
1443
|
+
? {
|
|
1444
|
+
data: {
|
|
1445
|
+
componentJson: schema,
|
|
1446
|
+
showFullSchema: this.options.showFullJsonSchema,
|
|
1447
|
+
},
|
|
1448
|
+
}
|
|
1449
|
+
: {
|
|
1450
|
+
data: instance.component,
|
|
1451
|
+
};
|
|
1382
1452
|
if (this.preview) {
|
|
1383
1453
|
this.preview.destroy();
|
|
1384
1454
|
}
|
|
1385
|
-
if (!ComponentClass.builderInfo.hasOwnProperty('preview') ||
|
|
1455
|
+
if (!ComponentClass.builderInfo.hasOwnProperty('preview') ||
|
|
1456
|
+
ComponentClass.builderInfo.preview) {
|
|
1386
1457
|
this.preview = new Webform_1.default(lodash_1.default.omit(Object.assign(Object.assign({}, this.options), { preview: true }), [
|
|
1387
1458
|
'hooks',
|
|
1388
1459
|
'builder',
|
|
1389
1460
|
'events',
|
|
1390
1461
|
'attachMode',
|
|
1391
|
-
'calculateValue'
|
|
1462
|
+
'calculateValue',
|
|
1392
1463
|
]));
|
|
1393
1464
|
this.hook('previewFormSettitngs', schema, isJsonEdit);
|
|
1394
1465
|
}
|
|
1395
1466
|
this.showPreview = (_b = ComponentClass.builderInfo.showPreview) !== null && _b !== void 0 ? _b : true;
|
|
1396
|
-
this.componentEdit = this.ce('div', {
|
|
1467
|
+
this.componentEdit = this.ce('div', { class: 'component-edit-container' });
|
|
1397
1468
|
this.setContent(this.componentEdit, this.renderTemplate('builderEditForm', {
|
|
1398
1469
|
componentInfo: ComponentClass.builderInfo,
|
|
1399
1470
|
editForm: this.editForm.render(),
|
|
1400
1471
|
preview: this.preview ? this.preview.render() : false,
|
|
1401
1472
|
showPreview: this.showPreview,
|
|
1402
|
-
helplinks: this.helplinks
|
|
1473
|
+
helplinks: this.helplinks,
|
|
1403
1474
|
}));
|
|
1404
1475
|
this.dialog = this.createModal(this.componentEdit, lodash_1.default.get(this.options, 'dialogAttr', {}));
|
|
1405
1476
|
// This is the attach step.
|
|
@@ -1413,27 +1484,33 @@ class WebformBuilder extends Component_1.default {
|
|
|
1413
1484
|
this.editForm.submission = {
|
|
1414
1485
|
data: {
|
|
1415
1486
|
componentJson: value ? instance.component : component,
|
|
1416
|
-
showFullSchema: value
|
|
1487
|
+
showFullSchema: value,
|
|
1417
1488
|
},
|
|
1418
1489
|
};
|
|
1419
1490
|
return;
|
|
1420
1491
|
}
|
|
1421
1492
|
// See if this is a manually modified key. Treat custom component keys as manually modified
|
|
1422
|
-
if ((event.changed.component &&
|
|
1493
|
+
if ((event.changed.component && event.changed.component.key === 'key') || isJsonEdit) {
|
|
1423
1494
|
componentCopy.keyModified = true;
|
|
1424
1495
|
}
|
|
1425
1496
|
let isComponentLabelChanged = false;
|
|
1426
1497
|
if (event.changed.instance) {
|
|
1427
|
-
isComponentLabelChanged = [
|
|
1498
|
+
isComponentLabelChanged = [
|
|
1499
|
+
'label',
|
|
1500
|
+
'title',
|
|
1501
|
+
].includes(event.changed.instance.path);
|
|
1428
1502
|
}
|
|
1429
1503
|
else if (event.changed.component) {
|
|
1430
|
-
isComponentLabelChanged = [
|
|
1504
|
+
isComponentLabelChanged = [
|
|
1505
|
+
'label',
|
|
1506
|
+
'title',
|
|
1507
|
+
].includes(event.changed.component.key);
|
|
1431
1508
|
}
|
|
1432
1509
|
if (isComponentLabelChanged) {
|
|
1433
1510
|
// Ensure this component has a key.
|
|
1434
1511
|
if (isNew) {
|
|
1435
1512
|
if (!event.data.keyModified) {
|
|
1436
|
-
this.editForm.everyComponent(component => {
|
|
1513
|
+
this.editForm.everyComponent((component) => {
|
|
1437
1514
|
if (component.key === 'key' && component.parent.component.key === 'tabs') {
|
|
1438
1515
|
component.setValue(this.updateComponentKey(event.data));
|
|
1439
1516
|
return false;
|
|
@@ -1443,7 +1520,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
1443
1520
|
if (this.form) {
|
|
1444
1521
|
let formComponents = this.findNamespaceRoot(parent.formioComponent);
|
|
1445
1522
|
// excluding component which key uniqueness is to be checked to prevent the comparing of the same keys
|
|
1446
|
-
formComponents = formComponents.filter(comp => editFormOptions.editComponent.id !== comp.id);
|
|
1523
|
+
formComponents = formComponents.filter((comp) => editFormOptions.editComponent.id !== comp.id);
|
|
1447
1524
|
// Set a unique key for this component.
|
|
1448
1525
|
builder_1.default.uniquify(formComponents, event.data);
|
|
1449
1526
|
}
|
|
@@ -1452,7 +1529,9 @@ class WebformBuilder extends Component_1.default {
|
|
|
1452
1529
|
// If the edit form has any nested form inside, we get a partial data (nested form's data) in the
|
|
1453
1530
|
// event.data property
|
|
1454
1531
|
let editFormData;
|
|
1455
|
-
if (event.changed.instance &&
|
|
1532
|
+
if (event.changed.instance &&
|
|
1533
|
+
event.changed.instance.root &&
|
|
1534
|
+
event.changed.instance.root.id !== this.editForm.id) {
|
|
1456
1535
|
editFormData = this.editForm.data;
|
|
1457
1536
|
}
|
|
1458
1537
|
// Update the component.
|
|
@@ -1479,10 +1558,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
1479
1558
|
this.emit('editComponent', component);
|
|
1480
1559
|
}
|
|
1481
1560
|
updateComponentKey(data) {
|
|
1482
|
-
return lodash_1.default.camelCase(data.title ||
|
|
1483
|
-
data.label ||
|
|
1484
|
-
data.placeholder ||
|
|
1485
|
-
data.type).replace(/^[0-9]*/, '');
|
|
1561
|
+
return lodash_1.default.camelCase(data.title || data.label || data.placeholder || data.type).replace(/^[0-9]*/, '');
|
|
1486
1562
|
}
|
|
1487
1563
|
moveComponent(component) {
|
|
1488
1564
|
var _a;
|
|
@@ -1517,7 +1593,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
1517
1593
|
}
|
|
1518
1594
|
}
|
|
1519
1595
|
const len = source.formioComponent.components.length;
|
|
1520
|
-
index =
|
|
1596
|
+
index = index === -1 ? 0 : index + step;
|
|
1521
1597
|
if (index === -1) {
|
|
1522
1598
|
source.formioContainer.push(info);
|
|
1523
1599
|
source.appendChild(element);
|
|
@@ -1610,7 +1686,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
1610
1686
|
parent.formioComponent.saveChildComponent(schema, false);
|
|
1611
1687
|
}
|
|
1612
1688
|
parent.formioComponent.rebuild();
|
|
1613
|
-
this.emitSaveComponentEvent(schema, schema, parent.formioComponent.component, path,
|
|
1689
|
+
this.emitSaveComponentEvent(schema, schema, parent.formioComponent.component, path, index + 1, true, schema);
|
|
1614
1690
|
}
|
|
1615
1691
|
this.emit('change', this.form);
|
|
1616
1692
|
}
|
|
@@ -1671,10 +1747,7 @@ class WebformBuilder extends Component_1.default {
|
|
|
1671
1747
|
}
|
|
1672
1748
|
}
|
|
1673
1749
|
generateKey(info) {
|
|
1674
|
-
return info.key || lodash_1.default.camelCase(info.title ||
|
|
1675
|
-
info.label ||
|
|
1676
|
-
info.placeholder ||
|
|
1677
|
-
info.type);
|
|
1750
|
+
return info.key || lodash_1.default.camelCase(info.title || info.label || info.placeholder || info.type);
|
|
1678
1751
|
}
|
|
1679
1752
|
hasEditTabs(type) {
|
|
1680
1753
|
// If the component type does not exist then it has no edit tabs
|