@beamimpact/web-sdk 1.46.1 → 1.47.1
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/dist/chunks/_share-dialog-dependencies-0ivyNKvC.esm.js +2 -0
- package/dist/chunks/_share-dialog-dependencies-0ivyNKvC.esm.js.map +1 -0
- package/dist/chunks/_share-dialog-dependencies-tTzjG045.esm.js +2 -0
- package/dist/chunks/_share-dialog-dependencies-tTzjG045.esm.js.map +1 -0
- package/dist/chunks/{cart-contents-MrYQNVDx.esm.d.ts → cart-contents-CMm57qu0.esm.d.ts} +1 -1
- package/dist/chunks/{events-_4nImo3u.esm.js → events-6Z5MkCRr.esm.js} +2 -2
- package/dist/chunks/{events-_4nImo3u.esm.js.map → events-6Z5MkCRr.esm.js.map} +1 -1
- package/dist/chunks/{events--Qgk7Mel.esm.d.ts → events-ZCTR9JGZ.esm.d.ts} +1 -1
- package/dist/chunks/index--z5MSe4-.esm.d.ts +17 -0
- package/dist/chunks/{index-8gDNc2to.esm.d.ts → index-2bLOkP4H.esm.d.ts} +3 -5
- package/dist/chunks/{index-dvBJt1Qq.esm.js → index-59K_SAPn.esm.js} +2 -2
- package/dist/chunks/{index-dvBJt1Qq.esm.js.map → index-59K_SAPn.esm.js.map} +1 -1
- package/dist/chunks/index-B6jnCB4o.esm.js +2 -0
- package/dist/chunks/index-B6jnCB4o.esm.js.map +1 -0
- package/dist/chunks/index-BPg2EdL3.esm.js +2 -0
- package/dist/chunks/index-BPg2EdL3.esm.js.map +1 -0
- package/dist/chunks/index-CsWTfuok.esm.js +2 -0
- package/dist/chunks/index-CsWTfuok.esm.js.map +1 -0
- package/dist/chunks/{index-S_lCvtkH.esm.d.ts → index-GynYZRPI.esm.d.ts} +3 -5
- package/dist/chunks/{index-1W93aRCe.esm.js → index-KOSC2Z9-.esm.js} +2 -2
- package/dist/chunks/{index-1W93aRCe.esm.js.map → index-KOSC2Z9-.esm.js.map} +1 -1
- package/dist/chunks/index-MIp7LlXH.esm.js +2 -0
- package/dist/chunks/index-MIp7LlXH.esm.js.map +1 -0
- package/dist/chunks/{index-gQHtJWVP.esm.d.ts → index-PA0NAKHV.esm.d.ts} +1 -1
- package/dist/chunks/{index-ikzViFqS.esm.d.ts → index-XH3OS_sy.esm.d.ts} +4 -4
- package/dist/chunks/index-YJNgLCif.esm.js +2 -0
- package/dist/chunks/index-YJNgLCif.esm.js.map +1 -0
- package/dist/chunks/index-YcyQB-6f.esm.js +2 -0
- package/dist/chunks/index-YcyQB-6f.esm.js.map +1 -0
- package/dist/chunks/index-ZZthq-Fl.esm.js +2 -0
- package/dist/chunks/index-ZZthq-Fl.esm.js.map +1 -0
- package/dist/chunks/index-b3WjW4PD.esm.js +2 -0
- package/dist/chunks/index-b3WjW4PD.esm.js.map +1 -0
- package/dist/chunks/index-cuCnejll.esm.js +2 -0
- package/dist/chunks/index-cuCnejll.esm.js.map +1 -0
- package/dist/chunks/index-iK195-B9.esm.js +2 -0
- package/dist/chunks/index-iK195-B9.esm.js.map +1 -0
- package/dist/chunks/{index-wqLh9Pnq.esm.d.ts → index-v6fG3D6u.esm.d.ts} +1 -1
- package/dist/chunks/{openapi-spec--os_utEo.esm.d.ts → openapi-spec-hjdK2L9Q.esm.d.ts} +2 -0
- package/dist/chunks/order-page-84vnjksY.esm.js +2 -0
- package/dist/chunks/order-page-84vnjksY.esm.js.map +1 -0
- package/dist/chunks/{order-page-GwRa273v.esm.d.ts → order-page-9clVUPaS.esm.d.ts} +28 -4
- package/dist/chunks/order-page-dERTuQ8T.esm.js +2 -0
- package/dist/chunks/order-page-dERTuQ8T.esm.js.map +1 -0
- package/dist/chunks/{routes-o0OWqrXe.esm.js → routes-Jhhqcsg7.esm.js} +2 -2
- package/dist/chunks/{routes-o0OWqrXe.esm.js.map → routes-Jhhqcsg7.esm.js.map} +1 -1
- package/dist/chunks/{routes-DWNnzqXL.esm.js → routes-tB5fHy2T.esm.js} +2 -2
- package/dist/chunks/{routes-DWNnzqXL.esm.js.map → routes-tB5fHy2T.esm.js.map} +1 -1
- package/dist/chunks/{share-button-18T-n7FU.esm.js → share-button-DeVQh1aE.esm.js} +2 -2
- package/dist/chunks/{share-button-18T-n7FU.esm.js.map → share-button-DeVQh1aE.esm.js.map} +1 -1
- package/dist/chunks/{share-button-W7QRecW0.esm.js → share-button-bUM2WBaV.esm.js} +2 -2
- package/dist/chunks/{share-button-W7QRecW0.esm.js.map → share-button-bUM2WBaV.esm.js.map} +1 -1
- package/dist/chunks/{shoelace-components-H1SnT4Dq.esm.js → shoelace-components-JZANE20x.esm.js} +2 -2
- package/dist/chunks/{shoelace-components-H1SnT4Dq.esm.js.map → shoelace-components-JZANE20x.esm.js.map} +1 -1
- package/dist/chunks/{shoelace-components-scmUU5La.esm.js → shoelace-components-Jghvahj3.esm.js} +2 -2
- package/dist/chunks/{shoelace-components-scmUU5La.esm.js.map → shoelace-components-Jghvahj3.esm.js.map} +1 -1
- package/dist/chunks/update-cart-i5yZ2fyd.esm.js +2 -0
- package/dist/chunks/update-cart-i5yZ2fyd.esm.js.map +1 -0
- package/dist/chunks/{update-cart-KjKc8Cls.esm.d.ts → update-cart-l86bU5uS.esm.d.ts} +2 -2
- package/dist/chunks/update-cart-v61CI4O9.esm.js +2 -0
- package/dist/chunks/update-cart-v61CI4O9.esm.js.map +1 -0
- package/dist/components/community-impact.esm.js +1 -1
- package/dist/components/community-impact.js +1 -1
- package/dist/components/cumulative-impact.esm.js +1 -1
- package/dist/components/cumulative-impact.js +1 -1
- package/dist/components/impact-overview.esm.js +8 -8
- package/dist/components/impact-overview.esm.js.map +1 -1
- package/dist/components/impact-overview.js +8 -8
- package/dist/components/impact-overview.js.map +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/index.esm.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/post-purchase.d.ts +3 -3
- package/dist/components/post-purchase.esm.js +1 -1
- package/dist/components/post-purchase.js +1 -1
- package/dist/components/product-details-page.d.ts +1 -1
- package/dist/components/product-details-page.esm.js +1 -1
- package/dist/components/product-details-page.js +1 -1
- package/dist/components/redeem-transaction.d.ts +3 -3
- package/dist/components/redeem-transaction.esm.js +1 -1
- package/dist/components/redeem-transaction.js +1 -1
- package/dist/components/select-nonprofit.d.ts +6 -6
- package/dist/components/select-nonprofit.esm.js +3 -3
- package/dist/components/select-nonprofit.esm.js.map +1 -1
- package/dist/components/select-nonprofit.js +3 -3
- package/dist/components/select-nonprofit.js.map +1 -1
- package/dist/components/select-subscription-nonprofit.d.ts +1 -1
- package/dist/components/select-subscription-nonprofit.esm.js +1 -1
- package/dist/components/select-subscription-nonprofit.js +1 -1
- package/dist/components/shopify.d.ts +5 -5
- package/dist/components/shopify.esm.js +1 -1
- package/dist/components/shopify.esm.js.map +1 -1
- package/dist/components/shopify.js +1 -1
- package/dist/components/shopify.js.map +1 -1
- package/dist/components/social-share.esm.js +1 -1
- package/dist/components/social-share.js +1 -1
- package/dist/components/subscription-impact.d.ts +1 -1
- package/dist/components/subscription-impact.esm.js +1 -1
- package/dist/components/subscription-impact.js +1 -1
- package/dist/components/subscription-management.d.ts +3 -3
- package/dist/components/subscription-management.esm.js +1 -1
- package/dist/components/subscription-management.js +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/integrations/beam.esm.js +1 -1
- package/dist/integrations/beam.js +1 -1
- package/dist/integrations/cart.d.ts +3 -3
- package/dist/integrations/cart.esm.js +1 -1
- package/dist/integrations/cart.js +1 -1
- package/dist/integrations/index.d.ts +9 -9
- package/dist/integrations/index.esm.js +1 -1
- package/dist/integrations/index.js +1 -1
- package/dist/integrations/logs.d.ts +2 -2
- package/dist/integrations/logs.esm.js +1 -1
- package/dist/integrations/logs.js +1 -1
- package/dist/integrations/shopify.d.ts +4 -4
- package/dist/integrations/shopify.esm.js +1 -1
- package/dist/integrations/shopify.js +1 -1
- package/dist/integrations/statsig.esm.js +2 -2
- package/dist/integrations/statsig.esm.js.map +1 -1
- package/dist/integrations/statsig.js +2 -2
- package/dist/integrations/statsig.js.map +1 -1
- package/dist/integrations/utils.d.ts +4 -4
- package/dist/integrations/utils.esm.js +1 -1
- package/dist/integrations/utils.js +1 -1
- package/dist/react/community-impact.esm.js +1 -1
- package/dist/react/community-impact.js +1 -1
- package/dist/react/cumulative-impact.esm.js +1 -1
- package/dist/react/cumulative-impact.js +1 -1
- package/dist/react/impact-overview.esm.js +1 -1
- package/dist/react/impact-overview.js +1 -1
- package/dist/react/index.d.ts +3 -3
- package/dist/react/index.esm.js +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/post-purchase.d.ts +2 -2
- package/dist/react/post-purchase.esm.js +1 -1
- package/dist/react/post-purchase.js +1 -1
- package/dist/react/product-details-page.esm.js +1 -1
- package/dist/react/product-details-page.js +1 -1
- package/dist/react/redeem-transaction.d.ts +3 -3
- package/dist/react/redeem-transaction.esm.js +1 -1
- package/dist/react/redeem-transaction.js +1 -1
- package/dist/react/select-nonprofit.d.ts +3 -3
- package/dist/react/select-nonprofit.esm.js +1 -1
- package/dist/react/select-nonprofit.esm.js.map +1 -1
- package/dist/react/select-nonprofit.js +1 -1
- package/dist/react/select-nonprofit.js.map +1 -1
- package/dist/react/select-subscription-nonprofit.d.ts +3 -3
- package/dist/react/select-subscription-nonprofit.esm.js +1 -1
- package/dist/react/select-subscription-nonprofit.js +1 -1
- package/dist/react/social-share.esm.js +1 -1
- package/dist/react/social-share.js +1 -1
- package/dist/react/subscription-impact.esm.js +1 -1
- package/dist/react/subscription-impact.js +1 -1
- package/dist/react/subscription-management.d.ts +2 -2
- package/dist/react/subscription-management.esm.js +1 -1
- package/dist/react/subscription-management.js +1 -1
- package/dist/utils/events.d.ts +3 -3
- package/dist/utils/events.esm.js +1 -1
- package/dist/utils/events.js +1 -1
- package/dist/utils/index.d.ts +4 -4
- package/dist/utils/index.esm.js +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/network-listeners.d.ts +1 -3
- package/dist/utils/network-listeners.esm.js +1 -1
- package/dist/utils/network-listeners.esm.js.map +1 -1
- package/dist/utils/network-listeners.js +1 -1
- package/dist/utils/network-listeners.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/_share-dialog-dependencies-PFFpDNAX.esm.js +0 -2
- package/dist/chunks/_share-dialog-dependencies-PFFpDNAX.esm.js.map +0 -1
- package/dist/chunks/_share-dialog-dependencies-ctThmFDw.esm.js +0 -2
- package/dist/chunks/_share-dialog-dependencies-ctThmFDw.esm.js.map +0 -1
- package/dist/chunks/index-Hb6pipkL.esm.js +0 -2
- package/dist/chunks/index-Hb6pipkL.esm.js.map +0 -1
- package/dist/chunks/index-Ie9en2n6.esm.d.ts +0 -14
- package/dist/chunks/index-NOF_HeFP.esm.js +0 -2
- package/dist/chunks/index-NOF_HeFP.esm.js.map +0 -1
- package/dist/chunks/index-cGU2h6FW.esm.js +0 -2
- package/dist/chunks/index-cGU2h6FW.esm.js.map +0 -1
- package/dist/chunks/index-hGumnpwj.esm.js +0 -2
- package/dist/chunks/index-hGumnpwj.esm.js.map +0 -1
- package/dist/chunks/index-hOkyesad.esm.js +0 -2
- package/dist/chunks/index-hOkyesad.esm.js.map +0 -1
- package/dist/chunks/index-n6QNFLXV.esm.js +0 -2
- package/dist/chunks/index-n6QNFLXV.esm.js.map +0 -1
- package/dist/chunks/index-pLSxG_UY.esm.js +0 -2
- package/dist/chunks/index-pLSxG_UY.esm.js.map +0 -1
- package/dist/chunks/index-rmlKdwmx.esm.js +0 -2
- package/dist/chunks/index-rmlKdwmx.esm.js.map +0 -1
- package/dist/chunks/index-x2kxA_Xo.esm.js +0 -2
- package/dist/chunks/index-x2kxA_Xo.esm.js.map +0 -1
- package/dist/chunks/index-z8c9I9IQ.esm.js +0 -2
- package/dist/chunks/index-z8c9I9IQ.esm.js.map +0 -1
- package/dist/chunks/order-page-CqyWx-7V.esm.js +0 -2
- package/dist/chunks/order-page-CqyWx-7V.esm.js.map +0 -1
- package/dist/chunks/order-page-PE7XPoJe.esm.js +0 -2
- package/dist/chunks/order-page-PE7XPoJe.esm.js.map +0 -1
- package/dist/chunks/update-cart-Tv_fewXm.esm.js +0 -2
- package/dist/chunks/update-cart-Tv_fewXm.esm.js.map +0 -1
- package/dist/chunks/update-cart-YDnJT-2Q.esm.js +0 -2
- package/dist/chunks/update-cart-YDnJT-2Q.esm.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{f as z,g as s,t as g,h as H,y as o,k as E}from"../chunks/lit-iNN5L_Qk.esm.js";import{D as R,S as j,f as _,W as B,h as K,g as O}from"../chunks/routes-DWNnzqXL.esm.js";import{p as F}from"../chunks/progress-bar-PMU_xI3L.esm.js";import{c as V,d as Y,e as S}from"../chunks/enforce-config-ZyPq_4CF.esm.js";import{u as l,A as y,d as c,a as G,i as p,_ as v}from"../chunks/localize-m-_ESmpk.esm.js";import{c as N}from"../chunks/events-_4nImo3u.esm.js";import{M as q}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import"./select-subscription-nonprofit.js";import"./subscription-impact.js";import{partnerLogosConfigDefaults as J}from"./beam-partner-logos.js";import{makeApiKeyHeader as x}from"../utils/makeApiKeyHeader.js";import{_ as $}from"../chunks/loading-template-t4fFsYtr.esm.js";import{c as Q}from"../chunks/css-card-grid-nEc--M5M.esm.js";import"../utils/logger.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../utils/local-storage.js";import"../chunks/share-button-W7QRecW0.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/vendor-GKiOHg2N.esm.js";import"../chunks/share-button-SNvuFDC9.esm.js";import"../chunks/responsive-2lC2Wrtg.esm.js";const m={en:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},fr:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},de:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},es:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},it:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},pl:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"}};var X=Object.defineProperty,Z=Object.getOwnPropertyDescriptor,i=(M,t,n,a)=>{for(var r=a>1?void 0:a?Z(t,n):t,b=M.length-1,d;b>=0;b--)(d=M[b])&&(r=(a?d(t,n,r):d(r))||r);return a&&r&&X(t,n,r),r};const D=3,tt=0,et=1,it=98;class e extends H{constructor(){super(...arguments),this.baseUrl=R,this.lang="en",this.debug=!1,this.draftConfig=!1,this.activeWidget=null,this.nonprofitId=null,this.beamUserId=null,this.eligibleNonprofits=[],this.showAllTiles=!1,this.isMobile=window.innerWidth<720,this.dropdownVisible=!1,this.emojis=["\u{1F44F}","\u{1F4AA}","\u{1F64C}","\u2728","\u{1F947}"],this.subscriptionDataController=new y(this,this.fetchSubscription),this.eligibleNonprofitsDataController=new y(this,this.fetchEligibleNonprofits),this.personalImpactDataController=new y(this,this.fetchImpact)}get configLang(){return j[this.lang]||"en"}async firstUpdated(){if(!this.email&&!this.partnerUserId)throw new q(["email","partnerUserId"],"One of the following properties needs to be specified: email, partnerUserId ");S(["apiKey","subscriptionId"],this),await this.loadWidget()}async loadWidget(){await Promise.all([this.fetchEligibleNonprofits(),this.fetchSubscription()]),await this.fetchImpact(),this.activeWidget=this.nonprofitId?"subscription-impact":"select-subscription-nonprofit"}async fetchEligibleNonprofits(){S(["apiKey","subscriptionId"],this);const t=await _({baseUrl:this.baseUrl,headers:x(this.apiKey),requestBody:{storeId:this.storeId||void 0,postalCode:this.postalCode||void 0,countryCode:this.countryCode||void 0,widgetName:B.subscription_management,version:"1.0.0"}});return this.storeId=t.store.id,this.eligibleNonprofits=t.nonprofits,this.eligibleNonprofitsDataController.data=t,t}async fetchSubscription(){S(["apiKey","subscriptionId"],this);const t=await K({baseUrl:this.baseUrl,headers:x(this.apiKey),requestBody:{remoteSubscriptionId:this.subscriptionId,email:this.email,partnerUserId:this.partnerUserId}});return this.beamUserId=t.beamUserId,this.nonprofitId=t.nonprofit?.id||null,t}async fetchImpact(){S(["apiKey"],this);const t=await O({baseUrl:this.baseUrl,headers:x(this.apiKey),queryParams:{beamUserId:this.beamUserId?this.beamUserId:void 0,widgetName:"subscription-management",version:"1.0.0",lang:this.configLang}});return this.personalImpactDataController.data=t,t}handleSwapNonprofitButtonClick(){this.activeWidget="select-subscription-nonprofit"}handleBackToSubscriptionImpactButtonClick(){this.activeWidget="subscription-impact"}handleSupportAgainButtonClick(t,n){this.activeWidget="select-subscription-nonprofit",this.selectedNonprofitId=t;const a=new N({selectedNonprofitId:t,nonprofitName:n,source:B.subscription_management});this.dispatchEvent(a)}handleNonprofitSelect(t){if(!(t instanceof N))return;const{selectedNonprofitId:n}=t.detail;this.nonprofitId=n??null,this.activeWidget="subscription-impact"}isNonprofitEligible(t){return this.eligibleNonprofits.some(n=>n.nonprofit.id===t)}shouldDisplayProgressBar(t){return t>et&&t<it}get cssVariables(){const t={...J,...F,"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit","--beam-SubscriptionManagement-widgetContainer-borderColor":"#d5d5d5","--beam-SubscriptionManagement-widgetContainer-borderRadius":"4px","--beam-SubscriptionManagement-widgetContainer-padding":"8px 20px","--beam-SubscriptionManagement-widgetContainer-backgroundColor":"inherit","--beam-SubscriptionManagement-widgetContainer-maxWidth":"820px","--beam-SubscriptionManagement-logo-align-desktop":"left","--beam-SubscriptionManagement-logo-align-mobile":"center","--beam-SubscriptionManagement-previousImpact-cardStyle":"'selected_icon'","--beam-SubscriptionManagement-header-padding":"10px 20px 10px 0px","--beam-SubscriptionManagement-header-borderRadius":"0px","--beam-SubscriptionManagement-header-backgroundColor":"#fff","--beam-SubscriptionManagement-header-meatballsMenu-fontSize":"24px","--beam-SubscriptionManagement-header-meatballsMenu-color":"24px","--beam-SubscriptionManagement-lineBreak-color":"#ddd","--beam-SubscriptionManagement-lineBreak-width":"1px","--beam-SubscriptionManagement-lineBreak-margin":"10px 0 20px 0","--beam-SubscriptionManagement-tile-marginBottom":"20px","--beam-SubscriptionManagement-tile-border-width":"0px","--beam-SubscriptionManagement-tile-border-color":"#ddd","--beam-SubscriptionManagement-tile-padding":"12.5px","--beam-SubscriptionManagement-tile-borderRadius":"8px","--beam-SubscriptionManagement-tile-background":"#f8fbfb","--beam-SubscriptionManagement-tileContent-gap":" 15px","--beam-SubscriptionManagement-tileContent-padding":"5px 0px","--beam-SubscriptionManagement-tile-icon-borderRadius":"4px","--beam-SubscriptionManagement-tile-icon-height":"28px","--beam-SubscriptionManagement-tile-icon-background-borderRadius":"50%","--beam-SubscriptionManagement-tile-icon-background-width":"50px","--beam-SubscriptionManagement-tile-icon-background-height":"50px","--beam-SubscriptionManagement-tile-icon-background-backgroundColor":"#0a323c","--beam-SubscriptionManagement-tile-icon-background-padding":"10px","--beam-SubscriptionManagement-blockTileDescription-gap":"5px","--beam-SubscriptionManagement-blockTileDescription-padding":"0px","--beam-SubscriptionManagement-blockTileDescription-lineHeight":"130%","--beam-SubscriptionManagement-blockTileDescription-progressBar-width-desktop":"60%","--beam-SubscriptionManagement-blockTileDescription-progressBar-width-mobile":"100%","--beam-SubscriptionManagement-subWidgetContainer-padding":"0px 0px 10px","--beam-SubscriptionManagement-previousImpactContainer-padding-desktop":"10px 24px 10px 0px","--beam-SubscriptionManagement-previousImpactContainer-padding-mobile":"0px","--beam-SubscriptionManagement-dropDown-padding":"15px 8px","--beam-SubscriptionManagement-dropDown-borderRadius":"8px","--beam-SubscriptionManagement-dropDown-backgroundColor":"#f8fbfb","--beam-SubscriptionManagement-dropDown-boxShadow":"0px 4px 28px 0px rgba(0, 0, 0, 0.04)","--beam-SubscriptionManagement-dropDown-width":"128px","--beam-SubscriptionManagement-dropDown-hover-backgroundColor":"#E1F1EE","--beam-SubscriptionManagement-dropDownOptions-textDecoration":"underline",...c("--beam-SubscriptionManagement-dropDownOptions",{fontSize:"12px",fontWeight:"400",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-yourPreviousImpactTitle-marginBottom":"15px",...c("--beam-SubscriptionManagement-yourPreviousImpactTitle",{fontSize:"18px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-yourPreviousImpact-showAllButton-textDecoration":"underline",...c("--beam-SubscriptionManagement-yourPreviousImpact-showAllButton",{fontSize:"12px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-title-letterSpacing":"0.36px",...c("--beam-SubscriptionManagement-tile-title",{fontSize:"12px",fontWeight:"bold",lineHeight:"120%",textTransform:"uppercase",fontStyle:"normal",color:"#0a323c"}),...c("--beam-SubscriptionManagement-tile-description",{fontSize:"14px",lineHeight:"120%",fontStyle:"normal",color:"#454a47"}),...c("--beam-SubscriptionManagement-tile-via",{fontSize:"14px",lineHeight:"120%",fontStyle:"normal",color:"#454a47"}),"--beam-SubscriptionManagement-tile-nonprofitLink-textDecoration":"underline",...c("--beam-SubscriptionManagement-tile-nonprofitLink",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-supportAgainButton-textDecoration":"underline",...c("--beam-SubscriptionManagement-tile-supportAgainButton",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-progressBarLabel-marginLeft":"8px",...c("--beam-SubscriptionManagement-tile-progressBarLabel",{fontSize:"10px",fontWeight:"bold",fontStyle:"normal",color:"#878a92"}),"--beam-SubscriptionManagement-tile-fundedAmount-lineHeight":"16px",...c("--beam-SubscriptionManagement-tile-fundedAmount",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",fontStyle:"italic",color:"#0a323c"})},n=this.eligibleNonprofitsDataController?.data?.config?.web?.theme||{},a={...t,...n};return Object.assign(Object.create({toCSS(){return G(this)}}),a)}renderPreviousImpactTiles({personalImpact:t,cardStyle:n,eligibleNonprofitConfig:a}){if(!t)return o``;if(!a)return o``;const r=this.showAllTiles?t:t.slice(0,D);let b=0;return o`
|
|
1
|
+
import{f as z,g as s,t as g,h as H,y as o,k as E}from"../chunks/lit-iNN5L_Qk.esm.js";import{D as R,S as j,f as _,W as B,h as K,g as O}from"../chunks/routes-tB5fHy2T.esm.js";import{p as F}from"../chunks/progress-bar-PMU_xI3L.esm.js";import{c as V,d as Y,e as S}from"../chunks/enforce-config-ZyPq_4CF.esm.js";import{u as l,A as y,d as c,a as G,i as p,_ as v}from"../chunks/localize-m-_ESmpk.esm.js";import{b as N}from"../chunks/events-6Z5MkCRr.esm.js";import{M as q}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import"./select-subscription-nonprofit.js";import"./subscription-impact.js";import{partnerLogosConfigDefaults as J}from"./beam-partner-logos.js";import{makeApiKeyHeader as x}from"../utils/makeApiKeyHeader.js";import{_ as $}from"../chunks/loading-template-t4fFsYtr.esm.js";import{c as Q}from"../chunks/css-card-grid-nEc--M5M.esm.js";import"../utils/logger.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../utils/local-storage.js";import"../chunks/share-button-bUM2WBaV.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/vendor-GKiOHg2N.esm.js";import"../chunks/share-button-SNvuFDC9.esm.js";import"../chunks/responsive-2lC2Wrtg.esm.js";const m={en:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},fr:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},de:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},es:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},it:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},pl:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"}};var X=Object.defineProperty,Z=Object.getOwnPropertyDescriptor,i=(M,t,n,a)=>{for(var r=a>1?void 0:a?Z(t,n):t,b=M.length-1,d;b>=0;b--)(d=M[b])&&(r=(a?d(t,n,r):d(r))||r);return a&&r&&X(t,n,r),r};const D=3,tt=0,et=1,it=98;class e extends H{constructor(){super(...arguments),this.baseUrl=R,this.lang="en",this.debug=!1,this.draftConfig=!1,this.activeWidget=null,this.nonprofitId=null,this.beamUserId=null,this.eligibleNonprofits=[],this.showAllTiles=!1,this.isMobile=window.innerWidth<720,this.dropdownVisible=!1,this.emojis=["\u{1F44F}","\u{1F4AA}","\u{1F64C}","\u2728","\u{1F947}"],this.subscriptionDataController=new y(this,this.fetchSubscription),this.eligibleNonprofitsDataController=new y(this,this.fetchEligibleNonprofits),this.personalImpactDataController=new y(this,this.fetchImpact)}get configLang(){return j[this.lang]||"en"}async firstUpdated(){if(!this.email&&!this.partnerUserId)throw new q(["email","partnerUserId"],"One of the following properties needs to be specified: email, partnerUserId ");S(["apiKey","subscriptionId"],this),await this.loadWidget()}async loadWidget(){await Promise.all([this.fetchEligibleNonprofits(),this.fetchSubscription()]),await this.fetchImpact(),this.activeWidget=this.nonprofitId?"subscription-impact":"select-subscription-nonprofit"}async fetchEligibleNonprofits(){S(["apiKey","subscriptionId"],this);const t=await _({baseUrl:this.baseUrl,headers:x(this.apiKey),requestBody:{storeId:this.storeId||void 0,postalCode:this.postalCode||void 0,countryCode:this.countryCode||void 0,widgetName:B.subscription_management,version:"1.0.0"}});return this.storeId=t.store.id,this.eligibleNonprofits=t.nonprofits,this.eligibleNonprofitsDataController.data=t,t}async fetchSubscription(){S(["apiKey","subscriptionId"],this);const t=await K({baseUrl:this.baseUrl,headers:x(this.apiKey),requestBody:{remoteSubscriptionId:this.subscriptionId,email:this.email,partnerUserId:this.partnerUserId}});return this.beamUserId=t.beamUserId,this.nonprofitId=t.nonprofit?.id||null,t}async fetchImpact(){S(["apiKey"],this);const t=await O({baseUrl:this.baseUrl,headers:x(this.apiKey),queryParams:{beamUserId:this.beamUserId?this.beamUserId:void 0,widgetName:"subscription-management",version:"1.0.0",lang:this.configLang}});return this.personalImpactDataController.data=t,t}handleSwapNonprofitButtonClick(){this.activeWidget="select-subscription-nonprofit"}handleBackToSubscriptionImpactButtonClick(){this.activeWidget="subscription-impact"}handleSupportAgainButtonClick(t,n){this.activeWidget="select-subscription-nonprofit",this.selectedNonprofitId=t;const a=new N({selectedNonprofitId:t,nonprofitName:n,source:B.subscription_management});this.dispatchEvent(a)}handleNonprofitSelect(t){if(!(t instanceof N))return;const{selectedNonprofitId:n}=t.detail;this.nonprofitId=n??null,this.activeWidget="subscription-impact"}isNonprofitEligible(t){return this.eligibleNonprofits.some(n=>n.nonprofit.id===t)}shouldDisplayProgressBar(t){return t>et&&t<it}get cssVariables(){const t={...J,...F,"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit","--beam-SubscriptionManagement-widgetContainer-borderColor":"#d5d5d5","--beam-SubscriptionManagement-widgetContainer-borderRadius":"4px","--beam-SubscriptionManagement-widgetContainer-padding":"8px 20px","--beam-SubscriptionManagement-widgetContainer-backgroundColor":"inherit","--beam-SubscriptionManagement-widgetContainer-maxWidth":"820px","--beam-SubscriptionManagement-logo-align-desktop":"left","--beam-SubscriptionManagement-logo-align-mobile":"center","--beam-SubscriptionManagement-previousImpact-cardStyle":"'selected_icon'","--beam-SubscriptionManagement-header-padding":"10px 20px 10px 0px","--beam-SubscriptionManagement-header-borderRadius":"0px","--beam-SubscriptionManagement-header-backgroundColor":"#fff","--beam-SubscriptionManagement-header-meatballsMenu-fontSize":"24px","--beam-SubscriptionManagement-header-meatballsMenu-color":"24px","--beam-SubscriptionManagement-lineBreak-color":"#ddd","--beam-SubscriptionManagement-lineBreak-width":"1px","--beam-SubscriptionManagement-lineBreak-margin":"10px 0 20px 0","--beam-SubscriptionManagement-tile-marginBottom":"20px","--beam-SubscriptionManagement-tile-border-width":"0px","--beam-SubscriptionManagement-tile-border-color":"#ddd","--beam-SubscriptionManagement-tile-padding":"12.5px","--beam-SubscriptionManagement-tile-borderRadius":"8px","--beam-SubscriptionManagement-tile-background":"#f8fbfb","--beam-SubscriptionManagement-tileContent-gap":" 15px","--beam-SubscriptionManagement-tileContent-padding":"5px 0px","--beam-SubscriptionManagement-tile-icon-borderRadius":"4px","--beam-SubscriptionManagement-tile-icon-height":"28px","--beam-SubscriptionManagement-tile-icon-background-borderRadius":"50%","--beam-SubscriptionManagement-tile-icon-background-width":"50px","--beam-SubscriptionManagement-tile-icon-background-height":"50px","--beam-SubscriptionManagement-tile-icon-background-backgroundColor":"#0a323c","--beam-SubscriptionManagement-tile-icon-background-padding":"10px","--beam-SubscriptionManagement-blockTileDescription-gap":"5px","--beam-SubscriptionManagement-blockTileDescription-padding":"0px","--beam-SubscriptionManagement-blockTileDescription-lineHeight":"130%","--beam-SubscriptionManagement-blockTileDescription-progressBar-width-desktop":"60%","--beam-SubscriptionManagement-blockTileDescription-progressBar-width-mobile":"100%","--beam-SubscriptionManagement-subWidgetContainer-padding":"0px 0px 10px","--beam-SubscriptionManagement-previousImpactContainer-padding-desktop":"10px 24px 10px 0px","--beam-SubscriptionManagement-previousImpactContainer-padding-mobile":"0px","--beam-SubscriptionManagement-dropDown-padding":"15px 8px","--beam-SubscriptionManagement-dropDown-borderRadius":"8px","--beam-SubscriptionManagement-dropDown-backgroundColor":"#f8fbfb","--beam-SubscriptionManagement-dropDown-boxShadow":"0px 4px 28px 0px rgba(0, 0, 0, 0.04)","--beam-SubscriptionManagement-dropDown-width":"128px","--beam-SubscriptionManagement-dropDown-hover-backgroundColor":"#E1F1EE","--beam-SubscriptionManagement-dropDownOptions-textDecoration":"underline",...c("--beam-SubscriptionManagement-dropDownOptions",{fontSize:"12px",fontWeight:"400",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-yourPreviousImpactTitle-marginBottom":"15px",...c("--beam-SubscriptionManagement-yourPreviousImpactTitle",{fontSize:"18px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-yourPreviousImpact-showAllButton-textDecoration":"underline",...c("--beam-SubscriptionManagement-yourPreviousImpact-showAllButton",{fontSize:"12px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-title-letterSpacing":"0.36px",...c("--beam-SubscriptionManagement-tile-title",{fontSize:"12px",fontWeight:"bold",lineHeight:"120%",textTransform:"uppercase",fontStyle:"normal",color:"#0a323c"}),...c("--beam-SubscriptionManagement-tile-description",{fontSize:"14px",lineHeight:"120%",fontStyle:"normal",color:"#454a47"}),...c("--beam-SubscriptionManagement-tile-via",{fontSize:"14px",lineHeight:"120%",fontStyle:"normal",color:"#454a47"}),"--beam-SubscriptionManagement-tile-nonprofitLink-textDecoration":"underline",...c("--beam-SubscriptionManagement-tile-nonprofitLink",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-supportAgainButton-textDecoration":"underline",...c("--beam-SubscriptionManagement-tile-supportAgainButton",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-progressBarLabel-marginLeft":"8px",...c("--beam-SubscriptionManagement-tile-progressBarLabel",{fontSize:"10px",fontWeight:"bold",fontStyle:"normal",color:"#878a92"}),"--beam-SubscriptionManagement-tile-fundedAmount-lineHeight":"16px",...c("--beam-SubscriptionManagement-tile-fundedAmount",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",fontStyle:"italic",color:"#0a323c"})},n=this.eligibleNonprofitsDataController?.data?.config?.web?.theme||{},a={...t,...n};return Object.assign(Object.create({toCSS(){return G(this)}}),a)}renderPreviousImpactTiles({personalImpact:t,cardStyle:n,eligibleNonprofitConfig:a}){if(!t)return o``;if(!a)return o``;const r=this.showAllTiles?t:t.slice(0,D);let b=0;return o`
|
|
2
2
|
${r.filter(d=>d.nonprofit.includeInPersonalImpact===!0).map(d=>{const{impact:{goalCompletionText:u,description:h,goalProgressPercentage:f,goalProgressText:A},nonprofit:{cause:C,causeIconSelectedUrl:L,causeIconUrl:T,website:U,name:I,id:w}}=d,k=this.nonprofitId!==w&&this.isNonprofitEligible(w),P=k&&this.shouldDisplayProgressBar(f),W=u?`${this.emojis[b]} `:"";return b=(b+1)%this.emojis.length,o`
|
|
3
3
|
<div class="tile">
|
|
4
4
|
<div class="tile-header">
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { i as WebComponents } from './chunks/index-hn6JhG_w.esm.js';
|
|
2
|
-
export { i as Integrations } from './chunks/index-
|
|
2
|
+
export { i as Integrations } from './chunks/index-XH3OS_sy.esm.js';
|
|
3
3
|
export { i as ReactComponents } from './chunks/index-mTXm0DPh.esm.js';
|
|
4
|
-
export { i as Utils } from './chunks/index-
|
|
4
|
+
export { i as Utils } from './chunks/index-2bLOkP4H.esm.js';
|
|
5
5
|
import './components/community-impact.js';
|
|
6
6
|
import 'lit';
|
|
7
7
|
import 'lit-html';
|
|
@@ -15,8 +15,8 @@ import './components/impact-overview.js';
|
|
|
15
15
|
import './chunks/share-button-hDn8fnBI.esm.js';
|
|
16
16
|
import './components/select-nonprofit.js';
|
|
17
17
|
import './chunks/promo-pill-label-3bA1z-la.esm.js';
|
|
18
|
-
import './chunks/cart-contents-
|
|
19
|
-
import './chunks/openapi-spec
|
|
18
|
+
import './chunks/cart-contents-CMm57qu0.esm.js';
|
|
19
|
+
import './chunks/openapi-spec-hjdK2L9Q.esm.js';
|
|
20
20
|
import './components/redeem-transaction.js';
|
|
21
21
|
import './components/post-purchase.js';
|
|
22
22
|
import './components/subscription-management.js';
|
|
@@ -25,9 +25,9 @@ import './components/select-subscription-nonprofit.js';
|
|
|
25
25
|
import './components/subscription-impact.js';
|
|
26
26
|
import './components/product-details-page.js';
|
|
27
27
|
import './components/social-share.js';
|
|
28
|
-
import './chunks/index-
|
|
28
|
+
import './chunks/index-GynYZRPI.esm.js';
|
|
29
29
|
import './chunks/beam-errors-fXDkG1zo.esm.js';
|
|
30
|
-
import './chunks/events
|
|
30
|
+
import './chunks/events-ZCTR9JGZ.esm.js';
|
|
31
31
|
import './utils/logger.js';
|
|
32
32
|
import './utils/network-listeners.js';
|
|
33
33
|
import './utils/local-storage.js';
|
|
@@ -37,12 +37,12 @@ import './utils/remote-session.js';
|
|
|
37
37
|
import './utils/memoize-last.js';
|
|
38
38
|
import 'lodash-es/debounce';
|
|
39
39
|
import 'lodash-es/isEqual';
|
|
40
|
-
import './chunks/index
|
|
41
|
-
import './chunks/order-page-
|
|
42
|
-
import './chunks/update-cart-
|
|
40
|
+
import './chunks/index--z5MSe4-.esm.js';
|
|
41
|
+
import './chunks/order-page-9clVUPaS.esm.js';
|
|
42
|
+
import './chunks/update-cart-l86bU5uS.esm.js';
|
|
43
43
|
import './chunks/index-EGiUuWe-.esm.js';
|
|
44
|
-
import './chunks/index-
|
|
45
|
-
import './chunks/index-
|
|
44
|
+
import './chunks/index-v6fG3D6u.esm.js';
|
|
45
|
+
import './chunks/index-PA0NAKHV.esm.js';
|
|
46
46
|
import './react/community-impact.js';
|
|
47
47
|
import '@lit/react';
|
|
48
48
|
import './react/cumulative-impact.js';
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as eo}from"./chunks/index-PiMq5a49.esm.js";import{i as ao}from"./chunks/index-
|
|
1
|
+
import{i as eo}from"./chunks/index-PiMq5a49.esm.js";import{i as ao}from"./chunks/index-B6jnCB4o.esm.js";import{i as fo}from"./chunks/index-E8H5A7Qq.esm.js";import{i as Co}from"./chunks/index-iK195-B9.esm.js";import"./components/community-impact.esm.js";import"./chunks/lit-iNN5L_Qk.esm.js";import"./chunks/progress-bar-PMU_xI3L.esm.js";import"./components/beam-partner-logos.esm.js";import"./chunks/enforce-config-ZAI7WYAd.esm.js";import"./chunks/beam-errors-P-Lu07Ce.esm.js";import"./utils/logger.esm.js";import"./chunks/localize-o-cYvHQf.esm.js";import"./chunks/routes-Jhhqcsg7.esm.js";import"./chunks/loading-template-t4fFsYtr.esm.js";import"./chunks/css-card-grid-nEc--M5M.esm.js";import"./components/cumulative-impact.esm.js";import"./chunks/lodash-P8OIs-at.esm.js";import"./chunks/is-all-html-elements-SdSkxirh.esm.js";import"./components/impact-overview.esm.js";import"./chunks/shoelace-components-Jghvahj3.esm.js";import"./chunks/vendor-GKiOHg2N.esm.js";import"./chunks/share-button-DeVQh1aE.esm.js";import"./chunks/share-button-SNvuFDC9.esm.js";import"./chunks/responsive-2lC2Wrtg.esm.js";import"./components/select-nonprofit.esm.js";import"./chunks/promo-pill-label-P1X4xeAx.esm.js";import"./chunks/events-6Z5MkCRr.esm.js";import"./utils/local-storage.esm.js";import"./chunks/cart-contents-h60geKWa.esm.js";import"./utils/cart.esm.js";import"./utils/cookies.esm.js";import"./components/redeem-transaction.esm.js";import"./components/post-purchase.esm.js";import"./components/subscription-management.esm.js";import"./components/select-subscription-nonprofit.esm.js";import"./utils/makeApiKeyHeader.esm.js";import"./components/subscription-impact.esm.js";import"./components/product-details-page.esm.js";import"./components/social-share.esm.js";import"./chunks/index-CsWTfuok.esm.js";import"./utils/network-listeners.esm.js";import"./utils/wait-for-element.esm.js";import"./utils/remote-session.esm.js";import"./utils/memoize-last.esm.js";import"./chunks/index-b3WjW4PD.esm.js";import"./chunks/order-page-84vnjksY.esm.js";import"./chunks/update-cart-i5yZ2fyd.esm.js";import"./chunks/index-eXilYHHK.esm.js";import"./chunks/index-BPg2EdL3.esm.js";import"./chunks/index-KOSC2Z9-.esm.js";import"./react/community-impact.esm.js";import"react";import"./react/cumulative-impact.esm.js";import"./react/impact-overview.esm.js";import"./react/select-nonprofit.esm.js";import"./react/redeem-transaction.esm.js";import"./react/post-purchase.esm.js";import"./react/subscription-management.esm.js";import"./react/select-subscription-nonprofit.esm.js";import"./react/subscription-impact.esm.js";import"./react/product-details-page.esm.js";import"./react/social-share.esm.js";export{ao as Integrations,fo as ReactComponents,Co as Utils,eo as WebComponents};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as eo}from"./chunks/index-FQExZDX9.esm.js";import{i as ao}from"./chunks/index-
|
|
1
|
+
import{i as eo}from"./chunks/index-FQExZDX9.esm.js";import{i as ao}from"./chunks/index-YcyQB-6f.esm.js";import{i as fo}from"./chunks/index-XCMf22lv.esm.js";import{i as Co}from"./chunks/index-YJNgLCif.esm.js";import"./components/community-impact.js";import"./chunks/lit-iNN5L_Qk.esm.js";import"./chunks/progress-bar-PMU_xI3L.esm.js";import"./components/beam-partner-logos.js";import"./chunks/enforce-config-ZyPq_4CF.esm.js";import"./chunks/beam-errors-P-Lu07Ce.esm.js";import"./utils/logger.js";import"./chunks/localize-m-_ESmpk.esm.js";import"./chunks/routes-tB5fHy2T.esm.js";import"./chunks/loading-template-t4fFsYtr.esm.js";import"./chunks/css-card-grid-nEc--M5M.esm.js";import"./components/cumulative-impact.js";import"./chunks/lodash-P8OIs-at.esm.js";import"./chunks/is-all-html-elements-SdSkxirh.esm.js";import"./components/impact-overview.js";import"./chunks/shoelace-components-JZANE20x.esm.js";import"./chunks/vendor-GKiOHg2N.esm.js";import"./chunks/share-button-bUM2WBaV.esm.js";import"./chunks/share-button-SNvuFDC9.esm.js";import"./chunks/responsive-2lC2Wrtg.esm.js";import"./components/select-nonprofit.js";import"./chunks/promo-pill-label-P1X4xeAx.esm.js";import"./chunks/events-6Z5MkCRr.esm.js";import"./utils/local-storage.js";import"./chunks/cart-contents-h60geKWa.esm.js";import"./utils/cart.js";import"./utils/cookies.js";import"./components/redeem-transaction.js";import"./components/post-purchase.js";import"./components/subscription-management.js";import"./components/select-subscription-nonprofit.js";import"./utils/makeApiKeyHeader.js";import"./components/subscription-impact.js";import"./components/product-details-page.js";import"./components/social-share.js";import"./chunks/index-MIp7LlXH.esm.js";import"./utils/network-listeners.js";import"./utils/wait-for-element.js";import"./utils/remote-session.js";import"./utils/memoize-last.js";import"./chunks/index-cuCnejll.esm.js";import"./chunks/order-page-dERTuQ8T.esm.js";import"./chunks/update-cart-v61CI4O9.esm.js";import"./chunks/index-JDZQClkA.esm.js";import"./chunks/index-ZZthq-Fl.esm.js";import"./chunks/index-59K_SAPn.esm.js";import"./react/community-impact.js";import"react";import"./react/cumulative-impact.js";import"./react/impact-overview.js";import"./react/select-nonprofit.js";import"./react/redeem-transaction.js";import"./react/post-purchase.js";import"./react/subscription-management.js";import"./react/select-subscription-nonprofit.js";import"./react/subscription-impact.js";import"./react/product-details-page.js";import"./react/social-share.js";export{ao as Integrations,fo as ReactComponents,Co as Utils,eo as WebComponents};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{D as u,a as g}from"../chunks/routes-
|
|
1
|
+
import{D as u,a as g}from"../chunks/routes-Jhhqcsg7.esm.js";import{S as y}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import{B as h}from"../chunks/events-6Z5MkCRr.esm.js";import{logger as w}from"../utils/logger.esm.js";import{s as f}from"../chunks/index-KOSC2Z9-.esm.js";var v=(t,s,a)=>{if(!s.has(t))throw TypeError("Cannot "+a)},c=(t,s,a)=>{if(s.has(t))throw TypeError("Cannot add the same private member more than once");s instanceof WeakSet?s.add(t):s.set(t,a)},i=(t,s,a)=>(v(t,s,"access private method"),a),r,n,o,m;let p,l;const E=new Promise((t,s)=>{p=t,l=s});class U extends EventTarget{constructor(s){super(),c(this,r),c(this,o),this.readyPromise=E,this.plugins={},this.status="pending",i(this,r,n).call(this,s)}async init(s){i(this,r,n).call(this,s);try{await i(this,o,m).call(this,s)}catch(a){const e=new y;throw e.cause=a,this.status="error",this.dispatchEvent(new h({status:"error",error:e})),l(e),w.error(e),this.apiKey&&await f({apiKey:this.apiKey,baseUrl:this.logUrl},{type:"error",code:e.name,metadata:{message:e.message,cause:a?.message}}),a}return this.status="ready",this.dispatchEvent(new h({status:"ready"})),p(!0),this}}r=new WeakSet,n=function(t){this.apiKey=t.apiKey,this.chainId=t.chainId,this.storeId=t.storeId,this.domain=t.domain,this.baseUrl=t.baseUrl||u,this.logUrl=t.logUrl||g},o=new WeakSet,m=async function(t){const s=(t.plugins||[]).map(async a=>(await a.init(t),this.plugins[a.name]=a,a));return Promise.all(s)};const d=new U({}),S=t=>d.init(t),L=()=>d;export{L as getConfig,S as init};
|
|
2
2
|
//# sourceMappingURL=beam.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{D as u,a as g}from"../chunks/routes-
|
|
1
|
+
import{D as u,a as g}from"../chunks/routes-tB5fHy2T.esm.js";import{S as y}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import{B as h}from"../chunks/events-6Z5MkCRr.esm.js";import{logger as w}from"../utils/logger.js";import{s as f}from"../chunks/index-59K_SAPn.esm.js";var v=(t,s,a)=>{if(!s.has(t))throw TypeError("Cannot "+a)},c=(t,s,a)=>{if(s.has(t))throw TypeError("Cannot add the same private member more than once");s instanceof WeakSet?s.add(t):s.set(t,a)},i=(t,s,a)=>(v(t,s,"access private method"),a),r,n,o,m;let p,l;const E=new Promise((t,s)=>{p=t,l=s});class U extends EventTarget{constructor(s){super(),c(this,r),c(this,o),this.readyPromise=E,this.plugins={},this.status="pending",i(this,r,n).call(this,s)}async init(s){i(this,r,n).call(this,s);try{await i(this,o,m).call(this,s)}catch(a){const e=new y;throw e.cause=a,this.status="error",this.dispatchEvent(new h({status:"error",error:e})),l(e),w.error(e),this.apiKey&&await f({apiKey:this.apiKey,baseUrl:this.logUrl},{type:"error",code:e.name,metadata:{message:e.message,cause:a?.message}}),a}return this.status="ready",this.dispatchEvent(new h({status:"ready"})),p(!0),this}}r=new WeakSet,n=function(t){this.apiKey=t.apiKey,this.chainId=t.chainId,this.storeId=t.storeId,this.domain=t.domain,this.baseUrl=t.baseUrl||u,this.logUrl=t.logUrl||g},o=new WeakSet,m=async function(t){const s=(t.plugins||[]).map(async a=>(await a.init(t),this.plugins[a.name]=a,a));return Promise.all(s)};const d=new U({}),S=t=>d.init(t),L=()=>d;export{L as getConfig,S as init};
|
|
2
2
|
//# sourceMappingURL=beam.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { B as BeamCartAPIConfig, a as BeamCartValues, u as updateCart } from '../chunks/update-cart-
|
|
1
|
+
export { B as BeamCartAPIConfig, a as BeamCartValues, u as updateCart } from '../chunks/update-cart-l86bU5uS.esm.js';
|
|
2
2
|
import 'lodash';
|
|
3
3
|
import '../chunks/types-aju0qrRe.esm.js';
|
|
4
|
-
import '../chunks/cart-contents-
|
|
5
|
-
import '../chunks/openapi-spec
|
|
4
|
+
import '../chunks/cart-contents-CMm57qu0.esm.js';
|
|
5
|
+
import '../chunks/openapi-spec-hjdK2L9Q.esm.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{R as C}from"../chunks/update-cart-i5yZ2fyd.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/routes-Jhhqcsg7.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.esm.js";import"../chunks/events-6Z5MkCRr.esm.js";import"../utils/local-storage.esm.js";import"../utils/cookies.esm.js";import"../utils/remote-session.esm.js";import"../utils/memoize-last.esm.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../utils/cart.esm.js";export{C as updateCart};
|
|
2
2
|
//# sourceMappingURL=cart.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{R as C}from"../chunks/update-cart-v61CI4O9.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/routes-tB5fHy2T.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.js";import"../chunks/events-6Z5MkCRr.esm.js";import"../utils/local-storage.js";import"../utils/cookies.js";import"../utils/remote-session.js";import"../utils/memoize-last.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../utils/cart.js";export{C as updateCart};
|
|
2
2
|
//# sourceMappingURL=cart.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { i as Utils } from '../chunks/index-
|
|
2
|
-
export { i as Shopify } from '../chunks/index
|
|
1
|
+
export { i as Utils } from '../chunks/index-GynYZRPI.esm.js';
|
|
2
|
+
export { i as Shopify } from '../chunks/index--z5MSe4-.esm.js';
|
|
3
3
|
export { i as Session } from '../chunks/index-EGiUuWe-.esm.js';
|
|
4
|
-
export { i as Cart } from '../chunks/index-
|
|
5
|
-
export { i as Logs } from '../chunks/index-
|
|
4
|
+
export { i as Cart } from '../chunks/index-v6fG3D6u.esm.js';
|
|
5
|
+
export { i as Logs } from '../chunks/index-PA0NAKHV.esm.js';
|
|
6
6
|
import '../chunks/beam-errors-fXDkG1zo.esm.js';
|
|
7
|
-
import '../chunks/events
|
|
8
|
-
import '../chunks/cart-contents-
|
|
9
|
-
import '../chunks/openapi-spec
|
|
7
|
+
import '../chunks/events-ZCTR9JGZ.esm.js';
|
|
8
|
+
import '../chunks/cart-contents-CMm57qu0.esm.js';
|
|
9
|
+
import '../chunks/openapi-spec-hjdK2L9Q.esm.js';
|
|
10
10
|
import '../chunks/types-zbTZ8-KP.esm.js';
|
|
11
11
|
import '../utils/logger.js';
|
|
12
12
|
import '../utils/network-listeners.js';
|
|
@@ -17,9 +17,9 @@ import '../utils/remote-session.js';
|
|
|
17
17
|
import '../utils/memoize-last.js';
|
|
18
18
|
import 'lodash-es/debounce';
|
|
19
19
|
import 'lodash-es/isEqual';
|
|
20
|
-
import '../chunks/order-page-
|
|
20
|
+
import '../chunks/order-page-9clVUPaS.esm.js';
|
|
21
21
|
import 'lodash';
|
|
22
|
-
import '../chunks/update-cart-
|
|
22
|
+
import '../chunks/update-cart-l86bU5uS.esm.js';
|
|
23
23
|
import '../chunks/types-aju0qrRe.esm.js';
|
|
24
24
|
import '../components/post-purchase.js';
|
|
25
25
|
import 'lit';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as F}from"../chunks/index-
|
|
1
|
+
import{i as F}from"../chunks/index-CsWTfuok.esm.js";import{i as H}from"../chunks/index-b3WjW4PD.esm.js";import{i as J}from"../chunks/index-eXilYHHK.esm.js";import{i as M}from"../chunks/index-BPg2EdL3.esm.js";import{i as O}from"../chunks/index-KOSC2Z9-.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../chunks/events-6Z5MkCRr.esm.js";import"../utils/logger.esm.js";import"../utils/network-listeners.esm.js";import"../utils/local-storage.esm.js";import"../utils/wait-for-element.esm.js";import"../utils/cookies.esm.js";import"../utils/remote-session.esm.js";import"../utils/memoize-last.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/order-page-84vnjksY.esm.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../chunks/update-cart-i5yZ2fyd.esm.js";import"../chunks/routes-Jhhqcsg7.esm.js";import"../utils/cart.esm.js";import"../components/post-purchase.esm.js";import"../chunks/lit-iNN5L_Qk.esm.js";import"../chunks/enforce-config-ZAI7WYAd.esm.js";import"../chunks/localize-o-cYvHQf.esm.js";import"../components/redeem-transaction.esm.js";import"../chunks/progress-bar-PMU_xI3L.esm.js";import"../chunks/promo-pill-label-P1X4xeAx.esm.js";import"../chunks/vendor-GKiOHg2N.esm.js";import"../components/beam-partner-logos.esm.js";import"../chunks/loading-template-t4fFsYtr.esm.js";import"../chunks/css-card-grid-nEc--M5M.esm.js";import"../components/impact-overview.esm.js";import"../chunks/shoelace-components-Jghvahj3.esm.js";import"../chunks/share-button-DeVQh1aE.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-SNvuFDC9.esm.js";import"../chunks/responsive-2lC2Wrtg.esm.js";export{M as Cart,O as Logs,J as Session,H as Shopify,F as Utils};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as F}from"../chunks/index-
|
|
1
|
+
import{i as F}from"../chunks/index-MIp7LlXH.esm.js";import{i as H}from"../chunks/index-cuCnejll.esm.js";import{i as J}from"../chunks/index-JDZQClkA.esm.js";import{i as M}from"../chunks/index-ZZthq-Fl.esm.js";import{i as O}from"../chunks/index-59K_SAPn.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../chunks/events-6Z5MkCRr.esm.js";import"../utils/logger.js";import"../utils/network-listeners.js";import"../utils/local-storage.js";import"../utils/wait-for-element.js";import"../utils/cookies.js";import"../utils/remote-session.js";import"../utils/memoize-last.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/order-page-dERTuQ8T.esm.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../chunks/update-cart-v61CI4O9.esm.js";import"../chunks/routes-tB5fHy2T.esm.js";import"../utils/cart.js";import"../components/post-purchase.js";import"../chunks/lit-iNN5L_Qk.esm.js";import"../chunks/enforce-config-ZyPq_4CF.esm.js";import"../chunks/localize-m-_ESmpk.esm.js";import"../components/redeem-transaction.js";import"../chunks/progress-bar-PMU_xI3L.esm.js";import"../chunks/promo-pill-label-P1X4xeAx.esm.js";import"../chunks/vendor-GKiOHg2N.esm.js";import"../components/beam-partner-logos.js";import"../chunks/loading-template-t4fFsYtr.esm.js";import"../chunks/css-card-grid-nEc--M5M.esm.js";import"../components/impact-overview.js";import"../chunks/shoelace-components-JZANE20x.esm.js";import"../chunks/share-button-bUM2WBaV.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-SNvuFDC9.esm.js";import"../chunks/responsive-2lC2Wrtg.esm.js";export{M as Cart,O as Logs,J as Session,H as Shopify,F as Utils};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import '../chunks/openapi-spec
|
|
2
|
-
export { s as sendLog } from '../chunks/index-
|
|
1
|
+
import '../chunks/openapi-spec-hjdK2L9Q.esm.js';
|
|
2
|
+
export { s as sendLog } from '../chunks/index-PA0NAKHV.esm.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunks/routes-
|
|
1
|
+
import"../chunks/routes-Jhhqcsg7.esm.js";import"../utils/logger.esm.js";import{s as i}from"../chunks/index-KOSC2Z9-.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";export{i as sendLog};
|
|
2
2
|
//# sourceMappingURL=logs.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunks/routes-
|
|
1
|
+
import"../chunks/routes-tB5fHy2T.esm.js";import"../utils/logger.js";import{s as i}from"../chunks/index-59K_SAPn.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";export{i as sendLog};
|
|
2
2
|
//# sourceMappingURL=logs.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { B as BeamShopifyCartIntegrationConfig, T as TBeamOrderPageParams, a as addBeamAttributesToCart, g as getCurrentCart, r as registerCartIntegration, s as showBeamOrderPageWidgets, t as trackCart } from '../chunks/order-page-
|
|
1
|
+
export { B as BeamShopifyCartIntegrationConfig, T as TBeamOrderPageParams, a as addBeamAttributesToCart, c as appendBeamAttributesToCart, b as appendStatsigToShopifyCartAttributes, g as getCurrentCart, d as getShopifyCart, r as registerCartIntegration, s as showBeamOrderPageWidgets, t as trackCart } from '../chunks/order-page-9clVUPaS.esm.js';
|
|
2
2
|
import 'lodash';
|
|
3
|
-
import '../chunks/update-cart-
|
|
3
|
+
import '../chunks/update-cart-l86bU5uS.esm.js';
|
|
4
4
|
import '../chunks/types-aju0qrRe.esm.js';
|
|
5
|
-
import '../chunks/cart-contents-
|
|
6
|
-
import '../chunks/openapi-spec
|
|
5
|
+
import '../chunks/cart-contents-CMm57qu0.esm.js';
|
|
6
|
+
import '../chunks/openapi-spec-hjdK2L9Q.esm.js';
|
|
7
7
|
import '../components/post-purchase.js';
|
|
8
8
|
import 'lit';
|
|
9
9
|
import 'lit-html';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{H as W,g as _,S as j,_ as l,v as q,F as z,s as D,G as E}from"../chunks/order-page-84vnjksY.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/events-6Z5MkCRr.esm.js";import"../utils/logger.esm.js";import"../utils/network-listeners.esm.js";import"../utils/local-storage.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/memoize-last.esm.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../chunks/update-cart-i5yZ2fyd.esm.js";import"../chunks/routes-Jhhqcsg7.esm.js";import"../utils/cookies.esm.js";import"../utils/remote-session.esm.js";import"../utils/cart.esm.js";import"../components/post-purchase.esm.js";import"../chunks/lit-iNN5L_Qk.esm.js";import"../chunks/enforce-config-ZAI7WYAd.esm.js";import"../chunks/localize-o-cYvHQf.esm.js";import"../components/redeem-transaction.esm.js";import"../chunks/progress-bar-PMU_xI3L.esm.js";import"../chunks/promo-pill-label-P1X4xeAx.esm.js";import"../chunks/vendor-GKiOHg2N.esm.js";import"../components/beam-partner-logos.esm.js";import"../chunks/loading-template-t4fFsYtr.esm.js";import"../chunks/css-card-grid-nEc--M5M.esm.js";import"../components/impact-overview.esm.js";import"../chunks/shoelace-components-Jghvahj3.esm.js";import"../chunks/share-button-DeVQh1aE.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-SNvuFDC9.esm.js";import"../chunks/responsive-2lC2Wrtg.esm.js";import"../utils/wait-for-element.esm.js";export{W as addBeamAttributesToCart,_ as appendBeamAttributesToCart,j as appendStatsigToShopifyCartAttributes,l as getCurrentCart,q as getShopifyCart,z as registerCartIntegration,D as showBeamOrderPageWidgets,E as trackCart};
|
|
2
2
|
//# sourceMappingURL=shopify.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{H as W,g as _,S as j,_ as l,v as q,F as z,s as D,G as E}from"../chunks/order-page-dERTuQ8T.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/events-6Z5MkCRr.esm.js";import"../utils/logger.js";import"../utils/network-listeners.js";import"../utils/local-storage.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/memoize-last.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../chunks/update-cart-v61CI4O9.esm.js";import"../chunks/routes-tB5fHy2T.esm.js";import"../utils/cookies.js";import"../utils/remote-session.js";import"../utils/cart.js";import"../components/post-purchase.js";import"../chunks/lit-iNN5L_Qk.esm.js";import"../chunks/enforce-config-ZyPq_4CF.esm.js";import"../chunks/localize-m-_ESmpk.esm.js";import"../components/redeem-transaction.js";import"../chunks/progress-bar-PMU_xI3L.esm.js";import"../chunks/promo-pill-label-P1X4xeAx.esm.js";import"../chunks/vendor-GKiOHg2N.esm.js";import"../components/beam-partner-logos.js";import"../chunks/loading-template-t4fFsYtr.esm.js";import"../chunks/css-card-grid-nEc--M5M.esm.js";import"../components/impact-overview.js";import"../chunks/shoelace-components-JZANE20x.esm.js";import"../chunks/share-button-bUM2WBaV.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-SNvuFDC9.esm.js";import"../chunks/responsive-2lC2Wrtg.esm.js";import"../utils/wait-for-element.js";export{W as addBeamAttributesToCart,_ as appendBeamAttributesToCart,j as appendStatsigToShopifyCartAttributes,l as getCurrentCart,q as getShopifyCart,z as registerCartIntegration,D as showBeamOrderPageWidgets,E as trackCart};
|
|
2
2
|
//# sourceMappingURL=shopify.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{e as M}from"../chunks/routes-
|
|
1
|
+
import{e as M}from"../chunks/routes-Jhhqcsg7.esm.js";import{B as D}from"../chunks/cart-contents-h60geKWa.esm.js";import{f as O,a as W,b as K}from"../chunks/events-6Z5MkCRr.esm.js";import{B as g}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import{getCookieValue as _,setCookieValue as P}from"../utils/cookies.esm.js";import{logger as A}from"../utils/logger.esm.js";import{saveRemoteSession as j}from"../utils/remote-session.esm.js";import"../utils/local-storage.esm.js";var b=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},d=(e,t,i)=>(b(e,t,"read from private field"),i?i.call(e):t.get(e)),n=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},T=(e,t,i,a)=>(b(e,t,"write to private field"),a?a.call(e,i):t.set(e,i),i),h=(e,t,i)=>(b(e,t,"access private method"),i),l,p,E,L,v,B,m,f,$,w,S,y,k,I,x;const z=4,G=`https://cdn.jsdelivr.net/npm/statsig-js@${z}/build/statsig-prod-web-sdk.min.js`,N="beam_statsig_session_id",s="data-beam-visibility",F="beam-sync-visibility",u={STATSIG_INIT:"statsig_init",CART_CREATED:"cart_created",ORDER_CREATED:"order_created",BEAM_SELECTION:"beam_selection"};class U{constructor(t){n(this,E),n(this,v),n(this,f),n(this,w),n(this,y),n(this,I),this.name="statsig",this.experiments={shouldShowBeam:!1,isLoggingEnabled:!0},n(this,l,void 0),n(this,p,void 0),n(this,m,[]),this.statsigApiKey=t.statsigApiKey,this.beforeLogEvent=t.beforeLogEvent}async init(t){T(this,l,t),h(this,E,L).call(this),h(this,w,S).call(this,"hide");const i=document.createElement("style");if(i.innerHTML=`
|
|
2
2
|
[${s}="hide"] beam-select-nonprofit,
|
|
3
3
|
[${s}="hide"] beam-post-purchase,
|
|
4
4
|
[${s}="hide"] beam-redeem-transaction,
|
|
@@ -13,5 +13,5 @@ import{e as M}from"../chunks/routes-o0OWqrXe.esm.js";import{B as D}from"../chunk
|
|
|
13
13
|
[${s}="hide"] .${F} {
|
|
14
14
|
display: none;
|
|
15
15
|
}
|
|
16
|
-
`,document.head.append(i),await
|
|
16
|
+
`,document.head.append(i),await h(this,v,B).call(this),this.stableId=this.statsig.getStableID(),!this.stableId)throw new g("Statsig failed to assign stableId",{name:"StatsigInitError"});h(this,f,$).call(this),j({remoteSessionId:this.stableId,apiKey:t.apiKey}),T(this,p,_(D)),P({name:N,value:this.stableId,path:"/",domain:t.domain}),this.experiments={shouldShowBeam:this.statsig.getLayer("beam_trial_layer").get("show_beam",!1),isLoggingEnabled:this.statsig.getLayer("beam_trial_layer").get("enable_logging",!0)},await Promise.all([h(this,y,k).call(this),h(this,I,x).call(this)]),h(this,w,S).call(this,this.experiments.shouldShowBeam?"show":"hide"),A.debug("Statsig Experiment Assignments",this.experiments)}logEvent(t,i,a={}){if(!this.statsig){d(this,m).push([t,i,a]);return}const o=this.experiments.shouldShowBeam,r=window.location.hostname,c=window.location.pathname,C=window.location.href;if(this.experiments.isLoggingEnabled){const R=this.beforeLogEvent?this.beforeLogEvent(t,i,a):a;this.statsig.logEvent(t,i,{...R,withBeam:o,domain:r,path:c,page:C})}A.debug(t,i,{...a,withBeam:o,domain:r,path:c,page:C})}}l=new WeakMap,p=new WeakMap,E=new WeakSet,L=function(){window.addEventListener(O.eventName,t=>{const i=t,{itemCount:a,cartId:o,subtotal:r,currencyCode:c}=i.detail;this.logEvent(u.CART_CREATED,!0,{itemCount:a,cartId:o,subtotal:r,currencyCode:c})}),window.addEventListener(W.eventName,t=>{const i=t,{orderId:a,cartTotal:o,currencyCode:r}=i.detail;this.logEvent(u.ORDER_CREATED,o,{orderId:a,cartTotal:o,currencyCode:r,hasCart:!!d(this,p)})});let e;window.addEventListener(K.eventName,t=>{const i=t,{selectedNonprofitId:a,selectionId:o,source:r}=i.detail;a!==e&&(this.logEvent(u.BEAM_SELECTION,!0,{nonprofitId:a,widget:r,selectionId:o}),e=a)})},v=new WeakSet,B=async function(){const e=document.createElement("script");e.src=G,e.async=!1;const t=new Promise((a,o)=>{e.addEventListener("load",a),e.addEventListener("error",o)});document.head.append(e);try{await t}catch{throw new g("Failed to load Statsig script",{name:"StatsigInitError"})}if(this.statsig=window.statsig,!this.statsig)throw new g("Failed to detect Statsig",{name:"StatsigInitError"});const i={disableErrorLogging:!0,disableAutoMetricsLogging:!0,disableCurrentPageLogging:!0,loggingIntervalMillis:1e3,loggingBufferMaxSize:2,overrideStableID:_(N)??null};await this.statsig.initialize(this.statsigApiKey,{},i)},m=new WeakMap,f=new WeakSet,$=function(){for(;d(this,m).length>0;){const e=d(this,m).shift();e&&this.logEvent(...e)}},w=new WeakSet,S=function(e){document.body.setAttribute(s,e)},y=new WeakSet,k=async function(){const e="https://events.statsigapi.net/v1/log_event";try{await fetch(e,{method:"POST",headers:{"content-type":"application/json","statsig-api-key":this.statsigApiKey},body:JSON.stringify({eventName:u.STATSIG_INIT,value:"true",time:new Date().getTime()/1e3,metadata:{show_beam:this.experiments.shouldShowBeam.toString(),domain:window.location.hostname,path:window.location.pathname,page:window.location.href},user:{userID:this.stableId}})})}catch(t){throw new g("Could not call Statsig API",{name:"StatsigInitError",cause:t})}},I=new WeakSet,x=async function(){return M({baseUrl:d(this,l)?.baseUrl,headers:{authorization:`Api-Key ${d(this,l)?.apiKey}`},requestBody:{remoteSessionId:this.stableId,storeId:d(this,l)?.storeId,experiments:{showBeam:this.experiments.shouldShowBeam}}})};export{U as StatsigPlugin};
|
|
17
17
|
//# sourceMappingURL=statsig.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statsig.esm.js","sources":["../../src/integrations/statsig/plugin.ts"],"sourcesContent":["import { postExperimentSession } from \"../../api-sdk/v3/routes\";\nimport { BEAM_CART_COOKIE_NAME } from \"../../shared/cart-contents\";\nimport { BeamCartCreatedEvent, BeamNonprofitSelectEvent, BeamOrderCreatedEvent } from \"../../utils/events\";\nimport { BeamPlugin, BeamConfigOptions } from \"../beam\";\nimport { BeamError } from \"../../utils/beam-errors\";\nimport { getCookieValue, setCookieValue } from \"../../utils/cookies\";\nimport { logger } from \"../../utils/logger\";\nimport { saveRemoteSession } from \"../../utils/remote-session\";\n\ntype beforeLogEventFn = (eventName: string, eventValue: any, metadata: Record<string, any>) => Record<string, any>;\n\n/**\n * StatSig Docs: https://docs.statsig.com/client/jsClientSDK\n */\ntype StatsigPluginOptions = {\n statsigApiKey: string;\n beforeLogEvent?: beforeLogEventFn;\n};\n\ndeclare global {\n interface Window {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n statsig?: any; // attached by Statsig CDN script\n }\n}\n\nconst STATSIG_VERSION = 4;\n\nconst STATSIG_SCRIPT_URL = `https://cdn.jsdelivr.net/npm/statsig-js@${STATSIG_VERSION}/build/statsig-prod-web-sdk.min.js`;\n\nconst STATSIG_STABLE_ID_COOKIE = \"beam_statsig_session_id\";\n\nconst BEAM_VISIBILITY_DATA_ATTRIBUTE = \"data-beam-visibility\";\n\n// Add class to elements that should only show when Beam shows\nconst BEAM_VISIBILITY_SYNCED_CLASS = \"beam-sync-visibility\";\n\nconst BEAM_AB_TEST_EVENTS = {\n STATSIG_INIT: \"statsig_init\",\n CART_CREATED: \"cart_created\",\n ORDER_CREATED: \"order_created\",\n BEAM_SELECTION: \"beam_selection\",\n};\n\ntype Experiments = {\n /** Whether Beam widgets should be shown to users */\n shouldShowBeam: boolean;\n /** Whether events should be logged to Statsig */\n isLoggingEnabled: boolean;\n};\n\n/**\n * Sets up Statsig for A/B testing and shows/hides Beam based on default experiment rules.\n * @example\n * import { StatsigPlugin } from '@beamimpact/web-sdk/dist/integrations/statsig'\n * import { init } from '@beamimpact/web-sdk/dist/integrations/beam'\n *\n * const beam = await init({\n * apiKey: '',\n * chainId: 1,\n * storeId: 1,\n * domain: 'my-store.com' // in case site uses subdomains for different pages\n * plugins: [\n * new StatsigPlugin({ statsigApiKey: '' })\n * ]\n * })\n *\n * // Once initialized, all Beam widgets have display: none unless user is assigned to A/B test group that shows Beam\n * // To hide additional elements, add the CSS className \"beam-sync-visibility\" to them\n * // To programmatically access the experiment state: getConfig().plugins.statsig.experiments.shouldShowBeam\n */\nexport class StatsigPlugin implements BeamPlugin {\n name = \"statsig\";\n\n statsig: any; // Statsig SDK instance\n\n statsigApiKey: string;\n\n experiments: Experiments = {\n shouldShowBeam: false,\n isLoggingEnabled: true,\n };\n\n stableId?: string;\n\n beforeLogEvent?: beforeLogEventFn;\n\n #beamConfig?: BeamConfigOptions;\n\n // Checked at initialization so that we can tell if post-purchase events came from a session with a cart or not\n #beamCartCookie?: string;\n\n constructor(options: StatsigPluginOptions) {\n this.statsigApiKey = options.statsigApiKey;\n this.beforeLogEvent = options.beforeLogEvent;\n }\n\n async init(config: BeamConfigOptions) {\n this.#beamConfig = config;\n\n // Add event listeners for cart/order lifecycle events\n // This should happen as soon as possible to avoid missing events\n this.#attachEventListeners();\n\n // Attach beam-visibility data attribute to body\n this.#setBeamVisibilityValue(\"hide\");\n\n // Create beam a/b test stylesheet\n const beamVisibilityStylesheet = document.createElement(\"style\");\n beamVisibilityStylesheet.innerHTML = `\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-select-nonprofit,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-post-purchase,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-redeem-transaction,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-impact-overview,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-community-impact,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-cumulative-impact,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-product-details-page,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-subscription-management,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-subscription-impact,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-select-subscription-nonprofit,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-social-share,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] .${BEAM_VISIBILITY_SYNCED_CLASS} {\n display: none;\n }\n `;\n document.head.append(beamVisibilityStylesheet);\n\n // Create statsig script\n await this.#initializeStatsig();\n this.stableId = this.statsig.getStableID();\n if (!this.stableId) {\n throw new BeamError(\"Statsig failed to assign stableId\", { name: \"StatsigInitError\" });\n }\n\n // Send events that happened before Statsig was ready\n this.#flushEventQueue();\n\n // Save Statsig ID in localStorage for linking to carts later\n saveRemoteSession({ remoteSessionId: this.stableId, apiKey: config.apiKey });\n\n // Save initial value of cart cookie so that post-purchase events can be filtered by if they had a cart or not\n this.#beamCartCookie = getCookieValue(BEAM_CART_COOKIE_NAME);\n\n // Cache ID in cookie to preserve ID across subdomains\n setCookieValue({\n name: STATSIG_STABLE_ID_COOKIE,\n value: this.stableId,\n path: \"/\",\n domain: config.domain,\n });\n\n // Evaluate Statsig experiment assignments\n this.experiments = {\n // Whether Beam widgets should be shown to users\n shouldShowBeam: this.statsig\n .getLayer(\"beam_trial_layer\")\n .get(\"show_beam\", false /* default to hide */) as boolean,\n // Whether events should be logged to Statsig\n isLoggingEnabled: this.statsig.getLayer(\"beam_trial_layer\").get(\"enable_logging\", true) as boolean,\n };\n\n // In parallel:\n // A) Make test call to Statsig\n // B) Save stable ID in Beam for attribution to carts/transactions\n await Promise.all([this.#testStatsigConnection(), this.#registerExperimentWithBeam()]);\n\n // Update beam visibility data attribute, which shows Beam to users in the experiment\n this.#setBeamVisibilityValue(this.experiments.shouldShowBeam ? \"show\" : \"hide\");\n\n // Log result\n logger.debug(\"Statsig Experiment Assignments\", this.experiments);\n }\n\n #attachEventListeners() {\n // Cart Created\n window.addEventListener(BeamCartCreatedEvent.eventName, (_event: Event) => {\n const event = _event as BeamCartCreatedEvent;\n const { itemCount, cartId, subtotal, currencyCode } = event.detail;\n this.logEvent(BEAM_AB_TEST_EVENTS.CART_CREATED, true, { itemCount, cartId, subtotal, currencyCode });\n });\n\n // Order Created\n window.addEventListener(BeamOrderCreatedEvent.eventName, (_event: Event) => {\n const event = _event as BeamOrderCreatedEvent;\n const { orderId, cartTotal, currencyCode } = event.detail;\n this.logEvent(BEAM_AB_TEST_EVENTS.ORDER_CREATED, cartTotal, {\n orderId,\n cartTotal,\n currencyCode,\n hasCart: !!this.#beamCartCookie,\n });\n });\n\n // Beam Selection\n // Store previous value in case widget is recreated and emits event again:\n let lastSelectedNonprofitId: number | null | undefined;\n window.addEventListener(BeamNonprofitSelectEvent.eventName, (_event: Event) => {\n const event = _event as BeamNonprofitSelectEvent;\n const { selectedNonprofitId, selectionId, source } = event.detail;\n if (selectedNonprofitId !== lastSelectedNonprofitId) {\n this.logEvent(BEAM_AB_TEST_EVENTS.BEAM_SELECTION, true, {\n nonprofitId: selectedNonprofitId,\n widget: source,\n selectionId,\n });\n lastSelectedNonprofitId = selectedNonprofitId;\n }\n });\n }\n\n // https://docs.statsig.com/client/jsClientSDK#statsig-options\n async #initializeStatsig() {\n const statsigScript = document.createElement(\"script\");\n statsigScript.src = STATSIG_SCRIPT_URL;\n statsigScript.async = false;\n const statsigReadyPromise = new Promise((res, rej) => {\n statsigScript.addEventListener(\"load\", res);\n statsigScript.addEventListener(\"error\", rej);\n });\n document.head.append(statsigScript);\n try {\n await statsigReadyPromise;\n } catch (err) {\n throw new BeamError(\"Failed to load Statsig script\", { name: \"StatsigInitError\" });\n }\n this.statsig = window.statsig;\n if (!this.statsig) {\n throw new BeamError(\"Failed to detect Statsig\", { name: \"StatsigInitError\" });\n }\n // https://docs.statsig.com/client/jsClientSDK#statsig-options\n const statsigOptions = {\n disableErrorLogging: true,\n disableAutoMetricsLogging: true,\n disableCurrentPageLogging: true,\n loggingIntervalMillis: 1000,\n loggingBufferMaxSize: 2,\n overrideStableID: getCookieValue(STATSIG_STABLE_ID_COOKIE) ?? null,\n };\n await this.statsig.initialize(this.statsigApiKey, {}, statsigOptions);\n }\n\n #eventQueue: Parameters<typeof StatsigPlugin.prototype.logEvent>[] = [];\n\n #flushEventQueue() {\n while (this.#eventQueue.length > 0) {\n const eventParams = this.#eventQueue.shift();\n if (eventParams) {\n this.logEvent(...eventParams);\n }\n }\n }\n\n logEvent(name: string, value: string | number | boolean, metadata: Record<string, any> = {}) {\n if (!this.statsig) {\n this.#eventQueue.push([name, value, metadata]);\n return;\n }\n const withBeam = this.experiments.shouldShowBeam;\n const domain = window.location.hostname;\n const path = window.location.pathname;\n const page = window.location.href;\n if (this.experiments.isLoggingEnabled) {\n const metadataWithOverrides = this.beforeLogEvent ? this.beforeLogEvent(name, value, metadata) : metadata;\n this.statsig.logEvent(name, value, { ...metadataWithOverrides, withBeam, domain, path, page });\n }\n logger.debug(name, value, { ...metadata, withBeam, domain, path, page });\n }\n\n #setBeamVisibilityValue(value: \"show\" | \"hide\") {\n document.body.setAttribute(BEAM_VISIBILITY_DATA_ATTRIBUTE, value);\n }\n\n async #testStatsigConnection() {\n // Use the HTTP API so we can synchronously detect if Statsig is reachable,\n // rather than pushing an event to the SDK's retryable queue.\n // https://docs.statsig.com/http-api\n const url = \"https://events.statsigapi.net/v1/log_event\";\n try {\n await fetch(url, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n \"statsig-api-key\": this.statsigApiKey,\n },\n body: JSON.stringify({\n eventName: BEAM_AB_TEST_EVENTS.STATSIG_INIT,\n value: \"true\",\n time: new Date().getTime() / 1000, // unix timestamp (seconds not milliseconds)\n metadata: {\n show_beam: this.experiments.shouldShowBeam.toString(),\n domain: window.location.hostname,\n path: window.location.pathname,\n page: window.location.href,\n },\n user: {\n userID: this.stableId,\n },\n }),\n });\n } catch (err) {\n // TODO SDK-2390: this will log failures to Beam's error tracking API in the future\n throw new BeamError(\"Could not call Statsig API\", { name: \"StatsigInitError\", cause: err });\n }\n }\n\n async #registerExperimentWithBeam() {\n return postExperimentSession({\n baseUrl: this.#beamConfig?.baseUrl,\n headers: {\n authorization: `Api-Key ${this.#beamConfig?.apiKey}`,\n },\n requestBody: {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n remoteSessionId: this.stableId!,\n experiments: {\n showBeam: this.experiments.shouldShowBeam,\n },\n },\n });\n }\n}\n"],"names":["f","i","e","t","m","r","_","s","g","_beamConfig","_beamCartCookie","_attachEventListeners","attachEventListeners_fn","_initializeStatsig","initializeStatsig_fn","_eventQueue","_flushEventQueue","flushEventQueue_fn","_setBeamVisibilityValue","setBeamVisibilityValue_fn","_testStatsigConnection","testStatsigConnection_fn","_registerExperimentWithBeam","registerExperimentWithBeam_fn","STATSIG_VERSION","STATSIG_SCRIPT_URL","STATSIG_STABLE_ID_COOKIE","BEAM_VISIBILITY_DATA_ATTRIBUTE","BEAM_VISIBILITY_SYNCED_CLASS","BEAM_AB_TEST_EVENTS","StatsigPlugin","options","__privateAdd","config","__privateSet","__privateMethod","beamVisibilityStylesheet","BeamError","saveRemoteSession","getCookieValue","BEAM_CART_COOKIE_NAME","setCookieValue","logger","name","value","metadata","__privateGet","withBeam","domain","path","page","metadataWithOverrides","BeamCartCreatedEvent","_event","event","itemCount","cartId","subtotal","currencyCode","BeamOrderCreatedEvent","orderId","cartTotal","lastSelectedNonprofitId","BeamNonprofitSelectEvent","selectedNonprofitId","selectionId","source","statsigScript","statsigReadyPromise","res","rej","statsigOptions","eventParams","url","err","postExperimentSession"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"statsig.esm.js","sources":["../../src/integrations/statsig/plugin.ts"],"sourcesContent":["import { postExperimentSession } from \"../../api-sdk/v3/routes\";\nimport { BEAM_CART_COOKIE_NAME } from \"../../shared/cart-contents\";\nimport { BeamCartCreatedEvent, BeamNonprofitSelectEvent, BeamOrderCreatedEvent } from \"../../utils/events\";\nimport { BeamPlugin, BeamConfigOptions } from \"../beam\";\nimport { BeamError } from \"../../utils/beam-errors\";\nimport { getCookieValue, setCookieValue } from \"../../utils/cookies\";\nimport { logger } from \"../../utils/logger\";\nimport { saveRemoteSession } from \"../../utils/remote-session\";\n\ntype beforeLogEventFn = (eventName: string, eventValue: any, metadata: Record<string, any>) => Record<string, any>;\n\n/**\n * StatSig Docs: https://docs.statsig.com/client/jsClientSDK\n */\ntype StatsigPluginOptions = {\n statsigApiKey: string;\n beforeLogEvent?: beforeLogEventFn;\n};\n\ndeclare global {\n interface Window {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n statsig?: any; // attached by Statsig CDN script\n }\n}\n\nconst STATSIG_VERSION = 4;\n\nconst STATSIG_SCRIPT_URL = `https://cdn.jsdelivr.net/npm/statsig-js@${STATSIG_VERSION}/build/statsig-prod-web-sdk.min.js`;\n\nconst STATSIG_STABLE_ID_COOKIE = \"beam_statsig_session_id\";\n\nconst BEAM_VISIBILITY_DATA_ATTRIBUTE = \"data-beam-visibility\";\n\n// Add class to elements that should only show when Beam shows\nconst BEAM_VISIBILITY_SYNCED_CLASS = \"beam-sync-visibility\";\n\nconst BEAM_AB_TEST_EVENTS = {\n STATSIG_INIT: \"statsig_init\",\n CART_CREATED: \"cart_created\",\n ORDER_CREATED: \"order_created\",\n BEAM_SELECTION: \"beam_selection\",\n};\n\ntype Experiments = {\n /** Whether Beam widgets should be shown to users */\n shouldShowBeam: boolean;\n /** Whether events should be logged to Statsig */\n isLoggingEnabled: boolean;\n};\n\n/**\n * Sets up Statsig for A/B testing and shows/hides Beam based on default experiment rules.\n * @example\n * import { StatsigPlugin } from '@beamimpact/web-sdk/dist/integrations/statsig'\n * import { init } from '@beamimpact/web-sdk/dist/integrations/beam'\n *\n * const beam = await init({\n * apiKey: '',\n * chainId: 1,\n * storeId: 1,\n * domain: 'my-store.com' // in case site uses subdomains for different pages\n * plugins: [\n * new StatsigPlugin({ statsigApiKey: '' })\n * ]\n * })\n *\n * // Once initialized, all Beam widgets have display: none unless user is assigned to A/B test group that shows Beam\n * // To hide additional elements, add the CSS className \"beam-sync-visibility\" to them\n * // To programmatically access the experiment state: getConfig().plugins.statsig.experiments.shouldShowBeam\n */\nexport class StatsigPlugin implements BeamPlugin {\n name = \"statsig\";\n\n statsig: any; // Statsig SDK instance\n\n statsigApiKey: string;\n\n experiments: Experiments = {\n shouldShowBeam: false,\n isLoggingEnabled: true,\n };\n\n stableId?: string;\n\n beforeLogEvent?: beforeLogEventFn;\n\n #beamConfig?: BeamConfigOptions;\n\n // Checked at initialization so that we can tell if post-purchase events came from a session with a cart or not\n #beamCartCookie?: string;\n\n constructor(options: StatsigPluginOptions) {\n this.statsigApiKey = options.statsigApiKey;\n this.beforeLogEvent = options.beforeLogEvent;\n }\n\n async init(config: BeamConfigOptions) {\n this.#beamConfig = config;\n\n // Add event listeners for cart/order lifecycle events\n // This should happen as soon as possible to avoid missing events\n this.#attachEventListeners();\n\n // Attach beam-visibility data attribute to body\n this.#setBeamVisibilityValue(\"hide\");\n\n // Create beam a/b test stylesheet\n const beamVisibilityStylesheet = document.createElement(\"style\");\n beamVisibilityStylesheet.innerHTML = `\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-select-nonprofit,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-post-purchase,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-redeem-transaction,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-impact-overview,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-community-impact,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-cumulative-impact,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-product-details-page,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-subscription-management,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-subscription-impact,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-select-subscription-nonprofit,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] beam-social-share,\n [${BEAM_VISIBILITY_DATA_ATTRIBUTE}=\"hide\"] .${BEAM_VISIBILITY_SYNCED_CLASS} {\n display: none;\n }\n `;\n document.head.append(beamVisibilityStylesheet);\n\n // Create statsig script\n await this.#initializeStatsig();\n this.stableId = this.statsig.getStableID();\n if (!this.stableId) {\n throw new BeamError(\"Statsig failed to assign stableId\", { name: \"StatsigInitError\" });\n }\n\n // Send events that happened before Statsig was ready\n this.#flushEventQueue();\n\n // Save Statsig ID in localStorage for linking to carts later\n saveRemoteSession({ remoteSessionId: this.stableId, apiKey: config.apiKey });\n\n // Save initial value of cart cookie so that post-purchase events can be filtered by if they had a cart or not\n this.#beamCartCookie = getCookieValue(BEAM_CART_COOKIE_NAME);\n\n // Cache ID in cookie to preserve ID across subdomains\n setCookieValue({\n name: STATSIG_STABLE_ID_COOKIE,\n value: this.stableId,\n path: \"/\",\n domain: config.domain,\n });\n\n // Evaluate Statsig experiment assignments\n this.experiments = {\n // Whether Beam widgets should be shown to users\n shouldShowBeam: this.statsig\n .getLayer(\"beam_trial_layer\")\n .get(\"show_beam\", false /* default to hide */) as boolean,\n // Whether events should be logged to Statsig\n isLoggingEnabled: this.statsig.getLayer(\"beam_trial_layer\").get(\"enable_logging\", true) as boolean,\n };\n\n // In parallel:\n // A) Make test call to Statsig\n // B) Save stable ID in Beam for attribution to carts/transactions\n await Promise.all([this.#testStatsigConnection(), this.#registerExperimentWithBeam()]);\n\n // Update beam visibility data attribute, which shows Beam to users in the experiment\n this.#setBeamVisibilityValue(this.experiments.shouldShowBeam ? \"show\" : \"hide\");\n\n // Log result\n logger.debug(\"Statsig Experiment Assignments\", this.experiments);\n }\n\n #attachEventListeners() {\n // Cart Created\n window.addEventListener(BeamCartCreatedEvent.eventName, (_event: Event) => {\n const event = _event as BeamCartCreatedEvent;\n const { itemCount, cartId, subtotal, currencyCode } = event.detail;\n this.logEvent(BEAM_AB_TEST_EVENTS.CART_CREATED, true, { itemCount, cartId, subtotal, currencyCode });\n });\n\n // Order Created\n window.addEventListener(BeamOrderCreatedEvent.eventName, (_event: Event) => {\n const event = _event as BeamOrderCreatedEvent;\n const { orderId, cartTotal, currencyCode } = event.detail;\n this.logEvent(BEAM_AB_TEST_EVENTS.ORDER_CREATED, cartTotal, {\n orderId,\n cartTotal,\n currencyCode,\n hasCart: !!this.#beamCartCookie,\n });\n });\n\n // Beam Selection\n // Store previous value in case widget is recreated and emits event again:\n let lastSelectedNonprofitId: number | null | undefined;\n window.addEventListener(BeamNonprofitSelectEvent.eventName, (_event: Event) => {\n const event = _event as BeamNonprofitSelectEvent;\n const { selectedNonprofitId, selectionId, source } = event.detail;\n if (selectedNonprofitId !== lastSelectedNonprofitId) {\n this.logEvent(BEAM_AB_TEST_EVENTS.BEAM_SELECTION, true, {\n nonprofitId: selectedNonprofitId,\n widget: source,\n selectionId,\n });\n lastSelectedNonprofitId = selectedNonprofitId;\n }\n });\n }\n\n // https://docs.statsig.com/client/jsClientSDK#statsig-options\n async #initializeStatsig() {\n const statsigScript = document.createElement(\"script\");\n statsigScript.src = STATSIG_SCRIPT_URL;\n statsigScript.async = false;\n const statsigReadyPromise = new Promise((res, rej) => {\n statsigScript.addEventListener(\"load\", res);\n statsigScript.addEventListener(\"error\", rej);\n });\n document.head.append(statsigScript);\n try {\n await statsigReadyPromise;\n } catch (err) {\n throw new BeamError(\"Failed to load Statsig script\", { name: \"StatsigInitError\" });\n }\n this.statsig = window.statsig;\n if (!this.statsig) {\n throw new BeamError(\"Failed to detect Statsig\", { name: \"StatsigInitError\" });\n }\n // https://docs.statsig.com/client/jsClientSDK#statsig-options\n const statsigOptions = {\n disableErrorLogging: true,\n disableAutoMetricsLogging: true,\n disableCurrentPageLogging: true,\n loggingIntervalMillis: 1000,\n loggingBufferMaxSize: 2,\n overrideStableID: getCookieValue(STATSIG_STABLE_ID_COOKIE) ?? null,\n };\n await this.statsig.initialize(this.statsigApiKey, {}, statsigOptions);\n }\n\n #eventQueue: Parameters<typeof StatsigPlugin.prototype.logEvent>[] = [];\n\n #flushEventQueue() {\n while (this.#eventQueue.length > 0) {\n const eventParams = this.#eventQueue.shift();\n if (eventParams) {\n this.logEvent(...eventParams);\n }\n }\n }\n\n logEvent(name: string, value: string | number | boolean, metadata: Record<string, any> = {}) {\n if (!this.statsig) {\n this.#eventQueue.push([name, value, metadata]);\n return;\n }\n const withBeam = this.experiments.shouldShowBeam;\n const domain = window.location.hostname;\n const path = window.location.pathname;\n const page = window.location.href;\n if (this.experiments.isLoggingEnabled) {\n const metadataWithOverrides = this.beforeLogEvent ? this.beforeLogEvent(name, value, metadata) : metadata;\n this.statsig.logEvent(name, value, { ...metadataWithOverrides, withBeam, domain, path, page });\n }\n logger.debug(name, value, { ...metadata, withBeam, domain, path, page });\n }\n\n #setBeamVisibilityValue(value: \"show\" | \"hide\") {\n document.body.setAttribute(BEAM_VISIBILITY_DATA_ATTRIBUTE, value);\n }\n\n async #testStatsigConnection() {\n // Use the HTTP API so we can synchronously detect if Statsig is reachable,\n // rather than pushing an event to the SDK's retryable queue.\n // https://docs.statsig.com/http-api\n const url = \"https://events.statsigapi.net/v1/log_event\";\n try {\n await fetch(url, {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n \"statsig-api-key\": this.statsigApiKey,\n },\n body: JSON.stringify({\n eventName: BEAM_AB_TEST_EVENTS.STATSIG_INIT,\n value: \"true\",\n time: new Date().getTime() / 1000, // unix timestamp (seconds not milliseconds)\n metadata: {\n show_beam: this.experiments.shouldShowBeam.toString(),\n domain: window.location.hostname,\n path: window.location.pathname,\n page: window.location.href,\n },\n user: {\n userID: this.stableId,\n },\n }),\n });\n } catch (err) {\n // TODO SDK-2390: this will log failures to Beam's error tracking API in the future\n throw new BeamError(\"Could not call Statsig API\", { name: \"StatsigInitError\", cause: err });\n }\n }\n\n async #registerExperimentWithBeam() {\n return postExperimentSession({\n baseUrl: this.#beamConfig?.baseUrl,\n headers: {\n authorization: `Api-Key ${this.#beamConfig?.apiKey}`,\n },\n requestBody: {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n remoteSessionId: this.stableId!,\n storeId: this.#beamConfig?.storeId,\n experiments: {\n showBeam: this.experiments.shouldShowBeam,\n },\n },\n });\n }\n}\n"],"names":["f","i","e","t","g","r","_","s","m","_beamConfig","_beamCartCookie","_attachEventListeners","attachEventListeners_fn","_initializeStatsig","initializeStatsig_fn","_eventQueue","_flushEventQueue","flushEventQueue_fn","_setBeamVisibilityValue","setBeamVisibilityValue_fn","_testStatsigConnection","testStatsigConnection_fn","_registerExperimentWithBeam","registerExperimentWithBeam_fn","STATSIG_VERSION","STATSIG_SCRIPT_URL","STATSIG_STABLE_ID_COOKIE","BEAM_VISIBILITY_DATA_ATTRIBUTE","BEAM_VISIBILITY_SYNCED_CLASS","BEAM_AB_TEST_EVENTS","StatsigPlugin","options","__privateAdd","config","__privateSet","__privateMethod","beamVisibilityStylesheet","BeamError","saveRemoteSession","getCookieValue","BEAM_CART_COOKIE_NAME","setCookieValue","logger","name","value","metadata","__privateGet","withBeam","domain","path","page","metadataWithOverrides","BeamCartCreatedEvent","_event","event","itemCount","cartId","subtotal","currencyCode","BeamOrderCreatedEvent","orderId","cartTotal","lastSelectedNonprofitId","BeamNonprofitSelectEvent","selectedNonprofitId","selectionId","source","statsigScript","statsigReadyPromise","res","rej","statsigOptions","eventParams","url","err","postExperimentSession"],"mappings":"odAAA,IAAAA,EAAA,CAAAC,EAAAC,EAAAC,IAAA,CAAA,GAAA,CAAAD,EAAA,IAAAD,CAAA,EAAA,MAAA,UAAA,UAAAE,CAAA,CAAA,EAAAC,EAAA,CAAAH,EAAAC,EAAAC,KAAAH,EAAAC,EAAAC,EAAA,yBAAA,EAAAC,EAAAA,EAAA,KAAAF,CAAA,EAAAC,EAAA,IAAAD,CAAA,GAAAI,EAAA,CAAAJ,EAAAC,EAAAC,IAAA,CAAA,GAAAD,EAAA,IAAAD,CAAA,EAAA,MAAA,UAAA,mDAAA,EAAAC,aAAA,QAAAA,EAAA,IAAAD,CAAA,EAAAC,EAAA,IAAAD,EAAAE,CAAA,CAAA,EAAAG,EAAA,CAAAL,EAAAC,EAAAC,EAAAI,KAAAP,EAAAC,EAAAC,EAAA,wBAAA,EAAAK,EAAAA,EAAA,KAAAN,EAAAE,CAAA,EAAAD,EAAA,IAAAD,EAAAE,CAAA,EAAAA,GAAAK,EAAA,CAAAP,EAAAC,EAAAC,KAAAH,EAAAC,EAAAC,EAAA,uBAAA,EAAAC,GAAAM,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EA0BA,MAAMC,EAAkB,EAElBC,EAAqB,2CAA2CD,CAAe,qCAE/EE,EAA2B,0BAE3BC,EAAiC,uBAGjCC,EAA+B,uBAE/BC,EAAsB,CAC1B,aAAc,eACd,aAAc,eACd,cAAe,gBACf,eAAgB,gBAClB,EA6BO,MAAMC,CAAoC,CAqB/C,YAAYC,EAA+B,CAiF3CC,EAAA,KAAArB,CAAAA,EAsCAqB,EAAA,KAAMnB,GAgCNmB,EAAA,KAAAhB,CAyBAgB,EAAAA,EAAA,KAAAd,CAIAc,EAAAA,EAAA,KAAMZ,CAAAA,EAiCNY,EAAA,KAAMV,CAAAA,EAzON,KAAO,KAAA,UAMP,iBAA2B,CACzB,eAAgB,GAChB,iBAAkB,EACpB,EAMAU,EAAA,KAAAvB,EAAA,QAGAuB,EAAA,KAAAtB,EAAA,MAAA,EAuJAsB,EAAA,KAAAjB,EAAqE,CAAC,CAAA,EApJpE,KAAK,cAAgBgB,EAAQ,cAC7B,KAAK,eAAiBA,EAAQ,cAChC,CAEA,MAAM,KAAKE,EAA2B,CACpCC,EAAA,KAAKzB,EAAcwB,CAInBE,EAAAA,EAAA,KAAKxB,EAAAC,GAAL,KAGAuB,IAAAA,EAAAA,EAAA,KAAKjB,EAAAC,GAAL,KAA6B,KAAA,MAAA,EAG7B,MAAMiB,EAA2B,SAAS,cAAc,OAAO,EAsB/D,GArBAA,EAAyB,UAAY;AAAA,SAChCT,CAA8B;AAAA,SAC9BA,CAA8B;AAAA,SAC9BA,CAA8B;AAAA,SAC9BA,CAA8B;AAAA,SAC9BA,CAA8B;AAAA,SAC9BA,CAA8B;AAAA,SAC9BA,CAA8B;AAAA,SAC9BA,CAA8B;AAAA,SAC9BA,CAA8B;AAAA,SAC9BA,CAA8B;AAAA,SAC9BA,CAA8B;AAAA,SAC9BA,CAA8B,aAAaC,CAA4B;AAAA;AAAA;AAAA,MAI5E,SAAS,KAAK,OAAOQ,CAAwB,EAG7C,MAAMD,EAAA,KAAKtB,EAAAC,GAAL,KACN,IAAA,EAAA,KAAK,SAAW,KAAK,QAAQ,YAAY,EACrC,CAAC,KAAK,SACR,MAAM,IAAIuB,EAAU,oCAAqC,CAAE,KAAM,kBAAmB,CAAC,EAIvFF,EAAA,KAAKnB,EAAAC,CAAL,EAAA,KAAA,IAAA,EAGAqB,EAAkB,CAAE,gBAAiB,KAAK,SAAU,OAAQL,EAAO,MAAO,CAAC,EAG3EC,EAAA,KAAKxB,EAAkB6B,EAAeC,CAAqB,CAG3DC,EAAAA,EAAe,CACb,KAAMf,EACN,MAAO,KAAK,SACZ,KAAM,IACN,OAAQO,EAAO,MACjB,CAAC,EAGD,KAAK,YAAc,CAEjB,eAAgB,KAAK,QAClB,SAAS,kBAAkB,EAC3B,IAAI,YAAa,EAA2B,EAE/C,iBAAkB,KAAK,QAAQ,SAAS,kBAAkB,EAAE,IAAI,iBAAkB,EAAI,CACxF,EAKA,MAAM,QAAQ,IAAI,CAACE,EAAA,KAAKf,EAAAC,CAAL,EAAA,KAAA,IAAA,EAA+Bc,EAAA,KAAKb,EAAAC,CAAL,EAAA,KAAA,IAAA,CAAkC,CAAC,EAGrFY,EAAA,KAAKjB,EAAAC,GAAL,KAA6B,KAAA,KAAK,YAAY,eAAiB,OAAS,MAGxEuB,EAAAA,EAAO,MAAM,iCAAkC,KAAK,WAAW,CACjE,CAiFA,SAASC,EAAcC,EAAkCC,EAAgC,GAAI,CAC3F,GAAI,CAAC,KAAK,QAAS,CACjBC,EAAA,KAAK/B,CAAAA,EAAY,KAAK,CAAC4B,EAAMC,EAAOC,CAAQ,CAAC,EAC7C,MACF,CACA,MAAME,EAAW,KAAK,YAAY,eAC5BC,EAAS,OAAO,SAAS,SACzBC,EAAO,OAAO,SAAS,SACvBC,EAAO,OAAO,SAAS,KAC7B,GAAI,KAAK,YAAY,iBAAkB,CACrC,MAAMC,EAAwB,KAAK,eAAiB,KAAK,eAAeR,EAAMC,EAAOC,CAAQ,EAAIA,EACjG,KAAK,QAAQ,SAASF,EAAMC,EAAO,CAAE,GAAGO,EAAuB,SAAAJ,EAAU,OAAAC,EAAQ,KAAAC,EAAM,KAAAC,CAAK,CAAC,CAC/F,CACAR,EAAO,MAAMC,EAAMC,EAAO,CAAE,GAAGC,EAAU,SAAAE,EAAU,OAAAC,EAAQ,KAAAC,EAAM,KAAAC,CAAK,CAAC,CACzE,CAuDF,CA1OEzC,EAAA,IAGAC,QAAAA,EAAA,YAmFAC,EAAA,IAAA,QAAAC,EAAqB,UAAG,CAEtB,OAAO,iBAAiBwC,EAAqB,UAAYC,GAAkB,CACzE,MAAMC,EAAQD,EACR,CAAE,UAAAE,EAAW,OAAAC,EAAQ,SAAAC,EAAU,aAAAC,CAAa,EAAIJ,EAAM,OAC5D,KAAK,SAASzB,EAAoB,aAAc,GAAM,CAAE,UAAA0B,EAAW,OAAAC,EAAQ,SAAAC,EAAU,aAAAC,CAAa,CAAC,CACrG,CAAC,EAGD,OAAO,iBAAiBC,EAAsB,UAAYN,GAAkB,CAC1E,MAAMC,EAAQD,EACR,CAAE,QAAAO,EAAS,UAAAC,EAAW,aAAAH,CAAa,EAAIJ,EAAM,OACnD,KAAK,SAASzB,EAAoB,cAAegC,EAAW,CAC1D,QAAAD,EACA,UAAAC,EACA,aAAAH,EACA,QAAS,CAAC,CAACZ,EAAA,KAAKpC,CAAAA,CAClB,CAAC,CACH,CAAC,EAID,IAAIoD,EACJ,OAAO,iBAAiBC,EAAyB,UAAYV,GAAkB,CAC7E,MAAMC,EAAQD,EACR,CAAE,oBAAAW,EAAqB,YAAAC,EAAa,OAAAC,CAAO,EAAIZ,EAAM,OACvDU,IAAwBF,IAC1B,KAAK,SAASjC,EAAoB,eAAgB,GAAM,CACtD,YAAamC,EACb,OAAQE,EACR,YAAAD,CACF,CAAC,EACDH,EAA0BE,EAE9B,CAAC,CACH,EAGMnD,EAAA,IAAAC,QAAAA,EAAkB,gBAAG,CACzB,MAAMqD,EAAgB,SAAS,cAAc,QAAQ,EACrDA,EAAc,IAAM1C,EACpB0C,EAAc,MAAQ,GACtB,MAAMC,EAAsB,IAAI,QAAQ,CAACC,EAAKC,IAAQ,CACpDH,EAAc,iBAAiB,OAAQE,CAAG,EAC1CF,EAAc,iBAAiB,QAASG,CAAG,CAC7C,CAAC,EACD,SAAS,KAAK,OAAOH,CAAa,EAClC,GAAI,CACF,MAAMC,CACR,MAAc,CACZ,MAAM,IAAI/B,EAAU,gCAAiC,CAAE,KAAM,kBAAmB,CAAC,CACnF,CAEA,GADA,KAAK,QAAU,OAAO,QAClB,CAAC,KAAK,QACR,MAAM,IAAIA,EAAU,2BAA4B,CAAE,KAAM,kBAAmB,CAAC,EAG9E,MAAMkC,EAAiB,CACrB,oBAAqB,GACrB,0BAA2B,GAC3B,0BAA2B,GAC3B,sBAAuB,IACvB,qBAAsB,EACtB,iBAAkBhC,EAAeb,CAAwB,GAAK,IAChE,EACA,MAAM,KAAK,QAAQ,WAAW,KAAK,cAAe,CAAI6C,EAAAA,CAAc,CACtE,EAEAxD,EAAA,IAEAC,QAAAA,EAAA,YAAAC,EAAgB,UAAG,CACjB,KAAO6B,EAAA,KAAK/B,CAAAA,EAAY,OAAS,GAAG,CAClC,MAAMyD,EAAc1B,EAAA,KAAK/B,CAAY,EAAA,MACjCyD,EAAAA,GACF,KAAK,SAAS,GAAGA,CAAW,CAEhC,CACF,EAkBAtD,EAAA,IAAAC,QAAAA,EAAuB,SAACyB,EAAwB,CAC9C,SAAS,KAAK,aAAajB,EAAgCiB,CAAK,CAClE,EAEMxB,EAAA,IAAAC,QAAAA,EAAsB,gBAAG,CAI7B,MAAMoD,EAAM,6CACZ,GAAI,CACF,MAAM,MAAMA,EAAK,CACf,OAAQ,OACR,QAAS,CACP,eAAgB,mBAChB,kBAAmB,KAAK,aAC1B,EACA,KAAM,KAAK,UAAU,CACnB,UAAW5C,EAAoB,aAC/B,MAAO,OACP,KAAM,IAAI,KAAK,EAAE,UAAY,IAC7B,SAAU,CACR,UAAW,KAAK,YAAY,eAAe,SAC3C,EAAA,OAAQ,OAAO,SAAS,SACxB,KAAM,OAAO,SAAS,SACtB,KAAM,OAAO,SAAS,IACxB,EACA,KAAM,CACJ,OAAQ,KAAK,QACf,CACF,CAAC,CACH,CAAC,CACH,OAAS6C,EAAK,CAEZ,MAAM,IAAIrC,EAAU,6BAA8B,CAAE,KAAM,mBAAoB,MAAOqC,CAAI,CAAC,CAC5F,CACF,EAEMpD,EAAA,YAAAC,EAA2B,gBAAG,CAClC,OAAOoD,EAAsB,CAC3B,QAAS7B,EAAA,KAAKrC,IAAa,QAC3B,QAAS,CACP,cAAe,WAAWqC,EAAA,KAAKrC,CAAa,GAAA,MAAM,EACpD,EACA,YAAa,CAEX,gBAAiB,KAAK,SACtB,QAASqC,EAAA,KAAKrC,IAAa,QAC3B,YAAa,CACX,SAAU,KAAK,YAAY,cAC7B,CACF,CACF,CAAC,CACH"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{e as M}from"../chunks/routes-
|
|
1
|
+
import{e as M}from"../chunks/routes-tB5fHy2T.esm.js";import{B as D}from"../chunks/cart-contents-h60geKWa.esm.js";import{f as O,a as W,b as K}from"../chunks/events-6Z5MkCRr.esm.js";import{B as g}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import{getCookieValue as _,setCookieValue as P}from"../utils/cookies.js";import{logger as A}from"../utils/logger.js";import{saveRemoteSession as j}from"../utils/remote-session.js";import"../utils/local-storage.js";var b=(e,t,i)=>{if(!t.has(e))throw TypeError("Cannot "+i)},d=(e,t,i)=>(b(e,t,"read from private field"),i?i.call(e):t.get(e)),n=(e,t,i)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,i)},T=(e,t,i,a)=>(b(e,t,"write to private field"),a?a.call(e,i):t.set(e,i),i),h=(e,t,i)=>(b(e,t,"access private method"),i),l,p,E,L,v,B,m,f,$,w,S,y,k,I,x;const z=4,G=`https://cdn.jsdelivr.net/npm/statsig-js@${z}/build/statsig-prod-web-sdk.min.js`,N="beam_statsig_session_id",s="data-beam-visibility",F="beam-sync-visibility",u={STATSIG_INIT:"statsig_init",CART_CREATED:"cart_created",ORDER_CREATED:"order_created",BEAM_SELECTION:"beam_selection"};class U{constructor(t){n(this,E),n(this,v),n(this,f),n(this,w),n(this,y),n(this,I),this.name="statsig",this.experiments={shouldShowBeam:!1,isLoggingEnabled:!0},n(this,l,void 0),n(this,p,void 0),n(this,m,[]),this.statsigApiKey=t.statsigApiKey,this.beforeLogEvent=t.beforeLogEvent}async init(t){T(this,l,t),h(this,E,L).call(this),h(this,w,S).call(this,"hide");const i=document.createElement("style");if(i.innerHTML=`
|
|
2
2
|
[${s}="hide"] beam-select-nonprofit,
|
|
3
3
|
[${s}="hide"] beam-post-purchase,
|
|
4
4
|
[${s}="hide"] beam-redeem-transaction,
|
|
@@ -13,5 +13,5 @@ import{e as M}from"../chunks/routes-DWNnzqXL.esm.js";import{B as D}from"../chunk
|
|
|
13
13
|
[${s}="hide"] .${F} {
|
|
14
14
|
display: none;
|
|
15
15
|
}
|
|
16
|
-
`,document.head.append(i),await
|
|
16
|
+
`,document.head.append(i),await h(this,v,B).call(this),this.stableId=this.statsig.getStableID(),!this.stableId)throw new g("Statsig failed to assign stableId",{name:"StatsigInitError"});h(this,f,$).call(this),j({remoteSessionId:this.stableId,apiKey:t.apiKey}),T(this,p,_(D)),P({name:N,value:this.stableId,path:"/",domain:t.domain}),this.experiments={shouldShowBeam:this.statsig.getLayer("beam_trial_layer").get("show_beam",!1),isLoggingEnabled:this.statsig.getLayer("beam_trial_layer").get("enable_logging",!0)},await Promise.all([h(this,y,k).call(this),h(this,I,x).call(this)]),h(this,w,S).call(this,this.experiments.shouldShowBeam?"show":"hide"),A.debug("Statsig Experiment Assignments",this.experiments)}logEvent(t,i,a={}){if(!this.statsig){d(this,m).push([t,i,a]);return}const o=this.experiments.shouldShowBeam,r=window.location.hostname,c=window.location.pathname,C=window.location.href;if(this.experiments.isLoggingEnabled){const R=this.beforeLogEvent?this.beforeLogEvent(t,i,a):a;this.statsig.logEvent(t,i,{...R,withBeam:o,domain:r,path:c,page:C})}A.debug(t,i,{...a,withBeam:o,domain:r,path:c,page:C})}}l=new WeakMap,p=new WeakMap,E=new WeakSet,L=function(){window.addEventListener(O.eventName,t=>{const i=t,{itemCount:a,cartId:o,subtotal:r,currencyCode:c}=i.detail;this.logEvent(u.CART_CREATED,!0,{itemCount:a,cartId:o,subtotal:r,currencyCode:c})}),window.addEventListener(W.eventName,t=>{const i=t,{orderId:a,cartTotal:o,currencyCode:r}=i.detail;this.logEvent(u.ORDER_CREATED,o,{orderId:a,cartTotal:o,currencyCode:r,hasCart:!!d(this,p)})});let e;window.addEventListener(K.eventName,t=>{const i=t,{selectedNonprofitId:a,selectionId:o,source:r}=i.detail;a!==e&&(this.logEvent(u.BEAM_SELECTION,!0,{nonprofitId:a,widget:r,selectionId:o}),e=a)})},v=new WeakSet,B=async function(){const e=document.createElement("script");e.src=G,e.async=!1;const t=new Promise((a,o)=>{e.addEventListener("load",a),e.addEventListener("error",o)});document.head.append(e);try{await t}catch{throw new g("Failed to load Statsig script",{name:"StatsigInitError"})}if(this.statsig=window.statsig,!this.statsig)throw new g("Failed to detect Statsig",{name:"StatsigInitError"});const i={disableErrorLogging:!0,disableAutoMetricsLogging:!0,disableCurrentPageLogging:!0,loggingIntervalMillis:1e3,loggingBufferMaxSize:2,overrideStableID:_(N)??null};await this.statsig.initialize(this.statsigApiKey,{},i)},m=new WeakMap,f=new WeakSet,$=function(){for(;d(this,m).length>0;){const e=d(this,m).shift();e&&this.logEvent(...e)}},w=new WeakSet,S=function(e){document.body.setAttribute(s,e)},y=new WeakSet,k=async function(){const e="https://events.statsigapi.net/v1/log_event";try{await fetch(e,{method:"POST",headers:{"content-type":"application/json","statsig-api-key":this.statsigApiKey},body:JSON.stringify({eventName:u.STATSIG_INIT,value:"true",time:new Date().getTime()/1e3,metadata:{show_beam:this.experiments.shouldShowBeam.toString(),domain:window.location.hostname,path:window.location.pathname,page:window.location.href},user:{userID:this.stableId}})})}catch(t){throw new g("Could not call Statsig API",{name:"StatsigInitError",cause:t})}},I=new WeakSet,x=async function(){return M({baseUrl:d(this,l)?.baseUrl,headers:{authorization:`Api-Key ${d(this,l)?.apiKey}`},requestBody:{remoteSessionId:this.stableId,storeId:d(this,l)?.storeId,experiments:{showBeam:this.experiments.shouldShowBeam}}})};export{U as StatsigPlugin};
|
|
17
17
|
//# sourceMappingURL=statsig.js.map
|