{"version":3,"sources":["../src/Lightbox.tsx","../src/index.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport { DatatransLightboxConfig, GlobalDatatransApi } from './Datatrans'\n\nconst getUrl = (production: boolean) => production\n  ? 'https://pay.datatrans.com/upp/payment/js/datatrans-2.0.0.global.min.js'\n  : 'https://pay.sandbox.datatrans.com/upp/payment/js/datatrans-2.0.0.global.min.js'\n\nexport interface LightboxProps {\n  production: boolean\n  transactionId: string\n  onLoaded?: () => void\n  onOpened?: () => void\n  onCancelled?: () => void\n  onError?: (error: { message: string; detail: string }) => void // eslint-disable-line no-unused-vars\n}\n\ndeclare let window: Window & {\n  Datatrans?: GlobalDatatransApi\n}\n\nconst startPayment = (config: DatatransLightboxConfig) => {\n  if (window.Datatrans) {\n    window.Datatrans.startPayment(config)\n  }\n}\n\nconst cleanupLightbox = () => {\n  if (window.Datatrans) {\n    try {\n      window.Datatrans.close()\n    } catch (err) {} // eslint-disable-line no-empty\n  }\n}\n\nconst Lightbox = (props: LightboxProps) => {\n  useEffect(() => {\n    const { production } = props\n    const config =\n      {\n        transactionId: props.transactionId,\n        loaded: props.onLoaded,\n        opened: props.onOpened,\n        closed: props.onCancelled,\n        error: props.onError\n      }\n    const scriptSource = getUrl(production)\n\n    if (document.querySelector('script[src=\"' + scriptSource + '\"]')) {\n      startPayment(config)\n\n      return cleanupLightbox\n    }\n\n    const script = document.createElement('script')\n    script.src = scriptSource\n    script.onload = () => {\n      startPayment(config)\n    }\n\n    document.body.appendChild(script)\n\n    return cleanupLightbox\n  }, [])\n\n  return null\n}\n\nexport default Lightbox\n\nLightbox.propTypes = {\n  transactionId: PropTypes.string.isRequired,\n\n  production: PropTypes.bool,\n\n  onLoaded: PropTypes.func,\n  onOpened: PropTypes.func,\n  onCancelled: PropTypes.func,\n  onError: PropTypes.func\n}\n\nLightbox.defaultProps = {\n  onLoaded() {},\n  onOpened() {},\n  onCancelled() {},\n  onError() {},\n  production: false\n}\n","import Lightbox from './Lightbox'\nexport type { DatatransLightboxConfig } from './Datatrans'\n\nexport default Lightbox\n"],"mappings":";AAAA,SAAS,iBAAiB;AAC1B,OAAO,eAAe;AAGtB,IAAM,SAAS,CAAC,eAAwB,aACpC,2EACA;AAeJ,IAAM,eAAe,CAAC,WAAoC;AACxD,MAAI,OAAO,WAAW;AACpB,WAAO,UAAU,aAAa,MAAM;AAAA,EACtC;AACF;AAEA,IAAM,kBAAkB,MAAM;AAC5B,MAAI,OAAO,WAAW;AACpB,QAAI;AACF,aAAO,UAAU,MAAM;AAAA,IACzB,SAAS,KAAK;AAAA,IAAC;AAAA,EACjB;AACF;AAEA,IAAM,WAAW,CAAC,UAAyB;AACzC,YAAU,MAAM;AACd,UAAM,EAAE,WAAW,IAAI;AACvB,UAAM,SACJ;AAAA,MACE,eAAe,MAAM;AAAA,MACrB,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,MACd,OAAO,MAAM;AAAA,IACf;AACF,UAAM,eAAe,OAAO,UAAU;AAEtC,QAAI,SAAS,cAAc,iBAAiB,eAAe,IAAI,GAAG;AAChE,mBAAa,MAAM;AAEnB,aAAO;AAAA,IACT;AAEA,UAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,WAAO,MAAM;AACb,WAAO,SAAS,MAAM;AACpB,mBAAa,MAAM;AAAA,IACrB;AAEA,aAAS,KAAK,YAAY,MAAM;AAEhC,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AAEL,SAAO;AACT;AAEA,IAAO,mBAAQ;AAEf,SAAS,YAAY;AAAA,EACnB,eAAe,UAAU,OAAO;AAAA,EAEhC,YAAY,UAAU;AAAA,EAEtB,UAAU,UAAU;AAAA,EACpB,UAAU,UAAU;AAAA,EACpB,aAAa,UAAU;AAAA,EACvB,SAAS,UAAU;AACrB;AAEA,SAAS,eAAe;AAAA,EACtB,WAAW;AAAA,EAAC;AAAA,EACZ,WAAW;AAAA,EAAC;AAAA,EACZ,cAAc;AAAA,EAAC;AAAA,EACf,UAAU;AAAA,EAAC;AAAA,EACX,YAAY;AACd;;;ACpFA,IAAO,gBAAQ;","names":[]}