@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
|
@@ -11,7 +11,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
11
11
|
clearOnHide: true,
|
|
12
12
|
input: true,
|
|
13
13
|
tree: true,
|
|
14
|
-
components: []
|
|
14
|
+
components: [],
|
|
15
15
|
}, ...extend);
|
|
16
16
|
}
|
|
17
17
|
static get builderInfo() {
|
|
@@ -22,7 +22,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
22
22
|
documentation: '/userguide/form-building/data-components#data-grid',
|
|
23
23
|
showPreview: false,
|
|
24
24
|
weight: 30,
|
|
25
|
-
schema: DataGridComponent.schema()
|
|
25
|
+
schema: DataGridComponent.schema(),
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
constructor(...args) {
|
|
@@ -34,7 +34,9 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
34
34
|
this.components = this.components || [];
|
|
35
35
|
// Add new values based on minLength.
|
|
36
36
|
this.rows = [];
|
|
37
|
-
this.columns = [
|
|
37
|
+
this.columns = [
|
|
38
|
+
...this.component.components,
|
|
39
|
+
];
|
|
38
40
|
if (this.initRows || !_.isEqual(this.dataValue, this.emptyValue)) {
|
|
39
41
|
this.createRows(true);
|
|
40
42
|
}
|
|
@@ -62,7 +64,11 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
62
64
|
return this.builderMode || this.path === 'defaultValue' || !this.initEmpty;
|
|
63
65
|
}
|
|
64
66
|
get emptyValue() {
|
|
65
|
-
return this.initEmpty
|
|
67
|
+
return this.initEmpty
|
|
68
|
+
? []
|
|
69
|
+
: [
|
|
70
|
+
{},
|
|
71
|
+
];
|
|
66
72
|
}
|
|
67
73
|
get addAnotherPosition() {
|
|
68
74
|
return _.get(this.component, 'addAnotherPosition', 'bottom');
|
|
@@ -80,15 +86,21 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
80
86
|
const isEmptyInit = this.initEmpty;
|
|
81
87
|
// Ensure we have one and only one row in builder mode.
|
|
82
88
|
if (isBuilderMode || (isEmptyInit && !this.dataValue.length)) {
|
|
83
|
-
return isEmptyInit && !isBuilderMode
|
|
89
|
+
return isEmptyInit && !isBuilderMode
|
|
90
|
+
? []
|
|
91
|
+
: [
|
|
92
|
+
{},
|
|
93
|
+
];
|
|
84
94
|
}
|
|
85
95
|
const value = super.defaultValue;
|
|
86
96
|
let defaultValue;
|
|
87
97
|
if (Array.isArray(value)) {
|
|
88
98
|
defaultValue = value;
|
|
89
99
|
}
|
|
90
|
-
else if (value &&
|
|
91
|
-
defaultValue = [
|
|
100
|
+
else if (value && typeof value === 'object') {
|
|
101
|
+
defaultValue = [
|
|
102
|
+
value,
|
|
103
|
+
];
|
|
92
104
|
}
|
|
93
105
|
else {
|
|
94
106
|
defaultValue = this.emptyValue;
|
|
@@ -138,11 +150,23 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
138
150
|
* @returns {Array<T[]>} - The chunked rows
|
|
139
151
|
*/
|
|
140
152
|
getRowChunks(groups, rows) {
|
|
141
|
-
const [, chunks] = groups.reduce(([startIndex, acc], size) => {
|
|
153
|
+
const [, chunks,] = groups.reduce(([startIndex, acc,], size) => {
|
|
142
154
|
const endIndex = startIndex + size;
|
|
143
|
-
return [
|
|
144
|
-
|
|
145
|
-
|
|
155
|
+
return [
|
|
156
|
+
endIndex,
|
|
157
|
+
[
|
|
158
|
+
...acc,
|
|
159
|
+
[
|
|
160
|
+
startIndex,
|
|
161
|
+
endIndex,
|
|
162
|
+
],
|
|
163
|
+
],
|
|
164
|
+
];
|
|
165
|
+
}, [
|
|
166
|
+
0,
|
|
167
|
+
[],
|
|
168
|
+
]);
|
|
169
|
+
return chunks.map((range) => _.slice(rows, ...range));
|
|
146
170
|
}
|
|
147
171
|
/**
|
|
148
172
|
* Create groups object.
|
|
@@ -155,11 +179,13 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
155
179
|
const indexes = sizes.reduce((groupIndexes, size) => {
|
|
156
180
|
const last = groupIndexes[groupIndexes.length - 1];
|
|
157
181
|
return groupIndexes.concat(last + size);
|
|
158
|
-
}, [
|
|
182
|
+
}, [
|
|
183
|
+
0,
|
|
184
|
+
]);
|
|
159
185
|
return groups.reduce((gidxs, group, idx) => {
|
|
160
186
|
return {
|
|
161
187
|
...gidxs,
|
|
162
|
-
[indexes[idx]]: group
|
|
188
|
+
[indexes[idx]]: group,
|
|
163
189
|
};
|
|
164
190
|
}, {});
|
|
165
191
|
}
|
|
@@ -180,20 +206,29 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
180
206
|
this.dataValue = _.range(n).map(() => ({}));
|
|
181
207
|
}
|
|
182
208
|
hasExtraColumn() {
|
|
183
|
-
return
|
|
209
|
+
return this.hasRemoveButtons() || this.canAddColumn;
|
|
184
210
|
}
|
|
185
211
|
hasRemoveButtons() {
|
|
186
|
-
return !this.builderMode &&
|
|
212
|
+
return (!this.builderMode &&
|
|
213
|
+
!this.component.disableAddingRemovingRows &&
|
|
187
214
|
!this.options.readOnly &&
|
|
188
215
|
!this.disabled &&
|
|
189
216
|
this.fullMode &&
|
|
190
|
-
|
|
217
|
+
this.dataValue.length > _.get(this.component, 'validate.minLength', 0));
|
|
191
218
|
}
|
|
192
219
|
hasTopSubmit() {
|
|
193
|
-
return this.hasAddButton() &&
|
|
220
|
+
return (this.hasAddButton() &&
|
|
221
|
+
[
|
|
222
|
+
'top',
|
|
223
|
+
'both',
|
|
224
|
+
].includes(this.addAnotherPosition));
|
|
194
225
|
}
|
|
195
226
|
hasBottomSubmit() {
|
|
196
|
-
return this.hasAddButton() &&
|
|
227
|
+
return (this.hasAddButton() &&
|
|
228
|
+
[
|
|
229
|
+
'bottom',
|
|
230
|
+
'both',
|
|
231
|
+
].includes(this.addAnotherPosition));
|
|
197
232
|
}
|
|
198
233
|
get canAddColumn() {
|
|
199
234
|
return this.builderMode && !this.options.design;
|
|
@@ -234,11 +269,11 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
234
269
|
placeholder: this.renderTemplate('builderPlaceholder', {
|
|
235
270
|
position: this.componentComponents.length,
|
|
236
271
|
}),
|
|
237
|
-
colWidth: colWidth.toString()
|
|
272
|
+
colWidth: colWidth.toString(),
|
|
238
273
|
}));
|
|
239
274
|
}
|
|
240
275
|
getRows() {
|
|
241
|
-
return this.rows.map(row => {
|
|
276
|
+
return this.rows.map((row) => {
|
|
242
277
|
const components = {};
|
|
243
278
|
_.each(row, (col, key) => {
|
|
244
279
|
components[key] = col.render();
|
|
@@ -248,7 +283,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
248
283
|
}
|
|
249
284
|
getColumns() {
|
|
250
285
|
return this.columns.filter((comp) => {
|
|
251
|
-
return
|
|
286
|
+
return !this.visibleColumns.hasOwnProperty(comp.key) || this.visibleColumns[comp.key];
|
|
252
287
|
});
|
|
253
288
|
}
|
|
254
289
|
hasHeader() {
|
|
@@ -270,7 +305,9 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
270
305
|
this.refs[`${this.datagridKey}-row`].forEach((row, index) => {
|
|
271
306
|
row.dragInfo = { index };
|
|
272
307
|
});
|
|
273
|
-
this.dragula = dragula([
|
|
308
|
+
this.dragula = dragula([
|
|
309
|
+
this.refs[`${this.datagridKey}-tbody`],
|
|
310
|
+
], {
|
|
274
311
|
moves: (_draggedElement, _oldParent, clickedElement) => {
|
|
275
312
|
const clickedElementKey = clickedElement.getAttribute('data-key');
|
|
276
313
|
const oldParentKey = _oldParent.getAttribute('data-key');
|
|
@@ -278,7 +315,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
278
315
|
if (oldParentKey === clickedElementKey) {
|
|
279
316
|
return clickedElement.classList.contains('formio-drag-button');
|
|
280
317
|
}
|
|
281
|
-
}
|
|
318
|
+
},
|
|
282
319
|
}).on('drop', this.onReorder.bind(this));
|
|
283
320
|
this.dragula.on('cloned', (el, original) => {
|
|
284
321
|
if (el && el.children && original && original.children) {
|
|
@@ -314,7 +351,9 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
314
351
|
this.rows.forEach((row, rowIndex) => {
|
|
315
352
|
let columnIndex = 0;
|
|
316
353
|
columns.forEach((col) => {
|
|
317
|
-
this.attachComponents(this.refs[this.datagridKey][
|
|
354
|
+
this.attachComponents(this.refs[this.datagridKey][rowIndex * rowLength + columnIndex], [
|
|
355
|
+
this.rows[rowIndex][col.key],
|
|
356
|
+
], this.getComponentsContainer());
|
|
318
357
|
columnIndex++;
|
|
319
358
|
});
|
|
320
359
|
});
|
|
@@ -390,7 +429,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
390
429
|
this.rows[index] = this.createRowComponents(row, index);
|
|
391
430
|
this.emit('dataGridAddRow', {
|
|
392
431
|
component: this.component,
|
|
393
|
-
row
|
|
432
|
+
row,
|
|
394
433
|
});
|
|
395
434
|
this.checkConditions();
|
|
396
435
|
this.triggerChange({ modified: true });
|
|
@@ -400,12 +439,16 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
400
439
|
}
|
|
401
440
|
updateComponentsRowIndex(components, rowIndex) {
|
|
402
441
|
components.forEach((component, colIndex) => {
|
|
442
|
+
if (this.componentsMap[component.paths.dataPath]) {
|
|
443
|
+
delete this.componentsMap[component.paths.dataPath];
|
|
444
|
+
}
|
|
403
445
|
if (component.options?.name) {
|
|
404
446
|
const newName = `[${this.key}][${rowIndex}]`;
|
|
405
447
|
component.options.name = component.options.name.replace(`[${this.key}][${component.rowIndex}]`, newName);
|
|
406
448
|
}
|
|
407
449
|
component.rowIndex = rowIndex;
|
|
408
450
|
component.row = `${rowIndex}-${colIndex}`;
|
|
451
|
+
this.componentsMap[component.paths.dataPath] = component;
|
|
409
452
|
});
|
|
410
453
|
}
|
|
411
454
|
updateRowsComponents(rowIndex) {
|
|
@@ -418,7 +461,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
418
461
|
const flags = { isReordered: !makeEmpty, resetValue: makeEmpty };
|
|
419
462
|
this.splice(index, flags);
|
|
420
463
|
this.emit('dataGridDeleteRow', { index });
|
|
421
|
-
const [row] = this.rows.splice(index, 1);
|
|
464
|
+
const [row,] = this.rows.splice(index, 1);
|
|
422
465
|
this.removeSubmissionMetadataRow(index);
|
|
423
466
|
this.removeRowComponents(row);
|
|
424
467
|
this.updateRowsComponents(index);
|
|
@@ -457,7 +500,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
457
500
|
const removed = !!removedRows.length;
|
|
458
501
|
// Delete components of extra rows (to make sure that this.components contain only components of exisiting rows)
|
|
459
502
|
if (removed) {
|
|
460
|
-
removedRows.forEach(row => this.removeRowComponents(row));
|
|
503
|
+
removedRows.forEach((row) => this.removeRowComponents(row));
|
|
461
504
|
}
|
|
462
505
|
if (!init && (added || removed)) {
|
|
463
506
|
this.redraw();
|
|
@@ -478,7 +521,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
478
521
|
_.set(formComp, 'components', changed.component.components);
|
|
479
522
|
}
|
|
480
523
|
// If we're in a nested form we need to ensure our changes are triggered upstream
|
|
481
|
-
if (changed.instance.root?.id &&
|
|
524
|
+
if (changed.instance.root?.id && this.root?.id !== changed.instance.root.id) {
|
|
482
525
|
changed.instance.root.triggerChange(flags, changed, modified);
|
|
483
526
|
}
|
|
484
527
|
else {
|
|
@@ -491,14 +534,13 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
491
534
|
columnComponent = col;
|
|
492
535
|
}
|
|
493
536
|
else {
|
|
494
|
-
columnComponent = { ...col, id:
|
|
537
|
+
columnComponent = { ...col, id: col.id + rowIndex };
|
|
495
538
|
}
|
|
496
539
|
const component = this.createComponent(columnComponent, options, row);
|
|
497
540
|
component.parentDisabled = !!this.disabled;
|
|
498
541
|
component.rowIndex = rowIndex;
|
|
499
542
|
component.inDataGrid = true;
|
|
500
|
-
if (columnComponent.tabindex &&
|
|
501
|
-
parseInt(columnComponent.tabindex) > this.tabIndex) {
|
|
543
|
+
if (columnComponent.tabindex && parseInt(columnComponent.tabindex) > this.tabIndex) {
|
|
502
544
|
this.tabIndex = parseInt(columnComponent.tabindex);
|
|
503
545
|
}
|
|
504
546
|
components[col.key] = component;
|
|
@@ -519,12 +561,16 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
519
561
|
const dataValue = this.dataValue;
|
|
520
562
|
this.rows.forEach((row, rowIndex) => {
|
|
521
563
|
_.each(row, (col, key) => {
|
|
522
|
-
if (col &&
|
|
564
|
+
if (col && typeof col.checkConditions === 'function') {
|
|
523
565
|
const firstRowCheck = visibility[key] === undefined;
|
|
524
|
-
visibility[key] =
|
|
525
|
-
|
|
566
|
+
visibility[key] =
|
|
567
|
+
!!visibility[key] ||
|
|
568
|
+
(col.checkConditions(data, flags, dataValue[rowIndex]) && col.type !== 'hidden');
|
|
526
569
|
if (col.component.logic && firstRowCheck) {
|
|
527
|
-
const compIndex = _.findIndex(this.columns, [
|
|
570
|
+
const compIndex = _.findIndex(this.columns, [
|
|
571
|
+
'key',
|
|
572
|
+
key,
|
|
573
|
+
]);
|
|
528
574
|
const equalColumns = _.isEqualWith(this.columns[compIndex], col.component, (col1, col2, key) => {
|
|
529
575
|
// Don't compare columns by their auto-generated ids.
|
|
530
576
|
if (key === 'id') {
|
|
@@ -568,11 +614,15 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
568
614
|
}
|
|
569
615
|
if (!Array.isArray(value)) {
|
|
570
616
|
if (typeof value === 'object') {
|
|
571
|
-
value = [
|
|
617
|
+
value = [
|
|
618
|
+
value,
|
|
619
|
+
];
|
|
572
620
|
}
|
|
573
621
|
else {
|
|
574
622
|
this.createRows();
|
|
575
|
-
value = [
|
|
623
|
+
value = [
|
|
624
|
+
{},
|
|
625
|
+
];
|
|
576
626
|
}
|
|
577
627
|
}
|
|
578
628
|
// Make sure we always have at least one row.
|
|
@@ -583,7 +633,8 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
583
633
|
const isSettingSubmission = flags.fromSubmission && !_.isEqual(value, this.emptyValue);
|
|
584
634
|
const changed = this.hasChanged(value, this.dataValue);
|
|
585
635
|
this.dataValue = value;
|
|
586
|
-
if (this.initRows ||
|
|
636
|
+
if (this.initRows ||
|
|
637
|
+
isSettingSubmission ||
|
|
587
638
|
(Array.isArray(this.dataValue) && this.dataValue.length !== this.rows.length)) {
|
|
588
639
|
if (!this.createRows() && changed) {
|
|
589
640
|
this.redraw();
|
|
@@ -606,7 +657,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
606
657
|
}
|
|
607
658
|
toggleGroup(element, index) {
|
|
608
659
|
element.classList.toggle('collapsed');
|
|
609
|
-
_.each(this.refs.chunks[index], row => {
|
|
660
|
+
_.each(this.refs.chunks[index], (row) => {
|
|
610
661
|
row.classList.toggle('hidden');
|
|
611
662
|
});
|
|
612
663
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export default [
|
|
2
2
|
{
|
|
3
3
|
key: 'placeholder',
|
|
4
|
-
ignore: true
|
|
4
|
+
ignore: true,
|
|
5
5
|
},
|
|
6
6
|
{
|
|
7
7
|
type: 'checkbox',
|
|
@@ -49,7 +49,7 @@ export default [
|
|
|
49
49
|
input: true,
|
|
50
50
|
customConditional(context) {
|
|
51
51
|
return !context.data.disableAddingRemovingRows;
|
|
52
|
-
}
|
|
52
|
+
},
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
type: 'select',
|
|
@@ -63,13 +63,13 @@ export default [
|
|
|
63
63
|
values: [
|
|
64
64
|
{ label: 'Top', value: 'top' },
|
|
65
65
|
{ label: 'Bottom', value: 'bottom' },
|
|
66
|
-
{ label: 'Both', value: 'both' }
|
|
67
|
-
]
|
|
66
|
+
{ label: 'Both', value: 'both' },
|
|
67
|
+
],
|
|
68
68
|
},
|
|
69
69
|
weight: 411,
|
|
70
70
|
customConditional(context) {
|
|
71
71
|
return !context.data.disableAddingRemovingRows;
|
|
72
|
-
}
|
|
72
|
+
},
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
type: 'checkbox',
|
|
@@ -83,7 +83,7 @@ export default [
|
|
|
83
83
|
type: 'checkbox',
|
|
84
84
|
label: 'Enable Row Groups',
|
|
85
85
|
weight: 440,
|
|
86
|
-
input: true
|
|
86
|
+
input: true,
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
label: 'Groups',
|
|
@@ -110,9 +110,9 @@ export default [
|
|
|
110
110
|
input: true,
|
|
111
111
|
key: 'label',
|
|
112
112
|
widget: {
|
|
113
|
-
type: ''
|
|
113
|
+
type: '',
|
|
114
114
|
},
|
|
115
|
-
row: '0-0'
|
|
115
|
+
row: '0-0',
|
|
116
116
|
},
|
|
117
117
|
{
|
|
118
118
|
label: 'Number of Rows',
|
|
@@ -122,11 +122,11 @@ export default [
|
|
|
122
122
|
type: 'number',
|
|
123
123
|
input: true,
|
|
124
124
|
key: 'numberOfRows',
|
|
125
|
-
row: '0-1'
|
|
126
|
-
}
|
|
125
|
+
row: '0-1',
|
|
126
|
+
},
|
|
127
127
|
],
|
|
128
128
|
weight: 441,
|
|
129
|
-
conditional: { json: { var: 'data.enableRowGroups' } }
|
|
129
|
+
conditional: { json: { var: 'data.enableRowGroups' } },
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
label: 'Hide Group on Header Click',
|
|
@@ -134,7 +134,7 @@ export default [
|
|
|
134
134
|
input: true,
|
|
135
135
|
key: 'groupToggle',
|
|
136
136
|
weight: 442,
|
|
137
|
-
conditional: { json: { var: 'data.enableRowGroups' } }
|
|
137
|
+
conditional: { json: { var: 'data.enableRowGroups' } },
|
|
138
138
|
},
|
|
139
139
|
{
|
|
140
140
|
label: 'Initialize Empty',
|
|
@@ -142,6 +142,6 @@ export default [
|
|
|
142
142
|
input: true,
|
|
143
143
|
key: 'initEmpty',
|
|
144
144
|
tooltip: 'The DataGrid will have no visible rows when initialized.',
|
|
145
|
-
weight: 450
|
|
146
|
-
}
|
|
145
|
+
weight: 450,
|
|
146
|
+
},
|
|
147
147
|
];
|
|
@@ -10,7 +10,7 @@ export default [
|
|
|
10
10
|
placeholder: 'Minimum Length',
|
|
11
11
|
type: 'textfield',
|
|
12
12
|
tooltip: 'The minimum length requirement this field must meet.',
|
|
13
|
-
input: true
|
|
13
|
+
input: true,
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
weight: 120,
|
|
@@ -19,6 +19,6 @@ export default [
|
|
|
19
19
|
placeholder: 'Maximum Length',
|
|
20
20
|
type: 'textfield',
|
|
21
21
|
tooltip: 'The maximum length requirement this field must meet.',
|
|
22
|
-
input: true
|
|
23
|
-
}
|
|
22
|
+
input: true,
|
|
23
|
+
},
|
|
24
24
|
];
|
|
@@ -10,11 +10,11 @@ export default function (...extend) {
|
|
|
10
10
|
return Components.baseEditForm([
|
|
11
11
|
{
|
|
12
12
|
key: 'display',
|
|
13
|
-
components: DataMapEditDisplay
|
|
13
|
+
components: DataMapEditDisplay,
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
key: 'data',
|
|
17
|
-
components: DataMapEditData
|
|
17
|
+
components: DataMapEditData,
|
|
18
18
|
},
|
|
19
19
|
], ...extend);
|
|
20
20
|
}
|
|
@@ -17,13 +17,13 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
17
17
|
type: 'textfield',
|
|
18
18
|
key: 'value',
|
|
19
19
|
label: 'Value',
|
|
20
|
-
input: true
|
|
20
|
+
input: true,
|
|
21
21
|
},
|
|
22
22
|
input: true,
|
|
23
23
|
validate: {
|
|
24
24
|
maxLength: 0,
|
|
25
|
-
minLength: 0
|
|
26
|
-
}
|
|
25
|
+
minLength: 0,
|
|
26
|
+
},
|
|
27
27
|
}, ...extend);
|
|
28
28
|
}
|
|
29
29
|
static get builderInfo() {
|
|
@@ -34,18 +34,20 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
34
34
|
documentation: '/userguide/form-building/data-components#data-map',
|
|
35
35
|
showPreview: false,
|
|
36
36
|
weight: 20,
|
|
37
|
-
schema: DataMapComponent.schema()
|
|
37
|
+
schema: DataMapComponent.schema(),
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
40
|
get schema() {
|
|
41
41
|
const schema = super.schema;
|
|
42
|
-
if (this.components &&
|
|
42
|
+
if (this.components && this.components.length > 0) {
|
|
43
43
|
schema.valueComponent = this.components[this.components.length - 1].schema;
|
|
44
44
|
}
|
|
45
45
|
return _.omit(schema, 'components');
|
|
46
46
|
}
|
|
47
47
|
static savedValueTypes(schema) {
|
|
48
|
-
return getComponentSavedTypes(schema) || [
|
|
48
|
+
return (getComponentSavedTypes(schema) || [
|
|
49
|
+
componentValueTypes.object,
|
|
50
|
+
]);
|
|
49
51
|
}
|
|
50
52
|
constructor(component, options, data) {
|
|
51
53
|
super(component, options, data);
|
|
@@ -57,7 +59,7 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
57
59
|
this.createRows();
|
|
58
60
|
this.visibleColumns = {
|
|
59
61
|
key: true,
|
|
60
|
-
[this.valueKey]: true
|
|
62
|
+
[this.valueKey]: true,
|
|
61
63
|
};
|
|
62
64
|
this.component.valueComponent.hideLabel = true;
|
|
63
65
|
}
|
|
@@ -99,7 +101,9 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
99
101
|
getRowValues() {
|
|
100
102
|
const dataValue = this.dataValue;
|
|
101
103
|
if (this.builderMode) {
|
|
102
|
-
return [
|
|
104
|
+
return [
|
|
105
|
+
dataValue,
|
|
106
|
+
];
|
|
103
107
|
}
|
|
104
108
|
if (_.isEmpty(dataValue)) {
|
|
105
109
|
return [];
|
|
@@ -108,38 +112,45 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
108
112
|
}
|
|
109
113
|
getComponentsContainer() {
|
|
110
114
|
if (this.builderMode) {
|
|
111
|
-
return this.getComponents().map(comp => comp.component);
|
|
115
|
+
return this.getComponents().map((comp) => comp.component);
|
|
112
116
|
}
|
|
113
117
|
return super.getComponentsContainer();
|
|
114
118
|
}
|
|
115
119
|
get iteratableRows() {
|
|
116
120
|
return this.rows.map((row) => {
|
|
117
|
-
return Object.keys(row).map(key => ({
|
|
121
|
+
return Object.keys(row).map((key) => ({
|
|
118
122
|
components: row[key],
|
|
119
123
|
data: row[key].dataValue,
|
|
120
124
|
}));
|
|
121
125
|
});
|
|
122
126
|
}
|
|
123
127
|
componentContext(component) {
|
|
124
|
-
return this.iteratableRows[component.row].find(comp => comp.components.key === component.key)
|
|
128
|
+
return this.iteratableRows[component.row].find((comp) => comp.components.key === component.key)
|
|
129
|
+
.data;
|
|
125
130
|
}
|
|
126
131
|
hasHeader() {
|
|
127
132
|
return true;
|
|
128
133
|
}
|
|
129
134
|
hasRemoveButtons() {
|
|
130
|
-
return !this.component.disableAddingRemovingRows &&
|
|
135
|
+
return (!this.component.disableAddingRemovingRows &&
|
|
131
136
|
!this.options.readOnly &&
|
|
132
137
|
!this.disabled &&
|
|
133
|
-
this.fullMode;
|
|
138
|
+
this.fullMode);
|
|
134
139
|
}
|
|
135
140
|
getColumns() {
|
|
136
141
|
const keySchema = Object.assign({}, this.keySchema);
|
|
137
142
|
const valueSchema = Object.assign({}, this.component.valueComponent);
|
|
138
143
|
keySchema.hideLabel = false;
|
|
139
144
|
valueSchema.hideLabel = false;
|
|
140
|
-
return this.component.keyBeforeValue
|
|
141
|
-
[
|
|
142
|
-
|
|
145
|
+
return this.component.keyBeforeValue
|
|
146
|
+
? [
|
|
147
|
+
keySchema,
|
|
148
|
+
valueSchema,
|
|
149
|
+
]
|
|
150
|
+
: [
|
|
151
|
+
valueSchema,
|
|
152
|
+
keySchema,
|
|
153
|
+
];
|
|
143
154
|
}
|
|
144
155
|
getRowKey(rowIndex) {
|
|
145
156
|
const keys = Object.keys(this.dataValue);
|
|
@@ -155,7 +166,7 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
155
166
|
_.each(this.rows[rowIndex], (component) => {
|
|
156
167
|
if (component.key === '__key') {
|
|
157
168
|
component.data = {
|
|
158
|
-
|
|
169
|
+
__key: Object.keys(rowData)[rowIndex],
|
|
159
170
|
};
|
|
160
171
|
}
|
|
161
172
|
else {
|
|
@@ -165,23 +176,23 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
165
176
|
}
|
|
166
177
|
getValueAsString(value, options) {
|
|
167
178
|
if (options?.email && this.visible && !this.skipInEmail && _.isObject(value)) {
|
|
168
|
-
let result =
|
|
179
|
+
let result = `
|
|
169
180
|
<table border="1" style="width:100%">
|
|
170
181
|
<tbody>
|
|
171
|
-
|
|
182
|
+
`;
|
|
172
183
|
result = Object.keys(value).reduce((result, key) => {
|
|
173
|
-
result +=
|
|
184
|
+
result += `
|
|
174
185
|
<tr>
|
|
175
186
|
<th style="padding: 5px 10px;">${key}</th>
|
|
176
187
|
<td style="width:100%;padding:5px 10px;">${this.getView(value[key], options)}</td>
|
|
177
188
|
</tr>
|
|
178
|
-
|
|
189
|
+
`;
|
|
179
190
|
return result;
|
|
180
191
|
}, result);
|
|
181
|
-
result +=
|
|
192
|
+
result += `
|
|
182
193
|
</tbody>
|
|
183
194
|
</table>
|
|
184
|
-
|
|
195
|
+
`;
|
|
185
196
|
return result;
|
|
186
197
|
}
|
|
187
198
|
if (_.isEmpty(value)) {
|
|
@@ -194,24 +205,24 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
194
205
|
return typeof value === 'object' ? '[Complex Data]' : value;
|
|
195
206
|
}
|
|
196
207
|
getDataValueAsTable(value, options) {
|
|
197
|
-
let result =
|
|
208
|
+
let result = `
|
|
198
209
|
<table border="1" style="width:100%">
|
|
199
210
|
<tbody>
|
|
200
|
-
|
|
211
|
+
`;
|
|
201
212
|
if (this.visible && _.isObject(value)) {
|
|
202
213
|
Object.keys(value).forEach((key) => {
|
|
203
|
-
result +=
|
|
214
|
+
result += `
|
|
204
215
|
<tr>
|
|
205
216
|
<th style="padding: 5px 10px;">${key}</th>
|
|
206
217
|
<td style="width:100%;padding:5px 10px;">${this.getView(value[key], options)}</td>
|
|
207
218
|
</tr>
|
|
208
|
-
|
|
219
|
+
`;
|
|
209
220
|
});
|
|
210
221
|
}
|
|
211
|
-
result +=
|
|
222
|
+
result += `
|
|
212
223
|
</tbody>
|
|
213
224
|
</table>
|
|
214
|
-
|
|
225
|
+
`;
|
|
215
226
|
return result;
|
|
216
227
|
}
|
|
217
228
|
createRowComponents(row, rowIndex) {
|
|
@@ -224,7 +235,9 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
224
235
|
options.row = `${rowIndex}`;
|
|
225
236
|
options.rowIndex = rowIndex;
|
|
226
237
|
const components = {};
|
|
227
|
-
components['__key'] = this.createComponent(this.keySchema, options, {
|
|
238
|
+
components['__key'] = this.createComponent(this.keySchema, options, {
|
|
239
|
+
__key: this.builderMode ? this.defaultRowKey : key,
|
|
240
|
+
});
|
|
228
241
|
components['__key'].on('componentChange', (event) => {
|
|
229
242
|
const dataValue = this.dataValue;
|
|
230
243
|
const newKey = uniqueKey(dataValue, event.value);
|
|
@@ -280,7 +293,7 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
280
293
|
return changed;
|
|
281
294
|
}
|
|
282
295
|
checkColumns() {
|
|
283
|
-
if (this.builderMode ||
|
|
296
|
+
if (this.builderMode || !this.dataValue || !Object.keys(this.dataValue).length) {
|
|
284
297
|
return { rebuild: false, show: true };
|
|
285
298
|
}
|
|
286
299
|
if (Object.keys(this.dataValue).length > (this.rows || []).length) {
|