@beamimpact/web-sdk 1.58.1 → 1.58.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/chunks/{_share-dialog-dependencies-DPid-O65.esm.js → _share-dialog-dependencies-C3oAeUgm.esm.js} +2 -2
  2. package/dist/chunks/{_share-dialog-dependencies-DPid-O65.esm.js.map → _share-dialog-dependencies-C3oAeUgm.esm.js.map} +1 -1
  3. package/dist/chunks/{index-DnFFgYbT.esm.js → index-B2GUlwwp.esm.js} +2 -2
  4. package/dist/chunks/{index-DnFFgYbT.esm.js.map → index-B2GUlwwp.esm.js.map} +1 -1
  5. package/dist/chunks/{index-BygeMtqf.esm.js → index-BhlTVL8_.esm.js} +2 -2
  6. package/dist/chunks/{index-BygeMtqf.esm.js.map → index-BhlTVL8_.esm.js.map} +1 -1
  7. package/dist/chunks/{index-tkscjKkq.esm.js → index-BlaOItQr.esm.js} +2 -2
  8. package/dist/chunks/{index-tkscjKkq.esm.js.map → index-BlaOItQr.esm.js.map} +1 -1
  9. package/dist/chunks/{index-BiOlmhqL.esm.js → index-BtG64tE0.esm.js} +2 -2
  10. package/dist/chunks/{index-BiOlmhqL.esm.js.map → index-BtG64tE0.esm.js.map} +1 -1
  11. package/dist/chunks/{index-lSPlMuMz.esm.js → index-C6QfHWnX.esm.js} +2 -2
  12. package/dist/chunks/{index-lSPlMuMz.esm.js.map → index-C6QfHWnX.esm.js.map} +1 -1
  13. package/dist/chunks/{index-C8pScO8d.esm.js → index-DC8IegOb.esm.js} +2 -2
  14. package/dist/chunks/{index-C8pScO8d.esm.js.map → index-DC8IegOb.esm.js.map} +1 -1
  15. package/dist/chunks/{index-CsNyA6Px.esm.js → index-PWwahCdj.esm.js} +2 -2
  16. package/dist/chunks/{index-CsNyA6Px.esm.js.map → index-PWwahCdj.esm.js.map} +1 -1
  17. package/dist/chunks/{index-U1QpwjdF.esm.js → index-hCVICwBS.esm.js} +2 -2
  18. package/dist/chunks/{index-U1QpwjdF.esm.js.map → index-hCVICwBS.esm.js.map} +1 -1
  19. package/dist/chunks/{promo-pill-label-DYR3PZH7.esm.js → promo-pill-label-rA01UjBk.esm.js} +2 -2
  20. package/dist/chunks/{promo-pill-label-DYR3PZH7.esm.js.map → promo-pill-label-rA01UjBk.esm.js.map} +1 -1
  21. package/dist/chunks/{share-button-DP2wLhmP.esm.js → share-button-BxrZs18u.esm.js} +2 -2
  22. package/dist/chunks/{share-button-DP2wLhmP.esm.js.map → share-button-BxrZs18u.esm.js.map} +1 -1
  23. package/dist/chunks/{share-button-CqrSfHAr.esm.js → share-button-DQT2zQ7w.esm.js} +3 -2
  24. package/dist/chunks/{share-button-CqrSfHAr.esm.js.map → share-button-DQT2zQ7w.esm.js.map} +1 -1
  25. package/dist/components/community-impact.esm.js +1 -1
  26. package/dist/components/community-impact.js +1 -1
  27. package/dist/components/cumulative-impact.esm.js +1 -1
  28. package/dist/components/cumulative-impact.js +1 -1
  29. package/dist/components/impact-overview.esm.js +1 -1
  30. package/dist/components/impact-overview.js +1 -1
  31. package/dist/components/index.esm.js +1 -1
  32. package/dist/components/index.js +1 -1
  33. package/dist/components/post-purchase.esm.js +1 -1
  34. package/dist/components/post-purchase.js +1 -1
  35. package/dist/components/product-details-page.esm.js +1 -1
  36. package/dist/components/product-details-page.js +1 -1
  37. package/dist/components/redeem-transaction.esm.js +1 -1
  38. package/dist/components/redeem-transaction.js +1 -1
  39. package/dist/components/select-nonprofit.esm.js +1 -1
  40. package/dist/components/select-nonprofit.js +1 -1
  41. package/dist/components/select-subscription-nonprofit.esm.js +1 -1
  42. package/dist/components/select-subscription-nonprofit.js +1 -1
  43. package/dist/components/shopify.esm.js +1 -1
  44. package/dist/components/shopify.js +1 -1
  45. package/dist/components/social-share.esm.js +1 -1
  46. package/dist/components/social-share.js +1 -1
  47. package/dist/components/subscriber-select-nonprofit.esm.js +1 -1
  48. package/dist/components/subscriber-select-nonprofit.js +1 -1
  49. package/dist/components/subscription-impact.d.ts +1 -0
  50. package/dist/components/subscription-impact.esm.js +18 -17
  51. package/dist/components/subscription-impact.esm.js.map +1 -1
  52. package/dist/components/subscription-impact.js +18 -17
  53. package/dist/components/subscription-impact.js.map +1 -1
  54. package/dist/components/subscription-management.d.ts +2 -0
  55. package/dist/components/subscription-management.esm.js +19 -17
  56. package/dist/components/subscription-management.esm.js.map +1 -1
  57. package/dist/components/subscription-management.js +19 -17
  58. package/dist/components/subscription-management.js.map +1 -1
  59. package/dist/index.esm.js +1 -1
  60. package/dist/index.js +1 -1
  61. package/dist/integrations/beam.esm.js +1 -1
  62. package/dist/integrations/beam.js +1 -1
  63. package/dist/integrations/cart.esm.js +1 -1
  64. package/dist/integrations/cart.js +1 -1
  65. package/dist/integrations/logs.esm.js +1 -1
  66. package/dist/integrations/logs.js +1 -1
  67. package/dist/integrations/shopify-order.esm.js +1 -1
  68. package/dist/integrations/shopify-order.js +1 -1
  69. package/dist/integrations/shopify.esm.js +1 -1
  70. package/dist/integrations/shopify.js +1 -1
  71. package/dist/integrations/statsig.esm.js +14 -14
  72. package/dist/integrations/statsig.esm.js.map +1 -1
  73. package/dist/integrations/statsig.js +14 -14
  74. package/dist/integrations/statsig.js.map +1 -1
  75. package/dist/react/community-impact.esm.js +1 -1
  76. package/dist/react/community-impact.js +1 -1
  77. package/dist/react/cumulative-impact.esm.js +1 -1
  78. package/dist/react/cumulative-impact.js +1 -1
  79. package/dist/react/impact-overview.esm.js +1 -1
  80. package/dist/react/impact-overview.js +1 -1
  81. package/dist/react/index.esm.js +1 -1
  82. package/dist/react/index.js +1 -1
  83. package/dist/react/post-purchase.esm.js +1 -1
  84. package/dist/react/post-purchase.js +1 -1
  85. package/dist/react/product-details-page.esm.js +1 -1
  86. package/dist/react/product-details-page.js +1 -1
  87. package/dist/react/redeem-transaction.esm.js +1 -1
  88. package/dist/react/redeem-transaction.js +1 -1
  89. package/dist/react/select-nonprofit.esm.js +1 -1
  90. package/dist/react/select-nonprofit.js +1 -1
  91. package/dist/react/select-subscription-nonprofit.esm.js +1 -1
  92. package/dist/react/select-subscription-nonprofit.js +1 -1
  93. package/dist/react/social-share.esm.js +1 -1
  94. package/dist/react/social-share.js +1 -1
  95. package/dist/react/subscriber-select-nonprofit.esm.js +1 -1
  96. package/dist/react/subscriber-select-nonprofit.js +1 -1
  97. package/dist/react/subscription-impact.esm.js +1 -1
  98. package/dist/react/subscription-impact.js +1 -1
  99. package/dist/react/subscription-management.esm.js +1 -1
  100. package/dist/react/subscription-management.js +1 -1
  101. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index-U1QpwjdF.esm.js","sources":["../../src/components/post-purchase/index.ts","../../src/integrations/shopify-order/order.ts"],"sourcesContent":["import { html, LitElement, PropertyValues } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { state } from \"lit/decorators/state.js\";\nimport { BeamError, MissingConfig } from \"../../utils/beam-errors\";\nimport { deleteCookieValue, getCookieValue } from \"../../utils/cookies\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { createScopedLocalStorage } from \"../../utils/local-storage\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { DEFAULT_BASE_URL, LOCAL_STORAGE_KEYS } from \"../../api-sdk/constants\";\nimport { postTransaction, updateTransaction } from \"../../api-sdk/v4/routes\";\nimport \"../redeem-transaction\";\nimport \"../impact-overview\";\nimport { BEAM_CART_COOKIE_NAME, TBeamCartLocalStorage, TCart } from \"../../shared/cart-contents\";\nimport { BeamNonprofitSelectEvent, BeamOrderCreatedEvent } from \"../../utils/events\";\nimport {\n isEmptyPromoData,\n parseJsonStringArray,\n formatStoreAndReturnPromoCodes,\n getAllPromoCodesFromCookie,\n mapToUnvalidatedPromoCodes,\n} from \"../../utils/promoManager\";\nimport { PROMO_CODES_COOKIE_NAME, PROMO_LOCAL_STORAGE_KEY, TPromoCodeRequest } from \"../../shared/promo-types\";\nimport { getRemoteSession } from \"../../utils/remote-session\";\nimport { logger } from \"../../utils/logger\";\n\nconst REQUIRED_DATA_PROPS = [\"baseUrl\", \"apiKey\", \"orderId\", \"cartTotal\", \"currencyCode\", \"lang\"];\nconst OPTIONAL_DATA_PROPS = [\n \"storeId\",\n \"postalCode\",\n \"countryCode\",\n \"cart\",\n \"discountCodes\",\n \"promoCodes\",\n \"htmlPromoCodes\",\n \"email\",\n \"partnerUserId\",\n \"remoteSessionId\",\n];\n\nexport class BeamPostPurchase extends LitElement {\n static tagName = \"beam-post-purchase\";\n\n @property({ type: String })\n public baseUrl: string = DEFAULT_BASE_URL;\n\n @property({ type: String })\n public apiKey!: string;\n\n @property({ type: Number, reflect: true })\n public storeId?: number; // Either storeId or postalCode, countryCode must be provided\n\n @property({ type: String })\n public postalCode?: string;\n\n @property({ type: String })\n public countryCode?: string;\n\n @property({ type: String })\n public orderId!: string;\n\n /**\n * Either email or partnerUserId is required\n */\n @property({ type: String })\n public email?: string;\n\n /**\n * Either email or partnerUserId is required\n */\n @property({ type: String })\n public partnerUserId?: string;\n\n @property({ type: Number })\n public cartTotal!: number;\n\n @property({ type: String })\n public currencyCode = \"USD\";\n\n @property({ type: String })\n public lang: LANGUAGES = \"en\";\n\n @property({ type: Object })\n public cart?: TCart;\n\n /**\n * @deprecated Use `promoCodes` instead. `discountCodes` is retained for backward compatibility\n */\n @property({ type: Array })\n public discountCodes?: string[];\n\n @property({ type: Array })\n public promoCodes?: string[];\n\n @property({ type: String })\n public htmlPromoCodes?: string;\n\n @property({ type: String })\n public domain?: string;\n\n @property({ type: String })\n public remoteSessionId?: string;\n\n @property({ type: Boolean })\n public debug = false;\n\n @state() private activeWidget: \"redeem-transaction\" | \"impact-overview\" | null = null; // wait for postTransaction\n @state() private nonprofitId: number | null = null; // from localStorage or redeem-transaction result\n @state() private selectionId: string | null = null; // from localStorage\n @state() private cartId: string | null = null; // from localStorage, external cart ID\n @state() private beamCartId: string | null = null; // from cookie, Beam cart ID\n @state() private userId: string | null = null; // from postTransaction\n @state() private transactionId: string | null = null; // from postTransaction\n @state() private excludeDonationsForRecurringTransactions = false;\n @state() private creationMethod = \"\";\n @state() private orderProcessedAt = \"\";\n @property({ type: Boolean }) public draftConfig = false;\n\n private localStorage = createScopedLocalStorage(this);\n\n get parsedPromoCodes(): string[] {\n return parseJsonStringArray(this.htmlPromoCodes);\n }\n\n updateComponentState() {\n // Delete selectionId if it was saved with an invalid string (bug introduced v1.54.0)\n if (this.localStorage.getItem(\"transaction\")?.toLocaleLowerCase() === \"undefined\") {\n this.localStorage.removeItem(\"transaction\");\n }\n\n this.selectionId = this.selectionId || this.localStorage.getItem(\"transaction\") || null;\n this.cartId = this.cartId || this.localStorage.getItemJson<TBeamCartLocalStorage>(\"cart\")?.cartId || null;\n // Reading beamCartId from cookies instead of localStorage allows it to work across subdomains\n this.beamCartId =\n this.beamCartId ||\n this.localStorage.getItemJson<TBeamCartLocalStorage>(\"cart\")?.beamCartId ||\n getCookieValue(BEAM_CART_COOKIE_NAME) ||\n null;\n\n if (this.selectionId && this.nonprofitId) {\n this.activeWidget = \"impact-overview\";\n }\n }\n\n firstUpdated(_changedProperties: PropertyValues) {\n this.enforceConfig();\n this.updateComponentState();\n }\n\n async updated(previousPropertyValues: PropertyValues) {\n // Also fires on first load as props go from undefined => value\n const refreshOnChangeProps = [...REQUIRED_DATA_PROPS, ...OPTIONAL_DATA_PROPS];\n if (refreshOnChangeProps.some((p) => previousPropertyValues.has(p))) {\n await this.transactionDataController.exec();\n }\n }\n\n enforceConfig() {\n enforceConfig(REQUIRED_DATA_PROPS, this);\n if (!this.email && !this.partnerUserId) {\n throw new MissingConfig(\n [this.email ? \"\" : \"email\", this.partnerUserId ? \"\" : \"partnerUserId\"].filter(Boolean),\n \"At least one of [email, partnerUserId] must be provided\",\n );\n }\n }\n\n private getManualPromoCodes(): string[] {\n if (this.parsedPromoCodes?.length) {\n return this.parsedPromoCodes;\n }\n if (this.promoCodes?.length) {\n return this.promoCodes;\n }\n return [];\n }\n\n handlePostTransaction = async () => {\n this.enforceConfig();\n this.updateComponentState();\n\n const manualPromoCodes = this.getManualPromoCodes();\n const formattedPromosFromLocalStorage = formatStoreAndReturnPromoCodes(\n manualPromoCodes.map((code) => ({ value: code })),\n this.apiKey,\n );\n\n const promoCookieData = getAllPromoCodesFromCookie();\n const formattedPromosFromCookie: TPromoCodeRequest = {\n unvalidatedPromoCodes: mapToUnvalidatedPromoCodes(manualPromoCodes.map((code) => ({ value: code }))),\n validatedPromoCodes: promoCookieData?.validatedPromoCodes ?? [],\n };\n\n const formattedPromos = formattedPromosFromLocalStorage ?? formattedPromosFromCookie;\n\n const shouldSendPromos = formattedPromos && !isEmptyPromoData(formattedPromos);\n const remoteSessionId =\n this.remoteSessionId ?? getRemoteSession({ apiKey: this.apiKey }) ?? getCookieValue(\"beam_statsig_session_id\");\n const result = await postTransaction({\n baseUrl: this.baseUrl,\n apiRoot: \"/api\",\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n requestBody: {\n selectionId: this.selectionId || undefined,\n cartId: this.cartId || undefined,\n beamCartId: this.beamCartId || undefined,\n storeId: this.storeId,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n email: this.email, // One or both of email & partnerUserId should be defined\n partnerUserId: this.partnerUserId, // One or both of email & partnerUserId should be defined\n currencyCode: this.currencyCode,\n ...(this.postalCode && { postalCode: this.postalCode }),\n ...(this.countryCode && { countryCode: this.countryCode }),\n cart: this.cart,\n ...(shouldSendPromos && { promos: formattedPromos }),\n discountCodes: this.discountCodes,\n orderProcessedAt: new Date().toISOString(),\n ...(remoteSessionId && { remoteSessionId }),\n },\n });\n\n let effectiveResult: Awaited<ReturnType<typeof postTransaction>> = result;\n const shouldAttachSelectionId = !result.transactionCreated && !result.selectionId && Boolean(this.selectionId);\n\n if (shouldAttachSelectionId) {\n try {\n const updateResult = await updateTransaction({\n baseUrl: this.baseUrl,\n apiRoot: \"/api\",\n headers: { authorization: `Api-Key ${this.apiKey}` },\n pathParams: { transactionId: result.transactionId },\n requestBody: { selectionId: this.selectionId as string },\n });\n effectiveResult = updateResult;\n this.selectionId = updateResult.selectionId ?? this.selectionId;\n // Clear the pending selectionId now that it's durably attached server-side,\n // so a future unrelated order doesn't try to reattach it (mirrors the\n // transactionCreated cleanup below).\n this.localStorage.removeItem(\"transaction\");\n } catch (err) {\n logger.warn(\n new BeamError(\"Failed to attach selectionId to existing transaction via update endpoint\", { cause: err }),\n { transactionId: result.transactionId, selectionId: this.selectionId },\n );\n // Fail softly: effectiveResult stays = result, component renders as it does today\n }\n }\n\n this.transactionId = effectiveResult.transactionId;\n this.userId = effectiveResult.beamUserId;\n this.nonprofitId = effectiveResult.nonprofitId;\n // reportSettings is absent from the update endpoint's response, so this always\n // sources from the original postTransaction result, never effectiveResult.\n this.excludeDonationsForRecurringTransactions = Boolean(result.reportSettings?.excludeRecurringDonations);\n this.creationMethod = effectiveResult.creationMethod || \"\";\n this.orderProcessedAt = effectiveResult.timestamp;\n\n const isTransactionRedeemed = !!this.nonprofitId;\n this.activeWidget = isTransactionRedeemed ? \"impact-overview\" : \"redeem-transaction\";\n\n // Emit order created event only when order is registered with Beam for the first time\n if (result.transactionCreated) {\n const localStorageKeys = [\n \"transaction\",\n \"cart\",\n PROMO_LOCAL_STORAGE_KEY,\n LOCAL_STORAGE_KEYS.NONPROFIT,\n LOCAL_STORAGE_KEYS.NONPROFIT_SELECTED_AT,\n ];\n localStorageKeys.forEach((key) => {\n this.localStorage.removeItem(key);\n });\n const cookieConfigs = [\n { name: BEAM_CART_COOKIE_NAME, path: \"/\", domain: this.domain },\n { name: PROMO_CODES_COOKIE_NAME, path: \"/\", domain: this.domain },\n ];\n\n cookieConfigs.forEach((config) => deleteCookieValue(config));\n\n // Emit order created event only when order is registered with Beam for the first time\n dispatchEvent(\n new BeamOrderCreatedEvent({\n transactionId: result.transactionId,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n currencyCode: this.currencyCode,\n selectionId: this.selectionId ?? null,\n cartId: this.cartId,\n beamCartId: this.beamCartId,\n storeId: this.storeId ?? null,\n postalCode: this.postalCode ?? null,\n countryCode: this.countryCode ?? null,\n remoteSessionId: this.remoteSessionId ?? null,\n transactionNonprofitId: result.nonprofitId,\n orderProcessedAt: result.timestamp,\n }),\n );\n }\n return effectiveResult;\n };\n\n private transactionDataController = new AsyncController<typeof this.handlePostTransaction>(\n this,\n this.handlePostTransaction,\n );\n\n render() {\n const THIRTY_DAYS_IN_MS = 30 * 24 * 60 * 60 * 1000;\n const transactionIsLessThan30DaysOld = Date.now() - new Date(this.orderProcessedAt).getTime() < THIRTY_DAYS_IN_MS;\n\n if (this.transactionDataController.loading) {\n return \"\";\n }\n if (this.transactionDataController.error) {\n if (this.debug) {\n return _errorMessage({ error: this.transactionDataController.error });\n }\n return \"\";\n }\n if (this.excludeDonationsForRecurringTransactions && this.creationMethod === \"recurring\") {\n return html``;\n }\n if (this.activeWidget === \"redeem-transaction\" && transactionIsLessThan30DaysOld) {\n return html`\n <beam-redeem-transaction\n part=\"redeem-transaction\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n storeId=\"${this.storeId}\"\n postalCode=\"${this.postalCode}\"\n countryCode=\"${this.countryCode}\"\n transactionId=\"${this.transactionId}\"\n cart=\"${JSON.stringify(this.cart)}\"\n lang=\"${this.lang}\"\n excludeDonationsForRecurringTransactions=\"${this.excludeDonationsForRecurringTransactions}\"\n ?draftConfig=\"${this.draftConfig}\"\n ?debug=\"${this.debug}\"\n @beamnonprofitselect=\"${(event: Event) => {\n if (!(event instanceof CustomEvent)) return; // TS guard\n const { selectedNonprofitId } = (event as BeamNonprofitSelectEvent).detail;\n this.nonprofitId = selectedNonprofitId ?? null;\n this.activeWidget = \"impact-overview\";\n }}\"\n ></beam-redeem-transaction>\n `;\n }\n if (this.activeWidget === \"impact-overview\") {\n return html`\n <beam-impact-overview\n part=\"impact-overview\"\n storeId=\"${this.storeId}\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n userId=\"${this.userId}\"\n nonprofitId=\"${this.nonprofitId}\"\n lang=\"${this.lang}\"\n discountCodes=\"${JSON.stringify(this.discountCodes)}\"\n transactionId=\"${this.transactionId}\"\n ?draftConfig=\"${this.draftConfig}\"\n ?debug=\"${this.debug}\"\n ></beam-impact-overview>\n `;\n }\n return \"\";\n }\n\n static styles = [cssReset];\n}\n\ndefineCustomElement(BeamPostPurchase);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-post-purchase\": BeamPostPurchase;\n }\n}\n","/**\n * @deprecated (v1.57.0) Shopify no longer supports customized post-purchase pages directly without Extensibility apps\n */\nimport \"../../components/post-purchase\";\nimport { postTransaction } from \"../../api-sdk/v3/routes\";\nimport { DEFAULT_BASE_URL } from \"../../api-sdk/constants\";\nimport { LANGUAGES, TUrl } from \"../../api-sdk/types\";\nimport { waitForElement } from \"../../utils/wait-for-element\";\nimport { BeamError } from \"../../utils/beam-errors\";\nimport { getCookieValue } from \"../../utils/cookies\";\nimport { createScopedLocalStorage } from \"../../utils/local-storage\";\nimport { TCart } from \"../../shared/cart-contents\";\n\n// Shopify admin page: admin/settings/checkout\n\nexport type TBeamOrderPageParams = Parameters<typeof postTransaction>[0][\"requestBody\"] & {\n // Either storeId or postalCode + countryCode must be provided\n storeId?: number;\n postalCode?: string;\n countryCode?: string;\n orderId: string;\n email: string;\n cartTotal: number;\n cart: TCart;\n discountCodes: string[];\n promoCodes: string[];\n htmlPromoCodes: string;\n currencyCode: string;\n parentSelector: string; // CSS Selector for parent of widget to be inserted into DOM\n apiKey: string;\n baseUrl: TUrl;\n domain?: string; // Base domain for setting cookies\n lang: LANGUAGES;\n debug: boolean;\n};\n\nexport async function showBeamOrderPageWidgets({\n parentSelector = \".step__sections\",\n apiKey,\n baseUrl = DEFAULT_BASE_URL,\n storeId,\n postalCode,\n discountCodes,\n countryCode,\n orderId,\n email,\n cartTotal,\n cart,\n promoCodes,\n htmlPromoCodes,\n currencyCode = \"USD\",\n domain,\n lang = \"en\",\n debug = false,\n}: TBeamOrderPageParams) {\n const parentElement = document.querySelector(parentSelector) || (await waitForElement(parentSelector));\n if (!parentElement) {\n throw new BeamError(\n `Timed out waiting for selector '${parentSelector}'. Could not render Beam post-purchase widget.`,\n );\n }\n\n // If checkout and order page are on different subdomains, we can't access localStorage\n // We can make postTransaction work by copying the cart cookie to the expected localStorage key on the current domain\n const cartId = await getCookieValue(\"cart\"); // Shopify-only cart identifier\n if (cartId) {\n const beamLocalStorage = createScopedLocalStorage({ apiKey });\n const existingValue = beamLocalStorage.getItemJson(\"cart\") || {};\n beamLocalStorage.setItemJson(\"cart\", { ...existingValue, cartId });\n }\n\n // Note: assign properties one by one instead of bulk Object.assign to type check assignments\n const widget = document.createElement(\"beam-post-purchase\");\n widget.apiKey = apiKey;\n widget.baseUrl = baseUrl;\n widget.storeId = storeId;\n widget.postalCode = postalCode;\n widget.countryCode = countryCode;\n widget.orderId = String(orderId);\n widget.email = email;\n widget.cartTotal = cartTotal;\n widget.cart = cart;\n widget.promoCodes = promoCodes;\n widget.htmlPromoCodes = htmlPromoCodes;\n widget.discountCodes = discountCodes;\n widget.currencyCode = currencyCode;\n widget.domain = domain;\n widget.lang = lang;\n widget.debug = debug;\n\n // Insert widget into DOM\n parentElement.appendChild(widget);\n}\n"],"names":["v","t","m","p","r","a","o","d","l","REQUIRED_DATA_PROPS","OPTIONAL_DATA_PROPS","BeamPostPurchase","LitElement","DEFAULT_BASE_URL","createScopedLocalStorage","manualPromoCodes","formattedPromosFromLocalStorage","formatStoreAndReturnPromoCodes","code","promoCookieData","getAllPromoCodesFromCookie","formattedPromosFromCookie","mapToUnvalidatedPromoCodes","formattedPromos","shouldSendPromos","isEmptyPromoData","remoteSessionId","getRemoteSession","getCookieValue","result","postTransaction","effectiveResult","updateResult","updateTransaction","err","logger","BeamError","isTransactionRedeemed","PROMO_LOCAL_STORAGE_KEY","LOCAL_STORAGE_KEYS","key","BEAM_CART_COOKIE_NAME","PROMO_CODES_COOKIE_NAME","config","deleteCookieValue","BeamOrderCreatedEvent","AsyncController","parseJsonStringArray","_changedProperties","previousPropertyValues","enforceConfig","MissingConfig","transactionIsLessThan30DaysOld","_errorMessage","html","event","selectedNonprofitId","cssReset","__decorateClass","property","state","defineCustomElement","showBeamOrderPageWidgets","parentSelector","apiKey","baseUrl","storeId","postalCode","discountCodes","countryCode","orderId","email","cartTotal","cart","promoCodes","htmlPromoCodes","currencyCode","domain","lang","debug","parentElement","waitForElement","cartId","beamLocalStorage","existingValue","widget"],"mappings":"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"}
1
+ {"version":3,"file":"index-hCVICwBS.esm.js","sources":["../../src/components/post-purchase/index.ts","../../src/integrations/shopify-order/order.ts"],"sourcesContent":["import { html, LitElement, PropertyValues } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { state } from \"lit/decorators/state.js\";\nimport { BeamError, MissingConfig } from \"../../utils/beam-errors\";\nimport { deleteCookieValue, getCookieValue } from \"../../utils/cookies\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { createScopedLocalStorage } from \"../../utils/local-storage\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { DEFAULT_BASE_URL, LOCAL_STORAGE_KEYS } from \"../../api-sdk/constants\";\nimport { postTransaction, updateTransaction } from \"../../api-sdk/v4/routes\";\nimport \"../redeem-transaction\";\nimport \"../impact-overview\";\nimport { BEAM_CART_COOKIE_NAME, TBeamCartLocalStorage, TCart } from \"../../shared/cart-contents\";\nimport { BeamNonprofitSelectEvent, BeamOrderCreatedEvent } from \"../../utils/events\";\nimport {\n isEmptyPromoData,\n parseJsonStringArray,\n formatStoreAndReturnPromoCodes,\n getAllPromoCodesFromCookie,\n mapToUnvalidatedPromoCodes,\n} from \"../../utils/promoManager\";\nimport { PROMO_CODES_COOKIE_NAME, PROMO_LOCAL_STORAGE_KEY, TPromoCodeRequest } from \"../../shared/promo-types\";\nimport { getRemoteSession } from \"../../utils/remote-session\";\nimport { logger } from \"../../utils/logger\";\n\nconst REQUIRED_DATA_PROPS = [\"baseUrl\", \"apiKey\", \"orderId\", \"cartTotal\", \"currencyCode\", \"lang\"];\nconst OPTIONAL_DATA_PROPS = [\n \"storeId\",\n \"postalCode\",\n \"countryCode\",\n \"cart\",\n \"discountCodes\",\n \"promoCodes\",\n \"htmlPromoCodes\",\n \"email\",\n \"partnerUserId\",\n \"remoteSessionId\",\n];\n\nexport class BeamPostPurchase extends LitElement {\n static tagName = \"beam-post-purchase\";\n\n @property({ type: String })\n public baseUrl: string = DEFAULT_BASE_URL;\n\n @property({ type: String })\n public apiKey!: string;\n\n @property({ type: Number, reflect: true })\n public storeId?: number; // Either storeId or postalCode, countryCode must be provided\n\n @property({ type: String })\n public postalCode?: string;\n\n @property({ type: String })\n public countryCode?: string;\n\n @property({ type: String })\n public orderId!: string;\n\n /**\n * Either email or partnerUserId is required\n */\n @property({ type: String })\n public email?: string;\n\n /**\n * Either email or partnerUserId is required\n */\n @property({ type: String })\n public partnerUserId?: string;\n\n @property({ type: Number })\n public cartTotal!: number;\n\n @property({ type: String })\n public currencyCode = \"USD\";\n\n @property({ type: String })\n public lang: LANGUAGES = \"en\";\n\n @property({ type: Object })\n public cart?: TCart;\n\n /**\n * @deprecated Use `promoCodes` instead. `discountCodes` is retained for backward compatibility\n */\n @property({ type: Array })\n public discountCodes?: string[];\n\n @property({ type: Array })\n public promoCodes?: string[];\n\n @property({ type: String })\n public htmlPromoCodes?: string;\n\n @property({ type: String })\n public domain?: string;\n\n @property({ type: String })\n public remoteSessionId?: string;\n\n @property({ type: Boolean })\n public debug = false;\n\n @state() private activeWidget: \"redeem-transaction\" | \"impact-overview\" | null = null; // wait for postTransaction\n @state() private nonprofitId: number | null = null; // from localStorage or redeem-transaction result\n @state() private selectionId: string | null = null; // from localStorage\n @state() private cartId: string | null = null; // from localStorage, external cart ID\n @state() private beamCartId: string | null = null; // from cookie, Beam cart ID\n @state() private userId: string | null = null; // from postTransaction\n @state() private transactionId: string | null = null; // from postTransaction\n @state() private excludeDonationsForRecurringTransactions = false;\n @state() private creationMethod = \"\";\n @state() private orderProcessedAt = \"\";\n @property({ type: Boolean }) public draftConfig = false;\n\n private localStorage = createScopedLocalStorage(this);\n\n get parsedPromoCodes(): string[] {\n return parseJsonStringArray(this.htmlPromoCodes);\n }\n\n updateComponentState() {\n // Delete selectionId if it was saved with an invalid string (bug introduced v1.54.0)\n if (this.localStorage.getItem(\"transaction\")?.toLocaleLowerCase() === \"undefined\") {\n this.localStorage.removeItem(\"transaction\");\n }\n\n this.selectionId = this.selectionId || this.localStorage.getItem(\"transaction\") || null;\n this.cartId = this.cartId || this.localStorage.getItemJson<TBeamCartLocalStorage>(\"cart\")?.cartId || null;\n // Reading beamCartId from cookies instead of localStorage allows it to work across subdomains\n this.beamCartId =\n this.beamCartId ||\n this.localStorage.getItemJson<TBeamCartLocalStorage>(\"cart\")?.beamCartId ||\n getCookieValue(BEAM_CART_COOKIE_NAME) ||\n null;\n\n if (this.selectionId && this.nonprofitId) {\n this.activeWidget = \"impact-overview\";\n }\n }\n\n firstUpdated(_changedProperties: PropertyValues) {\n this.enforceConfig();\n this.updateComponentState();\n }\n\n async updated(previousPropertyValues: PropertyValues) {\n // Also fires on first load as props go from undefined => value\n const refreshOnChangeProps = [...REQUIRED_DATA_PROPS, ...OPTIONAL_DATA_PROPS];\n if (refreshOnChangeProps.some((p) => previousPropertyValues.has(p))) {\n await this.transactionDataController.exec();\n }\n }\n\n enforceConfig() {\n enforceConfig(REQUIRED_DATA_PROPS, this);\n if (!this.email && !this.partnerUserId) {\n throw new MissingConfig(\n [this.email ? \"\" : \"email\", this.partnerUserId ? \"\" : \"partnerUserId\"].filter(Boolean),\n \"At least one of [email, partnerUserId] must be provided\",\n );\n }\n }\n\n private getManualPromoCodes(): string[] {\n if (this.parsedPromoCodes?.length) {\n return this.parsedPromoCodes;\n }\n if (this.promoCodes?.length) {\n return this.promoCodes;\n }\n return [];\n }\n\n handlePostTransaction = async () => {\n this.enforceConfig();\n this.updateComponentState();\n\n const manualPromoCodes = this.getManualPromoCodes();\n const formattedPromosFromLocalStorage = formatStoreAndReturnPromoCodes(\n manualPromoCodes.map((code) => ({ value: code })),\n this.apiKey,\n );\n\n const promoCookieData = getAllPromoCodesFromCookie();\n const formattedPromosFromCookie: TPromoCodeRequest = {\n unvalidatedPromoCodes: mapToUnvalidatedPromoCodes(manualPromoCodes.map((code) => ({ value: code }))),\n validatedPromoCodes: promoCookieData?.validatedPromoCodes ?? [],\n };\n\n const formattedPromos = formattedPromosFromLocalStorage ?? formattedPromosFromCookie;\n\n const shouldSendPromos = formattedPromos && !isEmptyPromoData(formattedPromos);\n const remoteSessionId =\n this.remoteSessionId ?? getRemoteSession({ apiKey: this.apiKey }) ?? getCookieValue(\"beam_statsig_session_id\");\n const result = await postTransaction({\n baseUrl: this.baseUrl,\n apiRoot: \"/api\",\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n requestBody: {\n selectionId: this.selectionId || undefined,\n cartId: this.cartId || undefined,\n beamCartId: this.beamCartId || undefined,\n storeId: this.storeId,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n email: this.email, // One or both of email & partnerUserId should be defined\n partnerUserId: this.partnerUserId, // One or both of email & partnerUserId should be defined\n currencyCode: this.currencyCode,\n ...(this.postalCode && { postalCode: this.postalCode }),\n ...(this.countryCode && { countryCode: this.countryCode }),\n cart: this.cart,\n ...(shouldSendPromos && { promos: formattedPromos }),\n discountCodes: this.discountCodes,\n orderProcessedAt: new Date().toISOString(),\n ...(remoteSessionId && { remoteSessionId }),\n },\n });\n\n let effectiveResult: Awaited<ReturnType<typeof postTransaction>> = result;\n const shouldAttachSelectionId = !result.transactionCreated && !result.selectionId && Boolean(this.selectionId);\n\n if (shouldAttachSelectionId) {\n try {\n const updateResult = await updateTransaction({\n baseUrl: this.baseUrl,\n apiRoot: \"/api\",\n headers: { authorization: `Api-Key ${this.apiKey}` },\n pathParams: { transactionId: result.transactionId },\n requestBody: { selectionId: this.selectionId as string },\n });\n effectiveResult = updateResult;\n this.selectionId = updateResult.selectionId ?? this.selectionId;\n // Clear the pending selectionId now that it's durably attached server-side,\n // so a future unrelated order doesn't try to reattach it (mirrors the\n // transactionCreated cleanup below).\n this.localStorage.removeItem(\"transaction\");\n } catch (err) {\n logger.warn(\n new BeamError(\"Failed to attach selectionId to existing transaction via update endpoint\", { cause: err }),\n { transactionId: result.transactionId, selectionId: this.selectionId },\n );\n // Fail softly: effectiveResult stays = result, component renders as it does today\n }\n }\n\n this.transactionId = effectiveResult.transactionId;\n this.userId = effectiveResult.beamUserId;\n this.nonprofitId = effectiveResult.nonprofitId;\n // reportSettings is absent from the update endpoint's response, so this always\n // sources from the original postTransaction result, never effectiveResult.\n this.excludeDonationsForRecurringTransactions = Boolean(result.reportSettings?.excludeRecurringDonations);\n this.creationMethod = effectiveResult.creationMethod || \"\";\n this.orderProcessedAt = effectiveResult.timestamp;\n\n const isTransactionRedeemed = !!this.nonprofitId;\n this.activeWidget = isTransactionRedeemed ? \"impact-overview\" : \"redeem-transaction\";\n\n // Emit order created event only when order is registered with Beam for the first time\n if (result.transactionCreated) {\n const localStorageKeys = [\n \"transaction\",\n \"cart\",\n PROMO_LOCAL_STORAGE_KEY,\n LOCAL_STORAGE_KEYS.NONPROFIT,\n LOCAL_STORAGE_KEYS.NONPROFIT_SELECTED_AT,\n ];\n localStorageKeys.forEach((key) => {\n this.localStorage.removeItem(key);\n });\n const cookieConfigs = [\n { name: BEAM_CART_COOKIE_NAME, path: \"/\", domain: this.domain },\n { name: PROMO_CODES_COOKIE_NAME, path: \"/\", domain: this.domain },\n ];\n\n cookieConfigs.forEach((config) => deleteCookieValue(config));\n\n // Emit order created event only when order is registered with Beam for the first time\n dispatchEvent(\n new BeamOrderCreatedEvent({\n transactionId: result.transactionId,\n orderId: this.orderId,\n cartTotal: this.cartTotal,\n currencyCode: this.currencyCode,\n selectionId: this.selectionId ?? null,\n cartId: this.cartId,\n beamCartId: this.beamCartId,\n storeId: this.storeId ?? null,\n postalCode: this.postalCode ?? null,\n countryCode: this.countryCode ?? null,\n remoteSessionId: this.remoteSessionId ?? null,\n transactionNonprofitId: result.nonprofitId,\n orderProcessedAt: result.timestamp,\n }),\n );\n }\n return effectiveResult;\n };\n\n private transactionDataController = new AsyncController<typeof this.handlePostTransaction>(\n this,\n this.handlePostTransaction,\n );\n\n render() {\n const THIRTY_DAYS_IN_MS = 30 * 24 * 60 * 60 * 1000;\n const transactionIsLessThan30DaysOld = Date.now() - new Date(this.orderProcessedAt).getTime() < THIRTY_DAYS_IN_MS;\n\n if (this.transactionDataController.loading) {\n return \"\";\n }\n if (this.transactionDataController.error) {\n if (this.debug) {\n return _errorMessage({ error: this.transactionDataController.error });\n }\n return \"\";\n }\n if (this.excludeDonationsForRecurringTransactions && this.creationMethod === \"recurring\") {\n return html``;\n }\n if (this.activeWidget === \"redeem-transaction\" && transactionIsLessThan30DaysOld) {\n return html`\n <beam-redeem-transaction\n part=\"redeem-transaction\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n storeId=\"${this.storeId}\"\n postalCode=\"${this.postalCode}\"\n countryCode=\"${this.countryCode}\"\n transactionId=\"${this.transactionId}\"\n cart=\"${JSON.stringify(this.cart)}\"\n lang=\"${this.lang}\"\n excludeDonationsForRecurringTransactions=\"${this.excludeDonationsForRecurringTransactions}\"\n ?draftConfig=\"${this.draftConfig}\"\n ?debug=\"${this.debug}\"\n @beamnonprofitselect=\"${(event: Event) => {\n if (!(event instanceof CustomEvent)) return; // TS guard\n const { selectedNonprofitId } = (event as BeamNonprofitSelectEvent).detail;\n this.nonprofitId = selectedNonprofitId ?? null;\n this.activeWidget = \"impact-overview\";\n }}\"\n ></beam-redeem-transaction>\n `;\n }\n if (this.activeWidget === \"impact-overview\") {\n return html`\n <beam-impact-overview\n part=\"impact-overview\"\n storeId=\"${this.storeId}\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n userId=\"${this.userId}\"\n nonprofitId=\"${this.nonprofitId}\"\n lang=\"${this.lang}\"\n discountCodes=\"${JSON.stringify(this.discountCodes)}\"\n transactionId=\"${this.transactionId}\"\n ?draftConfig=\"${this.draftConfig}\"\n ?debug=\"${this.debug}\"\n ></beam-impact-overview>\n `;\n }\n return \"\";\n }\n\n static styles = [cssReset];\n}\n\ndefineCustomElement(BeamPostPurchase);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-post-purchase\": BeamPostPurchase;\n }\n}\n","/**\n * @deprecated (v1.57.0) Shopify no longer supports customized post-purchase pages directly without Extensibility apps\n */\nimport \"../../components/post-purchase\";\nimport { postTransaction } from \"../../api-sdk/v3/routes\";\nimport { DEFAULT_BASE_URL } from \"../../api-sdk/constants\";\nimport { LANGUAGES, TUrl } from \"../../api-sdk/types\";\nimport { waitForElement } from \"../../utils/wait-for-element\";\nimport { BeamError } from \"../../utils/beam-errors\";\nimport { getCookieValue } from \"../../utils/cookies\";\nimport { createScopedLocalStorage } from \"../../utils/local-storage\";\nimport { TCart } from \"../../shared/cart-contents\";\n\n// Shopify admin page: admin/settings/checkout\n\nexport type TBeamOrderPageParams = Parameters<typeof postTransaction>[0][\"requestBody\"] & {\n // Either storeId or postalCode + countryCode must be provided\n storeId?: number;\n postalCode?: string;\n countryCode?: string;\n orderId: string;\n email: string;\n cartTotal: number;\n cart: TCart;\n discountCodes: string[];\n promoCodes: string[];\n htmlPromoCodes: string;\n currencyCode: string;\n parentSelector: string; // CSS Selector for parent of widget to be inserted into DOM\n apiKey: string;\n baseUrl: TUrl;\n domain?: string; // Base domain for setting cookies\n lang: LANGUAGES;\n debug: boolean;\n};\n\nexport async function showBeamOrderPageWidgets({\n parentSelector = \".step__sections\",\n apiKey,\n baseUrl = DEFAULT_BASE_URL,\n storeId,\n postalCode,\n discountCodes,\n countryCode,\n orderId,\n email,\n cartTotal,\n cart,\n promoCodes,\n htmlPromoCodes,\n currencyCode = \"USD\",\n domain,\n lang = \"en\",\n debug = false,\n}: TBeamOrderPageParams) {\n const parentElement = document.querySelector(parentSelector) || (await waitForElement(parentSelector));\n if (!parentElement) {\n throw new BeamError(\n `Timed out waiting for selector '${parentSelector}'. Could not render Beam post-purchase widget.`,\n );\n }\n\n // If checkout and order page are on different subdomains, we can't access localStorage\n // We can make postTransaction work by copying the cart cookie to the expected localStorage key on the current domain\n const cartId = await getCookieValue(\"cart\"); // Shopify-only cart identifier\n if (cartId) {\n const beamLocalStorage = createScopedLocalStorage({ apiKey });\n const existingValue = beamLocalStorage.getItemJson(\"cart\") || {};\n beamLocalStorage.setItemJson(\"cart\", { ...existingValue, cartId });\n }\n\n // Note: assign properties one by one instead of bulk Object.assign to type check assignments\n const widget = document.createElement(\"beam-post-purchase\");\n widget.apiKey = apiKey;\n widget.baseUrl = baseUrl;\n widget.storeId = storeId;\n widget.postalCode = postalCode;\n widget.countryCode = countryCode;\n widget.orderId = String(orderId);\n widget.email = email;\n widget.cartTotal = cartTotal;\n widget.cart = cart;\n widget.promoCodes = promoCodes;\n widget.htmlPromoCodes = htmlPromoCodes;\n widget.discountCodes = discountCodes;\n widget.currencyCode = currencyCode;\n widget.domain = domain;\n widget.lang = lang;\n widget.debug = debug;\n\n // Insert widget into DOM\n parentElement.appendChild(widget);\n}\n"],"names":["v","t","m","p","r","a","o","d","l","REQUIRED_DATA_PROPS","OPTIONAL_DATA_PROPS","BeamPostPurchase","LitElement","DEFAULT_BASE_URL","createScopedLocalStorage","manualPromoCodes","formattedPromosFromLocalStorage","formatStoreAndReturnPromoCodes","code","promoCookieData","getAllPromoCodesFromCookie","formattedPromosFromCookie","mapToUnvalidatedPromoCodes","formattedPromos","shouldSendPromos","isEmptyPromoData","remoteSessionId","getRemoteSession","getCookieValue","result","postTransaction","effectiveResult","updateResult","updateTransaction","err","logger","BeamError","isTransactionRedeemed","PROMO_LOCAL_STORAGE_KEY","LOCAL_STORAGE_KEYS","key","BEAM_CART_COOKIE_NAME","PROMO_CODES_COOKIE_NAME","config","deleteCookieValue","BeamOrderCreatedEvent","AsyncController","parseJsonStringArray","_changedProperties","previousPropertyValues","enforceConfig","MissingConfig","transactionIsLessThan30DaysOld","_errorMessage","html","event","selectedNonprofitId","cssReset","__decorateClass","property","state","defineCustomElement","showBeamOrderPageWidgets","parentSelector","apiKey","baseUrl","storeId","postalCode","discountCodes","countryCode","orderId","email","cartTotal","cart","promoCodes","htmlPromoCodes","currencyCode","domain","lang","debug","parentElement","waitForElement","cartId","beamLocalStorage","existingValue","widget"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{a as n,i as s,b as m,n as b}from"./lit-BEag9MFp.esm.js";import"./_share-dialog-dependencies-DPid-O65.esm.js";import"./vendor-DUOg5fL-.esm.js";var d=Object.defineProperty,p=(e,r,t,P)=>{for(var o=void 0,l=e.length-1,i;l>=0;l--)(i=e[l])&&(o=i(r,t,o)||o);return o&&d(r,t,o),o};class a extends n{constructor(){super(...arguments),this.promo=null,this.shortVersion=!1}static get styles(){return s`
1
+ import{a as n,i as s,b as m,n as b}from"./lit-BEag9MFp.esm.js";import"./_share-dialog-dependencies-C3oAeUgm.esm.js";import"./vendor-DUOg5fL-.esm.js";var d=Object.defineProperty,p=(e,r,t,P)=>{for(var o=void 0,l=e.length-1,i;l>=0;l--)(i=e[l])&&(o=i(r,t,o)||o);return o&&d(r,t,o),o};class a extends n{constructor(){super(...arguments),this.promo=null,this.shortVersion=!1}static get styles(){return s`
2
2
  sl-badge::part(base) {
3
3
  background-color: var(--beam-promoPillLabel-color-background, #000);
4
4
  color: var(--beam-promoPillLabel-color, #fff);
@@ -13,4 +13,4 @@ import{a as n,i as s,b as m,n as b}from"./lit-BEag9MFp.esm.js";import"./_share-d
13
13
  margin: var(--beam-promoPillLabel-border-margin);
14
14
  }
15
15
  `}render(){if(this.promo){const r=this.shortVersion?this.promo["promo-text-short"]:this.promo["promo-text-long"];return m`<sl-badge pill aria-label="${r}">${r}</sl-badge>`}else return m``}}p([b({type:Object})],a.prototype,"promo"),p([b({type:Boolean})],a.prototype,"shortVersion"),customElements.get("beam-promo-info-pill")||customElements.define("beam-promo-info-pill",a);const f={"--beam-promoPillLabel-color-background":"#000","--beam-promoPillLabel-color":"#fff","--beam-promoPillLabel-border":"#000","--beam-promoPillLabel-border-width":"0px","--beam-promoPillLabel-font-size":"11px","--beam-promoPillLabel-font":"inherit","--beam-promoPillLabel-font-weight":"bold","--beam-promoPillLabel-text-transform":"none","--beam-promoPillLabel-text-wrap":"wrap","--beam-promoPillLabel-text-padding":"4px 15px","--beam-promoPillLabel-border-margin":"0px"};export{f as p};
16
- //# sourceMappingURL=promo-pill-label-DYR3PZH7.esm.js.map
16
+ //# sourceMappingURL=promo-pill-label-rA01UjBk.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"promo-pill-label-DYR3PZH7.esm.js","sources":["../../src/shared/components/promo-pill-label.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport \"../shoelace-components\";\nimport \"@shoelace-style/shoelace/dist/components/badge/badge.js\";\n\ntype Promo = {\n \"promo-text-long\": string;\n \"promo-text-short\": string;\n};\n\nexport class BeamPromoInfoPill extends LitElement {\n @property({ type: Object }) promo: Promo | null = null;\n @property({ type: Boolean }) shortVersion = false;\n\n static get styles() {\n return css`\n sl-badge::part(base) {\n background-color: var(--beam-promoPillLabel-color-background, #000);\n color: var(--beam-promoPillLabel-color, #fff);\n border: var(--beam-promoPillLabel-border-width, 0px) solid var(--beam-promoPillLabel-border, #000);\n border-radius: 18.37px;\n font-family: var(--beam-promoPillLabel-font, inherit);\n font-size: var(--beam-promoPillLabel-font-size, 12px);\n font-weight: var(--beam-promoPillLabel-font-weight, bold);\n text-transform: var(--beam-promoPillLabel-text-transform, none);\n text-wrap: var(--beam-promoPillLabel-text-wrap, wrap);\n padding: var(--beam-promoPillLabel-text-padding);\n margin: var(--beam-promoPillLabel-border-margin);\n }\n `;\n }\n\n render() {\n if (this.promo) {\n const promoText = this.shortVersion ? this.promo[\"promo-text-short\"] : this.promo[\"promo-text-long\"];\n return html`<sl-badge pill aria-label=\"${promoText}\">${promoText}</sl-badge>`;\n } else {\n return html``;\n }\n }\n}\n\ncustomElements.get(\"beam-promo-info-pill\") || customElements.define(\"beam-promo-info-pill\", BeamPromoInfoPill);\n\nexport const promoPillLabelConfigDefaults = {\n \"--beam-promoPillLabel-color-background\": \"#000\",\n \"--beam-promoPillLabel-color\": \"#fff\",\n \"--beam-promoPillLabel-border\": \"#000\",\n \"--beam-promoPillLabel-border-width\": \"0px\",\n \"--beam-promoPillLabel-font-size\": \"11px\",\n \"--beam-promoPillLabel-font\": \"inherit\",\n \"--beam-promoPillLabel-font-weight\": \"bold\",\n \"--beam-promoPillLabel-text-transform\": \"none\",\n \"--beam-promoPillLabel-text-wrap\": \"wrap\",\n \"--beam-promoPillLabel-text-padding\": \"4px 15px\",\n \"--beam-promoPillLabel-border-margin\": \"0px\",\n} as const;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-promo-info-pill\": BeamPromoInfoPill;\n }\n}\n"],"names":["BeamPromoInfoPill","LitElement","css","promoText","html","__decorateClass","property","promoPillLabelConfigDefaults"],"mappings":"wRAUO,MAAMA,UAA0BC,CAAW,CAA3C,aAAA,CAAA,MAAA,GAAA,SAAA,EACuB,KAAA,MAAsB,KACrB,KAAA,aAAe,EAAA,CAE5C,WAAW,QAAS,CAClB,OAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,KAeT,CAEA,QAAS,CACP,GAAI,KAAK,MAAO,CACd,MAAMC,EAAY,KAAK,aAAe,KAAK,MAAM,kBAAkB,EAAI,KAAK,MAAM,iBAAiB,EACnG,OAAOC,+BAAkCD,CAAS,KAAKA,CAAS,aAClE,KACE,QAAOC,GAEX,CACF,CA7B8BC,EAAA,CAA3BC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EADfN,EACiB,UAAA,OAAA,EACCK,EAAA,CAA5BC,EAAS,CAAE,KAAM,OAAQ,CAAC,CAAA,EAFhBN,EAEkB,0BA8B/B,eAAe,IAAI,sBAAsB,GAAK,eAAe,OAAO,uBAAwBA,CAAiB,EAEtG,MAAMO,EAA+B,CAC1C,yCAA0C,OAC1C,8BAA+B,OAC/B,+BAAgC,OAChC,qCAAsC,MACtC,kCAAmC,OACnC,6BAA8B,UAC9B,oCAAqC,OACrC,uCAAwC,OACxC,kCAAmC,OACnC,qCAAsC,WACtC,sCAAuC,KACzC"}
1
+ {"version":3,"file":"promo-pill-label-rA01UjBk.esm.js","sources":["../../src/shared/components/promo-pill-label.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport \"../shoelace-components\";\nimport \"@shoelace-style/shoelace/dist/components/badge/badge.js\";\n\ntype Promo = {\n \"promo-text-long\": string;\n \"promo-text-short\": string;\n};\n\nexport class BeamPromoInfoPill extends LitElement {\n @property({ type: Object }) promo: Promo | null = null;\n @property({ type: Boolean }) shortVersion = false;\n\n static get styles() {\n return css`\n sl-badge::part(base) {\n background-color: var(--beam-promoPillLabel-color-background, #000);\n color: var(--beam-promoPillLabel-color, #fff);\n border: var(--beam-promoPillLabel-border-width, 0px) solid var(--beam-promoPillLabel-border, #000);\n border-radius: 18.37px;\n font-family: var(--beam-promoPillLabel-font, inherit);\n font-size: var(--beam-promoPillLabel-font-size, 12px);\n font-weight: var(--beam-promoPillLabel-font-weight, bold);\n text-transform: var(--beam-promoPillLabel-text-transform, none);\n text-wrap: var(--beam-promoPillLabel-text-wrap, wrap);\n padding: var(--beam-promoPillLabel-text-padding);\n margin: var(--beam-promoPillLabel-border-margin);\n }\n `;\n }\n\n render() {\n if (this.promo) {\n const promoText = this.shortVersion ? this.promo[\"promo-text-short\"] : this.promo[\"promo-text-long\"];\n return html`<sl-badge pill aria-label=\"${promoText}\">${promoText}</sl-badge>`;\n } else {\n return html``;\n }\n }\n}\n\ncustomElements.get(\"beam-promo-info-pill\") || customElements.define(\"beam-promo-info-pill\", BeamPromoInfoPill);\n\nexport const promoPillLabelConfigDefaults = {\n \"--beam-promoPillLabel-color-background\": \"#000\",\n \"--beam-promoPillLabel-color\": \"#fff\",\n \"--beam-promoPillLabel-border\": \"#000\",\n \"--beam-promoPillLabel-border-width\": \"0px\",\n \"--beam-promoPillLabel-font-size\": \"11px\",\n \"--beam-promoPillLabel-font\": \"inherit\",\n \"--beam-promoPillLabel-font-weight\": \"bold\",\n \"--beam-promoPillLabel-text-transform\": \"none\",\n \"--beam-promoPillLabel-text-wrap\": \"wrap\",\n \"--beam-promoPillLabel-text-padding\": \"4px 15px\",\n \"--beam-promoPillLabel-border-margin\": \"0px\",\n} as const;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-promo-info-pill\": BeamPromoInfoPill;\n }\n}\n"],"names":["BeamPromoInfoPill","LitElement","css","promoText","html","__decorateClass","property","promoPillLabelConfigDefaults"],"mappings":"wRAUO,MAAMA,UAA0BC,CAAW,CAA3C,aAAA,CAAA,MAAA,GAAA,SAAA,EACuB,KAAA,MAAsB,KACrB,KAAA,aAAe,EAAA,CAE5C,WAAW,QAAS,CAClB,OAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,KAeT,CAEA,QAAS,CACP,GAAI,KAAK,MAAO,CACd,MAAMC,EAAY,KAAK,aAAe,KAAK,MAAM,kBAAkB,EAAI,KAAK,MAAM,iBAAiB,EACnG,OAAOC,+BAAkCD,CAAS,KAAKA,CAAS,aAClE,KACE,QAAOC,GAEX,CACF,CA7B8BC,EAAA,CAA3BC,EAAS,CAAE,KAAM,MAAO,CAAC,CAAA,EADfN,EACiB,UAAA,OAAA,EACCK,EAAA,CAA5BC,EAAS,CAAE,KAAM,OAAQ,CAAC,CAAA,EAFhBN,EAEkB,0BA8B/B,eAAe,IAAI,sBAAsB,GAAK,eAAe,OAAO,uBAAwBA,CAAiB,EAEtG,MAAMO,EAA+B,CAC1C,yCAA0C,OAC1C,8BAA+B,OAC/B,+BAAgC,OAChC,qCAAsC,MACtC,kCAAmC,OACnC,6BAA8B,UAC9B,oCAAqC,OACrC,uCAAwC,OACxC,kCAAmC,OACnC,qCAAsC,WACtC,sCAAuC,KACzC"}
@@ -1,4 +1,4 @@
1
- import{i as m,n as u,a as p,b as l}from"./lit-BEag9MFp.esm.js";import{r as d}from"./index-tkscjKkq.esm.js";var h=Object.defineProperty,c=(a,o,i,e)=>{for(var r=void 0,s=a.length-1,n;s>=0;s--)(n=a[s])&&(r=n(o,i,r)||r);return r&&h(o,i,r),r};class t extends p{constructor(){super(...arguments),this.value=0,this.animateProgress=!0}render(){return l`<div class="progress-bar-container">
1
+ import{i as m,n as u,a as p,b as l}from"./lit-BEag9MFp.esm.js";import{r as d}from"./index-BlaOItQr.esm.js";var h=Object.defineProperty,c=(a,o,i,e)=>{for(var r=void 0,s=a.length-1,n;s>=0;s--)(n=a[s])&&(r=n(o,i,r)||r);return r&&h(o,i,r),r};class t extends p{constructor(){super(...arguments),this.value=0,this.animateProgress=!0}render(){return l`<div class="progress-bar-container">
2
2
  <style>
3
3
  :host {
4
4
  --beam-ProgressBar-value: ${this.value};
@@ -51,4 +51,4 @@ import{i as m,n as u,a as p,b as l}from"./lit-BEag9MFp.esm.js";import{r as d}fro
51
51
  border-radius: var(--beam-ProgressBar-progress-border-radius, 8px);
52
52
  }
53
53
  `,c([u({type:Number})],t.prototype,"value"),c([u({type:Boolean})],t.prototype,"animateProgress"),customElements.get("beam-progress-bar")||customElements.define("beam-progress-bar",t);const b={"--beam-ProgressBar-border-radius":"8px","--beam-ProgressBar-progress-border-radius":"8px","--beam-ProgressBar-height":"8px","--beam-ProgressBar-color-background":"transparent","--beam-ProgressBar-border-width":"1px","--beam-ProgressBar-color-border":"currentColor","--beam-ProgressBar-color-bar":"currentColor","--beam-ProgressBar-animation-duration-base":"0s","--beam-ProgressBar-animation-duration-variable":"0s"};async function g({baseUrl:a,apiKey:o,requestBody:i}){try{const e=a+"/api/v4/events/socialShare",r=JSON.stringify(i);await d(e,{method:"POST",body:r,headers:{authorization:`Api-Key ${o}`}})}catch(e){console.error(e)}}const S=async a=>fetch(a).then(async o=>{const i=new URL(a),e=await o.blob();return new File([e],i.pathname,{type:e.type})}),B={en:{impactShareButton:()=>"Share to Grow Your Impact",impactShareText:({brandName:a=""})=>`Help ${a} reach their giving goal by sharing this cause on social media`,impactShareTitle:()=>"Share on Social Media",impactShareCopy:()=>"Copy",impactShareDownload:()=>"Download",impactShareClose:()=>"Close"},fr:{impactShareButton:()=>"Partagez pour augmentez votre cause",impactShareText:({brandName:a=""})=>`Aidez ${a} a atteindre leur objectif en partageant cette cause sur votre r\xE9seaux sociaux`,impactShareTitle:()=>"Partager sur votre r\xE9seaux sociaux",impactShareCopy:()=>"Copier",impactShareDownload:()=>"T\xE9l\xE9charger",impactShareClose:()=>"Fermer"},de:{impactShareButton:()=>"Teil, um unserem Beitrag zu erh\xF6hen",impactShareText:({brandName:a=""})=>`Hilf ${a} ihre Spendenziel zu erreichen`,impactShareTitle:()=>"In den sozialen Medien teilen",impactShareCopy:()=>"Kopieren",impactShareDownload:()=>"Herunterladen",impactShareClose:()=>"Schlie\xDFen"},es:{impactShareButton:()=>"Comparte para aumentar nuestro impacto",impactShareText:({brandName:a=""})=>`Comparte en las redes sociales para ayudar a ${a} a alcanzar su objetivo.`,impactShareTitle:()=>"Compartir en redes sociales",impactShareCopy:()=>"Copiar",impactShareDownload:()=>"Descargar",impactShareClose:()=>"Cerrar"},it:{impactShareButton:()=>"Condividi, aiutaci a fare la differenza",impactShareText:({brandName:a=""})=>`Aiuta ${a} a raggiungere il suo obiettivo di donazione condividendo questa causa sui social media.`,impactShareTitle:()=>"Condividi, aiutaci a fare la differenza",impactShareCopy:()=>"Copia",impactShareDownload:()=>"Scarica",impactShareClose:()=>"Chiudi"},pl:{impactShareButton:()=>"Udost\u0119pnij, by szerzy\u0107 nasz\u0105 misj\u0119",impactShareText:({brandName:a=""})=>`Pom\xF3\u017C ${a} osi\u0105gn\u0105\u0107 cel i podziel si\u0119 t\u0105 inicjatyw\u0105 na swoim profilu`,impactShareTitle:()=>"Udost\u0119pnij na swoim profilu",impactShareCopy:()=>"Kopiuj",impactShareDownload:()=>"Pobierz",impactShareClose:()=>"Zamknij"},ja:{impactShareButton:()=>"\u6D3B\u52D5\u306E\u8F2A\u3092\u5E83\u3052\u3088\u3046",impactShareText:({brandName:a=""})=>`${a}\u306E\u5BC4\u4ED8\u76EE\u6A19\u9054\u6210\u306B\u5411\u3051\u3066\u3001SNS\u3067\u3053\u306E\u6D3B\u52D5\u3092\u662F\u975E\u30B7\u30A7\u30A2\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,impactShareTitle:()=>"SNS\u3067\u30B7\u30A7\u30A2\u3059\u308B",impactShareCopy:()=>"\u30B3\u30D4\u30FC",impactShareDownload:()=>"\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",impactShareClose:()=>"\u9589\u3058\u308B"}};export{b as a,g as p,B as s,S as u};
54
- //# sourceMappingURL=share-button-DP2wLhmP.esm.js.map
54
+ //# sourceMappingURL=share-button-BxrZs18u.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"share-button-DP2wLhmP.esm.js","sources":["../../src/shared/components/progress-bar.ts","../../src/api-sdk/v2/users/events.ts","../../src/shared/files.ts","../../src/shared/components/strings/share-button.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\n\nexport class BeamProgressBar extends LitElement {\n @property({ type: Number }) value = 0;\n @property({ type: Boolean }) animateProgress = true;\n\n render() {\n return html`<div class=\"progress-bar-container\">\n <style>\n :host {\n --beam-ProgressBar-value: ${this.value};\n }\n </style>\n <div class=\"progress-bar\"></div>\n </div>`;\n }\n\n static styles = css`\n :host {\n display: inline-block;\n min-width: 20px;\n }\n\n .progress-bar-container {\n border-radius: var(--beam-ProgressBar-border-radius, 8px);\n height: var(--beam-ProgressBar-height, 8px);\n padding: 0;\n width: 100%;\n background: var(--beam-ProgressBar-color-background, lightgray);\n position: relative;\n border: var(--beam-ProgressBar-border-width, 1px) solid var(--beam-ProgressBar-color-border, currentColor);\n overflow: hidden;\n }\n\n @keyframes animate-bar {\n 0% {\n width: 0;\n }\n\n 100% {\n width: calc(var(--beam-ProgressBar-value) * 1%);\n }\n }\n\n .progress-bar {\n width: calc(var(--beam-ProgressBar-value, 0) * 1%);\n height: 100%;\n position: absolute;\n background: var(--beam-ProgressBar-color-bar, linear-gradient(to right, currentColor, currentColor));\n left: 0;\n bottom: 0;\n top: 0;\n background-clip: padding-box;\n animation-duration: calc(\n var(--beam-ProgressBar-animation-duration-base, 0s) + var(--beam-ProgressBar-animation-duration-variable, 0s) *\n var(--beam-ProgressBar-value) / 100\n );\n animation-iteration-count: 1;\n animation-name: animate-bar;\n animation-timing-function: linear;\n border-radius: var(--beam-ProgressBar-progress-border-radius, 8px);\n }\n `;\n}\n\ncustomElements.get(\"beam-progress-bar\") || customElements.define(\"beam-progress-bar\", BeamProgressBar);\n\nexport const progressBarConfigDefaults = {\n \"--beam-ProgressBar-border-radius\": \"8px\",\n \"--beam-ProgressBar-progress-border-radius\": \"8px\",\n \"--beam-ProgressBar-height\": \"8px\",\n \"--beam-ProgressBar-color-background\": \"transparent\",\n \"--beam-ProgressBar-border-width\": \"1px\",\n \"--beam-ProgressBar-color-border\": \"currentColor\",\n \"--beam-ProgressBar-color-bar\": \"currentColor\",\n \"--beam-ProgressBar-animation-duration-base\": \"0s\",\n \"--beam-ProgressBar-animation-duration-variable\": \"0s\",\n} as const;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-progress-bar\": BeamProgressBar;\n }\n}\n","import { TUrl } from \"../../types\";\nimport { fetchJson } from \"../../fetch-json\";\n\nexport interface SocialShareAnalyticsEventPayload {\n eventName?: string | null;\n nonprofitId?: number | null;\n storeId?: number | null;\n transactionId?: number | null;\n timestamp?: number | null;\n}\n\nexport async function postSocialShareAnalyticsEvent({\n baseUrl,\n apiKey,\n requestBody,\n}: {\n baseUrl: TUrl;\n apiKey: string;\n requestBody: SocialShareAnalyticsEventPayload;\n}): Promise<void> {\n try {\n const url = baseUrl + \"/api/v4/events/socialShare\";\n const body = JSON.stringify(requestBody);\n await fetchJson(url, {\n method: \"POST\",\n body,\n headers: { authorization: `Api-Key ${apiKey}` },\n });\n } catch (error: any) {\n console.error(error);\n }\n}\n","export const urlToFile = async (url: string) => {\n return fetch(url).then(async (r) => {\n const u = new URL(url);\n const blob = await r.blob();\n return new File([blob], u.pathname, { type: blob.type });\n });\n};\n","export const strings = {\n en: {\n impactShareButton: () => `Share to Grow Your Impact`,\n impactShareText: ({ brandName = \"\" }) =>\n `Help ${brandName} reach their giving goal by sharing this cause on social media`,\n impactShareTitle: () => `Share on Social Media`,\n impactShareCopy: () => `Copy`,\n impactShareDownload: () => `Download`,\n impactShareClose: () => `Close`,\n },\n fr: {\n impactShareButton: () => `Partagez pour augmentez votre cause`,\n impactShareText: ({ brandName = \"\" }) =>\n `Aidez ${brandName} a atteindre leur objectif en partageant cette cause sur votre réseaux sociaux`,\n impactShareTitle: () => `Partager sur votre réseaux sociaux`,\n impactShareCopy: () => `Copier`,\n impactShareDownload: () => `Télécharger`,\n impactShareClose: () => `Fermer`,\n },\n de: {\n impactShareButton: () => `Teil, um unserem Beitrag zu erhöhen`, // TODO: Update translation copy SDK-2210\n impactShareText: ({ brandName = \"\" }) => `Hilf ${brandName} ihre Spendenziel zu erreichen`,\n impactShareTitle: () => `In den sozialen Medien teilen`,\n impactShareCopy: () => `Kopieren`,\n impactShareDownload: () => `Herunterladen`,\n impactShareClose: () => `Schließen`,\n },\n es: {\n impactShareButton: () => \"Comparte para aumentar nuestro impacto\", // TODO: Update translation copy SDK-2210\n impactShareText: ({ brandName = \"\" }) =>\n `Comparte en las redes sociales para ayudar a ${brandName} a alcanzar su objetivo.`,\n impactShareTitle: () => \"Compartir en redes sociales\",\n impactShareCopy: () => \"Copiar\",\n impactShareDownload: () => \"Descargar\",\n impactShareClose: () => \"Cerrar\",\n },\n it: {\n impactShareButton: () => \"Condividi, aiutaci a fare la differenza\", // TODO: Update translation copy SDK-2210\n impactShareText: ({ brandName = \"\" }) =>\n `Aiuta ${brandName} a raggiungere il suo obiettivo di donazione condividendo questa causa sui social media.`,\n impactShareTitle: () => \"Condividi, aiutaci a fare la differenza\",\n impactShareCopy: () => \"Copia\",\n impactShareDownload: () => \"Scarica\",\n impactShareClose: () => \"Chiudi\",\n },\n pl: {\n impactShareButton: () => `Udostępnij, by szerzyć naszą misję`, // TODO: Update translation copy SDK-2210\n impactShareText: ({ brandName = \"\" }) =>\n `Pomóż ${brandName} osiągnąć cel i podziel się tą inicjatywą na swoim profilu`,\n impactShareTitle: () => `Udostępnij na swoim profilu`,\n impactShareCopy: () => `Kopiuj`,\n impactShareDownload: () => `Pobierz`,\n impactShareClose: () => `Zamknij`,\n },\n ja: {\n impactShareButton: () => `活動の輪を広げよう`,\n impactShareText: ({ brandName = \"\" }) =>\n `${brandName}の寄付目標達成に向けて、SNSでこの活動を是非シェアしてください。`,\n impactShareTitle: () => `SNSでシェアする`,\n impactShareCopy: () => `コピー`,\n impactShareDownload: () => `ダウンロード`,\n impactShareClose: () => `閉じる`,\n },\n};\n"],"names":["BeamProgressBar","LitElement","html","css","__decorateClass","property","progressBarConfigDefaults","postSocialShareAnalyticsEvent","baseUrl","apiKey","requestBody","url","body","fetchJson","error","urlToFile","r","u","blob","strings","brandName"],"mappings":"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"}
1
+ {"version":3,"file":"share-button-BxrZs18u.esm.js","sources":["../../src/shared/components/progress-bar.ts","../../src/api-sdk/v2/users/events.ts","../../src/shared/files.ts","../../src/shared/components/strings/share-button.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\n\nexport class BeamProgressBar extends LitElement {\n @property({ type: Number }) value = 0;\n @property({ type: Boolean }) animateProgress = true;\n\n render() {\n return html`<div class=\"progress-bar-container\">\n <style>\n :host {\n --beam-ProgressBar-value: ${this.value};\n }\n </style>\n <div class=\"progress-bar\"></div>\n </div>`;\n }\n\n static styles = css`\n :host {\n display: inline-block;\n min-width: 20px;\n }\n\n .progress-bar-container {\n border-radius: var(--beam-ProgressBar-border-radius, 8px);\n height: var(--beam-ProgressBar-height, 8px);\n padding: 0;\n width: 100%;\n background: var(--beam-ProgressBar-color-background, lightgray);\n position: relative;\n border: var(--beam-ProgressBar-border-width, 1px) solid var(--beam-ProgressBar-color-border, currentColor);\n overflow: hidden;\n }\n\n @keyframes animate-bar {\n 0% {\n width: 0;\n }\n\n 100% {\n width: calc(var(--beam-ProgressBar-value) * 1%);\n }\n }\n\n .progress-bar {\n width: calc(var(--beam-ProgressBar-value, 0) * 1%);\n height: 100%;\n position: absolute;\n background: var(--beam-ProgressBar-color-bar, linear-gradient(to right, currentColor, currentColor));\n left: 0;\n bottom: 0;\n top: 0;\n background-clip: padding-box;\n animation-duration: calc(\n var(--beam-ProgressBar-animation-duration-base, 0s) + var(--beam-ProgressBar-animation-duration-variable, 0s) *\n var(--beam-ProgressBar-value) / 100\n );\n animation-iteration-count: 1;\n animation-name: animate-bar;\n animation-timing-function: linear;\n border-radius: var(--beam-ProgressBar-progress-border-radius, 8px);\n }\n `;\n}\n\ncustomElements.get(\"beam-progress-bar\") || customElements.define(\"beam-progress-bar\", BeamProgressBar);\n\nexport const progressBarConfigDefaults = {\n \"--beam-ProgressBar-border-radius\": \"8px\",\n \"--beam-ProgressBar-progress-border-radius\": \"8px\",\n \"--beam-ProgressBar-height\": \"8px\",\n \"--beam-ProgressBar-color-background\": \"transparent\",\n \"--beam-ProgressBar-border-width\": \"1px\",\n \"--beam-ProgressBar-color-border\": \"currentColor\",\n \"--beam-ProgressBar-color-bar\": \"currentColor\",\n \"--beam-ProgressBar-animation-duration-base\": \"0s\",\n \"--beam-ProgressBar-animation-duration-variable\": \"0s\",\n} as const;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-progress-bar\": BeamProgressBar;\n }\n}\n","import { TUrl } from \"../../types\";\nimport { fetchJson } from \"../../fetch-json\";\n\nexport interface SocialShareAnalyticsEventPayload {\n eventName?: string | null;\n nonprofitId?: number | null;\n storeId?: number | null;\n transactionId?: number | null;\n timestamp?: number | null;\n}\n\nexport async function postSocialShareAnalyticsEvent({\n baseUrl,\n apiKey,\n requestBody,\n}: {\n baseUrl: TUrl;\n apiKey: string;\n requestBody: SocialShareAnalyticsEventPayload;\n}): Promise<void> {\n try {\n const url = baseUrl + \"/api/v4/events/socialShare\";\n const body = JSON.stringify(requestBody);\n await fetchJson(url, {\n method: \"POST\",\n body,\n headers: { authorization: `Api-Key ${apiKey}` },\n });\n } catch (error: any) {\n console.error(error);\n }\n}\n","export const urlToFile = async (url: string) => {\n return fetch(url).then(async (r) => {\n const u = new URL(url);\n const blob = await r.blob();\n return new File([blob], u.pathname, { type: blob.type });\n });\n};\n","export const strings = {\n en: {\n impactShareButton: () => `Share to Grow Your Impact`,\n impactShareText: ({ brandName = \"\" }) =>\n `Help ${brandName} reach their giving goal by sharing this cause on social media`,\n impactShareTitle: () => `Share on Social Media`,\n impactShareCopy: () => `Copy`,\n impactShareDownload: () => `Download`,\n impactShareClose: () => `Close`,\n },\n fr: {\n impactShareButton: () => `Partagez pour augmentez votre cause`,\n impactShareText: ({ brandName = \"\" }) =>\n `Aidez ${brandName} a atteindre leur objectif en partageant cette cause sur votre réseaux sociaux`,\n impactShareTitle: () => `Partager sur votre réseaux sociaux`,\n impactShareCopy: () => `Copier`,\n impactShareDownload: () => `Télécharger`,\n impactShareClose: () => `Fermer`,\n },\n de: {\n impactShareButton: () => `Teil, um unserem Beitrag zu erhöhen`, // TODO: Update translation copy SDK-2210\n impactShareText: ({ brandName = \"\" }) => `Hilf ${brandName} ihre Spendenziel zu erreichen`,\n impactShareTitle: () => `In den sozialen Medien teilen`,\n impactShareCopy: () => `Kopieren`,\n impactShareDownload: () => `Herunterladen`,\n impactShareClose: () => `Schließen`,\n },\n es: {\n impactShareButton: () => \"Comparte para aumentar nuestro impacto\", // TODO: Update translation copy SDK-2210\n impactShareText: ({ brandName = \"\" }) =>\n `Comparte en las redes sociales para ayudar a ${brandName} a alcanzar su objetivo.`,\n impactShareTitle: () => \"Compartir en redes sociales\",\n impactShareCopy: () => \"Copiar\",\n impactShareDownload: () => \"Descargar\",\n impactShareClose: () => \"Cerrar\",\n },\n it: {\n impactShareButton: () => \"Condividi, aiutaci a fare la differenza\", // TODO: Update translation copy SDK-2210\n impactShareText: ({ brandName = \"\" }) =>\n `Aiuta ${brandName} a raggiungere il suo obiettivo di donazione condividendo questa causa sui social media.`,\n impactShareTitle: () => \"Condividi, aiutaci a fare la differenza\",\n impactShareCopy: () => \"Copia\",\n impactShareDownload: () => \"Scarica\",\n impactShareClose: () => \"Chiudi\",\n },\n pl: {\n impactShareButton: () => `Udostępnij, by szerzyć naszą misję`, // TODO: Update translation copy SDK-2210\n impactShareText: ({ brandName = \"\" }) =>\n `Pomóż ${brandName} osiągnąć cel i podziel się tą inicjatywą na swoim profilu`,\n impactShareTitle: () => `Udostępnij na swoim profilu`,\n impactShareCopy: () => `Kopiuj`,\n impactShareDownload: () => `Pobierz`,\n impactShareClose: () => `Zamknij`,\n },\n ja: {\n impactShareButton: () => `活動の輪を広げよう`,\n impactShareText: ({ brandName = \"\" }) =>\n `${brandName}の寄付目標達成に向けて、SNSでこの活動を是非シェアしてください。`,\n impactShareTitle: () => `SNSでシェアする`,\n impactShareCopy: () => `コピー`,\n impactShareDownload: () => `ダウンロード`,\n impactShareClose: () => `閉じる`,\n },\n};\n"],"names":["BeamProgressBar","LitElement","html","css","__decorateClass","property","progressBarConfigDefaults","postSocialShareAnalyticsEvent","baseUrl","apiKey","requestBody","url","body","fetchJson","error","urlToFile","r","u","blob","strings","brandName"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{a as x}from"./index-tkscjKkq.esm.js";import{a as y,b as d,D as v,n as s}from"./lit-BEag9MFp.esm.js";import{p as m,u as p,s as r}from"./share-button-DP2wLhmP.esm.js";import{D as S}from"./utils-ly9wMwUO.esm.js";import"./vendor-DUOg5fL-.esm.js";const I=(l,{source:e="contentLength"}={})=>{const a=l instanceof NodeList?Array.from(l):l;if(a.length===0||!x(a))return;const i=(e==="contentLength"?a.sort((t,o)=>o.innerText.length-t.innerText.length)[0]:a.sort((t,o)=>o.clientHeight-t.clientHeight)[0])?.clientHeight||0;for(const t of a)t.clientHeight!==i&&(t.style.height=i+"px")};function w(){return/Android|iPhone/i.test(navigator.userAgent)}var C=Object.defineProperty,h=(l,e,a,i)=>{for(var t=void 0,o=l.length-1,c;o>=0;o--)(c=l[o])&&(t=c(e,a,t)||t);return t&&C(e,a,t),t};class n extends y{constructor(){super(...arguments),this.shareIcon=null,this.imageUrl=null,this.brandName=null,this.buttonText=null,this.configLang="en",this.baseUrl=S,this.nonprofitId=null,this.storeId=null,this.transactionId=null}connectedCallback(){super.connectedCallback()}async handleShareClick(){try{if(!this.imageUrl||!this.brandName||!this.configLang)return;await import("./_share-dialog-dependencies-DPid-O65.esm.js");const{nonprofitId:e,storeId:a,transactionId:i,baseUrl:t,apiKey:o}=this;m({baseUrl:t,apiKey:o,requestBody:{eventName:"shareImageButtonClick",nonprofitId:e,storeId:a,timestamp:Date.now(),transactionId:i}}).catch(()=>null),w()?this.openSystemShareSheet(this.imageUrl):this.handleShareDialog(this.imageUrl,this.brandName)}catch(e){console.error("Error sharing impact:",e)}}async handleShareDialog(e,a){if(!e)return;const i=this.shadowRoot?.querySelector("sl-dialog");if(i){i.show();return}await import("./_share-dialog-dependencies-DPid-O65.esm.js");const t=this.shadowRoot?.querySelector("#modal-root"),o=await p(e),c=URL.createObjectURL(o),b=()=>{this.shadowRoot?.querySelector("sl-dialog")?.hide()},g=async()=>{m({baseUrl:this.baseUrl,apiKey:this.apiKey,requestBody:{eventName:"copyImageButtonClick",nonprofitId:this.nonprofitId,storeId:this.storeId,timestamp:Date.now(),transactionId:this.transactionId}}).catch(()=>null),await navigator.clipboard.write([new ClipboardItem({"image/png":o})]),setTimeout(b,250)},u=()=>{m({baseUrl:this.baseUrl,apiKey:this.apiKey,requestBody:{eventName:"downloadImageButtonClick",nonprofitId:this.nonprofitId,storeId:this.storeId,timestamp:Date.now(),transactionId:this.transactionId}}).catch(()=>null),setTimeout(b,250)},f=d`
1
+ import{a as x}from"./index-BlaOItQr.esm.js";import{a as y,b as d,D as v,n as s}from"./lit-BEag9MFp.esm.js";import{p as m,u as p,s as r}from"./share-button-BxrZs18u.esm.js";import{D as S}from"./utils-ly9wMwUO.esm.js";import"./vendor-DUOg5fL-.esm.js";const I=(l,{source:e="contentLength"}={})=>{const a=l instanceof NodeList?Array.from(l):l;if(a.length===0||!x(a))return;const i=(e==="contentLength"?a.sort((t,o)=>o.innerText.length-t.innerText.length)[0]:a.sort((t,o)=>o.clientHeight-t.clientHeight)[0])?.clientHeight||0;for(const t of a)t.clientHeight!==i&&(t.style.height=i+"px")};function w(){return/Android|iPhone/i.test(navigator.userAgent)}var C=Object.defineProperty,h=(l,e,a,i)=>{for(var t=void 0,o=l.length-1,c;o>=0;o--)(c=l[o])&&(t=c(e,a,t)||t);return t&&C(e,a,t),t};class n extends y{constructor(){super(...arguments),this.shareIcon=null,this.imageUrl=null,this.brandName=null,this.buttonText=null,this.configLang="en",this.baseUrl=S,this.nonprofitId=null,this.storeId=null,this.transactionId=null}connectedCallback(){super.connectedCallback()}async handleShareClick(){try{if(!this.imageUrl||!this.brandName||!this.configLang)return;await import("./_share-dialog-dependencies-C3oAeUgm.esm.js");const{nonprofitId:e,storeId:a,transactionId:i,baseUrl:t,apiKey:o}=this;m({baseUrl:t,apiKey:o,requestBody:{eventName:"shareImageButtonClick",nonprofitId:e,storeId:a,timestamp:Date.now(),transactionId:i}}).catch(()=>null),w()?this.openSystemShareSheet(this.imageUrl):this.handleShareDialog(this.imageUrl,this.brandName)}catch(e){console.error("Error sharing impact:",e)}}async handleShareDialog(e,a){if(!e)return;const i=this.shadowRoot?.querySelector("sl-dialog");if(i){i.show();return}await import("./_share-dialog-dependencies-C3oAeUgm.esm.js");const t=this.shadowRoot?.querySelector("#modal-root"),o=await p(e),c=URL.createObjectURL(o),b=()=>{this.shadowRoot?.querySelector("sl-dialog")?.hide()},g=async()=>{m({baseUrl:this.baseUrl,apiKey:this.apiKey,requestBody:{eventName:"copyImageButtonClick",nonprofitId:this.nonprofitId,storeId:this.storeId,timestamp:Date.now(),transactionId:this.transactionId}}).catch(()=>null),await navigator.clipboard.write([new ClipboardItem({"image/png":o})]),setTimeout(b,250)},u=()=>{m({baseUrl:this.baseUrl,apiKey:this.apiKey,requestBody:{eventName:"downloadImageButtonClick",nonprofitId:this.nonprofitId,storeId:this.storeId,timestamp:Date.now(),transactionId:this.transactionId}}).catch(()=>null),setTimeout(b,250)},f=d`
2
2
  <style>
3
3
  .plain-button {
4
4
  border: none;
@@ -158,6 +158,7 @@ import{a as x}from"./index-tkscjKkq.esm.js";import{a as y,b as d,D as v,n as s}f
158
158
  @click="${this.handleShareClick}"
159
159
  baseUrl="${this.baseUrl}"
160
160
  class="share-button share-button-inline button icon-button"
161
+ part="share-button"
161
162
  >
162
163
  <sl-icon
163
164
  name="${this.shareIcon}"
@@ -169,4 +170,4 @@ import{a as x}from"./index-tkscjKkq.esm.js";import{a as y,b as d,D as v,n as s}f
169
170
  </button>
170
171
  <div id="modal-root"></div>
171
172
  `}}h([s({type:String})],n.prototype,"shareIcon"),h([s({type:String})],n.prototype,"imageUrl"),h([s({type:String})],n.prototype,"brandName"),h([s({type:String})],n.prototype,"buttonText"),h([s({type:String})],n.prototype,"configLang"),h([s({type:String})],n.prototype,"baseUrl"),h([s({type:String})],n.prototype,"nonprofitId"),h([s({type:String})],n.prototype,"storeId"),h([s({type:String})],n.prototype,"transactionId"),h([s({type:String})],n.prototype,"apiKey"),customElements.get("beam-share-button")||customElements.define("beam-share-button",n);const k={"--beam-share-button-fontFamily":"inherit","--beam-share-button-fontSize":"14px","--beam-share-button-fontWeight":"600","--beam-share-button-textTransform":"none","--beam-share-button-marginTop":"10px","--beam-share-button-marginBottom":"10px","--beam-share-button-padding":"8px 18px 8px 16px","--beam-share-button-lineHeight":"inherit","--beam-share-button-color":"#0A323C","--beam-share-button-backgroundColor":"#fff","--beam-share-button-borderRadius":"30px","--beam-share-button-borderColor":"#0A323C","--beam-share-button-borderWidth":"1px","--beam-share-button-width":"auto","--beam-share-button-hover-borderColor":"transparent","--beam-share-button-hover-backgroundColor":"#0A323C","--beam-share-button-hover-color":"#fff","--beam-share-button-icon-size":"16px","--beam-share-button-text-textDecoration":"none","--beam-share-dialog-padding":"30px 30px","--beam-share-title-fontSize":"30px","--beam-share-title-fontWeight":"bold","--beam-share-text-fontSize":"16px","--beam-share-text-lineHeight":"1.3","--beam-share-text-marginTop":"10px","--beam-share-image-borderRadius":"4px","--beam-share-image-width":"200px","--beam-share-image-margin":"20px","--beam-share-actions-margin":"30px 60px","--beam-share-action-icon-size":"32px","--beam-share-action-text-fontSize":"16px","--beam-share-action-text-lineHeight":"1.3","--beam-share-text-action-marginTop":"10px","--beam-share-close-backgroundColor":"#ffd522","--beam-share-close-text-color":"#000","--beam-share-close-padding":"12px","--beam-share-close-borderRadius":"4px","--beam-share-close-fontSize":"16px","--beam-share-close-fontWeight":"bold","--beam-share-close-focus-borderColor":"#c2dcff"};export{k as a,I as s};
172
- //# sourceMappingURL=share-button-CqrSfHAr.esm.js.map
173
+ //# sourceMappingURL=share-button-DQT2zQ7w.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"share-button-CqrSfHAr.esm.js","sources":["../../src/shared/sync-element-heights.ts","../../src/shared/feature-detection.ts","../../src/shared/components/share-button.ts"],"sourcesContent":["import { isAllHtmlElements } from \"./is-all-html-elements\";\n\n/**\n * Synchronize heights of elements\n * @param {Array<HTMLElement|null>} elements - Elements to synchronize\n * @param {'contentLength' | 'currentHeight'} [options.source='contentLength'] -\n * Method used to get the height value to sync across elements. `contentLength`\n * (innerText.length) is reliable for pure text content when responding to\n * window resizing. Otherwise, currentHeight can be used to sync the tallest\n * element's height to all the other elements. Note that this works poorly\n * unless content is allowed to reflow with explicit height attributes removed\n * between synchronization calls.\n */\nexport const syncElementHeights = (\n elements: Array<HTMLElement | null> | NodeList,\n {\n source = \"contentLength\",\n }: {\n source?: \"contentLength\" | \"currentHeight\";\n } = {},\n) => {\n const els = elements instanceof NodeList ? Array.from(elements) : elements;\n\n if (els.length === 0 || !isAllHtmlElements(els)) {\n return;\n }\n\n const heightSource =\n source === \"contentLength\"\n ? els.sort((a, b) => {\n return b.innerText.length - a.innerText.length;\n })[0]\n : els.sort((a, b) => {\n return b.clientHeight - a.clientHeight;\n })[0];\n\n const syncedHeight = heightSource?.clientHeight || 0;\n\n for (const el of els) {\n if (el.clientHeight !== syncedHeight) {\n el.style[\"height\"] = syncedHeight + \"px\";\n }\n }\n};\n","export function isMobile() {\n return /Android|iPhone/i.test(navigator.userAgent);\n}\n\nexport function hasSystemShare() {\n return !!navigator.share;\n}\n","import { LitElement, html, render } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { postSocialShareAnalyticsEvent } from \"../../api-sdk/v2/users/events\";\nimport { DEFAULT_BASE_URL } from \"../../api-sdk/constants\";\nimport \"@shoelace-style/shoelace/dist/components/icon/icon.js\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { urlToFile } from \"../files\";\nimport { isMobile } from \"../feature-detection\";\nimport { strings } from \"./strings/share-button\";\n\ninterface SlDialogElement extends HTMLElement {\n show: () => void;\n hide: () => void;\n}\n\nexport class BeamShareButton extends LitElement {\n @property({ type: String }) shareIcon: string | null = null;\n @property({ type: String }) imageUrl?: string | null = null;\n @property({ type: String }) brandName: string | null = null;\n @property({ type: String }) buttonText?: string | null = null;\n @property({ type: String }) configLang: LANGUAGES = \"en\";\n @property({ type: String }) baseUrl: string = DEFAULT_BASE_URL;\n @property({ type: String }) nonprofitId?: number | null = null;\n @property({ type: String }) storeId?: number | null = null;\n @property({ type: String }) transactionId?: number | null = null;\n @property({ type: String }) apiKey!: string;\n\n connectedCallback() {\n super.connectedCallback();\n }\n\n async handleShareClick() {\n try {\n if (!this.imageUrl || !this.brandName || !this.configLang) return;\n await import(\"./_share-dialog-dependencies.js\");\n\n const { nonprofitId, storeId, transactionId, baseUrl, apiKey } = this;\n void postSocialShareAnalyticsEvent({\n baseUrl,\n apiKey,\n requestBody: { eventName: \"shareImageButtonClick\", nonprofitId, storeId, timestamp: Date.now(), transactionId },\n }).catch(() => null);\n\n if (isMobile()) {\n this.openSystemShareSheet(this.imageUrl);\n } else {\n this.handleShareDialog(this.imageUrl, this.brandName);\n }\n } catch (err) {\n console.error(\"Error sharing impact:\", err);\n }\n }\n\n async handleShareDialog(imageUrl: string, brandName: string) {\n if (!imageUrl) return;\n\n const existingDialog = this.shadowRoot?.querySelector(\"sl-dialog\") as SlDialogElement;\n\n if (existingDialog) {\n existingDialog.show();\n return;\n }\n\n await import(\"./_share-dialog-dependencies.js\"); // Import libraries async to reduce bundle size if share feature is unused\n\n const modalRoot = this.shadowRoot?.querySelector(\"#modal-root\") as HTMLElement;\n\n const file = await urlToFile(imageUrl);\n\n const dataUrl = URL.createObjectURL(file);\n\n const handleClickClose = () => {\n (this.shadowRoot?.querySelector(\"sl-dialog\") as SlDialogElement)?.hide();\n };\n\n const handleClickCopy = async () => {\n void postSocialShareAnalyticsEvent({\n baseUrl: this.baseUrl,\n apiKey: this.apiKey,\n requestBody: {\n eventName: \"copyImageButtonClick\",\n nonprofitId: this.nonprofitId,\n storeId: this.storeId,\n timestamp: Date.now(),\n transactionId: this.transactionId,\n },\n }).catch(() => null);\n await navigator.clipboard.write([new ClipboardItem({ \"image/png\": file })]);\n setTimeout(handleClickClose, 250);\n };\n\n const handleClickDownload = () => {\n void postSocialShareAnalyticsEvent({\n baseUrl: this.baseUrl,\n apiKey: this.apiKey,\n requestBody: {\n eventName: \"downloadImageButtonClick\",\n nonprofitId: this.nonprofitId,\n storeId: this.storeId,\n timestamp: Date.now(),\n transactionId: this.transactionId,\n },\n }).catch(() => null);\n setTimeout(handleClickClose, 250);\n };\n\n const dialogTemplate = html`\n <style>\n .plain-button {\n border: none;\n background: none;\n font-size: inherit;\n font-family: inherit;\n }\n .share-dialog::part(panel) {\n padding: var(--beam-share-dialog-padding);\n text-align: center;\n }\n .share-title {\n font-size: var(--beam-share-title-fontSize);\n font-weight: var(--beam-share-title-fontWeight);\n }\n .share-text {\n font-size: var(--beam-share-text-fontSize);\n line-height: var(--beam-share-text-lineHeight);\n margin-top: var(--beam-share-text-marginTop);\n }\n .share-image {\n border-radius: var(--beam-share-image-borderRadius);\n width: var(--beam-share-image-width);\n display: block;\n margin: var(--beam-share-image-margin) auto;\n }\n .share-actions {\n margin: var(--beam-share-actions-margin);\n }\n .share-action-button {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n padding: 5px;\n }\n .share-action-icon {\n font-size: var(--beam-share-action-icon-size);\n }\n .share-action-button:hover .share-action-icon {\n scale: 1.1;\n }\n .share-action-text {\n font-size: var(--beam-share-action-text-fontSize);\n line-height: var(--beam-share-action-text-lineHeight);\n margin-top: var(--beam-share-text-action-marginTop);\n }\n .plain-button {\n border: none;\n background: none;\n font-size: inherit;\n font-family: inherit;\n }\n .plain-link {\n text-decoration: none;\n color: inherit;\n }\n .share-close {\n display: block;\n background-color: var(--beam-share-close-backgroundColor);\n color: var(--beam-share-close-text-color);\n justify-content: center;\n padding: var(--beam-share-close-padding);\n border-radius: var(--beam-share-close-borderRadius);\n width: 100%;\n font-size: var(--beam-share-close-fontSize);\n font-weight: var(--beam-share-close-fontWeight);\n }\n .share-close:hover {\n outline: 2px solid var(--beam-share-close-focus-borderColor);\n }\n </style>\n <sl-dialog open label=\"${strings[this.configLang].impactShareTitle()}\" no-header class=\"share-dialog\">\n <h2 class=\"share-title\">${strings[this.configLang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.configLang].impactShareText({ brandName })}</p>\n <img\n data-speedsize-ignore=\"true\"\n src=\"${imageUrl}\"\n alt=\"${strings[this.configLang].impactShareTitle()}\"\n class=\"share-image\"\n />\n <div class=\"share-actions\" style=\"display: flex; justify-content: space-evenly\">\n <div style=\"flex: 1; text-align: center\">\n <button class=\"plain-button button share-action-button\" @click=\"${handleClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.configLang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.configLang].impactShareCopy()}</div>\n </button>\n </div>\n <div style=\"flex: 1; text-align: center\">\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.configLang].impactShareTitle()}\"\n href=\"${dataUrl}\"\n @click=\"${handleClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.configLang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.configLang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n <button class=\"plain-button button share-close\" @click=\"${handleClickClose}\">\n ${strings[this.configLang].impactShareClose()}\n </button>\n </sl-dialog>\n `;\n if (modalRoot) {\n render(dialogTemplate, modalRoot);\n }\n }\n\n async openSystemShareSheet(imageUrl: string) {\n if (!imageUrl) return;\n\n const file = await urlToFile(imageUrl);\n\n if (navigator.share) {\n await navigator\n .share({\n files: [file],\n })\n .then(() => {\n const { nonprofitId, storeId, transactionId, baseUrl, apiKey } = this;\n void postSocialShareAnalyticsEvent({\n baseUrl,\n apiKey,\n requestBody: { eventName: \"shareSheetShare\", nonprofitId, storeId, timestamp: Date.now(), transactionId },\n }).catch(() => null);\n })\n .catch(() => null);\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n }\n render() {\n if (!this.imageUrl || !this.brandName || !this.configLang) return html``;\n return html`\n <style>\n .share-button {\n font-family: var(--beam-share-button-fontFamily);\n font-size: var(--beam-share-button-fontSize);\n font-weight: var(--beam-share-button-fontWeight);\n margin-top: var(--beam-share-button-marginTop);\n margin-bottom: var(--beam-share-button-marginBottom);\n text-transform: var(--beam-share-button-textTransform);\n line-height: var(--beam-share-button-lineHeight);\n background-color: var(--beam-share-button-backgroundColor);\n color: var(--beam-share-button-color, inherit);\n border-radius: var(--beam-share-button-borderRadius);\n border-color: var(--beam-share-button-borderColor);\n border-width: var(--beam-share-button-borderWidth);\n /* add extra padding on side without icon for optical alignment */\n padding: var(--beam-share-button-padding);\n width: var(--beam-share-button-width);\n transition: 0.15s;\n }\n .share-button:hover {\n background-color: var(--beam-share-button-hover-backgroundColor);\n color: var(--beam-share-button-hover-color);\n border-color: var(--beam-share-button-hover-borderColor);\n }\n .share-button-text {\n text-decoration: var(--beam-share-button-text-textDecoration);\n margin-left: 0.33em;\n }\n .share-button-icon {\n font-size: var(--beam-share-button-icon-size);\n }\n .button {\n cursor: pointer;\n }\n .icon-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n </style>\n <button\n @click=\"${this.handleShareClick}\"\n baseUrl=\"${this.baseUrl}\"\n class=\"share-button share-button-inline button icon-button\"\n >\n <sl-icon\n name=\"${this.shareIcon}\"\n library=\"lucide\"\n label=\"${strings[this.configLang].impactShareButton()}\"\n class=\"share-button-icon\"\n ></sl-icon>\n <span class=\"share-button-text\">${this.buttonText || strings[this.configLang].impactShareButton()}</span>\n </button>\n <div id=\"modal-root\"></div>\n `;\n }\n}\n\ncustomElements.get(\"beam-share-button\") || customElements.define(\"beam-share-button\", BeamShareButton);\n\nexport const shareButtonConfigDefaults = {\n \"--beam-share-button-fontFamily\": \"inherit\",\n \"--beam-share-button-fontSize\": \"14px\",\n \"--beam-share-button-fontWeight\": \"600\",\n \"--beam-share-button-textTransform\": \"none\",\n \"--beam-share-button-marginTop\": \"10px\",\n \"--beam-share-button-marginBottom\": \"10px\",\n \"--beam-share-button-padding\": \"8px 18px 8px 16px\",\n \"--beam-share-button-lineHeight\": \"inherit\",\n \"--beam-share-button-color\": \"#0A323C\",\n \"--beam-share-button-backgroundColor\": \"#fff\",\n \"--beam-share-button-borderRadius\": \"30px\",\n \"--beam-share-button-borderColor\": \"#0A323C\",\n \"--beam-share-button-borderWidth\": \"1px\",\n\n \"--beam-share-button-width\": \"auto\",\n\n \"--beam-share-button-hover-borderColor\": \"transparent\",\n \"--beam-share-button-hover-backgroundColor\": \"#0A323C\",\n \"--beam-share-button-hover-color\": \"#fff\",\n\n \"--beam-share-button-icon-size\": \"16px\",\n\n \"--beam-share-button-text-textDecoration\": \"none\",\n\n \"--beam-share-dialog-padding\": \"30px 30px\",\n\n \"--beam-share-title-fontSize\": \"30px\",\n \"--beam-share-title-fontWeight\": \"bold\",\n\n \"--beam-share-text-fontSize\": \"16px\",\n \"--beam-share-text-lineHeight\": \"1.3\",\n \"--beam-share-text-marginTop\": \"10px\",\n\n \"--beam-share-image-borderRadius\": \"4px\",\n \"--beam-share-image-width\": \"200px\",\n \"--beam-share-image-margin\": \"20px\",\n\n \"--beam-share-actions-margin\": \"30px 60px\",\n \"--beam-share-action-icon-size\": \"32px\",\n\n \"--beam-share-action-text-fontSize\": \"16px\",\n \"--beam-share-action-text-lineHeight\": \"1.3\",\n \"--beam-share-text-action-marginTop\": \"10px\",\n\n \"--beam-share-close-backgroundColor\": \"#ffd522\",\n \"--beam-share-close-text-color\": \"#000\",\n \"--beam-share-close-padding\": \"12px\",\n \"--beam-share-close-borderRadius\": \"4px\",\n \"--beam-share-close-fontSize\": \"16px\",\n \"--beam-share-close-fontWeight\": \"bold\",\n\n \"--beam-share-close-focus-borderColor\": \"#c2dcff\",\n} as const;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-share-button\": BeamShareButton;\n }\n}\n"],"names":["syncElementHeights","elements","source","els","isAllHtmlElements","syncedHeight","a","b","el","isMobile","v","o","l","e","n","r","i","BeamShareButton","LitElement","DEFAULT_BASE_URL","nonprofitId","storeId","transactionId","baseUrl","apiKey","postSocialShareAnalyticsEvent","err","imageUrl","brandName","existingDialog","modalRoot","file","urlToFile","dataUrl","handleClickClose","handleClickCopy","handleClickDownload","dialogTemplate","html","strings","render","__decorateClass","property","shareButtonConfigDefaults"],"mappings":"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"}
1
+ {"version":3,"file":"share-button-DQT2zQ7w.esm.js","sources":["../../src/shared/sync-element-heights.ts","../../src/shared/feature-detection.ts","../../src/shared/components/share-button.ts"],"sourcesContent":["import { isAllHtmlElements } from \"./is-all-html-elements\";\n\n/**\n * Synchronize heights of elements\n * @param {Array<HTMLElement|null>} elements - Elements to synchronize\n * @param {'contentLength' | 'currentHeight'} [options.source='contentLength'] -\n * Method used to get the height value to sync across elements. `contentLength`\n * (innerText.length) is reliable for pure text content when responding to\n * window resizing. Otherwise, currentHeight can be used to sync the tallest\n * element's height to all the other elements. Note that this works poorly\n * unless content is allowed to reflow with explicit height attributes removed\n * between synchronization calls.\n */\nexport const syncElementHeights = (\n elements: Array<HTMLElement | null> | NodeList,\n {\n source = \"contentLength\",\n }: {\n source?: \"contentLength\" | \"currentHeight\";\n } = {},\n) => {\n const els = elements instanceof NodeList ? Array.from(elements) : elements;\n\n if (els.length === 0 || !isAllHtmlElements(els)) {\n return;\n }\n\n const heightSource =\n source === \"contentLength\"\n ? els.sort((a, b) => {\n return b.innerText.length - a.innerText.length;\n })[0]\n : els.sort((a, b) => {\n return b.clientHeight - a.clientHeight;\n })[0];\n\n const syncedHeight = heightSource?.clientHeight || 0;\n\n for (const el of els) {\n if (el.clientHeight !== syncedHeight) {\n el.style[\"height\"] = syncedHeight + \"px\";\n }\n }\n};\n","export function isMobile() {\n return /Android|iPhone/i.test(navigator.userAgent);\n}\n\nexport function hasSystemShare() {\n return !!navigator.share;\n}\n","import { LitElement, html, render } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { postSocialShareAnalyticsEvent } from \"../../api-sdk/v2/users/events\";\nimport { DEFAULT_BASE_URL } from \"../../api-sdk/constants\";\nimport \"@shoelace-style/shoelace/dist/components/icon/icon.js\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { urlToFile } from \"../files\";\nimport { isMobile } from \"../feature-detection\";\nimport { strings } from \"./strings/share-button\";\n\ninterface SlDialogElement extends HTMLElement {\n show: () => void;\n hide: () => void;\n}\n\nexport class BeamShareButton extends LitElement {\n @property({ type: String }) shareIcon: string | null = null;\n @property({ type: String }) imageUrl?: string | null = null;\n @property({ type: String }) brandName: string | null = null;\n @property({ type: String }) buttonText?: string | null = null;\n @property({ type: String }) configLang: LANGUAGES = \"en\";\n @property({ type: String }) baseUrl: string = DEFAULT_BASE_URL;\n @property({ type: String }) nonprofitId?: number | null = null;\n @property({ type: String }) storeId?: number | null = null;\n @property({ type: String }) transactionId?: number | null = null;\n @property({ type: String }) apiKey!: string;\n\n connectedCallback() {\n super.connectedCallback();\n }\n\n async handleShareClick() {\n try {\n if (!this.imageUrl || !this.brandName || !this.configLang) return;\n await import(\"./_share-dialog-dependencies.js\");\n\n const { nonprofitId, storeId, transactionId, baseUrl, apiKey } = this;\n void postSocialShareAnalyticsEvent({\n baseUrl,\n apiKey,\n requestBody: { eventName: \"shareImageButtonClick\", nonprofitId, storeId, timestamp: Date.now(), transactionId },\n }).catch(() => null);\n\n if (isMobile()) {\n this.openSystemShareSheet(this.imageUrl);\n } else {\n this.handleShareDialog(this.imageUrl, this.brandName);\n }\n } catch (err) {\n console.error(\"Error sharing impact:\", err);\n }\n }\n\n async handleShareDialog(imageUrl: string, brandName: string) {\n if (!imageUrl) return;\n\n const existingDialog = this.shadowRoot?.querySelector(\"sl-dialog\") as SlDialogElement;\n\n if (existingDialog) {\n existingDialog.show();\n return;\n }\n\n await import(\"./_share-dialog-dependencies.js\"); // Import libraries async to reduce bundle size if share feature is unused\n\n const modalRoot = this.shadowRoot?.querySelector(\"#modal-root\") as HTMLElement;\n\n const file = await urlToFile(imageUrl);\n\n const dataUrl = URL.createObjectURL(file);\n\n const handleClickClose = () => {\n (this.shadowRoot?.querySelector(\"sl-dialog\") as SlDialogElement)?.hide();\n };\n\n const handleClickCopy = async () => {\n void postSocialShareAnalyticsEvent({\n baseUrl: this.baseUrl,\n apiKey: this.apiKey,\n requestBody: {\n eventName: \"copyImageButtonClick\",\n nonprofitId: this.nonprofitId,\n storeId: this.storeId,\n timestamp: Date.now(),\n transactionId: this.transactionId,\n },\n }).catch(() => null);\n await navigator.clipboard.write([new ClipboardItem({ \"image/png\": file })]);\n setTimeout(handleClickClose, 250);\n };\n\n const handleClickDownload = () => {\n void postSocialShareAnalyticsEvent({\n baseUrl: this.baseUrl,\n apiKey: this.apiKey,\n requestBody: {\n eventName: \"downloadImageButtonClick\",\n nonprofitId: this.nonprofitId,\n storeId: this.storeId,\n timestamp: Date.now(),\n transactionId: this.transactionId,\n },\n }).catch(() => null);\n setTimeout(handleClickClose, 250);\n };\n\n const dialogTemplate = html`\n <style>\n .plain-button {\n border: none;\n background: none;\n font-size: inherit;\n font-family: inherit;\n }\n .share-dialog::part(panel) {\n padding: var(--beam-share-dialog-padding);\n text-align: center;\n }\n .share-title {\n font-size: var(--beam-share-title-fontSize);\n font-weight: var(--beam-share-title-fontWeight);\n }\n .share-text {\n font-size: var(--beam-share-text-fontSize);\n line-height: var(--beam-share-text-lineHeight);\n margin-top: var(--beam-share-text-marginTop);\n }\n .share-image {\n border-radius: var(--beam-share-image-borderRadius);\n width: var(--beam-share-image-width);\n display: block;\n margin: var(--beam-share-image-margin) auto;\n }\n .share-actions {\n margin: var(--beam-share-actions-margin);\n }\n .share-action-button {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n padding: 5px;\n }\n .share-action-icon {\n font-size: var(--beam-share-action-icon-size);\n }\n .share-action-button:hover .share-action-icon {\n scale: 1.1;\n }\n .share-action-text {\n font-size: var(--beam-share-action-text-fontSize);\n line-height: var(--beam-share-action-text-lineHeight);\n margin-top: var(--beam-share-text-action-marginTop);\n }\n .plain-button {\n border: none;\n background: none;\n font-size: inherit;\n font-family: inherit;\n }\n .plain-link {\n text-decoration: none;\n color: inherit;\n }\n .share-close {\n display: block;\n background-color: var(--beam-share-close-backgroundColor);\n color: var(--beam-share-close-text-color);\n justify-content: center;\n padding: var(--beam-share-close-padding);\n border-radius: var(--beam-share-close-borderRadius);\n width: 100%;\n font-size: var(--beam-share-close-fontSize);\n font-weight: var(--beam-share-close-fontWeight);\n }\n .share-close:hover {\n outline: 2px solid var(--beam-share-close-focus-borderColor);\n }\n </style>\n <sl-dialog open label=\"${strings[this.configLang].impactShareTitle()}\" no-header class=\"share-dialog\">\n <h2 class=\"share-title\">${strings[this.configLang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.configLang].impactShareText({ brandName })}</p>\n <img\n data-speedsize-ignore=\"true\"\n src=\"${imageUrl}\"\n alt=\"${strings[this.configLang].impactShareTitle()}\"\n class=\"share-image\"\n />\n <div class=\"share-actions\" style=\"display: flex; justify-content: space-evenly\">\n <div style=\"flex: 1; text-align: center\">\n <button class=\"plain-button button share-action-button\" @click=\"${handleClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.configLang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.configLang].impactShareCopy()}</div>\n </button>\n </div>\n <div style=\"flex: 1; text-align: center\">\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.configLang].impactShareTitle()}\"\n href=\"${dataUrl}\"\n @click=\"${handleClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.configLang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.configLang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n <button class=\"plain-button button share-close\" @click=\"${handleClickClose}\">\n ${strings[this.configLang].impactShareClose()}\n </button>\n </sl-dialog>\n `;\n if (modalRoot) {\n render(dialogTemplate, modalRoot);\n }\n }\n\n async openSystemShareSheet(imageUrl: string) {\n if (!imageUrl) return;\n\n const file = await urlToFile(imageUrl);\n\n if (navigator.share) {\n await navigator\n .share({\n files: [file],\n })\n .then(() => {\n const { nonprofitId, storeId, transactionId, baseUrl, apiKey } = this;\n void postSocialShareAnalyticsEvent({\n baseUrl,\n apiKey,\n requestBody: { eventName: \"shareSheetShare\", nonprofitId, storeId, timestamp: Date.now(), transactionId },\n }).catch(() => null);\n })\n .catch(() => null);\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n }\n render() {\n if (!this.imageUrl || !this.brandName || !this.configLang) return html``;\n return html`\n <style>\n .share-button {\n font-family: var(--beam-share-button-fontFamily);\n font-size: var(--beam-share-button-fontSize);\n font-weight: var(--beam-share-button-fontWeight);\n margin-top: var(--beam-share-button-marginTop);\n margin-bottom: var(--beam-share-button-marginBottom);\n text-transform: var(--beam-share-button-textTransform);\n line-height: var(--beam-share-button-lineHeight);\n background-color: var(--beam-share-button-backgroundColor);\n color: var(--beam-share-button-color, inherit);\n border-radius: var(--beam-share-button-borderRadius);\n border-color: var(--beam-share-button-borderColor);\n border-width: var(--beam-share-button-borderWidth);\n /* add extra padding on side without icon for optical alignment */\n padding: var(--beam-share-button-padding);\n width: var(--beam-share-button-width);\n transition: 0.15s;\n }\n .share-button:hover {\n background-color: var(--beam-share-button-hover-backgroundColor);\n color: var(--beam-share-button-hover-color);\n border-color: var(--beam-share-button-hover-borderColor);\n }\n .share-button-text {\n text-decoration: var(--beam-share-button-text-textDecoration);\n margin-left: 0.33em;\n }\n .share-button-icon {\n font-size: var(--beam-share-button-icon-size);\n }\n .button {\n cursor: pointer;\n }\n .icon-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n </style>\n <button\n @click=\"${this.handleShareClick}\"\n baseUrl=\"${this.baseUrl}\"\n class=\"share-button share-button-inline button icon-button\"\n part=\"share-button\"\n >\n <sl-icon\n name=\"${this.shareIcon}\"\n library=\"lucide\"\n label=\"${strings[this.configLang].impactShareButton()}\"\n class=\"share-button-icon\"\n ></sl-icon>\n <span class=\"share-button-text\">${this.buttonText || strings[this.configLang].impactShareButton()}</span>\n </button>\n <div id=\"modal-root\"></div>\n `;\n }\n}\n\ncustomElements.get(\"beam-share-button\") || customElements.define(\"beam-share-button\", BeamShareButton);\n\nexport const shareButtonConfigDefaults = {\n \"--beam-share-button-fontFamily\": \"inherit\",\n \"--beam-share-button-fontSize\": \"14px\",\n \"--beam-share-button-fontWeight\": \"600\",\n \"--beam-share-button-textTransform\": \"none\",\n \"--beam-share-button-marginTop\": \"10px\",\n \"--beam-share-button-marginBottom\": \"10px\",\n \"--beam-share-button-padding\": \"8px 18px 8px 16px\",\n \"--beam-share-button-lineHeight\": \"inherit\",\n \"--beam-share-button-color\": \"#0A323C\",\n \"--beam-share-button-backgroundColor\": \"#fff\",\n \"--beam-share-button-borderRadius\": \"30px\",\n \"--beam-share-button-borderColor\": \"#0A323C\",\n \"--beam-share-button-borderWidth\": \"1px\",\n\n \"--beam-share-button-width\": \"auto\",\n\n \"--beam-share-button-hover-borderColor\": \"transparent\",\n \"--beam-share-button-hover-backgroundColor\": \"#0A323C\",\n \"--beam-share-button-hover-color\": \"#fff\",\n\n \"--beam-share-button-icon-size\": \"16px\",\n\n \"--beam-share-button-text-textDecoration\": \"none\",\n\n \"--beam-share-dialog-padding\": \"30px 30px\",\n\n \"--beam-share-title-fontSize\": \"30px\",\n \"--beam-share-title-fontWeight\": \"bold\",\n\n \"--beam-share-text-fontSize\": \"16px\",\n \"--beam-share-text-lineHeight\": \"1.3\",\n \"--beam-share-text-marginTop\": \"10px\",\n\n \"--beam-share-image-borderRadius\": \"4px\",\n \"--beam-share-image-width\": \"200px\",\n \"--beam-share-image-margin\": \"20px\",\n\n \"--beam-share-actions-margin\": \"30px 60px\",\n \"--beam-share-action-icon-size\": \"32px\",\n\n \"--beam-share-action-text-fontSize\": \"16px\",\n \"--beam-share-action-text-lineHeight\": \"1.3\",\n \"--beam-share-text-action-marginTop\": \"10px\",\n\n \"--beam-share-close-backgroundColor\": \"#ffd522\",\n \"--beam-share-close-text-color\": \"#000\",\n \"--beam-share-close-padding\": \"12px\",\n \"--beam-share-close-borderRadius\": \"4px\",\n \"--beam-share-close-fontSize\": \"16px\",\n \"--beam-share-close-fontWeight\": \"bold\",\n\n \"--beam-share-close-focus-borderColor\": \"#c2dcff\",\n} as const;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-share-button\": BeamShareButton;\n }\n}\n"],"names":["syncElementHeights","elements","source","els","isAllHtmlElements","syncedHeight","a","b","el","isMobile","v","o","l","e","n","r","i","BeamShareButton","LitElement","DEFAULT_BASE_URL","nonprofitId","storeId","transactionId","baseUrl","apiKey","postSocialShareAnalyticsEvent","err","imageUrl","brandName","existingDialog","modalRoot","file","urlToFile","dataUrl","handleClickClose","handleClickCopy","handleClickDownload","dialogTemplate","html","strings","render","__decorateClass","property","shareButtonConfigDefaults"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{i as x,n as g,r as I,a as v,h as u,b as l,j as b}from"../chunks/lit-BEag9MFp.esm.js";import{c as $,a as f,d as T,e as k}from"../chunks/css-card-grid-tjA36yWj.esm.js";import{u as n,g as w,A as S,d as s,_ as L,c as C,e as m,f as A}from"../chunks/index-tkscjKkq.esm.js";import{D as z,W as F,x as D,n as M}from"../chunks/utils-ly9wMwUO.esm.js";import{a as E}from"../chunks/share-button-DP2wLhmP.esm.js";import{partnerLogosConfigDefaults as U}from"./beam-partner-logos.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";const y={en:{fundedTimes:({times:e=0})=>`Funded <b>${e}</b> ${e>1?"times":"time"} so far`,learnMore:()=>"Learn more",seeAll:()=>"See All"},fr:{fundedTimes:({times:e=0})=>`Financ\xE9 <b>${e}</b> fois pour l'instant`,learnMore:()=>"En savoir plus",seeAll:()=>"Voir tout"},de:{fundedTimes:({times:e=0})=>`<b>${e}</b> Mal finanziert`,learnMore:()=>"Mehr erfahren",seeAll:()=>"Alle anzeigen"},es:{fundedTimes:({times:e=0})=>`Financiado <b>${e}</b> ${e>1?"vez":"veces"}`,learnMore:()=>"Saber m\xE1s",seeAll:()=>"Ver Todo"},it:{fundedTimes:({times:e=0})=>`Finanziato <b>${e}</b> ${e>1?"volta":"volte"}`,learnMore:()=>"Scopri di pi\xF9",seeAll:()=>"Vedi Tutto"},pl:{fundedTimes:({times:e=0})=>`Udzielono wsparcia <b>${e}</b> ${e>1?"razy":"raz"}`,learnMore:()=>"Dowiedz si\u0119 wi\u0119cej",seeAll:()=>"Zobacz wszystko"},ja:{fundedTimes:({times:e=0})=>`\u73FE\u5728\u307E\u3067\u306B<b>${e}</b>\u56DE\u3001\u3092\u9054\u6210`,learnMore:()=>"\u8A73\u3057\u304F\u898B\u308B",seeAll:()=>"\u3059\u3079\u3066\u898B\u308B"}};var B=Object.defineProperty,p=(e,a,t,r)=>{for(var o=void 0,i=e.length-1,d;i>=0;i--)(d=e[i])&&(o=d(a,t,o)||o);return o&&B(a,t,o),o};class c extends v{constructor(){super(...arguments),this.baseUrl=z,this.cardStyle="image",this.lang="en",this.debug=!1,this.draftConfig=!1,this.selectedFilter=null,this.getImpactData=async()=>(k(["apiKey","chainId"],this),w({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{chainId:this.chainId,personalImpactLimit:0,widgetName:F.community_impact,version:"1.0.0",lang:this.configLang,draftConfig:this.draftConfig}})),this.impactDataController=new S(this,this.getImpactData),this.renderImageCard=a=>{const t=`${a.nonprofit?.name} image`,r=`Learn more about ${a.nonprofit?.name}`;return l`
1
+ import{i as x,n as g,r as I,a as v,h as u,b as l,j as b}from"../chunks/lit-BEag9MFp.esm.js";import{c as $,a as f,d as T,e as k}from"../chunks/css-card-grid-tjA36yWj.esm.js";import{u as n,g as w,A as S,d as s,_ as L,c as C,e as m,f as A}from"../chunks/index-BlaOItQr.esm.js";import{D as z,W as F,x as D,n as M}from"../chunks/utils-ly9wMwUO.esm.js";import{a as E}from"../chunks/share-button-BxrZs18u.esm.js";import{partnerLogosConfigDefaults as U}from"./beam-partner-logos.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";const y={en:{fundedTimes:({times:e=0})=>`Funded <b>${e}</b> ${e>1?"times":"time"} so far`,learnMore:()=>"Learn more",seeAll:()=>"See All"},fr:{fundedTimes:({times:e=0})=>`Financ\xE9 <b>${e}</b> fois pour l'instant`,learnMore:()=>"En savoir plus",seeAll:()=>"Voir tout"},de:{fundedTimes:({times:e=0})=>`<b>${e}</b> Mal finanziert`,learnMore:()=>"Mehr erfahren",seeAll:()=>"Alle anzeigen"},es:{fundedTimes:({times:e=0})=>`Financiado <b>${e}</b> ${e>1?"vez":"veces"}`,learnMore:()=>"Saber m\xE1s",seeAll:()=>"Ver Todo"},it:{fundedTimes:({times:e=0})=>`Finanziato <b>${e}</b> ${e>1?"volta":"volte"}`,learnMore:()=>"Scopri di pi\xF9",seeAll:()=>"Vedi Tutto"},pl:{fundedTimes:({times:e=0})=>`Udzielono wsparcia <b>${e}</b> ${e>1?"razy":"raz"}`,learnMore:()=>"Dowiedz si\u0119 wi\u0119cej",seeAll:()=>"Zobacz wszystko"},ja:{fundedTimes:({times:e=0})=>`\u73FE\u5728\u307E\u3067\u306B<b>${e}</b>\u56DE\u3001\u3092\u9054\u6210`,learnMore:()=>"\u8A73\u3057\u304F\u898B\u308B",seeAll:()=>"\u3059\u3079\u3066\u898B\u308B"}};var B=Object.defineProperty,p=(e,a,t,r)=>{for(var o=void 0,i=e.length-1,d;i>=0;i--)(d=e[i])&&(o=d(a,t,o)||o);return o&&B(a,t,o),o};class c extends v{constructor(){super(...arguments),this.baseUrl=z,this.cardStyle="image",this.lang="en",this.debug=!1,this.draftConfig=!1,this.selectedFilter=null,this.getImpactData=async()=>(k(["apiKey","chainId"],this),w({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{chainId:this.chainId,personalImpactLimit:0,widgetName:F.community_impact,version:"1.0.0",lang:this.configLang,draftConfig:this.draftConfig}})),this.impactDataController=new S(this,this.getImpactData),this.renderImageCard=a=>{const t=`${a.nonprofit?.name} image`,r=`Learn more about ${a.nonprofit?.name}`;return l`
2
2
  <div class="image-card" part="nonprofit-card" style="display: flex; flex-direction: column;">
3
3
  <div
4
4
  class="image-card-image-box"
@@ -1,4 +1,4 @@
1
- import{i as x,n as g,r as I,a as v,h as u,b as l,j as b}from"../chunks/lit-BEag9MFp.esm.js";import{c as $,a as f,d as T,e as k}from"../chunks/css-card-grid-tjA36yWj.esm.js";import{u as n,g as w,A as S,d as s,_ as L,c as C,e as m,f as A}from"../chunks/index-tkscjKkq.esm.js";import{D as z,W as F,x as D,n as M}from"../chunks/utils-ly9wMwUO.esm.js";import{a as E}from"../chunks/share-button-DP2wLhmP.esm.js";import{partnerLogosConfigDefaults as U}from"./beam-partner-logos.js";import"../chunks/lodash-CrMU6wKg.esm.js";const y={en:{fundedTimes:({times:e=0})=>`Funded <b>${e}</b> ${e>1?"times":"time"} so far`,learnMore:()=>"Learn more",seeAll:()=>"See All"},fr:{fundedTimes:({times:e=0})=>`Financ\xE9 <b>${e}</b> fois pour l'instant`,learnMore:()=>"En savoir plus",seeAll:()=>"Voir tout"},de:{fundedTimes:({times:e=0})=>`<b>${e}</b> Mal finanziert`,learnMore:()=>"Mehr erfahren",seeAll:()=>"Alle anzeigen"},es:{fundedTimes:({times:e=0})=>`Financiado <b>${e}</b> ${e>1?"vez":"veces"}`,learnMore:()=>"Saber m\xE1s",seeAll:()=>"Ver Todo"},it:{fundedTimes:({times:e=0})=>`Finanziato <b>${e}</b> ${e>1?"volta":"volte"}`,learnMore:()=>"Scopri di pi\xF9",seeAll:()=>"Vedi Tutto"},pl:{fundedTimes:({times:e=0})=>`Udzielono wsparcia <b>${e}</b> ${e>1?"razy":"raz"}`,learnMore:()=>"Dowiedz si\u0119 wi\u0119cej",seeAll:()=>"Zobacz wszystko"},ja:{fundedTimes:({times:e=0})=>`\u73FE\u5728\u307E\u3067\u306B<b>${e}</b>\u56DE\u3001\u3092\u9054\u6210`,learnMore:()=>"\u8A73\u3057\u304F\u898B\u308B",seeAll:()=>"\u3059\u3079\u3066\u898B\u308B"}};var B=Object.defineProperty,p=(e,a,t,r)=>{for(var o=void 0,i=e.length-1,d;i>=0;i--)(d=e[i])&&(o=d(a,t,o)||o);return o&&B(a,t,o),o};class c extends v{constructor(){super(...arguments),this.baseUrl=z,this.cardStyle="image",this.lang="en",this.debug=!1,this.draftConfig=!1,this.selectedFilter=null,this.getImpactData=async()=>(k(["apiKey","chainId"],this),w({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{chainId:this.chainId,personalImpactLimit:0,widgetName:F.community_impact,version:"1.0.0",lang:this.configLang,draftConfig:this.draftConfig}})),this.impactDataController=new S(this,this.getImpactData),this.renderImageCard=a=>{const t=`${a.nonprofit?.name} image`,r=`Learn more about ${a.nonprofit?.name}`;return l`
1
+ import{i as x,n as g,r as I,a as v,h as u,b as l,j as b}from"../chunks/lit-BEag9MFp.esm.js";import{c as $,a as f,d as T,e as k}from"../chunks/css-card-grid-tjA36yWj.esm.js";import{u as n,g as w,A as S,d as s,_ as L,c as C,e as m,f as A}from"../chunks/index-BlaOItQr.esm.js";import{D as z,W as F,x as D,n as M}from"../chunks/utils-ly9wMwUO.esm.js";import{a as E}from"../chunks/share-button-BxrZs18u.esm.js";import{partnerLogosConfigDefaults as U}from"./beam-partner-logos.js";import"../chunks/lodash-CrMU6wKg.esm.js";const y={en:{fundedTimes:({times:e=0})=>`Funded <b>${e}</b> ${e>1?"times":"time"} so far`,learnMore:()=>"Learn more",seeAll:()=>"See All"},fr:{fundedTimes:({times:e=0})=>`Financ\xE9 <b>${e}</b> fois pour l'instant`,learnMore:()=>"En savoir plus",seeAll:()=>"Voir tout"},de:{fundedTimes:({times:e=0})=>`<b>${e}</b> Mal finanziert`,learnMore:()=>"Mehr erfahren",seeAll:()=>"Alle anzeigen"},es:{fundedTimes:({times:e=0})=>`Financiado <b>${e}</b> ${e>1?"vez":"veces"}`,learnMore:()=>"Saber m\xE1s",seeAll:()=>"Ver Todo"},it:{fundedTimes:({times:e=0})=>`Finanziato <b>${e}</b> ${e>1?"volta":"volte"}`,learnMore:()=>"Scopri di pi\xF9",seeAll:()=>"Vedi Tutto"},pl:{fundedTimes:({times:e=0})=>`Udzielono wsparcia <b>${e}</b> ${e>1?"razy":"raz"}`,learnMore:()=>"Dowiedz si\u0119 wi\u0119cej",seeAll:()=>"Zobacz wszystko"},ja:{fundedTimes:({times:e=0})=>`\u73FE\u5728\u307E\u3067\u306B<b>${e}</b>\u56DE\u3001\u3092\u9054\u6210`,learnMore:()=>"\u8A73\u3057\u304F\u898B\u308B",seeAll:()=>"\u3059\u3079\u3066\u898B\u308B"}};var B=Object.defineProperty,p=(e,a,t,r)=>{for(var o=void 0,i=e.length-1,d;i>=0;i--)(d=e[i])&&(o=d(a,t,o)||o);return o&&B(a,t,o),o};class c extends v{constructor(){super(...arguments),this.baseUrl=z,this.cardStyle="image",this.lang="en",this.debug=!1,this.draftConfig=!1,this.selectedFilter=null,this.getImpactData=async()=>(k(["apiKey","chainId"],this),w({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{chainId:this.chainId,personalImpactLimit:0,widgetName:F.community_impact,version:"1.0.0",lang:this.configLang,draftConfig:this.draftConfig}})),this.impactDataController=new S(this,this.getImpactData),this.renderImageCard=a=>{const t=`${a.nonprofit?.name} image`,r=`Learn more about ${a.nonprofit?.name}`;return l`
2
2
  <div class="image-card" part="nonprofit-card" style="display: flex; flex-direction: column;">
3
3
  <div
4
4
  class="image-card-image-box"
@@ -1,4 +1,4 @@
1
- import{r as C,a as b,b as u,n as c,i as y,g as I}from"../chunks/lit-BEag9MFp.esm.js";import{d as x}from"../chunks/lodash-CrMU6wKg.esm.js";import{c as T,d as S,e as E}from"../chunks/css-card-grid-tjA36yWj.esm.js";import{a as z,u as p,b as B,A as $,_ as k,c as f,d,e as h,f as D}from"../chunks/index-tkscjKkq.esm.js";import{D as L,x as V,n as A}from"../chunks/utils-ly9wMwUO.esm.js";var R=Object.defineProperty,v=(n,e,t,i)=>{for(var a=void 0,o=n.length-1,s;o>=0;o--)(s=n[o])&&(a=s(e,t,a)||a);return a&&R(e,t,a),a};class m extends b{constructor(){super(...arguments),this.finalValue=0,this.duration=1500,this.counter=0,this.intervalId=0,this.handleCounterAnimateIfInView=e=>{e.some(t=>t.isIntersecting)&&(this.animateCounter(),this.unobserveScrollTarget())},this.animateCounter=()=>{const e=41.666666666666664,t=e/this.duration*this.finalValue;this.intervalId=setInterval(()=>{const i=this.counter+t;if(i>=this.finalValue){this.counter=this.finalValue,clearInterval(this.intervalId);return}else this.counter=i},e)},this.observer=new IntersectionObserver(this.handleCounterAnimateIfInView,{threshold:.1}),this.observeScrollTarget=()=>{const e=this.scrollTargetElement;e&&this.observer.observe(e)},this.unobserveScrollTarget=()=>{const e=this.scrollTargetElement;e&&this.observer.unobserve(e)}}connectedCallback(){super.connectedCallback();const e=window.matchMedia("(prefers-reduced-motion: reduce)").matches;this.duration===0||e?this.counter=this.finalValue:this.observeScrollTarget()}disconnectedCallback(){super.disconnectedCallback(),this.unobserveScrollTarget(),clearInterval(this.intervalId)}get scrollTargetElement(){return this.scrollTarget?document.querySelector(this.scrollTarget):this}render(){return u`${Math.ceil(this.counter).toLocaleString()}`}}v([c({type:Number})],m.prototype,"finalValue"),v([c({type:Number})],m.prototype,"duration"),v([c({type:String})],m.prototype,"scrollTarget"),v([C()],m.prototype,"counter"),customElements.get("animated-counter")||customElements.define("animated-counter",m);const j=n=>{const e=n instanceof NodeList?Array.from(n):n;if(e.length===0||!z(e))return;const t=e.sort((a,o)=>{const s=getComputedStyle(a).getPropertyValue("width").replace("px",""),g=getComputedStyle(o).getPropertyValue("width").replace("px","");return parseInt(g)-parseInt(s)})[0],i=getComputedStyle(t).getPropertyValue("width");for(const a of e)getComputedStyle(a).getPropertyValue("width")!==i&&(a.style.width=i)},w={en:{cumulativeImpactTitle:()=>"What we've funded",cumulativeImpactDescription:()=>"Here's the impact that our community has made so far in partnership with Beam. Our impact is growing every day\u2014 scroll to check out the goals we're working toward together right now."},fr:{cumulativeImpactTitle:()=>"Ce que nous avons financ\xE9",cumulativeImpactDescription:()=>"Voici l'impact que notre communaut\xE9 a eu jusqu'\xE0 pr\xE9sent en partenariat avec Beam. Notre impact grandit chaque jour : faites d\xE9filer pour d\xE9couvrir les objectifs vers lesquels nous travaillons ensemble en ce moment."},de:{cumulativeImpactTitle:()=>"Was wir finanziert haben",cumulativeImpactDescription:()=>"Hier ist die Wirkung, die unsere Community bisher in Zusammenarbeit mit Beam erzielt hat. Unsere Wirkung w\xE4chst von Tag zu Tag - scrollen Sie, um einen Blick auf die Ziele zu werfen, auf die wir derzeit gemeinsam hinarbeiten."},es:{cumulativeImpactTitle:()=>"Lo que hemos financiado",cumulativeImpactDescription:()=>"Este es el impacto que nuestra comunidad ha tenido hasta ahora en asociaci\xF3n con Beam. Nuestro impacto crece cada d\xEDa; despl\xE1cese para ver los objetivos por los que estamos trabajando juntos en este momento."},it:{cumulativeImpactTitle:()=>"Cosa abbiamo finanziato",cumulativeImpactDescription:()=>"Ecco l'impatto che la nostra comunit\xE0 ha avuto finora in collaborazione con Beam. Il nostro impatto cresce ogni giorno: scorri per scoprire gli obiettivi a cui stiamo lavorando insieme in questo momento."},pl:{cumulativeImpactTitle:()=>"Co sfinansowali\u015Bmy",cumulativeImpactDescription:()=>"Oto wp\u0142yw, jaki nasza spo\u0142eczno\u015B\u0107 wywar\u0142a dotychczas we wsp\xF3\u0142pracy z Beam. Nasz wp\u0142yw ro\u015Bnie z ka\u017Cdym dniem \u2014 przewi\u0144, aby sprawdzi\u0107 cele, nad kt\xF3rymi obecnie wsp\xF3lnie pracujemy."},ja:{cumulativeImpactTitle:()=>"What we've funded",cumulativeImpactDescription:()=>"Here's the impact that our community has made so far in partnership with Beam. Our impact is growing every day\u2014 scroll to check out the goals we're working toward together right now."}};var q=Object.defineProperty,l=(n,e,t,i)=>{for(var a=void 0,o=n.length-1,s;o>=0;o--)(s=n[o])&&(a=s(e,t,a)||a);return a&&q(e,t,a),a};const U=1.5*1e3;class r extends b{constructor(){super(...arguments),this.baseUrl=L,this.lang="en",this.disableAnimation=!1,this.debug=!1,this.draftConfig=!1,this.getCumulativeImpactData=async()=>(E(["apiKey","chainId"],this),await B({baseUrl:this.baseUrl,pathParams:{chainId:this.chainId},headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{version:"1.0.0",lang:this.configLang,draftConfig:this.draftConfig}})),this.cumulativeImpactDataController=new $(this,this.getCumulativeImpactData),this.resizeElements=x(()=>{j(this.impactRowRefs)},50,{maxWait:50,leading:!0})}get configLang(){return V[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.resizeElements)}async updated(e){const t=["chainId","baseUrl","lang"];for(const i of t)if(e.has(i)){await this.cumulativeImpactDataController.exec();break}this.resizeElements()}render(){const{data:e,error:t,loading:i}=this.cumulativeImpactDataController;return i?k():t?this.debug?f({error:t}):"":e==null?this.debug?f({error:new A("Missing data")}):"":u`
1
+ import{r as C,a as b,b as u,n as c,i as y,g as I}from"../chunks/lit-BEag9MFp.esm.js";import{d as x}from"../chunks/lodash-CrMU6wKg.esm.js";import{c as T,d as S,e as E}from"../chunks/css-card-grid-tjA36yWj.esm.js";import{a as z,u as p,b as B,A as $,_ as k,c as f,d,e as h,f as D}from"../chunks/index-BlaOItQr.esm.js";import{D as L,x as V,n as A}from"../chunks/utils-ly9wMwUO.esm.js";var R=Object.defineProperty,v=(n,e,t,i)=>{for(var a=void 0,o=n.length-1,s;o>=0;o--)(s=n[o])&&(a=s(e,t,a)||a);return a&&R(e,t,a),a};class m extends b{constructor(){super(...arguments),this.finalValue=0,this.duration=1500,this.counter=0,this.intervalId=0,this.handleCounterAnimateIfInView=e=>{e.some(t=>t.isIntersecting)&&(this.animateCounter(),this.unobserveScrollTarget())},this.animateCounter=()=>{const e=41.666666666666664,t=e/this.duration*this.finalValue;this.intervalId=setInterval(()=>{const i=this.counter+t;if(i>=this.finalValue){this.counter=this.finalValue,clearInterval(this.intervalId);return}else this.counter=i},e)},this.observer=new IntersectionObserver(this.handleCounterAnimateIfInView,{threshold:.1}),this.observeScrollTarget=()=>{const e=this.scrollTargetElement;e&&this.observer.observe(e)},this.unobserveScrollTarget=()=>{const e=this.scrollTargetElement;e&&this.observer.unobserve(e)}}connectedCallback(){super.connectedCallback();const e=window.matchMedia("(prefers-reduced-motion: reduce)").matches;this.duration===0||e?this.counter=this.finalValue:this.observeScrollTarget()}disconnectedCallback(){super.disconnectedCallback(),this.unobserveScrollTarget(),clearInterval(this.intervalId)}get scrollTargetElement(){return this.scrollTarget?document.querySelector(this.scrollTarget):this}render(){return u`${Math.ceil(this.counter).toLocaleString()}`}}v([c({type:Number})],m.prototype,"finalValue"),v([c({type:Number})],m.prototype,"duration"),v([c({type:String})],m.prototype,"scrollTarget"),v([C()],m.prototype,"counter"),customElements.get("animated-counter")||customElements.define("animated-counter",m);const j=n=>{const e=n instanceof NodeList?Array.from(n):n;if(e.length===0||!z(e))return;const t=e.sort((a,o)=>{const s=getComputedStyle(a).getPropertyValue("width").replace("px",""),g=getComputedStyle(o).getPropertyValue("width").replace("px","");return parseInt(g)-parseInt(s)})[0],i=getComputedStyle(t).getPropertyValue("width");for(const a of e)getComputedStyle(a).getPropertyValue("width")!==i&&(a.style.width=i)},w={en:{cumulativeImpactTitle:()=>"What we've funded",cumulativeImpactDescription:()=>"Here's the impact that our community has made so far in partnership with Beam. Our impact is growing every day\u2014 scroll to check out the goals we're working toward together right now."},fr:{cumulativeImpactTitle:()=>"Ce que nous avons financ\xE9",cumulativeImpactDescription:()=>"Voici l'impact que notre communaut\xE9 a eu jusqu'\xE0 pr\xE9sent en partenariat avec Beam. Notre impact grandit chaque jour : faites d\xE9filer pour d\xE9couvrir les objectifs vers lesquels nous travaillons ensemble en ce moment."},de:{cumulativeImpactTitle:()=>"Was wir finanziert haben",cumulativeImpactDescription:()=>"Hier ist die Wirkung, die unsere Community bisher in Zusammenarbeit mit Beam erzielt hat. Unsere Wirkung w\xE4chst von Tag zu Tag - scrollen Sie, um einen Blick auf die Ziele zu werfen, auf die wir derzeit gemeinsam hinarbeiten."},es:{cumulativeImpactTitle:()=>"Lo que hemos financiado",cumulativeImpactDescription:()=>"Este es el impacto que nuestra comunidad ha tenido hasta ahora en asociaci\xF3n con Beam. Nuestro impacto crece cada d\xEDa; despl\xE1cese para ver los objetivos por los que estamos trabajando juntos en este momento."},it:{cumulativeImpactTitle:()=>"Cosa abbiamo finanziato",cumulativeImpactDescription:()=>"Ecco l'impatto che la nostra comunit\xE0 ha avuto finora in collaborazione con Beam. Il nostro impatto cresce ogni giorno: scorri per scoprire gli obiettivi a cui stiamo lavorando insieme in questo momento."},pl:{cumulativeImpactTitle:()=>"Co sfinansowali\u015Bmy",cumulativeImpactDescription:()=>"Oto wp\u0142yw, jaki nasza spo\u0142eczno\u015B\u0107 wywar\u0142a dotychczas we wsp\xF3\u0142pracy z Beam. Nasz wp\u0142yw ro\u015Bnie z ka\u017Cdym dniem \u2014 przewi\u0144, aby sprawdzi\u0107 cele, nad kt\xF3rymi obecnie wsp\xF3lnie pracujemy."},ja:{cumulativeImpactTitle:()=>"What we've funded",cumulativeImpactDescription:()=>"Here's the impact that our community has made so far in partnership with Beam. Our impact is growing every day\u2014 scroll to check out the goals we're working toward together right now."}};var q=Object.defineProperty,l=(n,e,t,i)=>{for(var a=void 0,o=n.length-1,s;o>=0;o--)(s=n[o])&&(a=s(e,t,a)||a);return a&&q(e,t,a),a};const U=1.5*1e3;class r extends b{constructor(){super(...arguments),this.baseUrl=L,this.lang="en",this.disableAnimation=!1,this.debug=!1,this.draftConfig=!1,this.getCumulativeImpactData=async()=>(E(["apiKey","chainId"],this),await B({baseUrl:this.baseUrl,pathParams:{chainId:this.chainId},headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{version:"1.0.0",lang:this.configLang,draftConfig:this.draftConfig}})),this.cumulativeImpactDataController=new $(this,this.getCumulativeImpactData),this.resizeElements=x(()=>{j(this.impactRowRefs)},50,{maxWait:50,leading:!0})}get configLang(){return V[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.resizeElements)}async updated(e){const t=["chainId","baseUrl","lang"];for(const i of t)if(e.has(i)){await this.cumulativeImpactDataController.exec();break}this.resizeElements()}render(){const{data:e,error:t,loading:i}=this.cumulativeImpactDataController;return i?k():t?this.debug?f({error:t}):"":e==null?this.debug?f({error:new A("Missing data")}):"":u`
2
2
  <style>
3
3
  :host {
4
4
  ${this.cssVariables.toCSS()}
@@ -1,4 +1,4 @@
1
- import{r as C,a as b,b as u,n as c,i as y,g as I}from"../chunks/lit-BEag9MFp.esm.js";import{d as x}from"../chunks/lodash-CrMU6wKg.esm.js";import{c as T,d as S,e as E}from"../chunks/css-card-grid-tjA36yWj.esm.js";import{a as z,u as p,b as B,A as $,_ as k,c as f,d,e as h,f as D}from"../chunks/index-tkscjKkq.esm.js";import{D as L,x as V,n as A}from"../chunks/utils-ly9wMwUO.esm.js";var R=Object.defineProperty,v=(n,e,t,i)=>{for(var a=void 0,o=n.length-1,s;o>=0;o--)(s=n[o])&&(a=s(e,t,a)||a);return a&&R(e,t,a),a};class m extends b{constructor(){super(...arguments),this.finalValue=0,this.duration=1500,this.counter=0,this.intervalId=0,this.handleCounterAnimateIfInView=e=>{e.some(t=>t.isIntersecting)&&(this.animateCounter(),this.unobserveScrollTarget())},this.animateCounter=()=>{const e=41.666666666666664,t=e/this.duration*this.finalValue;this.intervalId=setInterval(()=>{const i=this.counter+t;if(i>=this.finalValue){this.counter=this.finalValue,clearInterval(this.intervalId);return}else this.counter=i},e)},this.observer=new IntersectionObserver(this.handleCounterAnimateIfInView,{threshold:.1}),this.observeScrollTarget=()=>{const e=this.scrollTargetElement;e&&this.observer.observe(e)},this.unobserveScrollTarget=()=>{const e=this.scrollTargetElement;e&&this.observer.unobserve(e)}}connectedCallback(){super.connectedCallback();const e=window.matchMedia("(prefers-reduced-motion: reduce)").matches;this.duration===0||e?this.counter=this.finalValue:this.observeScrollTarget()}disconnectedCallback(){super.disconnectedCallback(),this.unobserveScrollTarget(),clearInterval(this.intervalId)}get scrollTargetElement(){return this.scrollTarget?document.querySelector(this.scrollTarget):this}render(){return u`${Math.ceil(this.counter).toLocaleString()}`}}v([c({type:Number})],m.prototype,"finalValue"),v([c({type:Number})],m.prototype,"duration"),v([c({type:String})],m.prototype,"scrollTarget"),v([C()],m.prototype,"counter"),customElements.get("animated-counter")||customElements.define("animated-counter",m);const j=n=>{const e=n instanceof NodeList?Array.from(n):n;if(e.length===0||!z(e))return;const t=e.sort((a,o)=>{const s=getComputedStyle(a).getPropertyValue("width").replace("px",""),g=getComputedStyle(o).getPropertyValue("width").replace("px","");return parseInt(g)-parseInt(s)})[0],i=getComputedStyle(t).getPropertyValue("width");for(const a of e)getComputedStyle(a).getPropertyValue("width")!==i&&(a.style.width=i)},w={en:{cumulativeImpactTitle:()=>"What we've funded",cumulativeImpactDescription:()=>"Here's the impact that our community has made so far in partnership with Beam. Our impact is growing every day\u2014 scroll to check out the goals we're working toward together right now."},fr:{cumulativeImpactTitle:()=>"Ce que nous avons financ\xE9",cumulativeImpactDescription:()=>"Voici l'impact que notre communaut\xE9 a eu jusqu'\xE0 pr\xE9sent en partenariat avec Beam. Notre impact grandit chaque jour : faites d\xE9filer pour d\xE9couvrir les objectifs vers lesquels nous travaillons ensemble en ce moment."},de:{cumulativeImpactTitle:()=>"Was wir finanziert haben",cumulativeImpactDescription:()=>"Hier ist die Wirkung, die unsere Community bisher in Zusammenarbeit mit Beam erzielt hat. Unsere Wirkung w\xE4chst von Tag zu Tag - scrollen Sie, um einen Blick auf die Ziele zu werfen, auf die wir derzeit gemeinsam hinarbeiten."},es:{cumulativeImpactTitle:()=>"Lo que hemos financiado",cumulativeImpactDescription:()=>"Este es el impacto que nuestra comunidad ha tenido hasta ahora en asociaci\xF3n con Beam. Nuestro impacto crece cada d\xEDa; despl\xE1cese para ver los objetivos por los que estamos trabajando juntos en este momento."},it:{cumulativeImpactTitle:()=>"Cosa abbiamo finanziato",cumulativeImpactDescription:()=>"Ecco l'impatto che la nostra comunit\xE0 ha avuto finora in collaborazione con Beam. Il nostro impatto cresce ogni giorno: scorri per scoprire gli obiettivi a cui stiamo lavorando insieme in questo momento."},pl:{cumulativeImpactTitle:()=>"Co sfinansowali\u015Bmy",cumulativeImpactDescription:()=>"Oto wp\u0142yw, jaki nasza spo\u0142eczno\u015B\u0107 wywar\u0142a dotychczas we wsp\xF3\u0142pracy z Beam. Nasz wp\u0142yw ro\u015Bnie z ka\u017Cdym dniem \u2014 przewi\u0144, aby sprawdzi\u0107 cele, nad kt\xF3rymi obecnie wsp\xF3lnie pracujemy."},ja:{cumulativeImpactTitle:()=>"What we've funded",cumulativeImpactDescription:()=>"Here's the impact that our community has made so far in partnership with Beam. Our impact is growing every day\u2014 scroll to check out the goals we're working toward together right now."}};var q=Object.defineProperty,l=(n,e,t,i)=>{for(var a=void 0,o=n.length-1,s;o>=0;o--)(s=n[o])&&(a=s(e,t,a)||a);return a&&q(e,t,a),a};const U=1.5*1e3;class r extends b{constructor(){super(...arguments),this.baseUrl=L,this.lang="en",this.disableAnimation=!1,this.debug=!1,this.draftConfig=!1,this.getCumulativeImpactData=async()=>(E(["apiKey","chainId"],this),await B({baseUrl:this.baseUrl,pathParams:{chainId:this.chainId},headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{version:"1.0.0",lang:this.configLang,draftConfig:this.draftConfig}})),this.cumulativeImpactDataController=new $(this,this.getCumulativeImpactData),this.resizeElements=x(()=>{j(this.impactRowRefs)},50,{maxWait:50,leading:!0})}get configLang(){return V[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.resizeElements)}async updated(e){const t=["chainId","baseUrl","lang"];for(const i of t)if(e.has(i)){await this.cumulativeImpactDataController.exec();break}this.resizeElements()}render(){const{data:e,error:t,loading:i}=this.cumulativeImpactDataController;return i?k():t?this.debug?f({error:t}):"":e==null?this.debug?f({error:new A("Missing data")}):"":u`
1
+ import{r as C,a as b,b as u,n as c,i as y,g as I}from"../chunks/lit-BEag9MFp.esm.js";import{d as x}from"../chunks/lodash-CrMU6wKg.esm.js";import{c as T,d as S,e as E}from"../chunks/css-card-grid-tjA36yWj.esm.js";import{a as z,u as p,b as B,A as $,_ as k,c as f,d,e as h,f as D}from"../chunks/index-BlaOItQr.esm.js";import{D as L,x as V,n as A}from"../chunks/utils-ly9wMwUO.esm.js";var R=Object.defineProperty,v=(n,e,t,i)=>{for(var a=void 0,o=n.length-1,s;o>=0;o--)(s=n[o])&&(a=s(e,t,a)||a);return a&&R(e,t,a),a};class m extends b{constructor(){super(...arguments),this.finalValue=0,this.duration=1500,this.counter=0,this.intervalId=0,this.handleCounterAnimateIfInView=e=>{e.some(t=>t.isIntersecting)&&(this.animateCounter(),this.unobserveScrollTarget())},this.animateCounter=()=>{const e=41.666666666666664,t=e/this.duration*this.finalValue;this.intervalId=setInterval(()=>{const i=this.counter+t;if(i>=this.finalValue){this.counter=this.finalValue,clearInterval(this.intervalId);return}else this.counter=i},e)},this.observer=new IntersectionObserver(this.handleCounterAnimateIfInView,{threshold:.1}),this.observeScrollTarget=()=>{const e=this.scrollTargetElement;e&&this.observer.observe(e)},this.unobserveScrollTarget=()=>{const e=this.scrollTargetElement;e&&this.observer.unobserve(e)}}connectedCallback(){super.connectedCallback();const e=window.matchMedia("(prefers-reduced-motion: reduce)").matches;this.duration===0||e?this.counter=this.finalValue:this.observeScrollTarget()}disconnectedCallback(){super.disconnectedCallback(),this.unobserveScrollTarget(),clearInterval(this.intervalId)}get scrollTargetElement(){return this.scrollTarget?document.querySelector(this.scrollTarget):this}render(){return u`${Math.ceil(this.counter).toLocaleString()}`}}v([c({type:Number})],m.prototype,"finalValue"),v([c({type:Number})],m.prototype,"duration"),v([c({type:String})],m.prototype,"scrollTarget"),v([C()],m.prototype,"counter"),customElements.get("animated-counter")||customElements.define("animated-counter",m);const j=n=>{const e=n instanceof NodeList?Array.from(n):n;if(e.length===0||!z(e))return;const t=e.sort((a,o)=>{const s=getComputedStyle(a).getPropertyValue("width").replace("px",""),g=getComputedStyle(o).getPropertyValue("width").replace("px","");return parseInt(g)-parseInt(s)})[0],i=getComputedStyle(t).getPropertyValue("width");for(const a of e)getComputedStyle(a).getPropertyValue("width")!==i&&(a.style.width=i)},w={en:{cumulativeImpactTitle:()=>"What we've funded",cumulativeImpactDescription:()=>"Here's the impact that our community has made so far in partnership with Beam. Our impact is growing every day\u2014 scroll to check out the goals we're working toward together right now."},fr:{cumulativeImpactTitle:()=>"Ce que nous avons financ\xE9",cumulativeImpactDescription:()=>"Voici l'impact que notre communaut\xE9 a eu jusqu'\xE0 pr\xE9sent en partenariat avec Beam. Notre impact grandit chaque jour : faites d\xE9filer pour d\xE9couvrir les objectifs vers lesquels nous travaillons ensemble en ce moment."},de:{cumulativeImpactTitle:()=>"Was wir finanziert haben",cumulativeImpactDescription:()=>"Hier ist die Wirkung, die unsere Community bisher in Zusammenarbeit mit Beam erzielt hat. Unsere Wirkung w\xE4chst von Tag zu Tag - scrollen Sie, um einen Blick auf die Ziele zu werfen, auf die wir derzeit gemeinsam hinarbeiten."},es:{cumulativeImpactTitle:()=>"Lo que hemos financiado",cumulativeImpactDescription:()=>"Este es el impacto que nuestra comunidad ha tenido hasta ahora en asociaci\xF3n con Beam. Nuestro impacto crece cada d\xEDa; despl\xE1cese para ver los objetivos por los que estamos trabajando juntos en este momento."},it:{cumulativeImpactTitle:()=>"Cosa abbiamo finanziato",cumulativeImpactDescription:()=>"Ecco l'impatto che la nostra comunit\xE0 ha avuto finora in collaborazione con Beam. Il nostro impatto cresce ogni giorno: scorri per scoprire gli obiettivi a cui stiamo lavorando insieme in questo momento."},pl:{cumulativeImpactTitle:()=>"Co sfinansowali\u015Bmy",cumulativeImpactDescription:()=>"Oto wp\u0142yw, jaki nasza spo\u0142eczno\u015B\u0107 wywar\u0142a dotychczas we wsp\xF3\u0142pracy z Beam. Nasz wp\u0142yw ro\u015Bnie z ka\u017Cdym dniem \u2014 przewi\u0144, aby sprawdzi\u0107 cele, nad kt\xF3rymi obecnie wsp\xF3lnie pracujemy."},ja:{cumulativeImpactTitle:()=>"What we've funded",cumulativeImpactDescription:()=>"Here's the impact that our community has made so far in partnership with Beam. Our impact is growing every day\u2014 scroll to check out the goals we're working toward together right now."}};var q=Object.defineProperty,l=(n,e,t,i)=>{for(var a=void 0,o=n.length-1,s;o>=0;o--)(s=n[o])&&(a=s(e,t,a)||a);return a&&q(e,t,a),a};const U=1.5*1e3;class r extends b{constructor(){super(...arguments),this.baseUrl=L,this.lang="en",this.disableAnimation=!1,this.debug=!1,this.draftConfig=!1,this.getCumulativeImpactData=async()=>(E(["apiKey","chainId"],this),await B({baseUrl:this.baseUrl,pathParams:{chainId:this.chainId},headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{version:"1.0.0",lang:this.configLang,draftConfig:this.draftConfig}})),this.cumulativeImpactDataController=new $(this,this.getCumulativeImpactData),this.resizeElements=x(()=>{j(this.impactRowRefs)},50,{maxWait:50,leading:!0})}get configLang(){return V[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.resizeElements)}async updated(e){const t=["chainId","baseUrl","lang"];for(const i of t)if(e.has(i)){await this.cumulativeImpactDataController.exec();break}this.resizeElements()}render(){const{data:e,error:t,loading:i}=this.cumulativeImpactDataController;return i?k():t?this.debug?f({error:t}):"":e==null?this.debug?f({error:new A("Missing data")}):"":u`
2
2
  <style>
3
3
  :host {
4
4
  ${this.cssVariables.toCSS()}
@@ -1,4 +1,4 @@
1
- import{i as k,n as c,g as f,a as N,h as $,b as T}from"../chunks/lit-BEag9MFp.esm.js";import{d as F}from"../chunks/lodash-CrMU6wKg.esm.js";import{D as U,W as D,x as A,l as R}from"../chunks/utils-ly9wMwUO.esm.js";import{u as s,g as j,A as P,d as g,_,c as O,e as d,f as V}from"../chunks/index-tkscjKkq.esm.js";import{a as W}from"../chunks/share-button-DP2wLhmP.esm.js";import{c as G,d as K,e as M}from"../chunks/css-card-grid-tjA36yWj.esm.js";import"../chunks/_share-dialog-dependencies-DPid-O65.esm.js";import{s as h,a as q}from"../chunks/share-button-CqrSfHAr.esm.js";import{partnerLogosConfigDefaults as Y}from"./beam-partner-logos.esm.js";import{c as H}from"../chunks/responsive-aN8P5PqD.esm.js";import"../chunks/vendor-DUOg5fL-.esm.js";const l={en:{descriptionTitle:({nonprofitName:a="a nonprofit"})=>`You just made an impact for ${a}`,descriptionSubtitle:({brandName:a=""})=>`Check out the impact your ${a} purchase made below.`,yourImpactTitle:()=>"You\u2019re funding",communityImpactTitle:()=>"Together we\u2019re funding",personalImpactLinkCopy:({nonprofitName:a=""})=>`Learn about ${a}`,communityImpactLinkCopy:({brandName:a=""})=>`See all of the ${a} community's impact`,impactShareButton:()=>"Share to Grow Your Impact"},fr:{descriptionTitle:({nonprofitName:a="une organisation"})=>`Vous avez cr\xE9\xE9 un impact pour ${a}`,descriptionSubtitle:({brandName:a=""})=>`D\xE9couvrez ci-dessous l'impact de votre achat ${a}.`,yourImpactTitle:()=>"Vous financez",communityImpactTitle:()=>"Ensemble, nous finan\xE7ons",personalImpactLinkCopy:({nonprofitName:a=""})=>`En savoir plus sur ${a}`,communityImpactLinkCopy:({brandName:a=""})=>`Voir tout l'impact de la communaut\xE9 ${a}`,impactShareButton:()=>"Partagez pour d\xE9velopper votre impact"},de:{descriptionTitle:({nonprofitName:a="eine Organisation"})=>`Du hast einen Beitrag f\xFCr ${a} geleistet`,descriptionSubtitle:({brandName:a=""})=>`Sieh dir unten den Beitrag an, den dein ${a} Einkauf gemacht hat.`,yourImpactTitle:()=>"Du finanzierst",communityImpactTitle:()=>"Gemeinsam finanzieren wir",personalImpactLinkCopy:({nonprofitName:a=""})=>`Mehr \xFCber ${a} erfahren`,communityImpactLinkCopy:({brandName:a=""})=>`Sieh dir den gesamten Beitrag der ${a}-Community an`,impactShareButton:()=>"Teile, um deinen Beitrag zu vergr\xF6\xDFern"},es:{descriptionTitle:({nonprofitName:a="una organizaci\xF3n"})=>`Generaste un impacto para ${a}`,descriptionSubtitle:({brandName:a=""})=>`Mira a continuaci\xF3n el impacto que tu compra de ${a} ha generado.`,yourImpactTitle:()=>"Est\xE1s financiando",communityImpactTitle:()=>"Juntos estamos financiando",personalImpactLinkCopy:({nonprofitName:a=""})=>`Conoce m\xE1s sobre ${a}`,communityImpactLinkCopy:({brandName:a=""})=>`Mira todo el impacto de la comunidad ${a}`,impactShareButton:()=>"Comparte para hacer crecer tu impacto"},it:{descriptionTitle:({nonprofitName:a="un'organizzazione"})=>`Hai creato un impatto per ${a}`,descriptionSubtitle:({brandName:a=""})=>`Scopri qui sotto l'impatto del tuo acquisto ${a}.`,yourImpactTitle:()=>"Stai finanziando",communityImpactTitle:()=>"Insieme stiamo finanziando",personalImpactLinkCopy:({nonprofitName:a=""})=>`Scopri di pi\xF9 su ${a}`,communityImpactLinkCopy:({brandName:a=""})=>`Guarda tutto l'impatto della comunit\xE0 ${a}`,impactShareButton:()=>"Condividi per far crescere il tuo impatto"},pl:{descriptionTitle:({nonprofitName:a="organizacj\u0119"})=>`Wywar\u0142a\u015B_e\u015B wp\u0142yw na ${a}`,descriptionSubtitle:({brandName:a=""})=>`Sprawd\u017A poni\u017Cej, jaki wp\u0142yw mia\u0142 Tw\xF3j zakup ${a}.`,yourImpactTitle:()=>"Finansujesz",communityImpactTitle:()=>"Razem finansujemy",personalImpactLinkCopy:({nonprofitName:a=""})=>`Dowiedz si\u0119 wi\u0119cej o ${a}`,communityImpactLinkCopy:({brandName:a=""})=>`Zobacz ca\u0142y wp\u0142yw spo\u0142eczno\u015Bci ${a}`,impactShareButton:()=>"Udost\u0119pnij, aby powi\u0119kszy\u0107 sw\xF3j wp\u0142yw"},ja:{descriptionTitle:({nonprofitName:a=""})=>`\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\uFF01${a}\u3078\u306E\u5BC4\u4ED8\u306B\u3088\u308A\u3001\u4E16\u754C\u306B\u78BA\u304B\u306A\u5909\u5316\u3092\u3082\u305F\u3089\u3057\u307E\u3057\u305F\u3002`,descriptionSubtitle:({brandName:a=""})=>`${a}\u3067\u306E\u3054\u8CFC\u5165\u304C\u3001\u3069\u306E\u3088\u3046\u306B\u4EBA\u3005\u306E\u5F79\u306B\u7ACB\u3064\u304B\u3092\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\u3002`,yourImpactTitle:()=>"\u3042\u306A\u305F\u306E\u652F\u63F4\u5B9F\u7E3E",communityImpactTitle:()=>"\u79C1\u305F\u3061\u306F\u5171\u306B\u652F\u63F4\u3057\u3066\u3044\u307E\u3059",personalImpactLinkCopy:({nonprofitName:a=""})=>`${a} \u306B\u3064\u3044\u3066\u8A73\u3057\u304F\u898B\u308B`,communityImpactLinkCopy:({brandName:a=""})=>`${a}\u30B3\u30DF\u30E5\u30CB\u30C6\u30A3\u306E\u6D3B\u52D5\u5B9F\u7E3E\u3092\u3059\u3079\u3066\u898B\u308B `,impactShareButton:()=>"SNS\u3067\u30B7\u30A7\u30A2\u3059\u308B"}};var J=Object.defineProperty,i=(a,e,r,p)=>{for(var n=void 0,m=a.length-1,o;m>=0;m--)(o=a[m])&&(n=o(e,r,n)||n);return n&&J(e,r,n),n};class t extends N{constructor(){super(...arguments),this.baseUrl=U,this.lang="en",this.debug=!1,this.draftConfig=!1,this.getImpactData=async()=>(M(["apiKey","userId","nonprofitId"],this),await j({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{nonprofitId:this.nonprofitId,beamUserId:this.userId,personalImpactLimit:1,communityImpactLimit:1,storeId:this.storeId,widgetName:D.impact_overview,version:"1.0.0",draftConfig:this.draftConfig,lang:this.configLang,discountCodes:this.discountCodes&&this.discountCodes.length>0?this.discountCodes:void 0,transactionId:this.transactionId??void 0}})),this.impactDataController=new P(this,this.getImpactData),this.resizeElements=F(()=>{h(this.impactTitleRefs),h(this.impactDescriptionRefs),h(this.impactLinkRefs),h(this.goalCompletionTextRefs)},50,{maxWait:50,leading:!0})}get configLang(){return A[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.resizeElements)}async updated(e){const r=["baseUrl","storeId","apiKey","userId","lang","discountCodes"];for(const p of r)if(e.has(p)){await this.impactDataController.exec();break}this.resizeElements(),await this.handleFontLoad(this.resizeElements)}disconnectedCallback(){window.removeEventListener("resize",this.resizeElements),document.fonts.removeEventListener("loadingdone",this.resizeElements),super.disconnectedCallback()}async handleFontLoad(e){if(document.fonts.status==="loading")return await document.fonts.ready.catch(r=>R.error(r)),e()}renderCard({imageUrl:e,title:r,percentFunded:p,goalProgressText:n,description:m,urlCopy:o,impactUrl:b,isImage:u,cardType:y,goalCompletionText:v}){return T`
1
+ import{i as k,n as c,g as f,a as N,h as $,b as T}from"../chunks/lit-BEag9MFp.esm.js";import{d as F}from"../chunks/lodash-CrMU6wKg.esm.js";import{D as U,W as D,x as A,l as R}from"../chunks/utils-ly9wMwUO.esm.js";import{u as s,g as j,A as P,d as g,_,c as O,e as d,f as V}from"../chunks/index-BlaOItQr.esm.js";import{a as W}from"../chunks/share-button-BxrZs18u.esm.js";import{c as G,d as K,e as M}from"../chunks/css-card-grid-tjA36yWj.esm.js";import"../chunks/_share-dialog-dependencies-C3oAeUgm.esm.js";import{s as h,a as q}from"../chunks/share-button-DQT2zQ7w.esm.js";import{partnerLogosConfigDefaults as Y}from"./beam-partner-logos.esm.js";import{c as H}from"../chunks/responsive-aN8P5PqD.esm.js";import"../chunks/vendor-DUOg5fL-.esm.js";const l={en:{descriptionTitle:({nonprofitName:a="a nonprofit"})=>`You just made an impact for ${a}`,descriptionSubtitle:({brandName:a=""})=>`Check out the impact your ${a} purchase made below.`,yourImpactTitle:()=>"You\u2019re funding",communityImpactTitle:()=>"Together we\u2019re funding",personalImpactLinkCopy:({nonprofitName:a=""})=>`Learn about ${a}`,communityImpactLinkCopy:({brandName:a=""})=>`See all of the ${a} community's impact`,impactShareButton:()=>"Share to Grow Your Impact"},fr:{descriptionTitle:({nonprofitName:a="une organisation"})=>`Vous avez cr\xE9\xE9 un impact pour ${a}`,descriptionSubtitle:({brandName:a=""})=>`D\xE9couvrez ci-dessous l'impact de votre achat ${a}.`,yourImpactTitle:()=>"Vous financez",communityImpactTitle:()=>"Ensemble, nous finan\xE7ons",personalImpactLinkCopy:({nonprofitName:a=""})=>`En savoir plus sur ${a}`,communityImpactLinkCopy:({brandName:a=""})=>`Voir tout l'impact de la communaut\xE9 ${a}`,impactShareButton:()=>"Partagez pour d\xE9velopper votre impact"},de:{descriptionTitle:({nonprofitName:a="eine Organisation"})=>`Du hast einen Beitrag f\xFCr ${a} geleistet`,descriptionSubtitle:({brandName:a=""})=>`Sieh dir unten den Beitrag an, den dein ${a} Einkauf gemacht hat.`,yourImpactTitle:()=>"Du finanzierst",communityImpactTitle:()=>"Gemeinsam finanzieren wir",personalImpactLinkCopy:({nonprofitName:a=""})=>`Mehr \xFCber ${a} erfahren`,communityImpactLinkCopy:({brandName:a=""})=>`Sieh dir den gesamten Beitrag der ${a}-Community an`,impactShareButton:()=>"Teile, um deinen Beitrag zu vergr\xF6\xDFern"},es:{descriptionTitle:({nonprofitName:a="una organizaci\xF3n"})=>`Generaste un impacto para ${a}`,descriptionSubtitle:({brandName:a=""})=>`Mira a continuaci\xF3n el impacto que tu compra de ${a} ha generado.`,yourImpactTitle:()=>"Est\xE1s financiando",communityImpactTitle:()=>"Juntos estamos financiando",personalImpactLinkCopy:({nonprofitName:a=""})=>`Conoce m\xE1s sobre ${a}`,communityImpactLinkCopy:({brandName:a=""})=>`Mira todo el impacto de la comunidad ${a}`,impactShareButton:()=>"Comparte para hacer crecer tu impacto"},it:{descriptionTitle:({nonprofitName:a="un'organizzazione"})=>`Hai creato un impatto per ${a}`,descriptionSubtitle:({brandName:a=""})=>`Scopri qui sotto l'impatto del tuo acquisto ${a}.`,yourImpactTitle:()=>"Stai finanziando",communityImpactTitle:()=>"Insieme stiamo finanziando",personalImpactLinkCopy:({nonprofitName:a=""})=>`Scopri di pi\xF9 su ${a}`,communityImpactLinkCopy:({brandName:a=""})=>`Guarda tutto l'impatto della comunit\xE0 ${a}`,impactShareButton:()=>"Condividi per far crescere il tuo impatto"},pl:{descriptionTitle:({nonprofitName:a="organizacj\u0119"})=>`Wywar\u0142a\u015B_e\u015B wp\u0142yw na ${a}`,descriptionSubtitle:({brandName:a=""})=>`Sprawd\u017A poni\u017Cej, jaki wp\u0142yw mia\u0142 Tw\xF3j zakup ${a}.`,yourImpactTitle:()=>"Finansujesz",communityImpactTitle:()=>"Razem finansujemy",personalImpactLinkCopy:({nonprofitName:a=""})=>`Dowiedz si\u0119 wi\u0119cej o ${a}`,communityImpactLinkCopy:({brandName:a=""})=>`Zobacz ca\u0142y wp\u0142yw spo\u0142eczno\u015Bci ${a}`,impactShareButton:()=>"Udost\u0119pnij, aby powi\u0119kszy\u0107 sw\xF3j wp\u0142yw"},ja:{descriptionTitle:({nonprofitName:a=""})=>`\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\uFF01${a}\u3078\u306E\u5BC4\u4ED8\u306B\u3088\u308A\u3001\u4E16\u754C\u306B\u78BA\u304B\u306A\u5909\u5316\u3092\u3082\u305F\u3089\u3057\u307E\u3057\u305F\u3002`,descriptionSubtitle:({brandName:a=""})=>`${a}\u3067\u306E\u3054\u8CFC\u5165\u304C\u3001\u3069\u306E\u3088\u3046\u306B\u4EBA\u3005\u306E\u5F79\u306B\u7ACB\u3064\u304B\u3092\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\u3002`,yourImpactTitle:()=>"\u3042\u306A\u305F\u306E\u652F\u63F4\u5B9F\u7E3E",communityImpactTitle:()=>"\u79C1\u305F\u3061\u306F\u5171\u306B\u652F\u63F4\u3057\u3066\u3044\u307E\u3059",personalImpactLinkCopy:({nonprofitName:a=""})=>`${a} \u306B\u3064\u3044\u3066\u8A73\u3057\u304F\u898B\u308B`,communityImpactLinkCopy:({brandName:a=""})=>`${a}\u30B3\u30DF\u30E5\u30CB\u30C6\u30A3\u306E\u6D3B\u52D5\u5B9F\u7E3E\u3092\u3059\u3079\u3066\u898B\u308B `,impactShareButton:()=>"SNS\u3067\u30B7\u30A7\u30A2\u3059\u308B"}};var J=Object.defineProperty,i=(a,e,r,p)=>{for(var n=void 0,m=a.length-1,o;m>=0;m--)(o=a[m])&&(n=o(e,r,n)||n);return n&&J(e,r,n),n};class t extends N{constructor(){super(...arguments),this.baseUrl=U,this.lang="en",this.debug=!1,this.draftConfig=!1,this.getImpactData=async()=>(M(["apiKey","userId","nonprofitId"],this),await j({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{nonprofitId:this.nonprofitId,beamUserId:this.userId,personalImpactLimit:1,communityImpactLimit:1,storeId:this.storeId,widgetName:D.impact_overview,version:"1.0.0",draftConfig:this.draftConfig,lang:this.configLang,discountCodes:this.discountCodes&&this.discountCodes.length>0?this.discountCodes:void 0,transactionId:this.transactionId??void 0}})),this.impactDataController=new P(this,this.getImpactData),this.resizeElements=F(()=>{h(this.impactTitleRefs),h(this.impactDescriptionRefs),h(this.impactLinkRefs),h(this.goalCompletionTextRefs)},50,{maxWait:50,leading:!0})}get configLang(){return A[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.resizeElements)}async updated(e){const r=["baseUrl","storeId","apiKey","userId","lang","discountCodes"];for(const p of r)if(e.has(p)){await this.impactDataController.exec();break}this.resizeElements(),await this.handleFontLoad(this.resizeElements)}disconnectedCallback(){window.removeEventListener("resize",this.resizeElements),document.fonts.removeEventListener("loadingdone",this.resizeElements),super.disconnectedCallback()}async handleFontLoad(e){if(document.fonts.status==="loading")return await document.fonts.ready.catch(r=>R.error(r)),e()}renderCard({imageUrl:e,title:r,percentFunded:p,goalProgressText:n,description:m,urlCopy:o,impactUrl:b,isImage:u,cardType:y,goalCompletionText:v}){return T`
2
2
  <div class="impact-card ${u?"":"icon"}" part="impact-card">
3
3
  <div class="${u?"":"icon-background "}">
4
4
  <img