@beamimpact/web-sdk 1.39.1 → 1.39.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/dist/chunks/_share-dialog-dependencies-K7WZWxUL.esm.js +2 -0
  2. package/dist/chunks/_share-dialog-dependencies-K7WZWxUL.esm.js.map +1 -0
  3. package/dist/chunks/_share-dialog-dependencies-VjhRF4_b.esm.js +2 -0
  4. package/dist/chunks/_share-dialog-dependencies-VjhRF4_b.esm.js.map +1 -0
  5. package/dist/chunks/{events-7W7i4aV5.esm.d.ts → events-7cGXyV7_.esm.d.ts} +2 -1
  6. package/dist/chunks/events-Y8fYvSqM.esm.js.map +1 -1
  7. package/dist/chunks/{index-Zk634mW7.esm.d.ts → index-0VcD5nhV.esm.d.ts} +1 -1
  8. package/dist/chunks/{index-YwDVLm67.esm.d.ts → index-8KzbQIsU.esm.d.ts} +1 -1
  9. package/dist/chunks/index-EUMlzqI-.esm.js +2 -0
  10. package/dist/chunks/index-EUMlzqI-.esm.js.map +1 -0
  11. package/dist/chunks/index-U5URUABu.esm.js +2 -0
  12. package/dist/chunks/index-U5URUABu.esm.js.map +1 -0
  13. package/dist/chunks/index-VELk9_yH.esm.js +2 -0
  14. package/dist/chunks/index-VELk9_yH.esm.js.map +1 -0
  15. package/dist/chunks/{index-wrvDFuaS.esm.js → index-XlnH7ARQ.esm.js} +2 -2
  16. package/dist/chunks/{index-wrvDFuaS.esm.js.map → index-XlnH7ARQ.esm.js.map} +1 -1
  17. package/dist/chunks/{index-IO0Z_buU.esm.js → index-dsJIs5Sr.esm.js} +2 -2
  18. package/dist/chunks/{index-IO0Z_buU.esm.js.map → index-dsJIs5Sr.esm.js.map} +1 -1
  19. package/dist/chunks/index-q_XLkvqc.esm.js +2 -0
  20. package/dist/chunks/index-q_XLkvqc.esm.js.map +1 -0
  21. package/dist/chunks/{index-b-AHDeDB.esm.d.ts → index-rFBYAk7m.esm.d.ts} +1 -1
  22. package/dist/chunks/index-xR738adx.esm.js +2 -0
  23. package/dist/chunks/index-xR738adx.esm.js.map +1 -0
  24. package/dist/chunks/index-xfPSpbUV.esm.js +2 -0
  25. package/dist/chunks/index-xfPSpbUV.esm.js.map +1 -0
  26. package/dist/chunks/order-page-6Q-6CHug.esm.js +2 -0
  27. package/dist/chunks/order-page-6Q-6CHug.esm.js.map +1 -0
  28. package/dist/chunks/order-page-mYYXHDVr.esm.js +2 -0
  29. package/dist/chunks/order-page-mYYXHDVr.esm.js.map +1 -0
  30. package/dist/chunks/routes-3jKReDai.esm.js +2 -0
  31. package/dist/chunks/routes-3jKReDai.esm.js.map +1 -0
  32. package/dist/chunks/routes-b8sncPq8.esm.js +2 -0
  33. package/dist/chunks/routes-b8sncPq8.esm.js.map +1 -0
  34. package/dist/chunks/{shoelace-components-jVPXTZPS.esm.js → shoelace-components-7XWYNn-Z.esm.js} +2 -2
  35. package/dist/chunks/{shoelace-components-jVPXTZPS.esm.js.map → shoelace-components-7XWYNn-Z.esm.js.map} +1 -1
  36. package/dist/chunks/{shoelace-components-yvcqUObE.esm.js → shoelace-components-paAsUPkU.esm.js} +2 -2
  37. package/dist/chunks/{shoelace-components-yvcqUObE.esm.js.map → shoelace-components-paAsUPkU.esm.js.map} +1 -1
  38. package/dist/chunks/types-CfbVJRfU.esm.d.ts +21 -0
  39. package/dist/chunks/{update-cart-TDb6pWxk.esm.js → update-cart-GaVMWI6J.esm.js} +2 -2
  40. package/dist/chunks/{update-cart-TDb6pWxk.esm.js.map → update-cart-GaVMWI6J.esm.js.map} +1 -1
  41. package/dist/chunks/{update-cart--5PpQSrY.esm.js → update-cart-xW6a5_bz.esm.js} +2 -2
  42. package/dist/chunks/{update-cart--5PpQSrY.esm.js.map → update-cart-xW6a5_bz.esm.js.map} +1 -1
  43. package/dist/components/community-impact.d.ts +1 -1
  44. package/dist/components/community-impact.esm.js +3 -3
  45. package/dist/components/community-impact.esm.js.map +1 -1
  46. package/dist/components/community-impact.js +3 -3
  47. package/dist/components/community-impact.js.map +1 -1
  48. package/dist/components/cumulative-impact.d.ts +1 -1
  49. package/dist/components/cumulative-impact.esm.js +1 -1
  50. package/dist/components/cumulative-impact.js +1 -1
  51. package/dist/components/impact-overview.d.ts +1 -1
  52. package/dist/components/impact-overview.esm.js +5 -5
  53. package/dist/components/impact-overview.esm.js.map +1 -1
  54. package/dist/components/impact-overview.js +5 -5
  55. package/dist/components/impact-overview.js.map +1 -1
  56. package/dist/components/index.d.ts +1 -1
  57. package/dist/components/index.esm.js +1 -1
  58. package/dist/components/index.js +1 -1
  59. package/dist/components/post-purchase.d.ts +1 -1
  60. package/dist/components/post-purchase.esm.js +1 -1
  61. package/dist/components/post-purchase.js +1 -1
  62. package/dist/components/product-details-page.esm.js +3 -3
  63. package/dist/components/product-details-page.esm.js.map +1 -1
  64. package/dist/components/product-details-page.js +3 -3
  65. package/dist/components/product-details-page.js.map +1 -1
  66. package/dist/components/redeem-transaction.d.ts +1 -1
  67. package/dist/components/redeem-transaction.esm.js +9 -9
  68. package/dist/components/redeem-transaction.esm.js.map +1 -1
  69. package/dist/components/redeem-transaction.js +9 -9
  70. package/dist/components/redeem-transaction.js.map +1 -1
  71. package/dist/components/select-nonprofit.d.ts +1 -1
  72. package/dist/components/select-nonprofit.esm.js +8 -8
  73. package/dist/components/select-nonprofit.esm.js.map +1 -1
  74. package/dist/components/select-nonprofit.js +8 -8
  75. package/dist/components/select-nonprofit.js.map +1 -1
  76. package/dist/components/shopify.d.ts +2 -2
  77. package/dist/components/shopify.esm.js +1 -1
  78. package/dist/components/shopify.js +1 -1
  79. package/dist/components/subscription-management.d.ts +1 -1
  80. package/dist/components/subscription-management.esm.js +6 -6
  81. package/dist/components/subscription-management.esm.js.map +1 -1
  82. package/dist/components/subscription-management.js +6 -6
  83. package/dist/components/subscription-management.js.map +1 -1
  84. package/dist/index.d.ts +5 -5
  85. package/dist/index.esm.js +1 -1
  86. package/dist/index.js +1 -1
  87. package/dist/integrations/beam.d.ts +1 -1
  88. package/dist/integrations/beam.esm.js +1 -1
  89. package/dist/integrations/beam.js +1 -1
  90. package/dist/integrations/cart.esm.js +1 -1
  91. package/dist/integrations/cart.js +1 -1
  92. package/dist/integrations/index.d.ts +3 -3
  93. package/dist/integrations/index.esm.js +1 -1
  94. package/dist/integrations/index.js +1 -1
  95. package/dist/integrations/logs.esm.js +1 -1
  96. package/dist/integrations/logs.js +1 -1
  97. package/dist/integrations/shopify.d.ts +1 -1
  98. package/dist/integrations/shopify.esm.js +1 -1
  99. package/dist/integrations/shopify.js +1 -1
  100. package/dist/integrations/statsig.d.ts +1 -1
  101. package/dist/integrations/statsig.esm.js +1 -1
  102. package/dist/integrations/statsig.js +1 -1
  103. package/dist/integrations/utils.d.ts +2 -2
  104. package/dist/react/community-impact.d.ts +1 -1
  105. package/dist/react/community-impact.esm.js +1 -1
  106. package/dist/react/community-impact.js +1 -1
  107. package/dist/react/cumulative-impact.d.ts +1 -1
  108. package/dist/react/cumulative-impact.esm.js +1 -1
  109. package/dist/react/cumulative-impact.js +1 -1
  110. package/dist/react/impact-overview.d.ts +1 -1
  111. package/dist/react/impact-overview.esm.js +1 -1
  112. package/dist/react/impact-overview.js +1 -1
  113. package/dist/react/index.d.ts +2 -2
  114. package/dist/react/index.esm.js +1 -1
  115. package/dist/react/index.js +1 -1
  116. package/dist/react/post-purchase.d.ts +1 -1
  117. package/dist/react/post-purchase.esm.js +1 -1
  118. package/dist/react/post-purchase.js +1 -1
  119. package/dist/react/product-details-page.esm.js +1 -1
  120. package/dist/react/product-details-page.js +1 -1
  121. package/dist/react/redeem-transaction.d.ts +2 -2
  122. package/dist/react/redeem-transaction.esm.js +1 -1
  123. package/dist/react/redeem-transaction.js +1 -1
  124. package/dist/react/select-nonprofit.d.ts +2 -2
  125. package/dist/react/select-nonprofit.esm.js +1 -1
  126. package/dist/react/select-nonprofit.js +1 -1
  127. package/dist/react/subscription-management.d.ts +1 -1
  128. package/dist/react/subscription-management.esm.js +1 -1
  129. package/dist/react/subscription-management.js +1 -1
  130. package/dist/utils/events.d.ts +2 -2
  131. package/dist/utils/index.d.ts +2 -2
  132. package/package.json +1 -1
  133. package/dist/chunks/_share-dialog-dependencies-45VkuwV_.esm.js +0 -2
  134. package/dist/chunks/_share-dialog-dependencies-45VkuwV_.esm.js.map +0 -1
  135. package/dist/chunks/_share-dialog-dependencies-zjR-bLve.esm.js +0 -2
  136. package/dist/chunks/_share-dialog-dependencies-zjR-bLve.esm.js.map +0 -1
  137. package/dist/chunks/index-07spDV_A.esm.js +0 -2
  138. package/dist/chunks/index-07spDV_A.esm.js.map +0 -1
  139. package/dist/chunks/index-NF6VKqmo.esm.js +0 -2
  140. package/dist/chunks/index-NF6VKqmo.esm.js.map +0 -1
  141. package/dist/chunks/index-TD6ZYob2.esm.js +0 -2
  142. package/dist/chunks/index-TD6ZYob2.esm.js.map +0 -1
  143. package/dist/chunks/index-b9nIxcaS.esm.js +0 -2
  144. package/dist/chunks/index-b9nIxcaS.esm.js.map +0 -1
  145. package/dist/chunks/index-i1kXw_4Z.esm.js +0 -2
  146. package/dist/chunks/index-i1kXw_4Z.esm.js.map +0 -1
  147. package/dist/chunks/index-qFEb98cw.esm.js +0 -2
  148. package/dist/chunks/index-qFEb98cw.esm.js.map +0 -1
  149. package/dist/chunks/order-page-DTWyo57K.esm.js +0 -2
  150. package/dist/chunks/order-page-DTWyo57K.esm.js.map +0 -1
  151. package/dist/chunks/order-page-r0Bn2_wR.esm.js +0 -2
  152. package/dist/chunks/order-page-r0Bn2_wR.esm.js.map +0 -1
  153. package/dist/chunks/routes-eEIGOCLH.esm.js +0 -2
  154. package/dist/chunks/routes-eEIGOCLH.esm.js.map +0 -1
  155. package/dist/chunks/routes-mFdr3VNw.esm.js +0 -2
  156. package/dist/chunks/routes-mFdr3VNw.esm.js.map +0 -1
  157. package/dist/chunks/types-7kSi85Gv.esm.d.ts +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"impact-overview.js","sources":["../../src/shared/feature-detection.ts","../../src/shared/files.ts","../../src/shared/sync-element-heights.ts","../../src/components/impact-overview/strings.ts","../../src/components/impact-overview/index.ts"],"sourcesContent":["export function isMobile() {\n return /Android|iPhone/i.test(navigator.userAgent);\n}\n\nexport function hasSystemShare() {\n return !!navigator.share;\n}\n","export const urlToFile = async (url: string) => {\n return fetch(url).then(async (r) => {\n const u = new URL(url);\n const blob = await r.blob();\n return new File([blob], u.pathname, { type: blob.type });\n });\n};\n","import { isAllHtmlElements } from \"./is-all-html-elements\";\n\n/**\n * Synchronize heights of elements\n * @param {Array<HTMLElement|null>} elements - Elements to synchronize\n * @param {'contentLength' | 'currentHeight'} [options.source='contentLength'] -\n * Method used to get the height value to sync across elements. `contentLength`\n * (innerText.length) is reliable for pure text content when responding to\n * window resizing. Otherwise, currentHeight can be used to sync the tallest\n * element's height to all the other elements. Note that this works poorly\n * unless content is allowed to reflow with explicit height attributes removed\n * between synchronization calls.\n */\nexport const syncElementHeights = (\n elements: Array<HTMLElement | null> | NodeList,\n {\n source = \"contentLength\",\n }: {\n source?: \"contentLength\" | \"currentHeight\";\n } = {}\n) => {\n const els = elements instanceof NodeList ? Array.from(elements) : elements;\n\n if (els.length === 0 || !isAllHtmlElements(els)) {\n return;\n }\n\n const heightSource =\n source === \"contentLength\"\n ? els.sort((a, b) => {\n return b.innerText.length - a.innerText.length;\n })[0]\n : els.sort((a, b) => {\n return b.clientHeight - a.clientHeight;\n })[0];\n\n const syncedHeight = heightSource?.clientHeight || 0;\n\n for (const el of els) {\n if (el.clientHeight !== syncedHeight) {\n el.style[\"height\"] = syncedHeight + \"px\";\n }\n }\n};\n","export const strings = {\n en: {\n descriptionTitle: ({ nonprofitName = \"a nonprofit\" }) => `You just made an impact for ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) => `Check out the impact your ${brandName} purchase made below`,\n learnMore: ({ name = \"\" }) => `Learn more about ${name}`,\n seeAllImpact: ({ brandName = \"\" }) => `See all of the impact by the ${brandName} community`,\n percentRaised: ({ percent = 0 }) => `${percent}%`,\n yourImpactTitle: () => `Your Impact`,\n communityImpactTitle: ({ brandName = \"\" }) => `The ${brandName} Community's Impact`,\n // share modal\n impactShareButton: () => `Share to Grow Our Impact`,\n impactShareText: ({ brandName = \"\" }) =>\n `Help ${brandName} reach their giving goal by sharing this cause on social media`,\n impactShareTitle: () => `Share on Social Media`,\n impactShareCopy: () => `Copy`,\n impactShareDownload: () => `Download`,\n impactShareClose: () => `Close`,\n },\n fr: {\n descriptionTitle: ({ nonprofitName = \"\" }) => `Vous avez eu un impact positif sur ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) =>\n `Découvrez quel est l'impact de votre achat chez ${brandName} ci-dessous.`,\n learnMore: ({ name = \"\" }) => `En savoir plus sur ${name}`,\n seeAllImpact: ({ brandName = \"\" }) => `Voir toutes les contributions de la communauté de ${brandName}`,\n percentRaised: ({ percent = 0 }) => `${percent}%`,\n yourImpactTitle: () => `Votre contribution personnelle`,\n communityImpactTitle: ({ brandName = \"\" }) => `La contribution de la communauté de ${brandName}`,\n // share modal\n impactShareButton: () => `Partagez pour augmentez notre cause`,\n impactShareText: ({ brandName = \"\" }) =>\n `Aidez ${brandName} a atteindre leur objectif en partageant cette cause sur votre réseaux sociaux`,\n impactShareTitle: () => `Partager sur votre réseaux sociaux`,\n impactShareCopy: () => `Copier`,\n impactShareDownload: () => `Télécharger`,\n impactShareClose: () => `Fermer`,\n },\n de: {\n descriptionTitle: ({ nonprofitName = \"\" }) => `Du hast soeben einen Beitrag geleistet für ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) =>\n `Erfahre mehr über den Beitrag, den du mit deinem ${brandName} Kauf geleistet hast`,\n learnMore: ({ name = \"\" }) => `Mehr über ${name} erfahren`,\n seeAllImpact: ({ brandName = \"\" }) =>\n `Informiere dich über den bisher geleisteten Beitrag der ${brandName} community`,\n percentRaised: ({ percent = 0 }) => `${percent}%`,\n yourImpactTitle: () => `Dein Beitrag`,\n communityImpactTitle: ({ brandName = \"\" }) => `Der Beitrag der ${brandName} community`,\n // share modal\n impactShareButton: () => `Teil, um unserem Beitrag zu erhöhen`,\n impactShareText: ({ brandName = \"\" }) => `Hilf ${brandName} ihre Spendenziel zu erreichen`,\n impactShareTitle: () => `In den sozialen Medien teilen`,\n impactShareCopy: () => `Kopieren`,\n impactShareDownload: () => `Herunterladen`,\n impactShareClose: () => `Schließen`,\n },\n es: {\n descriptionTitle: ({ nonprofitName = \"\" }) => `Acabas de contribuir con ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) =>\n `Comprueba la contribución que has hecho con tu compra ${brandName} a continuación`,\n learnMore: ({ name = \"\" }) => `Saber más de ${name}`,\n seeAllImpact: ({ brandName = \"\" }) => `Mira lo que ha conseguido la comunidad ${brandName}`,\n percentRaised: ({ percent = 0 }) => `${percent}%`,\n yourImpactTitle: () => \"Tu contribución\",\n communityImpactTitle: ({ brandName = \"\" }) => `Tu contribución con la comunidad ${brandName}`,\n // share modal\n impactShareButton: () => \"Comparte para aumentar nuestro impacto\",\n impactShareText: ({ brandName = \"\" }) =>\n `Comparte en las redes sociales para ayudar a ${brandName} a alcanzar su objetivo.`,\n impactShareTitle: () => \"Compartir en redes sociales\",\n impactShareCopy: () => \"Copiar\",\n impactShareDownload: () => \"Descargar\",\n impactShareClose: () => \"Cerrar\",\n },\n it: {\n descriptionTitle: ({ nonprofitName = \"\" }) => `Hai appena fatto la differenza per ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) => `Guarda qui sotto l'impatto del tuo acquisto ${brandName}`,\n learnMore: ({ name = \"\" }) => `Scopri di più su ${name}`,\n seeAllImpact: ({ brandName = \"\" }) => `Guarda come la comunità di ${brandName} fa la differenza`,\n percentRaised: ({ percent = 0 }) => `${percent}%`,\n yourImpactTitle: () => `Il tuo impatto`,\n communityImpactTitle: ({ brandName = \"\" }) => `L’impatto della comunità di ${brandName} `,\n // share modal\n impactShareButton: () => \"Condividi, aiutaci a fare la differenza\",\n impactShareText: ({ brandName = \"\" }) =>\n `Aiuta ${brandName} a raggiungere il suo obiettivo di donazione condividendo questa causa sui social media.`,\n impactShareTitle: () => \"Condividi, aiutaci a fare la differenza\",\n impactShareCopy: () => \"Copia\",\n impactShareDownload: () => \"Scarica\",\n impactShareClose: () => \"Chiudi\",\n },\n pl: {\n descriptionTitle: ({ nonprofitName = \"\" }) => `Właśnie wsparłaś_eś ${nonprofitName}!`,\n descriptionSubtitle: ({ brandName = \"\" }) =>\n `Sprawdź niżej, jakiego wsparcia udzieliłaś_eś kupując w ${brandName} `,\n learnMore: ({ name = \"\" }) => `Dowiedz się więcej o ${name}`,\n seeAllImpact: ({ brandName = \"\" }) => `Zobacz, ile dobrego zrobiła do tej pory społeczność ${brandName}`,\n percentRaised: ({ percent = 0 }) => `${percent}%`,\n yourImpactTitle: () => `Twoje wsparcie`,\n communityImpactTitle: ({ brandName = \"\" }) => `Wsparcie udzielone przez społeczność ${brandName}`,\n // share modal\n impactShareButton: () => `Udostępnij, by szerzyć naszą misję`,\n impactShareText: ({ brandName = \"\" }) =>\n `Pomóż ${brandName} osiągnąć cel i podziel się tą inicjatywą na swoim profilu`,\n impactShareTitle: () => `Udostępnij na swoim profilu`,\n impactShareCopy: () => `Kopiuj`,\n impactShareDownload: () => `Pobierz`,\n impactShareClose: () => `Zamknij`,\n },\n};\n","import { css, html, LitElement, PropertyValues, render } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { queryAll } from \"lit/decorators/query-all.js\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport debounce from \"lodash-es/debounce\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES } from \"../../api-sdk/constants\";\nimport { LANGUAGES, TUrl } from \"../../api-sdk/types\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { BeamError, MissingConfig } from \"../../utils/beam-errors\";\nimport \"../../shared/components/progress-bar\";\nimport { progressBarConfigDefaults } from \"../../shared/components/progress-bar\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { isMobile } from \"../../shared/feature-detection\";\nimport { urlToFile } from \"../../shared/files\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { localizeUserString } from \"../../shared/localize\";\nimport { logger } from \"../../utils/logger\";\nimport \"../../shared/shoelace-components\";\nimport { syncElementHeights } from \"../../shared/sync-element-heights\";\nimport { TId, TNumericId } from \"../../shared/types\";\nimport \"../beam-partner-logos\";\nimport { partnerLogosConfigDefaults } from \"../beam-partner-logos\";\nimport { cssResponsiveUtils } from \"../../shared/responsive\";\nimport { strings } from \"./strings\";\n\ntype RequiredConfig = {\n apiKey: string;\n nonprofitId: TNumericId;\n userId: TId;\n};\n\nexport class BeamImpactOverview extends LitElement {\n static tagName = \"beam-impact-overview\";\n\n @property({ type: String, reflect: true }) public baseUrl: TUrl = DEFAULT_BASE_URL;\n\n @property({ type: String, reflect: false }) apiKey?: RequiredConfig[\"apiKey\"];\n\n @property({ type: Number }) storeId?: number;\n\n @property({ type: String, reflect: true }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n\n @property({ type: String, reflect: true }) userId?: RequiredConfig[\"userId\"];\n\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n\n @property({ type: Boolean }) public debug = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n getImpactData = async () => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"userId\", \"nonprofitId\"], this)) throw new MissingConfig();\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n queryParams: {\n nonprofitId: this.nonprofitId,\n beamUserId: this.userId,\n personalImpactLimit: 1,\n communityImpactLimit: 1,\n storeId: this.storeId,\n widgetName: \"impact-overview\",\n version: \"1.0.0\",\n lang: this.configLang,\n },\n });\n\n return res;\n };\n\n private impactDataController = new AsyncController<typeof this.getImpactData>(this, this.getImpactData);\n\n @queryAll(\".impact-card-title\")\n impactTitleRefs!: HTMLElement[];\n\n @queryAll(\".impact-card-description\")\n impactDescriptionRefs!: HTMLElement[];\n\n @queryAll(\".impact-link\")\n impactLinkRefs!: HTMLElement[];\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.resizeElements);\n }\n\n async updated(changedProperties: PropertyValues): Promise<void> {\n // Reload nonprofit list on change of any of these props:\n // Also fires on first load as props go from undefined => value\n const requireNewDataProps = [\"baseUrl\", \"storeId\", \"apiKey\", \"userId\", \"lang\"];\n for (const prop of requireNewDataProps) {\n if (changedProperties.has(prop)) {\n await this.impactDataController.exec();\n break;\n }\n }\n this.resizeElements(); // Handle layout shifts immediately\n await this.handleFontLoad(this.resizeElements); // If content change triggered font load, resize again\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.resizeElements);\n document.fonts.removeEventListener(\"loadingdone\", this.resizeElements);\n super.disconnectedCallback();\n }\n\n /**\n * Safari does not fire loading events on the document FontFaceSet, but it does implement the .ready Promise\n * Call this method to wait for font loads that may be triggered by content changes\n */\n async handleFontLoad<T = any>(callback: () => T | void) {\n if (document.fonts.status === \"loading\") {\n await document.fonts.ready.catch((e) => logger.error(e));\n return callback();\n }\n }\n\n resizeElements = debounce(\n () => {\n syncElementHeights(this.impactTitleRefs);\n syncElementHeights(this.impactDescriptionRefs);\n syncElementHeights(this.impactLinkRefs);\n },\n 50,\n { maxWait: 50, leading: true }\n );\n\n renderCard({\n imageUrl,\n title,\n percentFunded,\n description,\n }: {\n imageUrl: TUrl;\n title: string;\n percentFunded: number;\n description: string;\n }) {\n return html`\n <div class=\"impact-card\" part=\"impact-card\">\n <img src=\"${imageUrl}\" alt=\"${title}\" class=\"impact-card-image\" />\n <div class=\"impact-card-content\" style=\"margin: 15px;\">\n <div class=\"impact-card-title\">${title}</div>\n <div class=\"impact-card-progress\" style=\"display: flex; align-items: center;\">\n <beam-progress-bar\n value=\"${percentFunded}\"\n style=\"flex: 1 0;\"\n class=\"impact-card-progressbar\"\n ></beam-progress-bar>\n <span class=\"impact-card-progressText\" style=\"flex: 0 1; margin-left: 10px; white-space: nowrap;\"\n >${strings[this.configLang].percentRaised({ percent: percentFunded })}</span\n >\n </div>\n <p class=\"impact-card-description\">${unsafeHTML(description)}</p>\n </div>\n </div>\n `;\n }\n\n handleShareClick = async () => {\n try {\n if (isMobile()) {\n await this.openSystemShareSheet();\n } else {\n await this.openShareDialog();\n }\n } catch (err) {\n logger.error(new BeamError(\"Error sharing impact\"));\n logger.error(err);\n }\n };\n\n openSystemShareSheet = async () => {\n const imageUrl = this.impactDataController.data?.personal[0]?.share?.imageUrl;\n\n if (!imageUrl) return;\n\n const file = await urlToFile(imageUrl);\n\n if (navigator.share) {\n await navigator.share({\n files: [file],\n });\n }\n };\n\n openShareDialog = async () => {\n const brandName = this.impactDataController.data?.chain.name;\n const imageUrl = this.impactDataController.data?.personal[0]?.share?.imageUrl;\n\n if (!imageUrl) return;\n\n interface SlDialogElement extends HTMLElement {\n show: () => void;\n hide: () => void;\n }\n\n const existingDialog = this.renderRoot.querySelector(\"sl-dialog\") as SlDialogElement;\n\n if (existingDialog) {\n existingDialog.show();\n return;\n }\n\n await import(\"./_share-dialog-dependencies.js\"); // Import libraries async to reduce bundle size if share feature is unused\n\n const modalRoot = this.renderRoot.querySelector(\"#modal-root\") as HTMLElement;\n\n const file = await urlToFile(imageUrl);\n\n const dataUrl = URL.createObjectURL(file);\n\n const onClickClose = () => {\n (this.renderRoot.querySelector(\"sl-dialog\") as SlDialogElement)?.hide();\n };\n\n const onClickCopy = () => {\n navigator.clipboard.write([new ClipboardItem({ \"image/png\": file })]).then(() => {\n setTimeout(onClickClose, 250);\n });\n };\n\n const onClickDownload = () => {\n setTimeout(onClickClose, 250);\n };\n\n render(\n html`\n <sl-dialog open label=\"${strings[this.configLang].impactShareTitle()}\" no-header class=\"share-dialog\">\n <h2 class=\"share-title\">${strings[this.configLang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.configLang].impactShareText({ brandName })}</p>\n <img src=\"${imageUrl}\" alt=\"${strings[this.configLang].impactShareTitle()}\" class=\"share-image\" />\n <div class=\"share-actions\" style=\"display: flex; justify-content: space-evenly\">\n <div style=\"flex: 1; text-align: center\">\n <button class=\"plain-button button share-action-button\" @click=\"${onClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.configLang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.configLang].impactShareCopy()}</div>\n </button>\n </div>\n <div style=\"flex: 1; text-align: center\">\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.configLang].impactShareTitle()}\"\n href=\"${dataUrl}\"\n @click=\"${onClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.configLang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.configLang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n <button class=\"plain-button button share-close\" @click=\"${onClickClose}\">\n ${strings[this.configLang].impactShareClose()}\n </button>\n </sl-dialog>\n `,\n modalRoot\n );\n };\n\n render() {\n const { data, loading, error } = this.impactDataController;\n if (loading) {\n return _loading();\n }\n if (error) {\n if (this.debug) {\n return _errorMessage({ error });\n }\n return \"\";\n }\n if (data == null) {\n if (this.debug) {\n return _errorMessage({ error: new Error(\"No data\") });\n }\n return \"\";\n }\n\n const showShare = this.cssVariables[\"--beam-ImpactOverview-share-button-display\"] !== \"none\";\n const showShareMobile =\n showShare && this.cssVariables[\"--beam-ImpactOverview-share-button-display-mobile\"] !== \"none\";\n const showShareDesktop =\n showShare && this.cssVariables[\"--beam-ImpactOverview-share-button-display-desktop\"] !== \"none\";\n const shareIcon = this.cssVariables[\"--beam-ImpactOverview-share-button-icon-name\"] || \"share-2\";\n\n let shareButtonVisibilityClass = \"d-none\";\n if (showShareMobile) {\n shareButtonVisibilityClass = showShareDesktop ? \"d-block\" : \"d-lg-none\";\n } else {\n shareButtonVisibilityClass = showShareDesktop ? \"d-none d-lg-block\" : \"d-none\";\n }\n\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n\n <div>\n <beam-partner-logos\n partnerLogoUrl=\"${data.chain.logoUrl}\"\n partnerName=\"${data.chain.name}\"\n part=\"logos\"\n ></beam-partner-logos>\n </div>\n\n <div class=\"description\">\n <div class=\"title\" part=\"title\">\n ${localizeUserString(this.configLang, data.config?.web?.title) ||\n strings[this.configLang].descriptionTitle({ nonprofitName: data.personal[0].nonprofit.name })}\n </div>\n <div class=\"subtitle\" part=\"subtitle\">\n ${localizeUserString(this.configLang, data.config?.web?.description) ||\n strings[this.configLang].descriptionSubtitle({ brandName: data.chain.name })}\n </div>\n </div>\n\n <div class=\"impact-cards\" style=\"display: flex; flex-wrap: wrap; gap: 15px; margin: 10px 0;\">\n <div class=\"impact your-impact\" style=\"flex: 1 1; display: inline-block; max-width: 100%; min-width: 200px;\">\n ${this.renderCard({\n imageUrl: data.personal[0]?.imageUrl || \"\",\n title: strings[this.configLang].yourImpactTitle(),\n percentFunded: data.personal[0]?.impact?.goalProgressPercentage || 0,\n description: localizeUserString(this.configLang, data.personal[0]?.impact?.description || \"\"),\n })}\n <p class=\"impact-link\" part=\"impact-link\">\n <a href=\"${data.personal[0].nonprofit?.website}\" target=\"_blank\" rel=\"noopener noreferrer\">\n ${strings[this.configLang].learnMore({\n name: data.personal[0].nonprofit?.name,\n })}<span class=\"impact-link-arrow\">&nbsp;&rsaquo;</span>\n </a>\n </p>\n </div>\n <div\n class=\"impact community-impact\"\n style=\"flex: 1 1; display: inline-block; max-width: 100%; min-width: 200px;\"\n >\n ${this.renderCard({\n imageUrl: data.community[0].imageUrl || \"\",\n title: strings[this.configLang].communityImpactTitle({ brandName: data.chain.name }),\n percentFunded: data.community[0].impact?.goalProgressPercentage || 0,\n description: localizeUserString(this.configLang, data.community[0].impact?.description || \"\"),\n })}\n <p class=\"impact-link\" part=\"impact-link\">\n <a\n href=\"${data.chain.communityImpactUrl || data.community[0].nonprofit.website}\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n ${strings[this.configLang].seeAllImpact({\n brandName: data.chain.name,\n })}<span class=\"impact-link-arrow\">&nbsp;&rsaquo;</span>\n </a>\n </p>\n </div>\n </div>\n\n <div class=\"footer ${shareButtonVisibilityClass}\" part=\"social-share\">\n <button @click=\"${this.handleShareClick}\" class=\"share-button share-button-inline button icon-button\">\n <sl-icon\n name=\"${shareIcon}\"\n library=\"lucide\"\n label=\"${strings[this.configLang].impactShareButton()}\"\n class=\"share-button-icon\"\n ></sl-icon>\n <span class=\"share-button-text\">${strings[this.configLang].impactShareButton()}</span>\n </button>\n </div>\n\n <div id=\"modal-root\"></div>\n `;\n }\n\n public get cssVariables() {\n const defaults = {\n \"--beam-fontFamily\": \"inherit\",\n \"--beam-fontStyle\": \"inherit\",\n \"--beam-fontSize\": \"inherit\",\n \"--beam-textColor\": \"inherit\",\n \"--beam-backgroundColor\": \"inherit\",\n ...partnerLogosConfigDefaults,\n ...progressBarConfigDefaults,\n ...defineCustomText(\"--beam-ImpactOverview-title\", {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"10px\",\n }),\n ...defineCustomText(\"--beam-ImpactOverview-subtitle\", {\n marginTop: \"5px\",\n }),\n \"--beam-ImpactOverview-impactCards-maxWidth\": \"800px\",\n \"--beam-ImpactOverview-impactCard-backgroundColor\": \"inherit\",\n \"--beam-ImpactOverview-impactCard-foregroundColor\": \"currentColor\",\n \"--beam-ImpactOverview-impactCard-borderColor\": \"currentColor\",\n \"--beam-ImpactOverview-impactCard-borderRadius\": \"0px\",\n \"--beam-ImpactOverview-impactCard-marginTop\": \"10px\",\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-title\", {\n fontSize: \"15px\",\n fontWeight: \"bold\",\n }),\n \"--beam-ImpactOverview-impactCard-progress-marginTop\": \"15px\",\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-progressText\"),\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-description\", {\n marginTop: \"10px\",\n }),\n \"--beam-ImpactOverview-impactCard-linkArrow-display\": \"inline\",\n \"--beam-ImpactOverview-impactCard-link-color\": \"inherit\",\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-link\", {\n marginTop: \"10px\",\n }),\n \"--beam-ImpactOverview-share-button-display\": \"none\",\n \"--beam-ImpactOverview-share-button-display-mobile\": \"inherit\",\n \"--beam-ImpactOverview-share-button-display-desktop\": \"inherit\",\n \"--beam-ImpactOverview-share-button-textDecoration\": \"underline\",\n \"--beam-ImpactOverview-share-button-icon-size\": \"16px\",\n ...defineCustomText(\"--beam-ImpactOverview-share-button\", {\n fontSize: \"14px\",\n fontWeight: \"bold\",\n marginTop: \"12px\",\n }),\n \"--beam-ImpactOverview-share-button-backgroundColor\": \"#c2dcff\",\n \"--beam-ImpactOverview-share-button-color\": \"inherit\",\n \"--beam-ImpactOverview-share-button-borderRadius\": \"16px\",\n \"--beam-ImpactOverview-share-button-borderColor\": \"transparent\",\n \"--beam-ImpactOverview-share-button-borderWidth\": \"2px\",\n \"--beam-ImpactOverview-share-button-padding\": \"12px 18px 12px 16px\",\n \"--beam-ImpactOverview-share-button-width\": \"auto\",\n \"--beam-ImpactOverview-share-button-hover-color\": \"inherit\",\n \"--beam-ImpactOverview-share-button-hover-borderColor\": \"transparent\",\n \"--beam-ImpactOverview-share-button-hover-backgroundColor\": \"#c2dcff\",\n \"--beam-ImpactOverview-share-dialog-padding\": \"30px 60px\",\n ...defineCustomText(\"--beam-ImpactOverview-share-title\", {\n fontSize: \"30px\",\n fontWeight: \"bold\",\n }),\n \"--beam-ImpactOverview-share-button-icon-name\": \"share-2\",\n \"--beam-ImpactOverview-share-image-width\": \"200px\",\n \"--beam-ImpactOverview-share-image-borderRadius\": \"4px\",\n \"--beam-ImpactOverview-share-image-margin\": \"20px\",\n ...defineCustomText(\"--beam-ImpactOverview-share-text\", {\n fontSize: \"16px\",\n lineHeight: \"1.3\",\n marginTop: \"10px\",\n }),\n \"--beam-ImpactOverview-share-actions-margin\": \"30px 60px\",\n \"--beam-ImpactOverview-share-action-icon-size\": \"32px\",\n ...defineCustomText(\"--beam-ImpactOverview-share-action-text\", {\n fontSize: \"16px\",\n marginTop: \"5px\",\n }),\n ...defineCustomText(\"--beam-ImpactOverview-share-close\", {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n }),\n \"--beam-ImpactOverview-share-close-padding\": \"12px\",\n \"--beam-ImpactOverview-share-close-backgroundColor\": \"#ffd522\",\n \"--beam-ImpactOverview-share-close-text-color\": \"currentColor\",\n \"--beam-ImpactOverview-share-close-borderRadius\": \"4px\",\n \"--beam-ImpactOverview-image-display\": \"block\",\n };\n\n const remoteConfig = this.impactDataController?.data?.config?.web?.theme || {};\n\n const config = { ...defaults, ...remoteConfig };\n\n const serializable = Object.create({\n toCSS() {\n return _cssVariableMap(this as Record<string, string>);\n },\n });\n\n return Object.assign(serializable, config);\n }\n\n static styles = [\n cssReset,\n cssResponsiveUtils,\n css`\n :host {\n 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 max-width: var(--beam-ImpactOverview-impactCards-maxWidth, 800px);\n word-break: normal;\n }\n .impact-cards {\n max-width: var(--beam-ImpactOverview-impactCards-maxWidth);\n }\n .impact-card {\n margin-top: var(--beam-ImpactOverview-impactCard-marginTop);\n background-color: var(--beam-ImpactOverview-impactCard-backgroundColor);\n border: 1px solid var(--beam-ImpactOverview-impactCard-borderColor);\n border-radius: var(--beam-ImpactOverview-impactCard-borderRadius);\n overflow: hidden; /* maintain clean border-radius */\n color: var(--beam-ImpactOverview-impactCard-foregroundColor);\n }\n .impact-card-image {\n object-fit: cover;\n height: 200px;\n width: 100%;\n display: var(--beam-ImpactOverview-image-display);\n }\n .impact-card-progress {\n margin-top: var(--beam-ImpactOverview-impactCard-progress-marginTop);\n }\n .title {\n ${useCustomText(\"--beam-ImpactOverview-title\")}\n }\n .subtitle {\n ${useCustomText(\"--beam-ImpactOverview-subtitle\")}\n }\n .impact-card-title {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-title\")}\n }\n .impact-card-progressText {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-progressText\")}\n }\n .impact-card-description {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-description\")}\n }\n .impact-link {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-link\")}\n }\n .impact-link-arrow {\n display: var(--beam-ImpactOverview-impactCard-linkArrow-display, \"inline\");\n }\n .impact-link a,\n .impact-link a:visited {\n color: var(--beam-ImpactOverview-impactCard-link-color, inherit);\n text-decoration: none;\n }\n .footer {\n text-align: center;\n }\n .share-button {\n /* display: var(--beam-ImpactOverview-share-button-display, none); */ /* visibility controlled by JS */\n /* display: var(--beam-ImpactOverview-share-button-display-mobile, inherit); */ /* visibility controlled by JS */\n /* display: var(--beam-ImpactOverview-share-button-display-desktop, inherit); */ /* visibility controlled by JS */\n ${useCustomText(\"--beam-ImpactOverview-share-button\", {\n fontSize: \"14px\",\n fontWeight: \"bold\",\n marginTop: \"10px\",\n })}\n /* TODO: extract palette variable - sky-100 color */\n background-color: var(--beam-ImpactOverview-share-button-backgroundColor, #c2dcff);\n color: var(--beam-ImpactOverview-share-button-color, inherit);\n border-radius: var(--beam-ImpactOverview-share-button-borderRadius, 16px);\n border-color: var(--beam-ImpactOverview-share-button-borderColor, transparent);\n border-width: var(--beam-ImpactOverview-share-button-borderWidth, 2px);\n /* add extra padding on side without icon for optical alignment */\n padding: var(--beam-ImpactOverview-share-button-padding, 12px 18px 12px 16px);\n width: var(--beam-ImpactOverview-share-button-width, auto);\n transition: 0.15s;\n }\n .share-button:hover {\n background-color: var(--beam-ImpactOverview-share-button-hover-backgroundColor, #c2dcff);\n color: var(--beam-ImpactOverview-share-button-hover-color, inherit);\n border-color: var(--beam-ImpactOverview-share-button-hover-borderColor, transparent);\n }\n .share-button-text {\n text-decoration: var(--beam-ImpactOverview-share-button-textDecoration, underline);\n margin-left: 0.33em;\n }\n .share-button-icon {\n font-size: var(--beam-ImpactOverview-share-button-icon-size, 16px);\n }\n @media (max-width: 500px) {\n //.impact-card {\n // display: flex;\n // flex-direction: row;\n //}\n //.impact-card-image {\n // object-fit: cover;\n // width: 25%;\n // height: auto;\n // flex: 1 0 45%;\n //}\n //.impact-card-content {\n // flex: 1 1 55%;\n //}\n //.share-button-text {\n // display: none;\n //}\n //.share-button-icon {\n // font-size: calc(var(--beam-ImpactOverview-share-button-icon-size, 16px) * 1.33);\n //}\n }\n `,\n css`\n .button {\n cursor: pointer;\n }\n .icon-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n .plain-button {\n border: none;\n background: none;\n font-size: inherit;\n font-family: inherit;\n }\n .plain-link {\n text-decoration: none;\n color: inherit;\n }\n `,\n css`\n .share-dialog::part(panel) {\n padding: var(--beam-ImpactOverview-share-dialog-padding, 30px 30px);\n text-align: center;\n }\n .share-title {\n ${useCustomText(\"--beam-ImpactOverview-share-title\", {\n fontSize: \"30px\",\n fontWeight: \"bold\",\n })}\n }\n .share-text {\n ${useCustomText(\"--beam-ImpactOverview-share-text\", {\n fontSize: \"16px\",\n lineHeight: \"1.3\",\n marginTop: \"10px\",\n })}\n }\n .share-image {\n border-radius: var(--beam-ImpactOverview-share-image-borderRadius, 4px);\n width: var(--beam-ImpactOverview-share-image-width, 200px);\n display: block;\n margin: var(--beam-ImpactOverview-share-image-margin, 20px) auto;\n }\n .share-actions {\n margin: var(--beam-ImpactOverview-share-actions-margin, 30px 60px);\n }\n .share-action-button {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n padding: 5px;\n }\n .share-action-icon {\n font-size: var(--beam-ImpactOverview-share-action-icon-size, 32px);\n }\n .share-action-button:hover .share-action-icon {\n scale: 1.1;\n }\n .share-action-text {\n ${useCustomText(\"--beam-ImpactOverview-share-text\", {\n fontSize: \"16px\",\n marginTop: \"10px\",\n fontWeight: \"bold\",\n })}\n }\n .share-close {\n display: block;\n background-color: var(--beam-ImpactOverview-share-close-backgroundColor, #ffd522);\n color: var(--beam-ImpactOverview-share-close-text-color, currentColor);\n justify-content: center;\n padding: var(--beam-ImpactOverview-share-close-padding, 12px);\n border-radius: var(--beam-ImpactOverview-share-close-borderRadius, 4px);\n width: 100%;\n ${useCustomText(\"--beam-ImpactOverview-share-close\", {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n })}\n }\n .share-close:hover {\n outline: 2px solid var(--beam-ImpactOverview-share-close-focus-borderColor, currentColor);\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamImpactOverview);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-impact-overview\": BeamImpactOverview;\n }\n}\n"],"names":["isMobile","urlToFile","url","r","u","blob","syncElementHeights","elements","source","els","isAllHtmlElements","syncedHeight","a","b","el","strings","nonprofitName","brandName","name","percent","BeamImpactOverview","LitElement","DEFAULT_BASE_URL","enforceConfig","getImpact","AsyncController","debounce","err","logger","BeamError","imageUrl","file","existingDialog","modalRoot","dataUrl","onClickClose","onClickCopy","onClickDownload","render","html","SUPPORTED_LANGUAGES","changedProperties","requireNewDataProps","prop","callback","e","title","percentFunded","description","unsafeHTML","data","loading","error","_loading","_errorMessage","showShare","showShareMobile","showShareDesktop","shareIcon","shareButtonVisibilityClass","localizeUserString","defaults","partnerLogosConfigDefaults","progressBarConfigDefaults","defineCustomText","remoteConfig","config","_cssVariableMap","cssReset","cssResponsiveUtils","css","useCustomText","__decorateClass","property","queryAll","defineCustomElement"],"mappings":"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"}
1
+ {"version":3,"file":"impact-overview.js","sources":["../../src/shared/feature-detection.ts","../../src/shared/files.ts","../../src/shared/sync-element-heights.ts","../../src/components/impact-overview/strings.ts","../../src/components/impact-overview/index.ts"],"sourcesContent":["export function isMobile() {\n return /Android|iPhone/i.test(navigator.userAgent);\n}\n\nexport function hasSystemShare() {\n return !!navigator.share;\n}\n","export const urlToFile = async (url: string) => {\n return fetch(url).then(async (r) => {\n const u = new URL(url);\n const blob = await r.blob();\n return new File([blob], u.pathname, { type: blob.type });\n });\n};\n","import { isAllHtmlElements } from \"./is-all-html-elements\";\n\n/**\n * Synchronize heights of elements\n * @param {Array<HTMLElement|null>} elements - Elements to synchronize\n * @param {'contentLength' | 'currentHeight'} [options.source='contentLength'] -\n * Method used to get the height value to sync across elements. `contentLength`\n * (innerText.length) is reliable for pure text content when responding to\n * window resizing. Otherwise, currentHeight can be used to sync the tallest\n * element's height to all the other elements. Note that this works poorly\n * unless content is allowed to reflow with explicit height attributes removed\n * between synchronization calls.\n */\nexport const syncElementHeights = (\n elements: Array<HTMLElement | null> | NodeList,\n {\n source = \"contentLength\",\n }: {\n source?: \"contentLength\" | \"currentHeight\";\n } = {}\n) => {\n const els = elements instanceof NodeList ? Array.from(elements) : elements;\n\n if (els.length === 0 || !isAllHtmlElements(els)) {\n return;\n }\n\n const heightSource =\n source === \"contentLength\"\n ? els.sort((a, b) => {\n return b.innerText.length - a.innerText.length;\n })[0]\n : els.sort((a, b) => {\n return b.clientHeight - a.clientHeight;\n })[0];\n\n const syncedHeight = heightSource?.clientHeight || 0;\n\n for (const el of els) {\n if (el.clientHeight !== syncedHeight) {\n el.style[\"height\"] = syncedHeight + \"px\";\n }\n }\n};\n","export const strings = {\n en: {\n descriptionTitle: ({ nonprofitName = \"a nonprofit\" }) => `You just made an impact for ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) => `Check out the impact your ${brandName} purchase made below`,\n learnMore: ({ name = \"\" }) => `Learn more about ${name}`,\n seeAllImpact: ({ brandName = \"\" }) => `See all of the impact by the ${brandName} community`,\n percentRaised: ({ percent = 0 }) => `${percent}%`,\n yourImpactTitle: () => `Your Impact`,\n communityImpactTitle: ({ brandName = \"\" }) => `The ${brandName} Community's Impact`,\n // share modal\n impactShareButton: () => `Share to Grow Our Impact`,\n impactShareText: ({ brandName = \"\" }) =>\n `Help ${brandName} reach their giving goal by sharing this cause on social media`,\n impactShareTitle: () => `Share on Social Media`,\n impactShareCopy: () => `Copy`,\n impactShareDownload: () => `Download`,\n impactShareClose: () => `Close`,\n },\n fr: {\n descriptionTitle: ({ nonprofitName = \"\" }) => `Vous avez eu un impact positif sur ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) =>\n `Découvrez quel est l'impact de votre achat chez ${brandName} ci-dessous.`,\n learnMore: ({ name = \"\" }) => `En savoir plus sur ${name}`,\n seeAllImpact: ({ brandName = \"\" }) => `Voir toutes les contributions de la communauté de ${brandName}`,\n percentRaised: ({ percent = 0 }) => `${percent}%`,\n yourImpactTitle: () => `Votre contribution personnelle`,\n communityImpactTitle: ({ brandName = \"\" }) => `La contribution de la communauté de ${brandName}`,\n // share modal\n impactShareButton: () => `Partagez pour augmentez notre cause`,\n impactShareText: ({ brandName = \"\" }) =>\n `Aidez ${brandName} a atteindre leur objectif en partageant cette cause sur votre réseaux sociaux`,\n impactShareTitle: () => `Partager sur votre réseaux sociaux`,\n impactShareCopy: () => `Copier`,\n impactShareDownload: () => `Télécharger`,\n impactShareClose: () => `Fermer`,\n },\n de: {\n descriptionTitle: ({ nonprofitName = \"\" }) => `Du hast soeben einen Beitrag geleistet für ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) =>\n `Erfahre mehr über den Beitrag, den du mit deinem ${brandName} Kauf geleistet hast`,\n learnMore: ({ name = \"\" }) => `Mehr über ${name} erfahren`,\n seeAllImpact: ({ brandName = \"\" }) =>\n `Informiere dich über den bisher geleisteten Beitrag der ${brandName} community`,\n percentRaised: ({ percent = 0 }) => `${percent}%`,\n yourImpactTitle: () => `Dein Beitrag`,\n communityImpactTitle: ({ brandName = \"\" }) => `Der Beitrag der ${brandName} community`,\n // share modal\n impactShareButton: () => `Teil, um unserem Beitrag zu erhöhen`,\n impactShareText: ({ brandName = \"\" }) => `Hilf ${brandName} ihre Spendenziel zu erreichen`,\n impactShareTitle: () => `In den sozialen Medien teilen`,\n impactShareCopy: () => `Kopieren`,\n impactShareDownload: () => `Herunterladen`,\n impactShareClose: () => `Schließen`,\n },\n es: {\n descriptionTitle: ({ nonprofitName = \"\" }) => `Acabas de contribuir con ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) =>\n `Comprueba la contribución que has hecho con tu compra ${brandName} a continuación`,\n learnMore: ({ name = \"\" }) => `Saber más de ${name}`,\n seeAllImpact: ({ brandName = \"\" }) => `Mira lo que ha conseguido la comunidad ${brandName}`,\n percentRaised: ({ percent = 0 }) => `${percent}%`,\n yourImpactTitle: () => \"Tu contribución\",\n communityImpactTitle: ({ brandName = \"\" }) => `Tu contribución con la comunidad ${brandName}`,\n // share modal\n impactShareButton: () => \"Comparte para aumentar nuestro impacto\",\n impactShareText: ({ brandName = \"\" }) =>\n `Comparte en las redes sociales para ayudar a ${brandName} a alcanzar su objetivo.`,\n impactShareTitle: () => \"Compartir en redes sociales\",\n impactShareCopy: () => \"Copiar\",\n impactShareDownload: () => \"Descargar\",\n impactShareClose: () => \"Cerrar\",\n },\n it: {\n descriptionTitle: ({ nonprofitName = \"\" }) => `Hai appena fatto la differenza per ${nonprofitName}`,\n descriptionSubtitle: ({ brandName = \"\" }) => `Guarda qui sotto l'impatto del tuo acquisto ${brandName}`,\n learnMore: ({ name = \"\" }) => `Scopri di più su ${name}`,\n seeAllImpact: ({ brandName = \"\" }) => `Guarda come la comunità di ${brandName} fa la differenza`,\n percentRaised: ({ percent = 0 }) => `${percent}%`,\n yourImpactTitle: () => `Il tuo impatto`,\n communityImpactTitle: ({ brandName = \"\" }) => `L’impatto della comunità di ${brandName} `,\n // share modal\n impactShareButton: () => \"Condividi, aiutaci a fare la differenza\",\n impactShareText: ({ brandName = \"\" }) =>\n `Aiuta ${brandName} a raggiungere il suo obiettivo di donazione condividendo questa causa sui social media.`,\n impactShareTitle: () => \"Condividi, aiutaci a fare la differenza\",\n impactShareCopy: () => \"Copia\",\n impactShareDownload: () => \"Scarica\",\n impactShareClose: () => \"Chiudi\",\n },\n pl: {\n descriptionTitle: ({ nonprofitName = \"\" }) => `Właśnie wsparłaś_eś ${nonprofitName}!`,\n descriptionSubtitle: ({ brandName = \"\" }) =>\n `Sprawdź niżej, jakiego wsparcia udzieliłaś_eś kupując w ${brandName} `,\n learnMore: ({ name = \"\" }) => `Dowiedz się więcej o ${name}`,\n seeAllImpact: ({ brandName = \"\" }) => `Zobacz, ile dobrego zrobiła do tej pory społeczność ${brandName}`,\n percentRaised: ({ percent = 0 }) => `${percent}%`,\n yourImpactTitle: () => `Twoje wsparcie`,\n communityImpactTitle: ({ brandName = \"\" }) => `Wsparcie udzielone przez społeczność ${brandName}`,\n // share modal\n impactShareButton: () => `Udostępnij, by szerzyć naszą misję`,\n impactShareText: ({ brandName = \"\" }) =>\n `Pomóż ${brandName} osiągnąć cel i podziel się tą inicjatywą na swoim profilu`,\n impactShareTitle: () => `Udostępnij na swoim profilu`,\n impactShareCopy: () => `Kopiuj`,\n impactShareDownload: () => `Pobierz`,\n impactShareClose: () => `Zamknij`,\n },\n};\n","import { css, html, LitElement, PropertyValues, render } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { queryAll } from \"lit/decorators/query-all.js\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport debounce from \"lodash-es/debounce\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { LANGUAGES, TUrl } from \"../../api-sdk/types\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { BeamError, MissingConfig } from \"../../utils/beam-errors\";\nimport \"../../shared/components/progress-bar\";\nimport { progressBarConfigDefaults } from \"../../shared/components/progress-bar\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { isMobile } from \"../../shared/feature-detection\";\nimport { urlToFile } from \"../../shared/files\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { localizeUserString } from \"../../shared/localize\";\nimport { logger } from \"../../utils/logger\";\nimport \"../../shared/shoelace-components\";\nimport { syncElementHeights } from \"../../shared/sync-element-heights\";\nimport { TId, TNumericId } from \"../../shared/types\";\nimport \"../beam-partner-logos\";\nimport { partnerLogosConfigDefaults } from \"../beam-partner-logos\";\nimport { cssResponsiveUtils } from \"../../shared/responsive\";\nimport { strings } from \"./strings\";\n\ntype RequiredConfig = {\n apiKey: string;\n nonprofitId: TNumericId;\n userId: TId;\n};\n\nexport class BeamImpactOverview extends LitElement {\n static tagName = \"beam-impact-overview\";\n\n @property({ type: String, reflect: true }) public baseUrl: TUrl = DEFAULT_BASE_URL;\n\n @property({ type: String, reflect: false }) apiKey?: RequiredConfig[\"apiKey\"];\n\n @property({ type: Number }) storeId?: number;\n\n @property({ type: String, reflect: true }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n\n @property({ type: String, reflect: true }) userId?: RequiredConfig[\"userId\"];\n\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n\n @property({ type: Boolean }) public debug = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n getImpactData = async () => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"userId\", \"nonprofitId\"], this)) throw new MissingConfig();\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n queryParams: {\n nonprofitId: this.nonprofitId,\n beamUserId: this.userId,\n personalImpactLimit: 1,\n communityImpactLimit: 1,\n storeId: this.storeId,\n widgetName: WIDGET_NAMES.impact_overview,\n version: \"1.0.0\",\n lang: this.configLang,\n },\n });\n\n return res;\n };\n\n private impactDataController = new AsyncController<typeof this.getImpactData>(this, this.getImpactData);\n\n @queryAll(\".impact-card-title\")\n impactTitleRefs!: HTMLElement[];\n\n @queryAll(\".impact-card-description\")\n impactDescriptionRefs!: HTMLElement[];\n\n @queryAll(\".impact-link\")\n impactLinkRefs!: HTMLElement[];\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.resizeElements);\n }\n\n async updated(changedProperties: PropertyValues): Promise<void> {\n // Reload nonprofit list on change of any of these props:\n // Also fires on first load as props go from undefined => value\n const requireNewDataProps = [\"baseUrl\", \"storeId\", \"apiKey\", \"userId\", \"lang\"];\n for (const prop of requireNewDataProps) {\n if (changedProperties.has(prop)) {\n await this.impactDataController.exec();\n break;\n }\n }\n this.resizeElements(); // Handle layout shifts immediately\n await this.handleFontLoad(this.resizeElements); // If content change triggered font load, resize again\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.resizeElements);\n document.fonts.removeEventListener(\"loadingdone\", this.resizeElements);\n super.disconnectedCallback();\n }\n\n /**\n * Safari does not fire loading events on the document FontFaceSet, but it does implement the .ready Promise\n * Call this method to wait for font loads that may be triggered by content changes\n */\n async handleFontLoad<T = any>(callback: () => T | void) {\n if (document.fonts.status === \"loading\") {\n await document.fonts.ready.catch((e) => logger.error(e));\n return callback();\n }\n }\n\n resizeElements = debounce(\n () => {\n syncElementHeights(this.impactTitleRefs);\n syncElementHeights(this.impactDescriptionRefs);\n syncElementHeights(this.impactLinkRefs);\n },\n 50,\n { maxWait: 50, leading: true }\n );\n\n renderCard({\n imageUrl,\n title,\n percentFunded,\n description,\n }: {\n imageUrl: TUrl;\n title: string;\n percentFunded: number;\n description: string;\n }) {\n return html`\n <div class=\"impact-card\" part=\"impact-card\">\n <img src=\"${imageUrl}\" alt=\"${title}\" class=\"impact-card-image\" />\n <div class=\"impact-card-content\" style=\"margin: 15px;\">\n <div class=\"impact-card-title\">${title}</div>\n <div class=\"impact-card-progress\" style=\"display: flex; align-items: center;\">\n <beam-progress-bar\n value=\"${percentFunded}\"\n style=\"flex: 1 0;\"\n class=\"impact-card-progressbar\"\n ></beam-progress-bar>\n <span class=\"impact-card-progressText\" style=\"flex: 0 1; margin-left: 10px; white-space: nowrap;\"\n >${strings[this.configLang].percentRaised({ percent: percentFunded })}</span\n >\n </div>\n <p class=\"impact-card-description\">${unsafeHTML(description)}</p>\n </div>\n </div>\n `;\n }\n\n handleShareClick = async () => {\n try {\n if (isMobile()) {\n await this.openSystemShareSheet();\n } else {\n await this.openShareDialog();\n }\n } catch (err) {\n logger.error(new BeamError(\"Error sharing impact\"));\n logger.error(err);\n }\n };\n\n openSystemShareSheet = async () => {\n const imageUrl = this.impactDataController.data?.personal[0]?.share?.imageUrl;\n\n if (!imageUrl) return;\n\n const file = await urlToFile(imageUrl);\n\n if (navigator.share) {\n await navigator.share({\n files: [file],\n });\n }\n };\n\n openShareDialog = async () => {\n const brandName = this.impactDataController.data?.chain.name;\n const imageUrl = this.impactDataController.data?.personal[0]?.share?.imageUrl;\n\n if (!imageUrl) return;\n\n interface SlDialogElement extends HTMLElement {\n show: () => void;\n hide: () => void;\n }\n\n const existingDialog = this.renderRoot.querySelector(\"sl-dialog\") as SlDialogElement;\n\n if (existingDialog) {\n existingDialog.show();\n return;\n }\n\n await import(\"./_share-dialog-dependencies.js\"); // Import libraries async to reduce bundle size if share feature is unused\n\n const modalRoot = this.renderRoot.querySelector(\"#modal-root\") as HTMLElement;\n\n const file = await urlToFile(imageUrl);\n\n const dataUrl = URL.createObjectURL(file);\n\n const onClickClose = () => {\n (this.renderRoot.querySelector(\"sl-dialog\") as SlDialogElement)?.hide();\n };\n\n const onClickCopy = () => {\n navigator.clipboard.write([new ClipboardItem({ \"image/png\": file })]).then(() => {\n setTimeout(onClickClose, 250);\n });\n };\n\n const onClickDownload = () => {\n setTimeout(onClickClose, 250);\n };\n\n render(\n html`\n <sl-dialog open label=\"${strings[this.configLang].impactShareTitle()}\" no-header class=\"share-dialog\">\n <h2 class=\"share-title\">${strings[this.configLang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.configLang].impactShareText({ brandName })}</p>\n <img src=\"${imageUrl}\" alt=\"${strings[this.configLang].impactShareTitle()}\" class=\"share-image\" />\n <div class=\"share-actions\" style=\"display: flex; justify-content: space-evenly\">\n <div style=\"flex: 1; text-align: center\">\n <button class=\"plain-button button share-action-button\" @click=\"${onClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.configLang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.configLang].impactShareCopy()}</div>\n </button>\n </div>\n <div style=\"flex: 1; text-align: center\">\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.configLang].impactShareTitle()}\"\n href=\"${dataUrl}\"\n @click=\"${onClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.configLang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.configLang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n <button class=\"plain-button button share-close\" @click=\"${onClickClose}\">\n ${strings[this.configLang].impactShareClose()}\n </button>\n </sl-dialog>\n `,\n modalRoot\n );\n };\n\n render() {\n const { data, loading, error } = this.impactDataController;\n if (loading) {\n return _loading();\n }\n if (error) {\n if (this.debug) {\n return _errorMessage({ error });\n }\n return \"\";\n }\n if (data == null) {\n if (this.debug) {\n return _errorMessage({ error: new Error(\"No data\") });\n }\n return \"\";\n }\n\n const showShare = this.cssVariables[\"--beam-ImpactOverview-share-button-display\"] !== \"none\";\n const showShareMobile =\n showShare && this.cssVariables[\"--beam-ImpactOverview-share-button-display-mobile\"] !== \"none\";\n const showShareDesktop =\n showShare && this.cssVariables[\"--beam-ImpactOverview-share-button-display-desktop\"] !== \"none\";\n const shareIcon = this.cssVariables[\"--beam-ImpactOverview-share-button-icon-name\"] || \"share-2\";\n\n let shareButtonVisibilityClass = \"d-none\";\n if (showShareMobile) {\n shareButtonVisibilityClass = showShareDesktop ? \"d-block\" : \"d-lg-none\";\n } else {\n shareButtonVisibilityClass = showShareDesktop ? \"d-none d-lg-block\" : \"d-none\";\n }\n\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n\n <div>\n <beam-partner-logos\n partnerLogoUrl=\"${data.chain.logoUrl}\"\n partnerName=\"${data.chain.name}\"\n part=\"logos\"\n ></beam-partner-logos>\n </div>\n\n <div class=\"description\">\n <div class=\"title\" part=\"title\">\n ${localizeUserString(this.configLang, data.config?.web?.title) ||\n strings[this.configLang].descriptionTitle({ nonprofitName: data.personal[0].nonprofit.name })}\n </div>\n <div class=\"subtitle\" part=\"subtitle\">\n ${localizeUserString(this.configLang, data.config?.web?.description) ||\n strings[this.configLang].descriptionSubtitle({ brandName: data.chain.name })}\n </div>\n </div>\n\n <div class=\"impact-cards\" style=\"display: flex; flex-wrap: wrap; gap: 15px; margin: 10px 0;\">\n <div class=\"impact your-impact\" style=\"flex: 1 1; display: inline-block; max-width: 100%; min-width: 200px;\">\n ${this.renderCard({\n imageUrl: data.personal[0]?.imageUrl || \"\",\n title: strings[this.configLang].yourImpactTitle(),\n percentFunded: data.personal[0]?.impact?.goalProgressPercentage || 0,\n description: localizeUserString(this.configLang, data.personal[0]?.impact?.description || \"\"),\n })}\n <p class=\"impact-link\" part=\"impact-link\">\n <a href=\"${data.personal[0].nonprofit?.website}\" target=\"_blank\" rel=\"noopener noreferrer\">\n ${strings[this.configLang].learnMore({\n name: data.personal[0].nonprofit?.name,\n })}<span class=\"impact-link-arrow\">&nbsp;&rsaquo;</span>\n </a>\n </p>\n </div>\n <div\n class=\"impact community-impact\"\n style=\"flex: 1 1; display: inline-block; max-width: 100%; min-width: 200px;\"\n >\n ${this.renderCard({\n imageUrl: data.community[0].imageUrl || \"\",\n title: strings[this.configLang].communityImpactTitle({ brandName: data.chain.name }),\n percentFunded: data.community[0].impact?.goalProgressPercentage || 0,\n description: localizeUserString(this.configLang, data.community[0].impact?.description || \"\"),\n })}\n <p class=\"impact-link\" part=\"impact-link\">\n <a\n href=\"${data.chain.communityImpactUrl || data.community[0].nonprofit.website}\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n ${strings[this.configLang].seeAllImpact({\n brandName: data.chain.name,\n })}<span class=\"impact-link-arrow\">&nbsp;&rsaquo;</span>\n </a>\n </p>\n </div>\n </div>\n\n <div class=\"footer ${shareButtonVisibilityClass}\" part=\"social-share\">\n <button @click=\"${this.handleShareClick}\" class=\"share-button share-button-inline button icon-button\">\n <sl-icon\n name=\"${shareIcon}\"\n library=\"lucide\"\n label=\"${strings[this.configLang].impactShareButton()}\"\n class=\"share-button-icon\"\n ></sl-icon>\n <span class=\"share-button-text\">${strings[this.configLang].impactShareButton()}</span>\n </button>\n </div>\n\n <div id=\"modal-root\"></div>\n `;\n }\n\n public get cssVariables() {\n const defaults = {\n \"--beam-fontFamily\": \"inherit\",\n \"--beam-fontStyle\": \"inherit\",\n \"--beam-fontSize\": \"inherit\",\n \"--beam-textColor\": \"inherit\",\n \"--beam-backgroundColor\": \"inherit\",\n ...partnerLogosConfigDefaults,\n ...progressBarConfigDefaults,\n ...defineCustomText(\"--beam-ImpactOverview-title\", {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n marginTop: \"10px\",\n }),\n ...defineCustomText(\"--beam-ImpactOverview-subtitle\", {\n marginTop: \"5px\",\n }),\n \"--beam-ImpactOverview-impactCards-maxWidth\": \"800px\",\n \"--beam-ImpactOverview-impactCard-backgroundColor\": \"inherit\",\n \"--beam-ImpactOverview-impactCard-foregroundColor\": \"currentColor\",\n \"--beam-ImpactOverview-impactCard-borderColor\": \"currentColor\",\n \"--beam-ImpactOverview-impactCard-borderRadius\": \"0px\",\n \"--beam-ImpactOverview-impactCard-marginTop\": \"10px\",\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-title\", {\n fontSize: \"15px\",\n fontWeight: \"bold\",\n }),\n \"--beam-ImpactOverview-impactCard-progress-marginTop\": \"15px\",\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-progressText\"),\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-description\", {\n marginTop: \"10px\",\n }),\n \"--beam-ImpactOverview-impactCard-linkArrow-display\": \"inline\",\n \"--beam-ImpactOverview-impactCard-link-color\": \"inherit\",\n ...defineCustomText(\"--beam-ImpactOverview-impactCard-link\", {\n marginTop: \"10px\",\n }),\n \"--beam-ImpactOverview-share-button-display\": \"none\",\n \"--beam-ImpactOverview-share-button-display-mobile\": \"inherit\",\n \"--beam-ImpactOverview-share-button-display-desktop\": \"inherit\",\n \"--beam-ImpactOverview-share-button-textDecoration\": \"underline\",\n \"--beam-ImpactOverview-share-button-icon-size\": \"16px\",\n ...defineCustomText(\"--beam-ImpactOverview-share-button\", {\n fontSize: \"14px\",\n fontWeight: \"bold\",\n marginTop: \"12px\",\n }),\n \"--beam-ImpactOverview-share-button-backgroundColor\": \"#c2dcff\",\n \"--beam-ImpactOverview-share-button-color\": \"inherit\",\n \"--beam-ImpactOverview-share-button-borderRadius\": \"16px\",\n \"--beam-ImpactOverview-share-button-borderColor\": \"transparent\",\n \"--beam-ImpactOverview-share-button-borderWidth\": \"2px\",\n \"--beam-ImpactOverview-share-button-padding\": \"12px 18px 12px 16px\",\n \"--beam-ImpactOverview-share-button-width\": \"auto\",\n \"--beam-ImpactOverview-share-button-hover-color\": \"inherit\",\n \"--beam-ImpactOverview-share-button-hover-borderColor\": \"transparent\",\n \"--beam-ImpactOverview-share-button-hover-backgroundColor\": \"#c2dcff\",\n \"--beam-ImpactOverview-share-dialog-padding\": \"30px 60px\",\n ...defineCustomText(\"--beam-ImpactOverview-share-title\", {\n fontSize: \"30px\",\n fontWeight: \"bold\",\n }),\n \"--beam-ImpactOverview-share-button-icon-name\": \"share-2\",\n \"--beam-ImpactOverview-share-image-width\": \"200px\",\n \"--beam-ImpactOverview-share-image-borderRadius\": \"4px\",\n \"--beam-ImpactOverview-share-image-margin\": \"20px\",\n ...defineCustomText(\"--beam-ImpactOverview-share-text\", {\n fontSize: \"16px\",\n lineHeight: \"1.3\",\n marginTop: \"10px\",\n }),\n \"--beam-ImpactOverview-share-actions-margin\": \"30px 60px\",\n \"--beam-ImpactOverview-share-action-icon-size\": \"32px\",\n ...defineCustomText(\"--beam-ImpactOverview-share-action-text\", {\n fontSize: \"16px\",\n marginTop: \"5px\",\n }),\n ...defineCustomText(\"--beam-ImpactOverview-share-close\", {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n }),\n \"--beam-ImpactOverview-share-close-padding\": \"12px\",\n \"--beam-ImpactOverview-share-close-backgroundColor\": \"#ffd522\",\n \"--beam-ImpactOverview-share-close-text-color\": \"currentColor\",\n \"--beam-ImpactOverview-share-close-borderRadius\": \"4px\",\n \"--beam-ImpactOverview-image-display\": \"block\",\n };\n\n const remoteConfig = this.impactDataController?.data?.config?.web?.theme || {};\n\n const config = { ...defaults, ...remoteConfig };\n\n const serializable = Object.create({\n toCSS() {\n return _cssVariableMap(this as Record<string, string>);\n },\n });\n\n return Object.assign(serializable, config);\n }\n\n static styles = [\n cssReset,\n cssResponsiveUtils,\n css`\n :host {\n 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 max-width: var(--beam-ImpactOverview-impactCards-maxWidth, 800px);\n word-break: normal;\n }\n .impact-cards {\n max-width: var(--beam-ImpactOverview-impactCards-maxWidth);\n }\n .impact-card {\n margin-top: var(--beam-ImpactOverview-impactCard-marginTop);\n background-color: var(--beam-ImpactOverview-impactCard-backgroundColor);\n border: 1px solid var(--beam-ImpactOverview-impactCard-borderColor);\n border-radius: var(--beam-ImpactOverview-impactCard-borderRadius);\n overflow: hidden; /* maintain clean border-radius */\n color: var(--beam-ImpactOverview-impactCard-foregroundColor);\n }\n .impact-card-image {\n object-fit: cover;\n height: 200px;\n width: 100%;\n display: var(--beam-ImpactOverview-image-display);\n }\n .impact-card-progress {\n margin-top: var(--beam-ImpactOverview-impactCard-progress-marginTop);\n }\n .title {\n ${useCustomText(\"--beam-ImpactOverview-title\")}\n }\n .subtitle {\n ${useCustomText(\"--beam-ImpactOverview-subtitle\")}\n }\n .impact-card-title {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-title\")}\n }\n .impact-card-progressText {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-progressText\")}\n }\n .impact-card-description {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-description\")}\n }\n .impact-link {\n ${useCustomText(\"--beam-ImpactOverview-impactCard-link\")}\n }\n .impact-link-arrow {\n display: var(--beam-ImpactOverview-impactCard-linkArrow-display, \"inline\");\n }\n .impact-link a,\n .impact-link a:visited {\n color: var(--beam-ImpactOverview-impactCard-link-color, inherit);\n text-decoration: none;\n }\n .footer {\n text-align: center;\n }\n .share-button {\n /* display: var(--beam-ImpactOverview-share-button-display, none); */ /* visibility controlled by JS */\n /* display: var(--beam-ImpactOverview-share-button-display-mobile, inherit); */ /* visibility controlled by JS */\n /* display: var(--beam-ImpactOverview-share-button-display-desktop, inherit); */ /* visibility controlled by JS */\n ${useCustomText(\"--beam-ImpactOverview-share-button\", {\n fontSize: \"14px\",\n fontWeight: \"bold\",\n marginTop: \"10px\",\n })}\n /* TODO: extract palette variable - sky-100 color */\n background-color: var(--beam-ImpactOverview-share-button-backgroundColor, #c2dcff);\n color: var(--beam-ImpactOverview-share-button-color, inherit);\n border-radius: var(--beam-ImpactOverview-share-button-borderRadius, 16px);\n border-color: var(--beam-ImpactOverview-share-button-borderColor, transparent);\n border-width: var(--beam-ImpactOverview-share-button-borderWidth, 2px);\n /* add extra padding on side without icon for optical alignment */\n padding: var(--beam-ImpactOverview-share-button-padding, 12px 18px 12px 16px);\n width: var(--beam-ImpactOverview-share-button-width, auto);\n transition: 0.15s;\n }\n .share-button:hover {\n background-color: var(--beam-ImpactOverview-share-button-hover-backgroundColor, #c2dcff);\n color: var(--beam-ImpactOverview-share-button-hover-color, inherit);\n border-color: var(--beam-ImpactOverview-share-button-hover-borderColor, transparent);\n }\n .share-button-text {\n text-decoration: var(--beam-ImpactOverview-share-button-textDecoration, underline);\n margin-left: 0.33em;\n }\n .share-button-icon {\n font-size: var(--beam-ImpactOverview-share-button-icon-size, 16px);\n }\n @media (max-width: 500px) {\n //.impact-card {\n // display: flex;\n // flex-direction: row;\n //}\n //.impact-card-image {\n // object-fit: cover;\n // width: 25%;\n // height: auto;\n // flex: 1 0 45%;\n //}\n //.impact-card-content {\n // flex: 1 1 55%;\n //}\n //.share-button-text {\n // display: none;\n //}\n //.share-button-icon {\n // font-size: calc(var(--beam-ImpactOverview-share-button-icon-size, 16px) * 1.33);\n //}\n }\n `,\n css`\n .button {\n cursor: pointer;\n }\n .icon-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n .plain-button {\n border: none;\n background: none;\n font-size: inherit;\n font-family: inherit;\n }\n .plain-link {\n text-decoration: none;\n color: inherit;\n }\n `,\n css`\n .share-dialog::part(panel) {\n padding: var(--beam-ImpactOverview-share-dialog-padding, 30px 30px);\n text-align: center;\n }\n .share-title {\n ${useCustomText(\"--beam-ImpactOverview-share-title\", {\n fontSize: \"30px\",\n fontWeight: \"bold\",\n })}\n }\n .share-text {\n ${useCustomText(\"--beam-ImpactOverview-share-text\", {\n fontSize: \"16px\",\n lineHeight: \"1.3\",\n marginTop: \"10px\",\n })}\n }\n .share-image {\n border-radius: var(--beam-ImpactOverview-share-image-borderRadius, 4px);\n width: var(--beam-ImpactOverview-share-image-width, 200px);\n display: block;\n margin: var(--beam-ImpactOverview-share-image-margin, 20px) auto;\n }\n .share-actions {\n margin: var(--beam-ImpactOverview-share-actions-margin, 30px 60px);\n }\n .share-action-button {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n padding: 5px;\n }\n .share-action-icon {\n font-size: var(--beam-ImpactOverview-share-action-icon-size, 32px);\n }\n .share-action-button:hover .share-action-icon {\n scale: 1.1;\n }\n .share-action-text {\n ${useCustomText(\"--beam-ImpactOverview-share-text\", {\n fontSize: \"16px\",\n marginTop: \"10px\",\n fontWeight: \"bold\",\n })}\n }\n .share-close {\n display: block;\n background-color: var(--beam-ImpactOverview-share-close-backgroundColor, #ffd522);\n color: var(--beam-ImpactOverview-share-close-text-color, currentColor);\n justify-content: center;\n padding: var(--beam-ImpactOverview-share-close-padding, 12px);\n border-radius: var(--beam-ImpactOverview-share-close-borderRadius, 4px);\n width: 100%;\n ${useCustomText(\"--beam-ImpactOverview-share-close\", {\n fontSize: \"16px\",\n fontWeight: \"bold\",\n })}\n }\n .share-close:hover {\n outline: 2px solid var(--beam-ImpactOverview-share-close-focus-borderColor, currentColor);\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamImpactOverview);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-impact-overview\": BeamImpactOverview;\n }\n}\n"],"names":["isMobile","urlToFile","url","r","u","blob","syncElementHeights","elements","source","els","isAllHtmlElements","syncedHeight","a","b","el","strings","nonprofitName","brandName","name","percent","BeamImpactOverview","LitElement","DEFAULT_BASE_URL","enforceConfig","getImpact","WIDGET_NAMES","AsyncController","debounce","err","logger","BeamError","imageUrl","file","existingDialog","modalRoot","dataUrl","onClickClose","onClickCopy","onClickDownload","render","html","SUPPORTED_LANGUAGES","changedProperties","requireNewDataProps","prop","callback","e","title","percentFunded","description","unsafeHTML","data","loading","error","_loading","_errorMessage","showShare","showShareMobile","showShareDesktop","shareIcon","shareButtonVisibilityClass","localizeUserString","defaults","partnerLogosConfigDefaults","progressBarConfigDefaults","defineCustomText","remoteConfig","config","_cssVariableMap","cssReset","cssResponsiveUtils","css","useCustomText","__decorateClass","property","queryAll","defineCustomElement"],"mappings":"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"}
@@ -11,7 +11,7 @@ import 'lit-html';
11
11
  import '../chunks/progress-bar-0VS_AmEf.esm.js';
12
12
  import './beam-partner-logos.js';
13
13
  import '../chunks/types-aju0qrRe.esm.js';
14
- import '../chunks/types-7kSi85Gv.esm.js';
14
+ import '../chunks/types-CfbVJRfU.esm.js';
15
15
  import 'lodash';
16
16
  import '../chunks/promo-pill-label-3bA1z-la.esm.js';
17
17
  import '../chunks/cart-contents-3-9fB-7m.esm.js';
@@ -1,2 +1,2 @@
1
- import{BeamCommunityImpact as b}from"./community-impact.esm.js";import{BeamCumulativeImpact as w}from"./cumulative-impact.esm.js";import{BeamImpactOverview as D}from"./impact-overview.esm.js";import{BeamSelectNonprofit as N}from"./select-nonprofit.esm.js";import{BeamRedeemTransaction as R}from"./redeem-transaction.esm.js";import{BeamPostPurchase as j}from"./post-purchase.esm.js";import{BeamSubscriptionManagement as q}from"./subscription-management.esm.js";import{BeamProductDetailsPage as A}from"./product-details-page.esm.js";import"../chunks/lit-qtGbjGnK.esm.js";import"../chunks/progress-bar-Sn2QspHy.esm.js";import"./beam-partner-logos.esm.js";import"../chunks/localize-F31ae3j6.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.esm.js";import"../chunks/routes-mFdr3VNw.esm.js";import"../chunks/loading-template-Av0IUyKF.esm.js";import"../chunks/css-card-grid-7tObtoJx.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/shoelace-components-jVPXTZPS.esm.js";import"../chunks/vendor-jQ8cxMpw.esm.js";import"../chunks/responsive-aWj_7ZN_.esm.js";import"../chunks/promo-pill-label-j0A8qZ0c.esm.js";import"../chunks/events-Y8fYvSqM.esm.js";import"../utils/network-listeners.esm.js";import"../utils/local-storage.esm.js";import"../utils/cookies.esm.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../utils/makeApiKeyHeader.esm.js";export{b as BeamCommunityImpact,w as BeamCumulativeImpact,D as BeamImpactOverview,j as BeamPostPurchase,A as BeamProductDetailsPage,R as BeamRedeemTransaction,N as BeamSelectNonprofit,q as BeamSubscriptionManagement};
1
+ import{BeamCommunityImpact as b}from"./community-impact.esm.js";import{BeamCumulativeImpact as w}from"./cumulative-impact.esm.js";import{BeamImpactOverview as D}from"./impact-overview.esm.js";import{BeamSelectNonprofit as N}from"./select-nonprofit.esm.js";import{BeamRedeemTransaction as R}from"./redeem-transaction.esm.js";import{BeamPostPurchase as j}from"./post-purchase.esm.js";import{BeamSubscriptionManagement as q}from"./subscription-management.esm.js";import{BeamProductDetailsPage as A}from"./product-details-page.esm.js";import"../chunks/lit-qtGbjGnK.esm.js";import"../chunks/progress-bar-Sn2QspHy.esm.js";import"./beam-partner-logos.esm.js";import"../chunks/localize-F31ae3j6.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.esm.js";import"../chunks/routes-b8sncPq8.esm.js";import"../chunks/loading-template-Av0IUyKF.esm.js";import"../chunks/css-card-grid-7tObtoJx.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/shoelace-components-7XWYNn-Z.esm.js";import"../chunks/vendor-jQ8cxMpw.esm.js";import"../chunks/responsive-aWj_7ZN_.esm.js";import"../chunks/promo-pill-label-j0A8qZ0c.esm.js";import"../chunks/events-Y8fYvSqM.esm.js";import"../utils/network-listeners.esm.js";import"../utils/local-storage.esm.js";import"../utils/cookies.esm.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../utils/makeApiKeyHeader.esm.js";export{b as BeamCommunityImpact,w as BeamCumulativeImpact,D as BeamImpactOverview,j as BeamPostPurchase,A as BeamProductDetailsPage,R as BeamRedeemTransaction,N as BeamSelectNonprofit,q as BeamSubscriptionManagement};
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1,2 +1,2 @@
1
- import{BeamCommunityImpact as b}from"./community-impact.js";import{BeamCumulativeImpact as w}from"./cumulative-impact.js";import{BeamImpactOverview as D}from"./impact-overview.js";import{BeamSelectNonprofit as N}from"./select-nonprofit.js";import{BeamRedeemTransaction as R}from"./redeem-transaction.js";import{BeamPostPurchase as j}from"./post-purchase.js";import{BeamSubscriptionManagement as q}from"./subscription-management.js";import{BeamProductDetailsPage as A}from"./product-details-page.js";import"../chunks/lit-qtGbjGnK.esm.js";import"../chunks/progress-bar-Sn2QspHy.esm.js";import"./beam-partner-logos.js";import"../chunks/localize-fH8KOrMi.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.js";import"../chunks/routes-eEIGOCLH.esm.js";import"../chunks/loading-template-Av0IUyKF.esm.js";import"../chunks/css-card-grid-7tObtoJx.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/shoelace-components-yvcqUObE.esm.js";import"../chunks/vendor-jQ8cxMpw.esm.js";import"../chunks/responsive-aWj_7ZN_.esm.js";import"../chunks/promo-pill-label-j0A8qZ0c.esm.js";import"../chunks/events-Y8fYvSqM.esm.js";import"../utils/network-listeners.js";import"../utils/local-storage.js";import"../utils/cookies.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../utils/makeApiKeyHeader.js";export{b as BeamCommunityImpact,w as BeamCumulativeImpact,D as BeamImpactOverview,j as BeamPostPurchase,A as BeamProductDetailsPage,R as BeamRedeemTransaction,N as BeamSelectNonprofit,q as BeamSubscriptionManagement};
1
+ import{BeamCommunityImpact as b}from"./community-impact.js";import{BeamCumulativeImpact as w}from"./cumulative-impact.js";import{BeamImpactOverview as D}from"./impact-overview.js";import{BeamSelectNonprofit as N}from"./select-nonprofit.js";import{BeamRedeemTransaction as R}from"./redeem-transaction.js";import{BeamPostPurchase as j}from"./post-purchase.js";import{BeamSubscriptionManagement as q}from"./subscription-management.js";import{BeamProductDetailsPage as A}from"./product-details-page.js";import"../chunks/lit-qtGbjGnK.esm.js";import"../chunks/progress-bar-Sn2QspHy.esm.js";import"./beam-partner-logos.js";import"../chunks/localize-fH8KOrMi.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.js";import"../chunks/routes-3jKReDai.esm.js";import"../chunks/loading-template-Av0IUyKF.esm.js";import"../chunks/css-card-grid-7tObtoJx.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/shoelace-components-paAsUPkU.esm.js";import"../chunks/vendor-jQ8cxMpw.esm.js";import"../chunks/responsive-aWj_7ZN_.esm.js";import"../chunks/promo-pill-label-j0A8qZ0c.esm.js";import"../chunks/events-Y8fYvSqM.esm.js";import"../utils/network-listeners.js";import"../utils/local-storage.js";import"../utils/cookies.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../utils/makeApiKeyHeader.js";export{b as BeamCommunityImpact,w as BeamCumulativeImpact,D as BeamImpactOverview,j as BeamPostPurchase,A as BeamProductDetailsPage,R as BeamRedeemTransaction,N as BeamSelectNonprofit,q as BeamSubscriptionManagement};
2
2
  //# sourceMappingURL=index.js.map
@@ -9,7 +9,7 @@ import 'lodash';
9
9
  import '../chunks/progress-bar-0VS_AmEf.esm.js';
10
10
  import '../chunks/promo-pill-label-3bA1z-la.esm.js';
11
11
  import './beam-partner-logos.js';
12
- import '../chunks/types-7kSi85Gv.esm.js';
12
+ import '../chunks/types-CfbVJRfU.esm.js';
13
13
  import '../chunks/openapi-spec--MzXvfCC.esm.js';
14
14
 
15
15
  declare class BeamPostPurchase extends LitElement {
@@ -1,4 +1,4 @@
1
- import{g as o,t as s,h as I,y as l}from"../chunks/lit-qtGbjGnK.esm.js";import{M as y}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import{deleteCookieValue as u,getCookieValue as g}from"../utils/cookies.esm.js";import{c as C,d as f,A as b,e as v,_ as U}from"../chunks/localize-F31ae3j6.esm.js";import{createScopedLocalStorage as S}from"../utils/local-storage.esm.js";import{D as $,b as w}from"../chunks/routes-mFdr3VNw.esm.js";import"./redeem-transaction.esm.js";import"./impact-overview.esm.js";import{B as h}from"../chunks/cart-contents-h60geKWa.esm.js";import{b as T}from"../chunks/events-Y8fYvSqM.esm.js";import"../utils/logger.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/progress-bar-Sn2QspHy.esm.js";import"../chunks/promo-pill-label-j0A8qZ0c.esm.js";import"../chunks/vendor-jQ8cxMpw.esm.js";import"./beam-partner-logos.esm.js";import"../chunks/loading-template-Av0IUyKF.esm.js";import"../chunks/css-card-grid-7tObtoJx.esm.js";import"../chunks/shoelace-components-jVPXTZPS.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/responsive-aWj_7ZN_.esm.js";var A=Object.defineProperty,D=Object.getOwnPropertyDescriptor,e=(d,r,i,n)=>{for(var a=n>1?void 0:n?D(r,i):r,p=d.length-1,c;p>=0;p--)(c=d[p])&&(a=(n?c(r,i,a):c(a))||a);return n&&a&&A(r,i,a),a};const m=["baseUrl","apiKey","orderId","cartTotal","currencyCode","lang"],E=["storeId","postalCode","countryCode","cart","discountCodes","email","partnerUserId"];class t extends I{constructor(){super(...arguments),this.baseUrl=$,this.currencyCode="USD",this.lang="en",this.debug=!1,this.activeWidget=null,this.nonprofitId=null,this.selectionId=null,this.cartId=null,this.beamCartId=null,this.userId=null,this.transactionId=null,this.localStorage=S(this),this.handlePostTransaction=async()=>{this.enforceConfig();const r=await w({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{nonprofitId:this.nonprofitId||void 0,selectionId:this.selectionId||void 0,cartId:this.cartId||void 0,beamCartId:this.beamCartId||void 0,storeId:this.storeId,orderId:this.orderId,cartTotal:this.cartTotal,email:this.email,partnerUserId:this.partnerUserId,currencyCode:this.currencyCode,postalCode:this.postalCode,countryCode:this.countryCode,cart:this.cart,discountCodes:this.discountCodes}});return this.transactionId=r.transactionId,this.userId=r.beamUserId,this.nonprofitId=r.nonprofitId,this.activeWidget=this.nonprofitId?"impact-overview":"redeem-transaction",this.localStorage.removeItem("transaction"),this.localStorage.removeItem("cart"),u({name:h,path:"/",domain:this.domain}),r.transactionCreated&&dispatchEvent(new T({transactionId:r.transactionId,orderId:this.orderId,cartTotal:this.cartTotal,currencyCode:this.currencyCode})),r},this.transactionDataController=new b(this,this.handlePostTransaction)}firstUpdated(r){this.enforceConfig(),this.nonprofitId=Number(this.localStorage.getItem("nonprofit"))||null,this.selectionId=this.localStorage.getItem("transaction")||null,this.cartId=this.localStorage.getItemJson("cart")?.cartId||null,this.beamCartId=g(h)||null,this.selectionId&&this.nonprofitId&&(this.activeWidget="impact-overview")}async updated(r){[...m,...E].some(i=>r.has(i))&&await this.transactionDataController.exec()}enforceConfig(){if(v(m,this),!this.email&&!this.partnerUserId)throw new y([this.email?"":"email",this.partnerUserId?"":"partnerUserId"].filter(Boolean),"At least one of [email, partnerUserId] must be provided")}render(){return this.transactionDataController.loading?"":this.transactionDataController.error?this.debug?U({error:this.transactionDataController.error}):"":this.activeWidget==="redeem-transaction"?l`
1
+ import{g as o,t as s,h as I,y as l}from"../chunks/lit-qtGbjGnK.esm.js";import{M as y}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import{deleteCookieValue as u,getCookieValue as g}from"../utils/cookies.esm.js";import{c as C,d as f,A as b,e as v,_ as U}from"../chunks/localize-F31ae3j6.esm.js";import{createScopedLocalStorage as S}from"../utils/local-storage.esm.js";import{D as $,b as w}from"../chunks/routes-b8sncPq8.esm.js";import"./redeem-transaction.esm.js";import"./impact-overview.esm.js";import{B as h}from"../chunks/cart-contents-h60geKWa.esm.js";import{b as T}from"../chunks/events-Y8fYvSqM.esm.js";import"../utils/logger.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/progress-bar-Sn2QspHy.esm.js";import"../chunks/promo-pill-label-j0A8qZ0c.esm.js";import"../chunks/vendor-jQ8cxMpw.esm.js";import"./beam-partner-logos.esm.js";import"../chunks/loading-template-Av0IUyKF.esm.js";import"../chunks/css-card-grid-7tObtoJx.esm.js";import"../chunks/shoelace-components-7XWYNn-Z.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/responsive-aWj_7ZN_.esm.js";var A=Object.defineProperty,D=Object.getOwnPropertyDescriptor,e=(d,r,i,n)=>{for(var a=n>1?void 0:n?D(r,i):r,p=d.length-1,c;p>=0;p--)(c=d[p])&&(a=(n?c(r,i,a):c(a))||a);return n&&a&&A(r,i,a),a};const m=["baseUrl","apiKey","orderId","cartTotal","currencyCode","lang"],E=["storeId","postalCode","countryCode","cart","discountCodes","email","partnerUserId"];class t extends I{constructor(){super(...arguments),this.baseUrl=$,this.currencyCode="USD",this.lang="en",this.debug=!1,this.activeWidget=null,this.nonprofitId=null,this.selectionId=null,this.cartId=null,this.beamCartId=null,this.userId=null,this.transactionId=null,this.localStorage=S(this),this.handlePostTransaction=async()=>{this.enforceConfig();const r=await w({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{nonprofitId:this.nonprofitId||void 0,selectionId:this.selectionId||void 0,cartId:this.cartId||void 0,beamCartId:this.beamCartId||void 0,storeId:this.storeId,orderId:this.orderId,cartTotal:this.cartTotal,email:this.email,partnerUserId:this.partnerUserId,currencyCode:this.currencyCode,postalCode:this.postalCode,countryCode:this.countryCode,cart:this.cart,discountCodes:this.discountCodes}});return this.transactionId=r.transactionId,this.userId=r.beamUserId,this.nonprofitId=r.nonprofitId,this.activeWidget=this.nonprofitId?"impact-overview":"redeem-transaction",this.localStorage.removeItem("transaction"),this.localStorage.removeItem("cart"),u({name:h,path:"/",domain:this.domain}),r.transactionCreated&&dispatchEvent(new T({transactionId:r.transactionId,orderId:this.orderId,cartTotal:this.cartTotal,currencyCode:this.currencyCode})),r},this.transactionDataController=new b(this,this.handlePostTransaction)}firstUpdated(r){this.enforceConfig(),this.nonprofitId=Number(this.localStorage.getItem("nonprofit"))||null,this.selectionId=this.localStorage.getItem("transaction")||null,this.cartId=this.localStorage.getItemJson("cart")?.cartId||null,this.beamCartId=g(h)||null,this.selectionId&&this.nonprofitId&&(this.activeWidget="impact-overview")}async updated(r){[...m,...E].some(i=>r.has(i))&&await this.transactionDataController.exec()}enforceConfig(){if(v(m,this),!this.email&&!this.partnerUserId)throw new y([this.email?"":"email",this.partnerUserId?"":"partnerUserId"].filter(Boolean),"At least one of [email, partnerUserId] must be provided")}render(){return this.transactionDataController.loading?"":this.transactionDataController.error?this.debug?U({error:this.transactionDataController.error}):"":this.activeWidget==="redeem-transaction"?l`
2
2
  <beam-redeem-transaction
3
3
  part="redeem-transaction"
4
4
  baseUrl="${this.baseUrl}"
@@ -1,4 +1,4 @@
1
- import{g as o,t as s,h as I,y as l}from"../chunks/lit-qtGbjGnK.esm.js";import{M as y}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import{deleteCookieValue as u,getCookieValue as g}from"../utils/cookies.js";import{c as C,d as f,A as b,e as v,_ as U}from"../chunks/localize-fH8KOrMi.esm.js";import{createScopedLocalStorage as S}from"../utils/local-storage.js";import{D as $,b as w}from"../chunks/routes-eEIGOCLH.esm.js";import"./redeem-transaction.js";import"./impact-overview.js";import{B as h}from"../chunks/cart-contents-h60geKWa.esm.js";import{b as T}from"../chunks/events-Y8fYvSqM.esm.js";import"../utils/logger.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/progress-bar-Sn2QspHy.esm.js";import"../chunks/promo-pill-label-j0A8qZ0c.esm.js";import"../chunks/vendor-jQ8cxMpw.esm.js";import"./beam-partner-logos.js";import"../chunks/loading-template-Av0IUyKF.esm.js";import"../chunks/css-card-grid-7tObtoJx.esm.js";import"../chunks/shoelace-components-yvcqUObE.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/responsive-aWj_7ZN_.esm.js";var A=Object.defineProperty,D=Object.getOwnPropertyDescriptor,e=(d,r,i,n)=>{for(var a=n>1?void 0:n?D(r,i):r,p=d.length-1,c;p>=0;p--)(c=d[p])&&(a=(n?c(r,i,a):c(a))||a);return n&&a&&A(r,i,a),a};const m=["baseUrl","apiKey","orderId","cartTotal","currencyCode","lang"],E=["storeId","postalCode","countryCode","cart","discountCodes","email","partnerUserId"];class t extends I{constructor(){super(...arguments),this.baseUrl=$,this.currencyCode="USD",this.lang="en",this.debug=!1,this.activeWidget=null,this.nonprofitId=null,this.selectionId=null,this.cartId=null,this.beamCartId=null,this.userId=null,this.transactionId=null,this.localStorage=S(this),this.handlePostTransaction=async()=>{this.enforceConfig();const r=await w({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{nonprofitId:this.nonprofitId||void 0,selectionId:this.selectionId||void 0,cartId:this.cartId||void 0,beamCartId:this.beamCartId||void 0,storeId:this.storeId,orderId:this.orderId,cartTotal:this.cartTotal,email:this.email,partnerUserId:this.partnerUserId,currencyCode:this.currencyCode,postalCode:this.postalCode,countryCode:this.countryCode,cart:this.cart,discountCodes:this.discountCodes}});return this.transactionId=r.transactionId,this.userId=r.beamUserId,this.nonprofitId=r.nonprofitId,this.activeWidget=this.nonprofitId?"impact-overview":"redeem-transaction",this.localStorage.removeItem("transaction"),this.localStorage.removeItem("cart"),u({name:h,path:"/",domain:this.domain}),r.transactionCreated&&dispatchEvent(new T({transactionId:r.transactionId,orderId:this.orderId,cartTotal:this.cartTotal,currencyCode:this.currencyCode})),r},this.transactionDataController=new b(this,this.handlePostTransaction)}firstUpdated(r){this.enforceConfig(),this.nonprofitId=Number(this.localStorage.getItem("nonprofit"))||null,this.selectionId=this.localStorage.getItem("transaction")||null,this.cartId=this.localStorage.getItemJson("cart")?.cartId||null,this.beamCartId=g(h)||null,this.selectionId&&this.nonprofitId&&(this.activeWidget="impact-overview")}async updated(r){[...m,...E].some(i=>r.has(i))&&await this.transactionDataController.exec()}enforceConfig(){if(v(m,this),!this.email&&!this.partnerUserId)throw new y([this.email?"":"email",this.partnerUserId?"":"partnerUserId"].filter(Boolean),"At least one of [email, partnerUserId] must be provided")}render(){return this.transactionDataController.loading?"":this.transactionDataController.error?this.debug?U({error:this.transactionDataController.error}):"":this.activeWidget==="redeem-transaction"?l`
1
+ import{g as o,t as s,h as I,y as l}from"../chunks/lit-qtGbjGnK.esm.js";import{M as y}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import{deleteCookieValue as u,getCookieValue as g}from"../utils/cookies.js";import{c as C,d as f,A as b,e as v,_ as U}from"../chunks/localize-fH8KOrMi.esm.js";import{createScopedLocalStorage as S}from"../utils/local-storage.js";import{D as $,b as w}from"../chunks/routes-3jKReDai.esm.js";import"./redeem-transaction.js";import"./impact-overview.js";import{B as h}from"../chunks/cart-contents-h60geKWa.esm.js";import{b as T}from"../chunks/events-Y8fYvSqM.esm.js";import"../utils/logger.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../chunks/progress-bar-Sn2QspHy.esm.js";import"../chunks/promo-pill-label-j0A8qZ0c.esm.js";import"../chunks/vendor-jQ8cxMpw.esm.js";import"./beam-partner-logos.js";import"../chunks/loading-template-Av0IUyKF.esm.js";import"../chunks/css-card-grid-7tObtoJx.esm.js";import"../chunks/shoelace-components-paAsUPkU.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/responsive-aWj_7ZN_.esm.js";var A=Object.defineProperty,D=Object.getOwnPropertyDescriptor,e=(d,r,i,n)=>{for(var a=n>1?void 0:n?D(r,i):r,p=d.length-1,c;p>=0;p--)(c=d[p])&&(a=(n?c(r,i,a):c(a))||a);return n&&a&&A(r,i,a),a};const m=["baseUrl","apiKey","orderId","cartTotal","currencyCode","lang"],E=["storeId","postalCode","countryCode","cart","discountCodes","email","partnerUserId"];class t extends I{constructor(){super(...arguments),this.baseUrl=$,this.currencyCode="USD",this.lang="en",this.debug=!1,this.activeWidget=null,this.nonprofitId=null,this.selectionId=null,this.cartId=null,this.beamCartId=null,this.userId=null,this.transactionId=null,this.localStorage=S(this),this.handlePostTransaction=async()=>{this.enforceConfig();const r=await w({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{nonprofitId:this.nonprofitId||void 0,selectionId:this.selectionId||void 0,cartId:this.cartId||void 0,beamCartId:this.beamCartId||void 0,storeId:this.storeId,orderId:this.orderId,cartTotal:this.cartTotal,email:this.email,partnerUserId:this.partnerUserId,currencyCode:this.currencyCode,postalCode:this.postalCode,countryCode:this.countryCode,cart:this.cart,discountCodes:this.discountCodes}});return this.transactionId=r.transactionId,this.userId=r.beamUserId,this.nonprofitId=r.nonprofitId,this.activeWidget=this.nonprofitId?"impact-overview":"redeem-transaction",this.localStorage.removeItem("transaction"),this.localStorage.removeItem("cart"),u({name:h,path:"/",domain:this.domain}),r.transactionCreated&&dispatchEvent(new T({transactionId:r.transactionId,orderId:this.orderId,cartTotal:this.cartTotal,currencyCode:this.currencyCode})),r},this.transactionDataController=new b(this,this.handlePostTransaction)}firstUpdated(r){this.enforceConfig(),this.nonprofitId=Number(this.localStorage.getItem("nonprofit"))||null,this.selectionId=this.localStorage.getItem("transaction")||null,this.cartId=this.localStorage.getItemJson("cart")?.cartId||null,this.beamCartId=g(h)||null,this.selectionId&&this.nonprofitId&&(this.activeWidget="impact-overview")}async updated(r){[...m,...E].some(i=>r.has(i))&&await this.transactionDataController.exec()}enforceConfig(){if(v(m,this),!this.email&&!this.partnerUserId)throw new y([this.email?"":"email",this.partnerUserId?"":"partnerUserId"].filter(Boolean),"At least one of [email, partnerUserId] must be provided")}render(){return this.transactionDataController.loading?"":this.transactionDataController.error?this.debug?U({error:this.transactionDataController.error}):"":this.activeWidget==="redeem-transaction"?l`
2
2
  <beam-redeem-transaction
3
3
  part="redeem-transaction"
4
4
  baseUrl="${this.baseUrl}"
@@ -1,8 +1,8 @@
1
- import{j as u,f as b,g as d,h as m,y as s,k as D}from"../chunks/lit-qtGbjGnK.esm.js";import{c as h,u as g,d as f,e as v,A as y,_ as x,i as P,a as p,b as C}from"../chunks/localize-F31ae3j6.esm.js";import{D as $,i as k,S as F}from"../chunks/routes-mFdr3VNw.esm.js";import{makeApiKeyHeader as S}from"../utils/makeApiKeyHeader.esm.js";import"../chunks/vendor-jQ8cxMpw.esm.js";import"../chunks/shoelace-components-jVPXTZPS.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.esm.js";const w=(r="",{borderRadius:e="0px",borderStyle:t="unset",borderColor:o="#000000",borderWidth:i="1px"}={})=>{const a=r.startsWith("--beam-")?r:`--beam-${r}`;return{[`${a}-borderRadius`]:e,[`${a}-borderStyle`]:t,[`${a}-borderColor`]:o,[`${a}-borderWidth`]:i}},T=(r="",{borderRadius:e="0px",borderStyle:t="unset",borderColor:o="#000000",borderWidth:i="1px"}={})=>{const a=r.startsWith("--beam-")?r:`--beam-${r}`;return u(` border-radius: var(${a}-borderRadius, ${e});
1
+ import{j as u,f as b,g as d,h as m,y as s,k as D}from"../chunks/lit-qtGbjGnK.esm.js";import{c as h,u as g,d as f,e as v,A as y,_ as x,i as P,a as p,b as C}from"../chunks/localize-F31ae3j6.esm.js";import{D as $,i as k,W as F,S}from"../chunks/routes-b8sncPq8.esm.js";import{makeApiKeyHeader as T}from"../utils/makeApiKeyHeader.esm.js";import"../chunks/vendor-jQ8cxMpw.esm.js";import"../chunks/shoelace-components-7XWYNn-Z.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.esm.js";const w=(r="",{borderRadius:e="0px",borderStyle:t="unset",borderColor:o="#000000",borderWidth:i="1px"}={})=>{const a=r.startsWith("--beam-")?r:`--beam-${r}`;return{[`${a}-borderRadius`]:e,[`${a}-borderStyle`]:t,[`${a}-borderColor`]:o,[`${a}-borderWidth`]:i}},G=(r="",{borderRadius:e="0px",borderStyle:t="unset",borderColor:o="#000000",borderWidth:i="1px"}={})=>{const a=r.startsWith("--beam-")?r:`--beam-${r}`;return u(` border-radius: var(${a}-borderRadius, ${e});
2
2
  border-style: var(${a}-borderStyle, ${t});
3
3
  border-color: var(${a}-borderColor, ${o});
4
4
  border-width: var(${a}-borderWidth, ${i});
5
- `)};var G=Object.defineProperty,I=Object.getOwnPropertyDescriptor,n=(r,e,t,o)=>{for(var i=o>1?void 0:o?I(e,t):e,a=r.length-1,c;a>=0;a--)(c=r[a])&&(i=(o?c(e,t,i):c(i))||i);return o&&i&&G(e,t,i),i};const W="--beam-ProductDetailsPage-imageUrl";class l extends m{constructor(){super(...arguments),this.baseUrl=$,this.lang="en",this.debug=!1,this.getProductDetailsPageData=async()=>(v(["apiKey","storeId"],this),await k({baseUrl:this.baseUrl,headers:S(this.apiKey),queryParams:{version:"1.0.0",lang:this.configLang,storeId:this.storeId,widgetName:"product-details-page"}})),this.productDetailsPageDataController=new y(this,this.getProductDetailsPageData)}get configLang(){return F[this.lang]||"en"}async updated(e){const t=["storeId","baseUrl","lang","apiKey"];for(const o of t)if(e.has(o)){await this.productDetailsPageDataController.exec();break}}renderWidgetIcon(){const e=this.cssVariables[W];return e?s`
5
+ `)};var I=Object.defineProperty,W=Object.getOwnPropertyDescriptor,n=(r,e,t,o)=>{for(var i=o>1?void 0:o?W(e,t):e,a=r.length-1,c;a>=0;a--)(c=r[a])&&(i=(o?c(e,t,i):c(i))||i);return o&&i&&I(e,t,i),i};const A="--beam-ProductDetailsPage-imageUrl";class l extends m{constructor(){super(...arguments),this.baseUrl=$,this.lang="en",this.debug=!1,this.getProductDetailsPageData=async()=>(v(["apiKey","storeId"],this),await k({baseUrl:this.baseUrl,headers:T(this.apiKey),queryParams:{version:"1.0.0",lang:this.configLang,storeId:this.storeId,widgetName:F.product_details_page}})),this.productDetailsPageDataController=new y(this,this.getProductDetailsPageData)}get configLang(){return S[this.lang]||"en"}async updated(e){const t=["storeId","baseUrl","lang","apiKey"];for(const o of t)if(e.has(o)){await this.productDetailsPageDataController.exec();break}}renderWidgetIcon(){const e=this.cssVariables[A];return e?s`
6
6
  <span class="icon-container">
7
7
  <img src=${e} alt="Widget Icon"></img>
8
8
  </span>
@@ -52,7 +52,7 @@ import{j as u,f as b,g as d,h as m,y as s,k as D}from"../chunks/lit-qtGbjGnK.esm
52
52
  padding-left: var(--beam-ProductDetailsPage-paddingLeft);
53
53
  width: 100%;
54
54
  background-color: var(--beam-ProductDetailsPage-backgroundColor);
55
- ${T("--beam-ProductDetailsPage")}
55
+ ${G("--beam-ProductDetailsPage")}
56
56
  }
57
57
  .icon-container {
58
58
  width: var(--beam-ProductDetailsPage-imageWidth);
@@ -1 +1 @@
1
- {"version":3,"file":"product-details-page.esm.js","sources":["../../src/shared/fragments/custom-border.ts","../../src/components/product-details-page/index.ts"],"sourcesContent":["import { CSSResult, unsafeCSS } from \"lit\";\n\nexport const defineCustomBorder = (\n namespace = \"\",\n { borderRadius = \"0px\", borderStyle = \"unset\", borderColor = \"#000000\", borderWidth = \"1px\" } = {}\n): Record<string, string> => {\n const prefix = namespace.startsWith(\"--beam-\") ? namespace : `--beam-${namespace}`;\n return {\n [`${prefix}-borderRadius`]: borderRadius,\n [`${prefix}-borderStyle`]: borderStyle,\n [`${prefix}-borderColor`]: borderColor,\n [`${prefix}-borderWidth`]: borderWidth,\n };\n};\n\nexport const useCustomBorder = (\n namespace = \"\",\n { borderRadius = \"0px\", borderStyle = \"unset\", borderColor = \"#000000\", borderWidth = \"1px\" } = {}\n): CSSResult => {\n const prefix = namespace.startsWith(\"--beam-\") ? namespace : `--beam-${namespace}`;\n return unsafeCSS(`\\\n border-radius: var(${prefix}-borderRadius, ${borderRadius});\n border-style: var(${prefix}-borderStyle, ${borderStyle});\n border-color: var(${prefix}-borderColor, ${borderColor});\n border-width: var(${prefix}-borderWidth, ${borderWidth});\n `);\n};\n","import { LitElement, css, html } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { getProductDetailsPage } from \"../../api-sdk/v3/routes\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES } from \"../../api-sdk/constants\";\nimport { LANGUAGES, TUrl } from \"../../api-sdk/types\";\nimport { makeApiKeyHeader } from \"../../utils/makeApiKeyHeader\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport { localizeUserString } from \"../../shared/localize\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { defineCustomBorder, useCustomBorder } from \"../../shared/fragments/custom-border\";\n\n// shoelace html tag imports\nimport \"@shoelace-style/shoelace/dist/components/tooltip/tooltip.js\";\nimport \"../../shared/shoelace-components\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: number;\n};\n\nconst IMAGE_URL_REMOTE_CONFIG_KEY = \"--beam-ProductDetailsPage-imageUrl\";\n\nexport class BeamProductDetailsPage extends LitElement {\n static tagName = \"beam-product-details-page\";\n\n @property({ type: String, reflect: true }) public baseUrl: TUrl = DEFAULT_BASE_URL;\n\n @property({ type: String, reflect: false }) apiKey?: RequiredConfig[\"apiKey\"];\n\n @property({ type: Number }) storeId?: number;\n\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n\n @property({ type: Boolean }) public debug = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n getProductDetailsPageData = async () => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\"], this)) throw new MissingConfig();\n\n const res = await getProductDetailsPage({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n queryParams: {\n version: \"1.0.0\",\n lang: this.configLang,\n storeId: this.storeId,\n widgetName: \"product-details-page\",\n },\n });\n return res;\n };\n\n private productDetailsPageDataController = new AsyncController<typeof this.getProductDetailsPageData>(\n this,\n this.getProductDetailsPageData\n );\n\n async updated(changedProperties: Map<string, unknown>) {\n const requireNewDataProps = [\"storeId\", \"baseUrl\", \"lang\", \"apiKey\"];\n for (const prop of requireNewDataProps) {\n if (changedProperties.has(prop)) {\n await this.productDetailsPageDataController.exec();\n break;\n }\n }\n }\n\n renderWidgetIcon() {\n const imageUrl = this.cssVariables[IMAGE_URL_REMOTE_CONFIG_KEY];\n\n return imageUrl\n ? html`\n <span class=\"icon-container\">\n <img src=${imageUrl} alt=\"Widget Icon\"></img>\n </span>\n `\n : html``;\n }\n\n render() {\n const { data, loading } = this.productDetailsPageDataController;\n if (loading) {\n return html``;\n }\n if (data == null) {\n if (this.debug) {\n return _errorMessage({ error: new Error(\"No data\") });\n }\n return \"\";\n }\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n <div class=\"root\">\n ${this.renderWidgetIcon()}\n <span class=\"info-container\">\n <div class=\"title-block\">\n <h3 class=\"title\">${localizeUserString(this.configLang, data.config?.web?.title)}</h3>\n </div>\n <div class=\"description-block\">\n <span class=\"description\"> ${localizeUserString(this.configLang, data.config?.web?.description)}</span\n >${this.renderDisclosureTooltip()}\n </div>\n </span>\n </div>\n `;\n }\n\n /* PayPal Giving Fund Disclosure */\n renderDisclosureTooltip() {\n const ppgfDisclosure = this.productDetailsPageDataController.data?.ppgfDisclosure;\n return ppgfDisclosure\n ? html`<sl-tooltip class=\"ppgf-disclosure-tooltip\">\n <div class=\"ppgf-disclosure-tooltip-content\" slot=\"content\">${unsafeHTML(ppgfDisclosure.copy)}</div>\n ${this.renderDisclosureTooltipIcon()}\n </sl-tooltip>`\n : html``;\n }\n\n renderDisclosureTooltipIcon() {\n return html`<sl-icon\n library=\"lucide\"\n name=\"info\"\n label=\"ppgf-disclosure-tooltip-icon\"\n class=\"ppgf-disclosure-tooltip-icon\"\n ></sl-icon>`;\n }\n\n renderDisclosureTooltipHyperlink() {\n const ppgfHyperlink = this.productDetailsPageDataController.data?.ppgfDisclosureHyperlink;\n return ppgfHyperlink\n ? html`<a class=\"ppgf-disclosure-hyperlink\" href=\"${ppgfHyperlink.url}\" target=\"_blank\">${ppgfHyperlink.copy}</a>`\n : html``;\n }\n /* End PayPal Giving Fund Disclosure */\n\n public get cssVariables() {\n const defaults = {\n \"--beam-ProductDetailsPage-imageWidth\": \"24px\",\n \"--beam-ProductDetailsPage-imageHeight\": \"24px\",\n \"--beam-ProductDetailsPage-maxWidth\": \"346px\",\n \"--beam-ProductDetailsPage-paddingTop\": \"8px\",\n \"--beam-ProductDetailsPage-paddingRight\": \"12px\",\n \"--beam-ProductDetailsPage-paddingBottom\": \"8px\",\n \"--beam-ProductDetailsPage-paddingLeft\": \"15px\",\n \"--beam-ProductDetailsPage-InfoContainer-marginLeft\": \"8px\",\n \"--beam-ProductDetailsPage-backgroundColor\": \"unset\",\n \"--beam-ProductDetailsPage-TooltipIcon-width\": \"10px\",\n \"--beam-ProductDetailsPage-TooltipIcon-color\": \"inherit\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor\": \"#000000\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingTop\": \"10px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingRight\": \"8px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingBottom\": \"10px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingLeft\": \"8px\",\n \"--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color\": \"#5CA3FF\",\n ...defineCustomText(\"--beam-ProductDetailsPage-title\", {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n }),\n \"--beam-ProductDetailsPage-title-textAlign\": \"left\",\n ...defineCustomText(\"--beam-ProductDetailsPage-description\", {\n marginTop: \"4px\",\n fontSize: \"12px\",\n lineHeight: \"15px\",\n }),\n \"--beam-ProductDetailsPage-description-textAlign\": \"left\",\n ...defineCustomText(\"--beam-ProductDetailsPage-PPGFDisclosureTooltipContent\", {\n fontSize: \"12px\",\n lineHeight: \"16px\",\n color: \"#FFFFFF\",\n }),\n ...defineCustomBorder(\"--beam-ProductDetailsPage\"),\n };\n const remoteConfig = this.productDetailsPageDataController?.data?.config?.web?.theme || {};\n\n const config = { ...defaults, ...remoteConfig };\n\n const serializable = Object.create({\n toCSS() {\n return _cssVariableMap(this as Record<string, string>);\n },\n });\n\n return Object.assign(serializable, config);\n }\n\n static styles = [\n cssReset,\n css`\n :host {\n font-family: var(--beam-fontFamily);\n font-style: var(--beam-fontStyle);\n font-size: var(--beam-fontSize);\n background-color: var(--beam-backgroundColor);\n color: var(--beam-textColor);\n max-width: var(--beam-ProductDetailsPage-maxWidth);\n word-break: normal;\n display: block;\n }\n .root {\n display: flex;\n align-items: center;\n padding-top: var(--beam-ProductDetailsPage-paddingTop);\n padding-right: var(--beam-ProductDetailsPage-paddingRight);\n padding-bottom: var(--beam-ProductDetailsPage-paddingBottom);\n padding-left: var(--beam-ProductDetailsPage-paddingLeft);\n width: 100%;\n background-color: var(--beam-ProductDetailsPage-backgroundColor);\n ${useCustomBorder(\"--beam-ProductDetailsPage\")}\n }\n .icon-container {\n width: var(--beam-ProductDetailsPage-imageWidth);\n height: var(--beam-ProductDetailsPage-imageHeight);\n flex-shrink: 0;\n }\n .icon-container > img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n .info-container {\n margin-left: var(--beam-ProductDetailsPage-InfoContainer-marginLeft);\n }\n .title {\n ${useCustomText(\"--beam-ProductDetailsPage-title\")}\n }\n .title-block {\n text-align: var(--beam-ProductDetailsPage-title-textAlign);\n line-height: var(--beam-ProductDetailsPage-title-lineHeight);\n }\n .description {\n ${useCustomText(\"--beam-ProductDetailsPage-description\")}\n }\n .description-block {\n text-align: var(--beam-ProductDetailsPage-description-textAlign);\n line-height: var(--beam-ProductDetailsPage-description-lineHeight);\n }\n .ppgf-disclosure-tooltip {\n --max-width: 268px;\n }\n .ppgf-disclosure-tooltip::part(body) {\n background-color: var(--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor);\n padding-top: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingTop);\n padding-right: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingRight);\n padding-bottom: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingBottom);\n padding-left: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingLeft);\n }\n .ppgf-disclosure-tooltip::part(base__arrow) {\n background-color: var(--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor);\n }\n .ppgf-disclosure-tooltip-content {\n ${useCustomText(\"--beam-ProductDetailsPage-PPGFDisclosureTooltipContent\")}\n }\n .ppgf-disclosure-tooltip-content > a {\n pointer-events: auto;\n color: var(--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color);\n }\n .ppgf-disclosure-hyperlink:visited {\n color: var(--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color);\n }\n .ppgf-disclosure-tooltip-icon {\n width: var(--beam-ProductDetailsPage-TooltipIcon-width);\n color: var(--beam-ProductDetailsPage-TooltipIcon-color);\n height: auto;\n vertical-align: middle;\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamProductDetailsPage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-product-details-page\": BeamProductDetailsPage;\n }\n}\n"],"names":["defineCustomBorder","namespace","borderRadius","borderStyle","borderColor","borderWidth","prefix","useCustomBorder","unsafeCSS","IMAGE_URL_REMOTE_CONFIG_KEY","BeamProductDetailsPage","LitElement","DEFAULT_BASE_URL","enforceConfig","getProductDetailsPage","makeApiKeyHeader","AsyncController","SUPPORTED_LANGUAGES","changedProperties","requireNewDataProps","prop","imageUrl","html","data","loading","_errorMessage","localizeUserString","ppgfDisclosure","unsafeHTML","ppgfHyperlink","defaults","defineCustomText","remoteConfig","config","_cssVariableMap","cssReset","css","useCustomText","__decorateClass","property","defineCustomElement"],"mappings":"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"}
1
+ {"version":3,"file":"product-details-page.esm.js","sources":["../../src/shared/fragments/custom-border.ts","../../src/components/product-details-page/index.ts"],"sourcesContent":["import { CSSResult, unsafeCSS } from \"lit\";\n\nexport const defineCustomBorder = (\n namespace = \"\",\n { borderRadius = \"0px\", borderStyle = \"unset\", borderColor = \"#000000\", borderWidth = \"1px\" } = {}\n): Record<string, string> => {\n const prefix = namespace.startsWith(\"--beam-\") ? namespace : `--beam-${namespace}`;\n return {\n [`${prefix}-borderRadius`]: borderRadius,\n [`${prefix}-borderStyle`]: borderStyle,\n [`${prefix}-borderColor`]: borderColor,\n [`${prefix}-borderWidth`]: borderWidth,\n };\n};\n\nexport const useCustomBorder = (\n namespace = \"\",\n { borderRadius = \"0px\", borderStyle = \"unset\", borderColor = \"#000000\", borderWidth = \"1px\" } = {}\n): CSSResult => {\n const prefix = namespace.startsWith(\"--beam-\") ? namespace : `--beam-${namespace}`;\n return unsafeCSS(`\\\n border-radius: var(${prefix}-borderRadius, ${borderRadius});\n border-style: var(${prefix}-borderStyle, ${borderStyle});\n border-color: var(${prefix}-borderColor, ${borderColor});\n border-width: var(${prefix}-borderWidth, ${borderWidth});\n `);\n};\n","import { LitElement, css, html } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { getProductDetailsPage } from \"../../api-sdk/v3/routes\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { LANGUAGES, TUrl } from \"../../api-sdk/types\";\nimport { makeApiKeyHeader } from \"../../utils/makeApiKeyHeader\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport { localizeUserString } from \"../../shared/localize\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { defineCustomBorder, useCustomBorder } from \"../../shared/fragments/custom-border\";\n\n// shoelace html tag imports\nimport \"@shoelace-style/shoelace/dist/components/tooltip/tooltip.js\";\nimport \"../../shared/shoelace-components\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: number;\n};\n\nconst IMAGE_URL_REMOTE_CONFIG_KEY = \"--beam-ProductDetailsPage-imageUrl\";\n\nexport class BeamProductDetailsPage extends LitElement {\n static tagName = \"beam-product-details-page\";\n\n @property({ type: String, reflect: true }) public baseUrl: TUrl = DEFAULT_BASE_URL;\n\n @property({ type: String, reflect: false }) apiKey?: RequiredConfig[\"apiKey\"];\n\n @property({ type: Number }) storeId?: number;\n\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n\n @property({ type: Boolean }) public debug = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n getProductDetailsPageData = async () => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\"], this)) throw new MissingConfig();\n\n const res = await getProductDetailsPage({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n queryParams: {\n version: \"1.0.0\",\n lang: this.configLang,\n storeId: this.storeId,\n widgetName: WIDGET_NAMES.product_details_page,\n },\n });\n return res;\n };\n\n private productDetailsPageDataController = new AsyncController<typeof this.getProductDetailsPageData>(\n this,\n this.getProductDetailsPageData\n );\n\n async updated(changedProperties: Map<string, unknown>) {\n const requireNewDataProps = [\"storeId\", \"baseUrl\", \"lang\", \"apiKey\"];\n for (const prop of requireNewDataProps) {\n if (changedProperties.has(prop)) {\n await this.productDetailsPageDataController.exec();\n break;\n }\n }\n }\n\n renderWidgetIcon() {\n const imageUrl = this.cssVariables[IMAGE_URL_REMOTE_CONFIG_KEY];\n\n return imageUrl\n ? html`\n <span class=\"icon-container\">\n <img src=${imageUrl} alt=\"Widget Icon\"></img>\n </span>\n `\n : html``;\n }\n\n render() {\n const { data, loading } = this.productDetailsPageDataController;\n if (loading) {\n return html``;\n }\n if (data == null) {\n if (this.debug) {\n return _errorMessage({ error: new Error(\"No data\") });\n }\n return \"\";\n }\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n <div class=\"root\">\n ${this.renderWidgetIcon()}\n <span class=\"info-container\">\n <div class=\"title-block\">\n <h3 class=\"title\">${localizeUserString(this.configLang, data.config?.web?.title)}</h3>\n </div>\n <div class=\"description-block\">\n <span class=\"description\"> ${localizeUserString(this.configLang, data.config?.web?.description)}</span\n >${this.renderDisclosureTooltip()}\n </div>\n </span>\n </div>\n `;\n }\n\n /* PayPal Giving Fund Disclosure */\n renderDisclosureTooltip() {\n const ppgfDisclosure = this.productDetailsPageDataController.data?.ppgfDisclosure;\n return ppgfDisclosure\n ? html`<sl-tooltip class=\"ppgf-disclosure-tooltip\">\n <div class=\"ppgf-disclosure-tooltip-content\" slot=\"content\">${unsafeHTML(ppgfDisclosure.copy)}</div>\n ${this.renderDisclosureTooltipIcon()}\n </sl-tooltip>`\n : html``;\n }\n\n renderDisclosureTooltipIcon() {\n return html`<sl-icon\n library=\"lucide\"\n name=\"info\"\n label=\"ppgf-disclosure-tooltip-icon\"\n class=\"ppgf-disclosure-tooltip-icon\"\n ></sl-icon>`;\n }\n\n renderDisclosureTooltipHyperlink() {\n const ppgfHyperlink = this.productDetailsPageDataController.data?.ppgfDisclosureHyperlink;\n return ppgfHyperlink\n ? html`<a class=\"ppgf-disclosure-hyperlink\" href=\"${ppgfHyperlink.url}\" target=\"_blank\">${ppgfHyperlink.copy}</a>`\n : html``;\n }\n /* End PayPal Giving Fund Disclosure */\n\n public get cssVariables() {\n const defaults = {\n \"--beam-ProductDetailsPage-imageWidth\": \"24px\",\n \"--beam-ProductDetailsPage-imageHeight\": \"24px\",\n \"--beam-ProductDetailsPage-maxWidth\": \"346px\",\n \"--beam-ProductDetailsPage-paddingTop\": \"8px\",\n \"--beam-ProductDetailsPage-paddingRight\": \"12px\",\n \"--beam-ProductDetailsPage-paddingBottom\": \"8px\",\n \"--beam-ProductDetailsPage-paddingLeft\": \"15px\",\n \"--beam-ProductDetailsPage-InfoContainer-marginLeft\": \"8px\",\n \"--beam-ProductDetailsPage-backgroundColor\": \"unset\",\n \"--beam-ProductDetailsPage-TooltipIcon-width\": \"10px\",\n \"--beam-ProductDetailsPage-TooltipIcon-color\": \"inherit\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor\": \"#000000\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingTop\": \"10px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingRight\": \"8px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingBottom\": \"10px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingLeft\": \"8px\",\n \"--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color\": \"#5CA3FF\",\n ...defineCustomText(\"--beam-ProductDetailsPage-title\", {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n }),\n \"--beam-ProductDetailsPage-title-textAlign\": \"left\",\n ...defineCustomText(\"--beam-ProductDetailsPage-description\", {\n marginTop: \"4px\",\n fontSize: \"12px\",\n lineHeight: \"15px\",\n }),\n \"--beam-ProductDetailsPage-description-textAlign\": \"left\",\n ...defineCustomText(\"--beam-ProductDetailsPage-PPGFDisclosureTooltipContent\", {\n fontSize: \"12px\",\n lineHeight: \"16px\",\n color: \"#FFFFFF\",\n }),\n ...defineCustomBorder(\"--beam-ProductDetailsPage\"),\n };\n const remoteConfig = this.productDetailsPageDataController?.data?.config?.web?.theme || {};\n\n const config = { ...defaults, ...remoteConfig };\n\n const serializable = Object.create({\n toCSS() {\n return _cssVariableMap(this as Record<string, string>);\n },\n });\n\n return Object.assign(serializable, config);\n }\n\n static styles = [\n cssReset,\n css`\n :host {\n font-family: var(--beam-fontFamily);\n font-style: var(--beam-fontStyle);\n font-size: var(--beam-fontSize);\n background-color: var(--beam-backgroundColor);\n color: var(--beam-textColor);\n max-width: var(--beam-ProductDetailsPage-maxWidth);\n word-break: normal;\n display: block;\n }\n .root {\n display: flex;\n align-items: center;\n padding-top: var(--beam-ProductDetailsPage-paddingTop);\n padding-right: var(--beam-ProductDetailsPage-paddingRight);\n padding-bottom: var(--beam-ProductDetailsPage-paddingBottom);\n padding-left: var(--beam-ProductDetailsPage-paddingLeft);\n width: 100%;\n background-color: var(--beam-ProductDetailsPage-backgroundColor);\n ${useCustomBorder(\"--beam-ProductDetailsPage\")}\n }\n .icon-container {\n width: var(--beam-ProductDetailsPage-imageWidth);\n height: var(--beam-ProductDetailsPage-imageHeight);\n flex-shrink: 0;\n }\n .icon-container > img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n .info-container {\n margin-left: var(--beam-ProductDetailsPage-InfoContainer-marginLeft);\n }\n .title {\n ${useCustomText(\"--beam-ProductDetailsPage-title\")}\n }\n .title-block {\n text-align: var(--beam-ProductDetailsPage-title-textAlign);\n line-height: var(--beam-ProductDetailsPage-title-lineHeight);\n }\n .description {\n ${useCustomText(\"--beam-ProductDetailsPage-description\")}\n }\n .description-block {\n text-align: var(--beam-ProductDetailsPage-description-textAlign);\n line-height: var(--beam-ProductDetailsPage-description-lineHeight);\n }\n .ppgf-disclosure-tooltip {\n --max-width: 268px;\n }\n .ppgf-disclosure-tooltip::part(body) {\n background-color: var(--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor);\n padding-top: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingTop);\n padding-right: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingRight);\n padding-bottom: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingBottom);\n padding-left: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingLeft);\n }\n .ppgf-disclosure-tooltip::part(base__arrow) {\n background-color: var(--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor);\n }\n .ppgf-disclosure-tooltip-content {\n ${useCustomText(\"--beam-ProductDetailsPage-PPGFDisclosureTooltipContent\")}\n }\n .ppgf-disclosure-tooltip-content > a {\n pointer-events: auto;\n color: var(--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color);\n }\n .ppgf-disclosure-hyperlink:visited {\n color: var(--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color);\n }\n .ppgf-disclosure-tooltip-icon {\n width: var(--beam-ProductDetailsPage-TooltipIcon-width);\n color: var(--beam-ProductDetailsPage-TooltipIcon-color);\n height: auto;\n vertical-align: middle;\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamProductDetailsPage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-product-details-page\": BeamProductDetailsPage;\n }\n}\n"],"names":["defineCustomBorder","namespace","borderRadius","borderStyle","borderColor","borderWidth","prefix","useCustomBorder","unsafeCSS","IMAGE_URL_REMOTE_CONFIG_KEY","BeamProductDetailsPage","LitElement","DEFAULT_BASE_URL","enforceConfig","getProductDetailsPage","makeApiKeyHeader","WIDGET_NAMES","AsyncController","SUPPORTED_LANGUAGES","changedProperties","requireNewDataProps","prop","imageUrl","html","data","loading","_errorMessage","localizeUserString","ppgfDisclosure","unsafeHTML","ppgfHyperlink","defaults","defineCustomText","remoteConfig","config","_cssVariableMap","cssReset","css","useCustomText","__decorateClass","property","defineCustomElement"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import{j as u,f as b,g as d,h as m,y as s,k as D}from"../chunks/lit-qtGbjGnK.esm.js";import{c as h,u as g,d as f,e as v,A as y,_ as x,i as P,a as p,b as C}from"../chunks/localize-fH8KOrMi.esm.js";import{D as $,i as k,S as F}from"../chunks/routes-eEIGOCLH.esm.js";import{makeApiKeyHeader as S}from"../utils/makeApiKeyHeader.js";import"../chunks/vendor-jQ8cxMpw.esm.js";import"../chunks/shoelace-components-yvcqUObE.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.js";const w=(r="",{borderRadius:e="0px",borderStyle:t="unset",borderColor:o="#000000",borderWidth:i="1px"}={})=>{const a=r.startsWith("--beam-")?r:`--beam-${r}`;return{[`${a}-borderRadius`]:e,[`${a}-borderStyle`]:t,[`${a}-borderColor`]:o,[`${a}-borderWidth`]:i}},T=(r="",{borderRadius:e="0px",borderStyle:t="unset",borderColor:o="#000000",borderWidth:i="1px"}={})=>{const a=r.startsWith("--beam-")?r:`--beam-${r}`;return u(` border-radius: var(${a}-borderRadius, ${e});
1
+ import{j as u,f as b,g as d,h as m,y as s,k as D}from"../chunks/lit-qtGbjGnK.esm.js";import{c as h,u as g,d as f,e as v,A as y,_ as x,i as P,a as p,b as C}from"../chunks/localize-fH8KOrMi.esm.js";import{D as $,i as k,W as F,S}from"../chunks/routes-3jKReDai.esm.js";import{makeApiKeyHeader as T}from"../utils/makeApiKeyHeader.js";import"../chunks/vendor-jQ8cxMpw.esm.js";import"../chunks/shoelace-components-paAsUPkU.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.js";const w=(r="",{borderRadius:e="0px",borderStyle:t="unset",borderColor:o="#000000",borderWidth:i="1px"}={})=>{const a=r.startsWith("--beam-")?r:`--beam-${r}`;return{[`${a}-borderRadius`]:e,[`${a}-borderStyle`]:t,[`${a}-borderColor`]:o,[`${a}-borderWidth`]:i}},G=(r="",{borderRadius:e="0px",borderStyle:t="unset",borderColor:o="#000000",borderWidth:i="1px"}={})=>{const a=r.startsWith("--beam-")?r:`--beam-${r}`;return u(` border-radius: var(${a}-borderRadius, ${e});
2
2
  border-style: var(${a}-borderStyle, ${t});
3
3
  border-color: var(${a}-borderColor, ${o});
4
4
  border-width: var(${a}-borderWidth, ${i});
5
- `)};var G=Object.defineProperty,I=Object.getOwnPropertyDescriptor,n=(r,e,t,o)=>{for(var i=o>1?void 0:o?I(e,t):e,a=r.length-1,c;a>=0;a--)(c=r[a])&&(i=(o?c(e,t,i):c(i))||i);return o&&i&&G(e,t,i),i};const W="--beam-ProductDetailsPage-imageUrl";class l extends m{constructor(){super(...arguments),this.baseUrl=$,this.lang="en",this.debug=!1,this.getProductDetailsPageData=async()=>(v(["apiKey","storeId"],this),await k({baseUrl:this.baseUrl,headers:S(this.apiKey),queryParams:{version:"1.0.0",lang:this.configLang,storeId:this.storeId,widgetName:"product-details-page"}})),this.productDetailsPageDataController=new y(this,this.getProductDetailsPageData)}get configLang(){return F[this.lang]||"en"}async updated(e){const t=["storeId","baseUrl","lang","apiKey"];for(const o of t)if(e.has(o)){await this.productDetailsPageDataController.exec();break}}renderWidgetIcon(){const e=this.cssVariables[W];return e?s`
5
+ `)};var I=Object.defineProperty,W=Object.getOwnPropertyDescriptor,n=(r,e,t,o)=>{for(var i=o>1?void 0:o?W(e,t):e,a=r.length-1,c;a>=0;a--)(c=r[a])&&(i=(o?c(e,t,i):c(i))||i);return o&&i&&I(e,t,i),i};const A="--beam-ProductDetailsPage-imageUrl";class l extends m{constructor(){super(...arguments),this.baseUrl=$,this.lang="en",this.debug=!1,this.getProductDetailsPageData=async()=>(v(["apiKey","storeId"],this),await k({baseUrl:this.baseUrl,headers:T(this.apiKey),queryParams:{version:"1.0.0",lang:this.configLang,storeId:this.storeId,widgetName:F.product_details_page}})),this.productDetailsPageDataController=new y(this,this.getProductDetailsPageData)}get configLang(){return S[this.lang]||"en"}async updated(e){const t=["storeId","baseUrl","lang","apiKey"];for(const o of t)if(e.has(o)){await this.productDetailsPageDataController.exec();break}}renderWidgetIcon(){const e=this.cssVariables[A];return e?s`
6
6
  <span class="icon-container">
7
7
  <img src=${e} alt="Widget Icon"></img>
8
8
  </span>
@@ -52,7 +52,7 @@ import{j as u,f as b,g as d,h as m,y as s,k as D}from"../chunks/lit-qtGbjGnK.esm
52
52
  padding-left: var(--beam-ProductDetailsPage-paddingLeft);
53
53
  width: 100%;
54
54
  background-color: var(--beam-ProductDetailsPage-backgroundColor);
55
- ${T("--beam-ProductDetailsPage")}
55
+ ${G("--beam-ProductDetailsPage")}
56
56
  }
57
57
  .icon-container {
58
58
  width: var(--beam-ProductDetailsPage-imageWidth);