@feathery/react 2.6.8 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Form/components/AIExtractionToast/ExtractionItem.d.ts +5 -5
- package/dist/Form/components/AIExtractionToast/icons.d.ts +7 -7
- package/dist/Form/components/AIExtractionToast/index.d.ts +8 -8
- package/dist/Form/components/AIExtractionToast/useAIExtractionToast.d.ts +64 -64
- package/dist/Form/components/DevNavBar.d.ts +1 -1
- package/dist/Form/components/ReactPortal.d.ts +2 -2
- package/dist/Form/definitions.d.ts +40 -40
- package/dist/Form/grid/CalendlyEmbed.d.ts +1 -1
- package/dist/Form/grid/Container/index.d.ts +19 -19
- package/dist/Form/grid/Element/index.d.ts +2 -2
- package/dist/Form/grid/Element/utils/address.d.ts +3 -3
- package/dist/Form/grid/Element/utils/utils.d.ts +13 -13
- package/dist/Form/grid/StyledContainer/hooks/index.d.ts +20 -20
- package/dist/Form/grid/StyledContainer/hooks/useFixedContainer.d.ts +1 -1
- package/dist/Form/grid/StyledContainer/index.d.ts +21 -21
- package/dist/Form/grid/StyledContainer/styles.d.ts +5 -5
- package/dist/Form/grid/StyledContainer/transform.d.ts +4 -4
- package/dist/Form/grid/StyledContainer/utils.d.ts +44 -44
- package/dist/Form/grid/index.d.ts +2 -2
- package/dist/Form/hooks/useCheckButtonAction.d.ts +6 -6
- package/dist/Form/hooks/useTrackUserInteraction.d.ts +2 -2
- package/dist/Form/index.d.ts +52 -52
- package/dist/Form/logic.d.ts +10 -10
- package/dist/Form/tests/testMocks.d.ts +6 -6
- package/dist/auth/LoginError.d.ts +3 -3
- package/dist/auth/LoginForm.d.ts +29 -29
- package/dist/auth/internal/AuthIntegrationInterface.d.ts +31 -31
- package/dist/auth/internal/useFormAuth.d.ts +10 -10
- package/dist/auth/internal/utils.d.ts +13 -13
- package/dist/auth/useAuthClient.d.ts +2 -2
- package/dist/auth/utils.d.ts +1 -1
- package/dist/elements/basic/ButtonElement.d.ts +2 -2
- package/dist/elements/basic/ImageElement.d.ts +3 -3
- package/dist/elements/basic/ProgressBarElement/components/SegmentBar.d.ts +2 -2
- package/dist/elements/basic/ProgressBarElement/components/SmoothBar.d.ts +2 -2
- package/dist/elements/basic/ProgressBarElement/index.d.ts +2 -2
- package/dist/elements/basic/TextElement.d.ts +2 -2
- package/dist/elements/basic/VideoElement.d.ts +2 -2
- package/dist/elements/components/ErrorInput.d.ts +2 -2
- package/dist/elements/components/FormControl.d.ts +10 -10
- package/dist/elements/components/FormOff.d.ts +10 -10
- package/dist/elements/components/InlineTooltip.d.ts +11 -11
- package/dist/elements/components/LoaderContainer.d.ts +10 -10
- package/dist/elements/components/Lottie.d.ts +2 -2
- package/dist/elements/components/Overlay.d.ts +15 -15
- package/dist/elements/components/Placeholder.d.ts +1 -1
- package/dist/elements/components/QuikFormViewer/transforms/form.d.ts +1 -1
- package/dist/elements/components/QuikFormViewer/transforms/header.d.ts +1 -1
- package/dist/elements/components/QuikFormViewer/transforms/sidebar.d.ts +6 -6
- package/dist/elements/components/QuikFormViewer.d.ts +9 -9
- package/dist/elements/components/Spinner.d.ts +4 -4
- package/dist/elements/components/TextHoverTooltip.d.ts +8 -8
- package/dist/elements/components/TextNodes.d.ts +4 -4
- package/dist/elements/components/Tooltip.d.ts +7 -7
- package/dist/elements/components/Watermark.d.ts +1 -1
- package/dist/elements/components/data/countries.d.ts +14 -14
- package/dist/elements/components/data/states/ae.d.ts +5 -5
- package/dist/elements/components/data/states/au.d.ts +5 -5
- package/dist/elements/components/data/states/br.d.ts +5 -5
- package/dist/elements/components/data/states/ca.d.ts +5 -5
- package/dist/elements/components/data/states/cl.d.ts +5 -5
- package/dist/elements/components/data/states/cn.d.ts +5 -5
- package/dist/elements/components/data/states/co.d.ts +5 -5
- package/dist/elements/components/data/states/eg.d.ts +5 -5
- package/dist/elements/components/data/states/es.d.ts +5 -5
- package/dist/elements/components/data/states/gb.d.ts +5 -5
- package/dist/elements/components/data/states/gt.d.ts +5 -5
- package/dist/elements/components/data/states/hk.d.ts +5 -5
- package/dist/elements/components/data/states/id.d.ts +5 -5
- package/dist/elements/components/data/states/ie.d.ts +5 -5
- package/dist/elements/components/data/states/in.d.ts +5 -5
- package/dist/elements/components/data/states/index.d.ts +6 -6
- package/dist/elements/components/data/states/it.d.ts +5 -5
- package/dist/elements/components/data/states/jp.d.ts +5 -5
- package/dist/elements/components/data/states/kr.d.ts +5 -5
- package/dist/elements/components/data/states/mx.d.ts +5 -5
- package/dist/elements/components/data/states/my.d.ts +5 -5
- package/dist/elements/components/data/states/ng.d.ts +5 -5
- package/dist/elements/components/data/states/nz.d.ts +5 -5
- package/dist/elements/components/data/states/pa.d.ts +5 -5
- package/dist/elements/components/data/states/pe.d.ts +5 -5
- package/dist/elements/components/data/states/ph.d.ts +5 -5
- package/dist/elements/components/data/states/pt.d.ts +5 -5
- package/dist/elements/components/data/states/ro.d.ts +5 -5
- package/dist/elements/components/data/states/ru.d.ts +5 -5
- package/dist/elements/components/data/states/th.d.ts +5 -5
- package/dist/elements/components/data/states/us.d.ts +9 -9
- package/dist/elements/components/data/states/za.d.ts +5 -5
- package/dist/elements/components/icons/Close.d.ts +6 -6
- package/dist/elements/components/icons/DiagonalArrow.d.ts +5 -5
- package/dist/elements/components/icons/DownloadIcon.d.ts +4 -4
- package/dist/elements/components/icons/FileUpload.d.ts +1 -1
- package/dist/elements/components/icons/FormClosed.d.ts +5 -5
- package/dist/elements/components/icons/Heart.d.ts +1 -1
- package/dist/elements/components/icons/Help.d.ts +4 -4
- package/dist/elements/components/icons/HideEyeIcon.d.ts +5 -5
- package/dist/elements/components/icons/LeftChevron.d.ts +1 -1
- package/dist/elements/components/icons/RatingStar.d.ts +1 -1
- package/dist/elements/components/icons/RightChevron.d.ts +1 -1
- package/dist/elements/components/icons/ShowEyeIcon.d.ts +5 -5
- package/dist/elements/components/icons/Warning.d.ts +5 -5
- package/dist/elements/components/icons/index.d.ts +11 -11
- package/dist/elements/components/skeletons/FieldSkeleton.d.ts +7 -7
- package/dist/elements/components/useBorder.d.ts +21 -21
- package/dist/elements/components/useTextEdit.d.ts +6 -5
- package/dist/elements/components/useTextEdit.d.ts.map +1 -1
- package/dist/elements/fields/AddressLine1Field/index.d.ts +4 -4
- package/dist/elements/fields/AddressLine1Field/tests/test-utils.d.ts +33 -34
- package/dist/elements/fields/AddressLine1Field/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/AddressLine1Field/utils.d.ts +2 -2
- package/dist/elements/fields/ButtonGroupField/index.d.ts +2 -2
- package/dist/elements/fields/ButtonGroupField/tests/test-utils.d.ts +45 -46
- package/dist/elements/fields/ButtonGroupField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/CheckboxField/index.d.ts +5 -5
- package/dist/elements/fields/CheckboxField/tests/test-utils.d.ts +19 -20
- package/dist/elements/fields/CheckboxField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/CheckboxGroupField/index.d.ts +2 -2
- package/dist/elements/fields/CheckboxGroupField/tests/test-utils.d.ts +59 -60
- package/dist/elements/fields/CheckboxGroupField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/ColorPickerField/index.d.ts +2 -2
- package/dist/elements/fields/ColorPickerField/tests/test-utils.d.ts +20 -21
- package/dist/elements/fields/ColorPickerField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/CustomField/Status.d.ts +8 -8
- package/dist/elements/fields/CustomField/index.d.ts +3 -3
- package/dist/elements/fields/CustomField/template.d.ts +1 -1
- package/dist/elements/fields/CustomField/useCustomComponentIframe.d.ts +15 -15
- package/dist/elements/fields/DateSelectorField/index.d.ts +22 -22
- package/dist/elements/fields/DateSelectorField/index.d.ts.map +1 -1
- package/dist/elements/fields/DateSelectorField/styles.d.ts +4 -4
- package/dist/elements/fields/DateSelectorField/tests/test-utils.d.ts +73 -74
- package/dist/elements/fields/DateSelectorField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/DateSelectorField/useDateLocale.d.ts +7 -7
- package/dist/elements/fields/DateSelectorField/utils.d.ts +3 -3
- package/dist/elements/fields/DropdownField/index.d.ts +1 -1
- package/dist/elements/fields/DropdownField/tests/test-utils.d.ts +26 -28
- package/dist/elements/fields/DropdownField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/DropdownMultiField/DropdownMultiFieldSelectComponents.d.ts +8 -8
- package/dist/elements/fields/DropdownMultiField/createDropdownSelect.d.ts +190 -190
- package/dist/elements/fields/DropdownMultiField/index.d.ts +1 -1
- package/dist/elements/fields/DropdownMultiField/optionNormalization.d.ts +9 -9
- package/dist/elements/fields/DropdownMultiField/selectStyles.d.ts +12 -12
- package/dist/elements/fields/DropdownMultiField/tests/test-utils.d.ts +46 -47
- package/dist/elements/fields/DropdownMultiField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/DropdownMultiField/types.d.ts +49 -49
- package/dist/elements/fields/DropdownMultiField/useCollapsedSelectionManager.d.ts +46 -46
- package/dist/elements/fields/DropdownMultiField/useCollapsedValuesMeasurement.d.ts +19 -19
- package/dist/elements/fields/DropdownMultiField/useDropdownInteractions.d.ts +46 -46
- package/dist/elements/fields/DropdownMultiField/useDropdownOptions.d.ts +24 -24
- package/dist/elements/fields/DropdownMultiField/useSelectProps.d.ts +112 -112
- package/dist/elements/fields/FileUploadField/index.d.ts +2 -2
- package/dist/elements/fields/FileUploadField/tests/test-utils.d.ts +10 -10
- package/dist/elements/fields/MatrixField/index.d.ts +2 -2
- package/dist/elements/fields/MatrixField/tests/test-utils.d.ts +66 -67
- package/dist/elements/fields/MatrixField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/PasswordField/index.d.ts +4 -4
- package/dist/elements/fields/PasswordField/tests/test-utils.d.ts +29 -30
- package/dist/elements/fields/PasswordField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/PaymentMethodField.d.ts +4 -4
- package/dist/elements/fields/PhoneField/CountryDropdown.d.ts +3 -3
- package/dist/elements/fields/PhoneField/exampleNumbers.d.ts +2 -2
- package/dist/elements/fields/PhoneField/index.d.ts +4 -4
- package/dist/elements/fields/PhoneField/tests/test-utils.d.ts +85 -86
- package/dist/elements/fields/PhoneField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/PhoneField/timeZoneCountries.d.ts +4 -4
- package/dist/elements/fields/PhoneField/validation.d.ts +3 -3
- package/dist/elements/fields/PinInputField/index.d.ts +2 -2
- package/dist/elements/fields/PinInputField/tests/test-utils.d.ts +78 -79
- package/dist/elements/fields/PinInputField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/PinInputField/useOTPListener.d.ts +1 -1
- package/dist/elements/fields/QRScanner/constants.d.ts +14 -14
- package/dist/elements/fields/QRScanner/hooks/use-device-rotation.d.ts +11 -11
- package/dist/elements/fields/QRScanner/index.d.ts +2 -2
- package/dist/elements/fields/QRScanner/qrLoader.d.ts +2 -2
- package/dist/elements/fields/QRScanner/utils/local-storage.d.ts +5 -5
- package/dist/elements/fields/QRScanner/utils/select-camera.d.ts +9 -9
- package/dist/elements/fields/QRScanner/utils/supports-zoom.d.ts +8 -8
- package/dist/elements/fields/RadioButtonGroupField/index.d.ts +2 -2
- package/dist/elements/fields/RadioButtonGroupField/tests/test-utils.d.ts +54 -55
- package/dist/elements/fields/RadioButtonGroupField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/RatingField/index.d.ts +1 -1
- package/dist/elements/fields/RatingField/tests/test-utils.d.ts +21 -22
- package/dist/elements/fields/RatingField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/SignatureField/components/SignatureCanvas.d.ts +22 -22
- package/dist/elements/fields/SignatureField/components/SignatureModal.d.ts +12 -12
- package/dist/elements/fields/SignatureField/components/utils.d.ts +10 -10
- package/dist/elements/fields/SignatureField/index.d.ts +3 -3
- package/dist/elements/fields/SignatureField/translation.d.ts +17 -17
- package/dist/elements/fields/SliderField/index.d.ts +1 -1
- package/dist/elements/fields/SliderField/styles.d.ts +3 -3
- package/dist/elements/fields/SliderField/tests/test-utils.d.ts +21 -22
- package/dist/elements/fields/SliderField/tests/test-utils.d.ts.map +1 -1
- package/dist/elements/fields/TextArea/index.d.ts +4 -4
- package/dist/elements/fields/TextArea/tests/test-utils.d.ts +10 -10
- package/dist/elements/fields/TextField/TextAutocomplete.d.ts +15 -15
- package/dist/elements/fields/TextField/index.d.ts +4 -4
- package/dist/elements/fields/TextField/index.d.ts.map +1 -1
- package/dist/elements/fields/TextField/tests/test-utils.d.ts +10 -10
- package/dist/elements/fields/index.d.ts +27 -26
- package/dist/elements/fields/index.d.ts.map +1 -1
- package/dist/elements/fields/shared/tests/field-test-utils.d.ts +50 -51
- package/dist/elements/fields/shared/tests/field-test-utils.d.ts.map +1 -1
- package/dist/elements/index.d.ts +36 -36
- package/dist/elements/styles.d.ts +64 -64
- package/dist/elements/utils/fieldNormalization.d.ts +12 -12
- package/dist/fthry_FormControl.DxW_Bnm8.js +16 -0
- package/dist/fthry_InlineTooltip.CKU9xvD_.js +53 -0
- package/dist/fthry_Overlay.CAkqWcqE.js +228 -0
- package/dist/fthry_PaymentMethodField.DgbAXbj6.js +928 -0
- package/dist/fthry_Placeholder.Dns0M5df.js +14 -0
- package/dist/fthry_ShowEyeIcon.B5WMynZy.js +13 -0
- package/dist/fthry_index.3X-DqTfs.js +97 -0
- package/dist/fthry_index.B2eJWMcW.js +2000 -0
- package/dist/fthry_index.BMqtYXlU.js +8166 -0
- package/dist/fthry_index.BOBND5Kw.js +1427 -0
- package/dist/fthry_index.BOzMcNbx.js +1452 -0
- package/dist/fthry_index.BQObFcP7.js +15921 -0
- package/dist/fthry_index.CJrl9QNZ.js +888 -0
- package/dist/fthry_index.CcFhx1jU.js +73 -0
- package/dist/fthry_index.CcNVqQ7R.js +293 -0
- package/dist/fthry_index.CnVdemA5.js +1162 -0
- package/dist/fthry_index.CxRelutP.js +42 -0
- package/dist/fthry_index.D19e9CJD.js +1193 -0
- package/dist/fthry_index.D6UpFxPB.js +216 -0
- package/dist/fthry_index.DD4M0PFc.js +46 -0
- package/dist/fthry_index.DMgGgKWy.js +55 -0
- package/dist/fthry_index.DQB3aI2u.js +95 -0
- package/dist/fthry_index.DaJO430v.js +513 -0
- package/dist/fthry_index.DfiZRBo4.js +35 -0
- package/dist/fthry_index.Di1aadud.js +251 -0
- package/dist/fthry_index.DpFG-lbP.js +138 -0
- package/dist/fthry_index.DsECQjJb.js +131 -0
- package/dist/fthry_index.diObxaBS.js +60999 -0
- package/dist/fthry_index.ghZ0mkQF.js +98 -0
- package/dist/fthry_input.COhHyroj.js +3779 -0
- package/dist/fthry_script.D9CLkYzO.js +157 -0
- package/dist/fthry_styles.Bcy5cq6p.js +1654 -0
- package/dist/fthry_useElementSize.boD8p4bk.js +51 -0
- package/dist/fthry_useSalesforceSync.BNvWxPzE.js +44 -0
- package/dist/fthry_webfontloader.DEj1XG0u.js +57 -0
- package/dist/hooks/router.d.ts +14 -14
- package/dist/hooks/useElementSize.d.ts +7 -7
- package/dist/hooks/useLoader.d.ts +35 -35
- package/dist/hooks/useMounted.d.ts +2 -2
- package/dist/hooks/usePollFuserData.d.ts +1 -1
- package/dist/hooks/usePrevious.d.ts +2 -2
- package/dist/hooks/useSalesforceSync.d.ts +10 -10
- package/dist/index.d.ts +150 -149
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/integrations/alloy.d.ts +2 -2
- package/dist/integrations/amplitude.d.ts +1 -1
- package/dist/integrations/argyle.d.ts +2 -2
- package/dist/integrations/calendly.d.ts +2 -2
- package/dist/integrations/firebase.d.ts +42 -42
- package/dist/integrations/flinks/index.d.ts +10 -10
- package/dist/integrations/flinks/utils.d.ts +12 -12
- package/dist/integrations/googleAnalytics.d.ts +3 -3
- package/dist/integrations/googleTagManager.d.ts +1 -1
- package/dist/integrations/heap.d.ts +2 -2
- package/dist/integrations/intercom.d.ts +2 -2
- package/dist/integrations/mixpanel.d.ts +2 -2
- package/dist/integrations/persona.d.ts +2 -2
- package/dist/integrations/plaid.d.ts +2 -2
- package/dist/integrations/recaptcha.d.ts +2 -2
- package/dist/integrations/rudderstack.d.ts +3 -3
- package/dist/integrations/schwab.d.ts +1 -1
- package/dist/integrations/segment.d.ts +1 -1
- package/dist/integrations/stripe/Cart.d.ts +19 -19
- package/dist/integrations/stripe/SimplifiedProduct.d.ts +39 -39
- package/dist/integrations/stripe/index.d.ts +1 -1
- package/dist/integrations/stripe/stripe.d.ts +97 -97
- package/dist/integrations/stytch.d.ts +19 -19
- package/dist/integrations/trustedform.d.ts +2 -2
- package/dist/integrations/utils.d.ts +14 -14
- package/dist/setupTests.d.ts +1 -1
- package/dist/types/Form.d.ts +80 -80
- package/dist/utils/DangerouslySetHTMLContent.d.ts +2 -2
- package/dist/utils/ShadowDomHtmlContent.d.ts +8 -8
- package/dist/utils/array.d.ts +11 -11
- package/dist/utils/browser.d.ts +23 -23
- package/dist/utils/callbackQueue.d.ts +10 -10
- package/dist/utils/document.d.ts +1 -1
- package/dist/utils/elementActions.d.ts +55 -55
- package/dist/utils/entities/Collaborator.d.ts +14 -14
- package/dist/utils/entities/Field.d.ts +129 -129
- package/dist/utils/error.d.ts +13 -13
- package/dist/utils/featheryClient/index.d.ts +103 -103
- package/dist/utils/featheryClient/integrationClient.d.ts +114 -114
- package/dist/utils/featheryClient/utils.d.ts +1 -1
- package/dist/utils/fieldHelperFunctions.d.ts +70 -70
- package/dist/utils/formContext.d.ts +104 -104
- package/dist/utils/formHelperFunctions.d.ts +44 -44
- package/dist/utils/hideAndRepeats.d.ts +27 -27
- package/dist/utils/hydration.d.ts +14 -14
- package/dist/utils/image.d.ts +39 -39
- package/dist/utils/init.d.ts +59 -59
- package/dist/utils/interactionState.d.ts +4 -4
- package/dist/utils/internalState.d.ts +91 -91
- package/dist/utils/logic.d.ts +50 -50
- package/dist/utils/offlineRequestHandler.d.ts +94 -94
- package/dist/utils/polyfills.d.ts +2 -2
- package/dist/utils/primitives.d.ts +14 -14
- package/dist/utils/random.d.ts +1 -1
- package/dist/utils/repeat.d.ts +38 -38
- package/dist/utils/sensitiveActions.d.ts +7 -7
- package/dist/utils/stepHelperFunctions.d.ts +22 -22
- package/dist/utils/styles.d.ts +5 -5
- package/dist/utils/validation.d.ts +58 -58
- package/package.json +17 -5
- package/umd/466.e3456c8b3407ad04ba56.js +1 -0
- package/umd/{DateSelectorField.b98c0ecb80f56e65cc69.js → DateSelectorField.bd5646949de71f571d04.js} +1 -1
- package/umd/{TextField.a3d8d42f6f8236d00f83.js → TextField.5a5296fe3ea60c4459f2.js} +1 -1
- package/umd/index.js +1 -1
- package/umd/796.e66d52ea21ef09c4eeaa.js +0 -1
|
@@ -0,0 +1,928 @@
|
|
|
1
|
+
import { t as __rest, s as featheryDoc, j as jsxs, a as __assign, ab as getStripe, b as jsx, _ as __read, u as useBorder, ac as filterKeys, ad as ERROR_COLOR } from './fthry_index.diObxaBS.js';
|
|
2
|
+
import React__default, { memo, useEffect, useState, useRef } from 'react';
|
|
3
|
+
import { P as PropTypes } from './fthry_index.D19e9CJD.js';
|
|
4
|
+
import { I as InlineTooltip } from './fthry_InlineTooltip.CKU9xvD_.js';
|
|
5
|
+
import 'react/jsx-runtime';
|
|
6
|
+
import 'react-dom/client';
|
|
7
|
+
import 'stream';
|
|
8
|
+
import 'events';
|
|
9
|
+
import 'buffer';
|
|
10
|
+
import 'util';
|
|
11
|
+
import 'react-dom';
|
|
12
|
+
import './fthry_Overlay.CAkqWcqE.js';
|
|
13
|
+
|
|
14
|
+
function ownKeys(object, enumerableOnly) {
|
|
15
|
+
var keys = Object.keys(object);
|
|
16
|
+
|
|
17
|
+
if (Object.getOwnPropertySymbols) {
|
|
18
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
19
|
+
|
|
20
|
+
if (enumerableOnly) {
|
|
21
|
+
symbols = symbols.filter(function (sym) {
|
|
22
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
keys.push.apply(keys, symbols);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return keys;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function _objectSpread2(target) {
|
|
33
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
34
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
35
|
+
|
|
36
|
+
if (i % 2) {
|
|
37
|
+
ownKeys(Object(source), true).forEach(function (key) {
|
|
38
|
+
_defineProperty(target, key, source[key]);
|
|
39
|
+
});
|
|
40
|
+
} else if (Object.getOwnPropertyDescriptors) {
|
|
41
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
42
|
+
} else {
|
|
43
|
+
ownKeys(Object(source)).forEach(function (key) {
|
|
44
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return target;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function _typeof(obj) {
|
|
53
|
+
"@babel/helpers - typeof";
|
|
54
|
+
|
|
55
|
+
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
|
|
56
|
+
_typeof = function (obj) {
|
|
57
|
+
return typeof obj;
|
|
58
|
+
};
|
|
59
|
+
} else {
|
|
60
|
+
_typeof = function (obj) {
|
|
61
|
+
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return _typeof(obj);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function _defineProperty(obj, key, value) {
|
|
69
|
+
if (key in obj) {
|
|
70
|
+
Object.defineProperty(obj, key, {
|
|
71
|
+
value: value,
|
|
72
|
+
enumerable: true,
|
|
73
|
+
configurable: true,
|
|
74
|
+
writable: true
|
|
75
|
+
});
|
|
76
|
+
} else {
|
|
77
|
+
obj[key] = value;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return obj;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
84
|
+
if (source == null) return {};
|
|
85
|
+
var target = {};
|
|
86
|
+
var sourceKeys = Object.keys(source);
|
|
87
|
+
var key, i;
|
|
88
|
+
|
|
89
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
90
|
+
key = sourceKeys[i];
|
|
91
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
92
|
+
target[key] = source[key];
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return target;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function _objectWithoutProperties(source, excluded) {
|
|
99
|
+
if (source == null) return {};
|
|
100
|
+
|
|
101
|
+
var target = _objectWithoutPropertiesLoose(source, excluded);
|
|
102
|
+
|
|
103
|
+
var key, i;
|
|
104
|
+
|
|
105
|
+
if (Object.getOwnPropertySymbols) {
|
|
106
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
107
|
+
|
|
108
|
+
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
|
109
|
+
key = sourceSymbolKeys[i];
|
|
110
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
111
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
112
|
+
target[key] = source[key];
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return target;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function _slicedToArray(arr, i) {
|
|
120
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function _arrayWithHoles(arr) {
|
|
124
|
+
if (Array.isArray(arr)) return arr;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function _iterableToArrayLimit(arr, i) {
|
|
128
|
+
var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]);
|
|
129
|
+
|
|
130
|
+
if (_i == null) return;
|
|
131
|
+
var _arr = [];
|
|
132
|
+
var _n = true;
|
|
133
|
+
var _d = false;
|
|
134
|
+
|
|
135
|
+
var _s, _e;
|
|
136
|
+
|
|
137
|
+
try {
|
|
138
|
+
for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
|
|
139
|
+
_arr.push(_s.value);
|
|
140
|
+
|
|
141
|
+
if (i && _arr.length === i) break;
|
|
142
|
+
}
|
|
143
|
+
} catch (err) {
|
|
144
|
+
_d = true;
|
|
145
|
+
_e = err;
|
|
146
|
+
} finally {
|
|
147
|
+
try {
|
|
148
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
149
|
+
} finally {
|
|
150
|
+
if (_d) throw _e;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return _arr;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
158
|
+
if (!o) return;
|
|
159
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
160
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
161
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
162
|
+
if (n === "Map" || n === "Set") return Array.from(o);
|
|
163
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
function _arrayLikeToArray(arr, len) {
|
|
167
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
168
|
+
|
|
169
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
170
|
+
|
|
171
|
+
return arr2;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
function _nonIterableRest() {
|
|
175
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
var useAttachEvent = function useAttachEvent(element, event, cb) {
|
|
179
|
+
var cbDefined = !!cb;
|
|
180
|
+
var cbRef = React__default.useRef(cb); // In many integrations the callback prop changes on each render.
|
|
181
|
+
// Using a ref saves us from calling element.on/.off every render.
|
|
182
|
+
|
|
183
|
+
React__default.useEffect(function () {
|
|
184
|
+
cbRef.current = cb;
|
|
185
|
+
}, [cb]);
|
|
186
|
+
React__default.useEffect(function () {
|
|
187
|
+
if (!cbDefined || !element) {
|
|
188
|
+
return function () {};
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
var decoratedCb = function decoratedCb() {
|
|
192
|
+
if (cbRef.current) {
|
|
193
|
+
cbRef.current.apply(cbRef, arguments);
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
element.on(event, decoratedCb);
|
|
198
|
+
return function () {
|
|
199
|
+
element.off(event, decoratedCb);
|
|
200
|
+
};
|
|
201
|
+
}, [cbDefined, event, element, cbRef]);
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
var usePrevious = function usePrevious(value) {
|
|
205
|
+
var ref = React__default.useRef(value);
|
|
206
|
+
React__default.useEffect(function () {
|
|
207
|
+
ref.current = value;
|
|
208
|
+
}, [value]);
|
|
209
|
+
return ref.current;
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
var isUnknownObject = function isUnknownObject(raw) {
|
|
213
|
+
return raw !== null && _typeof(raw) === 'object';
|
|
214
|
+
};
|
|
215
|
+
var isPromise = function isPromise(raw) {
|
|
216
|
+
return isUnknownObject(raw) && typeof raw.then === 'function';
|
|
217
|
+
}; // We are using types to enforce the `stripe` prop in this lib,
|
|
218
|
+
// but in an untyped integration `stripe` could be anything, so we need
|
|
219
|
+
// to do some sanity validation to prevent type errors.
|
|
220
|
+
|
|
221
|
+
var isStripe = function isStripe(raw) {
|
|
222
|
+
return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
var PLAIN_OBJECT_STR = '[object Object]';
|
|
226
|
+
var isEqual = function isEqual(left, right) {
|
|
227
|
+
if (!isUnknownObject(left) || !isUnknownObject(right)) {
|
|
228
|
+
return left === right;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
var leftArray = Array.isArray(left);
|
|
232
|
+
var rightArray = Array.isArray(right);
|
|
233
|
+
if (leftArray !== rightArray) return false;
|
|
234
|
+
var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;
|
|
235
|
+
var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;
|
|
236
|
+
if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so
|
|
237
|
+
// fallback to reference check.
|
|
238
|
+
|
|
239
|
+
if (!leftPlainObject && !leftArray) return left === right;
|
|
240
|
+
var leftKeys = Object.keys(left);
|
|
241
|
+
var rightKeys = Object.keys(right);
|
|
242
|
+
if (leftKeys.length !== rightKeys.length) return false;
|
|
243
|
+
var keySet = {};
|
|
244
|
+
|
|
245
|
+
for (var i = 0; i < leftKeys.length; i += 1) {
|
|
246
|
+
keySet[leftKeys[i]] = true;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
for (var _i = 0; _i < rightKeys.length; _i += 1) {
|
|
250
|
+
keySet[rightKeys[_i]] = true;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
var allKeys = Object.keys(keySet);
|
|
254
|
+
|
|
255
|
+
if (allKeys.length !== leftKeys.length) {
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
var l = left;
|
|
260
|
+
var r = right;
|
|
261
|
+
|
|
262
|
+
var pred = function pred(key) {
|
|
263
|
+
return isEqual(l[key], r[key]);
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
return allKeys.every(pred);
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
var extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {
|
|
270
|
+
if (!isUnknownObject(options)) {
|
|
271
|
+
return null;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
return Object.keys(options).reduce(function (newOptions, key) {
|
|
275
|
+
var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);
|
|
276
|
+
|
|
277
|
+
if (immutableKeys.includes(key)) {
|
|
278
|
+
if (isUpdated) {
|
|
279
|
+
console.warn("Unsupported prop change: options.".concat(key, " is not a mutable property."));
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
return newOptions;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
if (!isUpdated) {
|
|
286
|
+
return newOptions;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));
|
|
290
|
+
}, null);
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
var INVALID_STRIPE_ERROR$2 = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real
|
|
294
|
+
// integration `stripe` could be anything, so we need to do some sanity
|
|
295
|
+
// validation to prevent type errors.
|
|
296
|
+
|
|
297
|
+
var validateStripe = function validateStripe(maybeStripe) {
|
|
298
|
+
var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;
|
|
299
|
+
|
|
300
|
+
if (maybeStripe === null || isStripe(maybeStripe)) {
|
|
301
|
+
return maybeStripe;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
throw new Error(errorMsg);
|
|
305
|
+
};
|
|
306
|
+
|
|
307
|
+
var parseStripeProp = function parseStripeProp(raw) {
|
|
308
|
+
var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;
|
|
309
|
+
|
|
310
|
+
if (isPromise(raw)) {
|
|
311
|
+
return {
|
|
312
|
+
tag: 'async',
|
|
313
|
+
stripePromise: Promise.resolve(raw).then(function (result) {
|
|
314
|
+
return validateStripe(result, errorMsg);
|
|
315
|
+
})
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
var stripe = validateStripe(raw, errorMsg);
|
|
320
|
+
|
|
321
|
+
if (stripe === null) {
|
|
322
|
+
return {
|
|
323
|
+
tag: 'empty'
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
return {
|
|
328
|
+
tag: 'sync',
|
|
329
|
+
stripe: stripe
|
|
330
|
+
};
|
|
331
|
+
};
|
|
332
|
+
|
|
333
|
+
var registerWithStripeJs = function registerWithStripeJs(stripe) {
|
|
334
|
+
if (!stripe || !stripe._registerWrapper || !stripe.registerAppInfo) {
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
stripe._registerWrapper({
|
|
339
|
+
name: 'react-stripe-js',
|
|
340
|
+
version: "3.7.0"
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
stripe.registerAppInfo({
|
|
344
|
+
name: 'react-stripe-js',
|
|
345
|
+
version: "3.7.0",
|
|
346
|
+
url: 'https://stripe.com/docs/stripe-js/react'
|
|
347
|
+
});
|
|
348
|
+
};
|
|
349
|
+
|
|
350
|
+
var ElementsContext = /*#__PURE__*/React__default.createContext(null);
|
|
351
|
+
ElementsContext.displayName = 'ElementsContext';
|
|
352
|
+
var parseElementsContext = function parseElementsContext(ctx, useCase) {
|
|
353
|
+
if (!ctx) {
|
|
354
|
+
throw new Error("Could not find Elements context; You need to wrap the part of your app that ".concat(useCase, " in an <Elements> provider."));
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
return ctx;
|
|
358
|
+
};
|
|
359
|
+
/**
|
|
360
|
+
* The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.
|
|
361
|
+
* Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.
|
|
362
|
+
*
|
|
363
|
+
* To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.
|
|
364
|
+
* The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.
|
|
365
|
+
* Pass the returned `Promise` to `Elements`.
|
|
366
|
+
*
|
|
367
|
+
* @docs https://stripe.com/docs/stripe-js/react#elements-provider
|
|
368
|
+
*/
|
|
369
|
+
|
|
370
|
+
var Elements = function Elements(_ref) {
|
|
371
|
+
var rawStripeProp = _ref.stripe,
|
|
372
|
+
options = _ref.options,
|
|
373
|
+
children = _ref.children;
|
|
374
|
+
var parsed = React__default.useMemo(function () {
|
|
375
|
+
return parseStripeProp(rawStripeProp);
|
|
376
|
+
}, [rawStripeProp]); // For a sync stripe instance, initialize into context
|
|
377
|
+
|
|
378
|
+
var _React$useState = React__default.useState(function () {
|
|
379
|
+
return {
|
|
380
|
+
stripe: parsed.tag === 'sync' ? parsed.stripe : null,
|
|
381
|
+
elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null
|
|
382
|
+
};
|
|
383
|
+
}),
|
|
384
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
385
|
+
ctx = _React$useState2[0],
|
|
386
|
+
setContext = _React$useState2[1];
|
|
387
|
+
|
|
388
|
+
React__default.useEffect(function () {
|
|
389
|
+
var isMounted = true;
|
|
390
|
+
|
|
391
|
+
var safeSetContext = function safeSetContext(stripe) {
|
|
392
|
+
setContext(function (ctx) {
|
|
393
|
+
// no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)
|
|
394
|
+
if (ctx.stripe) return ctx;
|
|
395
|
+
return {
|
|
396
|
+
stripe: stripe,
|
|
397
|
+
elements: stripe.elements(options)
|
|
398
|
+
};
|
|
399
|
+
});
|
|
400
|
+
}; // For an async stripePromise, store it in context once resolved
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
if (parsed.tag === 'async' && !ctx.stripe) {
|
|
404
|
+
parsed.stripePromise.then(function (stripe) {
|
|
405
|
+
if (stripe && isMounted) {
|
|
406
|
+
// Only update Elements context if the component is still mounted
|
|
407
|
+
// and stripe is not null. We allow stripe to be null to make
|
|
408
|
+
// handling SSR easier.
|
|
409
|
+
safeSetContext(stripe);
|
|
410
|
+
}
|
|
411
|
+
});
|
|
412
|
+
} else if (parsed.tag === 'sync' && !ctx.stripe) {
|
|
413
|
+
// Or, handle a sync stripe instance going from null -> populated
|
|
414
|
+
safeSetContext(parsed.stripe);
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
return function () {
|
|
418
|
+
isMounted = false;
|
|
419
|
+
};
|
|
420
|
+
}, [parsed, ctx, options]); // Warn on changes to stripe prop
|
|
421
|
+
|
|
422
|
+
var prevStripe = usePrevious(rawStripeProp);
|
|
423
|
+
React__default.useEffect(function () {
|
|
424
|
+
if (prevStripe !== null && prevStripe !== rawStripeProp) {
|
|
425
|
+
console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');
|
|
426
|
+
}
|
|
427
|
+
}, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes
|
|
428
|
+
|
|
429
|
+
var prevOptions = usePrevious(options);
|
|
430
|
+
React__default.useEffect(function () {
|
|
431
|
+
if (!ctx.elements) {
|
|
432
|
+
return;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);
|
|
436
|
+
|
|
437
|
+
if (updates) {
|
|
438
|
+
ctx.elements.update(updates);
|
|
439
|
+
}
|
|
440
|
+
}, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance
|
|
441
|
+
|
|
442
|
+
React__default.useEffect(function () {
|
|
443
|
+
registerWithStripeJs(ctx.stripe);
|
|
444
|
+
}, [ctx.stripe]);
|
|
445
|
+
return /*#__PURE__*/React__default.createElement(ElementsContext.Provider, {
|
|
446
|
+
value: ctx
|
|
447
|
+
}, children);
|
|
448
|
+
};
|
|
449
|
+
Elements.propTypes = {
|
|
450
|
+
stripe: PropTypes.any,
|
|
451
|
+
options: PropTypes.object
|
|
452
|
+
};
|
|
453
|
+
var useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {
|
|
454
|
+
var ctx = React__default.useContext(ElementsContext);
|
|
455
|
+
return parseElementsContext(ctx, useCaseMessage);
|
|
456
|
+
};
|
|
457
|
+
/**
|
|
458
|
+
* @docs https://stripe.com/docs/stripe-js/react#useelements-hook
|
|
459
|
+
*/
|
|
460
|
+
|
|
461
|
+
var useElements = function useElements() {
|
|
462
|
+
var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),
|
|
463
|
+
elements = _useElementsContextWi.elements;
|
|
464
|
+
|
|
465
|
+
return elements;
|
|
466
|
+
};
|
|
467
|
+
({
|
|
468
|
+
children: PropTypes.func.isRequired
|
|
469
|
+
});
|
|
470
|
+
var CheckoutSdkContext = /*#__PURE__*/React__default.createContext(null);
|
|
471
|
+
CheckoutSdkContext.displayName = 'CheckoutSdkContext';
|
|
472
|
+
var parseCheckoutSdkContext = function parseCheckoutSdkContext(ctx, useCase) {
|
|
473
|
+
if (!ctx) {
|
|
474
|
+
throw new Error("Could not find CheckoutProvider context; You need to wrap the part of your app that ".concat(useCase, " in an <CheckoutProvider> provider."));
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
return ctx;
|
|
478
|
+
};
|
|
479
|
+
var CheckoutContext = /*#__PURE__*/React__default.createContext(null);
|
|
480
|
+
CheckoutContext.displayName = 'CheckoutContext';
|
|
481
|
+
({
|
|
482
|
+
stripe: PropTypes.any,
|
|
483
|
+
options: PropTypes.shape({
|
|
484
|
+
fetchClientSecret: PropTypes.func.isRequired,
|
|
485
|
+
elementsOptions: PropTypes.object
|
|
486
|
+
}).isRequired
|
|
487
|
+
});
|
|
488
|
+
var useElementsOrCheckoutSdkContextWithUseCase = function useElementsOrCheckoutSdkContextWithUseCase(useCaseString) {
|
|
489
|
+
var checkoutSdkContext = React__default.useContext(CheckoutSdkContext);
|
|
490
|
+
var elementsContext = React__default.useContext(ElementsContext);
|
|
491
|
+
|
|
492
|
+
if (checkoutSdkContext && elementsContext) {
|
|
493
|
+
throw new Error("You cannot wrap the part of your app that ".concat(useCaseString, " in both <CheckoutProvider> and <Elements> providers."));
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
if (checkoutSdkContext) {
|
|
497
|
+
return parseCheckoutSdkContext(checkoutSdkContext, useCaseString);
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
return parseElementsContext(elementsContext, useCaseString);
|
|
501
|
+
};
|
|
502
|
+
|
|
503
|
+
var _excluded = ["mode"];
|
|
504
|
+
|
|
505
|
+
var capitalized = function capitalized(str) {
|
|
506
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
507
|
+
};
|
|
508
|
+
|
|
509
|
+
var createElementComponent = function createElementComponent(type, isServer) {
|
|
510
|
+
var displayName = "".concat(capitalized(type), "Element");
|
|
511
|
+
|
|
512
|
+
var ClientElement = function ClientElement(_ref) {
|
|
513
|
+
var id = _ref.id,
|
|
514
|
+
className = _ref.className,
|
|
515
|
+
_ref$options = _ref.options,
|
|
516
|
+
options = _ref$options === void 0 ? {} : _ref$options,
|
|
517
|
+
onBlur = _ref.onBlur,
|
|
518
|
+
onFocus = _ref.onFocus,
|
|
519
|
+
onReady = _ref.onReady,
|
|
520
|
+
onChange = _ref.onChange,
|
|
521
|
+
onEscape = _ref.onEscape,
|
|
522
|
+
onClick = _ref.onClick,
|
|
523
|
+
onLoadError = _ref.onLoadError,
|
|
524
|
+
onLoaderStart = _ref.onLoaderStart,
|
|
525
|
+
onNetworksChange = _ref.onNetworksChange,
|
|
526
|
+
onConfirm = _ref.onConfirm,
|
|
527
|
+
onCancel = _ref.onCancel,
|
|
528
|
+
onShippingAddressChange = _ref.onShippingAddressChange,
|
|
529
|
+
onShippingRateChange = _ref.onShippingRateChange;
|
|
530
|
+
var ctx = useElementsOrCheckoutSdkContextWithUseCase("mounts <".concat(displayName, ">"));
|
|
531
|
+
var elements = 'elements' in ctx ? ctx.elements : null;
|
|
532
|
+
var checkoutSdk = 'checkoutSdk' in ctx ? ctx.checkoutSdk : null;
|
|
533
|
+
|
|
534
|
+
var _React$useState = React__default.useState(null),
|
|
535
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
536
|
+
element = _React$useState2[0],
|
|
537
|
+
setElement = _React$useState2[1];
|
|
538
|
+
|
|
539
|
+
var elementRef = React__default.useRef(null);
|
|
540
|
+
var domNode = React__default.useRef(null); // For every event where the merchant provides a callback, call element.on
|
|
541
|
+
// with that callback. If the merchant ever changes the callback, removes
|
|
542
|
+
// the old callback with element.off and then call element.on with the new one.
|
|
543
|
+
|
|
544
|
+
useAttachEvent(element, 'blur', onBlur);
|
|
545
|
+
useAttachEvent(element, 'focus', onFocus);
|
|
546
|
+
useAttachEvent(element, 'escape', onEscape);
|
|
547
|
+
useAttachEvent(element, 'click', onClick);
|
|
548
|
+
useAttachEvent(element, 'loaderror', onLoadError);
|
|
549
|
+
useAttachEvent(element, 'loaderstart', onLoaderStart);
|
|
550
|
+
useAttachEvent(element, 'networkschange', onNetworksChange);
|
|
551
|
+
useAttachEvent(element, 'confirm', onConfirm);
|
|
552
|
+
useAttachEvent(element, 'cancel', onCancel);
|
|
553
|
+
useAttachEvent(element, 'shippingaddresschange', onShippingAddressChange);
|
|
554
|
+
useAttachEvent(element, 'shippingratechange', onShippingRateChange);
|
|
555
|
+
useAttachEvent(element, 'change', onChange);
|
|
556
|
+
var readyCallback;
|
|
557
|
+
|
|
558
|
+
if (onReady) {
|
|
559
|
+
if (type === 'expressCheckout') {
|
|
560
|
+
// Passes through the event, which includes visible PM types
|
|
561
|
+
readyCallback = onReady;
|
|
562
|
+
} else {
|
|
563
|
+
// For other Elements, pass through the Element itself.
|
|
564
|
+
readyCallback = function readyCallback() {
|
|
565
|
+
onReady(element);
|
|
566
|
+
};
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
useAttachEvent(element, 'ready', readyCallback);
|
|
571
|
+
React__default.useLayoutEffect(function () {
|
|
572
|
+
if (elementRef.current === null && domNode.current !== null && (elements || checkoutSdk)) {
|
|
573
|
+
var newElement = null;
|
|
574
|
+
|
|
575
|
+
if (checkoutSdk) {
|
|
576
|
+
switch (type) {
|
|
577
|
+
case 'payment':
|
|
578
|
+
newElement = checkoutSdk.createPaymentElement(options);
|
|
579
|
+
break;
|
|
580
|
+
|
|
581
|
+
case 'address':
|
|
582
|
+
if ('mode' in options) {
|
|
583
|
+
var mode = options.mode,
|
|
584
|
+
restOptions = _objectWithoutProperties(options, _excluded);
|
|
585
|
+
|
|
586
|
+
if (mode === 'shipping') {
|
|
587
|
+
newElement = checkoutSdk.createShippingAddressElement(restOptions);
|
|
588
|
+
} else if (mode === 'billing') {
|
|
589
|
+
newElement = checkoutSdk.createBillingAddressElement(restOptions);
|
|
590
|
+
} else {
|
|
591
|
+
throw new Error("Invalid options.mode. mode must be 'billing' or 'shipping'.");
|
|
592
|
+
}
|
|
593
|
+
} else {
|
|
594
|
+
throw new Error("You must supply options.mode. mode must be 'billing' or 'shipping'.");
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
break;
|
|
598
|
+
|
|
599
|
+
case 'expressCheckout':
|
|
600
|
+
newElement = checkoutSdk.createExpressCheckoutElement(options);
|
|
601
|
+
break;
|
|
602
|
+
|
|
603
|
+
case 'currencySelector':
|
|
604
|
+
newElement = checkoutSdk.createCurrencySelectorElement();
|
|
605
|
+
break;
|
|
606
|
+
|
|
607
|
+
default:
|
|
608
|
+
throw new Error("Invalid Element type ".concat(displayName, ". You must use either the <PaymentElement />, <AddressElement options={{mode: 'shipping'}} />, <AddressElement options={{mode: 'billing'}} />, or <ExpressCheckoutElement />."));
|
|
609
|
+
}
|
|
610
|
+
} else if (elements) {
|
|
611
|
+
newElement = elements.create(type, options);
|
|
612
|
+
} // Store element in a ref to ensure it's _immediately_ available in cleanup hooks in StrictMode
|
|
613
|
+
|
|
614
|
+
|
|
615
|
+
elementRef.current = newElement; // Store element in state to facilitate event listener attachment
|
|
616
|
+
|
|
617
|
+
setElement(newElement);
|
|
618
|
+
|
|
619
|
+
if (newElement) {
|
|
620
|
+
newElement.mount(domNode.current);
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
}, [elements, checkoutSdk, options]);
|
|
624
|
+
var prevOptions = usePrevious(options);
|
|
625
|
+
React__default.useEffect(function () {
|
|
626
|
+
if (!elementRef.current) {
|
|
627
|
+
return;
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);
|
|
631
|
+
|
|
632
|
+
if (updates && 'update' in elementRef.current) {
|
|
633
|
+
elementRef.current.update(updates);
|
|
634
|
+
}
|
|
635
|
+
}, [options, prevOptions]);
|
|
636
|
+
React__default.useLayoutEffect(function () {
|
|
637
|
+
return function () {
|
|
638
|
+
if (elementRef.current && typeof elementRef.current.destroy === 'function') {
|
|
639
|
+
try {
|
|
640
|
+
elementRef.current.destroy();
|
|
641
|
+
elementRef.current = null;
|
|
642
|
+
} catch (error) {// Do nothing
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
};
|
|
646
|
+
}, []);
|
|
647
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
648
|
+
id: id,
|
|
649
|
+
className: className,
|
|
650
|
+
ref: domNode
|
|
651
|
+
});
|
|
652
|
+
}; // Only render the Element wrapper in a server environment.
|
|
653
|
+
|
|
654
|
+
|
|
655
|
+
var ServerElement = function ServerElement(props) {
|
|
656
|
+
useElementsOrCheckoutSdkContextWithUseCase("mounts <".concat(displayName, ">"));
|
|
657
|
+
var id = props.id,
|
|
658
|
+
className = props.className;
|
|
659
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
660
|
+
id: id,
|
|
661
|
+
className: className
|
|
662
|
+
});
|
|
663
|
+
};
|
|
664
|
+
|
|
665
|
+
var Element = isServer ? ServerElement : ClientElement;
|
|
666
|
+
Element.propTypes = {
|
|
667
|
+
id: PropTypes.string,
|
|
668
|
+
className: PropTypes.string,
|
|
669
|
+
onChange: PropTypes.func,
|
|
670
|
+
onBlur: PropTypes.func,
|
|
671
|
+
onFocus: PropTypes.func,
|
|
672
|
+
onReady: PropTypes.func,
|
|
673
|
+
onEscape: PropTypes.func,
|
|
674
|
+
onClick: PropTypes.func,
|
|
675
|
+
onLoadError: PropTypes.func,
|
|
676
|
+
onLoaderStart: PropTypes.func,
|
|
677
|
+
onNetworksChange: PropTypes.func,
|
|
678
|
+
onConfirm: PropTypes.func,
|
|
679
|
+
onCancel: PropTypes.func,
|
|
680
|
+
onShippingAddressChange: PropTypes.func,
|
|
681
|
+
onShippingRateChange: PropTypes.func,
|
|
682
|
+
options: PropTypes.object
|
|
683
|
+
};
|
|
684
|
+
Element.displayName = displayName;
|
|
685
|
+
Element.__elementType = type;
|
|
686
|
+
return Element;
|
|
687
|
+
};
|
|
688
|
+
|
|
689
|
+
var isServer = typeof window === 'undefined';
|
|
690
|
+
|
|
691
|
+
var EmbeddedCheckoutContext = /*#__PURE__*/React__default.createContext(null);
|
|
692
|
+
EmbeddedCheckoutContext.displayName = 'EmbeddedCheckoutProviderContext';
|
|
693
|
+
|
|
694
|
+
/**
|
|
695
|
+
* @docs https://stripe.com/docs/stripe-js/react#usestripe-hook
|
|
696
|
+
*/
|
|
697
|
+
|
|
698
|
+
var useStripe = function useStripe() {
|
|
699
|
+
var _useElementsOrCheckou = useElementsOrCheckoutSdkContextWithUseCase('calls useStripe()'),
|
|
700
|
+
stripe = _useElementsOrCheckou.stripe;
|
|
701
|
+
|
|
702
|
+
return stripe;
|
|
703
|
+
};
|
|
704
|
+
|
|
705
|
+
/**
|
|
706
|
+
* Requires beta access:
|
|
707
|
+
* Contact [Stripe support](https://support.stripe.com/) for more information.
|
|
708
|
+
*
|
|
709
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
710
|
+
*/
|
|
711
|
+
|
|
712
|
+
createElementComponent('auBankAccount', isServer);
|
|
713
|
+
/**
|
|
714
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
715
|
+
*/
|
|
716
|
+
|
|
717
|
+
var CardElement = createElementComponent('card', isServer);
|
|
718
|
+
/**
|
|
719
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
720
|
+
*/
|
|
721
|
+
|
|
722
|
+
createElementComponent('cardNumber', isServer);
|
|
723
|
+
/**
|
|
724
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
725
|
+
*/
|
|
726
|
+
|
|
727
|
+
createElementComponent('cardExpiry', isServer);
|
|
728
|
+
/**
|
|
729
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
730
|
+
*/
|
|
731
|
+
|
|
732
|
+
createElementComponent('cardCvc', isServer);
|
|
733
|
+
/**
|
|
734
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
735
|
+
*/
|
|
736
|
+
|
|
737
|
+
createElementComponent('fpxBank', isServer);
|
|
738
|
+
/**
|
|
739
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
740
|
+
*/
|
|
741
|
+
|
|
742
|
+
createElementComponent('iban', isServer);
|
|
743
|
+
/**
|
|
744
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
745
|
+
*/
|
|
746
|
+
|
|
747
|
+
createElementComponent('idealBank', isServer);
|
|
748
|
+
/**
|
|
749
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
750
|
+
*/
|
|
751
|
+
|
|
752
|
+
createElementComponent('p24Bank', isServer);
|
|
753
|
+
/**
|
|
754
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
755
|
+
*/
|
|
756
|
+
|
|
757
|
+
createElementComponent('epsBank', isServer);
|
|
758
|
+
createElementComponent('payment', isServer);
|
|
759
|
+
/**
|
|
760
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
761
|
+
*/
|
|
762
|
+
|
|
763
|
+
createElementComponent('expressCheckout', isServer);
|
|
764
|
+
/**
|
|
765
|
+
* Requires beta access:
|
|
766
|
+
* Contact [Stripe support](https://support.stripe.com/) for more information.
|
|
767
|
+
*/
|
|
768
|
+
|
|
769
|
+
createElementComponent('currencySelector', isServer);
|
|
770
|
+
/**
|
|
771
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
772
|
+
*/
|
|
773
|
+
|
|
774
|
+
createElementComponent('paymentRequestButton', isServer);
|
|
775
|
+
/**
|
|
776
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
777
|
+
*/
|
|
778
|
+
|
|
779
|
+
createElementComponent('linkAuthentication', isServer);
|
|
780
|
+
/**
|
|
781
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
782
|
+
*/
|
|
783
|
+
|
|
784
|
+
createElementComponent('address', isServer);
|
|
785
|
+
/**
|
|
786
|
+
* @deprecated
|
|
787
|
+
* Use `AddressElement` instead.
|
|
788
|
+
*
|
|
789
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
790
|
+
*/
|
|
791
|
+
|
|
792
|
+
createElementComponent('shippingAddress', isServer);
|
|
793
|
+
/**
|
|
794
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
795
|
+
*/
|
|
796
|
+
|
|
797
|
+
createElementComponent('paymentMethodMessaging', isServer);
|
|
798
|
+
/**
|
|
799
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
800
|
+
*/
|
|
801
|
+
|
|
802
|
+
createElementComponent('affirmMessage', isServer);
|
|
803
|
+
/**
|
|
804
|
+
* @docs https://stripe.com/docs/stripe-js/react#element-components
|
|
805
|
+
*/
|
|
806
|
+
|
|
807
|
+
createElementComponent('afterpayClearpayMessage', isServer);
|
|
808
|
+
|
|
809
|
+
// In order for the stripe card element to operate and show the hybrid fields, stripe must be loaded and
|
|
810
|
+
// initialized with a key. In a runtime form, it is crucial to use the real key. However. in
|
|
811
|
+
// the dashboard any key will do since the field is not operational nor would we want it to be.
|
|
812
|
+
var stripeKey = 'any-key-does-not-matter-what';
|
|
813
|
+
// Limit stripe css props to only those that are supported in order to avoid easy to miss warnings
|
|
814
|
+
var supportedStripeCssProps = [
|
|
815
|
+
'backgroundColor',
|
|
816
|
+
'color',
|
|
817
|
+
'fontFamily',
|
|
818
|
+
'fontSize',
|
|
819
|
+
'fontSmoothing',
|
|
820
|
+
'fontStyle',
|
|
821
|
+
'fontVariant',
|
|
822
|
+
'fontWeight',
|
|
823
|
+
'iconColor',
|
|
824
|
+
'lineHeight',
|
|
825
|
+
'letterSpacing',
|
|
826
|
+
'textAlign',
|
|
827
|
+
'padding',
|
|
828
|
+
'textDecoration',
|
|
829
|
+
'textShadow',
|
|
830
|
+
'textTransform'
|
|
831
|
+
];
|
|
832
|
+
// There are problems loading custom fonts into the Stripe element.
|
|
833
|
+
// Also, certain fonts (Open Sans) get cutoff. So, punting on it
|
|
834
|
+
// completely and just using generic sans-serif all the time.
|
|
835
|
+
var toSansSerif = function (styles) { return (__assign(__assign({}, styles), { fontFamily: 'sans-serif' })); };
|
|
836
|
+
var CardField = function (_a) {
|
|
837
|
+
var element = _a.element, responsiveStyles = _a.responsiveStyles, fieldLabel = _a.fieldLabel, _b = _a.elementProps, elementProps = _b === void 0 ? {} : _b, _c = _a.setCardElement, setCardElement = _c === void 0 ? function () { } : _c, _d = _a.setFieldError, setFieldError = _d === void 0 ? function () { } : _d, _e = _a.onChange, onChange = _e === void 0 ? function () { } : _e, _f = _a.autoFocus, autoFocus = _f === void 0 ? false : _f, editMode = _a.editMode, inlineError = _a.inlineError, children = _a.children;
|
|
838
|
+
var _g = __read(useState(false), 2), focused = _g[0], setFocused = _g[1];
|
|
839
|
+
var _h = useBorder({
|
|
840
|
+
element: element,
|
|
841
|
+
error: inlineError,
|
|
842
|
+
breakpoint: responsiveStyles.getMobileBreakpoint()
|
|
843
|
+
}), borderStyles = _h.borderStyles, customBorder = _h.customBorder;
|
|
844
|
+
var containerRef = useRef(null);
|
|
845
|
+
var stripe = useStripe();
|
|
846
|
+
var stripeElements = useElements();
|
|
847
|
+
var _j = __read(useState(''), 2), lastError = _j[0], setLastError = _j[1];
|
|
848
|
+
useEffect(function () {
|
|
849
|
+
if (!stripe || !stripeElements) {
|
|
850
|
+
// Stripe.js has not yet loaded.
|
|
851
|
+
return;
|
|
852
|
+
}
|
|
853
|
+
var cardEl = stripeElements.getElement(CardElement);
|
|
854
|
+
if (autoFocus) {
|
|
855
|
+
cardEl === null || cardEl === void 0 ? void 0 : cardEl.on('ready', function () { return cardEl.focus(); });
|
|
856
|
+
}
|
|
857
|
+
setCardElement(element.servar.key, cardEl);
|
|
858
|
+
}, [stripe, element.servar.key, stripeElements]);
|
|
859
|
+
// In general, mobile styles are supported for the payment method field. However, we do this using
|
|
860
|
+
// media queries. The Stripe card element does not support this so the mobile styles that are set
|
|
861
|
+
// in media queries directly below are ignored. This means that mobile styles like color and the various font styles
|
|
862
|
+
// do not work (mobile settings will not be applied). However, other mobile styles for things like
|
|
863
|
+
// background color and borders are set in the parent of the card element and DO WORK.
|
|
864
|
+
var cardElementOptions = {
|
|
865
|
+
style: {
|
|
866
|
+
base: __assign(__assign({ textDecoration: 'none' }, filterKeys(toSansSerif(responsiveStyles.getTarget('field')), supportedStripeCssProps)), { '::placeholder': __assign({ textDecoration: 'none' }, filterKeys(toSansSerif(responsiveStyles.getTarget('placeholder')), supportedStripeCssProps)), ':hover': filterKeys(toSansSerif(responsiveStyles.getTarget('hoverFont')), supportedStripeCssProps), ':focus': filterKeys(toSansSerif(responsiveStyles.getTarget('activeFont')), supportedStripeCssProps) }),
|
|
867
|
+
complete: toSansSerif(responsiveStyles.getTarget('completedFont')),
|
|
868
|
+
invalid: {
|
|
869
|
+
color: ERROR_COLOR,
|
|
870
|
+
iconColor: ERROR_COLOR
|
|
871
|
+
}
|
|
872
|
+
},
|
|
873
|
+
classes: {
|
|
874
|
+
base: element.servar.key
|
|
875
|
+
}
|
|
876
|
+
};
|
|
877
|
+
var handleCardChange = function (event) {
|
|
878
|
+
var _a, _b;
|
|
879
|
+
// Listen for changes in the CardElement
|
|
880
|
+
// and display any errors as the customer types their card details.
|
|
881
|
+
// Only set the field error if there is a change (Stripe card element is a bit chatty)
|
|
882
|
+
var error = (_b = (_a = event.error) === null || _a === void 0 ? void 0 : _a.message) !== null && _b !== void 0 ? _b : '';
|
|
883
|
+
if (lastError !== error) {
|
|
884
|
+
setLastError(error);
|
|
885
|
+
setFieldError(error);
|
|
886
|
+
}
|
|
887
|
+
// also set the field data with complete=true so we know
|
|
888
|
+
// when a card number has been entered and is complete
|
|
889
|
+
onChange(event.complete
|
|
890
|
+
? { complete: true, card_data: { brand: event.brand } }
|
|
891
|
+
: '');
|
|
892
|
+
};
|
|
893
|
+
return (jsxs("div", __assign({ ref: containerRef, css: __assign({ maxWidth: '100%', width: '100%', height: '100%', position: 'relative', pointerEvents: editMode ? 'none' : 'auto' }, responsiveStyles.getTarget('fc')) }, elementProps, { children: [children, fieldLabel, jsxs("div", __assign({ css: __assign(__assign({ position: 'relative', width: '100%', whiteSpace: 'nowrap', padding: '0 2px', display: 'flex', alignItems: 'center' }, responsiveStyles.getTarget('sub-fc')), { '&:hover': __assign(__assign({}, responsiveStyles.getTarget('hover')), borderStyles.hover), '&&': focused
|
|
894
|
+
? __assign(__assign({}, responsiveStyles.getTarget('active')), borderStyles.active) : {} }) }, { children: [customBorder, jsxs("div", __assign({ css: { width: '100%', position: 'relative' } }, { children: [jsx("input", { id: element.servar.key, name: element.servar.key, css: {
|
|
895
|
+
width: '100%',
|
|
896
|
+
height: 0,
|
|
897
|
+
border: 'none',
|
|
898
|
+
opacity: 0,
|
|
899
|
+
'&:focus': {
|
|
900
|
+
outline: 'none'
|
|
901
|
+
}
|
|
902
|
+
},
|
|
903
|
+
// @ts-expect-error TS(2322): Type 'string' is not assignable to type 'number'.
|
|
904
|
+
tabIndex: '-1' }), jsx(CardElement, { css: {
|
|
905
|
+
position: 'absolute',
|
|
906
|
+
top: 0,
|
|
907
|
+
left: 5,
|
|
908
|
+
right: 5,
|
|
909
|
+
width: '100%'
|
|
910
|
+
}, options: cardElementOptions, onChange: handleCardChange, onFocus: function () { return setFocused(true); }, onBlur: function () { return setFocused(false); } })] })), jsx(InlineTooltip, { containerRef: containerRef, id: element.id, text: element.properties.tooltipText, responsiveStyles: responsiveStyles, repeat: element.repeat })] }))] })));
|
|
911
|
+
};
|
|
912
|
+
function PaymentMethodField(_a) {
|
|
913
|
+
var editMode = _a.editMode, children = _a.children, props = __rest(_a, ["editMode", "children"]);
|
|
914
|
+
var stripePromise = getStripe();
|
|
915
|
+
useEffect(function () {
|
|
916
|
+
// if editable, i.e. running in dashboard, then just load stripe with key so cardElement shows
|
|
917
|
+
if (editMode)
|
|
918
|
+
featheryDoc().dispatchEvent(new CustomEvent('stripe_key_loaded', {
|
|
919
|
+
detail: { key: stripeKey }
|
|
920
|
+
}));
|
|
921
|
+
}, [editMode]);
|
|
922
|
+
return (
|
|
923
|
+
// @ts-expect-error TS(2322): Type 'Promise<unknown>' is not assignable to type ... Remove this comment to see the full error message
|
|
924
|
+
jsxs(Elements, __assign({ stripe: stripePromise }, { children: [children, jsx(CardField, __assign({ editMode: editMode }, props))] })));
|
|
925
|
+
}
|
|
926
|
+
var PaymentMethodField_default = memo(PaymentMethodField);
|
|
927
|
+
|
|
928
|
+
export { PaymentMethodField_default as default };
|