@oneblink/apps-react 2.3.0-beta.1 → 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 (459) 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 -7
  177. package/dist/components/renderer/ProgressBar.js +6 -6
  178. package/dist/components/renderer/ToggleAllCheckbox.d.ts +13 -13
  179. package/dist/components/renderer/ToggleAllCheckbox.js +26 -26
  180. package/dist/components/renderer/attachments/AttachmentStatus.d.ts +10 -10
  181. package/dist/components/renderer/attachments/AttachmentStatus.js +36 -36
  182. package/dist/components/renderer/attachments/FileCard.d.ts +19 -19
  183. package/dist/components/renderer/attachments/FileCard.js +60 -59
  184. package/dist/components/renderer/attachments/FileCard.js.map +1 -1
  185. package/dist/components/renderer/attachments/FileCardContent.d.ts +5 -5
  186. package/dist/components/renderer/attachments/FileCardContent.js +10 -10
  187. package/dist/components/renderer/attachments/Files.d.ts +14 -0
  188. package/dist/components/renderer/attachments/Files.js +27 -0
  189. package/dist/components/renderer/attachments/Files.js.map +1 -0
  190. package/dist/components/renderer/attachments/ImagePreviewUnavailable.d.ts +4 -4
  191. package/dist/components/renderer/attachments/ImagePreviewUnavailable.js +11 -11
  192. package/dist/components/renderer/attachments/ProgressBar.d.ts +8 -6
  193. package/dist/components/renderer/attachments/ProgressBar.js +33 -12
  194. package/dist/components/renderer/attachments/ProgressBar.js.map +1 -1
  195. package/dist/components/renderer/attachments/UploadingAttachment.d.ts +4 -0
  196. package/dist/components/renderer/attachments/UploadingAttachment.js +13 -0
  197. package/dist/components/renderer/attachments/UploadingAttachment.js.map +1 -0
  198. package/dist/form-elements/ComplianceButton.d.ts +10 -10
  199. package/dist/form-elements/ComplianceButton.js +11 -11
  200. package/dist/form-elements/FormElementABN.d.ts +14 -14
  201. package/dist/form-elements/FormElementABN.js +155 -155
  202. package/dist/form-elements/FormElementAutocomplete.d.ts +19 -19
  203. package/dist/form-elements/FormElementAutocomplete.js +81 -81
  204. package/dist/form-elements/FormElementBSB.d.ts +18 -18
  205. package/dist/form-elements/FormElementBSB.js +100 -100
  206. package/dist/form-elements/FormElementBarcodeScanner.d.ts +14 -14
  207. package/dist/form-elements/FormElementBarcodeScanner.js +306 -306
  208. package/dist/form-elements/FormElementBoolean.d.ts +14 -14
  209. package/dist/form-elements/FormElementBoolean.js +16 -16
  210. package/dist/form-elements/FormElementCalculation.d.ts +11 -11
  211. package/dist/form-elements/FormElementCalculation.js +179 -179
  212. package/dist/form-elements/FormElementCamera.d.ts +15 -15
  213. package/dist/form-elements/FormElementCamera.js +227 -226
  214. package/dist/form-elements/FormElementCamera.js.map +1 -1
  215. package/dist/form-elements/FormElementCaptcha.d.ts +12 -12
  216. package/dist/form-elements/FormElementCaptcha.js +14 -14
  217. package/dist/form-elements/FormElementCheckBoxes.d.ts +15 -15
  218. package/dist/form-elements/FormElementCheckBoxes.js +64 -64
  219. package/dist/form-elements/FormElementCivicaNameRecord.d.ts +8 -8
  220. package/dist/form-elements/FormElementCivicaNameRecord.js +51 -51
  221. package/dist/form-elements/FormElementCivicaStreetName.d.ts +15 -15
  222. package/dist/form-elements/FormElementCivicaStreetName.js +38 -38
  223. package/dist/form-elements/FormElementCompliance.d.ts +22 -22
  224. package/dist/form-elements/FormElementCompliance.js +129 -129
  225. package/dist/form-elements/FormElementDate.d.ts +14 -14
  226. package/dist/form-elements/FormElementDate.js +74 -74
  227. package/dist/form-elements/FormElementDateTime.d.ts +14 -14
  228. package/dist/form-elements/FormElementDateTime.js +67 -67
  229. package/dist/form-elements/FormElementEmail.d.ts +14 -14
  230. package/dist/form-elements/FormElementEmail.js +22 -22
  231. package/dist/form-elements/FormElementFile.d.ts +13 -13
  232. package/dist/form-elements/FormElementFile.js +31 -31
  233. package/dist/form-elements/FormElementFiles/FormElementFile.d.ts +13 -0
  234. package/dist/form-elements/FormElementFiles/FormElementFile.js +32 -0
  235. package/dist/form-elements/FormElementFiles/FormElementFile.js.map +1 -0
  236. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.d.ts +10 -0
  237. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js +11 -0
  238. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js.map +1 -0
  239. package/dist/form-elements/FormElementFiles/FormElementFiles.d.ts +15 -0
  240. package/dist/form-elements/FormElementFiles/FormElementFiles.js +17 -0
  241. package/dist/form-elements/FormElementFiles/FormElementFiles.js.map +1 -0
  242. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.d.ts +7 -0
  243. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js +11 -0
  244. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js.map +1 -0
  245. package/dist/form-elements/FormElementFiles/index.d.ts +17 -0
  246. package/dist/form-elements/FormElementFiles/index.js +18 -0
  247. package/dist/form-elements/FormElementFiles/index.js.map +1 -0
  248. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.d.ts +18 -0
  249. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js +61 -0
  250. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js.map +1 -0
  251. package/dist/form-elements/FormElementFiles.d.ts +15 -15
  252. package/dist/form-elements/FormElementFiles.js +42 -42
  253. package/dist/form-elements/FormElementForm.d.ts +17 -17
  254. package/dist/form-elements/FormElementForm.js +63 -63
  255. package/dist/form-elements/FormElementFreshdeskDependentField.d.ts +8 -8
  256. package/dist/form-elements/FormElementFreshdeskDependentField.js +15 -15
  257. package/dist/form-elements/FormElementGeoscapeAddress.d.ts +15 -15
  258. package/dist/form-elements/FormElementGeoscapeAddress.js +62 -62
  259. package/dist/form-elements/FormElementHTML.d.ts +8 -8
  260. package/dist/form-elements/FormElementHTML.js +15 -15
  261. package/dist/form-elements/FormElementHeading.d.ts +8 -8
  262. package/dist/form-elements/FormElementHeading.js +23 -23
  263. package/dist/form-elements/FormElementImage.d.ts +8 -8
  264. package/dist/form-elements/FormElementImage.js +6 -6
  265. package/dist/form-elements/FormElementLocation.d.ts +20 -20
  266. package/dist/form-elements/FormElementLocation.js +204 -204
  267. package/dist/form-elements/FormElementNumber.d.ts +14 -14
  268. package/dist/form-elements/FormElementNumber.js +72 -72
  269. package/dist/form-elements/FormElementPointAddress.d.ts +15 -15
  270. package/dist/form-elements/FormElementPointAddress.js +69 -69
  271. package/dist/form-elements/FormElementRadio.d.ts +15 -15
  272. package/dist/form-elements/FormElementRadio.js +41 -41
  273. package/dist/form-elements/FormElementRepeatableSet.d.ts +19 -19
  274. package/dist/form-elements/FormElementRepeatableSet.js +126 -126
  275. package/dist/form-elements/FormElementSection.d.ts +8 -8
  276. package/dist/form-elements/FormElementSection.js +69 -69
  277. package/dist/form-elements/FormElementSelect.d.ts +15 -15
  278. package/dist/form-elements/FormElementSelect.js +44 -44
  279. package/dist/form-elements/FormElementSignature.d.ts +15 -15
  280. package/dist/form-elements/FormElementSignature.js +138 -140
  281. package/dist/form-elements/FormElementSignature.js.map +1 -1
  282. package/dist/form-elements/FormElementSummary.d.ts +11 -11
  283. package/dist/form-elements/FormElementSummary.js +159 -159
  284. package/dist/form-elements/FormElementTelephone.d.ts +14 -14
  285. package/dist/form-elements/FormElementTelephone.js +22 -22
  286. package/dist/form-elements/FormElementText.d.ts +14 -14
  287. package/dist/form-elements/FormElementText.js +29 -29
  288. package/dist/form-elements/FormElementTextarea.d.ts +14 -14
  289. package/dist/form-elements/FormElementTextarea.js +30 -30
  290. package/dist/form-elements/FormElementTime.d.ts +14 -14
  291. package/dist/form-elements/FormElementTime.js +53 -53
  292. package/dist/form-elements/OptionButton.d.ts +11 -11
  293. package/dist/form-elements/OptionButton.js +9 -9
  294. package/dist/hooks/attachments/useAttachment.d.ts +12 -12
  295. package/dist/hooks/attachments/useAttachment.js +242 -242
  296. package/dist/hooks/attachments/useAttachmentBlobs.d.ts +19 -19
  297. package/dist/hooks/attachments/useAttachmentBlobs.js +23 -23
  298. package/dist/hooks/attachments/useAttachmentObjectURLs.d.ts +24 -0
  299. package/dist/hooks/attachments/useAttachmentObjectURLs.js +37 -0
  300. package/dist/hooks/attachments/useAttachmentObjectURLs.js.map +1 -0
  301. package/dist/hooks/attachments/useAttachments.d.ts +10 -10
  302. package/dist/hooks/attachments/useAttachments.js +69 -69
  303. package/dist/hooks/attachments/useLocalAttachmentBlobs.d.ts +24 -0
  304. package/dist/hooks/attachments/useLocalAttachmentBlobs.js +40 -0
  305. package/dist/hooks/attachments/useLocalAttachmentBlobs.js.map +1 -0
  306. package/dist/hooks/useAbnLookupAuthenticationGuid.d.ts +3 -3
  307. package/dist/hooks/useAbnLookupAuthenticationGuid.js +5 -5
  308. package/dist/hooks/useAuth.d.ts +15 -15
  309. package/dist/hooks/useAuth.js +42 -42
  310. package/dist/hooks/useBooleanState.d.ts +5 -5
  311. package/dist/hooks/useBooleanState.js +8 -8
  312. package/dist/hooks/useButtonsConfiguration.d.ts +45 -0
  313. package/dist/hooks/useButtonsConfiguration.js +6 -0
  314. package/dist/hooks/useButtonsConfiguration.js.map +1 -0
  315. package/dist/hooks/useCaptchaSiteKey.d.ts +3 -3
  316. package/dist/hooks/useCaptchaSiteKey.js +5 -5
  317. package/dist/hooks/useChangeEffect.d.ts +1 -0
  318. package/dist/hooks/useChangeEffect.js +14 -0
  319. package/dist/hooks/useChangeEffect.js.map +1 -0
  320. package/dist/hooks/useClickOutsideElement.d.ts +3 -3
  321. package/dist/hooks/useClickOutsideElement.js +14 -14
  322. package/dist/hooks/useConditionalLogic.d.ts +6 -6
  323. package/dist/hooks/useConditionalLogic.js +22 -22
  324. package/dist/hooks/useConditionallyShowOptionCallback.d.ts +5 -0
  325. package/dist/hooks/useConditionallyShowOptionCallback.js +20 -0
  326. package/dist/hooks/useConditionallyShowOptionCallback.js.map +1 -0
  327. package/dist/hooks/useContrastColor.d.ts +2 -2
  328. package/dist/hooks/useContrastColor.js +12 -12
  329. package/dist/hooks/useCustomValidation.d.ts +1 -0
  330. package/dist/hooks/useCustomValidation.js +9 -0
  331. package/dist/hooks/useCustomValidation.js.map +1 -0
  332. package/dist/hooks/useDynamicOptionsLoaderEffect.d.ts +7 -0
  333. package/dist/hooks/useDynamicOptionsLoaderEffect.js +45 -0
  334. package/dist/hooks/useDynamicOptionsLoaderEffect.js.map +1 -0
  335. package/dist/hooks/useDynamicOptionsLoaderState.d.ts +7 -7
  336. package/dist/hooks/useDynamicOptionsLoaderState.js +44 -44
  337. package/dist/hooks/useExecutedLookupCallback.d.ts +12 -12
  338. package/dist/hooks/useExecutedLookupCallback.js +15 -15
  339. package/dist/hooks/useFlatpickr.d.ts +10 -10
  340. package/dist/hooks/useFlatpickr.js +73 -73
  341. package/dist/hooks/useFlatpickrGuid.d.ts +7 -7
  342. package/dist/hooks/useFlatpickrGuid.js +11 -11
  343. package/dist/hooks/useFlattenElementsContext.d.ts +2 -2
  344. package/dist/hooks/useFlattenElementsContext.js +7 -7
  345. package/dist/hooks/useFormDefinition.d.ts +4 -4
  346. package/dist/hooks/useFormDefinition.js +9 -9
  347. package/dist/hooks/useFormElementOptions.d.ts +9 -9
  348. package/dist/hooks/useFormElementOptions.js +35 -35
  349. package/dist/hooks/useFormIsReadOnly.d.ts +3 -3
  350. package/dist/hooks/useFormIsReadOnly.js +5 -5
  351. package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +24 -24
  352. package/dist/hooks/useFormSubmissionAutoSaveState.js +145 -145
  353. package/dist/hooks/useFormSubmissionModelContext.d.ts +15 -15
  354. package/dist/hooks/useFormSubmissionModelContext.js +32 -32
  355. package/dist/hooks/useFormSubmissionState.d.ts +10 -10
  356. package/dist/hooks/useFormSubmissionState.js +13 -13
  357. package/dist/hooks/useFormValidation.d.ts +7 -7
  358. package/dist/hooks/useFormValidation.js +29 -29
  359. package/dist/hooks/useGoogleMapsApiKey.d.ts +3 -3
  360. package/dist/hooks/useGoogleMapsApiKey.js +5 -5
  361. package/dist/hooks/useInfiniteScrollDataLoad.d.ts +30 -30
  362. package/dist/hooks/useInfiniteScrollDataLoad.js +124 -124
  363. package/dist/hooks/useInjectPages.d.ts +7 -7
  364. package/dist/hooks/useInjectPages.js +5 -5
  365. package/dist/hooks/useIsHovering.d.ts +5 -5
  366. package/dist/hooks/useIsHovering.js +12 -12
  367. package/dist/hooks/useIsMounted.d.ts +3 -3
  368. package/dist/hooks/useIsMounted.js +11 -11
  369. package/dist/hooks/useIsOffline.d.ts +6 -6
  370. package/dist/hooks/useIsOffline.js +26 -26
  371. package/dist/hooks/useIsPageVisible.d.ts +9 -9
  372. package/dist/hooks/useIsPageVisible.js +8 -8
  373. package/dist/hooks/useLegacyElements.d.ts +16 -0
  374. package/dist/hooks/useLegacyElements.js +55 -0
  375. package/dist/hooks/useLegacyElements.js.map +1 -0
  376. package/dist/hooks/useLoadDataState.d.ts +15 -15
  377. package/dist/hooks/useLoadDataState.js +54 -54
  378. package/dist/hooks/useLogin.d.ts +46 -46
  379. package/dist/hooks/useLogin.js +295 -295
  380. package/dist/hooks/useLookupNotification.d.ts +9 -9
  381. package/dist/hooks/useLookupNotification.js +10 -10
  382. package/dist/hooks/useLookups.d.ts +5 -5
  383. package/dist/hooks/useLookups.js +62 -62
  384. package/dist/hooks/useNullableState.d.ts +2 -2
  385. package/dist/hooks/useNullableState.js +6 -6
  386. package/dist/hooks/usePages.d.ts +24 -24
  387. package/dist/hooks/usePages.js +141 -141
  388. package/dist/hooks/useQuery.d.ts +2 -2
  389. package/dist/hooks/useQuery.js +7 -7
  390. package/dist/hooks/useSubmissionIdIsValid.d.ts +3 -3
  391. package/dist/hooks/useSubmissionIdIsValid.js +19 -19
  392. package/dist/hooks/useToggleAll.d.ts +6 -0
  393. package/dist/hooks/useToggleAll.js +24 -0
  394. package/dist/hooks/useToggleAll.js.map +1 -0
  395. package/dist/hooks/useToggleComplianceChildren.d.ts +3 -3
  396. package/dist/hooks/useToggleComplianceChildren.js +13 -13
  397. package/dist/index.d.ts +23 -23
  398. package/dist/index.js +23 -23
  399. package/dist/services/attachments.d.ts +10 -10
  400. package/dist/services/attachments.js +72 -72
  401. package/dist/services/barcode-readers/quagger.d.ts +1 -1
  402. package/dist/services/barcode-readers/quagger.js +34 -34
  403. package/dist/services/blob-utils.d.ts +5 -5
  404. package/dist/services/blob-utils.js +73 -73
  405. package/dist/services/checkBsbsAreInvalid.d.ts +3 -3
  406. package/dist/services/checkBsbsAreInvalid.js +40 -40
  407. package/dist/services/checkIfAttachmentsAreUploading.d.ts +3 -3
  408. package/dist/services/checkIfAttachmentsAreUploading.js +57 -57
  409. package/dist/services/checkIfAttachmentsExist.d.ts +5 -5
  410. package/dist/services/checkIfAttachmentsExist.js +144 -144
  411. package/dist/services/checkIfBsbsAreValidating.d.ts +3 -3
  412. package/dist/services/checkIfBsbsAreValidating.js +40 -40
  413. package/dist/services/clean-form-elements-ctrl-model.d.ts +4 -0
  414. package/dist/services/clean-form-elements-ctrl-model.js +166 -0
  415. package/dist/services/clean-form-elements-ctrl-model.js.map +1 -0
  416. package/dist/services/cleanFormSubmissionModel.d.ts +6 -6
  417. package/dist/services/cleanFormSubmissionModel.js +203 -203
  418. package/dist/services/conditionally-show-element.d.ts +11 -0
  419. package/dist/services/conditionally-show-element.js +92 -0
  420. package/dist/services/conditionally-show-element.js.map +1 -0
  421. package/dist/services/conditionally-show-option.d.ts +3 -0
  422. package/dist/services/conditionally-show-option.js +135 -0
  423. package/dist/services/conditionally-show-option.js.map +1 -0
  424. package/dist/services/defaultCoordinates.d.ts +5 -5
  425. package/dist/services/defaultCoordinates.js +8 -8
  426. package/dist/services/download-file.d.ts +3 -3
  427. package/dist/services/download-file.js +90 -90
  428. package/dist/services/drawTimestampOnCanvas.d.ts +1 -1
  429. package/dist/services/drawTimestampOnCanvas.js +22 -22
  430. package/dist/services/flattenFormElements.d.ts +2 -0
  431. package/dist/services/flattenFormElements.js +13 -0
  432. package/dist/services/flattenFormElements.js.map +1 -0
  433. package/dist/services/form-validation.d.ts +10 -10
  434. package/dist/services/form-validation.js +561 -561
  435. package/dist/services/generate-default-data.d.ts +13 -13
  436. package/dist/services/generate-default-data.js +494 -494
  437. package/dist/services/generateCivicaNameRecordElements.d.ts +2 -2
  438. package/dist/services/generateCivicaNameRecordElements.js +140 -140
  439. package/dist/services/generateFreshdeskDependentFieldElements.d.ts +2 -2
  440. package/dist/services/generateFreshdeskDependentFieldElements.js +69 -69
  441. package/dist/services/getCorrectDateFromDateOnlyString.d.ts +2 -0
  442. package/dist/services/getCorrectDateFromDateOnlyString.js +4 -0
  443. package/dist/services/getCorrectDateFromDateOnlyString.js.map +1 -0
  444. package/dist/services/sanitize-html.d.ts +2 -2
  445. package/dist/services/sanitize-html.js +20 -20
  446. package/dist/services/scrolling-service.d.ts +7 -7
  447. package/dist/services/scrolling-service.js +38 -38
  448. package/dist/services/utils-service.d.ts +5 -5
  449. package/dist/services/utils-service.js +16 -16
  450. package/dist/styles/boolean.scss +12 -0
  451. package/dist/styles/ob-file.scss +63 -0
  452. package/dist/styles/progress.scss +0 -7
  453. package/dist/styles.css +0 -7
  454. package/dist/styles.css.map +1 -1
  455. package/dist/types/attachments.d.ts +19 -19
  456. package/dist/types/attachments.js +1 -1
  457. package/dist/types/form.d.ts +40 -40
  458. package/dist/types/form.js +2 -2
  459. package/package.json +1 -1
@@ -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