@beamimpact/web-sdk 1.36.0 → 1.36.3
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 +80 -9
- package/dist/chunks/{_share-dialog-dependencies-JkqAjyWn.esm.js → _share-dialog-dependencies--ymuf2iZ.esm.js} +2 -2
- package/dist/chunks/_share-dialog-dependencies--ymuf2iZ.esm.js.map +1 -0
- package/dist/chunks/{_share-dialog-dependencies-mxkp5-2m.esm.js → _share-dialog-dependencies-n9b_OCM7.esm.js} +2 -2
- package/dist/chunks/_share-dialog-dependencies-n9b_OCM7.esm.js.map +1 -0
- package/dist/chunks/{cart-contents-22-v_s94.esm.d.ts → cart-contents-tEvcY9ip.esm.d.ts} +1 -1
- package/dist/chunks/{events-rt-wdsLM.esm.d.ts → events-PZnG_xac.esm.d.ts} +1 -1
- package/dist/chunks/index--jVeJo2S.esm.js +2 -0
- package/dist/chunks/index--jVeJo2S.esm.js.map +1 -0
- package/dist/chunks/{index-W4Y5lVSA.esm.d.ts → index-5-EnaNnJ.esm.d.ts} +1 -1
- package/dist/chunks/index-DgHFjjme.esm.js +2 -0
- package/dist/chunks/index-DgHFjjme.esm.js.map +1 -0
- package/dist/chunks/index-JNiGr3KS.esm.js +2 -0
- package/dist/chunks/index-JNiGr3KS.esm.js.map +1 -0
- package/dist/chunks/index-KSxb-LPg.esm.js +2 -0
- package/dist/chunks/index-KSxb-LPg.esm.js.map +1 -0
- package/dist/chunks/{index-IOQZUYT9.esm.d.ts → index-PL4iasT1.esm.d.ts} +1 -1
- package/dist/chunks/index-PRMh7OXf.esm.js +2 -0
- package/dist/chunks/index-PRMh7OXf.esm.js.map +1 -0
- package/dist/chunks/{index-xERV1BQn.esm.d.ts → index-U2dW3lkm.esm.d.ts} +1 -1
- package/dist/chunks/{index-olIrMP04.esm.js → index-U4xez8rX.esm.js} +2 -2
- package/dist/chunks/{index-olIrMP04.esm.js.map → index-U4xez8rX.esm.js.map} +1 -1
- package/dist/chunks/{index-qerf6TiH.esm.d.ts → index-hbzssC4x.esm.d.ts} +1 -1
- package/dist/chunks/{index-e13I7Ozo.esm.js → index-j-NaeUKV.esm.js} +2 -2
- package/dist/chunks/{index-e13I7Ozo.esm.js.map → index-j-NaeUKV.esm.js.map} +1 -1
- package/dist/chunks/{index-iTqsULiK.esm.d.ts → index-nJEBkWPL.esm.d.ts} +1 -1
- package/dist/chunks/index-qyU4d_39.esm.js +2 -0
- package/dist/chunks/index-qyU4d_39.esm.js.map +1 -0
- package/dist/chunks/{index-rTMJFwfk.esm.d.ts → index-rOz-i1aX.esm.d.ts} +4 -4
- package/dist/chunks/{openapi-spec-scRfHArN.esm.d.ts → openapi-spec-tJkr2i9K.esm.d.ts} +56 -1
- package/dist/chunks/{order-page-Q9iJrRjP.esm.js → order-page-TnGjpqgX.esm.js} +2 -2
- package/dist/chunks/{order-page-Q9iJrRjP.esm.js.map → order-page-TnGjpqgX.esm.js.map} +1 -1
- package/dist/chunks/{order-page-ua17ZUZi.esm.js → order-page-WNM5eGtR.esm.js} +2 -2
- package/dist/chunks/{order-page-ua17ZUZi.esm.js.map → order-page-WNM5eGtR.esm.js.map} +1 -1
- package/dist/chunks/{order-page-scELdENh.esm.d.ts → order-page-cFAaDNWE.esm.d.ts} +2 -2
- package/dist/chunks/routes-0acj_R0M.esm.js +2 -0
- package/dist/chunks/{routes-2eYzHPEh.esm.js.map → routes-0acj_R0M.esm.js.map} +1 -1
- package/dist/chunks/routes-dou9TIdY.esm.js +2 -0
- package/dist/chunks/{routes-dMIUHq8Y.esm.js.map → routes-dou9TIdY.esm.js.map} +1 -1
- package/dist/chunks/{update-cart-rzsMaDu6.esm.js → update-cart-UXOGYRmF.esm.js} +2 -2
- package/dist/chunks/{update-cart-rzsMaDu6.esm.js.map → update-cart-UXOGYRmF.esm.js.map} +1 -1
- package/dist/chunks/{update-cart-1CVVu5Xc.esm.js → update-cart-ehKAwAKe.esm.js} +2 -2
- package/dist/chunks/{update-cart-1CVVu5Xc.esm.js.map → update-cart-ehKAwAKe.esm.js.map} +1 -1
- package/dist/chunks/{update-cart-lCgGJZvM.esm.d.ts → update-cart-m3NdnSx2.esm.d.ts} +1 -1
- package/dist/components/community-impact.esm.js +1 -1
- package/dist/components/community-impact.js +1 -1
- package/dist/components/cumulative-impact.esm.js +1 -1
- package/dist/components/cumulative-impact.js +1 -1
- package/dist/components/impact-overview.esm.js +1 -1
- package/dist/components/impact-overview.js +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/index.esm.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/post-purchase.d.ts +3 -3
- package/dist/components/post-purchase.esm.js +1 -2
- package/dist/components/post-purchase.esm.js.map +1 -1
- package/dist/components/post-purchase.js +1 -2
- package/dist/components/post-purchase.js.map +1 -1
- package/dist/components/redeem-transaction.d.ts +3 -5
- package/dist/components/redeem-transaction.esm.js +5 -5
- package/dist/components/redeem-transaction.esm.js.map +1 -1
- package/dist/components/redeem-transaction.js +5 -5
- package/dist/components/redeem-transaction.js.map +1 -1
- package/dist/components/select-nonprofit.d.ts +6 -6
- package/dist/components/select-nonprofit.esm.js +5 -5
- package/dist/components/select-nonprofit.esm.js.map +1 -1
- package/dist/components/select-nonprofit.js +5 -5
- package/dist/components/select-nonprofit.js.map +1 -1
- package/dist/components/shopify.d.ts +5 -5
- package/dist/components/shopify.esm.js +1 -1
- package/dist/components/shopify.js +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/integrations/beam.esm.js +1 -1
- package/dist/integrations/beam.js +1 -1
- package/dist/integrations/cart.d.ts +3 -3
- package/dist/integrations/cart.esm.js +1 -1
- package/dist/integrations/cart.js +1 -1
- package/dist/integrations/index.d.ts +9 -9
- package/dist/integrations/index.esm.js +1 -1
- package/dist/integrations/index.js +1 -1
- package/dist/integrations/logs.d.ts +2 -2
- package/dist/integrations/logs.esm.js +1 -1
- package/dist/integrations/logs.js +1 -1
- package/dist/integrations/shopify.d.ts +4 -4
- package/dist/integrations/shopify.esm.js +1 -1
- package/dist/integrations/shopify.js +1 -1
- package/dist/integrations/statsig.esm.js +9 -9
- package/dist/integrations/statsig.esm.js.map +1 -1
- package/dist/integrations/statsig.js +9 -9
- package/dist/integrations/statsig.js.map +1 -1
- package/dist/integrations/utils.d.ts +3 -3
- package/dist/react/community-impact.esm.js +1 -1
- package/dist/react/community-impact.js +1 -1
- package/dist/react/cumulative-impact.esm.js +1 -1
- package/dist/react/cumulative-impact.js +1 -1
- package/dist/react/impact-overview.esm.js +1 -1
- package/dist/react/impact-overview.js +1 -1
- package/dist/react/index.d.ts +3 -3
- package/dist/react/index.esm.js +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/post-purchase.d.ts +2 -2
- package/dist/react/post-purchase.esm.js +1 -1
- package/dist/react/post-purchase.js +1 -1
- package/dist/react/redeem-transaction.d.ts +3 -3
- package/dist/react/redeem-transaction.esm.js +1 -1
- package/dist/react/redeem-transaction.js +1 -1
- package/dist/react/select-nonprofit.d.ts +3 -3
- package/dist/react/select-nonprofit.esm.js +1 -1
- package/dist/react/select-nonprofit.js +1 -1
- package/dist/utils/events.d.ts +3 -3
- package/dist/utils/index.d.ts +3 -3
- package/package.json +1 -1
- package/dist/chunks/_share-dialog-dependencies-JkqAjyWn.esm.js.map +0 -1
- package/dist/chunks/_share-dialog-dependencies-mxkp5-2m.esm.js.map +0 -1
- package/dist/chunks/index-Ex-M28eQ.esm.js +0 -2
- package/dist/chunks/index-Ex-M28eQ.esm.js.map +0 -1
- package/dist/chunks/index-QVOgLnoJ.esm.js +0 -2
- package/dist/chunks/index-QVOgLnoJ.esm.js.map +0 -1
- package/dist/chunks/index-R8Ga2jzl.esm.js +0 -2
- package/dist/chunks/index-R8Ga2jzl.esm.js.map +0 -1
- package/dist/chunks/index-XDPjy3-K.esm.js +0 -2
- package/dist/chunks/index-XDPjy3-K.esm.js.map +0 -1
- package/dist/chunks/index-nLDGmOkp.esm.js +0 -2
- package/dist/chunks/index-nLDGmOkp.esm.js.map +0 -1
- package/dist/chunks/index-rvzEx3Qj.esm.js +0 -2
- package/dist/chunks/index-rvzEx3Qj.esm.js.map +0 -1
- package/dist/chunks/routes-2eYzHPEh.esm.js +0 -2
- package/dist/chunks/routes-dMIUHq8Y.esm.js +0 -2
|
@@ -4,12 +4,12 @@ import * as lit_html from 'lit-html';
|
|
|
4
4
|
import { L as LANGUAGES } from '../chunks/types-aju0qrRe.esm.js';
|
|
5
5
|
import './redeem-transaction.js';
|
|
6
6
|
import './impact-overview.js';
|
|
7
|
-
import { T as TCart } from '../chunks/cart-contents-
|
|
7
|
+
import { T as TCart } from '../chunks/cart-contents-tEvcY9ip.esm.js';
|
|
8
8
|
import 'lodash';
|
|
9
9
|
import '../chunks/progress-bar-0VS_AmEf.esm.js';
|
|
10
10
|
import './beam-partner-logos.js';
|
|
11
11
|
import '../chunks/types-7kSi85Gv.esm.js';
|
|
12
|
-
import '../chunks/openapi-spec-
|
|
12
|
+
import '../chunks/openapi-spec-tJkr2i9K.esm.js';
|
|
13
13
|
|
|
14
14
|
declare class BeamPostPurchase extends LitElement {
|
|
15
15
|
static tagName: string;
|
|
@@ -119,7 +119,7 @@ declare class BeamPostPurchase extends LitElement {
|
|
|
119
119
|
} | undefined;
|
|
120
120
|
}>;
|
|
121
121
|
private transactionDataController;
|
|
122
|
-
render(): lit_html.TemplateResult<1
|
|
122
|
+
render(): "" | lit_html.TemplateResult<1>;
|
|
123
123
|
static styles: lit.CSSResult[];
|
|
124
124
|
}
|
|
125
125
|
declare global {
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import{g as r,t as a,h as
|
|
1
|
+
import{g as r,t as a,h as I,y as l}from"../chunks/lit-yVXn5Cbs.esm.js";import{deleteCookieValue as u,getCookieValue as g}from"../utils/cookies.esm.js";import{c as C,d as b,e as m,A as v,_ as f}from"../chunks/localize-BGPniqcI.esm.js";import{createScopedLocalStorage as S}from"../utils/local-storage.esm.js";import{D as $,b as U,c as w}from"../chunks/routes-dou9TIdY.esm.js";import"./redeem-transaction.esm.js";import"./impact-overview.esm.js";import{B as y}from"../chunks/cart-contents-h60geKWa.esm.js";import{b as K}from"../chunks/events-5IECSF-x.esm.js";import"../chunks/beam-errors-AMvTvR1C.esm.js";import"../utils/logger.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/progress-bar-7gWYaGlq.esm.js";import"./beam-partner-logos.esm.js";import"../chunks/css-card-grid-3b56QBzq.esm.js";import"../chunks/vendor-eeJfrOkP.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/responsive-LYEag6TI.esm.js";var T=Object.defineProperty,A=Object.getOwnPropertyDescriptor,e=(d,o,i,n)=>{for(var s=n>1?void 0:n?A(o,i):o,c=d.length-1,p;c>=0;c--)(p=d[c])&&(s=(n?p(o,i,s):p(s))||s);return n&&s&&T(o,i,s),s};const h=["baseUrl","apiKey","orderId","email","cartTotal","currencyCode","lang"],E=["storeId","postalCode","countryCode","cart","discountCodes"];class t extends I{constructor(){super(...arguments),this.baseUrl=$,this.currencyCode="USD",this.lang="en",this.debug=!1,this.activeWidget=null,this.nonprofitId=null,this.selectionId=null,this.cartId=null,this.beamCartId=null,this.userId=null,this.transactionId=null,this.chainId=null,this.localStorage=S(this),this.handlePostTransaction=async()=>{if(m(h,this),!this.storeId&&this.postalCode&&this.countryCode){const i=await U({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{postalCode:this.postalCode,countryCode:this.countryCode,widgetName:"redeem-transaction",version:"1.0.0"}});this.storeId=i.store?.id}const o=await w({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{nonprofitId:this.nonprofitId??void 0,selectionId:this.selectionId??void 0,cartId:this.cartId??void 0,beamCartId:this.beamCartId??void 0,storeId:this.storeId,orderId:this.orderId,cartTotal:this.cartTotal,email:this.email,currencyCode:this.currencyCode,postalCode:this.postalCode,countryCode:this.countryCode,cart:this.cart,discountCodes:this.discountCodes}});return this.transactionId=o.transactionId,this.chainId=o.chainId,this.userId=o.beamUserId,this.nonprofitId=o.nonprofitId,this.nonprofitId?this.activeWidget="impact-overview":this.activeWidget="redeem-transaction",this.localStorage.removeItem("transaction"),this.localStorage.removeItem("cart"),u({name:y,path:"/",domain:this.domain}),o.transactionCreated&&dispatchEvent(new K({transactionId:o.transactionId,orderId:this.orderId,cartTotal:this.cartTotal,currencyCode:this.currencyCode})),o},this.transactionDataController=new v(this,this.handlePostTransaction)}firstUpdated(o){m(h,this),this.nonprofitId=Number(this.localStorage.getItem("nonprofit"))||null,this.selectionId=this.localStorage.getItem("transaction")||null,this.cartId=this.localStorage.getItemJson("cart")?.cartId||null,this.beamCartId=g(y)||null,this.selectionId&&this.nonprofitId&&(this.activeWidget="impact-overview")}async updated(o){[...h,...E].some(i=>o.has(i))&&await this.transactionDataController.exec()}render(){return this.transactionDataController.loading?"":this.transactionDataController.error?this.debug?f({error:this.transactionDataController.error}):"":this.activeWidget==="redeem-transaction"?l`
|
|
2
2
|
<beam-redeem-transaction
|
|
3
3
|
part="redeem-transaction"
|
|
4
4
|
baseUrl="${this.baseUrl}"
|
|
5
5
|
apiKey="${this.apiKey}"
|
|
6
|
-
chainId="${this.chainId}"
|
|
7
6
|
storeId="${this.storeId}"
|
|
8
7
|
transactionId="${this.transactionId}"
|
|
9
8
|
cart="${JSON.stringify(this.cart)}"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-purchase.esm.js","sources":["../../src/components/post-purchase/index.ts"],"sourcesContent":["import { html, LitElement, PropertyValues } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { state } from \"lit/decorators/state.js\";\nimport { deleteCookieValue, getCookieValue } from \"../../utils/cookies\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { createScopedLocalStorage } from \"../../utils/local-storage\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { DEFAULT_BASE_URL } from \"../../api-sdk/constants\";\nimport { getChainNonprofits, postTransaction } from \"../../api-sdk/v3/routes\";\nimport \"../redeem-transaction\";\nimport \"../impact-overview\";\nimport { BEAM_CART_COOKIE_NAME, TBeamCartLocalStorage, TCart } from \"../../shared/cart-contents\";\nimport { BeamNonprofitSelectEvent, BeamOrderCreatedEvent } from \"../../utils/events\";\n\nconst REQUIRED_DATA_PROPS = [\"baseUrl\", \"apiKey\", \"orderId\", \"email\", \"cartTotal\", \"currencyCode\", \"lang\"];\nconst OPTIONAL_DATA_PROPS = [\"storeId\", \"postalCode\", \"countryCode\", \"cart\", \"discountCodes\"];\n\nexport class BeamPostPurchase extends LitElement {\n static tagName = \"beam-post-purchase\";\n\n @property({ type: String })\n public baseUrl: string = DEFAULT_BASE_URL;\n\n @property({ type: String })\n public apiKey!: string;\n\n @property({ type: Number, reflect: true })\n public storeId?: number; // Either storeId or postalCode, countryCode must be provided\n\n @property({ type: String })\n public postalCode?: string;\n\n @property({ type: String })\n public countryCode?: string;\n\n @property({ type: String })\n public orderId!: string;\n\n @property({ type: String })\n public email!: string;\n\n @property({ type: Number })\n public cartTotal!: number;\n\n @property({ type: String })\n public currencyCode = \"USD\";\n\n @property({ type: String })\n public lang: LANGUAGES = \"en\";\n\n @property({ type: Object })\n public cart?: TCart;\n\n @property({ type: Array })\n public discountCodes?: string[];\n\n @property({ type: String })\n public domain?: string;\n\n @property({ type: Boolean })\n public debug = false;\n\n @state() private activeWidget: \"redeem-transaction\" | \"impact-overview\" | null = null; // wait for postTransaction\n @state() private nonprofitId: number | null = null; // from localStorage or redeem-transaction result\n @state() private selectionId: string | null = null; // from localStorage\n @state() private cartId: string | null = null; // from localStorage, external cart ID\n @state() private beamCartId: string | null = null; // from cookie, Beam cart ID\n @state() private userId: string | null = null; // from postTransaction\n @state() private transactionId: string | null = null; // from postTransaction\n @state() private chainId: number | null = null; // from postTransaction, used by impact-overview\n\n private localStorage = createScopedLocalStorage(this);\n\n firstUpdated(_changedProperties: PropertyValues) {\n enforceConfig(REQUIRED_DATA_PROPS, this);\n this.nonprofitId = Number(this.localStorage.getItem(\"nonprofit\")) || null;\n this.selectionId = this.localStorage.getItem(\"transaction\") || null;\n this.cartId = this.localStorage.getItemJson<TBeamCartLocalStorage>(\"cart\")?.cartId || null;\n // Reading beamCartId from cookies instead of localStorage allows it to work across subdomains\n this.beamCartId = getCookieValue(BEAM_CART_COOKIE_NAME) || null;\n\n if (this.selectionId && this.nonprofitId) {\n this.activeWidget = \"impact-overview\";\n }\n }\n\n async updated(previousPropertyValues: PropertyValues) {\n // Also fires on first load as props go from undefined => value\n const refreshOnChangeProps = [...REQUIRED_DATA_PROPS, ...OPTIONAL_DATA_PROPS];\n if (refreshOnChangeProps.some((p) => previousPropertyValues.has(p))) {\n await this.transactionDataController.exec();\n }\n }\n\n handlePostTransaction = async () => {\n enforceConfig(REQUIRED_DATA_PROPS, this);\n\n if (!this.storeId && this.postalCode && this.countryCode && this.chainId) {\n const res = await getChainNonprofits({\n baseUrl: this.baseUrl,\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n queryParams: {\n postalCode: this.postalCode,\n countryCode: this.countryCode,\n widgetName: \"redeem-transaction\",\n version: \"1.0.0\",\n },\n pathParams: {\n chainId: this.chainId,\n },\n });\n this.storeId = res.store?.id;\n }\n\n const result = await postTransaction({\n baseUrl: this.baseUrl,\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n requestBody: {\n nonprofitId: this.nonprofitId ?? undefined,\n selectionId: this.selectionId ?? undefined,\n cartId: this.cartId ?? undefined,\n beamCartId: this.beamCartId ?? undefined,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n storeId: this.storeId!,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n email: this.email,\n currencyCode: this.currencyCode,\n postalCode: this.postalCode,\n countryCode: this.countryCode,\n cart: this.cart,\n discountCodes: this.discountCodes,\n },\n });\n\n this.transactionId = result.transactionId;\n this.chainId = result.chainId;\n this.userId = result.beamUserId;\n this.nonprofitId = result.nonprofitId;\n\n if (this.nonprofitId) {\n this.activeWidget = \"impact-overview\";\n } else {\n this.activeWidget = \"redeem-transaction\";\n }\n\n this.localStorage.removeItem(\"transaction\");\n this.localStorage.removeItem(\"cart\");\n deleteCookieValue({ name: BEAM_CART_COOKIE_NAME, path: \"/\", domain: this.domain });\n\n // Emit order created event only when order is registered with Beam for the first time\n if (result.transactionCreated) {\n dispatchEvent(\n new BeamOrderCreatedEvent({\n transactionId: result.transactionId,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n currencyCode: this.currencyCode,\n })\n );\n }\n\n return result;\n };\n\n private transactionDataController = new AsyncController<typeof this.handlePostTransaction>(\n this,\n this.handlePostTransaction\n );\n\n render() {\n if (this.transactionDataController.loading) {\n return \"\";\n }\n if (this.transactionDataController.error) {\n if (this.debug) {\n return _errorMessage({ error: this.transactionDataController.error });\n }\n return \"\";\n }\n if (this.activeWidget === \"redeem-transaction\") {\n return html`\n <beam-redeem-transaction\n part=\"redeem-transaction\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n chainId=\"${this.chainId}\"\n storeId=\"${this.storeId}\"\n transactionId=\"${this.transactionId}\"\n cart=\"${JSON.stringify(this.cart)}\"\n lang=\"${this.lang}\"\n ?debug=\"${this.debug}\"\n @beamnonprofitselect=\"${(event: Event) => {\n if (!(event instanceof CustomEvent)) return; // TS guard\n const { selectedNonprofitId } = (event as BeamNonprofitSelectEvent).detail;\n this.nonprofitId = selectedNonprofitId ?? null;\n this.activeWidget = \"impact-overview\";\n }}\"\n ></beam-redeem-transaction>\n `;\n }\n if (this.activeWidget === \"impact-overview\") {\n return html`\n <beam-impact-overview\n part=\"impact-overview\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n chainId=\"${this.chainId}\"\n userId=\"${this.userId}\"\n nonprofitId=\"${this.nonprofitId}\"\n lang=\"${this.lang}\"\n ?debug=\"${this.debug}\"\n ></beam-impact-overview>\n `;\n }\n return \"\";\n }\n\n static styles = [cssReset];\n}\n\ndefineCustomElement(BeamPostPurchase);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-post-purchase\": BeamPostPurchase;\n }\n}\n"],"names":["REQUIRED_DATA_PROPS","OPTIONAL_DATA_PROPS","BeamPostPurchase","LitElement","DEFAULT_BASE_URL","createScopedLocalStorage","enforceConfig","res","getChainNonprofits","result","postTransaction","deleteCookieValue","BEAM_CART_COOKIE_NAME","BeamOrderCreatedEvent","AsyncController","_changedProperties","getCookieValue","previousPropertyValues","p","_errorMessage","html","event","selectedNonprofitId","cssReset","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"post-purchase.esm.js","sources":["../../src/components/post-purchase/index.ts"],"sourcesContent":["import { html, LitElement, PropertyValues } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { state } from \"lit/decorators/state.js\";\nimport { deleteCookieValue, getCookieValue } from \"../../utils/cookies\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { createScopedLocalStorage } from \"../../utils/local-storage\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { DEFAULT_BASE_URL } from \"../../api-sdk/constants\";\nimport { postTransaction, postChainEligibleNonprofitsForCart } from \"../../api-sdk/v3/routes\";\nimport \"../redeem-transaction\";\nimport \"../impact-overview\";\nimport { BEAM_CART_COOKIE_NAME, TBeamCartLocalStorage, TCart } from \"../../shared/cart-contents\";\nimport { BeamNonprofitSelectEvent, BeamOrderCreatedEvent } from \"../../utils/events\";\n\nconst REQUIRED_DATA_PROPS = [\"baseUrl\", \"apiKey\", \"orderId\", \"email\", \"cartTotal\", \"currencyCode\", \"lang\"];\nconst OPTIONAL_DATA_PROPS = [\"storeId\", \"postalCode\", \"countryCode\", \"cart\", \"discountCodes\"];\n\nexport class BeamPostPurchase extends LitElement {\n static tagName = \"beam-post-purchase\";\n\n @property({ type: String })\n public baseUrl: string = DEFAULT_BASE_URL;\n\n @property({ type: String })\n public apiKey!: string;\n\n @property({ type: Number, reflect: true })\n public storeId?: number; // Either storeId or postalCode, countryCode must be provided\n\n @property({ type: String })\n public postalCode?: string;\n\n @property({ type: String })\n public countryCode?: string;\n\n @property({ type: String })\n public orderId!: string;\n\n @property({ type: String })\n public email!: string;\n\n @property({ type: Number })\n public cartTotal!: number;\n\n @property({ type: String })\n public currencyCode = \"USD\";\n\n @property({ type: String })\n public lang: LANGUAGES = \"en\";\n\n @property({ type: Object })\n public cart?: TCart;\n\n @property({ type: Array })\n public discountCodes?: string[];\n\n @property({ type: String })\n public domain?: string;\n\n @property({ type: Boolean })\n public debug = false;\n\n @state() private activeWidget: \"redeem-transaction\" | \"impact-overview\" | null = null; // wait for postTransaction\n @state() private nonprofitId: number | null = null; // from localStorage or redeem-transaction result\n @state() private selectionId: string | null = null; // from localStorage\n @state() private cartId: string | null = null; // from localStorage, external cart ID\n @state() private beamCartId: string | null = null; // from cookie, Beam cart ID\n @state() private userId: string | null = null; // from postTransaction\n @state() private transactionId: string | null = null; // from postTransaction\n @state() private chainId: number | null = null; // from postTransaction, used by impact-overview\n\n private localStorage = createScopedLocalStorage(this);\n\n firstUpdated(_changedProperties: PropertyValues) {\n enforceConfig(REQUIRED_DATA_PROPS, this);\n this.nonprofitId = Number(this.localStorage.getItem(\"nonprofit\")) || null;\n this.selectionId = this.localStorage.getItem(\"transaction\") || null;\n this.cartId = this.localStorage.getItemJson<TBeamCartLocalStorage>(\"cart\")?.cartId || null;\n // Reading beamCartId from cookies instead of localStorage allows it to work across subdomains\n this.beamCartId = getCookieValue(BEAM_CART_COOKIE_NAME) || null;\n\n if (this.selectionId && this.nonprofitId) {\n this.activeWidget = \"impact-overview\";\n }\n }\n\n async updated(previousPropertyValues: PropertyValues) {\n // Also fires on first load as props go from undefined => value\n const refreshOnChangeProps = [...REQUIRED_DATA_PROPS, ...OPTIONAL_DATA_PROPS];\n if (refreshOnChangeProps.some((p) => previousPropertyValues.has(p))) {\n await this.transactionDataController.exec();\n }\n }\n\n handlePostTransaction = async () => {\n enforceConfig(REQUIRED_DATA_PROPS, this);\n\n // Find storeId from postalCode + countryCode if it is not set\n if (!this.storeId && this.postalCode && this.countryCode) {\n const res = await postChainEligibleNonprofitsForCart({\n baseUrl: this.baseUrl,\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n requestBody: {\n postalCode: this.postalCode,\n countryCode: this.countryCode,\n widgetName: \"redeem-transaction\",\n version: \"1.0.0\",\n },\n });\n this.storeId = res.store?.id;\n }\n\n const result = await postTransaction({\n baseUrl: this.baseUrl,\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n requestBody: {\n nonprofitId: this.nonprofitId ?? undefined,\n selectionId: this.selectionId ?? undefined,\n cartId: this.cartId ?? undefined,\n beamCartId: this.beamCartId ?? undefined,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n storeId: this.storeId!,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n email: this.email,\n currencyCode: this.currencyCode,\n postalCode: this.postalCode,\n countryCode: this.countryCode,\n cart: this.cart,\n discountCodes: this.discountCodes,\n },\n });\n\n this.transactionId = result.transactionId;\n this.chainId = result.chainId;\n this.userId = result.beamUserId;\n this.nonprofitId = result.nonprofitId;\n\n if (this.nonprofitId) {\n this.activeWidget = \"impact-overview\";\n } else {\n this.activeWidget = \"redeem-transaction\";\n }\n\n this.localStorage.removeItem(\"transaction\");\n this.localStorage.removeItem(\"cart\");\n deleteCookieValue({ name: BEAM_CART_COOKIE_NAME, path: \"/\", domain: this.domain });\n\n // Emit order created event only when order is registered with Beam for the first time\n if (result.transactionCreated) {\n dispatchEvent(\n new BeamOrderCreatedEvent({\n transactionId: result.transactionId,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n currencyCode: this.currencyCode,\n })\n );\n }\n\n return result;\n };\n\n private transactionDataController = new AsyncController<typeof this.handlePostTransaction>(\n this,\n this.handlePostTransaction\n );\n\n render() {\n if (this.transactionDataController.loading) {\n return \"\";\n }\n if (this.transactionDataController.error) {\n if (this.debug) {\n return _errorMessage({ error: this.transactionDataController.error });\n }\n return \"\";\n }\n if (this.activeWidget === \"redeem-transaction\") {\n return html`\n <beam-redeem-transaction\n part=\"redeem-transaction\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n storeId=\"${this.storeId}\"\n transactionId=\"${this.transactionId}\"\n cart=\"${JSON.stringify(this.cart)}\"\n lang=\"${this.lang}\"\n ?debug=\"${this.debug}\"\n @beamnonprofitselect=\"${(event: Event) => {\n if (!(event instanceof CustomEvent)) return; // TS guard\n const { selectedNonprofitId } = (event as BeamNonprofitSelectEvent).detail;\n this.nonprofitId = selectedNonprofitId ?? null;\n this.activeWidget = \"impact-overview\";\n }}\"\n ></beam-redeem-transaction>\n `;\n }\n if (this.activeWidget === \"impact-overview\") {\n return html`\n <beam-impact-overview\n part=\"impact-overview\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n chainId=\"${this.chainId}\"\n userId=\"${this.userId}\"\n nonprofitId=\"${this.nonprofitId}\"\n lang=\"${this.lang}\"\n ?debug=\"${this.debug}\"\n ></beam-impact-overview>\n `;\n }\n return \"\";\n }\n\n static styles = [cssReset];\n}\n\ndefineCustomElement(BeamPostPurchase);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-post-purchase\": BeamPostPurchase;\n }\n}\n"],"names":["REQUIRED_DATA_PROPS","OPTIONAL_DATA_PROPS","BeamPostPurchase","LitElement","DEFAULT_BASE_URL","createScopedLocalStorage","enforceConfig","res","postChainEligibleNonprofitsForCart","result","postTransaction","deleteCookieValue","BEAM_CART_COOKIE_NAME","BeamOrderCreatedEvent","AsyncController","_changedProperties","getCookieValue","previousPropertyValues","p","_errorMessage","html","event","selectedNonprofitId","cssReset","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import{g as r,t as a,h as
|
|
1
|
+
import{g as r,t as a,h as I,y as l}from"../chunks/lit-yVXn5Cbs.esm.js";import{deleteCookieValue as u,getCookieValue as g}from"../utils/cookies.js";import{c as C,d as b,e as m,A as v,_ as f}from"../chunks/localize-dXHrlK8g.esm.js";import{createScopedLocalStorage as S}from"../utils/local-storage.js";import{D as $,b as U,c as w}from"../chunks/routes-0acj_R0M.esm.js";import"./redeem-transaction.js";import"./impact-overview.js";import{B as y}from"../chunks/cart-contents-h60geKWa.esm.js";import{b as K}from"../chunks/events-5IECSF-x.esm.js";import"../chunks/beam-errors-AMvTvR1C.esm.js";import"../utils/logger.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/progress-bar-7gWYaGlq.esm.js";import"./beam-partner-logos.js";import"../chunks/css-card-grid-3b56QBzq.esm.js";import"../chunks/vendor-eeJfrOkP.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/responsive-LYEag6TI.esm.js";var T=Object.defineProperty,A=Object.getOwnPropertyDescriptor,e=(d,o,i,n)=>{for(var s=n>1?void 0:n?A(o,i):o,c=d.length-1,p;c>=0;c--)(p=d[c])&&(s=(n?p(o,i,s):p(s))||s);return n&&s&&T(o,i,s),s};const h=["baseUrl","apiKey","orderId","email","cartTotal","currencyCode","lang"],E=["storeId","postalCode","countryCode","cart","discountCodes"];class t extends I{constructor(){super(...arguments),this.baseUrl=$,this.currencyCode="USD",this.lang="en",this.debug=!1,this.activeWidget=null,this.nonprofitId=null,this.selectionId=null,this.cartId=null,this.beamCartId=null,this.userId=null,this.transactionId=null,this.chainId=null,this.localStorage=S(this),this.handlePostTransaction=async()=>{if(m(h,this),!this.storeId&&this.postalCode&&this.countryCode){const i=await U({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{postalCode:this.postalCode,countryCode:this.countryCode,widgetName:"redeem-transaction",version:"1.0.0"}});this.storeId=i.store?.id}const o=await w({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{nonprofitId:this.nonprofitId??void 0,selectionId:this.selectionId??void 0,cartId:this.cartId??void 0,beamCartId:this.beamCartId??void 0,storeId:this.storeId,orderId:this.orderId,cartTotal:this.cartTotal,email:this.email,currencyCode:this.currencyCode,postalCode:this.postalCode,countryCode:this.countryCode,cart:this.cart,discountCodes:this.discountCodes}});return this.transactionId=o.transactionId,this.chainId=o.chainId,this.userId=o.beamUserId,this.nonprofitId=o.nonprofitId,this.nonprofitId?this.activeWidget="impact-overview":this.activeWidget="redeem-transaction",this.localStorage.removeItem("transaction"),this.localStorage.removeItem("cart"),u({name:y,path:"/",domain:this.domain}),o.transactionCreated&&dispatchEvent(new K({transactionId:o.transactionId,orderId:this.orderId,cartTotal:this.cartTotal,currencyCode:this.currencyCode})),o},this.transactionDataController=new v(this,this.handlePostTransaction)}firstUpdated(o){m(h,this),this.nonprofitId=Number(this.localStorage.getItem("nonprofit"))||null,this.selectionId=this.localStorage.getItem("transaction")||null,this.cartId=this.localStorage.getItemJson("cart")?.cartId||null,this.beamCartId=g(y)||null,this.selectionId&&this.nonprofitId&&(this.activeWidget="impact-overview")}async updated(o){[...h,...E].some(i=>o.has(i))&&await this.transactionDataController.exec()}render(){return this.transactionDataController.loading?"":this.transactionDataController.error?this.debug?f({error:this.transactionDataController.error}):"":this.activeWidget==="redeem-transaction"?l`
|
|
2
2
|
<beam-redeem-transaction
|
|
3
3
|
part="redeem-transaction"
|
|
4
4
|
baseUrl="${this.baseUrl}"
|
|
5
5
|
apiKey="${this.apiKey}"
|
|
6
|
-
chainId="${this.chainId}"
|
|
7
6
|
storeId="${this.storeId}"
|
|
8
7
|
transactionId="${this.transactionId}"
|
|
9
8
|
cart="${JSON.stringify(this.cart)}"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-purchase.js","sources":["../../src/components/post-purchase/index.ts"],"sourcesContent":["import { html, LitElement, PropertyValues } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { state } from \"lit/decorators/state.js\";\nimport { deleteCookieValue, getCookieValue } from \"../../utils/cookies\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { createScopedLocalStorage } from \"../../utils/local-storage\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { DEFAULT_BASE_URL } from \"../../api-sdk/constants\";\nimport { getChainNonprofits, postTransaction } from \"../../api-sdk/v3/routes\";\nimport \"../redeem-transaction\";\nimport \"../impact-overview\";\nimport { BEAM_CART_COOKIE_NAME, TBeamCartLocalStorage, TCart } from \"../../shared/cart-contents\";\nimport { BeamNonprofitSelectEvent, BeamOrderCreatedEvent } from \"../../utils/events\";\n\nconst REQUIRED_DATA_PROPS = [\"baseUrl\", \"apiKey\", \"orderId\", \"email\", \"cartTotal\", \"currencyCode\", \"lang\"];\nconst OPTIONAL_DATA_PROPS = [\"storeId\", \"postalCode\", \"countryCode\", \"cart\", \"discountCodes\"];\n\nexport class BeamPostPurchase extends LitElement {\n static tagName = \"beam-post-purchase\";\n\n @property({ type: String })\n public baseUrl: string = DEFAULT_BASE_URL;\n\n @property({ type: String })\n public apiKey!: string;\n\n @property({ type: Number, reflect: true })\n public storeId?: number; // Either storeId or postalCode, countryCode must be provided\n\n @property({ type: String })\n public postalCode?: string;\n\n @property({ type: String })\n public countryCode?: string;\n\n @property({ type: String })\n public orderId!: string;\n\n @property({ type: String })\n public email!: string;\n\n @property({ type: Number })\n public cartTotal!: number;\n\n @property({ type: String })\n public currencyCode = \"USD\";\n\n @property({ type: String })\n public lang: LANGUAGES = \"en\";\n\n @property({ type: Object })\n public cart?: TCart;\n\n @property({ type: Array })\n public discountCodes?: string[];\n\n @property({ type: String })\n public domain?: string;\n\n @property({ type: Boolean })\n public debug = false;\n\n @state() private activeWidget: \"redeem-transaction\" | \"impact-overview\" | null = null; // wait for postTransaction\n @state() private nonprofitId: number | null = null; // from localStorage or redeem-transaction result\n @state() private selectionId: string | null = null; // from localStorage\n @state() private cartId: string | null = null; // from localStorage, external cart ID\n @state() private beamCartId: string | null = null; // from cookie, Beam cart ID\n @state() private userId: string | null = null; // from postTransaction\n @state() private transactionId: string | null = null; // from postTransaction\n @state() private chainId: number | null = null; // from postTransaction, used by impact-overview\n\n private localStorage = createScopedLocalStorage(this);\n\n firstUpdated(_changedProperties: PropertyValues) {\n enforceConfig(REQUIRED_DATA_PROPS, this);\n this.nonprofitId = Number(this.localStorage.getItem(\"nonprofit\")) || null;\n this.selectionId = this.localStorage.getItem(\"transaction\") || null;\n this.cartId = this.localStorage.getItemJson<TBeamCartLocalStorage>(\"cart\")?.cartId || null;\n // Reading beamCartId from cookies instead of localStorage allows it to work across subdomains\n this.beamCartId = getCookieValue(BEAM_CART_COOKIE_NAME) || null;\n\n if (this.selectionId && this.nonprofitId) {\n this.activeWidget = \"impact-overview\";\n }\n }\n\n async updated(previousPropertyValues: PropertyValues) {\n // Also fires on first load as props go from undefined => value\n const refreshOnChangeProps = [...REQUIRED_DATA_PROPS, ...OPTIONAL_DATA_PROPS];\n if (refreshOnChangeProps.some((p) => previousPropertyValues.has(p))) {\n await this.transactionDataController.exec();\n }\n }\n\n handlePostTransaction = async () => {\n enforceConfig(REQUIRED_DATA_PROPS, this);\n\n if (!this.storeId && this.postalCode && this.countryCode && this.chainId) {\n const res = await getChainNonprofits({\n baseUrl: this.baseUrl,\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n queryParams: {\n postalCode: this.postalCode,\n countryCode: this.countryCode,\n widgetName: \"redeem-transaction\",\n version: \"1.0.0\",\n },\n pathParams: {\n chainId: this.chainId,\n },\n });\n this.storeId = res.store?.id;\n }\n\n const result = await postTransaction({\n baseUrl: this.baseUrl,\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n requestBody: {\n nonprofitId: this.nonprofitId ?? undefined,\n selectionId: this.selectionId ?? undefined,\n cartId: this.cartId ?? undefined,\n beamCartId: this.beamCartId ?? undefined,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n storeId: this.storeId!,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n email: this.email,\n currencyCode: this.currencyCode,\n postalCode: this.postalCode,\n countryCode: this.countryCode,\n cart: this.cart,\n discountCodes: this.discountCodes,\n },\n });\n\n this.transactionId = result.transactionId;\n this.chainId = result.chainId;\n this.userId = result.beamUserId;\n this.nonprofitId = result.nonprofitId;\n\n if (this.nonprofitId) {\n this.activeWidget = \"impact-overview\";\n } else {\n this.activeWidget = \"redeem-transaction\";\n }\n\n this.localStorage.removeItem(\"transaction\");\n this.localStorage.removeItem(\"cart\");\n deleteCookieValue({ name: BEAM_CART_COOKIE_NAME, path: \"/\", domain: this.domain });\n\n // Emit order created event only when order is registered with Beam for the first time\n if (result.transactionCreated) {\n dispatchEvent(\n new BeamOrderCreatedEvent({\n transactionId: result.transactionId,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n currencyCode: this.currencyCode,\n })\n );\n }\n\n return result;\n };\n\n private transactionDataController = new AsyncController<typeof this.handlePostTransaction>(\n this,\n this.handlePostTransaction\n );\n\n render() {\n if (this.transactionDataController.loading) {\n return \"\";\n }\n if (this.transactionDataController.error) {\n if (this.debug) {\n return _errorMessage({ error: this.transactionDataController.error });\n }\n return \"\";\n }\n if (this.activeWidget === \"redeem-transaction\") {\n return html`\n <beam-redeem-transaction\n part=\"redeem-transaction\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n chainId=\"${this.chainId}\"\n storeId=\"${this.storeId}\"\n transactionId=\"${this.transactionId}\"\n cart=\"${JSON.stringify(this.cart)}\"\n lang=\"${this.lang}\"\n ?debug=\"${this.debug}\"\n @beamnonprofitselect=\"${(event: Event) => {\n if (!(event instanceof CustomEvent)) return; // TS guard\n const { selectedNonprofitId } = (event as BeamNonprofitSelectEvent).detail;\n this.nonprofitId = selectedNonprofitId ?? null;\n this.activeWidget = \"impact-overview\";\n }}\"\n ></beam-redeem-transaction>\n `;\n }\n if (this.activeWidget === \"impact-overview\") {\n return html`\n <beam-impact-overview\n part=\"impact-overview\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n chainId=\"${this.chainId}\"\n userId=\"${this.userId}\"\n nonprofitId=\"${this.nonprofitId}\"\n lang=\"${this.lang}\"\n ?debug=\"${this.debug}\"\n ></beam-impact-overview>\n `;\n }\n return \"\";\n }\n\n static styles = [cssReset];\n}\n\ndefineCustomElement(BeamPostPurchase);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-post-purchase\": BeamPostPurchase;\n }\n}\n"],"names":["REQUIRED_DATA_PROPS","OPTIONAL_DATA_PROPS","BeamPostPurchase","LitElement","DEFAULT_BASE_URL","createScopedLocalStorage","enforceConfig","res","getChainNonprofits","result","postTransaction","deleteCookieValue","BEAM_CART_COOKIE_NAME","BeamOrderCreatedEvent","AsyncController","_changedProperties","getCookieValue","previousPropertyValues","p","_errorMessage","html","event","selectedNonprofitId","cssReset","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"post-purchase.js","sources":["../../src/components/post-purchase/index.ts"],"sourcesContent":["import { html, LitElement, PropertyValues } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { state } from \"lit/decorators/state.js\";\nimport { deleteCookieValue, getCookieValue } from \"../../utils/cookies\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { createScopedLocalStorage } from \"../../utils/local-storage\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { DEFAULT_BASE_URL } from \"../../api-sdk/constants\";\nimport { postTransaction, postChainEligibleNonprofitsForCart } from \"../../api-sdk/v3/routes\";\nimport \"../redeem-transaction\";\nimport \"../impact-overview\";\nimport { BEAM_CART_COOKIE_NAME, TBeamCartLocalStorage, TCart } from \"../../shared/cart-contents\";\nimport { BeamNonprofitSelectEvent, BeamOrderCreatedEvent } from \"../../utils/events\";\n\nconst REQUIRED_DATA_PROPS = [\"baseUrl\", \"apiKey\", \"orderId\", \"email\", \"cartTotal\", \"currencyCode\", \"lang\"];\nconst OPTIONAL_DATA_PROPS = [\"storeId\", \"postalCode\", \"countryCode\", \"cart\", \"discountCodes\"];\n\nexport class BeamPostPurchase extends LitElement {\n static tagName = \"beam-post-purchase\";\n\n @property({ type: String })\n public baseUrl: string = DEFAULT_BASE_URL;\n\n @property({ type: String })\n public apiKey!: string;\n\n @property({ type: Number, reflect: true })\n public storeId?: number; // Either storeId or postalCode, countryCode must be provided\n\n @property({ type: String })\n public postalCode?: string;\n\n @property({ type: String })\n public countryCode?: string;\n\n @property({ type: String })\n public orderId!: string;\n\n @property({ type: String })\n public email!: string;\n\n @property({ type: Number })\n public cartTotal!: number;\n\n @property({ type: String })\n public currencyCode = \"USD\";\n\n @property({ type: String })\n public lang: LANGUAGES = \"en\";\n\n @property({ type: Object })\n public cart?: TCart;\n\n @property({ type: Array })\n public discountCodes?: string[];\n\n @property({ type: String })\n public domain?: string;\n\n @property({ type: Boolean })\n public debug = false;\n\n @state() private activeWidget: \"redeem-transaction\" | \"impact-overview\" | null = null; // wait for postTransaction\n @state() private nonprofitId: number | null = null; // from localStorage or redeem-transaction result\n @state() private selectionId: string | null = null; // from localStorage\n @state() private cartId: string | null = null; // from localStorage, external cart ID\n @state() private beamCartId: string | null = null; // from cookie, Beam cart ID\n @state() private userId: string | null = null; // from postTransaction\n @state() private transactionId: string | null = null; // from postTransaction\n @state() private chainId: number | null = null; // from postTransaction, used by impact-overview\n\n private localStorage = createScopedLocalStorage(this);\n\n firstUpdated(_changedProperties: PropertyValues) {\n enforceConfig(REQUIRED_DATA_PROPS, this);\n this.nonprofitId = Number(this.localStorage.getItem(\"nonprofit\")) || null;\n this.selectionId = this.localStorage.getItem(\"transaction\") || null;\n this.cartId = this.localStorage.getItemJson<TBeamCartLocalStorage>(\"cart\")?.cartId || null;\n // Reading beamCartId from cookies instead of localStorage allows it to work across subdomains\n this.beamCartId = getCookieValue(BEAM_CART_COOKIE_NAME) || null;\n\n if (this.selectionId && this.nonprofitId) {\n this.activeWidget = \"impact-overview\";\n }\n }\n\n async updated(previousPropertyValues: PropertyValues) {\n // Also fires on first load as props go from undefined => value\n const refreshOnChangeProps = [...REQUIRED_DATA_PROPS, ...OPTIONAL_DATA_PROPS];\n if (refreshOnChangeProps.some((p) => previousPropertyValues.has(p))) {\n await this.transactionDataController.exec();\n }\n }\n\n handlePostTransaction = async () => {\n enforceConfig(REQUIRED_DATA_PROPS, this);\n\n // Find storeId from postalCode + countryCode if it is not set\n if (!this.storeId && this.postalCode && this.countryCode) {\n const res = await postChainEligibleNonprofitsForCart({\n baseUrl: this.baseUrl,\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n requestBody: {\n postalCode: this.postalCode,\n countryCode: this.countryCode,\n widgetName: \"redeem-transaction\",\n version: \"1.0.0\",\n },\n });\n this.storeId = res.store?.id;\n }\n\n const result = await postTransaction({\n baseUrl: this.baseUrl,\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n requestBody: {\n nonprofitId: this.nonprofitId ?? undefined,\n selectionId: this.selectionId ?? undefined,\n cartId: this.cartId ?? undefined,\n beamCartId: this.beamCartId ?? undefined,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n storeId: this.storeId!,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n email: this.email,\n currencyCode: this.currencyCode,\n postalCode: this.postalCode,\n countryCode: this.countryCode,\n cart: this.cart,\n discountCodes: this.discountCodes,\n },\n });\n\n this.transactionId = result.transactionId;\n this.chainId = result.chainId;\n this.userId = result.beamUserId;\n this.nonprofitId = result.nonprofitId;\n\n if (this.nonprofitId) {\n this.activeWidget = \"impact-overview\";\n } else {\n this.activeWidget = \"redeem-transaction\";\n }\n\n this.localStorage.removeItem(\"transaction\");\n this.localStorage.removeItem(\"cart\");\n deleteCookieValue({ name: BEAM_CART_COOKIE_NAME, path: \"/\", domain: this.domain });\n\n // Emit order created event only when order is registered with Beam for the first time\n if (result.transactionCreated) {\n dispatchEvent(\n new BeamOrderCreatedEvent({\n transactionId: result.transactionId,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n currencyCode: this.currencyCode,\n })\n );\n }\n\n return result;\n };\n\n private transactionDataController = new AsyncController<typeof this.handlePostTransaction>(\n this,\n this.handlePostTransaction\n );\n\n render() {\n if (this.transactionDataController.loading) {\n return \"\";\n }\n if (this.transactionDataController.error) {\n if (this.debug) {\n return _errorMessage({ error: this.transactionDataController.error });\n }\n return \"\";\n }\n if (this.activeWidget === \"redeem-transaction\") {\n return html`\n <beam-redeem-transaction\n part=\"redeem-transaction\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n storeId=\"${this.storeId}\"\n transactionId=\"${this.transactionId}\"\n cart=\"${JSON.stringify(this.cart)}\"\n lang=\"${this.lang}\"\n ?debug=\"${this.debug}\"\n @beamnonprofitselect=\"${(event: Event) => {\n if (!(event instanceof CustomEvent)) return; // TS guard\n const { selectedNonprofitId } = (event as BeamNonprofitSelectEvent).detail;\n this.nonprofitId = selectedNonprofitId ?? null;\n this.activeWidget = \"impact-overview\";\n }}\"\n ></beam-redeem-transaction>\n `;\n }\n if (this.activeWidget === \"impact-overview\") {\n return html`\n <beam-impact-overview\n part=\"impact-overview\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n chainId=\"${this.chainId}\"\n userId=\"${this.userId}\"\n nonprofitId=\"${this.nonprofitId}\"\n lang=\"${this.lang}\"\n ?debug=\"${this.debug}\"\n ></beam-impact-overview>\n `;\n }\n return \"\";\n }\n\n static styles = [cssReset];\n}\n\ndefineCustomElement(BeamPostPurchase);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-post-purchase\": BeamPostPurchase;\n }\n}\n"],"names":["REQUIRED_DATA_PROPS","OPTIONAL_DATA_PROPS","BeamPostPurchase","LitElement","DEFAULT_BASE_URL","createScopedLocalStorage","enforceConfig","res","postChainEligibleNonprofitsForCart","result","postTransaction","deleteCookieValue","BEAM_CART_COOKIE_NAME","BeamOrderCreatedEvent","AsyncController","_changedProperties","getCookieValue","previousPropertyValues","p","_errorMessage","html","event","selectedNonprofitId","cssReset","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
|
|
@@ -5,20 +5,18 @@ import * as lodash from 'lodash';
|
|
|
5
5
|
import '../chunks/progress-bar-0VS_AmEf.esm.js';
|
|
6
6
|
import './beam-partner-logos.js';
|
|
7
7
|
import { b as TNumericId, c as TId } from '../chunks/types-7kSi85Gv.esm.js';
|
|
8
|
-
import { T as TCart } from '../chunks/cart-contents-
|
|
8
|
+
import { T as TCart } from '../chunks/cart-contents-tEvcY9ip.esm.js';
|
|
9
9
|
import { L as LANGUAGES } from '../chunks/types-aju0qrRe.esm.js';
|
|
10
|
-
import '../chunks/openapi-spec-
|
|
10
|
+
import '../chunks/openapi-spec-tJkr2i9K.esm.js';
|
|
11
11
|
|
|
12
12
|
interface RequiredConfig {
|
|
13
13
|
apiKey: string;
|
|
14
|
-
chainId: TNumericId;
|
|
15
14
|
transactionId: TId;
|
|
16
15
|
}
|
|
17
16
|
declare class BeamRedeemTransaction extends LitElement {
|
|
18
17
|
static tagName: string;
|
|
19
18
|
baseUrl: string;
|
|
20
19
|
apiKey?: RequiredConfig["apiKey"];
|
|
21
|
-
chainId?: RequiredConfig["chainId"];
|
|
22
20
|
transactionId?: RequiredConfig["transactionId"];
|
|
23
21
|
storeId?: TNumericId;
|
|
24
22
|
countryCode?: string;
|
|
@@ -63,7 +61,7 @@ declare class BeamRedeemTransaction extends LitElement {
|
|
|
63
61
|
static styles: lit.CSSResult[];
|
|
64
62
|
private handleChooseClick;
|
|
65
63
|
get shouldCollapse(): boolean;
|
|
66
|
-
protected render(): lit_html.TemplateResult<1
|
|
64
|
+
protected render(): "" | lit_html.TemplateResult<1>;
|
|
67
65
|
}
|
|
68
66
|
declare global {
|
|
69
67
|
interface HTMLElementTagNameMap {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{y as m,m as y,f as S,g as c,t as k,h as $,q as v,p as z,k as D}from"../chunks/lit-yVXn5Cbs.esm.js";import{d as N}from"../chunks/lodash-P8OIs-at.esm.js";import{c as
|
|
1
|
+
import{y as m,m as y,f as S,g as c,t as k,h as $,q as v,p as z,k as D}from"../chunks/lit-yVXn5Cbs.esm.js";import{d as N}from"../chunks/lodash-P8OIs-at.esm.js";import{c as L,u,d as E,e as x,A as B,b as h,f as I,a as W,_ as R,i as p}from"../chunks/localize-BGPniqcI.esm.js";import{D as U,b as P,h as A,S as M}from"../chunks/routes-dou9TIdY.esm.js";import{p as F}from"../chunks/progress-bar-7gWYaGlq.esm.js";import{partnerLogosConfigDefaults as j}from"./beam-partner-logos.esm.js";import{B as O}from"../chunks/beam-errors-AMvTvR1C.esm.js";import{createScopedLocalStorage as K}from"../utils/local-storage.esm.js";import{c as _}from"../chunks/css-card-grid-3b56QBzq.esm.js";import{c as V}from"../chunks/events-5IECSF-x.esm.js";import"../utils/logger.esm.js";const H=({height:i="1em",width:e="1em"}={})=>m`
|
|
2
2
|
<svg
|
|
3
3
|
style="${y({height:i,width:e,position:"relative",bottom:"0"})}"
|
|
4
4
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -13,7 +13,7 @@ import{y as m,m as y,f as S,g as c,t as k,h as $,q as v,p as z,k as D}from"../ch
|
|
|
13
13
|
/>
|
|
14
14
|
</g>
|
|
15
15
|
</svg>
|
|
16
|
-
`,f={en:{beamAttribution:()=>"Powered by Beam",ctaTitle:()=>"Choose your impact",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",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",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",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:()=>"Confirmado",chooseButtonText:()=>"Elige"},it:{ctaTitle:()=>"Scegli dove fare la differenza",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",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 q=Object.defineProperty,G=Object.getOwnPropertyDescriptor,s=(i,e,t,o)=>{for(var a=o>1?void 0:o?G(e,t):e,l=i.length-1,d;l>=0;l--)(d=i[l])&&(a=(o?d(e,t,a):d(a))||a);return o&&a&&q(e,t,a),a};class n extends ${constructor(){super(...arguments),this.baseUrl=U,this.lang="en",this.debug=!1,this.isMobile=window.innerWidth<768,this.didUserExpandNonprofits=!1,this.getChainNonprofits=async()=>{x(["apiKey","chainId","transactionId"],this);const e=await P({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{chainId:this.chainId,storeId:this.storeId,postalCode:this.postalCode,countryCode:this.countryCode,cart:this.cart??void 0,widgetName:"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.putTransaction=async({selectedNonprofitId:e})=>(x(["apiKey","transactionId"],this),A({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},pathParams:{transactionId:Number(this.transactionId)},requestBody:{nonprofitId:e}})),this.nonprofitListDataController=new B(this,this.getChainNonprofits),this.selectionDataController=new B(this,this.putTransaction),this.localStorage=K(this),this.makeHandleSelect=(e,t,o)=>async a=>{if(!this.allowChange)return;const l=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(l===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.localStorage.setItem("nonprofit",e);const t=this.nonprofitListDataController?.data?.nonprofits.find(o=>o.nonprofit.id===e);this.dispatchEvent(new V({selectedNonprofitId:e,nonprofitName:t?.nonprofit.name}))},this.evaluateBreakPoints=N(()=>{this.isMobile=window.innerWidth<768},50,{maxWait:50,leading:!0})}get configLang(){return M[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.evaluateBreakPoints)}async firstUpdated(e){await this.restoreStateFromCache()}async updated(e){const t=["chainId","baseUrl","storeId","apiKey","countryCode","postalCode","lang"];for(const o of t)if(e.has(o)){await this.nonprofitListDataController.exec();break}}disconnectedCallback(){super.disconnectedCallback()}restoreStateFromCache(){x(["apiKey","chainId"],this),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 cssVariables(){const e={"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit",...j,...F,"--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",...h("--beam-RedeemTransaction-title",{fontSize:"1.25em",fontWeight:"bold"}),...h("--beam-RedeemTransaction-description",{marginTop:"0.5em"}),...h("--beam-RedeemTransaction-details-cause",{fontSize:"1em",fontWeight:"bold"}),...h("--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",...h("--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 E(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 W();if(this.nonprofitListDataController.error)return this.debug?R({error:this.nonprofitListDataController.error}):"";if(this.selectionDataController.error&&this.debug)return R({error:this.selectionDataController.error});if(t==null)return this.debug?R({error:new O("No data")}):"";const a=t?.nonprofits||[],l=a.find(r=>r.nonprofit.id===e)||null,d=this.cssVariables["--beam-RedeemTransaction-cardStyle"]==="'icon'",b=this.cssVariables["--beam-RedeemTransaction-submitButton-position"],C=this.isMobile&&b==="bottom"?"positionBottom":"positionRight";return m`
|
|
16
|
+
`,f={en:{beamAttribution:()=>"Powered by Beam",ctaTitle:()=>"Choose your impact",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",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",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",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:()=>"Confirmado",chooseButtonText:()=>"Elige"},it:{ctaTitle:()=>"Scegli dove fare la differenza",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",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 q=Object.defineProperty,G=Object.getOwnPropertyDescriptor,d=(i,e,t,o)=>{for(var a=o>1?void 0:o?G(e,t):e,l=i.length-1,s;l>=0;l--)(s=i[l])&&(a=(o?s(e,t,a):s(a))||a);return o&&a&&q(e,t,a),a};class n extends ${constructor(){super(...arguments),this.baseUrl=U,this.lang="en",this.debug=!1,this.isMobile=window.innerWidth<768,this.didUserExpandNonprofits=!1,this.getChainNonprofits=async()=>{x(["apiKey","transactionId"],this);const e=await P({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:"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.putTransaction=async({selectedNonprofitId:e})=>(x(["apiKey","transactionId"],this),A({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},pathParams:{transactionId:Number(this.transactionId)},requestBody:{nonprofitId:e}})),this.nonprofitListDataController=new B(this,this.getChainNonprofits),this.selectionDataController=new B(this,this.putTransaction),this.localStorage=K(this),this.makeHandleSelect=(e,t,o)=>async a=>{if(!this.allowChange)return;const l=this.selectedNonprofitId;if(a instanceof KeyboardEvent){let s=null;switch(a.key){case"ArrowUp":case"ArrowLeft":t===0?s=o[o.length-1]:s=o[t-1],a.preventDefault();break;case"ArrowRight":case"ArrowDown":t===o.length-1?s=o[0]:s=o[t+1],a.preventDefault();break;case"Enter":case" ":a.preventDefault();break;default:return}if(s){const b=this.renderRoot.querySelector(`[data-value="${s.nonprofit.id}"]`);b!==null&&(b.tabIndex=0,b.focus());return}}if(a.currentTarget instanceof HTMLElement){if(l===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.localStorage.setItem("nonprofit",e);const t=this.nonprofitListDataController?.data?.nonprofits.find(o=>o.nonprofit.id===e);this.dispatchEvent(new V({selectedNonprofitId:e,nonprofitName:t?.nonprofit.name}))},this.evaluateBreakPoints=N(()=>{this.isMobile=window.innerWidth<768},50,{maxWait:50,leading:!0})}get configLang(){return M[this.lang]||"en"}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(){x(["apiKey"],this),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 cssVariables(){const e={"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit",...j,...F,"--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",...h("--beam-RedeemTransaction-title",{fontSize:"1.25em",fontWeight:"bold"}),...h("--beam-RedeemTransaction-description",{marginTop:"0.5em"}),...h("--beam-RedeemTransaction-details-cause",{fontSize:"1em",fontWeight:"bold"}),...h("--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",...h("--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 I(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 W();if(this.nonprofitListDataController.error)return this.debug?R({error:this.nonprofitListDataController.error}):"";if(this.selectionDataController.error&&this.debug)return R({error:this.selectionDataController.error});if(t==null)return this.debug?R({error:new O("No data")}):"";const a=t?.nonprofits||[],l=a.find(r=>r.nonprofit.id===e)||null,s=this.cssVariables["--beam-RedeemTransaction-cardStyle"]==="'icon'",b=this.cssVariables["--beam-RedeemTransaction-submitButton-position"],C=this.isMobile&&b==="bottom"?"positionBottom":"positionRight";return m`
|
|
17
17
|
<style>
|
|
18
18
|
:host {
|
|
19
19
|
${this.cssVariables.toCSS()}
|
|
@@ -43,7 +43,7 @@ import{y as m,m as y,f as S,g as c,t as k,h as $,q as v,p as z,k as D}from"../ch
|
|
|
43
43
|
aria-label="${p(this.configLang,r.nonprofit.cause||"")}"
|
|
44
44
|
style="${y({display:"flex",gap:"15px",padding:"10px"})}"
|
|
45
45
|
>
|
|
46
|
-
${
|
|
46
|
+
${s?m` <div style="height: 100%; flex: 1; flex-direction: column;">
|
|
47
47
|
<img
|
|
48
48
|
src="${r.nonprofit.causeIconUrl}"
|
|
49
49
|
alt=""
|
|
@@ -170,7 +170,7 @@ import{y as m,m as y,f as S,g as c,t as k,h as $,q as v,p as z,k as D}from"../ch
|
|
|
170
170
|
style="order: 1"
|
|
171
171
|
></beam-partner-logos>
|
|
172
172
|
</div>
|
|
173
|
-
`}}n.tagName="beam-redeem-transaction",n.styles=[
|
|
173
|
+
`}}n.tagName="beam-redeem-transaction",n.styles=[L,S`
|
|
174
174
|
:host {
|
|
175
175
|
display: block;
|
|
176
176
|
max-width: var(--beam-RedeemTransaction-maxWidth, 1000px);
|
|
@@ -300,5 +300,5 @@ import{y as m,m as y,f as S,g as c,t as k,h as $,q as v,p as z,k as D}from"../ch
|
|
|
300
300
|
font-weight: var(--beam-RedeemTransaction-details-nonprofitName-fontWeight, bold);
|
|
301
301
|
font-style: var(--beam-RedeemTransaction-details-nonprofitName-fontStyle, inherit);
|
|
302
302
|
}
|
|
303
|
-
`,_({gap:"20px",itemMinWidth:"var(--beam-RedeemTransaction-options-minWidth, 250px)",columnCount:"var(--beam-RedeemTransaction-options-columnCount, 2)"})],
|
|
303
|
+
`,_({gap:"20px",itemMinWidth:"var(--beam-RedeemTransaction-options-minWidth, 250px)",columnCount:"var(--beam-RedeemTransaction-options-columnCount, 2)"})],d([c({type:String})],n.prototype,"baseUrl",2),d([c({type:String})],n.prototype,"apiKey",2),d([c({type:Number})],n.prototype,"transactionId",2),d([c({type:Number})],n.prototype,"storeId",2),d([c({type:String})],n.prototype,"countryCode",2),d([c({type:String})],n.prototype,"postalCode",2),d([c({type:Object})],n.prototype,"cart",2),d([c({type:Number,reflect:!0})],n.prototype,"selectedNonprofitId",2),d([c({type:String})],n.prototype,"lang",2),d([c({type:Boolean})],n.prototype,"debug",2),d([k()],n.prototype,"isMobile",2),d([k()],n.prototype,"didUserExpandNonprofits",2),E(n);export{n as BeamRedeemTransaction};
|
|
304
304
|
//# sourceMappingURL=redeem-transaction.esm.js.map
|