@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
@@ -1,102 +1,102 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import clsx from 'clsx';
|
3
|
-
import SignatureCanvas from 'react-signature-canvas';
|
4
|
-
import useBooleanState from '../../hooks/useBooleanState';
|
5
|
-
import scrollingService from '../../services/scrolling-service';
|
6
|
-
const annotationButtonColours = [
|
7
|
-
'#000000',
|
8
|
-
'#ffffff',
|
9
|
-
'#f44336',
|
10
|
-
'#e91e63',
|
11
|
-
'#9c27b0',
|
12
|
-
'#673ab7',
|
13
|
-
'#3f51b5',
|
14
|
-
'#2196f3',
|
15
|
-
'#03a9f4',
|
16
|
-
'#00bcd4',
|
17
|
-
'#009688',
|
18
|
-
'#4caf50',
|
19
|
-
'#8bc34a',
|
20
|
-
'#cddc39',
|
21
|
-
'#ffee58',
|
22
|
-
'#ffca28',
|
23
|
-
'#ffa726',
|
24
|
-
'#ff5722',
|
25
|
-
];
|
26
|
-
function AnnotationModal({ imageSrc, onClose, onSave, }) {
|
27
|
-
const annotationContentElementRef = React.useRef(null);
|
28
|
-
const bmSignaturePadRef = React.useRef(null);
|
29
|
-
const signatureCanvasRef = React.useRef(null);
|
30
|
-
const [isDirty, setDirty] = useBooleanState(false);
|
31
|
-
const [penColour, setPenColour] = React.useState(annotationButtonColours[0]);
|
32
|
-
const handleCancelAnnotation = React.useCallback(() => {
|
33
|
-
if (signatureCanvasRef.current) {
|
34
|
-
console.log('Clearing annotation...');
|
35
|
-
signatureCanvasRef.current.clear();
|
36
|
-
}
|
37
|
-
onClose();
|
38
|
-
}, [onClose]);
|
39
|
-
const handleSaveAnnotation = React.useCallback(() => {
|
40
|
-
if (signatureCanvasRef.current) {
|
41
|
-
onSave(signatureCanvasRef.current.toDataURL());
|
42
|
-
}
|
43
|
-
}, [onSave]);
|
44
|
-
// SETTING CANVAS FROM PASSED VALUE
|
45
|
-
React.useEffect(() => {
|
46
|
-
const annotationContentElement = annotationContentElementRef.current;
|
47
|
-
const bmSignaturePadElement = bmSignaturePadRef.current;
|
48
|
-
const signatureCanvas = signatureCanvasRef.current;
|
49
|
-
if (!annotationContentElement ||
|
50
|
-
!bmSignaturePadElement ||
|
51
|
-
!signatureCanvas ||
|
52
|
-
typeof imageSrc !== 'string') {
|
53
|
-
return;
|
54
|
-
}
|
55
|
-
const canvasElement = signatureCanvas.getCanvas();
|
56
|
-
// Disable scrolling to allow for smooth drawing
|
57
|
-
scrollingService.disableScrolling();
|
58
|
-
const maxWidth = annotationContentElement.clientWidth;
|
59
|
-
const maxHeight = annotationContentElement.clientHeight;
|
60
|
-
const i = new Image();
|
61
|
-
i.onload = function () {
|
62
|
-
const imageWidth = i.width;
|
63
|
-
const imageHeight = i.height;
|
64
|
-
let canvasWidth = imageWidth;
|
65
|
-
let canvasHeight = imageHeight;
|
66
|
-
if (imageWidth > maxWidth || imageHeight > maxHeight) {
|
67
|
-
const widthRatio = maxWidth / imageWidth;
|
68
|
-
const heightRatio = maxHeight / imageHeight;
|
69
|
-
const ratio = Math.min(widthRatio, heightRatio);
|
70
|
-
canvasWidth = ratio * imageWidth;
|
71
|
-
canvasHeight = ratio * imageHeight;
|
72
|
-
}
|
73
|
-
bmSignaturePadElement.style.width = `${canvasWidth}px`;
|
74
|
-
bmSignaturePadElement.style.height = `${canvasHeight}px`;
|
75
|
-
bmSignaturePadElement.style.backgroundSize = 'cover';
|
76
|
-
bmSignaturePadElement.style.backgroundImage = `url(${imageSrc})`;
|
77
|
-
canvasElement.width = canvasWidth;
|
78
|
-
canvasElement.height = canvasHeight;
|
79
|
-
};
|
80
|
-
console.log('imageSrc', imageSrc);
|
81
|
-
i.src = imageSrc;
|
82
|
-
return () => {
|
83
|
-
scrollingService.enableScrolling();
|
84
|
-
};
|
85
|
-
}, [imageSrc]);
|
86
|
-
return (React.createElement("div", { className: "modal is-active" },
|
87
|
-
React.createElement("div", { className: "modal-background-faded" }),
|
88
|
-
React.createElement("div", { className: "ob-annotation" },
|
89
|
-
React.createElement("div", { className: "ob-annotation__buttons ob-annotation__buttons-colours" }, annotationButtonColours.map((colour, index) => {
|
90
|
-
return (React.createElement("button", { key: index, type: "button", className: clsx('button ob-annotation__button ob-annotation__button-colour cypress-annotation-colour-button', {
|
91
|
-
'is-selected': penColour === colour,
|
92
|
-
}), onClick: () => setPenColour(colour), style: { backgroundColor: colour } }));
|
93
|
-
})),
|
94
|
-
React.createElement("div", { ref: annotationContentElementRef, className: "ob-annotation__content" },
|
95
|
-
React.createElement("div", { ref: bmSignaturePadRef, className: "ob-annotation__signature-pad cypress-annotation-signature-pad" },
|
96
|
-
React.createElement(SignatureCanvas, { ref: signatureCanvasRef, clearOnResize: false, onEnd: setDirty, penColor: penColour }))),
|
97
|
-
React.createElement("div", { className: "ob-annotation__buttons ob-annotation__buttons-actions" },
|
98
|
-
React.createElement("button", { type: "button", className: "button is-light ob-button ob-annotation__button ob-annotation__button-action cypress-annotation-cancel-button", onClick: handleCancelAnnotation }, "Cancel"),
|
99
|
-
React.createElement("button", { type: "button", className: "button is-primary ob-button ob-annotation__button ob-annotation__button-action cypress-annotation-save-button", disabled: !isDirty, onClick: handleSaveAnnotation }, "Save")))));
|
100
|
-
}
|
101
|
-
export default React.memo(AnnotationModal);
|
1
|
+
import * as React from 'react';
|
2
|
+
import clsx from 'clsx';
|
3
|
+
import SignatureCanvas from 'react-signature-canvas';
|
4
|
+
import useBooleanState from '../../hooks/useBooleanState';
|
5
|
+
import scrollingService from '../../services/scrolling-service';
|
6
|
+
const annotationButtonColours = [
|
7
|
+
'#000000',
|
8
|
+
'#ffffff',
|
9
|
+
'#f44336',
|
10
|
+
'#e91e63',
|
11
|
+
'#9c27b0',
|
12
|
+
'#673ab7',
|
13
|
+
'#3f51b5',
|
14
|
+
'#2196f3',
|
15
|
+
'#03a9f4',
|
16
|
+
'#00bcd4',
|
17
|
+
'#009688',
|
18
|
+
'#4caf50',
|
19
|
+
'#8bc34a',
|
20
|
+
'#cddc39',
|
21
|
+
'#ffee58',
|
22
|
+
'#ffca28',
|
23
|
+
'#ffa726',
|
24
|
+
'#ff5722',
|
25
|
+
];
|
26
|
+
function AnnotationModal({ imageSrc, onClose, onSave, }) {
|
27
|
+
const annotationContentElementRef = React.useRef(null);
|
28
|
+
const bmSignaturePadRef = React.useRef(null);
|
29
|
+
const signatureCanvasRef = React.useRef(null);
|
30
|
+
const [isDirty, setDirty] = useBooleanState(false);
|
31
|
+
const [penColour, setPenColour] = React.useState(annotationButtonColours[0]);
|
32
|
+
const handleCancelAnnotation = React.useCallback(() => {
|
33
|
+
if (signatureCanvasRef.current) {
|
34
|
+
console.log('Clearing annotation...');
|
35
|
+
signatureCanvasRef.current.clear();
|
36
|
+
}
|
37
|
+
onClose();
|
38
|
+
}, [onClose]);
|
39
|
+
const handleSaveAnnotation = React.useCallback(() => {
|
40
|
+
if (signatureCanvasRef.current) {
|
41
|
+
onSave(signatureCanvasRef.current.toDataURL());
|
42
|
+
}
|
43
|
+
}, [onSave]);
|
44
|
+
// SETTING CANVAS FROM PASSED VALUE
|
45
|
+
React.useEffect(() => {
|
46
|
+
const annotationContentElement = annotationContentElementRef.current;
|
47
|
+
const bmSignaturePadElement = bmSignaturePadRef.current;
|
48
|
+
const signatureCanvas = signatureCanvasRef.current;
|
49
|
+
if (!annotationContentElement ||
|
50
|
+
!bmSignaturePadElement ||
|
51
|
+
!signatureCanvas ||
|
52
|
+
typeof imageSrc !== 'string') {
|
53
|
+
return;
|
54
|
+
}
|
55
|
+
const canvasElement = signatureCanvas.getCanvas();
|
56
|
+
// Disable scrolling to allow for smooth drawing
|
57
|
+
scrollingService.disableScrolling();
|
58
|
+
const maxWidth = annotationContentElement.clientWidth;
|
59
|
+
const maxHeight = annotationContentElement.clientHeight;
|
60
|
+
const i = new Image();
|
61
|
+
i.onload = function () {
|
62
|
+
const imageWidth = i.width;
|
63
|
+
const imageHeight = i.height;
|
64
|
+
let canvasWidth = imageWidth;
|
65
|
+
let canvasHeight = imageHeight;
|
66
|
+
if (imageWidth > maxWidth || imageHeight > maxHeight) {
|
67
|
+
const widthRatio = maxWidth / imageWidth;
|
68
|
+
const heightRatio = maxHeight / imageHeight;
|
69
|
+
const ratio = Math.min(widthRatio, heightRatio);
|
70
|
+
canvasWidth = ratio * imageWidth;
|
71
|
+
canvasHeight = ratio * imageHeight;
|
72
|
+
}
|
73
|
+
bmSignaturePadElement.style.width = `${canvasWidth}px`;
|
74
|
+
bmSignaturePadElement.style.height = `${canvasHeight}px`;
|
75
|
+
bmSignaturePadElement.style.backgroundSize = 'cover';
|
76
|
+
bmSignaturePadElement.style.backgroundImage = `url(${imageSrc})`;
|
77
|
+
canvasElement.width = canvasWidth;
|
78
|
+
canvasElement.height = canvasHeight;
|
79
|
+
};
|
80
|
+
console.log('imageSrc', imageSrc);
|
81
|
+
i.src = imageSrc;
|
82
|
+
return () => {
|
83
|
+
scrollingService.enableScrolling();
|
84
|
+
};
|
85
|
+
}, [imageSrc]);
|
86
|
+
return (React.createElement("div", { className: "modal is-active" },
|
87
|
+
React.createElement("div", { className: "modal-background-faded" }),
|
88
|
+
React.createElement("div", { className: "ob-annotation" },
|
89
|
+
React.createElement("div", { className: "ob-annotation__buttons ob-annotation__buttons-colours" }, annotationButtonColours.map((colour, index) => {
|
90
|
+
return (React.createElement("button", { key: index, type: "button", className: clsx('button ob-annotation__button ob-annotation__button-colour cypress-annotation-colour-button', {
|
91
|
+
'is-selected': penColour === colour,
|
92
|
+
}), onClick: () => setPenColour(colour), style: { backgroundColor: colour } }));
|
93
|
+
})),
|
94
|
+
React.createElement("div", { ref: annotationContentElementRef, className: "ob-annotation__content" },
|
95
|
+
React.createElement("div", { ref: bmSignaturePadRef, className: "ob-annotation__signature-pad cypress-annotation-signature-pad" },
|
96
|
+
React.createElement(SignatureCanvas, { ref: signatureCanvasRef, clearOnResize: false, onEnd: setDirty, penColor: penColour }))),
|
97
|
+
React.createElement("div", { className: "ob-annotation__buttons ob-annotation__buttons-actions" },
|
98
|
+
React.createElement("button", { type: "button", className: "button is-light ob-button ob-annotation__button ob-annotation__button-action cypress-annotation-cancel-button", onClick: handleCancelAnnotation }, "Cancel"),
|
99
|
+
React.createElement("button", { type: "button", className: "button is-primary ob-button ob-annotation__button ob-annotation__button-action cypress-annotation-save-button", disabled: !isDirty, onClick: handleSaveAnnotation }, "Save")))));
|
100
|
+
}
|
101
|
+
export default React.memo(AnnotationModal);
|
102
102
|
//# sourceMappingURL=AnnotationModal.js.map
|
@@ -1,26 +1,26 @@
|
|
1
|
-
/// <reference types="react" />
|
2
|
-
declare type AutocompleteOption<T> = {
|
3
|
-
label: string;
|
4
|
-
value: string;
|
5
|
-
data?: T;
|
6
|
-
};
|
7
|
-
declare type Props<T> = {
|
8
|
-
id: string;
|
9
|
-
label: string;
|
10
|
-
value: unknown | undefined;
|
11
|
-
placeholder: string | undefined;
|
12
|
-
required: boolean | undefined;
|
13
|
-
disabled: boolean | undefined;
|
14
|
-
isLoading?: boolean;
|
15
|
-
hasError?: boolean;
|
16
|
-
validationMessage: string | undefined;
|
17
|
-
displayValidationMessage: boolean;
|
18
|
-
searchDebounceMs: number;
|
19
|
-
searchMinCharacters: number;
|
20
|
-
onChangeValue: (newValue: string | undefined, data?: T) => Promise<void> | void;
|
21
|
-
onChangeLabel: (newLabel: string) => void;
|
22
|
-
onSearch: (label: string, abortSignal: AbortSignal) => Promise<AutocompleteOption<T>[]>;
|
23
|
-
};
|
24
|
-
declare function AutocompleteDropdown<T>({ id, label, value, placeholder, required, disabled, validationMessage, displayValidationMessage, searchDebounceMs, searchMinCharacters, isLoading, hasError, onChangeValue, onChangeLabel, onSearch, }: Props<T>): JSX.Element;
|
25
|
-
declare const _default: typeof AutocompleteDropdown;
|
26
|
-
export default _default;
|
1
|
+
/// <reference types="react" />
|
2
|
+
declare type AutocompleteOption<T> = {
|
3
|
+
label: string;
|
4
|
+
value: string;
|
5
|
+
data?: T;
|
6
|
+
};
|
7
|
+
declare type Props<T> = {
|
8
|
+
id: string;
|
9
|
+
label: string;
|
10
|
+
value: unknown | undefined;
|
11
|
+
placeholder: string | undefined;
|
12
|
+
required: boolean | undefined;
|
13
|
+
disabled: boolean | undefined;
|
14
|
+
isLoading?: boolean;
|
15
|
+
hasError?: boolean;
|
16
|
+
validationMessage: string | undefined;
|
17
|
+
displayValidationMessage: boolean;
|
18
|
+
searchDebounceMs: number;
|
19
|
+
searchMinCharacters: number;
|
20
|
+
onChangeValue: (newValue: string | undefined, data?: T) => Promise<void> | void;
|
21
|
+
onChangeLabel: (newLabel: string) => void;
|
22
|
+
onSearch: (label: string, abortSignal: AbortSignal) => Promise<AutocompleteOption<T>[]>;
|
23
|
+
};
|
24
|
+
declare function AutocompleteDropdown<T>({ id, label, value, placeholder, required, disabled, validationMessage, displayValidationMessage, searchDebounceMs, searchMinCharacters, isLoading, hasError, onChangeValue, onChangeLabel, onSearch, }: Props<T>): JSX.Element;
|
25
|
+
declare const _default: typeof AutocompleteDropdown;
|
26
|
+
export default _default;
|
@@ -1,176 +1,176 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import clsx from 'clsx';
|
3
|
-
import useBooleanState from '../../hooks/useBooleanState';
|
4
|
-
import { Sentry } from '@oneblink/apps';
|
5
|
-
function AutocompleteDropdown({ id, label, value, placeholder, required, disabled, validationMessage, displayValidationMessage, searchDebounceMs, searchMinCharacters, isLoading, hasError, onChangeValue, onChangeLabel, onSearch, }) {
|
6
|
-
const optionsContainerElement = React.useRef(null);
|
7
|
-
const [isDirty, setIsDirty] = React.useState(false);
|
8
|
-
const [currentFocusedOptionIndex, setCurrentFocusedOptionIndex] = React.useState(0);
|
9
|
-
const [options, setOptions] = React.useState([]);
|
10
|
-
const [error, setError] = React.useState(null);
|
11
|
-
const [isFetchingOptions, setIsFetchingOptions] = React.useState(false);
|
12
|
-
const [isOpen, onOpen, onClose] = useBooleanState(false);
|
13
|
-
const onSelectOption = React.useCallback((option) => {
|
14
|
-
onChangeLabel(option.label);
|
15
|
-
onChangeValue(option.value, option.data);
|
16
|
-
onClose();
|
17
|
-
}, [onChangeLabel, onChangeValue, onClose]);
|
18
|
-
const handleClickOption = React.useCallback((event, option) => {
|
19
|
-
console.log('Selected element option in autocomplete', option);
|
20
|
-
event.preventDefault();
|
21
|
-
event.stopPropagation();
|
22
|
-
onSelectOption(option);
|
23
|
-
}, [onSelectOption]);
|
24
|
-
const onFocus = React.useCallback(() => {
|
25
|
-
setCurrentFocusedOptionIndex(0);
|
26
|
-
onOpen();
|
27
|
-
}, [onOpen]);
|
28
|
-
// When moving away from the input, if this is no value remove
|
29
|
-
// the label to show the user they have not selected a value
|
30
|
-
const handleBlur = React.useCallback(() => {
|
31
|
-
setIsDirty(true);
|
32
|
-
setError(null);
|
33
|
-
onClose();
|
34
|
-
if (!value && Array.isArray(options)) {
|
35
|
-
// If there is no option currently selected but the typed in label
|
36
|
-
// matches an option's label, set that option as the value, otherwise remove label
|
37
|
-
if (label) {
|
38
|
-
const lowerCase = label.toLowerCase();
|
39
|
-
const option = options.find((option) => option.label.toLowerCase() === lowerCase);
|
40
|
-
if (option) {
|
41
|
-
console.log('Setting value after blurring away from autocomplete');
|
42
|
-
onSelectOption(option);
|
43
|
-
return;
|
44
|
-
}
|
45
|
-
}
|
46
|
-
console.log('Removing label after blurring away from autocomplete');
|
47
|
-
onChangeLabel('');
|
48
|
-
}
|
49
|
-
}, [label, onChangeLabel, onClose, onSelectOption, options, value]);
|
50
|
-
const onKeyDown = React.useCallback((event) => {
|
51
|
-
if (!options) {
|
52
|
-
return;
|
53
|
-
}
|
54
|
-
const enterPressed = event.keyCode === 13;
|
55
|
-
const upArrowPressed = event.keyCode === 38;
|
56
|
-
const downArrowPressed = event.keyCode === 40;
|
57
|
-
if (!upArrowPressed && !downArrowPressed && !enterPressed) {
|
58
|
-
return;
|
59
|
-
}
|
60
|
-
event.preventDefault();
|
61
|
-
const previousFocusedOptionIndex = currentFocusedOptionIndex;
|
62
|
-
let nextFocusedOptionIndex = currentFocusedOptionIndex;
|
63
|
-
if (upArrowPressed) {
|
64
|
-
nextFocusedOptionIndex = Math.max(0, currentFocusedOptionIndex - 1);
|
65
|
-
}
|
66
|
-
else if (downArrowPressed) {
|
67
|
-
nextFocusedOptionIndex = Math.min(options.length - 1, currentFocusedOptionIndex + 1);
|
68
|
-
}
|
69
|
-
else if (enterPressed) {
|
70
|
-
const option = options[nextFocusedOptionIndex];
|
71
|
-
if (option) {
|
72
|
-
onSelectOption(option);
|
73
|
-
}
|
74
|
-
}
|
75
|
-
// If the index has changed, need to ensure the active option is visible
|
76
|
-
if (previousFocusedOptionIndex !== nextFocusedOptionIndex &&
|
77
|
-
optionsContainerElement.current) {
|
78
|
-
const activeStepElement = optionsContainerElement.current.querySelector(`.ob-autocomplete__drop-down-item-${nextFocusedOptionIndex}`);
|
79
|
-
if (activeStepElement) {
|
80
|
-
activeStepElement.scrollIntoView({
|
81
|
-
behavior: 'smooth',
|
82
|
-
block: 'nearest',
|
83
|
-
inline: 'start',
|
84
|
-
});
|
85
|
-
}
|
86
|
-
setCurrentFocusedOptionIndex(nextFocusedOptionIndex);
|
87
|
-
}
|
88
|
-
}, [currentFocusedOptionIndex, options, onSelectOption]);
|
89
|
-
const handleChangeLabel = React.useCallback((e) => {
|
90
|
-
const newLabel = e.target.value;
|
91
|
-
onOpen();
|
92
|
-
setCurrentFocusedOptionIndex(0);
|
93
|
-
// Remove value when changing label
|
94
|
-
onChangeValue(undefined);
|
95
|
-
onChangeLabel(newLabel);
|
96
|
-
}, [onChangeLabel, onChangeValue, onOpen]);
|
97
|
-
React.useEffect(() => {
|
98
|
-
setError(null);
|
99
|
-
if (!isOpen || label.length < searchMinCharacters) {
|
100
|
-
setIsFetchingOptions(false);
|
101
|
-
return;
|
102
|
-
}
|
103
|
-
setIsFetchingOptions(true);
|
104
|
-
let ignore = false;
|
105
|
-
const abortController = new AbortController();
|
106
|
-
const timeoutId = setTimeout(async () => {
|
107
|
-
let newOptions = [];
|
108
|
-
let newError = null;
|
109
|
-
try {
|
110
|
-
newOptions = await onSearch(label, abortController.signal);
|
111
|
-
}
|
112
|
-
catch (error) {
|
113
|
-
// Cancelling will throw an error.
|
114
|
-
if (!abortController.signal.aborted) {
|
115
|
-
console.warn('Error while fetching autocomplete options', error);
|
116
|
-
Sentry.captureException(error);
|
117
|
-
newError = error;
|
118
|
-
}
|
119
|
-
}
|
120
|
-
if (!ignore) {
|
121
|
-
setError(newError);
|
122
|
-
setOptions(newOptions);
|
123
|
-
setIsFetchingOptions(false);
|
124
|
-
}
|
125
|
-
}, searchDebounceMs);
|
126
|
-
return () => {
|
127
|
-
ignore = true;
|
128
|
-
clearTimeout(timeoutId);
|
129
|
-
abortController.abort();
|
130
|
-
};
|
131
|
-
}, [isOpen, label, onSearch, searchDebounceMs, searchMinCharacters]);
|
132
|
-
const isShowingLoading = isFetchingOptions || !!isLoading;
|
133
|
-
const isShowingValid = !isShowingLoading && value !== undefined;
|
134
|
-
const isShowingError = !isShowingLoading && !!hasError;
|
135
|
-
return (React.createElement(React.Fragment, null,
|
136
|
-
React.createElement("div", { className: clsx('dropdown', {
|
137
|
-
'is-active': isOpen && Array.isArray(options),
|
138
|
-
}) },
|
139
|
-
React.createElement("div", { className: "field" },
|
140
|
-
React.createElement("div", { className: clsx('cypress-autocomplete-field-control control is-expanded', {
|
141
|
-
'is-loading': isShowingLoading,
|
142
|
-
'has-icons-right': isShowingValid || isShowingError,
|
143
|
-
}) },
|
144
|
-
React.createElement("input", { type: "text", placeholder: placeholder, id: id, autoComplete: "off", className: "cypress-autocomplete-control input ob-input", required: required, value: label, disabled: disabled, onFocus: onFocus, onBlur: handleBlur, onKeyDown: onKeyDown, onChange: handleChangeLabel }),
|
145
|
-
isShowingValid && (React.createElement("span", { className: " ob-input-icon icon is-small is-right" },
|
146
|
-
React.createElement("i", { className: "material-icons is-size-5 has-text-success" }, "check"))),
|
147
|
-
isShowingError && (React.createElement("span", { className: " ob-input-icon icon is-small is-right" },
|
148
|
-
React.createElement("i", { className: "material-icons is-size-5 has-text-danger" }, "error"))))),
|
149
|
-
React.createElement("div", { className: "dropdown-menu" },
|
150
|
-
React.createElement("div", { ref: optionsContainerElement, className: "ob-autocomplete__dropdown-content dropdown-content cypress-autocomplete-dropdown-content" }, error ? (React.createElement("a", { className: "dropdown-item cypress-autocomplete-error ob-autocomplete__drop-down-item-error" },
|
151
|
-
React.createElement("span", { className: "has-text-danger" }, error.message))) : label.length < searchMinCharacters ? (React.createElement("a", { className: "dropdown-item cypress-max-characters ob-autocomplete__drop-down-item-max-characters" },
|
152
|
-
React.createElement("i", null,
|
153
|
-
"Enter at least ",
|
154
|
-
searchMinCharacters,
|
155
|
-
" character(s) to search"))) : isShowingLoading ? (React.createElement("a", { className: "dropdown-item cypress-searching-options ob-autocomplete__drop-down-item-searching" },
|
156
|
-
React.createElement("i", null, "Searching..."))) : options && options.length ? (options.map((option, index) => (React.createElement("a", { key: option.value, className: clsx(`dropdown-item cypress-autocomplete-dropdown-item ob-autocomplete__drop-down-item-${index}`, {
|
157
|
-
'is-active': currentFocusedOptionIndex === index,
|
158
|
-
}), onMouseDown: (e) => handleClickOption(e, option), dangerouslySetInnerHTML: {
|
159
|
-
__html: highlightLabel(option.label, label),
|
160
|
-
} })))) : (React.createElement("a", { className: "dropdown-item cypress-no-matches-found ob-autocomplete__drop-down-item-no-matches" },
|
161
|
-
React.createElement("i", null, "No matches found")))))),
|
162
|
-
(isDirty || displayValidationMessage) &&
|
163
|
-
!!validationMessage &&
|
164
|
-
!isShowingLoading && (React.createElement("div", { role: "alert", className: "has-margin-top-8" },
|
165
|
-
React.createElement("div", { className: "has-text-danger ob-error__text cypress-validation-message" }, validationMessage)))));
|
166
|
-
}
|
167
|
-
export default React.memo(AutocompleteDropdown);
|
168
|
-
function highlightLabel(text, phrase) {
|
169
|
-
if (phrase) {
|
170
|
-
text = text.replace(new RegExp('(' +
|
171
|
-
phrase.replace(/[`~!@#$%^&*()_|+\-=?;:'",.<>{}[\]\\/]/gi, (char) => `\\${char}`) +
|
172
|
-
')', 'gi'), '<b>$1</b>');
|
173
|
-
}
|
174
|
-
return text;
|
175
|
-
}
|
1
|
+
import * as React from 'react';
|
2
|
+
import clsx from 'clsx';
|
3
|
+
import useBooleanState from '../../hooks/useBooleanState';
|
4
|
+
import { Sentry } from '@oneblink/apps';
|
5
|
+
function AutocompleteDropdown({ id, label, value, placeholder, required, disabled, validationMessage, displayValidationMessage, searchDebounceMs, searchMinCharacters, isLoading, hasError, onChangeValue, onChangeLabel, onSearch, }) {
|
6
|
+
const optionsContainerElement = React.useRef(null);
|
7
|
+
const [isDirty, setIsDirty] = React.useState(false);
|
8
|
+
const [currentFocusedOptionIndex, setCurrentFocusedOptionIndex] = React.useState(0);
|
9
|
+
const [options, setOptions] = React.useState([]);
|
10
|
+
const [error, setError] = React.useState(null);
|
11
|
+
const [isFetchingOptions, setIsFetchingOptions] = React.useState(false);
|
12
|
+
const [isOpen, onOpen, onClose] = useBooleanState(false);
|
13
|
+
const onSelectOption = React.useCallback((option) => {
|
14
|
+
onChangeLabel(option.label);
|
15
|
+
onChangeValue(option.value, option.data);
|
16
|
+
onClose();
|
17
|
+
}, [onChangeLabel, onChangeValue, onClose]);
|
18
|
+
const handleClickOption = React.useCallback((event, option) => {
|
19
|
+
console.log('Selected element option in autocomplete', option);
|
20
|
+
event.preventDefault();
|
21
|
+
event.stopPropagation();
|
22
|
+
onSelectOption(option);
|
23
|
+
}, [onSelectOption]);
|
24
|
+
const onFocus = React.useCallback(() => {
|
25
|
+
setCurrentFocusedOptionIndex(0);
|
26
|
+
onOpen();
|
27
|
+
}, [onOpen]);
|
28
|
+
// When moving away from the input, if this is no value remove
|
29
|
+
// the label to show the user they have not selected a value
|
30
|
+
const handleBlur = React.useCallback(() => {
|
31
|
+
setIsDirty(true);
|
32
|
+
setError(null);
|
33
|
+
onClose();
|
34
|
+
if (!value && Array.isArray(options)) {
|
35
|
+
// If there is no option currently selected but the typed in label
|
36
|
+
// matches an option's label, set that option as the value, otherwise remove label
|
37
|
+
if (label) {
|
38
|
+
const lowerCase = label.toLowerCase();
|
39
|
+
const option = options.find((option) => option.label.toLowerCase() === lowerCase);
|
40
|
+
if (option) {
|
41
|
+
console.log('Setting value after blurring away from autocomplete');
|
42
|
+
onSelectOption(option);
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
console.log('Removing label after blurring away from autocomplete');
|
47
|
+
onChangeLabel('');
|
48
|
+
}
|
49
|
+
}, [label, onChangeLabel, onClose, onSelectOption, options, value]);
|
50
|
+
const onKeyDown = React.useCallback((event) => {
|
51
|
+
if (!options) {
|
52
|
+
return;
|
53
|
+
}
|
54
|
+
const enterPressed = event.keyCode === 13;
|
55
|
+
const upArrowPressed = event.keyCode === 38;
|
56
|
+
const downArrowPressed = event.keyCode === 40;
|
57
|
+
if (!upArrowPressed && !downArrowPressed && !enterPressed) {
|
58
|
+
return;
|
59
|
+
}
|
60
|
+
event.preventDefault();
|
61
|
+
const previousFocusedOptionIndex = currentFocusedOptionIndex;
|
62
|
+
let nextFocusedOptionIndex = currentFocusedOptionIndex;
|
63
|
+
if (upArrowPressed) {
|
64
|
+
nextFocusedOptionIndex = Math.max(0, currentFocusedOptionIndex - 1);
|
65
|
+
}
|
66
|
+
else if (downArrowPressed) {
|
67
|
+
nextFocusedOptionIndex = Math.min(options.length - 1, currentFocusedOptionIndex + 1);
|
68
|
+
}
|
69
|
+
else if (enterPressed) {
|
70
|
+
const option = options[nextFocusedOptionIndex];
|
71
|
+
if (option) {
|
72
|
+
onSelectOption(option);
|
73
|
+
}
|
74
|
+
}
|
75
|
+
// If the index has changed, need to ensure the active option is visible
|
76
|
+
if (previousFocusedOptionIndex !== nextFocusedOptionIndex &&
|
77
|
+
optionsContainerElement.current) {
|
78
|
+
const activeStepElement = optionsContainerElement.current.querySelector(`.ob-autocomplete__drop-down-item-${nextFocusedOptionIndex}`);
|
79
|
+
if (activeStepElement) {
|
80
|
+
activeStepElement.scrollIntoView({
|
81
|
+
behavior: 'smooth',
|
82
|
+
block: 'nearest',
|
83
|
+
inline: 'start',
|
84
|
+
});
|
85
|
+
}
|
86
|
+
setCurrentFocusedOptionIndex(nextFocusedOptionIndex);
|
87
|
+
}
|
88
|
+
}, [currentFocusedOptionIndex, options, onSelectOption]);
|
89
|
+
const handleChangeLabel = React.useCallback((e) => {
|
90
|
+
const newLabel = e.target.value;
|
91
|
+
onOpen();
|
92
|
+
setCurrentFocusedOptionIndex(0);
|
93
|
+
// Remove value when changing label
|
94
|
+
onChangeValue(undefined);
|
95
|
+
onChangeLabel(newLabel);
|
96
|
+
}, [onChangeLabel, onChangeValue, onOpen]);
|
97
|
+
React.useEffect(() => {
|
98
|
+
setError(null);
|
99
|
+
if (!isOpen || label.length < searchMinCharacters) {
|
100
|
+
setIsFetchingOptions(false);
|
101
|
+
return;
|
102
|
+
}
|
103
|
+
setIsFetchingOptions(true);
|
104
|
+
let ignore = false;
|
105
|
+
const abortController = new AbortController();
|
106
|
+
const timeoutId = setTimeout(async () => {
|
107
|
+
let newOptions = [];
|
108
|
+
let newError = null;
|
109
|
+
try {
|
110
|
+
newOptions = await onSearch(label, abortController.signal);
|
111
|
+
}
|
112
|
+
catch (error) {
|
113
|
+
// Cancelling will throw an error.
|
114
|
+
if (!abortController.signal.aborted) {
|
115
|
+
console.warn('Error while fetching autocomplete options', error);
|
116
|
+
Sentry.captureException(error);
|
117
|
+
newError = error;
|
118
|
+
}
|
119
|
+
}
|
120
|
+
if (!ignore) {
|
121
|
+
setError(newError);
|
122
|
+
setOptions(newOptions);
|
123
|
+
setIsFetchingOptions(false);
|
124
|
+
}
|
125
|
+
}, searchDebounceMs);
|
126
|
+
return () => {
|
127
|
+
ignore = true;
|
128
|
+
clearTimeout(timeoutId);
|
129
|
+
abortController.abort();
|
130
|
+
};
|
131
|
+
}, [isOpen, label, onSearch, searchDebounceMs, searchMinCharacters]);
|
132
|
+
const isShowingLoading = isFetchingOptions || !!isLoading;
|
133
|
+
const isShowingValid = !isShowingLoading && value !== undefined;
|
134
|
+
const isShowingError = !isShowingLoading && !!hasError;
|
135
|
+
return (React.createElement(React.Fragment, null,
|
136
|
+
React.createElement("div", { className: clsx('dropdown', {
|
137
|
+
'is-active': isOpen && Array.isArray(options),
|
138
|
+
}) },
|
139
|
+
React.createElement("div", { className: "field" },
|
140
|
+
React.createElement("div", { className: clsx('cypress-autocomplete-field-control control is-expanded', {
|
141
|
+
'is-loading': isShowingLoading,
|
142
|
+
'has-icons-right': isShowingValid || isShowingError,
|
143
|
+
}) },
|
144
|
+
React.createElement("input", { type: "text", placeholder: placeholder, id: id, autoComplete: "off", className: "cypress-autocomplete-control input ob-input", required: required, value: label, disabled: disabled, onFocus: onFocus, onBlur: handleBlur, onKeyDown: onKeyDown, onChange: handleChangeLabel }),
|
145
|
+
isShowingValid && (React.createElement("span", { className: " ob-input-icon icon is-small is-right" },
|
146
|
+
React.createElement("i", { className: "material-icons is-size-5 has-text-success" }, "check"))),
|
147
|
+
isShowingError && (React.createElement("span", { className: " ob-input-icon icon is-small is-right" },
|
148
|
+
React.createElement("i", { className: "material-icons is-size-5 has-text-danger" }, "error"))))),
|
149
|
+
React.createElement("div", { className: "dropdown-menu" },
|
150
|
+
React.createElement("div", { ref: optionsContainerElement, className: "ob-autocomplete__dropdown-content dropdown-content cypress-autocomplete-dropdown-content" }, error ? (React.createElement("a", { className: "dropdown-item cypress-autocomplete-error ob-autocomplete__drop-down-item-error" },
|
151
|
+
React.createElement("span", { className: "has-text-danger" }, error.message))) : label.length < searchMinCharacters ? (React.createElement("a", { className: "dropdown-item cypress-max-characters ob-autocomplete__drop-down-item-max-characters" },
|
152
|
+
React.createElement("i", null,
|
153
|
+
"Enter at least ",
|
154
|
+
searchMinCharacters,
|
155
|
+
" character(s) to search"))) : isShowingLoading ? (React.createElement("a", { className: "dropdown-item cypress-searching-options ob-autocomplete__drop-down-item-searching" },
|
156
|
+
React.createElement("i", null, "Searching..."))) : options && options.length ? (options.map((option, index) => (React.createElement("a", { key: option.value, className: clsx(`dropdown-item cypress-autocomplete-dropdown-item ob-autocomplete__drop-down-item-${index}`, {
|
157
|
+
'is-active': currentFocusedOptionIndex === index,
|
158
|
+
}), onMouseDown: (e) => handleClickOption(e, option), dangerouslySetInnerHTML: {
|
159
|
+
__html: highlightLabel(option.label, label),
|
160
|
+
} })))) : (React.createElement("a", { className: "dropdown-item cypress-no-matches-found ob-autocomplete__drop-down-item-no-matches" },
|
161
|
+
React.createElement("i", null, "No matches found")))))),
|
162
|
+
(isDirty || displayValidationMessage) &&
|
163
|
+
!!validationMessage &&
|
164
|
+
!isShowingLoading && (React.createElement("div", { role: "alert", className: "has-margin-top-8" },
|
165
|
+
React.createElement("div", { className: "has-text-danger ob-error__text cypress-validation-message" }, validationMessage)))));
|
166
|
+
}
|
167
|
+
export default React.memo(AutocompleteDropdown);
|
168
|
+
function highlightLabel(text, phrase) {
|
169
|
+
if (phrase) {
|
170
|
+
text = text.replace(new RegExp('(' +
|
171
|
+
phrase.replace(/[`~!@#$%^&*()_|+\-=?;:'",.<>{}[\]\\/]/gi, (char) => `\\${char}`) +
|
172
|
+
')', 'gi'), '<b>$1</b>');
|
173
|
+
}
|
174
|
+
return text;
|
175
|
+
}
|
176
176
|
//# sourceMappingURL=AutocompleteDropdown.js.map
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
declare type Props = {
|
3
|
-
text: string;
|
4
|
-
className?: string;
|
5
|
-
};
|
6
|
-
declare function CopyToClipboardButton({ className, text }: Props): JSX.Element;
|
7
|
-
declare const _default: React.MemoExoticComponent<typeof CopyToClipboardButton>;
|
8
|
-
export default _default;
|
1
|
+
import * as React from 'react';
|
2
|
+
declare type Props = {
|
3
|
+
text: string;
|
4
|
+
className?: string;
|
5
|
+
};
|
6
|
+
declare function CopyToClipboardButton({ className, text }: Props): JSX.Element;
|
7
|
+
declare const _default: React.MemoExoticComponent<typeof CopyToClipboardButton>;
|
8
|
+
export default _default;
|