@beamimpact/web-sdk 1.42.1 → 1.42.2
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-g3jQ8id8.esm.js +2 -0
- package/dist/chunks/_share-dialog-dependencies-g3jQ8id8.esm.js.map +1 -0
- package/dist/chunks/_share-dialog-dependencies-illEcadu.esm.js +2 -0
- package/dist/chunks/_share-dialog-dependencies-illEcadu.esm.js.map +1 -0
- package/dist/chunks/{cart-contents-sUhfwLAz.esm.d.ts → cart-contents-WB1BF6hG.esm.d.ts} +1 -1
- package/dist/chunks/{events-QJc86_5Y.esm.d.ts → events-MfRTtTVm.esm.d.ts} +1 -1
- package/dist/chunks/index-3sQuy5hc.esm.js +2 -0
- package/dist/chunks/index-3sQuy5hc.esm.js.map +1 -0
- package/dist/chunks/{index-M-0eAFA6.esm.d.ts → index-B9w02q6y.esm.d.ts} +1 -1
- package/dist/chunks/index-DMAoV_0a.esm.js +2 -0
- package/dist/chunks/index-DMAoV_0a.esm.js.map +1 -0
- package/dist/chunks/{index-_Hgu38MH.esm.d.ts → index-OaRsZJh7.esm.d.ts} +1 -1
- package/dist/chunks/{index-euJMrXIc.esm.d.ts → index-UggwPn9Q.esm.d.ts} +1 -1
- package/dist/chunks/index-ZkBd4ymi.esm.js +2 -0
- package/dist/chunks/index-ZkBd4ymi.esm.js.map +1 -0
- package/dist/chunks/index-i2CQiQI2.esm.js +2 -0
- package/dist/chunks/index-i2CQiQI2.esm.js.map +1 -0
- package/dist/chunks/{index-ZgCs6F4e.esm.d.ts → index-ozcDdIom.esm.d.ts} +4 -4
- package/dist/chunks/{index-giTGb0gn.esm.js → index-q6z7dFlx.esm.js} +2 -2
- package/dist/chunks/{index-giTGb0gn.esm.js.map → index-q6z7dFlx.esm.js.map} +1 -1
- package/dist/chunks/{index-qjhWIDcT.esm.js → index-sq8adzxn.esm.js} +2 -2
- package/dist/chunks/{index-qjhWIDcT.esm.js.map → index-sq8adzxn.esm.js.map} +1 -1
- package/dist/chunks/{index-VHXu2kRx.esm.d.ts → index-uqNCQVUx.esm.d.ts} +1 -1
- package/dist/chunks/index-x8t2PPR9.esm.js +2 -0
- package/dist/chunks/index-x8t2PPR9.esm.js.map +1 -0
- package/dist/chunks/index-xd5EFnau.esm.js +2 -0
- package/dist/chunks/index-xd5EFnau.esm.js.map +1 -0
- package/dist/chunks/{index-_UuYsIe9.esm.d.ts → index-yeW2w5bb.esm.d.ts} +1 -1
- package/dist/chunks/{openapi-spec--WoGcZgR.esm.d.ts → openapi-spec-GGEBbqAJ.esm.d.ts} +892 -27
- package/dist/chunks/order-page-HVySSia7.esm.js +2 -0
- package/dist/chunks/order-page-HVySSia7.esm.js.map +1 -0
- package/dist/chunks/{order-page-Ps8Qyjfg.esm.d.ts → order-page-LvE0Otsn.esm.d.ts} +3 -3
- package/dist/chunks/order-page-V0lMZwIk.esm.js +2 -0
- package/dist/chunks/order-page-V0lMZwIk.esm.js.map +1 -0
- package/dist/chunks/{routes-sc6xljWU.esm.js → routes-8O1TW_Zi.esm.js} +2 -2
- package/dist/chunks/{routes-sc6xljWU.esm.js.map → routes-8O1TW_Zi.esm.js.map} +1 -1
- package/dist/chunks/{routes-zzEfDMIn.esm.js → routes-SVTSfe0m.esm.js} +2 -2
- package/dist/chunks/{routes-zzEfDMIn.esm.js.map → routes-SVTSfe0m.esm.js.map} +1 -1
- package/dist/chunks/{routes-qbvie7oI.esm.d.ts → routes-wCCYf_uA.esm.d.ts} +31 -0
- package/dist/chunks/{share-button-AUvXGlky.esm.js → share-button-MIfALwo7.esm.js} +2 -2
- package/dist/chunks/{share-button-AUvXGlky.esm.js.map → share-button-MIfALwo7.esm.js.map} +1 -1
- package/dist/chunks/{share-button-wmGQW923.esm.js → share-button-SBb1jPC2.esm.js} +2 -2
- package/dist/chunks/{share-button-wmGQW923.esm.js.map → share-button-SBb1jPC2.esm.js.map} +1 -1
- package/dist/chunks/{shoelace-components-29N4dEDv.esm.js → shoelace-components-5jajO5Gh.esm.js} +2 -2
- package/dist/chunks/{shoelace-components-29N4dEDv.esm.js.map → shoelace-components-5jajO5Gh.esm.js.map} +1 -1
- package/dist/chunks/{shoelace-components-YboJNgEe.esm.js → shoelace-components-fjdtu7FL.esm.js} +2 -2
- package/dist/chunks/{shoelace-components-YboJNgEe.esm.js.map → shoelace-components-fjdtu7FL.esm.js.map} +1 -1
- package/dist/chunks/{update-cart-_5yw3Tg7.esm.js → update-cart-iH40XbBA.esm.js} +2 -2
- package/dist/chunks/{update-cart-_5yw3Tg7.esm.js.map → update-cart-iH40XbBA.esm.js.map} +1 -1
- package/dist/chunks/{update-cart-SajqAoez.esm.d.ts → update-cart-tjLR7pMx.esm.d.ts} +1 -1
- package/dist/chunks/{update-cart-yfZE8kwS.esm.js → update-cart-x_iZyHUC.esm.js} +2 -2
- package/dist/chunks/{update-cart-yfZE8kwS.esm.js.map → update-cart-x_iZyHUC.esm.js.map} +1 -1
- 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.d.ts +15 -0
- package/dist/components/impact-overview.esm.js +7 -7
- package/dist/components/impact-overview.esm.js.map +1 -1
- package/dist/components/impact-overview.js +7 -7
- package/dist/components/impact-overview.js.map +1 -1
- package/dist/components/index.d.ts +3 -3
- package/dist/components/index.esm.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/post-purchase.d.ts +11 -3
- package/dist/components/post-purchase.esm.js +2 -1
- package/dist/components/post-purchase.esm.js.map +1 -1
- package/dist/components/post-purchase.js +2 -1
- package/dist/components/post-purchase.js.map +1 -1
- package/dist/components/product-details-page.d.ts +4 -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 +3 -3
- package/dist/components/select-nonprofit.esm.js +1 -1
- package/dist/components/select-nonprofit.js +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 +6 -6
- package/dist/components/shopify.esm.js +1 -1
- package/dist/components/shopify.js +1 -1
- package/dist/components/social-share.d.ts +1 -0
- package/dist/components/social-share.esm.js +2 -2
- package/dist/components/social-share.esm.js.map +1 -1
- package/dist/components/social-share.js +2 -2
- package/dist/components/social-share.js.map +1 -1
- package/dist/components/subscription-impact.d.ts +15 -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 +26 -4
- package/dist/components/subscription-management.esm.js +1 -1
- package/dist/components/subscription-management.js +1 -1
- package/dist/index.d.ts +12 -12
- 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 +10 -10
- 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 +5 -5
- package/dist/integrations/shopify.esm.js +1 -1
- package/dist/integrations/shopify.js +1 -1
- package/dist/integrations/statsig.esm.js +1 -1
- package/dist/integrations/statsig.js +1 -1
- package/dist/integrations/utils.d.ts +3 -3
- 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 +4 -4
- 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.js +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 +3 -3
- 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/index.d.ts +3 -3
- package/package.json +1 -1
- package/dist/chunks/_share-dialog-dependencies-KpCcT5X6.esm.js +0 -2
- package/dist/chunks/_share-dialog-dependencies-KpCcT5X6.esm.js.map +0 -1
- package/dist/chunks/_share-dialog-dependencies-vHG7OoOA.esm.js +0 -2
- package/dist/chunks/_share-dialog-dependencies-vHG7OoOA.esm.js.map +0 -1
- package/dist/chunks/index--iA4GcfC.esm.js +0 -2
- package/dist/chunks/index--iA4GcfC.esm.js.map +0 -1
- package/dist/chunks/index-F1U8ROKG.esm.js +0 -2
- package/dist/chunks/index-F1U8ROKG.esm.js.map +0 -1
- package/dist/chunks/index-LF_9YLx7.esm.js +0 -2
- package/dist/chunks/index-LF_9YLx7.esm.js.map +0 -1
- package/dist/chunks/index-MSOdvudi.esm.js +0 -2
- package/dist/chunks/index-MSOdvudi.esm.js.map +0 -1
- package/dist/chunks/index-QeW-IaK9.esm.js +0 -2
- package/dist/chunks/index-QeW-IaK9.esm.js.map +0 -1
- package/dist/chunks/index-e--9y-Sl.esm.js +0 -2
- package/dist/chunks/index-e--9y-Sl.esm.js.map +0 -1
- package/dist/chunks/order-page-HoZ7DC0L.esm.js +0 -2
- package/dist/chunks/order-page-HoZ7DC0L.esm.js.map +0 -1
- package/dist/chunks/order-page-m5hkOPEQ.esm.js +0 -2
- package/dist/chunks/order-page-m5hkOPEQ.esm.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{f as I,g as p,t as D,h as L,y as S,u as M,q as x,m as F}from"../chunks/lit-3QHn3fwl.esm.js";import{d as P}from"../chunks/lodash-P8OIs-at.esm.js";import{D as A,f as U,u as W,S as R}from"../chunks/routes-sc6xljWU.esm.js";import{u as d,A as k,d as u,a as z,_ as N,i as l}from"../chunks/localize-SsJbTmMj.esm.js";import{p as E}from"../chunks/progress-bar-HVG_n8_6.esm.js";import{c as _,d as j,e as v}from"../chunks/enforce-config-er6B5Gkj.esm.js";import{_ as H}from"../chunks/loading-template-mLjOGXMj.esm.js";import{makeApiKeyHeader as C}from"../utils/makeApiKeyHeader.js";import{B as K}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import{createScopedLocalStorage as O}from"../utils/local-storage.js";import{c as Y}from"../chunks/css-card-grid-r6wxRbPV.esm.js";import{_ as G}from"../chunks/checkbox-P2JYPqxl.esm.js";import{c as q}from"../chunks/events-_4nImo3u.esm.js";import"./beam-partner-logos.js";import"../utils/logger.js";const m={en:{ctaTitle:()=>"Choose Your Impact",ctaMessagePrefix:()=>" at no extra cost.",ctaMessage:({donationPercentage:n="1%"}={})=>`Choose a nonprofit and ${n} will be donated there for you with every order of your subscription,`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"},fr:{ctaTitle:()=>"Choose Your Impact",ctaMessagePrefix:()=>" at no extra cost.",ctaMessage:({donationPercentage:n="1%"}={})=>`Choose a nonprofit and ${n} will be donated there for you with every order of your subscription,`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"},de:{ctaTitle:()=>"Choose Your Impact",ctaMessagePrefix:()=>" at no extra cost.",ctaMessage:({donationPercentage:n="1%"}={})=>`Choose a nonprofit and ${n} will be donated there for you with every order of your subscription,`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"},es:{ctaTitle:()=>"Choose Your Impact",ctaMessagePrefix:()=>" at no extra cost.",ctaMessage:({donationPercentage:n="1%"}={})=>`Choose a nonprofit and ${n} will be donated there for you with every order of your subscription,`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"},it:{ctaTitle:()=>"Choose Your Impact",ctaMessagePrefix:()=>" at no extra cost.",ctaMessage:({donationPercentage:n="1%"}={})=>`Choose a nonprofit and ${n} will be donated there for you with every order of your subscription,`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"},pl:{ctaTitle:()=>"Choose Your Impact",ctaMessagePrefix:()=>" at no extra cost.",ctaMessage:({donationPercentage:n="1%"}={})=>`Choose a nonprofit and ${n} will be donated there for you with every order of your subscription,`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"}};var V=Object.defineProperty,J=Object.getOwnPropertyDescriptor,c=(n,o,t,e)=>{for(var i=e>1?void 0:e?J(o,t):o,b=n.length-1,a;b>=0;b--)(a=n[b])&&(i=(e?a(o,t,i):a(i))||i);return e&&i&&V(o,t,i),i};const Q=2*60*60*1e3;class s extends L{constructor(){super(...arguments),this.baseUrl=A,this.lang="en",this.debug=!1,this.isMobile=window.innerWidth<768,this.getChainNonprofits=async()=>{v(["apiKey","subscriptionId","storeId"],this);const o=await U({baseUrl:this.baseUrl,headers:C(this.apiKey),requestBody:{storeId:this.storeId,postalCode:this.postalCode,countryCode:this.countryCode,widgetName:"select-subscription-nonprofit",version:"1.0.0",lang:this.configLang}});return this.localStorage.setItemJson("chainNonprofits",{createdAt:new Date,data:o}),o},this.updateNonprofitIdForSubscription=async({selectedNonprofitId:o})=>this.subscriptionId?(v(["apiKey","subscriptionId"],this),W({baseUrl:this.baseUrl,headers:C(this.apiKey),requestBody:{remoteSubscriptionId:this.subscriptionId,nonprofitId:o,selectionMethod:"dashboard"}})):null,this.nonprofitListDataController=new k(this,this.getChainNonprofits),this.subscriptionUpdateDataController=new k(this,this.updateNonprofitIdForSubscription),this.localStorage=O(this),this.makeHandleSelect=(o,t,e)=>async i=>{if(!this.allowChange)return;const b=this.selectedNonprofitId;if(i instanceof KeyboardEvent){let a=null;switch(i.key){case"ArrowUp":case"ArrowLeft":t===0?a=e[e.length-1]:a=e[t-1],i.preventDefault();break;case"ArrowRight":case"ArrowDown":t===e.length-1?a=e[0]:a=e[t+1],i.preventDefault();break;case"Enter":case" ":i.preventDefault();break;default:return}if(a){const f=this.renderRoot.querySelector(`[data-value="${a.nonprofit.id}"]`);f!==null&&(f.tabIndex=0,f.focus());return}}if(i.currentTarget instanceof HTMLElement){if(b===o)return;this.selectedNonprofitId=o}},this.handleSubmit=async()=>{const{selectedNonprofitId:o}=this;if(!this.allowSubmit||o==null)return;await this.subscriptionUpdateDataController.exec({selectedNonprofitId:o});const t=this.nonprofitListDataController?.data?.nonprofits.find(e=>e.nonprofit.id===o);this.dispatchEvent(new q({selectedNonprofitId:o,nonprofitName:t?.nonprofit.name}))},this.evaluateBreakPoints=P(()=>{this.isMobile=window.innerWidth<768},50,{maxWait:50,leading:!0})}get configLang(){return R[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.evaluateBreakPoints)}async firstUpdated(o){await this.restoreStateFromCache()}async updated(o){const t=["baseUrl","storeId","apiKey","countryCode","postalCode","lang"];for(const e of t)if(o.has(e)){await this.nonprofitListDataController.exec();break}}disconnectedCallback(){super.disconnectedCallback()}restoreStateFromCache(){v(["apiKey"],this);try{const{createdAt:o=0,data:t}=this.localStorage.getItemJson("chainNonprofits")||{};new Date(o).valueOf()+Q>new Date().valueOf()&&(this.nonprofitListDataController.data=t,this.nonprofitListDataController.loading=!1)}catch{}}get allowChange(){return this.subscriptionUpdateDataController.data==null&&!this.subscriptionUpdateDataController.loading}get allowSubmit(){return!!(this.selectedNonprofitId&&this.allowChange)}get cssVariables(){const o={...E,"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit","--beam-SelectSubscriptionNonprofit-maxWidth":"800px","--beam-SelectSubscriptionNonprofit-mobile-header-alignItems":"center","--beam-SelectSubscriptionNonprofit-desktop-header-alignItems":"center","--beam-SelectSubscriptionNonprofit-headerContainer-padding":"2px","--beam-SelectSubscriptionNonprofit-title-textAlign":"inherit","--beam-SelectSubscriptionNonprofit-description-textAlign":"center","--beam-SelectSubscriptionNonprofit-desktop-description-width":"80%","--beam-SelectSubscriptionNonprofit-mobile-description-width":"90%","--beam-SelectSubscriptionNonprofit-options-marginTop":"10px","--beam-SelectSubscriptionNonprofit-options-padding":"10px","--beam-SelectSubscriptionNonprofit-options-borderWidth":"1px","--beam-SelectSubscriptionNonprofit-options-borderColor":"transparent","--beam-SelectSubscriptionNonprofit-options-borderRadius":"8px","--beam-SelectSubscriptionNonprofit-options-backgroundColor":"#F9FBFB","--beam-SelectSubscriptionNonprofit-option-padding":"15px","--beam-SelectSubscriptionNonprofit-options-hover-backgroundColor":"#e1f1ee","--beam-SelectSubscriptionNonprofit-options-hover-borderWidth":"1px","--beam-SelectSubscriptionNonprofit-options-hover-borderColor":"#e1f1ee","--beam-SelectSubscriptionNonprofit-options-selected-borderWidth":"1px","--beam-SelectSubscriptionNonprofit-options-selected-borderColor":"#e1f1ee","--beam-SelectSubscriptionNonprofit-options-selected-backgroundColor":"#e1f1ee","--beam-SelectSubscriptionNonprofit-options-gap":"20px","--beam-SelectSubscriptionNonprofit-options-minWidth":"250px","--beam-SelectSubscriptionNonprofit-options-columnCount":"2","--beam-SelectSubscriptionNonprofit-options-icon-borderRadius":"4px","--beam-SelectSubscriptionNonprofit-options-icon-padding":"10px","--beam-SelectSubscriptionNonprofit-options-image-borderRadius":"4px","--beam-SelectSubscriptionNonprofit-cardIconContainer-height":"100%","--beam-SelectSubscriptionNonprofit-iconBackground-width":"50px","--beam-SelectSubscriptionNonprofit-iconBackground-height":"50px","--beam-SelectSubscriptionNonprofit-iconBackground-borderRadius":"50%","--beam-SelectSubscriptionNonprofit-iconBackground-background":"#0a323c","--beam-SelectSubscriptionNonprofit-icon-height":"50px","--beam-SelectSubscriptionNonprofit-checkmark-backgroundColor":"transparent","--beam-SelectSubscriptionNonprofit-checkmark-color":"transparent","--beam-SelectSubscriptionNonprofit-checkmark-borderColor":"#0A323C","--beam-SelectSubscriptionNonprofit-checkmark-selected-color":"#fff","--beam-SelectSubscriptionNonprofit-checkmark-selected-backgroundColor":"#0A323C","--beam-SelectSubscriptionNonprofit-checkmark-selected-borderColor":"#0A323C","--beam-SelectSubscriptionNonprofit-checkmark-hover-color":"#fff","--beam-SelectSubscriptionNonprofit-checkmark-hover-backgroundColor":"#0A323C","--beam-SelectSubscriptionNonprofit-checkmark-hover-borderColor":"#0A323C","--beam-SelectSubscriptionNonprofit-cardStyle":"'selected_icon'","--beam-SelectSubscriptionNonprofit-submitButton-color":"#fff","--beam-SelectSubscriptionNonprofit-submitButton-hover-color":"#fff","--beam-SelectSubscriptionNonprofit-submitButton-disabled-color":"#fff","--beam-SelectSubscriptionNonprofit-submitButton-backgroundColor":"#0A323C","--beam-SelectSubscriptionNonprofit-submitButton-hover-backgroundColor":"#222","--beam-SelectSubscriptionNonprofit-submitButton-disabled-backgroundColor":"#767676","--beam-SelectSubscriptionNonprofit-submitButton-borderColor":"#333","--beam-SelectSubscriptionNonprofit-submitButton-hover-borderColor":"#222","--beam-SelectSubscriptionNonprofit-submitButton-disabled-borderColor":"#767676","--beam-SelectSubscriptionNonprofit-submitButton-fontSize":"14px","--beam-SelectSubscriptionNonprofit-submitButton-fontWeight":"inherit","--beam-SelectSubscriptionNonprofit-submitButton-fontFamily":"inherit","--beam-SelectSubscriptionNonprofit-submitButton-textTransform":"none","--beam-SelectSubscriptionNonprofit-submitButton-borderRadius":"30px","--beam-SelectSubscriptionNonprofit-submitButton-padding":"10px 30px",...u("--beam-SelectSubscriptionNonprofit-title",{fontSize:"20px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",color:"#0a323c"}),...u("--beam-SelectSubscriptionNonprofit-descriptionPrefix",{marginTop:"3px",color:"#2f302d",fontSize:"14px",fontWeight:"bold",fontStyle:"normal",lineHeight:"138%"}),...u("--beam-SelectSubscriptionNonprofit-description",{marginTop:"3px",color:"#2f302d",fontSize:"14px",fontStyle:"normal",lineHeight:"138%"}),"--beam-SelectSubscriptionNonprofit-details-cause-letterSpacing":"0.36px",...u("--beam-SelectSubscriptionNonprofit-details-cause",{fontSize:"12px",fontWeight:"bold",color:"#0a323c",fontStyle:"normal",lineHeight:"120%"}),...u("--beam-SelectSubscriptionNonprofit-details-description",{fontSize:"12px",marginTop:"5px",fontStyle:"normal",lineHeight:"140%",fontWeight:"400"}),"--beam-SelectSubscriptionNonprofit-details-fundingProgress-marginTop":"7px",...u("--beam-SelectSubscriptionNonprofit-details-funding-progress-label",{fontSize:"12px",color:"#666666",fontWeight:"400",fontStyle:"normal"}),"--beam-SelectSubscriptionNonprofit-stickyFooter-boxShadow":"0px -20px 20px 0px rgba(0, 0, 0, 0.04)","--beam-SelectSubscriptionNonprofit-stickyFooter-padding":"15px 0px 45px","--beam-SelectSubscriptionNonprofit-stickyFooter-backgroundColor":"white","--beam-SelectSubscriptionNonprofit-stickyFooter-marginLeft":"-15px","--beam-SelectSubscriptionNonprofit-stickyFooter-marginRight":"-15px","--beam-SelectSubscriptionNonprofit-stickyFooter-width":"auto"},t=this.nonprofitListDataController?.data?.config?.web?.theme||{},e={...o,...t};return Object.assign(Object.create({toCSS(){return z(this)}}),e)}render(){const{selectedNonprofitId:o}=this,{data:t,loading:e}=this.nonprofitListDataController;if(e&&!t)return H();if(this.nonprofitListDataController.error)return this.debug?N({error:this.nonprofitListDataController.error}):"";if(this.subscriptionUpdateDataController.error&&this.debug)return N({error:this.subscriptionUpdateDataController.error});if(t==null)return this.debug?N({error:new K("No data")}):"";const i=t?.nonprofits||[],b=i.find(r=>r.nonprofit.id===o)||null,a=this.cssVariables["--beam-SelectSubscriptionNonprofit-cardStyle"],f=a==="'icon'"||a==="'selected_icon'";return S`
|
|
1
|
+
import{f as I,g as p,t as D,h as L,y as S,u as M,q as x,m as F}from"../chunks/lit-3QHn3fwl.esm.js";import{d as P}from"../chunks/lodash-P8OIs-at.esm.js";import{D as A,f as U,u as W,S as R}from"../chunks/routes-8O1TW_Zi.esm.js";import{u as d,A as k,d as u,a as z,_ as N,i as l}from"../chunks/localize-SsJbTmMj.esm.js";import{p as E}from"../chunks/progress-bar-HVG_n8_6.esm.js";import{c as _,d as j,e as v}from"../chunks/enforce-config-er6B5Gkj.esm.js";import{_ as H}from"../chunks/loading-template-mLjOGXMj.esm.js";import{makeApiKeyHeader as C}from"../utils/makeApiKeyHeader.js";import{B as K}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import{createScopedLocalStorage as O}from"../utils/local-storage.js";import{c as Y}from"../chunks/css-card-grid-r6wxRbPV.esm.js";import{_ as G}from"../chunks/checkbox-P2JYPqxl.esm.js";import{c as q}from"../chunks/events-_4nImo3u.esm.js";import"./beam-partner-logos.js";import"../utils/logger.js";const m={en:{ctaTitle:()=>"Choose Your Impact",ctaMessagePrefix:()=>" at no extra cost.",ctaMessage:({donationPercentage:n="1%"}={})=>`Choose a nonprofit and ${n} will be donated there for you with every order of your subscription,`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"},fr:{ctaTitle:()=>"Choose Your Impact",ctaMessagePrefix:()=>" at no extra cost.",ctaMessage:({donationPercentage:n="1%"}={})=>`Choose a nonprofit and ${n} will be donated there for you with every order of your subscription,`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"},de:{ctaTitle:()=>"Choose Your Impact",ctaMessagePrefix:()=>" at no extra cost.",ctaMessage:({donationPercentage:n="1%"}={})=>`Choose a nonprofit and ${n} will be donated there for you with every order of your subscription,`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"},es:{ctaTitle:()=>"Choose Your Impact",ctaMessagePrefix:()=>" at no extra cost.",ctaMessage:({donationPercentage:n="1%"}={})=>`Choose a nonprofit and ${n} will be donated there for you with every order of your subscription,`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"},it:{ctaTitle:()=>"Choose Your Impact",ctaMessagePrefix:()=>" at no extra cost.",ctaMessage:({donationPercentage:n="1%"}={})=>`Choose a nonprofit and ${n} will be donated there for you with every order of your subscription,`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"},pl:{ctaTitle:()=>"Choose Your Impact",ctaMessagePrefix:()=>" at no extra cost.",ctaMessage:({donationPercentage:n="1%"}={})=>`Choose a nonprofit and ${n} will be donated there for you with every order of your subscription,`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"}};var V=Object.defineProperty,J=Object.getOwnPropertyDescriptor,c=(n,o,t,e)=>{for(var i=e>1?void 0:e?J(o,t):o,b=n.length-1,a;b>=0;b--)(a=n[b])&&(i=(e?a(o,t,i):a(i))||i);return e&&i&&V(o,t,i),i};const Q=2*60*60*1e3;class s extends L{constructor(){super(...arguments),this.baseUrl=A,this.lang="en",this.debug=!1,this.isMobile=window.innerWidth<768,this.getChainNonprofits=async()=>{v(["apiKey","subscriptionId","storeId"],this);const o=await U({baseUrl:this.baseUrl,headers:C(this.apiKey),requestBody:{storeId:this.storeId,postalCode:this.postalCode,countryCode:this.countryCode,widgetName:"select-subscription-nonprofit",version:"1.0.0",lang:this.configLang}});return this.localStorage.setItemJson("chainNonprofits",{createdAt:new Date,data:o}),o},this.updateNonprofitIdForSubscription=async({selectedNonprofitId:o})=>this.subscriptionId?(v(["apiKey","subscriptionId"],this),W({baseUrl:this.baseUrl,headers:C(this.apiKey),requestBody:{remoteSubscriptionId:this.subscriptionId,nonprofitId:o,selectionMethod:"dashboard"}})):null,this.nonprofitListDataController=new k(this,this.getChainNonprofits),this.subscriptionUpdateDataController=new k(this,this.updateNonprofitIdForSubscription),this.localStorage=O(this),this.makeHandleSelect=(o,t,e)=>async i=>{if(!this.allowChange)return;const b=this.selectedNonprofitId;if(i instanceof KeyboardEvent){let a=null;switch(i.key){case"ArrowUp":case"ArrowLeft":t===0?a=e[e.length-1]:a=e[t-1],i.preventDefault();break;case"ArrowRight":case"ArrowDown":t===e.length-1?a=e[0]:a=e[t+1],i.preventDefault();break;case"Enter":case" ":i.preventDefault();break;default:return}if(a){const f=this.renderRoot.querySelector(`[data-value="${a.nonprofit.id}"]`);f!==null&&(f.tabIndex=0,f.focus());return}}if(i.currentTarget instanceof HTMLElement){if(b===o)return;this.selectedNonprofitId=o}},this.handleSubmit=async()=>{const{selectedNonprofitId:o}=this;if(!this.allowSubmit||o==null)return;await this.subscriptionUpdateDataController.exec({selectedNonprofitId:o});const t=this.nonprofitListDataController?.data?.nonprofits.find(e=>e.nonprofit.id===o);this.dispatchEvent(new q({selectedNonprofitId:o,nonprofitName:t?.nonprofit.name}))},this.evaluateBreakPoints=P(()=>{this.isMobile=window.innerWidth<768},50,{maxWait:50,leading:!0})}get configLang(){return R[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.evaluateBreakPoints)}async firstUpdated(o){await this.restoreStateFromCache()}async updated(o){const t=["baseUrl","storeId","apiKey","countryCode","postalCode","lang"];for(const e of t)if(o.has(e)){await this.nonprofitListDataController.exec();break}}disconnectedCallback(){super.disconnectedCallback()}restoreStateFromCache(){v(["apiKey"],this);try{const{createdAt:o=0,data:t}=this.localStorage.getItemJson("chainNonprofits")||{};new Date(o).valueOf()+Q>new Date().valueOf()&&(this.nonprofitListDataController.data=t,this.nonprofitListDataController.loading=!1)}catch{}}get allowChange(){return this.subscriptionUpdateDataController.data==null&&!this.subscriptionUpdateDataController.loading}get allowSubmit(){return!!(this.selectedNonprofitId&&this.allowChange)}get cssVariables(){const o={...E,"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit","--beam-SelectSubscriptionNonprofit-maxWidth":"800px","--beam-SelectSubscriptionNonprofit-mobile-header-alignItems":"center","--beam-SelectSubscriptionNonprofit-desktop-header-alignItems":"center","--beam-SelectSubscriptionNonprofit-headerContainer-padding":"2px","--beam-SelectSubscriptionNonprofit-title-textAlign":"inherit","--beam-SelectSubscriptionNonprofit-description-textAlign":"center","--beam-SelectSubscriptionNonprofit-desktop-description-width":"80%","--beam-SelectSubscriptionNonprofit-mobile-description-width":"90%","--beam-SelectSubscriptionNonprofit-options-marginTop":"10px","--beam-SelectSubscriptionNonprofit-options-padding":"10px","--beam-SelectSubscriptionNonprofit-options-borderWidth":"1px","--beam-SelectSubscriptionNonprofit-options-borderColor":"transparent","--beam-SelectSubscriptionNonprofit-options-borderRadius":"8px","--beam-SelectSubscriptionNonprofit-options-backgroundColor":"#F9FBFB","--beam-SelectSubscriptionNonprofit-option-padding":"15px","--beam-SelectSubscriptionNonprofit-options-hover-backgroundColor":"#e1f1ee","--beam-SelectSubscriptionNonprofit-options-hover-borderWidth":"1px","--beam-SelectSubscriptionNonprofit-options-hover-borderColor":"#e1f1ee","--beam-SelectSubscriptionNonprofit-options-selected-borderWidth":"1px","--beam-SelectSubscriptionNonprofit-options-selected-borderColor":"#e1f1ee","--beam-SelectSubscriptionNonprofit-options-selected-backgroundColor":"#e1f1ee","--beam-SelectSubscriptionNonprofit-options-gap":"20px","--beam-SelectSubscriptionNonprofit-options-minWidth":"250px","--beam-SelectSubscriptionNonprofit-options-columnCount":"2","--beam-SelectSubscriptionNonprofit-options-icon-borderRadius":"4px","--beam-SelectSubscriptionNonprofit-options-icon-padding":"10px","--beam-SelectSubscriptionNonprofit-options-image-borderRadius":"4px","--beam-SelectSubscriptionNonprofit-cardIconContainer-height":"100%","--beam-SelectSubscriptionNonprofit-iconBackground-width":"50px","--beam-SelectSubscriptionNonprofit-iconBackground-height":"50px","--beam-SelectSubscriptionNonprofit-iconBackground-borderRadius":"50%","--beam-SelectSubscriptionNonprofit-iconBackground-background":"#0a323c","--beam-SelectSubscriptionNonprofit-icon-height":"50px","--beam-SelectSubscriptionNonprofit-checkmark-backgroundColor":"transparent","--beam-SelectSubscriptionNonprofit-checkmark-color":"transparent","--beam-SelectSubscriptionNonprofit-checkmark-borderColor":"#0A323C","--beam-SelectSubscriptionNonprofit-checkmark-selected-color":"#fff","--beam-SelectSubscriptionNonprofit-checkmark-selected-backgroundColor":"#0A323C","--beam-SelectSubscriptionNonprofit-checkmark-selected-borderColor":"#0A323C","--beam-SelectSubscriptionNonprofit-checkmark-hover-color":"#fff","--beam-SelectSubscriptionNonprofit-checkmark-hover-backgroundColor":"#0A323C","--beam-SelectSubscriptionNonprofit-checkmark-hover-borderColor":"#0A323C","--beam-SelectSubscriptionNonprofit-cardStyle":"'selected_icon'","--beam-SelectSubscriptionNonprofit-submitButton-color":"#fff","--beam-SelectSubscriptionNonprofit-submitButton-hover-color":"#fff","--beam-SelectSubscriptionNonprofit-submitButton-disabled-color":"#fff","--beam-SelectSubscriptionNonprofit-submitButton-backgroundColor":"#0A323C","--beam-SelectSubscriptionNonprofit-submitButton-hover-backgroundColor":"#222","--beam-SelectSubscriptionNonprofit-submitButton-disabled-backgroundColor":"#767676","--beam-SelectSubscriptionNonprofit-submitButton-borderColor":"#333","--beam-SelectSubscriptionNonprofit-submitButton-hover-borderColor":"#222","--beam-SelectSubscriptionNonprofit-submitButton-disabled-borderColor":"#767676","--beam-SelectSubscriptionNonprofit-submitButton-fontSize":"14px","--beam-SelectSubscriptionNonprofit-submitButton-fontWeight":"inherit","--beam-SelectSubscriptionNonprofit-submitButton-fontFamily":"inherit","--beam-SelectSubscriptionNonprofit-submitButton-textTransform":"none","--beam-SelectSubscriptionNonprofit-submitButton-borderRadius":"30px","--beam-SelectSubscriptionNonprofit-submitButton-padding":"10px 30px",...u("--beam-SelectSubscriptionNonprofit-title",{fontSize:"20px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",color:"#0a323c"}),...u("--beam-SelectSubscriptionNonprofit-descriptionPrefix",{marginTop:"3px",color:"#2f302d",fontSize:"14px",fontWeight:"bold",fontStyle:"normal",lineHeight:"138%"}),...u("--beam-SelectSubscriptionNonprofit-description",{marginTop:"3px",color:"#2f302d",fontSize:"14px",fontStyle:"normal",lineHeight:"138%"}),"--beam-SelectSubscriptionNonprofit-details-cause-letterSpacing":"0.36px",...u("--beam-SelectSubscriptionNonprofit-details-cause",{fontSize:"12px",fontWeight:"bold",color:"#0a323c",fontStyle:"normal",lineHeight:"120%"}),...u("--beam-SelectSubscriptionNonprofit-details-description",{fontSize:"12px",marginTop:"5px",fontStyle:"normal",lineHeight:"140%",fontWeight:"400"}),"--beam-SelectSubscriptionNonprofit-details-fundingProgress-marginTop":"7px",...u("--beam-SelectSubscriptionNonprofit-details-funding-progress-label",{fontSize:"12px",color:"#666666",fontWeight:"400",fontStyle:"normal"}),"--beam-SelectSubscriptionNonprofit-stickyFooter-boxShadow":"0px -20px 20px 0px rgba(0, 0, 0, 0.04)","--beam-SelectSubscriptionNonprofit-stickyFooter-padding":"15px 0px 45px","--beam-SelectSubscriptionNonprofit-stickyFooter-backgroundColor":"white","--beam-SelectSubscriptionNonprofit-stickyFooter-marginLeft":"-15px","--beam-SelectSubscriptionNonprofit-stickyFooter-marginRight":"-15px","--beam-SelectSubscriptionNonprofit-stickyFooter-width":"auto"},t=this.nonprofitListDataController?.data?.config?.web?.theme||{},e={...o,...t};return Object.assign(Object.create({toCSS(){return z(this)}}),e)}render(){const{selectedNonprofitId:o}=this,{data:t,loading:e}=this.nonprofitListDataController;if(e&&!t)return H();if(this.nonprofitListDataController.error)return this.debug?N({error:this.nonprofitListDataController.error}):"";if(this.subscriptionUpdateDataController.error&&this.debug)return N({error:this.subscriptionUpdateDataController.error});if(t==null)return this.debug?N({error:new K("No data")}):"";const i=t?.nonprofits||[],b=i.find(r=>r.nonprofit.id===o)||null,a=this.cssVariables["--beam-SelectSubscriptionNonprofit-cardStyle"],f=a==="'icon'"||a==="'selected_icon'";return S`
|
|
2
2
|
<style>
|
|
3
3
|
:host {
|
|
4
4
|
${this.cssVariables.toCSS()}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { waitForElement } from '../utils/wait-for-element.js';
|
|
2
2
|
export { initNetworkListeners } from '../utils/network-listeners.js';
|
|
3
|
-
export { e as events } from '../chunks/events-
|
|
4
|
-
export { T as TBeamOrderPageParams, a as addBeamAttributesToCart, g as getCurrentCart, r as registerCartIntegration, s as showBeamOrderPageWidgets, t as trackCart } from '../chunks/order-page-
|
|
5
|
-
import '../chunks/cart-contents-
|
|
6
|
-
import '../chunks/openapi-spec
|
|
3
|
+
export { e as events } from '../chunks/events-MfRTtTVm.esm.js';
|
|
4
|
+
export { T as TBeamOrderPageParams, a as addBeamAttributesToCart, g as getCurrentCart, r as registerCartIntegration, s as showBeamOrderPageWidgets, t as trackCart } from '../chunks/order-page-LvE0Otsn.esm.js';
|
|
5
|
+
import '../chunks/cart-contents-WB1BF6hG.esm.js';
|
|
6
|
+
import '../chunks/openapi-spec-GGEBbqAJ.esm.js';
|
|
7
7
|
import '../chunks/types-zbTZ8-KP.esm.js';
|
|
8
8
|
import 'lodash';
|
|
9
|
-
import '../chunks/update-cart-
|
|
9
|
+
import '../chunks/update-cart-tjLR7pMx.esm.js';
|
|
10
10
|
import '../chunks/types-aju0qrRe.esm.js';
|
|
11
11
|
import './post-purchase.js';
|
|
12
12
|
import 'lit';
|
|
@@ -17,7 +17,7 @@ import '../chunks/promo-pill-label-3bA1z-la.esm.js';
|
|
|
17
17
|
import './beam-partner-logos.js';
|
|
18
18
|
import './impact-overview.js';
|
|
19
19
|
import '../chunks/share-button-hDn8fnBI.esm.js';
|
|
20
|
-
import '../chunks/routes-
|
|
20
|
+
import '../chunks/routes-wCCYf_uA.esm.js';
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* @deprecated
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{waitForElement as t}from"../utils/wait-for-element.esm.js";import{getCookieMap as r,getCookieValue as o}from"../utils/cookies.esm.js";import{initNetworkListeners as U}from"../utils/network-listeners.esm.js";import{e as j}from"../chunks/events-_4nImo3u.esm.js";import{
|
|
1
|
+
import{waitForElement as t}from"../utils/wait-for-element.esm.js";import{getCookieMap as r,getCookieValue as o}from"../utils/cookies.esm.js";import{initNetworkListeners as U}from"../utils/network-listeners.esm.js";import{e as j}from"../chunks/events-_4nImo3u.esm.js";import{f as y,h as z,M as D,s as G,U as H}from"../chunks/order-page-HVySSia7.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../utils/logger.esm.js";import"../utils/local-storage.esm.js";import"../utils/memoize-last.esm.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../chunks/update-cart-x_iZyHUC.esm.js";import"../chunks/routes-SVTSfe0m.esm.js";import"../utils/remote-session.esm.js";import"./post-purchase.esm.js";import"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/enforce-config-HksNiOMu.esm.js";import"../chunks/localize-IRs8JglT.esm.js";import"./redeem-transaction.esm.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"../chunks/promo-pill-label-3Xtr5ALT.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"./beam-partner-logos.esm.js";import"../chunks/loading-template-mLjOGXMj.esm.js";import"../chunks/css-card-grid-r6wxRbPV.esm.js";import"../chunks/checkbox-P2JYPqxl.esm.js";import"./impact-overview.esm.js";import"../chunks/shoelace-components-5jajO5Gh.esm.js";import"../chunks/share-button-MIfALwo7.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/responsive-KbDsZM6S.esm.js";const i={waitForElement:t,getCookieMap:r,getCookieValue:o};export{y as addBeamAttributesToCart,j as events,z as getCurrentCart,U as initNetworkListeners,D as registerCartIntegration,G as showBeamOrderPageWidgets,H as trackCart,i as utils};
|
|
2
2
|
//# sourceMappingURL=shopify.esm.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{waitForElement as t}from"../utils/wait-for-element.js";import{getCookieMap as r,getCookieValue as o}from"../utils/cookies.js";import{initNetworkListeners as U}from"../utils/network-listeners.js";import{e as j}from"../chunks/events-_4nImo3u.esm.js";import{
|
|
1
|
+
import{waitForElement as t}from"../utils/wait-for-element.js";import{getCookieMap as r,getCookieValue as o}from"../utils/cookies.js";import{initNetworkListeners as U}from"../utils/network-listeners.js";import{e as j}from"../chunks/events-_4nImo3u.esm.js";import{f as y,h as z,M as D,s as G,U as H}from"../chunks/order-page-V0lMZwIk.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../utils/logger.js";import"../utils/local-storage.js";import"../utils/memoize-last.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../chunks/update-cart-iH40XbBA.esm.js";import"../chunks/routes-8O1TW_Zi.esm.js";import"../utils/remote-session.js";import"./post-purchase.js";import"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/enforce-config-er6B5Gkj.esm.js";import"../chunks/localize-SsJbTmMj.esm.js";import"./redeem-transaction.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"../chunks/promo-pill-label-3Xtr5ALT.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"./beam-partner-logos.js";import"../chunks/loading-template-mLjOGXMj.esm.js";import"../chunks/css-card-grid-r6wxRbPV.esm.js";import"../chunks/checkbox-P2JYPqxl.esm.js";import"./impact-overview.js";import"../chunks/shoelace-components-fjdtu7FL.esm.js";import"../chunks/share-button-SBb1jPC2.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/responsive-KbDsZM6S.esm.js";const i={waitForElement:t,getCookieMap:r,getCookieValue:o};export{y as addBeamAttributesToCart,j as events,z as getCurrentCart,U as initNetworkListeners,D as registerCartIntegration,G as showBeamOrderPageWidgets,H as trackCart,i as utils};
|
|
2
2
|
//# sourceMappingURL=shopify.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{f as m,g as
|
|
1
|
+
import{f as m,g as s,t as n,h as g,y as b}from"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"../chunks/shoelace-components-5jajO5Gh.esm.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"./beam-partner-logos.esm.js";import{c as f,d as y,e as u}from"../chunks/enforce-config-HksNiOMu.esm.js";import{D as w,S as x,W as I,g as S}from"../chunks/routes-SVTSfe0m.esm.js";import{_ as U}from"../chunks/loading-template-mLjOGXMj.esm.js";import{u as p,s as r}from"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.esm.js";var v=Object.defineProperty,k=Object.getOwnPropertyDescriptor,i=(c,t,a,l)=>{for(var o=l>1?void 0:l?k(t,a):t,h=c.length-1,d;h>=0;h--)(d=c[h])&&(o=(l?d(t,a,o):d(o))||o);return l&&o&&v(t,a,o),o};class e extends g{constructor(){super(...arguments),this.baseUrl=w,this.lang="en",this.debug=!1,this.brandName=null,this.shareImageUrl=null,this.isMobile=!1,this.windowResized=!1,this.checkViewport=()=>{this.windowResized=window.innerWidth<=768}}get configLang(){return x[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.checkViewport),this.checkViewport()}disconnectedCallback(){window.removeEventListener("resize",this.checkViewport),super.disconnectedCallback()}async fetchImpactData(){u(["apiKey","storeId","nonprofitId"],this);try{return await S({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{storeId:this.storeId,personalImpactLimit:0,nonprofitId:this.nonprofitId,widgetName:I.community_impact,version:"1.0.0",lang:this.configLang,transactionId:this.transactionId??void 0}})}catch(t){throw this.debug&&console.error("Failed to fetch impact data",t),t}}async updateImpactData(){try{const t=await this.fetchImpactData();if(t&&(this.brandName=t.chain.name,this.shareImageUrl=t.promoAssetUrl||t.personalImpactAssetUrl,this.shareImageUrl)){const a=await p(this.shareImageUrl);this.file=a,this.dataUrl=URL.createObjectURL(a)}}catch(t){this.debug&&console.error("Error updating impact data:",t)}}async firstUpdated(){await this.updateImpactData(),this.isMobile=/Mobi|Android/i.test(navigator.userAgent)||"ontouchstart"in window||navigator.maxTouchPoints>0}async openSystemShareSheet(t){if(t)try{const a=await p(t);navigator.share&&this.brandName&&await navigator.share({files:[a],title:r[this.lang].impactShareTitle(),text:r[this.lang].impactShareText({brandName:this.brandName})})}catch(a){this.debug&&console.error("Failed to open share sheet",a)}}async handleClickCopy(){if(this.file)try{await navigator.clipboard.write([new ClipboardItem({"image/png":this.file})])}catch(t){this.debug&&console.error("Failed to copy image to clipboard:",t)}}handleClickDownload(t){const a=t.currentTarget;this.isMobile&&this.shareImageUrl?(t.preventDefault(),this.openSystemShareSheet(this.shareImageUrl)):this.dataUrl&&(a.href=this.dataUrl,a.download=r[this.lang].impactShareTitle())}render(){return!this.brandName||!this.shareImageUrl||!this.dataUrl?U():b`
|
|
2
2
|
<div class="share-container ${this.windowResized||this.isMobile?"mobile":"desktop"}">
|
|
3
3
|
<h2 class="share-title">${r[this.lang].impactShareTitle()}</h2>
|
|
4
4
|
<p class="share-text">${r[this.lang].impactShareText({brandName:this.brandName})}</p>
|
|
@@ -166,5 +166,5 @@ import{f as m,g as n,t as l,h as g,y as b}from"../chunks/lit-3QHn3fwl.esm.js";im
|
|
|
166
166
|
margin: 5px 0;
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
|
-
`],i([
|
|
169
|
+
`],i([s({type:String})],e.prototype,"apiKey",2),i([s({type:Number})],e.prototype,"storeId",2),i([s({type:Number})],e.prototype,"nonprofitId",2),i([s({type:String})],e.prototype,"baseUrl",2),i([s({type:String})],e.prototype,"lang",2),i([s({type:Boolean})],e.prototype,"debug",2),i([s({type:String})],e.prototype,"transactionId",2),i([n()],e.prototype,"brandName",2),i([n()],e.prototype,"shareImageUrl",2),i([n()],e.prototype,"dataUrl",2),i([n()],e.prototype,"file",2),i([n()],e.prototype,"isMobile",2),i([n()],e.prototype,"windowResized",2),y(e);export{e as BeamSocialShare};
|
|
170
170
|
//# sourceMappingURL=social-share.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social-share.esm.js","sources":["../../src/components/social-share/index.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport \"@shoelace-style/shoelace/dist/components/icon/icon.js\";\nimport \"../../shared/components/_share-dialog-dependencies\";\nimport \"../../shared/components/progress-bar\";\nimport \"../beam-partner-logos\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { TNumericId } from \"../../shared/types\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { strings } from \"../../shared/components/strings/share-button\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { urlToFile } from \"../../shared/files\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: TNumericId;\n nonprofitId: TNumericId;\n};\n\nexport class BeamSocialShare extends LitElement {\n static tagName = \"beam-social-share\";\n\n @property({ type: String }) public apiKey?: RequiredConfig[\"apiKey\"];\n @property({ type: Number }) storeId?: RequiredConfig[\"storeId\"];\n @property({ type: Number }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n @property({ type: String }) public baseUrl = DEFAULT_BASE_URL;\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n @property({ type: Boolean }) public debug = false;\n\n @state() private brandName: string | null = null;\n @state() private shareImageUrl: string | null = null;\n @state() private dataUrl?: string;\n @state() private file?: File;\n @state() private isMobile = false;\n @state() private windowResized = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.checkViewport);\n this.checkViewport();\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.checkViewport);\n super.disconnectedCallback();\n }\n\n checkViewport = () => {\n this.windowResized = window.innerWidth <= 768;\n };\n\n private async fetchImpactData() {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\", \"nonprofitId\"], this)) {\n throw new MissingConfig();\n }\n try {\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: { authorization: `Api-Key ${this.apiKey}` },\n queryParams: {\n storeId: this.storeId,\n personalImpactLimit: 0,\n nonprofitId: this.nonprofitId,\n widgetName: WIDGET_NAMES.community_impact,\n version: \"1.0.0\",\n lang: this.configLang,\n },\n });\n return res;\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to fetch impact data\", error);\n }\n throw error;\n }\n }\n\n // Updates component state with fetched impact data\n private async updateImpactData() {\n try {\n const data = await this.fetchImpactData();\n if (data) {\n this.brandName = data.chain.name;\n const communityImpact = data.community[0];\n this.shareImageUrl = communityImpact?.share.imageUrl;\n\n if (this.shareImageUrl) {\n const file = await urlToFile(this.shareImageUrl);\n this.file = file;\n this.dataUrl = URL.createObjectURL(file);\n }\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Error updating impact data:\", error);\n }\n }\n }\n\n async firstUpdated() {\n await this.updateImpactData();\n this.isMobile =\n /Mobi|Android/i.test(navigator.userAgent) || \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n }\n\n private async openSystemShareSheet(imageUrl: string) {\n if (!imageUrl) return;\n\n try {\n const file = await urlToFile(imageUrl);\n if (navigator.share && this.brandName) {\n await navigator.share({\n files: [file],\n title: strings[this.lang].impactShareTitle(),\n text: strings[this.lang].impactShareText({ brandName: this.brandName }),\n });\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to open share sheet\", error);\n }\n }\n }\n\n private async handleClickCopy() {\n if (this.file) {\n try {\n await navigator.clipboard.write([new ClipboardItem({ \"image/png\": this.file })]);\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to copy image to clipboard:\", error);\n }\n }\n }\n }\n\n private handleClickDownload(event: Event) {\n const target = event.currentTarget as HTMLAnchorElement;\n\n if (this.isMobile && this.shareImageUrl) {\n event.preventDefault();\n this.openSystemShareSheet(this.shareImageUrl);\n } else if (this.dataUrl) {\n target.href = this.dataUrl;\n target.download = strings[this.lang].impactShareTitle();\n }\n }\n\n render() {\n if (!this.brandName || !this.shareImageUrl || !this.dataUrl) {\n return _loading();\n }\n\n return html`\n <div class=\"share-container ${this.windowResized || this.isMobile ? \"mobile\" : \"desktop\"}\">\n <h2 class=\"share-title\">${strings[this.lang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.lang].impactShareText({ brandName: this.brandName })}</p>\n <img src=\"${this.shareImageUrl}\" alt=\"${strings[this.lang].impactShareTitle()}\" class=\"share-image\" />\n <div class=\"share-actions\">\n <button class=\"plain-button button share-action-button\" @click=\"${this.handleClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.lang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareCopy()}</div>\n </button>\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.lang].impactShareTitle()}\"\n href=\"${this.dataUrl}\"\n @click=\"${this.handleClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.lang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n `;\n }\n\n static styles = [\n cssReset,\n css`\n @font-face {\n font-family: \"Mabry-Bold\";\n src: url(\"../../../assets/fonts/mabry-bold.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n @font-face {\n font-family: \"Mabry-Medium\";\n src: url(\"../../../assets/fonts/mabry-medium.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n :host {\n align-items: center;\n justify-content: center;\n display: flex;\n box-sizing: border-box;\n width: 100%;\n }\n\n .share-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 700px;\n text-align: center;\n }\n\n .share-container.mobile {\n padding: 1rem;\n max-width: 100%;\n }\n\n .share-title {\n font-family: \"Mabry-Bold\", sans-serif;\n font-size: 2.5rem;\n font-weight: bold;\n word-break: break-word;\n margin: 10px 0;\n }\n\n .share-title.mobile {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1.25rem;\n line-height: 1.4;\n word-break: break-word;\n margin: 10px 0;\n max-width: 500px;\n }\n\n .share-text.mobile {\n font-size: 1rem;\n }\n\n .share-image {\n border-radius: 8px;\n width: 100%;\n max-width: 300px;\n height: auto;\n display: block;\n margin: 20px auto;\n }\n\n .share-actions {\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 10px;\n align-items: center;\n margin: 20px 0;\n }\n\n .share-actions.mobile {\n flex-direction: column;\n }\n\n .share-action-button {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 10px 20px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #fff;\n text-decoration: none;\n color: #333;\n cursor: pointer;\n transition: background-color 0.3s, border-color 0.3s;\n }\n\n .share-action-button:hover {\n background-color: #f0f0f0;\n border-color: #bbb;\n }\n\n .share-action-icon {\n font-size: 1.25rem;\n margin-right: 8px;\n }\n\n .share-action-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1rem;\n line-height: 1.4;\n margin-top: 5px;\n }\n\n @media (max-width: 600px) {\n .share-title {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-size: 1rem;\n }\n\n .share-image {\n max-width: 240px;\n }\n\n .share-actions {\n flex-direction: row;\n width: 50%;\n margin: 10px 0;\n }\n\n .share-action-button {\n width: 100%;\n margin: 5px 0;\n }\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamSocialShare);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-social-share\": BeamSocialShare;\n }\n}\n"],"names":["BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","communityImpact","file","urlToFile","imageUrl","strings","event","target","_loading","html","cssReset","css","__decorateClass","property","state","defineCustomElement"],"mappings":"myBAwBO,MAAMA,UAAwBC,CAAW,CAAzC,aAMuB,CAAA,MAAA,GAAA,SAAA,EAAA,KAAO,QAAUC,EACjB,KAAO,KAAkB,KACxB,KAAO,MAAQ,GAEnC,KAAQ,UAA2B,KACnC,KAAQ,cAA+B,KAGvC,KAAQ,SAAW,GACnB,KAAQ,cAAgB,GAiBjC,KAAgB,cAAA,IAAM,CACpB,KAAK,cAAgB,OAAO,YAAc,GAC5C,CAAA,CAjBA,IAAI,YAAa,CACf,OAAOC,EAAoB,KAAK,IAAI,GAAK,IAC3C,CAEA,mBAAoB,CAClB,MAAM,kBAAkB,EACxB,OAAO,iBAAiB,SAAU,KAAK,aAAa,EACpD,KAAK,eACP,CAEA,sBAAuB,CACrB,OAAO,oBAAoB,SAAU,KAAK,aAAa,EACvD,MAAM,qBAAqB,CAC7B,CAMA,MAAc,iBAAkB,CACzBC,EAA8B,CAAC,SAAU,UAAW,aAAa,EAAG,IAAI,EAG7E,GAAI,CAaF,OAZY,MAAMC,EAAU,CAC1B,QAAS,KAAK,QACd,QAAS,CAAE,cAAe,WAAW,KAAK,MAAM,EAAG,EACnD,YAAa,CACX,QAAS,KAAK,QACd,oBAAqB,EACrB,YAAa,KAAK,YAClB,WAAYC,EAAa,iBACzB,QAAS,QACT,KAAM,KAAK,UACb,CACF,CAAC,CAEH,OAASC,EAAO,CACd,MAAI,KAAK,OACP,QAAQ,MAAM,8BAA+BA,CAAK,EAE9CA,CACR,CACF,CAGA,MAAc,kBAAmB,CAC/B,GAAI,CACF,MAAMC,EAAO,MAAM,KAAK,kBACxB,GAAIA,EAAM,CACR,KAAK,UAAYA,EAAK,MAAM,KAC5B,MAAMC,EAAkBD,EAAK,UAAU,CAAC,EAGxC,GAFA,KAAK,cAAgBC,GAAiB,MAAM,SAExC,KAAK,cAAe,CACtB,MAAMC,EAAO,MAAMC,EAAU,KAAK,aAAa,EAC/C,KAAK,KAAOD,EACZ,KAAK,QAAU,IAAI,gBAAgBA,CAAI,CACzC,CACF,CACF,OAASH,EAAO,CACV,KAAK,OACP,QAAQ,MAAM,8BAA+BA,CAAK,CAEtD,CACF,CAEA,MAAM,cAAe,CACnB,MAAM,KAAK,mBACX,KAAK,SACH,gBAAgB,KAAK,UAAU,SAAS,GAAK,iBAAkB,QAAU,UAAU,eAAiB,CACxG,CAEA,MAAc,qBAAqBK,EAAkB,CACnD,GAAKA,EAEL,GAAI,CACF,MAAMF,EAAO,MAAMC,EAAUC,CAAQ,EACjC,UAAU,OAAS,KAAK,WAC1B,MAAM,UAAU,MAAM,CACpB,MAAO,CAACF,CAAI,EACZ,MAAOG,EAAQ,KAAK,IAAI,EAAE,iBAAiB,EAC3C,KAAMA,EAAQ,KAAK,IAAI,EAAE,gBAAgB,CAAE,UAAW,KAAK,SAAU,CAAC,CACxE,CAAC,CAEL,OAASN,EAAO,CACV,KAAK,OACP,QAAQ,MAAM,6BAA8BA,CAAK,CAErD,CACF,CAEA,MAAc,iBAAkB,CAC9B,GAAI,KAAK,KACP,GAAI,CACF,MAAM,UAAU,UAAU,MAAM,CAAC,IAAI,cAAc,CAAE,YAAa,KAAK,IAAK,CAAC,CAAC,CAAC,CACjF,OAASA,EAAO,CACV,KAAK,OACP,QAAQ,MAAM,qCAAsCA,CAAK,CAE7D,CAEJ,CAEQ,oBAAoBO,EAAc,CACxC,MAAMC,EAASD,EAAM,cAEjB,KAAK,UAAY,KAAK,eACxBA,EAAM,iBACN,KAAK,qBAAqB,KAAK,aAAa,GACnC,KAAK,UACdC,EAAO,KAAO,KAAK,QACnBA,EAAO,SAAWF,EAAQ,KAAK,IAAI,EAAE,iBAAiB,EAE1D,CAEA,QAAS,CACP,MAAI,CAAC,KAAK,WAAa,CAAC,KAAK,eAAiB,CAAC,KAAK,QAC3CG,EAGFC,EAAAA;AAAAA,oCACyB,KAAK,eAAiB,KAAK,SAAW,SAAW,SAAS;AAAA,kCAC5DJ,EAAQ,KAAK,IAAI,EAAE,kBAAkB;AAAA,gCACvCA,EAAQ,KAAK,IAAI,EAAE,gBAAgB,CAAE,UAAW,KAAK,SAAU,CAAC,CAAC;AAAA,oBAC7E,KAAK,aAAa,UAAUA,EAAQ,KAAK,IAAI,EAAE,kBAAkB;AAAA;AAAA,4EAET,KAAK,eAAe;AAAA;AAAA;AAAA;AAAA,uBAIzEA,EAAQ,KAAK,IAAI,EAAE,iBAAiB;AAAA;AAAA;AAAA,6CAGdA,EAAQ,KAAK,IAAI,EAAE,iBAAiB;AAAA;AAAA;AAAA;AAAA,wBAIzDA,EAAQ,KAAK,IAAI,EAAE,kBAAkB;AAAA,oBACzC,KAAK,OAAO;AAAA,sBACV,KAAK,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,uBAKvBA,EAAQ,KAAK,IAAI,EAAE,qBAAqB;AAAA;AAAA;AAAA,6CAGlBA,EAAQ,KAAK,IAAI,EAAE,qBAAqB;AAAA;AAAA;AAAA;AAAA,KAKnF,CA+IF,CAzTab,EACJ,QAAU,oBADNA,EA4KJ,OAAS,CACdkB,EACAC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,KA0IF,EArTmCC,EAAA,CAAlCC,EAAS,CAAE,KAAM,MAAO,CAAC,CAHf,EAAArB,EAGwB,sBACPoB,EAAA,CAA3BC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EAJfrB,EAIiB,UAAA,UAAA,CAAA,EACAoB,EAAA,CAA3BC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EALfrB,EAKiB,UACOoB,cAAAA,CAAAA,EAAAA,EAAA,CAAlCC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EANfrB,EAMwB,UACAoB,UAAAA,CAAAA,EAAAA,EAAA,CAAlCC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EAPfrB,EAOwB,UACCoB,OAAAA,CAAAA,EAAAA,EAAA,CAAnCC,EAAS,CAAE,KAAM,OAAQ,CAAC,GARhBrB,EAQyB,UAAA,QAAA,CAAA,EAEnBoB,EAAA,CAAhBE,EAAAA,GAVUtB,EAUM,UAAA,YAAA,CAAA,EACAoB,EAAA,CAAhBE,EAXU,CAAA,EAAAtB,EAWM,UACAoB,gBAAAA,CAAAA,EAAAA,EAAA,CAAhBE,EAAM,CAAA,EAZItB,EAYM,UACAoB,UAAAA,CAAAA,EAAAA,EAAA,CAAhBE,EAAM,CAAA,EAbItB,EAaM,UAAA,OAAA,CAAA,EACAoB,EAAA,CAAhBE,GAdU,EAAAtB,EAcM,wBACAoB,EAAA,CAAhBE,EAfU,CAAA,EAAAtB,EAeM,UA4SnBuB,gBAAAA,CAAAA,EAAAA,EAAoBvB,CAAe"}
|
|
1
|
+
{"version":3,"file":"social-share.esm.js","sources":["../../src/components/social-share/index.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport \"@shoelace-style/shoelace/dist/components/icon/icon.js\";\nimport \"../../shared/components/_share-dialog-dependencies\";\nimport \"../../shared/components/progress-bar\";\nimport \"../beam-partner-logos\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { TNumericId } from \"../../shared/types\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { strings } from \"../../shared/components/strings/share-button\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { urlToFile } from \"../../shared/files\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: TNumericId;\n nonprofitId: TNumericId;\n};\n\nexport class BeamSocialShare extends LitElement {\n static tagName = \"beam-social-share\";\n\n @property({ type: String }) public apiKey?: RequiredConfig[\"apiKey\"];\n @property({ type: Number }) storeId?: RequiredConfig[\"storeId\"];\n @property({ type: Number }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n @property({ type: String }) public baseUrl = DEFAULT_BASE_URL;\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n @property({ type: Boolean }) public debug = false;\n @property({ type: String }) transactionId?: string;\n\n @state() private brandName: string | null = null;\n @state() private shareImageUrl: string | null = null;\n @state() private dataUrl?: string;\n @state() private file?: File;\n @state() private isMobile = false;\n @state() private windowResized = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.checkViewport);\n this.checkViewport();\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.checkViewport);\n super.disconnectedCallback();\n }\n\n checkViewport = () => {\n this.windowResized = window.innerWidth <= 768;\n };\n\n private async fetchImpactData() {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\", \"nonprofitId\"], this)) {\n throw new MissingConfig();\n }\n try {\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: { authorization: `Api-Key ${this.apiKey}` },\n queryParams: {\n storeId: this.storeId,\n personalImpactLimit: 0,\n nonprofitId: this.nonprofitId,\n widgetName: WIDGET_NAMES.community_impact,\n version: \"1.0.0\",\n lang: this.configLang,\n transactionId: this.transactionId ?? undefined,\n },\n });\n return res;\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to fetch impact data\", error);\n }\n throw error;\n }\n }\n\n // Updates component state with fetched impact data\n private async updateImpactData() {\n try {\n const data = await this.fetchImpactData();\n if (data) {\n this.brandName = data.chain.name;\n this.shareImageUrl = data.promoAssetUrl || data.personalImpactAssetUrl;\n\n if (this.shareImageUrl) {\n const file = await urlToFile(this.shareImageUrl);\n this.file = file;\n this.dataUrl = URL.createObjectURL(file);\n }\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Error updating impact data:\", error);\n }\n }\n }\n\n async firstUpdated() {\n await this.updateImpactData();\n this.isMobile =\n /Mobi|Android/i.test(navigator.userAgent) || \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n }\n\n private async openSystemShareSheet(imageUrl: string) {\n if (!imageUrl) return;\n\n try {\n const file = await urlToFile(imageUrl);\n if (navigator.share && this.brandName) {\n await navigator.share({\n files: [file],\n title: strings[this.lang].impactShareTitle(),\n text: strings[this.lang].impactShareText({ brandName: this.brandName }),\n });\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to open share sheet\", error);\n }\n }\n }\n\n private async handleClickCopy() {\n if (this.file) {\n try {\n await navigator.clipboard.write([new ClipboardItem({ \"image/png\": this.file })]);\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to copy image to clipboard:\", error);\n }\n }\n }\n }\n\n private handleClickDownload(event: Event) {\n const target = event.currentTarget as HTMLAnchorElement;\n\n if (this.isMobile && this.shareImageUrl) {\n event.preventDefault();\n this.openSystemShareSheet(this.shareImageUrl);\n } else if (this.dataUrl) {\n target.href = this.dataUrl;\n target.download = strings[this.lang].impactShareTitle();\n }\n }\n\n render() {\n if (!this.brandName || !this.shareImageUrl || !this.dataUrl) {\n return _loading();\n }\n\n return html`\n <div class=\"share-container ${this.windowResized || this.isMobile ? \"mobile\" : \"desktop\"}\">\n <h2 class=\"share-title\">${strings[this.lang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.lang].impactShareText({ brandName: this.brandName })}</p>\n <img src=\"${this.shareImageUrl}\" alt=\"${strings[this.lang].impactShareTitle()}\" class=\"share-image\" />\n <div class=\"share-actions\">\n <button class=\"plain-button button share-action-button\" @click=\"${this.handleClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.lang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareCopy()}</div>\n </button>\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.lang].impactShareTitle()}\"\n href=\"${this.dataUrl}\"\n @click=\"${this.handleClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.lang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n `;\n }\n\n static styles = [\n cssReset,\n css`\n @font-face {\n font-family: \"Mabry-Bold\";\n src: url(\"../../../assets/fonts/mabry-bold.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n @font-face {\n font-family: \"Mabry-Medium\";\n src: url(\"../../../assets/fonts/mabry-medium.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n :host {\n align-items: center;\n justify-content: center;\n display: flex;\n box-sizing: border-box;\n width: 100%;\n }\n\n .share-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 700px;\n text-align: center;\n }\n\n .share-container.mobile {\n padding: 1rem;\n max-width: 100%;\n }\n\n .share-title {\n font-family: \"Mabry-Bold\", sans-serif;\n font-size: 2.5rem;\n font-weight: bold;\n word-break: break-word;\n margin: 10px 0;\n }\n\n .share-title.mobile {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1.25rem;\n line-height: 1.4;\n word-break: break-word;\n margin: 10px 0;\n max-width: 500px;\n }\n\n .share-text.mobile {\n font-size: 1rem;\n }\n\n .share-image {\n border-radius: 8px;\n width: 100%;\n max-width: 300px;\n height: auto;\n display: block;\n margin: 20px auto;\n }\n\n .share-actions {\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 10px;\n align-items: center;\n margin: 20px 0;\n }\n\n .share-actions.mobile {\n flex-direction: column;\n }\n\n .share-action-button {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 10px 20px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #fff;\n text-decoration: none;\n color: #333;\n cursor: pointer;\n transition: background-color 0.3s, border-color 0.3s;\n }\n\n .share-action-button:hover {\n background-color: #f0f0f0;\n border-color: #bbb;\n }\n\n .share-action-icon {\n font-size: 1.25rem;\n margin-right: 8px;\n }\n\n .share-action-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1rem;\n line-height: 1.4;\n margin-top: 5px;\n }\n\n @media (max-width: 600px) {\n .share-title {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-size: 1rem;\n }\n\n .share-image {\n max-width: 240px;\n }\n\n .share-actions {\n flex-direction: row;\n width: 50%;\n margin: 10px 0;\n }\n\n .share-action-button {\n width: 100%;\n margin: 5px 0;\n }\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamSocialShare);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-social-share\": BeamSocialShare;\n }\n}\n"],"names":["BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","file","urlToFile","imageUrl","strings","event","target","_loading","html","cssReset","css","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{f as m,g as
|
|
1
|
+
import{f as m,g as s,t as n,h as g,y as b}from"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"../chunks/shoelace-components-fjdtu7FL.esm.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"./beam-partner-logos.js";import{c as f,d as y,e as u}from"../chunks/enforce-config-er6B5Gkj.esm.js";import{D as w,S as x,W as I,g as S}from"../chunks/routes-8O1TW_Zi.esm.js";import{_ as U}from"../chunks/loading-template-mLjOGXMj.esm.js";import{u as p,s as r}from"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.js";var v=Object.defineProperty,k=Object.getOwnPropertyDescriptor,i=(c,t,a,l)=>{for(var o=l>1?void 0:l?k(t,a):t,h=c.length-1,d;h>=0;h--)(d=c[h])&&(o=(l?d(t,a,o):d(o))||o);return l&&o&&v(t,a,o),o};class e extends g{constructor(){super(...arguments),this.baseUrl=w,this.lang="en",this.debug=!1,this.brandName=null,this.shareImageUrl=null,this.isMobile=!1,this.windowResized=!1,this.checkViewport=()=>{this.windowResized=window.innerWidth<=768}}get configLang(){return x[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.checkViewport),this.checkViewport()}disconnectedCallback(){window.removeEventListener("resize",this.checkViewport),super.disconnectedCallback()}async fetchImpactData(){u(["apiKey","storeId","nonprofitId"],this);try{return await S({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{storeId:this.storeId,personalImpactLimit:0,nonprofitId:this.nonprofitId,widgetName:I.community_impact,version:"1.0.0",lang:this.configLang,transactionId:this.transactionId??void 0}})}catch(t){throw this.debug&&console.error("Failed to fetch impact data",t),t}}async updateImpactData(){try{const t=await this.fetchImpactData();if(t&&(this.brandName=t.chain.name,this.shareImageUrl=t.promoAssetUrl||t.personalImpactAssetUrl,this.shareImageUrl)){const a=await p(this.shareImageUrl);this.file=a,this.dataUrl=URL.createObjectURL(a)}}catch(t){this.debug&&console.error("Error updating impact data:",t)}}async firstUpdated(){await this.updateImpactData(),this.isMobile=/Mobi|Android/i.test(navigator.userAgent)||"ontouchstart"in window||navigator.maxTouchPoints>0}async openSystemShareSheet(t){if(t)try{const a=await p(t);navigator.share&&this.brandName&&await navigator.share({files:[a],title:r[this.lang].impactShareTitle(),text:r[this.lang].impactShareText({brandName:this.brandName})})}catch(a){this.debug&&console.error("Failed to open share sheet",a)}}async handleClickCopy(){if(this.file)try{await navigator.clipboard.write([new ClipboardItem({"image/png":this.file})])}catch(t){this.debug&&console.error("Failed to copy image to clipboard:",t)}}handleClickDownload(t){const a=t.currentTarget;this.isMobile&&this.shareImageUrl?(t.preventDefault(),this.openSystemShareSheet(this.shareImageUrl)):this.dataUrl&&(a.href=this.dataUrl,a.download=r[this.lang].impactShareTitle())}render(){return!this.brandName||!this.shareImageUrl||!this.dataUrl?U():b`
|
|
2
2
|
<div class="share-container ${this.windowResized||this.isMobile?"mobile":"desktop"}">
|
|
3
3
|
<h2 class="share-title">${r[this.lang].impactShareTitle()}</h2>
|
|
4
4
|
<p class="share-text">${r[this.lang].impactShareText({brandName:this.brandName})}</p>
|
|
@@ -166,5 +166,5 @@ import{f as m,g as n,t as l,h as g,y as b}from"../chunks/lit-3QHn3fwl.esm.js";im
|
|
|
166
166
|
margin: 5px 0;
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
|
-
`],i([
|
|
169
|
+
`],i([s({type:String})],e.prototype,"apiKey",2),i([s({type:Number})],e.prototype,"storeId",2),i([s({type:Number})],e.prototype,"nonprofitId",2),i([s({type:String})],e.prototype,"baseUrl",2),i([s({type:String})],e.prototype,"lang",2),i([s({type:Boolean})],e.prototype,"debug",2),i([s({type:String})],e.prototype,"transactionId",2),i([n()],e.prototype,"brandName",2),i([n()],e.prototype,"shareImageUrl",2),i([n()],e.prototype,"dataUrl",2),i([n()],e.prototype,"file",2),i([n()],e.prototype,"isMobile",2),i([n()],e.prototype,"windowResized",2),y(e);export{e as BeamSocialShare};
|
|
170
170
|
//# sourceMappingURL=social-share.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social-share.js","sources":["../../src/components/social-share/index.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport \"@shoelace-style/shoelace/dist/components/icon/icon.js\";\nimport \"../../shared/components/_share-dialog-dependencies\";\nimport \"../../shared/components/progress-bar\";\nimport \"../beam-partner-logos\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { TNumericId } from \"../../shared/types\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { strings } from \"../../shared/components/strings/share-button\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { urlToFile } from \"../../shared/files\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: TNumericId;\n nonprofitId: TNumericId;\n};\n\nexport class BeamSocialShare extends LitElement {\n static tagName = \"beam-social-share\";\n\n @property({ type: String }) public apiKey?: RequiredConfig[\"apiKey\"];\n @property({ type: Number }) storeId?: RequiredConfig[\"storeId\"];\n @property({ type: Number }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n @property({ type: String }) public baseUrl = DEFAULT_BASE_URL;\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n @property({ type: Boolean }) public debug = false;\n\n @state() private brandName: string | null = null;\n @state() private shareImageUrl: string | null = null;\n @state() private dataUrl?: string;\n @state() private file?: File;\n @state() private isMobile = false;\n @state() private windowResized = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.checkViewport);\n this.checkViewport();\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.checkViewport);\n super.disconnectedCallback();\n }\n\n checkViewport = () => {\n this.windowResized = window.innerWidth <= 768;\n };\n\n private async fetchImpactData() {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\", \"nonprofitId\"], this)) {\n throw new MissingConfig();\n }\n try {\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: { authorization: `Api-Key ${this.apiKey}` },\n queryParams: {\n storeId: this.storeId,\n personalImpactLimit: 0,\n nonprofitId: this.nonprofitId,\n widgetName: WIDGET_NAMES.community_impact,\n version: \"1.0.0\",\n lang: this.configLang,\n },\n });\n return res;\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to fetch impact data\", error);\n }\n throw error;\n }\n }\n\n // Updates component state with fetched impact data\n private async updateImpactData() {\n try {\n const data = await this.fetchImpactData();\n if (data) {\n this.brandName = data.chain.name;\n const communityImpact = data.community[0];\n this.shareImageUrl = communityImpact?.share.imageUrl;\n\n if (this.shareImageUrl) {\n const file = await urlToFile(this.shareImageUrl);\n this.file = file;\n this.dataUrl = URL.createObjectURL(file);\n }\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Error updating impact data:\", error);\n }\n }\n }\n\n async firstUpdated() {\n await this.updateImpactData();\n this.isMobile =\n /Mobi|Android/i.test(navigator.userAgent) || \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n }\n\n private async openSystemShareSheet(imageUrl: string) {\n if (!imageUrl) return;\n\n try {\n const file = await urlToFile(imageUrl);\n if (navigator.share && this.brandName) {\n await navigator.share({\n files: [file],\n title: strings[this.lang].impactShareTitle(),\n text: strings[this.lang].impactShareText({ brandName: this.brandName }),\n });\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to open share sheet\", error);\n }\n }\n }\n\n private async handleClickCopy() {\n if (this.file) {\n try {\n await navigator.clipboard.write([new ClipboardItem({ \"image/png\": this.file })]);\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to copy image to clipboard:\", error);\n }\n }\n }\n }\n\n private handleClickDownload(event: Event) {\n const target = event.currentTarget as HTMLAnchorElement;\n\n if (this.isMobile && this.shareImageUrl) {\n event.preventDefault();\n this.openSystemShareSheet(this.shareImageUrl);\n } else if (this.dataUrl) {\n target.href = this.dataUrl;\n target.download = strings[this.lang].impactShareTitle();\n }\n }\n\n render() {\n if (!this.brandName || !this.shareImageUrl || !this.dataUrl) {\n return _loading();\n }\n\n return html`\n <div class=\"share-container ${this.windowResized || this.isMobile ? \"mobile\" : \"desktop\"}\">\n <h2 class=\"share-title\">${strings[this.lang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.lang].impactShareText({ brandName: this.brandName })}</p>\n <img src=\"${this.shareImageUrl}\" alt=\"${strings[this.lang].impactShareTitle()}\" class=\"share-image\" />\n <div class=\"share-actions\">\n <button class=\"plain-button button share-action-button\" @click=\"${this.handleClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.lang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareCopy()}</div>\n </button>\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.lang].impactShareTitle()}\"\n href=\"${this.dataUrl}\"\n @click=\"${this.handleClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.lang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n `;\n }\n\n static styles = [\n cssReset,\n css`\n @font-face {\n font-family: \"Mabry-Bold\";\n src: url(\"../../../assets/fonts/mabry-bold.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n @font-face {\n font-family: \"Mabry-Medium\";\n src: url(\"../../../assets/fonts/mabry-medium.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n :host {\n align-items: center;\n justify-content: center;\n display: flex;\n box-sizing: border-box;\n width: 100%;\n }\n\n .share-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 700px;\n text-align: center;\n }\n\n .share-container.mobile {\n padding: 1rem;\n max-width: 100%;\n }\n\n .share-title {\n font-family: \"Mabry-Bold\", sans-serif;\n font-size: 2.5rem;\n font-weight: bold;\n word-break: break-word;\n margin: 10px 0;\n }\n\n .share-title.mobile {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1.25rem;\n line-height: 1.4;\n word-break: break-word;\n margin: 10px 0;\n max-width: 500px;\n }\n\n .share-text.mobile {\n font-size: 1rem;\n }\n\n .share-image {\n border-radius: 8px;\n width: 100%;\n max-width: 300px;\n height: auto;\n display: block;\n margin: 20px auto;\n }\n\n .share-actions {\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 10px;\n align-items: center;\n margin: 20px 0;\n }\n\n .share-actions.mobile {\n flex-direction: column;\n }\n\n .share-action-button {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 10px 20px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #fff;\n text-decoration: none;\n color: #333;\n cursor: pointer;\n transition: background-color 0.3s, border-color 0.3s;\n }\n\n .share-action-button:hover {\n background-color: #f0f0f0;\n border-color: #bbb;\n }\n\n .share-action-icon {\n font-size: 1.25rem;\n margin-right: 8px;\n }\n\n .share-action-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1rem;\n line-height: 1.4;\n margin-top: 5px;\n }\n\n @media (max-width: 600px) {\n .share-title {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-size: 1rem;\n }\n\n .share-image {\n max-width: 240px;\n }\n\n .share-actions {\n flex-direction: row;\n width: 50%;\n margin: 10px 0;\n }\n\n .share-action-button {\n width: 100%;\n margin: 5px 0;\n }\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamSocialShare);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-social-share\": BeamSocialShare;\n }\n}\n"],"names":["BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","communityImpact","file","urlToFile","imageUrl","strings","event","target","_loading","html","cssReset","css","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"social-share.js","sources":["../../src/components/social-share/index.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport \"@shoelace-style/shoelace/dist/components/icon/icon.js\";\nimport \"../../shared/components/_share-dialog-dependencies\";\nimport \"../../shared/components/progress-bar\";\nimport \"../beam-partner-logos\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { TNumericId } from \"../../shared/types\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { strings } from \"../../shared/components/strings/share-button\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { urlToFile } from \"../../shared/files\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: TNumericId;\n nonprofitId: TNumericId;\n};\n\nexport class BeamSocialShare extends LitElement {\n static tagName = \"beam-social-share\";\n\n @property({ type: String }) public apiKey?: RequiredConfig[\"apiKey\"];\n @property({ type: Number }) storeId?: RequiredConfig[\"storeId\"];\n @property({ type: Number }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n @property({ type: String }) public baseUrl = DEFAULT_BASE_URL;\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n @property({ type: Boolean }) public debug = false;\n @property({ type: String }) transactionId?: string;\n\n @state() private brandName: string | null = null;\n @state() private shareImageUrl: string | null = null;\n @state() private dataUrl?: string;\n @state() private file?: File;\n @state() private isMobile = false;\n @state() private windowResized = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.checkViewport);\n this.checkViewport();\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.checkViewport);\n super.disconnectedCallback();\n }\n\n checkViewport = () => {\n this.windowResized = window.innerWidth <= 768;\n };\n\n private async fetchImpactData() {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\", \"nonprofitId\"], this)) {\n throw new MissingConfig();\n }\n try {\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: { authorization: `Api-Key ${this.apiKey}` },\n queryParams: {\n storeId: this.storeId,\n personalImpactLimit: 0,\n nonprofitId: this.nonprofitId,\n widgetName: WIDGET_NAMES.community_impact,\n version: \"1.0.0\",\n lang: this.configLang,\n transactionId: this.transactionId ?? undefined,\n },\n });\n return res;\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to fetch impact data\", error);\n }\n throw error;\n }\n }\n\n // Updates component state with fetched impact data\n private async updateImpactData() {\n try {\n const data = await this.fetchImpactData();\n if (data) {\n this.brandName = data.chain.name;\n this.shareImageUrl = data.promoAssetUrl || data.personalImpactAssetUrl;\n\n if (this.shareImageUrl) {\n const file = await urlToFile(this.shareImageUrl);\n this.file = file;\n this.dataUrl = URL.createObjectURL(file);\n }\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Error updating impact data:\", error);\n }\n }\n }\n\n async firstUpdated() {\n await this.updateImpactData();\n this.isMobile =\n /Mobi|Android/i.test(navigator.userAgent) || \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n }\n\n private async openSystemShareSheet(imageUrl: string) {\n if (!imageUrl) return;\n\n try {\n const file = await urlToFile(imageUrl);\n if (navigator.share && this.brandName) {\n await navigator.share({\n files: [file],\n title: strings[this.lang].impactShareTitle(),\n text: strings[this.lang].impactShareText({ brandName: this.brandName }),\n });\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to open share sheet\", error);\n }\n }\n }\n\n private async handleClickCopy() {\n if (this.file) {\n try {\n await navigator.clipboard.write([new ClipboardItem({ \"image/png\": this.file })]);\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to copy image to clipboard:\", error);\n }\n }\n }\n }\n\n private handleClickDownload(event: Event) {\n const target = event.currentTarget as HTMLAnchorElement;\n\n if (this.isMobile && this.shareImageUrl) {\n event.preventDefault();\n this.openSystemShareSheet(this.shareImageUrl);\n } else if (this.dataUrl) {\n target.href = this.dataUrl;\n target.download = strings[this.lang].impactShareTitle();\n }\n }\n\n render() {\n if (!this.brandName || !this.shareImageUrl || !this.dataUrl) {\n return _loading();\n }\n\n return html`\n <div class=\"share-container ${this.windowResized || this.isMobile ? \"mobile\" : \"desktop\"}\">\n <h2 class=\"share-title\">${strings[this.lang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.lang].impactShareText({ brandName: this.brandName })}</p>\n <img src=\"${this.shareImageUrl}\" alt=\"${strings[this.lang].impactShareTitle()}\" class=\"share-image\" />\n <div class=\"share-actions\">\n <button class=\"plain-button button share-action-button\" @click=\"${this.handleClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.lang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareCopy()}</div>\n </button>\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.lang].impactShareTitle()}\"\n href=\"${this.dataUrl}\"\n @click=\"${this.handleClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.lang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n `;\n }\n\n static styles = [\n cssReset,\n css`\n @font-face {\n font-family: \"Mabry-Bold\";\n src: url(\"../../../assets/fonts/mabry-bold.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n @font-face {\n font-family: \"Mabry-Medium\";\n src: url(\"../../../assets/fonts/mabry-medium.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n :host {\n align-items: center;\n justify-content: center;\n display: flex;\n box-sizing: border-box;\n width: 100%;\n }\n\n .share-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 700px;\n text-align: center;\n }\n\n .share-container.mobile {\n padding: 1rem;\n max-width: 100%;\n }\n\n .share-title {\n font-family: \"Mabry-Bold\", sans-serif;\n font-size: 2.5rem;\n font-weight: bold;\n word-break: break-word;\n margin: 10px 0;\n }\n\n .share-title.mobile {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1.25rem;\n line-height: 1.4;\n word-break: break-word;\n margin: 10px 0;\n max-width: 500px;\n }\n\n .share-text.mobile {\n font-size: 1rem;\n }\n\n .share-image {\n border-radius: 8px;\n width: 100%;\n max-width: 300px;\n height: auto;\n display: block;\n margin: 20px auto;\n }\n\n .share-actions {\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 10px;\n align-items: center;\n margin: 20px 0;\n }\n\n .share-actions.mobile {\n flex-direction: column;\n }\n\n .share-action-button {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 10px 20px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #fff;\n text-decoration: none;\n color: #333;\n cursor: pointer;\n transition: background-color 0.3s, border-color 0.3s;\n }\n\n .share-action-button:hover {\n background-color: #f0f0f0;\n border-color: #bbb;\n }\n\n .share-action-icon {\n font-size: 1.25rem;\n margin-right: 8px;\n }\n\n .share-action-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1rem;\n line-height: 1.4;\n margin-top: 5px;\n }\n\n @media (max-width: 600px) {\n .share-title {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-size: 1rem;\n }\n\n .share-image {\n max-width: 240px;\n }\n\n .share-actions {\n flex-direction: row;\n width: 50%;\n margin: 10px 0;\n }\n\n .share-action-button {\n width: 100%;\n margin: 5px 0;\n }\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamSocialShare);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-social-share\": BeamSocialShare;\n }\n}\n"],"names":["BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","file","urlToFile","imageUrl","strings","event","target","_loading","html","cssReset","css","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
|
|
@@ -38,6 +38,7 @@ declare class BeamSubscriptionImpact extends LitElement {
|
|
|
38
38
|
chain: {
|
|
39
39
|
name: string;
|
|
40
40
|
logoUrl: string | null;
|
|
41
|
+
logoLockupUrl?: string | null | undefined;
|
|
41
42
|
communityImpactUrl: string | null;
|
|
42
43
|
donationTypeName: string | null;
|
|
43
44
|
matchDonationTypeName: string | null;
|
|
@@ -53,6 +54,9 @@ declare class BeamSubscriptionImpact extends LitElement {
|
|
|
53
54
|
description: string;
|
|
54
55
|
promoDescriptionPrefix?: string | undefined;
|
|
55
56
|
promoDescription?: string | undefined;
|
|
57
|
+
confirmButton?: string | undefined;
|
|
58
|
+
confirmedButton?: string | undefined;
|
|
59
|
+
collapsedButton?: string | undefined;
|
|
56
60
|
theme?: {
|
|
57
61
|
[key: string]: unknown;
|
|
58
62
|
} | null | undefined;
|
|
@@ -94,6 +98,10 @@ declare class BeamSubscriptionImpact extends LitElement {
|
|
|
94
98
|
causeIconUrl: string | null;
|
|
95
99
|
causeIconSelectedUrl: string | null;
|
|
96
100
|
causeColor: string | null;
|
|
101
|
+
extensibility?: {
|
|
102
|
+
causeIconUrl?: string | null | undefined;
|
|
103
|
+
causeIconSelectedUrl?: string | null | undefined;
|
|
104
|
+
} | undefined;
|
|
97
105
|
website: string | null;
|
|
98
106
|
websiteLinkText: string;
|
|
99
107
|
badge?: string | undefined;
|
|
@@ -119,6 +127,10 @@ declare class BeamSubscriptionImpact extends LitElement {
|
|
|
119
127
|
causeIconUrl: string | null;
|
|
120
128
|
causeIconSelectedUrl: string | null;
|
|
121
129
|
causeColor: string | null;
|
|
130
|
+
extensibility?: {
|
|
131
|
+
causeIconUrl?: string | null | undefined;
|
|
132
|
+
causeIconSelectedUrl?: string | null | undefined;
|
|
133
|
+
} | undefined;
|
|
122
134
|
website: string | null;
|
|
123
135
|
websiteLinkText: string;
|
|
124
136
|
badge?: string | undefined;
|
|
@@ -139,6 +151,8 @@ declare class BeamSubscriptionImpact extends LitElement {
|
|
|
139
151
|
isActive: boolean;
|
|
140
152
|
multiplier: number | null;
|
|
141
153
|
} | null;
|
|
154
|
+
promoAssetUrl: string | null;
|
|
155
|
+
personalImpactAssetUrl: string | null;
|
|
142
156
|
}>;
|
|
143
157
|
private impactDataController;
|
|
144
158
|
impactTitleRefs: HTMLElement[];
|
|
@@ -154,7 +168,7 @@ declare class BeamSubscriptionImpact extends LitElement {
|
|
|
154
168
|
get cssVariables(): any;
|
|
155
169
|
evaluateBreakPoints: lodash.DebouncedFuncLeading<() => void>;
|
|
156
170
|
resizeElements: lodash.DebouncedFuncLeading<() => void>;
|
|
157
|
-
render(): lit_html.TemplateResult<1
|
|
171
|
+
render(): "" | lit_html.TemplateResult<1>;
|
|
158
172
|
renderInlineCard(impactCard: {
|
|
159
173
|
title: string;
|
|
160
174
|
description: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{h as v,f as T,y as m,g as d,t as O,p as L}from"../chunks/lit-3QHn3fwl.esm.js";import{d as k}from"../chunks/lodash-P8OIs-at.esm.js";import{p as M}from"../chunks/progress-bar-HVG_n8_6.esm.js";import{s as $,a as G}from"../chunks/share-button-
|
|
1
|
+
import{h as v,f as T,y as m,g as d,t as O,p as L}from"../chunks/lit-3QHn3fwl.esm.js";import{d as k}from"../chunks/lodash-P8OIs-at.esm.js";import{p as M}from"../chunks/progress-bar-HVG_n8_6.esm.js";import{s as $,a as G}from"../chunks/share-button-MIfALwo7.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import{D as V,g as _,S as j}from"../chunks/routes-SVTSfe0m.esm.js";import{u as b,A as H,d as g,a as K,_ as q,i as r}from"../chunks/localize-IRs8JglT.esm.js";import{c as J,d as Q,e as X}from"../chunks/enforce-config-HksNiOMu.esm.js";import{_ as Z}from"../chunks/loading-template-mLjOGXMj.esm.js";import{makeApiKeyHeader as ee}from"../utils/makeApiKeyHeader.esm.js";import{c as ie}from"../chunks/responsive-KbDsZM6S.esm.js";import{logger as te}from"../utils/logger.esm.js";import{c as ae}from"../chunks/css-card-grid-r6wxRbPV.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";var re=Object.defineProperty,ne=Object.getOwnPropertyDescriptor,oe=(e,i,a,n)=>{for(var t=n>1?void 0:n?ne(i,a):i,c=e.length-1,p;c>=0;c--)(p=e[c])&&(t=(n?p(i,a,t):p(t))||t);return n&&t&&re(i,a,t),t};class w extends v{constructor(){super(...arguments),this.infoText=""}static get styles(){return T`
|
|
2
2
|
sl-badge::part(base) {
|
|
3
3
|
background-color: var(--beam-pillLabel-color-background, #000);
|
|
4
4
|
color: var(--beam-pillLabel-color, #fff);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{h as v,f as T,y as m,g as d,t as O,p as L}from"../chunks/lit-3QHn3fwl.esm.js";import{d as k}from"../chunks/lodash-P8OIs-at.esm.js";import{p as M}from"../chunks/progress-bar-HVG_n8_6.esm.js";import{s as $,a as G}from"../chunks/share-button-
|
|
1
|
+
import{h as v,f as T,y as m,g as d,t as O,p as L}from"../chunks/lit-3QHn3fwl.esm.js";import{d as k}from"../chunks/lodash-P8OIs-at.esm.js";import{p as M}from"../chunks/progress-bar-HVG_n8_6.esm.js";import{s as $,a as G}from"../chunks/share-button-SBb1jPC2.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import{D as V,g as _,S as j}from"../chunks/routes-8O1TW_Zi.esm.js";import{u as b,A as H,d as g,a as K,_ as q,i as r}from"../chunks/localize-SsJbTmMj.esm.js";import{c as J,d as Q,e as X}from"../chunks/enforce-config-er6B5Gkj.esm.js";import{_ as Z}from"../chunks/loading-template-mLjOGXMj.esm.js";import{makeApiKeyHeader as ee}from"../utils/makeApiKeyHeader.js";import{c as ie}from"../chunks/responsive-KbDsZM6S.esm.js";import{logger as te}from"../utils/logger.js";import{c as ae}from"../chunks/css-card-grid-r6wxRbPV.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";var re=Object.defineProperty,ne=Object.getOwnPropertyDescriptor,oe=(e,i,a,n)=>{for(var t=n>1?void 0:n?ne(i,a):i,c=e.length-1,p;c>=0;c--)(p=e[c])&&(t=(n?p(i,a,t):p(t))||t);return n&&t&&re(i,a,t),t};class w extends v{constructor(){super(...arguments),this.infoText=""}static get styles(){return T`
|
|
2
2
|
sl-badge::part(base) {
|
|
3
3
|
background-color: var(--beam-pillLabel-color-background, #000);
|
|
4
4
|
color: var(--beam-pillLabel-color, #fff);
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import * as lit_html from 'lit-html';
|
|
2
2
|
import * as lit from 'lit';
|
|
3
3
|
import { LitElement } from 'lit';
|
|
4
|
-
import { g as getImpact, a as getChainNonprofits } from '../chunks/routes-
|
|
5
|
-
import { T as TCart } from '../chunks/cart-contents-
|
|
4
|
+
import { g as getImpact, a as getChainNonprofits } from '../chunks/routes-wCCYf_uA.esm.js';
|
|
5
|
+
import { T as TCart } from '../chunks/cart-contents-WB1BF6hG.esm.js';
|
|
6
6
|
import './select-subscription-nonprofit.js';
|
|
7
7
|
import './subscription-impact.js';
|
|
8
8
|
import './beam-partner-logos.js';
|
|
9
9
|
import '../chunks/progress-bar-0VS_AmEf.esm.js';
|
|
10
10
|
import { L as LANGUAGES } from '../chunks/types-aju0qrRe.esm.js';
|
|
11
11
|
import { T as TNumericId } from '../chunks/types-zbTZ8-KP.esm.js';
|
|
12
|
-
import '../chunks/openapi-spec
|
|
12
|
+
import '../chunks/openapi-spec-GGEBbqAJ.esm.js';
|
|
13
13
|
import 'lodash';
|
|
14
14
|
import '../chunks/share-button-hDn8fnBI.esm.js';
|
|
15
15
|
|
|
@@ -59,6 +59,7 @@ declare class BeamSubscriptionManagement extends LitElement {
|
|
|
59
59
|
chain: {
|
|
60
60
|
name: string;
|
|
61
61
|
logoUrl: string | null;
|
|
62
|
+
logoLockupUrl?: string | null | undefined;
|
|
62
63
|
communityImpactUrl: string | null;
|
|
63
64
|
donationTypeName: string | null;
|
|
64
65
|
matchDonationTypeName: string | null;
|
|
@@ -69,6 +70,9 @@ declare class BeamSubscriptionManagement extends LitElement {
|
|
|
69
70
|
description: string;
|
|
70
71
|
promoDescriptionPrefix?: string | undefined;
|
|
71
72
|
promoDescription?: string | undefined;
|
|
73
|
+
confirmButton?: string | undefined;
|
|
74
|
+
confirmedButton?: string | undefined;
|
|
75
|
+
collapsedButton?: string | undefined;
|
|
72
76
|
theme?: {
|
|
73
77
|
[key: string]: unknown;
|
|
74
78
|
} | null | undefined;
|
|
@@ -120,6 +124,10 @@ declare class BeamSubscriptionManagement extends LitElement {
|
|
|
120
124
|
causeIconUrl: string | null;
|
|
121
125
|
causeIconSelectedUrl: string | null;
|
|
122
126
|
causeColor: string | null;
|
|
127
|
+
extensibility?: {
|
|
128
|
+
causeIconUrl?: string | null | undefined;
|
|
129
|
+
causeIconSelectedUrl?: string | null | undefined;
|
|
130
|
+
} | undefined;
|
|
123
131
|
website: string | null;
|
|
124
132
|
websiteLinkText: string;
|
|
125
133
|
badge?: string | undefined;
|
|
@@ -155,6 +163,7 @@ declare class BeamSubscriptionManagement extends LitElement {
|
|
|
155
163
|
chain: {
|
|
156
164
|
name: string;
|
|
157
165
|
logoUrl: string | null;
|
|
166
|
+
logoLockupUrl?: string | null | undefined;
|
|
158
167
|
communityImpactUrl: string | null;
|
|
159
168
|
donationTypeName: string | null;
|
|
160
169
|
matchDonationTypeName: string | null;
|
|
@@ -170,6 +179,9 @@ declare class BeamSubscriptionManagement extends LitElement {
|
|
|
170
179
|
description: string;
|
|
171
180
|
promoDescriptionPrefix?: string | undefined;
|
|
172
181
|
promoDescription?: string | undefined;
|
|
182
|
+
confirmButton?: string | undefined;
|
|
183
|
+
confirmedButton?: string | undefined;
|
|
184
|
+
collapsedButton?: string | undefined;
|
|
173
185
|
theme?: {
|
|
174
186
|
[key: string]: unknown;
|
|
175
187
|
} | null | undefined;
|
|
@@ -211,6 +223,10 @@ declare class BeamSubscriptionManagement extends LitElement {
|
|
|
211
223
|
causeIconUrl: string | null;
|
|
212
224
|
causeIconSelectedUrl: string | null;
|
|
213
225
|
causeColor: string | null;
|
|
226
|
+
extensibility?: {
|
|
227
|
+
causeIconUrl?: string | null | undefined;
|
|
228
|
+
causeIconSelectedUrl?: string | null | undefined;
|
|
229
|
+
} | undefined;
|
|
214
230
|
website: string | null;
|
|
215
231
|
websiteLinkText: string;
|
|
216
232
|
badge?: string | undefined;
|
|
@@ -236,6 +252,10 @@ declare class BeamSubscriptionManagement extends LitElement {
|
|
|
236
252
|
causeIconUrl: string | null;
|
|
237
253
|
causeIconSelectedUrl: string | null;
|
|
238
254
|
causeColor: string | null;
|
|
255
|
+
extensibility?: {
|
|
256
|
+
causeIconUrl?: string | null | undefined;
|
|
257
|
+
causeIconSelectedUrl?: string | null | undefined;
|
|
258
|
+
} | undefined;
|
|
239
259
|
website: string | null;
|
|
240
260
|
websiteLinkText: string;
|
|
241
261
|
badge?: string | undefined;
|
|
@@ -256,6 +276,8 @@ declare class BeamSubscriptionManagement extends LitElement {
|
|
|
256
276
|
isActive: boolean;
|
|
257
277
|
multiplier: number | null;
|
|
258
278
|
} | null;
|
|
279
|
+
promoAssetUrl: string | null;
|
|
280
|
+
personalImpactAssetUrl: string | null;
|
|
259
281
|
}>;
|
|
260
282
|
handleSwapNonprofitButtonClick(): void;
|
|
261
283
|
handleBackToSubscriptionImpactButtonClick(): void;
|
|
@@ -266,7 +288,7 @@ declare class BeamSubscriptionManagement extends LitElement {
|
|
|
266
288
|
get cssVariables(): any;
|
|
267
289
|
static styles: lit.CSSResult[];
|
|
268
290
|
private renderPreviousImpactTiles;
|
|
269
|
-
render(): lit_html.TemplateResult<1
|
|
291
|
+
render(): "" | lit_html.TemplateResult<1>;
|
|
270
292
|
}
|
|
271
293
|
declare global {
|
|
272
294
|
interface HTMLElementTagNameMap {
|