@oneblink/apps-react 8.14.0-beta.2 → 9.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/OneBlinkAutoSaveForm.d.ts +1 -1
- package/dist/OneBlinkAutoSaveForm.js +6 -8
- package/dist/OneBlinkAutoSaveForm.js.map +1 -1
- package/dist/OneBlinkForm.js +3 -2
- package/dist/OneBlinkForm.js.map +1 -1
- package/dist/OneBlinkFormBase.d.ts +1 -1
- package/dist/OneBlinkFormBase.js +49 -146
- package/dist/OneBlinkFormBase.js.map +1 -1
- package/dist/OneBlinkReadOnlyForm.d.ts +1 -1
- package/dist/OneBlinkReadOnlyForm.js +2 -1
- package/dist/OneBlinkReadOnlyForm.js.map +1 -1
- package/dist/PaymentReceipt.d.ts +1 -1
- package/dist/PaymentReceipt.js +9 -30
- package/dist/PaymentReceipt.js.map +1 -1
- package/dist/components/ArcGISWebMap.d.ts +3 -3
- package/dist/components/ArcGISWebMap.js +25 -38
- package/dist/components/ArcGISWebMap.js.map +1 -1
- package/dist/components/Clickable.d.ts +1 -1
- package/dist/components/Clickable.js +2 -1
- package/dist/components/Clickable.js.map +1 -1
- package/dist/components/ConfirmDialog.d.ts +2 -2
- package/dist/components/ConfirmDialog.js +7 -14
- package/dist/components/ConfirmDialog.js.map +1 -1
- package/dist/components/CopyToClipboardIconButton.d.ts +1 -1
- package/dist/components/CopyToClipboardIconButton.js +10 -14
- package/dist/components/CopyToClipboardIconButton.js.map +1 -1
- package/dist/components/CustomAccordion.d.ts +3 -20
- package/dist/components/ErrorSnackbar.d.ts +1 -1
- package/dist/components/ErrorSnackbar.js +6 -7
- package/dist/components/ErrorSnackbar.js.map +1 -1
- package/dist/components/ImageCropper/CropModal.d.ts +1 -1
- package/dist/components/ImageCropper/CropModal.js +2 -8
- package/dist/components/ImageCropper/CropModal.js.map +1 -1
- package/dist/components/ImageCropper/index.d.ts +1 -1
- package/dist/components/ImageCropper/index.js +3 -5
- package/dist/components/ImageCropper/index.js.map +1 -1
- package/dist/components/InputClear.js +2 -3
- package/dist/components/InputClear.js.map +1 -1
- package/dist/components/InputField.d.ts +3 -2
- package/dist/components/InputField.js +5 -2
- package/dist/components/InputField.js.map +1 -1
- package/dist/components/Lists.d.ts +1 -6
- package/dist/components/Lists.js +2 -2
- package/dist/components/Lists.js.map +1 -1
- package/dist/components/LoadingWithMessage.js +2 -6
- package/dist/components/LoadingWithMessage.js.map +1 -1
- package/dist/components/MaterialIcon.d.ts +2 -4
- package/dist/components/MaterialIcon.js +4 -4
- package/dist/components/MaterialIcon.js.map +1 -1
- package/dist/components/NotificationGrid.d.ts +2 -2
- package/dist/components/NotificationGrid.js +4 -7
- package/dist/components/NotificationGrid.js.map +1 -1
- package/dist/components/QuillHTML.d.ts +1 -1
- package/dist/components/QuillHTML.js +2 -1
- package/dist/components/QuillHTML.js.map +1 -1
- package/dist/components/SuccessSnackbar.d.ts +1 -1
- package/dist/components/SuccessSnackbar.js +3 -6
- package/dist/components/SuccessSnackbar.js.map +1 -1
- package/dist/components/ValidationErrorsCard.d.ts +2 -2
- package/dist/components/ValidationErrorsCard.js +32 -49
- package/dist/components/ValidationErrorsCard.js.map +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsCancelForm.d.ts +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsCancelForm.js +5 -6
- package/dist/components/calendar-bookings/CalendarBookingsCancelForm.js.map +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsContainer.d.ts +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsContainer.js +9 -11
- package/dist/components/calendar-bookings/CalendarBookingsContainer.js.map +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsForm.d.ts +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsForm.js +33 -45
- package/dist/components/calendar-bookings/CalendarBookingsForm.js.map +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsProvider.d.ts +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsProvider.js +2 -6
- package/dist/components/calendar-bookings/CalendarBookingsProvider.js.map +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.d.ts +1 -1
- package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.js +5 -6
- package/dist/components/calendar-bookings/CalendarBookingsReschedulingForm.js.map +1 -1
- package/dist/components/calendar-bookings/ErrorModal.js +7 -11
- package/dist/components/calendar-bookings/ErrorModal.js.map +1 -1
- package/dist/components/downloadable-files/LayoutProvider.d.ts +1 -1
- package/dist/components/downloadable-files/LayoutProvider.js +2 -1
- package/dist/components/downloadable-files/LayoutProvider.js.map +1 -1
- package/dist/components/downloadable-files/index.d.ts +1 -1
- package/dist/components/downloadable-files/index.js +3 -5
- package/dist/components/downloadable-files/index.js.map +1 -1
- package/dist/components/downloadable-files/resource-components.d.ts +3 -3
- package/dist/components/downloadable-files/resource-components.js +9 -32
- package/dist/components/downloadable-files/resource-components.js.map +1 -1
- package/dist/components/formStore/FormStoreTableProvider.d.ts +1 -1
- package/dist/components/formStore/FormStoreTableProvider.js +5 -15
- package/dist/components/formStore/FormStoreTableProvider.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +1 -1
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +3 -2
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +1 -1
- package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js +21 -54
- package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +2 -2
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +7 -26
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +1 -1
- package/dist/components/formStore/OneBlinkFormStoreProvider.js +4 -5
- package/dist/components/formStore/OneBlinkFormStoreProvider.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +1 -1
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +3 -2
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +1 -1
- package/dist/components/formStore/OneBlinkFormStoreTable.js +128 -94
- package/dist/components/formStore/OneBlinkFormStoreTable.js.map +1 -1
- package/dist/components/formStore/display/ElementDisplay.d.ts +3 -4
- package/dist/components/formStore/display/ElementDisplay.js +9 -12
- package/dist/components/formStore/display/ElementDisplay.js.map +1 -1
- package/dist/components/formStore/display/FormStoreIcon.d.ts +1 -1
- package/dist/components/formStore/display/FormStoreIcon.js +2 -2
- package/dist/components/formStore/display/FormStoreIcon.js.map +1 -1
- package/dist/components/formStore/table/ActionedByTableCell.d.ts +1 -1
- package/dist/components/formStore/table/ActionedByTableCell.js +6 -7
- package/dist/components/formStore/table/ActionedByTableCell.js.map +1 -1
- package/dist/components/formStore/table/ColumnFilters.d.ts +3 -3
- package/dist/components/formStore/table/ColumnFilters.js +84 -100
- package/dist/components/formStore/table/ColumnFilters.js.map +1 -1
- package/dist/components/formStore/table/FormElementTableCell.d.ts +1 -1
- package/dist/components/formStore/table/FormElementTableCell.js +34 -97
- package/dist/components/formStore/table/FormElementTableCell.js.map +1 -1
- package/dist/components/formStore/table/HeaderCellMoreButton.d.ts +4 -4
- package/dist/components/formStore/table/HeaderCellMoreButton.js +26 -32
- package/dist/components/formStore/table/HeaderCellMoreButton.js.map +1 -1
- package/dist/components/formStore/table/Pickers.d.ts +4 -4
- package/dist/components/formStore/table/Pickers.js +14 -13
- package/dist/components/formStore/table/Pickers.js.map +1 -1
- package/dist/components/formStore/table/RepeatableSetCell.js +16 -21
- package/dist/components/formStore/table/RepeatableSetCell.js.map +1 -1
- package/dist/components/formStore/table/RepeatableSetCellAccordion.js +2 -4
- package/dist/components/formStore/table/RepeatableSetCellAccordion.js.map +1 -1
- package/dist/components/formStore/table/TableCellCopyButton.d.ts +1 -1
- package/dist/components/formStore/table/TableCellCopyButton.js +2 -3
- package/dist/components/formStore/table/TableCellCopyButton.js.map +1 -1
- package/dist/components/formStore/table/generateColumns.d.ts +5 -6
- package/dist/components/formStore/table/generateColumns.js +23 -18
- package/dist/components/formStore/table/generateColumns.js.map +1 -1
- package/dist/components/formStore/table/getVersionedState.d.ts +4 -3
- package/dist/components/formStore/table/getVersionedState.js +23 -6
- package/dist/components/formStore/table/getVersionedState.js.map +1 -1
- package/dist/components/formStore/table/useFormStoreTable.d.ts +146 -37
- package/dist/components/formStore/table/useFormStoreTable.js +266 -199
- package/dist/components/formStore/table/useFormStoreTable.js.map +1 -1
- package/dist/components/formStore/useFormStoreTableContext.d.ts +142 -33
- package/dist/components/messages/ErrorMessage.js +3 -3
- package/dist/components/messages/ErrorMessage.js.map +1 -1
- package/dist/components/messages/LargeIconMessage.js +2 -6
- package/dist/components/messages/LargeIconMessage.js.map +1 -1
- package/dist/components/messages/NoResourcesYet.d.ts +1 -1
- package/dist/components/messages/NoResourcesYet.js +2 -1
- package/dist/components/messages/NoResourcesYet.js.map +1 -1
- package/dist/components/mfa/MfaDialog.d.ts +1 -1
- package/dist/components/mfa/MfaDialog.js +9 -48
- package/dist/components/mfa/MfaDialog.js.map +1 -1
- package/dist/components/mfa/MultiFactorAuthentication.d.ts +2 -5
- package/dist/components/mfa/MultiFactorAuthentication.js +14 -45
- package/dist/components/mfa/MultiFactorAuthentication.js.map +1 -1
- package/dist/components/payments/PaymentForm.d.ts +1 -1
- package/dist/components/payments/PaymentForm.js +4 -9
- package/dist/components/payments/PaymentForm.js.map +1 -1
- package/dist/components/payments/WestpacQuickStreamPaymentForm.d.ts +1 -1
- package/dist/components/payments/WestpacQuickStreamPaymentForm.js +11 -45
- package/dist/components/payments/WestpacQuickStreamPaymentForm.js.map +1 -1
- package/dist/components/receipts/Receipt.d.ts +1 -1
- package/dist/components/receipts/Receipt.js +2 -2
- package/dist/components/receipts/Receipt.js.map +1 -1
- package/dist/components/receipts/ReceiptButton.d.ts +1 -1
- package/dist/components/receipts/ReceiptButton.js +3 -2
- package/dist/components/receipts/ReceiptButton.js.map +1 -1
- package/dist/components/receipts/ReceiptList.d.ts +1 -1
- package/dist/components/receipts/ReceiptList.js +2 -9
- package/dist/components/receipts/ReceiptList.js.map +1 -1
- package/dist/components/receipts/ReceiptListItem.d.ts +1 -1
- package/dist/components/receipts/ReceiptListItem.js +2 -11
- package/dist/components/receipts/ReceiptListItem.js.map +1 -1
- package/dist/components/renderer/AnnotationModal.d.ts +1 -1
- package/dist/components/renderer/AnnotationModal.js +6 -14
- package/dist/components/renderer/AnnotationModal.js.map +1 -1
- package/dist/components/renderer/AutocompleteDropdown.d.ts +1 -1
- package/dist/components/renderer/AutocompleteDropdown.js +15 -34
- package/dist/components/renderer/AutocompleteDropdown.js.map +1 -1
- package/dist/components/renderer/CopyToClipboardButton.d.ts +1 -1
- package/dist/components/renderer/CopyToClipboardButton.js +2 -4
- package/dist/components/renderer/CopyToClipboardButton.js.map +1 -1
- package/dist/components/renderer/CustomisableButtonInner.js +2 -4
- package/dist/components/renderer/CustomisableButtonInner.js.map +1 -1
- package/dist/components/renderer/FormElementLabelContainer.d.ts +3 -3
- package/dist/components/renderer/FormElementLabelContainer.js +7 -14
- package/dist/components/renderer/FormElementLabelContainer.js.map +1 -1
- package/dist/components/renderer/FormElementOptions.d.ts +1 -1
- package/dist/components/renderer/FormElementOptions.js +4 -5
- package/dist/components/renderer/FormElementOptions.js.map +1 -1
- package/dist/components/renderer/FormElementValidationMessage.js +3 -5
- package/dist/components/renderer/FormElementValidationMessage.js.map +1 -1
- package/dist/components/renderer/LookupButton.d.ts +1 -1
- package/dist/components/renderer/LookupButton.js +4 -8
- package/dist/components/renderer/LookupButton.js.map +1 -1
- package/dist/components/renderer/LookupNotification.d.ts +1 -1
- package/dist/components/renderer/LookupNotification.js +14 -36
- package/dist/components/renderer/LookupNotification.js.map +1 -1
- package/dist/components/renderer/Modal.d.ts +3 -3
- package/dist/components/renderer/Modal.js +5 -10
- package/dist/components/renderer/Modal.js.map +1 -1
- package/dist/components/renderer/OnLoading.d.ts +1 -1
- package/dist/components/renderer/OnLoading.js +3 -3
- package/dist/components/renderer/OnLoading.js.map +1 -1
- package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.d.ts +1 -1
- package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js +2 -4
- package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js.map +1 -1
- package/dist/components/renderer/OneBlinkFormElements.d.ts +1 -1
- package/dist/components/renderer/OneBlinkFormElements.js +61 -90
- package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
- package/dist/components/renderer/PageFormElements.d.ts +1 -1
- package/dist/components/renderer/PageFormElements.js +3 -5
- package/dist/components/renderer/PageFormElements.js.map +1 -1
- package/dist/components/renderer/ProgressBar.d.ts +1 -1
- package/dist/components/renderer/ProgressBar.js +2 -1
- package/dist/components/renderer/ProgressBar.js.map +1 -1
- package/dist/components/renderer/ReverseGeocode.d.ts +1 -1
- package/dist/components/renderer/ReverseGeocode.js +2 -1
- package/dist/components/renderer/ReverseGeocode.js.map +1 -1
- package/dist/components/renderer/ToggleAllCheckbox.js +4 -5
- package/dist/components/renderer/ToggleAllCheckbox.js.map +1 -1
- package/dist/components/renderer/Tooltip.d.ts +1 -1
- package/dist/components/renderer/Tooltip.js +3 -1
- package/dist/components/renderer/Tooltip.js.map +1 -1
- package/dist/components/renderer/attachments/AttachmentStatus.d.ts +1 -1
- package/dist/components/renderer/attachments/AttachmentStatus.js +6 -15
- package/dist/components/renderer/attachments/AttachmentStatus.js.map +1 -1
- package/dist/components/renderer/attachments/DropdownMenu.js +30 -42
- package/dist/components/renderer/attachments/DropdownMenu.js.map +1 -1
- package/dist/components/renderer/attachments/FileCard.d.ts +1 -1
- package/dist/components/renderer/attachments/FileCard.js +2 -10
- package/dist/components/renderer/attachments/FileCard.js.map +1 -1
- package/dist/components/renderer/attachments/FileCardContent.d.ts +1 -1
- package/dist/components/renderer/attachments/FileCardContent.js +3 -4
- package/dist/components/renderer/attachments/FileCardContent.js.map +1 -1
- package/dist/components/renderer/attachments/ImagePreviewUnavailable.d.ts +1 -1
- package/dist/components/renderer/attachments/ImagePreviewUnavailable.js +2 -5
- package/dist/components/renderer/attachments/ImagePreviewUnavailable.js.map +1 -1
- package/dist/components/renderer/attachments/ProgressBar.js +2 -4
- package/dist/components/renderer/attachments/ProgressBar.js.map +1 -1
- package/dist/form-elements/ComplianceButton.js +3 -4
- package/dist/form-elements/ComplianceButton.js.map +1 -1
- package/dist/form-elements/FormElementABN.d.ts +1 -1
- package/dist/form-elements/FormElementABN.js +18 -28
- package/dist/form-elements/FormElementABN.js.map +1 -1
- package/dist/form-elements/FormElementAPINSWLiquorLicence.d.ts +2 -2
- package/dist/form-elements/FormElementAPINSWLiquorLicence.js +3 -21
- package/dist/form-elements/FormElementAPINSWLiquorLicence.js.map +1 -1
- package/dist/form-elements/FormElementArcGISWebMap.d.ts +1 -1
- package/dist/form-elements/FormElementArcGISWebMap.js +21 -36
- package/dist/form-elements/FormElementArcGISWebMap.js.map +1 -1
- package/dist/form-elements/FormElementAutocomplete.d.ts +1 -1
- package/dist/form-elements/FormElementAutocomplete.js +5 -9
- package/dist/form-elements/FormElementAutocomplete.js.map +1 -1
- package/dist/form-elements/FormElementBSB.d.ts +1 -1
- package/dist/form-elements/FormElementBSB.js +17 -30
- package/dist/form-elements/FormElementBSB.js.map +1 -1
- package/dist/form-elements/FormElementBarcodeScanner.d.ts +1 -1
- package/dist/form-elements/FormElementBarcodeScanner.js +16 -50
- package/dist/form-elements/FormElementBarcodeScanner.js.map +1 -1
- package/dist/form-elements/FormElementBoolean.d.ts +1 -1
- package/dist/form-elements/FormElementBoolean.js +4 -4
- package/dist/form-elements/FormElementBoolean.js.map +1 -1
- package/dist/form-elements/FormElementCalculation.d.ts +1 -1
- package/dist/form-elements/FormElementCalculation.js +2 -9
- package/dist/form-elements/FormElementCalculation.js.map +1 -1
- package/dist/form-elements/FormElementCamera.d.ts +1 -1
- package/dist/form-elements/FormElementCamera.js +7 -53
- package/dist/form-elements/FormElementCamera.js.map +1 -1
- package/dist/form-elements/FormElementCaptcha.d.ts +1 -1
- package/dist/form-elements/FormElementCaptcha.js +2 -4
- package/dist/form-elements/FormElementCaptcha.js.map +1 -1
- package/dist/form-elements/FormElementCheckBoxes.d.ts +1 -1
- package/dist/form-elements/FormElementCheckBoxes.js +23 -33
- package/dist/form-elements/FormElementCheckBoxes.js.map +1 -1
- package/dist/form-elements/FormElementCivicaNameRecord.d.ts +1 -1
- package/dist/form-elements/FormElementCivicaNameRecord.js +2 -1
- package/dist/form-elements/FormElementCivicaNameRecord.js.map +1 -1
- package/dist/form-elements/FormElementCivicaStreetName.d.ts +1 -1
- package/dist/form-elements/FormElementCivicaStreetName.js +2 -4
- package/dist/form-elements/FormElementCivicaStreetName.js.map +1 -1
- package/dist/form-elements/FormElementCompliance.d.ts +1 -1
- package/dist/form-elements/FormElementCompliance.js +13 -25
- package/dist/form-elements/FormElementCompliance.js.map +1 -1
- package/dist/form-elements/FormElementDate.d.ts +1 -1
- package/dist/form-elements/FormElementDate.js +2 -9
- package/dist/form-elements/FormElementDate.js.map +1 -1
- package/dist/form-elements/FormElementDateTime.d.ts +1 -1
- package/dist/form-elements/FormElementDateTime.js +2 -9
- package/dist/form-elements/FormElementDateTime.js.map +1 -1
- package/dist/form-elements/FormElementEmail.d.ts +1 -1
- package/dist/form-elements/FormElementEmail.js +4 -13
- package/dist/form-elements/FormElementEmail.js.map +1 -1
- package/dist/form-elements/FormElementFile.js +2 -12
- package/dist/form-elements/FormElementFile.js.map +1 -1
- package/dist/form-elements/FormElementFiles.d.ts +1 -1
- package/dist/form-elements/FormElementFiles.js +9 -17
- package/dist/form-elements/FormElementFiles.js.map +1 -1
- package/dist/form-elements/FormElementForm.d.ts +1 -1
- package/dist/form-elements/FormElementForm.js +2 -1
- package/dist/form-elements/FormElementForm.js.map +1 -1
- package/dist/form-elements/FormElementFreshdeskDependentField.d.ts +1 -1
- package/dist/form-elements/FormElementFreshdeskDependentField.js +2 -1
- package/dist/form-elements/FormElementFreshdeskDependentField.js.map +1 -1
- package/dist/form-elements/FormElementGeoscapeAddress.d.ts +1 -1
- package/dist/form-elements/FormElementGeoscapeAddress.js +2 -4
- package/dist/form-elements/FormElementGeoscapeAddress.js.map +1 -1
- package/dist/form-elements/FormElementGoogleAddress.d.ts +1 -1
- package/dist/form-elements/FormElementGoogleAddress.js +2 -7
- package/dist/form-elements/FormElementGoogleAddress.js.map +1 -1
- package/dist/form-elements/FormElementHTML.d.ts +1 -1
- package/dist/form-elements/FormElementHTML.js +2 -3
- package/dist/form-elements/FormElementHTML.js.map +1 -1
- package/dist/form-elements/FormElementHeading.d.ts +1 -1
- package/dist/form-elements/FormElementHeading.js +7 -8
- package/dist/form-elements/FormElementHeading.js.map +1 -1
- package/dist/form-elements/FormElementImage.d.ts +1 -1
- package/dist/form-elements/FormElementImage.js +3 -3
- package/dist/form-elements/FormElementImage.js.map +1 -1
- package/dist/form-elements/FormElementLocation.d.ts +1 -1
- package/dist/form-elements/FormElementLocation.js +16 -47
- package/dist/form-elements/FormElementLocation.js.map +1 -1
- package/dist/form-elements/FormElementLookupButton.d.ts +2 -3
- package/dist/form-elements/FormElementLookupButton.js +4 -7
- package/dist/form-elements/FormElementLookupButton.js.map +1 -1
- package/dist/form-elements/FormElementNumber.d.ts +1 -1
- package/dist/form-elements/FormElementNumber.js +3 -14
- package/dist/form-elements/FormElementNumber.js.map +1 -1
- package/dist/form-elements/FormElementPointAddress.d.ts +2 -2
- package/dist/form-elements/FormElementPointAddress.js +6 -13
- package/dist/form-elements/FormElementPointAddress.js.map +1 -1
- package/dist/form-elements/FormElementPointAddressV3.d.ts +1 -1
- package/dist/form-elements/FormElementPointAddressV3.js +2 -9
- package/dist/form-elements/FormElementPointAddressV3.js.map +1 -1
- package/dist/form-elements/FormElementPointCadastralParcel.d.ts +1 -1
- package/dist/form-elements/FormElementPointCadastralParcel.js +14 -26
- package/dist/form-elements/FormElementPointCadastralParcel.js.map +1 -1
- package/dist/form-elements/FormElementRadio.d.ts +1 -1
- package/dist/form-elements/FormElementRadio.js +24 -30
- package/dist/form-elements/FormElementRadio.js.map +1 -1
- package/dist/form-elements/FormElementRepeatableSet.d.ts +1 -1
- package/dist/form-elements/FormElementRepeatableSet.js +21 -39
- package/dist/form-elements/FormElementRepeatableSet.js.map +1 -1
- package/dist/form-elements/FormElementSection.d.ts +1 -1
- package/dist/form-elements/FormElementSection.js +16 -34
- package/dist/form-elements/FormElementSection.js.map +1 -1
- package/dist/form-elements/FormElementSelect.d.ts +1 -1
- package/dist/form-elements/FormElementSelect.js +12 -23
- package/dist/form-elements/FormElementSelect.js.map +1 -1
- package/dist/form-elements/FormElementSignature.d.ts +1 -1
- package/dist/form-elements/FormElementSignature.js +21 -46
- package/dist/form-elements/FormElementSignature.js.map +1 -1
- package/dist/form-elements/FormElementSummary.d.ts +1 -1
- package/dist/form-elements/FormElementSummary.js +5 -4
- package/dist/form-elements/FormElementSummary.js.map +1 -1
- package/dist/form-elements/FormElementTelephone.d.ts +1 -1
- package/dist/form-elements/FormElementTelephone.js +4 -13
- package/dist/form-elements/FormElementTelephone.js.map +1 -1
- package/dist/form-elements/FormElementText.d.ts +1 -1
- package/dist/form-elements/FormElementText.js +6 -21
- package/dist/form-elements/FormElementText.js.map +1 -1
- package/dist/form-elements/FormElementTextarea.d.ts +1 -1
- package/dist/form-elements/FormElementTextarea.js +6 -20
- package/dist/form-elements/FormElementTextarea.js.map +1 -1
- package/dist/form-elements/FormElementTime.d.ts +1 -1
- package/dist/form-elements/FormElementTime.js +2 -9
- package/dist/form-elements/FormElementTime.js.map +1 -1
- package/dist/form-elements/OptionButton.js +3 -5
- package/dist/form-elements/OptionButton.js.map +1 -1
- package/dist/hooks/attachments/useAttachmentBlobs.d.ts +1 -1
- package/dist/hooks/attachments/useAttachmentBlobs.js +2 -1
- package/dist/hooks/attachments/useAttachmentBlobs.js.map +1 -1
- package/dist/hooks/form-date-picker/useFormDatePickerProps.d.ts +7 -8
- package/dist/hooks/form-date-picker/useFormDatePickerProps.js +8 -10
- package/dist/hooks/form-date-picker/useFormDatePickerProps.js.map +1 -1
- package/dist/hooks/useAuth.d.ts +1 -1
- package/dist/hooks/useAuth.js +2 -1
- package/dist/hooks/useAuth.js.map +1 -1
- package/dist/hooks/useDrafts.d.ts +1 -1
- package/dist/hooks/useDrafts.js +2 -1
- package/dist/hooks/useDrafts.js.map +1 -1
- package/dist/hooks/useDynamicOptionsLoaderState.d.ts +1 -1
- package/dist/hooks/useDynamicOptionsLoaderState.js +4 -13
- package/dist/hooks/useDynamicOptionsLoaderState.js.map +1 -1
- package/dist/hooks/useFormElementLookups.d.ts +1 -1
- package/dist/hooks/useFormElementLookups.js +2 -1
- package/dist/hooks/useFormElementLookups.js.map +1 -1
- package/dist/hooks/useFormSubmissionModelContext.d.ts +1 -1
- package/dist/hooks/useFormSubmissionModelContext.js +2 -1
- package/dist/hooks/useFormSubmissionModelContext.js.map +1 -1
- package/dist/hooks/useFormSubmissionState.d.ts +1 -1
- package/dist/hooks/useFormSubmissionState.js +1 -1
- package/dist/hooks/useFormSubmissionState.js.map +1 -1
- package/dist/hooks/useIsHovering.d.ts +1 -1
- package/dist/hooks/useIsHovering.js +4 -4
- package/dist/hooks/useIsHovering.js.map +1 -1
- package/dist/hooks/useIsOffline.d.ts +1 -1
- package/dist/hooks/useIsOffline.js +2 -1
- package/dist/hooks/useIsOffline.js.map +1 -1
- package/dist/hooks/useIsPageVisible.d.ts +1 -1
- package/dist/hooks/useIsPageVisible.js +2 -1
- package/dist/hooks/useIsPageVisible.js.map +1 -1
- package/dist/hooks/useMfa.d.ts +1 -1
- package/dist/hooks/useMfa.js +2 -1
- package/dist/hooks/useMfa.js.map +1 -1
- package/dist/hooks/usePages.d.ts +1 -1
- package/dist/hooks/usePendingSubmissions.d.ts +1 -1
- package/dist/hooks/usePendingSubmissions.js +2 -1
- package/dist/hooks/usePendingSubmissions.js.map +1 -1
- package/dist/hooks/useReCAPTCHAProps.d.ts +1 -1
- package/dist/hooks/useReCAPTCHAProps.js.map +1 -1
- package/package.json +21 -25
|
@@ -1,11 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
import { Fade } from '@mui/material';
|
|
3
4
|
import ProgressBar from '../ProgressBar';
|
|
4
5
|
const AttachmentProgressBar = ({ progress, isShowing }) => {
|
|
5
|
-
return (
|
|
6
|
-
React.createElement("span", null,
|
|
7
|
-
React.createElement("div", { className: "ob-progress__attachment-wrapper" },
|
|
8
|
-
React.createElement(ProgressBar, { className: "ob-progress__attachment-bar", progress: progress || 0 })))));
|
|
6
|
+
return (_jsx(Fade, { in: isShowing, children: _jsx("span", { children: _jsx("div", { className: "ob-progress__attachment-wrapper", children: _jsx(ProgressBar, { className: "ob-progress__attachment-bar", progress: progress || 0 }) }) }) }));
|
|
9
7
|
};
|
|
10
8
|
export default React.memo(AttachmentProgressBar);
|
|
11
9
|
//# sourceMappingURL=ProgressBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../../../src/components/renderer/attachments/ProgressBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,WAAW,MAAM,gBAAgB,CAAA;AAOxC,MAAM,qBAAqB,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAS,EAAE,EAAE;IAC/D,OAAO,CACL,
|
|
1
|
+
{"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../../../src/components/renderer/attachments/ProgressBar.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,WAAW,MAAM,gBAAgB,CAAA;AAOxC,MAAM,qBAAqB,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAS,EAAE,EAAE;IAC/D,OAAO,CACL,KAAC,IAAI,IAAC,EAAE,EAAE,SAAS,YACjB,yBACE,cAAK,SAAS,EAAC,iCAAiC,YAC9C,KAAC,WAAW,IACV,SAAS,EAAC,6BAA6B,EACvC,QAAQ,EAAE,QAAQ,IAAI,CAAC,GACvB,GACE,GACD,GACF,CACR,CAAA;AACH,CAAC,CAAA;AAED,eAAe,KAAK,CAAC,IAAI,CAAQ,qBAAqB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport { Fade } from '@mui/material'\nimport ProgressBar from '../ProgressBar'\n\ninterface Props {\n progress: number | undefined\n isShowing: boolean\n}\n\nconst AttachmentProgressBar = ({ progress, isShowing }: Props) => {\n return (\n <Fade in={isShowing}>\n <span>\n <div className=\"ob-progress__attachment-wrapper\">\n <ProgressBar\n className=\"ob-progress__attachment-bar\"\n progress={progress || 0}\n />\n </div>\n </span>\n </Fade>\n )\n}\n\nexport default React.memo<Props>(AttachmentProgressBar)\n"]}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
import clsx from 'clsx';
|
|
3
4
|
import MaterialIcon from '../components/MaterialIcon';
|
|
4
5
|
const ComplianceButton = ({ onClick, icon, children, isActive, disabled, }) => {
|
|
5
|
-
return (
|
|
6
|
+
return (_jsxs("button", { disabled: disabled, type: "button", className: clsx('button ob-button__compliance', {
|
|
6
7
|
'is-primary': isActive,
|
|
7
8
|
'is-light': !isActive,
|
|
8
|
-
}), onClick: onClick },
|
|
9
|
-
React.createElement(MaterialIcon, { className: "is-size-5 ob-button__compliance-icon" }, icon),
|
|
10
|
-
children));
|
|
9
|
+
}), onClick: onClick, children: [_jsx(MaterialIcon, { className: "is-size-5 ob-button__compliance-icon", children: icon }), children] }));
|
|
11
10
|
};
|
|
12
11
|
export default React.memo(ComplianceButton);
|
|
13
12
|
//# sourceMappingURL=ComplianceButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComplianceButton.js","sourceRoot":"","sources":["../../src/form-elements/ComplianceButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,YAAY,MAAM,4BAA4B,CAAA;AAUrD,MAAM,gBAAgB,GAAG,CAAC,EACxB,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,GACF,EAAE,EAAE;IACV,OAAO,CACL,
|
|
1
|
+
{"version":3,"file":"ComplianceButton.js","sourceRoot":"","sources":["../../src/form-elements/ComplianceButton.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,YAAY,MAAM,4BAA4B,CAAA;AAUrD,MAAM,gBAAgB,GAAG,CAAC,EACxB,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,GACF,EAAE,EAAE;IACV,OAAO,CACL,kBACE,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAI,CAAC,8BAA8B,EAAE;YAC9C,YAAY,EAAE,QAAQ;YACtB,UAAU,EAAE,CAAC,QAAQ;SACtB,CAAC,EACF,OAAO,EAAE,OAAO,aAEhB,KAAC,YAAY,IAAC,SAAS,EAAC,sCAAsC,YAC3D,IAAI,GACQ,EACd,QAAQ,IACF,CACV,CAAA;AACH,CAAC,CAAA;AAED,eAAe,KAAK,CAAC,IAAI,CAAQ,gBAAgB,CAAC,CAAA","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport MaterialIcon from '../components/MaterialIcon'\n\ninterface Props {\n onClick: () => void\n icon: string\n children: React.ReactNode\n isActive: boolean\n disabled: boolean\n}\n\nconst ComplianceButton = ({\n onClick,\n icon,\n children,\n isActive,\n disabled,\n}: Props) => {\n return (\n <button\n disabled={disabled}\n type=\"button\"\n className={clsx('button ob-button__compliance', {\n 'is-primary': isActive,\n 'is-light': !isActive,\n })}\n onClick={onClick}\n >\n <MaterialIcon className=\"is-size-5 ob-button__compliance-icon\">\n {icon}\n </MaterialIcon>\n {children}\n </button>\n )\n}\n\nexport default React.memo<Props>(ComplianceButton)\n"]}
|
|
@@ -10,6 +10,6 @@ type Props = {
|
|
|
10
10
|
validationMessage: string | undefined;
|
|
11
11
|
autocompleteAttributes?: string;
|
|
12
12
|
} & IsDirtyProps;
|
|
13
|
-
declare function FormElementABN({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, autocompleteAttributes, }: Props):
|
|
13
|
+
declare function FormElementABN({ id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, autocompleteAttributes, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
14
14
|
declare const _default: React.MemoExoticComponent<typeof FormElementABN>;
|
|
15
15
|
export default _default;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
import clsx from 'clsx';
|
|
3
|
-
import InputMask from 'react-input
|
|
4
|
+
import { InputMask } from '@react-input/mask';
|
|
4
5
|
import { parseString } from 'xml2js';
|
|
5
6
|
import CopyToClipboardButton from '../components/renderer/CopyToClipboardButton';
|
|
6
7
|
import useBooleanState from '../hooks/useBooleanState';
|
|
@@ -137,35 +138,24 @@ function FormElementABN({ id, element, value, onChange, validationMessage, displ
|
|
|
137
138
|
!isLookingUp;
|
|
138
139
|
const hasCopyButton = !!value && !!element.readOnly;
|
|
139
140
|
const hasLookupButton = element.isDataLookup || element.isElementLookup;
|
|
140
|
-
return (
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}, required: element.required, disabled: element.readOnly, onBlur: () => {
|
|
156
|
-
setIsDirty();
|
|
157
|
-
removeFocus();
|
|
158
|
-
}, onFocus: setIsFocused, "aria-describedby": ariaDescribedby, autoComplete: autocompleteAttributes, "aria-required": element.required })),
|
|
159
|
-
value && (React.createElement(ABNDisplay, { abnRecord: value, className: "ob-abn__display-desktop" })),
|
|
160
|
-
hasCopyButton && (React.createElement("div", { className: "control" },
|
|
161
|
-
React.createElement(CopyToClipboardButton, { className: "button is-input-addon copy-button cypress-copy-to-clipboard-button", text: label }))),
|
|
162
|
-
React.createElement(LookupButton, { isInputButton: true, value: value, validationMessage: validationMessage, lookupButtonConfig: element.lookupButton })),
|
|
163
|
-
value && (React.createElement(ABNDisplay, { abnRecord: value, className: "ob-abn__display-mobile" })),
|
|
164
|
-
isDisplayingValidationMessage && (React.createElement(FormElementValidationMessage, { message: (error === null || error === void 0 ? void 0 : error.message) || validationMessage })))));
|
|
141
|
+
return (_jsx("div", { className: "cypress-abn-element", children: _jsxs(FormElementLabelContainer, { className: "ob-abn", id: id, element: element, required: element.required, children: [_jsxs("div", { className: clsx('field has-addons', {
|
|
142
|
+
'no-addons-mobile': !hasCopyButton && !hasLookupButton,
|
|
143
|
+
}), children: [_jsx("div", { className: clsx('control is-expanded', {
|
|
144
|
+
'is-loading': isLoading,
|
|
145
|
+
}), children: _jsx(InputMask, { mask: isFocused || value ? 'dd ddd ddd ddd' : 'ddd ddd ddd', replacement: { d: /\d/ }, type: "text", id: id, name: element.name, className: "input ob-input cypress-abn-control", placeholder: element.placeholderValue, value: label, onChange: (e) => {
|
|
146
|
+
setLabel(e.target.value);
|
|
147
|
+
if (value) {
|
|
148
|
+
onChange(element, {
|
|
149
|
+
value: undefined,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}, required: element.required, disabled: element.readOnly, onBlur: () => {
|
|
153
|
+
setIsDirty();
|
|
154
|
+
removeFocus();
|
|
155
|
+
}, onFocus: setIsFocused, "aria-describedby": ariaDescribedby, autoComplete: autocompleteAttributes, "aria-required": element.required }) }), value && (_jsx(ABNDisplay, { abnRecord: value, className: "ob-abn__display-desktop" })), hasCopyButton && (_jsx("div", { className: "control", children: _jsx(CopyToClipboardButton, { className: "button is-input-addon copy-button cypress-copy-to-clipboard-button", text: label }) })), _jsx(LookupButton, { isInputButton: true, value: value, validationMessage: validationMessage, lookupButtonConfig: element.lookupButton })] }), value && (_jsx(ABNDisplay, { abnRecord: value, className: "ob-abn__display-mobile" })), isDisplayingValidationMessage && (_jsx(FormElementValidationMessage, { message: (error === null || error === void 0 ? void 0 : error.message) || validationMessage }))] }) }));
|
|
165
156
|
}
|
|
166
157
|
export default React.memo(FormElementABN);
|
|
167
158
|
const ABNDisplay = ({ abnRecord, className, }) => {
|
|
168
|
-
return (
|
|
169
|
-
React.createElement("a", { className: "button is-static ob-abn__record-button" }, abnService.displayBusinessNameFromABNRecord(abnRecord))));
|
|
159
|
+
return (_jsx("div", { className: `control ob-abn__record-control ${className}`, children: _jsx("a", { className: "button is-static ob-abn__record-button", children: abnService.displayBusinessNameFromABNRecord(abnRecord) }) }));
|
|
170
160
|
};
|
|
171
161
|
//# sourceMappingURL=FormElementABN.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormElementABN.js","sourceRoot":"","sources":["../../src/form-elements/FormElementABN.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport InputMask from 'react-input-mask'\nimport { parseString } from 'xml2js'\nimport CopyToClipboardButton from '../components/renderer/CopyToClipboardButton'\nimport useBooleanState from '../hooks/useBooleanState'\nimport LookupButton from '../components/renderer/LookupButton'\nimport { FormTypes, MiscTypes } from '@oneblink/types'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport useAbnLookupAuthenticationGuid from '../hooks/useAbnLookupAuthenticationGuid'\nimport { abnService } from '@oneblink/sdk-core'\nimport { LookupNotificationContext } from '../hooks/useLookupNotification'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n id: string\n element: FormTypes.ABNElement\n value: MiscTypes.ABNRecord | undefined\n onChange: FormElementValueChangeHandler<MiscTypes.ABNRecord>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n autocompleteAttributes?: string\n} & IsDirtyProps\n\nfunction FormElementABN({\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n isDirty,\n setIsDirty,\n autocompleteAttributes,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const abnLookupAuthenticationGuid = useAbnLookupAuthenticationGuid()\n const [label, setLabel] = React.useState(\n value ? abnService.getABNNumberFromABNRecord(value) || '' : '',\n )\n const [isFocused, setIsFocused, removeFocus] = useBooleanState(false)\n const [{ isLoading, error }, setState] = React.useState<{\n isLoading: boolean\n error: Error | null\n }>({\n isLoading: false,\n error: null,\n })\n\n React.useEffect(() => {\n const searchString = label.replace(/[^\\d]/g, '')\n const isSearchStringValid =\n searchString.length === 11 || (searchString.length === 9 && !isFocused)\n\n const currentABNNumber = value\n ? abnService.getABNNumberFromABNRecord(value)\n : ''\n if (!isSearchStringValid || currentABNNumber === searchString) {\n return\n }\n\n setState({\n isLoading: true,\n error: null,\n })\n\n const abortController = new AbortController()\n const fetchRecord = async () => {\n try {\n const urlSearchParams = new URLSearchParams()\n urlSearchParams.append('searchString', searchString)\n urlSearchParams.append('includeHistoricalDetails', 'N')\n if (abnLookupAuthenticationGuid) {\n urlSearchParams.append(\n 'authenticationGuid',\n abnLookupAuthenticationGuid,\n )\n }\n\n const url =\n searchString.length === 11\n ? 'https://abr.business.gov.au/abrxmlsearch/AbrXmlSearch.asmx/SearchByABNv202001'\n : 'https://abr.business.gov.au/abrxmlsearch/AbrXmlSearch.asmx/SearchByASICv201408'\n const response = await fetch(`${url}?${urlSearchParams.toString()}`, {\n mode: 'cors',\n signal: abortController.signal,\n })\n const text = await response.text()\n if (!response.ok) {\n throw new Error(text)\n }\n\n const result = await new Promise<{\n ABRPayloadSearchResults: {\n response: {\n businessEntity201408?: MiscTypes.ABNRecord\n businessEntity202001: MiscTypes.ABNRecord\n exception?: {\n exceptionDescription: string\n exceptionCode: string\n }\n }\n }\n }>((resolve, reject) => {\n parseString(\n text,\n {\n explicitArray: false,\n },\n (err, result) => {\n if (err) {\n reject(err)\n } else {\n resolve(result)\n }\n },\n )\n })\n if (result.ABRPayloadSearchResults.response.exception) {\n throw new Error(\n result.ABRPayloadSearchResults.response.exception.exceptionDescription,\n )\n }\n\n if (result.ABRPayloadSearchResults.response.businessEntity201408) {\n result.ABRPayloadSearchResults.response.businessEntity202001 =\n result.ABRPayloadSearchResults.response.businessEntity201408\n }\n\n if (\n !Array.isArray(\n result.ABRPayloadSearchResults.response.businessEntity202001\n .businessName,\n )\n ) {\n result.ABRPayloadSearchResults.response.businessEntity202001.businessName =\n [\n result.ABRPayloadSearchResults.response.businessEntity202001\n .businessName,\n ]\n }\n\n if (!abortController.signal.aborted) {\n onChange(element, {\n value: result.ABRPayloadSearchResults.response.businessEntity202001,\n })\n setState({\n isLoading: false,\n error: null,\n })\n }\n } catch (err) {\n if (!abortController.signal.aborted) {\n setState({\n isLoading: false,\n error: err as Error,\n })\n }\n }\n }\n\n fetchRecord()\n\n return () => {\n abortController.abort()\n }\n }, [abnLookupAuthenticationGuid, element, isFocused, label, onChange, value])\n\n // Ensure the label is set if the value is set outside of this component\n React.useEffect(() => {\n if (value) {\n const newLabel = abnService.getABNNumberFromABNRecord(value)\n if (!newLabel) {\n // Record in value had no ABN Number. This should never happen\n return\n }\n if (label !== newLabel) {\n setLabel(\n newLabel.split('').reduce((memo, character, index) => {\n switch (index) {\n case 2:\n case 5:\n case 8: {\n return `${memo} ${character}`\n }\n default: {\n return `${memo}${character}`\n }\n }\n }, ''),\n )\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value])\n\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (((isDirty || displayValidationMessage) &&\n !!validationMessage &&\n !isLoading) ||\n error) &&\n !isLookingUp\n\n const hasCopyButton = !!value && !!element.readOnly\n const hasLookupButton = element.isDataLookup || element.isElementLookup\n return (\n <div className=\"cypress-abn-element\">\n <FormElementLabelContainer\n className=\"ob-abn\"\n id={id}\n element={element}\n required={element.required}\n >\n <div\n className={clsx('field has-addons', {\n 'no-addons-mobile': !hasCopyButton && !hasLookupButton,\n })}\n >\n <div\n className={clsx('control is-expanded', {\n 'is-loading': isLoading,\n })}\n >\n <InputMask\n mask={isFocused || value ? '99 999 999 999' : '999 999 999'}\n maskChar=\" \"\n type=\"text\"\n id={id}\n name={element.name}\n className=\"input ob-input cypress-abn-control\"\n placeholder={element.placeholderValue}\n value={label}\n onChange={(e) => {\n setLabel(e.target.value)\n if (value) {\n onChange(element, {\n value: undefined,\n })\n }\n }}\n required={element.required}\n disabled={element.readOnly}\n onBlur={() => {\n setIsDirty()\n removeFocus()\n }}\n onFocus={setIsFocused}\n aria-describedby={ariaDescribedby}\n autoComplete={autocompleteAttributes}\n aria-required={element.required}\n />\n </div>\n {value && (\n <ABNDisplay abnRecord={value} className=\"ob-abn__display-desktop\" />\n )}\n {hasCopyButton && (\n <div className=\"control\">\n <CopyToClipboardButton\n className=\"button is-input-addon copy-button cypress-copy-to-clipboard-button\"\n text={label}\n />\n </div>\n )}\n <LookupButton\n isInputButton\n value={value}\n validationMessage={validationMessage}\n lookupButtonConfig={element.lookupButton}\n />\n </div>\n {value && (\n <ABNDisplay abnRecord={value} className=\"ob-abn__display-mobile\" />\n )}\n {isDisplayingValidationMessage && (\n <FormElementValidationMessage\n message={error?.message || validationMessage}\n />\n )}\n </FormElementLabelContainer>\n </div>\n )\n}\n\nexport default React.memo(FormElementABN)\n\nconst ABNDisplay = ({\n abnRecord,\n className,\n}: {\n abnRecord: MiscTypes.ABNRecord\n className: string\n}) => {\n return (\n <div className={`control ob-abn__record-control ${className}`}>\n <a className=\"button is-static ob-abn__record-button\">\n {abnService.displayBusinessNameFromABNRecord(abnRecord)}\n </a>\n </div>\n )\n}\n"]}
|
|
1
|
+
{"version":3,"file":"FormElementABN.js","sourceRoot":"","sources":["../../src/form-elements/FormElementABN.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport clsx from 'clsx'\nimport { InputMask } from '@react-input/mask'\nimport { parseString } from 'xml2js'\nimport CopyToClipboardButton from '../components/renderer/CopyToClipboardButton'\nimport useBooleanState from '../hooks/useBooleanState'\nimport LookupButton from '../components/renderer/LookupButton'\nimport { FormTypes, MiscTypes } from '@oneblink/types'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport useAbnLookupAuthenticationGuid from '../hooks/useAbnLookupAuthenticationGuid'\nimport { abnService } from '@oneblink/sdk-core'\nimport { LookupNotificationContext } from '../hooks/useLookupNotification'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n id: string\n element: FormTypes.ABNElement\n value: MiscTypes.ABNRecord | undefined\n onChange: FormElementValueChangeHandler<MiscTypes.ABNRecord>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n autocompleteAttributes?: string\n} & IsDirtyProps\n\nfunction FormElementABN({\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n isDirty,\n setIsDirty,\n autocompleteAttributes,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const abnLookupAuthenticationGuid = useAbnLookupAuthenticationGuid()\n const [label, setLabel] = React.useState(\n value ? abnService.getABNNumberFromABNRecord(value) || '' : '',\n )\n const [isFocused, setIsFocused, removeFocus] = useBooleanState(false)\n const [{ isLoading, error }, setState] = React.useState<{\n isLoading: boolean\n error: Error | null\n }>({\n isLoading: false,\n error: null,\n })\n\n React.useEffect(() => {\n const searchString = label.replace(/[^\\d]/g, '')\n const isSearchStringValid =\n searchString.length === 11 || (searchString.length === 9 && !isFocused)\n\n const currentABNNumber = value\n ? abnService.getABNNumberFromABNRecord(value)\n : ''\n if (!isSearchStringValid || currentABNNumber === searchString) {\n return\n }\n\n setState({\n isLoading: true,\n error: null,\n })\n\n const abortController = new AbortController()\n const fetchRecord = async () => {\n try {\n const urlSearchParams = new URLSearchParams()\n urlSearchParams.append('searchString', searchString)\n urlSearchParams.append('includeHistoricalDetails', 'N')\n if (abnLookupAuthenticationGuid) {\n urlSearchParams.append(\n 'authenticationGuid',\n abnLookupAuthenticationGuid,\n )\n }\n\n const url =\n searchString.length === 11\n ? 'https://abr.business.gov.au/abrxmlsearch/AbrXmlSearch.asmx/SearchByABNv202001'\n : 'https://abr.business.gov.au/abrxmlsearch/AbrXmlSearch.asmx/SearchByASICv201408'\n const response = await fetch(`${url}?${urlSearchParams.toString()}`, {\n mode: 'cors',\n signal: abortController.signal,\n })\n const text = await response.text()\n if (!response.ok) {\n throw new Error(text)\n }\n\n const result = await new Promise<{\n ABRPayloadSearchResults: {\n response: {\n businessEntity201408?: MiscTypes.ABNRecord\n businessEntity202001: MiscTypes.ABNRecord\n exception?: {\n exceptionDescription: string\n exceptionCode: string\n }\n }\n }\n }>((resolve, reject) => {\n parseString(\n text,\n {\n explicitArray: false,\n },\n (err, result) => {\n if (err) {\n reject(err)\n } else {\n resolve(result)\n }\n },\n )\n })\n if (result.ABRPayloadSearchResults.response.exception) {\n throw new Error(\n result.ABRPayloadSearchResults.response.exception.exceptionDescription,\n )\n }\n\n if (result.ABRPayloadSearchResults.response.businessEntity201408) {\n result.ABRPayloadSearchResults.response.businessEntity202001 =\n result.ABRPayloadSearchResults.response.businessEntity201408\n }\n\n if (\n !Array.isArray(\n result.ABRPayloadSearchResults.response.businessEntity202001\n .businessName,\n )\n ) {\n result.ABRPayloadSearchResults.response.businessEntity202001.businessName =\n [\n result.ABRPayloadSearchResults.response.businessEntity202001\n .businessName,\n ]\n }\n\n if (!abortController.signal.aborted) {\n onChange(element, {\n value: result.ABRPayloadSearchResults.response.businessEntity202001,\n })\n setState({\n isLoading: false,\n error: null,\n })\n }\n } catch (err) {\n if (!abortController.signal.aborted) {\n setState({\n isLoading: false,\n error: err as Error,\n })\n }\n }\n }\n\n fetchRecord()\n\n return () => {\n abortController.abort()\n }\n }, [abnLookupAuthenticationGuid, element, isFocused, label, onChange, value])\n\n // Ensure the label is set if the value is set outside of this component\n React.useEffect(() => {\n if (value) {\n const newLabel = abnService.getABNNumberFromABNRecord(value)\n if (!newLabel) {\n // Record in value had no ABN Number. This should never happen\n return\n }\n if (label !== newLabel) {\n setLabel(\n newLabel.split('').reduce((memo, character, index) => {\n switch (index) {\n case 2:\n case 5:\n case 8: {\n return `${memo} ${character}`\n }\n default: {\n return `${memo}${character}`\n }\n }\n }, ''),\n )\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value])\n\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (((isDirty || displayValidationMessage) &&\n !!validationMessage &&\n !isLoading) ||\n error) &&\n !isLookingUp\n\n const hasCopyButton = !!value && !!element.readOnly\n const hasLookupButton = element.isDataLookup || element.isElementLookup\n return (\n <div className=\"cypress-abn-element\">\n <FormElementLabelContainer\n className=\"ob-abn\"\n id={id}\n element={element}\n required={element.required}\n >\n <div\n className={clsx('field has-addons', {\n 'no-addons-mobile': !hasCopyButton && !hasLookupButton,\n })}\n >\n <div\n className={clsx('control is-expanded', {\n 'is-loading': isLoading,\n })}\n >\n <InputMask\n mask={isFocused || value ? 'dd ddd ddd ddd' : 'ddd ddd ddd'}\n replacement={{ d: /\\d/ }}\n type=\"text\"\n id={id}\n name={element.name}\n className=\"input ob-input cypress-abn-control\"\n placeholder={element.placeholderValue}\n value={label}\n onChange={(e) => {\n setLabel(e.target.value)\n if (value) {\n onChange(element, {\n value: undefined,\n })\n }\n }}\n required={element.required}\n disabled={element.readOnly}\n onBlur={() => {\n setIsDirty()\n removeFocus()\n }}\n onFocus={setIsFocused}\n aria-describedby={ariaDescribedby}\n autoComplete={autocompleteAttributes}\n aria-required={element.required}\n />\n </div>\n {value && (\n <ABNDisplay abnRecord={value} className=\"ob-abn__display-desktop\" />\n )}\n {hasCopyButton && (\n <div className=\"control\">\n <CopyToClipboardButton\n className=\"button is-input-addon copy-button cypress-copy-to-clipboard-button\"\n text={label}\n />\n </div>\n )}\n <LookupButton\n isInputButton\n value={value}\n validationMessage={validationMessage}\n lookupButtonConfig={element.lookupButton}\n />\n </div>\n {value && (\n <ABNDisplay abnRecord={value} className=\"ob-abn__display-mobile\" />\n )}\n {isDisplayingValidationMessage && (\n <FormElementValidationMessage\n message={error?.message || validationMessage}\n />\n )}\n </FormElementLabelContainer>\n </div>\n )\n}\n\nexport default React.memo(FormElementABN)\n\nconst ABNDisplay = ({\n abnRecord,\n className,\n}: {\n abnRecord: MiscTypes.ABNRecord\n className: string\n}) => {\n return (\n <div className={`control ob-abn__record-control ${className}`}>\n <a className=\"button is-static ob-abn__record-button\">\n {abnService.displayBusinessNameFromABNRecord(abnRecord)}\n </a>\n </div>\n )\n}\n"]}
|
|
@@ -11,12 +11,12 @@ type Props = {
|
|
|
11
11
|
validationMessage: string | undefined;
|
|
12
12
|
autocompleteAttributes?: string;
|
|
13
13
|
} & IsDirtyProps;
|
|
14
|
-
declare function FormElementAPINSWLiquorLicence({ formId, id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, autocompleteAttributes, }: Props):
|
|
14
|
+
declare function FormElementAPINSWLiquorLicence({ formId, id, element, value, onChange, validationMessage, displayValidationMessage, isDirty, setIsDirty, autocompleteAttributes, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
15
15
|
export declare function LicenceDetailGridItem({ label, value, classNameSuffix, fullWidth, }: {
|
|
16
16
|
label: string;
|
|
17
17
|
value: string | undefined;
|
|
18
18
|
classNameSuffix: string;
|
|
19
19
|
fullWidth?: boolean;
|
|
20
|
-
}):
|
|
20
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
21
21
|
declare const _default: React.MemoExoticComponent<typeof FormElementAPINSWLiquorLicence>;
|
|
22
22
|
export default _default;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
import { formService } from '@oneblink/apps';
|
|
3
4
|
import FormElementLabelContainer from '../components/renderer/FormElementLabelContainer';
|
|
@@ -71,29 +72,10 @@ function FormElementAPINSWLiquorLicence({ formId, id, element, value, onChange,
|
|
|
71
72
|
}
|
|
72
73
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
73
74
|
}, [value]);
|
|
74
|
-
return (
|
|
75
|
-
React.createElement(FormElementLabelContainer, { className: "ob-api-nsw-liquor-licence ob-autocomplete", id: id, element: element, required: element.required },
|
|
76
|
-
React.createElement(AutocompleteDropdown, { id: id, label: label, disabled: element.readOnly || isLoading, placeholder: element.placeholderValue, required: element.required, value: value, validationMessage: validationMessage, displayValidationMessage: displayValidationMessage, onChangeValue: fetchAndSelectSingleLicence, isLoading: isLoading, hasError: !!error, onChangeLabel: setLabel, searchDebounceMs: 750, searchMinCharacters: 2, onSearch: handleSearch, isDirty: isDirty, setIsDirty: setIsDirty, "aria-describedby": ariaDescribedby, autoComplete: autocompleteAttributes })),
|
|
77
|
-
error && (React.createElement(FormElementValidationMessage, { message: error.toString(), className: "cypress-api-nsw-liquor-licence-error-message" })),
|
|
78
|
-
React.createElement(Collapse, { in: !!value },
|
|
79
|
-
React.createElement(NotificationGrid, { className: `${liquorLicenceClassPrefix}record-display has-margin-top-6`, gridClassName: `${liquorLicenceClassPrefix}container` },
|
|
80
|
-
((_a = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _a === void 0 ? void 0 : _a.licenceName) && (React.createElement(Grid, { item: true, xs: 12, className: `${liquorLicenceClassPrefix}licenceName` },
|
|
81
|
-
React.createElement("h6", { className: `is-size-5 has-text-weight-semibold ${liquorLicenceClassPrefix}name` }, (_b = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _b === void 0 ? void 0 : _b.licenceName))),
|
|
82
|
-
React.createElement(LicenceDetailGridItem, { label: "Licence Number", value: (_c = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _c === void 0 ? void 0 : _c.licenceNumber, classNameSuffix: "licenceNumber" }),
|
|
83
|
-
React.createElement(LicenceDetailGridItem, { label: "Licence Type", value: (_d = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _d === void 0 ? void 0 : _d.licenceTypeName, classNameSuffix: "licenceTypeName" }),
|
|
84
|
-
React.createElement(LicenceDetailGridItem, { label: "Licensee", value: (_e = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _e === void 0 ? void 0 : _e.licensee, classNameSuffix: "licensee" }),
|
|
85
|
-
React.createElement(LicenceDetailGridItem, { label: "Licensee Birth Date", value: (_f = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _f === void 0 ? void 0 : _f.licenseeBirthdate, classNameSuffix: "licenseeBirthdate" }),
|
|
86
|
-
React.createElement(LicenceDetailGridItem, { label: "Licencee ABN", value: (_g = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _g === void 0 ? void 0 : _g.licenceeABN, classNameSuffix: "licenceeABN" }),
|
|
87
|
-
React.createElement(LicenceDetailGridItem, { label: "Licencee ACN", value: (_h = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _h === void 0 ? void 0 : _h.licenceeACN, classNameSuffix: "licenceeACN" }),
|
|
88
|
-
React.createElement(LicenceDetailGridItem, { label: "Refused Date", value: (_j = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _j === void 0 ? void 0 : _j.refusedDate, classNameSuffix: "refusedDate" }),
|
|
89
|
-
React.createElement(LicenceDetailGridItem, { label: "Start Date", value: (_k = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _k === void 0 ? void 0 : _k.startDate, classNameSuffix: "startDate" }),
|
|
90
|
-
React.createElement(LicenceDetailGridItem, { label: "Expiry Date", value: (_l = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _l === void 0 ? void 0 : _l.expiryDate, classNameSuffix: "expiryDate" }),
|
|
91
|
-
React.createElement(LicenceDetailGridItem, { label: "Status", value: (_m = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _m === void 0 ? void 0 : _m.status, classNameSuffix: "status" }),
|
|
92
|
-
React.createElement(LicenceDetailGridItem, { label: "Address Type", value: (_o = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _o === void 0 ? void 0 : _o.addressType, classNameSuffix: "addressType" }),
|
|
93
|
-
React.createElement(LicenceDetailGridItem, { label: "Address", value: (_p = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _p === void 0 ? void 0 : _p.address, classNameSuffix: "address", fullWidth: true })))));
|
|
75
|
+
return (_jsxs("div", { className: "cypress-api-nsw-liquor-licence-element", children: [_jsx(FormElementLabelContainer, { className: "ob-api-nsw-liquor-licence ob-autocomplete", id: id, element: element, required: element.required, children: _jsx(AutocompleteDropdown, { id: id, label: label, disabled: element.readOnly || isLoading, placeholder: element.placeholderValue, required: element.required, value: value, validationMessage: validationMessage, displayValidationMessage: displayValidationMessage, onChangeValue: fetchAndSelectSingleLicence, isLoading: isLoading, hasError: !!error, onChangeLabel: setLabel, searchDebounceMs: 750, searchMinCharacters: 2, onSearch: handleSearch, isDirty: isDirty, setIsDirty: setIsDirty, "aria-describedby": ariaDescribedby, autoComplete: autocompleteAttributes }) }), error && (_jsx(FormElementValidationMessage, { message: error.toString(), className: "cypress-api-nsw-liquor-licence-error-message" })), _jsx(Collapse, { in: !!value, children: _jsxs(NotificationGrid, { className: `${liquorLicenceClassPrefix}record-display has-margin-top-6`, gridClassName: `${liquorLicenceClassPrefix}container`, children: [((_a = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _a === void 0 ? void 0 : _a.licenceName) && (_jsx(Grid, { size: { xs: 12 }, className: `${liquorLicenceClassPrefix}licenceName`, children: _jsx("h6", { className: `is-size-5 has-text-weight-semibold ${liquorLicenceClassPrefix}name`, children: (_b = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _b === void 0 ? void 0 : _b.licenceName }) })), _jsx(LicenceDetailGridItem, { label: "Licence Number", value: (_c = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _c === void 0 ? void 0 : _c.licenceNumber, classNameSuffix: "licenceNumber" }), _jsx(LicenceDetailGridItem, { label: "Licence Type", value: (_d = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _d === void 0 ? void 0 : _d.licenceTypeName, classNameSuffix: "licenceTypeName" }), _jsx(LicenceDetailGridItem, { label: "Licensee", value: (_e = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _e === void 0 ? void 0 : _e.licensee, classNameSuffix: "licensee" }), _jsx(LicenceDetailGridItem, { label: "Licensee Birth Date", value: (_f = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _f === void 0 ? void 0 : _f.licenseeBirthdate, classNameSuffix: "licenseeBirthdate" }), _jsx(LicenceDetailGridItem, { label: "Licencee ABN", value: (_g = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _g === void 0 ? void 0 : _g.licenceeABN, classNameSuffix: "licenceeABN" }), _jsx(LicenceDetailGridItem, { label: "Licencee ACN", value: (_h = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _h === void 0 ? void 0 : _h.licenceeACN, classNameSuffix: "licenceeACN" }), _jsx(LicenceDetailGridItem, { label: "Refused Date", value: (_j = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _j === void 0 ? void 0 : _j.refusedDate, classNameSuffix: "refusedDate" }), _jsx(LicenceDetailGridItem, { label: "Start Date", value: (_k = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _k === void 0 ? void 0 : _k.startDate, classNameSuffix: "startDate" }), _jsx(LicenceDetailGridItem, { label: "Expiry Date", value: (_l = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _l === void 0 ? void 0 : _l.expiryDate, classNameSuffix: "expiryDate" }), _jsx(LicenceDetailGridItem, { label: "Status", value: (_m = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _m === void 0 ? void 0 : _m.status, classNameSuffix: "status" }), _jsx(LicenceDetailGridItem, { label: "Address Type", value: (_o = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _o === void 0 ? void 0 : _o.addressType, classNameSuffix: "addressType" }), _jsx(LicenceDetailGridItem, { label: "Address", value: (_p = value === null || value === void 0 ? void 0 : value.licenceDetail) === null || _p === void 0 ? void 0 : _p.address, classNameSuffix: "address", fullWidth: true })] }) })] }));
|
|
94
76
|
}
|
|
95
77
|
export function LicenceDetailGridItem({ label, value, classNameSuffix, fullWidth, }) {
|
|
96
|
-
return (
|
|
78
|
+
return (_jsx(NotificationGridItem, { className: `${liquorLicenceClassPrefix}${classNameSuffix}`, fullWidth: fullWidth, value: value, label: label, labelClassName: `${liquorLicenceClassPrefix}detail-label`, valueClassName: `${liquorLicenceClassPrefix}detail-value` }));
|
|
97
79
|
}
|
|
98
80
|
export default React.memo(FormElementAPINSWLiquorLicence);
|
|
99
81
|
//# sourceMappingURL=FormElementAPINSWLiquorLicence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormElementAPINSWLiquorLicence.js","sourceRoot":"","sources":["../../src/form-elements/FormElementAPINSWLiquorLicence.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { FormTypes, APINSWTypes } from '@oneblink/types'\nimport { formService } from '@oneblink/apps'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport AutocompleteDropdown from '../components/renderer/AutocompleteDropdown'\nimport useIsMounted from '../hooks/useIsMounted'\nimport { Collapse, Grid } from '@mui/material'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport {\n NotificationGrid,\n NotificationGridItem,\n} from '../components/NotificationGrid'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n formId: number\n id: string\n element: FormTypes.APINSWLiquorLicenceElement\n value: APINSWTypes.LiquorLicenceDetails | undefined\n onChange: FormElementValueChangeHandler<APINSWTypes.LiquorLicenceDetails>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n autocompleteAttributes?: string\n} & IsDirtyProps\n\nconst liquorLicenceClassPrefix = 'ob-api-nsw-liquor-licence__'\nfunction FormElementAPINSWLiquorLicence({\n formId,\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n isDirty,\n setIsDirty,\n autocompleteAttributes,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const isMounted = useIsMounted()\n const [label, setLabel] = React.useState('')\n const [{ isLoading, error }, setState] = React.useState<{\n isLoading: boolean\n error: Error | null\n }>({\n isLoading: false,\n error: null,\n })\n\n const handleSearch = React.useCallback(\n async (searchText: string, abortSignal: AbortSignal) => {\n setState((current) => ({\n ...current,\n error: null,\n }))\n\n const results = await formService.searchAPINSWLiquorLicences(\n { formId, searchText },\n abortSignal,\n )\n\n return results.map((result, index) => ({\n value: result.licenceID || index.toString(),\n label:\n `${result.licenceNumber} | ${result.licenceName}`.trim() ||\n index.toString(),\n }))\n },\n [formId],\n )\n\n const fetchAndSelectSingleLicence = React.useCallback(\n async (newValue: string | undefined) => {\n console.log(`Selected: ${newValue}`)\n if (!newValue) {\n onChange(element, { value: undefined })\n return\n }\n setState((current) => ({\n ...current,\n isLoading: true,\n }))\n\n try {\n const result = await formService.getAPINSWLiquorLicence(\n formId,\n newValue,\n )\n if (result) {\n onChange(element, { value: result })\n }\n if (isMounted.current) {\n setState({\n isLoading: false,\n error: null,\n })\n }\n } catch (newError) {\n if (isMounted.current) {\n setState({\n isLoading: false,\n error: newError as Error,\n })\n }\n }\n },\n [element, formId, isMounted, onChange],\n )\n\n // Ensure the label is set if the value is set outside of this component\n React.useEffect(() => {\n if (value) {\n const newLabel =\n `${value?.licenceDetail?.licenceNumber} | ${value?.licenceDetail?.licenceName}`.trim()\n if (label !== newLabel) {\n setLabel(newLabel || '')\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value])\n\n return (\n <div className=\"cypress-api-nsw-liquor-licence-element\">\n <FormElementLabelContainer\n className=\"ob-api-nsw-liquor-licence ob-autocomplete\"\n id={id}\n element={element}\n required={element.required}\n >\n <AutocompleteDropdown\n id={id}\n label={label}\n disabled={element.readOnly || isLoading}\n placeholder={element.placeholderValue}\n required={element.required}\n value={value}\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n onChangeValue={fetchAndSelectSingleLicence}\n isLoading={isLoading}\n hasError={!!error}\n onChangeLabel={setLabel}\n searchDebounceMs={750}\n searchMinCharacters={2}\n onSearch={handleSearch}\n isDirty={isDirty}\n setIsDirty={setIsDirty}\n aria-describedby={ariaDescribedby}\n autoComplete={autocompleteAttributes}\n />\n </FormElementLabelContainer>\n\n {error && (\n <FormElementValidationMessage\n message={error.toString()}\n className=\"cypress-api-nsw-liquor-licence-error-message\"\n />\n )}\n <Collapse in={!!value}>\n <NotificationGrid\n className={`${liquorLicenceClassPrefix}record-display has-margin-top-6`}\n gridClassName={`${liquorLicenceClassPrefix}container`}\n >\n {value?.licenceDetail?.licenceName && (\n <Grid\n item\n xs={12}\n className={`${liquorLicenceClassPrefix}licenceName`}\n >\n <h6\n className={`is-size-5 has-text-weight-semibold ${liquorLicenceClassPrefix}name`}\n >\n {value?.licenceDetail?.licenceName}\n </h6>\n </Grid>\n )}\n <LicenceDetailGridItem\n label=\"Licence Number\"\n value={value?.licenceDetail?.licenceNumber}\n classNameSuffix=\"licenceNumber\"\n />\n <LicenceDetailGridItem\n label=\"Licence Type\"\n value={value?.licenceDetail?.licenceTypeName}\n classNameSuffix=\"licenceTypeName\"\n />\n <LicenceDetailGridItem\n label=\"Licensee\"\n value={value?.licenceDetail?.licensee}\n classNameSuffix=\"licensee\"\n />\n <LicenceDetailGridItem\n label=\"Licensee Birth Date\"\n value={value?.licenceDetail?.licenseeBirthdate}\n classNameSuffix=\"licenseeBirthdate\"\n />\n <LicenceDetailGridItem\n label=\"Licencee ABN\"\n value={value?.licenceDetail?.licenceeABN}\n classNameSuffix=\"licenceeABN\"\n />\n <LicenceDetailGridItem\n label=\"Licencee ACN\"\n value={value?.licenceDetail?.licenceeACN}\n classNameSuffix=\"licenceeACN\"\n />\n <LicenceDetailGridItem\n label=\"Refused Date\"\n value={value?.licenceDetail?.refusedDate}\n classNameSuffix=\"refusedDate\"\n />\n <LicenceDetailGridItem\n label=\"Start Date\"\n value={value?.licenceDetail?.startDate}\n classNameSuffix=\"startDate\"\n />\n <LicenceDetailGridItem\n label=\"Expiry Date\"\n value={value?.licenceDetail?.expiryDate}\n classNameSuffix=\"expiryDate\"\n />\n <LicenceDetailGridItem\n label=\"Status\"\n value={value?.licenceDetail?.status}\n classNameSuffix=\"status\"\n />\n <LicenceDetailGridItem\n label=\"Address Type\"\n value={value?.licenceDetail?.addressType}\n classNameSuffix=\"addressType\"\n />\n <LicenceDetailGridItem\n label=\"Address\"\n value={value?.licenceDetail?.address}\n classNameSuffix=\"address\"\n fullWidth\n />\n </NotificationGrid>\n </Collapse>\n </div>\n )\n}\n\nexport function LicenceDetailGridItem({\n label,\n value,\n classNameSuffix,\n fullWidth,\n}: {\n label: string\n value: string | undefined\n classNameSuffix: string\n fullWidth?: boolean\n}) {\n return (\n <NotificationGridItem\n className={`${liquorLicenceClassPrefix}${classNameSuffix}`}\n fullWidth={fullWidth}\n value={value}\n label={label}\n labelClassName={`${liquorLicenceClassPrefix}detail-label`}\n valueClassName={`${liquorLicenceClassPrefix}detail-value`}\n />\n )\n}\n\nexport default React.memo(FormElementAPINSWLiquorLicence)\n"]}
|
|
1
|
+
{"version":3,"file":"FormElementAPINSWLiquorLicence.js","sourceRoot":"","sources":["../../src/form-elements/FormElementAPINSWLiquorLicence.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport { FormTypes, APINSWTypes } from '@oneblink/types'\nimport { formService } from '@oneblink/apps'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport AutocompleteDropdown from '../components/renderer/AutocompleteDropdown'\nimport useIsMounted from '../hooks/useIsMounted'\nimport { Collapse, Grid } from '@mui/material'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport {\n NotificationGrid,\n NotificationGridItem,\n} from '../components/NotificationGrid'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\n\ntype Props = {\n formId: number\n id: string\n element: FormTypes.APINSWLiquorLicenceElement\n value: APINSWTypes.LiquorLicenceDetails | undefined\n onChange: FormElementValueChangeHandler<APINSWTypes.LiquorLicenceDetails>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n autocompleteAttributes?: string\n} & IsDirtyProps\n\nconst liquorLicenceClassPrefix = 'ob-api-nsw-liquor-licence__'\nfunction FormElementAPINSWLiquorLicence({\n formId,\n id,\n element,\n value,\n onChange,\n validationMessage,\n displayValidationMessage,\n isDirty,\n setIsDirty,\n autocompleteAttributes,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const isMounted = useIsMounted()\n const [label, setLabel] = React.useState('')\n const [{ isLoading, error }, setState] = React.useState<{\n isLoading: boolean\n error: Error | null\n }>({\n isLoading: false,\n error: null,\n })\n\n const handleSearch = React.useCallback(\n async (searchText: string, abortSignal: AbortSignal) => {\n setState((current) => ({\n ...current,\n error: null,\n }))\n\n const results = await formService.searchAPINSWLiquorLicences(\n { formId, searchText },\n abortSignal,\n )\n\n return results.map((result, index) => ({\n value: result.licenceID || index.toString(),\n label:\n `${result.licenceNumber} | ${result.licenceName}`.trim() ||\n index.toString(),\n }))\n },\n [formId],\n )\n\n const fetchAndSelectSingleLicence = React.useCallback(\n async (newValue: string | undefined) => {\n console.log(`Selected: ${newValue}`)\n if (!newValue) {\n onChange(element, { value: undefined })\n return\n }\n setState((current) => ({\n ...current,\n isLoading: true,\n }))\n\n try {\n const result = await formService.getAPINSWLiquorLicence(\n formId,\n newValue,\n )\n if (result) {\n onChange(element, { value: result })\n }\n if (isMounted.current) {\n setState({\n isLoading: false,\n error: null,\n })\n }\n } catch (newError) {\n if (isMounted.current) {\n setState({\n isLoading: false,\n error: newError as Error,\n })\n }\n }\n },\n [element, formId, isMounted, onChange],\n )\n\n // Ensure the label is set if the value is set outside of this component\n React.useEffect(() => {\n if (value) {\n const newLabel =\n `${value?.licenceDetail?.licenceNumber} | ${value?.licenceDetail?.licenceName}`.trim()\n if (label !== newLabel) {\n setLabel(newLabel || '')\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value])\n\n return (\n <div className=\"cypress-api-nsw-liquor-licence-element\">\n <FormElementLabelContainer\n className=\"ob-api-nsw-liquor-licence ob-autocomplete\"\n id={id}\n element={element}\n required={element.required}\n >\n <AutocompleteDropdown\n id={id}\n label={label}\n disabled={element.readOnly || isLoading}\n placeholder={element.placeholderValue}\n required={element.required}\n value={value}\n validationMessage={validationMessage}\n displayValidationMessage={displayValidationMessage}\n onChangeValue={fetchAndSelectSingleLicence}\n isLoading={isLoading}\n hasError={!!error}\n onChangeLabel={setLabel}\n searchDebounceMs={750}\n searchMinCharacters={2}\n onSearch={handleSearch}\n isDirty={isDirty}\n setIsDirty={setIsDirty}\n aria-describedby={ariaDescribedby}\n autoComplete={autocompleteAttributes}\n />\n </FormElementLabelContainer>\n\n {error && (\n <FormElementValidationMessage\n message={error.toString()}\n className=\"cypress-api-nsw-liquor-licence-error-message\"\n />\n )}\n <Collapse in={!!value}>\n <NotificationGrid\n className={`${liquorLicenceClassPrefix}record-display has-margin-top-6`}\n gridClassName={`${liquorLicenceClassPrefix}container`}\n >\n {value?.licenceDetail?.licenceName && (\n <Grid\n size={{ xs: 12 }}\n className={`${liquorLicenceClassPrefix}licenceName`}\n >\n <h6\n className={`is-size-5 has-text-weight-semibold ${liquorLicenceClassPrefix}name`}\n >\n {value?.licenceDetail?.licenceName}\n </h6>\n </Grid>\n )}\n <LicenceDetailGridItem\n label=\"Licence Number\"\n value={value?.licenceDetail?.licenceNumber}\n classNameSuffix=\"licenceNumber\"\n />\n <LicenceDetailGridItem\n label=\"Licence Type\"\n value={value?.licenceDetail?.licenceTypeName}\n classNameSuffix=\"licenceTypeName\"\n />\n <LicenceDetailGridItem\n label=\"Licensee\"\n value={value?.licenceDetail?.licensee}\n classNameSuffix=\"licensee\"\n />\n <LicenceDetailGridItem\n label=\"Licensee Birth Date\"\n value={value?.licenceDetail?.licenseeBirthdate}\n classNameSuffix=\"licenseeBirthdate\"\n />\n <LicenceDetailGridItem\n label=\"Licencee ABN\"\n value={value?.licenceDetail?.licenceeABN}\n classNameSuffix=\"licenceeABN\"\n />\n <LicenceDetailGridItem\n label=\"Licencee ACN\"\n value={value?.licenceDetail?.licenceeACN}\n classNameSuffix=\"licenceeACN\"\n />\n <LicenceDetailGridItem\n label=\"Refused Date\"\n value={value?.licenceDetail?.refusedDate}\n classNameSuffix=\"refusedDate\"\n />\n <LicenceDetailGridItem\n label=\"Start Date\"\n value={value?.licenceDetail?.startDate}\n classNameSuffix=\"startDate\"\n />\n <LicenceDetailGridItem\n label=\"Expiry Date\"\n value={value?.licenceDetail?.expiryDate}\n classNameSuffix=\"expiryDate\"\n />\n <LicenceDetailGridItem\n label=\"Status\"\n value={value?.licenceDetail?.status}\n classNameSuffix=\"status\"\n />\n <LicenceDetailGridItem\n label=\"Address Type\"\n value={value?.licenceDetail?.addressType}\n classNameSuffix=\"addressType\"\n />\n <LicenceDetailGridItem\n label=\"Address\"\n value={value?.licenceDetail?.address}\n classNameSuffix=\"address\"\n fullWidth\n />\n </NotificationGrid>\n </Collapse>\n </div>\n )\n}\n\nexport function LicenceDetailGridItem({\n label,\n value,\n classNameSuffix,\n fullWidth,\n}: {\n label: string\n value: string | undefined\n classNameSuffix: string\n fullWidth?: boolean\n}) {\n return (\n <NotificationGridItem\n className={`${liquorLicenceClassPrefix}${classNameSuffix}`}\n fullWidth={fullWidth}\n value={value}\n label={label}\n labelClassName={`${liquorLicenceClassPrefix}detail-label`}\n valueClassName={`${liquorLicenceClassPrefix}detail-value`}\n />\n )\n}\n\nexport default React.memo(FormElementAPINSWLiquorLicence)\n"]}
|
|
@@ -13,6 +13,6 @@ type Props = {
|
|
|
13
13
|
} & IsDirtyProps;
|
|
14
14
|
export declare function stringifyArcgisInput(value: ArcGISWebMapElementValue | undefined): string;
|
|
15
15
|
export declare function generateArcGISAutomatedSnapshotFileName(element: FormTypes.ArcGISWebMapElement): string;
|
|
16
|
-
declare function FormElementArcGISWebMap({ id, element, value, onChange, displayValidationMessage, isDirty, validationMessage, }: Props):
|
|
16
|
+
declare function FormElementArcGISWebMap({ id, element, value, onChange, displayValidationMessage, isDirty, validationMessage, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
17
17
|
declare const _default: React.MemoExoticComponent<typeof FormElementArcGISWebMap>;
|
|
18
18
|
export default _default;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
2
|
import React, { Suspense, useCallback, useMemo, useRef, useState } from 'react';
|
|
2
3
|
import OnLoading from '../components/renderer/OnLoading';
|
|
3
4
|
import useIsOffline from '../hooks/useIsOffline';
|
|
@@ -49,7 +50,7 @@ function FormElementArcGISWebMap({ id, element, value, onChange, displayValidati
|
|
|
49
50
|
// to trigger the validation message(s) for the other means of input.
|
|
50
51
|
const fakeSetIsDirty = useCallback(() => undefined, []);
|
|
51
52
|
const { removeAttachment, changeAttachment } = useAttachments(filesElement, handleChangeAttachments, fakeSetIsDirty);
|
|
52
|
-
const takeScreenShotRef = useRef();
|
|
53
|
+
const takeScreenShotRef = useRef(null);
|
|
53
54
|
const takeSnapshot = useCallback(async (fileName, view) => {
|
|
54
55
|
if (!takeScreenShotRef.current) {
|
|
55
56
|
return;
|
|
@@ -111,41 +112,25 @@ function FormElementArcGISWebMap({ id, element, value, onChange, displayValidati
|
|
|
111
112
|
}
|
|
112
113
|
setIsTakingAutoSnapshots(false);
|
|
113
114
|
}, [automatedSnapshotFileName, element, onChange, takeSnapshot]);
|
|
114
|
-
return (
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
'is-loading': isTakingAutoSnapshots,
|
|
134
|
-
}), onClick: takeAutoSnapshots, disabled: element.readOnly ||
|
|
135
|
-
isTakingAutoSnapshots ||
|
|
136
|
-
((_g = value === null || value === void 0 ? void 0 : value.snapshotImages) === null || _g === void 0 ? void 0 : _g.some((snapshotImage) => snapshotImage.fileName === automatedSnapshotFileName)) },
|
|
137
|
-
React.createElement(CustomisableButtonInner, { label: ((_h = element.autoSnapshotButton) === null || _h === void 0 ? void 0 : _h.label) ||
|
|
138
|
-
defaultAutoSnapshotButtonLabel, icon: (_j = element.autoSnapshotButton) === null || _j === void 0 ? void 0 : _j.icon })))))),
|
|
139
|
-
!!((_k = value === null || value === void 0 ? void 0 : value.snapshotImages) === null || _k === void 0 ? void 0 : _k.length) && (React.createElement("div", { className: "control cypress-files-control has-margin-top-9" },
|
|
140
|
-
React.createElement("div", { className: "columns is-multiline ob-columns-container" }, value.snapshotImages.map((snapshotImage, index, snapshotImages) => {
|
|
141
|
-
const attachment = snapshotImage;
|
|
142
|
-
return (React.createElement(FormElementFile, { key: attachment.type ? attachment._id : attachment.id, element: filesElement, onRemove: snapshotImage.fileName !== automatedSnapshotFileName
|
|
143
|
-
? removeAttachment
|
|
144
|
-
: undefined, file: attachment, onChange: changeAttachment, disableUpload: !!element.maxManualSnapshots &&
|
|
145
|
-
snapshotImages.filter((snapshotImage) => snapshotImage.fileName !==
|
|
146
|
-
automatedSnapshotFileName).length > element.maxManualSnapshots, index: index }));
|
|
147
|
-
})))),
|
|
148
|
-
isDisplayingValidationMessage && (React.createElement(FormElementValidationMessage, { message: validationMessage })))));
|
|
115
|
+
return (_jsx("div", { className: "cypress-arcgis-web-map", children: _jsxs(FormElementLabelContainer, { className: "ob-arcgis-web-map", id: id, element: element, required: element.required, children: [isOffline ? (_jsx("figure", { className: "ob-figure", children: _jsx("div", { className: "figure-content has-text-centered", children: _jsx("h4", { className: "title is-4", role: "alert", children: "This Web Map is not available as you are currently offline" }) }) })) : (_jsx("figure", { className: "ob-figure", children: _jsx(Suspense, { fallback: _jsx("div", { className: "arcgis-web-map figure-content-absolute-center", children: _jsx(OnLoading, { small: true }) }), children: _jsx(ArcGISWebMap, { element: element, id: id, "aria-describedby": ariaDescribedby, value: value, onChange: onChange, takeScreenShotRef: takeScreenShotRef, automatedSnapshotFileName: automatedSnapshotFileName }) }) })), (!!element.manualSnapshotsEnabled ||
|
|
116
|
+
!!((_a = element.autoSnapshotViews) === null || _a === void 0 ? void 0 : _a.length)) && (_jsx("div", { children: _jsxs("div", { className: "buttons ob-buttons ob-arcgis-web-map__buttons", children: [!!element.manualSnapshotsEnabled && (_jsx("button", { type: "button", className: clsx('is-primary button ob-button ob-button__capture-snapshot ob-arcgis-web-map__button cypress-arcgis-web-map-capture-snapshot-button', {
|
|
117
|
+
'is-loading': isTakingManualSnapshot,
|
|
118
|
+
}), onClick: takeManualSnapshot, disabled: element.readOnly ||
|
|
119
|
+
isTakingManualSnapshot ||
|
|
120
|
+
(!!element.maxManualSnapshots &&
|
|
121
|
+
(((_c = (_b = value === null || value === void 0 ? void 0 : value.snapshotImages) === null || _b === void 0 ? void 0 : _b.filter((snapshotImage) => snapshotImage.fileName !== automatedSnapshotFileName)) === null || _c === void 0 ? void 0 : _c.length) || 0) >= element.maxManualSnapshots), children: _jsx(CustomisableButtonInner, { label: ((_d = element.manualSnapshotButton) === null || _d === void 0 ? void 0 : _d.label) || 'Capture Image', icon: (_e = element.manualSnapshotButton) === null || _e === void 0 ? void 0 : _e.icon }) })), !!((_f = element.autoSnapshotViews) === null || _f === void 0 ? void 0 : _f.length) && (_jsx("button", { type: "button", className: clsx('is-primary button ob-button ob-button__finish-drawing ob-arcgis-web-map__button cypress-arcgis-web-map-finish-drawing-button', {
|
|
122
|
+
'is-loading': isTakingAutoSnapshots,
|
|
123
|
+
}), onClick: takeAutoSnapshots, disabled: element.readOnly ||
|
|
124
|
+
isTakingAutoSnapshots ||
|
|
125
|
+
((_g = value === null || value === void 0 ? void 0 : value.snapshotImages) === null || _g === void 0 ? void 0 : _g.some((snapshotImage) => snapshotImage.fileName === automatedSnapshotFileName)), children: _jsx(CustomisableButtonInner, { label: ((_h = element.autoSnapshotButton) === null || _h === void 0 ? void 0 : _h.label) ||
|
|
126
|
+
defaultAutoSnapshotButtonLabel, icon: (_j = element.autoSnapshotButton) === null || _j === void 0 ? void 0 : _j.icon }) }))] }) })), !!((_k = value === null || value === void 0 ? void 0 : value.snapshotImages) === null || _k === void 0 ? void 0 : _k.length) && (_jsx("div", { className: "control cypress-files-control has-margin-top-9", children: _jsx("div", { className: "columns is-multiline ob-columns-container", children: value.snapshotImages.map((snapshotImage, index, snapshotImages) => {
|
|
127
|
+
const attachment = snapshotImage;
|
|
128
|
+
return (_jsx(FormElementFile, { element: filesElement, onRemove: snapshotImage.fileName !== automatedSnapshotFileName
|
|
129
|
+
? removeAttachment
|
|
130
|
+
: undefined, file: attachment, onChange: changeAttachment, disableUpload: !!element.maxManualSnapshots &&
|
|
131
|
+
snapshotImages.filter((snapshotImage) => snapshotImage.fileName !==
|
|
132
|
+
automatedSnapshotFileName).length > element.maxManualSnapshots, index: index }, attachment.type ? attachment._id : attachment.id));
|
|
133
|
+
}) }) })), isDisplayingValidationMessage && (_jsx(FormElementValidationMessage, { message: validationMessage }))] }) }));
|
|
149
134
|
}
|
|
150
135
|
export default React.memo(FormElementArcGISWebMap);
|
|
151
136
|
//# sourceMappingURL=FormElementArcGISWebMap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormElementArcGISWebMap.js","sourceRoot":"","sources":["../../src/form-elements/FormElementArcGISWebMap.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Suspense, useCallback, useMemo, useRef, useState } from 'react'\nimport { ArcGISTypes, FormTypes, SubmissionTypes } from '@oneblink/types'\nimport OnLoading from '../components/renderer/OnLoading'\nimport useIsOffline from '../hooks/useIsOffline'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport { ArcGISWebMapElementValue } from '@oneblink/types/typescript/arcgis'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport { LookupNotificationContext } from '../hooks/useLookupNotification'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\nimport { urlToBlobAsync } from '../services/blob-utils'\nimport {\n generateErrorAttachment,\n prepareNewAttachment,\n} from '../services/attachments'\nimport clsx from 'clsx'\nimport { attachmentsService } from '@oneblink/apps'\nimport FormElementFile from './FormElementFile'\nimport useAttachments from '../hooks/attachments/useAttachments'\nimport CustomisableButtonInner from '../components/renderer/CustomisableButtonInner'\n\nconst ArcGISWebMap = React.lazy(() => import('../components/ArcGISWebMap'))\nexport const defaultAutoSnapshotButtonLabel = 'Finish Drawing'\n\ntype Props = {\n id: string\n element: FormTypes.ArcGISWebMapElement\n value: ArcGISWebMapElementValue | undefined\n onChange: FormElementValueChangeHandler<ArcGISWebMapElementValue>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n} & IsDirtyProps\n\nexport function stringifyArcgisInput(\n value: ArcGISWebMapElementValue | undefined,\n) {\n return JSON.stringify(value?.userInput)\n}\n\nexport function generateArcGISAutomatedSnapshotFileName(\n element: FormTypes.ArcGISWebMapElement,\n) {\n return `${element.name}_automated.png`\n}\n\nfunction FormElementArcGISWebMap({\n id,\n element,\n value,\n onChange,\n displayValidationMessage,\n isDirty,\n validationMessage,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const isOffline = useIsOffline()\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp\n\n const filesElement = useMemo<FormTypes.FilesElement>(() => {\n return {\n ...element,\n type: 'files',\n restrictFileTypes: false,\n }\n }, [element])\n\n const handleChangeAttachments = useCallback<\n FormElementValueChangeHandler<attachmentsService.Attachment[]>\n >(\n (e, data) => {\n onChange(element, {\n value: (existingValue) => ({\n ...existingValue,\n snapshotImages: (!data.value\n ? undefined\n : Array.isArray(data.value)\n ? data.value\n : data.value(\n existingValue?.snapshotImages,\n )) as SubmissionTypes.FormSubmissionAttachment[],\n }),\n })\n },\n [element, onChange],\n )\n\n // An empty function to set is dirty because there are multiple ways\n // to provide input into this component and we don't want any of them\n // to trigger the validation message(s) for the other means of input.\n const fakeSetIsDirty = useCallback(() => undefined, [])\n const { removeAttachment, changeAttachment } = useAttachments(\n filesElement,\n handleChangeAttachments,\n fakeSetIsDirty,\n )\n\n const takeScreenShotRef = useRef<\n (view?: ArcGISTypes.ArcGISWebMapElementValue['view']) => Promise<{\n dataUrl: string\n }>\n >()\n\n const takeSnapshot = useCallback(\n async (\n fileName: string,\n view?: ArcGISTypes.ArcGISWebMapElementValue['view'],\n ) => {\n if (!takeScreenShotRef.current) {\n return\n }\n const takeScreenShot = takeScreenShotRef.current\n\n try {\n const screenshot = await takeScreenShot(view)\n const blob = await urlToBlobAsync(screenshot.dataUrl)\n const snapshotImage: unknown = prepareNewAttachment(\n blob,\n fileName,\n element,\n )\n onChange(element, {\n value: (existingValue) => ({\n ...existingValue,\n snapshotImages: [\n ...(existingValue?.snapshotImages || []),\n snapshotImage as SubmissionTypes.FormSubmissionAttachment,\n ],\n }),\n })\n } catch (error) {\n console.warn('Error taking manual screenshot', error)\n const snapshotImage: unknown = generateErrorAttachment(\n undefined,\n fileName,\n element,\n (error as Error).message,\n )\n onChange(element, {\n value: (existingValue) => ({\n ...existingValue,\n snapshotImages: [\n ...(existingValue?.snapshotImages || []),\n snapshotImage as SubmissionTypes.FormSubmissionAttachment,\n ],\n }),\n })\n }\n },\n [element, onChange],\n )\n\n const [isTakingManualSnapshot, setIsTakingManualSnapshot] = useState(false)\n const takeManualSnapshot = useCallback(async () => {\n setIsTakingManualSnapshot(true)\n await takeSnapshot(`${element.name}_manual.png`)\n setIsTakingManualSnapshot(false)\n }, [element.name, takeSnapshot])\n\n const automatedSnapshotFileName = useMemo(() => {\n return generateArcGISAutomatedSnapshotFileName(element)\n }, [element])\n const [isTakingAutoSnapshots, setIsTakingAutoSnapshots] = useState(false)\n const takeAutoSnapshots = useCallback(async () => {\n setIsTakingAutoSnapshots(true)\n onChange(element, {\n value: (existingValue) => ({\n ...existingValue,\n snapshotImages: existingValue?.snapshotImages?.filter(\n (snapshotImage) => {\n return snapshotImage.fileName !== automatedSnapshotFileName\n },\n ),\n }),\n })\n for (const autoSnapshotView of element.autoSnapshotViews || []) {\n await takeSnapshot(automatedSnapshotFileName, autoSnapshotView)\n }\n setIsTakingAutoSnapshots(false)\n }, [automatedSnapshotFileName, element, onChange, takeSnapshot])\n\n return (\n <div className=\"cypress-arcgis-web-map\">\n <FormElementLabelContainer\n className=\"ob-arcgis-web-map\"\n id={id}\n element={element}\n required={element.required}\n >\n {isOffline ? (\n <figure className=\"ob-figure\">\n <div className=\"figure-content has-text-centered\">\n <h4 className=\"title is-4\" role=\"alert\">\n This Web Map is not available as you are currently offline\n </h4>\n </div>\n </figure>\n ) : (\n <figure className=\"ob-figure\">\n <Suspense\n fallback={\n <div className=\"arcgis-web-map figure-content-absolute-center\">\n <OnLoading small />\n </div>\n }\n >\n <ArcGISWebMap\n element={element}\n id={id}\n aria-describedby={ariaDescribedby}\n value={value}\n onChange={onChange}\n takeScreenShotRef={takeScreenShotRef}\n automatedSnapshotFileName={automatedSnapshotFileName}\n />\n </Suspense>\n </figure>\n )}\n\n {(!!element.manualSnapshotsEnabled ||\n !!element.autoSnapshotViews?.length) && (\n <div>\n <div className=\"buttons ob-buttons ob-arcgis-web-map__buttons\">\n {!!element.manualSnapshotsEnabled && (\n <button\n type=\"button\"\n className={clsx(\n 'is-primary button ob-button ob-button__capture-snapshot ob-arcgis-web-map__button cypress-arcgis-web-map-capture-snapshot-button',\n {\n 'is-loading': isTakingManualSnapshot,\n },\n )}\n onClick={takeManualSnapshot}\n disabled={\n element.readOnly ||\n isTakingManualSnapshot ||\n (!!element.maxManualSnapshots &&\n (value?.snapshotImages?.filter(\n (snapshotImage) =>\n snapshotImage.fileName !== automatedSnapshotFileName,\n )?.length || 0) >= element.maxManualSnapshots)\n }\n >\n <CustomisableButtonInner\n label={\n element.manualSnapshotButton?.label || 'Capture Image'\n }\n icon={element.manualSnapshotButton?.icon}\n />\n </button>\n )}\n\n {!!element.autoSnapshotViews?.length && (\n <button\n type=\"button\"\n className={clsx(\n 'is-primary button ob-button ob-button__finish-drawing ob-arcgis-web-map__button cypress-arcgis-web-map-finish-drawing-button',\n {\n 'is-loading': isTakingAutoSnapshots,\n },\n )}\n onClick={takeAutoSnapshots}\n disabled={\n element.readOnly ||\n isTakingAutoSnapshots ||\n value?.snapshotImages?.some(\n (snapshotImage) =>\n snapshotImage.fileName === automatedSnapshotFileName,\n )\n }\n >\n <CustomisableButtonInner\n label={\n element.autoSnapshotButton?.label ||\n defaultAutoSnapshotButtonLabel\n }\n icon={element.autoSnapshotButton?.icon}\n />\n </button>\n )}\n </div>\n </div>\n )}\n\n {!!value?.snapshotImages?.length && (\n <div className=\"control cypress-files-control has-margin-top-9\">\n <div className=\"columns is-multiline ob-columns-container\">\n {value.snapshotImages.map(\n (snapshotImage, index, snapshotImages) => {\n const attachment =\n snapshotImage as unknown as attachmentsService.Attachment\n return (\n <FormElementFile\n key={attachment.type ? attachment._id : attachment.id}\n element={filesElement}\n onRemove={\n snapshotImage.fileName !== automatedSnapshotFileName\n ? removeAttachment\n : undefined\n }\n file={attachment}\n onChange={changeAttachment}\n disableUpload={\n !!element.maxManualSnapshots &&\n snapshotImages.filter(\n (snapshotImage) =>\n snapshotImage.fileName !==\n automatedSnapshotFileName,\n ).length > element.maxManualSnapshots\n }\n index={index}\n />\n )\n },\n )}\n </div>\n </div>\n )}\n\n {isDisplayingValidationMessage && (\n <FormElementValidationMessage message={validationMessage} />\n )}\n </FormElementLabelContainer>\n </div>\n )\n}\n\nexport default React.memo(FormElementArcGISWebMap)\n"]}
|
|
1
|
+
{"version":3,"file":"FormElementArcGISWebMap.js","sourceRoot":"","sources":["../../src/form-elements/FormElementArcGISWebMap.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Suspense, useCallback, useMemo, useRef, useState } from 'react'\nimport { ArcGISTypes, FormTypes, SubmissionTypes } from '@oneblink/types'\nimport OnLoading from '../components/renderer/OnLoading'\nimport useIsOffline from '../hooks/useIsOffline'\nimport FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'\nimport useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'\nimport { ArcGISWebMapElementValue } from '@oneblink/types/typescript/arcgis'\nimport { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'\nimport { LookupNotificationContext } from '../hooks/useLookupNotification'\nimport FormElementValidationMessage from '../components/renderer/FormElementValidationMessage'\nimport { urlToBlobAsync } from '../services/blob-utils'\nimport {\n generateErrorAttachment,\n prepareNewAttachment,\n} from '../services/attachments'\nimport clsx from 'clsx'\nimport { attachmentsService } from '@oneblink/apps'\nimport FormElementFile from './FormElementFile'\nimport useAttachments from '../hooks/attachments/useAttachments'\nimport CustomisableButtonInner from '../components/renderer/CustomisableButtonInner'\n\nconst ArcGISWebMap = React.lazy(() => import('../components/ArcGISWebMap'))\nexport const defaultAutoSnapshotButtonLabel = 'Finish Drawing'\n\ntype Props = {\n id: string\n element: FormTypes.ArcGISWebMapElement\n value: ArcGISWebMapElementValue | undefined\n onChange: FormElementValueChangeHandler<ArcGISWebMapElementValue>\n displayValidationMessage: boolean\n validationMessage: string | undefined\n} & IsDirtyProps\n\nexport function stringifyArcgisInput(\n value: ArcGISWebMapElementValue | undefined,\n) {\n return JSON.stringify(value?.userInput)\n}\n\nexport function generateArcGISAutomatedSnapshotFileName(\n element: FormTypes.ArcGISWebMapElement,\n) {\n return `${element.name}_automated.png`\n}\n\nfunction FormElementArcGISWebMap({\n id,\n element,\n value,\n onChange,\n displayValidationMessage,\n isDirty,\n validationMessage,\n}: Props) {\n const ariaDescribedby = useElementAriaDescribedby(id, element)\n const isOffline = useIsOffline()\n const { isLookingUp } = React.useContext(LookupNotificationContext)\n const isDisplayingValidationMessage =\n (isDirty || displayValidationMessage) && !!validationMessage && !isLookingUp\n\n const filesElement = useMemo<FormTypes.FilesElement>(() => {\n return {\n ...element,\n type: 'files',\n restrictFileTypes: false,\n }\n }, [element])\n\n const handleChangeAttachments = useCallback<\n FormElementValueChangeHandler<attachmentsService.Attachment[]>\n >(\n (e, data) => {\n onChange(element, {\n value: (existingValue) => ({\n ...existingValue,\n snapshotImages: (!data.value\n ? undefined\n : Array.isArray(data.value)\n ? data.value\n : data.value(\n existingValue?.snapshotImages,\n )) as SubmissionTypes.FormSubmissionAttachment[],\n }),\n })\n },\n [element, onChange],\n )\n\n // An empty function to set is dirty because there are multiple ways\n // to provide input into this component and we don't want any of them\n // to trigger the validation message(s) for the other means of input.\n const fakeSetIsDirty = useCallback(() => undefined, [])\n const { removeAttachment, changeAttachment } = useAttachments(\n filesElement,\n handleChangeAttachments,\n fakeSetIsDirty,\n )\n\n const takeScreenShotRef = useRef<\n (view?: ArcGISTypes.ArcGISWebMapElementValue['view']) => Promise<{\n dataUrl: string\n }>\n >(null)\n\n const takeSnapshot = useCallback(\n async (\n fileName: string,\n view?: ArcGISTypes.ArcGISWebMapElementValue['view'],\n ) => {\n if (!takeScreenShotRef.current) {\n return\n }\n const takeScreenShot = takeScreenShotRef.current\n\n try {\n const screenshot = await takeScreenShot(view)\n const blob = await urlToBlobAsync(screenshot.dataUrl)\n const snapshotImage: unknown = prepareNewAttachment(\n blob,\n fileName,\n element,\n )\n onChange(element, {\n value: (existingValue) => ({\n ...existingValue,\n snapshotImages: [\n ...(existingValue?.snapshotImages || []),\n snapshotImage as SubmissionTypes.FormSubmissionAttachment,\n ],\n }),\n })\n } catch (error) {\n console.warn('Error taking manual screenshot', error)\n const snapshotImage: unknown = generateErrorAttachment(\n undefined,\n fileName,\n element,\n (error as Error).message,\n )\n onChange(element, {\n value: (existingValue) => ({\n ...existingValue,\n snapshotImages: [\n ...(existingValue?.snapshotImages || []),\n snapshotImage as SubmissionTypes.FormSubmissionAttachment,\n ],\n }),\n })\n }\n },\n [element, onChange],\n )\n\n const [isTakingManualSnapshot, setIsTakingManualSnapshot] = useState(false)\n const takeManualSnapshot = useCallback(async () => {\n setIsTakingManualSnapshot(true)\n await takeSnapshot(`${element.name}_manual.png`)\n setIsTakingManualSnapshot(false)\n }, [element.name, takeSnapshot])\n\n const automatedSnapshotFileName = useMemo(() => {\n return generateArcGISAutomatedSnapshotFileName(element)\n }, [element])\n const [isTakingAutoSnapshots, setIsTakingAutoSnapshots] = useState(false)\n const takeAutoSnapshots = useCallback(async () => {\n setIsTakingAutoSnapshots(true)\n onChange(element, {\n value: (existingValue) => ({\n ...existingValue,\n snapshotImages: existingValue?.snapshotImages?.filter(\n (snapshotImage) => {\n return snapshotImage.fileName !== automatedSnapshotFileName\n },\n ),\n }),\n })\n for (const autoSnapshotView of element.autoSnapshotViews || []) {\n await takeSnapshot(automatedSnapshotFileName, autoSnapshotView)\n }\n setIsTakingAutoSnapshots(false)\n }, [automatedSnapshotFileName, element, onChange, takeSnapshot])\n\n return (\n <div className=\"cypress-arcgis-web-map\">\n <FormElementLabelContainer\n className=\"ob-arcgis-web-map\"\n id={id}\n element={element}\n required={element.required}\n >\n {isOffline ? (\n <figure className=\"ob-figure\">\n <div className=\"figure-content has-text-centered\">\n <h4 className=\"title is-4\" role=\"alert\">\n This Web Map is not available as you are currently offline\n </h4>\n </div>\n </figure>\n ) : (\n <figure className=\"ob-figure\">\n <Suspense\n fallback={\n <div className=\"arcgis-web-map figure-content-absolute-center\">\n <OnLoading small />\n </div>\n }\n >\n <ArcGISWebMap\n element={element}\n id={id}\n aria-describedby={ariaDescribedby}\n value={value}\n onChange={onChange}\n takeScreenShotRef={takeScreenShotRef}\n automatedSnapshotFileName={automatedSnapshotFileName}\n />\n </Suspense>\n </figure>\n )}\n\n {(!!element.manualSnapshotsEnabled ||\n !!element.autoSnapshotViews?.length) && (\n <div>\n <div className=\"buttons ob-buttons ob-arcgis-web-map__buttons\">\n {!!element.manualSnapshotsEnabled && (\n <button\n type=\"button\"\n className={clsx(\n 'is-primary button ob-button ob-button__capture-snapshot ob-arcgis-web-map__button cypress-arcgis-web-map-capture-snapshot-button',\n {\n 'is-loading': isTakingManualSnapshot,\n },\n )}\n onClick={takeManualSnapshot}\n disabled={\n element.readOnly ||\n isTakingManualSnapshot ||\n (!!element.maxManualSnapshots &&\n (value?.snapshotImages?.filter(\n (snapshotImage) =>\n snapshotImage.fileName !== automatedSnapshotFileName,\n )?.length || 0) >= element.maxManualSnapshots)\n }\n >\n <CustomisableButtonInner\n label={\n element.manualSnapshotButton?.label || 'Capture Image'\n }\n icon={element.manualSnapshotButton?.icon}\n />\n </button>\n )}\n\n {!!element.autoSnapshotViews?.length && (\n <button\n type=\"button\"\n className={clsx(\n 'is-primary button ob-button ob-button__finish-drawing ob-arcgis-web-map__button cypress-arcgis-web-map-finish-drawing-button',\n {\n 'is-loading': isTakingAutoSnapshots,\n },\n )}\n onClick={takeAutoSnapshots}\n disabled={\n element.readOnly ||\n isTakingAutoSnapshots ||\n value?.snapshotImages?.some(\n (snapshotImage) =>\n snapshotImage.fileName === automatedSnapshotFileName,\n )\n }\n >\n <CustomisableButtonInner\n label={\n element.autoSnapshotButton?.label ||\n defaultAutoSnapshotButtonLabel\n }\n icon={element.autoSnapshotButton?.icon}\n />\n </button>\n )}\n </div>\n </div>\n )}\n\n {!!value?.snapshotImages?.length && (\n <div className=\"control cypress-files-control has-margin-top-9\">\n <div className=\"columns is-multiline ob-columns-container\">\n {value.snapshotImages.map(\n (snapshotImage, index, snapshotImages) => {\n const attachment =\n snapshotImage as unknown as attachmentsService.Attachment\n return (\n <FormElementFile\n key={attachment.type ? attachment._id : attachment.id}\n element={filesElement}\n onRemove={\n snapshotImage.fileName !== automatedSnapshotFileName\n ? removeAttachment\n : undefined\n }\n file={attachment}\n onChange={changeAttachment}\n disableUpload={\n !!element.maxManualSnapshots &&\n snapshotImages.filter(\n (snapshotImage) =>\n snapshotImage.fileName !==\n automatedSnapshotFileName,\n ).length > element.maxManualSnapshots\n }\n index={index}\n />\n )\n },\n )}\n </div>\n </div>\n )}\n\n {isDisplayingValidationMessage && (\n <FormElementValidationMessage message={validationMessage} />\n )}\n </FormElementLabelContainer>\n </div>\n )\n}\n\nexport default React.memo(FormElementArcGISWebMap)\n"]}
|
|
@@ -16,6 +16,6 @@ type _AutocompleteConditionallyShowOptionProps = {
|
|
|
16
16
|
type Props = _BaseProps & _AutocompleteConditionallyShowOptionProps & {
|
|
17
17
|
onChange: FormElementValueChangeHandler<string>;
|
|
18
18
|
};
|
|
19
|
-
declare function FormElementAutocomplete({ conditionallyShownOptionsElement, onChange, ...props }: Props):
|
|
19
|
+
declare function FormElementAutocomplete({ conditionallyShownOptionsElement, onChange, ...props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
20
20
|
declare const _default: React.MemoExoticComponent<typeof FormElementAutocomplete>;
|
|
21
21
|
export default _default;
|