@formio/js 5.0.0-rc.27 → 5.0.0-rc.29

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 (376) hide show
  1. package/dist/fonts/bootstrap-icons.woff +0 -0
  2. package/dist/fonts/bootstrap-icons.woff2 +0 -0
  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.js +957 -2270
  7. package/dist/formio.form.min.js +1 -1
  8. package/dist/formio.form.min.js.LICENSE.txt +4 -2
  9. package/dist/formio.full.css +100 -3
  10. package/dist/formio.full.js +961 -2231
  11. package/dist/formio.full.min.css +2 -2
  12. package/dist/formio.full.min.js +1 -1
  13. package/dist/formio.full.min.js.LICENSE.txt +4 -2
  14. package/dist/formio.js +101 -1966
  15. package/dist/formio.min.js +1 -1
  16. package/dist/formio.min.js.LICENSE.txt +1 -3
  17. package/dist/formio.utils.js +145 -104
  18. package/dist/formio.utils.min.js +1 -1
  19. package/dist/formio.utils.min.js.LICENSE.txt +4 -2
  20. package/lib/cjs/CDN.d.ts +1 -1
  21. package/lib/cjs/CDN.js +2 -2
  22. package/lib/cjs/Embed.d.ts +16 -7
  23. package/lib/cjs/Embed.js +76 -24
  24. package/lib/cjs/Formio.d.ts +0 -1
  25. package/lib/cjs/Formio.js +27 -19
  26. package/lib/cjs/PDF.js +2 -2
  27. package/lib/cjs/Webform.d.ts +6 -9
  28. package/lib/cjs/Webform.js +59 -81
  29. package/lib/cjs/WebformBuilder.d.ts +1 -1
  30. package/lib/cjs/WebformBuilder.js +33 -16
  31. package/lib/cjs/Wizard.d.ts +5 -4
  32. package/lib/cjs/Wizard.js +37 -26
  33. package/lib/cjs/WizardBuilder.d.ts +1 -0
  34. package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.d.ts +1 -2
  35. package/lib/cjs/addons/PasswordStrength/PasswordStrengthAddon.js +11 -12
  36. package/lib/cjs/addons/index.d.ts +1 -0
  37. package/lib/cjs/addons/index.js +5 -1
  38. package/lib/cjs/components/Components.d.ts +7 -0
  39. package/lib/cjs/components/Components.js +30 -0
  40. package/lib/cjs/components/_classes/component/Component.d.ts +57 -27
  41. package/lib/cjs/components/_classes/component/Component.js +193 -119
  42. package/lib/cjs/components/_classes/component/editForm/Component.edit.addons.d.ts +8 -0
  43. package/lib/cjs/components/_classes/component/editForm/Component.edit.addons.js +31 -1
  44. package/lib/cjs/components/_classes/nested/NestedComponent.d.ts +28 -11
  45. package/lib/cjs/components/_classes/nested/NestedComponent.js +88 -57
  46. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +4 -3
  47. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +17 -4
  48. package/lib/cjs/components/builder.js +0 -2
  49. package/lib/cjs/components/button/Button.js +2 -1
  50. package/lib/cjs/components/columns/Columns.d.ts +1 -0
  51. package/lib/cjs/components/columns/Columns.js +2 -3
  52. package/lib/cjs/components/columns/editForm/Columns.edit.display.d.ts +30 -1
  53. package/lib/cjs/components/columns/editForm/Columns.edit.display.js +23 -1
  54. package/lib/cjs/components/container/Container.d.ts +1 -0
  55. package/lib/cjs/components/container/Container.js +2 -6
  56. package/lib/cjs/components/content/Content.d.ts +1 -0
  57. package/lib/cjs/components/content/Content.js +1 -0
  58. package/lib/cjs/components/datagrid/DataGrid.d.ts +0 -8
  59. package/lib/cjs/components/datagrid/DataGrid.js +9 -26
  60. package/lib/cjs/components/datamap/DataMap.js +2 -1
  61. package/lib/cjs/components/datetime/DateTime.js +0 -2
  62. package/lib/cjs/components/day/Day.js +2 -3
  63. package/lib/cjs/components/editgrid/EditGrid.d.ts +8 -4
  64. package/lib/cjs/components/editgrid/EditGrid.js +96 -73
  65. package/lib/cjs/components/email/Email.js +0 -1
  66. package/lib/cjs/components/file/File.js +1 -1
  67. package/lib/cjs/components/file/fixtures/comp3.d.ts +29 -0
  68. package/lib/cjs/components/file/fixtures/comp3.js +31 -0
  69. package/lib/cjs/components/form/Form.d.ts +2 -6
  70. package/lib/cjs/components/form/Form.js +43 -14
  71. package/lib/cjs/components/index.d.ts +0 -2
  72. package/lib/cjs/components/index.js +0 -2
  73. package/lib/cjs/components/number/Number.d.ts +1 -2
  74. package/lib/cjs/components/number/Number.js +5 -6
  75. package/lib/cjs/components/panel/Panel.d.ts +0 -1
  76. package/lib/cjs/components/panel/Panel.js +2 -9
  77. package/lib/cjs/components/panel/editForm/Panel.edit.display.d.ts +6 -38
  78. package/lib/cjs/components/panel/editForm/Panel.edit.display.js +3 -16
  79. package/lib/cjs/components/phonenumber/PhoneNumber.js +17 -0
  80. package/lib/cjs/components/radio/Radio.js +0 -2
  81. package/lib/cjs/components/recaptcha/ReCaptcha.d.ts +1 -1
  82. package/lib/cjs/components/recaptcha/ReCaptcha.js +2 -2
  83. package/lib/cjs/components/select/Select.js +3 -2
  84. package/lib/cjs/components/selectboxes/SelectBoxes.d.ts +1 -2
  85. package/lib/cjs/components/selectboxes/SelectBoxes.js +7 -6
  86. package/lib/cjs/components/table/editForm/Table.edit.display.d.ts +31 -2
  87. package/lib/cjs/components/table/editForm/Table.edit.display.js +22 -0
  88. package/lib/cjs/components/tabs/editForm/Tabs.edit.display.d.ts +30 -2
  89. package/lib/cjs/components/tabs/editForm/Tabs.edit.display.js +22 -0
  90. package/lib/cjs/components/textfield/TextField.js +20 -6
  91. package/lib/cjs/components/time/Time.js +0 -6
  92. package/lib/cjs/components/url/Url.js +0 -1
  93. package/lib/cjs/components/well/editForm/Well.edit.display.d.ts +25 -2
  94. package/lib/cjs/components/well/editForm/Well.edit.display.js +18 -0
  95. package/lib/cjs/formio.embed.js +5 -3
  96. package/lib/cjs/formio.form.d.ts +1 -7
  97. package/lib/cjs/formio.form.js +3 -38
  98. package/lib/cjs/index.d.ts +2 -1
  99. package/lib/cjs/index.js +3 -1
  100. package/lib/cjs/providers/Providers.d.ts +0 -4
  101. package/lib/cjs/providers/storage/azure.d.ts +0 -2
  102. package/lib/cjs/providers/storage/azure.js +1 -6
  103. package/lib/cjs/providers/storage/googleDrive.d.ts +0 -1
  104. package/lib/cjs/providers/storage/googleDrive.js +0 -4
  105. package/lib/cjs/providers/storage/s3.d.ts +0 -1
  106. package/lib/cjs/providers/storage/s3.js +0 -4
  107. package/lib/cjs/templates/Templates.d.ts +1 -11
  108. package/lib/cjs/templates/Templates.js +4 -41
  109. package/lib/cjs/translations/en.d.ts +5 -0
  110. package/lib/cjs/translations/en.js +5 -0
  111. package/lib/cjs/utils/formUtils.js +1 -0
  112. package/lib/cjs/utils/index.d.ts +1 -0
  113. package/lib/cjs/utils/index.js +2 -0
  114. package/lib/cjs/utils/utils.d.ts +2 -1
  115. package/lib/cjs/utils/utils.js +27 -9
  116. package/lib/mjs/CDN.d.ts +1 -1
  117. package/lib/mjs/CDN.js +2 -2
  118. package/lib/mjs/Embed.d.ts +16 -7
  119. package/lib/mjs/Embed.js +75 -18
  120. package/lib/mjs/Formio.d.ts +0 -1
  121. package/lib/mjs/Formio.js +11 -3
  122. package/lib/mjs/PDF.js +2 -2
  123. package/lib/mjs/Webform.d.ts +6 -9
  124. package/lib/mjs/Webform.js +58 -82
  125. package/lib/mjs/WebformBuilder.d.ts +1 -1
  126. package/lib/mjs/WebformBuilder.js +31 -10
  127. package/lib/mjs/Wizard.d.ts +5 -4
  128. package/lib/mjs/Wizard.js +36 -27
  129. package/lib/mjs/WizardBuilder.d.ts +1 -0
  130. package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.d.ts +1 -2
  131. package/lib/mjs/addons/PasswordStrength/PasswordStrengthAddon.js +11 -12
  132. package/lib/mjs/addons/index.d.ts +1 -0
  133. package/lib/mjs/addons/index.js +5 -1
  134. package/lib/mjs/components/Components.d.ts +7 -0
  135. package/lib/mjs/components/Components.js +29 -0
  136. package/lib/mjs/components/_classes/component/Component.d.ts +57 -27
  137. package/lib/mjs/components/_classes/component/Component.js +191 -118
  138. package/lib/mjs/components/_classes/component/editForm/Component.edit.addons.d.ts +8 -0
  139. package/lib/mjs/components/_classes/component/editForm/Component.edit.addons.js +31 -1
  140. package/lib/mjs/components/_classes/nested/NestedComponent.d.ts +28 -11
  141. package/lib/mjs/components/_classes/nested/NestedComponent.js +88 -57
  142. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +4 -3
  143. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +18 -5
  144. package/lib/mjs/components/builder.js +0 -2
  145. package/lib/mjs/components/button/Button.js +2 -1
  146. package/lib/mjs/components/columns/Columns.d.ts +1 -0
  147. package/lib/mjs/components/columns/Columns.js +2 -3
  148. package/lib/mjs/components/columns/editForm/Columns.edit.display.d.ts +30 -1
  149. package/lib/mjs/components/columns/editForm/Columns.edit.display.js +23 -1
  150. package/lib/mjs/components/container/Container.d.ts +1 -0
  151. package/lib/mjs/components/container/Container.js +2 -6
  152. package/lib/mjs/components/content/Content.d.ts +1 -0
  153. package/lib/mjs/components/content/Content.js +1 -0
  154. package/lib/mjs/components/datagrid/DataGrid.d.ts +0 -8
  155. package/lib/mjs/components/datagrid/DataGrid.js +9 -26
  156. package/lib/mjs/components/datamap/DataMap.js +2 -1
  157. package/lib/mjs/components/datetime/DateTime.js +0 -2
  158. package/lib/mjs/components/day/Day.js +2 -3
  159. package/lib/mjs/components/editgrid/EditGrid.d.ts +8 -4
  160. package/lib/mjs/components/editgrid/EditGrid.js +97 -76
  161. package/lib/mjs/components/email/Email.js +0 -1
  162. package/lib/mjs/components/file/File.js +1 -1
  163. package/lib/mjs/components/file/fixtures/comp3.d.ts +29 -0
  164. package/lib/mjs/components/file/fixtures/comp3.js +29 -0
  165. package/lib/mjs/components/form/Form.d.ts +2 -6
  166. package/lib/mjs/components/form/Form.js +45 -14
  167. package/lib/mjs/components/index.d.ts +0 -2
  168. package/lib/mjs/components/index.js +0 -2
  169. package/lib/mjs/components/number/Number.d.ts +1 -2
  170. package/lib/mjs/components/number/Number.js +4 -5
  171. package/lib/mjs/components/panel/Panel.d.ts +0 -1
  172. package/lib/mjs/components/panel/Panel.js +3 -9
  173. package/lib/mjs/components/panel/editForm/Panel.edit.display.d.ts +6 -38
  174. package/lib/mjs/components/panel/editForm/Panel.edit.display.js +3 -16
  175. package/lib/mjs/components/phonenumber/PhoneNumber.js +17 -0
  176. package/lib/mjs/components/radio/Radio.js +0 -2
  177. package/lib/mjs/components/recaptcha/ReCaptcha.d.ts +1 -1
  178. package/lib/mjs/components/recaptcha/ReCaptcha.js +2 -2
  179. package/lib/mjs/components/select/Select.js +3 -2
  180. package/lib/mjs/components/selectboxes/SelectBoxes.d.ts +1 -2
  181. package/lib/mjs/components/selectboxes/SelectBoxes.js +7 -6
  182. package/lib/mjs/components/table/editForm/Table.edit.display.d.ts +31 -2
  183. package/lib/mjs/components/table/editForm/Table.edit.display.js +22 -0
  184. package/lib/mjs/components/tabs/editForm/Tabs.edit.display.d.ts +30 -2
  185. package/lib/mjs/components/tabs/editForm/Tabs.edit.display.js +22 -0
  186. package/lib/mjs/components/textfield/TextField.js +20 -6
  187. package/lib/mjs/components/time/Time.js +0 -6
  188. package/lib/mjs/components/url/Url.js +0 -1
  189. package/lib/mjs/components/well/editForm/Well.edit.display.d.ts +25 -2
  190. package/lib/mjs/components/well/editForm/Well.edit.display.js +18 -0
  191. package/lib/mjs/formio.embed.js +5 -3
  192. package/lib/mjs/formio.form.d.ts +1 -7
  193. package/lib/mjs/formio.form.js +3 -32
  194. package/lib/mjs/index.d.ts +2 -1
  195. package/lib/mjs/index.js +2 -1
  196. package/lib/mjs/providers/Providers.d.ts +0 -4
  197. package/lib/mjs/providers/storage/azure.d.ts +0 -2
  198. package/lib/mjs/providers/storage/azure.js +1 -6
  199. package/lib/mjs/providers/storage/googleDrive.d.ts +0 -1
  200. package/lib/mjs/providers/storage/googleDrive.js +0 -4
  201. package/lib/mjs/providers/storage/s3.d.ts +0 -1
  202. package/lib/mjs/providers/storage/s3.js +0 -4
  203. package/lib/mjs/templates/Templates.d.ts +1 -11
  204. package/lib/mjs/templates/Templates.js +4 -40
  205. package/lib/mjs/translations/en.d.ts +5 -0
  206. package/lib/mjs/translations/en.js +5 -0
  207. package/lib/mjs/utils/formUtils.js +1 -0
  208. package/lib/mjs/utils/index.d.ts +1 -0
  209. package/lib/mjs/utils/index.js +1 -0
  210. package/lib/mjs/utils/utils.d.ts +2 -1
  211. package/lib/mjs/utils/utils.js +24 -7
  212. package/package.json +13 -13
  213. package/lib/cjs/components/tree/Node.d.ts +0 -55
  214. package/lib/cjs/components/tree/Node.js +0 -185
  215. package/lib/cjs/components/tree/Tree.d.ts +0 -48
  216. package/lib/cjs/components/tree/Tree.form.d.ts +0 -3
  217. package/lib/cjs/components/tree/Tree.form.js +0 -21
  218. package/lib/cjs/components/tree/Tree.js +0 -383
  219. package/lib/cjs/components/tree/editForm/Tree.edit.data.d.ts +0 -5
  220. package/lib/cjs/components/tree/editForm/Tree.edit.data.js +0 -9
  221. package/lib/cjs/components/tree/editForm/Tree.edit.display.d.ts +0 -9
  222. package/lib/cjs/components/tree/editForm/Tree.edit.display.js +0 -12
  223. package/lib/cjs/components/tree/fixtures/comp1.d.ts +0 -23
  224. package/lib/cjs/components/tree/fixtures/comp1.js +0 -24
  225. package/lib/cjs/components/tree/fixtures/comp2.d.ts +0 -116
  226. package/lib/cjs/components/tree/fixtures/comp2.js +0 -82
  227. package/lib/cjs/components/tree/fixtures/comp3.d.ts +0 -24
  228. package/lib/cjs/components/tree/fixtures/comp3.js +0 -25
  229. package/lib/cjs/components/tree/fixtures/comp4.d.ts +0 -42
  230. package/lib/cjs/components/tree/fixtures/comp4.js +0 -47
  231. package/lib/cjs/components/tree/fixtures/index.d.ts +0 -5
  232. package/lib/cjs/components/tree/fixtures/index.js +0 -14
  233. package/lib/cjs/validator/Rules.d.ts +0 -53
  234. package/lib/cjs/validator/Rules.js +0 -22
  235. package/lib/cjs/validator/Validator.d.ts +0 -228
  236. package/lib/cjs/validator/Validator.js +0 -1113
  237. package/lib/cjs/validator/conjunctions/index.d.ts +0 -7
  238. package/lib/cjs/validator/conjunctions/index.js +0 -18
  239. package/lib/cjs/validator/operators/index.d.ts +0 -7
  240. package/lib/cjs/validator/operators/index.js +0 -18
  241. package/lib/cjs/validator/quickRules/index.d.ts +0 -7
  242. package/lib/cjs/validator/quickRules/index.js +0 -18
  243. package/lib/cjs/validator/rules/Custom.d.ts +0 -5
  244. package/lib/cjs/validator/rules/Custom.js +0 -30
  245. package/lib/cjs/validator/rules/Date.d.ts +0 -5
  246. package/lib/cjs/validator/rules/Date.js +0 -25
  247. package/lib/cjs/validator/rules/Day.d.ts +0 -5
  248. package/lib/cjs/validator/rules/Day.js +0 -58
  249. package/lib/cjs/validator/rules/Email.d.ts +0 -5
  250. package/lib/cjs/validator/rules/Email.js +0 -24
  251. package/lib/cjs/validator/rules/JSON.d.ts +0 -5
  252. package/lib/cjs/validator/rules/JSON.js +0 -29
  253. package/lib/cjs/validator/rules/Mask.d.ts +0 -5
  254. package/lib/cjs/validator/rules/Mask.js +0 -32
  255. package/lib/cjs/validator/rules/Max.d.ts +0 -5
  256. package/lib/cjs/validator/rules/Max.js +0 -21
  257. package/lib/cjs/validator/rules/MaxDate.d.ts +0 -5
  258. package/lib/cjs/validator/rules/MaxDate.js +0 -34
  259. package/lib/cjs/validator/rules/MaxLength.d.ts +0 -5
  260. package/lib/cjs/validator/rules/MaxLength.js +0 -20
  261. package/lib/cjs/validator/rules/MaxWords.d.ts +0 -5
  262. package/lib/cjs/validator/rules/MaxWords.js +0 -20
  263. package/lib/cjs/validator/rules/MaxYear.d.ts +0 -5
  264. package/lib/cjs/validator/rules/MaxYear.js +0 -22
  265. package/lib/cjs/validator/rules/Min.d.ts +0 -5
  266. package/lib/cjs/validator/rules/Min.js +0 -21
  267. package/lib/cjs/validator/rules/MinDate.d.ts +0 -5
  268. package/lib/cjs/validator/rules/MinDate.js +0 -30
  269. package/lib/cjs/validator/rules/MinLength.d.ts +0 -5
  270. package/lib/cjs/validator/rules/MinLength.js +0 -20
  271. package/lib/cjs/validator/rules/MinWords.d.ts +0 -5
  272. package/lib/cjs/validator/rules/MinWords.js +0 -20
  273. package/lib/cjs/validator/rules/MinYear.d.ts +0 -5
  274. package/lib/cjs/validator/rules/MinYear.js +0 -22
  275. package/lib/cjs/validator/rules/Pattern.d.ts +0 -5
  276. package/lib/cjs/validator/rules/Pattern.js +0 -20
  277. package/lib/cjs/validator/rules/Required.d.ts +0 -5
  278. package/lib/cjs/validator/rules/Required.js +0 -17
  279. package/lib/cjs/validator/rules/Rule.d.ts +0 -7
  280. package/lib/cjs/validator/rules/Rule.js +0 -12
  281. package/lib/cjs/validator/rules/Select.d.ts +0 -5
  282. package/lib/cjs/validator/rules/Select.js +0 -95
  283. package/lib/cjs/validator/rules/Time.d.ts +0 -5
  284. package/lib/cjs/validator/rules/Time.js +0 -19
  285. package/lib/cjs/validator/rules/Unique.d.ts +0 -5
  286. package/lib/cjs/validator/rules/Unique.js +0 -69
  287. package/lib/cjs/validator/rules/Url.d.ts +0 -5
  288. package/lib/cjs/validator/rules/Url.js +0 -23
  289. package/lib/cjs/validator/rules/index.d.ts +0 -47
  290. package/lib/cjs/validator/rules/index.js +0 -51
  291. package/lib/cjs/validator/transformers/index.d.ts +0 -7
  292. package/lib/cjs/validator/transformers/index.js +0 -18
  293. package/lib/cjs/validator/valueSources/index.d.ts +0 -7
  294. package/lib/cjs/validator/valueSources/index.js +0 -18
  295. package/lib/mjs/components/tree/Node.d.ts +0 -55
  296. package/lib/mjs/components/tree/Node.js +0 -179
  297. package/lib/mjs/components/tree/Tree.d.ts +0 -48
  298. package/lib/mjs/components/tree/Tree.form.d.ts +0 -3
  299. package/lib/mjs/components/tree/Tree.form.js +0 -15
  300. package/lib/mjs/components/tree/Tree.js +0 -384
  301. package/lib/mjs/components/tree/editForm/Tree.edit.data.d.ts +0 -5
  302. package/lib/mjs/components/tree/editForm/Tree.edit.data.js +0 -7
  303. package/lib/mjs/components/tree/editForm/Tree.edit.display.d.ts +0 -9
  304. package/lib/mjs/components/tree/editForm/Tree.edit.display.js +0 -10
  305. package/lib/mjs/components/tree/fixtures/comp1.d.ts +0 -23
  306. package/lib/mjs/components/tree/fixtures/comp1.js +0 -22
  307. package/lib/mjs/components/tree/fixtures/comp2.d.ts +0 -116
  308. package/lib/mjs/components/tree/fixtures/comp2.js +0 -80
  309. package/lib/mjs/components/tree/fixtures/comp3.d.ts +0 -24
  310. package/lib/mjs/components/tree/fixtures/comp3.js +0 -23
  311. package/lib/mjs/components/tree/fixtures/comp4.d.ts +0 -42
  312. package/lib/mjs/components/tree/fixtures/comp4.js +0 -45
  313. package/lib/mjs/components/tree/fixtures/index.d.ts +0 -5
  314. package/lib/mjs/components/tree/fixtures/index.js +0 -5
  315. package/lib/mjs/validator/Rules.d.ts +0 -53
  316. package/lib/mjs/validator/Rules.js +0 -17
  317. package/lib/mjs/validator/Validator.d.ts +0 -228
  318. package/lib/mjs/validator/Validator.js +0 -1103
  319. package/lib/mjs/validator/conjunctions/index.d.ts +0 -7
  320. package/lib/mjs/validator/conjunctions/index.js +0 -16
  321. package/lib/mjs/validator/operators/index.d.ts +0 -7
  322. package/lib/mjs/validator/operators/index.js +0 -16
  323. package/lib/mjs/validator/quickRules/index.d.ts +0 -7
  324. package/lib/mjs/validator/quickRules/index.js +0 -16
  325. package/lib/mjs/validator/rules/Custom.d.ts +0 -5
  326. package/lib/mjs/validator/rules/Custom.js +0 -21
  327. package/lib/mjs/validator/rules/Date.d.ts +0 -5
  328. package/lib/mjs/validator/rules/Date.js +0 -16
  329. package/lib/mjs/validator/rules/Day.d.ts +0 -5
  330. package/lib/mjs/validator/rules/Day.js +0 -49
  331. package/lib/mjs/validator/rules/Email.d.ts +0 -5
  332. package/lib/mjs/validator/rules/Email.js +0 -15
  333. package/lib/mjs/validator/rules/JSON.d.ts +0 -5
  334. package/lib/mjs/validator/rules/JSON.js +0 -20
  335. package/lib/mjs/validator/rules/Mask.d.ts +0 -5
  336. package/lib/mjs/validator/rules/Mask.js +0 -23
  337. package/lib/mjs/validator/rules/Max.d.ts +0 -5
  338. package/lib/mjs/validator/rules/Max.js +0 -12
  339. package/lib/mjs/validator/rules/MaxDate.d.ts +0 -5
  340. package/lib/mjs/validator/rules/MaxDate.js +0 -25
  341. package/lib/mjs/validator/rules/MaxLength.d.ts +0 -5
  342. package/lib/mjs/validator/rules/MaxLength.js +0 -11
  343. package/lib/mjs/validator/rules/MaxWords.d.ts +0 -5
  344. package/lib/mjs/validator/rules/MaxWords.js +0 -11
  345. package/lib/mjs/validator/rules/MaxYear.d.ts +0 -5
  346. package/lib/mjs/validator/rules/MaxYear.js +0 -13
  347. package/lib/mjs/validator/rules/Min.d.ts +0 -5
  348. package/lib/mjs/validator/rules/Min.js +0 -12
  349. package/lib/mjs/validator/rules/MinDate.d.ts +0 -5
  350. package/lib/mjs/validator/rules/MinDate.js +0 -21
  351. package/lib/mjs/validator/rules/MinLength.d.ts +0 -5
  352. package/lib/mjs/validator/rules/MinLength.js +0 -11
  353. package/lib/mjs/validator/rules/MinWords.d.ts +0 -5
  354. package/lib/mjs/validator/rules/MinWords.js +0 -11
  355. package/lib/mjs/validator/rules/MinYear.d.ts +0 -5
  356. package/lib/mjs/validator/rules/MinYear.js +0 -13
  357. package/lib/mjs/validator/rules/Pattern.d.ts +0 -5
  358. package/lib/mjs/validator/rules/Pattern.js +0 -11
  359. package/lib/mjs/validator/rules/Required.d.ts +0 -5
  360. package/lib/mjs/validator/rules/Required.js +0 -8
  361. package/lib/mjs/validator/rules/Rule.d.ts +0 -7
  362. package/lib/mjs/validator/rules/Rule.js +0 -9
  363. package/lib/mjs/validator/rules/Select.d.ts +0 -5
  364. package/lib/mjs/validator/rules/Select.js +0 -86
  365. package/lib/mjs/validator/rules/Time.d.ts +0 -5
  366. package/lib/mjs/validator/rules/Time.js +0 -10
  367. package/lib/mjs/validator/rules/Unique.d.ts +0 -5
  368. package/lib/mjs/validator/rules/Unique.js +0 -60
  369. package/lib/mjs/validator/rules/Url.d.ts +0 -5
  370. package/lib/mjs/validator/rules/Url.js +0 -14
  371. package/lib/mjs/validator/rules/index.d.ts +0 -47
  372. package/lib/mjs/validator/rules/index.js +0 -46
  373. package/lib/mjs/validator/transformers/index.d.ts +0 -7
  374. package/lib/mjs/validator/transformers/index.js +0 -16
  375. package/lib/mjs/validator/valueSources/index.d.ts +0 -7
  376. package/lib/mjs/validator/valueSources/index.js +0 -16
@@ -31,9 +31,9 @@ const vanilla_text_mask_1 = require("@formio/vanilla-text-mask");
31
31
  const tippy_js_1 = __importDefault(require("tippy.js"));
32
32
  const lodash_1 = __importDefault(require("lodash"));
33
33
  const ismobilejs_1 = __importDefault(require("ismobilejs"));
34
+ const process_1 = require("@formio/core/process");
34
35
  const Formio_1 = require("../../../Formio");
35
36
  const FormioUtils = __importStar(require("../../../utils/utils"));
36
- const Validator_1 = __importDefault(require("../../../validator/Validator"));
37
37
  const utils_1 = require("../../../utils/utils");
38
38
  const Element_1 = __importDefault(require("../../../Element"));
39
39
  const ComponentModal_1 = __importDefault(require("../componentModal/ComponentModal"));
@@ -191,15 +191,6 @@ class Component extends Element_1.default {
191
191
  addons: [],
192
192
  }, ...sources);
193
193
  }
194
- /**
195
- * Return the validator as part of the component.
196
- *
197
- * @return {ValidationChecker}
198
- * @constructor
199
- */
200
- static get Validator() {
201
- return Validator_1.default;
202
- }
203
194
  /**
204
195
  * Return the simple condition settings as part of the component.
205
196
  *
@@ -269,16 +260,21 @@ class Component extends Element_1.default {
269
260
  this.options.components[component.type]) {
270
261
  lodash_1.default.merge(component, this.options.components[component.type]);
271
262
  }
272
- /**
273
- * Set the validator instance.
274
- */
275
- this.validator = Validator_1.default;
276
263
  /**
277
264
  * The data path to this specific component instance.
278
265
  *
279
266
  * @type {string}
280
267
  */
281
- this.path = '';
268
+ this.path = (component === null || component === void 0 ? void 0 : component.key) || '';
269
+ /**
270
+ * An array of all the children components errors.
271
+ */
272
+ this.childErrors = [];
273
+ /**
274
+ * Last validation errors that have occured.
275
+ */
276
+ this._errors = [];
277
+ this._visibleErrors = [];
282
278
  /**
283
279
  * The Form.io component JSON schema.
284
280
  * @type {*}
@@ -302,11 +298,6 @@ class Component extends Element_1.default {
302
298
  * @type {*}
303
299
  */
304
300
  this._data = data || {};
305
- /**
306
- * The existing error that this component has.
307
- * @type {string}
308
- */
309
- this.error = '';
310
301
  /**
311
302
  * Tool tip text after processing
312
303
  * @type {string}
@@ -317,6 +308,12 @@ class Component extends Element_1.default {
317
308
  * @type {number}
318
309
  */
319
310
  this.row = this.options.row;
311
+ /**
312
+ * Points to a flat map of child components (if applicable).
313
+ *
314
+ * @type {Object}
315
+ */
316
+ this.childComponentsMap = {};
320
317
  /**
321
318
  * Determines if this component is disabled, or not.
322
319
  *
@@ -328,8 +325,8 @@ class Component extends Element_1.default {
328
325
  *
329
326
  * @type {Component}
330
327
  */
331
- this.root = this.options.root;
332
- this.localRoot = this.options.localRoot;
328
+ this.root = this.options.root || this;
329
+ this.localRoot = this.options.localRoot || this;
333
330
  /**
334
331
  * If this input has been input and provided value.
335
332
  *
@@ -343,14 +340,7 @@ class Component extends Element_1.default {
343
340
  */
344
341
  this.parent = this.options.parent;
345
342
  this.options.name = this.options.name || 'data';
346
- /**
347
- * The validators that are assigned to this component.
348
- * @type {[string]}
349
- */
350
- this.validators = ['required', 'minLength', 'maxLength', 'minWords', 'maxWords', 'custom', 'pattern', 'json', 'mask'];
351
343
  this._path = '';
352
- // Nested forms don't have parents so we need to pass their path in.
353
- this._parentPath = this.options.parentPath || '';
354
344
  // Needs for Nextgen Rules Engine
355
345
  this.resetCaches();
356
346
  /**
@@ -450,6 +440,15 @@ class Component extends Element_1.default {
450
440
  }
451
441
  }
452
442
  /* eslint-enable max-statements */
443
+ get componentsMap() {
444
+ var _a;
445
+ if ((_a = this.localRoot) === null || _a === void 0 ? void 0 : _a.childComponentsMap) {
446
+ return this.localRoot.childComponentsMap;
447
+ }
448
+ const localMap = {};
449
+ localMap[this.path] = this;
450
+ return localMap;
451
+ }
453
452
  get data() {
454
453
  return this._data;
455
454
  }
@@ -683,7 +682,7 @@ class Component extends Element_1.default {
683
682
  const isRightAlign = this.rightDirection(this.labelPositions[1]);
684
683
  let contentMargin = '';
685
684
  if (this.component.hideLabel) {
686
- const margin = this.labelWidth + this.labelMargin;
685
+ const margin = isCondensed ? 0 : this.labelWidth + this.labelMargin;
687
686
  contentMargin = isRightPosition ? `margin-right: ${margin}%` : '';
688
687
  contentMargin = isLeftPosition ? `margin-left: ${margin}%` : '';
689
688
  }
@@ -765,9 +764,9 @@ class Component extends Element_1.default {
765
764
  if (text in en_1.default && params._userInput) {
766
765
  return text;
767
766
  }
768
- params.data = this.rootValue;
769
- params.row = this.data;
770
- params.component = this.component;
767
+ params.data = params.data || this.rootValue;
768
+ params.row = params.row || this.data;
769
+ params.component = params.component || this.component;
771
770
  return super.t(text, params, ...args);
772
771
  }
773
772
  labelIsHidden() {
@@ -885,8 +884,7 @@ class Component extends Element_1.default {
885
884
  */
886
885
  sanitize(dirty, forceSanitize, options) {
887
886
  var _a;
888
- // No need to sanitize when generating PDF'S since no users interact with the form.
889
- if ((!this.shouldSanitizeValue && !forceSanitize) || ((this.options.pdf) && !forceSanitize)) {
887
+ if (!this.shouldSanitizeValue && !forceSanitize) {
890
888
  return dirty;
891
889
  }
892
890
  return FormioUtils.sanitize(dirty, {
@@ -1011,17 +1009,13 @@ class Component extends Element_1.default {
1011
1009
  getModalPreviewTemplate() {
1012
1010
  var _a;
1013
1011
  const dataValue = this.component.type === 'password' ? this.dataValue.replace(/./g, '•') : this.dataValue;
1014
- const message = this.error ? {
1015
- level: 'error',
1016
- message: this.error.message,
1017
- } : '';
1018
1012
  let modalLabel;
1019
1013
  if (this.hasInput && ((_a = this.component.validate) === null || _a === void 0 ? void 0 : _a.required) && !this.isPDFReadOnlyMode) {
1020
1014
  modalLabel = { className: 'field-required' };
1021
1015
  }
1022
1016
  return this.renderTemplate('modalPreview', {
1023
1017
  previewText: this.getValueAsString(dataValue, { modalPreview: true }) || this.t('Click to set value'),
1024
- messages: message && this.renderTemplate('message', message),
1018
+ messages: '',
1025
1019
  labelInfo: modalLabel,
1026
1020
  });
1027
1021
  }
@@ -1510,6 +1504,12 @@ class Component extends Element_1.default {
1510
1504
  get name() {
1511
1505
  return this.t(this.component.label || this.component.placeholder || this.key, { _userInput: true });
1512
1506
  }
1507
+ get visibleErrors() {
1508
+ return this._visibleErrors;
1509
+ }
1510
+ get errors() {
1511
+ return this._errors;
1512
+ }
1513
1513
  /**
1514
1514
  * Returns the error label for this component.
1515
1515
  * @return {*}
@@ -1831,7 +1831,7 @@ class Component extends Element_1.default {
1831
1831
  if (message.message && typeof message.message === 'string') {
1832
1832
  message.message = message.message.replaceAll('<', '&lt;').replaceAll('>', '&gt;');
1833
1833
  }
1834
- return this.renderTemplate('message', message);
1834
+ return this.renderTemplate('message', Object.assign({}, message));
1835
1835
  }).join(''));
1836
1836
  }
1837
1837
  }
@@ -1904,7 +1904,7 @@ class Component extends Element_1.default {
1904
1904
  this.addClass(this.getElement(), 'formio-modified');
1905
1905
  }
1906
1906
  // If we are supposed to validate on blur, then don't trigger validation yet.
1907
- if (this.component.validateOn === 'blur' && !this.errors.length) {
1907
+ if (this.component.validateOn === 'blur') {
1908
1908
  flags.noValidate = true;
1909
1909
  }
1910
1910
  if (this.component.onChange) {
@@ -2421,6 +2421,10 @@ class Component extends Element_1.default {
2421
2421
  */
2422
2422
  updateOnChange(flags = {}, changed = false) {
2423
2423
  if (!flags.noUpdateEvent && changed) {
2424
+ if (flags.fromSubmission) {
2425
+ // Reset the errors when a submission has been made and allow it to revalidate.
2426
+ this._errors = [];
2427
+ }
2424
2428
  this.triggerChange(flags);
2425
2429
  return true;
2426
2430
  }
@@ -2588,7 +2592,21 @@ class Component extends Element_1.default {
2588
2592
  if (!this.hasInput || (!dirty && this.pristine)) {
2589
2593
  return '';
2590
2594
  }
2591
- return lodash_1.default.map(Validator_1.default.checkComponent(this, data), 'message').join('\n\n');
2595
+ const validationScope = { errors: [] };
2596
+ (0, process_1.processOneSync)({
2597
+ component: this.component,
2598
+ data,
2599
+ row,
2600
+ path: this.path || this.component.key,
2601
+ scope: validationScope,
2602
+ instance: this,
2603
+ processors: [
2604
+ process_1.validateProcessSync
2605
+ ]
2606
+ });
2607
+ const errors = validationScope.errors;
2608
+ const interpolatedErrors = FormioUtils.interpolateErrors(this.component, errors, this.t.bind(this));
2609
+ return lodash_1.default.map(interpolatedErrors, 'message').join('\n\n');
2592
2610
  }
2593
2611
  /**
2594
2612
  * Returns if the component is valid or not.
@@ -2600,15 +2618,83 @@ class Component extends Element_1.default {
2600
2618
  isValid(data, dirty) {
2601
2619
  return !this.invalidMessage(data, dirty);
2602
2620
  }
2603
- setComponentValidity(messages, dirty, silentCheck) {
2604
- const hasErrors = !!messages.filter(message => message.level === 'error' && !message.fromServer).length;
2605
- if (messages.length && (!silentCheck || this.error) && (!this.isEmpty(this.defaultValue) || dirty || !this.pristine)) {
2606
- this.setCustomValidity(messages, dirty);
2621
+ setComponentValidity(errors, dirty, silentCheck) {
2622
+ if (silentCheck) {
2623
+ return [];
2607
2624
  }
2608
- else if (!silentCheck) {
2609
- this.setCustomValidity('');
2625
+ const messages = errors.filter(message => !message.fromServer);
2626
+ if (errors.length && !!messages.length && (!this.isEmpty(this.defaultValue) || dirty || !this.pristine)) {
2627
+ return this.setCustomValidity(messages, dirty);
2628
+ }
2629
+ else {
2630
+ return this.setCustomValidity('');
2610
2631
  }
2611
- return !hasErrors;
2632
+ }
2633
+ /**
2634
+ * Interpolate errors from the validation methods.
2635
+ * @param {*} errors
2636
+ * @returns
2637
+ */
2638
+ interpolateErrors(errors) {
2639
+ var _a;
2640
+ const interpolatedErrors = FormioUtils.interpolateErrors(this.component, errors, this.t.bind(this));
2641
+ return ((_a = this.serverErrors) === null || _a === void 0 ? void 0 : _a.length) ? [...interpolatedErrors, ...this.serverErrors] : interpolatedErrors;
2642
+ }
2643
+ /**
2644
+ * Show component validation errors.
2645
+ * @param {*} errors - An array of errors that have occured.
2646
+ * @param {*} data - The root submission data.
2647
+ * @param {*} row - The contextual row data.
2648
+ * @param {*} flags - The flags to perform validation.
2649
+ * @returns
2650
+ */
2651
+ showValidationErrors(errors, data, row, flags) {
2652
+ if (flags.silentCheck) {
2653
+ return [];
2654
+ }
2655
+ if (this.options.alwaysDirty) {
2656
+ flags.dirty = true;
2657
+ }
2658
+ if (flags.fromSubmission && this.hasValue(data)) {
2659
+ flags.dirty = true;
2660
+ }
2661
+ this.setDirty(flags.dirty);
2662
+ return this.setComponentValidity(errors, flags.dirty, flags.silentCheck, flags.fromSubmission);
2663
+ }
2664
+ /**
2665
+ * Perform a component validation.
2666
+ * @param {*} data - The root data you wish to use for this component.
2667
+ * @param {*} row - The contextual row data you wish to use for this component.
2668
+ * @param {*} flags - The flags to control the behavior of the validation.
2669
+ * @returns
2670
+ */
2671
+ validateComponent(data, row, flags = {}) {
2672
+ data = data || this.rootValue;
2673
+ row = row || this.data;
2674
+ const { async = false } = flags;
2675
+ if (this.shouldSkipValidation(data, row, flags)) {
2676
+ return async ? Promise.resolve([]) : [];
2677
+ }
2678
+ const processContext = {
2679
+ component: this.component,
2680
+ data,
2681
+ row,
2682
+ path: this.path || this.component.key,
2683
+ instance: this,
2684
+ scope: { errors: [] },
2685
+ processors: [
2686
+ async ? process_1.validateProcess : process_1.validateProcessSync
2687
+ ]
2688
+ };
2689
+ if (async) {
2690
+ return (0, process_1.processOne)(processContext).then(() => {
2691
+ this._errors = this.interpolateErrors(processContext.scope.errors);
2692
+ return this._errors;
2693
+ });
2694
+ }
2695
+ (0, process_1.processOneSync)(processContext);
2696
+ this._errors = this.interpolateErrors(processContext.scope.errors);
2697
+ return this._errors;
2612
2698
  }
2613
2699
  /**
2614
2700
  * Checks the validity of this component and sets the error message if it is invalid.
@@ -2618,33 +2704,47 @@ class Component extends Element_1.default {
2618
2704
  * @param row
2619
2705
  * @return {boolean}
2620
2706
  */
2621
- checkComponentValidity(data, dirty, row, options = {}) {
2622
- var _a;
2707
+ checkComponentValidity(data, dirty, row, flags = {}, allErrors = []) {
2623
2708
  data = data || this.rootValue;
2624
2709
  row = row || this.data;
2625
- const { async = false, silentCheck = false } = options;
2626
- if (this.shouldSkipValidation(data, dirty, row)) {
2627
- this.setCustomValidity('');
2628
- return async ? Promise.resolve(true) : true;
2710
+ flags.dirty = dirty || false;
2711
+ if (flags.async) {
2712
+ return this.validateComponent(data, row, flags).then((errors) => {
2713
+ allErrors.push(...errors);
2714
+ if (this.parent && this.parent.childErrors) {
2715
+ this.parent.childErrors.push(...errors);
2716
+ }
2717
+ this.showValidationErrors(errors, data, row, flags);
2718
+ return errors.length === 0;
2719
+ });
2629
2720
  }
2630
- const check = Validator_1.default.checkComponent(this, data, row, true, async);
2631
- let validations = check;
2632
- if ((_a = this.serverErrors) === null || _a === void 0 ? void 0 : _a.length) {
2633
- validations = check.concat(this.serverErrors);
2721
+ else {
2722
+ const errors = this.validateComponent(data, row, flags);
2723
+ this.showValidationErrors(errors, data, row, flags);
2724
+ allErrors.push(...errors);
2725
+ if (this.parent && this.parent.childErrors) {
2726
+ this.parent.childErrors.push(...errors);
2727
+ }
2728
+ return errors.length === 0;
2634
2729
  }
2635
- return async ?
2636
- validations.then((messages) => this.setComponentValidity(messages, dirty, silentCheck)) :
2637
- this.setComponentValidity(validations, dirty, silentCheck);
2638
2730
  }
2639
- checkValidity(data, dirty, row, silentCheck) {
2731
+ /**
2732
+ * Checks the validity of the component.
2733
+ * @param {*} data
2734
+ * @param {*} dirty
2735
+ * @param {*} row
2736
+ * @param {*} silentCheck
2737
+ * @returns
2738
+ */
2739
+ checkValidity(data, dirty, row, silentCheck, errors = []) {
2640
2740
  data = data || this.rootValue;
2641
2741
  row = row || this.data;
2642
- const isValid = this.checkComponentValidity(data, dirty, row, { silentCheck });
2643
- this.checkModal();
2644
- return isValid;
2742
+ console.log('Deprecation warning: Component.checkValidity() will be deprecated in 6.x version of renderer. Use Component.validateComponent instead.');
2743
+ return this.checkComponentValidity(data, dirty, row, { silentCheck }, errors);
2645
2744
  }
2646
- checkAsyncValidity(data, dirty, row, silentCheck) {
2647
- return Promise.resolve(this.checkComponentValidity(data, dirty, row, { async: true, silentCheck }));
2745
+ checkAsyncValidity(data, dirty, row, silentCheck, errors = []) {
2746
+ console.log('Deprecation warning: Component.checkAsyncValidity() will be deprecated in 6.x version of renderer. Use Component.validateComponent instead.');
2747
+ return this.checkComponentValidity(data, dirty, row, { async: true, silentCheck }, errors);
2648
2748
  }
2649
2749
  /**
2650
2750
  * Check the conditions, calculations, and validity of a single component and triggers an update if
@@ -2672,35 +2772,15 @@ class Component extends Element_1.default {
2672
2772
  if (this.id !== flags.triggeredComponentId) {
2673
2773
  this.calculateComponentValue(data, flags, row);
2674
2774
  }
2675
- if (flags.noValidate && !flags.validateOnInit && !flags.fromIframe) {
2676
- if (flags.fromSubmission && this.rootPristine && this.pristine && this.error && flags.changed) {
2677
- this.checkComponentValidity(data, !!this.options.alwaysDirty, row, true);
2678
- }
2679
- return true;
2680
- }
2681
- let isDirty = false;
2682
- // We need to set dirty if they explicitly set noValidate to false.
2683
- if (this.options.alwaysDirty || flags.dirty) {
2684
- isDirty = true;
2685
- }
2686
- // See if they explicitely set the values with setSubmission.
2687
- if (flags.fromSubmission && this.hasValue(data)) {
2688
- isDirty = true;
2689
- }
2690
- this.setDirty(isDirty);
2691
- if (this.component.validateOn === 'blur' && flags.fromSubmission) {
2692
- return true;
2693
- }
2694
- const isValid = this.checkComponentValidity(data, isDirty, row, flags);
2695
- this.checkModal();
2696
- return isValid;
2697
2775
  }
2698
- checkModal(isValid = true, dirty = false) {
2776
+ checkModal(errors = [], dirty = false) {
2777
+ const messages = errors.filter(error => !error.fromServer);
2778
+ const isValid = errors.length === 0;
2699
2779
  if (!this.component.modalEdit || !this.componentModal) {
2700
2780
  return;
2701
2781
  }
2702
2782
  if (dirty && !isValid) {
2703
- this.setErrorClasses([this.refs.openModal], dirty, !isValid, !!this.errors.length, this.refs.openModalWrapper);
2783
+ this.setErrorClasses([this.refs.openModal], dirty, !isValid, !!messages.length, this.refs.openModalWrapper);
2704
2784
  }
2705
2785
  else {
2706
2786
  this.clearErrorClasses(this.refs.openModalWrapper);
@@ -2724,9 +2804,6 @@ class Component extends Element_1.default {
2724
2804
  validateMultiple() {
2725
2805
  return true;
2726
2806
  }
2727
- get errors() {
2728
- return this.error ? [this.error] : [];
2729
- }
2730
2807
  clearErrorClasses(element = this.element) {
2731
2808
  this.removeClass(element, this.options.componentErrorClass);
2732
2809
  this.removeClass(element, 'alert alert-danger');
@@ -2773,12 +2850,14 @@ class Component extends Element_1.default {
2773
2850
  });
2774
2851
  });
2775
2852
  }
2853
+ // eslint-disable-next-line max-statements
2776
2854
  setCustomValidity(messages, dirty, external) {
2777
2855
  const inputRefs = this.isInputComponent ? this.refs.input || [] : null;
2778
2856
  if (typeof messages === 'string' && messages) {
2779
2857
  messages = {
2780
2858
  level: 'error',
2781
2859
  message: messages,
2860
+ component: this.component,
2782
2861
  };
2783
2862
  }
2784
2863
  if (!Array.isArray(messages)) {
@@ -2789,19 +2868,20 @@ class Component extends Element_1.default {
2789
2868
  messages = [];
2790
2869
  }
2791
2870
  }
2792
- const hasErrors = !!messages.filter(message => message.level === 'error').length;
2871
+ const errors = messages.filter(message => message.level === 'error');
2793
2872
  let invalidInputRefs = inputRefs;
2873
+ // Filter the invalid input refs in multiple components
2794
2874
  if (this.component.multiple) {
2795
- const inputRefsArray = Array.from(inputRefs);
2796
- inputRefsArray.forEach((input) => {
2875
+ const refsArray = Array.from(inputRefs);
2876
+ refsArray.forEach((input) => {
2797
2877
  this.setElementInvalid(this.performInputMapping(input), false);
2798
2878
  });
2799
- this.setInputWidgetErrorClasses(inputRefsArray, false);
2800
- invalidInputRefs = inputRefsArray.filter((ref) => {
2879
+ this.setInputWidgetErrorClasses(refsArray, false);
2880
+ invalidInputRefs = refsArray.filter((ref, index) => {
2801
2881
  var _a;
2802
2882
  return (_a = messages.some) === null || _a === void 0 ? void 0 : _a.call(messages, (msg) => {
2803
2883
  var _a;
2804
- return ((_a = msg === null || msg === void 0 ? void 0 : msg.context) === null || _a === void 0 ? void 0 : _a.input) === ref;
2884
+ return ((_a = msg === null || msg === void 0 ? void 0 : msg.context) === null || _a === void 0 ? void 0 : _a.index) === index;
2805
2885
  });
2806
2886
  });
2807
2887
  }
@@ -2809,40 +2889,32 @@ class Component extends Element_1.default {
2809
2889
  if (this.refs.messageContainer) {
2810
2890
  this.empty(this.refs.messageContainer);
2811
2891
  }
2812
- this.error = {
2892
+ this.emit('componentError', {
2893
+ instance: this,
2813
2894
  component: this.component,
2814
2895
  message: messages[0].message,
2815
2896
  messages,
2816
2897
  external: !!external,
2817
- };
2818
- this.emit('componentError', this.error);
2898
+ });
2819
2899
  this.addMessages(messages, dirty, invalidInputRefs);
2820
2900
  if (invalidInputRefs) {
2821
- this.setErrorClasses(invalidInputRefs, dirty, hasErrors, !!messages.length);
2901
+ this.setErrorClasses(invalidInputRefs, dirty, !!errors.length, !!messages.length);
2822
2902
  }
2823
2903
  }
2824
- else if (!this.error || (this.error && this.error.external === !!external)) {
2904
+ else if (!errors.length || (errors[0].external === !!external)) {
2825
2905
  if (this.refs.messageContainer) {
2826
2906
  this.empty(this.refs.messageContainer);
2827
2907
  }
2828
2908
  if (this.refs.modalMessageContainer) {
2829
2909
  this.empty(this.refs.modalMessageContainer);
2830
2910
  }
2831
- this.error = null;
2832
2911
  if (invalidInputRefs) {
2833
- this.setErrorClasses(invalidInputRefs, dirty, hasErrors, !!messages.length);
2912
+ this.setErrorClasses(invalidInputRefs, dirty, !!errors.length, !!messages.length);
2834
2913
  }
2835
2914
  this.clearErrorClasses();
2836
2915
  }
2837
- // if (!this.refs.input) {
2838
- // return;
2839
- // }
2840
- // this.refs.input.forEach(input => {
2841
- // input = this.performInputMapping(input);
2842
- // if (typeof input.setCustomValidity === 'function') {
2843
- // input.setCustomValidity(message, dirty);
2844
- // }
2845
- // });
2916
+ this._visibleErrors = messages;
2917
+ return messages;
2846
2918
  }
2847
2919
  /**
2848
2920
  * Determines if the value of this component is hidden from the user as if it is coming from the server, but is
@@ -2862,8 +2934,10 @@ class Component extends Element_1.default {
2862
2934
  }
2863
2935
  return (this.component.protected || !this.component.persistent || (this.component.persistent === 'client-only'));
2864
2936
  }
2865
- shouldSkipValidation(data, dirty, row) {
2937
+ shouldSkipValidation(data, row, flags = {}) {
2866
2938
  const rules = [
2939
+ // Do not validate if the flags say not too.
2940
+ () => flags.noValidate,
2867
2941
  // Do not check custom validation for empty data if it is not required
2868
2942
  () => this.component.validate.custom && !this.dataValue && !this.component.validate.required,
2869
2943
  // Force valid if component is read-only
@@ -6,6 +6,10 @@ declare const _default: {
6
6
  input: boolean;
7
7
  key: string;
8
8
  label: string;
9
+ templates: {
10
+ header: string;
11
+ row: string;
12
+ };
9
13
  components: ({
10
14
  type: string;
11
15
  key: string;
@@ -600,6 +604,7 @@ declare const _default: {
600
604
  multiple?: undefined;
601
605
  hideLabel?: undefined;
602
606
  })[];
607
+ tableView: boolean;
603
608
  defaultValue: {
604
609
  data: {
605
610
  rulesSettings: {
@@ -640,6 +645,9 @@ declare const _default: {
640
645
  }[];
641
646
  };
642
647
  input: boolean;
648
+ validate: {
649
+ required: boolean;
650
+ };
643
651
  })[];
644
652
  }[];
645
653
  export default _default;
@@ -14,6 +14,33 @@ exports.default = [
14
14
  input: true,
15
15
  key: 'addons',
16
16
  label: 'Addons',
17
+ templates: {
18
+ // eslint-disable-next-line quotes
19
+ header: `<div class="row">
20
+ <div class="col-6">{{ t(components[0].label) }}</div>
21
+ <div class="col-4">Settings</div>
22
+ </div>`,
23
+ // eslint-disable-next-line quotes
24
+ row: `<div class="row">
25
+ <div class="col-6">
26
+ {{ row.name.label }}
27
+ </div>
28
+ <div class="col-4 text-muted">
29
+ Click Edit to see addon's settings
30
+ </div>
31
+
32
+ {% if (!instance.options.readOnly && !instance.disabled) { %}
33
+ <div class="col-2">
34
+ <div class="btn-group pull-right">
35
+ <button class="btn btn-default btn-light btn-sm editRow"><i class="{{ iconClass('edit') }}"></i></button>
36
+ {% if (!instance.hasRemoveButtons || instance.hasRemoveButtons()) { %}
37
+ <button class="btn btn-danger btn-sm removeRow"><i class="{{ iconClass('trash') }}"></i></button>
38
+ {% } %}
39
+ </div>
40
+ </div>
41
+ {% } %}
42
+ </div>`,
43
+ },
17
44
  components: [
18
45
  {
19
46
  label: 'Name',
@@ -38,7 +65,10 @@ exports.default = [
38
65
  }));
39
66
  },
40
67
  },
41
- input: true
68
+ input: true,
69
+ validate: {
70
+ required: true,
71
+ },
42
72
  },
43
73
  ...addons_1.editForms,
44
74
  ]