@beamimpact/web-sdk 1.55.6 → 1.55.8
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-BA9f_o0p.esm.js → _share-dialog-dependencies-BG0p8uUr.esm.js} +2 -2
- package/dist/chunks/{_share-dialog-dependencies-BA9f_o0p.esm.js.map → _share-dialog-dependencies-BG0p8uUr.esm.js.map} +1 -1
- package/dist/chunks/{_share-dialog-dependencies-C9KUQdZi.esm.js → _share-dialog-dependencies-dHlBUqo0.esm.js} +2 -2
- package/dist/chunks/{_share-dialog-dependencies-C9KUQdZi.esm.js.map → _share-dialog-dependencies-dHlBUqo0.esm.js.map} +1 -1
- package/dist/chunks/beam-errors-Ci0d3926.esm.js.map +1 -1
- package/dist/chunks/css-card-grid-CvoGpsJH.esm.js.map +1 -1
- package/dist/chunks/enforce-config-Ba1JkOHs.esm.js.map +1 -1
- package/dist/chunks/enforce-config-CZ3ToOgr.esm.js.map +1 -1
- package/dist/chunks/{events-B7l6VPsF.esm.d.ts → events-CSyogxoH.esm.d.ts} +2 -2
- package/dist/chunks/events-Dki0ka4F.esm.js.map +1 -1
- package/dist/chunks/{index-DkN5rVx1.esm.js → index-2OQzw7UI.esm.js} +2 -2
- package/dist/chunks/{index-DkN5rVx1.esm.js.map → index-2OQzw7UI.esm.js.map} +1 -1
- package/dist/chunks/index-B1Y88trP.esm.js +2 -0
- package/dist/chunks/index-B1Y88trP.esm.js.map +1 -0
- package/dist/chunks/{index-Bliur1O3.esm.d.ts → index-B1lGZARl.esm.d.ts} +1 -1
- package/dist/chunks/{index-DHK-p5LV.esm.d.ts → index-B7hOLixE.esm.d.ts} +2 -2
- package/dist/chunks/index-BNjsFEGn.esm.js.map +1 -1
- package/dist/chunks/{index-CQNxdYCM.esm.js → index-BTDB5Gk-.esm.js} +2 -2
- package/dist/chunks/index-BTDB5Gk-.esm.js.map +1 -0
- package/dist/chunks/index-BX6GnRsb.esm.js +2 -0
- package/dist/chunks/index-BX6GnRsb.esm.js.map +1 -0
- package/dist/chunks/{index-DbaDUPup.esm.d.ts → index-BjGPkgs-.esm.d.ts} +11 -11
- package/dist/chunks/{index-B-y_clPF.esm.js → index-C5gnsl34.esm.js} +2 -2
- package/dist/chunks/{index-B-y_clPF.esm.js.map → index-C5gnsl34.esm.js.map} +1 -1
- package/dist/chunks/{index-DEoMwStx.esm.d.ts → index-CJ1y1kTs.esm.d.ts} +1 -1
- package/dist/chunks/index-CWKcDbs6.esm.js +2 -0
- package/dist/chunks/index-CWKcDbs6.esm.js.map +1 -0
- package/dist/chunks/{index-Cvwx-mJw.esm.js → index-Cg65EbvX.esm.js} +2 -2
- package/dist/chunks/index-Cg65EbvX.esm.js.map +1 -0
- package/dist/chunks/{index-R8pxCm8G.esm.js → index-DEaZqGi7.esm.js} +2 -2
- package/dist/chunks/{index-R8pxCm8G.esm.js.map → index-DEaZqGi7.esm.js.map} +1 -1
- package/dist/chunks/{index-Cc56yRag.esm.js → index-DnTE6QlY.esm.js} +2 -2
- package/dist/chunks/index-DnTE6QlY.esm.js.map +1 -0
- package/dist/chunks/{index-D4P62wPH.esm.js → index-DrxhkT6Y.esm.js} +2 -2
- package/dist/chunks/index-DrxhkT6Y.esm.js.map +1 -0
- package/dist/chunks/index-IKiJwo5v.esm.js.map +1 -1
- package/dist/chunks/{index-Dcs5wzZR.esm.js → index-RhV6PBPH.esm.js} +2 -2
- package/dist/chunks/{index-Dcs5wzZR.esm.js.map → index-RhV6PBPH.esm.js.map} +1 -1
- package/dist/chunks/index-eCVyk0rc.esm.js +2 -0
- package/dist/chunks/index-eCVyk0rc.esm.js.map +1 -0
- package/dist/chunks/{index-DTPlqZRf.esm.d.ts → index-iqYDqEil.esm.d.ts} +1 -1
- package/dist/chunks/lit-WqMxC_PA.esm.js.map +1 -1
- package/dist/chunks/localize-Btu9xYcE.esm.js.map +1 -1
- package/dist/chunks/localize-C25pEGnx.esm.js.map +1 -1
- package/dist/chunks/lodash-D3TLHRR_.esm.js.map +1 -1
- package/dist/chunks/{order-page-BrgnL0la.esm.js → order-page-BRG7MXZ2.esm.js} +2 -2
- package/dist/chunks/{order-page-BrgnL0la.esm.js.map → order-page-BRG7MXZ2.esm.js.map} +1 -1
- package/dist/chunks/{order-page-BVDbpEg3.esm.js → order-page-BbHDQfmy.esm.js} +2 -2
- package/dist/chunks/{order-page-BVDbpEg3.esm.js.map → order-page-BbHDQfmy.esm.js.map} +1 -1
- package/dist/chunks/{order-page-M7a2TINy.esm.d.ts → order-page-Qn1yyNbN.esm.d.ts} +2 -2
- package/dist/chunks/progress-bar-DF7UuuHb.esm.js.map +1 -1
- package/dist/chunks/{promo-pill-label-B5ymzjIe.esm.js → promo-pill-label-ByFGhdxh.esm.js} +2 -2
- package/dist/chunks/{promo-pill-label-B5ymzjIe.esm.js.map → promo-pill-label-ByFGhdxh.esm.js.map} +1 -1
- package/dist/chunks/{promo-pill-label-Fdt5WTOL.esm.js → promo-pill-label-WGLW3bql.esm.js} +2 -2
- package/dist/chunks/{promo-pill-label-Fdt5WTOL.esm.js.map → promo-pill-label-WGLW3bql.esm.js.map} +1 -1
- package/dist/chunks/{promo-types-BPmDZ5dF.esm.d.ts → promo-types-7r9-UuiP.esm.d.ts} +1 -1
- package/dist/chunks/promo-types-DKAOFHJr.esm.js.map +1 -1
- package/dist/chunks/responsive-BR8qUfBa.esm.js.map +1 -1
- package/dist/chunks/{routes-DpniIBF7.esm.js → routes-BvX92EDq.esm.js} +2 -2
- package/dist/chunks/{routes-DpniIBF7.esm.js.map → routes-BvX92EDq.esm.js.map} +1 -1
- package/dist/chunks/{routes-BoeGe1RQ.esm.d.ts → routes-DahRzf8t.esm.d.ts} +1 -1
- package/dist/chunks/{routes-DzqKnt5D.esm.js → routes-DguZveS3.esm.js} +2 -2
- package/dist/chunks/{routes-DzqKnt5D.esm.js.map → routes-DguZveS3.esm.js.map} +1 -1
- package/dist/chunks/{share-button-B2RwMJdP.esm.js → share-button-BRjKJc5L.esm.js} +2 -2
- package/dist/chunks/{share-button-DOejRGE7.esm.js.map → share-button-BRjKJc5L.esm.js.map} +1 -1
- package/dist/chunks/{share-button-CnN0Q1m3.esm.js → share-button-DPNNnXeM.esm.js} +2 -2
- package/dist/chunks/{share-button-CnN0Q1m3.esm.js.map → share-button-DPNNnXeM.esm.js.map} +1 -1
- package/dist/chunks/{share-button-DOejRGE7.esm.js → share-button-DmjRJmXh.esm.js} +2 -2
- package/dist/chunks/{share-button-B2RwMJdP.esm.js.map → share-button-DmjRJmXh.esm.js.map} +1 -1
- package/dist/chunks/{share-button-Gz4GlT28.esm.js → share-button-M8cMa6ol.esm.js} +2 -2
- package/dist/chunks/{share-button-Gz4GlT28.esm.js.map → share-button-M8cMa6ol.esm.js.map} +1 -1
- package/dist/chunks/{update-cart-BJPNyfQK.esm.js → update-cart-CJywJNax.esm.js} +2 -2
- package/dist/chunks/{update-cart-BJPNyfQK.esm.js.map → update-cart-CJywJNax.esm.js.map} +1 -1
- package/dist/chunks/{update-cart-_BGjED9E.esm.js → update-cart-gwNcGXkd.esm.js} +2 -2
- package/dist/chunks/{update-cart-_BGjED9E.esm.js.map → update-cart-gwNcGXkd.esm.js.map} +1 -1
- package/dist/chunks/vendor-KKSARHWL.esm.js.map +1 -1
- package/dist/components/beam-partner-logos.esm.js.map +1 -1
- package/dist/components/beam-partner-logos.js.map +1 -1
- package/dist/components/community-impact.esm.js +1 -1
- package/dist/components/community-impact.esm.js.map +1 -1
- package/dist/components/community-impact.js +1 -1
- package/dist/components/community-impact.js.map +1 -1
- package/dist/components/cumulative-impact.esm.js +1 -1
- package/dist/components/cumulative-impact.esm.js.map +1 -1
- package/dist/components/cumulative-impact.js +1 -1
- package/dist/components/cumulative-impact.js.map +1 -1
- package/dist/components/impact-overview.esm.js +1 -1
- package/dist/components/impact-overview.esm.js.map +1 -1
- package/dist/components/impact-overview.js +1 -1
- package/dist/components/impact-overview.js.map +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.esm.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/post-purchase.d.ts +2 -1
- package/dist/components/post-purchase.esm.js +3 -3
- package/dist/components/post-purchase.esm.js.map +1 -1
- package/dist/components/post-purchase.js +3 -3
- package/dist/components/post-purchase.js.map +1 -1
- package/dist/components/product-details-page.d.ts +2 -2
- package/dist/components/product-details-page.esm.js +7 -7
- package/dist/components/product-details-page.esm.js.map +1 -1
- package/dist/components/product-details-page.js +7 -7
- package/dist/components/product-details-page.js.map +1 -1
- package/dist/components/redeem-transaction.d.ts +1 -1
- package/dist/components/redeem-transaction.esm.js +1 -1
- package/dist/components/redeem-transaction.js +1 -1
- package/dist/components/select-nonprofit.d.ts +1 -1
- package/dist/components/select-nonprofit.esm.js +1 -1
- package/dist/components/select-nonprofit.esm.js.map +1 -1
- package/dist/components/select-nonprofit.js +1 -1
- package/dist/components/select-nonprofit.js.map +1 -1
- package/dist/components/select-subscription-nonprofit.d.ts +1 -1
- package/dist/components/select-subscription-nonprofit.esm.js +1 -1
- package/dist/components/select-subscription-nonprofit.esm.js.map +1 -1
- package/dist/components/select-subscription-nonprofit.js +1 -1
- package/dist/components/select-subscription-nonprofit.js.map +1 -1
- package/dist/components/shopify.d.ts +4 -4
- package/dist/components/shopify.esm.js +1 -1
- package/dist/components/shopify.js +1 -1
- package/dist/components/social-share.esm.js +1 -1
- package/dist/components/social-share.esm.js.map +1 -1
- package/dist/components/social-share.js +1 -1
- package/dist/components/social-share.js.map +1 -1
- package/dist/components/subscription-impact.d.ts +1 -1
- package/dist/components/subscription-impact.esm.js +1 -1
- package/dist/components/subscription-impact.esm.js.map +1 -1
- package/dist/components/subscription-impact.js +1 -1
- package/dist/components/subscription-impact.js.map +1 -1
- package/dist/components/subscription-management.d.ts +2 -2
- package/dist/components/subscription-management.esm.js +1 -1
- package/dist/components/subscription-management.esm.js.map +1 -1
- package/dist/components/subscription-management.js +1 -1
- package/dist/components/subscription-management.js.map +1 -1
- package/dist/index.d.ts +9 -9
- 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.esm.js.map +1 -1
- package/dist/integrations/beam.js +1 -1
- package/dist/integrations/beam.js.map +1 -1
- package/dist/integrations/cart.esm.js +1 -1
- package/dist/integrations/cart.js +1 -1
- package/dist/integrations/index.d.ts +6 -6
- package/dist/integrations/index.esm.js +1 -1
- package/dist/integrations/index.js +1 -1
- package/dist/integrations/logs.esm.js +1 -1
- package/dist/integrations/logs.js +1 -1
- package/dist/integrations/promoManager.esm.js.map +1 -1
- package/dist/integrations/promoManager.js.map +1 -1
- package/dist/integrations/shopify.d.ts +2 -2
- 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.esm.js.map +1 -1
- package/dist/integrations/statsig.js +1 -1
- package/dist/integrations/statsig.js.map +1 -1
- package/dist/integrations/utils.d.ts +2 -2
- package/dist/react/beam-partner-logos.esm.js.map +1 -1
- package/dist/react/beam-partner-logos.js.map +1 -1
- package/dist/react/community-impact.esm.js +1 -1
- package/dist/react/community-impact.js +1 -1
- package/dist/react/cumulative-impact.esm.js +1 -1
- package/dist/react/cumulative-impact.js +1 -1
- package/dist/react/impact-overview.esm.js +1 -1
- package/dist/react/impact-overview.js +1 -1
- package/dist/react/index.d.ts +14 -14
- package/dist/react/index.esm.js +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/post-purchase.esm.js +1 -1
- package/dist/react/post-purchase.js +1 -1
- package/dist/react/product-details-page.d.ts +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 +2 -2
- package/dist/react/redeem-transaction.esm.js +1 -1
- package/dist/react/redeem-transaction.esm.js.map +1 -1
- package/dist/react/redeem-transaction.js +1 -1
- package/dist/react/redeem-transaction.js.map +1 -1
- package/dist/react/select-nonprofit.d.ts +2 -2
- package/dist/react/select-nonprofit.esm.js +1 -1
- package/dist/react/select-nonprofit.esm.js.map +1 -1
- package/dist/react/select-nonprofit.js +1 -1
- package/dist/react/select-nonprofit.js.map +1 -1
- package/dist/react/select-subscription-nonprofit.d.ts +2 -2
- package/dist/react/select-subscription-nonprofit.esm.js +1 -1
- package/dist/react/select-subscription-nonprofit.esm.js.map +1 -1
- package/dist/react/select-subscription-nonprofit.js +1 -1
- package/dist/react/select-subscription-nonprofit.js.map +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 +1 -1
- package/dist/react/subscription-management.esm.js +1 -1
- package/dist/react/subscription-management.js +1 -1
- package/dist/utils/cookies.esm.js.map +1 -1
- package/dist/utils/cookies.js.map +1 -1
- package/dist/utils/events.d.ts +2 -2
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/makeApiKeyHeader.esm.js.map +1 -1
- package/dist/utils/makeApiKeyHeader.js.map +1 -1
- package/dist/utils/memoize-last.esm.js.map +1 -1
- package/dist/utils/memoize-last.js.map +1 -1
- package/dist/utils/network-listeners.esm.js.map +1 -1
- package/dist/utils/network-listeners.js.map +1 -1
- package/dist/utils/promoManager.d.ts +1 -1
- package/dist/utils/promoManager.esm.js.map +1 -1
- package/dist/utils/promoManager.js.map +1 -1
- package/dist/utils/wait-for-element.esm.js.map +1 -1
- package/dist/utils/wait-for-element.js.map +1 -1
- package/package.json +2 -2
- package/dist/chunks/index-8_I5ySms.esm.js +0 -2
- package/dist/chunks/index-8_I5ySms.esm.js.map +0 -1
- package/dist/chunks/index-CNk8n3rH.esm.js +0 -2
- package/dist/chunks/index-CNk8n3rH.esm.js.map +0 -1
- package/dist/chunks/index-CQNxdYCM.esm.js.map +0 -1
- package/dist/chunks/index-Cc56yRag.esm.js.map +0 -1
- package/dist/chunks/index-Cvwx-mJw.esm.js.map +0 -1
- package/dist/chunks/index-D4P62wPH.esm.js.map +0 -1
- package/dist/chunks/index-D9fJ0fnB.esm.js +0 -2
- package/dist/chunks/index-D9fJ0fnB.esm.js.map +0 -1
- package/dist/chunks/index-DuOCy5gV.esm.js +0 -2
- package/dist/chunks/index-DuOCy5gV.esm.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{f as k,g as c,p as f,h as N,k as $,y as T}from"../chunks/lit-WqMxC_PA.esm.js";import{d as F}from"../chunks/lodash-D3TLHRR_.esm.js";import{D as U,g as D,W as A,S as R}from"../chunks/routes-
|
|
1
|
+
import{f as k,g as c,p as f,h as N,k as $,y as T}from"../chunks/lit-WqMxC_PA.esm.js";import{d as F}from"../chunks/lodash-D3TLHRR_.esm.js";import{D as U,g as D,W as A,S as R}from"../chunks/routes-BvX92EDq.esm.js";import{p as j}from"../chunks/progress-bar-DF7UuuHb.esm.js";import{u as s,A as P,i as g,_ as O,d,a as _}from"../chunks/localize-C25pEGnx.esm.js";import{c as V,d as W,e as G}from"../chunks/enforce-config-Ba1JkOHs.esm.js";import{_ as K}from"../chunks/loading-template-DG4lkIIc.esm.js";import{logger as M}from"../utils/logger.js";import"../chunks/_share-dialog-dependencies-BG0p8uUr.esm.js";import{s as h,a as q}from"../chunks/share-button-BRjKJc5L.esm.js";import{partnerLogosConfigDefaults as Y}from"./beam-partner-logos.js";import{c as H}from"../chunks/responsive-BR8qUfBa.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/is-all-html-elements-fcB7UUA1.esm.js";import"../chunks/share-button-DPNNnXeM.esm.js";const l={en:{descriptionTitle:({nonprofitName:a="a nonprofit"})=>`You just made an impact for ${a}`,descriptionSubtitle:({brandName:a=""})=>`Check out the impact your ${a} purchase made below.`,yourImpactTitle:()=>"You\u2019re funding",communityImpactTitle:()=>"Together we\u2019re funding",personalImpactLinkCopy:({nonprofitName:a=""})=>`Learn about ${a}`,communityImpactLinkCopy:({brandName:a=""})=>`See all of the ${a} community's impact`,impactShareButton:()=>"Share to Grow Your Impact"},fr:{descriptionTitle:({nonprofitName:a="une organisation"})=>`Vous avez cr\xE9\xE9 un impact pour ${a}`,descriptionSubtitle:({brandName:a=""})=>`D\xE9couvrez ci-dessous l'impact de votre achat ${a}.`,yourImpactTitle:()=>"Vous financez",communityImpactTitle:()=>"Ensemble, nous finan\xE7ons",personalImpactLinkCopy:({nonprofitName:a=""})=>`En savoir plus sur ${a}`,communityImpactLinkCopy:({brandName:a=""})=>`Voir tout l'impact de la communaut\xE9 ${a}`,impactShareButton:()=>"Partagez pour d\xE9velopper votre impact"},de:{descriptionTitle:({nonprofitName:a="eine Organisation"})=>`Du hast einen Beitrag f\xFCr ${a} geleistet`,descriptionSubtitle:({brandName:a=""})=>`Sieh dir unten den Beitrag an, den dein ${a} Einkauf gemacht hat.`,yourImpactTitle:()=>"Du finanzierst",communityImpactTitle:()=>"Gemeinsam finanzieren wir",personalImpactLinkCopy:({nonprofitName:a=""})=>`Mehr \xFCber ${a} erfahren`,communityImpactLinkCopy:({brandName:a=""})=>`Sieh dir den gesamten Beitrag der ${a}-Community an`,impactShareButton:()=>"Teile, um deinen Beitrag zu vergr\xF6\xDFern"},es:{descriptionTitle:({nonprofitName:a="una organizaci\xF3n"})=>`Generaste un impacto para ${a}`,descriptionSubtitle:({brandName:a=""})=>`Mira a continuaci\xF3n el impacto que tu compra de ${a} ha generado.`,yourImpactTitle:()=>"Est\xE1s financiando",communityImpactTitle:()=>"Juntos estamos financiando",personalImpactLinkCopy:({nonprofitName:a=""})=>`Conoce m\xE1s sobre ${a}`,communityImpactLinkCopy:({brandName:a=""})=>`Mira todo el impacto de la comunidad ${a}`,impactShareButton:()=>"Comparte para hacer crecer tu impacto"},it:{descriptionTitle:({nonprofitName:a="un'organizzazione"})=>`Hai creato un impatto per ${a}`,descriptionSubtitle:({brandName:a=""})=>`Scopri qui sotto l'impatto del tuo acquisto ${a}.`,yourImpactTitle:()=>"Stai finanziando",communityImpactTitle:()=>"Insieme stiamo finanziando",personalImpactLinkCopy:({nonprofitName:a=""})=>`Scopri di pi\xF9 su ${a}`,communityImpactLinkCopy:({brandName:a=""})=>`Guarda tutto l'impatto della comunit\xE0 ${a}`,impactShareButton:()=>"Condividi per far crescere il tuo impatto"},pl:{descriptionTitle:({nonprofitName:a="organizacj\u0119"})=>`Wywar\u0142a\u015B_e\u015B wp\u0142yw na ${a}`,descriptionSubtitle:({brandName:a=""})=>`Sprawd\u017A poni\u017Cej, jaki wp\u0142yw mia\u0142 Tw\xF3j zakup ${a}.`,yourImpactTitle:()=>"Finansujesz",communityImpactTitle:()=>"Razem finansujemy",personalImpactLinkCopy:({nonprofitName:a=""})=>`Dowiedz si\u0119 wi\u0119cej o ${a}`,communityImpactLinkCopy:({brandName:a=""})=>`Zobacz ca\u0142y wp\u0142yw spo\u0142eczno\u015Bci ${a}`,impactShareButton:()=>"Udost\u0119pnij, aby powi\u0119kszy\u0107 sw\xF3j wp\u0142yw"},ja:{descriptionTitle:({nonprofitName:a=""})=>`\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\uFF01${a}\u3078\u306E\u5BC4\u4ED8\u306B\u3088\u308A\u3001\u4E16\u754C\u306B\u78BA\u304B\u306A\u5909\u5316\u3092\u3082\u305F\u3089\u3057\u307E\u3057\u305F\u3002`,descriptionSubtitle:({brandName:a=""})=>`${a}\u3067\u306E\u3054\u8CFC\u5165\u304C\u3001\u3069\u306E\u3088\u3046\u306B\u4EBA\u3005\u306E\u5F79\u306B\u7ACB\u3064\u304B\u3092\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\u3002`,yourImpactTitle:()=>"\u3042\u306A\u305F\u306E\u652F\u63F4\u5B9F\u7E3E",communityImpactTitle:()=>"\u79C1\u305F\u3061\u306F\u5171\u306B\u652F\u63F4\u3057\u3066\u3044\u307E\u3059",personalImpactLinkCopy:({nonprofitName:a=""})=>`${a} \u306B\u3064\u3044\u3066\u8A73\u3057\u304F\u898B\u308B`,communityImpactLinkCopy:({brandName:a=""})=>`${a}\u30B3\u30DF\u30E5\u30CB\u30C6\u30A3\u306E\u6D3B\u52D5\u5B9F\u7E3E\u3092\u3059\u3079\u3066\u898B\u308B `,impactShareButton:()=>"SNS\u3067\u30B7\u30A7\u30A2\u3059\u308B"}};var J=Object.defineProperty,i=(a,e,r,p)=>{for(var n=void 0,m=a.length-1,o;m>=0;m--)(o=a[m])&&(n=o(e,r,n)||n);return n&&J(e,r,n),n};class t extends N{constructor(){super(...arguments),this.baseUrl=U,this.lang="en",this.debug=!1,this.draftConfig=!1,this.getImpactData=async()=>(G(["apiKey","userId","nonprofitId"],this),await D({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{nonprofitId:this.nonprofitId,beamUserId:this.userId,personalImpactLimit:1,communityImpactLimit:1,storeId:this.storeId,widgetName:A.impact_overview,version:"1.0.0",draftConfig:this.draftConfig,lang:this.configLang,discountCodes:this.discountCodes&&this.discountCodes.length>0?this.discountCodes:void 0,transactionId:this.transactionId??void 0}})),this.impactDataController=new P(this,this.getImpactData),this.resizeElements=F(()=>{h(this.impactTitleRefs),h(this.impactDescriptionRefs),h(this.impactLinkRefs),h(this.goalCompletionTextRefs)},50,{maxWait:50,leading:!0})}get configLang(){return R[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.resizeElements)}async updated(e){const r=["baseUrl","storeId","apiKey","userId","lang","discountCodes"];for(const p of r)if(e.has(p)){await this.impactDataController.exec();break}this.resizeElements(),await this.handleFontLoad(this.resizeElements)}disconnectedCallback(){window.removeEventListener("resize",this.resizeElements),document.fonts.removeEventListener("loadingdone",this.resizeElements),super.disconnectedCallback()}async handleFontLoad(e){if(document.fonts.status==="loading")return await document.fonts.ready.catch(r=>M.error(r)),e()}renderCard({imageUrl:e,title:r,percentFunded:p,goalProgressText:n,description:m,urlCopy:o,impactUrl:b,isImage:u,cardType:y,goalCompletionText:v}){return T`
|
|
2
2
|
<div class="impact-card ${u?"":"icon"}" part="impact-card">
|
|
3
3
|
<div class="${u?"":"icon-background "}">
|
|
4
4
|
<img src="${e}" alt="${r}" class="${u?"impact-card-image":"impact-card-icon"}" />
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impact-overview.js","sources":["../../src/components/impact-overview/strings.ts","../../src/components/impact-overview/index.ts"],"sourcesContent":["export const strings = {\n en: {\n descriptionTitle: ({ nonprofitName = \"a nonprofit\" }) => `You just made an impact for ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) => `Check out the impact your ${brandName} purchase made below.`,\n yourImpactTitle: () => `You’re funding`,\n communityImpactTitle: () => `Together we’re funding`,\n personalImpactLinkCopy: ({ nonprofitName = \"\" }) => `Learn about ${nonprofitName}`,\n communityImpactLinkCopy: ({ brandName = \"\" }) => `See all of the ${brandName} community's impact`,\n // share modal\n impactShareButton: () => `Share to Grow Your Impact`,\n },\n fr: {\n descriptionTitle: ({ nonprofitName = \"une organisation\" }) => `Vous avez créé un impact pour ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) => `Découvrez ci-dessous l'impact de votre achat ${brandName}.`,\n yourImpactTitle: () => `Vous financez`,\n communityImpactTitle: () => `Ensemble, nous finançons`,\n personalImpactLinkCopy: ({ nonprofitName = \"\" }) => `En savoir plus sur ${nonprofitName}`,\n communityImpactLinkCopy: ({ brandName = \"\" }) => `Voir tout l'impact de la communauté ${brandName}`,\n // share modal\n impactShareButton: () => `Partagez pour développer votre impact`,\n },\n de: {\n descriptionTitle: ({ nonprofitName = \"eine Organisation\" }) =>\n `Du hast einen Beitrag für ${nonprofitName} geleistet`,\n descriptionSubtitle: ({ brandName = \"\" }) =>\n `Sieh dir unten den Beitrag an, den dein ${brandName} Einkauf gemacht hat.`,\n yourImpactTitle: () => `Du finanzierst`,\n communityImpactTitle: () => `Gemeinsam finanzieren wir`,\n personalImpactLinkCopy: ({ nonprofitName = \"\" }) => `Mehr über ${nonprofitName} erfahren`,\n communityImpactLinkCopy: ({ brandName = \"\" }) => `Sieh dir den gesamten Beitrag der ${brandName}-Community an`,\n // share modal\n impactShareButton: () => `Teile, um deinen Beitrag zu vergrößern`,\n },\n es: {\n descriptionTitle: ({ nonprofitName = \"una organización\" }) => `Generaste un impacto para ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) =>\n `Mira a continuación el impacto que tu compra de ${brandName} ha generado.`,\n yourImpactTitle: () => `Estás financiando`,\n communityImpactTitle: () => `Juntos estamos financiando`,\n personalImpactLinkCopy: ({ nonprofitName = \"\" }) => `Conoce más sobre ${nonprofitName}`,\n communityImpactLinkCopy: ({ brandName = \"\" }) => `Mira todo el impacto de la comunidad ${brandName}`,\n // share modal\n impactShareButton: () => \"Comparte para hacer crecer tu impacto\",\n },\n it: {\n descriptionTitle: ({ nonprofitName = \"un'organizzazione\" }) => `Hai creato un impatto per ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) => `Scopri qui sotto l'impatto del tuo acquisto ${brandName}.`,\n yourImpactTitle: () => `Stai finanziando`,\n communityImpactTitle: () => `Insieme stiamo finanziando`,\n personalImpactLinkCopy: ({ nonprofitName = \"\" }) => `Scopri di più su ${nonprofitName}`,\n communityImpactLinkCopy: ({ brandName = \"\" }) => `Guarda tutto l'impatto della comunità ${brandName}`,\n // share modal\n impactShareButton: () => \"Condividi per far crescere il tuo impatto\",\n },\n pl: {\n descriptionTitle: ({ nonprofitName = \"organizację\" }) => `Wywarłaś_eś wpływ na ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) => `Sprawdź poniżej, jaki wpływ miał Twój zakup ${brandName}.`,\n yourImpactTitle: () => `Finansujesz`,\n communityImpactTitle: () => `Razem finansujemy`,\n personalImpactLinkCopy: ({ nonprofitName = \"\" }) => `Dowiedz się więcej o ${nonprofitName}`,\n communityImpactLinkCopy: ({ brandName = \"\" }) => `Zobacz cały wpływ społeczności ${brandName}`,\n // share modal\n impactShareButton: () => `Udostępnij, aby powiększyć swój wpływ`,\n },\n ja: {\n descriptionTitle: ({ nonprofitName = \"\" }) =>\n `ありがとうございます!${nonprofitName}への寄付により、世界に確かな変化をもたらしました。`,\n descriptionSubtitle: ({ brandName = \"\" }) =>\n `${brandName}でのご購入が、どのように人々の役に立つかをご確認ください。`,\n yourImpactTitle: () => `あなたの支援実績`,\n communityImpactTitle: () => `私たちは共に支援しています`,\n personalImpactLinkCopy: ({ nonprofitName = \"\" }) => `${nonprofitName} について詳しく見る`,\n communityImpactLinkCopy: ({ brandName = \"\" }) => `${brandName}コミュニティの活動実績をすべて見る `,\n // share modal\n impactShareButton: () => `SNSでシェアする`,\n },\n};\n","import { css, html, LitElement, PropertyValues } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { queryAll } from \"lit/decorators/query-all.js\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport debounce from \"lodash-es/debounce\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { LANGUAGES, TUrl } from \"../../api-sdk/types\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport \"../../shared/components/progress-bar\";\nimport { progressBarConfigDefaults } from \"../../shared/components/progress-bar\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { localizeUserString } from \"../../shared/localize\";\nimport { logger } from \"../../utils/logger\";\nimport \"../../shared/shoelace-components\";\nimport { syncElementHeights } from \"../../shared/sync-element-heights\";\nimport { TId, TNumericId } from \"../../shared/types\";\nimport \"../beam-partner-logos\";\nimport { partnerLogosConfigDefaults } from \"../beam-partner-logos\";\nimport { shareButtonConfigDefaults } from \"../../shared/components/share-button\";\nimport { cssResponsiveUtils } from \"../../shared/responsive\";\nimport { strings } from \"./strings\";\nimport \"../../shared/components/share-button\";\n\ntype RequiredConfig = {\n apiKey: string;\n nonprofitId: TNumericId;\n userId: TId;\n};\n\nexport class BeamImpactOverview extends LitElement {\n static tagName = \"beam-impact-overview\";\n\n @property({ type: String, reflect: true }) public baseUrl: TUrl = DEFAULT_BASE_URL;\n\n @property({ type: String, reflect: false }) apiKey?: RequiredConfig[\"apiKey\"];\n\n @property({ type: Number }) storeId?: number;\n\n @property({ type: String, reflect: true }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n\n @property({ type: String, reflect: true }) userId?: RequiredConfig[\"userId\"];\n\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n\n @property({ type: Boolean }) public debug = false;\n\n @property({ type: Boolean }) public draftConfig = false;\n\n @property({ type: String }) transactionId?: string;\n /**\n * @deprecated (v1.49.0) promoCodes and discountCodes will now be retrieved on the backend using transactionId\n */\n @property({ type: Object }) public discountCodes?: string[];\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n getImpactData = async () => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"userId\", \"nonprofitId\"], this)) throw new MissingConfig();\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n queryParams: {\n nonprofitId: this.nonprofitId,\n beamUserId: this.userId,\n personalImpactLimit: 1,\n communityImpactLimit: 1,\n storeId: this.storeId,\n widgetName: WIDGET_NAMES.impact_overview,\n version: \"1.0.0\",\n draftConfig: this.draftConfig,\n lang: this.configLang,\n discountCodes: this.discountCodes && this.discountCodes.length > 0 ? this.discountCodes : undefined,\n transactionId: this.transactionId ?? undefined,\n },\n });\n\n return res;\n };\n\n private impactDataController = new AsyncController<typeof this.getImpactData>(this, this.getImpactData);\n\n @queryAll(\".impact-card-title\")\n impactTitleRefs!: HTMLElement[];\n\n @queryAll(\".impact-card-description\")\n impactDescriptionRefs!: HTMLElement[];\n\n @queryAll(\".impact-link\")\n impactLinkRefs!: HTMLElement[];\n\n @queryAll(\".impact-card-goalCompletionText\")\n goalCompletionTextRefs!: HTMLElement[];\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.resizeElements);\n }\n\n async updated(changedProperties: PropertyValues): Promise<void> {\n // Reload nonprofit list on change of any of these props:\n // Also fires on first load as props go from undefined => value\n const requireNewDataProps = [\"baseUrl\", \"storeId\", \"apiKey\", \"userId\", \"lang\", \"discountCodes\"];\n for (const prop of requireNewDataProps) {\n if (changedProperties.has(prop)) {\n await this.impactDataController.exec();\n break;\n }\n }\n this.resizeElements(); // Handle layout shifts immediately\n await this.handleFontLoad(this.resizeElements); // If content change triggered font load, resize again\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.resizeElements);\n document.fonts.removeEventListener(\"loadingdone\", this.resizeElements);\n super.disconnectedCallback();\n }\n\n /**\n * Safari does not fire loading events on the document FontFaceSet, but it does implement the .ready Promise\n * Call this method to wait for font loads that may be triggered by content changes\n */\n async handleFontLoad<T = any>(callback: () => T | void) {\n if (document.fonts.status === \"loading\") {\n await document.fonts.ready.catch((e) => logger.error(e));\n return callback();\n }\n }\n\n resizeElements = debounce(\n () => {\n syncElementHeights(this.impactTitleRefs);\n syncElementHeights(this.impactDescriptionRefs);\n syncElementHeights(this.impactLinkRefs);\n syncElementHeights(this.goalCompletionTextRefs);\n },\n 50,\n { maxWait: 50, leading: true }\n );\n\n renderCard({\n imageUrl,\n title,\n percentFunded,\n goalProgressText,\n description,\n urlCopy,\n impactUrl,\n isImage,\n cardType,\n goalCompletionText,\n }: {\n imageUrl: TUrl;\n title: string;\n percentFunded: number;\n goalProgressText: string;\n description: string;\n urlCopy?: string;\n impactUrl: TUrl;\n isImage: boolean;\n cardType: string;\n goalCompletionText?: string;\n }) {\n return html`\n <div class=\"impact-card ${isImage ? \"\" : \"icon\"}\" part=\"impact-card\">\n <div class=\"${isImage ? \"\" : \"icon-background \"}\">\n <img src=\"${imageUrl}\" alt=\"${title}\" class=\"${isImage ? \"impact-card-image\" : \"impact-card-icon\"}\" />\n </div>\n <div class=\"${isImage ? \"\" : \"impact-icon-card-content\"}\" style=\"margin: 12px;\">\n <div class=\"impact-card-title\">${title}</div>\n <p class=\"impact-card-description\">${unsafeHTML(description)}</p>\n <div class=\"impact-card-goalCompletionText\">\n <p>${unsafeHTML(goalCompletionText)}</p>\n </div>\n <div class=\"impact-card-progress\" style=\"display: flex; align-items: center;\">\n <beam-progress-bar\n value=\"${percentFunded}\"\n style=\"flex: 1 0;\"\n class=\"impact-card-progressbar\"\n ></beam-progress-bar>\n <span class=\"impact-card-progressText\" style=\"flex: 0 1; margin-left: 10px; white-space: nowrap;\"\n >${localizeUserString(this.configLang, goalProgressText)}</span\n >\n </div>\n <p class=\"impact-link\" part=\"impact-link\">\n <a href=\"${impactUrl}\" target=\"_blank\" rel=\"noopener noreferrer\">\n ${cardType === \"personal\"\n ? strings[this.configLang].personalImpactLinkCopy({\n nonprofitName: urlCopy,\n })\n : strings[this.configLang].communityImpactLinkCopy({\n brandName: urlCopy,\n })}<span class=\"impact-link-arrow\"> ›</span>\n </a>\n </p>\n </div>\n </div>\n `;\n }\n\n render() {\n const { data, loading, error } = this.impactDataController;\n if (loading) {\n return _loading();\n }\n if (error) {\n if (this.debug) {\n return _errorMessage({ error });\n }\n return \"\";\n }\n if (data == null) {\n if (this.debug) {\n return _errorMessage({ error: new Error(\"No data\") });\n }\n return \"\";\n }\n const brandName = this.impactDataController.data?.chain.name;\n const cardStyle = this.cssVariables[\"--beam-ImpactOverview-cardStyle\"];\n const isImage = cardStyle === \"'image'\";\n const isSelectedIcon = cardStyle === \"'selected_icon'\";\n const personalImageUrl = data.personal[0]?.imageUrl || \"\";\n const communityImageUrl = data.community[0].imageUrl || \"\";\n const iconUrl = data.personal[0]?.nonprofit.causeIconUrl;\n const selectedIconUrl = data.personal[0]?.nonprofit.causeIconSelectedUrl;\n const personalCardImage = isImage ? personalImageUrl : isSelectedIcon ? selectedIconUrl : iconUrl;\n const communityCardImage = isImage ? communityImageUrl : isSelectedIcon ? selectedIconUrl : iconUrl;\n\n const shareImage =\n this.impactDataController.data?.promoAssetUrl || this.impactDataController.data?.personalImpactAssetUrl;\n const showShare = this.cssVariables[\"--beam-ImpactOverview-share-button-display\"] !== \"none\";\n const showShareMobile =\n showShare && this.cssVariables[\"--beam-ImpactOverview-share-button-display-mobile\"] !== \"none\";\n const showShareDesktop =\n showShare && this.cssVariables[\"--beam-ImpactOverview-share-button-display-desktop\"] !== \"none\";\n const shareIcon = this.cssVariables[\"--beam-ImpactOverview-share-button-icon-name\"] || \"share-2\";\n\n let shareButtonVisibilityClass = \"d-none\";\n if (showShareMobile) {\n shareButtonVisibilityClass = showShareDesktop ? \"d-block\" : \"d-lg-none\";\n } else {\n shareButtonVisibilityClass = showShareDesktop ? \"d-none d-lg-block\" : \"d-none\";\n }\n\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n\n <div>\n <beam-partner-logos\n partnerLogoUrl=\"${data.chain.logoUrl}\"\n partnerName=\"${data.chain.name}\"\n part=\"logos\"\n ></beam-partner-logos>\n </div>\n\n <div class=\"description\">\n <div class=\"title\" part=\"title\">\n ${localizeUserString(this.configLang, data.config?.web?.title) ||\n strings[this.configLang].descriptionTitle({ nonprofitName: data.personal[0].nonprofit.name })}\n </div>\n <div class=\"subtitle\" part=\"subtitle\">\n ${localizeUserString(this.configLang, data.config?.web?.description) ||\n strings[this.configLang].descriptionSubtitle({ brandName: data.chain.name })}\n </div>\n </div>\n\n <div class=\"${isImage ? \"impact-image-cards\" : \"impact-icon-cards\"}\" part=\"impact-cards\">\n <div class=\"impact your-impact ${isImage ? \"image-card-container\" : \"icon-card-container\"}\">\n ${this.renderCard({\n isImage,\n imageUrl: personalCardImage || \"\",\n title: strings[this.configLang].yourImpactTitle(),\n percentFunded: data.personal[0]?.impact?.goalProgressPercentage || 0,\n goalProgressText: data.personal[0]?.impact?.goalProgressText,\n description: localizeUserString(this.configLang, data.personal[0]?.impact?.description || \"\"),\n urlCopy: data.personal[0].nonprofit?.name,\n impactUrl: data.personal[0].nonprofit?.website || \"\",\n cardType: \"personal\",\n goalCompletionText: data.personal[0].impact.goalCompletionText,\n })}\n </div>\n <div class=\"impact community-impact ${isImage ? \"image-card-container\" : \"icon-card-container\"}\">\n ${this.renderCard({\n isImage,\n imageUrl: communityCardImage || \"\",\n title: strings[this.configLang].communityImpactTitle(),\n percentFunded: data.community[0].impact?.goalProgressPercentage || 0,\n goalProgressText: data.community[0]?.impact?.goalProgressText,\n description: localizeUserString(this.configLang, data.community[0].impact?.description || \"\"),\n urlCopy: data.chain.name,\n impactUrl:\n data.store.communityPageURL || data.chain.communityImpactUrl || data.personal[0].nonprofit.website || \"\",\n cardType: \"community\",\n goalCompletionText: data.community[0].impact.goalCompletionText,\n })}\n </div>\n </div>\n\n <div class=\"footer ${shareButtonVisibilityClass} shareButtonContainer\" part=\"social-share\">\n <beam-share-button\n imageUrl=\"${shareImage}\"\n brandName=\"${brandName}\"\n shareIcon=\"${shareIcon}\"\n buttonText=\"${strings[this.configLang].impactShareButton()}\"\n configLang=\"${this.configLang}\"\n baseUrl=\"${this.baseUrl}\"\n storeId=\"${this.storeId}\"\n nonprofitId=\"${this.nonprofitId}\"\n transactionId=\"${this.transactionId}\"\n apiKey=\"${this.apiKey}\"\n ></beam-share-button>\n </div>\n\n <div id=\"modal-root\"></div>\n `;\n }\n\n public get cssVariables() {\n const defaults = {\n \"--beam-fontFamily\": \"inherit\",\n \"--beam-fontStyle\": \"inherit\",\n \"--beam-fontSize\": \"inherit\",\n \"--beam-textColor\": \"inherit\",\n \"--beam-backgroundColor\": \"inherit\",\n ...partnerLogosConfigDefaults,\n ...progressBarConfigDefaults,\n ...shareButtonConfigDefaults,\n ...defineCustomText(\"--beam-ImpactOverview-title\", {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"10px\",\n textTransform: \"capitalize\",\n }),\n ...defineCustomText(\"--beam-ImpactOverview-subtitle\", {\n marginTop: \"5px\",\n }),\n \"--beam-ImpactOverview-impactCards-maxWidth\": \"650px\",\n \"--beam-ImpactOverview-impactCard-backgroundColor\": \"inherit\",\n \"--beam-ImpactOverview-impactCard-foregroundColor\": \"currentColor\",\n \"--beam-ImpactOverview-impactCard-borderColor\": \"currentColor\",\n \"--beam-ImpactOverview-impactCard-borderRadius\": \"5px\",\n \"--beam-ImpactOverview-impactCard-marginTop\": \"10px\",\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-title\", {\n fontSize: \"15px\",\n fontWeight: \"bold\",\n letterSpacing: \"0.36px\",\n }),\n \"--beam-ImpactOverview-impactCard-progress-marginTop\": \"8px\",\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-progressText\"),\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-description\", {\n marginTop: \"10px\",\n }),\n \"--beam-ImpactOverview-impactCard-linkArrow-display\": \"inline\",\n \"--beam-ImpactOverview-impactCard-link-color\": \"inherit\",\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-link\", {\n marginTop: \"10px\",\n textDecoration: \"underline\",\n textTransform: \"capitalize\",\n }),\n ...defineCustomText(\"--beam-ImpactOverview-goalCompletionText\", {\n marginTop: \"5px\",\n fontWeight: \"600\",\n textTransform: \"capitalize\",\n fontSize: \"13px\",\n }),\n \"--beam-ImpactOverview-share-button-display\": \"none\",\n \"--beam-ImpactOverview-share-button-display-mobile\": \"inherit\",\n \"--beam-ImpactOverview-share-button-display-desktop\": \"inherit\",\n \"--beam-ImpactOverview-image-display\": \"block\",\n \"--beam-ImpactOverview-cardStyle\": \"'image'\", // icon, selected_icon, image\n \"--beam-ImpactOverview-iconBackground-width\": \"75px\",\n \"--beam-ImpactOverview-iconBackground-height\": \"75px\",\n \"--beam-ImpactOverview-iconBackground-borderRadius\": \"50px\",\n \"--beam-ImpactOverview-icon-padding\": \"0px\",\n \"--beam-ImpactOverview-iconBackground-background\": \"#f3f3f3\",\n \"--beam-ImpactOverview-impactCard-shareButton-background\": \"#fff\",\n \"--beam-ImpactOverview-impactCard-shareButton-boxShadow\": \"0px -20px 20px 0px rgb(0 0 0 / 2%)\",\n };\n\n const remoteConfig = this.impactDataController?.data?.config?.web?.theme || {};\n\n const config = { ...defaults, ...remoteConfig };\n\n const serializable = Object.create({\n toCSS() {\n return _cssVariableMap(this as Record<string, string>);\n },\n });\n\n return Object.assign(serializable, config);\n }\n\n static styles = [\n cssReset,\n cssResponsiveUtils,\n css`\n :host {\n display: block;\n font-family: var(--beam-fontFamily);\n font-style: var(--beam-fontStyle);\n font-size: var(--beam-fontSize);\n background-color: var(--beam-backgroundColor);\n color: var(--beam-textColor);\n max-width: var(--beam-ImpactOverview-impactCards-maxWidth, 650px);\n word-break: normal;\n }\n .icon {\n display: flex;\n align-items: center;\n }\n .icon-background {\n width: var(--beam-ImpactOverview-iconBackground-width, 75px);\n height: var(--beam-ImpactOverview-iconBackground-height, 75px);\n border-radius: var(--beam-ImpactOverview-iconBackground-borderRadius, 50px);\n padding: var(--beam-ImpactOverview-icon-padding, 0px);\n margin: 8px;\n overflow: hidden;\n background: var(--beam-ImpactOverview-iconBackground-background, #f3f3f3);\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .impact-icon-card-content {\n flex: 3 1 75%;\n }\n .impact-image-cards {\n max-width: var(--beam-ImpactOverview-impactCards-maxWidth);\n display: flex;\n flex-wrap: wrap;\n gap: 15px;\n margin: 10px 0;\n }\n .impact-icon-cards {\n max-width: var(--beam-ImpactOverview-impactCards-maxWidth);\n margin: 10px 0;\n }\n .impact-card {\n padding-bottom: 5px;\n margin-top: var(--beam-ImpactOverview-impactCard-marginTop);\n background-color: var(--beam-ImpactOverview-impactCard-backgroundColor);\n border: 1px solid var(--beam-ImpactOverview-impactCard-borderColor);\n border-radius: var(--beam-ImpactOverview-impactCard-borderRadius);\n overflow: hidden; /* maintain clean border-radius */\n color: var(--beam-ImpactOverview-impactCard-foregroundColor);\n }\n .impact-card-image {\n object-fit: cover;\n height: 110px;\n width: 100%;\n display: var(--beam-ImpactOverview-image-display);\n }\n .impact-card-icon {\n flex: 1 1 10%;\n max-width: 50%;\n display: var(--beam-ImpactOverview-image-display);\n }\n .image-card-container {\n flex: 1 1;\n display: inline-block;\n min-width: 200px;\n max-width: 100%;\n }\n .icon-card-container {\n max-width: 100%;\n min-width: 299px;\n }\n .impact-card-progress {\n margin-top: var(--beam-ImpactOverview-impactCard-progress-marginTop);\n }\n .shareButtonContainer {\n position: sticky;\n bottom: 0;\n z-index: 999;\n background-color: var(--beam-ImpactOverview-impactCard-shareButton-background);\n box-shadow: var(--beam-ImpactOverview-impactCard-shareButton-boxShadow);\n }\n .title {\n ${useCustomText(\"--beam-ImpactOverview-title\")}\n }\n .subtitle {\n ${useCustomText(\"--beam-ImpactOverview-subtitle\")}\n }\n .impact-card-title {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-title\")}\n }\n .impact-card-progressText {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-progressText\")}\n }\n .impact-card-description {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-description\")}\n }\n .impact-link {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-link\")}\n }\n .impact-link-arrow {\n display: var(--beam-ImpactOverview-impactCard-linkArrow-display, \"inline\");\n }\n .impact-link a,\n .impact-link a:visited {\n color: var(--beam-ImpactOverview-impactCard-link-color, inherit);\n }\n .impact-card-goalCompletionText {\n ${useCustomText(\"--beam-ImpactOverview-goalCompletionText\")}\n }\n .footer {\n text-align: center;\n }\n `,\n css`\n .button {\n cursor: pointer;\n }\n .icon-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n .plain-button {\n border: none;\n background: none;\n font-size: inherit;\n font-family: inherit;\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamImpactOverview);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-impact-overview\": BeamImpactOverview;\n }\n}\n"],"names":["strings","nonprofitName","brandName","R","h","d","e","a","t","n","s","BeamImpactOverview","LitElement","DEFAULT_BASE_URL","enforceConfig","getImpact","WIDGET_NAMES","AsyncController","debounce","syncElementHeights","SUPPORTED_LANGUAGES","changedProperties","requireNewDataProps","prop","callback","logger","imageUrl","title","percentFunded","goalProgressText","description","urlCopy","impactUrl","isImage","cardType","goalCompletionText","html","unsafeHTML","localizeUserString","data","loading","error","_loading","_errorMessage","cardStyle","isSelectedIcon","personalImageUrl","communityImageUrl","iconUrl","selectedIconUrl","personalCardImage","communityCardImage","shareImage","showShare","showShareMobile","showShareDesktop","shareIcon","shareButtonVisibilityClass","defaults","partnerLogosConfigDefaults","progressBarConfigDefaults","shareButtonConfigDefaults","defineCustomText","remoteConfig","config","_cssVariableMap","cssReset","cssResponsiveUtils","css","useCustomText","__decorateClass","property","queryAll","defineCustomElement"],"mappings":"kgCAAO,MAAMA,EAAU,CACrB,GAAI,CACF,iBAAkB,CAAC,CAAE,cAAAC,EAAgB,aAAc,IAAM,+BAA+BA,CAAa,GACrG,oBAAqB,CAAC,CAAE,UAAAC,EAAY,EAAG,IAAM,6BAA6BA,CAAS,wBACnF,gBAAiB,IAAM,sBACvB,qBAAsB,IAAM,8BAC5B,uBAAwB,CAAC,CAAE,cAAAD,EAAgB,EAAG,IAAM,eAAeA,CAAa,GAChF,wBAAyB,CAAC,CAAE,UAAAC,EAAY,EAAG,IAAM,kBAAkBA,CAAS,sBAE5E,kBAAmB,IAAM,2BAC3B,EACA,GAAI,CACF,iBAAkB,CAAC,CAAE,cAAAD,EAAgB,kBAAmB,IAAM,uCAAiCA,CAAa,GAC5G,oBAAqB,CAAC,CAAE,UAAAC,EAAY,EAAG,IAAM,mDAAgDA,CAAS,IACtG,gBAAiB,IAAM,gBACvB,qBAAsB,IAAM,8BAC5B,uBAAwB,CAAC,CAAE,cAAAD,EAAgB,EAAG,IAAM,sBAAsBA,CAAa,GACvF,wBAAyB,CAAC,CAAE,UAAAC,EAAY,EAAG,IAAM,0CAAuCA,CAAS,GAEjG,kBAAmB,IAAM,0CAC3B,EACA,GAAI,CACF,iBAAkB,CAAC,CAAE,cAAAD,EAAgB,mBAAoB,IACvD,gCAA6BA,CAAa,aAC5C,oBAAqB,CAAC,CAAE,UAAAC,EAAY,EAAG,IACrC,2CAA2CA,CAAS,wBACtD,gBAAiB,IAAM,iBACvB,qBAAsB,IAAM,4BAC5B,uBAAwB,CAAC,CAAE,cAAAD,EAAgB,EAAG,IAAM,gBAAaA,CAAa,YAC9E,wBAAyB,CAAC,CAAE,UAAAC,EAAY,EAAG,IAAM,qCAAqCA,CAAS,gBAE/F,kBAAmB,IAAM,8CAC3B,EACA,GAAI,CACF,iBAAkB,CAAC,CAAE,cAAAD,EAAgB,qBAAmB,IAAM,6BAA6BA,CAAa,GACxG,oBAAqB,CAAC,CAAE,UAAAC,EAAY,EAAG,IACrC,sDAAmDA,CAAS,gBAC9D,gBAAiB,IAAM,uBACvB,qBAAsB,IAAM,6BAC5B,uBAAwB,CAAC,CAAE,cAAAD,EAAgB,EAAG,IAAM,uBAAoBA,CAAa,GACrF,wBAAyB,CAAC,CAAE,UAAAC,EAAY,EAAG,IAAM,wCAAwCA,CAAS,GAElG,kBAAmB,IAAM,uCAC3B,EACA,GAAI,CACF,iBAAkB,CAAC,CAAE,cAAAD,EAAgB,mBAAoB,IAAM,6BAA6BA,CAAa,GACzG,oBAAqB,CAAC,CAAE,UAAAC,EAAY,EAAG,IAAM,+CAA+CA,CAAS,IACrG,gBAAiB,IAAM,mBACvB,qBAAsB,IAAM,6BAC5B,uBAAwB,CAAC,CAAE,cAAAD,EAAgB,EAAG,IAAM,uBAAoBA,CAAa,GACrF,wBAAyB,CAAC,CAAE,UAAAC,EAAY,EAAG,IAAM,4CAAyCA,CAAS,GAEnG,kBAAmB,IAAM,2CAC3B,EACA,GAAI,CACF,iBAAkB,CAAC,CAAE,cAAAD,EAAgB,kBAAc,IAAM,4CAAwBA,CAAa,GAC9F,oBAAqB,CAAC,CAAE,UAAAC,EAAY,EAAG,IAAM,sEAA+CA,CAAS,IACrG,gBAAiB,IAAM,cACvB,qBAAsB,IAAM,oBAC5B,uBAAwB,CAAC,CAAE,cAAAD,EAAgB,EAAG,IAAM,kCAAwBA,CAAa,GACzF,wBAAyB,CAAC,CAAE,UAAAC,EAAY,EAAG,IAAM,sDAAkCA,CAAS,GAE5F,kBAAmB,IAAM,8DAC3B,EACA,GAAI,CACF,iBAAkB,CAAC,CAAE,cAAAD,EAAgB,EAAG,IACtC,qEAAcA,CAAa,yJAC7B,oBAAqB,CAAC,CAAE,UAAAC,EAAY,EAAG,IACrC,GAAGA,CAAS,iLACd,gBAAiB,IAAM,mDACvB,qBAAsB,IAAM,iFAC5B,uBAAwB,CAAC,CAAE,cAAAD,EAAgB,EAAG,IAAM,GAAGA,CAAa,0DACpE,wBAAyB,CAAC,CAAE,UAAAC,EAAY,EAAG,IAAM,GAAGA,CAAS,0GAE7D,kBAAmB,IAAM,yCAC3B,CACF,EC5EA,IAAAC,EAAA,OAAA,eAAA,EAAA,CAAAC,EAAAC,EAAAC,EAAAC,IAAA,CAAA,QAAAC,EAAA,OAAAC,EAAAL,EAAA,OAAA,EAAAM,EAAAD,GAAA,EAAAA,KAAAC,EAAAN,EAAAK,CAAA,KAAAD,EAAAE,EAAAL,EAAAC,EAAAE,CAAA,GAAAA,GAAA,OAAAA,GAAAL,EAAAE,EAAAC,EAAAE,CAAA,EAAAA,CAAA,EAqCa,MAAAG,UAA2BC,CAAW,CAA5C,kCAGsC,KAAO,QAAgBC,EAUtC,KAAO,KAAkB,KAExB,KAAO,MAAQ,GAEf,KAAO,YAAc,GAYlD,KAAgB,cAAA,UACTC,EAA8B,CAAC,SAAU,SAAU,aAAa,EAAG,IAAI,EAChE,MAAMC,EAAU,CAC1B,QAAS,KAAK,QACd,QAAS,CACP,cAAe,WAAW,KAAK,MAAM,EACvC,EACA,YAAa,CACX,YAAa,KAAK,YAClB,WAAY,KAAK,OACjB,oBAAqB,EACrB,qBAAsB,EACtB,QAAS,KAAK,QACd,WAAYC,EAAa,gBACzB,QAAS,QACT,YAAa,KAAK,YAClB,KAAM,KAAK,WACX,cAAe,KAAK,eAAiB,KAAK,cAAc,OAAS,EAAI,KAAK,cAAgB,OAC1F,cAAe,KAAK,eAAiB,MACvC,CACF,CAAC,GAKH,KAAQ,qBAAuB,IAAIC,EAA2C,KAAM,KAAK,aAAa,EAkDtG,oBAAiBC,EACf,IAAM,CACJC,EAAmB,KAAK,eAAe,EACvCA,EAAmB,KAAK,qBAAqB,EAC7CA,EAAmB,KAAK,cAAc,EACtCA,EAAmB,KAAK,sBAAsB,CAChD,EACA,GACA,CAAE,QAAS,GAAI,QAAS,EAAK,CAC/B,CAAA,CAxFA,IAAI,YAAa,CACf,OAAOC,EAAoB,KAAK,IAAI,GAAK,IAC3C,CAyCA,mBAAoB,CAClB,MAAM,kBAAkB,EACxB,OAAO,iBAAiB,SAAU,KAAK,cAAc,CACvD,CAEA,MAAM,QAAQC,EAAkD,CAG9D,MAAMC,EAAsB,CAAC,UAAW,UAAW,SAAU,SAAU,OAAQ,eAAe,EAC9F,UAAWC,KAAQD,EACjB,GAAID,EAAkB,IAAIE,CAAI,EAAG,CAC/B,MAAM,KAAK,qBAAqB,KAAK,EACrC,KACF,CAEF,KAAK,iBACL,MAAM,KAAK,eAAe,KAAK,cAAc,CAC/C,CAEA,sBAAuB,CACrB,OAAO,oBAAoB,SAAU,KAAK,cAAc,EACxD,SAAS,MAAM,oBAAoB,cAAe,KAAK,cAAc,EACrE,MAAM,qBACR,CAAA,CAMA,MAAM,eAAwBC,EAA0B,CACtD,GAAI,SAAS,MAAM,SAAW,UAC5B,OAAA,MAAM,SAAS,MAAM,MAAM,MAAOlB,GAAMmB,EAAO,MAAMnB,CAAC,CAAC,EAChDkB,EAAS,CAEpB,CAaA,WAAW,CACT,SAAAE,EACA,MAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,YAAAC,EACA,QAAAC,EACA,UAAAC,EACA,QAAAC,EACA,SAAAC,EACA,mBAAAC,CACF,EAWG,CACD,OAAOC;AAAAA,gCACqBH,EAAU,GAAK,MAAM;AAAA,sBAC/BA,EAAU,GAAK,kBAAkB;AAAA,sBACjCP,CAAQ,UAAUC,CAAK,YAAYM,EAAU,oBAAsB,kBAAkB;AAAA;AAAA,sBAErFA,EAAU,GAAK,0BAA0B;AAAA,2CACpBN,CAAK;AAAA,+CACDU,EAAWP,CAAW,CAAC;AAAA;AAAA,iBAErDO,EAAWF,CAAkB,CAAC;AAAA;AAAA;AAAA;AAAA,uBAIxBP,CAAa;AAAA;AAAA;AAAA;AAAA;AAAA,iBAKnBU,EAAmB,KAAK,WAAYT,CAAgB,CAAC;AAAA;AAAA;AAAA;AAAA,uBAI/CG,CAAS;AAAA,gBAChBE,IAAa,WACXlC,EAAQ,KAAK,UAAU,EAAE,uBAAuB,CAC9C,cAAe+B,CACjB,CAAC,EACD/B,EAAQ,KAAK,UAAU,EAAE,wBAAwB,CAC/C,UAAW+B,CACb,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,KAMlB,CAEA,QAAS,CACP,KAAM,CAAE,KAAAQ,EAAM,QAAAC,EAAS,MAAAC,CAAM,EAAI,KAAK,qBACtC,GAAID,EACF,OAAOE,IAET,GAAID,EACF,OAAI,KAAK,MACAE,EAAc,CAAE,MAAAF,CAAM,CAAC,EAEzB,GAET,GAAIF,GAAQ,KACV,OAAI,KAAK,MACAI,EAAc,CAAE,MAAO,IAAI,MAAM,SAAS,CAAE,CAAC,EAE/C,GAET,MAAMzC,EAAY,KAAK,qBAAqB,MAAM,MAAM,KAClD0C,EAAY,KAAK,aAAa,iCAAiC,EAC/DX,EAAUW,IAAc,UACxBC,EAAiBD,IAAc,kBAC/BE,EAAmBP,EAAK,SAAS,CAAC,GAAG,UAAY,GACjDQ,EAAoBR,EAAK,UAAU,CAAC,EAAE,UAAY,GAClDS,EAAUT,EAAK,SAAS,CAAC,GAAG,UAAU,aACtCU,EAAkBV,EAAK,SAAS,CAAC,GAAG,UAAU,qBAC9CW,EAAoBjB,EAAUa,EAAmBD,EAAiBI,EAAkBD,EACpFG,EAAqBlB,EAAUc,EAAoBF,EAAiBI,EAAkBD,EAEtFI,EACJ,KAAK,qBAAqB,MAAM,eAAiB,KAAK,qBAAqB,MAAM,uBAC7EC,EAAY,KAAK,aAAa,4CAA4C,IAAM,OAChFC,EACJD,GAAa,KAAK,aAAa,mDAAmD,IAAM,OACpFE,EACJF,GAAa,KAAK,aAAa,oDAAoD,IAAM,OACrFG,EAAY,KAAK,aAAa,8CAA8C,GAAK,UAEvF,IAAIC,EAA6B,SACjC,OAAIH,EACFG,EAA6BF,EAAmB,UAAY,YAE5DE,EAA6BF,EAAmB,oBAAsB,SAGjEnB;AAAAA;AAAAA;AAAAA,YAGC,KAAK,aAAa,MAAO,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAMTG,EAAK,MAAM,OAAO;AAAA,yBACrBA,EAAK,MAAM,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAO5BD,EAAmB,KAAK,WAAYC,EAAK,QAAQ,KAAK,KAAK,GAC7DvC,EAAQ,KAAK,UAAU,EAAE,iBAAiB,CAAE,cAAeuC,EAAK,SAAS,CAAC,EAAE,UAAU,IAAK,CAAC,CAAC;AAAA;AAAA;AAAA,YAG3FD,EAAmB,KAAK,WAAYC,EAAK,QAAQ,KAAK,WAAW,GACnEvC,EAAQ,KAAK,UAAU,EAAE,oBAAoB,CAAE,UAAWuC,EAAK,MAAM,IAAK,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,oBAIlEN,EAAU,qBAAuB,mBAAmB;AAAA,yCAC/BA,EAAU,uBAAyB,qBAAqB;AAAA,YACrF,KAAK,WAAW,CAChB,QAAAA,EACA,SAAUiB,GAAqB,GAC/B,MAAOlD,EAAQ,KAAK,UAAU,EAAE,gBAAgB,EAChD,cAAeuC,EAAK,SAAS,CAAC,GAAG,QAAQ,wBAA0B,EACnE,iBAAkBA,EAAK,SAAS,CAAC,GAAG,QAAQ,iBAC5C,YAAaD,EAAmB,KAAK,WAAYC,EAAK,SAAS,CAAC,GAAG,QAAQ,aAAe,EAAE,EAC5F,QAASA,EAAK,SAAS,CAAC,EAAE,WAAW,KACrC,UAAWA,EAAK,SAAS,CAAC,EAAE,WAAW,SAAW,GAClD,SAAU,WACV,mBAAoBA,EAAK,SAAS,CAAC,EAAE,OAAO,kBAC9C,CAAC,CAAC;AAAA;AAAA,8CAEkCN,EAAU,uBAAyB,qBAAqB;AAAA,YAC1F,KAAK,WAAW,CAChB,QAAAA,EACA,SAAUkB,GAAsB,GAChC,MAAOnD,EAAQ,KAAK,UAAU,EAAE,qBAChC,EAAA,cAAeuC,EAAK,UAAU,CAAC,EAAE,QAAQ,wBAA0B,EACnE,iBAAkBA,EAAK,UAAU,CAAC,GAAG,QAAQ,iBAC7C,YAAaD,EAAmB,KAAK,WAAYC,EAAK,UAAU,CAAC,EAAE,QAAQ,aAAe,EAAE,EAC5F,QAASA,EAAK,MAAM,KACpB,UACEA,EAAK,MAAM,kBAAoBA,EAAK,MAAM,oBAAsBA,EAAK,SAAS,CAAC,EAAE,UAAU,SAAW,GACxG,SAAU,YACV,mBAAoBA,EAAK,UAAU,CAAC,EAAE,OAAO,kBAC/C,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,2BAIekB,CAA0B;AAAA;AAAA,sBAE/BL,CAAU;AAAA,uBACTlD,CAAS;AAAA,uBACTsD,CAAS;AAAA,wBACRxD,EAAQ,KAAK,UAAU,EAAE,mBAAmB;AAAA,wBAC5C,KAAK,UAAU;AAAA,qBAClB,KAAK,OAAO;AAAA,qBACZ,KAAK,OAAO;AAAA,yBACR,KAAK,WAAW;AAAA,2BACd,KAAK,aAAa;AAAA,oBACzB,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,KAM7B,CAEA,IAAW,cAAe,CACxB,MAAM0D,EAAW,CACf,oBAAqB,UACrB,mBAAoB,UACpB,kBAAmB,UACnB,mBAAoB,UACpB,yBAA0B,UAC1B,GAAGC,EACH,GAAGC,EACH,GAAGC,EACH,GAAGC,EAAiB,8BAA+B,CACjD,SAAU,OACV,WAAY,OACZ,UAAW,OACX,cAAe,YACjB,CAAC,EACD,GAAGA,EAAiB,iCAAkC,CACpD,UAAW,KACb,CAAC,EACD,6CAA8C,QAC9C,mDAAoD,UACpD,mDAAoD,eACpD,+CAAgD,eAChD,gDAAiD,MACjD,6CAA8C,OAC9C,GAAGA,EAAiB,yCAA0C,CAC5D,SAAU,OACV,WAAY,OACZ,cAAe,QACjB,CAAC,EACD,sDAAuD,MACvD,GAAGA,EAAiB,+CAA+C,EACnE,GAAGA,EAAiB,+CAAgD,CAClE,UAAW,MACb,CAAC,EACD,qDAAsD,SACtD,8CAA+C,UAC/C,GAAGA,EAAiB,wCAAyC,CAC3D,UAAW,OACX,eAAgB,YAChB,cAAe,YACjB,CAAC,EACD,GAAGA,EAAiB,2CAA4C,CAC9D,UAAW,MACX,WAAY,MACZ,cAAe,aACf,SAAU,MACZ,CAAC,EACD,6CAA8C,OAC9C,oDAAqD,UACrD,qDAAsD,UACtD,sCAAuC,QACvC,kCAAmC,UACnC,6CAA8C,OAC9C,8CAA+C,OAC/C,oDAAqD,OACrD,qCAAsC,MACtC,kDAAmD,UACnD,0DAA2D,OAC3D,yDAA0D,oCAC5D,EAEMC,EAAe,KAAK,sBAAsB,MAAM,QAAQ,KAAK,OAAS,CAAC,EAEvEC,EAAS,CAAE,GAAGN,EAAU,GAAGK,CAAa,EAQ9C,OAAO,OAAO,OANO,OAAO,OAAO,CACjC,OAAQ,CACN,OAAOE,EAAgB,IAA8B,CACvD,CACF,CAAC,EAEkCD,CAAM,CAC3C,CAuIF,CAxfarD,EACJ,QAAU,uBADNA,EAmXJ,OAAS,CACduD,EACAC,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,UAkFMC,EAAc,6BAA6B,CAAC;AAAA;AAAA;AAAA,UAG5CA,EAAc,gCAAgC,CAAC;AAAA;AAAA;AAAA,UAG/CA,EAAc,wCAAwC,CAAC;AAAA;AAAA;AAAA,UAGvDA,EAAc,+CAA+C,CAAC;AAAA;AAAA;AAAA,UAG9DA,EAAc,8CAA8C,CAAC;AAAA;AAAA;AAAA,UAG7DA,EAAc,uCAAuC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAUtDA,EAAc,0CAA0C,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,MAM/DD;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,KAgBF,EApfkDE,EAAA,CAAjDC,EAAS,CAAE,KAAM,OAAQ,QAAS,EAAK,CAAC,CAH9B,EAAA5D,EAGuC,qBAEN2D,EAAA,CAA3CC,EAAS,CAAE,KAAM,OAAQ,QAAS,EAAM,CAAC,CAL/B,EAAA5D,EAKiC,UAEhB2D,QAAAA,EAAAA,EAAA,CAA3BC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EAPf5D,EAOiB,UAAA,SAAA,EAEe2D,EAAA,CAA1CC,EAAS,CAAE,KAAM,OAAQ,QAAS,EAAK,CAAC,CAT9B,EAAA5D,EASgC,UAEA2D,aAAAA,EAAAA,EAAA,CAA1CC,EAAS,CAAE,KAAM,OAAQ,QAAS,EAAK,CAAC,CAAA,EAX9B5D,EAWgC,UAER2D,QAAAA,EAAAA,EAAA,CAAlCC,EAAS,CAAE,KAAM,MAAO,CAAC,GAbf5D,EAawB,UAAA,MAAA,EAEC2D,EAAA,CAAnCC,EAAS,CAAE,KAAM,OAAQ,CAAC,CAAA,EAfhB5D,EAeyB,UAAA,OAAA,EAEA2D,EAAA,CAAnCC,EAAS,CAAE,KAAM,OAAQ,CAAC,CAjBhB,EAAA5D,EAiByB,UAER2D,aAAAA,EAAAA,EAAA,CAA3BC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EAnBf5D,EAmBiB,UAAA,eAAA,EAIO2D,EAAA,CAAlCC,EAAS,CAAE,KAAM,MAAO,CAAC,CAvBf,EAAA5D,EAuBwB,UAkCnC2D,eAAAA,EAAAA,EAAA,CADCE,EAAS,oBAAoB,CAxDnB,EAAA7D,EAyDX,UAGA2D,iBAAAA,EAAAA,EAAA,CADCE,EAAS,0BAA0B,CA3DzB,EAAA7D,EA4DX,UAGA2D,uBAAAA,EAAAA,EAAA,CADCE,EAAS,cAAc,CAAA,EA9Db7D,EA+DX,UAGA2D,gBAAAA,EAAAA,EAAA,CADCE,EAAS,iCAAiC,CAAA,EAjEhC7D,EAkEX,UAAA,wBAAA,EAwbF8D,EAAoB9D,CAAkB"}
|
|
1
|
+
{"version":3,"file":"impact-overview.js","sources":["../../src/components/impact-overview/strings.ts","../../src/components/impact-overview/index.ts"],"sourcesContent":["export const strings = {\n en: {\n descriptionTitle: ({ nonprofitName = \"a nonprofit\" }) => `You just made an impact for ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) => `Check out the impact your ${brandName} purchase made below.`,\n yourImpactTitle: () => `You’re funding`,\n communityImpactTitle: () => `Together we’re funding`,\n personalImpactLinkCopy: ({ nonprofitName = \"\" }) => `Learn about ${nonprofitName}`,\n communityImpactLinkCopy: ({ brandName = \"\" }) => `See all of the ${brandName} community's impact`,\n // share modal\n impactShareButton: () => `Share to Grow Your Impact`,\n },\n fr: {\n descriptionTitle: ({ nonprofitName = \"une organisation\" }) => `Vous avez créé un impact pour ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) => `Découvrez ci-dessous l'impact de votre achat ${brandName}.`,\n yourImpactTitle: () => `Vous financez`,\n communityImpactTitle: () => `Ensemble, nous finançons`,\n personalImpactLinkCopy: ({ nonprofitName = \"\" }) => `En savoir plus sur ${nonprofitName}`,\n communityImpactLinkCopy: ({ brandName = \"\" }) => `Voir tout l'impact de la communauté ${brandName}`,\n // share modal\n impactShareButton: () => `Partagez pour développer votre impact`,\n },\n de: {\n descriptionTitle: ({ nonprofitName = \"eine Organisation\" }) =>\n `Du hast einen Beitrag für ${nonprofitName} geleistet`,\n descriptionSubtitle: ({ brandName = \"\" }) =>\n `Sieh dir unten den Beitrag an, den dein ${brandName} Einkauf gemacht hat.`,\n yourImpactTitle: () => `Du finanzierst`,\n communityImpactTitle: () => `Gemeinsam finanzieren wir`,\n personalImpactLinkCopy: ({ nonprofitName = \"\" }) => `Mehr über ${nonprofitName} erfahren`,\n communityImpactLinkCopy: ({ brandName = \"\" }) => `Sieh dir den gesamten Beitrag der ${brandName}-Community an`,\n // share modal\n impactShareButton: () => `Teile, um deinen Beitrag zu vergrößern`,\n },\n es: {\n descriptionTitle: ({ nonprofitName = \"una organización\" }) => `Generaste un impacto para ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) =>\n `Mira a continuación el impacto que tu compra de ${brandName} ha generado.`,\n yourImpactTitle: () => `Estás financiando`,\n communityImpactTitle: () => `Juntos estamos financiando`,\n personalImpactLinkCopy: ({ nonprofitName = \"\" }) => `Conoce más sobre ${nonprofitName}`,\n communityImpactLinkCopy: ({ brandName = \"\" }) => `Mira todo el impacto de la comunidad ${brandName}`,\n // share modal\n impactShareButton: () => \"Comparte para hacer crecer tu impacto\",\n },\n it: {\n descriptionTitle: ({ nonprofitName = \"un'organizzazione\" }) => `Hai creato un impatto per ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) => `Scopri qui sotto l'impatto del tuo acquisto ${brandName}.`,\n yourImpactTitle: () => `Stai finanziando`,\n communityImpactTitle: () => `Insieme stiamo finanziando`,\n personalImpactLinkCopy: ({ nonprofitName = \"\" }) => `Scopri di più su ${nonprofitName}`,\n communityImpactLinkCopy: ({ brandName = \"\" }) => `Guarda tutto l'impatto della comunità ${brandName}`,\n // share modal\n impactShareButton: () => \"Condividi per far crescere il tuo impatto\",\n },\n pl: {\n descriptionTitle: ({ nonprofitName = \"organizację\" }) => `Wywarłaś_eś wpływ na ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) => `Sprawdź poniżej, jaki wpływ miał Twój zakup ${brandName}.`,\n yourImpactTitle: () => `Finansujesz`,\n communityImpactTitle: () => `Razem finansujemy`,\n personalImpactLinkCopy: ({ nonprofitName = \"\" }) => `Dowiedz się więcej o ${nonprofitName}`,\n communityImpactLinkCopy: ({ brandName = \"\" }) => `Zobacz cały wpływ społeczności ${brandName}`,\n // share modal\n impactShareButton: () => `Udostępnij, aby powiększyć swój wpływ`,\n },\n ja: {\n descriptionTitle: ({ nonprofitName = \"\" }) =>\n `ありがとうございます!${nonprofitName}への寄付により、世界に確かな変化をもたらしました。`,\n descriptionSubtitle: ({ brandName = \"\" }) =>\n `${brandName}でのご購入が、どのように人々の役に立つかをご確認ください。`,\n yourImpactTitle: () => `あなたの支援実績`,\n communityImpactTitle: () => `私たちは共に支援しています`,\n personalImpactLinkCopy: ({ nonprofitName = \"\" }) => `${nonprofitName} について詳しく見る`,\n communityImpactLinkCopy: ({ brandName = \"\" }) => `${brandName}コミュニティの活動実績をすべて見る `,\n // share modal\n impactShareButton: () => `SNSでシェアする`,\n },\n};\n","import { css, html, LitElement, PropertyValues } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { queryAll } from \"lit/decorators/query-all.js\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport debounce from \"lodash-es/debounce\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { LANGUAGES, TUrl } from \"../../api-sdk/types\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport \"../../shared/components/progress-bar\";\nimport { progressBarConfigDefaults } from \"../../shared/components/progress-bar\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { localizeUserString } from \"../../shared/localize\";\nimport { logger } from \"../../utils/logger\";\nimport \"../../shared/shoelace-components\";\nimport { syncElementHeights } from \"../../shared/sync-element-heights\";\nimport { TId, TNumericId } from \"../../shared/types\";\nimport \"../beam-partner-logos\";\nimport { partnerLogosConfigDefaults } from \"../beam-partner-logos\";\nimport { shareButtonConfigDefaults } from \"../../shared/components/share-button\";\nimport { cssResponsiveUtils } from \"../../shared/responsive\";\nimport { strings } from \"./strings\";\nimport \"../../shared/components/share-button\";\n\ntype RequiredConfig = {\n apiKey: string;\n nonprofitId: TNumericId;\n userId: TId;\n};\n\nexport class BeamImpactOverview extends LitElement {\n static tagName = \"beam-impact-overview\";\n\n @property({ type: String, reflect: true }) public baseUrl: TUrl = DEFAULT_BASE_URL;\n\n @property({ type: String, reflect: false }) apiKey?: RequiredConfig[\"apiKey\"];\n\n @property({ type: Number }) storeId?: number;\n\n @property({ type: String, reflect: true }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n\n @property({ type: String, reflect: true }) userId?: RequiredConfig[\"userId\"];\n\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n\n @property({ type: Boolean }) public debug = false;\n\n @property({ type: Boolean }) public draftConfig = false;\n\n @property({ type: String }) transactionId?: string;\n /**\n * @deprecated (v1.49.0) promoCodes and discountCodes will now be retrieved on the backend using transactionId\n */\n @property({ type: Object }) public discountCodes?: string[];\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n getImpactData = async () => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"userId\", \"nonprofitId\"], this)) throw new MissingConfig();\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n queryParams: {\n nonprofitId: this.nonprofitId,\n beamUserId: this.userId,\n personalImpactLimit: 1,\n communityImpactLimit: 1,\n storeId: this.storeId,\n widgetName: WIDGET_NAMES.impact_overview,\n version: \"1.0.0\",\n draftConfig: this.draftConfig,\n lang: this.configLang,\n discountCodes: this.discountCodes && this.discountCodes.length > 0 ? this.discountCodes : undefined,\n transactionId: this.transactionId ?? undefined,\n },\n });\n\n return res;\n };\n\n private impactDataController = new AsyncController<typeof this.getImpactData>(this, this.getImpactData);\n\n @queryAll(\".impact-card-title\")\n impactTitleRefs!: HTMLElement[];\n\n @queryAll(\".impact-card-description\")\n impactDescriptionRefs!: HTMLElement[];\n\n @queryAll(\".impact-link\")\n impactLinkRefs!: HTMLElement[];\n\n @queryAll(\".impact-card-goalCompletionText\")\n goalCompletionTextRefs!: HTMLElement[];\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.resizeElements);\n }\n\n async updated(changedProperties: PropertyValues): Promise<void> {\n // Reload nonprofit list on change of any of these props:\n // Also fires on first load as props go from undefined => value\n const requireNewDataProps = [\"baseUrl\", \"storeId\", \"apiKey\", \"userId\", \"lang\", \"discountCodes\"];\n for (const prop of requireNewDataProps) {\n if (changedProperties.has(prop)) {\n await this.impactDataController.exec();\n break;\n }\n }\n this.resizeElements(); // Handle layout shifts immediately\n await this.handleFontLoad(this.resizeElements); // If content change triggered font load, resize again\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.resizeElements);\n document.fonts.removeEventListener(\"loadingdone\", this.resizeElements);\n super.disconnectedCallback();\n }\n\n /**\n * Safari does not fire loading events on the document FontFaceSet, but it does implement the .ready Promise\n * Call this method to wait for font loads that may be triggered by content changes\n */\n async handleFontLoad<T = any>(callback: () => T | void) {\n if (document.fonts.status === \"loading\") {\n await document.fonts.ready.catch((e) => logger.error(e));\n return callback();\n }\n }\n\n resizeElements = debounce(\n () => {\n syncElementHeights(this.impactTitleRefs);\n syncElementHeights(this.impactDescriptionRefs);\n syncElementHeights(this.impactLinkRefs);\n syncElementHeights(this.goalCompletionTextRefs);\n },\n 50,\n { maxWait: 50, leading: true }\n );\n\n renderCard({\n imageUrl,\n title,\n percentFunded,\n goalProgressText,\n description,\n urlCopy,\n impactUrl,\n isImage,\n cardType,\n goalCompletionText,\n }: {\n imageUrl: TUrl;\n title: string;\n percentFunded: number;\n goalProgressText: string;\n description: string;\n urlCopy?: string;\n impactUrl: TUrl;\n isImage: boolean;\n cardType: string;\n goalCompletionText?: string;\n }) {\n return html`\n <div class=\"impact-card ${isImage ? \"\" : \"icon\"}\" part=\"impact-card\">\n <div class=\"${isImage ? \"\" : \"icon-background \"}\">\n <img src=\"${imageUrl}\" alt=\"${title}\" class=\"${isImage ? \"impact-card-image\" : \"impact-card-icon\"}\" />\n </div>\n <div class=\"${isImage ? \"\" : \"impact-icon-card-content\"}\" style=\"margin: 12px;\">\n <div class=\"impact-card-title\">${title}</div>\n <p class=\"impact-card-description\">${unsafeHTML(description)}</p>\n <div class=\"impact-card-goalCompletionText\">\n <p>${unsafeHTML(goalCompletionText)}</p>\n </div>\n <div class=\"impact-card-progress\" style=\"display: flex; align-items: center;\">\n <beam-progress-bar\n value=\"${percentFunded}\"\n style=\"flex: 1 0;\"\n class=\"impact-card-progressbar\"\n ></beam-progress-bar>\n <span class=\"impact-card-progressText\" style=\"flex: 0 1; margin-left: 10px; white-space: nowrap;\"\n >${localizeUserString(this.configLang, goalProgressText)}</span\n >\n </div>\n <p class=\"impact-link\" part=\"impact-link\">\n <a href=\"${impactUrl}\" target=\"_blank\" rel=\"noopener noreferrer\">\n ${cardType === \"personal\"\n ? strings[this.configLang].personalImpactLinkCopy({\n nonprofitName: urlCopy,\n })\n : strings[this.configLang].communityImpactLinkCopy({\n brandName: urlCopy,\n })}<span class=\"impact-link-arrow\"> ›</span>\n </a>\n </p>\n </div>\n </div>\n `;\n }\n\n render() {\n const { data, loading, error } = this.impactDataController;\n if (loading) {\n return _loading();\n }\n if (error) {\n if (this.debug) {\n return _errorMessage({ error });\n }\n return \"\";\n }\n if (data == null) {\n if (this.debug) {\n return _errorMessage({ error: new Error(\"No data\") });\n }\n return \"\";\n }\n const brandName = this.impactDataController.data?.chain.name;\n const cardStyle = this.cssVariables[\"--beam-ImpactOverview-cardStyle\"];\n const isImage = cardStyle === \"'image'\";\n const isSelectedIcon = cardStyle === \"'selected_icon'\";\n const personalImageUrl = data.personal[0]?.imageUrl || \"\";\n const communityImageUrl = data.community[0].imageUrl || \"\";\n const iconUrl = data.personal[0]?.nonprofit.causeIconUrl;\n const selectedIconUrl = data.personal[0]?.nonprofit.causeIconSelectedUrl;\n const personalCardImage = isImage ? personalImageUrl : isSelectedIcon ? selectedIconUrl : iconUrl;\n const communityCardImage = isImage ? communityImageUrl : isSelectedIcon ? selectedIconUrl : iconUrl;\n\n const shareImage =\n this.impactDataController.data?.promoAssetUrl || this.impactDataController.data?.personalImpactAssetUrl;\n const showShare = this.cssVariables[\"--beam-ImpactOverview-share-button-display\"] !== \"none\";\n const showShareMobile =\n showShare && this.cssVariables[\"--beam-ImpactOverview-share-button-display-mobile\"] !== \"none\";\n const showShareDesktop =\n showShare && this.cssVariables[\"--beam-ImpactOverview-share-button-display-desktop\"] !== \"none\";\n const shareIcon = this.cssVariables[\"--beam-ImpactOverview-share-button-icon-name\"] || \"share-2\";\n\n let shareButtonVisibilityClass = \"d-none\";\n if (showShareMobile) {\n shareButtonVisibilityClass = showShareDesktop ? \"d-block\" : \"d-lg-none\";\n } else {\n shareButtonVisibilityClass = showShareDesktop ? \"d-none d-lg-block\" : \"d-none\";\n }\n\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n\n <div>\n <beam-partner-logos\n partnerLogoUrl=\"${data.chain.logoUrl}\"\n partnerName=\"${data.chain.name}\"\n part=\"logos\"\n ></beam-partner-logos>\n </div>\n\n <div class=\"description\">\n <div class=\"title\" part=\"title\">\n ${localizeUserString(this.configLang, data.config?.web?.title) ||\n strings[this.configLang].descriptionTitle({ nonprofitName: data.personal[0].nonprofit.name })}\n </div>\n <div class=\"subtitle\" part=\"subtitle\">\n ${localizeUserString(this.configLang, data.config?.web?.description) ||\n strings[this.configLang].descriptionSubtitle({ brandName: data.chain.name })}\n </div>\n </div>\n\n <div class=\"${isImage ? \"impact-image-cards\" : \"impact-icon-cards\"}\" part=\"impact-cards\">\n <div class=\"impact your-impact ${isImage ? \"image-card-container\" : \"icon-card-container\"}\">\n ${this.renderCard({\n isImage,\n imageUrl: personalCardImage || \"\",\n title: strings[this.configLang].yourImpactTitle(),\n percentFunded: data.personal[0]?.impact?.goalProgressPercentage || 0,\n goalProgressText: data.personal[0]?.impact?.goalProgressText,\n description: localizeUserString(this.configLang, data.personal[0]?.impact?.description || \"\"),\n urlCopy: data.personal[0].nonprofit?.name,\n impactUrl: data.personal[0].nonprofit?.website || \"\",\n cardType: \"personal\",\n goalCompletionText: data.personal[0].impact.goalCompletionText,\n })}\n </div>\n <div class=\"impact community-impact ${isImage ? \"image-card-container\" : \"icon-card-container\"}\">\n ${this.renderCard({\n isImage,\n imageUrl: communityCardImage || \"\",\n title: strings[this.configLang].communityImpactTitle(),\n percentFunded: data.community[0].impact?.goalProgressPercentage || 0,\n goalProgressText: data.community[0]?.impact?.goalProgressText,\n description: localizeUserString(this.configLang, data.community[0].impact?.description || \"\"),\n urlCopy: data.chain.name,\n impactUrl:\n data.store.communityPageURL || data.chain.communityImpactUrl || data.personal[0].nonprofit.website || \"\",\n cardType: \"community\",\n goalCompletionText: data.community[0].impact.goalCompletionText,\n })}\n </div>\n </div>\n\n <div class=\"footer ${shareButtonVisibilityClass} shareButtonContainer\" part=\"social-share\">\n <beam-share-button\n imageUrl=\"${shareImage}\"\n brandName=\"${brandName}\"\n shareIcon=\"${shareIcon}\"\n buttonText=\"${strings[this.configLang].impactShareButton()}\"\n configLang=\"${this.configLang}\"\n baseUrl=\"${this.baseUrl}\"\n storeId=\"${this.storeId}\"\n nonprofitId=\"${this.nonprofitId}\"\n transactionId=\"${this.transactionId}\"\n apiKey=\"${this.apiKey}\"\n ></beam-share-button>\n </div>\n\n <div id=\"modal-root\"></div>\n `;\n }\n\n public get cssVariables() {\n const defaults = {\n \"--beam-fontFamily\": \"inherit\",\n \"--beam-fontStyle\": \"inherit\",\n \"--beam-fontSize\": \"inherit\",\n \"--beam-textColor\": \"inherit\",\n \"--beam-backgroundColor\": \"inherit\",\n ...partnerLogosConfigDefaults,\n ...progressBarConfigDefaults,\n ...shareButtonConfigDefaults,\n ...defineCustomText(\"--beam-ImpactOverview-title\", {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"10px\",\n textTransform: \"capitalize\",\n }),\n ...defineCustomText(\"--beam-ImpactOverview-subtitle\", {\n marginTop: \"5px\",\n }),\n \"--beam-ImpactOverview-impactCards-maxWidth\": \"650px\",\n \"--beam-ImpactOverview-impactCard-backgroundColor\": \"inherit\",\n \"--beam-ImpactOverview-impactCard-foregroundColor\": \"currentColor\",\n \"--beam-ImpactOverview-impactCard-borderColor\": \"currentColor\",\n \"--beam-ImpactOverview-impactCard-borderRadius\": \"5px\",\n \"--beam-ImpactOverview-impactCard-marginTop\": \"10px\",\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-title\", {\n fontSize: \"15px\",\n fontWeight: \"bold\",\n letterSpacing: \"0.36px\",\n }),\n \"--beam-ImpactOverview-impactCard-progress-marginTop\": \"8px\",\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-progressText\"),\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-description\", {\n marginTop: \"10px\",\n }),\n \"--beam-ImpactOverview-impactCard-linkArrow-display\": \"inline\",\n \"--beam-ImpactOverview-impactCard-link-color\": \"inherit\",\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-link\", {\n marginTop: \"10px\",\n textDecoration: \"underline\",\n textTransform: \"capitalize\",\n }),\n ...defineCustomText(\"--beam-ImpactOverview-goalCompletionText\", {\n marginTop: \"5px\",\n fontWeight: \"600\",\n textTransform: \"capitalize\",\n fontSize: \"13px\",\n }),\n \"--beam-ImpactOverview-share-button-display\": \"none\",\n \"--beam-ImpactOverview-share-button-display-mobile\": \"inherit\",\n \"--beam-ImpactOverview-share-button-display-desktop\": \"inherit\",\n \"--beam-ImpactOverview-image-display\": \"block\",\n \"--beam-ImpactOverview-cardStyle\": \"'image'\", // icon, selected_icon, image\n \"--beam-ImpactOverview-iconBackground-width\": \"75px\",\n \"--beam-ImpactOverview-iconBackground-height\": \"75px\",\n \"--beam-ImpactOverview-iconBackground-borderRadius\": \"50px\",\n \"--beam-ImpactOverview-icon-padding\": \"0px\",\n \"--beam-ImpactOverview-iconBackground-background\": \"#f3f3f3\",\n \"--beam-ImpactOverview-impactCard-shareButton-background\": \"#fff\",\n \"--beam-ImpactOverview-impactCard-shareButton-boxShadow\": \"0px -20px 20px 0px rgb(0 0 0 / 2%)\",\n };\n\n const remoteConfig = this.impactDataController?.data?.config?.web?.theme || {};\n\n const config = { ...defaults, ...remoteConfig };\n\n const serializable = Object.create({\n toCSS() {\n return _cssVariableMap(this as Record<string, string>);\n },\n });\n\n return Object.assign(serializable, config);\n }\n\n static styles = [\n cssReset,\n cssResponsiveUtils,\n css`\n :host {\n display: block;\n font-family: var(--beam-fontFamily);\n font-style: var(--beam-fontStyle);\n font-size: var(--beam-fontSize);\n background-color: var(--beam-backgroundColor);\n color: var(--beam-textColor);\n max-width: var(--beam-ImpactOverview-impactCards-maxWidth, 650px);\n word-break: normal;\n }\n .icon {\n display: flex;\n align-items: center;\n }\n .icon-background {\n width: var(--beam-ImpactOverview-iconBackground-width, 75px);\n height: var(--beam-ImpactOverview-iconBackground-height, 75px);\n border-radius: var(--beam-ImpactOverview-iconBackground-borderRadius, 50px);\n padding: var(--beam-ImpactOverview-icon-padding, 0px);\n margin: 8px;\n overflow: hidden;\n background: var(--beam-ImpactOverview-iconBackground-background, #f3f3f3);\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .impact-icon-card-content {\n flex: 3 1 75%;\n }\n .impact-image-cards {\n max-width: var(--beam-ImpactOverview-impactCards-maxWidth);\n display: flex;\n flex-wrap: wrap;\n gap: 15px;\n margin: 10px 0;\n }\n .impact-icon-cards {\n max-width: var(--beam-ImpactOverview-impactCards-maxWidth);\n margin: 10px 0;\n }\n .impact-card {\n padding-bottom: 5px;\n margin-top: var(--beam-ImpactOverview-impactCard-marginTop);\n background-color: var(--beam-ImpactOverview-impactCard-backgroundColor);\n border: 1px solid var(--beam-ImpactOverview-impactCard-borderColor);\n border-radius: var(--beam-ImpactOverview-impactCard-borderRadius);\n overflow: hidden; /* maintain clean border-radius */\n color: var(--beam-ImpactOverview-impactCard-foregroundColor);\n }\n .impact-card-image {\n object-fit: cover;\n height: 110px;\n width: 100%;\n display: var(--beam-ImpactOverview-image-display);\n }\n .impact-card-icon {\n flex: 1 1 10%;\n max-width: 50%;\n display: var(--beam-ImpactOverview-image-display);\n }\n .image-card-container {\n flex: 1 1;\n display: inline-block;\n min-width: 200px;\n max-width: 100%;\n }\n .icon-card-container {\n max-width: 100%;\n min-width: 299px;\n }\n .impact-card-progress {\n margin-top: var(--beam-ImpactOverview-impactCard-progress-marginTop);\n }\n .shareButtonContainer {\n position: sticky;\n bottom: 0;\n z-index: 999;\n background-color: var(--beam-ImpactOverview-impactCard-shareButton-background);\n box-shadow: var(--beam-ImpactOverview-impactCard-shareButton-boxShadow);\n }\n .title {\n ${useCustomText(\"--beam-ImpactOverview-title\")}\n }\n .subtitle {\n ${useCustomText(\"--beam-ImpactOverview-subtitle\")}\n }\n .impact-card-title {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-title\")}\n }\n .impact-card-progressText {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-progressText\")}\n }\n .impact-card-description {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-description\")}\n }\n .impact-link {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-link\")}\n }\n .impact-link-arrow {\n display: var(--beam-ImpactOverview-impactCard-linkArrow-display, \"inline\");\n }\n .impact-link a,\n .impact-link a:visited {\n color: var(--beam-ImpactOverview-impactCard-link-color, inherit);\n }\n .impact-card-goalCompletionText {\n ${useCustomText(\"--beam-ImpactOverview-goalCompletionText\")}\n }\n .footer {\n text-align: center;\n }\n `,\n css`\n .button {\n cursor: pointer;\n }\n .icon-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n .plain-button {\n border: none;\n background: none;\n font-size: inherit;\n font-family: inherit;\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamImpactOverview);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-impact-overview\": BeamImpactOverview;\n }\n}\n"],"names":["strings","nonprofitName","brandName","R","h","d","e","a","t","n","s","BeamImpactOverview","LitElement","DEFAULT_BASE_URL","enforceConfig","getImpact","WIDGET_NAMES","AsyncController","debounce","syncElementHeights","SUPPORTED_LANGUAGES","changedProperties","requireNewDataProps","prop","callback","logger","imageUrl","title","percentFunded","goalProgressText","description","urlCopy","impactUrl","isImage","cardType","goalCompletionText","html","unsafeHTML","localizeUserString","data","loading","error","_loading","_errorMessage","cardStyle","isSelectedIcon","personalImageUrl","communityImageUrl","iconUrl","selectedIconUrl","personalCardImage","communityCardImage","shareImage","showShare","showShareMobile","showShareDesktop","shareIcon","shareButtonVisibilityClass","defaults","partnerLogosConfigDefaults","progressBarConfigDefaults","shareButtonConfigDefaults","defineCustomText","remoteConfig","config","_cssVariableMap","cssReset","cssResponsiveUtils","css","useCustomText","__decorateClass","property","queryAll","defineCustomElement"],"mappings":"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"}
|
|
@@ -20,4 +20,4 @@ import '../chunks/share-button-CDVVaxEc.esm.js';
|
|
|
20
20
|
import '../chunks/promo-pill-label-BXRqZHET.esm.js';
|
|
21
21
|
import '../chunks/cart-contents-CLT7p7Gd.esm.js';
|
|
22
22
|
import '../chunks/openapi-spec-Bk7E2QQP.esm.js';
|
|
23
|
-
import '../chunks/routes-
|
|
23
|
+
import '../chunks/routes-DahRzf8t.esm.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{BeamCommunityImpact as D}from"./community-impact.esm.js";import{BeamCumulativeImpact as O}from"./cumulative-impact.esm.js";import{BeamImpactOverview as T}from"./impact-overview.esm.js";import{BeamSelectNonprofit as k}from"./select-nonprofit.esm.js";import{B as z}from"../chunks/index-
|
|
1
|
+
import{BeamCommunityImpact as D}from"./community-impact.esm.js";import{BeamCumulativeImpact as O}from"./cumulative-impact.esm.js";import{BeamImpactOverview as T}from"./impact-overview.esm.js";import{BeamSelectNonprofit as k}from"./select-nonprofit.esm.js";import{B as z}from"../chunks/index-C5gnsl34.esm.js";import{BeamPostPurchase as E}from"./post-purchase.esm.js";import{BeamSubscriptionManagement as G}from"./subscription-management.esm.js";import{BeamSubscriptionImpact as J}from"./subscription-impact.esm.js";import{BeamProductDetailsPage as L}from"./product-details-page.esm.js";import{BeamSelectSubscriptionNonprofit as U}from"./select-subscription-nonprofit.esm.js";import{BeamSocialShare as W}from"./social-share.esm.js";import"../chunks/lit-WqMxC_PA.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"./beam-partner-logos.esm.js";import"../chunks/enforce-config-CZ3ToOgr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.esm.js";import"../chunks/localize-Btu9xYcE.esm.js";import"../chunks/routes-DguZveS3.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/is-all-html-elements-fcB7UUA1.esm.js";import"../chunks/_share-dialog-dependencies-dHlBUqo0.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/share-button-DmjRJmXh.esm.js";import"../chunks/share-button-M8cMa6ol.esm.js";import"../chunks/responsive-BR8qUfBa.esm.js";import"../chunks/promo-pill-label-WGLW3bql.esm.js";import"../chunks/events-Dki0ka4F.esm.js";import"../utils/local-storage.esm.js";import"../utils/promoManager.esm.js";import"../utils/cookies.esm.js";import"../chunks/cart-contents-DkoytiZh.esm.js";import"../utils/cart.esm.js";import"../utils/makeApiKeyHeader.esm.js";export{D as BeamCommunityImpact,O as BeamCumulativeImpact,T as BeamImpactOverview,E as BeamPostPurchase,L as BeamProductDetailsPage,z as BeamRedeemTransaction,k as BeamSelectNonprofit,U as BeamSelectSubscriptionNonprofit,W as BeamSocialShare,J as BeamSubscriptionImpact,G as BeamSubscriptionManagement};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/components/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{BeamCommunityImpact as D}from"./community-impact.js";import{BeamCumulativeImpact as O}from"./cumulative-impact.js";import{BeamImpactOverview as T}from"./impact-overview.js";import{BeamSelectNonprofit as k}from"./select-nonprofit.js";import{B as z}from"../chunks/index-
|
|
1
|
+
import{BeamCommunityImpact as D}from"./community-impact.js";import{BeamCumulativeImpact as O}from"./cumulative-impact.js";import{BeamImpactOverview as T}from"./impact-overview.js";import{BeamSelectNonprofit as k}from"./select-nonprofit.js";import{B as z}from"../chunks/index-2OQzw7UI.esm.js";import{BeamPostPurchase as E}from"./post-purchase.js";import{BeamSubscriptionManagement as G}from"./subscription-management.js";import{BeamSubscriptionImpact as J}from"./subscription-impact.js";import{BeamProductDetailsPage as L}from"./product-details-page.js";import{BeamSelectSubscriptionNonprofit as U}from"./select-subscription-nonprofit.js";import{BeamSocialShare as W}from"./social-share.js";import"../chunks/lit-WqMxC_PA.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"./beam-partner-logos.js";import"../chunks/enforce-config-Ba1JkOHs.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/localize-C25pEGnx.esm.js";import"../chunks/routes-BvX92EDq.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/is-all-html-elements-fcB7UUA1.esm.js";import"../chunks/_share-dialog-dependencies-BG0p8uUr.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/share-button-BRjKJc5L.esm.js";import"../chunks/share-button-DPNNnXeM.esm.js";import"../chunks/responsive-BR8qUfBa.esm.js";import"../chunks/promo-pill-label-ByFGhdxh.esm.js";import"../chunks/events-Dki0ka4F.esm.js";import"../utils/local-storage.js";import"../utils/promoManager.js";import"../utils/cookies.js";import"../chunks/cart-contents-DkoytiZh.esm.js";import"../utils/cart.js";import"../utils/makeApiKeyHeader.js";export{D as BeamCommunityImpact,O as BeamCumulativeImpact,T as BeamImpactOverview,E as BeamPostPurchase,L as BeamProductDetailsPage,z as BeamRedeemTransaction,k as BeamSelectNonprofit,U as BeamSelectSubscriptionNonprofit,W as BeamSocialShare,J as BeamSubscriptionImpact,G as BeamSubscriptionManagement};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -53,6 +53,7 @@ declare class BeamPostPurchase extends LitElement {
|
|
|
53
53
|
draftConfig: boolean;
|
|
54
54
|
private localStorage;
|
|
55
55
|
get parsedPromoCodes(): string[];
|
|
56
|
+
updateComponentState(): void;
|
|
56
57
|
firstUpdated(_changedProperties: PropertyValues): void;
|
|
57
58
|
updated(previousPropertyValues: PropertyValues): Promise<void>;
|
|
58
59
|
enforceConfig(): void;
|
|
@@ -72,7 +73,7 @@ declare class BeamPostPurchase extends LitElement {
|
|
|
72
73
|
timestamp: string;
|
|
73
74
|
}>;
|
|
74
75
|
private transactionDataController;
|
|
75
|
-
render(): lit_html.TemplateResult<1
|
|
76
|
+
render(): "" | lit_html.TemplateResult<1>;
|
|
76
77
|
static styles: lit.CSSResult[];
|
|
77
78
|
}
|
|
78
79
|
declare global {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as o,t as
|
|
1
|
+
import{g as o,t as a,h as I,y as h}from"../chunks/lit-WqMxC_PA.esm.js";import{M as f}from"../chunks/beam-errors-Ci0d3926.esm.js";import{deleteCookieValue as v,getCookieValue as b}from"../utils/cookies.esm.js";import{c as S,d as P,e as $}from"../chunks/enforce-config-CZ3ToOgr.esm.js";import{createScopedLocalStorage as T}from"../utils/local-storage.esm.js";import{A as U,_ as E}from"../chunks/localize-Btu9xYcE.esm.js";import{D as O,L as u}from"../chunks/routes-DguZveS3.esm.js";import{p as A}from"../chunks/index-C5gnsl34.esm.js";import"./impact-overview.esm.js";import{B as C}from"../chunks/cart-contents-DkoytiZh.esm.js";import{b as D}from"../chunks/events-Dki0ka4F.esm.js";import{formatStoreAndReturnPromoCodes as R,getAllPromoCodesFromCookie as _,mapToUnvalidatedPromoCodes as M,isEmptyPromoData as w,parseJsonStringArray as K}from"../utils/promoManager.esm.js";import{P as N,a as L}from"../chunks/promo-types-DKAOFHJr.esm.js";import"../utils/logger.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/promo-pill-label-WGLW3bql.esm.js";import"../chunks/_share-dialog-dependencies-dHlBUqo0.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"./beam-partner-logos.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";import"../chunks/share-button-DmjRJmXh.esm.js";import"../chunks/is-all-html-elements-fcB7UUA1.esm.js";import"../chunks/share-button-M8cMa6ol.esm.js";import"../chunks/responsive-BR8qUfBa.esm.js";var x=Object.defineProperty,e=(l,r,i,m)=>{for(var s=void 0,d=l.length-1,c;d>=0;d--)(c=l[d])&&(s=c(r,i,s)||s);return s&&x(r,i,s),s};const y=["baseUrl","apiKey","orderId","cartTotal","currencyCode","lang"],F=["storeId","postalCode","countryCode","cart","discountCodes","promoCodes","htmlPromoCodes","email","partnerUserId"];class t extends I{constructor(){super(...arguments),this.baseUrl=O,this.currencyCode="USD",this.lang="en",this.debug=!1,this.activeWidget=null,this.nonprofitId=null,this.selectionId=null,this.cartId=null,this.beamCartId=null,this.userId=null,this.transactionId=null,this.excludeDonationsForRecurringTransactions=!1,this.creationMethod="",this.draftConfig=!1,this.localStorage=T(this),this.handlePostTransaction=async()=>{this.enforceConfig(),this.updateComponentState();const r=this.getManualPromoCodes(),i=R(r.map(p=>({value:p})),this.apiKey),m=_(),s={unvalidatedPromoCodes:M(r.map(p=>({value:p}))),validatedPromoCodes:m?.validatedPromoCodes??[]},d=i??s,c=d&&!w(d),n=await A({baseUrl:this.baseUrl,apiRoot:"/api",headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{selectionId:this.selectionId||void 0,cartId:this.cartId||void 0,beamCartId:this.beamCartId||void 0,storeId:this.storeId,orderId:this.orderId,cartTotal:this.cartTotal,email:this.email,partnerUserId:this.partnerUserId,currencyCode:this.currencyCode,postalCode:this.postalCode,countryCode:this.countryCode,cart:this.cart,...c&&{promos:d},discountCodes:this.discountCodes}});this.transactionId=n.transactionId,this.userId=n.beamUserId,this.nonprofitId=n.nonprofitId,this.excludeDonationsForRecurringTransactions=!!n.reportSettings?.excludeRecurringDonations,this.creationMethod=n.creationMethod||"";const g=!!this.nonprofitId;return this.activeWidget=g?"impact-overview":"redeem-transaction",n.transactionCreated&&(["transaction","cart",N,u.NONPROFIT,u.NONPROFIT_SELECTED_AT].forEach(p=>{this.localStorage.removeItem(p)}),[{name:C,path:"/",domain:this.domain},{name:L,path:"/",domain:this.domain}].forEach(p=>v(p)),dispatchEvent(new D({transactionId:n.transactionId,orderId:this.orderId,cartTotal:this.cartTotal,currencyCode:this.currencyCode}))),n},this.transactionDataController=new U(this,this.handlePostTransaction)}get parsedPromoCodes(){return K(this.htmlPromoCodes)}updateComponentState(){this.localStorage.getItem("transaction")?.toLocaleLowerCase()==="undefined"&&this.localStorage.removeItem("transaction"),this.selectionId=this.selectionId||this.localStorage.getItem("transaction")||null,this.cartId=this.cartId||this.localStorage.getItemJson("cart")?.cartId||null,this.beamCartId=this.beamCartId||this.localStorage.getItemJson("cart")?.beamCartId||b(C)||null,this.selectionId&&this.nonprofitId&&(this.activeWidget="impact-overview")}firstUpdated(r){this.enforceConfig(),this.updateComponentState()}async updated(r){[...y,...F].some(i=>r.has(i))&&await this.transactionDataController.exec()}enforceConfig(){if($(y,this),!this.email&&!this.partnerUserId)throw new f([this.email?"":"email",this.partnerUserId?"":"partnerUserId"].filter(Boolean),"At least one of [email, partnerUserId] must be provided")}getManualPromoCodes(){return this.parsedPromoCodes?.length?this.parsedPromoCodes:this.promoCodes?.length?this.promoCodes:[]}render(){return this.transactionDataController.loading?"":this.transactionDataController.error?this.debug?E({error:this.transactionDataController.error}):"":this.excludeDonationsForRecurringTransactions&&this.creationMethod==="recurring"?h``:this.activeWidget==="redeem-transaction"?h`
|
|
2
2
|
<beam-redeem-transaction
|
|
3
3
|
part="redeem-transaction"
|
|
4
4
|
baseUrl="${this.baseUrl}"
|
|
@@ -12,7 +12,7 @@ import{g as o,t as i,h as I,y as h}from"../chunks/lit-WqMxC_PA.esm.js";import{M
|
|
|
12
12
|
excludeDonationsForRecurringTransactions="${this.excludeDonationsForRecurringTransactions}"
|
|
13
13
|
?draftConfig="${this.draftConfig}"
|
|
14
14
|
?debug="${this.debug}"
|
|
15
|
-
@beamnonprofitselect="${r=>{if(!(r instanceof CustomEvent))return;const{selectedNonprofitId:
|
|
15
|
+
@beamnonprofitselect="${r=>{if(!(r instanceof CustomEvent))return;const{selectedNonprofitId:i}=r.detail;this.nonprofitId=i??null,this.activeWidget="impact-overview"}}"
|
|
16
16
|
></beam-redeem-transaction>
|
|
17
17
|
`:this.activeWidget==="impact-overview"?h`
|
|
18
18
|
<beam-impact-overview
|
|
@@ -28,5 +28,5 @@ import{g as o,t as i,h as I,y as h}from"../chunks/lit-WqMxC_PA.esm.js";import{M
|
|
|
28
28
|
?draftConfig="${this.draftConfig}"
|
|
29
29
|
?debug="${this.debug}"
|
|
30
30
|
></beam-impact-overview>
|
|
31
|
-
`:""}}t.tagName="beam-post-purchase",t.styles=[S],e([o({type:String})],t.prototype,"baseUrl"),e([o({type:String})],t.prototype,"apiKey"),e([o({type:Number,reflect:!0})],t.prototype,"storeId"),e([o({type:String})],t.prototype,"postalCode"),e([o({type:String})],t.prototype,"countryCode"),e([o({type:String})],t.prototype,"orderId"),e([o({type:String})],t.prototype,"email"),e([o({type:String})],t.prototype,"partnerUserId"),e([o({type:Number})],t.prototype,"cartTotal"),e([o({type:String})],t.prototype,"currencyCode"),e([o({type:String})],t.prototype,"lang"),e([o({type:Object})],t.prototype,"cart"),e([o({type:Array})],t.prototype,"discountCodes"),e([o({type:Array})],t.prototype,"promoCodes"),e([o({type:String})],t.prototype,"htmlPromoCodes"),e([o({type:String})],t.prototype,"domain"),e([o({type:Boolean})],t.prototype,"debug"),e([
|
|
31
|
+
`:""}}t.tagName="beam-post-purchase",t.styles=[S],e([o({type:String})],t.prototype,"baseUrl"),e([o({type:String})],t.prototype,"apiKey"),e([o({type:Number,reflect:!0})],t.prototype,"storeId"),e([o({type:String})],t.prototype,"postalCode"),e([o({type:String})],t.prototype,"countryCode"),e([o({type:String})],t.prototype,"orderId"),e([o({type:String})],t.prototype,"email"),e([o({type:String})],t.prototype,"partnerUserId"),e([o({type:Number})],t.prototype,"cartTotal"),e([o({type:String})],t.prototype,"currencyCode"),e([o({type:String})],t.prototype,"lang"),e([o({type:Object})],t.prototype,"cart"),e([o({type:Array})],t.prototype,"discountCodes"),e([o({type:Array})],t.prototype,"promoCodes"),e([o({type:String})],t.prototype,"htmlPromoCodes"),e([o({type:String})],t.prototype,"domain"),e([o({type:Boolean})],t.prototype,"debug"),e([a()],t.prototype,"activeWidget"),e([a()],t.prototype,"nonprofitId"),e([a()],t.prototype,"selectionId"),e([a()],t.prototype,"cartId"),e([a()],t.prototype,"beamCartId"),e([a()],t.prototype,"userId"),e([a()],t.prototype,"transactionId"),e([a()],t.prototype,"excludeDonationsForRecurringTransactions"),e([a()],t.prototype,"creationMethod"),e([o({type:Boolean})],t.prototype,"draftConfig"),P(t);export{t as BeamPostPurchase};
|
|
32
32
|
//# sourceMappingURL=post-purchase.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-purchase.esm.js","sources":["../../src/components/post-purchase/index.ts"],"sourcesContent":["import { html, LitElement, PropertyValues } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { state } from \"lit/decorators/state.js\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { deleteCookieValue, getCookieValue } from \"../../utils/cookies\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { createScopedLocalStorage } from \"../../utils/local-storage\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { DEFAULT_BASE_URL, LOCAL_STORAGE_KEYS } from \"../../api-sdk/constants\";\nimport { postTransaction } from \"../../api-sdk/v4/routes\";\nimport \"../redeem-transaction\";\nimport \"../impact-overview\";\nimport { BEAM_CART_COOKIE_NAME, TBeamCartLocalStorage, TCart } from \"../../shared/cart-contents\";\nimport { BeamNonprofitSelectEvent, BeamOrderCreatedEvent } from \"../../utils/events\";\nimport {\n isEmptyPromoData,\n parseJsonStringArray,\n formatStoreAndReturnPromoCodes,\n getAllPromoCodesFromCookie,\n mapToUnvalidatedPromoCodes,\n} from \"../../utils/promoManager\";\nimport { PROMO_CODES_COOKIE_NAME, PROMO_LOCAL_STORAGE_KEY, TPromoCodeRequest } from \"../../shared/promo-types\";\n\nconst REQUIRED_DATA_PROPS = [\"baseUrl\", \"apiKey\", \"orderId\", \"cartTotal\", \"currencyCode\", \"lang\"];\nconst OPTIONAL_DATA_PROPS = [\n \"storeId\",\n \"postalCode\",\n \"countryCode\",\n \"cart\",\n \"discountCodes\",\n \"promoCodes\",\n \"htmlPromoCodes\",\n \"email\",\n \"partnerUserId\",\n];\n\nexport class BeamPostPurchase extends LitElement {\n static tagName = \"beam-post-purchase\";\n\n @property({ type: String })\n public baseUrl: string = DEFAULT_BASE_URL;\n\n @property({ type: String })\n public apiKey!: string;\n\n @property({ type: Number, reflect: true })\n public storeId?: number; // Either storeId or postalCode, countryCode must be provided\n\n @property({ type: String })\n public postalCode?: string;\n\n @property({ type: String })\n public countryCode?: string;\n\n @property({ type: String })\n public orderId!: string;\n\n /**\n * Either email or partnerUserId is required\n */\n @property({ type: String })\n public email?: string;\n\n /**\n * Either email or partnerUserId is required\n */\n @property({ type: String })\n public partnerUserId?: string;\n\n @property({ type: Number })\n public cartTotal!: number;\n\n @property({ type: String })\n public currencyCode = \"USD\";\n\n @property({ type: String })\n public lang: LANGUAGES = \"en\";\n\n @property({ type: Object })\n public cart?: TCart;\n\n /**\n * @deprecated Use `promoCodes` instead. `discountCodes` is retained for backward compatibility\n */\n @property({ type: Array })\n public discountCodes?: string[];\n\n @property({ type: Array })\n public promoCodes?: string[];\n\n @property({ type: String })\n public htmlPromoCodes?: string;\n\n @property({ type: String })\n public domain?: string;\n\n @property({ type: Boolean })\n public debug = false;\n\n @state() private activeWidget: \"redeem-transaction\" | \"impact-overview\" | null = null; // wait for postTransaction\n @state() private nonprofitId: number | null = null; // from localStorage or redeem-transaction result\n @state() private selectionId: string | null = null; // from localStorage\n @state() private cartId: string | null = null; // from localStorage, external cart ID\n @state() private beamCartId: string | null = null; // from cookie, Beam cart ID\n @state() private userId: string | null = null; // from postTransaction\n @state() private transactionId: string | null = null; // from postTransaction\n @state() private excludeDonationsForRecurringTransactions = false;\n @state() private creationMethod = \"\";\n @property({ type: Boolean }) public draftConfig = false;\n\n private localStorage = createScopedLocalStorage(this);\n\n get parsedPromoCodes(): string[] {\n return parseJsonStringArray(this.htmlPromoCodes);\n }\n\n firstUpdated(_changedProperties: PropertyValues) {\n this.enforceConfig();\n\n // Delete selectionId if it was saved with an invalid string (bug introduced v1.54.0)\n if (this.localStorage.getItem(\"transaction\")?.toLocaleLowerCase() === \"undefined\") {\n this.localStorage.removeItem(\"transaction\");\n }\n\n this.selectionId = this.localStorage.getItem(\"transaction\") || null;\n this.cartId = this.localStorage.getItemJson<TBeamCartLocalStorage>(\"cart\")?.cartId || null;\n // Reading beamCartId from cookies instead of localStorage allows it to work across subdomains\n this.beamCartId = getCookieValue(BEAM_CART_COOKIE_NAME) || null;\n\n if (this.selectionId && this.nonprofitId) {\n this.activeWidget = \"impact-overview\";\n }\n }\n\n async updated(previousPropertyValues: PropertyValues) {\n // Also fires on first load as props go from undefined => value\n const refreshOnChangeProps = [...REQUIRED_DATA_PROPS, ...OPTIONAL_DATA_PROPS];\n if (refreshOnChangeProps.some((p) => previousPropertyValues.has(p))) {\n await this.transactionDataController.exec();\n }\n }\n\n enforceConfig() {\n enforceConfig(REQUIRED_DATA_PROPS, this);\n if (!this.email && !this.partnerUserId) {\n throw new MissingConfig(\n [this.email ? \"\" : \"email\", this.partnerUserId ? \"\" : \"partnerUserId\"].filter(Boolean),\n \"At least one of [email, partnerUserId] must be provided\"\n );\n }\n }\n\n private getManualPromoCodes(): string[] {\n if (this.parsedPromoCodes?.length) {\n return this.parsedPromoCodes;\n }\n if (this.promoCodes?.length) {\n return this.promoCodes;\n }\n return [];\n }\n\n handlePostTransaction = async () => {\n this.enforceConfig();\n const manualPromoCodes = this.getManualPromoCodes();\n const formattedPromosFromLocalStorage = formatStoreAndReturnPromoCodes(\n manualPromoCodes.map((code) => ({ value: code })),\n this.apiKey\n );\n\n const promoCookieData = getAllPromoCodesFromCookie();\n const formattedPromosFromCookie: TPromoCodeRequest = {\n unvalidatedPromoCodes: mapToUnvalidatedPromoCodes(manualPromoCodes.map((code) => ({ value: code }))),\n validatedPromoCodes: promoCookieData?.validatedPromoCodes ?? [],\n };\n\n const formattedPromos = formattedPromosFromLocalStorage ?? formattedPromosFromCookie;\n\n const shouldSendPromos = formattedPromos && !isEmptyPromoData(formattedPromos);\n const result = await postTransaction({\n baseUrl: this.baseUrl,\n apiRoot: \"/api\",\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n requestBody: {\n selectionId: this.selectionId || undefined,\n cartId: this.cartId || undefined,\n beamCartId: this.beamCartId || undefined,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n storeId: this.storeId,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n email: this.email, // One or both of email & partnerUserId should be defined\n partnerUserId: this.partnerUserId, // One or both of email & partnerUserId should be defined\n currencyCode: this.currencyCode,\n postalCode: this.postalCode,\n countryCode: this.countryCode,\n cart: this.cart,\n ...(shouldSendPromos && { promos: formattedPromos }),\n discountCodes: this.discountCodes,\n },\n });\n\n this.transactionId = result.transactionId;\n this.userId = result.beamUserId;\n this.nonprofitId = result.nonprofitId;\n this.excludeDonationsForRecurringTransactions = Boolean(result.reportSettings?.excludeRecurringDonations);\n this.creationMethod = result.creationMethod || \"\";\n\n const isTransactionRedeemed = !!this.nonprofitId;\n this.activeWidget = isTransactionRedeemed ? \"impact-overview\" : \"redeem-transaction\";\n\n // Emit order created event only when order is registered with Beam for the first time\n if (result.transactionCreated) {\n const localStorageKeys = [\n \"transaction\",\n \"cart\",\n PROMO_LOCAL_STORAGE_KEY,\n LOCAL_STORAGE_KEYS.NONPROFIT,\n LOCAL_STORAGE_KEYS.NONPROFIT_SELECTED_AT,\n ];\n localStorageKeys.forEach((key) => {\n this.localStorage.removeItem(key);\n });\n const cookieConfigs = [\n { name: BEAM_CART_COOKIE_NAME, path: \"/\", domain: this.domain },\n { name: PROMO_CODES_COOKIE_NAME, path: \"/\", domain: this.domain },\n ];\n\n cookieConfigs.forEach((config) => deleteCookieValue(config));\n\n // Emit order created event only when order is registered with Beam for the first time\n dispatchEvent(\n new BeamOrderCreatedEvent({\n transactionId: result.transactionId,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n currencyCode: this.currencyCode,\n })\n );\n }\n return result;\n };\n\n private transactionDataController = new AsyncController<typeof this.handlePostTransaction>(\n this,\n this.handlePostTransaction\n );\n\n render() {\n if (this.transactionDataController.loading) {\n return \"\";\n }\n if (this.transactionDataController.error) {\n if (this.debug) {\n return _errorMessage({ error: this.transactionDataController.error });\n }\n return \"\";\n }\n if (this.excludeDonationsForRecurringTransactions && this.creationMethod === \"recurring\") {\n return html``;\n }\n if (this.activeWidget === \"redeem-transaction\") {\n return html`\n <beam-redeem-transaction\n part=\"redeem-transaction\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n storeId=\"${this.storeId}\"\n postalCode=\"${this.postalCode}\"\n countryCode=\"${this.countryCode}\"\n transactionId=\"${this.transactionId}\"\n cart=\"${JSON.stringify(this.cart)}\"\n lang=\"${this.lang}\"\n excludeDonationsForRecurringTransactions=\"${this.excludeDonationsForRecurringTransactions}\"\n ?draftConfig=\"${this.draftConfig}\"\n ?debug=\"${this.debug}\"\n @beamnonprofitselect=\"${(event: Event) => {\n if (!(event instanceof CustomEvent)) return; // TS guard\n const { selectedNonprofitId } = (event as BeamNonprofitSelectEvent).detail;\n this.nonprofitId = selectedNonprofitId ?? null;\n this.activeWidget = \"impact-overview\";\n }}\"\n ></beam-redeem-transaction>\n `;\n }\n if (this.activeWidget === \"impact-overview\") {\n return html`\n <beam-impact-overview\n part=\"impact-overview\"\n storeId=\"${this.storeId}\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n userId=\"${this.userId}\"\n nonprofitId=\"${this.nonprofitId}\"\n lang=\"${this.lang}\"\n discountCodes=\"${JSON.stringify(this.discountCodes)}\"\n transactionId=\"${this.transactionId}\"\n ?draftConfig=\"${this.draftConfig}\"\n ?debug=\"${this.debug}\"\n ></beam-impact-overview>\n `;\n }\n return \"\";\n }\n\n static styles = [cssReset];\n}\n\ndefineCustomElement(BeamPostPurchase);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-post-purchase\": BeamPostPurchase;\n }\n}\n"],"names":["y","t","p","d","r","i","o","l","s","REQUIRED_DATA_PROPS","OPTIONAL_DATA_PROPS","BeamPostPurchase","LitElement","DEFAULT_BASE_URL","createScopedLocalStorage","manualPromoCodes","formattedPromosFromLocalStorage","formatStoreAndReturnPromoCodes","code","promoCookieData","getAllPromoCodesFromCookie","formattedPromosFromCookie","mapToUnvalidatedPromoCodes","formattedPromos","shouldSendPromos","isEmptyPromoData","result","postTransaction","isTransactionRedeemed","PROMO_LOCAL_STORAGE_KEY","LOCAL_STORAGE_KEYS","key","BEAM_CART_COOKIE_NAME","PROMO_CODES_COOKIE_NAME","config","deleteCookieValue","BeamOrderCreatedEvent","AsyncController","parseJsonStringArray","_changedProperties","getCookieValue","previousPropertyValues","enforceConfig","MissingConfig","_errorMessage","html","event","selectedNonprofitId","cssReset","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"post-purchase.esm.js","sources":["../../src/components/post-purchase/index.ts"],"sourcesContent":["import { html, LitElement, PropertyValues } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { state } from \"lit/decorators/state.js\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { deleteCookieValue, getCookieValue } from \"../../utils/cookies\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { createScopedLocalStorage } from \"../../utils/local-storage\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { DEFAULT_BASE_URL, LOCAL_STORAGE_KEYS } from \"../../api-sdk/constants\";\nimport { postTransaction } from \"../../api-sdk/v4/routes\";\nimport \"../redeem-transaction\";\nimport \"../impact-overview\";\nimport { BEAM_CART_COOKIE_NAME, TBeamCartLocalStorage, TCart } from \"../../shared/cart-contents\";\nimport { BeamNonprofitSelectEvent, BeamOrderCreatedEvent } from \"../../utils/events\";\nimport {\n isEmptyPromoData,\n parseJsonStringArray,\n formatStoreAndReturnPromoCodes,\n getAllPromoCodesFromCookie,\n mapToUnvalidatedPromoCodes,\n} from \"../../utils/promoManager\";\nimport { PROMO_CODES_COOKIE_NAME, PROMO_LOCAL_STORAGE_KEY, TPromoCodeRequest } from \"../../shared/promo-types\";\n\nconst REQUIRED_DATA_PROPS = [\"baseUrl\", \"apiKey\", \"orderId\", \"cartTotal\", \"currencyCode\", \"lang\"];\nconst OPTIONAL_DATA_PROPS = [\n \"storeId\",\n \"postalCode\",\n \"countryCode\",\n \"cart\",\n \"discountCodes\",\n \"promoCodes\",\n \"htmlPromoCodes\",\n \"email\",\n \"partnerUserId\",\n];\n\nexport class BeamPostPurchase extends LitElement {\n static tagName = \"beam-post-purchase\";\n\n @property({ type: String })\n public baseUrl: string = DEFAULT_BASE_URL;\n\n @property({ type: String })\n public apiKey!: string;\n\n @property({ type: Number, reflect: true })\n public storeId?: number; // Either storeId or postalCode, countryCode must be provided\n\n @property({ type: String })\n public postalCode?: string;\n\n @property({ type: String })\n public countryCode?: string;\n\n @property({ type: String })\n public orderId!: string;\n\n /**\n * Either email or partnerUserId is required\n */\n @property({ type: String })\n public email?: string;\n\n /**\n * Either email or partnerUserId is required\n */\n @property({ type: String })\n public partnerUserId?: string;\n\n @property({ type: Number })\n public cartTotal!: number;\n\n @property({ type: String })\n public currencyCode = \"USD\";\n\n @property({ type: String })\n public lang: LANGUAGES = \"en\";\n\n @property({ type: Object })\n public cart?: TCart;\n\n /**\n * @deprecated Use `promoCodes` instead. `discountCodes` is retained for backward compatibility\n */\n @property({ type: Array })\n public discountCodes?: string[];\n\n @property({ type: Array })\n public promoCodes?: string[];\n\n @property({ type: String })\n public htmlPromoCodes?: string;\n\n @property({ type: String })\n public domain?: string;\n\n @property({ type: Boolean })\n public debug = false;\n\n @state() private activeWidget: \"redeem-transaction\" | \"impact-overview\" | null = null; // wait for postTransaction\n @state() private nonprofitId: number | null = null; // from localStorage or redeem-transaction result\n @state() private selectionId: string | null = null; // from localStorage\n @state() private cartId: string | null = null; // from localStorage, external cart ID\n @state() private beamCartId: string | null = null; // from cookie, Beam cart ID\n @state() private userId: string | null = null; // from postTransaction\n @state() private transactionId: string | null = null; // from postTransaction\n @state() private excludeDonationsForRecurringTransactions = false;\n @state() private creationMethod = \"\";\n @property({ type: Boolean }) public draftConfig = false;\n\n private localStorage = createScopedLocalStorage(this);\n\n get parsedPromoCodes(): string[] {\n return parseJsonStringArray(this.htmlPromoCodes);\n }\n\n updateComponentState() {\n // Delete selectionId if it was saved with an invalid string (bug introduced v1.54.0)\n if (this.localStorage.getItem(\"transaction\")?.toLocaleLowerCase() === \"undefined\") {\n this.localStorage.removeItem(\"transaction\");\n }\n\n this.selectionId = this.selectionId || this.localStorage.getItem(\"transaction\") || null;\n this.cartId = this.cartId || this.localStorage.getItemJson<TBeamCartLocalStorage>(\"cart\")?.cartId || null;\n // Reading beamCartId from cookies instead of localStorage allows it to work across subdomains\n this.beamCartId =\n this.beamCartId ||\n this.localStorage.getItemJson<TBeamCartLocalStorage>(\"cart\")?.beamCartId ||\n getCookieValue(BEAM_CART_COOKIE_NAME) ||\n null;\n\n if (this.selectionId && this.nonprofitId) {\n this.activeWidget = \"impact-overview\";\n }\n }\n\n firstUpdated(_changedProperties: PropertyValues) {\n this.enforceConfig();\n this.updateComponentState();\n }\n\n async updated(previousPropertyValues: PropertyValues) {\n // Also fires on first load as props go from undefined => value\n const refreshOnChangeProps = [...REQUIRED_DATA_PROPS, ...OPTIONAL_DATA_PROPS];\n if (refreshOnChangeProps.some((p) => previousPropertyValues.has(p))) {\n await this.transactionDataController.exec();\n }\n }\n\n enforceConfig() {\n enforceConfig(REQUIRED_DATA_PROPS, this);\n if (!this.email && !this.partnerUserId) {\n throw new MissingConfig(\n [this.email ? \"\" : \"email\", this.partnerUserId ? \"\" : \"partnerUserId\"].filter(Boolean),\n \"At least one of [email, partnerUserId] must be provided\"\n );\n }\n }\n\n private getManualPromoCodes(): string[] {\n if (this.parsedPromoCodes?.length) {\n return this.parsedPromoCodes;\n }\n if (this.promoCodes?.length) {\n return this.promoCodes;\n }\n return [];\n }\n\n handlePostTransaction = async () => {\n this.enforceConfig();\n this.updateComponentState();\n\n const manualPromoCodes = this.getManualPromoCodes();\n const formattedPromosFromLocalStorage = formatStoreAndReturnPromoCodes(\n manualPromoCodes.map((code) => ({ value: code })),\n this.apiKey\n );\n\n const promoCookieData = getAllPromoCodesFromCookie();\n const formattedPromosFromCookie: TPromoCodeRequest = {\n unvalidatedPromoCodes: mapToUnvalidatedPromoCodes(manualPromoCodes.map((code) => ({ value: code }))),\n validatedPromoCodes: promoCookieData?.validatedPromoCodes ?? [],\n };\n\n const formattedPromos = formattedPromosFromLocalStorage ?? formattedPromosFromCookie;\n\n const shouldSendPromos = formattedPromos && !isEmptyPromoData(formattedPromos);\n const result = await postTransaction({\n baseUrl: this.baseUrl,\n apiRoot: \"/api\",\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n requestBody: {\n selectionId: this.selectionId || undefined,\n cartId: this.cartId || undefined,\n beamCartId: this.beamCartId || undefined,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n storeId: this.storeId,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n email: this.email, // One or both of email & partnerUserId should be defined\n partnerUserId: this.partnerUserId, // One or both of email & partnerUserId should be defined\n currencyCode: this.currencyCode,\n postalCode: this.postalCode,\n countryCode: this.countryCode,\n cart: this.cart,\n ...(shouldSendPromos && { promos: formattedPromos }),\n discountCodes: this.discountCodes,\n },\n });\n\n this.transactionId = result.transactionId;\n this.userId = result.beamUserId;\n this.nonprofitId = result.nonprofitId;\n this.excludeDonationsForRecurringTransactions = Boolean(result.reportSettings?.excludeRecurringDonations);\n this.creationMethod = result.creationMethod || \"\";\n\n const isTransactionRedeemed = !!this.nonprofitId;\n this.activeWidget = isTransactionRedeemed ? \"impact-overview\" : \"redeem-transaction\";\n\n // Emit order created event only when order is registered with Beam for the first time\n if (result.transactionCreated) {\n const localStorageKeys = [\n \"transaction\",\n \"cart\",\n PROMO_LOCAL_STORAGE_KEY,\n LOCAL_STORAGE_KEYS.NONPROFIT,\n LOCAL_STORAGE_KEYS.NONPROFIT_SELECTED_AT,\n ];\n localStorageKeys.forEach((key) => {\n this.localStorage.removeItem(key);\n });\n const cookieConfigs = [\n { name: BEAM_CART_COOKIE_NAME, path: \"/\", domain: this.domain },\n { name: PROMO_CODES_COOKIE_NAME, path: \"/\", domain: this.domain },\n ];\n\n cookieConfigs.forEach((config) => deleteCookieValue(config));\n\n // Emit order created event only when order is registered with Beam for the first time\n dispatchEvent(\n new BeamOrderCreatedEvent({\n transactionId: result.transactionId,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n currencyCode: this.currencyCode,\n })\n );\n }\n return result;\n };\n\n private transactionDataController = new AsyncController<typeof this.handlePostTransaction>(\n this,\n this.handlePostTransaction\n );\n\n render() {\n if (this.transactionDataController.loading) {\n return \"\";\n }\n if (this.transactionDataController.error) {\n if (this.debug) {\n return _errorMessage({ error: this.transactionDataController.error });\n }\n return \"\";\n }\n if (this.excludeDonationsForRecurringTransactions && this.creationMethod === \"recurring\") {\n return html``;\n }\n if (this.activeWidget === \"redeem-transaction\") {\n return html`\n <beam-redeem-transaction\n part=\"redeem-transaction\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n storeId=\"${this.storeId}\"\n postalCode=\"${this.postalCode}\"\n countryCode=\"${this.countryCode}\"\n transactionId=\"${this.transactionId}\"\n cart=\"${JSON.stringify(this.cart)}\"\n lang=\"${this.lang}\"\n excludeDonationsForRecurringTransactions=\"${this.excludeDonationsForRecurringTransactions}\"\n ?draftConfig=\"${this.draftConfig}\"\n ?debug=\"${this.debug}\"\n @beamnonprofitselect=\"${(event: Event) => {\n if (!(event instanceof CustomEvent)) return; // TS guard\n const { selectedNonprofitId } = (event as BeamNonprofitSelectEvent).detail;\n this.nonprofitId = selectedNonprofitId ?? null;\n this.activeWidget = \"impact-overview\";\n }}\"\n ></beam-redeem-transaction>\n `;\n }\n if (this.activeWidget === \"impact-overview\") {\n return html`\n <beam-impact-overview\n part=\"impact-overview\"\n storeId=\"${this.storeId}\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n userId=\"${this.userId}\"\n nonprofitId=\"${this.nonprofitId}\"\n lang=\"${this.lang}\"\n discountCodes=\"${JSON.stringify(this.discountCodes)}\"\n transactionId=\"${this.transactionId}\"\n ?draftConfig=\"${this.draftConfig}\"\n ?debug=\"${this.debug}\"\n ></beam-impact-overview>\n `;\n }\n return \"\";\n }\n\n static styles = [cssReset];\n}\n\ndefineCustomElement(BeamPostPurchase);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-post-purchase\": BeamPostPurchase;\n }\n}\n"],"names":["y","t","p","d","r","i","o","l","s","REQUIRED_DATA_PROPS","OPTIONAL_DATA_PROPS","BeamPostPurchase","LitElement","DEFAULT_BASE_URL","createScopedLocalStorage","manualPromoCodes","formattedPromosFromLocalStorage","formatStoreAndReturnPromoCodes","code","promoCookieData","getAllPromoCodesFromCookie","formattedPromosFromCookie","mapToUnvalidatedPromoCodes","formattedPromos","shouldSendPromos","isEmptyPromoData","result","postTransaction","isTransactionRedeemed","PROMO_LOCAL_STORAGE_KEY","LOCAL_STORAGE_KEYS","key","BEAM_CART_COOKIE_NAME","PROMO_CODES_COOKIE_NAME","config","deleteCookieValue","BeamOrderCreatedEvent","AsyncController","parseJsonStringArray","getCookieValue","_changedProperties","previousPropertyValues","enforceConfig","MissingConfig","_errorMessage","html","event","selectedNonprofitId","cssReset","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as o,t as
|
|
1
|
+
import{g as o,t as a,h as I,y as h}from"../chunks/lit-WqMxC_PA.esm.js";import{M as f}from"../chunks/beam-errors-Ci0d3926.esm.js";import{deleteCookieValue as v,getCookieValue as b}from"../utils/cookies.js";import{c as S,d as P,e as $}from"../chunks/enforce-config-Ba1JkOHs.esm.js";import{createScopedLocalStorage as T}from"../utils/local-storage.js";import{A as U,_ as E}from"../chunks/localize-C25pEGnx.esm.js";import{D as O,L as u}from"../chunks/routes-BvX92EDq.esm.js";import{p as A}from"../chunks/index-2OQzw7UI.esm.js";import"./impact-overview.js";import{B as C}from"../chunks/cart-contents-DkoytiZh.esm.js";import{b as D}from"../chunks/events-Dki0ka4F.esm.js";import{formatStoreAndReturnPromoCodes as R,getAllPromoCodesFromCookie as _,mapToUnvalidatedPromoCodes as M,isEmptyPromoData as w,parseJsonStringArray as K}from"../utils/promoManager.js";import{P as N,a as L}from"../chunks/promo-types-DKAOFHJr.esm.js";import"../utils/logger.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/promo-pill-label-ByFGhdxh.esm.js";import"../chunks/_share-dialog-dependencies-BG0p8uUr.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"./beam-partner-logos.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";import"../chunks/share-button-BRjKJc5L.esm.js";import"../chunks/is-all-html-elements-fcB7UUA1.esm.js";import"../chunks/share-button-DPNNnXeM.esm.js";import"../chunks/responsive-BR8qUfBa.esm.js";var x=Object.defineProperty,e=(l,r,i,m)=>{for(var s=void 0,d=l.length-1,c;d>=0;d--)(c=l[d])&&(s=c(r,i,s)||s);return s&&x(r,i,s),s};const y=["baseUrl","apiKey","orderId","cartTotal","currencyCode","lang"],F=["storeId","postalCode","countryCode","cart","discountCodes","promoCodes","htmlPromoCodes","email","partnerUserId"];class t extends I{constructor(){super(...arguments),this.baseUrl=O,this.currencyCode="USD",this.lang="en",this.debug=!1,this.activeWidget=null,this.nonprofitId=null,this.selectionId=null,this.cartId=null,this.beamCartId=null,this.userId=null,this.transactionId=null,this.excludeDonationsForRecurringTransactions=!1,this.creationMethod="",this.draftConfig=!1,this.localStorage=T(this),this.handlePostTransaction=async()=>{this.enforceConfig(),this.updateComponentState();const r=this.getManualPromoCodes(),i=R(r.map(p=>({value:p})),this.apiKey),m=_(),s={unvalidatedPromoCodes:M(r.map(p=>({value:p}))),validatedPromoCodes:m?.validatedPromoCodes??[]},d=i??s,c=d&&!w(d),n=await A({baseUrl:this.baseUrl,apiRoot:"/api",headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{selectionId:this.selectionId||void 0,cartId:this.cartId||void 0,beamCartId:this.beamCartId||void 0,storeId:this.storeId,orderId:this.orderId,cartTotal:this.cartTotal,email:this.email,partnerUserId:this.partnerUserId,currencyCode:this.currencyCode,postalCode:this.postalCode,countryCode:this.countryCode,cart:this.cart,...c&&{promos:d},discountCodes:this.discountCodes}});this.transactionId=n.transactionId,this.userId=n.beamUserId,this.nonprofitId=n.nonprofitId,this.excludeDonationsForRecurringTransactions=!!n.reportSettings?.excludeRecurringDonations,this.creationMethod=n.creationMethod||"";const g=!!this.nonprofitId;return this.activeWidget=g?"impact-overview":"redeem-transaction",n.transactionCreated&&(["transaction","cart",N,u.NONPROFIT,u.NONPROFIT_SELECTED_AT].forEach(p=>{this.localStorage.removeItem(p)}),[{name:C,path:"/",domain:this.domain},{name:L,path:"/",domain:this.domain}].forEach(p=>v(p)),dispatchEvent(new D({transactionId:n.transactionId,orderId:this.orderId,cartTotal:this.cartTotal,currencyCode:this.currencyCode}))),n},this.transactionDataController=new U(this,this.handlePostTransaction)}get parsedPromoCodes(){return K(this.htmlPromoCodes)}updateComponentState(){this.localStorage.getItem("transaction")?.toLocaleLowerCase()==="undefined"&&this.localStorage.removeItem("transaction"),this.selectionId=this.selectionId||this.localStorage.getItem("transaction")||null,this.cartId=this.cartId||this.localStorage.getItemJson("cart")?.cartId||null,this.beamCartId=this.beamCartId||this.localStorage.getItemJson("cart")?.beamCartId||b(C)||null,this.selectionId&&this.nonprofitId&&(this.activeWidget="impact-overview")}firstUpdated(r){this.enforceConfig(),this.updateComponentState()}async updated(r){[...y,...F].some(i=>r.has(i))&&await this.transactionDataController.exec()}enforceConfig(){if($(y,this),!this.email&&!this.partnerUserId)throw new f([this.email?"":"email",this.partnerUserId?"":"partnerUserId"].filter(Boolean),"At least one of [email, partnerUserId] must be provided")}getManualPromoCodes(){return this.parsedPromoCodes?.length?this.parsedPromoCodes:this.promoCodes?.length?this.promoCodes:[]}render(){return this.transactionDataController.loading?"":this.transactionDataController.error?this.debug?E({error:this.transactionDataController.error}):"":this.excludeDonationsForRecurringTransactions&&this.creationMethod==="recurring"?h``:this.activeWidget==="redeem-transaction"?h`
|
|
2
2
|
<beam-redeem-transaction
|
|
3
3
|
part="redeem-transaction"
|
|
4
4
|
baseUrl="${this.baseUrl}"
|
|
@@ -12,7 +12,7 @@ import{g as o,t as i,h as I,y as h}from"../chunks/lit-WqMxC_PA.esm.js";import{M
|
|
|
12
12
|
excludeDonationsForRecurringTransactions="${this.excludeDonationsForRecurringTransactions}"
|
|
13
13
|
?draftConfig="${this.draftConfig}"
|
|
14
14
|
?debug="${this.debug}"
|
|
15
|
-
@beamnonprofitselect="${r=>{if(!(r instanceof CustomEvent))return;const{selectedNonprofitId:
|
|
15
|
+
@beamnonprofitselect="${r=>{if(!(r instanceof CustomEvent))return;const{selectedNonprofitId:i}=r.detail;this.nonprofitId=i??null,this.activeWidget="impact-overview"}}"
|
|
16
16
|
></beam-redeem-transaction>
|
|
17
17
|
`:this.activeWidget==="impact-overview"?h`
|
|
18
18
|
<beam-impact-overview
|
|
@@ -28,5 +28,5 @@ import{g as o,t as i,h as I,y as h}from"../chunks/lit-WqMxC_PA.esm.js";import{M
|
|
|
28
28
|
?draftConfig="${this.draftConfig}"
|
|
29
29
|
?debug="${this.debug}"
|
|
30
30
|
></beam-impact-overview>
|
|
31
|
-
`:""}}t.tagName="beam-post-purchase",t.styles=[S],e([o({type:String})],t.prototype,"baseUrl"),e([o({type:String})],t.prototype,"apiKey"),e([o({type:Number,reflect:!0})],t.prototype,"storeId"),e([o({type:String})],t.prototype,"postalCode"),e([o({type:String})],t.prototype,"countryCode"),e([o({type:String})],t.prototype,"orderId"),e([o({type:String})],t.prototype,"email"),e([o({type:String})],t.prototype,"partnerUserId"),e([o({type:Number})],t.prototype,"cartTotal"),e([o({type:String})],t.prototype,"currencyCode"),e([o({type:String})],t.prototype,"lang"),e([o({type:Object})],t.prototype,"cart"),e([o({type:Array})],t.prototype,"discountCodes"),e([o({type:Array})],t.prototype,"promoCodes"),e([o({type:String})],t.prototype,"htmlPromoCodes"),e([o({type:String})],t.prototype,"domain"),e([o({type:Boolean})],t.prototype,"debug"),e([
|
|
31
|
+
`:""}}t.tagName="beam-post-purchase",t.styles=[S],e([o({type:String})],t.prototype,"baseUrl"),e([o({type:String})],t.prototype,"apiKey"),e([o({type:Number,reflect:!0})],t.prototype,"storeId"),e([o({type:String})],t.prototype,"postalCode"),e([o({type:String})],t.prototype,"countryCode"),e([o({type:String})],t.prototype,"orderId"),e([o({type:String})],t.prototype,"email"),e([o({type:String})],t.prototype,"partnerUserId"),e([o({type:Number})],t.prototype,"cartTotal"),e([o({type:String})],t.prototype,"currencyCode"),e([o({type:String})],t.prototype,"lang"),e([o({type:Object})],t.prototype,"cart"),e([o({type:Array})],t.prototype,"discountCodes"),e([o({type:Array})],t.prototype,"promoCodes"),e([o({type:String})],t.prototype,"htmlPromoCodes"),e([o({type:String})],t.prototype,"domain"),e([o({type:Boolean})],t.prototype,"debug"),e([a()],t.prototype,"activeWidget"),e([a()],t.prototype,"nonprofitId"),e([a()],t.prototype,"selectionId"),e([a()],t.prototype,"cartId"),e([a()],t.prototype,"beamCartId"),e([a()],t.prototype,"userId"),e([a()],t.prototype,"transactionId"),e([a()],t.prototype,"excludeDonationsForRecurringTransactions"),e([a()],t.prototype,"creationMethod"),e([o({type:Boolean})],t.prototype,"draftConfig"),P(t);export{t as BeamPostPurchase};
|
|
32
32
|
//# sourceMappingURL=post-purchase.js.map
|