@beamimpact/web-sdk 1.39.2 → 1.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -11
- package/dist/chunks/_share-dialog-dependencies-0XZ9j6DF.esm.js +2 -0
- package/dist/chunks/_share-dialog-dependencies-0XZ9j6DF.esm.js.map +1 -0
- package/dist/chunks/_share-dialog-dependencies-cBi8GG00.esm.js +2 -0
- package/dist/chunks/_share-dialog-dependencies-cBi8GG00.esm.js.map +1 -0
- package/dist/chunks/cart-contents-h60geKWa.esm.js.map +1 -1
- package/dist/chunks/{cart-contents-3-9fB-7m.esm.d.ts → cart-contents-sUhfwLAz.esm.d.ts} +2 -1
- package/dist/chunks/checkbox-P2JYPqxl.esm.js +17 -0
- package/dist/chunks/checkbox-P2JYPqxl.esm.js.map +1 -0
- package/dist/chunks/{css-card-grid-7tObtoJx.esm.js → css-card-grid-r6wxRbPV.esm.js} +2 -2
- package/dist/chunks/{css-card-grid-7tObtoJx.esm.js.map → css-card-grid-r6wxRbPV.esm.js.map} +1 -1
- package/dist/chunks/enforce-config-HksNiOMu.esm.js +3 -0
- package/dist/chunks/enforce-config-HksNiOMu.esm.js.map +1 -0
- package/dist/chunks/enforce-config-er6B5Gkj.esm.js +3 -0
- package/dist/chunks/enforce-config-er6B5Gkj.esm.js.map +1 -0
- package/dist/chunks/{events-7cGXyV7_.esm.d.ts → events-QJc86_5Y.esm.d.ts} +2 -2
- package/dist/chunks/{events-Y8fYvSqM.esm.js → events-_4nImo3u.esm.js} +2 -2
- package/dist/chunks/{events-Y8fYvSqM.esm.js.map → events-_4nImo3u.esm.js.map} +1 -1
- package/dist/chunks/index--phjcEHh.esm.js +2 -0
- package/dist/chunks/index--phjcEHh.esm.js.map +1 -0
- package/dist/chunks/{index-uCfdsWtt.esm.js → index-1nI7l5vj.esm.js} +2 -2
- package/dist/chunks/{index-uCfdsWtt.esm.js.map → index-1nI7l5vj.esm.js.map} +1 -1
- package/dist/chunks/index-2K1cEtb1.esm.js +2 -0
- package/dist/chunks/index-2K1cEtb1.esm.js.map +1 -0
- package/dist/chunks/index-3-VTK-nH.esm.js +2 -0
- package/dist/chunks/index-3-VTK-nH.esm.js.map +1 -0
- package/dist/chunks/index-AQ8n9ODJ.esm.js +2 -0
- package/dist/chunks/{index-XlnH7ARQ.esm.js.map → index-AQ8n9ODJ.esm.js.map} +1 -1
- package/dist/chunks/index-E8H5A7Qq.esm.js +2 -0
- package/dist/chunks/index-E8H5A7Qq.esm.js.map +1 -0
- package/dist/chunks/index-FQExZDX9.esm.js +2 -0
- package/dist/chunks/index-FQExZDX9.esm.js.map +1 -0
- package/dist/chunks/index-JA-7NqMF.esm.js +2 -0
- package/dist/chunks/index-JA-7NqMF.esm.js.map +1 -0
- package/dist/chunks/{index-8KzbQIsU.esm.d.ts → index-M-0eAFA6.esm.d.ts} +1 -1
- package/dist/chunks/{index-phDmC-TS.esm.js → index-NOF_HeFP.esm.js} +2 -2
- package/dist/chunks/index-NOF_HeFP.esm.js.map +1 -0
- package/dist/chunks/index-PiMq5a49.esm.js +2 -0
- package/dist/chunks/index-PiMq5a49.esm.js.map +1 -0
- package/dist/chunks/{index-rFBYAk7m.esm.d.ts → index-VHXu2kRx.esm.d.ts} +1 -1
- package/dist/chunks/index-XCMf22lv.esm.js +2 -0
- package/dist/chunks/index-XCMf22lv.esm.js.map +1 -0
- package/dist/chunks/{index-0VcD5nhV.esm.d.ts → index-ZgCs6F4e.esm.d.ts} +4 -4
- package/dist/chunks/{index-TOzSFOvI.esm.d.ts → index-_Hgu38MH.esm.d.ts} +1 -1
- package/dist/chunks/{index-SxFKifVJ.esm.d.ts → index-_UuYsIe9.esm.d.ts} +1 -1
- package/dist/chunks/index-cUb-0Igl.esm.js +2 -0
- package/dist/chunks/{index-dsJIs5Sr.esm.js.map → index-cUb-0Igl.esm.js.map} +1 -1
- package/dist/chunks/index-eHSdKArB.esm.js +2 -0
- package/dist/chunks/index-eHSdKArB.esm.js.map +1 -0
- package/dist/chunks/{index-HBDtoJlQ.esm.d.ts → index-euJMrXIc.esm.d.ts} +1 -1
- package/dist/chunks/{index-Hb-jziQs.esm.d.ts → index-hn6JhG_w.esm.d.ts} +7 -1
- package/dist/chunks/{index-6t9MtjyS.esm.d.ts → index-mTXm0DPh.esm.d.ts} +9 -1
- package/dist/chunks/{index-Q1vx4WtG.esm.js → index-mw70Caof.esm.js} +2 -2
- package/dist/chunks/{index-Q1vx4WtG.esm.js.map → index-mw70Caof.esm.js.map} +1 -1
- package/dist/chunks/{index-8yrr7ZZv.esm.js → index-n6QNFLXV.esm.js} +2 -2
- package/dist/chunks/index-n6QNFLXV.esm.js.map +1 -0
- package/dist/chunks/index-sOAq6oM0.esm.js +2 -0
- package/dist/chunks/index-sOAq6oM0.esm.js.map +1 -0
- package/dist/chunks/{index-uF-Qtewb.esm.js → index-x2kxA_Xo.esm.js} +2 -2
- package/dist/chunks/index-x2kxA_Xo.esm.js.map +1 -0
- package/dist/chunks/{index-Lw32NXij.esm.js → index-z8c9I9IQ.esm.js} +2 -2
- package/dist/chunks/index-z8c9I9IQ.esm.js.map +1 -0
- package/dist/chunks/{lit-qtGbjGnK.esm.js → lit-3QHn3fwl.esm.js} +5 -5
- package/dist/chunks/lit-3QHn3fwl.esm.js.map +1 -0
- package/dist/chunks/loading-template-mLjOGXMj.esm.js +2 -0
- package/dist/chunks/{loading-template-Av0IUyKF.esm.js.map → loading-template-mLjOGXMj.esm.js.map} +1 -1
- package/dist/chunks/localize-IRs8JglT.esm.js +29 -0
- package/dist/chunks/localize-IRs8JglT.esm.js.map +1 -0
- package/dist/chunks/localize-SsJbTmMj.esm.js +29 -0
- package/dist/chunks/localize-SsJbTmMj.esm.js.map +1 -0
- package/dist/chunks/{openapi-spec--MzXvfCC.esm.d.ts → openapi-spec--WoGcZgR.esm.d.ts} +232 -9
- package/dist/chunks/order-page-4qPr8vqZ.esm.js +2 -0
- package/dist/chunks/order-page-4qPr8vqZ.esm.js.map +1 -0
- package/dist/chunks/order-page-Ps8Qyjfg.esm.d.ts +74 -0
- package/dist/chunks/order-page-akvp5h2x.esm.js +2 -0
- package/dist/chunks/order-page-akvp5h2x.esm.js.map +1 -0
- package/dist/chunks/{progress-bar-Sn2QspHy.esm.js → progress-bar-HVG_n8_6.esm.js} +7 -6
- package/dist/chunks/progress-bar-HVG_n8_6.esm.js.map +1 -0
- package/dist/chunks/{promo-pill-label-j0A8qZ0c.esm.js → promo-pill-label-3Xtr5ALT.esm.js} +4 -3
- package/dist/chunks/{promo-pill-label-j0A8qZ0c.esm.js.map → promo-pill-label-3Xtr5ALT.esm.js.map} +1 -1
- package/dist/chunks/{responsive-aWj_7ZN_.esm.js → responsive-KbDsZM6S.esm.js} +2 -2
- package/dist/chunks/{responsive-aWj_7ZN_.esm.js.map → responsive-KbDsZM6S.esm.js.map} +1 -1
- package/dist/chunks/routes-qbvie7oI.esm.d.ts +445 -0
- package/dist/chunks/routes-r5D_LdgT.esm.js +2 -0
- package/dist/chunks/routes-r5D_LdgT.esm.js.map +1 -0
- package/dist/chunks/routes-rmhOokKz.esm.js +2 -0
- package/dist/chunks/routes-rmhOokKz.esm.js.map +1 -0
- package/dist/chunks/share-button-CqTd80g8.esm.js +2 -0
- package/dist/chunks/share-button-CqTd80g8.esm.js.map +1 -0
- package/dist/chunks/share-button-JqbM7N_4.esm.js +163 -0
- package/dist/chunks/share-button-JqbM7N_4.esm.js.map +1 -0
- package/dist/chunks/share-button-hDn8fnBI.esm.d.ts +22 -0
- package/dist/chunks/share-button-jpa1X3FA.esm.js +163 -0
- package/dist/chunks/share-button-jpa1X3FA.esm.js.map +1 -0
- package/dist/chunks/shoelace-components-NR11kwmz.esm.js +2 -0
- package/dist/chunks/shoelace-components-NR11kwmz.esm.js.map +1 -0
- package/dist/chunks/shoelace-components-yXqj8DyM.esm.js +2 -0
- package/dist/chunks/shoelace-components-yXqj8DyM.esm.js.map +1 -0
- package/dist/chunks/{types-CfbVJRfU.esm.d.ts → types-zbTZ8-KP.esm.d.ts} +4 -1
- package/dist/chunks/update-cart-05ZiT0Xf.esm.js +2 -0
- package/dist/chunks/update-cart-05ZiT0Xf.esm.js.map +1 -0
- package/dist/chunks/{update-cart-xaWdPxse.esm.d.ts → update-cart-SajqAoez.esm.d.ts} +2 -1
- package/dist/chunks/update-cart-lTgKV-Zu.esm.js +2 -0
- package/dist/chunks/update-cart-lTgKV-Zu.esm.js.map +1 -0
- package/dist/chunks/{vendor-jQ8cxMpw.esm.js → vendor--f7lkyBk.esm.js} +44 -44
- package/dist/chunks/vendor--f7lkyBk.esm.js.map +1 -0
- package/dist/components/beam-partner-logos.esm.js +2 -2
- package/dist/components/beam-partner-logos.esm.js.map +1 -1
- package/dist/components/beam-partner-logos.js +2 -2
- package/dist/components/beam-partner-logos.js.map +1 -1
- package/dist/components/community-impact.d.ts +1 -1
- package/dist/components/community-impact.esm.js +15 -9
- package/dist/components/community-impact.esm.js.map +1 -1
- package/dist/components/community-impact.js +15 -9
- package/dist/components/community-impact.js.map +1 -1
- package/dist/components/cumulative-impact.d.ts +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.d.ts +16 -4
- package/dist/components/impact-overview.esm.js +29 -146
- package/dist/components/impact-overview.esm.js.map +1 -1
- package/dist/components/impact-overview.js +29 -146
- package/dist/components/impact-overview.js.map +1 -1
- package/dist/components/index.d.ts +8 -3
- package/dist/components/index.esm.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/post-purchase.d.ts +6 -3
- package/dist/components/post-purchase.esm.js +2 -1
- package/dist/components/post-purchase.esm.js.map +1 -1
- package/dist/components/post-purchase.js +2 -1
- package/dist/components/post-purchase.js.map +1 -1
- package/dist/components/product-details-page.d.ts +7 -1
- package/dist/components/product-details-page.esm.js +67 -19
- package/dist/components/product-details-page.esm.js.map +1 -1
- package/dist/components/product-details-page.js +67 -19
- package/dist/components/product-details-page.js.map +1 -1
- package/dist/components/redeem-transaction.d.ts +4 -3
- package/dist/components/redeem-transaction.esm.js +44 -55
- package/dist/components/redeem-transaction.esm.js.map +1 -1
- package/dist/components/redeem-transaction.js +44 -55
- package/dist/components/redeem-transaction.js.map +1 -1
- package/dist/components/select-nonprofit.d.ts +3 -3
- package/dist/components/select-nonprofit.esm.js +20 -16
- package/dist/components/select-nonprofit.esm.js.map +1 -1
- package/dist/components/select-nonprofit.js +20 -16
- package/dist/components/select-nonprofit.js.map +1 -1
- package/dist/components/select-subscription-nonprofit.d.ts +67 -0
- package/dist/components/select-subscription-nonprofit.esm.js +373 -0
- package/dist/components/select-subscription-nonprofit.esm.js.map +1 -0
- package/dist/components/select-subscription-nonprofit.js +373 -0
- package/dist/components/select-subscription-nonprofit.js.map +1 -0
- package/dist/components/shopify.d.ts +8 -6
- package/dist/components/shopify.esm.js +1 -1
- package/dist/components/shopify.esm.js.map +1 -1
- package/dist/components/shopify.js +1 -1
- package/dist/components/shopify.js.map +1 -1
- package/dist/components/social-share.d.ts +47 -0
- package/dist/components/social-share.esm.js +170 -0
- package/dist/components/social-share.esm.js.map +1 -0
- package/dist/components/social-share.js +170 -0
- package/dist/components/social-share.js.map +1 -0
- package/dist/components/subscription-impact.d.ts +179 -0
- package/dist/components/subscription-impact.esm.js +269 -0
- package/dist/components/subscription-impact.esm.js.map +1 -0
- package/dist/components/subscription-impact.js +269 -0
- package/dist/components/subscription-impact.js.map +1 -0
- package/dist/components/subscription-management.d.ts +143 -14
- package/dist/components/subscription-management.esm.js +267 -31
- package/dist/components/subscription-management.esm.js.map +1 -1
- package/dist/components/subscription-management.js +267 -31
- package/dist/components/subscription-management.js.map +1 -1
- package/dist/index.d.ts +23 -14
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/integrations/beam.d.ts +1 -1
- package/dist/integrations/beam.esm.js +1 -1
- package/dist/integrations/beam.js +1 -1
- package/dist/integrations/cart.d.ts +3 -3
- package/dist/integrations/cart.esm.js +1 -1
- package/dist/integrations/cart.js +1 -1
- package/dist/integrations/index.d.ts +12 -10
- package/dist/integrations/index.esm.js +1 -1
- package/dist/integrations/index.js +1 -1
- package/dist/integrations/logs.d.ts +2 -2
- package/dist/integrations/logs.esm.js +1 -1
- package/dist/integrations/logs.js +1 -1
- package/dist/integrations/session.esm.js +1 -1
- package/dist/integrations/session.js +1 -1
- package/dist/integrations/shopify.d.ts +7 -5
- package/dist/integrations/shopify.esm.js +1 -1
- package/dist/integrations/shopify.js +1 -1
- package/dist/integrations/statsig.d.ts +1 -1
- package/dist/integrations/statsig.esm.js +14 -10
- package/dist/integrations/statsig.esm.js.map +1 -1
- package/dist/integrations/statsig.js +14 -10
- package/dist/integrations/statsig.js.map +1 -1
- package/dist/integrations/utils.d.ts +4 -4
- package/dist/integrations/utils.esm.js +1 -1
- package/dist/integrations/utils.js +1 -1
- package/dist/react/beam-partner-logos.esm.js +1 -1
- package/dist/react/beam-partner-logos.js +1 -1
- package/dist/react/community-impact.d.ts +1 -1
- package/dist/react/community-impact.esm.js +1 -1
- package/dist/react/community-impact.esm.js.map +1 -1
- package/dist/react/community-impact.js +1 -1
- package/dist/react/community-impact.js.map +1 -1
- package/dist/react/cumulative-impact.d.ts +1 -1
- package/dist/react/cumulative-impact.esm.js +1 -1
- package/dist/react/cumulative-impact.esm.js.map +1 -1
- package/dist/react/cumulative-impact.js +1 -1
- package/dist/react/cumulative-impact.js.map +1 -1
- package/dist/react/impact-overview.d.ts +2 -1
- package/dist/react/impact-overview.esm.js +1 -1
- package/dist/react/impact-overview.esm.js.map +1 -1
- package/dist/react/impact-overview.js +1 -1
- package/dist/react/impact-overview.js.map +1 -1
- package/dist/react/index.d.ts +14 -4
- package/dist/react/index.esm.js +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/post-purchase.d.ts +4 -3
- package/dist/react/post-purchase.esm.js +1 -1
- package/dist/react/post-purchase.esm.js.map +1 -1
- package/dist/react/post-purchase.js +1 -1
- package/dist/react/post-purchase.js.map +1 -1
- package/dist/react/product-details-page.esm.js +1 -1
- package/dist/react/product-details-page.esm.js.map +1 -1
- package/dist/react/product-details-page.js +1 -1
- package/dist/react/product-details-page.js.map +1 -1
- package/dist/react/redeem-transaction.d.ts +4 -4
- 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 +4 -4
- 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 +19 -0
- package/dist/react/select-subscription-nonprofit.esm.js +2 -0
- package/dist/react/select-subscription-nonprofit.esm.js.map +1 -0
- package/dist/react/select-subscription-nonprofit.js +2 -0
- package/dist/react/select-subscription-nonprofit.js.map +1 -0
- package/dist/react/social-share.d.ts +12 -0
- package/dist/react/social-share.esm.js +2 -0
- package/dist/react/social-share.esm.js.map +1 -0
- package/dist/react/social-share.js +2 -0
- package/dist/react/social-share.js.map +1 -0
- package/dist/react/subscription-impact.d.ts +13 -0
- package/dist/react/subscription-impact.esm.js +2 -0
- package/dist/react/subscription-impact.esm.js.map +1 -0
- package/dist/react/subscription-impact.js +2 -0
- package/dist/react/subscription-impact.js.map +1 -0
- package/dist/react/subscription-management.d.ts +9 -8
- package/dist/react/subscription-management.esm.js +1 -1
- package/dist/react/subscription-management.esm.js.map +1 -1
- package/dist/react/subscription-management.js +1 -1
- package/dist/react/subscription-management.js.map +1 -1
- package/dist/utils/events.d.ts +4 -4
- package/dist/utils/events.esm.js +1 -1
- package/dist/utils/events.js +1 -1
- package/dist/utils/index.d.ts +4 -4
- package/dist/utils/index.esm.js +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/network-listeners.esm.js +1 -1
- package/dist/utils/network-listeners.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/_share-dialog-dependencies-K7WZWxUL.esm.js +0 -2
- package/dist/chunks/_share-dialog-dependencies-K7WZWxUL.esm.js.map +0 -1
- package/dist/chunks/_share-dialog-dependencies-VjhRF4_b.esm.js +0 -2
- package/dist/chunks/_share-dialog-dependencies-VjhRF4_b.esm.js.map +0 -1
- package/dist/chunks/index-8yrr7ZZv.esm.js.map +0 -1
- package/dist/chunks/index-EHubF2KN.esm.js +0 -2
- package/dist/chunks/index-EHubF2KN.esm.js.map +0 -1
- package/dist/chunks/index-EUMlzqI-.esm.js +0 -2
- package/dist/chunks/index-EUMlzqI-.esm.js.map +0 -1
- package/dist/chunks/index-Lw32NXij.esm.js.map +0 -1
- package/dist/chunks/index-U5URUABu.esm.js +0 -2
- package/dist/chunks/index-U5URUABu.esm.js.map +0 -1
- package/dist/chunks/index-V-BsPYtl.esm.js +0 -2
- package/dist/chunks/index-V-BsPYtl.esm.js.map +0 -1
- package/dist/chunks/index-VELk9_yH.esm.js +0 -2
- package/dist/chunks/index-VELk9_yH.esm.js.map +0 -1
- package/dist/chunks/index-XlnH7ARQ.esm.js +0 -2
- package/dist/chunks/index-cekgAcEE.esm.js +0 -2
- package/dist/chunks/index-cekgAcEE.esm.js.map +0 -1
- package/dist/chunks/index-dsJIs5Sr.esm.js +0 -2
- package/dist/chunks/index-o7YiP4gC.esm.js +0 -2
- package/dist/chunks/index-o7YiP4gC.esm.js.map +0 -1
- package/dist/chunks/index-phDmC-TS.esm.js.map +0 -1
- package/dist/chunks/index-q_XLkvqc.esm.js +0 -2
- package/dist/chunks/index-q_XLkvqc.esm.js.map +0 -1
- package/dist/chunks/index-uF-Qtewb.esm.js.map +0 -1
- package/dist/chunks/index-xR738adx.esm.js +0 -2
- package/dist/chunks/index-xR738adx.esm.js.map +0 -1
- package/dist/chunks/index-xfPSpbUV.esm.js +0 -2
- package/dist/chunks/index-xfPSpbUV.esm.js.map +0 -1
- package/dist/chunks/lit-qtGbjGnK.esm.js.map +0 -1
- package/dist/chunks/loading-template-Av0IUyKF.esm.js +0 -2
- package/dist/chunks/localize-F31ae3j6.esm.js +0 -30
- package/dist/chunks/localize-F31ae3j6.esm.js.map +0 -1
- package/dist/chunks/localize-fH8KOrMi.esm.js +0 -30
- package/dist/chunks/localize-fH8KOrMi.esm.js.map +0 -1
- package/dist/chunks/order-page-6Q-6CHug.esm.js +0 -2
- package/dist/chunks/order-page-6Q-6CHug.esm.js.map +0 -1
- package/dist/chunks/order-page-DPx5SUKM.esm.d.ts +0 -255
- package/dist/chunks/order-page-mYYXHDVr.esm.js +0 -2
- package/dist/chunks/order-page-mYYXHDVr.esm.js.map +0 -1
- package/dist/chunks/progress-bar-Sn2QspHy.esm.js.map +0 -1
- package/dist/chunks/routes-3jKReDai.esm.js +0 -2
- package/dist/chunks/routes-3jKReDai.esm.js.map +0 -1
- package/dist/chunks/routes-b8sncPq8.esm.js +0 -2
- package/dist/chunks/routes-b8sncPq8.esm.js.map +0 -1
- package/dist/chunks/shoelace-components-7XWYNn-Z.esm.js +0 -2
- package/dist/chunks/shoelace-components-7XWYNn-Z.esm.js.map +0 -1
- package/dist/chunks/shoelace-components-paAsUPkU.esm.js +0 -2
- package/dist/chunks/shoelace-components-paAsUPkU.esm.js.map +0 -1
- package/dist/chunks/update-cart-GaVMWI6J.esm.js +0 -2
- package/dist/chunks/update-cart-GaVMWI6J.esm.js.map +0 -1
- package/dist/chunks/update-cart-xW6a5_bz.esm.js +0 -2
- package/dist/chunks/update-cart-xW6a5_bz.esm.js.map +0 -1
- package/dist/chunks/vendor-jQ8cxMpw.esm.js.map +0 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as lit from 'lit';
|
|
2
|
+
import { LitElement } from 'lit';
|
|
3
|
+
import * as lit_html from 'lit-html';
|
|
4
|
+
import '../chunks/progress-bar-0VS_AmEf.esm.js';
|
|
5
|
+
import './beam-partner-logos.js';
|
|
6
|
+
import { T as TNumericId } from '../chunks/types-zbTZ8-KP.esm.js';
|
|
7
|
+
import { L as LANGUAGES } from '../chunks/types-aju0qrRe.esm.js';
|
|
8
|
+
|
|
9
|
+
type RequiredConfig = {
|
|
10
|
+
apiKey: string;
|
|
11
|
+
storeId: TNumericId;
|
|
12
|
+
nonprofitId: TNumericId;
|
|
13
|
+
};
|
|
14
|
+
declare class BeamSocialShare extends LitElement {
|
|
15
|
+
static tagName: string;
|
|
16
|
+
apiKey?: RequiredConfig["apiKey"];
|
|
17
|
+
storeId?: RequiredConfig["storeId"];
|
|
18
|
+
nonprofitId?: RequiredConfig["nonprofitId"];
|
|
19
|
+
baseUrl: string;
|
|
20
|
+
lang: LANGUAGES;
|
|
21
|
+
debug: boolean;
|
|
22
|
+
private brandName;
|
|
23
|
+
private shareImageUrl;
|
|
24
|
+
private dataUrl?;
|
|
25
|
+
private file?;
|
|
26
|
+
private isMobile;
|
|
27
|
+
private windowResized;
|
|
28
|
+
get configLang(): LANGUAGES;
|
|
29
|
+
connectedCallback(): void;
|
|
30
|
+
disconnectedCallback(): void;
|
|
31
|
+
checkViewport: () => void;
|
|
32
|
+
private fetchImpactData;
|
|
33
|
+
private updateImpactData;
|
|
34
|
+
firstUpdated(): Promise<void>;
|
|
35
|
+
private openSystemShareSheet;
|
|
36
|
+
private handleClickCopy;
|
|
37
|
+
private handleClickDownload;
|
|
38
|
+
render(): lit_html.TemplateResult<1>;
|
|
39
|
+
static styles: lit.CSSResult[];
|
|
40
|
+
}
|
|
41
|
+
declare global {
|
|
42
|
+
interface HTMLElementTagNameMap {
|
|
43
|
+
"beam-social-share": BeamSocialShare;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { BeamSocialShare };
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import{f as m,g as n,t as l,h as g,y as b}from"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"../chunks/shoelace-components-NR11kwmz.esm.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"./beam-partner-logos.esm.js";import{c as f,d as y,e as u}from"../chunks/enforce-config-HksNiOMu.esm.js";import{D as w,S as x,W as S,g as U}from"../chunks/routes-rmhOokKz.esm.js";import{_ as I}from"../chunks/loading-template-mLjOGXMj.esm.js";import{u as p,s as r}from"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.esm.js";var k=Object.defineProperty,v=Object.getOwnPropertyDescriptor,i=(c,t,a,o)=>{for(var s=o>1?void 0:o?v(t,a):t,h=c.length-1,d;h>=0;h--)(d=c[h])&&(s=(o?d(t,a,s):d(s))||s);return o&&s&&k(t,a,s),s};class e extends g{constructor(){super(...arguments),this.baseUrl=w,this.lang="en",this.debug=!1,this.brandName=null,this.shareImageUrl=null,this.isMobile=!1,this.windowResized=!1,this.checkViewport=()=>{this.windowResized=window.innerWidth<=768}}get configLang(){return x[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.checkViewport),this.checkViewport()}disconnectedCallback(){window.removeEventListener("resize",this.checkViewport),super.disconnectedCallback()}async fetchImpactData(){u(["apiKey","storeId","nonprofitId"],this);try{return await U({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{storeId:this.storeId,personalImpactLimit:0,nonprofitId:this.nonprofitId,widgetName:S.community_impact,version:"1.0.0",lang:this.configLang}})}catch(t){throw this.debug&&console.error("Failed to fetch impact data",t),t}}async updateImpactData(){try{const t=await this.fetchImpactData();if(t){this.brandName=t.chain.name;const a=t.community[0];if(this.shareImageUrl=a?.share.imageUrl,this.shareImageUrl){const o=await p(this.shareImageUrl);this.file=o,this.dataUrl=URL.createObjectURL(o)}}}catch(t){this.debug&&console.error("Error updating impact data:",t)}}async firstUpdated(){await this.updateImpactData(),this.isMobile=/Mobi|Android/i.test(navigator.userAgent)||"ontouchstart"in window||navigator.maxTouchPoints>0}async openSystemShareSheet(t){if(t)try{const a=await p(t);navigator.share&&this.brandName&&await navigator.share({files:[a],title:r[this.lang].impactShareTitle(),text:r[this.lang].impactShareText({brandName:this.brandName})})}catch(a){this.debug&&console.error("Failed to open share sheet",a)}}async handleClickCopy(){if(this.file)try{await navigator.clipboard.write([new ClipboardItem({"image/png":this.file})])}catch(t){this.debug&&console.error("Failed to copy image to clipboard:",t)}}handleClickDownload(t){const a=t.currentTarget;this.isMobile&&this.shareImageUrl?(t.preventDefault(),this.openSystemShareSheet(this.shareImageUrl)):this.dataUrl&&(a.href=this.dataUrl,a.download=r[this.lang].impactShareTitle())}render(){return!this.brandName||!this.shareImageUrl||!this.dataUrl?I():b`
|
|
2
|
+
<div class="share-container ${this.windowResized||this.isMobile?"mobile":"desktop"}">
|
|
3
|
+
<h2 class="share-title">${r[this.lang].impactShareTitle()}</h2>
|
|
4
|
+
<p class="share-text">${r[this.lang].impactShareText({brandName:this.brandName})}</p>
|
|
5
|
+
<img src="${this.shareImageUrl}" alt="${r[this.lang].impactShareTitle()}" class="share-image" />
|
|
6
|
+
<div class="share-actions">
|
|
7
|
+
<button class="plain-button button share-action-button" @click="${this.handleClickCopy}">
|
|
8
|
+
<sl-icon
|
|
9
|
+
library="lucide"
|
|
10
|
+
name="copy"
|
|
11
|
+
label="${r[this.lang].impactShareCopy()}"
|
|
12
|
+
class="share-action-icon"
|
|
13
|
+
></sl-icon>
|
|
14
|
+
<div class="share-action-text">${r[this.lang].impactShareCopy()}</div>
|
|
15
|
+
</button>
|
|
16
|
+
<a
|
|
17
|
+
class="plain-button button share-action-button plain-link"
|
|
18
|
+
download="${r[this.lang].impactShareTitle()}"
|
|
19
|
+
href="${this.dataUrl}"
|
|
20
|
+
@click="${this.handleClickDownload}"
|
|
21
|
+
>
|
|
22
|
+
<sl-icon
|
|
23
|
+
library="lucide"
|
|
24
|
+
name="download"
|
|
25
|
+
label="${r[this.lang].impactShareDownload()}"
|
|
26
|
+
class="share-action-icon"
|
|
27
|
+
></sl-icon>
|
|
28
|
+
<div class="share-action-text">${r[this.lang].impactShareDownload()}</div>
|
|
29
|
+
</a>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
`}}e.tagName="beam-social-share",e.styles=[f,m`
|
|
33
|
+
@font-face {
|
|
34
|
+
font-family: "Mabry-Bold";
|
|
35
|
+
src: url("../../../assets/fonts/mabry-bold.otf") format("opentype");
|
|
36
|
+
font-weight: bold;
|
|
37
|
+
font-style: normal;
|
|
38
|
+
}
|
|
39
|
+
@font-face {
|
|
40
|
+
font-family: "Mabry-Medium";
|
|
41
|
+
src: url("../../../assets/fonts/mabry-medium.otf") format("opentype");
|
|
42
|
+
font-weight: bold;
|
|
43
|
+
font-style: normal;
|
|
44
|
+
}
|
|
45
|
+
:host {
|
|
46
|
+
align-items: center;
|
|
47
|
+
justify-content: center;
|
|
48
|
+
display: flex;
|
|
49
|
+
box-sizing: border-box;
|
|
50
|
+
width: 100%;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.share-container {
|
|
54
|
+
display: flex;
|
|
55
|
+
flex-direction: column;
|
|
56
|
+
align-items: center;
|
|
57
|
+
justify-content: center;
|
|
58
|
+
max-width: 700px;
|
|
59
|
+
text-align: center;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.share-container.mobile {
|
|
63
|
+
padding: 1rem;
|
|
64
|
+
max-width: 100%;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.share-title {
|
|
68
|
+
font-family: "Mabry-Bold", sans-serif;
|
|
69
|
+
font-size: 2.5rem;
|
|
70
|
+
font-weight: bold;
|
|
71
|
+
word-break: break-word;
|
|
72
|
+
margin: 10px 0;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.share-title.mobile {
|
|
76
|
+
font-size: 1.5rem;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.share-text {
|
|
80
|
+
font-family: "Mabry-Medium", sans-serif;
|
|
81
|
+
font-size: 1.25rem;
|
|
82
|
+
line-height: 1.4;
|
|
83
|
+
word-break: break-word;
|
|
84
|
+
margin: 10px 0;
|
|
85
|
+
max-width: 500px;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.share-text.mobile {
|
|
89
|
+
font-size: 1rem;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.share-image {
|
|
93
|
+
border-radius: 8px;
|
|
94
|
+
width: 100%;
|
|
95
|
+
max-width: 300px;
|
|
96
|
+
height: auto;
|
|
97
|
+
display: block;
|
|
98
|
+
margin: 20px auto;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.share-actions {
|
|
102
|
+
display: flex;
|
|
103
|
+
flex-direction: row;
|
|
104
|
+
justify-content: center;
|
|
105
|
+
gap: 10px;
|
|
106
|
+
align-items: center;
|
|
107
|
+
margin: 20px 0;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.share-actions.mobile {
|
|
111
|
+
flex-direction: column;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.share-action-button {
|
|
115
|
+
display: flex;
|
|
116
|
+
justify-content: center;
|
|
117
|
+
align-items: center;
|
|
118
|
+
padding: 10px 20px;
|
|
119
|
+
border: 1px solid #ccc;
|
|
120
|
+
border-radius: 4px;
|
|
121
|
+
background-color: #fff;
|
|
122
|
+
text-decoration: none;
|
|
123
|
+
color: #333;
|
|
124
|
+
cursor: pointer;
|
|
125
|
+
transition: background-color 0.3s, border-color 0.3s;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.share-action-button:hover {
|
|
129
|
+
background-color: #f0f0f0;
|
|
130
|
+
border-color: #bbb;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.share-action-icon {
|
|
134
|
+
font-size: 1.25rem;
|
|
135
|
+
margin-right: 8px;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.share-action-text {
|
|
139
|
+
font-family: "Mabry-Medium", sans-serif;
|
|
140
|
+
font-size: 1rem;
|
|
141
|
+
line-height: 1.4;
|
|
142
|
+
margin-top: 5px;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
@media (max-width: 600px) {
|
|
146
|
+
.share-title {
|
|
147
|
+
font-size: 1.5rem;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.share-text {
|
|
151
|
+
font-size: 1rem;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.share-image {
|
|
155
|
+
max-width: 240px;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.share-actions {
|
|
159
|
+
flex-direction: row;
|
|
160
|
+
width: 50%;
|
|
161
|
+
margin: 10px 0;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.share-action-button {
|
|
165
|
+
width: 100%;
|
|
166
|
+
margin: 5px 0;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
`],i([n({type:String})],e.prototype,"apiKey",2),i([n({type:Number})],e.prototype,"storeId",2),i([n({type:Number})],e.prototype,"nonprofitId",2),i([n({type:String})],e.prototype,"baseUrl",2),i([n({type:String})],e.prototype,"lang",2),i([n({type:Boolean})],e.prototype,"debug",2),i([l()],e.prototype,"brandName",2),i([l()],e.prototype,"shareImageUrl",2),i([l()],e.prototype,"dataUrl",2),i([l()],e.prototype,"file",2),i([l()],e.prototype,"isMobile",2),i([l()],e.prototype,"windowResized",2),y(e);export{e as BeamSocialShare};
|
|
170
|
+
//# sourceMappingURL=social-share.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"social-share.esm.js","sources":["../../src/components/social-share/index.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport \"@shoelace-style/shoelace/dist/components/icon/icon.js\";\nimport \"../../shared/components/_share-dialog-dependencies\";\nimport \"../../shared/components/progress-bar\";\nimport \"../beam-partner-logos\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { TNumericId } from \"../../shared/types\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { strings } from \"../../shared/components/strings/share-button\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { urlToFile } from \"../../shared/files\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: TNumericId;\n nonprofitId: TNumericId;\n};\n\nexport class BeamSocialShare extends LitElement {\n static tagName = \"beam-social-share\";\n\n @property({ type: String }) public apiKey?: RequiredConfig[\"apiKey\"];\n @property({ type: Number }) storeId?: RequiredConfig[\"storeId\"];\n @property({ type: Number }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n @property({ type: String }) public baseUrl = DEFAULT_BASE_URL;\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n @property({ type: Boolean }) public debug = false;\n\n @state() private brandName: string | null = null;\n @state() private shareImageUrl: string | null = null;\n @state() private dataUrl?: string;\n @state() private file?: File;\n @state() private isMobile = false;\n @state() private windowResized = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.checkViewport);\n this.checkViewport();\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.checkViewport);\n super.disconnectedCallback();\n }\n\n checkViewport = () => {\n this.windowResized = window.innerWidth <= 768;\n };\n\n private async fetchImpactData() {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\", \"nonprofitId\"], this)) {\n throw new MissingConfig();\n }\n try {\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: { authorization: `Api-Key ${this.apiKey}` },\n queryParams: {\n storeId: this.storeId,\n personalImpactLimit: 0,\n nonprofitId: this.nonprofitId,\n widgetName: WIDGET_NAMES.community_impact,\n version: \"1.0.0\",\n lang: this.configLang,\n },\n });\n return res;\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to fetch impact data\", error);\n }\n throw error;\n }\n }\n\n // Updates component state with fetched impact data\n private async updateImpactData() {\n try {\n const data = await this.fetchImpactData();\n if (data) {\n this.brandName = data.chain.name;\n const communityImpact = data.community[0];\n this.shareImageUrl = communityImpact?.share.imageUrl;\n\n if (this.shareImageUrl) {\n const file = await urlToFile(this.shareImageUrl);\n this.file = file;\n this.dataUrl = URL.createObjectURL(file);\n }\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Error updating impact data:\", error);\n }\n }\n }\n\n async firstUpdated() {\n await this.updateImpactData();\n this.isMobile =\n /Mobi|Android/i.test(navigator.userAgent) || \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n }\n\n private async openSystemShareSheet(imageUrl: string) {\n if (!imageUrl) return;\n\n try {\n const file = await urlToFile(imageUrl);\n if (navigator.share && this.brandName) {\n await navigator.share({\n files: [file],\n title: strings[this.lang].impactShareTitle(),\n text: strings[this.lang].impactShareText({ brandName: this.brandName }),\n });\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to open share sheet\", error);\n }\n }\n }\n\n private async handleClickCopy() {\n if (this.file) {\n try {\n await navigator.clipboard.write([new ClipboardItem({ \"image/png\": this.file })]);\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to copy image to clipboard:\", error);\n }\n }\n }\n }\n\n private handleClickDownload(event: Event) {\n const target = event.currentTarget as HTMLAnchorElement;\n\n if (this.isMobile && this.shareImageUrl) {\n event.preventDefault();\n this.openSystemShareSheet(this.shareImageUrl);\n } else if (this.dataUrl) {\n target.href = this.dataUrl;\n target.download = strings[this.lang].impactShareTitle();\n }\n }\n\n render() {\n if (!this.brandName || !this.shareImageUrl || !this.dataUrl) {\n return _loading();\n }\n\n return html`\n <div class=\"share-container ${this.windowResized || this.isMobile ? \"mobile\" : \"desktop\"}\">\n <h2 class=\"share-title\">${strings[this.lang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.lang].impactShareText({ brandName: this.brandName })}</p>\n <img src=\"${this.shareImageUrl}\" alt=\"${strings[this.lang].impactShareTitle()}\" class=\"share-image\" />\n <div class=\"share-actions\">\n <button class=\"plain-button button share-action-button\" @click=\"${this.handleClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.lang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareCopy()}</div>\n </button>\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.lang].impactShareTitle()}\"\n href=\"${this.dataUrl}\"\n @click=\"${this.handleClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.lang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n `;\n }\n\n static styles = [\n cssReset,\n css`\n @font-face {\n font-family: \"Mabry-Bold\";\n src: url(\"../../../assets/fonts/mabry-bold.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n @font-face {\n font-family: \"Mabry-Medium\";\n src: url(\"../../../assets/fonts/mabry-medium.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n :host {\n align-items: center;\n justify-content: center;\n display: flex;\n box-sizing: border-box;\n width: 100%;\n }\n\n .share-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 700px;\n text-align: center;\n }\n\n .share-container.mobile {\n padding: 1rem;\n max-width: 100%;\n }\n\n .share-title {\n font-family: \"Mabry-Bold\", sans-serif;\n font-size: 2.5rem;\n font-weight: bold;\n word-break: break-word;\n margin: 10px 0;\n }\n\n .share-title.mobile {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1.25rem;\n line-height: 1.4;\n word-break: break-word;\n margin: 10px 0;\n max-width: 500px;\n }\n\n .share-text.mobile {\n font-size: 1rem;\n }\n\n .share-image {\n border-radius: 8px;\n width: 100%;\n max-width: 300px;\n height: auto;\n display: block;\n margin: 20px auto;\n }\n\n .share-actions {\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 10px;\n align-items: center;\n margin: 20px 0;\n }\n\n .share-actions.mobile {\n flex-direction: column;\n }\n\n .share-action-button {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 10px 20px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #fff;\n text-decoration: none;\n color: #333;\n cursor: pointer;\n transition: background-color 0.3s, border-color 0.3s;\n }\n\n .share-action-button:hover {\n background-color: #f0f0f0;\n border-color: #bbb;\n }\n\n .share-action-icon {\n font-size: 1.25rem;\n margin-right: 8px;\n }\n\n .share-action-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1rem;\n line-height: 1.4;\n margin-top: 5px;\n }\n\n @media (max-width: 600px) {\n .share-title {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-size: 1rem;\n }\n\n .share-image {\n max-width: 240px;\n }\n\n .share-actions {\n flex-direction: row;\n width: 50%;\n margin: 10px 0;\n }\n\n .share-action-button {\n width: 100%;\n margin: 5px 0;\n }\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamSocialShare);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-social-share\": BeamSocialShare;\n }\n}\n"],"names":["BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","communityImpact","file","urlToFile","imageUrl","strings","event","target","_loading","html","cssReset","css","__decorateClass","property","state","defineCustomElement"],"mappings":"myBAwBO,MAAMA,UAAwBC,CAAW,CAAzC,aAMuB,CAAA,MAAA,GAAA,SAAA,EAAA,KAAO,QAAUC,EACjB,KAAO,KAAkB,KACxB,KAAO,MAAQ,GAEnC,KAAQ,UAA2B,KACnC,KAAQ,cAA+B,KAGvC,KAAQ,SAAW,GACnB,KAAQ,cAAgB,GAiBjC,KAAgB,cAAA,IAAM,CACpB,KAAK,cAAgB,OAAO,YAAc,GAC5C,CAAA,CAjBA,IAAI,YAAa,CACf,OAAOC,EAAoB,KAAK,IAAI,GAAK,IAC3C,CAEA,mBAAoB,CAClB,MAAM,kBAAkB,EACxB,OAAO,iBAAiB,SAAU,KAAK,aAAa,EACpD,KAAK,eACP,CAEA,sBAAuB,CACrB,OAAO,oBAAoB,SAAU,KAAK,aAAa,EACvD,MAAM,qBAAqB,CAC7B,CAMA,MAAc,iBAAkB,CACzBC,EAA8B,CAAC,SAAU,UAAW,aAAa,EAAG,IAAI,EAG7E,GAAI,CAaF,OAZY,MAAMC,EAAU,CAC1B,QAAS,KAAK,QACd,QAAS,CAAE,cAAe,WAAW,KAAK,MAAM,EAAG,EACnD,YAAa,CACX,QAAS,KAAK,QACd,oBAAqB,EACrB,YAAa,KAAK,YAClB,WAAYC,EAAa,iBACzB,QAAS,QACT,KAAM,KAAK,UACb,CACF,CAAC,CAEH,OAASC,EAAO,CACd,MAAI,KAAK,OACP,QAAQ,MAAM,8BAA+BA,CAAK,EAE9CA,CACR,CACF,CAGA,MAAc,kBAAmB,CAC/B,GAAI,CACF,MAAMC,EAAO,MAAM,KAAK,kBACxB,GAAIA,EAAM,CACR,KAAK,UAAYA,EAAK,MAAM,KAC5B,MAAMC,EAAkBD,EAAK,UAAU,CAAC,EAGxC,GAFA,KAAK,cAAgBC,GAAiB,MAAM,SAExC,KAAK,cAAe,CACtB,MAAMC,EAAO,MAAMC,EAAU,KAAK,aAAa,EAC/C,KAAK,KAAOD,EACZ,KAAK,QAAU,IAAI,gBAAgBA,CAAI,CACzC,CACF,CACF,OAASH,EAAO,CACV,KAAK,OACP,QAAQ,MAAM,8BAA+BA,CAAK,CAEtD,CACF,CAEA,MAAM,cAAe,CACnB,MAAM,KAAK,mBACX,KAAK,SACH,gBAAgB,KAAK,UAAU,SAAS,GAAK,iBAAkB,QAAU,UAAU,eAAiB,CACxG,CAEA,MAAc,qBAAqBK,EAAkB,CACnD,GAAKA,EAEL,GAAI,CACF,MAAMF,EAAO,MAAMC,EAAUC,CAAQ,EACjC,UAAU,OAAS,KAAK,WAC1B,MAAM,UAAU,MAAM,CACpB,MAAO,CAACF,CAAI,EACZ,MAAOG,EAAQ,KAAK,IAAI,EAAE,iBAAiB,EAC3C,KAAMA,EAAQ,KAAK,IAAI,EAAE,gBAAgB,CAAE,UAAW,KAAK,SAAU,CAAC,CACxE,CAAC,CAEL,OAASN,EAAO,CACV,KAAK,OACP,QAAQ,MAAM,6BAA8BA,CAAK,CAErD,CACF,CAEA,MAAc,iBAAkB,CAC9B,GAAI,KAAK,KACP,GAAI,CACF,MAAM,UAAU,UAAU,MAAM,CAAC,IAAI,cAAc,CAAE,YAAa,KAAK,IAAK,CAAC,CAAC,CAAC,CACjF,OAASA,EAAO,CACV,KAAK,OACP,QAAQ,MAAM,qCAAsCA,CAAK,CAE7D,CAEJ,CAEQ,oBAAoBO,EAAc,CACxC,MAAMC,EAASD,EAAM,cAEjB,KAAK,UAAY,KAAK,eACxBA,EAAM,iBACN,KAAK,qBAAqB,KAAK,aAAa,GACnC,KAAK,UACdC,EAAO,KAAO,KAAK,QACnBA,EAAO,SAAWF,EAAQ,KAAK,IAAI,EAAE,iBAAiB,EAE1D,CAEA,QAAS,CACP,MAAI,CAAC,KAAK,WAAa,CAAC,KAAK,eAAiB,CAAC,KAAK,QAC3CG,EAGFC,EAAAA;AAAAA,oCACyB,KAAK,eAAiB,KAAK,SAAW,SAAW,SAAS;AAAA,kCAC5DJ,EAAQ,KAAK,IAAI,EAAE,kBAAkB;AAAA,gCACvCA,EAAQ,KAAK,IAAI,EAAE,gBAAgB,CAAE,UAAW,KAAK,SAAU,CAAC,CAAC;AAAA,oBAC7E,KAAK,aAAa,UAAUA,EAAQ,KAAK,IAAI,EAAE,kBAAkB;AAAA;AAAA,4EAET,KAAK,eAAe;AAAA;AAAA;AAAA;AAAA,uBAIzEA,EAAQ,KAAK,IAAI,EAAE,iBAAiB;AAAA;AAAA;AAAA,6CAGdA,EAAQ,KAAK,IAAI,EAAE,iBAAiB;AAAA;AAAA;AAAA;AAAA,wBAIzDA,EAAQ,KAAK,IAAI,EAAE,kBAAkB;AAAA,oBACzC,KAAK,OAAO;AAAA,sBACV,KAAK,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,uBAKvBA,EAAQ,KAAK,IAAI,EAAE,qBAAqB;AAAA;AAAA;AAAA,6CAGlBA,EAAQ,KAAK,IAAI,EAAE,qBAAqB;AAAA;AAAA;AAAA;AAAA,KAKnF,CA+IF,CAzTab,EACJ,QAAU,oBADNA,EA4KJ,OAAS,CACdkB,EACAC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,KA0IF,EArTmCC,EAAA,CAAlCC,EAAS,CAAE,KAAM,MAAO,CAAC,CAHf,EAAArB,EAGwB,sBACPoB,EAAA,CAA3BC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EAJfrB,EAIiB,UAAA,UAAA,CAAA,EACAoB,EAAA,CAA3BC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EALfrB,EAKiB,UACOoB,cAAAA,CAAAA,EAAAA,EAAA,CAAlCC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EANfrB,EAMwB,UACAoB,UAAAA,CAAAA,EAAAA,EAAA,CAAlCC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EAPfrB,EAOwB,UACCoB,OAAAA,CAAAA,EAAAA,EAAA,CAAnCC,EAAS,CAAE,KAAM,OAAQ,CAAC,GARhBrB,EAQyB,UAAA,QAAA,CAAA,EAEnBoB,EAAA,CAAhBE,EAAAA,GAVUtB,EAUM,UAAA,YAAA,CAAA,EACAoB,EAAA,CAAhBE,EAXU,CAAA,EAAAtB,EAWM,UACAoB,gBAAAA,CAAAA,EAAAA,EAAA,CAAhBE,EAAM,CAAA,EAZItB,EAYM,UACAoB,UAAAA,CAAAA,EAAAA,EAAA,CAAhBE,EAAM,CAAA,EAbItB,EAaM,UAAA,OAAA,CAAA,EACAoB,EAAA,CAAhBE,GAdU,EAAAtB,EAcM,wBACAoB,EAAA,CAAhBE,EAfU,CAAA,EAAAtB,EAeM,UA4SnBuB,gBAAAA,CAAAA,EAAAA,EAAoBvB,CAAe"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import{f as m,g as n,t as l,h as g,y as b}from"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"../chunks/shoelace-components-yXqj8DyM.esm.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"./beam-partner-logos.js";import{c as f,d as y,e as u}from"../chunks/enforce-config-er6B5Gkj.esm.js";import{D as w,S as x,W as S,g as U}from"../chunks/routes-r5D_LdgT.esm.js";import{_ as I}from"../chunks/loading-template-mLjOGXMj.esm.js";import{u as p,s as r}from"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.js";var k=Object.defineProperty,v=Object.getOwnPropertyDescriptor,i=(c,t,a,o)=>{for(var s=o>1?void 0:o?v(t,a):t,h=c.length-1,d;h>=0;h--)(d=c[h])&&(s=(o?d(t,a,s):d(s))||s);return o&&s&&k(t,a,s),s};class e extends g{constructor(){super(...arguments),this.baseUrl=w,this.lang="en",this.debug=!1,this.brandName=null,this.shareImageUrl=null,this.isMobile=!1,this.windowResized=!1,this.checkViewport=()=>{this.windowResized=window.innerWidth<=768}}get configLang(){return x[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.checkViewport),this.checkViewport()}disconnectedCallback(){window.removeEventListener("resize",this.checkViewport),super.disconnectedCallback()}async fetchImpactData(){u(["apiKey","storeId","nonprofitId"],this);try{return await U({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{storeId:this.storeId,personalImpactLimit:0,nonprofitId:this.nonprofitId,widgetName:S.community_impact,version:"1.0.0",lang:this.configLang}})}catch(t){throw this.debug&&console.error("Failed to fetch impact data",t),t}}async updateImpactData(){try{const t=await this.fetchImpactData();if(t){this.brandName=t.chain.name;const a=t.community[0];if(this.shareImageUrl=a?.share.imageUrl,this.shareImageUrl){const o=await p(this.shareImageUrl);this.file=o,this.dataUrl=URL.createObjectURL(o)}}}catch(t){this.debug&&console.error("Error updating impact data:",t)}}async firstUpdated(){await this.updateImpactData(),this.isMobile=/Mobi|Android/i.test(navigator.userAgent)||"ontouchstart"in window||navigator.maxTouchPoints>0}async openSystemShareSheet(t){if(t)try{const a=await p(t);navigator.share&&this.brandName&&await navigator.share({files:[a],title:r[this.lang].impactShareTitle(),text:r[this.lang].impactShareText({brandName:this.brandName})})}catch(a){this.debug&&console.error("Failed to open share sheet",a)}}async handleClickCopy(){if(this.file)try{await navigator.clipboard.write([new ClipboardItem({"image/png":this.file})])}catch(t){this.debug&&console.error("Failed to copy image to clipboard:",t)}}handleClickDownload(t){const a=t.currentTarget;this.isMobile&&this.shareImageUrl?(t.preventDefault(),this.openSystemShareSheet(this.shareImageUrl)):this.dataUrl&&(a.href=this.dataUrl,a.download=r[this.lang].impactShareTitle())}render(){return!this.brandName||!this.shareImageUrl||!this.dataUrl?I():b`
|
|
2
|
+
<div class="share-container ${this.windowResized||this.isMobile?"mobile":"desktop"}">
|
|
3
|
+
<h2 class="share-title">${r[this.lang].impactShareTitle()}</h2>
|
|
4
|
+
<p class="share-text">${r[this.lang].impactShareText({brandName:this.brandName})}</p>
|
|
5
|
+
<img src="${this.shareImageUrl}" alt="${r[this.lang].impactShareTitle()}" class="share-image" />
|
|
6
|
+
<div class="share-actions">
|
|
7
|
+
<button class="plain-button button share-action-button" @click="${this.handleClickCopy}">
|
|
8
|
+
<sl-icon
|
|
9
|
+
library="lucide"
|
|
10
|
+
name="copy"
|
|
11
|
+
label="${r[this.lang].impactShareCopy()}"
|
|
12
|
+
class="share-action-icon"
|
|
13
|
+
></sl-icon>
|
|
14
|
+
<div class="share-action-text">${r[this.lang].impactShareCopy()}</div>
|
|
15
|
+
</button>
|
|
16
|
+
<a
|
|
17
|
+
class="plain-button button share-action-button plain-link"
|
|
18
|
+
download="${r[this.lang].impactShareTitle()}"
|
|
19
|
+
href="${this.dataUrl}"
|
|
20
|
+
@click="${this.handleClickDownload}"
|
|
21
|
+
>
|
|
22
|
+
<sl-icon
|
|
23
|
+
library="lucide"
|
|
24
|
+
name="download"
|
|
25
|
+
label="${r[this.lang].impactShareDownload()}"
|
|
26
|
+
class="share-action-icon"
|
|
27
|
+
></sl-icon>
|
|
28
|
+
<div class="share-action-text">${r[this.lang].impactShareDownload()}</div>
|
|
29
|
+
</a>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
`}}e.tagName="beam-social-share",e.styles=[f,m`
|
|
33
|
+
@font-face {
|
|
34
|
+
font-family: "Mabry-Bold";
|
|
35
|
+
src: url("../../../assets/fonts/mabry-bold.otf") format("opentype");
|
|
36
|
+
font-weight: bold;
|
|
37
|
+
font-style: normal;
|
|
38
|
+
}
|
|
39
|
+
@font-face {
|
|
40
|
+
font-family: "Mabry-Medium";
|
|
41
|
+
src: url("../../../assets/fonts/mabry-medium.otf") format("opentype");
|
|
42
|
+
font-weight: bold;
|
|
43
|
+
font-style: normal;
|
|
44
|
+
}
|
|
45
|
+
:host {
|
|
46
|
+
align-items: center;
|
|
47
|
+
justify-content: center;
|
|
48
|
+
display: flex;
|
|
49
|
+
box-sizing: border-box;
|
|
50
|
+
width: 100%;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.share-container {
|
|
54
|
+
display: flex;
|
|
55
|
+
flex-direction: column;
|
|
56
|
+
align-items: center;
|
|
57
|
+
justify-content: center;
|
|
58
|
+
max-width: 700px;
|
|
59
|
+
text-align: center;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.share-container.mobile {
|
|
63
|
+
padding: 1rem;
|
|
64
|
+
max-width: 100%;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.share-title {
|
|
68
|
+
font-family: "Mabry-Bold", sans-serif;
|
|
69
|
+
font-size: 2.5rem;
|
|
70
|
+
font-weight: bold;
|
|
71
|
+
word-break: break-word;
|
|
72
|
+
margin: 10px 0;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.share-title.mobile {
|
|
76
|
+
font-size: 1.5rem;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.share-text {
|
|
80
|
+
font-family: "Mabry-Medium", sans-serif;
|
|
81
|
+
font-size: 1.25rem;
|
|
82
|
+
line-height: 1.4;
|
|
83
|
+
word-break: break-word;
|
|
84
|
+
margin: 10px 0;
|
|
85
|
+
max-width: 500px;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.share-text.mobile {
|
|
89
|
+
font-size: 1rem;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.share-image {
|
|
93
|
+
border-radius: 8px;
|
|
94
|
+
width: 100%;
|
|
95
|
+
max-width: 300px;
|
|
96
|
+
height: auto;
|
|
97
|
+
display: block;
|
|
98
|
+
margin: 20px auto;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.share-actions {
|
|
102
|
+
display: flex;
|
|
103
|
+
flex-direction: row;
|
|
104
|
+
justify-content: center;
|
|
105
|
+
gap: 10px;
|
|
106
|
+
align-items: center;
|
|
107
|
+
margin: 20px 0;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.share-actions.mobile {
|
|
111
|
+
flex-direction: column;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.share-action-button {
|
|
115
|
+
display: flex;
|
|
116
|
+
justify-content: center;
|
|
117
|
+
align-items: center;
|
|
118
|
+
padding: 10px 20px;
|
|
119
|
+
border: 1px solid #ccc;
|
|
120
|
+
border-radius: 4px;
|
|
121
|
+
background-color: #fff;
|
|
122
|
+
text-decoration: none;
|
|
123
|
+
color: #333;
|
|
124
|
+
cursor: pointer;
|
|
125
|
+
transition: background-color 0.3s, border-color 0.3s;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.share-action-button:hover {
|
|
129
|
+
background-color: #f0f0f0;
|
|
130
|
+
border-color: #bbb;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.share-action-icon {
|
|
134
|
+
font-size: 1.25rem;
|
|
135
|
+
margin-right: 8px;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.share-action-text {
|
|
139
|
+
font-family: "Mabry-Medium", sans-serif;
|
|
140
|
+
font-size: 1rem;
|
|
141
|
+
line-height: 1.4;
|
|
142
|
+
margin-top: 5px;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
@media (max-width: 600px) {
|
|
146
|
+
.share-title {
|
|
147
|
+
font-size: 1.5rem;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.share-text {
|
|
151
|
+
font-size: 1rem;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.share-image {
|
|
155
|
+
max-width: 240px;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.share-actions {
|
|
159
|
+
flex-direction: row;
|
|
160
|
+
width: 50%;
|
|
161
|
+
margin: 10px 0;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.share-action-button {
|
|
165
|
+
width: 100%;
|
|
166
|
+
margin: 5px 0;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
`],i([n({type:String})],e.prototype,"apiKey",2),i([n({type:Number})],e.prototype,"storeId",2),i([n({type:Number})],e.prototype,"nonprofitId",2),i([n({type:String})],e.prototype,"baseUrl",2),i([n({type:String})],e.prototype,"lang",2),i([n({type:Boolean})],e.prototype,"debug",2),i([l()],e.prototype,"brandName",2),i([l()],e.prototype,"shareImageUrl",2),i([l()],e.prototype,"dataUrl",2),i([l()],e.prototype,"file",2),i([l()],e.prototype,"isMobile",2),i([l()],e.prototype,"windowResized",2),y(e);export{e as BeamSocialShare};
|
|
170
|
+
//# sourceMappingURL=social-share.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"social-share.js","sources":["../../src/components/social-share/index.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport \"@shoelace-style/shoelace/dist/components/icon/icon.js\";\nimport \"../../shared/components/_share-dialog-dependencies\";\nimport \"../../shared/components/progress-bar\";\nimport \"../beam-partner-logos\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { TNumericId } from \"../../shared/types\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { strings } from \"../../shared/components/strings/share-button\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { urlToFile } from \"../../shared/files\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: TNumericId;\n nonprofitId: TNumericId;\n};\n\nexport class BeamSocialShare extends LitElement {\n static tagName = \"beam-social-share\";\n\n @property({ type: String }) public apiKey?: RequiredConfig[\"apiKey\"];\n @property({ type: Number }) storeId?: RequiredConfig[\"storeId\"];\n @property({ type: Number }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n @property({ type: String }) public baseUrl = DEFAULT_BASE_URL;\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n @property({ type: Boolean }) public debug = false;\n\n @state() private brandName: string | null = null;\n @state() private shareImageUrl: string | null = null;\n @state() private dataUrl?: string;\n @state() private file?: File;\n @state() private isMobile = false;\n @state() private windowResized = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.checkViewport);\n this.checkViewport();\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.checkViewport);\n super.disconnectedCallback();\n }\n\n checkViewport = () => {\n this.windowResized = window.innerWidth <= 768;\n };\n\n private async fetchImpactData() {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\", \"nonprofitId\"], this)) {\n throw new MissingConfig();\n }\n try {\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: { authorization: `Api-Key ${this.apiKey}` },\n queryParams: {\n storeId: this.storeId,\n personalImpactLimit: 0,\n nonprofitId: this.nonprofitId,\n widgetName: WIDGET_NAMES.community_impact,\n version: \"1.0.0\",\n lang: this.configLang,\n },\n });\n return res;\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to fetch impact data\", error);\n }\n throw error;\n }\n }\n\n // Updates component state with fetched impact data\n private async updateImpactData() {\n try {\n const data = await this.fetchImpactData();\n if (data) {\n this.brandName = data.chain.name;\n const communityImpact = data.community[0];\n this.shareImageUrl = communityImpact?.share.imageUrl;\n\n if (this.shareImageUrl) {\n const file = await urlToFile(this.shareImageUrl);\n this.file = file;\n this.dataUrl = URL.createObjectURL(file);\n }\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Error updating impact data:\", error);\n }\n }\n }\n\n async firstUpdated() {\n await this.updateImpactData();\n this.isMobile =\n /Mobi|Android/i.test(navigator.userAgent) || \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n }\n\n private async openSystemShareSheet(imageUrl: string) {\n if (!imageUrl) return;\n\n try {\n const file = await urlToFile(imageUrl);\n if (navigator.share && this.brandName) {\n await navigator.share({\n files: [file],\n title: strings[this.lang].impactShareTitle(),\n text: strings[this.lang].impactShareText({ brandName: this.brandName }),\n });\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to open share sheet\", error);\n }\n }\n }\n\n private async handleClickCopy() {\n if (this.file) {\n try {\n await navigator.clipboard.write([new ClipboardItem({ \"image/png\": this.file })]);\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to copy image to clipboard:\", error);\n }\n }\n }\n }\n\n private handleClickDownload(event: Event) {\n const target = event.currentTarget as HTMLAnchorElement;\n\n if (this.isMobile && this.shareImageUrl) {\n event.preventDefault();\n this.openSystemShareSheet(this.shareImageUrl);\n } else if (this.dataUrl) {\n target.href = this.dataUrl;\n target.download = strings[this.lang].impactShareTitle();\n }\n }\n\n render() {\n if (!this.brandName || !this.shareImageUrl || !this.dataUrl) {\n return _loading();\n }\n\n return html`\n <div class=\"share-container ${this.windowResized || this.isMobile ? \"mobile\" : \"desktop\"}\">\n <h2 class=\"share-title\">${strings[this.lang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.lang].impactShareText({ brandName: this.brandName })}</p>\n <img src=\"${this.shareImageUrl}\" alt=\"${strings[this.lang].impactShareTitle()}\" class=\"share-image\" />\n <div class=\"share-actions\">\n <button class=\"plain-button button share-action-button\" @click=\"${this.handleClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.lang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareCopy()}</div>\n </button>\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.lang].impactShareTitle()}\"\n href=\"${this.dataUrl}\"\n @click=\"${this.handleClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.lang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n `;\n }\n\n static styles = [\n cssReset,\n css`\n @font-face {\n font-family: \"Mabry-Bold\";\n src: url(\"../../../assets/fonts/mabry-bold.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n @font-face {\n font-family: \"Mabry-Medium\";\n src: url(\"../../../assets/fonts/mabry-medium.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n :host {\n align-items: center;\n justify-content: center;\n display: flex;\n box-sizing: border-box;\n width: 100%;\n }\n\n .share-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 700px;\n text-align: center;\n }\n\n .share-container.mobile {\n padding: 1rem;\n max-width: 100%;\n }\n\n .share-title {\n font-family: \"Mabry-Bold\", sans-serif;\n font-size: 2.5rem;\n font-weight: bold;\n word-break: break-word;\n margin: 10px 0;\n }\n\n .share-title.mobile {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1.25rem;\n line-height: 1.4;\n word-break: break-word;\n margin: 10px 0;\n max-width: 500px;\n }\n\n .share-text.mobile {\n font-size: 1rem;\n }\n\n .share-image {\n border-radius: 8px;\n width: 100%;\n max-width: 300px;\n height: auto;\n display: block;\n margin: 20px auto;\n }\n\n .share-actions {\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 10px;\n align-items: center;\n margin: 20px 0;\n }\n\n .share-actions.mobile {\n flex-direction: column;\n }\n\n .share-action-button {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 10px 20px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #fff;\n text-decoration: none;\n color: #333;\n cursor: pointer;\n transition: background-color 0.3s, border-color 0.3s;\n }\n\n .share-action-button:hover {\n background-color: #f0f0f0;\n border-color: #bbb;\n }\n\n .share-action-icon {\n font-size: 1.25rem;\n margin-right: 8px;\n }\n\n .share-action-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1rem;\n line-height: 1.4;\n margin-top: 5px;\n }\n\n @media (max-width: 600px) {\n .share-title {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-size: 1rem;\n }\n\n .share-image {\n max-width: 240px;\n }\n\n .share-actions {\n flex-direction: row;\n width: 50%;\n margin: 10px 0;\n }\n\n .share-action-button {\n width: 100%;\n margin: 5px 0;\n }\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamSocialShare);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-social-share\": BeamSocialShare;\n }\n}\n"],"names":["BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","communityImpact","file","urlToFile","imageUrl","strings","event","target","_loading","html","cssReset","css","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import * as lit from 'lit';
|
|
2
|
+
import { LitElement, PropertyValues } from 'lit';
|
|
3
|
+
import * as lit_html from 'lit-html';
|
|
4
|
+
import * as lodash from 'lodash';
|
|
5
|
+
import { c as TUrl, T as TNumericId, a as TId } from '../chunks/types-zbTZ8-KP.esm.js';
|
|
6
|
+
import { L as LANGUAGES } from '../chunks/types-aju0qrRe.esm.js';
|
|
7
|
+
import '../chunks/progress-bar-0VS_AmEf.esm.js';
|
|
8
|
+
import '../chunks/share-button-hDn8fnBI.esm.js';
|
|
9
|
+
|
|
10
|
+
declare class BeamInfoPill extends LitElement {
|
|
11
|
+
infoText: string;
|
|
12
|
+
static get styles(): lit.CSSResult;
|
|
13
|
+
render(): lit_html.TemplateResult<1>;
|
|
14
|
+
}
|
|
15
|
+
declare global {
|
|
16
|
+
interface HTMLElementTagNameMap {
|
|
17
|
+
"beam-info-pill": BeamInfoPill;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
type RequiredConfig = {
|
|
22
|
+
apiKey: string;
|
|
23
|
+
nonprofitId: TNumericId;
|
|
24
|
+
beamUserId: TId;
|
|
25
|
+
};
|
|
26
|
+
declare class BeamSubscriptionImpact extends LitElement {
|
|
27
|
+
static tagName: string;
|
|
28
|
+
baseUrl: TUrl;
|
|
29
|
+
apiKey?: RequiredConfig["apiKey"];
|
|
30
|
+
storeId?: number;
|
|
31
|
+
nonprofitId?: RequiredConfig["nonprofitId"];
|
|
32
|
+
beamUserId?: RequiredConfig["beamUserId"];
|
|
33
|
+
lang: LANGUAGES;
|
|
34
|
+
debug: boolean;
|
|
35
|
+
private isMobile;
|
|
36
|
+
get configLang(): LANGUAGES;
|
|
37
|
+
getImpactData: () => Promise<{
|
|
38
|
+
chain: {
|
|
39
|
+
name: string;
|
|
40
|
+
logoUrl: string | null;
|
|
41
|
+
communityImpactUrl: string | null;
|
|
42
|
+
donationTypeName: string | null;
|
|
43
|
+
matchDonationTypeName: string | null;
|
|
44
|
+
};
|
|
45
|
+
store: {
|
|
46
|
+
name: string | null;
|
|
47
|
+
displayName: string | null;
|
|
48
|
+
communityPageURL: string | null;
|
|
49
|
+
};
|
|
50
|
+
config: {
|
|
51
|
+
web: {
|
|
52
|
+
title: string;
|
|
53
|
+
description: string;
|
|
54
|
+
promoDescriptionPrefix?: string | undefined;
|
|
55
|
+
promoDescription?: string | undefined;
|
|
56
|
+
theme?: {
|
|
57
|
+
[key: string]: unknown;
|
|
58
|
+
} | null | undefined;
|
|
59
|
+
nonprofitSelectedHeader?: string | undefined;
|
|
60
|
+
nonprofitUnselectedHeader?: string | undefined;
|
|
61
|
+
dynamicStrings?: {
|
|
62
|
+
[key: string]: string;
|
|
63
|
+
} | null | undefined;
|
|
64
|
+
additionalStrings?: {
|
|
65
|
+
[key: string]: string;
|
|
66
|
+
} | null | undefined;
|
|
67
|
+
disableAnimation?: boolean | undefined;
|
|
68
|
+
promo?: {
|
|
69
|
+
"promo-text-long": string;
|
|
70
|
+
"promo-text-short": string;
|
|
71
|
+
"promo-cause-alt-text": string;
|
|
72
|
+
} | undefined;
|
|
73
|
+
};
|
|
74
|
+
mobileWeb?: {
|
|
75
|
+
title: string;
|
|
76
|
+
description: string;
|
|
77
|
+
nonprofitSelectedHeader?: string | undefined;
|
|
78
|
+
nonprofitUnselectedHeader?: string | undefined;
|
|
79
|
+
} | undefined;
|
|
80
|
+
mobile: {
|
|
81
|
+
title: string;
|
|
82
|
+
description: string;
|
|
83
|
+
nonprofitSelectedHeader?: string | undefined;
|
|
84
|
+
nonprofitUnselectedHeader?: string | undefined;
|
|
85
|
+
};
|
|
86
|
+
enableNonprofitDeselection?: boolean | undefined;
|
|
87
|
+
};
|
|
88
|
+
personal: {
|
|
89
|
+
imageUrl: string | null;
|
|
90
|
+
nonprofit: {
|
|
91
|
+
id: number;
|
|
92
|
+
name: string;
|
|
93
|
+
cause: string | null;
|
|
94
|
+
causeIconUrl: string | null;
|
|
95
|
+
causeIconSelectedUrl: string | null;
|
|
96
|
+
causeColor: string | null;
|
|
97
|
+
website: string | null;
|
|
98
|
+
websiteLinkText: string;
|
|
99
|
+
badge?: string | undefined;
|
|
100
|
+
includeInPersonalImpact?: boolean | undefined;
|
|
101
|
+
};
|
|
102
|
+
impact: {
|
|
103
|
+
description: string | null;
|
|
104
|
+
goalCompletionText: string;
|
|
105
|
+
goalProgressText: string;
|
|
106
|
+
goalProgressPercentage: number;
|
|
107
|
+
};
|
|
108
|
+
share: {
|
|
109
|
+
imageUrl: string | null;
|
|
110
|
+
};
|
|
111
|
+
filters?: string[] | undefined;
|
|
112
|
+
}[];
|
|
113
|
+
community: {
|
|
114
|
+
imageUrl: string | null;
|
|
115
|
+
nonprofit: {
|
|
116
|
+
id: number;
|
|
117
|
+
name: string;
|
|
118
|
+
cause: string | null;
|
|
119
|
+
causeIconUrl: string | null;
|
|
120
|
+
causeIconSelectedUrl: string | null;
|
|
121
|
+
causeColor: string | null;
|
|
122
|
+
website: string | null;
|
|
123
|
+
websiteLinkText: string;
|
|
124
|
+
badge?: string | undefined;
|
|
125
|
+
includeInPersonalImpact?: boolean | undefined;
|
|
126
|
+
};
|
|
127
|
+
impact: {
|
|
128
|
+
description: string | null;
|
|
129
|
+
goalCompletionText: string;
|
|
130
|
+
goalProgressText: string;
|
|
131
|
+
goalProgressPercentage: number;
|
|
132
|
+
};
|
|
133
|
+
share: {
|
|
134
|
+
imageUrl: string | null;
|
|
135
|
+
};
|
|
136
|
+
filters?: string[] | undefined;
|
|
137
|
+
}[];
|
|
138
|
+
promo: {
|
|
139
|
+
isActive: boolean;
|
|
140
|
+
multiplier: number | null;
|
|
141
|
+
} | null;
|
|
142
|
+
}>;
|
|
143
|
+
private impactDataController;
|
|
144
|
+
impactTitleRefs: HTMLElement[];
|
|
145
|
+
impactLinkRefs: HTMLElement[];
|
|
146
|
+
connectedCallback(): void;
|
|
147
|
+
updated(changedProperties: PropertyValues): Promise<void>;
|
|
148
|
+
disconnectedCallback(): void;
|
|
149
|
+
/**
|
|
150
|
+
* Safari does not fire loading events on the document FontFaceSet, but it does implement the .ready Promise
|
|
151
|
+
* Call this method to wait for font loads that may be triggered by content changes
|
|
152
|
+
*/
|
|
153
|
+
handleFontLoad<T = any>(callback: () => T | void): Promise<void | T>;
|
|
154
|
+
get cssVariables(): any;
|
|
155
|
+
evaluateBreakPoints: lodash.DebouncedFuncLeading<() => void>;
|
|
156
|
+
resizeElements: lodash.DebouncedFuncLeading<() => void>;
|
|
157
|
+
render(): "" | lit_html.TemplateResult<1>;
|
|
158
|
+
renderInlineCard(impactCard: {
|
|
159
|
+
title: string;
|
|
160
|
+
description: string;
|
|
161
|
+
image: string | null;
|
|
162
|
+
link: string | null;
|
|
163
|
+
linkText: string;
|
|
164
|
+
progressBarValue?: number;
|
|
165
|
+
progressBarText?: string;
|
|
166
|
+
infoPill: string;
|
|
167
|
+
imageType: "'image'" | "'icon'" | "'selected_icon'";
|
|
168
|
+
cardType: "personal" | "community";
|
|
169
|
+
imagePosition: "'inline'" | "'block'";
|
|
170
|
+
}): lit_html.TemplateResult<1>;
|
|
171
|
+
static styles: lit.CSSResult[];
|
|
172
|
+
}
|
|
173
|
+
declare global {
|
|
174
|
+
interface HTMLElementTagNameMap {
|
|
175
|
+
"beam-subscription-impact": BeamSubscriptionImpact;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export { BeamSubscriptionImpact };
|