@beamimpact/web-sdk 1.57.5 → 1.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dist/chunks/{_share-dialog-dependencies-DsJ2sKCC.esm.js → _share-dialog-dependencies-Caoc1gRc.esm.js} +2 -2
  2. package/dist/chunks/{_share-dialog-dependencies-DsJ2sKCC.esm.js.map → _share-dialog-dependencies-Caoc1gRc.esm.js.map} +1 -1
  3. package/dist/chunks/{css-card-grid-CiqEjkwR.esm.js → css-card-grid-tjA36yWj.esm.js} +2 -2
  4. package/dist/chunks/{css-card-grid-CiqEjkwR.esm.js.map → css-card-grid-tjA36yWj.esm.js.map} +1 -1
  5. package/dist/chunks/{handlebars-B_i-to-h.esm.js → handlebars-3tRO54kz.esm.js} +7 -7
  6. package/dist/chunks/{handlebars-B_i-to-h.esm.js.map → handlebars-3tRO54kz.esm.js.map} +1 -1
  7. package/dist/chunks/index-ADw_ucEx.esm.js +2 -0
  8. package/dist/chunks/{index-Duq6tIq8.esm.js.map → index-ADw_ucEx.esm.js.map} +1 -1
  9. package/dist/chunks/index-BF0X_60j.esm.js +32 -0
  10. package/dist/chunks/index-BF0X_60j.esm.js.map +1 -0
  11. package/dist/chunks/index-BxivRkBL.esm.js +2 -0
  12. package/dist/chunks/{index-BaAhcyM6.esm.js.map → index-BxivRkBL.esm.js.map} +1 -1
  13. package/dist/chunks/{index-BebFL9KU.esm.js → index-DtAcPGd4.esm.js} +4 -4
  14. package/dist/chunks/index-DtAcPGd4.esm.js.map +1 -0
  15. package/dist/chunks/index-E6IoMPQu.esm.js +32 -0
  16. package/dist/chunks/index-E6IoMPQu.esm.js.map +1 -0
  17. package/dist/chunks/{index-Beh5bQDw.esm.js → index-M8hQ6GXf.esm.js} +7 -7
  18. package/dist/chunks/{index-Beh5bQDw.esm.js.map → index-M8hQ6GXf.esm.js.map} +1 -1
  19. package/dist/chunks/{index-B-QZylCa.esm.js → index-Yt9xXa7z.esm.js} +4 -4
  20. package/dist/chunks/index-Yt9xXa7z.esm.js.map +1 -0
  21. package/dist/chunks/{promo-pill-label-BWPhroK6.esm.js → promo-pill-label-DCBXltdj.esm.js} +2 -2
  22. package/dist/chunks/{promo-pill-label-BWPhroK6.esm.js.map → promo-pill-label-DCBXltdj.esm.js.map} +1 -1
  23. package/dist/chunks/{share-button-CIP03E7T.esm.js → share-button-C1PRjoPw.esm.js} +2 -2
  24. package/dist/chunks/{share-button-CIP03E7T.esm.js.map → share-button-C1PRjoPw.esm.js.map} +1 -1
  25. package/dist/chunks/{share-button-C-QLknal.esm.js → share-button-CNq5lDre.esm.js} +2 -2
  26. package/dist/chunks/{share-button-C-QLknal.esm.js.map → share-button-CNq5lDre.esm.js.map} +1 -1
  27. package/dist/chunks/statsig-DlszSNOf.esm.js +2 -0
  28. package/dist/chunks/statsig-DlszSNOf.esm.js.map +1 -0
  29. package/dist/chunks/{utils-C5hmbxa4.esm.js → utils-ly9wMwUO.esm.js} +2 -2
  30. package/dist/chunks/{utils-C5hmbxa4.esm.js.map → utils-ly9wMwUO.esm.js.map} +1 -1
  31. package/dist/components/community-impact.esm.js +1 -1
  32. package/dist/components/community-impact.js +1 -1
  33. package/dist/components/cumulative-impact.esm.js +1 -1
  34. package/dist/components/cumulative-impact.js +1 -1
  35. package/dist/components/impact-overview.esm.js +1 -1
  36. package/dist/components/impact-overview.js +1 -1
  37. package/dist/components/index.esm.js +1 -1
  38. package/dist/components/index.js +1 -1
  39. package/dist/components/post-purchase.esm.js +1 -1
  40. package/dist/components/post-purchase.js +1 -1
  41. package/dist/components/product-details-page.esm.js +3 -3
  42. package/dist/components/product-details-page.js +3 -3
  43. package/dist/components/redeem-transaction.esm.js +1 -1
  44. package/dist/components/redeem-transaction.js +1 -1
  45. package/dist/components/select-nonprofit.esm.js +22 -24
  46. package/dist/components/select-nonprofit.esm.js.map +1 -1
  47. package/dist/components/select-nonprofit.js +22 -24
  48. package/dist/components/select-nonprofit.js.map +1 -1
  49. package/dist/components/select-subscription-nonprofit.esm.js +2 -2
  50. package/dist/components/select-subscription-nonprofit.esm.js.map +1 -1
  51. package/dist/components/select-subscription-nonprofit.js +2 -2
  52. package/dist/components/select-subscription-nonprofit.js.map +1 -1
  53. package/dist/components/shopify.esm.js +1 -1
  54. package/dist/components/shopify.js +1 -1
  55. package/dist/components/social-share.esm.js +1 -1
  56. package/dist/components/social-share.js +1 -1
  57. package/dist/components/subscriber-select-nonprofit.esm.js +4 -4
  58. package/dist/components/subscriber-select-nonprofit.esm.js.map +1 -1
  59. package/dist/components/subscriber-select-nonprofit.js +4 -4
  60. package/dist/components/subscriber-select-nonprofit.js.map +1 -1
  61. package/dist/components/subscription-impact.esm.js +1 -1
  62. package/dist/components/subscription-impact.js +1 -1
  63. package/dist/components/subscription-management.esm.js +1 -1
  64. package/dist/components/subscription-management.esm.js.map +1 -1
  65. package/dist/components/subscription-management.js +1 -1
  66. package/dist/components/subscription-management.js.map +1 -1
  67. package/dist/index.esm.js +1 -1
  68. package/dist/index.js +1 -1
  69. package/dist/integrations/beam.esm.js +1 -1
  70. package/dist/integrations/beam.js +1 -1
  71. package/dist/integrations/cart.esm.js +1 -1
  72. package/dist/integrations/cart.js +1 -1
  73. package/dist/integrations/logs.esm.js +1 -1
  74. package/dist/integrations/logs.js +1 -1
  75. package/dist/integrations/promoManager.esm.js +1 -1
  76. package/dist/integrations/promoManager.js +1 -1
  77. package/dist/integrations/session.esm.js +1 -1
  78. package/dist/integrations/session.js +1 -1
  79. package/dist/integrations/shopify-order.esm.js +1 -1
  80. package/dist/integrations/shopify-order.js +1 -1
  81. package/dist/integrations/shopify.esm.js +1 -1
  82. package/dist/integrations/shopify.js +1 -1
  83. package/dist/integrations/statsig.d.ts +7 -4
  84. package/dist/integrations/statsig.esm.js +14 -14
  85. package/dist/integrations/statsig.esm.js.map +1 -1
  86. package/dist/integrations/statsig.js +14 -14
  87. package/dist/integrations/statsig.js.map +1 -1
  88. package/dist/integrations/utils.esm.js +1 -1
  89. package/dist/integrations/utils.js +1 -1
  90. package/dist/react/community-impact.esm.js +1 -1
  91. package/dist/react/community-impact.js +1 -1
  92. package/dist/react/cumulative-impact.esm.js +1 -1
  93. package/dist/react/cumulative-impact.js +1 -1
  94. package/dist/react/impact-overview.esm.js +1 -1
  95. package/dist/react/impact-overview.js +1 -1
  96. package/dist/react/index.esm.js +1 -1
  97. package/dist/react/index.js +1 -1
  98. package/dist/react/post-purchase.esm.js +1 -1
  99. package/dist/react/post-purchase.js +1 -1
  100. package/dist/react/product-details-page.esm.js +1 -1
  101. package/dist/react/product-details-page.js +1 -1
  102. package/dist/react/redeem-transaction.esm.js +1 -1
  103. package/dist/react/redeem-transaction.js +1 -1
  104. package/dist/react/select-nonprofit.esm.js +1 -1
  105. package/dist/react/select-nonprofit.js +1 -1
  106. package/dist/react/select-subscription-nonprofit.esm.js +1 -1
  107. package/dist/react/select-subscription-nonprofit.js +1 -1
  108. package/dist/react/shopify.esm.js +1 -1
  109. package/dist/react/shopify.js +1 -1
  110. package/dist/react/social-share.esm.js +1 -1
  111. package/dist/react/social-share.js +1 -1
  112. package/dist/react/subscriber-select-nonprofit.esm.js +1 -1
  113. package/dist/react/subscriber-select-nonprofit.js +1 -1
  114. package/dist/react/subscription-impact.esm.js +1 -1
  115. package/dist/react/subscription-impact.js +1 -1
  116. package/dist/react/subscription-management.esm.js +1 -1
  117. package/dist/react/subscription-management.js +1 -1
  118. package/dist/utils/beam-errors.esm.js +1 -1
  119. package/dist/utils/beam-errors.js +1 -1
  120. package/dist/utils/cart.esm.js +1 -1
  121. package/dist/utils/cart.js +1 -1
  122. package/dist/utils/clear-beam-storage.esm.js +1 -1
  123. package/dist/utils/clear-beam-storage.js +1 -1
  124. package/dist/utils/cookies.esm.js +1 -1
  125. package/dist/utils/cookies.js +1 -1
  126. package/dist/utils/events.esm.js +1 -1
  127. package/dist/utils/events.js +1 -1
  128. package/dist/utils/local-storage.esm.js +1 -1
  129. package/dist/utils/local-storage.js +1 -1
  130. package/dist/utils/logger.esm.js +1 -1
  131. package/dist/utils/logger.js +1 -1
  132. package/dist/utils/makeApiKeyHeader.esm.js +1 -1
  133. package/dist/utils/makeApiKeyHeader.js +1 -1
  134. package/dist/utils/memoize-last.esm.js +1 -1
  135. package/dist/utils/memoize-last.js +1 -1
  136. package/dist/utils/network-listeners.esm.js +1 -1
  137. package/dist/utils/network-listeners.js +1 -1
  138. package/dist/utils/promoManager.esm.js +1 -1
  139. package/dist/utils/promoManager.js +1 -1
  140. package/dist/utils/remote-session.esm.js +1 -1
  141. package/dist/utils/remote-session.js +1 -1
  142. package/dist/utils/wait-for-element.esm.js +1 -1
  143. package/dist/utils/wait-for-element.js +1 -1
  144. package/package.json +2 -1
  145. package/dist/chunks/index-B-QZylCa.esm.js.map +0 -1
  146. package/dist/chunks/index-B8g4VHgI.esm.js +0 -32
  147. package/dist/chunks/index-B8g4VHgI.esm.js.map +0 -1
  148. package/dist/chunks/index-BX0p4BVY.esm.js +0 -32
  149. package/dist/chunks/index-BX0p4BVY.esm.js.map +0 -1
  150. package/dist/chunks/index-BaAhcyM6.esm.js +0 -2
  151. package/dist/chunks/index-BebFL9KU.esm.js.map +0 -1
  152. package/dist/chunks/index-Duq6tIq8.esm.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"subscription-management.js","sources":["../../src/components/subscription-management/strings.ts","../../src/components/subscription-management/index.ts"],"sourcesContent":["export const strings = {\n en: {\n changeNonprofitButton: () => `Change Nonprofit`,\n previousImpactHeader: () => `Your Previous Impact`,\n previousNonprofitButton: () => `Back to Previous Nonprofit`,\n supportAgainButton: () => `Support Again`,\n via: () => `via`,\n showAllButton: () => `Show All`,\n showLessButton: () => `Show Less`,\n },\n fr: {\n changeNonprofitButton: () => `Change Nonprofit`,\n previousImpactHeader: () => `Your Previous Impact`,\n previousNonprofitButton: () => `Back to Previous Nonprofit`,\n supportAgainButton: () => `Support Again`,\n via: () => `via`,\n showAllButton: () => `Show All`,\n showLessButton: () => `Show Less`,\n },\n de: {\n changeNonprofitButton: () => `Change Nonprofit`,\n previousImpactHeader: () => `Your Previous Impact`,\n previousNonprofitButton: () => `Back to Previous Nonprofit`,\n supportAgainButton: () => `Support Again`,\n via: () => `via`,\n showAllButton: () => `Show All`,\n showLessButton: () => `Show Less`,\n },\n es: {\n changeNonprofitButton: () => `Change Nonprofit`,\n previousImpactHeader: () => `Your Previous Impact`,\n previousNonprofitButton: () => `Back to Previous Nonprofit`,\n supportAgainButton: () => `Support Again`,\n via: () => `via`,\n showAllButton: () => `Show All`,\n showLessButton: () => `Show Less`,\n },\n it: {\n changeNonprofitButton: () => `Change Nonprofit`,\n previousImpactHeader: () => `Your Previous Impact`,\n previousNonprofitButton: () => `Back to Previous Nonprofit`,\n supportAgainButton: () => `Support Again`,\n via: () => `via`,\n showAllButton: () => `Show All`,\n showLessButton: () => `Show Less`,\n },\n pl: {\n changeNonprofitButton: () => `Change Nonprofit`,\n previousImpactHeader: () => `Your Previous Impact`,\n previousNonprofitButton: () => `Back to Previous Nonprofit`,\n supportAgainButton: () => `Support Again`,\n via: () => `via`,\n showAllButton: () => `Show All`,\n showLessButton: () => `Show Less`,\n },\n ja: {\n changeNonprofitButton: () => `Change Nonprofit`,\n previousImpactHeader: () => `Your Previous Impact`,\n previousNonprofitButton: () => `Back to Previous Nonprofit`,\n supportAgainButton: () => `Support Again`,\n via: () => `via`,\n showAllButton: () => `Show All`,\n showLessButton: () => `Show Less`,\n },\n};\n","import { css, html, LitElement } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { state } from \"lit/decorators/state.js\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { TCart } from \"../../shared/cart-contents\";\nimport { progressBarConfigDefaults } from \"../../shared/components/progress-bar\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { postFindOrCreateSubscription, postChainEligibleNonprofitsForCart, getImpact } from \"../../api-sdk/v3/routes\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport \"../select-subscription-nonprofit\";\nimport \"../subscription-impact\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { partnerLogosConfigDefaults } from \"../beam-partner-logos\";\nimport { makeApiKeyHeader } from \"../../utils/makeApiKeyHeader\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { localizeUserString } from \"../../shared/localize\";\nimport { TNumericId } from \"../../shared/types\";\nimport { cssCardGrid } from \"../../shared/fragments/css-card-grid\";\nimport { strings } from \"./strings\";\n\ninterface RequiredDataPropsWithEmail {\n email: string;\n apiKey: string;\n subscriptionId: string;\n}\n\ninterface RequiredDataPropsWithPartnerUserId {\n partnerUserId: string;\n apiKey: string;\n subscriptionId: string;\n}\n\ntype TRequiredDataProps = RequiredDataPropsWithEmail | RequiredDataPropsWithPartnerUserId;\nexport type TIAPIV3PersonalImpact = Awaited<ReturnType<typeof import(\"../../api-sdk/v3/routes\").getImpact>>[\"personal\"];\nexport type TIAPIV3EligibleNonprofits = Awaited<\n ReturnType<typeof import(\"../../api-sdk/v3/routes\").getChainNonprofits>\n>[\"nonprofits\"];\nexport type TIAPIV3EligibleNonprofitConfig = Awaited<\n ReturnType<typeof import(\"../../api-sdk/v3/routes\").getChainNonprofits>\n>[\"config\"];\n\nconst INITIAL_TILE_COUNT = 3;\nconst MIN_PREVIOUS_IMPACT = 0;\nconst MIN_PROGRESS_THRESHOLD = 1;\nconst MAX_PROGRESS_THRESHOLD = 98;\n\nexport class BeamSubscriptionManagement extends LitElement {\n static tagName = \"beam-subscription-management\";\n\n @property({ type: String })\n public baseUrl: string = DEFAULT_BASE_URL;\n\n @property({ type: String })\n public apiKey!: TRequiredDataProps[\"apiKey\"];\n\n @property({ type: String })\n public subscriptionId!: TRequiredDataProps[\"subscriptionId\"];\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 email?: RequiredDataPropsWithEmail[\"email\"]; // Either email or partnerUserId must be provided\n\n @property({ type: String })\n public partnerUserId?: RequiredDataPropsWithPartnerUserId[\"partnerUserId\"]; // Either email or partnerUserId 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: Number, reflect: true })\n public selectedNonprofitId?: TNumericId;\n\n @property({ type: String })\n public lang: LANGUAGES = \"en\";\n\n @property({ type: Object })\n public cart?: TCart;\n\n @property({ type: Boolean })\n public debug = false;\n\n @property({ type: Boolean })\n public draftConfig = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n @state() private activeWidget: \"select-subscription-nonprofit\" | \"subscription-impact\" | null = null; // Based on /findSubscriptionByRemoteId\n @state() private nonprofitId: number | null = null; // From /findSubscriptionByRemoteId response\n @state() private beamUserId: string | null = null; // From findSubscriptionByRemoteId\n @state() private eligibleNonprofits: TIAPIV3EligibleNonprofits = [];\n @state() private showAllTiles = false;\n @state() private isMobile = window.innerWidth < 720;\n @state() private dropdownVisible = false;\n @state() private emojis = [\"👏\", \"💪\", \"🙌\", \"✨\", \"🥇\"];\n\n private subscriptionDataController = new AsyncController<typeof this.fetchSubscription>(this, this.fetchSubscription);\n private eligibleNonprofitsDataController = new AsyncController<typeof this.fetchEligibleNonprofits>(\n this,\n this.fetchEligibleNonprofits,\n );\n private personalImpactDataController = new AsyncController<typeof this.fetchImpact>(this, this.fetchImpact);\n\n async firstUpdated() {\n if (!this.email && !this.partnerUserId) {\n throw new MissingConfig(\n [\"email\", \"partnerUserId\"],\n \"One of the following properties needs to be specified: email, partnerUserId \",\n );\n }\n enforceConfig<TRequiredDataProps>([\"apiKey\", \"subscriptionId\"], this);\n await this.loadWidget();\n }\n\n async loadWidget() {\n // In parallel:\n // (1). Fetch eligible nonprofits [storeId and chainName]\n // (2). Fetch subscription [userId and nonprofitId]\n await Promise.all([this.fetchEligibleNonprofits(), this.fetchSubscription()]);\n await this.fetchImpact();\n this.activeWidget = this.nonprofitId ? \"subscription-impact\" : \"select-subscription-nonprofit\";\n }\n\n async fetchEligibleNonprofits() {\n enforceConfig<TRequiredDataProps>([\"apiKey\", \"subscriptionId\"], this);\n const eligibleNonprofitResult = await postChainEligibleNonprofitsForCart({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n requestBody: {\n storeId: this.storeId || undefined,\n postalCode: this.postalCode || undefined,\n countryCode: this.countryCode || undefined,\n widgetName: WIDGET_NAMES.subscription_management,\n version: \"1.0.0\",\n },\n });\n this.storeId = eligibleNonprofitResult.store.id;\n this.eligibleNonprofits = eligibleNonprofitResult.nonprofits;\n this.eligibleNonprofitsDataController.data = eligibleNonprofitResult;\n return eligibleNonprofitResult;\n }\n\n async fetchSubscription() {\n enforceConfig<TRequiredDataProps>([\"apiKey\", \"subscriptionId\"], this);\n const subscriptionResult = await postFindOrCreateSubscription({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n requestBody: {\n remoteSubscriptionId: this.subscriptionId,\n email: this.email,\n partnerUserId: this.partnerUserId,\n },\n });\n\n this.beamUserId = subscriptionResult.beamUserId; // Returned in response regardless of subscription redemption\n this.nonprofitId = subscriptionResult.nonprofit?.id || null;\n return subscriptionResult;\n }\n\n async fetchImpact() {\n enforceConfig<TRequiredDataProps>([\"apiKey\"], this);\n\n const impactResult = await getImpact({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n queryParams: {\n beamUserId: this.beamUserId ? this.beamUserId : undefined,\n widgetName: \"subscription-management\",\n version: \"1.0.0\",\n lang: this.configLang,\n },\n });\n\n this.personalImpactDataController.data = impactResult;\n return impactResult;\n }\n\n // Used to filter the full personal impact results to\n // just ones that are displayable\n // 1. Checks \"includeInPersonalImpact\" for each nonprofit\n // 2. Checks if it's the currently supported nonprofit, and if it's been funded at least once\n getDisplayablePreviousImpacts() {\n const personalImpacts = this.personalImpactDataController.data?.personal;\n if (!personalImpacts || personalImpacts?.length < 1) {\n return [];\n }\n\n return personalImpacts.filter((impact) => {\n if (!impact.nonprofit.includeInPersonalImpact) {\n return false;\n }\n if (\n impact.nonprofit.id === this.nonprofitId &&\n (!impact.impact.goalCompletionText || impact.impact.goalCompletionText?.length < 1)\n ) {\n return false;\n }\n return true;\n });\n }\n\n handleSwapNonprofitButtonClick() {\n this.activeWidget = \"select-subscription-nonprofit\";\n }\n\n handleBackToSubscriptionImpactButtonClick() {\n this.activeWidget = \"subscription-impact\";\n }\n\n handleSupportAgainButtonClick(nonprofitId: TNumericId, nonprofitName: string) {\n this.activeWidget = \"select-subscription-nonprofit\";\n this.selectedNonprofitId = nonprofitId;\n\n const event = new BeamNonprofitSelectEvent({\n selectedNonprofitId: nonprofitId,\n nonprofitName: nonprofitName,\n source: WIDGET_NAMES.subscription_management,\n timestamp: new Date(),\n });\n this.dispatchEvent(event);\n }\n\n handleNonprofitSelect(event: Event) {\n if (!(event instanceof BeamNonprofitSelectEvent)) return; // TypeScript guard\n const { selectedNonprofitId } = event.detail;\n this.nonprofitId = selectedNonprofitId ?? null;\n this.activeWidget = \"subscription-impact\";\n }\n\n isNonprofitEligible(nonprofitId: TNumericId) {\n return this.eligibleNonprofits.some((np: TIAPIV3EligibleNonprofits[0]) => np.nonprofit.id === nonprofitId);\n }\n\n shouldDisplayProgressBar(progressValue: number) {\n return progressValue > MIN_PROGRESS_THRESHOLD && progressValue < MAX_PROGRESS_THRESHOLD;\n }\n\n public get cssVariables() {\n const defaults = {\n ...partnerLogosConfigDefaults,\n ...progressBarConfigDefaults,\n \"--beam-fontFamily\": \"inherit\",\n \"--beam-fontStyle\": \"inherit\",\n \"--beam-fontSize\": \"inherit\",\n \"--beam-textColor\": \"inherit\",\n \"--beam-backgroundColor\": \"inherit\",\n \"--beam-SubscriptionManagement-widgetContainer-borderColor\": \"#d5d5d5\",\n \"--beam-SubscriptionManagement-widgetContainer-borderRadius\": \"4px\",\n \"--beam-SubscriptionManagement-widgetContainer-padding\": \"8px 20px\",\n \"--beam-SubscriptionManagement-widgetContainer-backgroundColor\": \"inherit\",\n \"--beam-SubscriptionManagement-widgetContainer-maxWidth\": \"820px\",\n \"--beam-SubscriptionManagement-logo-align-desktop\": \"left\",\n \"--beam-SubscriptionManagement-logo-align-mobile\": \"center\",\n \"--beam-SubscriptionManagement-previousImpact-cardStyle\": \"'selected_icon'\",\n \"--beam-SubscriptionManagement-header-padding\": \"10px 20px 10px 0px\",\n \"--beam-SubscriptionManagement-header-borderRadius\": \"0px\",\n \"--beam-SubscriptionManagement-header-backgroundColor\": \"#fff\",\n \"--beam-SubscriptionManagement-header-meatballsMenu-fontSize\": \"24px\",\n \"--beam-SubscriptionManagement-header-meatballsMenu-color\": \"24px\",\n \"--beam-SubscriptionManagement-lineBreak-color\": \"#ddd\",\n \"--beam-SubscriptionManagement-lineBreak-width\": \"1px\",\n \"--beam-SubscriptionManagement-lineBreak-margin\": \"10px 0 20px 0\",\n \"--beam-SubscriptionManagement-tile-marginBottom\": \"20px\",\n \"--beam-SubscriptionManagement-tile-border-width\": \"0px\",\n \"--beam-SubscriptionManagement-tile-border-color\": \"#ddd\",\n \"--beam-SubscriptionManagement-tile-padding\": \"12.5px\",\n \"--beam-SubscriptionManagement-tile-borderRadius\": \"8px\",\n \"--beam-SubscriptionManagement-tile-background\": \"#f8fbfb\",\n \"--beam-SubscriptionManagement-tileContent-gap\": \" 15px\",\n \"--beam-SubscriptionManagement-tileContent-padding\": \"5px 0px\",\n \"--beam-SubscriptionManagement-tile-icon-borderRadius\": \"4px\",\n \"--beam-SubscriptionManagement-tile-icon-height\": \"28px\",\n \"--beam-SubscriptionManagement-tile-icon-background-borderRadius\": \"50%\",\n \"--beam-SubscriptionManagement-tile-icon-background-width\": \"50px\",\n \"--beam-SubscriptionManagement-tile-icon-background-height\": \"50px\",\n \"--beam-SubscriptionManagement-tile-icon-background-backgroundColor\": \"#0a323c\",\n \"--beam-SubscriptionManagement-tile-icon-background-padding\": \"10px\",\n \"--beam-SubscriptionManagement-blockTileDescription-gap\": \"5px\",\n \"--beam-SubscriptionManagement-blockTileDescription-padding\": \"0px\",\n \"--beam-SubscriptionManagement-blockTileDescription-lineHeight\": \"130%\",\n \"--beam-SubscriptionManagement-blockTileDescription-progressBar-width-desktop\": \"60%\",\n \"--beam-SubscriptionManagement-blockTileDescription-progressBar-width-mobile\": \"100%\",\n \"--beam-SubscriptionManagement-subWidgetContainer-padding\": \"0px 0px 10px\",\n \"--beam-SubscriptionManagement-previousImpactContainer-padding-desktop\": \"10px 24px 10px 0px\",\n \"--beam-SubscriptionManagement-previousImpactContainer-padding-mobile\": \"0px\",\n \"--beam-SubscriptionManagement-dropDown-padding\": \"15px 8px\",\n \"--beam-SubscriptionManagement-dropDown-borderRadius\": \"8px\",\n \"--beam-SubscriptionManagement-dropDown-backgroundColor\": \"#f8fbfb\",\n \"--beam-SubscriptionManagement-dropDown-boxShadow\": \"0px 4px 28px 0px rgba(0, 0, 0, 0.04)\",\n \"--beam-SubscriptionManagement-dropDown-width\": \"128px\",\n \"--beam-SubscriptionManagement-dropDown-hover-backgroundColor\": \"#E1F1EE\",\n \"--beam-SubscriptionManagement-dropDownOptions-textDecoration\": \"underline\",\n ...defineCustomText(\"--beam-SubscriptionManagement-dropDownOptions\", {\n fontSize: \"12px\",\n fontWeight: \"400\",\n textTransform: \"capitalize\",\n fontStyle: \"normal\",\n color: \"#0a323c\",\n }),\n \"--beam-SubscriptionManagement-yourPreviousImpactTitle-marginBottom\": \"15px\",\n ...defineCustomText(\"--beam-SubscriptionManagement-yourPreviousImpactTitle\", {\n fontSize: \"18px\",\n fontWeight: \"bold\",\n lineHeight: \"120%\",\n textTransform: \"capitalize\",\n fontStyle: \"normal\",\n color: \"#0a323c\",\n }),\n \"--beam-SubscriptionManagement-yourPreviousImpact-showAllButton-textDecoration\": \"underline\",\n ...defineCustomText(\"--beam-SubscriptionManagement-yourPreviousImpact-showAllButton\", {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n lineHeight: \"120%\",\n textTransform: \"capitalize\",\n fontStyle: \"normal\",\n color: \"#0a323c\",\n }),\n \"--beam-SubscriptionManagement-tile-title-letterSpacing\": \"0.36px\",\n ...defineCustomText(\"--beam-SubscriptionManagement-tile-title\", {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n lineHeight: \"120%\",\n textTransform: \"uppercase\",\n fontStyle: \"normal\",\n color: \"#0a323c\",\n }),\n ...defineCustomText(\"--beam-SubscriptionManagement-tile-description\", {\n fontSize: \"14px\",\n lineHeight: \"120%\",\n fontStyle: \"normal\",\n color: \"#454a47\",\n }),\n ...defineCustomText(\"--beam-SubscriptionManagement-tile-via\", {\n fontSize: \"14px\",\n lineHeight: \"120%\",\n fontStyle: \"normal\",\n color: \"#454a47\",\n }),\n \"--beam-SubscriptionManagement-tile-nonprofitLink-textDecoration\": \"underline\",\n ...defineCustomText(\"--beam-SubscriptionManagement-tile-nonprofitLink\", {\n fontSize: \"14px\",\n fontWeight: \"400\",\n lineHeight: \"120%\",\n textTransform: \"capitalize\",\n fontStyle: \"normal\",\n color: \"#0a323c\",\n }),\n \"--beam-SubscriptionManagement-tile-supportAgainButton-textDecoration\": \"underline\",\n ...defineCustomText(\"--beam-SubscriptionManagement-tile-supportAgainButton\", {\n fontSize: \"14px\",\n fontWeight: \"400\",\n lineHeight: \"120%\",\n textTransform: \"capitalize\",\n fontStyle: \"normal\",\n color: \"#0a323c\",\n }),\n \"--beam-SubscriptionManagement-tile-progressBarLabel-marginLeft\": \"8px\",\n ...defineCustomText(\"--beam-SubscriptionManagement-tile-progressBarLabel\", {\n fontSize: \"10px\",\n fontWeight: \"bold\",\n fontStyle: \"normal\",\n color: \"#878a92\",\n }),\n \"--beam-SubscriptionManagement-tile-fundedAmount-lineHeight\": \"16px\",\n ...defineCustomText(\"--beam-SubscriptionManagement-tile-fundedAmount\", {\n fontSize: \"14px\",\n fontWeight: \"400\",\n lineHeight: \"120%\",\n fontStyle: \"italic\",\n color: \"#0a323c\",\n }),\n };\n\n const remoteConfig = this.eligibleNonprofitsDataController?.data?.config?.web?.theme || {};\n\n const config = { ...defaults, ...remoteConfig };\n\n const serializable = Object.create({\n toCSS() {\n return _cssVariableMap(this as Record<string, string>);\n },\n });\n return Object.assign(serializable, config);\n }\n\n static styles = [\n cssReset,\n css`\n :host {\n display: block;\n font-family: var(--beam-fontFamily);\n font-style: var(--beam-fontStyle);\n font-size: var(--beam-fontSize);\n background-color: var(--beam-backgroundColor);\n color: var(--beam-textColor);\n word-break: normal;\n }\n .drop-down-options {\n text-decoration: var(--beam-SubscriptionManagement-dropDownOptions-textDecoration);\n ${useCustomText(\"--beam-SubscriptionManagement-dropDownOptions\")};\n }\n .widget-container {\n background-color: var(--beam-SubscriptionManagement-widgetContainer-backgroundColor);\n border: 1px solid var(--beam-SubscriptionManagement-widgetContainer-borderColor);\n border-radius: var(--beam-SubscriptionManagement-widgetContainer-borderRadius);\n padding: var(--beam-SubscriptionManagement-widgetContainer-padding);\n max-width: var(--beam-SubscriptionManagement-widgetContainer-maxWidth);\n }\n .header {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n padding: var(--beam-SubscriptionManagement-header-padding);\n border-radius: var(--beam-SubscriptionManagement-header-borderRadius);\n background-color: var(--beam-SubscriptionManagement-header-backgroundColor);\n }\n .header-content {\n display: flex;\n justify-content: space-between;\n width: 100%;\n }\n .button {\n cursor: pointer;\n background: none;\n border: none;\n }\n .header .meatballsMenu {\n position: relative;\n cursor: pointer;\n }\n .header .meatballsMenu span {\n font-size: var(--beam-SubscriptionManagement-header-meatballsMenu-fontSize);\n color: var(--beam-SubscriptionManagement-header-meatballsMenu-color);\n }\n .dropdown-container {\n display: none;\n position: absolute;\n right: 0;\n z-index: 1;\n padding: var(--beam-SubscriptionManagement-dropDown-padding);\n border-radius: var(--beam-SubscriptionManagement-dropDown-borderRadius);\n background: var(--beam-SubscriptionManagement-dropDown-backgroundColor);\n box-shadow: var(--beam-SubscriptionManagement-dropDown-boxShadow);\n width: var(--beam-SubscriptionManagement-dropDown-width);\n }\n .dropdown-container.visible {\n display: block;\n }\n .dropdown-container:hover {\n background-color: var(--beam-SubscriptionManagement-dropDown-hover-backgroundColor);\n }\n .line-break {\n border-top: var(--beam-SubscriptionManagement-lineBreak-width) solid\n var(--beam-SubscriptionManagement-lineBreak-color);\n margin: var(--beam-SubscriptionManagement-lineBreak-margin);\n }\n .tile {\n border: var(--beam-SubscriptionManagement-tile-border-width) solid\n var(--beam-SubscriptionManagement-tile-border-color);\n padding: var(--beam-SubscriptionManagement-tile-padding);\n border-radius: var(--beam-SubscriptionManagement-tile-borderRadius);\n background: var(--beam-SubscriptionManagement-tile-background);\n }\n .tile-title {\n letter-spacing: var(--beam-SubscriptionManagement-tile-title-letterSpacing);\n ${useCustomText(\"--beam-SubscriptionManagement-tile-title\")};\n }\n .tile-content {\n display: flex;\n flex-direction: row;\n gap: var(--beam-SubscriptionManagement-tileContent-gap);\n padding: var(--beam-SubscriptionManagement-tileContent-padding);\n }\n .tile-description-block-container {\n flex: 1 1 67%;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--beam-SubscriptionManagement-blockTileDescription-gap);\n padding: var(--beam-SubscriptionManagement-blockTileDescription-padding);\n line-height: var(--beam-SubscriptionManagement-blockTileDescription-lineHeight);\n }\n .sub-widget-container {\n padding: var(--beam-SubscriptionManagement-subWidgetContainer-padding);\n }\n .previous-impact-title {\n margin-bottom: var(--beam-SubscriptionManagement-yourPreviousImpactTitle-marginBottom);\n ${useCustomText(\"--beam-SubscriptionManagement-yourPreviousImpactTitle\")};\n }\n .tile-description {\n ${useCustomText(\"--beam-SubscriptionManagement-tile-description\")};\n }\n .via {\n ${useCustomText(\"--beam-SubscriptionManagement-tile-via\")};\n }\n .center-align-logo {\n margin-left: auto;\n margin-right: auto;\n }\n .left-align-logo {\n margin-left: 0;\n margin-right: auto;\n }\n .previous-impact-link-container {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .previous-impact-link {\n text-decoration-line: var(--beam-SubscriptionManagement-yourPreviousImpact-showAllButton-textDecoration);\n ${useCustomText(\"--beam-SubscriptionManagement-yourPreviousImpact-showAllButton\")};\n }\n .icon-background {\n width: var(--beam-SubscriptionManagement-tile-icon-background-width);\n height: var(--beam-SubscriptionManagement-tile-icon-background-height);\n border-radius: var(--beam-SubscriptionManagement-tile-icon-background-borderRadius);\n padding: var(--beam-SubscriptionManagement-tile-icon-background-padding);\n overflow: hidden;\n background: var(--beam-SubscriptionManagement-tile-icon-background-backgroundColor);\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .icon {\n display: block;\n margin: auto;\n border-radius: var(--beam-SubscriptionManagement-tile-icon-borderRadius);\n height: var(--beam-SubscriptionManagement-tile-icon-height);\n }\n .tile-progress-bar-container-desktop {\n display: flex;\n align-items: center;\n width: var(--beam-SubscriptionManagement-blockTileDescription-progressBar-width-desktop);\n }\n .tile-progress-bar-container-mobile {\n display: flex;\n align-items: center;\n width: var(--beam-SubscriptionManagement-blockTileDescription-progressBar-width-mobile);\n }\n .previous-impact-nonprofit-link {\n text-decoration-line: var(--beam-SubscriptionManagement-tile-nonprofitLink-textDecoration);\n ${useCustomText(\"--beam-SubscriptionManagement-tile-nonprofitLink\")};\n }\n .details-funding-progress-label {\n white-space: nowrap;\n flex: 0 1;\n margin-left: var(--beam-SubscriptionManagement-tile-progressBarLabel-marginLeft);\n ${useCustomText(\"--beam-SubscriptionManagement-tile-progressBarLabel\")};\n }\n .funded-times {\n line-height: var(--beam-SubscriptionManagement-tile-fundedAmount-lineHeight);\n ${useCustomText(\"--beam-SubscriptionManagement-tile-fundedAmount\")};\n }\n .tile-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n .tile-support-again {\n text-decoration-line: var(--beam-SubscriptionManagement-tile-supportAgainButton-textDecoration);\n ${useCustomText(\"--beam-SubscriptionManagement-tile-supportAgainButton\")};\n }\n `,\n cssCardGrid({\n gap: \"var(--beam-SubscriptionManagement-tile-marginBottom)\",\n itemMinWidth: \"250px\",\n columnCount: \"1\",\n }),\n ];\n\n private renderPreviousImpactTiles({\n personalImpact,\n cardStyle,\n eligibleNonprofitConfig,\n }: {\n personalImpact?: TIAPIV3PersonalImpact;\n cardStyle: string;\n eligibleNonprofitConfig?: TIAPIV3EligibleNonprofitConfig;\n }) {\n if (!personalImpact) {\n return html``;\n }\n if (!eligibleNonprofitConfig) {\n return html``;\n }\n\n const tilesToShow = this.showAllTiles ? personalImpact : personalImpact.slice(0, INITIAL_TILE_COUNT);\n let emojiIndex = 0;\n return html`\n ${tilesToShow.map((previousImpact) => {\n const {\n impact: { goalCompletionText, description, goalProgressPercentage, goalProgressText },\n nonprofit: { cause, causeIconSelectedUrl, causeIconUrl, website, name, id },\n } = previousImpact;\n\n const isEligibleToSupportAgain = this.nonprofitId !== id && this.isNonprofitEligible(id);\n const showProgressBar = isEligibleToSupportAgain && this.shouldDisplayProgressBar(goalProgressPercentage);\n const emoji = goalCompletionText ? `${this.emojis[emojiIndex]} ` : \"\";\n emojiIndex = (emojiIndex + 1) % this.emojis.length;\n\n return html`\n <div class=\"tile\">\n <div class=\"tile-header\">\n <div class=\"tile-title\">${localizeUserString(this.configLang, cause || \"\")}</div>\n ${isEligibleToSupportAgain\n ? html` <button\n class=\"tile-support-again button\"\n @click=\"${() => this.handleSupportAgainButtonClick(id, name)}\"\n >\n ${localizeUserString(\n this.configLang,\n eligibleNonprofitConfig?.web?.additionalStrings?.[\"supportAgainButton\"] || \"\",\n ) || strings[this.configLang].supportAgainButton()}\n </button>`\n : html``}\n </div>\n <div class=\"tile-content\">\n <div class=\"icon-background\">\n <img\n src=\"${cardStyle === \"'selected_icon'\" ? causeIconSelectedUrl : causeIconUrl}\"\n alt=\"${cause}\"\n data-speedsize-ignore=\"true\"\n class=\"icon\"\n />\n </div>\n <div class=\"tile-description-block-container\">\n <div class=\"tile-description-container\">\n <span class=\"tile-description\">${localizeUserString(this.configLang, description || \"\")}</span>\n <span class=\"via\"\n >${localizeUserString(\n this.configLang,\n eligibleNonprofitConfig?.web?.additionalStrings?.[\"via\"] || \"\",\n ) || strings[this.configLang].via()}</span\n >\n <a href=\"${website}\" target=\"_blank\" class=\"previous-impact-nonprofit-link\">\n ${localizeUserString(this.configLang, name || \"\")}\n </a>\n </div>\n ${showProgressBar\n ? html` <div\n class=\"${this.isMobile\n ? \"tile-progress-bar-container-mobile\"\n : \"tile-progress-bar-container-desktop\"}\"\n >\n <beam-progress-bar value=\"${goalProgressPercentage}\" style=\"flex: 1 0;\"></beam-progress-bar>\n <span class=\"details-funding-progress-label\">${goalProgressText}</span>\n </div>`\n : html``}\n <div class=\"funded-times\">\n ${emoji}${unsafeHTML(localizeUserString(this.configLang, goalCompletionText))}\n </div>\n </div>\n </div>\n </div>\n `;\n })}\n `;\n }\n\n render() {\n const { data, loading, error } = this.eligibleNonprofitsDataController;\n if (loading) {\n return _loading();\n }\n const excludeDonationsForRecurringTransactions = data?.settings?.excludeDonationsForRecurringTransactions;\n if (excludeDonationsForRecurringTransactions) {\n return html``;\n }\n if (error || data == null) {\n return this.debug ? _errorMessage({ error: error || new Error(\"No data\") }) : \"\";\n }\n let content;\n const cardStyle = this.cssVariables[\"--beam-SubscriptionManagement-previousImpact-cardStyle\"];\n const logoAlignDesktop = this.cssVariables[\"--beam-SubscriptionManagement-logo-align-desktop\"];\n const logoAlignMobile = this.cssVariables[\"--beam-SubscriptionManagement-logo-align-mobile\"];\n const previousImpactCount = this.getDisplayablePreviousImpacts().length ?? 0;\n if (\n this.subscriptionDataController.loading ||\n this.eligibleNonprofitsDataController.loading ||\n this.personalImpactDataController.loading\n ) {\n _loading();\n }\n\n if (\n (this.subscriptionDataController.error ||\n this.eligibleNonprofitsDataController.error ||\n this.personalImpactDataController.error) &&\n this.debug\n ) {\n if (this.subscriptionDataController.error !== null) {\n return _errorMessage({ error: this.subscriptionDataController.error });\n } else if (this.eligibleNonprofitsDataController.error !== null) {\n return _errorMessage({ error: this.eligibleNonprofitsDataController.error });\n } else if (this.personalImpactDataController.error !== null) {\n return _errorMessage({ error: this.personalImpactDataController.error });\n }\n } else {\n content = \"\";\n }\n\n if (this.activeWidget === \"select-subscription-nonprofit\") {\n content = html` <beam-select-subscription-nonprofit\n part=\"subscription-nonprofit\"\n storeId=\"${this.storeId}\"\n subscriptionId=\"${this.subscriptionId}\"\n nonprofitId=${this.nonprofitId}\n selectedNonprofitId=${this.selectedNonprofitId}\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n postalCode=\"${this.postalCode}\"\n countryCode=\"${this.countryCode}\"\n lang=\"${this.lang}\"\n ?draftConfig=\"${this.draftConfig}\"\n ?debug=\"${this.debug}\"\n @beamnonprofitselect=\"${(event: Event) => this.handleNonprofitSelect(event)}\"\n ></beam-select-subscription-nonprofit>`;\n } else if (this.activeWidget === \"subscription-impact\") {\n content = html`\n <beam-subscription-impact\n part=\"subscription-impact\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n storeId=\"${this.storeId}\"\n beamUserId=\"${this.beamUserId}\"\n nonprofitId=\"${this.nonprofitId}\"\n lang=\"${this.lang}\"\n ?draftConfig=\"${this.draftConfig}\"\n ?debug=\"${this.debug}\"\n ></beam-subscription-impact>\n `;\n }\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n <div class=\"widget-container\">\n <div class=\"header\">\n <div class=\"header-content\">\n <div\n class=\"logo ${this.isMobile\n ? logoAlignMobile === \"center\"\n ? \"center-align-logo\"\n : \"left-align-logo\"\n : logoAlignDesktop === \"center\"\n ? \"center-align-logo\"\n : \"left-align-logo\"}\"\n >\n <beam-partner-logos\n partnerName=\"${this.eligibleNonprofitsDataController.data?.chain.name}\"\n partnerLogoUrl=\"${this.eligibleNonprofitsDataController.data?.chain.logoUrl}\"\n ></beam-partner-logos>\n </div>\n ${this.nonprofitId\n ? html` <div class=\"meatballsMenu\" @click=\"${() => (this.dropdownVisible = !this.dropdownVisible)}\">\n <span>&#8230;</span>\n <div class=\"dropdown-container ${this.dropdownVisible ? \"visible\" : \"\"}\">\n ${this.activeWidget === \"select-subscription-nonprofit\"\n ? html`<button\n @click=\"${this.handleBackToSubscriptionImpactButtonClick}\"\n class=\"drop-down-options button\"\n >\n ${localizeUserString(\n this.configLang,\n data?.config?.web?.additionalStrings?.[\"previousNonprofitButtonText\"] || \"\",\n ) || strings[this.configLang].previousNonprofitButton()}\n </button>`\n : this.activeWidget === \"subscription-impact\"\n ? html`<button @click=\"${this.handleSwapNonprofitButtonClick}\" class=\"drop-down-options button\">\n ${localizeUserString(\n this.configLang,\n data?.config?.web?.additionalStrings?.[\"changeNonprofitButtonText\"] || \"\",\n ) || strings[this.configLang].changeNonprofitButton()}\n </button>`\n : \"\"}\n </div>\n </div>`\n : html``}\n </div>\n </div>\n <div class=\"sub-widget-container\" part=\"previous-impact\">${content}</div>\n ${previousImpactCount > MIN_PREVIOUS_IMPACT\n ? html` <div class=\"line-break\"></div>\n\n <div\n class=\"previous-impact-container ${this.isMobile\n ? \"--beam-SubscriptionManagement-previousImpactContainer-padding-mobile\"\n : \"--beam-SubscriptionManagement-previousImpactContainer-padding-desktop\"}\"\n >\n <h2 class=\"previous-impact-title\">\n ${localizeUserString(\n this.configLang,\n data?.config?.web?.additionalStrings?.[\"previousImpactHeader\"] || \"\",\n ) || strings[this.configLang].previousImpactHeader()}\n </h2>\n <div class=\"cardGrid\">\n ${this.renderPreviousImpactTiles({\n personalImpact: this.getDisplayablePreviousImpacts(),\n cardStyle,\n eligibleNonprofitConfig: this.eligibleNonprofitsDataController.data?.config,\n })}\n </div>\n ${previousImpactCount > INITIAL_TILE_COUNT\n ? html`\n <div class=\"previous-impact-link-container\">\n <button\n @click=\"${() => (this.showAllTiles = !this.showAllTiles)}\"\n class=\"previous-impact-link button\"\n >\n ${this.showAllTiles\n ? localizeUserString(\n this.configLang,\n data?.config?.web?.additionalStrings?.[\"showLessButton\"] || \"\",\n ) || strings[this.configLang].showLessButton()\n : localizeUserString(\n this.configLang,\n data?.config?.web?.additionalStrings?.[\"showAllButton\"] || \"\",\n ) || strings[this.configLang].showAllButton()}\n </button>\n </div>\n `\n : html``}\n </div>`\n : html``}\n </div>\n `;\n }\n}\n\ndefineCustomElement(BeamSubscriptionManagement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-subscription-management\": BeamSubscriptionManagement;\n }\n}\n"],"names":["strings","INITIAL_TILE_COUNT","MIN_PREVIOUS_IMPACT","MIN_PROGRESS_THRESHOLD","MAX_PROGRESS_THRESHOLD","BeamSubscriptionManagement","LitElement","DEFAULT_BASE_URL","AsyncController","SUPPORTED_LANGUAGES","MissingConfig","enforceConfig","eligibleNonprofitResult","postChainEligibleNonprofitsForCart","makeApiKeyHeader","WIDGET_NAMES","subscriptionResult","postFindOrCreateSubscription","impactResult","getImpact","personalImpacts","impact","nonprofitId","nonprofitName","event","BeamNonprofitSelectEvent","selectedNonprofitId","np","progressValue","defaults","partnerLogosConfigDefaults","progressBarConfigDefaults","defineCustomText","remoteConfig","config","_cssVariableMap","personalImpact","cardStyle","eligibleNonprofitConfig","html","tilesToShow","emojiIndex","previousImpact","goalCompletionText","description","goalProgressPercentage","goalProgressText","cause","causeIconSelectedUrl","causeIconUrl","website","name","id","isEligibleToSupportAgain","showProgressBar","emoji","localizeUserString","unsafeHTML","data","loading","error","_loading","_errorMessage","content","logoAlignDesktop","logoAlignMobile","previousImpactCount","cssReset","css","useCustomText","cssCardGrid","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
1
+ {"version":3,"file":"subscription-management.js","sources":["../../src/components/subscription-management/strings.ts","../../src/components/subscription-management/index.ts"],"sourcesContent":["export const strings = {\n en: {\n changeNonprofitButton: () => `Change Nonprofit`,\n previousImpactHeader: () => `Your Previous Impact`,\n previousNonprofitButton: () => `Back to Previous Nonprofit`,\n supportAgainButton: () => `Support Again`,\n via: () => `via`,\n showAllButton: () => `Show All`,\n showLessButton: () => `Show Less`,\n },\n fr: {\n changeNonprofitButton: () => `Change Nonprofit`,\n previousImpactHeader: () => `Your Previous Impact`,\n previousNonprofitButton: () => `Back to Previous Nonprofit`,\n supportAgainButton: () => `Support Again`,\n via: () => `via`,\n showAllButton: () => `Show All`,\n showLessButton: () => `Show Less`,\n },\n de: {\n changeNonprofitButton: () => `Change Nonprofit`,\n previousImpactHeader: () => `Your Previous Impact`,\n previousNonprofitButton: () => `Back to Previous Nonprofit`,\n supportAgainButton: () => `Support Again`,\n via: () => `via`,\n showAllButton: () => `Show All`,\n showLessButton: () => `Show Less`,\n },\n es: {\n changeNonprofitButton: () => `Change Nonprofit`,\n previousImpactHeader: () => `Your Previous Impact`,\n previousNonprofitButton: () => `Back to Previous Nonprofit`,\n supportAgainButton: () => `Support Again`,\n via: () => `via`,\n showAllButton: () => `Show All`,\n showLessButton: () => `Show Less`,\n },\n it: {\n changeNonprofitButton: () => `Change Nonprofit`,\n previousImpactHeader: () => `Your Previous Impact`,\n previousNonprofitButton: () => `Back to Previous Nonprofit`,\n supportAgainButton: () => `Support Again`,\n via: () => `via`,\n showAllButton: () => `Show All`,\n showLessButton: () => `Show Less`,\n },\n pl: {\n changeNonprofitButton: () => `Change Nonprofit`,\n previousImpactHeader: () => `Your Previous Impact`,\n previousNonprofitButton: () => `Back to Previous Nonprofit`,\n supportAgainButton: () => `Support Again`,\n via: () => `via`,\n showAllButton: () => `Show All`,\n showLessButton: () => `Show Less`,\n },\n ja: {\n changeNonprofitButton: () => `Change Nonprofit`,\n previousImpactHeader: () => `Your Previous Impact`,\n previousNonprofitButton: () => `Back to Previous Nonprofit`,\n supportAgainButton: () => `Support Again`,\n via: () => `via`,\n showAllButton: () => `Show All`,\n showLessButton: () => `Show Less`,\n },\n};\n","import { css, html, LitElement } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { state } from \"lit/decorators/state.js\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { TCart } from \"../../shared/cart-contents\";\nimport { progressBarConfigDefaults } from \"../../shared/components/progress-bar\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { postFindOrCreateSubscription, postChainEligibleNonprofitsForCart, getImpact } from \"../../api-sdk/v3/routes\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport \"../select-subscription-nonprofit\";\nimport \"../subscription-impact\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { partnerLogosConfigDefaults } from \"../beam-partner-logos\";\nimport { makeApiKeyHeader } from \"../../utils/makeApiKeyHeader\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { localizeUserString } from \"../../shared/localize\";\nimport { TNumericId } from \"../../shared/types\";\nimport { cssCardGrid } from \"../../shared/fragments/css-card-grid\";\nimport { strings } from \"./strings\";\n\ninterface RequiredDataPropsWithEmail {\n email: string;\n apiKey: string;\n subscriptionId: string;\n}\n\ninterface RequiredDataPropsWithPartnerUserId {\n partnerUserId: string;\n apiKey: string;\n subscriptionId: string;\n}\n\ntype TRequiredDataProps = RequiredDataPropsWithEmail | RequiredDataPropsWithPartnerUserId;\nexport type TIAPIV3PersonalImpact = Awaited<ReturnType<typeof import(\"../../api-sdk/v3/routes\").getImpact>>[\"personal\"];\nexport type TIAPIV3EligibleNonprofits = Awaited<\n ReturnType<typeof import(\"../../api-sdk/v3/routes\").getChainNonprofits>\n>[\"nonprofits\"];\nexport type TIAPIV3EligibleNonprofitConfig = Awaited<\n ReturnType<typeof import(\"../../api-sdk/v3/routes\").getChainNonprofits>\n>[\"config\"];\n\nconst INITIAL_TILE_COUNT = 3;\nconst MIN_PREVIOUS_IMPACT = 0;\nconst MIN_PROGRESS_THRESHOLD = 1;\nconst MAX_PROGRESS_THRESHOLD = 98;\n\nexport class BeamSubscriptionManagement extends LitElement {\n static tagName = \"beam-subscription-management\";\n\n @property({ type: String })\n public baseUrl: string = DEFAULT_BASE_URL;\n\n @property({ type: String })\n public apiKey!: TRequiredDataProps[\"apiKey\"];\n\n @property({ type: String })\n public subscriptionId!: TRequiredDataProps[\"subscriptionId\"];\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 email?: RequiredDataPropsWithEmail[\"email\"]; // Either email or partnerUserId must be provided\n\n @property({ type: String })\n public partnerUserId?: RequiredDataPropsWithPartnerUserId[\"partnerUserId\"]; // Either email or partnerUserId 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: Number, reflect: true })\n public selectedNonprofitId?: TNumericId;\n\n @property({ type: String })\n public lang: LANGUAGES = \"en\";\n\n @property({ type: Object })\n public cart?: TCart;\n\n @property({ type: Boolean })\n public debug = false;\n\n @property({ type: Boolean })\n public draftConfig = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n @state() private activeWidget: \"select-subscription-nonprofit\" | \"subscription-impact\" | null = null; // Based on /findSubscriptionByRemoteId\n @state() private nonprofitId: number | null = null; // From /findSubscriptionByRemoteId response\n @state() private beamUserId: string | null = null; // From findSubscriptionByRemoteId\n @state() private eligibleNonprofits: TIAPIV3EligibleNonprofits = [];\n @state() private showAllTiles = false;\n @state() private isMobile = window.innerWidth < 720;\n @state() private dropdownVisible = false;\n @state() private emojis = [\"👏\", \"💪\", \"🙌\", \"✨\", \"🥇\"];\n\n private subscriptionDataController = new AsyncController<typeof this.fetchSubscription>(this, this.fetchSubscription);\n private eligibleNonprofitsDataController = new AsyncController<typeof this.fetchEligibleNonprofits>(\n this,\n this.fetchEligibleNonprofits,\n );\n private personalImpactDataController = new AsyncController<typeof this.fetchImpact>(this, this.fetchImpact);\n\n async firstUpdated() {\n if (!this.email && !this.partnerUserId) {\n throw new MissingConfig(\n [\"email\", \"partnerUserId\"],\n \"One of the following properties needs to be specified: email, partnerUserId \",\n );\n }\n enforceConfig<TRequiredDataProps>([\"apiKey\", \"subscriptionId\"], this);\n await this.loadWidget();\n }\n\n async loadWidget() {\n // In parallel:\n // (1). Fetch eligible nonprofits [storeId and chainName]\n // (2). Fetch subscription [userId and nonprofitId]\n await Promise.all([this.fetchEligibleNonprofits(), this.fetchSubscription()]);\n await this.fetchImpact();\n this.activeWidget = this.nonprofitId ? \"subscription-impact\" : \"select-subscription-nonprofit\";\n }\n\n async fetchEligibleNonprofits() {\n enforceConfig<TRequiredDataProps>([\"apiKey\", \"subscriptionId\"], this);\n const eligibleNonprofitResult = await postChainEligibleNonprofitsForCart({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n requestBody: {\n storeId: this.storeId || undefined,\n ...(this.postalCode && { postalCode: this.postalCode }),\n ...(this.countryCode && { countryCode: this.countryCode }),\n widgetName: WIDGET_NAMES.subscription_management,\n version: \"1.0.0\",\n },\n });\n this.storeId = eligibleNonprofitResult.store.id;\n this.eligibleNonprofits = eligibleNonprofitResult.nonprofits;\n this.eligibleNonprofitsDataController.data = eligibleNonprofitResult;\n return eligibleNonprofitResult;\n }\n\n async fetchSubscription() {\n enforceConfig<TRequiredDataProps>([\"apiKey\", \"subscriptionId\"], this);\n const subscriptionResult = await postFindOrCreateSubscription({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n requestBody: {\n remoteSubscriptionId: this.subscriptionId,\n email: this.email,\n partnerUserId: this.partnerUserId,\n },\n });\n\n this.beamUserId = subscriptionResult.beamUserId; // Returned in response regardless of subscription redemption\n this.nonprofitId = subscriptionResult.nonprofit?.id || null;\n return subscriptionResult;\n }\n\n async fetchImpact() {\n enforceConfig<TRequiredDataProps>([\"apiKey\"], this);\n\n const impactResult = await getImpact({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n queryParams: {\n beamUserId: this.beamUserId ? this.beamUserId : undefined,\n widgetName: \"subscription-management\",\n version: \"1.0.0\",\n lang: this.configLang,\n },\n });\n\n this.personalImpactDataController.data = impactResult;\n return impactResult;\n }\n\n // Used to filter the full personal impact results to\n // just ones that are displayable\n // 1. Checks \"includeInPersonalImpact\" for each nonprofit\n // 2. Checks if it's the currently supported nonprofit, and if it's been funded at least once\n getDisplayablePreviousImpacts() {\n const personalImpacts = this.personalImpactDataController.data?.personal;\n if (!personalImpacts || personalImpacts?.length < 1) {\n return [];\n }\n\n return personalImpacts.filter((impact) => {\n if (!impact.nonprofit.includeInPersonalImpact) {\n return false;\n }\n if (\n impact.nonprofit.id === this.nonprofitId &&\n (!impact.impact.goalCompletionText || impact.impact.goalCompletionText?.length < 1)\n ) {\n return false;\n }\n return true;\n });\n }\n\n handleSwapNonprofitButtonClick() {\n this.activeWidget = \"select-subscription-nonprofit\";\n }\n\n handleBackToSubscriptionImpactButtonClick() {\n this.activeWidget = \"subscription-impact\";\n }\n\n handleSupportAgainButtonClick(nonprofitId: TNumericId, nonprofitName: string) {\n this.activeWidget = \"select-subscription-nonprofit\";\n this.selectedNonprofitId = nonprofitId;\n\n const event = new BeamNonprofitSelectEvent({\n selectedNonprofitId: nonprofitId,\n nonprofitName: nonprofitName,\n source: WIDGET_NAMES.subscription_management,\n timestamp: new Date(),\n });\n this.dispatchEvent(event);\n }\n\n handleNonprofitSelect(event: Event) {\n if (!(event instanceof BeamNonprofitSelectEvent)) return; // TypeScript guard\n const { selectedNonprofitId } = event.detail;\n this.nonprofitId = selectedNonprofitId ?? null;\n this.activeWidget = \"subscription-impact\";\n }\n\n isNonprofitEligible(nonprofitId: TNumericId) {\n return this.eligibleNonprofits.some((np: TIAPIV3EligibleNonprofits[0]) => np.nonprofit.id === nonprofitId);\n }\n\n shouldDisplayProgressBar(progressValue: number) {\n return progressValue > MIN_PROGRESS_THRESHOLD && progressValue < MAX_PROGRESS_THRESHOLD;\n }\n\n public get cssVariables() {\n const defaults = {\n ...partnerLogosConfigDefaults,\n ...progressBarConfigDefaults,\n \"--beam-fontFamily\": \"inherit\",\n \"--beam-fontStyle\": \"inherit\",\n \"--beam-fontSize\": \"inherit\",\n \"--beam-textColor\": \"inherit\",\n \"--beam-backgroundColor\": \"inherit\",\n \"--beam-SubscriptionManagement-widgetContainer-borderColor\": \"#d5d5d5\",\n \"--beam-SubscriptionManagement-widgetContainer-borderRadius\": \"4px\",\n \"--beam-SubscriptionManagement-widgetContainer-padding\": \"8px 20px\",\n \"--beam-SubscriptionManagement-widgetContainer-backgroundColor\": \"inherit\",\n \"--beam-SubscriptionManagement-widgetContainer-maxWidth\": \"820px\",\n \"--beam-SubscriptionManagement-logo-align-desktop\": \"left\",\n \"--beam-SubscriptionManagement-logo-align-mobile\": \"center\",\n \"--beam-SubscriptionManagement-previousImpact-cardStyle\": \"'selected_icon'\",\n \"--beam-SubscriptionManagement-header-padding\": \"10px 20px 10px 0px\",\n \"--beam-SubscriptionManagement-header-borderRadius\": \"0px\",\n \"--beam-SubscriptionManagement-header-backgroundColor\": \"#fff\",\n \"--beam-SubscriptionManagement-header-meatballsMenu-fontSize\": \"24px\",\n \"--beam-SubscriptionManagement-header-meatballsMenu-color\": \"24px\",\n \"--beam-SubscriptionManagement-lineBreak-color\": \"#ddd\",\n \"--beam-SubscriptionManagement-lineBreak-width\": \"1px\",\n \"--beam-SubscriptionManagement-lineBreak-margin\": \"10px 0 20px 0\",\n \"--beam-SubscriptionManagement-tile-marginBottom\": \"20px\",\n \"--beam-SubscriptionManagement-tile-border-width\": \"0px\",\n \"--beam-SubscriptionManagement-tile-border-color\": \"#ddd\",\n \"--beam-SubscriptionManagement-tile-padding\": \"12.5px\",\n \"--beam-SubscriptionManagement-tile-borderRadius\": \"8px\",\n \"--beam-SubscriptionManagement-tile-background\": \"#f8fbfb\",\n \"--beam-SubscriptionManagement-tileContent-gap\": \" 15px\",\n \"--beam-SubscriptionManagement-tileContent-padding\": \"5px 0px\",\n \"--beam-SubscriptionManagement-tile-icon-borderRadius\": \"4px\",\n \"--beam-SubscriptionManagement-tile-icon-height\": \"28px\",\n \"--beam-SubscriptionManagement-tile-icon-background-borderRadius\": \"50%\",\n \"--beam-SubscriptionManagement-tile-icon-background-width\": \"50px\",\n \"--beam-SubscriptionManagement-tile-icon-background-height\": \"50px\",\n \"--beam-SubscriptionManagement-tile-icon-background-backgroundColor\": \"#0a323c\",\n \"--beam-SubscriptionManagement-tile-icon-background-padding\": \"10px\",\n \"--beam-SubscriptionManagement-blockTileDescription-gap\": \"5px\",\n \"--beam-SubscriptionManagement-blockTileDescription-padding\": \"0px\",\n \"--beam-SubscriptionManagement-blockTileDescription-lineHeight\": \"130%\",\n \"--beam-SubscriptionManagement-blockTileDescription-progressBar-width-desktop\": \"60%\",\n \"--beam-SubscriptionManagement-blockTileDescription-progressBar-width-mobile\": \"100%\",\n \"--beam-SubscriptionManagement-subWidgetContainer-padding\": \"0px 0px 10px\",\n \"--beam-SubscriptionManagement-previousImpactContainer-padding-desktop\": \"10px 24px 10px 0px\",\n \"--beam-SubscriptionManagement-previousImpactContainer-padding-mobile\": \"0px\",\n \"--beam-SubscriptionManagement-dropDown-padding\": \"15px 8px\",\n \"--beam-SubscriptionManagement-dropDown-borderRadius\": \"8px\",\n \"--beam-SubscriptionManagement-dropDown-backgroundColor\": \"#f8fbfb\",\n \"--beam-SubscriptionManagement-dropDown-boxShadow\": \"0px 4px 28px 0px rgba(0, 0, 0, 0.04)\",\n \"--beam-SubscriptionManagement-dropDown-width\": \"128px\",\n \"--beam-SubscriptionManagement-dropDown-hover-backgroundColor\": \"#E1F1EE\",\n \"--beam-SubscriptionManagement-dropDownOptions-textDecoration\": \"underline\",\n ...defineCustomText(\"--beam-SubscriptionManagement-dropDownOptions\", {\n fontSize: \"12px\",\n fontWeight: \"400\",\n textTransform: \"capitalize\",\n fontStyle: \"normal\",\n color: \"#0a323c\",\n }),\n \"--beam-SubscriptionManagement-yourPreviousImpactTitle-marginBottom\": \"15px\",\n ...defineCustomText(\"--beam-SubscriptionManagement-yourPreviousImpactTitle\", {\n fontSize: \"18px\",\n fontWeight: \"bold\",\n lineHeight: \"120%\",\n textTransform: \"capitalize\",\n fontStyle: \"normal\",\n color: \"#0a323c\",\n }),\n \"--beam-SubscriptionManagement-yourPreviousImpact-showAllButton-textDecoration\": \"underline\",\n ...defineCustomText(\"--beam-SubscriptionManagement-yourPreviousImpact-showAllButton\", {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n lineHeight: \"120%\",\n textTransform: \"capitalize\",\n fontStyle: \"normal\",\n color: \"#0a323c\",\n }),\n \"--beam-SubscriptionManagement-tile-title-letterSpacing\": \"0.36px\",\n ...defineCustomText(\"--beam-SubscriptionManagement-tile-title\", {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n lineHeight: \"120%\",\n textTransform: \"uppercase\",\n fontStyle: \"normal\",\n color: \"#0a323c\",\n }),\n ...defineCustomText(\"--beam-SubscriptionManagement-tile-description\", {\n fontSize: \"14px\",\n lineHeight: \"120%\",\n fontStyle: \"normal\",\n color: \"#454a47\",\n }),\n ...defineCustomText(\"--beam-SubscriptionManagement-tile-via\", {\n fontSize: \"14px\",\n lineHeight: \"120%\",\n fontStyle: \"normal\",\n color: \"#454a47\",\n }),\n \"--beam-SubscriptionManagement-tile-nonprofitLink-textDecoration\": \"underline\",\n ...defineCustomText(\"--beam-SubscriptionManagement-tile-nonprofitLink\", {\n fontSize: \"14px\",\n fontWeight: \"400\",\n lineHeight: \"120%\",\n textTransform: \"capitalize\",\n fontStyle: \"normal\",\n color: \"#0a323c\",\n }),\n \"--beam-SubscriptionManagement-tile-supportAgainButton-textDecoration\": \"underline\",\n ...defineCustomText(\"--beam-SubscriptionManagement-tile-supportAgainButton\", {\n fontSize: \"14px\",\n fontWeight: \"400\",\n lineHeight: \"120%\",\n textTransform: \"capitalize\",\n fontStyle: \"normal\",\n color: \"#0a323c\",\n }),\n \"--beam-SubscriptionManagement-tile-progressBarLabel-marginLeft\": \"8px\",\n ...defineCustomText(\"--beam-SubscriptionManagement-tile-progressBarLabel\", {\n fontSize: \"10px\",\n fontWeight: \"bold\",\n fontStyle: \"normal\",\n color: \"#878a92\",\n }),\n \"--beam-SubscriptionManagement-tile-fundedAmount-lineHeight\": \"16px\",\n ...defineCustomText(\"--beam-SubscriptionManagement-tile-fundedAmount\", {\n fontSize: \"14px\",\n fontWeight: \"400\",\n lineHeight: \"120%\",\n fontStyle: \"italic\",\n color: \"#0a323c\",\n }),\n };\n\n const remoteConfig = this.eligibleNonprofitsDataController?.data?.config?.web?.theme || {};\n\n const config = { ...defaults, ...remoteConfig };\n\n const serializable = Object.create({\n toCSS() {\n return _cssVariableMap(this as Record<string, string>);\n },\n });\n return Object.assign(serializable, config);\n }\n\n static styles = [\n cssReset,\n css`\n :host {\n display: block;\n font-family: var(--beam-fontFamily);\n font-style: var(--beam-fontStyle);\n font-size: var(--beam-fontSize);\n background-color: var(--beam-backgroundColor);\n color: var(--beam-textColor);\n word-break: normal;\n }\n .drop-down-options {\n text-decoration: var(--beam-SubscriptionManagement-dropDownOptions-textDecoration);\n ${useCustomText(\"--beam-SubscriptionManagement-dropDownOptions\")};\n }\n .widget-container {\n background-color: var(--beam-SubscriptionManagement-widgetContainer-backgroundColor);\n border: 1px solid var(--beam-SubscriptionManagement-widgetContainer-borderColor);\n border-radius: var(--beam-SubscriptionManagement-widgetContainer-borderRadius);\n padding: var(--beam-SubscriptionManagement-widgetContainer-padding);\n max-width: var(--beam-SubscriptionManagement-widgetContainer-maxWidth);\n }\n .header {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n padding: var(--beam-SubscriptionManagement-header-padding);\n border-radius: var(--beam-SubscriptionManagement-header-borderRadius);\n background-color: var(--beam-SubscriptionManagement-header-backgroundColor);\n }\n .header-content {\n display: flex;\n justify-content: space-between;\n width: 100%;\n }\n .button {\n cursor: pointer;\n background: none;\n border: none;\n }\n .header .meatballsMenu {\n position: relative;\n cursor: pointer;\n }\n .header .meatballsMenu span {\n font-size: var(--beam-SubscriptionManagement-header-meatballsMenu-fontSize);\n color: var(--beam-SubscriptionManagement-header-meatballsMenu-color);\n }\n .dropdown-container {\n display: none;\n position: absolute;\n right: 0;\n z-index: 1;\n padding: var(--beam-SubscriptionManagement-dropDown-padding);\n border-radius: var(--beam-SubscriptionManagement-dropDown-borderRadius);\n background: var(--beam-SubscriptionManagement-dropDown-backgroundColor);\n box-shadow: var(--beam-SubscriptionManagement-dropDown-boxShadow);\n width: var(--beam-SubscriptionManagement-dropDown-width);\n }\n .dropdown-container.visible {\n display: block;\n }\n .dropdown-container:hover {\n background-color: var(--beam-SubscriptionManagement-dropDown-hover-backgroundColor);\n }\n .line-break {\n border-top: var(--beam-SubscriptionManagement-lineBreak-width) solid\n var(--beam-SubscriptionManagement-lineBreak-color);\n margin: var(--beam-SubscriptionManagement-lineBreak-margin);\n }\n .tile {\n border: var(--beam-SubscriptionManagement-tile-border-width) solid\n var(--beam-SubscriptionManagement-tile-border-color);\n padding: var(--beam-SubscriptionManagement-tile-padding);\n border-radius: var(--beam-SubscriptionManagement-tile-borderRadius);\n background: var(--beam-SubscriptionManagement-tile-background);\n }\n .tile-title {\n letter-spacing: var(--beam-SubscriptionManagement-tile-title-letterSpacing);\n ${useCustomText(\"--beam-SubscriptionManagement-tile-title\")};\n }\n .tile-content {\n display: flex;\n flex-direction: row;\n gap: var(--beam-SubscriptionManagement-tileContent-gap);\n padding: var(--beam-SubscriptionManagement-tileContent-padding);\n }\n .tile-description-block-container {\n flex: 1 1 67%;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--beam-SubscriptionManagement-blockTileDescription-gap);\n padding: var(--beam-SubscriptionManagement-blockTileDescription-padding);\n line-height: var(--beam-SubscriptionManagement-blockTileDescription-lineHeight);\n }\n .sub-widget-container {\n padding: var(--beam-SubscriptionManagement-subWidgetContainer-padding);\n }\n .previous-impact-title {\n margin-bottom: var(--beam-SubscriptionManagement-yourPreviousImpactTitle-marginBottom);\n ${useCustomText(\"--beam-SubscriptionManagement-yourPreviousImpactTitle\")};\n }\n .tile-description {\n ${useCustomText(\"--beam-SubscriptionManagement-tile-description\")};\n }\n .via {\n ${useCustomText(\"--beam-SubscriptionManagement-tile-via\")};\n }\n .center-align-logo {\n margin-left: auto;\n margin-right: auto;\n }\n .left-align-logo {\n margin-left: 0;\n margin-right: auto;\n }\n .previous-impact-link-container {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .previous-impact-link {\n text-decoration-line: var(--beam-SubscriptionManagement-yourPreviousImpact-showAllButton-textDecoration);\n ${useCustomText(\"--beam-SubscriptionManagement-yourPreviousImpact-showAllButton\")};\n }\n .icon-background {\n width: var(--beam-SubscriptionManagement-tile-icon-background-width);\n height: var(--beam-SubscriptionManagement-tile-icon-background-height);\n border-radius: var(--beam-SubscriptionManagement-tile-icon-background-borderRadius);\n padding: var(--beam-SubscriptionManagement-tile-icon-background-padding);\n overflow: hidden;\n background: var(--beam-SubscriptionManagement-tile-icon-background-backgroundColor);\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .icon {\n display: block;\n margin: auto;\n border-radius: var(--beam-SubscriptionManagement-tile-icon-borderRadius);\n height: var(--beam-SubscriptionManagement-tile-icon-height);\n }\n .tile-progress-bar-container-desktop {\n display: flex;\n align-items: center;\n width: var(--beam-SubscriptionManagement-blockTileDescription-progressBar-width-desktop);\n }\n .tile-progress-bar-container-mobile {\n display: flex;\n align-items: center;\n width: var(--beam-SubscriptionManagement-blockTileDescription-progressBar-width-mobile);\n }\n .previous-impact-nonprofit-link {\n text-decoration-line: var(--beam-SubscriptionManagement-tile-nonprofitLink-textDecoration);\n ${useCustomText(\"--beam-SubscriptionManagement-tile-nonprofitLink\")};\n }\n .details-funding-progress-label {\n white-space: nowrap;\n flex: 0 1;\n margin-left: var(--beam-SubscriptionManagement-tile-progressBarLabel-marginLeft);\n ${useCustomText(\"--beam-SubscriptionManagement-tile-progressBarLabel\")};\n }\n .funded-times {\n line-height: var(--beam-SubscriptionManagement-tile-fundedAmount-lineHeight);\n ${useCustomText(\"--beam-SubscriptionManagement-tile-fundedAmount\")};\n }\n .tile-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n .tile-support-again {\n text-decoration-line: var(--beam-SubscriptionManagement-tile-supportAgainButton-textDecoration);\n ${useCustomText(\"--beam-SubscriptionManagement-tile-supportAgainButton\")};\n }\n `,\n cssCardGrid({\n gap: \"var(--beam-SubscriptionManagement-tile-marginBottom)\",\n itemMinWidth: \"250px\",\n columnCount: \"1\",\n }),\n ];\n\n private renderPreviousImpactTiles({\n personalImpact,\n cardStyle,\n eligibleNonprofitConfig,\n }: {\n personalImpact?: TIAPIV3PersonalImpact;\n cardStyle: string;\n eligibleNonprofitConfig?: TIAPIV3EligibleNonprofitConfig;\n }) {\n if (!personalImpact) {\n return html``;\n }\n if (!eligibleNonprofitConfig) {\n return html``;\n }\n\n const tilesToShow = this.showAllTiles ? personalImpact : personalImpact.slice(0, INITIAL_TILE_COUNT);\n let emojiIndex = 0;\n return html`\n ${tilesToShow.map((previousImpact) => {\n const {\n impact: { goalCompletionText, description, goalProgressPercentage, goalProgressText },\n nonprofit: { cause, causeIconSelectedUrl, causeIconUrl, website, name, id },\n } = previousImpact;\n\n const isEligibleToSupportAgain = this.nonprofitId !== id && this.isNonprofitEligible(id);\n const showProgressBar = isEligibleToSupportAgain && this.shouldDisplayProgressBar(goalProgressPercentage);\n const emoji = goalCompletionText ? `${this.emojis[emojiIndex]} ` : \"\";\n emojiIndex = (emojiIndex + 1) % this.emojis.length;\n\n return html`\n <div class=\"tile\">\n <div class=\"tile-header\">\n <div class=\"tile-title\">${localizeUserString(this.configLang, cause || \"\")}</div>\n ${isEligibleToSupportAgain\n ? html` <button\n class=\"tile-support-again button\"\n @click=\"${() => this.handleSupportAgainButtonClick(id, name)}\"\n >\n ${localizeUserString(\n this.configLang,\n eligibleNonprofitConfig?.web?.additionalStrings?.[\"supportAgainButton\"] || \"\",\n ) || strings[this.configLang].supportAgainButton()}\n </button>`\n : html``}\n </div>\n <div class=\"tile-content\">\n <div class=\"icon-background\">\n <img\n src=\"${cardStyle === \"'selected_icon'\" ? causeIconSelectedUrl : causeIconUrl}\"\n alt=\"${cause}\"\n data-speedsize-ignore=\"true\"\n class=\"icon\"\n />\n </div>\n <div class=\"tile-description-block-container\">\n <div class=\"tile-description-container\">\n <span class=\"tile-description\">${localizeUserString(this.configLang, description || \"\")}</span>\n <span class=\"via\"\n >${localizeUserString(\n this.configLang,\n eligibleNonprofitConfig?.web?.additionalStrings?.[\"via\"] || \"\",\n ) || strings[this.configLang].via()}</span\n >\n <a href=\"${website}\" target=\"_blank\" class=\"previous-impact-nonprofit-link\">\n ${localizeUserString(this.configLang, name || \"\")}\n </a>\n </div>\n ${showProgressBar\n ? html` <div\n class=\"${this.isMobile\n ? \"tile-progress-bar-container-mobile\"\n : \"tile-progress-bar-container-desktop\"}\"\n >\n <beam-progress-bar value=\"${goalProgressPercentage}\" style=\"flex: 1 0;\"></beam-progress-bar>\n <span class=\"details-funding-progress-label\">${goalProgressText}</span>\n </div>`\n : html``}\n <div class=\"funded-times\">\n ${emoji}${unsafeHTML(localizeUserString(this.configLang, goalCompletionText))}\n </div>\n </div>\n </div>\n </div>\n `;\n })}\n `;\n }\n\n render() {\n const { data, loading, error } = this.eligibleNonprofitsDataController;\n if (loading) {\n return _loading();\n }\n const excludeDonationsForRecurringTransactions = data?.settings?.excludeDonationsForRecurringTransactions;\n if (excludeDonationsForRecurringTransactions) {\n return html``;\n }\n if (error || data == null) {\n return this.debug ? _errorMessage({ error: error || new Error(\"No data\") }) : \"\";\n }\n let content;\n const cardStyle = this.cssVariables[\"--beam-SubscriptionManagement-previousImpact-cardStyle\"];\n const logoAlignDesktop = this.cssVariables[\"--beam-SubscriptionManagement-logo-align-desktop\"];\n const logoAlignMobile = this.cssVariables[\"--beam-SubscriptionManagement-logo-align-mobile\"];\n const previousImpactCount = this.getDisplayablePreviousImpacts().length ?? 0;\n if (\n this.subscriptionDataController.loading ||\n this.eligibleNonprofitsDataController.loading ||\n this.personalImpactDataController.loading\n ) {\n _loading();\n }\n\n if (\n (this.subscriptionDataController.error ||\n this.eligibleNonprofitsDataController.error ||\n this.personalImpactDataController.error) &&\n this.debug\n ) {\n if (this.subscriptionDataController.error !== null) {\n return _errorMessage({ error: this.subscriptionDataController.error });\n } else if (this.eligibleNonprofitsDataController.error !== null) {\n return _errorMessage({ error: this.eligibleNonprofitsDataController.error });\n } else if (this.personalImpactDataController.error !== null) {\n return _errorMessage({ error: this.personalImpactDataController.error });\n }\n } else {\n content = \"\";\n }\n\n if (this.activeWidget === \"select-subscription-nonprofit\") {\n content = html` <beam-select-subscription-nonprofit\n part=\"subscription-nonprofit\"\n storeId=\"${this.storeId}\"\n subscriptionId=\"${this.subscriptionId}\"\n nonprofitId=${this.nonprofitId}\n selectedNonprofitId=${this.selectedNonprofitId}\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n postalCode=\"${this.postalCode}\"\n countryCode=\"${this.countryCode}\"\n lang=\"${this.lang}\"\n ?draftConfig=\"${this.draftConfig}\"\n ?debug=\"${this.debug}\"\n @beamnonprofitselect=\"${(event: Event) => this.handleNonprofitSelect(event)}\"\n ></beam-select-subscription-nonprofit>`;\n } else if (this.activeWidget === \"subscription-impact\") {\n content = html`\n <beam-subscription-impact\n part=\"subscription-impact\"\n baseUrl=\"${this.baseUrl}\"\n apiKey=\"${this.apiKey}\"\n storeId=\"${this.storeId}\"\n beamUserId=\"${this.beamUserId}\"\n nonprofitId=\"${this.nonprofitId}\"\n lang=\"${this.lang}\"\n ?draftConfig=\"${this.draftConfig}\"\n ?debug=\"${this.debug}\"\n ></beam-subscription-impact>\n `;\n }\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n <div class=\"widget-container\">\n <div class=\"header\">\n <div class=\"header-content\">\n <div\n class=\"logo ${this.isMobile\n ? logoAlignMobile === \"center\"\n ? \"center-align-logo\"\n : \"left-align-logo\"\n : logoAlignDesktop === \"center\"\n ? \"center-align-logo\"\n : \"left-align-logo\"}\"\n >\n <beam-partner-logos\n partnerName=\"${this.eligibleNonprofitsDataController.data?.chain.name}\"\n partnerLogoUrl=\"${this.eligibleNonprofitsDataController.data?.chain.logoUrl}\"\n ></beam-partner-logos>\n </div>\n ${this.nonprofitId\n ? html` <div class=\"meatballsMenu\" @click=\"${() => (this.dropdownVisible = !this.dropdownVisible)}\">\n <span>&#8230;</span>\n <div class=\"dropdown-container ${this.dropdownVisible ? \"visible\" : \"\"}\">\n ${this.activeWidget === \"select-subscription-nonprofit\"\n ? html`<button\n @click=\"${this.handleBackToSubscriptionImpactButtonClick}\"\n class=\"drop-down-options button\"\n >\n ${localizeUserString(\n this.configLang,\n data?.config?.web?.additionalStrings?.[\"previousNonprofitButtonText\"] || \"\",\n ) || strings[this.configLang].previousNonprofitButton()}\n </button>`\n : this.activeWidget === \"subscription-impact\"\n ? html`<button @click=\"${this.handleSwapNonprofitButtonClick}\" class=\"drop-down-options button\">\n ${localizeUserString(\n this.configLang,\n data?.config?.web?.additionalStrings?.[\"changeNonprofitButtonText\"] || \"\",\n ) || strings[this.configLang].changeNonprofitButton()}\n </button>`\n : \"\"}\n </div>\n </div>`\n : html``}\n </div>\n </div>\n <div class=\"sub-widget-container\" part=\"previous-impact\">${content}</div>\n ${previousImpactCount > MIN_PREVIOUS_IMPACT\n ? html` <div class=\"line-break\"></div>\n\n <div\n class=\"previous-impact-container ${this.isMobile\n ? \"--beam-SubscriptionManagement-previousImpactContainer-padding-mobile\"\n : \"--beam-SubscriptionManagement-previousImpactContainer-padding-desktop\"}\"\n >\n <h2 class=\"previous-impact-title\">\n ${localizeUserString(\n this.configLang,\n data?.config?.web?.additionalStrings?.[\"previousImpactHeader\"] || \"\",\n ) || strings[this.configLang].previousImpactHeader()}\n </h2>\n <div class=\"cardGrid\">\n ${this.renderPreviousImpactTiles({\n personalImpact: this.getDisplayablePreviousImpacts(),\n cardStyle,\n eligibleNonprofitConfig: this.eligibleNonprofitsDataController.data?.config,\n })}\n </div>\n ${previousImpactCount > INITIAL_TILE_COUNT\n ? html`\n <div class=\"previous-impact-link-container\">\n <button\n @click=\"${() => (this.showAllTiles = !this.showAllTiles)}\"\n class=\"previous-impact-link button\"\n >\n ${this.showAllTiles\n ? localizeUserString(\n this.configLang,\n data?.config?.web?.additionalStrings?.[\"showLessButton\"] || \"\",\n ) || strings[this.configLang].showLessButton()\n : localizeUserString(\n this.configLang,\n data?.config?.web?.additionalStrings?.[\"showAllButton\"] || \"\",\n ) || strings[this.configLang].showAllButton()}\n </button>\n </div>\n `\n : html``}\n </div>`\n : html``}\n </div>\n `;\n }\n}\n\ndefineCustomElement(BeamSubscriptionManagement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-subscription-management\": BeamSubscriptionManagement;\n }\n}\n"],"names":["strings","INITIAL_TILE_COUNT","MIN_PREVIOUS_IMPACT","MIN_PROGRESS_THRESHOLD","MAX_PROGRESS_THRESHOLD","BeamSubscriptionManagement","LitElement","DEFAULT_BASE_URL","AsyncController","SUPPORTED_LANGUAGES","MissingConfig","enforceConfig","eligibleNonprofitResult","postChainEligibleNonprofitsForCart","makeApiKeyHeader","WIDGET_NAMES","subscriptionResult","postFindOrCreateSubscription","impactResult","getImpact","personalImpacts","impact","nonprofitId","nonprofitName","event","BeamNonprofitSelectEvent","selectedNonprofitId","np","progressValue","defaults","partnerLogosConfigDefaults","progressBarConfigDefaults","defineCustomText","remoteConfig","config","_cssVariableMap","personalImpact","cardStyle","eligibleNonprofitConfig","html","tilesToShow","emojiIndex","previousImpact","goalCompletionText","description","goalProgressPercentage","goalProgressText","cause","causeIconSelectedUrl","causeIconUrl","website","name","id","isEligibleToSupportAgain","showProgressBar","emoji","localizeUserString","unsafeHTML","data","loading","error","_loading","_errorMessage","content","logoAlignDesktop","logoAlignMobile","previousImpactCount","cssReset","css","useCustomText","cssCardGrid","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import{BeamCommunityImpact as M}from"./components/community-impact.esm.js";import{BeamCumulativeImpact as k}from"./components/cumulative-impact.esm.js";import{BeamImpactOverview as A}from"./components/impact-overview.esm.js";import{BeamSelectNonprofit as F}from"./components/select-nonprofit.esm.js";import{B as H}from"./chunks/index-BebFL9KU.esm.js";import{B as K}from"./chunks/index-B8g4VHgI.esm.js";import{BeamSubscriptionManagement as V}from"./components/subscription-management.esm.js";import{BeamSubscriptionImpact as X}from"./components/subscription-impact.esm.js";import{BeamProductDetailsPage as Z}from"./components/product-details-page.esm.js";import{BeamSelectSubscriptionNonprofit as ro}from"./components/select-subscription-nonprofit.esm.js";import{BeamSocialShare as mo}from"./components/social-share.esm.js";import{i as o,a as r}from"./react/shopify.esm.js";import{i as t}from"./chunks/index-Duq6tIq8.esm.js";import{i as m}from"./chunks/index-BaAhcyM6.esm.js";import{i}from"./chunks/index-Beh5bQDw.esm.js";import{i as eo}from"./chunks/index-BHglsF5j.esm.js";import{i as ao}from"./chunks/utils-C5hmbxa4.esm.js";import"./chunks/lit-BEag9MFp.esm.js";import"./chunks/css-card-grid-CiqEjkwR.esm.js";import"./chunks/share-button-CIP03E7T.esm.js";import"./components/beam-partner-logos.esm.js";import"./chunks/lodash-CrMU6wKg.esm.js";import"./chunks/_share-dialog-dependencies-DsJ2sKCC.esm.js";import"./chunks/vendor-DUOg5fL-.esm.js";import"./chunks/share-button-C-QLknal.esm.js";import"./chunks/responsive-aN8P5PqD.esm.js";import"./chunks/promo-pill-label-BWPhroK6.esm.js";import"./react/community-impact.esm.js";import"react";import"./react/cumulative-impact.esm.js";import"./react/impact-overview.esm.js";import"./react/select-nonprofit.esm.js";import"./react/redeem-transaction.esm.js";import"./react/post-purchase.esm.js";import"./react/subscription-management.esm.js";import"./react/select-subscription-nonprofit.esm.js";import"./react/subscription-impact.esm.js";import"./react/product-details-page.esm.js";import"./react/social-share.esm.js";import"./react/subscriber-select-nonprofit.esm.js";import"./components/subscriber-select-nonprofit.esm.js";import"./chunks/handlebars-B_i-to-h.esm.js";var e=Object.freeze({__proto__:null,Cart:m,Logs:i,Session:o,Shopify:t,Utils:r});export{M as BeamCommunityImpact,k as BeamCumulativeImpact,A as BeamImpactOverview,K as BeamPostPurchase,Z as BeamProductDetailsPage,H as BeamRedeemTransaction,F as BeamSelectNonprofit,ro as BeamSelectSubscriptionNonprofit,mo as BeamSocialShare,X as BeamSubscriptionImpact,V as BeamSubscriptionManagement,e as Integrations,eo as ReactComponents,ao as Utils};
1
+ import{BeamCommunityImpact as M}from"./components/community-impact.esm.js";import{BeamCumulativeImpact as k}from"./components/cumulative-impact.esm.js";import{BeamImpactOverview as A}from"./components/impact-overview.esm.js";import{BeamSelectNonprofit as F}from"./components/select-nonprofit.esm.js";import{B as H}from"./chunks/index-DtAcPGd4.esm.js";import{B as K}from"./chunks/index-E6IoMPQu.esm.js";import{BeamSubscriptionManagement as V}from"./components/subscription-management.esm.js";import{BeamSubscriptionImpact as X}from"./components/subscription-impact.esm.js";import{BeamProductDetailsPage as Z}from"./components/product-details-page.esm.js";import{BeamSelectSubscriptionNonprofit as ro}from"./components/select-subscription-nonprofit.esm.js";import{BeamSocialShare as mo}from"./components/social-share.esm.js";import{i as o,a as r}from"./react/shopify.esm.js";import{i as t}from"./chunks/index-ADw_ucEx.esm.js";import{i as m}from"./chunks/index-BxivRkBL.esm.js";import{i}from"./chunks/index-M8hQ6GXf.esm.js";import{i as eo}from"./chunks/index-BHglsF5j.esm.js";import{i as ao}from"./chunks/utils-ly9wMwUO.esm.js";import"./chunks/lit-BEag9MFp.esm.js";import"./chunks/css-card-grid-tjA36yWj.esm.js";import"./chunks/share-button-C1PRjoPw.esm.js";import"./components/beam-partner-logos.esm.js";import"./chunks/lodash-CrMU6wKg.esm.js";import"./chunks/_share-dialog-dependencies-Caoc1gRc.esm.js";import"./chunks/vendor-DUOg5fL-.esm.js";import"./chunks/share-button-CNq5lDre.esm.js";import"./chunks/responsive-aN8P5PqD.esm.js";import"./chunks/promo-pill-label-DCBXltdj.esm.js";import"./react/community-impact.esm.js";import"react";import"./react/cumulative-impact.esm.js";import"./react/impact-overview.esm.js";import"./react/select-nonprofit.esm.js";import"./react/redeem-transaction.esm.js";import"./react/post-purchase.esm.js";import"./react/subscription-management.esm.js";import"./react/select-subscription-nonprofit.esm.js";import"./react/subscription-impact.esm.js";import"./react/product-details-page.esm.js";import"./react/social-share.esm.js";import"./react/subscriber-select-nonprofit.esm.js";import"./components/subscriber-select-nonprofit.esm.js";import"./chunks/handlebars-3tRO54kz.esm.js";var e=Object.freeze({__proto__:null,Cart:m,Logs:i,Session:o,Shopify:t,Utils:r});export{M as BeamCommunityImpact,k as BeamCumulativeImpact,A as BeamImpactOverview,K as BeamPostPurchase,Z as BeamProductDetailsPage,H as BeamRedeemTransaction,F as BeamSelectNonprofit,ro as BeamSelectSubscriptionNonprofit,mo as BeamSocialShare,X as BeamSubscriptionImpact,V as BeamSubscriptionManagement,e as Integrations,eo as ReactComponents,ao as Utils};
2
2
  //# sourceMappingURL=index.esm.js.map
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{BeamCommunityImpact as M}from"./components/community-impact.js";import{BeamCumulativeImpact as k}from"./components/cumulative-impact.js";import{BeamImpactOverview as A}from"./components/impact-overview.js";import{BeamSelectNonprofit as F}from"./components/select-nonprofit.js";import{B as H}from"./chunks/index-B-QZylCa.esm.js";import{B as K}from"./chunks/index-BX0p4BVY.esm.js";import{BeamSubscriptionManagement as V}from"./components/subscription-management.js";import{BeamSubscriptionImpact as X}from"./components/subscription-impact.js";import{BeamProductDetailsPage as Z}from"./components/product-details-page.js";import{BeamSelectSubscriptionNonprofit as ro}from"./components/select-subscription-nonprofit.js";import{BeamSocialShare as mo}from"./components/social-share.js";import{i as o,a as r}from"./react/shopify.js";import{i as t}from"./chunks/index-Duq6tIq8.esm.js";import{i as m}from"./chunks/index-BaAhcyM6.esm.js";import{i}from"./chunks/index-Beh5bQDw.esm.js";import{i as eo}from"./chunks/index-B4xKTDaF.esm.js";import{i as ao}from"./chunks/utils-C5hmbxa4.esm.js";import"./chunks/lit-BEag9MFp.esm.js";import"./chunks/css-card-grid-CiqEjkwR.esm.js";import"./chunks/share-button-CIP03E7T.esm.js";import"./components/beam-partner-logos.js";import"./chunks/lodash-CrMU6wKg.esm.js";import"./chunks/_share-dialog-dependencies-DsJ2sKCC.esm.js";import"./chunks/vendor-DUOg5fL-.esm.js";import"./chunks/share-button-C-QLknal.esm.js";import"./chunks/responsive-aN8P5PqD.esm.js";import"./chunks/promo-pill-label-BWPhroK6.esm.js";import"./react/community-impact.js";import"react";import"./react/cumulative-impact.js";import"./react/impact-overview.js";import"./react/select-nonprofit.js";import"./react/redeem-transaction.js";import"./react/post-purchase.js";import"./react/subscription-management.js";import"./react/select-subscription-nonprofit.js";import"./react/subscription-impact.js";import"./react/product-details-page.js";import"./react/social-share.js";import"./react/subscriber-select-nonprofit.js";import"./components/subscriber-select-nonprofit.js";import"./chunks/handlebars-B_i-to-h.esm.js";var e=Object.freeze({__proto__:null,Cart:m,Logs:i,Session:o,Shopify:t,Utils:r});export{M as BeamCommunityImpact,k as BeamCumulativeImpact,A as BeamImpactOverview,K as BeamPostPurchase,Z as BeamProductDetailsPage,H as BeamRedeemTransaction,F as BeamSelectNonprofit,ro as BeamSelectSubscriptionNonprofit,mo as BeamSocialShare,X as BeamSubscriptionImpact,V as BeamSubscriptionManagement,e as Integrations,eo as ReactComponents,ao as Utils};
1
+ import{BeamCommunityImpact as M}from"./components/community-impact.js";import{BeamCumulativeImpact as k}from"./components/cumulative-impact.js";import{BeamImpactOverview as A}from"./components/impact-overview.js";import{BeamSelectNonprofit as F}from"./components/select-nonprofit.js";import{B as H}from"./chunks/index-Yt9xXa7z.esm.js";import{B as K}from"./chunks/index-BF0X_60j.esm.js";import{BeamSubscriptionManagement as V}from"./components/subscription-management.js";import{BeamSubscriptionImpact as X}from"./components/subscription-impact.js";import{BeamProductDetailsPage as Z}from"./components/product-details-page.js";import{BeamSelectSubscriptionNonprofit as ro}from"./components/select-subscription-nonprofit.js";import{BeamSocialShare as mo}from"./components/social-share.js";import{i as o,a as r}from"./react/shopify.js";import{i as t}from"./chunks/index-ADw_ucEx.esm.js";import{i as m}from"./chunks/index-BxivRkBL.esm.js";import{i}from"./chunks/index-M8hQ6GXf.esm.js";import{i as eo}from"./chunks/index-B4xKTDaF.esm.js";import{i as ao}from"./chunks/utils-ly9wMwUO.esm.js";import"./chunks/lit-BEag9MFp.esm.js";import"./chunks/css-card-grid-tjA36yWj.esm.js";import"./chunks/share-button-C1PRjoPw.esm.js";import"./components/beam-partner-logos.js";import"./chunks/lodash-CrMU6wKg.esm.js";import"./chunks/_share-dialog-dependencies-Caoc1gRc.esm.js";import"./chunks/vendor-DUOg5fL-.esm.js";import"./chunks/share-button-CNq5lDre.esm.js";import"./chunks/responsive-aN8P5PqD.esm.js";import"./chunks/promo-pill-label-DCBXltdj.esm.js";import"./react/community-impact.js";import"react";import"./react/cumulative-impact.js";import"./react/impact-overview.js";import"./react/select-nonprofit.js";import"./react/redeem-transaction.js";import"./react/post-purchase.js";import"./react/subscription-management.js";import"./react/select-subscription-nonprofit.js";import"./react/subscription-impact.js";import"./react/product-details-page.js";import"./react/social-share.js";import"./react/subscriber-select-nonprofit.js";import"./components/subscriber-select-nonprofit.js";import"./chunks/handlebars-3tRO54kz.esm.js";var e=Object.freeze({__proto__:null,Cart:m,Logs:i,Session:o,Shopify:t,Utils:r});export{M as BeamCommunityImpact,k as BeamCumulativeImpact,A as BeamImpactOverview,K as BeamPostPurchase,Z as BeamProductDetailsPage,H as BeamRedeemTransaction,F as BeamSelectNonprofit,ro as BeamSelectSubscriptionNonprofit,mo as BeamSocialShare,X as BeamSubscriptionImpact,V as BeamSubscriptionManagement,e as Integrations,eo as ReactComponents,ao as Utils};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import{S as d,c as o,l as u,D as g,d as y}from"../chunks/utils-C5hmbxa4.esm.js";import{s as v}from"../chunks/index-Beh5bQDw.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/lit-BEag9MFp.esm.js";var h=t=>{throw TypeError(t)},w=(t,s,a)=>s.has(t)||h("Cannot "+a),U=(t,s,a)=>s.has(t)?h("Cannot add the same private member more than once"):s instanceof WeakSet?s.add(t):s.set(t,a),r=(t,s,a)=>(w(t,s,"access private method"),a),i,n,c;let l,m;const E=new Promise((t,s)=>{l=t,m=s});class f extends EventTarget{constructor(s){super(),U(this,i),this.readyPromise=E,this.plugins={},this.status="pending",r(this,i,n).call(this,s)}async init(s){r(this,i,n).call(this,s);try{await r(this,i,c).call(this,s)}catch(a){const e=new d;throw e.cause=a,this.status="error",this.dispatchEvent(new o({status:"error",error:e})),m(e),u.error(e),this.apiKey&&await v({apiKey:this.apiKey,baseUrl:this.logUrl},{type:"error",code:e.name,metadata:{message:e.message,cause:a?.message}}),a}return this.status="ready",this.dispatchEvent(new o({status:"ready"})),l(!0),this}}i=new WeakSet,n=function(t){this.apiKey=t.apiKey,this.chainId=t.chainId,this.storeId=t.storeId,this.domain=t.domain,this.baseUrl=t.baseUrl||g,this.logUrl=t.logUrl||y},c=async function(t){const s=(t.plugins||[]).map(async a=>(await a.init(t),this.plugins[a.name]=a,a));return Promise.all(s)};const p=new f({}),L=t=>p.init(t),S=()=>p;export{S as getConfig,L as init};
1
+ import{S as d,c as o,l as u,D as g,d as y}from"../chunks/utils-ly9wMwUO.esm.js";import{s as v}from"../chunks/index-M8hQ6GXf.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/lit-BEag9MFp.esm.js";var h=t=>{throw TypeError(t)},w=(t,s,a)=>s.has(t)||h("Cannot "+a),U=(t,s,a)=>s.has(t)?h("Cannot add the same private member more than once"):s instanceof WeakSet?s.add(t):s.set(t,a),r=(t,s,a)=>(w(t,s,"access private method"),a),i,n,c;let l,m;const E=new Promise((t,s)=>{l=t,m=s});class f extends EventTarget{constructor(s){super(),U(this,i),this.readyPromise=E,this.plugins={},this.status="pending",r(this,i,n).call(this,s)}async init(s){r(this,i,n).call(this,s);try{await r(this,i,c).call(this,s)}catch(a){const e=new d;throw e.cause=a,this.status="error",this.dispatchEvent(new o({status:"error",error:e})),m(e),u.error(e),this.apiKey&&await v({apiKey:this.apiKey,baseUrl:this.logUrl},{type:"error",code:e.name,metadata:{message:e.message,cause:a?.message}}),a}return this.status="ready",this.dispatchEvent(new o({status:"ready"})),l(!0),this}}i=new WeakSet,n=function(t){this.apiKey=t.apiKey,this.chainId=t.chainId,this.storeId=t.storeId,this.domain=t.domain,this.baseUrl=t.baseUrl||g,this.logUrl=t.logUrl||y},c=async function(t){const s=(t.plugins||[]).map(async a=>(await a.init(t),this.plugins[a.name]=a,a));return Promise.all(s)};const p=new f({}),L=t=>p.init(t),S=()=>p;export{S as getConfig,L as init};
2
2
  //# sourceMappingURL=beam.esm.js.map
@@ -1,2 +1,2 @@
1
- import{S as d,c as o,l as u,D as g,d as y}from"../chunks/utils-C5hmbxa4.esm.js";import{s as v}from"../chunks/index-Beh5bQDw.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/lit-BEag9MFp.esm.js";var h=t=>{throw TypeError(t)},w=(t,s,a)=>s.has(t)||h("Cannot "+a),U=(t,s,a)=>s.has(t)?h("Cannot add the same private member more than once"):s instanceof WeakSet?s.add(t):s.set(t,a),r=(t,s,a)=>(w(t,s,"access private method"),a),i,n,c;let l,m;const E=new Promise((t,s)=>{l=t,m=s});class f extends EventTarget{constructor(s){super(),U(this,i),this.readyPromise=E,this.plugins={},this.status="pending",r(this,i,n).call(this,s)}async init(s){r(this,i,n).call(this,s);try{await r(this,i,c).call(this,s)}catch(a){const e=new d;throw e.cause=a,this.status="error",this.dispatchEvent(new o({status:"error",error:e})),m(e),u.error(e),this.apiKey&&await v({apiKey:this.apiKey,baseUrl:this.logUrl},{type:"error",code:e.name,metadata:{message:e.message,cause:a?.message}}),a}return this.status="ready",this.dispatchEvent(new o({status:"ready"})),l(!0),this}}i=new WeakSet,n=function(t){this.apiKey=t.apiKey,this.chainId=t.chainId,this.storeId=t.storeId,this.domain=t.domain,this.baseUrl=t.baseUrl||g,this.logUrl=t.logUrl||y},c=async function(t){const s=(t.plugins||[]).map(async a=>(await a.init(t),this.plugins[a.name]=a,a));return Promise.all(s)};const p=new f({}),L=t=>p.init(t),S=()=>p;export{S as getConfig,L as init};
1
+ import{S as d,c as o,l as u,D as g,d as y}from"../chunks/utils-ly9wMwUO.esm.js";import{s as v}from"../chunks/index-M8hQ6GXf.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/lit-BEag9MFp.esm.js";var h=t=>{throw TypeError(t)},w=(t,s,a)=>s.has(t)||h("Cannot "+a),U=(t,s,a)=>s.has(t)?h("Cannot add the same private member more than once"):s instanceof WeakSet?s.add(t):s.set(t,a),r=(t,s,a)=>(w(t,s,"access private method"),a),i,n,c;let l,m;const E=new Promise((t,s)=>{l=t,m=s});class f extends EventTarget{constructor(s){super(),U(this,i),this.readyPromise=E,this.plugins={},this.status="pending",r(this,i,n).call(this,s)}async init(s){r(this,i,n).call(this,s);try{await r(this,i,c).call(this,s)}catch(a){const e=new d;throw e.cause=a,this.status="error",this.dispatchEvent(new o({status:"error",error:e})),m(e),u.error(e),this.apiKey&&await v({apiKey:this.apiKey,baseUrl:this.logUrl},{type:"error",code:e.name,metadata:{message:e.message,cause:a?.message}}),a}return this.status="ready",this.dispatchEvent(new o({status:"ready"})),l(!0),this}}i=new WeakSet,n=function(t){this.apiKey=t.apiKey,this.chainId=t.chainId,this.storeId=t.storeId,this.domain=t.domain,this.baseUrl=t.baseUrl||g,this.logUrl=t.logUrl||y},c=async function(t){const s=(t.plugins||[]).map(async a=>(await a.init(t),this.plugins[a.name]=a,a));return Promise.all(s)};const p=new f({}),L=t=>p.init(t),S=()=>p;export{S as getConfig,L as init};
2
2
  //# sourceMappingURL=beam.js.map
@@ -1,2 +1,2 @@
1
- import{O as a}from"../chunks/index-BaAhcyM6.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/utils-C5hmbxa4.esm.js";import"../chunks/index-Beh5bQDw.esm.js";import"../chunks/lit-BEag9MFp.esm.js";export{a as updateCart};
1
+ import{O as a}from"../chunks/index-BxivRkBL.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/utils-ly9wMwUO.esm.js";import"../chunks/index-M8hQ6GXf.esm.js";import"../chunks/lit-BEag9MFp.esm.js";export{a as updateCart};
2
2
  //# sourceMappingURL=cart.esm.js.map
@@ -1,2 +1,2 @@
1
- import{O as a}from"../chunks/index-BaAhcyM6.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/utils-C5hmbxa4.esm.js";import"../chunks/index-Beh5bQDw.esm.js";import"../chunks/lit-BEag9MFp.esm.js";export{a as updateCart};
1
+ import{O as a}from"../chunks/index-BxivRkBL.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/utils-ly9wMwUO.esm.js";import"../chunks/index-M8hQ6GXf.esm.js";import"../chunks/lit-BEag9MFp.esm.js";export{a as updateCart};
2
2
  //# sourceMappingURL=cart.js.map
@@ -1,2 +1,2 @@
1
- import{s as i}from"../chunks/index-Beh5bQDw.esm.js";import"../chunks/utils-C5hmbxa4.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";export{i as sendLog};
1
+ import{s as i}from"../chunks/index-M8hQ6GXf.esm.js";import"../chunks/utils-ly9wMwUO.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";export{i as sendLog};
2
2
  //# sourceMappingURL=logs.esm.js.map
@@ -1,2 +1,2 @@
1
- import{s as i}from"../chunks/index-Beh5bQDw.esm.js";import"../chunks/utils-C5hmbxa4.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";export{i as sendLog};
1
+ import{s as i}from"../chunks/index-M8hQ6GXf.esm.js";import"../chunks/utils-ly9wMwUO.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";export{i as sendLog};
2
2
  //# sourceMappingURL=logs.js.map
@@ -1,2 +1,2 @@
1
- import{f as C,h as p,p as u,l as a,j as v,k as g,m as P}from"../chunks/utils-C5hmbxa4.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";var d=o=>{throw TypeError(o)},f=(o,e,r)=>e.has(o)||d("Cannot "+r),k=(o,e,r)=>e.has(o)?d("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,r),n=(o,e,r)=>(f(o,e,"access private method"),r),t,c,m,h;class y{constructor(e){k(this,t),this.name="promoManager",this.promoCodes={unvalidatedPromoCodes:[],validatedPromoCodes:[]},this.disableDiscountCodeCookieCheck=!!e?.disableDiscountCodeCookieCheck}async init(e){try{const r=n(this,t,c).call(this),i=this.disableDiscountCodeCookieCheck?null:n(this,t,m).call(this);if(r||i){const l=C({apiKey:e.apiKey})??{unvalidatedPromoCodes:[],validatedPromoCodes:[]},s=[];r&&s.push(r),i&&s.push({value:i}),this.promoCodes=p(s,e.apiKey),!u(this.promoCodes,l)&&n(this,t,h).call(this)}}catch(r){a.error("[PromoManager] Initialization failed:",r)}}}t=new WeakSet,c=function(){try{return v()}catch(o){a.error("[PromoManager] URL sanitization error:",o);return}},m=function(){try{return g()}catch(o){return a.error("[PromoManager] Cookie extraction error:",o),null}},h=function(){if(this.promoCodes)try{const o=new P({promoCodes:{...this.promoCodes}});window.dispatchEvent(o)}catch(o){a.error("[PromoManager] Failed to dispatch event:",o)}};export{y as PromoManagerPlugin};
1
+ import{f as C,h as p,p as u,l as a,j as v,k as g,m as P}from"../chunks/utils-ly9wMwUO.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";var d=o=>{throw TypeError(o)},f=(o,e,r)=>e.has(o)||d("Cannot "+r),k=(o,e,r)=>e.has(o)?d("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,r),n=(o,e,r)=>(f(o,e,"access private method"),r),t,c,m,h;class y{constructor(e){k(this,t),this.name="promoManager",this.promoCodes={unvalidatedPromoCodes:[],validatedPromoCodes:[]},this.disableDiscountCodeCookieCheck=!!e?.disableDiscountCodeCookieCheck}async init(e){try{const r=n(this,t,c).call(this),i=this.disableDiscountCodeCookieCheck?null:n(this,t,m).call(this);if(r||i){const l=C({apiKey:e.apiKey})??{unvalidatedPromoCodes:[],validatedPromoCodes:[]},s=[];r&&s.push(r),i&&s.push({value:i}),this.promoCodes=p(s,e.apiKey),!u(this.promoCodes,l)&&n(this,t,h).call(this)}}catch(r){a.error("[PromoManager] Initialization failed:",r)}}}t=new WeakSet,c=function(){try{return v()}catch(o){a.error("[PromoManager] URL sanitization error:",o);return}},m=function(){try{return g()}catch(o){return a.error("[PromoManager] Cookie extraction error:",o),null}},h=function(){if(this.promoCodes)try{const o=new P({promoCodes:{...this.promoCodes}});window.dispatchEvent(o)}catch(o){a.error("[PromoManager] Failed to dispatch event:",o)}};export{y as PromoManagerPlugin};
2
2
  //# sourceMappingURL=promoManager.esm.js.map
@@ -1,2 +1,2 @@
1
- import{f as C,h as p,p as u,l as a,j as v,k as g,m as P}from"../chunks/utils-C5hmbxa4.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";var d=o=>{throw TypeError(o)},f=(o,e,r)=>e.has(o)||d("Cannot "+r),k=(o,e,r)=>e.has(o)?d("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,r),n=(o,e,r)=>(f(o,e,"access private method"),r),t,c,m,h;class y{constructor(e){k(this,t),this.name="promoManager",this.promoCodes={unvalidatedPromoCodes:[],validatedPromoCodes:[]},this.disableDiscountCodeCookieCheck=!!e?.disableDiscountCodeCookieCheck}async init(e){try{const r=n(this,t,c).call(this),i=this.disableDiscountCodeCookieCheck?null:n(this,t,m).call(this);if(r||i){const l=C({apiKey:e.apiKey})??{unvalidatedPromoCodes:[],validatedPromoCodes:[]},s=[];r&&s.push(r),i&&s.push({value:i}),this.promoCodes=p(s,e.apiKey),!u(this.promoCodes,l)&&n(this,t,h).call(this)}}catch(r){a.error("[PromoManager] Initialization failed:",r)}}}t=new WeakSet,c=function(){try{return v()}catch(o){a.error("[PromoManager] URL sanitization error:",o);return}},m=function(){try{return g()}catch(o){return a.error("[PromoManager] Cookie extraction error:",o),null}},h=function(){if(this.promoCodes)try{const o=new P({promoCodes:{...this.promoCodes}});window.dispatchEvent(o)}catch(o){a.error("[PromoManager] Failed to dispatch event:",o)}};export{y as PromoManagerPlugin};
1
+ import{f as C,h as p,p as u,l as a,j as v,k as g,m as P}from"../chunks/utils-ly9wMwUO.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";var d=o=>{throw TypeError(o)},f=(o,e,r)=>e.has(o)||d("Cannot "+r),k=(o,e,r)=>e.has(o)?d("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,r),n=(o,e,r)=>(f(o,e,"access private method"),r),t,c,m,h;class y{constructor(e){k(this,t),this.name="promoManager",this.promoCodes={unvalidatedPromoCodes:[],validatedPromoCodes:[]},this.disableDiscountCodeCookieCheck=!!e?.disableDiscountCodeCookieCheck}async init(e){try{const r=n(this,t,c).call(this),i=this.disableDiscountCodeCookieCheck?null:n(this,t,m).call(this);if(r||i){const l=C({apiKey:e.apiKey})??{unvalidatedPromoCodes:[],validatedPromoCodes:[]},s=[];r&&s.push(r),i&&s.push({value:i}),this.promoCodes=p(s,e.apiKey),!u(this.promoCodes,l)&&n(this,t,h).call(this)}}catch(r){a.error("[PromoManager] Initialization failed:",r)}}}t=new WeakSet,c=function(){try{return v()}catch(o){a.error("[PromoManager] URL sanitization error:",o);return}},m=function(){try{return g()}catch(o){return a.error("[PromoManager] Cookie extraction error:",o),null}},h=function(){if(this.promoCodes)try{const o=new P({promoCodes:{...this.promoCodes}});window.dispatchEvent(o)}catch(o){a.error("[PromoManager] Failed to dispatch event:",o)}};export{y as PromoManagerPlugin};
2
2
  //# sourceMappingURL=promoManager.js.map
@@ -1,2 +1,2 @@
1
- import"../chunks/vendor-DUOg5fL-.esm.js";import"../chunks/utils-C5hmbxa4.esm.js";import{c as m,e as p}from"../react/shopify.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";export{m as createSession,p as endSession};
1
+ import"../chunks/vendor-DUOg5fL-.esm.js";import"../chunks/utils-ly9wMwUO.esm.js";import{c as m,e as p}from"../react/shopify.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";export{m as createSession,p as endSession};
2
2
  //# sourceMappingURL=session.esm.js.map
@@ -1,2 +1,2 @@
1
- import"../chunks/vendor-DUOg5fL-.esm.js";import"../chunks/utils-C5hmbxa4.esm.js";import{c as m,e as p}from"../react/shopify.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";export{m as createSession,p as endSession};
1
+ import"../chunks/vendor-DUOg5fL-.esm.js";import"../chunks/utils-ly9wMwUO.esm.js";import{c as m,e as p}from"../react/shopify.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";export{m as createSession,p as endSession};
2
2
  //# sourceMappingURL=session.js.map
@@ -1,2 +1,2 @@
1
- import{s as O}from"../chunks/index-B8g4VHgI.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/utils-C5hmbxa4.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/css-card-grid-CiqEjkwR.esm.js";import"../chunks/index-Beh5bQDw.esm.js";import"../chunks/index-BebFL9KU.esm.js";import"../chunks/share-button-CIP03E7T.esm.js";import"../components/beam-partner-logos.esm.js";import"../chunks/promo-pill-label-BWPhroK6.esm.js";import"../chunks/_share-dialog-dependencies-DsJ2sKCC.esm.js";import"../chunks/vendor-DUOg5fL-.esm.js";import"../components/impact-overview.esm.js";import"../chunks/share-button-C-QLknal.esm.js";import"../chunks/responsive-aN8P5PqD.esm.js";export{O as showBeamOrderPageWidgets};
1
+ import{s as O}from"../chunks/index-E6IoMPQu.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/utils-ly9wMwUO.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/css-card-grid-tjA36yWj.esm.js";import"../chunks/index-M8hQ6GXf.esm.js";import"../chunks/index-DtAcPGd4.esm.js";import"../chunks/share-button-C1PRjoPw.esm.js";import"../components/beam-partner-logos.esm.js";import"../chunks/promo-pill-label-DCBXltdj.esm.js";import"../chunks/_share-dialog-dependencies-Caoc1gRc.esm.js";import"../chunks/vendor-DUOg5fL-.esm.js";import"../components/impact-overview.esm.js";import"../chunks/share-button-CNq5lDre.esm.js";import"../chunks/responsive-aN8P5PqD.esm.js";export{O as showBeamOrderPageWidgets};
2
2
  //# sourceMappingURL=shopify-order.esm.js.map
@@ -1,2 +1,2 @@
1
- import{s as O}from"../chunks/index-BX0p4BVY.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/utils-C5hmbxa4.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/css-card-grid-CiqEjkwR.esm.js";import"../chunks/index-Beh5bQDw.esm.js";import"../chunks/index-B-QZylCa.esm.js";import"../chunks/share-button-CIP03E7T.esm.js";import"../components/beam-partner-logos.js";import"../chunks/promo-pill-label-BWPhroK6.esm.js";import"../chunks/_share-dialog-dependencies-DsJ2sKCC.esm.js";import"../chunks/vendor-DUOg5fL-.esm.js";import"../components/impact-overview.js";import"../chunks/share-button-C-QLknal.esm.js";import"../chunks/responsive-aN8P5PqD.esm.js";export{O as showBeamOrderPageWidgets};
1
+ import{s as O}from"../chunks/index-BF0X_60j.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/utils-ly9wMwUO.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/css-card-grid-tjA36yWj.esm.js";import"../chunks/index-M8hQ6GXf.esm.js";import"../chunks/index-Yt9xXa7z.esm.js";import"../chunks/share-button-C1PRjoPw.esm.js";import"../components/beam-partner-logos.js";import"../chunks/promo-pill-label-DCBXltdj.esm.js";import"../chunks/_share-dialog-dependencies-Caoc1gRc.esm.js";import"../chunks/vendor-DUOg5fL-.esm.js";import"../components/impact-overview.js";import"../chunks/share-button-CNq5lDre.esm.js";import"../chunks/responsive-aN8P5PqD.esm.js";export{O as showBeamOrderPageWidgets};
2
2
  //# sourceMappingURL=shopify-order.js.map
@@ -1,2 +1,2 @@
1
- import{J as p,p as C,r as m,x as n,C as g,L as u,T as b,a as d,o as A,n as T}from"../chunks/index-Duq6tIq8.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/utils-C5hmbxa4.esm.js";import"../chunks/index-Beh5bQDw.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/index-BaAhcyM6.esm.js";export{p as addBeamAttributesToCart,C as appendBeamAttributesToCart,m as appendStatsigToShopifyCartAttributes,n as appendToShopifyCartBeamAttribute,g as getBeamAttributesForCart,u as getCurrentCart,b as getShopifyCart,d as registerCartIntegration,A as trackCart,T as unregisterCartIntegration};
1
+ import{J as p,p as C,r as m,x as n,C as g,L as u,T as b,a as d,o as A,n as T}from"../chunks/index-ADw_ucEx.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/utils-ly9wMwUO.esm.js";import"../chunks/index-M8hQ6GXf.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/index-BxivRkBL.esm.js";export{p as addBeamAttributesToCart,C as appendBeamAttributesToCart,m as appendStatsigToShopifyCartAttributes,n as appendToShopifyCartBeamAttribute,g as getBeamAttributesForCart,u as getCurrentCart,b as getShopifyCart,d as registerCartIntegration,A as trackCart,T as unregisterCartIntegration};
2
2
  //# sourceMappingURL=shopify.esm.js.map
@@ -1,2 +1,2 @@
1
- import{J as p,p as C,r as m,x as n,C as g,L as u,T as b,a as d,o as A,n as T}from"../chunks/index-Duq6tIq8.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/utils-C5hmbxa4.esm.js";import"../chunks/index-Beh5bQDw.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/index-BaAhcyM6.esm.js";export{p as addBeamAttributesToCart,C as appendBeamAttributesToCart,m as appendStatsigToShopifyCartAttributes,n as appendToShopifyCartBeamAttribute,g as getBeamAttributesForCart,u as getCurrentCart,b as getShopifyCart,d as registerCartIntegration,A as trackCart,T as unregisterCartIntegration};
1
+ import{J as p,p as C,r as m,x as n,C as g,L as u,T as b,a as d,o as A,n as T}from"../chunks/index-ADw_ucEx.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";import"../chunks/utils-ly9wMwUO.esm.js";import"../chunks/index-M8hQ6GXf.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/index-BxivRkBL.esm.js";export{p as addBeamAttributesToCart,C as appendBeamAttributesToCart,m as appendStatsigToShopifyCartAttributes,n as appendToShopifyCartBeamAttribute,g as getBeamAttributesForCart,u as getCurrentCart,b as getShopifyCart,d as registerCartIntegration,A as trackCart,T as unregisterCartIntegration};
2
2
  //# sourceMappingURL=shopify.js.map
@@ -1,11 +1,13 @@
1
+ import { StatsigClient } from '@statsig/js-client';
1
2
  import { BeamPlugin, BeamConfigOptions } from './beam.js';
2
3
  import '../chunks/utils-BPcZ5h8J.esm.js';
3
4
  import 'lodash-es/debounce';
4
5
  import 'lodash-es/isEqual';
5
6
 
6
7
  type beforeLogEventFn = (eventName: string, eventValue: any, metadata: Record<string, any>) => Record<string, any>;
8
+ type BeamEventValue = string | number | boolean;
7
9
  /**
8
- * StatSig Docs: https://docs.statsig.com/client/jsClientSDK
10
+ * StatSig Docs: https://docs.statsig.com/client/javascript-sdk
9
11
  */
10
12
  type StatsigPluginOptions = {
11
13
  statsigApiKey: string;
@@ -13,7 +15,8 @@ type StatsigPluginOptions = {
13
15
  };
14
16
  declare global {
15
17
  interface Window {
16
- statsig?: any;
18
+ /** Set only when localStorage `beam_debug` is "true", so QA can reach the client from the console */
19
+ beamStatsigClient?: StatsigClient;
17
20
  }
18
21
  }
19
22
  type SessionReturnOrigin = "cart_abandon" | "checkout_abandon";
@@ -48,7 +51,7 @@ type Experiments = {
48
51
  declare class StatsigPlugin implements BeamPlugin {
49
52
  #private;
50
53
  name: string;
51
- statsig: any;
54
+ statsig?: StatsigClient;
52
55
  statsigApiKey: string;
53
56
  experiments: Experiments;
54
57
  stableId?: string;
@@ -56,7 +59,7 @@ declare class StatsigPlugin implements BeamPlugin {
56
59
  sessionReturnOrigin?: SessionReturnOrigin;
57
60
  constructor(options: StatsigPluginOptions);
58
61
  init(config: BeamConfigOptions): Promise<void>;
59
- logEvent: (name: string, value: string | number | boolean, metadata?: Record<string, any>) => void;
62
+ logEvent: (name: string, value: BeamEventValue, metadata?: Record<string, any>) => void;
60
63
  }
61
64
 
62
65
  export { StatsigPlugin };
@@ -1,17 +1,17 @@
1
- import{B as k,p as P}from"../chunks/index-Beh5bQDw.esm.js";import{l as w,n as b,s as K,g as y,o as z,q as U,r as W,t as j,u as F,B as q}from"../chunks/utils-C5hmbxa4.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";var C=t=>{throw TypeError(t)},S=(t,e,i)=>e.has(t)||C("Cannot "+i),l=(t,e,i)=>(S(t,e,"read from private field"),i?i.call(t):e.get(t)),E=(t,e,i)=>e.has(t)?C("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,i),A=(t,e,i,s)=>(S(t,e,"write to private field"),e.set(t,i),i),d=(t,e,i)=>(S(t,e,"access private method"),i),c,I,o,B,f,R,T,g,O,_,L,N;const G=4,V=`https://cdn.jsdelivr.net/npm/statsig-js@${G}/build/statsig-prod-web-sdk.min.js`,x=U.STATSIG_STABLE_ID,n="data-beam-visibility",H="beam-sync-visibility",u={STATSIG_INIT:"statsig_init",CART_CREATED:"cart_created",ORDER_CREATED:"order_created",BEAM_SELECTION:"beam_selection",SESSION_RETURN:"session_return"},J="beam_ssid",Q="beam_return_origin";class Y{constructor(e){E(this,o),this.name="statsig",this.experiments={shouldShowBeam:!1,isLoggingEnabled:!0,sessionReturnOrigin:null},E(this,c),E(this,I),E(this,g,[]),this.logEvent=(i,s,a={})=>{if(!this.statsig){l(this,g).push([i,s,a]);return}const r=this.experiments.shouldShowBeam,h=window.location.hostname,p=window.location.pathname,m=window.location.href;if(this.experiments.isLoggingEnabled){const v=this.beforeLogEvent?this.beforeLogEvent(i,s,a):a;this.statsig.logEvent(i,s,{...v,withBeam:r,domain:h,path:p,page:m})}w.debug(i,s,{...a,withBeam:r,domain:h,path:p,page:m})},this.statsigApiKey=e.statsigApiKey,this.beforeLogEvent=e.beforeLogEvent}async init(e){const{sessionReturnOrigin:i}=d(this,o,f).call(this);A(this,c,e),d(this,o,R).call(this),d(this,o,_).call(this,"hide"),i&&(this.sessionReturnOrigin=i);const s=document.createElement("style");if(s.innerHTML=`
2
- [${n}="hide"] beam-select-nonprofit,
3
- [${n}="hide"] beam-post-purchase,
4
- [${n}="hide"] beam-redeem-transaction,
5
- [${n}="hide"] beam-impact-overview,
6
- [${n}="hide"] beam-community-impact,
7
- [${n}="hide"] beam-cumulative-impact,
8
- [${n}="hide"] beam-product-details-page,
9
- [${n}="hide"] beam-subscription-management,
10
- [${n}="hide"] beam-subscription-impact,
11
- [${n}="hide"] beam-select-subscription-nonprofit,
12
- [${n}="hide"] beam-social-share,
13
- [${n}="hide"] .${H} {
1
+ import{s as W}from"../chunks/statsig-DlszSNOf.esm.js";import{B as V,v as F,p as q}from"../chunks/index-M8hQ6GXf.esm.js";import{l as m,n as y,s as j,g as T,o as H,q as J,r as Q,t as X,u as Y,B as Z,v as tt}from"../chunks/utils-ly9wMwUO.esm.js";import"../chunks/handlebars-3tRO54kz.esm.js";import"../chunks/lit-BEag9MFp.esm.js";import"../chunks/lodash-CrMU6wKg.esm.js";var C=t=>{throw TypeError(t)},S=(t,e,i)=>e.has(t)||C("Cannot "+i),d=(t,e,i)=>(S(t,e,"read from private field"),i?i.call(t):e.get(t)),u=(t,e,i)=>e.has(t)?C("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,i),I=(t,e,i,s)=>(S(t,e,"write to private field"),e.set(t,i),i),r=(t,e,i)=>(S(t,e,"access private method"),i),g,b,p,a,A,w,R,B,O,N,E,L,v,f,x,D,M;const $=J.STATSIG_STABLE_ID,et="STATSIG_LOCAL_STORAGE_STABLE_ID",it=3e3,st=F,h="data-beam-visibility",at="beam-sync-visibility",l={STATSIG_INIT:"statsig_init",CART_CREATED:"cart_created",ORDER_CREATED:"order_created",BEAM_SELECTION:"beam_selection",SESSION_RETURN:"session_return"},nt={[l.STATSIG_INIT]:1,[l.CART_CREATED]:1,[l.ORDER_CREATED]:1,[l.BEAM_SELECTION]:1,[l.SESSION_RETURN]:1},ot="beam_ssid",rt="beam_return_origin";function ht(t){return typeof t=="boolean"?String(t):t}function k(t){return Object.entries(t).reduce((e,[i,s])=>(s!=null&&(e[i]=String(s)),e),{})}class lt{constructor(e){u(this,a),this.name="statsig",this.experiments={shouldShowBeam:!1,isLoggingEnabled:!0,sessionReturnOrigin:null},u(this,g),u(this,b),u(this,p),u(this,E,[]),this.logEvent=(i,s,n={})=>{if(!this.statsig){d(this,E).push([i,s,n]);return}const o=r(this,a,v).call(this,i);if(this.experiments.isLoggingEnabled){const c=this.beforeLogEvent?this.beforeLogEvent(i,s,n):n;this.statsig.logEvent({eventName:i,value:ht(s),metadata:k({...c,...o})})}m.debug(i,s,{...n,...o})},this.statsigApiKey=e.statsigApiKey,this.beforeLogEvent=e.beforeLogEvent}async init(e){const{sessionReturnOrigin:i}=r(this,a,w).call(this);I(this,g,e),r(this,a,B).call(this),r(this,a,f).call(this,"hide"),i&&(this.sessionReturnOrigin=i);const s=document.createElement("style");s.innerHTML=`
2
+ [${h}="hide"] beam-select-nonprofit,
3
+ [${h}="hide"] beam-post-purchase,
4
+ [${h}="hide"] beam-redeem-transaction,
5
+ [${h}="hide"] beam-impact-overview,
6
+ [${h}="hide"] beam-community-impact,
7
+ [${h}="hide"] beam-cumulative-impact,
8
+ [${h}="hide"] beam-product-details-page,
9
+ [${h}="hide"] beam-subscription-management,
10
+ [${h}="hide"] beam-subscription-impact,
11
+ [${h}="hide"] beam-select-subscription-nonprofit,
12
+ [${h}="hide"] beam-social-share,
13
+ [${h}="hide"] .${at} {
14
14
  display: none;
15
15
  }
16
- `,document.head.append(s),await d(this,o,T).call(this),this.stableId=this.statsig.getStableID(),!this.stableId)throw new b("Statsig failed to assign stableId",{name:"StatsigInitError"});d(this,o,O).call(this),K({remoteSessionId:this.stableId,apiKey:e.apiKey}),A(this,I,y(k)),z({name:x,value:this.stableId,path:"/",domain:e.domain}),this.experiments={shouldShowBeam:this.statsig.getLayer("beam_trial_layer").get("show_beam",!1),isLoggingEnabled:this.statsig.getLayer("beam_trial_layer").get("enable_logging",!0),...this.sessionReturnOrigin!=null&&{sessionReturnOrigin:this.sessionReturnOrigin}},await Promise.all([d(this,o,L).call(this),d(this,o,N).call(this)]),d(this,o,_).call(this,this.experiments.shouldShowBeam?"show":"hide"),d(this,o,B).call(this),w.debug("Statsig Experiment Assignments",this.experiments)}}c=new WeakMap,I=new WeakMap,o=new WeakSet,B=function(){try{const t=new W({showBeam:this.experiments.shouldShowBeam,stableId:this.stableId});window.dispatchEvent(t)}catch(t){w.error("[BeamStatsigInitializedEvent] Failed to dispatch event:",t)}},f=function(){const t=new URLSearchParams(window.location.search),e=t.get(J),i=t.get(Q);return{stableId:e,sessionReturnOrigin:i==="cart_abandon"||i==="checkout_abandon"?i:null}},R=function(){window.addEventListener(j.eventName,e=>{const i=e,{itemCount:s,cartId:a,subtotal:r,currencyCode:h}=i.detail;this.logEvent(u.CART_CREATED,!0,{itemCount:s,cartId:a,subtotal:r,currencyCode:h})}),window.addEventListener(F.eventName,e=>{const i=e,{orderId:s,cartTotal:a,currencyCode:r,cartId:h,selectionId:p,beamCartId:m,storeId:v,remoteSessionId:$,transactionNonprofitId:M,orderProcessedAt:D}=i.detail;this.logEvent(u.ORDER_CREATED,a,{orderId:s,cartTotal:a,currencyCode:r,hasCart:!!m||!!l(this,I),selectionId:p,storeId:v,cartId:h,beamCartId:m,remoteSessionId:$,transactionNonprofitId:M,orderProcessedAt:D})});let t;window.addEventListener(q.eventName,e=>{const i=e,{selectedNonprofitId:s,selectionId:a,source:r}=i.detail;s!==t&&(this.logEvent(u.BEAM_SELECTION,!0,{nonprofitId:s,widget:r,selectionId:a}),t=s)})},T=async function(){const{stableId:t,sessionReturnOrigin:e}=d(this,o,f).call(this);t&&e&&this.logEvent(u.SESSION_RETURN,e,{session_return_origin:e,stable_id:t});const i=document.createElement("script");i.src=V,i.async=!1;const s=new Promise((r,h)=>{i.addEventListener("load",r),i.addEventListener("error",h)});document.head.append(i);try{await s}catch{throw new b("Failed to load Statsig script",{name:"StatsigInitError"})}if(this.statsig=window.statsig,!this.statsig)throw new b("Failed to detect Statsig",{name:"StatsigInitError"});const a={disableErrorLogging:!0,disableAutoMetricsLogging:!0,disableCurrentPageLogging:!0,loggingIntervalMillis:1e3,loggingBufferMaxSize:2,overrideStableID:t??y(x)??null};await this.statsig.initialize(this.statsigApiKey,{},a)},g=new WeakMap,O=function(){for(;l(this,g).length>0;){const t=l(this,g).shift();t&&this.logEvent(...t)}},_=function(t){document.body.setAttribute(n,t)},L=async function(){const t="https://events.statsigapi.net/v1/log_event";try{await fetch(t,{method:"POST",headers:{"content-type":"application/json","statsig-api-key":this.statsigApiKey},body:JSON.stringify({eventName:u.STATSIG_INIT,value:"true",time:new Date().getTime()/1e3,metadata:{show_beam:this.experiments.shouldShowBeam.toString(),domain:window.location.hostname,path:window.location.pathname,page:window.location.href},user:{userID:this.stableId}})})}catch(e){throw new b("Could not call Statsig API",{name:"StatsigInitError",cause:e})}},N=async function(){try{return await P({baseUrl:l(this,c)?.baseUrl,keepalive:!0,headers:{authorization:`Api-Key ${l(this,c)?.apiKey}`},requestBody:{remoteSessionId:this.stableId,storeId:l(this,c)?.storeId,experiments:{showBeam:this.experiments.shouldShowBeam,...this.sessionReturnOrigin!=null&&{events:[{eventName:"session_return",eventValue:this.sessionReturnOrigin,timestamp:new Date().toISOString()}]}}}})}catch(t){w.debug("[StatsigPlugin] Failed to register experiment session with Beam",t);return}};export{Y as StatsigPlugin};
16
+ `,document.head.append(s);const n=await r(this,a,N).call(this);if(this.stableId=n.getContext().stableID??void 0,!this.stableId)throw new y("Statsig failed to assign stableId",{name:"StatsigInitError"});j({remoteSessionId:this.stableId,apiKey:e.apiKey}),I(this,b,T(V)),H({name:$,value:this.stableId,path:"/",domain:e.domain});const o=n.getLayer("beam_trial_layer");this.experiments={shouldShowBeam:o.get("show_beam",!1),isLoggingEnabled:o.get("enable_logging",!0),...this.sessionReturnOrigin!=null&&{sessionReturnOrigin:this.sessionReturnOrigin}},r(this,a,L).call(this),await Promise.all([r(this,a,x).call(this),r(this,a,M).call(this)]),r(this,a,f).call(this,this.experiments.shouldShowBeam?"show":"hide"),r(this,a,A).call(this),r(this,a,O).call(this),m.debug("Statsig Experiment Assignments",this.experiments)}}g=new WeakMap,b=new WeakMap,p=new WeakMap,a=new WeakSet,A=function(){try{const t=new Q({showBeam:this.experiments.shouldShowBeam,stableId:this.stableId});window.dispatchEvent(t)}catch(t){m.error("[BeamStatsigInitializedEvent] Failed to dispatch event:",t)}},w=function(){const t=new URLSearchParams(window.location.search),e=t.get(ot),i=t.get(rt);return{stableId:e,sessionReturnOrigin:i==="cart_abandon"||i==="checkout_abandon"?i:null}},R=function(t){if(t)return t;const e=d(this,g)?.apiKey,i=T($)||(e?tt({apiKey:e}):void 0);if(i)return i;try{return window.localStorage.getItem(et)??void 0}catch(s){m.debug("[StatsigPlugin] Could not read legacy stable ID from local storage",s);return}},B=function(){window.addEventListener(X.eventName,e=>{const i=e,{itemCount:s,cartId:n,subtotal:o,currencyCode:c}=i.detail;this.logEvent(l.CART_CREATED,!0,{itemCount:s,cartId:n,subtotal:o,currencyCode:c})}),window.addEventListener(Y.eventName,e=>{const i=e,{orderId:s,cartTotal:n,currencyCode:o,cartId:c,selectionId:K,beamCartId:_,storeId:P,remoteSessionId:G,transactionNonprofitId:U,orderProcessedAt:z}=i.detail;this.logEvent(l.ORDER_CREATED,n,{orderId:s,cartTotal:n,currencyCode:o,hasCart:!!_||!!d(this,b),selectionId:K,storeId:P,cartId:c,beamCartId:_,remoteSessionId:G,transactionNonprofitId:U,orderProcessedAt:z})});let t;window.addEventListener(Z.eventName,e=>{const i=e,{selectedNonprofitId:s,selectionId:n,source:o}=i.detail;s!==t&&(this.logEvent(l.BEAM_SELECTION,!0,{nonprofitId:s,widget:o,selectionId:n}),t=s)})},O=function(){const t=()=>{this.statsig?.flush()};window.addEventListener("pagehide",t),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&t()})},N=async function(){const{stableId:t,sessionReturnOrigin:e}=r(this,a,w).call(this);t&&e&&this.logEvent(l.SESSION_RETURN,e,{session_return_origin:e,stable_id:t});const i=r(this,a,R).call(this,t),s=i?{customIDs:{stableID:i}}:{},n={loggingIntervalMs:1e3,loggingBufferMaxSize:2,includeCurrentPageUrlWithEvents:!1};I(this,p,Date.now());const o=new W.StatsigClient(this.statsigApiKey,s,n);this.statsig=o;try{window.localStorage.getItem("beam_debug")==="true"&&(window.beamStatsigClient=o)}catch{}try{await o.initializeAsync({timeoutMs:it})}catch(c){throw new y("Failed to initialize Statsig",{name:"StatsigInitError",cause:c})}return o},E=new WeakMap,L=function(){for(;d(this,E).length>0;){const t=d(this,E).shift();t&&this.logEvent(...t)}},v=function(t){return{integrationVersion:st,eventVersion:nt[t],withBeam:this.experiments.shouldShowBeam,domain:window.location.hostname,path:window.location.pathname,page:window.location.href}},f=function(t){document.body.setAttribute(h,t)},x=async function(){if(this.statsig){if(!r(this,a,D).call(this,this.statsig)){m.debug("[StatsigPlugin] statsig_init already sent this Statsig session, skipping");return}try{this.statsig.logEvent({eventName:l.STATSIG_INIT,value:String(this.experiments.shouldShowBeam),metadata:k({show_beam:this.experiments.shouldShowBeam,...r(this,a,v).call(this,l.STATSIG_INIT)})}),await this.statsig.flush()}catch(t){m.debug("[StatsigPlugin] Failed to log exposure to Statsig",t)}}},D=function(t){if(d(this,p)==null)return!0;try{return t.getContext().session.data.startTime>=d(this,p)}catch{return!0}},M=async function(){try{return await q({baseUrl:d(this,g)?.baseUrl,keepalive:!0,headers:{authorization:`Api-Key ${d(this,g)?.apiKey}`},requestBody:{remoteSessionId:this.stableId,storeId:d(this,g)?.storeId,experiments:{showBeam:this.experiments.shouldShowBeam,...this.sessionReturnOrigin!=null&&{events:[{eventName:"session_return",eventValue:this.sessionReturnOrigin,timestamp:new Date().toISOString()}]}}}})}catch(t){m.debug("[StatsigPlugin] Failed to register experiment session with Beam",t);return}};export{lt as StatsigPlugin};
17
17
  //# sourceMappingURL=statsig.esm.js.map