@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
@@ -1,7 +1,7 @@
1
1
  import _ from 'lodash';
2
2
  import Field from '../_classes/field/Field';
3
3
  import Input from '../_classes/input/Input';
4
- import { componentValueTypes, eachComponent, getArrayFromComponentPath, getComponentSavedTypes, } from '../../utils';
4
+ import { componentValueTypes, eachComponent, getArrayFromComponentPath, getComponentSavedTypes } from '../../utils';
5
5
  export default class ButtonComponent extends Field {
6
6
  static schema(...extend) {
7
7
  return Input.schema({
@@ -16,7 +16,7 @@ export default class ButtonComponent extends Field {
16
16
  persistent: false,
17
17
  disableOnInvalid: false,
18
18
  theme: 'primary',
19
- dataGridLabel: true,
19
+ dataGridLabel: true
20
20
  }, ...extend);
21
21
  }
22
22
  static get builderInfo() {
@@ -26,13 +26,11 @@ export default class ButtonComponent extends Field {
26
26
  icon: 'stop',
27
27
  documentation: '/userguide/form-building/form-components#button',
28
28
  weight: 110,
29
- schema: ButtonComponent.schema(),
29
+ schema: ButtonComponent.schema()
30
30
  };
31
31
  }
32
32
  static savedValueTypes(schema) {
33
- return (getComponentSavedTypes(schema) || [
34
- componentValueTypes.boolean,
35
- ]);
33
+ return getComponentSavedTypes(schema) || [componentValueTypes.boolean];
36
34
  }
37
35
  constructor(component, options, data) {
38
36
  super(component, options, data);
@@ -44,12 +42,7 @@ export default class ButtonComponent extends Field {
44
42
  get inputInfo() {
45
43
  const info = super.elementInfo();
46
44
  info.type = 'button';
47
- info.attr.type = [
48
- 'submit',
49
- 'saveState',
50
- ].includes(this.component.action)
51
- ? 'submit'
52
- : 'button';
45
+ info.attr.type = (['submit', 'saveState'].includes(this.component.action)) ? 'submit' : 'button';
53
46
  this.component.theme = this.component.theme || 'default';
54
47
  info.attr.class = `btn btn-${this.component.theme}`;
55
48
  if (this.component.size) {
@@ -66,7 +59,7 @@ export default class ButtonComponent extends Field {
66
59
  }
67
60
  get labelInfo() {
68
61
  return {
69
- hidden: true,
62
+ hidden: true
70
63
  };
71
64
  }
72
65
  set loading(loading) {
@@ -139,9 +132,7 @@ export default class ButtonComponent extends Field {
139
132
  this.setContent(this.refs.buttonMessage, resultMessage);
140
133
  }, true);
141
134
  this.on('submitError', (message) => {
142
- const resultMessage = _.isString(message)
143
- ? this.t(message)
144
- : this.t(this.errorMessage('submitError'));
135
+ const resultMessage = _.isString(message) ? this.t(message) : this.t(this.errorMessage('submitError'));
145
136
  this.loading = false;
146
137
  this.disabled = false;
147
138
  this.hasError = true;
@@ -196,11 +187,7 @@ export default class ButtonComponent extends Field {
196
187
  const isSilent = flags && flags.silent;
197
188
  //check root validity only if disableOnInvalid is set and when it is not possible to make submission because of validation errors
198
189
  if (flags && flags.noValidate && (this.component.disableOnInvalid || this.hasError)) {
199
- isValid =
200
- flags.rootValidity ||
201
- (this.root
202
- ? this.root.validate(this.root.data, { dirty: false, silentCheck: true }).length === 0
203
- : true);
190
+ isValid = flags.rootValidity || (this.root ? (this.root.validate(this.root.data, { dirty: false, silentCheck: true }).length === 0) : true);
204
191
  flags.rootValidity = isValid;
205
192
  }
206
193
  this.isDisabledOnInvalid = this.component.disableOnInvalid && (isSilent || !isValid);
@@ -218,7 +205,7 @@ export default class ButtonComponent extends Field {
218
205
  }
219
206
  }, true);
220
207
  if (this.component.saveOnEnter) {
221
- this.root.addEventListener(this.root.element, 'keyup', (event) => {
208
+ this.root?.addEventListener(this.root.element, 'keyup', (event) => {
222
209
  if (event.keyCode === 13) {
223
210
  this.onClick.call(this, event);
224
211
  }
@@ -249,9 +236,9 @@ export default class ButtonComponent extends Field {
249
236
  return decodeURIComponent(results[1].replace(/\+/g, ' '));
250
237
  }
251
238
  // If this is an OpenID Provider initiated login, perform the click event immediately
252
- if (this.component.action === 'oauth' && this.oauthConfig && !this.oauthConfig.error) {
239
+ if ((this.component.action === 'oauth') && this.oauthConfig && !this.oauthConfig.error) {
253
240
  const iss = getUrlParameter('iss');
254
- if (iss && this.oauthConfig.authURI.indexOf(iss) === 0) {
241
+ if (iss && (this.oauthConfig.authURI.indexOf(iss) === 0)) {
255
242
  this.openOauth(this.oauthConfig);
256
243
  }
257
244
  }
@@ -263,12 +250,13 @@ export default class ButtonComponent extends Field {
263
250
  this.loadRefs(element, {
264
251
  button: 'single',
265
252
  buttonMessageContainer: 'single',
266
- buttonMessage: 'single',
253
+ buttonMessage: 'single'
267
254
  });
268
255
  const superAttach = super.attach(element);
269
256
  this.attachButton();
270
257
  return superAttach;
271
258
  }
259
+ /* eslint-enable max-statements */
272
260
  detach(element) {
273
261
  if (element && this.refs.button) {
274
262
  this.removeShortcut(this.refs.button);
@@ -295,17 +283,17 @@ export default class ButtonComponent extends Field {
295
283
  noValidate: this.component.state === 'draft',
296
284
  state: this.component.state || 'submitted',
297
285
  component: this.component,
298
- instance: this,
286
+ instance: this
299
287
  });
300
288
  break;
301
289
  case 'event':
302
290
  this.emit(this.interpolate(this.component.event), this.data);
303
- this.events.emit(this.interpolate(this.component.event), this.data);
291
+ this.events?.emit(this.interpolate(this.component.event), this.data);
304
292
  this.emit('customEvent', {
305
293
  type: this.interpolate(this.component.event),
306
294
  component: this.component,
307
295
  data: this.data,
308
- event: event,
296
+ event: event
309
297
  });
310
298
  break;
311
299
  case 'custom': {
@@ -321,20 +309,20 @@ export default class ButtonComponent extends Field {
321
309
  this.evaluate(this.component.custom, {
322
310
  form,
323
311
  flattened,
324
- components,
312
+ components
325
313
  });
326
- this.triggerChange();
314
+ this.triggerChange?.();
327
315
  break;
328
316
  }
329
317
  case 'url':
330
318
  this.loading = true;
331
319
  this.emit('requestButton', {
332
320
  component: this.component,
333
- instance: this,
321
+ instance: this
334
322
  });
335
323
  this.emit('requestUrl', {
336
324
  url: this.interpolate(this.component.url),
337
- headers: this.component.headers,
325
+ headers: this.component.headers
338
326
  });
339
327
  break;
340
328
  case 'reset':
@@ -350,12 +338,12 @@ export default class ButtonComponent extends Field {
350
338
  }
351
339
  // Display Alert if OAuth config is missing
352
340
  if (!this.oauthConfig) {
353
- this.root.setAlert('danger', 'OAuth not configured. You must configure oauth for your project before it will work.');
341
+ this.root?.setAlert('danger', 'OAuth not configured. You must configure oauth for your project before it will work.');
354
342
  break;
355
343
  }
356
344
  // Display Alert if oAuth has an error is missing
357
345
  if (this.oauthConfig.error) {
358
- this.root.setAlert('danger', `The Following Error Has Occured ${this.oauthConfig.error}`);
346
+ this.root?.setAlert('danger', `The Following Error Has Occured ${this.oauthConfig.error}`);
359
347
  break;
360
348
  }
361
349
  this.openOauth(this.oauthConfig);
@@ -363,17 +351,16 @@ export default class ButtonComponent extends Field {
363
351
  }
364
352
  }
365
353
  openOauth(settings) {
366
- if (!this.root.formio) {
354
+ if (!this.root?.formio) {
367
355
  console.warn('You must attach a Form API url to your form in order to use OAuth buttons.');
368
356
  return;
369
357
  }
358
+ /*eslint-disable camelcase */
370
359
  let params = {
371
360
  response_type: 'code',
372
361
  client_id: settings.clientId,
373
- redirect_uri: (settings.redirectURI && this.interpolate(settings.redirectURI)) ||
374
- window.location.origin ||
375
- `${window.location.protocol}//${window.location.host}`,
376
- scope: settings.scope,
362
+ redirect_uri: (settings.redirectURI && this.interpolate(settings.redirectURI)) || window.location.origin || `${window.location.protocol}//${window.location.host}`,
363
+ scope: settings.scope
377
364
  };
378
365
  if (settings.state) {
379
366
  params.state = settings.state;
@@ -382,17 +369,16 @@ export default class ButtonComponent extends Field {
382
369
  params.code_challenge = settings.code_challenge;
383
370
  params.code_challenge_method = 'S256';
384
371
  }
372
+ /*eslint-enable camelcase */
385
373
  // Needs for the correct redirection URI for the OpenID
386
374
  const originalRedirectUri = params.redirect_uri;
387
375
  // Make display optional.
388
376
  if (settings.display) {
389
377
  params.display = settings.display;
390
378
  }
391
- params = Object.keys(params)
392
- .map((key) => {
379
+ params = Object.keys(params).map(key => {
393
380
  return `${key}=${encodeURIComponent(params[key])}`;
394
- })
395
- .join('&');
381
+ }).join('&');
396
382
  const separator = settings.authURI.indexOf('?') !== -1 ? '&' : '?';
397
383
  const url = `${settings.authURI}${separator}${params}`;
398
384
  const popup = window.open(url, settings.provider, 'width=1020,height=618');
@@ -402,58 +388,52 @@ export default class ButtonComponent extends Field {
402
388
  const currentHost = window.location.host;
403
389
  if (popup && !popup.closed && popupHost === currentHost) {
404
390
  popup.close();
405
- const params = popup.location.search
406
- .substr(1)
407
- .split('&')
408
- .reduce((params, param) => {
391
+ const params = popup.location.search.substr(1).split('&').reduce((params, param) => {
409
392
  const split = param.split('=');
410
393
  params[split[0]] = split[1];
411
394
  return params;
412
395
  }, {});
413
396
  if (params.error) {
414
397
  alert(params.error_description || params.error);
415
- this.root.setAlert('danger', params.error_description || params.error);
398
+ this.root?.setAlert('danger', params.error_description || params.error);
416
399
  return;
417
400
  }
418
401
  // TODO: check for error response here
419
402
  if (settings.state !== params.state) {
420
- this.root.setAlert('danger', 'OAuth state does not match. Please try logging in again.');
403
+ this.root?.setAlert('danger', 'OAuth state does not match. Please try logging in again.');
421
404
  return;
422
405
  }
423
406
  // Depending on where the settings came from, submit to either the submission endpoint (old) or oauth endpoint (new).
424
407
  let requestPromise = Promise.resolve();
425
- if (_.has(this, 'root.form.config.oauth') &&
426
- this.root.form.config.oauth[this.component.oauthProvider]) {
408
+ if (_.has(this, 'root.form.config.oauth') && this.root?.form.config.oauth[this.component.oauthProvider]) {
427
409
  params.provider = settings.provider;
428
410
  params.redirectURI = originalRedirectUri;
429
411
  // Needs for the exclude oAuth Actions that not related to this button
430
412
  params.triggeredBy = this.oauthComponentPath;
431
- requestPromise = this.root.formio.makeRequest('oauth', `${this.root.formio.projectUrl}/oauth2`, 'POST', params);
413
+ requestPromise = this.root?.formio.makeRequest('oauth', `${this.root?.formio.projectUrl}/oauth2`, 'POST', params);
432
414
  }
433
415
  else {
434
416
  const submission = { data: {}, oauth: {} };
435
417
  submission.oauth[settings.provider] = params;
436
418
  submission.oauth[settings.provider].redirectURI = originalRedirectUri;
437
419
  if (settings.logoutURI) {
438
- this.root.formio.oauthLogoutURI(settings.logoutURI);
420
+ this.root?.formio.oauthLogoutURI(settings.logoutURI);
439
421
  }
440
422
  // Needs for the exclude oAuth Actions that not related to this button
441
423
  submission.oauth[settings.provider].triggeredBy = this.oauthComponentPath;
442
- requestPromise = this.root.formio.saveSubmission(submission);
424
+ requestPromise = this.root?.formio.saveSubmission(submission);
443
425
  }
444
- requestPromise
445
- .then((result) => {
446
- this.root.onSubmit(result, true);
426
+ requestPromise.then((result) => {
427
+ this.root?.onSubmit(result, true);
447
428
  })
448
429
  .catch((err) => {
449
- this.root.onSubmissionError(err);
430
+ this.root?.onSubmissionError(err);
450
431
  });
451
432
  }
452
433
  }
453
434
  catch (error) {
454
- if (error.name !== 'SecurityError' &&
455
- (error.name !== 'Error' || error.message !== 'Permission denied')) {
456
- this.root.setAlert('danger', error.message || error);
435
+ if (error.name !== 'SecurityError' && (error.name !== 'Error' || error.message !== 'Permission denied')) {
436
+ this.root?.setAlert('danger', error.message || error);
457
437
  }
458
438
  }
459
439
  if (!popup || popup.closed || popup.closed === undefined) {
@@ -463,10 +443,7 @@ export default class ButtonComponent extends Field {
463
443
  }
464
444
  get oauthComponentPath() {
465
445
  const pathArray = getArrayFromComponentPath(this.path);
466
- return _.chain(pathArray)
467
- .filter((pathPart) => !_.isNumber(pathPart))
468
- .join('.')
469
- .value();
446
+ return _.chain(pathArray).filter(pathPart => !_.isNumber(pathPart)).join('.').value();
470
447
  }
471
448
  focus() {
472
449
  if (this.refs.button) {
@@ -55,12 +55,7 @@ export default [
55
55
  ],
56
56
  },
57
57
  conditional: {
58
- json: {
59
- '===': [
60
- { var: 'data.action' },
61
- 'oauth',
62
- ],
63
- },
58
+ json: { '===': [{ var: 'data.action' }, 'oauth'] },
64
59
  },
65
60
  },
66
61
  {
@@ -72,12 +67,7 @@ export default [
72
67
  placeholder: 'submitted',
73
68
  input: true,
74
69
  conditional: {
75
- json: {
76
- '===': [
77
- { var: 'data.action' },
78
- 'saveState',
79
- ],
80
- },
70
+ json: { '===': [{ var: 'data.action' }, 'saveState'] },
81
71
  },
82
72
  },
83
73
  {
@@ -89,12 +79,7 @@ export default [
89
79
  weight: 113,
90
80
  tooltip: 'Use the Enter key to submit form.',
91
81
  conditional: {
92
- json: {
93
- '===': [
94
- { var: 'data.action' },
95
- 'submit',
96
- ],
97
- },
82
+ json: { '===': [{ var: 'data.action' }, 'submit'] },
98
83
  },
99
84
  },
100
85
  {
@@ -106,12 +91,7 @@ export default [
106
91
  weight: 115,
107
92
  tooltip: 'When the button is pressed, show any validation errors on the form.',
108
93
  conditional: {
109
- json: {
110
- '!==': [
111
- { var: 'data.action' },
112
- 'submit',
113
- ],
114
- },
94
+ json: { '!==': [{ var: 'data.action' }, 'submit'] },
115
95
  },
116
96
  },
117
97
  {
@@ -122,12 +102,7 @@ export default [
122
102
  weight: 120,
123
103
  tooltip: 'The event to fire when the button is clicked.',
124
104
  conditional: {
125
- json: {
126
- '===': [
127
- { var: 'data.action' },
128
- 'event',
129
- ],
130
- },
105
+ json: { '===': [{ var: 'data.action' }, 'event'] },
131
106
  },
132
107
  },
133
108
  {
@@ -140,12 +115,7 @@ export default [
140
115
  tooltip: 'The URL where the submission will be sent.',
141
116
  placeholder: 'https://example.form.io',
142
117
  conditional: {
143
- json: {
144
- '===': [
145
- { var: 'data.action' },
146
- 'url',
147
- ],
148
- },
118
+ json: { '===': [{ var: 'data.action' }, 'url'] },
149
119
  },
150
120
  },
151
121
  {
@@ -168,15 +138,10 @@ export default [
168
138
  label: 'Value',
169
139
  input: true,
170
140
  type: 'textfield',
171
- },
141
+ }
172
142
  ],
173
143
  conditional: {
174
- json: {
175
- '===': [
176
- { var: 'data.action' },
177
- 'url',
178
- ],
179
- },
144
+ json: { '===': [{ var: 'data.action' }, 'url'] },
180
145
  },
181
146
  },
182
147
  {
@@ -190,12 +155,7 @@ export default [
190
155
  weight: 120,
191
156
  placeholder: "data['mykey'] = data['anotherKey'];",
192
157
  conditional: {
193
- json: {
194
- '===': [
195
- { var: 'data.action' },
196
- 'custom',
197
- ],
198
- },
158
+ json: { '===': [{ var: 'data.action' }, 'custom'] },
199
159
  },
200
160
  },
201
161
  {
@@ -43,7 +43,7 @@ export default class CheckBoxComponent extends Field {
43
43
  attach(element: any): Promise<void>;
44
44
  input: any;
45
45
  detach(element: any): void;
46
- get emptyValue(): false | "";
46
+ get emptyValue(): false | null;
47
47
  getValueAt(index: any): any;
48
48
  get checked(): boolean;
49
49
  setCheckedState(value: any): any;
@@ -11,15 +11,15 @@ export default function (...extend) {
11
11
  return Components.baseEditForm([
12
12
  {
13
13
  key: 'data',
14
- components: CheckboxEditData,
14
+ components: CheckboxEditData
15
15
  },
16
16
  {
17
17
  key: 'display',
18
- components: CheckboxEditDisplay,
18
+ components: CheckboxEditDisplay
19
19
  },
20
20
  {
21
21
  key: 'validation',
22
- components: CheckboxEditValidation,
22
+ components: CheckboxEditValidation
23
23
  },
24
24
  ], ...extend);
25
25
  }
@@ -11,7 +11,7 @@ export default class CheckBoxComponent extends Field {
11
11
  dataGridLabel: true,
12
12
  labelPosition: 'right',
13
13
  value: '',
14
- name: '',
14
+ name: ''
15
15
  }, ...extend);
16
16
  }
17
17
  static get builderInfo() {
@@ -21,7 +21,7 @@ export default class CheckBoxComponent extends Field {
21
21
  icon: 'check-square',
22
22
  documentation: '/userguide/form-building/form-components#check-box',
23
23
  weight: 50,
24
- schema: CheckBoxComponent.schema(),
24
+ schema: CheckBoxComponent.schema()
25
25
  };
26
26
  }
27
27
  static get serverConditionSettings() {
@@ -30,9 +30,7 @@ export default class CheckBoxComponent extends Field {
30
30
  static get conditionOperatorsSettings() {
31
31
  return {
32
32
  ...super.conditionOperatorsSettings,
33
- operators: [
34
- 'isEqual',
35
- ],
33
+ operators: ['isEqual'],
36
34
  valueComponent() {
37
35
  return {
38
36
  valueType: 'boolean',
@@ -40,11 +38,11 @@ export default class CheckBoxComponent extends Field {
40
38
  values: [
41
39
  { label: 'Checked', value: 'true' },
42
40
  { label: 'Not Checked', value: 'false' },
43
- ],
41
+ ]
44
42
  },
45
- type: 'select',
43
+ type: 'select'
46
44
  };
47
- },
45
+ }
48
46
  };
49
47
  }
50
48
  static savedValueTypes(schema) {
@@ -54,23 +52,19 @@ export default class CheckBoxComponent extends Field {
54
52
  return types;
55
53
  }
56
54
  if (schema.inputType === 'radio') {
57
- return [
58
- componentValueTypes.string,
59
- ];
55
+ return [componentValueTypes.string];
60
56
  }
61
- return [
62
- componentValueTypes.boolean,
63
- ];
57
+ return [componentValueTypes.boolean];
64
58
  }
65
59
  get defaultSchema() {
66
60
  return CheckBoxComponent.schema();
67
61
  }
68
62
  get labelClass() {
69
63
  let className = '';
70
- if (this.isInputComponent &&
71
- !this.options.inputsOnly &&
72
- this.component.validate &&
73
- this.component.validate.required) {
64
+ if (this.isInputComponent
65
+ && !this.options.inputsOnly
66
+ && this.component.validate
67
+ && this.component.validate.required) {
74
68
  className += ' field-required';
75
69
  }
76
70
  return `${className}`;
@@ -94,16 +88,14 @@ export default class CheckBoxComponent extends Field {
94
88
  }
95
89
  get labelInfo() {
96
90
  return {
97
- hidden: true,
91
+ hidden: true
98
92
  };
99
93
  }
100
94
  render() {
101
95
  return super.render(this.renderTemplate('checkbox', {
102
96
  input: this.inputInfo,
103
97
  checked: this.checked,
104
- tooltip: this.interpolate(this.t(this.component.tooltip) || '', {
105
- _userInput: true,
106
- }).replace(/(?:\r\n|\r|\n)/g, '<br />'),
98
+ tooltip: this.interpolate(this.t(this.component.tooltip) || '', { _userInput: true }).replace(/(?:\r\n|\r|\n)/g, '<br />')
107
99
  }));
108
100
  }
109
101
  attach(element) {
@@ -111,7 +103,7 @@ export default class CheckBoxComponent extends Field {
111
103
  this.input = this.refs.input[0];
112
104
  if (this.refs.input) {
113
105
  this.addEventListener(this.input, this.inputInfo.changeEvent, () => this.updateValue(null, {
114
- modified: true,
106
+ modified: true
115
107
  }));
116
108
  this.addShortcut(this.input);
117
109
  }
@@ -124,7 +116,7 @@ export default class CheckBoxComponent extends Field {
124
116
  super.detach();
125
117
  }
126
118
  get emptyValue() {
127
- return this.component.inputType === 'radio' ? '' : false;
119
+ return this.component.inputType === 'radio' ? null : false;
128
120
  }
129
121
  isEmpty(value = this.dataValue) {
130
122
  return super.isEmpty(value) || value === false;
@@ -144,12 +136,12 @@ export default class CheckBoxComponent extends Field {
144
136
  return value ? this.setCheckedState(value) : this.setCheckedState(this.dataValue);
145
137
  }
146
138
  else {
147
- return value === '' ? this.dataValue : !!value;
139
+ return (value === '') ? this.dataValue : !!value;
148
140
  }
149
141
  }
150
142
  get checked() {
151
143
  if (this.component.name) {
152
- return this.dataValue === this.component.value;
144
+ return (this.dataValue === this.component.value);
153
145
  }
154
146
  return !!this.dataValue;
155
147
  }
@@ -158,8 +150,8 @@ export default class CheckBoxComponent extends Field {
158
150
  return;
159
151
  }
160
152
  if (this.component.name) {
161
- this.input.value = value === this.component.value ? this.component.value : 0;
162
- this.input.checked = value === this.component.value ? 1 : 0;
153
+ this.input.value = (value === this.component.value) ? this.component.value : 0;
154
+ this.input.checked = (value === this.component.value) ? 1 : 0;
163
155
  }
164
156
  else if (value === 'on') {
165
157
  this.input.value = 1;
@@ -199,7 +191,7 @@ export default class CheckBoxComponent extends Field {
199
191
  }
200
192
  updateValue(value, flags) {
201
193
  // If this is a radio and is alredy checked, uncheck it.
202
- if (this.component.name && flags.modified && this.dataValue === this.component.value) {
194
+ if (this.component.name && flags.modified && (this.dataValue === this.component.value)) {
203
195
  this.input.checked = 0;
204
196
  this.input.value = 0;
205
197
  this.dataValue = '';
@@ -1,6 +1,6 @@
1
1
  export default [
2
2
  {
3
3
  key: 'multiple',
4
- ignore: true,
4
+ ignore: true
5
5
  },
6
6
  ];
@@ -11,7 +11,7 @@ export default [
11
11
  },
12
12
  {
13
13
  key: 'labelMargin',
14
- ignore: true,
14
+ ignore: true
15
15
  },
16
16
  {
17
17
  key: 'placeholder',
@@ -57,12 +57,7 @@ export default [
57
57
  tooltip: 'The key used to trigger the radio button toggle.',
58
58
  weight: 420,
59
59
  conditional: {
60
- json: {
61
- '===': [
62
- { var: 'data.inputType' },
63
- 'radio',
64
- ],
65
- },
60
+ json: { '===': [{ var: 'data.inputType' }, 'radio'] },
66
61
  },
67
62
  },
68
63
  {
@@ -73,12 +68,7 @@ export default [
73
68
  tooltip: 'The value used with this radio button.',
74
69
  weight: 430,
75
70
  conditional: {
76
- json: {
77
- '===': [
78
- { var: 'data.inputType' },
79
- 'radio',
80
- ],
81
- },
71
+ json: { '===': [{ var: 'data.inputType' }, 'radio'] },
82
72
  },
83
73
  },
84
74
  ];
@@ -1,10 +1,10 @@
1
1
  export default [
2
2
  {
3
3
  key: 'validateOn',
4
- ignore: true,
4
+ ignore: true
5
5
  },
6
6
  {
7
7
  key: 'unique',
8
- ignore: true,
8
+ ignore: true
9
9
  },
10
10
  ];
@@ -9,7 +9,7 @@ export default function (...extend) {
9
9
  return nestedComponentForm([
10
10
  {
11
11
  key: 'display',
12
- components: ColumnsEditDisplay,
12
+ components: ColumnsEditDisplay
13
13
  },
14
14
  ], ...extend);
15
15
  }