{"version":3,"file":"js/418.js","mappings":"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","sources":["webpack://nocodenodeweb/./src/client/components/ButtonsStack/JSSDKButton.tsx","webpack://nocodenodeweb/./src/client/components/ButtonsStack/StackedPayPalButtons.tsx","webpack://nocodenodeweb/./src/client/components/ButtonsStack/styles.ts","webpack://nocodenodeweb/./src/client/components/common/ShimmerPreMount.tsx","webpack://nocodenodeweb/./src/client/components/payment/validation/index.ts","webpack://nocodenodeweb/./src/client/components/payment/validation/rules.ts","webpack://nocodenodeweb/./src/client/contexts/PaymentContext.tsx","webpack://nocodenodeweb/./src/client/helpers/getVersion.ts","webpack://nocodenodeweb/./src/client/hooks/useDeepEqualMemo.ts","webpack://nocodenodeweb/./src/client/hooks/useOnCaptureFailEffect.ts","webpack://nocodenodeweb/./src/client/utils/storage.ts"],"sourcesContent":["import React, {\n Dispatch,\n MutableRefObject,\n SetStateAction,\n useContext,\n useState,\n useEffect,\n useMemo\n} from 'react';\nimport cx from 'classnames';\nimport { PayPalButtons, FUNDING } from '@paypal/react-paypal-js';\nimport { Shimmer } from '@paypalcorp/pp-react';\nimport type {\n FUNDING_SOURCE,\n CreateOrderData,\n CreateOrderActions,\n PayPalButtonsComponentOptions\n} from '@paypal/paypal-js';\nimport { Context as WorldReadyContext } from '@paypalcorp/worldready-react';\nimport type {\n ServerError,\n FormErrorMessageType,\n SDKButtonStyle,\n UserInputsType\n} from '@client/typings/Common';\nimport { ButtonVariation } from '@client/typings/Common';\nimport { CaptureStatus } from '@client/utils/constants';\nimport { recordClick, recordActivity, PageName } from '@common/analytics';\nimport { validateForm } from '@components/payment/validation';\nimport _ from 'lodash';\nimport validateCart from '@components/ViewCart/validation';\nimport { WorldReadyProps, getCurrencyConfig } from '@client/utils/localeHelper';\nimport { useAppContext } from '@client/contexts/AppContext';\nimport { usePreviewContext } from '@client/contexts/PreviewContext';\nimport useDeepEqualMemo from '@client/hooks/useDeepEqualMemo';\nimport { PaymentContextType, usePaymentContext } from '@client/contexts/PaymentContext';\nimport type { CartDetails } from '@client/typings/Cart';\nimport { useCartContext } from '@client/contexts/CartContext';\nimport styles, { shimmerHeight } from '@components/ButtonsStack/styles';\nimport { getViewCartTags } from './PaywallHostedButtons/utils';\nimport { handleCreateOrderCartError } from './ordersHelper';\n\nexport interface JSSDKButtonProps {\n buttonType: string | undefined;\n currencyCode: string | undefined;\n fundingSource: FUNDING_SOURCE | undefined;\n createOrder: PayPalButtonsComponentOptions['createOrder'];\n onApprove: PayPalButtonsComponentOptions['onApprove'];\n setInitComplete?: Dispatch>;\n setCaptureStatus: PaymentContextType['setCaptureStatus'];\n userInputsRef: MutableRefObject;\n userInputs: UserInputsType;\n formErrorMessageRef: MutableRefObject;\n pageName: PageName;\n onShippingAddressChange?: PayPalButtonsComponentOptions['onShippingAddressChange'];\n onShippingOptionsChange?: PayPalButtonsComponentOptions['onShippingOptionsChange'];\n onCancel?: PayPalButtonsComponentOptions['onCancel'];\n buttonStyle?: SDKButtonStyle;\n notCollectShippingAddr?: boolean;\n buttonVariables: Record;\n amount?: number;\n paypalButtonMessagingEnabled?: boolean;\n cartDetailsRef?: MutableRefObject;\n isUpdating?: boolean;\n}\n\ninterface BCDCState {\n showPaymentForm: string | null | undefined;\n showShimmer: boolean;\n forceButtonReRender: string;\n}\n\nconst JSSDKButton = ({\n buttonType,\n currencyCode,\n fundingSource,\n createOrder,\n onApprove,\n setInitComplete,\n setCaptureStatus,\n userInputsRef,\n userInputs,\n formErrorMessageRef,\n pageName,\n onShippingAddressChange,\n onShippingOptionsChange,\n onCancel,\n buttonStyle,\n notCollectShippingAddr,\n buttonVariables,\n amount,\n paypalButtonMessagingEnabled,\n cartDetailsRef,\n isUpdating = false\n}: JSSDKButtonProps) => {\n const [isLoading, setIsLoading] = useState(true);\n const [bcdcState, setBcdcState] = useState({\n showPaymentForm: null,\n showShimmer: false,\n forceButtonReRender: ''\n });\n\n const appContext = useAppContext();\n const enablePaywallButtons = appContext?.enablePaywallButtons;\n const { setFormErrorMessage, fptiAdditionalTags, setErrorMessage } = usePaymentContext();\n const { createOrderInPreview, onClickButtonInPreview, isPreview, onApproveInPreview } =\n usePreviewContext();\n const { setStaleCartItems, setCartDetails } = useCartContext();\n const worldReady = useContext(WorldReadyContext);\n const currencyConfig = getCurrencyConfig(worldReady, currencyCode);\n const memorizedButtonStyle = useDeepEqualMemo(buttonStyle);\n const [amountState, setAmountState] = useState(amount);\n\n const debounce = useMemo(\n () =>\n _.debounce((_newAmount: number) => {\n setAmountState(_newAmount);\n }, 500),\n []\n );\n useEffect(() => {\n debounce(amount || 0);\n }, [amount, debounce]);\n const isPaypalButton = fundingSource === FUNDING?.PAYPAL;\n const shouldShowMessaging = isPaypalButton && paypalButtonMessagingEnabled;\n\n // if there is a change in user input and an order id exists during card funding method flow\n // render the shimmer and set the context id back to null\n useEffect(() => {\n if (bcdcState.showPaymentForm && fundingSource === 'card') {\n recordActivity({\n ...fptiAdditionalTags,\n order_id: bcdcState.showPaymentForm,\n eventName: 'bcdc_order_id_cleared'\n });\n setBcdcState({\n showPaymentForm: null,\n showShimmer: true,\n forceButtonReRender: Date.now().toString()\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [userInputs]);\n\n const createOrderWrapper = createOrder\n ? async (data: CreateOrderData, actions: CreateOrderActions) => {\n try {\n const id = await createOrder(data, actions);\n setBcdcState({ ...bcdcState, showPaymentForm: id, showShimmer: false });\n return Promise.resolve(id);\n } catch (e) {\n return Promise.reject(e);\n }\n }\n : undefined;\n\n const showShimmer =\n (enablePaywallButtons && isLoading) ||\n (bcdcState.showShimmer && fundingSource === 'card') ||\n isUpdating;\n\n const getForceReRenderList = () => {\n const list: (SDKButtonStyle | boolean | undefined | string)[] = [\n memorizedButtonStyle,\n notCollectShippingAddr\n ];\n\n if (fundingSource === 'card') {\n list.push(bcdcState.forceButtonReRender);\n }\n return list;\n };\n\n return (\n <>\n {showShimmer && (\n \n )}\n
\n {\n const formValidation =\n buttonType === ButtonVariation.Cart\n ? validateCart(cartDetailsRef?.current, userInputsRef.current)\n : validateForm(\n userInputsRef.current,\n buttonType,\n currencyConfig,\n formErrorMessageRef.current,\n buttonVariables\n );\n setErrorMessage('');\n if (setStaleCartItems) {\n setStaleCartItems(null);\n }\n setFormErrorMessage(formValidation);\n recordClick({\n ...fptiAdditionalTags,\n ...getViewCartTags(cartDetailsRef),\n pageName,\n eventName: `${data.fundingSource}_button_clicked`,\n int_error_desc: formValidation.isFormValid ? {} : formValidation\n });\n\n const isEmptyCart = cartDetailsRef?.current?.total_purchase_quantity === '0';\n if (isEmptyCart) {\n setCaptureStatus(CaptureStatus.CART_EMPTY);\n return actions.reject();\n }\n if (!formValidation.isFormValid) {\n return actions.reject();\n }\n setCaptureStatus('');\n return actions.resolve();\n }\n }\n createOrder={isPreview ? createOrderInPreview : createOrderWrapper}\n onApprove={isPreview ? onApproveInPreview : onApprove}\n onInit={() => {\n if (fundingSource === 'card') {\n setBcdcState({ ...bcdcState, showPaymentForm: null, showShimmer: false });\n }\n\n setIsLoading(false);\n return setInitComplete?.(true);\n }}\n onError={(error) => {\n if (cartDetailsRef?.current && setStaleCartItems && setCartDetails && setErrorMessage) {\n const handled = handleCreateOrderCartError(\n error as ServerError,\n cartDetailsRef.current,\n worldReady,\n setStaleCartItems,\n setCartDetails,\n setErrorMessage\n );\n if (handled) {\n return;\n }\n }\n if (error.status === 403) {\n setCaptureStatus(CaptureStatus.AUTH_FAILED);\n return;\n }\n setCaptureStatus(CaptureStatus.FAILED);\n }}\n onCancel={\n isPreview\n ? undefined\n : (data, actions) => {\n setBcdcState({ ...bcdcState, showPaymentForm: null, showShimmer: false });\n recordClick({\n ...fptiAdditionalTags,\n ...getViewCartTags(cartDetailsRef),\n pageName,\n eventName: 'popup_close_clicked',\n order_id: data.orderID\n });\n\n if (onCancel) {\n onCancel(data, actions);\n }\n }\n }\n onShippingAddressChange={isPreview ? undefined : onShippingAddressChange}\n onShippingOptionsChange={isPreview ? undefined : onShippingOptionsChange}\n style={buttonStyle}\n forceReRender={getForceReRenderList()}\n />\n
\n \n );\n};\n\nJSSDKButton.defaultProps = {\n setInitComplete: undefined,\n onShippingAddressChange: undefined,\n onShippingOptionsChange: undefined\n};\n\nexport default JSSDKButton;\n","import React, { useRef, useEffect, useState } from 'react';\nimport { usePayPalScriptReducer } from '@paypal/react-paypal-js';\nimport { Row, LoadingSpinner } from '@paypalcorp/pp-react';\nimport { spinnerStyle } from '@client/components/common/commonStyles';\nimport { useAppContext } from '@client/contexts/AppContext';\nimport serverData from '@client/utils/server-data';\nimport useOrderStatus from '@client/hooks/useOrderStatus';\nimport { endCPLTracking, startCPLTracking } from '@common/analytics';\nimport { SDKButtonStyle } from '@client/typings/Common';\nimport { usePreviewContext } from '@client/contexts/PreviewContext';\nimport { usePaymentContext } from '@client/contexts/PaymentContext';\nimport { captureOrderWrapper, createOrderWrapper } from './ordersHelper';\nimport JSSDKButton from './JSSDKButton';\nimport { SDKButtonWrapperProps } from './types';\n\nconst PAGE_NAME = 'payment';\n\ntype StackedButtonWrapperProps = SDKButtonWrapperProps & {\n buttonStyle: SDKButtonStyle;\n};\n\n// Custom component to wrap the PayPalButtons and show loading spinner for hosted buttons\nconst StackedPayPalButtons = ({\n merchantId,\n hostedButtonId,\n buttonType,\n currencyCode,\n buttonStyle,\n notCollectShippingAddr,\n buttonVariables\n}: StackedButtonWrapperProps) => {\n const [{ isPending }] = usePayPalScriptReducer();\n const appContext = useAppContext();\n const { formErrorMessage, userInputs, setCaptureStatus, setOrderData, fptiAdditionalTags } =\n usePaymentContext();\n const userInputsRef = useRef(userInputs);\n const formErrorMessageRef = useRef(formErrorMessage);\n const [initComplete, setInitComplete] = useState(false);\n const ppBtnLoading = isPending || !initComplete;\n const { isPreview } = usePreviewContext();\n\n useEffect(() => {\n userInputsRef.current = userInputs;\n }, [userInputs]);\n\n useEffect(() => {\n formErrorMessageRef.current = formErrorMessage;\n }, [formErrorMessage]);\n\n useEffect(() => {\n if (isPreview) {\n return;\n }\n if (ppBtnLoading) {\n startCPLTracking({\n pageName: PAGE_NAME,\n eventName: 'js_sdk_loaded',\n event: 'im'\n });\n } else {\n endCPLTracking();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ppBtnLoading]);\n\n useOrderStatus();\n const initialCsrfToken = serverData.csrfToken;\n return (\n <>\n {ppBtnLoading && (\n \n \n \n )}\n
\n \n
\n \n );\n};\n\nexport default StackedPayPalButtons;\n","import { css } from '@emotion/react';\nimport { checkoutColorMapping } from '@client/utils/constants';\n\nconst styles = {\n paypalButtonsContainer: css`\n &.hide {\n display: none;\n }\n `,\n checkoutButton: css`\n padding: 0 2rem;\n overflow-wrap: anywhere;\n width: 100%;\n line-height: 1.15;\n\n &.black {\n &:hover {\n filter: brightness(${checkoutColorMapping.black.hoverBrightness});\n }\n }\n\n &.white {\n &:hover {\n filter: brightness(${checkoutColorMapping.white.hoverBrightness});\n }\n }\n\n &:hover {\n filter: brightness(${checkoutColorMapping.default.hoverBrightness});\n }\n\n &:focus {\n outline-offset: ${checkoutColorMapping.default.focus.offset};\n outline: ${checkoutColorMapping.default.focus.outline};\n }\n `\n};\n\nexport const shimmerHeight = (height?: number) => css`\n height: ${height ? `${height}px` : '2.813rem'};\n`;\n\nexport default styles;\n","import React, { useEffect, useState } from 'react';\nimport { Shimmer } from '@paypalcorp/pp-react';\nimport commonStyles from './commonStyles';\n\ninterface ShimmerPreMountProps {\n children: React.ReactNode;\n}\nconst ShimmerPreMount = ({ children }: ShimmerPreMountProps) => {\n const [mounted, setMounted] = useState(false);\n useEffect(() => {\n setMounted(true);\n }, []);\n\n if (mounted) {\n return children;\n }\n\n return ;\n};\n\nexport default ShimmerPreMount;\n","import { ButtonType, INVALID_OPTION_CONTENT_KEY } from '@client/utils/constants';\nimport { FormErrorMessageType, UserInputsType } from '@client/typings/Common';\nimport { CurrencyConfigType } from '@client/utils/localeHelper';\nimport getValidationRules, { getPriceRange } from './rules';\n\ntype ValidationRule = {\n isInvalid: (val: string | undefined) => boolean;\n getMessageVars: () => Record;\n messageId: string;\n};\n\nconst focusOnError = (isFocused: boolean, field: string, useId: boolean = false) => {\n if (isFocused) {\n return;\n }\n // focus on first error\n const queryKey = useId ? `[id=\"${field}\"]` : `[name=\"${field}\"]`;\n const element = document.querySelector(queryKey);\n setTimeout(() => {\n element?.focus();\n }, 450);\n};\n\nconst hasPrefillError = (field: string, formErrorMessage: FormErrorMessageType) =>\n formErrorMessage[field] === INVALID_OPTION_CONTENT_KEY;\n\nconst FIELD_FOCUS_ID_MAP = {\n quantity: 'dropdownMenuButton_quantity-dropdown',\n item: 'dropdownMenuButton_item-dropdown'\n};\n\nexport const validateField = (\n field: string,\n rules: Array,\n value: string | undefined,\n invalidItems: FormErrorMessageType\n): FormErrorMessageType => {\n for (const fieldSpecificRule of rules) {\n if (fieldSpecificRule.isInvalid(value)) {\n focusOnError(invalidItems.isFocused, field);\n invalidItems.isFocused = true;\n invalidItems.isFormValid = false;\n invalidItems[field] = fieldSpecificRule.messageId;\n invalidItems.msgVariables = {\n ...invalidItems.msgVariables,\n ...fieldSpecificRule.getMessageVars()\n };\n }\n }\n\n return invalidItems;\n};\n\nconst getFixedPriceInvalidItems = (\n buttonVariables: Record,\n userInputs: UserInputsType,\n rules: Record>,\n formErrorMessage: FormErrorMessageType,\n invalidItems: FormErrorMessageType\n): FormErrorMessageType => {\n if (hasPrefillError('quantity', formErrorMessage)) {\n focusOnError(invalidItems.isFocused, FIELD_FOCUS_ID_MAP.quantity, true);\n invalidItems.isFocused = true;\n invalidItems.isFormValid = false;\n invalidItems.quantity = INVALID_OPTION_CONTENT_KEY;\n }\n\n [buttonVariables?.memo_label && 'memo'].filter(Boolean).forEach((field: string) => {\n validateField(field, rules[field], userInputs[field], invalidItems);\n });\n\n return invalidItems;\n};\n\nconst getSingleSelectInvalidItems = (\n buttonVariables: Record,\n userInputs: UserInputsType,\n rules: Record>,\n formErrorMessage: FormErrorMessageType,\n invalidItems: FormErrorMessageType\n): FormErrorMessageType => {\n ['item', 'quantity'].forEach((field) => {\n if (hasPrefillError(field, formErrorMessage)) {\n focusOnError(invalidItems.isFocused, FIELD_FOCUS_ID_MAP[field], true);\n invalidItems.isFocused = true;\n invalidItems.isFormValid = false;\n invalidItems[field] = INVALID_OPTION_CONTENT_KEY;\n }\n });\n\n [buttonVariables?.memo_label && 'memo'].filter(Boolean).forEach((field: string) => {\n validateField(field, rules[field], userInputs[field], invalidItems);\n });\n\n return invalidItems;\n};\n\nexport const validateForm = (\n userInputs: UserInputsType,\n btnType: string | undefined,\n currencyConfig: CurrencyConfigType,\n formErrorMessage: FormErrorMessageType,\n buttonVariables: Record\n): FormErrorMessageType => {\n if (!btnType) {\n return { isFormValid: false, isFocused: false, msgVariables: {} };\n }\n\n const invalidItems: FormErrorMessageType = {\n isFormValid: true,\n isFocused: false,\n msgVariables: {}\n };\n const maxTextLength = 127;\n const { min, max } = getPriceRange(currencyConfig.currencyCode);\n const rules = getValidationRules({ maxTextLength, min, max, symbol: currencyConfig.symbol });\n\n switch (btnType) {\n case ButtonType.FIXED_PRICE:\n getFixedPriceInvalidItems(buttonVariables, userInputs, rules, formErrorMessage, invalidItems);\n break;\n case ButtonType.SINGLE_SELECT_LIST:\n getSingleSelectInvalidItems(\n buttonVariables,\n userInputs,\n rules,\n formErrorMessage,\n invalidItems\n );\n break;\n case ButtonType.VARIABLE_PRICE:\n [buttonVariables?.memo_label && 'memo', 'amount', 'invoice']\n .filter(Boolean)\n .forEach((field: string) => {\n validateField(field, rules[field], userInputs[field], invalidItems);\n });\n break;\n default:\n break;\n }\n\n return invalidItems;\n};\n","import currencyRules from './currencyRules.json';\n\nexport const getPriceRange = (currency: string) => {\n const priceRange = currencyRules[currency] ?? currencyRules.default;\n const min = priceRange.min ?? currencyRules.default.min;\n return { min, max: priceRange.max };\n};\n\ntype Restrictions = {\n maxTextLength: number;\n min: number;\n max: number;\n symbol: string;\n};\n\nexport default (restrictions: Restrictions) => ({\n memo: [\n {\n isInvalid: (val) => !val,\n getMessageVars: () => ({}),\n messageId: 'error.text.blank'\n },\n {\n isInvalid: (val) => val && val.length > restrictions.maxTextLength,\n getMessageVars: () => ({}),\n messageId: 'error.text.max'\n }\n ],\n amount: [\n {\n isInvalid: (val) => !val,\n getMessageVars: () => ({}),\n messageId: 'error.text.amount'\n },\n {\n isInvalid: (val) => val && Number(val) < restrictions.min,\n getMessageVars: () => ({\n min: restrictions.min,\n currencySymbol: restrictions.symbol\n }),\n messageId: 'error.text.amountmin'\n },\n {\n isInvalid: (val) => val && Number(val) > restrictions.max,\n getMessageVars: () => ({\n max: restrictions.max\n }),\n messageId: 'error.text.amountmax'\n }\n ],\n invoice: [\n {\n isInvalid: (val) => val && val.length > restrictions.maxTextLength,\n getMessageVars: () => ({}),\n messageId: 'error.text.max'\n }\n ]\n});\n","import React, {\n Dispatch,\n SetStateAction,\n createContext,\n useContext,\n useMemo,\n useState\n} from 'react';\nimport {\n FormErrorMessageType,\n OrderDetails,\n PaymentPrefillData,\n UserInputsType\n} from '@client/typings/Common';\n\nexport interface PaymentContextType {\n userInputs: UserInputsType;\n setUserInputs: Dispatch>;\n captureStatus: string;\n setCaptureStatus: Dispatch>;\n orderData: OrderDetails;\n setOrderData: Dispatch>;\n errorMessage: string;\n setErrorMessage: Dispatch>;\n formErrorMessage: FormErrorMessageType;\n setFormErrorMessage: Dispatch>;\n fptiAdditionalTags: Record;\n setIsLoading: Dispatch>;\n isLoading: boolean;\n profileShipping: string | undefined;\n setProfileShipping: Dispatch>;\n profileTax: string | undefined;\n setProfileTax: Dispatch>;\n}\n\nexport type PaymentContextPrefillData = {\n values: PaymentPrefillData;\n errors: PaymentPrefillData;\n};\n\nexport const PaymentContextValuesGenerator = (\n fptiAdditionalTags: Record,\n prefillData?: PaymentContextPrefillData\n) => {\n const [isLoading, setIsLoading] = useState(false);\n const [userInputs, setUserInputs] = useState({\n // Set default quantity when initialized, to avoid race condition in MultiItem scenario when item is also needed to set at first rendering: https://paypal.atlassian.net/browse/DTNCPS-894\n quantity: '1',\n ...prefillData?.values\n });\n const [captureStatus, setCaptureStatus] = useState('');\n const [orderData, setOrderData] = useState({} as OrderDetails);\n const [errorMessage, setErrorMessage] = useState('');\n const [formErrorMessage, setFormErrorMessage] = useState({\n ...prefillData?.errors\n } as FormErrorMessageType);\n const [profileShipping, setProfileShipping] = useState(undefined);\n const [profileTax, setProfileTax] = useState(undefined);\n\n const contextValues = useMemo(\n () => ({\n userInputs,\n setUserInputs,\n captureStatus,\n setCaptureStatus,\n orderData,\n setOrderData,\n errorMessage,\n setErrorMessage,\n formErrorMessage,\n setFormErrorMessage,\n fptiAdditionalTags,\n setIsLoading,\n isLoading,\n profileShipping,\n setProfileShipping,\n profileTax,\n setProfileTax\n }),\n [\n captureStatus,\n formErrorMessage,\n fptiAdditionalTags,\n orderData,\n userInputs,\n isLoading,\n errorMessage,\n profileShipping,\n profileTax\n ]\n );\n\n return contextValues;\n};\n\nexport const PaymentContext = createContext({} as PaymentContextType);\n\nexport const PaymentContextProvider = ({\n value,\n children\n}: {\n value: PaymentContextType;\n children: React.ReactElement;\n}) => {\n return {children};\n};\n\nexport const usePaymentContext = () => useContext(PaymentContext);\n","const getVersion = (enablePaywall?: boolean, enablePaywallButtons?: boolean) => {\n let version = enablePaywall ? 'v2' : '';\n if (enablePaywallButtons) {\n version = 'v2.1';\n }\n return version;\n};\nexport default getVersion;\n","import { useRef } from 'react';\nimport isEqual from 'lodash/isEqual';\n/**\n * This hook is for and only for non-primitive value to keep a memorized version as long as it remains deeply equal.\n * Since React uses Object.is to compare deps, which is a shallow comparison in normal useMemo.\n * Not recommended for primitive use case. Returns original value if value is primitive.\n */\nfunction useDeepEqualMemo(value: T) {\n const ref = useRef(value);\n\n if (value == null || /^[sbn]/.test(typeof value)) {\n return value;\n }\n\n if (!isEqual(ref.current, value)) {\n ref.current = value;\n }\n\n return ref.current;\n}\n\nexport default useDeepEqualMemo;\n","import React, { useEffect } from 'react';\nimport { CaptureStatus } from '@client/utils/constants';\nimport { buildAdditionalTags, recordImpression } from '@common/analytics';\n\nconst useOnCaptureFailEffect = (\n captureStatus: string,\n fptiAdditionalTags: ReturnType,\n errorMessage: string\n) => {\n useEffect(() => {\n if (captureStatus === CaptureStatus.FAILED || captureStatus === CaptureStatus.AUTH_FAILED) {\n recordImpression({\n ...fptiAdditionalTags,\n pageName: 'paywall',\n eventName: 'payment_failed_alert_shown',\n error_message: errorMessage || 'default'\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [captureStatus]);\n};\n\nexport default useOnCaptureFailEffect;\n","export const PAYPAL_CART_KEY = '__paypal_hosted_cart__';\n\nexport const isLocalStorageEnabled = () => {\n const testKey = '__test__localStorage__';\n try {\n if (window.localStorage) {\n const value = Math.random().toString(); // NOSONAR this random number not need to be secure\n window.localStorage.setItem(testKey, value);\n const result = window.localStorage.getItem(testKey);\n window.localStorage.removeItem(testKey);\n if (value === result) {\n return true;\n }\n }\n } catch (err) {\n // err\n }\n return false;\n};\n\nexport const setItem = (key: string, item: string) => {\n const storage = window.localStorage;\n if (!storage || !key || !item) {\n return;\n }\n try {\n storage.setItem(key, item);\n } catch (e) {\n console.error(e);\n }\n};\n\nexport const getItem = (key: string): string | undefined => {\n const storage = window.localStorage;\n try {\n let value;\n if (storage) {\n value = storage.getItem(key);\n return value;\n }\n } catch (e) {\n console.error(e);\n }\n return undefined;\n};\n\nexport const getSessionId = () => {\n let sessionId: string | undefined;\n\n try {\n const paypal_storage = getItem('__paypal_storage__') ?? '';\n sessionId = JSON.parse(paypal_storage)?.__session__?.guid;\n } catch (e) {\n console.error(e);\n }\n\n return sessionId;\n};\n"],"names":["JSSDKButton","buttonType","currencyCode","fundingSource","createOrder","onApprove","setInitComplete","setCaptureStatus","userInputsRef","userInputs","formErrorMessageRef","pageName","onShippingAddressChange","onShippingOptionsChange","onCancel","buttonStyle","notCollectShippingAddr","buttonVariables","amount","paypalButtonMessagingEnabled","cartDetailsRef","isUpdating","isLoading","setIsLoading","useState","bcdcState","setBcdcState","showPaymentForm","showShimmer","forceButtonReRender","appContext","useAppContext","enablePaywallButtons","setFormErrorMessage","fptiAdditionalTags","setErrorMessage","usePaymentContext","createOrderInPreview","onClickButtonInPreview","isPreview","onApproveInPreview","usePreviewContext","setStaleCartItems","setCartDetails","useCartContext","worldReady","useContext","WorldReadyContext","currencyConfig","getCurrencyConfig","memorizedButtonStyle","useDeepEqualMemo","amountState","setAmountState","debounce","useMemo","_debounce","_newAmount","useEffect","shouldShowMessaging","FUNDING","PAYPAL","recordActivity","order_id","eventName","Date","now","toString","createOrderWrapper","async","data","actions","id","Promise","resolve","e","reject","undefined","_jsxs","_Fragment","children","_jsx","_Shimmer","css","shimmerHeight","height","styles","paypalButtonsContainer","className","cx","PayPalButtons","disabled","message","position","onClick","formValidation","ButtonVariation","Cart","validateCart","current","validateForm","recordClick","getViewCartTags","int_error_desc","isFormValid","total_purchase_quantity","CaptureStatus","CART_EMPTY","onInit","onError","error","handleCreateOrderCartError","status","FAILED","AUTH_FAILED","orderID","style","forceReRender","getForceReRenderList","list","push","defaultProps","PAGE_NAME","StackedPayPalButtons","merchantId","hostedButtonId","isPending","usePayPalScriptReducer","formErrorMessage","setOrderData","useRef","initComplete","ppBtnLoading","startCPLTracking","event","endCPLTracking","useOrderStatus","initialCsrfToken","serverData","csrfToken","_Row","spinnerStyle","_LoadingSpinner","size","display","apiParams","captureOrderWrapper","checkoutButton","checkoutColorMapping","black","hoverBrightness","white","default","focus","offset","outline","ShimmerPreMount","mounted","setMounted","commonStyles","focusOnError","isFocused","field","useId","queryKey","element","document","querySelector","setTimeout","hasPrefillError","INVALID_OPTION_CONTENT_KEY","FIELD_FOCUS_ID_MAP","quantity","item","validateField","rules","value","invalidItems","fieldSpecificRule","isInvalid","messageId","msgVariables","getMessageVars","btnType","min","max","currency","priceRange","currencyRules","getPriceRange","restrictions","maxTextLength","symbol","memo","val","length","Number","currencySymbol","invoice","ButtonType","FIXED_PRICE","getFixedPriceInvalidItems","memo_label","filter","Boolean","forEach","SINGLE_SELECT_LIST","getSingleSelectInvalidItems","VARIABLE_PRICE","PaymentContextValuesGenerator","prefillData","setUserInputs","values","captureStatus","orderData","errorMessage","errors","profileShipping","setProfileShipping","profileTax","setProfileTax","PaymentContext","createContext","PaymentContextProvider","Provider","getVersion","enablePaywall","version","ref","test","isEqual","useOnCaptureFailEffect","recordImpression","error_message","getSessionId","sessionId","paypal_storage","key","storage","window","localStorage","getItem","console","JSON","parse","__session__","guid"],"sourceRoot":""}