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

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 (455) 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 +29 -28
  6. package/dist/OneBlinkFormBase.js +476 -472
  7. package/dist/OneBlinkFormBase.js.map +1 -1
  8. package/dist/OneBlinkReadOnlyForm.d.ts +11 -11
  9. package/dist/OneBlinkReadOnlyForm.js +48 -48
  10. package/dist/components/CopyToClipboardIconButton.d.ts +10 -10
  11. package/dist/components/CopyToClipboardIconButton.js +32 -32
  12. package/dist/components/CustomAccordion.d.ts +27 -27
  13. package/dist/components/CustomAccordion.js +37 -37
  14. package/dist/components/ErrorSnackbar.d.ts +8 -8
  15. package/dist/components/ErrorSnackbar.js +25 -25
  16. package/dist/components/Lists.d.ts +25 -25
  17. package/dist/components/Lists.js +44 -44
  18. package/dist/components/LoadingWithMessage.d.ts +6 -6
  19. package/dist/components/LoadingWithMessage.js +11 -11
  20. package/dist/components/formStore/FormStoreTableProvider.d.ts +6 -6
  21. package/dist/components/formStore/FormStoreTableProvider.js +90 -90
  22. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +5 -5
  23. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +19 -19
  24. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +5 -5
  25. package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js +66 -66
  26. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +5 -5
  27. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +86 -86
  28. package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +8 -8
  29. package/dist/components/formStore/OneBlinkFormStoreProvider.js +24 -24
  30. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +5 -5
  31. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +11 -11
  32. package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +4 -4
  33. package/dist/components/formStore/OneBlinkFormStoreTable.js +194 -194
  34. package/dist/components/formStore/display/ElementDisplay.d.ts +23 -23
  35. package/dist/components/formStore/display/ElementDisplay.js +77 -77
  36. package/dist/components/formStore/display/FormStoreIcon.d.ts +2 -2
  37. package/dist/components/formStore/display/FormStoreIcon.js +2 -2
  38. package/dist/components/formStore/table/ActionedByTableCell.d.ts +11 -11
  39. package/dist/components/formStore/table/ActionedByTableCell.js +43 -43
  40. package/dist/components/formStore/table/ColumnFilters.d.ts +9 -9
  41. package/dist/components/formStore/table/ColumnFilters.js +179 -179
  42. package/dist/components/formStore/table/FormElementTableCell.d.ts +10 -10
  43. package/dist/components/formStore/table/FormElementTableCell.js +228 -228
  44. package/dist/components/formStore/table/HeaderCellMoreButton.d.ts +9 -9
  45. package/dist/components/formStore/table/HeaderCellMoreButton.js +48 -48
  46. package/dist/components/formStore/table/RepeatableSetCell.d.ts +8 -8
  47. package/dist/components/formStore/table/RepeatableSetCell.js +62 -62
  48. package/dist/components/formStore/table/RepeatableSetCellAccordion.d.ts +9 -9
  49. package/dist/components/formStore/table/RepeatableSetCellAccordion.js +11 -11
  50. package/dist/components/formStore/table/TableCellCopyButton.d.ts +7 -7
  51. package/dist/components/formStore/table/TableCellCopyButton.js +27 -27
  52. package/dist/components/formStore/table/generateColumns.d.ts +24 -24
  53. package/dist/components/formStore/table/generateColumns.js +290 -290
  54. package/dist/components/formStore/table/useFormStoreTable.d.ts +52 -52
  55. package/dist/components/formStore/table/useFormStoreTable.js +157 -157
  56. package/dist/components/formStore/useFormStoreTableContext.d.ts +44 -44
  57. package/dist/components/formStore/useFormStoreTableContext.js +9 -9
  58. package/dist/components/messages/ErrorMessage.d.ts +12 -12
  59. package/dist/components/messages/ErrorMessage.js +12 -12
  60. package/dist/components/messages/LargeIconMessage.d.ts +18 -18
  61. package/dist/components/messages/LargeIconMessage.js +33 -33
  62. package/dist/components/messages/NoResourcesYet.d.ts +11 -11
  63. package/dist/components/messages/NoResourcesYet.js +6 -6
  64. package/dist/components/pickers/V4CompatibleDatePicker.d.ts +32 -32
  65. package/dist/components/pickers/V4CompatibleDatePicker.js +70 -70
  66. package/dist/components/pickers/V4CompatibleDateTimePicker.d.ts +32 -32
  67. package/dist/components/pickers/V4CompatibleDateTimePicker.js +70 -70
  68. package/dist/components/pickers/V4CompatibleTimePicker.d.ts +28 -28
  69. package/dist/components/pickers/V4CompatibleTimePicker.js +53 -53
  70. package/dist/components/renderer/AnnotationModal.d.ts +8 -8
  71. package/dist/components/renderer/AnnotationModal.js +101 -101
  72. package/dist/components/renderer/AutocompleteDropdown.d.ts +26 -26
  73. package/dist/components/renderer/AutocompleteDropdown.js +175 -175
  74. package/dist/components/renderer/CopyToClipboardButton.d.ts +8 -8
  75. package/dist/components/renderer/CopyToClipboardButton.js +13 -13
  76. package/dist/components/renderer/CustomisableButtonInner.d.ts +7 -7
  77. package/dist/components/renderer/CustomisableButtonInner.js +8 -8
  78. package/dist/components/renderer/FormElementLabelContainer.d.ts +12 -12
  79. package/dist/components/renderer/FormElementLabelContainer.js +15 -15
  80. package/dist/components/renderer/FormElementOptions.d.ts +9 -9
  81. package/dist/components/renderer/FormElementOptions.js +14 -14
  82. package/dist/components/renderer/LookupButton.d.ts +10 -10
  83. package/dist/components/renderer/LookupButton.js +29 -29
  84. package/dist/components/renderer/LookupNotification.d.ts +12 -12
  85. package/dist/components/renderer/LookupNotification.js +230 -230
  86. package/dist/components/renderer/Modal.d.ts +14 -14
  87. package/dist/components/renderer/Modal.js +14 -14
  88. package/dist/components/renderer/OnLoading.d.ts +10 -10
  89. package/dist/components/renderer/OnLoading.js +11 -11
  90. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.d.ts +7 -7
  91. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js +12 -12
  92. package/dist/components/renderer/OneBlinkFormElements.d.ts +19 -19
  93. package/dist/components/renderer/OneBlinkFormElements.js +202 -202
  94. package/dist/components/renderer/PageFormElements.d.ts +17 -17
  95. package/dist/components/renderer/PageFormElements.js +48 -48
  96. package/dist/components/renderer/ProgressBar.d.ts +7 -7
  97. package/dist/components/renderer/ProgressBar.js +6 -6
  98. package/dist/components/renderer/ProgressBar.js.map +1 -1
  99. package/dist/components/renderer/ToggleAllCheckbox.d.ts +13 -13
  100. package/dist/components/renderer/ToggleAllCheckbox.js +26 -26
  101. package/dist/components/renderer/attachments/AttachmentStatus.d.ts +10 -10
  102. package/dist/components/renderer/attachments/AttachmentStatus.js +36 -36
  103. package/dist/components/renderer/attachments/FileCard.d.ts +19 -19
  104. package/dist/components/renderer/attachments/FileCard.js +60 -60
  105. package/dist/components/renderer/attachments/FileCardContent.d.ts +5 -5
  106. package/dist/components/renderer/attachments/FileCardContent.js +10 -10
  107. package/dist/components/renderer/attachments/ImagePreviewUnavailable.d.ts +4 -4
  108. package/dist/components/renderer/attachments/ImagePreviewUnavailable.js +11 -11
  109. package/dist/components/renderer/attachments/ProgressBar.d.ts +8 -8
  110. package/dist/components/renderer/attachments/ProgressBar.js +33 -33
  111. package/dist/form-elements/ComplianceButton.d.ts +10 -10
  112. package/dist/form-elements/ComplianceButton.js +11 -11
  113. package/dist/form-elements/FormElementABN.d.ts +14 -14
  114. package/dist/form-elements/FormElementABN.js +155 -155
  115. package/dist/form-elements/FormElementAutocomplete.d.ts +19 -19
  116. package/dist/form-elements/FormElementAutocomplete.js +81 -81
  117. package/dist/form-elements/FormElementBSB.d.ts +18 -18
  118. package/dist/form-elements/FormElementBSB.js +100 -100
  119. package/dist/form-elements/FormElementBarcodeScanner.d.ts +14 -14
  120. package/dist/form-elements/FormElementBarcodeScanner.js +306 -306
  121. package/dist/form-elements/FormElementBoolean.d.ts +14 -14
  122. package/dist/form-elements/FormElementBoolean.js +16 -16
  123. package/dist/form-elements/FormElementCalculation.d.ts +11 -11
  124. package/dist/form-elements/FormElementCalculation.js +179 -179
  125. package/dist/form-elements/FormElementCamera.d.ts +15 -15
  126. package/dist/form-elements/FormElementCamera.js +227 -227
  127. package/dist/form-elements/FormElementCaptcha.d.ts +12 -12
  128. package/dist/form-elements/FormElementCaptcha.js +14 -14
  129. package/dist/form-elements/FormElementCheckBoxes.d.ts +15 -15
  130. package/dist/form-elements/FormElementCheckBoxes.js +64 -64
  131. package/dist/form-elements/FormElementCivicaNameRecord.d.ts +8 -8
  132. package/dist/form-elements/FormElementCivicaNameRecord.js +51 -51
  133. package/dist/form-elements/FormElementCivicaStreetName.d.ts +15 -15
  134. package/dist/form-elements/FormElementCivicaStreetName.js +38 -38
  135. package/dist/form-elements/FormElementCompliance.d.ts +22 -22
  136. package/dist/form-elements/FormElementCompliance.js +129 -129
  137. package/dist/form-elements/FormElementDate.d.ts +14 -14
  138. package/dist/form-elements/FormElementDate.js +74 -74
  139. package/dist/form-elements/FormElementDateTime.d.ts +14 -14
  140. package/dist/form-elements/FormElementDateTime.js +67 -67
  141. package/dist/form-elements/FormElementEmail.d.ts +14 -14
  142. package/dist/form-elements/FormElementEmail.js +22 -22
  143. package/dist/form-elements/FormElementFile.d.ts +13 -13
  144. package/dist/form-elements/FormElementFile.js +31 -31
  145. package/dist/form-elements/FormElementFiles.d.ts +15 -15
  146. package/dist/form-elements/FormElementFiles.js +42 -42
  147. package/dist/form-elements/FormElementForm.d.ts +17 -17
  148. package/dist/form-elements/FormElementForm.js +63 -63
  149. package/dist/form-elements/FormElementFreshdeskDependentField.d.ts +8 -8
  150. package/dist/form-elements/FormElementFreshdeskDependentField.js +15 -15
  151. package/dist/form-elements/FormElementGeoscapeAddress.d.ts +15 -15
  152. package/dist/form-elements/FormElementGeoscapeAddress.js +62 -62
  153. package/dist/form-elements/FormElementHTML.d.ts +8 -8
  154. package/dist/form-elements/FormElementHTML.js +15 -15
  155. package/dist/form-elements/FormElementHeading.d.ts +8 -8
  156. package/dist/form-elements/FormElementHeading.js +23 -23
  157. package/dist/form-elements/FormElementImage.d.ts +8 -8
  158. package/dist/form-elements/FormElementImage.js +6 -6
  159. package/dist/form-elements/FormElementLocation.d.ts +20 -20
  160. package/dist/form-elements/FormElementLocation.js +204 -204
  161. package/dist/form-elements/FormElementNumber.d.ts +14 -14
  162. package/dist/form-elements/FormElementNumber.js +72 -72
  163. package/dist/form-elements/FormElementPointAddress.d.ts +15 -15
  164. package/dist/form-elements/FormElementPointAddress.js +69 -69
  165. package/dist/form-elements/FormElementRadio.d.ts +15 -15
  166. package/dist/form-elements/FormElementRadio.js +41 -41
  167. package/dist/form-elements/FormElementRepeatableSet.d.ts +19 -19
  168. package/dist/form-elements/FormElementRepeatableSet.js +126 -126
  169. package/dist/form-elements/FormElementSection.d.ts +8 -8
  170. package/dist/form-elements/FormElementSection.js +69 -69
  171. package/dist/form-elements/FormElementSelect.d.ts +15 -15
  172. package/dist/form-elements/FormElementSelect.js +44 -44
  173. package/dist/form-elements/FormElementSignature.d.ts +15 -15
  174. package/dist/form-elements/FormElementSignature.js +138 -138
  175. package/dist/form-elements/FormElementSummary.d.ts +11 -11
  176. package/dist/form-elements/FormElementSummary.js +159 -159
  177. package/dist/form-elements/FormElementTelephone.d.ts +14 -14
  178. package/dist/form-elements/FormElementTelephone.js +22 -22
  179. package/dist/form-elements/FormElementText.d.ts +14 -14
  180. package/dist/form-elements/FormElementText.js +29 -29
  181. package/dist/form-elements/FormElementTextarea.d.ts +14 -14
  182. package/dist/form-elements/FormElementTextarea.js +30 -30
  183. package/dist/form-elements/FormElementTime.d.ts +14 -14
  184. package/dist/form-elements/FormElementTime.js +53 -53
  185. package/dist/form-elements/OptionButton.d.ts +11 -11
  186. package/dist/form-elements/OptionButton.js +9 -9
  187. package/dist/hooks/attachments/useAttachment.d.ts +12 -12
  188. package/dist/hooks/attachments/useAttachment.js +242 -242
  189. package/dist/hooks/attachments/useAttachmentBlobs.d.ts +19 -19
  190. package/dist/hooks/attachments/useAttachmentBlobs.js +23 -23
  191. package/dist/hooks/attachments/useAttachments.d.ts +10 -10
  192. package/dist/hooks/attachments/useAttachments.js +69 -69
  193. package/dist/hooks/useAbnLookupAuthenticationGuid.d.ts +3 -3
  194. package/dist/hooks/useAbnLookupAuthenticationGuid.js +5 -5
  195. package/dist/hooks/useAuth.d.ts +15 -15
  196. package/dist/hooks/useAuth.js +42 -42
  197. package/dist/hooks/useBooleanState.d.ts +5 -5
  198. package/dist/hooks/useBooleanState.js +8 -8
  199. package/dist/hooks/useCaptchaSiteKey.d.ts +3 -3
  200. package/dist/hooks/useCaptchaSiteKey.js +5 -5
  201. package/dist/hooks/useClickOutsideElement.d.ts +3 -3
  202. package/dist/hooks/useClickOutsideElement.js +14 -14
  203. package/dist/hooks/useConditionalLogic.d.ts +6 -6
  204. package/dist/hooks/useConditionalLogic.js +22 -22
  205. package/dist/hooks/useContrastColor.d.ts +2 -2
  206. package/dist/hooks/useContrastColor.js +12 -12
  207. package/dist/hooks/useDynamicOptionsLoaderState.d.ts +7 -7
  208. package/dist/hooks/useDynamicOptionsLoaderState.js +44 -44
  209. package/dist/hooks/useExecutedLookupCallback.d.ts +12 -12
  210. package/dist/hooks/useExecutedLookupCallback.js +15 -15
  211. package/dist/hooks/useFlatpickr.d.ts +10 -10
  212. package/dist/hooks/useFlatpickr.js +73 -73
  213. package/dist/hooks/useFlatpickrGuid.d.ts +7 -7
  214. package/dist/hooks/useFlatpickrGuid.js +11 -11
  215. package/dist/hooks/useFlattenElementsContext.d.ts +2 -2
  216. package/dist/hooks/useFlattenElementsContext.js +7 -7
  217. package/dist/hooks/useFormDefinition.d.ts +4 -4
  218. package/dist/hooks/useFormDefinition.js +9 -9
  219. package/dist/hooks/useFormElementOptions.d.ts +9 -9
  220. package/dist/hooks/useFormElementOptions.js +35 -35
  221. package/dist/hooks/useFormIsReadOnly.d.ts +3 -3
  222. package/dist/hooks/useFormIsReadOnly.js +5 -5
  223. package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +24 -24
  224. package/dist/hooks/useFormSubmissionAutoSaveState.js +145 -145
  225. package/dist/hooks/useFormSubmissionModelContext.d.ts +15 -15
  226. package/dist/hooks/useFormSubmissionModelContext.js +32 -32
  227. package/dist/hooks/useFormSubmissionState.d.ts +10 -10
  228. package/dist/hooks/useFormSubmissionState.js +13 -13
  229. package/dist/hooks/useFormValidation.d.ts +7 -7
  230. package/dist/hooks/useFormValidation.js +29 -29
  231. package/dist/hooks/useGoogleMapsApiKey.d.ts +3 -3
  232. package/dist/hooks/useGoogleMapsApiKey.js +5 -5
  233. package/dist/hooks/useInfiniteScrollDataLoad.d.ts +30 -30
  234. package/dist/hooks/useInfiniteScrollDataLoad.js +124 -124
  235. package/dist/hooks/useInjectPages.d.ts +7 -7
  236. package/dist/hooks/useInjectPages.js +5 -5
  237. package/dist/hooks/useIsHovering.d.ts +5 -5
  238. package/dist/hooks/useIsHovering.js +12 -12
  239. package/dist/hooks/useIsMounted.d.ts +3 -3
  240. package/dist/hooks/useIsMounted.js +11 -11
  241. package/dist/hooks/useIsOffline.d.ts +6 -6
  242. package/dist/hooks/useIsOffline.js +26 -26
  243. package/dist/hooks/useIsPageVisible.d.ts +9 -9
  244. package/dist/hooks/useIsPageVisible.js +8 -8
  245. package/dist/hooks/useLoadDataState.d.ts +15 -15
  246. package/dist/hooks/useLoadDataState.js +54 -54
  247. package/dist/hooks/useLogin.d.ts +46 -46
  248. package/dist/hooks/useLogin.js +295 -295
  249. package/dist/hooks/useLookupNotification.d.ts +9 -9
  250. package/dist/hooks/useLookupNotification.js +10 -10
  251. package/dist/hooks/useLookups.d.ts +5 -5
  252. package/dist/hooks/useLookups.js +62 -62
  253. package/dist/hooks/useNullableState.d.ts +2 -2
  254. package/dist/hooks/useNullableState.js +6 -6
  255. package/dist/hooks/usePages.d.ts +24 -24
  256. package/dist/hooks/usePages.js +141 -141
  257. package/dist/hooks/useQuery.d.ts +2 -2
  258. package/dist/hooks/useQuery.js +7 -7
  259. package/dist/hooks/useSubmissionIdIsValid.d.ts +3 -3
  260. package/dist/hooks/useSubmissionIdIsValid.js +19 -19
  261. package/dist/hooks/useToggleComplianceChildren.d.ts +3 -3
  262. package/dist/hooks/useToggleComplianceChildren.js +13 -13
  263. package/dist/index.d.ts +23 -23
  264. package/dist/index.js +23 -23
  265. package/dist/services/attachments.d.ts +10 -10
  266. package/dist/services/attachments.js +72 -72
  267. package/dist/services/barcode-readers/quagger.d.ts +1 -1
  268. package/dist/services/barcode-readers/quagger.js +34 -34
  269. package/dist/services/blob-utils.d.ts +5 -5
  270. package/dist/services/blob-utils.js +73 -73
  271. package/dist/services/checkBsbsAreInvalid.d.ts +3 -3
  272. package/dist/services/checkBsbsAreInvalid.js +40 -40
  273. package/dist/services/checkIfAttachmentsExist.d.ts +5 -5
  274. package/dist/services/checkIfAttachmentsExist.js +144 -144
  275. package/dist/services/checkIfBsbsAreValidating.d.ts +3 -3
  276. package/dist/services/checkIfBsbsAreValidating.js +40 -40
  277. package/dist/services/cleanFormSubmissionModel.d.ts +6 -6
  278. package/dist/services/cleanFormSubmissionModel.js +203 -203
  279. package/dist/services/defaultCoordinates.d.ts +5 -5
  280. package/dist/services/defaultCoordinates.js +8 -8
  281. package/dist/services/download-file.d.ts +3 -3
  282. package/dist/services/download-file.js +90 -90
  283. package/dist/services/drawTimestampOnCanvas.d.ts +1 -1
  284. package/dist/services/drawTimestampOnCanvas.js +22 -22
  285. package/dist/services/form-validation.d.ts +10 -10
  286. package/dist/services/form-validation.js +561 -561
  287. package/dist/services/generate-default-data.d.ts +13 -13
  288. package/dist/services/generate-default-data.js +494 -494
  289. package/dist/services/generateCivicaNameRecordElements.d.ts +2 -2
  290. package/dist/services/generateCivicaNameRecordElements.js +140 -140
  291. package/dist/services/generateFreshdeskDependentFieldElements.d.ts +2 -2
  292. package/dist/services/generateFreshdeskDependentFieldElements.js +69 -69
  293. package/dist/services/sanitize-html.d.ts +2 -2
  294. package/dist/services/sanitize-html.js +20 -20
  295. package/dist/services/scrolling-service.d.ts +7 -7
  296. package/dist/services/scrolling-service.js +38 -38
  297. package/dist/services/utils-service.d.ts +5 -5
  298. package/dist/services/utils-service.js +16 -16
  299. package/dist/types/attachments.d.ts +19 -19
  300. package/dist/types/attachments.js +1 -1
  301. package/dist/types/form.d.ts +40 -40
  302. package/dist/types/form.js +2 -2
  303. package/package.json +2 -2
  304. package/dist/OneBlinkFormStoreView.d.ts +0 -8
  305. package/dist/OneBlinkFormStoreView.js +0 -55
  306. package/dist/OneBlinkFormStoreView.js.map +0 -1
  307. package/dist/components/AnnotationModal.d.ts +0 -8
  308. package/dist/components/AnnotationModal.js +0 -104
  309. package/dist/components/AnnotationModal.js.map +0 -1
  310. package/dist/components/AutocompleteDropdown.d.ts +0 -26
  311. package/dist/components/AutocompleteDropdown.js +0 -174
  312. package/dist/components/AutocompleteDropdown.js.map +0 -1
  313. package/dist/components/CopyToClipboardButton.d.ts +0 -9
  314. package/dist/components/CopyToClipboardButton.js +0 -14
  315. package/dist/components/CopyToClipboardButton.js.map +0 -1
  316. package/dist/components/CustomisableButtonInner.d.ts +0 -7
  317. package/dist/components/CustomisableButtonInner.js +0 -9
  318. package/dist/components/CustomisableButtonInner.js.map +0 -1
  319. package/dist/components/ErrorMessage.d.ts +0 -13
  320. package/dist/components/ErrorMessage.js +0 -13
  321. package/dist/components/ErrorMessage.js.map +0 -1
  322. package/dist/components/FormElementLabelContainer.d.ts +0 -12
  323. package/dist/components/FormElementLabelContainer.js +0 -16
  324. package/dist/components/FormElementLabelContainer.js.map +0 -1
  325. package/dist/components/FormElementOptions.d.ts +0 -9
  326. package/dist/components/FormElementOptions.js +0 -15
  327. package/dist/components/FormElementOptions.js.map +0 -1
  328. package/dist/components/LookupButton.d.ts +0 -10
  329. package/dist/components/LookupButton.js +0 -30
  330. package/dist/components/LookupButton.js.map +0 -1
  331. package/dist/components/LookupNotification.d.ts +0 -12
  332. package/dist/components/LookupNotification.js +0 -231
  333. package/dist/components/LookupNotification.js.map +0 -1
  334. package/dist/components/Modal.d.ts +0 -14
  335. package/dist/components/Modal.js +0 -15
  336. package/dist/components/Modal.js.map +0 -1
  337. package/dist/components/NoResourcesYet.d.ts +0 -12
  338. package/dist/components/NoResourcesYet.js +0 -7
  339. package/dist/components/NoResourcesYet.js.map +0 -1
  340. package/dist/components/OnLoading.d.ts +0 -10
  341. package/dist/components/OnLoading.js +0 -12
  342. package/dist/components/OnLoading.js.map +0 -1
  343. package/dist/components/OneBlinkAppsErrorOriginalMessage.d.ts +0 -7
  344. package/dist/components/OneBlinkAppsErrorOriginalMessage.js +0 -13
  345. package/dist/components/OneBlinkAppsErrorOriginalMessage.js.map +0 -1
  346. package/dist/components/OneBlinkFormElements.d.ts +0 -19
  347. package/dist/components/OneBlinkFormElements.js +0 -196
  348. package/dist/components/OneBlinkFormElements.js.map +0 -1
  349. package/dist/components/PageFormElements.d.ts +0 -17
  350. package/dist/components/PageFormElements.js +0 -49
  351. package/dist/components/PageFormElements.js.map +0 -1
  352. package/dist/components/ToggleAllCheckbox.d.ts +0 -13
  353. package/dist/components/ToggleAllCheckbox.js +0 -27
  354. package/dist/components/ToggleAllCheckbox.js.map +0 -1
  355. package/dist/components/attachments/AttachmentStatus.d.ts +0 -12
  356. package/dist/components/attachments/AttachmentStatus.js +0 -35
  357. package/dist/components/attachments/AttachmentStatus.js.map +0 -1
  358. package/dist/components/attachments/FileCard.d.ts +0 -18
  359. package/dist/components/attachments/FileCard.js +0 -58
  360. package/dist/components/attachments/FileCard.js.map +0 -1
  361. package/dist/components/attachments/FileCardContent.d.ts +0 -5
  362. package/dist/components/attachments/FileCardContent.js +0 -11
  363. package/dist/components/attachments/FileCardContent.js.map +0 -1
  364. package/dist/components/attachments/Files.d.ts +0 -14
  365. package/dist/components/attachments/Files.js +0 -27
  366. package/dist/components/attachments/Files.js.map +0 -1
  367. package/dist/components/attachments/ImagePreviewUnavailable.d.ts +0 -4
  368. package/dist/components/attachments/ImagePreviewUnavailable.js +0 -12
  369. package/dist/components/attachments/ImagePreviewUnavailable.js.map +0 -1
  370. package/dist/components/attachments/UploadingAttachment.d.ts +0 -4
  371. package/dist/components/attachments/UploadingAttachment.js +0 -13
  372. package/dist/components/attachments/UploadingAttachment.js.map +0 -1
  373. package/dist/components/formStore/ColumnsConfigurationButton.d.ts +0 -10
  374. package/dist/components/formStore/ColumnsConfigurationButton.js +0 -29
  375. package/dist/components/formStore/ColumnsConfigurationButton.js.map +0 -1
  376. package/dist/components/formStore/DownloadSubmissionDataButton.d.ts +0 -13
  377. package/dist/components/formStore/DownloadSubmissionDataButton.js +0 -45
  378. package/dist/components/formStore/DownloadSubmissionDataButton.js.map +0 -1
  379. package/dist/components/formStore/FormStore.d.ts +0 -9
  380. package/dist/components/formStore/FormStore.js +0 -103
  381. package/dist/components/formStore/FormStore.js.map +0 -1
  382. package/dist/components/formStore/table/index.d.ts +0 -17
  383. package/dist/components/formStore/table/index.js +0 -194
  384. package/dist/components/formStore/table/index.js.map +0 -1
  385. package/dist/components/renderer/attachments/Files.d.ts +0 -14
  386. package/dist/components/renderer/attachments/Files.js +0 -27
  387. package/dist/components/renderer/attachments/Files.js.map +0 -1
  388. package/dist/components/renderer/attachments/UploadingAttachment.d.ts +0 -4
  389. package/dist/components/renderer/attachments/UploadingAttachment.js +0 -13
  390. package/dist/components/renderer/attachments/UploadingAttachment.js.map +0 -1
  391. package/dist/form-elements/FormElementFiles/FormElementFile.d.ts +0 -13
  392. package/dist/form-elements/FormElementFiles/FormElementFile.js +0 -32
  393. package/dist/form-elements/FormElementFiles/FormElementFile.js.map +0 -1
  394. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.d.ts +0 -10
  395. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js +0 -11
  396. package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js.map +0 -1
  397. package/dist/form-elements/FormElementFiles/FormElementFiles.d.ts +0 -15
  398. package/dist/form-elements/FormElementFiles/FormElementFiles.js +0 -17
  399. package/dist/form-elements/FormElementFiles/FormElementFiles.js.map +0 -1
  400. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.d.ts +0 -7
  401. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js +0 -11
  402. package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js.map +0 -1
  403. package/dist/form-elements/FormElementFiles/index.d.ts +0 -17
  404. package/dist/form-elements/FormElementFiles/index.js +0 -18
  405. package/dist/form-elements/FormElementFiles/index.js.map +0 -1
  406. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.d.ts +0 -18
  407. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js +0 -61
  408. package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js.map +0 -1
  409. package/dist/hooks/attachments/useAttachmentObjectURLs.d.ts +0 -24
  410. package/dist/hooks/attachments/useAttachmentObjectURLs.js +0 -37
  411. package/dist/hooks/attachments/useAttachmentObjectURLs.js.map +0 -1
  412. package/dist/hooks/attachments/useLocalAttachmentBlobs.d.ts +0 -24
  413. package/dist/hooks/attachments/useLocalAttachmentBlobs.js +0 -40
  414. package/dist/hooks/attachments/useLocalAttachmentBlobs.js.map +0 -1
  415. package/dist/hooks/useButtonsConfiguration.d.ts +0 -45
  416. package/dist/hooks/useButtonsConfiguration.js +0 -6
  417. package/dist/hooks/useButtonsConfiguration.js.map +0 -1
  418. package/dist/hooks/useChangeEffect.d.ts +0 -1
  419. package/dist/hooks/useChangeEffect.js +0 -14
  420. package/dist/hooks/useChangeEffect.js.map +0 -1
  421. package/dist/hooks/useConditionallyShowOptionCallback.d.ts +0 -5
  422. package/dist/hooks/useConditionallyShowOptionCallback.js +0 -20
  423. package/dist/hooks/useConditionallyShowOptionCallback.js.map +0 -1
  424. package/dist/hooks/useCustomValidation.d.ts +0 -1
  425. package/dist/hooks/useCustomValidation.js +0 -9
  426. package/dist/hooks/useCustomValidation.js.map +0 -1
  427. package/dist/hooks/useDynamicOptionsLoaderEffect.d.ts +0 -7
  428. package/dist/hooks/useDynamicOptionsLoaderEffect.js +0 -45
  429. package/dist/hooks/useDynamicOptionsLoaderEffect.js.map +0 -1
  430. package/dist/hooks/useLegacyElements.d.ts +0 -16
  431. package/dist/hooks/useLegacyElements.js +0 -55
  432. package/dist/hooks/useLegacyElements.js.map +0 -1
  433. package/dist/hooks/useToggleAll.d.ts +0 -6
  434. package/dist/hooks/useToggleAll.js +0 -24
  435. package/dist/hooks/useToggleAll.js.map +0 -1
  436. package/dist/services/checkIfAttachmentsAreUploading.d.ts +0 -3
  437. package/dist/services/checkIfAttachmentsAreUploading.js +0 -58
  438. package/dist/services/checkIfAttachmentsAreUploading.js.map +0 -1
  439. package/dist/services/clean-form-elements-ctrl-model.d.ts +0 -4
  440. package/dist/services/clean-form-elements-ctrl-model.js +0 -166
  441. package/dist/services/clean-form-elements-ctrl-model.js.map +0 -1
  442. package/dist/services/conditionally-show-element.d.ts +0 -11
  443. package/dist/services/conditionally-show-element.js +0 -92
  444. package/dist/services/conditionally-show-element.js.map +0 -1
  445. package/dist/services/conditionally-show-option.d.ts +0 -3
  446. package/dist/services/conditionally-show-option.js +0 -135
  447. package/dist/services/conditionally-show-option.js.map +0 -1
  448. package/dist/services/flattenFormElements.d.ts +0 -2
  449. package/dist/services/flattenFormElements.js +0 -13
  450. package/dist/services/flattenFormElements.js.map +0 -1
  451. package/dist/services/getCorrectDateFromDateOnlyString.d.ts +0 -2
  452. package/dist/services/getCorrectDateFromDateOnlyString.js +0 -4
  453. package/dist/services/getCorrectDateFromDateOnlyString.js.map +0 -1
  454. package/dist/styles/boolean.scss +0 -12
  455. package/dist/styles/ob-file.scss +0 -63
@@ -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