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