@oneblink/apps-react 8.14.0 → 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.
- package/dist/OneBlinkAutoSaveForm.d.ts +1 -1
- package/dist/OneBlinkAutoSaveForm.js +6 -8
- package/dist/OneBlinkAutoSaveForm.js.map +1 -1
- package/dist/OneBlinkForm.d.ts +6 -10
- package/dist/OneBlinkForm.js +3 -6
- package/dist/OneBlinkForm.js.map +1 -1
- package/dist/OneBlinkFormBase.d.ts +2 -2
- package/dist/OneBlinkFormBase.js +51 -147
- package/dist/OneBlinkFormBase.js.map +1 -1
- package/dist/OneBlinkReadOnlyForm.d.ts +2 -2
- package/dist/OneBlinkReadOnlyForm.js +3 -2
- package/dist/OneBlinkReadOnlyForm.js.map +1 -1
- package/dist/PaymentReceipt.d.ts +2 -2
- package/dist/PaymentReceipt.js +12 -33
- package/dist/PaymentReceipt.js.map +1 -1
- package/dist/apps/Sentry.d.ts +7 -0
- package/dist/apps/Sentry.js +16 -0
- package/dist/apps/Sentry.js.map +1 -0
- package/dist/apps/approvals-service.d.ts +390 -0
- package/dist/apps/approvals-service.js +987 -0
- package/dist/apps/approvals-service.js.map +1 -0
- package/dist/apps/attachments-service.d.ts +49 -0
- package/dist/apps/attachments-service.js +134 -0
- package/dist/apps/attachments-service.js.map +1 -0
- package/dist/apps/auth-service.d.ts +114 -0
- package/dist/apps/auth-service.js +194 -0
- package/dist/apps/auth-service.js.map +1 -0
- package/dist/apps/auto-save-service.d.ts +82 -0
- package/dist/apps/auto-save-service.js +105 -0
- package/dist/apps/auto-save-service.js.map +1 -0
- package/dist/apps/draft-service.d.ts +148 -0
- package/dist/apps/draft-service.js +583 -0
- package/dist/apps/draft-service.js.map +1 -0
- package/dist/apps/form-service.d.ts +204 -0
- package/dist/apps/form-service.js +718 -0
- package/dist/apps/form-service.js.map +1 -0
- package/dist/apps/form-store-service.d.ts +141 -0
- package/dist/apps/form-store-service.js +114 -0
- package/dist/apps/form-store-service.js.map +1 -0
- package/dist/apps/forms-app-environment-service.d.ts +19 -0
- package/dist/apps/forms-app-environment-service.js +55 -0
- package/dist/apps/forms-app-environment-service.js.map +1 -0
- package/dist/apps/forms-app-service.d.ts +18 -0
- package/dist/apps/forms-app-service.js +53 -0
- package/dist/apps/forms-app-service.js.map +1 -0
- package/dist/apps/index.d.ts +253 -0
- package/dist/apps/index.js +255 -0
- package/dist/apps/index.js.map +1 -0
- package/dist/apps/job-service.d.ts +20 -0
- package/dist/apps/job-service.js +95 -0
- package/dist/apps/job-service.js.map +1 -0
- package/dist/apps/localisation-service.d.ts +207 -0
- package/dist/apps/localisation-service.js +321 -0
- package/dist/apps/localisation-service.js.map +1 -0
- package/dist/apps/notification-service.d.ts +83 -0
- package/dist/apps/notification-service.js +315 -0
- package/dist/apps/notification-service.js.map +1 -0
- package/dist/apps/offline-service.d.ts +18 -0
- package/dist/apps/offline-service.js +25 -0
- package/dist/apps/offline-service.js.map +1 -0
- package/dist/apps/payment-service.d.ts +110 -0
- package/dist/apps/payment-service.js +182 -0
- package/dist/apps/payment-service.js.map +1 -0
- package/dist/apps/prefill-service.d.ts +14 -0
- package/dist/apps/prefill-service.js +19 -0
- package/dist/apps/prefill-service.js.map +1 -0
- package/dist/apps/scheduled-tasks-service.d.ts +127 -0
- package/dist/apps/scheduled-tasks-service.js +240 -0
- package/dist/apps/scheduled-tasks-service.js.map +1 -0
- package/dist/apps/scheduling-service.d.ts +101 -0
- package/dist/apps/scheduling-service.js +171 -0
- package/dist/apps/scheduling-service.js.map +1 -0
- package/dist/apps/services/AWSCognitoClient.d.ts +55 -0
- package/dist/apps/services/AWSCognitoClient.js +436 -0
- package/dist/apps/services/AWSCognitoClient.js.map +1 -0
- package/dist/apps/services/api/drafts.d.ts +7 -0
- package/dist/apps/services/api/drafts.js +236 -0
- package/dist/apps/services/api/drafts.js.map +1 -0
- package/dist/apps/services/api/notifications.d.ts +3 -0
- package/dist/apps/services/api/notifications.js +60 -0
- package/dist/apps/services/api/notifications.js.map +1 -0
- package/dist/apps/services/api/payment.d.ts +23 -0
- package/dist/apps/services/api/payment.js +235 -0
- package/dist/apps/services/api/payment.js.map +1 -0
- package/dist/apps/services/api/post-submission-attachment-urls.d.ts +7 -0
- package/dist/apps/services/api/post-submission-attachment-urls.js +19 -0
- package/dist/apps/services/api/post-submission-attachment-urls.js.map +1 -0
- package/dist/apps/services/api/prefill.d.ts +1 -0
- package/dist/apps/services/api/prefill.js +70 -0
- package/dist/apps/services/api/prefill.js.map +1 -0
- package/dist/apps/services/api/receipt-id.d.ts +2 -0
- package/dist/apps/services/api/receipt-id.js +54 -0
- package/dist/apps/services/api/receipt-id.js.map +1 -0
- package/dist/apps/services/api/scheduling.d.ts +38 -0
- package/dist/apps/services/api/scheduling.js +142 -0
- package/dist/apps/services/api/scheduling.js.map +1 -0
- package/dist/apps/services/api/submissions.d.ts +18 -0
- package/dist/apps/services/api/submissions.js +166 -0
- package/dist/apps/services/api/submissions.js.map +1 -0
- package/dist/apps/services/cognito.d.ts +302 -0
- package/dist/apps/services/cognito.js +441 -0
- package/dist/apps/services/cognito.js.map +1 -0
- package/dist/apps/services/draft-data-store.d.ts +16 -0
- package/dist/apps/services/draft-data-store.js +115 -0
- package/dist/apps/services/draft-data-store.js.map +1 -0
- package/dist/apps/services/errors/oneBlinkAppsError.d.ts +35 -0
- package/dist/apps/services/errors/oneBlinkAppsError.js +32 -0
- package/dist/apps/services/errors/oneBlinkAppsError.js.map +1 -0
- package/dist/apps/services/external-id-generation.d.ts +4 -0
- package/dist/apps/services/external-id-generation.js +59 -0
- package/dist/apps/services/external-id-generation.js.map +1 -0
- package/dist/apps/services/fetch.d.ts +12 -0
- package/dist/apps/services/fetch.js +95 -0
- package/dist/apps/services/fetch.js.map +1 -0
- package/dist/apps/services/forms-key.d.ts +51 -0
- package/dist/apps/services/forms-key.js +83 -0
- package/dist/apps/services/forms-key.js.map +1 -0
- package/dist/apps/services/generate-generic-error.d.ts +3 -0
- package/dist/apps/services/generate-generic-error.js +52 -0
- package/dist/apps/services/generate-generic-error.js.map +1 -0
- package/dist/apps/services/generateOneBlinkDownloader.d.ts +2 -0
- package/dist/apps/services/generateOneBlinkDownloader.js +11 -0
- package/dist/apps/services/generateOneBlinkDownloader.js.map +1 -0
- package/dist/apps/services/generateOneBlinkUploader.d.ts +2 -0
- package/dist/apps/services/generateOneBlinkUploader.js +11 -0
- package/dist/apps/services/generateOneBlinkUploader.js.map +1 -0
- package/dist/apps/services/getDeviceInformation.d.ts +17 -0
- package/dist/apps/services/getDeviceInformation.js +38 -0
- package/dist/apps/services/getDeviceInformation.js.map +1 -0
- package/dist/apps/services/integration-elements.d.ts +383 -0
- package/dist/apps/services/integration-elements.js +761 -0
- package/dist/apps/services/integration-elements.js.map +1 -0
- package/dist/apps/services/job-prefill.d.ts +40 -0
- package/dist/apps/services/job-prefill.js +78 -0
- package/dist/apps/services/job-prefill.js.map +1 -0
- package/dist/apps/services/payment-providers/BPOINTPaymentProvider.d.ts +29 -0
- package/dist/apps/services/payment-providers/BPOINTPaymentProvider.js +59 -0
- package/dist/apps/services/payment-providers/BPOINTPaymentProvider.js.map +1 -0
- package/dist/apps/services/payment-providers/CPPayPaymentProvider.d.ts +27 -0
- package/dist/apps/services/payment-providers/CPPayPaymentProvider.js +63 -0
- package/dist/apps/services/payment-providers/CPPayPaymentProvider.js.map +1 -0
- package/dist/apps/services/payment-providers/NSWGovPayPaymentProvider.d.ts +30 -0
- package/dist/apps/services/payment-providers/NSWGovPayPaymentProvider.js +116 -0
- package/dist/apps/services/payment-providers/NSWGovPayPaymentProvider.js.map +1 -0
- package/dist/apps/services/payment-providers/WestpacQuickStreamPaymentProvider.d.ts +49 -0
- package/dist/apps/services/payment-providers/WestpacQuickStreamPaymentProvider.js +116 -0
- package/dist/apps/services/payment-providers/WestpacQuickStreamPaymentProvider.js.map +1 -0
- package/dist/apps/services/payment-providers/receipt-items.d.ts +8 -0
- package/dist/apps/services/payment-providers/receipt-items.js +58 -0
- package/dist/apps/services/payment-providers/receipt-items.js.map +1 -0
- package/dist/apps/services/pending-queue.d.ts +150 -0
- package/dist/apps/services/pending-queue.js +316 -0
- package/dist/apps/services/pending-queue.js.map +1 -0
- package/dist/apps/services/prepareSubmissionData.d.ts +2 -0
- package/dist/apps/services/prepareSubmissionData.js +113 -0
- package/dist/apps/services/prepareSubmissionData.js.map +1 -0
- package/dist/apps/services/query-string.d.ts +1 -0
- package/dist/apps/services/query-string.js +16 -0
- package/dist/apps/services/query-string.js.map +1 -0
- package/dist/apps/services/replaceInjectablesWithSubmissionValues.d.ts +3 -0
- package/dist/apps/services/replaceInjectablesWithSubmissionValues.js +18 -0
- package/dist/apps/services/replaceInjectablesWithSubmissionValues.js.map +1 -0
- package/dist/apps/services/schedulingHandlers.d.ts +36 -0
- package/dist/apps/services/schedulingHandlers.js +76 -0
- package/dist/apps/services/schedulingHandlers.js.map +1 -0
- package/dist/apps/services/server-validation.d.ts +2 -0
- package/dist/apps/services/server-validation.js +36 -0
- package/dist/apps/services/server-validation.js.map +1 -0
- package/dist/apps/services/serverRequest.d.ts +5 -0
- package/dist/apps/services/serverRequest.js +24 -0
- package/dist/apps/services/serverRequest.js.map +1 -0
- package/dist/apps/services/submit.d.ts +19 -0
- package/dist/apps/services/submit.js +219 -0
- package/dist/apps/services/submit.js.map +1 -0
- package/dist/apps/services/uploadAttachment.d.ts +52 -0
- package/dist/apps/services/uploadAttachment.js +73 -0
- package/dist/apps/services/uploadAttachment.js.map +1 -0
- package/dist/apps/services/user-token.d.ts +27 -0
- package/dist/apps/services/user-token.js +33 -0
- package/dist/apps/services/user-token.js.map +1 -0
- package/dist/apps/services/utils.d.ts +12 -0
- package/dist/apps/services/utils.js +100 -0
- package/dist/apps/services/utils.js.map +1 -0
- package/dist/apps/submission-service.d.ts +226 -0
- package/dist/apps/submission-service.js +425 -0
- package/dist/apps/submission-service.js.map +1 -0
- package/dist/apps/tenants.d.ts +30 -0
- package/dist/apps/tenants.js +155 -0
- package/dist/apps/tenants.js.map +1 -0
- package/dist/apps/types/form.d.ts +4 -0
- package/dist/apps/types/form.js +2 -0
- package/dist/apps/types/form.js.map +1 -0
- package/dist/apps/types/payments.d.ts +45 -0
- package/dist/apps/types/payments.js +2 -0
- package/dist/apps/types/payments.js.map +1 -0
- package/dist/apps/types/scheduling.d.ts +5 -0
- package/dist/apps/types/scheduling.js +2 -0
- package/dist/apps/types/scheduling.js.map +1 -0
- package/dist/apps/types/submissions.d.ts +175 -0
- package/dist/apps/types/submissions.js +2 -0
- package/dist/apps/types/submissions.js.map +1 -0
- package/dist/components/ArcGISWebMap.d.ts +3 -3
- package/dist/components/ArcGISWebMap.js +29 -39
- package/dist/components/ArcGISWebMap.js.map +1 -1
- package/dist/components/Clickable.d.ts +1 -1
- package/dist/components/Clickable.js +2 -1
- package/dist/components/Clickable.js.map +1 -1
- package/dist/components/ConfirmDialog.d.ts +2 -2
- package/dist/components/ConfirmDialog.js +8 -14
- package/dist/components/ConfirmDialog.js.map +1 -1
- package/dist/components/CopyToClipboardIconButton.d.ts +1 -1
- package/dist/components/CopyToClipboardIconButton.js +10 -14
- package/dist/components/CopyToClipboardIconButton.js.map +1 -1
- package/dist/components/CustomAccordion.d.ts +2 -19
- package/dist/components/ErrorSnackbar.d.ts +1 -1
- package/dist/components/ErrorSnackbar.js +6 -7
- package/dist/components/ErrorSnackbar.js.map +1 -1
- package/dist/components/ImageCropper/CropModal.d.ts +1 -1
- package/dist/components/ImageCropper/CropModal.js +2 -8
- package/dist/components/ImageCropper/CropModal.js.map +1 -1
- package/dist/components/ImageCropper/index.d.ts +1 -1
- package/dist/components/ImageCropper/index.js +3 -5
- package/dist/components/ImageCropper/index.js.map +1 -1
- package/dist/components/InputClear.js +2 -3
- package/dist/components/InputClear.js.map +1 -1
- package/dist/components/InputField.d.ts +3 -2
- package/dist/components/InputField.js +5 -2
- package/dist/components/InputField.js.map +1 -1
- package/dist/components/Lists.d.ts +1 -3
- package/dist/components/Lists.js +2 -2
- package/dist/components/Lists.js.map +1 -1
- package/dist/components/LoadingWithMessage.js +2 -6
- package/dist/components/LoadingWithMessage.js.map +1 -1
- package/dist/components/MaterialIcon.d.ts +2 -4
- package/dist/components/MaterialIcon.js +4 -4
- package/dist/components/MaterialIcon.js.map +1 -1
- package/dist/components/NotificationGrid.d.ts +2 -2
- package/dist/components/NotificationGrid.js +4 -7
- package/dist/components/NotificationGrid.js.map +1 -1
- package/dist/components/QuillHTML.d.ts +1 -1
- package/dist/components/QuillHTML.js +2 -1
- package/dist/components/QuillHTML.js.map +1 -1
- package/dist/components/SuccessSnackbar.d.ts +1 -1
- package/dist/components/SuccessSnackbar.js +3 -6
- package/dist/components/SuccessSnackbar.js.map +1 -1
- package/dist/components/ValidationErrorsCard.d.ts +2 -2
- package/dist/components/ValidationErrorsCard.js +32 -49
- package/dist/components/ValidationErrorsCard.js.map +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsCancelForm.d.ts +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsCancelForm.js +6 -7
- package/dist/components/calendar-bookings/CalendarBookingsCancelForm.js.map +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsContainer.d.ts +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsContainer.js +9 -11
- package/dist/components/calendar-bookings/CalendarBookingsContainer.js.map +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsForm.d.ts +2 -2
- package/dist/components/calendar-bookings/CalendarBookingsForm.js +34 -46
- package/dist/components/calendar-bookings/CalendarBookingsForm.js.map +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsProvider.d.ts +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsProvider.js +2 -6
- package/dist/components/calendar-bookings/CalendarBookingsProvider.js.map +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.d.ts +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.js +6 -7
- package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.js.map +1 -1
- package/dist/components/calendar-bookings/ErrorModal.d.ts +1 -1
- package/dist/components/calendar-bookings/ErrorModal.js +8 -12
- package/dist/components/calendar-bookings/ErrorModal.js.map +1 -1
- package/dist/components/downloadable-files/LayoutProvider.d.ts +1 -1
- package/dist/components/downloadable-files/LayoutProvider.js +2 -1
- package/dist/components/downloadable-files/LayoutProvider.js.map +1 -1
- package/dist/components/downloadable-files/index.d.ts +2 -2
- package/dist/components/downloadable-files/index.js +4 -6
- package/dist/components/downloadable-files/index.js.map +1 -1
- package/dist/components/downloadable-files/resource-components.d.ts +4 -4
- package/dist/components/downloadable-files/resource-components.js +10 -33
- package/dist/components/downloadable-files/resource-components.js.map +1 -1
- package/dist/components/formStore/FormStoreTableProvider.d.ts +1 -1
- package/dist/components/formStore/FormStoreTableProvider.js +6 -16
- package/dist/components/formStore/FormStoreTableProvider.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +1 -1
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +3 -4
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +1 -1
- package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js +21 -54
- package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +2 -2
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +8 -27
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +1 -1
- package/dist/components/formStore/OneBlinkFormStoreProvider.js +5 -6
- package/dist/components/formStore/OneBlinkFormStoreProvider.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +1 -1
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +2 -3
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +1 -1
- package/dist/components/formStore/OneBlinkFormStoreTable.js +129 -95
- package/dist/components/formStore/OneBlinkFormStoreTable.js.map +1 -1
- package/dist/components/formStore/display/ElementDisplay.d.ts +3 -4
- package/dist/components/formStore/display/ElementDisplay.js +11 -14
- package/dist/components/formStore/display/ElementDisplay.js.map +1 -1
- package/dist/components/formStore/display/FormStoreIcon.d.ts +1 -1
- package/dist/components/formStore/display/FormStoreIcon.js +2 -2
- package/dist/components/formStore/display/FormStoreIcon.js.map +1 -1
- package/dist/components/formStore/table/ActionedByTableCell.d.ts +1 -1
- package/dist/components/formStore/table/ActionedByTableCell.js +6 -7
- package/dist/components/formStore/table/ActionedByTableCell.js.map +1 -1
- package/dist/components/formStore/table/ColumnFilters.d.ts +3 -3
- package/dist/components/formStore/table/ColumnFilters.js +85 -101
- package/dist/components/formStore/table/ColumnFilters.js.map +1 -1
- package/dist/components/formStore/table/FormElementTableCell.d.ts +1 -1
- package/dist/components/formStore/table/FormElementTableCell.js +35 -98
- package/dist/components/formStore/table/FormElementTableCell.js.map +1 -1
- package/dist/components/formStore/table/HeaderCellMoreButton.d.ts +4 -4
- package/dist/components/formStore/table/HeaderCellMoreButton.js +26 -32
- package/dist/components/formStore/table/HeaderCellMoreButton.js.map +1 -1
- package/dist/components/formStore/table/Pickers.d.ts +4 -4
- package/dist/components/formStore/table/Pickers.js +15 -14
- package/dist/components/formStore/table/Pickers.js.map +1 -1
- package/dist/components/formStore/table/RepeatableSetCell.js +17 -21
- package/dist/components/formStore/table/RepeatableSetCell.js.map +1 -1
- package/dist/components/formStore/table/RepeatableSetCellAccordion.js +2 -4
- package/dist/components/formStore/table/RepeatableSetCellAccordion.js.map +1 -1
- package/dist/components/formStore/table/TableCellCopyButton.d.ts +1 -1
- package/dist/components/formStore/table/TableCellCopyButton.js +2 -3
- package/dist/components/formStore/table/TableCellCopyButton.js.map +1 -1
- package/dist/components/formStore/table/generateColumns.d.ts +6 -7
- package/dist/components/formStore/table/generateColumns.js +23 -18
- package/dist/components/formStore/table/generateColumns.js.map +1 -1
- package/dist/components/formStore/table/getVersionedState.d.ts +4 -3
- package/dist/components/formStore/table/getVersionedState.js +23 -6
- package/dist/components/formStore/table/getVersionedState.js.map +1 -1
- package/dist/components/formStore/table/useFormStoreTable.d.ts +146 -37
- package/dist/components/formStore/table/useFormStoreTable.js +268 -199
- package/dist/components/formStore/table/useFormStoreTable.js.map +1 -1
- package/dist/components/formStore/useFormStoreTableContext.d.ts +144 -35
- package/dist/components/messages/ErrorMessage.js +3 -3
- package/dist/components/messages/ErrorMessage.js.map +1 -1
- package/dist/components/messages/LargeIconMessage.js +2 -6
- package/dist/components/messages/LargeIconMessage.js.map +1 -1
- package/dist/components/messages/NoResourcesYet.d.ts +1 -1
- package/dist/components/messages/NoResourcesYet.js +2 -1
- package/dist/components/messages/NoResourcesYet.js.map +1 -1
- package/dist/components/mfa/MfaDialog.d.ts +2 -2
- package/dist/components/mfa/MfaDialog.js +10 -49
- package/dist/components/mfa/MfaDialog.js.map +1 -1
- package/dist/components/mfa/MultiFactorAuthentication.d.ts +2 -5
- package/dist/components/mfa/MultiFactorAuthentication.js +14 -45
- package/dist/components/mfa/MultiFactorAuthentication.js.map +1 -1
- package/dist/components/payments/PaymentForm.d.ts +1 -1
- package/dist/components/payments/PaymentForm.js +5 -10
- package/dist/components/payments/PaymentForm.js.map +1 -1
- package/dist/components/payments/WestpacQuickStreamPaymentForm.d.ts +2 -2
- package/dist/components/payments/WestpacQuickStreamPaymentForm.js +12 -46
- package/dist/components/payments/WestpacQuickStreamPaymentForm.js.map +1 -1
- package/dist/components/receipts/Receipt.d.ts +1 -1
- package/dist/components/receipts/Receipt.js +2 -2
- package/dist/components/receipts/Receipt.js.map +1 -1
- package/dist/components/receipts/ReceiptButton.d.ts +1 -1
- package/dist/components/receipts/ReceiptButton.js +3 -2
- package/dist/components/receipts/ReceiptButton.js.map +1 -1
- package/dist/components/receipts/ReceiptList.d.ts +1 -1
- package/dist/components/receipts/ReceiptList.js +2 -9
- package/dist/components/receipts/ReceiptList.js.map +1 -1
- package/dist/components/receipts/ReceiptListItem.d.ts +1 -1
- package/dist/components/receipts/ReceiptListItem.js +2 -11
- package/dist/components/receipts/ReceiptListItem.js.map +1 -1
- package/dist/components/renderer/AnnotationModal.d.ts +1 -1
- package/dist/components/renderer/AnnotationModal.js +6 -14
- package/dist/components/renderer/AnnotationModal.js.map +1 -1
- package/dist/components/renderer/AutocompleteDropdown.d.ts +1 -1
- package/dist/components/renderer/AutocompleteDropdown.js +16 -35
- package/dist/components/renderer/AutocompleteDropdown.js.map +1 -1
- package/dist/components/renderer/CopyToClipboardButton.d.ts +1 -1
- package/dist/components/renderer/CopyToClipboardButton.js +2 -4
- package/dist/components/renderer/CopyToClipboardButton.js.map +1 -1
- package/dist/components/renderer/CustomisableButtonInner.js +2 -4
- package/dist/components/renderer/CustomisableButtonInner.js.map +1 -1
- package/dist/components/renderer/FormElementLabelContainer.d.ts +3 -3
- package/dist/components/renderer/FormElementLabelContainer.js +7 -14
- package/dist/components/renderer/FormElementLabelContainer.js.map +1 -1
- package/dist/components/renderer/FormElementOptions.d.ts +1 -1
- package/dist/components/renderer/FormElementOptions.js +4 -5
- package/dist/components/renderer/FormElementOptions.js.map +1 -1
- package/dist/components/renderer/FormElementValidationMessage.js +3 -5
- package/dist/components/renderer/FormElementValidationMessage.js.map +1 -1
- package/dist/components/renderer/LookupButton.d.ts +1 -1
- package/dist/components/renderer/LookupButton.js +4 -8
- package/dist/components/renderer/LookupButton.js.map +1 -1
- package/dist/components/renderer/LookupNotification.d.ts +1 -1
- package/dist/components/renderer/LookupNotification.js +16 -38
- package/dist/components/renderer/LookupNotification.js.map +1 -1
- package/dist/components/renderer/Modal.d.ts +3 -3
- package/dist/components/renderer/Modal.js +7 -10
- package/dist/components/renderer/Modal.js.map +1 -1
- package/dist/components/renderer/OnLoading.d.ts +1 -1
- package/dist/components/renderer/OnLoading.js +3 -3
- package/dist/components/renderer/OnLoading.js.map +1 -1
- package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.d.ts +1 -1
- package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js +3 -5
- package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js.map +1 -1
- package/dist/components/renderer/OneBlinkFormElements.d.ts +1 -1
- package/dist/components/renderer/OneBlinkFormElements.js +61 -90
- package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
- package/dist/components/renderer/PageFormElements.d.ts +1 -1
- package/dist/components/renderer/PageFormElements.js +3 -5
- package/dist/components/renderer/PageFormElements.js.map +1 -1
- package/dist/components/renderer/ProgressBar.d.ts +1 -1
- package/dist/components/renderer/ProgressBar.js +2 -1
- package/dist/components/renderer/ProgressBar.js.map +1 -1
- package/dist/components/renderer/ReverseGeocode.d.ts +1 -1
- package/dist/components/renderer/ReverseGeocode.js +3 -2
- package/dist/components/renderer/ReverseGeocode.js.map +1 -1
- package/dist/components/renderer/ToggleAllCheckbox.js +4 -5
- package/dist/components/renderer/ToggleAllCheckbox.js.map +1 -1
- package/dist/components/renderer/Tooltip.d.ts +1 -1
- package/dist/components/renderer/Tooltip.js +5 -1
- package/dist/components/renderer/Tooltip.js.map +1 -1
- package/dist/components/renderer/attachments/AttachmentStatus.d.ts +1 -1
- package/dist/components/renderer/attachments/AttachmentStatus.js +6 -15
- package/dist/components/renderer/attachments/AttachmentStatus.js.map +1 -1
- package/dist/components/renderer/attachments/DropdownMenu.js +30 -42
- package/dist/components/renderer/attachments/DropdownMenu.js.map +1 -1
- package/dist/components/renderer/attachments/FileCard.d.ts +1 -1
- package/dist/components/renderer/attachments/FileCard.js +2 -10
- package/dist/components/renderer/attachments/FileCard.js.map +1 -1
- package/dist/components/renderer/attachments/FileCardContent.d.ts +1 -1
- package/dist/components/renderer/attachments/FileCardContent.js +3 -4
- package/dist/components/renderer/attachments/FileCardContent.js.map +1 -1
- package/dist/components/renderer/attachments/ImagePreviewUnavailable.d.ts +1 -1
- package/dist/components/renderer/attachments/ImagePreviewUnavailable.js +2 -5
- package/dist/components/renderer/attachments/ImagePreviewUnavailable.js.map +1 -1
- package/dist/components/renderer/attachments/ProgressBar.js +2 -4
- package/dist/components/renderer/attachments/ProgressBar.js.map +1 -1
- package/dist/form-elements/ComplianceButton.js +3 -4
- package/dist/form-elements/ComplianceButton.js.map +1 -1
- package/dist/form-elements/FormElementABN.d.ts +1 -1
- package/dist/form-elements/FormElementABN.js +18 -28
- package/dist/form-elements/FormElementABN.js.map +1 -1
- package/dist/form-elements/FormElementAPINSWLiquorLicence.d.ts +2 -2
- package/dist/form-elements/FormElementAPINSWLiquorLicence.js +4 -22
- package/dist/form-elements/FormElementAPINSWLiquorLicence.js.map +1 -1
- package/dist/form-elements/FormElementArcGISWebMap.d.ts +1 -1
- package/dist/form-elements/FormElementArcGISWebMap.js +21 -36
- package/dist/form-elements/FormElementArcGISWebMap.js.map +1 -1
- package/dist/form-elements/FormElementAutocomplete.d.ts +1 -1
- package/dist/form-elements/FormElementAutocomplete.js +6 -10
- package/dist/form-elements/FormElementAutocomplete.js.map +1 -1
- package/dist/form-elements/FormElementBSB.d.ts +1 -1
- package/dist/form-elements/FormElementBSB.js +22 -31
- package/dist/form-elements/FormElementBSB.js.map +1 -1
- package/dist/form-elements/FormElementBarcodeScanner.d.ts +1 -1
- package/dist/form-elements/FormElementBarcodeScanner.js +16 -50
- package/dist/form-elements/FormElementBarcodeScanner.js.map +1 -1
- package/dist/form-elements/FormElementBoolean.d.ts +1 -1
- package/dist/form-elements/FormElementBoolean.js +4 -4
- package/dist/form-elements/FormElementBoolean.js.map +1 -1
- package/dist/form-elements/FormElementCalculation.d.ts +1 -1
- package/dist/form-elements/FormElementCalculation.js +4 -11
- package/dist/form-elements/FormElementCalculation.js.map +1 -1
- package/dist/form-elements/FormElementCamera.d.ts +1 -1
- package/dist/form-elements/FormElementCamera.js +7 -53
- package/dist/form-elements/FormElementCamera.js.map +1 -1
- package/dist/form-elements/FormElementCaptcha.d.ts +1 -1
- package/dist/form-elements/FormElementCaptcha.js +2 -4
- package/dist/form-elements/FormElementCaptcha.js.map +1 -1
- package/dist/form-elements/FormElementCheckBoxes.d.ts +1 -1
- package/dist/form-elements/FormElementCheckBoxes.js +23 -33
- package/dist/form-elements/FormElementCheckBoxes.js.map +1 -1
- package/dist/form-elements/FormElementCivicaNameRecord.d.ts +1 -1
- package/dist/form-elements/FormElementCivicaNameRecord.js +3 -2
- package/dist/form-elements/FormElementCivicaNameRecord.js.map +1 -1
- package/dist/form-elements/FormElementCivicaStreetName.d.ts +1 -1
- package/dist/form-elements/FormElementCivicaStreetName.js +3 -5
- package/dist/form-elements/FormElementCivicaStreetName.js.map +1 -1
- package/dist/form-elements/FormElementCompliance.d.ts +2 -2
- package/dist/form-elements/FormElementCompliance.js +13 -25
- package/dist/form-elements/FormElementCompliance.js.map +1 -1
- package/dist/form-elements/FormElementDate.d.ts +1 -1
- package/dist/form-elements/FormElementDate.js +3 -10
- package/dist/form-elements/FormElementDate.js.map +1 -1
- package/dist/form-elements/FormElementDateTime.d.ts +1 -1
- package/dist/form-elements/FormElementDateTime.js +3 -10
- package/dist/form-elements/FormElementDateTime.js.map +1 -1
- package/dist/form-elements/FormElementEmail.d.ts +1 -1
- package/dist/form-elements/FormElementEmail.js +4 -13
- package/dist/form-elements/FormElementEmail.js.map +1 -1
- package/dist/form-elements/FormElementFile.d.ts +1 -1
- package/dist/form-elements/FormElementFile.js +2 -12
- package/dist/form-elements/FormElementFile.js.map +1 -1
- package/dist/form-elements/FormElementFiles.d.ts +2 -2
- package/dist/form-elements/FormElementFiles.js +9 -17
- package/dist/form-elements/FormElementFiles.js.map +1 -1
- package/dist/form-elements/FormElementForm.d.ts +1 -1
- package/dist/form-elements/FormElementForm.js +2 -1
- package/dist/form-elements/FormElementForm.js.map +1 -1
- package/dist/form-elements/FormElementFreshdeskDependentField.d.ts +1 -1
- package/dist/form-elements/FormElementFreshdeskDependentField.js +5 -11
- package/dist/form-elements/FormElementFreshdeskDependentField.js.map +1 -1
- package/dist/form-elements/FormElementGeoscapeAddress.d.ts +1 -1
- package/dist/form-elements/FormElementGeoscapeAddress.js +3 -5
- package/dist/form-elements/FormElementGeoscapeAddress.js.map +1 -1
- package/dist/form-elements/FormElementGoogleAddress.d.ts +1 -1
- package/dist/form-elements/FormElementGoogleAddress.js +3 -8
- package/dist/form-elements/FormElementGoogleAddress.js.map +1 -1
- package/dist/form-elements/FormElementHTML.d.ts +1 -1
- package/dist/form-elements/FormElementHTML.js +2 -3
- package/dist/form-elements/FormElementHTML.js.map +1 -1
- package/dist/form-elements/FormElementHeading.d.ts +1 -1
- package/dist/form-elements/FormElementHeading.js +7 -8
- package/dist/form-elements/FormElementHeading.js.map +1 -1
- package/dist/form-elements/FormElementImage.d.ts +1 -1
- package/dist/form-elements/FormElementImage.js +3 -3
- package/dist/form-elements/FormElementImage.js.map +1 -1
- package/dist/form-elements/FormElementLocation.d.ts +1 -1
- package/dist/form-elements/FormElementLocation.js +21 -48
- package/dist/form-elements/FormElementLocation.js.map +1 -1
- package/dist/form-elements/FormElementLookupButton.d.ts +2 -3
- package/dist/form-elements/FormElementLookupButton.js +5 -8
- package/dist/form-elements/FormElementLookupButton.js.map +1 -1
- package/dist/form-elements/FormElementNumber.d.ts +1 -1
- package/dist/form-elements/FormElementNumber.js +4 -15
- package/dist/form-elements/FormElementNumber.js.map +1 -1
- package/dist/form-elements/FormElementPointAddress.d.ts +2 -2
- package/dist/form-elements/FormElementPointAddress.js +7 -14
- package/dist/form-elements/FormElementPointAddress.js.map +1 -1
- package/dist/form-elements/FormElementPointAddressV3.d.ts +1 -1
- package/dist/form-elements/FormElementPointAddressV3.js +3 -10
- package/dist/form-elements/FormElementPointAddressV3.js.map +1 -1
- package/dist/form-elements/FormElementPointCadastralParcel.d.ts +1 -1
- package/dist/form-elements/FormElementPointCadastralParcel.js +15 -27
- package/dist/form-elements/FormElementPointCadastralParcel.js.map +1 -1
- package/dist/form-elements/FormElementRadio.d.ts +1 -1
- package/dist/form-elements/FormElementRadio.js +24 -30
- package/dist/form-elements/FormElementRadio.js.map +1 -1
- package/dist/form-elements/FormElementRepeatableSet.d.ts +1 -1
- package/dist/form-elements/FormElementRepeatableSet.js +21 -39
- package/dist/form-elements/FormElementRepeatableSet.js.map +1 -1
- package/dist/form-elements/FormElementSection.d.ts +1 -1
- package/dist/form-elements/FormElementSection.js +16 -34
- package/dist/form-elements/FormElementSection.js.map +1 -1
- package/dist/form-elements/FormElementSelect.d.ts +1 -1
- package/dist/form-elements/FormElementSelect.js +12 -23
- package/dist/form-elements/FormElementSelect.js.map +1 -1
- package/dist/form-elements/FormElementSignature.d.ts +1 -1
- package/dist/form-elements/FormElementSignature.js +21 -46
- package/dist/form-elements/FormElementSignature.js.map +1 -1
- package/dist/form-elements/FormElementSummary.d.ts +1 -1
- package/dist/form-elements/FormElementSummary.js +9 -6
- package/dist/form-elements/FormElementSummary.js.map +1 -1
- package/dist/form-elements/FormElementTelephone.d.ts +1 -1
- package/dist/form-elements/FormElementTelephone.js +4 -13
- package/dist/form-elements/FormElementTelephone.js.map +1 -1
- package/dist/form-elements/FormElementText.d.ts +1 -1
- package/dist/form-elements/FormElementText.js +6 -21
- package/dist/form-elements/FormElementText.js.map +1 -1
- package/dist/form-elements/FormElementTextarea.d.ts +1 -1
- package/dist/form-elements/FormElementTextarea.js +6 -20
- package/dist/form-elements/FormElementTextarea.js.map +1 -1
- package/dist/form-elements/FormElementTime.d.ts +1 -1
- package/dist/form-elements/FormElementTime.js +3 -10
- package/dist/form-elements/FormElementTime.js.map +1 -1
- package/dist/form-elements/OptionButton.js +3 -5
- package/dist/form-elements/OptionButton.js.map +1 -1
- package/dist/hooks/attachments/useAttachment.d.ts +1 -1
- package/dist/hooks/attachments/useAttachment.js +1 -1
- package/dist/hooks/attachments/useAttachment.js.map +1 -1
- package/dist/hooks/attachments/useAttachmentBlobs.d.ts +1 -1
- package/dist/hooks/attachments/useAttachmentBlobs.js +2 -1
- package/dist/hooks/attachments/useAttachmentBlobs.js.map +1 -1
- package/dist/hooks/attachments/useAttachments.d.ts +1 -1
- package/dist/hooks/attachments/useAttachments.js.map +1 -1
- package/dist/hooks/form-date-picker/useFormDatePickerProps.d.ts +7 -8
- package/dist/hooks/form-date-picker/useFormDatePickerProps.js +10 -10
- package/dist/hooks/form-date-picker/useFormDatePickerProps.js.map +1 -1
- package/dist/hooks/useAuth.d.ts +1 -1
- package/dist/hooks/useAuth.js +3 -2
- package/dist/hooks/useAuth.js.map +1 -1
- package/dist/hooks/useConditionalLogic.js +1 -1
- package/dist/hooks/useConditionalLogic.js.map +1 -1
- package/dist/hooks/useDrafts.d.ts +2 -2
- package/dist/hooks/useDrafts.js +3 -2
- package/dist/hooks/useDrafts.js.map +1 -1
- package/dist/hooks/useDynamicOptionsLoaderState.d.ts +2 -2
- package/dist/hooks/useDynamicOptionsLoaderState.js +5 -14
- package/dist/hooks/useDynamicOptionsLoaderState.js.map +1 -1
- package/dist/hooks/useFormElementLookups.d.ts +2 -2
- package/dist/hooks/useFormElementLookups.js +3 -2
- package/dist/hooks/useFormElementLookups.js.map +1 -1
- package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +1 -1
- package/dist/hooks/useFormSubmissionAutoSaveState.js +1 -1
- package/dist/hooks/useFormSubmissionAutoSaveState.js.map +1 -1
- package/dist/hooks/useFormSubmissionDuration.js +2 -0
- package/dist/hooks/useFormSubmissionDuration.js.map +1 -1
- package/dist/hooks/useFormSubmissionModelContext.d.ts +1 -1
- package/dist/hooks/useFormSubmissionModelContext.js +2 -1
- package/dist/hooks/useFormSubmissionModelContext.js.map +1 -1
- package/dist/hooks/useFormSubmissionState.d.ts +1 -1
- package/dist/hooks/useFormSubmissionState.js +1 -1
- package/dist/hooks/useFormSubmissionState.js.map +1 -1
- package/dist/hooks/useIsHovering.d.ts +1 -1
- package/dist/hooks/useIsHovering.js +4 -4
- package/dist/hooks/useIsHovering.js.map +1 -1
- package/dist/hooks/useIsOffline.d.ts +1 -1
- package/dist/hooks/useIsOffline.js +3 -2
- package/dist/hooks/useIsOffline.js.map +1 -1
- package/dist/hooks/useIsPageVisible.d.ts +1 -1
- package/dist/hooks/useIsPageVisible.js +2 -1
- package/dist/hooks/useIsPageVisible.js.map +1 -1
- package/dist/hooks/useLoadDataState.js +3 -1
- package/dist/hooks/useLoadDataState.js.map +1 -1
- package/dist/hooks/useLogin.js +1 -1
- package/dist/hooks/useLogin.js.map +1 -1
- package/dist/hooks/useMfa.d.ts +2 -2
- package/dist/hooks/useMfa.js +3 -2
- package/dist/hooks/useMfa.js.map +1 -1
- package/dist/hooks/useOnUploadAttachment.d.ts +1 -1
- package/dist/hooks/useOnUploadAttachment.js +1 -1
- package/dist/hooks/useOnUploadAttachment.js.map +1 -1
- package/dist/hooks/useOneBlinkFormContainer.d.ts +2 -1
- package/dist/hooks/useOneBlinkFormContainer.js +2 -2
- package/dist/hooks/useOneBlinkFormContainer.js.map +1 -1
- package/dist/hooks/usePages.d.ts +1 -1
- package/dist/hooks/usePendingSubmissions.d.ts +2 -2
- package/dist/hooks/usePendingSubmissions.js +3 -2
- package/dist/hooks/usePendingSubmissions.js.map +1 -1
- package/dist/hooks/useReCAPTCHAProps.d.ts +1 -1
- package/dist/hooks/useReCAPTCHAProps.js.map +1 -1
- package/dist/hooks/useReplaceableText.js +1 -1
- package/dist/hooks/useReplaceableText.js.map +1 -1
- package/dist/hooks/useSignUp.js +1 -1
- package/dist/hooks/useSignUp.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/services/attachments.d.ts +1 -1
- package/dist/services/attachments.js +1 -1
- package/dist/services/attachments.js.map +1 -1
- package/dist/services/blob-utils.js +1 -1
- package/dist/services/blob-utils.js.map +1 -1
- package/dist/services/checkIfAttachmentsExist.d.ts +1 -1
- package/dist/services/checkIfAttachmentsExist.js.map +1 -1
- package/dist/services/defaultCoordinates.js +1 -1
- package/dist/services/defaultCoordinates.js.map +1 -1
- package/dist/services/download-file.d.ts +1 -1
- package/dist/services/download-file.js +2 -2
- package/dist/services/download-file.js.map +1 -1
- package/dist/services/drawTimestampOnCanvas.js +1 -1
- package/dist/services/drawTimestampOnCanvas.js.map +1 -1
- package/dist/services/form-validation/validateSubmission.js +1 -1
- package/dist/services/form-validation/validateSubmission.js.map +1 -1
- package/dist/services/form-validation/validators.d.ts +1 -1
- package/dist/services/form-validation/validators.js.map +1 -1
- package/dist/services/generate-default-data.js +1 -1
- package/dist/services/generate-default-data.js.map +1 -1
- package/dist/services/injectableOptions.js +1 -1
- package/dist/services/injectableOptions.js.map +1 -1
- package/dist/styles.css +208 -204
- package/dist/types/attachments.d.ts +1 -1
- package/dist/types/attachments.js.map +1 -1
- package/dist/utils/sendGoogleAnalyticsEvent.js +1 -1
- package/dist/utils/sendGoogleAnalyticsEvent.js.map +1 -1
- package/package.json +58 -51
|
@@ -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
|