@rabbitio/ui-kit 1.0.0-beta.70 → 1.0.0-beta.72
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/coverage/clover.xml +7803 -7729
- package/coverage/coverage-final.json +91 -95
- package/coverage/index.html +182 -272
- package/coverage/rabbit-ui-kit/index.html +1 -1
- package/coverage/rabbit-ui-kit/index.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/adapters/axiosAdapter.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/adapters/index.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/adapters/qrUtils.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/amountUtils.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/errorUtils.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/external-apis/apiGroups.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/external-apis/index.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/external-apis/ipAddressProviders.js.html +5 -5
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/fiatCurrenciesService.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{constants → common-apis}/globalConstants.jsx.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/index.html +22 -7
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/models/blockchain.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/models/coin.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/models/index.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/models/protocol.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/utils/cache.js.html +8 -8
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/utils/emailAPI.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/utils/index.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/utils/logging/index.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/utils/logging/logger.js.html +6 -6
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/utils/logging/logsStorage.js.html +5 -5
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/utils/postponeExecution.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{common → common-apis}/utils/safeStringify.js.html +29 -29
- package/coverage/rabbit-ui-kit/src/index.html +5 -5
- package/coverage/rabbit-ui-kit/src/index.js.html +66 -78
- package/coverage/rabbit-ui-kit/src/{robustExteranlApiCallerService → robust-api-caller}/cacheAndConcurrentRequestsResolver.js.html +5 -5
- package/coverage/rabbit-ui-kit/src/{robustExteranlApiCallerService → robust-api-caller}/cachedRobustExternalApiCallerService.js.html +6 -6
- package/coverage/rabbit-ui-kit/src/{robustExteranlApiCallerService → robust-api-caller}/cancelProcessing.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{robustExteranlApiCallerService → robust-api-caller}/concurrentCalculationsMetadataHolder.js.html +4 -4
- package/coverage/rabbit-ui-kit/src/{robustExteranlApiCallerService → robust-api-caller}/externalApiProvider.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{robustExteranlApiCallerService → robust-api-caller}/externalServicesStatsCollector.js.html +5 -5
- package/coverage/rabbit-ui-kit/src/{robustExteranlApiCallerService → robust-api-caller}/index.html +3 -3
- package/coverage/rabbit-ui-kit/src/{robustExteranlApiCallerService → robust-api-caller}/robustExternalAPICallerService.js.html +8 -8
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/index.html +24 -24
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/swapProvider.js.html +9 -6
- package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/swapspaceSwapProvider.js.html +190 -130
- package/coverage/rabbit-ui-kit/src/swaps-lib/models/baseSwapCreationInfo.js.html +14 -5
- package/coverage/rabbit-ui-kit/src/swaps-lib/models/existingSwap.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/models/existingSwapWithFiatData.js.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/models/index.html +7 -7
- package/coverage/rabbit-ui-kit/src/swaps-lib/services/index.html +5 -5
- package/coverage/rabbit-ui-kit/src/swaps-lib/services/publicSwapService.js.html +14 -11
- package/coverage/rabbit-ui-kit/src/swaps-lib/utils/index.html +1 -1
- package/coverage/rabbit-ui-kit/src/swaps-lib/utils/swapUtils.js.html +7 -7
- package/coverage/rabbit-ui-kit/src/{assets → ui-kit/assets}/wrappedImages/arrowIcon.jsx.html +10 -10
- package/coverage/rabbit-ui-kit/src/{assets → ui-kit/assets}/wrappedImages/arrowTosca.jsx.html +10 -10
- package/coverage/rabbit-ui-kit/src/{assets → ui-kit/assets}/wrappedImages/arrowWhite.jsx.html +11 -11
- package/coverage/rabbit-ui-kit/src/{assets → ui-kit/assets}/wrappedImages/darkRectangle.jsx.html +10 -10
- package/coverage/rabbit-ui-kit/src/{assets → ui-kit/assets}/wrappedImages/determinedError.jsx.html +10 -10
- package/coverage/rabbit-ui-kit/src/{assets → ui-kit/assets}/wrappedImages/failedValidationIcon.jsx.html +10 -10
- package/coverage/rabbit-ui-kit/src/{assets → ui-kit/assets}/wrappedImages/index.html +10 -10
- package/coverage/rabbit-ui-kit/src/{assets → ui-kit/assets}/wrappedImages/infoIcon.jsx.html +10 -10
- package/coverage/rabbit-ui-kit/src/{assets → ui-kit/assets}/wrappedImages/noticeQuestionIcon.jsx.html +10 -10
- package/coverage/rabbit-ui-kit/src/{assets → ui-kit/assets}/wrappedImages/successfulValidationIcon.jsx.html +10 -10
- package/coverage/rabbit-ui-kit/src/{assets → ui-kit/assets}/wrappedImages/walletIcon.jsx.html +10 -10
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/AssetIcon/AssetIcon.jsx.html +20 -17
- package/coverage/rabbit-ui-kit/src/{constants/organisms/dialog/DialogStep → ui-kit/components/atoms/AssetIcon}/index.html +8 -8
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/AssetSelection/AssetSelection.jsx.html +23 -20
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetSelection/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/BackgroundTitle/BackgroundTitle.jsx.html +10 -10
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/BackgroundTitle/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/InformationMessage/InformationMessage.jsx.html +21 -18
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/InformationMessage/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/Input/Input.jsx.html +38 -35
- package/coverage/rabbit-ui-kit/src/{components/atoms/buttons/Button → ui-kit/components/atoms/Input}/index.html +8 -8
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/LoadingDots/LoadingDots.jsx.html +10 -10
- package/coverage/rabbit-ui-kit/src/{components/atoms/buttons/LinkButton → ui-kit/components/atoms/LoadingDots}/index.html +8 -8
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/NoticeIcon/NoticeIcon.jsx.html +19 -22
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/NoticeIcon/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/QrCode/QrCode.jsx.html +18 -15
- package/coverage/rabbit-ui-kit/src/{components/atoms/buttons/Close → ui-kit/components/atoms/QrCode}/index.html +8 -8
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/RateSelector/RateSelector.jsx.html +16 -13
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/RateSelector/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/SupportChat/SupportChat.jsx.html +16 -13
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/SupportChat/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/Textarea/Textarea.jsx.html +36 -30
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Textarea/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/TitleBox/TitleBox.jsx.html +29 -29
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TitleBox/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/Tooltip/Tooltip.jsx.html +48 -21
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Tooltip/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/TwoLinesOfText/LinesOfText.jsx.html +29 -23
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TwoLinesOfText/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/Validation/Validation.jsx.html +13 -13
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Validation/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/buttons/Button/Button.jsx.html +10 -10
- package/coverage/rabbit-ui-kit/src/{components/atoms/AssetSelection → ui-kit/components/atoms/buttons/Button}/index.html +15 -15
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/buttons/Close/Close.jsx.html +30 -15
- package/coverage/rabbit-ui-kit/src/{components/atoms/InformationMessage → ui-kit/components/atoms/buttons/Close}/index.html +15 -15
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/buttons/LinkButton/LinkButton.jsx.html +34 -16
- package/coverage/rabbit-ui-kit/src/{components/atoms/BackgroundTitle → ui-kit/components/atoms/buttons/LinkButton}/index.html +15 -15
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx.html +11 -11
- package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/RadioButtonWithText/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/molecules/AmountInput/AmountInput.jsx.html +20 -17
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/AmountInput/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/molecules/CoinPicker/CoinPicker.jsx.html +44 -38
- package/coverage/rabbit-ui-kit/src/{components/organisms/Dialog/DialogStep → ui-kit/components/molecules/CoinPicker}/index.html +8 -8
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/molecules/LineWithIconLink/LineWithIconLink.jsx.html +10 -10
- package/coverage/rabbit-ui-kit/src/{components/organisms/Dialog/DialogButtons → ui-kit/components/molecules/LineWithIconLink}/index.html +8 -8
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/molecules/TitledLineWithIconLink/TitledLineWithIconLink.jsx.html +25 -19
- package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/TitledLineWithIconLink/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx.html +20 -14
- package/coverage/rabbit-ui-kit/src/{components/atoms/buttons/RadioButtonWithText → ui-kit/components/organisms/CoinPickerDialogStep}/index.html +8 -8
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/organisms/Dialog/Dialog.jsx.html +106 -19
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/organisms/Dialog/DialogButtons/DialogButtons.jsx.html +13 -13
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogButtons/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/organisms/Dialog/DialogStep/DialogStep.jsx.html +66 -60
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogStep/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/organisms/SwapForm/SwapForm.jsx.html +361 -76
- package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/SwapForm/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit/components}/templates/DeterminedErrorDialogStep/DeterminedErrorDialogStep.jsx.html +12 -12
- package/coverage/rabbit-ui-kit/src/ui-kit/components/templates/DeterminedErrorDialogStep/index.html +116 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit}/hooks/index.html +22 -7
- package/coverage/rabbit-ui-kit/src/{components → ui-kit}/hooks/useCallHandlingErrors.js.html +4 -4
- package/coverage/rabbit-ui-kit/src/ui-kit/hooks/useIsHydrated.js.html +121 -0
- package/coverage/rabbit-ui-kit/src/{components → ui-kit}/hooks/useReferredState.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{components → ui-kit}/utils/index.html +3 -3
- package/coverage/rabbit-ui-kit/src/{components → ui-kit}/utils/inputValueProviders.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{components → ui-kit}/utils/textUtils.js.html +4 -4
- package/coverage/rabbit-ui-kit/src/{components → ui-kit}/utils/uiUtils.js.html +3 -3
- package/coverage/rabbit-ui-kit/src/{components → ui-kit}/utils/urlQueryUtils.js.html +3 -3
- package/coverage/rabbit-ui-kit/stories/atoms/BackgroundTitle.stories.jsx.html +2 -2
- package/coverage/rabbit-ui-kit/stories/atoms/LinesOfText.stories.jsx.html +4 -4
- package/coverage/rabbit-ui-kit/stories/atoms/LoadingDots.stories.jsx.html +3 -3
- package/coverage/rabbit-ui-kit/stories/atoms/QrCode.stories.jsx.html +3 -3
- package/coverage/rabbit-ui-kit/stories/atoms/RateSelector.stories.jsx.html +2 -2
- package/coverage/rabbit-ui-kit/stories/atoms/Validation.stories.jsx.html +2 -2
- package/coverage/rabbit-ui-kit/stories/atoms/buttons/Button.stories.jsx.html +27 -90
- package/coverage/rabbit-ui-kit/stories/atoms/buttons/Close.stories.jsx.html +7 -10
- package/coverage/rabbit-ui-kit/stories/atoms/buttons/LinkButton.stories.jsx.html +13 -7
- package/coverage/rabbit-ui-kit/stories/atoms/buttons/index.html +9 -9
- package/coverage/rabbit-ui-kit/stories/atoms/index.html +1 -1
- package/coverage/rabbit-ui-kit/stories/molecules/LineWithIconLink.stories.jsx.html +3 -3
- package/coverage/rabbit-ui-kit/stories/molecules/TitledLineWithIconLink.stories.jsx.html +2 -2
- package/coverage/rabbit-ui-kit/stories/molecules/index.html +1 -1
- package/coverage/rabbit-ui-kit/stories/organisms/Dialog/Dialog.stories.jsx.html +13 -79
- package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogButtons/DialogButtons.stories.jsx.html +3 -3
- package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogButtons/index.html +1 -1
- package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogStep/DialogStep.stories.jsx.html +4 -4
- package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogStep/index.html +1 -1
- package/coverage/rabbit-ui-kit/stories/organisms/Dialog/index.html +5 -5
- package/coverage/rabbit-ui-kit/stories/stubs/exampleContent.jsx.html +1 -1
- package/coverage/rabbit-ui-kit/stories/stubs/index.html +1 -1
- package/coverage/rabbit-ui-kit/stories/templates/DeterminedErrorDialogStep.stories.jsx.html +7 -10
- package/coverage/rabbit-ui-kit/stories/templates/index.html +5 -5
- package/dist/index.cjs +488 -301
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +21029 -21029
- package/dist/index.modern.js +346 -219
- package/dist/index.modern.js.map +1 -1
- package/dist/index.module.js +487 -302
- package/dist/index.module.js.map +1 -1
- package/dist/index.umd.js +488 -301
- package/dist/index.umd.js.map +1 -1
- package/package.json +3 -3
- package/src/{common → common-apis}/external-apis/ipAddressProviders.js +2 -2
- package/src/index.js +62 -66
- package/src/{robustExteranlApiCallerService → robust-api-caller}/cacheAndConcurrentRequestsResolver.js +2 -2
- package/src/{robustExteranlApiCallerService → robust-api-caller}/cachedRobustExternalApiCallerService.js +3 -3
- package/src/{robustExteranlApiCallerService → robust-api-caller}/concurrentCalculationsMetadataHolder.js +1 -1
- package/src/{robustExteranlApiCallerService → robust-api-caller}/externalServicesStatsCollector.js +2 -2
- package/src/{robustExteranlApiCallerService → robust-api-caller}/robustExternalAPICallerService.js +5 -5
- package/src/{robustExteranlApiCallerService → robust-api-caller}/tests/robustExternalAPICallerService/robustExternalAPICallerService/callExternalAPI/_performCallAttempt.test.js +2 -2
- package/src/{robustExteranlApiCallerService → robust-api-caller}/tests/robustExternalAPICallerService/robustExternalAPICallerService/callExternalAPI/callExternalAPI.test.js +1 -1
- package/src/{robustExteranlApiCallerService → robust-api-caller}/tests/robustExternalAPICallerService/robustExternalAPICallerService/constructor.test.js +1 -1
- package/src/swaps-lib/external-apis/swapProvider.js +1 -0
- package/src/swaps-lib/external-apis/swapspaceSwapProvider.js +27 -7
- package/src/swaps-lib/models/baseSwapCreationInfo.js +4 -1
- package/src/swaps-lib/services/publicSwapService.js +8 -7
- package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/_fetchSupportedCurrenciesIfNeeded.test.js +3 -3
- package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/createSwap.test.js +3 -3
- package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getAllSupportedCurrencies.test.js +1 -1
- package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getDepositCurrencies.test.js +1 -1
- package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getSwapInfo.test.js +124 -4
- package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getWithdrawalCurrencies.test.js +1 -1
- package/src/swaps-lib/test/utils/swapUtils/safeHandleRequestsLimitExceeding.test.js +2 -2
- package/src/swaps-lib/utils/swapUtils.js +6 -6
- package/{styles → src/ui-kit/assets/styles}/index.scss +1 -1
- package/src/{assets → ui-kit/assets}/wrappedImages/arrowWhite.jsx +1 -1
- package/src/{components → ui-kit/components}/atoms/AssetIcon/AssetIcon.jsx +5 -4
- package/src/{components → ui-kit/components}/atoms/AssetIcon/asset-icon.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/AssetSelection/AssetSelection.jsx +8 -7
- package/src/{components → ui-kit/components}/atoms/AssetSelection/asset-selection.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/BackgroundTitle/background-title.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/InformationMessage/InformationMessage.jsx +6 -5
- package/src/{components → ui-kit/components}/atoms/InformationMessage/information-message.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/Input/Input.jsx +23 -22
- package/src/{components → ui-kit/components}/atoms/Input/input.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/LoadingDots/LoadingDots.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/NoticeIcon/NoticeIcon.jsx +6 -7
- package/src/{components → ui-kit/components}/atoms/NoticeIcon/notice-icon.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/QrCode/QrCode.jsx +3 -2
- package/src/{components → ui-kit/components}/atoms/QrCode/qr-code.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/RateSelector/RateSelector.jsx +1 -0
- package/src/{components → ui-kit/components}/atoms/RateSelector/rate-selector.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/SupportChat/SupportChat.jsx +1 -0
- package/src/{components → ui-kit/components}/atoms/Textarea/Textarea.jsx +19 -17
- package/src/{components → ui-kit/components}/atoms/Textarea/textarea.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/TitleBox/TitleBox.jsx +19 -19
- package/src/{components → ui-kit/components}/atoms/TitleBox/title-box.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/Tooltip/Tooltip.jsx +17 -8
- package/src/{components → ui-kit/components}/atoms/Tooltip/tooltip.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/TwoLinesOfText/LinesOfText.jsx +11 -9
- package/src/{components → ui-kit/components}/atoms/TwoLinesOfText/lines-of-text.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/Validation/Validation.jsx +2 -2
- package/src/{components → ui-kit/components}/atoms/Validation/validation.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/buttons/Button/Button.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/buttons/Close/Close.jsx +7 -2
- package/src/{components → ui-kit/components}/atoms/buttons/Close/close.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/buttons/LinkButton/LinkButton.jsx +9 -3
- package/src/{components → ui-kit/components}/atoms/buttons/LinkButton/link-button.module.scss +1 -1
- package/src/{components → ui-kit/components}/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx +1 -1
- package/src/{components → ui-kit/components}/atoms/buttons/RadioButtonWithText/radio-button-with-text.module.scss +1 -1
- package/src/{components → ui-kit/components}/molecules/AmountInput/AmountInput.jsx +5 -4
- package/src/{components → ui-kit/components}/molecules/AmountInput/amount-input.module.scss +1 -1
- package/src/{components → ui-kit/components}/molecules/CoinPicker/CoinPicker.jsx +27 -25
- package/src/{components → ui-kit/components}/molecules/CoinPicker/coin-picker.module.scss +1 -1
- package/src/{components → ui-kit/components}/molecules/LineWithIconLink/line-with-icon-link.module.scss +1 -1
- package/src/{components → ui-kit/components}/molecules/TitledLineWithIconLink/TitledLineWithIconLink.jsx +8 -6
- package/src/{components → ui-kit/components}/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx +3 -1
- package/src/{components → ui-kit/components}/organisms/Dialog/Dialog.jsx +35 -6
- package/src/{components → ui-kit/components}/organisms/Dialog/DialogButtons/DialogButtons.jsx +3 -3
- package/src/{components → ui-kit/components}/organisms/Dialog/DialogButtons/dialog-buttons.module.scss +1 -1
- package/src/{components → ui-kit/components}/organisms/Dialog/DialogStep/DialogStep.jsx +49 -47
- package/src/{components → ui-kit/components}/organisms/Dialog/DialogStep/dialog-step.module.scss +1 -1
- package/src/{components → ui-kit/components}/organisms/Dialog/dialog.module.scss +1 -1
- package/src/{components → ui-kit/components}/organisms/SwapForm/SwapForm.jsx +158 -63
- package/src/{components → ui-kit/components}/organisms/SwapForm/swap-form.module.scss +1 -1
- package/src/{components → ui-kit/components}/templates/DeterminedErrorDialogStep/DeterminedErrorDialogStep.jsx +2 -2
- package/src/{components → ui-kit}/hooks/useCallHandlingErrors.js +1 -1
- package/src/ui-kit/hooks/useIsHydrated.js +12 -0
- package/src/{components → ui-kit}/utils/textUtils.js +1 -1
- package/coverage/rabbit-ui-kit/src/components/atoms/AssetIcon/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/atoms/Input/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/atoms/LoadingDots/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/atoms/NoticeIcon/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/atoms/QrCode/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/atoms/RateSelector/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/atoms/SupportChat/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/atoms/Textarea/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/atoms/TitleBox/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/atoms/Tooltip/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/atoms/TwoLinesOfText/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/atoms/Validation/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/molecules/AmountInput/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/molecules/CoinPicker/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/molecules/LineWithIconLink/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/molecules/TitledLineWithIconLink/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/organisms/CoinPickerDialogStep/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/organisms/Dialog/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/organisms/SwapForm/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/components/templates/DeterminedErrorDialogStep/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/constants/atoms/Close/close.jsx.html +0 -100
- package/coverage/rabbit-ui-kit/src/constants/atoms/Close/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/constants/atoms/LinkButton/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/constants/atoms/LinkButton/linkButton.jsx.html +0 -103
- package/coverage/rabbit-ui-kit/src/constants/atoms/Tooltip/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/constants/atoms/Tooltip/tooltip.jsx.html +0 -109
- package/coverage/rabbit-ui-kit/src/constants/index.html +0 -116
- package/coverage/rabbit-ui-kit/src/constants/organisms/dialog/DialogStep/dialogStep.js.html +0 -88
- package/coverage/rabbit-ui-kit/src/constants/organisms/dialog/dialog.js.html +0 -172
- package/coverage/rabbit-ui-kit/src/constants/organisms/dialog/index.html +0 -116
- package/src/assets/image/icons/arrow-tosca.svg +0 -3
- package/src/constants/atoms/Close/close.jsx +0 -5
- package/src/constants/atoms/LinkButton/linkButton.jsx +0 -6
- package/src/constants/atoms/Tooltip/tooltip.jsx +0 -8
- package/src/constants/organisms/dialog/DialogStep/dialogStep.js +0 -1
- package/src/constants/organisms/dialog/dialog.js +0 -29
- /package/src/{common → common-apis}/adapters/axiosAdapter.js +0 -0
- /package/src/{common → common-apis}/adapters/qrUtils.js +0 -0
- /package/src/{common → common-apis}/amountUtils.js +0 -0
- /package/src/{common → common-apis}/errorUtils.js +0 -0
- /package/src/{common → common-apis}/external-apis/apiGroups.js +0 -0
- /package/src/{common → common-apis}/fiatCurrenciesService.js +0 -0
- /package/src/{constants → common-apis}/globalConstants.jsx +0 -0
- /package/src/{common → common-apis}/models/blockchain.js +0 -0
- /package/src/{common → common-apis}/models/coin.js +0 -0
- /package/src/{common → common-apis}/models/protocol.js +0 -0
- /package/src/{common → common-apis}/tests/amountUtils/composeRateText.test.js +0 -0
- /package/src/{common → common-apis}/tests/integration/external-apis/ipAddressProviders/getClientIpAddress.test.js +0 -0
- /package/src/{common → common-apis}/utils/cache.js +0 -0
- /package/src/{common → common-apis}/utils/emailAPI.js +0 -0
- /package/src/{common → common-apis}/utils/logging/logger.js +0 -0
- /package/src/{common → common-apis}/utils/logging/logsStorage.js +0 -0
- /package/src/{common → common-apis}/utils/postponeExecution.js +0 -0
- /package/src/{common → common-apis}/utils/safeStringify.js +0 -0
- /package/src/{robustExteranlApiCallerService → robust-api-caller}/cancelProcessing.js +0 -0
- /package/src/{robustExteranlApiCallerService → robust-api-caller}/externalApiProvider.js +0 -0
- /package/{styles → src/ui-kit/assets/styles}/_functions.scss +0 -0
- /package/{styles → src/ui-kit/assets/styles}/_global-classes.scss +0 -0
- /package/{styles → src/ui-kit/assets/styles}/_mixins.scss +0 -0
- /package/{styles → src/ui-kit/assets/styles}/_placeholder.scss +0 -0
- /package/{styles → src/ui-kit/assets/styles}/_variables.scss +0 -0
- /package/{styles → src/ui-kit/assets/styles}/colors/_light-colors.scss +0 -0
- /package/{styles → src/ui-kit/assets/styles}/colors/_solid-colors.scss +0 -0
- /package/{styles → src/ui-kit/assets/styles}/fonts/NunitoSans-Bold.ttf +0 -0
- /package/{styles → src/ui-kit/assets/styles}/fonts/NunitoSans-ExtraBold.ttf +0 -0
- /package/{styles → src/ui-kit/assets/styles}/fonts/NunitoSans-Light.ttf +0 -0
- /package/{styles → src/ui-kit/assets/styles}/fonts/NunitoSans-Regular.ttf +0 -0
- /package/{styles → src/ui-kit/assets/styles}/fonts/NunitoSans-SemiBold.ttf +0 -0
- /package/{styles → src/ui-kit/assets/styles}/global-styles-index.scss +0 -0
- /package/{styles → src/ui-kit/assets/styles}/size/_margin-size.scss +0 -0
- /package/{styles → src/ui-kit/assets/styles}/size/_padding-size.scss +0 -0
- /package/src/{assets → ui-kit/assets}/wrappedImages/arrowIcon.jsx +0 -0
- /package/src/{assets → ui-kit/assets}/wrappedImages/arrowTosca.jsx +0 -0
- /package/src/{assets → ui-kit/assets}/wrappedImages/darkRectangle.jsx +0 -0
- /package/src/{assets → ui-kit/assets}/wrappedImages/determinedError.jsx +0 -0
- /package/src/{assets → ui-kit/assets}/wrappedImages/failedValidationIcon.jsx +0 -0
- /package/src/{assets → ui-kit/assets}/wrappedImages/infoIcon.jsx +0 -0
- /package/src/{assets → ui-kit/assets}/wrappedImages/noticeQuestionIcon.jsx +0 -0
- /package/src/{assets → ui-kit/assets}/wrappedImages/successfulValidationIcon.jsx +0 -0
- /package/src/{assets → ui-kit/assets}/wrappedImages/walletIcon.jsx +0 -0
- /package/src/{components → ui-kit/components}/atoms/BackgroundTitle/BackgroundTitle.jsx +0 -0
- /package/src/{components → ui-kit/components}/atoms/LoadingDots/LoadingDots.jsx +0 -0
- /package/src/{components → ui-kit/components}/atoms/buttons/Button/Button.jsx +0 -0
- /package/src/{components → ui-kit/components}/molecules/LineWithIconLink/LineWithIconLink.jsx +0 -0
- /package/src/{components → ui-kit}/hooks/useReferredState.js +0 -0
- /package/src/{components → ui-kit}/tests/utils/inputValueProviders/provideFormatOfFloatValueByInputString.test.js +0 -0
- /package/src/{components → ui-kit}/tests/utils/urlQueryUtils/getQueryParameterValues.test.js +0 -0
- /package/src/{components → ui-kit}/tests/utils/urlQueryUtils/saveQueryParameterAndValues.test.js +0 -0
- /package/src/{components → ui-kit}/utils/inputValueProviders.js +0 -0
- /package/src/{components → ui-kit}/utils/uiUtils.js +0 -0
- /package/src/{components → ui-kit}/utils/urlQueryUtils.js +0 -0
|
@@ -4,17 +4,18 @@ import PropTypes from "prop-types";
|
|
|
4
4
|
|
|
5
5
|
import s from "./swap-form.module.scss";
|
|
6
6
|
|
|
7
|
-
import { useReferredState } from "
|
|
8
|
-
import { useCallHandlingErrors } from "
|
|
7
|
+
import { useReferredState } from "../../../hooks/useReferredState.js";
|
|
8
|
+
import { useCallHandlingErrors } from "../../../hooks/useCallHandlingErrors.js";
|
|
9
9
|
|
|
10
|
-
import { AmountUtils } from "
|
|
10
|
+
import { AmountUtils } from "../../../../common-apis/amountUtils.js";
|
|
11
11
|
import { TitleBox } from "../../atoms/TitleBox/TitleBox.jsx";
|
|
12
12
|
import { AmountInput } from "../../molecules/AmountInput/AmountInput.jsx";
|
|
13
13
|
import { Validation } from "../../atoms/Validation/Validation.jsx";
|
|
14
14
|
import { Button } from "../../atoms/buttons/Button/Button.jsx";
|
|
15
15
|
import { Textarea } from "../../atoms/Textarea/Textarea.jsx";
|
|
16
|
-
import { TOOLTIP_POSITIONS } from "../../../constants/atoms/Tooltip/tooltip.jsx";
|
|
17
16
|
import { RateSelector } from "../../atoms/RateSelector/RateSelector.jsx";
|
|
17
|
+
import { TOOLTIP_POSITIONS } from "../../atoms/Tooltip/Tooltip.jsx";
|
|
18
|
+
import { useIsHydrated } from "../../../hooks/useIsHydrated.js";
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* This is the type definition of a function used inside SwapForm to compose the URL for the hero button.
|
|
@@ -79,17 +80,21 @@ import { RateSelector } from "../../atoms/RateSelector/RateSelector.jsx";
|
|
|
79
80
|
*/
|
|
80
81
|
|
|
81
82
|
/**
|
|
82
|
-
* Handler for the confirm button click. You should implement
|
|
83
|
+
* Handler for the confirm button click. You should implement error handling inside it.
|
|
83
84
|
*
|
|
84
85
|
* @function
|
|
85
86
|
* @name handleConfirmButtonClick
|
|
86
|
-
* @param {function} resetButtonLoader -
|
|
87
|
+
* @param {function} resetButtonLoader - Callback for resetting the confirm button loader.
|
|
87
88
|
* @param {function} setValidationContent - Function to set the validation error message on the form.
|
|
88
89
|
* @param {function} setBalanceValid - Function to set the balance validity, accepts a boolean.
|
|
89
90
|
* @param {function} setMinimalAmountValid - Function to set the minimal amount validity, accepts a boolean.
|
|
90
91
|
* @param {function} setMaximumAmountValid - Function to set the maximum amount validity, accepts a boolean.
|
|
91
92
|
* @param {function} setIsPairSupported - Function to set the pair support status, accepts a boolean.
|
|
92
93
|
* @param {function} setIsSameCoins - Function to set the status if the same coins are used, accepts a boolean.
|
|
94
|
+
* @param {string} recipientAddress - The address of the recipient.
|
|
95
|
+
* @param {string} recipientAddressExtraId - Additional identifier for the recipient address.
|
|
96
|
+
* @param {string} refundAddress - The address for refund.
|
|
97
|
+
* @param {string} refundAddressExtraId - Additional identifier for the refund address.
|
|
93
98
|
* @return {void}
|
|
94
99
|
*/
|
|
95
100
|
|
|
@@ -136,6 +141,28 @@ import { RateSelector } from "../../atoms/RateSelector/RateSelector.jsx";
|
|
|
136
141
|
* }>}
|
|
137
142
|
*/
|
|
138
143
|
|
|
144
|
+
/**
|
|
145
|
+
* Function returning extraId name for asset if present.
|
|
146
|
+
* You must pass it if you use the form with addresses inputs.
|
|
147
|
+
*
|
|
148
|
+
* @function
|
|
149
|
+
* @name getExtraIdNameByTicker
|
|
150
|
+
* @param {string} ticker - Ticker symbol of the asset.
|
|
151
|
+
* @return {string|null}
|
|
152
|
+
*/
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Function validating addresses.
|
|
156
|
+
* By default, will treat any addresses as valid.
|
|
157
|
+
* You must pass it if you use the form with addresses inputs and want to validate addresses.
|
|
158
|
+
*
|
|
159
|
+
* @function
|
|
160
|
+
* @name validateAddressByTicker
|
|
161
|
+
* @param {string} ticker - Ticker symbol of the asset.
|
|
162
|
+
* @param {string} address - Address to be validated
|
|
163
|
+
* @return {Promise<boolean>}
|
|
164
|
+
*/
|
|
165
|
+
|
|
139
166
|
/**
|
|
140
167
|
* Swap form provides basic functionality for entering to/from amounts both in crypto and fiat, switching assets,
|
|
141
168
|
* selecting assets, showing balance for assets. It gracefully handles unavailable fiat rates and can work
|
|
@@ -183,6 +210,8 @@ import { RateSelector } from "../../atoms/RateSelector/RateSelector.jsx";
|
|
|
183
210
|
* @param {object} [props.translations] - Object containing translations, default English texts will be used if omitted.
|
|
184
211
|
* @param {string} props.swapSeparatorIconSrc - Source URL for the swap separator icon.
|
|
185
212
|
* @param {boolean} props.swapButtonAlwaysActive - Setting that allows the form state to proceed to the next step regardless of validity.
|
|
213
|
+
* @param {getExtraIdNameByTicker} props.getExtraIdNameByTicker - Function returning extraId name for asset
|
|
214
|
+
* @param {validateAddressByTicker} [props.validateAddressByTicker] - Function validating address
|
|
186
215
|
* @return {JSX.Element} Rendered SwapForm component.
|
|
187
216
|
* @constructor
|
|
188
217
|
*/
|
|
@@ -212,7 +241,11 @@ export const SwapForm = ({
|
|
|
212
241
|
setMinimalAmountValid,
|
|
213
242
|
setMaximumAmountValid,
|
|
214
243
|
setIsPairSupported,
|
|
215
|
-
setIsSameCoins
|
|
244
|
+
setIsSameCoins,
|
|
245
|
+
recipientAddress,
|
|
246
|
+
recipientAddressExtraId,
|
|
247
|
+
refundAddress,
|
|
248
|
+
refundAddressExtraId
|
|
216
249
|
) => {},
|
|
217
250
|
composeConfirmButtonTo = (fromTicker, toTicker, fromAmount) => "",
|
|
218
251
|
setSwapCreationEstimation = details => {},
|
|
@@ -241,6 +274,10 @@ export const SwapForm = ({
|
|
|
241
274
|
formHasFiat = true,
|
|
242
275
|
termsOfUseUrl = null,
|
|
243
276
|
privacyPolicyUrl = null,
|
|
277
|
+
getExtraIdNameByTicker = ticker => null,
|
|
278
|
+
validateAddressByTicker = ticker => false,
|
|
279
|
+
swapSeparatorIconSrc,
|
|
280
|
+
swapButtonAlwaysActive = false,
|
|
244
281
|
translations = {
|
|
245
282
|
swapAllButtonTitles: {
|
|
246
283
|
enable: "Swap all",
|
|
@@ -268,10 +305,12 @@ export const SwapForm = ({
|
|
|
268
305
|
},
|
|
269
306
|
addressFields: {
|
|
270
307
|
addressTitle: "Recepient address",
|
|
271
|
-
|
|
272
|
-
extraIdPlaceholder: "
|
|
273
|
-
|
|
274
|
-
"Please check if your
|
|
308
|
+
refundAddressTitle: "Refund address",
|
|
309
|
+
extraIdPlaceholder: "(optional)",
|
|
310
|
+
refundAddressExtraIdNotice:
|
|
311
|
+
"Please check if your address requires additional identifier (sometimes called a Memo, Destination Tag, Tag, ID, Label or Note). Including this identifier is crucial when required, as omitting or misentering it can result in lost assets.",
|
|
312
|
+
receivingAddressExtraIdNotice:
|
|
313
|
+
"Please check if your address requires additional identifier (sometimes called a Memo, Destination Tag, Tag, ID, Label or Note). Including this identifier is crucial when required, as omitting or misentering it can result in lost assets.",
|
|
275
314
|
},
|
|
276
315
|
rateSelector: {
|
|
277
316
|
floatingRate: "Floating rate",
|
|
@@ -279,16 +318,6 @@ export const SwapForm = ({
|
|
|
279
318
|
},
|
|
280
319
|
confirmButtonText: "Swap",
|
|
281
320
|
},
|
|
282
|
-
swapSeparatorIconSrc,
|
|
283
|
-
swapButtonAlwaysActive = false,
|
|
284
|
-
recepientAddress,
|
|
285
|
-
recepientAddressExtraId,
|
|
286
|
-
recepientAddressValid = true,
|
|
287
|
-
recepientAddressExtraIdValid = true,
|
|
288
|
-
setRecepientAddress,
|
|
289
|
-
setRecepientAddressExtraId,
|
|
290
|
-
recepientAddressExtraIdAvailable = false,
|
|
291
|
-
displayRateSelector = false,
|
|
292
321
|
}) => {
|
|
293
322
|
const DETAIL_REFRESH_INTERVAL_MS = 1.5 * 60000;
|
|
294
323
|
const IS_FIXED_BY_DEFAULT = false;
|
|
@@ -316,7 +345,6 @@ export const SwapForm = ({
|
|
|
316
345
|
// write single useEffect setting sendAssetAmount to the=is passed value and simplify the logic below. task_id=6453251e49b04c5e88a3cc771479ffb5
|
|
317
346
|
const [isAmountZero, setIsAmountZero] = useState(preservedAmount == null || String(preservedAmount) === "0");
|
|
318
347
|
const [isLoading, setIsLoading] = useReferredState(false); // Whether the form is in the progress of loading some data (new rates, for example)
|
|
319
|
-
const [isAddressFieldEnabled, setIsAddressFieldEnabled] = useState(false);
|
|
320
348
|
const [isFixedRate, setIsFixedRate] = useReferredState(null);
|
|
321
349
|
|
|
322
350
|
const [confirmButtonTo, setConfirmButtonTo] = useState(
|
|
@@ -331,10 +359,24 @@ export const SwapForm = ({
|
|
|
331
359
|
const [dataUpdateTimeoutId, setDataUpdateTimeoutId] = useReferredState(null);
|
|
332
360
|
const [idleDataUpdateTimeoutId, setIdleDataUpdateTimeoutId] = useReferredState(null);
|
|
333
361
|
|
|
362
|
+
const [recipientAddress, setRecipientAddress] = useReferredState("");
|
|
363
|
+
const [recipientAddressExtraId, setRecipientAddressExtraId] = useReferredState("");
|
|
364
|
+
const [isRecipientAddressValid, setIsRecipientAddressValid] = useReferredState(false);
|
|
365
|
+
const [isRefundAddressRequired, setIsRefundAddressRequired] = useState(false);
|
|
366
|
+
const [refundAddress, setRefundAddress] = useReferredState("");
|
|
367
|
+
const [refundAddressExtraId, setRefundAddressExtraId] = useReferredState("");
|
|
368
|
+
const [isRefundAddressValid, setIsRefundAddressValid] = useReferredState(false);
|
|
369
|
+
|
|
334
370
|
const callHandlingErrors = useCallHandlingErrors();
|
|
371
|
+
const isHydrated = useIsHydrated();
|
|
335
372
|
|
|
336
373
|
const recalculationDelayOnTyping = 1000;
|
|
337
374
|
|
|
375
|
+
const isAddressFieldEnabled = !formHasBalance;
|
|
376
|
+
const displayRateSelector = !formHasBalance;
|
|
377
|
+
const recipientAddressExtraIdName = getExtraIdNameByTicker(receivingAssetTicker);
|
|
378
|
+
const refundAddressExtraIdName = getExtraIdNameByTicker(sendingAssetTicker);
|
|
379
|
+
|
|
338
380
|
const handleSendAssetAmountChange = amount => {
|
|
339
381
|
if (amount != null && amount !== "") {
|
|
340
382
|
setUpdateReceiveInputTo(AmountUtils.trim(BigNumber(amount).times(swapRate), receivingAssetDecimalCount));
|
|
@@ -491,6 +533,7 @@ export const SwapForm = ({
|
|
|
491
533
|
|
|
492
534
|
setAmountLimitsAndRate(swapCreationInfo);
|
|
493
535
|
setSwapCreationEstimation(swapCreationInfo);
|
|
536
|
+
setIsRefundAddressRequired(swapCreationInfo?.isRefundAddressRequired);
|
|
494
537
|
processMinMaxAmounts(isSwapAll.current ? swapCreationInfo.fromAmountCoins : amount);
|
|
495
538
|
setIsSwapCalculated(true);
|
|
496
539
|
} else {
|
|
@@ -630,9 +673,9 @@ export const SwapForm = ({
|
|
|
630
673
|
isSwapCalculated &&
|
|
631
674
|
(!isSameCoins || !formHasBalance) &&
|
|
632
675
|
isPairSupported &&
|
|
633
|
-
(!isAddressFieldEnabled ||
|
|
676
|
+
(!isAddressFieldEnabled || isRecipientAddressValid.current) &&
|
|
677
|
+
(!isRefundAddressRequired || isRefundAddressValid.current))
|
|
634
678
|
);
|
|
635
|
-
|
|
636
679
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
637
680
|
}, [
|
|
638
681
|
balanceValid,
|
|
@@ -643,9 +686,49 @@ export const SwapForm = ({
|
|
|
643
686
|
isSameCoins,
|
|
644
687
|
isPairSupported,
|
|
645
688
|
isAddressFieldEnabled,
|
|
646
|
-
|
|
689
|
+
isRecipientAddressValid.current,
|
|
690
|
+
isRefundAddressRequired,
|
|
691
|
+
isRefundAddressValid.current,
|
|
647
692
|
]);
|
|
648
693
|
|
|
694
|
+
useEffect(() => {
|
|
695
|
+
setIsRecipientAddressValid(false);
|
|
696
|
+
setRecipientAddress("");
|
|
697
|
+
setRecipientAddressExtraId("");
|
|
698
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
699
|
+
}, [receivingAssetTicker]);
|
|
700
|
+
|
|
701
|
+
useEffect(() => {
|
|
702
|
+
setIsRefundAddressValid(false);
|
|
703
|
+
setRefundAddress("");
|
|
704
|
+
setRefundAddressExtraId("");
|
|
705
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
706
|
+
}, [sendingAssetTicker]);
|
|
707
|
+
|
|
708
|
+
useEffect(() => {
|
|
709
|
+
(async () => {
|
|
710
|
+
if (!receivingAssetTicker) return;
|
|
711
|
+
setIsRecipientAddressValid(
|
|
712
|
+
recipientAddress.current === ""
|
|
713
|
+
? false
|
|
714
|
+
: await validateAddressByTicker(receivingAssetTicker, recipientAddress.current)
|
|
715
|
+
);
|
|
716
|
+
})();
|
|
717
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
718
|
+
}, [recipientAddress.current, recipientAddressExtraId.current, receivingAssetTicker]);
|
|
719
|
+
|
|
720
|
+
useEffect(() => {
|
|
721
|
+
(async () => {
|
|
722
|
+
if (!sendingAssetTicker || !isRefundAddressRequired) return;
|
|
723
|
+
setIsRefundAddressValid(
|
|
724
|
+
refundAddress.current === ""
|
|
725
|
+
? false
|
|
726
|
+
: await validateAddressByTicker(sendingAssetTicker, refundAddress.current)
|
|
727
|
+
);
|
|
728
|
+
})();
|
|
729
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
730
|
+
}, [refundAddress.current, refundAddressExtraId.current, sendingAssetTicker, isRefundAddressRequired]);
|
|
731
|
+
|
|
649
732
|
useEffect(() => {
|
|
650
733
|
// Here we set up auto recalculations for the swap details if the form is ready to swap but is idle for some time
|
|
651
734
|
let timeoutId = null;
|
|
@@ -714,27 +797,6 @@ export const SwapForm = ({
|
|
|
714
797
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
715
798
|
}, [sendAssetAmount.current]);
|
|
716
799
|
|
|
717
|
-
// Checking if all necessary props for address input are passed properly.
|
|
718
|
-
useEffect(() => {
|
|
719
|
-
setIsAddressFieldEnabled(
|
|
720
|
-
recepientAddress !== undefined &&
|
|
721
|
-
recepientAddressExtraId !== undefined &&
|
|
722
|
-
recepientAddressValid !== undefined &&
|
|
723
|
-
setRecepientAddress !== undefined &&
|
|
724
|
-
typeof setRecepientAddress === "function" &&
|
|
725
|
-
setRecepientAddressExtraId !== undefined &&
|
|
726
|
-
typeof setRecepientAddressExtraId === "function"
|
|
727
|
-
);
|
|
728
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
729
|
-
}, [
|
|
730
|
-
recepientAddress,
|
|
731
|
-
recepientAddressExtraId,
|
|
732
|
-
recepientAddressValid,
|
|
733
|
-
recepientAddressExtraIdValid,
|
|
734
|
-
setRecepientAddress,
|
|
735
|
-
setRecepientAddressExtraId,
|
|
736
|
-
]);
|
|
737
|
-
|
|
738
800
|
return (
|
|
739
801
|
<div className={s["swap-form"]}>
|
|
740
802
|
<TitleBox
|
|
@@ -882,6 +944,8 @@ export const SwapForm = ({
|
|
|
882
944
|
""
|
|
883
945
|
)}
|
|
884
946
|
</>
|
|
947
|
+
) : !minimalAmount.current ? (
|
|
948
|
+
""
|
|
885
949
|
) : (
|
|
886
950
|
<>
|
|
887
951
|
{translations.informationBlock.minimumAmount}
|
|
@@ -923,34 +987,57 @@ export const SwapForm = ({
|
|
|
923
987
|
<TitleBox title={translations.addressFields.addressTitle}>
|
|
924
988
|
<Textarea
|
|
925
989
|
type={"text"}
|
|
926
|
-
onChange={e =>
|
|
927
|
-
value={
|
|
990
|
+
onChange={e => setRecipientAddress(e.target.value)}
|
|
991
|
+
value={recipientAddress.current}
|
|
928
992
|
adaptiveHeight={true}
|
|
929
|
-
errorEncountered={
|
|
993
|
+
errorEncountered={recipientAddress.current !== "" && !isRecipientAddressValid.current}
|
|
930
994
|
/>
|
|
931
995
|
</TitleBox>
|
|
932
|
-
{
|
|
996
|
+
{isHydrated && recipientAddressExtraIdName ? (
|
|
933
997
|
<TitleBox
|
|
934
|
-
title={
|
|
935
|
-
titleNoticeText={translations.addressFields.
|
|
998
|
+
title={recipientAddressExtraIdName}
|
|
999
|
+
titleNoticeText={translations.addressFields.receivingAddressExtraIdNotice}
|
|
936
1000
|
titleNoticePosition={TOOLTIP_POSITIONS.TOP_LEFT}
|
|
937
1001
|
>
|
|
938
1002
|
<Textarea
|
|
939
1003
|
type={"text"}
|
|
940
|
-
onChange={e =>
|
|
941
|
-
value={
|
|
1004
|
+
onChange={e => setRecipientAddressExtraId(e.target.value)}
|
|
1005
|
+
value={recipientAddressExtraId.current}
|
|
942
1006
|
adaptiveHeight={true}
|
|
943
|
-
errorEncountered={!recepientAddressExtraIdValid}
|
|
944
1007
|
placeholder={translations.addressFields.extraIdPlaceholder}
|
|
945
1008
|
/>
|
|
946
1009
|
</TitleBox>
|
|
947
|
-
) :
|
|
948
|
-
|
|
949
|
-
|
|
1010
|
+
) : null}
|
|
1011
|
+
{isHydrated && isRefundAddressRequired ? (
|
|
1012
|
+
<>
|
|
1013
|
+
<TitleBox title={translations.addressFields.refundAddressTitle}>
|
|
1014
|
+
<Textarea
|
|
1015
|
+
type={"text"}
|
|
1016
|
+
onChange={e => setRefundAddress(e.target.value)}
|
|
1017
|
+
value={refundAddress.current}
|
|
1018
|
+
adaptiveHeight={true}
|
|
1019
|
+
errorEncountered={refundAddress.current !== "" && !isRefundAddressValid.current}
|
|
1020
|
+
/>
|
|
1021
|
+
</TitleBox>
|
|
1022
|
+
{refundAddressExtraIdName ? (
|
|
1023
|
+
<TitleBox
|
|
1024
|
+
title={refundAddressExtraIdName}
|
|
1025
|
+
titleNoticeText={translations.addressFields.refundAddressExtraIdNotice}
|
|
1026
|
+
titleNoticePosition={TOOLTIP_POSITIONS.TOP_LEFT}
|
|
1027
|
+
>
|
|
1028
|
+
<Textarea
|
|
1029
|
+
type={"text"}
|
|
1030
|
+
onChange={e => setRefundAddressExtraId(e.target.value)}
|
|
1031
|
+
value={refundAddressExtraId.current}
|
|
1032
|
+
adaptiveHeight={true}
|
|
1033
|
+
placeholder={translations.addressFields.extraIdPlaceholder}
|
|
1034
|
+
/>
|
|
1035
|
+
</TitleBox>
|
|
1036
|
+
) : null}
|
|
1037
|
+
</>
|
|
1038
|
+
) : null}
|
|
950
1039
|
</div>
|
|
951
|
-
) :
|
|
952
|
-
""
|
|
953
|
-
)}
|
|
1040
|
+
) : null}
|
|
954
1041
|
|
|
955
1042
|
{displayRateSelector ? (
|
|
956
1043
|
<div className={s["swap-form-rate-selector"]}>
|
|
@@ -1005,7 +1092,11 @@ export const SwapForm = ({
|
|
|
1005
1092
|
setMinimalAmountValid,
|
|
1006
1093
|
setMaximumAmountValid,
|
|
1007
1094
|
setIsPairSupported,
|
|
1008
|
-
setIsSameCoins
|
|
1095
|
+
setIsSameCoins,
|
|
1096
|
+
recipientAddress.current,
|
|
1097
|
+
recipientAddressExtraId.current,
|
|
1098
|
+
refundAddress.current,
|
|
1099
|
+
refundAddressExtraId.current
|
|
1009
1100
|
)
|
|
1010
1101
|
}
|
|
1011
1102
|
fullWidthOnMobiles
|
|
@@ -1075,7 +1166,11 @@ SwapForm.defaultProps = {
|
|
|
1075
1166
|
setMinimalAmountValid,
|
|
1076
1167
|
setMaximumAmountValid,
|
|
1077
1168
|
setIsPairSupported,
|
|
1078
|
-
setIsSameCoins
|
|
1169
|
+
setIsSameCoins,
|
|
1170
|
+
recipientAddress,
|
|
1171
|
+
recipientAddressExtraId,
|
|
1172
|
+
refundAddress,
|
|
1173
|
+
refundAddressExtraId
|
|
1079
1174
|
) => {},
|
|
1080
1175
|
composeConfirmButtonTo: (fromTicker, toTicker, fromAmount) => "",
|
|
1081
1176
|
setSwapCreationEstimation: details => {},
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import PropTypes from "prop-types";
|
|
3
3
|
|
|
4
|
-
import { DialogStep } from "../../organisms/Dialog/DialogStep/DialogStep";
|
|
4
|
+
import { DialogStep } from "../../organisms/Dialog/DialogStep/DialogStep.jsx";
|
|
5
5
|
|
|
6
|
-
import determinedErrorImage from "../../../assets/wrappedImages/determinedError";
|
|
6
|
+
import determinedErrorImage from "../../../assets/wrappedImages/determinedError.jsx";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Template dialog step to display an error through the title and subtitle.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useState, useEffect } from "react";
|
|
2
|
+
|
|
3
|
+
// Custom hook to check if the component is hydrated
|
|
4
|
+
export function useIsHydrated() {
|
|
5
|
+
const [isHydrated, setIsHydrated] = useState(false);
|
|
6
|
+
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
setIsHydrated(true);
|
|
9
|
+
}, []);
|
|
10
|
+
|
|
11
|
+
return isHydrated;
|
|
12
|
+
}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for rabbit-ui-kit/src/components/atoms/AssetIcon</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../../../../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../../../../../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../../../../../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../../../../index.html">All files</a> rabbit-ui-kit/src/components/atoms/AssetIcon</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">0% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>0/54</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">0% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/1</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">0% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>0/1</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">0% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>0/54</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line low'></div>
|
|
65
|
-
<div class="pad1">
|
|
66
|
-
<table class="coverage-summary">
|
|
67
|
-
<thead>
|
|
68
|
-
<tr>
|
|
69
|
-
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
|
70
|
-
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
|
71
|
-
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
|
72
|
-
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
73
|
-
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
|
74
|
-
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
75
|
-
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
|
76
|
-
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
77
|
-
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
|
78
|
-
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
79
|
-
</tr>
|
|
80
|
-
</thead>
|
|
81
|
-
<tbody><tr>
|
|
82
|
-
<td class="file low" data-value="AssetIcon.jsx"><a href="AssetIcon.jsx.html">AssetIcon.jsx</a></td>
|
|
83
|
-
<td data-value="0" class="pic low">
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
85
|
-
</td>
|
|
86
|
-
<td data-value="0" class="pct low">0%</td>
|
|
87
|
-
<td data-value="54" class="abs low">0/54</td>
|
|
88
|
-
<td data-value="0" class="pct low">0%</td>
|
|
89
|
-
<td data-value="1" class="abs low">0/1</td>
|
|
90
|
-
<td data-value="0" class="pct low">0%</td>
|
|
91
|
-
<td data-value="1" class="abs low">0/1</td>
|
|
92
|
-
<td data-value="0" class="pct low">0%</td>
|
|
93
|
-
<td data-value="54" class="abs low">0/54</td>
|
|
94
|
-
</tr>
|
|
95
|
-
|
|
96
|
-
</tbody>
|
|
97
|
-
</table>
|
|
98
|
-
</div>
|
|
99
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
100
|
-
</div><!-- /wrapper -->
|
|
101
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
|
-
Code coverage generated by
|
|
103
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2024-05-26T11:41:12.304Z
|
|
105
|
-
</div>
|
|
106
|
-
<script src="../../../../../prettify.js"></script>
|
|
107
|
-
<script>
|
|
108
|
-
window.onload = function () {
|
|
109
|
-
prettyPrint();
|
|
110
|
-
};
|
|
111
|
-
</script>
|
|
112
|
-
<script src="../../../../../sorter.js"></script>
|
|
113
|
-
<script src="../../../../../block-navigation.js"></script>
|
|
114
|
-
</body>
|
|
115
|
-
</html>
|
|
116
|
-
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for rabbit-ui-kit/src/components/atoms/Input</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../../../../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../../../../../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../../../../../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../../../../index.html">All files</a> rabbit-ui-kit/src/components/atoms/Input</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">0% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>0/182</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">0% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/1</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">0% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>0/1</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">0% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>0/182</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line low'></div>
|
|
65
|
-
<div class="pad1">
|
|
66
|
-
<table class="coverage-summary">
|
|
67
|
-
<thead>
|
|
68
|
-
<tr>
|
|
69
|
-
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
|
70
|
-
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
|
71
|
-
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
|
72
|
-
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
73
|
-
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
|
74
|
-
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
75
|
-
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
|
76
|
-
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
77
|
-
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
|
78
|
-
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
79
|
-
</tr>
|
|
80
|
-
</thead>
|
|
81
|
-
<tbody><tr>
|
|
82
|
-
<td class="file low" data-value="Input.jsx"><a href="Input.jsx.html">Input.jsx</a></td>
|
|
83
|
-
<td data-value="0" class="pic low">
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
85
|
-
</td>
|
|
86
|
-
<td data-value="0" class="pct low">0%</td>
|
|
87
|
-
<td data-value="182" class="abs low">0/182</td>
|
|
88
|
-
<td data-value="0" class="pct low">0%</td>
|
|
89
|
-
<td data-value="1" class="abs low">0/1</td>
|
|
90
|
-
<td data-value="0" class="pct low">0%</td>
|
|
91
|
-
<td data-value="1" class="abs low">0/1</td>
|
|
92
|
-
<td data-value="0" class="pct low">0%</td>
|
|
93
|
-
<td data-value="182" class="abs low">0/182</td>
|
|
94
|
-
</tr>
|
|
95
|
-
|
|
96
|
-
</tbody>
|
|
97
|
-
</table>
|
|
98
|
-
</div>
|
|
99
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
100
|
-
</div><!-- /wrapper -->
|
|
101
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
|
-
Code coverage generated by
|
|
103
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2024-05-26T11:41:12.304Z
|
|
105
|
-
</div>
|
|
106
|
-
<script src="../../../../../prettify.js"></script>
|
|
107
|
-
<script>
|
|
108
|
-
window.onload = function () {
|
|
109
|
-
prettyPrint();
|
|
110
|
-
};
|
|
111
|
-
</script>
|
|
112
|
-
<script src="../../../../../sorter.js"></script>
|
|
113
|
-
<script src="../../../../../block-navigation.js"></script>
|
|
114
|
-
</body>
|
|
115
|
-
</html>
|
|
116
|
-
|