@frak-labs/components 0.0.24-beta.2c1d363d → 0.0.24-beta.4dfea079
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/cdn/{ButtonShare.kuSKkyv0.js → ButtonShare.BrGsj7HX.js} +1 -1
- package/cdn/{ButtonWallet.Cvuxgx13.js → ButtonWallet.ChF2LBtP.js} +1 -1
- package/cdn/{OpenInAppButton.BMY6lOfL.js → OpenInAppButton.B432KdCO.js} +1 -1
- package/cdn/{Spinner.6UPp_9Ii.js → Spinner.FSmbumxV.js} +1 -1
- package/cdn/components.js +1 -1
- package/cdn/{initFrakSdk.qhnp614c.js → initFrakSdk.CFKrZv6i.js} +1 -1
- package/cdn/loader.js +1 -1
- package/cdn/{useClientReady.C-ACrktG.js → useClientReady.C76MAbLf.js} +1 -1
- package/dist/{Spinner-J7chVm6X.js → Spinner-ByXrz_8L.js} +3 -3
- package/dist/buttonShare.d.ts +1 -1
- package/dist/buttonShare.js +2 -2
- package/dist/buttonWallet.d.ts +1 -1
- package/dist/buttonWallet.js +6 -6
- package/dist/openInApp.js +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -66,3 +66,25 @@ Button with custom class:
|
|
|
66
66
|
```html
|
|
67
67
|
<frak-button-wallet classname="button button-primary"></frak-button-wallet>
|
|
68
68
|
```
|
|
69
|
+
|
|
70
|
+
## Sample usage for Open In App button
|
|
71
|
+
|
|
72
|
+
Sample code to use open in app button:
|
|
73
|
+
|
|
74
|
+
```html
|
|
75
|
+
<frak-open-in-app></frak-open-in-app>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Button with custom text:
|
|
79
|
+
|
|
80
|
+
```html
|
|
81
|
+
<frak-open-in-app text="Get the App"></frak-open-in-app>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Button with custom class:
|
|
85
|
+
|
|
86
|
+
```html
|
|
87
|
+
<frak-open-in-app classname="button button-primary"></frak-open-in-app>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Note:** This component only renders on mobile devices. On desktop, it returns null.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as e,a as t,b as n,c as r,f as i,h as a,l as o,m as s,n as c,o as l,p as u,s as d}from"./initFrakSdk.
|
|
1
|
+
import{S as e,a as t,b as n,c as r,f as i,h as a,l as o,m as s,n as c,o as l,p as u,s as d}from"./initFrakSdk.CFKrZv6i.js";import{t as f}from"./Spinner.FSmbumxV.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./useClientReady.C76MAbLf.js";function y(e,t){return!e||e.payoutType!==`fixed`?0:e.amount[t]}function b(e,t){return e.reduce((e,n)=>Math.max(e,y(n.referrer,t)),0)}async function x({targetInteraction:e}){let t=window.FrakSetup?.client;if(!t){console.warn(`Frak client not ready yet`);return}let{rewards:n}=await l(t),i=r(t.config.metadata?.currency),a=b(e?n.filter(t=>t.interactionTypeKey===e):n,i);if(!(a<=0))return d(Math.round(a),t.config.metadata?.currency)}function S(e,t){let[n,r]=_(void 0);return p(()=>{e&&x({targetInteraction:t}).then(e=>{e&&r(e)})},[e,t]),{reward:n}}const C={buttonShare:`nOB7Uq_buttonShare`};C.buttonShare;function w(e={}){let{successDuration:t=2e3}=e,[n,r]=_(!1);return{copy:m(async e=>{try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(e),r(!0);else{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.focus(),t.select();try{document.execCommand(`copy`),r(!0)}catch(e){return console.error(`Failed to copy text:`,e),!1}finally{t.remove()}}return setTimeout(()=>{r(!1)},t),!0}catch(e){return console.error(`Failed to copy text:`,e),!1}},[t]),copied:n}}const T={errorContainer:{marginTop:`16px`,padding:`16px`,backgroundColor:`#FEE2E2`,border:`1px solid #FCA5A5`,borderRadius:`4px`,color:`#991B1B`},header:{display:`flex`,alignItems:`center`,gap:`8px`,marginBottom:`12px`},title:{margin:0,fontSize:`16px`,fontWeight:500},message:{fontSize:`14px`,lineHeight:`1.5`,margin:`0 0 12px 0`},link:{color:`#991B1B`,textDecoration:`underline`,textUnderlineOffset:`2px`},copyButton:{display:`inline-flex`,alignItems:`center`,gap:`8px`,marginBottom:`10px`,padding:`8px 12px`,backgroundColor:`white`,border:`1px solid #D1D5DB`,borderRadius:`4px`,color:`black`,fontSize:`14px`,fontWeight:500}};function E({debugInfo:e}){let[t,n]=_(!1);return a(`div`,{children:[a(`button`,{type:`button`,style:T.copyButton,onClick:()=>n(!t),children:`Ouvrir les informations`}),t&&a(`textarea`,{style:{display:`block`,width:`100%`,height:`200px`,fontSize:`12px`},children:e})]})}function D({debugInfo:e}){let{copied:t,copy:n}=w();return a(`div`,{style:T.errorContainer,children:[a(`div`,{style:T.header,children:a(`h3`,{style:T.title,children:`Oups ! Nous avons rencontré un petit problème`})}),a(`p`,{style:T.message,children:[`Impossible d'ouvrir le menu de partage pour le moment. Si le problème persiste, copiez les informations ci-dessous et collez-les dans votre mail à`,` `,a(`a`,{href:`mailto:help@frak-labs.com?subject=Debug`,style:T.link,children:`help@frak-labs.com`}),` `,a(`br`,{}),`Merci pour votre retour, nous traitons votre demande dans les plus brefs délais.`]}),a(`button`,{type:`button`,onClick:()=>n(e??``),style:T.copyButton,children:t?`Informations copiées !`:`Copier les informations de débogage`}),a(E,{debugInfo:e})]})}function O(e){let[t,n]=_(void 0),[r,a]=_(!1);return{handleShare:m(async()=>{if(!window.FrakSetup?.client){console.error(`Frak client not found`),n(o.empty().formatDebugInfo(`Frak client not found`)),a(!0);return}let t=c();if(!t)throw Error(`modalBuilderSteps not found`);try{await t.sharing(window.FrakSetup?.modalShareConfig??{}).display(t=>({...t,targetInteraction:e}))}catch(e){if(e instanceof s&&e.code===u.clientAborted){console.debug(`User aborted the modal`);return}let t=window.FrakSetup.client.debugInfo.formatDebugInfo(e);i(window.FrakSetup.client,`share_modal_error`,{error:e instanceof Object&&`message`in e?e.message:`Unknown error`,debugInfo:t}),n(t),a(!0),console.error(`Error while opening the modal`,e)}},[e]),isError:r,debugInfo:t}}async function k(){if(!window.FrakSetup?.client)throw Error(`Frak client not found`);await t(window.FrakSetup.client,window.FrakSetup?.modalWalletConfig??{})}function A({text:t=`Share and earn!`,classname:r=``,useReward:o,noRewardText:s,targetInteraction:c,showWallet:l}){let u=h(()=>o!==void 0,[o]),d=h(()=>l!==void 0,[l]),{isClientReady:p}=v(),{reward:g}=S(u&&p,c),{handleShare:_,isError:y,debugInfo:b}=O(c),x=h(()=>u?g?t.includes(`{REWARD}`)?t.replace(`{REWARD}`,g):`${t} ${g}`:s??t.replace(`{REWARD}`,``):t,[u,t,s,g]),w=m(async()=>{i(window.FrakSetup.client,`share_button_clicked`),d?await k():await _()},[d,_]);return a(n,{children:[a(`button`,{type:`button`,className:e(C.buttonShare,r,`override`),onClick:w,children:[!p&&a(f,{}),` `,x]}),y&&a(D,{debugInfo:b})]})}g(A,`frak-button-share`,[`text`],{shadow:!1});export{A as ButtonShare,S as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as e,f as t,h as n,i as r}from"./initFrakSdk.
|
|
1
|
+
import{S as e,f as t,h as n,i as r}from"./initFrakSdk.CFKrZv6i.js";import{a as i,n as a,o,r as s,t as c}from"./useClientReady.C76MAbLf.js";import{t as l}from"./ButtonShare.BrGsj7HX.js";function u(e){return n(`svg`,{fill:`none`,height:`1em`,viewBox:`0 0 28 28`,width:`1em`,xmlns:`http://www.w3.org/2000/svg`,...e,children:[n(`title`,{children:`Gift icon`}),n(`path`,{d:`m23.1427 13.9999v11.4285h-18.2857v-11.4285m9.1429 11.4285v-17.14282m0 0h-5.1429c-.75776 0-1.48448-.30102-2.0203-.83684s-.83684-1.26255-.83684-2.02031.30102-1.48448.83684-2.0203 1.26254-.83684 2.0203-.83684c4 0 5.1429 5.71429 5.1429 5.71429zm0 0h5.1428c.7578 0 1.4845-.30102 2.0203-.83684s.8369-1.26255.8369-2.02031-.3011-1.48448-.8369-2.0203-1.2625-.83684-2.0203-.83684c-4 0-5.1428 5.71429-5.1428 5.71429zm-11.42861 0h22.85711v5.71432h-22.85711z`,stroke:`#fff`,"stroke-linecap":`round`,"stroke-linejoin":`round`})]})}const d={button:`Kl62ia_button`,button__right:`Kl62ia_button__right`,button__left:`Kl62ia_button__left`,reward:`Kl62ia_reward`};d.button,d.button__right,d.button__left,d.reward;function f({classname:o=``,useReward:f,targetInteraction:p}){let m=a(()=>f!==void 0,[f]),{isClientReady:h}=c(),{reward:g}=l(m&&h,p),[_,v]=s(`right`);return i(()=>{let e=window.FrakSetup?.modalWalletConfig?.metadata?.position;v(e??`right`)},[]),n(`button`,{type:`button`,"aria-label":`Open wallet`,class:e(d.button,_===`left`?d.button__left:d.button__right,o,`override`),disabled:!h,onClick:()=>{t(window.FrakSetup.client,`wallet_button_clicked`),r()},children:[n(u,{}),g&&n(`span`,{className:d.reward,children:g})]})}o(f,`frak-button-wallet`,[],{shadow:!1});export{f as ButtonWallet};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as e,d as t,f as n,h as r,u as i}from"./initFrakSdk.
|
|
1
|
+
import{S as e,d as t,f as n,h as r,u as i}from"./initFrakSdk.CFKrZv6i.js";import{t as a}from"./Spinner.FSmbumxV.js";import{n as o,o as s,t as c}from"./useClientReady.C76MAbLf.js";function l(){return typeof navigator>`u`?!1:!!(/iPhone|iPad|iPod|Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||/Macintosh/i.test(navigator.userAgent)&&navigator.maxTouchPoints>1)}function u(){return{isMobile:o(()=>l(),[])}}function d(e=`wallet`){let r=window.FrakSetup?.client;r&&n(r,`open_in_app_clicked`),i(`${t}${e}`,{onFallback:()=>{r&&n(r,`app_not_installed`)}})}const f={button:`XYfqGq_button`};f.button;function p({text:t=`Open in App`,classname:n=``}){let{isClientReady:i}=c(),{isMobile:o}=u();if(!o)return null;let s=()=>{d()};return r(`button`,{type:`button`,"aria-label":`Open in Frak Wallet app`,className:e(f.button,n,`override`),disabled:!i,onClick:s,children:[!i&&r(a,{}),` `,t]})}s(p,`frak-open-in-app`,[`text`],{shadow:!1});export{p as OpenInAppButton};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as e,h as t}from"./initFrakSdk.
|
|
1
|
+
import{S as e,h as t}from"./initFrakSdk.CFKrZv6i.js";const n={spinner:`M4fSKa_spinner`,spinner__leaf:`M4fSKa_spinner__leaf`,"rt-spinner-leaf-fade":`M4fSKa_rt-spinner-leaf-fade`};n.spinner,n.spinner__leaf,n[`rt-spinner-leaf-fade`];const r=({ref:r,className:i,...a})=>t(`span`,{...a,ref:r,className:e(n.spinner),children:[t(`span`,{className:n.spinner__leaf}),t(`span`,{className:n.spinner__leaf}),t(`span`,{className:n.spinner__leaf}),t(`span`,{className:n.spinner__leaf}),t(`span`,{className:n.spinner__leaf}),t(`span`,{className:n.spinner__leaf}),t(`span`,{className:n.spinner__leaf}),t(`span`,{className:n.spinner__leaf})]});r.displayName=`Spinner`;export{r as t};
|
package/cdn/components.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import(`https://cdn.jsdelivr.net/npm/@frak-labs/components@latest/cdn/loader.js?v=
|
|
1
|
+
import(`https://cdn.jsdelivr.net/npm/@frak-labs/components@latest/cdn/loader.js?v=1771436908078`);
|
|
@@ -11,4 +11,4 @@ var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],en
|
|
|
11
11
|
Last Response: ${t.lastResponse}
|
|
12
12
|
Client Status: ${t.clientStatus}
|
|
13
13
|
Error: ${t.error}
|
|
14
|
-
`.trim()}};function _n(){let e=navigator.userAgent;return/Android/i.test(e)&&/Chrome\/\d+/i.test(e)}function vn(e){return`intent://${e.slice(13)}#Intent;scheme=frakwallet;package=id.frak.wallet;end`}function yn(e,t){let n=t?.timeout??2500,r=!1,i=()=>{document.hidden&&(r=!0)};document.addEventListener(`visibilitychange`,i);let a=_n()&&bn(e)?vn(e):e;window.location.href=a,setTimeout(()=>{document.removeEventListener(`visibilitychange`,i),r||t?.onFallback?.()},n)}function bn(e){return e.startsWith(mn)}const Y={id:`frak-wallet`,name:`frak-wallet`,title:`Frak Wallet`,allow:`publickey-credentials-get *; clipboard-write; web-share *`,style:{width:`0`,height:`0`,border:`0`,position:`absolute`,zIndex:2000001,top:`-1000px`,left:`-1000px`,colorScheme:`auto`}};function xn({walletBaseUrl:e,config:t}){let n=document.querySelector(`#frak-wallet`);n&&n.remove();let r=document.createElement(`iframe`);return r.id=Y.id,r.name=Y.name,r.allow=Y.allow,r.style.zIndex=Y.style.zIndex.toString(),Sn({iframe:r,isVisible:!1}),r.src=`${t?.walletUrl??e??`https://wallet.frak.id`}/listener`,new Promise(e=>{r.addEventListener(`load`,()=>e(r)),document.body.appendChild(r)})}function Sn({iframe:e,isVisible:t}){if(!t){e.style.width=`0`,e.style.height=`0`,e.style.border=`0`,e.style.position=`fixed`,e.style.top=`-1000px`,e.style.left=`-1000px`;return}e.style.position=`fixed`,e.style.top=`0`,e.style.left=`0`,e.style.width=`100%`,e.style.height=`100%`,e.style.pointerEvents=`auto`}function Cn(e=`/listener`){if(!window.opener)return null;let t=t=>{try{return t.location.origin===window.location.origin&&t.location.pathname===e}catch{return!1}};if(t(window.opener))return window.opener;try{let e=window.opener.frames;for(let n=0;n<e.length;n++)if(t(e[n]))return e[n];return null}catch(t){return console.error(`[findIframeInOpener] Error finding iframe with pathname ${e}:`,t),null}}function wn(e){e?localStorage.setItem(J,e):localStorage.removeItem(J)}function Tn(e,t,n){let r=new URL(window.location.href),i=r.searchParams.get(`fmt`)??void 0;e.contentWindow?.postMessage({clientLifecycle:`handshake-response`,data:{token:t,currentUrl:window.location.href,clientId:Ut(),pendingMergeToken:i}},n),i&&(r.searchParams.delete(`fmt`),window.history.replaceState({},``,r.toString()))}function En(e,t){try{let n=new URL(e);return n.searchParams.has(`u`)?(n.searchParams.delete(`u`),n.searchParams.append(`u`,window.location.href),t&&n.searchParams.append(`fmt`,t),n.toString()):e}catch{return e}}function Dn(e,t,n,r){let i=En(t,r);bn(t)?yn(i,{onFallback:()=>{e.contentWindow?.postMessage({clientLifecycle:`deep-link-failed`,data:{originalUrl:i}},n)}}):window.location.href=i}function On({iframe:e,targetOrigin:t}){let n=new It;return{handleEvent:async r=>{if(!(`iframeLifecycle`in r))return;let{iframeLifecycle:i,data:a}=r;switch(i){case`connected`:n.resolve(!0);break;case`do-backup`:wn(a.backup);break;case`remove-backup`:localStorage.removeItem(J);break;case`show`:case`hide`:Sn({iframe:e,isVisible:i===`show`});break;case`handshake`:Tn(e,a.token,t);break;case`redirect`:Dn(e,a.baseRedirectUrl,t,a.mergeToken);break}},isConnected:n.promise}}function kn({config:e,iframe:t}){let n=e?.walletUrl??`https://wallet.frak.id`,r=On({iframe:t,targetOrigin:n}),i=new gn(e,t);if(!t.contentWindow)throw new G(W.configError,`The iframe does not have a content window`);let a=Lt({emittingTransport:t.contentWindow,listeningTransport:window,targetOrigin:n,middleware:[{async onRequest(e,t){if(!await r.isConnected)throw new G(W.clientNotConnected,`The iframe provider isn't connected yet`);return t}},{onRequest(e,t){return i.setLastRequest(e),t},onResponse(e,t){return i.setLastResponse(e,t),t}}],lifecycleHandlers:{iframeLifecycle:async(e,t)=>{await r.handleEvent(e)}}}),o=An(a,r),s=async()=>{o(),a.cleanup(),t.remove()},c;console.log(`[Frak SDK] Initializing OpenPanel`),c=new pn({apiUrl:`https://op-api.gcp.frak.id`,clientId:`6eacc8d7-49ac-4936-95e9-81ef29449570`,trackScreenViews:!0,trackOutgoingLinks:!0,trackAttributes:!1,filter:({type:e,payload:t})=>(e!==`track`||!t?.properties||`sdkVersion`in t.properties||(t.properties={...t.properties,sdkVersion:`0.1.1`}),!0)}),c.setGlobalProperties({sdkVersion:`0.1.1`}),c.init();let l=jn({config:e,rpcClient:a,lifecycleManager:r}).then(()=>i.updateSetupStatus(!0));return{config:e,debugInfo:i,waitForConnection:r.isConnected,waitForSetup:l,request:a.request,listenerRequest:a.listen,destroy:s,openPanel:c}}function An(e,t){let n,r,i=()=>e.sendLifecycle({clientLifecycle:`heartbeat`});async function a(){i(),n=setInterval(i,1e3),r=setTimeout(()=>{o(),console.log(`Heartbeat timeout: connection failed`)},3e4),await t.isConnected,o()}function o(){n&&clearInterval(n),r&&clearTimeout(r)}return a(),o}async function jn({config:e,rpcClient:t,lifecycleManager:n}){await n.isConnected,hn(t,n.isConnected);async function r(){let n=e.customizations?.css;if(!n)return;let r={clientLifecycle:`modal-css`,data:{cssLink:n}};t.sendLifecycle(r)}async function i(){let n=e.customizations?.i18n;if(!n)return;let r={clientLifecycle:`modal-i18n`,data:{i18n:n}};t.sendLifecycle(r)}async function a(){if(typeof window>`u`)return;let e=window.localStorage.getItem(J);if(!e)return;let n={clientLifecycle:`restore-backup`,data:{backup:e}};t.sendLifecycle(n)}await Promise.allSettled([r(),i(),a()])}function Mn(e){return zt(Gt(e))}const X={eur:`fr-FR`,usd:`en-US`,gbp:`en-GB`};function Nn(e){return e&&e in X?e:`eur`}function Pn(e){return e?X[e]??X.eur:X.eur}function Fn(e,t){let n=Pn(t),r=Nn(t);return e.toLocaleString(n,{style:`currency`,currency:r,minimumFractionDigits:0,maximumFractionDigits:2})}function In(e){return e?`${e}Amount`:`eurAmount`}let Z,Q;async function Ln(e,t){if(Z)return Z;if(Q)return Q;Q=Rn(e,t);let n=await Q;return Q=void 0,n}async function Rn(e,t){let n=e??(typeof window<`u`?window.location.hostname:``);if(n)try{let e=tn(t),r=await fetch(`${e}/user/merchant/resolve?domain=${encodeURIComponent(n)}`);if(!r.ok){console.warn(`[Frak SDK] Merchant lookup failed for domain ${n}: ${r.status}`);return}return Z=(await r.json()).merchantId,Z}catch(e){console.warn(`[Frak SDK] Failed to fetch merchantId:`,e);return}}function zn(){Z=void 0,Q=void 0}async function Bn(e,t){return e.metadata?.merchantId?e.metadata.merchantId:Ln(void 0,t)}async function Vn({config:e}){let t=Hn(e),n=await xn({config:t});if(!n){console.error(`Failed to create iframe`);return}let r=kn({config:t,iframe:n});if(await r.waitForSetup,!await r.waitForConnection){console.error(`Failed to connect to client`);return}return r}function Hn(e){let t=Nn(e.metadata?.currency);return{...e,metadata:{...e.metadata,currency:t}}}function Un(){return Ft(96)}async function $(e,t){return await e.request({method:`frak_displayEmbeddedWallet`,params:[t,e.config.metadata]})}async function Wn(e,{steps:t,metadata:n}){return await e.request({method:`frak_displayModal`,params:[t,n,e.config.metadata]})}async function Gn(e){return await e.request({method:`frak_getMerchantInformation`})}async function Kn(e,t){let{metadata:n,customizations:r}=e.config;return await e.request({method:`frak_prepareSso`,params:[t,n.name,r?.css]})}async function qn(e,t){try{await e.request({method:`frak_sendInteraction`,params:[t]})}catch{console.warn(`[Frak SDK] Failed to send interaction:`,t.type)}}async function Jn(e,{walletStatus:t,frakContext:n,modalConfig:r,options:i}){if(!n?.r)return`no-referrer`;q(e,`user_referred_started`,{properties:{referrer:n?.r,walletStatus:t?.key}}),qn(e,{type:`arrival`,referrerWallet:n.r,landingUrl:typeof window<`u`?window.location.href:void 0});let a=!1;async function o(){if(!a)return a=!0,Xn(e,{modalConfig:{...r,loggedIn:{action:{key:`referred`}}},walletStatus:t})}try{let{status:r,currentWallet:a}=await Yn({initialWalletStatus:t,getFreshWalletStatus:o,frakContext:n});return K.replaceUrl({url:window.location?.href,context:i?.alwaysAppendUrl?{r:a}:null}),q(e,`user_referred_completed`,{properties:{status:r,referrer:n?.r,wallet:a}}),r}catch(r){return console.log(`Error processing referral`,{error:r}),q(e,`user_referred_error`,{properties:{referrer:n?.r,error:r instanceof G?`[${r.code}] ${r.name} - ${r.message}`:r instanceof Error?r.message:`undefined`}}),K.replaceUrl({url:window.location?.href,context:i?.alwaysAppendUrl?{r:t?.wallet}:null}),Zn(r)}}async function Yn({initialWalletStatus:e,getFreshWalletStatus:t,frakContext:n}){let r=e?.wallet;return r||=await t(),r&&Pt(n.r,r)?{status:`self-referral`,currentWallet:r}:{status:`success`,currentWallet:r}}async function Xn(e,{modalConfig:t,walletStatus:n}){return n?.key===`connected`?n.wallet??void 0:(await $(e,t??{}))?.wallet??void 0}function Zn(e){if(e instanceof G)switch(e.code){case W.walletNotConnected:return`no-wallet`;default:return`error`}return`error`}async function Qn(e,{modalConfig:t,options:n}={}){let r=K.parse({url:window.location.href}),i=await er(e);try{return await Jn(e,{walletStatus:i,frakContext:r,modalConfig:t,options:n})}catch(e){console.warn(`Error processing referral`,{error:e})}}async function $n(e){if(typeof window>`u`){console.warn(`[Frak] No window found, can't track purchase`);return}let t=window.sessionStorage.getItem(`frak-wallet-interaction-token`);if(!t){console.warn(`[Frak] No frak session found, skipping purchase check`);return}let n=tn();await fetch(`${n}/interactions/listenForPurchase`,{method:`POST`,headers:{Accept:`application/json`,"Content-Type":`application/json`,"x-wallet-sdk-auth":t},body:JSON.stringify(e)})}function er(e,t){if(!t)return e.request({method:`frak_listenToWalletStatus`}).then(t=>(tr(e,t),t));let n=new It,r=!1;return e.listenerRequest({method:`frak_listenToWalletStatus`},i=>{tr(e,i),t(i),r||=(n.resolve(i),!0)}),n.promise}function tr(e,t){typeof window>`u`||(e.openPanel?.setGlobalProperties({wallet:t.wallet??null}),t.interactionToken?window.sessionStorage.setItem(`frak-wallet-interaction-token`,t.interactionToken):window.sessionStorage.removeItem(`frak-wallet-interaction-token`))}function nr(e,{metadata:t,login:n}){return rr(e,{steps:{login:n??{}},metadata:t})}function rr(e,t){function n(n){return rr(e,{...t,steps:{...t.steps,sendTransaction:n}})}function r(n){return rr(e,{...t,steps:{...t.steps,final:{...n,action:{key:`reward`}}}})}function i(n,r){return rr(e,{...t,steps:{...t.steps,final:{...r,action:{key:`sharing`,options:n}}}})}async function a(n){return n&&(t.metadata=n(t.metadata??{})),await Wn(e,t)}return{params:t,sendTx:n,reward:r,sharing:i,display:a}}async function ir(e,{tx:t,metadata:n}){return(await Wn(e,{metadata:n,steps:{login:{},sendTransaction:{tx:t}}})).sendTransaction}async function ar(e,{siwe:t,metadata:n}){let r=e.config?.domain??window.location.host,i=t?.statement??`I confirm that I want to use my Frak wallet on: ${e.config.metadata.name}`;return(await Wn(e,{metadata:n,steps:{login:{},siweAuthenticate:{siwe:{...t,statement:i,nonce:t?.nonce??Un(),uri:t?.uri??`https://${r}`,version:t?.version??`1`,domain:r}}}})).siweAuthenticate}var or=t({DEEP_LINK_SCHEME:()=>mn,DebugInfoGatherer:()=>gn,FrakContextManager:()=>K,base64urlDecode:()=>Gt,base64urlEncode:()=>Wt,baseIframeProps:()=>Y,clearMerchantIdCache:()=>zn,compressJsonToB64:()=>Kt,computeLegacyProductId:()=>Bt,createIFrameFrakClient:()=>kn,createIframe:()=>xn,decompressJsonFromB64:()=>Mn,displayEmbeddedWallet:()=>$,displayModal:()=>Wn,fetchMerchantId:()=>Ln,findIframeInOpener:()=>Cn,formatAmount:()=>Fn,generateSsoUrl:()=>qt,getBackendUrl:()=>tn,getClientId:()=>Ut,getCurrencyAmountKey:()=>In,getMerchantInformation:()=>Gn,getSupportedCurrency:()=>Nn,getSupportedLocale:()=>Pn,isChromiumAndroid:()=>_n,isFrakDeepLink:()=>bn,locales:()=>X,modalBuilder:()=>nr,openSso:()=>Zt,prepareSso:()=>Kn,processReferral:()=>Jn,referralInteraction:()=>Qn,resolveMerchantId:()=>Bn,sendInteraction:()=>qn,sendTransaction:()=>ir,setupClient:()=>Vn,siweAuthenticate:()=>ar,ssoPopupFeatures:()=>Yt,ssoPopupName:()=>Xt,toAndroidIntentUrl:()=>vn,trackEvent:()=>q,trackPurchaseStatus:()=>$n,triggerDeepLinkWithFallback:()=>yn,watchWalletStatus:()=>er});function sr(){`vibrate`in navigator?navigator.vibrate(10):console.log(`Vibration not supported`)}function cr(){if(!window.FrakSetup?.client){console.error(`Frak client not found`);return}sr(),$(window.FrakSetup.client,window.FrakSetup?.modalWalletConfig??{})}const lr=`frakClientReady`;function ur(){let e=new CustomEvent(lr);window.dispatchEvent(e)}function dr(e,t){if(window.FrakSetup?.client&&e===`add`){t();return}(e===`add`?window.addEventListener:window.removeEventListener)(lr,t,!1)}function fr(e){window.modalBuilderSteps=nr(e,window.FrakSetup?.modalConfig??{})}async function pr(e){let t=await Qn(e,{modalConfig:window.FrakSetup?.modalWalletConfig});console.log(`referral`,t)}function mr(){if(!window.modalBuilderSteps)throw Error(`modalBuilderSteps not found`);return window.modalBuilderSteps}async function hr(){if(window.FrakSetup.core=or,!gr())return;if(console.log(`[Frak SDK] Starting initialization`),!window.FrakSetup.config){console.error(`[Frak SDK] Configuration not found`),window.frakSetupInProgress=!1;return}let e=await Vn({config:window.FrakSetup.config});if(!e){console.error(`[Frak SDK] Failed to create client`),window.frakSetupInProgress=!1;return}window.FrakSetup.client=e,console.log(`[Frak SDK] Client initialized successfully`),ur(),fr(e),pr(e),window.frakSetupInProgress=!1,_r()}function gr(){return window.frakSetupInProgress?(console.log(`[Frak SDK] Initialization already in progress`),!1):(window.frakSetupInProgress=!0,window.FrakSetup?.client?(console.log(`[Frak SDK] Client already initialized`),window.frakSetupInProgress=!1,!1):window.FrakSetup?.config?!0:(console.error(`[Frak SDK] Configuration not found. Please ensure window.FrakSetup.config is set.`),window.frakSetupInProgress=!1,!1))}function _r(){let e=new URLSearchParams(window.location.search).get(`frakAction`);e&&e===`share`&&(console.log(`[Frak SDK] Auto open query param found`),cr())}export{n as C,a as S,pe as _,$ as a,w as b,In as c,mn as d,q as f,fe as g,ge as h,cr as i,gn as l,G as m,mr as n,Gn as o,W as p,dr as r,Fn as s,hr as t,yn as u,me as v,s as x,S as y};
|
|
14
|
+
`.trim()}};function _n(){let e=navigator.userAgent;return/Android/i.test(e)&&/Chrome\/\d+/i.test(e)}function vn(e){return`intent://${e.slice(13)}#Intent;scheme=frakwallet;package=id.frak.wallet;end`}function yn(e,t){let n=t?.timeout??2500,r=!1,i=()=>{document.hidden&&(r=!0)};document.addEventListener(`visibilitychange`,i);let a=_n()&&bn(e)?vn(e):e;window.location.href=a,setTimeout(()=>{document.removeEventListener(`visibilitychange`,i),r||t?.onFallback?.()},n)}function bn(e){return e.startsWith(mn)}const Y={id:`frak-wallet`,name:`frak-wallet`,title:`Frak Wallet`,allow:`publickey-credentials-get *; clipboard-write; web-share *`,style:{width:`0`,height:`0`,border:`0`,position:`absolute`,zIndex:2000001,top:`-1000px`,left:`-1000px`,colorScheme:`auto`}};function xn({walletBaseUrl:e,config:t}){let n=document.querySelector(`#frak-wallet`);n&&n.remove();let r=document.createElement(`iframe`);return r.id=Y.id,r.name=Y.name,r.allow=Y.allow,r.style.zIndex=Y.style.zIndex.toString(),Sn({iframe:r,isVisible:!1}),r.src=`${t?.walletUrl??e??`https://wallet.frak.id`}/listener`,new Promise(e=>{r.addEventListener(`load`,()=>e(r)),document.body.appendChild(r)})}function Sn({iframe:e,isVisible:t}){if(!t){e.style.width=`0`,e.style.height=`0`,e.style.border=`0`,e.style.position=`fixed`,e.style.top=`-1000px`,e.style.left=`-1000px`;return}e.style.position=`fixed`,e.style.top=`0`,e.style.left=`0`,e.style.width=`100%`,e.style.height=`100%`,e.style.pointerEvents=`auto`}function Cn(e=`/listener`){if(!window.opener)return null;let t=t=>{try{return t.location.origin===window.location.origin&&t.location.pathname===e}catch{return!1}};if(t(window.opener))return window.opener;try{let e=window.opener.frames;for(let n=0;n<e.length;n++)if(t(e[n]))return e[n];return null}catch(t){return console.error(`[findIframeInOpener] Error finding iframe with pathname ${e}:`,t),null}}function wn(e){e?localStorage.setItem(J,e):localStorage.removeItem(J)}function Tn(e,t,n,r){let i=new URL(window.location.href),a=i.searchParams.get(`fmt`)??void 0;e.contentWindow?.postMessage({clientLifecycle:`handshake-response`,data:{token:t,currentUrl:window.location.href,clientId:Ut(),pendingMergeToken:a,configDomain:r}},n),a&&(i.searchParams.delete(`fmt`),window.history.replaceState({},``,i.toString()))}function En(e,t){try{let n=new URL(e);return n.searchParams.has(`u`)?(n.searchParams.delete(`u`),n.searchParams.append(`u`,window.location.href),t&&n.searchParams.append(`fmt`,t),n.toString()):e}catch{return e}}function Dn(e,t,n,r){let i=En(t,r);bn(t)?yn(i,{onFallback:()=>{e.contentWindow?.postMessage({clientLifecycle:`deep-link-failed`,data:{originalUrl:i}},n)}}):window.location.href=i}function On({iframe:e,targetOrigin:t,configDomain:n}){let r=new It;return{handleEvent:async i=>{if(!(`iframeLifecycle`in i))return;let{iframeLifecycle:a,data:o}=i;switch(a){case`connected`:r.resolve(!0);break;case`do-backup`:wn(o.backup);break;case`remove-backup`:localStorage.removeItem(J);break;case`show`:case`hide`:Sn({iframe:e,isVisible:a===`show`});break;case`handshake`:Tn(e,o.token,t,n);break;case`redirect`:Dn(e,o.baseRedirectUrl,t,o.mergeToken);break}},isConnected:r.promise}}function kn({config:e,iframe:t}){let n=e?.walletUrl??`https://wallet.frak.id`,r=On({iframe:t,targetOrigin:n,configDomain:e.domain}),i=new gn(e,t);if(!t.contentWindow)throw new G(W.configError,`The iframe does not have a content window`);let a=Lt({emittingTransport:t.contentWindow,listeningTransport:window,targetOrigin:n,middleware:[{async onRequest(e,t){if(!await r.isConnected)throw new G(W.clientNotConnected,`The iframe provider isn't connected yet`);return t}},{onRequest(e,t){return i.setLastRequest(e),t},onResponse(e,t){return i.setLastResponse(e,t),t}}],lifecycleHandlers:{iframeLifecycle:async(e,t)=>{await r.handleEvent(e)}}}),o=An(a,r),s=async()=>{o(),a.cleanup(),t.remove()},c;console.log(`[Frak SDK] Initializing OpenPanel`),c=new pn({apiUrl:`https://op-api.gcp.frak.id`,clientId:`6eacc8d7-49ac-4936-95e9-81ef29449570`,trackScreenViews:!0,trackOutgoingLinks:!0,trackAttributes:!1,filter:({type:e,payload:t})=>(e!==`track`||!t?.properties||`sdkVersion`in t.properties||(t.properties={...t.properties,sdkVersion:`0.1.1`}),!0)}),c.setGlobalProperties({sdkVersion:`0.1.1`}),c.init();let l=jn({config:e,rpcClient:a,lifecycleManager:r}).then(()=>i.updateSetupStatus(!0));return{config:e,debugInfo:i,waitForConnection:r.isConnected,waitForSetup:l,request:a.request,listenerRequest:a.listen,destroy:s,openPanel:c}}function An(e,t){let n,r,i=()=>e.sendLifecycle({clientLifecycle:`heartbeat`});async function a(){i(),n=setInterval(i,1e3),r=setTimeout(()=>{o(),console.log(`Heartbeat timeout: connection failed`)},3e4),await t.isConnected,o()}function o(){n&&clearInterval(n),r&&clearTimeout(r)}return a(),o}async function jn({config:e,rpcClient:t,lifecycleManager:n}){await n.isConnected,hn(t,n.isConnected);async function r(){let n=e.customizations?.css;if(!n)return;let r={clientLifecycle:`modal-css`,data:{cssLink:n}};t.sendLifecycle(r)}async function i(){let n=e.customizations?.i18n;if(!n)return;let r={clientLifecycle:`modal-i18n`,data:{i18n:n}};t.sendLifecycle(r)}async function a(){if(typeof window>`u`)return;let e=window.localStorage.getItem(J);if(!e)return;let n={clientLifecycle:`restore-backup`,data:{backup:e}};t.sendLifecycle(n)}await Promise.allSettled([r(),i(),a()])}function Mn(e){return zt(Gt(e))}const X={eur:`fr-FR`,usd:`en-US`,gbp:`en-GB`};function Nn(e){return e&&e in X?e:`eur`}function Pn(e){return e?X[e]??X.eur:X.eur}function Fn(e,t){let n=Pn(t),r=Nn(t);return e.toLocaleString(n,{style:`currency`,currency:r,minimumFractionDigits:0,maximumFractionDigits:2})}function In(e){return e?`${e}Amount`:`eurAmount`}let Z,Q;async function Ln(e,t){if(Z)return Z;if(Q)return Q;Q=Rn(e,t);let n=await Q;return Q=void 0,n}async function Rn(e,t){let n=e??(typeof window<`u`?window.location.hostname:``);if(n)try{let e=tn(t),r=await fetch(`${e}/user/merchant/resolve?domain=${encodeURIComponent(n)}`);if(!r.ok){console.warn(`[Frak SDK] Merchant lookup failed for domain ${n}: ${r.status}`);return}return Z=(await r.json()).merchantId,Z}catch(e){console.warn(`[Frak SDK] Failed to fetch merchantId:`,e);return}}function zn(){Z=void 0,Q=void 0}async function Bn(e,t){return e.metadata?.merchantId?e.metadata.merchantId:Ln(void 0,t)}async function Vn({config:e}){let t=Hn(e),n=await xn({config:t});if(!n){console.error(`Failed to create iframe`);return}let r=kn({config:t,iframe:n});if(await r.waitForSetup,!await r.waitForConnection){console.error(`Failed to connect to client`);return}return r}function Hn(e){let t=Nn(e.metadata?.currency);return{...e,metadata:{...e.metadata,currency:t}}}function Un(){return Ft(96)}async function $(e,t){return await e.request({method:`frak_displayEmbeddedWallet`,params:[t,e.config.metadata]})}async function Wn(e,{steps:t,metadata:n}){return await e.request({method:`frak_displayModal`,params:[t,n,e.config.metadata]})}async function Gn(e){return await e.request({method:`frak_getMerchantInformation`})}async function Kn(e,t){let{metadata:n,customizations:r}=e.config;return await e.request({method:`frak_prepareSso`,params:[t,n.name,r?.css]})}async function qn(e,t){try{await e.request({method:`frak_sendInteraction`,params:[t]})}catch{console.warn(`[Frak SDK] Failed to send interaction:`,t.type)}}async function Jn(e,{walletStatus:t,frakContext:n,modalConfig:r,options:i}){if(!n?.r)return`no-referrer`;q(e,`user_referred_started`,{properties:{referrer:n?.r,walletStatus:t?.key}}),qn(e,{type:`arrival`,referrerWallet:n.r,landingUrl:typeof window<`u`?window.location.href:void 0});let a=!1;async function o(){if(!a)return a=!0,Xn(e,{modalConfig:{...r,loggedIn:{action:{key:`referred`}}},walletStatus:t})}try{let{status:r,currentWallet:a}=await Yn({initialWalletStatus:t,getFreshWalletStatus:o,frakContext:n});return K.replaceUrl({url:window.location?.href,context:i?.alwaysAppendUrl?{r:a}:null}),q(e,`user_referred_completed`,{properties:{status:r,referrer:n?.r,wallet:a}}),r}catch(r){return console.log(`Error processing referral`,{error:r}),q(e,`user_referred_error`,{properties:{referrer:n?.r,error:r instanceof G?`[${r.code}] ${r.name} - ${r.message}`:r instanceof Error?r.message:`undefined`}}),K.replaceUrl({url:window.location?.href,context:i?.alwaysAppendUrl?{r:t?.wallet}:null}),Zn(r)}}async function Yn({initialWalletStatus:e,getFreshWalletStatus:t,frakContext:n}){let r=e?.wallet;return r||=await t(),r&&Pt(n.r,r)?{status:`self-referral`,currentWallet:r}:{status:`success`,currentWallet:r}}async function Xn(e,{modalConfig:t,walletStatus:n}){return n?.key===`connected`?n.wallet??void 0:(await $(e,t??{}))?.wallet??void 0}function Zn(e){if(e instanceof G)switch(e.code){case W.walletNotConnected:return`no-wallet`;default:return`error`}return`error`}async function Qn(e,{modalConfig:t,options:n}={}){let r=K.parse({url:window.location.href}),i=await er(e);try{return await Jn(e,{walletStatus:i,frakContext:r,modalConfig:t,options:n})}catch(e){console.warn(`Error processing referral`,{error:e})}}async function $n(e){if(typeof window>`u`){console.warn(`[Frak] No window found, can't track purchase`);return}let t=window.sessionStorage.getItem(`frak-wallet-interaction-token`);if(!t){console.warn(`[Frak] No frak session found, skipping purchase check`);return}let n=tn();await fetch(`${n}/interactions/listenForPurchase`,{method:`POST`,headers:{Accept:`application/json`,"Content-Type":`application/json`,"x-wallet-sdk-auth":t},body:JSON.stringify(e)})}function er(e,t){if(!t)return e.request({method:`frak_listenToWalletStatus`}).then(t=>(tr(e,t),t));let n=new It,r=!1;return e.listenerRequest({method:`frak_listenToWalletStatus`},i=>{tr(e,i),t(i),r||=(n.resolve(i),!0)}),n.promise}function tr(e,t){typeof window>`u`||(e.openPanel?.setGlobalProperties({wallet:t.wallet??null}),t.interactionToken?window.sessionStorage.setItem(`frak-wallet-interaction-token`,t.interactionToken):window.sessionStorage.removeItem(`frak-wallet-interaction-token`))}function nr(e,{metadata:t,login:n}){return rr(e,{steps:{login:n??{}},metadata:t})}function rr(e,t){function n(n){return rr(e,{...t,steps:{...t.steps,sendTransaction:n}})}function r(n){return rr(e,{...t,steps:{...t.steps,final:{...n,action:{key:`reward`}}}})}function i(n,r){return rr(e,{...t,steps:{...t.steps,final:{...r,action:{key:`sharing`,options:n}}}})}async function a(n){return n&&(t.metadata=n(t.metadata??{})),await Wn(e,t)}return{params:t,sendTx:n,reward:r,sharing:i,display:a}}async function ir(e,{tx:t,metadata:n}){return(await Wn(e,{metadata:n,steps:{login:{},sendTransaction:{tx:t}}})).sendTransaction}async function ar(e,{siwe:t,metadata:n}){let r=e.config?.domain??window.location.host,i=t?.statement??`I confirm that I want to use my Frak wallet on: ${e.config.metadata.name}`;return(await Wn(e,{metadata:n,steps:{login:{},siweAuthenticate:{siwe:{...t,statement:i,nonce:t?.nonce??Un(),uri:t?.uri??`https://${r}`,version:t?.version??`1`,domain:r}}}})).siweAuthenticate}var or=t({DEEP_LINK_SCHEME:()=>mn,DebugInfoGatherer:()=>gn,FrakContextManager:()=>K,base64urlDecode:()=>Gt,base64urlEncode:()=>Wt,baseIframeProps:()=>Y,clearMerchantIdCache:()=>zn,compressJsonToB64:()=>Kt,computeLegacyProductId:()=>Bt,createIFrameFrakClient:()=>kn,createIframe:()=>xn,decompressJsonFromB64:()=>Mn,displayEmbeddedWallet:()=>$,displayModal:()=>Wn,fetchMerchantId:()=>Ln,findIframeInOpener:()=>Cn,formatAmount:()=>Fn,generateSsoUrl:()=>qt,getBackendUrl:()=>tn,getClientId:()=>Ut,getCurrencyAmountKey:()=>In,getMerchantInformation:()=>Gn,getSupportedCurrency:()=>Nn,getSupportedLocale:()=>Pn,isChromiumAndroid:()=>_n,isFrakDeepLink:()=>bn,locales:()=>X,modalBuilder:()=>nr,openSso:()=>Zt,prepareSso:()=>Kn,processReferral:()=>Jn,referralInteraction:()=>Qn,resolveMerchantId:()=>Bn,sendInteraction:()=>qn,sendTransaction:()=>ir,setupClient:()=>Vn,siweAuthenticate:()=>ar,ssoPopupFeatures:()=>Yt,ssoPopupName:()=>Xt,toAndroidIntentUrl:()=>vn,trackEvent:()=>q,trackPurchaseStatus:()=>$n,triggerDeepLinkWithFallback:()=>yn,watchWalletStatus:()=>er});function sr(){`vibrate`in navigator?navigator.vibrate(10):console.log(`Vibration not supported`)}function cr(){if(!window.FrakSetup?.client){console.error(`Frak client not found`);return}sr(),$(window.FrakSetup.client,window.FrakSetup?.modalWalletConfig??{})}const lr=`frakClientReady`;function ur(){let e=new CustomEvent(lr);window.dispatchEvent(e)}function dr(e,t){if(window.FrakSetup?.client&&e===`add`){t();return}(e===`add`?window.addEventListener:window.removeEventListener)(lr,t,!1)}function fr(e){window.modalBuilderSteps=nr(e,window.FrakSetup?.modalConfig??{})}async function pr(e){let t=await Qn(e,{modalConfig:window.FrakSetup?.modalWalletConfig});console.log(`referral`,t)}function mr(){if(!window.modalBuilderSteps)throw Error(`modalBuilderSteps not found`);return window.modalBuilderSteps}async function hr(){if(window.FrakSetup.core=or,!gr())return;if(console.log(`[Frak SDK] Starting initialization`),!window.FrakSetup.config){console.error(`[Frak SDK] Configuration not found`),window.frakSetupInProgress=!1;return}let e=await Vn({config:window.FrakSetup.config});if(!e){console.error(`[Frak SDK] Failed to create client`),window.frakSetupInProgress=!1;return}window.FrakSetup.client=e,console.log(`[Frak SDK] Client initialized successfully`),ur(),fr(e),pr(e),window.frakSetupInProgress=!1,_r()}function gr(){return window.frakSetupInProgress?(console.log(`[Frak SDK] Initialization already in progress`),!1):(window.frakSetupInProgress=!0,window.FrakSetup?.client?(console.log(`[Frak SDK] Client already initialized`),window.frakSetupInProgress=!1,!1):window.FrakSetup?.config?!0:(console.error(`[Frak SDK] Configuration not found. Please ensure window.FrakSetup.config is set.`),window.frakSetupInProgress=!1,!1))}function _r(){let e=new URLSearchParams(window.location.search).get(`frakAction`);e&&e===`share`&&(console.log(`[Frak SDK] Auto open query param found`),cr())}export{n as C,a as S,pe as _,$ as a,w as b,In as c,mn as d,q as f,fe as g,ge as h,cr as i,gn as l,G as m,mr as n,Gn as o,W as p,dr as r,Fn as s,hr as t,yn as u,me as v,s as x,S as y};
|
package/cdn/loader.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,t}from"./initFrakSdk.
|
|
1
|
+
import{C as e,t}from"./initFrakSdk.CFKrZv6i.js";import{t as n}from"./Spinner.FSmbumxV.js";function r(){let e=`frak-components-styles`;if(document.getElementById(e))return;let t=import.meta.url,n=t.substring(0,t.lastIndexOf(`/`)),r=document.createElement(`link`);r.id=e,r.rel=`stylesheet`,r.href=`${n}/loader.css`,document.head.appendChild(r)}r(),e(t);const i={"button-share":()=>import(`./ButtonShare.BrGsj7HX.js`),"button-wallet":()=>import(`./ButtonWallet.ChF2LBtP.js`),"open-in-app":()=>import(`./OpenInAppButton.B432KdCO.js`)},a=new MutationObserver(e=>{for(let{addedNodes:t}of e)for(let e of Array.from(t))e.nodeType===Node.ELEMENT_NODE&&o(e)});async function o(e){let t=e instanceof Element?e.tagName.toLowerCase():``,n=t?.startsWith(`frak-`),r=Array.from(e.querySelectorAll(`:not(:defined)`)).map(e=>e.tagName.toLowerCase()).filter(e=>e.startsWith(`frak-`));n&&!customElements.get(t)&&r.push(t);let i=[...new Set(r)];await Promise.allSettled(i.map(e=>s(e)))}async function s(e){if(customElements.get(e))return Promise.resolve();try{let t=e.replace(/^frak-/i,``);if(!(t in i))throw Error(`Component ${e} is not supported.`);await i[t]()}catch(e){console.error(e)}}o(document.body),a.observe(document.documentElement,{subtree:!0,childList:!0});export{n as Spinner};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,_ as t,b as n,g as r,r as i,t as a,v as o,x as s,y as c}from"./initFrakSdk.
|
|
1
|
+
import{C as e,_ as t,b as n,g as r,r as i,t as a,v as o,x as s,y as c}from"./initFrakSdk.CFKrZv6i.js";function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}function u(e,t){if(e==null)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(i[n]=e[n]);return i}var d=[`context`,`children`],f=[`useFragment`];function p(e,t,n,r){function i(){var t,n=Reflect.construct(HTMLElement,[],i);return n._vdomComponent=e,r&&r.shadow?(n._root=n.attachShadow({mode:r.mode||`open`,serializable:(t=r.serializable)!=null&&t}),r.adoptedStyleSheets&&(n._root.adoptedStyleSheets=r.adoptedStyleSheets)):n._root=n,n}return(i.prototype=Object.create(HTMLElement.prototype)).constructor=i,i.prototype.connectedCallback=function(){h.call(this,r)},i.prototype.attributeChangedCallback=_,i.prototype.disconnectedCallback=v,n=n||e.observedAttributes||Object.keys(e.propTypes||{}),i.observedAttributes=n,e.formAssociated&&(i.formAssociated=!0),n.forEach(function(e){Object.defineProperty(i.prototype,e,{get:function(){return this._vdom?this._vdom.props[e]:this._props[e]},set:function(t){this._vdom?this.attributeChangedCallback(e,null,t):(this._props||={},this._props[e]=t);var n=typeof t;t!=null&&n!==`string`&&n!==`boolean`&&n!==`number`||this.setAttribute(e,t)}})}),customElements.define(t||e.tagName||e.displayName||e.name,i),i}function m(e){this.getChildContext=function(){return e.context};var t=e.children;return o(t,u(e,d))}function h(e){var n=new CustomEvent(`_preact`,{detail:{},bubbles:!0,cancelable:!0});this.dispatchEvent(n),this._vdom=c(m,l({},this._props,{context:n.detail.context}),b(this,this._vdomComponent,e)),(this.hasAttribute(`hydrate`)?t:r)(this._vdom,this._root)}function g(e){return e.replace(/-(\w)/g,function(e,t){return t?t.toUpperCase():``})}function _(e,t,n){if(this._vdom){var i={};i[e]=n??=void 0,i[g(e)]=n,this._vdom=o(this._vdom,i),r(this._vdom,this._root)}}function v(){r(this._vdom=null,this._root)}function y(e,t){var r=this,i=e.useFragment,a=u(e,f);return c(i?n:`slot`,l({},a,{ref:function(e){e?(r.ref=e,r._listener||(r._listener=function(e){e.stopPropagation(),e.detail.context=t},e.addEventListener(`_preact`,r._listener))):r.ref.removeEventListener(`_preact`,r._listener)}}))}function b(e,t,n){if(e.nodeType===3)return e.data;if(e.nodeType!==1)return null;var r=[],i={},a=0,o=e.attributes,s=e.childNodes;for(a=o.length;a--;)o[a].name!==`slot`&&(i[o[a].name]=o[a].value,i[g(o[a].name)]=o[a].value);for(a=s.length;a--;){var l=b(s[a],null,n),u=s[a].slot;u?i[u]=c(y,{name:u},l):r[a]=l}var d=!(!n||!n.shadow),f=t?c(y,{useFragment:!d},r):r;return!d&&t&&(e.innerHTML=``),c(t||e.nodeName.toLowerCase(),i,f)}function x(t,n,r=[],i={shadow:!1}){typeof window<`u`&&(e(a),customElements.get(n)||p(t,n,r,i))}var S,C,w,T,E=0,D=[],O=s,k=O.__b,A=O.__r,j=O.diffed,M=O.__c,N=O.unmount,P=O.__;function F(e,t){O.__h&&O.__h(C,e,E||t),E=0;var n=C.__H||={__:[],__h:[]};return e>=n.__.length&&n.__.push({}),n.__[e]}function I(e){return E=1,L(q,e)}function L(e,t,n){var r=F(S++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):q(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);t!==n&&(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=C,!C.__f)){var i=function(e,t,n){if(!r.__c.__H)return!0;var i=r.__c.__H.__.filter(function(e){return!!e.__c});if(i.every(function(e){return!e.__N}))return!a||a.call(this,e,t,n);var o=r.__c.props!==e;return i.forEach(function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(o=!0)}}),a&&a.call(this,e,t,n)||o};C.__f=!0;var a=C.shouldComponentUpdate,o=C.componentWillUpdate;C.componentWillUpdate=function(e,t,n){if(this.__e){var r=a;a=void 0,i(e,t,n),a=r}o&&o.call(this,e,t,n)},C.shouldComponentUpdate=i}return r.__N||r.__}function R(e,t){var n=F(S++,3);!O.__s&&K(n.__H,t)&&(n.__=e,n.u=t,C.__H.__h.push(n))}function z(e,t){var n=F(S++,7);return K(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function B(e,t){return E=8,z(function(){return e},t)}function V(){for(var e;e=D.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(W),e.__H.__h.forEach(G),e.__H.__h=[]}catch(t){e.__H.__h=[],O.__e(t,e.__v)}}O.__b=function(e){C=null,k&&k(e)},O.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),P&&P(e,t)},O.__r=function(e){A&&A(e),S=0;var t=(C=e.__c).__H;t&&(w===C?(t.__h=[],C.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.forEach(W),t.__h.forEach(G),t.__h=[],S=0)),w=C},O.diffed=function(e){j&&j(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(D.push(t)!==1&&T===O.requestAnimationFrame||((T=O.requestAnimationFrame)||U)(V)),t.__H.__.forEach(function(e){e.u&&(e.__H=e.u),e.u=void 0})),w=C=null},O.__c=function(e,t){t.some(function(e){try{e.__h.forEach(W),e.__h=e.__h.filter(function(e){return!e.__||G(e)})}catch(n){t.some(function(e){e.__h&&=[]}),t=[],O.__e(n,e.__v)}}),M&&M(e,t)},O.unmount=function(e){N&&N(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{W(e)}catch(e){t=e}}),n.__H=void 0,t&&O.__e(t,n.__v))};var H=typeof requestAnimationFrame==`function`;function U(e){var t,n=function(){clearTimeout(r),H&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);H&&(t=requestAnimationFrame(n))}function W(e){var t=C,n=e.__c;typeof n==`function`&&(e.__c=void 0,n()),C=t}function G(e){var t=C;e.__c=e.__(),C=t}function K(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function q(e,t){return typeof t==`function`?t(e):t}function J(){let[e,t]=I(!0),n=B(()=>{t(!1)},[]);return R(()=>(i(`add`,n),()=>i(`remove`,n)),[n]),{isClientReady:!e}}export{R as a,B as i,z as n,x as o,I as r,J as t};
|
|
@@ -3,13 +3,13 @@ import { jsx, jsxs } from "preact/jsx-runtime";
|
|
|
3
3
|
|
|
4
4
|
//#region src/components/Spinner/index.module.css?css_module
|
|
5
5
|
const classes = {
|
|
6
|
-
"rt-spinner-leaf-fade": "M4fSKa_rt-spinner-leaf-fade",
|
|
7
6
|
"spinner": "M4fSKa_spinner",
|
|
8
|
-
"spinner__leaf": "M4fSKa_spinner__leaf"
|
|
7
|
+
"spinner__leaf": "M4fSKa_spinner__leaf",
|
|
8
|
+
"rt-spinner-leaf-fade": "M4fSKa_rt-spinner-leaf-fade"
|
|
9
9
|
};
|
|
10
|
-
const _rt_spinner_leaf_fade0 = classes["rt-spinner-leaf-fade"];
|
|
11
10
|
const _spinner0 = classes["spinner"];
|
|
12
11
|
const _spinner__leaf0 = classes["spinner__leaf"];
|
|
12
|
+
const _rt_spinner_leaf_fade0 = classes["rt-spinner-leaf-fade"];
|
|
13
13
|
|
|
14
14
|
//#endregion
|
|
15
15
|
//#region src/components/Spinner/index.tsx
|
package/dist/buttonShare.d.ts
CHANGED
|
@@ -77,7 +77,7 @@ type ButtonShareProps = {
|
|
|
77
77
|
* ```
|
|
78
78
|
*
|
|
79
79
|
* @see {@link @frak-labs/core-sdk!actions.modalBuilder | `modalBuilder()`} for more info about the modal display
|
|
80
|
-
* @see {@link @frak-labs/core-sdk!actions.
|
|
80
|
+
* @see {@link @frak-labs/core-sdk!actions.getMerchantInformation | `getMerchantInformation()`} for more info about the estimated reward fetching
|
|
81
81
|
*/
|
|
82
82
|
declare function ButtonShare({
|
|
83
83
|
text,
|
package/dist/buttonShare.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as registerWebComponent, r as getModalBuilderSteps, t as useClientReady } from "./useClientReady-iCtUeDsc.js";
|
|
2
|
-
import { t as Spinner } from "./Spinner-
|
|
2
|
+
import { t as Spinner } from "./Spinner-ByXrz_8L.js";
|
|
3
3
|
import { t as useReward } from "./useReward-DAkT-7wT.js";
|
|
4
4
|
import { DebugInfoGatherer, trackEvent } from "@frak-labs/core-sdk";
|
|
5
5
|
import { displayEmbeddedWallet } from "@frak-labs/core-sdk/actions";
|
|
@@ -262,7 +262,7 @@ async function modalEmbeddedWallet() {
|
|
|
262
262
|
* ```
|
|
263
263
|
*
|
|
264
264
|
* @see {@link @frak-labs/core-sdk!actions.modalBuilder | `modalBuilder()`} for more info about the modal display
|
|
265
|
-
* @see {@link @frak-labs/core-sdk!actions.
|
|
265
|
+
* @see {@link @frak-labs/core-sdk!actions.getMerchantInformation | `getMerchantInformation()`} for more info about the estimated reward fetching
|
|
266
266
|
*/
|
|
267
267
|
function ButtonShare({ text = "Share and earn!", classname = "", useReward: rawUseReward, noRewardText, targetInteraction, showWallet: rawShowWallet }) {
|
|
268
268
|
const shouldUseReward = useMemo(() => rawUseReward !== void 0, [rawUseReward]);
|
package/dist/buttonWallet.d.ts
CHANGED
|
@@ -56,7 +56,7 @@ type ButtonWalletProps = {
|
|
|
56
56
|
* ```
|
|
57
57
|
*
|
|
58
58
|
* @see {@link @frak-labs/core-sdk!actions.modalBuilder | `modalBuilder()`} for more info about the modal display
|
|
59
|
-
* @see {@link @frak-labs/core-sdk!actions.
|
|
59
|
+
* @see {@link @frak-labs/core-sdk!actions.getMerchantInformation | `getMerchantInformation()`} for more info about the estimated reward fetching
|
|
60
60
|
*/
|
|
61
61
|
declare function ButtonWallet({
|
|
62
62
|
classname,
|
package/dist/buttonWallet.js
CHANGED
|
@@ -26,15 +26,15 @@ function GiftIcon(props) {
|
|
|
26
26
|
//#endregion
|
|
27
27
|
//#region src/components/ButtonWallet/ButtonWallet.module.css?css_module
|
|
28
28
|
const classes = {
|
|
29
|
-
"
|
|
29
|
+
"button": "Kl62ia_button",
|
|
30
30
|
"button__left": "Kl62ia_button__left",
|
|
31
|
-
"
|
|
32
|
-
"
|
|
31
|
+
"reward": "Kl62ia_reward",
|
|
32
|
+
"button__right": "Kl62ia_button__right"
|
|
33
33
|
};
|
|
34
|
-
const
|
|
34
|
+
const _button0 = classes["button"];
|
|
35
35
|
const _button__left0 = classes["button__left"];
|
|
36
|
+
const _reward0 = classes["reward"];
|
|
36
37
|
const _button__right0 = classes["button__right"];
|
|
37
|
-
const _button0 = classes["button"];
|
|
38
38
|
|
|
39
39
|
//#endregion
|
|
40
40
|
//#region src/components/ButtonWallet/ButtonWallet.tsx
|
|
@@ -71,7 +71,7 @@ const _button0 = classes["button"];
|
|
|
71
71
|
* ```
|
|
72
72
|
*
|
|
73
73
|
* @see {@link @frak-labs/core-sdk!actions.modalBuilder | `modalBuilder()`} for more info about the modal display
|
|
74
|
-
* @see {@link @frak-labs/core-sdk!actions.
|
|
74
|
+
* @see {@link @frak-labs/core-sdk!actions.getMerchantInformation | `getMerchantInformation()`} for more info about the estimated reward fetching
|
|
75
75
|
*/
|
|
76
76
|
function ButtonWallet({ classname = "", useReward: rawUseReward, targetInteraction }) {
|
|
77
77
|
const shouldUseReward = useMemo(() => rawUseReward !== void 0, [rawUseReward]);
|
package/dist/openInApp.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as registerWebComponent, t as useClientReady } from "./useClientReady-iCtUeDsc.js";
|
|
2
|
-
import { t as Spinner } from "./Spinner-
|
|
2
|
+
import { t as Spinner } from "./Spinner-ByXrz_8L.js";
|
|
3
3
|
import { DEEP_LINK_SCHEME, trackEvent, triggerDeepLinkWithFallback } from "@frak-labs/core-sdk";
|
|
4
4
|
import { cx } from "class-variance-authority";
|
|
5
5
|
import { useMemo } from "preact/hooks";
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"url": "https://twitter.com/QNivelais"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
14
|
-
"version": "0.0.24-beta.
|
|
14
|
+
"version": "0.0.24-beta.4dfea079",
|
|
15
15
|
"description": "Frak Wallet components, helping any person to interact with the Frak wallet.",
|
|
16
16
|
"repository": {
|
|
17
17
|
"url": "https://github.com/frak-id/wallet",
|
|
@@ -76,8 +76,8 @@
|
|
|
76
76
|
"publish": "echo 'Publishing components...'"
|
|
77
77
|
},
|
|
78
78
|
"dependencies": {
|
|
79
|
-
"@frak-labs/frame-connector": "0.1.0",
|
|
80
|
-
"@frak-labs/core-sdk": "0.1.
|
|
79
|
+
"@frak-labs/frame-connector": "0.1.0-beta.4dfea079",
|
|
80
|
+
"@frak-labs/core-sdk": "0.1.1-beta.4dfea079",
|
|
81
81
|
"class-variance-authority": "^0.7.1",
|
|
82
82
|
"preact": "^10.28.3",
|
|
83
83
|
"preact-custom-element": "^4.6.0"
|