{"version":3,"sources":["jsdelivr-header.js","/npm/@atomicfi/transact-javascript@3.0.11/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAAI,0BAEA,cAAgB,CAClB,QAAS,UACT,OAAQ,SACR,SAAU,WACV,SAAU,YAGR,UAAY,CAWd,SAAU,EACR,SACA,YACA,sBACA,gBACA,gBACA,WACA,UACA,aACE,CAAC,KACH,EAAS,GAAU,CAAC,EACpB,EAAgB,GAAiB,WAAa,EAC9C,EAAgB,GAAiB,WAAa,EAC9C,EAAW,GAAY,WAAa,EACpC,EAAU,GAAW,WAAa,EAClC,EAAY,QAAa,EAEzB,MAAM,EAAS,GAAuB,gCAEjC,IACH,SAAS,KAAK,MAAM,SAAW,UAGjC,IAAI,EAAgB,SAAS,cAAc,UAC3C,EAAc,aAAa,QAAS,+BACpC,MAAM,EAAc,EAAO,WAAa,EAAO,SAAW,SAC1D,EAAc,aAAa,QAAS,GAAG,eACvC,EAAc,aAAa,aAAc,GAAG,eAE5C,EAAc,IAAM,GAAG,gBAAqB,KAC1C,KAAK,UAAU,CACb,OAAO,EACP,SAAU,CACR,KAAM,UACN,WAAY,SACZ,cAAe,GAAG,UAAU,YAC1B,UAAU,QAAU,gBAGrB,OAIP,MAiBM,EAAS,CAhBb,CAAE,MAAO,QACT,CAAE,OAAQ,QACV,CAAE,UAAW,aACb,CAAE,eAAgB,KAClB,CAAE,aAAc,UAChB,CAAE,aAAc,WAWiB,EAAY,GAR3B,CAClB,CAAE,SAAU,SACZ,CAAE,IAAK,KACP,CAAE,KAAM,KACR,CAAE,MAAO,KACT,CAAE,OAAQ,OAeZ,GAVA,EAAc,GAAK,yBACnB,EAAc,MAAM,QAAU,EAC3B,KAAK,GACJ,OAAO,QAAQ,GACZ,KAAI,EAAE,EAAK,KAAW,GAAG,MAAQ,QACjC,KAAK,MAET,KAAK,IACL,OAEC,EAAW,CACb,MAAM,EAAmB,SAAS,cAAc,GAEhD,IAAI,EAGF,MAAM,IAAI,MAAM,2BAA2B,MAF3C,EAAiB,YAAY,EAIjC,MACE,SAAS,KAAK,YAAY,GAa5B,OAVA,0BAA4B,mBAAmB,CAC7C,SACA,gBACA,gBACA,WACA,UACA,cAEF,OAAO,iBAAiB,UAAW,2BAE5B,CACL,MAAO,IAAM,kBACf,GAIJ,SAAS,oBAAmB,OAC1B,EAAM,cACN,EAAa,SACb,EAAQ,QACR,EAAO,cACP,EAAa,UACb,IAEA,OAAQ,IACN,GAAI,IAAW,EAAM,OAAQ,OAE7B,MAAM,QAAE,EAAS,MAAO,GAAc,EAAM,KAC5C,OAAQ,GACN,IAAK,wBACH,EAAQ,GACR,kBACA,MACF,IAAK,yBACH,EAAS,GACT,kBACA,MACF,IAAK,8BACH,EAAc,GACd,MACF,IAAK,+BACH,EAAc,GACd,MACF,IAAK,2BACH,GAAI,GAAkC,mBAAd,EACtB,EAAU,CAAC,IAAK,EAAQ,UACnB,CAGD,WAFQ,IAAI,IAAI,EAAQ,KAEP,UACnB,OAAO,KAAK,EAAQ,IAAK,SAC7B,CACA,MACF,QACE,QAAQ,IAAI,8BAA+B,GAC/C,CAEJ,CAEA,SAAS,kBACP,MAAM,EAAgB,SAAS,cAAc,2BAE7C,OAAO,oBAAoB,UAAW,2BAClC,GAAe,aAAe,SAAS,OAC3C,SAAS,KAAK,MAAM,eAAe,YACnC,SAAS,KAAK,YAAY,GAC5B,CAEuB,oBAAZ,SACT,QAAQ,QAAU,cAClB,QAAQ,OAAS,YAEjB,OAAO,QAAU,cACjB,OAAO,OAAS","file":"/npm/@atomicfi/transact-javascript@3.0.11/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@atomicfi/transact-javascript@3.0.11/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","let atomicIframeEventListener\n\nlet atomicProduct = {\n  DEPOSIT: 'deposit',\n  VERIFY: 'verify',\n  IDENTIFY: 'identify',\n  WITHHOLD: 'withhold'\n}\n\nlet atomicSDK = {\n  /**\n   * Launch the Transact experience\n   * @param options - Options for launching Transact\n   * @param options.config - Atomic config object to customize Transact - https://docs.atomicfi.com/reference/transact-sdk#sdk-parameters\n   * @param options.onInteraction - Callback for when a user interacts with Transact\n   * @param options.onDataRequest - Callback for when Transact requests additional data\n   * @param options.onFinish - Callback for when Transact is finished\n   * @param options.onClose - Callback for when Transact is closed\n   * @param options.onOpenUrl - Callback for when Transact opens an external URL\n   */\n  transact: ({\n    config,\n    container = undefined,\n    environmentOverride = undefined,\n    onInteraction = undefined,\n    onDataRequest = undefined,\n    onFinish = undefined,\n    onClose = undefined,\n    onOpenUrl = undefined\n  } = {}) => {\n    config = config || {}\n    onInteraction = onInteraction || function () {}\n    onDataRequest = onDataRequest || function () {}\n    onFinish = onFinish || function () {}\n    onClose = onClose || function () {}\n    onOpenUrl = onOpenUrl || undefined\n\n    const origin = environmentOverride || 'https://transact.atomicfi.com'\n\n    if (!container) {\n      document.body.style.overflow = 'hidden'\n    }\n\n    let iframeElement = document.createElement('iframe')\n    iframeElement.setAttribute('allow', 'web-share; clipboard-write;')\n    const productType = config.operation || config.product || 'Atomic'\n    iframeElement.setAttribute('title', `${productType} Interface`)\n    iframeElement.setAttribute('aria-label', `${productType} Interface`)\n\n    iframeElement.src = `${origin}/initialize/${btoa(\n      JSON.stringify({\n        inSdk: true,\n        platform: {\n          name: 'browser',\n          sdkVersion: '3.0.11',\n          systemVersion: `${navigator.platform}-${\n            navigator.vendor ?? 'unknown'\n          }`\n        },\n        ...config\n      })\n    )}`\n\n    const baseStyles = [\n      { width: '100%' },\n      { height: '100%' },\n      { 'z-index': '888888888' },\n      { 'border-width': '0' },\n      { 'overflow-x': 'hidden' },\n      { 'overflow-y': 'auto' }\n    ]\n\n    const modalStyles = [\n      { position: 'fixed' },\n      { top: '0' },\n      { left: '0' },\n      { right: '0' },\n      { bottom: '0' }\n    ]\n\n    const styles = [...baseStyles, ...(container ? [] : modalStyles)]\n\n    iframeElement.id = 'atomic-transact-iframe'\n    iframeElement.style.cssText = styles\n      .map((style) =>\n        Object.entries(style)\n          .map(([key, value]) => `${key}: ${value}; `)\n          .join('')\n      )\n      .join('')\n      .trim()\n\n    if (container) {\n      const containerElement = document.querySelector(container)\n\n      if (containerElement) {\n        containerElement.appendChild(iframeElement)\n      } else {\n        throw new Error(`No container found for \"${container}\"`)\n      }\n    } else {\n      document.body.appendChild(iframeElement)\n    }\n\n    atomicIframeEventListener = _handleIFrameEvent({\n      origin,\n      onInteraction,\n      onDataRequest,\n      onFinish,\n      onClose,\n      onOpenUrl\n    })\n    window.addEventListener('message', atomicIframeEventListener)\n\n    return {\n      close: () => _removeTransact()\n    }\n  }\n}\n\nfunction _handleIFrameEvent({\n  origin,\n  onInteraction,\n  onFinish,\n  onClose,\n  onDataRequest,\n  onOpenUrl\n}) {\n  return (event) => {\n    if (origin !== event.origin) return\n\n    const { payload, event: eventName } = event.data\n    switch (eventName) {\n      case 'atomic-transact-close':\n        onClose(payload)\n        _removeTransact()\n        break\n      case 'atomic-transact-finish':\n        onFinish(payload)\n        _removeTransact()\n        break\n      case 'atomic-transact-interaction':\n        onInteraction(payload)\n        break\n      case 'atomic-transact-data-request':\n        onDataRequest(payload)\n        break\n      case 'atomic-transact-open-url':\n        if (onOpenUrl && typeof onOpenUrl === 'function') {\n          onOpenUrl({url: payload.url})\n        } else {\n          const url = new URL(payload.url)\n\n          if ('https:' === url.protocol)\n            window.open(payload.url, '_blank')\n        }\n        break\n      default:\n        console.log('Unhandled postMessage Event', eventName)\n    }\n  }\n}\n\nfunction _removeTransact() {\n  const iframeElement = document.querySelector('#atomic-transact-iframe')\n\n  window.removeEventListener('message', atomicIframeEventListener)\n  if (iframeElement?.parentNode !== document.body) return\n  document.body.style.removeProperty('overflow')\n  document.body.removeChild(iframeElement)\n}\n\nif (typeof exports !== 'undefined') {\n  exports.Product = atomicProduct\n  exports.Atomic = atomicSDK\n} else {\n  window.Product = atomicProduct\n  window.Atomic = atomicSDK\n}\n"]}