@oneblink/apps-react 2.2.0 → 2.3.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/OneBlinkAutoSaveForm.d.ts +10 -10
- package/dist/OneBlinkAutoSaveForm.js +28 -28
- package/dist/OneBlinkForm.d.ts +11 -11
- package/dist/OneBlinkForm.js +11 -11
- package/dist/OneBlinkFormBase.d.ts +28 -28
- package/dist/OneBlinkFormBase.js +472 -472
- package/dist/OneBlinkFormStoreView.d.ts +8 -0
- package/dist/OneBlinkFormStoreView.js +55 -0
- package/dist/OneBlinkFormStoreView.js.map +1 -0
- package/dist/OneBlinkReadOnlyForm.d.ts +11 -11
- package/dist/OneBlinkReadOnlyForm.js +48 -48
- package/dist/components/AnnotationModal.d.ts +8 -0
- package/dist/components/AnnotationModal.js +104 -0
- package/dist/components/AnnotationModal.js.map +1 -0
- package/dist/components/AutocompleteDropdown.d.ts +26 -0
- package/dist/components/AutocompleteDropdown.js +174 -0
- package/dist/components/AutocompleteDropdown.js.map +1 -0
- package/dist/components/CopyToClipboardButton.d.ts +9 -0
- package/dist/components/CopyToClipboardButton.js +14 -0
- package/dist/components/CopyToClipboardButton.js.map +1 -0
- package/dist/components/CopyToClipboardIconButton.d.ts +10 -10
- package/dist/components/CopyToClipboardIconButton.js +32 -32
- package/dist/components/CustomAccordion.d.ts +27 -27
- package/dist/components/CustomAccordion.js +37 -37
- package/dist/components/CustomisableButtonInner.d.ts +7 -0
- package/dist/components/CustomisableButtonInner.js +9 -0
- package/dist/components/CustomisableButtonInner.js.map +1 -0
- package/dist/components/ErrorMessage.d.ts +13 -0
- package/dist/components/ErrorMessage.js +13 -0
- package/dist/components/ErrorMessage.js.map +1 -0
- package/dist/components/ErrorSnackbar.d.ts +8 -8
- package/dist/components/ErrorSnackbar.js +25 -25
- package/dist/components/FormElementLabelContainer.d.ts +12 -0
- package/dist/components/FormElementLabelContainer.js +16 -0
- package/dist/components/FormElementLabelContainer.js.map +1 -0
- package/dist/components/FormElementOptions.d.ts +9 -0
- package/dist/components/FormElementOptions.js +15 -0
- package/dist/components/FormElementOptions.js.map +1 -0
- package/dist/components/Lists.d.ts +25 -25
- package/dist/components/Lists.js +44 -44
- package/dist/components/LoadingWithMessage.d.ts +6 -6
- package/dist/components/LoadingWithMessage.js +11 -11
- package/dist/components/LookupButton.d.ts +10 -0
- package/dist/components/LookupButton.js +30 -0
- package/dist/components/LookupButton.js.map +1 -0
- package/dist/components/LookupNotification.d.ts +12 -0
- package/dist/components/LookupNotification.js +231 -0
- package/dist/components/LookupNotification.js.map +1 -0
- package/dist/components/Modal.d.ts +14 -0
- package/dist/components/Modal.js +15 -0
- package/dist/components/Modal.js.map +1 -0
- package/dist/components/NoResourcesYet.d.ts +12 -0
- package/dist/components/NoResourcesYet.js +7 -0
- package/dist/components/NoResourcesYet.js.map +1 -0
- package/dist/components/OnLoading.d.ts +10 -0
- package/dist/components/OnLoading.js +12 -0
- package/dist/components/OnLoading.js.map +1 -0
- package/dist/components/OneBlinkAppsErrorOriginalMessage.d.ts +7 -0
- package/dist/components/OneBlinkAppsErrorOriginalMessage.js +13 -0
- package/dist/components/OneBlinkAppsErrorOriginalMessage.js.map +1 -0
- package/dist/components/OneBlinkFormElements.d.ts +19 -0
- package/dist/components/OneBlinkFormElements.js +196 -0
- package/dist/components/OneBlinkFormElements.js.map +1 -0
- package/dist/components/PageFormElements.d.ts +17 -0
- package/dist/components/PageFormElements.js +49 -0
- package/dist/components/PageFormElements.js.map +1 -0
- package/dist/components/ToggleAllCheckbox.d.ts +13 -0
- package/dist/components/ToggleAllCheckbox.js +27 -0
- package/dist/components/ToggleAllCheckbox.js.map +1 -0
- package/dist/components/attachments/AttachmentStatus.d.ts +12 -0
- package/dist/components/attachments/AttachmentStatus.js +35 -0
- package/dist/components/attachments/AttachmentStatus.js.map +1 -0
- package/dist/components/attachments/FileCard.d.ts +18 -0
- package/dist/components/attachments/FileCard.js +58 -0
- package/dist/components/attachments/FileCard.js.map +1 -0
- package/dist/components/attachments/FileCardContent.d.ts +5 -0
- package/dist/components/attachments/FileCardContent.js +11 -0
- package/dist/components/attachments/FileCardContent.js.map +1 -0
- package/dist/components/attachments/Files.d.ts +14 -0
- package/dist/components/attachments/Files.js +27 -0
- package/dist/components/attachments/Files.js.map +1 -0
- package/dist/components/attachments/ImagePreviewUnavailable.d.ts +4 -0
- package/dist/components/attachments/ImagePreviewUnavailable.js +12 -0
- package/dist/components/attachments/ImagePreviewUnavailable.js.map +1 -0
- package/dist/components/attachments/UploadingAttachment.d.ts +4 -0
- package/dist/components/attachments/UploadingAttachment.js +13 -0
- package/dist/components/attachments/UploadingAttachment.js.map +1 -0
- package/dist/components/formStore/ColumnsConfigurationButton.d.ts +10 -0
- package/dist/components/formStore/ColumnsConfigurationButton.js +29 -0
- package/dist/components/formStore/ColumnsConfigurationButton.js.map +1 -0
- package/dist/components/formStore/DownloadSubmissionDataButton.d.ts +13 -0
- package/dist/components/formStore/DownloadSubmissionDataButton.js +45 -0
- package/dist/components/formStore/DownloadSubmissionDataButton.js.map +1 -0
- package/dist/components/formStore/FormStore.d.ts +9 -0
- package/dist/components/formStore/FormStore.js +103 -0
- package/dist/components/formStore/FormStore.js.map +1 -0
- package/dist/components/formStore/FormStoreTableProvider.d.ts +6 -6
- package/dist/components/formStore/FormStoreTableProvider.js +90 -90
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +5 -5
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +19 -19
- package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +5 -5
- package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js +66 -66
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +5 -5
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +86 -86
- package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +8 -8
- package/dist/components/formStore/OneBlinkFormStoreProvider.js +24 -24
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +5 -5
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +11 -11
- package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +4 -4
- package/dist/components/formStore/OneBlinkFormStoreTable.js +194 -194
- package/dist/components/formStore/display/ElementDisplay.d.ts +23 -23
- package/dist/components/formStore/display/ElementDisplay.js +77 -77
- package/dist/components/formStore/display/FormStoreIcon.d.ts +2 -2
- package/dist/components/formStore/display/FormStoreIcon.js +2 -2
- package/dist/components/formStore/table/ActionedByTableCell.d.ts +11 -11
- package/dist/components/formStore/table/ActionedByTableCell.js +43 -43
- package/dist/components/formStore/table/ColumnFilters.d.ts +9 -9
- package/dist/components/formStore/table/ColumnFilters.js +179 -179
- package/dist/components/formStore/table/FormElementTableCell.d.ts +10 -10
- package/dist/components/formStore/table/FormElementTableCell.js +228 -228
- package/dist/components/formStore/table/HeaderCellMoreButton.d.ts +9 -9
- package/dist/components/formStore/table/HeaderCellMoreButton.js +48 -48
- package/dist/components/formStore/table/RepeatableSetCell.d.ts +8 -8
- package/dist/components/formStore/table/RepeatableSetCell.js +62 -62
- package/dist/components/formStore/table/RepeatableSetCellAccordion.d.ts +9 -9
- package/dist/components/formStore/table/RepeatableSetCellAccordion.js +11 -11
- package/dist/components/formStore/table/TableCellCopyButton.d.ts +7 -7
- package/dist/components/formStore/table/TableCellCopyButton.js +27 -27
- package/dist/components/formStore/table/generateColumns.d.ts +24 -24
- package/dist/components/formStore/table/generateColumns.js +290 -290
- package/dist/components/formStore/table/index.d.ts +17 -0
- package/dist/components/formStore/table/index.js +194 -0
- package/dist/components/formStore/table/index.js.map +1 -0
- package/dist/components/formStore/table/useFormStoreTable.d.ts +52 -52
- package/dist/components/formStore/table/useFormStoreTable.js +157 -157
- package/dist/components/formStore/useFormStoreTableContext.d.ts +44 -44
- package/dist/components/formStore/useFormStoreTableContext.js +9 -9
- package/dist/components/messages/ErrorMessage.d.ts +12 -12
- package/dist/components/messages/ErrorMessage.js +12 -12
- package/dist/components/messages/LargeIconMessage.d.ts +18 -18
- package/dist/components/messages/LargeIconMessage.js +33 -33
- package/dist/components/messages/NoResourcesYet.d.ts +11 -11
- package/dist/components/messages/NoResourcesYet.js +6 -6
- package/dist/components/pickers/V4CompatibleDatePicker.d.ts +32 -32
- package/dist/components/pickers/V4CompatibleDatePicker.js +70 -70
- package/dist/components/pickers/V4CompatibleDateTimePicker.d.ts +32 -32
- package/dist/components/pickers/V4CompatibleDateTimePicker.js +70 -70
- package/dist/components/pickers/V4CompatibleTimePicker.d.ts +28 -28
- package/dist/components/pickers/V4CompatibleTimePicker.js +53 -53
- package/dist/components/renderer/AnnotationModal.d.ts +8 -8
- package/dist/components/renderer/AnnotationModal.js +101 -101
- package/dist/components/renderer/AutocompleteDropdown.d.ts +26 -26
- package/dist/components/renderer/AutocompleteDropdown.js +175 -175
- package/dist/components/renderer/CopyToClipboardButton.d.ts +8 -8
- package/dist/components/renderer/CopyToClipboardButton.js +13 -13
- package/dist/components/renderer/CustomisableButtonInner.d.ts +7 -7
- package/dist/components/renderer/CustomisableButtonInner.js +8 -8
- package/dist/components/renderer/FormElementLabelContainer.d.ts +12 -12
- package/dist/components/renderer/FormElementLabelContainer.js +15 -15
- package/dist/components/renderer/FormElementOptions.d.ts +9 -9
- package/dist/components/renderer/FormElementOptions.js +14 -14
- package/dist/components/renderer/LookupButton.d.ts +10 -10
- package/dist/components/renderer/LookupButton.js +29 -29
- package/dist/components/renderer/LookupNotification.d.ts +12 -12
- package/dist/components/renderer/LookupNotification.js +230 -230
- package/dist/components/renderer/Modal.d.ts +14 -14
- package/dist/components/renderer/Modal.js +14 -14
- package/dist/components/renderer/OnLoading.d.ts +10 -10
- package/dist/components/renderer/OnLoading.js +11 -11
- package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.d.ts +7 -7
- package/dist/components/renderer/OneBlinkAppsErrorOriginalMessage.js +12 -12
- package/dist/components/renderer/OneBlinkFormElements.d.ts +19 -19
- package/dist/components/renderer/OneBlinkFormElements.js +202 -202
- package/dist/components/renderer/PageFormElements.d.ts +17 -17
- package/dist/components/renderer/PageFormElements.js +48 -48
- package/dist/components/renderer/ProgressBar.d.ts +7 -0
- package/dist/components/renderer/ProgressBar.js +7 -0
- package/dist/components/renderer/ProgressBar.js.map +1 -0
- package/dist/components/renderer/ToggleAllCheckbox.d.ts +13 -13
- package/dist/components/renderer/ToggleAllCheckbox.js +26 -26
- package/dist/components/renderer/attachments/AttachmentStatus.d.ts +10 -10
- package/dist/components/renderer/attachments/AttachmentStatus.js +36 -30
- package/dist/components/renderer/attachments/AttachmentStatus.js.map +1 -1
- package/dist/components/renderer/attachments/FileCard.d.ts +19 -18
- package/dist/components/renderer/attachments/FileCard.js +60 -57
- package/dist/components/renderer/attachments/FileCard.js.map +1 -1
- package/dist/components/renderer/attachments/FileCardContent.d.ts +5 -5
- package/dist/components/renderer/attachments/FileCardContent.js +10 -10
- package/dist/components/renderer/attachments/Files.d.ts +14 -0
- package/dist/components/renderer/attachments/Files.js +27 -0
- package/dist/components/renderer/attachments/Files.js.map +1 -0
- package/dist/components/renderer/attachments/ImagePreviewUnavailable.d.ts +4 -4
- package/dist/components/renderer/attachments/ImagePreviewUnavailable.js +11 -11
- package/dist/components/renderer/attachments/ProgressBar.d.ts +8 -0
- package/dist/components/renderer/attachments/ProgressBar.js +34 -0
- package/dist/components/renderer/attachments/ProgressBar.js.map +1 -0
- package/dist/components/renderer/attachments/UploadingAttachment.d.ts +4 -4
- package/dist/components/renderer/attachments/UploadingAttachment.js +12 -12
- package/dist/form-elements/ComplianceButton.d.ts +10 -10
- package/dist/form-elements/ComplianceButton.js +11 -11
- package/dist/form-elements/FormElementABN.d.ts +14 -14
- package/dist/form-elements/FormElementABN.js +155 -155
- package/dist/form-elements/FormElementAutocomplete.d.ts +19 -19
- package/dist/form-elements/FormElementAutocomplete.js +81 -81
- package/dist/form-elements/FormElementBSB.d.ts +18 -18
- package/dist/form-elements/FormElementBSB.js +100 -100
- package/dist/form-elements/FormElementBarcodeScanner.d.ts +14 -14
- package/dist/form-elements/FormElementBarcodeScanner.js +306 -306
- package/dist/form-elements/FormElementBoolean.d.ts +14 -14
- package/dist/form-elements/FormElementBoolean.js +16 -16
- package/dist/form-elements/FormElementCalculation.d.ts +11 -11
- package/dist/form-elements/FormElementCalculation.js +179 -179
- package/dist/form-elements/FormElementCamera.d.ts +15 -15
- package/dist/form-elements/FormElementCamera.js +227 -220
- package/dist/form-elements/FormElementCamera.js.map +1 -1
- package/dist/form-elements/FormElementCaptcha.d.ts +12 -12
- package/dist/form-elements/FormElementCaptcha.js +14 -14
- package/dist/form-elements/FormElementCheckBoxes.d.ts +15 -15
- package/dist/form-elements/FormElementCheckBoxes.js +64 -64
- package/dist/form-elements/FormElementCivicaNameRecord.d.ts +8 -8
- package/dist/form-elements/FormElementCivicaNameRecord.js +51 -51
- package/dist/form-elements/FormElementCivicaStreetName.d.ts +15 -15
- package/dist/form-elements/FormElementCivicaStreetName.js +38 -38
- package/dist/form-elements/FormElementCompliance.d.ts +22 -22
- package/dist/form-elements/FormElementCompliance.js +129 -129
- package/dist/form-elements/FormElementDate.d.ts +14 -14
- package/dist/form-elements/FormElementDate.js +74 -74
- package/dist/form-elements/FormElementDateTime.d.ts +14 -14
- package/dist/form-elements/FormElementDateTime.js +67 -67
- package/dist/form-elements/FormElementEmail.d.ts +14 -14
- package/dist/form-elements/FormElementEmail.js +22 -22
- package/dist/form-elements/FormElementFile.d.ts +13 -13
- package/dist/form-elements/FormElementFile.js +31 -31
- package/dist/form-elements/FormElementFile.js.map +1 -1
- package/dist/form-elements/FormElementFiles/FormElementFile.d.ts +13 -0
- package/dist/form-elements/FormElementFiles/FormElementFile.js +32 -0
- package/dist/form-elements/FormElementFiles/FormElementFile.js.map +1 -0
- package/dist/form-elements/FormElementFiles/FormElementFileDisplay.d.ts +10 -0
- package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js +11 -0
- package/dist/form-elements/FormElementFiles/FormElementFileDisplay.js.map +1 -0
- package/dist/form-elements/FormElementFiles/FormElementFiles.d.ts +15 -0
- package/dist/form-elements/FormElementFiles/FormElementFiles.js +17 -0
- package/dist/form-elements/FormElementFiles/FormElementFiles.js.map +1 -0
- package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.d.ts +7 -0
- package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js +11 -0
- package/dist/form-elements/FormElementFiles/FormElementFilesInvalidAttachment.js.map +1 -0
- package/dist/form-elements/FormElementFiles/index.d.ts +17 -0
- package/dist/form-elements/FormElementFiles/index.js +18 -0
- package/dist/form-elements/FormElementFiles/index.js.map +1 -0
- package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.d.ts +18 -0
- package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js +61 -0
- package/dist/form-elements/FormElementFiles/legacy/FormElementFiles.js.map +1 -0
- package/dist/form-elements/FormElementFiles.d.ts +15 -15
- package/dist/form-elements/FormElementFiles.js +42 -42
- package/dist/form-elements/FormElementForm.d.ts +17 -17
- package/dist/form-elements/FormElementForm.js +63 -63
- package/dist/form-elements/FormElementFreshdeskDependentField.d.ts +8 -8
- package/dist/form-elements/FormElementFreshdeskDependentField.js +15 -15
- package/dist/form-elements/FormElementGeoscapeAddress.d.ts +15 -15
- package/dist/form-elements/FormElementGeoscapeAddress.js +62 -62
- package/dist/form-elements/FormElementHTML.d.ts +8 -8
- package/dist/form-elements/FormElementHTML.js +15 -15
- package/dist/form-elements/FormElementHeading.d.ts +8 -8
- package/dist/form-elements/FormElementHeading.js +23 -23
- package/dist/form-elements/FormElementImage.d.ts +8 -8
- package/dist/form-elements/FormElementImage.js +6 -6
- package/dist/form-elements/FormElementLocation.d.ts +20 -20
- package/dist/form-elements/FormElementLocation.js +204 -204
- package/dist/form-elements/FormElementNumber.d.ts +14 -14
- package/dist/form-elements/FormElementNumber.js +72 -72
- package/dist/form-elements/FormElementPointAddress.d.ts +15 -15
- package/dist/form-elements/FormElementPointAddress.js +69 -69
- package/dist/form-elements/FormElementRadio.d.ts +15 -15
- package/dist/form-elements/FormElementRadio.js +41 -41
- package/dist/form-elements/FormElementRepeatableSet.d.ts +19 -19
- package/dist/form-elements/FormElementRepeatableSet.js +126 -126
- package/dist/form-elements/FormElementSection.d.ts +8 -8
- package/dist/form-elements/FormElementSection.js +69 -69
- package/dist/form-elements/FormElementSelect.d.ts +15 -15
- package/dist/form-elements/FormElementSelect.js +44 -44
- package/dist/form-elements/FormElementSignature.d.ts +15 -15
- package/dist/form-elements/FormElementSignature.js +138 -135
- package/dist/form-elements/FormElementSignature.js.map +1 -1
- package/dist/form-elements/FormElementSummary.d.ts +11 -11
- package/dist/form-elements/FormElementSummary.js +159 -159
- package/dist/form-elements/FormElementTelephone.d.ts +14 -14
- package/dist/form-elements/FormElementTelephone.js +22 -22
- package/dist/form-elements/FormElementText.d.ts +14 -14
- package/dist/form-elements/FormElementText.js +29 -29
- package/dist/form-elements/FormElementTextarea.d.ts +14 -14
- package/dist/form-elements/FormElementTextarea.js +30 -30
- package/dist/form-elements/FormElementTime.d.ts +14 -14
- package/dist/form-elements/FormElementTime.js +53 -53
- package/dist/form-elements/OptionButton.d.ts +11 -11
- package/dist/form-elements/OptionButton.js +9 -9
- package/dist/hooks/attachments/useAttachment.d.ts +12 -11
- package/dist/hooks/attachments/useAttachment.js +242 -235
- package/dist/hooks/attachments/useAttachment.js.map +1 -1
- package/dist/hooks/attachments/useAttachmentBlobs.d.ts +19 -19
- package/dist/hooks/attachments/useAttachmentBlobs.js +23 -23
- package/dist/hooks/attachments/useAttachmentObjectURLs.d.ts +24 -0
- package/dist/hooks/attachments/useAttachmentObjectURLs.js +37 -0
- package/dist/hooks/attachments/useAttachmentObjectURLs.js.map +1 -0
- package/dist/hooks/attachments/useAttachments.d.ts +10 -10
- package/dist/hooks/attachments/useAttachments.js +69 -69
- package/dist/hooks/attachments/useLocalAttachmentBlobs.d.ts +24 -0
- package/dist/hooks/attachments/useLocalAttachmentBlobs.js +40 -0
- package/dist/hooks/attachments/useLocalAttachmentBlobs.js.map +1 -0
- package/dist/hooks/useAbnLookupAuthenticationGuid.d.ts +3 -3
- package/dist/hooks/useAbnLookupAuthenticationGuid.js +5 -5
- package/dist/hooks/useAuth.d.ts +15 -15
- package/dist/hooks/useAuth.js +42 -42
- package/dist/hooks/useBooleanState.d.ts +5 -5
- package/dist/hooks/useBooleanState.js +8 -8
- package/dist/hooks/useButtonsConfiguration.d.ts +45 -0
- package/dist/hooks/useButtonsConfiguration.js +6 -0
- package/dist/hooks/useButtonsConfiguration.js.map +1 -0
- package/dist/hooks/useCaptchaSiteKey.d.ts +3 -3
- package/dist/hooks/useCaptchaSiteKey.js +5 -5
- package/dist/hooks/useChangeEffect.d.ts +1 -0
- package/dist/hooks/useChangeEffect.js +14 -0
- package/dist/hooks/useChangeEffect.js.map +1 -0
- package/dist/hooks/useClickOutsideElement.d.ts +3 -3
- package/dist/hooks/useClickOutsideElement.js +14 -14
- package/dist/hooks/useConditionalLogic.d.ts +6 -6
- package/dist/hooks/useConditionalLogic.js +22 -22
- package/dist/hooks/useConditionallyShowOptionCallback.d.ts +5 -0
- package/dist/hooks/useConditionallyShowOptionCallback.js +20 -0
- package/dist/hooks/useConditionallyShowOptionCallback.js.map +1 -0
- package/dist/hooks/useContrastColor.d.ts +2 -2
- package/dist/hooks/useContrastColor.js +12 -12
- package/dist/hooks/useCustomValidation.d.ts +1 -0
- package/dist/hooks/useCustomValidation.js +9 -0
- package/dist/hooks/useCustomValidation.js.map +1 -0
- package/dist/hooks/useDynamicOptionsLoaderEffect.d.ts +7 -0
- package/dist/hooks/useDynamicOptionsLoaderEffect.js +45 -0
- package/dist/hooks/useDynamicOptionsLoaderEffect.js.map +1 -0
- package/dist/hooks/useDynamicOptionsLoaderState.d.ts +7 -7
- package/dist/hooks/useDynamicOptionsLoaderState.js +44 -44
- package/dist/hooks/useExecutedLookupCallback.d.ts +12 -12
- package/dist/hooks/useExecutedLookupCallback.js +15 -15
- package/dist/hooks/useFlatpickr.d.ts +10 -10
- package/dist/hooks/useFlatpickr.js +73 -73
- package/dist/hooks/useFlatpickrGuid.d.ts +7 -7
- package/dist/hooks/useFlatpickrGuid.js +11 -11
- package/dist/hooks/useFlattenElementsContext.d.ts +2 -2
- package/dist/hooks/useFlattenElementsContext.js +7 -7
- package/dist/hooks/useFormDefinition.d.ts +4 -4
- package/dist/hooks/useFormDefinition.js +9 -9
- package/dist/hooks/useFormElementOptions.d.ts +9 -9
- package/dist/hooks/useFormElementOptions.js +35 -35
- package/dist/hooks/useFormIsReadOnly.d.ts +3 -3
- package/dist/hooks/useFormIsReadOnly.js +5 -5
- package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +24 -24
- package/dist/hooks/useFormSubmissionAutoSaveState.js +145 -145
- package/dist/hooks/useFormSubmissionModelContext.d.ts +15 -15
- package/dist/hooks/useFormSubmissionModelContext.js +32 -32
- package/dist/hooks/useFormSubmissionState.d.ts +10 -10
- package/dist/hooks/useFormSubmissionState.js +13 -13
- package/dist/hooks/useFormValidation.d.ts +7 -7
- package/dist/hooks/useFormValidation.js +29 -29
- package/dist/hooks/useGoogleMapsApiKey.d.ts +3 -3
- package/dist/hooks/useGoogleMapsApiKey.js +5 -5
- package/dist/hooks/useInfiniteScrollDataLoad.d.ts +30 -30
- package/dist/hooks/useInfiniteScrollDataLoad.js +124 -124
- package/dist/hooks/useInjectPages.d.ts +7 -7
- package/dist/hooks/useInjectPages.js +5 -5
- package/dist/hooks/useIsHovering.d.ts +5 -5
- package/dist/hooks/useIsHovering.js +12 -12
- package/dist/hooks/useIsMounted.d.ts +3 -3
- package/dist/hooks/useIsMounted.js +11 -11
- package/dist/hooks/useIsOffline.d.ts +6 -6
- package/dist/hooks/useIsOffline.js +26 -26
- package/dist/hooks/useIsPageVisible.d.ts +9 -9
- package/dist/hooks/useIsPageVisible.js +8 -8
- package/dist/hooks/useLegacyElements.d.ts +16 -0
- package/dist/hooks/useLegacyElements.js +55 -0
- package/dist/hooks/useLegacyElements.js.map +1 -0
- package/dist/hooks/useLoadDataState.d.ts +15 -15
- package/dist/hooks/useLoadDataState.js +54 -54
- package/dist/hooks/useLogin.d.ts +46 -46
- package/dist/hooks/useLogin.js +295 -295
- package/dist/hooks/useLookupNotification.d.ts +9 -9
- package/dist/hooks/useLookupNotification.js +10 -10
- package/dist/hooks/useLookups.d.ts +5 -5
- package/dist/hooks/useLookups.js +62 -62
- package/dist/hooks/useNullableState.d.ts +2 -2
- package/dist/hooks/useNullableState.js +6 -6
- package/dist/hooks/usePages.d.ts +24 -24
- package/dist/hooks/usePages.js +141 -141
- package/dist/hooks/useQuery.d.ts +2 -2
- package/dist/hooks/useQuery.js +7 -7
- package/dist/hooks/useSubmissionIdIsValid.d.ts +3 -3
- package/dist/hooks/useSubmissionIdIsValid.js +19 -19
- package/dist/hooks/useToggleAll.d.ts +6 -0
- package/dist/hooks/useToggleAll.js +24 -0
- package/dist/hooks/useToggleAll.js.map +1 -0
- package/dist/hooks/useToggleComplianceChildren.d.ts +3 -3
- package/dist/hooks/useToggleComplianceChildren.js +13 -13
- package/dist/index.d.ts +23 -22
- package/dist/index.js +23 -22
- package/dist/index.js.map +1 -1
- package/dist/services/attachments.d.ts +10 -10
- package/dist/services/attachments.js +72 -72
- package/dist/services/barcode-readers/quagger.d.ts +1 -1
- package/dist/services/barcode-readers/quagger.js +34 -34
- package/dist/services/blob-utils.d.ts +5 -5
- package/dist/services/blob-utils.js +73 -73
- package/dist/services/checkBsbsAreInvalid.d.ts +3 -3
- package/dist/services/checkBsbsAreInvalid.js +40 -40
- package/dist/services/checkIfAttachmentsAreUploading.d.ts +3 -3
- package/dist/services/checkIfAttachmentsAreUploading.js +57 -57
- package/dist/services/checkIfAttachmentsExist.d.ts +5 -5
- package/dist/services/checkIfAttachmentsExist.js +144 -144
- package/dist/services/checkIfBsbsAreValidating.d.ts +3 -3
- package/dist/services/checkIfBsbsAreValidating.js +40 -40
- package/dist/services/clean-form-elements-ctrl-model.d.ts +4 -0
- package/dist/services/clean-form-elements-ctrl-model.js +166 -0
- package/dist/services/clean-form-elements-ctrl-model.js.map +1 -0
- package/dist/services/cleanFormSubmissionModel.d.ts +6 -6
- package/dist/services/cleanFormSubmissionModel.js +203 -203
- package/dist/services/conditionally-show-element.d.ts +11 -0
- package/dist/services/conditionally-show-element.js +92 -0
- package/dist/services/conditionally-show-element.js.map +1 -0
- package/dist/services/conditionally-show-option.d.ts +3 -0
- package/dist/services/conditionally-show-option.js +135 -0
- package/dist/services/conditionally-show-option.js.map +1 -0
- package/dist/services/defaultCoordinates.d.ts +5 -5
- package/dist/services/defaultCoordinates.js +8 -8
- package/dist/services/download-file.d.ts +3 -3
- package/dist/services/download-file.js +90 -90
- package/dist/services/drawTimestampOnCanvas.d.ts +1 -1
- package/dist/services/drawTimestampOnCanvas.js +22 -22
- package/dist/services/flattenFormElements.d.ts +2 -0
- package/dist/services/flattenFormElements.js +13 -0
- package/dist/services/flattenFormElements.js.map +1 -0
- package/dist/services/form-validation.d.ts +10 -10
- package/dist/services/form-validation.js +561 -561
- package/dist/services/generate-default-data.d.ts +13 -13
- package/dist/services/generate-default-data.js +494 -494
- package/dist/services/generateCivicaNameRecordElements.d.ts +2 -2
- package/dist/services/generateCivicaNameRecordElements.js +140 -140
- package/dist/services/generateFreshdeskDependentFieldElements.d.ts +2 -2
- package/dist/services/generateFreshdeskDependentFieldElements.js +69 -69
- package/dist/services/getCorrectDateFromDateOnlyString.d.ts +2 -0
- package/dist/services/getCorrectDateFromDateOnlyString.js +4 -0
- package/dist/services/getCorrectDateFromDateOnlyString.js.map +1 -0
- package/dist/services/sanitize-html.d.ts +2 -2
- package/dist/services/sanitize-html.js +20 -20
- package/dist/services/scrolling-service.d.ts +7 -7
- package/dist/services/scrolling-service.js +38 -38
- package/dist/services/utils-service.d.ts +5 -5
- package/dist/services/utils-service.js +16 -16
- package/dist/styles/boolean.scss +12 -0
- package/dist/styles/ob-file.scss +63 -0
- package/dist/styles/progress.scss +8 -0
- package/dist/styles.css +7 -0
- package/dist/styles.css.map +1 -1
- package/dist/styles.scss +1 -0
- package/dist/types/attachments.d.ts +19 -19
- package/dist/types/attachments.js +1 -1
- package/dist/types/form.d.ts +40 -40
- package/dist/types/form.js +2 -2
- package/package.json +2 -2
@@ -1,14 +1,14 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import { FormTypes } from '@oneblink/types';
|
3
|
-
import { FormElementValueChangeHandler } from '../types/form';
|
4
|
-
declare type Props = {
|
5
|
-
id: string;
|
6
|
-
element: FormTypes.BooleanElement;
|
7
|
-
value: unknown;
|
8
|
-
onChange: FormElementValueChangeHandler<boolean>;
|
9
|
-
displayValidationMessage: boolean;
|
10
|
-
validationMessage: string | undefined;
|
11
|
-
};
|
12
|
-
declare function FormElementBoolean({ id, element, value, onChange, validationMessage, displayValidationMessage, }: Props): JSX.Element;
|
13
|
-
declare const _default: React.MemoExoticComponent<typeof FormElementBoolean>;
|
14
|
-
export default _default;
|
1
|
+
import * as React from 'react';
|
2
|
+
import { FormTypes } from '@oneblink/types';
|
3
|
+
import { FormElementValueChangeHandler } from '../types/form';
|
4
|
+
declare type Props = {
|
5
|
+
id: string;
|
6
|
+
element: FormTypes.BooleanElement;
|
7
|
+
value: unknown;
|
8
|
+
onChange: FormElementValueChangeHandler<boolean>;
|
9
|
+
displayValidationMessage: boolean;
|
10
|
+
validationMessage: string | undefined;
|
11
|
+
};
|
12
|
+
declare function FormElementBoolean({ id, element, value, onChange, validationMessage, displayValidationMessage, }: Props): JSX.Element;
|
13
|
+
declare const _default: React.MemoExoticComponent<typeof FormElementBoolean>;
|
14
|
+
export default _default;
|
@@ -1,17 +1,17 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import useBooleanState from '../hooks/useBooleanState';
|
3
|
-
import FormElementLabelContainer from '../components/renderer/FormElementLabelContainer';
|
4
|
-
import { Switch } from '@mui/material';
|
5
|
-
function FormElementBoolean({ id, element, value, onChange, validationMessage, displayValidationMessage, }) {
|
6
|
-
const [isDirty, setIsDirty] = useBooleanState(false);
|
7
|
-
return (React.createElement("div", { className: "cypress-boolean-element" },
|
8
|
-
React.createElement(FormElementLabelContainer, { className: "ob-boolean", id: id, element: element, required: element.required, leading: React.createElement(Switch, { id: id, name: element.name, color: "primary", edge: "start", className: "ob-boolean__input cypress-boolean-control", classes: {
|
9
|
-
checked: 'ob-boolean__input-checked',
|
10
|
-
}, checked: !!value, disabled: element.readOnly, onChange: (e) => {
|
11
|
-
setIsDirty();
|
12
|
-
onChange(element, e.target.checked);
|
13
|
-
}, disableRipple: true }) }, (isDirty || displayValidationMessage) && !!validationMessage && (React.createElement("div", { role: "alert", className: "has-margin-top-8" },
|
14
|
-
React.createElement("div", { className: "has-text-danger ob-error__text cypress-validation-message" }, validationMessage))))));
|
15
|
-
}
|
16
|
-
export default React.memo(FormElementBoolean);
|
1
|
+
import * as React from 'react';
|
2
|
+
import useBooleanState from '../hooks/useBooleanState';
|
3
|
+
import FormElementLabelContainer from '../components/renderer/FormElementLabelContainer';
|
4
|
+
import { Switch } from '@mui/material';
|
5
|
+
function FormElementBoolean({ id, element, value, onChange, validationMessage, displayValidationMessage, }) {
|
6
|
+
const [isDirty, setIsDirty] = useBooleanState(false);
|
7
|
+
return (React.createElement("div", { className: "cypress-boolean-element" },
|
8
|
+
React.createElement(FormElementLabelContainer, { className: "ob-boolean", id: id, element: element, required: element.required, leading: React.createElement(Switch, { id: id, name: element.name, color: "primary", edge: "start", className: "ob-boolean__input cypress-boolean-control", classes: {
|
9
|
+
checked: 'ob-boolean__input-checked',
|
10
|
+
}, checked: !!value, disabled: element.readOnly, onChange: (e) => {
|
11
|
+
setIsDirty();
|
12
|
+
onChange(element, e.target.checked);
|
13
|
+
}, disableRipple: true }) }, (isDirty || displayValidationMessage) && !!validationMessage && (React.createElement("div", { role: "alert", className: "has-margin-top-8" },
|
14
|
+
React.createElement("div", { className: "has-text-danger ob-error__text cypress-validation-message" }, validationMessage))))));
|
15
|
+
}
|
16
|
+
export default React.memo(FormElementBoolean);
|
17
17
|
//# sourceMappingURL=FormElementBoolean.js.map
|
@@ -1,11 +1,11 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import { FormTypes } from '@oneblink/types';
|
3
|
-
import { FormElementValueChangeHandler } from '../types/form';
|
4
|
-
declare type Props = {
|
5
|
-
element: FormTypes.CalculationElement;
|
6
|
-
onChange: FormElementValueChangeHandler<number>;
|
7
|
-
value: unknown | undefined;
|
8
|
-
};
|
9
|
-
declare function FormElementCalculation({ element, onChange, value }: Props): JSX.Element;
|
10
|
-
declare const _default: React.MemoExoticComponent<typeof FormElementCalculation>;
|
11
|
-
export default _default;
|
1
|
+
import * as React from 'react';
|
2
|
+
import { FormTypes } from '@oneblink/types';
|
3
|
+
import { FormElementValueChangeHandler } from '../types/form';
|
4
|
+
declare type Props = {
|
5
|
+
element: FormTypes.CalculationElement;
|
6
|
+
onChange: FormElementValueChangeHandler<number>;
|
7
|
+
value: unknown | undefined;
|
8
|
+
};
|
9
|
+
declare function FormElementCalculation({ element, onChange, value }: Props): JSX.Element;
|
10
|
+
declare const _default: React.MemoExoticComponent<typeof FormElementCalculation>;
|
11
|
+
export default _default;
|
@@ -1,180 +1,180 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import ExpressionParser from 'morph-expressions';
|
3
|
-
import escapeString from 'escape-string-regexp';
|
4
|
-
import sanitizeHtmlStandard from '../services/sanitize-html';
|
5
|
-
import useFormSubmissionModel from '../hooks/useFormSubmissionModelContext';
|
6
|
-
import { Sentry } from '@oneblink/apps';
|
7
|
-
import { localisationService } from '@oneblink/apps';
|
8
|
-
const isUnenteredValue = (value) => {
|
9
|
-
return !value && value !== 0;
|
10
|
-
};
|
11
|
-
const isObjectWithValue = (obj) => {
|
12
|
-
return typeof obj === 'object' && obj !== null && 'value' in obj;
|
13
|
-
};
|
14
|
-
function FormElementCalculation({ element, onChange, value }) {
|
15
|
-
const { formSubmissionModel } = useFormSubmissionModel();
|
16
|
-
const htmlValue = React.useMemo(() => {
|
17
|
-
let htmlTemplate;
|
18
|
-
if (!isNaN(value)) {
|
19
|
-
htmlTemplate = element.defaultValue;
|
20
|
-
}
|
21
|
-
else {
|
22
|
-
console.log('[Calculation] Was not a number... setting pre-calculation display');
|
23
|
-
htmlTemplate = element.preCalculationDisplay;
|
24
|
-
}
|
25
|
-
const numberValue = typeof value === 'number' ? value : 0;
|
26
|
-
return sanitizeHtmlStandard((htmlTemplate || '').replace(/{result}/gi, element.displayAsCurrency
|
27
|
-
? localisationService.formatCurrency(numberValue)
|
28
|
-
: localisationService.formatNumber(numberValue)));
|
29
|
-
}, [element, value]);
|
30
|
-
const registerProperty = React.useCallback((exprParser, { replacement, nestedElementNames, }) => {
|
31
|
-
exprParser.registerProperty(replacement, (submission) => {
|
32
|
-
const defaultAccumulator = submission[nestedElementNames[0]];
|
33
|
-
return nestedElementNames.reduce((elementValue, elementName, index) => {
|
34
|
-
// Numbers can just be returned as is
|
35
|
-
if (typeof elementValue === 'number') {
|
36
|
-
return elementValue;
|
37
|
-
}
|
38
|
-
// attempt to get a number from the element value as a string.
|
39
|
-
// NaN is accounted for is the calculation
|
40
|
-
// so we can return that from here
|
41
|
-
if (typeof elementValue === 'string') {
|
42
|
-
return parseFloat(elementValue);
|
43
|
-
}
|
44
|
-
if (Array.isArray(elementValue)) {
|
45
|
-
// If there are no entries, we can return null
|
46
|
-
// to prevent the calculation from running.
|
47
|
-
if (!elementValue.length) {
|
48
|
-
return NaN;
|
49
|
-
}
|
50
|
-
// An array could be an element that allows multiple
|
51
|
-
// values e.g. checkboxes. If thats that case, we just
|
52
|
-
// add them all together and move on
|
53
|
-
const elementValues = elementValue.map((entry) => parseFloat(entry));
|
54
|
-
if (elementValues.every((entry) => !Number.isNaN(entry))) {
|
55
|
-
return elementValues.reduce((number, entry) => number + entry, 0);
|
56
|
-
}
|
57
|
-
// Other wise attempt to process it as a repeatable set
|
58
|
-
// If we found another repeatable set to process,
|
59
|
-
// pass it to the next element name to
|
60
|
-
// iterate over the entries
|
61
|
-
// If we are processing the entries in a repeatable set,
|
62
|
-
// we can sum the numbers elements in the entries
|
63
|
-
const nextElementName = nestedElementNames[index + 1];
|
64
|
-
let isNestedRepeatableSet = false;
|
65
|
-
const nestedElementValues = elementValue.reduce((nestedElementValues, entry) => {
|
66
|
-
if (entry) {
|
67
|
-
const nextElementValue = entry[nextElementName];
|
68
|
-
if (Array.isArray(nextElementValue)) {
|
69
|
-
if (nextElementValue.length) {
|
70
|
-
nestedElementValues.push(...nextElementValue);
|
71
|
-
isNestedRepeatableSet = true;
|
72
|
-
}
|
73
|
-
}
|
74
|
-
else {
|
75
|
-
nestedElementValues.push(nextElementValue);
|
76
|
-
}
|
77
|
-
}
|
78
|
-
return nestedElementValues;
|
79
|
-
}, []);
|
80
|
-
// If the nested element values are all arrays, we can pass them on to the next iteration
|
81
|
-
if (isNestedRepeatableSet) {
|
82
|
-
return nestedElementValues;
|
83
|
-
}
|
84
|
-
return nestedElementValues.reduce((total, nestedElementValue) => {
|
85
|
-
if (Number.isNaN(total)) {
|
86
|
-
return NaN;
|
87
|
-
}
|
88
|
-
const value = parseFloat(nestedElementValue);
|
89
|
-
if (Number.isNaN(value)) {
|
90
|
-
return NaN;
|
91
|
-
}
|
92
|
-
return total + value;
|
93
|
-
}, 0);
|
94
|
-
}
|
95
|
-
// "compliance" form element has an object value with a "value" property.
|
96
|
-
if (isObjectWithValue(elementValue) &&
|
97
|
-
typeof elementValue.value === 'string') {
|
98
|
-
return parseFloat(elementValue.value);
|
99
|
-
}
|
100
|
-
// We did not find a number value from the known elements,
|
101
|
-
// we will assume we are at the end of the line.
|
102
|
-
return NaN;
|
103
|
-
}, defaultAccumulator);
|
104
|
-
});
|
105
|
-
}, []);
|
106
|
-
const { calculation, hasError } = React.useMemo(() => {
|
107
|
-
const exprParser = new ExpressionParser();
|
108
|
-
exprParser.registerFunction('ROUND', (value, precision) => {
|
109
|
-
if (!Number.isNaN(value) && Number.isFinite(value)) {
|
110
|
-
return parseFloat(value.toFixed(precision));
|
111
|
-
}
|
112
|
-
return null;
|
113
|
-
});
|
114
|
-
exprParser.registerFunction('ISNULL', (value, defaultValue) => {
|
115
|
-
if (isUnenteredValue(value)) {
|
116
|
-
return defaultValue || 0;
|
117
|
-
}
|
118
|
-
return value;
|
119
|
-
});
|
120
|
-
try {
|
121
|
-
if (!element.calculation)
|
122
|
-
throw new Error('Element has no calculation.');
|
123
|
-
let matches;
|
124
|
-
const elementNames = [];
|
125
|
-
const re = /({ELEMENT:)([^}]+)(})/g;
|
126
|
-
while ((matches = re.exec(element.calculation)) !== null) {
|
127
|
-
if (matches) {
|
128
|
-
elementNames.push(matches[2]);
|
129
|
-
}
|
130
|
-
}
|
131
|
-
const code = elementNames.reduce((code, elementName, index) => {
|
132
|
-
const regex = new RegExp(escapeString(`{ELEMENT:${elementName}}`), 'g');
|
133
|
-
const replacement = `a${index}`;
|
134
|
-
registerProperty(exprParser, {
|
135
|
-
replacement,
|
136
|
-
nestedElementNames: elementName.split('|'),
|
137
|
-
});
|
138
|
-
return code.replace(regex, replacement);
|
139
|
-
}, element.calculation || '');
|
140
|
-
return {
|
141
|
-
calculation: exprParser.parse(code.trim()),
|
142
|
-
hasError: false,
|
143
|
-
};
|
144
|
-
}
|
145
|
-
catch (e) {
|
146
|
-
console.warn('Error while setting up parsing for calculation element', element, e);
|
147
|
-
Sentry.captureException(e);
|
148
|
-
return {
|
149
|
-
calculation: null,
|
150
|
-
hasError: true,
|
151
|
-
};
|
152
|
-
}
|
153
|
-
}, [element, registerProperty]);
|
154
|
-
// MODEL LISTENER
|
155
|
-
React.useEffect(() => {
|
156
|
-
if (!calculation)
|
157
|
-
return;
|
158
|
-
const newValue = calculation.eval(formSubmissionModel);
|
159
|
-
if (value === newValue || (value === undefined && isNaN(newValue))) {
|
160
|
-
return;
|
161
|
-
}
|
162
|
-
if (!isNaN(newValue)) {
|
163
|
-
onChange(element, newValue);
|
164
|
-
}
|
165
|
-
else {
|
166
|
-
onChange(element, undefined);
|
167
|
-
}
|
168
|
-
}, [calculation, element, formSubmissionModel, onChange, value]);
|
169
|
-
return (React.createElement("div", { className: "cypress-calculation-element" },
|
170
|
-
React.createElement("div", { className: "ob-form__element ob-calculation" },
|
171
|
-
React.createElement("div", { className: "cypress-calculation-result ob-calculation__content ql-editor", dangerouslySetInnerHTML: { __html: htmlValue } }),
|
172
|
-
hasError && (React.createElement("div", { className: "notification cypress-calculation-is-invalid", role: "alert" },
|
173
|
-
React.createElement("div", { className: "columns is-vcentered" },
|
174
|
-
React.createElement("div", { className: "column is-narrow" },
|
175
|
-
React.createElement("i", { className: "material-icons has-text-warning" }, "error")),
|
176
|
-
React.createElement("div", { className: "column" },
|
177
|
-
React.createElement("p", null, "There is an error in the calculation for this element."))))))));
|
178
|
-
}
|
179
|
-
export default React.memo(FormElementCalculation);
|
1
|
+
import * as React from 'react';
|
2
|
+
import ExpressionParser from 'morph-expressions';
|
3
|
+
import escapeString from 'escape-string-regexp';
|
4
|
+
import sanitizeHtmlStandard from '../services/sanitize-html';
|
5
|
+
import useFormSubmissionModel from '../hooks/useFormSubmissionModelContext';
|
6
|
+
import { Sentry } from '@oneblink/apps';
|
7
|
+
import { localisationService } from '@oneblink/apps';
|
8
|
+
const isUnenteredValue = (value) => {
|
9
|
+
return !value && value !== 0;
|
10
|
+
};
|
11
|
+
const isObjectWithValue = (obj) => {
|
12
|
+
return typeof obj === 'object' && obj !== null && 'value' in obj;
|
13
|
+
};
|
14
|
+
function FormElementCalculation({ element, onChange, value }) {
|
15
|
+
const { formSubmissionModel } = useFormSubmissionModel();
|
16
|
+
const htmlValue = React.useMemo(() => {
|
17
|
+
let htmlTemplate;
|
18
|
+
if (!isNaN(value)) {
|
19
|
+
htmlTemplate = element.defaultValue;
|
20
|
+
}
|
21
|
+
else {
|
22
|
+
console.log('[Calculation] Was not a number... setting pre-calculation display');
|
23
|
+
htmlTemplate = element.preCalculationDisplay;
|
24
|
+
}
|
25
|
+
const numberValue = typeof value === 'number' ? value : 0;
|
26
|
+
return sanitizeHtmlStandard((htmlTemplate || '').replace(/{result}/gi, element.displayAsCurrency
|
27
|
+
? localisationService.formatCurrency(numberValue)
|
28
|
+
: localisationService.formatNumber(numberValue)));
|
29
|
+
}, [element, value]);
|
30
|
+
const registerProperty = React.useCallback((exprParser, { replacement, nestedElementNames, }) => {
|
31
|
+
exprParser.registerProperty(replacement, (submission) => {
|
32
|
+
const defaultAccumulator = submission[nestedElementNames[0]];
|
33
|
+
return nestedElementNames.reduce((elementValue, elementName, index) => {
|
34
|
+
// Numbers can just be returned as is
|
35
|
+
if (typeof elementValue === 'number') {
|
36
|
+
return elementValue;
|
37
|
+
}
|
38
|
+
// attempt to get a number from the element value as a string.
|
39
|
+
// NaN is accounted for is the calculation
|
40
|
+
// so we can return that from here
|
41
|
+
if (typeof elementValue === 'string') {
|
42
|
+
return parseFloat(elementValue);
|
43
|
+
}
|
44
|
+
if (Array.isArray(elementValue)) {
|
45
|
+
// If there are no entries, we can return null
|
46
|
+
// to prevent the calculation from running.
|
47
|
+
if (!elementValue.length) {
|
48
|
+
return NaN;
|
49
|
+
}
|
50
|
+
// An array could be an element that allows multiple
|
51
|
+
// values e.g. checkboxes. If thats that case, we just
|
52
|
+
// add them all together and move on
|
53
|
+
const elementValues = elementValue.map((entry) => parseFloat(entry));
|
54
|
+
if (elementValues.every((entry) => !Number.isNaN(entry))) {
|
55
|
+
return elementValues.reduce((number, entry) => number + entry, 0);
|
56
|
+
}
|
57
|
+
// Other wise attempt to process it as a repeatable set
|
58
|
+
// If we found another repeatable set to process,
|
59
|
+
// pass it to the next element name to
|
60
|
+
// iterate over the entries
|
61
|
+
// If we are processing the entries in a repeatable set,
|
62
|
+
// we can sum the numbers elements in the entries
|
63
|
+
const nextElementName = nestedElementNames[index + 1];
|
64
|
+
let isNestedRepeatableSet = false;
|
65
|
+
const nestedElementValues = elementValue.reduce((nestedElementValues, entry) => {
|
66
|
+
if (entry) {
|
67
|
+
const nextElementValue = entry[nextElementName];
|
68
|
+
if (Array.isArray(nextElementValue)) {
|
69
|
+
if (nextElementValue.length) {
|
70
|
+
nestedElementValues.push(...nextElementValue);
|
71
|
+
isNestedRepeatableSet = true;
|
72
|
+
}
|
73
|
+
}
|
74
|
+
else {
|
75
|
+
nestedElementValues.push(nextElementValue);
|
76
|
+
}
|
77
|
+
}
|
78
|
+
return nestedElementValues;
|
79
|
+
}, []);
|
80
|
+
// If the nested element values are all arrays, we can pass them on to the next iteration
|
81
|
+
if (isNestedRepeatableSet) {
|
82
|
+
return nestedElementValues;
|
83
|
+
}
|
84
|
+
return nestedElementValues.reduce((total, nestedElementValue) => {
|
85
|
+
if (Number.isNaN(total)) {
|
86
|
+
return NaN;
|
87
|
+
}
|
88
|
+
const value = parseFloat(nestedElementValue);
|
89
|
+
if (Number.isNaN(value)) {
|
90
|
+
return NaN;
|
91
|
+
}
|
92
|
+
return total + value;
|
93
|
+
}, 0);
|
94
|
+
}
|
95
|
+
// "compliance" form element has an object value with a "value" property.
|
96
|
+
if (isObjectWithValue(elementValue) &&
|
97
|
+
typeof elementValue.value === 'string') {
|
98
|
+
return parseFloat(elementValue.value);
|
99
|
+
}
|
100
|
+
// We did not find a number value from the known elements,
|
101
|
+
// we will assume we are at the end of the line.
|
102
|
+
return NaN;
|
103
|
+
}, defaultAccumulator);
|
104
|
+
});
|
105
|
+
}, []);
|
106
|
+
const { calculation, hasError } = React.useMemo(() => {
|
107
|
+
const exprParser = new ExpressionParser();
|
108
|
+
exprParser.registerFunction('ROUND', (value, precision) => {
|
109
|
+
if (!Number.isNaN(value) && Number.isFinite(value)) {
|
110
|
+
return parseFloat(value.toFixed(precision));
|
111
|
+
}
|
112
|
+
return null;
|
113
|
+
});
|
114
|
+
exprParser.registerFunction('ISNULL', (value, defaultValue) => {
|
115
|
+
if (isUnenteredValue(value)) {
|
116
|
+
return defaultValue || 0;
|
117
|
+
}
|
118
|
+
return value;
|
119
|
+
});
|
120
|
+
try {
|
121
|
+
if (!element.calculation)
|
122
|
+
throw new Error('Element has no calculation.');
|
123
|
+
let matches;
|
124
|
+
const elementNames = [];
|
125
|
+
const re = /({ELEMENT:)([^}]+)(})/g;
|
126
|
+
while ((matches = re.exec(element.calculation)) !== null) {
|
127
|
+
if (matches) {
|
128
|
+
elementNames.push(matches[2]);
|
129
|
+
}
|
130
|
+
}
|
131
|
+
const code = elementNames.reduce((code, elementName, index) => {
|
132
|
+
const regex = new RegExp(escapeString(`{ELEMENT:${elementName}}`), 'g');
|
133
|
+
const replacement = `a${index}`;
|
134
|
+
registerProperty(exprParser, {
|
135
|
+
replacement,
|
136
|
+
nestedElementNames: elementName.split('|'),
|
137
|
+
});
|
138
|
+
return code.replace(regex, replacement);
|
139
|
+
}, element.calculation || '');
|
140
|
+
return {
|
141
|
+
calculation: exprParser.parse(code.trim()),
|
142
|
+
hasError: false,
|
143
|
+
};
|
144
|
+
}
|
145
|
+
catch (e) {
|
146
|
+
console.warn('Error while setting up parsing for calculation element', element, e);
|
147
|
+
Sentry.captureException(e);
|
148
|
+
return {
|
149
|
+
calculation: null,
|
150
|
+
hasError: true,
|
151
|
+
};
|
152
|
+
}
|
153
|
+
}, [element, registerProperty]);
|
154
|
+
// MODEL LISTENER
|
155
|
+
React.useEffect(() => {
|
156
|
+
if (!calculation)
|
157
|
+
return;
|
158
|
+
const newValue = calculation.eval(formSubmissionModel);
|
159
|
+
if (value === newValue || (value === undefined && isNaN(newValue))) {
|
160
|
+
return;
|
161
|
+
}
|
162
|
+
if (!isNaN(newValue)) {
|
163
|
+
onChange(element, newValue);
|
164
|
+
}
|
165
|
+
else {
|
166
|
+
onChange(element, undefined);
|
167
|
+
}
|
168
|
+
}, [calculation, element, formSubmissionModel, onChange, value]);
|
169
|
+
return (React.createElement("div", { className: "cypress-calculation-element" },
|
170
|
+
React.createElement("div", { className: "ob-form__element ob-calculation" },
|
171
|
+
React.createElement("div", { className: "cypress-calculation-result ob-calculation__content ql-editor", dangerouslySetInnerHTML: { __html: htmlValue } }),
|
172
|
+
hasError && (React.createElement("div", { className: "notification cypress-calculation-is-invalid", role: "alert" },
|
173
|
+
React.createElement("div", { className: "columns is-vcentered" },
|
174
|
+
React.createElement("div", { className: "column is-narrow" },
|
175
|
+
React.createElement("i", { className: "material-icons has-text-warning" }, "error")),
|
176
|
+
React.createElement("div", { className: "column" },
|
177
|
+
React.createElement("p", null, "There is an error in the calculation for this element."))))))));
|
178
|
+
}
|
179
|
+
export default React.memo(FormElementCalculation);
|
180
180
|
//# sourceMappingURL=FormElementCalculation.js.map
|
@@ -1,15 +1,15 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import { FormTypes } from '@oneblink/types';
|
3
|
-
import { FormElementBinaryStorageValue } from '../types/attachments';
|
4
|
-
import { FormElementValueChangeHandler } from '../types/form';
|
5
|
-
declare type Props = {
|
6
|
-
id: string;
|
7
|
-
element: FormTypes.CameraElement;
|
8
|
-
value: FormElementBinaryStorageValue;
|
9
|
-
onChange: FormElementValueChangeHandler<FormElementBinaryStorageValue>;
|
10
|
-
displayValidationMessage: boolean;
|
11
|
-
validationMessage: string | undefined;
|
12
|
-
};
|
13
|
-
declare function FormElementCamera({ id, element, value, onChange, validationMessage, displayValidationMessage, }: Props): JSX.Element;
|
14
|
-
declare const _default: React.MemoExoticComponent<typeof FormElementCamera>;
|
15
|
-
export default _default;
|
1
|
+
import * as React from 'react';
|
2
|
+
import { FormTypes } from '@oneblink/types';
|
3
|
+
import { FormElementBinaryStorageValue } from '../types/attachments';
|
4
|
+
import { FormElementValueChangeHandler } from '../types/form';
|
5
|
+
declare type Props = {
|
6
|
+
id: string;
|
7
|
+
element: FormTypes.CameraElement;
|
8
|
+
value: FormElementBinaryStorageValue;
|
9
|
+
onChange: FormElementValueChangeHandler<FormElementBinaryStorageValue>;
|
10
|
+
displayValidationMessage: boolean;
|
11
|
+
validationMessage: string | undefined;
|
12
|
+
};
|
13
|
+
declare function FormElementCamera({ id, element, value, onChange, validationMessage, displayValidationMessage, }: Props): JSX.Element;
|
14
|
+
declare const _default: React.MemoExoticComponent<typeof FormElementCamera>;
|
15
|
+
export default _default;
|