@formio/js 5.0.0-rc.19 → 5.0.0-rc.21
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/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;
|