@formio/js 5.0.0-rc.19 → 5.0.0-rc.21
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +1 -1
- package/dist/formio.builder.css +14 -22
- package/dist/formio.builder.min.css +1 -1
- package/dist/formio.embed.css +1 -40
- package/dist/formio.embed.js +2 -90
- package/dist/formio.embed.min.css +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 +10 -2
- package/dist/formio.form.js +1267 -1103
- package/dist/formio.form.min.css +1 -1
- package/dist/formio.form.min.js +1 -1
- package/dist/formio.form.min.js.LICENSE.txt +3 -8
- package/dist/formio.full.css +14 -22
- package/dist/formio.full.js +1302 -1127
- package/dist/formio.full.min.css +1 -1
- package/dist/formio.full.min.js +1 -1
- package/dist/formio.full.min.js.LICENSE.txt +3 -8
- package/dist/formio.js +713 -626
- package/dist/formio.min.js +1 -1
- package/dist/formio.min.js.LICENSE.txt +2 -7
- package/dist/formio.utils.js +220 -13
- package/dist/formio.utils.min.js +1 -1
- package/dist/formio.utils.min.js.LICENSE.txt +2 -7
- package/lib/cjs/CDN.d.ts +1 -0
- package/lib/cjs/CDN.js +2 -1
- package/lib/cjs/Element.js +7 -2
- package/lib/cjs/Embed.d.ts +21 -1
- package/lib/cjs/Embed.js +211 -308
- package/lib/cjs/Form.d.ts +9 -6
- package/lib/cjs/Form.js +53 -11
- package/lib/cjs/PDF.d.ts +11 -3
- package/lib/cjs/PDF.js +4 -5
- package/lib/cjs/PDFBuilder.js +2 -3
- package/lib/cjs/Webform.d.ts +10 -13
- package/lib/cjs/Webform.js +46 -125
- package/lib/cjs/WebformBuilder.d.ts +6 -1
- package/lib/cjs/WebformBuilder.js +105 -65
- package/lib/cjs/Wizard.d.ts +8 -5
- package/lib/cjs/Wizard.js +12 -12
- package/lib/cjs/WizardBuilder.d.ts +6 -4
- package/lib/cjs/WizardBuilder.js +20 -3
- package/lib/cjs/addons/FormioAddon.d.ts +1 -1
- package/lib/cjs/addons/FormioAddon.js +1 -2
- package/lib/cjs/components/_classes/component/Component.d.ts +24 -8
- package/lib/cjs/components/_classes/component/Component.js +44 -14
- package/lib/cjs/components/_classes/input/Input.d.ts +1 -1
- package/lib/cjs/components/_classes/input/Input.js +1 -2
- package/lib/cjs/components/_classes/list/ListComponent.d.ts +4 -0
- package/lib/cjs/components/_classes/list/ListComponent.js +43 -6
- package/lib/cjs/components/_classes/multivalue/Multivalue.d.ts +1 -0
- package/lib/cjs/components/_classes/multivalue/Multivalue.js +10 -4
- package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +5 -2
- package/lib/cjs/components/_classes/nested/NestedComponent.js +9 -10
- package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +1 -0
- package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +4 -0
- package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.d.ts +1 -0
- package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +4 -0
- package/lib/cjs/components/address/Address.d.ts +8 -0
- package/lib/cjs/components/address/Address.js +5 -0
- package/lib/cjs/components/button/Button.d.ts +1 -0
- package/lib/cjs/components/button/Button.js +5 -3
- package/lib/cjs/components/checkbox/Checkbox.d.ts +41 -0
- package/lib/cjs/components/checkbox/Checkbox.js +32 -5
- package/lib/cjs/components/columns/Columns.d.ts +2 -0
- package/lib/cjs/components/columns/Columns.js +4 -0
- package/lib/cjs/components/container/Container.d.ts +1 -0
- package/lib/cjs/components/container/Container.js +4 -0
- package/lib/cjs/components/content/Content.d.ts +2 -0
- package/lib/cjs/components/content/Content.js +4 -2
- package/lib/cjs/components/currency/editForm/Currency.edit.data.d.ts +14 -2
- package/lib/cjs/components/currency/editForm/Currency.edit.data.js +4 -0
- package/lib/cjs/components/currency/editForm/Currency.edit.display.js +4 -0
- package/lib/cjs/components/datagrid/DataGrid.d.ts +1 -0
- package/lib/cjs/components/datagrid/DataGrid.js +8 -1
- package/lib/cjs/components/datamap/DataMap.d.ts +1 -0
- package/lib/cjs/components/datamap/DataMap.js +4 -0
- package/lib/cjs/components/datetime/DateTime.d.ts +23 -0
- package/lib/cjs/components/datetime/DateTime.js +20 -1
- package/lib/cjs/components/day/Day.d.ts +22 -1
- package/lib/cjs/components/day/Day.js +20 -6
- package/lib/cjs/components/day/fixtures/comp3.js +2 -2
- package/lib/cjs/components/editgrid/EditGrid.d.ts +4 -3
- package/lib/cjs/components/editgrid/EditGrid.js +11 -6
- package/lib/cjs/components/editgrid/fixtures/comp-with-custom-default-value.d.ts +190 -0
- package/lib/cjs/components/editgrid/fixtures/comp-with-custom-default-value.js +227 -0
- package/lib/cjs/components/editgrid/fixtures/comp15.d.ts +54 -0
- package/lib/cjs/components/editgrid/fixtures/comp15.js +51 -0
- package/lib/cjs/components/editgrid/fixtures/index.d.ts +3 -1
- package/lib/cjs/components/editgrid/fixtures/index.js +5 -1
- package/lib/cjs/components/fieldset/Fieldset.d.ts +2 -0
- package/lib/cjs/components/fieldset/Fieldset.js +4 -0
- package/lib/cjs/components/file/File.d.ts +28 -6
- package/lib/cjs/components/file/File.js +40 -15
- package/lib/cjs/components/file/editForm/File.edit.file.d.ts +62 -0
- package/lib/cjs/components/file/editForm/File.edit.file.js +29 -2
- package/lib/cjs/components/form/Form.d.ts +4 -0
- package/lib/cjs/components/form/Form.js +12 -10
- package/lib/cjs/components/hidden/Hidden.d.ts +1 -0
- package/lib/cjs/components/hidden/Hidden.js +1 -0
- package/lib/cjs/components/html/HTML.d.ts +2 -0
- package/lib/cjs/components/html/HTML.js +4 -0
- package/lib/cjs/components/number/Number.d.ts +24 -1
- package/lib/cjs/components/number/Number.js +18 -6
- package/lib/cjs/components/panel/Panel.d.ts +1 -0
- package/lib/cjs/components/panel/Panel.js +3 -0
- package/lib/cjs/components/phonenumber/PhoneNumber.form.js +9 -0
- package/lib/cjs/components/radio/Radio.d.ts +24 -3
- package/lib/cjs/components/radio/Radio.js +89 -18
- package/lib/cjs/components/recaptcha/ReCaptcha.d.ts +2 -1
- package/lib/cjs/components/recaptcha/ReCaptcha.js +7 -5
- package/lib/cjs/components/resource/Resource.d.ts +7 -0
- package/lib/cjs/components/resource/Resource.js +0 -1
- package/lib/cjs/components/resource/editForm/Resource.edit.display.js +1 -1
- package/lib/cjs/components/select/Select.d.ts +25 -5
- package/lib/cjs/components/select/Select.js +51 -51
- package/lib/cjs/components/selectboxes/SelectBoxes.d.ts +37 -0
- package/lib/cjs/components/selectboxes/SelectBoxes.js +60 -25
- package/lib/cjs/components/selectboxes/fixtures/comp4.d.ts +30 -27
- package/lib/cjs/components/selectboxes/fixtures/comp4.js +47 -32
- package/lib/cjs/components/selectboxes/fixtures/comp6.d.ts +14 -0
- package/lib/cjs/components/selectboxes/fixtures/comp6.js +15 -0
- package/lib/cjs/components/selectboxes/fixtures/index.d.ts +2 -1
- package/lib/cjs/components/selectboxes/fixtures/index.js +3 -1
- package/lib/cjs/components/signature/Signature.d.ts +22 -1
- package/lib/cjs/components/signature/Signature.js +16 -3
- package/lib/cjs/components/survey/Survey.d.ts +21 -0
- package/lib/cjs/components/survey/Survey.js +9 -0
- package/lib/cjs/components/table/Table.d.ts +2 -0
- package/lib/cjs/components/table/Table.js +4 -0
- package/lib/cjs/components/tabs/Tabs.d.ts +2 -0
- package/lib/cjs/components/tabs/Tabs.js +4 -0
- package/lib/cjs/components/tags/Tags.d.ts +21 -0
- package/lib/cjs/components/tags/Tags.js +11 -0
- package/lib/cjs/components/textarea/TextArea.d.ts +3 -2
- package/lib/cjs/components/textarea/TextArea.js +4 -5
- package/lib/cjs/components/textarea/fixtures/comp4.d.ts +30 -0
- package/lib/cjs/components/textarea/fixtures/comp4.js +27 -0
- package/lib/cjs/components/textarea/fixtures/index.d.ts +2 -1
- package/lib/cjs/components/textarea/fixtures/index.js +3 -1
- package/lib/cjs/components/textfield/TextField.d.ts +22 -0
- package/lib/cjs/components/textfield/TextField.js +11 -3
- package/lib/cjs/components/time/Time.d.ts +11 -0
- package/lib/cjs/components/time/Time.js +6 -1
- package/lib/cjs/components/tree/Tree.d.ts +5 -4
- package/lib/cjs/components/tree/Tree.form.js +5 -0
- package/lib/cjs/components/tree/Tree.js +8 -9
- package/lib/cjs/components/tree/editForm/Tree.edit.display.d.ts +9 -0
- package/lib/cjs/components/tree/editForm/Tree.edit.display.js +12 -0
- package/lib/cjs/components/well/Well.d.ts +2 -0
- package/lib/cjs/components/well/Well.js +4 -0
- package/lib/cjs/formio.embed.d.ts +2 -1
- package/lib/cjs/formio.embed.js +96 -1
- package/lib/cjs/formio.form.d.ts +4 -3
- package/lib/cjs/formio.form.js +17 -8
- package/lib/cjs/licenses/Licenses.d.ts +7 -0
- package/lib/cjs/licenses/Licenses.js +22 -0
- package/lib/cjs/licenses/index.d.ts +2 -0
- package/lib/cjs/licenses/index.js +7 -0
- package/lib/cjs/providers/Providers.d.ts +31 -11
- package/lib/cjs/providers/address/GoogleAddressProvider.d.ts +2 -2
- package/lib/cjs/providers/address/GoogleAddressProvider.js +2 -3
- package/lib/cjs/providers/processor/fileProcessor.d.ts +1 -1
- package/lib/cjs/providers/processor/fileProcessor.js +1 -5
- package/lib/cjs/providers/storage/azure.d.ts +10 -1
- package/lib/cjs/providers/storage/azure.js +7 -2
- package/lib/cjs/providers/storage/base64.d.ts +2 -2
- package/lib/cjs/providers/storage/base64.js +2 -6
- package/lib/cjs/providers/storage/dropbox.d.ts +2 -2
- package/lib/cjs/providers/storage/dropbox.js +2 -6
- package/lib/cjs/providers/storage/googleDrive.d.ts +3 -2
- package/lib/cjs/providers/storage/googleDrive.js +6 -6
- package/lib/cjs/providers/storage/indexeddb.d.ts +3 -3
- package/lib/cjs/providers/storage/indexeddb.js +9 -13
- package/lib/cjs/providers/storage/s3.d.ts +11 -1
- package/lib/cjs/providers/storage/s3.js +5 -2
- package/lib/cjs/providers/storage/uploadAdapter.js +1 -5
- package/lib/cjs/providers/storage/url.d.ts +2 -2
- package/lib/cjs/providers/storage/url.js +12 -8
- package/lib/cjs/providers/storage/xhr.d.ts +1 -1
- package/lib/cjs/providers/storage/xhr.js +1 -2
- package/lib/cjs/templates/index.d.ts +226 -1
- package/lib/cjs/utils/Evaluator.js +4 -33
- package/lib/cjs/utils/i18n.d.ts +16 -0
- package/lib/cjs/utils/i18n.js +88 -0
- package/lib/cjs/utils/utils.d.ts +11 -1
- package/lib/cjs/utils/utils.js +29 -10
- package/lib/cjs/validator/Validator.d.ts +30 -2
- package/lib/cjs/validator/Validator.js +32 -9
- package/lib/cjs/validator/rules/Select.js +1 -2
- package/lib/cjs/validator/rules/Unique.d.ts +1 -1
- package/lib/cjs/validator/rules/Unique.js +1 -2
- package/lib/cjs/widgets/CalendarWidget.d.ts +1 -0
- package/lib/cjs/widgets/InputWidget.d.ts +1 -1
- package/lib/cjs/widgets/InputWidget.js +1 -2
- package/lib/mjs/CDN.d.ts +1 -0
- package/lib/mjs/CDN.js +2 -1
- package/lib/mjs/Element.js +6 -2
- package/lib/mjs/Embed.d.ts +21 -1
- package/lib/mjs/Embed.js +208 -319
- package/lib/mjs/Form.d.ts +9 -6
- package/lib/mjs/Form.js +53 -11
- package/lib/mjs/PDF.d.ts +11 -3
- package/lib/mjs/PDF.js +4 -5
- package/lib/mjs/PDFBuilder.js +2 -3
- package/lib/mjs/Webform.d.ts +10 -13
- package/lib/mjs/Webform.js +46 -128
- package/lib/mjs/WebformBuilder.d.ts +6 -1
- package/lib/mjs/WebformBuilder.js +103 -65
- package/lib/mjs/Wizard.d.ts +8 -5
- package/lib/mjs/Wizard.js +12 -12
- package/lib/mjs/WizardBuilder.d.ts +6 -4
- package/lib/mjs/WizardBuilder.js +20 -3
- package/lib/mjs/addons/FormioAddon.d.ts +1 -1
- package/lib/mjs/addons/FormioAddon.js +1 -2
- package/lib/mjs/components/_classes/component/Component.d.ts +24 -8
- package/lib/mjs/components/_classes/component/Component.js +44 -14
- package/lib/mjs/components/_classes/input/Input.d.ts +1 -1
- package/lib/mjs/components/_classes/input/Input.js +1 -2
- package/lib/mjs/components/_classes/list/ListComponent.d.ts +4 -0
- package/lib/mjs/components/_classes/list/ListComponent.js +43 -5
- package/lib/mjs/components/_classes/multivalue/Multivalue.d.ts +1 -0
- package/lib/mjs/components/_classes/multivalue/Multivalue.js +10 -4
- package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +5 -2
- package/lib/mjs/components/_classes/nested/NestedComponent.js +9 -10
- package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +1 -0
- package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +4 -0
- package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.d.ts +1 -0
- package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +4 -0
- package/lib/mjs/components/address/Address.d.ts +8 -0
- package/lib/mjs/components/address/Address.js +5 -0
- package/lib/mjs/components/button/Button.d.ts +1 -0
- package/lib/mjs/components/button/Button.js +6 -4
- package/lib/mjs/components/checkbox/Checkbox.d.ts +41 -0
- package/lib/mjs/components/checkbox/Checkbox.js +36 -5
- package/lib/mjs/components/columns/Columns.d.ts +2 -0
- package/lib/mjs/components/columns/Columns.js +4 -0
- package/lib/mjs/components/container/Container.d.ts +1 -0
- package/lib/mjs/components/container/Container.js +5 -1
- package/lib/mjs/components/content/Content.d.ts +2 -0
- package/lib/mjs/components/content/Content.js +4 -2
- package/lib/mjs/components/currency/editForm/Currency.edit.data.d.ts +14 -2
- package/lib/mjs/components/currency/editForm/Currency.edit.data.js +4 -0
- package/lib/mjs/components/currency/editForm/Currency.edit.display.js +4 -0
- package/lib/mjs/components/datagrid/DataGrid.d.ts +1 -0
- package/lib/mjs/components/datagrid/DataGrid.js +8 -1
- package/lib/mjs/components/datamap/DataMap.d.ts +1 -0
- package/lib/mjs/components/datamap/DataMap.js +5 -1
- package/lib/mjs/components/datetime/DateTime.d.ts +23 -0
- package/lib/mjs/components/datetime/DateTime.js +27 -1
- package/lib/mjs/components/day/Day.d.ts +22 -1
- package/lib/mjs/components/day/Day.js +24 -7
- package/lib/mjs/components/day/fixtures/comp3.js +2 -2
- package/lib/mjs/components/editgrid/EditGrid.d.ts +4 -3
- package/lib/mjs/components/editgrid/EditGrid.js +11 -6
- package/lib/mjs/components/editgrid/fixtures/comp-with-custom-default-value.d.ts +190 -0
- package/lib/mjs/components/editgrid/fixtures/comp-with-custom-default-value.js +225 -0
- package/lib/mjs/components/editgrid/fixtures/comp15.d.ts +54 -0
- package/lib/mjs/components/editgrid/fixtures/comp15.js +49 -0
- package/lib/mjs/components/editgrid/fixtures/index.d.ts +3 -1
- package/lib/mjs/components/editgrid/fixtures/index.js +3 -1
- package/lib/mjs/components/fieldset/Fieldset.d.ts +2 -0
- package/lib/mjs/components/fieldset/Fieldset.js +4 -0
- package/lib/mjs/components/file/File.d.ts +28 -6
- package/lib/mjs/components/file/File.js +44 -16
- package/lib/mjs/components/file/editForm/File.edit.file.d.ts +62 -0
- package/lib/mjs/components/file/editForm/File.edit.file.js +29 -2
- package/lib/mjs/components/form/Form.d.ts +4 -0
- package/lib/mjs/components/form/Form.js +13 -11
- package/lib/mjs/components/hidden/Hidden.d.ts +1 -0
- package/lib/mjs/components/hidden/Hidden.js +1 -0
- package/lib/mjs/components/html/HTML.d.ts +2 -0
- package/lib/mjs/components/html/HTML.js +4 -0
- package/lib/mjs/components/number/Number.d.ts +24 -1
- package/lib/mjs/components/number/Number.js +23 -7
- package/lib/mjs/components/panel/Panel.d.ts +1 -0
- package/lib/mjs/components/panel/Panel.js +3 -0
- package/lib/mjs/components/phonenumber/PhoneNumber.form.js +9 -0
- package/lib/mjs/components/radio/Radio.d.ts +24 -3
- package/lib/mjs/components/radio/Radio.js +93 -19
- package/lib/mjs/components/recaptcha/ReCaptcha.d.ts +2 -1
- package/lib/mjs/components/recaptcha/ReCaptcha.js +7 -5
- package/lib/mjs/components/resource/Resource.d.ts +7 -0
- package/lib/mjs/components/resource/Resource.js +0 -1
- package/lib/mjs/components/resource/editForm/Resource.edit.display.js +1 -1
- package/lib/mjs/components/select/Select.d.ts +25 -5
- package/lib/mjs/components/select/Select.js +55 -52
- package/lib/mjs/components/selectboxes/SelectBoxes.d.ts +37 -0
- package/lib/mjs/components/selectboxes/SelectBoxes.js +63 -25
- package/lib/mjs/components/selectboxes/fixtures/comp4.d.ts +30 -27
- package/lib/mjs/components/selectboxes/fixtures/comp4.js +47 -32
- package/lib/mjs/components/selectboxes/fixtures/comp6.d.ts +14 -0
- package/lib/mjs/components/selectboxes/fixtures/comp6.js +13 -0
- package/lib/mjs/components/selectboxes/fixtures/index.d.ts +2 -1
- package/lib/mjs/components/selectboxes/fixtures/index.js +2 -1
- package/lib/mjs/components/signature/Signature.d.ts +22 -1
- package/lib/mjs/components/signature/Signature.js +19 -3
- package/lib/mjs/components/survey/Survey.d.ts +21 -0
- package/lib/mjs/components/survey/Survey.js +13 -1
- package/lib/mjs/components/table/Table.d.ts +2 -0
- package/lib/mjs/components/table/Table.js +4 -0
- package/lib/mjs/components/tabs/Tabs.d.ts +2 -0
- package/lib/mjs/components/tabs/Tabs.js +4 -0
- package/lib/mjs/components/tags/Tags.d.ts +21 -0
- package/lib/mjs/components/tags/Tags.js +14 -0
- package/lib/mjs/components/textarea/TextArea.d.ts +3 -2
- package/lib/mjs/components/textarea/TextArea.js +4 -5
- package/lib/mjs/components/textarea/fixtures/comp4.d.ts +30 -0
- package/lib/mjs/components/textarea/fixtures/comp4.js +25 -0
- package/lib/mjs/components/textarea/fixtures/index.d.ts +2 -1
- package/lib/mjs/components/textarea/fixtures/index.js +2 -1
- package/lib/mjs/components/textfield/TextField.d.ts +22 -0
- package/lib/mjs/components/textfield/TextField.js +14 -3
- package/lib/mjs/components/time/Time.d.ts +11 -0
- package/lib/mjs/components/time/Time.js +12 -1
- package/lib/mjs/components/tree/Tree.d.ts +5 -4
- package/lib/mjs/components/tree/Tree.form.js +5 -0
- package/lib/mjs/components/tree/Tree.js +8 -9
- package/lib/mjs/components/tree/editForm/Tree.edit.display.d.ts +9 -0
- package/lib/mjs/components/tree/editForm/Tree.edit.display.js +10 -0
- package/lib/mjs/components/well/Well.d.ts +2 -0
- package/lib/mjs/components/well/Well.js +4 -0
- package/lib/mjs/formio.embed.d.ts +2 -1
- package/lib/mjs/formio.embed.js +96 -2
- package/lib/mjs/formio.form.d.ts +4 -3
- package/lib/mjs/formio.form.js +16 -8
- package/lib/mjs/licenses/Licenses.d.ts +7 -0
- package/lib/mjs/licenses/Licenses.js +17 -0
- package/lib/mjs/licenses/index.d.ts +2 -0
- package/lib/mjs/licenses/index.js +2 -0
- package/lib/mjs/providers/Providers.d.ts +31 -11
- package/lib/mjs/providers/address/GoogleAddressProvider.d.ts +2 -2
- package/lib/mjs/providers/address/GoogleAddressProvider.js +2 -3
- package/lib/mjs/providers/processor/fileProcessor.d.ts +1 -1
- package/lib/mjs/providers/processor/fileProcessor.js +1 -2
- package/lib/mjs/providers/storage/azure.d.ts +10 -1
- package/lib/mjs/providers/storage/azure.js +7 -2
- package/lib/mjs/providers/storage/base64.d.ts +2 -2
- package/lib/mjs/providers/storage/base64.js +2 -3
- package/lib/mjs/providers/storage/dropbox.d.ts +2 -2
- package/lib/mjs/providers/storage/dropbox.js +2 -3
- package/lib/mjs/providers/storage/googleDrive.d.ts +3 -2
- package/lib/mjs/providers/storage/googleDrive.js +6 -3
- package/lib/mjs/providers/storage/indexeddb.d.ts +3 -3
- package/lib/mjs/providers/storage/indexeddb.js +9 -10
- package/lib/mjs/providers/storage/s3.d.ts +11 -1
- package/lib/mjs/providers/storage/s3.js +5 -2
- package/lib/mjs/providers/storage/uploadAdapter.js +1 -2
- package/lib/mjs/providers/storage/url.d.ts +2 -2
- package/lib/mjs/providers/storage/url.js +12 -5
- package/lib/mjs/providers/storage/xhr.d.ts +1 -1
- package/lib/mjs/providers/storage/xhr.js +1 -2
- package/lib/mjs/templates/index.d.ts +226 -1
- package/lib/mjs/utils/Evaluator.js +4 -33
- package/lib/mjs/utils/i18n.d.ts +16 -0
- package/lib/mjs/utils/i18n.js +81 -0
- package/lib/mjs/utils/utils.d.ts +11 -1
- package/lib/mjs/utils/utils.js +27 -9
- package/lib/mjs/validator/Validator.d.ts +30 -2
- package/lib/mjs/validator/Validator.js +31 -9
- package/lib/mjs/validator/rules/Select.js +1 -2
- package/lib/mjs/validator/rules/Unique.d.ts +1 -1
- package/lib/mjs/validator/rules/Unique.js +1 -2
- package/lib/mjs/widgets/CalendarWidget.d.ts +1 -0
- package/lib/mjs/widgets/InputWidget.d.ts +1 -1
- package/lib/mjs/widgets/InputWidget.js +1 -2
- package/package.json +18 -15
- package/types/index.d.ts +1 -0
- package/types/licenses.d.ts +7 -0
- package/types/utils.d.ts +2 -0
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
const lodash_1 = __importDefault(require("lodash"));
|
7
7
|
const ListComponent_1 = __importDefault(require("../_classes/list/ListComponent"));
|
8
|
-
const native_promise_only_1 = __importDefault(require("native-promise-only"));
|
9
8
|
const Formio_1 = require("../../Formio");
|
10
9
|
const utils_1 = require("../../utils/utils");
|
11
10
|
class RadioComponent extends ListComponent_1.default {
|
@@ -32,6 +31,36 @@ class RadioComponent extends ListComponent_1.default {
|
|
32
31
|
schema: RadioComponent.schema()
|
33
32
|
};
|
34
33
|
}
|
34
|
+
static get conditionOperatorsSettings() {
|
35
|
+
return Object.assign(Object.assign({}, super.conditionOperatorsSettings), { valueComponent(classComp) {
|
36
|
+
return {
|
37
|
+
type: 'select',
|
38
|
+
dataSrc: 'custom',
|
39
|
+
valueProperty: 'value',
|
40
|
+
dataType: classComp.dataType || '',
|
41
|
+
data: {
|
42
|
+
custom() {
|
43
|
+
return classComp.values;
|
44
|
+
}
|
45
|
+
},
|
46
|
+
};
|
47
|
+
} });
|
48
|
+
}
|
49
|
+
static savedValueTypes(schema) {
|
50
|
+
const { boolean, string, number, object, array } = utils_1.componentValueTypes;
|
51
|
+
const { dataType } = schema;
|
52
|
+
const types = (0, utils_1.getComponentSavedTypes)(schema);
|
53
|
+
if (types) {
|
54
|
+
return types;
|
55
|
+
}
|
56
|
+
if (dataType === 'object') {
|
57
|
+
return [object, array];
|
58
|
+
}
|
59
|
+
if (utils_1.componentValueTypes[dataType]) {
|
60
|
+
return [utils_1.componentValueTypes[dataType]];
|
61
|
+
}
|
62
|
+
return [boolean, string, number, object, array];
|
63
|
+
}
|
35
64
|
constructor(component, options, data) {
|
36
65
|
super(component, options, data);
|
37
66
|
this.previousValue = this.dataValue || null;
|
@@ -64,6 +93,10 @@ class RadioComponent extends ListComponent_1.default {
|
|
64
93
|
get optionSelectedClass() {
|
65
94
|
return 'radio-selected';
|
66
95
|
}
|
96
|
+
get listData() {
|
97
|
+
const listData = lodash_1.default.get(this.root, 'submission.metadata.listData', {});
|
98
|
+
return lodash_1.default.get(listData, this.path);
|
99
|
+
}
|
67
100
|
init() {
|
68
101
|
super.init();
|
69
102
|
this.templateData = {};
|
@@ -79,7 +112,7 @@ class RadioComponent extends ListComponent_1.default {
|
|
79
112
|
if (typeof this.itemsLoadedResolve === 'function') {
|
80
113
|
this.itemsLoadedResolve();
|
81
114
|
}
|
82
|
-
this.itemsLoaded = new
|
115
|
+
this.itemsLoaded = new Promise((resolve) => {
|
83
116
|
this.itemsLoadedResolve = resolve;
|
84
117
|
});
|
85
118
|
if (args.length) {
|
@@ -87,11 +120,13 @@ class RadioComponent extends ListComponent_1.default {
|
|
87
120
|
}
|
88
121
|
return triggerUpdate(...updateArgs);
|
89
122
|
};
|
90
|
-
this.itemsLoaded = new
|
123
|
+
this.itemsLoaded = new Promise((resolve) => {
|
91
124
|
this.itemsLoadedResolve = resolve;
|
92
125
|
});
|
93
|
-
this.
|
126
|
+
this.optionsLoaded = false;
|
94
127
|
this.loadedOptions = [];
|
128
|
+
// Get the template keys for this radio component.
|
129
|
+
this.getTemplateKeys();
|
95
130
|
}
|
96
131
|
render() {
|
97
132
|
return super.render(this.renderTemplate('radio', {
|
@@ -191,6 +226,13 @@ class RadioComponent extends ListComponent_1.default {
|
|
191
226
|
}
|
192
227
|
}
|
193
228
|
loadItems(url, search, headers, options, method, body) {
|
229
|
+
if (this.optionsLoaded) {
|
230
|
+
return;
|
231
|
+
}
|
232
|
+
if (!this.shouldLoad) {
|
233
|
+
this.loadItemsFromMetadata();
|
234
|
+
return;
|
235
|
+
}
|
194
236
|
// Ensure we have a method and remove any body if method is get
|
195
237
|
method = method || 'GET';
|
196
238
|
if (method.toUpperCase() === 'GET') {
|
@@ -200,33 +242,55 @@ class RadioComponent extends ListComponent_1.default {
|
|
200
242
|
options.ignoreCache = this.component.ignoreCache;
|
201
243
|
// Make the request.
|
202
244
|
options.header = headers;
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
245
|
+
this.loading = true;
|
246
|
+
Formio_1.Formio.makeRequest(this.options.formio, 'select', url, method, body, options)
|
247
|
+
.then((response) => {
|
248
|
+
this.loading = false;
|
249
|
+
this.error = null;
|
250
|
+
this.setItems(response);
|
251
|
+
this.optionsLoaded = true;
|
252
|
+
this.redraw();
|
253
|
+
})
|
254
|
+
.catch((err) => {
|
255
|
+
this.handleLoadingError(err);
|
256
|
+
});
|
257
|
+
}
|
258
|
+
loadItemsFromMetadata() {
|
259
|
+
this.listData.forEach((item, i) => {
|
260
|
+
this.loadedOptions[i] = {
|
261
|
+
label: this.itemTemplate(item)
|
262
|
+
};
|
263
|
+
if (lodash_1.default.isEqual(item, this.selectData)) {
|
264
|
+
this.loadedOptions[i].value = this.dataValue;
|
265
|
+
}
|
266
|
+
});
|
267
|
+
this.optionsLoaded = true;
|
268
|
+
this.redraw();
|
217
269
|
}
|
218
270
|
setItems(items) {
|
271
|
+
const listData = [];
|
219
272
|
items === null || items === void 0 ? void 0 : items.forEach((item, i) => {
|
220
273
|
this.loadedOptions[i] = {
|
221
274
|
value: item[this.component.valueProperty],
|
222
275
|
label: this.itemTemplate(item, item[this.component.valueProperty])
|
223
276
|
};
|
277
|
+
listData.push(this.templateData[item[this.component.valueProperty]]);
|
224
278
|
if (lodash_1.default.isUndefined(item[this.component.valueProperty]) ||
|
225
279
|
lodash_1.default.isObject(item[this.component.valueProperty]) ||
|
226
280
|
(!this.isRadio && lodash_1.default.isBoolean(item[this.component.valueProperty]))) {
|
227
281
|
this.loadedOptions[i].invalid = true;
|
228
282
|
}
|
229
283
|
});
|
284
|
+
if (this.isSelectURL) {
|
285
|
+
const submission = this.root.submission;
|
286
|
+
if (!submission.metadata) {
|
287
|
+
submission.metadata = {};
|
288
|
+
}
|
289
|
+
if (!submission.metadata.listData) {
|
290
|
+
submission.metadata.listData = {};
|
291
|
+
}
|
292
|
+
lodash_1.default.set(submission.metadata.listData, this.path, listData);
|
293
|
+
}
|
230
294
|
}
|
231
295
|
setSelectedClasses() {
|
232
296
|
if (this.refs.wrapper) {
|
@@ -289,6 +353,13 @@ class RadioComponent extends ListComponent_1.default {
|
|
289
353
|
if (value === 'false') {
|
290
354
|
value = false;
|
291
355
|
}
|
356
|
+
if (this.isSelectURL && this.templateData && this.templateData[value]) {
|
357
|
+
const submission = this.root.submission;
|
358
|
+
if (!submission.metadata.selectData) {
|
359
|
+
submission.metadata.selectData = {};
|
360
|
+
}
|
361
|
+
lodash_1.default.set(submission.metadata.selectData, this.path, this.templateData[value]);
|
362
|
+
}
|
292
363
|
return super.normalizeValue(value);
|
293
364
|
}
|
294
365
|
}
|
@@ -7,13 +7,14 @@ export default class ReCaptchaComponent extends Component {
|
|
7
7
|
weight: number;
|
8
8
|
schema: any;
|
9
9
|
};
|
10
|
+
static savedValueTypes(): never[];
|
10
11
|
render(): any;
|
11
12
|
recaptchaResult: any;
|
12
13
|
createInput(): void;
|
13
14
|
recaptchaApiReady: any;
|
14
15
|
createLabel(): void;
|
15
16
|
verify(actionName: any): void;
|
16
|
-
recaptchaVerifiedPromise:
|
17
|
+
recaptchaVerifiedPromise: Promise<void> | undefined;
|
17
18
|
isLoading: boolean | undefined;
|
18
19
|
sendVerificationRequest(token: any): any;
|
19
20
|
checkComponentValidity(data: any, dirty: any, row: any, options?: {}): any;
|
@@ -8,7 +8,6 @@ const Component_1 = __importDefault(require("../_classes/component/Component"));
|
|
8
8
|
const Formio_1 = require("../../Formio");
|
9
9
|
const get_1 = __importDefault(require("lodash/get"));
|
10
10
|
const debounce_1 = __importDefault(require("lodash/debounce"));
|
11
|
-
const native_promise_only_1 = __importDefault(require("native-promise-only"));
|
12
11
|
class ReCaptchaComponent extends Component_1.default {
|
13
12
|
static schema(...extend) {
|
14
13
|
return Component_1.default.schema({
|
@@ -27,6 +26,9 @@ class ReCaptchaComponent extends Component_1.default {
|
|
27
26
|
schema: ReCaptchaComponent.schema()
|
28
27
|
};
|
29
28
|
}
|
29
|
+
static savedValueTypes() {
|
30
|
+
return [];
|
31
|
+
}
|
30
32
|
render() {
|
31
33
|
this.recaptchaResult = null;
|
32
34
|
if (this.builderMode) {
|
@@ -66,7 +68,7 @@ class ReCaptchaComponent extends Component_1.default {
|
|
66
68
|
this.recaptchaApiReady = Formio_1.Formio.requireLibrary('googleRecaptcha', 'grecaptcha', recaptchaApiScriptUrl, true);
|
67
69
|
}
|
68
70
|
if (this.recaptchaApiReady) {
|
69
|
-
this.recaptchaVerifiedPromise = new
|
71
|
+
this.recaptchaVerifiedPromise = new Promise((resolve, reject) => {
|
70
72
|
this.recaptchaApiReady
|
71
73
|
.then(() => {
|
72
74
|
if (!this.isLoading) {
|
@@ -119,13 +121,13 @@ class ReCaptchaComponent extends Component_1.default {
|
|
119
121
|
const componentData = row[this.component.key];
|
120
122
|
if (!componentData || !componentData.token) {
|
121
123
|
this.setCustomValidity('ReCAPTCHA: Token is not specified in submission');
|
122
|
-
return
|
124
|
+
return Promise.resolve(false);
|
123
125
|
}
|
124
126
|
if (!componentData.success) {
|
125
127
|
this.setCustomValidity('ReCAPTCHA: Token validation error');
|
126
|
-
return
|
128
|
+
return Promise.resolve(false);
|
127
129
|
}
|
128
|
-
return this.hook('validateReCaptcha', componentData.token, () =>
|
130
|
+
return this.hook('validateReCaptcha', componentData.token, () => Promise.resolve(true))
|
129
131
|
.then((success) => success)
|
130
132
|
.catch((err) => {
|
131
133
|
this.setCustomValidity(err.message || err);
|
@@ -7,7 +7,7 @@ exports.default = [
|
|
7
7
|
type: 'htmlelement',
|
8
8
|
tag: 'div',
|
9
9
|
className: 'alert alert-danger',
|
10
|
-
content: '
|
10
|
+
content: 'This component has been deprecated and will be removed in a future version of Formio.js.',
|
11
11
|
},
|
12
12
|
{
|
13
13
|
type: 'select',
|
@@ -7,11 +7,32 @@ export default class SelectComponent extends ListComponent {
|
|
7
7
|
documentation: string;
|
8
8
|
schema: any;
|
9
9
|
};
|
10
|
+
static get serverConditionSettings(): {
|
11
|
+
valueComponent(classComp: any): any;
|
12
|
+
constructor: Function;
|
13
|
+
toString(): string;
|
14
|
+
toLocaleString(): string;
|
15
|
+
valueOf(): Object;
|
16
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
17
|
+
isPrototypeOf(v: Object): boolean;
|
18
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
19
|
+
};
|
20
|
+
static get conditionOperatorsSettings(): {
|
21
|
+
valueComponent(classComp: any): any;
|
22
|
+
constructor: Function;
|
23
|
+
toString(): string;
|
24
|
+
toLocaleString(): string;
|
25
|
+
valueOf(): Object;
|
26
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
27
|
+
isPrototypeOf(v: Object): boolean;
|
28
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
29
|
+
};
|
30
|
+
static savedValueTypes(schema: any): any[];
|
10
31
|
templateData: {} | undefined;
|
11
32
|
triggerUpdate: ((...args: any[]) => any) | undefined;
|
12
33
|
set itemsLoaded(arg: any);
|
13
34
|
get itemsLoaded(): any;
|
14
|
-
itemsLoadedResolve: any;
|
35
|
+
itemsLoadedResolve: ((value: any) => void) | undefined;
|
15
36
|
isFromSearch: boolean | undefined;
|
16
37
|
searchServerCount: any;
|
17
38
|
defaultServerCount: any;
|
@@ -19,6 +40,7 @@ export default class SelectComponent extends ListComponent {
|
|
19
40
|
searchDownloadedResources: any;
|
20
41
|
defaultDownloadedResources: any;
|
21
42
|
activated: boolean | undefined;
|
43
|
+
get dataReady(): any;
|
22
44
|
get emptyValue(): {};
|
23
45
|
get valueProperty(): any;
|
24
46
|
get inputInfo(): {
|
@@ -35,6 +57,7 @@ export default class SelectComponent extends ListComponent {
|
|
35
57
|
get isSelectResource(): boolean;
|
36
58
|
get itemsFromUrl(): boolean;
|
37
59
|
get isInfiniteScrollProvided(): boolean;
|
60
|
+
get shouldInitialLoad(): any;
|
38
61
|
isEntireObjectDisplay(): boolean;
|
39
62
|
selectValueAndLabel(data: any): {
|
40
63
|
value: any;
|
@@ -55,11 +78,7 @@ export default class SelectComponent extends ListComponent {
|
|
55
78
|
set downloadedResources(arg: any);
|
56
79
|
get downloadedResources(): any;
|
57
80
|
getSingleItemValueForHTMLMode(data: any): any;
|
58
|
-
getTemplateKeys(): void;
|
59
|
-
templateKeys: any[] | undefined;
|
60
81
|
get loadingError(): boolean | undefined;
|
61
|
-
get selectData(): any;
|
62
|
-
get shouldLoad(): any;
|
63
82
|
loadItems(url: any, search: any, headers: any, options: any, method: any, body: any): void;
|
64
83
|
getCustomItems(): any;
|
65
84
|
asyncValues: boolean | undefined;
|
@@ -79,6 +98,7 @@ export default class SelectComponent extends ListComponent {
|
|
79
98
|
render(): any;
|
80
99
|
wrapElement(element: any): any;
|
81
100
|
choicesOptions(): any;
|
101
|
+
attach(element: any): Promise<void> | undefined;
|
82
102
|
focusableElement: any;
|
83
103
|
choices: Choices | null | undefined;
|
84
104
|
scrollList: any;
|
@@ -7,7 +7,6 @@ const lodash_1 = __importDefault(require("lodash"));
|
|
7
7
|
const Formio_1 = require("../../Formio");
|
8
8
|
const ListComponent_1 = __importDefault(require("../_classes/list/ListComponent"));
|
9
9
|
const Form_1 = __importDefault(require("../../Form"));
|
10
|
-
const native_promise_only_1 = __importDefault(require("native-promise-only"));
|
11
10
|
const utils_1 = require("../../utils/utils");
|
12
11
|
const ChoicesWrapper_1 = __importDefault(require("../../utils/ChoicesWrapper"));
|
13
12
|
class SelectComponent extends ListComponent_1.default {
|
@@ -59,6 +58,32 @@ class SelectComponent extends ListComponent_1.default {
|
|
59
58
|
schema: SelectComponent.schema()
|
60
59
|
};
|
61
60
|
}
|
61
|
+
static get serverConditionSettings() {
|
62
|
+
return SelectComponent.conditionOperatorsSettings;
|
63
|
+
}
|
64
|
+
static get conditionOperatorsSettings() {
|
65
|
+
return Object.assign(Object.assign({}, super.conditionOperatorsSettings), { valueComponent(classComp) {
|
66
|
+
return Object.assign(Object.assign({}, classComp), { type: 'select' });
|
67
|
+
} });
|
68
|
+
}
|
69
|
+
static savedValueTypes(schema) {
|
70
|
+
const { boolean, string, number, object, array } = utils_1.componentValueTypes;
|
71
|
+
const { dataType, reference } = schema;
|
72
|
+
const types = (0, utils_1.getComponentSavedTypes)(schema);
|
73
|
+
if (types) {
|
74
|
+
return types;
|
75
|
+
}
|
76
|
+
if (reference) {
|
77
|
+
return [object];
|
78
|
+
}
|
79
|
+
if (dataType === 'object') {
|
80
|
+
return [object, array];
|
81
|
+
}
|
82
|
+
if (utils_1.componentValueTypes[dataType]) {
|
83
|
+
return [utils_1.componentValueTypes[dataType]];
|
84
|
+
}
|
85
|
+
return [boolean, string, number, object, array];
|
86
|
+
}
|
62
87
|
init() {
|
63
88
|
super.init();
|
64
89
|
this.templateData = {};
|
@@ -74,7 +99,7 @@ class SelectComponent extends ListComponent_1.default {
|
|
74
99
|
if (typeof this.itemsLoadedResolve === 'function') {
|
75
100
|
this.itemsLoadedResolve();
|
76
101
|
}
|
77
|
-
this.itemsLoaded = new
|
102
|
+
this.itemsLoaded = new Promise((resolve) => {
|
78
103
|
this.itemsLoadedResolve = resolve;
|
79
104
|
});
|
80
105
|
if (args.length) {
|
@@ -94,7 +119,7 @@ class SelectComponent extends ListComponent_1.default {
|
|
94
119
|
}
|
95
120
|
// If this component has been activated.//
|
96
121
|
this.activated = false;
|
97
|
-
this.itemsLoaded = new
|
122
|
+
this.itemsLoaded = new Promise((resolve) => {
|
98
123
|
this.itemsLoadedResolve = resolve;
|
99
124
|
});
|
100
125
|
if (this.isHtmlRenderMode()) {
|
@@ -109,7 +134,7 @@ class SelectComponent extends ListComponent_1.default {
|
|
109
134
|
if (this.root &&
|
110
135
|
this.root.submissionSet &&
|
111
136
|
!this.attached) {
|
112
|
-
return
|
137
|
+
return Promise.resolve();
|
113
138
|
}
|
114
139
|
return this.itemsLoaded;
|
115
140
|
}
|
@@ -170,6 +195,15 @@ class SelectComponent extends ListComponent_1.default {
|
|
170
195
|
get shouldDisabled() {
|
171
196
|
return super.shouldDisabled || this.parentDisabled;
|
172
197
|
}
|
198
|
+
get shouldInitialLoad() {
|
199
|
+
if (this.component.widget === 'html5' &&
|
200
|
+
this.isEntireObjectDisplay() &&
|
201
|
+
this.component.searchField &&
|
202
|
+
this.dataValue) {
|
203
|
+
return false;
|
204
|
+
}
|
205
|
+
return super.shouldLoad;
|
206
|
+
}
|
173
207
|
isEntireObjectDisplay() {
|
174
208
|
return this.component.dataSrc === 'resource' && this.valueProperty === 'data';
|
175
209
|
}
|
@@ -194,7 +228,7 @@ class SelectComponent extends ListComponent_1.default {
|
|
194
228
|
const value = (typeof itemLabel === 'string') ? this.t(itemLabel, { _userInput: true }) : itemLabel;
|
195
229
|
return this.sanitize(value, this.shouldSanitizeValue);
|
196
230
|
}
|
197
|
-
if (this.component.multiple ? this.dataValue.find((val) => value === val) : (this.dataValue === value)) {
|
231
|
+
if (this.component.multiple && lodash_1.default.isArray(this.dataValue) ? this.dataValue.find((val) => value === val) : (this.dataValue === value)) {
|
198
232
|
const selectData = this.selectData;
|
199
233
|
if (selectData) {
|
200
234
|
const templateValue = this.component.reference && (value === null || value === void 0 ? void 0 : value._id) ? value._id.toString() : value;
|
@@ -437,48 +471,9 @@ class SelectComponent extends ListComponent_1.default {
|
|
437
471
|
}
|
438
472
|
return defaultValue;
|
439
473
|
}
|
440
|
-
getTemplateKeys() {
|
441
|
-
this.templateKeys = [];
|
442
|
-
if (this.options.readOnly && this.component.template) {
|
443
|
-
const keys = this.component.template.match(/({{\s*(.*?)\s*}})/g);
|
444
|
-
if (keys) {
|
445
|
-
keys.forEach((key) => {
|
446
|
-
const propKey = key.match(/{{\s*item\.(.*?)\s*}}/);
|
447
|
-
if (propKey && propKey.length > 1) {
|
448
|
-
this.templateKeys.push(propKey[1]);
|
449
|
-
}
|
450
|
-
});
|
451
|
-
}
|
452
|
-
}
|
453
|
-
}
|
454
474
|
get loadingError() {
|
455
475
|
return !this.component.refreshOn && !this.component.refreshOnBlur && this.networkError;
|
456
476
|
}
|
457
|
-
get selectData() {
|
458
|
-
const selectData = lodash_1.default.get(this.root, 'submission.metadata.selectData', {});
|
459
|
-
return lodash_1.default.get(selectData, this.path);
|
460
|
-
}
|
461
|
-
get shouldLoad() {
|
462
|
-
if (this.loadingError) {
|
463
|
-
return false;
|
464
|
-
}
|
465
|
-
// Live forms should always load.
|
466
|
-
if (!this.options.readOnly) {
|
467
|
-
return true;
|
468
|
-
}
|
469
|
-
// If there are template keys, then we need to see if we have the data.
|
470
|
-
if (this.templateKeys && this.templateKeys.length) {
|
471
|
-
// See if we already have the data we need.
|
472
|
-
const dataValue = this.dataValue;
|
473
|
-
const selectData = this.selectData;
|
474
|
-
return this.templateKeys.reduce((shouldLoad, key) => {
|
475
|
-
const hasValue = lodash_1.default.has(dataValue, key) || lodash_1.default.has(selectData, key);
|
476
|
-
return shouldLoad || !hasValue;
|
477
|
-
}, false);
|
478
|
-
}
|
479
|
-
// Return that we should load.
|
480
|
-
return true;
|
481
|
-
}
|
482
477
|
loadItems(url, search, headers, options, method, body) {
|
483
478
|
options = options || {};
|
484
479
|
// See if we should load items or not.
|
@@ -517,7 +512,11 @@ class SelectComponent extends ListComponent_1.default {
|
|
517
512
|
});
|
518
513
|
// Add search capability.
|
519
514
|
if (this.component.searchField && search) {
|
520
|
-
const searchValue = Array.isArray(search)
|
515
|
+
const searchValue = Array.isArray(search)
|
516
|
+
? search.join(',')
|
517
|
+
: typeof search === 'object'
|
518
|
+
? JSON.stringify(search)
|
519
|
+
: search;
|
521
520
|
query[this.component.searchField] = this.component.searchField.endsWith('__regex')
|
522
521
|
? lodash_1.default.escapeRegExp(searchValue)
|
523
522
|
: searchValue;
|
@@ -911,7 +910,7 @@ class SelectComponent extends ListComponent_1.default {
|
|
911
910
|
const items = this.choices._store.activeItems;
|
912
911
|
if (!items.length) {
|
913
912
|
this.choices._addItem({
|
914
|
-
value:
|
913
|
+
value: '',
|
915
914
|
label: placeholderValue,
|
916
915
|
choiceId: 0,
|
917
916
|
groupId: -1,
|
@@ -1082,7 +1081,7 @@ class SelectComponent extends ListComponent_1.default {
|
|
1082
1081
|
if (this.component.multiple) {
|
1083
1082
|
templateData = {};
|
1084
1083
|
const dataValue = this.dataValue;
|
1085
|
-
if (dataValue && dataValue.length) {
|
1084
|
+
if (dataValue && lodash_1.default.isArray(dataValue) && dataValue.length) {
|
1086
1085
|
dataValue.forEach((dataValueItem) => {
|
1087
1086
|
const dataValueItemValue = this.component.reference ? dataValueItem._id.toString() : dataValueItem;
|
1088
1087
|
templateData[dataValueItemValue] = this.templateData[dataValueItemValue];
|
@@ -1150,7 +1149,7 @@ class SelectComponent extends ListComponent_1.default {
|
|
1150
1149
|
}
|
1151
1150
|
setValue(value, flags = {}) {
|
1152
1151
|
const previousValue = this.dataValue;
|
1153
|
-
if (this.component.widget === 'html5' && (lodash_1.default.isEqual(value, previousValue) || lodash_1.default.isEqual(previousValue, {}) && lodash_1.default.isEqual(flags, {}))) {
|
1152
|
+
if (this.component.widget === 'html5' && (lodash_1.default.isEqual(value, previousValue) || lodash_1.default.isEqual(previousValue, {}) && lodash_1.default.isEqual(flags, {})) && !flags.fromSubmission) {
|
1154
1153
|
return false;
|
1155
1154
|
}
|
1156
1155
|
const changed = this.updateValue(value, flags);
|
@@ -1202,7 +1201,7 @@ class SelectComponent extends ListComponent_1.default {
|
|
1202
1201
|
!this.active &&
|
1203
1202
|
!this.selectOptions.length &&
|
1204
1203
|
hasValue &&
|
1205
|
-
this.
|
1204
|
+
this.shouldInitialLoad &&
|
1206
1205
|
this.visible && (this.component.searchField || this.component.valueProperty);
|
1207
1206
|
}
|
1208
1207
|
setChoicesValue(value, hasPreviousValue, flags = {}) {
|
@@ -1226,7 +1225,8 @@ class SelectComponent extends ListComponent_1.default {
|
|
1226
1225
|
else {
|
1227
1226
|
if (hasValue) {
|
1228
1227
|
const values = Array.isArray(value) ? value : [value];
|
1229
|
-
if (!lodash_1.default.isEqual(this.dataValue, this.defaultValue) && this.selectOptions.length < 2
|
1228
|
+
if (!lodash_1.default.isEqual(this.dataValue, this.defaultValue) && this.selectOptions.length < 2
|
1229
|
+
|| (this.selectData && flags.fromSubmission)) {
|
1230
1230
|
const { value, label } = this.selectValueAndLabel(this.dataValue);
|
1231
1231
|
this.addOption(value, label);
|
1232
1232
|
}
|
@@ -1254,7 +1254,7 @@ class SelectComponent extends ListComponent_1.default {
|
|
1254
1254
|
}
|
1255
1255
|
}
|
1256
1256
|
get itemsLoaded() {
|
1257
|
-
return this._itemsLoaded ||
|
1257
|
+
return this._itemsLoaded || Promise.resolve();
|
1258
1258
|
}
|
1259
1259
|
set itemsLoaded(promise) {
|
1260
1260
|
this._itemsLoaded = promise;
|
@@ -1,4 +1,41 @@
|
|
1
1
|
export default class SelectBoxesComponent extends RadioComponent {
|
2
|
+
static get serverConditionSettings(): {
|
3
|
+
valueComponent(classComp: any): {
|
4
|
+
type: string;
|
5
|
+
dataSrc: string;
|
6
|
+
valueProperty: string;
|
7
|
+
valueType: string;
|
8
|
+
data: {
|
9
|
+
custom: string;
|
10
|
+
};
|
11
|
+
};
|
12
|
+
constructor: Function;
|
13
|
+
toString(): string;
|
14
|
+
toLocaleString(): string;
|
15
|
+
valueOf(): Object;
|
16
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
17
|
+
isPrototypeOf(v: Object): boolean;
|
18
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
19
|
+
};
|
20
|
+
static get conditionOperatorsSettings(): {
|
21
|
+
valueComponent(classComp: any): {
|
22
|
+
type: string;
|
23
|
+
dataSrc: string;
|
24
|
+
valueProperty: string;
|
25
|
+
valueType: string;
|
26
|
+
data: {
|
27
|
+
custom: string;
|
28
|
+
};
|
29
|
+
};
|
30
|
+
constructor: Function;
|
31
|
+
toString(): string;
|
32
|
+
toLocaleString(): string;
|
33
|
+
valueOf(): Object;
|
34
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
35
|
+
isPrototypeOf(v: Object): boolean;
|
36
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
37
|
+
};
|
38
|
+
static savedValueTypes(schema: any): string[];
|
2
39
|
constructor(...args: any[]);
|
3
40
|
validators: string[];
|
4
41
|
get emptyValue(): any;
|