{"version":3,"sources":["jsdelivr-header.js","/npm/react-paypal-checkout-button@2.0.3/src/hooks/use-paypal-script.hook.ts","/npm/react-paypal-checkout-button@2.0.3/src/hooks/use-paypal-checkout.hook.ts","/npm/react-paypal-checkout-button@2.0.3/src/components/spinner.component.tsx","/npm/react-paypal-checkout-button@2.0.3/src/components/error-container.component.tsx","/npm/react-paypal-checkout-button@2.0.3/src/components/paypal-checkout/paypal-checkout.component.tsx"],"names":[],"mappings":"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","file":"/npm/react-paypal-checkout-button@2.0.3/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/react-paypal-checkout-button@2.0.3/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { useEffect, useState } from 'react'\n// eslint-disable-next-line no-unused-vars\nimport { ButtonState, UsePayPalScriptOptions } from '../types'\n\nconst usePayPalScript = ({\n  clientId,\n  currency,\n  onError,\n  intent,\n  paypalElement\n}: UsePayPalScriptOptions) => {\n  const INTENT = intent ? `&intent=${intent?.toLocaleLowerCase()}` : ''\n\n  const [buttonState, setButtonState] = useState<ButtonState>({\n    isLoadingButton: false,\n    buttonLoaded: false,\n    errorMessage: ''\n  })\n\n  const { isLoadingButton, buttonLoaded, errorMessage } = buttonState\n\n  useEffect(() => {\n    if (errorMessage || !paypalElement) return\n\n    if (!clientId) {\n      console.log({ buttonState })\n\n      const errorMessage = 'Client Id is required to load PayPal Smart Button'\n\n      onError && onError(new Error(errorMessage))\n\n      console.error(errorMessage)\n\n      return setButtonState({\n        isLoadingButton: false,\n        buttonLoaded: false,\n        errorMessage\n      })\n    }\n\n    if (!isLoadingButton && !buttonLoaded && !errorMessage) {\n      setButtonState((prev) => ({ ...prev, isLoadingButton: true }))\n\n      const script = document.createElement('script')\n      script.src = `https://www.paypal.com/sdk/js?client-id=${clientId}&currency=${currency}${INTENT}`\n\n      script.addEventListener('load', () =>\n        setButtonState((prev) => ({\n          ...prev,\n          isLoadingButton: false,\n          buttonLoaded: true\n        }))\n      )\n\n      document.body.appendChild(script)\n\n      script.addEventListener('error', (error) => {\n        console.error(error)\n\n        onError && onError(error)\n\n        return setButtonState({\n          isLoadingButton: false,\n          buttonLoaded: false,\n          errorMessage: `An error occured while isLoadingButton paypal smart buttons`\n        })\n      })\n    }\n  }, [buttonState, paypalElement])\n\n  return {\n    buttonState,\n    setButtonState\n  }\n}\n\nexport default usePayPalScript\n","/* eslint-disable no-unused-vars */\n/* eslint-disable camelcase */\nimport { useEffect, useState } from 'react'\nimport {\n  OnApproveDataTypes,\n  UsePayPalCheckoutOptions,\n  UsePayPalCheckoutValues\n} from '../types'\nimport usePayPalScript from './use-paypal-script.hook'\n\nconst usePayPalCheckout = (\n  options: UsePayPalCheckoutOptions\n): UsePayPalCheckoutValues => {\n  const GlobalWindow: any = window\n\n  const [paypalElement, setPayPalElement] = useState()\n\n  const {\n    clientId,\n    intent = 'CAPTURE',\n    amount,\n    description = 'payment',\n    currency = 'USD',\n    buttonStyles,\n    onSuccess,\n    onError\n  } = options\n\n  const { buttonState, setButtonState } = usePayPalScript({\n    clientId,\n    currency,\n    onError,\n    intent,\n    paypalElement\n  })\n\n  const { isLoadingButton, buttonLoaded, errorMessage } = buttonState\n\n  const paypalRef = (node: any) => setPayPalElement(node)\n\n  const onRetry = () => {\n    setButtonState({\n      buttonLoaded: false,\n      isLoadingButton: false,\n      errorMessage: ''\n    })\n  }\n\n  const createOrder = (_data: any, actions: any) => {\n    const purchase_units = [\n      {\n        description: description,\n        amount: {\n          currency,\n          value: amount\n        }\n      }\n    ]\n\n    // console.log({ data, actions })\n\n    return actions.order.create({\n      intent,\n      purchase_units\n    })\n  }\n\n  const errorHandler = (error: any) => {\n    console.error({ error })\n\n    onError && onError(error)\n  }\n\n  const onApprove = async (data: OnApproveDataTypes, actions: any) => {\n    const getOrder = () => {\n      if (intent === 'AUTHORIZE') return actions.order.authorize()\n\n      return actions.order.capture()\n    }\n\n    const order = await getOrder()\n\n    onSuccess && onSuccess(data, order)\n  }\n\n  useEffect(() => {\n    if (buttonLoaded && !isLoadingButton && !errorMessage && paypalElement) {\n      if (!GlobalWindow?.paypal) {\n        const errorMessage =\n          'PayPal button was not buttonLoaded successfully...'\n\n        onError && onError(new Error(errorMessage))\n\n        return setButtonState({\n          isLoadingButton: false,\n          buttonLoaded: false,\n          errorMessage\n        })\n      }\n\n      setTimeout(() => {\n        GlobalWindow.paypal\n          .Buttons({\n            ...(buttonStyles && { style: buttonStyles }),\n            createOrder,\n            onApprove,\n            onError: errorHandler\n          })\n          .render(paypalElement)\n      })\n    }\n  }, [buttonState])\n\n  return {\n    ...buttonState,\n    onRetry,\n    paypalRef\n  }\n}\n\nexport default usePayPalCheckout\n","/* eslint-disable no-unused-vars */\nimport React from 'react'\nimport { SpinnerProps } from '../types'\nimport styles from '../styles.module.css'\n\nconst Spinner: React.FC<SpinnerProps> = ({ isLoading }) =>\n  isLoading ? <div className={styles.spinner} /> : null\n\nexport default Spinner\n","/* eslint-disable no-unused-vars */\nimport React from 'react'\nimport { ErrorContainerProps } from '../types'\nimport styles from '../styles.module.css'\n\nconst ErrorContainer: React.FC<ErrorContainerProps> = ({\n  errorMessage,\n  onRetry\n}) => (\n  <div className={styles['error-container']}>\n    <p className={styles['error-message']}>{errorMessage}</p>\n\n    <button onClick={onRetry && onRetry} className={styles['retry-button']}>\n      Try again\n    </button>\n  </div>\n)\n\nexport default ErrorContainer\n","/* eslint-disable camelcase */\n/* eslint-disable no-unused-vars */\nimport React from 'react'\nimport { PayPalCheckoutProps } from '../../types'\n\nimport styles from '../../styles.module.css'\nimport usePayPalCheckout from '../../hooks/use-paypal-checkout.hook'\nimport Spinner from '../spinner.component'\nimport ErrorContainer from '../error-container.component'\n\nconst PayPalCheckout: React.FC<PayPalCheckoutProps> = (props) => {\n  const {\n    isLoadingButton,\n    buttonLoaded,\n    errorMessage,\n    onRetry,\n\n    paypalRef\n  } = usePayPalCheckout({\n    ...props\n  })\n\n  const renderReactPayPalStates = () => {\n    if (buttonLoaded) return\n\n    if (isLoadingButton) return <Spinner isLoading={isLoadingButton} />\n\n    if (errorMessage)\n      return <ErrorContainer errorMessage={errorMessage} onRetry={onRetry} />\n\n    return null\n  }\n\n  return (\n    <div className={styles.container}>\n      <div ref={paypalRef} />\n\n      {renderReactPayPalStates()}\n    </div>\n  )\n}\n\nexport default React.memo(PayPalCheckout)\n"]}