@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
@@ -17,11 +17,13 @@ class SelectComponent extends ListComponent_1.default {
17
17
  key: 'select',
18
18
  idPath: 'id',
19
19
  data: {
20
- values: [{ label: '', value: '' }],
20
+ values: [
21
+ { label: '', value: '' },
22
+ ],
21
23
  json: '',
22
24
  url: '',
23
25
  resource: '',
24
- custom: ''
26
+ custom: '',
25
27
  },
26
28
  clearOnRefresh: false,
27
29
  limit: 100,
@@ -42,7 +44,7 @@ class SelectComponent extends ListComponent_1.default {
42
44
  threshold: 0.3,
43
45
  },
44
46
  indexeddb: {
45
- filter: {}
47
+ filter: {},
46
48
  },
47
49
  customOptions: {},
48
50
  useExactSearch: false,
@@ -55,7 +57,7 @@ class SelectComponent extends ListComponent_1.default {
55
57
  icon: 'th-list',
56
58
  weight: 70,
57
59
  documentation: '/userguide/form-building/form-components#select',
58
- schema: SelectComponent.schema()
60
+ schema: SelectComponent.schema(),
59
61
  };
60
62
  }
61
63
  static get serverConditionSettings() {
@@ -78,7 +80,12 @@ class SelectComponent extends ListComponent_1.default {
78
80
  }
79
81
  return valueComp;
80
82
  }, dataTypeOperators: {
81
- number: ['lessThan', 'greaterThan', 'lessThanOrEqual', 'greaterThanOrEqual'],
83
+ number: [
84
+ 'lessThan',
85
+ 'greaterThan',
86
+ 'lessThanOrEqual',
87
+ 'greaterThanOrEqual',
88
+ ],
82
89
  }, dataTypeValueComponents: {
83
90
  number: {
84
91
  lessThan: numberType,
@@ -96,15 +103,28 @@ class SelectComponent extends ListComponent_1.default {
96
103
  return types;
97
104
  }
98
105
  if (reference) {
99
- return [object];
106
+ return [
107
+ object,
108
+ ];
100
109
  }
101
110
  if (dataType === 'object') {
102
- return [object, array];
111
+ return [
112
+ object,
113
+ array,
114
+ ];
103
115
  }
104
116
  if (utils_1.componentValueTypes[dataType]) {
105
- return [utils_1.componentValueTypes[dataType]];
106
- }
107
- return [boolean, string, number, object, array];
117
+ return [
118
+ utils_1.componentValueTypes[dataType],
119
+ ];
120
+ }
121
+ return [
122
+ boolean,
123
+ string,
124
+ number,
125
+ object,
126
+ array,
127
+ ];
108
128
  }
109
129
  init() {
110
130
  super.init();
@@ -226,10 +246,10 @@ class SelectComponent extends ListComponent_1.default {
226
246
  return this.component.dataSrc === 'resource' && this.valueProperty === 'data';
227
247
  }
228
248
  selectValueAndLabel(data) {
229
- const value = this.getOptionValue((this.isEntireObjectDisplay() && !this.itemValue(data)) ? data : this.itemValue(data));
249
+ const value = this.getOptionValue(this.isEntireObjectDisplay() && !this.itemValue(data) ? data : this.itemValue(data));
230
250
  return {
231
251
  value,
232
- label: this.itemTemplate((this.isEntireObjectDisplay() && !lodash_1.default.isObject(data.data)) ? { data: data } : data, value)
252
+ label: this.itemTemplate(this.isEntireObjectDisplay() && !lodash_1.default.isObject(data.data) ? { data: data } : data, value),
233
253
  };
234
254
  }
235
255
  itemTemplate(data, value) {
@@ -243,13 +263,13 @@ class SelectComponent extends ListComponent_1.default {
243
263
  // Perform a fast interpretation if we should not use the template.
244
264
  if (data && !this.component.template) {
245
265
  const itemLabel = data.label || data;
246
- const value = (typeof itemLabel === 'string') ? this.t(itemLabel, { _userInput: true }) : itemLabel;
266
+ const value = typeof itemLabel === 'string' ? this.t(itemLabel, { _userInput: true }) : itemLabel;
247
267
  return this.sanitize(value, this.shouldSanitizeValue);
248
268
  }
249
269
  // Inside DataTable component won't have dataValue set
250
270
  const shouldUseSelectData = (this.component.multiple && lodash_1.default.isArray(this.dataValue)
251
271
  ? this.dataValue.find((val) => this.normalizeSingleValue(value) === val)
252
- : (this.dataValue === this.normalizeSingleValue(value))) || this.inDataTable;
272
+ : this.dataValue === this.normalizeSingleValue(value)) || this.inDataTable;
253
273
  if (shouldUseSelectData) {
254
274
  const selectData = this.selectData;
255
275
  if (selectData) {
@@ -281,9 +301,10 @@ class SelectComponent extends ListComponent_1.default {
281
301
  if (data.data) {
282
302
  // checking additional fields in the template for the selected Entire Object option
283
303
  const hasNestedFields = /item\.data\.\w*/g.test(this.component.template);
284
- data.data = this.isEntireObjectDisplay() && lodash_1.default.isObject(data.data) && !hasNestedFields
285
- ? JSON.stringify(data.data)
286
- : data.data;
304
+ data.data =
305
+ this.isEntireObjectDisplay() && lodash_1.default.isObject(data.data) && !hasNestedFields
306
+ ? JSON.stringify(data.data)
307
+ : data.data;
287
308
  }
288
309
  return super.itemTemplate(data, value);
289
310
  }
@@ -310,15 +331,16 @@ class SelectComponent extends ListComponent_1.default {
310
331
  if (value) {
311
332
  this.selectOptions.push(option);
312
333
  }
313
- if (this.refs.selectContainer && (this.component.widget === 'html5')) {
334
+ if (this.refs.selectContainer && this.component.widget === 'html5') {
314
335
  // Replace an empty Object value to an empty String.
315
336
  if (option.value && lodash_1.default.isObject(option.value) && lodash_1.default.isEmpty(option.value)) {
316
337
  option.value = '';
317
338
  }
318
339
  // Add element to option so we can reference it later.
319
340
  const div = document.createElement('div');
341
+ const isInDataValue = this.component.multiple && Array.isArray(this.dataValue) && this.dataValue.includes(value);
320
342
  div.innerHTML = this.sanitize(this.renderTemplate('selectOption', {
321
- selected: lodash_1.default.isEqual(this.getOptionValue(this.dataValue), option.value),
343
+ selected: lodash_1.default.isEqual(this.getOptionValue(this.dataValue), option.value) || isInDataValue,
322
344
  option,
323
345
  attrs,
324
346
  id,
@@ -333,14 +355,21 @@ class SelectComponent extends ListComponent_1.default {
333
355
  let added = false;
334
356
  let data = this.dataValue;
335
357
  // preset submission value with value property before request.
336
- if (this.options.pdf && !items.length && this.component.dataSrc === 'url' && this.valueProperty) {
358
+ if (this.options.pdf &&
359
+ !items.length &&
360
+ this.component.dataSrc === 'url' &&
361
+ this.valueProperty) {
337
362
  data = Array.isArray(data)
338
- ? data.map(item => lodash_1.default.set({}, this.valueProperty, item))
363
+ ? data.map((item) => lodash_1.default.set({}, this.valueProperty, item))
339
364
  : lodash_1.default.set({}, this.valueProperty, data);
340
365
  }
341
366
  if (!this.selectOptions.length) {
342
367
  // Add the currently selected choices if they don't already exist.
343
- const currentChoices = Array.isArray(data) && this.component.multiple ? data : [data];
368
+ const currentChoices = Array.isArray(data) && this.component.multiple
369
+ ? data
370
+ : [
371
+ data,
372
+ ];
344
373
  added = this.addCurrentChoices(currentChoices, items);
345
374
  if (!added && !this.component.multiple) {
346
375
  this.addPlaceholder();
@@ -367,9 +396,13 @@ class SelectComponent extends ListComponent_1.default {
367
396
  }
368
397
  return false;
369
398
  }
370
- /* eslint-disable max-statements */
371
399
  setItems(items, fromSearch) {
372
400
  var _a, _b;
401
+ if (this.visible && this.isHtmlRenderMode() && !lodash_1.default.isEqual(items, this.selectItems)) {
402
+ this.itemsLoaded.then(() => {
403
+ this.redraw();
404
+ });
405
+ }
373
406
  this.selectItems = items;
374
407
  // If the items is a string, then parse as JSON.
375
408
  if (typeof items == 'string') {
@@ -401,9 +434,9 @@ class SelectComponent extends ListComponent_1.default {
401
434
  if (this.itemsFromUrl) {
402
435
  areItemsEqual = this.isSelectURL ? lodash_1.default.isEqual(items, this.downloadedResources) : false;
403
436
  const areItemsEnded = this.component.limit > items.length;
404
- const areItemsDownloaded = areItemsEqual
405
- && this.downloadedResources
406
- && this.downloadedResources.length === items.length;
437
+ const areItemsDownloaded = areItemsEqual &&
438
+ this.downloadedResources &&
439
+ this.downloadedResources.length === items.length;
407
440
  if (areItemsEnded) {
408
441
  this.disableInfiniteScroll();
409
442
  }
@@ -420,7 +453,8 @@ class SelectComponent extends ListComponent_1.default {
420
453
  ? this.downloadedResources.concat(items)
421
454
  : items;
422
455
  }
423
- this.downloadedResources.serverCount = items.serverCount || this.downloadedResources.serverCount;
456
+ this.downloadedResources.serverCount =
457
+ items.serverCount || this.downloadedResources.serverCount;
424
458
  }
425
459
  else {
426
460
  this.downloadedResources = items || [];
@@ -428,10 +462,11 @@ class SelectComponent extends ListComponent_1.default {
428
462
  // If there is new select option with same id as already selected, set the new one
429
463
  if (!lodash_1.default.isEmpty(this.dataValue) && this.component.idPath) {
430
464
  const selectedOptionId = lodash_1.default.get(this.dataValue, this.component.idPath, null);
431
- const newOptionWithSameId = !lodash_1.default.isNil(selectedOptionId) && items.find(item => {
432
- const itemId = lodash_1.default.get(item, this.component.idPath);
433
- return itemId === selectedOptionId;
434
- });
465
+ const newOptionWithSameId = !lodash_1.default.isNil(selectedOptionId) &&
466
+ items.find((item) => {
467
+ const itemId = lodash_1.default.get(item, this.component.idPath);
468
+ return itemId === selectedOptionId;
469
+ });
435
470
  if (newOptionWithSameId) {
436
471
  this.setValue(newOptionWithSameId);
437
472
  }
@@ -447,7 +482,10 @@ class SelectComponent extends ListComponent_1.default {
447
482
  // Iterate through each of the items.
448
483
  lodash_1.default.each(items, (item, index) => {
449
484
  // preventing references of the components inside the form to the parent form when building forms
450
- if (this.root && this.root.options.editForm && this.root.options.editForm._id && this.root.options.editForm._id === item._id)
485
+ if (this.root &&
486
+ this.root.options.editForm &&
487
+ this.root.options.editForm._id &&
488
+ this.root.options.editForm._id === item._id)
451
489
  return;
452
490
  const itemValueAndLabel = this.selectValueAndLabel(item);
453
491
  this.addOption(itemValueAndLabel.value, itemValueAndLabel.label, {}, lodash_1.default.get(item, this.component.idPath, String(index)));
@@ -467,7 +505,7 @@ class SelectComponent extends ListComponent_1.default {
467
505
  // If a value is provided, then select it.
468
506
  if (!this.isEmpty() || this.isRemoveButtonPressed) {
469
507
  this.setValue(this.dataValue, {
470
- noUpdateEvent: true
508
+ noUpdateEvent: true,
471
509
  });
472
510
  }
473
511
  else if (this.shouldAddDefaultValue && !this.options.readOnly) {
@@ -494,17 +532,17 @@ class SelectComponent extends ListComponent_1.default {
494
532
  return super.itemValueForHTMLMode(value);
495
533
  }
496
534
  if (Array.isArray(value)) {
497
- const values = value.map(item => Array.isArray(item)
535
+ const values = value.map((item) => Array.isArray(item)
498
536
  ? this.itemValueForHTMLMode(item)
499
537
  : this.getSingleItemValueForHTMLMode(item));
500
538
  return values.join(', ');
501
539
  }
502
540
  return this.getSingleItemValueForHTMLMode(value);
503
541
  }
504
- /* eslint-enable max-statements */
505
542
  get defaultValue() {
506
543
  let defaultValue = super.defaultValue;
507
- if (!defaultValue && (this.component.defaultValue === false || this.component.defaultValue === 0)) {
544
+ if (!defaultValue &&
545
+ (this.component.defaultValue === false || this.component.defaultValue === 0)) {
508
546
  defaultValue = this.component.defaultValue;
509
547
  }
510
548
  return defaultValue;
@@ -523,9 +561,7 @@ class SelectComponent extends ListComponent_1.default {
523
561
  }
524
562
  // See if they have not met the minimum search requirements.
525
563
  const minSearch = parseInt(this.component.minSearch, 10);
526
- if (this.component.searchField &&
527
- (minSearch > 0) &&
528
- (!search || (search.length < minSearch))) {
564
+ if (this.component.searchField && minSearch > 0 && (!search || search.length < minSearch)) {
529
565
  // Set empty items.
530
566
  return this.setItems([]);
531
567
  }
@@ -536,17 +572,19 @@ class SelectComponent extends ListComponent_1.default {
536
572
  }
537
573
  const limit = this.component.limit || 100;
538
574
  const skip = this.isScrollLoading ? this.selectOptions.length : 0;
539
- const query = this.component.disableLimit ? {} : {
540
- limit,
541
- skip,
542
- };
575
+ const query = this.component.disableLimit
576
+ ? {}
577
+ : {
578
+ limit,
579
+ skip,
580
+ };
543
581
  // Allow for url interpolation.
544
582
  url = this.sanitize(this.interpolate(url, {
545
583
  formioBase: Formio_1.Formio.getBaseUrl(),
546
584
  search,
547
585
  limit,
548
586
  skip,
549
- page: Math.abs(Math.floor(skip / limit))
587
+ page: Math.abs(Math.floor(skip / limit)),
550
588
  }), this.shouldSanitizeValue);
551
589
  // Add search capability.
552
590
  if (this.component.searchField && search) {
@@ -569,7 +607,9 @@ class SelectComponent extends ListComponent_1.default {
569
607
  }
570
608
  if (!lodash_1.default.isEmpty(query)) {
571
609
  // Add the query string.
572
- url += (!url.includes('?') ? '?' : '&') + Formio_1.Formio.serialize(query, (item) => this.interpolate(item));
610
+ url +=
611
+ (!url.includes('?') ? '?' : '&') +
612
+ Formio_1.Formio.serialize(query, (item) => this.interpolate(item));
573
613
  }
574
614
  // Add filter capability
575
615
  if (this.component.filter) {
@@ -630,7 +670,7 @@ class SelectComponent extends ListComponent_1.default {
630
670
  }
631
671
  getCustomItems() {
632
672
  const customItems = this.evaluate(this.component.data.custom, {
633
- values: []
673
+ values: [],
634
674
  }, 'values');
635
675
  this.asyncValues = (0, utils_1.isPromise)(customItems);
636
676
  return customItems;
@@ -649,11 +689,11 @@ class SelectComponent extends ListComponent_1.default {
649
689
  }
650
690
  this.loading = true;
651
691
  this.getCustomItems()
652
- .then(items => {
692
+ .then((items) => {
653
693
  this.loading = false;
654
694
  this.setItems(items || []);
655
695
  })
656
- .catch(err => {
696
+ .catch((err) => {
657
697
  this.handleLoadingError(err);
658
698
  });
659
699
  }
@@ -665,13 +705,13 @@ class SelectComponent extends ListComponent_1.default {
665
705
  return super.isEmpty(value) || value === undefined;
666
706
  }
667
707
  refresh(value, { instance }) {
668
- if (this.component.clearOnRefresh && (instance && !instance.pristine)) {
708
+ if (this.component.clearOnRefresh && instance && !instance.pristine) {
669
709
  this.setValue(this.emptyValue);
670
710
  }
671
711
  this.updateItems(null, true);
672
712
  }
673
713
  get additionalResourcesAvailable() {
674
- return lodash_1.default.isNil(this.serverCount) || (this.serverCount > this.downloadedResources.length);
714
+ return lodash_1.default.isNil(this.serverCount) || this.serverCount > this.downloadedResources.length;
675
715
  }
676
716
  get serverCount() {
677
717
  if (this.isFromSearch) {
@@ -723,18 +763,22 @@ class SelectComponent extends ListComponent_1.default {
723
763
  setLoadingItem(addToCurrentList = false) {
724
764
  if (this.choices) {
725
765
  if (addToCurrentList) {
726
- this.choices.setChoices([{
766
+ this.choices.setChoices([
767
+ {
727
768
  value: `${this.id}-loading`,
728
769
  label: 'Loading...',
729
770
  disabled: true,
730
- }], 'value', 'label');
771
+ },
772
+ ], 'value', 'label');
731
773
  }
732
774
  else {
733
- this.choices.setChoices([{
775
+ this.choices.setChoices([
776
+ {
734
777
  value: '',
735
778
  label: `<i class="${this.iconClass('refresh')}" style="font-size:1.3em;"></i>`,
736
779
  disabled: true,
737
- }], 'value', 'label', true);
780
+ },
781
+ ], 'value', 'label', true);
738
782
  }
739
783
  }
740
784
  else if (this.component.dataSrc === 'url' || this.component.dataSrc === 'resource') {
@@ -756,13 +800,15 @@ class SelectComponent extends ListComponent_1.default {
756
800
  }
757
801
  wrapElement(element) {
758
802
  return this.component.addResource && !this.options.readOnly
759
- ? (this.renderTemplate('resourceAdd', {
760
- element
761
- }))
803
+ ? this.renderTemplate('resourceAdd', {
804
+ element,
805
+ })
762
806
  : element;
763
807
  }
764
808
  choicesOptions() {
765
- const useSearch = this.component.hasOwnProperty('searchEnabled') ? this.component.searchEnabled : true;
809
+ const useSearch = this.component.hasOwnProperty('searchEnabled')
810
+ ? this.component.searchEnabled
811
+ : true;
766
812
  const placeholderValue = this.t(this.component.placeholder, { _userInput: true });
767
813
  let customOptions = this.component.customOptions || {};
768
814
  if (typeof customOptions == 'string') {
@@ -778,20 +824,27 @@ class SelectComponent extends ListComponent_1.default {
778
824
  maxPatternLength: 1000,
779
825
  distance: 1000,
780
826
  };
781
- return Object.assign({ removeItemButton: this.component.disabled ? false : lodash_1.default.get(this.component, 'removeItemButton', true), itemSelectText: '', classNames: {
782
- containerOuter: ['choices', 'form-group', 'formio-choices'],
827
+ return Object.assign({ removeItemButton: this.component.disabled
828
+ ? false
829
+ : lodash_1.default.get(this.component, 'removeItemButton', true), itemSelectText: '', classNames: {
830
+ containerOuter: [
831
+ 'choices',
832
+ 'form-group',
833
+ 'formio-choices',
834
+ ],
783
835
  containerInner: this.transform('class', 'form-control ui fluid selection dropdown').split(' '),
784
- }, addItemText: false, allowHTML: true, placeholder: !!this.component.placeholder, placeholderValue: placeholderValue, noResultsText: this.t('No results found'), noChoicesText: this.t('No choices to choose from'), searchPlaceholderValue: this.t('Type to search'), shouldSort: false, position: (this.component.dropdown || 'auto'), searchEnabled: useSearch, searchChoices: !this.component.searchField, searchFields: lodash_1.default.get(this, 'component.searchFields', ['label']), shadowRoot: this.root ? this.root.shadowRoot : null, fuseOptions: this.component.useExactSearch
836
+ }, addItemText: false, allowHTML: true, placeholder: !!this.component.placeholder, placeholderValue: placeholderValue, noResultsText: this.t('No results found'), noChoicesText: this.t('No choices to choose from'), searchPlaceholderValue: this.t('Type to search'), shouldSort: false, position: this.component.dropdown || 'auto', searchEnabled: useSearch, searchChoices: !this.component.searchField, searchFields: lodash_1.default.get(this, 'component.searchFields', [
837
+ 'label',
838
+ ]), shadowRoot: this.root ? this.root.shadowRoot : null, fuseOptions: this.component.useExactSearch
785
839
  ? Object.assign({ tokenize: true, matchAllTokens: true }, commonFuseOptions) : Object.assign({}, lodash_1.default.get(this, 'component.fuseOptions', {}), Object.assign({ include: 'score', threshold: lodash_1.default.get(this, 'component.selectThreshold', 0.3) }, commonFuseOptions)), valueComparer: lodash_1.default.isEqual, resetScrollPosition: false, duplicateItemsAllowed: false }, customOptions);
786
840
  }
787
- /* eslint-disable max-statements */
788
841
  attach(element) {
789
842
  var _a, _b, _c;
790
843
  const superAttach = super.attach(element);
791
844
  this.loadRefs(element, {
792
845
  selectContainer: 'single',
793
846
  addResource: 'single',
794
- autocompleteInput: 'single'
847
+ autocompleteInput: 'single',
795
848
  });
796
849
  //enable autocomplete for select
797
850
  const autocompleteInput = this.refs.autocompleteInput;
@@ -804,9 +857,18 @@ class SelectComponent extends ListComponent_1.default {
804
857
  if (!input) {
805
858
  return;
806
859
  }
807
- this.addEventListener(input, this.inputInfo.changeEvent, () => this.updateValue(null, {
808
- modified: true
809
- }));
860
+ this.addEventListener(input, this.inputInfo.changeEvent, (event) => {
861
+ let value = null;
862
+ if (this.component.widget === "html5") {
863
+ value = event.target.value;
864
+ if (this.component.multiple) {
865
+ value = Array.from(event.target.selectedOptions).map(opt => opt.value);
866
+ }
867
+ }
868
+ this.updateValue(value, {
869
+ modified: true
870
+ });
871
+ });
810
872
  this.attachRefreshOnBlur();
811
873
  if (this.component.widget === 'html5') {
812
874
  this.addFocusBlurEvents(input);
@@ -820,7 +882,10 @@ class SelectComponent extends ListComponent_1.default {
820
882
  }
821
883
  this.addEventListener(input, 'keydown', (event) => {
822
884
  const { key } = event;
823
- if (['Backspace', 'Delete'].includes(key)) {
885
+ if ([
886
+ 'Backspace',
887
+ 'Delete',
888
+ ].includes(key)) {
824
889
  this.setValue(this.emptyValue);
825
890
  }
826
891
  });
@@ -887,8 +952,10 @@ class SelectComponent extends ListComponent_1.default {
887
952
  this.isFromSearch = false;
888
953
  });
889
954
  // avoid spamming the resource/url endpoint when we have server side filtering enabled.
890
- const debounceTimeout = this.component.searchField && (this.isSelectResource || this.isSelectURL) ?
891
- (this.component.searchDebounce === 0 ? 0 : this.component.searchDebounce || this.defaultSchema.searchDebounce) * 1000
955
+ const debounceTimeout = this.component.searchField && (this.isSelectResource || this.isSelectURL)
956
+ ? (this.component.searchDebounce === 0
957
+ ? 0
958
+ : this.component.searchDebounce || this.defaultSchema.searchDebounce) * 1000
892
959
  : 0;
893
960
  const updateComponent = (evt) => {
894
961
  this.triggerUpdate(evt.detail.value);
@@ -915,8 +982,9 @@ class SelectComponent extends ListComponent_1.default {
915
982
  });
916
983
  }
917
984
  // Add value options.
985
+ const value = this.undoValueTyping(this.dataValue);
918
986
  this.addValueOptions();
919
- this.setChoicesValue(this.dataValue);
987
+ this.setChoicesValue(value);
920
988
  if (this.isSelectResource && this.refs.addResource) {
921
989
  this.addEventListener(this.refs.addResource, 'click', (event) => {
922
990
  event.preventDefault();
@@ -924,13 +992,15 @@ class SelectComponent extends ListComponent_1.default {
924
992
  const dialog = this.createModal(formioForm);
925
993
  const projectUrl = lodash_1.default.get(this.root, 'formio.projectUrl', Formio_1.Formio.getProjectUrl());
926
994
  const formUrl = `${projectUrl}/form/${this.component.data.resource}`;
927
- new Form_1.default(formioForm, formUrl, {}).ready
928
- .then((form) => {
995
+ new Form_1.default(formioForm, formUrl, {}).ready.then((form) => {
929
996
  form.on('submit', (submission) => {
930
997
  // If valueProperty is set, replace the submission with the corresponding value
931
998
  let value = this.valueProperty ? lodash_1.default.get(submission, this.valueProperty) : submission;
932
999
  if (this.component.multiple) {
933
- value = [...this.dataValue, value];
1000
+ value = [
1001
+ ...this.dataValue,
1002
+ value,
1003
+ ];
934
1004
  }
935
1005
  this.setValue(value);
936
1006
  this.triggerUpdate();
@@ -976,7 +1046,9 @@ class SelectComponent extends ListComponent_1.default {
976
1046
  }
977
1047
  positionDropdown(scroll) {
978
1048
  var _a;
979
- if (!this.shouldPositionDropdown || !this.choices || (!((_a = this.choices.dropdown) === null || _a === void 0 ? void 0 : _a.isActive) && scroll)) {
1049
+ if (!this.shouldPositionDropdown ||
1050
+ !this.choices ||
1051
+ (!((_a = this.choices.dropdown) === null || _a === void 0 ? void 0 : _a.isActive) && scroll)) {
980
1052
  return;
981
1053
  }
982
1054
  this.setDropdownPosition();
@@ -997,11 +1069,12 @@ class SelectComponent extends ListComponent_1.default {
997
1069
  attachRefreshOnBlur() {
998
1070
  if (this.component.refreshOnBlur) {
999
1071
  this.on('blur', (instance) => {
1000
- this.checkRefreshOn([{ instance, value: instance.dataValue }], { fromBlur: true });
1072
+ this.checkRefreshOn([
1073
+ { instance, value: instance.dataValue },
1074
+ ], { fromBlur: true });
1001
1075
  });
1002
1076
  }
1003
1077
  }
1004
- /* eslint-enable max-statements */
1005
1078
  update() {
1006
1079
  if (this.component.dataSrc === 'custom') {
1007
1080
  this.updateCustomItems();
@@ -1030,7 +1103,7 @@ class SelectComponent extends ListComponent_1.default {
1030
1103
  }
1031
1104
  set visible(value) {
1032
1105
  // If we go from hidden to visible, trigger a refresh.
1033
- if (value && (!this._visible !== !value)) {
1106
+ if (value && !this._visible !== !value) {
1034
1107
  this.triggerUpdate();
1035
1108
  }
1036
1109
  super.visible = value;
@@ -1057,7 +1130,7 @@ class SelectComponent extends ListComponent_1.default {
1057
1130
  const isSelectOptions = items === this.selectOptions;
1058
1131
  if (items && items.length) {
1059
1132
  lodash_1.default.each(items, (choice) => {
1060
- if (choice._id && value._id && (choice._id === value._id)) {
1133
+ if (choice._id && value._id && choice._id === value._id) {
1061
1134
  found = true;
1062
1135
  return false;
1063
1136
  }
@@ -1077,22 +1150,23 @@ class SelectComponent extends ListComponent_1.default {
1077
1150
  if (this.choices) {
1078
1151
  this.choices.setChoices(notFoundValuesToAdd, 'value', 'label');
1079
1152
  }
1080
- notFoundValuesToAdd.map(notFoundValue => {
1153
+ notFoundValuesToAdd.map((notFoundValue) => {
1081
1154
  this.addOption(notFoundValue.value, notFoundValue.label);
1082
1155
  });
1083
1156
  }
1084
1157
  return added;
1085
1158
  }
1086
1159
  getValueAsString(data, options) {
1087
- return (this.component.multiple && Array.isArray(data))
1160
+ return this.component.multiple && Array.isArray(data)
1088
1161
  ? data.map((v) => this.asString(v, options)).join(', ')
1089
1162
  : this.asString(data, options);
1090
1163
  }
1091
1164
  getValue() {
1092
1165
  // If the widget isn't active.
1093
- if (this.viewOnly || this.loading
1094
- || (!this.component.lazyLoad && !this.selectOptions.length)
1095
- || !this.element) {
1166
+ if (this.viewOnly ||
1167
+ this.loading ||
1168
+ (!this.component.lazyLoad && !this.selectOptions.length) ||
1169
+ !this.element) {
1096
1170
  return this.dataValue;
1097
1171
  }
1098
1172
  let value = this.emptyValue;
@@ -1101,7 +1175,7 @@ class SelectComponent extends ListComponent_1.default {
1101
1175
  // Make sure we don't get the placeholder
1102
1176
  if (!this.component.multiple &&
1103
1177
  this.component.placeholder &&
1104
- (value === this.t(this.component.placeholder, { _userInput: true }))) {
1178
+ value === this.t(this.component.placeholder, { _userInput: true })) {
1105
1179
  value = this.emptyValue;
1106
1180
  }
1107
1181
  }
@@ -1111,8 +1185,7 @@ class SelectComponent extends ListComponent_1.default {
1111
1185
  if (value === '') {
1112
1186
  return {};
1113
1187
  }
1114
- const option = this.selectOptions[value] ||
1115
- this.selectOptions.find(option => option.id === value);
1188
+ const option = this.selectOptions[value] || this.selectOptions.find((option) => option.id === value);
1116
1189
  if (option && lodash_1.default.isObject(option.value)) {
1117
1190
  value = option.value;
1118
1191
  }
@@ -1147,16 +1220,18 @@ class SelectComponent extends ListComponent_1.default {
1147
1220
  number() {
1148
1221
  const numberValue = Number(this.value);
1149
1222
  const isEquivalent = value.toString() === numberValue.toString();
1150
- if (!Number.isNaN(numberValue) && Number.isFinite(numberValue) && value !== '' && isEquivalent) {
1223
+ if (!Number.isNaN(numberValue) &&
1224
+ Number.isFinite(numberValue) &&
1225
+ value !== '' &&
1226
+ isEquivalent) {
1151
1227
  this.value = numberValue;
1152
1228
  }
1153
1229
  return this;
1154
1230
  },
1155
1231
  boolean() {
1156
- if (lodash_1.default.isString(this.value)
1157
- && (this.value.toLowerCase() === 'true'
1158
- || this.value.toLowerCase() === 'false')) {
1159
- this.value = (this.value.toLowerCase() === 'true');
1232
+ if (lodash_1.default.isString(this.value) &&
1233
+ (this.value.toLowerCase() === 'true' || this.value.toLowerCase() === 'false')) {
1234
+ this.value = this.value.toLowerCase() === 'true';
1160
1235
  }
1161
1236
  return this;
1162
1237
  },
@@ -1175,7 +1250,7 @@ class SelectComponent extends ListComponent_1.default {
1175
1250
  this.value = this.string().number().boolean().value;
1176
1251
  }
1177
1252
  return this;
1178
- }
1253
+ },
1179
1254
  };
1180
1255
  try {
1181
1256
  return normalize[dataType]().value;
@@ -1209,7 +1284,11 @@ class SelectComponent extends ListComponent_1.default {
1209
1284
  // Check to see if we need to save off the template data into our metadata.
1210
1285
  const templateValue = this.component.reference && (value === null || value === void 0 ? void 0 : value._id) ? value._id.toString() : value;
1211
1286
  const shouldSaveData = (!valueIsObject || this.component.reference) && !this.inDataTable;
1212
- if (!lodash_1.default.isNil(templateValue) && shouldSaveData && this.templateData && this.templateData[templateValue] && ((_a = this.root) === null || _a === void 0 ? void 0 : _a.submission)) {
1287
+ if (!lodash_1.default.isNil(templateValue) &&
1288
+ shouldSaveData &&
1289
+ this.templateData &&
1290
+ this.templateData[templateValue] &&
1291
+ ((_a = this.root) === null || _a === void 0 ? void 0 : _a.submission)) {
1213
1292
  const submission = this.root.submission;
1214
1293
  if (!submission.metadata) {
1215
1294
  submission.metadata = {};
@@ -1223,7 +1302,9 @@ class SelectComponent extends ListComponent_1.default {
1223
1302
  const dataValue = this.dataValue;
1224
1303
  if (dataValue && lodash_1.default.isArray(dataValue) && dataValue.length) {
1225
1304
  dataValue.forEach((dataValueItem) => {
1226
- const dataValueItemValue = this.component.reference ? dataValueItem._id.toString() : dataValueItem;
1305
+ const dataValueItemValue = this.component.reference
1306
+ ? dataValueItem._id.toString()
1307
+ : dataValueItem;
1227
1308
  templateData[dataValueItemValue] = this.templateData[dataValueItemValue];
1228
1309
  });
1229
1310
  }
@@ -1243,7 +1324,7 @@ class SelectComponent extends ListComponent_1.default {
1243
1324
  const changed = super.updateValue(value, flags);
1244
1325
  if (changed || !this.selectMetadata || flags.resetValue) {
1245
1326
  if (this.component.multiple && Array.isArray(this.dataValue)) {
1246
- this.dataValue.forEach(singleValue => this.setMetadata(singleValue, flags));
1327
+ this.dataValue.forEach((singleValue) => this.setMetadata(singleValue, flags));
1247
1328
  }
1248
1329
  else {
1249
1330
  this.setMetadata(this.dataValue, flags);
@@ -1254,7 +1335,7 @@ class SelectComponent extends ListComponent_1.default {
1254
1335
  undoValueTyping(value) {
1255
1336
  let untypedValue = value;
1256
1337
  if (this.component.multiple && Array.isArray(value)) {
1257
- untypedValue = value.map(v => {
1338
+ untypedValue = value.map((v) => {
1258
1339
  if (typeof v === 'boolean' || typeof v === 'number') {
1259
1340
  return v.toString();
1260
1341
  }
@@ -1271,7 +1352,9 @@ class SelectComponent extends ListComponent_1.default {
1271
1352
  setValue(value, flags = {}) {
1272
1353
  const previousValue = this.dataValue;
1273
1354
  const changed = this.updateValue(value, flags);
1274
- if (this.component.widget === 'html5' && (lodash_1.default.isEqual(value, previousValue) || lodash_1.default.isEqual(previousValue, {}) && lodash_1.default.isEqual(flags, {})) && !flags.fromSubmission) {
1355
+ if (this.component.widget === 'html5' &&
1356
+ (lodash_1.default.isEqual(value, previousValue) || (lodash_1.default.isEqual(previousValue, {}) && lodash_1.default.isEqual(flags, {}))) &&
1357
+ !flags.fromSubmission) {
1275
1358
  return false;
1276
1359
  }
1277
1360
  value = this.dataValue;
@@ -1295,6 +1378,9 @@ class SelectComponent extends ListComponent_1.default {
1295
1378
  this.lazyLoadInit = true;
1296
1379
  const searchProperty = this.component.searchField || this.component.valueProperty;
1297
1380
  this.triggerUpdate(lodash_1.default.get(value.data || value, searchProperty, value), true);
1381
+ this.itemsLoaded.then(() => {
1382
+ this.setChoicesValue(value, hasPreviousValue, flags);
1383
+ });
1298
1384
  return changed;
1299
1385
  }
1300
1386
  // Add the value options.
@@ -1305,23 +1391,28 @@ class SelectComponent extends ListComponent_1.default {
1305
1391
  return changed;
1306
1392
  }
1307
1393
  isInitApiCallNeeded(hasValue) {
1308
- return this.component.lazyLoad &&
1394
+ return (this.component.lazyLoad &&
1309
1395
  !this.lazyLoadInit &&
1310
1396
  !this.active &&
1311
1397
  !this.selectOptions.length &&
1312
1398
  hasValue &&
1313
1399
  this.shouldInitialLoad &&
1314
- this.visible && (this.component.searchField || this.component.valueProperty);
1400
+ this.visible &&
1401
+ (this.component.searchField || this.component.valueProperty));
1315
1402
  }
1316
1403
  setChoicesValue(value, hasPreviousValue, flags = {}) {
1317
1404
  const hasValue = !this.isEmpty(value) || flags.fromSubmission;
1318
- hasPreviousValue = (hasPreviousValue === undefined) ? true : hasPreviousValue;
1405
+ hasPreviousValue = hasPreviousValue === undefined ? true : hasPreviousValue;
1319
1406
  if (this.choices) {
1320
1407
  // Now set the value.
1321
1408
  if (hasValue) {
1322
1409
  this.choices.removeActiveItems();
1323
1410
  // Add the currently selected choices if they don't already exist.
1324
- const currentChoices = Array.isArray(value) && this.component.multiple ? value : [value];
1411
+ const currentChoices = Array.isArray(value) && this.component.multiple
1412
+ ? value
1413
+ : [
1414
+ value,
1415
+ ];
1325
1416
  if (!this.addCurrentChoices(currentChoices, this.selectOptions, true)) {
1326
1417
  this.choices.setChoices(this.selectOptions, 'value', 'label', true);
1327
1418
  }
@@ -1333,9 +1424,13 @@ class SelectComponent extends ListComponent_1.default {
1333
1424
  }
1334
1425
  else {
1335
1426
  if (hasValue) {
1336
- const values = Array.isArray(value) ? value : [value];
1337
- if (!lodash_1.default.isEqual(this.dataValue, this.defaultValue) && this.selectOptions.length < 2
1338
- || (this.selectData && flags.fromSubmission)) {
1427
+ const values = Array.isArray(value)
1428
+ ? value
1429
+ : [
1430
+ value,
1431
+ ];
1432
+ if ((!lodash_1.default.isEqual(this.dataValue, this.defaultValue) && this.selectOptions.length < 2) ||
1433
+ (this.selectData && flags.fromSubmission)) {
1339
1434
  const { value, label } = this.selectValueAndLabel(this.dataValue);
1340
1435
  this.addOption(value, label);
1341
1436
  }
@@ -1375,7 +1470,7 @@ class SelectComponent extends ListComponent_1.default {
1375
1470
  return false;
1376
1471
  }
1377
1472
  try {
1378
- return (JSON.stringify(normalizedOptionValue) === JSON.stringify(value));
1473
+ return JSON.stringify(normalizedOptionValue) === JSON.stringify(value);
1379
1474
  }
1380
1475
  catch (err) {
1381
1476
  console.warn.error('Error while comparing items', err);
@@ -1384,7 +1479,7 @@ class SelectComponent extends ListComponent_1.default {
1384
1479
  };
1385
1480
  return values.findIndex((optionValue) => compareComplexValues(optionValue)) !== -1;
1386
1481
  }
1387
- return values.findIndex((optionValue) => this.normalizeSingleValue(optionValue) === value) !== -1;
1482
+ return (values.findIndex((optionValue) => this.normalizeSingleValue(optionValue) === value) !== -1);
1388
1483
  }
1389
1484
  return false;
1390
1485
  }
@@ -1443,7 +1538,7 @@ class SelectComponent extends ListComponent_1.default {
1443
1538
  */
1444
1539
  deleteValue() {
1445
1540
  this.setValue('', {
1446
- noUpdateEvent: true
1541
+ noUpdateEvent: true,
1447
1542
  });
1448
1543
  this.unset();
1449
1544
  }
@@ -1466,7 +1561,10 @@ class SelectComponent extends ListComponent_1.default {
1466
1561
  if (!this.component || !this.component.data || !this.component.data.values) {
1467
1562
  return;
1468
1563
  }
1469
- return this.component.data.values.map(value => ({ label: value.label, value: String(this.normalizeSingleValue(value.value)) }));
1564
+ return this.component.data.values.map((value) => ({
1565
+ label: value.label,
1566
+ value: String(this.normalizeSingleValue(value.value)),
1567
+ }));
1470
1568
  }
1471
1569
  asString(value, options = {}) {
1472
1570
  var _a;
@@ -1475,7 +1573,7 @@ class SelectComponent extends ListComponent_1.default {
1475
1573
  if (this.inDataTable) {
1476
1574
  value = this.undoValueTyping(value);
1477
1575
  }
1478
- const templateValue = (this.isEntireObjectDisplay() && !lodash_1.default.isObject(value.data)) ? { data: value } : value;
1576
+ const templateValue = this.isEntireObjectDisplay() && !lodash_1.default.isObject(value.data) ? { data: value } : value;
1479
1577
  const template = this.itemTemplate(templateValue, value, options);
1480
1578
  return template;
1481
1579
  }
@@ -1483,7 +1581,7 @@ class SelectComponent extends ListComponent_1.default {
1483
1581
  const convertToString = (data, valueProperty) => {
1484
1582
  if (valueProperty) {
1485
1583
  if (Array.isArray(data)) {
1486
- data.forEach((item) => item[valueProperty] = item[valueProperty].toString());
1584
+ data.forEach((item) => (item[valueProperty] = item[valueProperty].toString()));
1487
1585
  }
1488
1586
  else if (lodash_1.default.isObject(data)) {
1489
1587
  data[valueProperty] = data[valueProperty].toString();
@@ -1493,14 +1591,18 @@ class SelectComponent extends ListComponent_1.default {
1493
1591
  if (this.isBooleanOrNumber(data)) {
1494
1592
  data = data.toString();
1495
1593
  }
1496
- if (Array.isArray(data) && data.some(item => this.isBooleanOrNumber(item))) {
1497
- data = data.map(item => this.isBooleanOrNumber(item) ? item.toString() : item);
1594
+ if (Array.isArray(data) && data.some((item) => this.isBooleanOrNumber(item))) {
1595
+ data = data.map((item) => (this.isBooleanOrNumber(item) ? item.toString() : item));
1498
1596
  }
1499
1597
  return data;
1500
1598
  };
1501
1599
  value = convertToString(value);
1502
- if (['values', 'custom'].includes(this.component.dataSrc) && !this.asyncCustomValues()) {
1503
- const { items, valueProperty, } = this.component.dataSrc === 'values'
1600
+ if ([
1601
+ 'values',
1602
+ 'custom',
1603
+ ].includes(this.component.dataSrc) &&
1604
+ !this.asyncCustomValues()) {
1605
+ const { items, valueProperty } = this.component.dataSrc === 'values'
1504
1606
  ? {
1505
1607
  items: convertToString(this.getNormalizedValues(), 'value'),
1506
1608
  valueProperty: 'value',
@@ -1510,28 +1612,30 @@ class SelectComponent extends ListComponent_1.default {
1510
1612
  valueProperty: this.valueProperty,
1511
1613
  };
1512
1614
  const getFromValues = () => {
1513
- const initialValue = lodash_1.default.find(items, [valueProperty, value]);
1615
+ const initialValue = lodash_1.default.find(items, [
1616
+ valueProperty,
1617
+ value,
1618
+ ]);
1514
1619
  const values = this.defaultSchema.data.values || [];
1515
1620
  return lodash_1.default.isEqual(initialValue, values[0]) ? '-' : initialValue;
1516
1621
  };
1517
- value = (this.component.multiple && Array.isArray(value))
1518
- ? lodash_1.default.filter(items, (item) => value.includes(item.value))
1519
- : (valueProperty && items)
1520
- ? (_a = getFromValues()) !== null && _a !== void 0 ? _a : { value, label: value }
1521
- : value;
1622
+ value =
1623
+ this.component.multiple && Array.isArray(value)
1624
+ ? lodash_1.default.filter(items, (item) => value.includes(item.value))
1625
+ : valueProperty && items
1626
+ ? ((_a = getFromValues()) !== null && _a !== void 0 ? _a : { value, label: value })
1627
+ : value;
1522
1628
  }
1523
1629
  if (lodash_1.default.isString(value)) {
1524
1630
  return value;
1525
1631
  }
1526
1632
  const getTemplateValue = (v) => {
1527
1633
  const itemTemplate = this.itemTemplate(v);
1528
- return options.csv && itemTemplate
1529
- ? (0, utils_1.removeHTML)(itemTemplate)
1530
- : itemTemplate;
1634
+ return options.csv && itemTemplate ? (0, utils_1.removeHTML)(itemTemplate) : itemTemplate;
1531
1635
  };
1532
1636
  if (Array.isArray(value)) {
1533
1637
  const items = [];
1534
- value.forEach(item => items.push(getTemplateValue(item)));
1638
+ value.forEach((item) => items.push(getTemplateValue(item)));
1535
1639
  if (this.component.dataSrc === 'resource' && items.length > 0) {
1536
1640
  return items.join(', ');
1537
1641
  }
@@ -1545,9 +1649,7 @@ class SelectComponent extends ListComponent_1.default {
1545
1649
  if (this.isEntireObjectDisplay() && lodash_1.default.isObject(value)) {
1546
1650
  return JSON.stringify(value);
1547
1651
  }
1548
- return !lodash_1.default.isNil(value)
1549
- ? getTemplateValue(value)
1550
- : '-';
1652
+ return !lodash_1.default.isNil(value) ? getTemplateValue(value) : '-';
1551
1653
  }
1552
1654
  detach() {
1553
1655
  var _a, _b;
@@ -1569,10 +1671,14 @@ class SelectComponent extends ListComponent_1.default {
1569
1671
  setErrorClasses(elements, dirty, hasError, hasMessages, element = this.element) {
1570
1672
  super.setErrorClasses(elements, dirty, hasError, hasMessages, element);
1571
1673
  if (this.choices) {
1572
- super.setErrorClasses([this.choices.containerInner.element], dirty, hasError, hasMessages, element);
1674
+ super.setErrorClasses([
1675
+ this.choices.containerInner.element,
1676
+ ], dirty, hasError, hasMessages, element);
1573
1677
  }
1574
1678
  else {
1575
- super.setErrorClasses([this.refs.selectContainer], dirty, hasError, hasMessages, element);
1679
+ super.setErrorClasses([
1680
+ this.refs.selectContainer,
1681
+ ], dirty, hasError, hasMessages, element);
1576
1682
  }
1577
1683
  }
1578
1684
  }