@formio/js 5.0.0-rc.27 → 5.0.0-rc.29
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/fonts/bootstrap-icons.woff +0 -0
- package/dist/fonts/bootstrap-icons.woff2 +0 -0
- 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.js +957 -2270
- package/dist/formio.form.min.js +1 -1
- package/dist/formio.form.min.js.LICENSE.txt +4 -2
- package/dist/formio.full.css +100 -3
- package/dist/formio.full.js +961 -2231
- package/dist/formio.full.min.css +2 -2
- package/dist/formio.full.min.js +1 -1
- package/dist/formio.full.min.js.LICENSE.txt +4 -2
- package/dist/formio.js +101 -1966
- package/dist/formio.min.js +1 -1
- package/dist/formio.min.js.LICENSE.txt +1 -3
- package/dist/formio.utils.js +145 -104
- package/dist/formio.utils.min.js +1 -1
- package/dist/formio.utils.min.js.LICENSE.txt +4 -2
- package/lib/cjs/CDN.d.ts +1 -1
- package/lib/cjs/CDN.js +2 -2
- package/lib/cjs/Embed.d.ts +16 -7
- package/lib/cjs/Embed.js +76 -24
- package/lib/cjs/Formio.d.ts +0 -1
- package/lib/cjs/Formio.js +27 -19
- package/lib/cjs/PDF.js +2 -2
- package/lib/cjs/Webform.d.ts +6 -9
- package/lib/cjs/Webform.js +59 -81
- package/lib/cjs/WebformBuilder.d.ts +1 -1
- package/lib/cjs/WebformBuilder.js +33 -16
- package/lib/cjs/Wizard.d.ts +5 -4
- package/lib/cjs/Wizard.js +37 -26
- package/lib/cjs/WizardBuilder.d.ts +1 -0
- package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.d.ts +1 -2
- package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.js +11 -12
- package/lib/cjs/addons/index.d.ts +1 -0
- package/lib/cjs/addons/index.js +5 -1
- package/lib/cjs/components/Components.d.ts +7 -0
- package/lib/cjs/components/Components.js +30 -0
- package/lib/cjs/components/_classes/component/Component.d.ts +57 -27
- package/lib/cjs/components/_classes/component/Component.js +193 -119
- package/lib/cjs/components/_classes/component/editForm/Component.edit.addons.d.ts +8 -0
- package/lib/cjs/components/_classes/component/editForm/Component.edit.addons.js +31 -1
- package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +28 -11
- package/lib/cjs/components/_classes/nested/NestedComponent.js +88 -57
- package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +4 -3
- package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +17 -4
- package/lib/cjs/components/builder.js +0 -2
- package/lib/cjs/components/button/Button.js +2 -1
- package/lib/cjs/components/columns/Columns.d.ts +1 -0
- package/lib/cjs/components/columns/Columns.js +2 -3
- package/lib/cjs/components/columns/editForm/Columns.edit.display.d.ts +30 -1
- package/lib/cjs/components/columns/editForm/Columns.edit.display.js +23 -1
- package/lib/cjs/components/container/Container.d.ts +1 -0
- package/lib/cjs/components/container/Container.js +2 -6
- package/lib/cjs/components/content/Content.d.ts +1 -0
- package/lib/cjs/components/content/Content.js +1 -0
- package/lib/cjs/components/datagrid/DataGrid.d.ts +0 -8
- package/lib/cjs/components/datagrid/DataGrid.js +9 -26
- package/lib/cjs/components/datamap/DataMap.js +2 -1
- package/lib/cjs/components/datetime/DateTime.js +0 -2
- package/lib/cjs/components/day/Day.js +2 -3
- package/lib/cjs/components/editgrid/EditGrid.d.ts +8 -4
- package/lib/cjs/components/editgrid/EditGrid.js +96 -73
- package/lib/cjs/components/email/Email.js +0 -1
- package/lib/cjs/components/file/File.js +1 -1
- package/lib/cjs/components/file/fixtures/comp3.d.ts +29 -0
- package/lib/cjs/components/file/fixtures/comp3.js +31 -0
- package/lib/cjs/components/form/Form.d.ts +2 -6
- package/lib/cjs/components/form/Form.js +43 -14
- package/lib/cjs/components/index.d.ts +0 -2
- package/lib/cjs/components/index.js +0 -2
- package/lib/cjs/components/number/Number.d.ts +1 -2
- package/lib/cjs/components/number/Number.js +5 -6
- package/lib/cjs/components/panel/Panel.d.ts +0 -1
- package/lib/cjs/components/panel/Panel.js +2 -9
- package/lib/cjs/components/panel/editForm/Panel.edit.display.d.ts +6 -38
- package/lib/cjs/components/panel/editForm/Panel.edit.display.js +3 -16
- package/lib/cjs/components/phonenumber/PhoneNumber.js +17 -0
- package/lib/cjs/components/radio/Radio.js +0 -2
- package/lib/cjs/components/recaptcha/ReCaptcha.d.ts +1 -1
- package/lib/cjs/components/recaptcha/ReCaptcha.js +2 -2
- package/lib/cjs/components/select/Select.js +3 -2
- package/lib/cjs/components/selectboxes/SelectBoxes.d.ts +1 -2
- package/lib/cjs/components/selectboxes/SelectBoxes.js +7 -6
- package/lib/cjs/components/table/editForm/Table.edit.display.d.ts +31 -2
- package/lib/cjs/components/table/editForm/Table.edit.display.js +22 -0
- package/lib/cjs/components/tabs/editForm/Tabs.edit.display.d.ts +30 -2
- package/lib/cjs/components/tabs/editForm/Tabs.edit.display.js +22 -0
- package/lib/cjs/components/textfield/TextField.js +20 -6
- package/lib/cjs/components/time/Time.js +0 -6
- package/lib/cjs/components/url/Url.js +0 -1
- package/lib/cjs/components/well/editForm/Well.edit.display.d.ts +25 -2
- package/lib/cjs/components/well/editForm/Well.edit.display.js +18 -0
- package/lib/cjs/formio.embed.js +5 -3
- package/lib/cjs/formio.form.d.ts +1 -7
- package/lib/cjs/formio.form.js +3 -38
- package/lib/cjs/index.d.ts +2 -1
- package/lib/cjs/index.js +3 -1
- package/lib/cjs/providers/Providers.d.ts +0 -4
- package/lib/cjs/providers/storage/azure.d.ts +0 -2
- package/lib/cjs/providers/storage/azure.js +1 -6
- package/lib/cjs/providers/storage/googleDrive.d.ts +0 -1
- package/lib/cjs/providers/storage/googleDrive.js +0 -4
- package/lib/cjs/providers/storage/s3.d.ts +0 -1
- package/lib/cjs/providers/storage/s3.js +0 -4
- package/lib/cjs/templates/Templates.d.ts +1 -11
- package/lib/cjs/templates/Templates.js +4 -41
- package/lib/cjs/translations/en.d.ts +5 -0
- package/lib/cjs/translations/en.js +5 -0
- package/lib/cjs/utils/formUtils.js +1 -0
- package/lib/cjs/utils/index.d.ts +1 -0
- package/lib/cjs/utils/index.js +2 -0
- package/lib/cjs/utils/utils.d.ts +2 -1
- package/lib/cjs/utils/utils.js +27 -9
- package/lib/mjs/CDN.d.ts +1 -1
- package/lib/mjs/CDN.js +2 -2
- package/lib/mjs/Embed.d.ts +16 -7
- package/lib/mjs/Embed.js +75 -18
- package/lib/mjs/Formio.d.ts +0 -1
- package/lib/mjs/Formio.js +11 -3
- package/lib/mjs/PDF.js +2 -2
- package/lib/mjs/Webform.d.ts +6 -9
- package/lib/mjs/Webform.js +58 -82
- package/lib/mjs/WebformBuilder.d.ts +1 -1
- package/lib/mjs/WebformBuilder.js +31 -10
- package/lib/mjs/Wizard.d.ts +5 -4
- package/lib/mjs/Wizard.js +36 -27
- package/lib/mjs/WizardBuilder.d.ts +1 -0
- package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.d.ts +1 -2
- package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.js +11 -12
- package/lib/mjs/addons/index.d.ts +1 -0
- package/lib/mjs/addons/index.js +5 -1
- package/lib/mjs/components/Components.d.ts +7 -0
- package/lib/mjs/components/Components.js +29 -0
- package/lib/mjs/components/_classes/component/Component.d.ts +57 -27
- package/lib/mjs/components/_classes/component/Component.js +191 -118
- package/lib/mjs/components/_classes/component/editForm/Component.edit.addons.d.ts +8 -0
- package/lib/mjs/components/_classes/component/editForm/Component.edit.addons.js +31 -1
- package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +28 -11
- package/lib/mjs/components/_classes/nested/NestedComponent.js +88 -57
- package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +4 -3
- package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +18 -5
- package/lib/mjs/components/builder.js +0 -2
- package/lib/mjs/components/button/Button.js +2 -1
- package/lib/mjs/components/columns/Columns.d.ts +1 -0
- package/lib/mjs/components/columns/Columns.js +2 -3
- package/lib/mjs/components/columns/editForm/Columns.edit.display.d.ts +30 -1
- package/lib/mjs/components/columns/editForm/Columns.edit.display.js +23 -1
- package/lib/mjs/components/container/Container.d.ts +1 -0
- package/lib/mjs/components/container/Container.js +2 -6
- package/lib/mjs/components/content/Content.d.ts +1 -0
- package/lib/mjs/components/content/Content.js +1 -0
- package/lib/mjs/components/datagrid/DataGrid.d.ts +0 -8
- package/lib/mjs/components/datagrid/DataGrid.js +9 -26
- package/lib/mjs/components/datamap/DataMap.js +2 -1
- package/lib/mjs/components/datetime/DateTime.js +0 -2
- package/lib/mjs/components/day/Day.js +2 -3
- package/lib/mjs/components/editgrid/EditGrid.d.ts +8 -4
- package/lib/mjs/components/editgrid/EditGrid.js +97 -76
- package/lib/mjs/components/email/Email.js +0 -1
- package/lib/mjs/components/file/File.js +1 -1
- package/lib/mjs/components/file/fixtures/comp3.d.ts +29 -0
- package/lib/mjs/components/file/fixtures/comp3.js +29 -0
- package/lib/mjs/components/form/Form.d.ts +2 -6
- package/lib/mjs/components/form/Form.js +45 -14
- package/lib/mjs/components/index.d.ts +0 -2
- package/lib/mjs/components/index.js +0 -2
- package/lib/mjs/components/number/Number.d.ts +1 -2
- package/lib/mjs/components/number/Number.js +4 -5
- package/lib/mjs/components/panel/Panel.d.ts +0 -1
- package/lib/mjs/components/panel/Panel.js +3 -9
- package/lib/mjs/components/panel/editForm/Panel.edit.display.d.ts +6 -38
- package/lib/mjs/components/panel/editForm/Panel.edit.display.js +3 -16
- package/lib/mjs/components/phonenumber/PhoneNumber.js +17 -0
- package/lib/mjs/components/radio/Radio.js +0 -2
- package/lib/mjs/components/recaptcha/ReCaptcha.d.ts +1 -1
- package/lib/mjs/components/recaptcha/ReCaptcha.js +2 -2
- package/lib/mjs/components/select/Select.js +3 -2
- package/lib/mjs/components/selectboxes/SelectBoxes.d.ts +1 -2
- package/lib/mjs/components/selectboxes/SelectBoxes.js +7 -6
- package/lib/mjs/components/table/editForm/Table.edit.display.d.ts +31 -2
- package/lib/mjs/components/table/editForm/Table.edit.display.js +22 -0
- package/lib/mjs/components/tabs/editForm/Tabs.edit.display.d.ts +30 -2
- package/lib/mjs/components/tabs/editForm/Tabs.edit.display.js +22 -0
- package/lib/mjs/components/textfield/TextField.js +20 -6
- package/lib/mjs/components/time/Time.js +0 -6
- package/lib/mjs/components/url/Url.js +0 -1
- package/lib/mjs/components/well/editForm/Well.edit.display.d.ts +25 -2
- package/lib/mjs/components/well/editForm/Well.edit.display.js +18 -0
- package/lib/mjs/formio.embed.js +5 -3
- package/lib/mjs/formio.form.d.ts +1 -7
- package/lib/mjs/formio.form.js +3 -32
- package/lib/mjs/index.d.ts +2 -1
- package/lib/mjs/index.js +2 -1
- package/lib/mjs/providers/Providers.d.ts +0 -4
- package/lib/mjs/providers/storage/azure.d.ts +0 -2
- package/lib/mjs/providers/storage/azure.js +1 -6
- package/lib/mjs/providers/storage/googleDrive.d.ts +0 -1
- package/lib/mjs/providers/storage/googleDrive.js +0 -4
- package/lib/mjs/providers/storage/s3.d.ts +0 -1
- package/lib/mjs/providers/storage/s3.js +0 -4
- package/lib/mjs/templates/Templates.d.ts +1 -11
- package/lib/mjs/templates/Templates.js +4 -40
- package/lib/mjs/translations/en.d.ts +5 -0
- package/lib/mjs/translations/en.js +5 -0
- package/lib/mjs/utils/formUtils.js +1 -0
- package/lib/mjs/utils/index.d.ts +1 -0
- package/lib/mjs/utils/index.js +1 -0
- package/lib/mjs/utils/utils.d.ts +2 -1
- package/lib/mjs/utils/utils.js +24 -7
- package/package.json +13 -13
- package/lib/cjs/components/tree/Node.d.ts +0 -55
- package/lib/cjs/components/tree/Node.js +0 -185
- package/lib/cjs/components/tree/Tree.d.ts +0 -48
- package/lib/cjs/components/tree/Tree.form.d.ts +0 -3
- package/lib/cjs/components/tree/Tree.form.js +0 -21
- package/lib/cjs/components/tree/Tree.js +0 -383
- package/lib/cjs/components/tree/editForm/Tree.edit.data.d.ts +0 -5
- package/lib/cjs/components/tree/editForm/Tree.edit.data.js +0 -9
- package/lib/cjs/components/tree/editForm/Tree.edit.display.d.ts +0 -9
- package/lib/cjs/components/tree/editForm/Tree.edit.display.js +0 -12
- package/lib/cjs/components/tree/fixtures/comp1.d.ts +0 -23
- package/lib/cjs/components/tree/fixtures/comp1.js +0 -24
- package/lib/cjs/components/tree/fixtures/comp2.d.ts +0 -116
- package/lib/cjs/components/tree/fixtures/comp2.js +0 -82
- package/lib/cjs/components/tree/fixtures/comp3.d.ts +0 -24
- package/lib/cjs/components/tree/fixtures/comp3.js +0 -25
- package/lib/cjs/components/tree/fixtures/comp4.d.ts +0 -42
- package/lib/cjs/components/tree/fixtures/comp4.js +0 -47
- package/lib/cjs/components/tree/fixtures/index.d.ts +0 -5
- package/lib/cjs/components/tree/fixtures/index.js +0 -14
- package/lib/cjs/validator/Rules.d.ts +0 -53
- package/lib/cjs/validator/Rules.js +0 -22
- package/lib/cjs/validator/Validator.d.ts +0 -228
- package/lib/cjs/validator/Validator.js +0 -1113
- package/lib/cjs/validator/conjunctions/index.d.ts +0 -7
- package/lib/cjs/validator/conjunctions/index.js +0 -18
- package/lib/cjs/validator/operators/index.d.ts +0 -7
- package/lib/cjs/validator/operators/index.js +0 -18
- package/lib/cjs/validator/quickRules/index.d.ts +0 -7
- package/lib/cjs/validator/quickRules/index.js +0 -18
- package/lib/cjs/validator/rules/Custom.d.ts +0 -5
- package/lib/cjs/validator/rules/Custom.js +0 -30
- package/lib/cjs/validator/rules/Date.d.ts +0 -5
- package/lib/cjs/validator/rules/Date.js +0 -25
- package/lib/cjs/validator/rules/Day.d.ts +0 -5
- package/lib/cjs/validator/rules/Day.js +0 -58
- package/lib/cjs/validator/rules/Email.d.ts +0 -5
- package/lib/cjs/validator/rules/Email.js +0 -24
- package/lib/cjs/validator/rules/JSON.d.ts +0 -5
- package/lib/cjs/validator/rules/JSON.js +0 -29
- package/lib/cjs/validator/rules/Mask.d.ts +0 -5
- package/lib/cjs/validator/rules/Mask.js +0 -32
- package/lib/cjs/validator/rules/Max.d.ts +0 -5
- package/lib/cjs/validator/rules/Max.js +0 -21
- package/lib/cjs/validator/rules/MaxDate.d.ts +0 -5
- package/lib/cjs/validator/rules/MaxDate.js +0 -34
- package/lib/cjs/validator/rules/MaxLength.d.ts +0 -5
- package/lib/cjs/validator/rules/MaxLength.js +0 -20
- package/lib/cjs/validator/rules/MaxWords.d.ts +0 -5
- package/lib/cjs/validator/rules/MaxWords.js +0 -20
- package/lib/cjs/validator/rules/MaxYear.d.ts +0 -5
- package/lib/cjs/validator/rules/MaxYear.js +0 -22
- package/lib/cjs/validator/rules/Min.d.ts +0 -5
- package/lib/cjs/validator/rules/Min.js +0 -21
- package/lib/cjs/validator/rules/MinDate.d.ts +0 -5
- package/lib/cjs/validator/rules/MinDate.js +0 -30
- package/lib/cjs/validator/rules/MinLength.d.ts +0 -5
- package/lib/cjs/validator/rules/MinLength.js +0 -20
- package/lib/cjs/validator/rules/MinWords.d.ts +0 -5
- package/lib/cjs/validator/rules/MinWords.js +0 -20
- package/lib/cjs/validator/rules/MinYear.d.ts +0 -5
- package/lib/cjs/validator/rules/MinYear.js +0 -22
- package/lib/cjs/validator/rules/Pattern.d.ts +0 -5
- package/lib/cjs/validator/rules/Pattern.js +0 -20
- package/lib/cjs/validator/rules/Required.d.ts +0 -5
- package/lib/cjs/validator/rules/Required.js +0 -17
- package/lib/cjs/validator/rules/Rule.d.ts +0 -7
- package/lib/cjs/validator/rules/Rule.js +0 -12
- package/lib/cjs/validator/rules/Select.d.ts +0 -5
- package/lib/cjs/validator/rules/Select.js +0 -95
- package/lib/cjs/validator/rules/Time.d.ts +0 -5
- package/lib/cjs/validator/rules/Time.js +0 -19
- package/lib/cjs/validator/rules/Unique.d.ts +0 -5
- package/lib/cjs/validator/rules/Unique.js +0 -69
- package/lib/cjs/validator/rules/Url.d.ts +0 -5
- package/lib/cjs/validator/rules/Url.js +0 -23
- package/lib/cjs/validator/rules/index.d.ts +0 -47
- package/lib/cjs/validator/rules/index.js +0 -51
- package/lib/cjs/validator/transformers/index.d.ts +0 -7
- package/lib/cjs/validator/transformers/index.js +0 -18
- package/lib/cjs/validator/valueSources/index.d.ts +0 -7
- package/lib/cjs/validator/valueSources/index.js +0 -18
- package/lib/mjs/components/tree/Node.d.ts +0 -55
- package/lib/mjs/components/tree/Node.js +0 -179
- package/lib/mjs/components/tree/Tree.d.ts +0 -48
- package/lib/mjs/components/tree/Tree.form.d.ts +0 -3
- package/lib/mjs/components/tree/Tree.form.js +0 -15
- package/lib/mjs/components/tree/Tree.js +0 -384
- package/lib/mjs/components/tree/editForm/Tree.edit.data.d.ts +0 -5
- package/lib/mjs/components/tree/editForm/Tree.edit.data.js +0 -7
- package/lib/mjs/components/tree/editForm/Tree.edit.display.d.ts +0 -9
- package/lib/mjs/components/tree/editForm/Tree.edit.display.js +0 -10
- package/lib/mjs/components/tree/fixtures/comp1.d.ts +0 -23
- package/lib/mjs/components/tree/fixtures/comp1.js +0 -22
- package/lib/mjs/components/tree/fixtures/comp2.d.ts +0 -116
- package/lib/mjs/components/tree/fixtures/comp2.js +0 -80
- package/lib/mjs/components/tree/fixtures/comp3.d.ts +0 -24
- package/lib/mjs/components/tree/fixtures/comp3.js +0 -23
- package/lib/mjs/components/tree/fixtures/comp4.d.ts +0 -42
- package/lib/mjs/components/tree/fixtures/comp4.js +0 -45
- package/lib/mjs/components/tree/fixtures/index.d.ts +0 -5
- package/lib/mjs/components/tree/fixtures/index.js +0 -5
- package/lib/mjs/validator/Rules.d.ts +0 -53
- package/lib/mjs/validator/Rules.js +0 -17
- package/lib/mjs/validator/Validator.d.ts +0 -228
- package/lib/mjs/validator/Validator.js +0 -1103
- package/lib/mjs/validator/conjunctions/index.d.ts +0 -7
- package/lib/mjs/validator/conjunctions/index.js +0 -16
- package/lib/mjs/validator/operators/index.d.ts +0 -7
- package/lib/mjs/validator/operators/index.js +0 -16
- package/lib/mjs/validator/quickRules/index.d.ts +0 -7
- package/lib/mjs/validator/quickRules/index.js +0 -16
- package/lib/mjs/validator/rules/Custom.d.ts +0 -5
- package/lib/mjs/validator/rules/Custom.js +0 -21
- package/lib/mjs/validator/rules/Date.d.ts +0 -5
- package/lib/mjs/validator/rules/Date.js +0 -16
- package/lib/mjs/validator/rules/Day.d.ts +0 -5
- package/lib/mjs/validator/rules/Day.js +0 -49
- package/lib/mjs/validator/rules/Email.d.ts +0 -5
- package/lib/mjs/validator/rules/Email.js +0 -15
- package/lib/mjs/validator/rules/JSON.d.ts +0 -5
- package/lib/mjs/validator/rules/JSON.js +0 -20
- package/lib/mjs/validator/rules/Mask.d.ts +0 -5
- package/lib/mjs/validator/rules/Mask.js +0 -23
- package/lib/mjs/validator/rules/Max.d.ts +0 -5
- package/lib/mjs/validator/rules/Max.js +0 -12
- package/lib/mjs/validator/rules/MaxDate.d.ts +0 -5
- package/lib/mjs/validator/rules/MaxDate.js +0 -25
- package/lib/mjs/validator/rules/MaxLength.d.ts +0 -5
- package/lib/mjs/validator/rules/MaxLength.js +0 -11
- package/lib/mjs/validator/rules/MaxWords.d.ts +0 -5
- package/lib/mjs/validator/rules/MaxWords.js +0 -11
- package/lib/mjs/validator/rules/MaxYear.d.ts +0 -5
- package/lib/mjs/validator/rules/MaxYear.js +0 -13
- package/lib/mjs/validator/rules/Min.d.ts +0 -5
- package/lib/mjs/validator/rules/Min.js +0 -12
- package/lib/mjs/validator/rules/MinDate.d.ts +0 -5
- package/lib/mjs/validator/rules/MinDate.js +0 -21
- package/lib/mjs/validator/rules/MinLength.d.ts +0 -5
- package/lib/mjs/validator/rules/MinLength.js +0 -11
- package/lib/mjs/validator/rules/MinWords.d.ts +0 -5
- package/lib/mjs/validator/rules/MinWords.js +0 -11
- package/lib/mjs/validator/rules/MinYear.d.ts +0 -5
- package/lib/mjs/validator/rules/MinYear.js +0 -13
- package/lib/mjs/validator/rules/Pattern.d.ts +0 -5
- package/lib/mjs/validator/rules/Pattern.js +0 -11
- package/lib/mjs/validator/rules/Required.d.ts +0 -5
- package/lib/mjs/validator/rules/Required.js +0 -8
- package/lib/mjs/validator/rules/Rule.d.ts +0 -7
- package/lib/mjs/validator/rules/Rule.js +0 -9
- package/lib/mjs/validator/rules/Select.d.ts +0 -5
- package/lib/mjs/validator/rules/Select.js +0 -86
- package/lib/mjs/validator/rules/Time.d.ts +0 -5
- package/lib/mjs/validator/rules/Time.js +0 -10
- package/lib/mjs/validator/rules/Unique.d.ts +0 -5
- package/lib/mjs/validator/rules/Unique.js +0 -60
- package/lib/mjs/validator/rules/Url.d.ts +0 -5
- package/lib/mjs/validator/rules/Url.js +0 -14
- package/lib/mjs/validator/rules/index.d.ts +0 -47
- package/lib/mjs/validator/rules/index.js +0 -46
- package/lib/mjs/validator/transformers/index.d.ts +0 -7
- package/lib/mjs/validator/transformers/index.js +0 -16
- package/lib/mjs/validator/valueSources/index.d.ts +0 -7
- package/lib/mjs/validator/valueSources/index.js +0 -16
@@ -8,6 +8,7 @@ const DataGrid_1 = __importDefault(require("../datagrid/DataGrid"));
|
|
8
8
|
const lodash_1 = __importDefault(require("lodash"));
|
9
9
|
const eventemitter3_1 = __importDefault(require("eventemitter3"));
|
10
10
|
const utils_1 = require("../../utils/utils");
|
11
|
+
const Components_1 = require("../Components");
|
11
12
|
class DataMapComponent extends DataGrid_1.default {
|
12
13
|
static schema(...extend) {
|
13
14
|
return Component_1.default.schema({
|
@@ -240,7 +241,7 @@ class DataMapComponent extends DataGrid_1.default {
|
|
240
241
|
delete dataValue[key];
|
241
242
|
const comp = components[this.valueKey];
|
242
243
|
comp.component.key = newKey;
|
243
|
-
comp.path =
|
244
|
+
comp.path = Components_1.Components.calculateComponentPath(comp);
|
244
245
|
key = newKey;
|
245
246
|
});
|
246
247
|
const valueComponent = lodash_1.default.clone(this.component.valueComponent);
|
@@ -104,8 +104,6 @@ class DateTimeComponent extends Input_1.default {
|
|
104
104
|
/* eslint-disable camelcase */
|
105
105
|
this.component.widget = Object.assign({ type: 'calendar', timezone, displayInTimezone: lodash_1.default.get(this.component, 'displayInTimezone', 'viewer'), locale: this.options.language, useLocaleSettings: lodash_1.default.get(this.component, 'useLocaleSettings', false), allowInput: lodash_1.default.get(this.component, 'allowInput', true), mode: 'single', enableTime: lodash_1.default.get(this.component, 'enableTime', true), noCalendar: !lodash_1.default.get(this.component, 'enableDate', true), format: this.component.format, hourIncrement: lodash_1.default.get(this.component, 'timePicker.hourStep', 1), minuteIncrement: lodash_1.default.get(this.component, 'timePicker.minuteStep', 5), time_24hr: time24hr, readOnly: this.options.readOnly, minDate: lodash_1.default.get(this.component, 'datePicker.minDate'), disabledDates: lodash_1.default.get(this.component, 'datePicker.disable'), disableWeekends: lodash_1.default.get(this.component, 'datePicker.disableWeekends'), disableWeekdays: lodash_1.default.get(this.component, 'datePicker.disableWeekdays'), disableFunction: lodash_1.default.get(this.component, 'datePicker.disableFunction'), maxDate: lodash_1.default.get(this.component, 'datePicker.maxDate') }, customOptions);
|
106
106
|
/* eslint-enable camelcase */
|
107
|
-
// Add the validators date.
|
108
|
-
this.validators.push('date');
|
109
107
|
}
|
110
108
|
get defaultSchema() {
|
111
109
|
return DateTimeComponent.schema();
|
@@ -51,10 +51,10 @@ class DayComponent extends Field_1.default {
|
|
51
51
|
return (0, utils_1.getComponentSavedTypes)(schema) || [utils_1.componentValueTypes.string];
|
52
52
|
}
|
53
53
|
constructor(component, options, data) {
|
54
|
-
if (component.maxDate) {
|
54
|
+
if (component.maxDate && component.maxDate.indexOf('moment(') === -1) {
|
55
55
|
component.maxDate = (0, moment_1.default)(component.maxDate, 'YYYY-MM-DD').toISOString();
|
56
56
|
}
|
57
|
-
if (component.minDate) {
|
57
|
+
if (component.minDate && component.minDate.indexOf('moment(') === -1) {
|
58
58
|
component.minDate = (0, moment_1.default)(component.minDate, 'YYYY-MM-DD').toISOString();
|
59
59
|
}
|
60
60
|
super(component, options, data);
|
@@ -211,7 +211,6 @@ class DayComponent extends Field_1.default {
|
|
211
211
|
}
|
212
212
|
init() {
|
213
213
|
super.init();
|
214
|
-
this.validators = this.validators.concat(['day', 'maxDate', 'minDate', 'minYear', 'maxYear']);
|
215
214
|
const minYear = this.component.fields.year.minYear;
|
216
215
|
const maxYear = this.component.fields.year.maxYear;
|
217
216
|
this.component.maxYear = maxYear;
|
@@ -83,12 +83,16 @@ export default class EditGridComponent extends NestedArrayComponent {
|
|
83
83
|
removeRow(rowIndex: any, modified: any): void;
|
84
84
|
createRowComponents(row: any, rowIndex: any, recreatePartially: any): any;
|
85
85
|
hasOpenRows(): any;
|
86
|
+
getAttachedData(data?: null): any;
|
86
87
|
shouldValidateDraft(editRow: any): any;
|
87
88
|
shouldValidateRow(editRow: any, dirty: any): any;
|
88
|
-
validateRow(editRow: any, dirty: any, forceSilentCheck: any):
|
89
|
-
showRowErrorAlerts(editRow: any,
|
90
|
-
|
91
|
-
|
89
|
+
validateRow(editRow: any, dirty: any, forceSilentCheck: any): any;
|
90
|
+
showRowErrorAlerts(editRow: any, errors: any): void;
|
91
|
+
/**
|
92
|
+
* Return that this component processes its own validation.
|
93
|
+
*/
|
94
|
+
get processOwnValidation(): boolean;
|
95
|
+
setRowInvalid(ref: any, index: any): void;
|
92
96
|
changeState(changed: any, flags: any): void;
|
93
97
|
openWhenEmpty(): void;
|
94
98
|
restoreRowContext(editRow: any, flags?: {}): void;
|
@@ -4,11 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
const lodash_1 = __importDefault(require("lodash"));
|
7
|
+
const process_1 = require("@formio/core/process");
|
8
|
+
const components_1 = require("@formio/bootstrap/components");
|
7
9
|
const NestedArrayComponent_1 = __importDefault(require("../_classes/nestedarray/NestedArrayComponent"));
|
8
10
|
const Component_1 = __importDefault(require("../_classes/component/Component"));
|
9
11
|
const Alert_1 = __importDefault(require("../alert/Alert"));
|
10
12
|
const utils_1 = require("../../utils/utils");
|
11
|
-
const components_1 = require("@formio/bootstrap/components");
|
12
13
|
const EditRowState = {
|
13
14
|
New: 'new',
|
14
15
|
Editing: 'editing',
|
@@ -87,7 +88,7 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
87
88
|
{% if (!instance.options.readOnly && !instance.disabled) { %}
|
88
89
|
<div class="col-sm-2">
|
89
90
|
<div class="btn-group pull-right">
|
90
|
-
<button class="btn btn-default btn-light btn-sm editRow"><i class="{{ iconClass('
|
91
|
+
<button class="btn btn-default btn-light btn-sm editRow"><i class="{{ iconClass('pen-fill') }}"></i></button>
|
91
92
|
{% if (!instance.hasRemoveButtons || instance.hasRemoveButtons()) { %}
|
92
93
|
<button class="btn btn-danger btn-sm removeRow"><i class="{{ iconClass('trash') }}"></i></button>
|
93
94
|
{% } %}
|
@@ -108,7 +109,7 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
108
109
|
{% if (!instance.options.readOnly && !instance.disabled) { %}
|
109
110
|
<td class="editgrid-table-column">
|
110
111
|
<div class="btn-group">
|
111
|
-
<button class="btn btn-default btn-light btn-sm editRow" aria-label="{{ t('Edit row') }}"><i class="{{ iconClass('
|
112
|
+
<button class="btn btn-default btn-light btn-sm editRow" aria-label="{{ t('Edit row') }}"><i class="{{ iconClass('pen-fill') }}"></i></button>
|
112
113
|
{% if (!instance.hasRemoveButtons || instance.hasRemoveButtons()) { %}
|
113
114
|
<button class="btn btn-danger btn-sm removeRow" aria-label="{{ t('Remove row') }}"><i class="{{ iconClass('trash') }}"></i></button>
|
114
115
|
{% } %}
|
@@ -440,11 +441,10 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
440
441
|
this.editRow(rowIndex).then(() => {
|
441
442
|
var _a;
|
442
443
|
if (this.component.rowDrafts) {
|
443
|
-
this.validateRow(editRow, false);
|
444
|
-
const
|
445
|
-
const shouldShowRowErrorsAlert = this.component.modal && hasErrors && ((_a = this.root) === null || _a === void 0 ? void 0 : _a.submitted);
|
444
|
+
const errors = this.validateRow(editRow, false);
|
445
|
+
const shouldShowRowErrorsAlert = this.component.modal && errors.length && ((_a = this.root) === null || _a === void 0 ? void 0 : _a.submitted);
|
446
446
|
if (shouldShowRowErrorsAlert) {
|
447
|
-
this.alert.showErrors(
|
447
|
+
this.alert.showErrors(errors, false);
|
448
448
|
editRow.alerts = true;
|
449
449
|
}
|
450
450
|
}
|
@@ -615,7 +615,7 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
615
615
|
component: this.component,
|
616
616
|
row: editRow,
|
617
617
|
});
|
618
|
-
this.
|
618
|
+
this.processRow('checkData', null, {}, editRow.data, editRow.components);
|
619
619
|
if (this.component.modal) {
|
620
620
|
this.addRowModal(rowIndex);
|
621
621
|
}
|
@@ -662,13 +662,14 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
662
662
|
if (!this.component.rowDrafts) {
|
663
663
|
editRow.components.forEach((comp) => comp.setPristine(false));
|
664
664
|
}
|
665
|
-
|
665
|
+
const errors = this.validateRow(editRow, true);
|
666
|
+
if (!errors.length || this.component.rowDrafts) {
|
666
667
|
editRow.willBeSaved = true;
|
667
668
|
dialog.close();
|
668
669
|
this.saveRow(rowIndex, true);
|
669
670
|
}
|
670
671
|
else {
|
671
|
-
this.alert.showErrors(
|
672
|
+
this.alert.showErrors(errors, false);
|
672
673
|
editRow.alerts = true;
|
673
674
|
}
|
674
675
|
},
|
@@ -794,9 +795,9 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
794
795
|
if (!this.component.rowDrafts) {
|
795
796
|
editRow.components.forEach((comp) => comp.setPristine(false));
|
796
797
|
}
|
797
|
-
const
|
798
|
+
const errors = this.validateRow(editRow, true);
|
798
799
|
if (!this.component.rowDrafts) {
|
799
|
-
if (
|
800
|
+
if (errors.length) {
|
800
801
|
return false;
|
801
802
|
}
|
802
803
|
}
|
@@ -822,7 +823,7 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
822
823
|
}
|
823
824
|
}
|
824
825
|
}
|
825
|
-
editRow.state = this.component.rowDrafts &&
|
826
|
+
editRow.state = this.component.rowDrafts && errors.length ? EditRowState.Draft : EditRowState.Saved;
|
826
827
|
editRow.backup = null;
|
827
828
|
this.updateValue();
|
828
829
|
this.emit('editGridSaveRow', {
|
@@ -931,15 +932,9 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
931
932
|
return;
|
932
933
|
}
|
933
934
|
const editRow = this.editRows[rowIndex];
|
934
|
-
if (editRow
|
935
|
-
this.checkData
|
936
|
-
|
937
|
-
}
|
938
|
-
else if (editRow) {
|
939
|
-
// If drafts allowed, perform validation silently if there was no attempt to submit a form
|
940
|
-
const silentCheck = this.component.rowDrafts && !this.shouldValidateDraft(editRow);
|
941
|
-
this.checkRow('checkData', null, Object.assign(Object.assign({}, flags), { changed,
|
942
|
-
silentCheck }), editRow.data, editRow.components, silentCheck);
|
935
|
+
if (editRow) {
|
936
|
+
this.processRow('checkData', null, Object.assign(Object.assign({}, flags), { changed }), editRow.data, editRow.components);
|
937
|
+
this.validateRow(editRow, false);
|
943
938
|
}
|
944
939
|
if (this.variableTypeComponentsIndexes.length) {
|
945
940
|
this.checkRowVariableTypeComponents(editRow, rowIndex);
|
@@ -955,6 +950,11 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
955
950
|
hasOpenRows() {
|
956
951
|
return this.editRows.some(row => this.isOpen(row));
|
957
952
|
}
|
953
|
+
getAttachedData(data = null) {
|
954
|
+
const ourData = (0, utils_1.fastCloneDeep)(data || this._data || this.rootValue);
|
955
|
+
lodash_1.default.set(ourData, this.key, this.editRows.map((row) => row.data));
|
956
|
+
return ourData;
|
957
|
+
}
|
958
958
|
shouldValidateDraft(editRow) {
|
959
959
|
var _a, _b;
|
960
960
|
// Draft rows should be validated only when there was an attempt to submit a form
|
@@ -966,48 +966,65 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
966
966
|
}
|
967
967
|
shouldValidateRow(editRow, dirty) {
|
968
968
|
return this.shouldValidateDraft(editRow) ||
|
969
|
+
editRow.state === EditRowState.New ||
|
969
970
|
editRow.state === EditRowState.Editing ||
|
970
971
|
editRow.alerts ||
|
971
972
|
dirty;
|
972
973
|
}
|
973
974
|
validateRow(editRow, dirty, forceSilentCheck) {
|
974
975
|
var _a;
|
975
|
-
|
976
|
-
const errorsSnapshot = [...this.errors];
|
976
|
+
editRow.errors = [];
|
977
977
|
if (this.shouldValidateRow(editRow, dirty)) {
|
978
|
-
|
979
|
-
|
980
|
-
|
981
|
-
|
978
|
+
const silentCheck = (this.component.rowDrafts && !this.shouldValidateDraft(editRow)) || forceSilentCheck;
|
979
|
+
const rootValue = (0, utils_1.fastCloneDeep)(this.rootValue);
|
980
|
+
const editGridValue = lodash_1.default.get(rootValue, this.path, []);
|
981
|
+
editGridValue[editRow.rowIndex] = editRow.data;
|
982
|
+
lodash_1.default.set(rootValue, this.path, editGridValue);
|
983
|
+
editRow.errors = (0, process_1.processSync)({
|
984
|
+
components: (0, utils_1.fastCloneDeep)(this.component.components).map((component) => {
|
985
|
+
component.parentPath = `${this.path}[${editRow.rowIndex}]`;
|
986
|
+
return component;
|
987
|
+
}),
|
988
|
+
data: rootValue,
|
989
|
+
row: editRow.data,
|
990
|
+
process: 'validateRow',
|
991
|
+
instances: this.componentsMap,
|
992
|
+
scope: { errors: [] },
|
993
|
+
processors: [
|
994
|
+
(context) => this.validationProcessor(context, { dirty, silentCheck })
|
995
|
+
]
|
996
|
+
}).errors;
|
982
997
|
}
|
998
|
+
// TODO: this is essentially running its own custom validation and should be moved into a validation rule
|
983
999
|
if (this.component.validate && this.component.validate.row) {
|
984
|
-
valid = this.evaluate(this.component.validate.row, {
|
985
|
-
valid,
|
1000
|
+
const valid = this.evaluate(this.component.validate.row, {
|
1001
|
+
valid: (editRow.length === 0),
|
986
1002
|
row: editRow.data
|
987
1003
|
}, 'valid', true);
|
988
1004
|
if (valid.toString() !== 'true') {
|
989
|
-
editRow.
|
990
|
-
|
991
|
-
|
992
|
-
|
993
|
-
|
1005
|
+
editRow.errors.push({
|
1006
|
+
type: 'error',
|
1007
|
+
rowError: true,
|
1008
|
+
message: valid.toString()
|
1009
|
+
});
|
994
1010
|
}
|
995
1011
|
if (valid === null) {
|
996
|
-
|
1012
|
+
editRow.errors.push({
|
1013
|
+
type: 'error',
|
1014
|
+
message: `Invalid row validation for ${this.key}`
|
1015
|
+
});
|
997
1016
|
}
|
998
1017
|
}
|
999
|
-
editRow.errors = !valid ? this.errors.filter((err) => !errorsSnapshot.includes(err)) : null;
|
1000
1018
|
if (!this.component.rowDrafts || ((_a = this.root) === null || _a === void 0 ? void 0 : _a.submitted)) {
|
1001
|
-
this.showRowErrorAlerts(editRow,
|
1019
|
+
this.showRowErrorAlerts(editRow, editRow.errors);
|
1002
1020
|
}
|
1003
|
-
return
|
1021
|
+
return editRow.errors;
|
1004
1022
|
}
|
1005
|
-
showRowErrorAlerts(editRow,
|
1006
|
-
var _a;
|
1023
|
+
showRowErrorAlerts(editRow, errors) {
|
1007
1024
|
if (editRow.alerts) {
|
1008
1025
|
if (this.alert) {
|
1009
|
-
if (
|
1010
|
-
this.alert.showErrors(
|
1026
|
+
if (errors.length) {
|
1027
|
+
this.alert.showErrors(errors, false);
|
1011
1028
|
editRow.alerts = true;
|
1012
1029
|
}
|
1013
1030
|
else {
|
@@ -1016,40 +1033,35 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
1016
1033
|
}
|
1017
1034
|
}
|
1018
1035
|
}
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1022
|
-
|
1023
|
-
|
1024
|
-
return true;
|
1025
|
-
}
|
1026
|
-
return this.checkComponentValidity(data, dirty, row, { silentCheck });
|
1036
|
+
/**
|
1037
|
+
* Return that this component processes its own validation.
|
1038
|
+
*/
|
1039
|
+
get processOwnValidation() {
|
1040
|
+
return true;
|
1027
1041
|
}
|
1028
|
-
checkComponentValidity(data, dirty, row, options = {}) {
|
1029
|
-
var _a, _b
|
1042
|
+
checkComponentValidity(data, dirty, row, options = {}, errors = []) {
|
1043
|
+
var _a, _b;
|
1030
1044
|
const { silentCheck } = options;
|
1031
|
-
const
|
1032
|
-
const superValid = super.checkComponentValidity(data, dirty, row, options);
|
1045
|
+
const superValid = super.checkComponentValidity(data, dirty, row, options, errors);
|
1033
1046
|
// If super tells us that component invalid and there is no need to update alerts, just return false
|
1034
1047
|
if (!superValid && (!this.alert && !this.hasOpenRows())) {
|
1035
1048
|
return false;
|
1036
1049
|
}
|
1037
|
-
if (this.shouldSkipValidation(data, dirty, row)) {
|
1038
|
-
return true;
|
1039
|
-
}
|
1040
|
-
let rowsValid = true;
|
1041
1050
|
let rowsEditing = false;
|
1051
|
+
const allRowErrors = [];
|
1042
1052
|
this.editRows.forEach((editRow, index) => {
|
1043
1053
|
// Trigger all errors on the row.
|
1044
|
-
const
|
1045
|
-
|
1054
|
+
const rowErrors = this.validateRow(editRow, dirty, silentCheck);
|
1055
|
+
errors.push(...rowErrors);
|
1056
|
+
allRowErrors.push(...rowErrors);
|
1046
1057
|
if (this.rowRefs) {
|
1047
1058
|
const rowContainer = this.rowRefs[index];
|
1048
1059
|
if (rowContainer) {
|
1049
1060
|
const errorContainer = rowContainer.querySelector('.editgrid-row-error');
|
1050
|
-
if (
|
1061
|
+
if (rowErrors.length && errorContainer && (!this.component.rowDrafts || this.shouldValidateDraft(editRow))) {
|
1062
|
+
const rowError = rowErrors.find(error => error.rowError);
|
1051
1063
|
this.addClass(errorContainer, 'help-block');
|
1052
|
-
errorContainer.textContent = this.t(this.errorMessage('invalidRowError'));
|
1064
|
+
errorContainer.textContent = this.t(rowError ? rowError.message : this.errorMessage('invalidRowError'));
|
1053
1065
|
}
|
1054
1066
|
else if (errorContainer) {
|
1055
1067
|
errorContainer.textContent = '';
|
@@ -1059,10 +1071,9 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
1059
1071
|
// If this is a dirty check, and any rows are still editing, we need to throw validation error.
|
1060
1072
|
rowsEditing |= (dirty && this.isOpen(editRow));
|
1061
1073
|
});
|
1062
|
-
if (
|
1063
|
-
if (!silentCheck && (!this.component.rowDrafts || ((_a = this.root) === null || _a === void 0 ? void 0 : _a.submitted))) {
|
1074
|
+
if (allRowErrors.length) {
|
1075
|
+
if (!silentCheck && (dirty || this.dirty) && (!this.component.rowDrafts || ((_a = this.root) === null || _a === void 0 ? void 0 : _a.submitted))) {
|
1064
1076
|
this.setCustomValidity(this.t(this.errorMessage('invalidRowsError')), dirty);
|
1065
|
-
// Delete this class, because otherwise all the components inside EditGrid will has red border even if they are valid
|
1066
1077
|
this.removeClass(this.element, 'has-error');
|
1067
1078
|
}
|
1068
1079
|
return false;
|
@@ -1072,15 +1083,28 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
1072
1083
|
return false;
|
1073
1084
|
}
|
1074
1085
|
const message = this.invalid || this.invalidMessage(data, dirty);
|
1075
|
-
if (
|
1076
|
-
this.setCustomValidity(message, dirty);
|
1077
|
-
this.
|
1086
|
+
if (allRowErrors.length && ((_b = this.root) === null || _b === void 0 ? void 0 : _b.submitted) && !message) {
|
1087
|
+
this._errors = this.setCustomValidity(message, dirty);
|
1088
|
+
errors.push(...this._errors);
|
1089
|
+
this.root.showErrors([message]);
|
1078
1090
|
}
|
1079
1091
|
else {
|
1080
|
-
this.setCustomValidity(message, dirty);
|
1092
|
+
this._errors = this.setCustomValidity(message, dirty);
|
1093
|
+
errors.push(...this._errors);
|
1081
1094
|
}
|
1082
1095
|
return superValid;
|
1083
1096
|
}
|
1097
|
+
setRowInvalid(ref, index) {
|
1098
|
+
const editRow = this.editRows[index];
|
1099
|
+
const errorContainer = ref.querySelector('.editgrid-row-error');
|
1100
|
+
if (errorContainer && (!this.component.rowDrafts || this.shouldValidateDraft(editRow))) {
|
1101
|
+
this.addClass(errorContainer, 'help-block');
|
1102
|
+
errorContainer.textContent = this.t(this.errorMessage('invalidRowError'));
|
1103
|
+
}
|
1104
|
+
else if (errorContainer) {
|
1105
|
+
errorContainer.textContent = '';
|
1106
|
+
}
|
1107
|
+
}
|
1084
1108
|
changeState(changed, flags) {
|
1085
1109
|
if (changed || (flags.resetValue && this.component.modalEdit)) {
|
1086
1110
|
this.rebuild();
|
@@ -1102,7 +1126,6 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
1102
1126
|
}
|
1103
1127
|
}
|
1104
1128
|
const changed = this.hasChanged(value, this.dataValue);
|
1105
|
-
flags.noValidate = !changed;
|
1106
1129
|
if (this.parent) {
|
1107
1130
|
this.parent.checkComponentConditions();
|
1108
1131
|
}
|
@@ -1115,7 +1138,7 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
1115
1138
|
this.restoreRowContext(editRow, flags);
|
1116
1139
|
editRow.state = EditRowState.Saved;
|
1117
1140
|
editRow.backup = null;
|
1118
|
-
editRow.
|
1141
|
+
editRow.errors = [];
|
1119
1142
|
}
|
1120
1143
|
else {
|
1121
1144
|
this.editRows[rowIndex] = {
|
@@ -1123,7 +1146,7 @@ class EditGridComponent extends NestedArrayComponent_1.default {
|
|
1123
1146
|
data: row,
|
1124
1147
|
state: EditRowState.Saved,
|
1125
1148
|
backup: null,
|
1126
|
-
|
1149
|
+
errors: [],
|
1127
1150
|
};
|
1128
1151
|
}
|
1129
1152
|
});
|
@@ -283,7 +283,7 @@ class FileComponent extends Field_1.default {
|
|
283
283
|
}
|
284
284
|
deleteFile(fileInfo) {
|
285
285
|
const { options = {} } = this.component;
|
286
|
-
if (fileInfo && (['url', 'indexeddb'
|
286
|
+
if (fileInfo && (['url', 'indexeddb'].includes(this.component.storage))) {
|
287
287
|
const { fileService } = this;
|
288
288
|
if (fileService && typeof fileService.deleteFile === 'function') {
|
289
289
|
fileService.deleteFile(fileInfo, options);
|
@@ -0,0 +1,29 @@
|
|
1
|
+
declare namespace _default {
|
2
|
+
const type: string;
|
3
|
+
const display: string;
|
4
|
+
const components: ({
|
5
|
+
label: string;
|
6
|
+
tableView: boolean;
|
7
|
+
storage: string;
|
8
|
+
webcam: boolean;
|
9
|
+
fileTypes: {
|
10
|
+
label: string;
|
11
|
+
value: string;
|
12
|
+
}[];
|
13
|
+
key: string;
|
14
|
+
type: string;
|
15
|
+
input: boolean;
|
16
|
+
disableOnInvalid?: undefined;
|
17
|
+
} | {
|
18
|
+
type: string;
|
19
|
+
label: string;
|
20
|
+
key: string;
|
21
|
+
disableOnInvalid: boolean;
|
22
|
+
input: boolean;
|
23
|
+
tableView: boolean;
|
24
|
+
storage?: undefined;
|
25
|
+
webcam?: undefined;
|
26
|
+
fileTypes?: undefined;
|
27
|
+
})[];
|
28
|
+
}
|
29
|
+
export default _default;
|
@@ -0,0 +1,31 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.default = {
|
4
|
+
type: 'form',
|
5
|
+
display: 'form',
|
6
|
+
components: [
|
7
|
+
{
|
8
|
+
label: 'Upload',
|
9
|
+
tableView: false,
|
10
|
+
storage: 'base64',
|
11
|
+
webcam: false,
|
12
|
+
fileTypes: [
|
13
|
+
{
|
14
|
+
label: '',
|
15
|
+
value: ''
|
16
|
+
}
|
17
|
+
],
|
18
|
+
key: 'file',
|
19
|
+
type: 'file',
|
20
|
+
input: true
|
21
|
+
},
|
22
|
+
{
|
23
|
+
type: 'button',
|
24
|
+
label: 'Submit',
|
25
|
+
key: 'submit',
|
26
|
+
disableOnInvalid: true,
|
27
|
+
input: true,
|
28
|
+
tableView: false
|
29
|
+
}
|
30
|
+
],
|
31
|
+
};
|
@@ -25,10 +25,6 @@ export default class FormComponent extends Component {
|
|
25
25
|
getSubOptions(options?: {}): {};
|
26
26
|
render(): any;
|
27
27
|
asString(value: any): any;
|
28
|
-
/**
|
29
|
-
* Prints out the value of form components as a datagrid value.
|
30
|
-
*/
|
31
|
-
getValueAsString(value: any): any;
|
32
28
|
attach(element: any): Promise<any>;
|
33
29
|
get hasLoadedForm(): any;
|
34
30
|
get isRevisionChanged(): any;
|
@@ -54,7 +50,7 @@ export default class FormComponent extends Component {
|
|
54
50
|
loadSubForm(fromAttach: any): any;
|
55
51
|
subFormLoading: boolean | undefined;
|
56
52
|
get subFormData(): any;
|
57
|
-
checkComponentValidity(data: any, dirty: any, row: any, options: any): any;
|
53
|
+
checkComponentValidity(data: any, dirty: any, row: any, options: any, errors?: any[]): any;
|
58
54
|
checkComponentConditions(data: any, flags: any, row: any): any;
|
59
55
|
calculateValue(data: any, flags: any, row: any): any;
|
60
56
|
setPristine(pristine: any): void;
|
@@ -74,7 +70,7 @@ export default class FormComponent extends Component {
|
|
74
70
|
*
|
75
71
|
* @return {*}
|
76
72
|
*/
|
77
|
-
submitSubForm(
|
73
|
+
submitSubForm(): any;
|
78
74
|
/**
|
79
75
|
* Submit the form before the next page is triggered.
|
80
76
|
*/
|
@@ -143,7 +143,6 @@ class FormComponent extends Component_1.default {
|
|
143
143
|
}
|
144
144
|
}
|
145
145
|
getSubOptions(options = {}) {
|
146
|
-
options.parentPath = `${this.path}.data.`;
|
147
146
|
options.events = this.createEmitter();
|
148
147
|
// Make sure to not show the submit button in wizards in the nested forms.
|
149
148
|
lodash_1.default.set(options, 'buttonSettings.showSubmit', false);
|
@@ -192,6 +191,12 @@ class FormComponent extends Component_1.default {
|
|
192
191
|
if (this.options.onChange) {
|
193
192
|
options.onChange = this.options.onChange;
|
194
193
|
}
|
194
|
+
if (this.options.preview) {
|
195
|
+
options.preview = this.options.preview;
|
196
|
+
}
|
197
|
+
if (this.options.inEditGrid) {
|
198
|
+
options.inEditGrid = this.options.inEditGrid;
|
199
|
+
}
|
195
200
|
return options;
|
196
201
|
}
|
197
202
|
render() {
|
@@ -207,7 +212,7 @@ class FormComponent extends Component_1.default {
|
|
207
212
|
/**
|
208
213
|
* Prints out the value of form components as a datagrid value.
|
209
214
|
*/
|
210
|
-
getValueAsString(value) {
|
215
|
+
getValueAsString(value, options) {
|
211
216
|
if (!value) {
|
212
217
|
return 'No data provided';
|
213
218
|
}
|
@@ -217,6 +222,30 @@ class FormComponent extends Component_1.default {
|
|
217
222
|
if (!value.data || !Object.keys(value.data).length) {
|
218
223
|
return 'No data provided';
|
219
224
|
}
|
225
|
+
if (options === null || options === void 0 ? void 0 : options.email) {
|
226
|
+
let result = (`
|
227
|
+
<table border="1" style="width:100%">
|
228
|
+
<tbody>
|
229
|
+
`);
|
230
|
+
this.everyComponent((component) => {
|
231
|
+
if (component.isInputComponent && component.visible && !component.skipInEmail) {
|
232
|
+
result += (`
|
233
|
+
<tr>
|
234
|
+
<th style="padding: 5px 10px;">${component.label}</th>
|
235
|
+
<td style="width:100%;padding:5px 10px;">${component.getView(component.dataValue, options)}</td>
|
236
|
+
</tr>
|
237
|
+
`);
|
238
|
+
}
|
239
|
+
}, Object.assign(Object.assign({}, options), { fromRoot: true }));
|
240
|
+
result += (`
|
241
|
+
</tbody>
|
242
|
+
</table>
|
243
|
+
`);
|
244
|
+
return result;
|
245
|
+
}
|
246
|
+
if (lodash_1.default.isEmpty(value)) {
|
247
|
+
return '';
|
248
|
+
}
|
220
249
|
return '[Complex Data]';
|
221
250
|
}
|
222
251
|
attach(element) {
|
@@ -389,11 +418,12 @@ class FormComponent extends Component_1.default {
|
|
389
418
|
* Load the subform.
|
390
419
|
*/
|
391
420
|
loadSubForm(fromAttach) {
|
421
|
+
var _a;
|
392
422
|
if (this.builderMode || this.isHidden() || (this.isSubFormLazyLoad() && !fromAttach)) {
|
393
423
|
return Promise.resolve();
|
394
424
|
}
|
395
425
|
if (this.hasLoadedForm && !this.isRevisionChanged &&
|
396
|
-
!(this.options.pdf && this.useOriginalRevision && lodash_1.default.isNull(this.subForm) && !this.subFormLoading)) {
|
426
|
+
!(this.options.pdf && ((_a = this.component) === null || _a === void 0 ? void 0 : _a.useOriginalRevision) && lodash_1.default.isNull(this.subForm) && !this.subFormLoading)) {
|
397
427
|
// Pass config down to sub forms.
|
398
428
|
if (this.root && this.root.form && this.root.form.config && !this.formObj.config) {
|
399
429
|
this.formObj.config = this.root.form.config;
|
@@ -405,6 +435,9 @@ class FormComponent extends Component_1.default {
|
|
405
435
|
return (new Formio_1.Formio(this.formSrc)).loadForm({ params: { live: 1 } })
|
406
436
|
.then((formObj) => {
|
407
437
|
this.formObj = formObj;
|
438
|
+
if (this.options.pdf && this.component.useOriginalRevision) {
|
439
|
+
this.formObj.display = 'form';
|
440
|
+
}
|
408
441
|
this.subFormLoading = false;
|
409
442
|
return formObj;
|
410
443
|
})
|
@@ -419,13 +452,13 @@ class FormComponent extends Component_1.default {
|
|
419
452
|
var _a;
|
420
453
|
return ((_a = this.dataValue) === null || _a === void 0 ? void 0 : _a.data) || {};
|
421
454
|
}
|
422
|
-
checkComponentValidity(data, dirty, row, options) {
|
455
|
+
checkComponentValidity(data, dirty, row, options, errors = []) {
|
423
456
|
options = options || {};
|
424
457
|
const silentCheck = options.silentCheck || false;
|
425
458
|
if (this.subForm) {
|
426
|
-
return this.subForm.checkValidity(this.subFormData, dirty, null, silentCheck);
|
459
|
+
return this.subForm.checkValidity(this.subFormData, dirty, null, silentCheck, errors);
|
427
460
|
}
|
428
|
-
return super.checkComponentValidity(data, dirty, row, options);
|
461
|
+
return super.checkComponentValidity(data, dirty, row, options, errors);
|
429
462
|
}
|
430
463
|
checkComponentConditions(data, flags, row) {
|
431
464
|
const visible = super.checkComponentConditions(data, flags, row);
|
@@ -484,7 +517,7 @@ class FormComponent extends Component_1.default {
|
|
484
517
|
*
|
485
518
|
* @return {*}
|
486
519
|
*/
|
487
|
-
submitSubForm(
|
520
|
+
submitSubForm() {
|
488
521
|
// If we wish to submit the form on next page, then do that here.
|
489
522
|
if (this.shouldSubmit) {
|
490
523
|
return this.subFormReady.then(() => {
|
@@ -492,6 +525,7 @@ class FormComponent extends Component_1.default {
|
|
492
525
|
return this.dataValue;
|
493
526
|
}
|
494
527
|
this.subForm.nosubmit = false;
|
528
|
+
this.subForm.submitted = true;
|
495
529
|
return this.subForm.submitForm().then(result => {
|
496
530
|
this.subForm.loading = false;
|
497
531
|
this.subForm.showAllErrors = false;
|
@@ -499,13 +533,8 @@ class FormComponent extends Component_1.default {
|
|
499
533
|
return this.dataValue;
|
500
534
|
}).catch(err => {
|
501
535
|
this.subForm.showAllErrors = true;
|
502
|
-
|
503
|
-
|
504
|
-
return Promise.reject(err);
|
505
|
-
}
|
506
|
-
else {
|
507
|
-
return {};
|
508
|
-
}
|
536
|
+
this.subForm.onSubmissionError(err);
|
537
|
+
return Promise.reject(err);
|
509
538
|
});
|
510
539
|
});
|
511
540
|
}
|