@oneblink/apps-react 2.2.0 → 2.3.0-beta.2

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 (464) hide show
  1. package/dist/OneBlinkAutoSaveForm.d.ts +10 -10
  2. package/dist/OneBlinkAutoSaveForm.js +28 -28
  3. package/dist/OneBlinkForm.d.ts +11 -11
  4. package/dist/OneBlinkForm.js +11 -11
  5. package/dist/OneBlinkFormBase.d.ts +28 -28
  6. package/dist/OneBlinkFormBase.js +472 -472
  7. package/dist/OneBlinkFormStoreView.d.ts +8 -0
  8. package/dist/OneBlinkFormStoreView.js +55 -0
  9. package/dist/OneBlinkFormStoreView.js.map +1 -0
  10. package/dist/OneBlinkReadOnlyForm.d.ts +11 -11
  11. package/dist/OneBlinkReadOnlyForm.js +48 -48
  12. package/dist/components/AnnotationModal.d.ts +8 -0
  13. package/dist/components/AnnotationModal.js +104 -0
  14. package/dist/components/AnnotationModal.js.map +1 -0
  15. package/dist/components/AutocompleteDropdown.d.ts +26 -0
  16. package/dist/components/AutocompleteDropdown.js +174 -0
  17. package/dist/components/AutocompleteDropdown.js.map +1 -0
  18. package/dist/components/CopyToClipboardButton.d.ts +9 -0
  19. package/dist/components/CopyToClipboardButton.js +14 -0
  20. package/dist/components/CopyToClipboardButton.js.map +1 -0
  21. package/dist/components/CopyToClipboardIconButton.d.ts +10 -10
  22. package/dist/components/CopyToClipboardIconButton.js +32 -32
  23. package/dist/components/CustomAccordion.d.ts +27 -27
  24. package/dist/components/CustomAccordion.js +37 -37
  25. package/dist/components/CustomisableButtonInner.d.ts +7 -0
  26. package/dist/components/CustomisableButtonInner.js +9 -0
  27. package/dist/components/CustomisableButtonInner.js.map +1 -0
  28. package/dist/components/ErrorMessage.d.ts +13 -0
  29. package/dist/components/ErrorMessage.js +13 -0
  30. package/dist/components/ErrorMessage.js.map +1 -0
  31. package/dist/components/ErrorSnackbar.d.ts +8 -8
  32. package/dist/components/ErrorSnackbar.js +25 -25
  33. package/dist/components/FormElementLabelContainer.d.ts +12 -0
  34. package/dist/components/FormElementLabelContainer.js +16 -0
  35. package/dist/components/FormElementLabelContainer.js.map +1 -0
  36. package/dist/components/FormElementOptions.d.ts +9 -0
  37. package/dist/components/FormElementOptions.js +15 -0
  38. package/dist/components/FormElementOptions.js.map +1 -0
  39. package/dist/components/Lists.d.ts +25 -25
  40. package/dist/components/Lists.js +44 -44
  41. package/dist/components/LoadingWithMessage.d.ts +6 -6
  42. package/dist/components/LoadingWithMessage.js +11 -11
  43. package/dist/components/LookupButton.d.ts +10 -0
  44. package/dist/components/LookupButton.js +30 -0
  45. package/dist/components/LookupButton.js.map +1 -0
  46. package/dist/components/LookupNotification.d.ts +12 -0
  47. package/dist/components/LookupNotification.js +231 -0
  48. package/dist/components/LookupNotification.js.map +1 -0
  49. package/dist/components/Modal.d.ts +14 -0
  50. package/dist/components/Modal.js +15 -0
  51. package/dist/components/Modal.js.map +1 -0
  52. package/dist/components/NoResourcesYet.d.ts +12 -0
  53. package/dist/components/NoResourcesYet.js +7 -0
  54. package/dist/components/NoResourcesYet.js.map +1 -0
  55. package/dist/components/OnLoading.d.ts +10 -0
  56. package/dist/components/OnLoading.js +12 -0
  57. package/dist/components/OnLoading.js.map +1 -0
  58. package/dist/components/OneBlinkAppsErrorOriginalMessage.d.ts +7 -0
  59. package/dist/components/OneBlinkAppsErrorOriginalMessage.js +13 -0
  60. package/dist/components/OneBlinkAppsErrorOriginalMessage.js.map +1 -0
  61. package/dist/components/OneBlinkFormElements.d.ts +19 -0
  62. package/dist/components/OneBlinkFormElements.js +196 -0
  63. package/dist/components/OneBlinkFormElements.js.map +1 -0
  64. package/dist/components/PageFormElements.d.ts +17 -0
  65. package/dist/components/PageFormElements.js +49 -0
  66. package/dist/components/PageFormElements.js.map +1 -0
  67. package/dist/components/ToggleAllCheckbox.d.ts +13 -0
  68. package/dist/components/ToggleAllCheckbox.js +27 -0
  69. package/dist/components/ToggleAllCheckbox.js.map +1 -0
  70. package/dist/components/attachments/AttachmentStatus.d.ts +12 -0
  71. package/dist/components/attachments/AttachmentStatus.js +35 -0
  72. package/dist/components/attachments/AttachmentStatus.js.map +1 -0
  73. package/dist/components/attachments/FileCard.d.ts +18 -0
  74. package/dist/components/attachments/FileCard.js +58 -0
  75. package/dist/components/attachments/FileCard.js.map +1 -0
  76. package/dist/components/attachments/FileCardContent.d.ts +5 -0
  77. package/dist/components/attachments/FileCardContent.js +11 -0
  78. package/dist/components/attachments/FileCardContent.js.map +1 -0
  79. package/dist/components/attachments/Files.d.ts +14 -0
  80. package/dist/components/attachments/Files.js +27 -0
  81. package/dist/components/attachments/Files.js.map +1 -0
  82. package/dist/components/attachments/ImagePreviewUnavailable.d.ts +4 -0
  83. package/dist/components/attachments/ImagePreviewUnavailable.js +12 -0
  84. package/dist/components/attachments/ImagePreviewUnavailable.js.map +1 -0
  85. package/dist/components/attachments/UploadingAttachment.d.ts +4 -0
  86. package/dist/components/attachments/UploadingAttachment.js +13 -0
  87. package/dist/components/attachments/UploadingAttachment.js.map +1 -0
  88. package/dist/components/formStore/ColumnsConfigurationButton.d.ts +10 -0
  89. package/dist/components/formStore/ColumnsConfigurationButton.js +29 -0
  90. package/dist/components/formStore/ColumnsConfigurationButton.js.map +1 -0
  91. package/dist/components/formStore/DownloadSubmissionDataButton.d.ts +13 -0
  92. package/dist/components/formStore/DownloadSubmissionDataButton.js +45 -0
  93. package/dist/components/formStore/DownloadSubmissionDataButton.js.map +1 -0
  94. package/dist/components/formStore/FormStore.d.ts +9 -0
  95. package/dist/components/formStore/FormStore.js +103 -0
  96. package/dist/components/formStore/FormStore.js.map +1 -0
  97. package/dist/components/formStore/FormStoreTableProvider.d.ts +6 -6
  98. package/dist/components/formStore/FormStoreTableProvider.js +90 -90
  99. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +5 -5
  100. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +19 -19
  101. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +5 -5
  102. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js +66 -66
  103. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +5 -5
  104. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +86 -86
  105. package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +8 -8
  106. package/dist/components/formStore/OneBlinkFormStoreProvider.js +24 -24
  107. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +5 -5
  108. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +11 -11
  109. package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +4 -4
  110. package/dist/components/formStore/OneBlinkFormStoreTable.js +194 -194
  111. package/dist/components/formStore/display/ElementDisplay.d.ts +23 -23
  112. package/dist/components/formStore/display/ElementDisplay.js +77 -77
  113. package/dist/components/formStore/display/FormStoreIcon.d.ts +2 -2
  114. package/dist/components/formStore/display/FormStoreIcon.js +2 -2
  115. package/dist/components/formStore/table/ActionedByTableCell.d.ts +11 -11
  116. package/dist/components/formStore/table/ActionedByTableCell.js +43 -43
  117. package/dist/components/formStore/table/ColumnFilters.d.ts +9 -9
  118. package/dist/components/formStore/table/ColumnFilters.js +179 -179
  119. package/dist/components/formStore/table/FormElementTableCell.d.ts +10 -10
  120. package/dist/components/formStore/table/FormElementTableCell.js +228 -228
  121. package/dist/components/formStore/table/HeaderCellMoreButton.d.ts +9 -9
  122. package/dist/components/formStore/table/HeaderCellMoreButton.js +48 -48
  123. package/dist/components/formStore/table/RepeatableSetCell.d.ts +8 -8
  124. package/dist/components/formStore/table/RepeatableSetCell.js +62 -62
  125. package/dist/components/formStore/table/RepeatableSetCellAccordion.d.ts +9 -9
  126. package/dist/components/formStore/table/RepeatableSetCellAccordion.js +11 -11
  127. package/dist/components/formStore/table/TableCellCopyButton.d.ts +7 -7
  128. package/dist/components/formStore/table/TableCellCopyButton.js +27 -27
  129. package/dist/components/formStore/table/generateColumns.d.ts +24 -24
  130. package/dist/components/formStore/table/generateColumns.js +290 -290
  131. package/dist/components/formStore/table/index.d.ts +17 -0
  132. package/dist/components/formStore/table/index.js +194 -0
  133. package/dist/components/formStore/table/index.js.map +1 -0
  134. package/dist/components/formStore/table/useFormStoreTable.d.ts +52 -52
  135. package/dist/components/formStore/table/useFormStoreTable.js +157 -157
  136. package/dist/components/formStore/useFormStoreTableContext.d.ts +44 -44
  137. package/dist/components/formStore/useFormStoreTableContext.js +9 -9
  138. package/dist/components/messages/ErrorMessage.d.ts +12 -12
  139. package/dist/components/messages/ErrorMessage.js +12 -12
  140. package/dist/components/messages/LargeIconMessage.d.ts +18 -18
  141. package/dist/components/messages/LargeIconMessage.js +33 -33
  142. package/dist/components/messages/NoResourcesYet.d.ts +11 -11
  143. package/dist/components/messages/NoResourcesYet.js +6 -6
  144. package/dist/components/pickers/V4CompatibleDatePicker.d.ts +32 -32
  145. package/dist/components/pickers/V4CompatibleDatePicker.js +70 -70
  146. package/dist/components/pickers/V4CompatibleDateTimePicker.d.ts +32 -32
  147. package/dist/components/pickers/V4CompatibleDateTimePicker.js +70 -70
  148. package/dist/components/pickers/V4CompatibleTimePicker.d.ts +28 -28
  149. package/dist/components/pickers/V4CompatibleTimePicker.js +53 -53
  150. package/dist/components/renderer/AnnotationModal.d.ts +8 -8
  151. package/dist/components/renderer/AnnotationModal.js +101 -101
  152. package/dist/components/renderer/AutocompleteDropdown.d.ts +26 -26
  153. package/dist/components/renderer/AutocompleteDropdown.js +175 -175
  154. package/dist/components/renderer/CopyToClipboardButton.d.ts +8 -8
  155. package/dist/components/renderer/CopyToClipboardButton.js +13 -13
  156. package/dist/components/renderer/CustomisableButtonInner.d.ts +7 -7
  157. package/dist/components/renderer/CustomisableButtonInner.js +8 -8
  158. package/dist/components/renderer/FormElementLabelContainer.d.ts +12 -12
  159. package/dist/components/renderer/FormElementLabelContainer.js +15 -15
  160. package/dist/components/renderer/FormElementOptions.d.ts +9 -9
  161. package/dist/components/renderer/FormElementOptions.js +14 -14
  162. package/dist/components/renderer/LookupButton.d.ts +10 -10
  163. package/dist/components/renderer/LookupButton.js +29 -29
  164. package/dist/components/renderer/LookupNotification.d.ts +12 -12
  165. package/dist/components/renderer/LookupNotification.js +230 -230
  166. package/dist/components/renderer/Modal.d.ts +14 -14
  167. package/dist/components/renderer/Modal.js +14 -14
  168. package/dist/components/renderer/OnLoading.d.ts +10 -10
  169. package/dist/components/renderer/OnLoading.js +11 -11
  170. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.d.ts +7 -7
  171. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js +12 -12
  172. package/dist/components/renderer/OneBlinkFormElements.d.ts +19 -19
  173. package/dist/components/renderer/OneBlinkFormElements.js +202 -202
  174. package/dist/components/renderer/PageFormElements.d.ts +17 -17
  175. package/dist/components/renderer/PageFormElements.js +48 -48
  176. package/dist/components/renderer/ProgressBar.d.ts +7 -0
  177. package/dist/components/renderer/ProgressBar.js +7 -0
  178. package/dist/components/renderer/ProgressBar.js.map +1 -0
  179. package/dist/components/renderer/ToggleAllCheckbox.d.ts +13 -13
  180. package/dist/components/renderer/ToggleAllCheckbox.js +26 -26
  181. package/dist/components/renderer/attachments/AttachmentStatus.d.ts +10 -10
  182. package/dist/components/renderer/attachments/AttachmentStatus.js +36 -30
  183. package/dist/components/renderer/attachments/AttachmentStatus.js.map +1 -1
  184. package/dist/components/renderer/attachments/FileCard.d.ts +19 -18
  185. package/dist/components/renderer/attachments/FileCard.js +60 -57
  186. package/dist/components/renderer/attachments/FileCard.js.map +1 -1
  187. package/dist/components/renderer/attachments/FileCardContent.d.ts +5 -5
  188. package/dist/components/renderer/attachments/FileCardContent.js +10 -10
  189. package/dist/components/renderer/attachments/Files.d.ts +14 -0
  190. package/dist/components/renderer/attachments/Files.js +27 -0
  191. package/dist/components/renderer/attachments/Files.js.map +1 -0
  192. package/dist/components/renderer/attachments/ImagePreviewUnavailable.d.ts +4 -4
  193. package/dist/components/renderer/attachments/ImagePreviewUnavailable.js +11 -11
  194. package/dist/components/renderer/attachments/ProgressBar.d.ts +8 -0
  195. package/dist/components/renderer/attachments/ProgressBar.js +34 -0
  196. package/dist/components/renderer/attachments/ProgressBar.js.map +1 -0
  197. package/dist/components/renderer/attachments/UploadingAttachment.d.ts +4 -4
  198. package/dist/components/renderer/attachments/UploadingAttachment.js +12 -12
  199. package/dist/form-elements/ComplianceButton.d.ts +10 -10
  200. package/dist/form-elements/ComplianceButton.js +11 -11
  201. package/dist/form-elements/FormElementABN.d.ts +14 -14
  202. package/dist/form-elements/FormElementABN.js +155 -155
  203. package/dist/form-elements/FormElementAutocomplete.d.ts +19 -19
  204. package/dist/form-elements/FormElementAutocomplete.js +81 -81
  205. package/dist/form-elements/FormElementBSB.d.ts +18 -18
  206. package/dist/form-elements/FormElementBSB.js +100 -100
  207. package/dist/form-elements/FormElementBarcodeScanner.d.ts +14 -14
  208. package/dist/form-elements/FormElementBarcodeScanner.js +306 -306
  209. package/dist/form-elements/FormElementBoolean.d.ts +14 -14
  210. package/dist/form-elements/FormElementBoolean.js +16 -16
  211. package/dist/form-elements/FormElementCalculation.d.ts +11 -11
  212. package/dist/form-elements/FormElementCalculation.js +179 -179
  213. package/dist/form-elements/FormElementCamera.d.ts +15 -15
  214. package/dist/form-elements/FormElementCamera.js +227 -220
  215. package/dist/form-elements/FormElementCamera.js.map +1 -1
  216. package/dist/form-elements/FormElementCaptcha.d.ts +12 -12
  217. package/dist/form-elements/FormElementCaptcha.js +14 -14
  218. package/dist/form-elements/FormElementCheckBoxes.d.ts +15 -15
  219. package/dist/form-elements/FormElementCheckBoxes.js +64 -64
  220. package/dist/form-elements/FormElementCivicaNameRecord.d.ts +8 -8
  221. package/dist/form-elements/FormElementCivicaNameRecord.js +51 -51
  222. package/dist/form-elements/FormElementCivicaStreetName.d.ts +15 -15
  223. package/dist/form-elements/FormElementCivicaStreetName.js +38 -38
  224. package/dist/form-elements/FormElementCompliance.d.ts +22 -22
  225. package/dist/form-elements/FormElementCompliance.js +129 -129
  226. package/dist/form-elements/FormElementDate.d.ts +14 -14
  227. package/dist/form-elements/FormElementDate.js +74 -74
  228. package/dist/form-elements/FormElementDateTime.d.ts +14 -14
  229. package/dist/form-elements/FormElementDateTime.js +67 -67
  230. package/dist/form-elements/FormElementEmail.d.ts +14 -14
  231. package/dist/form-elements/FormElementEmail.js +22 -22
  232. package/dist/form-elements/FormElementFile.d.ts +13 -13
  233. package/dist/form-elements/FormElementFile.js +31 -31
  234. package/dist/form-elements/FormElementFile.js.map +1 -1
  235. package/dist/form-elements/FormElementFiles/FormElementFile.d.ts +13 -0
  236. package/dist/form-elements/FormElementFiles/FormElementFile.js +32 -0
  237. package/dist/form-elements/FormElementFiles/FormElementFile.js.map +1 -0
  238. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.d.ts +10 -0
  239. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js +11 -0
  240. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js.map +1 -0
  241. package/dist/form-elements/FormElementFiles/FormElementFiles.d.ts +15 -0
  242. package/dist/form-elements/FormElementFiles/FormElementFiles.js +17 -0
  243. package/dist/form-elements/FormElementFiles/FormElementFiles.js.map +1 -0
  244. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.d.ts +7 -0
  245. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js +11 -0
  246. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js.map +1 -0
  247. package/dist/form-elements/FormElementFiles/index.d.ts +17 -0
  248. package/dist/form-elements/FormElementFiles/index.js +18 -0
  249. package/dist/form-elements/FormElementFiles/index.js.map +1 -0
  250. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.d.ts +18 -0
  251. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js +61 -0
  252. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js.map +1 -0
  253. package/dist/form-elements/FormElementFiles.d.ts +15 -15
  254. package/dist/form-elements/FormElementFiles.js +42 -42
  255. package/dist/form-elements/FormElementForm.d.ts +17 -17
  256. package/dist/form-elements/FormElementForm.js +63 -63
  257. package/dist/form-elements/FormElementFreshdeskDependentField.d.ts +8 -8
  258. package/dist/form-elements/FormElementFreshdeskDependentField.js +15 -15
  259. package/dist/form-elements/FormElementGeoscapeAddress.d.ts +15 -15
  260. package/dist/form-elements/FormElementGeoscapeAddress.js +62 -62
  261. package/dist/form-elements/FormElementHTML.d.ts +8 -8
  262. package/dist/form-elements/FormElementHTML.js +15 -15
  263. package/dist/form-elements/FormElementHeading.d.ts +8 -8
  264. package/dist/form-elements/FormElementHeading.js +23 -23
  265. package/dist/form-elements/FormElementImage.d.ts +8 -8
  266. package/dist/form-elements/FormElementImage.js +6 -6
  267. package/dist/form-elements/FormElementLocation.d.ts +20 -20
  268. package/dist/form-elements/FormElementLocation.js +204 -204
  269. package/dist/form-elements/FormElementNumber.d.ts +14 -14
  270. package/dist/form-elements/FormElementNumber.js +72 -72
  271. package/dist/form-elements/FormElementPointAddress.d.ts +15 -15
  272. package/dist/form-elements/FormElementPointAddress.js +69 -69
  273. package/dist/form-elements/FormElementRadio.d.ts +15 -15
  274. package/dist/form-elements/FormElementRadio.js +41 -41
  275. package/dist/form-elements/FormElementRepeatableSet.d.ts +19 -19
  276. package/dist/form-elements/FormElementRepeatableSet.js +126 -126
  277. package/dist/form-elements/FormElementSection.d.ts +8 -8
  278. package/dist/form-elements/FormElementSection.js +69 -69
  279. package/dist/form-elements/FormElementSelect.d.ts +15 -15
  280. package/dist/form-elements/FormElementSelect.js +44 -44
  281. package/dist/form-elements/FormElementSignature.d.ts +15 -15
  282. package/dist/form-elements/FormElementSignature.js +138 -135
  283. package/dist/form-elements/FormElementSignature.js.map +1 -1
  284. package/dist/form-elements/FormElementSummary.d.ts +11 -11
  285. package/dist/form-elements/FormElementSummary.js +159 -159
  286. package/dist/form-elements/FormElementTelephone.d.ts +14 -14
  287. package/dist/form-elements/FormElementTelephone.js +22 -22
  288. package/dist/form-elements/FormElementText.d.ts +14 -14
  289. package/dist/form-elements/FormElementText.js +29 -29
  290. package/dist/form-elements/FormElementTextarea.d.ts +14 -14
  291. package/dist/form-elements/FormElementTextarea.js +30 -30
  292. package/dist/form-elements/FormElementTime.d.ts +14 -14
  293. package/dist/form-elements/FormElementTime.js +53 -53
  294. package/dist/form-elements/OptionButton.d.ts +11 -11
  295. package/dist/form-elements/OptionButton.js +9 -9
  296. package/dist/hooks/attachments/useAttachment.d.ts +12 -11
  297. package/dist/hooks/attachments/useAttachment.js +242 -235
  298. package/dist/hooks/attachments/useAttachment.js.map +1 -1
  299. package/dist/hooks/attachments/useAttachmentBlobs.d.ts +19 -19
  300. package/dist/hooks/attachments/useAttachmentBlobs.js +23 -23
  301. package/dist/hooks/attachments/useAttachmentObjectURLs.d.ts +24 -0
  302. package/dist/hooks/attachments/useAttachmentObjectURLs.js +37 -0
  303. package/dist/hooks/attachments/useAttachmentObjectURLs.js.map +1 -0
  304. package/dist/hooks/attachments/useAttachments.d.ts +10 -10
  305. package/dist/hooks/attachments/useAttachments.js +69 -69
  306. package/dist/hooks/attachments/useLocalAttachmentBlobs.d.ts +24 -0
  307. package/dist/hooks/attachments/useLocalAttachmentBlobs.js +40 -0
  308. package/dist/hooks/attachments/useLocalAttachmentBlobs.js.map +1 -0
  309. package/dist/hooks/useAbnLookupAuthenticationGuid.d.ts +3 -3
  310. package/dist/hooks/useAbnLookupAuthenticationGuid.js +5 -5
  311. package/dist/hooks/useAuth.d.ts +15 -15
  312. package/dist/hooks/useAuth.js +42 -42
  313. package/dist/hooks/useBooleanState.d.ts +5 -5
  314. package/dist/hooks/useBooleanState.js +8 -8
  315. package/dist/hooks/useButtonsConfiguration.d.ts +45 -0
  316. package/dist/hooks/useButtonsConfiguration.js +6 -0
  317. package/dist/hooks/useButtonsConfiguration.js.map +1 -0
  318. package/dist/hooks/useCaptchaSiteKey.d.ts +3 -3
  319. package/dist/hooks/useCaptchaSiteKey.js +5 -5
  320. package/dist/hooks/useChangeEffect.d.ts +1 -0
  321. package/dist/hooks/useChangeEffect.js +14 -0
  322. package/dist/hooks/useChangeEffect.js.map +1 -0
  323. package/dist/hooks/useClickOutsideElement.d.ts +3 -3
  324. package/dist/hooks/useClickOutsideElement.js +14 -14
  325. package/dist/hooks/useConditionalLogic.d.ts +6 -6
  326. package/dist/hooks/useConditionalLogic.js +22 -22
  327. package/dist/hooks/useConditionallyShowOptionCallback.d.ts +5 -0
  328. package/dist/hooks/useConditionallyShowOptionCallback.js +20 -0
  329. package/dist/hooks/useConditionallyShowOptionCallback.js.map +1 -0
  330. package/dist/hooks/useContrastColor.d.ts +2 -2
  331. package/dist/hooks/useContrastColor.js +12 -12
  332. package/dist/hooks/useCustomValidation.d.ts +1 -0
  333. package/dist/hooks/useCustomValidation.js +9 -0
  334. package/dist/hooks/useCustomValidation.js.map +1 -0
  335. package/dist/hooks/useDynamicOptionsLoaderEffect.d.ts +7 -0
  336. package/dist/hooks/useDynamicOptionsLoaderEffect.js +45 -0
  337. package/dist/hooks/useDynamicOptionsLoaderEffect.js.map +1 -0
  338. package/dist/hooks/useDynamicOptionsLoaderState.d.ts +7 -7
  339. package/dist/hooks/useDynamicOptionsLoaderState.js +44 -44
  340. package/dist/hooks/useExecutedLookupCallback.d.ts +12 -12
  341. package/dist/hooks/useExecutedLookupCallback.js +15 -15
  342. package/dist/hooks/useFlatpickr.d.ts +10 -10
  343. package/dist/hooks/useFlatpickr.js +73 -73
  344. package/dist/hooks/useFlatpickrGuid.d.ts +7 -7
  345. package/dist/hooks/useFlatpickrGuid.js +11 -11
  346. package/dist/hooks/useFlattenElementsContext.d.ts +2 -2
  347. package/dist/hooks/useFlattenElementsContext.js +7 -7
  348. package/dist/hooks/useFormDefinition.d.ts +4 -4
  349. package/dist/hooks/useFormDefinition.js +9 -9
  350. package/dist/hooks/useFormElementOptions.d.ts +9 -9
  351. package/dist/hooks/useFormElementOptions.js +35 -35
  352. package/dist/hooks/useFormIsReadOnly.d.ts +3 -3
  353. package/dist/hooks/useFormIsReadOnly.js +5 -5
  354. package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +24 -24
  355. package/dist/hooks/useFormSubmissionAutoSaveState.js +145 -145
  356. package/dist/hooks/useFormSubmissionModelContext.d.ts +15 -15
  357. package/dist/hooks/useFormSubmissionModelContext.js +32 -32
  358. package/dist/hooks/useFormSubmissionState.d.ts +10 -10
  359. package/dist/hooks/useFormSubmissionState.js +13 -13
  360. package/dist/hooks/useFormValidation.d.ts +7 -7
  361. package/dist/hooks/useFormValidation.js +29 -29
  362. package/dist/hooks/useGoogleMapsApiKey.d.ts +3 -3
  363. package/dist/hooks/useGoogleMapsApiKey.js +5 -5
  364. package/dist/hooks/useInfiniteScrollDataLoad.d.ts +30 -30
  365. package/dist/hooks/useInfiniteScrollDataLoad.js +124 -124
  366. package/dist/hooks/useInjectPages.d.ts +7 -7
  367. package/dist/hooks/useInjectPages.js +5 -5
  368. package/dist/hooks/useIsHovering.d.ts +5 -5
  369. package/dist/hooks/useIsHovering.js +12 -12
  370. package/dist/hooks/useIsMounted.d.ts +3 -3
  371. package/dist/hooks/useIsMounted.js +11 -11
  372. package/dist/hooks/useIsOffline.d.ts +6 -6
  373. package/dist/hooks/useIsOffline.js +26 -26
  374. package/dist/hooks/useIsPageVisible.d.ts +9 -9
  375. package/dist/hooks/useIsPageVisible.js +8 -8
  376. package/dist/hooks/useLegacyElements.d.ts +16 -0
  377. package/dist/hooks/useLegacyElements.js +55 -0
  378. package/dist/hooks/useLegacyElements.js.map +1 -0
  379. package/dist/hooks/useLoadDataState.d.ts +15 -15
  380. package/dist/hooks/useLoadDataState.js +54 -54
  381. package/dist/hooks/useLogin.d.ts +46 -46
  382. package/dist/hooks/useLogin.js +295 -295
  383. package/dist/hooks/useLookupNotification.d.ts +9 -9
  384. package/dist/hooks/useLookupNotification.js +10 -10
  385. package/dist/hooks/useLookups.d.ts +5 -5
  386. package/dist/hooks/useLookups.js +62 -62
  387. package/dist/hooks/useNullableState.d.ts +2 -2
  388. package/dist/hooks/useNullableState.js +6 -6
  389. package/dist/hooks/usePages.d.ts +24 -24
  390. package/dist/hooks/usePages.js +141 -141
  391. package/dist/hooks/useQuery.d.ts +2 -2
  392. package/dist/hooks/useQuery.js +7 -7
  393. package/dist/hooks/useSubmissionIdIsValid.d.ts +3 -3
  394. package/dist/hooks/useSubmissionIdIsValid.js +19 -19
  395. package/dist/hooks/useToggleAll.d.ts +6 -0
  396. package/dist/hooks/useToggleAll.js +24 -0
  397. package/dist/hooks/useToggleAll.js.map +1 -0
  398. package/dist/hooks/useToggleComplianceChildren.d.ts +3 -3
  399. package/dist/hooks/useToggleComplianceChildren.js +13 -13
  400. package/dist/index.d.ts +23 -22
  401. package/dist/index.js +23 -22
  402. package/dist/index.js.map +1 -1
  403. package/dist/services/attachments.d.ts +10 -10
  404. package/dist/services/attachments.js +72 -72
  405. package/dist/services/barcode-readers/quagger.d.ts +1 -1
  406. package/dist/services/barcode-readers/quagger.js +34 -34
  407. package/dist/services/blob-utils.d.ts +5 -5
  408. package/dist/services/blob-utils.js +73 -73
  409. package/dist/services/checkBsbsAreInvalid.d.ts +3 -3
  410. package/dist/services/checkBsbsAreInvalid.js +40 -40
  411. package/dist/services/checkIfAttachmentsAreUploading.d.ts +3 -3
  412. package/dist/services/checkIfAttachmentsAreUploading.js +57 -57
  413. package/dist/services/checkIfAttachmentsExist.d.ts +5 -5
  414. package/dist/services/checkIfAttachmentsExist.js +144 -144
  415. package/dist/services/checkIfBsbsAreValidating.d.ts +3 -3
  416. package/dist/services/checkIfBsbsAreValidating.js +40 -40
  417. package/dist/services/clean-form-elements-ctrl-model.d.ts +4 -0
  418. package/dist/services/clean-form-elements-ctrl-model.js +166 -0
  419. package/dist/services/clean-form-elements-ctrl-model.js.map +1 -0
  420. package/dist/services/cleanFormSubmissionModel.d.ts +6 -6
  421. package/dist/services/cleanFormSubmissionModel.js +203 -203
  422. package/dist/services/conditionally-show-element.d.ts +11 -0
  423. package/dist/services/conditionally-show-element.js +92 -0
  424. package/dist/services/conditionally-show-element.js.map +1 -0
  425. package/dist/services/conditionally-show-option.d.ts +3 -0
  426. package/dist/services/conditionally-show-option.js +135 -0
  427. package/dist/services/conditionally-show-option.js.map +1 -0
  428. package/dist/services/defaultCoordinates.d.ts +5 -5
  429. package/dist/services/defaultCoordinates.js +8 -8
  430. package/dist/services/download-file.d.ts +3 -3
  431. package/dist/services/download-file.js +90 -90
  432. package/dist/services/drawTimestampOnCanvas.d.ts +1 -1
  433. package/dist/services/drawTimestampOnCanvas.js +22 -22
  434. package/dist/services/flattenFormElements.d.ts +2 -0
  435. package/dist/services/flattenFormElements.js +13 -0
  436. package/dist/services/flattenFormElements.js.map +1 -0
  437. package/dist/services/form-validation.d.ts +10 -10
  438. package/dist/services/form-validation.js +561 -561
  439. package/dist/services/generate-default-data.d.ts +13 -13
  440. package/dist/services/generate-default-data.js +494 -494
  441. package/dist/services/generateCivicaNameRecordElements.d.ts +2 -2
  442. package/dist/services/generateCivicaNameRecordElements.js +140 -140
  443. package/dist/services/generateFreshdeskDependentFieldElements.d.ts +2 -2
  444. package/dist/services/generateFreshdeskDependentFieldElements.js +69 -69
  445. package/dist/services/getCorrectDateFromDateOnlyString.d.ts +2 -0
  446. package/dist/services/getCorrectDateFromDateOnlyString.js +4 -0
  447. package/dist/services/getCorrectDateFromDateOnlyString.js.map +1 -0
  448. package/dist/services/sanitize-html.d.ts +2 -2
  449. package/dist/services/sanitize-html.js +20 -20
  450. package/dist/services/scrolling-service.d.ts +7 -7
  451. package/dist/services/scrolling-service.js +38 -38
  452. package/dist/services/utils-service.d.ts +5 -5
  453. package/dist/services/utils-service.js +16 -16
  454. package/dist/styles/boolean.scss +12 -0
  455. package/dist/styles/ob-file.scss +63 -0
  456. package/dist/styles/progress.scss +8 -0
  457. package/dist/styles.css +7 -0
  458. package/dist/styles.css.map +1 -1
  459. package/dist/styles.scss +1 -0
  460. package/dist/types/attachments.d.ts +19 -19
  461. package/dist/types/attachments.js +1 -1
  462. package/dist/types/form.d.ts +40 -40
  463. package/dist/types/form.js +2 -2
  464. package/package.json +2 -2
@@ -1,14 +1,14 @@
1
- import * as React from 'react';
2
- import { FormTypes } from '@oneblink/types';
3
- import { FormElementValueChangeHandler } from '../types/form';
4
- declare type Props = {
5
- id: string;
6
- element: FormTypes.BooleanElement;
7
- value: unknown;
8
- onChange: FormElementValueChangeHandler<boolean>;
9
- displayValidationMessage: boolean;
10
- validationMessage: string | undefined;
11
- };
12
- declare function FormElementBoolean({ id, element, value, onChange, validationMessage, displayValidationMessage, }: Props): JSX.Element;
13
- declare const _default: React.MemoExoticComponent<typeof FormElementBoolean>;
14
- export default _default;
1
+ import * as React from 'react';
2
+ import { FormTypes } from '@oneblink/types';
3
+ import { FormElementValueChangeHandler } from '../types/form';
4
+ declare type Props = {
5
+ id: string;
6
+ element: FormTypes.BooleanElement;
7
+ value: unknown;
8
+ onChange: FormElementValueChangeHandler<boolean>;
9
+ displayValidationMessage: boolean;
10
+ validationMessage: string | undefined;
11
+ };
12
+ declare function FormElementBoolean({ id, element, value, onChange, validationMessage, displayValidationMessage, }: Props): JSX.Element;
13
+ declare const _default: React.MemoExoticComponent<typeof FormElementBoolean>;
14
+ export default _default;
@@ -1,17 +1,17 @@
1
- import * as React from 'react';
2
- import useBooleanState from '../hooks/useBooleanState';
3
- import FormElementLabelContainer from '../components/renderer/FormElementLabelContainer';
4
- import { Switch } from '@mui/material';
5
- function FormElementBoolean({ id, element, value, onChange, validationMessage, displayValidationMessage, }) {
6
- const [isDirty, setIsDirty] = useBooleanState(false);
7
- return (React.createElement("div", { className: "cypress-boolean-element" },
8
- React.createElement(FormElementLabelContainer, { className: "ob-boolean", id: id, element: element, required: element.required, leading: React.createElement(Switch, { id: id, name: element.name, color: "primary", edge: "start", className: "ob-boolean__input cypress-boolean-control", classes: {
9
- checked: 'ob-boolean__input-checked',
10
- }, checked: !!value, disabled: element.readOnly, onChange: (e) => {
11
- setIsDirty();
12
- onChange(element, e.target.checked);
13
- }, disableRipple: true }) }, (isDirty || displayValidationMessage) && !!validationMessage && (React.createElement("div", { role: "alert", className: "has-margin-top-8" },
14
- React.createElement("div", { className: "has-text-danger ob-error__text cypress-validation-message" }, validationMessage))))));
15
- }
16
- export default React.memo(FormElementBoolean);
1
+ import * as React from 'react';
2
+ import useBooleanState from '../hooks/useBooleanState';
3
+ import FormElementLabelContainer from '../components/renderer/FormElementLabelContainer';
4
+ import { Switch } from '@mui/material';
5
+ function FormElementBoolean({ id, element, value, onChange, validationMessage, displayValidationMessage, }) {
6
+ const [isDirty, setIsDirty] = useBooleanState(false);
7
+ return (React.createElement("div", { className: "cypress-boolean-element" },
8
+ React.createElement(FormElementLabelContainer, { className: "ob-boolean", id: id, element: element, required: element.required, leading: React.createElement(Switch, { id: id, name: element.name, color: "primary", edge: "start", className: "ob-boolean__input cypress-boolean-control", classes: {
9
+ checked: 'ob-boolean__input-checked',
10
+ }, checked: !!value, disabled: element.readOnly, onChange: (e) => {
11
+ setIsDirty();
12
+ onChange(element, e.target.checked);
13
+ }, disableRipple: true }) }, (isDirty || displayValidationMessage) && !!validationMessage && (React.createElement("div", { role: "alert", className: "has-margin-top-8" },
14
+ React.createElement("div", { className: "has-text-danger ob-error__text cypress-validation-message" }, validationMessage))))));
15
+ }
16
+ export default React.memo(FormElementBoolean);
17
17
  //# sourceMappingURL=FormElementBoolean.js.map
@@ -1,11 +1,11 @@
1
- import * as React from 'react';
2
- import { FormTypes } from '@oneblink/types';
3
- import { FormElementValueChangeHandler } from '../types/form';
4
- declare type Props = {
5
- element: FormTypes.CalculationElement;
6
- onChange: FormElementValueChangeHandler<number>;
7
- value: unknown | undefined;
8
- };
9
- declare function FormElementCalculation({ element, onChange, value }: Props): JSX.Element;
10
- declare const _default: React.MemoExoticComponent<typeof FormElementCalculation>;
11
- export default _default;
1
+ import * as React from 'react';
2
+ import { FormTypes } from '@oneblink/types';
3
+ import { FormElementValueChangeHandler } from '../types/form';
4
+ declare type Props = {
5
+ element: FormTypes.CalculationElement;
6
+ onChange: FormElementValueChangeHandler<number>;
7
+ value: unknown | undefined;
8
+ };
9
+ declare function FormElementCalculation({ element, onChange, value }: Props): JSX.Element;
10
+ declare const _default: React.MemoExoticComponent<typeof FormElementCalculation>;
11
+ export default _default;
@@ -1,180 +1,180 @@
1
- import * as React from 'react';
2
- import ExpressionParser from 'morph-expressions';
3
- import escapeString from 'escape-string-regexp';
4
- import sanitizeHtmlStandard from '../services/sanitize-html';
5
- import useFormSubmissionModel from '../hooks/useFormSubmissionModelContext';
6
- import { Sentry } from '@oneblink/apps';
7
- import { localisationService } from '@oneblink/apps';
8
- const isUnenteredValue = (value) => {
9
- return !value && value !== 0;
10
- };
11
- const isObjectWithValue = (obj) => {
12
- return typeof obj === 'object' && obj !== null && 'value' in obj;
13
- };
14
- function FormElementCalculation({ element, onChange, value }) {
15
- const { formSubmissionModel } = useFormSubmissionModel();
16
- const htmlValue = React.useMemo(() => {
17
- let htmlTemplate;
18
- if (!isNaN(value)) {
19
- htmlTemplate = element.defaultValue;
20
- }
21
- else {
22
- console.log('[Calculation] Was not a number... setting pre-calculation display');
23
- htmlTemplate = element.preCalculationDisplay;
24
- }
25
- const numberValue = typeof value === 'number' ? value : 0;
26
- return sanitizeHtmlStandard((htmlTemplate || '').replace(/{result}/gi, element.displayAsCurrency
27
- ? localisationService.formatCurrency(numberValue)
28
- : localisationService.formatNumber(numberValue)));
29
- }, [element, value]);
30
- const registerProperty = React.useCallback((exprParser, { replacement, nestedElementNames, }) => {
31
- exprParser.registerProperty(replacement, (submission) => {
32
- const defaultAccumulator = submission[nestedElementNames[0]];
33
- return nestedElementNames.reduce((elementValue, elementName, index) => {
34
- // Numbers can just be returned as is
35
- if (typeof elementValue === 'number') {
36
- return elementValue;
37
- }
38
- // attempt to get a number from the element value as a string.
39
- // NaN is accounted for is the calculation
40
- // so we can return that from here
41
- if (typeof elementValue === 'string') {
42
- return parseFloat(elementValue);
43
- }
44
- if (Array.isArray(elementValue)) {
45
- // If there are no entries, we can return null
46
- // to prevent the calculation from running.
47
- if (!elementValue.length) {
48
- return NaN;
49
- }
50
- // An array could be an element that allows multiple
51
- // values e.g. checkboxes. If thats that case, we just
52
- // add them all together and move on
53
- const elementValues = elementValue.map((entry) => parseFloat(entry));
54
- if (elementValues.every((entry) => !Number.isNaN(entry))) {
55
- return elementValues.reduce((number, entry) => number + entry, 0);
56
- }
57
- // Other wise attempt to process it as a repeatable set
58
- // If we found another repeatable set to process,
59
- // pass it to the next element name to
60
- // iterate over the entries
61
- // If we are processing the entries in a repeatable set,
62
- // we can sum the numbers elements in the entries
63
- const nextElementName = nestedElementNames[index + 1];
64
- let isNestedRepeatableSet = false;
65
- const nestedElementValues = elementValue.reduce((nestedElementValues, entry) => {
66
- if (entry) {
67
- const nextElementValue = entry[nextElementName];
68
- if (Array.isArray(nextElementValue)) {
69
- if (nextElementValue.length) {
70
- nestedElementValues.push(...nextElementValue);
71
- isNestedRepeatableSet = true;
72
- }
73
- }
74
- else {
75
- nestedElementValues.push(nextElementValue);
76
- }
77
- }
78
- return nestedElementValues;
79
- }, []);
80
- // If the nested element values are all arrays, we can pass them on to the next iteration
81
- if (isNestedRepeatableSet) {
82
- return nestedElementValues;
83
- }
84
- return nestedElementValues.reduce((total, nestedElementValue) => {
85
- if (Number.isNaN(total)) {
86
- return NaN;
87
- }
88
- const value = parseFloat(nestedElementValue);
89
- if (Number.isNaN(value)) {
90
- return NaN;
91
- }
92
- return total + value;
93
- }, 0);
94
- }
95
- // "compliance" form element has an object value with a "value" property.
96
- if (isObjectWithValue(elementValue) &&
97
- typeof elementValue.value === 'string') {
98
- return parseFloat(elementValue.value);
99
- }
100
- // We did not find a number value from the known elements,
101
- // we will assume we are at the end of the line.
102
- return NaN;
103
- }, defaultAccumulator);
104
- });
105
- }, []);
106
- const { calculation, hasError } = React.useMemo(() => {
107
- const exprParser = new ExpressionParser();
108
- exprParser.registerFunction('ROUND', (value, precision) => {
109
- if (!Number.isNaN(value) && Number.isFinite(value)) {
110
- return parseFloat(value.toFixed(precision));
111
- }
112
- return null;
113
- });
114
- exprParser.registerFunction('ISNULL', (value, defaultValue) => {
115
- if (isUnenteredValue(value)) {
116
- return defaultValue || 0;
117
- }
118
- return value;
119
- });
120
- try {
121
- if (!element.calculation)
122
- throw new Error('Element has no calculation.');
123
- let matches;
124
- const elementNames = [];
125
- const re = /({ELEMENT:)([^}]+)(})/g;
126
- while ((matches = re.exec(element.calculation)) !== null) {
127
- if (matches) {
128
- elementNames.push(matches[2]);
129
- }
130
- }
131
- const code = elementNames.reduce((code, elementName, index) => {
132
- const regex = new RegExp(escapeString(`{ELEMENT:${elementName}}`), 'g');
133
- const replacement = `a${index}`;
134
- registerProperty(exprParser, {
135
- replacement,
136
- nestedElementNames: elementName.split('|'),
137
- });
138
- return code.replace(regex, replacement);
139
- }, element.calculation || '');
140
- return {
141
- calculation: exprParser.parse(code.trim()),
142
- hasError: false,
143
- };
144
- }
145
- catch (e) {
146
- console.warn('Error while setting up parsing for calculation element', element, e);
147
- Sentry.captureException(e);
148
- return {
149
- calculation: null,
150
- hasError: true,
151
- };
152
- }
153
- }, [element, registerProperty]);
154
- // MODEL LISTENER
155
- React.useEffect(() => {
156
- if (!calculation)
157
- return;
158
- const newValue = calculation.eval(formSubmissionModel);
159
- if (value === newValue || (value === undefined && isNaN(newValue))) {
160
- return;
161
- }
162
- if (!isNaN(newValue)) {
163
- onChange(element, newValue);
164
- }
165
- else {
166
- onChange(element, undefined);
167
- }
168
- }, [calculation, element, formSubmissionModel, onChange, value]);
169
- return (React.createElement("div", { className: "cypress-calculation-element" },
170
- React.createElement("div", { className: "ob-form__element ob-calculation" },
171
- React.createElement("div", { className: "cypress-calculation-result ob-calculation__content ql-editor", dangerouslySetInnerHTML: { __html: htmlValue } }),
172
- hasError && (React.createElement("div", { className: "notification cypress-calculation-is-invalid", role: "alert" },
173
- React.createElement("div", { className: "columns is-vcentered" },
174
- React.createElement("div", { className: "column is-narrow" },
175
- React.createElement("i", { className: "material-icons has-text-warning" }, "error")),
176
- React.createElement("div", { className: "column" },
177
- React.createElement("p", null, "There is an error in the calculation for this element."))))))));
178
- }
179
- export default React.memo(FormElementCalculation);
1
+ import * as React from 'react';
2
+ import ExpressionParser from 'morph-expressions';
3
+ import escapeString from 'escape-string-regexp';
4
+ import sanitizeHtmlStandard from '../services/sanitize-html';
5
+ import useFormSubmissionModel from '../hooks/useFormSubmissionModelContext';
6
+ import { Sentry } from '@oneblink/apps';
7
+ import { localisationService } from '@oneblink/apps';
8
+ const isUnenteredValue = (value) => {
9
+ return !value && value !== 0;
10
+ };
11
+ const isObjectWithValue = (obj) => {
12
+ return typeof obj === 'object' && obj !== null && 'value' in obj;
13
+ };
14
+ function FormElementCalculation({ element, onChange, value }) {
15
+ const { formSubmissionModel } = useFormSubmissionModel();
16
+ const htmlValue = React.useMemo(() => {
17
+ let htmlTemplate;
18
+ if (!isNaN(value)) {
19
+ htmlTemplate = element.defaultValue;
20
+ }
21
+ else {
22
+ console.log('[Calculation] Was not a number... setting pre-calculation display');
23
+ htmlTemplate = element.preCalculationDisplay;
24
+ }
25
+ const numberValue = typeof value === 'number' ? value : 0;
26
+ return sanitizeHtmlStandard((htmlTemplate || '').replace(/{result}/gi, element.displayAsCurrency
27
+ ? localisationService.formatCurrency(numberValue)
28
+ : localisationService.formatNumber(numberValue)));
29
+ }, [element, value]);
30
+ const registerProperty = React.useCallback((exprParser, { replacement, nestedElementNames, }) => {
31
+ exprParser.registerProperty(replacement, (submission) => {
32
+ const defaultAccumulator = submission[nestedElementNames[0]];
33
+ return nestedElementNames.reduce((elementValue, elementName, index) => {
34
+ // Numbers can just be returned as is
35
+ if (typeof elementValue === 'number') {
36
+ return elementValue;
37
+ }
38
+ // attempt to get a number from the element value as a string.
39
+ // NaN is accounted for is the calculation
40
+ // so we can return that from here
41
+ if (typeof elementValue === 'string') {
42
+ return parseFloat(elementValue);
43
+ }
44
+ if (Array.isArray(elementValue)) {
45
+ // If there are no entries, we can return null
46
+ // to prevent the calculation from running.
47
+ if (!elementValue.length) {
48
+ return NaN;
49
+ }
50
+ // An array could be an element that allows multiple
51
+ // values e.g. checkboxes. If thats that case, we just
52
+ // add them all together and move on
53
+ const elementValues = elementValue.map((entry) => parseFloat(entry));
54
+ if (elementValues.every((entry) => !Number.isNaN(entry))) {
55
+ return elementValues.reduce((number, entry) => number + entry, 0);
56
+ }
57
+ // Other wise attempt to process it as a repeatable set
58
+ // If we found another repeatable set to process,
59
+ // pass it to the next element name to
60
+ // iterate over the entries
61
+ // If we are processing the entries in a repeatable set,
62
+ // we can sum the numbers elements in the entries
63
+ const nextElementName = nestedElementNames[index + 1];
64
+ let isNestedRepeatableSet = false;
65
+ const nestedElementValues = elementValue.reduce((nestedElementValues, entry) => {
66
+ if (entry) {
67
+ const nextElementValue = entry[nextElementName];
68
+ if (Array.isArray(nextElementValue)) {
69
+ if (nextElementValue.length) {
70
+ nestedElementValues.push(...nextElementValue);
71
+ isNestedRepeatableSet = true;
72
+ }
73
+ }
74
+ else {
75
+ nestedElementValues.push(nextElementValue);
76
+ }
77
+ }
78
+ return nestedElementValues;
79
+ }, []);
80
+ // If the nested element values are all arrays, we can pass them on to the next iteration
81
+ if (isNestedRepeatableSet) {
82
+ return nestedElementValues;
83
+ }
84
+ return nestedElementValues.reduce((total, nestedElementValue) => {
85
+ if (Number.isNaN(total)) {
86
+ return NaN;
87
+ }
88
+ const value = parseFloat(nestedElementValue);
89
+ if (Number.isNaN(value)) {
90
+ return NaN;
91
+ }
92
+ return total + value;
93
+ }, 0);
94
+ }
95
+ // "compliance" form element has an object value with a "value" property.
96
+ if (isObjectWithValue(elementValue) &&
97
+ typeof elementValue.value === 'string') {
98
+ return parseFloat(elementValue.value);
99
+ }
100
+ // We did not find a number value from the known elements,
101
+ // we will assume we are at the end of the line.
102
+ return NaN;
103
+ }, defaultAccumulator);
104
+ });
105
+ }, []);
106
+ const { calculation, hasError } = React.useMemo(() => {
107
+ const exprParser = new ExpressionParser();
108
+ exprParser.registerFunction('ROUND', (value, precision) => {
109
+ if (!Number.isNaN(value) && Number.isFinite(value)) {
110
+ return parseFloat(value.toFixed(precision));
111
+ }
112
+ return null;
113
+ });
114
+ exprParser.registerFunction('ISNULL', (value, defaultValue) => {
115
+ if (isUnenteredValue(value)) {
116
+ return defaultValue || 0;
117
+ }
118
+ return value;
119
+ });
120
+ try {
121
+ if (!element.calculation)
122
+ throw new Error('Element has no calculation.');
123
+ let matches;
124
+ const elementNames = [];
125
+ const re = /({ELEMENT:)([^}]+)(})/g;
126
+ while ((matches = re.exec(element.calculation)) !== null) {
127
+ if (matches) {
128
+ elementNames.push(matches[2]);
129
+ }
130
+ }
131
+ const code = elementNames.reduce((code, elementName, index) => {
132
+ const regex = new RegExp(escapeString(`{ELEMENT:${elementName}}`), 'g');
133
+ const replacement = `a${index}`;
134
+ registerProperty(exprParser, {
135
+ replacement,
136
+ nestedElementNames: elementName.split('|'),
137
+ });
138
+ return code.replace(regex, replacement);
139
+ }, element.calculation || '');
140
+ return {
141
+ calculation: exprParser.parse(code.trim()),
142
+ hasError: false,
143
+ };
144
+ }
145
+ catch (e) {
146
+ console.warn('Error while setting up parsing for calculation element', element, e);
147
+ Sentry.captureException(e);
148
+ return {
149
+ calculation: null,
150
+ hasError: true,
151
+ };
152
+ }
153
+ }, [element, registerProperty]);
154
+ // MODEL LISTENER
155
+ React.useEffect(() => {
156
+ if (!calculation)
157
+ return;
158
+ const newValue = calculation.eval(formSubmissionModel);
159
+ if (value === newValue || (value === undefined && isNaN(newValue))) {
160
+ return;
161
+ }
162
+ if (!isNaN(newValue)) {
163
+ onChange(element, newValue);
164
+ }
165
+ else {
166
+ onChange(element, undefined);
167
+ }
168
+ }, [calculation, element, formSubmissionModel, onChange, value]);
169
+ return (React.createElement("div", { className: "cypress-calculation-element" },
170
+ React.createElement("div", { className: "ob-form__element ob-calculation" },
171
+ React.createElement("div", { className: "cypress-calculation-result ob-calculation__content ql-editor", dangerouslySetInnerHTML: { __html: htmlValue } }),
172
+ hasError && (React.createElement("div", { className: "notification cypress-calculation-is-invalid", role: "alert" },
173
+ React.createElement("div", { className: "columns is-vcentered" },
174
+ React.createElement("div", { className: "column is-narrow" },
175
+ React.createElement("i", { className: "material-icons has-text-warning" }, "error")),
176
+ React.createElement("div", { className: "column" },
177
+ React.createElement("p", null, "There is an error in the calculation for this element."))))))));
178
+ }
179
+ export default React.memo(FormElementCalculation);
180
180
  //# sourceMappingURL=FormElementCalculation.js.map
@@ -1,15 +1,15 @@
1
- import * as React from 'react';
2
- import { FormTypes } from '@oneblink/types';
3
- import { FormElementBinaryStorageValue } from '../types/attachments';
4
- import { FormElementValueChangeHandler } from '../types/form';
5
- declare type Props = {
6
- id: string;
7
- element: FormTypes.CameraElement;
8
- value: FormElementBinaryStorageValue;
9
- onChange: FormElementValueChangeHandler<FormElementBinaryStorageValue>;
10
- displayValidationMessage: boolean;
11
- validationMessage: string | undefined;
12
- };
13
- declare function FormElementCamera({ id, element, value, onChange, validationMessage, displayValidationMessage, }: Props): JSX.Element;
14
- declare const _default: React.MemoExoticComponent<typeof FormElementCamera>;
15
- export default _default;
1
+ import * as React from 'react';
2
+ import { FormTypes } from '@oneblink/types';
3
+ import { FormElementBinaryStorageValue } from '../types/attachments';
4
+ import { FormElementValueChangeHandler } from '../types/form';
5
+ declare type Props = {
6
+ id: string;
7
+ element: FormTypes.CameraElement;
8
+ value: FormElementBinaryStorageValue;
9
+ onChange: FormElementValueChangeHandler<FormElementBinaryStorageValue>;
10
+ displayValidationMessage: boolean;
11
+ validationMessage: string | undefined;
12
+ };
13
+ declare function FormElementCamera({ id, element, value, onChange, validationMessage, displayValidationMessage, }: Props): JSX.Element;
14
+ declare const _default: React.MemoExoticComponent<typeof FormElementCamera>;
15
+ export default _default;