@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,495 +1,495 @@
1
- import { localisationService } from '@oneblink/apps';
2
- import { prepareNewAttachment } from './attachments';
3
- import { dataUriToBlobSync } from './blob-utils';
4
- import generateCivicaNameRecordElements from './generateCivicaNameRecordElements';
5
- function parseAttachment(value) {
6
- return parseUnknownAsRecord(value, (record) => {
7
- // Check for attachments that have not been uploaded yet
8
- if (record.data instanceof Blob &&
9
- typeof record.type === 'string' &&
10
- typeof record._id === 'string' &&
11
- typeof record.fileName === 'string' &&
12
- typeof record.isPrivate === 'boolean') {
13
- return record;
14
- }
15
- // Check for attachments that have been uploaded already
16
- if (typeof record.id === 'string' &&
17
- typeof record.fileName === 'string' &&
18
- typeof record.url === 'string' &&
19
- typeof record.contentType === 'string' &&
20
- typeof record.isPrivate === 'boolean' &&
21
- parseUnknownAsRecord(record.s3, (s3) => typeof s3.bucket === 'string' &&
22
- typeof s3.key === 'string' &&
23
- typeof s3.region === 'string')) {
24
- return record;
25
- }
26
- });
27
- }
28
- function parseFile(element, value) {
29
- return parseUnknownAsRecord(value, (record) => {
30
- if (record.type === undefined &&
31
- typeof record.fileName === 'string' &&
32
- typeof record.data === 'string') {
33
- const blob = dataUriToBlobSync(record.data);
34
- return prepareNewAttachment(blob, record.fileName, element);
35
- }
36
- return parseAttachment(record);
37
- });
38
- }
39
- function parseFiles(element, value) {
40
- if (Array.isArray(value)) {
41
- const files = value.reduce((files, v) => {
42
- const file = parseFile(element, v);
43
- if (file) {
44
- files.push(file);
45
- }
46
- return files;
47
- }, []);
48
- if (files.length) {
49
- return files;
50
- }
51
- }
52
- }
53
- export const generateDate = ({ daysOffset, value, dateOnly, }) => {
54
- if (value === 'NOW') {
55
- const date = new Date();
56
- if (daysOffset === undefined) {
57
- return date;
58
- }
59
- else {
60
- date.setDate(date.getDate() + daysOffset);
61
- return date;
62
- }
63
- }
64
- else {
65
- const timestamp = Date.parse(value);
66
- if (!Number.isNaN(timestamp)) {
67
- const date = new Date(timestamp);
68
- if (dateOnly) {
69
- const offset = date.getTimezoneOffset();
70
- return new Date(date.getTime() + offset * 60000);
71
- }
72
- return date;
73
- }
74
- }
75
- };
76
- export function parseDateValue({ dateOnly, daysOffset, value, }) {
77
- if (typeof value !== 'string') {
78
- return;
79
- }
80
- const date = generateDate({ daysOffset, value, dateOnly });
81
- if (!date) {
82
- return;
83
- }
84
- if (dateOnly) {
85
- const { year, month, day } = new Intl.DateTimeFormat(localisationService.getLocale(), {
86
- year: 'numeric',
87
- month: '2-digit',
88
- day: '2-digit',
89
- })
90
- .formatToParts(date)
91
- .reduce((memo, { type, value }) => ({
92
- ...memo,
93
- [type]: value,
94
- }), {
95
- year: '',
96
- month: '',
97
- day: '',
98
- });
99
- // This is a workaround for an iOS 15 bug where the year was being returned as 2 digits: https://bugs.webkit.org/show_bug.cgi?id=230827
100
- const fixedYear = year.length === 2 ? date.getFullYear() : year;
101
- return `${fixedYear}-${month}-${day}`;
102
- }
103
- else {
104
- return date.toISOString();
105
- }
106
- }
107
- function parseStringValue(value) {
108
- if (typeof value === 'string' && !!value) {
109
- return value;
110
- }
111
- return;
112
- }
113
- function parseNumberValue(value) {
114
- if (typeof value === 'number' && !isNaN(value)) {
115
- return value;
116
- }
117
- return;
118
- }
119
- function parseStringArrayValue(value) {
120
- if (Array.isArray(value)) {
121
- return value.filter((val) => typeof val === 'string');
122
- }
123
- return;
124
- }
125
- function parseUnknownAsRecord(value, validate) {
126
- if (typeof value === 'object' && value !== null) {
127
- return validate(value);
128
- }
129
- }
130
- function parseFormSubmissionModel(elements, value) {
131
- return parseUnknownAsRecord(value, (record) => {
132
- return elements.reduce((model, element) => {
133
- switch (element.type) {
134
- case 'section':
135
- case 'page': {
136
- const partialModel = parseFormSubmissionModel(element.elements, model);
137
- Object.assign(model, partialModel);
138
- break;
139
- }
140
- default: {
141
- model[element.name] = parsePreFillData(element, record[element.name]);
142
- }
143
- }
144
- return model;
145
- }, record);
146
- });
147
- }
148
- function parsePreFillData(element, value) {
149
- switch (element.type) {
150
- // If a form element is pre-filled with the "legacy" storage type
151
- // format (base64), the data should be uploaded to S3 and set in the
152
- // submission data. This is to cater for instances of pre-fill data
153
- // being created before the "legacy" storage type was removed.
154
- case 'camera':
155
- case 'draw': {
156
- if (!value) {
157
- break;
158
- }
159
- else if (typeof value === 'string') {
160
- const blob = dataUriToBlobSync(value);
161
- return prepareNewAttachment(blob, 'file', element);
162
- }
163
- else {
164
- return parseAttachment(value);
165
- }
166
- }
167
- case 'files': {
168
- return parseFiles(element, value);
169
- }
170
- case 'compliance': {
171
- return parseUnknownAsRecord(value, (record) => {
172
- const selectedValue = parseStringValue(record.value);
173
- const notes = parseStringValue(record.notes);
174
- if (selectedValue) {
175
- return {
176
- value: selectedValue,
177
- notes,
178
- files: parseFiles(element, record.files),
179
- };
180
- }
181
- });
182
- }
183
- case 'time':
184
- case 'datetime':
185
- case 'date': {
186
- return parseDateValue({
187
- dateOnly: element.type === 'date',
188
- daysOffset: undefined,
189
- value,
190
- });
191
- }
192
- case 'bsb': {
193
- const text = parseStringValue(value);
194
- if (text === null || text === void 0 ? void 0 : text.match(/\d{3}-\d{3}/)) {
195
- return text;
196
- }
197
- return;
198
- }
199
- case 'text':
200
- case 'barcodeScanner':
201
- case 'email':
202
- case 'telephone':
203
- case 'textarea':
204
- case 'radio':
205
- case 'autocomplete': {
206
- return parseStringValue(value);
207
- }
208
- case 'select': {
209
- if (element.multi) {
210
- return parseStringArrayValue(value);
211
- }
212
- else {
213
- return parseStringValue(value);
214
- }
215
- }
216
- case 'checkboxes': {
217
- return parseStringArrayValue(value);
218
- }
219
- case 'calculation':
220
- case 'number': {
221
- return parseNumberValue(value);
222
- }
223
- case 'boolean': {
224
- return typeof value === 'boolean' ? value : false;
225
- }
226
- case 'abn': {
227
- return parseUnknownAsRecord(value, (record) => {
228
- const hasABN = parseUnknownAsRecord(record.ABN, (ABN) => {
229
- if (Array.isArray(ABN)) {
230
- return ABN.some((abn) => !!parseStringValue(abn.identifierValue));
231
- }
232
- if (parseStringValue(ABN.identifierValue)) {
233
- return true;
234
- }
235
- });
236
- if (!hasABN) {
237
- return;
238
- }
239
- const hasMainName = parseUnknownAsRecord(record.mainName, (mainName) => {
240
- if (parseStringValue(mainName.organisationName)) {
241
- return true;
242
- }
243
- });
244
- if (hasMainName) {
245
- return record;
246
- }
247
- const hasLegalName = parseUnknownAsRecord(record.legalName, (legalName) => {
248
- if (parseStringValue(legalName.givenName) ||
249
- parseStringValue(legalName.familyName) ||
250
- parseStringValue(legalName.otherGivenName)) {
251
- return true;
252
- }
253
- });
254
- if (hasLegalName) {
255
- return record;
256
- }
257
- const hasMainTradingName = parseUnknownAsRecord(record.mainTradingName, (mainTradingName) => {
258
- if (parseStringValue(mainTradingName.organisationName)) {
259
- return true;
260
- }
261
- });
262
- if (hasMainTradingName) {
263
- return record;
264
- }
265
- });
266
- }
267
- case 'pointAddress':
268
- case 'geoscapeAddress': {
269
- return parseUnknownAsRecord(value, (record) => {
270
- if (parseStringValue(record.addressId)) {
271
- return record;
272
- }
273
- });
274
- }
275
- case 'freshdeskDependentField': {
276
- return parseUnknownAsRecord(value, (record) => {
277
- if (parseStringValue(record.category) &&
278
- parseStringValue(record.subCategory) &&
279
- parseStringValue(record.item)) {
280
- return record;
281
- }
282
- });
283
- }
284
- case 'civicaNameRecord': {
285
- return parseUnknownAsRecord(value, (record) => {
286
- if (parseStringValue(record.title) &&
287
- parseStringValue(record.familyName) &&
288
- Array.isArray(record.streetAddress)) {
289
- return record;
290
- }
291
- });
292
- }
293
- case 'civicaStreetName': {
294
- return parseUnknownAsRecord(value, (record) => {
295
- if (parseStringValue(record.formattedAccount) &&
296
- parseStringValue(record.formattedStreet)) {
297
- return record;
298
- }
299
- });
300
- }
301
- case 'form': {
302
- return parseFormSubmissionModel(element.elements || [], value);
303
- }
304
- case 'repeatableSet': {
305
- if (Array.isArray(element.elements) && Array.isArray(value)) {
306
- return value.reduce((entries, v) => {
307
- const entry = parseFormSubmissionModel(element.elements, v);
308
- if (entry) {
309
- entries.push(entry);
310
- }
311
- return entries;
312
- }, []);
313
- }
314
- break;
315
- }
316
- case 'location': {
317
- return parseUnknownAsRecord(value, (record) => {
318
- const latitude = parseNumberValue(record.latitude);
319
- const longitude = parseNumberValue(record.longitude);
320
- if (latitude !== undefined && longitude !== undefined) {
321
- return {
322
- latitude,
323
- longitude,
324
- zoom: parseNumberValue(record.zoom),
325
- };
326
- }
327
- });
328
- }
329
- case 'image':
330
- case 'html':
331
- case 'summary':
332
- case 'captcha':
333
- case 'heading':
334
- case 'infoPage':
335
- case 'page':
336
- case 'section': {
337
- return;
338
- }
339
- default: {
340
- console.warn('Invalid element type used in prefill data', element);
341
- }
342
- }
343
- }
344
- export default function generateDefaultData(elements, preFillData) {
345
- return elements.reduce((m, el) => {
346
- if (el.type !== 'page' && el.type !== 'section' && el.name in m) {
347
- m[el.name] = parsePreFillData(el, m[el.name]);
348
- return m;
349
- }
350
- switch (el.type) {
351
- case 'checkboxes':
352
- case 'select':
353
- case 'autocomplete':
354
- case 'radio':
355
- case 'compliance': {
356
- const dv = getOptionsDefaultValue(el);
357
- if (dv) {
358
- if (el.type === 'compliance' && typeof dv === 'string') {
359
- m[el.name] = {
360
- value: dv,
361
- };
362
- }
363
- else {
364
- m[el.name] = dv;
365
- }
366
- }
367
- break;
368
- }
369
- case 'number': {
370
- if (typeof el.defaultValue === 'number') {
371
- m[el.name] = el.defaultValue;
372
- }
373
- else if (el.isSlider) {
374
- m[el.name] = el.minNumber;
375
- }
376
- else {
377
- m[el.name] = undefined;
378
- }
379
- break;
380
- }
381
- case 'section':
382
- case 'page': {
383
- if (Array.isArray(el.elements)) {
384
- Object.assign(m, generateDefaultData(el.elements, m));
385
- }
386
- break;
387
- }
388
- case 'civicaNameRecord': {
389
- const nestedElements = generateCivicaNameRecordElements(el, []);
390
- m[el.name] = generateDefaultData(nestedElements, { ...el.defaultValue });
391
- break;
392
- }
393
- case 'form': {
394
- if (Array.isArray(el.elements)) {
395
- m[el.name] = generateDefaultData(el.elements, {});
396
- }
397
- break;
398
- }
399
- case 'repeatableSet': {
400
- if (Array.isArray(el.elements) &&
401
- typeof el.minSetEntries === 'number') {
402
- const minSetEntries = el.minSetEntries;
403
- // add min number of entries by default
404
- const entries = [];
405
- for (let index = 0; index < minSetEntries; index++) {
406
- const entry = generateDefaultData(el.elements, {});
407
- entries.push(entry);
408
- }
409
- m[el.name] = entries;
410
- }
411
- break;
412
- }
413
- case 'date':
414
- case 'datetime':
415
- case 'time': {
416
- if (el.defaultValue) {
417
- m[el.name] = parseDateValue({
418
- dateOnly: el.type === 'date',
419
- daysOffset: el.defaultValueDaysOffset,
420
- value: el.defaultValue,
421
- });
422
- }
423
- break;
424
- }
425
- case 'camera':
426
- case 'draw':
427
- case 'files': {
428
- m[el.name] = parsePreFillData(el, el.defaultValue);
429
- break;
430
- }
431
- case 'freshdeskDependentField':
432
- case 'geoscapeAddress':
433
- case 'pointAddress':
434
- case 'civicaStreetName':
435
- case 'abn':
436
- case 'bsb':
437
- case 'text':
438
- case 'barcodeScanner':
439
- case 'email':
440
- case 'telephone':
441
- case 'textarea':
442
- case 'location': {
443
- if (el.defaultValue) {
444
- m[el.name] = el.defaultValue;
445
- }
446
- break;
447
- }
448
- case 'boolean': {
449
- m[el.name] = el.defaultValue || false;
450
- break;
451
- }
452
- case 'captcha':
453
- case 'heading':
454
- case 'html':
455
- case 'image':
456
- case 'infoPage':
457
- case 'calculation':
458
- case 'summary':
459
- break;
460
- default: {
461
- console.warn('Default value is not supported for element type', el);
462
- }
463
- }
464
- return m;
465
- }, Object.assign({}, preFillData));
466
- }
467
- const getOptionsDefaultValue = (el) => {
468
- if (!el.defaultValue) {
469
- return;
470
- }
471
- // Cater for dynamic options
472
- if (el.optionsType === 'DYNAMIC' || el.optionsType === 'FRESHDESK_FIELD') {
473
- return el.defaultValue;
474
- }
475
- // Cater for multi-select and checkboxes
476
- else if ((el.type === 'select' && el.multi) || el.type === 'checkboxes') {
477
- if (Array.isArray(el.defaultValue) && el.defaultValue.length) {
478
- return el.defaultValue.reduce((optionValues, optionId) => {
479
- const option = (el.options || []).find((option) => option.id === optionId);
480
- if (option) {
481
- optionValues.push(option.value);
482
- }
483
- return optionValues;
484
- }, []);
485
- }
486
- }
487
- else {
488
- const option = (el.options || []).find((option) => option.id === el.defaultValue);
489
- if (option) {
490
- return option.value;
491
- }
492
- }
493
- return;
494
- };
1
+ import { localisationService } from '@oneblink/apps';
2
+ import { prepareNewAttachment } from './attachments';
3
+ import { dataUriToBlobSync } from './blob-utils';
4
+ import generateCivicaNameRecordElements from './generateCivicaNameRecordElements';
5
+ function parseAttachment(value) {
6
+ return parseUnknownAsRecord(value, (record) => {
7
+ // Check for attachments that have not been uploaded yet
8
+ if (record.data instanceof Blob &&
9
+ typeof record.type === 'string' &&
10
+ typeof record._id === 'string' &&
11
+ typeof record.fileName === 'string' &&
12
+ typeof record.isPrivate === 'boolean') {
13
+ return record;
14
+ }
15
+ // Check for attachments that have been uploaded already
16
+ if (typeof record.id === 'string' &&
17
+ typeof record.fileName === 'string' &&
18
+ typeof record.url === 'string' &&
19
+ typeof record.contentType === 'string' &&
20
+ typeof record.isPrivate === 'boolean' &&
21
+ parseUnknownAsRecord(record.s3, (s3) => typeof s3.bucket === 'string' &&
22
+ typeof s3.key === 'string' &&
23
+ typeof s3.region === 'string')) {
24
+ return record;
25
+ }
26
+ });
27
+ }
28
+ function parseFile(element, value) {
29
+ return parseUnknownAsRecord(value, (record) => {
30
+ if (record.type === undefined &&
31
+ typeof record.fileName === 'string' &&
32
+ typeof record.data === 'string') {
33
+ const blob = dataUriToBlobSync(record.data);
34
+ return prepareNewAttachment(blob, record.fileName, element);
35
+ }
36
+ return parseAttachment(record);
37
+ });
38
+ }
39
+ function parseFiles(element, value) {
40
+ if (Array.isArray(value)) {
41
+ const files = value.reduce((files, v) => {
42
+ const file = parseFile(element, v);
43
+ if (file) {
44
+ files.push(file);
45
+ }
46
+ return files;
47
+ }, []);
48
+ if (files.length) {
49
+ return files;
50
+ }
51
+ }
52
+ }
53
+ export const generateDate = ({ daysOffset, value, dateOnly, }) => {
54
+ if (value === 'NOW') {
55
+ const date = new Date();
56
+ if (daysOffset === undefined) {
57
+ return date;
58
+ }
59
+ else {
60
+ date.setDate(date.getDate() + daysOffset);
61
+ return date;
62
+ }
63
+ }
64
+ else {
65
+ const timestamp = Date.parse(value);
66
+ if (!Number.isNaN(timestamp)) {
67
+ const date = new Date(timestamp);
68
+ if (dateOnly) {
69
+ const offset = date.getTimezoneOffset();
70
+ return new Date(date.getTime() + offset * 60000);
71
+ }
72
+ return date;
73
+ }
74
+ }
75
+ };
76
+ export function parseDateValue({ dateOnly, daysOffset, value, }) {
77
+ if (typeof value !== 'string') {
78
+ return;
79
+ }
80
+ const date = generateDate({ daysOffset, value, dateOnly });
81
+ if (!date) {
82
+ return;
83
+ }
84
+ if (dateOnly) {
85
+ const { year, month, day } = new Intl.DateTimeFormat(localisationService.getLocale(), {
86
+ year: 'numeric',
87
+ month: '2-digit',
88
+ day: '2-digit',
89
+ })
90
+ .formatToParts(date)
91
+ .reduce((memo, { type, value }) => ({
92
+ ...memo,
93
+ [type]: value,
94
+ }), {
95
+ year: '',
96
+ month: '',
97
+ day: '',
98
+ });
99
+ // This is a workaround for an iOS 15 bug where the year was being returned as 2 digits: https://bugs.webkit.org/show_bug.cgi?id=230827
100
+ const fixedYear = year.length === 2 ? date.getFullYear() : year;
101
+ return `${fixedYear}-${month}-${day}`;
102
+ }
103
+ else {
104
+ return date.toISOString();
105
+ }
106
+ }
107
+ function parseStringValue(value) {
108
+ if (typeof value === 'string' && !!value) {
109
+ return value;
110
+ }
111
+ return;
112
+ }
113
+ function parseNumberValue(value) {
114
+ if (typeof value === 'number' && !isNaN(value)) {
115
+ return value;
116
+ }
117
+ return;
118
+ }
119
+ function parseStringArrayValue(value) {
120
+ if (Array.isArray(value)) {
121
+ return value.filter((val) => typeof val === 'string');
122
+ }
123
+ return;
124
+ }
125
+ function parseUnknownAsRecord(value, validate) {
126
+ if (typeof value === 'object' && value !== null) {
127
+ return validate(value);
128
+ }
129
+ }
130
+ function parseFormSubmissionModel(elements, value) {
131
+ return parseUnknownAsRecord(value, (record) => {
132
+ return elements.reduce((model, element) => {
133
+ switch (element.type) {
134
+ case 'section':
135
+ case 'page': {
136
+ const partialModel = parseFormSubmissionModel(element.elements, model);
137
+ Object.assign(model, partialModel);
138
+ break;
139
+ }
140
+ default: {
141
+ model[element.name] = parsePreFillData(element, record[element.name]);
142
+ }
143
+ }
144
+ return model;
145
+ }, record);
146
+ });
147
+ }
148
+ function parsePreFillData(element, value) {
149
+ switch (element.type) {
150
+ // If a form element is pre-filled with the "legacy" storage type
151
+ // format (base64), the data should be uploaded to S3 and set in the
152
+ // submission data. This is to cater for instances of pre-fill data
153
+ // being created before the "legacy" storage type was removed.
154
+ case 'camera':
155
+ case 'draw': {
156
+ if (!value) {
157
+ break;
158
+ }
159
+ else if (typeof value === 'string') {
160
+ const blob = dataUriToBlobSync(value);
161
+ return prepareNewAttachment(blob, 'file', element);
162
+ }
163
+ else {
164
+ return parseAttachment(value);
165
+ }
166
+ }
167
+ case 'files': {
168
+ return parseFiles(element, value);
169
+ }
170
+ case 'compliance': {
171
+ return parseUnknownAsRecord(value, (record) => {
172
+ const selectedValue = parseStringValue(record.value);
173
+ const notes = parseStringValue(record.notes);
174
+ if (selectedValue) {
175
+ return {
176
+ value: selectedValue,
177
+ notes,
178
+ files: parseFiles(element, record.files),
179
+ };
180
+ }
181
+ });
182
+ }
183
+ case 'time':
184
+ case 'datetime':
185
+ case 'date': {
186
+ return parseDateValue({
187
+ dateOnly: element.type === 'date',
188
+ daysOffset: undefined,
189
+ value,
190
+ });
191
+ }
192
+ case 'bsb': {
193
+ const text = parseStringValue(value);
194
+ if (text === null || text === void 0 ? void 0 : text.match(/\d{3}-\d{3}/)) {
195
+ return text;
196
+ }
197
+ return;
198
+ }
199
+ case 'text':
200
+ case 'barcodeScanner':
201
+ case 'email':
202
+ case 'telephone':
203
+ case 'textarea':
204
+ case 'radio':
205
+ case 'autocomplete': {
206
+ return parseStringValue(value);
207
+ }
208
+ case 'select': {
209
+ if (element.multi) {
210
+ return parseStringArrayValue(value);
211
+ }
212
+ else {
213
+ return parseStringValue(value);
214
+ }
215
+ }
216
+ case 'checkboxes': {
217
+ return parseStringArrayValue(value);
218
+ }
219
+ case 'calculation':
220
+ case 'number': {
221
+ return parseNumberValue(value);
222
+ }
223
+ case 'boolean': {
224
+ return typeof value === 'boolean' ? value : false;
225
+ }
226
+ case 'abn': {
227
+ return parseUnknownAsRecord(value, (record) => {
228
+ const hasABN = parseUnknownAsRecord(record.ABN, (ABN) => {
229
+ if (Array.isArray(ABN)) {
230
+ return ABN.some((abn) => !!parseStringValue(abn.identifierValue));
231
+ }
232
+ if (parseStringValue(ABN.identifierValue)) {
233
+ return true;
234
+ }
235
+ });
236
+ if (!hasABN) {
237
+ return;
238
+ }
239
+ const hasMainName = parseUnknownAsRecord(record.mainName, (mainName) => {
240
+ if (parseStringValue(mainName.organisationName)) {
241
+ return true;
242
+ }
243
+ });
244
+ if (hasMainName) {
245
+ return record;
246
+ }
247
+ const hasLegalName = parseUnknownAsRecord(record.legalName, (legalName) => {
248
+ if (parseStringValue(legalName.givenName) ||
249
+ parseStringValue(legalName.familyName) ||
250
+ parseStringValue(legalName.otherGivenName)) {
251
+ return true;
252
+ }
253
+ });
254
+ if (hasLegalName) {
255
+ return record;
256
+ }
257
+ const hasMainTradingName = parseUnknownAsRecord(record.mainTradingName, (mainTradingName) => {
258
+ if (parseStringValue(mainTradingName.organisationName)) {
259
+ return true;
260
+ }
261
+ });
262
+ if (hasMainTradingName) {
263
+ return record;
264
+ }
265
+ });
266
+ }
267
+ case 'pointAddress':
268
+ case 'geoscapeAddress': {
269
+ return parseUnknownAsRecord(value, (record) => {
270
+ if (parseStringValue(record.addressId)) {
271
+ return record;
272
+ }
273
+ });
274
+ }
275
+ case 'freshdeskDependentField': {
276
+ return parseUnknownAsRecord(value, (record) => {
277
+ if (parseStringValue(record.category) &&
278
+ parseStringValue(record.subCategory) &&
279
+ parseStringValue(record.item)) {
280
+ return record;
281
+ }
282
+ });
283
+ }
284
+ case 'civicaNameRecord': {
285
+ return parseUnknownAsRecord(value, (record) => {
286
+ if (parseStringValue(record.title) &&
287
+ parseStringValue(record.familyName) &&
288
+ Array.isArray(record.streetAddress)) {
289
+ return record;
290
+ }
291
+ });
292
+ }
293
+ case 'civicaStreetName': {
294
+ return parseUnknownAsRecord(value, (record) => {
295
+ if (parseStringValue(record.formattedAccount) &&
296
+ parseStringValue(record.formattedStreet)) {
297
+ return record;
298
+ }
299
+ });
300
+ }
301
+ case 'form': {
302
+ return parseFormSubmissionModel(element.elements || [], value);
303
+ }
304
+ case 'repeatableSet': {
305
+ if (Array.isArray(element.elements) && Array.isArray(value)) {
306
+ return value.reduce((entries, v) => {
307
+ const entry = parseFormSubmissionModel(element.elements, v);
308
+ if (entry) {
309
+ entries.push(entry);
310
+ }
311
+ return entries;
312
+ }, []);
313
+ }
314
+ break;
315
+ }
316
+ case 'location': {
317
+ return parseUnknownAsRecord(value, (record) => {
318
+ const latitude = parseNumberValue(record.latitude);
319
+ const longitude = parseNumberValue(record.longitude);
320
+ if (latitude !== undefined && longitude !== undefined) {
321
+ return {
322
+ latitude,
323
+ longitude,
324
+ zoom: parseNumberValue(record.zoom),
325
+ };
326
+ }
327
+ });
328
+ }
329
+ case 'image':
330
+ case 'html':
331
+ case 'summary':
332
+ case 'captcha':
333
+ case 'heading':
334
+ case 'infoPage':
335
+ case 'page':
336
+ case 'section': {
337
+ return;
338
+ }
339
+ default: {
340
+ console.warn('Invalid element type used in prefill data', element);
341
+ }
342
+ }
343
+ }
344
+ export default function generateDefaultData(elements, preFillData) {
345
+ return elements.reduce((m, el) => {
346
+ if (el.type !== 'page' && el.type !== 'section' && el.name in m) {
347
+ m[el.name] = parsePreFillData(el, m[el.name]);
348
+ return m;
349
+ }
350
+ switch (el.type) {
351
+ case 'checkboxes':
352
+ case 'select':
353
+ case 'autocomplete':
354
+ case 'radio':
355
+ case 'compliance': {
356
+ const dv = getOptionsDefaultValue(el);
357
+ if (dv) {
358
+ if (el.type === 'compliance' && typeof dv === 'string') {
359
+ m[el.name] = {
360
+ value: dv,
361
+ };
362
+ }
363
+ else {
364
+ m[el.name] = dv;
365
+ }
366
+ }
367
+ break;
368
+ }
369
+ case 'number': {
370
+ if (typeof el.defaultValue === 'number') {
371
+ m[el.name] = el.defaultValue;
372
+ }
373
+ else if (el.isSlider) {
374
+ m[el.name] = el.minNumber;
375
+ }
376
+ else {
377
+ m[el.name] = undefined;
378
+ }
379
+ break;
380
+ }
381
+ case 'section':
382
+ case 'page': {
383
+ if (Array.isArray(el.elements)) {
384
+ Object.assign(m, generateDefaultData(el.elements, m));
385
+ }
386
+ break;
387
+ }
388
+ case 'civicaNameRecord': {
389
+ const nestedElements = generateCivicaNameRecordElements(el, []);
390
+ m[el.name] = generateDefaultData(nestedElements, { ...el.defaultValue });
391
+ break;
392
+ }
393
+ case 'form': {
394
+ if (Array.isArray(el.elements)) {
395
+ m[el.name] = generateDefaultData(el.elements, {});
396
+ }
397
+ break;
398
+ }
399
+ case 'repeatableSet': {
400
+ if (Array.isArray(el.elements) &&
401
+ typeof el.minSetEntries === 'number') {
402
+ const minSetEntries = el.minSetEntries;
403
+ // add min number of entries by default
404
+ const entries = [];
405
+ for (let index = 0; index < minSetEntries; index++) {
406
+ const entry = generateDefaultData(el.elements, {});
407
+ entries.push(entry);
408
+ }
409
+ m[el.name] = entries;
410
+ }
411
+ break;
412
+ }
413
+ case 'date':
414
+ case 'datetime':
415
+ case 'time': {
416
+ if (el.defaultValue) {
417
+ m[el.name] = parseDateValue({
418
+ dateOnly: el.type === 'date',
419
+ daysOffset: el.defaultValueDaysOffset,
420
+ value: el.defaultValue,
421
+ });
422
+ }
423
+ break;
424
+ }
425
+ case 'camera':
426
+ case 'draw':
427
+ case 'files': {
428
+ m[el.name] = parsePreFillData(el, el.defaultValue);
429
+ break;
430
+ }
431
+ case 'freshdeskDependentField':
432
+ case 'geoscapeAddress':
433
+ case 'pointAddress':
434
+ case 'civicaStreetName':
435
+ case 'abn':
436
+ case 'bsb':
437
+ case 'text':
438
+ case 'barcodeScanner':
439
+ case 'email':
440
+ case 'telephone':
441
+ case 'textarea':
442
+ case 'location': {
443
+ if (el.defaultValue) {
444
+ m[el.name] = el.defaultValue;
445
+ }
446
+ break;
447
+ }
448
+ case 'boolean': {
449
+ m[el.name] = el.defaultValue || false;
450
+ break;
451
+ }
452
+ case 'captcha':
453
+ case 'heading':
454
+ case 'html':
455
+ case 'image':
456
+ case 'infoPage':
457
+ case 'calculation':
458
+ case 'summary':
459
+ break;
460
+ default: {
461
+ console.warn('Default value is not supported for element type', el);
462
+ }
463
+ }
464
+ return m;
465
+ }, Object.assign({}, preFillData));
466
+ }
467
+ const getOptionsDefaultValue = (el) => {
468
+ if (!el.defaultValue) {
469
+ return;
470
+ }
471
+ // Cater for dynamic options
472
+ if (el.optionsType === 'DYNAMIC' || el.optionsType === 'FRESHDESK_FIELD') {
473
+ return el.defaultValue;
474
+ }
475
+ // Cater for multi-select and checkboxes
476
+ else if ((el.type === 'select' && el.multi) || el.type === 'checkboxes') {
477
+ if (Array.isArray(el.defaultValue) && el.defaultValue.length) {
478
+ return el.defaultValue.reduce((optionValues, optionId) => {
479
+ const option = (el.options || []).find((option) => option.id === optionId);
480
+ if (option) {
481
+ optionValues.push(option.value);
482
+ }
483
+ return optionValues;
484
+ }, []);
485
+ }
486
+ }
487
+ else {
488
+ const option = (el.options || []).find((option) => option.id === el.defaultValue);
489
+ if (option) {
490
+ return option.value;
491
+ }
492
+ }
493
+ return;
494
+ };
495
495
  //# sourceMappingURL=generate-default-data.js.map