@formio/js 5.2.4-rc.0 → 5.2.5
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 +50 -161
- 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 +49 -158
- package/dist/formio.form.js +108 -152
- 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 +50 -161
- package/dist/formio.full.js +227 -401
- 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 +18 -51
- package/dist/formio.min.js +1 -1
- package/dist/formio.min.js.LICENSE.txt +1 -1
- package/dist/formio.utils.js +14 -47
- 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 +2 -3
- package/lib/cjs/Element.js +26 -29
- package/lib/cjs/Embed.js +42 -75
- package/lib/cjs/EventEmitter.js +1 -1
- package/lib/cjs/Form.d.ts +341 -371
- package/lib/cjs/Form.js +39 -153
- package/lib/cjs/FormBuilder.d.ts +3 -3
- package/lib/cjs/FormBuilder.js +3 -2
- package/lib/cjs/Formio.js +23 -26
- package/lib/cjs/InlineEmbed.js +17 -23
- package/lib/cjs/PDF.d.ts +0 -1
- package/lib/cjs/PDF.js +15 -18
- package/lib/cjs/PDFBuilder.js +36 -51
- package/lib/cjs/Webform.d.ts +366 -8
- package/lib/cjs/Webform.js +238 -177
- package/lib/cjs/WebformBuilder.js +152 -221
- package/lib/cjs/Wizard.js +65 -95
- package/lib/cjs/WizardBuilder.js +19 -27
- package/lib/cjs/addons/FormioAddon.js +1 -1
- package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.form.js +57 -59
- package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.js +16 -24
- package/lib/cjs/addons/index.js +3 -3
- package/lib/cjs/components/Components.js +4 -0
- package/lib/cjs/components/_classes/component/Component.form.js +11 -11
- package/lib/cjs/components/_classes/component/Component.js +198 -309
- package/lib/cjs/components/_classes/component/editForm/Component.edit.addons.js +4 -2
- package/lib/cjs/components/_classes/component/editForm/Component.edit.api.js +5 -5
- package/lib/cjs/components/_classes/component/editForm/Component.edit.conditional.js +11 -9
- package/lib/cjs/components/_classes/component/editForm/Component.edit.data.d.ts +0 -37
- package/lib/cjs/components/_classes/component/editForm/Component.edit.data.js +25 -39
- package/lib/cjs/components/_classes/component/editForm/Component.edit.display.js +29 -47
- package/lib/cjs/components/_classes/component/editForm/Component.edit.layout.js +9 -9
- package/lib/cjs/components/_classes/component/editForm/Component.edit.logic.js +7 -5
- package/lib/cjs/components/_classes/component/editForm/Component.edit.validation.js +34 -37
- package/lib/cjs/components/_classes/component/editForm/utils.js +16 -12
- package/lib/cjs/components/_classes/componentModal/ComponentModal.js +6 -6
- package/lib/cjs/components/_classes/field/Field.js +1 -7
- package/lib/cjs/components/_classes/input/Input.js +26 -30
- package/lib/cjs/components/_classes/list/ListComponent.form.js +1 -1
- package/lib/cjs/components/_classes/list/ListComponent.js +18 -27
- package/lib/cjs/components/_classes/list/editForm/ListComponent.edit.data.js +9 -36
- package/lib/cjs/components/_classes/multivalue/Multivalue.js +13 -32
- package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +1 -1
- package/lib/cjs/components/_classes/nested/NestedComponent.form.js +3 -3
- package/lib/cjs/components/_classes/nested/NestedComponent.js +75 -67
- package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +14 -19
- package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +17 -19
- package/lib/cjs/components/address/Address.d.ts +0 -1
- package/lib/cjs/components/address/Address.js +52 -57
- 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 +11 -53
- package/lib/cjs/components/alert/Alert.js +15 -21
- package/lib/cjs/components/button/Button.form.js +1 -1
- package/lib/cjs/components/button/Button.js +47 -64
- package/lib/cjs/components/button/editForm/Button.edit.display.js +9 -49
- 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 +20 -28
- package/lib/cjs/components/checkbox/editForm/Checkbox.edit.data.js +1 -1
- package/lib/cjs/components/checkbox/editForm/Checkbox.edit.display.js +3 -13
- 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 +12 -24
- 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 +4 -6
- 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 +2 -4
- package/lib/cjs/components/content/Content.js +8 -10
- 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 +10 -19
- 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 +42 -92
- 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 +35 -46
- 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 +15 -30
- package/lib/cjs/components/datetime/editForm/DateTime.edit.data.js +3 -4
- package/lib/cjs/components/datetime/editForm/DateTime.edit.date.js +10 -10
- package/lib/cjs/components/datetime/editForm/DateTime.edit.display.js +17 -22
- 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 +58 -147
- package/lib/cjs/components/day/editForm/Day.edit.day.js +9 -13
- package/lib/cjs/components/day/editForm/Day.edit.display.js +7 -7
- package/lib/cjs/components/day/editForm/Day.edit.month.js +8 -12
- 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 +96 -142
- package/lib/cjs/components/editgrid/editForm/EditGrid.edit.data.js +2 -2
- package/lib/cjs/components/editgrid/editForm/EditGrid.edit.display.js +2 -7
- 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 +90 -131
- package/lib/cjs/components/file/editForm/File.edit.display.js +5 -9
- package/lib/cjs/components/file/editForm/File.edit.file.js +53 -97
- 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 +58 -68
- package/lib/cjs/components/form/editForm/Form.edit.data.js +3 -1
- package/lib/cjs/components/form/editForm/Form.edit.display.js +7 -6
- package/lib/cjs/components/form/editForm/Form.edit.form.js +9 -11
- 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 +17 -23
- 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 +11 -27
- 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 +7 -5
- package/lib/cjs/components/panel/editForm/Panel.edit.display.js +29 -55
- package/lib/cjs/components/password/Password.form.js +3 -3
- package/lib/cjs/components/password/Password.js +2 -5
- 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 +32 -58
- package/lib/cjs/components/radio/editForm/Radio.edit.data.js +9 -23
- 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 +10 -10
- 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 +140 -235
- package/lib/cjs/components/select/editForm/Select.edit.data.d.ts +1 -1
- package/lib/cjs/components/select/editForm/Select.edit.data.js +57 -191
- 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 +16 -29
- 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 +17 -26
- package/lib/cjs/components/signature/editForm/Signature.edit.display.js +10 -19
- package/lib/cjs/components/survey/Survey.form.js +3 -3
- package/lib/cjs/components/survey/Survey.js +17 -30
- package/lib/cjs/components/survey/editForm/Survey.edit.data.js +11 -23
- 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 -8
- 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 +10 -27
- package/lib/cjs/components/tabs/editForm/Tabs.edit.display.js +17 -21
- package/lib/cjs/components/tags/Tags.form.js +1 -1
- package/lib/cjs/components/tags/Tags.js +12 -28
- 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 +45 -63
- package/lib/cjs/components/textarea/editForm/TextArea.edit.display.js +72 -96
- 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 +21 -32
- package/lib/cjs/components/textfield/editForm/TextField.edit.data.js +13 -15
- package/lib/cjs/components/textfield/editForm/TextField.edit.display.js +21 -31
- package/lib/cjs/components/textfield/editForm/TextField.edit.validation.js +6 -6
- package/lib/cjs/components/time/Time.js +10 -17
- 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 +1 -2
- package/lib/cjs/formio.form.js +12 -38
- package/lib/cjs/i18n.d.ts +0 -4
- package/lib/cjs/i18n.js +3 -7
- package/lib/cjs/package.json +1 -1
- package/lib/cjs/pdf.image.d.ts +2 -0
- package/lib/cjs/pdf.image.js +94 -0
- package/lib/cjs/providers/address/AddressProvider.js +5 -8
- package/lib/cjs/providers/address/GoogleAddressProvider.d.ts +3 -3
- package/lib/cjs/providers/address/GoogleAddressProvider.js +13 -24
- package/lib/cjs/providers/processor/fileProcessor.js +1 -3
- package/lib/cjs/providers/storage/azure.js +2 -5
- package/lib/cjs/providers/storage/dropbox.js +5 -4
- package/lib/cjs/providers/storage/googleDrive.js +4 -3
- package/lib/cjs/providers/storage/index.js +1 -1
- package/lib/cjs/providers/storage/indexeddb.js +6 -16
- package/lib/cjs/providers/storage/s3.js +6 -17
- package/lib/cjs/providers/storage/uploadAdapter.js +11 -17
- package/lib/cjs/providers/storage/url.js +11 -13
- package/lib/cjs/providers/storage/xhr.js +9 -17
- package/lib/cjs/templates/index.js +1 -1
- package/lib/cjs/translations/en.d.ts +2 -0
- package/lib/cjs/translations/en.js +9 -7
- package/lib/cjs/utils/ChoicesWrapper.js +2 -2
- package/lib/cjs/utils/builder.js +7 -31
- package/lib/cjs/utils/calendarUtils.js +5 -7
- package/lib/cjs/utils/conditionOperators/ConditionOperator.js +1 -1
- package/lib/cjs/utils/conditionOperators/DateGreaterThan.js +4 -12
- package/lib/cjs/utils/conditionOperators/IsEmptyValue.js +1 -3
- package/lib/cjs/utils/conditionOperators/IsEqualTo.js +6 -10
- package/lib/cjs/utils/conditionOperators/index.js +1 -1
- package/lib/cjs/utils/formUtils.js +1 -1
- package/lib/cjs/utils/i18n.js +1 -7
- package/lib/cjs/utils/index.d.ts +1 -2
- package/lib/cjs/utils/index.js +2 -2
- package/lib/cjs/utils/jsonlogic/operators.d.ts +1 -0
- package/lib/cjs/utils/jsonlogic/operators.js +265 -0
- package/lib/cjs/utils/utils.d.ts +1 -10
- package/lib/cjs/utils/utils.js +92 -175
- package/lib/cjs/widgets/CalendarWidget.js +49 -66
- package/lib/cjs/widgets/InputWidget.js +4 -6
- package/lib/cjs/widgets/index.js +1 -1
- package/lib/mjs/CDN.js +12 -12
- package/lib/mjs/Element.d.ts +2 -3
- package/lib/mjs/Element.js +23 -29
- package/lib/mjs/Embed.js +43 -77
- package/lib/mjs/EventEmitter.js +1 -1
- package/lib/mjs/Form.d.ts +341 -371
- package/lib/mjs/Form.js +126 -142
- package/lib/mjs/FormBuilder.d.ts +3 -3
- package/lib/mjs/FormBuilder.js +3 -2
- package/lib/mjs/Formio.js +23 -26
- package/lib/mjs/InlineEmbed.js +17 -23
- package/lib/mjs/PDF.d.ts +0 -1
- package/lib/mjs/PDF.js +15 -18
- package/lib/mjs/PDFBuilder.js +36 -51
- package/lib/mjs/Webform.d.ts +366 -8
- package/lib/mjs/Webform.js +251 -184
- package/lib/mjs/WebformBuilder.js +151 -224
- package/lib/mjs/Wizard.js +64 -94
- package/lib/mjs/WizardBuilder.js +19 -27
- package/lib/mjs/addons/FormioAddon.js +1 -1
- package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.form.js +57 -59
- package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.js +16 -24
- package/lib/mjs/addons/index.js +3 -3
- package/lib/mjs/components/Components.js +4 -0
- package/lib/mjs/components/_classes/component/Component.form.js +11 -11
- package/lib/mjs/components/_classes/component/Component.js +194 -313
- package/lib/mjs/components/_classes/component/editForm/Component.edit.addons.js +4 -2
- package/lib/mjs/components/_classes/component/editForm/Component.edit.api.js +5 -5
- package/lib/mjs/components/_classes/component/editForm/Component.edit.conditional.js +11 -9
- package/lib/mjs/components/_classes/component/editForm/Component.edit.data.d.ts +0 -37
- package/lib/mjs/components/_classes/component/editForm/Component.edit.data.js +25 -39
- package/lib/mjs/components/_classes/component/editForm/Component.edit.display.js +29 -47
- package/lib/mjs/components/_classes/component/editForm/Component.edit.layout.js +9 -9
- package/lib/mjs/components/_classes/component/editForm/Component.edit.logic.js +7 -5
- package/lib/mjs/components/_classes/component/editForm/Component.edit.validation.js +34 -37
- package/lib/mjs/components/_classes/component/editForm/utils.js +16 -12
- package/lib/mjs/components/_classes/componentModal/ComponentModal.js +2 -2
- package/lib/mjs/components/_classes/field/Field.js +2 -8
- package/lib/mjs/components/_classes/input/Input.js +23 -27
- package/lib/mjs/components/_classes/list/ListComponent.form.js +1 -1
- package/lib/mjs/components/_classes/list/ListComponent.js +18 -27
- package/lib/mjs/components/_classes/list/editForm/ListComponent.edit.data.js +9 -36
- package/lib/mjs/components/_classes/multivalue/Multivalue.js +13 -32
- package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +1 -1
- package/lib/mjs/components/_classes/nested/NestedComponent.form.js +3 -3
- package/lib/mjs/components/_classes/nested/NestedComponent.js +33 -41
- package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +15 -20
- package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +17 -19
- package/lib/mjs/components/address/Address.d.ts +0 -1
- package/lib/mjs/components/address/Address.js +49 -60
- 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 +11 -53
- package/lib/mjs/components/alert/Alert.js +16 -22
- package/lib/mjs/components/button/Button.form.js +1 -1
- package/lib/mjs/components/button/Button.js +42 -65
- package/lib/mjs/components/button/editForm/Button.edit.display.js +9 -49
- 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 +21 -29
- package/lib/mjs/components/checkbox/editForm/Checkbox.edit.data.js +1 -1
- package/lib/mjs/components/checkbox/editForm/Checkbox.edit.display.js +3 -13
- 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 +12 -24
- 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 +4 -6
- 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 +2 -4
- package/lib/mjs/components/content/Content.js +8 -10
- 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 +10 -19
- 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 +41 -92
- 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 +33 -46
- 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 +16 -31
- package/lib/mjs/components/datetime/editForm/DateTime.edit.data.js +3 -4
- package/lib/mjs/components/datetime/editForm/DateTime.edit.date.js +10 -10
- package/lib/mjs/components/datetime/editForm/DateTime.edit.display.js +17 -22
- 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 +58 -148
- package/lib/mjs/components/day/editForm/Day.edit.day.js +9 -13
- package/lib/mjs/components/day/editForm/Day.edit.display.js +7 -7
- package/lib/mjs/components/day/editForm/Day.edit.month.js +8 -12
- 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 +92 -140
- package/lib/mjs/components/editgrid/editForm/EditGrid.edit.data.js +2 -2
- package/lib/mjs/components/editgrid/editForm/EditGrid.edit.display.js +2 -7
- 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 +89 -136
- package/lib/mjs/components/file/editForm/File.edit.display.js +5 -9
- package/lib/mjs/components/file/editForm/File.edit.file.js +53 -97
- 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 +55 -68
- package/lib/mjs/components/form/editForm/Form.edit.data.js +3 -1
- package/lib/mjs/components/form/editForm/Form.edit.display.js +7 -6
- package/lib/mjs/components/form/editForm/Form.edit.form.js +8 -10
- 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 +17 -23
- 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 +12 -28
- 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 +8 -6
- package/lib/mjs/components/panel/editForm/Panel.edit.display.js +29 -55
- package/lib/mjs/components/password/Password.form.js +3 -3
- package/lib/mjs/components/password/Password.js +2 -5
- 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 +30 -59
- package/lib/mjs/components/radio/editForm/Radio.edit.data.js +9 -23
- 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 +8 -10
- 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 +145 -240
- package/lib/mjs/components/select/editForm/Select.edit.data.d.ts +1 -1
- package/lib/mjs/components/select/editForm/Select.edit.data.js +57 -191
- 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 +16 -30
- 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 +16 -26
- package/lib/mjs/components/signature/editForm/Signature.edit.display.js +10 -19
- package/lib/mjs/components/survey/Survey.form.js +3 -3
- package/lib/mjs/components/survey/Survey.js +17 -30
- package/lib/mjs/components/survey/editForm/Survey.edit.data.js +11 -23
- 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 +6 -8
- 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 +9 -27
- package/lib/mjs/components/tabs/editForm/Tabs.edit.display.js +17 -21
- package/lib/mjs/components/tags/Tags.form.js +1 -1
- package/lib/mjs/components/tags/Tags.js +12 -28
- 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 +51 -75
- package/lib/mjs/components/textarea/editForm/TextArea.edit.display.js +72 -96
- 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 +23 -34
- package/lib/mjs/components/textfield/editForm/TextField.edit.data.js +13 -15
- package/lib/mjs/components/textfield/editForm/TextField.edit.display.js +21 -31
- package/lib/mjs/components/textfield/editForm/TextField.edit.validation.js +6 -6
- package/lib/mjs/components/time/Time.js +10 -17
- 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 +1 -2
- package/lib/mjs/formio.form.js +8 -10
- package/lib/mjs/i18n.d.ts +0 -4
- package/lib/mjs/i18n.js +3 -7
- package/lib/mjs/package.json +1 -1
- package/lib/mjs/pdf.image.d.ts +2 -0
- package/lib/mjs/pdf.image.js +94 -0
- package/lib/mjs/providers/address/AddressProvider.js +5 -8
- package/lib/mjs/providers/address/GoogleAddressProvider.d.ts +3 -3
- package/lib/mjs/providers/address/GoogleAddressProvider.js +13 -24
- package/lib/mjs/providers/processor/fileProcessor.js +1 -3
- package/lib/mjs/providers/storage/azure.js +2 -5
- package/lib/mjs/providers/storage/dropbox.js +5 -4
- package/lib/mjs/providers/storage/googleDrive.js +4 -3
- package/lib/mjs/providers/storage/index.js +1 -1
- package/lib/mjs/providers/storage/indexeddb.js +6 -16
- package/lib/mjs/providers/storage/s3.js +8 -19
- package/lib/mjs/providers/storage/uploadAdapter.js +11 -17
- package/lib/mjs/providers/storage/url.js +11 -13
- package/lib/mjs/providers/storage/xhr.js +9 -17
- package/lib/mjs/templates/index.js +1 -1
- package/lib/mjs/translations/en.d.ts +2 -0
- package/lib/mjs/translations/en.js +9 -7
- package/lib/mjs/utils/ChoicesWrapper.js +2 -2
- package/lib/mjs/utils/builder.js +7 -31
- package/lib/mjs/utils/calendarUtils.js +5 -7
- package/lib/mjs/utils/conditionOperators/ConditionOperator.js +1 -1
- package/lib/mjs/utils/conditionOperators/DateGreaterThan.js +5 -16
- package/lib/mjs/utils/conditionOperators/IsEmptyValue.js +1 -3
- package/lib/mjs/utils/conditionOperators/IsEqualTo.js +6 -10
- package/lib/mjs/utils/conditionOperators/index.js +1 -1
- package/lib/mjs/utils/formUtils.js +2 -2
- package/lib/mjs/utils/i18n.js +1 -7
- package/lib/mjs/utils/index.d.ts +1 -2
- package/lib/mjs/utils/index.js +3 -3
- package/lib/mjs/utils/jsonlogic/operators.d.ts +1 -0
- package/lib/mjs/utils/jsonlogic/operators.js +262 -0
- package/lib/mjs/utils/utils.d.ts +1 -10
- package/lib/mjs/utils/utils.js +91 -178
- package/lib/mjs/widgets/CalendarWidget.js +50 -67
- package/lib/mjs/widgets/InputWidget.js +4 -6
- package/lib/mjs/widgets/index.js +1 -1
- package/package.json +3 -3
- package/lib/cjs/translations/de.d.ts +0 -80
- package/lib/cjs/translations/de.js +0 -81
- package/lib/mjs/translations/de.d.ts +0 -80
- package/lib/mjs/translations/de.js +0 -79
|
@@ -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,9 +34,7 @@ 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 = [
|
|
38
|
-
...this.component.components,
|
|
39
|
-
];
|
|
37
|
+
this.columns = [...this.component.components];
|
|
40
38
|
if (this.initRows || !_.isEqual(this.dataValue, this.emptyValue)) {
|
|
41
39
|
this.createRows(true);
|
|
42
40
|
}
|
|
@@ -64,11 +62,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
64
62
|
return this.builderMode || this.path === 'defaultValue' || !this.initEmpty;
|
|
65
63
|
}
|
|
66
64
|
get emptyValue() {
|
|
67
|
-
return this.initEmpty
|
|
68
|
-
? []
|
|
69
|
-
: [
|
|
70
|
-
{},
|
|
71
|
-
];
|
|
65
|
+
return this.initEmpty ? [] : [{}];
|
|
72
66
|
}
|
|
73
67
|
get addAnotherPosition() {
|
|
74
68
|
return _.get(this.component, 'addAnotherPosition', 'bottom');
|
|
@@ -86,21 +80,15 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
86
80
|
const isEmptyInit = this.initEmpty;
|
|
87
81
|
// Ensure we have one and only one row in builder mode.
|
|
88
82
|
if (isBuilderMode || (isEmptyInit && !this.dataValue.length)) {
|
|
89
|
-
return isEmptyInit && !isBuilderMode
|
|
90
|
-
? []
|
|
91
|
-
: [
|
|
92
|
-
{},
|
|
93
|
-
];
|
|
83
|
+
return isEmptyInit && !isBuilderMode ? [] : [{}];
|
|
94
84
|
}
|
|
95
85
|
const value = super.defaultValue;
|
|
96
86
|
let defaultValue;
|
|
97
87
|
if (Array.isArray(value)) {
|
|
98
88
|
defaultValue = value;
|
|
99
89
|
}
|
|
100
|
-
else if (value && typeof value === 'object') {
|
|
101
|
-
defaultValue = [
|
|
102
|
-
value,
|
|
103
|
-
];
|
|
90
|
+
else if (value && (typeof value === 'object')) {
|
|
91
|
+
defaultValue = [value];
|
|
104
92
|
}
|
|
105
93
|
else {
|
|
106
94
|
defaultValue = this.emptyValue;
|
|
@@ -150,23 +138,11 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
150
138
|
* @returns {Array<T[]>} - The chunked rows
|
|
151
139
|
*/
|
|
152
140
|
getRowChunks(groups, rows) {
|
|
153
|
-
const [, chunks
|
|
141
|
+
const [, chunks] = groups.reduce(([startIndex, acc], size) => {
|
|
154
142
|
const endIndex = startIndex + size;
|
|
155
|
-
return [
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
...acc,
|
|
159
|
-
[
|
|
160
|
-
startIndex,
|
|
161
|
-
endIndex,
|
|
162
|
-
],
|
|
163
|
-
],
|
|
164
|
-
];
|
|
165
|
-
}, [
|
|
166
|
-
0,
|
|
167
|
-
[],
|
|
168
|
-
]);
|
|
169
|
-
return chunks.map((range) => _.slice(rows, ...range));
|
|
143
|
+
return [endIndex, [...acc, [startIndex, endIndex]]];
|
|
144
|
+
}, [0, []]);
|
|
145
|
+
return chunks.map(range => _.slice(rows, ...range));
|
|
170
146
|
}
|
|
171
147
|
/**
|
|
172
148
|
* Create groups object.
|
|
@@ -179,13 +155,11 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
179
155
|
const indexes = sizes.reduce((groupIndexes, size) => {
|
|
180
156
|
const last = groupIndexes[groupIndexes.length - 1];
|
|
181
157
|
return groupIndexes.concat(last + size);
|
|
182
|
-
}, [
|
|
183
|
-
0,
|
|
184
|
-
]);
|
|
158
|
+
}, [0]);
|
|
185
159
|
return groups.reduce((gidxs, group, idx) => {
|
|
186
160
|
return {
|
|
187
161
|
...gidxs,
|
|
188
|
-
[indexes[idx]]: group
|
|
162
|
+
[indexes[idx]]: group
|
|
189
163
|
};
|
|
190
164
|
}, {});
|
|
191
165
|
}
|
|
@@ -206,29 +180,20 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
206
180
|
this.dataValue = _.range(n).map(() => ({}));
|
|
207
181
|
}
|
|
208
182
|
hasExtraColumn() {
|
|
209
|
-
return this.hasRemoveButtons() || this.canAddColumn;
|
|
183
|
+
return (this.hasRemoveButtons() || this.canAddColumn);
|
|
210
184
|
}
|
|
211
185
|
hasRemoveButtons() {
|
|
212
|
-
return
|
|
213
|
-
!this.component.disableAddingRemovingRows &&
|
|
186
|
+
return !this.builderMode && !this.component.disableAddingRemovingRows &&
|
|
214
187
|
!this.options.readOnly &&
|
|
215
188
|
!this.disabled &&
|
|
216
189
|
this.fullMode &&
|
|
217
|
-
this.dataValue.length > _.get(this.component, 'validate.minLength', 0));
|
|
190
|
+
(this.dataValue.length > _.get(this.component, 'validate.minLength', 0));
|
|
218
191
|
}
|
|
219
192
|
hasTopSubmit() {
|
|
220
|
-
return
|
|
221
|
-
[
|
|
222
|
-
'top',
|
|
223
|
-
'both',
|
|
224
|
-
].includes(this.addAnotherPosition));
|
|
193
|
+
return this.hasAddButton() && ['top', 'both'].includes(this.addAnotherPosition);
|
|
225
194
|
}
|
|
226
195
|
hasBottomSubmit() {
|
|
227
|
-
return
|
|
228
|
-
[
|
|
229
|
-
'bottom',
|
|
230
|
-
'both',
|
|
231
|
-
].includes(this.addAnotherPosition));
|
|
196
|
+
return this.hasAddButton() && ['bottom', 'both'].includes(this.addAnotherPosition);
|
|
232
197
|
}
|
|
233
198
|
get canAddColumn() {
|
|
234
199
|
return this.builderMode && !this.options.design;
|
|
@@ -269,11 +234,11 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
269
234
|
placeholder: this.renderTemplate('builderPlaceholder', {
|
|
270
235
|
position: this.componentComponents.length,
|
|
271
236
|
}),
|
|
272
|
-
colWidth: colWidth.toString()
|
|
237
|
+
colWidth: colWidth.toString()
|
|
273
238
|
}));
|
|
274
239
|
}
|
|
275
240
|
getRows() {
|
|
276
|
-
return this.rows.map(
|
|
241
|
+
return this.rows.map(row => {
|
|
277
242
|
const components = {};
|
|
278
243
|
_.each(row, (col, key) => {
|
|
279
244
|
components[key] = col.render();
|
|
@@ -283,7 +248,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
283
248
|
}
|
|
284
249
|
getColumns() {
|
|
285
250
|
return this.columns.filter((comp) => {
|
|
286
|
-
return !this.visibleColumns.hasOwnProperty(comp.key) || this.visibleColumns[comp.key];
|
|
251
|
+
return (!this.visibleColumns.hasOwnProperty(comp.key) || this.visibleColumns[comp.key]);
|
|
287
252
|
});
|
|
288
253
|
}
|
|
289
254
|
hasHeader() {
|
|
@@ -305,9 +270,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
305
270
|
this.refs[`${this.datagridKey}-row`].forEach((row, index) => {
|
|
306
271
|
row.dragInfo = { index };
|
|
307
272
|
});
|
|
308
|
-
this.dragula = dragula([
|
|
309
|
-
this.refs[`${this.datagridKey}-tbody`],
|
|
310
|
-
], {
|
|
273
|
+
this.dragula = dragula([this.refs[`${this.datagridKey}-tbody`]], {
|
|
311
274
|
moves: (_draggedElement, _oldParent, clickedElement) => {
|
|
312
275
|
const clickedElementKey = clickedElement.getAttribute('data-key');
|
|
313
276
|
const oldParentKey = _oldParent.getAttribute('data-key');
|
|
@@ -315,7 +278,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
315
278
|
if (oldParentKey === clickedElementKey) {
|
|
316
279
|
return clickedElement.classList.contains('formio-drag-button');
|
|
317
280
|
}
|
|
318
|
-
}
|
|
281
|
+
}
|
|
319
282
|
}).on('drop', this.onReorder.bind(this));
|
|
320
283
|
this.dragula.on('cloned', (el, original) => {
|
|
321
284
|
if (el && el.children && original && original.children) {
|
|
@@ -351,9 +314,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
351
314
|
this.rows.forEach((row, rowIndex) => {
|
|
352
315
|
let columnIndex = 0;
|
|
353
316
|
columns.forEach((col) => {
|
|
354
|
-
this.attachComponents(this.refs[this.datagridKey][rowIndex * rowLength + columnIndex], [
|
|
355
|
-
this.rows[rowIndex][col.key],
|
|
356
|
-
], this.getComponentsContainer());
|
|
317
|
+
this.attachComponents(this.refs[this.datagridKey][(rowIndex * rowLength) + columnIndex], [this.rows[rowIndex][col.key]], this.getComponentsContainer());
|
|
357
318
|
columnIndex++;
|
|
358
319
|
});
|
|
359
320
|
});
|
|
@@ -429,26 +390,22 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
429
390
|
this.rows[index] = this.createRowComponents(row, index);
|
|
430
391
|
this.emit('dataGridAddRow', {
|
|
431
392
|
component: this.component,
|
|
432
|
-
row
|
|
393
|
+
row
|
|
433
394
|
});
|
|
434
395
|
this.checkConditions();
|
|
435
|
-
this.triggerChange({ modified: true });
|
|
396
|
+
this.triggerChange?.({ modified: true });
|
|
436
397
|
this.redraw().then(() => {
|
|
437
398
|
this.focusOnNewRowElement(this.rows[index]);
|
|
438
399
|
});
|
|
439
400
|
}
|
|
440
401
|
updateComponentsRowIndex(components, rowIndex) {
|
|
441
402
|
components.forEach((component, colIndex) => {
|
|
442
|
-
if (this.componentsMap[component.paths.dataPath]) {
|
|
443
|
-
delete this.componentsMap[component.paths.dataPath];
|
|
444
|
-
}
|
|
445
403
|
if (component.options?.name) {
|
|
446
404
|
const newName = `[${this.key}][${rowIndex}]`;
|
|
447
405
|
component.options.name = component.options.name.replace(`[${this.key}][${component.rowIndex}]`, newName);
|
|
448
406
|
}
|
|
449
407
|
component.rowIndex = rowIndex;
|
|
450
408
|
component.row = `${rowIndex}-${colIndex}`;
|
|
451
|
-
this.componentsMap[component.paths.dataPath] = component;
|
|
452
409
|
});
|
|
453
410
|
}
|
|
454
411
|
updateRowsComponents(rowIndex) {
|
|
@@ -461,7 +418,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
461
418
|
const flags = { isReordered: !makeEmpty, resetValue: makeEmpty };
|
|
462
419
|
this.splice(index, flags);
|
|
463
420
|
this.emit('dataGridDeleteRow', { index });
|
|
464
|
-
const [row
|
|
421
|
+
const [row] = this.rows.splice(index, 1);
|
|
465
422
|
this.removeSubmissionMetadataRow(index);
|
|
466
423
|
this.removeRowComponents(row);
|
|
467
424
|
this.updateRowsComponents(index);
|
|
@@ -500,7 +457,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
500
457
|
const removed = !!removedRows.length;
|
|
501
458
|
// Delete components of extra rows (to make sure that this.components contain only components of exisiting rows)
|
|
502
459
|
if (removed) {
|
|
503
|
-
removedRows.forEach(
|
|
460
|
+
removedRows.forEach(row => this.removeRowComponents(row));
|
|
504
461
|
}
|
|
505
462
|
if (!init && (added || removed)) {
|
|
506
463
|
this.redraw();
|
|
@@ -522,10 +479,10 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
522
479
|
}
|
|
523
480
|
// If we're in a nested form we need to ensure our changes are triggered upstream
|
|
524
481
|
if (changed.instance.root?.id && this.root?.id !== changed.instance.root.id) {
|
|
525
|
-
changed.instance.root.triggerChange(flags, changed, modified);
|
|
482
|
+
changed.instance.root.triggerChange?.(flags, changed, modified);
|
|
526
483
|
}
|
|
527
484
|
else {
|
|
528
|
-
this.triggerChange({ modified });
|
|
485
|
+
this.triggerChange?.({ modified });
|
|
529
486
|
}
|
|
530
487
|
};
|
|
531
488
|
let columnComponent;
|
|
@@ -534,13 +491,14 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
534
491
|
columnComponent = col;
|
|
535
492
|
}
|
|
536
493
|
else {
|
|
537
|
-
columnComponent = { ...col, id: col.id + rowIndex };
|
|
494
|
+
columnComponent = { ...col, id: (col.id + rowIndex) };
|
|
538
495
|
}
|
|
539
496
|
const component = this.createComponent(columnComponent, options, row);
|
|
540
497
|
component.parentDisabled = !!this.disabled;
|
|
541
498
|
component.rowIndex = rowIndex;
|
|
542
499
|
component.inDataGrid = true;
|
|
543
|
-
if (columnComponent.tabindex &&
|
|
500
|
+
if (columnComponent.tabindex &&
|
|
501
|
+
parseInt(columnComponent.tabindex) > this.tabIndex) {
|
|
544
502
|
this.tabIndex = parseInt(columnComponent.tabindex);
|
|
545
503
|
}
|
|
546
504
|
components[col.key] = component;
|
|
@@ -561,16 +519,12 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
561
519
|
const dataValue = this.dataValue;
|
|
562
520
|
this.rows.forEach((row, rowIndex) => {
|
|
563
521
|
_.each(row, (col, key) => {
|
|
564
|
-
if (col && typeof col.checkConditions === 'function') {
|
|
522
|
+
if (col && (typeof col.checkConditions === 'function')) {
|
|
565
523
|
const firstRowCheck = visibility[key] === undefined;
|
|
566
|
-
visibility[key] =
|
|
567
|
-
|
|
568
|
-
(col.checkConditions(data, flags, dataValue[rowIndex]) && col.type !== 'hidden');
|
|
524
|
+
visibility[key] = !!visibility[key] ||
|
|
525
|
+
(col.checkConditions(data, flags, dataValue[rowIndex]) && col.type !== 'hidden');
|
|
569
526
|
if (col.component.logic && firstRowCheck) {
|
|
570
|
-
const compIndex = _.findIndex(this.columns, [
|
|
571
|
-
'key',
|
|
572
|
-
key,
|
|
573
|
-
]);
|
|
527
|
+
const compIndex = _.findIndex(this.columns, ['key', key]);
|
|
574
528
|
const equalColumns = _.isEqualWith(this.columns[compIndex], col.component, (col1, col2, key) => {
|
|
575
529
|
// Don't compare columns by their auto-generated ids.
|
|
576
530
|
if (key === 'id') {
|
|
@@ -614,15 +568,11 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
614
568
|
}
|
|
615
569
|
if (!Array.isArray(value)) {
|
|
616
570
|
if (typeof value === 'object') {
|
|
617
|
-
value = [
|
|
618
|
-
value,
|
|
619
|
-
];
|
|
571
|
+
value = [value];
|
|
620
572
|
}
|
|
621
573
|
else {
|
|
622
574
|
this.createRows();
|
|
623
|
-
value = [
|
|
624
|
-
{},
|
|
625
|
-
];
|
|
575
|
+
value = [{}];
|
|
626
576
|
}
|
|
627
577
|
}
|
|
628
578
|
// Make sure we always have at least one row.
|
|
@@ -633,8 +583,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
633
583
|
const isSettingSubmission = flags.fromSubmission && !_.isEqual(value, this.emptyValue);
|
|
634
584
|
const changed = this.hasChanged(value, this.dataValue);
|
|
635
585
|
this.dataValue = value;
|
|
636
|
-
if (this.initRows ||
|
|
637
|
-
isSettingSubmission ||
|
|
586
|
+
if (this.initRows || isSettingSubmission ||
|
|
638
587
|
(Array.isArray(this.dataValue) && this.dataValue.length !== this.rows.length)) {
|
|
639
588
|
if (!this.createRows() && changed) {
|
|
640
589
|
this.redraw();
|
|
@@ -657,7 +606,7 @@ export default class DataGridComponent extends NestedArrayComponent {
|
|
|
657
606
|
}
|
|
658
607
|
toggleGroup(element, index) {
|
|
659
608
|
element.classList.toggle('collapsed');
|
|
660
|
-
_.each(this.refs.chunks[index],
|
|
609
|
+
_.each(this.refs.chunks[index], row => {
|
|
661
610
|
row.classList.toggle('hidden');
|
|
662
611
|
});
|
|
663
612
|
}
|
|
@@ -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,20 +34,18 @@ 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 && this.components.length > 0) {
|
|
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
|
|
49
|
-
componentValueTypes.object,
|
|
50
|
-
]);
|
|
48
|
+
return getComponentSavedTypes(schema) || [componentValueTypes.object];
|
|
51
49
|
}
|
|
52
50
|
constructor(component, options, data) {
|
|
53
51
|
super(component, options, data);
|
|
@@ -59,7 +57,7 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
59
57
|
this.createRows();
|
|
60
58
|
this.visibleColumns = {
|
|
61
59
|
key: true,
|
|
62
|
-
[this.valueKey]: true
|
|
60
|
+
[this.valueKey]: true
|
|
63
61
|
};
|
|
64
62
|
this.component.valueComponent.hideLabel = true;
|
|
65
63
|
}
|
|
@@ -101,9 +99,7 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
101
99
|
getRowValues() {
|
|
102
100
|
const dataValue = this.dataValue;
|
|
103
101
|
if (this.builderMode) {
|
|
104
|
-
return [
|
|
105
|
-
dataValue,
|
|
106
|
-
];
|
|
102
|
+
return [dataValue];
|
|
107
103
|
}
|
|
108
104
|
if (_.isEmpty(dataValue)) {
|
|
109
105
|
return [];
|
|
@@ -112,45 +108,38 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
112
108
|
}
|
|
113
109
|
getComponentsContainer() {
|
|
114
110
|
if (this.builderMode) {
|
|
115
|
-
return this.getComponents().map(
|
|
111
|
+
return this.getComponents().map(comp => comp.component);
|
|
116
112
|
}
|
|
117
113
|
return super.getComponentsContainer();
|
|
118
114
|
}
|
|
119
115
|
get iteratableRows() {
|
|
120
116
|
return this.rows.map((row) => {
|
|
121
|
-
return Object.keys(row).map(
|
|
117
|
+
return Object.keys(row).map(key => ({
|
|
122
118
|
components: row[key],
|
|
123
119
|
data: row[key].dataValue,
|
|
124
120
|
}));
|
|
125
121
|
});
|
|
126
122
|
}
|
|
127
123
|
componentContext(component) {
|
|
128
|
-
return this.iteratableRows[component.row].find(
|
|
129
|
-
.data;
|
|
124
|
+
return this.iteratableRows[component.row].find(comp => comp.components.key === component.key).data;
|
|
130
125
|
}
|
|
131
126
|
hasHeader() {
|
|
132
127
|
return true;
|
|
133
128
|
}
|
|
134
129
|
hasRemoveButtons() {
|
|
135
|
-
return
|
|
130
|
+
return !this.component.disableAddingRemovingRows &&
|
|
136
131
|
!this.options.readOnly &&
|
|
137
132
|
!this.disabled &&
|
|
138
|
-
this.fullMode
|
|
133
|
+
this.fullMode;
|
|
139
134
|
}
|
|
140
135
|
getColumns() {
|
|
141
136
|
const keySchema = Object.assign({}, this.keySchema);
|
|
142
137
|
const valueSchema = Object.assign({}, this.component.valueComponent);
|
|
143
138
|
keySchema.hideLabel = false;
|
|
144
139
|
valueSchema.hideLabel = false;
|
|
145
|
-
return this.component.keyBeforeValue
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
valueSchema,
|
|
149
|
-
]
|
|
150
|
-
: [
|
|
151
|
-
valueSchema,
|
|
152
|
-
keySchema,
|
|
153
|
-
];
|
|
140
|
+
return this.component.keyBeforeValue ?
|
|
141
|
+
[keySchema, valueSchema] :
|
|
142
|
+
[valueSchema, keySchema];
|
|
154
143
|
}
|
|
155
144
|
getRowKey(rowIndex) {
|
|
156
145
|
const keys = Object.keys(this.dataValue);
|
|
@@ -166,7 +155,7 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
166
155
|
_.each(this.rows[rowIndex], (component) => {
|
|
167
156
|
if (component.key === '__key') {
|
|
168
157
|
component.data = {
|
|
169
|
-
__key: Object.keys(rowData)[rowIndex],
|
|
158
|
+
'__key': Object.keys(rowData)[rowIndex],
|
|
170
159
|
};
|
|
171
160
|
}
|
|
172
161
|
else {
|
|
@@ -176,23 +165,23 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
176
165
|
}
|
|
177
166
|
getValueAsString(value, options) {
|
|
178
167
|
if (options?.email && this.visible && !this.skipInEmail && _.isObject(value)) {
|
|
179
|
-
let result = `
|
|
168
|
+
let result = (`
|
|
180
169
|
<table border="1" style="width:100%">
|
|
181
170
|
<tbody>
|
|
182
|
-
|
|
171
|
+
`);
|
|
183
172
|
result = Object.keys(value).reduce((result, key) => {
|
|
184
|
-
result += `
|
|
173
|
+
result += (`
|
|
185
174
|
<tr>
|
|
186
175
|
<th style="padding: 5px 10px;">${key}</th>
|
|
187
176
|
<td style="width:100%;padding:5px 10px;">${this.getView(value[key], options)}</td>
|
|
188
177
|
</tr>
|
|
189
|
-
|
|
178
|
+
`);
|
|
190
179
|
return result;
|
|
191
180
|
}, result);
|
|
192
|
-
result += `
|
|
181
|
+
result += (`
|
|
193
182
|
</tbody>
|
|
194
183
|
</table>
|
|
195
|
-
|
|
184
|
+
`);
|
|
196
185
|
return result;
|
|
197
186
|
}
|
|
198
187
|
if (_.isEmpty(value)) {
|
|
@@ -205,24 +194,24 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
205
194
|
return typeof value === 'object' ? '[Complex Data]' : value;
|
|
206
195
|
}
|
|
207
196
|
getDataValueAsTable(value, options) {
|
|
208
|
-
let result = `
|
|
197
|
+
let result = (`
|
|
209
198
|
<table border="1" style="width:100%">
|
|
210
199
|
<tbody>
|
|
211
|
-
|
|
200
|
+
`);
|
|
212
201
|
if (this.visible && _.isObject(value)) {
|
|
213
202
|
Object.keys(value).forEach((key) => {
|
|
214
|
-
result += `
|
|
203
|
+
result += (`
|
|
215
204
|
<tr>
|
|
216
205
|
<th style="padding: 5px 10px;">${key}</th>
|
|
217
206
|
<td style="width:100%;padding:5px 10px;">${this.getView(value[key], options)}</td>
|
|
218
207
|
</tr>
|
|
219
|
-
|
|
208
|
+
`);
|
|
220
209
|
});
|
|
221
210
|
}
|
|
222
|
-
result += `
|
|
211
|
+
result += (`
|
|
223
212
|
</tbody>
|
|
224
213
|
</table>
|
|
225
|
-
|
|
214
|
+
`);
|
|
226
215
|
return result;
|
|
227
216
|
}
|
|
228
217
|
createRowComponents(row, rowIndex) {
|
|
@@ -235,9 +224,7 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
235
224
|
options.row = `${rowIndex}`;
|
|
236
225
|
options.rowIndex = rowIndex;
|
|
237
226
|
const components = {};
|
|
238
|
-
components['__key'] = this.createComponent(this.keySchema, options, {
|
|
239
|
-
__key: this.builderMode ? this.defaultRowKey : key,
|
|
240
|
-
});
|
|
227
|
+
components['__key'] = this.createComponent(this.keySchema, options, { __key: this.builderMode ? this.defaultRowKey : key });
|
|
241
228
|
components['__key'].on('componentChange', (event) => {
|
|
242
229
|
const dataValue = this.dataValue;
|
|
243
230
|
const newKey = uniqueKey(dataValue, event.value);
|
|
@@ -274,7 +261,7 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
274
261
|
const index = this.rows.length;
|
|
275
262
|
this.rows[index] = this.createRowComponents(this.dataValue, index);
|
|
276
263
|
this.redraw();
|
|
277
|
-
this.triggerChange();
|
|
264
|
+
this.triggerChange?.();
|
|
278
265
|
}
|
|
279
266
|
removeRow(index) {
|
|
280
267
|
const keys = Object.keys(this.dataValue);
|
|
@@ -283,7 +270,7 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
283
270
|
}
|
|
284
271
|
this.rows.splice(index, 1);
|
|
285
272
|
this.redraw();
|
|
286
|
-
this.triggerChange();
|
|
273
|
+
this.triggerChange?.();
|
|
287
274
|
}
|
|
288
275
|
setValue(value, flags = {}) {
|
|
289
276
|
const changed = this.hasChanged(value, this.dataValue);
|
|
@@ -293,7 +280,7 @@ export default class DataMapComponent extends DataGridComponent {
|
|
|
293
280
|
return changed;
|
|
294
281
|
}
|
|
295
282
|
checkColumns() {
|
|
296
|
-
if (this.builderMode || !this.dataValue || !Object.keys(this.dataValue).length) {
|
|
283
|
+
if (this.builderMode || (!this.dataValue || !Object.keys(this.dataValue).length)) {
|
|
297
284
|
return { rebuild: false, show: true };
|
|
298
285
|
}
|
|
299
286
|
if (Object.keys(this.dataValue).length > (this.rows || []).length) {
|