@beamimpact/web-sdk 1.52.7 → 1.54.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 (274) hide show
  1. package/dist/chunks/_share-dialog-dependencies-BXp5YnfR.esm.js +2 -0
  2. package/dist/chunks/{_share-dialog-dependencies-CYeOdZWi.esm.js.map → _share-dialog-dependencies-BXp5YnfR.esm.js.map} +1 -1
  3. package/dist/chunks/_share-dialog-dependencies-CwQxKtg2.esm.js +2 -0
  4. package/dist/chunks/{_share-dialog-dependencies-FmC7lLQ6.esm.js.map → _share-dialog-dependencies-CwQxKtg2.esm.js.map} +1 -1
  5. package/dist/chunks/cart-contents-DkoytiZh.esm.js.map +1 -1
  6. package/dist/chunks/{cart-contents-CUgc4y1N.esm.d.ts → cart-contents-oArgpFbi.esm.d.ts} +1 -1
  7. package/dist/chunks/{events-BKkf9u9l.esm.d.ts → events-D7Q2jJgz.esm.d.ts} +19 -4
  8. package/dist/chunks/events-DahlkyxO.esm.js +2 -0
  9. package/dist/chunks/{events-BohmT6Lp.esm.js.map → events-DahlkyxO.esm.js.map} +1 -1
  10. package/dist/chunks/index--NDbk-eE.esm.js +389 -0
  11. package/dist/chunks/index--NDbk-eE.esm.js.map +1 -0
  12. package/dist/chunks/{index-TAxKoTC1.esm.d.ts → index-1Mhh255_.esm.d.ts} +1 -1
  13. package/dist/chunks/{index-ChmhNz41.esm.js → index-B7ij5jz8.esm.js} +2 -2
  14. package/dist/chunks/index-B7ij5jz8.esm.js.map +1 -0
  15. package/dist/chunks/index-Bydn4zMN.esm.js +2 -0
  16. package/dist/chunks/index-Bydn4zMN.esm.js.map +1 -0
  17. package/dist/chunks/{index-Dnm34FcO.esm.d.ts → index-C-TP8NdG.esm.d.ts} +1 -1
  18. package/dist/chunks/{index-DkGjP-Zg.esm.js → index-C2KsnRGC.esm.js} +2 -2
  19. package/dist/chunks/index-C2KsnRGC.esm.js.map +1 -0
  20. package/dist/chunks/{index-DvbUE31b.esm.d.ts → index-CCRz-5hA.esm.d.ts} +1 -1
  21. package/dist/chunks/index-CIey5rKC.esm.js +2 -0
  22. package/dist/chunks/index-CIey5rKC.esm.js.map +1 -0
  23. package/dist/chunks/index-CInpKPId.esm.js +2 -0
  24. package/dist/chunks/index-CInpKPId.esm.js.map +1 -0
  25. package/dist/chunks/{index-CbKkAM6h.esm.d.ts → index-CPVMm4wx.esm.d.ts} +1 -1
  26. package/dist/chunks/index-CeYpLstb.esm.js +2 -0
  27. package/dist/chunks/index-CeYpLstb.esm.js.map +1 -0
  28. package/dist/chunks/{index-BqBEii8E.esm.d.ts → index-CkuCObi0.esm.d.ts} +1 -1
  29. package/dist/chunks/index-Co6Pvowh.esm.js +2 -0
  30. package/dist/chunks/index-Co6Pvowh.esm.js.map +1 -0
  31. package/dist/chunks/{index-ki8pLX6n.esm.d.ts → index-CuzElPMZ.esm.d.ts} +4 -4
  32. package/dist/chunks/index-DDNrz43j.esm.js +389 -0
  33. package/dist/chunks/index-DDNrz43j.esm.js.map +1 -0
  34. package/dist/chunks/index-DqwTVzld.esm.js +2 -0
  35. package/dist/chunks/index-DqwTVzld.esm.js.map +1 -0
  36. package/dist/chunks/index-E5gX8_N2.esm.js +2 -0
  37. package/dist/chunks/index-E5gX8_N2.esm.js.map +1 -0
  38. package/dist/chunks/index-Ls4pNA_r.esm.js +2 -0
  39. package/dist/chunks/index-Ls4pNA_r.esm.js.map +1 -0
  40. package/dist/chunks/index-MKr3f8W9.esm.js +2 -0
  41. package/dist/chunks/index-MKr3f8W9.esm.js.map +1 -0
  42. package/dist/chunks/index-XTzV546k.esm.js +2 -0
  43. package/dist/chunks/index-XTzV546k.esm.js.map +1 -0
  44. package/dist/chunks/index-ewiV_0-t.esm.js +2 -0
  45. package/dist/chunks/index-ewiV_0-t.esm.js.map +1 -0
  46. package/dist/chunks/index-rO_5zds6.esm.js +2 -0
  47. package/dist/chunks/index-rO_5zds6.esm.js.map +1 -0
  48. package/dist/chunks/{openapi-spec-VAt3phhg.esm.d.ts → openapi-spec-x9NbL7bU.esm.d.ts} +860 -199
  49. package/dist/chunks/order-page-CJR7GRgk.esm.js +2 -0
  50. package/dist/chunks/order-page-CJR7GRgk.esm.js.map +1 -0
  51. package/dist/chunks/order-page-CtQ9OX_A.esm.js +2 -0
  52. package/dist/chunks/order-page-CtQ9OX_A.esm.js.map +1 -0
  53. package/dist/chunks/{order-page-Cerye00Q.esm.d.ts → order-page-D_p01zgd.esm.d.ts} +3 -3
  54. package/dist/chunks/{promo-types-C1unMpo2.esm.d.ts → promo-types-Cz_Zkjy1.esm.d.ts} +1 -1
  55. package/dist/chunks/promo-types-DKAOFHJr.esm.js +2 -0
  56. package/dist/chunks/promo-types-DKAOFHJr.esm.js.map +1 -0
  57. package/dist/chunks/routes-Bw7hn3RL.esm.js +2 -0
  58. package/dist/chunks/routes-Bw7hn3RL.esm.js.map +1 -0
  59. package/dist/chunks/{routes-DDRd747e.esm.d.ts → routes-BwRUVGsk.esm.d.ts} +21 -4
  60. package/dist/chunks/routes-Ck-AZVsH.esm.js +2 -0
  61. package/dist/chunks/routes-Ck-AZVsH.esm.js.map +1 -0
  62. package/dist/chunks/{share-button-C2_VjXAY.esm.js → share-button-BopORXeO.esm.js} +2 -2
  63. package/dist/chunks/{share-button-C2_VjXAY.esm.js.map → share-button-BopORXeO.esm.js.map} +1 -1
  64. package/dist/chunks/{share-button-BXEwUmT4.esm.js → share-button-BupVxILq.esm.js} +2 -2
  65. package/dist/chunks/{share-button-CLpGIG3j.esm.js.map → share-button-BupVxILq.esm.js.map} +1 -1
  66. package/dist/chunks/{share-button-DVQotZGR.esm.js → share-button-G4zNdeOS.esm.js} +2 -2
  67. package/dist/chunks/{share-button-DVQotZGR.esm.js.map → share-button-G4zNdeOS.esm.js.map} +1 -1
  68. package/dist/chunks/{share-button-CLpGIG3j.esm.js → share-button-gAbnieb4.esm.js} +2 -2
  69. package/dist/chunks/{share-button-BXEwUmT4.esm.js.map → share-button-gAbnieb4.esm.js.map} +1 -1
  70. package/dist/chunks/update-cart-CmyZ_Qmv.esm.js +2 -0
  71. package/dist/chunks/{update-cart-BpiNvvDT.esm.js.map → update-cart-CmyZ_Qmv.esm.js.map} +1 -1
  72. package/dist/chunks/update-cart-DhgjSmWJ.esm.js +2 -0
  73. package/dist/chunks/{update-cart-DIJcb6w0.esm.js.map → update-cart-DhgjSmWJ.esm.js.map} +1 -1
  74. package/dist/chunks/{update-cart-NiToHHJH.esm.d.ts → update-cart-Dp0v0m4d.esm.d.ts} +1 -1
  75. package/dist/components/community-impact.esm.js +1 -1
  76. package/dist/components/community-impact.esm.js.map +1 -1
  77. package/dist/components/community-impact.js +1 -1
  78. package/dist/components/community-impact.js.map +1 -1
  79. package/dist/components/cumulative-impact.esm.js +1 -1
  80. package/dist/components/cumulative-impact.esm.js.map +1 -1
  81. package/dist/components/cumulative-impact.js +1 -1
  82. package/dist/components/cumulative-impact.js.map +1 -1
  83. package/dist/components/impact-overview.d.ts +3 -0
  84. package/dist/components/impact-overview.esm.js +35 -35
  85. package/dist/components/impact-overview.esm.js.map +1 -1
  86. package/dist/components/impact-overview.js +35 -35
  87. package/dist/components/impact-overview.js.map +1 -1
  88. package/dist/components/index.d.ts +3 -3
  89. package/dist/components/index.esm.js +1 -1
  90. package/dist/components/index.js +1 -1
  91. package/dist/components/post-purchase.d.ts +11 -89
  92. package/dist/components/post-purchase.esm.js +3 -2
  93. package/dist/components/post-purchase.esm.js.map +1 -1
  94. package/dist/components/post-purchase.js +3 -2
  95. package/dist/components/post-purchase.js.map +1 -1
  96. package/dist/components/product-details-page.d.ts +2 -2
  97. package/dist/components/product-details-page.esm.js +7 -7
  98. package/dist/components/product-details-page.esm.js.map +1 -1
  99. package/dist/components/product-details-page.js +7 -7
  100. package/dist/components/product-details-page.js.map +1 -1
  101. package/dist/components/redeem-transaction.d.ts +3 -3
  102. package/dist/components/redeem-transaction.esm.js +1 -388
  103. package/dist/components/redeem-transaction.esm.js.map +1 -1
  104. package/dist/components/redeem-transaction.js +1 -388
  105. package/dist/components/redeem-transaction.js.map +1 -1
  106. package/dist/components/select-nonprofit.d.ts +4 -3
  107. package/dist/components/select-nonprofit.esm.js +22 -22
  108. package/dist/components/select-nonprofit.esm.js.map +1 -1
  109. package/dist/components/select-nonprofit.js +22 -22
  110. package/dist/components/select-nonprofit.js.map +1 -1
  111. package/dist/components/select-subscription-nonprofit.d.ts +1 -1
  112. package/dist/components/select-subscription-nonprofit.esm.js +16 -16
  113. package/dist/components/select-subscription-nonprofit.esm.js.map +1 -1
  114. package/dist/components/select-subscription-nonprofit.js +16 -16
  115. package/dist/components/select-subscription-nonprofit.js.map +1 -1
  116. package/dist/components/shopify.d.ts +7 -7
  117. package/dist/components/shopify.esm.js +1 -1
  118. package/dist/components/shopify.esm.js.map +1 -1
  119. package/dist/components/shopify.js +1 -1
  120. package/dist/components/shopify.js.map +1 -1
  121. package/dist/components/social-share.esm.js +1 -1
  122. package/dist/components/social-share.esm.js.map +1 -1
  123. package/dist/components/social-share.js +1 -1
  124. package/dist/components/social-share.js.map +1 -1
  125. package/dist/components/subscription-impact.d.ts +4 -1
  126. package/dist/components/subscription-impact.esm.js +14 -14
  127. package/dist/components/subscription-impact.esm.js.map +1 -1
  128. package/dist/components/subscription-impact.js +14 -14
  129. package/dist/components/subscription-impact.js.map +1 -1
  130. package/dist/components/subscription-management.d.ts +17 -4
  131. package/dist/components/subscription-management.esm.js +18 -18
  132. package/dist/components/subscription-management.esm.js.map +1 -1
  133. package/dist/components/subscription-management.js +18 -18
  134. package/dist/components/subscription-management.js.map +1 -1
  135. package/dist/index.d.ts +13 -13
  136. package/dist/index.esm.js +1 -1
  137. package/dist/index.js +1 -1
  138. package/dist/integrations/beam.esm.js +1 -1
  139. package/dist/integrations/beam.esm.js.map +1 -1
  140. package/dist/integrations/beam.js +1 -1
  141. package/dist/integrations/beam.js.map +1 -1
  142. package/dist/integrations/cart.d.ts +3 -3
  143. package/dist/integrations/cart.esm.js +1 -1
  144. package/dist/integrations/cart.js +1 -1
  145. package/dist/integrations/index.d.ts +11 -11
  146. package/dist/integrations/index.esm.js +1 -1
  147. package/dist/integrations/index.js +1 -1
  148. package/dist/integrations/logs.d.ts +2 -2
  149. package/dist/integrations/logs.esm.js +1 -1
  150. package/dist/integrations/logs.js +1 -1
  151. package/dist/integrations/promoManager.esm.js +1 -1
  152. package/dist/integrations/promoManager.esm.js.map +1 -1
  153. package/dist/integrations/promoManager.js +1 -1
  154. package/dist/integrations/promoManager.js.map +1 -1
  155. package/dist/integrations/shopify.d.ts +5 -5
  156. package/dist/integrations/shopify.esm.js +1 -1
  157. package/dist/integrations/shopify.js +1 -1
  158. package/dist/integrations/statsig.esm.js +1 -1
  159. package/dist/integrations/statsig.esm.js.map +1 -1
  160. package/dist/integrations/statsig.js +1 -1
  161. package/dist/integrations/statsig.js.map +1 -1
  162. package/dist/integrations/utils.d.ts +4 -4
  163. package/dist/integrations/utils.esm.js +1 -1
  164. package/dist/integrations/utils.js +1 -1
  165. package/dist/react/community-impact.esm.js +1 -1
  166. package/dist/react/community-impact.esm.js.map +1 -1
  167. package/dist/react/community-impact.js +1 -1
  168. package/dist/react/community-impact.js.map +1 -1
  169. package/dist/react/cumulative-impact.esm.js +1 -1
  170. package/dist/react/cumulative-impact.esm.js.map +1 -1
  171. package/dist/react/cumulative-impact.js +1 -1
  172. package/dist/react/cumulative-impact.js.map +1 -1
  173. package/dist/react/impact-overview.esm.js +1 -1
  174. package/dist/react/impact-overview.esm.js.map +1 -1
  175. package/dist/react/impact-overview.js +1 -1
  176. package/dist/react/impact-overview.js.map +1 -1
  177. package/dist/react/index.d.ts +5 -5
  178. package/dist/react/index.esm.js +1 -1
  179. package/dist/react/index.js +1 -1
  180. package/dist/react/post-purchase.d.ts +2 -2
  181. package/dist/react/post-purchase.esm.js +1 -1
  182. package/dist/react/post-purchase.esm.js.map +1 -1
  183. package/dist/react/post-purchase.js +1 -1
  184. package/dist/react/post-purchase.js.map +1 -1
  185. package/dist/react/product-details-page.d.ts +1 -1
  186. package/dist/react/product-details-page.esm.js +1 -1
  187. package/dist/react/product-details-page.esm.js.map +1 -1
  188. package/dist/react/product-details-page.js +1 -1
  189. package/dist/react/product-details-page.js.map +1 -1
  190. package/dist/react/redeem-transaction.d.ts +4 -4
  191. package/dist/react/redeem-transaction.esm.js +1 -1
  192. package/dist/react/redeem-transaction.esm.js.map +1 -1
  193. package/dist/react/redeem-transaction.js +1 -1
  194. package/dist/react/redeem-transaction.js.map +1 -1
  195. package/dist/react/select-nonprofit.d.ts +4 -4
  196. package/dist/react/select-nonprofit.esm.js +1 -1
  197. package/dist/react/select-nonprofit.esm.js.map +1 -1
  198. package/dist/react/select-nonprofit.js +1 -1
  199. package/dist/react/select-nonprofit.js.map +1 -1
  200. package/dist/react/select-subscription-nonprofit.d.ts +4 -4
  201. package/dist/react/select-subscription-nonprofit.esm.js +1 -1
  202. package/dist/react/select-subscription-nonprofit.esm.js.map +1 -1
  203. package/dist/react/select-subscription-nonprofit.js +1 -1
  204. package/dist/react/select-subscription-nonprofit.js.map +1 -1
  205. package/dist/react/social-share.esm.js +1 -1
  206. package/dist/react/social-share.esm.js.map +1 -1
  207. package/dist/react/social-share.js +1 -1
  208. package/dist/react/social-share.js.map +1 -1
  209. package/dist/react/subscription-impact.esm.js +1 -1
  210. package/dist/react/subscription-impact.esm.js.map +1 -1
  211. package/dist/react/subscription-impact.js +1 -1
  212. package/dist/react/subscription-impact.js.map +1 -1
  213. package/dist/react/subscription-management.d.ts +3 -3
  214. package/dist/react/subscription-management.esm.js +1 -1
  215. package/dist/react/subscription-management.esm.js.map +1 -1
  216. package/dist/react/subscription-management.js +1 -1
  217. package/dist/react/subscription-management.js.map +1 -1
  218. package/dist/utils/events.d.ts +4 -4
  219. package/dist/utils/events.esm.js +1 -1
  220. package/dist/utils/events.js +1 -1
  221. package/dist/utils/index.d.ts +4 -4
  222. package/dist/utils/index.esm.js +1 -1
  223. package/dist/utils/index.js +1 -1
  224. package/dist/utils/network-listeners.esm.js +1 -1
  225. package/dist/utils/network-listeners.js +1 -1
  226. package/dist/utils/promoManager.d.ts +3 -3
  227. package/dist/utils/promoManager.esm.js +1 -1
  228. package/dist/utils/promoManager.esm.js.map +1 -1
  229. package/dist/utils/promoManager.js +1 -1
  230. package/dist/utils/promoManager.js.map +1 -1
  231. package/package.json +2 -2
  232. package/dist/chunks/_share-dialog-dependencies-CYeOdZWi.esm.js +0 -2
  233. package/dist/chunks/_share-dialog-dependencies-FmC7lLQ6.esm.js +0 -2
  234. package/dist/chunks/events-BohmT6Lp.esm.js +0 -2
  235. package/dist/chunks/index-9s_WWt_5.esm.js +0 -2
  236. package/dist/chunks/index-9s_WWt_5.esm.js.map +0 -1
  237. package/dist/chunks/index-AEnQH-so.esm.js +0 -2
  238. package/dist/chunks/index-AEnQH-so.esm.js.map +0 -1
  239. package/dist/chunks/index-B-4isAGW.esm.js +0 -2
  240. package/dist/chunks/index-B-4isAGW.esm.js.map +0 -1
  241. package/dist/chunks/index-Bp28pZSn.esm.js +0 -2
  242. package/dist/chunks/index-Bp28pZSn.esm.js.map +0 -1
  243. package/dist/chunks/index-CFtmDAHb.esm.js +0 -2
  244. package/dist/chunks/index-CFtmDAHb.esm.js.map +0 -1
  245. package/dist/chunks/index-CL7fWjz1.esm.js +0 -2
  246. package/dist/chunks/index-CL7fWjz1.esm.js.map +0 -1
  247. package/dist/chunks/index-CfgpHhN1.esm.js +0 -2
  248. package/dist/chunks/index-CfgpHhN1.esm.js.map +0 -1
  249. package/dist/chunks/index-ChmhNz41.esm.js.map +0 -1
  250. package/dist/chunks/index-CtYbieoH.esm.js +0 -2
  251. package/dist/chunks/index-CtYbieoH.esm.js.map +0 -1
  252. package/dist/chunks/index-DhhPQ773.esm.js +0 -2
  253. package/dist/chunks/index-DhhPQ773.esm.js.map +0 -1
  254. package/dist/chunks/index-DkGjP-Zg.esm.js.map +0 -1
  255. package/dist/chunks/index-DrOeOk1M.esm.js +0 -2
  256. package/dist/chunks/index-DrOeOk1M.esm.js.map +0 -1
  257. package/dist/chunks/index-DtfQd6C4.esm.js +0 -2
  258. package/dist/chunks/index-DtfQd6C4.esm.js.map +0 -1
  259. package/dist/chunks/index-oGObXjk6.esm.js +0 -2
  260. package/dist/chunks/index-oGObXjk6.esm.js.map +0 -1
  261. package/dist/chunks/order-page-BPm0hcsC.esm.js +0 -2
  262. package/dist/chunks/order-page-BPm0hcsC.esm.js.map +0 -1
  263. package/dist/chunks/order-page-DFtCsDYa.esm.js +0 -2
  264. package/dist/chunks/order-page-DFtCsDYa.esm.js.map +0 -1
  265. package/dist/chunks/promoManager-B9cTR1R3.esm.js +0 -2
  266. package/dist/chunks/promoManager-B9cTR1R3.esm.js.map +0 -1
  267. package/dist/chunks/promoManager-fl54hq13.esm.js +0 -2
  268. package/dist/chunks/promoManager-fl54hq13.esm.js.map +0 -1
  269. package/dist/chunks/routes-Dl-QWRUP.esm.js +0 -2
  270. package/dist/chunks/routes-Dl-QWRUP.esm.js.map +0 -1
  271. package/dist/chunks/routes-VlLXqb7P.esm.js +0 -2
  272. package/dist/chunks/routes-VlLXqb7P.esm.js.map +0 -1
  273. package/dist/chunks/update-cart-BpiNvvDT.esm.js +0 -2
  274. package/dist/chunks/update-cart-DIJcb6w0.esm.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"social-share.esm.js","sources":["../../src/components/social-share/index.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport \"@shoelace-style/shoelace/dist/components/icon/icon.js\";\nimport \"../../shared/components/_share-dialog-dependencies\";\nimport \"../../shared/components/progress-bar\";\nimport \"../beam-partner-logos\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { TNumericId } from \"../../shared/types\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { strings } from \"../../shared/components/strings/share-button\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { urlToFile } from \"../../shared/files\";\nimport { postSocialShareAnalyticsEvent } from \"../../api-sdk/v2/users/events\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: TNumericId;\n nonprofitId: TNumericId;\n};\n\nexport class BeamSocialShare extends LitElement {\n static tagName = \"beam-social-share\";\n\n @property({ type: String }) public apiKey?: RequiredConfig[\"apiKey\"];\n @property({ type: Number }) storeId?: RequiredConfig[\"storeId\"];\n @property({ type: Number }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n @property({ type: String }) public baseUrl = DEFAULT_BASE_URL;\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n @property({ type: Boolean }) public debug = false;\n @property({ type: String }) transactionId?: string;\n\n @state() private brandName: string | null = null;\n @state() private shareImageUrl: string | null = null;\n @state() private dataUrl?: string;\n @state() private file?: File;\n @state() private isMobile = false;\n @state() private windowResized = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.checkViewport);\n this.checkViewport();\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.checkViewport);\n super.disconnectedCallback();\n }\n\n checkViewport = () => {\n this.windowResized = window.innerWidth <= 768;\n };\n\n private async fetchImpactData() {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\", \"nonprofitId\"], this)) {\n throw new MissingConfig();\n }\n try {\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: { authorization: `Api-Key ${this.apiKey}` },\n queryParams: {\n storeId: this.storeId,\n personalImpactLimit: 0,\n nonprofitId: this.nonprofitId,\n widgetName: WIDGET_NAMES.community_impact,\n version: \"1.0.0\",\n lang: this.configLang,\n transactionId: this.transactionId ?? undefined,\n },\n });\n return res;\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to fetch impact data\", error);\n }\n throw error;\n }\n }\n\n // Updates component state with fetched impact data\n private async updateImpactData() {\n try {\n const data = await this.fetchImpactData();\n if (data) {\n this.brandName = data.chain.name;\n this.shareImageUrl = data.promoAssetUrl || data.personalImpactAssetUrl || data.community[0].share.imageUrl;\n\n if (this.shareImageUrl) {\n const file = await urlToFile(this.shareImageUrl);\n this.file = file;\n this.dataUrl = URL.createObjectURL(file);\n }\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Error updating impact data:\", error);\n }\n }\n }\n\n async firstUpdated() {\n await this.updateImpactData();\n this.isMobile =\n /Mobi|Android/i.test(navigator.userAgent) || \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n }\n\n private async openSystemShareSheet(imageUrl: string) {\n if (!imageUrl) return;\n\n try {\n const file = await urlToFile(imageUrl);\n if (navigator.share && this.brandName) {\n await navigator.share({\n files: [file],\n title: strings[this.lang].impactShareTitle(),\n text: strings[this.lang].impactShareText({ brandName: this.brandName }),\n });\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to open share sheet\", error);\n }\n }\n }\n\n private async handleClickCopy() {\n if (this.file) {\n try {\n if (this.apiKey && this.transactionId) {\n void postSocialShareAnalyticsEvent({\n baseUrl: this.baseUrl,\n apiKey: this.apiKey || \"\",\n requestBody: {\n eventName: \"ExtensibilityCopyImageButtonClick\",\n nonprofitId: this.nonprofitId,\n storeId: this.storeId,\n timestamp: Date.now(),\n transactionId: Number(this.transactionId),\n },\n }).catch(() => null);\n } else {\n console.error(\"Missing data for social share analytics. Skipping send\");\n }\n await navigator.clipboard.write([new ClipboardItem({ \"image/png\": this.file })]);\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to copy image to clipboard:\", error);\n }\n }\n }\n }\n\n private handleClickDownload(event: Event) {\n if (this.apiKey && this.transactionId) {\n void postSocialShareAnalyticsEvent({\n baseUrl: this.baseUrl,\n apiKey: this.apiKey || \"\",\n requestBody: {\n eventName: \"ExtensibilityDownloadImageButtonClick\",\n nonprofitId: this.nonprofitId,\n storeId: this.storeId,\n timestamp: Date.now(),\n transactionId: Number(this.transactionId),\n },\n }).catch(() => null);\n } else {\n console.error(\"Missing data for social share analytics. Skipping send\");\n }\n const target = event.currentTarget as HTMLAnchorElement;\n if (this.isMobile && this.shareImageUrl) {\n event.preventDefault();\n this.openSystemShareSheet(this.shareImageUrl);\n } else if (this.dataUrl) {\n target.href = this.dataUrl;\n target.download = strings[this.lang].impactShareTitle();\n }\n }\n\n render() {\n if (!this.brandName || !this.shareImageUrl || !this.dataUrl) {\n return _loading();\n }\n\n return html`\n <div class=\"share-container ${this.windowResized || this.isMobile ? \"mobile\" : \"desktop\"}\">\n <h2 class=\"share-title\">${strings[this.lang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.lang].impactShareText({ brandName: this.brandName })}</p>\n <img src=\"${this.shareImageUrl}\" alt=\"${strings[this.lang].impactShareTitle()}\" class=\"share-image\" />\n <div class=\"share-actions\">\n <button class=\"plain-button button share-action-button\" @click=\"${this.handleClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.lang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareCopy()}</div>\n </button>\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.lang].impactShareTitle()}\"\n href=\"${this.dataUrl}\"\n @click=\"${this.handleClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.lang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n `;\n }\n\n static styles = [\n cssReset,\n css`\n @font-face {\n font-family: \"Mabry-Bold\";\n src: url(\"../../../assets/fonts/mabry-bold.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n @font-face {\n font-family: \"Mabry-Medium\";\n src: url(\"../../../assets/fonts/mabry-medium.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n :host {\n align-items: center;\n justify-content: center;\n display: flex;\n box-sizing: border-box;\n width: 100%;\n }\n\n .share-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 700px;\n text-align: center;\n }\n\n .share-container.mobile {\n padding: 1rem;\n max-width: 100%;\n }\n\n .share-title {\n font-family: \"Mabry-Bold\", sans-serif;\n font-size: 2.5rem;\n font-weight: bold;\n word-break: break-word;\n margin: 10px 0;\n }\n\n .share-title.mobile {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1.25rem;\n line-height: 1.4;\n word-break: break-word;\n margin: 10px 0;\n max-width: 500px;\n }\n\n .share-text.mobile {\n font-size: 1rem;\n }\n\n .share-image {\n border-radius: 8px;\n width: 100%;\n max-width: 300px;\n height: auto;\n display: block;\n margin: 20px auto;\n }\n\n .share-actions {\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 10px;\n align-items: center;\n margin: 20px 0;\n }\n\n .share-actions.mobile {\n flex-direction: column;\n }\n\n .share-action-button {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 10px 20px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #fff;\n text-decoration: none;\n color: #333;\n cursor: pointer;\n transition: background-color 0.3s, border-color 0.3s;\n }\n\n .share-action-button:hover {\n background-color: #f0f0f0;\n border-color: #bbb;\n }\n\n .share-action-icon {\n font-size: 1.25rem;\n margin-right: 8px;\n }\n\n .share-action-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1rem;\n line-height: 1.4;\n margin-top: 5px;\n }\n\n @media (max-width: 600px) {\n .share-title {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-size: 1rem;\n }\n\n .share-image {\n max-width: 240px;\n }\n\n .share-actions {\n flex-direction: row;\n width: 50%;\n margin: 10px 0;\n }\n\n .share-action-button {\n width: 100%;\n margin: 5px 0;\n }\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamSocialShare);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-social-share\": BeamSocialShare;\n }\n}\n"],"names":["m","i","s","t","e","r","d","BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","file","urlToFile","imageUrl","strings","postSocialShareAnalyticsEvent","event","target","_loading","html","cssReset","css","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
1
+ {"version":3,"file":"social-share.esm.js","sources":["../../src/components/social-share/index.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport \"@shoelace-style/shoelace/dist/components/icon/icon.js\";\nimport \"../../shared/components/_share-dialog-dependencies\";\nimport \"../../shared/components/progress-bar\";\nimport \"../beam-partner-logos\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { TNumericId } from \"../../shared/types\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { strings } from \"../../shared/components/strings/share-button\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { urlToFile } from \"../../shared/files\";\nimport { postSocialShareAnalyticsEvent } from \"../../api-sdk/v2/users/events\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: TNumericId;\n nonprofitId: TNumericId;\n};\n\nexport class BeamSocialShare extends LitElement {\n static tagName = \"beam-social-share\";\n\n @property({ type: String }) public apiKey?: RequiredConfig[\"apiKey\"];\n @property({ type: Number }) storeId?: RequiredConfig[\"storeId\"];\n @property({ type: Number }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n @property({ type: String }) public baseUrl = DEFAULT_BASE_URL;\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n @property({ type: Boolean }) public debug = false;\n @property({ type: String }) transactionId?: string;\n\n @state() private brandName: string | null = null;\n @state() private shareImageUrl: string | null = null;\n @state() private dataUrl?: string;\n @state() private file?: File;\n @state() private isMobile = false;\n @state() private windowResized = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.checkViewport);\n this.checkViewport();\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.checkViewport);\n super.disconnectedCallback();\n }\n\n checkViewport = () => {\n this.windowResized = window.innerWidth <= 768;\n };\n\n private async fetchImpactData() {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\", \"nonprofitId\"], this)) {\n throw new MissingConfig();\n }\n try {\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: { authorization: `Api-Key ${this.apiKey}` },\n queryParams: {\n storeId: this.storeId,\n personalImpactLimit: 0,\n nonprofitId: this.nonprofitId,\n widgetName: WIDGET_NAMES.community_impact,\n version: \"1.0.0\",\n lang: this.configLang,\n transactionId: this.transactionId ?? undefined,\n },\n });\n return res;\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to fetch impact data\", error);\n }\n throw error;\n }\n }\n\n // Updates component state with fetched impact data\n private async updateImpactData() {\n try {\n const data = await this.fetchImpactData();\n if (data) {\n this.brandName = data.chain.name;\n this.shareImageUrl = data.promoAssetUrl || data.personalImpactAssetUrl || data.community[0].share.imageUrl;\n\n if (this.shareImageUrl) {\n const file = await urlToFile(this.shareImageUrl);\n this.file = file;\n this.dataUrl = URL.createObjectURL(file);\n }\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Error updating impact data:\", error);\n }\n }\n }\n\n async firstUpdated() {\n await this.updateImpactData();\n this.isMobile =\n /Mobi|Android/i.test(navigator.userAgent) || \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n }\n\n private async openSystemShareSheet(imageUrl: string) {\n if (!imageUrl) return;\n\n try {\n const file = await urlToFile(imageUrl);\n if (navigator.share && this.brandName) {\n await navigator.share({\n files: [file],\n title: strings[this.lang].impactShareTitle(),\n text: strings[this.lang].impactShareText({ brandName: this.brandName }),\n });\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to open share sheet\", error);\n }\n }\n }\n\n private async handleClickCopy() {\n if (this.file) {\n try {\n if (this.apiKey && this.transactionId) {\n void postSocialShareAnalyticsEvent({\n baseUrl: this.baseUrl,\n apiKey: this.apiKey || \"\",\n requestBody: {\n eventName: \"ExtensibilityCopyImageButtonClick\",\n nonprofitId: this.nonprofitId,\n storeId: this.storeId,\n timestamp: Date.now(),\n transactionId: Number(this.transactionId),\n },\n }).catch(() => null);\n } else {\n console.error(\"Missing data for social share analytics. Skipping send\");\n }\n await navigator.clipboard.write([new ClipboardItem({ \"image/png\": this.file })]);\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to copy image to clipboard:\", error);\n }\n }\n }\n }\n\n private handleClickDownload(event: Event) {\n if (this.apiKey && this.transactionId) {\n void postSocialShareAnalyticsEvent({\n baseUrl: this.baseUrl,\n apiKey: this.apiKey || \"\",\n requestBody: {\n eventName: \"ExtensibilityDownloadImageButtonClick\",\n nonprofitId: this.nonprofitId,\n storeId: this.storeId,\n timestamp: Date.now(),\n transactionId: Number(this.transactionId),\n },\n }).catch(() => null);\n } else {\n console.error(\"Missing data for social share analytics. Skipping send\");\n }\n const target = event.currentTarget as HTMLAnchorElement;\n if (this.isMobile && this.shareImageUrl) {\n event.preventDefault();\n this.openSystemShareSheet(this.shareImageUrl);\n } else if (this.dataUrl) {\n target.href = this.dataUrl;\n target.download = strings[this.lang].impactShareTitle();\n }\n }\n\n render() {\n if (!this.brandName || !this.shareImageUrl || !this.dataUrl) {\n return _loading();\n }\n\n return html`\n <div class=\"share-container ${this.windowResized || this.isMobile ? \"mobile\" : \"desktop\"}\">\n <h2 class=\"share-title\">${strings[this.lang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.lang].impactShareText({ brandName: this.brandName })}</p>\n <img src=\"${this.shareImageUrl}\" alt=\"${strings[this.lang].impactShareTitle()}\" class=\"share-image\" />\n <div class=\"share-actions\">\n <button class=\"plain-button button share-action-button\" @click=\"${this.handleClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.lang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareCopy()}</div>\n </button>\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.lang].impactShareTitle()}\"\n href=\"${this.dataUrl}\"\n @click=\"${this.handleClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.lang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n `;\n }\n\n static styles = [\n cssReset,\n css`\n @font-face {\n font-family: \"Mabry-Bold\";\n src: url(\"../../../assets/fonts/mabry-bold.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n @font-face {\n font-family: \"Mabry-Medium\";\n src: url(\"../../../assets/fonts/mabry-medium.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n :host {\n align-items: center;\n justify-content: center;\n display: flex;\n box-sizing: border-box;\n width: 100%;\n }\n\n .share-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 700px;\n text-align: center;\n }\n\n .share-container.mobile {\n padding: 1rem;\n max-width: 100%;\n }\n\n .share-title {\n font-family: \"Mabry-Bold\", sans-serif;\n font-size: 2.5rem;\n font-weight: bold;\n word-break: break-word;\n margin: 10px 0;\n }\n\n .share-title.mobile {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1.25rem;\n line-height: 1.4;\n word-break: break-word;\n margin: 10px 0;\n max-width: 500px;\n }\n\n .share-text.mobile {\n font-size: 1rem;\n }\n\n .share-image {\n border-radius: 8px;\n width: 100%;\n max-width: 300px;\n height: auto;\n display: block;\n margin: 20px auto;\n }\n\n .share-actions {\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 10px;\n align-items: center;\n margin: 20px 0;\n }\n\n .share-actions.mobile {\n flex-direction: column;\n }\n\n .share-action-button {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 10px 20px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #fff;\n text-decoration: none;\n color: #333;\n cursor: pointer;\n transition: background-color 0.3s, border-color 0.3s;\n }\n\n .share-action-button:hover {\n background-color: #f0f0f0;\n border-color: #bbb;\n }\n\n .share-action-icon {\n font-size: 1.25rem;\n margin-right: 8px;\n }\n\n .share-action-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1rem;\n line-height: 1.4;\n margin-top: 5px;\n }\n\n @media (max-width: 600px) {\n .share-title {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-size: 1rem;\n }\n\n .share-image {\n max-width: 240px;\n }\n\n .share-actions {\n flex-direction: row;\n width: 50%;\n margin: 10px 0;\n }\n\n .share-action-button {\n width: 100%;\n margin: 5px 0;\n }\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamSocialShare);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-social-share\": BeamSocialShare;\n }\n}\n"],"names":["m","i","s","t","e","r","d","BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","file","urlToFile","imageUrl","strings","postSocialShareAnalyticsEvent","event","target","_loading","html","cssReset","css","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{f as m,g as o,t as n,h as g,y as f}from"../chunks/lit-WqMxC_PA.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/_share-dialog-dependencies-FmC7lLQ6.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"./beam-partner-logos.js";import{c as b,d as y,e as u}from"../chunks/enforce-config-Ba1JkOHs.esm.js";import{D as w,S as x,g as I,W as U}from"../chunks/routes-VlLXqb7P.esm.js";import{_ as S}from"../chunks/loading-template-DG4lkIIc.esm.js";import{u as d,s as r,p}from"../chunks/share-button-C2_VjXAY.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";var k=Object.defineProperty,a=(l,t,i,v)=>{for(var s=void 0,c=l.length-1,h;c>=0;c--)(h=l[c])&&(s=h(t,i,s)||s);return s&&k(t,i,s),s};class e extends g{constructor(){super(...arguments),this.baseUrl=w,this.lang="en",this.debug=!1,this.brandName=null,this.shareImageUrl=null,this.isMobile=!1,this.windowResized=!1,this.checkViewport=()=>{this.windowResized=window.innerWidth<=768}}get configLang(){return x[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.checkViewport),this.checkViewport()}disconnectedCallback(){window.removeEventListener("resize",this.checkViewport),super.disconnectedCallback()}async fetchImpactData(){u(["apiKey","storeId","nonprofitId"],this);try{return await I({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{storeId:this.storeId,personalImpactLimit:0,nonprofitId:this.nonprofitId,widgetName:U.community_impact,version:"1.0.0",lang:this.configLang,transactionId:this.transactionId??void 0}})}catch(t){throw this.debug&&console.error("Failed to fetch impact data",t),t}}async updateImpactData(){try{const t=await this.fetchImpactData();if(t&&(this.brandName=t.chain.name,this.shareImageUrl=t.promoAssetUrl||t.personalImpactAssetUrl||t.community[0].share.imageUrl,this.shareImageUrl)){const i=await d(this.shareImageUrl);this.file=i,this.dataUrl=URL.createObjectURL(i)}}catch(t){this.debug&&console.error("Error updating impact data:",t)}}async firstUpdated(){await this.updateImpactData(),this.isMobile=/Mobi|Android/i.test(navigator.userAgent)||"ontouchstart"in window||navigator.maxTouchPoints>0}async openSystemShareSheet(t){if(t)try{const i=await d(t);navigator.share&&this.brandName&&await navigator.share({files:[i],title:r[this.lang].impactShareTitle(),text:r[this.lang].impactShareText({brandName:this.brandName})})}catch(i){this.debug&&console.error("Failed to open share sheet",i)}}async handleClickCopy(){if(this.file)try{this.apiKey&&this.transactionId?p({baseUrl:this.baseUrl,apiKey:this.apiKey||"",requestBody:{eventName:"ExtensibilityCopyImageButtonClick",nonprofitId:this.nonprofitId,storeId:this.storeId,timestamp:Date.now(),transactionId:Number(this.transactionId)}}).catch(()=>null):console.error("Missing data for social share analytics. Skipping send"),await navigator.clipboard.write([new ClipboardItem({"image/png":this.file})])}catch(t){this.debug&&console.error("Failed to copy image to clipboard:",t)}}handleClickDownload(t){this.apiKey&&this.transactionId?p({baseUrl:this.baseUrl,apiKey:this.apiKey||"",requestBody:{eventName:"ExtensibilityDownloadImageButtonClick",nonprofitId:this.nonprofitId,storeId:this.storeId,timestamp:Date.now(),transactionId:Number(this.transactionId)}}).catch(()=>null):console.error("Missing data for social share analytics. Skipping send");const i=t.currentTarget;this.isMobile&&this.shareImageUrl?(t.preventDefault(),this.openSystemShareSheet(this.shareImageUrl)):this.dataUrl&&(i.href=this.dataUrl,i.download=r[this.lang].impactShareTitle())}render(){return!this.brandName||!this.shareImageUrl||!this.dataUrl?S():f`
1
+ import{f as m,g as o,t as n,h as g,y as f}from"../chunks/lit-WqMxC_PA.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/_share-dialog-dependencies-BXp5YnfR.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"./beam-partner-logos.js";import{c as b,d as y,e as u}from"../chunks/enforce-config-Ba1JkOHs.esm.js";import{D as w,S as x,g as I,W as U}from"../chunks/routes-Bw7hn3RL.esm.js";import{_ as S}from"../chunks/loading-template-DG4lkIIc.esm.js";import{u as d,s as r,p}from"../chunks/share-button-G4zNdeOS.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/promo-types-DKAOFHJr.esm.js";var k=Object.defineProperty,a=(l,t,i,v)=>{for(var s=void 0,c=l.length-1,h;c>=0;c--)(h=l[c])&&(s=h(t,i,s)||s);return s&&k(t,i,s),s};class e extends g{constructor(){super(...arguments),this.baseUrl=w,this.lang="en",this.debug=!1,this.brandName=null,this.shareImageUrl=null,this.isMobile=!1,this.windowResized=!1,this.checkViewport=()=>{this.windowResized=window.innerWidth<=768}}get configLang(){return x[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.checkViewport),this.checkViewport()}disconnectedCallback(){window.removeEventListener("resize",this.checkViewport),super.disconnectedCallback()}async fetchImpactData(){u(["apiKey","storeId","nonprofitId"],this);try{return await I({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{storeId:this.storeId,personalImpactLimit:0,nonprofitId:this.nonprofitId,widgetName:U.community_impact,version:"1.0.0",lang:this.configLang,transactionId:this.transactionId??void 0}})}catch(t){throw this.debug&&console.error("Failed to fetch impact data",t),t}}async updateImpactData(){try{const t=await this.fetchImpactData();if(t&&(this.brandName=t.chain.name,this.shareImageUrl=t.promoAssetUrl||t.personalImpactAssetUrl||t.community[0].share.imageUrl,this.shareImageUrl)){const i=await d(this.shareImageUrl);this.file=i,this.dataUrl=URL.createObjectURL(i)}}catch(t){this.debug&&console.error("Error updating impact data:",t)}}async firstUpdated(){await this.updateImpactData(),this.isMobile=/Mobi|Android/i.test(navigator.userAgent)||"ontouchstart"in window||navigator.maxTouchPoints>0}async openSystemShareSheet(t){if(t)try{const i=await d(t);navigator.share&&this.brandName&&await navigator.share({files:[i],title:r[this.lang].impactShareTitle(),text:r[this.lang].impactShareText({brandName:this.brandName})})}catch(i){this.debug&&console.error("Failed to open share sheet",i)}}async handleClickCopy(){if(this.file)try{this.apiKey&&this.transactionId?p({baseUrl:this.baseUrl,apiKey:this.apiKey||"",requestBody:{eventName:"ExtensibilityCopyImageButtonClick",nonprofitId:this.nonprofitId,storeId:this.storeId,timestamp:Date.now(),transactionId:Number(this.transactionId)}}).catch(()=>null):console.error("Missing data for social share analytics. Skipping send"),await navigator.clipboard.write([new ClipboardItem({"image/png":this.file})])}catch(t){this.debug&&console.error("Failed to copy image to clipboard:",t)}}handleClickDownload(t){this.apiKey&&this.transactionId?p({baseUrl:this.baseUrl,apiKey:this.apiKey||"",requestBody:{eventName:"ExtensibilityDownloadImageButtonClick",nonprofitId:this.nonprofitId,storeId:this.storeId,timestamp:Date.now(),transactionId:Number(this.transactionId)}}).catch(()=>null):console.error("Missing data for social share analytics. Skipping send");const i=t.currentTarget;this.isMobile&&this.shareImageUrl?(t.preventDefault(),this.openSystemShareSheet(this.shareImageUrl)):this.dataUrl&&(i.href=this.dataUrl,i.download=r[this.lang].impactShareTitle())}render(){return!this.brandName||!this.shareImageUrl||!this.dataUrl?S():f`
2
2
  <div class="share-container ${this.windowResized||this.isMobile?"mobile":"desktop"}">
3
3
  <h2 class="share-title">${r[this.lang].impactShareTitle()}</h2>
4
4
  <p class="share-text">${r[this.lang].impactShareText({brandName:this.brandName})}</p>
@@ -1 +1 @@
1
- {"version":3,"file":"social-share.js","sources":["../../src/components/social-share/index.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport \"@shoelace-style/shoelace/dist/components/icon/icon.js\";\nimport \"../../shared/components/_share-dialog-dependencies\";\nimport \"../../shared/components/progress-bar\";\nimport \"../beam-partner-logos\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { TNumericId } from \"../../shared/types\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { strings } from \"../../shared/components/strings/share-button\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { urlToFile } from \"../../shared/files\";\nimport { postSocialShareAnalyticsEvent } from \"../../api-sdk/v2/users/events\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: TNumericId;\n nonprofitId: TNumericId;\n};\n\nexport class BeamSocialShare extends LitElement {\n static tagName = \"beam-social-share\";\n\n @property({ type: String }) public apiKey?: RequiredConfig[\"apiKey\"];\n @property({ type: Number }) storeId?: RequiredConfig[\"storeId\"];\n @property({ type: Number }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n @property({ type: String }) public baseUrl = DEFAULT_BASE_URL;\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n @property({ type: Boolean }) public debug = false;\n @property({ type: String }) transactionId?: string;\n\n @state() private brandName: string | null = null;\n @state() private shareImageUrl: string | null = null;\n @state() private dataUrl?: string;\n @state() private file?: File;\n @state() private isMobile = false;\n @state() private windowResized = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.checkViewport);\n this.checkViewport();\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.checkViewport);\n super.disconnectedCallback();\n }\n\n checkViewport = () => {\n this.windowResized = window.innerWidth <= 768;\n };\n\n private async fetchImpactData() {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\", \"nonprofitId\"], this)) {\n throw new MissingConfig();\n }\n try {\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: { authorization: `Api-Key ${this.apiKey}` },\n queryParams: {\n storeId: this.storeId,\n personalImpactLimit: 0,\n nonprofitId: this.nonprofitId,\n widgetName: WIDGET_NAMES.community_impact,\n version: \"1.0.0\",\n lang: this.configLang,\n transactionId: this.transactionId ?? undefined,\n },\n });\n return res;\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to fetch impact data\", error);\n }\n throw error;\n }\n }\n\n // Updates component state with fetched impact data\n private async updateImpactData() {\n try {\n const data = await this.fetchImpactData();\n if (data) {\n this.brandName = data.chain.name;\n this.shareImageUrl = data.promoAssetUrl || data.personalImpactAssetUrl || data.community[0].share.imageUrl;\n\n if (this.shareImageUrl) {\n const file = await urlToFile(this.shareImageUrl);\n this.file = file;\n this.dataUrl = URL.createObjectURL(file);\n }\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Error updating impact data:\", error);\n }\n }\n }\n\n async firstUpdated() {\n await this.updateImpactData();\n this.isMobile =\n /Mobi|Android/i.test(navigator.userAgent) || \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n }\n\n private async openSystemShareSheet(imageUrl: string) {\n if (!imageUrl) return;\n\n try {\n const file = await urlToFile(imageUrl);\n if (navigator.share && this.brandName) {\n await navigator.share({\n files: [file],\n title: strings[this.lang].impactShareTitle(),\n text: strings[this.lang].impactShareText({ brandName: this.brandName }),\n });\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to open share sheet\", error);\n }\n }\n }\n\n private async handleClickCopy() {\n if (this.file) {\n try {\n if (this.apiKey && this.transactionId) {\n void postSocialShareAnalyticsEvent({\n baseUrl: this.baseUrl,\n apiKey: this.apiKey || \"\",\n requestBody: {\n eventName: \"ExtensibilityCopyImageButtonClick\",\n nonprofitId: this.nonprofitId,\n storeId: this.storeId,\n timestamp: Date.now(),\n transactionId: Number(this.transactionId),\n },\n }).catch(() => null);\n } else {\n console.error(\"Missing data for social share analytics. Skipping send\");\n }\n await navigator.clipboard.write([new ClipboardItem({ \"image/png\": this.file })]);\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to copy image to clipboard:\", error);\n }\n }\n }\n }\n\n private handleClickDownload(event: Event) {\n if (this.apiKey && this.transactionId) {\n void postSocialShareAnalyticsEvent({\n baseUrl: this.baseUrl,\n apiKey: this.apiKey || \"\",\n requestBody: {\n eventName: \"ExtensibilityDownloadImageButtonClick\",\n nonprofitId: this.nonprofitId,\n storeId: this.storeId,\n timestamp: Date.now(),\n transactionId: Number(this.transactionId),\n },\n }).catch(() => null);\n } else {\n console.error(\"Missing data for social share analytics. Skipping send\");\n }\n const target = event.currentTarget as HTMLAnchorElement;\n if (this.isMobile && this.shareImageUrl) {\n event.preventDefault();\n this.openSystemShareSheet(this.shareImageUrl);\n } else if (this.dataUrl) {\n target.href = this.dataUrl;\n target.download = strings[this.lang].impactShareTitle();\n }\n }\n\n render() {\n if (!this.brandName || !this.shareImageUrl || !this.dataUrl) {\n return _loading();\n }\n\n return html`\n <div class=\"share-container ${this.windowResized || this.isMobile ? \"mobile\" : \"desktop\"}\">\n <h2 class=\"share-title\">${strings[this.lang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.lang].impactShareText({ brandName: this.brandName })}</p>\n <img src=\"${this.shareImageUrl}\" alt=\"${strings[this.lang].impactShareTitle()}\" class=\"share-image\" />\n <div class=\"share-actions\">\n <button class=\"plain-button button share-action-button\" @click=\"${this.handleClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.lang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareCopy()}</div>\n </button>\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.lang].impactShareTitle()}\"\n href=\"${this.dataUrl}\"\n @click=\"${this.handleClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.lang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n `;\n }\n\n static styles = [\n cssReset,\n css`\n @font-face {\n font-family: \"Mabry-Bold\";\n src: url(\"../../../assets/fonts/mabry-bold.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n @font-face {\n font-family: \"Mabry-Medium\";\n src: url(\"../../../assets/fonts/mabry-medium.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n :host {\n align-items: center;\n justify-content: center;\n display: flex;\n box-sizing: border-box;\n width: 100%;\n }\n\n .share-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 700px;\n text-align: center;\n }\n\n .share-container.mobile {\n padding: 1rem;\n max-width: 100%;\n }\n\n .share-title {\n font-family: \"Mabry-Bold\", sans-serif;\n font-size: 2.5rem;\n font-weight: bold;\n word-break: break-word;\n margin: 10px 0;\n }\n\n .share-title.mobile {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1.25rem;\n line-height: 1.4;\n word-break: break-word;\n margin: 10px 0;\n max-width: 500px;\n }\n\n .share-text.mobile {\n font-size: 1rem;\n }\n\n .share-image {\n border-radius: 8px;\n width: 100%;\n max-width: 300px;\n height: auto;\n display: block;\n margin: 20px auto;\n }\n\n .share-actions {\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 10px;\n align-items: center;\n margin: 20px 0;\n }\n\n .share-actions.mobile {\n flex-direction: column;\n }\n\n .share-action-button {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 10px 20px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #fff;\n text-decoration: none;\n color: #333;\n cursor: pointer;\n transition: background-color 0.3s, border-color 0.3s;\n }\n\n .share-action-button:hover {\n background-color: #f0f0f0;\n border-color: #bbb;\n }\n\n .share-action-icon {\n font-size: 1.25rem;\n margin-right: 8px;\n }\n\n .share-action-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1rem;\n line-height: 1.4;\n margin-top: 5px;\n }\n\n @media (max-width: 600px) {\n .share-title {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-size: 1rem;\n }\n\n .share-image {\n max-width: 240px;\n }\n\n .share-actions {\n flex-direction: row;\n width: 50%;\n margin: 10px 0;\n }\n\n .share-action-button {\n width: 100%;\n margin: 5px 0;\n }\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamSocialShare);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-social-share\": BeamSocialShare;\n }\n}\n"],"names":["m","i","s","t","e","r","d","BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","file","urlToFile","imageUrl","strings","postSocialShareAnalyticsEvent","event","target","_loading","html","cssReset","css","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
1
+ {"version":3,"file":"social-share.js","sources":["../../src/components/social-share/index.ts"],"sourcesContent":["import { css, html, LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport \"@shoelace-style/shoelace/dist/components/icon/icon.js\";\nimport \"../../shared/components/_share-dialog-dependencies\";\nimport \"../../shared/components/progress-bar\";\nimport \"../beam-partner-logos\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { getImpact } from \"../../api-sdk/v3/routes\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { TNumericId } from \"../../shared/types\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { strings } from \"../../shared/components/strings/share-button\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { urlToFile } from \"../../shared/files\";\nimport { postSocialShareAnalyticsEvent } from \"../../api-sdk/v2/users/events\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: TNumericId;\n nonprofitId: TNumericId;\n};\n\nexport class BeamSocialShare extends LitElement {\n static tagName = \"beam-social-share\";\n\n @property({ type: String }) public apiKey?: RequiredConfig[\"apiKey\"];\n @property({ type: Number }) storeId?: RequiredConfig[\"storeId\"];\n @property({ type: Number }) nonprofitId?: RequiredConfig[\"nonprofitId\"];\n @property({ type: String }) public baseUrl = DEFAULT_BASE_URL;\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n @property({ type: Boolean }) public debug = false;\n @property({ type: String }) transactionId?: string;\n\n @state() private brandName: string | null = null;\n @state() private shareImageUrl: string | null = null;\n @state() private dataUrl?: string;\n @state() private file?: File;\n @state() private isMobile = false;\n @state() private windowResized = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.checkViewport);\n this.checkViewport();\n }\n\n disconnectedCallback() {\n window.removeEventListener(\"resize\", this.checkViewport);\n super.disconnectedCallback();\n }\n\n checkViewport = () => {\n this.windowResized = window.innerWidth <= 768;\n };\n\n private async fetchImpactData() {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\", \"nonprofitId\"], this)) {\n throw new MissingConfig();\n }\n try {\n const res = await getImpact({\n baseUrl: this.baseUrl,\n headers: { authorization: `Api-Key ${this.apiKey}` },\n queryParams: {\n storeId: this.storeId,\n personalImpactLimit: 0,\n nonprofitId: this.nonprofitId,\n widgetName: WIDGET_NAMES.community_impact,\n version: \"1.0.0\",\n lang: this.configLang,\n transactionId: this.transactionId ?? undefined,\n },\n });\n return res;\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to fetch impact data\", error);\n }\n throw error;\n }\n }\n\n // Updates component state with fetched impact data\n private async updateImpactData() {\n try {\n const data = await this.fetchImpactData();\n if (data) {\n this.brandName = data.chain.name;\n this.shareImageUrl = data.promoAssetUrl || data.personalImpactAssetUrl || data.community[0].share.imageUrl;\n\n if (this.shareImageUrl) {\n const file = await urlToFile(this.shareImageUrl);\n this.file = file;\n this.dataUrl = URL.createObjectURL(file);\n }\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Error updating impact data:\", error);\n }\n }\n }\n\n async firstUpdated() {\n await this.updateImpactData();\n this.isMobile =\n /Mobi|Android/i.test(navigator.userAgent) || \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n }\n\n private async openSystemShareSheet(imageUrl: string) {\n if (!imageUrl) return;\n\n try {\n const file = await urlToFile(imageUrl);\n if (navigator.share && this.brandName) {\n await navigator.share({\n files: [file],\n title: strings[this.lang].impactShareTitle(),\n text: strings[this.lang].impactShareText({ brandName: this.brandName }),\n });\n }\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to open share sheet\", error);\n }\n }\n }\n\n private async handleClickCopy() {\n if (this.file) {\n try {\n if (this.apiKey && this.transactionId) {\n void postSocialShareAnalyticsEvent({\n baseUrl: this.baseUrl,\n apiKey: this.apiKey || \"\",\n requestBody: {\n eventName: \"ExtensibilityCopyImageButtonClick\",\n nonprofitId: this.nonprofitId,\n storeId: this.storeId,\n timestamp: Date.now(),\n transactionId: Number(this.transactionId),\n },\n }).catch(() => null);\n } else {\n console.error(\"Missing data for social share analytics. Skipping send\");\n }\n await navigator.clipboard.write([new ClipboardItem({ \"image/png\": this.file })]);\n } catch (error) {\n if (this.debug) {\n console.error(\"Failed to copy image to clipboard:\", error);\n }\n }\n }\n }\n\n private handleClickDownload(event: Event) {\n if (this.apiKey && this.transactionId) {\n void postSocialShareAnalyticsEvent({\n baseUrl: this.baseUrl,\n apiKey: this.apiKey || \"\",\n requestBody: {\n eventName: \"ExtensibilityDownloadImageButtonClick\",\n nonprofitId: this.nonprofitId,\n storeId: this.storeId,\n timestamp: Date.now(),\n transactionId: Number(this.transactionId),\n },\n }).catch(() => null);\n } else {\n console.error(\"Missing data for social share analytics. Skipping send\");\n }\n const target = event.currentTarget as HTMLAnchorElement;\n if (this.isMobile && this.shareImageUrl) {\n event.preventDefault();\n this.openSystemShareSheet(this.shareImageUrl);\n } else if (this.dataUrl) {\n target.href = this.dataUrl;\n target.download = strings[this.lang].impactShareTitle();\n }\n }\n\n render() {\n if (!this.brandName || !this.shareImageUrl || !this.dataUrl) {\n return _loading();\n }\n\n return html`\n <div class=\"share-container ${this.windowResized || this.isMobile ? \"mobile\" : \"desktop\"}\">\n <h2 class=\"share-title\">${strings[this.lang].impactShareTitle()}</h2>\n <p class=\"share-text\">${strings[this.lang].impactShareText({ brandName: this.brandName })}</p>\n <img src=\"${this.shareImageUrl}\" alt=\"${strings[this.lang].impactShareTitle()}\" class=\"share-image\" />\n <div class=\"share-actions\">\n <button class=\"plain-button button share-action-button\" @click=\"${this.handleClickCopy}\">\n <sl-icon\n library=\"lucide\"\n name=\"copy\"\n label=\"${strings[this.lang].impactShareCopy()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareCopy()}</div>\n </button>\n <a\n class=\"plain-button button share-action-button plain-link\"\n download=\"${strings[this.lang].impactShareTitle()}\"\n href=\"${this.dataUrl}\"\n @click=\"${this.handleClickDownload}\"\n >\n <sl-icon\n library=\"lucide\"\n name=\"download\"\n label=\"${strings[this.lang].impactShareDownload()}\"\n class=\"share-action-icon\"\n ></sl-icon>\n <div class=\"share-action-text\">${strings[this.lang].impactShareDownload()}</div>\n </a>\n </div>\n </div>\n `;\n }\n\n static styles = [\n cssReset,\n css`\n @font-face {\n font-family: \"Mabry-Bold\";\n src: url(\"../../../assets/fonts/mabry-bold.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n @font-face {\n font-family: \"Mabry-Medium\";\n src: url(\"../../../assets/fonts/mabry-medium.otf\") format(\"opentype\");\n font-weight: bold;\n font-style: normal;\n }\n :host {\n align-items: center;\n justify-content: center;\n display: flex;\n box-sizing: border-box;\n width: 100%;\n }\n\n .share-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 700px;\n text-align: center;\n }\n\n .share-container.mobile {\n padding: 1rem;\n max-width: 100%;\n }\n\n .share-title {\n font-family: \"Mabry-Bold\", sans-serif;\n font-size: 2.5rem;\n font-weight: bold;\n word-break: break-word;\n margin: 10px 0;\n }\n\n .share-title.mobile {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1.25rem;\n line-height: 1.4;\n word-break: break-word;\n margin: 10px 0;\n max-width: 500px;\n }\n\n .share-text.mobile {\n font-size: 1rem;\n }\n\n .share-image {\n border-radius: 8px;\n width: 100%;\n max-width: 300px;\n height: auto;\n display: block;\n margin: 20px auto;\n }\n\n .share-actions {\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 10px;\n align-items: center;\n margin: 20px 0;\n }\n\n .share-actions.mobile {\n flex-direction: column;\n }\n\n .share-action-button {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 10px 20px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #fff;\n text-decoration: none;\n color: #333;\n cursor: pointer;\n transition: background-color 0.3s, border-color 0.3s;\n }\n\n .share-action-button:hover {\n background-color: #f0f0f0;\n border-color: #bbb;\n }\n\n .share-action-icon {\n font-size: 1.25rem;\n margin-right: 8px;\n }\n\n .share-action-text {\n font-family: \"Mabry-Medium\", sans-serif;\n font-size: 1rem;\n line-height: 1.4;\n margin-top: 5px;\n }\n\n @media (max-width: 600px) {\n .share-title {\n font-size: 1.5rem;\n }\n\n .share-text {\n font-size: 1rem;\n }\n\n .share-image {\n max-width: 240px;\n }\n\n .share-actions {\n flex-direction: row;\n width: 50%;\n margin: 10px 0;\n }\n\n .share-action-button {\n width: 100%;\n margin: 5px 0;\n }\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamSocialShare);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-social-share\": BeamSocialShare;\n }\n}\n"],"names":["m","i","s","t","e","r","d","BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","file","urlToFile","imageUrl","strings","postSocialShareAnalyticsEvent","event","target","_loading","html","cssReset","css","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
@@ -157,6 +157,9 @@ declare class BeamSubscriptionImpact extends LitElement {
157
157
  } | null;
158
158
  promoAssetUrl: string | null;
159
159
  personalImpactAssetUrl: string | null;
160
+ settings?: {
161
+ excludeDonationsForRecurringTransactions: boolean;
162
+ } | undefined;
160
163
  }>;
161
164
  private impactDataController;
162
165
  impactTitleRefs: HTMLElement[];
@@ -172,7 +175,7 @@ declare class BeamSubscriptionImpact extends LitElement {
172
175
  get cssVariables(): any;
173
176
  evaluateBreakPoints: lodash.DebouncedFuncLeading<() => void>;
174
177
  resizeElements: lodash.DebouncedFuncLeading<() => void>;
175
- render(): "" | lit_html.TemplateResult<1>;
178
+ render(): lit_html.TemplateResult<1> | "";
176
179
  renderInlineCard(impactCard: {
177
180
  title: string;
178
181
  description: string;
@@ -1,4 +1,4 @@
1
- import{h as $,f as w,y as p,g as l,t as _,p as C}from"../chunks/lit-WqMxC_PA.esm.js";import{d as S,b as H}from"../chunks/lodash-D3TLHRR_.esm.js";import{p as j}from"../chunks/progress-bar-DF7UuuHb.esm.js";import{s as A,a as K}from"../chunks/share-button-CLpGIG3j.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import{D as q,g as J,S as Q}from"../chunks/routes-Dl-QWRUP.esm.js";import{u as b,A as X,d as g,a as Z,_ as ee,i as r}from"../chunks/localize-Btu9xYcE.esm.js";import{c as ie,d as te,e as ae}from"../chunks/enforce-config-CZ3ToOgr.esm.js";import{_ as re}from"../chunks/loading-template-DG4lkIIc.esm.js";import{makeApiKeyHeader as ne}from"../utils/makeApiKeyHeader.esm.js";import{c as oe}from"../chunks/responsive-BR8qUfBa.esm.js";import{logger as se}from"../utils/logger.esm.js";import{c as ce}from"../chunks/css-card-grid-CvoGpsJH.esm.js";import"../chunks/is-all-html-elements-fcB7UUA1.esm.js";import"../chunks/share-button-DVQotZGR.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";var pe=Object.defineProperty,le=(i,e,n,m)=>{for(var a=void 0,t=i.length-1,d;t>=0;t--)(d=i[t])&&(a=d(e,n,a)||a);return a&&pe(e,n,a),a};class P extends ${constructor(){super(...arguments),this.infoText=""}static get styles(){return w`
1
+ import{h as w,f as $,y as p,g as m,t as O,p as C}from"../chunks/lit-WqMxC_PA.esm.js";import{d as z,b as G}from"../chunks/lodash-D3TLHRR_.esm.js";import{p as K}from"../chunks/progress-bar-DF7UuuHb.esm.js";import{s as S,a as q}from"../chunks/share-button-BupVxILq.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import{D as Y,g as J,S as Q}from"../chunks/routes-Ck-AZVsH.esm.js";import{u as b,A as X,d as u,a as Z,_ as ee,i as n}from"../chunks/localize-Btu9xYcE.esm.js";import{c as ie,d as ae,e as te}from"../chunks/enforce-config-CZ3ToOgr.esm.js";import{_ as ne}from"../chunks/loading-template-DG4lkIIc.esm.js";import{makeApiKeyHeader as re}from"../utils/makeApiKeyHeader.esm.js";import{c as oe}from"../chunks/responsive-BR8qUfBa.esm.js";import{logger as se}from"../utils/logger.esm.js";import{c as ce}from"../chunks/css-card-grid-CvoGpsJH.esm.js";import"../chunks/is-all-html-elements-fcB7UUA1.esm.js";import"../chunks/share-button-BopORXeO.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";var pe=Object.defineProperty,me=(i,e,r,l)=>{for(var t=void 0,a=i.length-1,d;a>=0;a--)(d=i[a])&&(t=d(e,r,t)||t);return t&&pe(e,r,t),t};class A extends w{constructor(){super(...arguments),this.infoText=""}static get styles(){return $`
2
2
  sl-badge::part(base) {
3
3
  background-color: var(--beam-pillLabel-color-background, #000);
4
4
  color: var(--beam-pillLabel-color, #fff);
@@ -11,7 +11,7 @@ import{h as $,f as w,y as p,g as l,t as _,p as C}from"../chunks/lit-WqMxC_PA.esm
11
11
  text-transform: var(--beam-pillLabel-text-transform, none);
12
12
  padding: var(--beam-pillLabel-padding, 3px 4px);
13
13
  }
14
- `}render(){return p`<sl-badge pill aria-label="${this.infoText}">${this.infoText}</sl-badge>`}}le([l({type:String})],P.prototype,"infoText"),customElements.get("beam-info-pill")||customElements.define("beam-info-pill",P);const me={"--beam-pillLabel-color-background":"#0A323C","--beam-pillLabel-color":"#fff","--beam-pillLabel-border":"#0A323C","--beam-pillLabel-border-width":"1px","--beam-pillLabel-font-size":"10px","--beam-pillLabel-font":"inherit","--beam-pillLabel-font-weight":"400","--beam-pillLabel-text-transform":"none","--beam-pillLabel-font-style":"italic","--beam-pillLabel-padding":"3px 4px"},s={en:{title:({causeName:i=""})=>`Your Subscription is Going Towards ${i} With Every Order`,futureTenseTitle:({causeName:i=""})=>`Your Subscription Will Go Towards ${i} With Every Order`,ctaMessagePrefix:()=>"At no extra cost, ",description:({nonprofit:i=""})=>`1% of every order will be donated to ${i} on your behalf.`,personalImpactTitle:()=>"You're Currently Funding",futureTensePersonalImpactTitle:()=>"You\u2019ll Be Funding",communityImpactTitle:()=>"Together We're Funding",personalLinkCopy:({nonprofit:i="",hideArrow:e=!1})=>`Learn about ${i}${e?"":" \u203A"}`,communityLinkCopy:({brandName:i="",hideArrow:e=!1})=>`Learn about ${i}${e?"":" \u203A"}`,percentFunded:()=>"funded",progressPillText:()=>"\u{1F389} Impact begins once order is charged"},fr:{title:({causeName:i=""})=>`Your Subscription is Going Towards ${i} With Every Order`,futureTenseTitle:({causeName:i=""})=>`Your Subscription Will Go Towards ${i} With Every Order`,ctaMessagePrefix:()=>"At no extra cost, ",description:({nonprofit:i=""})=>`1% of every order will be donated to ${i} on your behalf.`,personalImpactTitle:()=>"You're Currently Funding",futureTensePersonalImpactTitle:()=>"You\u2019ll Be Funding",communityImpactTitle:()=>"Together We're Funding",personalLinkCopy:({nonprofit:i="",hideArrow:e=!1})=>`Learn about ${i}${e?"":" \u203A"}`,communityLinkCopy:({brandName:i="",hideArrow:e=!1})=>`Learn about ${i}${e?"":" \u203A"}`,percentFunded:()=>"funded",progressPillText:()=>"\u{1F389} Impact begins once order is charged"},de:{title:({causeName:i=""})=>`Your Subscription is Going Towards ${i} With Every Order`,futureTenseTitle:({causeName:i=""})=>`Your Subscription Will Go Towards ${i} With Every Order`,ctaMessagePrefix:()=>"At no extra cost, ",description:({nonprofit:i=""})=>`1% of every order will be donated to ${i} on your behalf.`,personalImpactTitle:()=>"You're Currently Funding",futureTensePersonalImpactTitle:()=>"You\u2019ll Be Funding",communityImpactTitle:()=>"Together We're Funding",personalLinkCopy:({nonprofit:i="",hideArrow:e=!1})=>`Learn about ${i}${e?"":" \u203A"}`,communityLinkCopy:({brandName:i="",hideArrow:e=!1})=>`Learn about ${i}${e?"":" \u203A"}`,percentFunded:()=>"funded",progressPillText:()=>"\u{1F389} Impact begins once order is charged"},es:{title:({causeName:i=""})=>`Your Subscription is Going Towards ${i} With Every Order`,futureTenseTitle:({causeName:i=""})=>`Your Subscription Will Go Towards ${i} With Every Order`,ctaMessagePrefix:()=>"At no extra cost, ",description:({nonprofit:i=""})=>`1% of every order will be donated to ${i} on your behalf.`,personalImpactTitle:()=>"You're Currently Funding",futureTensePersonalImpactTitle:()=>"You\u2019ll Be Funding",communityImpactTitle:()=>"Together We're Funding",personalLinkCopy:({nonprofit:i="",hideArrow:e=!1})=>`Learn about ${i}${e?"":" \u203A"}`,communityLinkCopy:({brandName:i="",hideArrow:e=!1})=>`Learn about ${i}${e?"":" \u203A"}`,percentFunded:()=>"funded",progressPillText:()=>"\u{1F389} Impact begins once order is charged"},it:{title:({causeName:i=""})=>`Your Subscription is Going Towards ${i} With Every Order`,futureTenseTitle:({causeName:i=""})=>`Your Subscription Will Go Towards ${i} With Every Order`,ctaMessagePrefix:()=>"At no extra cost, ",description:({nonprofit:i=""})=>`1% of every order will be donated to ${i} on your behalf.`,personalImpactTitle:()=>"You're Currently Funding",futureTensePersonalImpactTitle:()=>"You\u2019ll Be Funding",communityImpactTitle:()=>"Together We're Funding",personalLinkCopy:({nonprofit:i="",hideArrow:e=!1})=>`Learn about ${i}${e?"":" \u203A"}`,communityLinkCopy:({brandName:i="",hideArrow:e=!1})=>`Learn about ${i}${e?"":" \u203A"}`,percentFunded:()=>"funded",progressPillText:()=>"\u{1F389} Impact begins once order is charged"},pl:{title:({causeName:i=""})=>`Your Subscription is Going Towards ${i} With Every Order`,futureTenseTitle:({causeName:i=""})=>`Your Subscription Will Go Towards ${i} With Every Order`,ctaMessagePrefix:()=>"At no extra cost, ",description:({nonprofit:i=""})=>`1% of every order will be donated to ${i} on your behalf.`,personalImpactTitle:()=>"You're Currently Funding",futureTensePersonalImpactTitle:()=>"You\u2019ll Be Funding",communityImpactTitle:()=>"Together We're Funding",personalLinkCopy:({nonprofit:i="",hideArrow:e=!1})=>`Learn about ${i}${e?"":" \u203A"}`,communityLinkCopy:({brandName:i="",hideArrow:e=!1})=>`Learn about ${i}${e?"":" \u203A"}`,percentFunded:()=>"funded",progressPillText:()=>"\u{1F389} Impact begins once order is charged"}};var de=Object.defineProperty,c=(i,e,n,m)=>{for(var a=void 0,t=i.length-1,d;t>=0;t--)(d=i[t])&&(a=d(e,n,a)||a);return a&&de(e,n,a),a};class o extends ${constructor(){super(...arguments),this.baseUrl=q,this.lang="en",this.debug=!1,this.draftConfig=!1,this.isMobile=window.innerWidth<720,this.getImpactData=async()=>(ae(["apiKey","beamUserId","nonprofitId"],this),await J({baseUrl:this.baseUrl,headers:ne(this.apiKey),queryParams:{nonprofitId:this.nonprofitId,beamUserId:this.beamUserId,personalImpactLimit:1,communityImpactLimit:1,storeId:this.storeId,widgetName:"subscription-impact",draftConfig:this.draftConfig,version:"1.0.0",lang:this.configLang}})),this.impactDataController=new X(this,this.getImpactData),this.evaluateBreakPoints=S(()=>{this.isMobile=window.innerWidth<768},50,{maxWait:50,leading:!0}),this.resizeElements=S(()=>{A(this.impactTitleRefs),A(this.impactLinkRefs)},50,{maxWait:50,leading:!0})}get configLang(){return Q[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.evaluateBreakPoints)}async updated(e){const n=["baseUrl","storeId","apiKey","beamUserId","lang"];for(const m of n)if(e.has(m)){await this.impactDataController.exec();break}this.resizeElements(),await this.handleFontLoad(this.resizeElements)}disconnectedCallback(){window.removeEventListener("resize",this.resizeElements),document.fonts.removeEventListener("loadingdone",this.resizeElements),super.disconnectedCallback()}async handleFontLoad(e){if(document.fonts.status==="loading")return await document.fonts.ready.catch(n=>se.error(n)),e()}get cssVariables(){const e={...j,...K,...me,"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"12px","--beam-textColor":"inherit","--beam-backgroundColor":"inherit","--beam-subscriptionImpact-impactCards-maxWidth":"900px","--beam-subscriptionImpact-headerContainer-desktop-textAlign":"left","--beam-subscriptionImpact-headerContainer-mobile-textAlign":"center","--beam-subscriptionImpact-descriptionContainer-marginTop":"10px","--beam-subscriptionImpact-cardContainer-marginTop":"15px","--beam-subscriptionImpact-cardContainer-gap":"20px","--beam-subscriptionImpact-card-borderRadius":"8px","--beam-subscriptionImpact-card-background":"#f8fbfb","--beam-subscriptionImpact-card-padding":"24px 28px 24px 24px","--beam-subscriptionImpact-card-marginRight":"0px","--beam-subscriptionImpact-card-marginTop":"10px","--beam-subscriptionImpact-card-gap":"5px","--beam-subscriptionImpact-cardTitle-textAlign":"left","--beam-subscriptionImpact-cardTitle-letterSpacing":"0.36px","--beam-SubscriptionImpact-cardStyle":"'selected_icon'","--beam-SubscriptionImpact-imagePosition":"'inline'","--beam-subscriptionImpact-imageBlock-height":"120px","--beam-subscriptionImpact-imageBlock-borderRadius":"4px","--beam-subscriptionImpact-iconBackground-width":"50px","--beam-subscriptionImpact-iconBackground-height":"50px","--beam-subscriptionImpact-iconBackground-borderRadius":"50%","--beam-subscriptionImpact-iconBackground-background":"#0a323c","--beam-subscriptionImpact-icon-height":"28px","--beam-subscriptionImpact-icon-margin":"auto","--beam-subscriptionImpact-icon-padding":"10px","--beam-subscriptionImpact-icon-borderRadius":"4px","--beam-subscriptionImpact-image-borderRadius":"4px","--beam-subscriptionImpact-image-minHeight":"0","--beam-subscriptionImpact-image-minWidth":"0","--beam-subscriptionImpact-cardDescription-padding":"0px","--beam-subscriptionImpact-card-progressBar-padding":"8px 0px","--beam-subscriptionImpact-card-progressBarLabel-gap":"10px","--beam-subscriptionImpact-card-progressBarLabel-textAlign":"right","--beam-subscriptionImpact-card-progressBarLabel-marginLeft":"8px","--beam-subscriptionImpact-card-linkContainer-textAlign":"left","--beam-subscriptionImpact-card-impactLink-textDecoration":"underline","--beam-subscriptionImpact-footer-textAlign":"center","--beam-subscriptionImpact-footer-marginTop":"10px","--beam-subscriptionImpact-share-button-icon-name":"share-2","--beam-subscriptionImpact-learnAbout-arrow-display":"block",...g("--beam-subscriptionImpact-title",{fontSize:"20px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),...g("--beam-subscriptionImpact-descriptionPrefix",{fontSize:"14px",fontWeight:"800",lineHeight:"138%",fontStyle:"normal",color:"#2f302d",marginTop:"9px"}),...g("--beam-subscriptionImpact-description",{fontSize:"14px",fontWeight:"400",lineHeight:"138%",fontStyle:"normal",color:"#2f302d",marginTop:"9px"}),...g("--beam-subscriptionImpact-cardTitle",{fontSize:"12px",fontWeight:"bold",lineHeight:"120%",fontStyle:"normal",textTransform:"uppercase"}),...g("--beam-subscriptionImpact-cardDescription",{fontSize:"12px",fontWeight:"400",lineHeight:"18.2px",fontStyle:"normal",color:"#454a47"}),...g("--beam-subscriptionImpact-card-progressBarLabel",{fontSize:"10px",color:"#878a92"}),...g("--beam-subscriptionImpact-card-impactLink",{fontSize:"12px",fontWeight:"600",lineHeight:"16px",fontStyle:"normal",color:"#454a47",marginTop:"auto"})},n=this.impactDataController?.data?.config?.web?.theme||{},m={...e,...n};return Object.assign(Object.create({toCSS(){return Z(this)}}),m)}render(){const{data:e,loading:n,error:m}=this.impactDataController;if(n)return re();if(m||e==null)return this.debug?ee({error:m||new Error("No data")}):"";const a=e.community[0],t=e.personal[0],d=e.chain.name,f=r(this.configLang,t?.nonprofit.cause||""),h=t?.nonprofit.name,x=t?.impact?.goalProgressPercentage||0,y=!(t?.impact?.goalProgressPercentage>0||t?.impact?.goalCompletionText?.length>0),I=a?.impact?.goalProgressPercentage||0,B=`${x}% ${r(this.configLang,e?.config?.web?.additionalStrings?.percentFunded||"")||s[this.configLang].percentFunded()}`,F=`${I}% ${r(this.configLang,e?.config?.web?.additionalStrings?.percentFunded||"")||s[this.configLang].percentFunded()}`,W=a?.imageUrl||"",E=t?.imageUrl||"",N=t?.nonprofit.causeIconUrl,U=t?.nonprofit.causeIconSelectedUrl,u=this.cssVariables["--beam-SubscriptionImpact-cardStyle"],T=this.cssVariables["--beam-SubscriptionImpact-imagePosition"],v=u==="'image'",L=u==="'selected_icon'"?U:N,Y=v?W:L,z=v?E:L,R=r(this.configLang,e?.config?.web?.dynamicStrings?.ctaTitle||"")||s[this.configLang].title({causeName:f}),M=r(this.configLang,e?.config?.web?.dynamicStrings?.ctaFutureTenseTitle||"")||s[this.configLang].futureTenseTitle({causeName:f}),D=H(e.store.communityPageURL)?e.chain.communityImpactUrl:e.store.communityPageURL,O=t?.nonprofit?.website,G=t?.share?.imageUrl,V=this.cssVariables["--beam-SubscriptionImpact-share-button-icon-name"]||"share-2",k=this.cssVariables["--beam-subscriptionImpact-learnAbout-arrow-display"]==="none";return p`
14
+ `}render(){return p`<sl-badge pill aria-label="${this.infoText}">${this.infoText}</sl-badge>`}}me([m({type:String})],A.prototype,"infoText"),customElements.get("beam-info-pill")||customElements.define("beam-info-pill",A);const le={"--beam-pillLabel-color-background":"#0A323C","--beam-pillLabel-color":"#fff","--beam-pillLabel-border":"#0A323C","--beam-pillLabel-border-width":"1px","--beam-pillLabel-font-size":"10px","--beam-pillLabel-font":"inherit","--beam-pillLabel-font-weight":"400","--beam-pillLabel-text-transform":"none","--beam-pillLabel-font-style":"italic","--beam-pillLabel-padding":"3px 4px"},s={en:{title:({causeName:i=""})=>`Your Subscription is Going Towards ${i} With Every Order`,futureTenseTitle:({causeName:i=""})=>`Your Subscription Will Go Towards ${i} With Every Order`,ctaMessagePrefix:()=>"At no extra cost, ",description:({nonprofit:i=""})=>`1% will be donated to ${i} for you, at no extra cost, every order.`,personalImpactTitle:()=>"You're Currently Funding",futureTensePersonalImpactTitle:()=>"You\u2019ll Be Funding",communityImpactTitle:()=>"Together We're Funding",personalLinkCopy:({nonprofit:i="",hideArrow:e=!1})=>`Learn about ${i}${e?"":" \u203A"}`,communityLinkCopy:({brandName:i="",hideArrow:e=!1})=>`Learn about ${i} impact${e?"":" \u203A"}`,percentFunded:()=>"funded",progressPillText:()=>"\u{1F389} Impact begins once order is charged"},fr:{title:({causeName:i=""})=>`Votre abonnement contribue \xE0 ${i} \xE0 chaque commande`,futureTenseTitle:({causeName:i=""})=>`Votre abonnement contribuera \xE0 ${i} \xE0 chaque commande`,ctaMessagePrefix:()=>"Sans frais suppl\xE9mentaires, ",description:({nonprofit:i=""})=>`1% de chaque commande sera revers\xE9 \xE0 ${i} pour vous, sans frais suppl\xE9mentaires.`,personalImpactTitle:()=>"Vous financez actuellement",futureTensePersonalImpactTitle:()=>"Vous financerez",communityImpactTitle:()=>"Ensemble, nous finan\xE7ons",personalLinkCopy:({nonprofit:i="",hideArrow:e=!1})=>`En savoir plus sur ${i}${e?"":" \u203A"}`,communityLinkCopy:({brandName:i="",hideArrow:e=!1})=>`En savoir plus sur l\u2019impact de ${i}${e?"":" \u203A"}`,percentFunded:()=>"financ\xE9",progressPillText:()=>"\u{1F389} L\u2019impact commence une fois la commande d\xE9bit\xE9e"},de:{title:({causeName:i=""})=>`Ihr Abonnement unterst\xFCtzt ${i} mit jeder Bestellung`,futureTenseTitle:({causeName:i=""})=>`Ihr Abonnement wird ${i} mit jeder Bestellung unterst\xFCtzen`,ctaMessagePrefix:()=>"Ohne zus\xE4tzliche Kosten, ",description:({nonprofit:i=""})=>`1% jeder Bestellung wird im Rahmen Ihres Abonnements an ${i} gespendet.`,personalImpactTitle:()=>"Sie unterst\xFCtzen derzeit",futureTensePersonalImpactTitle:()=>"Sie werden unterst\xFCtzen",communityImpactTitle:()=>"Gemeinsam unterst\xFCtzen wir",personalLinkCopy:({nonprofit:i="",hideArrow:e=!1})=>`Mehr \xFCber ${i} erfahren${e?"":" \u203A"}`,communityLinkCopy:({brandName:i="",hideArrow:e=!1})=>`Mehr \xFCber die Wirkung von ${i} erfahren${e?"":" \u203A"}`,percentFunded:()=>"finanziert",progressPillText:()=>"\u{1F389} Wirkung beginnt, sobald die Bestellung abgerechnet wird"},es:{title:({causeName:i=""})=>`Tu suscripci\xF3n est\xE1 apoyando a ${i} con cada pedido`,futureTenseTitle:({causeName:i=""})=>`Tu suscripci\xF3n apoyar\xE1 a ${i} con cada pedido`,ctaMessagePrefix:()=>"Sin coste adicional, ",description:({nonprofit:i=""})=>`El 1% de cada pedido se donar\xE1 a ${i} en tu nombre.`,personalImpactTitle:()=>"Actualmente est\xE1s financiando",futureTensePersonalImpactTitle:()=>"Financiar\xE1s",communityImpactTitle:()=>"Juntos estamos financiando",personalLinkCopy:({nonprofit:i="",hideArrow:e=!1})=>`Conoce m\xE1s sobre ${i}${e?"":" \u203A"}`,communityLinkCopy:({brandName:i="",hideArrow:e=!1})=>`Conoce m\xE1s sobre el impacto de ${i}${e?"":" \u203A"}`,percentFunded:()=>"financiado",progressPillText:()=>"\u{1F389} El impacto comienza una vez que se procese el pedido"},it:{title:({causeName:i=""})=>`Il tuo abbonamento sostiene ${i} con ogni ordine`,futureTenseTitle:({causeName:i=""})=>`Il tuo abbonamento sosterr\xE0 ${i} con ogni ordine`,ctaMessagePrefix:()=>"Senza alcun costo aggiuntivo, ",description:({nonprofit:i=""})=>`L'1% di ogni ordine sar\xE0 donato a ${i} per te.`,personalImpactTitle:()=>"Attualmente stai finanziando",futureTensePersonalImpactTitle:()=>"Finanzierai",communityImpactTitle:()=>"Insieme stiamo finanziando",personalLinkCopy:({nonprofit:i="",hideArrow:e=!1})=>`Scopri di pi\xF9 su ${i}${e?"":" \u203A"}`,communityLinkCopy:({brandName:i="",hideArrow:e=!1})=>`Scopri di pi\xF9 sull\u2019impatto di ${i}${e?"":" \u203A"}`,percentFunded:()=>"finanziato",progressPillText:()=>"\u{1F389} L\u2019impatto inizia una volta che l\u2019ordine \xE8 stato addebitato"},pl:{title:({causeName:i=""})=>`Twoja subskrypcja wspiera ${i} przy ka\u017Cdym zam\xF3wieniu`,futureTenseTitle:({causeName:i=""})=>`Twoja subskrypcja b\u0119dzie wspiera\u0107 ${i} przy ka\u017Cdym zam\xF3wieniu`,ctaMessagePrefix:()=>"Bez dodatkowych koszt\xF3w, ",description:({nonprofit:i=""})=>`1% z ka\u017Cdego zam\xF3wienia zostanie przekazane na rzecz ${i} w Twoim imieniu.`,personalImpactTitle:()=>"Obecnie wspierasz",futureTensePersonalImpactTitle:()=>"B\u0119dziesz wspiera\u0107",communityImpactTitle:()=>"Razem wspieramy",personalLinkCopy:({nonprofit:i="",hideArrow:e=!1})=>`Dowiedz si\u0119 wi\u0119cej o ${i}${e?"":" \u203A"}`,communityLinkCopy:({brandName:i="",hideArrow:e=!1})=>`Dowiedz si\u0119 wi\u0119cej o wp\u0142ywie ${i}${e?"":" \u203A"}`,percentFunded:()=>"sfinansowano",progressPillText:()=>"\u{1F389} Wp\u0142yw rozpoczyna si\u0119 po zrealizowaniu zam\xF3wienia"}};var de=Object.defineProperty,c=(i,e,r,l)=>{for(var t=void 0,a=i.length-1,d;a>=0;a--)(d=i[a])&&(t=d(e,r,t)||t);return t&&de(e,r,t),t};class o extends w{constructor(){super(...arguments),this.baseUrl=Y,this.lang="en",this.debug=!1,this.draftConfig=!1,this.isMobile=window.innerWidth<720,this.getImpactData=async()=>(te(["apiKey","beamUserId","nonprofitId"],this),await J({baseUrl:this.baseUrl,headers:re(this.apiKey),queryParams:{nonprofitId:this.nonprofitId,beamUserId:this.beamUserId,personalImpactLimit:1,communityImpactLimit:1,storeId:this.storeId,widgetName:"subscription-impact",draftConfig:this.draftConfig,version:"1.0.0",lang:this.configLang}})),this.impactDataController=new X(this,this.getImpactData),this.evaluateBreakPoints=z(()=>{this.isMobile=window.innerWidth<768},50,{maxWait:50,leading:!0}),this.resizeElements=z(()=>{S(this.impactTitleRefs),S(this.impactLinkRefs)},50,{maxWait:50,leading:!0})}get configLang(){return Q[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.evaluateBreakPoints)}async updated(e){const r=["baseUrl","storeId","apiKey","beamUserId","lang"];for(const l of r)if(e.has(l)){await this.impactDataController.exec();break}this.resizeElements(),await this.handleFontLoad(this.resizeElements)}disconnectedCallback(){window.removeEventListener("resize",this.resizeElements),document.fonts.removeEventListener("loadingdone",this.resizeElements),super.disconnectedCallback()}async handleFontLoad(e){if(document.fonts.status==="loading")return await document.fonts.ready.catch(r=>se.error(r)),e()}get cssVariables(){const e={...K,...q,...le,"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"12px","--beam-textColor":"inherit","--beam-backgroundColor":"inherit","--beam-subscriptionImpact-impactCards-maxWidth":"900px","--beam-subscriptionImpact-headerContainer-desktop-textAlign":"left","--beam-subscriptionImpact-headerContainer-mobile-textAlign":"center","--beam-subscriptionImpact-descriptionContainer-marginTop":"10px","--beam-subscriptionImpact-cardContainer-marginTop":"15px","--beam-subscriptionImpact-cardContainer-gap":"20px","--beam-subscriptionImpact-card-borderRadius":"8px","--beam-subscriptionImpact-card-background":"#f8fbfb","--beam-subscriptionImpact-card-padding":"24px 28px 24px 24px","--beam-subscriptionImpact-card-marginRight":"0px","--beam-subscriptionImpact-card-marginTop":"10px","--beam-subscriptionImpact-card-gap":"5px","--beam-subscriptionImpact-cardTitle-textAlign":"left","--beam-subscriptionImpact-cardTitle-letterSpacing":"0.36px","--beam-SubscriptionImpact-cardStyle":"'selected_icon'","--beam-SubscriptionImpact-imagePosition":"'inline'","--beam-subscriptionImpact-imageBlock-height":"120px","--beam-subscriptionImpact-imageBlock-borderRadius":"4px","--beam-subscriptionImpact-iconBackground-width":"50px","--beam-subscriptionImpact-iconBackground-height":"50px","--beam-subscriptionImpact-iconBackground-borderRadius":"50%","--beam-subscriptionImpact-iconBackground-background":"#0a323c","--beam-subscriptionImpact-icon-height":"28px","--beam-subscriptionImpact-icon-margin":"auto","--beam-subscriptionImpact-icon-padding":"10px","--beam-subscriptionImpact-icon-borderRadius":"4px","--beam-subscriptionImpact-image-borderRadius":"4px","--beam-subscriptionImpact-image-minHeight":"0","--beam-subscriptionImpact-image-minWidth":"0","--beam-subscriptionImpact-cardDescription-padding":"0px","--beam-subscriptionImpact-card-progressBar-padding":"8px 0px","--beam-subscriptionImpact-card-progressBarLabel-gap":"10px","--beam-subscriptionImpact-card-progressBarLabel-textAlign":"right","--beam-subscriptionImpact-card-progressBarLabel-marginLeft":"8px","--beam-subscriptionImpact-card-linkContainer-textAlign":"left","--beam-subscriptionImpact-card-impactLink-textDecoration":"underline","--beam-subscriptionImpact-footer-textAlign":"center","--beam-subscriptionImpact-footer-marginTop":"10px","--beam-subscriptionImpact-share-button-icon-name":"share-2","--beam-subscriptionImpact-learnAbout-arrow-display":"block",...u("--beam-subscriptionImpact-title",{fontSize:"20px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),...u("--beam-subscriptionImpact-descriptionPrefix",{fontSize:"14px",fontWeight:"800",lineHeight:"138%",fontStyle:"normal",color:"#2f302d",marginTop:"9px"}),...u("--beam-subscriptionImpact-description",{fontSize:"14px",fontWeight:"400",lineHeight:"138%",fontStyle:"normal",color:"#2f302d",marginTop:"9px"}),...u("--beam-subscriptionImpact-cardTitle",{fontSize:"12px",fontWeight:"bold",lineHeight:"120%",fontStyle:"normal",textTransform:"uppercase"}),...u("--beam-subscriptionImpact-cardDescription",{fontSize:"12px",fontWeight:"400",lineHeight:"18.2px",fontStyle:"normal",color:"#454a47"}),...u("--beam-subscriptionImpact-card-progressBarLabel",{fontSize:"10px",color:"#878a92"}),...u("--beam-subscriptionImpact-card-impactLink",{fontSize:"12px",fontWeight:"600",lineHeight:"16px",fontStyle:"normal",color:"#454a47",marginTop:"auto"})},r=this.impactDataController?.data?.config?.web?.theme||{},l={...e,...r};return Object.assign(Object.create({toCSS(){return Z(this)}}),l)}render(){const{data:e,loading:r,error:l}=this.impactDataController;if(r)return ne();if(l||e==null)return this.debug?ee({error:l||new Error("No data")}):"";const t=e.community[0],a=e.personal[0],d=e.chain.name,f=n(this.configLang,a?.nonprofit.cause||""),h=a?.nonprofit.name,x=a?.impact?.goalProgressPercentage||0,I=!(a?.impact?.goalProgressPercentage>0||a?.impact?.goalCompletionText?.length>0),y=t?.impact?.goalProgressPercentage||0,P=`${x}% ${n(this.configLang,e?.config?.web?.additionalStrings?.percentFunded||"")||s[this.configLang].percentFunded()}`,B=`${y}% ${n(this.configLang,e?.config?.web?.additionalStrings?.percentFunded||"")||s[this.configLang].percentFunded()}`,E=t?.imageUrl||"",F=a?.imageUrl||"",N=a?.nonprofit.causeIconUrl,R=a?.nonprofit.causeIconSelectedUrl,g=this.cssVariables["--beam-SubscriptionImpact-cardStyle"],v=this.cssVariables["--beam-SubscriptionImpact-imagePosition"],T=g==="'image'",L=g==="'selected_icon'"?R:N,U=T?E:L,W=T?F:L,M=n(this.configLang,e?.config?.web?.dynamicStrings?.ctaTitle||"")||s[this.configLang].title({causeName:f}),D=n(this.configLang,e?.config?.web?.dynamicStrings?.ctaFutureTenseTitle||"")||s[this.configLang].futureTenseTitle({causeName:f}),j=G(e.store.communityPageURL)?e.chain.communityImpactUrl:e.store.communityPageURL,V=a?.nonprofit?.website,_=a?.share?.imageUrl,H=this.cssVariables["--beam-SubscriptionImpact-share-button-icon-name"]||"share-2",k=this.cssVariables["--beam-subscriptionImpact-learnAbout-arrow-display"]==="none";return p`
15
15
  <style>
16
16
  :host {
17
17
  ${this.cssVariables.toCSS()}
@@ -24,16 +24,16 @@ import{h as $,f as w,y as p,g as l,t as _,p as C}from"../chunks/lit-WqMxC_PA.esm
24
24
  id="beam-subscriptionImpact-header-container"
25
25
  >
26
26
  <h3 class="title" part="title" id="beam-subscriptionImpact-title">
27
- ${y?M:R}
27
+ ${I?D:M}
28
28
  </h3>
29
29
  <div
30
30
  class="description-container ${this.isMobile?"header-container-mobile description-mobile":"header-container-desktop description-desktop"}"
31
31
  >
32
32
  <span class="description-prefix" part="description">
33
- ${r(this.configLang,e?.config?.web?.additionalStrings?.ctaMessagePrefix||"")||s[this.configLang].ctaMessagePrefix()}
33
+ ${n(this.configLang,e?.config?.web?.additionalStrings?.ctaMessagePrefix||"")||s[this.configLang].ctaMessagePrefix()}
34
34
  </span>
35
35
  <span class="description" part="description" id="beam-subscriptionImpact-description">
36
- ${r(this.configLang,e?.config?.web?.dynamicStrings?.ctaMessage||"")||s[this.configLang].description({nonprofit:h})}
36
+ ${n(this.configLang,e?.config?.web?.dynamicStrings?.ctaMessage||"")||s[this.configLang].description({nonprofit:h})}
37
37
  </span>
38
38
  </div>
39
39
  </div>
@@ -42,21 +42,21 @@ import{h as $,f as w,y as p,g as l,t as _,p as C}from"../chunks/lit-WqMxC_PA.esm
42
42
  class="card-container cardGrid ${this.isMobile?"card-container-mobile":""}"
43
43
  id="beam-subscriptionImpact-card-container"
44
44
  >
45
- ${this.renderInlineCard({title:y?r(this.configLang,e?.config?.web?.additionalStrings?.futureTensePersonalImpactTitle||"")||s[this.configLang].futureTensePersonalImpactTitle():r(this.configLang,e?.config?.web?.additionalStrings?.personalImpactTitle||"")||s[this.configLang].personalImpactTitle(),image:z,description:r(this.configLang,t?.impact?.description||""),link:O,linkText:r(this.configLang,e?.config?.web?.dynamicStrings?.personalLinkCopy||"")||s[this.configLang].personalLinkCopy({nonprofit:h,hideArrow:k}),progressBarValue:x,progressBarText:B,infoPill:r(this.configLang,e?.config?.web?.additionalStrings?.progressPillText||"")||s[this.configLang].progressPillText(),imageType:u,cardType:"personal",imagePosition:T})}
46
- ${this.renderInlineCard({title:r(this.configLang,e?.config?.web?.additionalStrings?.communityImpactTitle||"")||s[this.configLang].communityImpactTitle(),image:Y,description:r(this.configLang,a?.impact?.description||""),link:D,linkText:r(this.configLang,e?.config?.web?.dynamicStrings?.communityLinkCopy||"")||s[this.configLang].communityLinkCopy({brandName:d,hideArrow:k}),progressBarValue:I,progressBarText:F,infoPill:r(this.configLang,e?.config?.web?.additionalStrings?.progressPillText||"")||s[this.configLang].progressPillText(),imageType:u,cardType:"community",imagePosition:T})}
45
+ ${this.renderInlineCard({title:I?n(this.configLang,e?.config?.web?.additionalStrings?.futureTensePersonalImpactTitle||"")||s[this.configLang].futureTensePersonalImpactTitle():n(this.configLang,e?.config?.web?.additionalStrings?.personalImpactTitle||"")||s[this.configLang].personalImpactTitle(),image:W,description:n(this.configLang,a?.impact?.description||""),link:V,linkText:n(this.configLang,e?.config?.web?.dynamicStrings?.personalLinkCopy||"")||s[this.configLang].personalLinkCopy({nonprofit:h,hideArrow:k}),progressBarValue:x,progressBarText:P,infoPill:n(this.configLang,e?.config?.web?.additionalStrings?.progressPillText||"")||s[this.configLang].progressPillText(),imageType:g,cardType:"personal",imagePosition:v})}
46
+ ${this.renderInlineCard({title:n(this.configLang,e?.config?.web?.additionalStrings?.communityImpactTitle||"")||s[this.configLang].communityImpactTitle(),image:U,description:n(this.configLang,t?.impact?.description||""),link:j,linkText:n(this.configLang,e?.config?.web?.dynamicStrings?.communityLinkCopy||"")||s[this.configLang].communityLinkCopy({brandName:d,hideArrow:k}),progressBarValue:y,progressBarText:B,infoPill:n(this.configLang,e?.config?.web?.additionalStrings?.progressPillText||"")||s[this.configLang].progressPillText(),imageType:g,cardType:"community",imagePosition:v})}
47
47
  </div>
48
48
  </div>
49
49
  <div class="footer" part="social-share">
50
50
  <beam-share-button
51
- imageUrl="${G}"
51
+ imageUrl="${_}"
52
52
  brandName="${d}"
53
- shareIcon="${V}"
54
- buttonText="${r(this.configLang,e?.config?.web?.additionalStrings?.shareButtonText||"")}"
53
+ shareIcon="${H}"
54
+ buttonText="${n(this.configLang,e?.config?.web?.additionalStrings?.shareButtonText||"")}"
55
55
  configLang="${this.configLang}"
56
56
  ></beam-share-button>
57
57
  </div>
58
58
  </div>
59
- `}renderInlineCard(e){const n=e.progressBarValue!==void 0&&e.progressBarValue<=1&&e.cardType==="personal";return p`
59
+ `}renderInlineCard(e){const r=e.progressBarValue!==void 0&&e.progressBarValue<=1&&e.cardType==="personal";return p`
60
60
  <div class="inline-card ${this.isMobile?"":"inline-card-desktop"}">
61
61
  ${e.image&&e.imagePosition==="'block'"&&e.imageType==="'image'"?p` <div
62
62
  class="image-block-container"
@@ -76,7 +76,7 @@ import{h as $,f as w,y as p,g as l,t as _,p as C}from"../chunks/lit-WqMxC_PA.esm
76
76
  <div class="impact-container" part="details">
77
77
  <p class="card-description">${e.description}</p>
78
78
  <div class="card-progress-bar">
79
- ${n?p` <beam-info-pill infoText="${e.infoPill}"></beam-info-pill> `:p`
79
+ ${r?p` <beam-info-pill infoText="${e.infoPill}"></beam-info-pill> `:p`
80
80
  <beam-progress-bar value="${e.progressBarValue}" style="flex: 1 0;"> </beam-progress-bar>
81
81
  <span class="details-funding-progress-label"> ${e.progressBarText} </span>
82
82
  `}
@@ -87,7 +87,7 @@ import{h as $,f as w,y as p,g as l,t as _,p as C}from"../chunks/lit-WqMxC_PA.esm
87
87
  </div>
88
88
  </div>
89
89
  </div>
90
- `}}o.tagName="beam-subscription-impact",o.styles=[ie,oe,w`
90
+ `}}o.tagName="beam-subscription-impact",o.styles=[ie,oe,$`
91
91
  :host {
92
92
  display: block;
93
93
  font-family: var(--beam-fontFamily);
@@ -267,5 +267,5 @@ import{h as $,f as w,y as p,g as l,t as _,p as C}from"../chunks/lit-WqMxC_PA.esm
267
267
  text-align: var(--beam-subscriptionImpact-footer-textAlign);
268
268
  margin-top: var(--beam-subscriptionImpact-footer-marginTop);
269
269
  }
270
- `,ce({gap:"var(--beam-subscriptionImpact-cardContainer-gap)",itemMinWidth:"250px",columnCount:"2"})],c([l({type:String,reflect:!0})],o.prototype,"baseUrl"),c([l({type:String,reflect:!1})],o.prototype,"apiKey"),c([l({type:Number})],o.prototype,"storeId"),c([l({type:String,reflect:!0})],o.prototype,"nonprofitId"),c([l({type:String,reflect:!0})],o.prototype,"beamUserId"),c([l({type:String})],o.prototype,"lang"),c([l({type:Boolean})],o.prototype,"debug"),c([l({type:Boolean})],o.prototype,"draftConfig"),c([_()],o.prototype,"isMobile"),c([C(".card-title")],o.prototype,"impactTitleRefs"),c([C(".impact-link")],o.prototype,"impactLinkRefs"),te(o);export{o as BeamSubscriptionImpact};
270
+ `,ce({gap:"var(--beam-subscriptionImpact-cardContainer-gap)",itemMinWidth:"250px",columnCount:"2"})],c([m({type:String,reflect:!0})],o.prototype,"baseUrl"),c([m({type:String,reflect:!1})],o.prototype,"apiKey"),c([m({type:Number})],o.prototype,"storeId"),c([m({type:String,reflect:!0})],o.prototype,"nonprofitId"),c([m({type:String,reflect:!0})],o.prototype,"beamUserId"),c([m({type:String})],o.prototype,"lang"),c([m({type:Boolean})],o.prototype,"debug"),c([m({type:Boolean})],o.prototype,"draftConfig"),c([O()],o.prototype,"isMobile"),c([C(".card-title")],o.prototype,"impactTitleRefs"),c([C(".impact-link")],o.prototype,"impactLinkRefs"),ae(o);export{o as BeamSubscriptionImpact};
271
271
  //# sourceMappingURL=subscription-impact.esm.js.map