UNPKG

@transak/transak-sdk

Version:

Transak SDK that allows you to easily integrate fiat on/off ramp

1 lines 20.8 kB
{"version":3,"sources":["../src/transak.ts","../src/Constants/events.ts","../src/Utils/generate-global-transak-url.ts","../package.json","../src/Utils/validate-url.ts","../src/Utils/create-iframe.ts","../src/Components/custom-container/generate-custom-container-css.ts","../src/Components/custom-container/insert-custom-container-style-to-html-head.ts","../src/Components/custom-container/render-iframe-in-custom-container.ts","../src/Assets/svg/close-icon.ts","/var/lib/jenkins/workspace/npm-publish/npm-publish-by-repo/lib/index.cjs","../src/Components/modal/generate-modal-css.ts","../src/Components/modal/insert-modal-style-to-html-head.ts","../src/Components/modal/render-iframe-in-modal.ts"],"names":["Events","package_default","isValidURL","url","validateURL","generateGlobalTransakUrl","configData","sdkName","sdkVersion","referrer","widgetUrl","urlString","qs","createIframe","src","iframe","generateCustomContainerCss","insertCustomContainerStyleToHtmlHead","style","renderIframeInCustomContainer","config","styleElement","iframeElement","containerIdElement","closeIcon","generateModalCss","themeColor","width","height","insertModalStyleToHtmlHead","widgetWidth","widgetHeight","renderIframeInModal","closeRequest","rootElement","modal","eventEmitter","events","Transak","#config","#styleElement","#rootElement","#iframeElement","#isInitialized","transakConfig","type","cb","#renderIframe","#removeEventListener","#handleMessage","#closeRequest","event"],"mappings":"AAAA,ywBAAmB,ICAPA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,CACVA,CAAAA,CAAA,0BAAA,CAA6B,4BAAA,CAC7BA,CAAAA,CAAA,qBAAA,CAAwB,uBAAA,CACxBA,CAAAA,CAAA,wBAAA,CAA2B,0BAAA,CAC3BA,CAAAA,CAAA,uBAAA,CAA0B,yBAAA,CAC1BA,CAAAA,CAAA,oBAAA,CAAuB,sBAAA,CACvBA,CAAAA,CAAA,0BAAA,CAA6B,4BAAA,CAC7BA,CAAAA,CAAA,4BAAA,CAA+B,8BAAA,CAC/BA,CAAAA,CAAA,oBAAA,CAAuB,sBAAA,CARbA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAA,CAAA,CAAA,CAAA,CCAZ,qGAAe,ICAfC,CAAAA,CAAA,CACE,IAAA,CAAQ,sBAAA,CACR,OAAA,CAAW,OAAA,CACX,WAAA,CAAe,kEAAA,CACf,IAAA,CAAQ,QAAA,CACR,KAAA,CAAS,gBAAA,CACT,IAAA,CAAQ,eAAA,CACR,OAAA,CAAW,CACT,GAAA,CAAK,CACH,MAAA,CAAU,CACR,KAAA,CAAS,kBAAA,CACT,OAAA,CAAW,gBACb,CAAA,CACA,OAAA,CAAW,CACT,KAAA,CAAS,mBAAA,CACT,OAAA,CAAW,iBACb,CACF,CACF,CAAA,CACA,OAAA,CAAW,CACT,IAAA,CAAQ,UACV,CAAA,CACA,cAAA,CAAkB,sJAAA,CAClB,KAAA,CAAS,CACP,UACF,CAAA,CACA,OAAA,CAAW,CACT,MAAA,CAAU,0BAAA,CACV,KAAA,CAAS,aAAA,CACT,OAAA,CAAW,YAAA,CACX,OAAA,CAAW,WACb,CAAA,CACA,MAAA,CAAU,SAAA,CACV,OAAA,CAAW,KAAA,CACX,QAAA,CAAY,6EAAA,CACZ,UAAA,CAAc,CACZ,IAAA,CAAQ,KAAA,CACR,GAAA,CAAO,wCACT,CAAA,CACA,YAAA,CAAgB,CACd,MAAA,CAAU,QAAA,CACV,cAAA,CAAgB,QAClB,CAAA,CACA,eAAA,CAAmB,CACjB,eAAA,CAAiB,QAAA,CACjB,kCAAA,CAAoC,SAAA,CACpC,2BAAA,CAA6B,SAAA,CAC7B,MAAA,CAAU,SAAA,CACV,2BAAA,CAA6B,SAAA,CAC7B,iCAAA,CAAmC,SAAA,CACnC,wBAAA,CAA0B,SAAA,CAC1B,+BAAA,CAAiC,QAAA,CACjC,sBAAA,CAAwB,SAAA,CACxB,wCAAA,CAA0C,QAAA,CAC1C,wBAAA,CAA0B,QAAA,CAC1B,uBAAA,CAAyB,QAAA,CACzB,QAAA,CAAY,QAAA,CACZ,IAAA,CAAQ,QAAA,CACR,UAAA,CAAc,QAChB,CAAA,CACA,QAAA,CAAY,CACV,QAAA,CACA,gBAAA,CACA,MAAA,CACA,IAAA,CACA,KAAA,CACA,MAAA,CACA,KAAA,CACA,IAAA,CACA,IACF,CACF,CAAA,CCvEA,IAAMC,CAAAA,CAAcC,CAAAA,EAAyB,CAC3C,EAAA,CAAI,CAACA,CAAAA,CACH,MAAO,CAAA,CAAA,CAGT,GAAI,CAGF,MAAO,CAAA,CAFW,IAAI,GAAA,CAAIA,CAAG,CAG/B,CAAA,UAAgB,CACd,MAAO,CAAA,CACT,CACF,CAAA,CAEMC,CAAAA,CAAeD,CAAAA,EAAgB,CACnC,EAAA,CAAI,CAACD,CAAAA,CAAWC,CAAG,CAAA,CACjB,MAAM,IAAI,KAAA,CAAM,aAAa,CAAA,CAG/B,OAAOA,CACT,CAAA,CFfO,SAASE,CAAAA,CAAyBC,CAAAA,CAA2B,CAClE,GAAM,CAAE,IAAA,CAAMC,CAAAA,CAAS,OAAA,CAASC,CAAW,CAAA,CAAIP,CAAAA,CACzC,CAAE,QAAA,CAAAQ,CAAAA,CAAU,SAAA,CAAAC,CAAU,CAAA,CAAIJ,CAAAA,EAAc,CAAC,CAAA,CAE/C,EAAA,CAAI,CAACJ,CAAAA,CAAWO,CAAQ,CAAA,EAAK,CAACP,CAAAA,CAAWQ,CAAS,CAAA,CAChD,MAAM,IAAI,KAAA,CAAM,4DAA4D,CAAA,CAG9E,IAAMC,CAAAA,CAAYC,qBAAAA,CAAG,YAAA,CACnB,CACE,GAAA,CAAKF,CAAAA,CACL,KAAA,CAAO,CAAE,OAAA,CAAAH,CAAAA,CAAS,UAAA,CAAAC,CAAW,CAC/B,CAAA,CACA,CAAE,WAAA,CAAa,OAAQ,CACzB,CAAA,CAEA,OAAOJ,CAAAA,CAAYO,CAAS,CAC9B,CGtBO,SAASE,CAAAA,CAAaC,CAAAA,CAAa,CACxC,IAAMC,CAAAA,CAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA,CAE9C,OAAA,MAAA,CAAO,MAAA,CAAOA,CAAAA,CAAQ,CACpB,EAAA,CAAI,eAAA,CACJ,KAAA,CAAO,2BAAA,CACP,GAAA,CAAAD,CACF,CAAC,CAAA,CAEMC,CACT,CCVO,SAASC,CAAAA,CAAAA,CAA6B,CAC3C,MAAO,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA,CAOT,CCNO,SAASC,CAAAA,CAAAA,CAAuC,CACrD,IAAMC,CAAAA,CAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA,CAE5C,OAAAA,CAAAA,CAAM,SAAA,CAAYF,CAAAA,CAA2B,CAAA,iBAE7C,QAAA,mBAAS,oBAAA,mBAAqB,MAAM,CAAA,qBAAE,CAAC,CAAA,6BAAG,WAAA,mBAAYE,CAAK,GAAA,CAEpDA,CACT,CCLO,SAASC,CAAAA,CAA8BC,CAAAA,CAAuB,CACnE,IAAMC,CAAAA,CAAeJ,CAAAA,CAAqC,CAAA,CACpDK,CAAAA,CAAgBT,CAAAA,CAAaR,CAAAA,CAAyBe,CAAM,CAAC,CAAA,CAEnE,EAAA,CAAIA,CAAAA,CAAO,WAAA,CAAa,CACtB,IAAMG,CAAAA,CAAqB,QAAA,CAAS,cAAA,CAAeH,CAAAA,CAAO,WAAW,CAAA,CAErE,EAAA,CAAIG,CAAAA,CACFA,CAAAA,CAAmB,WAAA,CAAYD,CAAa,CAAA,CAAA,KAE5C,MAAM,IAAI,KAAA,CAAM,mDAAmD,CAEvE,CAEA,MAAO,CAAE,YAAA,CAAAD,CAAAA,CAAc,aAAA,CAAAC,CAAc,CACvC,CCpBA,IAAME,CAAAA,CAAY,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACclB,CAAC,CCdM,SAASC,CAAAA,CAAiBC,CAAAA,CAAoBC,CAAAA,CAAeC,CAAAA,CAAgB,CAKlF,MAAO,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAA,EAcMD,CAAK,CAAA;AAAA,mBAAA,EACCC,CAAM,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAeXF,CAAU,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAA,EAQLA,CAAU,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA,CAuB/B,CC/DO,SAASG,CAAAA,CAA2BT,CAAAA,CAAuB,CAChE,GAAM,CAAE,UAAA,CAAAM,CAAAA,CAAa,QAAA,CAAU,WAAA,CAAAI,CAAAA,CAAc,OAAA,CAAS,YAAA,CAAAC,CAAAA,CAAe,OAAQ,CAAA,CAAIX,CAAAA,CAC3EF,CAAAA,CAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA,CAE5C,OAAAA,CAAAA,CAAM,SAAA,CAAYO,CAAAA,CAAiBC,CAAAA,CAAYI,CAAAA,CAAaC,CAAY,CAAA,iBAExE,QAAA,qBAAS,oBAAA,mBAAqB,MAAM,CAAA,qBAAE,CAAC,CAAA,6BAAG,WAAA,qBAAYb,CAAK,GAAA,CAEpDA,CACT,CCNO,SAASc,CAAAA,CAAoBZ,CAAAA,CAAuBa,CAAAA,CAA0B,CACnF,IAAMZ,CAAAA,CAAeQ,CAAAA,CAA2BT,CAAM,CAAA,CAChDc,CAAAA,CAAc,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA,CAC1CC,CAAAA,CAAQ,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA,CACpCb,CAAAA,CAAgBT,CAAAA,CAAaR,CAAAA,CAAyBe,CAAM,CAAC,CAAA,CAEnE,OAAA,MAAA,CAAO,MAAA,CAAOe,CAAAA,CAAO,CACnB,EAAA,CAAI,cAAA,CACJ,SAAA,CAAWX,CACb,CAAC,CAAA,CAEDW,CAAAA,CAAM,WAAA,CAAYb,CAAa,CAAA,CAE/B,MAAA,CAAO,MAAA,CAAOY,CAAAA,CAAa,CACzB,EAAA,CAAI,aAAA,CACJ,OAAA,CAAS,CAAA,CAAA,EAAMD,CAAAA,CAAa,CAC9B,CAAC,CAAA,CAEDC,CAAAA,CAAY,WAAA,CAAYC,CAAK,CAAA,CAE7B,QAAA,CAAS,oBAAA,CAAqB,MAAM,CAAA,CAAE,CAAC,CAAA,CAAE,WAAA,CAAYD,CAAW,CAAA,iBAEhE,QAAA,uBAAS,cAAA,qBAAe,kBAAkB,CAAA,+BAAG,gBAAA,qBAAiB,OAAA,CAAS,CAAA,CAAA,EAAMD,CAAAA,CAAa,CAAC,GAAA,CAEpF,CAAE,YAAA,CAAAZ,CAAAA,CAAc,WAAA,CAAAa,CAAAA,CAAa,aAAA,CAAAZ,CAAc,CACpD,CbzBA,IAAMc,CAAAA,CAAe,IAAIC,gBAAAA,CAAO,YAAA,CAE1BC,CAAAA,6BAAN,KAAc,CACHC,CAAAA,CAAAA,CAETC,CAAAA,CAAAA,CAEAC,CAAAA,CAAAA,CAEAC,CAAAA,CAAAA,CAEAC,CAAAA,CAAAA,CAAiB,CAAA,CAAA,CAEjB,4BAAgB,MAAA,CAAS3C,EAAAA,WAEzB,CAAY4C,CAAAA,CAA8B,6GACxC,EAAA,CAAI,iBAACA,CAAAA,+BAAe,WAAA,CAAW,MAAM,IAAI,KAAA,CAAM,wCAAwC,CAAA,CAEvF,IAAA,CAAKL,CAAAA,CAAAA,CAAUK,CACjB,CAEA,6BAAO,EAAA,CAAK,CAACC,CAAAA,CAA2BC,CAAAA,CAAAA,EAAgC,CAClE9C,CAAAA,CAAO6C,CAAI,CAAA,EACbT,CAAAA,CAAa,EAAA,CAAGS,CAAAA,CAAMC,CAAE,CAE5B,EAAA,eAEA,IAAA,CAAO,CAAA,CAAA,EAAM,CACN,IAAA,CAAKH,CAAAA,CAAAA,EAAAA,CACR,IAAA,CAAKI,CAAAA,CAAAA,CAAc,CAAA,CACnB,IAAA,CAAKJ,CAAAA,CAAAA,CAAiB,CAAA,CAAA,CAE1B,EAAA,gBAEA,OAAA,CAAU,CAAA,CAAA,EAAM,iBACd,IAAA,uBAAKH,CAAAA,CAAAA,+BAAe,MAAA,qBAAO,GAAA,CAC3B,IAAA,CAAKQ,CAAAA,CAAAA,CAAqB,CAAA,iBAC1B,IAAA,uBAAKN,CAAAA,CAAAA,+BAAgB,MAAA,qBAAO,GAAA,CAC5B,IAAA,CAAKC,CAAAA,CAAAA,CAAiB,CAAA,CACxB,EAAA,gBAEA,KAAA,CAAQ,CAAA,CAAA,EAAM,iBACZ,IAAA,uBAAKH,CAAAA,CAAAA,+BAAe,MAAA,qBAAO,GAAA,iBAC3B,IAAA,uBAAKC,CAAAA,CAAAA,+BAAc,MAAA,qBAAO,GAAA,CAC1B,IAAA,CAAKO,CAAAA,CAAAA,CAAqB,CAAA,CAC1B,IAAA,CAAKN,CAAAA,CAAAA,CAAiB,KAAA,CAAA,CACtB,IAAA,CAAKC,CAAAA,CAAAA,CAAiB,CAAA,CACxB,EAAA,CAEAI,CAAAA,CAAgB,CAAA,CAAA,EAAM,CAGpB,EAAA,CAFA,MAAA,CAAO,gBAAA,CAAiB,SAAA,CAAW,IAAA,CAAKE,CAAAA,CAAc,CAAA,CAElD,IAAA,CAAKV,CAAAA,CAAAA,CAAQ,WAAA,CAAa,CAC5B,GAAM,CAAE,YAAA,CAAAlB,CAAAA,CAAc,aAAA,CAAAC,CAAc,CAAA,CAAIH,CAAAA,CAA8B,IAAA,CAAKoB,CAAAA,CAAO,CAAA,CAElF,IAAA,CAAKC,CAAAA,CAAAA,CAAgBnB,CAAAA,CACrB,IAAA,CAAKqB,CAAAA,CAAAA,CAAiBpB,CACxB,CAAA,IAAO,CACL,GAAM,CAAE,YAAA,CAAAD,CAAAA,CAAc,WAAA,CAAAa,CAAAA,CAAa,aAAA,CAAAZ,CAAc,CAAA,CAAIU,CAAAA,CAAoB,IAAA,CAAKO,CAAAA,CAAAA,CAAS,IAAA,CAAKW,CAAAA,CAAa,CAAA,CAEzG,IAAA,CAAKV,CAAAA,CAAAA,CAAgBnB,CAAAA,CACrB,IAAA,CAAKoB,CAAAA,CAAAA,CAAeP,CAAAA,CACpB,IAAA,CAAKQ,CAAAA,CAAAA,CAAiBpB,CACxB,CACF,CAAA,CAEA4B,CAAAA,CAAAA,CAAgB,CAAA,CAAA,EAAM,iBACpB,IAAA,uBAAKR,CAAAA,CAAAA,+BAAgB,aAAA,+BAAe,WAAA,qBAAY,CAAE,QAAA,CAAA,8BAA8C,CAAA,CAAG,GAAG,GACxG,CAAA,CAEAM,CAAAA,CAAAA,CAAuB,CAAA,CAAA,EAAM,CAC3BZ,CAAAA,CAAa,kBAAA,CAAmB,CAAA,CAChC,MAAA,CAAO,mBAAA,CAAoB,SAAA,CAAW,IAAA,CAAKa,CAAAA,CAAc,CAC3D,CAAA,CAEAA,CAAAA,CAAAA,CAAkBE,CAAAA,EAA6D,iBACzEA,CAAAA,+BAAO,IAAA,+BAAM,UAAA,EAAY,IAAA,CAAKR,CAAAA,CAAAA,EAChCP,CAAAA,CAAa,IAAA,CAAKe,CAAAA,CAAM,IAAA,CAAK,QAAA,CAAUA,CAAAA,CAAM,IAAA,CAAK,IAAI,CAE1D,CACF,yDAAA,CAAA,oBAAA","file":"/var/lib/jenkins/workspace/npm-publish/npm-publish-by-repo/lib/index.cjs","sourcesContent":["import events from 'events';\nimport { Events } from 'Constants/events';\nimport { renderIframeInCustomContainer } from 'Components/custom-container/render-iframe-in-custom-container';\nimport { renderIframeInModal } from 'Components/modal/render-iframe-in-modal';\nimport { TransakConfig } from 'Types/sdk-config.types';\n\nconst eventEmitter = new events.EventEmitter();\n\nclass Transak {\n readonly #config: TransakConfig;\n\n #styleElement?: HTMLStyleElement;\n\n #rootElement?: HTMLDivElement;\n\n #iframeElement?: HTMLIFrameElement;\n\n #isInitialized = false;\n\n static readonly EVENTS = Events;\n\n constructor(transakConfig: TransakConfig) {\n if (!transakConfig?.widgetUrl) throw new Error('[Transak SDK] => widgetUrl is required');\n\n this.#config = transakConfig;\n }\n\n static on = (type: keyof typeof Events, cb: (data: unknown) => void) => {\n if (Events[type]) {\n eventEmitter.on(type, cb);\n }\n };\n\n init = () => {\n if (!this.#isInitialized) {\n this.#renderIframe();\n this.#isInitialized = true;\n }\n };\n\n cleanup = () => {\n this.#styleElement?.remove();\n this.#removeEventListener();\n this.#iframeElement?.remove();\n this.#isInitialized = false;\n };\n\n close = () => {\n this.#styleElement?.remove();\n this.#rootElement?.remove();\n this.#removeEventListener();\n this.#iframeElement = undefined;\n this.#isInitialized = false;\n };\n\n #renderIframe = () => {\n window.addEventListener('message', this.#handleMessage);\n\n if (this.#config.containerId) {\n const { styleElement, iframeElement } = renderIframeInCustomContainer(this.#config);\n\n this.#styleElement = styleElement;\n this.#iframeElement = iframeElement;\n } else {\n const { styleElement, rootElement, iframeElement } = renderIframeInModal(this.#config, this.#closeRequest);\n\n this.#styleElement = styleElement;\n this.#rootElement = rootElement;\n this.#iframeElement = iframeElement;\n }\n };\n\n #closeRequest = () => {\n this.#iframeElement?.contentWindow?.postMessage({ event_id: Events.TRANSAK_WIDGET_CLOSE_REQUEST }, '*');\n };\n\n #removeEventListener = () => {\n eventEmitter.removeAllListeners();\n window.removeEventListener('message', this.#handleMessage);\n };\n\n #handleMessage = (event: MessageEvent<{ event_id: Events; data: unknown }>) => {\n if (event?.data?.event_id && this.#isInitialized) {\n eventEmitter.emit(event.data.event_id, event.data.data);\n }\n };\n}\n\nexport { Transak };\n","export enum Events {\n TRANSAK_WIDGET_INITIALISED = 'TRANSAK_WIDGET_INITIALISED',\n TRANSAK_ORDER_CREATED = 'TRANSAK_ORDER_CREATED',\n TRANSAK_ORDER_SUCCESSFUL = 'TRANSAK_ORDER_SUCCESSFUL',\n TRANSAK_ORDER_CANCELLED = 'TRANSAK_ORDER_CANCELLED',\n TRANSAK_ORDER_FAILED = 'TRANSAK_ORDER_FAILED',\n TRANSAK_WALLET_REDIRECTION = 'TRANSAK_WALLET_REDIRECTION',\n TRANSAK_WIDGET_CLOSE_REQUEST = 'TRANSAK_WIDGET_CLOSE_REQUEST',\n TRANSAK_WIDGET_CLOSE = 'TRANSAK_WIDGET_CLOSE',\n}\n","import qs from 'query-string';\nimport packageJson from 'package.json';\nimport { validateURL, isValidURL } from 'Utils/validate-url';\nimport { TransakConfig } from 'Types/sdk-config.types';\n\nexport function generateGlobalTransakUrl(configData: TransakConfig) {\n const { name: sdkName, version: sdkVersion } = packageJson;\n const { referrer, widgetUrl } = configData || {};\n\n if (!isValidURL(referrer) || !isValidURL(widgetUrl)) {\n throw new Error('referrer and widgetUrl are required and must be valid URLs');\n }\n\n const urlString = qs.stringifyUrl(\n {\n url: widgetUrl,\n query: { sdkName, sdkVersion },\n },\n { arrayFormat: 'comma' },\n );\n\n return validateURL(urlString);\n}\n","{\n \"name\": \"@transak/transak-sdk\",\n \"version\": \"4.0.0\",\n \"description\": \"Transak SDK that allows you to easily integrate fiat on/off ramp\",\n \"type\": \"module\",\n \"types\": \"lib/index.d.ts\",\n \"main\": \"lib/index.cjs\",\n \"exports\": {\n \".\": {\n \"import\": {\n \"types\": \"./lib/index.d.ts\",\n \"default\": \"./lib/index.js\"\n },\n \"require\": {\n \"types\": \"./lib/index.d.cts\",\n \"default\": \"./lib/index.cjs\"\n }\n }\n },\n \"engines\": {\n \"node\": \">=20.0.0\"\n },\n \"packageManager\": \"pnpm@10.16.1+sha512.0e155aa2629db8672b49e8475da6226aa4bdea85fdcdfdc15350874946d4f3c91faaf64cbdc4a5d1ab8002f473d5c3fcedcd197989cf0390f9badd3c04678706\",\n \"files\": [\n \"lib/**/*\"\n ],\n \"scripts\": {\n \"eslint\": \"eslint . --ext .ts --fix\",\n \"build\": \"tsc && tsup\",\n \"prepack\": \"pnpm build\",\n \"packDev\": \"pnpm pack\"\n },\n \"author\": \"Transak\",\n \"license\": \"ISC\",\n \"homepage\": \"https://docs.transak.com/docs/web-integration#transak-sdk-reactvueangularts\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/Transak/transak-sdk\"\n },\n \"dependencies\": {\n \"events\": \"^3.3.0\",\n \"query-string\": \"^9.3.0\"\n },\n \"devDependencies\": {\n \"@types/events\": \"^3.0.3\",\n \"@typescript-eslint/eslint-plugin\": \"^7.18.0\",\n \"@typescript-eslint/parser\": \"^7.18.0\",\n \"eslint\": \"~8.57.1\",\n \"eslint-config-airbnb-base\": \"^15.0.0\",\n \"eslint-config-airbnb-typescript\": \"^18.0.0\",\n \"eslint-config-prettier\": \"^10.1.8\",\n \"eslint-plugin-eslint-comments\": \"^3.2.0\",\n \"eslint-plugin-import\": \"^2.32.0\",\n \"eslint-plugin-no-relative-import-paths\": \"^1.6.1\",\n \"eslint-plugin-prettier\": \"^5.5.4\",\n \"eslint-plugin-promise\": \"^7.2.1\",\n \"prettier\": \"^3.6.2\",\n \"tsup\": \"^8.5.0\",\n \"typescript\": \"~5.5.4\"\n },\n \"keywords\": [\n \"crypto\",\n \"cryptocurrency\",\n \"fiat\",\n \"on\",\n \"off\",\n \"ramp\",\n \"sdk\",\n \"ts\",\n \"js\"\n ]\n}\n","const isValidURL = (url: string): boolean => {\n if (!url) {\n return false;\n }\n\n try {\n const urlObject = new URL(url);\n\n return Boolean(urlObject);\n } catch (error) {\n return false;\n }\n};\n\nconst validateURL = (url: string) => {\n if (!isValidURL(url)) {\n throw new Error('Invalid URL');\n }\n\n return url;\n};\n\nexport { validateURL, isValidURL };\n","export function createIframe(src: string) {\n const iframe = document.createElement('iframe');\n\n Object.assign(iframe, {\n id: 'transakIframe',\n allow: 'camera;microphone;payment',\n src,\n });\n\n return iframe;\n}\n","export function generateCustomContainerCss() {\n return `\n #transakIframe{\n width: 100%;\n height: 100%;\n border: none;\n }\n `;\n}\n","import { generateCustomContainerCss } from './generate-custom-container-css';\n\nexport function insertCustomContainerStyleToHtmlHead() {\n const style = document.createElement('style');\n\n style.innerHTML = generateCustomContainerCss();\n\n document.getElementsByTagName('head')[0]?.appendChild(style);\n\n return style;\n}\n","import { generateGlobalTransakUrl } from 'Utils/generate-global-transak-url';\nimport { createIframe } from 'Utils/create-iframe';\nimport { TransakConfig } from 'Types/sdk-config.types';\nimport { insertCustomContainerStyleToHtmlHead } from './insert-custom-container-style-to-html-head';\n\nexport function renderIframeInCustomContainer(config: TransakConfig) {\n const styleElement = insertCustomContainerStyleToHtmlHead();\n const iframeElement = createIframe(generateGlobalTransakUrl(config));\n\n if (config.containerId) {\n const containerIdElement = document.getElementById(config.containerId);\n\n if (containerIdElement) {\n containerIdElement.appendChild(iframeElement);\n } else {\n throw new Error('[Transak SDK] => Please enter a valid containerId');\n }\n }\n\n return { styleElement, iframeElement };\n}\n","const closeIcon = `\n <svg id=\"transakCloseIcon\" viewBox=\"0 0 612 612\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M306,0C136.992,0,0,136.992,0,306s136.992,306,306,306c168.988,0,306-137.012,306-306S475.008,0,306,0z M414.19,387.147\n c7.478,7.478,7.478,19.584,0,27.043c-7.479,7.478-19.584,7.478-27.043,0l-81.032-81.033l-81.588,81.588\n c-7.535,7.516-19.737,7.516-27.253,0c-7.535-7.535-7.535-19.737,0-27.254l81.587-81.587l-81.033-81.033\n c-7.478-7.478-7.478-19.584,0-27.042c7.478-7.478,19.584-7.478,27.042,0l81.033,81.033l82.181-82.18\n c7.535-7.535,19.736-7.535,27.253,0c7.535,7.535,7.535,19.737,0,27.253l-82.181,82.181L414.19,387.147z\" />\n </svg>\n`;\n\nexport { closeIcon };\n",null,"export function generateModalCss(themeColor: string, width: string, height: string) {\n const closeIconHeight = 36;\n const closeIconHeightOnePart = 36 / 3;\n const closeIconHeightTwoParts = (36 / 3) * 2;\n\n return `\n #transakRoot {\n z-index: 9997;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: rgba(0, 0, 0, 0.6);\n }\n\n #transakModal {\n z-index: 9998;\n position: fixed;\n width: ${width};\n height: calc(${height} - ${closeIconHeightTwoParts}px);\n top: 50%;\n left: 50%;\n transform: translate(-50%, calc(-50% - ${closeIconHeightOnePart}px));\n margin-top: ${closeIconHeightTwoParts}px;\n }\n\n #transakCloseIcon {\n z-index: 9999;\n position: absolute;\n width: 36px;\n height: ${closeIconHeight}px;\n top: -${closeIconHeightTwoParts}px;\n right: 0;\n transition: 0.5s;\n color: #${themeColor};\n background: white;\n border-radius: 50%;\n }\n\n #transakCloseIcon:hover,\n #transakCloseIcon:focus {\n color: white;\n background: #${themeColor};\n cursor: pointer;\n }\n\n #transakIframe{\n width: 100%;\n height: 100%;\n border: none;\n border-radius: 10px;\n background: white;\n }\n\n @media screen and (max-width: 600px) {\n #transakModal {\n width: 100%;\n height: calc(100% - ${closeIconHeightTwoParts}px);\n }\n\n #transakIframe{\n border-radius: 10px 10px 0 0;\n }\n }\n `;\n}\n","import { TransakConfig } from 'Types/sdk-config.types';\nimport { generateModalCss } from './generate-modal-css';\n\nexport function insertModalStyleToHtmlHead(config: TransakConfig) {\n const { themeColor = '1461db', widgetWidth = '480px', widgetHeight = '650px' } = config;\n const style = document.createElement('style');\n\n style.innerHTML = generateModalCss(themeColor, widgetWidth, widgetHeight);\n\n document.getElementsByTagName('head')[0]?.appendChild(style);\n\n return style;\n}\n","import { closeIcon } from 'Assets/svg/close-icon';\nimport { generateGlobalTransakUrl } from 'Utils/generate-global-transak-url';\nimport { createIframe } from 'Utils/create-iframe';\nimport { TransakConfig } from 'Types/sdk-config.types';\nimport { insertModalStyleToHtmlHead } from './insert-modal-style-to-html-head';\n\nexport function renderIframeInModal(config: TransakConfig, closeRequest: () => void) {\n const styleElement = insertModalStyleToHtmlHead(config);\n const rootElement = document.createElement('div');\n const modal = document.createElement('div');\n const iframeElement = createIframe(generateGlobalTransakUrl(config));\n\n Object.assign(modal, {\n id: 'transakModal',\n innerHTML: closeIcon,\n });\n\n modal.appendChild(iframeElement);\n\n Object.assign(rootElement, {\n id: 'transakRoot',\n onclick: () => closeRequest(),\n });\n\n rootElement.appendChild(modal);\n\n document.getElementsByTagName('body')[0].appendChild(rootElement);\n\n document.getElementById('transakCloseIcon')?.addEventListener('click', () => closeRequest());\n\n return { styleElement, rootElement, iframeElement };\n}\n"]}