@formio/js 5.2.3 → 5.2.4-rc.0

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.
Files changed (510) hide show
  1. package/dist/formio.builder.css +161 -50
  2. package/dist/formio.builder.min.css +1 -1
  3. package/dist/formio.embed.js +1 -1
  4. package/dist/formio.embed.min.js +1 -1
  5. package/dist/formio.embed.min.js.LICENSE.txt +1 -1
  6. package/dist/formio.form.css +158 -49
  7. package/dist/formio.form.js +152 -108
  8. package/dist/formio.form.min.css +1 -1
  9. package/dist/formio.form.min.js +1 -1
  10. package/dist/formio.form.min.js.LICENSE.txt +1 -1
  11. package/dist/formio.full.css +161 -50
  12. package/dist/formio.full.js +401 -227
  13. package/dist/formio.full.min.css +1 -1
  14. package/dist/formio.full.min.js +1 -1
  15. package/dist/formio.full.min.js.LICENSE.txt +1 -1
  16. package/dist/formio.js +51 -18
  17. package/dist/formio.min.js +1 -1
  18. package/dist/formio.min.js.LICENSE.txt +1 -1
  19. package/dist/formio.utils.js +47 -14
  20. package/dist/formio.utils.min.js +1 -1
  21. package/dist/formio.utils.min.js.LICENSE.txt +1 -1
  22. package/lib/cjs/CDN.js +12 -12
  23. package/lib/cjs/Element.d.ts +3 -2
  24. package/lib/cjs/Element.js +27 -21
  25. package/lib/cjs/Embed.js +74 -40
  26. package/lib/cjs/EventEmitter.js +1 -1
  27. package/lib/cjs/Form.d.ts +371 -341
  28. package/lib/cjs/Form.js +153 -39
  29. package/lib/cjs/FormBuilder.d.ts +3 -3
  30. package/lib/cjs/FormBuilder.js +2 -3
  31. package/lib/cjs/Formio.js +26 -23
  32. package/lib/cjs/InlineEmbed.js +23 -17
  33. package/lib/cjs/PDF.d.ts +1 -0
  34. package/lib/cjs/PDF.js +18 -15
  35. package/lib/cjs/PDFBuilder.js +51 -36
  36. package/lib/cjs/Webform.d.ts +8 -366
  37. package/lib/cjs/Webform.js +176 -235
  38. package/lib/cjs/WebformBuilder.js +217 -144
  39. package/lib/cjs/Wizard.js +92 -62
  40. package/lib/cjs/WizardBuilder.js +27 -19
  41. package/lib/cjs/addons/FormioAddon.js +1 -1
  42. package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.form.js +59 -57
  43. package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.js +24 -16
  44. package/lib/cjs/addons/index.js +3 -3
  45. package/lib/cjs/components/Components.js +0 -4
  46. package/lib/cjs/components/_classes/component/Component.form.js +11 -11
  47. package/lib/cjs/components/_classes/component/Component.js +298 -179
  48. package/lib/cjs/components/_classes/component/editForm/Component.edit.addons.js +2 -4
  49. package/lib/cjs/components/_classes/component/editForm/Component.edit.api.js +5 -5
  50. package/lib/cjs/components/_classes/component/editForm/Component.edit.conditional.js +9 -11
  51. package/lib/cjs/components/_classes/component/editForm/Component.edit.data.d.ts +37 -0
  52. package/lib/cjs/components/_classes/component/editForm/Component.edit.data.js +39 -25
  53. package/lib/cjs/components/_classes/component/editForm/Component.edit.display.js +47 -29
  54. package/lib/cjs/components/_classes/component/editForm/Component.edit.layout.js +9 -9
  55. package/lib/cjs/components/_classes/component/editForm/Component.edit.logic.js +5 -7
  56. package/lib/cjs/components/_classes/component/editForm/Component.edit.validation.js +37 -34
  57. package/lib/cjs/components/_classes/component/editForm/utils.js +12 -16
  58. package/lib/cjs/components/_classes/componentModal/ComponentModal.js +6 -6
  59. package/lib/cjs/components/_classes/field/Field.js +7 -1
  60. package/lib/cjs/components/_classes/input/Input.js +30 -26
  61. package/lib/cjs/components/_classes/list/ListComponent.form.js +1 -1
  62. package/lib/cjs/components/_classes/list/ListComponent.js +27 -18
  63. package/lib/cjs/components/_classes/list/editForm/ListComponent.edit.data.js +36 -9
  64. package/lib/cjs/components/_classes/multivalue/Multivalue.js +32 -13
  65. package/lib/cjs/components/_classes/nested/NestedComponent.form.js +3 -3
  66. package/lib/cjs/components/_classes/nested/NestedComponent.js +36 -32
  67. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +19 -14
  68. package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +19 -17
  69. package/lib/cjs/components/address/Address.js +52 -45
  70. package/lib/cjs/components/address/editForm/Address.edit.data.js +2 -2
  71. package/lib/cjs/components/address/editForm/Address.edit.display.js +2 -2
  72. package/lib/cjs/components/address/editForm/Address.edit.provider.js +53 -11
  73. package/lib/cjs/components/alert/Alert.js +21 -15
  74. package/lib/cjs/components/button/Button.form.js +1 -1
  75. package/lib/cjs/components/button/Button.js +50 -27
  76. package/lib/cjs/components/button/editForm/Button.edit.display.js +49 -9
  77. package/lib/cjs/components/checkbox/Checkbox.d.ts +1 -1
  78. package/lib/cjs/components/checkbox/Checkbox.form.js +3 -3
  79. package/lib/cjs/components/checkbox/Checkbox.js +28 -20
  80. package/lib/cjs/components/checkbox/editForm/Checkbox.edit.data.js +1 -1
  81. package/lib/cjs/components/checkbox/editForm/Checkbox.edit.display.js +13 -3
  82. package/lib/cjs/components/checkbox/editForm/Checkbox.edit.validation.js +2 -2
  83. package/lib/cjs/components/columns/Columns.form.js +1 -1
  84. package/lib/cjs/components/columns/Columns.js +24 -12
  85. package/lib/cjs/components/columns/editForm/Columns.edit.display.js +17 -17
  86. package/lib/cjs/components/container/Container.form.js +2 -2
  87. package/lib/cjs/components/container/Container.js +6 -4
  88. package/lib/cjs/components/container/editForm/Container.edit.data.js +3 -3
  89. package/lib/cjs/components/container/editForm/Container.edit.display.js +4 -4
  90. package/lib/cjs/components/content/Content.form.js +4 -2
  91. package/lib/cjs/components/content/Content.js +10 -8
  92. package/lib/cjs/components/content/editForm/Content.edit.display.js +10 -10
  93. package/lib/cjs/components/currency/Currency.form.js +3 -3
  94. package/lib/cjs/components/currency/Currency.js +19 -10
  95. package/lib/cjs/components/currency/editForm/Currency.edit.data.js +5 -5
  96. package/lib/cjs/components/currency/editForm/Currency.edit.display.js +8 -8
  97. package/lib/cjs/components/datagrid/DataGrid.form.js +3 -3
  98. package/lib/cjs/components/datagrid/DataGrid.js +89 -38
  99. package/lib/cjs/components/datagrid/editForm/DataGrid.edit.data.js +1 -1
  100. package/lib/cjs/components/datagrid/editForm/DataGrid.edit.display.js +14 -14
  101. package/lib/cjs/components/datagrid/editForm/DataGrid.edit.validation.js +3 -3
  102. package/lib/cjs/components/datamap/DataMap.form.js +2 -2
  103. package/lib/cjs/components/datamap/DataMap.js +44 -31
  104. package/lib/cjs/components/datamap/editForm/DataMap.edit.data.js +1 -1
  105. package/lib/cjs/components/datamap/editForm/DataMap.edit.display.js +8 -8
  106. package/lib/cjs/components/datetime/DateTime.form.js +5 -5
  107. package/lib/cjs/components/datetime/DateTime.js +30 -15
  108. package/lib/cjs/components/datetime/editForm/DateTime.edit.data.js +4 -3
  109. package/lib/cjs/components/datetime/editForm/DateTime.edit.date.js +10 -10
  110. package/lib/cjs/components/datetime/editForm/DateTime.edit.display.js +22 -17
  111. package/lib/cjs/components/datetime/editForm/DateTime.edit.time.js +5 -5
  112. package/lib/cjs/components/datetime/editForm/DateTime.edit.validation.js +3 -3
  113. package/lib/cjs/components/day/Day.form.js +5 -5
  114. package/lib/cjs/components/day/Day.js +146 -56
  115. package/lib/cjs/components/day/editForm/Day.edit.day.js +13 -9
  116. package/lib/cjs/components/day/editForm/Day.edit.display.js +7 -7
  117. package/lib/cjs/components/day/editForm/Day.edit.month.js +12 -8
  118. package/lib/cjs/components/day/editForm/Day.edit.validation.js +7 -7
  119. package/lib/cjs/components/day/editForm/Day.edit.year.js +8 -8
  120. package/lib/cjs/components/editgrid/EditGrid.form.js +2 -2
  121. package/lib/cjs/components/editgrid/EditGrid.js +137 -89
  122. package/lib/cjs/components/editgrid/editForm/EditGrid.edit.data.js +2 -2
  123. package/lib/cjs/components/editgrid/editForm/EditGrid.edit.display.js +7 -2
  124. package/lib/cjs/components/editgrid/editForm/EditGrid.edit.templates.js +16 -16
  125. package/lib/cjs/components/editgrid/editForm/EditGrid.edit.validation.js +3 -3
  126. package/lib/cjs/components/email/Email.js +4 -4
  127. package/lib/cjs/components/email/editForm/Email.edit.display.js +3 -3
  128. package/lib/cjs/components/email/editForm/Email.edit.validation.js +6 -6
  129. package/lib/cjs/components/fieldset/Fieldset.form.js +1 -1
  130. package/lib/cjs/components/fieldset/Fieldset.js +2 -2
  131. package/lib/cjs/components/fieldset/editForm/Fieldset.edit.display.js +8 -8
  132. package/lib/cjs/components/file/File.form.js +4 -4
  133. package/lib/cjs/components/file/File.js +126 -80
  134. package/lib/cjs/components/file/editForm/File.edit.display.js +9 -5
  135. package/lib/cjs/components/file/editForm/File.edit.file.d.ts +37 -16
  136. package/lib/cjs/components/file/editForm/File.edit.file.js +169 -72
  137. package/lib/cjs/components/file/editForm/File.edit.validation.js +2 -2
  138. package/lib/cjs/components/form/Form.form.js +3 -3
  139. package/lib/cjs/components/form/Form.js +67 -51
  140. package/lib/cjs/components/form/editForm/Form.edit.data.js +1 -3
  141. package/lib/cjs/components/form/editForm/Form.edit.display.js +6 -7
  142. package/lib/cjs/components/form/editForm/Form.edit.form.js +11 -9
  143. package/lib/cjs/components/hidden/Hidden.form.js +4 -4
  144. package/lib/cjs/components/hidden/Hidden.js +2 -2
  145. package/lib/cjs/components/hidden/editForm/Hidden.edit.data.js +3 -3
  146. package/lib/cjs/components/hidden/editForm/Hidden.edit.display.js +10 -10
  147. package/lib/cjs/components/html/HTML.js +23 -17
  148. package/lib/cjs/components/html/editForm/HTML.edit.display.js +17 -17
  149. package/lib/cjs/components/html/editForm/HTML.edit.logic.js +2 -2
  150. package/lib/cjs/components/number/Number.form.js +3 -3
  151. package/lib/cjs/components/number/Number.js +27 -11
  152. package/lib/cjs/components/number/editForm/Number.edit.data.js +3 -3
  153. package/lib/cjs/components/number/editForm/Number.edit.display.js +4 -4
  154. package/lib/cjs/components/number/editForm/Number.edit.validation.js +9 -9
  155. package/lib/cjs/components/panel/Panel.form.js +1 -1
  156. package/lib/cjs/components/panel/Panel.js +2 -2
  157. package/lib/cjs/components/panel/editForm/Panel.edit.conditional.js +5 -7
  158. package/lib/cjs/components/panel/editForm/Panel.edit.display.js +55 -29
  159. package/lib/cjs/components/password/Password.form.js +3 -3
  160. package/lib/cjs/components/password/Password.js +5 -2
  161. package/lib/cjs/components/password/editForm/Password.edit.data.js +11 -11
  162. package/lib/cjs/components/password/editForm/Password.edit.display.js +3 -3
  163. package/lib/cjs/components/password/editForm/Password.edit.validation.js +3 -3
  164. package/lib/cjs/components/phonenumber/PhoneNumber.form.js +8 -8
  165. package/lib/cjs/components/phonenumber/PhoneNumber.js +3 -3
  166. package/lib/cjs/components/phonenumber/editForm/PhoneNumber.edit.validation.js +6 -6
  167. package/lib/cjs/components/radio/Radio.form.js +3 -3
  168. package/lib/cjs/components/radio/Radio.js +55 -26
  169. package/lib/cjs/components/radio/editForm/Radio.edit.data.js +23 -9
  170. package/lib/cjs/components/radio/editForm/Radio.edit.display.js +6 -6
  171. package/lib/cjs/components/radio/editForm/Radio.edit.validation.js +2 -2
  172. package/lib/cjs/components/recaptcha/ReCaptcha.form.js +5 -5
  173. package/lib/cjs/components/recaptcha/ReCaptcha.js +7 -5
  174. package/lib/cjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +24 -24
  175. package/lib/cjs/components/select/Select.form.js +3 -3
  176. package/lib/cjs/components/select/Select.js +235 -129
  177. package/lib/cjs/components/select/editForm/Select.edit.data.d.ts +1 -1
  178. package/lib/cjs/components/select/editForm/Select.edit.data.js +191 -57
  179. package/lib/cjs/components/select/editForm/Select.edit.display.js +2 -2
  180. package/lib/cjs/components/select/editForm/Select.edit.validation.js +4 -4
  181. package/lib/cjs/components/selectboxes/SelectBoxes.form.js +3 -3
  182. package/lib/cjs/components/selectboxes/SelectBoxes.js +31 -15
  183. package/lib/cjs/components/selectboxes/editForm/SelectBoxes.edit.validation.js +5 -5
  184. package/lib/cjs/components/signature/Signature.form.js +3 -3
  185. package/lib/cjs/components/signature/Signature.js +25 -15
  186. package/lib/cjs/components/signature/editForm/Signature.edit.display.js +19 -10
  187. package/lib/cjs/components/survey/Survey.form.js +3 -3
  188. package/lib/cjs/components/survey/Survey.js +30 -17
  189. package/lib/cjs/components/survey/editForm/Survey.edit.data.js +23 -11
  190. package/lib/cjs/components/survey/editForm/Survey.edit.display.js +1 -1
  191. package/lib/cjs/components/survey/editForm/Survey.edit.validation.js +1 -1
  192. package/lib/cjs/components/table/Table.form.js +1 -1
  193. package/lib/cjs/components/table/Table.js +7 -5
  194. package/lib/cjs/components/table/editForm/Table.edit.display.js +22 -22
  195. package/lib/cjs/components/tabs/Tabs.form.js +1 -1
  196. package/lib/cjs/components/tabs/Tabs.js +26 -8
  197. package/lib/cjs/components/tabs/editForm/Tabs.edit.display.js +21 -17
  198. package/lib/cjs/components/tags/Tags.form.js +1 -1
  199. package/lib/cjs/components/tags/Tags.js +28 -12
  200. package/lib/cjs/components/tags/editForm/Tags.edit.data.js +7 -7
  201. package/lib/cjs/components/textarea/TextArea.form.js +2 -2
  202. package/lib/cjs/components/textarea/TextArea.js +63 -45
  203. package/lib/cjs/components/textarea/editForm/TextArea.edit.display.js +96 -72
  204. package/lib/cjs/components/textarea/editForm/TextArea.edit.validation.js +3 -3
  205. package/lib/cjs/components/textfield/TextField.form.js +3 -3
  206. package/lib/cjs/components/textfield/TextField.js +32 -21
  207. package/lib/cjs/components/textfield/editForm/TextField.edit.data.js +15 -13
  208. package/lib/cjs/components/textfield/editForm/TextField.edit.display.js +31 -21
  209. package/lib/cjs/components/textfield/editForm/TextField.edit.validation.js +6 -6
  210. package/lib/cjs/components/time/Time.js +17 -10
  211. package/lib/cjs/components/time/editForm/Time.edit.display.js +2 -2
  212. package/lib/cjs/components/unknown/Unknown.form.js +5 -5
  213. package/lib/cjs/components/unknown/Unknown.js +2 -2
  214. package/lib/cjs/components/unknown/editForm/Unknown.edit.display.js +3 -3
  215. package/lib/cjs/components/url/Url.form.js +3 -3
  216. package/lib/cjs/components/url/Url.js +2 -2
  217. package/lib/cjs/components/url/editForm/Url.edit.display.js +3 -3
  218. package/lib/cjs/components/url/editForm/Url.edit.validation.js +1 -1
  219. package/lib/cjs/components/well/Well.form.js +1 -1
  220. package/lib/cjs/components/well/Well.js +2 -2
  221. package/lib/cjs/components/well/editForm/Well.edit.display.js +10 -10
  222. package/lib/cjs/formio.form.d.ts +2 -1
  223. package/lib/cjs/formio.form.js +38 -12
  224. package/lib/cjs/i18n.d.ts +4 -0
  225. package/lib/cjs/i18n.js +7 -3
  226. package/lib/cjs/package.json +1 -1
  227. package/lib/cjs/providers/address/AddressProvider.js +8 -5
  228. package/lib/cjs/providers/address/GoogleAddressProvider.d.ts +3 -3
  229. package/lib/cjs/providers/address/GoogleAddressProvider.js +24 -13
  230. package/lib/cjs/providers/processor/fileProcessor.js +3 -1
  231. package/lib/cjs/providers/storage/azure.js +5 -2
  232. package/lib/cjs/providers/storage/dropbox.js +4 -5
  233. package/lib/cjs/providers/storage/googleDrive.js +3 -4
  234. package/lib/cjs/providers/storage/index.js +1 -1
  235. package/lib/cjs/providers/storage/indexeddb.js +16 -6
  236. package/lib/cjs/providers/storage/s3.js +17 -6
  237. package/lib/cjs/providers/storage/uploadAdapter.js +17 -11
  238. package/lib/cjs/providers/storage/url.js +13 -11
  239. package/lib/cjs/providers/storage/xhr.js +17 -9
  240. package/lib/cjs/templates/index.js +1 -1
  241. package/lib/cjs/translations/de.d.ts +80 -0
  242. package/lib/cjs/translations/de.js +81 -0
  243. package/lib/cjs/translations/en.d.ts +0 -2
  244. package/lib/cjs/translations/en.js +7 -9
  245. package/lib/cjs/utils/ChoicesWrapper.js +2 -2
  246. package/lib/cjs/utils/builder.js +31 -7
  247. package/lib/cjs/utils/calendarUtils.js +7 -5
  248. package/lib/cjs/utils/conditionOperators/ConditionOperator.js +1 -1
  249. package/lib/cjs/utils/conditionOperators/DateGreaterThan.js +12 -4
  250. package/lib/cjs/utils/conditionOperators/IsEmptyValue.js +3 -1
  251. package/lib/cjs/utils/conditionOperators/IsEqualTo.js +10 -6
  252. package/lib/cjs/utils/conditionOperators/index.js +1 -1
  253. package/lib/cjs/utils/formUtils.js +1 -1
  254. package/lib/cjs/utils/i18n.js +7 -1
  255. package/lib/cjs/utils/index.d.ts +2 -1
  256. package/lib/cjs/utils/index.js +2 -2
  257. package/lib/cjs/utils/utils.d.ts +10 -1
  258. package/lib/cjs/utils/utils.js +175 -92
  259. package/lib/cjs/widgets/CalendarWidget.js +66 -49
  260. package/lib/cjs/widgets/InputWidget.js +6 -4
  261. package/lib/cjs/widgets/index.js +1 -1
  262. package/lib/mjs/CDN.js +12 -12
  263. package/lib/mjs/Element.d.ts +3 -2
  264. package/lib/mjs/Element.js +27 -21
  265. package/lib/mjs/Embed.js +76 -42
  266. package/lib/mjs/EventEmitter.js +1 -1
  267. package/lib/mjs/Form.d.ts +371 -341
  268. package/lib/mjs/Form.js +142 -126
  269. package/lib/mjs/FormBuilder.d.ts +3 -3
  270. package/lib/mjs/FormBuilder.js +2 -3
  271. package/lib/mjs/Formio.js +26 -23
  272. package/lib/mjs/InlineEmbed.js +23 -17
  273. package/lib/mjs/PDF.d.ts +1 -0
  274. package/lib/mjs/PDF.js +18 -15
  275. package/lib/mjs/PDFBuilder.js +51 -36
  276. package/lib/mjs/Webform.d.ts +8 -366
  277. package/lib/mjs/Webform.js +183 -250
  278. package/lib/mjs/WebformBuilder.js +220 -147
  279. package/lib/mjs/Wizard.js +93 -63
  280. package/lib/mjs/WizardBuilder.js +27 -19
  281. package/lib/mjs/addons/FormioAddon.js +1 -1
  282. package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.form.js +59 -57
  283. package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.js +24 -16
  284. package/lib/mjs/addons/index.js +3 -3
  285. package/lib/mjs/components/Components.js +0 -4
  286. package/lib/mjs/components/_classes/component/Component.form.js +11 -11
  287. package/lib/mjs/components/_classes/component/Component.js +303 -184
  288. package/lib/mjs/components/_classes/component/editForm/Component.edit.addons.js +2 -4
  289. package/lib/mjs/components/_classes/component/editForm/Component.edit.api.js +5 -5
  290. package/lib/mjs/components/_classes/component/editForm/Component.edit.conditional.js +9 -11
  291. package/lib/mjs/components/_classes/component/editForm/Component.edit.data.d.ts +37 -0
  292. package/lib/mjs/components/_classes/component/editForm/Component.edit.data.js +39 -25
  293. package/lib/mjs/components/_classes/component/editForm/Component.edit.display.js +47 -29
  294. package/lib/mjs/components/_classes/component/editForm/Component.edit.layout.js +9 -9
  295. package/lib/mjs/components/_classes/component/editForm/Component.edit.logic.js +5 -7
  296. package/lib/mjs/components/_classes/component/editForm/Component.edit.validation.js +37 -34
  297. package/lib/mjs/components/_classes/component/editForm/utils.js +12 -16
  298. package/lib/mjs/components/_classes/componentModal/ComponentModal.js +2 -2
  299. package/lib/mjs/components/_classes/field/Field.js +8 -2
  300. package/lib/mjs/components/_classes/input/Input.js +27 -23
  301. package/lib/mjs/components/_classes/list/ListComponent.form.js +1 -1
  302. package/lib/mjs/components/_classes/list/ListComponent.js +27 -18
  303. package/lib/mjs/components/_classes/list/editForm/ListComponent.edit.data.js +36 -9
  304. package/lib/mjs/components/_classes/multivalue/Multivalue.js +32 -13
  305. package/lib/mjs/components/_classes/nested/NestedComponent.form.js +3 -3
  306. package/lib/mjs/components/_classes/nested/NestedComponent.js +32 -28
  307. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +20 -15
  308. package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +19 -17
  309. package/lib/mjs/components/address/Address.js +57 -46
  310. package/lib/mjs/components/address/editForm/Address.edit.data.js +2 -2
  311. package/lib/mjs/components/address/editForm/Address.edit.display.js +2 -2
  312. package/lib/mjs/components/address/editForm/Address.edit.provider.js +53 -11
  313. package/lib/mjs/components/alert/Alert.js +22 -16
  314. package/lib/mjs/components/button/Button.form.js +1 -1
  315. package/lib/mjs/components/button/Button.js +51 -28
  316. package/lib/mjs/components/button/editForm/Button.edit.display.js +49 -9
  317. package/lib/mjs/components/checkbox/Checkbox.d.ts +1 -1
  318. package/lib/mjs/components/checkbox/Checkbox.form.js +3 -3
  319. package/lib/mjs/components/checkbox/Checkbox.js +29 -21
  320. package/lib/mjs/components/checkbox/editForm/Checkbox.edit.data.js +1 -1
  321. package/lib/mjs/components/checkbox/editForm/Checkbox.edit.display.js +13 -3
  322. package/lib/mjs/components/checkbox/editForm/Checkbox.edit.validation.js +2 -2
  323. package/lib/mjs/components/columns/Columns.form.js +1 -1
  324. package/lib/mjs/components/columns/Columns.js +24 -12
  325. package/lib/mjs/components/columns/editForm/Columns.edit.display.js +17 -17
  326. package/lib/mjs/components/container/Container.form.js +2 -2
  327. package/lib/mjs/components/container/Container.js +6 -4
  328. package/lib/mjs/components/container/editForm/Container.edit.data.js +3 -3
  329. package/lib/mjs/components/container/editForm/Container.edit.display.js +4 -4
  330. package/lib/mjs/components/content/Content.form.js +4 -2
  331. package/lib/mjs/components/content/Content.js +10 -8
  332. package/lib/mjs/components/content/editForm/Content.edit.display.js +10 -10
  333. package/lib/mjs/components/currency/Currency.form.js +3 -3
  334. package/lib/mjs/components/currency/Currency.js +19 -10
  335. package/lib/mjs/components/currency/editForm/Currency.edit.data.js +5 -5
  336. package/lib/mjs/components/currency/editForm/Currency.edit.display.js +8 -8
  337. package/lib/mjs/components/datagrid/DataGrid.form.js +3 -3
  338. package/lib/mjs/components/datagrid/DataGrid.js +90 -39
  339. package/lib/mjs/components/datagrid/editForm/DataGrid.edit.data.js +1 -1
  340. package/lib/mjs/components/datagrid/editForm/DataGrid.edit.display.js +14 -14
  341. package/lib/mjs/components/datagrid/editForm/DataGrid.edit.validation.js +3 -3
  342. package/lib/mjs/components/datamap/DataMap.form.js +2 -2
  343. package/lib/mjs/components/datamap/DataMap.js +44 -31
  344. package/lib/mjs/components/datamap/editForm/DataMap.edit.data.js +1 -1
  345. package/lib/mjs/components/datamap/editForm/DataMap.edit.display.js +8 -8
  346. package/lib/mjs/components/datetime/DateTime.form.js +5 -5
  347. package/lib/mjs/components/datetime/DateTime.js +31 -16
  348. package/lib/mjs/components/datetime/editForm/DateTime.edit.data.js +4 -3
  349. package/lib/mjs/components/datetime/editForm/DateTime.edit.date.js +10 -10
  350. package/lib/mjs/components/datetime/editForm/DateTime.edit.display.js +22 -17
  351. package/lib/mjs/components/datetime/editForm/DateTime.edit.time.js +5 -5
  352. package/lib/mjs/components/datetime/editForm/DateTime.edit.validation.js +3 -3
  353. package/lib/mjs/components/day/Day.form.js +5 -5
  354. package/lib/mjs/components/day/Day.js +147 -57
  355. package/lib/mjs/components/day/editForm/Day.edit.day.js +13 -9
  356. package/lib/mjs/components/day/editForm/Day.edit.display.js +7 -7
  357. package/lib/mjs/components/day/editForm/Day.edit.month.js +12 -8
  358. package/lib/mjs/components/day/editForm/Day.edit.validation.js +7 -7
  359. package/lib/mjs/components/day/editForm/Day.edit.year.js +8 -8
  360. package/lib/mjs/components/editgrid/EditGrid.form.js +2 -2
  361. package/lib/mjs/components/editgrid/EditGrid.js +138 -90
  362. package/lib/mjs/components/editgrid/editForm/EditGrid.edit.data.js +2 -2
  363. package/lib/mjs/components/editgrid/editForm/EditGrid.edit.display.js +7 -2
  364. package/lib/mjs/components/editgrid/editForm/EditGrid.edit.templates.js +16 -16
  365. package/lib/mjs/components/editgrid/editForm/EditGrid.edit.validation.js +3 -3
  366. package/lib/mjs/components/email/Email.js +4 -4
  367. package/lib/mjs/components/email/editForm/Email.edit.display.js +3 -3
  368. package/lib/mjs/components/email/editForm/Email.edit.validation.js +6 -6
  369. package/lib/mjs/components/fieldset/Fieldset.form.js +1 -1
  370. package/lib/mjs/components/fieldset/Fieldset.js +2 -2
  371. package/lib/mjs/components/fieldset/editForm/Fieldset.edit.display.js +8 -8
  372. package/lib/mjs/components/file/File.form.js +4 -4
  373. package/lib/mjs/components/file/File.js +131 -84
  374. package/lib/mjs/components/file/editForm/File.edit.display.js +9 -5
  375. package/lib/mjs/components/file/editForm/File.edit.file.d.ts +37 -16
  376. package/lib/mjs/components/file/editForm/File.edit.file.js +169 -72
  377. package/lib/mjs/components/file/editForm/File.edit.validation.js +2 -2
  378. package/lib/mjs/components/form/Form.form.js +3 -3
  379. package/lib/mjs/components/form/Form.js +67 -51
  380. package/lib/mjs/components/form/editForm/Form.edit.data.js +1 -3
  381. package/lib/mjs/components/form/editForm/Form.edit.display.js +6 -7
  382. package/lib/mjs/components/form/editForm/Form.edit.form.js +10 -8
  383. package/lib/mjs/components/hidden/Hidden.form.js +4 -4
  384. package/lib/mjs/components/hidden/Hidden.js +2 -2
  385. package/lib/mjs/components/hidden/editForm/Hidden.edit.data.js +3 -3
  386. package/lib/mjs/components/hidden/editForm/Hidden.edit.display.js +10 -10
  387. package/lib/mjs/components/html/HTML.js +23 -17
  388. package/lib/mjs/components/html/editForm/HTML.edit.display.js +17 -17
  389. package/lib/mjs/components/html/editForm/HTML.edit.logic.js +2 -2
  390. package/lib/mjs/components/number/Number.form.js +3 -3
  391. package/lib/mjs/components/number/Number.js +28 -12
  392. package/lib/mjs/components/number/editForm/Number.edit.data.js +3 -3
  393. package/lib/mjs/components/number/editForm/Number.edit.display.js +4 -4
  394. package/lib/mjs/components/number/editForm/Number.edit.validation.js +9 -9
  395. package/lib/mjs/components/panel/Panel.form.js +1 -1
  396. package/lib/mjs/components/panel/Panel.js +2 -2
  397. package/lib/mjs/components/panel/editForm/Panel.edit.conditional.js +6 -8
  398. package/lib/mjs/components/panel/editForm/Panel.edit.display.js +55 -29
  399. package/lib/mjs/components/password/Password.form.js +3 -3
  400. package/lib/mjs/components/password/Password.js +5 -2
  401. package/lib/mjs/components/password/editForm/Password.edit.data.js +11 -11
  402. package/lib/mjs/components/password/editForm/Password.edit.display.js +3 -3
  403. package/lib/mjs/components/password/editForm/Password.edit.validation.js +3 -3
  404. package/lib/mjs/components/phonenumber/PhoneNumber.form.js +8 -8
  405. package/lib/mjs/components/phonenumber/PhoneNumber.js +3 -3
  406. package/lib/mjs/components/phonenumber/editForm/PhoneNumber.edit.validation.js +6 -6
  407. package/lib/mjs/components/radio/Radio.form.js +3 -3
  408. package/lib/mjs/components/radio/Radio.js +56 -27
  409. package/lib/mjs/components/radio/editForm/Radio.edit.data.js +23 -9
  410. package/lib/mjs/components/radio/editForm/Radio.edit.display.js +6 -6
  411. package/lib/mjs/components/radio/editForm/Radio.edit.validation.js +2 -2
  412. package/lib/mjs/components/recaptcha/ReCaptcha.form.js +5 -5
  413. package/lib/mjs/components/recaptcha/ReCaptcha.js +7 -5
  414. package/lib/mjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +24 -24
  415. package/lib/mjs/components/select/Select.form.js +3 -3
  416. package/lib/mjs/components/select/Select.js +240 -134
  417. package/lib/mjs/components/select/editForm/Select.edit.data.d.ts +1 -1
  418. package/lib/mjs/components/select/editForm/Select.edit.data.js +191 -57
  419. package/lib/mjs/components/select/editForm/Select.edit.display.js +2 -2
  420. package/lib/mjs/components/select/editForm/Select.edit.validation.js +4 -4
  421. package/lib/mjs/components/selectboxes/SelectBoxes.form.js +3 -3
  422. package/lib/mjs/components/selectboxes/SelectBoxes.js +32 -16
  423. package/lib/mjs/components/selectboxes/editForm/SelectBoxes.edit.validation.js +5 -5
  424. package/lib/mjs/components/signature/Signature.form.js +3 -3
  425. package/lib/mjs/components/signature/Signature.js +25 -15
  426. package/lib/mjs/components/signature/editForm/Signature.edit.display.js +19 -10
  427. package/lib/mjs/components/survey/Survey.form.js +3 -3
  428. package/lib/mjs/components/survey/Survey.js +30 -17
  429. package/lib/mjs/components/survey/editForm/Survey.edit.data.js +23 -11
  430. package/lib/mjs/components/survey/editForm/Survey.edit.display.js +1 -1
  431. package/lib/mjs/components/survey/editForm/Survey.edit.validation.js +1 -1
  432. package/lib/mjs/components/table/Table.form.js +1 -1
  433. package/lib/mjs/components/table/Table.js +7 -5
  434. package/lib/mjs/components/table/editForm/Table.edit.display.js +22 -22
  435. package/lib/mjs/components/tabs/Tabs.form.js +1 -1
  436. package/lib/mjs/components/tabs/Tabs.js +26 -8
  437. package/lib/mjs/components/tabs/editForm/Tabs.edit.display.js +21 -17
  438. package/lib/mjs/components/tags/Tags.form.js +1 -1
  439. package/lib/mjs/components/tags/Tags.js +28 -12
  440. package/lib/mjs/components/tags/editForm/Tags.edit.data.js +7 -7
  441. package/lib/mjs/components/textarea/TextArea.form.js +2 -2
  442. package/lib/mjs/components/textarea/TextArea.js +75 -51
  443. package/lib/mjs/components/textarea/editForm/TextArea.edit.display.js +96 -72
  444. package/lib/mjs/components/textarea/editForm/TextArea.edit.validation.js +3 -3
  445. package/lib/mjs/components/textfield/TextField.form.js +3 -3
  446. package/lib/mjs/components/textfield/TextField.js +34 -23
  447. package/lib/mjs/components/textfield/editForm/TextField.edit.data.js +15 -13
  448. package/lib/mjs/components/textfield/editForm/TextField.edit.display.js +31 -21
  449. package/lib/mjs/components/textfield/editForm/TextField.edit.validation.js +6 -6
  450. package/lib/mjs/components/time/Time.js +17 -10
  451. package/lib/mjs/components/time/editForm/Time.edit.display.js +2 -2
  452. package/lib/mjs/components/unknown/Unknown.form.js +5 -5
  453. package/lib/mjs/components/unknown/Unknown.js +2 -2
  454. package/lib/mjs/components/unknown/editForm/Unknown.edit.display.js +3 -3
  455. package/lib/mjs/components/url/Url.form.js +3 -3
  456. package/lib/mjs/components/url/Url.js +2 -2
  457. package/lib/mjs/components/url/editForm/Url.edit.display.js +3 -3
  458. package/lib/mjs/components/url/editForm/Url.edit.validation.js +1 -1
  459. package/lib/mjs/components/well/Well.form.js +1 -1
  460. package/lib/mjs/components/well/Well.js +2 -2
  461. package/lib/mjs/components/well/editForm/Well.edit.display.js +10 -10
  462. package/lib/mjs/formio.form.d.ts +2 -1
  463. package/lib/mjs/formio.form.js +10 -8
  464. package/lib/mjs/i18n.d.ts +4 -0
  465. package/lib/mjs/i18n.js +7 -3
  466. package/lib/mjs/package.json +1 -1
  467. package/lib/mjs/providers/address/AddressProvider.js +8 -5
  468. package/lib/mjs/providers/address/GoogleAddressProvider.d.ts +3 -3
  469. package/lib/mjs/providers/address/GoogleAddressProvider.js +24 -13
  470. package/lib/mjs/providers/processor/fileProcessor.js +3 -1
  471. package/lib/mjs/providers/storage/azure.js +5 -2
  472. package/lib/mjs/providers/storage/dropbox.js +4 -5
  473. package/lib/mjs/providers/storage/googleDrive.js +3 -4
  474. package/lib/mjs/providers/storage/index.js +1 -1
  475. package/lib/mjs/providers/storage/indexeddb.js +16 -6
  476. package/lib/mjs/providers/storage/s3.js +19 -8
  477. package/lib/mjs/providers/storage/uploadAdapter.js +17 -11
  478. package/lib/mjs/providers/storage/url.js +13 -11
  479. package/lib/mjs/providers/storage/xhr.js +17 -9
  480. package/lib/mjs/templates/index.js +1 -1
  481. package/lib/mjs/translations/de.d.ts +80 -0
  482. package/lib/mjs/translations/de.js +79 -0
  483. package/lib/mjs/translations/en.d.ts +0 -2
  484. package/lib/mjs/translations/en.js +7 -9
  485. package/lib/mjs/utils/ChoicesWrapper.js +2 -2
  486. package/lib/mjs/utils/builder.js +31 -7
  487. package/lib/mjs/utils/calendarUtils.js +7 -5
  488. package/lib/mjs/utils/conditionOperators/ConditionOperator.js +1 -1
  489. package/lib/mjs/utils/conditionOperators/DateGreaterThan.js +16 -5
  490. package/lib/mjs/utils/conditionOperators/IsEmptyValue.js +3 -1
  491. package/lib/mjs/utils/conditionOperators/IsEqualTo.js +10 -6
  492. package/lib/mjs/utils/conditionOperators/index.js +1 -1
  493. package/lib/mjs/utils/formUtils.js +2 -2
  494. package/lib/mjs/utils/i18n.js +7 -1
  495. package/lib/mjs/utils/index.d.ts +2 -1
  496. package/lib/mjs/utils/index.js +3 -3
  497. package/lib/mjs/utils/utils.d.ts +10 -1
  498. package/lib/mjs/utils/utils.js +178 -91
  499. package/lib/mjs/widgets/CalendarWidget.js +67 -50
  500. package/lib/mjs/widgets/InputWidget.js +6 -4
  501. package/lib/mjs/widgets/index.js +1 -1
  502. package/package.json +3 -3
  503. package/lib/cjs/pdf.image.d.ts +0 -2
  504. package/lib/cjs/pdf.image.js +0 -94
  505. package/lib/cjs/utils/jsonlogic/operators.d.ts +0 -1
  506. package/lib/cjs/utils/jsonlogic/operators.js +0 -265
  507. package/lib/mjs/pdf.image.d.ts +0 -2
  508. package/lib/mjs/pdf.image.js +0 -94
  509. package/lib/mjs/utils/jsonlogic/operators.d.ts +0 -1
  510. package/lib/mjs/utils/jsonlogic/operators.js +0 -262
package/lib/mjs/Wizard.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import _ from 'lodash';
2
2
  import Webform from './Webform';
3
3
  import { Formio } from './Formio';
4
- import { fastCloneDeep, checkCondition, firstNonNil, uniqueKey, eachComponent, } from './utils';
4
+ import { fastCloneDeep, checkCondition, firstNonNil, uniqueKey, eachComponent } from './utils';
5
5
  export default class Wizard extends Webform {
6
6
  /**
7
7
  * Constructor for wizard-based forms.
@@ -30,7 +30,9 @@ export default class Wizard extends Webform {
30
30
  this.page = 0;
31
31
  this.currentPanel = null;
32
32
  this.currentNextPage = 0;
33
- this._seenPages = [0];
33
+ this._seenPages = [
34
+ 0,
35
+ ];
34
36
  this.subWizards = [];
35
37
  this.allPages = [];
36
38
  this.lastPromise = Promise.resolve();
@@ -48,8 +50,7 @@ export default class Wizard extends Webform {
48
50
  getPages(args = {}) {
49
51
  const { all = false } = args;
50
52
  const pages = this.hasSubWizards ? this.components : this.pages;
51
- const filteredPages = pages
52
- .filter(all ? _.identity : (p, index) => this._seenPages.includes(index));
53
+ const filteredPages = pages.filter(all ? _.identity : (p, index) => this._seenPages.includes(index));
53
54
  return filteredPages;
54
55
  }
55
56
  get hasSubWizards() {
@@ -73,9 +74,7 @@ export default class Wizard extends Webform {
73
74
  });
74
75
  }
75
76
  getComponents() {
76
- return this.submitting
77
- ? this.getPages({ all: this.isLastPage() })
78
- : super.getComponents();
77
+ return this.submitting ? this.getPages({ all: this.isLastPage() }) : super.getComponents();
79
78
  }
80
79
  resetValue() {
81
80
  this.getPages({ all: true }).forEach((page) => page.resetValue());
@@ -87,10 +86,10 @@ export default class Wizard extends Webform {
87
86
  showPrevious: true,
88
87
  showNext: true,
89
88
  showSubmit: true,
90
- showCancel: !this.options.readOnly
89
+ showCancel: !this.options.readOnly,
91
90
  });
92
91
  this.options.breadcrumbSettings = _.defaults(this.options.breadcrumbSettings, {
93
- clickable: true
92
+ clickable: true,
94
93
  });
95
94
  this.options.allowPrevious = this.options.allowPrevious || false;
96
95
  this.page = 0;
@@ -100,7 +99,7 @@ export default class Wizard extends Webform {
100
99
  this.component = this.pages[this.page].component;
101
100
  }
102
101
  this.on('subWizardsUpdated', (subForm) => {
103
- const subWizard = this.subWizards.find(subWizard => subForm?.id && subWizard.subForm?.id === subForm?.id);
102
+ const subWizard = this.subWizards.find((subWizard) => subForm?.id && subWizard.subForm?.id === subForm?.id);
104
103
  if (this.subWizards.length && subWizard) {
105
104
  subWizard.subForm.setValue(subForm._submission, {}, true);
106
105
  this.establishPages();
@@ -124,7 +123,7 @@ export default class Wizard extends Webform {
124
123
  { name: 'cancel', method: 'cancel' },
125
124
  { name: 'previous', method: 'prevPage' },
126
125
  { name: 'next', method: 'nextPage' },
127
- { name: 'submit', method: 'submit' }
126
+ { name: 'submit', method: 'submit' },
128
127
  ].forEach((button) => {
129
128
  if (this.hasButton(button.name)) {
130
129
  buttons[button.name] = button;
@@ -137,9 +136,9 @@ export default class Wizard extends Webform {
137
136
  'cancel',
138
137
  'previous',
139
138
  'next',
140
- 'submit'
139
+ 'submit',
141
140
  ];
142
- return this.options.properties?.wizardButtonOrder?.toLowerCase().split(', ') ?? defaultButtonOrder;
141
+ return (this.options.properties?.wizardButtonOrder?.toLowerCase().split(', ') ?? defaultButtonOrder);
143
142
  }
144
143
  get renderContext() {
145
144
  return {
@@ -147,7 +146,9 @@ export default class Wizard extends Webform {
147
146
  wizardKey: this.wizardKey,
148
147
  isBreadcrumbClickable: this.isBreadcrumbClickable(),
149
148
  isSubForm: !!this.parent && !this.root?.component?.type === 'wizard',
150
- panels: this.allPages.length ? this.allPages.map(page => page.component) : this.pages.map(page => page.component),
149
+ panels: this.allPages.length
150
+ ? this.allPages.map((page) => page.component)
151
+ : this.pages.map((page) => page.component),
151
152
  buttons: this.buttons,
152
153
  currentPage: this.page,
153
154
  buttonOrder: this.buttonOrder,
@@ -157,8 +158,10 @@ export default class Wizard extends Webform {
157
158
  const currentPanel = this.currentPanel;
158
159
  if (currentPanel && currentPanel.buttonSettings) {
159
160
  Object.keys(currentPanel.buttonSettings).forEach(() => {
160
- Object.keys(ctx.buttons).forEach(key => {
161
- if (typeof currentPanel.buttonSettings[key] !== 'undefined' && !currentPanel.buttonSettings[key] || ctx.isSubForm) {
161
+ Object.keys(ctx.buttons).forEach((key) => {
162
+ if ((typeof currentPanel.buttonSettings[key] !== 'undefined' &&
163
+ !currentPanel.buttonSettings[key]) ||
164
+ ctx.isSubForm) {
162
165
  ctx.buttons[key] = null;
163
166
  }
164
167
  });
@@ -177,7 +180,7 @@ export default class Wizard extends Webform {
177
180
  render() {
178
181
  const ctx = this.renderContext;
179
182
  if (this.component.id) {
180
- ctx.panels.forEach(panel => {
183
+ ctx.panels.forEach((panel) => {
181
184
  if (panel.id === this.component.id) {
182
185
  this.currentPanel = panel;
183
186
  ctx.wizardPageTooltip = this.getFormattedTooltip(panel.tooltip);
@@ -198,7 +201,7 @@ export default class Wizard extends Webform {
198
201
  components: this.renderComponents([
199
202
  ...this.prefixComps,
200
203
  ...this.currentPage.components,
201
- ...this.suffixComps
204
+ ...this.suffixComps,
202
205
  ]),
203
206
  }, this.builderMode ? 'builder' : 'form');
204
207
  }
@@ -228,7 +231,7 @@ export default class Wizard extends Webform {
228
231
  headerElement = this.element.querySelector(`#${this.wizardKey}-header`);
229
232
  this.loadRefs(headerElement, {
230
233
  [`${this.wizardKey}-link`]: 'multiple',
231
- [`${this.wizardKey}-tooltip`]: 'multiple'
234
+ [`${this.wizardKey}-tooltip`]: 'multiple',
232
235
  });
233
236
  this.attachHeader();
234
237
  }
@@ -251,7 +254,7 @@ export default class Wizard extends Webform {
251
254
  [`${this.wizardKey}-next`]: 'single',
252
255
  [`${this.wizardKey}-submit`]: 'single',
253
256
  [`${this.wizardKey}-link`]: 'multiple',
254
- [`${this.wizardKey}-tooltip`]: 'multiple'
257
+ [`${this.wizardKey}-tooltip`]: 'multiple',
255
258
  });
256
259
  if ((this.options.readOnly || this.editMode) && !this.enabledIndex) {
257
260
  this.enabledIndex = this.pages?.length - 1;
@@ -285,7 +288,7 @@ export default class Wizard extends Webform {
285
288
  }
286
289
  isBreadcrumbClickable() {
287
290
  let currentPage = null;
288
- this.pages.map(page => {
291
+ this.pages.map((page) => {
289
292
  if (_.isEqual(this.currentPage.component, page.component)) {
290
293
  currentPage = page;
291
294
  }
@@ -300,7 +303,7 @@ export default class Wizard extends Webform {
300
303
  }
301
304
  isAllowPrevious() {
302
305
  let currentPage = null;
303
- this.pages.map(page => {
306
+ this.pages.map((page) => {
304
307
  if (_.isEqual(this.currentPage.component, page.component)) {
305
308
  currentPage = page;
306
309
  }
@@ -348,10 +351,12 @@ export default class Wizard extends Webform {
348
351
  buttonElement.setAttribute('disabled', 'disabled');
349
352
  this.setLoading(buttonElement, true);
350
353
  // Call the button method, then re-enable the button.
351
- this[button.method]().then(() => {
354
+ this[button.method]()
355
+ .then(() => {
352
356
  buttonElement.removeAttribute('disabled');
353
357
  this.setLoading(buttonElement, false);
354
- }).catch(() => {
358
+ })
359
+ .catch(() => {
355
360
  buttonElement.removeAttribute('disabled');
356
361
  this.setLoading(buttonElement, false);
357
362
  });
@@ -409,15 +414,24 @@ export default class Wizard extends Webform {
409
414
  // Get all components including all nested components and line up in the correct order
410
415
  const getAllComponents = (nestedComp, compsArr, pushAllowed = true) => {
411
416
  const nestedPages = [];
412
- const dataArrayComponents = ['datagrid', 'editgrid', 'dynamicWizard'];
413
- const currentComponents = nestedComp?.subForm ? this.getSortedComponents(nestedComp.subForm) : nestedComp?.components || [];
414
- const visibleComponents = currentComponents.filter(comp => comp._visible);
415
- const filteredComponents = visibleComponents.filter(comp => !dataArrayComponents.includes(comp.component.type) && (comp.type !== 'form' || comp.isNestedWizard));
416
- const additionalComponents = currentComponents.filter(comp => comp.subForm?._form.display !== 'wizard');
417
+ const dataArrayComponents = [
418
+ 'datagrid',
419
+ 'editgrid',
420
+ 'dynamicWizard',
421
+ ];
422
+ const currentComponents = nestedComp?.subForm
423
+ ? this.getSortedComponents(nestedComp.subForm)
424
+ : nestedComp?.components || [];
425
+ const visibleComponents = currentComponents.filter((comp) => comp._visible);
426
+ const filteredComponents = visibleComponents.filter((comp) => !dataArrayComponents.includes(comp.component.type) &&
427
+ (comp.type !== 'form' || comp.isNestedWizard));
428
+ const additionalComponents = currentComponents.filter((comp) => comp.subForm?._form.display !== 'wizard');
417
429
  let hasNested = false;
418
430
  eachComponent(filteredComponents, (comp) => {
419
431
  if (comp && comp.component) {
420
- if (comp.component.type === 'panel' && comp?.parent.wizard && !getAllComponents(comp, compsArr, false)) {
432
+ if (comp.component.type === 'panel' &&
433
+ comp?.parent.wizard &&
434
+ !getAllComponents(comp, compsArr, false)) {
421
435
  if (pushAllowed) {
422
436
  this.setRootPanelId(comp);
423
437
  nestedPages.push(comp);
@@ -466,10 +480,11 @@ export default class Wizard extends Webform {
466
480
  this.allPages = allComponents;
467
481
  }
468
482
  getSortedComponents({ components, originalComponents }) {
483
+ // sorts components if they were shuffled after the conditional logic
469
484
  const currentComponents = [];
470
485
  const currentPages = [];
471
486
  if (components && components.length) {
472
- components.map(page => {
487
+ components.map((page) => {
473
488
  if (page.component.type === 'panel') {
474
489
  currentPages[page.component.key || page.component.title] = page;
475
490
  }
@@ -502,11 +517,11 @@ export default class Wizard extends Webform {
502
517
  const visible = [];
503
518
  const currentPages = {};
504
519
  const pageOptions = {
505
- ...(_.clone(this.options)),
520
+ ..._.clone(this.options),
506
521
  ...(this.parent ? { root: this } : {}),
507
522
  };
508
523
  if (this.components && this.components.length) {
509
- this.components.forEach(page => {
524
+ this.components.forEach((page) => {
510
525
  if (page.component.type === 'panel') {
511
526
  currentPages[page.component.key || page.component.title] = page;
512
527
  }
@@ -541,7 +556,7 @@ export default class Wizard extends Webform {
541
556
  page.visible = isVisible;
542
557
  this.pages.push(page);
543
558
  page.eachComponent((component) => {
544
- component.page = (this.pages.length - 1);
559
+ component.page = this.pages.length - 1;
545
560
  });
546
561
  }
547
562
  }
@@ -583,7 +598,7 @@ export default class Wizard extends Webform {
583
598
  const pageFromPages = this.pages[num];
584
599
  const pageFromComponents = this.components[num];
585
600
  if (!pageFromComponents || pageFromPages?.id !== pageFromComponents.id) {
586
- parentNum = this.components.findIndex(comp => {
601
+ parentNum = this.components.findIndex((comp) => {
587
602
  return comp.id === this.pages?.[parentNum]?.rootPanelId;
588
603
  });
589
604
  }
@@ -594,7 +609,9 @@ export default class Wizard extends Webform {
594
609
  return this.redraw().then(() => {
595
610
  this.checkData(this.submission.data);
596
611
  this.triggerCaptcha(this.currentPage.components);
597
- const errors = this.submitted ? this.validate(this.localData, { dirty: true }) : this.validateCurrentPage();
612
+ const errors = this.submitted
613
+ ? this.validate(this.localData, { dirty: true })
614
+ : this.validateCurrentPage();
598
615
  if (this.alert) {
599
616
  this.showErrors(errors, true, true);
600
617
  }
@@ -617,7 +634,9 @@ export default class Wizard extends Webform {
617
634
  }
618
635
  }
619
636
  get currentPage() {
620
- return (this.pages && (this.pages.length >= this.page)) ? this.pages[this.page] : { components: [] };
637
+ return this.pages && this.pages.length >= this.page
638
+ ? this.pages[this.page]
639
+ : { components: [] };
621
640
  }
622
641
  getNextPage() {
623
642
  if (this.pages?.[this.page]) {
@@ -625,13 +644,13 @@ export default class Wizard extends Webform {
625
644
  const form = this.pages[this.page].component;
626
645
  // Check conditional nextPage
627
646
  if (form) {
628
- const page = this.pages.length > (this.page + 1) && !this.showAllErrors ? this.page + 1 : -1;
647
+ const page = this.pages.length > this.page + 1 && !this.showAllErrors ? this.page + 1 : -1;
629
648
  if (form.nextPage) {
630
649
  const next = this.evaluate(form.nextPage, {
631
650
  next: page,
632
651
  data,
633
652
  page,
634
- form
653
+ form,
635
654
  }, 'next');
636
655
  if (next === null) {
637
656
  this.currentNextPage = null;
@@ -694,7 +713,9 @@ export default class Wizard extends Webform {
694
713
  }
695
714
  // Validate the form before going to the next page
696
715
  const currentPageErrors = this.validateCurrentPage({ dirty: true });
697
- const errors = this.submitted ? this.validate(this.localData, { dirty: true }) : currentPageErrors;
716
+ const errors = this.submitted
717
+ ? this.validate(this.localData, { dirty: true })
718
+ : currentPageErrors;
698
719
  // allow going to the next page if the current page is valid, even if there are form level errors
699
720
  if (currentPageErrors.length === 0) {
700
721
  this.checkData(this.submission.data);
@@ -767,14 +788,14 @@ export default class Wizard extends Webform {
767
788
  this.originalComponents = [];
768
789
  this.component.components.map((item) => {
769
790
  if (item.type === 'panel') {
770
- item.key = uniqueKey(pageKeys, (item.key || 'panel'));
791
+ item.key = uniqueKey(pageKeys, item.key || 'panel');
771
792
  pageKeys[item.key] = true;
772
793
  if (this.wizard.full) {
773
794
  this.options.show = this.options.show || {};
774
795
  this.options.show[item.key] = true;
775
796
  }
776
- else if (Object.prototype.hasOwnProperty.call(this.wizard, 'full')
777
- && !_.isEqual(this.originalOptions.show, this.options.show)) {
797
+ else if (Object.prototype.hasOwnProperty.call(this.wizard, 'full') &&
798
+ !_.isEqual(this.originalOptions.show, this.options.show)) {
778
799
  this.options.show = { ...(this.originalOptions.show || {}) };
779
800
  }
780
801
  }
@@ -786,9 +807,11 @@ export default class Wizard extends Webform {
786
807
  title: 'Page 1',
787
808
  label: 'Page 1',
788
809
  key: 'page1',
789
- components: this.component.components
810
+ components: this.component.components,
790
811
  };
791
- this.component.components = [newPage];
812
+ this.component.components = [
813
+ newPage,
814
+ ];
792
815
  this.originalComponents.push(_.clone(newPage));
793
816
  }
794
817
  }
@@ -799,7 +822,8 @@ export default class Wizard extends Webform {
799
822
  return super.setForm(form, flags);
800
823
  }
801
824
  onSetForm(clonedForm, initialForm) {
802
- this.component.components = (this.parent ? initialForm.components : clonedForm.components) || [];
825
+ this.component.components =
826
+ (this.parent ? initialForm.components : clonedForm.components) || [];
803
827
  this.setComponentSchema();
804
828
  }
805
829
  setEditMode(submission) {
@@ -830,23 +854,26 @@ export default class Wizard extends Webform {
830
854
  return changed;
831
855
  }
832
856
  isClickable(page, index) {
833
- return this.page !== index && firstNonNil([
834
- _.get(page, 'breadcrumbClickable'),
835
- this.options.breadcrumbSettings.clickable
836
- ]);
857
+ return (this.page !== index &&
858
+ firstNonNil([
859
+ _.get(page, 'breadcrumbClickable'),
860
+ this.options.breadcrumbSettings.clickable,
861
+ ]));
837
862
  }
838
863
  hasButton(name, nextPage = this.getNextPage()) {
839
864
  // get page options with global options as default values
840
- const { previous = this.options.buttonSettings.showPrevious, cancel = this.options.buttonSettings.showCancel, submit = this.options.buttonSettings.showSubmit, next = this.options.buttonSettings.showNext } = _.get(this.currentPage, 'component.buttonSettings', {});
865
+ const { previous = this.options.buttonSettings.showPrevious, cancel = this.options.buttonSettings.showCancel, submit = this.options.buttonSettings.showSubmit, next = this.options.buttonSettings.showNext, } = _.get(this.currentPage, 'component.buttonSettings', {});
841
866
  switch (name) {
842
867
  case 'previous':
843
- return previous && (this.getPreviousPage() > -1);
868
+ return previous && this.getPreviousPage() > -1;
844
869
  case 'next':
845
- return next && (nextPage !== null) && (nextPage !== -1);
870
+ return next && nextPage !== null && nextPage !== -1;
846
871
  case 'cancel':
847
872
  return cancel && !this.options.readOnly;
848
873
  case 'submit':
849
- return submit && !this.options.readOnly && ((nextPage === null) || (this.page === (this.pages.length - 1)));
874
+ return (submit &&
875
+ !this.options.readOnly &&
876
+ (nextPage === null || this.page === this.pages.length - 1));
850
877
  default:
851
878
  return true;
852
879
  }
@@ -856,8 +883,7 @@ export default class Wizard extends Webform {
856
883
  // Some panels have the same key....
857
884
  return `${page.key}-${page.title}`;
858
885
  }
859
- else if (page.components &&
860
- page.components.length > 0) {
886
+ else if (page.components && page.components.length > 0) {
861
887
  return this.pageId(page.components[0]);
862
888
  }
863
889
  else {
@@ -867,7 +893,11 @@ export default class Wizard extends Webform {
867
893
  onChange(flags, changed, modified, changes) {
868
894
  super.onChange(flags, changed, modified, changes);
869
895
  // The onChange loop doesn't need all components for wizards
870
- const errors = this.submitted ? this.validate(this.localData, { dirty: true }) : this.validateCurrentPage();
896
+ const errors = flags?.noValidate
897
+ ? []
898
+ : this.submitted
899
+ ? this.validate(this.localData, { dirty: true })
900
+ : this.validateCurrentPage();
871
901
  if (this.alert) {
872
902
  this.showErrors(errors, true, true);
873
903
  }
@@ -878,8 +908,10 @@ export default class Wizard extends Webform {
878
908
  const newPanels = this.pages;
879
909
  const currentNextPage = this.currentNextPage;
880
910
  const panelsUpdated = !_.isEqual(newPanels, currentPanels);
881
- if (this.currentPanel?.id && this.pages.length && (!this.hasSubWizards || (this.hasSubWizards && panelsUpdated))) {
882
- const newIndex = this.pages.findIndex(page => page.id === this.currentPanel.id);
911
+ if (this.currentPanel?.id &&
912
+ this.pages.length &&
913
+ (!this.hasSubWizards || (this.hasSubWizards && panelsUpdated))) {
914
+ const newIndex = this.pages.findIndex((page) => page.id === this.currentPanel.id);
883
915
  if (newIndex !== -1)
884
916
  this.setPage(newIndex);
885
917
  }
@@ -904,9 +936,7 @@ export default class Wizard extends Webform {
904
936
  this.setCustomValidity('');
905
937
  return true;
906
938
  }
907
- const components = !currentPageOnly || this.isLastPage()
908
- ? this.getComponents()
909
- : this.currentPage.components;
939
+ const components = !currentPageOnly || this.isLastPage() ? this.getComponents() : this.currentPage.components;
910
940
  return components.reduce((check, comp) => comp.checkValidity(data, dirty, row, currentPageOnly, childErrors) && check, true);
911
941
  }
912
942
  get errors() {
@@ -919,7 +949,7 @@ export default class Wizard extends Webform {
919
949
  while (!(topPanel.parent instanceof Wizard)) {
920
950
  topPanel = topPanel.parent;
921
951
  }
922
- const pageIndex = this.pages.findIndex(page => page.id === topPanel.id);
952
+ const pageIndex = this.pages.findIndex((page) => page.id === topPanel.id);
923
953
  if (pageIndex >= 0) {
924
954
  const page = this.pages[pageIndex];
925
955
  if (page && page !== this.currentPage) {
@@ -27,10 +27,10 @@ export default class WizardBuilder extends WebformBuilder {
27
27
  for (const group in this.groups) {
28
28
  if (this.groups[group] && this.groups[group].components) {
29
29
  this.groups[group].componentOrder = Object.keys(this.groups[group].components)
30
- .map(key => this.groups[group].components[key])
31
- .filter(component => component && !component.ignore)
30
+ .map((key) => this.groups[group].components[key])
31
+ .filter((component) => component && !component.ignore)
32
32
  .sort((a, b) => a.weight - b.weight)
33
- .map(component => component.key);
33
+ .map((component) => component.key);
34
34
  }
35
35
  }
36
36
  const originalRenderComponentsHook = this.options.hooks.renderComponents;
@@ -83,14 +83,16 @@ export default class WizardBuilder extends WebformBuilder {
83
83
  return remove;
84
84
  }
85
85
  allowDrop(element) {
86
- return (this.webform && this.webform.refs && this.webform.refs.webform === element) ? false : true;
86
+ return this.webform && this.webform.refs && this.webform.refs.webform === element
87
+ ? false
88
+ : true;
87
89
  }
88
90
  get pages() {
89
91
  return _.filter(this._form.components, { type: 'panel' });
90
92
  }
91
93
  get currentPage() {
92
94
  const pages = this.pages;
93
- return (pages && (pages.length >= this.page)) ? pages[this.page] : null;
95
+ return pages && pages.length >= this.page ? pages[this.page] : null;
94
96
  }
95
97
  setForm(value) {
96
98
  this._form = value;
@@ -99,11 +101,12 @@ export default class WizardBuilder extends WebformBuilder {
99
101
  }
100
102
  if (this.pages.length === 0) {
101
103
  const components = this._form.components.filter((component) => component.type !== 'button');
102
- this._form.components = [this.getPageConfig(1, components)];
104
+ this._form.components = [
105
+ this.getPageConfig(1, components),
106
+ ];
103
107
  }
104
108
  else {
105
- const components = this._form.components
106
- .filter((component) => component.type !== 'button' || component.action !== 'submit');
109
+ const components = this._form.components.filter((component) => component.type !== 'button' || component.action !== 'submit');
107
110
  this._form.components = components;
108
111
  }
109
112
  this.rebuild();
@@ -134,7 +137,7 @@ export default class WizardBuilder extends WebformBuilder {
134
137
  group,
135
138
  groupKey: group.key,
136
139
  groupId: `group-container-${groupKey}`,
137
- subgroups: []
140
+ subgroups: [],
138
141
  })),
139
142
  })),
140
143
  }),
@@ -151,13 +154,14 @@ export default class WizardBuilder extends WebformBuilder {
151
154
  page.parentNode.dragInfo = { index };
152
155
  });
153
156
  if (this.dragulaLib) {
154
- this.navigationDragula = this.dragulaLib([this.element.querySelector('.wizard-pages')], {
155
- moves: (el) => (!el.classList.contains('wizard-add-page')),
157
+ this.navigationDragula = this.dragulaLib([
158
+ this.element.querySelector('.wizard-pages'),
159
+ ], {
160
+ moves: (el) => !el.classList.contains('wizard-add-page'),
156
161
  accepts: (el, target, source, sibling) => (sibling ? true : false),
157
- })
158
- .on('drop', this.onReorder.bind(this));
162
+ }).on('drop', this.onReorder.bind(this));
159
163
  }
160
- this.refs.addPage.forEach(link => {
164
+ this.refs.addPage.forEach((link) => {
161
165
  this.addEventListener(link, 'click', (event) => {
162
166
  event.preventDefault();
163
167
  this.addPage();
@@ -183,8 +187,12 @@ export default class WizardBuilder extends WebformBuilder {
183
187
  this.webform.setForm({
184
188
  display: 'form',
185
189
  type: 'form',
186
- components: page ? [page] : [],
187
- controller: this._form?.controller || ''
190
+ components: page
191
+ ? [
192
+ page,
193
+ ]
194
+ : [],
195
+ controller: this._form?.controller || '',
188
196
  }, { keepAsReference: true });
189
197
  return this.redraw();
190
198
  }
@@ -192,7 +200,7 @@ export default class WizardBuilder extends WebformBuilder {
192
200
  const newPage = page && page.schema ? fastCloneDeep(page.schema) : this.getPageConfig(this.pages.length + 1);
193
201
  BuilderUtils.uniquify(this._form.components, newPage);
194
202
  this._form.components.push(newPage);
195
- this.emitSaveComponentEvent(newPage, newPage, this._form, 'components', (this._form.components.length - 1), true, newPage);
203
+ this.emitSaveComponentEvent(newPage, newPage, this._form, 'components', this._form.components.length - 1, true, newPage);
196
204
  this.emit('change', this._form);
197
205
  return this.rebuild();
198
206
  }
@@ -222,7 +230,7 @@ export default class WizardBuilder extends WebformBuilder {
222
230
  }
223
231
  const oldPosition = element.dragInfo.index;
224
232
  //should drop at next sibling position; no next sibling means drop to last position
225
- const newPosition = (sibling && sibling.dragInfo ? sibling.dragInfo.index : this.pages.length);
233
+ const newPosition = sibling && sibling.dragInfo ? sibling.dragInfo.index : this.pages.length;
226
234
  const movedBelow = newPosition > oldPosition;
227
235
  const formComponents = fastCloneDeep(this._form.components);
228
236
  const draggedRowData = this._form.components[oldPosition];
@@ -255,7 +263,7 @@ export default class WizardBuilder extends WebformBuilder {
255
263
  if (component instanceof WizardBuilder) {
256
264
  return;
257
265
  }
258
- if (this._form.components.find(comp => _.isEqual(component.component, comp))) {
266
+ if (this._form.components.find((comp) => _.isEqual(component.component, comp))) {
259
267
  this.addPage(component);
260
268
  }
261
269
  else {
@@ -7,7 +7,7 @@ export default class FormioAddon extends Element {
7
7
  name: 'formioAddon',
8
8
  components: [],
9
9
  label: 'Formio Addon',
10
- defaultSettings: {}
10
+ defaultSettings: {},
11
11
  };
12
12
  }
13
13
  get defaultSettings() {