@beamimpact/web-sdk 1.36.6 → 1.36.8

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 (225) hide show
  1. package/dist/chunks/_share-dialog-dependencies-FglfQ7YP.esm.js +2 -0
  2. package/dist/chunks/_share-dialog-dependencies-FglfQ7YP.esm.js.map +1 -0
  3. package/dist/chunks/_share-dialog-dependencies-YbNiVx56.esm.js +2 -0
  4. package/dist/chunks/_share-dialog-dependencies-YbNiVx56.esm.js.map +1 -0
  5. package/dist/chunks/beam-errors-P-Lu07Ce.esm.js +2 -0
  6. package/dist/chunks/beam-errors-P-Lu07Ce.esm.js.map +1 -0
  7. package/dist/chunks/{beam-errors-bKCZlkvr.esm.d.ts → beam-errors-fXDkG1zo.esm.d.ts} +7 -2
  8. package/dist/chunks/{cart-contents-tEvcY9ip.esm.d.ts → cart-contents-Shc27L1J.esm.d.ts} +1 -1
  9. package/dist/chunks/enforce-config-fo8kIfoY.esm.js +22 -0
  10. package/dist/chunks/enforce-config-fo8kIfoY.esm.js.map +1 -0
  11. package/dist/chunks/enforce-config-qna7hEL6.esm.js +22 -0
  12. package/dist/chunks/enforce-config-qna7hEL6.esm.js.map +1 -0
  13. package/dist/chunks/{events-PZnG_xac.esm.d.ts → events-qTu4iIOo.esm.d.ts} +1 -1
  14. package/dist/chunks/index-1qXot92e.esm.js +2 -0
  15. package/dist/chunks/index-1qXot92e.esm.js.map +1 -0
  16. package/dist/chunks/{index-hbzssC4x.esm.d.ts → index-3Xf6QzNV.esm.d.ts} +1 -1
  17. package/dist/chunks/{index-aGYbEHXq.esm.js → index-5yFqo0yl.esm.js} +2 -2
  18. package/dist/chunks/index-5yFqo0yl.esm.js.map +1 -0
  19. package/dist/chunks/{index-G6h0AEAz.esm.d.ts → index-6t9MtjyS.esm.d.ts} +3 -1
  20. package/dist/chunks/{index-FAF7tYU6.esm.js → index-9gijHGwh.esm.js} +2 -2
  21. package/dist/chunks/index-9gijHGwh.esm.js.map +1 -0
  22. package/dist/chunks/{index-JL12lEnO.esm.js → index-EHubF2KN.esm.js} +2 -2
  23. package/dist/chunks/index-EHubF2KN.esm.js.map +1 -0
  24. package/dist/chunks/{index-rOz-i1aX.esm.d.ts → index-EZ_Bg1n7.esm.d.ts} +4 -4
  25. package/dist/chunks/index-EpanGShY.esm.js +2 -0
  26. package/dist/chunks/index-EpanGShY.esm.js.map +1 -0
  27. package/dist/chunks/{index-U2dW3lkm.esm.d.ts → index-GkPHba-I.esm.d.ts} +2 -2
  28. package/dist/chunks/{index-5-EnaNnJ.esm.d.ts → index-I8DBdgx0.esm.d.ts} +1 -1
  29. package/dist/chunks/index-IzAvjker.esm.js +2 -0
  30. package/dist/chunks/index-IzAvjker.esm.js.map +1 -0
  31. package/dist/chunks/{index-uqEAgdEf.esm.js → index-OnjTwvAw.esm.js} +2 -2
  32. package/dist/chunks/index-OnjTwvAw.esm.js.map +1 -0
  33. package/dist/chunks/{index-rrdYIcOi.esm.js → index-U8Oy2aur.esm.js} +2 -2
  34. package/dist/chunks/index-U8Oy2aur.esm.js.map +1 -0
  35. package/dist/chunks/index-XMD0b6ql.esm.js +2 -0
  36. package/dist/chunks/index-XMD0b6ql.esm.js.map +1 -0
  37. package/dist/chunks/{index-e6o8bmIt.esm.js → index-fqDBrscF.esm.js} +2 -2
  38. package/dist/chunks/{index-e6o8bmIt.esm.js.map → index-fqDBrscF.esm.js.map} +1 -1
  39. package/dist/chunks/{index-JfA-djTR.esm.js → index-gULINFkH.esm.js} +2 -2
  40. package/dist/chunks/{index-JfA-djTR.esm.js.map → index-gULINFkH.esm.js.map} +1 -1
  41. package/dist/chunks/index-ll8zLjbu.esm.js +2 -0
  42. package/dist/chunks/index-ll8zLjbu.esm.js.map +1 -0
  43. package/dist/chunks/index-o7YiP4gC.esm.js +2 -0
  44. package/dist/chunks/index-o7YiP4gC.esm.js.map +1 -0
  45. package/dist/chunks/{index--eKbxy32.esm.d.ts → index-oLz4lmx2.esm.d.ts} +3 -1
  46. package/dist/chunks/{index-PL4iasT1.esm.d.ts → index-pDraUd1x.esm.d.ts} +2 -2
  47. package/dist/chunks/index-r9Yb1UY4.esm.js +2 -0
  48. package/dist/chunks/index-r9Yb1UY4.esm.js.map +1 -0
  49. package/dist/chunks/index-t4uX5Dg1.esm.js +2 -0
  50. package/dist/chunks/index-t4uX5Dg1.esm.js.map +1 -0
  51. package/dist/chunks/{index-nJEBkWPL.esm.d.ts → index-wbrSi6cp.esm.d.ts} +1 -1
  52. package/dist/chunks/{index-w9_XpjIg.esm.js → index-wsdeaTHd.esm.js} +2 -2
  53. package/dist/chunks/index-wsdeaTHd.esm.js.map +1 -0
  54. package/dist/chunks/localize-GCkVUD8S.esm.js +10 -0
  55. package/dist/chunks/localize-GCkVUD8S.esm.js.map +1 -0
  56. package/dist/chunks/localize-pzAAkBvG.esm.js +10 -0
  57. package/dist/chunks/localize-pzAAkBvG.esm.js.map +1 -0
  58. package/dist/chunks/{openapi-spec-tJkr2i9K.esm.d.ts → openapi-spec-D_Zzbl2J.esm.d.ts} +215 -5
  59. package/dist/chunks/{order-page-LMEdbSdq.esm.js → order-page-JdaAppB7.esm.js} +2 -2
  60. package/dist/chunks/{order-page-LMEdbSdq.esm.js.map → order-page-JdaAppB7.esm.js.map} +1 -1
  61. package/dist/chunks/{order-page-sDLRWj-E.esm.js → order-page-W1jR35W9.esm.js} +2 -2
  62. package/dist/chunks/{order-page-sDLRWj-E.esm.js.map → order-page-W1jR35W9.esm.js.map} +1 -1
  63. package/dist/chunks/{order-page-cFAaDNWE.esm.d.ts → order-page-ydw5uXTI.esm.d.ts} +21 -2
  64. package/dist/chunks/routes-CqjzL4oL.esm.js +2 -0
  65. package/dist/chunks/{routes-bWWE2fXp.esm.js.map → routes-CqjzL4oL.esm.js.map} +1 -1
  66. package/dist/chunks/routes-lsOWIDmE.esm.js +2 -0
  67. package/dist/chunks/{routes-h6eWTToy.esm.js.map → routes-lsOWIDmE.esm.js.map} +1 -1
  68. package/dist/chunks/{update-cart-k_Y-sCyt.esm.js → update-cart-T32-282v.esm.js} +2 -2
  69. package/dist/chunks/{update-cart-k_Y-sCyt.esm.js.map → update-cart-T32-282v.esm.js.map} +1 -1
  70. package/dist/chunks/{update-cart-m3NdnSx2.esm.d.ts → update-cart-yCIzgmve.esm.d.ts} +1 -1
  71. package/dist/chunks/{update-cart-PflL_pK3.esm.js → update-cart-yneR8zk1.esm.js} +2 -2
  72. package/dist/chunks/{update-cart-PflL_pK3.esm.js.map → update-cart-yneR8zk1.esm.js.map} +1 -1
  73. package/dist/components/community-impact.esm.js +5 -4
  74. package/dist/components/community-impact.esm.js.map +1 -1
  75. package/dist/components/community-impact.js +5 -4
  76. package/dist/components/community-impact.js.map +1 -1
  77. package/dist/components/cumulative-impact.esm.js +3 -2
  78. package/dist/components/cumulative-impact.esm.js.map +1 -1
  79. package/dist/components/cumulative-impact.js +3 -2
  80. package/dist/components/cumulative-impact.js.map +1 -1
  81. package/dist/components/impact-overview.d.ts +0 -2
  82. package/dist/components/impact-overview.esm.js +6 -5
  83. package/dist/components/impact-overview.esm.js.map +1 -1
  84. package/dist/components/impact-overview.js +6 -5
  85. package/dist/components/impact-overview.js.map +1 -1
  86. package/dist/components/index.d.ts +3 -2
  87. package/dist/components/index.esm.js +1 -1
  88. package/dist/components/index.js +1 -1
  89. package/dist/components/post-purchase.d.ts +3 -4
  90. package/dist/components/post-purchase.esm.js +4 -5
  91. package/dist/components/post-purchase.esm.js.map +1 -1
  92. package/dist/components/post-purchase.js +4 -5
  93. package/dist/components/post-purchase.js.map +1 -1
  94. package/dist/components/redeem-transaction.d.ts +16 -6
  95. package/dist/components/redeem-transaction.esm.js +12 -11
  96. package/dist/components/redeem-transaction.esm.js.map +1 -1
  97. package/dist/components/redeem-transaction.js +12 -11
  98. package/dist/components/redeem-transaction.js.map +1 -1
  99. package/dist/components/select-nonprofit.d.ts +3 -3
  100. package/dist/components/select-nonprofit.esm.js +2 -1
  101. package/dist/components/select-nonprofit.esm.js.map +1 -1
  102. package/dist/components/select-nonprofit.js +2 -1
  103. package/dist/components/select-nonprofit.js.map +1 -1
  104. package/dist/components/shopify.d.ts +6 -6
  105. package/dist/components/shopify.esm.js +1 -1
  106. package/dist/components/shopify.esm.js.map +1 -1
  107. package/dist/components/shopify.js +1 -1
  108. package/dist/components/shopify.js.map +1 -1
  109. package/dist/components/subscription-management.d.ts +114 -0
  110. package/dist/components/subscription-management.esm.js +62 -0
  111. package/dist/components/subscription-management.esm.js.map +1 -0
  112. package/dist/components/subscription-management.js +62 -0
  113. package/dist/components/subscription-management.js.map +1 -0
  114. package/dist/index.d.ts +16 -14
  115. package/dist/index.esm.js +1 -1
  116. package/dist/index.js +1 -1
  117. package/dist/integrations/beam.esm.js +1 -1
  118. package/dist/integrations/beam.js +1 -1
  119. package/dist/integrations/cart.d.ts +3 -3
  120. package/dist/integrations/cart.esm.js +1 -1
  121. package/dist/integrations/cart.js +1 -1
  122. package/dist/integrations/index.d.ts +10 -10
  123. package/dist/integrations/index.esm.js +1 -1
  124. package/dist/integrations/index.js +1 -1
  125. package/dist/integrations/logs.d.ts +2 -2
  126. package/dist/integrations/logs.esm.js +1 -1
  127. package/dist/integrations/logs.js +1 -1
  128. package/dist/integrations/session.esm.js +1 -1
  129. package/dist/integrations/session.js +1 -1
  130. package/dist/integrations/shopify.d.ts +4 -4
  131. package/dist/integrations/shopify.esm.js +1 -1
  132. package/dist/integrations/shopify.js +1 -1
  133. package/dist/integrations/statsig.esm.js +1 -1
  134. package/dist/integrations/statsig.js +1 -1
  135. package/dist/integrations/utils.d.ts +4 -4
  136. package/dist/integrations/utils.esm.js +1 -1
  137. package/dist/integrations/utils.js +1 -1
  138. package/dist/react/community-impact.esm.js +1 -1
  139. package/dist/react/community-impact.esm.js.map +1 -1
  140. package/dist/react/community-impact.js +1 -1
  141. package/dist/react/community-impact.js.map +1 -1
  142. package/dist/react/cumulative-impact.esm.js +1 -1
  143. package/dist/react/cumulative-impact.esm.js.map +1 -1
  144. package/dist/react/cumulative-impact.js +1 -1
  145. package/dist/react/cumulative-impact.js.map +1 -1
  146. package/dist/react/impact-overview.esm.js +1 -1
  147. package/dist/react/impact-overview.esm.js.map +1 -1
  148. package/dist/react/impact-overview.js +1 -1
  149. package/dist/react/impact-overview.js.map +1 -1
  150. package/dist/react/index.d.ts +5 -3
  151. package/dist/react/index.esm.js +1 -1
  152. package/dist/react/index.js +1 -1
  153. package/dist/react/post-purchase.d.ts +2 -2
  154. package/dist/react/post-purchase.esm.js +1 -1
  155. package/dist/react/post-purchase.esm.js.map +1 -1
  156. package/dist/react/post-purchase.js +1 -1
  157. package/dist/react/post-purchase.js.map +1 -1
  158. package/dist/react/redeem-transaction.d.ts +3 -3
  159. package/dist/react/redeem-transaction.esm.js +1 -1
  160. package/dist/react/redeem-transaction.esm.js.map +1 -1
  161. package/dist/react/redeem-transaction.js +1 -1
  162. package/dist/react/redeem-transaction.js.map +1 -1
  163. package/dist/react/select-nonprofit.d.ts +3 -3
  164. package/dist/react/select-nonprofit.esm.js +1 -1
  165. package/dist/react/select-nonprofit.esm.js.map +1 -1
  166. package/dist/react/select-nonprofit.js +1 -1
  167. package/dist/react/select-nonprofit.js.map +1 -1
  168. package/dist/react/subscription-management.d.ts +11 -0
  169. package/dist/react/subscription-management.esm.js +2 -0
  170. package/dist/react/subscription-management.esm.js.map +1 -0
  171. package/dist/react/subscription-management.js +2 -0
  172. package/dist/react/subscription-management.js.map +1 -0
  173. package/dist/utils/beam-errors.d.ts +1 -1
  174. package/dist/utils/beam-errors.esm.js +1 -1
  175. package/dist/utils/beam-errors.js +1 -1
  176. package/dist/utils/cookies.d.ts +1 -1
  177. package/dist/utils/cookies.esm.js +1 -1
  178. package/dist/utils/cookies.esm.js.map +1 -1
  179. package/dist/utils/cookies.js +1 -1
  180. package/dist/utils/cookies.js.map +1 -1
  181. package/dist/utils/events.d.ts +3 -3
  182. package/dist/utils/index.d.ts +4 -4
  183. package/dist/utils/index.esm.js +1 -1
  184. package/dist/utils/index.js +1 -1
  185. package/dist/utils/local-storage.esm.js +1 -1
  186. package/dist/utils/local-storage.js +1 -1
  187. package/dist/utils/remote-session.esm.js +1 -1
  188. package/dist/utils/remote-session.js +1 -1
  189. package/dist/utils/wait-for-element.esm.js +1 -1
  190. package/dist/utils/wait-for-element.js +1 -1
  191. package/package.json +2 -2
  192. package/dist/chunks/_share-dialog-dependencies-7OysCcbl.esm.js +0 -2
  193. package/dist/chunks/_share-dialog-dependencies-7OysCcbl.esm.js.map +0 -1
  194. package/dist/chunks/_share-dialog-dependencies-IH8H0M7S.esm.js +0 -2
  195. package/dist/chunks/_share-dialog-dependencies-IH8H0M7S.esm.js.map +0 -1
  196. package/dist/chunks/beam-errors-AMvTvR1C.esm.js +0 -2
  197. package/dist/chunks/beam-errors-AMvTvR1C.esm.js.map +0 -1
  198. package/dist/chunks/index-D7cyvlBG.esm.js +0 -2
  199. package/dist/chunks/index-D7cyvlBG.esm.js.map +0 -1
  200. package/dist/chunks/index-FAF7tYU6.esm.js.map +0 -1
  201. package/dist/chunks/index-Fvk8qalO.esm.js +0 -2
  202. package/dist/chunks/index-Fvk8qalO.esm.js.map +0 -1
  203. package/dist/chunks/index-JL12lEnO.esm.js.map +0 -1
  204. package/dist/chunks/index-K9rDxqim.esm.js +0 -2
  205. package/dist/chunks/index-K9rDxqim.esm.js.map +0 -1
  206. package/dist/chunks/index-LY8cCwxB.esm.js +0 -2
  207. package/dist/chunks/index-LY8cCwxB.esm.js.map +0 -1
  208. package/dist/chunks/index-Li9RyHWl.esm.js +0 -2
  209. package/dist/chunks/index-Li9RyHWl.esm.js.map +0 -1
  210. package/dist/chunks/index-YfVtHaFO.esm.js +0 -2
  211. package/dist/chunks/index-YfVtHaFO.esm.js.map +0 -1
  212. package/dist/chunks/index-YoXRWj_4.esm.js +0 -2
  213. package/dist/chunks/index-YoXRWj_4.esm.js.map +0 -1
  214. package/dist/chunks/index-aGYbEHXq.esm.js.map +0 -1
  215. package/dist/chunks/index-bo9Yq4jd.esm.js +0 -2
  216. package/dist/chunks/index-bo9Yq4jd.esm.js.map +0 -1
  217. package/dist/chunks/index-rrdYIcOi.esm.js.map +0 -1
  218. package/dist/chunks/index-uqEAgdEf.esm.js.map +0 -1
  219. package/dist/chunks/index-w9_XpjIg.esm.js.map +0 -1
  220. package/dist/chunks/localize-BGPniqcI.esm.js +0 -30
  221. package/dist/chunks/localize-BGPniqcI.esm.js.map +0 -1
  222. package/dist/chunks/localize-dXHrlK8g.esm.js +0 -30
  223. package/dist/chunks/localize-dXHrlK8g.esm.js.map +0 -1
  224. package/dist/chunks/routes-bWWE2fXp.esm.js +0 -2
  225. package/dist/chunks/routes-h6eWTToy.esm.js +0 -2
@@ -1,4 +1,4 @@
1
- import{y as m,m as y,f as S,g as c,t as k,h as $,q as v,p as z,k as D}from"../chunks/lit-yVXn5Cbs.esm.js";import{d as N}from"../chunks/lodash-P8OIs-at.esm.js";import{c as L,u,d as E,e as x,A as B,b as h,f as I,a as W,_ as R,i as p}from"../chunks/localize-dXHrlK8g.esm.js";import{D as U,b as P,h as A,S as M}from"../chunks/routes-h6eWTToy.esm.js";import{p as F}from"../chunks/progress-bar-7gWYaGlq.esm.js";import{partnerLogosConfigDefaults as j}from"./beam-partner-logos.js";import{B as O}from"../chunks/beam-errors-AMvTvR1C.esm.js";import{createScopedLocalStorage as K}from"../utils/local-storage.js";import{c as _}from"../chunks/css-card-grid-3b56QBzq.esm.js";import{c as V}from"../chunks/events-5IECSF-x.esm.js";import"../utils/logger.js";const H=({height:i="1em",width:e="1em"}={})=>m`
1
+ import{y as m,m as y,f as $,g as c,t as k,h as I,q as v,p as N,k as z}from"../chunks/lit-yVXn5Cbs.esm.js";import{d as D}from"../chunks/lodash-P8OIs-at.esm.js";import{c as L,d as E,b as W,e as x,A as B,f as w,a as U,_ as C}from"../chunks/enforce-config-fo8kIfoY.esm.js";import{D as A,b as P,i as M,u as F,S as K}from"../chunks/routes-CqjzL4oL.esm.js";import{p as j}from"../chunks/progress-bar-7gWYaGlq.esm.js";import{partnerLogosConfigDefaults as O}from"./beam-partner-logos.js";import{u,d as h,_,i as p}from"../chunks/localize-pzAAkBvG.esm.js";import{M as q,B as V}from"../chunks/beam-errors-P-Lu07Ce.esm.js";import{createScopedLocalStorage as H}from"../utils/local-storage.js";import{c as G}from"../chunks/css-card-grid-3b56QBzq.esm.js";import{c as J}from"../chunks/events-5IECSF-x.esm.js";import"../utils/logger.js";const Z=({height:i="1em",width:e="1em"}={})=>m`
2
2
  <svg
3
3
  style="${y({height:i,width:e,position:"relative",bottom:"0"})}"
4
4
  xmlns="http://www.w3.org/2000/svg"
@@ -13,7 +13,7 @@ import{y as m,m as y,f as S,g as c,t as k,h as $,q as v,p as z,k as D}from"../ch
13
13
  />
14
14
  </g>
15
15
  </svg>
16
- `,f={en:{beamAttribution:()=>"Powered by Beam",ctaTitle:()=>"Choose your impact",ctaMessage:({donationPercentage:i="1%"})=>`Select a nonprofit and ${i} of your purchase will be donated, at no extra cost.`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"},fr:{beamAttribution:()=>"Optimis\xE9 par Beam",ctaTitle:()=>"Choisissez votre cause",ctaMessage:({donationPercentage:i="1%"})=>`Choisissez un organisme \xE0 but non lucratif et ${i}% lui sera vers\xE9 en votre nom, sans frais suppl\xE9mentaires.`,submitButtonText:()=>"Confirmer",submitButtonTextCompleted:()=>"Confirm\xE9!",chooseButtonText:()=>"Choisissez"},de:{beamAttribution:()=>"Unterst\xFCtzt von Beam",ctaTitle:()=>"W\xE4hle deinen Impact",ctaMessage:({donationPercentage:i="1%"}={})=>`W\xE4hle eine der gemeinn\xFCtzigen Organisationen und spende ${i} deines Einkaufs ohne zus\xE4tzliche Kosten`,submitButtonText:()=>"Best\xE4tigen",submitButtonTextCompleted:()=>"Best\xE4tigt!",chooseButtonText:()=>"W\xE4hlen"},es:{ctaTitle:()=>"Elige tu contribuci\xF3n",ctaMessage:({donationPercentage:i="1%"})=>`Elige una organizaci\xF3n sin fines de lucro y donaremos ${i} de tu compra sin coste adicional.`,beamAttribution:()=>"Ofrecido por Beam",submitButtonText:()=>"Confirmar",submitButtonTextCompleted:()=>"Confirmado",chooseButtonText:()=>"Elige"},it:{ctaTitle:()=>"Scegli dove fare la differenza",ctaMessage:({donationPercentage:i="1%"})=>`Seleziona un'organizzazione no-profit a cui devolvere l\u2019${i} del tuo acquisto, senza costi aggiuntivi`,beamAttribution:()=>"Gestito da Beam",submitButtonText:()=>"Confermare",submitButtonTextCompleted:()=>"Confermato!",chooseButtonText:()=>"Scegli"},pl:{beamAttribution:()=>"Wspierany przez Beam",ctaTitle:()=>"Wybierz inicjatyw\u0119, kt\xF3r\u0105 chcesz wesprze\u0107",ctaMessage:({donationPercentage:i="1%"})=>`Wybierz organizacj\u0119, kt\xF3rej przeka\u017Cesz ${i} warto\u015Bci Twoich zakup\xF3w \u2013 bez \u017Cadnych dodatkowych koszt\xF3w!`,submitButtonText:()=>"Zatwierd\u017A",submitButtonTextCompleted:()=>"Zatwierdzono!",chooseButtonText:()=>"Wybierz"}};var q=Object.defineProperty,G=Object.getOwnPropertyDescriptor,d=(i,e,t,o)=>{for(var a=o>1?void 0:o?G(e,t):e,l=i.length-1,s;l>=0;l--)(s=i[l])&&(a=(o?s(e,t,a):s(a))||a);return o&&a&&q(e,t,a),a};class n extends ${constructor(){super(...arguments),this.baseUrl=U,this.lang="en",this.debug=!1,this.isMobile=window.innerWidth<768,this.didUserExpandNonprofits=!1,this.getChainNonprofits=async()=>{x(["apiKey","transactionId"],this);const e=await P({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{storeId:this.storeId,postalCode:this.postalCode,countryCode:this.countryCode,cart:this.cart??void 0,widgetName:"redeem-transaction",version:"1.0.0",lang:this.configLang}});return e.store?.id&&e.store.id!==this.storeId&&(this.storeId=e.store.id),this.localStorage.setItemJson("chainNonprofits",{createdAt:new Date,data:e}),e},this.putTransaction=async({selectedNonprofitId:e})=>(x(["apiKey","transactionId"],this),A({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},pathParams:{transactionId:Number(this.transactionId)},requestBody:{nonprofitId:e}})),this.nonprofitListDataController=new B(this,this.getChainNonprofits),this.selectionDataController=new B(this,this.putTransaction),this.localStorage=K(this),this.makeHandleSelect=(e,t,o)=>async a=>{if(!this.allowChange)return;const l=this.selectedNonprofitId;if(a instanceof KeyboardEvent){let s=null;switch(a.key){case"ArrowUp":case"ArrowLeft":t===0?s=o[o.length-1]:s=o[t-1],a.preventDefault();break;case"ArrowRight":case"ArrowDown":t===o.length-1?s=o[0]:s=o[t+1],a.preventDefault();break;case"Enter":case" ":a.preventDefault();break;default:return}if(s){const b=this.renderRoot.querySelector(`[data-value="${s.nonprofit.id}"]`);b!==null&&(b.tabIndex=0,b.focus());return}}if(a.currentTarget instanceof HTMLElement){if(l===e)return;this.selectedNonprofitId=e}},this.handleSubmit=async()=>{const{selectedNonprofitId:e}=this;if(!this.allowSubmit||e==null)return;await this.selectionDataController.exec({selectedNonprofitId:e}),this.localStorage.setItem("nonprofit",e);const t=this.nonprofitListDataController?.data?.nonprofits.find(o=>o.nonprofit.id===e);this.dispatchEvent(new V({selectedNonprofitId:e,nonprofitName:t?.nonprofit.name}))},this.evaluateBreakPoints=N(()=>{this.isMobile=window.innerWidth<768},50,{maxWait:50,leading:!0})}get configLang(){return M[this.lang]||"en"}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.evaluateBreakPoints)}async firstUpdated(e){await this.restoreStateFromCache()}async updated(e){const t=["baseUrl","storeId","apiKey","countryCode","postalCode","lang"];for(const o of t)if(e.has(o)){await this.nonprofitListDataController.exec();break}}disconnectedCallback(){super.disconnectedCallback()}restoreStateFromCache(){x(["apiKey"],this),this.selectedNonprofitId=parseInt(this.localStorage.getItem("nonprofit")||"")||void 0;try{const{createdAt:e=0,data:t}=this.localStorage.getItemJson("chainNonprofits")||{},o=2*60*60*1e3;new Date(e).valueOf()+o>new Date().valueOf()&&(this.nonprofitListDataController.data=t,this.nonprofitListDataController.loading=!1)}catch{}}get allowChange(){return this.selectionDataController.data==null&&!this.selectionDataController.loading}get allowSubmit(){return!!(this.selectedNonprofitId&&this.allowChange)}get cssVariables(){const e={"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit",...j,...F,"--beam-RedeemTransaction-maxWidth":"1000px","--beam-RedeemTransaction-submitButton-color":"#fff","--beam-RedeemTransaction-submitButton-hover-color":"#fff","--beam-RedeemTransaction-submitButton-disabled-color":"#fff","--beam-RedeemTransaction-submitButton-backgroundColor":"#333","--beam-RedeemTransaction-submitButton-hover-backgroundColor":"#222","--beam-RedeemTransaction-submitButton-disabled-backgroundColor":"#767676","--beam-RedeemTransaction-submitButton-borderColor":"#333","--beam-RedeemTransaction-submitButton-hover-borderColor":"#222","--beam-RedeemTransaction-submitButton-disabled-borderColor":"#767676","--beam-RedeemTransaction-submitButton-fontSize":"14px","--beam-RedeemTransaction-submitButton-fontWeight":"inherit","--beam-RedeemTransaction-submitButton-fontFamily":"inherit","--beam-RedeemTransaction-submitButton-textTransform":"none","--beam-RedeemTransaction-submitButton-borderRadius":"0px","--beam-RedeemTransaction-submitButton-padding":"15px 30px","--beam-RedeemTransaction-submitButton-position":"right","--beam-RedeemTransaction-submitButton-positionRight-width":"auto","--beam-RedeemTransaction-submitButton-positionBottom-width":"100%","--beam-RedeemTransaction-submitButton-positionBottom-marginTop":"10px","--beam-RedeemTransaction-checkmark-color":"transparent","--beam-RedeemTransaction-checkmark-selected-color":"#fff","--beam-RedeemTransaction-checkmark-hover-color":"#fff","--beam-RedeemTransaction-checkmark-backgroundColor":"transparent","--beam-RedeemTransaction-checkmark-selected-backgroundColor":"#333","--beam-RedeemTransaction-checkmark-hover-backgroundColor":"#d9d9d9","--beam-RedeemTransaction-checkmark-borderColor":"transparent","--beam-RedeemTransaction-checkmark-selected-borderColor":"#333","--beam-RedeemTransaction-checkmark-hover-borderColor":"#d9d9d9","--beam-RedeemTransaction-options-minWidth":"250px","--beam-RedeemTransaction-options-columnCount":"2","--beam-RedeemTransaction-options-borderRadius":"0px","--beam-RedeemTransaction-options-borderWidth":"1px","--beam-RedeemTransaction-options-selected-borderWidth":"2px","--beam-RedeemTransaction-options-focus-borderWidth":"1px","--beam-RedeemTransaction-options-image-borderRadius":"0px","--beam-RedeemTransaction-options-borderColor":"#d9d9d9","--beam-RedeemTransaction-options-selected-borderColor":"currentColor","--beam-RedeemTransaction-options-hover-borderColor":"#ccc","--beam-RedeemTransaction-options-backgroundColor":"transparent","--beam-RedeemTransaction-options-selected-backgroundColor":"transparent","--beam-RedeemTransaction-options-hover-backgroundColor":"#f1f1f1","--beam-RedeemTransaction-options-marginTop":"15px",...h("--beam-RedeemTransaction-title",{fontSize:"1.25em",fontWeight:"bold"}),...h("--beam-RedeemTransaction-description",{marginTop:"0.5em"}),...h("--beam-RedeemTransaction-details-cause",{fontSize:"1em",fontWeight:"bold"}),...h("--beam-RedeemTransaction-details-impactDescription",{fontSize:"0.85em",marginTop:"10px"}),"--beam-RedeemTransaction-details-nonprofitName-fontWeight":"bold","--beam-RedeemTransaction-details-nonprofitName-fontStyle":"inherit","--beam-RedeemTransaction-details-fundingProgress-marginTop":"10px",...h("--beam-RedeemTransaction-details-fundingProgressLabel",{fontSize:"0.85em"}),"--beam-RedeemTransaction-cardStyle":"'image'","--beam-RedeemTransaction-options-icon-padding":"0px","--beam-RedeemTransaction-options-collapseNonprofits-mobile":"false","--beam-RedeemTransaction-options-collapseNonprofits-desktop":"false"},t=this.nonprofitListDataController?.data?.config?.web?.theme||{},o={...e,...t};return Object.assign(Object.create({toCSS(){return I(this)}}),o)}handleChooseClick(){this.didUserExpandNonprofits=!0}get shouldCollapse(){const e=this.cssVariables["--beam-RedeemTransaction-options-collapseNonprofits-mobile"]==="true",t=this.cssVariables["--beam-RedeemTransaction-options-collapseNonprofits-desktop"]==="true";return this.isMobile&&e||!this.isMobile&&t}render(){const{selectedNonprofitId:e}=this,{data:t,loading:o}=this.nonprofitListDataController;if(o&&!t)return W();if(this.nonprofitListDataController.error)return this.debug?R({error:this.nonprofitListDataController.error}):"";if(this.selectionDataController.error&&this.debug)return R({error:this.selectionDataController.error});if(t==null)return this.debug?R({error:new O("No data")}):"";const a=t?.nonprofits||[],l=a.find(r=>r.nonprofit.id===e)||null,s=this.cssVariables["--beam-RedeemTransaction-cardStyle"]==="'icon'",b=this.cssVariables["--beam-RedeemTransaction-submitButton-position"],C=this.isMobile&&b==="bottom"?"positionBottom":"positionRight";return m`
16
+ `,f={en:{beamAttribution:()=>"Powered by Beam",ctaTitle:()=>"Choose your impact",ctaMessage:({donationPercentage:i="1%"})=>`Select a nonprofit and ${i} of your purchase will be donated, at no extra cost.`,submitButtonText:()=>"Confirm",submitButtonTextCompleted:()=>"Confirmed!",chooseButtonText:()=>"Choose"},fr:{beamAttribution:()=>"Optimis\xE9 par Beam",ctaTitle:()=>"Choisissez votre cause",ctaMessage:({donationPercentage:i="1%"})=>`Choisissez un organisme \xE0 but non lucratif et ${i}% lui sera vers\xE9 en votre nom, sans frais suppl\xE9mentaires.`,submitButtonText:()=>"Confirmer",submitButtonTextCompleted:()=>"Confirm\xE9!",chooseButtonText:()=>"Choisissez"},de:{beamAttribution:()=>"Unterst\xFCtzt von Beam",ctaTitle:()=>"W\xE4hle deinen Impact",ctaMessage:({donationPercentage:i="1%"}={})=>`W\xE4hle eine der gemeinn\xFCtzigen Organisationen und spende ${i} deines Einkaufs ohne zus\xE4tzliche Kosten`,submitButtonText:()=>"Best\xE4tigen",submitButtonTextCompleted:()=>"Best\xE4tigt!",chooseButtonText:()=>"W\xE4hlen"},es:{ctaTitle:()=>"Elige tu contribuci\xF3n",ctaMessage:({donationPercentage:i="1%"})=>`Elige una organizaci\xF3n sin fines de lucro y donaremos ${i} de tu compra sin coste adicional.`,beamAttribution:()=>"Ofrecido por Beam",submitButtonText:()=>"Confirmar",submitButtonTextCompleted:()=>"\xA1Confirmado!",chooseButtonText:()=>"Elige"},it:{ctaTitle:()=>"Scegli dove fare la differenza",ctaMessage:({donationPercentage:i="1%"})=>`Seleziona un'organizzazione no-profit a cui devolvere l\u2019${i} del tuo acquisto, senza costi aggiuntivi`,beamAttribution:()=>"Gestito da Beam",submitButtonText:()=>"Confermare",submitButtonTextCompleted:()=>"Confermato!",chooseButtonText:()=>"Scegli"},pl:{beamAttribution:()=>"Wspierany przez Beam",ctaTitle:()=>"Wybierz inicjatyw\u0119, kt\xF3r\u0105 chcesz wesprze\u0107",ctaMessage:({donationPercentage:i="1%"})=>`Wybierz organizacj\u0119, kt\xF3rej przeka\u017Cesz ${i} warto\u015Bci Twoich zakup\xF3w \u2013 bez \u017Cadnych dodatkowych koszt\xF3w!`,submitButtonText:()=>"Zatwierd\u017A",submitButtonTextCompleted:()=>"Zatwierdzono!",chooseButtonText:()=>"Wybierz"}};var Q=Object.defineProperty,X=Object.getOwnPropertyDescriptor,s=(i,e,t,o)=>{for(var a=o>1?void 0:o?X(e,t):e,l=i.length-1,d;l>=0;l--)(d=i[l])&&(a=(o?d(e,t,a):d(a))||a);return o&&a&&Q(e,t,a),a};class n extends I{constructor(){super(...arguments),this.baseUrl=A,this.lang="en",this.debug=!1,this.isMobile=window.innerWidth<768,this.didUserExpandNonprofits=!1,this.getChainNonprofits=async()=>{if(W(["transactionId","subscriptionId"],this),!this.hasCorrectTransactionConfig&&!this.hasCorrectSubscriptionConfig)throw new q;const e=await P({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{storeId:this.storeId,postalCode:this.postalCode,countryCode:this.countryCode,cart:this.cart??void 0,widgetName:"redeem-transaction",version:"1.0.0",lang:this.configLang}});return e.store?.id&&e.store.id!==this.storeId&&(this.storeId=e.store.id),this.localStorage.setItemJson("chainNonprofits",{createdAt:new Date,data:e}),e},this.updateNonprofitIdForRecord=async({selectedNonprofitId:e})=>this.transactionId?this.putTransaction({selectedNonprofitId:e}):this.subscriptionId?this.putSubscription({selectedNonprofitId:e}):null,this.putTransaction=async({selectedNonprofitId:e})=>(x(["apiKey","transactionId"],this),M({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},pathParams:{transactionId:Number(this.transactionId)},requestBody:{nonprofitId:e}})),this.putSubscription=async({selectedNonprofitId:e})=>(x(["apiKey","subscriptionId"],this),F({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{remoteSubscriptionId:this.subscriptionId,nonprofitId:e}})),this.nonprofitListDataController=new B(this,this.getChainNonprofits),this.selectionDataController=new B(this,this.updateNonprofitIdForRecord),this.localStorage=H(this),this.makeHandleSelect=(e,t,o)=>async a=>{if(!this.allowChange)return;const l=this.selectedNonprofitId;if(a instanceof KeyboardEvent){let d=null;switch(a.key){case"ArrowUp":case"ArrowLeft":t===0?d=o[o.length-1]:d=o[t-1],a.preventDefault();break;case"ArrowRight":case"ArrowDown":t===o.length-1?d=o[0]:d=o[t+1],a.preventDefault();break;case"Enter":case" ":a.preventDefault();break;default:return}if(d){const b=this.renderRoot.querySelector(`[data-value="${d.nonprofit.id}"]`);b!==null&&(b.tabIndex=0,b.focus());return}}if(a.currentTarget instanceof HTMLElement){if(l===e)return;this.selectedNonprofitId=e}},this.handleSubmit=async()=>{const{selectedNonprofitId:e}=this;if(!this.allowSubmit||e==null)return;await this.selectionDataController.exec({selectedNonprofitId:e}),this.localStorage.setItem("nonprofit",e);const t=this.nonprofitListDataController?.data?.nonprofits.find(o=>o.nonprofit.id===e);this.dispatchEvent(new J({selectedNonprofitId:e,nonprofitName:t?.nonprofit.name}))},this.evaluateBreakPoints=D(()=>{this.isMobile=window.innerWidth<768},50,{maxWait:50,leading:!0})}get configLang(){return K[this.lang]||"en"}get hasCorrectTransactionConfig(){return w(["apiKey","transactionId"],this)}get hasCorrectSubscriptionConfig(){return w(["apiKey","subscriptionId"],this)}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.evaluateBreakPoints)}async firstUpdated(e){await this.restoreStateFromCache()}async updated(e){const t=["baseUrl","storeId","apiKey","countryCode","postalCode","lang"];for(const o of t)if(e.has(o)){await this.nonprofitListDataController.exec();break}}disconnectedCallback(){super.disconnectedCallback()}restoreStateFromCache(){x(["apiKey"],this),this.selectedNonprofitId=parseInt(this.localStorage.getItem("nonprofit")||"")||void 0;try{const{createdAt:e=0,data:t}=this.localStorage.getItemJson("chainNonprofits")||{},o=2*60*60*1e3;new Date(e).valueOf()+o>new Date().valueOf()&&(this.nonprofitListDataController.data=t,this.nonprofitListDataController.loading=!1)}catch{}}get allowChange(){return this.selectionDataController.data==null&&!this.selectionDataController.loading}get allowSubmit(){return!!(this.selectedNonprofitId&&this.allowChange)}get cssVariables(){const e={"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit",...O,...j,"--beam-RedeemTransaction-maxWidth":"1000px","--beam-RedeemTransaction-submitButton-color":"#fff","--beam-RedeemTransaction-submitButton-hover-color":"#fff","--beam-RedeemTransaction-submitButton-disabled-color":"#fff","--beam-RedeemTransaction-submitButton-backgroundColor":"#333","--beam-RedeemTransaction-submitButton-hover-backgroundColor":"#222","--beam-RedeemTransaction-submitButton-disabled-backgroundColor":"#767676","--beam-RedeemTransaction-submitButton-borderColor":"#333","--beam-RedeemTransaction-submitButton-hover-borderColor":"#222","--beam-RedeemTransaction-submitButton-disabled-borderColor":"#767676","--beam-RedeemTransaction-submitButton-fontSize":"14px","--beam-RedeemTransaction-submitButton-fontWeight":"inherit","--beam-RedeemTransaction-submitButton-fontFamily":"inherit","--beam-RedeemTransaction-submitButton-textTransform":"none","--beam-RedeemTransaction-submitButton-borderRadius":"0px","--beam-RedeemTransaction-submitButton-padding":"15px 30px","--beam-RedeemTransaction-submitButton-position":"right","--beam-RedeemTransaction-submitButton-positionRight-width":"auto","--beam-RedeemTransaction-submitButton-positionBottom-width":"100%","--beam-RedeemTransaction-submitButton-positionBottom-marginTop":"10px","--beam-RedeemTransaction-checkmark-color":"transparent","--beam-RedeemTransaction-checkmark-selected-color":"#fff","--beam-RedeemTransaction-checkmark-hover-color":"#fff","--beam-RedeemTransaction-checkmark-backgroundColor":"transparent","--beam-RedeemTransaction-checkmark-selected-backgroundColor":"#333","--beam-RedeemTransaction-checkmark-hover-backgroundColor":"#d9d9d9","--beam-RedeemTransaction-checkmark-borderColor":"transparent","--beam-RedeemTransaction-checkmark-selected-borderColor":"#333","--beam-RedeemTransaction-checkmark-hover-borderColor":"#d9d9d9","--beam-RedeemTransaction-options-minWidth":"250px","--beam-RedeemTransaction-options-columnCount":"2","--beam-RedeemTransaction-options-borderRadius":"0px","--beam-RedeemTransaction-options-borderWidth":"1px","--beam-RedeemTransaction-options-selected-borderWidth":"2px","--beam-RedeemTransaction-options-focus-borderWidth":"1px","--beam-RedeemTransaction-options-image-borderRadius":"0px","--beam-RedeemTransaction-options-borderColor":"#d9d9d9","--beam-RedeemTransaction-options-selected-borderColor":"currentColor","--beam-RedeemTransaction-options-hover-borderColor":"#ccc","--beam-RedeemTransaction-options-backgroundColor":"transparent","--beam-RedeemTransaction-options-selected-backgroundColor":"transparent","--beam-RedeemTransaction-options-hover-backgroundColor":"#f1f1f1","--beam-RedeemTransaction-options-marginTop":"15px",...h("--beam-RedeemTransaction-title",{fontSize:"1.25em",fontWeight:"bold"}),...h("--beam-RedeemTransaction-description",{marginTop:"0.5em"}),...h("--beam-RedeemTransaction-details-cause",{fontSize:"1em",fontWeight:"bold"}),...h("--beam-RedeemTransaction-details-impactDescription",{fontSize:"0.85em",marginTop:"10px"}),"--beam-RedeemTransaction-details-nonprofitName-fontWeight":"bold","--beam-RedeemTransaction-details-nonprofitName-fontStyle":"inherit","--beam-RedeemTransaction-details-fundingProgress-marginTop":"10px",...h("--beam-RedeemTransaction-details-fundingProgressLabel",{fontSize:"0.85em"}),"--beam-RedeemTransaction-cardStyle":"'image'","--beam-RedeemTransaction-options-icon-padding":"0px","--beam-RedeemTransaction-options-collapseNonprofits-mobile":"false","--beam-RedeemTransaction-options-collapseNonprofits-desktop":"false"},t=this.nonprofitListDataController?.data?.config?.web?.theme||{},o={...e,...t};return Object.assign(Object.create({toCSS(){return U(this)}}),o)}handleChooseClick(){this.didUserExpandNonprofits=!0}get shouldCollapse(){const e=this.cssVariables["--beam-RedeemTransaction-options-collapseNonprofits-mobile"]==="true",t=this.cssVariables["--beam-RedeemTransaction-options-collapseNonprofits-desktop"]==="true";return this.isMobile&&e||!this.isMobile&&t}render(){const{selectedNonprofitId:e}=this,{data:t,loading:o}=this.nonprofitListDataController;if(o&&!t)return _();if(this.nonprofitListDataController.error)return this.debug?C({error:this.nonprofitListDataController.error}):"";if(this.selectionDataController.error&&this.debug)return C({error:this.selectionDataController.error});if(t==null)return this.debug?C({error:new V("No data")}):"";const a=t?.nonprofits||[],l=a.find(r=>r.nonprofit.id===e)||null,d=this.cssVariables["--beam-RedeemTransaction-cardStyle"]==="'icon'",b=this.cssVariables["--beam-RedeemTransaction-submitButton-position"],R=this.isMobile&&b==="bottom"?"positionBottom":"positionRight";return m`
17
17
  <style>
18
18
  :host {
19
19
  ${this.cssVariables.toCSS()}
@@ -30,12 +30,12 @@ import{y as m,m as y,f as S,g as c,t as k,h as $,q as v,p as z,k as D}from"../ch
30
30
  aria-labelledby="beam-RedeemTransaction-title"
31
31
  ?aria-disabled=${!this.allowChange}
32
32
  >
33
- ${z(a,r=>r.nonprofit.id,(r,g)=>{const T=e===r.nonprofit.id,w=T||l==null&&g===0;return m`
33
+ ${N(a,r=>r.nonprofit.id,(r,g)=>{const T=e===r.nonprofit.id,S=T||l==null&&g===0;return m`
34
34
  <div
35
35
  class="option ${v({isSelected:T,isDisabled:!this.allowChange})}"
36
36
  part="option"
37
37
  role="radio"
38
- tabindex="${w?0:-1}"
38
+ tabindex="${S?0:-1}"
39
39
  data-value=${r.nonprofit.id}
40
40
  ?aria-checked=${T}
41
41
  @click=${this.makeHandleSelect(r.nonprofit.id,g,a)}
@@ -43,7 +43,7 @@ import{y as m,m as y,f as S,g as c,t as k,h as $,q as v,p as z,k as D}from"../ch
43
43
  aria-label="${p(this.configLang,r.nonprofit.cause||"")}"
44
44
  style="${y({display:"flex",gap:"15px",padding:"10px"})}"
45
45
  >
46
- ${s?m` <div style="height: 100%; flex: 1; flex-direction: column;">
46
+ ${d?m` <div style="height: 100%; flex: 1; flex-direction: column;">
47
47
  <img
48
48
  src="${r.nonprofit.causeIconUrl}"
49
49
  alt=""
@@ -103,12 +103,12 @@ import{y as m,m as y,f as S,g as c,t as k,h as $,q as v,p as z,k as D}from"../ch
103
103
  justify-content: center;
104
104
  "
105
105
  >
106
- <span style="line-height: 0;"> ${H({height:"10px",width:"10px"})} </span>
106
+ <span style="line-height: 0;"> ${Z({height:"10px",width:"10px"})} </span>
107
107
  </span>
108
108
  ${p(this.configLang,r.nonprofit.cause||"")}
109
109
  </div>
110
110
  <p class="details-impactDescription" style="flex: 1 1;">
111
- ${D(p(this.configLang,r.impact.description||""))}
111
+ ${z(p(this.configLang,r.impact.description||""))}
112
112
  </p>
113
113
  <div
114
114
  style="display: flex; margin-top: var(--beam-RedeemTransaction-details-fundingProgress-marginTop); align-items: center;"
@@ -150,14 +150,14 @@ import{y as m,m as y,f as S,g as c,t as k,h as $,q as v,p as z,k as D}from"../ch
150
150
  type="button"
151
151
  ?aria-disabled=${!this.allowSubmit}
152
152
  @click="${this.handleSubmit}"
153
- class="${v({isDisabled:!this.allowSubmit,[C]:!0,submitButton:!0})}"
153
+ class="${v({isDisabled:!this.allowSubmit,[R]:!0,submitButton:!0})}"
154
154
  part="submitButton"
155
155
  >
156
156
  ${this.selectionDataController.data!==null?f[this.configLang].submitButtonTextCompleted():f[this.configLang].submitButtonText()}
157
157
  </button>`:m`<button
158
158
  type="button"
159
159
  @click="${this.handleChooseClick}"
160
- class="submitButton ${C}"
160
+ class="submitButton ${R}"
161
161
  part="submitButton"
162
162
  >
163
163
  ${f[this.configLang].chooseButtonText()}
@@ -170,7 +170,7 @@ import{y as m,m as y,f as S,g as c,t as k,h as $,q as v,p as z,k as D}from"../ch
170
170
  style="order: 1"
171
171
  ></beam-partner-logos>
172
172
  </div>
173
- `}}n.tagName="beam-redeem-transaction",n.styles=[L,S`
173
+ `}}n.tagName="beam-redeem-transaction",n.styles=[L,$`
174
174
  :host {
175
175
  display: block;
176
176
  max-width: var(--beam-RedeemTransaction-maxWidth, 1000px);
@@ -179,6 +179,7 @@ import{y as m,m as y,f as S,g as c,t as k,h as $,q as v,p as z,k as D}from"../ch
179
179
  font-size: var(--beam-fontSize);
180
180
  background-color: var(--beam-backgroundColor);
181
181
  color: var(--beam-textColor);
182
+ word-break: normal;
182
183
  }
183
184
 
184
185
  .headerContainer {
@@ -300,5 +301,5 @@ import{y as m,m as y,f as S,g as c,t as k,h as $,q as v,p as z,k as D}from"../ch
300
301
  font-weight: var(--beam-RedeemTransaction-details-nonprofitName-fontWeight, bold);
301
302
  font-style: var(--beam-RedeemTransaction-details-nonprofitName-fontStyle, inherit);
302
303
  }
303
- `,_({gap:"20px",itemMinWidth:"var(--beam-RedeemTransaction-options-minWidth, 250px)",columnCount:"var(--beam-RedeemTransaction-options-columnCount, 2)"})],d([c({type:String})],n.prototype,"baseUrl",2),d([c({type:String})],n.prototype,"apiKey",2),d([c({type:Number})],n.prototype,"transactionId",2),d([c({type:Number})],n.prototype,"storeId",2),d([c({type:String})],n.prototype,"countryCode",2),d([c({type:String})],n.prototype,"postalCode",2),d([c({type:Object})],n.prototype,"cart",2),d([c({type:Number,reflect:!0})],n.prototype,"selectedNonprofitId",2),d([c({type:String})],n.prototype,"lang",2),d([c({type:Boolean})],n.prototype,"debug",2),d([k()],n.prototype,"isMobile",2),d([k()],n.prototype,"didUserExpandNonprofits",2),E(n);export{n as BeamRedeemTransaction};
304
+ `,G({gap:"20px",itemMinWidth:"var(--beam-RedeemTransaction-options-minWidth, 250px)",columnCount:"var(--beam-RedeemTransaction-options-columnCount, 2)"})],s([c({type:String})],n.prototype,"baseUrl",2),s([c({type:String})],n.prototype,"apiKey",2),s([c({type:Number})],n.prototype,"transactionId",2),s([c({type:String})],n.prototype,"subscriptionId",2),s([c({type:Number})],n.prototype,"storeId",2),s([c({type:String})],n.prototype,"countryCode",2),s([c({type:String})],n.prototype,"postalCode",2),s([c({type:Object})],n.prototype,"cart",2),s([c({type:Number,reflect:!0})],n.prototype,"selectedNonprofitId",2),s([c({type:String})],n.prototype,"lang",2),s([c({type:Boolean})],n.prototype,"debug",2),s([k()],n.prototype,"isMobile",2),s([k()],n.prototype,"didUserExpandNonprofits",2),E(n);export{n as BeamRedeemTransaction};
304
305
  //# sourceMappingURL=redeem-transaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"redeem-transaction.js","sources":["../../src/shared/fragments/checkbox.ts","../../src/components/redeem-transaction/strings.ts","../../src/components/redeem-transaction/index.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { styleMap } from \"lit/directives/style-map.js\";\n\nexport const _checkbox = ({ height = \"1em\", width = \"1em\" } = {}) =>\n html`\n <svg\n style=\"${styleMap({ height, width, position: \"relative\", bottom: \"0\" })}\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 78.369 78.369\"\n >\n <g>\n <path\n d=\"M78.049,19.015L29.458,67.606c-0.428,0.428-1.121,0.428-1.548,0L0.32,40.015c-0.427-0.426-0.427-1.119,0-1.547l6.704-6.704\n c0.428-0.427,1.121-0.427,1.548,0l20.113,20.112l41.113-41.113c0.429-0.427,1.12-0.427,1.548,0l6.703,6.704\n C78.477,17.894,78.477,18.586,78.049,19.015z\"\n style=\"fill: currentColor\"\n />\n </g>\n </svg>\n `;\n","export const strings = {\n en: {\n beamAttribution: () => `Powered by Beam`,\n ctaTitle: () => `Choose your impact`,\n ctaMessage: ({ donationPercentage = \"1%\" }) =>\n `Select a nonprofit and ${donationPercentage} of your purchase will be donated, at no extra cost.`,\n submitButtonText: () => `Confirm`,\n submitButtonTextCompleted: () => `Confirmed!`,\n chooseButtonText: () => `Choose`,\n },\n fr: {\n beamAttribution: () => `Optimisé par Beam`,\n ctaTitle: () => `Choisissez votre cause`,\n ctaMessage: ({ donationPercentage = \"1%\" }) =>\n `Choisissez un organisme à but non lucratif et ${donationPercentage}% lui sera versé en votre nom, sans frais supplémentaires.`,\n submitButtonText: () => `Confirmer`,\n submitButtonTextCompleted: () => `Confirmé!`,\n chooseButtonText: () => `Choisissez`,\n },\n de: {\n beamAttribution: () => `Unterstützt von Beam`,\n ctaTitle: () => `Wähle deinen Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Wähle eine der gemeinnützigen Organisationen und spende ${donationPercentage} deines Einkaufs ohne zusätzliche Kosten`,\n submitButtonText: () => \"Bestätigen\",\n submitButtonTextCompleted: () => `Bestätigt!`,\n chooseButtonText: () => `Wählen`,\n },\n es: {\n ctaTitle: () => \"Elige tu contribución\",\n ctaMessage: ({ donationPercentage = \"1%\" }) =>\n `Elige una organización sin fines de lucro y donaremos ${donationPercentage} de tu compra sin coste adicional.`,\n beamAttribution: () => \"Ofrecido por Beam\",\n submitButtonText: () => \"Confirmar\",\n submitButtonTextCompleted: () => \"Confirmado\",\n chooseButtonText: () => `Elige`,\n },\n it: {\n ctaTitle: () => \"Scegli dove fare la differenza\",\n ctaMessage: ({ donationPercentage = \"1%\" }) =>\n `Seleziona un'organizzazione no-profit a cui devolvere l’${donationPercentage} del tuo acquisto, senza costi aggiuntivi`,\n beamAttribution: () => \"Gestito da Beam\",\n submitButtonText: () => \"Confermare\",\n submitButtonTextCompleted: () => \"Confermato!\",\n chooseButtonText: () => `Scegli`,\n },\n pl: {\n beamAttribution: () => `Wspierany przez Beam`,\n ctaTitle: () => `Wybierz inicjatywę, którą chcesz wesprzeć`,\n ctaMessage: ({ donationPercentage = \"1%\" }) =>\n `Wybierz organizację, której przekażesz ${donationPercentage} wartości Twoich zakupów – bez żadnych dodatkowych kosztów!`,\n submitButtonText: () => `Zatwierdź`,\n submitButtonTextCompleted: () => `Zatwierdzono!`,\n chooseButtonText: () => `Wybierz`,\n },\n};\n","import { css, html, LitElement, PropertyValues } from \"lit\";\nimport { repeat } from \"lit/directives/repeat.js\";\nimport { property } from \"lit/decorators/property.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport { state } from \"lit/decorators/state.js\";\nimport debounce from \"lodash-es/debounce\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES } from \"../../api-sdk/constants\";\nimport \"../../shared/components/progress-bar\";\nimport \"../beam-partner-logos\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { BeamError, MissingConfig } from \"../../utils/beam-errors\";\nimport { TId, TNumericId } from \"../../shared/types\";\nimport { TCart } from \"../../shared/cart-contents\";\nimport { createScopedLocalStorage } from \"../../utils/local-storage\";\nimport { cssCardGrid } from \"../../shared/fragments/css-card-grid\";\nimport { _checkbox } from \"../../shared/fragments/checkbox\";\nimport { postChainEligibleNonprofitsForCart, putTransaction } from \"../../api-sdk/v3/routes\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { localizeUserString } from \"../../shared/localize\";\nimport { progressBarConfigDefaults } from \"../../shared/components/progress-bar\";\nimport { partnerLogosConfigDefaults } from \"../beam-partner-logos\";\nimport { strings } from \"./strings\";\n\ninterface RequiredConfig {\n apiKey: string;\n transactionId: TId;\n}\n\nexport class BeamRedeemTransaction extends LitElement {\n static tagName = \"beam-redeem-transaction\";\n\n @property({ type: String }) public baseUrl: string = DEFAULT_BASE_URL;\n\n @property({ type: String }) public apiKey?: RequiredConfig[\"apiKey\"];\n\n @property({ type: Number }) public transactionId?: RequiredConfig[\"transactionId\"];\n\n @property({ type: Number }) public storeId?: TNumericId;\n\n @property({ type: String }) public countryCode?: string;\n\n @property({ type: String }) public postalCode?: string;\n\n @property({ type: Object }) public cart?: TCart;\n\n @property({ type: Number, reflect: true }) public selectedNonprofitId?: TNumericId;\n\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n\n @property({ type: Boolean }) public debug = false;\n\n @state() private isMobile = window.innerWidth < 768;\n\n @state() private didUserExpandNonprofits = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n private getChainNonprofits = async () => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"transactionId\"], this)) {\n throw new MissingConfig();\n }\n const res = await postChainEligibleNonprofitsForCart({\n baseUrl: this.baseUrl,\n headers: { authorization: `Api-Key ${this.apiKey}` },\n requestBody: {\n storeId: this.storeId,\n postalCode: this.postalCode,\n countryCode: this.countryCode,\n cart: this.cart ?? undefined,\n widgetName: \"redeem-transaction\",\n version: \"1.0.0\",\n lang: this.configLang,\n },\n });\n\n // If store ID was not provided, get the store ID from response here\n if (res.store?.id && res.store.id !== this.storeId) {\n this.storeId = res.store.id;\n }\n\n this.localStorage.setItemJson(\"chainNonprofits\", {\n createdAt: new Date(),\n data: res,\n });\n\n return res;\n };\n\n private putTransaction = async ({ selectedNonprofitId }: { selectedNonprofitId: TNumericId }) => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"transactionId\"], this)) {\n throw new MissingConfig();\n }\n return putTransaction({\n baseUrl: this.baseUrl,\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n pathParams: {\n transactionId: Number(this.transactionId), // TODO: fix api spec for PUT transaction/:id to use string\n },\n requestBody: {\n nonprofitId: selectedNonprofitId,\n },\n });\n };\n\n private nonprofitListDataController = new AsyncController<typeof this.getChainNonprofits>(\n this,\n this.getChainNonprofits\n );\n\n private selectionDataController = new AsyncController<typeof this.putTransaction>(this, this.putTransaction);\n\n private localStorage = createScopedLocalStorage(this as LitElement & RequiredConfig);\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.evaluateBreakPoints);\n }\n\n async firstUpdated(_changedProperties: PropertyValues) {\n await this.restoreStateFromCache();\n }\n\n async updated(previousPropertyValues: PropertyValues) {\n // Reload nonprofit list on change of any of these props:\n // Also fires on first load as props go from undefined => value\n const requireNewDataProps = [\"baseUrl\", \"storeId\", \"apiKey\", \"countryCode\", \"postalCode\", \"lang\"];\n for (const prop of requireNewDataProps) {\n if (previousPropertyValues.has(prop)) {\n await this.nonprofitListDataController.exec();\n break;\n }\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n }\n\n private restoreStateFromCache() {\n if (!enforceConfig<RequiredConfig>([\"apiKey\"], this)) throw new MissingConfig();\n this.selectedNonprofitId = parseInt(this.localStorage.getItem(\"nonprofit\") || \"\") || undefined;\n\n try {\n // try to restore nonprofit list if we have data and it's not too old\n // list will continue to refresh async and replace this data when ready\n const { createdAt = 0, data } =\n this.localStorage.getItemJson<{ createdAt: string; data: any }>(\"chainNonprofits\") || {};\n const cacheTtl = 2 * 60 * 60 * 1000;\n if (new Date(createdAt).valueOf() + cacheTtl > new Date().valueOf()) {\n this.nonprofitListDataController.data = data;\n this.nonprofitListDataController.loading = false;\n }\n } catch (err) {\n // ignore cache retrieval error and continue to fetch data\n }\n }\n\n /**\n * Factory for selection event handler\n *\n * Nonprofit selector implements radio-button semantics:\n * * If nothing is selected, tabbing into selector selects first card\n * * Arrow keys changes focus between cards, but doesn't select\n * * Enter/Space sets selection\n * * If a nonprofit is selected, arrow keys change focus AND selection\n * * Click sets selection\n * @param {number} id\n * @param {number} index\n * @param {{id: number}[]} nonprofits\n * @returns {(evt: Event) => void}\n */\n private makeHandleSelect =\n (id: number, index: number, nonprofits: { nonprofit: { id: number } }[]): ((event: Event) => void) =>\n async (event: Event) => {\n if (!this.allowChange) return;\n\n const currentId = this.selectedNonprofitId;\n if (event instanceof KeyboardEvent) {\n let nextFocus = null;\n switch (event.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n if (index === 0) {\n nextFocus = nonprofits[nonprofits.length - 1];\n } else {\n nextFocus = nonprofits[index - 1];\n }\n event.preventDefault();\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n if (index === nonprofits.length - 1) {\n nextFocus = nonprofits[0];\n } else {\n nextFocus = nonprofits[index + 1];\n }\n event.preventDefault();\n break;\n case \"Enter\":\n case \" \":\n event.preventDefault();\n break; // continue to toggle-selection block below\n default:\n return;\n }\n if (nextFocus) {\n const focusTarget = this.renderRoot.querySelector(`[data-value=\"${nextFocus.nonprofit.id}\"]`) as HTMLElement;\n if (focusTarget !== null) {\n focusTarget.tabIndex = 0;\n focusTarget.focus();\n }\n return;\n }\n }\n // Handle selection with click or Enter/Space key\n const targetEl = event.currentTarget;\n if (targetEl instanceof HTMLElement) {\n if (currentId === id) {\n // this[\"selected-nonprofit-id\"] = undefined; // unset (not supported)\n return; // no API call or localStorage change needed\n } else {\n this.selectedNonprofitId = id;\n }\n }\n };\n\n get allowChange() {\n // Disallow change if already submitted\n return this.selectionDataController.data == null && !this.selectionDataController.loading;\n }\n\n get allowSubmit() {\n // Disabled if no nonprofit has been selected yet or if submission was already received\n return Boolean(this.selectedNonprofitId && this.allowChange);\n }\n\n handleSubmit = async () => {\n const { selectedNonprofitId } = this;\n if (!this.allowSubmit || selectedNonprofitId == null) return;\n await this.selectionDataController.exec({ selectedNonprofitId });\n\n this.localStorage.setItem(\"nonprofit\", selectedNonprofitId);\n\n const selectedNonprofit = this.nonprofitListDataController?.data?.nonprofits.find(\n (np) => np.nonprofit.id === selectedNonprofitId\n );\n\n this.dispatchEvent(\n new BeamNonprofitSelectEvent({ selectedNonprofitId, nonprofitName: selectedNonprofit?.nonprofit.name })\n );\n };\n\n evaluateBreakPoints = debounce(\n () => {\n this.isMobile = window.innerWidth < 768;\n },\n 50,\n { maxWait: 50, leading: true }\n );\n\n public get cssVariables() {\n const defaults = {\n \"--beam-fontFamily\": \"inherit\",\n \"--beam-fontStyle\": \"inherit\",\n \"--beam-fontSize\": \"inherit\",\n \"--beam-textColor\": \"inherit\",\n \"--beam-backgroundColor\": \"inherit\",\n ...partnerLogosConfigDefaults,\n ...progressBarConfigDefaults,\n \"--beam-RedeemTransaction-maxWidth\": \"1000px\",\n \"--beam-RedeemTransaction-submitButton-color\": \"#fff\",\n \"--beam-RedeemTransaction-submitButton-hover-color\": \"#fff\",\n \"--beam-RedeemTransaction-submitButton-disabled-color\": \"#fff\",\n \"--beam-RedeemTransaction-submitButton-backgroundColor\": \"#333\",\n \"--beam-RedeemTransaction-submitButton-hover-backgroundColor\": \"#222\",\n \"--beam-RedeemTransaction-submitButton-disabled-backgroundColor\": \"#767676\",\n \"--beam-RedeemTransaction-submitButton-borderColor\": \"#333\",\n \"--beam-RedeemTransaction-submitButton-hover-borderColor\": \"#222\",\n \"--beam-RedeemTransaction-submitButton-disabled-borderColor\": \"#767676\",\n \"--beam-RedeemTransaction-submitButton-fontSize\": \"14px\",\n \"--beam-RedeemTransaction-submitButton-fontWeight\": \"inherit\",\n \"--beam-RedeemTransaction-submitButton-fontFamily\": \"inherit\",\n \"--beam-RedeemTransaction-submitButton-textTransform\": \"none\",\n \"--beam-RedeemTransaction-submitButton-borderRadius\": \"0px\",\n \"--beam-RedeemTransaction-submitButton-padding\": \"15px 30px\",\n \"--beam-RedeemTransaction-submitButton-position\": \"right\" /* bottom only applies to mobile */,\n \"--beam-RedeemTransaction-submitButton-positionRight-width\": \"auto\",\n \"--beam-RedeemTransaction-submitButton-positionBottom-width\": \"100%\",\n \"--beam-RedeemTransaction-submitButton-positionBottom-marginTop\": \"10px\",\n \"--beam-RedeemTransaction-checkmark-color\": \"transparent\",\n \"--beam-RedeemTransaction-checkmark-selected-color\": \"#fff\",\n \"--beam-RedeemTransaction-checkmark-hover-color\": \"#fff\",\n \"--beam-RedeemTransaction-checkmark-backgroundColor\": \"transparent\",\n \"--beam-RedeemTransaction-checkmark-selected-backgroundColor\": \"#333\",\n \"--beam-RedeemTransaction-checkmark-hover-backgroundColor\": \"#d9d9d9\",\n \"--beam-RedeemTransaction-checkmark-borderColor\": \"transparent\",\n \"--beam-RedeemTransaction-checkmark-selected-borderColor\": \"#333\",\n \"--beam-RedeemTransaction-checkmark-hover-borderColor\": \"#d9d9d9\",\n \"--beam-RedeemTransaction-options-minWidth\": \"250px\",\n \"--beam-RedeemTransaction-options-columnCount\": \"2\",\n \"--beam-RedeemTransaction-options-borderRadius\": \"0px\",\n \"--beam-RedeemTransaction-options-borderWidth\": \"1px\",\n \"--beam-RedeemTransaction-options-selected-borderWidth\": \"2px\",\n \"--beam-RedeemTransaction-options-focus-borderWidth\": \"1px\",\n \"--beam-RedeemTransaction-options-image-borderRadius\": \"0px\",\n \"--beam-RedeemTransaction-options-borderColor\": \"#d9d9d9\",\n \"--beam-RedeemTransaction-options-selected-borderColor\": \"currentColor\",\n \"--beam-RedeemTransaction-options-hover-borderColor\": \"#ccc\",\n \"--beam-RedeemTransaction-options-backgroundColor\": \"transparent\",\n \"--beam-RedeemTransaction-options-selected-backgroundColor\": \"transparent\",\n \"--beam-RedeemTransaction-options-hover-backgroundColor\": \"#f1f1f1\",\n \"--beam-RedeemTransaction-options-marginTop\": \"15px\",\n ...defineCustomText(\"--beam-RedeemTransaction-title\", {\n fontSize: \"1.25em\",\n fontWeight: \"bold\",\n }),\n ...defineCustomText(\"--beam-RedeemTransaction-description\", {\n marginTop: \"0.5em\",\n }),\n ...defineCustomText(\"--beam-RedeemTransaction-details-cause\", {\n fontSize: \"1em\",\n fontWeight: \"bold\",\n }),\n ...defineCustomText(\"--beam-RedeemTransaction-details-impactDescription\", {\n fontSize: \"0.85em\",\n marginTop: \"10px\",\n }),\n \"--beam-RedeemTransaction-details-nonprofitName-fontWeight\": \"bold\",\n \"--beam-RedeemTransaction-details-nonprofitName-fontStyle\": \"inherit\",\n \"--beam-RedeemTransaction-details-fundingProgress-marginTop\": \"10px\",\n ...defineCustomText(\"--beam-RedeemTransaction-details-fundingProgressLabel\", {\n fontSize: \"0.85em\",\n }),\n \"--beam-RedeemTransaction-cardStyle\": \"'image'\",\n \"--beam-RedeemTransaction-options-icon-padding\": \"0px\",\n \"--beam-RedeemTransaction-options-collapseNonprofits-mobile\": \"false\",\n \"--beam-RedeemTransaction-options-collapseNonprofits-desktop\": \"false\",\n };\n\n const remoteConfig = this.nonprofitListDataController?.data?.config?.web?.theme || {};\n\n const config = { ...defaults, ...remoteConfig };\n\n const serializable = Object.create({\n toCSS() {\n return _cssVariableMap(this as Record<string, string>);\n },\n });\n\n return Object.assign(serializable, config);\n }\n\n static styles = [\n cssReset,\n css`\n :host {\n display: block;\n max-width: var(--beam-RedeemTransaction-maxWidth, 1000px);\n font-family: var(--beam-fontFamily);\n font-style: var(--beam-fontStyle);\n font-size: var(--beam-fontSize);\n background-color: var(--beam-backgroundColor);\n color: var(--beam-textColor);\n }\n\n .headerContainer {\n align-items: flex-start;\n justify-content: space-between;\n display: flex;\n }\n\n .submitButton {\n color: var(--beam-RedeemTransaction-submitButton-color, #fff);\n background-color: var(--beam-RedeemTransaction-submitButton-backgroundColor, #333);\n border: 1px solid var(--beam-RedeemTransaction-submitButton-borderColor, #333);\n font-size: var(--beam-RedeemTransaction-submitButton-fontSize, 14px);\n font-weight: var(--beam-RedeemTransaction-submitButton-fontWeight, inherit);\n font-family: var(--beam-RedeemTransaction-submitButton-fontFamily, inherit);\n text-transform: var(--beam-RedeemTransaction-submitButton-textTransform, none);\n border-radius: var(--beam-RedeemTransaction-submitButton-borderRadius, 0);\n padding: var(--beam-RedeemTransaction-submitButton-padding, 15px 30px);\n transition: background-color 0.2s, border-color 0.2s, color 0.2s;\n cursor: pointer;\n }\n\n .submitButton.positionRight {\n width: var(--beam-RedeemTransaction-submitButton-positionRight-width, auto);\n margin-left: 30px;\n }\n\n .submitButton.positionBottom {\n width: var(--beam-RedeemTransaction-submitButton-positionBottom-width, 100%);\n margin-top: var(--beam-RedeemTransaction-submitButton-positionBottom-marginTop, 10px);\n }\n\n .submitButton:not(.isDisabled):focus-visible,\n .submitButton:not(.isDisabled):hover {\n background-color: var(--beam-RedeemTransaction-submitButton-hover-backgroundColor, #222);\n border-color: var(--beam-RedeemTransaction-submitButton-hover-borderColor, #222);\n color: var(--beam-RedeemTransaction-submitButton-hover-color, #fff);\n }\n\n .submitButton.isDisabled {\n color: var(--beam-RedeemTransaction-submitButton-disabled-color, #fff);\n background-color: var(--beam-RedeemTransaction-submitButton-disabled-backgroundColor, #767676);\n border-color: var(--beam-RedeemTransaction-submitButton-disabled-borderColor, #767676);\n cursor: not-allowed;\n }\n\n .options {\n margin-top: var(--beam-RedeemTransaction-options-marginTop, 15px);\n }\n\n .options.isHidden {\n display: none;\n }\n\n .option {\n /* outline is used to prevent layer shift if changing border width */\n outline: var(--beam-RedeemTransaction-options-borderWidth, 1px) solid\n var(--beam-RedeemTransaction-options-borderColor, #d9d9d9);\n border-radius: var(--beam-RedeemTransaction-options-borderRadius);\n background-color: var(--beam-RedeemTransaction-options-backgroundColor, transparent);\n cursor: pointer;\n transition: border-color 0.2s, background-color 0.2s, outline 0.2s;\n }\n\n .option:not(.isDisabled):focus-visible,\n .option:not(.isDisabled):hover,\n .option:not(.isSelected):focus-visible,\n .option:not(.isSelected):hover {\n background-color: var(--beam-RedeemTransaction-options-hover-backgroundColor, #f1f1f1);\n outline: var(--beam-RedeemTransaction-options-hover-borderWidth, 1px) solid\n var(--beam-RedeemTransaction-options-hover-borderColor, #ccc);\n }\n\n .option.isDisabled {\n cursor: not-allowed;\n }\n\n .option.isSelected {\n outline: var(--beam-RedeemTransaction-options-selected-borderWidth, 1px) solid\n var(--beam-RedeemTransaction-options-selected-borderColor, #333);\n background-color: var(--beam-RedeemTransaction-options-selected-backgroundColor, transparent);\n }\n\n .option.isSelected:focus-visible,\n .option.isSelected:hover {\n outline: var(--beam-RedeemTransaction-options-selected-borderWidth, 1px) solid\n var(--beam-RedeemTransaction-options-selected-borderColor, #333);\n }\n\n .option .checkbox {\n border-width: 1px;\n border-style: solid;\n transition: background-color 0.2s, color 0.2s, border-color 0.2s;\n color: var(--beam-RedeemTransaction-checkmark-color, transparent);\n background-color: var(--beam-RedeemTransaction-checkmark-backgroundColor, transparent);\n border-color: var(--beam-RedeemTransaction-checkmark-borderColor, transparent);\n }\n\n .option.isSelected .checkbox,\n .option.isSelected:focus-visible .checkbox,\n .option.isSelected:hover .checkbox {\n color: var(--beam-RedeemTransaction-checkmark-selected-color, #fff);\n background-color: var(--beam-RedeemTransaction-checkmark-selected-backgroundColor, #333);\n border-color: var(--beam-RedeemTransaction-checkmark-selected-borderColor, #333);\n }\n\n .option:not(.isSelected):focus-visible .checkbox,\n .option:not(.isSelected):hover .checkbox {\n color: var(--beam-RedeemTransaction-checkmark-hover-color, #fff);\n background-color: var(--beam-RedeemTransaction-checkmark-hover-backgroundColor, #d9d9d9);\n border-color: var(--beam-RedeemTransaction-checkmark-hover-borderColor, #d9d9d9);\n }\n\n .details-impactDescription {\n ${useCustomText(\"--beam-RedeemTransaction-details-impactDescription\")}\n }\n\n .details-impactDescription .nonprofitName {\n font-weight: var(--beam-RedeemTransaction-details-nonprofitName-fontWeight, bold);\n font-style: var(--beam-RedeemTransaction-details-nonprofitName-fontStyle, inherit);\n }\n `,\n cssCardGrid({\n gap: \"20px\",\n itemMinWidth: \"var(--beam-RedeemTransaction-options-minWidth, 250px)\",\n columnCount: \"var(--beam-RedeemTransaction-options-columnCount, 2)\",\n }),\n ];\n\n private handleChooseClick() {\n this.didUserExpandNonprofits = true;\n }\n\n get shouldCollapse() {\n const enableMobileCollapse =\n this.cssVariables[\"--beam-RedeemTransaction-options-collapseNonprofits-mobile\"] === \"true\";\n const enableDesktopCollapse =\n this.cssVariables[\"--beam-RedeemTransaction-options-collapseNonprofits-desktop\"] === \"true\";\n return (this.isMobile && enableMobileCollapse) || (!this.isMobile && enableDesktopCollapse);\n }\n\n protected render() {\n const { selectedNonprofitId } = this;\n const { data, loading } = this.nonprofitListDataController;\n\n if (loading && !data) {\n return _loading();\n }\n if (this.nonprofitListDataController.error) {\n if (this.debug) {\n return _errorMessage({ error: this.nonprofitListDataController.error });\n }\n return \"\";\n }\n if (this.selectionDataController.error) {\n if (this.debug) {\n return _errorMessage({ error: this.selectionDataController.error });\n }\n // do not show error screen for interactive errors by default\n }\n if (data == null) {\n if (this.debug) {\n return _errorMessage({ error: new BeamError(\"No data\") });\n }\n return \"\";\n }\n const nonprofits = data?.nonprofits || [];\n const selectedNonprofit = nonprofits.find((np) => np.nonprofit.id === selectedNonprofitId) || null;\n // changes images in widget to icons\n const displayIcon = this.cssVariables[\"--beam-RedeemTransaction-cardStyle\"] === \"'icon'\";\n const submitButtonPosition = this.cssVariables[\"--beam-RedeemTransaction-submitButton-position\"];\n const submitButtonPositionClass =\n this.isMobile && submitButtonPosition === \"bottom\" ? \"positionBottom\" : \"positionRight\";\n\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n <!-- Custom flex order fixes tab cycling so submit button is after content -->\n <div style=\"display: flex; flex-direction: column;\" class=\"root\">\n <div\n style=\"order: 3;\"\n tabindex=\"-1\"\n class=\"options cardGrid ${classMap({ isHidden: !this.didUserExpandNonprofits && this.shouldCollapse })}\"\n part=\"options\"\n role=\"radiogroup\"\n aria-labelledby=\"beam-RedeemTransaction-title\"\n ?aria-disabled=${!this.allowChange}\n >\n ${repeat(\n nonprofits,\n (i) => i.nonprofit.id,\n (np, index) => {\n const isSelected = selectedNonprofitId === np.nonprofit.id;\n const isFocusable = isSelected || (selectedNonprofit == null && index === 0);\n return html`\n <div\n class=\"option ${classMap({\n isSelected: isSelected,\n isDisabled: !this.allowChange,\n })}\"\n part=\"option\"\n role=\"radio\"\n tabindex=\"${isFocusable ? 0 : -1}\"\n data-value=${np.nonprofit.id}\n ?aria-checked=${isSelected}\n @click=${this.makeHandleSelect(np.nonprofit.id, index, nonprofits)}\n @keydown=${this.makeHandleSelect(np.nonprofit.id, index, nonprofits)}\n aria-label=\"${localizeUserString(this.configLang, np.nonprofit.cause || \"\")}\"\n style=\"${styleMap({\n display: \"flex\",\n gap: \"15px\",\n padding: \"10px\",\n })}\"\n >\n ${displayIcon\n ? html` <div style=\"height: 100%; flex: 1; flex-direction: column;\">\n <img\n src=\"${np.nonprofit.causeIconUrl}\"\n alt=\"\"\n role=\"presentation\"\n style=\"\n flex: 1;\n height: auto;\n width: 100%;\n display: block;\n padding: var(--beam-RedeemTransaction-options-icon-padding);\n border-radius: var(--beam-RedeemTransaction-options-image-borderRadius, 0);\n \"\n />\n </div>`\n : html` <div style=\"height: 100%; flex: 1 0 33%; display: flex; flex-direction: column;\">\n <img\n src=\"${np.imageUrl}\"\n alt=\"\"\n role=\"presentation\"\n style=\"\n flex: 1;\n height: auto;\n width: 100%;\n object-fit: cover;\n border-radius: var(--beam-RedeemTransaction-options-image-borderRadius, 0);\n \"\n />\n </div>`}\n <div\n class=\"details\"\n part=\"details\"\n style=\"\n flex: 1 1 67%;\n height: 100%;\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-content: stretch;\n align-items: stretch;\n position: relative;\n \"\n >\n <div\n class=\"details-cause\"\n style=\"flex: 0 1; ${useCustomText(\"--beam-RedeemTransaction-details-cause\")}\"\n >\n <span\n part=\"checkbox\"\n class=\"checkbox\"\n style=\"\n margin-left: 5px;\n float: right;\n padding: 4px;\n border-radius: 100%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n \"\n >\n <span style=\"line-height: 0;\"> ${_checkbox({ height: \"10px\", width: \"10px\" })} </span>\n </span>\n ${localizeUserString(this.configLang, np.nonprofit.cause || \"\")}\n </div>\n <p class=\"details-impactDescription\" style=\"flex: 1 1;\">\n ${unsafeHTML(localizeUserString(this.configLang, np.impact.description || \"\"))}\n </p>\n <div\n style=\"display: flex; margin-top: var(--beam-RedeemTransaction-details-fundingProgress-marginTop); align-items: center;\"\n >\n <beam-progress-bar\n value=\"${np.impact.goalProgressPercentage}\"\n style=\"flex: 1 0;\"\n ></beam-progress-bar>\n <span\n class=\"details-fundingProgressLabel\"\n style=\"${useCustomText(\n \"--beam-RedeemTransaction-details-fundingProgressLabel\"\n )} white-space: nowrap; text-align: right; flex: 0 1; margin-left: 15px;\"\n >\n ${localizeUserString(this.configLang, np.impact.goalProgressText)}\n </span>\n </div>\n </div>\n </div>\n `;\n }\n )}\n </div>\n\n <div\n style=\"order: 2; flex-direction: ${this.isMobile && submitButtonPosition === \"bottom\" ? \"column\" : \"row\"};\"\n class=\"headerContainer\"\n >\n <div>\n <h3\n class=\"title\"\n part=\"title\"\n id=\"beam-RedeemTransaction-title\"\n style=\"${useCustomText(\"--beam-RedeemTransaction-title\")}\"\n >\n ${localizeUserString(this.configLang, data?.config?.web?.title) || strings[this.configLang].ctaTitle()}\n </h3>\n <p class=\"description\" part=\"description\" style=\"${useCustomText(\"--beam-RedeemTransaction-description\")}\">\n ${localizeUserString(this.configLang, data?.config?.web?.description)}\n </p>\n </div>\n ${this.didUserExpandNonprofits || !this.shouldCollapse\n ? html`<button\n type=\"button\"\n ?aria-disabled=${!this.allowSubmit}\n @click=\"${this.handleSubmit}\"\n class=\"${classMap({\n isDisabled: !this.allowSubmit,\n [submitButtonPositionClass]: true,\n submitButton: true,\n })}\"\n part=\"submitButton\"\n >\n ${this.selectionDataController.data !== null\n ? strings[this.configLang].submitButtonTextCompleted()\n : strings[this.configLang].submitButtonText()}\n </button>`\n : html`<button\n type=\"button\"\n @click=\"${this.handleChooseClick}\"\n class=\"submitButton ${submitButtonPositionClass}\"\n part=\"submitButton\"\n >\n ${strings[this.configLang].chooseButtonText()}\n </button>`}\n </div>\n\n <beam-partner-logos\n partnerName=\"${data.chain.name}\"\n partnerLogoUrl=\"${data.chain.logoUrl}\"\n style=\"order: 1\"\n ></beam-partner-logos>\n </div>\n `;\n }\n}\n\ndefineCustomElement(BeamRedeemTransaction);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-redeem-transaction\": BeamRedeemTransaction;\n }\n}\n"],"names":["_checkbox","height","width","html","styleMap","strings","donationPercentage","BeamRedeemTransaction","LitElement","DEFAULT_BASE_URL","enforceConfig","res","postChainEligibleNonprofitsForCart","selectedNonprofitId","putTransaction","AsyncController","createScopedLocalStorage","id","index","nonprofits","event","currentId","nextFocus","focusTarget","selectedNonprofit","np","BeamNonprofitSelectEvent","debounce","SUPPORTED_LANGUAGES","_changedProperties","previousPropertyValues","requireNewDataProps","prop","createdAt","data","cacheTtl","defaults","partnerLogosConfigDefaults","progressBarConfigDefaults","defineCustomText","remoteConfig","config","_cssVariableMap","enableMobileCollapse","enableDesktopCollapse","loading","_loading","_errorMessage","BeamError","displayIcon","submitButtonPosition","submitButtonPositionClass","classMap","repeat","i","isSelected","isFocusable","localizeUserString","useCustomText","unsafeHTML","cssReset","css","cssCardGrid","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
1
+ {"version":3,"file":"redeem-transaction.js","sources":["../../src/shared/fragments/checkbox.ts","../../src/components/redeem-transaction/strings.ts","../../src/components/redeem-transaction/index.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { styleMap } from \"lit/directives/style-map.js\";\n\nexport const _checkbox = ({ height = \"1em\", width = \"1em\" } = {}) =>\n html`\n <svg\n style=\"${styleMap({ height, width, position: \"relative\", bottom: \"0\" })}\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 78.369 78.369\"\n >\n <g>\n <path\n d=\"M78.049,19.015L29.458,67.606c-0.428,0.428-1.121,0.428-1.548,0L0.32,40.015c-0.427-0.426-0.427-1.119,0-1.547l6.704-6.704\n c0.428-0.427,1.121-0.427,1.548,0l20.113,20.112l41.113-41.113c0.429-0.427,1.12-0.427,1.548,0l6.703,6.704\n C78.477,17.894,78.477,18.586,78.049,19.015z\"\n style=\"fill: currentColor\"\n />\n </g>\n </svg>\n `;\n","export const strings = {\n en: {\n beamAttribution: () => `Powered by Beam`,\n ctaTitle: () => `Choose your impact`,\n ctaMessage: ({ donationPercentage = \"1%\" }) =>\n `Select a nonprofit and ${donationPercentage} of your purchase will be donated, at no extra cost.`,\n submitButtonText: () => `Confirm`,\n submitButtonTextCompleted: () => `Confirmed!`,\n chooseButtonText: () => `Choose`,\n },\n fr: {\n beamAttribution: () => `Optimisé par Beam`,\n ctaTitle: () => `Choisissez votre cause`,\n ctaMessage: ({ donationPercentage = \"1%\" }) =>\n `Choisissez un organisme à but non lucratif et ${donationPercentage}% lui sera versé en votre nom, sans frais supplémentaires.`,\n submitButtonText: () => `Confirmer`,\n submitButtonTextCompleted: () => `Confirmé!`,\n chooseButtonText: () => `Choisissez`,\n },\n de: {\n beamAttribution: () => `Unterstützt von Beam`,\n ctaTitle: () => `Wähle deinen Impact`,\n ctaMessage: ({ donationPercentage = \"1%\" } = {}) =>\n `Wähle eine der gemeinnützigen Organisationen und spende ${donationPercentage} deines Einkaufs ohne zusätzliche Kosten`,\n submitButtonText: () => \"Bestätigen\",\n submitButtonTextCompleted: () => `Bestätigt!`,\n chooseButtonText: () => `Wählen`,\n },\n es: {\n ctaTitle: () => \"Elige tu contribución\",\n ctaMessage: ({ donationPercentage = \"1%\" }) =>\n `Elige una organización sin fines de lucro y donaremos ${donationPercentage} de tu compra sin coste adicional.`,\n beamAttribution: () => \"Ofrecido por Beam\",\n submitButtonText: () => \"Confirmar\",\n submitButtonTextCompleted: () => \"¡Confirmado!\",\n chooseButtonText: () => `Elige`,\n },\n it: {\n ctaTitle: () => \"Scegli dove fare la differenza\",\n ctaMessage: ({ donationPercentage = \"1%\" }) =>\n `Seleziona un'organizzazione no-profit a cui devolvere l’${donationPercentage} del tuo acquisto, senza costi aggiuntivi`,\n beamAttribution: () => \"Gestito da Beam\",\n submitButtonText: () => \"Confermare\",\n submitButtonTextCompleted: () => \"Confermato!\",\n chooseButtonText: () => `Scegli`,\n },\n pl: {\n beamAttribution: () => `Wspierany przez Beam`,\n ctaTitle: () => `Wybierz inicjatywę, którą chcesz wesprzeć`,\n ctaMessage: ({ donationPercentage = \"1%\" }) =>\n `Wybierz organizację, której przekażesz ${donationPercentage} wartości Twoich zakupów – bez żadnych dodatkowych kosztów!`,\n submitButtonText: () => `Zatwierdź`,\n submitButtonTextCompleted: () => `Zatwierdzono!`,\n chooseButtonText: () => `Wybierz`,\n },\n};\n","import { css, html, LitElement, PropertyValues } from \"lit\";\nimport { repeat } from \"lit/directives/repeat.js\";\nimport { property } from \"lit/decorators/property.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport { state } from \"lit/decorators/state.js\";\nimport debounce from \"lodash-es/debounce\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES } from \"../../api-sdk/constants\";\nimport \"../../shared/components/progress-bar\";\nimport \"../beam-partner-logos\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { _loading } from \"../../shared/fragments/loading-template\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport {\n enforceConfig,\n areRequiredKeysDefined,\n checkForInvalidAttributeCombinations,\n} from \"../../shared/enforce-config\";\nimport { BeamError, MissingConfig } from \"../../utils/beam-errors\";\nimport { TId, TNumericId } from \"../../shared/types\";\nimport { TCart } from \"../../shared/cart-contents\";\nimport { createScopedLocalStorage } from \"../../utils/local-storage\";\nimport { cssCardGrid } from \"../../shared/fragments/css-card-grid\";\nimport { _checkbox } from \"../../shared/fragments/checkbox\";\nimport { postChainEligibleNonprofitsForCart, putTransaction, updateSubscription } from \"../../api-sdk/v3/routes\";\nimport { LANGUAGES } from \"../../api-sdk/types\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { localizeUserString } from \"../../shared/localize\";\nimport { progressBarConfigDefaults } from \"../../shared/components/progress-bar\";\nimport { partnerLogosConfigDefaults } from \"../beam-partner-logos\";\nimport { strings } from \"./strings\";\n\ninterface TransactionRequiredConfig {\n apiKey: string;\n transactionId: TId;\n}\n\ninterface SubscriptionRequiredConfig {\n apiKey: string;\n subscriptionId: string;\n}\n\ntype TRequiredConfig = TransactionRequiredConfig | SubscriptionRequiredConfig;\n\nexport class BeamRedeemTransaction extends LitElement {\n static tagName = \"beam-redeem-transaction\";\n\n @property({ type: String }) public baseUrl: string = DEFAULT_BASE_URL;\n\n @property({ type: String }) public apiKey?: TRequiredConfig[\"apiKey\"];\n\n @property({ type: Number }) public transactionId?: TransactionRequiredConfig[\"transactionId\"];\n\n @property({ type: String }) public subscriptionId?: SubscriptionRequiredConfig[\"subscriptionId\"];\n\n @property({ type: Number }) public storeId?: TNumericId;\n\n @property({ type: String }) public countryCode?: string;\n\n @property({ type: String }) public postalCode?: string;\n\n @property({ type: Object }) public cart?: TCart;\n\n @property({ type: Number, reflect: true })\n public selectedNonprofitId?: TNumericId;\n\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n\n @property({ type: Boolean }) public debug = false;\n\n @state() private isMobile = window.innerWidth < 768;\n\n @state() private didUserExpandNonprofits = false;\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n private get hasCorrectTransactionConfig(): boolean {\n const requiredKeys: (keyof TransactionRequiredConfig)[] = [\"apiKey\", \"transactionId\"];\n const isTransactionConfigCorrect = areRequiredKeysDefined(requiredKeys, this);\n return isTransactionConfigCorrect;\n }\n\n private get hasCorrectSubscriptionConfig(): boolean {\n const requiredKeys: (keyof SubscriptionRequiredConfig)[] = [\"apiKey\", \"subscriptionId\"];\n const isSubscriptionConfigCorrect = areRequiredKeysDefined(requiredKeys, this);\n return isSubscriptionConfigCorrect;\n }\n\n private getChainNonprofits = async () => {\n checkForInvalidAttributeCombinations([\"transactionId\", \"subscriptionId\"], this);\n if (!this.hasCorrectTransactionConfig && !this.hasCorrectSubscriptionConfig) {\n throw new MissingConfig();\n }\n const res = await postChainEligibleNonprofitsForCart({\n baseUrl: this.baseUrl,\n headers: { authorization: `Api-Key ${this.apiKey}` },\n requestBody: {\n storeId: this.storeId,\n postalCode: this.postalCode,\n countryCode: this.countryCode,\n cart: this.cart ?? undefined,\n widgetName: \"redeem-transaction\",\n version: \"1.0.0\",\n lang: this.configLang,\n },\n });\n\n // If store ID was not provided, get the store ID from response here\n if (res.store?.id && res.store.id !== this.storeId) {\n this.storeId = res.store.id;\n }\n\n this.localStorage.setItemJson(\"chainNonprofits\", {\n createdAt: new Date(),\n data: res,\n });\n\n return res;\n };\n\n private updateNonprofitIdForRecord = async ({ selectedNonprofitId }: { selectedNonprofitId: TNumericId }) => {\n if (this.transactionId) {\n return this.putTransaction({ selectedNonprofitId });\n } else if (this.subscriptionId) {\n return this.putSubscription({ selectedNonprofitId });\n }\n return null;\n };\n private putTransaction = async ({ selectedNonprofitId }: { selectedNonprofitId: TNumericId }) => {\n if (!enforceConfig<TransactionRequiredConfig>([\"apiKey\", \"transactionId\"], this)) {\n throw new MissingConfig();\n }\n return putTransaction({\n baseUrl: this.baseUrl,\n headers: {\n authorization: `Api-Key ${this.apiKey}`,\n },\n pathParams: {\n transactionId: Number(this.transactionId), // TODO: fix api spec for PUT transaction/:id to use string\n },\n requestBody: {\n nonprofitId: selectedNonprofitId,\n },\n });\n };\n\n // updates subscriptions nonprofitId\n private putSubscription = async ({ selectedNonprofitId }: { selectedNonprofitId: TNumericId }) => {\n if (!enforceConfig<SubscriptionRequiredConfig>([\"apiKey\", \"subscriptionId\"], this)) {\n throw new MissingConfig();\n }\n\n return updateSubscription({\n baseUrl: this.baseUrl,\n headers: { authorization: `Api-Key ${this.apiKey}` },\n requestBody: {\n remoteSubscriptionId: this.subscriptionId,\n nonprofitId: selectedNonprofitId,\n },\n });\n };\n\n private nonprofitListDataController = new AsyncController<typeof this.getChainNonprofits>(\n this,\n this.getChainNonprofits\n );\n\n private selectionDataController = new AsyncController<typeof this.updateNonprofitIdForRecord>(\n this,\n this.updateNonprofitIdForRecord\n );\n\n private localStorage = createScopedLocalStorage(this as LitElement & TRequiredConfig);\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener(\"resize\", this.evaluateBreakPoints);\n }\n\n async firstUpdated(_changedProperties: PropertyValues) {\n await this.restoreStateFromCache();\n }\n\n async updated(previousPropertyValues: PropertyValues) {\n // Reload nonprofit list on change of any of these props:\n // Also fires on first load as props go from undefined => value\n const requireNewDataProps = [\"baseUrl\", \"storeId\", \"apiKey\", \"countryCode\", \"postalCode\", \"lang\"];\n for (const prop of requireNewDataProps) {\n if (previousPropertyValues.has(prop)) {\n await this.nonprofitListDataController.exec();\n break;\n }\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n }\n\n private restoreStateFromCache() {\n if (!enforceConfig<TRequiredConfig>([\"apiKey\"], this)) throw new MissingConfig();\n this.selectedNonprofitId = parseInt(this.localStorage.getItem(\"nonprofit\") || \"\") || undefined;\n\n try {\n // try to restore nonprofit list if we have data and it's not too old\n // list will continue to refresh async and replace this data when ready\n const { createdAt = 0, data } =\n this.localStorage.getItemJson<{ createdAt: string; data: any }>(\"chainNonprofits\") || {};\n const cacheTtl = 2 * 60 * 60 * 1000;\n if (new Date(createdAt).valueOf() + cacheTtl > new Date().valueOf()) {\n this.nonprofitListDataController.data = data;\n this.nonprofitListDataController.loading = false;\n }\n } catch (err) {\n // ignore cache retrieval error and continue to fetch data\n }\n }\n\n /**\n * Factory for selection event handler\n *\n * Nonprofit selector implements radio-button semantics:\n * * If nothing is selected, tabbing into selector selects first card\n * * Arrow keys changes focus between cards, but doesn't select\n * * Enter/Space sets selection\n * * If a nonprofit is selected, arrow keys change focus AND selection\n * * Click sets selection\n * @param {number} id\n * @param {number} index\n * @param {{id: number}[]} nonprofits\n * @returns {(evt: Event) => void}\n */\n private makeHandleSelect =\n (id: number, index: number, nonprofits: { nonprofit: { id: number } }[]): ((event: Event) => void) =>\n async (event: Event) => {\n if (!this.allowChange) return;\n\n const currentId = this.selectedNonprofitId;\n if (event instanceof KeyboardEvent) {\n let nextFocus = null;\n switch (event.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n if (index === 0) {\n nextFocus = nonprofits[nonprofits.length - 1];\n } else {\n nextFocus = nonprofits[index - 1];\n }\n event.preventDefault();\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n if (index === nonprofits.length - 1) {\n nextFocus = nonprofits[0];\n } else {\n nextFocus = nonprofits[index + 1];\n }\n event.preventDefault();\n break;\n case \"Enter\":\n case \" \":\n event.preventDefault();\n break; // continue to toggle-selection block below\n default:\n return;\n }\n if (nextFocus) {\n const focusTarget = this.renderRoot.querySelector(`[data-value=\"${nextFocus.nonprofit.id}\"]`) as HTMLElement;\n if (focusTarget !== null) {\n focusTarget.tabIndex = 0;\n focusTarget.focus();\n }\n return;\n }\n }\n // Handle selection with click or Enter/Space key\n const targetEl = event.currentTarget;\n if (targetEl instanceof HTMLElement) {\n if (currentId === id) {\n // this[\"selected-nonprofit-id\"] = undefined; // unset (not supported)\n return; // no API call or localStorage change needed\n } else {\n this.selectedNonprofitId = id;\n }\n }\n };\n\n get allowChange() {\n // Disallow change if already submitted\n return this.selectionDataController.data == null && !this.selectionDataController.loading;\n }\n\n get allowSubmit() {\n // Disabled if no nonprofit has been selected yet or if submission was already received\n return Boolean(this.selectedNonprofitId && this.allowChange);\n }\n\n handleSubmit = async () => {\n const { selectedNonprofitId } = this;\n if (!this.allowSubmit || selectedNonprofitId == null) return;\n await this.selectionDataController.exec({ selectedNonprofitId });\n\n this.localStorage.setItem(\"nonprofit\", selectedNonprofitId);\n\n const selectedNonprofit = this.nonprofitListDataController?.data?.nonprofits.find(\n (np) => np.nonprofit.id === selectedNonprofitId\n );\n\n this.dispatchEvent(\n new BeamNonprofitSelectEvent({ selectedNonprofitId, nonprofitName: selectedNonprofit?.nonprofit.name })\n );\n };\n\n evaluateBreakPoints = debounce(\n () => {\n this.isMobile = window.innerWidth < 768;\n },\n 50,\n { maxWait: 50, leading: true }\n );\n\n public get cssVariables() {\n const defaults = {\n \"--beam-fontFamily\": \"inherit\",\n \"--beam-fontStyle\": \"inherit\",\n \"--beam-fontSize\": \"inherit\",\n \"--beam-textColor\": \"inherit\",\n \"--beam-backgroundColor\": \"inherit\",\n ...partnerLogosConfigDefaults,\n ...progressBarConfigDefaults,\n \"--beam-RedeemTransaction-maxWidth\": \"1000px\",\n \"--beam-RedeemTransaction-submitButton-color\": \"#fff\",\n \"--beam-RedeemTransaction-submitButton-hover-color\": \"#fff\",\n \"--beam-RedeemTransaction-submitButton-disabled-color\": \"#fff\",\n \"--beam-RedeemTransaction-submitButton-backgroundColor\": \"#333\",\n \"--beam-RedeemTransaction-submitButton-hover-backgroundColor\": \"#222\",\n \"--beam-RedeemTransaction-submitButton-disabled-backgroundColor\": \"#767676\",\n \"--beam-RedeemTransaction-submitButton-borderColor\": \"#333\",\n \"--beam-RedeemTransaction-submitButton-hover-borderColor\": \"#222\",\n \"--beam-RedeemTransaction-submitButton-disabled-borderColor\": \"#767676\",\n \"--beam-RedeemTransaction-submitButton-fontSize\": \"14px\",\n \"--beam-RedeemTransaction-submitButton-fontWeight\": \"inherit\",\n \"--beam-RedeemTransaction-submitButton-fontFamily\": \"inherit\",\n \"--beam-RedeemTransaction-submitButton-textTransform\": \"none\",\n \"--beam-RedeemTransaction-submitButton-borderRadius\": \"0px\",\n \"--beam-RedeemTransaction-submitButton-padding\": \"15px 30px\",\n \"--beam-RedeemTransaction-submitButton-position\": \"right\" /* bottom only applies to mobile */,\n \"--beam-RedeemTransaction-submitButton-positionRight-width\": \"auto\",\n \"--beam-RedeemTransaction-submitButton-positionBottom-width\": \"100%\",\n \"--beam-RedeemTransaction-submitButton-positionBottom-marginTop\": \"10px\",\n \"--beam-RedeemTransaction-checkmark-color\": \"transparent\",\n \"--beam-RedeemTransaction-checkmark-selected-color\": \"#fff\",\n \"--beam-RedeemTransaction-checkmark-hover-color\": \"#fff\",\n \"--beam-RedeemTransaction-checkmark-backgroundColor\": \"transparent\",\n \"--beam-RedeemTransaction-checkmark-selected-backgroundColor\": \"#333\",\n \"--beam-RedeemTransaction-checkmark-hover-backgroundColor\": \"#d9d9d9\",\n \"--beam-RedeemTransaction-checkmark-borderColor\": \"transparent\",\n \"--beam-RedeemTransaction-checkmark-selected-borderColor\": \"#333\",\n \"--beam-RedeemTransaction-checkmark-hover-borderColor\": \"#d9d9d9\",\n \"--beam-RedeemTransaction-options-minWidth\": \"250px\",\n \"--beam-RedeemTransaction-options-columnCount\": \"2\",\n \"--beam-RedeemTransaction-options-borderRadius\": \"0px\",\n \"--beam-RedeemTransaction-options-borderWidth\": \"1px\",\n \"--beam-RedeemTransaction-options-selected-borderWidth\": \"2px\",\n \"--beam-RedeemTransaction-options-focus-borderWidth\": \"1px\",\n \"--beam-RedeemTransaction-options-image-borderRadius\": \"0px\",\n \"--beam-RedeemTransaction-options-borderColor\": \"#d9d9d9\",\n \"--beam-RedeemTransaction-options-selected-borderColor\": \"currentColor\",\n \"--beam-RedeemTransaction-options-hover-borderColor\": \"#ccc\",\n \"--beam-RedeemTransaction-options-backgroundColor\": \"transparent\",\n \"--beam-RedeemTransaction-options-selected-backgroundColor\": \"transparent\",\n \"--beam-RedeemTransaction-options-hover-backgroundColor\": \"#f1f1f1\",\n \"--beam-RedeemTransaction-options-marginTop\": \"15px\",\n ...defineCustomText(\"--beam-RedeemTransaction-title\", {\n fontSize: \"1.25em\",\n fontWeight: \"bold\",\n }),\n ...defineCustomText(\"--beam-RedeemTransaction-description\", {\n marginTop: \"0.5em\",\n }),\n ...defineCustomText(\"--beam-RedeemTransaction-details-cause\", {\n fontSize: \"1em\",\n fontWeight: \"bold\",\n }),\n ...defineCustomText(\"--beam-RedeemTransaction-details-impactDescription\", {\n fontSize: \"0.85em\",\n marginTop: \"10px\",\n }),\n \"--beam-RedeemTransaction-details-nonprofitName-fontWeight\": \"bold\",\n \"--beam-RedeemTransaction-details-nonprofitName-fontStyle\": \"inherit\",\n \"--beam-RedeemTransaction-details-fundingProgress-marginTop\": \"10px\",\n ...defineCustomText(\"--beam-RedeemTransaction-details-fundingProgressLabel\", {\n fontSize: \"0.85em\",\n }),\n \"--beam-RedeemTransaction-cardStyle\": \"'image'\",\n \"--beam-RedeemTransaction-options-icon-padding\": \"0px\",\n \"--beam-RedeemTransaction-options-collapseNonprofits-mobile\": \"false\",\n \"--beam-RedeemTransaction-options-collapseNonprofits-desktop\": \"false\",\n };\n\n const remoteConfig = this.nonprofitListDataController?.data?.config?.web?.theme || {};\n\n const config = { ...defaults, ...remoteConfig };\n\n const serializable = Object.create({\n toCSS() {\n return _cssVariableMap(this as Record<string, string>);\n },\n });\n\n return Object.assign(serializable, config);\n }\n\n static styles = [\n cssReset,\n css`\n :host {\n display: block;\n max-width: var(--beam-RedeemTransaction-maxWidth, 1000px);\n font-family: var(--beam-fontFamily);\n font-style: var(--beam-fontStyle);\n font-size: var(--beam-fontSize);\n background-color: var(--beam-backgroundColor);\n color: var(--beam-textColor);\n word-break: normal;\n }\n\n .headerContainer {\n align-items: flex-start;\n justify-content: space-between;\n display: flex;\n }\n\n .submitButton {\n color: var(--beam-RedeemTransaction-submitButton-color, #fff);\n background-color: var(--beam-RedeemTransaction-submitButton-backgroundColor, #333);\n border: 1px solid var(--beam-RedeemTransaction-submitButton-borderColor, #333);\n font-size: var(--beam-RedeemTransaction-submitButton-fontSize, 14px);\n font-weight: var(--beam-RedeemTransaction-submitButton-fontWeight, inherit);\n font-family: var(--beam-RedeemTransaction-submitButton-fontFamily, inherit);\n text-transform: var(--beam-RedeemTransaction-submitButton-textTransform, none);\n border-radius: var(--beam-RedeemTransaction-submitButton-borderRadius, 0);\n padding: var(--beam-RedeemTransaction-submitButton-padding, 15px 30px);\n transition: background-color 0.2s, border-color 0.2s, color 0.2s;\n cursor: pointer;\n }\n\n .submitButton.positionRight {\n width: var(--beam-RedeemTransaction-submitButton-positionRight-width, auto);\n margin-left: 30px;\n }\n\n .submitButton.positionBottom {\n width: var(--beam-RedeemTransaction-submitButton-positionBottom-width, 100%);\n margin-top: var(--beam-RedeemTransaction-submitButton-positionBottom-marginTop, 10px);\n }\n\n .submitButton:not(.isDisabled):focus-visible,\n .submitButton:not(.isDisabled):hover {\n background-color: var(--beam-RedeemTransaction-submitButton-hover-backgroundColor, #222);\n border-color: var(--beam-RedeemTransaction-submitButton-hover-borderColor, #222);\n color: var(--beam-RedeemTransaction-submitButton-hover-color, #fff);\n }\n\n .submitButton.isDisabled {\n color: var(--beam-RedeemTransaction-submitButton-disabled-color, #fff);\n background-color: var(--beam-RedeemTransaction-submitButton-disabled-backgroundColor, #767676);\n border-color: var(--beam-RedeemTransaction-submitButton-disabled-borderColor, #767676);\n cursor: not-allowed;\n }\n\n .options {\n margin-top: var(--beam-RedeemTransaction-options-marginTop, 15px);\n }\n\n .options.isHidden {\n display: none;\n }\n\n .option {\n /* outline is used to prevent layer shift if changing border width */\n outline: var(--beam-RedeemTransaction-options-borderWidth, 1px) solid\n var(--beam-RedeemTransaction-options-borderColor, #d9d9d9);\n border-radius: var(--beam-RedeemTransaction-options-borderRadius);\n background-color: var(--beam-RedeemTransaction-options-backgroundColor, transparent);\n cursor: pointer;\n transition: border-color 0.2s, background-color 0.2s, outline 0.2s;\n }\n\n .option:not(.isDisabled):focus-visible,\n .option:not(.isDisabled):hover,\n .option:not(.isSelected):focus-visible,\n .option:not(.isSelected):hover {\n background-color: var(--beam-RedeemTransaction-options-hover-backgroundColor, #f1f1f1);\n outline: var(--beam-RedeemTransaction-options-hover-borderWidth, 1px) solid\n var(--beam-RedeemTransaction-options-hover-borderColor, #ccc);\n }\n\n .option.isDisabled {\n cursor: not-allowed;\n }\n\n .option.isSelected {\n outline: var(--beam-RedeemTransaction-options-selected-borderWidth, 1px) solid\n var(--beam-RedeemTransaction-options-selected-borderColor, #333);\n background-color: var(--beam-RedeemTransaction-options-selected-backgroundColor, transparent);\n }\n\n .option.isSelected:focus-visible,\n .option.isSelected:hover {\n outline: var(--beam-RedeemTransaction-options-selected-borderWidth, 1px) solid\n var(--beam-RedeemTransaction-options-selected-borderColor, #333);\n }\n\n .option .checkbox {\n border-width: 1px;\n border-style: solid;\n transition: background-color 0.2s, color 0.2s, border-color 0.2s;\n color: var(--beam-RedeemTransaction-checkmark-color, transparent);\n background-color: var(--beam-RedeemTransaction-checkmark-backgroundColor, transparent);\n border-color: var(--beam-RedeemTransaction-checkmark-borderColor, transparent);\n }\n\n .option.isSelected .checkbox,\n .option.isSelected:focus-visible .checkbox,\n .option.isSelected:hover .checkbox {\n color: var(--beam-RedeemTransaction-checkmark-selected-color, #fff);\n background-color: var(--beam-RedeemTransaction-checkmark-selected-backgroundColor, #333);\n border-color: var(--beam-RedeemTransaction-checkmark-selected-borderColor, #333);\n }\n\n .option:not(.isSelected):focus-visible .checkbox,\n .option:not(.isSelected):hover .checkbox {\n color: var(--beam-RedeemTransaction-checkmark-hover-color, #fff);\n background-color: var(--beam-RedeemTransaction-checkmark-hover-backgroundColor, #d9d9d9);\n border-color: var(--beam-RedeemTransaction-checkmark-hover-borderColor, #d9d9d9);\n }\n\n .details-impactDescription {\n ${useCustomText(\"--beam-RedeemTransaction-details-impactDescription\")}\n }\n\n .details-impactDescription .nonprofitName {\n font-weight: var(--beam-RedeemTransaction-details-nonprofitName-fontWeight, bold);\n font-style: var(--beam-RedeemTransaction-details-nonprofitName-fontStyle, inherit);\n }\n `,\n cssCardGrid({\n gap: \"20px\",\n itemMinWidth: \"var(--beam-RedeemTransaction-options-minWidth, 250px)\",\n columnCount: \"var(--beam-RedeemTransaction-options-columnCount, 2)\",\n }),\n ];\n\n private handleChooseClick() {\n this.didUserExpandNonprofits = true;\n }\n\n get shouldCollapse() {\n const enableMobileCollapse =\n this.cssVariables[\"--beam-RedeemTransaction-options-collapseNonprofits-mobile\"] === \"true\";\n const enableDesktopCollapse =\n this.cssVariables[\"--beam-RedeemTransaction-options-collapseNonprofits-desktop\"] === \"true\";\n return (this.isMobile && enableMobileCollapse) || (!this.isMobile && enableDesktopCollapse);\n }\n\n protected render() {\n const { selectedNonprofitId } = this;\n const { data, loading } = this.nonprofitListDataController;\n\n if (loading && !data) {\n return _loading();\n }\n if (this.nonprofitListDataController.error) {\n if (this.debug) {\n return _errorMessage({ error: this.nonprofitListDataController.error });\n }\n return \"\";\n }\n if (this.selectionDataController.error) {\n if (this.debug) {\n return _errorMessage({ error: this.selectionDataController.error });\n }\n // do not show error screen for interactive errors by default\n }\n if (data == null) {\n if (this.debug) {\n return _errorMessage({ error: new BeamError(\"No data\") });\n }\n return \"\";\n }\n const nonprofits = data?.nonprofits || [];\n const selectedNonprofit = nonprofits.find((np) => np.nonprofit.id === selectedNonprofitId) || null;\n // changes images in widget to icons\n const displayIcon = this.cssVariables[\"--beam-RedeemTransaction-cardStyle\"] === \"'icon'\";\n const submitButtonPosition = this.cssVariables[\"--beam-RedeemTransaction-submitButton-position\"];\n const submitButtonPositionClass =\n this.isMobile && submitButtonPosition === \"bottom\" ? \"positionBottom\" : \"positionRight\";\n\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n <!-- Custom flex order fixes tab cycling so submit button is after content -->\n <div style=\"display: flex; flex-direction: column;\" class=\"root\">\n <div\n style=\"order: 3;\"\n tabindex=\"-1\"\n class=\"options cardGrid ${classMap({ isHidden: !this.didUserExpandNonprofits && this.shouldCollapse })}\"\n part=\"options\"\n role=\"radiogroup\"\n aria-labelledby=\"beam-RedeemTransaction-title\"\n ?aria-disabled=${!this.allowChange}\n >\n ${repeat(\n nonprofits,\n (i) => i.nonprofit.id,\n (np, index) => {\n const isSelected = selectedNonprofitId === np.nonprofit.id;\n const isFocusable = isSelected || (selectedNonprofit == null && index === 0);\n return html`\n <div\n class=\"option ${classMap({\n isSelected: isSelected,\n isDisabled: !this.allowChange,\n })}\"\n part=\"option\"\n role=\"radio\"\n tabindex=\"${isFocusable ? 0 : -1}\"\n data-value=${np.nonprofit.id}\n ?aria-checked=${isSelected}\n @click=${this.makeHandleSelect(np.nonprofit.id, index, nonprofits)}\n @keydown=${this.makeHandleSelect(np.nonprofit.id, index, nonprofits)}\n aria-label=\"${localizeUserString(this.configLang, np.nonprofit.cause || \"\")}\"\n style=\"${styleMap({\n display: \"flex\",\n gap: \"15px\",\n padding: \"10px\",\n })}\"\n >\n ${displayIcon\n ? html` <div style=\"height: 100%; flex: 1; flex-direction: column;\">\n <img\n src=\"${np.nonprofit.causeIconUrl}\"\n alt=\"\"\n role=\"presentation\"\n style=\"\n flex: 1;\n height: auto;\n width: 100%;\n display: block;\n padding: var(--beam-RedeemTransaction-options-icon-padding);\n border-radius: var(--beam-RedeemTransaction-options-image-borderRadius, 0);\n \"\n />\n </div>`\n : html` <div style=\"height: 100%; flex: 1 0 33%; display: flex; flex-direction: column;\">\n <img\n src=\"${np.imageUrl}\"\n alt=\"\"\n role=\"presentation\"\n style=\"\n flex: 1;\n height: auto;\n width: 100%;\n object-fit: cover;\n border-radius: var(--beam-RedeemTransaction-options-image-borderRadius, 0);\n \"\n />\n </div>`}\n <div\n class=\"details\"\n part=\"details\"\n style=\"\n flex: 1 1 67%;\n height: 100%;\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-content: stretch;\n align-items: stretch;\n position: relative;\n \"\n >\n <div\n class=\"details-cause\"\n style=\"flex: 0 1; ${useCustomText(\"--beam-RedeemTransaction-details-cause\")}\"\n >\n <span\n part=\"checkbox\"\n class=\"checkbox\"\n style=\"\n margin-left: 5px;\n float: right;\n padding: 4px;\n border-radius: 100%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n \"\n >\n <span style=\"line-height: 0;\"> ${_checkbox({ height: \"10px\", width: \"10px\" })} </span>\n </span>\n ${localizeUserString(this.configLang, np.nonprofit.cause || \"\")}\n </div>\n <p class=\"details-impactDescription\" style=\"flex: 1 1;\">\n ${unsafeHTML(localizeUserString(this.configLang, np.impact.description || \"\"))}\n </p>\n <div\n style=\"display: flex; margin-top: var(--beam-RedeemTransaction-details-fundingProgress-marginTop); align-items: center;\"\n >\n <beam-progress-bar\n value=\"${np.impact.goalProgressPercentage}\"\n style=\"flex: 1 0;\"\n ></beam-progress-bar>\n <span\n class=\"details-fundingProgressLabel\"\n style=\"${useCustomText(\n \"--beam-RedeemTransaction-details-fundingProgressLabel\"\n )} white-space: nowrap; text-align: right; flex: 0 1; margin-left: 15px;\"\n >\n ${localizeUserString(this.configLang, np.impact.goalProgressText)}\n </span>\n </div>\n </div>\n </div>\n `;\n }\n )}\n </div>\n\n <div\n style=\"order: 2; flex-direction: ${this.isMobile && submitButtonPosition === \"bottom\" ? \"column\" : \"row\"};\"\n class=\"headerContainer\"\n >\n <div>\n <h3\n class=\"title\"\n part=\"title\"\n id=\"beam-RedeemTransaction-title\"\n style=\"${useCustomText(\"--beam-RedeemTransaction-title\")}\"\n >\n ${localizeUserString(this.configLang, data?.config?.web?.title) || strings[this.configLang].ctaTitle()}\n </h3>\n <p class=\"description\" part=\"description\" style=\"${useCustomText(\"--beam-RedeemTransaction-description\")}\">\n ${localizeUserString(this.configLang, data?.config?.web?.description)}\n </p>\n </div>\n ${this.didUserExpandNonprofits || !this.shouldCollapse\n ? html`<button\n type=\"button\"\n ?aria-disabled=${!this.allowSubmit}\n @click=\"${this.handleSubmit}\"\n class=\"${classMap({\n isDisabled: !this.allowSubmit,\n [submitButtonPositionClass]: true,\n submitButton: true,\n })}\"\n part=\"submitButton\"\n >\n ${this.selectionDataController.data !== null\n ? strings[this.configLang].submitButtonTextCompleted()\n : strings[this.configLang].submitButtonText()}\n </button>`\n : html`<button\n type=\"button\"\n @click=\"${this.handleChooseClick}\"\n class=\"submitButton ${submitButtonPositionClass}\"\n part=\"submitButton\"\n >\n ${strings[this.configLang].chooseButtonText()}\n </button>`}\n </div>\n\n <beam-partner-logos\n partnerName=\"${data.chain.name}\"\n partnerLogoUrl=\"${data.chain.logoUrl}\"\n style=\"order: 1\"\n ></beam-partner-logos>\n </div>\n `;\n }\n}\n\ndefineCustomElement(BeamRedeemTransaction);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-redeem-transaction\": BeamRedeemTransaction;\n }\n}\n"],"names":["_checkbox","height","width","html","styleMap","strings","donationPercentage","I","N","a","g","b","e","t","o","i","c","BeamRedeemTransaction","LitElement","DEFAULT_BASE_URL","checkForInvalidAttributeCombinations","MissingConfig","res","postChainEligibleNonprofitsForCart","selectedNonprofitId","enforceConfig","putTransaction","updateSubscription","AsyncController","createScopedLocalStorage","id","index","nonprofits","event","currentId","nextFocus","focusTarget","selectedNonprofit","np","BeamNonprofitSelectEvent","debounce","SUPPORTED_LANGUAGES","areRequiredKeysDefined","_changedProperties","previousPropertyValues","requireNewDataProps","prop","createdAt","data","cacheTtl","defaults","partnerLogosConfigDefaults","progressBarConfigDefaults","defineCustomText","remoteConfig","config","_cssVariableMap","enableMobileCollapse","enableDesktopCollapse","loading","_loading","_errorMessage","BeamError","displayIcon","submitButtonPosition","submitButtonPositionClass","classMap","repeat","isSelected","isFocusable","localizeUserString","useCustomText","unsafeHTML","cssReset","css","cssCardGrid","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
@@ -4,8 +4,8 @@ import { LitElement, PropertyValues } from 'lit';
4
4
  import '../chunks/progress-bar-0VS_AmEf.esm.js';
5
5
  import { b as TNumericId } from '../chunks/types-7kSi85Gv.esm.js';
6
6
  import { L as LANGUAGES } from '../chunks/types-aju0qrRe.esm.js';
7
- import { T as TCart } from '../chunks/cart-contents-tEvcY9ip.esm.js';
8
- import '../chunks/openapi-spec-tJkr2i9K.esm.js';
7
+ import { T as TCart } from '../chunks/cart-contents-Shc27L1J.esm.js';
8
+ import '../chunks/openapi-spec-D_Zzbl2J.esm.js';
9
9
 
10
10
  interface RequiredConfig {
11
11
  apiKey: string;
@@ -58,7 +58,7 @@ declare class BeamSelectNonprofit extends LitElement {
58
58
  private makeHandleSelect;
59
59
  get cssVariables(): any;
60
60
  static styles: lit.CSSResult[];
61
- protected render(): lit_html.TemplateResult<1> | "";
61
+ protected render(): "" | lit_html.TemplateResult<1>;
62
62
  }
63
63
  declare global {
64
64
  interface HTMLElementTagNameMap {
@@ -1,4 +1,4 @@
1
- import{f as I,g as l,h as w,y as b,p as k,m as z,k as $}from"../chunks/lit-yVXn5Cbs.esm.js";import{c as L,u as m,d as D,e as u,A as N,b as p,f as T,a as A,_ as C,i as d}from"../chunks/localize-BGPniqcI.esm.js";import{D as E,b as B,f as F,S as P}from"../chunks/routes-bWWE2fXp.esm.js";import{p as U}from"../chunks/progress-bar-7gWYaGlq.esm.js";import{c as S,f as y}from"../chunks/events-5IECSF-x.esm.js";import"../utils/network-listeners.esm.js";import{createScopedLocalStorage as W}from"../utils/local-storage.esm.js";import{getCookieValue as v}from"../utils/cookies.esm.js";import{i as M}from"../chunks/lodash-P8OIs-at.esm.js";import{c as O}from"../chunks/responsive-LYEag6TI.esm.js";import{B as R}from"../chunks/cart-contents-h60geKWa.esm.js";import"../chunks/beam-errors-AMvTvR1C.esm.js";import"../utils/logger.esm.js";const h={en:{beamAttribution:()=>"Powered by Beam",ctaTitle:()=>"Choose your impact",ctaMessage:({donationPercentage:r="1"}={})=>`Select a nonprofit and ${r}% of your purchase will be donated, at no extra cost.`,inlineSeparator:()=>": "},fr:{beamAttribution:()=>"Optimis\xE9 par Beam",ctaTitle:()=>"Choisissez votre cause",ctaMessage:({donationPercentage:r="1"}={})=>`Choisissez un organisme \xE0 but non lucratif et ${r} % lui sera vers\xE9 en votre nom, sans frais suppl\xE9mentaires.`,inlineSeparator:()=>" : "},de:{beamAttribution:()=>"Unterst\xFCtzt von Beam",ctaTitle:()=>"W\xE4hle deinen Impact",ctaMessage:({donationPercentage:r="1"}={})=>`W\xE4hle eine der gemeinn\xFCtzigen Organisationen und spende ${r}% deines Einkaufs ohne zus\xE4tzliche Kosten`,inlineSeparator:()=>": "},es:{beamAttribution:()=>"Ofrecido por Beam",ctaTitle:()=>"Elige tu contribuci\xF3n",ctaMessage:({donationPercentage:r="1"}={})=>`Elige una organizaci\xF3n sin fines de lucro y donaremos ${r}% de tu compra sin coste adicional.`,inlineSeparator:()=>": "},it:{beamAttribution:()=>"Gestito da Beam",ctaTitle:()=>"Scegli dove fare la differenza",ctaMessage:({donationPercentage:r="1"}={})=>`Seleziona un'organizzazione no-profit a cui devolvere l\u2019${r}% del tuo acquisto, senza costi aggiuntivi`,inlineSeparator:()=>": "},pl:{beamAttribution:()=>"Wspierany przez Beam",ctaTitle:()=>"Wybierz inicjatyw\u0119, kt\xF3r\u0105 chcesz wesprze\u0107",ctaMessage:({donationPercentage:r="1"}={})=>`Wybierz organizacj\u0119, kt\xF3rej przeka\u017Cesz ${r}% warto\u015Bci Twoich zakup\xF3w \u2013 bez \u017Cadnych dodatkowych koszt\xF3w!`,inlineSeparator:()=>": "}};var K=Object.defineProperty,_=Object.getOwnPropertyDescriptor,c=(r,e,t,i)=>{for(var n=i>1?void 0:i?_(e,t):e,a=r.length-1,o;a>=0;a--)(o=r[a])&&(n=(i?o(e,t,n):o(n))||n);return i&&n&&K(e,t,n),n};class s extends w{constructor(){super(...arguments),this.baseUrl=E,this.selectedNonprofitId=null,this.lang="en",this.debug=!1,this.enableNonprofitDeselection=!1,this.didTryToCreateNewSelectionFromCache=!1,this.getChainNonprofits=async()=>{u(["apiKey"],this);const e=this.cart?.content?{schema:this.cart?.schema,content:this.cart?.content}:void 0,t=await B({baseUrl:this.baseUrl,apiRoot:"/api/v3",headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{storeId:this.storeId,widgetName:"select-nonprofit",postalCode:this.postalCode,countryCode:this.countryCode,version:"1.0.0",lang:this.configLang,cart:e}});return this.enableNonprofitDeselection=!!t.config.enableNonprofitDeselection,this.selectedNonprofitId&&!t.nonprofits.map(i=>i.nonprofit.id).includes(this.selectedNonprofitId)&&(this.selectedNonprofitId=null,this.dispatchEvent(new S({selectedNonprofitId:this.selectedNonprofitId,selectionId:this.selectionId,nonprofitName:null}))),t.store?.id&&t.store.id!==this.storeId&&(this.storeId=t.store.id),await this.createNewSelectionForCachedNonprofit(),this.localStorage.setItemJson("chainNonprofits",{createdAt:new Date,data:t}),t},this.postSelectNonprofit=async({selectedNonprofitId:e})=>{u(["apiKey","storeId"],this);const t=this.getExternalCartId(),i=this.getBeamCartId(),n=await F({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{nonprofitId:e,selectionId:this.selectionId,storeId:this.storeId,cartId:t,beamCartId:i}});this.selectionId=n?.selectionId,this.localStorage.setItem("transaction",this.selectionId),this.localStorage.setItem("nonprofit",e),await this.updateComplete;const a=this.getNonprofitById(e);this.dispatchEvent(new S({selectedNonprofitId:e,selectionId:this.selectionId,nonprofitName:a?.nonprofit?.name}))},this.nonprofitListDataController=new N(this,this.getChainNonprofits),this.selectionDataController=new N(this,this.postSelectNonprofit),this.localStorage=W(this),this.handleCartChange=e=>{this.cart=e.detail},this.makeHandleSelect=(e,t,i)=>async n=>{const a=this.selectedNonprofitId;if(n instanceof KeyboardEvent){let o=null;switch(n.key){case"ArrowUp":case"ArrowLeft":t===0?o=i[i.length-1]:o=i[t-1],n.preventDefault();break;case"ArrowRight":case"ArrowDown":t===i.length-1?o=i[0]:o=i[t+1],n.preventDefault();break;case"Enter":case" ":n.preventDefault();break;default:return}if(o){a!=null&&(this.selectedNonprofitId=o.nonprofit.id);const f=this.renderRoot.querySelector(`[data-value="${o.nonprofit.id}"]`);f!==null&&(f.tabIndex=0,f.focus());return}}if(n.currentTarget instanceof HTMLElement)if(a===e)if(this.enableNonprofitDeselection)this.selectedNonprofitId=null;else return;else this.selectedNonprofitId=e;await this.selectionDataController.exec({selectedNonprofitId:this.selectedNonprofitId})}}get configLang(){return P[this.lang]||"en"}getNonprofitById(e){return e?this.nonprofitListDataController?.data?.nonprofits.find(t=>t.nonprofit.id===e):null}connectedCallback(){super.connectedCallback(),window.addEventListener(y.eventName,this.handleCartChange)}async firstUpdated(e){await this.restoreStateFromCache()}async updated(e){const t=["baseUrl","storeId","apiKey","countryCode","postalCode","cart","lang"];for(const i of t)if(e.has(i)){await this.nonprofitListDataController.exec();break}}disconnectedCallback(){window.removeEventListener(y.eventName,this.handleCartChange),super.disconnectedCallback()}getExternalCartId(){return this.localStorage.getItemJson("cart")?.cartId??v("cart")}getBeamCartId(){return v(R)}async restoreStateFromCache(){try{this.selectedNonprofitId=parseInt(this.localStorage.getItem("nonprofit")||"")||null,this.selectionId=this.localStorage.getItem("transaction")??void 0,this.cart=this.localStorage.getItemJson("cart")??void 0;const{createdAt:e=0,data:t}=this.localStorage.getItemJson("chainNonprofits")||{},i=2*60*60*1e3;new Date(e).valueOf()+i>new Date().valueOf()&&(this.nonprofitListDataController.data=t,this.nonprofitListDataController.loading=!1)}catch{}}async createNewSelectionForCachedNonprofit(){if(u(["apiKey"],this),!(!this.storeId||this.didTryToCreateNewSelectionFromCache))try{if(this.didTryToCreateNewSelectionFromCache=!0,this.selectedNonprofitId){this.selectionId||await this.selectionDataController.exec({selectedNonprofitId:this.selectedNonprofitId});const e=this.getNonprofitById(this.selectedNonprofitId);this.dispatchEvent(new S({selectedNonprofitId:this.selectedNonprofitId,selectionId:this.selectionId,nonprofitName:e?.nonprofit?.name}))}}catch{}}get cssVariables(){const e={"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit",...U,"--beam-SelectNonprofit-title-textAlign":"inherit","--beam-SelectNonprofit-description-textAlign":"inherit","--beam-SelectNonprofit-maxWidth":"800px","--beam-SelectNonprofit-options-marginTop":"0px","--beam-SelectNonprofit-options-iconHeight":"24px","--beam-SelectNonprofit-options-padding":"10px","--beam-SelectNonprofit-options-borderRadius":"0px","--beam-SelectNonprofit-options-borderColor":"currentColor","--beam-SelectNonprofit-options--selected-borderColor":"currentColor","--beam-SelectNonprofit-options-backgroundColor":"transparent","--beam-SelectNonprofit-options-gap":"8px","--beam-SelectNonprofit-options--selected-backgroundColor":"currentColor","--beam-SelectNonprofit-details-marginTop":"10px","--beam-SelectNonprofit-details-borderRadius":"0px","--beam-SelectNonprofit-details-borderColor":"currentColor","--beam-SelectNonprofit-details-backgroundColor":"inherit",...p("--beam-SelectNonprofit-title",{fontSize:"1.25em",fontWeight:"bold"}),"--beam-SelectNonprofit-header-inline-lineHeight":"inherit",...p("--beam-SelectNonprofit-title-inline",{fontWeight:"bold"}),"--beam-SelectNonprofit-title-inline-textTransform":"none",...p("--beam-SelectNonprofit-description",{marginTop:"0.5em"}),...p("--beam-SelectNonprofit-description-inline"),...p("--beam-SelectNonprofit-details-cause",{fontSize:"0.85em",fontWeight:"bold"}),...p("--beam-SelectNonprofit-details-beamAttribution",{fontSize:"0.85em"}),...p("--beam-SelectNonprofit-details-impactDescription",{fontSize:"1em",marginTop:"10px"}),"--beam-SelectNonprofit-details-nonprofitName-fontWeight":"bold","--beam-SelectNonprofit-details-nonprofitName-fontStyle":"inherit","--beam-SelectNonprofit-details-fundingProgress-marginTop":"10px",...p("--beam-SelectNonprofit-details-fundingProgressLabel",{fontSize:"0.85em"})},t=this.nonprofitListDataController?.data?.config?.web?.theme||{},i={...e,...t};return Object.assign(Object.create({toCSS(){return T(this)}}),i)}render(){const{selectedNonprofitId:e}=this,{data:t,loading:i}=this.nonprofitListDataController;if(i&&!t)return A();if(this.nonprofitListDataController.error)return this.debug?C({error:this.nonprofitListDataController.error}):"";if(this.selectionDataController.error&&this.debug)return C({error:this.selectionDataController.error});const n=t?.nonprofits||[],a=n.find(o=>o.nonprofit.id===e)||null;return b`
1
+ import{f as I,g as l,h as w,y as b,p as k,m as z,k as $}from"../chunks/lit-yVXn5Cbs.esm.js";import{c as L,d as D,e as u,A as S,a as T,_ as N}from"../chunks/enforce-config-qna7hEL6.esm.js";import{D as A,b as E,f as B,S as F}from"../chunks/routes-lsOWIDmE.esm.js";import{p as P}from"../chunks/progress-bar-7gWYaGlq.esm.js";import{u as m,d as p,_ as U,i as d}from"../chunks/localize-GCkVUD8S.esm.js";import{c as C,f as y}from"../chunks/events-5IECSF-x.esm.js";import"../utils/network-listeners.esm.js";import{createScopedLocalStorage as W}from"../utils/local-storage.esm.js";import{getCookieValue as v}from"../utils/cookies.esm.js";import{i as M}from"../chunks/lodash-P8OIs-at.esm.js";import{c as O}from"../chunks/responsive-LYEag6TI.esm.js";import{B as R}from"../chunks/cart-contents-h60geKWa.esm.js";import"../chunks/beam-errors-P-Lu07Ce.esm.js";import"../utils/logger.esm.js";const h={en:{beamAttribution:()=>"Powered by Beam",ctaTitle:()=>"Choose your impact",ctaMessage:({donationPercentage:r="1"}={})=>`Select a nonprofit and ${r}% of your purchase will be donated, at no extra cost.`,inlineSeparator:()=>": "},fr:{beamAttribution:()=>"Optimis\xE9 par Beam",ctaTitle:()=>"Choisissez votre cause",ctaMessage:({donationPercentage:r="1"}={})=>`Choisissez un organisme \xE0 but non lucratif et ${r} % lui sera vers\xE9 en votre nom, sans frais suppl\xE9mentaires.`,inlineSeparator:()=>" : "},de:{beamAttribution:()=>"Unterst\xFCtzt von Beam",ctaTitle:()=>"W\xE4hle deinen Impact",ctaMessage:({donationPercentage:r="1"}={})=>`W\xE4hle eine der gemeinn\xFCtzigen Organisationen und spende ${r}% deines Einkaufs ohne zus\xE4tzliche Kosten`,inlineSeparator:()=>": "},es:{beamAttribution:()=>"Ofrecido por Beam",ctaTitle:()=>"Elige tu contribuci\xF3n",ctaMessage:({donationPercentage:r="1"}={})=>`Elige una organizaci\xF3n sin fines de lucro y donaremos ${r}% de tu compra sin coste adicional.`,inlineSeparator:()=>": "},it:{beamAttribution:()=>"Gestito da Beam",ctaTitle:()=>"Scegli dove fare la differenza",ctaMessage:({donationPercentage:r="1"}={})=>`Seleziona un'organizzazione no-profit a cui devolvere l\u2019${r}% del tuo acquisto, senza costi aggiuntivi`,inlineSeparator:()=>": "},pl:{beamAttribution:()=>"Wspierany przez Beam",ctaTitle:()=>"Wybierz inicjatyw\u0119, kt\xF3r\u0105 chcesz wesprze\u0107",ctaMessage:({donationPercentage:r="1"}={})=>`Wybierz organizacj\u0119, kt\xF3rej przeka\u017Cesz ${r}% warto\u015Bci Twoich zakup\xF3w \u2013 bez \u017Cadnych dodatkowych koszt\xF3w!`,inlineSeparator:()=>": "}};var K=Object.defineProperty,_=Object.getOwnPropertyDescriptor,c=(r,e,t,i)=>{for(var n=i>1?void 0:i?_(e,t):e,a=r.length-1,o;a>=0;a--)(o=r[a])&&(n=(i?o(e,t,n):o(n))||n);return i&&n&&K(e,t,n),n};class s extends w{constructor(){super(...arguments),this.baseUrl=A,this.selectedNonprofitId=null,this.lang="en",this.debug=!1,this.enableNonprofitDeselection=!1,this.didTryToCreateNewSelectionFromCache=!1,this.getChainNonprofits=async()=>{u(["apiKey"],this);const e=this.cart?.content?{schema:this.cart?.schema,content:this.cart?.content}:void 0,t=await E({baseUrl:this.baseUrl,apiRoot:"/api/v3",headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{storeId:this.storeId,widgetName:"select-nonprofit",postalCode:this.postalCode,countryCode:this.countryCode,version:"1.0.0",lang:this.configLang,cart:e}});return this.enableNonprofitDeselection=!!t.config.enableNonprofitDeselection,this.selectedNonprofitId&&!t.nonprofits.map(i=>i.nonprofit.id).includes(this.selectedNonprofitId)&&(this.selectedNonprofitId=null,await this.postSelectNonprofit({selectedNonprofitId:null})),t.store?.id&&t.store.id!==this.storeId&&(this.storeId=t.store.id),await this.createNewSelectionForCachedNonprofit(),this.localStorage.setItemJson("chainNonprofits",{createdAt:new Date,data:t}),t},this.postSelectNonprofit=async({selectedNonprofitId:e})=>{u(["apiKey","storeId"],this);const t=this.getExternalCartId(),i=this.getBeamCartId(),n=await B({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{nonprofitId:e,selectionId:this.selectionId,storeId:this.storeId,cartId:t,beamCartId:i}});this.selectionId=n?.selectionId,this.localStorage.setItem("transaction",this.selectionId),this.localStorage.setItem("nonprofit",e),await this.updateComplete;const a=this.getNonprofitById(e);this.dispatchEvent(new C({selectedNonprofitId:e,selectionId:this.selectionId,nonprofitName:a?.nonprofit?.name??null}))},this.nonprofitListDataController=new S(this,this.getChainNonprofits),this.selectionDataController=new S(this,this.postSelectNonprofit),this.localStorage=W(this),this.handleCartChange=e=>{this.cart=e.detail},this.makeHandleSelect=(e,t,i)=>async n=>{const a=this.selectedNonprofitId;if(n instanceof KeyboardEvent){let o=null;switch(n.key){case"ArrowUp":case"ArrowLeft":t===0?o=i[i.length-1]:o=i[t-1],n.preventDefault();break;case"ArrowRight":case"ArrowDown":t===i.length-1?o=i[0]:o=i[t+1],n.preventDefault();break;case"Enter":case" ":n.preventDefault();break;default:return}if(o){a!=null&&(this.selectedNonprofitId=o.nonprofit.id);const f=this.renderRoot.querySelector(`[data-value="${o.nonprofit.id}"]`);f!==null&&(f.tabIndex=0,f.focus());return}}if(n.currentTarget instanceof HTMLElement)if(a===e)if(this.enableNonprofitDeselection)this.selectedNonprofitId=null;else return;else this.selectedNonprofitId=e;await this.selectionDataController.exec({selectedNonprofitId:this.selectedNonprofitId})}}get configLang(){return F[this.lang]||"en"}getNonprofitById(e){return e?this.nonprofitListDataController?.data?.nonprofits.find(t=>t.nonprofit.id===e):null}connectedCallback(){super.connectedCallback(),window.addEventListener(y.eventName,this.handleCartChange)}async firstUpdated(e){await this.restoreStateFromCache()}async updated(e){const t=["baseUrl","storeId","apiKey","countryCode","postalCode","cart","lang"];for(const i of t)if(e.has(i)){await this.nonprofitListDataController.exec();break}}disconnectedCallback(){window.removeEventListener(y.eventName,this.handleCartChange),super.disconnectedCallback()}getExternalCartId(){return this.localStorage.getItemJson("cart")?.cartId??v("cart")}getBeamCartId(){return v(R)}async restoreStateFromCache(){try{this.selectedNonprofitId=parseInt(this.localStorage.getItem("nonprofit")||"")||null,this.selectionId=this.localStorage.getItem("transaction")??void 0,this.cart=this.localStorage.getItemJson("cart")??void 0;const{createdAt:e=0,data:t}=this.localStorage.getItemJson("chainNonprofits")||{},i=2*60*60*1e3;new Date(e).valueOf()+i>new Date().valueOf()&&(this.nonprofitListDataController.data=t,this.nonprofitListDataController.loading=!1)}catch{}}async createNewSelectionForCachedNonprofit(){if(u(["apiKey"],this),!(!this.storeId||this.didTryToCreateNewSelectionFromCache))try{if(this.didTryToCreateNewSelectionFromCache=!0,this.selectedNonprofitId){this.selectionId||await this.selectionDataController.exec({selectedNonprofitId:this.selectedNonprofitId});const e=this.getNonprofitById(this.selectedNonprofitId);this.dispatchEvent(new C({selectedNonprofitId:this.selectedNonprofitId,selectionId:this.selectionId,nonprofitName:e?.nonprofit?.name}))}}catch{}}get cssVariables(){const e={"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit",...P,"--beam-SelectNonprofit-title-textAlign":"inherit","--beam-SelectNonprofit-description-textAlign":"inherit","--beam-SelectNonprofit-maxWidth":"800px","--beam-SelectNonprofit-options-marginTop":"0px","--beam-SelectNonprofit-options-iconHeight":"24px","--beam-SelectNonprofit-options-padding":"10px","--beam-SelectNonprofit-options-borderRadius":"0px","--beam-SelectNonprofit-options-borderColor":"currentColor","--beam-SelectNonprofit-options--selected-borderColor":"currentColor","--beam-SelectNonprofit-options-backgroundColor":"transparent","--beam-SelectNonprofit-options-gap":"8px","--beam-SelectNonprofit-options--selected-backgroundColor":"currentColor","--beam-SelectNonprofit-details-marginTop":"10px","--beam-SelectNonprofit-details-borderRadius":"0px","--beam-SelectNonprofit-details-borderColor":"currentColor","--beam-SelectNonprofit-details-backgroundColor":"inherit",...p("--beam-SelectNonprofit-title",{fontSize:"1.25em",fontWeight:"bold"}),"--beam-SelectNonprofit-header-inline-lineHeight":"inherit",...p("--beam-SelectNonprofit-title-inline",{fontWeight:"bold"}),"--beam-SelectNonprofit-title-inline-textTransform":"none",...p("--beam-SelectNonprofit-description",{marginTop:"0.5em"}),...p("--beam-SelectNonprofit-description-inline"),...p("--beam-SelectNonprofit-details-cause",{fontSize:"0.85em",fontWeight:"bold"}),...p("--beam-SelectNonprofit-details-beamAttribution",{fontSize:"0.85em"}),...p("--beam-SelectNonprofit-details-impactDescription",{fontSize:"1em",marginTop:"10px"}),"--beam-SelectNonprofit-details-nonprofitName-fontWeight":"bold","--beam-SelectNonprofit-details-nonprofitName-fontStyle":"inherit","--beam-SelectNonprofit-details-fundingProgress-marginTop":"10px",...p("--beam-SelectNonprofit-details-fundingProgressLabel",{fontSize:"0.85em"})},t=this.nonprofitListDataController?.data?.config?.web?.theme||{},i={...e,...t};return Object.assign(Object.create({toCSS(){return T(this)}}),i)}render(){const{selectedNonprofitId:e}=this,{data:t,loading:i}=this.nonprofitListDataController;if(i&&!t)return U();if(this.nonprofitListDataController.error)return this.debug?N({error:this.nonprofitListDataController.error}):"";if(this.selectionDataController.error&&this.debug)return N({error:this.selectionDataController.error});const n=t?.nonprofits||[],a=n.find(o=>o.nonprofit.id===e)||null;return b`
2
2
  <style>
3
3
  :host {
4
4
  ${this.cssVariables.toCSS()}
@@ -110,6 +110,7 @@ import{f as I,g as l,h as w,y as b,p as k,m as z,k as $}from"../chunks/lit-yVXn5
110
110
  font-size: var(--beam-fontSize);
111
111
  background-color: var(--beam-backgroundColor);
112
112
  color: var(--beam-textColor);
113
+ word-break: normal;
113
114
  }
114
115
 
115
116
  .details-impactDescription {