@beamimpact/web-sdk 1.40.0 → 1.42.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -11
- package/dist/chunks/_share-dialog-dependencies-KpCcT5X6.esm.js +2 -0
- package/dist/chunks/_share-dialog-dependencies-KpCcT5X6.esm.js.map +1 -0
- package/dist/chunks/_share-dialog-dependencies-vHG7OoOA.esm.js +2 -0
- package/dist/chunks/_share-dialog-dependencies-vHG7OoOA.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--iA4GcfC.esm.js +2 -0
- package/dist/chunks/index--iA4GcfC.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-E8H5A7Qq.esm.js +2 -0
- package/dist/chunks/index-E8H5A7Qq.esm.js.map +1 -0
- package/dist/chunks/index-F1U8ROKG.esm.js +2 -0
- package/dist/chunks/index-F1U8ROKG.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-LF_9YLx7.esm.js +2 -0
- package/dist/chunks/index-LF_9YLx7.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-MSOdvudi.esm.js +2 -0
- package/dist/chunks/index-MSOdvudi.esm.js.map +1 -0
- 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-QeW-IaK9.esm.js +2 -0
- package/dist/chunks/index-QeW-IaK9.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-e--9y-Sl.esm.js +2 -0
- package/dist/chunks/index-e--9y-Sl.esm.js.map +1 -0
- package/dist/chunks/{index-HBDtoJlQ.esm.d.ts → index-euJMrXIc.esm.d.ts} +1 -1
- package/dist/chunks/index-giTGb0gn.esm.js +2 -0
- package/dist/chunks/{index-fINTvZVX.esm.js.map → index-giTGb0gn.esm.js.map} +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-qjhWIDcT.esm.js +2 -0
- package/dist/chunks/{index-kxMe_AX1.esm.js.map → index-qjhWIDcT.esm.js.map} +1 -1
- 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-HoZ7DC0L.esm.js +2 -0
- package/dist/chunks/order-page-HoZ7DC0L.esm.js.map +1 -0
- package/dist/chunks/order-page-Ps8Qyjfg.esm.d.ts +74 -0
- package/dist/chunks/order-page-m5hkOPEQ.esm.js +2 -0
- package/dist/chunks/order-page-m5hkOPEQ.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-sc6xljWU.esm.js +2 -0
- package/dist/chunks/routes-sc6xljWU.esm.js.map +1 -0
- package/dist/chunks/routes-zzEfDMIn.esm.js +2 -0
- package/dist/chunks/routes-zzEfDMIn.esm.js.map +1 -0
- package/dist/chunks/share-button-AUvXGlky.esm.js +163 -0
- package/dist/chunks/share-button-AUvXGlky.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-hDn8fnBI.esm.d.ts +22 -0
- package/dist/chunks/share-button-wmGQW923.esm.js +163 -0
- package/dist/chunks/share-button-wmGQW923.esm.js.map +1 -0
- package/dist/chunks/shoelace-components-29N4dEDv.esm.js +2 -0
- package/dist/chunks/shoelace-components-29N4dEDv.esm.js.map +1 -0
- package/dist/chunks/shoelace-components-YboJNgEe.esm.js +2 -0
- package/dist/chunks/shoelace-components-YboJNgEe.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-xaWdPxse.esm.d.ts → update-cart-SajqAoez.esm.d.ts} +2 -1
- package/dist/chunks/update-cart-_5yw3Tg7.esm.js +2 -0
- package/dist/chunks/update-cart-_5yw3Tg7.esm.js.map +1 -0
- package/dist/chunks/update-cart-yfZE8kwS.esm.js +2 -0
- package/dist/chunks/update-cart-yfZE8kwS.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 +6 -0
- package/dist/components/product-details-page.esm.js +5 -5
- package/dist/components/product-details-page.esm.js.map +1 -1
- package/dist/components/product-details-page.js +5 -5
- 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 +48 -43
- package/dist/components/select-nonprofit.esm.js.map +1 -1
- package/dist/components/select-nonprofit.js +48 -43
- 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-1vD2dmjh.esm.js +0 -2
- package/dist/chunks/_share-dialog-dependencies-1vD2dmjh.esm.js.map +0 -1
- package/dist/chunks/_share-dialog-dependencies-jvbBs-cC.esm.js +0 -2
- package/dist/chunks/_share-dialog-dependencies-jvbBs-cC.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-FIfx75-P.esm.js +0 -2
- package/dist/chunks/index-FIfx75-P.esm.js.map +0 -1
- package/dist/chunks/index-GocMPeWn.esm.js +0 -2
- package/dist/chunks/index-GocMPeWn.esm.js.map +0 -1
- package/dist/chunks/index-HyzTMHYl.esm.js +0 -2
- package/dist/chunks/index-HyzTMHYl.esm.js.map +0 -1
- package/dist/chunks/index-LmCqzg5B.esm.js +0 -2
- package/dist/chunks/index-LmCqzg5B.esm.js.map +0 -1
- package/dist/chunks/index-Lw32NXij.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-bUooCSdc.esm.js +0 -2
- package/dist/chunks/index-bUooCSdc.esm.js.map +0 -1
- package/dist/chunks/index-cekgAcEE.esm.js +0 -2
- package/dist/chunks/index-cekgAcEE.esm.js.map +0 -1
- package/dist/chunks/index-fINTvZVX.esm.js +0 -2
- package/dist/chunks/index-iMRMlkF3.esm.js +0 -2
- package/dist/chunks/index-iMRMlkF3.esm.js.map +0 -1
- package/dist/chunks/index-kxMe_AX1.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-uF-Qtewb.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-0azkW5QD.esm.js +0 -2
- package/dist/chunks/order-page-0azkW5QD.esm.js.map +0 -1
- package/dist/chunks/order-page-DPx5SUKM.esm.d.ts +0 -255
- package/dist/chunks/order-page-n12hvsCN.esm.js +0 -2
- package/dist/chunks/order-page-n12hvsCN.esm.js.map +0 -1
- package/dist/chunks/progress-bar-Sn2QspHy.esm.js.map +0 -1
- package/dist/chunks/routes-31m626dW.esm.js +0 -2
- package/dist/chunks/routes-31m626dW.esm.js.map +0 -1
- package/dist/chunks/routes-sbqL3QFm.esm.js +0 -2
- package/dist/chunks/routes-sbqL3QFm.esm.js.map +0 -1
- package/dist/chunks/update-cart-NEt4A8dB.esm.js +0 -2
- package/dist/chunks/update-cart-NEt4A8dB.esm.js.map +0 -1
- package/dist/chunks/update-cart-XAwwFxhS.esm.js +0 -2
- package/dist/chunks/update-cart-XAwwFxhS.esm.js.map +0 -1
- package/dist/chunks/vendor-jQ8cxMpw.esm.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-details-page.js","sources":["../../src/shared/fragments/custom-border.ts","../../src/shared/fragments/info.ts","../../src/components/product-details-page/index.ts"],"sourcesContent":["import { CSSResult, unsafeCSS } from \"lit\";\n\nexport const defineCustomBorder = (\n namespace = \"\",\n { borderRadius = \"0px\", borderStyle = \"unset\", borderColor = \"#000000\", borderWidth = \"1px\" } = {}\n): Record<string, string> => {\n const prefix = namespace.startsWith(\"--beam-\") ? namespace : `--beam-${namespace}`;\n return {\n [`${prefix}-borderRadius`]: borderRadius,\n [`${prefix}-borderStyle`]: borderStyle,\n [`${prefix}-borderColor`]: borderColor,\n [`${prefix}-borderWidth`]: borderWidth,\n };\n};\n\nexport const useCustomBorder = (\n namespace = \"\",\n { borderRadius = \"0px\", borderStyle = \"unset\", borderColor = \"#000000\", borderWidth = \"1px\" } = {}\n): CSSResult => {\n const prefix = namespace.startsWith(\"--beam-\") ? namespace : `--beam-${namespace}`;\n return unsafeCSS(`\\\n border-radius: var(${prefix}-borderRadius, ${borderRadius});\n border-style: var(${prefix}-borderStyle, ${borderStyle});\n border-color: var(${prefix}-borderColor, ${borderColor});\n border-width: var(${prefix}-borderWidth, ${borderWidth});\n `);\n};\n","import { html } from \"lit\";\n\nexport const _info = () => html` <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n part=\"svg\"\n>\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <path d=\"M12 16v-4\"></path>\n <path d=\"M12 8h.01\"></path>\n</svg>`;\n","import { LitElement, css, html } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { getProductDetailsPage } from \"../../api-sdk/v3/routes\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { LANGUAGES, TUrl } from \"../../api-sdk/types\";\nimport { makeApiKeyHeader } from \"../../utils/makeApiKeyHeader\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport { localizeUserString } from \"../../shared/localize\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { cssResponsiveUtils } from \"../../shared/responsive\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { defineCustomBorder, useCustomBorder } from \"../../shared/fragments/custom-border\";\n// shoelace html tag imports\nimport \"@shoelace-style/shoelace/dist/components/tooltip/tooltip.js\";\nimport { _info } from \"../../shared/fragments/info\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: number;\n};\n\nconst IMAGE_URL_REMOTE_CONFIG_KEY = \"--beam-ProductDetailsPage-imageUrl\";\n\nexport class BeamProductDetailsPage extends LitElement {\n static tagName = \"beam-product-details-page\";\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 }) public lang: LANGUAGES = \"en\";\n\n @property({ type: Boolean }) public debug = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n getProductDetailsPageData = async () => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\"], this)) throw new MissingConfig();\n\n const res = await getProductDetailsPage({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n queryParams: {\n version: \"1.0.0\",\n lang: this.configLang,\n storeId: this.storeId,\n widgetName: WIDGET_NAMES.product_details_page,\n },\n });\n return res;\n };\n\n private productDetailsPageDataController = new AsyncController<typeof this.getProductDetailsPageData>(\n this,\n this.getProductDetailsPageData\n );\n\n async updated(changedProperties: Map<string, unknown>) {\n const requireNewDataProps = [\"storeId\", \"baseUrl\", \"lang\", \"apiKey\"];\n for (const prop of requireNewDataProps) {\n if (changedProperties.has(prop)) {\n await this.productDetailsPageDataController.exec();\n break;\n }\n }\n }\n\n renderWidgetIcon() {\n const imageUrl = this.cssVariables[IMAGE_URL_REMOTE_CONFIG_KEY];\n\n return imageUrl\n ? html`\n <span class=\"icon-container\">\n <img src=${imageUrl} alt=\"Widget Icon\"></img>\n </span>\n `\n : html``;\n }\n\n render() {\n const { data, loading } = this.productDetailsPageDataController;\n if (loading) {\n return html``;\n }\n if (data == null) {\n if (this.debug) {\n return _errorMessage({ error: new Error(\"No data\") });\n }\n return \"\";\n }\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n <div class=\"root\">\n ${this.renderWidgetIcon()}\n <span class=\"info-container\">\n <div class=\"title-block\">\n <h3 class=\"title\">${localizeUserString(this.configLang, data.config?.web?.title)}</h3>\n </div>\n <div class=\"description-block\">\n <span class=\"description\"> ${localizeUserString(this.configLang, data.config?.web?.description)}</span\n >${this.renderDisclosureTooltip()}\n </div>\n </span>\n </div>\n `;\n }\n\n renderCloseTooltipIcon() {\n return html`<svg width=\"11\" height=\"11\" viewBox=\"0 0 11 11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.40836 5.40811L1.48828 1.48804M5.40836 5.40811L9.32843 9.32819M5.40836 5.40811L9.32843 1.48804M5.40836 5.40811L1.48828 9.32819\"\n stroke=\"white\"\n stroke-width=\"1.56803\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg> `;\n }\n\n /* PayPal Giving Fund Disclosure */\n renderDisclosureTooltip() {\n const onClickClose = () => {\n // due to being strictly html, we need to assume any when overriding shoelace properties\n const tooltip = this.renderRoot.querySelector(\".ppgf-disclosure-tooltip\") as any;\n tooltip.open = false;\n };\n const ppgfDisclosure = this.productDetailsPageDataController.data?.ppgfDisclosure;\n return ppgfDisclosure\n ? html`<sl-tooltip class=\"ppgf-disclosure-tooltip\">\n <div class=\"ppgf-disclosure-tooltip-content\" slot=\"content\">\n <button class=\"ppgf-disclosure-close\" aria-label=\"Close tooltip\" @click=\"${onClickClose}\">\n ${this.renderCloseTooltipIcon()}\n </button>\n <div class=\"ppgf-disclosure-tooltip-copy\">${unsafeHTML(ppgfDisclosure.copy)}</div>\n </div>\n <span class=\"ppgf-disclosure-tooltip-trigger\">\n <div class=\"ppgf-disclosure-tooltip-trigger-mask d-lg-none\"></div>\n ${_info()}\n </span>\n </sl-tooltip>`\n : html``;\n }\n\n renderDisclosureTooltipHyperlink() {\n const ppgfHyperlink = this.productDetailsPageDataController.data?.ppgfDisclosureHyperlink;\n return ppgfHyperlink\n ? html`<a class=\"ppgf-disclosure-hyperlink\" href=\"${ppgfHyperlink.url}\" target=\"_blank\">${ppgfHyperlink.copy}</a>`\n : html``;\n }\n /* End PayPal Giving Fund Disclosure */\n\n public get cssVariables() {\n const defaults = {\n \"--beam-ProductDetailsPage-imageWidth\": \"24px\",\n \"--beam-ProductDetailsPage-imageHeight\": \"24px\",\n \"--beam-ProductDetailsPage-maxWidth\": \"346px\",\n \"--beam-ProductDetailsPage-paddingTop\": \"8px\",\n \"--beam-ProductDetailsPage-paddingRight\": \"12px\",\n \"--beam-ProductDetailsPage-paddingBottom\": \"8px\",\n \"--beam-ProductDetailsPage-paddingLeft\": \"15px\",\n \"--beam-ProductDetailsPage-InfoContainer-marginLeft\": \"8px\",\n \"--beam-ProductDetailsPage-backgroundColor\": \"unset\",\n \"--beam-ProductDetailsPage-TooltipIcon-width\": \"10px\",\n \"--beam-ProductDetailsPage-TooltipIcon-color\": \"inherit\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor\": \"#000000\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingTop\": \"10px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingRight\": \"8px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingBottom\": \"10px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingLeft\": \"8px\",\n \"--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color\": \"#5CA3FF\",\n ...defineCustomText(\"--beam-ProductDetailsPage-title\", {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n }),\n \"--beam-ProductDetailsPage-title-textAlign\": \"left\",\n ...defineCustomText(\"--beam-ProductDetailsPage-description\", {\n marginTop: \"4px\",\n fontSize: \"12px\",\n lineHeight: \"15px\",\n }),\n \"--beam-ProductDetailsPage-description-textAlign\": \"left\",\n ...defineCustomText(\"--beam-ProductDetailsPage-PPGFDisclosureTooltipContent\", {\n fontSize: \"12px\",\n lineHeight: \"16px\",\n color: \"#FFFFFF\",\n }),\n ...defineCustomBorder(\"--beam-ProductDetailsPage\"),\n \"--beam-ProductDetailsPage-close-display\": \"initial\",\n \"--beam-ProductDetailsPage-close-padding\": \"0\",\n };\n const remoteConfig = this.productDetailsPageDataController?.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 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-ProductDetailsPage-maxWidth);\n word-break: normal;\n display: block;\n }\n .root {\n display: flex;\n align-items: center;\n padding-top: var(--beam-ProductDetailsPage-paddingTop);\n padding-right: var(--beam-ProductDetailsPage-paddingRight);\n padding-bottom: var(--beam-ProductDetailsPage-paddingBottom);\n padding-left: var(--beam-ProductDetailsPage-paddingLeft);\n width: 100%;\n background-color: var(--beam-ProductDetailsPage-backgroundColor);\n ${useCustomBorder(\"--beam-ProductDetailsPage\")}\n }\n .icon-container {\n width: var(--beam-ProductDetailsPage-imageWidth);\n height: var(--beam-ProductDetailsPage-imageHeight);\n flex-shrink: 0;\n }\n .icon-container > img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n .info-container {\n margin-left: var(--beam-ProductDetailsPage-InfoContainer-marginLeft);\n }\n .title {\n ${useCustomText(\"--beam-ProductDetailsPage-title\")}\n }\n .title-block {\n text-align: var(--beam-ProductDetailsPage-title-textAlign);\n line-height: var(--beam-ProductDetailsPage-title-lineHeight);\n }\n .description {\n ${useCustomText(\"--beam-ProductDetailsPage-description\")}\n }\n .description-block {\n text-align: var(--beam-ProductDetailsPage-description-textAlign);\n line-height: var(--beam-ProductDetailsPage-description-lineHeight);\n }\n .ppgf-disclosure-tooltip {\n --max-width: 268px;\n }\n .ppgf-disclosure-tooltip::part(body) {\n background-color: var(--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor);\n padding-top: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingTop);\n padding-right: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingRight);\n padding-bottom: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingBottom);\n padding-left: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingLeft);\n }\n .ppgf-disclosure-tooltip::part(base__arrow) {\n background-color: var(--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor);\n }\n .ppgf-disclosure-tooltip-content {\n display: flex;\n flex-direction: column;\n ${useCustomText(\"--beam-ProductDetailsPage-PPGFDisclosureTooltipContent\")}\n }\n .ppgf-disclosure-tooltip-copy > a,\n .ppgf-disclosure-close {\n pointer-events: auto;\n color: var(--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color);\n }\n .ppgf-disclosure-close {\n display: var(--beam-ProductDetailsPage-close-display);\n padding: var(--beam-ProductDetailsPage-close-padding);\n height: 12px;\n background: none;\n border: none;\n margin-left: auto;\n }\n .ppgf-disclosure-tooltip-copy > a:visited {\n color: var(--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color);\n }\n .ppgf-disclosure-tooltip-trigger {\n position: relative;\n }\n .ppgf-disclosure-tooltip-trigger-mask {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: calc(var(--beam-ProductDetailsPage-TooltipIcon-width) + 20px);\n height: calc(var(--beam-ProductDetailsPage-TooltipIcon-width) + 20px);\n }\n .ppgf-disclosure-tooltip-trigger > svg {\n width: var(--beam-ProductDetailsPage-TooltipIcon-width);\n color: var(--beam-ProductDetailsPage-TooltipIcon-color);\n height: auto;\n vertical-align: middle;\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamProductDetailsPage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-product-details-page\": BeamProductDetailsPage;\n }\n}\n"],"names":["defineCustomBorder","namespace","borderRadius","borderStyle","borderColor","borderWidth","prefix","useCustomBorder","unsafeCSS","_info","html","IMAGE_URL_REMOTE_CONFIG_KEY","BeamProductDetailsPage","LitElement","DEFAULT_BASE_URL","enforceConfig","getProductDetailsPage","makeApiKeyHeader","WIDGET_NAMES","AsyncController","SUPPORTED_LANGUAGES","changedProperties","requireNewDataProps","prop","imageUrl","data","loading","_errorMessage","localizeUserString","onClickClose","tooltip","ppgfDisclosure","unsafeHTML","ppgfHyperlink","defaults","defineCustomText","remoteConfig","config","_cssVariableMap","cssReset","cssResponsiveUtils","css","useCustomText","__decorateClass","property","defineCustomElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"product-details-page.js","sources":["../../src/shared/fragments/custom-border.ts","../../src/shared/fragments/info.ts","../../src/components/product-details-page/index.ts"],"sourcesContent":["import { CSSResult, unsafeCSS } from \"lit\";\n\nexport const defineCustomBorder = (\n namespace = \"\",\n { borderRadius = \"0px\", borderStyle = \"unset\", borderColor = \"#000000\", borderWidth = \"1px\" } = {}\n): Record<string, string> => {\n const prefix = namespace.startsWith(\"--beam-\") ? namespace : `--beam-${namespace}`;\n return {\n [`${prefix}-borderRadius`]: borderRadius,\n [`${prefix}-borderStyle`]: borderStyle,\n [`${prefix}-borderColor`]: borderColor,\n [`${prefix}-borderWidth`]: borderWidth,\n };\n};\n\nexport const useCustomBorder = (\n namespace = \"\",\n { borderRadius = \"0px\", borderStyle = \"unset\", borderColor = \"#000000\", borderWidth = \"1px\" } = {}\n): CSSResult => {\n const prefix = namespace.startsWith(\"--beam-\") ? namespace : `--beam-${namespace}`;\n return unsafeCSS(`\\\n border-radius: var(${prefix}-borderRadius, ${borderRadius});\n border-style: var(${prefix}-borderStyle, ${borderStyle});\n border-color: var(${prefix}-borderColor, ${borderColor});\n border-width: var(${prefix}-borderWidth, ${borderWidth});\n `);\n};\n","import { html } from \"lit\";\n\nexport const _info = () => html` <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n part=\"svg\"\n>\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <path d=\"M12 16v-4\"></path>\n <path d=\"M12 8h.01\"></path>\n</svg>`;\n","import { LitElement, css, html } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { getProductDetailsPage } from \"../../api-sdk/v3/routes\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { LANGUAGES, TUrl } from \"../../api-sdk/types\";\nimport { makeApiKeyHeader } from \"../../utils/makeApiKeyHeader\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport { localizeUserString } from \"../../shared/localize\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { cssResponsiveUtils } from \"../../shared/responsive\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { defineCustomBorder, useCustomBorder } from \"../../shared/fragments/custom-border\";\n// shoelace html tag imports\nimport \"@shoelace-style/shoelace/dist/components/tooltip/tooltip.js\";\nimport { _info } from \"../../shared/fragments/info\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: number;\n};\n\nconst IMAGE_URL_REMOTE_CONFIG_KEY = \"--beam-ProductDetailsPage-imageUrl\";\n\nexport class BeamProductDetailsPage extends LitElement {\n static tagName = \"beam-product-details-page\";\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 }) public lang: LANGUAGES = \"en\";\n\n @property({ type: Boolean }) public debug = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n getProductDetailsPageData = async () => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\"], this)) throw new MissingConfig();\n\n const res = await getProductDetailsPage({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n queryParams: {\n version: \"1.0.0\",\n lang: this.configLang,\n storeId: this.storeId,\n widgetName: WIDGET_NAMES.product_details_page,\n },\n });\n return res;\n };\n\n private productDetailsPageDataController = new AsyncController<typeof this.getProductDetailsPageData>(\n this,\n this.getProductDetailsPageData\n );\n\n async updated(changedProperties: Map<string, unknown>) {\n const requireNewDataProps = [\"storeId\", \"baseUrl\", \"lang\", \"apiKey\"];\n for (const prop of requireNewDataProps) {\n if (changedProperties.has(prop)) {\n await this.productDetailsPageDataController.exec();\n break;\n }\n }\n }\n\n renderWidgetIcon() {\n const imageUrl = this.cssVariables[IMAGE_URL_REMOTE_CONFIG_KEY];\n\n return imageUrl\n ? html`\n <span class=\"icon-container\">\n <img src=${imageUrl} alt=\"Widget Icon\"></img>\n </span>\n `\n : html``;\n }\n\n render() {\n const { data, loading } = this.productDetailsPageDataController;\n if (loading) {\n return html``;\n }\n if (data == null) {\n if (this.debug) {\n return _errorMessage({ error: new Error(\"No data\") });\n }\n return \"\";\n }\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n <div class=\"root\">\n ${this.renderWidgetIcon()}\n <span class=\"info-container\">\n <div class=\"title-block\">\n <h3 class=\"title\">${localizeUserString(this.configLang, data.config?.web?.title)}</h3>\n </div>\n <div class=\"description-block\">\n <span class=\"description\"> ${localizeUserString(this.configLang, data.config?.web?.description)}</span\n >${this.renderDisclosureTooltip()}\n </div>\n </span>\n </div>\n `;\n }\n\n renderCloseTooltipIcon() {\n return html`<svg width=\"11\" height=\"11\" viewBox=\"0 0 11 11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.40836 5.40811L1.48828 1.48804M5.40836 5.40811L9.32843 9.32819M5.40836 5.40811L9.32843 1.48804M5.40836 5.40811L1.48828 9.32819\"\n stroke=\"white\"\n stroke-width=\"1.56803\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg> `;\n }\n\n /* PayPal Giving Fund Disclosure */\n renderDisclosureTooltip() {\n const onClickClose = () => {\n // due to being strictly html, we need to assume any when overriding shoelace properties\n const tooltip = this.renderRoot.querySelector(\".ppgf-disclosure-tooltip\") as any;\n tooltip.open = false;\n };\n const ppgfDisclosure = this.productDetailsPageDataController.data?.ppgfDisclosure;\n return ppgfDisclosure\n ? html`<sl-tooltip class=\"ppgf-disclosure-tooltip\">\n <div class=\"ppgf-disclosure-tooltip-content\" slot=\"content\">\n <button class=\"ppgf-disclosure-close\" aria-label=\"Close tooltip\" @click=\"${onClickClose}\">\n ${this.renderCloseTooltipIcon()}\n </button>\n <div class=\"ppgf-disclosure-tooltip-copy\">${unsafeHTML(ppgfDisclosure.copy)}</div>\n </div>\n <span class=\"ppgf-disclosure-tooltip-trigger\">\n <div class=\"ppgf-disclosure-tooltip-trigger-mask d-lg-none\"></div>\n ${_info()}\n </span>\n </sl-tooltip>`\n : html``;\n }\n\n renderDisclosureTooltipHyperlink() {\n const ppgfHyperlink = this.productDetailsPageDataController.data?.ppgfDisclosureHyperlink;\n return ppgfHyperlink\n ? html`<a class=\"ppgf-disclosure-hyperlink\" href=\"${ppgfHyperlink.url}\" target=\"_blank\">${ppgfHyperlink.copy}</a>`\n : html``;\n }\n /* End PayPal Giving Fund Disclosure */\n\n public get cssVariables() {\n const defaults = {\n \"--beam-ProductDetailsPage-imageWidth\": \"24px\",\n \"--beam-ProductDetailsPage-imageHeight\": \"24px\",\n \"--beam-ProductDetailsPage-maxWidth\": \"346px\",\n \"--beam-ProductDetailsPage-paddingTop\": \"8px\",\n \"--beam-ProductDetailsPage-paddingRight\": \"12px\",\n \"--beam-ProductDetailsPage-paddingBottom\": \"8px\",\n \"--beam-ProductDetailsPage-paddingLeft\": \"15px\",\n \"--beam-ProductDetailsPage-InfoContainer-marginLeft\": \"8px\",\n \"--beam-ProductDetailsPage-backgroundColor\": \"unset\",\n \"--beam-ProductDetailsPage-TooltipIcon-width\": \"10px\",\n \"--beam-ProductDetailsPage-TooltipIcon-color\": \"inherit\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor\": \"#000000\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingTop\": \"10px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingRight\": \"8px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingBottom\": \"10px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingLeft\": \"8px\",\n \"--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color\": \"#5CA3FF\",\n ...defineCustomText(\"--beam-ProductDetailsPage-title\", {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n }),\n \"--beam-ProductDetailsPage-title-textAlign\": \"left\",\n ...defineCustomText(\"--beam-ProductDetailsPage-description\", {\n marginTop: \"4px\",\n fontSize: \"12px\",\n lineHeight: \"15px\",\n }),\n \"--beam-ProductDetailsPage-description-textAlign\": \"left\",\n ...defineCustomText(\"--beam-ProductDetailsPage-PPGFDisclosureTooltipContent\", {\n fontSize: \"12px\",\n lineHeight: \"16px\",\n color: \"#FFFFFF\",\n }),\n ...defineCustomBorder(\"--beam-ProductDetailsPage\"),\n \"--beam-ProductDetailsPage-close-display\": \"initial\",\n \"--beam-ProductDetailsPage-close-padding\": \"0\",\n };\n const remoteConfig = this.productDetailsPageDataController?.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 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-ProductDetailsPage-maxWidth);\n word-break: normal;\n display: block;\n }\n .root {\n display: flex;\n align-items: center;\n padding-top: var(--beam-ProductDetailsPage-paddingTop);\n padding-right: var(--beam-ProductDetailsPage-paddingRight);\n padding-bottom: var(--beam-ProductDetailsPage-paddingBottom);\n padding-left: var(--beam-ProductDetailsPage-paddingLeft);\n width: 100%;\n background-color: var(--beam-ProductDetailsPage-backgroundColor);\n ${useCustomBorder(\"--beam-ProductDetailsPage\")}\n }\n .icon-container {\n width: var(--beam-ProductDetailsPage-imageWidth);\n height: var(--beam-ProductDetailsPage-imageHeight);\n flex-shrink: 0;\n }\n .icon-container > img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n .info-container {\n margin-left: var(--beam-ProductDetailsPage-InfoContainer-marginLeft);\n }\n .title {\n ${useCustomText(\"--beam-ProductDetailsPage-title\")}\n }\n .title-block {\n text-align: var(--beam-ProductDetailsPage-title-textAlign);\n line-height: var(--beam-ProductDetailsPage-title-lineHeight);\n }\n .description {\n ${useCustomText(\"--beam-ProductDetailsPage-description\")}\n }\n .description-block {\n text-align: var(--beam-ProductDetailsPage-description-textAlign);\n line-height: var(--beam-ProductDetailsPage-description-lineHeight);\n }\n .ppgf-disclosure-tooltip {\n --max-width: 268px;\n }\n .ppgf-disclosure-tooltip::part(body) {\n background-color: var(--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor);\n padding-top: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingTop);\n padding-right: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingRight);\n padding-bottom: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingBottom);\n padding-left: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingLeft);\n }\n .ppgf-disclosure-tooltip::part(base__arrow) {\n background-color: var(--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor);\n }\n .ppgf-disclosure-tooltip-content {\n display: flex;\n flex-direction: column;\n ${useCustomText(\"--beam-ProductDetailsPage-PPGFDisclosureTooltipContent\")}\n }\n .ppgf-disclosure-tooltip-copy > a,\n .ppgf-disclosure-close {\n pointer-events: auto;\n color: var(--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color);\n }\n .ppgf-disclosure-close {\n display: var(--beam-ProductDetailsPage-close-display);\n padding: var(--beam-ProductDetailsPage-close-padding);\n height: 12px;\n background: none;\n border: none;\n margin-left: auto;\n }\n .ppgf-disclosure-tooltip-copy > a:visited {\n color: var(--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color);\n }\n .ppgf-disclosure-tooltip-trigger {\n position: relative;\n }\n .ppgf-disclosure-tooltip-trigger-mask {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: calc(var(--beam-ProductDetailsPage-TooltipIcon-width) + 20px);\n height: calc(var(--beam-ProductDetailsPage-TooltipIcon-width) + 20px);\n }\n .ppgf-disclosure-tooltip-trigger > svg {\n width: var(--beam-ProductDetailsPage-TooltipIcon-width);\n color: var(--beam-ProductDetailsPage-TooltipIcon-color);\n height: auto;\n vertical-align: middle;\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamProductDetailsPage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-product-details-page\": BeamProductDetailsPage;\n }\n}\n"],"names":["defineCustomBorder","namespace","borderRadius","borderStyle","borderColor","borderWidth","prefix","useCustomBorder","unsafeCSS","_info","html","IMAGE_URL_REMOTE_CONFIG_KEY","BeamProductDetailsPage","LitElement","DEFAULT_BASE_URL","enforceConfig","getProductDetailsPage","makeApiKeyHeader","WIDGET_NAMES","AsyncController","SUPPORTED_LANGUAGES","changedProperties","requireNewDataProps","prop","imageUrl","data","loading","_errorMessage","localizeUserString","onClickClose","tooltip","ppgfDisclosure","unsafeHTML","ppgfHyperlink","defaults","defineCustomText","remoteConfig","config","_cssVariableMap","cssReset","cssResponsiveUtils","css","useCustomText","__decorateClass","property","defineCustomElement"],"mappings":"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"}
|
|
@@ -5,10 +5,10 @@ import * as lodash from 'lodash';
|
|
|
5
5
|
import '../chunks/progress-bar-0VS_AmEf.esm.js';
|
|
6
6
|
import '../chunks/promo-pill-label-3bA1z-la.esm.js';
|
|
7
7
|
import './beam-partner-logos.js';
|
|
8
|
-
import {
|
|
9
|
-
import { T as TCart } from '../chunks/cart-contents-
|
|
8
|
+
import { T as TNumericId, a as TId } from '../chunks/types-zbTZ8-KP.esm.js';
|
|
9
|
+
import { T as TCart } from '../chunks/cart-contents-sUhfwLAz.esm.js';
|
|
10
10
|
import { L as LANGUAGES } from '../chunks/types-aju0qrRe.esm.js';
|
|
11
|
-
import '../chunks/openapi-spec--
|
|
11
|
+
import '../chunks/openapi-spec--WoGcZgR.esm.js';
|
|
12
12
|
|
|
13
13
|
interface TransactionRequiredConfig {
|
|
14
14
|
apiKey: string;
|
|
@@ -74,6 +74,7 @@ declare class BeamRedeemTransaction extends LitElement {
|
|
|
74
74
|
static styles: lit.CSSResult[];
|
|
75
75
|
private handleChooseClick;
|
|
76
76
|
get shouldCollapse(): boolean;
|
|
77
|
+
private renderSubmitButton;
|
|
77
78
|
protected render(): lit_html.TemplateResult<1> | "";
|
|
78
79
|
}
|
|
79
80
|
declare global {
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import{y as c,m as k,f as N,g as l,t as x,h as P,q as v,p as D,k as z}from"../chunks/lit-qtGbjGnK.esm.js";import{d as L}from"../chunks/lodash-P8OIs-at.esm.js";import{c as U,u as h,d as M,f as E,e as C,A as B,g as w,a as f,b as W,_ as y,i as m}from"../chunks/localize-F31ae3j6.esm.js";import{D as A,e as F,W as S,i as K,u as _,S as O}from"../chunks/routes-31m626dW.esm.js";import{p as j}from"../chunks/progress-bar-Sn2QspHy.esm.js";import{p as V}from"../chunks/promo-pill-label-j0A8qZ0c.esm.js";import{partnerLogosConfigDefaults as q}from"./beam-partner-logos.esm.js";import{_ as G}from"../chunks/loading-template-Av0IUyKF.esm.js";import{M as H,B as J}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import{createScopedLocalStorage as Z}from"../utils/local-storage.esm.js";import{c as Q}from"../chunks/css-card-grid-7tObtoJx.esm.js";import{c as X}from"../chunks/events-Y8fYvSqM.esm.js";import"../utils/logger.esm.js";import"../chunks/vendor-jQ8cxMpw.esm.js";const Y=({height:i="1em",width:e="1em"}={})=>c`
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
`,u={en:{beamAttribution:()=>"Powered by Beam",ctaTitle:()=>"Choose your impact",ctaPromoPrefixMessage:()=>"At no extra cost,",ctaPromoMessage:({donationPercentage:i="1"}={})=>`select a nonprofit and ${i}% of your purchase will be donated.`,ctaMessage:({donationPercentage:i="1%"}={})=>`Select a nonprofit and ${i} of your purchase will be donated, at no extra cost.`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"},fr:{beamAttribution:()=>"Optimis\xE9 par Beam",ctaTitle:()=>"Choisissez votre cause",ctaPromoPrefixMessage:()=>"",ctaPromoMessage:()=>"",ctaMessage:({donationPercentage:i="1%"}={})=>`Choisissez un organisme \xE0 but non lucratif et ${i}% lui sera vers\xE9 en votre nom, sans frais suppl\xE9mentaires.`,submitButtonText:()=>"Confirmer",submitButtonTextCompleted:()=>"Confirm\xE9!",chooseButtonText:()=>"Choisissez"},de:{beamAttribution:()=>"Unterst\xFCtzt von Beam",ctaTitle:()=>"W\xE4hle deinen Impact",ctaPromoPrefixMessage:()=>"",ctaPromoMessage:()=>"",ctaMessage:({donationPercentage:i="1%"}={})=>`W\xE4hle eine der gemeinn\xFCtzigen Organisationen und spende ${i} deines Einkaufs ohne zus\xE4tzliche Kosten`,submitButtonText:()=>"Best\xE4tigen",submitButtonTextCompleted:()=>"Best\xE4tigt!",chooseButtonText:()=>"W\xE4hlen"},es:{ctaTitle:()=>"Elige tu contribuci\xF3n",ctaPromoPrefixMessage:()=>"",ctaPromoMessage:()=>"",ctaMessage:({donationPercentage:i="1%"}={})=>`Elige una organizaci\xF3n sin fines de lucro y donaremos ${i} de tu compra sin coste adicional.`,beamAttribution:()=>"Ofrecido por Beam",submitButtonText:()=>"Confirmar",submitButtonTextCompleted:()=>"\xA1Confirmado!",chooseButtonText:()=>"Elige"},it:{ctaTitle:()=>"Scegli dove fare la differenza",ctaPromoPrefixMessage:()=>"",ctaPromoMessage:()=>"",ctaMessage:({donationPercentage:i="1%"}={})=>`Seleziona un'organizzazione no-profit a cui devolvere l\u2019${i} del tuo acquisto, senza costi aggiuntivi`,beamAttribution:()=>"Gestito da Beam",submitButtonText:()=>"Confermare",submitButtonTextCompleted:()=>"Confermato!",chooseButtonText:()=>"Scegli"},pl:{beamAttribution:()=>"Wspierany przez Beam",ctaTitle:()=>"Wybierz inicjatyw\u0119, kt\xF3r\u0105 chcesz wesprze\u0107",ctaPromoPrefixMessage:()=>"",ctaPromoMessage:()=>"",ctaMessage:({donationPercentage:i="1%"}={})=>`Wybierz organizacj\u0119, kt\xF3rej przeka\u017Cesz ${i} warto\u015Bci Twoich zakup\xF3w \u2013 bez \u017Cadnych dodatkowych koszt\xF3w!`,submitButtonText:()=>"Zatwierd\u017A",submitButtonTextCompleted:()=>"Zatwierdzono!",chooseButtonText:()=>"Wybierz"}};var ee=Object.defineProperty,te=Object.getOwnPropertyDescriptor,s=(i,e,t,o)=>{for(var a=o>1?void 0:o?te(e,t):e,p=i.length-1,d;p>=0;p--)(d=i[p])&&(a=(o?d(e,t,a):d(a))||a);return o&&a&&ee(e,t,a),a};class r extends P{constructor(){super(...arguments),this.baseUrl=A,this.lang="en",this.debug=!1,this.isMobile=window.innerWidth<768,this.didUserExpandNonprofits=!1,this.shouldUseNewPromoUI=!1,this.getChainNonprofits=async()=>{if(E(["transactionId","subscriptionId"],this),!this.hasCorrectTransactionConfig&&!this.hasCorrectSubscriptionConfig)throw new H;const e=await F({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{storeId:this.storeId,postalCode:this.postalCode,countryCode:this.countryCode,cart:this.cart??void 0,widgetName:S.redeem_transaction,version:"1.0.0",lang:this.configLang}});return e.store?.id&&e.store.id!==this.storeId&&(this.storeId=e.store.id),this.localStorage.setItemJson("chainNonprofits",{createdAt:new Date,data:e}),e},this.updateNonprofitIdForRecord=async({selectedNonprofitId:e})=>this.transactionId?this.putTransaction({selectedNonprofitId:e}):this.subscriptionId?this.putSubscription({selectedNonprofitId:e}):null,this.putTransaction=async({selectedNonprofitId:e})=>(C(["apiKey","transactionId"],this),K({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},pathParams:{transactionId:Number(this.transactionId)},requestBody:{nonprofitId:e}})),this.putSubscription=async({selectedNonprofitId:e})=>(C(["apiKey","subscriptionId"],this),_({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{remoteSubscriptionId:this.subscriptionId,nonprofitId:e}})),this.nonprofitListDataController=new B(this,this.getChainNonprofits),this.selectionDataController=new B(this,this.updateNonprofitIdForRecord),this.localStorage=Z(this),this.makeHandleSelect=(e,t,o)=>async a=>{if(!this.allowChange)return;const p=this.selectedNonprofitId;if(a instanceof KeyboardEvent){let d=null;switch(a.key){case"ArrowUp":case"ArrowLeft":t===0?d=o[o.length-1]:d=o[t-1],a.preventDefault();break;case"ArrowRight":case"ArrowDown":t===o.length-1?d=o[0]:d=o[t+1],a.preventDefault();break;case"Enter":case" ":a.preventDefault();break;default:return}if(d){const b=this.renderRoot.querySelector(`[data-value="${d.nonprofit.id}"]`);b!==null&&(b.tabIndex=0,b.focus());return}}if(a.currentTarget instanceof HTMLElement){if(p===e)return;this.selectedNonprofitId=e}},this.handleSubmit=async()=>{const{selectedNonprofitId:e}=this;if(!this.allowSubmit||e==null)return;await this.selectionDataController.exec({selectedNonprofitId:e}),this.shouldUseStoredSelection&&(this.localStorage.setItem("nonprofit",e),this.localStorage.setItem("nonprofit_selected_at",new Date().toISOString()));const t=this.nonprofitListDataController?.data?.nonprofits.find(o=>o.nonprofit.id===e);this.dispatchEvent(new X({selectedNonprofitId:e,nonprofitName:t?.nonprofit.name,source:S.redeem_transaction}))},this.evaluateBreakPoints=L(()=>{this.isMobile=window.innerWidth<768},50,{maxWait:50,leading:!0})}get configLang(){return O[this.lang]||"en"}get hasCorrectTransactionConfig(){return w(["apiKey","transactionId"],this)}get hasCorrectSubscriptionConfig(){return w(["apiKey","subscriptionId"],this)}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.evaluateBreakPoints)}async firstUpdated(e){await this.restoreStateFromCache()}async updated(e){const t=["baseUrl","storeId","apiKey","countryCode","postalCode","lang"];for(const o of t)if(e.has(o)){await this.nonprofitListDataController.exec();break}}disconnectedCallback(){super.disconnectedCallback()}restoreStateFromCache(){C(["apiKey"],this),this.shouldUseStoredSelection&&(this.selectedNonprofitId=parseInt(this.localStorage.getItem("nonprofit")||"")||void 0);try{const{createdAt:e=0,data:t}=this.localStorage.getItemJson("chainNonprofits")||{},o=2*60*60*1e3;new Date(e).valueOf()+o>new Date().valueOf()&&(this.nonprofitListDataController.data=t,this.nonprofitListDataController.loading=!1)}catch{}}get allowChange(){return this.selectionDataController.data==null&&!this.selectionDataController.loading}get allowSubmit(){return!!(this.selectedNonprofitId&&this.allowChange)}get shouldUseStoredSelection(){return!this.subscriptionId}get cssVariables(){const e={"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit",...q,...j,"--beam-RedeemTransaction-maxWidth":"1000px","--beam-RedeemTransaction-submitButton-color":"#fff","--beam-RedeemTransaction-submitButton-hover-color":"#fff","--beam-RedeemTransaction-submitButton-disabled-color":"#fff","--beam-RedeemTransaction-submitButton-backgroundColor":"#333","--beam-RedeemTransaction-submitButton-hover-backgroundColor":"#222","--beam-RedeemTransaction-submitButton-disabled-backgroundColor":"#767676","--beam-RedeemTransaction-submitButton-borderColor":"#333","--beam-RedeemTransaction-submitButton-hover-borderColor":"#222","--beam-RedeemTransaction-submitButton-disabled-borderColor":"#767676","--beam-RedeemTransaction-submitButton-fontSize":"14px","--beam-RedeemTransaction-submitButton-fontWeight":"inherit","--beam-RedeemTransaction-submitButton-fontFamily":"inherit","--beam-RedeemTransaction-submitButton-textTransform":"none","--beam-RedeemTransaction-submitButton-borderRadius":"0px","--beam-RedeemTransaction-submitButton-padding":"15px 30px","--beam-RedeemTransaction-submitButton-position":"right","--beam-RedeemTransaction-submitButton-positionRight-width":"auto","--beam-RedeemTransaction-submitButton-positionBottom-width":"100%","--beam-RedeemTransaction-submitButton-positionBottom-marginTop":"10px","--beam-RedeemTransaction-checkmark-color":"transparent","--beam-RedeemTransaction-checkmark-selected-color":"#fff","--beam-RedeemTransaction-checkmark-hover-color":"#fff","--beam-RedeemTransaction-checkmark-backgroundColor":"transparent","--beam-RedeemTransaction-checkmark-selected-backgroundColor":"#333","--beam-RedeemTransaction-checkmark-hover-backgroundColor":"#d9d9d9","--beam-RedeemTransaction-checkmark-borderColor":"transparent","--beam-RedeemTransaction-checkmark-selected-borderColor":"#333","--beam-RedeemTransaction-checkmark-hover-borderColor":"#d9d9d9","--beam-RedeemTransaction-options-minWidth":"250px","--beam-RedeemTransaction-options-columnCount":"2","--beam-RedeemTransaction-options-borderRadius":"0px","--beam-RedeemTransaction-options-borderWidth":"1px","--beam-RedeemTransaction-options-selected-borderWidth":"2px","--beam-RedeemTransaction-options-focus-borderWidth":"1px","--beam-RedeemTransaction-options-image-borderRadius":"0px","--beam-RedeemTransaction-options-borderColor":"#d9d9d9","--beam-RedeemTransaction-options-selected-borderColor":"currentColor","--beam-RedeemTransaction-options-hover-borderColor":"#ccc","--beam-RedeemTransaction-options-backgroundColor":"transparent","--beam-RedeemTransaction-options-selected-backgroundColor":"transparent","--beam-RedeemTransaction-options-hover-backgroundColor":"#f1f1f1","--beam-RedeemTransaction-options-marginTop":"15px",...f("--beam-RedeemTransaction-title",{fontSize:"1.25em",fontWeight:"bold"}),...f("--beam-RedeemTransaction-description",{marginTop:"0.5em"}),...f("--beam-RedeemTransaction-details-cause",{fontSize:"1em",fontWeight:"bold"}),...f("--beam-RedeemTransaction-details-impactDescription",{fontSize:"0.85em",marginTop:"10px"}),"--beam-RedeemTransaction-details-nonprofitName-fontWeight":"bold","--beam-RedeemTransaction-details-nonprofitName-fontStyle":"inherit","--beam-RedeemTransaction-details-fundingProgress-marginTop":"10px",...f("--beam-RedeemTransaction-details-fundingProgressLabel",{fontSize:"0.85em"}),"--beam-RedeemTransaction-cardStyle":"'image'","--beam-RedeemTransaction-options-icon-padding":"0px","--beam-RedeemTransaction-options-collapseNonprofits-mobile":"false","--beam-RedeemTransaction-options-collapseNonprofits-desktop":"false",...V},t=this.nonprofitListDataController?.data?.config?.web?.theme||{},o={...e,...t};return Object.assign(Object.create({toCSS(){return W(this)}}),o)}handleChooseClick(){this.didUserExpandNonprofits=!0}get shouldCollapse(){const e=this.cssVariables["--beam-RedeemTransaction-options-collapseNonprofits-mobile"]==="true",t=this.cssVariables["--beam-RedeemTransaction-options-collapseNonprofits-desktop"]==="true";return this.isMobile&&e||!this.isMobile&&t}render(){const{selectedNonprofitId:e}=this,{data:t,loading:o}=this.nonprofitListDataController;if(o&&!t)return G();if(this.nonprofitListDataController.error)return this.debug?y({error:this.nonprofitListDataController.error}):"";if(this.selectionDataController.error&&this.debug)return y({error:this.selectionDataController.error});if(t==null)return this.debug?y({error:new J("No data")}):"";const a=t?.nonprofits||[],p=a.find(n=>n.nonprofit.id===e)||null,d=this.cssVariables["--beam-RedeemTransaction-cardStyle"]==="'icon'",b=this.cssVariables["--beam-RedeemTransaction-submitButton-position"],R=this.isMobile&&b==="bottom"?"positionBottom":"positionRight";this.shouldUseNewPromoUI=!!(t?.config?.web?.promo&&!this.subscriptionId);const I=a.some(n=>!n.promo||!n.promo.isActive);return c`
|
|
1
|
+
import{f as I,g as l,t as x,h as N,y as s,q as v,u as P,k as D,m as U}from"../chunks/lit-3QHn3fwl.esm.js";import{d as z}from"../chunks/lodash-P8OIs-at.esm.js";import{u as h,A as k,d as f,a as M,_ as C,i as m}from"../chunks/localize-IRs8JglT.esm.js";import{D as L,f as E,W as B,h as W,u as A,S as F}from"../chunks/routes-zzEfDMIn.esm.js";import{p as K}from"../chunks/progress-bar-HVG_n8_6.esm.js";import{p as _}from"../chunks/promo-pill-label-3Xtr5ALT.esm.js";import{partnerLogosConfigDefaults as O}from"./beam-partner-logos.esm.js";import{c as j,d as V,a as q,e as y,b as w}from"../chunks/enforce-config-HksNiOMu.esm.js";import{_ as G}from"../chunks/loading-template-mLjOGXMj.esm.js";import{M as H,B as J}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import{createScopedLocalStorage as Z}from"../utils/local-storage.esm.js";import{c as Q}from"../chunks/css-card-grid-r6wxRbPV.esm.js";import{_ as X}from"../chunks/checkbox-P2JYPqxl.esm.js";import{c as Y}from"../chunks/events-_4nImo3u.esm.js";import"../utils/logger.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";const u={en:{beamAttribution:()=>"Powered by Beam",ctaTitle:()=>"Choose your impact",ctaPromoPrefixMessage:()=>"At no extra cost,",ctaPromoMessage:({donationPercentage:n="1"}={})=>`select a nonprofit and ${n}% of your purchase will be donated.`,ctaMessage:({donationPercentage:n="1%"}={})=>`Select a nonprofit and ${n} of your purchase will be donated, at no extra cost.`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"},fr:{beamAttribution:()=>"Optimis\xE9 par Beam",ctaTitle:()=>"Choisissez votre cause",ctaPromoPrefixMessage:()=>"",ctaPromoMessage:()=>"",ctaMessage:({donationPercentage:n="1%"}={})=>`Choisissez un organisme \xE0 but non lucratif et ${n}% lui sera vers\xE9 en votre nom, sans frais suppl\xE9mentaires.`,submitButtonText:()=>"Confirmer",submitButtonTextCompleted:()=>"Confirm\xE9!",chooseButtonText:()=>"Choisissez"},de:{beamAttribution:()=>"Unterst\xFCtzt von Beam",ctaTitle:()=>"W\xE4hle deinen Impact",ctaPromoPrefixMessage:()=>"",ctaPromoMessage:()=>"",ctaMessage:({donationPercentage:n="1%"}={})=>`W\xE4hle eine der gemeinn\xFCtzigen Organisationen und spende ${n} deines Einkaufs ohne zus\xE4tzliche Kosten`,submitButtonText:()=>"Best\xE4tigen",submitButtonTextCompleted:()=>"Best\xE4tigt!",chooseButtonText:()=>"W\xE4hlen"},es:{ctaTitle:()=>"Elige tu contribuci\xF3n",ctaPromoPrefixMessage:()=>"",ctaPromoMessage:()=>"",ctaMessage:({donationPercentage:n="1%"}={})=>`Elige una organizaci\xF3n sin fines de lucro y donaremos ${n} de tu compra sin coste adicional.`,beamAttribution:()=>"Ofrecido por Beam",submitButtonText:()=>"Confirmar",submitButtonTextCompleted:()=>"\xA1Confirmado!",chooseButtonText:()=>"Elige"},it:{ctaTitle:()=>"Scegli dove fare la differenza",ctaPromoPrefixMessage:()=>"",ctaPromoMessage:()=>"",ctaMessage:({donationPercentage:n="1%"}={})=>`Seleziona un'organizzazione no-profit a cui devolvere l\u2019${n} del tuo acquisto, senza costi aggiuntivi`,beamAttribution:()=>"Gestito da Beam",submitButtonText:()=>"Confermare",submitButtonTextCompleted:()=>"Confermato!",chooseButtonText:()=>"Scegli"},pl:{beamAttribution:()=>"Wspierany przez Beam",ctaTitle:()=>"Wybierz inicjatyw\u0119, kt\xF3r\u0105 chcesz wesprze\u0107",ctaPromoPrefixMessage:()=>"",ctaPromoMessage:()=>"",ctaMessage:({donationPercentage:n="1%"}={})=>`Wybierz organizacj\u0119, kt\xF3rej przeka\u017Cesz ${n} warto\u015Bci Twoich zakup\xF3w \u2013 bez \u017Cadnych dodatkowych koszt\xF3w!`,submitButtonText:()=>"Zatwierd\u017A",submitButtonTextCompleted:()=>"Zatwierdzono!",chooseButtonText:()=>"Wybierz"}};var ee=Object.defineProperty,te=Object.getOwnPropertyDescriptor,d=(n,e,t,o)=>{for(var i=o>1?void 0:o?te(e,t):e,p=n.length-1,c;p>=0;p--)(c=n[p])&&(i=(o?c(e,t,i):c(i))||i);return o&&i&&ee(e,t,i),i};class r extends N{constructor(){super(...arguments),this.baseUrl=L,this.lang="en",this.debug=!1,this.isMobile=window.innerWidth<768,this.didUserExpandNonprofits=!1,this.shouldUseNewPromoUI=!1,this.getChainNonprofits=async()=>{if(q(["transactionId","subscriptionId"],this),!this.hasCorrectTransactionConfig&&!this.hasCorrectSubscriptionConfig)throw new H;const e=await E({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{storeId:this.storeId,postalCode:this.postalCode,countryCode:this.countryCode,cart:this.cart??void 0,widgetName:B.redeem_transaction,version:"1.0.0",lang:this.configLang}});return e.store?.id&&e.store.id!==this.storeId&&(this.storeId=e.store.id),this.localStorage.setItemJson("chainNonprofits",{createdAt:new Date,data:e}),e},this.updateNonprofitIdForRecord=async({selectedNonprofitId:e})=>this.transactionId?this.putTransaction({selectedNonprofitId:e}):this.subscriptionId?this.putSubscription({selectedNonprofitId:e}):null,this.putTransaction=async({selectedNonprofitId:e})=>(y(["apiKey","transactionId"],this),W({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},pathParams:{transactionId:Number(this.transactionId)},requestBody:{nonprofitId:e}})),this.putSubscription=async({selectedNonprofitId:e})=>(y(["apiKey","subscriptionId"],this),A({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{remoteSubscriptionId:this.subscriptionId,nonprofitId:e}})),this.nonprofitListDataController=new k(this,this.getChainNonprofits),this.selectionDataController=new k(this,this.updateNonprofitIdForRecord),this.localStorage=Z(this),this.makeHandleSelect=(e,t,o)=>async i=>{if(!this.allowChange)return;const p=this.selectedNonprofitId;if(i instanceof KeyboardEvent){let c=null;switch(i.key){case"ArrowUp":case"ArrowLeft":t===0?c=o[o.length-1]:c=o[t-1],i.preventDefault();break;case"ArrowRight":case"ArrowDown":t===o.length-1?c=o[0]:c=o[t+1],i.preventDefault();break;case"Enter":case" ":i.preventDefault();break;default:return}if(c){const b=this.renderRoot.querySelector(`[data-value="${c.nonprofit.id}"]`);b!==null&&(b.tabIndex=0,b.focus());return}}if(i.currentTarget instanceof HTMLElement){if(p===e)return;this.selectedNonprofitId=e}},this.handleSubmit=async()=>{const{selectedNonprofitId:e}=this;if(!this.allowSubmit||e==null)return;await this.selectionDataController.exec({selectedNonprofitId:e}),this.shouldUseStoredSelection&&(this.localStorage.setItem("nonprofit",e),this.localStorage.setItem("nonprofit_selected_at",new Date().toISOString()));const t=this.nonprofitListDataController?.data?.nonprofits.find(o=>o.nonprofit.id===e);this.dispatchEvent(new Y({selectedNonprofitId:e,nonprofitName:t?.nonprofit.name,source:B.redeem_transaction}))},this.evaluateBreakPoints=z(()=>{this.isMobile=window.innerWidth<768},50,{maxWait:50,leading:!0})}get configLang(){return F[this.lang]||"en"}get hasCorrectTransactionConfig(){return w(["apiKey","transactionId"],this)}get hasCorrectSubscriptionConfig(){return w(["apiKey","subscriptionId"],this)}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.evaluateBreakPoints)}async firstUpdated(e){await this.restoreStateFromCache()}async updated(e){const t=["baseUrl","storeId","apiKey","countryCode","postalCode","lang"];for(const o of t)if(e.has(o)){await this.nonprofitListDataController.exec();break}}disconnectedCallback(){super.disconnectedCallback()}restoreStateFromCache(){y(["apiKey"],this),this.shouldUseStoredSelection&&(this.selectedNonprofitId=parseInt(this.localStorage.getItem("nonprofit")||"")||void 0);try{const{createdAt:e=0,data:t}=this.localStorage.getItemJson("chainNonprofits")||{},o=2*60*60*1e3;new Date(e).valueOf()+o>new Date().valueOf()&&(this.nonprofitListDataController.data=t,this.nonprofitListDataController.loading=!1)}catch{}}get allowChange(){return this.selectionDataController.data==null&&!this.selectionDataController.loading}get allowSubmit(){return!!(this.selectedNonprofitId&&this.allowChange)}get shouldUseStoredSelection(){return!this.subscriptionId}get cssVariables(){const e={"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit",...O,...K,"--beam-RedeemTransaction-maxWidth":"1000px","--beam-RedeemTransaction-submitButton-color":"#fff","--beam-RedeemTransaction-submitButton-hover-color":"#fff","--beam-RedeemTransaction-submitButton-disabled-color":"#fff","--beam-RedeemTransaction-submitButton-backgroundColor":"#333","--beam-RedeemTransaction-submitButton-hover-backgroundColor":"#222","--beam-RedeemTransaction-submitButton-disabled-backgroundColor":"#767676","--beam-RedeemTransaction-submitButton-borderColor":"#333","--beam-RedeemTransaction-submitButton-hover-borderColor":"#222","--beam-RedeemTransaction-submitButton-disabled-borderColor":"#767676","--beam-RedeemTransaction-submitButton-fontSize":"14px","--beam-RedeemTransaction-submitButton-fontWeight":"inherit","--beam-RedeemTransaction-submitButton-fontFamily":"inherit","--beam-RedeemTransaction-submitButton-textTransform":"none","--beam-RedeemTransaction-submitButton-borderRadius":"0px","--beam-RedeemTransaction-submitButton-padding":"15px 30px","--beam-RedeemTransaction-submitButton-position":"right","--beam-RedeemTransaction-submitButton-positionRight-width":"auto","--beam-RedeemTransaction-submitButton-positionBottom-width":"100%","--beam-RedeemTransaction-submitButton-positionBottom-marginTop":"10px","--beam-RedeemTransaction-checkmark-color":"transparent","--beam-RedeemTransaction-checkmark-selected-color":"#fff","--beam-RedeemTransaction-checkmark-hover-color":"#fff","--beam-RedeemTransaction-checkmark-backgroundColor":"transparent","--beam-RedeemTransaction-checkmark-selected-backgroundColor":"#333","--beam-RedeemTransaction-checkmark-hover-backgroundColor":"#d9d9d9","--beam-RedeemTransaction-checkmark-borderColor":"transparent","--beam-RedeemTransaction-checkmark-selected-borderColor":"#333","--beam-RedeemTransaction-checkmark-hover-borderColor":"#d9d9d9","--beam-RedeemTransaction-options-minWidth":"250px","--beam-RedeemTransaction-options-columnCount":"2","--beam-RedeemTransaction-options-borderRadius":"0px","--beam-RedeemTransaction-options-borderWidth":"1px","--beam-RedeemTransaction-options-selected-borderWidth":"2px","--beam-RedeemTransaction-options-focus-borderWidth":"1px","--beam-RedeemTransaction-options-image-borderRadius":"0px","--beam-RedeemTransaction-options-borderColor":"#d9d9d9","--beam-RedeemTransaction-options-selected-borderColor":"currentColor","--beam-RedeemTransaction-options-hover-borderColor":"#ccc","--beam-RedeemTransaction-options-backgroundColor":"transparent","--beam-RedeemTransaction-options-selected-backgroundColor":"transparent","--beam-RedeemTransaction-options-hover-backgroundColor":"#f1f1f1","--beam-RedeemTransaction-options-marginTop":"15px",...f("--beam-RedeemTransaction-title",{fontSize:"1.25em",fontWeight:"bold"}),...f("--beam-RedeemTransaction-description",{marginTop:"0.5em"}),...f("--beam-RedeemTransaction-details-cause",{fontSize:"1em",fontWeight:"bold"}),...f("--beam-RedeemTransaction-details-impactDescription",{fontSize:"0.85em",marginTop:"10px"}),"--beam-RedeemTransaction-details-nonprofitName-fontWeight":"bold","--beam-RedeemTransaction-details-nonprofitName-fontStyle":"inherit","--beam-RedeemTransaction-details-fundingProgress-marginTop":"10px",...f("--beam-RedeemTransaction-details-fundingProgressLabel",{fontSize:"0.85em"}),"--beam-RedeemTransaction-cardStyle":"'image'","--beam-RedeemTransaction-options-icon-padding":"0px","--beam-RedeemTransaction-options-collapseNonprofits-mobile":"false","--beam-RedeemTransaction-options-collapseNonprofits-desktop":"false",..._},t=this.nonprofitListDataController?.data?.config?.web?.theme||{},o={...e,...t};return Object.assign(Object.create({toCSS(){return M(this)}}),o)}handleChooseClick(){this.didUserExpandNonprofits=!0}get shouldCollapse(){const e=this.cssVariables["--beam-RedeemTransaction-options-collapseNonprofits-mobile"]==="true",t=this.cssVariables["--beam-RedeemTransaction-options-collapseNonprofits-desktop"]==="true";return this.isMobile&&e||!this.isMobile&&t}renderSubmitButton(e){return s`
|
|
2
|
+
${this.didUserExpandNonprofits||!this.shouldCollapse?s` <button
|
|
3
|
+
type="button"
|
|
4
|
+
?aria-disabled=${!this.allowSubmit}
|
|
5
|
+
@click="${this.handleSubmit}"
|
|
6
|
+
class="${v({isDisabled:!this.allowSubmit,[e]:!0,submitButton:!0})}"
|
|
7
|
+
part="submitButton"
|
|
8
|
+
>
|
|
9
|
+
${this.selectionDataController.data!==null?u[this.configLang].submitButtonTextCompleted():u[this.configLang].submitButtonText()}
|
|
10
|
+
</button>`:s` <button
|
|
11
|
+
type="button"
|
|
12
|
+
@click="${this.handleChooseClick}"
|
|
13
|
+
class="submitButton ${e}"
|
|
14
|
+
part="submitButton"
|
|
15
|
+
>
|
|
16
|
+
${u[this.configLang].chooseButtonText()}
|
|
17
|
+
</button>`}
|
|
18
|
+
`}render(){const{selectedNonprofitId:e}=this,{data:t,loading:o}=this.nonprofitListDataController;if(o&&!t)return G();if(this.nonprofitListDataController.error)return this.debug?C({error:this.nonprofitListDataController.error}):"";if(this.selectionDataController.error&&this.debug)return C({error:this.selectionDataController.error});if(t==null)return this.debug?C({error:new J("No data")}):"";const i=t?.nonprofits||[],p=i.find(a=>a.nonprofit.id===e)||null,c=this.cssVariables["--beam-RedeemTransaction-cardStyle"]==="'icon'",b=this.cssVariables["--beam-RedeemTransaction-submitButton-position"],R=this.isMobile&&this.shouldUseNewPromoUI||this.isMobile&&b==="bottom"?"positionBottom":"positionRight";this.shouldUseNewPromoUI=!!(t?.config?.web?.promo&&!this.subscriptionId);const S=i.some(a=>!a.promo||!a.promo.isActive);return s`
|
|
17
19
|
<style>
|
|
18
20
|
:host {
|
|
19
21
|
${this.cssVariables.toCSS()}
|
|
@@ -30,22 +32,22 @@ import{y as c,m as k,f as N,g as l,t as x,h as P,q as v,p as D,k as z}from"../ch
|
|
|
30
32
|
aria-labelledby="beam-RedeemTransaction-title"
|
|
31
33
|
?aria-disabled=${!this.allowChange}
|
|
32
34
|
>
|
|
33
|
-
${
|
|
35
|
+
${P(i,a=>a.nonprofit.id,(a,g)=>{const T=e===a.nonprofit.id,$=T||p==null&&g===0;return s`
|
|
34
36
|
<div
|
|
35
37
|
class="option ${v({isSelected:T,isDisabled:!this.allowChange})}"
|
|
36
38
|
part="option"
|
|
37
39
|
role="radio"
|
|
38
40
|
tabindex="${$?0:-1}"
|
|
39
|
-
data-value=${
|
|
41
|
+
data-value=${a.nonprofit.id}
|
|
40
42
|
?aria-checked=${T}
|
|
41
|
-
@click=${this.makeHandleSelect(
|
|
42
|
-
@keydown=${this.makeHandleSelect(
|
|
43
|
-
aria-label="${m(this.configLang,
|
|
44
|
-
style="${
|
|
43
|
+
@click=${this.makeHandleSelect(a.nonprofit.id,g,i)}
|
|
44
|
+
@keydown=${this.makeHandleSelect(a.nonprofit.id,g,i)}
|
|
45
|
+
aria-label="${m(this.configLang,a.nonprofit.cause||"")}"
|
|
46
|
+
style="${D({display:"flex",gap:"15px",padding:"10px"})}"
|
|
45
47
|
>
|
|
46
|
-
${
|
|
48
|
+
${c?s` <div style="height: 100%; flex: 1; flex-direction: column;">
|
|
47
49
|
<img
|
|
48
|
-
src="${
|
|
50
|
+
src="${a.nonprofit.causeIconUrl}"
|
|
49
51
|
alt=""
|
|
50
52
|
role="presentation"
|
|
51
53
|
style="
|
|
@@ -57,9 +59,9 @@ import{y as c,m as k,f as N,g as l,t as x,h as P,q as v,p as D,k as z}from"../ch
|
|
|
57
59
|
border-radius: var(--beam-RedeemTransaction-options-image-borderRadius, 0);
|
|
58
60
|
"
|
|
59
61
|
/>
|
|
60
|
-
</div>`:
|
|
62
|
+
</div>`:s` <div style="height: 100%; flex: 1 0 33%; display: flex; flex-direction: column;">
|
|
61
63
|
<img
|
|
62
|
-
src="${
|
|
64
|
+
src="${a.imageUrl}"
|
|
63
65
|
alt=""
|
|
64
66
|
role="presentation"
|
|
65
67
|
style="
|
|
@@ -103,31 +105,31 @@ import{y as c,m as k,f as N,g as l,t as x,h as P,q as v,p as D,k as z}from"../ch
|
|
|
103
105
|
justify-content: center;
|
|
104
106
|
"
|
|
105
107
|
>
|
|
106
|
-
<span style="line-height: 0;"> ${
|
|
108
|
+
<span style="line-height: 0;"> ${X({height:"10px",width:"10px"})} </span>
|
|
107
109
|
</span>
|
|
108
|
-
${m(this.configLang,
|
|
110
|
+
${m(this.configLang,a.nonprofit.cause||"")}
|
|
109
111
|
</div>
|
|
110
112
|
<p class="details-impactDescription" style="flex: 1 1;">
|
|
111
|
-
${
|
|
113
|
+
${U(m(this.configLang,a.impact.description||""))}
|
|
112
114
|
</p>
|
|
113
115
|
<div class="details-promo-pill-container" style="margin-top: 5px">
|
|
114
|
-
${
|
|
116
|
+
${a.promo?.isActive&&this.shouldUseNewPromoUI&&S?s`<beam-promo-info-pill
|
|
115
117
|
.promo=${t?.config?.web?.promo}
|
|
116
118
|
shortVersion
|
|
117
|
-
></beam-promo-info-pill>`:
|
|
119
|
+
></beam-promo-info-pill>`:s``}
|
|
118
120
|
</div>
|
|
119
121
|
<div
|
|
120
122
|
style="display: flex; margin-top: var(--beam-RedeemTransaction-details-fundingProgress-marginTop); align-items: center;"
|
|
121
123
|
>
|
|
122
124
|
<beam-progress-bar
|
|
123
|
-
value="${
|
|
125
|
+
value="${a.impact.goalProgressPercentage}"
|
|
124
126
|
style="flex: 1 0;"
|
|
125
127
|
></beam-progress-bar>
|
|
126
128
|
<span
|
|
127
129
|
class="details-fundingProgressLabel"
|
|
128
130
|
style="${h("--beam-RedeemTransaction-details-fundingProgressLabel")} white-space: nowrap; text-align: right; flex: 0 1; margin-left: 15px;"
|
|
129
131
|
>
|
|
130
|
-
${m(this.configLang,
|
|
132
|
+
${m(this.configLang,a.impact.goalProgressText)}
|
|
131
133
|
</span>
|
|
132
134
|
</div>
|
|
133
135
|
</div>
|
|
@@ -152,47 +154,34 @@ import{y as c,m as k,f as N,g as l,t as x,h as P,q as v,p as D,k as z}from"../ch
|
|
|
152
154
|
>
|
|
153
155
|
${m(this.configLang,t?.config?.web?.title)||u[this.configLang].ctaTitle()}
|
|
154
156
|
</h3>
|
|
155
|
-
${this.shouldUseNewPromoUI?
|
|
157
|
+
${this.shouldUseNewPromoUI?s`<beam-promo-info-pill
|
|
156
158
|
.promo=${t?.config?.web?.promo}
|
|
157
159
|
style="${this.isMobile&&"order: -1; margin-bottom:10px;"}"
|
|
158
|
-
></beam-promo-info-pill>`:
|
|
160
|
+
></beam-promo-info-pill>`:s``}
|
|
159
161
|
</div>
|
|
160
162
|
<p class="description" part="description" style="${h("--beam-RedeemTransaction-description")}">
|
|
161
|
-
${this.shouldUseNewPromoUI?
|
|
163
|
+
${this.shouldUseNewPromoUI?s`<span style="font-weight:bold">
|
|
162
164
|
${m(this.configLang,t?.config?.web?.promoDescriptionPrefix||"")||u[this.configLang].ctaPromoPrefixMessage()}
|
|
163
165
|
</span>
|
|
164
166
|
<span>
|
|
165
167
|
${m(this.configLang,t?.config?.web?.promoDescription||"")||u[this.configLang].ctaPromoMessage()}
|
|
166
|
-
</span>`:
|
|
168
|
+
</span>`:s`<span
|
|
167
169
|
>${m(this.configLang,t?.config?.web?.description||"")||u[this.configLang].ctaMessage()}
|
|
168
170
|
</span>`}
|
|
169
171
|
</p>
|
|
170
172
|
</div>
|
|
171
|
-
${this.
|
|
172
|
-
type="button"
|
|
173
|
-
?aria-disabled=${!this.allowSubmit}
|
|
174
|
-
@click="${this.handleSubmit}"
|
|
175
|
-
class="${v({isDisabled:!this.allowSubmit,[R]:!0,submitButton:!0})}"
|
|
176
|
-
part="submitButton"
|
|
177
|
-
>
|
|
178
|
-
${this.selectionDataController.data!==null?u[this.configLang].submitButtonTextCompleted():u[this.configLang].submitButtonText()}
|
|
179
|
-
</button>`:c`<button
|
|
180
|
-
type="button"
|
|
181
|
-
@click="${this.handleChooseClick}"
|
|
182
|
-
class="submitButton ${R}"
|
|
183
|
-
part="submitButton"
|
|
184
|
-
>
|
|
185
|
-
${u[this.configLang].chooseButtonText()}
|
|
186
|
-
</button>`}
|
|
173
|
+
${!this.isMobile&&this.shouldUseNewPromoUI||!this.shouldUseNewPromoUI?this.renderSubmitButton(R):null}
|
|
187
174
|
</div>
|
|
188
175
|
|
|
176
|
+
${this.isMobile&&this.shouldUseNewPromoUI?s` <div style="order: 4;">${this.renderSubmitButton(R)}</div> `:null}
|
|
177
|
+
|
|
189
178
|
<beam-partner-logos
|
|
190
179
|
partnerName="${t.chain.name}"
|
|
191
180
|
partnerLogoUrl="${t.chain.logoUrl}"
|
|
192
181
|
style="order: 1"
|
|
193
182
|
></beam-partner-logos>
|
|
194
183
|
</div>
|
|
195
|
-
`}}r.tagName="beam-redeem-transaction",r.styles=[
|
|
184
|
+
`}}r.tagName="beam-redeem-transaction",r.styles=[j,I`
|
|
196
185
|
:host {
|
|
197
186
|
display: block;
|
|
198
187
|
max-width: var(--beam-RedeemTransaction-maxWidth, 1000px);
|
|
@@ -323,5 +312,5 @@ import{y as c,m as k,f as N,g as l,t as x,h as P,q as v,p as D,k as z}from"../ch
|
|
|
323
312
|
font-weight: var(--beam-RedeemTransaction-details-nonprofitName-fontWeight, bold);
|
|
324
313
|
font-style: var(--beam-RedeemTransaction-details-nonprofitName-fontStyle, inherit);
|
|
325
314
|
}
|
|
326
|
-
`,Q({gap:"20px",itemMinWidth:"var(--beam-RedeemTransaction-options-minWidth, 250px)",columnCount:"var(--beam-RedeemTransaction-options-columnCount, 2)"})],
|
|
315
|
+
`,Q({gap:"20px",itemMinWidth:"var(--beam-RedeemTransaction-options-minWidth, 250px)",columnCount:"var(--beam-RedeemTransaction-options-columnCount, 2)"})],d([l({type:String})],r.prototype,"baseUrl",2),d([l({type:String})],r.prototype,"apiKey",2),d([l({type:Number})],r.prototype,"transactionId",2),d([l({type:String})],r.prototype,"subscriptionId",2),d([l({type:Number})],r.prototype,"storeId",2),d([l({type:String})],r.prototype,"countryCode",2),d([l({type:String})],r.prototype,"postalCode",2),d([l({type:Object})],r.prototype,"cart",2),d([l({type:Number,reflect:!0})],r.prototype,"selectedNonprofitId",2),d([l({type:String})],r.prototype,"lang",2),d([l({type:Boolean})],r.prototype,"debug",2),d([x()],r.prototype,"isMobile",2),d([x()],r.prototype,"didUserExpandNonprofits",2),d([x()],r.prototype,"shouldUseNewPromoUI",2),V(r);export{r as BeamRedeemTransaction};
|
|
327
316
|
//# sourceMappingURL=redeem-transaction.esm.js.map
|