@formio/js 5.0.0-dev.5610.da13e39 → 5.0.0-dev.5613.3476921

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 (448) hide show
  1. package/dist/formio.embed.js +1 -1
  2. package/dist/formio.embed.min.js +1 -1
  3. package/dist/formio.embed.min.js.LICENSE.txt +1 -1
  4. package/dist/formio.form.js +1199 -651
  5. package/dist/formio.form.min.js +1 -1
  6. package/dist/formio.form.min.js.LICENSE.txt +11 -3
  7. package/dist/formio.full.js +919 -691
  8. package/dist/formio.full.min.js +1 -1
  9. package/dist/formio.full.min.js.LICENSE.txt +11 -3
  10. package/dist/formio.js +16 -16
  11. package/dist/formio.min.js +1 -1
  12. package/dist/formio.min.js.LICENSE.txt +1 -1
  13. package/dist/formio.utils.js +493 -1861
  14. package/dist/formio.utils.min.js +1 -1
  15. package/dist/formio.utils.min.js.LICENSE.txt +2 -12
  16. package/lib/cjs/Element.d.ts +96 -86
  17. package/lib/cjs/Element.js +78 -68
  18. package/lib/cjs/Form.d.ts +36 -365
  19. package/lib/cjs/Form.js +64 -50
  20. package/lib/cjs/FormBuilder.d.ts +2 -187
  21. package/lib/cjs/FormBuilder.js +8 -30
  22. package/lib/cjs/PDF.d.ts +13 -11
  23. package/lib/cjs/PDF.js +8 -6
  24. package/lib/cjs/Webform.d.ts +139 -180
  25. package/lib/cjs/Webform.js +298 -313
  26. package/lib/cjs/WebformBuilder.d.ts +14 -16
  27. package/lib/cjs/WebformBuilder.js +11 -17
  28. package/lib/cjs/Wizard.d.ts +21 -31
  29. package/lib/cjs/Wizard.js +19 -42
  30. package/lib/cjs/WizardBuilder.d.ts +1 -1
  31. package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.d.ts +5 -8
  32. package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.js +3 -6
  33. package/lib/cjs/components/Components.d.ts +4 -4
  34. package/lib/cjs/components/Components.js +3 -3
  35. package/lib/cjs/components/_classes/component/Component.d.ts +269 -502
  36. package/lib/cjs/components/_classes/component/Component.form.d.ts +3 -6
  37. package/lib/cjs/components/_classes/component/Component.form.js +0 -5
  38. package/lib/cjs/components/_classes/component/Component.js +189 -433
  39. package/lib/cjs/components/_classes/component/editForm/Component.edit.display.js +8 -0
  40. package/lib/cjs/components/_classes/component/editForm/Component.edit.validation.js +2 -2
  41. package/lib/cjs/components/_classes/component/editForm/utils.js +2 -2
  42. package/lib/cjs/components/_classes/field/Field.d.ts +2 -11
  43. package/lib/cjs/components/_classes/field/Field.js +1 -13
  44. package/lib/cjs/components/_classes/input/Input.d.ts +3 -4
  45. package/lib/cjs/components/_classes/input/Input.js +2 -2
  46. package/lib/cjs/components/_classes/list/ListComponent.d.ts +2 -2
  47. package/lib/cjs/components/_classes/list/ListComponent.form.d.ts +3 -6
  48. package/lib/cjs/components/_classes/list/ListComponent.form.js +0 -5
  49. package/lib/cjs/components/_classes/multivalue/Multivalue.d.ts +12 -43
  50. package/lib/cjs/components/_classes/multivalue/Multivalue.js +3 -37
  51. package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +67 -163
  52. package/lib/cjs/components/_classes/nested/NestedComponent.form.d.ts +3 -6
  53. package/lib/cjs/components/_classes/nested/NestedComponent.form.js +0 -5
  54. package/lib/cjs/components/_classes/nested/NestedComponent.js +54 -175
  55. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +2 -2
  56. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +1 -1
  57. package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.d.ts +1 -7
  58. package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +3 -2
  59. package/lib/cjs/components/address/Address.d.ts +2 -4
  60. package/lib/cjs/components/address/Address.form.d.ts +3 -6
  61. package/lib/cjs/components/address/Address.form.js +0 -5
  62. package/lib/cjs/components/button/Button.d.ts +12 -3
  63. package/lib/cjs/components/button/Button.form.d.ts +3 -6
  64. package/lib/cjs/components/button/Button.form.js +0 -5
  65. package/lib/cjs/components/button/Button.js +0 -5
  66. package/lib/cjs/components/checkbox/Checkbox.d.ts +27 -4
  67. package/lib/cjs/components/checkbox/Checkbox.form.d.ts +3 -6
  68. package/lib/cjs/components/checkbox/Checkbox.form.js +0 -5
  69. package/lib/cjs/components/columns/Columns.d.ts +2 -3
  70. package/lib/cjs/components/columns/Columns.form.d.ts +3 -6
  71. package/lib/cjs/components/columns/Columns.form.js +0 -5
  72. package/lib/cjs/components/columns/Columns.js +1 -1
  73. package/lib/cjs/components/container/Container.form.d.ts +3 -6
  74. package/lib/cjs/components/container/Container.form.js +0 -5
  75. package/lib/cjs/components/content/Content.d.ts +1 -2
  76. package/lib/cjs/components/content/Content.form.d.ts +3 -6
  77. package/lib/cjs/components/content/Content.form.js +0 -5
  78. package/lib/cjs/components/currency/Currency.form.d.ts +3 -6
  79. package/lib/cjs/components/currency/Currency.form.js +0 -5
  80. package/lib/cjs/components/currency/Currency.js +2 -1
  81. package/lib/cjs/components/datagrid/DataGrid.d.ts +7 -8
  82. package/lib/cjs/components/datagrid/DataGrid.form.d.ts +3 -6
  83. package/lib/cjs/components/datagrid/DataGrid.form.js +0 -5
  84. package/lib/cjs/components/datagrid/DataGrid.js +5 -5
  85. package/lib/cjs/components/datamap/DataMap.d.ts +0 -1
  86. package/lib/cjs/components/datamap/DataMap.form.d.ts +3 -6
  87. package/lib/cjs/components/datamap/DataMap.form.js +0 -5
  88. package/lib/cjs/components/datetime/DateTime.d.ts +14 -0
  89. package/lib/cjs/components/datetime/DateTime.form.d.ts +3 -6
  90. package/lib/cjs/components/datetime/DateTime.form.js +0 -5
  91. package/lib/cjs/components/datetime/editForm/DateTime.edit.date.js +2 -2
  92. package/lib/cjs/components/day/Day.d.ts +48 -22
  93. package/lib/cjs/components/day/Day.form.d.ts +3 -6
  94. package/lib/cjs/components/day/Day.form.js +0 -5
  95. package/lib/cjs/components/day/Day.js +20 -15
  96. package/lib/cjs/components/editgrid/EditGrid.d.ts +3 -7
  97. package/lib/cjs/components/editgrid/EditGrid.form.d.ts +3 -6
  98. package/lib/cjs/components/editgrid/EditGrid.form.js +0 -5
  99. package/lib/cjs/components/editgrid/EditGrid.js +3 -3
  100. package/lib/cjs/components/editgrid/editForm/EditGrid.edit.display.js +5 -2
  101. package/lib/cjs/components/editgrid/editForm/EditGrid.edit.templates.js +9 -6
  102. package/lib/cjs/components/email/Email.form.d.ts +3 -6
  103. package/lib/cjs/components/email/Email.form.js +0 -5
  104. package/lib/cjs/components/fieldset/Fieldset.form.d.ts +3 -6
  105. package/lib/cjs/components/fieldset/Fieldset.form.js +0 -5
  106. package/lib/cjs/components/file/File.d.ts +22 -9
  107. package/lib/cjs/components/file/File.form.d.ts +3 -6
  108. package/lib/cjs/components/file/File.form.js +0 -5
  109. package/lib/cjs/components/form/Form.d.ts +20 -31
  110. package/lib/cjs/components/form/Form.form.d.ts +3 -6
  111. package/lib/cjs/components/form/Form.form.js +0 -5
  112. package/lib/cjs/components/form/Form.js +10 -13
  113. package/lib/cjs/components/hidden/Hidden.d.ts +11 -1
  114. package/lib/cjs/components/hidden/Hidden.form.d.ts +3 -6
  115. package/lib/cjs/components/hidden/Hidden.form.js +0 -5
  116. package/lib/cjs/components/hidden/Hidden.js +2 -1
  117. package/lib/cjs/components/html/HTML.d.ts +1 -2
  118. package/lib/cjs/components/html/HTML.form.d.ts +3 -6
  119. package/lib/cjs/components/html/HTML.form.js +0 -5
  120. package/lib/cjs/components/number/Number.d.ts +17 -3
  121. package/lib/cjs/components/number/Number.form.d.ts +3 -6
  122. package/lib/cjs/components/number/Number.form.js +0 -5
  123. package/lib/cjs/components/number/Number.js +2 -1
  124. package/lib/cjs/components/panel/Panel.form.d.ts +3 -6
  125. package/lib/cjs/components/panel/Panel.form.js +0 -5
  126. package/lib/cjs/components/panel/Panel.js +1 -0
  127. package/lib/cjs/components/password/Password.form.d.ts +3 -6
  128. package/lib/cjs/components/password/Password.form.js +0 -5
  129. package/lib/cjs/components/phonenumber/PhoneNumber.form.d.ts +3 -6
  130. package/lib/cjs/components/phonenumber/PhoneNumber.form.js +0 -5
  131. package/lib/cjs/components/radio/Radio.d.ts +26 -3
  132. package/lib/cjs/components/radio/Radio.form.d.ts +3 -6
  133. package/lib/cjs/components/radio/Radio.form.js +0 -5
  134. package/lib/cjs/components/radio/Radio.js +4 -3
  135. package/lib/cjs/components/recaptcha/ReCaptcha.d.ts +1 -1
  136. package/lib/cjs/components/recaptcha/ReCaptcha.form.d.ts +3 -5
  137. package/lib/cjs/components/recaptcha/ReCaptcha.form.js +0 -4
  138. package/lib/cjs/components/select/Select.d.ts +39 -16
  139. package/lib/cjs/components/select/Select.form.d.ts +3 -6
  140. package/lib/cjs/components/select/Select.form.js +0 -5
  141. package/lib/cjs/components/select/Select.js +16 -13
  142. package/lib/cjs/components/selectboxes/SelectBoxes.d.ts +17 -2
  143. package/lib/cjs/components/selectboxes/SelectBoxes.form.d.ts +3 -6
  144. package/lib/cjs/components/selectboxes/SelectBoxes.form.js +0 -5
  145. package/lib/cjs/components/selectboxes/SelectBoxes.js +9 -7
  146. package/lib/cjs/components/signature/Signature.d.ts +14 -1
  147. package/lib/cjs/components/signature/Signature.form.d.ts +3 -6
  148. package/lib/cjs/components/signature/Signature.form.js +0 -5
  149. package/lib/cjs/components/survey/Survey.d.ts +15 -3
  150. package/lib/cjs/components/survey/Survey.form.d.ts +3 -6
  151. package/lib/cjs/components/survey/Survey.form.js +0 -5
  152. package/lib/cjs/components/table/Table.d.ts +1 -2
  153. package/lib/cjs/components/table/Table.form.d.ts +3 -6
  154. package/lib/cjs/components/table/Table.form.js +0 -5
  155. package/lib/cjs/components/tabs/Tabs.d.ts +4 -4
  156. package/lib/cjs/components/tabs/Tabs.form.d.ts +3 -6
  157. package/lib/cjs/components/tabs/Tabs.form.js +0 -5
  158. package/lib/cjs/components/tabs/Tabs.js +2 -1
  159. package/lib/cjs/components/tags/Tags.d.ts +14 -0
  160. package/lib/cjs/components/tags/Tags.form.d.ts +3 -6
  161. package/lib/cjs/components/tags/Tags.form.js +0 -5
  162. package/lib/cjs/components/textarea/TextArea.d.ts +9 -4
  163. package/lib/cjs/components/textarea/TextArea.form.d.ts +3 -6
  164. package/lib/cjs/components/textarea/TextArea.form.js +0 -5
  165. package/lib/cjs/components/textarea/TextArea.js +2 -2
  166. package/lib/cjs/components/textfield/TextField.d.ts +30 -14
  167. package/lib/cjs/components/textfield/TextField.form.d.ts +3 -6
  168. package/lib/cjs/components/textfield/TextField.form.js +0 -5
  169. package/lib/cjs/components/textfield/TextField.js +16 -13
  170. package/lib/cjs/components/time/Time.form.d.ts +3 -6
  171. package/lib/cjs/components/time/Time.form.js +0 -5
  172. package/lib/cjs/components/unknown/Unknown.form.d.ts +34 -5
  173. package/lib/cjs/components/unknown/Unknown.form.js +0 -4
  174. package/lib/cjs/components/url/Url.form.d.ts +3 -6
  175. package/lib/cjs/components/url/Url.form.js +0 -5
  176. package/lib/cjs/components/well/Well.form.d.ts +3 -6
  177. package/lib/cjs/components/well/Well.form.js +0 -5
  178. package/lib/cjs/formio.embed.d.ts +2 -1
  179. package/lib/cjs/formio.embed.js +100 -2
  180. package/lib/cjs/formio.form.d.ts +4 -11
  181. package/lib/cjs/formio.form.js +5 -13
  182. package/lib/cjs/providers/Providers.d.ts +5 -36
  183. package/lib/cjs/providers/Providers.js +0 -29
  184. package/lib/cjs/providers/address/AddressProvider.d.ts +12 -131
  185. package/lib/cjs/providers/address/AddressProvider.js +2 -88
  186. package/lib/cjs/providers/address/AzureAddressProvider.d.ts +1 -48
  187. package/lib/cjs/providers/address/AzureAddressProvider.js +0 -37
  188. package/lib/cjs/providers/address/CustomAddressProvider.d.ts +4 -27
  189. package/lib/cjs/providers/address/CustomAddressProvider.js +0 -34
  190. package/lib/cjs/providers/address/GoogleAddressProvider.d.ts +6 -130
  191. package/lib/cjs/providers/address/GoogleAddressProvider.js +0 -72
  192. package/lib/cjs/providers/address/NominatimAddressProvider.d.ts +7 -32
  193. package/lib/cjs/providers/address/NominatimAddressProvider.js +0 -33
  194. package/lib/cjs/providers/address/index.d.ts +1 -3
  195. package/lib/cjs/providers/processor/fileProcessor.d.ts +1 -7
  196. package/lib/cjs/providers/processor/fileProcessor.js +0 -6
  197. package/lib/cjs/providers/storage/azure.d.ts +13 -6
  198. package/lib/cjs/providers/storage/azure.js +0 -5
  199. package/lib/cjs/providers/storage/base64.d.ts +6 -5
  200. package/lib/cjs/providers/storage/base64.js +0 -4
  201. package/lib/cjs/providers/storage/dropbox.d.ts +4 -6
  202. package/lib/cjs/providers/storage/dropbox.js +0 -5
  203. package/lib/cjs/providers/storage/googleDrive.d.ts +5 -7
  204. package/lib/cjs/providers/storage/googleDrive.js +0 -6
  205. package/lib/cjs/providers/storage/indexeddb.d.ts +7 -5
  206. package/lib/cjs/providers/storage/indexeddb.js +0 -4
  207. package/lib/cjs/providers/storage/s3.d.ts +20 -6
  208. package/lib/cjs/providers/storage/s3.js +0 -5
  209. package/lib/cjs/providers/storage/url.d.ts +7 -6
  210. package/lib/cjs/providers/storage/url.js +0 -10
  211. package/lib/cjs/providers/storage/util.d.ts +1 -24
  212. package/lib/cjs/providers/storage/util.js +0 -18
  213. package/lib/cjs/templates/Templates.d.ts +0 -1
  214. package/lib/cjs/translations/en.d.ts +1 -0
  215. package/lib/cjs/translations/en.js +1 -0
  216. package/lib/cjs/utils/Evaluator.d.ts +3 -6
  217. package/lib/cjs/utils/Evaluator.js +20 -11
  218. package/lib/cjs/utils/builder.d.ts +7 -9
  219. package/lib/cjs/utils/builder.js +5 -10
  220. package/lib/cjs/utils/calendarUtils.d.ts +13 -7
  221. package/lib/cjs/utils/calendarUtils.js +17 -10
  222. package/lib/cjs/utils/formUtils.d.ts +171 -43
  223. package/lib/cjs/utils/formUtils.js +569 -38
  224. package/lib/cjs/utils/utils.d.ts +216 -362
  225. package/lib/cjs/utils/utils.js +224 -331
  226. package/lib/cjs/widgets/CalendarWidget.d.ts +10 -9
  227. package/lib/cjs/widgets/CalendarWidget.js +11 -9
  228. package/lib/mjs/Element.d.ts +96 -86
  229. package/lib/mjs/Element.js +78 -68
  230. package/lib/mjs/Form.d.ts +36 -365
  231. package/lib/mjs/Form.js +57 -140
  232. package/lib/mjs/FormBuilder.d.ts +2 -187
  233. package/lib/mjs/FormBuilder.js +8 -32
  234. package/lib/mjs/PDF.d.ts +13 -11
  235. package/lib/mjs/PDF.js +8 -6
  236. package/lib/mjs/Webform.d.ts +139 -180
  237. package/lib/mjs/Webform.js +310 -325
  238. package/lib/mjs/WebformBuilder.d.ts +14 -16
  239. package/lib/mjs/WebformBuilder.js +11 -16
  240. package/lib/mjs/Wizard.d.ts +21 -31
  241. package/lib/mjs/Wizard.js +18 -41
  242. package/lib/mjs/WizardBuilder.d.ts +1 -1
  243. package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.d.ts +5 -8
  244. package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.js +3 -6
  245. package/lib/mjs/components/Components.d.ts +4 -4
  246. package/lib/mjs/components/Components.js +3 -3
  247. package/lib/mjs/components/_classes/component/Component.d.ts +269 -502
  248. package/lib/mjs/components/_classes/component/Component.form.d.ts +3 -6
  249. package/lib/mjs/components/_classes/component/Component.form.js +0 -5
  250. package/lib/mjs/components/_classes/component/Component.js +189 -433
  251. package/lib/mjs/components/_classes/component/editForm/Component.edit.display.js +8 -0
  252. package/lib/mjs/components/_classes/component/editForm/Component.edit.validation.js +1 -1
  253. package/lib/mjs/components/_classes/component/editForm/utils.js +1 -1
  254. package/lib/mjs/components/_classes/field/Field.d.ts +2 -11
  255. package/lib/mjs/components/_classes/field/Field.js +1 -13
  256. package/lib/mjs/components/_classes/input/Input.d.ts +3 -4
  257. package/lib/mjs/components/_classes/input/Input.js +2 -2
  258. package/lib/mjs/components/_classes/list/ListComponent.d.ts +2 -2
  259. package/lib/mjs/components/_classes/list/ListComponent.form.d.ts +3 -6
  260. package/lib/mjs/components/_classes/list/ListComponent.form.js +0 -5
  261. package/lib/mjs/components/_classes/multivalue/Multivalue.d.ts +12 -43
  262. package/lib/mjs/components/_classes/multivalue/Multivalue.js +3 -37
  263. package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +67 -163
  264. package/lib/mjs/components/_classes/nested/NestedComponent.form.d.ts +3 -6
  265. package/lib/mjs/components/_classes/nested/NestedComponent.form.js +0 -5
  266. package/lib/mjs/components/_classes/nested/NestedComponent.js +54 -175
  267. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +2 -2
  268. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +1 -1
  269. package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.d.ts +1 -7
  270. package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +3 -2
  271. package/lib/mjs/components/address/Address.d.ts +2 -4
  272. package/lib/mjs/components/address/Address.form.d.ts +3 -6
  273. package/lib/mjs/components/address/Address.form.js +0 -5
  274. package/lib/mjs/components/button/Button.d.ts +12 -3
  275. package/lib/mjs/components/button/Button.form.d.ts +3 -6
  276. package/lib/mjs/components/button/Button.form.js +0 -5
  277. package/lib/mjs/components/button/Button.js +0 -5
  278. package/lib/mjs/components/checkbox/Checkbox.d.ts +27 -4
  279. package/lib/mjs/components/checkbox/Checkbox.form.d.ts +3 -6
  280. package/lib/mjs/components/checkbox/Checkbox.form.js +0 -5
  281. package/lib/mjs/components/columns/Columns.d.ts +2 -3
  282. package/lib/mjs/components/columns/Columns.form.d.ts +3 -6
  283. package/lib/mjs/components/columns/Columns.form.js +0 -5
  284. package/lib/mjs/components/columns/Columns.js +1 -1
  285. package/lib/mjs/components/container/Container.form.d.ts +3 -6
  286. package/lib/mjs/components/container/Container.form.js +0 -5
  287. package/lib/mjs/components/content/Content.d.ts +1 -2
  288. package/lib/mjs/components/content/Content.form.d.ts +3 -6
  289. package/lib/mjs/components/content/Content.form.js +0 -5
  290. package/lib/mjs/components/currency/Currency.form.d.ts +3 -6
  291. package/lib/mjs/components/currency/Currency.form.js +0 -5
  292. package/lib/mjs/components/currency/Currency.js +2 -1
  293. package/lib/mjs/components/datagrid/DataGrid.d.ts +7 -8
  294. package/lib/mjs/components/datagrid/DataGrid.form.d.ts +3 -6
  295. package/lib/mjs/components/datagrid/DataGrid.form.js +0 -5
  296. package/lib/mjs/components/datagrid/DataGrid.js +5 -5
  297. package/lib/mjs/components/datamap/DataMap.d.ts +0 -1
  298. package/lib/mjs/components/datamap/DataMap.form.d.ts +3 -6
  299. package/lib/mjs/components/datamap/DataMap.form.js +0 -5
  300. package/lib/mjs/components/datetime/DateTime.d.ts +14 -0
  301. package/lib/mjs/components/datetime/DateTime.form.d.ts +3 -6
  302. package/lib/mjs/components/datetime/DateTime.form.js +0 -5
  303. package/lib/mjs/components/datetime/editForm/DateTime.edit.date.js +1 -1
  304. package/lib/mjs/components/day/Day.d.ts +48 -22
  305. package/lib/mjs/components/day/Day.form.d.ts +3 -6
  306. package/lib/mjs/components/day/Day.form.js +0 -5
  307. package/lib/mjs/components/day/Day.js +20 -15
  308. package/lib/mjs/components/editgrid/EditGrid.d.ts +3 -7
  309. package/lib/mjs/components/editgrid/EditGrid.form.d.ts +3 -6
  310. package/lib/mjs/components/editgrid/EditGrid.form.js +0 -5
  311. package/lib/mjs/components/editgrid/EditGrid.js +3 -3
  312. package/lib/mjs/components/editgrid/editForm/EditGrid.edit.display.js +1 -1
  313. package/lib/mjs/components/editgrid/editForm/EditGrid.edit.templates.js +1 -1
  314. package/lib/mjs/components/email/Email.form.d.ts +3 -6
  315. package/lib/mjs/components/email/Email.form.js +0 -5
  316. package/lib/mjs/components/fieldset/Fieldset.form.d.ts +3 -6
  317. package/lib/mjs/components/fieldset/Fieldset.form.js +0 -5
  318. package/lib/mjs/components/file/File.d.ts +22 -9
  319. package/lib/mjs/components/file/File.form.d.ts +3 -6
  320. package/lib/mjs/components/file/File.form.js +0 -5
  321. package/lib/mjs/components/form/Form.d.ts +20 -31
  322. package/lib/mjs/components/form/Form.form.d.ts +3 -6
  323. package/lib/mjs/components/form/Form.form.js +0 -5
  324. package/lib/mjs/components/form/Form.js +10 -13
  325. package/lib/mjs/components/hidden/Hidden.d.ts +11 -1
  326. package/lib/mjs/components/hidden/Hidden.form.d.ts +3 -6
  327. package/lib/mjs/components/hidden/Hidden.form.js +0 -5
  328. package/lib/mjs/components/hidden/Hidden.js +2 -1
  329. package/lib/mjs/components/html/HTML.d.ts +1 -2
  330. package/lib/mjs/components/html/HTML.form.d.ts +3 -6
  331. package/lib/mjs/components/html/HTML.form.js +0 -5
  332. package/lib/mjs/components/number/Number.d.ts +17 -3
  333. package/lib/mjs/components/number/Number.form.d.ts +3 -6
  334. package/lib/mjs/components/number/Number.form.js +0 -5
  335. package/lib/mjs/components/number/Number.js +2 -1
  336. package/lib/mjs/components/panel/Panel.form.d.ts +3 -6
  337. package/lib/mjs/components/panel/Panel.form.js +0 -5
  338. package/lib/mjs/components/panel/Panel.js +1 -0
  339. package/lib/mjs/components/password/Password.form.d.ts +3 -6
  340. package/lib/mjs/components/password/Password.form.js +0 -5
  341. package/lib/mjs/components/phonenumber/PhoneNumber.form.d.ts +3 -6
  342. package/lib/mjs/components/phonenumber/PhoneNumber.form.js +0 -5
  343. package/lib/mjs/components/radio/Radio.d.ts +26 -3
  344. package/lib/mjs/components/radio/Radio.form.d.ts +3 -6
  345. package/lib/mjs/components/radio/Radio.form.js +0 -5
  346. package/lib/mjs/components/radio/Radio.js +4 -3
  347. package/lib/mjs/components/recaptcha/ReCaptcha.d.ts +1 -1
  348. package/lib/mjs/components/recaptcha/ReCaptcha.form.d.ts +3 -5
  349. package/lib/mjs/components/recaptcha/ReCaptcha.form.js +0 -4
  350. package/lib/mjs/components/select/Select.d.ts +39 -16
  351. package/lib/mjs/components/select/Select.form.d.ts +3 -6
  352. package/lib/mjs/components/select/Select.form.js +0 -5
  353. package/lib/mjs/components/select/Select.js +16 -13
  354. package/lib/mjs/components/selectboxes/SelectBoxes.d.ts +17 -2
  355. package/lib/mjs/components/selectboxes/SelectBoxes.form.d.ts +3 -6
  356. package/lib/mjs/components/selectboxes/SelectBoxes.form.js +0 -5
  357. package/lib/mjs/components/selectboxes/SelectBoxes.js +9 -7
  358. package/lib/mjs/components/signature/Signature.d.ts +14 -1
  359. package/lib/mjs/components/signature/Signature.form.d.ts +3 -6
  360. package/lib/mjs/components/signature/Signature.form.js +0 -5
  361. package/lib/mjs/components/survey/Survey.d.ts +15 -3
  362. package/lib/mjs/components/survey/Survey.form.d.ts +3 -6
  363. package/lib/mjs/components/survey/Survey.form.js +0 -5
  364. package/lib/mjs/components/table/Table.d.ts +1 -2
  365. package/lib/mjs/components/table/Table.form.d.ts +3 -6
  366. package/lib/mjs/components/table/Table.form.js +0 -5
  367. package/lib/mjs/components/tabs/Tabs.d.ts +4 -4
  368. package/lib/mjs/components/tabs/Tabs.form.d.ts +3 -6
  369. package/lib/mjs/components/tabs/Tabs.form.js +0 -5
  370. package/lib/mjs/components/tabs/Tabs.js +2 -1
  371. package/lib/mjs/components/tags/Tags.d.ts +14 -0
  372. package/lib/mjs/components/tags/Tags.form.d.ts +3 -6
  373. package/lib/mjs/components/tags/Tags.form.js +0 -5
  374. package/lib/mjs/components/textarea/TextArea.d.ts +9 -4
  375. package/lib/mjs/components/textarea/TextArea.form.d.ts +3 -6
  376. package/lib/mjs/components/textarea/TextArea.form.js +0 -5
  377. package/lib/mjs/components/textarea/TextArea.js +2 -2
  378. package/lib/mjs/components/textfield/TextField.d.ts +30 -14
  379. package/lib/mjs/components/textfield/TextField.form.d.ts +3 -6
  380. package/lib/mjs/components/textfield/TextField.form.js +0 -5
  381. package/lib/mjs/components/textfield/TextField.js +16 -13
  382. package/lib/mjs/components/time/Time.form.d.ts +3 -6
  383. package/lib/mjs/components/time/Time.form.js +0 -5
  384. package/lib/mjs/components/unknown/Unknown.form.d.ts +34 -5
  385. package/lib/mjs/components/unknown/Unknown.form.js +0 -4
  386. package/lib/mjs/components/url/Url.form.d.ts +3 -6
  387. package/lib/mjs/components/url/Url.form.js +0 -5
  388. package/lib/mjs/components/well/Well.form.d.ts +3 -6
  389. package/lib/mjs/components/well/Well.form.js +0 -5
  390. package/lib/mjs/formio.embed.d.ts +2 -1
  391. package/lib/mjs/formio.embed.js +99 -2
  392. package/lib/mjs/formio.form.d.ts +4 -11
  393. package/lib/mjs/formio.form.js +3 -10
  394. package/lib/mjs/providers/Providers.d.ts +5 -36
  395. package/lib/mjs/providers/Providers.js +0 -29
  396. package/lib/mjs/providers/address/AddressProvider.d.ts +12 -131
  397. package/lib/mjs/providers/address/AddressProvider.js +2 -88
  398. package/lib/mjs/providers/address/AzureAddressProvider.d.ts +1 -48
  399. package/lib/mjs/providers/address/AzureAddressProvider.js +0 -37
  400. package/lib/mjs/providers/address/CustomAddressProvider.d.ts +4 -27
  401. package/lib/mjs/providers/address/CustomAddressProvider.js +0 -34
  402. package/lib/mjs/providers/address/GoogleAddressProvider.d.ts +6 -130
  403. package/lib/mjs/providers/address/GoogleAddressProvider.js +0 -72
  404. package/lib/mjs/providers/address/NominatimAddressProvider.d.ts +7 -32
  405. package/lib/mjs/providers/address/NominatimAddressProvider.js +0 -33
  406. package/lib/mjs/providers/address/index.d.ts +1 -3
  407. package/lib/mjs/providers/processor/fileProcessor.d.ts +1 -7
  408. package/lib/mjs/providers/processor/fileProcessor.js +0 -6
  409. package/lib/mjs/providers/storage/azure.d.ts +13 -6
  410. package/lib/mjs/providers/storage/azure.js +0 -5
  411. package/lib/mjs/providers/storage/base64.d.ts +6 -5
  412. package/lib/mjs/providers/storage/base64.js +0 -4
  413. package/lib/mjs/providers/storage/dropbox.d.ts +4 -6
  414. package/lib/mjs/providers/storage/dropbox.js +0 -5
  415. package/lib/mjs/providers/storage/googleDrive.d.ts +5 -7
  416. package/lib/mjs/providers/storage/googleDrive.js +0 -6
  417. package/lib/mjs/providers/storage/indexeddb.d.ts +7 -5
  418. package/lib/mjs/providers/storage/indexeddb.js +0 -4
  419. package/lib/mjs/providers/storage/s3.d.ts +20 -6
  420. package/lib/mjs/providers/storage/s3.js +0 -5
  421. package/lib/mjs/providers/storage/url.d.ts +7 -6
  422. package/lib/mjs/providers/storage/url.js +0 -10
  423. package/lib/mjs/providers/storage/util.d.ts +1 -24
  424. package/lib/mjs/providers/storage/util.js +0 -18
  425. package/lib/mjs/templates/Templates.d.ts +0 -1
  426. package/lib/mjs/translations/en.d.ts +1 -0
  427. package/lib/mjs/translations/en.js +1 -0
  428. package/lib/mjs/utils/Evaluator.d.ts +3 -6
  429. package/lib/mjs/utils/Evaluator.js +20 -9
  430. package/lib/mjs/utils/builder.d.ts +7 -9
  431. package/lib/mjs/utils/builder.js +5 -10
  432. package/lib/mjs/utils/calendarUtils.d.ts +13 -7
  433. package/lib/mjs/utils/calendarUtils.js +17 -10
  434. package/lib/mjs/utils/formUtils.d.ts +171 -43
  435. package/lib/mjs/utils/formUtils.js +554 -6
  436. package/lib/mjs/utils/utils.d.ts +216 -362
  437. package/lib/mjs/utils/utils.js +218 -325
  438. package/lib/mjs/widgets/CalendarWidget.d.ts +10 -9
  439. package/lib/mjs/widgets/CalendarWidget.js +11 -9
  440. package/package.json +22 -22
  441. package/embed.d.ts +0 -1
  442. package/form.d.ts +0 -1
  443. package/lib/cjs/InlineEmbed.d.ts +0 -7
  444. package/lib/cjs/InlineEmbed.js +0 -109
  445. package/lib/mjs/InlineEmbed.d.ts +0 -7
  446. package/lib/mjs/InlineEmbed.js +0 -105
  447. package/sdk.d.ts +0 -1
  448. package/utils.d.ts +0 -1
@@ -1,53 +1,584 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isComponentDataEmpty = exports.getEmptyValue = exports.findComponent = exports.applyFormChanges = exports.generateFormChange = exports.getStrings = exports.getValue = exports.escapeRegExCharacters = exports.formatAsCurrency = exports.parseFloatExt = exports.hasCondition = exports.removeComponent = exports.searchComponents = exports.getComponent = exports.matchComponent = exports.isLayoutComponent = exports.getComponentActualValue = exports.getComponentData = exports.eachComponentAsync = exports.eachComponent = exports.componentInfo = exports.getContextualRowData = exports.getContextualRowPath = exports.getComponentKey = exports.eachComponentData = exports.eachComponentDataAsync = exports.componentChildPath = exports.componentPath = exports.isComponentNestedDataType = exports.isComponentModelType = exports.getComponentPath = exports.getComponentAbsolutePath = exports.getModelType = exports.MODEL_TYPES = exports.uniqueName = exports.guid = exports.flattenComponents = exports.findComponents = void 0;
4
- const core_1 = require("@formio/core");
5
- const { flattenComponents, guid, uniqueName, MODEL_TYPES, getModelType, getComponentAbsolutePath, getComponentPath, isComponentModelType, isComponentNestedDataType, componentPath, componentChildPath, eachComponentDataAsync, eachComponentData, getComponentKey, getContextualRowPath, getContextualRowData, componentInfo, eachComponent, eachComponentAsync, getComponentData, getComponentActualValue, isLayoutComponent, matchComponent, getComponent, searchComponents, removeComponent, hasCondition, parseFloatExt, formatAsCurrency, escapeRegExCharacters, getValue, getStrings, generateFormChange, applyFormChanges, findComponent, getEmptyValue, isComponentDataEmpty } = core_1.Utils;
6
- exports.flattenComponents = flattenComponents;
7
- exports.guid = guid;
8
- exports.uniqueName = uniqueName;
9
- exports.MODEL_TYPES = MODEL_TYPES;
10
- exports.getModelType = getModelType;
11
- exports.getComponentAbsolutePath = getComponentAbsolutePath;
12
- exports.getComponentPath = getComponentPath;
13
- exports.isComponentModelType = isComponentModelType;
14
- exports.isComponentNestedDataType = isComponentNestedDataType;
15
- exports.componentPath = componentPath;
16
- exports.componentChildPath = componentChildPath;
17
- exports.eachComponentDataAsync = eachComponentDataAsync;
18
- exports.eachComponentData = eachComponentData;
19
- exports.getComponentKey = getComponentKey;
20
- exports.getContextualRowPath = getContextualRowPath;
21
- exports.getContextualRowData = getContextualRowData;
22
- exports.componentInfo = componentInfo;
23
- exports.eachComponent = eachComponent;
24
- exports.eachComponentAsync = eachComponentAsync;
25
- exports.getComponentData = getComponentData;
26
- exports.getComponentActualValue = getComponentActualValue;
6
+ exports.getStrings = exports.getValue = exports.escapeRegExCharacters = exports.formatAsCurrency = exports.parseFloatExt = exports.hasCondition = exports.flattenComponents = exports.applyFormChanges = exports.generateFormChange = exports.removeComponent = exports.findComponent = exports.findComponents = exports.searchComponents = exports.getComponent = exports.matchComponent = exports.eachComponent = exports.isLayoutComponent = void 0;
7
+ const get_1 = __importDefault(require("lodash/get"));
8
+ const set_1 = __importDefault(require("lodash/set"));
9
+ const has_1 = __importDefault(require("lodash/has"));
10
+ const clone_1 = __importDefault(require("lodash/clone"));
11
+ const forOwn_1 = __importDefault(require("lodash/forOwn"));
12
+ const isString_1 = __importDefault(require("lodash/isString"));
13
+ const isNaN_1 = __importDefault(require("lodash/isNaN"));
14
+ const isNil_1 = __importDefault(require("lodash/isNil"));
15
+ const isPlainObject_1 = __importDefault(require("lodash/isPlainObject"));
16
+ const round_1 = __importDefault(require("lodash/round"));
17
+ const chunk_1 = __importDefault(require("lodash/chunk"));
18
+ const pad_1 = __importDefault(require("lodash/pad"));
19
+ const fast_json_patch_1 = require("fast-json-patch");
20
+ const lodash_1 = __importDefault(require("lodash"));
21
+ const utils_1 = require("./utils");
22
+ /**
23
+ * Determine if a component is a layout component or not.
24
+ *
25
+ * @param {Object} component
26
+ * The component to check.
27
+ *
28
+ * @returns {Boolean}
29
+ * Whether or not the component is a layout component.
30
+ */
31
+ function isLayoutComponent(component) {
32
+ return Boolean((component.columns && Array.isArray(component.columns)) ||
33
+ (component.rows && Array.isArray(component.rows)) ||
34
+ (component.components && Array.isArray(component.components)));
35
+ }
27
36
  exports.isLayoutComponent = isLayoutComponent;
37
+ /**
38
+ * Iterate through each component within a form.
39
+ *
40
+ * @param {Object} components
41
+ * The components to iterate.
42
+ * @param {Function} fn
43
+ * The iteration function to invoke for each component.
44
+ * @param {Boolean} includeAll
45
+ * Whether or not to include layout components.
46
+ * @param {String} path
47
+ * The current data path of the element. Example: data.user.firstName
48
+ * @param {Object} parent
49
+ * The parent object.
50
+ */
51
+ function eachComponent(components, fn, includeAll, path, parent, inRecursion) {
52
+ if (!components)
53
+ return;
54
+ path = path || '';
55
+ if (inRecursion) {
56
+ if (components.noRecurse) {
57
+ delete components.noRecurse;
58
+ return;
59
+ }
60
+ components.noRecurse = true;
61
+ }
62
+ components.forEach((component) => {
63
+ if (!component) {
64
+ return;
65
+ }
66
+ const hasColumns = component.columns && Array.isArray(component.columns);
67
+ const hasRows = component.rows && Array.isArray(component.rows);
68
+ const hasComps = component.components && Array.isArray(component.components);
69
+ let noRecurse = false;
70
+ const newPath = component.key ? (path ? (`${path}.${component.key}`) : component.key) : '';
71
+ // Keep track of parent references.
72
+ if (parent) {
73
+ // Ensure we don't create infinite JSON structures.
74
+ component.parent = (0, clone_1.default)(parent);
75
+ delete component.parent.components;
76
+ delete component.parent.componentMap;
77
+ delete component.parent.columns;
78
+ delete component.parent.rows;
79
+ }
80
+ // there's no need to add other layout components here because we expect that those would either have columns, rows or components
81
+ const layoutTypes = ['htmlelement', 'content'];
82
+ const isLayoutComponent = hasColumns || hasRows || (hasComps && !component.input) || layoutTypes.indexOf(component.type) > -1;
83
+ if (includeAll || component.tree || !isLayoutComponent) {
84
+ noRecurse = fn(component, newPath, components);
85
+ }
86
+ const subPath = () => {
87
+ if (component.key &&
88
+ !['panel', 'table', 'well', 'columns', 'fieldset', 'tabs', 'form'].includes(component.type) &&
89
+ (['datagrid', 'container', 'editgrid', 'address', 'dynamicWizard', 'datatable', 'tagpad'].includes(component.type) ||
90
+ component.tree)) {
91
+ return newPath;
92
+ }
93
+ else if (component.key &&
94
+ component.type === 'form') {
95
+ return `${newPath}.data`;
96
+ }
97
+ return path;
98
+ };
99
+ if (!noRecurse) {
100
+ if (hasColumns) {
101
+ component.columns.forEach((column) => eachComponent(column.components, fn, includeAll, subPath(), parent ? component : null), true);
102
+ }
103
+ else if (hasRows) {
104
+ component.rows.forEach((row) => {
105
+ if (Array.isArray(row)) {
106
+ row.forEach((column) => eachComponent(column.components, fn, includeAll, subPath(), parent ? component : null), true);
107
+ }
108
+ });
109
+ }
110
+ else if (hasComps) {
111
+ eachComponent(component.components, fn, includeAll, subPath(), parent ? component : null, true);
112
+ }
113
+ }
114
+ });
115
+ if (components.noRecurse) {
116
+ delete components.noRecurse;
117
+ }
118
+ }
119
+ exports.eachComponent = eachComponent;
120
+ /**
121
+ * Matches if a component matches the query.
122
+ *
123
+ * @param component
124
+ * @param query
125
+ * @return {boolean}
126
+ */
127
+ function matchComponent(component, query) {
128
+ if ((0, isString_1.default)(query)) {
129
+ return (component.key === query) || (component.path === query);
130
+ }
131
+ else {
132
+ let matches = false;
133
+ (0, forOwn_1.default)(query, (value, key) => {
134
+ matches = ((0, get_1.default)(component, key) === value);
135
+ if (!matches) {
136
+ return false;
137
+ }
138
+ });
139
+ return matches;
140
+ }
141
+ }
28
142
  exports.matchComponent = matchComponent;
143
+ /**
144
+ * Get a component by its key
145
+ *
146
+ * @param {Object} components
147
+ * The components to iterate.
148
+ * @param {String|Object} key
149
+ * The key of the component to get, or a query of the component to search.
150
+ *
151
+ * @returns {Object}
152
+ * The component that matches the given key, or undefined if not found.
153
+ */
154
+ function getComponent(components, key, includeAll) {
155
+ let result;
156
+ eachComponent(components, (component, path) => {
157
+ if ((path === key) || (component.path === key)) {
158
+ result = component;
159
+ return true;
160
+ }
161
+ }, includeAll);
162
+ return result;
163
+ }
29
164
  exports.getComponent = getComponent;
165
+ /**
166
+ * Finds a component provided a query of properties of that component.
167
+ *
168
+ * @param components
169
+ * @param query
170
+ * @return {*}
171
+ */
172
+ function searchComponents(components, query) {
173
+ const results = [];
174
+ eachComponent(components, (component) => {
175
+ if (matchComponent(component, query)) {
176
+ results.push(component);
177
+ }
178
+ }, true);
179
+ return results;
180
+ }
30
181
  exports.searchComponents = searchComponents;
182
+ /**
183
+ * Deprecated version of findComponents. Renamed to searchComponents.
184
+ *
185
+ * @param components
186
+ * @param query
187
+ * @returns {*}
188
+ */
189
+ function findComponents(components, query) {
190
+ console.warn('formio.js/utils findComponents is deprecated. Use searchComponents instead.');
191
+ return searchComponents(components, query);
192
+ }
193
+ exports.findComponents = findComponents;
194
+ /**
195
+ * This function will find a component in a form and return the component AND THE PATH to the component in the form.
196
+ * Path to the component is stored as an array of nested components and their indexes.The Path is being filled recursively
197
+ * when you iterating through the nested structure.
198
+ * If the component is not found the callback won't be called and function won't return anything.
199
+ *
200
+ * @param components
201
+ * @param key
202
+ * @param fn
203
+ * @param path
204
+ * @returns {*}
205
+ */
206
+ function findComponent(components, key, path, fn) {
207
+ if (!components)
208
+ return;
209
+ path = path || [];
210
+ if (!key) {
211
+ return fn(components);
212
+ }
213
+ components.forEach(function (component, index) {
214
+ var newPath = path.slice();
215
+ // Add an index of the component it iterates through in nested structure
216
+ newPath.push(index);
217
+ if (!component)
218
+ return;
219
+ if (component.hasOwnProperty('columns') && Array.isArray(component.columns)) {
220
+ newPath.push('columns');
221
+ component.columns.forEach(function (column, index) {
222
+ var colPath = newPath.slice();
223
+ colPath.push(index);
224
+ colPath.push('components');
225
+ findComponent(column.components, key, colPath, fn);
226
+ });
227
+ }
228
+ if (component.hasOwnProperty('rows') && Array.isArray(component.rows)) {
229
+ newPath.push('rows');
230
+ component.rows.forEach(function (row, index) {
231
+ var rowPath = newPath.slice();
232
+ rowPath.push(index);
233
+ row.forEach(function (column, index) {
234
+ var colPath = rowPath.slice();
235
+ colPath.push(index);
236
+ colPath.push('components');
237
+ findComponent(column.components, key, colPath, fn);
238
+ });
239
+ });
240
+ }
241
+ if (component.hasOwnProperty('components') && Array.isArray(component.components)) {
242
+ newPath.push('components');
243
+ findComponent(component.components, key, newPath, fn);
244
+ }
245
+ if (component.key === key) {
246
+ //Final callback if the component is found
247
+ fn(component, newPath, components);
248
+ }
249
+ });
250
+ }
251
+ exports.findComponent = findComponent;
252
+ /**
253
+ * Remove a component by path.
254
+ *
255
+ * @param components
256
+ * @param path
257
+ */
258
+ function removeComponent(components, path) {
259
+ // Using _.unset() leave a null value. Use Array splice instead.
260
+ var index = path.pop();
261
+ if (path.length !== 0) {
262
+ components = (0, get_1.default)(components, path);
263
+ }
264
+ components.splice(index, 1);
265
+ }
31
266
  exports.removeComponent = removeComponent;
267
+ function generateFormChange(type, data) {
268
+ let change;
269
+ switch (type) {
270
+ case 'add':
271
+ change = {
272
+ op: 'add',
273
+ key: data.component.key,
274
+ container: data.parent.key, // Parent component
275
+ path: data.path, // Path to container within parent component.
276
+ index: data.index, // Index of component in parent container.
277
+ component: data.component
278
+ };
279
+ break;
280
+ case 'edit':
281
+ change = {
282
+ op: 'edit',
283
+ key: data.originalComponent.key,
284
+ patches: (0, fast_json_patch_1.compare)(data.originalComponent, data.component)
285
+ };
286
+ // Don't save if nothing changed.
287
+ if (!change.patches.length) {
288
+ change = null;
289
+ }
290
+ break;
291
+ case 'remove':
292
+ change = {
293
+ op: 'remove',
294
+ key: data.component.key,
295
+ };
296
+ break;
297
+ }
298
+ return change;
299
+ }
300
+ exports.generateFormChange = generateFormChange;
301
+ function applyFormChanges(form, changes) {
302
+ const failed = [];
303
+ changes.forEach(function (change) {
304
+ var found = false;
305
+ switch (change.op) {
306
+ case 'add':
307
+ var newComponent = change.component;
308
+ // Find the container to set the component in.
309
+ findComponent(form.components, change.container, null, function (parent) {
310
+ if (!change.container) {
311
+ parent = form;
312
+ }
313
+ // A move will first run an add so remove any existing components with matching key before inserting.
314
+ findComponent(form.components, change.key, null, function (component, path) {
315
+ // If found, use the existing component. (If someone else edited it, the changes would be here)
316
+ newComponent = component;
317
+ removeComponent(form.components, path);
318
+ });
319
+ found = true;
320
+ var container = (0, get_1.default)(parent, change.path);
321
+ container.splice(change.index, 0, newComponent);
322
+ });
323
+ break;
324
+ case 'remove':
325
+ findComponent(form.components, change.key, null, function (component, path) {
326
+ found = true;
327
+ const oldComponent = (0, get_1.default)(form.components, path);
328
+ if (oldComponent.key !== component.key) {
329
+ path.pop();
330
+ }
331
+ removeComponent(form.components, path);
332
+ });
333
+ break;
334
+ case 'edit':
335
+ findComponent(form.components, change.key, null, function (component, path) {
336
+ found = true;
337
+ try {
338
+ const oldComponent = (0, get_1.default)(form.components, path);
339
+ const newComponent = (0, fast_json_patch_1.applyPatch)(component, change.patches).newDocument;
340
+ if (oldComponent.key !== newComponent.key) {
341
+ path.pop();
342
+ }
343
+ (0, set_1.default)(form.components, path, newComponent);
344
+ }
345
+ catch (err) {
346
+ failed.push(change);
347
+ }
348
+ });
349
+ break;
350
+ case 'move':
351
+ break;
352
+ }
353
+ if (!found) {
354
+ failed.push(change);
355
+ }
356
+ });
357
+ return {
358
+ form,
359
+ failed
360
+ };
361
+ }
362
+ exports.applyFormChanges = applyFormChanges;
363
+ /**
364
+ * Flatten the form components for data manipulation.
365
+ *
366
+ * @param {Object} components
367
+ * The components to iterate.
368
+ * @param {Boolean} includeAll
369
+ * Whether or not to include layout components.
370
+ *
371
+ * @returns {Object}
372
+ * The flattened components map.
373
+ */
374
+ function flattenComponents(components, includeAll = false) {
375
+ const flattened = {};
376
+ eachComponent(components, (component, path) => {
377
+ flattened[path] = component;
378
+ }, includeAll);
379
+ return flattened;
380
+ }
381
+ exports.flattenComponents = flattenComponents;
382
+ /**
383
+ * Returns if this component has a conditional statement.
384
+ *
385
+ * @param component - The component JSON schema.
386
+ *
387
+ * @returns {boolean} - TRUE - This component has a conditional, FALSE - No conditional provided.
388
+ */
389
+ function hasCondition(component) {
390
+ return Boolean((component.customConditional) ||
391
+ (component.conditional && (component.conditional.when ||
392
+ (lodash_1.default.some(component.conditional.conditions || [], (condition => condition.component && condition.operator))) ||
393
+ component.conditional.json ||
394
+ component.conditional.condition)));
395
+ }
32
396
  exports.hasCondition = hasCondition;
397
+ /**
398
+ * Extension of standard #parseFloat(value) function, that also clears input string.
399
+ *
400
+ * @param {any} value
401
+ * The value to parse.
402
+ *
403
+ * @returns {Number}
404
+ * Parsed value.
405
+ */
406
+ function parseFloatExt(value) {
407
+ return parseFloat((0, isString_1.default)(value)
408
+ ? value.replace(/[^\de.+-]/gi, '')
409
+ : value);
410
+ }
33
411
  exports.parseFloatExt = parseFloatExt;
412
+ /**
413
+ * Formats provided value in way how Currency component uses it.
414
+ *
415
+ * @param {any} value
416
+ * The value to format.
417
+ *
418
+ * @returns {String}
419
+ * Value formatted for Currency component.
420
+ */
421
+ function formatAsCurrency(value) {
422
+ const parsedValue = parseFloatExt(value);
423
+ if ((0, isNaN_1.default)(parsedValue)) {
424
+ return '';
425
+ }
426
+ const parts = (0, round_1.default)(parsedValue, 2)
427
+ .toString()
428
+ .split('.');
429
+ parts[0] = (0, chunk_1.default)(Array.from(parts[0]).reverse(), 3)
430
+ .reverse()
431
+ .map((part) => part
432
+ .reverse()
433
+ .join(''))
434
+ .join(',');
435
+ parts[1] = (0, pad_1.default)(parts[1], 2, '0');
436
+ return parts.join('.');
437
+ }
34
438
  exports.formatAsCurrency = formatAsCurrency;
439
+ /**
440
+ * Escapes RegEx characters in provided String value.
441
+ *
442
+ * @param {String} value
443
+ * String for escaping RegEx characters.
444
+ * @returns {string}
445
+ * String with escaped RegEx characters.
446
+ */
447
+ function escapeRegExCharacters(value) {
448
+ return value.replace(/[-[\]/{}()*+?.\\^$|]/g, '\\$&');
449
+ }
35
450
  exports.escapeRegExCharacters = escapeRegExCharacters;
451
+ /**
452
+ * Get the value for a component key, in the given submission.
453
+ *
454
+ * @param {Object} submission
455
+ * A submission object to search.
456
+ * @param {String} key
457
+ * A for components API key to search for.
458
+ */
459
+ function getValue(submission, key) {
460
+ const search = (data) => {
461
+ if ((0, isPlainObject_1.default)(data)) {
462
+ if ((0, has_1.default)(data, key)) {
463
+ return lodash_1.default.get(data, key);
464
+ }
465
+ let value = null;
466
+ (0, forOwn_1.default)(data, (prop) => {
467
+ const result = search(prop);
468
+ if (!(0, isNil_1.default)(result)) {
469
+ value = result;
470
+ return false;
471
+ }
472
+ });
473
+ return value;
474
+ }
475
+ else {
476
+ return null;
477
+ }
478
+ };
479
+ return search(submission.data);
480
+ }
36
481
  exports.getValue = getValue;
37
- exports.getStrings = getStrings;
38
- exports.generateFormChange = generateFormChange;
39
- exports.applyFormChanges = applyFormChanges;
40
- exports.findComponent = findComponent;
41
- exports.getEmptyValue = getEmptyValue;
42
- exports.isComponentDataEmpty = isComponentDataEmpty;
43
482
  /**
44
- * Deprecated version of findComponents. Renamed to searchComponents.
45
- * @param {import('@formio/core').Component[]} components - The components to find components within.
46
- * @param {object} query - The query to use when searching for the components.
47
- * @returns {import('@formio/core').Component[]} - The result of the component that is found.
483
+ * Iterate over all components in a form and get string values for translation.
484
+ * @param form
48
485
  */
49
- function findComponents(components, query) {
50
- console.warn('formio.js/utils findComponents is deprecated. Use searchComponents instead.');
51
- return searchComponents(components, query);
486
+ function getStrings(form) {
487
+ const properties = ['label', 'title', 'legend', 'tooltip', 'description', 'placeholder', 'prefix', 'suffix', 'errorLabel', 'content', 'html'];
488
+ const strings = [];
489
+ eachComponent(form.components, component => {
490
+ properties.forEach(property => {
491
+ if (component.hasOwnProperty(property) && component[property]) {
492
+ strings.push({
493
+ key: component.key,
494
+ type: component.type,
495
+ property,
496
+ string: component[property]
497
+ });
498
+ }
499
+ });
500
+ if ((!component.dataSrc || component.dataSrc === 'values') && component.hasOwnProperty('values') && Array.isArray(component.values) && component.values.length) {
501
+ component.values.forEach((value, index) => {
502
+ strings.push({
503
+ key: component.key,
504
+ property: `value[${index}].label`,
505
+ string: component.values[index].label
506
+ });
507
+ });
508
+ }
509
+ // Hard coded values from Day component
510
+ if (component.type === 'day') {
511
+ [
512
+ 'day',
513
+ 'month',
514
+ 'year',
515
+ 'Day',
516
+ 'Month',
517
+ 'Year',
518
+ 'january',
519
+ 'february',
520
+ 'march',
521
+ 'april',
522
+ 'may',
523
+ 'june',
524
+ 'july',
525
+ 'august',
526
+ 'september',
527
+ 'october',
528
+ 'november',
529
+ 'december'
530
+ ].forEach(string => {
531
+ strings.push({
532
+ key: component.key,
533
+ property: 'day',
534
+ string,
535
+ });
536
+ });
537
+ if (component.fields.day.placeholder) {
538
+ strings.push({
539
+ key: component.key,
540
+ property: 'fields.day.placeholder',
541
+ string: component.fields.day.placeholder,
542
+ });
543
+ }
544
+ if (component.fields.month.placeholder) {
545
+ strings.push({
546
+ key: component.key,
547
+ property: 'fields.month.placeholder',
548
+ string: component.fields.month.placeholder,
549
+ });
550
+ }
551
+ if (component.fields.year.placeholder) {
552
+ strings.push({
553
+ key: component.key,
554
+ property: 'fields.year.placeholder',
555
+ string: component.fields.year.placeholder,
556
+ });
557
+ }
558
+ }
559
+ if (component.type === 'editgrid') {
560
+ const string = component.addAnother || 'Add Another';
561
+ if (component.addAnother) {
562
+ strings.push({
563
+ key: component.key,
564
+ property: 'addAnother',
565
+ string,
566
+ });
567
+ }
568
+ }
569
+ if (component.type === 'select') {
570
+ [
571
+ 'loading...',
572
+ 'Type to search'
573
+ ].forEach(string => {
574
+ strings.push({
575
+ key: component.key,
576
+ property: 'select',
577
+ string,
578
+ });
579
+ });
580
+ }
581
+ }, true);
582
+ return strings;
52
583
  }
53
- exports.findComponents = findComponents;
584
+ exports.getStrings = getStrings;