@oneblink/apps-react 2.2.0 → 2.3.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/OneBlinkAutoSaveForm.d.ts +10 -10
- package/dist/OneBlinkAutoSaveForm.js +28 -28
- package/dist/OneBlinkForm.d.ts +11 -11
- package/dist/OneBlinkForm.js +11 -11
- package/dist/OneBlinkFormBase.d.ts +28 -28
- package/dist/OneBlinkFormBase.js +472 -472
- package/dist/OneBlinkFormStoreView.d.ts +8 -0
- package/dist/OneBlinkFormStoreView.js +55 -0
- package/dist/OneBlinkFormStoreView.js.map +1 -0
- package/dist/OneBlinkReadOnlyForm.d.ts +11 -11
- package/dist/OneBlinkReadOnlyForm.js +48 -48
- package/dist/components/AnnotationModal.d.ts +8 -0
- package/dist/components/AnnotationModal.js +104 -0
- package/dist/components/AnnotationModal.js.map +1 -0
- package/dist/components/AutocompleteDropdown.d.ts +26 -0
- package/dist/components/AutocompleteDropdown.js +174 -0
- package/dist/components/AutocompleteDropdown.js.map +1 -0
- package/dist/components/CopyToClipboardButton.d.ts +9 -0
- package/dist/components/CopyToClipboardButton.js +14 -0
- package/dist/components/CopyToClipboardButton.js.map +1 -0
- package/dist/components/CopyToClipboardIconButton.d.ts +10 -10
- package/dist/components/CopyToClipboardIconButton.js +32 -32
- package/dist/components/CustomAccordion.d.ts +27 -27
- package/dist/components/CustomAccordion.js +37 -37
- package/dist/components/CustomisableButtonInner.d.ts +7 -0
- package/dist/components/CustomisableButtonInner.js +9 -0
- package/dist/components/CustomisableButtonInner.js.map +1 -0
- package/dist/components/ErrorMessage.d.ts +13 -0
- package/dist/components/ErrorMessage.js +13 -0
- package/dist/components/ErrorMessage.js.map +1 -0
- package/dist/components/ErrorSnackbar.d.ts +8 -8
- package/dist/components/ErrorSnackbar.js +25 -25
- package/dist/components/FormElementLabelContainer.d.ts +12 -0
- package/dist/components/FormElementLabelContainer.js +16 -0
- package/dist/components/FormElementLabelContainer.js.map +1 -0
- package/dist/components/FormElementOptions.d.ts +9 -0
- package/dist/components/FormElementOptions.js +15 -0
- package/dist/components/FormElementOptions.js.map +1 -0
- package/dist/components/Lists.d.ts +25 -25
- package/dist/components/Lists.js +44 -44
- package/dist/components/LoadingWithMessage.d.ts +6 -6
- package/dist/components/LoadingWithMessage.js +11 -11
- package/dist/components/LookupButton.d.ts +10 -0
- package/dist/components/LookupButton.js +30 -0
- package/dist/components/LookupButton.js.map +1 -0
- package/dist/components/LookupNotification.d.ts +12 -0
- package/dist/components/LookupNotification.js +231 -0
- package/dist/components/LookupNotification.js.map +1 -0
- package/dist/components/Modal.d.ts +14 -0
- package/dist/components/Modal.js +15 -0
- package/dist/components/Modal.js.map +1 -0
- package/dist/components/NoResourcesYet.d.ts +12 -0
- package/dist/components/NoResourcesYet.js +7 -0
- package/dist/components/NoResourcesYet.js.map +1 -0
- package/dist/components/OnLoading.d.ts +10 -0
- package/dist/components/OnLoading.js +12 -0
- package/dist/components/OnLoading.js.map +1 -0
- package/dist/components/OneBlinkAppsErrorOriginalMessage.d.ts +7 -0
- package/dist/components/OneBlinkAppsErrorOriginalMessage.js +13 -0
- package/dist/components/OneBlinkAppsErrorOriginalMessage.js.map +1 -0
- package/dist/components/OneBlinkFormElements.d.ts +19 -0
- package/dist/components/OneBlinkFormElements.js +196 -0
- package/dist/components/OneBlinkFormElements.js.map +1 -0
- package/dist/components/PageFormElements.d.ts +17 -0
- package/dist/components/PageFormElements.js +49 -0
- package/dist/components/PageFormElements.js.map +1 -0
- package/dist/components/ToggleAllCheckbox.d.ts +13 -0
- package/dist/components/ToggleAllCheckbox.js +27 -0
- package/dist/components/ToggleAllCheckbox.js.map +1 -0
- package/dist/components/attachments/AttachmentStatus.d.ts +12 -0
- package/dist/components/attachments/AttachmentStatus.js +35 -0
- package/dist/components/attachments/AttachmentStatus.js.map +1 -0
- package/dist/components/attachments/FileCard.d.ts +18 -0
- package/dist/components/attachments/FileCard.js +58 -0
- package/dist/components/attachments/FileCard.js.map +1 -0
- package/dist/components/attachments/FileCardContent.d.ts +5 -0
- package/dist/components/attachments/FileCardContent.js +11 -0
- package/dist/components/attachments/FileCardContent.js.map +1 -0
- package/dist/components/attachments/Files.d.ts +14 -0
- package/dist/components/attachments/Files.js +27 -0
- package/dist/components/attachments/Files.js.map +1 -0
- package/dist/components/attachments/ImagePreviewUnavailable.d.ts +4 -0
- package/dist/components/attachments/ImagePreviewUnavailable.js +12 -0
- package/dist/components/attachments/ImagePreviewUnavailable.js.map +1 -0
- package/dist/components/attachments/UploadingAttachment.d.ts +4 -0
- package/dist/components/attachments/UploadingAttachment.js +13 -0
- package/dist/components/attachments/UploadingAttachment.js.map +1 -0
- package/dist/components/formStore/ColumnsConfigurationButton.d.ts +10 -0
- package/dist/components/formStore/ColumnsConfigurationButton.js +29 -0
- package/dist/components/formStore/ColumnsConfigurationButton.js.map +1 -0
- package/dist/components/formStore/DownloadSubmissionDataButton.d.ts +13 -0
- package/dist/components/formStore/DownloadSubmissionDataButton.js +45 -0
- package/dist/components/formStore/DownloadSubmissionDataButton.js.map +1 -0
- package/dist/components/formStore/FormStore.d.ts +9 -0
- package/dist/components/formStore/FormStore.js +103 -0
- package/dist/components/formStore/FormStore.js.map +1 -0
- package/dist/components/formStore/FormStoreTableProvider.d.ts +6 -6
- package/dist/components/formStore/FormStoreTableProvider.js +90 -90
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +5 -5
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +19 -19
- package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +5 -5
- package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js +66 -66
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +5 -5
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +86 -86
- package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +8 -8
- package/dist/components/formStore/OneBlinkFormStoreProvider.js +24 -24
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +5 -5
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +11 -11
- package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +4 -4
- package/dist/components/formStore/OneBlinkFormStoreTable.js +194 -194
- package/dist/components/formStore/display/ElementDisplay.d.ts +23 -23
- package/dist/components/formStore/display/ElementDisplay.js +77 -77
- package/dist/components/formStore/display/FormStoreIcon.d.ts +2 -2
- package/dist/components/formStore/display/FormStoreIcon.js +2 -2
- package/dist/components/formStore/table/ActionedByTableCell.d.ts +11 -11
- package/dist/components/formStore/table/ActionedByTableCell.js +43 -43
- package/dist/components/formStore/table/ColumnFilters.d.ts +9 -9
- package/dist/components/formStore/table/ColumnFilters.js +179 -179
- package/dist/components/formStore/table/FormElementTableCell.d.ts +10 -10
- package/dist/components/formStore/table/FormElementTableCell.js +228 -228
- package/dist/components/formStore/table/HeaderCellMoreButton.d.ts +9 -9
- package/dist/components/formStore/table/HeaderCellMoreButton.js +48 -48
- package/dist/components/formStore/table/RepeatableSetCell.d.ts +8 -8
- package/dist/components/formStore/table/RepeatableSetCell.js +62 -62
- package/dist/components/formStore/table/RepeatableSetCellAccordion.d.ts +9 -9
- package/dist/components/formStore/table/RepeatableSetCellAccordion.js +11 -11
- package/dist/components/formStore/table/TableCellCopyButton.d.ts +7 -7
- package/dist/components/formStore/table/TableCellCopyButton.js +27 -27
- package/dist/components/formStore/table/generateColumns.d.ts +24 -24
- package/dist/components/formStore/table/generateColumns.js +290 -290
- package/dist/components/formStore/table/index.d.ts +17 -0
- package/dist/components/formStore/table/index.js +194 -0
- package/dist/components/formStore/table/index.js.map +1 -0
- package/dist/components/formStore/table/useFormStoreTable.d.ts +52 -52
- package/dist/components/formStore/table/useFormStoreTable.js +157 -157
- package/dist/components/formStore/useFormStoreTableContext.d.ts +44 -44
- package/dist/components/formStore/useFormStoreTableContext.js +9 -9
- package/dist/components/messages/ErrorMessage.d.ts +12 -12
- package/dist/components/messages/ErrorMessage.js +12 -12
- package/dist/components/messages/LargeIconMessage.d.ts +18 -18
- package/dist/components/messages/LargeIconMessage.js +33 -33
- package/dist/components/messages/NoResourcesYet.d.ts +11 -11
- package/dist/components/messages/NoResourcesYet.js +6 -6
- package/dist/components/pickers/V4CompatibleDatePicker.d.ts +32 -32
- package/dist/components/pickers/V4CompatibleDatePicker.js +70 -70
- package/dist/components/pickers/V4CompatibleDateTimePicker.d.ts +32 -32
- package/dist/components/pickers/V4CompatibleDateTimePicker.js +70 -70
- package/dist/components/pickers/V4CompatibleTimePicker.d.ts +28 -28
- package/dist/components/pickers/V4CompatibleTimePicker.js +53 -53
- package/dist/components/renderer/AnnotationModal.d.ts +8 -8
- package/dist/components/renderer/AnnotationModal.js +101 -101
- package/dist/components/renderer/AutocompleteDropdown.d.ts +26 -26
- package/dist/components/renderer/AutocompleteDropdown.js +175 -175
- package/dist/components/renderer/CopyToClipboardButton.d.ts +8 -8
- package/dist/components/renderer/CopyToClipboardButton.js +13 -13
- package/dist/components/renderer/CustomisableButtonInner.d.ts +7 -7
- package/dist/components/renderer/CustomisableButtonInner.js +8 -8
- package/dist/components/renderer/FormElementLabelContainer.d.ts +12 -12
- package/dist/components/renderer/FormElementLabelContainer.js +15 -15
- package/dist/components/renderer/FormElementOptions.d.ts +9 -9
- package/dist/components/renderer/FormElementOptions.js +14 -14
- package/dist/components/renderer/LookupButton.d.ts +10 -10
- package/dist/components/renderer/LookupButton.js +29 -29
- package/dist/components/renderer/LookupNotification.d.ts +12 -12
- package/dist/components/renderer/LookupNotification.js +230 -230
- package/dist/components/renderer/Modal.d.ts +14 -14
- package/dist/components/renderer/Modal.js +14 -14
- package/dist/components/renderer/OnLoading.d.ts +10 -10
- package/dist/components/renderer/OnLoading.js +11 -11
- package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.d.ts +7 -7
- package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js +12 -12
- package/dist/components/renderer/OneBlinkFormElements.d.ts +19 -19
- package/dist/components/renderer/OneBlinkFormElements.js +202 -202
- package/dist/components/renderer/PageFormElements.d.ts +17 -17
- package/dist/components/renderer/PageFormElements.js +48 -48
- package/dist/components/renderer/ProgressBar.d.ts +7 -0
- package/dist/components/renderer/ProgressBar.js +7 -0
- package/dist/components/renderer/ProgressBar.js.map +1 -0
- package/dist/components/renderer/ToggleAllCheckbox.d.ts +13 -13
- package/dist/components/renderer/ToggleAllCheckbox.js +26 -26
- package/dist/components/renderer/attachments/AttachmentStatus.d.ts +10 -10
- package/dist/components/renderer/attachments/AttachmentStatus.js +36 -30
- package/dist/components/renderer/attachments/AttachmentStatus.js.map +1 -1
- package/dist/components/renderer/attachments/FileCard.d.ts +19 -18
- package/dist/components/renderer/attachments/FileCard.js +60 -57
- package/dist/components/renderer/attachments/FileCard.js.map +1 -1
- package/dist/components/renderer/attachments/FileCardContent.d.ts +5 -5
- package/dist/components/renderer/attachments/FileCardContent.js +10 -10
- package/dist/components/renderer/attachments/Files.d.ts +14 -0
- package/dist/components/renderer/attachments/Files.js +27 -0
- package/dist/components/renderer/attachments/Files.js.map +1 -0
- package/dist/components/renderer/attachments/ImagePreviewUnavailable.d.ts +4 -4
- package/dist/components/renderer/attachments/ImagePreviewUnavailable.js +11 -11
- package/dist/components/renderer/attachments/ProgressBar.d.ts +8 -0
- package/dist/components/renderer/attachments/ProgressBar.js +34 -0
- package/dist/components/renderer/attachments/ProgressBar.js.map +1 -0
- package/dist/components/renderer/attachments/UploadingAttachment.d.ts +4 -4
- package/dist/components/renderer/attachments/UploadingAttachment.js +12 -12
- package/dist/form-elements/ComplianceButton.d.ts +10 -10
- package/dist/form-elements/ComplianceButton.js +11 -11
- package/dist/form-elements/FormElementABN.d.ts +14 -14
- package/dist/form-elements/FormElementABN.js +155 -155
- package/dist/form-elements/FormElementAutocomplete.d.ts +19 -19
- package/dist/form-elements/FormElementAutocomplete.js +81 -81
- package/dist/form-elements/FormElementBSB.d.ts +18 -18
- package/dist/form-elements/FormElementBSB.js +100 -100
- package/dist/form-elements/FormElementBarcodeScanner.d.ts +14 -14
- package/dist/form-elements/FormElementBarcodeScanner.js +306 -306
- package/dist/form-elements/FormElementBoolean.d.ts +14 -14
- package/dist/form-elements/FormElementBoolean.js +16 -16
- package/dist/form-elements/FormElementCalculation.d.ts +11 -11
- package/dist/form-elements/FormElementCalculation.js +179 -179
- package/dist/form-elements/FormElementCamera.d.ts +15 -15
- package/dist/form-elements/FormElementCamera.js +227 -220
- package/dist/form-elements/FormElementCamera.js.map +1 -1
- package/dist/form-elements/FormElementCaptcha.d.ts +12 -12
- package/dist/form-elements/FormElementCaptcha.js +14 -14
- package/dist/form-elements/FormElementCheckBoxes.d.ts +15 -15
- package/dist/form-elements/FormElementCheckBoxes.js +64 -64
- package/dist/form-elements/FormElementCivicaNameRecord.d.ts +8 -8
- package/dist/form-elements/FormElementCivicaNameRecord.js +51 -51
- package/dist/form-elements/FormElementCivicaStreetName.d.ts +15 -15
- package/dist/form-elements/FormElementCivicaStreetName.js +38 -38
- package/dist/form-elements/FormElementCompliance.d.ts +22 -22
- package/dist/form-elements/FormElementCompliance.js +129 -129
- package/dist/form-elements/FormElementDate.d.ts +14 -14
- package/dist/form-elements/FormElementDate.js +74 -74
- package/dist/form-elements/FormElementDateTime.d.ts +14 -14
- package/dist/form-elements/FormElementDateTime.js +67 -67
- package/dist/form-elements/FormElementEmail.d.ts +14 -14
- package/dist/form-elements/FormElementEmail.js +22 -22
- package/dist/form-elements/FormElementFile.d.ts +13 -13
- package/dist/form-elements/FormElementFile.js +31 -31
- package/dist/form-elements/FormElementFile.js.map +1 -1
- package/dist/form-elements/FormElementFiles/FormElementFile.d.ts +13 -0
- package/dist/form-elements/FormElementFiles/FormElementFile.js +32 -0
- package/dist/form-elements/FormElementFiles/FormElementFile.js.map +1 -0
- package/dist/form-elements/FormElementFiles/FormElementFileDisplay.d.ts +10 -0
- package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js +11 -0
- package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js.map +1 -0
- package/dist/form-elements/FormElementFiles/FormElementFiles.d.ts +15 -0
- package/dist/form-elements/FormElementFiles/FormElementFiles.js +17 -0
- package/dist/form-elements/FormElementFiles/FormElementFiles.js.map +1 -0
- package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.d.ts +7 -0
- package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js +11 -0
- package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js.map +1 -0
- package/dist/form-elements/FormElementFiles/index.d.ts +17 -0
- package/dist/form-elements/FormElementFiles/index.js +18 -0
- package/dist/form-elements/FormElementFiles/index.js.map +1 -0
- package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.d.ts +18 -0
- package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js +61 -0
- package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js.map +1 -0
- package/dist/form-elements/FormElementFiles.d.ts +15 -15
- package/dist/form-elements/FormElementFiles.js +42 -42
- package/dist/form-elements/FormElementForm.d.ts +17 -17
- package/dist/form-elements/FormElementForm.js +63 -63
- package/dist/form-elements/FormElementFreshdeskDependentField.d.ts +8 -8
- package/dist/form-elements/FormElementFreshdeskDependentField.js +15 -15
- package/dist/form-elements/FormElementGeoscapeAddress.d.ts +15 -15
- package/dist/form-elements/FormElementGeoscapeAddress.js +62 -62
- package/dist/form-elements/FormElementHTML.d.ts +8 -8
- package/dist/form-elements/FormElementHTML.js +15 -15
- package/dist/form-elements/FormElementHeading.d.ts +8 -8
- package/dist/form-elements/FormElementHeading.js +23 -23
- package/dist/form-elements/FormElementImage.d.ts +8 -8
- package/dist/form-elements/FormElementImage.js +6 -6
- package/dist/form-elements/FormElementLocation.d.ts +20 -20
- package/dist/form-elements/FormElementLocation.js +204 -204
- package/dist/form-elements/FormElementNumber.d.ts +14 -14
- package/dist/form-elements/FormElementNumber.js +72 -72
- package/dist/form-elements/FormElementPointAddress.d.ts +15 -15
- package/dist/form-elements/FormElementPointAddress.js +69 -69
- package/dist/form-elements/FormElementRadio.d.ts +15 -15
- package/dist/form-elements/FormElementRadio.js +41 -41
- package/dist/form-elements/FormElementRepeatableSet.d.ts +19 -19
- package/dist/form-elements/FormElementRepeatableSet.js +126 -126
- package/dist/form-elements/FormElementSection.d.ts +8 -8
- package/dist/form-elements/FormElementSection.js +69 -69
- package/dist/form-elements/FormElementSelect.d.ts +15 -15
- package/dist/form-elements/FormElementSelect.js +44 -44
- package/dist/form-elements/FormElementSignature.d.ts +15 -15
- package/dist/form-elements/FormElementSignature.js +138 -135
- package/dist/form-elements/FormElementSignature.js.map +1 -1
- package/dist/form-elements/FormElementSummary.d.ts +11 -11
- package/dist/form-elements/FormElementSummary.js +159 -159
- package/dist/form-elements/FormElementTelephone.d.ts +14 -14
- package/dist/form-elements/FormElementTelephone.js +22 -22
- package/dist/form-elements/FormElementText.d.ts +14 -14
- package/dist/form-elements/FormElementText.js +29 -29
- package/dist/form-elements/FormElementTextarea.d.ts +14 -14
- package/dist/form-elements/FormElementTextarea.js +30 -30
- package/dist/form-elements/FormElementTime.d.ts +14 -14
- package/dist/form-elements/FormElementTime.js +53 -53
- package/dist/form-elements/OptionButton.d.ts +11 -11
- package/dist/form-elements/OptionButton.js +9 -9
- package/dist/hooks/attachments/useAttachment.d.ts +12 -11
- package/dist/hooks/attachments/useAttachment.js +242 -235
- package/dist/hooks/attachments/useAttachment.js.map +1 -1
- package/dist/hooks/attachments/useAttachmentBlobs.d.ts +19 -19
- package/dist/hooks/attachments/useAttachmentBlobs.js +23 -23
- package/dist/hooks/attachments/useAttachmentObjectURLs.d.ts +24 -0
- package/dist/hooks/attachments/useAttachmentObjectURLs.js +37 -0
- package/dist/hooks/attachments/useAttachmentObjectURLs.js.map +1 -0
- package/dist/hooks/attachments/useAttachments.d.ts +10 -10
- package/dist/hooks/attachments/useAttachments.js +69 -69
- package/dist/hooks/attachments/useLocalAttachmentBlobs.d.ts +24 -0
- package/dist/hooks/attachments/useLocalAttachmentBlobs.js +40 -0
- package/dist/hooks/attachments/useLocalAttachmentBlobs.js.map +1 -0
- package/dist/hooks/useAbnLookupAuthenticationGuid.d.ts +3 -3
- package/dist/hooks/useAbnLookupAuthenticationGuid.js +5 -5
- package/dist/hooks/useAuth.d.ts +15 -15
- package/dist/hooks/useAuth.js +42 -42
- package/dist/hooks/useBooleanState.d.ts +5 -5
- package/dist/hooks/useBooleanState.js +8 -8
- package/dist/hooks/useButtonsConfiguration.d.ts +45 -0
- package/dist/hooks/useButtonsConfiguration.js +6 -0
- package/dist/hooks/useButtonsConfiguration.js.map +1 -0
- package/dist/hooks/useCaptchaSiteKey.d.ts +3 -3
- package/dist/hooks/useCaptchaSiteKey.js +5 -5
- package/dist/hooks/useChangeEffect.d.ts +1 -0
- package/dist/hooks/useChangeEffect.js +14 -0
- package/dist/hooks/useChangeEffect.js.map +1 -0
- package/dist/hooks/useClickOutsideElement.d.ts +3 -3
- package/dist/hooks/useClickOutsideElement.js +14 -14
- package/dist/hooks/useConditionalLogic.d.ts +6 -6
- package/dist/hooks/useConditionalLogic.js +22 -22
- package/dist/hooks/useConditionallyShowOptionCallback.d.ts +5 -0
- package/dist/hooks/useConditionallyShowOptionCallback.js +20 -0
- package/dist/hooks/useConditionallyShowOptionCallback.js.map +1 -0
- package/dist/hooks/useContrastColor.d.ts +2 -2
- package/dist/hooks/useContrastColor.js +12 -12
- package/dist/hooks/useCustomValidation.d.ts +1 -0
- package/dist/hooks/useCustomValidation.js +9 -0
- package/dist/hooks/useCustomValidation.js.map +1 -0
- package/dist/hooks/useDynamicOptionsLoaderEffect.d.ts +7 -0
- package/dist/hooks/useDynamicOptionsLoaderEffect.js +45 -0
- package/dist/hooks/useDynamicOptionsLoaderEffect.js.map +1 -0
- package/dist/hooks/useDynamicOptionsLoaderState.d.ts +7 -7
- package/dist/hooks/useDynamicOptionsLoaderState.js +44 -44
- package/dist/hooks/useExecutedLookupCallback.d.ts +12 -12
- package/dist/hooks/useExecutedLookupCallback.js +15 -15
- package/dist/hooks/useFlatpickr.d.ts +10 -10
- package/dist/hooks/useFlatpickr.js +73 -73
- package/dist/hooks/useFlatpickrGuid.d.ts +7 -7
- package/dist/hooks/useFlatpickrGuid.js +11 -11
- package/dist/hooks/useFlattenElementsContext.d.ts +2 -2
- package/dist/hooks/useFlattenElementsContext.js +7 -7
- package/dist/hooks/useFormDefinition.d.ts +4 -4
- package/dist/hooks/useFormDefinition.js +9 -9
- package/dist/hooks/useFormElementOptions.d.ts +9 -9
- package/dist/hooks/useFormElementOptions.js +35 -35
- package/dist/hooks/useFormIsReadOnly.d.ts +3 -3
- package/dist/hooks/useFormIsReadOnly.js +5 -5
- package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +24 -24
- package/dist/hooks/useFormSubmissionAutoSaveState.js +145 -145
- package/dist/hooks/useFormSubmissionModelContext.d.ts +15 -15
- package/dist/hooks/useFormSubmissionModelContext.js +32 -32
- package/dist/hooks/useFormSubmissionState.d.ts +10 -10
- package/dist/hooks/useFormSubmissionState.js +13 -13
- package/dist/hooks/useFormValidation.d.ts +7 -7
- package/dist/hooks/useFormValidation.js +29 -29
- package/dist/hooks/useGoogleMapsApiKey.d.ts +3 -3
- package/dist/hooks/useGoogleMapsApiKey.js +5 -5
- package/dist/hooks/useInfiniteScrollDataLoad.d.ts +30 -30
- package/dist/hooks/useInfiniteScrollDataLoad.js +124 -124
- package/dist/hooks/useInjectPages.d.ts +7 -7
- package/dist/hooks/useInjectPages.js +5 -5
- package/dist/hooks/useIsHovering.d.ts +5 -5
- package/dist/hooks/useIsHovering.js +12 -12
- package/dist/hooks/useIsMounted.d.ts +3 -3
- package/dist/hooks/useIsMounted.js +11 -11
- package/dist/hooks/useIsOffline.d.ts +6 -6
- package/dist/hooks/useIsOffline.js +26 -26
- package/dist/hooks/useIsPageVisible.d.ts +9 -9
- package/dist/hooks/useIsPageVisible.js +8 -8
- package/dist/hooks/useLegacyElements.d.ts +16 -0
- package/dist/hooks/useLegacyElements.js +55 -0
- package/dist/hooks/useLegacyElements.js.map +1 -0
- package/dist/hooks/useLoadDataState.d.ts +15 -15
- package/dist/hooks/useLoadDataState.js +54 -54
- package/dist/hooks/useLogin.d.ts +46 -46
- package/dist/hooks/useLogin.js +295 -295
- package/dist/hooks/useLookupNotification.d.ts +9 -9
- package/dist/hooks/useLookupNotification.js +10 -10
- package/dist/hooks/useLookups.d.ts +5 -5
- package/dist/hooks/useLookups.js +62 -62
- package/dist/hooks/useNullableState.d.ts +2 -2
- package/dist/hooks/useNullableState.js +6 -6
- package/dist/hooks/usePages.d.ts +24 -24
- package/dist/hooks/usePages.js +141 -141
- package/dist/hooks/useQuery.d.ts +2 -2
- package/dist/hooks/useQuery.js +7 -7
- package/dist/hooks/useSubmissionIdIsValid.d.ts +3 -3
- package/dist/hooks/useSubmissionIdIsValid.js +19 -19
- package/dist/hooks/useToggleAll.d.ts +6 -0
- package/dist/hooks/useToggleAll.js +24 -0
- package/dist/hooks/useToggleAll.js.map +1 -0
- package/dist/hooks/useToggleComplianceChildren.d.ts +3 -3
- package/dist/hooks/useToggleComplianceChildren.js +13 -13
- package/dist/index.d.ts +23 -22
- package/dist/index.js +23 -22
- package/dist/index.js.map +1 -1
- package/dist/services/attachments.d.ts +10 -10
- package/dist/services/attachments.js +72 -72
- package/dist/services/barcode-readers/quagger.d.ts +1 -1
- package/dist/services/barcode-readers/quagger.js +34 -34
- package/dist/services/blob-utils.d.ts +5 -5
- package/dist/services/blob-utils.js +73 -73
- package/dist/services/checkBsbsAreInvalid.d.ts +3 -3
- package/dist/services/checkBsbsAreInvalid.js +40 -40
- package/dist/services/checkIfAttachmentsAreUploading.d.ts +3 -3
- package/dist/services/checkIfAttachmentsAreUploading.js +57 -57
- package/dist/services/checkIfAttachmentsExist.d.ts +5 -5
- package/dist/services/checkIfAttachmentsExist.js +144 -144
- package/dist/services/checkIfBsbsAreValidating.d.ts +3 -3
- package/dist/services/checkIfBsbsAreValidating.js +40 -40
- package/dist/services/clean-form-elements-ctrl-model.d.ts +4 -0
- package/dist/services/clean-form-elements-ctrl-model.js +166 -0
- package/dist/services/clean-form-elements-ctrl-model.js.map +1 -0
- package/dist/services/cleanFormSubmissionModel.d.ts +6 -6
- package/dist/services/cleanFormSubmissionModel.js +203 -203
- package/dist/services/conditionally-show-element.d.ts +11 -0
- package/dist/services/conditionally-show-element.js +92 -0
- package/dist/services/conditionally-show-element.js.map +1 -0
- package/dist/services/conditionally-show-option.d.ts +3 -0
- package/dist/services/conditionally-show-option.js +135 -0
- package/dist/services/conditionally-show-option.js.map +1 -0
- package/dist/services/defaultCoordinates.d.ts +5 -5
- package/dist/services/defaultCoordinates.js +8 -8
- package/dist/services/download-file.d.ts +3 -3
- package/dist/services/download-file.js +90 -90
- package/dist/services/drawTimestampOnCanvas.d.ts +1 -1
- package/dist/services/drawTimestampOnCanvas.js +22 -22
- package/dist/services/flattenFormElements.d.ts +2 -0
- package/dist/services/flattenFormElements.js +13 -0
- package/dist/services/flattenFormElements.js.map +1 -0
- package/dist/services/form-validation.d.ts +10 -10
- package/dist/services/form-validation.js +561 -561
- package/dist/services/generate-default-data.d.ts +13 -13
- package/dist/services/generate-default-data.js +494 -494
- package/dist/services/generateCivicaNameRecordElements.d.ts +2 -2
- package/dist/services/generateCivicaNameRecordElements.js +140 -140
- package/dist/services/generateFreshdeskDependentFieldElements.d.ts +2 -2
- package/dist/services/generateFreshdeskDependentFieldElements.js +69 -69
- package/dist/services/getCorrectDateFromDateOnlyString.d.ts +2 -0
- package/dist/services/getCorrectDateFromDateOnlyString.js +4 -0
- package/dist/services/getCorrectDateFromDateOnlyString.js.map +1 -0
- package/dist/services/sanitize-html.d.ts +2 -2
- package/dist/services/sanitize-html.js +20 -20
- package/dist/services/scrolling-service.d.ts +7 -7
- package/dist/services/scrolling-service.js +38 -38
- package/dist/services/utils-service.d.ts +5 -5
- package/dist/services/utils-service.js +16 -16
- package/dist/styles/boolean.scss +12 -0
- package/dist/styles/ob-file.scss +63 -0
- package/dist/styles/progress.scss +8 -0
- package/dist/styles.css +7 -0
- package/dist/styles.css.map +1 -1
- package/dist/styles.scss +1 -0
- package/dist/types/attachments.d.ts +19 -19
- package/dist/types/attachments.js +1 -1
- package/dist/types/form.d.ts +40 -40
- package/dist/types/form.js +2 -2
- package/package.json +2 -2
@@ -0,0 +1,10 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
declare type Props = {
|
3
|
+
value: unknown | undefined;
|
4
|
+
validationMessage: string | undefined;
|
5
|
+
hasMarginTop?: boolean;
|
6
|
+
isInputButton?: boolean;
|
7
|
+
};
|
8
|
+
declare function LookupButton({ value, validationMessage, hasMarginTop, isInputButton, }: Props): JSX.Element | null;
|
9
|
+
declare const _default: React.MemoExoticComponent<typeof LookupButton>;
|
10
|
+
export default _default;
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import clsx from 'clsx';
|
3
|
+
import useLookupNotification from '../hooks/useLookupNotification';
|
4
|
+
import { lookupValidationMessage } from '../services/form-validation';
|
5
|
+
import useFormIsReadOnly from '../hooks/useFormIsReadOnly';
|
6
|
+
function LookupButton({ value, validationMessage, hasMarginTop, isInputButton, }) {
|
7
|
+
const { isLookup, onLookup, isDisabled } = useLookupNotification();
|
8
|
+
const formIsReadOnly = useFormIsReadOnly();
|
9
|
+
if (!isLookup) {
|
10
|
+
return null;
|
11
|
+
}
|
12
|
+
const button = (React.createElement("button", { type: "button", className: clsx('button is-primary ob-lookup__button cypress-lookup-button', {
|
13
|
+
'is-input-addon': isInputButton,
|
14
|
+
'ob-button': !isInputButton,
|
15
|
+
'has-margin-top-8': hasMarginTop,
|
16
|
+
}), onClick: () => onLookup(value), disabled: formIsReadOnly ||
|
17
|
+
isDisabled ||
|
18
|
+
value === undefined ||
|
19
|
+
(!!validationMessage && validationMessage !== lookupValidationMessage) },
|
20
|
+
isInputButton && React.createElement("span", null),
|
21
|
+
React.createElement("span", { className: "icon" },
|
22
|
+
React.createElement("i", { className: "material-icons" }, "search")),
|
23
|
+
React.createElement("span", { className: isInputButton ? 'is-hidden-mobile' : undefined }, "\u00A0Lookup")));
|
24
|
+
if (isInputButton) {
|
25
|
+
return React.createElement("div", { className: "control" }, button);
|
26
|
+
}
|
27
|
+
return button;
|
28
|
+
}
|
29
|
+
export default React.memo(LookupButton);
|
30
|
+
//# sourceMappingURL=LookupButton.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"LookupButton.js","sourceRoot":"","sources":["../../src/components/LookupButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,qBAAqB,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,iBAAiB,MAAM,4BAA4B,CAAA;AAQ1D,SAAS,YAAY,CAAC,EACpB,KAAK,EACL,iBAAiB,EACjB,YAAY,EACZ,aAAa,GACP;IACN,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,qBAAqB,EAAE,CAAA;IAClE,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAC1C,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,MAAM,GAAG,CACb,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAI,CACb,2DAA2D,EAC3D;YACE,gBAAgB,EAAE,aAAa;YAC/B,WAAW,EAAE,CAAC,aAAa;YAC3B,kBAAkB,EAAE,YAAY;SACjC,CACF,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC9B,QAAQ,EACN,cAAc;YACd,UAAU;YACV,KAAK,KAAK,SAAS;YACnB,CAAC,CAAC,CAAC,iBAAiB,IAAI,iBAAiB,KAAK,uBAAuB,CAAC;QAGvE,aAAa,IAAI,iCAAa;QAC/B,8BAAM,SAAS,EAAC,MAAM;YACpB,2BAAG,SAAS,EAAC,gBAAgB,aAAW,CACnC;QACP,8BAAM,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,mBAExD,CACA,CACV,CAAA;IAED,IAAI,aAAa,EAAE;QACjB,OAAO,6BAAK,SAAS,EAAC,SAAS,IAAE,MAAM,CAAO,CAAA;KAC/C;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport useLookupNotification from '../hooks/useLookupNotification'\nimport { lookupValidationMessage } from '../services/form-validation'\nimport useFormIsReadOnly from '../hooks/useFormIsReadOnly'\ntype Props = {\n value: unknown | undefined\n validationMessage: string | undefined\n hasMarginTop?: boolean\n isInputButton?: boolean\n}\n\nfunction LookupButton({\n value,\n validationMessage,\n hasMarginTop,\n isInputButton,\n}: Props) {\n const { isLookup, onLookup, isDisabled } = useLookupNotification()\n const formIsReadOnly = useFormIsReadOnly()\n if (!isLookup) {\n return null\n }\n\n const button = (\n <button\n type=\"button\"\n className={clsx(\n 'button is-primary ob-lookup__button cypress-lookup-button',\n {\n 'is-input-addon': isInputButton,\n 'ob-button': !isInputButton,\n 'has-margin-top-8': hasMarginTop,\n },\n )}\n onClick={() => onLookup(value)}\n disabled={\n formIsReadOnly ||\n isDisabled ||\n value === undefined ||\n (!!validationMessage && validationMessage !== lookupValidationMessage)\n }\n >\n {isInputButton && <span></span>}\n <span className=\"icon\">\n <i className=\"material-icons\">search</i>\n </span>\n <span className={isInputButton ? 'is-hidden-mobile' : undefined}>\n Lookup\n </span>\n </button>\n )\n\n if (isInputButton) {\n return <div className=\"control\">{button}</div>\n }\n\n return button\n}\n\nexport default React.memo(LookupButton)\n"]}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import { FormTypes } from '@oneblink/types';
|
3
|
+
import { FormElementLookupHandler } from '../types/form';
|
4
|
+
declare type Props = {
|
5
|
+
autoLookupValue?: unknown;
|
6
|
+
stringifyAutoLookupValue?: (autoLookupValue: unknown) => string;
|
7
|
+
element: FormTypes.LookupFormElement;
|
8
|
+
onLookup: FormElementLookupHandler;
|
9
|
+
children: React.ReactNode;
|
10
|
+
};
|
11
|
+
export default function LookupNotification(props: Props): JSX.Element;
|
12
|
+
export {};
|
@@ -0,0 +1,231 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import clsx from 'clsx';
|
3
|
+
import { formService } from '@oneblink/apps';
|
4
|
+
import { generateHeaders } from '@oneblink/apps/dist/services/fetch';
|
5
|
+
import useIsOffline from '../hooks/useIsOffline';
|
6
|
+
import OnLoading from './OnLoading';
|
7
|
+
import generateDefaultData from '../services/generate-default-data';
|
8
|
+
import { LookupNotificationContext } from '../hooks/useLookupNotification';
|
9
|
+
import useFormDefinition from '../hooks/useFormDefinition';
|
10
|
+
import useInjectPages from '../hooks/useInjectPages';
|
11
|
+
import useFormSubmissionModel from '../hooks/useFormSubmissionModelContext';
|
12
|
+
import useExecutedLookupCallback from '../hooks/useExecutedLookupCallback';
|
13
|
+
import useFormIsReadOnly from '../hooks/useFormIsReadOnly';
|
14
|
+
import { Sentry } from '@oneblink/apps';
|
15
|
+
import useIsMounted from '../hooks/useIsMounted';
|
16
|
+
function LookupNotificationComponent({ autoLookupValue, stringifyAutoLookupValue, element, onLookup, children, }) {
|
17
|
+
const isMounted = useIsMounted();
|
18
|
+
const isOffline = useIsOffline();
|
19
|
+
const definition = useFormDefinition();
|
20
|
+
const injectPagesAfter = useInjectPages();
|
21
|
+
const { executedLookup, executeLookupFailed } = useExecutedLookupCallback();
|
22
|
+
const [onCancelLookup, setOnCancelLookup] = React.useState(undefined);
|
23
|
+
const [isLookingUp, setIsLookingUp] = React.useState(false);
|
24
|
+
const [hasLookupFailed, setHasLookupFailed] = React.useState(false);
|
25
|
+
const [hasLookupSucceeded, setHasLookupSucceeded] = React.useState(false);
|
26
|
+
const [isCancellable, setIsCancellable] = React.useState(false);
|
27
|
+
const [isDisabled, setIsDisabled] = React.useState(false);
|
28
|
+
const [lookupErrorHTML, setLookupErrorHTML] = React.useState(null);
|
29
|
+
const formIsReadOnly = useFormIsReadOnly();
|
30
|
+
const { formSubmissionModel: model } = useFormSubmissionModel();
|
31
|
+
const mergeLookupData = React.useCallback((newValue, dataLookupResult, elementLookupResult) => {
|
32
|
+
if (elementLookupResult) {
|
33
|
+
if (elementLookupResult[0] && elementLookupResult[0].type === 'page') {
|
34
|
+
injectPagesAfter(element, elementLookupResult, dataLookupResult);
|
35
|
+
return;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
onLookup(({ submission, elements }) => {
|
39
|
+
let allElements = elements;
|
40
|
+
if (Array.isArray(elementLookupResult)) {
|
41
|
+
const indexOfElement = elements.findIndex(({ id }) => id === element.id);
|
42
|
+
if (indexOfElement === -1) {
|
43
|
+
console.log('Could not find element', element);
|
44
|
+
}
|
45
|
+
else {
|
46
|
+
// Filter out already injected elements
|
47
|
+
allElements = elements.filter(
|
48
|
+
// @ts-expect-error Sorry typescript, we need to check a property you don't approve of :(
|
49
|
+
(e) => e.injectedByElementId !== element.id);
|
50
|
+
allElements.splice(indexOfElement + 1, 0, ...elementLookupResult.map((e) => {
|
51
|
+
// @ts-expect-error Sorry typescript, we need to check a property you don't approve of :(
|
52
|
+
e.injectedByElementId = element.id;
|
53
|
+
return e;
|
54
|
+
}));
|
55
|
+
}
|
56
|
+
}
|
57
|
+
return {
|
58
|
+
elements: allElements,
|
59
|
+
submission: generateDefaultData(allElements, {
|
60
|
+
...submission,
|
61
|
+
[element.name]: newValue,
|
62
|
+
...dataLookupResult,
|
63
|
+
}),
|
64
|
+
};
|
65
|
+
});
|
66
|
+
}, [element, injectPagesAfter, onLookup]);
|
67
|
+
const triggerLookup = React.useCallback(async (newValue) => {
|
68
|
+
// No lookups for read only forms
|
69
|
+
if (formIsReadOnly)
|
70
|
+
return;
|
71
|
+
// if the element triggering the lookup has no value..
|
72
|
+
// ..return and do nothing
|
73
|
+
if (newValue === undefined || newValue === null)
|
74
|
+
return;
|
75
|
+
setIsLookingUp(true);
|
76
|
+
if (isOffline) {
|
77
|
+
setHasLookupFailed(true);
|
78
|
+
return;
|
79
|
+
}
|
80
|
+
executedLookup(element);
|
81
|
+
setIsDisabled(true);
|
82
|
+
setIsCancellable(false);
|
83
|
+
setHasLookupFailed(false);
|
84
|
+
setHasLookupSucceeded(false);
|
85
|
+
setLookupErrorHTML(null);
|
86
|
+
const abortController = new AbortController();
|
87
|
+
setOnCancelLookup(() => () => abortController.abort());
|
88
|
+
// After certain amount of time, show the cancel button
|
89
|
+
const isCancellableTimeout = setTimeout(() => {
|
90
|
+
setIsCancellable(!abortController.signal.aborted);
|
91
|
+
}, 5000);
|
92
|
+
const payload = {
|
93
|
+
definition,
|
94
|
+
submission: {
|
95
|
+
...model,
|
96
|
+
[element.name]: newValue,
|
97
|
+
},
|
98
|
+
};
|
99
|
+
try {
|
100
|
+
const [dataLookupResult, elementLookupResult] = await Promise.all([
|
101
|
+
fetchLookup(element.dataLookupId, definition === null || definition === void 0 ? void 0 : definition.organisationId, definition === null || definition === void 0 ? void 0 : definition.formsAppEnvironmentId, payload, abortController.signal),
|
102
|
+
fetchLookup(element.elementLookupId, definition === null || definition === void 0 ? void 0 : definition.organisationId, definition === null || definition === void 0 ? void 0 : definition.formsAppEnvironmentId, payload, abortController.signal),
|
103
|
+
]);
|
104
|
+
mergeLookupData(newValue, dataLookupResult, elementLookupResult);
|
105
|
+
if (isMounted.current) {
|
106
|
+
setHasLookupSucceeded(true);
|
107
|
+
}
|
108
|
+
// After certain amount of time, hide the lookup succeeded message
|
109
|
+
await new Promise((resolve) => setTimeout(() => resolve(false), 750));
|
110
|
+
if (isMounted.current) {
|
111
|
+
setIsLookingUp(false);
|
112
|
+
}
|
113
|
+
}
|
114
|
+
catch (error) {
|
115
|
+
executeLookupFailed(element);
|
116
|
+
if (!isMounted.current) {
|
117
|
+
return;
|
118
|
+
}
|
119
|
+
// Cancelling will throw an error.
|
120
|
+
if (abortController.signal.aborted) {
|
121
|
+
console.log('Fetch aborted');
|
122
|
+
setIsLookingUp(false);
|
123
|
+
return;
|
124
|
+
}
|
125
|
+
setHasLookupFailed(true);
|
126
|
+
setLookupErrorHTML(typeof error === 'string'
|
127
|
+
? error
|
128
|
+
: 'It looks like something went wrong.<br/>Please try again.<br />If the issue continues, please contact support.');
|
129
|
+
}
|
130
|
+
finally {
|
131
|
+
clearTimeout(isCancellableTimeout);
|
132
|
+
if (isMounted.current) {
|
133
|
+
setIsDisabled(false);
|
134
|
+
setOnCancelLookup(undefined);
|
135
|
+
}
|
136
|
+
}
|
137
|
+
}, [
|
138
|
+
definition,
|
139
|
+
element,
|
140
|
+
executeLookupFailed,
|
141
|
+
executedLookup,
|
142
|
+
formIsReadOnly,
|
143
|
+
isMounted,
|
144
|
+
isOffline,
|
145
|
+
mergeLookupData,
|
146
|
+
model,
|
147
|
+
]);
|
148
|
+
// For certain elements, do not add click event
|
149
|
+
// instead, watch model for changes and trigger lookup function.
|
150
|
+
// We add this stringify function here to allow the value to be
|
151
|
+
// an object which may have a reference change, but the values
|
152
|
+
// have not changed. e.g. the 'location' element's value
|
153
|
+
const autoLookupValueString = stringifyAutoLookupValue
|
154
|
+
? stringifyAutoLookupValue(autoLookupValue)
|
155
|
+
: autoLookupValue;
|
156
|
+
React.useEffect(() => {
|
157
|
+
if (autoLookupValue !== undefined) {
|
158
|
+
triggerLookup(autoLookupValue);
|
159
|
+
}
|
160
|
+
// Wants to use "triggerLookup" as a dependency,
|
161
|
+
// however, this will change on any change made on any
|
162
|
+
// element. Checking if "value" has changed is enough
|
163
|
+
// to trigger a lookup when the correct dependencies change
|
164
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
165
|
+
}, [autoLookupValueString]);
|
166
|
+
const contextValue = React.useMemo(() => ({
|
167
|
+
isLookup: true,
|
168
|
+
isDisabled,
|
169
|
+
onLookup: triggerLookup,
|
170
|
+
}), [isDisabled, triggerLookup]);
|
171
|
+
return (React.createElement(LookupNotificationContext.Provider, { value: contextValue },
|
172
|
+
children,
|
173
|
+
React.createElement("div", { className: clsx('ob-lookup__notification', {
|
174
|
+
'is-looking-up': isLookingUp,
|
175
|
+
'is-extended': hasLookupFailed || (isCancellable && !hasLookupSucceeded),
|
176
|
+
}) },
|
177
|
+
React.createElement("div", { className: "notification has-margin-top-7 has-text-centered" },
|
178
|
+
hasLookupFailed && (React.createElement(React.Fragment, null,
|
179
|
+
React.createElement("button", { type: "button", className: "delete fade-in", onClick: () => setIsLookingUp(false) }),
|
180
|
+
React.createElement("div", null, isOffline ? (React.createElement("div", null,
|
181
|
+
React.createElement("i", { className: "material-icons fade-in has-text-warning" }, "wifi_off"),
|
182
|
+
React.createElement("p", { className: "fade-in" }, "It looks like you're offline. Please try again when connectivity is restored."))) : (React.createElement("div", null,
|
183
|
+
React.createElement("i", { className: "material-icons fade-in has-text-danger" }, "error_outline"),
|
184
|
+
React.createElement("p", { className: "fade-in", dangerouslySetInnerHTML: {
|
185
|
+
__html: lookupErrorHTML || '',
|
186
|
+
}, "ng-bind-html": "$ctrl.obLookupCtrl.lookupErrorMessage" })))))),
|
187
|
+
hasLookupSucceeded && (React.createElement("i", { className: "material-icons has-text-success fade-in" }, "check_circle_outline")),
|
188
|
+
!hasLookupSucceeded && !hasLookupFailed && React.createElement(OnLoading, { small: true }),
|
189
|
+
isCancellable && !hasLookupSucceeded && !hasLookupFailed && (React.createElement("div", { className: "has-margin-top-5 fade-in" },
|
190
|
+
React.createElement("p", null, "Taking longer than expected?"),
|
191
|
+
React.createElement("button", { type: "button", className: "button has-margin-top-8", onClick: onCancelLookup }, "Cancel")))))));
|
192
|
+
}
|
193
|
+
export default function LookupNotification(props) {
|
194
|
+
if (props.element.isDataLookup || props.element.isElementLookup) {
|
195
|
+
return React.createElement(LookupNotificationComponent, { ...props });
|
196
|
+
}
|
197
|
+
return React.createElement(React.Fragment, null, props.children);
|
198
|
+
}
|
199
|
+
async function fetchLookup(formElementLookupId, organisationId, formsAppEnvironmentId, payload, abortSignal) {
|
200
|
+
if (typeof formElementLookupId !== 'number' ||
|
201
|
+
!organisationId ||
|
202
|
+
typeof formsAppEnvironmentId !== 'number') {
|
203
|
+
return;
|
204
|
+
}
|
205
|
+
console.log('Attempting to retrieve form element lookup for id:', formElementLookupId);
|
206
|
+
const formElementLookup = await formService.getFormElementLookupById(organisationId, formsAppEnvironmentId, formElementLookupId);
|
207
|
+
if (!formElementLookup || !formElementLookup.url) {
|
208
|
+
console.log('Could not find URL for form element lookup for id:', formElementLookupId, formElementLookup);
|
209
|
+
throw new Error('Could not find element lookup configuration');
|
210
|
+
}
|
211
|
+
const headers = await generateHeaders();
|
212
|
+
console.log(`Attempting a ${formElementLookup.type} lookup request to:`, formElementLookup.url);
|
213
|
+
const response = await fetch(formElementLookup.url, {
|
214
|
+
method: 'POST',
|
215
|
+
headers,
|
216
|
+
body: JSON.stringify(payload),
|
217
|
+
signal: abortSignal,
|
218
|
+
});
|
219
|
+
const data = await response.json();
|
220
|
+
console.log('Response from lookup to: POST', formElementLookup.url, response.status, data);
|
221
|
+
if (!response.ok) {
|
222
|
+
Sentry.captureException(new Error(`Received ${response.status} status code from lookup`));
|
223
|
+
if (response.status === 400 && data && data.message) {
|
224
|
+
throw data.message;
|
225
|
+
}
|
226
|
+
throw new Error('Invalid response from lookup');
|
227
|
+
}
|
228
|
+
return data;
|
229
|
+
}
|
230
|
+
// Validate that an element with a lookup has had the lookup button pressed if the element is required
|
231
|
+
//# sourceMappingURL=LookupNotification.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"LookupNotification.js","sourceRoot":"","sources":["../../src/components/LookupNotification.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport { formService } from '@oneblink/apps'\nimport { generateHeaders } from '@oneblink/apps/dist/services/fetch'\n\nimport useIsOffline from '../hooks/useIsOffline'\nimport OnLoading from './OnLoading'\nimport generateDefaultData from '../services/generate-default-data'\nimport { LookupNotificationContext } from '../hooks/useLookupNotification'\nimport useFormDefinition from '../hooks/useFormDefinition'\nimport useInjectPages from '../hooks/useInjectPages'\nimport useFormSubmissionModel from '../hooks/useFormSubmissionModelContext'\nimport useExecutedLookupCallback from '../hooks/useExecutedLookupCallback'\nimport useFormIsReadOnly from '../hooks/useFormIsReadOnly'\nimport { Sentry } from '@oneblink/apps'\nimport { FormTypes } from '@oneblink/types'\nimport useIsMounted from '../hooks/useIsMounted'\nimport { FormElementLookupHandler, FormSubmissionModel } from '../types/form'\n\ntype Props = {\n autoLookupValue?: unknown\n stringifyAutoLookupValue?: (autoLookupValue: unknown) => string\n element: FormTypes.LookupFormElement\n onLookup: FormElementLookupHandler\n children: React.ReactNode\n}\n\nfunction LookupNotificationComponent({\n autoLookupValue,\n stringifyAutoLookupValue,\n element,\n onLookup,\n children,\n}: Props) {\n const isMounted = useIsMounted()\n const isOffline = useIsOffline()\n const definition = useFormDefinition()\n const injectPagesAfter = useInjectPages()\n const { executedLookup, executeLookupFailed } = useExecutedLookupCallback()\n\n const [onCancelLookup, setOnCancelLookup] = React.useState<\n (() => void) | undefined\n >(undefined)\n const [isLookingUp, setIsLookingUp] = React.useState(false)\n const [hasLookupFailed, setHasLookupFailed] = React.useState(false)\n const [hasLookupSucceeded, setHasLookupSucceeded] = React.useState(false)\n const [isCancellable, setIsCancellable] = React.useState(false)\n const [isDisabled, setIsDisabled] = React.useState(false)\n const [lookupErrorHTML, setLookupErrorHTML] = React.useState<string | null>(\n null,\n )\n const formIsReadOnly = useFormIsReadOnly()\n const { formSubmissionModel: model } = useFormSubmissionModel()\n\n const mergeLookupData = React.useCallback(\n (\n newValue,\n dataLookupResult,\n elementLookupResult: FormTypes.FormElement[],\n ) => {\n if (elementLookupResult) {\n if (elementLookupResult[0] && elementLookupResult[0].type === 'page') {\n injectPagesAfter(\n element,\n elementLookupResult as FormTypes.PageElement[],\n dataLookupResult,\n )\n return\n }\n }\n\n onLookup(({ submission, elements }) => {\n let allElements = elements\n if (Array.isArray(elementLookupResult)) {\n const indexOfElement = elements.findIndex(\n ({ id }) => id === element.id,\n )\n if (indexOfElement === -1) {\n console.log('Could not find element', element)\n } else {\n // Filter out already injected elements\n allElements = elements.filter(\n // @ts-expect-error Sorry typescript, we need to check a property you don't approve of :(\n (e) => e.injectedByElementId !== element.id,\n )\n allElements.splice(\n indexOfElement + 1,\n 0,\n ...elementLookupResult.map((e) => {\n // @ts-expect-error Sorry typescript, we need to check a property you don't approve of :(\n e.injectedByElementId = element.id\n return e\n }),\n )\n }\n }\n\n return {\n elements: allElements,\n submission: generateDefaultData(allElements, {\n ...submission,\n [element.name]: newValue,\n ...dataLookupResult,\n }),\n }\n })\n },\n [element, injectPagesAfter, onLookup],\n )\n\n const triggerLookup = React.useCallback(\n async (newValue) => {\n // No lookups for read only forms\n if (formIsReadOnly) return\n // if the element triggering the lookup has no value..\n // ..return and do nothing\n if (newValue === undefined || newValue === null) return\n\n setIsLookingUp(true)\n\n if (isOffline) {\n setHasLookupFailed(true)\n return\n }\n\n executedLookup(element)\n setIsDisabled(true)\n setIsCancellable(false)\n setHasLookupFailed(false)\n setHasLookupSucceeded(false)\n setLookupErrorHTML(null)\n\n const abortController = new AbortController()\n setOnCancelLookup(() => () => abortController.abort())\n\n // After certain amount of time, show the cancel button\n const isCancellableTimeout = setTimeout(() => {\n setIsCancellable(!abortController.signal.aborted)\n }, 5000)\n\n const payload = {\n definition,\n submission: {\n ...model,\n [element.name]: newValue,\n },\n }\n\n try {\n const [dataLookupResult, elementLookupResult] = await Promise.all([\n fetchLookup(\n element.dataLookupId,\n definition?.organisationId,\n definition?.formsAppEnvironmentId,\n payload,\n abortController.signal,\n ),\n fetchLookup(\n element.elementLookupId,\n definition?.organisationId,\n definition?.formsAppEnvironmentId,\n payload,\n abortController.signal,\n ),\n ])\n\n mergeLookupData(newValue, dataLookupResult, elementLookupResult)\n\n if (isMounted.current) {\n setHasLookupSucceeded(true)\n }\n\n // After certain amount of time, hide the lookup succeeded message\n await new Promise((resolve) => setTimeout(() => resolve(false), 750))\n\n if (isMounted.current) {\n setIsLookingUp(false)\n }\n } catch (error) {\n executeLookupFailed(element)\n\n if (!isMounted.current) {\n return\n }\n\n // Cancelling will throw an error.\n if (abortController.signal.aborted) {\n console.log('Fetch aborted')\n setIsLookingUp(false)\n return\n }\n\n setHasLookupFailed(true)\n setLookupErrorHTML(\n typeof error === 'string'\n ? error\n : 'It looks like something went wrong.<br/>Please try again.<br />If the issue continues, please contact support.',\n )\n } finally {\n clearTimeout(isCancellableTimeout)\n if (isMounted.current) {\n setIsDisabled(false)\n setOnCancelLookup(undefined)\n }\n }\n },\n [\n definition,\n element,\n executeLookupFailed,\n executedLookup,\n formIsReadOnly,\n isMounted,\n isOffline,\n mergeLookupData,\n model,\n ],\n )\n\n // For certain elements, do not add click event\n // instead, watch model for changes and trigger lookup function.\n // We add this stringify function here to allow the value to be\n // an object which may have a reference change, but the values\n // have not changed. e.g. the 'location' element's value\n const autoLookupValueString = stringifyAutoLookupValue\n ? stringifyAutoLookupValue(autoLookupValue)\n : autoLookupValue\n React.useEffect(() => {\n if (autoLookupValue !== undefined) {\n triggerLookup(autoLookupValue)\n }\n // Wants to use \"triggerLookup\" as a dependency,\n // however, this will change on any change made on any\n // element. Checking if \"value\" has changed is enough\n // to trigger a lookup when the correct dependencies change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [autoLookupValueString])\n\n const contextValue = React.useMemo(\n () => ({\n isLookup: true,\n isDisabled,\n onLookup: triggerLookup,\n }),\n [isDisabled, triggerLookup],\n )\n\n return (\n <LookupNotificationContext.Provider value={contextValue}>\n {children}\n <div\n className={clsx('ob-lookup__notification', {\n 'is-looking-up': isLookingUp,\n 'is-extended':\n hasLookupFailed || (isCancellable && !hasLookupSucceeded),\n })}\n >\n <div className=\"notification has-margin-top-7 has-text-centered\">\n {hasLookupFailed && (\n <>\n <button\n type=\"button\"\n className=\"delete fade-in\"\n onClick={() => setIsLookingUp(false)}\n />\n\n <div>\n {isOffline ? (\n <div>\n <i className=\"material-icons fade-in has-text-warning\">\n wifi_off\n </i>\n <p className=\"fade-in\">\n It looks like you're offline. Please try again when\n connectivity is restored.\n </p>\n </div>\n ) : (\n <div>\n <i className=\"material-icons fade-in has-text-danger\">\n error_outline\n </i>\n <p\n className=\"fade-in\"\n dangerouslySetInnerHTML={{\n __html: lookupErrorHTML || '',\n }}\n ng-bind-html=\"$ctrl.obLookupCtrl.lookupErrorMessage\"\n />\n </div>\n )}\n </div>\n </>\n )}\n\n {hasLookupSucceeded && (\n <i className=\"material-icons has-text-success fade-in\">\n check_circle_outline\n </i>\n )}\n\n {!hasLookupSucceeded && !hasLookupFailed && <OnLoading small />}\n\n {isCancellable && !hasLookupSucceeded && !hasLookupFailed && (\n <div className=\"has-margin-top-5 fade-in\">\n <p>Taking longer than expected?</p>\n <button\n type=\"button\"\n className=\"button has-margin-top-8\"\n onClick={onCancelLookup}\n >\n Cancel\n </button>\n </div>\n )}\n </div>\n </div>\n </LookupNotificationContext.Provider>\n )\n}\n\nexport default function LookupNotification(props: Props) {\n if (props.element.isDataLookup || props.element.isElementLookup) {\n return <LookupNotificationComponent {...props} />\n }\n\n return <>{props.children}</>\n}\n\nasync function fetchLookup(\n formElementLookupId: number | undefined,\n organisationId: string | undefined,\n formsAppEnvironmentId: number | undefined,\n payload: FormSubmissionModel,\n abortSignal: AbortSignal,\n) {\n if (\n typeof formElementLookupId !== 'number' ||\n !organisationId ||\n typeof formsAppEnvironmentId !== 'number'\n ) {\n return\n }\n\n console.log(\n 'Attempting to retrieve form element lookup for id:',\n formElementLookupId,\n )\n const formElementLookup = await formService.getFormElementLookupById(\n organisationId,\n formsAppEnvironmentId,\n formElementLookupId,\n )\n\n if (!formElementLookup || !formElementLookup.url) {\n console.log(\n 'Could not find URL for form element lookup for id:',\n formElementLookupId,\n formElementLookup,\n )\n throw new Error('Could not find element lookup configuration')\n }\n\n const headers = await generateHeaders()\n console.log(\n `Attempting a ${formElementLookup.type} lookup request to:`,\n formElementLookup.url,\n )\n const response = await fetch(formElementLookup.url, {\n method: 'POST',\n headers,\n body: JSON.stringify(payload),\n signal: abortSignal,\n })\n\n const data = await response.json()\n console.log(\n 'Response from lookup to: POST',\n formElementLookup.url,\n response.status,\n data,\n )\n\n if (!response.ok) {\n Sentry.captureException(\n new Error(`Received ${response.status} status code from lookup`),\n )\n if (response.status === 400 && data && data.message) {\n throw data.message\n }\n throw new Error('Invalid response from lookup')\n }\n\n return data\n}\n\n// Validate that an element with a lookup has had the lookup button pressed if the element is required\n"]}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
declare type Props = {
|
3
|
+
isOpen: boolean;
|
4
|
+
title: string;
|
5
|
+
children: React.ReactNode;
|
6
|
+
actions: React.ReactNode | null;
|
7
|
+
className?: string;
|
8
|
+
cardClassName?: string;
|
9
|
+
titleClassName?: string;
|
10
|
+
bodyClassName?: string;
|
11
|
+
};
|
12
|
+
declare function Modal({ isOpen, title, children, className, cardClassName, titleClassName, bodyClassName, actions, }: Props): JSX.Element;
|
13
|
+
declare const _default: React.MemoExoticComponent<typeof Modal>;
|
14
|
+
export default _default;
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import clsx from 'clsx';
|
3
|
+
function Modal({ isOpen, title, children, className, cardClassName, titleClassName, bodyClassName, actions, }) {
|
4
|
+
return (React.createElement("div", { className: clsx('modal ob-modal', className, {
|
5
|
+
'is-active': isOpen,
|
6
|
+
}) },
|
7
|
+
React.createElement("div", { className: "modal-background-faded" }),
|
8
|
+
React.createElement("div", { className: clsx('modal-card', cardClassName) },
|
9
|
+
React.createElement("header", { className: "modal-card-head" },
|
10
|
+
React.createElement("p", { className: clsx('modal-card-title', titleClassName) }, title)),
|
11
|
+
React.createElement("section", { className: clsx('modal-card-body', bodyClassName) }, children),
|
12
|
+
actions && React.createElement("footer", { className: "modal-card-foot" }, actions))));
|
13
|
+
}
|
14
|
+
export default React.memo(Modal);
|
15
|
+
//# sourceMappingURL=Modal.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/components/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AAavB,SAAS,KAAK,CAAC,EACb,MAAM,EACN,KAAK,EACL,QAAQ,EACR,SAAS,EACT,aAAa,EACb,cAAc,EACd,aAAa,EACb,OAAO,GACD;IACN,OAAO,CACL,6BACE,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,EAAE;YAC3C,WAAW,EAAE,MAAM;SACpB,CAAC;QAEF,6BAAK,SAAS,EAAC,wBAAwB,GAAO;QAC9C,6BAAK,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC;YAC/C,gCAAQ,SAAS,EAAC,iBAAiB;gBACjC,2BAAG,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,IAAG,KAAK,CAAK,CAC5D;YACT,iCAAS,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,IACvD,QAAQ,CACD;YACT,OAAO,IAAI,gCAAQ,SAAS,EAAC,iBAAiB,IAAE,OAAO,CAAU,CAC9D,CACF,CACP,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\n\ntype Props = {\n isOpen: boolean\n title: string\n children: React.ReactNode\n actions: React.ReactNode | null\n className?: string\n cardClassName?: string\n titleClassName?: string\n bodyClassName?: string\n}\n\nfunction Modal({\n isOpen,\n title,\n children,\n className,\n cardClassName,\n titleClassName,\n bodyClassName,\n actions,\n}: Props) {\n return (\n <div\n className={clsx('modal ob-modal', className, {\n 'is-active': isOpen,\n })}\n >\n <div className=\"modal-background-faded\"></div>\n <div className={clsx('modal-card', cardClassName)}>\n <header className=\"modal-card-head\">\n <p className={clsx('modal-card-title', titleClassName)}>{title}</p>\n </header>\n <section className={clsx('modal-card-body', bodyClassName)}>\n {children}\n </section>\n {actions && <footer className=\"modal-card-foot\">{actions}</footer>}\n </div>\n </div>\n )\n}\n\nexport default React.memo(Modal)\n"]}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
declare type Props = {
|
3
|
+
IconComponent: React.ComponentType<{
|
4
|
+
className: string;
|
5
|
+
}>;
|
6
|
+
title: string;
|
7
|
+
gutterBottom?: boolean;
|
8
|
+
children?: React.ReactNode;
|
9
|
+
};
|
10
|
+
export declare function NoResourcesYet({ title, children, IconComponent, gutterBottom, }: Props): JSX.Element;
|
11
|
+
declare const _default: React.NamedExoticComponent<Props>;
|
12
|
+
export default _default;
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import LargeIconMessage from './messages/LargeIconMessage';
|
3
|
+
export function NoResourcesYet({ title, children, IconComponent, gutterBottom, }) {
|
4
|
+
return (React.createElement(LargeIconMessage, { IconComponent: IconComponent, title: title, variant: "primary", gutterBottom: gutterBottom, gutterTop: true }, children));
|
5
|
+
}
|
6
|
+
export default React.memo(NoResourcesYet);
|
7
|
+
//# sourceMappingURL=NoResourcesYet.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"NoResourcesYet.js","sourceRoot":"","sources":["../../src/components/NoResourcesYet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,gBAAgB,MAAM,6BAA6B,CAAA;AAS1D,MAAM,UAAU,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,aAAa,EACb,YAAY,GACN;IACN,OAAO,CACL,oBAAC,gBAAgB,IACf,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAC,SAAS,EACjB,YAAY,EAAE,YAAY,EAC1B,SAAS,UAER,QAAQ,CACQ,CACpB,CAAA;AACH,CAAC;AACD,eAAe,KAAK,CAAC,IAAI,CAAQ,cAAc,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport LargeIconMessage from './messages/LargeIconMessage'\ntype Props = {\n IconComponent: React.ComponentType<{\n className: string\n }>\n title: string\n gutterBottom?: boolean\n children?: React.ReactNode\n}\nexport function NoResourcesYet({\n title,\n children,\n IconComponent,\n gutterBottom,\n}: Props) {\n return (\n <LargeIconMessage\n IconComponent={IconComponent}\n title={title}\n variant=\"primary\"\n gutterBottom={gutterBottom}\n gutterTop\n >\n {children}\n </LargeIconMessage>\n )\n}\nexport default React.memo<Props>(NoResourcesYet)\n"]}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
declare type Props = {
|
3
|
+
className?: string;
|
4
|
+
small?: boolean;
|
5
|
+
large?: boolean;
|
6
|
+
tiny?: boolean;
|
7
|
+
};
|
8
|
+
declare function OnLoading({ className, small, large, tiny }: Props): JSX.Element;
|
9
|
+
declare const _default: React.MemoExoticComponent<typeof OnLoading>;
|
10
|
+
export default _default;
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import clsx from 'clsx';
|
3
|
+
function OnLoading({ className, small, large, tiny }) {
|
4
|
+
return (React.createElement("on-loading", { className: className },
|
5
|
+
React.createElement("div", { className: clsx('ob-loading on-loading', {
|
6
|
+
small: small,
|
7
|
+
large: large,
|
8
|
+
tiny: tiny,
|
9
|
+
}) })));
|
10
|
+
}
|
11
|
+
export default React.memo(OnLoading);
|
12
|
+
//# sourceMappingURL=OnLoading.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"OnLoading.js","sourceRoot":"","sources":["../../src/components/OnLoading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AASvB,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAS;IACzD,OAAO,CACL,oCAAY,SAAS,EAAE,SAAS;QAC9B,6BACE,SAAS,EAAE,IAAI,CAAC,uBAAuB,EAAE;gBACvC,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,IAAI;aACX,CAAC,GACF,CACS,CACd,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\n\ntype Props = {\n className?: string\n small?: boolean\n large?: boolean\n tiny?: boolean\n}\n\nfunction OnLoading({ className, small, large, tiny }: Props) {\n return (\n <on-loading className={className}>\n <div\n className={clsx('ob-loading on-loading', {\n small: small,\n large: large,\n tiny: tiny,\n })}\n />\n </on-loading>\n )\n}\n\nexport default React.memo(OnLoading)\n"]}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
declare type Props = {
|
3
|
+
error?: Error;
|
4
|
+
};
|
5
|
+
declare function OneBlinkAppsErrorOriginalMessage({ error }: Props): JSX.Element | null;
|
6
|
+
declare const _default: React.MemoExoticComponent<typeof OneBlinkAppsErrorOriginalMessage>;
|
7
|
+
export default _default;
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import { OneBlinkAppsError } from '@oneblink/apps';
|
3
|
+
function OneBlinkAppsErrorOriginalMessage({ error }) {
|
4
|
+
if (!error) {
|
5
|
+
return null;
|
6
|
+
}
|
7
|
+
return (React.createElement(React.Fragment, null,
|
8
|
+
React.createElement("div", { className: "content has-margin-top-6" },
|
9
|
+
React.createElement("pre", null, error.message)),
|
10
|
+
error instanceof OneBlinkAppsError && (React.createElement(OneBlinkAppsErrorOriginalMessage, { error: error.originalError }))));
|
11
|
+
}
|
12
|
+
export default React.memo(OneBlinkAppsErrorOriginalMessage);
|
13
|
+
//# sourceMappingURL=OneBlinkAppsErrorOriginalMessage.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"OneBlinkAppsErrorOriginalMessage.js","sourceRoot":"","sources":["../../src/components/OneBlinkAppsErrorOriginalMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAMlD,SAAS,gCAAgC,CAAC,EAAE,KAAK,EAAS;IACxD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL;QACE,6BAAK,SAAS,EAAC,0BAA0B;YACvC,iCAAM,KAAK,CAAC,OAAO,CAAO,CACtB;QACL,KAAK,YAAY,iBAAiB,IAAI,CACrC,oBAAC,gCAAgC,IAAC,KAAK,EAAE,KAAK,CAAC,aAAa,GAAI,CACjE,CACA,CACJ,CAAA;AACH,CAAC;AAED,eAAe,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { OneBlinkAppsError } from '@oneblink/apps'\n\ntype Props = {\n error?: Error\n}\n\nfunction OneBlinkAppsErrorOriginalMessage({ error }: Props) {\n if (!error) {\n return null\n }\n\n return (\n <>\n <div className=\"content has-margin-top-6\">\n <pre>{error.message}</pre>\n </div>\n {error instanceof OneBlinkAppsError && (\n <OneBlinkAppsErrorOriginalMessage error={error.originalError} />\n )}\n </>\n )\n}\n\nexport default React.memo(OneBlinkAppsErrorOriginalMessage)\n"]}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import { FormTypes } from '@oneblink/types';
|
3
|
+
import { FormElementLookupHandler, FormElementsConditionallyShown, FormElementsValidation, FormElementValueChangeHandler, FormSubmissionModel } from '../types/form';
|
4
|
+
export declare type Props<T extends FormTypes._NestedElementsElement> = {
|
5
|
+
formId: number;
|
6
|
+
elements: FormTypes.FormElement[];
|
7
|
+
formElementsConditionallyShown: FormElementsConditionallyShown | undefined;
|
8
|
+
formElementsValidation: FormElementsValidation | undefined;
|
9
|
+
displayValidationMessages: boolean;
|
10
|
+
onChange: FormElementValueChangeHandler;
|
11
|
+
onLookup: FormElementLookupHandler;
|
12
|
+
isEven?: boolean;
|
13
|
+
idPrefix: string;
|
14
|
+
model: FormSubmissionModel;
|
15
|
+
parentElement: T;
|
16
|
+
};
|
17
|
+
declare function OneBlinkFormElements<T extends FormTypes._NestedElementsElement>({ formId, elements, isEven, idPrefix, displayValidationMessages, formElementsValidation, formElementsConditionallyShown, onChange, onLookup, model, parentElement, }: Props<T>): JSX.Element;
|
18
|
+
declare const _default: React.MemoExoticComponent<typeof OneBlinkFormElements>;
|
19
|
+
export default _default;
|