@beamimpact/web-sdk 1.42.1 → 1.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/chunks/_share-dialog-dependencies-rnsPzR3i.esm.js +2 -0
  2. package/dist/chunks/_share-dialog-dependencies-rnsPzR3i.esm.js.map +1 -0
  3. package/dist/chunks/_share-dialog-dependencies-wDg8oxHJ.esm.js +2 -0
  4. package/dist/chunks/_share-dialog-dependencies-wDg8oxHJ.esm.js.map +1 -0
  5. package/dist/chunks/{cart-contents-sUhfwLAz.esm.d.ts → cart-contents-WB1BF6hG.esm.d.ts} +1 -1
  6. package/dist/chunks/{events-QJc86_5Y.esm.d.ts → events-MfRTtTVm.esm.d.ts} +1 -1
  7. package/dist/chunks/{index-qjhWIDcT.esm.js → index-0nQiFQrd.esm.js} +2 -2
  8. package/dist/chunks/{index-qjhWIDcT.esm.js.map → index-0nQiFQrd.esm.js.map} +1 -1
  9. package/dist/chunks/index-1Z7n574A.esm.js +2 -0
  10. package/dist/chunks/index-1Z7n574A.esm.js.map +1 -0
  11. package/dist/chunks/index-4HR3T_6I.esm.js +2 -0
  12. package/dist/chunks/index-4HR3T_6I.esm.js.map +1 -0
  13. package/dist/chunks/{index-giTGb0gn.esm.js → index-AaWfjJG7.esm.js} +2 -2
  14. package/dist/chunks/{index-giTGb0gn.esm.js.map → index-AaWfjJG7.esm.js.map} +1 -1
  15. package/dist/chunks/{index-M-0eAFA6.esm.d.ts → index-B9w02q6y.esm.d.ts} +1 -1
  16. package/dist/chunks/{index-_Hgu38MH.esm.d.ts → index-OaRsZJh7.esm.d.ts} +1 -1
  17. package/dist/chunks/{index-euJMrXIc.esm.d.ts → index-UggwPn9Q.esm.d.ts} +1 -1
  18. package/dist/chunks/index-ZN8EcPhA.esm.js +2 -0
  19. package/dist/chunks/index-ZN8EcPhA.esm.js.map +1 -0
  20. package/dist/chunks/index-evgmVzj9.esm.js +2 -0
  21. package/dist/chunks/index-evgmVzj9.esm.js.map +1 -0
  22. package/dist/chunks/index-m0mhJhiY.esm.js +2 -0
  23. package/dist/chunks/index-m0mhJhiY.esm.js.map +1 -0
  24. package/dist/chunks/index-ndhJISxP.esm.js +2 -0
  25. package/dist/chunks/index-ndhJISxP.esm.js.map +1 -0
  26. package/dist/chunks/{index-ZgCs6F4e.esm.d.ts → index-ozcDdIom.esm.d.ts} +4 -4
  27. package/dist/chunks/{index-VHXu2kRx.esm.d.ts → index-uqNCQVUx.esm.d.ts} +1 -1
  28. package/dist/chunks/{index-_UuYsIe9.esm.d.ts → index-yeW2w5bb.esm.d.ts} +1 -1
  29. package/dist/chunks/{openapi-spec--WoGcZgR.esm.d.ts → openapi-spec-GGEBbqAJ.esm.d.ts} +892 -27
  30. package/dist/chunks/order-page-A2VpvPTA.esm.js +2 -0
  31. package/dist/chunks/order-page-A2VpvPTA.esm.js.map +1 -0
  32. package/dist/chunks/{order-page-Ps8Qyjfg.esm.d.ts → order-page-LvE0Otsn.esm.d.ts} +3 -3
  33. package/dist/chunks/order-page-n_PrxspK.esm.js +2 -0
  34. package/dist/chunks/order-page-n_PrxspK.esm.js.map +1 -0
  35. package/dist/chunks/{routes-zzEfDMIn.esm.js → routes-2U31lJuH.esm.js} +2 -2
  36. package/dist/chunks/{routes-zzEfDMIn.esm.js.map → routes-2U31lJuH.esm.js.map} +1 -1
  37. package/dist/chunks/{routes-sc6xljWU.esm.js → routes-nWhY4Rgg.esm.js} +2 -2
  38. package/dist/chunks/{routes-sc6xljWU.esm.js.map → routes-nWhY4Rgg.esm.js.map} +1 -1
  39. package/dist/chunks/{routes-qbvie7oI.esm.d.ts → routes-wCCYf_uA.esm.d.ts} +31 -0
  40. package/dist/chunks/{share-button-AUvXGlky.esm.js → share-button--FOuz6Ka.esm.js} +2 -2
  41. package/dist/chunks/{share-button-AUvXGlky.esm.js.map → share-button--FOuz6Ka.esm.js.map} +1 -1
  42. package/dist/chunks/{share-button-wmGQW923.esm.js → share-button-t0XcS-C-.esm.js} +2 -2
  43. package/dist/chunks/{share-button-wmGQW923.esm.js.map → share-button-t0XcS-C-.esm.js.map} +1 -1
  44. package/dist/chunks/{shoelace-components-29N4dEDv.esm.js → shoelace-components-DDO9begn.esm.js} +2 -2
  45. package/dist/chunks/{shoelace-components-29N4dEDv.esm.js.map → shoelace-components-DDO9begn.esm.js.map} +1 -1
  46. package/dist/chunks/{shoelace-components-YboJNgEe.esm.js → shoelace-components-qmUjB2xP.esm.js} +2 -2
  47. package/dist/chunks/{shoelace-components-YboJNgEe.esm.js.map → shoelace-components-qmUjB2xP.esm.js.map} +1 -1
  48. package/dist/chunks/{update-cart-_5yw3Tg7.esm.js → update-cart-4A6AXGhP.esm.js} +2 -2
  49. package/dist/chunks/{update-cart-_5yw3Tg7.esm.js.map → update-cart-4A6AXGhP.esm.js.map} +1 -1
  50. package/dist/chunks/{update-cart-yfZE8kwS.esm.js → update-cart-oxNW7D6U.esm.js} +2 -2
  51. package/dist/chunks/{update-cart-yfZE8kwS.esm.js.map → update-cart-oxNW7D6U.esm.js.map} +1 -1
  52. package/dist/chunks/{update-cart-SajqAoez.esm.d.ts → update-cart-tjLR7pMx.esm.d.ts} +1 -1
  53. package/dist/components/community-impact.esm.js +1 -1
  54. package/dist/components/community-impact.js +1 -1
  55. package/dist/components/cumulative-impact.esm.js +1 -1
  56. package/dist/components/cumulative-impact.js +1 -1
  57. package/dist/components/impact-overview.d.ts +15 -0
  58. package/dist/components/impact-overview.esm.js +7 -7
  59. package/dist/components/impact-overview.esm.js.map +1 -1
  60. package/dist/components/impact-overview.js +7 -7
  61. package/dist/components/impact-overview.js.map +1 -1
  62. package/dist/components/index.d.ts +3 -3
  63. package/dist/components/index.esm.js +1 -1
  64. package/dist/components/index.js +1 -1
  65. package/dist/components/post-purchase.d.ts +10 -2
  66. package/dist/components/post-purchase.esm.js +2 -1
  67. package/dist/components/post-purchase.esm.js.map +1 -1
  68. package/dist/components/post-purchase.js +2 -1
  69. package/dist/components/post-purchase.js.map +1 -1
  70. package/dist/components/product-details-page.d.ts +3 -0
  71. package/dist/components/product-details-page.esm.js +1 -1
  72. package/dist/components/product-details-page.js +1 -1
  73. package/dist/components/redeem-transaction.d.ts +2 -2
  74. package/dist/components/redeem-transaction.esm.js +1 -1
  75. package/dist/components/redeem-transaction.js +1 -1
  76. package/dist/components/select-nonprofit.d.ts +2 -2
  77. package/dist/components/select-nonprofit.esm.js +1 -1
  78. package/dist/components/select-nonprofit.js +1 -1
  79. package/dist/components/select-subscription-nonprofit.esm.js +1 -1
  80. package/dist/components/select-subscription-nonprofit.js +1 -1
  81. package/dist/components/shopify.d.ts +6 -6
  82. package/dist/components/shopify.esm.js +1 -1
  83. package/dist/components/shopify.js +1 -1
  84. package/dist/components/social-share.d.ts +1 -0
  85. package/dist/components/social-share.esm.js +2 -2
  86. package/dist/components/social-share.esm.js.map +1 -1
  87. package/dist/components/social-share.js +2 -2
  88. package/dist/components/social-share.js.map +1 -1
  89. package/dist/components/subscription-impact.d.ts +14 -0
  90. package/dist/components/subscription-impact.esm.js +1 -1
  91. package/dist/components/subscription-impact.js +1 -1
  92. package/dist/components/subscription-management.d.ts +25 -3
  93. package/dist/components/subscription-management.esm.js +1 -1
  94. package/dist/components/subscription-management.js +1 -1
  95. package/dist/index.d.ts +12 -12
  96. package/dist/index.esm.js +1 -1
  97. package/dist/index.js +1 -1
  98. package/dist/integrations/beam.esm.js +1 -1
  99. package/dist/integrations/beam.js +1 -1
  100. package/dist/integrations/cart.d.ts +3 -3
  101. package/dist/integrations/cart.esm.js +1 -1
  102. package/dist/integrations/cart.js +1 -1
  103. package/dist/integrations/index.d.ts +10 -10
  104. package/dist/integrations/index.esm.js +1 -1
  105. package/dist/integrations/index.js +1 -1
  106. package/dist/integrations/logs.d.ts +2 -2
  107. package/dist/integrations/logs.esm.js +1 -1
  108. package/dist/integrations/logs.js +1 -1
  109. package/dist/integrations/shopify.d.ts +5 -5
  110. package/dist/integrations/shopify.esm.js +1 -1
  111. package/dist/integrations/shopify.js +1 -1
  112. package/dist/integrations/statsig.esm.js +1 -1
  113. package/dist/integrations/statsig.js +1 -1
  114. package/dist/integrations/utils.d.ts +3 -3
  115. package/dist/react/community-impact.esm.js +1 -1
  116. package/dist/react/community-impact.js +1 -1
  117. package/dist/react/cumulative-impact.esm.js +1 -1
  118. package/dist/react/cumulative-impact.js +1 -1
  119. package/dist/react/impact-overview.esm.js +1 -1
  120. package/dist/react/impact-overview.js +1 -1
  121. package/dist/react/index.d.ts +4 -4
  122. package/dist/react/index.esm.js +1 -1
  123. package/dist/react/index.js +1 -1
  124. package/dist/react/post-purchase.d.ts +2 -2
  125. package/dist/react/post-purchase.esm.js +1 -1
  126. package/dist/react/post-purchase.js +1 -1
  127. package/dist/react/product-details-page.esm.js +1 -1
  128. package/dist/react/product-details-page.js +1 -1
  129. package/dist/react/redeem-transaction.d.ts +3 -3
  130. package/dist/react/redeem-transaction.esm.js +1 -1
  131. package/dist/react/redeem-transaction.js +1 -1
  132. package/dist/react/select-nonprofit.d.ts +3 -3
  133. package/dist/react/select-nonprofit.esm.js +1 -1
  134. package/dist/react/select-nonprofit.js +1 -1
  135. package/dist/react/select-subscription-nonprofit.d.ts +3 -3
  136. package/dist/react/select-subscription-nonprofit.esm.js +1 -1
  137. package/dist/react/select-subscription-nonprofit.js +1 -1
  138. package/dist/react/social-share.esm.js +1 -1
  139. package/dist/react/social-share.js +1 -1
  140. package/dist/react/subscription-impact.esm.js +1 -1
  141. package/dist/react/subscription-impact.js +1 -1
  142. package/dist/react/subscription-management.d.ts +3 -3
  143. package/dist/react/subscription-management.esm.js +1 -1
  144. package/dist/react/subscription-management.js +1 -1
  145. package/dist/utils/events.d.ts +3 -3
  146. package/dist/utils/index.d.ts +3 -3
  147. package/package.json +1 -1
  148. package/dist/chunks/_share-dialog-dependencies-KpCcT5X6.esm.js +0 -2
  149. package/dist/chunks/_share-dialog-dependencies-KpCcT5X6.esm.js.map +0 -1
  150. package/dist/chunks/_share-dialog-dependencies-vHG7OoOA.esm.js +0 -2
  151. package/dist/chunks/_share-dialog-dependencies-vHG7OoOA.esm.js.map +0 -1
  152. package/dist/chunks/index--iA4GcfC.esm.js +0 -2
  153. package/dist/chunks/index--iA4GcfC.esm.js.map +0 -1
  154. package/dist/chunks/index-F1U8ROKG.esm.js +0 -2
  155. package/dist/chunks/index-F1U8ROKG.esm.js.map +0 -1
  156. package/dist/chunks/index-LF_9YLx7.esm.js +0 -2
  157. package/dist/chunks/index-LF_9YLx7.esm.js.map +0 -1
  158. package/dist/chunks/index-MSOdvudi.esm.js +0 -2
  159. package/dist/chunks/index-MSOdvudi.esm.js.map +0 -1
  160. package/dist/chunks/index-QeW-IaK9.esm.js +0 -2
  161. package/dist/chunks/index-QeW-IaK9.esm.js.map +0 -1
  162. package/dist/chunks/index-e--9y-Sl.esm.js +0 -2
  163. package/dist/chunks/index-e--9y-Sl.esm.js.map +0 -1
  164. package/dist/chunks/order-page-HoZ7DC0L.esm.js +0 -2
  165. package/dist/chunks/order-page-HoZ7DC0L.esm.js.map +0 -1
  166. package/dist/chunks/order-page-m5hkOPEQ.esm.js +0 -2
  167. package/dist/chunks/order-page-m5hkOPEQ.esm.js.map +0 -1
@@ -1,12 +1,12 @@
1
1
  import { waitForElement } from '../utils/wait-for-element.js';
2
2
  export { initNetworkListeners } from '../utils/network-listeners.js';
3
- export { e as events } from '../chunks/events-QJc86_5Y.esm.js';
4
- export { T as TBeamOrderPageParams, a as addBeamAttributesToCart, g as getCurrentCart, r as registerCartIntegration, s as showBeamOrderPageWidgets, t as trackCart } from '../chunks/order-page-Ps8Qyjfg.esm.js';
5
- import '../chunks/cart-contents-sUhfwLAz.esm.js';
6
- import '../chunks/openapi-spec--WoGcZgR.esm.js';
3
+ export { e as events } from '../chunks/events-MfRTtTVm.esm.js';
4
+ export { T as TBeamOrderPageParams, a as addBeamAttributesToCart, g as getCurrentCart, r as registerCartIntegration, s as showBeamOrderPageWidgets, t as trackCart } from '../chunks/order-page-LvE0Otsn.esm.js';
5
+ import '../chunks/cart-contents-WB1BF6hG.esm.js';
6
+ import '../chunks/openapi-spec-GGEBbqAJ.esm.js';
7
7
  import '../chunks/types-zbTZ8-KP.esm.js';
8
8
  import 'lodash';
9
- import '../chunks/update-cart-SajqAoez.esm.js';
9
+ import '../chunks/update-cart-tjLR7pMx.esm.js';
10
10
  import '../chunks/types-aju0qrRe.esm.js';
11
11
  import './post-purchase.js';
12
12
  import 'lit';
@@ -17,7 +17,7 @@ import '../chunks/promo-pill-label-3bA1z-la.esm.js';
17
17
  import './beam-partner-logos.js';
18
18
  import './impact-overview.js';
19
19
  import '../chunks/share-button-hDn8fnBI.esm.js';
20
- import '../chunks/routes-qbvie7oI.esm.js';
20
+ import '../chunks/routes-wCCYf_uA.esm.js';
21
21
 
22
22
  /**
23
23
  * @deprecated
@@ -1,2 +1,2 @@
1
- import{waitForElement as t}from"../utils/wait-for-element.esm.js";import{getCookieMap as r,getCookieValue as o}from"../utils/cookies.esm.js";import{initNetworkListeners as U}from"../utils/network-listeners.esm.js";import{e as j}from"../chunks/events-_4nImo3u.esm.js";import{p as y,I as z,M as D,s as G,U as H}from"../chunks/order-page-m5hkOPEQ.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../utils/logger.esm.js";import"../utils/local-storage.esm.js";import"../utils/memoize-last.esm.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../chunks/update-cart-yfZE8kwS.esm.js";import"../chunks/routes-zzEfDMIn.esm.js";import"../utils/remote-session.esm.js";import"./post-purchase.esm.js";import"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/enforce-config-HksNiOMu.esm.js";import"../chunks/localize-IRs8JglT.esm.js";import"./redeem-transaction.esm.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"../chunks/promo-pill-label-3Xtr5ALT.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"./beam-partner-logos.esm.js";import"../chunks/loading-template-mLjOGXMj.esm.js";import"../chunks/css-card-grid-r6wxRbPV.esm.js";import"../chunks/checkbox-P2JYPqxl.esm.js";import"./impact-overview.esm.js";import"../chunks/shoelace-components-YboJNgEe.esm.js";import"../chunks/share-button-AUvXGlky.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/responsive-KbDsZM6S.esm.js";const i={waitForElement:t,getCookieMap:r,getCookieValue:o};export{y as addBeamAttributesToCart,j as events,z as getCurrentCart,U as initNetworkListeners,D as registerCartIntegration,G as showBeamOrderPageWidgets,H as trackCart,i as utils};
1
+ import{waitForElement as t}from"../utils/wait-for-element.esm.js";import{getCookieMap as r,getCookieValue as o}from"../utils/cookies.esm.js";import{initNetworkListeners as U}from"../utils/network-listeners.esm.js";import{e as j}from"../chunks/events-_4nImo3u.esm.js";import{f as y,h as z,M as D,s as G,U as H}from"../chunks/order-page-A2VpvPTA.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../utils/logger.esm.js";import"../utils/local-storage.esm.js";import"../utils/memoize-last.esm.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../chunks/update-cart-oxNW7D6U.esm.js";import"../chunks/routes-2U31lJuH.esm.js";import"../utils/remote-session.esm.js";import"./post-purchase.esm.js";import"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/enforce-config-HksNiOMu.esm.js";import"../chunks/localize-IRs8JglT.esm.js";import"./redeem-transaction.esm.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"../chunks/promo-pill-label-3Xtr5ALT.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"./beam-partner-logos.esm.js";import"../chunks/loading-template-mLjOGXMj.esm.js";import"../chunks/css-card-grid-r6wxRbPV.esm.js";import"../chunks/checkbox-P2JYPqxl.esm.js";import"./impact-overview.esm.js";import"../chunks/shoelace-components-qmUjB2xP.esm.js";import"../chunks/share-button--FOuz6Ka.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/responsive-KbDsZM6S.esm.js";const i={waitForElement:t,getCookieMap:r,getCookieValue:o};export{y as addBeamAttributesToCart,j as events,z as getCurrentCart,U as initNetworkListeners,D as registerCartIntegration,G as showBeamOrderPageWidgets,H as trackCart,i as utils};
2
2
  //# sourceMappingURL=shopify.esm.js.map
@@ -1,2 +1,2 @@
1
- import{waitForElement as t}from"../utils/wait-for-element.js";import{getCookieMap as r,getCookieValue as o}from"../utils/cookies.js";import{initNetworkListeners as U}from"../utils/network-listeners.js";import{e as j}from"../chunks/events-_4nImo3u.esm.js";import{p as y,I as z,M as D,s as G,U as H}from"../chunks/order-page-HoZ7DC0L.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../utils/logger.js";import"../utils/local-storage.js";import"../utils/memoize-last.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../chunks/update-cart-_5yw3Tg7.esm.js";import"../chunks/routes-sc6xljWU.esm.js";import"../utils/remote-session.js";import"./post-purchase.js";import"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/enforce-config-er6B5Gkj.esm.js";import"../chunks/localize-SsJbTmMj.esm.js";import"./redeem-transaction.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"../chunks/promo-pill-label-3Xtr5ALT.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"./beam-partner-logos.js";import"../chunks/loading-template-mLjOGXMj.esm.js";import"../chunks/css-card-grid-r6wxRbPV.esm.js";import"../chunks/checkbox-P2JYPqxl.esm.js";import"./impact-overview.js";import"../chunks/shoelace-components-29N4dEDv.esm.js";import"../chunks/share-button-wmGQW923.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/responsive-KbDsZM6S.esm.js";const i={waitForElement:t,getCookieMap:r,getCookieValue:o};export{y as addBeamAttributesToCart,j as events,z as getCurrentCart,U as initNetworkListeners,D as registerCartIntegration,G as showBeamOrderPageWidgets,H as trackCart,i as utils};
1
+ import{waitForElement as t}from"../utils/wait-for-element.js";import{getCookieMap as r,getCookieValue as o}from"../utils/cookies.js";import{initNetworkListeners as U}from"../utils/network-listeners.js";import{e as j}from"../chunks/events-_4nImo3u.esm.js";import{f as y,h as z,M as D,s as G,U as H}from"../chunks/order-page-n_PrxspK.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../utils/logger.js";import"../utils/local-storage.js";import"../utils/memoize-last.js";import"../chunks/cart-contents-h60geKWa.esm.js";import"../chunks/update-cart-4A6AXGhP.esm.js";import"../chunks/routes-nWhY4Rgg.esm.js";import"../utils/remote-session.js";import"./post-purchase.js";import"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/enforce-config-er6B5Gkj.esm.js";import"../chunks/localize-SsJbTmMj.esm.js";import"./redeem-transaction.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"../chunks/promo-pill-label-3Xtr5ALT.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"./beam-partner-logos.js";import"../chunks/loading-template-mLjOGXMj.esm.js";import"../chunks/css-card-grid-r6wxRbPV.esm.js";import"../chunks/checkbox-P2JYPqxl.esm.js";import"./impact-overview.js";import"../chunks/shoelace-components-DDO9begn.esm.js";import"../chunks/share-button-t0XcS-C-.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/responsive-KbDsZM6S.esm.js";const i={waitForElement:t,getCookieMap:r,getCookieValue:o};export{y as addBeamAttributesToCart,j as events,z as getCurrentCart,U as initNetworkListeners,D as registerCartIntegration,G as showBeamOrderPageWidgets,H as trackCart,i as utils};
2
2
  //# sourceMappingURL=shopify.js.map
@@ -19,6 +19,7 @@ declare class BeamSocialShare extends LitElement {
19
19
  baseUrl: string;
20
20
  lang: LANGUAGES;
21
21
  debug: boolean;
22
+ transactionId?: string;
22
23
  private brandName;
23
24
  private shareImageUrl;
24
25
  private dataUrl?;
@@ -1,4 +1,4 @@
1
- import{f as m,g as n,t as l,h as g,y as b}from"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"../chunks/shoelace-components-YboJNgEe.esm.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"./beam-partner-logos.esm.js";import{c as f,d as y,e as u}from"../chunks/enforce-config-HksNiOMu.esm.js";import{D as w,S as x,W as S,g as U}from"../chunks/routes-zzEfDMIn.esm.js";import{_ as I}from"../chunks/loading-template-mLjOGXMj.esm.js";import{u as p,s as r}from"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.esm.js";var k=Object.defineProperty,v=Object.getOwnPropertyDescriptor,i=(c,t,a,o)=>{for(var s=o>1?void 0:o?v(t,a):t,h=c.length-1,d;h>=0;h--)(d=c[h])&&(s=(o?d(t,a,s):d(s))||s);return o&&s&&k(t,a,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 U({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{storeId:this.storeId,personalImpactLimit:0,nonprofitId:this.nonprofitId,widgetName:S.community_impact,version:"1.0.0",lang:this.configLang}})}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;const a=t.community[0];if(this.shareImageUrl=a?.share.imageUrl,this.shareImageUrl){const o=await p(this.shareImageUrl);this.file=o,this.dataUrl=URL.createObjectURL(o)}}}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 a=await p(t);navigator.share&&this.brandName&&await navigator.share({files:[a],title:r[this.lang].impactShareTitle(),text:r[this.lang].impactShareText({brandName:this.brandName})})}catch(a){this.debug&&console.error("Failed to open share sheet",a)}}async handleClickCopy(){if(this.file)try{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){const a=t.currentTarget;this.isMobile&&this.shareImageUrl?(t.preventDefault(),this.openSystemShareSheet(this.shareImageUrl)):this.dataUrl&&(a.href=this.dataUrl,a.download=r[this.lang].impactShareTitle())}render(){return!this.brandName||!this.shareImageUrl||!this.dataUrl?I():b`
1
+ import{f as m,g as s,t as n,h as g,y as b}from"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"../chunks/shoelace-components-qmUjB2xP.esm.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"./beam-partner-logos.esm.js";import{c as f,d as y,e as u}from"../chunks/enforce-config-HksNiOMu.esm.js";import{D as w,S as x,W as I,g as S}from"../chunks/routes-2U31lJuH.esm.js";import{_ as U}from"../chunks/loading-template-mLjOGXMj.esm.js";import{u as p,s as r}from"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.esm.js";var v=Object.defineProperty,k=Object.getOwnPropertyDescriptor,i=(c,t,a,l)=>{for(var o=l>1?void 0:l?k(t,a):t,h=c.length-1,d;h>=0;h--)(d=c[h])&&(o=(l?d(t,a,o):d(o))||o);return l&&o&&v(t,a,o),o};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 S({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{storeId:this.storeId,personalImpactLimit:0,nonprofitId:this.nonprofitId,widgetName:I.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,this.shareImageUrl)){const a=await p(this.shareImageUrl);this.file=a,this.dataUrl=URL.createObjectURL(a)}}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 a=await p(t);navigator.share&&this.brandName&&await navigator.share({files:[a],title:r[this.lang].impactShareTitle(),text:r[this.lang].impactShareText({brandName:this.brandName})})}catch(a){this.debug&&console.error("Failed to open share sheet",a)}}async handleClickCopy(){if(this.file)try{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){const a=t.currentTarget;this.isMobile&&this.shareImageUrl?(t.preventDefault(),this.openSystemShareSheet(this.shareImageUrl)):this.dataUrl&&(a.href=this.dataUrl,a.download=r[this.lang].impactShareTitle())}render(){return!this.brandName||!this.shareImageUrl||!this.dataUrl?U():b`
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>
@@ -166,5 +166,5 @@ import{f as m,g as n,t as l,h as g,y as b}from"../chunks/lit-3QHn3fwl.esm.js";im
166
166
  margin: 5px 0;
167
167
  }
168
168
  }
169
- `],i([n({type:String})],e.prototype,"apiKey",2),i([n({type:Number})],e.prototype,"storeId",2),i([n({type:Number})],e.prototype,"nonprofitId",2),i([n({type:String})],e.prototype,"baseUrl",2),i([n({type:String})],e.prototype,"lang",2),i([n({type:Boolean})],e.prototype,"debug",2),i([l()],e.prototype,"brandName",2),i([l()],e.prototype,"shareImageUrl",2),i([l()],e.prototype,"dataUrl",2),i([l()],e.prototype,"file",2),i([l()],e.prototype,"isMobile",2),i([l()],e.prototype,"windowResized",2),y(e);export{e as BeamSocialShare};
169
+ `],i([s({type:String})],e.prototype,"apiKey",2),i([s({type:Number})],e.prototype,"storeId",2),i([s({type:Number})],e.prototype,"nonprofitId",2),i([s({type:String})],e.prototype,"baseUrl",2),i([s({type:String})],e.prototype,"lang",2),i([s({type:Boolean})],e.prototype,"debug",2),i([s({type:String})],e.prototype,"transactionId",2),i([n()],e.prototype,"brandName",2),i([n()],e.prototype,"shareImageUrl",2),i([n()],e.prototype,"dataUrl",2),i([n()],e.prototype,"file",2),i([n()],e.prototype,"isMobile",2),i([n()],e.prototype,"windowResized",2),y(e);export{e as BeamSocialShare};
170
170
  //# sourceMappingURL=social-share.esm.js.map
@@ -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\";\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\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 },\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 const communityImpact = data.community[0];\n this.shareImageUrl = communityImpact?.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 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 const target = event.currentTarget as HTMLAnchorElement;\n\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":["BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","communityImpact","file","urlToFile","imageUrl","strings","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\";\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;\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 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 const target = event.currentTarget as HTMLAnchorElement;\n\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":["BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","file","urlToFile","imageUrl","strings","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 n,t as l,h as g,y as b}from"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"../chunks/shoelace-components-29N4dEDv.esm.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"./beam-partner-logos.js";import{c as f,d as y,e as u}from"../chunks/enforce-config-er6B5Gkj.esm.js";import{D as w,S as x,W as S,g as U}from"../chunks/routes-sc6xljWU.esm.js";import{_ as I}from"../chunks/loading-template-mLjOGXMj.esm.js";import{u as p,s as r}from"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.js";var k=Object.defineProperty,v=Object.getOwnPropertyDescriptor,i=(c,t,a,o)=>{for(var s=o>1?void 0:o?v(t,a):t,h=c.length-1,d;h>=0;h--)(d=c[h])&&(s=(o?d(t,a,s):d(s))||s);return o&&s&&k(t,a,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 U({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{storeId:this.storeId,personalImpactLimit:0,nonprofitId:this.nonprofitId,widgetName:S.community_impact,version:"1.0.0",lang:this.configLang}})}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;const a=t.community[0];if(this.shareImageUrl=a?.share.imageUrl,this.shareImageUrl){const o=await p(this.shareImageUrl);this.file=o,this.dataUrl=URL.createObjectURL(o)}}}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 a=await p(t);navigator.share&&this.brandName&&await navigator.share({files:[a],title:r[this.lang].impactShareTitle(),text:r[this.lang].impactShareText({brandName:this.brandName})})}catch(a){this.debug&&console.error("Failed to open share sheet",a)}}async handleClickCopy(){if(this.file)try{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){const a=t.currentTarget;this.isMobile&&this.shareImageUrl?(t.preventDefault(),this.openSystemShareSheet(this.shareImageUrl)):this.dataUrl&&(a.href=this.dataUrl,a.download=r[this.lang].impactShareTitle())}render(){return!this.brandName||!this.shareImageUrl||!this.dataUrl?I():b`
1
+ import{f as m,g as s,t as n,h as g,y as b}from"../chunks/lit-3QHn3fwl.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"../chunks/shoelace-components-DDO9begn.esm.js";import"../chunks/progress-bar-HVG_n8_6.esm.js";import"./beam-partner-logos.js";import{c as f,d as y,e as u}from"../chunks/enforce-config-er6B5Gkj.esm.js";import{D as w,S as x,W as I,g as S}from"../chunks/routes-nWhY4Rgg.esm.js";import{_ as U}from"../chunks/loading-template-mLjOGXMj.esm.js";import{u as p,s as r}from"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.js";var v=Object.defineProperty,k=Object.getOwnPropertyDescriptor,i=(c,t,a,l)=>{for(var o=l>1?void 0:l?k(t,a):t,h=c.length-1,d;h>=0;h--)(d=c[h])&&(o=(l?d(t,a,o):d(o))||o);return l&&o&&v(t,a,o),o};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 S({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},queryParams:{storeId:this.storeId,personalImpactLimit:0,nonprofitId:this.nonprofitId,widgetName:I.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,this.shareImageUrl)){const a=await p(this.shareImageUrl);this.file=a,this.dataUrl=URL.createObjectURL(a)}}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 a=await p(t);navigator.share&&this.brandName&&await navigator.share({files:[a],title:r[this.lang].impactShareTitle(),text:r[this.lang].impactShareText({brandName:this.brandName})})}catch(a){this.debug&&console.error("Failed to open share sheet",a)}}async handleClickCopy(){if(this.file)try{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){const a=t.currentTarget;this.isMobile&&this.shareImageUrl?(t.preventDefault(),this.openSystemShareSheet(this.shareImageUrl)):this.dataUrl&&(a.href=this.dataUrl,a.download=r[this.lang].impactShareTitle())}render(){return!this.brandName||!this.shareImageUrl||!this.dataUrl?U():b`
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>
@@ -166,5 +166,5 @@ import{f as m,g as n,t as l,h as g,y as b}from"../chunks/lit-3QHn3fwl.esm.js";im
166
166
  margin: 5px 0;
167
167
  }
168
168
  }
169
- `],i([n({type:String})],e.prototype,"apiKey",2),i([n({type:Number})],e.prototype,"storeId",2),i([n({type:Number})],e.prototype,"nonprofitId",2),i([n({type:String})],e.prototype,"baseUrl",2),i([n({type:String})],e.prototype,"lang",2),i([n({type:Boolean})],e.prototype,"debug",2),i([l()],e.prototype,"brandName",2),i([l()],e.prototype,"shareImageUrl",2),i([l()],e.prototype,"dataUrl",2),i([l()],e.prototype,"file",2),i([l()],e.prototype,"isMobile",2),i([l()],e.prototype,"windowResized",2),y(e);export{e as BeamSocialShare};
169
+ `],i([s({type:String})],e.prototype,"apiKey",2),i([s({type:Number})],e.prototype,"storeId",2),i([s({type:Number})],e.prototype,"nonprofitId",2),i([s({type:String})],e.prototype,"baseUrl",2),i([s({type:String})],e.prototype,"lang",2),i([s({type:Boolean})],e.prototype,"debug",2),i([s({type:String})],e.prototype,"transactionId",2),i([n()],e.prototype,"brandName",2),i([n()],e.prototype,"shareImageUrl",2),i([n()],e.prototype,"dataUrl",2),i([n()],e.prototype,"file",2),i([n()],e.prototype,"isMobile",2),i([n()],e.prototype,"windowResized",2),y(e);export{e as BeamSocialShare};
170
170
  //# sourceMappingURL=social-share.js.map
@@ -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\";\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\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 },\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 const communityImpact = data.community[0];\n this.shareImageUrl = communityImpact?.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 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 const target = event.currentTarget as HTMLAnchorElement;\n\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":["BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","communityImpact","file","urlToFile","imageUrl","strings","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\";\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;\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 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 const target = event.currentTarget as HTMLAnchorElement;\n\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":["BeamSocialShare","LitElement","DEFAULT_BASE_URL","SUPPORTED_LANGUAGES","enforceConfig","getImpact","WIDGET_NAMES","error","data","file","urlToFile","imageUrl","strings","event","target","_loading","html","cssReset","css","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
@@ -38,6 +38,7 @@ declare class BeamSubscriptionImpact extends LitElement {
38
38
  chain: {
39
39
  name: string;
40
40
  logoUrl: string | null;
41
+ logoLockupUrl?: string | null | undefined;
41
42
  communityImpactUrl: string | null;
42
43
  donationTypeName: string | null;
43
44
  matchDonationTypeName: string | null;
@@ -53,6 +54,9 @@ declare class BeamSubscriptionImpact extends LitElement {
53
54
  description: string;
54
55
  promoDescriptionPrefix?: string | undefined;
55
56
  promoDescription?: string | undefined;
57
+ confirmButton?: string | undefined;
58
+ confirmedButton?: string | undefined;
59
+ collapsedButton?: string | undefined;
56
60
  theme?: {
57
61
  [key: string]: unknown;
58
62
  } | null | undefined;
@@ -94,6 +98,10 @@ declare class BeamSubscriptionImpact extends LitElement {
94
98
  causeIconUrl: string | null;
95
99
  causeIconSelectedUrl: string | null;
96
100
  causeColor: string | null;
101
+ extensibility?: {
102
+ causeIconUrl?: string | null | undefined;
103
+ causeIconSelectedUrl?: string | null | undefined;
104
+ } | undefined;
97
105
  website: string | null;
98
106
  websiteLinkText: string;
99
107
  badge?: string | undefined;
@@ -119,6 +127,10 @@ declare class BeamSubscriptionImpact extends LitElement {
119
127
  causeIconUrl: string | null;
120
128
  causeIconSelectedUrl: string | null;
121
129
  causeColor: string | null;
130
+ extensibility?: {
131
+ causeIconUrl?: string | null | undefined;
132
+ causeIconSelectedUrl?: string | null | undefined;
133
+ } | undefined;
122
134
  website: string | null;
123
135
  websiteLinkText: string;
124
136
  badge?: string | undefined;
@@ -139,6 +151,8 @@ declare class BeamSubscriptionImpact extends LitElement {
139
151
  isActive: boolean;
140
152
  multiplier: number | null;
141
153
  } | null;
154
+ promoAssetUrl: string | null;
155
+ personalImpactAssetUrl: string | null;
142
156
  }>;
143
157
  private impactDataController;
144
158
  impactTitleRefs: HTMLElement[];
@@ -1,4 +1,4 @@
1
- import{h as v,f as T,y as m,g as d,t as O,p as L}from"../chunks/lit-3QHn3fwl.esm.js";import{d as k}from"../chunks/lodash-P8OIs-at.esm.js";import{p as M}from"../chunks/progress-bar-HVG_n8_6.esm.js";import{s as $,a as G}from"../chunks/share-button-AUvXGlky.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import{D as V,g as _,S as j}from"../chunks/routes-zzEfDMIn.esm.js";import{u as b,A as H,d as g,a as K,_ as q,i as r}from"../chunks/localize-IRs8JglT.esm.js";import{c as J,d as Q,e as X}from"../chunks/enforce-config-HksNiOMu.esm.js";import{_ as Z}from"../chunks/loading-template-mLjOGXMj.esm.js";import{makeApiKeyHeader as ee}from"../utils/makeApiKeyHeader.esm.js";import{c as ie}from"../chunks/responsive-KbDsZM6S.esm.js";import{logger as te}from"../utils/logger.esm.js";import{c as ae}from"../chunks/css-card-grid-r6wxRbPV.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";var re=Object.defineProperty,ne=Object.getOwnPropertyDescriptor,oe=(e,i,a,n)=>{for(var t=n>1?void 0:n?ne(i,a):i,c=e.length-1,p;c>=0;c--)(p=e[c])&&(t=(n?p(i,a,t):p(t))||t);return n&&t&&re(i,a,t),t};class w extends v{constructor(){super(...arguments),this.infoText=""}static get styles(){return T`
1
+ import{h as v,f as T,y as m,g as d,t as O,p as L}from"../chunks/lit-3QHn3fwl.esm.js";import{d as k}from"../chunks/lodash-P8OIs-at.esm.js";import{p as M}from"../chunks/progress-bar-HVG_n8_6.esm.js";import{s as $,a as G}from"../chunks/share-button--FOuz6Ka.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import{D as V,g as _,S as j}from"../chunks/routes-2U31lJuH.esm.js";import{u as b,A as H,d as g,a as K,_ as q,i as r}from"../chunks/localize-IRs8JglT.esm.js";import{c as J,d as Q,e as X}from"../chunks/enforce-config-HksNiOMu.esm.js";import{_ as Z}from"../chunks/loading-template-mLjOGXMj.esm.js";import{makeApiKeyHeader as ee}from"../utils/makeApiKeyHeader.esm.js";import{c as ie}from"../chunks/responsive-KbDsZM6S.esm.js";import{logger as te}from"../utils/logger.esm.js";import{c as ae}from"../chunks/css-card-grid-r6wxRbPV.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";var re=Object.defineProperty,ne=Object.getOwnPropertyDescriptor,oe=(e,i,a,n)=>{for(var t=n>1?void 0:n?ne(i,a):i,c=e.length-1,p;c>=0;c--)(p=e[c])&&(t=(n?p(i,a,t):p(t))||t);return n&&t&&re(i,a,t),t};class w extends v{constructor(){super(...arguments),this.infoText=""}static get styles(){return T`
2
2
  sl-badge::part(base) {
3
3
  background-color: var(--beam-pillLabel-color-background, #000);
4
4
  color: var(--beam-pillLabel-color, #fff);
@@ -1,4 +1,4 @@
1
- import{h as v,f as T,y as m,g as d,t as O,p as L}from"../chunks/lit-3QHn3fwl.esm.js";import{d as k}from"../chunks/lodash-P8OIs-at.esm.js";import{p as M}from"../chunks/progress-bar-HVG_n8_6.esm.js";import{s as $,a as G}from"../chunks/share-button-wmGQW923.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import{D as V,g as _,S as j}from"../chunks/routes-sc6xljWU.esm.js";import{u as b,A as H,d as g,a as K,_ as q,i as r}from"../chunks/localize-SsJbTmMj.esm.js";import{c as J,d as Q,e as X}from"../chunks/enforce-config-er6B5Gkj.esm.js";import{_ as Z}from"../chunks/loading-template-mLjOGXMj.esm.js";import{makeApiKeyHeader as ee}from"../utils/makeApiKeyHeader.js";import{c as ie}from"../chunks/responsive-KbDsZM6S.esm.js";import{logger as te}from"../utils/logger.js";import{c as ae}from"../chunks/css-card-grid-r6wxRbPV.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";var re=Object.defineProperty,ne=Object.getOwnPropertyDescriptor,oe=(e,i,a,n)=>{for(var t=n>1?void 0:n?ne(i,a):i,c=e.length-1,p;c>=0;c--)(p=e[c])&&(t=(n?p(i,a,t):p(t))||t);return n&&t&&re(i,a,t),t};class w extends v{constructor(){super(...arguments),this.infoText=""}static get styles(){return T`
1
+ import{h as v,f as T,y as m,g as d,t as O,p as L}from"../chunks/lit-3QHn3fwl.esm.js";import{d as k}from"../chunks/lodash-P8OIs-at.esm.js";import{p as M}from"../chunks/progress-bar-HVG_n8_6.esm.js";import{s as $,a as G}from"../chunks/share-button-t0XcS-C-.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import{D as V,g as _,S as j}from"../chunks/routes-nWhY4Rgg.esm.js";import{u as b,A as H,d as g,a as K,_ as q,i as r}from"../chunks/localize-SsJbTmMj.esm.js";import{c as J,d as Q,e as X}from"../chunks/enforce-config-er6B5Gkj.esm.js";import{_ as Z}from"../chunks/loading-template-mLjOGXMj.esm.js";import{makeApiKeyHeader as ee}from"../utils/makeApiKeyHeader.js";import{c as ie}from"../chunks/responsive-KbDsZM6S.esm.js";import{logger as te}from"../utils/logger.js";import{c as ae}from"../chunks/css-card-grid-r6wxRbPV.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";var re=Object.defineProperty,ne=Object.getOwnPropertyDescriptor,oe=(e,i,a,n)=>{for(var t=n>1?void 0:n?ne(i,a):i,c=e.length-1,p;c>=0;c--)(p=e[c])&&(t=(n?p(i,a,t):p(t))||t);return n&&t&&re(i,a,t),t};class w extends v{constructor(){super(...arguments),this.infoText=""}static get styles(){return T`
2
2
  sl-badge::part(base) {
3
3
  background-color: var(--beam-pillLabel-color-background, #000);
4
4
  color: var(--beam-pillLabel-color, #fff);
@@ -1,15 +1,15 @@
1
1
  import * as lit_html from 'lit-html';
2
2
  import * as lit from 'lit';
3
3
  import { LitElement } from 'lit';
4
- import { g as getImpact, a as getChainNonprofits } from '../chunks/routes-qbvie7oI.esm.js';
5
- import { T as TCart } from '../chunks/cart-contents-sUhfwLAz.esm.js';
4
+ import { g as getImpact, a as getChainNonprofits } from '../chunks/routes-wCCYf_uA.esm.js';
5
+ import { T as TCart } from '../chunks/cart-contents-WB1BF6hG.esm.js';
6
6
  import './select-subscription-nonprofit.js';
7
7
  import './subscription-impact.js';
8
8
  import './beam-partner-logos.js';
9
9
  import '../chunks/progress-bar-0VS_AmEf.esm.js';
10
10
  import { L as LANGUAGES } from '../chunks/types-aju0qrRe.esm.js';
11
11
  import { T as TNumericId } from '../chunks/types-zbTZ8-KP.esm.js';
12
- import '../chunks/openapi-spec--WoGcZgR.esm.js';
12
+ import '../chunks/openapi-spec-GGEBbqAJ.esm.js';
13
13
  import 'lodash';
14
14
  import '../chunks/share-button-hDn8fnBI.esm.js';
15
15
 
@@ -59,6 +59,7 @@ declare class BeamSubscriptionManagement extends LitElement {
59
59
  chain: {
60
60
  name: string;
61
61
  logoUrl: string | null;
62
+ logoLockupUrl?: string | null | undefined;
62
63
  communityImpactUrl: string | null;
63
64
  donationTypeName: string | null;
64
65
  matchDonationTypeName: string | null;
@@ -69,6 +70,9 @@ declare class BeamSubscriptionManagement extends LitElement {
69
70
  description: string;
70
71
  promoDescriptionPrefix?: string | undefined;
71
72
  promoDescription?: string | undefined;
73
+ confirmButton?: string | undefined;
74
+ confirmedButton?: string | undefined;
75
+ collapsedButton?: string | undefined;
72
76
  theme?: {
73
77
  [key: string]: unknown;
74
78
  } | null | undefined;
@@ -120,6 +124,10 @@ declare class BeamSubscriptionManagement extends LitElement {
120
124
  causeIconUrl: string | null;
121
125
  causeIconSelectedUrl: string | null;
122
126
  causeColor: string | null;
127
+ extensibility?: {
128
+ causeIconUrl?: string | null | undefined;
129
+ causeIconSelectedUrl?: string | null | undefined;
130
+ } | undefined;
123
131
  website: string | null;
124
132
  websiteLinkText: string;
125
133
  badge?: string | undefined;
@@ -155,6 +163,7 @@ declare class BeamSubscriptionManagement extends LitElement {
155
163
  chain: {
156
164
  name: string;
157
165
  logoUrl: string | null;
166
+ logoLockupUrl?: string | null | undefined;
158
167
  communityImpactUrl: string | null;
159
168
  donationTypeName: string | null;
160
169
  matchDonationTypeName: string | null;
@@ -170,6 +179,9 @@ declare class BeamSubscriptionManagement extends LitElement {
170
179
  description: string;
171
180
  promoDescriptionPrefix?: string | undefined;
172
181
  promoDescription?: string | undefined;
182
+ confirmButton?: string | undefined;
183
+ confirmedButton?: string | undefined;
184
+ collapsedButton?: string | undefined;
173
185
  theme?: {
174
186
  [key: string]: unknown;
175
187
  } | null | undefined;
@@ -211,6 +223,10 @@ declare class BeamSubscriptionManagement extends LitElement {
211
223
  causeIconUrl: string | null;
212
224
  causeIconSelectedUrl: string | null;
213
225
  causeColor: string | null;
226
+ extensibility?: {
227
+ causeIconUrl?: string | null | undefined;
228
+ causeIconSelectedUrl?: string | null | undefined;
229
+ } | undefined;
214
230
  website: string | null;
215
231
  websiteLinkText: string;
216
232
  badge?: string | undefined;
@@ -236,6 +252,10 @@ declare class BeamSubscriptionManagement extends LitElement {
236
252
  causeIconUrl: string | null;
237
253
  causeIconSelectedUrl: string | null;
238
254
  causeColor: string | null;
255
+ extensibility?: {
256
+ causeIconUrl?: string | null | undefined;
257
+ causeIconSelectedUrl?: string | null | undefined;
258
+ } | undefined;
239
259
  website: string | null;
240
260
  websiteLinkText: string;
241
261
  badge?: string | undefined;
@@ -256,6 +276,8 @@ declare class BeamSubscriptionManagement extends LitElement {
256
276
  isActive: boolean;
257
277
  multiplier: number | null;
258
278
  } | null;
279
+ promoAssetUrl: string | null;
280
+ personalImpactAssetUrl: string | null;
259
281
  }>;
260
282
  handleSwapNonprofitButtonClick(): void;
261
283
  handleBackToSubscriptionImpactButtonClick(): void;
@@ -1,4 +1,4 @@
1
- import{f as W,g as s,t as g,h as z,y as o,m as H}from"../chunks/lit-3QHn3fwl.esm.js";import{D as E,S as R,f as j,W as K,i as O,g as _}from"../chunks/routes-zzEfDMIn.esm.js";import{p as F}from"../chunks/progress-bar-HVG_n8_6.esm.js";import{c as V,d as Y,e as S}from"../chunks/enforce-config-HksNiOMu.esm.js";import{u as l,A as y,d as c,a as G,i as p,_ as v}from"../chunks/localize-IRs8JglT.esm.js";import{c as B}from"../chunks/events-_4nImo3u.esm.js";import{M as q}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import"./select-subscription-nonprofit.esm.js";import"./subscription-impact.esm.js";import{partnerLogosConfigDefaults as J}from"./beam-partner-logos.esm.js";import{makeApiKeyHeader as x}from"../utils/makeApiKeyHeader.esm.js";import{_ as N}from"../chunks/loading-template-mLjOGXMj.esm.js";import{c as Q}from"../chunks/css-card-grid-r6wxRbPV.esm.js";import"../utils/logger.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../utils/local-storage.esm.js";import"../chunks/checkbox-P2JYPqxl.esm.js";import"../chunks/share-button-AUvXGlky.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/responsive-KbDsZM6S.esm.js";const m={en:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},fr:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},de:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},es:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},it:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},pl:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"}};var X=Object.defineProperty,Z=Object.getOwnPropertyDescriptor,i=(M,t,n,a)=>{for(var r=a>1?void 0:a?Z(t,n):t,b=M.length-1,d;b>=0;b--)(d=M[b])&&(r=(a?d(t,n,r):d(r))||r);return a&&r&&X(t,n,r),r};const $=3,tt=0,et=1,it=98;class e extends z{constructor(){super(...arguments),this.baseUrl=E,this.lang="en",this.debug=!1,this.activeWidget=null,this.nonprofitId=null,this.beamUserId=null,this.eligibleNonprofits=[],this.showAllTiles=!1,this.isMobile=window.innerWidth<720,this.dropdownVisible=!1,this.emojis=["\u{1F44F}","\u{1F4AA}","\u{1F64C}","\u2728","\u{1F947}"],this.subscriptionDataController=new y(this,this.fetchSubscription),this.eligibleNonprofitsDataController=new y(this,this.fetchEligibleNonprofits),this.personalImpactDataController=new y(this,this.fetchImpact)}get configLang(){return R[this.lang]||"en"}async firstUpdated(){if(!this.email&&!this.partnerUserId)throw new q(["email","partnerUserId"],"One of the following properties needs to be specified: email, partnerUserId ");S(["apiKey","subscriptionId"],this),await this.loadWidget()}async loadWidget(){await Promise.all([this.fetchEligibleNonprofits(),this.fetchSubscription()]),await this.fetchImpact(),this.activeWidget=this.nonprofitId?"subscription-impact":"select-subscription-nonprofit"}async fetchEligibleNonprofits(){S(["apiKey","subscriptionId"],this);const t=await j({baseUrl:this.baseUrl,headers:x(this.apiKey),requestBody:{storeId:this.storeId||void 0,postalCode:this.postalCode||void 0,countryCode:this.countryCode||void 0,widgetName:K.subscription_management,version:"1.0.0"}});return this.storeId=t.store.id,this.eligibleNonprofits=t.nonprofits,this.eligibleNonprofitsDataController.data=t,t}async fetchSubscription(){S(["apiKey","subscriptionId"],this);const t=await O({baseUrl:this.baseUrl,headers:x(this.apiKey),requestBody:{remoteSubscriptionId:this.subscriptionId,email:this.email,partnerUserId:this.partnerUserId}});return this.beamUserId=t.beamUserId,this.nonprofitId=t.nonprofit?.id||null,t}async fetchImpact(){S(["apiKey"],this);const t=await _({baseUrl:this.baseUrl,headers:x(this.apiKey),queryParams:{beamUserId:this.beamUserId?this.beamUserId:void 0,widgetName:"subscription-management",version:"1.0.0",lang:this.configLang}});return this.personalImpactDataController.data=t,t}handleSwapNonprofitButtonClick(){this.activeWidget="select-subscription-nonprofit"}handleBackToSubscriptionImpactButtonClick(){this.activeWidget="subscription-impact"}handleSupportAgainButtonClick(t,n){this.activeWidget="select-subscription-nonprofit",this.selectedNonprofitId=t;const a=new B({selectedNonprofitId:t,nonprofitName:n});this.dispatchEvent(a)}handleNonprofitSelect(t){if(!(t instanceof B))return;const{selectedNonprofitId:n}=t.detail;this.nonprofitId=n??null,this.activeWidget="subscription-impact"}isNonprofitEligible(t){return this.eligibleNonprofits.some(n=>n.nonprofit.id===t)}shouldDisplayProgressBar(t){return t>et&&t<it}get cssVariables(){const t={...J,...F,"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit","--beam-SubscriptionManagement-widgetContainer-borderColor":"#d5d5d5","--beam-SubscriptionManagement-widgetContainer-borderRadius":"4px","--beam-SubscriptionManagement-widgetContainer-padding":"8px 20px","--beam-SubscriptionManagement-widgetContainer-backgroundColor":"inherit","--beam-SubscriptionManagement-widgetContainer-maxWidth":"820px","--beam-SubscriptionManagement-logo-align-desktop":"left","--beam-SubscriptionManagement-logo-align-mobile":"center","--beam-SubscriptionManagement-previousImpact-cardStyle":"'selected_icon'","--beam-SubscriptionManagement-header-padding":"10px 20px 10px 0px","--beam-SubscriptionManagement-header-borderRadius":"0px","--beam-SubscriptionManagement-header-backgroundColor":"#fff","--beam-SubscriptionManagement-header-meatballsMenu-fontSize":"24px","--beam-SubscriptionManagement-header-meatballsMenu-color":"24px","--beam-SubscriptionManagement-lineBreak-color":"#ddd","--beam-SubscriptionManagement-lineBreak-width":"1px","--beam-SubscriptionManagement-lineBreak-margin":"10px 0 20px 0","--beam-SubscriptionManagement-tile-marginBottom":"20px","--beam-SubscriptionManagement-tile-border-width":"0px","--beam-SubscriptionManagement-tile-border-color":"#ddd","--beam-SubscriptionManagement-tile-padding":"12.5px","--beam-SubscriptionManagement-tile-borderRadius":"8px","--beam-SubscriptionManagement-tile-background":"#f8fbfb","--beam-SubscriptionManagement-tileContent-gap":" 15px","--beam-SubscriptionManagement-tileContent-padding":"5px 0px","--beam-SubscriptionManagement-tile-icon-borderRadius":"4px","--beam-SubscriptionManagement-tile-icon-height":"28px","--beam-SubscriptionManagement-tile-icon-background-borderRadius":"50%","--beam-SubscriptionManagement-tile-icon-background-width":"50px","--beam-SubscriptionManagement-tile-icon-background-height":"50px","--beam-SubscriptionManagement-tile-icon-background-backgroundColor":"#0a323c","--beam-SubscriptionManagement-tile-icon-background-padding":"10px","--beam-SubscriptionManagement-blockTileDescription-gap":"5px","--beam-SubscriptionManagement-blockTileDescription-padding":"0px","--beam-SubscriptionManagement-blockTileDescription-lineHeight":"130%","--beam-SubscriptionManagement-blockTileDescription-progressBar-width-desktop":"60%","--beam-SubscriptionManagement-blockTileDescription-progressBar-width-mobile":"100%","--beam-SubscriptionManagement-subWidgetContainer-padding":"0px 0px 10px","--beam-SubscriptionManagement-previousImpactContainer-padding-desktop":"10px 24px 10px 0px","--beam-SubscriptionManagement-previousImpactContainer-padding-mobile":"0px","--beam-SubscriptionManagement-dropDown-padding":"15px 8px","--beam-SubscriptionManagement-dropDown-borderRadius":"8px","--beam-SubscriptionManagement-dropDown-backgroundColor":"#f8fbfb","--beam-SubscriptionManagement-dropDown-boxShadow":"0px 4px 28px 0px rgba(0, 0, 0, 0.04)","--beam-SubscriptionManagement-dropDown-width":"128px","--beam-SubscriptionManagement-dropDown-hover-backgroundColor":"#E1F1EE","--beam-SubscriptionManagement-dropDownOptions-textDecoration":"underline",...c("--beam-SubscriptionManagement-dropDownOptions",{fontSize:"12px",fontWeight:"400",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-yourPreviousImpactTitle-marginBottom":"15px",...c("--beam-SubscriptionManagement-yourPreviousImpactTitle",{fontSize:"18px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-yourPreviousImpact-showAllButton-textDecoration":"underline",...c("--beam-SubscriptionManagement-yourPreviousImpact-showAllButton",{fontSize:"12px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-title-letterSpacing":"0.36px",...c("--beam-SubscriptionManagement-tile-title",{fontSize:"12px",fontWeight:"bold",lineHeight:"120%",textTransform:"uppercase",fontStyle:"normal",color:"#0a323c"}),...c("--beam-SubscriptionManagement-tile-description",{fontSize:"14px",lineHeight:"120%",fontStyle:"normal",color:"#454a47"}),...c("--beam-SubscriptionManagement-tile-via",{fontSize:"14px",lineHeight:"120%",fontStyle:"normal",color:"#454a47"}),"--beam-SubscriptionManagement-tile-nonprofitLink-textDecoration":"underline",...c("--beam-SubscriptionManagement-tile-nonprofitLink",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-supportAgainButton-textDecoration":"underline",...c("--beam-SubscriptionManagement-tile-supportAgainButton",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-progressBarLabel-marginLeft":"8px",...c("--beam-SubscriptionManagement-tile-progressBarLabel",{fontSize:"10px",fontWeight:"bold",fontStyle:"normal",color:"#878a92"}),"--beam-SubscriptionManagement-tile-fundedAmount-lineHeight":"16px",...c("--beam-SubscriptionManagement-tile-fundedAmount",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",fontStyle:"italic",color:"#0a323c"})},n=this.eligibleNonprofitsDataController?.data?.config?.web?.theme||{},a={...t,...n};return Object.assign(Object.create({toCSS(){return G(this)}}),a)}renderPreviousImpactTiles({personalImpact:t,cardStyle:n,eligibleNonprofitConfig:a}){if(!t)return o``;if(!a)return o``;const r=this.showAllTiles?t:t.slice(0,$);let b=0;return o`
1
+ import{f as W,g as s,t as g,h as z,y as o,m as H}from"../chunks/lit-3QHn3fwl.esm.js";import{D as E,S as R,f as j,W as K,i as O,g as _}from"../chunks/routes-2U31lJuH.esm.js";import{p as F}from"../chunks/progress-bar-HVG_n8_6.esm.js";import{c as V,d as Y,e as S}from"../chunks/enforce-config-HksNiOMu.esm.js";import{u as l,A as y,d as c,a as G,i as p,_ as v}from"../chunks/localize-IRs8JglT.esm.js";import{c as B}from"../chunks/events-_4nImo3u.esm.js";import{M as q}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import"./select-subscription-nonprofit.esm.js";import"./subscription-impact.esm.js";import{partnerLogosConfigDefaults as J}from"./beam-partner-logos.esm.js";import{makeApiKeyHeader as x}from"../utils/makeApiKeyHeader.esm.js";import{_ as N}from"../chunks/loading-template-mLjOGXMj.esm.js";import{c as Q}from"../chunks/css-card-grid-r6wxRbPV.esm.js";import"../utils/logger.esm.js";import"../chunks/lodash-P8OIs-at.esm.js";import"../utils/local-storage.esm.js";import"../chunks/checkbox-P2JYPqxl.esm.js";import"../chunks/share-button--FOuz6Ka.esm.js";import"../chunks/is-all-html-elements-SdSkxirh.esm.js";import"../chunks/vendor--f7lkyBk.esm.js";import"../chunks/share-button-CqTd80g8.esm.js";import"../chunks/responsive-KbDsZM6S.esm.js";const m={en:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},fr:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},de:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},es:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},it:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"},pl:{changeNonprofitButton:()=>"Change Nonprofit",previousImpactHeader:()=>"Your Previous Impact",previousNonprofitButton:()=>"Back to Previous Nonprofit",supportAgainButton:()=>"Support Again",via:()=>"via",showAllButton:()=>"Show All",showLessButton:()=>"Show Less"}};var X=Object.defineProperty,Z=Object.getOwnPropertyDescriptor,i=(M,t,n,a)=>{for(var r=a>1?void 0:a?Z(t,n):t,b=M.length-1,d;b>=0;b--)(d=M[b])&&(r=(a?d(t,n,r):d(r))||r);return a&&r&&X(t,n,r),r};const $=3,tt=0,et=1,it=98;class e extends z{constructor(){super(...arguments),this.baseUrl=E,this.lang="en",this.debug=!1,this.activeWidget=null,this.nonprofitId=null,this.beamUserId=null,this.eligibleNonprofits=[],this.showAllTiles=!1,this.isMobile=window.innerWidth<720,this.dropdownVisible=!1,this.emojis=["\u{1F44F}","\u{1F4AA}","\u{1F64C}","\u2728","\u{1F947}"],this.subscriptionDataController=new y(this,this.fetchSubscription),this.eligibleNonprofitsDataController=new y(this,this.fetchEligibleNonprofits),this.personalImpactDataController=new y(this,this.fetchImpact)}get configLang(){return R[this.lang]||"en"}async firstUpdated(){if(!this.email&&!this.partnerUserId)throw new q(["email","partnerUserId"],"One of the following properties needs to be specified: email, partnerUserId ");S(["apiKey","subscriptionId"],this),await this.loadWidget()}async loadWidget(){await Promise.all([this.fetchEligibleNonprofits(),this.fetchSubscription()]),await this.fetchImpact(),this.activeWidget=this.nonprofitId?"subscription-impact":"select-subscription-nonprofit"}async fetchEligibleNonprofits(){S(["apiKey","subscriptionId"],this);const t=await j({baseUrl:this.baseUrl,headers:x(this.apiKey),requestBody:{storeId:this.storeId||void 0,postalCode:this.postalCode||void 0,countryCode:this.countryCode||void 0,widgetName:K.subscription_management,version:"1.0.0"}});return this.storeId=t.store.id,this.eligibleNonprofits=t.nonprofits,this.eligibleNonprofitsDataController.data=t,t}async fetchSubscription(){S(["apiKey","subscriptionId"],this);const t=await O({baseUrl:this.baseUrl,headers:x(this.apiKey),requestBody:{remoteSubscriptionId:this.subscriptionId,email:this.email,partnerUserId:this.partnerUserId}});return this.beamUserId=t.beamUserId,this.nonprofitId=t.nonprofit?.id||null,t}async fetchImpact(){S(["apiKey"],this);const t=await _({baseUrl:this.baseUrl,headers:x(this.apiKey),queryParams:{beamUserId:this.beamUserId?this.beamUserId:void 0,widgetName:"subscription-management",version:"1.0.0",lang:this.configLang}});return this.personalImpactDataController.data=t,t}handleSwapNonprofitButtonClick(){this.activeWidget="select-subscription-nonprofit"}handleBackToSubscriptionImpactButtonClick(){this.activeWidget="subscription-impact"}handleSupportAgainButtonClick(t,n){this.activeWidget="select-subscription-nonprofit",this.selectedNonprofitId=t;const a=new B({selectedNonprofitId:t,nonprofitName:n});this.dispatchEvent(a)}handleNonprofitSelect(t){if(!(t instanceof B))return;const{selectedNonprofitId:n}=t.detail;this.nonprofitId=n??null,this.activeWidget="subscription-impact"}isNonprofitEligible(t){return this.eligibleNonprofits.some(n=>n.nonprofit.id===t)}shouldDisplayProgressBar(t){return t>et&&t<it}get cssVariables(){const t={...J,...F,"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit","--beam-SubscriptionManagement-widgetContainer-borderColor":"#d5d5d5","--beam-SubscriptionManagement-widgetContainer-borderRadius":"4px","--beam-SubscriptionManagement-widgetContainer-padding":"8px 20px","--beam-SubscriptionManagement-widgetContainer-backgroundColor":"inherit","--beam-SubscriptionManagement-widgetContainer-maxWidth":"820px","--beam-SubscriptionManagement-logo-align-desktop":"left","--beam-SubscriptionManagement-logo-align-mobile":"center","--beam-SubscriptionManagement-previousImpact-cardStyle":"'selected_icon'","--beam-SubscriptionManagement-header-padding":"10px 20px 10px 0px","--beam-SubscriptionManagement-header-borderRadius":"0px","--beam-SubscriptionManagement-header-backgroundColor":"#fff","--beam-SubscriptionManagement-header-meatballsMenu-fontSize":"24px","--beam-SubscriptionManagement-header-meatballsMenu-color":"24px","--beam-SubscriptionManagement-lineBreak-color":"#ddd","--beam-SubscriptionManagement-lineBreak-width":"1px","--beam-SubscriptionManagement-lineBreak-margin":"10px 0 20px 0","--beam-SubscriptionManagement-tile-marginBottom":"20px","--beam-SubscriptionManagement-tile-border-width":"0px","--beam-SubscriptionManagement-tile-border-color":"#ddd","--beam-SubscriptionManagement-tile-padding":"12.5px","--beam-SubscriptionManagement-tile-borderRadius":"8px","--beam-SubscriptionManagement-tile-background":"#f8fbfb","--beam-SubscriptionManagement-tileContent-gap":" 15px","--beam-SubscriptionManagement-tileContent-padding":"5px 0px","--beam-SubscriptionManagement-tile-icon-borderRadius":"4px","--beam-SubscriptionManagement-tile-icon-height":"28px","--beam-SubscriptionManagement-tile-icon-background-borderRadius":"50%","--beam-SubscriptionManagement-tile-icon-background-width":"50px","--beam-SubscriptionManagement-tile-icon-background-height":"50px","--beam-SubscriptionManagement-tile-icon-background-backgroundColor":"#0a323c","--beam-SubscriptionManagement-tile-icon-background-padding":"10px","--beam-SubscriptionManagement-blockTileDescription-gap":"5px","--beam-SubscriptionManagement-blockTileDescription-padding":"0px","--beam-SubscriptionManagement-blockTileDescription-lineHeight":"130%","--beam-SubscriptionManagement-blockTileDescription-progressBar-width-desktop":"60%","--beam-SubscriptionManagement-blockTileDescription-progressBar-width-mobile":"100%","--beam-SubscriptionManagement-subWidgetContainer-padding":"0px 0px 10px","--beam-SubscriptionManagement-previousImpactContainer-padding-desktop":"10px 24px 10px 0px","--beam-SubscriptionManagement-previousImpactContainer-padding-mobile":"0px","--beam-SubscriptionManagement-dropDown-padding":"15px 8px","--beam-SubscriptionManagement-dropDown-borderRadius":"8px","--beam-SubscriptionManagement-dropDown-backgroundColor":"#f8fbfb","--beam-SubscriptionManagement-dropDown-boxShadow":"0px 4px 28px 0px rgba(0, 0, 0, 0.04)","--beam-SubscriptionManagement-dropDown-width":"128px","--beam-SubscriptionManagement-dropDown-hover-backgroundColor":"#E1F1EE","--beam-SubscriptionManagement-dropDownOptions-textDecoration":"underline",...c("--beam-SubscriptionManagement-dropDownOptions",{fontSize:"12px",fontWeight:"400",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-yourPreviousImpactTitle-marginBottom":"15px",...c("--beam-SubscriptionManagement-yourPreviousImpactTitle",{fontSize:"18px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-yourPreviousImpact-showAllButton-textDecoration":"underline",...c("--beam-SubscriptionManagement-yourPreviousImpact-showAllButton",{fontSize:"12px",fontWeight:"bold",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-title-letterSpacing":"0.36px",...c("--beam-SubscriptionManagement-tile-title",{fontSize:"12px",fontWeight:"bold",lineHeight:"120%",textTransform:"uppercase",fontStyle:"normal",color:"#0a323c"}),...c("--beam-SubscriptionManagement-tile-description",{fontSize:"14px",lineHeight:"120%",fontStyle:"normal",color:"#454a47"}),...c("--beam-SubscriptionManagement-tile-via",{fontSize:"14px",lineHeight:"120%",fontStyle:"normal",color:"#454a47"}),"--beam-SubscriptionManagement-tile-nonprofitLink-textDecoration":"underline",...c("--beam-SubscriptionManagement-tile-nonprofitLink",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-supportAgainButton-textDecoration":"underline",...c("--beam-SubscriptionManagement-tile-supportAgainButton",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",textTransform:"capitalize",fontStyle:"normal",color:"#0a323c"}),"--beam-SubscriptionManagement-tile-progressBarLabel-marginLeft":"8px",...c("--beam-SubscriptionManagement-tile-progressBarLabel",{fontSize:"10px",fontWeight:"bold",fontStyle:"normal",color:"#878a92"}),"--beam-SubscriptionManagement-tile-fundedAmount-lineHeight":"16px",...c("--beam-SubscriptionManagement-tile-fundedAmount",{fontSize:"14px",fontWeight:"400",lineHeight:"120%",fontStyle:"italic",color:"#0a323c"})},n=this.eligibleNonprofitsDataController?.data?.config?.web?.theme||{},a={...t,...n};return Object.assign(Object.create({toCSS(){return G(this)}}),a)}renderPreviousImpactTiles({personalImpact:t,cardStyle:n,eligibleNonprofitConfig:a}){if(!t)return o``;if(!a)return o``;const r=this.showAllTiles?t:t.slice(0,$);let b=0;return o`
2
2
  ${r.filter(d=>d.nonprofit.includeInPersonalImpact===!0).map(d=>{const{impact:{goalCompletionText:u,description:h,goalProgressPercentage:f,goalProgressText:D},nonprofit:{cause:C,causeIconSelectedUrl:A,causeIconUrl:L,website:T,name:I,id:w}}=d,k=this.nonprofitId!==w&&this.isNonprofitEligible(w),U=k&&this.shouldDisplayProgressBar(f),P=u?`${this.emojis[b]} `:"";return b=(b+1)%this.emojis.length,o`
3
3
  <div class="tile">
4
4
  <div class="tile-header">