@formio/js 5.2.4-rc.0 → 5.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/formio.builder.css +50 -161
- package/dist/formio.builder.min.css +1 -1
- package/dist/formio.embed.js +1 -1
- package/dist/formio.embed.min.js +1 -1
- package/dist/formio.embed.min.js.LICENSE.txt +1 -1
- package/dist/formio.form.css +49 -158
- package/dist/formio.form.js +108 -152
- package/dist/formio.form.min.css +1 -1
- package/dist/formio.form.min.js +1 -1
- package/dist/formio.form.min.js.LICENSE.txt +1 -1
- package/dist/formio.full.css +50 -161
- package/dist/formio.full.js +227 -401
- package/dist/formio.full.min.css +1 -1
- package/dist/formio.full.min.js +1 -1
- package/dist/formio.full.min.js.LICENSE.txt +1 -1
- package/dist/formio.js +18 -51
- package/dist/formio.min.js +1 -1
- package/dist/formio.min.js.LICENSE.txt +1 -1
- package/dist/formio.utils.js +14 -47
- package/dist/formio.utils.min.js +1 -1
- package/dist/formio.utils.min.js.LICENSE.txt +1 -1
- package/lib/cjs/CDN.js +12 -12
- package/lib/cjs/Element.d.ts +2 -3
- package/lib/cjs/Element.js +26 -29
- package/lib/cjs/Embed.js +42 -75
- package/lib/cjs/EventEmitter.js +1 -1
- package/lib/cjs/Form.d.ts +341 -371
- package/lib/cjs/Form.js +39 -153
- package/lib/cjs/FormBuilder.d.ts +3 -3
- package/lib/cjs/FormBuilder.js +3 -2
- package/lib/cjs/Formio.js +23 -26
- package/lib/cjs/InlineEmbed.js +17 -23
- package/lib/cjs/PDF.d.ts +0 -1
- package/lib/cjs/PDF.js +15 -18
- package/lib/cjs/PDFBuilder.js +36 -51
- package/lib/cjs/Webform.d.ts +366 -8
- package/lib/cjs/Webform.js +238 -177
- package/lib/cjs/WebformBuilder.js +152 -221
- package/lib/cjs/Wizard.js +65 -95
- package/lib/cjs/WizardBuilder.js +19 -27
- package/lib/cjs/addons/FormioAddon.js +1 -1
- package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.form.js +57 -59
- package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.js +16 -24
- package/lib/cjs/addons/index.js +3 -3
- package/lib/cjs/components/Components.js +4 -0
- package/lib/cjs/components/_classes/component/Component.form.js +11 -11
- package/lib/cjs/components/_classes/component/Component.js +198 -309
- package/lib/cjs/components/_classes/component/editForm/Component.edit.addons.js +4 -2
- package/lib/cjs/components/_classes/component/editForm/Component.edit.api.js +5 -5
- package/lib/cjs/components/_classes/component/editForm/Component.edit.conditional.js +11 -9
- package/lib/cjs/components/_classes/component/editForm/Component.edit.data.d.ts +0 -37
- package/lib/cjs/components/_classes/component/editForm/Component.edit.data.js +25 -39
- package/lib/cjs/components/_classes/component/editForm/Component.edit.display.js +29 -47
- package/lib/cjs/components/_classes/component/editForm/Component.edit.layout.js +9 -9
- package/lib/cjs/components/_classes/component/editForm/Component.edit.logic.js +7 -5
- package/lib/cjs/components/_classes/component/editForm/Component.edit.validation.js +34 -37
- package/lib/cjs/components/_classes/component/editForm/utils.js +16 -12
- package/lib/cjs/components/_classes/componentModal/ComponentModal.js +6 -6
- package/lib/cjs/components/_classes/field/Field.js +1 -7
- package/lib/cjs/components/_classes/input/Input.js +26 -30
- package/lib/cjs/components/_classes/list/ListComponent.form.js +1 -1
- package/lib/cjs/components/_classes/list/ListComponent.js +18 -27
- package/lib/cjs/components/_classes/list/editForm/ListComponent.edit.data.js +9 -36
- package/lib/cjs/components/_classes/multivalue/Multivalue.js +13 -32
- package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +1 -1
- package/lib/cjs/components/_classes/nested/NestedComponent.form.js +3 -3
- package/lib/cjs/components/_classes/nested/NestedComponent.js +75 -67
- package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +14 -19
- package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +17 -19
- package/lib/cjs/components/address/Address.d.ts +0 -1
- package/lib/cjs/components/address/Address.js +52 -57
- package/lib/cjs/components/address/editForm/Address.edit.data.js +2 -2
- package/lib/cjs/components/address/editForm/Address.edit.display.js +2 -2
- package/lib/cjs/components/address/editForm/Address.edit.provider.js +11 -53
- package/lib/cjs/components/alert/Alert.js +15 -21
- package/lib/cjs/components/button/Button.form.js +1 -1
- package/lib/cjs/components/button/Button.js +47 -64
- package/lib/cjs/components/button/editForm/Button.edit.display.js +9 -49
- package/lib/cjs/components/checkbox/Checkbox.d.ts +1 -1
- package/lib/cjs/components/checkbox/Checkbox.form.js +3 -3
- package/lib/cjs/components/checkbox/Checkbox.js +20 -28
- package/lib/cjs/components/checkbox/editForm/Checkbox.edit.data.js +1 -1
- package/lib/cjs/components/checkbox/editForm/Checkbox.edit.display.js +3 -13
- package/lib/cjs/components/checkbox/editForm/Checkbox.edit.validation.js +2 -2
- package/lib/cjs/components/columns/Columns.form.js +1 -1
- package/lib/cjs/components/columns/Columns.js +12 -24
- package/lib/cjs/components/columns/editForm/Columns.edit.display.js +17 -17
- package/lib/cjs/components/container/Container.form.js +2 -2
- package/lib/cjs/components/container/Container.js +4 -6
- package/lib/cjs/components/container/editForm/Container.edit.data.js +3 -3
- package/lib/cjs/components/container/editForm/Container.edit.display.js +4 -4
- package/lib/cjs/components/content/Content.form.js +2 -4
- package/lib/cjs/components/content/Content.js +8 -10
- package/lib/cjs/components/content/editForm/Content.edit.display.js +10 -10
- package/lib/cjs/components/currency/Currency.form.js +3 -3
- package/lib/cjs/components/currency/Currency.js +10 -19
- package/lib/cjs/components/currency/editForm/Currency.edit.data.js +5 -5
- package/lib/cjs/components/currency/editForm/Currency.edit.display.js +8 -8
- package/lib/cjs/components/datagrid/DataGrid.form.js +3 -3
- package/lib/cjs/components/datagrid/DataGrid.js +42 -92
- package/lib/cjs/components/datagrid/editForm/DataGrid.edit.data.js +1 -1
- package/lib/cjs/components/datagrid/editForm/DataGrid.edit.display.js +14 -14
- package/lib/cjs/components/datagrid/editForm/DataGrid.edit.validation.js +3 -3
- package/lib/cjs/components/datamap/DataMap.form.js +2 -2
- package/lib/cjs/components/datamap/DataMap.js +35 -46
- package/lib/cjs/components/datamap/editForm/DataMap.edit.data.js +1 -1
- package/lib/cjs/components/datamap/editForm/DataMap.edit.display.js +8 -8
- package/lib/cjs/components/datetime/DateTime.form.js +5 -5
- package/lib/cjs/components/datetime/DateTime.js +15 -30
- package/lib/cjs/components/datetime/editForm/DateTime.edit.data.js +3 -4
- package/lib/cjs/components/datetime/editForm/DateTime.edit.date.js +10 -10
- package/lib/cjs/components/datetime/editForm/DateTime.edit.display.js +17 -22
- package/lib/cjs/components/datetime/editForm/DateTime.edit.time.js +5 -5
- package/lib/cjs/components/datetime/editForm/DateTime.edit.validation.js +3 -3
- package/lib/cjs/components/day/Day.form.js +5 -5
- package/lib/cjs/components/day/Day.js +58 -147
- package/lib/cjs/components/day/editForm/Day.edit.day.js +9 -13
- package/lib/cjs/components/day/editForm/Day.edit.display.js +7 -7
- package/lib/cjs/components/day/editForm/Day.edit.month.js +8 -12
- package/lib/cjs/components/day/editForm/Day.edit.validation.js +7 -7
- package/lib/cjs/components/day/editForm/Day.edit.year.js +8 -8
- package/lib/cjs/components/editgrid/EditGrid.form.js +2 -2
- package/lib/cjs/components/editgrid/EditGrid.js +96 -142
- package/lib/cjs/components/editgrid/editForm/EditGrid.edit.data.js +2 -2
- package/lib/cjs/components/editgrid/editForm/EditGrid.edit.display.js +2 -7
- package/lib/cjs/components/editgrid/editForm/EditGrid.edit.templates.js +16 -16
- package/lib/cjs/components/editgrid/editForm/EditGrid.edit.validation.js +3 -3
- package/lib/cjs/components/email/Email.js +4 -4
- package/lib/cjs/components/email/editForm/Email.edit.display.js +3 -3
- package/lib/cjs/components/email/editForm/Email.edit.validation.js +6 -6
- package/lib/cjs/components/fieldset/Fieldset.form.js +1 -1
- package/lib/cjs/components/fieldset/Fieldset.js +2 -2
- package/lib/cjs/components/fieldset/editForm/Fieldset.edit.display.js +8 -8
- package/lib/cjs/components/file/File.form.js +4 -4
- package/lib/cjs/components/file/File.js +90 -131
- package/lib/cjs/components/file/editForm/File.edit.display.js +5 -9
- package/lib/cjs/components/file/editForm/File.edit.file.js +53 -97
- package/lib/cjs/components/file/editForm/File.edit.validation.js +2 -2
- package/lib/cjs/components/form/Form.form.js +3 -3
- package/lib/cjs/components/form/Form.js +58 -68
- package/lib/cjs/components/form/editForm/Form.edit.data.js +3 -1
- package/lib/cjs/components/form/editForm/Form.edit.display.js +7 -6
- package/lib/cjs/components/form/editForm/Form.edit.form.js +9 -11
- package/lib/cjs/components/hidden/Hidden.form.js +4 -4
- package/lib/cjs/components/hidden/Hidden.js +2 -2
- package/lib/cjs/components/hidden/editForm/Hidden.edit.data.js +3 -3
- package/lib/cjs/components/hidden/editForm/Hidden.edit.display.js +10 -10
- package/lib/cjs/components/html/HTML.js +17 -23
- package/lib/cjs/components/html/editForm/HTML.edit.display.js +17 -17
- package/lib/cjs/components/html/editForm/HTML.edit.logic.js +2 -2
- package/lib/cjs/components/number/Number.form.js +3 -3
- package/lib/cjs/components/number/Number.js +11 -27
- package/lib/cjs/components/number/editForm/Number.edit.data.js +3 -3
- package/lib/cjs/components/number/editForm/Number.edit.display.js +4 -4
- package/lib/cjs/components/number/editForm/Number.edit.validation.js +9 -9
- package/lib/cjs/components/panel/Panel.form.js +1 -1
- package/lib/cjs/components/panel/Panel.js +2 -2
- package/lib/cjs/components/panel/editForm/Panel.edit.conditional.js +7 -5
- package/lib/cjs/components/panel/editForm/Panel.edit.display.js +29 -55
- package/lib/cjs/components/password/Password.form.js +3 -3
- package/lib/cjs/components/password/Password.js +2 -5
- package/lib/cjs/components/password/editForm/Password.edit.data.js +11 -11
- package/lib/cjs/components/password/editForm/Password.edit.display.js +3 -3
- package/lib/cjs/components/password/editForm/Password.edit.validation.js +3 -3
- package/lib/cjs/components/phonenumber/PhoneNumber.form.js +8 -8
- package/lib/cjs/components/phonenumber/PhoneNumber.js +3 -3
- package/lib/cjs/components/phonenumber/editForm/PhoneNumber.edit.validation.js +6 -6
- package/lib/cjs/components/radio/Radio.form.js +3 -3
- package/lib/cjs/components/radio/Radio.js +32 -58
- package/lib/cjs/components/radio/editForm/Radio.edit.data.js +9 -23
- package/lib/cjs/components/radio/editForm/Radio.edit.display.js +6 -6
- package/lib/cjs/components/radio/editForm/Radio.edit.validation.js +2 -2
- package/lib/cjs/components/recaptcha/ReCaptcha.form.js +5 -5
- package/lib/cjs/components/recaptcha/ReCaptcha.js +10 -10
- package/lib/cjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +24 -24
- package/lib/cjs/components/select/Select.form.js +3 -3
- package/lib/cjs/components/select/Select.js +140 -235
- package/lib/cjs/components/select/editForm/Select.edit.data.d.ts +1 -1
- package/lib/cjs/components/select/editForm/Select.edit.data.js +57 -191
- package/lib/cjs/components/select/editForm/Select.edit.display.js +2 -2
- package/lib/cjs/components/select/editForm/Select.edit.validation.js +4 -4
- package/lib/cjs/components/selectboxes/SelectBoxes.form.js +3 -3
- package/lib/cjs/components/selectboxes/SelectBoxes.js +16 -29
- package/lib/cjs/components/selectboxes/editForm/SelectBoxes.edit.validation.js +5 -5
- package/lib/cjs/components/signature/Signature.form.js +3 -3
- package/lib/cjs/components/signature/Signature.js +17 -26
- package/lib/cjs/components/signature/editForm/Signature.edit.display.js +10 -19
- package/lib/cjs/components/survey/Survey.form.js +3 -3
- package/lib/cjs/components/survey/Survey.js +17 -30
- package/lib/cjs/components/survey/editForm/Survey.edit.data.js +11 -23
- package/lib/cjs/components/survey/editForm/Survey.edit.display.js +1 -1
- package/lib/cjs/components/survey/editForm/Survey.edit.validation.js +1 -1
- package/lib/cjs/components/table/Table.form.js +1 -1
- package/lib/cjs/components/table/Table.js +7 -8
- package/lib/cjs/components/table/editForm/Table.edit.display.js +22 -22
- package/lib/cjs/components/tabs/Tabs.form.js +1 -1
- package/lib/cjs/components/tabs/Tabs.js +10 -27
- package/lib/cjs/components/tabs/editForm/Tabs.edit.display.js +17 -21
- package/lib/cjs/components/tags/Tags.form.js +1 -1
- package/lib/cjs/components/tags/Tags.js +12 -28
- package/lib/cjs/components/tags/editForm/Tags.edit.data.js +7 -7
- package/lib/cjs/components/textarea/TextArea.form.js +2 -2
- package/lib/cjs/components/textarea/TextArea.js +45 -63
- package/lib/cjs/components/textarea/editForm/TextArea.edit.display.js +72 -96
- package/lib/cjs/components/textarea/editForm/TextArea.edit.validation.js +3 -3
- package/lib/cjs/components/textfield/TextField.form.js +3 -3
- package/lib/cjs/components/textfield/TextField.js +21 -32
- package/lib/cjs/components/textfield/editForm/TextField.edit.data.js +13 -15
- package/lib/cjs/components/textfield/editForm/TextField.edit.display.js +21 -31
- package/lib/cjs/components/textfield/editForm/TextField.edit.validation.js +6 -6
- package/lib/cjs/components/time/Time.js +10 -17
- package/lib/cjs/components/time/editForm/Time.edit.display.js +2 -2
- package/lib/cjs/components/unknown/Unknown.form.js +5 -5
- package/lib/cjs/components/unknown/Unknown.js +2 -2
- package/lib/cjs/components/unknown/editForm/Unknown.edit.display.js +3 -3
- package/lib/cjs/components/url/Url.form.js +3 -3
- package/lib/cjs/components/url/Url.js +2 -2
- package/lib/cjs/components/url/editForm/Url.edit.display.js +3 -3
- package/lib/cjs/components/url/editForm/Url.edit.validation.js +1 -1
- package/lib/cjs/components/well/Well.form.js +1 -1
- package/lib/cjs/components/well/Well.js +2 -2
- package/lib/cjs/components/well/editForm/Well.edit.display.js +10 -10
- package/lib/cjs/formio.form.d.ts +1 -2
- package/lib/cjs/formio.form.js +12 -38
- package/lib/cjs/i18n.d.ts +0 -4
- package/lib/cjs/i18n.js +3 -7
- package/lib/cjs/package.json +1 -1
- package/lib/cjs/pdf.image.d.ts +2 -0
- package/lib/cjs/pdf.image.js +94 -0
- package/lib/cjs/providers/address/AddressProvider.js +5 -8
- package/lib/cjs/providers/address/GoogleAddressProvider.d.ts +3 -3
- package/lib/cjs/providers/address/GoogleAddressProvider.js +13 -24
- package/lib/cjs/providers/processor/fileProcessor.js +1 -3
- package/lib/cjs/providers/storage/azure.js +2 -5
- package/lib/cjs/providers/storage/dropbox.js +5 -4
- package/lib/cjs/providers/storage/googleDrive.js +4 -3
- package/lib/cjs/providers/storage/index.js +1 -1
- package/lib/cjs/providers/storage/indexeddb.js +6 -16
- package/lib/cjs/providers/storage/s3.js +6 -17
- package/lib/cjs/providers/storage/uploadAdapter.js +11 -17
- package/lib/cjs/providers/storage/url.js +11 -13
- package/lib/cjs/providers/storage/xhr.js +9 -17
- package/lib/cjs/templates/index.js +1 -1
- package/lib/cjs/translations/en.d.ts +2 -0
- package/lib/cjs/translations/en.js +9 -7
- package/lib/cjs/utils/ChoicesWrapper.js +2 -2
- package/lib/cjs/utils/builder.js +7 -31
- package/lib/cjs/utils/calendarUtils.js +5 -7
- package/lib/cjs/utils/conditionOperators/ConditionOperator.js +1 -1
- package/lib/cjs/utils/conditionOperators/DateGreaterThan.js +4 -12
- package/lib/cjs/utils/conditionOperators/IsEmptyValue.js +1 -3
- package/lib/cjs/utils/conditionOperators/IsEqualTo.js +6 -10
- package/lib/cjs/utils/conditionOperators/index.js +1 -1
- package/lib/cjs/utils/formUtils.js +1 -1
- package/lib/cjs/utils/i18n.js +1 -7
- package/lib/cjs/utils/index.d.ts +1 -2
- package/lib/cjs/utils/index.js +2 -2
- package/lib/cjs/utils/jsonlogic/operators.d.ts +1 -0
- package/lib/cjs/utils/jsonlogic/operators.js +265 -0
- package/lib/cjs/utils/utils.d.ts +1 -10
- package/lib/cjs/utils/utils.js +92 -175
- package/lib/cjs/widgets/CalendarWidget.js +49 -66
- package/lib/cjs/widgets/InputWidget.js +4 -6
- package/lib/cjs/widgets/index.js +1 -1
- package/lib/mjs/CDN.js +12 -12
- package/lib/mjs/Element.d.ts +2 -3
- package/lib/mjs/Element.js +23 -29
- package/lib/mjs/Embed.js +43 -77
- package/lib/mjs/EventEmitter.js +1 -1
- package/lib/mjs/Form.d.ts +341 -371
- package/lib/mjs/Form.js +126 -142
- package/lib/mjs/FormBuilder.d.ts +3 -3
- package/lib/mjs/FormBuilder.js +3 -2
- package/lib/mjs/Formio.js +23 -26
- package/lib/mjs/InlineEmbed.js +17 -23
- package/lib/mjs/PDF.d.ts +0 -1
- package/lib/mjs/PDF.js +15 -18
- package/lib/mjs/PDFBuilder.js +36 -51
- package/lib/mjs/Webform.d.ts +366 -8
- package/lib/mjs/Webform.js +251 -184
- package/lib/mjs/WebformBuilder.js +151 -224
- package/lib/mjs/Wizard.js +64 -94
- package/lib/mjs/WizardBuilder.js +19 -27
- package/lib/mjs/addons/FormioAddon.js +1 -1
- package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.form.js +57 -59
- package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.js +16 -24
- package/lib/mjs/addons/index.js +3 -3
- package/lib/mjs/components/Components.js +4 -0
- package/lib/mjs/components/_classes/component/Component.form.js +11 -11
- package/lib/mjs/components/_classes/component/Component.js +194 -313
- package/lib/mjs/components/_classes/component/editForm/Component.edit.addons.js +4 -2
- package/lib/mjs/components/_classes/component/editForm/Component.edit.api.js +5 -5
- package/lib/mjs/components/_classes/component/editForm/Component.edit.conditional.js +11 -9
- package/lib/mjs/components/_classes/component/editForm/Component.edit.data.d.ts +0 -37
- package/lib/mjs/components/_classes/component/editForm/Component.edit.data.js +25 -39
- package/lib/mjs/components/_classes/component/editForm/Component.edit.display.js +29 -47
- package/lib/mjs/components/_classes/component/editForm/Component.edit.layout.js +9 -9
- package/lib/mjs/components/_classes/component/editForm/Component.edit.logic.js +7 -5
- package/lib/mjs/components/_classes/component/editForm/Component.edit.validation.js +34 -37
- package/lib/mjs/components/_classes/component/editForm/utils.js +16 -12
- package/lib/mjs/components/_classes/componentModal/ComponentModal.js +2 -2
- package/lib/mjs/components/_classes/field/Field.js +2 -8
- package/lib/mjs/components/_classes/input/Input.js +23 -27
- package/lib/mjs/components/_classes/list/ListComponent.form.js +1 -1
- package/lib/mjs/components/_classes/list/ListComponent.js +18 -27
- package/lib/mjs/components/_classes/list/editForm/ListComponent.edit.data.js +9 -36
- package/lib/mjs/components/_classes/multivalue/Multivalue.js +13 -32
- package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +1 -1
- package/lib/mjs/components/_classes/nested/NestedComponent.form.js +3 -3
- package/lib/mjs/components/_classes/nested/NestedComponent.js +33 -41
- package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +15 -20
- package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +17 -19
- package/lib/mjs/components/address/Address.d.ts +0 -1
- package/lib/mjs/components/address/Address.js +49 -60
- package/lib/mjs/components/address/editForm/Address.edit.data.js +2 -2
- package/lib/mjs/components/address/editForm/Address.edit.display.js +2 -2
- package/lib/mjs/components/address/editForm/Address.edit.provider.js +11 -53
- package/lib/mjs/components/alert/Alert.js +16 -22
- package/lib/mjs/components/button/Button.form.js +1 -1
- package/lib/mjs/components/button/Button.js +42 -65
- package/lib/mjs/components/button/editForm/Button.edit.display.js +9 -49
- package/lib/mjs/components/checkbox/Checkbox.d.ts +1 -1
- package/lib/mjs/components/checkbox/Checkbox.form.js +3 -3
- package/lib/mjs/components/checkbox/Checkbox.js +21 -29
- package/lib/mjs/components/checkbox/editForm/Checkbox.edit.data.js +1 -1
- package/lib/mjs/components/checkbox/editForm/Checkbox.edit.display.js +3 -13
- package/lib/mjs/components/checkbox/editForm/Checkbox.edit.validation.js +2 -2
- package/lib/mjs/components/columns/Columns.form.js +1 -1
- package/lib/mjs/components/columns/Columns.js +12 -24
- package/lib/mjs/components/columns/editForm/Columns.edit.display.js +17 -17
- package/lib/mjs/components/container/Container.form.js +2 -2
- package/lib/mjs/components/container/Container.js +4 -6
- package/lib/mjs/components/container/editForm/Container.edit.data.js +3 -3
- package/lib/mjs/components/container/editForm/Container.edit.display.js +4 -4
- package/lib/mjs/components/content/Content.form.js +2 -4
- package/lib/mjs/components/content/Content.js +8 -10
- package/lib/mjs/components/content/editForm/Content.edit.display.js +10 -10
- package/lib/mjs/components/currency/Currency.form.js +3 -3
- package/lib/mjs/components/currency/Currency.js +10 -19
- package/lib/mjs/components/currency/editForm/Currency.edit.data.js +5 -5
- package/lib/mjs/components/currency/editForm/Currency.edit.display.js +8 -8
- package/lib/mjs/components/datagrid/DataGrid.form.js +3 -3
- package/lib/mjs/components/datagrid/DataGrid.js +41 -92
- package/lib/mjs/components/datagrid/editForm/DataGrid.edit.data.js +1 -1
- package/lib/mjs/components/datagrid/editForm/DataGrid.edit.display.js +14 -14
- package/lib/mjs/components/datagrid/editForm/DataGrid.edit.validation.js +3 -3
- package/lib/mjs/components/datamap/DataMap.form.js +2 -2
- package/lib/mjs/components/datamap/DataMap.js +33 -46
- package/lib/mjs/components/datamap/editForm/DataMap.edit.data.js +1 -1
- package/lib/mjs/components/datamap/editForm/DataMap.edit.display.js +8 -8
- package/lib/mjs/components/datetime/DateTime.form.js +5 -5
- package/lib/mjs/components/datetime/DateTime.js +16 -31
- package/lib/mjs/components/datetime/editForm/DateTime.edit.data.js +3 -4
- package/lib/mjs/components/datetime/editForm/DateTime.edit.date.js +10 -10
- package/lib/mjs/components/datetime/editForm/DateTime.edit.display.js +17 -22
- package/lib/mjs/components/datetime/editForm/DateTime.edit.time.js +5 -5
- package/lib/mjs/components/datetime/editForm/DateTime.edit.validation.js +3 -3
- package/lib/mjs/components/day/Day.form.js +5 -5
- package/lib/mjs/components/day/Day.js +58 -148
- package/lib/mjs/components/day/editForm/Day.edit.day.js +9 -13
- package/lib/mjs/components/day/editForm/Day.edit.display.js +7 -7
- package/lib/mjs/components/day/editForm/Day.edit.month.js +8 -12
- package/lib/mjs/components/day/editForm/Day.edit.validation.js +7 -7
- package/lib/mjs/components/day/editForm/Day.edit.year.js +8 -8
- package/lib/mjs/components/editgrid/EditGrid.form.js +2 -2
- package/lib/mjs/components/editgrid/EditGrid.js +92 -140
- package/lib/mjs/components/editgrid/editForm/EditGrid.edit.data.js +2 -2
- package/lib/mjs/components/editgrid/editForm/EditGrid.edit.display.js +2 -7
- package/lib/mjs/components/editgrid/editForm/EditGrid.edit.templates.js +16 -16
- package/lib/mjs/components/editgrid/editForm/EditGrid.edit.validation.js +3 -3
- package/lib/mjs/components/email/Email.js +4 -4
- package/lib/mjs/components/email/editForm/Email.edit.display.js +3 -3
- package/lib/mjs/components/email/editForm/Email.edit.validation.js +6 -6
- package/lib/mjs/components/fieldset/Fieldset.form.js +1 -1
- package/lib/mjs/components/fieldset/Fieldset.js +2 -2
- package/lib/mjs/components/fieldset/editForm/Fieldset.edit.display.js +8 -8
- package/lib/mjs/components/file/File.form.js +4 -4
- package/lib/mjs/components/file/File.js +89 -136
- package/lib/mjs/components/file/editForm/File.edit.display.js +5 -9
- package/lib/mjs/components/file/editForm/File.edit.file.js +53 -97
- package/lib/mjs/components/file/editForm/File.edit.validation.js +2 -2
- package/lib/mjs/components/form/Form.form.js +3 -3
- package/lib/mjs/components/form/Form.js +55 -68
- package/lib/mjs/components/form/editForm/Form.edit.data.js +3 -1
- package/lib/mjs/components/form/editForm/Form.edit.display.js +7 -6
- package/lib/mjs/components/form/editForm/Form.edit.form.js +8 -10
- package/lib/mjs/components/hidden/Hidden.form.js +4 -4
- package/lib/mjs/components/hidden/Hidden.js +2 -2
- package/lib/mjs/components/hidden/editForm/Hidden.edit.data.js +3 -3
- package/lib/mjs/components/hidden/editForm/Hidden.edit.display.js +10 -10
- package/lib/mjs/components/html/HTML.js +17 -23
- package/lib/mjs/components/html/editForm/HTML.edit.display.js +17 -17
- package/lib/mjs/components/html/editForm/HTML.edit.logic.js +2 -2
- package/lib/mjs/components/number/Number.form.js +3 -3
- package/lib/mjs/components/number/Number.js +12 -28
- package/lib/mjs/components/number/editForm/Number.edit.data.js +3 -3
- package/lib/mjs/components/number/editForm/Number.edit.display.js +4 -4
- package/lib/mjs/components/number/editForm/Number.edit.validation.js +9 -9
- package/lib/mjs/components/panel/Panel.form.js +1 -1
- package/lib/mjs/components/panel/Panel.js +2 -2
- package/lib/mjs/components/panel/editForm/Panel.edit.conditional.js +8 -6
- package/lib/mjs/components/panel/editForm/Panel.edit.display.js +29 -55
- package/lib/mjs/components/password/Password.form.js +3 -3
- package/lib/mjs/components/password/Password.js +2 -5
- package/lib/mjs/components/password/editForm/Password.edit.data.js +11 -11
- package/lib/mjs/components/password/editForm/Password.edit.display.js +3 -3
- package/lib/mjs/components/password/editForm/Password.edit.validation.js +3 -3
- package/lib/mjs/components/phonenumber/PhoneNumber.form.js +8 -8
- package/lib/mjs/components/phonenumber/PhoneNumber.js +3 -3
- package/lib/mjs/components/phonenumber/editForm/PhoneNumber.edit.validation.js +6 -6
- package/lib/mjs/components/radio/Radio.form.js +3 -3
- package/lib/mjs/components/radio/Radio.js +30 -59
- package/lib/mjs/components/radio/editForm/Radio.edit.data.js +9 -23
- package/lib/mjs/components/radio/editForm/Radio.edit.display.js +6 -6
- package/lib/mjs/components/radio/editForm/Radio.edit.validation.js +2 -2
- package/lib/mjs/components/recaptcha/ReCaptcha.form.js +5 -5
- package/lib/mjs/components/recaptcha/ReCaptcha.js +8 -10
- package/lib/mjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +24 -24
- package/lib/mjs/components/select/Select.form.js +3 -3
- package/lib/mjs/components/select/Select.js +145 -240
- package/lib/mjs/components/select/editForm/Select.edit.data.d.ts +1 -1
- package/lib/mjs/components/select/editForm/Select.edit.data.js +57 -191
- package/lib/mjs/components/select/editForm/Select.edit.display.js +2 -2
- package/lib/mjs/components/select/editForm/Select.edit.validation.js +4 -4
- package/lib/mjs/components/selectboxes/SelectBoxes.form.js +3 -3
- package/lib/mjs/components/selectboxes/SelectBoxes.js +16 -30
- package/lib/mjs/components/selectboxes/editForm/SelectBoxes.edit.validation.js +5 -5
- package/lib/mjs/components/signature/Signature.form.js +3 -3
- package/lib/mjs/components/signature/Signature.js +16 -26
- package/lib/mjs/components/signature/editForm/Signature.edit.display.js +10 -19
- package/lib/mjs/components/survey/Survey.form.js +3 -3
- package/lib/mjs/components/survey/Survey.js +17 -30
- package/lib/mjs/components/survey/editForm/Survey.edit.data.js +11 -23
- package/lib/mjs/components/survey/editForm/Survey.edit.display.js +1 -1
- package/lib/mjs/components/survey/editForm/Survey.edit.validation.js +1 -1
- package/lib/mjs/components/table/Table.form.js +1 -1
- package/lib/mjs/components/table/Table.js +6 -8
- package/lib/mjs/components/table/editForm/Table.edit.display.js +22 -22
- package/lib/mjs/components/tabs/Tabs.form.js +1 -1
- package/lib/mjs/components/tabs/Tabs.js +9 -27
- package/lib/mjs/components/tabs/editForm/Tabs.edit.display.js +17 -21
- package/lib/mjs/components/tags/Tags.form.js +1 -1
- package/lib/mjs/components/tags/Tags.js +12 -28
- package/lib/mjs/components/tags/editForm/Tags.edit.data.js +7 -7
- package/lib/mjs/components/textarea/TextArea.form.js +2 -2
- package/lib/mjs/components/textarea/TextArea.js +51 -75
- package/lib/mjs/components/textarea/editForm/TextArea.edit.display.js +72 -96
- package/lib/mjs/components/textarea/editForm/TextArea.edit.validation.js +3 -3
- package/lib/mjs/components/textfield/TextField.form.js +3 -3
- package/lib/mjs/components/textfield/TextField.js +23 -34
- package/lib/mjs/components/textfield/editForm/TextField.edit.data.js +13 -15
- package/lib/mjs/components/textfield/editForm/TextField.edit.display.js +21 -31
- package/lib/mjs/components/textfield/editForm/TextField.edit.validation.js +6 -6
- package/lib/mjs/components/time/Time.js +10 -17
- package/lib/mjs/components/time/editForm/Time.edit.display.js +2 -2
- package/lib/mjs/components/unknown/Unknown.form.js +5 -5
- package/lib/mjs/components/unknown/Unknown.js +2 -2
- package/lib/mjs/components/unknown/editForm/Unknown.edit.display.js +3 -3
- package/lib/mjs/components/url/Url.form.js +3 -3
- package/lib/mjs/components/url/Url.js +2 -2
- package/lib/mjs/components/url/editForm/Url.edit.display.js +3 -3
- package/lib/mjs/components/url/editForm/Url.edit.validation.js +1 -1
- package/lib/mjs/components/well/Well.form.js +1 -1
- package/lib/mjs/components/well/Well.js +2 -2
- package/lib/mjs/components/well/editForm/Well.edit.display.js +10 -10
- package/lib/mjs/formio.form.d.ts +1 -2
- package/lib/mjs/formio.form.js +8 -10
- package/lib/mjs/i18n.d.ts +0 -4
- package/lib/mjs/i18n.js +3 -7
- package/lib/mjs/package.json +1 -1
- package/lib/mjs/pdf.image.d.ts +2 -0
- package/lib/mjs/pdf.image.js +94 -0
- package/lib/mjs/providers/address/AddressProvider.js +5 -8
- package/lib/mjs/providers/address/GoogleAddressProvider.d.ts +3 -3
- package/lib/mjs/providers/address/GoogleAddressProvider.js +13 -24
- package/lib/mjs/providers/processor/fileProcessor.js +1 -3
- package/lib/mjs/providers/storage/azure.js +2 -5
- package/lib/mjs/providers/storage/dropbox.js +5 -4
- package/lib/mjs/providers/storage/googleDrive.js +4 -3
- package/lib/mjs/providers/storage/index.js +1 -1
- package/lib/mjs/providers/storage/indexeddb.js +6 -16
- package/lib/mjs/providers/storage/s3.js +8 -19
- package/lib/mjs/providers/storage/uploadAdapter.js +11 -17
- package/lib/mjs/providers/storage/url.js +11 -13
- package/lib/mjs/providers/storage/xhr.js +9 -17
- package/lib/mjs/templates/index.js +1 -1
- package/lib/mjs/translations/en.d.ts +2 -0
- package/lib/mjs/translations/en.js +9 -7
- package/lib/mjs/utils/ChoicesWrapper.js +2 -2
- package/lib/mjs/utils/builder.js +7 -31
- package/lib/mjs/utils/calendarUtils.js +5 -7
- package/lib/mjs/utils/conditionOperators/ConditionOperator.js +1 -1
- package/lib/mjs/utils/conditionOperators/DateGreaterThan.js +5 -16
- package/lib/mjs/utils/conditionOperators/IsEmptyValue.js +1 -3
- package/lib/mjs/utils/conditionOperators/IsEqualTo.js +6 -10
- package/lib/mjs/utils/conditionOperators/index.js +1 -1
- package/lib/mjs/utils/formUtils.js +2 -2
- package/lib/mjs/utils/i18n.js +1 -7
- package/lib/mjs/utils/index.d.ts +1 -2
- package/lib/mjs/utils/index.js +3 -3
- package/lib/mjs/utils/jsonlogic/operators.d.ts +1 -0
- package/lib/mjs/utils/jsonlogic/operators.js +262 -0
- package/lib/mjs/utils/utils.d.ts +1 -10
- package/lib/mjs/utils/utils.js +91 -178
- package/lib/mjs/widgets/CalendarWidget.js +50 -67
- package/lib/mjs/widgets/InputWidget.js +4 -6
- package/lib/mjs/widgets/index.js +1 -1
- package/package.json +3 -3
- package/lib/cjs/translations/de.d.ts +0 -80
- package/lib/cjs/translations/de.js +0 -81
- package/lib/mjs/translations/de.d.ts +0 -80
- package/lib/mjs/translations/de.js +0 -79
package/lib/cjs/Wizard.js
CHANGED
|
@@ -35,9 +35,7 @@ class Wizard extends Webform_1.default {
|
|
|
35
35
|
this.page = 0;
|
|
36
36
|
this.currentPanel = null;
|
|
37
37
|
this.currentNextPage = 0;
|
|
38
|
-
this._seenPages = [
|
|
39
|
-
0,
|
|
40
|
-
];
|
|
38
|
+
this._seenPages = [0];
|
|
41
39
|
this.subWizards = [];
|
|
42
40
|
this.allPages = [];
|
|
43
41
|
this.lastPromise = Promise.resolve();
|
|
@@ -55,7 +53,8 @@ class Wizard extends Webform_1.default {
|
|
|
55
53
|
getPages(args = {}) {
|
|
56
54
|
const { all = false } = args;
|
|
57
55
|
const pages = this.hasSubWizards ? this.components : this.pages;
|
|
58
|
-
const filteredPages = pages
|
|
56
|
+
const filteredPages = pages
|
|
57
|
+
.filter(all ? lodash_1.default.identity : (p, index) => this._seenPages.includes(index));
|
|
59
58
|
return filteredPages;
|
|
60
59
|
}
|
|
61
60
|
get hasSubWizards() {
|
|
@@ -80,7 +79,9 @@ class Wizard extends Webform_1.default {
|
|
|
80
79
|
});
|
|
81
80
|
}
|
|
82
81
|
getComponents() {
|
|
83
|
-
return this.submitting
|
|
82
|
+
return this.submitting
|
|
83
|
+
? this.getPages({ all: this.isLastPage() })
|
|
84
|
+
: super.getComponents();
|
|
84
85
|
}
|
|
85
86
|
resetValue() {
|
|
86
87
|
this.getPages({ all: true }).forEach((page) => page.resetValue());
|
|
@@ -93,10 +94,10 @@ class Wizard extends Webform_1.default {
|
|
|
93
94
|
showPrevious: true,
|
|
94
95
|
showNext: true,
|
|
95
96
|
showSubmit: true,
|
|
96
|
-
showCancel: !this.options.readOnly
|
|
97
|
+
showCancel: !this.options.readOnly
|
|
97
98
|
});
|
|
98
99
|
this.options.breadcrumbSettings = lodash_1.default.defaults(this.options.breadcrumbSettings, {
|
|
99
|
-
clickable: true
|
|
100
|
+
clickable: true
|
|
100
101
|
});
|
|
101
102
|
this.options.allowPrevious = this.options.allowPrevious || false;
|
|
102
103
|
this.page = 0;
|
|
@@ -106,7 +107,7 @@ class Wizard extends Webform_1.default {
|
|
|
106
107
|
this.component = this.pages[this.page].component;
|
|
107
108
|
}
|
|
108
109
|
this.on('subWizardsUpdated', (subForm) => {
|
|
109
|
-
const subWizard = this.subWizards.find(
|
|
110
|
+
const subWizard = this.subWizards.find(subWizard => { var _a; return (subForm === null || subForm === void 0 ? void 0 : subForm.id) && ((_a = subWizard.subForm) === null || _a === void 0 ? void 0 : _a.id) === (subForm === null || subForm === void 0 ? void 0 : subForm.id); });
|
|
110
111
|
if (this.subWizards.length && subWizard) {
|
|
111
112
|
subWizard.subForm.setValue(subForm._submission, {}, true);
|
|
112
113
|
this.establishPages();
|
|
@@ -130,7 +131,7 @@ class Wizard extends Webform_1.default {
|
|
|
130
131
|
{ name: 'cancel', method: 'cancel' },
|
|
131
132
|
{ name: 'previous', method: 'prevPage' },
|
|
132
133
|
{ name: 'next', method: 'nextPage' },
|
|
133
|
-
{ name: 'submit', method: 'submit' }
|
|
134
|
+
{ name: 'submit', method: 'submit' }
|
|
134
135
|
].forEach((button) => {
|
|
135
136
|
if (this.hasButton(button.name)) {
|
|
136
137
|
buttons[button.name] = button;
|
|
@@ -144,9 +145,9 @@ class Wizard extends Webform_1.default {
|
|
|
144
145
|
'cancel',
|
|
145
146
|
'previous',
|
|
146
147
|
'next',
|
|
147
|
-
'submit'
|
|
148
|
+
'submit'
|
|
148
149
|
];
|
|
149
|
-
return (
|
|
150
|
+
return (_c = (_b = (_a = this.options.properties) === null || _a === void 0 ? void 0 : _a.wizardButtonOrder) === null || _b === void 0 ? void 0 : _b.toLowerCase().split(', ')) !== null && _c !== void 0 ? _c : defaultButtonOrder;
|
|
150
151
|
}
|
|
151
152
|
get renderContext() {
|
|
152
153
|
var _a, _b;
|
|
@@ -155,9 +156,7 @@ class Wizard extends Webform_1.default {
|
|
|
155
156
|
wizardKey: this.wizardKey,
|
|
156
157
|
isBreadcrumbClickable: this.isBreadcrumbClickable(),
|
|
157
158
|
isSubForm: !!this.parent && !((_b = (_a = this.root) === null || _a === void 0 ? void 0 : _a.component) === null || _b === void 0 ? void 0 : _b.type) === 'wizard',
|
|
158
|
-
panels: this.allPages.length
|
|
159
|
-
? this.allPages.map((page) => page.component)
|
|
160
|
-
: this.pages.map((page) => page.component),
|
|
159
|
+
panels: this.allPages.length ? this.allPages.map(page => page.component) : this.pages.map(page => page.component),
|
|
161
160
|
buttons: this.buttons,
|
|
162
161
|
currentPage: this.page,
|
|
163
162
|
buttonOrder: this.buttonOrder,
|
|
@@ -167,10 +166,8 @@ class Wizard extends Webform_1.default {
|
|
|
167
166
|
const currentPanel = this.currentPanel;
|
|
168
167
|
if (currentPanel && currentPanel.buttonSettings) {
|
|
169
168
|
Object.keys(currentPanel.buttonSettings).forEach(() => {
|
|
170
|
-
Object.keys(ctx.buttons).forEach(
|
|
171
|
-
if (
|
|
172
|
-
!currentPanel.buttonSettings[key]) ||
|
|
173
|
-
ctx.isSubForm) {
|
|
169
|
+
Object.keys(ctx.buttons).forEach(key => {
|
|
170
|
+
if (typeof currentPanel.buttonSettings[key] !== 'undefined' && !currentPanel.buttonSettings[key] || ctx.isSubForm) {
|
|
174
171
|
ctx.buttons[key] = null;
|
|
175
172
|
}
|
|
176
173
|
});
|
|
@@ -190,7 +187,7 @@ class Wizard extends Webform_1.default {
|
|
|
190
187
|
render() {
|
|
191
188
|
const ctx = this.renderContext;
|
|
192
189
|
if (this.component.id) {
|
|
193
|
-
ctx.panels.forEach(
|
|
190
|
+
ctx.panels.forEach(panel => {
|
|
194
191
|
if (panel.id === this.component.id) {
|
|
195
192
|
this.currentPanel = panel;
|
|
196
193
|
ctx.wizardPageTooltip = this.getFormattedTooltip(panel.tooltip);
|
|
@@ -207,7 +204,7 @@ class Wizard extends Webform_1.default {
|
|
|
207
204
|
wizardNav, components: this.renderComponents([
|
|
208
205
|
...this.prefixComps,
|
|
209
206
|
...this.currentPage.components,
|
|
210
|
-
...this.suffixComps
|
|
207
|
+
...this.suffixComps
|
|
211
208
|
]) }), this.builderMode ? 'builder' : 'form');
|
|
212
209
|
}
|
|
213
210
|
redrawNavigation() {
|
|
@@ -236,7 +233,7 @@ class Wizard extends Webform_1.default {
|
|
|
236
233
|
headerElement = this.element.querySelector(`#${this.wizardKey}-header`);
|
|
237
234
|
this.loadRefs(headerElement, {
|
|
238
235
|
[`${this.wizardKey}-link`]: 'multiple',
|
|
239
|
-
[`${this.wizardKey}-tooltip`]: 'multiple'
|
|
236
|
+
[`${this.wizardKey}-tooltip`]: 'multiple'
|
|
240
237
|
});
|
|
241
238
|
this.attachHeader();
|
|
242
239
|
}
|
|
@@ -260,7 +257,7 @@ class Wizard extends Webform_1.default {
|
|
|
260
257
|
[`${this.wizardKey}-next`]: 'single',
|
|
261
258
|
[`${this.wizardKey}-submit`]: 'single',
|
|
262
259
|
[`${this.wizardKey}-link`]: 'multiple',
|
|
263
|
-
[`${this.wizardKey}-tooltip`]: 'multiple'
|
|
260
|
+
[`${this.wizardKey}-tooltip`]: 'multiple'
|
|
264
261
|
});
|
|
265
262
|
if ((this.options.readOnly || this.editMode) && !this.enabledIndex) {
|
|
266
263
|
this.enabledIndex = ((_a = this.pages) === null || _a === void 0 ? void 0 : _a.length) - 1;
|
|
@@ -295,7 +292,7 @@ class Wizard extends Webform_1.default {
|
|
|
295
292
|
}
|
|
296
293
|
isBreadcrumbClickable() {
|
|
297
294
|
let currentPage = null;
|
|
298
|
-
this.pages.map(
|
|
295
|
+
this.pages.map(page => {
|
|
299
296
|
if (lodash_1.default.isEqual(this.currentPage.component, page.component)) {
|
|
300
297
|
currentPage = page;
|
|
301
298
|
}
|
|
@@ -310,7 +307,7 @@ class Wizard extends Webform_1.default {
|
|
|
310
307
|
}
|
|
311
308
|
isAllowPrevious() {
|
|
312
309
|
let currentPage = null;
|
|
313
|
-
this.pages.map(
|
|
310
|
+
this.pages.map(page => {
|
|
314
311
|
if (lodash_1.default.isEqual(this.currentPage.component, page.component)) {
|
|
315
312
|
currentPage = page;
|
|
316
313
|
}
|
|
@@ -358,12 +355,10 @@ class Wizard extends Webform_1.default {
|
|
|
358
355
|
buttonElement.setAttribute('disabled', 'disabled');
|
|
359
356
|
this.setLoading(buttonElement, true);
|
|
360
357
|
// Call the button method, then re-enable the button.
|
|
361
|
-
this[button.method]()
|
|
362
|
-
.then(() => {
|
|
358
|
+
this[button.method]().then(() => {
|
|
363
359
|
buttonElement.removeAttribute('disabled');
|
|
364
360
|
this.setLoading(buttonElement, false);
|
|
365
|
-
})
|
|
366
|
-
.catch(() => {
|
|
361
|
+
}).catch(() => {
|
|
367
362
|
buttonElement.removeAttribute('disabled');
|
|
368
363
|
this.setLoading(buttonElement, false);
|
|
369
364
|
});
|
|
@@ -422,24 +417,15 @@ class Wizard extends Webform_1.default {
|
|
|
422
417
|
// Get all components including all nested components and line up in the correct order
|
|
423
418
|
const getAllComponents = (nestedComp, compsArr, pushAllowed = true) => {
|
|
424
419
|
const nestedPages = [];
|
|
425
|
-
const dataArrayComponents = [
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
const currentComponents = (nestedComp === null || nestedComp === void 0 ? void 0 : nestedComp.subForm)
|
|
431
|
-
? this.getSortedComponents(nestedComp.subForm)
|
|
432
|
-
: (nestedComp === null || nestedComp === void 0 ? void 0 : nestedComp.components) || [];
|
|
433
|
-
const visibleComponents = currentComponents.filter((comp) => comp._visible);
|
|
434
|
-
const filteredComponents = visibleComponents.filter((comp) => !dataArrayComponents.includes(comp.component.type) &&
|
|
435
|
-
(comp.type !== 'form' || comp.isNestedWizard));
|
|
436
|
-
const additionalComponents = currentComponents.filter((comp) => { var _a; return ((_a = comp.subForm) === null || _a === void 0 ? void 0 : _a._form.display) !== 'wizard'; });
|
|
420
|
+
const dataArrayComponents = ['datagrid', 'editgrid', 'dynamicWizard'];
|
|
421
|
+
const currentComponents = (nestedComp === null || nestedComp === void 0 ? void 0 : nestedComp.subForm) ? this.getSortedComponents(nestedComp.subForm) : (nestedComp === null || nestedComp === void 0 ? void 0 : nestedComp.components) || [];
|
|
422
|
+
const visibleComponents = currentComponents.filter(comp => comp._visible);
|
|
423
|
+
const filteredComponents = visibleComponents.filter(comp => !dataArrayComponents.includes(comp.component.type) && (comp.type !== 'form' || comp.isNestedWizard));
|
|
424
|
+
const additionalComponents = currentComponents.filter(comp => { var _a; return ((_a = comp.subForm) === null || _a === void 0 ? void 0 : _a._form.display) !== 'wizard'; });
|
|
437
425
|
let hasNested = false;
|
|
438
426
|
(0, utils_1.eachComponent)(filteredComponents, (comp) => {
|
|
439
427
|
if (comp && comp.component) {
|
|
440
|
-
if (comp.component.type === 'panel' &&
|
|
441
|
-
(comp === null || comp === void 0 ? void 0 : comp.parent.wizard) &&
|
|
442
|
-
!getAllComponents(comp, compsArr, false)) {
|
|
428
|
+
if (comp.component.type === 'panel' && (comp === null || comp === void 0 ? void 0 : comp.parent.wizard) && !getAllComponents(comp, compsArr, false)) {
|
|
443
429
|
if (pushAllowed) {
|
|
444
430
|
this.setRootPanelId(comp);
|
|
445
431
|
nestedPages.push(comp);
|
|
@@ -488,11 +474,10 @@ class Wizard extends Webform_1.default {
|
|
|
488
474
|
this.allPages = allComponents;
|
|
489
475
|
}
|
|
490
476
|
getSortedComponents({ components, originalComponents }) {
|
|
491
|
-
// sorts components if they were shuffled after the conditional logic
|
|
492
477
|
const currentComponents = [];
|
|
493
478
|
const currentPages = [];
|
|
494
479
|
if (components && components.length) {
|
|
495
|
-
components.map(
|
|
480
|
+
components.map(page => {
|
|
496
481
|
if (page.component.type === 'panel') {
|
|
497
482
|
currentPages[page.component.key || page.component.title] = page;
|
|
498
483
|
}
|
|
@@ -526,9 +511,9 @@ class Wizard extends Webform_1.default {
|
|
|
526
511
|
this.suffixComps = [];
|
|
527
512
|
const visible = [];
|
|
528
513
|
const currentPages = {};
|
|
529
|
-
const pageOptions = Object.assign(Object.assign({}, lodash_1.default.clone(this.options)), (this.parent ? { root: this } : {}));
|
|
514
|
+
const pageOptions = Object.assign(Object.assign({}, (lodash_1.default.clone(this.options))), (this.parent ? { root: this } : {}));
|
|
530
515
|
if (this.components && this.components.length) {
|
|
531
|
-
this.components.forEach(
|
|
516
|
+
this.components.forEach(page => {
|
|
532
517
|
if (page.component.type === 'panel') {
|
|
533
518
|
currentPages[page.component.key || page.component.title] = page;
|
|
534
519
|
}
|
|
@@ -563,7 +548,7 @@ class Wizard extends Webform_1.default {
|
|
|
563
548
|
page.visible = isVisible;
|
|
564
549
|
this.pages.push(page);
|
|
565
550
|
page.eachComponent((component) => {
|
|
566
|
-
component.page = this.pages.length - 1;
|
|
551
|
+
component.page = (this.pages.length - 1);
|
|
567
552
|
});
|
|
568
553
|
}
|
|
569
554
|
}
|
|
@@ -605,7 +590,7 @@ class Wizard extends Webform_1.default {
|
|
|
605
590
|
const pageFromPages = this.pages[num];
|
|
606
591
|
const pageFromComponents = this.components[num];
|
|
607
592
|
if (!pageFromComponents || (pageFromPages === null || pageFromPages === void 0 ? void 0 : pageFromPages.id) !== pageFromComponents.id) {
|
|
608
|
-
parentNum = this.components.findIndex(
|
|
593
|
+
parentNum = this.components.findIndex(comp => {
|
|
609
594
|
var _a, _b;
|
|
610
595
|
return comp.id === ((_b = (_a = this.pages) === null || _a === void 0 ? void 0 : _a[parentNum]) === null || _b === void 0 ? void 0 : _b.rootPanelId);
|
|
611
596
|
});
|
|
@@ -617,9 +602,7 @@ class Wizard extends Webform_1.default {
|
|
|
617
602
|
return this.redraw().then(() => {
|
|
618
603
|
this.checkData(this.submission.data);
|
|
619
604
|
this.triggerCaptcha(this.currentPage.components);
|
|
620
|
-
const errors = this.submitted
|
|
621
|
-
? this.validate(this.localData, { dirty: true })
|
|
622
|
-
: this.validateCurrentPage();
|
|
605
|
+
const errors = this.submitted ? this.validate(this.localData, { dirty: true }) : this.validateCurrentPage();
|
|
623
606
|
if (this.alert) {
|
|
624
607
|
this.showErrors(errors, true, true);
|
|
625
608
|
}
|
|
@@ -643,9 +626,7 @@ class Wizard extends Webform_1.default {
|
|
|
643
626
|
}
|
|
644
627
|
}
|
|
645
628
|
get currentPage() {
|
|
646
|
-
return this.pages && this.pages.length >= this.page
|
|
647
|
-
? this.pages[this.page]
|
|
648
|
-
: { components: [] };
|
|
629
|
+
return (this.pages && (this.pages.length >= this.page)) ? this.pages[this.page] : { components: [] };
|
|
649
630
|
}
|
|
650
631
|
getNextPage() {
|
|
651
632
|
var _a;
|
|
@@ -654,13 +635,13 @@ class Wizard extends Webform_1.default {
|
|
|
654
635
|
const form = this.pages[this.page].component;
|
|
655
636
|
// Check conditional nextPage
|
|
656
637
|
if (form) {
|
|
657
|
-
const page = this.pages.length > this.page + 1 && !this.showAllErrors ? this.page + 1 : -1;
|
|
638
|
+
const page = this.pages.length > (this.page + 1) && !this.showAllErrors ? this.page + 1 : -1;
|
|
658
639
|
if (form.nextPage) {
|
|
659
640
|
const next = this.evaluate(form.nextPage, {
|
|
660
641
|
next: page,
|
|
661
642
|
data,
|
|
662
643
|
page,
|
|
663
|
-
form
|
|
644
|
+
form
|
|
664
645
|
}, 'next');
|
|
665
646
|
if (next === null) {
|
|
666
647
|
this.currentNextPage = null;
|
|
@@ -723,9 +704,7 @@ class Wizard extends Webform_1.default {
|
|
|
723
704
|
}
|
|
724
705
|
// Validate the form before going to the next page
|
|
725
706
|
const currentPageErrors = this.validateCurrentPage({ dirty: true });
|
|
726
|
-
const errors = this.submitted
|
|
727
|
-
? this.validate(this.localData, { dirty: true })
|
|
728
|
-
: currentPageErrors;
|
|
707
|
+
const errors = this.submitted ? this.validate(this.localData, { dirty: true }) : currentPageErrors;
|
|
729
708
|
// allow going to the next page if the current page is valid, even if there are form level errors
|
|
730
709
|
if (currentPageErrors.length === 0) {
|
|
731
710
|
this.checkData(this.submission.data);
|
|
@@ -746,13 +725,13 @@ class Wizard extends Webform_1.default {
|
|
|
746
725
|
}
|
|
747
726
|
}
|
|
748
727
|
validateCurrentPage(flags = {}) {
|
|
749
|
-
var _a, _b, _c, _d;
|
|
728
|
+
var _a, _b, _c, _d, _e;
|
|
750
729
|
const components = (_a = this.currentPage) === null || _a === void 0 ? void 0 : _a.components.map((component) => component.component);
|
|
751
730
|
// Accessing the parent ensures the right instance (whether it's the parent Wizard or a nested Wizard) performs its validation
|
|
752
731
|
if ((_b = this.currentPage) === null || _b === void 0 ? void 0 : _b.parent) {
|
|
753
|
-
return (_c = this.currentPage) === null || _c === void 0 ? void 0 : _c.parent.validateComponents(components, this.root.data, flags);
|
|
732
|
+
return (_c = this.currentPage) === null || _c === void 0 ? void 0 : _c.parent.validateComponents(components, (_d = this.root) === null || _d === void 0 ? void 0 : _d.data, flags);
|
|
754
733
|
}
|
|
755
|
-
return (
|
|
734
|
+
return (_e = this.currentPage) === null || _e === void 0 ? void 0 : _e.validateComponents(components, this.root ? this.root.data : this.data, flags);
|
|
756
735
|
}
|
|
757
736
|
emitPrevPage() {
|
|
758
737
|
this.emit('prevPage', { page: this.page, submission: this.submission });
|
|
@@ -799,14 +778,14 @@ class Wizard extends Webform_1.default {
|
|
|
799
778
|
this.originalComponents = [];
|
|
800
779
|
this.component.components.map((item) => {
|
|
801
780
|
if (item.type === 'panel') {
|
|
802
|
-
item.key = (0, utils_1.uniqueKey)(pageKeys, item.key || 'panel');
|
|
781
|
+
item.key = (0, utils_1.uniqueKey)(pageKeys, (item.key || 'panel'));
|
|
803
782
|
pageKeys[item.key] = true;
|
|
804
783
|
if (this.wizard.full) {
|
|
805
784
|
this.options.show = this.options.show || {};
|
|
806
785
|
this.options.show[item.key] = true;
|
|
807
786
|
}
|
|
808
|
-
else if (Object.prototype.hasOwnProperty.call(this.wizard, 'full')
|
|
809
|
-
!lodash_1.default.isEqual(this.originalOptions.show, this.options.show)) {
|
|
787
|
+
else if (Object.prototype.hasOwnProperty.call(this.wizard, 'full')
|
|
788
|
+
&& !lodash_1.default.isEqual(this.originalOptions.show, this.options.show)) {
|
|
810
789
|
this.options.show = Object.assign({}, (this.originalOptions.show || {}));
|
|
811
790
|
}
|
|
812
791
|
}
|
|
@@ -818,11 +797,9 @@ class Wizard extends Webform_1.default {
|
|
|
818
797
|
title: 'Page 1',
|
|
819
798
|
label: 'Page 1',
|
|
820
799
|
key: 'page1',
|
|
821
|
-
components: this.component.components
|
|
800
|
+
components: this.component.components
|
|
822
801
|
};
|
|
823
|
-
this.component.components = [
|
|
824
|
-
newPage,
|
|
825
|
-
];
|
|
802
|
+
this.component.components = [newPage];
|
|
826
803
|
this.originalComponents.push(lodash_1.default.clone(newPage));
|
|
827
804
|
}
|
|
828
805
|
}
|
|
@@ -833,8 +810,7 @@ class Wizard extends Webform_1.default {
|
|
|
833
810
|
return super.setForm(form, flags);
|
|
834
811
|
}
|
|
835
812
|
onSetForm(clonedForm, initialForm) {
|
|
836
|
-
this.component.components =
|
|
837
|
-
(this.parent ? initialForm.components : clonedForm.components) || [];
|
|
813
|
+
this.component.components = (this.parent ? initialForm.components : clonedForm.components) || [];
|
|
838
814
|
this.setComponentSchema();
|
|
839
815
|
}
|
|
840
816
|
setEditMode(submission) {
|
|
@@ -865,26 +841,23 @@ class Wizard extends Webform_1.default {
|
|
|
865
841
|
return changed;
|
|
866
842
|
}
|
|
867
843
|
isClickable(page, index) {
|
|
868
|
-
return
|
|
869
|
-
(
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
]));
|
|
844
|
+
return this.page !== index && (0, utils_1.firstNonNil)([
|
|
845
|
+
lodash_1.default.get(page, 'breadcrumbClickable'),
|
|
846
|
+
this.options.breadcrumbSettings.clickable
|
|
847
|
+
]);
|
|
873
848
|
}
|
|
874
849
|
hasButton(name, nextPage = this.getNextPage()) {
|
|
875
850
|
// get page options with global options as default values
|
|
876
|
-
const { previous = this.options.buttonSettings.showPrevious, cancel = this.options.buttonSettings.showCancel, submit = this.options.buttonSettings.showSubmit, next = this.options.buttonSettings.showNext
|
|
851
|
+
const { previous = this.options.buttonSettings.showPrevious, cancel = this.options.buttonSettings.showCancel, submit = this.options.buttonSettings.showSubmit, next = this.options.buttonSettings.showNext } = lodash_1.default.get(this.currentPage, 'component.buttonSettings', {});
|
|
877
852
|
switch (name) {
|
|
878
853
|
case 'previous':
|
|
879
|
-
return previous && this.getPreviousPage() > -1;
|
|
854
|
+
return previous && (this.getPreviousPage() > -1);
|
|
880
855
|
case 'next':
|
|
881
|
-
return next && nextPage !== null && nextPage !== -1;
|
|
856
|
+
return next && (nextPage !== null) && (nextPage !== -1);
|
|
882
857
|
case 'cancel':
|
|
883
858
|
return cancel && !this.options.readOnly;
|
|
884
859
|
case 'submit':
|
|
885
|
-
return
|
|
886
|
-
!this.options.readOnly &&
|
|
887
|
-
(nextPage === null || this.page === this.pages.length - 1));
|
|
860
|
+
return submit && !this.options.readOnly && ((nextPage === null) || (this.page === (this.pages.length - 1)));
|
|
888
861
|
default:
|
|
889
862
|
return true;
|
|
890
863
|
}
|
|
@@ -894,7 +867,8 @@ class Wizard extends Webform_1.default {
|
|
|
894
867
|
// Some panels have the same key....
|
|
895
868
|
return `${page.key}-${page.title}`;
|
|
896
869
|
}
|
|
897
|
-
else if (page.components &&
|
|
870
|
+
else if (page.components &&
|
|
871
|
+
page.components.length > 0) {
|
|
898
872
|
return this.pageId(page.components[0]);
|
|
899
873
|
}
|
|
900
874
|
else {
|
|
@@ -905,11 +879,7 @@ class Wizard extends Webform_1.default {
|
|
|
905
879
|
var _a;
|
|
906
880
|
super.onChange(flags, changed, modified, changes);
|
|
907
881
|
// The onChange loop doesn't need all components for wizards
|
|
908
|
-
const errors =
|
|
909
|
-
? []
|
|
910
|
-
: this.submitted
|
|
911
|
-
? this.validate(this.localData, { dirty: true })
|
|
912
|
-
: this.validateCurrentPage();
|
|
882
|
+
const errors = this.submitted ? this.validate(this.localData, { dirty: true }) : this.validateCurrentPage();
|
|
913
883
|
if (this.alert) {
|
|
914
884
|
this.showErrors(errors, true, true);
|
|
915
885
|
}
|
|
@@ -920,10 +890,8 @@ class Wizard extends Webform_1.default {
|
|
|
920
890
|
const newPanels = this.pages;
|
|
921
891
|
const currentNextPage = this.currentNextPage;
|
|
922
892
|
const panelsUpdated = !lodash_1.default.isEqual(newPanels, currentPanels);
|
|
923
|
-
if (((_a = this.currentPanel) === null || _a === void 0 ? void 0 : _a.id) &&
|
|
924
|
-
this.pages.
|
|
925
|
-
(!this.hasSubWizards || (this.hasSubWizards && panelsUpdated))) {
|
|
926
|
-
const newIndex = this.pages.findIndex((page) => page.id === this.currentPanel.id);
|
|
893
|
+
if (((_a = this.currentPanel) === null || _a === void 0 ? void 0 : _a.id) && this.pages.length && (!this.hasSubWizards || (this.hasSubWizards && panelsUpdated))) {
|
|
894
|
+
const newIndex = this.pages.findIndex(page => page.id === this.currentPanel.id);
|
|
927
895
|
if (newIndex !== -1)
|
|
928
896
|
this.setPage(newIndex);
|
|
929
897
|
}
|
|
@@ -948,7 +916,9 @@ class Wizard extends Webform_1.default {
|
|
|
948
916
|
this.setCustomValidity('');
|
|
949
917
|
return true;
|
|
950
918
|
}
|
|
951
|
-
const components = !currentPageOnly || this.isLastPage()
|
|
919
|
+
const components = !currentPageOnly || this.isLastPage()
|
|
920
|
+
? this.getComponents()
|
|
921
|
+
: this.currentPage.components;
|
|
952
922
|
return components.reduce((check, comp) => comp.checkValidity(data, dirty, row, currentPageOnly, childErrors) && check, true);
|
|
953
923
|
}
|
|
954
924
|
get errors() {
|
|
@@ -961,7 +931,7 @@ class Wizard extends Webform_1.default {
|
|
|
961
931
|
while (!(topPanel.parent instanceof Wizard)) {
|
|
962
932
|
topPanel = topPanel.parent;
|
|
963
933
|
}
|
|
964
|
-
const pageIndex = this.pages.findIndex(
|
|
934
|
+
const pageIndex = this.pages.findIndex(page => page.id === topPanel.id);
|
|
965
935
|
if (pageIndex >= 0) {
|
|
966
936
|
const page = this.pages[pageIndex];
|
|
967
937
|
if (page && page !== this.currentPage) {
|
package/lib/cjs/WizardBuilder.js
CHANGED
|
@@ -32,10 +32,10 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
32
32
|
for (const group in this.groups) {
|
|
33
33
|
if (this.groups[group] && this.groups[group].components) {
|
|
34
34
|
this.groups[group].componentOrder = Object.keys(this.groups[group].components)
|
|
35
|
-
.map(
|
|
36
|
-
.filter(
|
|
35
|
+
.map(key => this.groups[group].components[key])
|
|
36
|
+
.filter(component => component && !component.ignore)
|
|
37
37
|
.sort((a, b) => a.weight - b.weight)
|
|
38
|
-
.map(
|
|
38
|
+
.map(component => component.key);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
const originalRenderComponentsHook = this.options.hooks.renderComponents;
|
|
@@ -88,16 +88,14 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
88
88
|
return remove;
|
|
89
89
|
}
|
|
90
90
|
allowDrop(element) {
|
|
91
|
-
return this.webform && this.webform.refs && this.webform.refs.webform === element
|
|
92
|
-
? false
|
|
93
|
-
: true;
|
|
91
|
+
return (this.webform && this.webform.refs && this.webform.refs.webform === element) ? false : true;
|
|
94
92
|
}
|
|
95
93
|
get pages() {
|
|
96
94
|
return lodash_1.default.filter(this._form.components, { type: 'panel' });
|
|
97
95
|
}
|
|
98
96
|
get currentPage() {
|
|
99
97
|
const pages = this.pages;
|
|
100
|
-
return pages && pages.length >= this.page ? pages[this.page] : null;
|
|
98
|
+
return (pages && (pages.length >= this.page)) ? pages[this.page] : null;
|
|
101
99
|
}
|
|
102
100
|
setForm(value) {
|
|
103
101
|
this._form = value;
|
|
@@ -106,12 +104,11 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
106
104
|
}
|
|
107
105
|
if (this.pages.length === 0) {
|
|
108
106
|
const components = this._form.components.filter((component) => component.type !== 'button');
|
|
109
|
-
this._form.components = [
|
|
110
|
-
this.getPageConfig(1, components),
|
|
111
|
-
];
|
|
107
|
+
this._form.components = [this.getPageConfig(1, components)];
|
|
112
108
|
}
|
|
113
109
|
else {
|
|
114
|
-
const components = this._form.components
|
|
110
|
+
const components = this._form.components
|
|
111
|
+
.filter((component) => component.type !== 'button' || component.action !== 'submit');
|
|
115
112
|
this._form.components = components;
|
|
116
113
|
}
|
|
117
114
|
this.rebuild();
|
|
@@ -142,7 +139,7 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
142
139
|
group,
|
|
143
140
|
groupKey: group.key,
|
|
144
141
|
groupId: `group-container-${groupKey}`,
|
|
145
|
-
subgroups: []
|
|
142
|
+
subgroups: []
|
|
146
143
|
})),
|
|
147
144
|
})),
|
|
148
145
|
}),
|
|
@@ -159,14 +156,13 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
159
156
|
page.parentNode.dragInfo = { index };
|
|
160
157
|
});
|
|
161
158
|
if (this.dragulaLib) {
|
|
162
|
-
this.navigationDragula = this.dragulaLib([
|
|
163
|
-
|
|
164
|
-
], {
|
|
165
|
-
moves: (el) => !el.classList.contains('wizard-add-page'),
|
|
159
|
+
this.navigationDragula = this.dragulaLib([this.element.querySelector('.wizard-pages')], {
|
|
160
|
+
moves: (el) => (!el.classList.contains('wizard-add-page')),
|
|
166
161
|
accepts: (el, target, source, sibling) => (sibling ? true : false),
|
|
167
|
-
})
|
|
162
|
+
})
|
|
163
|
+
.on('drop', this.onReorder.bind(this));
|
|
168
164
|
}
|
|
169
|
-
this.refs.addPage.forEach(
|
|
165
|
+
this.refs.addPage.forEach(link => {
|
|
170
166
|
this.addEventListener(link, 'click', (event) => {
|
|
171
167
|
event.preventDefault();
|
|
172
168
|
this.addPage();
|
|
@@ -193,12 +189,8 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
193
189
|
this.webform.setForm({
|
|
194
190
|
display: 'form',
|
|
195
191
|
type: 'form',
|
|
196
|
-
components: page
|
|
197
|
-
|
|
198
|
-
page,
|
|
199
|
-
]
|
|
200
|
-
: [],
|
|
201
|
-
controller: ((_a = this._form) === null || _a === void 0 ? void 0 : _a.controller) || '',
|
|
192
|
+
components: page ? [page] : [],
|
|
193
|
+
controller: ((_a = this._form) === null || _a === void 0 ? void 0 : _a.controller) || ''
|
|
202
194
|
}, { keepAsReference: true });
|
|
203
195
|
return this.redraw();
|
|
204
196
|
}
|
|
@@ -206,7 +198,7 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
206
198
|
const newPage = page && page.schema ? (0, utils_1.fastCloneDeep)(page.schema) : this.getPageConfig(this.pages.length + 1);
|
|
207
199
|
builder_1.default.uniquify(this._form.components, newPage);
|
|
208
200
|
this._form.components.push(newPage);
|
|
209
|
-
this.emitSaveComponentEvent(newPage, newPage, this._form, 'components', this._form.components.length - 1, true, newPage);
|
|
201
|
+
this.emitSaveComponentEvent(newPage, newPage, this._form, 'components', (this._form.components.length - 1), true, newPage);
|
|
210
202
|
this.emit('change', this._form);
|
|
211
203
|
return this.rebuild();
|
|
212
204
|
}
|
|
@@ -236,7 +228,7 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
236
228
|
}
|
|
237
229
|
const oldPosition = element.dragInfo.index;
|
|
238
230
|
//should drop at next sibling position; no next sibling means drop to last position
|
|
239
|
-
const newPosition = sibling && sibling.dragInfo ? sibling.dragInfo.index : this.pages.length;
|
|
231
|
+
const newPosition = (sibling && sibling.dragInfo ? sibling.dragInfo.index : this.pages.length);
|
|
240
232
|
const movedBelow = newPosition > oldPosition;
|
|
241
233
|
const formComponents = (0, utils_1.fastCloneDeep)(this._form.components);
|
|
242
234
|
const draggedRowData = this._form.components[oldPosition];
|
|
@@ -269,7 +261,7 @@ class WizardBuilder extends WebformBuilder_1.default {
|
|
|
269
261
|
if (component instanceof WizardBuilder) {
|
|
270
262
|
return;
|
|
271
263
|
}
|
|
272
|
-
if (this._form.components.find(
|
|
264
|
+
if (this._form.components.find(comp => lodash_1.default.isEqual(component.component, comp))) {
|
|
273
265
|
this.addPage(component);
|
|
274
266
|
}
|
|
275
267
|
else {
|