@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/cjs/Form.js CHANGED
@@ -3,12 +3,112 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FormOptions = void 0;
6
7
  const Element_1 = __importDefault(require("./Element"));
7
8
  const Formio_1 = require("./Formio");
8
9
  const displays_1 = __importDefault(require("./displays"));
9
10
  const templates_1 = __importDefault(require("./templates"));
10
11
  const utils_1 = __importDefault(require("./utils"));
12
+ /**
13
+ * Represents a JSON value.
14
+ * @typedef {(string | number | boolean | null | JSONArray | JSONObject)} JSON
15
+ */
16
+ /**
17
+ * Represents a JSON array.
18
+ * @typedef {Array<JSON>} JSONArray
19
+ */
20
+ /**
21
+ * Represents a JSON object.
22
+ * @typedef {{[key: string]: JSON}} JSONObject
23
+ */
24
+ /**
25
+ * @typedef {object} FormioHooks
26
+ * @property {Function} [beforeSubmit] - Called before a submission is made.
27
+ * @property {Function} [beforeCancel] - Called before a cancel is made.
28
+ * @property {Function} [beforeNext] - Called before the next page is navigated to.
29
+ * @property {Function} [beforePrev] - Called before the previous page is navigated to.
30
+ * @property {Function} [attachComponent] - Called when a component is attached.
31
+ * @property {Function} [setDataValue] - Called when a data value is set.
32
+ * @property {Function} [addComponents] - Called when components are added.
33
+ * @property {Function} [addComponent] - Called when a component is added.
34
+ * @property {Function} [customValidation] - Called when a custom validation is made.
35
+ * @property {Function} [attachWebform] - Called when a webform is attached.
36
+ */
37
+ /**
38
+ * @typedef {object} SanitizeConfig
39
+ * @property {string[]} [addAttr] - The html attributes to allow with sanitization.
40
+ * @property {string[]} [addTags] - The html tags to allow with sanitization.
41
+ * @property {string[]} [allowedAttrs] - The html attributes to allow with sanitization.
42
+ * @property {string[]} [allowedTags] - The html tags to allow with sanitization.
43
+ * @property {string[]} [allowedUriRegex] - The regex for allowed URIs.
44
+ * @property {string[]} [addUriSafeAttr] - The URI attributes to allow with sanitization.
45
+ */
46
+ /**
47
+ * @typedef {object} ButtonSettings
48
+ * @property {boolean} [showPrevious] - Show the previous button in wizard forms.
49
+ * @property {boolean} [showNext] - Show the next button in wizard forms.
50
+ * @property {boolean} [showCancel] - Show the cancel button in wizard forms.
51
+ * @property {boolean} [showSubmit] - Show the submit button in wizard forms.
52
+ */
53
+ /**
54
+ * @typedef {object} FormOptions
55
+ * @property {boolean} [saveDraft] - Enable the save draft feature.
56
+ * @property {number} [saveDraftThrottle] - The throttle for the save draft feature.
57
+ * @property {boolean} [readOnly] - Set this form to readOnly.
58
+ * @property {boolean} [noAlerts] - Disable the alerts dialog.
59
+ * @property {{[key: string]: string}} [i18n] - The translation file for this rendering.
60
+ * @property {string} [template] - Custom logic for creation of elements.
61
+ * @property {boolean} [noDefaults] - Exclude default values from the settings.
62
+ * @property {any} [fileService] - The file service for this form.
63
+ * @property {EventEmitter} [events] - The EventEmitter for this form.
64
+ * @property {string} [language] - The language to render this form in.
65
+ * @property {{[key: string]: string}} [i18next] - The i18next configuration for this form.
66
+ * @property {boolean} [viewAsHtml] - View the form as raw HTML.
67
+ * @property {'form' | 'html' | 'flat' | 'builder' | 'pdf'} [renderMode] - The render mode for this form.
68
+ * @property {boolean} [highlightErrors] - Highlight any errors on the form.
69
+ * @property {string} [componentErrorClass] - The error class for components.
70
+ * @property {any} [templates] - The templates for this form.
71
+ * @property {string} [iconset] - The iconset for this form.
72
+ * @property {import('@formio/core').Component[]} [components] - The components for this form.
73
+ * @property {{[key: string]: boolean}} [disabled] - Disabled components for this form.
74
+ * @property {boolean} [showHiddenFields] - Show hidden fields.
75
+ * @property {{[key: string]: boolean}} [hide] - Hidden components for this form.
76
+ * @property {{[key: string]: boolean}} [show] - Components to show for this form.
77
+ * @property {Formio} [formio] - The Formio instance for this form.
78
+ * @property {string} [decimalSeparator] - The decimal separator for this form.
79
+ * @property {string} [thousandsSeparator] - The thousands separator for this form.
80
+ * @property {FormioHooks} [hooks] - The hooks for this form.
81
+ * @property {boolean} [alwaysDirty] - Always be dirty.
82
+ * @property {boolean} [skipDraftRestore] - Skip restoring a draft.
83
+ * @property {'form' | 'wizard' | 'pdf'} [display] - The display for this form.
84
+ * @property {string} [cdnUrl] - The CDN url for this form.
85
+ * @property {boolean} [flatten] - Flatten the form.
86
+ * @property {boolean} [sanitize] - Sanitize the form.
87
+ * @property {SanitizeConfig} [sanitizeConfig] - The sanitize configuration for this form.
88
+ * @property {ButtonSettings} [buttonSettings] - The button settings for this form.
89
+ * @property {object} [breadcrumbSettings] - The breadcrumb settings for this form.
90
+ * @property {boolean} [allowPrevious] - Allow the previous button (for Wizard forms).
91
+ * @property {string[]} [wizardButtonOrder] - The order of the buttons (for Wizard forms).
92
+ * @property {boolean} [showCheckboxBackground] - Show the checkbox background.
93
+ * @property {number} [zoom] - The zoom for PDF forms.
94
+ * @property {boolean} [building] - Whether the form is in builder mode.
95
+ * @property {boolean} [inputsOnly] - Whether to render inputs only (for PDF forms).
96
+ */
97
+ /**
98
+ * Form class for rendering webforms, pdfs, and wizards.
99
+ * @property {FormOptions} options - The options for this Form instance.
100
+ */
11
101
  class Form extends Element_1.default {
102
+ /**
103
+ * Creates an easy to use interface for embedding webforms, pdfs, and wizards into your application.
104
+ * @param {object} elementOrForm - The DOM element you wish to render this form within, or the form definition.
105
+ * @param {object | string | FormOptions} formOrOptions - A Form JSON schema, the URL of a hosted form, or the form options.
106
+ * @param {FormOptions} [options] - The options to create a new form instance.
107
+ * @example
108
+ * import Form from '@formio/js/Form';
109
+ * const form = new Form(document.getElementById('formio'), 'https://examples.form.io/example');
110
+ * form.build();
111
+ */
12
112
  constructor(elementOrForm, formOrOptions, options = {}) {
13
113
  let element, form, formOptions;
14
114
  if (elementOrForm instanceof HTMLElement) {
@@ -58,7 +158,7 @@ class Form extends Element_1.default {
58
158
  element.setAttribute(attr, attrs[attr]);
59
159
  }
60
160
  }
61
- (children || []).forEach(child => {
161
+ (children || []).forEach((child) => {
62
162
  element.appendChild(this.createElement(child.tag, child.attrs, child.children));
63
163
  });
64
164
  return element;
@@ -72,19 +172,23 @@ class Form extends Element_1.default {
72
172
  return;
73
173
  }
74
174
  this.loader = this.createElement('div', {
75
- 'class': 'formio-loader'
76
- }, [{
175
+ class: 'formio-loader',
176
+ }, [
177
+ {
77
178
  tag: 'div',
78
179
  attrs: {
79
- class: 'loader-wrapper'
180
+ class: 'loader-wrapper',
80
181
  },
81
- children: [{
182
+ children: [
183
+ {
82
184
  tag: 'div',
83
185
  attrs: {
84
- class: 'loader text-center'
85
- }
86
- }]
87
- }]);
186
+ class: 'loader text-center',
187
+ },
188
+ },
189
+ ],
190
+ },
191
+ ]);
88
192
  this.element.appendChild(this.loader);
89
193
  }
90
194
  else if (this.loader) {
@@ -108,7 +212,6 @@ class Form extends Element_1.default {
108
212
  return new displays_1.default.displays[display](this.element, this.options);
109
213
  }
110
214
  else {
111
- // eslint-disable-next-line new-cap
112
215
  return new displays_1.default.displays['webform'](this.element, this.options);
113
216
  }
114
217
  }
@@ -124,21 +227,21 @@ class Form extends Element_1.default {
124
227
  return {
125
228
  components: [
126
229
  {
127
- 'label': 'HTML',
128
- 'tag': 'div',
129
- 'className': 'error error-message alert alert-danger ui red message',
130
- 'attrs': [
230
+ label: 'HTML',
231
+ tag: 'div',
232
+ className: 'error error-message alert alert-danger ui red message',
233
+ attrs: [
131
234
  {
132
- 'attr': 'role',
133
- 'value': 'alert'
134
- }
235
+ attr: 'role',
236
+ value: 'alert',
237
+ },
135
238
  ],
136
- 'key': 'errorMessage',
137
- 'type': 'htmlelement',
138
- 'input': false,
139
- 'content': typeof err === 'string' ? err : err.message,
140
- }
141
- ]
239
+ key: 'errorMessage',
240
+ type: 'htmlelement',
241
+ input: false,
242
+ content: typeof err === 'string' ? err : err.message,
243
+ },
244
+ ],
142
245
  };
143
246
  }
144
247
  /**
@@ -157,7 +260,7 @@ class Form extends Element_1.default {
157
260
  const projectUrl = url.substring(0, index - 1);
158
261
  const urlParts = Formio_1.Formio.getUrlParts(projectUrl);
159
262
  // project url doesn't include subdirectories path
160
- if (!urlParts || urlParts.filter(part => !!part).length < 4) {
263
+ if (!urlParts || urlParts.filter((part) => !!part).length < 4) {
161
264
  return options;
162
265
  }
163
266
  const baseUrl = `${urlParts[1]}${urlParts[2]}`;
@@ -172,7 +275,7 @@ class Form extends Element_1.default {
172
275
  }
173
276
  /**
174
277
  * Sets the form to the JSON schema of a form.
175
- * @param {import('@formio/core').Form} formParam - The form JSON to set this form to.
278
+ * @param {import('@formio/core').Form | string} formParam - The form JSON to set this form to.
176
279
  * @returns {Promise<Webform|Wizard|PDF>} - The webform instance that was created.
177
280
  */
178
281
  setForm(formParam) {
@@ -187,9 +290,10 @@ class Form extends Element_1.default {
187
290
  error = err;
188
291
  })
189
292
  .then((submission) => {
190
- return formio.loadForm()
293
+ return (formio
294
+ .loadForm()
191
295
  // If the form returned an error, show it instead of the form.
192
- .catch(err => {
296
+ .catch((err) => {
193
297
  error = err;
194
298
  })
195
299
  .then((form) => {
@@ -199,8 +303,14 @@ class Form extends Element_1.default {
199
303
  }
200
304
  this.loading = false;
201
305
  this.instance = this.instance || this.create(form.display);
202
- const options = this.getFormInitOptions(formParam, form);
203
- this.instance.setUrl(formParam, options);
306
+ // If we're in builder mode, instance.setUrl is not a function, so just manually set the URL.
307
+ if (this.instance.setUrl) {
308
+ const options = this.getFormInitOptions(formParam, form);
309
+ this.instance.setUrl(formParam, options);
310
+ }
311
+ else {
312
+ this.instance.url = formParam;
313
+ }
204
314
  this.instance.nosubmit = false;
205
315
  this._form = this.instance.form = form;
206
316
  if (submission) {
@@ -210,7 +320,7 @@ class Form extends Element_1.default {
210
320
  throw error;
211
321
  }
212
322
  return this.instance;
213
- });
323
+ }));
214
324
  });
215
325
  }
216
326
  else {
@@ -246,13 +356,15 @@ class Form extends Element_1.default {
246
356
  * @returns {Promise<Webform|Wizard|PDF>} - The form instance that was created after changing the display.
247
357
  */
248
358
  setDisplay(display) {
249
- if ((this.display === display) && this.instance) {
359
+ if (this.display === display && this.instance) {
250
360
  return Promise.resolve(this.instance);
251
361
  }
252
362
  this.form.display = display;
253
363
  this.instance.destroy();
254
364
  this.instance = this.create(display);
255
- return this.setForm(this.form);
365
+ return this.setForm(this.form).then(() => {
366
+ this.instance.emit('setDisplay', this.form.display);
367
+ });
256
368
  }
257
369
  empty() {
258
370
  if (this.element) {
@@ -314,10 +426,11 @@ class Form extends Element_1.default {
314
426
  return Promise.reject('No DOM element for form.');
315
427
  }
316
428
  // Add temporary loader.
317
- const template = (this.options && this.options.template) ? this.options.template : 'bootstrap';
429
+ const template = this.options && this.options.template ? this.options.template : 'bootstrap';
318
430
  const loader = templates_1.default[template].loader || templates_1.default.bootstrap.loader;
319
431
  this.setContent(this.element, loader.form);
320
- return this.render().then(html => {
432
+ return this.render()
433
+ .then((html) => {
321
434
  this.setContent(this.element, html);
322
435
  return this.attach(this.element).then(() => this.instance);
323
436
  })
@@ -330,8 +443,7 @@ class Form extends Element_1.default {
330
443
  if (!this.instance) {
331
444
  return Promise.reject('Form not ready. Use form.ready promise');
332
445
  }
333
- return Promise.resolve(this.instance.render())
334
- .then((param) => {
446
+ return Promise.resolve(this.instance.render()).then((param) => {
335
447
  this.emit('render', param);
336
448
  return param;
337
449
  });
@@ -344,8 +456,7 @@ class Form extends Element_1.default {
344
456
  delete this.element.component;
345
457
  }
346
458
  this.element = element;
347
- return this.instance.attach(this.element)
348
- .then((param) => {
459
+ return this.instance.attach(this.element).then((param) => {
349
460
  this.emit('attach', param);
350
461
  return param;
351
462
  });
@@ -370,6 +481,9 @@ Formio_1.Formio.embedForm = (embed) => Form.embed(embed);
370
481
  * Formio.createForm(document.getElementById('formio'), 'https://examples.form.io/example');
371
482
  */
372
483
  Formio_1.Formio.createForm = (elementOrForm, formOrOptions, options) => {
373
- return (new Form(elementOrForm, formOrOptions, options)).ready;
484
+ return new Form(elementOrForm, formOrOptions, options).ready;
374
485
  };
375
486
  Formio_1.Formio.Form = Form;
487
+ // Export a dummy for TypeScript type resolution
488
+ const FormOptions = undefined;
489
+ exports.FormOptions = FormOptions;
@@ -44,7 +44,7 @@ export default class FormBuilder extends Form {
44
44
  /**
45
45
  * - The options to apply to the Edit Form (the form that shows inside the modal when you edit a component).
46
46
  */
47
- editForm?: any;
47
+ editForm?: import("./Form").FormOptions | undefined;
48
48
  /**
49
49
  * - The language to load into the form builder.
50
50
  */
@@ -105,7 +105,7 @@ export default class FormBuilder extends Form {
105
105
  /**
106
106
  * - The options to apply to the Edit Form (the form that shows inside the modal when you edit a component).
107
107
  */
108
- editForm?: any;
108
+ editForm?: import("./Form").FormOptions | undefined;
109
109
  /**
110
110
  * - The language to load into the form builder.
111
111
  */
@@ -160,7 +160,7 @@ export default class FormBuilder extends Form {
160
160
  /**
161
161
  * - The options to apply to the Edit Form (the form that shows inside the modal when you edit a component).
162
162
  */
163
- editForm?: any;
163
+ editForm?: import("./Form").FormOptions | undefined;
164
164
  /**
165
165
  * - The language to load into the form builder.
166
166
  */
@@ -17,14 +17,13 @@ class FormBuilder extends Form_1.default {
17
17
  constructor(element, form, options) {
18
18
  form = form || {};
19
19
  options = options || {};
20
- super(element, form, Object.assign(options, FormBuilder.options, ((Formio_1.Formio.options && Formio_1.Formio.options.builder) ? Formio_1.Formio.options.builder : {})));
20
+ super(element, form, Object.assign(options, FormBuilder.options, Formio_1.Formio.options && Formio_1.Formio.options.builder ? Formio_1.Formio.options.builder : {}));
21
21
  }
22
22
  create(display) {
23
23
  if (builders_1.default.builders[display]) {
24
24
  return new builders_1.default.builders[display](this.element, this.options);
25
25
  }
26
26
  else {
27
- // eslint-disable-next-line new-cap
28
27
  return new builders_1.default.builders['webform'](this.element, this.options);
29
28
  }
30
29
  }
@@ -56,6 +55,6 @@ exports.default = FormBuilder;
56
55
  * @returns {Promise} - When the form is instance is ready.
57
56
  */
58
57
  Formio_1.Formio.builder = (element, form, options) => {
59
- return (new FormBuilder(element, form, options)).ready;
58
+ return new FormBuilder(element, form, options).ready;
60
59
  };
61
60
  Formio_1.Formio.FormBuilder = FormBuilder;
package/lib/cjs/Formio.js CHANGED
@@ -11,8 +11,10 @@ const CDN_1 = __importDefault(require("./CDN"));
11
11
  const providers_1 = __importDefault(require("./providers"));
12
12
  sdk_1.Formio.cdn = new CDN_1.default();
13
13
  sdk_1.Formio.Providers = providers_1.default;
14
- sdk_1.Formio.version = '5.2.3';
15
- CDN_1.default.defaultCDN = sdk_1.Formio.version.includes('rc') ? 'https://cdn.test-form.io' : 'https://cdn.form.io';
14
+ sdk_1.Formio.version = '5.3.0-rc.0';
15
+ CDN_1.default.defaultCDN = sdk_1.Formio.version.includes('rc')
16
+ ? 'https://cdn.test-form.io'
17
+ : 'https://cdn.form.io';
16
18
  const isNil = (val) => val === null || val === undefined;
17
19
  sdk_1.Formio.prototype.uploadFile = function (storage, file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, uploadStartCallback, abortCallback, multipartOptions) {
18
20
  const requestArgs = {
@@ -20,13 +22,11 @@ sdk_1.Formio.prototype.uploadFile = function (storage, file, fileName, dir, prog
20
22
  method: 'upload',
21
23
  file: file,
22
24
  fileName: fileName,
23
- dir: dir
25
+ dir: dir,
24
26
  };
25
27
  fileKey = fileKey || 'file';
26
- const request = sdk_1.Formio.pluginWait('preRequest', requestArgs)
27
- .then(() => {
28
- return sdk_1.Formio.pluginGet('fileRequest', requestArgs)
29
- .then((result) => {
28
+ const request = sdk_1.Formio.pluginWait('preRequest', requestArgs).then(() => {
29
+ return sdk_1.Formio.pluginGet('fileRequest', requestArgs).then((result) => {
30
30
  if (storage && isNil(result)) {
31
31
  const Provider = providers_1.default.getProvider('storage', storage);
32
32
  if (Provider) {
@@ -37,7 +37,7 @@ sdk_1.Formio.prototype.uploadFile = function (storage, file, fileName, dir, prog
37
37
  return provider.uploadFile(file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback, multipartOptions);
38
38
  }
39
39
  else {
40
- throw ('Storage provider not found');
40
+ throw 'Storage provider not found';
41
41
  }
42
42
  }
43
43
  return result || { url: '' };
@@ -48,12 +48,10 @@ sdk_1.Formio.prototype.uploadFile = function (storage, file, fileName, dir, prog
48
48
  sdk_1.Formio.prototype.downloadFile = function (file, options) {
49
49
  const requestArgs = {
50
50
  method: 'download',
51
- file: file
51
+ file: file,
52
52
  };
53
- const request = sdk_1.Formio.pluginWait('preRequest', requestArgs)
54
- .then(() => {
55
- return sdk_1.Formio.pluginGet('fileRequest', requestArgs)
56
- .then((result) => {
53
+ const request = sdk_1.Formio.pluginWait('preRequest', requestArgs).then(() => {
54
+ return sdk_1.Formio.pluginGet('fileRequest', requestArgs).then((result) => {
57
55
  if (file.storage && isNil(result)) {
58
56
  const Provider = providers_1.default.getProvider('storage', file.storage);
59
57
  if (Provider) {
@@ -61,7 +59,7 @@ sdk_1.Formio.prototype.downloadFile = function (file, options) {
61
59
  return provider.downloadFile(file, options);
62
60
  }
63
61
  else {
64
- throw ('Storage provider not found');
62
+ throw 'Storage provider not found';
65
63
  }
66
64
  }
67
65
  return result || { url: '' };
@@ -72,12 +70,10 @@ sdk_1.Formio.prototype.downloadFile = function (file, options) {
72
70
  sdk_1.Formio.prototype.deleteFile = function (file, options) {
73
71
  const requestArgs = {
74
72
  method: 'delete',
75
- file: file
73
+ file: file,
76
74
  };
77
- const request = sdk_1.Formio.pluginWait('preRequest', requestArgs)
78
- .then(() => {
79
- return sdk_1.Formio.pluginGet('fileRequest', requestArgs)
80
- .then((result) => {
75
+ const request = sdk_1.Formio.pluginWait('preRequest', requestArgs).then(() => {
76
+ return sdk_1.Formio.pluginGet('fileRequest', requestArgs).then((result) => {
81
77
  if (file.storage && isNil(result)) {
82
78
  const Provider = providers_1.default.getProvider('storage', file.storage);
83
79
  if (Provider) {
@@ -85,7 +81,7 @@ sdk_1.Formio.prototype.deleteFile = function (file, options) {
85
81
  return provider.deleteFile(file, options);
86
82
  }
87
83
  else {
88
- throw ('Storage provider not found');
84
+ throw 'Storage provider not found';
89
85
  }
90
86
  }
91
87
  return result || { url: '' };
@@ -94,7 +90,14 @@ sdk_1.Formio.prototype.deleteFile = function (file, options) {
94
90
  return sdk_1.Formio.pluginAlter('wrapFileRequestPromise', request, requestArgs);
95
91
  };
96
92
  // Esnure we proxy the following methods to the FormioEmbed class.
97
- ['setBaseUrl', 'setApiUrl', 'setAppUrl', 'setProjectUrl', 'setPathType', 'setLicense'].forEach((fn) => {
93
+ [
94
+ 'setBaseUrl',
95
+ 'setApiUrl',
96
+ 'setAppUrl',
97
+ 'setProjectUrl',
98
+ 'setPathType',
99
+ 'setLicense',
100
+ ].forEach((fn) => {
98
101
  const baseFn = sdk_1.Formio[fn];
99
102
  sdk_1.Formio[fn] = function (arg) {
100
103
  const retVal = Embed_1.Formio[fn](arg, true);
@@ -119,8 +122,8 @@ sdk_1.Formio.addToGlobal = (global) => {
119
122
  global.Formio = sdk_1.Formio;
120
123
  }
121
124
  };
122
- if (typeof global !== 'undefined') {
123
- sdk_1.Formio.addToGlobal(global);
125
+ if (typeof globalThis !== 'undefined') {
126
+ sdk_1.Formio.addToGlobal(globalThis);
124
127
  }
125
128
  if (typeof window !== 'undefined') {
126
129
  sdk_1.Formio.addToGlobal(window);
@@ -14,7 +14,7 @@ function embed(config = {}) {
14
14
  let i = scripts.length;
15
15
  const scriptName = config.scriptName || 'formio.embed.';
16
16
  while (i--) {
17
- if (scripts[i].src && (scripts[i].src.indexOf(scriptName) !== -1)) {
17
+ if (scripts[i].src && scripts[i].src.indexOf(scriptName) !== -1) {
18
18
  thisScript = scripts[i];
19
19
  break;
20
20
  }
@@ -22,13 +22,19 @@ function embed(config = {}) {
22
22
  if (thisScript) {
23
23
  const query = {};
24
24
  const queryString = thisScript.src.replace(/^[^?]+\??/, '');
25
- queryString.replace(/\?/g, '&').split('&').forEach((item) => {
25
+ queryString
26
+ .replace(/\?/g, '&')
27
+ .split('&')
28
+ .forEach((item) => {
26
29
  query[item.split('=')[0]] = item.split('=')[1] && decodeURIComponent(item.split('=')[1]);
27
30
  });
28
31
  let scriptSrc = thisScript.src.replace(/^([^?]+).*/, '$1').split('/');
29
32
  scriptSrc.pop();
30
33
  let cdnSrc = '';
31
- if (['js', 'offline'].includes(scriptSrc[scriptSrc.length - 1])) {
34
+ if ([
35
+ 'js',
36
+ 'offline',
37
+ ].includes(scriptSrc[scriptSrc.length - 1])) {
32
38
  scriptSrc.pop();
33
39
  scriptSrc = cdnSrc = scriptSrc.join('/');
34
40
  scriptSrc += '/js';
@@ -36,42 +42,42 @@ function embed(config = {}) {
36
42
  else {
37
43
  scriptSrc = scriptSrc.join('/');
38
44
  }
39
- const debug = (query.debug === 'true' || query.debug === '1');
45
+ const debug = query.debug === 'true' || query.debug === '1';
40
46
  const renderer = debug ? 'formio.form' : 'formio.form.min';
41
47
  Embed_1.Formio.config = Object.assign({
42
- script: query.script || (`${scriptSrc}/${renderer}.js`),
43
- style: query.styles || (`${scriptSrc}/${renderer}.css`),
48
+ script: query.script || `${scriptSrc}/${renderer}.js`,
49
+ style: query.styles || `${scriptSrc}/${renderer}.css`,
44
50
  cdn: query.cdn || cdnSrc,
45
- class: (query.class || 'formio-form-wrapper'),
51
+ class: query.class || 'formio-form-wrapper',
46
52
  src: query.src,
47
53
  form: null,
48
54
  submission: null,
49
55
  project: query.project,
50
56
  base: query.base || 'https://api.form.io',
51
57
  submit: query.submit,
52
- includeLibs: (query.libs === 'true' || query.libs === '1'),
53
- noshadow: (query.shadow === 'false' || query.shadow === '0'),
58
+ includeLibs: query.libs === 'true' || query.libs === '1',
59
+ noshadow: query.shadow === 'false' || query.shadow === '0',
54
60
  template: query.template || 'bootstrap',
55
61
  debug: debug,
56
62
  config: {},
57
- redirect: (query.return || query.redirect),
58
- embedCSS: (`${scriptSrc}/formio.embed.css`),
63
+ redirect: query.return || query.redirect,
64
+ embedCSS: `${scriptSrc}/formio.embed.css`,
59
65
  success: query.success || 'Thank you for your submission!',
60
66
  before: null,
61
- after: null
67
+ after: null,
62
68
  }, config);
63
69
  if (Embed_1.Formio.config.alter) {
64
70
  Embed_1.Formio.config.alter(Embed_1.Formio.config);
65
71
  }
66
- const form = (Embed_1.Formio.config.form || Embed_1.Formio.config.src);
72
+ const form = Embed_1.Formio.config.form || Embed_1.Formio.config.src;
67
73
  if (form) {
68
74
  Embed_1.Formio.debug('Embedding Configuration', config);
69
75
  // The id for this embedded form.
70
76
  Embed_1.Formio.config.id = `formio-${Math.random().toString(36).substring(7)}`;
71
77
  Embed_1.Formio.debug('Creating form element');
72
78
  const element = Embed_1.Formio.createElement('div', {
73
- 'id': Embed_1.Formio.config.id,
74
- class: Embed_1.Formio.config.class
79
+ id: Embed_1.Formio.config.id,
80
+ class: Embed_1.Formio.config.class,
75
81
  });
76
82
  // insertAfter doesn't exist, but effect is identical.
77
83
  thisScript.parentNode.insertBefore(element, thisScript.parentNode.firstElementChild.nextSibling);
@@ -87,7 +93,7 @@ function embed(config = {}) {
87
93
  if (Embed_1.Formio.config.submit) {
88
94
  Embed_1.Formio.debug(`Sending submission to ${Embed_1.Formio.config.submit}`);
89
95
  const headers = {
90
- 'content-type': 'application/json'
96
+ 'content-type': 'application/json',
91
97
  };
92
98
  const token = Embed_1.Formio.FormioClass.getToken();
93
99
  if (token) {
@@ -99,7 +105,7 @@ function embed(config = {}) {
99
105
  method: 'POST',
100
106
  mode: 'cors',
101
107
  })
102
- .then(resp => resp.json())
108
+ .then((resp) => resp.json())
103
109
  .then((submission) => {
104
110
  Embed_1.Formio.submitDone(instance, submission);
105
111
  });
package/lib/cjs/PDF.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export default class PDF extends Webform {
2
+ constructor(element: any, options: any);
2
3
  components: any[];
3
4
  init(): void;
4
5
  render(): any;