@oneblink/apps-react 9.0.0-beta.1 → 9.0.0-beta.10

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 (393) hide show
  1. package/dist/OneBlinkForm.d.ts +6 -10
  2. package/dist/OneBlinkForm.js +0 -4
  3. package/dist/OneBlinkForm.js.map +1 -1
  4. package/dist/OneBlinkFormBase.d.ts +1 -1
  5. package/dist/OneBlinkFormBase.js +3 -2
  6. package/dist/OneBlinkFormBase.js.map +1 -1
  7. package/dist/OneBlinkReadOnlyForm.d.ts +1 -1
  8. package/dist/OneBlinkReadOnlyForm.js +1 -1
  9. package/dist/OneBlinkReadOnlyForm.js.map +1 -1
  10. package/dist/PaymentReceipt.d.ts +1 -1
  11. package/dist/PaymentReceipt.js +3 -3
  12. package/dist/PaymentReceipt.js.map +1 -1
  13. package/dist/apps/Sentry.d.ts +7 -0
  14. package/dist/apps/Sentry.js +16 -0
  15. package/dist/apps/Sentry.js.map +1 -0
  16. package/dist/apps/approvals-service.d.ts +390 -0
  17. package/dist/apps/approvals-service.js +987 -0
  18. package/dist/apps/approvals-service.js.map +1 -0
  19. package/dist/apps/attachments-service.d.ts +49 -0
  20. package/dist/apps/attachments-service.js +134 -0
  21. package/dist/apps/attachments-service.js.map +1 -0
  22. package/dist/apps/auth-service.d.ts +114 -0
  23. package/dist/apps/auth-service.js +194 -0
  24. package/dist/apps/auth-service.js.map +1 -0
  25. package/dist/apps/auto-save-service.d.ts +82 -0
  26. package/dist/apps/auto-save-service.js +105 -0
  27. package/dist/apps/auto-save-service.js.map +1 -0
  28. package/dist/apps/draft-service.d.ts +148 -0
  29. package/dist/apps/draft-service.js +583 -0
  30. package/dist/apps/draft-service.js.map +1 -0
  31. package/dist/apps/form-service.d.ts +204 -0
  32. package/dist/apps/form-service.js +718 -0
  33. package/dist/apps/form-service.js.map +1 -0
  34. package/dist/apps/form-store-service.d.ts +141 -0
  35. package/dist/apps/form-store-service.js +114 -0
  36. package/dist/apps/form-store-service.js.map +1 -0
  37. package/dist/apps/forms-app-environment-service.d.ts +19 -0
  38. package/dist/apps/forms-app-environment-service.js +55 -0
  39. package/dist/apps/forms-app-environment-service.js.map +1 -0
  40. package/dist/apps/forms-app-service.d.ts +18 -0
  41. package/dist/apps/forms-app-service.js +53 -0
  42. package/dist/apps/forms-app-service.js.map +1 -0
  43. package/dist/apps/index.d.ts +253 -0
  44. package/dist/apps/index.js +255 -0
  45. package/dist/apps/index.js.map +1 -0
  46. package/dist/apps/job-service.d.ts +20 -0
  47. package/dist/apps/job-service.js +95 -0
  48. package/dist/apps/job-service.js.map +1 -0
  49. package/dist/apps/localisation-service.d.ts +207 -0
  50. package/dist/apps/localisation-service.js +321 -0
  51. package/dist/apps/localisation-service.js.map +1 -0
  52. package/dist/apps/notification-service.d.ts +83 -0
  53. package/dist/apps/notification-service.js +315 -0
  54. package/dist/apps/notification-service.js.map +1 -0
  55. package/dist/apps/offline-service.d.ts +18 -0
  56. package/dist/apps/offline-service.js +25 -0
  57. package/dist/apps/offline-service.js.map +1 -0
  58. package/dist/apps/payment-service.d.ts +110 -0
  59. package/dist/apps/payment-service.js +182 -0
  60. package/dist/apps/payment-service.js.map +1 -0
  61. package/dist/apps/prefill-service.d.ts +14 -0
  62. package/dist/apps/prefill-service.js +19 -0
  63. package/dist/apps/prefill-service.js.map +1 -0
  64. package/dist/apps/scheduled-tasks-service.d.ts +127 -0
  65. package/dist/apps/scheduled-tasks-service.js +240 -0
  66. package/dist/apps/scheduled-tasks-service.js.map +1 -0
  67. package/dist/apps/scheduling-service.d.ts +101 -0
  68. package/dist/apps/scheduling-service.js +171 -0
  69. package/dist/apps/scheduling-service.js.map +1 -0
  70. package/dist/apps/services/AWSCognitoClient.d.ts +55 -0
  71. package/dist/apps/services/AWSCognitoClient.js +436 -0
  72. package/dist/apps/services/AWSCognitoClient.js.map +1 -0
  73. package/dist/apps/services/api/drafts.d.ts +7 -0
  74. package/dist/apps/services/api/drafts.js +236 -0
  75. package/dist/apps/services/api/drafts.js.map +1 -0
  76. package/dist/apps/services/api/notifications.d.ts +3 -0
  77. package/dist/apps/services/api/notifications.js +60 -0
  78. package/dist/apps/services/api/notifications.js.map +1 -0
  79. package/dist/apps/services/api/payment.d.ts +23 -0
  80. package/dist/apps/services/api/payment.js +235 -0
  81. package/dist/apps/services/api/payment.js.map +1 -0
  82. package/dist/apps/services/api/post-submission-attachment-urls.d.ts +7 -0
  83. package/dist/apps/services/api/post-submission-attachment-urls.js +19 -0
  84. package/dist/apps/services/api/post-submission-attachment-urls.js.map +1 -0
  85. package/dist/apps/services/api/prefill.d.ts +1 -0
  86. package/dist/apps/services/api/prefill.js +70 -0
  87. package/dist/apps/services/api/prefill.js.map +1 -0
  88. package/dist/apps/services/api/receipt-id.d.ts +2 -0
  89. package/dist/apps/services/api/receipt-id.js +54 -0
  90. package/dist/apps/services/api/receipt-id.js.map +1 -0
  91. package/dist/apps/services/api/scheduling.d.ts +38 -0
  92. package/dist/apps/services/api/scheduling.js +142 -0
  93. package/dist/apps/services/api/scheduling.js.map +1 -0
  94. package/dist/apps/services/api/submissions.d.ts +18 -0
  95. package/dist/apps/services/api/submissions.js +166 -0
  96. package/dist/apps/services/api/submissions.js.map +1 -0
  97. package/dist/apps/services/cognito.d.ts +302 -0
  98. package/dist/apps/services/cognito.js +441 -0
  99. package/dist/apps/services/cognito.js.map +1 -0
  100. package/dist/apps/services/draft-data-store.d.ts +16 -0
  101. package/dist/apps/services/draft-data-store.js +115 -0
  102. package/dist/apps/services/draft-data-store.js.map +1 -0
  103. package/dist/apps/services/errors/oneBlinkAppsError.d.ts +35 -0
  104. package/dist/apps/services/errors/oneBlinkAppsError.js +32 -0
  105. package/dist/apps/services/errors/oneBlinkAppsError.js.map +1 -0
  106. package/dist/apps/services/external-id-generation.d.ts +4 -0
  107. package/dist/apps/services/external-id-generation.js +59 -0
  108. package/dist/apps/services/external-id-generation.js.map +1 -0
  109. package/dist/apps/services/fetch.d.ts +12 -0
  110. package/dist/apps/services/fetch.js +95 -0
  111. package/dist/apps/services/fetch.js.map +1 -0
  112. package/dist/apps/services/forms-key.d.ts +51 -0
  113. package/dist/apps/services/forms-key.js +83 -0
  114. package/dist/apps/services/forms-key.js.map +1 -0
  115. package/dist/apps/services/generate-generic-error.d.ts +3 -0
  116. package/dist/apps/services/generate-generic-error.js +52 -0
  117. package/dist/apps/services/generate-generic-error.js.map +1 -0
  118. package/dist/apps/services/generateOneBlinkDownloader.d.ts +2 -0
  119. package/dist/apps/services/generateOneBlinkDownloader.js +11 -0
  120. package/dist/apps/services/generateOneBlinkDownloader.js.map +1 -0
  121. package/dist/apps/services/generateOneBlinkUploader.d.ts +2 -0
  122. package/dist/apps/services/generateOneBlinkUploader.js +11 -0
  123. package/dist/apps/services/generateOneBlinkUploader.js.map +1 -0
  124. package/dist/apps/services/getDeviceInformation.d.ts +17 -0
  125. package/dist/apps/services/getDeviceInformation.js +38 -0
  126. package/dist/apps/services/getDeviceInformation.js.map +1 -0
  127. package/dist/apps/services/integration-elements.d.ts +383 -0
  128. package/dist/apps/services/integration-elements.js +761 -0
  129. package/dist/apps/services/integration-elements.js.map +1 -0
  130. package/dist/apps/services/job-prefill.d.ts +40 -0
  131. package/dist/apps/services/job-prefill.js +78 -0
  132. package/dist/apps/services/job-prefill.js.map +1 -0
  133. package/dist/apps/services/payment-providers/BPOINTPaymentProvider.d.ts +29 -0
  134. package/dist/apps/services/payment-providers/BPOINTPaymentProvider.js +59 -0
  135. package/dist/apps/services/payment-providers/BPOINTPaymentProvider.js.map +1 -0
  136. package/dist/apps/services/payment-providers/CPPayPaymentProvider.d.ts +27 -0
  137. package/dist/apps/services/payment-providers/CPPayPaymentProvider.js +63 -0
  138. package/dist/apps/services/payment-providers/CPPayPaymentProvider.js.map +1 -0
  139. package/dist/apps/services/payment-providers/NSWGovPayPaymentProvider.d.ts +30 -0
  140. package/dist/apps/services/payment-providers/NSWGovPayPaymentProvider.js +116 -0
  141. package/dist/apps/services/payment-providers/NSWGovPayPaymentProvider.js.map +1 -0
  142. package/dist/apps/services/payment-providers/WestpacQuickStreamPaymentProvider.d.ts +49 -0
  143. package/dist/apps/services/payment-providers/WestpacQuickStreamPaymentProvider.js +116 -0
  144. package/dist/apps/services/payment-providers/WestpacQuickStreamPaymentProvider.js.map +1 -0
  145. package/dist/apps/services/payment-providers/receipt-items.d.ts +8 -0
  146. package/dist/apps/services/payment-providers/receipt-items.js +58 -0
  147. package/dist/apps/services/payment-providers/receipt-items.js.map +1 -0
  148. package/dist/apps/services/pending-queue.d.ts +150 -0
  149. package/dist/apps/services/pending-queue.js +316 -0
  150. package/dist/apps/services/pending-queue.js.map +1 -0
  151. package/dist/apps/services/prepareSubmissionData.d.ts +2 -0
  152. package/dist/apps/services/prepareSubmissionData.js +113 -0
  153. package/dist/apps/services/prepareSubmissionData.js.map +1 -0
  154. package/dist/apps/services/query-string.d.ts +1 -0
  155. package/dist/apps/services/query-string.js +16 -0
  156. package/dist/apps/services/query-string.js.map +1 -0
  157. package/dist/apps/services/replaceInjectablesWithSubmissionValues.d.ts +3 -0
  158. package/dist/apps/services/replaceInjectablesWithSubmissionValues.js +18 -0
  159. package/dist/apps/services/replaceInjectablesWithSubmissionValues.js.map +1 -0
  160. package/dist/apps/services/schedulingHandlers.d.ts +36 -0
  161. package/dist/apps/services/schedulingHandlers.js +76 -0
  162. package/dist/apps/services/schedulingHandlers.js.map +1 -0
  163. package/dist/apps/services/server-validation.d.ts +2 -0
  164. package/dist/apps/services/server-validation.js +36 -0
  165. package/dist/apps/services/server-validation.js.map +1 -0
  166. package/dist/apps/services/serverRequest.d.ts +5 -0
  167. package/dist/apps/services/serverRequest.js +24 -0
  168. package/dist/apps/services/serverRequest.js.map +1 -0
  169. package/dist/apps/services/submit.d.ts +19 -0
  170. package/dist/apps/services/submit.js +219 -0
  171. package/dist/apps/services/submit.js.map +1 -0
  172. package/dist/apps/services/uploadAttachment.d.ts +52 -0
  173. package/dist/apps/services/uploadAttachment.js +73 -0
  174. package/dist/apps/services/uploadAttachment.js.map +1 -0
  175. package/dist/apps/services/user-token.d.ts +27 -0
  176. package/dist/apps/services/user-token.js +33 -0
  177. package/dist/apps/services/user-token.js.map +1 -0
  178. package/dist/apps/services/utils.d.ts +12 -0
  179. package/dist/apps/services/utils.js +100 -0
  180. package/dist/apps/services/utils.js.map +1 -0
  181. package/dist/apps/submission-service.d.ts +226 -0
  182. package/dist/apps/submission-service.js +425 -0
  183. package/dist/apps/submission-service.js.map +1 -0
  184. package/dist/apps/tenants.d.ts +30 -0
  185. package/dist/apps/tenants.js +155 -0
  186. package/dist/apps/tenants.js.map +1 -0
  187. package/dist/apps/types/form.d.ts +4 -0
  188. package/dist/apps/types/form.js +2 -0
  189. package/dist/apps/types/form.js.map +1 -0
  190. package/dist/apps/types/payments.d.ts +45 -0
  191. package/dist/apps/types/payments.js +2 -0
  192. package/dist/apps/types/payments.js.map +1 -0
  193. package/dist/apps/types/scheduling.d.ts +5 -0
  194. package/dist/apps/types/scheduling.js +2 -0
  195. package/dist/apps/types/scheduling.js.map +1 -0
  196. package/dist/apps/types/submissions.d.ts +175 -0
  197. package/dist/apps/types/submissions.js +2 -0
  198. package/dist/apps/types/submissions.js.map +1 -0
  199. package/dist/components/ArcGISWebMap.js +7 -4
  200. package/dist/components/ArcGISWebMap.js.map +1 -1
  201. package/dist/components/ConfirmDialog.js +1 -0
  202. package/dist/components/ConfirmDialog.js.map +1 -1
  203. package/dist/components/CustomAccordion.d.ts +3 -3
  204. package/dist/components/Lists.d.ts +4 -1
  205. package/dist/components/calendar-bookings/CalendarBookingsCancelForm.js +1 -1
  206. package/dist/components/calendar-bookings/CalendarBookingsCancelForm.js.map +1 -1
  207. package/dist/components/calendar-bookings/CalendarBookingsForm.d.ts +1 -1
  208. package/dist/components/calendar-bookings/CalendarBookingsForm.js +1 -1
  209. package/dist/components/calendar-bookings/CalendarBookingsForm.js.map +1 -1
  210. package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.js +1 -1
  211. package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.js.map +1 -1
  212. package/dist/components/calendar-bookings/ErrorModal.d.ts +1 -1
  213. package/dist/components/calendar-bookings/ErrorModal.js +1 -1
  214. package/dist/components/calendar-bookings/ErrorModal.js.map +1 -1
  215. package/dist/components/downloadable-files/index.d.ts +1 -1
  216. package/dist/components/downloadable-files/index.js +1 -1
  217. package/dist/components/downloadable-files/index.js.map +1 -1
  218. package/dist/components/downloadable-files/resource-components.d.ts +1 -1
  219. package/dist/components/downloadable-files/resource-components.js +1 -1
  220. package/dist/components/downloadable-files/resource-components.js.map +1 -1
  221. package/dist/components/formStore/FormStoreTableProvider.js +1 -1
  222. package/dist/components/formStore/FormStoreTableProvider.js.map +1 -1
  223. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +1 -3
  224. package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js.map +1 -1
  225. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +1 -1
  226. package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js.map +1 -1
  227. package/dist/components/formStore/OneBlinkFormStoreProvider.js +1 -1
  228. package/dist/components/formStore/OneBlinkFormStoreProvider.js.map +1 -1
  229. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +1 -3
  230. package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js.map +1 -1
  231. package/dist/components/formStore/OneBlinkFormStoreTable.js +7 -7
  232. package/dist/components/formStore/OneBlinkFormStoreTable.js.map +1 -1
  233. package/dist/components/formStore/display/ElementDisplay.js +2 -2
  234. package/dist/components/formStore/display/ElementDisplay.js.map +1 -1
  235. package/dist/components/formStore/table/ColumnFilters.js +1 -1
  236. package/dist/components/formStore/table/ColumnFilters.js.map +1 -1
  237. package/dist/components/formStore/table/FormElementTableCell.js +1 -1
  238. package/dist/components/formStore/table/FormElementTableCell.js.map +1 -1
  239. package/dist/components/formStore/table/Pickers.js +1 -1
  240. package/dist/components/formStore/table/Pickers.js.map +1 -1
  241. package/dist/components/formStore/table/RepeatableSetCell.js +1 -0
  242. package/dist/components/formStore/table/RepeatableSetCell.js.map +1 -1
  243. package/dist/components/formStore/table/generateColumns.d.ts +1 -1
  244. package/dist/components/formStore/table/generateColumns.js.map +1 -1
  245. package/dist/components/formStore/table/useFormStoreTable.d.ts +1 -1
  246. package/dist/components/formStore/table/useFormStoreTable.js +3 -1
  247. package/dist/components/formStore/table/useFormStoreTable.js.map +1 -1
  248. package/dist/components/formStore/useFormStoreTableContext.d.ts +2 -2
  249. package/dist/components/mfa/MfaDialog.d.ts +1 -1
  250. package/dist/components/mfa/MfaDialog.js +1 -1
  251. package/dist/components/mfa/MfaDialog.js.map +1 -1
  252. package/dist/components/mfa/MultiFactorAuthentication.d.ts +1 -1
  253. package/dist/components/payments/PaymentForm.js +1 -1
  254. package/dist/components/payments/PaymentForm.js.map +1 -1
  255. package/dist/components/payments/WestpacQuickStreamPaymentForm.d.ts +1 -1
  256. package/dist/components/payments/WestpacQuickStreamPaymentForm.js +1 -1
  257. package/dist/components/payments/WestpacQuickStreamPaymentForm.js.map +1 -1
  258. package/dist/components/renderer/AutocompleteDropdown.js +1 -1
  259. package/dist/components/renderer/AutocompleteDropdown.js.map +1 -1
  260. package/dist/components/renderer/LookupNotification.js +2 -2
  261. package/dist/components/renderer/LookupNotification.js.map +1 -1
  262. package/dist/components/renderer/Modal.js +3 -1
  263. package/dist/components/renderer/Modal.js.map +1 -1
  264. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js +1 -1
  265. package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js.map +1 -1
  266. package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
  267. package/dist/components/renderer/ReverseGeocode.js +1 -1
  268. package/dist/components/renderer/ReverseGeocode.js.map +1 -1
  269. package/dist/components/renderer/Tooltip.js +3 -1
  270. package/dist/components/renderer/Tooltip.js.map +1 -1
  271. package/dist/form-elements/FormElementAPINSWLiquorLicence.js +1 -1
  272. package/dist/form-elements/FormElementAPINSWLiquorLicence.js.map +1 -1
  273. package/dist/form-elements/FormElementArcGISWebMap.js.map +1 -1
  274. package/dist/form-elements/FormElementAutocomplete.js +1 -1
  275. package/dist/form-elements/FormElementAutocomplete.js.map +1 -1
  276. package/dist/form-elements/FormElementBSB.js +7 -3
  277. package/dist/form-elements/FormElementBSB.js.map +1 -1
  278. package/dist/form-elements/FormElementCalculation.js +2 -2
  279. package/dist/form-elements/FormElementCalculation.js.map +1 -1
  280. package/dist/form-elements/FormElementCivicaNameRecord.js +1 -1
  281. package/dist/form-elements/FormElementCivicaNameRecord.js.map +1 -1
  282. package/dist/form-elements/FormElementCivicaStreetName.js +1 -1
  283. package/dist/form-elements/FormElementCivicaStreetName.js.map +1 -1
  284. package/dist/form-elements/FormElementCompliance.d.ts +1 -1
  285. package/dist/form-elements/FormElementCompliance.js.map +1 -1
  286. package/dist/form-elements/FormElementDate.js +1 -1
  287. package/dist/form-elements/FormElementDate.js.map +1 -1
  288. package/dist/form-elements/FormElementDateTime.js +1 -1
  289. package/dist/form-elements/FormElementDateTime.js.map +1 -1
  290. package/dist/form-elements/FormElementFile.d.ts +1 -1
  291. package/dist/form-elements/FormElementFile.js.map +1 -1
  292. package/dist/form-elements/FormElementFiles.d.ts +1 -1
  293. package/dist/form-elements/FormElementFiles.js.map +1 -1
  294. package/dist/form-elements/FormElementFreshdeskDependentField.js +3 -10
  295. package/dist/form-elements/FormElementFreshdeskDependentField.js.map +1 -1
  296. package/dist/form-elements/FormElementGeoscapeAddress.js +1 -1
  297. package/dist/form-elements/FormElementGeoscapeAddress.js.map +1 -1
  298. package/dist/form-elements/FormElementGoogleAddress.js +1 -1
  299. package/dist/form-elements/FormElementGoogleAddress.js.map +1 -1
  300. package/dist/form-elements/FormElementLocation.js +6 -2
  301. package/dist/form-elements/FormElementLocation.js.map +1 -1
  302. package/dist/form-elements/FormElementLookupButton.js +1 -1
  303. package/dist/form-elements/FormElementLookupButton.js.map +1 -1
  304. package/dist/form-elements/FormElementNumber.js +1 -1
  305. package/dist/form-elements/FormElementNumber.js.map +1 -1
  306. package/dist/form-elements/FormElementPointAddress.js +1 -1
  307. package/dist/form-elements/FormElementPointAddress.js.map +1 -1
  308. package/dist/form-elements/FormElementPointAddressV3.js +1 -1
  309. package/dist/form-elements/FormElementPointAddressV3.js.map +1 -1
  310. package/dist/form-elements/FormElementPointCadastralParcel.js +1 -1
  311. package/dist/form-elements/FormElementPointCadastralParcel.js.map +1 -1
  312. package/dist/form-elements/FormElementSummary.js +4 -2
  313. package/dist/form-elements/FormElementSummary.js.map +1 -1
  314. package/dist/form-elements/FormElementTime.js +1 -1
  315. package/dist/form-elements/FormElementTime.js.map +1 -1
  316. package/dist/hooks/attachments/useAttachment.d.ts +1 -1
  317. package/dist/hooks/attachments/useAttachment.js +1 -1
  318. package/dist/hooks/attachments/useAttachment.js.map +1 -1
  319. package/dist/hooks/attachments/useAttachments.d.ts +1 -1
  320. package/dist/hooks/attachments/useAttachments.js.map +1 -1
  321. package/dist/hooks/form-date-picker/useFormDatePickerProps.js +2 -0
  322. package/dist/hooks/form-date-picker/useFormDatePickerProps.js.map +1 -1
  323. package/dist/hooks/useAuth.js +1 -1
  324. package/dist/hooks/useAuth.js.map +1 -1
  325. package/dist/hooks/useConditionalLogic.js +1 -1
  326. package/dist/hooks/useConditionalLogic.js.map +1 -1
  327. package/dist/hooks/useDrafts.d.ts +1 -1
  328. package/dist/hooks/useDrafts.js +1 -1
  329. package/dist/hooks/useDrafts.js.map +1 -1
  330. package/dist/hooks/useDynamicOptionsLoaderState.d.ts +1 -1
  331. package/dist/hooks/useDynamicOptionsLoaderState.js +1 -1
  332. package/dist/hooks/useDynamicOptionsLoaderState.js.map +1 -1
  333. package/dist/hooks/useFormElementLookups.d.ts +1 -1
  334. package/dist/hooks/useFormElementLookups.js +1 -1
  335. package/dist/hooks/useFormElementLookups.js.map +1 -1
  336. package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +1 -1
  337. package/dist/hooks/useFormSubmissionAutoSaveState.js +1 -1
  338. package/dist/hooks/useFormSubmissionAutoSaveState.js.map +1 -1
  339. package/dist/hooks/useFormSubmissionDuration.js +2 -0
  340. package/dist/hooks/useFormSubmissionDuration.js.map +1 -1
  341. package/dist/hooks/useIsOffline.js +1 -1
  342. package/dist/hooks/useIsOffline.js.map +1 -1
  343. package/dist/hooks/useLoadDataState.js +3 -1
  344. package/dist/hooks/useLoadDataState.js.map +1 -1
  345. package/dist/hooks/useLogin.js +1 -1
  346. package/dist/hooks/useLogin.js.map +1 -1
  347. package/dist/hooks/useMfa.d.ts +1 -1
  348. package/dist/hooks/useMfa.js +1 -1
  349. package/dist/hooks/useMfa.js.map +1 -1
  350. package/dist/hooks/useOnUploadAttachment.d.ts +1 -1
  351. package/dist/hooks/useOnUploadAttachment.js +1 -1
  352. package/dist/hooks/useOnUploadAttachment.js.map +1 -1
  353. package/dist/hooks/useOneBlinkFormContainer.d.ts +2 -1
  354. package/dist/hooks/useOneBlinkFormContainer.js +2 -2
  355. package/dist/hooks/useOneBlinkFormContainer.js.map +1 -1
  356. package/dist/hooks/usePendingSubmissions.d.ts +1 -1
  357. package/dist/hooks/usePendingSubmissions.js +1 -1
  358. package/dist/hooks/usePendingSubmissions.js.map +1 -1
  359. package/dist/hooks/useReplaceableText.js +1 -1
  360. package/dist/hooks/useReplaceableText.js.map +1 -1
  361. package/dist/hooks/useSignUp.js +1 -1
  362. package/dist/hooks/useSignUp.js.map +1 -1
  363. package/dist/index.d.ts +1 -0
  364. package/dist/index.js +2 -0
  365. package/dist/index.js.map +1 -1
  366. package/dist/services/attachments.d.ts +1 -1
  367. package/dist/services/attachments.js +1 -1
  368. package/dist/services/attachments.js.map +1 -1
  369. package/dist/services/blob-utils.js +1 -1
  370. package/dist/services/blob-utils.js.map +1 -1
  371. package/dist/services/checkIfAttachmentsExist.d.ts +1 -1
  372. package/dist/services/checkIfAttachmentsExist.js.map +1 -1
  373. package/dist/services/defaultCoordinates.js +1 -1
  374. package/dist/services/defaultCoordinates.js.map +1 -1
  375. package/dist/services/download-file.d.ts +1 -1
  376. package/dist/services/download-file.js +2 -2
  377. package/dist/services/download-file.js.map +1 -1
  378. package/dist/services/drawTimestampOnCanvas.js +1 -1
  379. package/dist/services/drawTimestampOnCanvas.js.map +1 -1
  380. package/dist/services/form-validation/validateSubmission.js +1 -1
  381. package/dist/services/form-validation/validateSubmission.js.map +1 -1
  382. package/dist/services/form-validation/validators.d.ts +1 -1
  383. package/dist/services/form-validation/validators.js.map +1 -1
  384. package/dist/services/generate-default-data.js +1 -1
  385. package/dist/services/generate-default-data.js.map +1 -1
  386. package/dist/services/injectableOptions.js +1 -1
  387. package/dist/services/injectableOptions.js.map +1 -1
  388. package/dist/styles.css +208 -204
  389. package/dist/types/attachments.d.ts +1 -1
  390. package/dist/types/attachments.js.map +1 -1
  391. package/dist/utils/sendGoogleAnalyticsEvent.js +1 -1
  392. package/dist/utils/sendGoogleAnalyticsEvent.js.map +1 -1
  393. package/package.json +47 -36
@@ -0,0 +1,718 @@
1
+ import { formElementsService, typeCastService } from '@oneblink/sdk-core';
2
+ import OneBlinkAppsError from './services/errors/oneBlinkAppsError';
3
+ import { isOffline } from './offline-service';
4
+ import { isLoggedIn } from './services/cognito';
5
+ import { fetchWithError, generateHeaders, searchRequest, getRequest, } from './services/fetch';
6
+ import tenants from './tenants';
7
+ import Sentry from './Sentry';
8
+ export * from './services/integration-elements';
9
+ /**
10
+ * Get an array of OneBlink Forms.
11
+ *
12
+ * #### Example
13
+ *
14
+ * ```js
15
+ * const formsAppId = 1
16
+ * const forms = await formService.getForms(formAppId)
17
+ * ```
18
+ *
19
+ * @param formsAppId
20
+ * @param abortSignal
21
+ * @returns
22
+ */
23
+ async function getForms(formsAppId, abortSignal) {
24
+ const url = `${tenants.current.apiOrigin}/forms-apps/${formsAppId}/forms`;
25
+ return searchRequest(url, {
26
+ injectForms: true,
27
+ }, abortSignal)
28
+ .then(({ forms }) => forms)
29
+ .catch((error) => {
30
+ Sentry.captureException(error);
31
+ console.error('Error retrieving forms', error);
32
+ if (isOffline()) {
33
+ throw new OneBlinkAppsError('You are currently offline and do not have a local copy of this app available, please connect to the internet and try again', {
34
+ originalError: error,
35
+ isOffline: true,
36
+ });
37
+ }
38
+ switch (error.status) {
39
+ case 401: {
40
+ throw new OneBlinkAppsError('The application you are attempting to view requires authentication. Please login and try again.', {
41
+ originalError: error,
42
+ requiresLogin: true,
43
+ httpStatusCode: error.status,
44
+ });
45
+ }
46
+ case 403: {
47
+ throw new OneBlinkAppsError('You do not have access to this application. Please contact your administrator to gain the correct level of access.', {
48
+ originalError: error,
49
+ requiresAccessRequest: true,
50
+ httpStatusCode: error.status,
51
+ });
52
+ }
53
+ case 400:
54
+ case 404: {
55
+ throw new OneBlinkAppsError('We could not find the application you are looking for. Please contact your administrator to ensure the application configuration has been completed successfully.', {
56
+ originalError: error,
57
+ title: 'Unknown Application',
58
+ requiresAccessRequest: true,
59
+ httpStatusCode: error.status,
60
+ });
61
+ }
62
+ default: {
63
+ throw new OneBlinkAppsError('An unknown error has occurred. Please contact support if the problem persists.', {
64
+ originalError: error,
65
+ httpStatusCode: error.status,
66
+ });
67
+ }
68
+ }
69
+ });
70
+ }
71
+ /**
72
+ * Get a OneBlink Form by id or slug.
73
+ *
74
+ * #### Example
75
+ *
76
+ * ```js
77
+ * const form = await formService.getForm({
78
+ * formId: 1,
79
+ * formAppId: 1, // `formsAppId` is optional
80
+ * formsAppEnvironmentId: undefined,
81
+ * formSlug: undefined,
82
+ * toCompleteTask: false,
83
+ * })
84
+ *
85
+ * // OR
86
+ *
87
+ * const form = await formService.getForm({
88
+ * formSlug: 'audit',
89
+ * formAppId: 1,
90
+ * formsAppEnvironmentId: undefined,
91
+ * formId: undefined,
92
+ * toCompleteTask: false,
93
+ * })
94
+ *
95
+ * // OR
96
+ *
97
+ * const form = await formService.getForm({
98
+ * formSlug: 'audit',
99
+ * formsAppEnvironmentId: 1,
100
+ * formAppId: undefined,
101
+ * formId: undefined,
102
+ * toCompleteTask: false,
103
+ * })
104
+ * ```
105
+ *
106
+ * @param options
107
+ * @returns
108
+ */
109
+ async function getForm({ formsAppId, formsAppEnvironmentId, abortSignal, formSlug, toCompleteTask, formId, }) {
110
+ return ((() => {
111
+ const queryParams = {
112
+ toCompleteTask,
113
+ };
114
+ if (formSlug) {
115
+ if (!Number.isNaN(formsAppEnvironmentId)) {
116
+ return searchRequest(`${tenants.current.apiOrigin}/forms-app-environments/${formsAppEnvironmentId}/forms/${formSlug}`, queryParams, abortSignal);
117
+ }
118
+ if (!Number.isNaN(formsAppId)) {
119
+ return searchRequest(`${tenants.current.apiOrigin}/forms-apps/${formsAppId}/forms/${formSlug}`, queryParams, abortSignal);
120
+ }
121
+ }
122
+ return searchRequest(`${tenants.current.apiOrigin}/form-definitions/${formId}`, queryParams, abortSignal);
123
+ })()
124
+ // If we could not find a form by Id for any reason,
125
+ // we will try and get it from cache from the all forms endpoint
126
+ .catch((error) => {
127
+ if (typeof formsAppId !== 'number' || Number.isNaN(formsAppId)) {
128
+ throw error;
129
+ }
130
+ return getForms(formsAppId, abortSignal)
131
+ .catch(() => {
132
+ // Ignore getForms() error and throw the error from attempt to get form by id
133
+ throw error;
134
+ })
135
+ .then((forms) => {
136
+ const form = forms.find((form) => form.id === formId || (formSlug && form.slug === formSlug));
137
+ if (form) {
138
+ return form;
139
+ }
140
+ throw error;
141
+ });
142
+ })
143
+ .catch((error) => {
144
+ Sentry.captureException(error);
145
+ console.warn('Error retrieving form from API', {
146
+ formsAppId,
147
+ formsAppEnvironmentId,
148
+ formSlug,
149
+ formId,
150
+ }, error);
151
+ if (isOffline()) {
152
+ throw new OneBlinkAppsError('You are currently offline and do not have a local copy of this form available, please connect to the internet and try again', {
153
+ originalError: error,
154
+ isOffline: true,
155
+ });
156
+ }
157
+ switch (error.status) {
158
+ case 401: {
159
+ throw new OneBlinkAppsError('The form you are attempting to complete requires authentication. Please login and try again.', {
160
+ originalError: error,
161
+ requiresLogin: true,
162
+ httpStatusCode: error.status,
163
+ });
164
+ }
165
+ case 403: {
166
+ throw new OneBlinkAppsError('You do not have access to complete this form. Please contact your administrator to gain the correct level of access.', {
167
+ originalError: error,
168
+ requiresAccessRequest: true,
169
+ httpStatusCode: error.status,
170
+ });
171
+ }
172
+ case 400:
173
+ case 404: {
174
+ let message = 'We could not find the form you are looking for. Please contact your administrator to ensure your form configuration has been completed successfully.';
175
+ const requiresLogin = !isLoggedIn();
176
+ if (requiresLogin) {
177
+ message +=
178
+ ' Try logging in if you believe this form requires authentication.';
179
+ }
180
+ throw new OneBlinkAppsError(message, {
181
+ originalError: error,
182
+ title: 'Unknown Form',
183
+ httpStatusCode: error.status,
184
+ requiresLogin,
185
+ });
186
+ }
187
+ default: {
188
+ throw new OneBlinkAppsError('An unknown error has occurred. Please contact support if the problem persists.', {
189
+ originalError: error,
190
+ httpStatusCode: error.status,
191
+ });
192
+ }
193
+ }
194
+ }));
195
+ }
196
+ /**
197
+ * Get an array of OneBlink Form Element Lookups.
198
+ *
199
+ * #### Example
200
+ *
201
+ * ```js
202
+ * const organisationId = '1234567890ABCDEFG'
203
+ * const formsAppEnvironmentId = 1
204
+ * const formElementLookups = await formService.getFormElementLookups(
205
+ * organisationId,
206
+ * formsAppEnvironmentId,
207
+ * )
208
+ * ```
209
+ *
210
+ * @param organisationId
211
+ * @param formsAppEnvironmentId
212
+ * @param abortSignal
213
+ * @returns
214
+ */
215
+ async function getFormElementLookups(organisationId, formsAppEnvironmentId, abortSignal) {
216
+ try {
217
+ const data = await searchRequest(`${tenants.current.apiOrigin}/form-element-lookups`, {
218
+ organisationId,
219
+ }, abortSignal);
220
+ return data.formElementLookups.map((formElementLookup) => ({
221
+ ...formElementLookup,
222
+ url: getFormElementLookupUrl(formElementLookup, formsAppEnvironmentId),
223
+ records: getFormElementLookupRecords(formElementLookup, formsAppEnvironmentId),
224
+ runLookupOnClear: getFormElementLookupRunLookupOnClear(formElementLookup, formsAppEnvironmentId),
225
+ }));
226
+ }
227
+ catch (error) {
228
+ Sentry.captureException(error);
229
+ console.warn(`Error retrieving form element lookups for organisationId ${organisationId}`, error);
230
+ throw error;
231
+ }
232
+ }
233
+ function getFormElementLookupUrl(formElementLookup, formsAppEnvironmentId) {
234
+ if (formElementLookup.type === 'STATIC_DATA') {
235
+ return null;
236
+ }
237
+ return formElementLookup.environments.reduce((url, formElementLookupEnvironment) => {
238
+ if (!url &&
239
+ formElementLookupEnvironment.formsAppEnvironmentId ===
240
+ formsAppEnvironmentId) {
241
+ return formElementLookupEnvironment.url;
242
+ }
243
+ return url;
244
+ }, null);
245
+ }
246
+ function getFormElementLookupRecords(formElementLookup, formsAppEnvironmentId) {
247
+ if (formElementLookup.type !== 'STATIC_DATA') {
248
+ return null;
249
+ }
250
+ return formElementLookup.environments.reduce((records, formElementLookupEnvironment) => {
251
+ if (!records &&
252
+ formElementLookupEnvironment.formsAppEnvironmentId ===
253
+ formsAppEnvironmentId) {
254
+ return formElementLookupEnvironment.records;
255
+ }
256
+ return records;
257
+ }, null);
258
+ }
259
+ function getFormElementLookupRunLookupOnClear(formElementLookup, formsAppEnvironmentId) {
260
+ if (formElementLookup.type === 'STATIC_DATA') {
261
+ return formElementLookup.environments.some((formElementLookupEnvironment) => {
262
+ return (formElementLookupEnvironment.formsAppEnvironmentId ===
263
+ formsAppEnvironmentId &&
264
+ formElementLookupEnvironment.records.some((record) => {
265
+ return record.inputType === 'UNDEFINED';
266
+ }));
267
+ });
268
+ }
269
+ return formElementLookup.environments.some((formElementLookupEnvironment) => {
270
+ return (formElementLookupEnvironment.formsAppEnvironmentId ===
271
+ formsAppEnvironmentId && formElementLookupEnvironment.runLookupOnClear);
272
+ });
273
+ }
274
+ /**
275
+ * Get a OneBlink Form Element Lookup.
276
+ *
277
+ * #### Example
278
+ *
279
+ * ```js
280
+ * const organisationId = '1234567890ABCDEFG'
281
+ * const formsAppEnvironmentId = 1
282
+ * const formElementLookupId = 1
283
+ * const formElementLookup = await formService.getFormElementLookupById(
284
+ * organisationId,
285
+ * formsAppEnvironmentId,
286
+ * formElementLookupId,
287
+ * )
288
+ * if (formElementLookup) {
289
+ * // Use lookup
290
+ * }
291
+ * ```
292
+ *
293
+ * @param organisationId
294
+ * @param formsAppEnvironmentId
295
+ * @param formElementLookupId
296
+ * @param abortSignal
297
+ * @returns
298
+ */
299
+ async function getFormElementLookupById(organisationId, formsAppEnvironmentId, formElementLookupId, abortSignal) {
300
+ return getFormElementLookups(organisationId, formsAppEnvironmentId, abortSignal).then((formElementLookups) => formElementLookups.find((formElementLookup) => formElementLookup.id === formElementLookupId));
301
+ }
302
+ /**
303
+ * Get a list of options sets for an organisation.
304
+ *
305
+ * @param organisationId The identifier for the organisation to fetch options
306
+ * sets for
307
+ * @param abortSignal A signal to abort any asynchronous processing
308
+ * @returns An array of options sets
309
+ */
310
+ async function getFormElementOptionsSets(organisationId, abortSignal) {
311
+ const { formElementDynamicOptionSets } = await searchRequest(`${tenants.current.apiOrigin}/form-element-options/dynamic`, {
312
+ organisationId,
313
+ }, abortSignal);
314
+ return formElementDynamicOptionSets;
315
+ }
316
+ /**
317
+ * Get the options for an options set.
318
+ *
319
+ * @param formElementOptionsSet The form element options set to generate options
320
+ * from
321
+ * @param options The environment and form to pull options from
322
+ * @param abortSignal A signal to abort any asynchronous processing
323
+ * @returns A result object containing potential options or a predictable error
324
+ */
325
+ async function getFormElementOptionsSetOptions(formElementOptionsSet, { formsAppEnvironmentId, formId, }, abortSignal) {
326
+ switch (formElementOptionsSet.type) {
327
+ case 'HCMS_CATEGORIES':
328
+ case 'STATIC': {
329
+ const formElementOptionsSetEnvironment = formElementOptionsSet.environments.find((environment) => environment.formsAppEnvironmentId === formsAppEnvironmentId);
330
+ if (formElementOptionsSetEnvironment) {
331
+ return {
332
+ type: 'OPTIONS',
333
+ options: formElementOptionsSetEnvironment.options,
334
+ };
335
+ }
336
+ return {
337
+ type: 'ERROR',
338
+ error: new OneBlinkAppsError(`List environment configuration has not been completed yet. Please contact your administrator to rectify the issue.`, {
339
+ title: 'Misconfigured List',
340
+ originalError: new Error(JSON.stringify({
341
+ formElementOptionsSetId: formElementOptionsSet.id,
342
+ formElementOptionsSetName: formElementOptionsSet.name,
343
+ formsAppEnvironmentId,
344
+ }, null, 2)),
345
+ }),
346
+ };
347
+ }
348
+ case 'SHAREPOINT_LIST_COLUMN': {
349
+ const formElementOptionSetEnvironmentSharePointListColumn = formElementOptionsSet.environments.find((environment) => environment.formsAppEnvironmentId === formsAppEnvironmentId);
350
+ if (!formElementOptionSetEnvironmentSharePointListColumn) {
351
+ return {
352
+ type: 'ERROR',
353
+ error: new OneBlinkAppsError(`Dynamic list configuration has not been completed yet. Please contact your administrator to rectify the issue.`, {
354
+ title: 'Misconfigured Dynamic List',
355
+ originalError: new Error(JSON.stringify({
356
+ formElementOptionsSetId: formElementOptionsSet.id,
357
+ formElementOptionsSetName: formElementOptionsSet.name,
358
+ formsAppEnvironmentId,
359
+ }, null, 2)),
360
+ }),
361
+ };
362
+ }
363
+ try {
364
+ const { options } = await getRequest(`${tenants.current.apiOrigin}/forms/${formId}/sharepoint-list-column-options?formElementOptionsSetId=${formElementOptionsSet.id}`, abortSignal);
365
+ return {
366
+ type: 'OPTIONS',
367
+ options,
368
+ };
369
+ }
370
+ catch (error) {
371
+ Sentry.captureException(error);
372
+ return {
373
+ type: 'ERROR',
374
+ error: new OneBlinkAppsError(`Options could not be loaded. Please contact your administrator to rectify the issue.`, {
375
+ title: 'Invalid List Response',
376
+ httpStatusCode: error.status,
377
+ originalError: new OneBlinkAppsError(JSON.stringify({
378
+ formsAppEnvironmentId,
379
+ formElementOptionsSetId: formElementOptionsSet.id,
380
+ formElementOptionsSetName: formElementOptionsSet.name,
381
+ sharepointSite: formElementOptionSetEnvironmentSharePointListColumn
382
+ .sharepointSite.displayName,
383
+ sharepointList: formElementOptionSetEnvironmentSharePointListColumn
384
+ .sharepointList.displayName,
385
+ sharepointColumn: formElementOptionSetEnvironmentSharePointListColumn
386
+ .sharepointColumn.displayName,
387
+ }, null, 2), {
388
+ originalError: error,
389
+ }),
390
+ }),
391
+ };
392
+ }
393
+ }
394
+ case 'GOOD_TO_GO_CUSTOM_FIELD': {
395
+ const formElementOptionSetEnvironmentGoodToGoCustomField = formElementOptionsSet.environments.find((environment) => environment.formsAppEnvironmentId === formsAppEnvironmentId);
396
+ if (!formElementOptionSetEnvironmentGoodToGoCustomField) {
397
+ return {
398
+ type: 'ERROR',
399
+ error: new OneBlinkAppsError(`Dynamic list configuration has not been completed yet. Please contact your administrator to rectify the issue.`, {
400
+ title: 'Misconfigured Dynamic List',
401
+ originalError: new Error(JSON.stringify({
402
+ formElementOptionsSetId: formElementOptionsSet.id,
403
+ formElementOptionsSetName: formElementOptionsSet.name,
404
+ formsAppEnvironmentId,
405
+ }, null, 2)),
406
+ }),
407
+ };
408
+ }
409
+ try {
410
+ const { options } = await getRequest(`${tenants.current.apiOrigin}/forms/${formId}/good-to-go-custom-field-options?formElementOptionsSetId=${formElementOptionsSet.id}`, abortSignal);
411
+ return {
412
+ type: 'OPTIONS',
413
+ options,
414
+ };
415
+ }
416
+ catch (error) {
417
+ Sentry.captureException(error);
418
+ return {
419
+ type: 'ERROR',
420
+ error: new OneBlinkAppsError(`Options could not be loaded. Please contact your administrator to rectify the issue.`, {
421
+ title: 'Invalid List Response',
422
+ httpStatusCode: error.status,
423
+ originalError: new OneBlinkAppsError(JSON.stringify({
424
+ formsAppEnvironmentId,
425
+ formElementOptionsSetId: formElementOptionsSet.id,
426
+ formElementOptionsSetName: formElementOptionsSet.name,
427
+ goodToGoCustomField: formElementOptionSetEnvironmentGoodToGoCustomField
428
+ .goodToGoCustomField.displayName,
429
+ }, null, 2), {
430
+ originalError: error,
431
+ }),
432
+ }),
433
+ };
434
+ }
435
+ }
436
+ case 'HOSTED_API':
437
+ case 'URL':
438
+ default: {
439
+ const formElementOptionsSetEnvironment = formElementOptionsSet.environments.find((environment) => environment.formsAppEnvironmentId === formsAppEnvironmentId);
440
+ if (!formElementOptionsSetEnvironment) {
441
+ return {
442
+ type: 'ERROR',
443
+ error: new OneBlinkAppsError(`Dynamic list configuration has not been completed yet. Please contact your administrator to rectify the issue.`, {
444
+ title: 'Misconfigured Dynamic List',
445
+ originalError: new Error(JSON.stringify({
446
+ formElementOptionsSetId: formElementOptionsSet.id,
447
+ formElementOptionsSetName: formElementOptionsSet.name,
448
+ formsAppEnvironmentId,
449
+ }, null, 2)),
450
+ }),
451
+ };
452
+ }
453
+ if (formElementOptionsSetEnvironment.searchQuerystringParameter) {
454
+ return {
455
+ type: 'SEARCH',
456
+ url: formElementOptionsSetEnvironment.url,
457
+ searchQuerystringParameter: formElementOptionsSetEnvironment.searchQuerystringParameter,
458
+ };
459
+ }
460
+ try {
461
+ const headers = await generateHeaders();
462
+ const response = await fetchWithError(formElementOptionsSetEnvironment.url, {
463
+ headers,
464
+ signal: abortSignal,
465
+ });
466
+ if (!response.ok) {
467
+ const text = await response.text();
468
+ throw new Error(text);
469
+ }
470
+ const options = await response.json();
471
+ return {
472
+ type: 'OPTIONS',
473
+ options,
474
+ };
475
+ }
476
+ catch (error) {
477
+ Sentry.captureException(error);
478
+ return {
479
+ type: 'ERROR',
480
+ error: new OneBlinkAppsError(`Options could not be loaded. Please contact your administrator to rectify the issue.`, {
481
+ title: 'Invalid List Response',
482
+ httpStatusCode: error.status,
483
+ originalError: new OneBlinkAppsError(JSON.stringify({
484
+ formElementOptionsSetId: formElementOptionsSet.id,
485
+ formElementOptionsSetName: formElementOptionsSet.name,
486
+ formElementOptionsSetUrl: formElementOptionsSetEnvironment.url,
487
+ formsAppEnvironmentId,
488
+ }, null, 2), {
489
+ originalError: error,
490
+ }),
491
+ }),
492
+ };
493
+ }
494
+ }
495
+ }
496
+ }
497
+ /**
498
+ * @param form The form definition the form element is in. Used to generate
499
+ * conditional logic for the
500
+ * @param element The form element to have options appended to
501
+ * @param data The untrusted options that need to be parsed.
502
+ * @returns A new form element. The element passed in is not mutated.
503
+ */
504
+ function parseFormElementOptions(form, element, options) {
505
+ const dynamicOptions = formElementsService.parseDynamicFormElementOptions(options);
506
+ const conditionallyShowOptionsElementIds = [];
507
+ const formElementOptions = dynamicOptions.map((option) => {
508
+ const optionsMap = (option.attributes || []).reduce((memo, { label, value }) => {
509
+ var _a;
510
+ if (!element.attributesMapping ||
511
+ !Array.isArray(element.attributesMapping)) {
512
+ return memo;
513
+ }
514
+ const attribute = element.attributesMapping.find((map) => map.attribute === label);
515
+ if (!attribute)
516
+ return memo;
517
+ const elementId = attribute.elementId;
518
+ const predicateElement = formElementsService.findFormElement(form.elements, (el) => el.id === elementId);
519
+ if (!predicateElement) {
520
+ return memo;
521
+ }
522
+ const predicateElementWithOptions = typeCastService.formElements.toOptionsElement(predicateElement);
523
+ if (!predicateElementWithOptions) {
524
+ return memo;
525
+ }
526
+ const predicateOption = (_a = predicateElementWithOptions.options) === null || _a === void 0 ? void 0 : _a.find((option) => option.value === value);
527
+ memo[elementId] = memo[elementId] || {
528
+ elementId,
529
+ optionIds: [],
530
+ };
531
+ memo[elementId].optionIds.push((predicateOption === null || predicateOption === void 0 ? void 0 : predicateOption.id) || (predicateOption === null || predicateOption === void 0 ? void 0 : predicateOption.value) || value);
532
+ conditionallyShowOptionsElementIds.push(elementId);
533
+ return memo;
534
+ }, {});
535
+ return {
536
+ ...option,
537
+ id: option.value,
538
+ attributes: Object.keys(optionsMap).map((key) => optionsMap[key]),
539
+ };
540
+ });
541
+ return {
542
+ ...element,
543
+ options: formElementOptions,
544
+ conditionallyShowOptionsElementIds,
545
+ };
546
+ }
547
+ /**
548
+ * Load the options for Form Elements that are using a OneBlink List. Useful to
549
+ * cache all the dynamic options when first opening an application.
550
+ *
551
+ * @param forms
552
+ * @param abortSignal
553
+ * @returns
554
+ */
555
+ async function loadFormElementDynamicOptions(forms, abortSignal) {
556
+ await Promise.all([
557
+ (async () => {
558
+ const formWithFreshdeskFields = forms.find((form) => {
559
+ return formElementsService.findFormElement(form.elements, (el) => {
560
+ const formElementWithOptions = typeCastService.formElements.toOptionsElement(el);
561
+ return ((formElementWithOptions === null || formElementWithOptions === void 0 ? void 0 : formElementWithOptions.optionsType) === 'FRESHDESK_FIELD' &&
562
+ !!formElementWithOptions.freshdeskFieldName);
563
+ });
564
+ }, []);
565
+ if (formWithFreshdeskFields) {
566
+ await getFreshdeskFields(formWithFreshdeskFields.id, abortSignal);
567
+ }
568
+ })(),
569
+ (async () => {
570
+ // Get the lists id for each element
571
+ const formElementOptionsSetIds = forms.reduce((ids, form) => {
572
+ formElementsService.forEachFormElementWithOptions(form.elements, (el) => {
573
+ if (el.optionsType === 'DYNAMIC' &&
574
+ typeof el.dynamicOptionSetId === 'number') {
575
+ ids.push(el.dynamicOptionSetId);
576
+ }
577
+ });
578
+ return ids;
579
+ }, []);
580
+ if (!formElementOptionsSetIds.length) {
581
+ return;
582
+ }
583
+ // Get the lists for all the ids
584
+ const organisationId = forms[0].organisationId;
585
+ const allFormElementOptionsSets = await getFormElementOptionsSets(organisationId, abortSignal);
586
+ const formElementOptionsSets = allFormElementOptionsSets.filter(({ id }) => formElementOptionsSetIds.includes(id || 0));
587
+ // Get the options for all the lists
588
+ await Promise.all(formElementOptionsSets.map(async (formElementOptionsSet) => {
589
+ await getFormElementOptionsSetOptions(formElementOptionsSet, {
590
+ formsAppEnvironmentId: forms[0].formsAppEnvironmentId,
591
+ formId: forms[0].id,
592
+ }, abortSignal);
593
+ }));
594
+ })(),
595
+ (async () => {
596
+ //Check if there are any forms with a lookup
597
+ const isThereAFormWithLookup = forms.some((form) => {
598
+ const element = formElementsService.findFormElement(form.elements, (el) => {
599
+ const lookupElement = typeCastService.formElements.toLookupElement(el);
600
+ if (lookupElement) {
601
+ if (lookupElement.isDataLookup || lookupElement.isElementLookup) {
602
+ return true;
603
+ }
604
+ }
605
+ return false;
606
+ });
607
+ return !!element;
608
+ });
609
+ if (!isThereAFormWithLookup) {
610
+ return;
611
+ }
612
+ //Obtain all lookups
613
+ const organisationId = forms[0].organisationId;
614
+ const formsAppEnvironmentId = forms[0].formsAppEnvironmentId;
615
+ await getFormElementLookups(organisationId, formsAppEnvironmentId, abortSignal);
616
+ })(),
617
+ ]);
618
+ }
619
+ /**
620
+ * Get the Freshdesk Fields associated with a form
621
+ *
622
+ * @param formId The identifier for the form to fetch freshdesk fields for
623
+ * @param abortSignal A signal to abort any asynchronous processing
624
+ * @returns An array of Freshdesk Fields
625
+ */
626
+ async function getFreshdeskFields(formId, abortSignal) {
627
+ return await getRequest(`${tenants.current.apiOrigin}/forms/${formId}/freshdesk-fields`, abortSignal);
628
+ }
629
+ /**
630
+ * Parse Freshdesk Field options associated with a form element as form element
631
+ * options.
632
+ *
633
+ * @param freshdeskFields An array of Freshdesk Fields
634
+ * @param element The element to array of Freshdesk Fields
635
+ * @returns An object containing valid options or a predictable error
636
+ */
637
+ function parseFreshdeskFieldOptions(freshdeskFields, element) {
638
+ const freshdeskField = freshdeskFields.find((freshdeskField) => element.freshdeskFieldName === freshdeskField.name);
639
+ if (!freshdeskField) {
640
+ return {
641
+ type: 'ERROR',
642
+ error: new OneBlinkAppsError(`Freshdesk Field does not exist. Please contact your administrator to rectify the issue.`, {
643
+ title: 'Missing Freshdesk Field',
644
+ originalError: new Error(JSON.stringify(element, null, 2)),
645
+ }),
646
+ };
647
+ }
648
+ const options = freshdeskField.options;
649
+ if (!Array.isArray(options)) {
650
+ return {
651
+ type: 'ERROR',
652
+ error: new OneBlinkAppsError(`Freshdesk Field does not have options. Please contact your administrator to rectify the issue.`, {
653
+ title: 'Invalid Freshdesk Field',
654
+ originalError: new Error(JSON.stringify({ element, freshdeskField }, null, 2)),
655
+ }),
656
+ };
657
+ }
658
+ return {
659
+ type: 'OPTIONS',
660
+ options: mapNestedOptions(options) || [],
661
+ };
662
+ }
663
+ const mapNestedOptions = (options) => {
664
+ return options === null || options === void 0 ? void 0 : options.map(({ value, label, options: nestedOptions }) => ({
665
+ id: value.toString(),
666
+ value: value.toString(),
667
+ label,
668
+ options: mapNestedOptions(nestedOptions),
669
+ }));
670
+ };
671
+ /**
672
+ * Get configuration for a OneBlink Form.
673
+ *
674
+ * #### Example
675
+ *
676
+ * ```js
677
+ * const formId = 1
678
+ * const configuration = await formService.getFormConfiguration(formId)
679
+ * ```
680
+ *
681
+ * @param formId
682
+ * @param abortSignal
683
+ * @returns
684
+ */
685
+ async function getFormConfiguration(formId, abortSignal) {
686
+ const url = `${tenants.current.apiOrigin}/forms/${formId}/configuration`;
687
+ try {
688
+ return await getRequest(url, abortSignal);
689
+ }
690
+ catch (err) {
691
+ Sentry.captureException(err);
692
+ const error = err;
693
+ if (isOffline()) {
694
+ throw new OneBlinkAppsError('You are currently offline and do not have a local copy of this form available, please connect to the internet and try again', {
695
+ originalError: error,
696
+ isOffline: true,
697
+ });
698
+ }
699
+ switch (error.status) {
700
+ case 400:
701
+ case 404: {
702
+ throw new OneBlinkAppsError('We could not find the form you are looking for. Please contact support if the problem persists.', {
703
+ originalError: error,
704
+ title: 'Unknown Form',
705
+ httpStatusCode: error.status,
706
+ });
707
+ }
708
+ default: {
709
+ throw new OneBlinkAppsError('An unknown error has occurred. Please contact support if the problem persists.', {
710
+ originalError: error,
711
+ httpStatusCode: error.status,
712
+ });
713
+ }
714
+ }
715
+ }
716
+ }
717
+ export { getForms, getForm, getFormElementLookups, getFormElementLookupById, getFormElementOptionsSets, getFormElementOptionsSetOptions, parseFormElementOptions, getFreshdeskFields, parseFreshdeskFieldOptions, loadFormElementDynamicOptions, getFormConfiguration, };
718
+ //# sourceMappingURL=form-service.js.map