@formio/js 5.2.3 → 5.2.4-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (510) hide show
  1. package/dist/formio.builder.css +161 -50
  2. package/dist/formio.builder.min.css +1 -1
  3. package/dist/formio.embed.js +1 -1
  4. package/dist/formio.embed.min.js +1 -1
  5. package/dist/formio.embed.min.js.LICENSE.txt +1 -1
  6. package/dist/formio.form.css +158 -49
  7. package/dist/formio.form.js +152 -108
  8. package/dist/formio.form.min.css +1 -1
  9. package/dist/formio.form.min.js +1 -1
  10. package/dist/formio.form.min.js.LICENSE.txt +1 -1
  11. package/dist/formio.full.css +161 -50
  12. package/dist/formio.full.js +401 -227
  13. package/dist/formio.full.min.css +1 -1
  14. package/dist/formio.full.min.js +1 -1
  15. package/dist/formio.full.min.js.LICENSE.txt +1 -1
  16. package/dist/formio.js +51 -18
  17. package/dist/formio.min.js +1 -1
  18. package/dist/formio.min.js.LICENSE.txt +1 -1
  19. package/dist/formio.utils.js +47 -14
  20. package/dist/formio.utils.min.js +1 -1
  21. package/dist/formio.utils.min.js.LICENSE.txt +1 -1
  22. package/lib/cjs/CDN.js +12 -12
  23. package/lib/cjs/Element.d.ts +3 -2
  24. package/lib/cjs/Element.js +27 -21
  25. package/lib/cjs/Embed.js +74 -40
  26. package/lib/cjs/EventEmitter.js +1 -1
  27. package/lib/cjs/Form.d.ts +371 -341
  28. package/lib/cjs/Form.js +153 -39
  29. package/lib/cjs/FormBuilder.d.ts +3 -3
  30. package/lib/cjs/FormBuilder.js +2 -3
  31. package/lib/cjs/Formio.js +26 -23
  32. package/lib/cjs/InlineEmbed.js +23 -17
  33. package/lib/cjs/PDF.d.ts +1 -0
  34. package/lib/cjs/PDF.js +18 -15
  35. package/lib/cjs/PDFBuilder.js +51 -36
  36. package/lib/cjs/Webform.d.ts +8 -366
  37. package/lib/cjs/Webform.js +176 -235
  38. package/lib/cjs/WebformBuilder.js +217 -144
  39. package/lib/cjs/Wizard.js +92 -62
  40. package/lib/cjs/WizardBuilder.js +27 -19
  41. package/lib/cjs/addons/FormioAddon.js +1 -1
  42. package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.form.js +59 -57
  43. package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.js +24 -16
  44. package/lib/cjs/addons/index.js +3 -3
  45. package/lib/cjs/components/Components.js +0 -4
  46. package/lib/cjs/components/_classes/component/Component.form.js +11 -11
  47. package/lib/cjs/components/_classes/component/Component.js +298 -179
  48. package/lib/cjs/components/_classes/component/editForm/Component.edit.addons.js +2 -4
  49. package/lib/cjs/components/_classes/component/editForm/Component.edit.api.js +5 -5
  50. package/lib/cjs/components/_classes/component/editForm/Component.edit.conditional.js +9 -11
  51. package/lib/cjs/components/_classes/component/editForm/Component.edit.data.d.ts +37 -0
  52. package/lib/cjs/components/_classes/component/editForm/Component.edit.data.js +39 -25
  53. package/lib/cjs/components/_classes/component/editForm/Component.edit.display.js +47 -29
  54. package/lib/cjs/components/_classes/component/editForm/Component.edit.layout.js +9 -9
  55. package/lib/cjs/components/_classes/component/editForm/Component.edit.logic.js +5 -7
  56. package/lib/cjs/components/_classes/component/editForm/Component.edit.validation.js +37 -34
  57. package/lib/cjs/components/_classes/component/editForm/utils.js +12 -16
  58. package/lib/cjs/components/_classes/componentModal/ComponentModal.js +6 -6
  59. package/lib/cjs/components/_classes/field/Field.js +7 -1
  60. package/lib/cjs/components/_classes/input/Input.js +30 -26
  61. package/lib/cjs/components/_classes/list/ListComponent.form.js +1 -1
  62. package/lib/cjs/components/_classes/list/ListComponent.js +27 -18
  63. package/lib/cjs/components/_classes/list/editForm/ListComponent.edit.data.js +36 -9
  64. package/lib/cjs/components/_classes/multivalue/Multivalue.js +32 -13
  65. package/lib/cjs/components/_classes/nested/NestedComponent.form.js +3 -3
  66. package/lib/cjs/components/_classes/nested/NestedComponent.js +36 -32
  67. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +19 -14
  68. package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +19 -17
  69. package/lib/cjs/components/address/Address.js +52 -45
  70. package/lib/cjs/components/address/editForm/Address.edit.data.js +2 -2
  71. package/lib/cjs/components/address/editForm/Address.edit.display.js +2 -2
  72. package/lib/cjs/components/address/editForm/Address.edit.provider.js +53 -11
  73. package/lib/cjs/components/alert/Alert.js +21 -15
  74. package/lib/cjs/components/button/Button.form.js +1 -1
  75. package/lib/cjs/components/button/Button.js +50 -27
  76. package/lib/cjs/components/button/editForm/Button.edit.display.js +49 -9
  77. package/lib/cjs/components/checkbox/Checkbox.d.ts +1 -1
  78. package/lib/cjs/components/checkbox/Checkbox.form.js +3 -3
  79. package/lib/cjs/components/checkbox/Checkbox.js +28 -20
  80. package/lib/cjs/components/checkbox/editForm/Checkbox.edit.data.js +1 -1
  81. package/lib/cjs/components/checkbox/editForm/Checkbox.edit.display.js +13 -3
  82. package/lib/cjs/components/checkbox/editForm/Checkbox.edit.validation.js +2 -2
  83. package/lib/cjs/components/columns/Columns.form.js +1 -1
  84. package/lib/cjs/components/columns/Columns.js +24 -12
  85. package/lib/cjs/components/columns/editForm/Columns.edit.display.js +17 -17
  86. package/lib/cjs/components/container/Container.form.js +2 -2
  87. package/lib/cjs/components/container/Container.js +6 -4
  88. package/lib/cjs/components/container/editForm/Container.edit.data.js +3 -3
  89. package/lib/cjs/components/container/editForm/Container.edit.display.js +4 -4
  90. package/lib/cjs/components/content/Content.form.js +4 -2
  91. package/lib/cjs/components/content/Content.js +10 -8
  92. package/lib/cjs/components/content/editForm/Content.edit.display.js +10 -10
  93. package/lib/cjs/components/currency/Currency.form.js +3 -3
  94. package/lib/cjs/components/currency/Currency.js +19 -10
  95. package/lib/cjs/components/currency/editForm/Currency.edit.data.js +5 -5
  96. package/lib/cjs/components/currency/editForm/Currency.edit.display.js +8 -8
  97. package/lib/cjs/components/datagrid/DataGrid.form.js +3 -3
  98. package/lib/cjs/components/datagrid/DataGrid.js +89 -38
  99. package/lib/cjs/components/datagrid/editForm/DataGrid.edit.data.js +1 -1
  100. package/lib/cjs/components/datagrid/editForm/DataGrid.edit.display.js +14 -14
  101. package/lib/cjs/components/datagrid/editForm/DataGrid.edit.validation.js +3 -3
  102. package/lib/cjs/components/datamap/DataMap.form.js +2 -2
  103. package/lib/cjs/components/datamap/DataMap.js +44 -31
  104. package/lib/cjs/components/datamap/editForm/DataMap.edit.data.js +1 -1
  105. package/lib/cjs/components/datamap/editForm/DataMap.edit.display.js +8 -8
  106. package/lib/cjs/components/datetime/DateTime.form.js +5 -5
  107. package/lib/cjs/components/datetime/DateTime.js +30 -15
  108. package/lib/cjs/components/datetime/editForm/DateTime.edit.data.js +4 -3
  109. package/lib/cjs/components/datetime/editForm/DateTime.edit.date.js +10 -10
  110. package/lib/cjs/components/datetime/editForm/DateTime.edit.display.js +22 -17
  111. package/lib/cjs/components/datetime/editForm/DateTime.edit.time.js +5 -5
  112. package/lib/cjs/components/datetime/editForm/DateTime.edit.validation.js +3 -3
  113. package/lib/cjs/components/day/Day.form.js +5 -5
  114. package/lib/cjs/components/day/Day.js +146 -56
  115. package/lib/cjs/components/day/editForm/Day.edit.day.js +13 -9
  116. package/lib/cjs/components/day/editForm/Day.edit.display.js +7 -7
  117. package/lib/cjs/components/day/editForm/Day.edit.month.js +12 -8
  118. package/lib/cjs/components/day/editForm/Day.edit.validation.js +7 -7
  119. package/lib/cjs/components/day/editForm/Day.edit.year.js +8 -8
  120. package/lib/cjs/components/editgrid/EditGrid.form.js +2 -2
  121. package/lib/cjs/components/editgrid/EditGrid.js +137 -89
  122. package/lib/cjs/components/editgrid/editForm/EditGrid.edit.data.js +2 -2
  123. package/lib/cjs/components/editgrid/editForm/EditGrid.edit.display.js +7 -2
  124. package/lib/cjs/components/editgrid/editForm/EditGrid.edit.templates.js +16 -16
  125. package/lib/cjs/components/editgrid/editForm/EditGrid.edit.validation.js +3 -3
  126. package/lib/cjs/components/email/Email.js +4 -4
  127. package/lib/cjs/components/email/editForm/Email.edit.display.js +3 -3
  128. package/lib/cjs/components/email/editForm/Email.edit.validation.js +6 -6
  129. package/lib/cjs/components/fieldset/Fieldset.form.js +1 -1
  130. package/lib/cjs/components/fieldset/Fieldset.js +2 -2
  131. package/lib/cjs/components/fieldset/editForm/Fieldset.edit.display.js +8 -8
  132. package/lib/cjs/components/file/File.form.js +4 -4
  133. package/lib/cjs/components/file/File.js +126 -80
  134. package/lib/cjs/components/file/editForm/File.edit.display.js +9 -5
  135. package/lib/cjs/components/file/editForm/File.edit.file.d.ts +37 -16
  136. package/lib/cjs/components/file/editForm/File.edit.file.js +169 -72
  137. package/lib/cjs/components/file/editForm/File.edit.validation.js +2 -2
  138. package/lib/cjs/components/form/Form.form.js +3 -3
  139. package/lib/cjs/components/form/Form.js +67 -51
  140. package/lib/cjs/components/form/editForm/Form.edit.data.js +1 -3
  141. package/lib/cjs/components/form/editForm/Form.edit.display.js +6 -7
  142. package/lib/cjs/components/form/editForm/Form.edit.form.js +11 -9
  143. package/lib/cjs/components/hidden/Hidden.form.js +4 -4
  144. package/lib/cjs/components/hidden/Hidden.js +2 -2
  145. package/lib/cjs/components/hidden/editForm/Hidden.edit.data.js +3 -3
  146. package/lib/cjs/components/hidden/editForm/Hidden.edit.display.js +10 -10
  147. package/lib/cjs/components/html/HTML.js +23 -17
  148. package/lib/cjs/components/html/editForm/HTML.edit.display.js +17 -17
  149. package/lib/cjs/components/html/editForm/HTML.edit.logic.js +2 -2
  150. package/lib/cjs/components/number/Number.form.js +3 -3
  151. package/lib/cjs/components/number/Number.js +27 -11
  152. package/lib/cjs/components/number/editForm/Number.edit.data.js +3 -3
  153. package/lib/cjs/components/number/editForm/Number.edit.display.js +4 -4
  154. package/lib/cjs/components/number/editForm/Number.edit.validation.js +9 -9
  155. package/lib/cjs/components/panel/Panel.form.js +1 -1
  156. package/lib/cjs/components/panel/Panel.js +2 -2
  157. package/lib/cjs/components/panel/editForm/Panel.edit.conditional.js +5 -7
  158. package/lib/cjs/components/panel/editForm/Panel.edit.display.js +55 -29
  159. package/lib/cjs/components/password/Password.form.js +3 -3
  160. package/lib/cjs/components/password/Password.js +5 -2
  161. package/lib/cjs/components/password/editForm/Password.edit.data.js +11 -11
  162. package/lib/cjs/components/password/editForm/Password.edit.display.js +3 -3
  163. package/lib/cjs/components/password/editForm/Password.edit.validation.js +3 -3
  164. package/lib/cjs/components/phonenumber/PhoneNumber.form.js +8 -8
  165. package/lib/cjs/components/phonenumber/PhoneNumber.js +3 -3
  166. package/lib/cjs/components/phonenumber/editForm/PhoneNumber.edit.validation.js +6 -6
  167. package/lib/cjs/components/radio/Radio.form.js +3 -3
  168. package/lib/cjs/components/radio/Radio.js +55 -26
  169. package/lib/cjs/components/radio/editForm/Radio.edit.data.js +23 -9
  170. package/lib/cjs/components/radio/editForm/Radio.edit.display.js +6 -6
  171. package/lib/cjs/components/radio/editForm/Radio.edit.validation.js +2 -2
  172. package/lib/cjs/components/recaptcha/ReCaptcha.form.js +5 -5
  173. package/lib/cjs/components/recaptcha/ReCaptcha.js +7 -5
  174. package/lib/cjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +24 -24
  175. package/lib/cjs/components/select/Select.form.js +3 -3
  176. package/lib/cjs/components/select/Select.js +235 -129
  177. package/lib/cjs/components/select/editForm/Select.edit.data.d.ts +1 -1
  178. package/lib/cjs/components/select/editForm/Select.edit.data.js +191 -57
  179. package/lib/cjs/components/select/editForm/Select.edit.display.js +2 -2
  180. package/lib/cjs/components/select/editForm/Select.edit.validation.js +4 -4
  181. package/lib/cjs/components/selectboxes/SelectBoxes.form.js +3 -3
  182. package/lib/cjs/components/selectboxes/SelectBoxes.js +31 -15
  183. package/lib/cjs/components/selectboxes/editForm/SelectBoxes.edit.validation.js +5 -5
  184. package/lib/cjs/components/signature/Signature.form.js +3 -3
  185. package/lib/cjs/components/signature/Signature.js +25 -15
  186. package/lib/cjs/components/signature/editForm/Signature.edit.display.js +19 -10
  187. package/lib/cjs/components/survey/Survey.form.js +3 -3
  188. package/lib/cjs/components/survey/Survey.js +30 -17
  189. package/lib/cjs/components/survey/editForm/Survey.edit.data.js +23 -11
  190. package/lib/cjs/components/survey/editForm/Survey.edit.display.js +1 -1
  191. package/lib/cjs/components/survey/editForm/Survey.edit.validation.js +1 -1
  192. package/lib/cjs/components/table/Table.form.js +1 -1
  193. package/lib/cjs/components/table/Table.js +7 -5
  194. package/lib/cjs/components/table/editForm/Table.edit.display.js +22 -22
  195. package/lib/cjs/components/tabs/Tabs.form.js +1 -1
  196. package/lib/cjs/components/tabs/Tabs.js +26 -8
  197. package/lib/cjs/components/tabs/editForm/Tabs.edit.display.js +21 -17
  198. package/lib/cjs/components/tags/Tags.form.js +1 -1
  199. package/lib/cjs/components/tags/Tags.js +28 -12
  200. package/lib/cjs/components/tags/editForm/Tags.edit.data.js +7 -7
  201. package/lib/cjs/components/textarea/TextArea.form.js +2 -2
  202. package/lib/cjs/components/textarea/TextArea.js +63 -45
  203. package/lib/cjs/components/textarea/editForm/TextArea.edit.display.js +96 -72
  204. package/lib/cjs/components/textarea/editForm/TextArea.edit.validation.js +3 -3
  205. package/lib/cjs/components/textfield/TextField.form.js +3 -3
  206. package/lib/cjs/components/textfield/TextField.js +32 -21
  207. package/lib/cjs/components/textfield/editForm/TextField.edit.data.js +15 -13
  208. package/lib/cjs/components/textfield/editForm/TextField.edit.display.js +31 -21
  209. package/lib/cjs/components/textfield/editForm/TextField.edit.validation.js +6 -6
  210. package/lib/cjs/components/time/Time.js +17 -10
  211. package/lib/cjs/components/time/editForm/Time.edit.display.js +2 -2
  212. package/lib/cjs/components/unknown/Unknown.form.js +5 -5
  213. package/lib/cjs/components/unknown/Unknown.js +2 -2
  214. package/lib/cjs/components/unknown/editForm/Unknown.edit.display.js +3 -3
  215. package/lib/cjs/components/url/Url.form.js +3 -3
  216. package/lib/cjs/components/url/Url.js +2 -2
  217. package/lib/cjs/components/url/editForm/Url.edit.display.js +3 -3
  218. package/lib/cjs/components/url/editForm/Url.edit.validation.js +1 -1
  219. package/lib/cjs/components/well/Well.form.js +1 -1
  220. package/lib/cjs/components/well/Well.js +2 -2
  221. package/lib/cjs/components/well/editForm/Well.edit.display.js +10 -10
  222. package/lib/cjs/formio.form.d.ts +2 -1
  223. package/lib/cjs/formio.form.js +38 -12
  224. package/lib/cjs/i18n.d.ts +4 -0
  225. package/lib/cjs/i18n.js +7 -3
  226. package/lib/cjs/package.json +1 -1
  227. package/lib/cjs/providers/address/AddressProvider.js +8 -5
  228. package/lib/cjs/providers/address/GoogleAddressProvider.d.ts +3 -3
  229. package/lib/cjs/providers/address/GoogleAddressProvider.js +24 -13
  230. package/lib/cjs/providers/processor/fileProcessor.js +3 -1
  231. package/lib/cjs/providers/storage/azure.js +5 -2
  232. package/lib/cjs/providers/storage/dropbox.js +4 -5
  233. package/lib/cjs/providers/storage/googleDrive.js +3 -4
  234. package/lib/cjs/providers/storage/index.js +1 -1
  235. package/lib/cjs/providers/storage/indexeddb.js +16 -6
  236. package/lib/cjs/providers/storage/s3.js +17 -6
  237. package/lib/cjs/providers/storage/uploadAdapter.js +17 -11
  238. package/lib/cjs/providers/storage/url.js +13 -11
  239. package/lib/cjs/providers/storage/xhr.js +17 -9
  240. package/lib/cjs/templates/index.js +1 -1
  241. package/lib/cjs/translations/de.d.ts +80 -0
  242. package/lib/cjs/translations/de.js +81 -0
  243. package/lib/cjs/translations/en.d.ts +0 -2
  244. package/lib/cjs/translations/en.js +7 -9
  245. package/lib/cjs/utils/ChoicesWrapper.js +2 -2
  246. package/lib/cjs/utils/builder.js +31 -7
  247. package/lib/cjs/utils/calendarUtils.js +7 -5
  248. package/lib/cjs/utils/conditionOperators/ConditionOperator.js +1 -1
  249. package/lib/cjs/utils/conditionOperators/DateGreaterThan.js +12 -4
  250. package/lib/cjs/utils/conditionOperators/IsEmptyValue.js +3 -1
  251. package/lib/cjs/utils/conditionOperators/IsEqualTo.js +10 -6
  252. package/lib/cjs/utils/conditionOperators/index.js +1 -1
  253. package/lib/cjs/utils/formUtils.js +1 -1
  254. package/lib/cjs/utils/i18n.js +7 -1
  255. package/lib/cjs/utils/index.d.ts +2 -1
  256. package/lib/cjs/utils/index.js +2 -2
  257. package/lib/cjs/utils/utils.d.ts +10 -1
  258. package/lib/cjs/utils/utils.js +175 -92
  259. package/lib/cjs/widgets/CalendarWidget.js +66 -49
  260. package/lib/cjs/widgets/InputWidget.js +6 -4
  261. package/lib/cjs/widgets/index.js +1 -1
  262. package/lib/mjs/CDN.js +12 -12
  263. package/lib/mjs/Element.d.ts +3 -2
  264. package/lib/mjs/Element.js +27 -21
  265. package/lib/mjs/Embed.js +76 -42
  266. package/lib/mjs/EventEmitter.js +1 -1
  267. package/lib/mjs/Form.d.ts +371 -341
  268. package/lib/mjs/Form.js +142 -126
  269. package/lib/mjs/FormBuilder.d.ts +3 -3
  270. package/lib/mjs/FormBuilder.js +2 -3
  271. package/lib/mjs/Formio.js +26 -23
  272. package/lib/mjs/InlineEmbed.js +23 -17
  273. package/lib/mjs/PDF.d.ts +1 -0
  274. package/lib/mjs/PDF.js +18 -15
  275. package/lib/mjs/PDFBuilder.js +51 -36
  276. package/lib/mjs/Webform.d.ts +8 -366
  277. package/lib/mjs/Webform.js +183 -250
  278. package/lib/mjs/WebformBuilder.js +220 -147
  279. package/lib/mjs/Wizard.js +93 -63
  280. package/lib/mjs/WizardBuilder.js +27 -19
  281. package/lib/mjs/addons/FormioAddon.js +1 -1
  282. package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.form.js +59 -57
  283. package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.js +24 -16
  284. package/lib/mjs/addons/index.js +3 -3
  285. package/lib/mjs/components/Components.js +0 -4
  286. package/lib/mjs/components/_classes/component/Component.form.js +11 -11
  287. package/lib/mjs/components/_classes/component/Component.js +303 -184
  288. package/lib/mjs/components/_classes/component/editForm/Component.edit.addons.js +2 -4
  289. package/lib/mjs/components/_classes/component/editForm/Component.edit.api.js +5 -5
  290. package/lib/mjs/components/_classes/component/editForm/Component.edit.conditional.js +9 -11
  291. package/lib/mjs/components/_classes/component/editForm/Component.edit.data.d.ts +37 -0
  292. package/lib/mjs/components/_classes/component/editForm/Component.edit.data.js +39 -25
  293. package/lib/mjs/components/_classes/component/editForm/Component.edit.display.js +47 -29
  294. package/lib/mjs/components/_classes/component/editForm/Component.edit.layout.js +9 -9
  295. package/lib/mjs/components/_classes/component/editForm/Component.edit.logic.js +5 -7
  296. package/lib/mjs/components/_classes/component/editForm/Component.edit.validation.js +37 -34
  297. package/lib/mjs/components/_classes/component/editForm/utils.js +12 -16
  298. package/lib/mjs/components/_classes/componentModal/ComponentModal.js +2 -2
  299. package/lib/mjs/components/_classes/field/Field.js +8 -2
  300. package/lib/mjs/components/_classes/input/Input.js +27 -23
  301. package/lib/mjs/components/_classes/list/ListComponent.form.js +1 -1
  302. package/lib/mjs/components/_classes/list/ListComponent.js +27 -18
  303. package/lib/mjs/components/_classes/list/editForm/ListComponent.edit.data.js +36 -9
  304. package/lib/mjs/components/_classes/multivalue/Multivalue.js +32 -13
  305. package/lib/mjs/components/_classes/nested/NestedComponent.form.js +3 -3
  306. package/lib/mjs/components/_classes/nested/NestedComponent.js +32 -28
  307. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +20 -15
  308. package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +19 -17
  309. package/lib/mjs/components/address/Address.js +57 -46
  310. package/lib/mjs/components/address/editForm/Address.edit.data.js +2 -2
  311. package/lib/mjs/components/address/editForm/Address.edit.display.js +2 -2
  312. package/lib/mjs/components/address/editForm/Address.edit.provider.js +53 -11
  313. package/lib/mjs/components/alert/Alert.js +22 -16
  314. package/lib/mjs/components/button/Button.form.js +1 -1
  315. package/lib/mjs/components/button/Button.js +51 -28
  316. package/lib/mjs/components/button/editForm/Button.edit.display.js +49 -9
  317. package/lib/mjs/components/checkbox/Checkbox.d.ts +1 -1
  318. package/lib/mjs/components/checkbox/Checkbox.form.js +3 -3
  319. package/lib/mjs/components/checkbox/Checkbox.js +29 -21
  320. package/lib/mjs/components/checkbox/editForm/Checkbox.edit.data.js +1 -1
  321. package/lib/mjs/components/checkbox/editForm/Checkbox.edit.display.js +13 -3
  322. package/lib/mjs/components/checkbox/editForm/Checkbox.edit.validation.js +2 -2
  323. package/lib/mjs/components/columns/Columns.form.js +1 -1
  324. package/lib/mjs/components/columns/Columns.js +24 -12
  325. package/lib/mjs/components/columns/editForm/Columns.edit.display.js +17 -17
  326. package/lib/mjs/components/container/Container.form.js +2 -2
  327. package/lib/mjs/components/container/Container.js +6 -4
  328. package/lib/mjs/components/container/editForm/Container.edit.data.js +3 -3
  329. package/lib/mjs/components/container/editForm/Container.edit.display.js +4 -4
  330. package/lib/mjs/components/content/Content.form.js +4 -2
  331. package/lib/mjs/components/content/Content.js +10 -8
  332. package/lib/mjs/components/content/editForm/Content.edit.display.js +10 -10
  333. package/lib/mjs/components/currency/Currency.form.js +3 -3
  334. package/lib/mjs/components/currency/Currency.js +19 -10
  335. package/lib/mjs/components/currency/editForm/Currency.edit.data.js +5 -5
  336. package/lib/mjs/components/currency/editForm/Currency.edit.display.js +8 -8
  337. package/lib/mjs/components/datagrid/DataGrid.form.js +3 -3
  338. package/lib/mjs/components/datagrid/DataGrid.js +90 -39
  339. package/lib/mjs/components/datagrid/editForm/DataGrid.edit.data.js +1 -1
  340. package/lib/mjs/components/datagrid/editForm/DataGrid.edit.display.js +14 -14
  341. package/lib/mjs/components/datagrid/editForm/DataGrid.edit.validation.js +3 -3
  342. package/lib/mjs/components/datamap/DataMap.form.js +2 -2
  343. package/lib/mjs/components/datamap/DataMap.js +44 -31
  344. package/lib/mjs/components/datamap/editForm/DataMap.edit.data.js +1 -1
  345. package/lib/mjs/components/datamap/editForm/DataMap.edit.display.js +8 -8
  346. package/lib/mjs/components/datetime/DateTime.form.js +5 -5
  347. package/lib/mjs/components/datetime/DateTime.js +31 -16
  348. package/lib/mjs/components/datetime/editForm/DateTime.edit.data.js +4 -3
  349. package/lib/mjs/components/datetime/editForm/DateTime.edit.date.js +10 -10
  350. package/lib/mjs/components/datetime/editForm/DateTime.edit.display.js +22 -17
  351. package/lib/mjs/components/datetime/editForm/DateTime.edit.time.js +5 -5
  352. package/lib/mjs/components/datetime/editForm/DateTime.edit.validation.js +3 -3
  353. package/lib/mjs/components/day/Day.form.js +5 -5
  354. package/lib/mjs/components/day/Day.js +147 -57
  355. package/lib/mjs/components/day/editForm/Day.edit.day.js +13 -9
  356. package/lib/mjs/components/day/editForm/Day.edit.display.js +7 -7
  357. package/lib/mjs/components/day/editForm/Day.edit.month.js +12 -8
  358. package/lib/mjs/components/day/editForm/Day.edit.validation.js +7 -7
  359. package/lib/mjs/components/day/editForm/Day.edit.year.js +8 -8
  360. package/lib/mjs/components/editgrid/EditGrid.form.js +2 -2
  361. package/lib/mjs/components/editgrid/EditGrid.js +138 -90
  362. package/lib/mjs/components/editgrid/editForm/EditGrid.edit.data.js +2 -2
  363. package/lib/mjs/components/editgrid/editForm/EditGrid.edit.display.js +7 -2
  364. package/lib/mjs/components/editgrid/editForm/EditGrid.edit.templates.js +16 -16
  365. package/lib/mjs/components/editgrid/editForm/EditGrid.edit.validation.js +3 -3
  366. package/lib/mjs/components/email/Email.js +4 -4
  367. package/lib/mjs/components/email/editForm/Email.edit.display.js +3 -3
  368. package/lib/mjs/components/email/editForm/Email.edit.validation.js +6 -6
  369. package/lib/mjs/components/fieldset/Fieldset.form.js +1 -1
  370. package/lib/mjs/components/fieldset/Fieldset.js +2 -2
  371. package/lib/mjs/components/fieldset/editForm/Fieldset.edit.display.js +8 -8
  372. package/lib/mjs/components/file/File.form.js +4 -4
  373. package/lib/mjs/components/file/File.js +131 -84
  374. package/lib/mjs/components/file/editForm/File.edit.display.js +9 -5
  375. package/lib/mjs/components/file/editForm/File.edit.file.d.ts +37 -16
  376. package/lib/mjs/components/file/editForm/File.edit.file.js +169 -72
  377. package/lib/mjs/components/file/editForm/File.edit.validation.js +2 -2
  378. package/lib/mjs/components/form/Form.form.js +3 -3
  379. package/lib/mjs/components/form/Form.js +67 -51
  380. package/lib/mjs/components/form/editForm/Form.edit.data.js +1 -3
  381. package/lib/mjs/components/form/editForm/Form.edit.display.js +6 -7
  382. package/lib/mjs/components/form/editForm/Form.edit.form.js +10 -8
  383. package/lib/mjs/components/hidden/Hidden.form.js +4 -4
  384. package/lib/mjs/components/hidden/Hidden.js +2 -2
  385. package/lib/mjs/components/hidden/editForm/Hidden.edit.data.js +3 -3
  386. package/lib/mjs/components/hidden/editForm/Hidden.edit.display.js +10 -10
  387. package/lib/mjs/components/html/HTML.js +23 -17
  388. package/lib/mjs/components/html/editForm/HTML.edit.display.js +17 -17
  389. package/lib/mjs/components/html/editForm/HTML.edit.logic.js +2 -2
  390. package/lib/mjs/components/number/Number.form.js +3 -3
  391. package/lib/mjs/components/number/Number.js +28 -12
  392. package/lib/mjs/components/number/editForm/Number.edit.data.js +3 -3
  393. package/lib/mjs/components/number/editForm/Number.edit.display.js +4 -4
  394. package/lib/mjs/components/number/editForm/Number.edit.validation.js +9 -9
  395. package/lib/mjs/components/panel/Panel.form.js +1 -1
  396. package/lib/mjs/components/panel/Panel.js +2 -2
  397. package/lib/mjs/components/panel/editForm/Panel.edit.conditional.js +6 -8
  398. package/lib/mjs/components/panel/editForm/Panel.edit.display.js +55 -29
  399. package/lib/mjs/components/password/Password.form.js +3 -3
  400. package/lib/mjs/components/password/Password.js +5 -2
  401. package/lib/mjs/components/password/editForm/Password.edit.data.js +11 -11
  402. package/lib/mjs/components/password/editForm/Password.edit.display.js +3 -3
  403. package/lib/mjs/components/password/editForm/Password.edit.validation.js +3 -3
  404. package/lib/mjs/components/phonenumber/PhoneNumber.form.js +8 -8
  405. package/lib/mjs/components/phonenumber/PhoneNumber.js +3 -3
  406. package/lib/mjs/components/phonenumber/editForm/PhoneNumber.edit.validation.js +6 -6
  407. package/lib/mjs/components/radio/Radio.form.js +3 -3
  408. package/lib/mjs/components/radio/Radio.js +56 -27
  409. package/lib/mjs/components/radio/editForm/Radio.edit.data.js +23 -9
  410. package/lib/mjs/components/radio/editForm/Radio.edit.display.js +6 -6
  411. package/lib/mjs/components/radio/editForm/Radio.edit.validation.js +2 -2
  412. package/lib/mjs/components/recaptcha/ReCaptcha.form.js +5 -5
  413. package/lib/mjs/components/recaptcha/ReCaptcha.js +7 -5
  414. package/lib/mjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +24 -24
  415. package/lib/mjs/components/select/Select.form.js +3 -3
  416. package/lib/mjs/components/select/Select.js +240 -134
  417. package/lib/mjs/components/select/editForm/Select.edit.data.d.ts +1 -1
  418. package/lib/mjs/components/select/editForm/Select.edit.data.js +191 -57
  419. package/lib/mjs/components/select/editForm/Select.edit.display.js +2 -2
  420. package/lib/mjs/components/select/editForm/Select.edit.validation.js +4 -4
  421. package/lib/mjs/components/selectboxes/SelectBoxes.form.js +3 -3
  422. package/lib/mjs/components/selectboxes/SelectBoxes.js +32 -16
  423. package/lib/mjs/components/selectboxes/editForm/SelectBoxes.edit.validation.js +5 -5
  424. package/lib/mjs/components/signature/Signature.form.js +3 -3
  425. package/lib/mjs/components/signature/Signature.js +25 -15
  426. package/lib/mjs/components/signature/editForm/Signature.edit.display.js +19 -10
  427. package/lib/mjs/components/survey/Survey.form.js +3 -3
  428. package/lib/mjs/components/survey/Survey.js +30 -17
  429. package/lib/mjs/components/survey/editForm/Survey.edit.data.js +23 -11
  430. package/lib/mjs/components/survey/editForm/Survey.edit.display.js +1 -1
  431. package/lib/mjs/components/survey/editForm/Survey.edit.validation.js +1 -1
  432. package/lib/mjs/components/table/Table.form.js +1 -1
  433. package/lib/mjs/components/table/Table.js +7 -5
  434. package/lib/mjs/components/table/editForm/Table.edit.display.js +22 -22
  435. package/lib/mjs/components/tabs/Tabs.form.js +1 -1
  436. package/lib/mjs/components/tabs/Tabs.js +26 -8
  437. package/lib/mjs/components/tabs/editForm/Tabs.edit.display.js +21 -17
  438. package/lib/mjs/components/tags/Tags.form.js +1 -1
  439. package/lib/mjs/components/tags/Tags.js +28 -12
  440. package/lib/mjs/components/tags/editForm/Tags.edit.data.js +7 -7
  441. package/lib/mjs/components/textarea/TextArea.form.js +2 -2
  442. package/lib/mjs/components/textarea/TextArea.js +75 -51
  443. package/lib/mjs/components/textarea/editForm/TextArea.edit.display.js +96 -72
  444. package/lib/mjs/components/textarea/editForm/TextArea.edit.validation.js +3 -3
  445. package/lib/mjs/components/textfield/TextField.form.js +3 -3
  446. package/lib/mjs/components/textfield/TextField.js +34 -23
  447. package/lib/mjs/components/textfield/editForm/TextField.edit.data.js +15 -13
  448. package/lib/mjs/components/textfield/editForm/TextField.edit.display.js +31 -21
  449. package/lib/mjs/components/textfield/editForm/TextField.edit.validation.js +6 -6
  450. package/lib/mjs/components/time/Time.js +17 -10
  451. package/lib/mjs/components/time/editForm/Time.edit.display.js +2 -2
  452. package/lib/mjs/components/unknown/Unknown.form.js +5 -5
  453. package/lib/mjs/components/unknown/Unknown.js +2 -2
  454. package/lib/mjs/components/unknown/editForm/Unknown.edit.display.js +3 -3
  455. package/lib/mjs/components/url/Url.form.js +3 -3
  456. package/lib/mjs/components/url/Url.js +2 -2
  457. package/lib/mjs/components/url/editForm/Url.edit.display.js +3 -3
  458. package/lib/mjs/components/url/editForm/Url.edit.validation.js +1 -1
  459. package/lib/mjs/components/well/Well.form.js +1 -1
  460. package/lib/mjs/components/well/Well.js +2 -2
  461. package/lib/mjs/components/well/editForm/Well.edit.display.js +10 -10
  462. package/lib/mjs/formio.form.d.ts +2 -1
  463. package/lib/mjs/formio.form.js +10 -8
  464. package/lib/mjs/i18n.d.ts +4 -0
  465. package/lib/mjs/i18n.js +7 -3
  466. package/lib/mjs/package.json +1 -1
  467. package/lib/mjs/providers/address/AddressProvider.js +8 -5
  468. package/lib/mjs/providers/address/GoogleAddressProvider.d.ts +3 -3
  469. package/lib/mjs/providers/address/GoogleAddressProvider.js +24 -13
  470. package/lib/mjs/providers/processor/fileProcessor.js +3 -1
  471. package/lib/mjs/providers/storage/azure.js +5 -2
  472. package/lib/mjs/providers/storage/dropbox.js +4 -5
  473. package/lib/mjs/providers/storage/googleDrive.js +3 -4
  474. package/lib/mjs/providers/storage/index.js +1 -1
  475. package/lib/mjs/providers/storage/indexeddb.js +16 -6
  476. package/lib/mjs/providers/storage/s3.js +19 -8
  477. package/lib/mjs/providers/storage/uploadAdapter.js +17 -11
  478. package/lib/mjs/providers/storage/url.js +13 -11
  479. package/lib/mjs/providers/storage/xhr.js +17 -9
  480. package/lib/mjs/templates/index.js +1 -1
  481. package/lib/mjs/translations/de.d.ts +80 -0
  482. package/lib/mjs/translations/de.js +79 -0
  483. package/lib/mjs/translations/en.d.ts +0 -2
  484. package/lib/mjs/translations/en.js +7 -9
  485. package/lib/mjs/utils/ChoicesWrapper.js +2 -2
  486. package/lib/mjs/utils/builder.js +31 -7
  487. package/lib/mjs/utils/calendarUtils.js +7 -5
  488. package/lib/mjs/utils/conditionOperators/ConditionOperator.js +1 -1
  489. package/lib/mjs/utils/conditionOperators/DateGreaterThan.js +16 -5
  490. package/lib/mjs/utils/conditionOperators/IsEmptyValue.js +3 -1
  491. package/lib/mjs/utils/conditionOperators/IsEqualTo.js +10 -6
  492. package/lib/mjs/utils/conditionOperators/index.js +1 -1
  493. package/lib/mjs/utils/formUtils.js +2 -2
  494. package/lib/mjs/utils/i18n.js +7 -1
  495. package/lib/mjs/utils/index.d.ts +2 -1
  496. package/lib/mjs/utils/index.js +3 -3
  497. package/lib/mjs/utils/utils.d.ts +10 -1
  498. package/lib/mjs/utils/utils.js +178 -91
  499. package/lib/mjs/widgets/CalendarWidget.js +67 -50
  500. package/lib/mjs/widgets/InputWidget.js +6 -4
  501. package/lib/mjs/widgets/index.js +1 -1
  502. package/package.json +3 -3
  503. package/lib/cjs/pdf.image.d.ts +0 -2
  504. package/lib/cjs/pdf.image.js +0 -94
  505. package/lib/cjs/utils/jsonlogic/operators.d.ts +0 -1
  506. package/lib/cjs/utils/jsonlogic/operators.js +0 -265
  507. package/lib/mjs/pdf.image.d.ts +0 -2
  508. package/lib/mjs/pdf.image.js +0 -94
  509. package/lib/mjs/utils/jsonlogic/operators.d.ts +0 -1
  510. package/lib/mjs/utils/jsonlogic/operators.js +0 -262
package/dist/formio.js CHANGED
@@ -2037,7 +2037,7 @@ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _argumen
2037
2037
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2038
2038
 
2039
2039
  "use strict";
2040
- eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.filterProcessInfo = exports.filterPostProcess = exports.filterPostProcessSync = exports.filterProcess = exports.filterProcessSync = void 0;\nconst lodash_1 = __webpack_require__(/*! lodash */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\");\nconst lodash_2 = __webpack_require__(/*! lodash */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\");\nconst formUtil_1 = __webpack_require__(/*! ../../utils/formUtil */ \"../core/lib/utils/formUtil/index.js\");\nconst filterProcessSync = (context) => {\n const { scope, path, value } = context;\n if (!scope.filter)\n scope.filter = {};\n if (value !== undefined) {\n scope.filter[path] = true;\n }\n};\nexports.filterProcessSync = filterProcessSync;\nconst filterProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n return (0, exports.filterProcessSync)(context);\n});\nexports.filterProcess = filterProcess;\nconst filterPostProcessSync = (context) => {\n const { scope, path, data, component, value } = context;\n if (!scope.filter)\n scope.filter = {};\n if (value === undefined || !scope.filter[path]) {\n return;\n }\n scope.filtered = scope.filtered || {};\n const modelType = (0, formUtil_1.getModelType)(component);\n if (component.type === 'address' ||\n (modelType !== 'dataObject' &&\n modelType !== 'nestedArray' &&\n modelType !== 'nestedDataArray' &&\n modelType !== 'object')) {\n (0, lodash_1.set)(scope.filtered, path, value);\n }\n else {\n if (modelType === 'dataObject') {\n (0, lodash_1.set)(data, `${path}.data`, (0, lodash_2.get)(scope.filtered, `${path}.data`, (value === null || value === void 0 ? void 0 : value.data) || {}));\n (0, lodash_1.set)(scope.filtered, path, (0, lodash_2.get)(data, path));\n }\n else if (modelType === 'nestedDataArray') {\n const filtered = (0, lodash_2.get)(scope.filtered, path, []);\n (0, lodash_1.set)(scope.filtered, path, value.map((item, index) => {\n var _a;\n return Object.assign(Object.assign({}, item), { data: ((_a = filtered[index]) === null || _a === void 0 ? void 0 : _a.data) || {} });\n }));\n }\n else if (!(0, lodash_1.has)(scope.filtered, path)) {\n (0, lodash_1.set)(scope.filtered, path, value);\n }\n else {\n (0, lodash_1.set)(data, path, (0, lodash_2.get)(scope.filtered, path, value));\n }\n }\n};\nexports.filterPostProcessSync = filterPostProcessSync;\nconst filterPostProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n return (0, exports.filterPostProcessSync)(context);\n});\nexports.filterPostProcess = filterPostProcess;\nexports.filterProcessInfo = {\n name: 'filter',\n process: exports.filterProcess,\n processSync: exports.filterProcessSync,\n postProcess: exports.filterPostProcess,\n postProcessSync: exports.filterPostProcessSync,\n shouldProcess: () => true,\n};\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/filter/index.js?\n}");
2040
+ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.filterProcessInfo = exports.filterPostProcess = exports.filterPostProcessSync = exports.getModelTypeDefaultValue = exports.filterProcess = exports.filterProcessSync = void 0;\nconst lodash_1 = __webpack_require__(/*! lodash */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\");\nconst lodash_2 = __webpack_require__(/*! lodash */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\");\nconst formUtil_1 = __webpack_require__(/*! ../../utils/formUtil */ \"../core/lib/utils/formUtil/index.js\");\nconst filterProcessSync = (context) => {\n const { scope, path, value } = context;\n if (!scope.filter)\n scope.filter = {};\n if (value !== undefined) {\n scope.filter[path] = true;\n }\n};\nexports.filterProcessSync = filterProcessSync;\nconst filterProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n return (0, exports.filterProcessSync)(context);\n});\nexports.filterProcess = filterProcess;\nconst getModelTypeDefaultValue = (modelType, context) => {\n const modelTypeDefaultValues = {\n dataObject: () => ({ data: {} }),\n nestedArray: () => [],\n nestedDataArray: () => {\n const { value } = context;\n return Array.isArray(value) ? value.map((v) => (Object.assign(Object.assign({}, v), { data: {} }))) : [];\n },\n object: () => {\n const { component } = context;\n return component.type === 'address' ? false : {};\n },\n };\n if (modelTypeDefaultValues[modelType]) {\n return modelTypeDefaultValues[modelType]();\n }\n return;\n};\nexports.getModelTypeDefaultValue = getModelTypeDefaultValue;\nconst filterPostProcessSync = (context) => {\n const { scope, path, data, component, value } = context;\n scope.filtered = scope.filtered || {};\n if (!scope.filter)\n scope.filter = {};\n if (value === undefined || !scope.filter[path]) {\n return;\n }\n const modelType = (0, formUtil_1.getModelType)(component);\n if (component.type === 'address' ||\n (modelType !== 'dataObject' &&\n modelType !== 'nestedArray' &&\n modelType !== 'nestedDataArray' &&\n modelType !== 'object')) {\n (0, lodash_1.set)(scope.filtered, path, value);\n }\n else {\n if (modelType === 'dataObject') {\n (0, lodash_1.set)(data, `${path}.data`, (0, lodash_2.get)(scope.filtered, `${path}.data`, (0, exports.getModelTypeDefaultValue)(modelType, context).data));\n (0, lodash_1.set)(scope.filtered, path, (0, lodash_2.get)(data, path));\n }\n else if (modelType === 'nestedDataArray') {\n const filtered = (0, lodash_2.get)(scope.filtered, path);\n (0, lodash_1.set)(scope.filtered, path, filtered\n ? (value || []).map((item, index) => {\n var _a;\n return Object.assign(Object.assign({}, item), { data: ((_a = filtered[index]) === null || _a === void 0 ? void 0 : _a.data) || {} });\n })\n : (0, exports.getModelTypeDefaultValue)(modelType, context));\n }\n else if (!(0, lodash_1.has)(scope.filtered, path)) {\n (0, lodash_1.set)(scope.filtered, path, (0, exports.getModelTypeDefaultValue)(modelType, context) || value);\n }\n else {\n (0, lodash_1.set)(data, path, (0, lodash_2.get)(scope.filtered, path, (0, exports.getModelTypeDefaultValue)(modelType, context) || value));\n }\n }\n};\nexports.filterPostProcessSync = filterPostProcessSync;\nconst filterPostProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n return (0, exports.filterPostProcessSync)(context);\n});\nexports.filterPostProcess = filterPostProcess;\nexports.filterProcessInfo = {\n name: 'filter',\n process: exports.filterProcess,\n processSync: exports.filterProcessSync,\n postProcess: exports.filterPostProcess,\n postProcessSync: exports.filterPostProcessSync,\n shouldProcess: () => true,\n};\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/filter/index.js?\n}");
2041
2041
 
2042
2042
  /***/ }),
2043
2043
 
@@ -2092,7 +2092,7 @@ eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexp
2092
2092
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2093
2093
 
2094
2094
  "use strict";
2095
- eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ProcessTargets = exports.Processors = exports.ProcessorMap = void 0;\nexports.process = process;\nexports.processSync = processSync;\nconst formUtil_1 = __webpack_require__(/*! ../utils/formUtil */ \"../core/lib/utils/formUtil/index.js\");\nconst processOne_1 = __webpack_require__(/*! ./processOne */ \"../core/lib/process/processOne.js\");\nconst defaultValue_1 = __webpack_require__(/*! ./defaultValue */ \"../core/lib/process/defaultValue/index.js\");\nconst fetch_1 = __webpack_require__(/*! ./fetch */ \"../core/lib/process/fetch/index.js\");\nconst calculation_1 = __webpack_require__(/*! ./calculation */ \"../core/lib/process/calculation/index.js\");\nconst logic_1 = __webpack_require__(/*! ./logic */ \"../core/lib/process/logic/index.js\");\nconst conditions_1 = __webpack_require__(/*! ./conditions */ \"../core/lib/process/conditions/index.js\");\nconst validation_1 = __webpack_require__(/*! ./validation */ \"../core/lib/process/validation/index.js\");\nconst filter_1 = __webpack_require__(/*! ./filter */ \"../core/lib/process/filter/index.js\");\nconst normalize_1 = __webpack_require__(/*! ./normalize */ \"../core/lib/process/normalize/index.js\");\nconst dereference_1 = __webpack_require__(/*! ./dereference */ \"../core/lib/process/dereference/index.js\");\nconst clearHidden_1 = __webpack_require__(/*! ./clearHidden */ \"../core/lib/process/clearHidden/index.js\");\nfunction process(context) {\n return __awaiter(this, void 0, void 0, function* () {\n const { instances, components, data, scope, flat, local, parent, parentPaths } = context;\n yield (0, formUtil_1.eachComponentDataAsync)(components, data, (component, compData, row, path, components, index, parent, paths) => __awaiter(this, void 0, void 0, function* () {\n yield (0, processOne_1.processOne)(Object.assign(Object.assign({}, context), { data: compData, component,\n components,\n path,\n paths,\n row,\n index, instance: instances\n ? instances[component.modelType === 'none' && (paths === null || paths === void 0 ? void 0 : paths.fullPath) ? paths.fullPath : path]\n : undefined, parent }));\n if (flat) {\n return true;\n }\n if (scope.noRecurse) {\n scope.noRecurse = false;\n return true;\n }\n }), false, local, parent, parentPaths, false, (component, compData, row, path, components, index, parent, paths) => __awaiter(this, void 0, void 0, function* () {\n yield (0, processOne_1.postProcessOne)(Object.assign(Object.assign({}, context), { data: compData, component,\n components,\n path,\n paths,\n row,\n index, instance: instances\n ? instances[component.modelType === 'none' && (paths === null || paths === void 0 ? void 0 : paths.fullPath) ? paths.fullPath : path]\n : undefined, parent }));\n }));\n if (scope.filtered) {\n context.data = scope.filtered || {};\n }\n return scope;\n });\n}\nfunction processSync(context) {\n const { instances, components, data, scope, flat, local, parent, parentPaths } = context;\n (0, formUtil_1.eachComponentData)(components, data, (component, compData, row, path, components, index, parent, paths) => {\n (0, processOne_1.processOneSync)(Object.assign(Object.assign({}, context), { data: compData, component,\n components,\n path,\n paths,\n row,\n index, instance: instances\n ? instances[component.modelType === 'none' && (paths === null || paths === void 0 ? void 0 : paths.fullPath) ? paths.fullPath : path]\n : undefined, parent }));\n if (flat) {\n return true;\n }\n if (scope.noRecurse) {\n scope.noRecurse = false;\n return true;\n }\n }, false, local, parent, parentPaths, false, (component, compData, row, path, components, index, parent, paths) => {\n (0, processOne_1.postProcessOneSync)(Object.assign(Object.assign({}, context), { data: compData, component,\n components,\n path,\n paths,\n row,\n index, instance: instances\n ? instances[component.modelType === 'none' && (paths === null || paths === void 0 ? void 0 : paths.fullPath) ? paths.fullPath : path]\n : undefined, parent }));\n });\n if (scope.filtered) {\n context.data = scope.filtered || {};\n }\n return scope;\n}\nexports.ProcessorMap = {\n filter: filter_1.filterProcessInfo,\n defaultValue: defaultValue_1.defaultValueProcessInfo,\n serverDefaultValue: defaultValue_1.serverDefaultValueProcessInfo,\n customDefaultValue: defaultValue_1.customDefaultValueProcessInfo,\n calculate: calculation_1.calculateProcessInfo,\n conditions: conditions_1.conditionProcessInfo,\n customConditions: conditions_1.customConditionProcessInfo,\n simpleConditions: conditions_1.simpleConditionProcessInfo,\n normalize: normalize_1.normalizeProcessInfo,\n dereference: dereference_1.dereferenceProcessInfo,\n clearHidden: clearHidden_1.clearHiddenProcessInfo,\n fetch: fetch_1.fetchProcessInfo,\n logic: logic_1.logicProcessInfo,\n validate: validation_1.validateProcessInfo,\n validateCustom: validation_1.validateCustomProcessInfo,\n validateServer: validation_1.validateServerProcessInfo,\n};\nexports.Processors = [\n filter_1.filterProcessInfo,\n defaultValue_1.defaultValueProcessInfo,\n normalize_1.normalizeProcessInfo,\n dereference_1.dereferenceProcessInfo,\n fetch_1.fetchProcessInfo,\n calculation_1.calculateProcessInfo,\n conditions_1.conditionProcessInfo,\n logic_1.logicProcessInfo,\n clearHidden_1.clearHiddenProcessInfo,\n validation_1.postValidateProcessInfo,\n];\n// Deprecated: Use Processors instead\nexports.ProcessTargets = {\n submission: [\n filter_1.filterProcessInfo,\n defaultValue_1.serverDefaultValueProcessInfo,\n normalize_1.normalizeProcessInfo,\n dereference_1.dereferenceProcessInfo,\n fetch_1.fetchProcessInfo,\n conditions_1.simpleConditionProcessInfo,\n validation_1.validateServerProcessInfo,\n ],\n evaluator: [\n defaultValue_1.customDefaultValueProcessInfo,\n calculation_1.calculateProcessInfo,\n logic_1.logicProcessInfo,\n conditions_1.conditionProcessInfo,\n clearHidden_1.clearHiddenProcessInfo,\n validation_1.validateProcessInfo,\n ],\n};\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/process.js?\n}");
2095
+ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ProcessTargets = exports.Processors = exports.ProcessorMap = void 0;\nexports.process = process;\nexports.processSync = processSync;\nconst formUtil_1 = __webpack_require__(/*! ../utils/formUtil */ \"../core/lib/utils/formUtil/index.js\");\nconst processOne_1 = __webpack_require__(/*! ./processOne */ \"../core/lib/process/processOne.js\");\nconst defaultValue_1 = __webpack_require__(/*! ./defaultValue */ \"../core/lib/process/defaultValue/index.js\");\nconst fetch_1 = __webpack_require__(/*! ./fetch */ \"../core/lib/process/fetch/index.js\");\nconst calculation_1 = __webpack_require__(/*! ./calculation */ \"../core/lib/process/calculation/index.js\");\nconst logic_1 = __webpack_require__(/*! ./logic */ \"../core/lib/process/logic/index.js\");\nconst conditions_1 = __webpack_require__(/*! ./conditions */ \"../core/lib/process/conditions/index.js\");\nconst validation_1 = __webpack_require__(/*! ./validation */ \"../core/lib/process/validation/index.js\");\nconst filter_1 = __webpack_require__(/*! ./filter */ \"../core/lib/process/filter/index.js\");\nconst normalize_1 = __webpack_require__(/*! ./normalize */ \"../core/lib/process/normalize/index.js\");\nconst dereference_1 = __webpack_require__(/*! ./dereference */ \"../core/lib/process/dereference/index.js\");\nconst clearHidden_1 = __webpack_require__(/*! ./clearHidden */ \"../core/lib/process/clearHidden/index.js\");\nconst serverOverride_1 = __webpack_require__(/*! ./serverOverride */ \"../core/lib/process/serverOverride/index.js\");\nfunction process(context) {\n return __awaiter(this, void 0, void 0, function* () {\n const { instances, components, data, scope, flat, local, parent, parentPaths } = context;\n yield (0, formUtil_1.eachComponentDataAsync)(components, data, (component, compData, row, path, components, index, parent, paths) => __awaiter(this, void 0, void 0, function* () {\n yield (0, processOne_1.processOne)(Object.assign(Object.assign({}, context), { data: compData, component,\n components,\n path,\n paths,\n row,\n index, instance: instances\n ? instances[component.modelType === 'none' && (paths === null || paths === void 0 ? void 0 : paths.fullPath) ? paths.fullPath : path]\n : undefined, parent }));\n if (flat) {\n return true;\n }\n if (scope.noRecurse) {\n scope.noRecurse = false;\n return true;\n }\n }), false, local, parent, parentPaths, false, (component, compData, row, path, components, index, parent, paths) => __awaiter(this, void 0, void 0, function* () {\n yield (0, processOne_1.postProcessOne)(Object.assign(Object.assign({}, context), { data: compData, component,\n components,\n path,\n paths,\n row,\n index, instance: instances\n ? instances[component.modelType === 'none' && (paths === null || paths === void 0 ? void 0 : paths.fullPath) ? paths.fullPath : path]\n : undefined, parent }));\n }));\n if (scope.filtered) {\n context.data = scope.filtered || {};\n }\n return scope;\n });\n}\nfunction processSync(context) {\n const { instances, components, data, scope, flat, local, parent, parentPaths } = context;\n (0, formUtil_1.eachComponentData)(components, data, (component, compData, row, path, components, index, parent, paths) => {\n (0, processOne_1.processOneSync)(Object.assign(Object.assign({}, context), { data: compData, component,\n components,\n path,\n paths,\n row,\n index, instance: instances\n ? instances[component.modelType === 'none' && (paths === null || paths === void 0 ? void 0 : paths.fullPath) ? paths.fullPath : path]\n : undefined, parent }));\n if (flat) {\n return true;\n }\n if (scope.noRecurse) {\n scope.noRecurse = false;\n return true;\n }\n }, false, local, parent, parentPaths, false, (component, compData, row, path, components, index, parent, paths) => {\n (0, processOne_1.postProcessOneSync)(Object.assign(Object.assign({}, context), { data: compData, component,\n components,\n path,\n paths,\n row,\n index, instance: instances\n ? instances[component.modelType === 'none' && (paths === null || paths === void 0 ? void 0 : paths.fullPath) ? paths.fullPath : path]\n : undefined, parent }));\n });\n if (scope.filtered) {\n context.data = scope.filtered || {};\n }\n return scope;\n}\nexports.ProcessorMap = {\n serverOverride: serverOverride_1.serverOverrideProcessInfo,\n filter: filter_1.filterProcessInfo,\n defaultValue: defaultValue_1.defaultValueProcessInfo,\n serverDefaultValue: defaultValue_1.serverDefaultValueProcessInfo,\n customDefaultValue: defaultValue_1.customDefaultValueProcessInfo,\n calculate: calculation_1.calculateProcessInfo,\n conditions: conditions_1.conditionProcessInfo,\n customConditions: conditions_1.customConditionProcessInfo,\n simpleConditions: conditions_1.simpleConditionProcessInfo,\n normalize: normalize_1.normalizeProcessInfo,\n dereference: dereference_1.dereferenceProcessInfo,\n clearHidden: clearHidden_1.clearHiddenProcessInfo,\n fetch: fetch_1.fetchProcessInfo,\n logic: logic_1.logicProcessInfo,\n validate: validation_1.validateProcessInfo,\n validateCustom: validation_1.validateCustomProcessInfo,\n validateServer: validation_1.validateServerProcessInfo,\n};\nexports.Processors = [\n serverOverride_1.serverOverrideProcessInfo,\n filter_1.filterProcessInfo,\n defaultValue_1.defaultValueProcessInfo,\n normalize_1.normalizeProcessInfo,\n dereference_1.dereferenceProcessInfo,\n fetch_1.fetchProcessInfo,\n calculation_1.calculateProcessInfo,\n conditions_1.conditionProcessInfo,\n logic_1.logicProcessInfo,\n clearHidden_1.clearHiddenProcessInfo,\n validation_1.postValidateProcessInfo,\n];\n// Deprecated: Use Processors instead\nexports.ProcessTargets = {\n submission: [\n serverOverride_1.serverOverrideProcessInfo,\n filter_1.filterProcessInfo,\n defaultValue_1.serverDefaultValueProcessInfo,\n normalize_1.normalizeProcessInfo,\n dereference_1.dereferenceProcessInfo,\n fetch_1.fetchProcessInfo,\n conditions_1.simpleConditionProcessInfo,\n validation_1.validateServerProcessInfo,\n ],\n evaluator: [\n defaultValue_1.customDefaultValueProcessInfo,\n calculation_1.calculateProcessInfo,\n logic_1.logicProcessInfo,\n conditions_1.conditionProcessInfo,\n clearHidden_1.clearHiddenProcessInfo,\n validation_1.validateProcessInfo,\n ],\n};\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/process.js?\n}");
2096
2096
 
2097
2097
  /***/ }),
2098
2098
 
@@ -2107,6 +2107,17 @@ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _argumen
2107
2107
 
2108
2108
  /***/ }),
2109
2109
 
2110
+ /***/ "../core/lib/process/serverOverride/index.js":
2111
+ /*!***************************************************!*\
2112
+ !*** ../core/lib/process/serverOverride/index.js ***!
2113
+ \***************************************************/
2114
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2115
+
2116
+ "use strict";
2117
+ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.serverOverrideProcessInfo = exports.serverOverrideProcessSync = exports.serverOverrideProcess = void 0;\nconst lodash_1 = __webpack_require__(/*! lodash */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\");\nconst serverOverrideProcess = (context) => __awaiter(void 0, void 0, void 0, function* () {\n return (0, exports.serverOverrideProcessSync)(context);\n});\nexports.serverOverrideProcess = serverOverrideProcess;\nconst serverOverrideProcessSync = (context) => {\n const { component } = context;\n (0, lodash_1.assign)(component, component.serverOverride || {});\n};\nexports.serverOverrideProcessSync = serverOverrideProcessSync;\nexports.serverOverrideProcessInfo = {\n name: 'serverOverride',\n shouldProcess: () => true,\n process: exports.serverOverrideProcess,\n processSync: exports.serverOverrideProcessSync,\n};\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/serverOverride/index.js?\n}");
2118
+
2119
+ /***/ }),
2120
+
2110
2121
  /***/ "../core/lib/process/validation/i18n/en.js":
2111
2122
  /*!*************************************************!*\
2112
2123
  !*** ../core/lib/process/validation/i18n/en.js ***!
@@ -2158,7 +2169,7 @@ eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexp
2158
2169
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2159
2170
 
2160
2171
  "use strict";
2161
- eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.clientRules = void 0;\nconst validateDate_1 = __webpack_require__(/*! ./validateDate */ \"../core/lib/process/validation/rules/validateDate.js\");\nconst validateDay_1 = __webpack_require__(/*! ./validateDay */ \"../core/lib/process/validation/rules/validateDay.js\");\nconst validateEmail_1 = __webpack_require__(/*! ./validateEmail */ \"../core/lib/process/validation/rules/validateEmail.js\");\nconst validateJson_1 = __webpack_require__(/*! ./validateJson */ \"../core/lib/process/validation/rules/validateJson.js\");\nconst validateMask_1 = __webpack_require__(/*! ./validateMask */ \"../core/lib/process/validation/rules/validateMask.js\");\nconst validateMaximumDay_1 = __webpack_require__(/*! ./validateMaximumDay */ \"../core/lib/process/validation/rules/validateMaximumDay.js\");\nconst validateMaximumLength_1 = __webpack_require__(/*! ./validateMaximumLength */ \"../core/lib/process/validation/rules/validateMaximumLength.js\");\nconst validateMaximumSelectedCount_1 = __webpack_require__(/*! ./validateMaximumSelectedCount */ \"../core/lib/process/validation/rules/validateMaximumSelectedCount.js\");\nconst validateMaximumValue_1 = __webpack_require__(/*! ./validateMaximumValue */ \"../core/lib/process/validation/rules/validateMaximumValue.js\");\nconst validateMaximumWords_1 = __webpack_require__(/*! ./validateMaximumWords */ \"../core/lib/process/validation/rules/validateMaximumWords.js\");\nconst validateMaximumYear_1 = __webpack_require__(/*! ./validateMaximumYear */ \"../core/lib/process/validation/rules/validateMaximumYear.js\");\nconst validateMinimumDay_1 = __webpack_require__(/*! ./validateMinimumDay */ \"../core/lib/process/validation/rules/validateMinimumDay.js\");\nconst validateMinimumLength_1 = __webpack_require__(/*! ./validateMinimumLength */ \"../core/lib/process/validation/rules/validateMinimumLength.js\");\nconst validateMinimumSelectedCount_1 = __webpack_require__(/*! ./validateMinimumSelectedCount */ \"../core/lib/process/validation/rules/validateMinimumSelectedCount.js\");\nconst validateMinimumValue_1 = __webpack_require__(/*! ./validateMinimumValue */ \"../core/lib/process/validation/rules/validateMinimumValue.js\");\nconst validateMinimumWords_1 = __webpack_require__(/*! ./validateMinimumWords */ \"../core/lib/process/validation/rules/validateMinimumWords.js\");\nconst validateMinimumYear_1 = __webpack_require__(/*! ./validateMinimumYear */ \"../core/lib/process/validation/rules/validateMinimumYear.js\");\nconst validateMultiple_1 = __webpack_require__(/*! ./validateMultiple */ \"../core/lib/process/validation/rules/validateMultiple.js\");\nconst validateRegexPattern_1 = __webpack_require__(/*! ./validateRegexPattern */ \"../core/lib/process/validation/rules/validateRegexPattern.js\");\nconst validateRequired_1 = __webpack_require__(/*! ./validateRequired */ \"../core/lib/process/validation/rules/validateRequired.js\");\nconst validateRequiredDay_1 = __webpack_require__(/*! ./validateRequiredDay */ \"../core/lib/process/validation/rules/validateRequiredDay.js\");\nconst validateTime_1 = __webpack_require__(/*! ./validateTime */ \"../core/lib/process/validation/rules/validateTime.js\");\nconst validateUrl_1 = __webpack_require__(/*! ./validateUrl */ \"../core/lib/process/validation/rules/validateUrl.js\");\nconst validateValueProperty_1 = __webpack_require__(/*! ./validateValueProperty */ \"../core/lib/process/validation/rules/validateValueProperty.js\");\nconst validateNumber_1 = __webpack_require__(/*! ./validateNumber */ \"../core/lib/process/validation/rules/validateNumber.js\");\n// These are the validations that are performed in the client.\nexports.clientRules = [\n validateDate_1.validateDateInfo,\n validateDay_1.validateDayInfo,\n validateEmail_1.validateEmailInfo,\n validateJson_1.validateJsonInfo,\n validateMask_1.validateMaskInfo,\n validateMaximumDay_1.validateMaximumDayInfo,\n validateMaximumLength_1.validateMaximumLengthInfo,\n validateMaximumSelectedCount_1.validateMaximumSelectedCountInfo,\n validateMaximumValue_1.validateMaximumValueInfo,\n validateMaximumWords_1.validateMaximumWordsInfo,\n validateMaximumYear_1.validateMaximumYearInfo,\n validateMinimumDay_1.validateMinimumDayInfo,\n validateMinimumLength_1.validateMinimumLengthInfo,\n validateMinimumSelectedCount_1.validateMinimumSelectedCountInfo,\n validateMinimumValue_1.validateMinimumValueInfo,\n validateMinimumWords_1.validateMinimumWordsInfo,\n validateMinimumYear_1.validateMinimumYearInfo,\n validateMultiple_1.validateMultipleInfo,\n validateRegexPattern_1.validateRegexPatternInfo,\n validateRequired_1.validateRequiredInfo,\n validateRequiredDay_1.validateRequiredDayInfo,\n validateTime_1.validateTimeInfo,\n validateUrl_1.validateUrlInfo,\n validateValueProperty_1.validateValuePropertyInfo,\n validateNumber_1.validateNumberInfo,\n];\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/validation/rules/clientRules.js?\n}");
2172
+ eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.clientRules = void 0;\nconst validateDate_1 = __webpack_require__(/*! ./validateDate */ \"../core/lib/process/validation/rules/validateDate.js\");\nconst validateDay_1 = __webpack_require__(/*! ./validateDay */ \"../core/lib/process/validation/rules/validateDay.js\");\nconst validateEmail_1 = __webpack_require__(/*! ./validateEmail */ \"../core/lib/process/validation/rules/validateEmail.js\");\nconst validateJson_1 = __webpack_require__(/*! ./validateJson */ \"../core/lib/process/validation/rules/validateJson.js\");\nconst validateMask_1 = __webpack_require__(/*! ./validateMask */ \"../core/lib/process/validation/rules/validateMask.js\");\nconst validateMaximumDay_1 = __webpack_require__(/*! ./validateMaximumDay */ \"../core/lib/process/validation/rules/validateMaximumDay.js\");\nconst validateMaximumDate_1 = __webpack_require__(/*! ./validateMaximumDate */ \"../core/lib/process/validation/rules/validateMaximumDate.js\");\nconst validateMaximumLength_1 = __webpack_require__(/*! ./validateMaximumLength */ \"../core/lib/process/validation/rules/validateMaximumLength.js\");\nconst validateMaximumSelectedCount_1 = __webpack_require__(/*! ./validateMaximumSelectedCount */ \"../core/lib/process/validation/rules/validateMaximumSelectedCount.js\");\nconst validateMaximumValue_1 = __webpack_require__(/*! ./validateMaximumValue */ \"../core/lib/process/validation/rules/validateMaximumValue.js\");\nconst validateMaximumWords_1 = __webpack_require__(/*! ./validateMaximumWords */ \"../core/lib/process/validation/rules/validateMaximumWords.js\");\nconst validateMaximumYear_1 = __webpack_require__(/*! ./validateMaximumYear */ \"../core/lib/process/validation/rules/validateMaximumYear.js\");\nconst validateMinimumDay_1 = __webpack_require__(/*! ./validateMinimumDay */ \"../core/lib/process/validation/rules/validateMinimumDay.js\");\nconst validateMinimumDate_1 = __webpack_require__(/*! ./validateMinimumDate */ \"../core/lib/process/validation/rules/validateMinimumDate.js\");\nconst validateMinimumLength_1 = __webpack_require__(/*! ./validateMinimumLength */ \"../core/lib/process/validation/rules/validateMinimumLength.js\");\nconst validateMinimumSelectedCount_1 = __webpack_require__(/*! ./validateMinimumSelectedCount */ \"../core/lib/process/validation/rules/validateMinimumSelectedCount.js\");\nconst validateMinimumValue_1 = __webpack_require__(/*! ./validateMinimumValue */ \"../core/lib/process/validation/rules/validateMinimumValue.js\");\nconst validateMinimumWords_1 = __webpack_require__(/*! ./validateMinimumWords */ \"../core/lib/process/validation/rules/validateMinimumWords.js\");\nconst validateMinimumYear_1 = __webpack_require__(/*! ./validateMinimumYear */ \"../core/lib/process/validation/rules/validateMinimumYear.js\");\nconst validateMultiple_1 = __webpack_require__(/*! ./validateMultiple */ \"../core/lib/process/validation/rules/validateMultiple.js\");\nconst validateRegexPattern_1 = __webpack_require__(/*! ./validateRegexPattern */ \"../core/lib/process/validation/rules/validateRegexPattern.js\");\nconst validateRequired_1 = __webpack_require__(/*! ./validateRequired */ \"../core/lib/process/validation/rules/validateRequired.js\");\nconst validateRequiredDay_1 = __webpack_require__(/*! ./validateRequiredDay */ \"../core/lib/process/validation/rules/validateRequiredDay.js\");\nconst validateTime_1 = __webpack_require__(/*! ./validateTime */ \"../core/lib/process/validation/rules/validateTime.js\");\nconst validateUrl_1 = __webpack_require__(/*! ./validateUrl */ \"../core/lib/process/validation/rules/validateUrl.js\");\nconst validateValueProperty_1 = __webpack_require__(/*! ./validateValueProperty */ \"../core/lib/process/validation/rules/validateValueProperty.js\");\nconst validateNumber_1 = __webpack_require__(/*! ./validateNumber */ \"../core/lib/process/validation/rules/validateNumber.js\");\n// These are the validations that are performed in the client.\nexports.clientRules = [\n validateDate_1.validateDateInfo,\n validateDay_1.validateDayInfo,\n validateEmail_1.validateEmailInfo,\n validateJson_1.validateJsonInfo,\n validateMask_1.validateMaskInfo,\n validateMaximumDay_1.validateMaximumDayInfo,\n validateMaximumDate_1.validateMaximumDateInfo,\n validateMaximumLength_1.validateMaximumLengthInfo,\n validateMaximumSelectedCount_1.validateMaximumSelectedCountInfo,\n validateMaximumValue_1.validateMaximumValueInfo,\n validateMaximumWords_1.validateMaximumWordsInfo,\n validateMaximumYear_1.validateMaximumYearInfo,\n validateMinimumDay_1.validateMinimumDayInfo,\n validateMinimumDate_1.validateMinimumDateInfo,\n validateMinimumLength_1.validateMinimumLengthInfo,\n validateMinimumSelectedCount_1.validateMinimumSelectedCountInfo,\n validateMinimumValue_1.validateMinimumValueInfo,\n validateMinimumWords_1.validateMinimumWordsInfo,\n validateMinimumYear_1.validateMinimumYearInfo,\n validateMultiple_1.validateMultipleInfo,\n validateRegexPattern_1.validateRegexPatternInfo,\n validateRequired_1.validateRequiredInfo,\n validateRequiredDay_1.validateRequiredDayInfo,\n validateTime_1.validateTimeInfo,\n validateUrl_1.validateUrlInfo,\n validateValueProperty_1.validateValuePropertyInfo,\n validateNumber_1.validateNumberInfo,\n];\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/validation/rules/clientRules.js?\n}");
2162
2173
 
2163
2174
  /***/ }),
2164
2175
 
@@ -2213,7 +2224,7 @@ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _argumen
2213
2224
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2214
2225
 
2215
2226
  "use strict";
2216
- eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.validateCustomInfo = exports.validateCustomSync = exports.shouldValidate = exports.validateCustom = void 0;\nconst error_1 = __webpack_require__(/*! ../../../error */ \"../core/lib/error/index.js\");\nconst utils_1 = __webpack_require__(/*! ../../../utils */ \"../core/lib/utils/index.js\");\nconst validateCustom = (context) => __awaiter(void 0, void 0, void 0, function* () {\n return (0, exports.validateCustomSync)(context);\n});\nexports.validateCustom = validateCustom;\nconst shouldValidate = (context) => {\n var _a;\n const { component } = context;\n const customValidation = (_a = component.validate) === null || _a === void 0 ? void 0 : _a.custom;\n if (!customValidation) {\n return false;\n }\n return true;\n};\nexports.shouldValidate = shouldValidate;\nconst validateCustomSync = (context) => {\n var _a;\n const { component, index, instance, value, data, row } = context;\n const customValidation = (_a = component.validate) === null || _a === void 0 ? void 0 : _a.custom;\n try {\n if (!(0, exports.shouldValidate)(context) || !customValidation) {\n return null;\n }\n const validationContext = (instance === null || instance === void 0 ? void 0 : instance.evalContext) ? instance.evalContext() : context;\n // We have to augment some of the evalContext values here if the evalContext comes from the instance\n const isValid = (0, utils_1.evaluate)(customValidation, validationContext, 'valid', true, (context) => {\n context.component = component;\n context.data = data;\n context.row = row;\n context.rowIndex = typeof index === 'number' ? index : validationContext.rowIndex;\n context.instance = instance;\n context.valid = true;\n context.input = value;\n });\n if (isValid === null || isValid === true) {\n return null;\n }\n return new error_1.FieldError(typeof isValid === 'string' ? isValid : 'custom', Object.assign(Object.assign({}, context), { hasLabel: false, setting: customValidation }), 'custom');\n }\n catch (err) {\n throw new error_1.ProcessorError(err.message || err, context, 'validate:validateCustom');\n }\n};\nexports.validateCustomSync = validateCustomSync;\nexports.validateCustomInfo = {\n name: 'validateCustom',\n process: exports.validateCustom,\n processSync: exports.validateCustomSync,\n shouldProcess: exports.shouldValidate,\n};\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/validation/rules/validateCustom.js?\n}");
2227
+ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.validateCustomInfo = exports.validateCustomSync = exports.shouldValidate = exports.validateCustom = void 0;\nconst error_1 = __webpack_require__(/*! ../../../error */ \"../core/lib/error/index.js\");\nconst utils_1 = __webpack_require__(/*! ../../../utils */ \"../core/lib/utils/index.js\");\nconst validateCustom = (context) => __awaiter(void 0, void 0, void 0, function* () {\n return (0, exports.validateCustomSync)(context);\n});\nexports.validateCustom = validateCustom;\nconst shouldValidate = (context) => {\n var _a;\n const { component } = context;\n const customValidation = (_a = component.validate) === null || _a === void 0 ? void 0 : _a.custom;\n if (!customValidation) {\n return false;\n }\n return true;\n};\nexports.shouldValidate = shouldValidate;\nconst validateCustomSync = (context) => {\n var _a;\n const { component, index, instance, value, data, row } = context;\n const customValidation = (_a = component.validate) === null || _a === void 0 ? void 0 : _a.custom;\n try {\n if (!(0, exports.shouldValidate)(context) || !customValidation) {\n return null;\n }\n const validationContext = (instance === null || instance === void 0 ? void 0 : instance.evalContext) ? instance.evalContext() : context;\n // We have to augment some of the evalContext values here if the evalContext comes from the instance\n const isValid = (0, utils_1.evaluate)(customValidation, validationContext, 'valid', true, (context) => {\n context.component = component;\n context.data = data;\n context.row = row;\n context.rowIndex = typeof index === 'number' ? index : validationContext.rowIndex;\n context.instance = instance;\n context.valid = true;\n context.input = value;\n });\n if (isValid === null || isValid === true || isValid === undefined) {\n return null;\n }\n return new error_1.FieldError(typeof isValid === 'string' ? isValid : 'custom', Object.assign(Object.assign({}, context), { hasLabel: false, setting: customValidation }), 'custom');\n }\n catch (err) {\n throw new error_1.ProcessorError(err.message || err, context, 'validate:validateCustom');\n }\n};\nexports.validateCustomSync = validateCustomSync;\nexports.validateCustomInfo = {\n name: 'validateCustom',\n process: exports.validateCustom,\n processSync: exports.validateCustomSync,\n shouldProcess: exports.shouldValidate,\n};\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/validation/rules/validateCustom.js?\n}");
2217
2228
 
2218
2229
  /***/ }),
2219
2230
 
@@ -2272,6 +2283,17 @@ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _argumen
2272
2283
 
2273
2284
  /***/ }),
2274
2285
 
2286
+ /***/ "../core/lib/process/validation/rules/validateMaximumDate.js":
2287
+ /*!*******************************************************************!*\
2288
+ !*** ../core/lib/process/validation/rules/validateMaximumDate.js ***!
2289
+ \*******************************************************************/
2290
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2291
+
2292
+ "use strict";
2293
+ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.validateMaximumDateInfo = exports.validateMaximumDateSync = exports.validateMaximumDate = exports.shouldValidate = void 0;\nconst error_1 = __webpack_require__(/*! ../../../error */ \"../core/lib/error/index.js\");\nconst date_1 = __webpack_require__(/*! ../../../utils/date */ \"../core/lib/utils/date.js\");\nconst isValidatableDateComponent = (component) => {\n var _a;\n return component && component.type === 'datetime' && ((_a = component.widget) === null || _a === void 0 ? void 0 : _a.hasOwnProperty('maxDate'));\n};\nconst shouldValidate = (context) => {\n var _a;\n const { component, value } = context;\n if (!isValidatableDateComponent(component) || !value) {\n return false;\n }\n if (!(0, date_1.getDateSetting)((_a = component.widget) === null || _a === void 0 ? void 0 : _a.maxDate)) {\n return false;\n }\n return true;\n};\nexports.shouldValidate = shouldValidate;\nconst validateMaximumDate = (context) => __awaiter(void 0, void 0, void 0, function* () {\n return (0, exports.validateMaximumDateSync)(context);\n});\nexports.validateMaximumDate = validateMaximumDate;\nconst validateMaximumDateSync = (context) => {\n var _a;\n const { component, value } = context;\n if (!(0, exports.shouldValidate)(context)) {\n return null;\n }\n if (typeof value !== 'string') {\n throw new error_1.ProcessorError(`Cannot validate day value ${value} because it is not a string`, context, 'validate:validateMaximumDate');\n }\n const date = (0, date_1.dayjs)(value);\n let maxDate = (0, date_1.getDateSetting)((_a = component.widget) === null || _a === void 0 ? void 0 : _a.maxDate);\n if (maxDate === null) {\n return null;\n }\n maxDate = component.enableTime ? (0, date_1.dayjs)(maxDate) : (0, date_1.dayjs)(maxDate).endOf('day');\n const error = new error_1.FieldError('maxDate', Object.assign(Object.assign({}, context), { maxDate: maxDate, setting: String(maxDate) }));\n return date.isBefore(maxDate) || date.isSame(maxDate) ? null : error;\n};\nexports.validateMaximumDateSync = validateMaximumDateSync;\nexports.validateMaximumDateInfo = {\n name: 'validateMaximumDate',\n process: exports.validateMaximumDate,\n processSync: exports.validateMaximumDateSync,\n shouldProcess: exports.shouldValidate,\n};\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/validation/rules/validateMaximumDate.js?\n}");
2294
+
2295
+ /***/ }),
2296
+
2275
2297
  /***/ "../core/lib/process/validation/rules/validateMaximumDay.js":
2276
2298
  /*!******************************************************************!*\
2277
2299
  !*** ../core/lib/process/validation/rules/validateMaximumDay.js ***!
@@ -2338,6 +2360,17 @@ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _argumen
2338
2360
 
2339
2361
  /***/ }),
2340
2362
 
2363
+ /***/ "../core/lib/process/validation/rules/validateMinimumDate.js":
2364
+ /*!*******************************************************************!*\
2365
+ !*** ../core/lib/process/validation/rules/validateMinimumDate.js ***!
2366
+ \*******************************************************************/
2367
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2368
+
2369
+ "use strict";
2370
+ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.validateMinimumDateInfo = exports.validateMinimumDateSync = exports.validateMinimumDate = exports.shouldValidate = void 0;\nconst error_1 = __webpack_require__(/*! ../../../error */ \"../core/lib/error/index.js\");\nconst date_1 = __webpack_require__(/*! ../../../utils/date */ \"../core/lib/utils/date.js\");\nconst isValidatableDateComponent = (component) => {\n var _a;\n return component && component.type === 'datetime' && ((_a = component.widget) === null || _a === void 0 ? void 0 : _a.hasOwnProperty('minDate'));\n};\nconst shouldValidate = (context) => {\n var _a;\n const { component, value } = context;\n if (!isValidatableDateComponent(component) || !value) {\n return false;\n }\n if (!(0, date_1.getDateSetting)((_a = component.widget) === null || _a === void 0 ? void 0 : _a.minDate)) {\n return false;\n }\n return true;\n};\nexports.shouldValidate = shouldValidate;\nconst validateMinimumDate = (context) => __awaiter(void 0, void 0, void 0, function* () {\n return (0, exports.validateMinimumDateSync)(context);\n});\nexports.validateMinimumDate = validateMinimumDate;\nconst validateMinimumDateSync = (context) => {\n var _a;\n const { component, value } = context;\n if (!(0, exports.shouldValidate)(context)) {\n return null;\n }\n if (typeof value !== 'string') {\n throw new error_1.ProcessorError(`Cannot validate day value ${value} because it is not a string`, context, 'validate:validateMinimumDate');\n }\n const date = (0, date_1.dayjs)(value);\n let minDate = (0, date_1.getDateSetting)((_a = component.widget) === null || _a === void 0 ? void 0 : _a.minDate);\n if (minDate === null) {\n return null;\n }\n minDate = component.enableTime ? (0, date_1.dayjs)(minDate) : (0, date_1.dayjs)(minDate).startOf('day');\n const error = new error_1.FieldError('minDate', Object.assign(Object.assign({}, context), { minDate: minDate, setting: String(minDate) }));\n return date.isAfter(minDate) || date.isSame(minDate) ? null : error;\n};\nexports.validateMinimumDateSync = validateMinimumDateSync;\nexports.validateMinimumDateInfo = {\n name: 'validateMinimumDate',\n process: exports.validateMinimumDate,\n processSync: exports.validateMinimumDateSync,\n shouldProcess: exports.shouldValidate,\n};\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/validation/rules/validateMinimumDate.js?\n}");
2371
+
2372
+ /***/ }),
2373
+
2341
2374
  /***/ "../core/lib/process/validation/rules/validateMinimumDay.js":
2342
2375
  /*!******************************************************************!*\
2343
2376
  !*** ../core/lib/process/validation/rules/validateMinimumDay.js ***!
@@ -2532,7 +2565,7 @@ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _argumen
2532
2565
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2533
2566
 
2534
2567
  "use strict";
2535
- eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.doesArrayDataHaveValue = exports.hasValue = exports.interpolateErrors = void 0;\nexports.isComponentPersistent = isComponentPersistent;\nexports.isComponentProtected = isComponentProtected;\nexports.isEmptyObject = isEmptyObject;\nexports.toBoolean = toBoolean;\nexports.isPromise = isPromise;\nexports.isObject = isObject;\nconst utils_1 = __webpack_require__(/*! ../../utils */ \"../core/lib/utils/index.js\");\nconst i18n_1 = __webpack_require__(/*! ./i18n */ \"../core/lib/process/validation/i18n/index.js\");\nconst isEmpty_1 = __importDefault(__webpack_require__(/*! lodash/isEmpty */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isEmpty.js\"));\nconst isObject_1 = __importDefault(__webpack_require__(/*! lodash/isObject */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js\"));\nconst isPlainObject_1 = __importDefault(__webpack_require__(/*! lodash/isPlainObject */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isPlainObject.js\"));\nfunction isComponentPersistent(component) {\n return component.persistent ? component.persistent : true;\n}\nfunction isComponentProtected(component) {\n return component.protected ? component.protected : false;\n}\nfunction isEmptyObject(obj) {\n return !!obj && Object.keys(obj).length === 0 && obj.constructor === Object;\n}\nfunction toBoolean(value) {\n switch (typeof value) {\n case 'string':\n if (value === 'true' || value === '1') {\n return true;\n }\n else if (value === 'false' || value === '0') {\n return false;\n }\n else {\n throw `Cannot coerce string ${value} to boolean}`;\n }\n case 'boolean':\n return value;\n default:\n return !!value;\n }\n}\nfunction isPromise(value) {\n return (value &&\n value.then &&\n typeof value.then === 'function' &&\n Object.prototype.toString.call(value) === '[object Promise]');\n}\nfunction isObject(obj) {\n return obj != null && (typeof obj === 'object' || typeof obj === 'function');\n}\nconst getCustomErrorMessage = ({ errorKeyOrMessage, context }) => { var _a, _b; return ((_b = (_a = context.component) === null || _a === void 0 ? void 0 : _a.errors) === null || _b === void 0 ? void 0 : _b[errorKeyOrMessage]) || ''; };\n/**\n * Interpolates @formio/core errors so that they are compatible with the renderer\n * @param {FieldError[]} errors\n * @param firstPass\n * @returns {[]}\n */\nconst interpolateErrors = (errors, lang = 'en') => {\n return errors.map((error) => {\n const { errorKeyOrMessage, context } = error;\n const i18n = i18n_1.VALIDATION_ERRORS[lang] || {};\n const toInterpolate = getCustomErrorMessage(error) || i18n[errorKeyOrMessage] || errorKeyOrMessage;\n const paths = [];\n context.path.split('.').forEach((part) => {\n const match = part.match(/\\[([0-9]+)\\]$/);\n if (match) {\n paths.push(part.substring(0, match.index));\n paths.push(parseInt(match[1]));\n }\n else {\n paths.push(part);\n }\n });\n return {\n message: (0, utils_1.unescapeHTML)(utils_1.Evaluator.interpolateString(toInterpolate, context)),\n level: error.level,\n path: paths,\n context: {\n validator: error.ruleName,\n hasLabel: context.hasLabel,\n key: context.component.key,\n label: context.component.label || context.component.placeholder || context.component.key,\n path: context.path,\n value: context.value,\n setting: context.setting,\n index: context.index || 0,\n },\n };\n });\n};\nexports.interpolateErrors = interpolateErrors;\nconst hasValue = (value) => {\n if ((0, isObject_1.default)(value)) {\n return !(0, isEmpty_1.default)(value);\n }\n return (typeof value === 'number' && !Number.isNaN(value)) || !!value;\n};\nexports.hasValue = hasValue;\nconst doesArrayDataHaveValue = (dataValue = []) => {\n if (!Array.isArray(dataValue)) {\n return !!dataValue;\n }\n if (!dataValue.length) {\n return false;\n }\n const isArrayDataComponent = dataValue.every(isPlainObject_1.default);\n if (isArrayDataComponent) {\n return dataValue.some((value) => Object.values(value).some(exports.hasValue));\n }\n return dataValue.some(exports.hasValue);\n};\nexports.doesArrayDataHaveValue = doesArrayDataHaveValue;\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/validation/util.js?\n}");
2568
+ eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.doesArrayDataHaveValue = exports.hasValue = exports.interpolateErrors = void 0;\nexports.isComponentPersistent = isComponentPersistent;\nexports.isComponentProtected = isComponentProtected;\nexports.isEmptyObject = isEmptyObject;\nexports.toBoolean = toBoolean;\nexports.isPromise = isPromise;\nexports.keepErrorSettingInSecret = keepErrorSettingInSecret;\nexports.isObject = isObject;\nconst utils_1 = __webpack_require__(/*! ../../utils */ \"../core/lib/utils/index.js\");\nconst i18n_1 = __webpack_require__(/*! ./i18n */ \"../core/lib/process/validation/i18n/index.js\");\nconst isEmpty_1 = __importDefault(__webpack_require__(/*! lodash/isEmpty */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isEmpty.js\"));\nconst isObject_1 = __importDefault(__webpack_require__(/*! lodash/isObject */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js\"));\nconst isPlainObject_1 = __importDefault(__webpack_require__(/*! lodash/isPlainObject */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isPlainObject.js\"));\nfunction isComponentPersistent(component) {\n return component.persistent ? component.persistent : true;\n}\nfunction isComponentProtected(component) {\n return component.protected ? component.protected : false;\n}\nfunction isEmptyObject(obj) {\n return !!obj && Object.keys(obj).length === 0 && obj.constructor === Object;\n}\nfunction toBoolean(value) {\n switch (typeof value) {\n case 'string':\n if (value === 'true' || value === '1') {\n return true;\n }\n else if (value === 'false' || value === '0') {\n return false;\n }\n else {\n throw `Cannot coerce string ${value} to boolean}`;\n }\n case 'boolean':\n return value;\n default:\n return !!value;\n }\n}\nfunction isPromise(value) {\n return (value &&\n value.then &&\n typeof value.then === 'function' &&\n Object.prototype.toString.call(value) === '[object Promise]');\n}\nfunction keepErrorSettingInSecret(rule, component) {\n var _a;\n return rule === 'custom' && !!((_a = component.validate) === null || _a === void 0 ? void 0 : _a.customPrivate);\n}\nfunction isObject(obj) {\n return obj != null && (typeof obj === 'object' || typeof obj === 'function');\n}\nconst getCustomErrorMessage = ({ errorKeyOrMessage, context }) => { var _a, _b; return ((_b = (_a = context.component) === null || _a === void 0 ? void 0 : _a.errors) === null || _b === void 0 ? void 0 : _b[errorKeyOrMessage]) || ''; };\n/**\n * Interpolates @formio/core errors so that they are compatible with the renderer\n * @param {FieldError[]} errors\n * @param firstPass\n * @returns {[]}\n */\nconst interpolateErrors = (errors, lang = 'en') => {\n return errors.map((error) => {\n const { errorKeyOrMessage, context } = error;\n const i18n = i18n_1.VALIDATION_ERRORS[lang] || {};\n const toInterpolate = getCustomErrorMessage(error) || i18n[errorKeyOrMessage] || errorKeyOrMessage;\n const paths = [];\n context.path.split('.').forEach((part) => {\n const match = part.match(/\\[([0-9]+)\\]$/);\n if (match) {\n paths.push(part.substring(0, match.index));\n paths.push(parseInt(match[1]));\n }\n else {\n paths.push(part);\n }\n });\n return {\n message: (0, utils_1.unescapeHTML)(utils_1.Evaluator.interpolateString(toInterpolate, context)),\n level: error.level,\n path: paths,\n context: {\n validator: error.ruleName,\n hasLabel: context.hasLabel,\n key: context.component.key,\n label: context.component.label || context.component.placeholder || context.component.key,\n path: context.path,\n value: context.value,\n setting: keepErrorSettingInSecret(error.ruleName, context.component) ? '' : context.setting,\n index: context.index || 0,\n },\n };\n });\n};\nexports.interpolateErrors = interpolateErrors;\nconst hasValue = (value) => {\n if ((0, isObject_1.default)(value)) {\n return !(0, isEmpty_1.default)(value);\n }\n return (typeof value === 'number' && !Number.isNaN(value)) || !!value;\n};\nexports.hasValue = hasValue;\nconst doesArrayDataHaveValue = (dataValue = []) => {\n if (!Array.isArray(dataValue)) {\n return !!dataValue;\n }\n if (!dataValue.length) {\n return false;\n }\n const isArrayDataComponent = dataValue.every(isPlainObject_1.default);\n if (isArrayDataComponent) {\n return dataValue.some((value) => Object.values(value).some(exports.hasValue));\n }\n return dataValue.some(exports.hasValue);\n};\nexports.doesArrayDataHaveValue = doesArrayDataHaveValue;\n\n\n//# sourceURL=webpack://Formio/../core/lib/process/validation/util.js?\n}");
2536
2569
 
2537
2570
  /***/ }),
2538
2571
 
@@ -3148,7 +3181,7 @@ eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexp
3148
3181
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3149
3182
 
3150
3183
  "use strict";
3151
- eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isSimpleConditional = exports.isLegacyConditional = exports.isJSONConditional = void 0;\nexports.conditionallyHidden = conditionallyHidden;\nexports.checkCustomConditional = checkCustomConditional;\nexports.checkLegacyConditional = checkLegacyConditional;\nexports.checkJsonConditional = checkJsonConditional;\nexports.convertShowToBoolean = convertShowToBoolean;\nexports.checkSimpleConditional = checkSimpleConditional;\nconst lodash_1 = __webpack_require__(/*! lodash */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\");\nconst formUtil_1 = __webpack_require__(/*! ./formUtil */ \"../core/lib/utils/formUtil/index.js\");\nconst operators_1 = __importDefault(__webpack_require__(/*! ./operators */ \"../core/lib/utils/operators/index.js\"));\nconst utils_1 = __webpack_require__(/*! ./utils */ \"../core/lib/utils/utils.js\");\nconst isJSONConditional = (conditional) => {\n return conditional && conditional.json && (0, lodash_1.isObject)(conditional.json);\n};\nexports.isJSONConditional = isJSONConditional;\nconst isLegacyConditional = (conditional) => {\n return conditional && conditional.when;\n};\nexports.isLegacyConditional = isLegacyConditional;\nconst isSimpleConditional = (conditional) => {\n return conditional && conditional.conjunction && conditional.conditions;\n};\nexports.isSimpleConditional = isSimpleConditional;\nfunction conditionallyHidden(context) {\n const { scope, path } = context;\n if (scope.conditionals && path) {\n const hidden = (0, lodash_1.find)(scope.conditionals, (conditional) => {\n return conditional.path === path;\n });\n return hidden === null || hidden === void 0 ? void 0 : hidden.conditionallyHidden;\n }\n return false;\n}\n/**\n * Check custom javascript conditional.\n *\n * @param component\n * @param custom\n * @param row\n * @param data\n * @returns {*}\n */\nfunction checkCustomConditional(condition, context, variable = 'show') {\n if (!condition) {\n return null;\n }\n const value = (0, utils_1.evaluate)(condition, context, variable);\n if (value === null) {\n return null;\n }\n return value;\n}\n/**\n * Checks the legacy conditionals.\n *\n * @param conditional\n * @param context\n * @param checkDefault\n * @returns\n */\nfunction checkLegacyConditional(conditional, context) {\n const { data, form, paths, local } = context;\n if (!conditional || !(0, exports.isLegacyConditional)(conditional) || !conditional.when) {\n return null;\n }\n const value = (0, formUtil_1.getComponentValue)(form, data, conditional.when, paths === null || paths === void 0 ? void 0 : paths.dataIndex, local);\n const eq = String(conditional.eq);\n const show = String(conditional.show);\n if ((0, lodash_1.isObject)(value) && (0, lodash_1.has)(value, eq)) {\n return String(value[eq]) === show;\n }\n if (Array.isArray(value) && value.map(String).includes(eq)) {\n return show === 'true';\n }\n return (String(value) === eq) === (show === 'true');\n}\n/**\n * Checks the JSON Conditionals.\n * @param conditional\n * @param context\n * @returns\n */\nfunction checkJsonConditional(conditional, context) {\n if (!conditional || !(0, exports.isJSONConditional)(conditional)) {\n return null;\n }\n return (0, utils_1.evaluate)(conditional.json, context);\n}\n/**\n * Convert the 'show' property of simple conditional to boolean\n * @param show\n * @returns {boolean}\n */\nfunction convertShowToBoolean(show) {\n let shouldShow = show;\n if ((0, lodash_1.isString)(show)) {\n try {\n shouldShow = JSON.parse(show);\n }\n catch (e) {\n console.log(e);\n shouldShow = show;\n }\n }\n return !!shouldShow;\n}\n/**\n * Checks the simple conditionals.\n * @param conditional\n * @param context\n * @returns\n */\nfunction checkSimpleConditional(conditional, context) {\n const { component, data, instance, form, paths, local } = context;\n if (!conditional || !(0, exports.isSimpleConditional)(conditional)) {\n return null;\n }\n const { conditions = [], conjunction = 'all', show = true } = conditional;\n if (!conditions.length) {\n return null;\n }\n const conditionsResult = (0, lodash_1.filter)((0, lodash_1.map)(conditions, (cond) => {\n const { operator } = cond;\n const { value: comparedValue, component: conditionComponentPath } = cond;\n if (!conditionComponentPath) {\n // Ignore conditions if there is no component path.\n return null;\n }\n const formComponents = (form === null || form === void 0 ? void 0 : form.components) || [];\n const conditionComponent = (0, formUtil_1.getComponent)(formComponents, conditionComponentPath, true, paths === null || paths === void 0 ? void 0 : paths.dataIndex);\n const value = conditionComponent\n ? (0, formUtil_1.getComponentValue)(form, data, conditionComponentPath, paths === null || paths === void 0 ? void 0 : paths.dataIndex, local)\n : null;\n const ConditionOperator = operators_1.default[operator];\n return ConditionOperator\n ? new ConditionOperator().getResult({\n value,\n comparedValue,\n instance,\n component,\n conditionComponent,\n conditionComponentPath,\n data,\n })\n : true;\n }), (res) => res !== null);\n let result = false;\n switch (conjunction) {\n case 'any':\n result = (0, lodash_1.some)(conditionsResult, (res) => !!res);\n break;\n default:\n result = (0, lodash_1.every)(conditionsResult, (res) => !!res);\n }\n return convertShowToBoolean(show) ? result : !result;\n}\n\n\n//# sourceURL=webpack://Formio/../core/lib/utils/conditions.js?\n}");
3184
+ eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isSimpleConditional = exports.isLegacyConditional = exports.isJSONConditional = void 0;\nexports.conditionallyHidden = conditionallyHidden;\nexports.checkCustomConditional = checkCustomConditional;\nexports.checkLegacyConditional = checkLegacyConditional;\nexports.checkJsonConditional = checkJsonConditional;\nexports.convertShowToBoolean = convertShowToBoolean;\nexports.checkSimpleConditional = checkSimpleConditional;\nconst lodash_1 = __webpack_require__(/*! lodash */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\");\nconst formUtil_1 = __webpack_require__(/*! ./formUtil */ \"../core/lib/utils/formUtil/index.js\");\nconst operators_1 = __importDefault(__webpack_require__(/*! ./operators */ \"../core/lib/utils/operators/index.js\"));\nconst utils_1 = __webpack_require__(/*! ./utils */ \"../core/lib/utils/utils.js\");\nconst isJSONConditional = (conditional) => {\n return conditional && conditional.json && (0, lodash_1.isObject)(conditional.json);\n};\nexports.isJSONConditional = isJSONConditional;\nconst isLegacyConditional = (conditional) => {\n return conditional && conditional.when;\n};\nexports.isLegacyConditional = isLegacyConditional;\nconst isSimpleConditional = (conditional) => {\n return conditional && conditional.conjunction && conditional.conditions;\n};\nexports.isSimpleConditional = isSimpleConditional;\nfunction conditionallyHidden(context) {\n const { scope, path } = context;\n if (scope.conditionals && path) {\n const hidden = (0, lodash_1.find)(scope.conditionals, (conditional) => {\n return conditional.path === path;\n });\n return hidden === null || hidden === void 0 ? void 0 : hidden.conditionallyHidden;\n }\n return false;\n}\n/**\n * Check custom javascript conditional.\n *\n * @param component\n * @param custom\n * @param row\n * @param data\n * @returns {*}\n */\nfunction checkCustomConditional(condition, context, variable = 'show') {\n if (!condition) {\n return null;\n }\n let value;\n if (typeof condition === 'function') {\n value = (0, utils_1.evaluate)(condition, context, variable);\n }\n else {\n // For reverse compatability... if \"show\" is never set, then it should be shown. This\n // comes from the following legacy behavior\n // https://github.com/formio/formio.js/blob/973b214ec6bf23d8679d0f5007b3522528abd36d/src/utils/utils.js#L311C33-L311C37\n value = (0, utils_1.evaluate)(`${variable} = true; ${condition};`, context, variable);\n }\n if (value === null) {\n return null;\n }\n return value;\n}\n/**\n * Checks the legacy conditionals.\n *\n * @param conditional\n * @param context\n * @param checkDefault\n * @returns\n */\nfunction checkLegacyConditional(conditional, context) {\n const { data, form, paths, local } = context;\n if (!conditional || !(0, exports.isLegacyConditional)(conditional) || !conditional.when) {\n return null;\n }\n const value = (0, formUtil_1.getComponentValue)(form, data, conditional.when, paths === null || paths === void 0 ? void 0 : paths.dataIndex, local);\n const eq = String(conditional.eq);\n const show = String(conditional.show);\n if ((0, lodash_1.isObject)(value) && (0, lodash_1.has)(value, eq)) {\n return String(value[eq]) === show;\n }\n if (Array.isArray(value) && value.map(String).includes(eq)) {\n return show === 'true';\n }\n return (String(value) === eq) === (show === 'true');\n}\n/**\n * Checks the JSON Conditionals.\n * @param conditional\n * @param context\n * @returns\n */\nfunction checkJsonConditional(conditional, context) {\n if (!conditional || !(0, exports.isJSONConditional)(conditional)) {\n return null;\n }\n return (0, utils_1.evaluate)(conditional.json, context);\n}\n/**\n * Convert the 'show' property of simple conditional to boolean\n * @param show\n * @returns {boolean}\n */\nfunction convertShowToBoolean(show) {\n let shouldShow = show;\n if ((0, lodash_1.isString)(show)) {\n try {\n shouldShow = JSON.parse(show);\n }\n catch (e) {\n console.log(e);\n shouldShow = show;\n }\n }\n return !!shouldShow;\n}\n/**\n * Checks the simple conditionals.\n * @param conditional\n * @param context\n * @returns\n */\nfunction checkSimpleConditional(conditional, context) {\n const { component, data, instance, form, paths, local } = context;\n if (!conditional || !(0, exports.isSimpleConditional)(conditional)) {\n return null;\n }\n const { conditions = [], conjunction = 'all', show = true } = conditional;\n if (!conditions.length) {\n return null;\n }\n const conditionsResult = (0, lodash_1.filter)((0, lodash_1.map)(conditions, (cond) => {\n const { operator } = cond;\n const { value: comparedValue, component: conditionComponentPath } = cond;\n if (!conditionComponentPath) {\n // Ignore conditions if there is no component path.\n return null;\n }\n const formComponents = (form === null || form === void 0 ? void 0 : form.components) || [];\n const conditionComponent = (0, formUtil_1.getComponent)(formComponents, conditionComponentPath, true, paths === null || paths === void 0 ? void 0 : paths.dataIndex);\n const value = conditionComponent\n ? (0, formUtil_1.getComponentValue)(form, data, conditionComponentPath, paths === null || paths === void 0 ? void 0 : paths.dataIndex, local)\n : null;\n const ConditionOperator = operators_1.default[operator];\n return ConditionOperator\n ? new ConditionOperator().getResult({\n value,\n comparedValue,\n instance,\n component,\n conditionComponent,\n conditionComponentPath,\n data,\n })\n : true;\n }), (res) => res !== null);\n let result = false;\n switch (conjunction) {\n case 'any':\n result = (0, lodash_1.some)(conditionsResult, (res) => !!res);\n break;\n default:\n result = (0, lodash_1.every)(conditionsResult, (res) => !!res);\n }\n return convertShowToBoolean(show) ? result : !result;\n}\n\n\n//# sourceURL=webpack://Formio/../core/lib/utils/conditions.js?\n}");
3152
3185
 
3153
3186
  /***/ }),
3154
3187
 
@@ -3610,7 +3643,7 @@ eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexp
3610
3643
  /***/ (function(__unused_webpack_module, exports) {
3611
3644
 
3612
3645
  "use strict";
3613
- eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n// All external libs URLs should be injected through this class.\n// CDN libs URLs are accessible throuh CDN object properties\n// like Formio.cdn.ace === 'http://cdn.form.io/ace/1.4.12'.\n// For latest version use empty string\nclass CDN {\n constructor(baseUrl, overrides = {}) {\n this.baseUrl = baseUrl || CDN.defaultCDN;\n this.overrides = overrides;\n this.libs = {\n 'js': '',\n 'ace': '1.4.12',\n 'bootstrap': '5.3.3',\n 'bootstrap4': '4.6.2',\n 'bootstrap5': '5.3.3',\n 'bootswatch': '5.3.3',\n 'bootstrap-icons': '1.11.1',\n 'ckeditor': '19.0.0',\n 'flatpickr': '4.6.8',\n 'flatpickr-formio': '4.6.13-formio.3',\n 'font-awesome': '4.7.0',\n 'grid': 'latest',\n 'moment-timezone': 'latest',\n 'quill': '2.0.0-dev.3',\n 'shortcut-buttons-flatpickr': '0.4.0',\n 'uswds': '2.4.8',\n 'core': ''\n };\n this.updateUrls();\n }\n getVersion(lib) {\n return this.libs[lib];\n }\n // Sets a specific library version\n setVersion(lib, version) {\n this.libs[lib] = version;\n this.updateUrls();\n }\n // Sets base CDN url for all libraries\n setBaseUrl(url) {\n this.baseUrl = url;\n this.updateUrls();\n }\n // Allows to override CDN url for a specific library\n setOverrideUrl(lib, url) {\n this.overrides[lib] = url;\n this.updateUrls();\n }\n // Removes override for a specific library\n removeOverride(lib) {\n delete this.overrides[lib];\n this.updateUrls();\n }\n // Removes all overrides\n removeOverrides() {\n this.overrides = {};\n this.updateUrls();\n }\n buildUrl(cdnUrl, lib, version) {\n let url = cdnUrl;\n if (lib) {\n url += `/${lib}`;\n }\n // Only attach the version if this is the hosted cdn.\n if (cdnUrl.match(/cdn\\.(test-)?form.io/) && version && version !== 'latest') {\n url += `/${version}`;\n }\n return url;\n }\n updateUrls() {\n for (const lib in this.libs) {\n if (lib in this.overrides) {\n if (typeof this.overrides[lib] === 'string') {\n this[lib] = this.buildUrl(this.overrides[lib], lib, this.libs[lib]);\n }\n else {\n const override = this.overrides[lib];\n this[lib] = this.buildUrl(override.cdn, override.lib || '', override.version || '');\n }\n }\n else {\n this[lib] = this.buildUrl(this.baseUrl, lib, this.libs[lib]);\n }\n }\n }\n}\nCDN.defaultCDN = 'https://cdn.form.io';\nexports[\"default\"] = CDN;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/CDN.js?\n}");
3646
+ eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n// All external libs URLs should be injected through this class.\n// CDN libs URLs are accessible throuh CDN object properties\n// like Formio.cdn.ace === 'http://cdn.form.io/ace/1.4.12'.\n// For latest version use empty string\nclass CDN {\n constructor(baseUrl, overrides = {}) {\n this.baseUrl = baseUrl || CDN.defaultCDN;\n this.overrides = overrides;\n this.libs = {\n js: '',\n ace: '1.4.12',\n bootstrap: '5.3.3',\n bootstrap4: '4.6.2',\n bootstrap5: '5.3.3',\n bootswatch: '5.3.3',\n 'bootstrap-icons': '1.11.1',\n ckeditor: '19.0.0',\n flatpickr: '4.6.8',\n 'flatpickr-formio': '4.6.13-formio.3',\n 'font-awesome': '4.7.0',\n grid: 'latest',\n 'moment-timezone': 'latest',\n quill: '2.0.0-dev.3',\n 'shortcut-buttons-flatpickr': '0.4.0',\n uswds: '2.4.8',\n core: '',\n };\n this.updateUrls();\n }\n getVersion(lib) {\n return this.libs[lib];\n }\n // Sets a specific library version\n setVersion(lib, version) {\n this.libs[lib] = version;\n this.updateUrls();\n }\n // Sets base CDN url for all libraries\n setBaseUrl(url) {\n this.baseUrl = url;\n this.updateUrls();\n }\n // Allows to override CDN url for a specific library\n setOverrideUrl(lib, url) {\n this.overrides[lib] = url;\n this.updateUrls();\n }\n // Removes override for a specific library\n removeOverride(lib) {\n delete this.overrides[lib];\n this.updateUrls();\n }\n // Removes all overrides\n removeOverrides() {\n this.overrides = {};\n this.updateUrls();\n }\n buildUrl(cdnUrl, lib, version) {\n let url = cdnUrl;\n if (lib) {\n url += `/${lib}`;\n }\n // Only attach the version if this is the hosted cdn.\n if (cdnUrl.match(/cdn\\.(test-)?form.io/) && version && version !== 'latest') {\n url += `/${version}`;\n }\n return url;\n }\n updateUrls() {\n for (const lib in this.libs) {\n if (lib in this.overrides) {\n if (typeof this.overrides[lib] === 'string') {\n this[lib] = this.buildUrl(this.overrides[lib], lib, this.libs[lib]);\n }\n else {\n const override = this.overrides[lib];\n this[lib] = this.buildUrl(override.cdn, override.lib || '', override.version || '');\n }\n }\n else {\n this[lib] = this.buildUrl(this.baseUrl, lib, this.libs[lib]);\n }\n }\n }\n}\nCDN.defaultCDN = 'https://cdn.form.io';\nexports[\"default\"] = CDN;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/CDN.js?\n}");
3614
3647
 
3615
3648
  /***/ }),
3616
3649
 
@@ -3621,7 +3654,7 @@ eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//
3621
3654
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3622
3655
 
3623
3656
  "use strict";
3624
- eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.FormBuilder = exports.Form = exports.Formio = void 0;\nconst CDN_js_1 = __importDefault(__webpack_require__(/*! ./CDN.js */ \"./lib/cjs/CDN.js\"));\nclass Formio {\n static setLicense(license, norecurse = false) {\n _a.license = license;\n if (!norecurse && _a.FormioClass) {\n _a.FormioClass.setLicense(license);\n }\n }\n static setBaseUrl(url, norecurse = false) {\n _a.baseUrl = url;\n if (!norecurse && _a.FormioClass) {\n _a.FormioClass.setBaseUrl(url);\n }\n }\n static setApiUrl(url, norecurse = false) {\n _a.baseUrl = url;\n if (!norecurse && _a.FormioClass) {\n _a.FormioClass.setApiUrl(url);\n }\n }\n static setProjectUrl(url, norecurse = false) {\n _a.projectUrl = url;\n if (!norecurse && _a.FormioClass) {\n _a.FormioClass.setProjectUrl(url);\n }\n }\n static setAppUrl(url, norecurse = false) {\n _a.projectUrl = url;\n if (!norecurse && _a.FormioClass) {\n _a.FormioClass.setAppUrl(url);\n }\n }\n static setPathType(type, norecurse = false) {\n _a.pathType = type;\n if (!norecurse && _a.FormioClass) {\n _a.FormioClass.setPathType(type);\n }\n }\n static debug(...args) {\n if (_a.config.debug) {\n console.log(...args);\n }\n }\n static clearCache() {\n if (_a.FormioClass) {\n _a.FormioClass.clearCache();\n }\n }\n static global(prop, flag = '') {\n const globalValue = window[prop];\n if (flag && globalValue && !globalValue[flag]) {\n return null;\n }\n _a.debug(`Getting global ${prop}`, globalValue);\n return globalValue;\n }\n static use(module) {\n if (_a.FormioClass && _a.FormioClass.isRenderer) {\n _a.FormioClass.use(module);\n }\n else {\n _a.modules.push(module);\n }\n }\n static createElement(type, attrs, children) {\n const element = document.createElement(type);\n if (!attrs) {\n return element;\n }\n Object.keys(attrs).forEach(key => {\n element.setAttribute(key, attrs[key]);\n });\n (children || []).forEach(child => {\n element.appendChild(_a.createElement(child.tag, child.attrs, child.children));\n });\n return element;\n }\n static addScript(wrapper, src, name, flag = '') {\n return __awaiter(this, void 0, void 0, function* () {\n if (!src) {\n return Promise.resolve();\n }\n if (typeof src !== 'string' && src.length) {\n return Promise.all(src.map(ref => _a.addScript(wrapper, ref)));\n }\n if (name && _a.global(name, flag)) {\n _a.debug(`${name} already loaded.`);\n return Promise.resolve(_a.global(name));\n }\n _a.debug('Adding Script', src);\n try {\n wrapper.appendChild(_a.createElement('script', {\n src\n }));\n }\n catch (err) {\n _a.debug(err);\n return Promise.resolve();\n }\n if (!name) {\n return Promise.resolve();\n }\n return new Promise((resolve) => {\n _a.debug(`Waiting to load ${name}`);\n const wait = setInterval(() => {\n if (_a.global(name, flag)) {\n clearInterval(wait);\n _a.debug(`${name} loaded.`);\n resolve(_a.global(name));\n }\n }, 100);\n });\n });\n }\n static addStyles(wrapper, href) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!href) {\n return;\n }\n if (typeof href !== 'string' && href.length) {\n href.forEach(ref => _a.addStyles(wrapper, ref));\n return;\n }\n _a.debug('Adding Styles', href);\n wrapper.appendChild(_a.createElement('link', {\n rel: 'stylesheet',\n href\n }));\n });\n }\n static submitDone(instance, submission) {\n return __awaiter(this, void 0, void 0, function* () {\n _a.debug('Submision Complete', submission);\n if (_a.config.submitDone) {\n _a.config.submitDone(submission, instance);\n }\n const successMessage = (_a.config.success || '').toString();\n if (successMessage && successMessage.toLowerCase() !== 'false' && instance.element) {\n instance.element.innerHTML = `<div class=\"alert-success\" role=\"alert\">${successMessage}</div>`;\n }\n let returnUrl = _a.config.redirect;\n // Allow form based configuration for return url.\n if (!returnUrl &&\n (instance._form &&\n instance._form.settings &&\n (instance._form.settings.returnUrl ||\n instance._form.settings.redirect))) {\n _a.debug('Return url found in form configuration');\n returnUrl = instance._form.settings.returnUrl || instance._form.settings.redirect;\n }\n if (returnUrl) {\n const formSrc = instance.formio ? instance.formio.formUrl : '';\n const hasQuery = !!returnUrl.match(/\\?/);\n const isOrigin = returnUrl.indexOf(location.origin) === 0;\n returnUrl += hasQuery ? '&' : '?';\n returnUrl += `sub=${submission._id}`;\n if (!isOrigin && formSrc) {\n returnUrl += `&form=${encodeURIComponent(formSrc)}`;\n }\n _a.debug('Return URL', returnUrl);\n window.location.href = returnUrl;\n if (isOrigin) {\n window.location.reload();\n }\n }\n });\n }\n // Return the full script if the builder is being used.\n static formioScript(script, builder) {\n builder = builder || _a.config.includeBuilder;\n if (_a.fullAdded || builder) {\n _a.fullAdded = true;\n return script.replace('formio.form', 'formio.full');\n }\n return script;\n }\n static addLibrary(libWrapper, lib, name) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!lib) {\n return;\n }\n if (lib.dependencies) {\n for (let i = 0; i < lib.dependencies.length; i++) {\n const libName = lib.dependencies[i];\n yield _a.addLibrary(libWrapper, _a.config.libs[libName], libName);\n }\n }\n if (lib.css) {\n yield _a.addStyles((lib.global ? document.body : libWrapper), lib.css);\n }\n if (lib.js) {\n const module = yield _a.addScript((lib.global ? document.body : libWrapper), lib.js, lib.use ? name : false);\n if (lib.use) {\n _a.debug(`Using ${name}`);\n const options = lib.options || {};\n if (!options.license && _a.license) {\n options.license = _a.license;\n }\n _a.use((typeof lib.use === 'function' ? lib.use(module) : module), options);\n }\n }\n if (lib.globalStyle) {\n const style = _a.createElement('style');\n style.type = 'text/css';\n style.innerHTML = lib.globalStyle;\n document.body.appendChild(style);\n }\n });\n }\n static addLoader(wrapper) {\n return __awaiter(this, void 0, void 0, function* () {\n wrapper.appendChild(_a.createElement('div', {\n 'class': 'formio-loader'\n }, [{\n tag: 'div',\n attrs: {\n class: 'loader-wrapper'\n },\n children: [{\n tag: 'div',\n attrs: {\n class: 'loader text-center'\n }\n }]\n }]));\n });\n }\n // eslint-disable-next-line max-statements\n static init(element, options = {}, builder = false) {\n return __awaiter(this, void 0, void 0, function* () {\n _a.cdn = new CDN_js_1.default(_a.config.cdn, _a.config.cdnUrls || {});\n _a.config.libs = _a.config.libs || {\n uswds: {\n dependencies: ['fontawesome'],\n js: `${_a.cdn.uswds}/uswds.min.js`,\n css: `${_a.cdn.uswds}/uswds.min.css`,\n use: true\n },\n fontawesome: {\n // Due to an issue with font-face not loading in the shadowdom (https://issues.chromium.org/issues/41085401), we need\n // to do 2 things. 1.) Load the fonts from the global cdn, and 2.) add the font-face to the global styles on the page.\n css: `https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css`,\n globalStyle: `@font-face {\n font-family: 'FontAwesome';\n src: url('https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/fonts/fontawesome-webfont.eot?v=4.7.0');\n src: url('https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n }`\n },\n bootstrap4: {\n dependencies: ['fontawesome'],\n css: `${_a.cdn.bootstrap4}/css/bootstrap.min.css`\n },\n bootstrap: {\n dependencies: ['bootstrap-icons'],\n css: `${_a.cdn.bootstrap}/css/bootstrap.min.css`\n },\n 'bootstrap-icons': {\n // Due to an issue with font-face not loading in the shadowdom (https://issues.chromium.org/issues/41085401), we need\n // to do 2 things. 1.) Load the fonts from the global cdn, and 2.) add the font-face to the global styles on the page.\n css: 'https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.min.css',\n globalStyle: `@font-face {\n font-display: block;\n font-family: \"bootstrap-icons\";\n src: url(\"https://cdn.jsdelivr.net/npm/bootstrap-icons/font/fonts/bootstrap-icons.woff2?dd67030699838ea613ee6dbda90effa6\") format(\"woff2\"),\n url(\"https://cdn.jsdelivr.net/npm/bootstrap-icons/font/fonts/bootstrap-icons.woff?dd67030699838ea613ee6dbda90effa6\") format(\"woff\");\n }`\n }\n };\n // Add all bootswatch templates.\n ['cerulean', 'cosmo', 'cyborg', 'darkly', 'flatly', 'journal', 'litera', 'lumen', 'lux', 'materia', 'minty', 'pulse', 'sandstone', 'simplex', 'sketchy', 'slate', 'solar', 'spacelab', 'superhero', 'united', 'yeti'].forEach((template) => {\n _a.config.libs[template] = {\n dependencies: ['bootstrap-icons'],\n css: `${_a.cdn.bootswatch}/dist/${template}/bootstrap.min.css`\n };\n });\n const id = _a.config.id || `formio-${Math.random().toString(36).substring(7)}`;\n // Create a new wrapper and add the element inside of a new wrapper.\n let wrapper = _a.createElement('div', {\n 'id': `${id}-wrapper`\n });\n element.parentNode.insertBefore(wrapper, element);\n // If we include the libraries, then we will attempt to run this in shadow dom.\n const useShadowDom = _a.config.includeLibs && !_a.config.noshadow && (typeof wrapper.attachShadow === 'function');\n if (useShadowDom) {\n wrapper = wrapper.attachShadow({\n mode: 'open'\n });\n options.shadowRoot = wrapper;\n }\n element.parentNode.removeChild(element);\n wrapper.appendChild(element);\n // If this is inside of shadow dom, then we need to add the styles and scripts to the shadow dom.\n const libWrapper = useShadowDom ? wrapper : document.body;\n // Load the renderer styles.\n yield _a.addStyles(libWrapper, _a.config.embedCSS || `${_a.cdn.js}/formio.embed.css`);\n // Add a loader.\n _a.addLoader(wrapper);\n const formioSrc = _a.config.full ? 'formio.full' : 'formio.form';\n const renderer = _a.config.debug ? formioSrc : `${formioSrc}.min`;\n _a.FormioClass = yield _a.addScript(libWrapper, _a.formioScript(_a.config.script || `${_a.cdn.js}/${renderer}.js`, builder), 'Formio', builder ? 'isBuilder' : 'isRenderer');\n _a.FormioClass.cdn = _a.cdn;\n _a.FormioClass.setBaseUrl(options.baseUrl || _a.baseUrl || _a.config.base);\n _a.FormioClass.setProjectUrl(options.projectUrl || _a.projectUrl || _a.config.project);\n _a.FormioClass.language = _a.language;\n _a.setLicense(_a.license || _a.config.license || false);\n _a.modules.forEach((module) => {\n _a.FormioClass.use(module);\n });\n if (_a.icons) {\n _a.FormioClass.icons = _a.icons;\n }\n if (_a.pathType) {\n _a.FormioClass.setPathType(_a.pathType);\n }\n // Add libraries if they wish to include the libs.\n if (_a.config.template && _a.config.includeLibs) {\n yield _a.addLibrary(libWrapper, _a.config.libs[_a.config.template], _a.config.template);\n }\n if (!_a.config.libraries) {\n _a.config.libraries = _a.config.modules || {};\n }\n // Adding premium if it is provided via the config.\n if (_a.config.premium) {\n _a.config.libraries.premium = _a.config.premium;\n }\n // Allow adding dynamic modules.\n if (_a.config.libraries) {\n for (const name in _a.config.libraries) {\n const lib = _a.config.libraries[name];\n lib.use = lib.use || true;\n yield _a.addLibrary(libWrapper, lib, name);\n }\n }\n yield _a.addStyles(libWrapper, _a.formioScript(_a.config.style || `${_a.cdn.js}/${renderer}.css`, builder));\n if (_a.config.before) {\n yield _a.config.before(_a.FormioClass, element, _a.config);\n }\n _a.FormioClass.license = true;\n _a._formioReady(_a.FormioClass);\n return wrapper;\n });\n }\n // Called after an instance has been created.\n static afterCreate(instance, wrapper, readyEvent) {\n return __awaiter(this, void 0, void 0, function* () {\n const loader = wrapper.querySelector('.formio-loader');\n if (loader) {\n wrapper.removeChild(loader);\n }\n _a.FormioClass.events.emit(readyEvent, instance);\n if (_a.config.after) {\n _a.debug('Calling ready callback');\n _a.config.after(instance, _a.config);\n }\n return instance;\n });\n }\n // Create a new form.\n static createForm(element, form, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n if (_a.FormioClass) {\n return _a.FormioClass.createForm(element, form, Object.assign(Object.assign({}, options), { noLoader: true }));\n }\n const wrapper = yield _a.init(element, options);\n return _a.FormioClass.createForm(element, form, Object.assign(Object.assign({}, options), { noLoader: true })).then((instance) => {\n // Set the default submission data.\n if (_a.config.submission) {\n _a.debug('Setting submission', _a.config.submission);\n instance.submission = _a.config.submission;\n }\n // Call the after create method.\n _a.afterCreate(instance, wrapper, 'formEmbedded');\n return instance;\n });\n });\n }\n // Create a form builder.\n static builder(element, form, options = {}) {\n var _b;\n return __awaiter(this, void 0, void 0, function* () {\n if ((_b = _a.FormioClass) === null || _b === void 0 ? void 0 : _b.builder) {\n return _a.FormioClass.builder(element, form, options);\n }\n const wrapper = yield _a.init(element, options, true);\n return _a.FormioClass.builder(element, form, options).then((instance) => {\n _a.afterCreate(instance, wrapper, 'builderEmbedded');\n return instance;\n });\n });\n }\n}\nexports.Formio = Formio;\n_a = Formio;\nFormio.FormioClass = null;\nFormio.config = {};\nFormio.modules = [];\nFormio.icons = '';\nFormio.license = '';\nFormio.formioReady = new Promise((ready, reject) => {\n _a._formioReady = ready;\n _a._formioReadyReject = reject;\n});\nFormio.version = '5.2.3';\n// Create a report.\nFormio.Report = {\n create: (element, submission, options = {}) => __awaiter(void 0, void 0, void 0, function* () {\n var _b;\n if ((_b = _a.FormioClass) === null || _b === void 0 ? void 0 : _b.Report) {\n return _a.FormioClass.Report.create(element, submission, options);\n }\n const wrapper = yield _a.init(element, options, true);\n return _a.FormioClass.Report.create(element, submission, options).then((instance) => {\n _a.afterCreate(instance, wrapper, 'reportEmbedded');\n return instance;\n });\n })\n};\nCDN_js_1.default.defaultCDN = Formio.version.includes('rc') ? 'https://cdn.test-form.io' : 'https://cdn.form.io';\nclass Form {\n constructor(element, form, options) {\n this.form = form;\n this.element = element;\n this.options = options || {};\n this.init();\n this.instance = {\n proxy: true,\n ready: this.ready,\n destroy: () => { }\n };\n }\n init() {\n if (this.instance && !this.instance.proxy) {\n this.instance.destroy();\n }\n this.element.innerHTML = '';\n this.ready = this.create().then((instance) => {\n this.instance = instance;\n this.form = instance.form;\n return instance;\n });\n }\n create() {\n return Formio.createForm(this.element, this.form, this.options);\n }\n setForm(form) {\n this.form = form;\n if (this.instance) {\n this.instance.setForm(form);\n }\n }\n setDisplay(display) {\n if (this.instance.proxy) {\n return this.ready;\n }\n this.form.display = display;\n this.instance.destroy();\n this.ready = this.create().then((instance) => {\n this.instance = instance;\n this.setForm(this.form);\n });\n return this.ready;\n }\n}\nexports.Form = Form;\nclass FormBuilder extends Form {\n create() {\n return Formio.builder(this.element, this.form, this.options);\n }\n}\nexports.FormBuilder = FormBuilder;\nFormio.Form = Form;\nFormio.FormBuilder = FormBuilder;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/Embed.js?\n}");
3657
+ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.FormBuilder = exports.Form = exports.Formio = void 0;\nconst CDN_js_1 = __importDefault(__webpack_require__(/*! ./CDN.js */ \"./lib/cjs/CDN.js\"));\nclass Formio {\n static setLicense(license, norecurse = false) {\n _a.license = license;\n if (!norecurse && _a.FormioClass) {\n _a.FormioClass.setLicense(license);\n }\n }\n static setBaseUrl(url, norecurse = false) {\n _a.baseUrl = url;\n if (!norecurse && _a.FormioClass) {\n _a.FormioClass.setBaseUrl(url);\n }\n }\n static setApiUrl(url, norecurse = false) {\n _a.baseUrl = url;\n if (!norecurse && _a.FormioClass) {\n _a.FormioClass.setApiUrl(url);\n }\n }\n static setProjectUrl(url, norecurse = false) {\n _a.projectUrl = url;\n if (!norecurse && _a.FormioClass) {\n _a.FormioClass.setProjectUrl(url);\n }\n }\n static setAppUrl(url, norecurse = false) {\n _a.projectUrl = url;\n if (!norecurse && _a.FormioClass) {\n _a.FormioClass.setAppUrl(url);\n }\n }\n static setPathType(type, norecurse = false) {\n _a.pathType = type;\n if (!norecurse && _a.FormioClass) {\n _a.FormioClass.setPathType(type);\n }\n }\n static debug(...args) {\n if (_a.config.debug) {\n console.log(...args);\n }\n }\n static clearCache() {\n if (_a.FormioClass) {\n _a.FormioClass.clearCache();\n }\n }\n static global(prop, flag = '') {\n const globalValue = window[prop];\n if (flag && globalValue && !globalValue[flag]) {\n return null;\n }\n _a.debug(`Getting global ${prop}`, globalValue);\n return globalValue;\n }\n static use(module) {\n if (_a.FormioClass && _a.FormioClass.isRenderer) {\n _a.FormioClass.use(module);\n }\n else {\n _a.modules.push(module);\n }\n }\n static createElement(type, attrs, children) {\n const element = document.createElement(type);\n if (!attrs) {\n return element;\n }\n Object.keys(attrs).forEach((key) => {\n element.setAttribute(key, attrs[key]);\n });\n (children || []).forEach((child) => {\n element.appendChild(_a.createElement(child.tag, child.attrs, child.children));\n });\n return element;\n }\n static addScript(wrapper, src, name, flag = '') {\n return __awaiter(this, void 0, void 0, function* () {\n if (!src) {\n return Promise.resolve();\n }\n if (typeof src !== 'string' && src.length) {\n return Promise.all(src.map((ref) => _a.addScript(wrapper, ref)));\n }\n if (name && _a.global(name, flag)) {\n _a.debug(`${name} already loaded.`);\n return Promise.resolve(_a.global(name));\n }\n _a.debug('Adding Script', src);\n try {\n wrapper.appendChild(_a.createElement('script', {\n src,\n }));\n }\n catch (err) {\n _a.debug(err);\n return Promise.resolve();\n }\n if (!name) {\n return Promise.resolve();\n }\n return new Promise((resolve) => {\n _a.debug(`Waiting to load ${name}`);\n const wait = setInterval(() => {\n if (_a.global(name, flag)) {\n clearInterval(wait);\n _a.debug(`${name} loaded.`);\n resolve(_a.global(name));\n }\n }, 100);\n });\n });\n }\n static addStyles(wrapper, href) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!href) {\n return;\n }\n if (typeof href !== 'string' && href.length) {\n href.forEach((ref) => _a.addStyles(wrapper, ref));\n return;\n }\n _a.debug('Adding Styles', href);\n wrapper.appendChild(_a.createElement('link', {\n rel: 'stylesheet',\n href,\n }));\n });\n }\n static submitDone(instance, submission) {\n return __awaiter(this, void 0, void 0, function* () {\n _a.debug('Submision Complete', submission);\n if (_a.config.submitDone) {\n _a.config.submitDone(submission, instance);\n }\n const successMessage = (_a.config.success || '').toString();\n if (successMessage && successMessage.toLowerCase() !== 'false' && instance.element) {\n instance.element.innerHTML = `<div class=\"alert-success\" role=\"alert\">${successMessage}</div>`;\n }\n let returnUrl = _a.config.redirect;\n // Allow form based configuration for return url.\n if (!returnUrl &&\n instance._form &&\n instance._form.settings &&\n (instance._form.settings.returnUrl || instance._form.settings.redirect)) {\n _a.debug('Return url found in form configuration');\n returnUrl = instance._form.settings.returnUrl || instance._form.settings.redirect;\n }\n if (returnUrl) {\n const formSrc = instance.formio ? instance.formio.formUrl : '';\n const hasQuery = !!returnUrl.match(/\\?/);\n const isOrigin = returnUrl.indexOf(location.origin) === 0;\n returnUrl += hasQuery ? '&' : '?';\n returnUrl += `sub=${submission._id}`;\n if (!isOrigin && formSrc) {\n returnUrl += `&form=${encodeURIComponent(formSrc)}`;\n }\n _a.debug('Return URL', returnUrl);\n window.location.href = returnUrl;\n if (isOrigin) {\n window.location.reload();\n }\n }\n });\n }\n // Return the full script if the builder is being used.\n static formioScript(script, builder) {\n builder = builder || _a.config.includeBuilder;\n if (_a.fullAdded || builder) {\n _a.fullAdded = true;\n return script.replace('formio.form', 'formio.full');\n }\n return script;\n }\n static addLibrary(libWrapper, lib, name) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!lib) {\n return;\n }\n if (lib.dependencies) {\n for (let i = 0; i < lib.dependencies.length; i++) {\n const libName = lib.dependencies[i];\n yield _a.addLibrary(libWrapper, _a.config.libs[libName], libName);\n }\n }\n if (lib.css) {\n yield _a.addStyles(lib.global ? document.body : libWrapper, lib.css);\n }\n if (lib.js) {\n const module = yield _a.addScript(lib.global ? document.body : libWrapper, lib.js, lib.use ? name : false);\n if (lib.use) {\n _a.debug(`Using ${name}`);\n const options = lib.options || {};\n if (!options.license && _a.license) {\n options.license = _a.license;\n }\n _a.use(typeof lib.use === 'function' ? lib.use(module) : module, options);\n }\n }\n if (lib.globalStyle) {\n const style = _a.createElement('style');\n style.type = 'text/css';\n style.innerHTML = lib.globalStyle;\n document.body.appendChild(style);\n }\n });\n }\n static addLoader(wrapper) {\n return __awaiter(this, void 0, void 0, function* () {\n wrapper.appendChild(_a.createElement('div', {\n class: 'formio-loader',\n }, [\n {\n tag: 'div',\n attrs: {\n class: 'loader-wrapper',\n },\n children: [\n {\n tag: 'div',\n attrs: {\n class: 'loader text-center',\n },\n },\n ],\n },\n ]));\n });\n }\n static init(element, options = {}, builder = false) {\n return __awaiter(this, void 0, void 0, function* () {\n _a.cdn = new CDN_js_1.default(_a.config.cdn, _a.config.cdnUrls || {});\n _a.config.libs = _a.config.libs || {\n uswds: {\n dependencies: [\n 'fontawesome',\n ],\n js: `${_a.cdn.uswds}/uswds.min.js`,\n css: `${_a.cdn.uswds}/uswds.min.css`,\n use: true,\n },\n fontawesome: {\n // Due to an issue with font-face not loading in the shadowdom (https://issues.chromium.org/issues/41085401), we need\n // to do 2 things. 1.) Load the fonts from the global cdn, and 2.) add the font-face to the global styles on the page.\n css: `https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css`,\n globalStyle: `@font-face {\n font-family: 'FontAwesome';\n src: url('https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/fonts/fontawesome-webfont.eot?v=4.7.0');\n src: url('https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n }`,\n },\n bootstrap4: {\n dependencies: [\n 'fontawesome',\n ],\n css: `${_a.cdn.bootstrap4}/css/bootstrap.min.css`,\n },\n bootstrap: {\n dependencies: [\n 'bootstrap-icons',\n ],\n css: `${_a.cdn.bootstrap}/css/bootstrap.min.css`,\n },\n 'bootstrap-icons': {\n // Due to an issue with font-face not loading in the shadowdom (https://issues.chromium.org/issues/41085401), we need\n // to do 2 things. 1.) Load the fonts from the global cdn, and 2.) add the font-face to the global styles on the page.\n css: 'https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.min.css',\n globalStyle: `@font-face {\n font-display: block;\n font-family: \"bootstrap-icons\";\n src: url(\"https://cdn.jsdelivr.net/npm/bootstrap-icons/font/fonts/bootstrap-icons.woff2?dd67030699838ea613ee6dbda90effa6\") format(\"woff2\"),\n url(\"https://cdn.jsdelivr.net/npm/bootstrap-icons/font/fonts/bootstrap-icons.woff?dd67030699838ea613ee6dbda90effa6\") format(\"woff\");\n }`,\n },\n };\n // Add all bootswatch templates.\n [\n 'cerulean',\n 'cosmo',\n 'cyborg',\n 'darkly',\n 'flatly',\n 'journal',\n 'litera',\n 'lumen',\n 'lux',\n 'materia',\n 'minty',\n 'pulse',\n 'sandstone',\n 'simplex',\n 'sketchy',\n 'slate',\n 'solar',\n 'spacelab',\n 'superhero',\n 'united',\n 'yeti',\n ].forEach((template) => {\n _a.config.libs[template] = {\n dependencies: [\n 'bootstrap-icons',\n ],\n css: `${_a.cdn.bootswatch}/dist/${template}/bootstrap.min.css`,\n };\n });\n const id = _a.config.id || `formio-${Math.random().toString(36).substring(7)}`;\n // Create a new wrapper and add the element inside of a new wrapper.\n let wrapper = _a.createElement('div', {\n id: `${id}-wrapper`,\n });\n element.parentNode.insertBefore(wrapper, element);\n // If we include the libraries, then we will attempt to run this in shadow dom.\n const useShadowDom = _a.config.includeLibs &&\n !_a.config.noshadow &&\n typeof wrapper.attachShadow === 'function';\n if (useShadowDom) {\n wrapper = wrapper.attachShadow({\n mode: 'open',\n });\n options.shadowRoot = wrapper;\n }\n element.parentNode.removeChild(element);\n wrapper.appendChild(element);\n // If this is inside of shadow dom, then we need to add the styles and scripts to the shadow dom.\n const libWrapper = useShadowDom ? wrapper : document.body;\n // Load the renderer styles.\n yield _a.addStyles(libWrapper, _a.config.embedCSS || `${_a.cdn.js}/formio.embed.css`);\n // Add a loader.\n _a.addLoader(wrapper);\n const formioSrc = _a.config.full ? 'formio.full' : 'formio.form';\n const renderer = _a.config.debug ? formioSrc : `${formioSrc}.min`;\n _a.FormioClass = yield _a.addScript(libWrapper, _a.formioScript(_a.config.script || `${_a.cdn.js}/${renderer}.js`, builder), 'Formio', builder ? 'isBuilder' : 'isRenderer');\n _a.FormioClass.cdn = _a.cdn;\n _a.FormioClass.setBaseUrl(options.baseUrl || _a.baseUrl || _a.config.base);\n _a.FormioClass.setProjectUrl(options.projectUrl || _a.projectUrl || _a.config.project);\n _a.FormioClass.language = _a.language;\n _a.setLicense(_a.license || _a.config.license || false);\n _a.modules.forEach((module) => {\n _a.FormioClass.use(module);\n });\n if (_a.icons) {\n _a.FormioClass.icons = _a.icons;\n }\n if (_a.pathType) {\n _a.FormioClass.setPathType(_a.pathType);\n }\n // Add libraries if they wish to include the libs.\n if (_a.config.template && _a.config.includeLibs) {\n yield _a.addLibrary(libWrapper, _a.config.libs[_a.config.template], _a.config.template);\n }\n if (!_a.config.libraries) {\n _a.config.libraries = _a.config.modules || {};\n }\n // Adding premium if it is provided via the config.\n if (_a.config.premium) {\n _a.config.libraries.premium = _a.config.premium;\n }\n // Allow adding dynamic modules.\n if (_a.config.libraries) {\n for (const name in _a.config.libraries) {\n const lib = _a.config.libraries[name];\n lib.use = lib.use || true;\n yield _a.addLibrary(libWrapper, lib, name);\n }\n }\n yield _a.addStyles(libWrapper, _a.formioScript(_a.config.style || `${_a.cdn.js}/${renderer}.css`, builder));\n if (_a.config.before) {\n yield _a.config.before(_a.FormioClass, element, _a.config);\n }\n _a.FormioClass.license = true;\n _a._formioReady(_a.FormioClass);\n return wrapper;\n });\n }\n // Called after an instance has been created.\n static afterCreate(instance, wrapper, readyEvent) {\n return __awaiter(this, void 0, void 0, function* () {\n const loader = wrapper.querySelector('.formio-loader');\n if (loader) {\n wrapper.removeChild(loader);\n }\n _a.FormioClass.events.emit(readyEvent, instance);\n if (_a.config.after) {\n _a.debug('Calling ready callback');\n _a.config.after(instance, _a.config);\n }\n return instance;\n });\n }\n // Create a new form.\n static createForm(element, form, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n if (_a.FormioClass) {\n return _a.FormioClass.createForm(element, form, Object.assign(Object.assign({}, options), { noLoader: true }));\n }\n const wrapper = yield _a.init(element, options);\n return _a.FormioClass.createForm(element, form, Object.assign(Object.assign({}, options), { noLoader: true })).then((instance) => {\n // Set the default submission data.\n if (_a.config.submission) {\n _a.debug('Setting submission', _a.config.submission);\n instance.submission = _a.config.submission;\n }\n // Call the after create method.\n _a.afterCreate(instance, wrapper, 'formEmbedded');\n return instance;\n });\n });\n }\n // Create a form builder.\n static builder(element, form, options = {}) {\n var _b;\n return __awaiter(this, void 0, void 0, function* () {\n if ((_b = _a.FormioClass) === null || _b === void 0 ? void 0 : _b.builder) {\n return _a.FormioClass.builder(element, form, options);\n }\n const wrapper = yield _a.init(element, options, true);\n return _a.FormioClass.builder(element, form, options).then((instance) => {\n _a.afterCreate(instance, wrapper, 'builderEmbedded');\n return instance;\n });\n });\n }\n}\nexports.Formio = Formio;\n_a = Formio;\nFormio.FormioClass = null;\nFormio.config = {};\nFormio.modules = [];\nFormio.icons = '';\nFormio.license = '';\nFormio.formioReady = new Promise((ready, reject) => {\n _a._formioReady = ready;\n _a._formioReadyReject = reject;\n});\nFormio.version = '5.3.0-rc.0';\n// Create a report.\nFormio.Report = {\n create: (element, submission, options = {}) => __awaiter(void 0, void 0, void 0, function* () {\n var _b;\n if ((_b = _a.FormioClass) === null || _b === void 0 ? void 0 : _b.Report) {\n return _a.FormioClass.Report.create(element, submission, options);\n }\n const wrapper = yield _a.init(element, options, true);\n return _a.FormioClass.Report.create(element, submission, options).then((instance) => {\n _a.afterCreate(instance, wrapper, 'reportEmbedded');\n return instance;\n });\n }),\n};\nCDN_js_1.default.defaultCDN = Formio.version.includes('rc') ? 'https://cdn.test-form.io' : 'https://cdn.form.io';\nclass Form {\n constructor(element, form, options) {\n this.form = form;\n this.element = element;\n this.options = options || {};\n this.init();\n this.instance = {\n proxy: true,\n ready: this.ready,\n destroy: () => { },\n };\n }\n init() {\n if (this.instance && !this.instance.proxy) {\n this.instance.destroy();\n }\n this.element.innerHTML = '';\n this.ready = this.create().then((instance) => {\n this.instance = instance;\n this.form = instance.form;\n return instance;\n });\n }\n create() {\n return Formio.createForm(this.element, this.form, this.options);\n }\n setForm(form) {\n this.form = form;\n if (this.instance) {\n this.instance.setForm(form);\n }\n }\n setDisplay(display) {\n if (this.instance.proxy) {\n return this.ready;\n }\n this.form.display = display;\n this.instance.destroy();\n this.ready = this.create().then((instance) => {\n this.instance = instance;\n this.setForm(this.form);\n });\n return this.ready;\n }\n}\nexports.Form = Form;\nclass FormBuilder extends Form {\n create() {\n return Formio.builder(this.element, this.form, this.options);\n }\n}\nexports.FormBuilder = FormBuilder;\nFormio.Form = Form;\nFormio.FormBuilder = FormBuilder;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/Embed.js?\n}");
3625
3658
 
3626
3659
  /***/ }),
3627
3660
 
@@ -3632,7 +3665,7 @@ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _argumen
3632
3665
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3633
3666
 
3634
3667
  "use strict";
3635
- eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Formio = void 0;\nconst sdk_1 = __webpack_require__(/*! @formio/core/sdk */ \"../core/lib/sdk/index.js\");\nObject.defineProperty(exports, \"Formio\", ({ enumerable: true, get: function () { return sdk_1.Formio; } }));\nconst Embed_1 = __webpack_require__(/*! ./Embed */ \"./lib/cjs/Embed.js\");\nconst CDN_1 = __importDefault(__webpack_require__(/*! ./CDN */ \"./lib/cjs/CDN.js\"));\nconst providers_1 = __importDefault(__webpack_require__(/*! ./providers */ \"./lib/cjs/providers/index.js\"));\nsdk_1.Formio.cdn = new CDN_1.default();\nsdk_1.Formio.Providers = providers_1.default;\nsdk_1.Formio.version = '5.2.3';\nCDN_1.default.defaultCDN = sdk_1.Formio.version.includes('rc') ? 'https://cdn.test-form.io' : 'https://cdn.form.io';\nconst isNil = (val) => val === null || val === undefined;\nsdk_1.Formio.prototype.uploadFile = function (storage, file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, uploadStartCallback, abortCallback, multipartOptions) {\n const requestArgs = {\n provider: storage,\n method: 'upload',\n file: file,\n fileName: fileName,\n dir: dir\n };\n fileKey = fileKey || 'file';\n const request = sdk_1.Formio.pluginWait('preRequest', requestArgs)\n .then(() => {\n return sdk_1.Formio.pluginGet('fileRequest', requestArgs)\n .then((result) => {\n if (storage && isNil(result)) {\n const Provider = providers_1.default.getProvider('storage', storage);\n if (Provider) {\n const provider = new Provider(this);\n if (uploadStartCallback) {\n uploadStartCallback();\n }\n return provider.uploadFile(file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback, multipartOptions);\n }\n else {\n throw ('Storage provider not found');\n }\n }\n return result || { url: '' };\n });\n });\n return sdk_1.Formio.pluginAlter('wrapFileRequestPromise', request, requestArgs);\n};\nsdk_1.Formio.prototype.downloadFile = function (file, options) {\n const requestArgs = {\n method: 'download',\n file: file\n };\n const request = sdk_1.Formio.pluginWait('preRequest', requestArgs)\n .then(() => {\n return sdk_1.Formio.pluginGet('fileRequest', requestArgs)\n .then((result) => {\n if (file.storage && isNil(result)) {\n const Provider = providers_1.default.getProvider('storage', file.storage);\n if (Provider) {\n const provider = new Provider(this);\n return provider.downloadFile(file, options);\n }\n else {\n throw ('Storage provider not found');\n }\n }\n return result || { url: '' };\n });\n });\n return sdk_1.Formio.pluginAlter('wrapFileRequestPromise', request, requestArgs);\n};\nsdk_1.Formio.prototype.deleteFile = function (file, options) {\n const requestArgs = {\n method: 'delete',\n file: file\n };\n const request = sdk_1.Formio.pluginWait('preRequest', requestArgs)\n .then(() => {\n return sdk_1.Formio.pluginGet('fileRequest', requestArgs)\n .then((result) => {\n if (file.storage && isNil(result)) {\n const Provider = providers_1.default.getProvider('storage', file.storage);\n if (Provider) {\n const provider = new Provider(this);\n return provider.deleteFile(file, options);\n }\n else {\n throw ('Storage provider not found');\n }\n }\n return result || { url: '' };\n });\n });\n return sdk_1.Formio.pluginAlter('wrapFileRequestPromise', request, requestArgs);\n};\n// Esnure we proxy the following methods to the FormioEmbed class.\n['setBaseUrl', 'setApiUrl', 'setAppUrl', 'setProjectUrl', 'setPathType', 'setLicense'].forEach((fn) => {\n const baseFn = sdk_1.Formio[fn];\n sdk_1.Formio[fn] = function (arg) {\n const retVal = Embed_1.Formio[fn](arg, true);\n return baseFn ? baseFn.call(this, arg) : retVal;\n };\n});\n// For reverse compatability.\nsdk_1.Formio.Promise = Promise;\nsdk_1.Formio.formioReady = Embed_1.Formio.formioReady;\nsdk_1.Formio.config = Embed_1.Formio.config;\nsdk_1.Formio.builder = Embed_1.Formio.builder;\nsdk_1.Formio.Report = Embed_1.Formio.Report;\nsdk_1.Formio.Form = Embed_1.Formio.Form;\nsdk_1.Formio.FormBuilder = Embed_1.Formio.FormBuilder;\nsdk_1.Formio.use = Embed_1.Formio.use;\nsdk_1.Formio.createForm = Embed_1.Formio.createForm;\nsdk_1.Formio.submitDone = Embed_1.Formio.submitDone;\nsdk_1.Formio.addLibrary = Embed_1.Formio.addLibrary;\nsdk_1.Formio.addLoader = Embed_1.Formio.addLoader;\nsdk_1.Formio.addToGlobal = (global) => {\n if (typeof global === 'object' && !global.Formio) {\n global.Formio = sdk_1.Formio;\n }\n};\nif (typeof __webpack_require__.g !== 'undefined') {\n sdk_1.Formio.addToGlobal(__webpack_require__.g);\n}\nif (typeof window !== 'undefined') {\n sdk_1.Formio.addToGlobal(window);\n}\nEmbed_1.Formio._formioReady(sdk_1.Formio);\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/Formio.js?\n}");
3668
+ eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Formio = void 0;\nconst sdk_1 = __webpack_require__(/*! @formio/core/sdk */ \"../core/lib/sdk/index.js\");\nObject.defineProperty(exports, \"Formio\", ({ enumerable: true, get: function () { return sdk_1.Formio; } }));\nconst Embed_1 = __webpack_require__(/*! ./Embed */ \"./lib/cjs/Embed.js\");\nconst CDN_1 = __importDefault(__webpack_require__(/*! ./CDN */ \"./lib/cjs/CDN.js\"));\nconst providers_1 = __importDefault(__webpack_require__(/*! ./providers */ \"./lib/cjs/providers/index.js\"));\nsdk_1.Formio.cdn = new CDN_1.default();\nsdk_1.Formio.Providers = providers_1.default;\nsdk_1.Formio.version = '5.3.0-rc.0';\nCDN_1.default.defaultCDN = sdk_1.Formio.version.includes('rc')\n ? 'https://cdn.test-form.io'\n : 'https://cdn.form.io';\nconst isNil = (val) => val === null || val === undefined;\nsdk_1.Formio.prototype.uploadFile = function (storage, file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, uploadStartCallback, abortCallback, multipartOptions) {\n const requestArgs = {\n provider: storage,\n method: 'upload',\n file: file,\n fileName: fileName,\n dir: dir,\n };\n fileKey = fileKey || 'file';\n const request = sdk_1.Formio.pluginWait('preRequest', requestArgs).then(() => {\n return sdk_1.Formio.pluginGet('fileRequest', requestArgs).then((result) => {\n if (storage && isNil(result)) {\n const Provider = providers_1.default.getProvider('storage', storage);\n if (Provider) {\n const provider = new Provider(this);\n if (uploadStartCallback) {\n uploadStartCallback();\n }\n return provider.uploadFile(file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback, multipartOptions);\n }\n else {\n throw 'Storage provider not found';\n }\n }\n return result || { url: '' };\n });\n });\n return sdk_1.Formio.pluginAlter('wrapFileRequestPromise', request, requestArgs);\n};\nsdk_1.Formio.prototype.downloadFile = function (file, options) {\n const requestArgs = {\n method: 'download',\n file: file,\n };\n const request = sdk_1.Formio.pluginWait('preRequest', requestArgs).then(() => {\n return sdk_1.Formio.pluginGet('fileRequest', requestArgs).then((result) => {\n if (file.storage && isNil(result)) {\n const Provider = providers_1.default.getProvider('storage', file.storage);\n if (Provider) {\n const provider = new Provider(this);\n return provider.downloadFile(file, options);\n }\n else {\n throw 'Storage provider not found';\n }\n }\n return result || { url: '' };\n });\n });\n return sdk_1.Formio.pluginAlter('wrapFileRequestPromise', request, requestArgs);\n};\nsdk_1.Formio.prototype.deleteFile = function (file, options) {\n const requestArgs = {\n method: 'delete',\n file: file,\n };\n const request = sdk_1.Formio.pluginWait('preRequest', requestArgs).then(() => {\n return sdk_1.Formio.pluginGet('fileRequest', requestArgs).then((result) => {\n if (file.storage && isNil(result)) {\n const Provider = providers_1.default.getProvider('storage', file.storage);\n if (Provider) {\n const provider = new Provider(this);\n return provider.deleteFile(file, options);\n }\n else {\n throw 'Storage provider not found';\n }\n }\n return result || { url: '' };\n });\n });\n return sdk_1.Formio.pluginAlter('wrapFileRequestPromise', request, requestArgs);\n};\n// Esnure we proxy the following methods to the FormioEmbed class.\n[\n 'setBaseUrl',\n 'setApiUrl',\n 'setAppUrl',\n 'setProjectUrl',\n 'setPathType',\n 'setLicense',\n].forEach((fn) => {\n const baseFn = sdk_1.Formio[fn];\n sdk_1.Formio[fn] = function (arg) {\n const retVal = Embed_1.Formio[fn](arg, true);\n return baseFn ? baseFn.call(this, arg) : retVal;\n };\n});\n// For reverse compatability.\nsdk_1.Formio.Promise = Promise;\nsdk_1.Formio.formioReady = Embed_1.Formio.formioReady;\nsdk_1.Formio.config = Embed_1.Formio.config;\nsdk_1.Formio.builder = Embed_1.Formio.builder;\nsdk_1.Formio.Report = Embed_1.Formio.Report;\nsdk_1.Formio.Form = Embed_1.Formio.Form;\nsdk_1.Formio.FormBuilder = Embed_1.Formio.FormBuilder;\nsdk_1.Formio.use = Embed_1.Formio.use;\nsdk_1.Formio.createForm = Embed_1.Formio.createForm;\nsdk_1.Formio.submitDone = Embed_1.Formio.submitDone;\nsdk_1.Formio.addLibrary = Embed_1.Formio.addLibrary;\nsdk_1.Formio.addLoader = Embed_1.Formio.addLoader;\nsdk_1.Formio.addToGlobal = (global) => {\n if (typeof global === 'object' && !global.Formio) {\n global.Formio = sdk_1.Formio;\n }\n};\nif (typeof globalThis !== 'undefined') {\n sdk_1.Formio.addToGlobal(globalThis);\n}\nif (typeof window !== 'undefined') {\n sdk_1.Formio.addToGlobal(window);\n}\nEmbed_1.Formio._formioReady(sdk_1.Formio);\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/Formio.js?\n}");
3636
3669
 
3637
3670
  /***/ }),
3638
3671
 
@@ -3654,7 +3687,7 @@ eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod)
3654
3687
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3655
3688
 
3656
3689
  "use strict";
3657
- eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AddressProvider = void 0;\nconst lodash_1 = __importDefault(__webpack_require__(/*! lodash */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\"));\nconst Formio_1 = __webpack_require__(/*! ../../Formio */ \"./lib/cjs/Formio.js\");\n/**\n * @typedef {object} RequestOptions\n * @property {object} params - The request parameters.\n * @property {boolean} noToken - Whether to include a token in the request.\n */\n/**\n * @typedef {object} Address\n * @property {string} street - The street address.\n * @property {string} city - The city.\n * @property {string} state - The state.\n * @property {string} country - The country.\n * @property {string} postalCode - The postal code.\n */\n/**\n * @class AddressProvider\n * @classdesc Represents an address provider.\n */\nclass AddressProvider {\n /**\n * @static\n * @type {string}\n * @description The name of the address provider.\n */\n static get name() {\n return 'address';\n }\n /**\n * @static\n * @type {string}\n * @description The display name of the address provider.\n */\n static get displayName() {\n return 'Address';\n }\n /**\n * @class\n * @param {object} options - The options for the address provider.\n */\n constructor(options = {}) {\n this.beforeMergeOptions(options);\n this.options = lodash_1.default.merge({}, this.defaultOptions, options);\n }\n /**\n * @private\n * @description Executes before merging the options.\n */\n beforeMergeOptions() {\n return;\n }\n /**\n * @private\n * @type {object}\n * @description The default options for the address provider.\n */\n get defaultOptions() {\n return {};\n }\n /**\n * @private\n * @type {string}\n * @description The query property name.\n */\n get queryProperty() {\n return 'query';\n }\n /**\n * @private\n * @type {string|null}\n * @description The response property name.\n */\n get responseProperty() {\n return null;\n }\n /**\n * @private\n * @type {string|null}\n * @description The display value property name.\n */\n get displayValueProperty() {\n return null;\n }\n /**\n * @private\n * @param {object} params - The parameters to serialize.\n * @returns {string} The serialized parameters.\n */\n serialize(params) {\n return lodash_1.default.toPairs(params).map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`).join('&');\n }\n /**\n * @private\n * @param {object} options - The request options.\n * @returns {RequestOptions} The merged request options.\n */\n getRequestOptions(options = {}) {\n return lodash_1.default.merge({}, this.options, options);\n }\n /**\n * @private\n * @param {object} _options - The request options.\n * @throws {Error} Throws an error if the method is not implemented.\n */\n getRequestUrl(_options = {}) {\n throw new Error('Method AddressProvider#getRequestUrl(options) is abstract.');\n }\n /**\n * @private\n * @param {object} options - The request options.\n * @returns {Promise} A promise that resolves with the request result.\n */\n makeRequest(options = {}) {\n return Formio_1.Formio.makeStaticRequest(this.getRequestUrl(options), 'GET', null, {\n noToken: true,\n });\n }\n /**\n * @public\n * @description The search parameters for the request.\n * @param {string} query - The search query.\n * @param {object} options - The search options.\n * @returns {Promise<Address[]>} A promise that resolves with the search results.\n */\n search(query, options = {}) {\n const requestOptions = this.getRequestOptions(options);\n const params = requestOptions.params = requestOptions.params || {};\n params[this.queryProperty] = query;\n return this.makeRequest(requestOptions)\n .then((result) => this.responseProperty ? lodash_1.default.get(result, this.responseProperty, []) : result);\n }\n /**\n * @public\n * @param {Address} address - The address object.\n * @returns {string} The display value of the address.\n */\n getDisplayValue(address) {\n return this.displayValueProperty ? lodash_1.default.get(address, this.displayValueProperty, '') : String(address);\n }\n}\nexports.AddressProvider = AddressProvider;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/address/AddressProvider.js?\n}");
3690
+ eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AddressProvider = void 0;\nconst lodash_1 = __importDefault(__webpack_require__(/*! lodash */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\"));\nconst Formio_1 = __webpack_require__(/*! ../../Formio */ \"./lib/cjs/Formio.js\");\n/**\n * @typedef {object} RequestOptions\n * @property {object} params - The request parameters.\n * @property {boolean} noToken - Whether to include a token in the request.\n */\n/**\n * @typedef {object} Address\n * @property {string} street - The street address.\n * @property {string} city - The city.\n * @property {string} state - The state.\n * @property {string} country - The country.\n * @property {string} postalCode - The postal code.\n */\n/**\n * @class AddressProvider\n * @classdesc Represents an address provider.\n */\nclass AddressProvider {\n /**\n * @static\n * @type {string}\n * @description The name of the address provider.\n */\n static get name() {\n return 'address';\n }\n /**\n * @static\n * @type {string}\n * @description The display name of the address provider.\n */\n static get displayName() {\n return 'Address';\n }\n /**\n * @class\n * @param {object} options - The options for the address provider.\n */\n constructor(options = {}) {\n this.beforeMergeOptions(options);\n this.options = lodash_1.default.merge({}, this.defaultOptions, options);\n }\n /**\n * @private\n * @description Executes before merging the options.\n */\n beforeMergeOptions() {\n return;\n }\n /**\n * @private\n * @type {object}\n * @description The default options for the address provider.\n */\n get defaultOptions() {\n return {};\n }\n /**\n * @private\n * @type {string}\n * @description The query property name.\n */\n get queryProperty() {\n return 'query';\n }\n /**\n * @private\n * @type {string|null}\n * @description The response property name.\n */\n get responseProperty() {\n return null;\n }\n /**\n * @private\n * @type {string|null}\n * @description The display value property name.\n */\n get displayValueProperty() {\n return null;\n }\n /**\n * @private\n * @param {object} params - The parameters to serialize.\n * @returns {string} The serialized parameters.\n */\n serialize(params) {\n return lodash_1.default.toPairs(params)\n .map(([key, value,]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n .join('&');\n }\n /**\n * @private\n * @param {object} options - The request options.\n * @returns {RequestOptions} The merged request options.\n */\n getRequestOptions(options = {}) {\n return lodash_1.default.merge({}, this.options, options);\n }\n /**\n * @private\n * @param {object} _options - The request options.\n * @throws {Error} Throws an error if the method is not implemented.\n */\n getRequestUrl(_options = {}) {\n throw new Error('Method AddressProvider#getRequestUrl(options) is abstract.');\n }\n /**\n * @private\n * @param {object} options - The request options.\n * @returns {Promise} A promise that resolves with the request result.\n */\n makeRequest(options = {}) {\n return Formio_1.Formio.makeStaticRequest(this.getRequestUrl(options), 'GET', null, {\n noToken: true,\n });\n }\n /**\n * @public\n * @description The search parameters for the request.\n * @param {string} query - The search query.\n * @param {object} options - The search options.\n * @returns {Promise<Address[]>} A promise that resolves with the search results.\n */\n search(query, options = {}) {\n const requestOptions = this.getRequestOptions(options);\n const params = (requestOptions.params = requestOptions.params || {});\n params[this.queryProperty] = query;\n return this.makeRequest(requestOptions).then((result) => this.responseProperty ? lodash_1.default.get(result, this.responseProperty, []) : result);\n }\n /**\n * @public\n * @param {Address} address - The address object.\n * @returns {string} The display value of the address.\n */\n getDisplayValue(address) {\n return this.displayValueProperty\n ? lodash_1.default.get(address, this.displayValueProperty, '')\n : String(address);\n }\n}\nexports.AddressProvider = AddressProvider;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/address/AddressProvider.js?\n}");
3658
3691
 
3659
3692
  /***/ }),
3660
3693
 
@@ -3687,7 +3720,7 @@ eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexp
3687
3720
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3688
3721
 
3689
3722
  "use strict";
3690
- eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.GoogleAddressProvider = void 0;\n/* globals google */\nconst Formio_1 = __webpack_require__(/*! ../../Formio */ \"./lib/cjs/Formio.js\");\nconst lodash_1 = __importDefault(__webpack_require__(/*! lodash */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\"));\nconst AddressProvider_1 = __webpack_require__(/*! ./AddressProvider */ \"./lib/cjs/providers/address/AddressProvider.js\");\nconst GOOGLE_MAPS_BASE_URL = 'https://maps.googleapis.com';\nconst GOOGLE_MAPS_JS_URL = `${GOOGLE_MAPS_BASE_URL}/maps/api/js`;\nconst GOOGLE_MAPS_JS_WITH_PARAMS_URL = `${GOOGLE_MAPS_JS_URL}?v=quarterly&libraries=places&loading=async&callback=googleMapsCallback`;\n/**\n * @typedef {object} AutocompleteOptions\n * @property {string[]} fields - The fields to include in the autocomplete response.\n * @property {object} componentRestrictions - The component restrictions for the autocomplete response.\n * @property {string[]} componentRestrictions.country - The country codes to restrict the autocomplete response to.\n */\n/**\n * @typedef {object} ProviderOptions\n * @property {string} region - The region to restrict the autocomplete response to.\n * @property {string} key - The API key for Google Maps.\n * @property {AutocompleteOptions} autocompleteOptions - The options for the autocomplete functionality.\n */\n/**\n * @typedef {object} Place\n * @property {object} address_components - The address components of the place.\n * @property {string} formatted_address - The formatted address of the place.\n * @property {object} geometry - The geometry information of the place.\n * @property {string} place_id - The place ID of the place.\n * @property {object} plus_code - The plus code of the place.\n * @property {string[]} types - The types of the place.\n * @property {string} formattedPlace - The formatted place value.\n */\n/**\n * @class GoogleAddressProvider\n * @augments AddressProvider\n */\nclass GoogleAddressProvider extends AddressProvider_1.AddressProvider {\n /**\n * @returns {string} The name of the provider.\n */\n static get name() {\n return 'google';\n }\n /**\n * @returns {string} The display name of the provider.\n */\n static get displayName() {\n return 'Google Maps';\n }\n /**\n \n * @param {ProviderOptions} options - The options for the provider.\n */\n constructor(options = {}) {\n var _a;\n super(options);\n this.setAutocompleteOptions();\n let src = GOOGLE_MAPS_JS_WITH_PARAMS_URL;\n if ((_a = options.params) === null || _a === void 0 ? void 0 : _a.key) {\n src += `&key=${options.params.key}`;\n }\n this.tryRemoveLibrary(options);\n Formio_1.Formio.requireLibrary(this.getLibraryName(), 'google.maps.places', src);\n }\n /**\n * get display value property\n * @returns {string} The property to use for display value.\n */\n get displayValueProperty() {\n return 'formattedPlace';\n }\n /**\n * @returns {string} The alternative property to use for display value.\n */\n get alternativeDisplayValueProperty() {\n return 'formatted_address';\n }\n /**\n * @param {AutocompleteOptions} options - The autocomplete options.\n */\n set autocompleteOptions(options) {\n this._autocompleteOptions = options;\n }\n /**\n * @returns {AutocompleteOptions} The autocomplete options.\n */\n get autocompleteOptions() {\n return this._autocompleteOptions;\n }\n /**\n * Sets the autocomplete options based on the provider options.\n \n */\n setAutocompleteOptions() {\n let options = lodash_1.default.get(this.options, 'params.autocompleteOptions', {});\n if (!lodash_1.default.isObject(options)) {\n options = {};\n }\n this.addRequiredProviderOptions(options);\n this.autocompleteOptions = options;\n }\n /**\n \n * Converts the region to autocomplete option if it exists.\n * @param {ProviderOptions} options - The provider options.\n */\n beforeMergeOptions(options) {\n // providing support of old Google Provider option\n this.convertRegionToAutocompleteOption(options);\n }\n /**\n * @returns {string} The name of the library.\n */\n getLibraryName() {\n return 'googleMaps';\n }\n /**\n * Converts the region to autocomplete option.\n * @param {ProviderOptions} options - The provider options.\n */\n convertRegionToAutocompleteOption(options) {\n const providerOptions = options;\n let region = lodash_1.default.get(providerOptions, 'params.region', '');\n if (region && !lodash_1.default.has(options, 'params.autocompleteOptions')) {\n region = region.toUpperCase().trim();\n // providing compatibility with ISO 3166-1 Alpha-2 county codes (for checking compatibility https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)\n const countryCodes = { 'UK': 'GB' };\n if (countryCodes[region]) {\n region = countryCodes[region];\n }\n lodash_1.default.set(providerOptions, 'params.autocompleteOptions.componentRestrictions.country', [region]);\n }\n }\n /**\n * @returns {string[]} The required address properties.\n */\n getRequiredAddressProperties() {\n return ['address_components', 'formatted_address', 'geometry', 'place_id', 'plus_code', 'types'];\n }\n /**\n * Adds the required provider options to the options.\n * @param {AutocompleteOptions} options - The autocomplete options.\n */\n addRequiredProviderOptions(options) {\n const addressProperties = this.getRequiredAddressProperties();\n if (lodash_1.default.isArray(options.fields) && options.fields.length > 0) {\n options.fields.forEach(optionalField => {\n if (!addressProperties.some(addressProp => optionalField === addressProp)) {\n addressProperties.push(optionalField);\n }\n });\n }\n options.fields = addressProperties;\n }\n filterPlace(place) {\n place = place || {};\n const filteredPlace = {};\n if (this.autocompleteOptions) {\n this.autocompleteOptions.fields.forEach(field => {\n if (place[field]) {\n filteredPlace[field] = place[field];\n }\n });\n }\n return filteredPlace;\n }\n attachAutocomplete(elem, index, onSelectAddress) {\n Formio_1.Formio.libraryReady(this.getLibraryName()).then(() => {\n const autocomplete = new google.maps.places.Autocomplete(elem, this.autocompleteOptions);\n autocomplete.addListener('place_changed', () => {\n const place = this.filterPlace(autocomplete.getPlace());\n place.formattedPlace = lodash_1.default.get(autocomplete, 'gm_accessors_.place.se.formattedPrediction', place[this.alternativeDisplayValueProperty]);\n onSelectAddress(place, elem, index);\n });\n });\n }\n search() {\n return Promise.resolve();\n }\n makeRequest() {\n return Promise.resolve();\n }\n getDisplayValue(address) {\n const displayedProperty = lodash_1.default.has(address, this.displayValueProperty)\n ? this.displayValueProperty\n : this.alternativeDisplayValueProperty;\n return lodash_1.default.get(address, displayedProperty, '');\n }\n /**\n * Tries to remove the library if api key for loaded script is different.\n * @param {ProviderOptions} options - The options for the provider.\n */\n tryRemoveLibrary(options = {}) {\n var _a, _b, _c;\n if (!Formio_1.Formio.libraries[this.getLibraryName()]) {\n return;\n }\n const existingScript = document.querySelector(`script[src^=\"${GOOGLE_MAPS_JS_URL}\"]`);\n if (existingScript && ((_a = options.params) === null || _a === void 0 ? void 0 : _a.key) && !existingScript.attributes.src.value.endsWith(options.params.key)) {\n const googleMapsScripts = (_b = document.querySelectorAll(`script[src^=\"${GOOGLE_MAPS_BASE_URL}\"]`)) !== null && _b !== void 0 ? _b : [];\n googleMapsScripts.forEach(script => script.parentNode.removeChild(script));\n delete Formio_1.Formio.libraries[this.getLibraryName()];\n (_c = __webpack_require__.g === null || __webpack_require__.g === void 0 ? void 0 : __webpack_require__.g.google) === null || _c === void 0 ? true : delete _c.maps;\n delete __webpack_require__.g[`${this.getLibraryName()}Callback`];\n }\n }\n}\nexports.GoogleAddressProvider = GoogleAddressProvider;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/address/GoogleAddressProvider.js?\n}");
3723
+ eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.GoogleAddressProvider = void 0;\n/* globals google */\nconst Formio_1 = __webpack_require__(/*! ../../Formio */ \"./lib/cjs/Formio.js\");\nconst lodash_1 = __importDefault(__webpack_require__(/*! lodash */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\"));\nconst AddressProvider_1 = __webpack_require__(/*! ./AddressProvider */ \"./lib/cjs/providers/address/AddressProvider.js\");\nconst GOOGLE_MAPS_BASE_URL = 'https://maps.googleapis.com';\nconst GOOGLE_MAPS_JS_URL = `${GOOGLE_MAPS_BASE_URL}/maps/api/js`;\nconst GOOGLE_MAPS_JS_WITH_PARAMS_URL = `${GOOGLE_MAPS_JS_URL}?v=quarterly&libraries=places&loading=async&callback=googleMapsCallback`;\n/**\n * @typedef {object} AutocompleteOptions\n * @property {string[]} fields - The fields to include in the autocomplete response.\n * @property {object} componentRestrictions - The component restrictions for the autocomplete response.\n * @property {string[]} componentRestrictions.country - The country codes to restrict the autocomplete response to.\n */\n/**\n * @typedef {object} ProviderOptions\n * @property {string} region - The region to restrict the autocomplete response to.\n * @property {string} key - The API key for Google Maps.\n * @property {AutocompleteOptions} autocompleteOptions - The options for the autocomplete functionality.\n */\n/**\n * @typedef {object} Place\n * @property {object} address_components - The address components of the place.\n * @property {string} formatted_address - The formatted address of the place.\n * @property {object} geometry - The geometry information of the place.\n * @property {string} place_id - The place ID of the place.\n * @property {object} plus_code - The plus code of the place.\n * @property {string[]} types - The types of the place.\n * @property {string} formattedPlace - The formatted place value.\n */\n/**\n * @class GoogleAddressProvider\n * @augments AddressProvider\n */\nclass GoogleAddressProvider extends AddressProvider_1.AddressProvider {\n /**\n * @returns {string} The name of the provider.\n */\n static get name() {\n return 'google';\n }\n /**\n * @returns {string} The display name of the provider.\n */\n static get displayName() {\n return 'Google Maps';\n }\n /**\n \n * @param {ProviderOptions} options - The options for the provider.\n */\n constructor(options = {}) {\n var _a;\n super(options);\n this.setAutocompleteOptions();\n let src = GOOGLE_MAPS_JS_WITH_PARAMS_URL;\n if ((_a = options.params) === null || _a === void 0 ? void 0 : _a.key) {\n src += `&key=${options.params.key}`;\n }\n this.tryRemoveLibrary(options);\n Formio_1.Formio.requireLibrary(this.getLibraryName(), 'google.maps.places', src);\n }\n /**\n * get display value property\n * @returns {string} The property to use for display value.\n */\n get displayValueProperty() {\n return 'formattedPlace';\n }\n /**\n * @returns {string} The alternative property to use for display value.\n */\n get alternativeDisplayValueProperty() {\n return 'formatted_address';\n }\n /**\n * @param {AutocompleteOptions} options - The autocomplete options.\n */\n set autocompleteOptions(options) {\n this._autocompleteOptions = options;\n }\n /**\n * @returns {AutocompleteOptions} The autocomplete options.\n */\n get autocompleteOptions() {\n return this._autocompleteOptions;\n }\n /**\n * Sets the autocomplete options based on the provider options.\n \n */\n setAutocompleteOptions() {\n let options = lodash_1.default.get(this.options, 'params.autocompleteOptions', {});\n if (!lodash_1.default.isObject(options)) {\n options = {};\n }\n this.addRequiredProviderOptions(options);\n this.autocompleteOptions = options;\n }\n /**\n \n * Converts the region to autocomplete option if it exists.\n * @param {ProviderOptions} options - The provider options.\n */\n beforeMergeOptions(options) {\n // providing support of old Google Provider option\n this.convertRegionToAutocompleteOption(options);\n }\n /**\n * @returns {string} The name of the library.\n */\n getLibraryName() {\n return 'googleMaps';\n }\n /**\n * Converts the region to autocomplete option.\n * @param {ProviderOptions} options - The provider options.\n */\n convertRegionToAutocompleteOption(options) {\n const providerOptions = options;\n let region = lodash_1.default.get(providerOptions, 'params.region', '');\n if (region && !lodash_1.default.has(options, 'params.autocompleteOptions')) {\n region = region.toUpperCase().trim();\n // providing compatibility with ISO 3166-1 Alpha-2 county codes (for checking compatibility https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)\n const countryCodes = { UK: 'GB' };\n if (countryCodes[region]) {\n region = countryCodes[region];\n }\n lodash_1.default.set(providerOptions, 'params.autocompleteOptions.componentRestrictions.country', [\n region,\n ]);\n }\n }\n /**\n * @returns {string[]} The required address properties.\n */\n getRequiredAddressProperties() {\n return [\n 'address_components',\n 'formatted_address',\n 'geometry',\n 'place_id',\n 'plus_code',\n 'types',\n ];\n }\n /**\n * Adds the required provider options to the options.\n * @param {AutocompleteOptions} options - The autocomplete options.\n */\n addRequiredProviderOptions(options) {\n const addressProperties = this.getRequiredAddressProperties();\n if (lodash_1.default.isArray(options.fields) && options.fields.length > 0) {\n options.fields.forEach((optionalField) => {\n if (!addressProperties.some((addressProp) => optionalField === addressProp)) {\n addressProperties.push(optionalField);\n }\n });\n }\n options.fields = addressProperties;\n }\n filterPlace(place) {\n place = place || {};\n const filteredPlace = {};\n if (this.autocompleteOptions) {\n this.autocompleteOptions.fields.forEach((field) => {\n if (place[field]) {\n filteredPlace[field] = place[field];\n }\n });\n }\n return filteredPlace;\n }\n attachAutocomplete(elem, index, onSelectAddress) {\n Formio_1.Formio.libraryReady(this.getLibraryName()).then(() => {\n const autocomplete = new google.maps.places.Autocomplete(elem, this.autocompleteOptions);\n autocomplete.addListener('place_changed', () => {\n const place = this.filterPlace(autocomplete.getPlace());\n place.formattedPlace = lodash_1.default.get(autocomplete, 'gm_accessors_.place.se.formattedPrediction', place[this.alternativeDisplayValueProperty]);\n onSelectAddress(place, elem, index);\n });\n });\n }\n search() {\n return Promise.resolve();\n }\n makeRequest() {\n return Promise.resolve();\n }\n getDisplayValue(address) {\n const displayedProperty = lodash_1.default.has(address, this.displayValueProperty)\n ? this.displayValueProperty\n : this.alternativeDisplayValueProperty;\n return lodash_1.default.get(address, displayedProperty, '');\n }\n /**\n * Tries to remove the library if api key for loaded script is different.\n * @param {ProviderOptions} options - The options for the provider.\n */\n tryRemoveLibrary(options = {}) {\n var _a, _b, _c;\n if (!Formio_1.Formio.libraries[this.getLibraryName()]) {\n return;\n }\n const existingScript = document.querySelector(`script[src^=\"${GOOGLE_MAPS_JS_URL}\"]`);\n if (existingScript &&\n ((_a = options.params) === null || _a === void 0 ? void 0 : _a.key) &&\n !existingScript.attributes.src.value.endsWith(options.params.key)) {\n const googleMapsScripts = (_b = document.querySelectorAll(`script[src^=\"${GOOGLE_MAPS_BASE_URL}\"]`)) !== null && _b !== void 0 ? _b : [];\n googleMapsScripts.forEach((script) => script.parentNode.removeChild(script));\n delete Formio_1.Formio.libraries[this.getLibraryName()];\n (_c = globalThis === null || globalThis === void 0 ? void 0 : globalThis.google) === null || _c === void 0 ? true : delete _c.maps;\n delete globalThis[`${this.getLibraryName()}Callback`];\n }\n }\n}\nexports.GoogleAddressProvider = GoogleAddressProvider;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/address/GoogleAddressProvider.js?\n}");
3691
3724
 
3692
3725
  /***/ }),
3693
3726
 
@@ -3742,7 +3775,7 @@ eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod)
3742
3775
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3743
3776
 
3744
3777
  "use strict";
3745
- eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst xhr_1 = __importDefault(__webpack_require__(/*! ./xhr */ \"./lib/cjs/providers/storage/xhr.js\"));\n/**\n * Azure File Services provider for file storage.\n * @param {object} formio formio instance\n * @returns {import('./typedefs').FileProvider} The FileProvider interface defined in index.js.\n */\nfunction azure(formio) {\n return {\n uploadFile(file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback) {\n return xhr_1.default.upload(formio, 'azure', (xhr, response) => {\n xhr.openAndSetHeaders('PUT', response.url);\n xhr.setRequestHeader('Content-Type', file.type);\n xhr.setRequestHeader('x-ms-blob-type', 'BlockBlob');\n return file;\n }, file, fileName, dir, progressCallback, groupPermissions, groupId, abortCallback).then((response) => {\n return {\n storage: 'azure',\n name: xhr_1.default.path([dir, fileName]),\n size: file.size,\n type: file.type,\n groupPermissions,\n groupId,\n key: response.key,\n };\n });\n },\n downloadFile(file) {\n return formio.makeRequest('file', `${formio.formUrl}/storage/azure?name=${xhr_1.default.trim(file.name)}`, 'GET');\n },\n deleteFile: function deleteFile(fileInfo) {\n var url = `${formio.formUrl}/storage/azure?name=${xhr_1.default.trim(fileInfo.name)}&key=${xhr_1.default.trim(fileInfo.key)}`;\n return formio.makeRequest('', url, 'delete');\n }\n };\n}\nazure.title = 'Azure File Services';\nexports[\"default\"] = azure;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/storage/azure.js?\n}");
3778
+ eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst xhr_1 = __importDefault(__webpack_require__(/*! ./xhr */ \"./lib/cjs/providers/storage/xhr.js\"));\n/**\n * Azure File Services provider for file storage.\n * @param {object} formio formio instance\n * @returns {import('./typedefs').FileProvider} The FileProvider interface defined in index.js.\n */\nfunction azure(formio) {\n return {\n uploadFile(file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback) {\n return xhr_1.default.upload(formio, 'azure', (xhr, response) => {\n xhr.openAndSetHeaders('PUT', response.url);\n xhr.setRequestHeader('Content-Type', file.type);\n xhr.setRequestHeader('x-ms-blob-type', 'BlockBlob');\n return file;\n }, file, fileName, dir, progressCallback, groupPermissions, groupId, abortCallback).then((response) => {\n return {\n storage: 'azure',\n name: xhr_1.default.path([\n dir,\n fileName,\n ]),\n size: file.size,\n type: file.type,\n groupPermissions,\n groupId,\n key: response.key,\n };\n });\n },\n downloadFile(file) {\n return formio.makeRequest('file', `${formio.formUrl}/storage/azure?name=${xhr_1.default.trim(file.name)}`, 'GET');\n },\n deleteFile: function deleteFile(fileInfo) {\n var url = `${formio.formUrl}/storage/azure?name=${xhr_1.default.trim(fileInfo.name)}&key=${xhr_1.default.trim(fileInfo.key)}`;\n return formio.makeRequest('', url, 'delete');\n },\n };\n}\nazure.title = 'Azure File Services';\nexports[\"default\"] = azure;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/storage/azure.js?\n}");
3746
3779
 
3747
3780
  /***/ }),
3748
3781
 
@@ -3764,7 +3797,7 @@ eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n/**
3764
3797
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3765
3798
 
3766
3799
  "use strict";
3767
- eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst xhr_1 = __webpack_require__(/*! ./xhr */ \"./lib/cjs/providers/storage/xhr.js\");\n/**\n *\n * Google Drive provider for file storage.\n * @param {object} formio - formio instance\n * @returns {import('./typedefs').FileProvider} The FileProvider interface defined in index.js.\n */\nfunction googledrive(formio) {\n return {\n uploadFile(file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback) {\n return new Promise(((resolve, reject) => {\n // Send the file with data.\n const xhr = new XMLHttpRequest();\n if (typeof progressCallback === 'function') {\n xhr.upload.onprogress = progressCallback;\n }\n if (typeof abortCallback === 'function') {\n abortCallback(() => xhr.abort());\n }\n const fd = new FormData();\n fd.append('name', fileName);\n fd.append('dir', dir);\n fd.append('file', file);\n // Fire on network error.\n xhr.onerror = (err) => {\n err.networkError = true;\n reject(err);\n };\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n const response = JSON.parse(xhr.response);\n response.storage = 'googledrive';\n response.size = file.size;\n response.type = file.type;\n response.groupId = groupId;\n response.groupPermissions = groupPermissions;\n resolve(response);\n }\n else {\n reject(xhr.response || 'Unable to upload file');\n }\n };\n xhr.onabort = reject;\n xhr.open('POST', `${formio.formUrl}/storage/gdrive`);\n (0, xhr_1.setXhrHeaders)(formio, xhr);\n const token = formio.getToken();\n if (token) {\n xhr.setRequestHeader('x-jwt-token', token);\n }\n xhr.send(fd);\n }));\n },\n downloadFile(file, component) {\n const token = formio.getToken();\n // Constructed the url with the fileId, fileName, displayImage, imageSize if applicable\n file.url =\n `${formio.formUrl}/storage/gdrive?fileId=${file.id}&fileName=${file.originalName}${token ? `&x-jwt-token=${token}` : ''}${component.image ? '&displayImage=true' : ''}${component.imageSize ? `&imageSize=${component.imageSize}` : ''}`;\n return Promise.resolve(file);\n },\n deleteFile: function deleteFile(fileInfo) {\n var url = ''.concat(formio.formUrl, `/storage/gdrive?id=${fileInfo.id}&name=${fileInfo.originalName}`);\n return formio.makeRequest('', url, 'delete');\n },\n };\n}\ngoogledrive.title = 'Google Drive';\nexports[\"default\"] = googledrive;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/storage/googleDrive.js?\n}");
3800
+ eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst xhr_1 = __webpack_require__(/*! ./xhr */ \"./lib/cjs/providers/storage/xhr.js\");\n/**\n *\n * Google Drive provider for file storage.\n * @param {object} formio - formio instance\n * @returns {import('./typedefs').FileProvider} The FileProvider interface defined in index.js.\n */\nfunction googledrive(formio) {\n return {\n uploadFile(file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback) {\n return new Promise((resolve, reject) => {\n // Send the file with data.\n const xhr = new XMLHttpRequest();\n if (typeof progressCallback === 'function') {\n xhr.upload.onprogress = progressCallback;\n }\n if (typeof abortCallback === 'function') {\n abortCallback(() => xhr.abort());\n }\n const fd = new FormData();\n fd.append('name', fileName);\n fd.append('dir', dir);\n fd.append('file', file);\n // Fire on network error.\n xhr.onerror = (err) => {\n err.networkError = true;\n reject(err);\n };\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n const response = JSON.parse(xhr.response);\n response.storage = 'googledrive';\n response.size = file.size;\n response.type = file.type;\n response.groupId = groupId;\n response.groupPermissions = groupPermissions;\n resolve(response);\n }\n else {\n reject(xhr.response || 'Unable to upload file');\n }\n };\n xhr.onabort = reject;\n xhr.open('POST', `${formio.formUrl}/storage/gdrive`);\n (0, xhr_1.setXhrHeaders)(formio, xhr);\n const token = formio.getToken();\n if (token) {\n xhr.setRequestHeader('x-jwt-token', token);\n }\n xhr.send(fd);\n });\n },\n downloadFile(file, component) {\n const token = formio.getToken();\n // Constructed the url with the fileId, fileName, displayImage, imageSize if applicable\n file.url = `${formio.formUrl}/storage/gdrive?fileId=${file.id}&fileName=${file.originalName}${token ? `&x-jwt-token=${token}` : ''}${component.image ? '&displayImage=true' : ''}${component.imageSize ? `&imageSize=${component.imageSize}` : ''}`;\n return Promise.resolve(file);\n },\n deleteFile: function deleteFile(fileInfo) {\n var url = ''.concat(formio.formUrl, `/storage/gdrive?id=${fileInfo.id}&name=${fileInfo.originalName}`);\n return formio.makeRequest('', url, 'delete');\n },\n };\n}\ngoogledrive.title = 'Google Drive';\nexports[\"default\"] = googledrive;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/storage/googleDrive.js?\n}");
3768
3801
 
3769
3802
  /***/ }),
3770
3803
 
@@ -3775,7 +3808,7 @@ eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\ncon
3775
3808
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3776
3809
 
3777
3810
  "use strict";
3778
- eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst base64_1 = __importDefault(__webpack_require__(/*! ./base64 */ \"./lib/cjs/providers/storage/base64.js\"));\nconst s3_1 = __importDefault(__webpack_require__(/*! ./s3 */ \"./lib/cjs/providers/storage/s3.js\"));\nconst azure_1 = __importDefault(__webpack_require__(/*! ./azure */ \"./lib/cjs/providers/storage/azure.js\"));\nconst url_1 = __importDefault(__webpack_require__(/*! ./url */ \"./lib/cjs/providers/storage/url.js\"));\nconst indexeddb_1 = __importDefault(__webpack_require__(/*! ./indexeddb */ \"./lib/cjs/providers/storage/indexeddb.js\"));\nconst googleDrive_1 = __importDefault(__webpack_require__(/*! ./googleDrive */ \"./lib/cjs/providers/storage/googleDrive.js\"));\nexports[\"default\"] = {\n base64: base64_1.default,\n s3: s3_1.default,\n url: url_1.default,\n azure: azure_1.default,\n indexeddb: indexeddb_1.default,\n googledrive: googleDrive_1.default\n};\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/storage/index.js?\n}");
3811
+ eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst base64_1 = __importDefault(__webpack_require__(/*! ./base64 */ \"./lib/cjs/providers/storage/base64.js\"));\nconst s3_1 = __importDefault(__webpack_require__(/*! ./s3 */ \"./lib/cjs/providers/storage/s3.js\"));\nconst azure_1 = __importDefault(__webpack_require__(/*! ./azure */ \"./lib/cjs/providers/storage/azure.js\"));\nconst url_1 = __importDefault(__webpack_require__(/*! ./url */ \"./lib/cjs/providers/storage/url.js\"));\nconst indexeddb_1 = __importDefault(__webpack_require__(/*! ./indexeddb */ \"./lib/cjs/providers/storage/indexeddb.js\"));\nconst googleDrive_1 = __importDefault(__webpack_require__(/*! ./googleDrive */ \"./lib/cjs/providers/storage/googleDrive.js\"));\nexports[\"default\"] = {\n base64: base64_1.default,\n s3: s3_1.default,\n url: url_1.default,\n azure: azure_1.default,\n indexeddb: indexeddb_1.default,\n googledrive: googleDrive_1.default,\n};\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/storage/index.js?\n}");
3779
3812
 
3780
3813
  /***/ }),
3781
3814
 
@@ -3786,7 +3819,7 @@ eval("{\nvar __importDefault = (this && this.__importDefault) || function (mod)
3786
3819
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3787
3820
 
3788
3821
  "use strict";
3789
- eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst uuid_1 = __webpack_require__(/*! uuid */ \"../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/commonjs-browser/index.js\");\n/**\n * indexedDb provider for file storage.\n * @returns {import('./typedefs').FileProvider} The FileProvider interface defined in index.js.\n */\nfunction indexeddb() {\n return {\n title: 'indexedDB',\n name: 'indexeddb',\n uploadFile(file, fileName, dir, progressCallback, url, options) {\n if (!('indexedDB' in window)) {\n console.log('This browser doesn\\'t support IndexedDB');\n return;\n }\n return new Promise((resolve) => {\n const request = indexedDB.open(options.indexeddb);\n request.onsuccess = function (event) {\n const db = event.target.result;\n resolve(db);\n };\n request.onupgradeneeded = function (e) {\n const db = e.target.result;\n db.createObjectStore(options.indexeddbTable);\n };\n }).then((db) => {\n const reader = new FileReader();\n return new Promise((resolve, reject) => {\n reader.onload = () => {\n const blobObject = new Blob([file], { type: file.type });\n const id = (0, uuid_1.v4)(blobObject);\n const data = {\n id,\n data: blobObject,\n name: file.name,\n size: file.size,\n type: file.type,\n url,\n };\n const trans = db.transaction([options.indexeddbTable], 'readwrite');\n const addReq = trans.objectStore(options.indexeddbTable).put(data, id);\n addReq.onerror = function (e) {\n console.log('error storing data');\n console.error(e);\n };\n trans.oncomplete = function () {\n resolve({\n storage: 'indexeddb',\n name: file.name,\n size: file.size,\n type: file.type,\n url: url,\n id,\n });\n };\n };\n reader.onerror = () => {\n return reject(this);\n };\n reader.readAsDataURL(file);\n });\n });\n },\n downloadFile(file, options) {\n return new Promise((resolve) => {\n const request = indexedDB.open(options.indexeddb);\n request.onsuccess = function (event) {\n const db = event.target.result;\n resolve(db);\n };\n }).then((db) => {\n return new Promise((resolve, reject) => {\n const trans = db.transaction([options.indexeddbTable], 'readonly');\n const store = trans.objectStore(options.indexeddbTable).get(file.id);\n store.onsuccess = () => {\n trans.oncomplete = () => {\n const result = store.result;\n const dbFile = new File([store.result.data], file.name, {\n type: store.result.type,\n });\n const reader = new FileReader();\n reader.onload = (event) => {\n result.url = event.target.result;\n result.storage = file.storage;\n resolve(result);\n };\n reader.onerror = () => {\n return reject(this);\n };\n reader.readAsDataURL(dbFile);\n };\n };\n store.onerror = () => {\n return reject(this);\n };\n });\n });\n },\n deleteFile(file, options) {\n return new Promise((resolve) => {\n const request = indexedDB.open(options.indexeddb);\n request.onsuccess = function (event) {\n const db = event.target.result;\n resolve(db);\n };\n }).then((db) => {\n return new Promise((resolve, reject) => {\n const trans = db.transaction([options.indexeddbTable], 'readwrite');\n const store = trans.objectStore(options.indexeddbTable).delete(file.id);\n store.onsuccess = () => {\n trans.oncomplete = () => {\n const result = store.result;\n resolve(result);\n };\n };\n store.onerror = () => {\n return reject(this);\n };\n });\n });\n },\n };\n}\nindexeddb.title = 'IndexedDB';\nexports[\"default\"] = indexeddb;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/storage/indexeddb.js?\n}");
3822
+ eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst uuid_1 = __webpack_require__(/*! uuid */ \"../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/commonjs-browser/index.js\");\n/**\n * indexedDb provider for file storage.\n * @returns {import('./typedefs').FileProvider} The FileProvider interface defined in index.js.\n */\nfunction indexeddb() {\n return {\n title: 'indexedDB',\n name: 'indexeddb',\n uploadFile(file, fileName, dir, progressCallback, url, options) {\n if (!('indexedDB' in window)) {\n console.log(\"This browser doesn't support IndexedDB\");\n return;\n }\n return new Promise((resolve) => {\n const request = indexedDB.open(options.indexeddb);\n request.onsuccess = function (event) {\n const db = event.target.result;\n resolve(db);\n };\n request.onupgradeneeded = function (e) {\n const db = e.target.result;\n db.createObjectStore(options.indexeddbTable);\n };\n }).then((db) => {\n const reader = new FileReader();\n return new Promise((resolve, reject) => {\n reader.onload = () => {\n const blobObject = new Blob([\n file,\n ], { type: file.type });\n const id = (0, uuid_1.v4)(blobObject);\n const data = {\n id,\n data: blobObject,\n name: file.name,\n size: file.size,\n type: file.type,\n url,\n };\n const trans = db.transaction([\n options.indexeddbTable,\n ], 'readwrite');\n const addReq = trans.objectStore(options.indexeddbTable).put(data, id);\n addReq.onerror = function (e) {\n console.log('error storing data');\n console.error(e);\n };\n trans.oncomplete = function () {\n resolve({\n storage: 'indexeddb',\n name: file.name,\n size: file.size,\n type: file.type,\n url: url,\n id,\n });\n };\n };\n reader.onerror = () => {\n return reject(this);\n };\n reader.readAsDataURL(file);\n });\n });\n },\n downloadFile(file, options) {\n return new Promise((resolve) => {\n const request = indexedDB.open(options.indexeddb);\n request.onsuccess = function (event) {\n const db = event.target.result;\n resolve(db);\n };\n }).then((db) => {\n return new Promise((resolve, reject) => {\n const trans = db.transaction([\n options.indexeddbTable,\n ], 'readonly');\n const store = trans.objectStore(options.indexeddbTable).get(file.id);\n store.onsuccess = () => {\n trans.oncomplete = () => {\n const result = store.result;\n const dbFile = new File([\n store.result.data,\n ], file.name, {\n type: store.result.type,\n });\n const reader = new FileReader();\n reader.onload = (event) => {\n result.url = event.target.result;\n result.storage = file.storage;\n resolve(result);\n };\n reader.onerror = () => {\n return reject(this);\n };\n reader.readAsDataURL(dbFile);\n };\n };\n store.onerror = () => {\n return reject(this);\n };\n });\n });\n },\n deleteFile(file, options) {\n return new Promise((resolve) => {\n const request = indexedDB.open(options.indexeddb);\n request.onsuccess = function (event) {\n const db = event.target.result;\n resolve(db);\n };\n }).then((db) => {\n return new Promise((resolve, reject) => {\n const trans = db.transaction([\n options.indexeddbTable,\n ], 'readwrite');\n const store = trans.objectStore(options.indexeddbTable).delete(file.id);\n store.onsuccess = () => {\n trans.oncomplete = () => {\n const result = store.result;\n resolve(result);\n };\n };\n store.onerror = () => {\n return reject(this);\n };\n });\n });\n },\n };\n}\nindexeddb.title = 'IndexedDB';\nexports[\"default\"] = indexeddb;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/storage/indexeddb.js?\n}");
3790
3823
 
3791
3824
  /***/ }),
3792
3825
 
@@ -3797,7 +3830,7 @@ eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\ncon
3797
3830
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3798
3831
 
3799
3832
  "use strict";
3800
- eval("{\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst xhr_1 = __importDefault(__webpack_require__(/*! ./xhr */ \"./lib/cjs/providers/storage/xhr.js\"));\nconst util_1 = __webpack_require__(/*! ./util */ \"./lib/cjs/providers/storage/util.js\");\nconst loadAbortControllerPolyfill = () => __awaiter(void 0, void 0, void 0, function* () {\n if (typeof AbortController === 'undefined') {\n yield Promise.resolve().then(() => __importStar(__webpack_require__(/*! abortcontroller-polyfill/dist/polyfill-patch-fetch */ \"../../node_modules/.pnpm/abortcontroller-polyfill@1.7.8/node_modules/abortcontroller-polyfill/dist/polyfill-patch-fetch.js\")));\n }\n});\n/**\n * S3 File Services provider for file storage.\n * @param {object} formio formio instance\n * @returns {import('./typedefs').FileProvider} The FileProvider interface defined in index.js.\n */\nfunction s3(formio) {\n return {\n uploadFile(file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback, multipartOptions) {\n return __awaiter(this, void 0, void 0, function* () {\n const xhrCallback = (xhr, response, abortCallback) => __awaiter(this, void 0, void 0, function* () {\n response.data.fileName = fileName;\n response.data.key = xhr_1.default.path([response.data.key, dir, fileName]);\n if (response.signed) {\n if (multipartOptions && Array.isArray(response.signed)) {\n // patch abort callback\n yield loadAbortControllerPolyfill();\n const abortController = new AbortController();\n const abortSignal = abortController.signal;\n if (typeof abortCallback === 'function') {\n abortCallback(() => abortController.abort());\n }\n try {\n const parts = yield this.uploadParts(file, response.signed, response.data.headers, response.partSizeActual, multipartOptions, abortSignal);\n yield (0, util_1.withRetries)(this.completeMultipartUpload, [response, parts, multipartOptions], 3);\n return;\n }\n catch (err) {\n // abort in-progress fetch requests\n abortController.abort();\n // attempt to cancel the multipart upload\n this.abortMultipartUpload(response);\n throw err;\n }\n }\n else {\n xhr.openAndSetHeaders('PUT', response.signed);\n xhr.setRequestHeader('Content-Type', file.type);\n if (response.data.headers) {\n Object.keys(response.data.headers).forEach((key) => {\n xhr.setRequestHeader(key, response.data.headers[key]);\n });\n }\n return file;\n }\n }\n else {\n const fd = new FormData();\n for (const key in response.data) {\n fd.append(key, response.data[key]);\n }\n fd.append('file', file);\n xhr.openAndSetHeaders('POST', response.url);\n return fd;\n }\n });\n const response = yield xhr_1.default.upload(formio, 's3', xhrCallback, file, fileName, dir, progressCallback, groupPermissions, groupId, abortCallback, multipartOptions);\n return {\n storage: 's3',\n name: fileName,\n bucket: response.bucket,\n key: response.data.key,\n url: xhr_1.default.path([response.url, response.data.key]),\n acl: response.data.acl,\n size: file.size,\n type: file.type\n };\n });\n },\n completeMultipartUpload(serverResponse, parts, multipart) {\n return __awaiter(this, void 0, void 0, function* () {\n const { changeMessage } = multipart;\n changeMessage('Completing AWS S3 multipart upload...');\n const token = formio.getToken();\n const response = yield fetch(`${formio.formUrl}/storage/s3/multipart/complete`, {\n method: 'POST',\n headers: Object.assign({ 'Content-Type': 'application/json' }, (token ? { 'x-jwt-token': token } : {})),\n body: JSON.stringify({ parts, uploadId: serverResponse.uploadId, key: serverResponse.key })\n });\n const message = yield response.text();\n if (!response.ok) {\n throw new Error(message);\n }\n // the AWS S3 SDK CompleteMultipartUpload command can return a HTTP 200 status header but still error;\n // we need to parse, and according to AWS, to retry\n if (message.match(/Error/)) {\n throw new Error(message);\n }\n });\n },\n abortMultipartUpload(serverResponse) {\n const { uploadId, key } = serverResponse;\n const token = formio.getToken();\n fetch(`${formio.formUrl}/storage/s3/multipart/abort`, {\n method: 'POST',\n headers: Object.assign({ 'Content-Type': 'application/json' }, (token ? { 'x-jwt-token': token } : {})),\n body: JSON.stringify({ uploadId, key })\n }).catch((err) => console.error('Error while aborting multipart upload:', err));\n },\n uploadParts(file, urls, headers, partSize, multipart, abortSignal) {\n const { changeMessage, progressCallback } = multipart;\n changeMessage('Chunking and uploading parts to AWS S3...');\n const promises = [];\n for (let i = 0; i < urls.length; i++) {\n const start = i * partSize;\n const end = (i + 1) * partSize;\n const blob = i < urls.length ? file.slice(start, end) : file.slice(start);\n const promise = fetch(urls[i], {\n method: 'PUT',\n headers,\n body: blob,\n signal: abortSignal,\n }).then((res) => {\n if (res.ok) {\n progressCallback(urls.length);\n const eTag = res.headers.get('etag');\n if (!eTag) {\n throw new Error('ETag header not found; it must be exposed in S3 bucket CORS settings');\n }\n return { ETag: eTag, PartNumber: i + 1 };\n }\n else {\n throw new Error(`Part no ${i} failed with status ${res.status}`);\n }\n });\n promises.push(promise);\n }\n return Promise.all(promises);\n },\n downloadFile(file) {\n if (file.acl !== 'public-read') {\n return formio.makeRequest('file', `${formio.formUrl}/storage/s3?bucket=${xhr_1.default.trim(file.bucket)}&key=${xhr_1.default.trim(file.key)}`, 'GET');\n }\n else {\n return Promise.resolve(file);\n }\n },\n deleteFile(fileInfo) {\n const url = `${formio.formUrl}/storage/s3?bucket=${xhr_1.default.trim(fileInfo.bucket)}&key=${xhr_1.default.trim(fileInfo.key)}`;\n return formio.makeRequest('', url, 'delete');\n },\n };\n}\ns3.title = 'S3';\nexports[\"default\"] = s3;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/storage/s3.js?\n}");
3833
+ eval("{\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst xhr_1 = __importDefault(__webpack_require__(/*! ./xhr */ \"./lib/cjs/providers/storage/xhr.js\"));\nconst util_1 = __webpack_require__(/*! ./util */ \"./lib/cjs/providers/storage/util.js\");\nconst loadAbortControllerPolyfill = () => __awaiter(void 0, void 0, void 0, function* () {\n if (typeof AbortController === 'undefined') {\n yield Promise.resolve().then(() => __importStar(__webpack_require__(/*! abortcontroller-polyfill/dist/polyfill-patch-fetch */ \"../../node_modules/.pnpm/abortcontroller-polyfill@1.7.8/node_modules/abortcontroller-polyfill/dist/polyfill-patch-fetch.js\")));\n }\n});\n/**\n * S3 File Services provider for file storage.\n * @param {object} formio formio instance\n * @returns {import('./typedefs').FileProvider} The FileProvider interface defined in index.js.\n */\nfunction s3(formio) {\n return {\n uploadFile(file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback, multipartOptions) {\n return __awaiter(this, void 0, void 0, function* () {\n const xhrCallback = (xhr, response, abortCallback) => __awaiter(this, void 0, void 0, function* () {\n response.data.fileName = fileName;\n response.data.key = xhr_1.default.path([\n response.data.key,\n dir,\n fileName,\n ]);\n if (response.signed) {\n if (multipartOptions && Array.isArray(response.signed)) {\n // patch abort callback\n yield loadAbortControllerPolyfill();\n const abortController = new AbortController();\n const abortSignal = abortController.signal;\n if (typeof abortCallback === 'function') {\n abortCallback(() => abortController.abort());\n }\n try {\n const parts = yield this.uploadParts(file, response.signed, response.data.headers, response.partSizeActual, multipartOptions, abortSignal);\n yield (0, util_1.withRetries)(this.completeMultipartUpload, [\n response,\n parts,\n multipartOptions,\n ], 3);\n return;\n }\n catch (err) {\n // abort in-progress fetch requests\n abortController.abort();\n // attempt to cancel the multipart upload\n this.abortMultipartUpload(response);\n throw err;\n }\n }\n else {\n xhr.openAndSetHeaders('PUT', response.signed);\n xhr.setRequestHeader('Content-Type', file.type);\n if (response.data.headers) {\n Object.keys(response.data.headers).forEach((key) => {\n xhr.setRequestHeader(key, response.data.headers[key]);\n });\n }\n return file;\n }\n }\n else {\n const fd = new FormData();\n for (const key in response.data) {\n fd.append(key, response.data[key]);\n }\n fd.append('file', file);\n xhr.openAndSetHeaders('POST', response.url);\n return fd;\n }\n });\n const response = yield xhr_1.default.upload(formio, 's3', xhrCallback, file, fileName, dir, progressCallback, groupPermissions, groupId, abortCallback, multipartOptions);\n return {\n storage: 's3',\n name: fileName,\n bucket: response.bucket,\n key: response.data.key,\n url: xhr_1.default.path([\n response.url,\n response.data.key,\n ]),\n acl: response.data.acl,\n size: file.size,\n type: file.type,\n };\n });\n },\n completeMultipartUpload(serverResponse, parts, multipart) {\n return __awaiter(this, void 0, void 0, function* () {\n const { changeMessage } = multipart;\n changeMessage('Completing AWS S3 multipart upload...');\n const token = formio.getToken();\n const response = yield fetch(`${formio.formUrl}/storage/s3/multipart/complete`, {\n method: 'POST',\n headers: Object.assign({ 'Content-Type': 'application/json' }, (token ? { 'x-jwt-token': token } : {})),\n body: JSON.stringify({ parts, uploadId: serverResponse.uploadId, key: serverResponse.key }),\n });\n const message = yield response.text();\n if (!response.ok) {\n throw new Error(message);\n }\n // the AWS S3 SDK CompleteMultipartUpload command can return a HTTP 200 status header but still error;\n // we need to parse, and according to AWS, to retry\n if (message.match(/Error/)) {\n throw new Error(message);\n }\n });\n },\n abortMultipartUpload(serverResponse) {\n const { uploadId, key } = serverResponse;\n const token = formio.getToken();\n fetch(`${formio.formUrl}/storage/s3/multipart/abort`, {\n method: 'POST',\n headers: Object.assign({ 'Content-Type': 'application/json' }, (token ? { 'x-jwt-token': token } : {})),\n body: JSON.stringify({ uploadId, key }),\n }).catch((err) => console.error('Error while aborting multipart upload:', err));\n },\n uploadParts(file, urls, headers, partSize, multipart, abortSignal) {\n const { changeMessage, progressCallback } = multipart;\n changeMessage('Chunking and uploading parts to AWS S3...');\n const promises = [];\n for (let i = 0; i < urls.length; i++) {\n const start = i * partSize;\n const end = (i + 1) * partSize;\n const blob = i < urls.length ? file.slice(start, end) : file.slice(start);\n const promise = fetch(urls[i], {\n method: 'PUT',\n headers,\n body: blob,\n signal: abortSignal,\n }).then((res) => {\n if (res.ok) {\n progressCallback(urls.length);\n const eTag = res.headers.get('etag');\n if (!eTag) {\n throw new Error('ETag header not found; it must be exposed in S3 bucket CORS settings');\n }\n return { ETag: eTag, PartNumber: i + 1 };\n }\n else {\n throw new Error(`Part no ${i} failed with status ${res.status}`);\n }\n });\n promises.push(promise);\n }\n return Promise.all(promises);\n },\n downloadFile(file) {\n if (file.acl !== 'public-read') {\n return formio.makeRequest('file', `${formio.formUrl}/storage/s3?bucket=${xhr_1.default.trim(file.bucket)}&key=${xhr_1.default.trim(file.key)}`, 'GET');\n }\n else {\n return Promise.resolve(file);\n }\n },\n deleteFile(fileInfo) {\n const url = `${formio.formUrl}/storage/s3?bucket=${xhr_1.default.trim(fileInfo.bucket)}&key=${xhr_1.default.trim(fileInfo.key)}`;\n return formio.makeRequest('', url, 'delete');\n },\n };\n}\ns3.title = 'S3';\nexports[\"default\"] = s3;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/storage/s3.js?\n}");
3801
3834
 
3802
3835
  /***/ }),
3803
3836
 
@@ -3808,7 +3841,7 @@ eval("{\nvar __createBinding = (this && this.__createBinding) || (Object.create
3808
3841
  /***/ (function(__unused_webpack_module, exports) {
3809
3842
 
3810
3843
  "use strict";
3811
- eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n/**\n *\n * @param {object} formio - formio instance\n * @returns {import('./typedefs').FileProvider} The FileProvider interface defined in index.js.\n */\nfunction url(formio) {\n /**\n *\n * @param {object} options - options to set on the xhr\n * @param {object} xhr - the xhr object\n */\n function setOptions(options, xhr) {\n const parsedOptions = typeof options === 'string' ? JSON.parse(options) : options;\n for (const prop in parsedOptions) {\n if (prop === 'headers') {\n const headers = parsedOptions['headers'];\n for (const header in headers) {\n xhr.setRequestHeader(header, headers[header]);\n }\n }\n else {\n xhr[prop] = parsedOptions[prop];\n }\n }\n }\n const xhrRequest = (url, name, query, data, options, progressCallback, abortCallback) => {\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n const json = (typeof data === 'string');\n const fd = new FormData();\n if (typeof progressCallback === 'function') {\n xhr.upload.onprogress = progressCallback;\n }\n if (typeof abortCallback === 'function') {\n abortCallback(() => xhr.abort());\n }\n if (!json) {\n for (const key in data) {\n fd.append(key, data[key]);\n }\n }\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n // Need to test if xhr.response is decoded or not.\n let respData = {};\n try {\n respData = (typeof xhr.response === 'string') ? JSON.parse(xhr.response) : {};\n respData = (respData && respData.data) ? respData.data : respData;\n }\n catch (err) {\n respData = {};\n }\n // Get the url of the file.\n let respUrl = respData.hasOwnProperty('url') ? respData.url : `${xhr.responseURL}/${name}`;\n // If they provide relative url, then prepend the url.\n if (respUrl && respUrl[0] === '/') {\n respUrl = `${url}${respUrl}`;\n }\n resolve({ url: respUrl, data: respData });\n }\n else {\n reject(xhr.response || 'Unable to upload file');\n }\n };\n xhr.onerror = () => reject(xhr);\n xhr.onabort = () => reject(xhr);\n let requestUrl = url + (url.indexOf('?') > -1 ? '&' : '?');\n for (const key in query) {\n requestUrl += `${key}=${query[key]}&`;\n }\n if (requestUrl[requestUrl.length - 1] === '&') {\n requestUrl = requestUrl.substr(0, requestUrl.length - 1);\n }\n xhr.open('POST', requestUrl);\n if (json) {\n xhr.setRequestHeader('Content-Type', 'application/json');\n }\n const token = formio.getToken();\n if (token) {\n xhr.setRequestHeader('x-jwt-token', token);\n }\n //Overrides previous request props\n if (options) {\n setOptions(options, xhr);\n }\n xhr.send(json ? data : fd);\n });\n };\n return {\n title: 'Url',\n name: 'url',\n uploadFile(file, name, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback) {\n const uploadRequest = function (form) {\n return xhrRequest(url, name, {\n baseUrl: encodeURIComponent(formio.projectUrl),\n project: form ? form.project : '',\n form: form ? form._id : ''\n }, {\n [fileKey]: file,\n name,\n dir\n }, options, progressCallback, abortCallback).then(response => {\n // Store the project and form url along with the metadata.\n response.data = response.data || {};\n response.data.baseUrl = formio.projectUrl;\n response.data.project = form ? form.project : '';\n response.data.form = form ? form._id : '';\n return {\n storage: 'url',\n name,\n url: response.url,\n size: file.size,\n type: file.type,\n data: response.data\n };\n });\n };\n if (file.private && formio.formId) {\n return formio.loadForm().then((form) => uploadRequest(form));\n }\n else {\n return uploadRequest();\n }\n },\n deleteFile(fileInfo, options) {\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n xhr.open('DELETE', fileInfo.url, true);\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n resolve('File deleted');\n }\n else {\n reject(xhr.response || 'Unable to delete file');\n }\n };\n if (options) {\n setOptions(options, xhr);\n }\n xhr.send(null);\n });\n },\n downloadFile(file) {\n if (file.private) {\n if (formio.submissionId && file.data) {\n file.data.submission = formio.submissionId;\n }\n return xhrRequest(file.url, file.name, {}, JSON.stringify(file)).then(response => response.data);\n }\n // Return the original as there is nothing to do.\n return Promise.resolve(file);\n }\n };\n}\nurl.title = 'Url';\nexports[\"default\"] = url;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/storage/url.js?\n}");
3844
+ eval("{\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n/**\n *\n * @param {object} formio - formio instance\n * @returns {import('./typedefs').FileProvider} The FileProvider interface defined in index.js.\n */\nfunction url(formio) {\n /**\n *\n * @param {object} options - options to set on the xhr\n * @param {object} xhr - the xhr object\n */\n function setOptions(options, xhr) {\n const parsedOptions = typeof options === 'string' ? JSON.parse(options) : options;\n for (const prop in parsedOptions) {\n if (prop === 'headers') {\n const headers = parsedOptions['headers'];\n for (const header in headers) {\n xhr.setRequestHeader(header, headers[header]);\n }\n }\n else {\n xhr[prop] = parsedOptions[prop];\n }\n }\n }\n const xhrRequest = (url, name, query, data, options, progressCallback, abortCallback) => {\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n const json = typeof data === 'string';\n const fd = new FormData();\n if (typeof progressCallback === 'function') {\n xhr.upload.onprogress = progressCallback;\n }\n if (typeof abortCallback === 'function') {\n abortCallback(() => xhr.abort());\n }\n if (!json) {\n for (const key in data) {\n fd.append(key, data[key]);\n }\n }\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n // Need to test if xhr.response is decoded or not.\n let respData = {};\n try {\n respData = typeof xhr.response === 'string' ? JSON.parse(xhr.response) : {};\n respData = respData && respData.data ? respData.data : respData;\n }\n catch (ignoreErr) {\n respData = {};\n }\n // Get the url of the file.\n let respUrl = respData.hasOwnProperty('url')\n ? respData.url\n : `${xhr.responseURL}/${name}`;\n // If they provide relative url, then prepend the url.\n if (respUrl && respUrl[0] === '/') {\n respUrl = `${url}${respUrl}`;\n }\n resolve({ url: respUrl, data: respData });\n }\n else {\n reject(xhr.response || 'Unable to upload file');\n }\n };\n xhr.onerror = () => reject(xhr);\n xhr.onabort = () => reject(xhr);\n let requestUrl = url + (url.indexOf('?') > -1 ? '&' : '?');\n for (const key in query) {\n requestUrl += `${key}=${query[key]}&`;\n }\n if (requestUrl[requestUrl.length - 1] === '&') {\n requestUrl = requestUrl.substr(0, requestUrl.length - 1);\n }\n xhr.open('POST', requestUrl);\n if (json) {\n xhr.setRequestHeader('Content-Type', 'application/json');\n }\n const token = formio.getToken();\n if (token) {\n xhr.setRequestHeader('x-jwt-token', token);\n }\n //Overrides previous request props\n if (options) {\n setOptions(options, xhr);\n }\n xhr.send(json ? data : fd);\n });\n };\n return {\n title: 'Url',\n name: 'url',\n uploadFile(file, name, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback) {\n const uploadRequest = function (form) {\n return xhrRequest(url, name, {\n baseUrl: encodeURIComponent(formio.projectUrl),\n project: form ? form.project : '',\n form: form ? form._id : '',\n }, {\n [fileKey]: file,\n name,\n dir,\n }, options, progressCallback, abortCallback).then((response) => {\n // Store the project and form url along with the metadata.\n response.data = response.data || {};\n response.data.baseUrl = formio.projectUrl;\n response.data.project = form ? form.project : '';\n response.data.form = form ? form._id : '';\n return {\n storage: 'url',\n name,\n url: response.url,\n size: file.size,\n type: file.type,\n data: response.data,\n };\n });\n };\n if (file.private && formio.formId) {\n return formio.loadForm().then((form) => uploadRequest(form));\n }\n else {\n return uploadRequest();\n }\n },\n deleteFile(fileInfo, options) {\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n xhr.open('DELETE', fileInfo.url, true);\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n resolve('File deleted');\n }\n else {\n reject(xhr.response || 'Unable to delete file');\n }\n };\n if (options) {\n setOptions(options, xhr);\n }\n xhr.send(null);\n });\n },\n downloadFile(file) {\n if (file.private) {\n if (formio.submissionId && file.data) {\n file.data.submission = formio.submissionId;\n }\n return xhrRequest(file.url, file.name, {}, JSON.stringify(file)).then((response) => response.data);\n }\n // Return the original as there is nothing to do.\n return Promise.resolve(file);\n },\n };\n}\nurl.title = 'Url';\nexports[\"default\"] = url;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/storage/url.js?\n}");
3812
3845
 
3813
3846
  /***/ }),
3814
3847
 
@@ -3830,7 +3863,7 @@ eval("{\n/**\n * @typedef {any[]} Args\n */\nvar __awaiter = (this && this.__awa
3830
3863
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3831
3864
 
3832
3865
  "use strict";
3833
- eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.setXhrHeaders = void 0;\nconst trim_1 = __importDefault(__webpack_require__(/*! lodash/trim */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/trim.js\"));\nconst setXhrHeaders = (formio, xhr) => {\n const { headers } = formio.options;\n if (headers) {\n const ValidHeaders = {\n 'Content-Disposition': true,\n 'Authorization': true,\n };\n for (const header in headers) {\n if (ValidHeaders[header]) {\n xhr.setRequestHeader(header, headers[header]);\n }\n }\n }\n};\nexports.setXhrHeaders = setXhrHeaders;\nconst XHR = {\n trim(text) {\n return (0, trim_1.default)(text, '/');\n },\n path(items) {\n return items.filter(item => !!item).map(XHR.trim).join('/');\n },\n upload(formio, type, xhrCallback, file, fileName, dir, progressCallback, groupPermissions, groupId, abortCallback, multipartOptions) {\n return __awaiter(this, void 0, void 0, function* () {\n // make request to Form.io server\n const token = formio.getToken();\n let response;\n try {\n response = yield fetch(`${formio.formUrl}/storage/${type}`, {\n method: 'POST',\n headers: Object.assign({ 'Accept': 'application/json', 'Content-Type': 'application/json; charset=UTF-8' }, (token ? { 'x-jwt-token': token } : {})),\n body: JSON.stringify({\n name: XHR.path([dir, fileName]),\n size: file.size,\n type: file.type,\n groupPermissions,\n groupId,\n multipart: multipartOptions\n })\n });\n }\n catch (err) {\n // only throws on network errors\n err.networkError = true;\n throw err;\n }\n if (!response.ok) {\n if (response.status === 504) {\n const error = new Error('Network request failed');\n error.networkError = true;\n throw error;\n }\n const message = yield response.text();\n throw new Error(message || 'Unable to sign file.');\n }\n const serverResponse = yield response.json();\n return yield XHR.makeXhrRequest(formio, xhrCallback, serverResponse, progressCallback, abortCallback);\n });\n },\n makeXhrRequest(formio, xhrCallback, serverResponse, progressCallback, abortCallback) {\n return new Promise((resolve, reject) => {\n // Send the file with data.\n const xhr = new XMLHttpRequest();\n xhr.openAndSetHeaders = (...params) => {\n xhr.open(...params);\n (0, exports.setXhrHeaders)(formio, xhr);\n };\n Promise.resolve(xhrCallback(xhr, serverResponse, abortCallback)).then((payload) => {\n // if payload is nullish we can assume the provider took care of the entire upload process\n if (!payload) {\n return resolve(serverResponse);\n }\n // Fire on network error.\n xhr.onerror = (err) => {\n err.networkError = true;\n reject(err);\n };\n // Fire on network abort.\n xhr.onabort = (err) => {\n err.networkError = true;\n reject(err);\n };\n // Set the onabort error callback.\n xhr.onabort = reject;\n if (typeof progressCallback === 'function') {\n xhr.upload.onprogress = progressCallback;\n }\n if (typeof abortCallback === 'function') {\n abortCallback(() => xhr.abort());\n }\n // Fired when the response has made it back from the server.\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n resolve(serverResponse);\n }\n else if (xhr.status === 504) {\n const error = new Error('Network request failed');\n error.networkError = true;\n reject(error);\n }\n else {\n reject(xhr.response || 'Unable to upload file');\n }\n };\n // Get the request and send it to the server.\n xhr.send(payload);\n }).catch(reject);\n });\n }\n};\nexports[\"default\"] = XHR;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/storage/xhr.js?\n}");
3866
+ eval("{\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.setXhrHeaders = void 0;\nconst trim_1 = __importDefault(__webpack_require__(/*! lodash/trim */ \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/trim.js\"));\nconst setXhrHeaders = (formio, xhr) => {\n const { headers } = formio.options;\n if (headers) {\n const ValidHeaders = {\n 'Content-Disposition': true,\n Authorization: true,\n };\n for (const header in headers) {\n if (ValidHeaders[header]) {\n xhr.setRequestHeader(header, headers[header]);\n }\n }\n }\n};\nexports.setXhrHeaders = setXhrHeaders;\nconst XHR = {\n trim(text) {\n return (0, trim_1.default)(text, '/');\n },\n path(items) {\n return items\n .filter((item) => !!item)\n .map(XHR.trim)\n .join('/');\n },\n upload(formio, type, xhrCallback, file, fileName, dir, progressCallback, groupPermissions, groupId, abortCallback, multipartOptions) {\n return __awaiter(this, void 0, void 0, function* () {\n // make request to Form.io server\n const token = formio.getToken();\n let response;\n try {\n response = yield fetch(`${formio.formUrl}/storage/${type}`, {\n method: 'POST',\n headers: Object.assign({ Accept: 'application/json', 'Content-Type': 'application/json; charset=UTF-8' }, (token ? { 'x-jwt-token': token } : {})),\n body: JSON.stringify({\n name: XHR.path([\n dir,\n fileName,\n ]),\n size: file.size,\n type: file.type,\n groupPermissions,\n groupId,\n multipart: multipartOptions,\n }),\n });\n }\n catch (err) {\n // only throws on network errors\n err.networkError = true;\n throw err;\n }\n if (!response.ok) {\n if (response.status === 504) {\n const error = new Error('Network request failed');\n error.networkError = true;\n throw error;\n }\n const message = yield response.text();\n throw new Error(message || 'Unable to sign file.');\n }\n const serverResponse = yield response.json();\n return yield XHR.makeXhrRequest(formio, xhrCallback, serverResponse, progressCallback, abortCallback);\n });\n },\n makeXhrRequest(formio, xhrCallback, serverResponse, progressCallback, abortCallback) {\n return new Promise((resolve, reject) => {\n // Send the file with data.\n const xhr = new XMLHttpRequest();\n xhr.openAndSetHeaders = (...params) => {\n xhr.open(...params);\n (0, exports.setXhrHeaders)(formio, xhr);\n };\n Promise.resolve(xhrCallback(xhr, serverResponse, abortCallback))\n .then((payload) => {\n // if payload is nullish we can assume the provider took care of the entire upload process\n if (!payload) {\n return resolve(serverResponse);\n }\n // Fire on network error.\n xhr.onerror = (err) => {\n err.networkError = true;\n reject(err);\n };\n // Fire on network abort.\n xhr.onabort = (err) => {\n err.networkError = true;\n reject(err);\n };\n // Set the onabort error callback.\n xhr.onabort = reject;\n if (typeof progressCallback === 'function') {\n xhr.upload.onprogress = progressCallback;\n }\n if (typeof abortCallback === 'function') {\n abortCallback(() => xhr.abort());\n }\n // Fired when the response has made it back from the server.\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n resolve(serverResponse);\n }\n else if (xhr.status === 504) {\n const error = new Error('Network request failed');\n error.networkError = true;\n reject(error);\n }\n else {\n reject(xhr.response || 'Unable to upload file');\n }\n };\n // Get the request and send it to the server.\n xhr.send(payload);\n })\n .catch(reject);\n });\n },\n};\nexports[\"default\"] = XHR;\n\n\n//# sourceURL=webpack://Formio/./lib/cjs/providers/storage/xhr.js?\n}");
3834
3867
 
3835
3868
  /***/ })
3836
3869