@beamimpact/web-sdk 1.55.8 → 1.56.3

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 (343) hide show
  1. package/README.md +5 -0
  2. package/dist/chunks/_share-dialog-dependencies-Bk60ibnw.esm.js +2 -0
  3. package/dist/chunks/{_share-dialog-dependencies-BG0p8uUr.esm.js.map → _share-dialog-dependencies-Bk60ibnw.esm.js.map} +1 -1
  4. package/dist/chunks/_share-dialog-dependencies-D6vA_2f6.esm.js +2 -0
  5. package/dist/chunks/{_share-dialog-dependencies-dHlBUqo0.esm.js.map → _share-dialog-dependencies-D6vA_2f6.esm.js.map} +1 -1
  6. package/dist/chunks/{beam-errors-CCe004HS.esm.d.ts → beam-errors-DUQ9pK2V.esm.d.ts} +7 -1
  7. package/dist/chunks/{cart-contents-CLT7p7Gd.esm.d.ts → cart-contents-CEoSx3y4.esm.d.ts} +1 -1
  8. package/dist/chunks/{css-card-grid-CvoGpsJH.esm.js → css-card-grid-DixMt6ek.esm.js} +2 -2
  9. package/dist/chunks/{css-card-grid-CvoGpsJH.esm.js.map → css-card-grid-DixMt6ek.esm.js.map} +1 -1
  10. package/dist/chunks/enforce-config-DHnpgqSK.esm.js +3 -0
  11. package/dist/chunks/enforce-config-DHnpgqSK.esm.js.map +1 -0
  12. package/dist/chunks/enforce-config-DUbQnaLO.esm.js +3 -0
  13. package/dist/chunks/enforce-config-DUbQnaLO.esm.js.map +1 -0
  14. package/dist/chunks/events-COWOQoLW.esm.js +2 -0
  15. package/dist/chunks/{events-Dki0ka4F.esm.js.map → events-COWOQoLW.esm.js.map} +1 -1
  16. package/dist/chunks/{events-CSyogxoH.esm.d.ts → events-Dwqfqbij.esm.d.ts} +33 -5
  17. package/dist/chunks/index-8rOpG9kf.esm.js +2 -0
  18. package/dist/chunks/index-8rOpG9kf.esm.js.map +1 -0
  19. package/dist/chunks/{index-DnTE6QlY.esm.js → index-B1GmdVT3.esm.js} +2 -2
  20. package/dist/chunks/index-B1GmdVT3.esm.js.map +1 -0
  21. package/dist/chunks/{index-DEaZqGi7.esm.js → index-B2dxbh1d.esm.js} +2 -2
  22. package/dist/chunks/{index-DEaZqGi7.esm.js.map → index-B2dxbh1d.esm.js.map} +1 -1
  23. package/dist/chunks/{index-2OQzw7UI.esm.js → index-BEEmYYxP.esm.js} +28 -18
  24. package/dist/chunks/index-BEEmYYxP.esm.js.map +1 -0
  25. package/dist/chunks/{index-RhV6PBPH.esm.js → index-BIEV1MH0.esm.js} +2 -2
  26. package/dist/chunks/{index-RhV6PBPH.esm.js.map → index-BIEV1MH0.esm.js.map} +1 -1
  27. package/dist/chunks/{index-CBS5Fqry.esm.d.ts → index-BLlSL37B.esm.d.ts} +4 -2
  28. package/dist/chunks/{index-C-hPf29c.esm.d.ts → index-BY5lSRmw.esm.d.ts} +4 -1
  29. package/dist/chunks/index-BaWMWAyt.esm.js +2 -0
  30. package/dist/chunks/index-BaWMWAyt.esm.js.map +1 -0
  31. package/dist/chunks/index-BeX4QeUu.esm.js +2 -0
  32. package/dist/chunks/index-BeX4QeUu.esm.js.map +1 -0
  33. package/dist/chunks/{index-CGKJagBi.esm.js → index-C3v-y56g.esm.js} +2 -2
  34. package/dist/chunks/index-C3v-y56g.esm.js.map +1 -0
  35. package/dist/chunks/{index-CJ1y1kTs.esm.d.ts → index-C_u1FXtO.esm.d.ts} +33 -5
  36. package/dist/chunks/{index-DrxhkT6Y.esm.js → index-CqqF1sQo.esm.js} +2 -2
  37. package/dist/chunks/index-CqqF1sQo.esm.js.map +1 -0
  38. package/dist/chunks/index-Cs4Kp9X4.esm.js +2 -0
  39. package/dist/chunks/index-Cs4Kp9X4.esm.js.map +1 -0
  40. package/dist/chunks/index-D20ifskY.esm.d.ts +21 -0
  41. package/dist/chunks/{index-BTDB5Gk-.esm.js → index-D3hxLDQF.esm.js} +2 -2
  42. package/dist/chunks/index-D3hxLDQF.esm.js.map +1 -0
  43. package/dist/chunks/{index-DBb5HSkR.esm.js → index-D5TZB-zM.esm.js} +2 -2
  44. package/dist/chunks/index-D5TZB-zM.esm.js.map +1 -0
  45. package/dist/chunks/{index-iqYDqEil.esm.d.ts → index-DDCtGN21.esm.d.ts} +15 -2
  46. package/dist/chunks/index-DSJACB_p.esm.js +2 -0
  47. package/dist/chunks/{index-BNjsFEGn.esm.js.map → index-DSJACB_p.esm.js.map} +1 -1
  48. package/dist/chunks/{index-Ct1m4IjM.esm.js → index-DmjZnpod.esm.js} +2 -2
  49. package/dist/chunks/index-DmjZnpod.esm.js.map +1 -0
  50. package/dist/chunks/{index-rxgS4BLp.esm.d.ts → index-DyUuvdr3.esm.d.ts} +6 -2
  51. package/dist/chunks/{index-B1lGZARl.esm.d.ts → index-EJRmgmQu.esm.d.ts} +33 -5
  52. package/dist/chunks/{index-C5gnsl34.esm.js → index-UMeAzKTG.esm.js} +28 -18
  53. package/dist/chunks/index-UMeAzKTG.esm.js.map +1 -0
  54. package/dist/chunks/{index-BjGPkgs-.esm.d.ts → index-hghrT7Z_.esm.d.ts} +13 -1
  55. package/dist/chunks/index-mppXVWCH.esm.js +2 -0
  56. package/dist/chunks/{index-IKiJwo5v.esm.js.map → index-mppXVWCH.esm.js.map} +1 -1
  57. package/dist/chunks/{index-Cg65EbvX.esm.js → index-n62IxH5D.esm.js} +2 -2
  58. package/dist/chunks/index-n62IxH5D.esm.js.map +1 -0
  59. package/dist/chunks/{index-tbwbkOdj.esm.js → index-nAPzvUWE.esm.js} +2 -2
  60. package/dist/chunks/index-nAPzvUWE.esm.js.map +1 -0
  61. package/dist/chunks/{index-DXj15KHe.esm.d.ts → index-xcGPhpiO.esm.d.ts} +13 -1
  62. package/dist/chunks/lit-JRlupCB5.esm.js +25 -0
  63. package/dist/chunks/lit-JRlupCB5.esm.js.map +1 -0
  64. package/dist/chunks/loading-template-BFvXaTlD.esm.js +2 -0
  65. package/dist/chunks/{loading-template-DG4lkIIc.esm.js.map → loading-template-BFvXaTlD.esm.js.map} +1 -1
  66. package/dist/chunks/{localize-Btu9xYcE.esm.js → localize-Dg7NgKIP.esm.js} +4 -4
  67. package/dist/chunks/localize-Dg7NgKIP.esm.js.map +1 -0
  68. package/dist/chunks/{localize-C25pEGnx.esm.js → localize-DkAbsh05.esm.js} +4 -4
  69. package/dist/chunks/localize-DkAbsh05.esm.js.map +1 -0
  70. package/dist/chunks/lodash-BSs6Il-c.esm.js +2 -0
  71. package/dist/chunks/lodash-BSs6Il-c.esm.js.map +1 -0
  72. package/dist/chunks/{openapi-spec-Bk7E2QQP.esm.d.ts → openapi-spec-B4z4_CMq.esm.d.ts} +18 -0
  73. package/dist/chunks/{order-page-BRG7MXZ2.esm.js → order-page-B0WbVrvh.esm.js} +2 -2
  74. package/dist/chunks/order-page-B0WbVrvh.esm.js.map +1 -0
  75. package/dist/chunks/{order-page-Qn1yyNbN.esm.d.ts → order-page-CSEjG6ma.esm.d.ts} +19 -18
  76. package/dist/chunks/{order-page-BbHDQfmy.esm.js → order-page-CT3hnhzf.esm.js} +2 -2
  77. package/dist/chunks/order-page-CT3hnhzf.esm.js.map +1 -0
  78. package/dist/chunks/{progress-bar-DF7UuuHb.esm.js → progress-bar-B82FOT8n.esm.js} +2 -2
  79. package/dist/chunks/{progress-bar-DF7UuuHb.esm.js.map → progress-bar-B82FOT8n.esm.js.map} +1 -1
  80. package/dist/chunks/{promo-pill-label-ByFGhdxh.esm.js → promo-pill-label-D_4zJ7uy.esm.js} +3 -3
  81. package/dist/chunks/{promo-pill-label-ByFGhdxh.esm.js.map → promo-pill-label-D_4zJ7uy.esm.js.map} +1 -1
  82. package/dist/chunks/{promo-pill-label-WGLW3bql.esm.js → promo-pill-label-DcsiJS_N.esm.js} +3 -3
  83. package/dist/chunks/{promo-pill-label-WGLW3bql.esm.js.map → promo-pill-label-DcsiJS_N.esm.js.map} +1 -1
  84. package/dist/chunks/{promo-types-7r9-UuiP.esm.d.ts → promo-types-CmZzhkpN.esm.d.ts} +3 -2
  85. package/dist/chunks/{responsive-BR8qUfBa.esm.js → responsive-CIV4sFdH.esm.js} +2 -2
  86. package/dist/chunks/{responsive-BR8qUfBa.esm.js.map → responsive-CIV4sFdH.esm.js.map} +1 -1
  87. package/dist/chunks/routes-BIMwJ8u9.esm.js +2 -0
  88. package/dist/chunks/routes-BIMwJ8u9.esm.js.map +1 -0
  89. package/dist/chunks/routes-DSu5s3K7.esm.js +2 -0
  90. package/dist/chunks/routes-DSu5s3K7.esm.js.map +1 -0
  91. package/dist/chunks/routes-OxC3Ah30.esm.d.ts +638 -0
  92. package/dist/chunks/{share-button-DPNNnXeM.esm.js → share-button-CLMw49f5.esm.js} +2 -2
  93. package/dist/chunks/{share-button-DPNNnXeM.esm.js.map → share-button-CLMw49f5.esm.js.map} +1 -1
  94. package/dist/chunks/{share-button-M8cMa6ol.esm.js → share-button-DXS3zbJz.esm.js} +2 -2
  95. package/dist/chunks/{share-button-M8cMa6ol.esm.js.map → share-button-DXS3zbJz.esm.js.map} +1 -1
  96. package/dist/chunks/{share-button-BRjKJc5L.esm.js → share-button-DkTpGZk1.esm.js} +8 -3
  97. package/dist/chunks/share-button-DkTpGZk1.esm.js.map +1 -0
  98. package/dist/chunks/{share-button-DmjRJmXh.esm.js → share-button-Dzc7loia.esm.js} +8 -3
  99. package/dist/chunks/share-button-Dzc7loia.esm.js.map +1 -0
  100. package/dist/chunks/{types-CPxMwnoR.esm.d.ts → types-D_PLq1pj.esm.d.ts} +1 -1
  101. package/dist/chunks/{update-cart-gwNcGXkd.esm.js → update-cart-ByUvNLyZ.esm.js} +2 -2
  102. package/dist/chunks/update-cart-ByUvNLyZ.esm.js.map +1 -0
  103. package/dist/chunks/{update-cart-CauFT0AF.esm.d.ts → update-cart-DWgFuC7U.esm.d.ts} +3 -2
  104. package/dist/chunks/{update-cart-CJywJNax.esm.js → update-cart-yj_9VGHp.esm.js} +2 -2
  105. package/dist/chunks/update-cart-yj_9VGHp.esm.js.map +1 -0
  106. package/dist/chunks/vendor-ckSdd6aH.esm.js +1286 -0
  107. package/dist/chunks/vendor-ckSdd6aH.esm.js.map +1 -0
  108. package/dist/components/beam-partner-logos.esm.js +5 -5
  109. package/dist/components/beam-partner-logos.esm.js.map +1 -1
  110. package/dist/components/beam-partner-logos.js +5 -5
  111. package/dist/components/beam-partner-logos.js.map +1 -1
  112. package/dist/components/community-impact.d.ts +1 -3
  113. package/dist/components/community-impact.esm.js +11 -6
  114. package/dist/components/community-impact.esm.js.map +1 -1
  115. package/dist/components/community-impact.js +11 -6
  116. package/dist/components/community-impact.js.map +1 -1
  117. package/dist/components/cumulative-impact.d.ts +1 -1
  118. package/dist/components/cumulative-impact.esm.js +10 -10
  119. package/dist/components/cumulative-impact.esm.js.map +1 -1
  120. package/dist/components/cumulative-impact.js +10 -10
  121. package/dist/components/cumulative-impact.js.map +1 -1
  122. package/dist/components/impact-overview.d.ts +36 -39
  123. package/dist/components/impact-overview.esm.js +11 -6
  124. package/dist/components/impact-overview.esm.js.map +1 -1
  125. package/dist/components/impact-overview.js +11 -6
  126. package/dist/components/impact-overview.js.map +1 -1
  127. package/dist/components/index.d.ts +5 -8
  128. package/dist/components/index.esm.js +1 -1
  129. package/dist/components/index.js +1 -1
  130. package/dist/components/post-purchase.d.ts +9 -11
  131. package/dist/components/post-purchase.esm.js +4 -4
  132. package/dist/components/post-purchase.esm.js.map +1 -1
  133. package/dist/components/post-purchase.js +4 -4
  134. package/dist/components/post-purchase.js.map +1 -1
  135. package/dist/components/product-details-page.d.ts +26 -27
  136. package/dist/components/product-details-page.esm.js +18 -18
  137. package/dist/components/product-details-page.esm.js.map +1 -1
  138. package/dist/components/product-details-page.js +18 -18
  139. package/dist/components/product-details-page.js.map +1 -1
  140. package/dist/components/redeem-transaction.d.ts +3 -6
  141. package/dist/components/redeem-transaction.esm.js +1 -1
  142. package/dist/components/redeem-transaction.js +1 -1
  143. package/dist/components/select-nonprofit.d.ts +3 -15
  144. package/dist/components/select-nonprofit.esm.js +6 -5
  145. package/dist/components/select-nonprofit.esm.js.map +1 -1
  146. package/dist/components/select-nonprofit.js +6 -5
  147. package/dist/components/select-nonprofit.js.map +1 -1
  148. package/dist/components/select-subscription-nonprofit.d.ts +1 -2
  149. package/dist/components/select-subscription-nonprofit.esm.js +42 -21
  150. package/dist/components/select-subscription-nonprofit.esm.js.map +1 -1
  151. package/dist/components/select-subscription-nonprofit.js +42 -21
  152. package/dist/components/select-subscription-nonprofit.js.map +1 -1
  153. package/dist/components/shopify.d.ts +8 -12
  154. package/dist/components/shopify.esm.js +1 -1
  155. package/dist/components/shopify.js +1 -1
  156. package/dist/components/social-share.d.ts +13 -2
  157. package/dist/components/social-share.esm.js +11 -4
  158. package/dist/components/social-share.esm.js.map +1 -1
  159. package/dist/components/social-share.js +11 -4
  160. package/dist/components/social-share.js.map +1 -1
  161. package/dist/components/subscription-impact.d.ts +36 -49
  162. package/dist/components/subscription-impact.esm.js +15 -3
  163. package/dist/components/subscription-impact.esm.js.map +1 -1
  164. package/dist/components/subscription-impact.js +15 -3
  165. package/dist/components/subscription-impact.js.map +1 -1
  166. package/dist/components/subscription-management.d.ts +91 -92
  167. package/dist/components/subscription-management.esm.js +4 -3
  168. package/dist/components/subscription-management.esm.js.map +1 -1
  169. package/dist/components/subscription-management.js +4 -3
  170. package/dist/components/subscription-management.js.map +1 -1
  171. package/dist/index.d.ts +19 -22
  172. package/dist/index.esm.js +1 -1
  173. package/dist/index.js +1 -1
  174. package/dist/integrations/beam.d.ts +3 -2
  175. package/dist/integrations/beam.esm.js +1 -1
  176. package/dist/integrations/beam.esm.js.map +1 -1
  177. package/dist/integrations/beam.js +1 -1
  178. package/dist/integrations/beam.js.map +1 -1
  179. package/dist/integrations/cart.d.ts +3 -3
  180. package/dist/integrations/cart.esm.js +1 -1
  181. package/dist/integrations/cart.js +1 -1
  182. package/dist/integrations/index.d.ts +14 -18
  183. package/dist/integrations/index.esm.js +1 -1
  184. package/dist/integrations/index.js +1 -1
  185. package/dist/integrations/logs.d.ts +2 -2
  186. package/dist/integrations/logs.esm.js +1 -1
  187. package/dist/integrations/logs.js +1 -1
  188. package/dist/integrations/promoManager.d.ts +1 -1
  189. package/dist/integrations/promoManager.esm.js +1 -1
  190. package/dist/integrations/promoManager.esm.js.map +1 -1
  191. package/dist/integrations/promoManager.js +1 -1
  192. package/dist/integrations/promoManager.js.map +1 -1
  193. package/dist/integrations/session.d.ts +1 -1
  194. package/dist/integrations/session.esm.js +1 -1
  195. package/dist/integrations/session.js +1 -1
  196. package/dist/integrations/shopify.d.ts +6 -10
  197. package/dist/integrations/shopify.esm.js +1 -1
  198. package/dist/integrations/shopify.js +1 -1
  199. package/dist/integrations/statsig.d.ts +9 -5
  200. package/dist/integrations/statsig.esm.js +14 -14
  201. package/dist/integrations/statsig.esm.js.map +1 -1
  202. package/dist/integrations/statsig.js +14 -14
  203. package/dist/integrations/statsig.js.map +1 -1
  204. package/dist/integrations/utils.d.ts +7 -7
  205. package/dist/integrations/utils.esm.js +1 -1
  206. package/dist/integrations/utils.js +1 -1
  207. package/dist/react/beam-partner-logos.esm.js +1 -1
  208. package/dist/react/beam-partner-logos.js +1 -1
  209. package/dist/react/community-impact.d.ts +1 -3
  210. package/dist/react/community-impact.esm.js +1 -1
  211. package/dist/react/community-impact.esm.js.map +1 -1
  212. package/dist/react/community-impact.js +1 -1
  213. package/dist/react/community-impact.js.map +1 -1
  214. package/dist/react/cumulative-impact.d.ts +1 -1
  215. package/dist/react/cumulative-impact.esm.js +1 -1
  216. package/dist/react/cumulative-impact.esm.js.map +1 -1
  217. package/dist/react/cumulative-impact.js +1 -1
  218. package/dist/react/cumulative-impact.js.map +1 -1
  219. package/dist/react/impact-overview.d.ts +1 -4
  220. package/dist/react/impact-overview.esm.js +1 -1
  221. package/dist/react/impact-overview.esm.js.map +1 -1
  222. package/dist/react/impact-overview.js +1 -1
  223. package/dist/react/impact-overview.js.map +1 -1
  224. package/dist/react/index.d.ts +7 -10
  225. package/dist/react/index.esm.js +1 -1
  226. package/dist/react/index.js +1 -1
  227. package/dist/react/post-purchase.d.ts +3 -7
  228. package/dist/react/post-purchase.esm.js +1 -1
  229. package/dist/react/post-purchase.esm.js.map +1 -1
  230. package/dist/react/post-purchase.js +1 -1
  231. package/dist/react/post-purchase.js.map +1 -1
  232. package/dist/react/product-details-page.d.ts +1 -2
  233. package/dist/react/product-details-page.esm.js +1 -1
  234. package/dist/react/product-details-page.esm.js.map +1 -1
  235. package/dist/react/product-details-page.js +1 -1
  236. package/dist/react/product-details-page.js.map +1 -1
  237. package/dist/react/redeem-transaction.d.ts +5 -8
  238. package/dist/react/redeem-transaction.esm.js +1 -1
  239. package/dist/react/redeem-transaction.esm.js.map +1 -1
  240. package/dist/react/redeem-transaction.js +1 -1
  241. package/dist/react/redeem-transaction.js.map +1 -1
  242. package/dist/react/select-nonprofit.d.ts +5 -7
  243. package/dist/react/select-nonprofit.esm.js +1 -1
  244. package/dist/react/select-nonprofit.esm.js.map +1 -1
  245. package/dist/react/select-nonprofit.js +1 -1
  246. package/dist/react/select-nonprofit.js.map +1 -1
  247. package/dist/react/select-subscription-nonprofit.d.ts +5 -6
  248. package/dist/react/select-subscription-nonprofit.esm.js +1 -1
  249. package/dist/react/select-subscription-nonprofit.esm.js.map +1 -1
  250. package/dist/react/select-subscription-nonprofit.js +1 -1
  251. package/dist/react/select-subscription-nonprofit.js.map +1 -1
  252. package/dist/react/social-share.d.ts +1 -2
  253. package/dist/react/social-share.esm.js +1 -1
  254. package/dist/react/social-share.esm.js.map +1 -1
  255. package/dist/react/social-share.js +1 -1
  256. package/dist/react/social-share.js.map +1 -1
  257. package/dist/react/subscription-impact.d.ts +1 -3
  258. package/dist/react/subscription-impact.esm.js +1 -1
  259. package/dist/react/subscription-impact.esm.js.map +1 -1
  260. package/dist/react/subscription-impact.js +1 -1
  261. package/dist/react/subscription-impact.js.map +1 -1
  262. package/dist/react/subscription-management.d.ts +4 -6
  263. package/dist/react/subscription-management.esm.js +1 -1
  264. package/dist/react/subscription-management.esm.js.map +1 -1
  265. package/dist/react/subscription-management.js +1 -1
  266. package/dist/react/subscription-management.js.map +1 -1
  267. package/dist/utils/beam-errors.d.ts +1 -1
  268. package/dist/utils/cookies.d.ts +1 -41
  269. package/dist/utils/cookies.esm.js +1 -1
  270. package/dist/utils/cookies.esm.js.map +1 -1
  271. package/dist/utils/cookies.js +1 -1
  272. package/dist/utils/cookies.js.map +1 -1
  273. package/dist/utils/debounce.esm.js +1 -1
  274. package/dist/utils/debounce.js +1 -1
  275. package/dist/utils/events.d.ts +5 -5
  276. package/dist/utils/events.esm.js +1 -1
  277. package/dist/utils/events.js +1 -1
  278. package/dist/utils/index.d.ts +7 -7
  279. package/dist/utils/index.esm.js +1 -1
  280. package/dist/utils/index.js +1 -1
  281. package/dist/utils/is-equal.esm.js +1 -1
  282. package/dist/utils/is-equal.js +1 -1
  283. package/dist/utils/memoize-last.esm.js +1 -1
  284. package/dist/utils/memoize-last.js +1 -1
  285. package/dist/utils/network-listeners.esm.js +1 -1
  286. package/dist/utils/network-listeners.esm.js.map +1 -1
  287. package/dist/utils/network-listeners.js +1 -1
  288. package/dist/utils/network-listeners.js.map +1 -1
  289. package/dist/utils/promoManager.d.ts +6 -18
  290. package/dist/utils/promoManager.esm.js.map +1 -1
  291. package/dist/utils/promoManager.js.map +1 -1
  292. package/package.json +42 -39
  293. package/dist/chunks/_share-dialog-dependencies-BG0p8uUr.esm.js +0 -2
  294. package/dist/chunks/_share-dialog-dependencies-dHlBUqo0.esm.js +0 -2
  295. package/dist/chunks/enforce-config-Ba1JkOHs.esm.js +0 -3
  296. package/dist/chunks/enforce-config-Ba1JkOHs.esm.js.map +0 -1
  297. package/dist/chunks/enforce-config-CZ3ToOgr.esm.js +0 -3
  298. package/dist/chunks/enforce-config-CZ3ToOgr.esm.js.map +0 -1
  299. package/dist/chunks/events-Dki0ka4F.esm.js +0 -2
  300. package/dist/chunks/index-2OQzw7UI.esm.js.map +0 -1
  301. package/dist/chunks/index-B1Y88trP.esm.js +0 -2
  302. package/dist/chunks/index-B1Y88trP.esm.js.map +0 -1
  303. package/dist/chunks/index-B7hOLixE.esm.d.ts +0 -15
  304. package/dist/chunks/index-BNjsFEGn.esm.js +0 -2
  305. package/dist/chunks/index-BTDB5Gk-.esm.js.map +0 -1
  306. package/dist/chunks/index-BX6GnRsb.esm.js +0 -2
  307. package/dist/chunks/index-BX6GnRsb.esm.js.map +0 -1
  308. package/dist/chunks/index-C5gnsl34.esm.js.map +0 -1
  309. package/dist/chunks/index-CGKJagBi.esm.js.map +0 -1
  310. package/dist/chunks/index-CWKcDbs6.esm.js +0 -2
  311. package/dist/chunks/index-CWKcDbs6.esm.js.map +0 -1
  312. package/dist/chunks/index-Cg65EbvX.esm.js.map +0 -1
  313. package/dist/chunks/index-Ct1m4IjM.esm.js.map +0 -1
  314. package/dist/chunks/index-DBb5HSkR.esm.js.map +0 -1
  315. package/dist/chunks/index-DnTE6QlY.esm.js.map +0 -1
  316. package/dist/chunks/index-DrxhkT6Y.esm.js.map +0 -1
  317. package/dist/chunks/index-IKiJwo5v.esm.js +0 -2
  318. package/dist/chunks/index-eCVyk0rc.esm.js +0 -2
  319. package/dist/chunks/index-eCVyk0rc.esm.js.map +0 -1
  320. package/dist/chunks/index-tbwbkOdj.esm.js.map +0 -1
  321. package/dist/chunks/lit-WqMxC_PA.esm.js +0 -34
  322. package/dist/chunks/lit-WqMxC_PA.esm.js.map +0 -1
  323. package/dist/chunks/loading-template-DG4lkIIc.esm.js +0 -2
  324. package/dist/chunks/localize-Btu9xYcE.esm.js.map +0 -1
  325. package/dist/chunks/localize-C25pEGnx.esm.js.map +0 -1
  326. package/dist/chunks/lodash-D3TLHRR_.esm.js +0 -2
  327. package/dist/chunks/lodash-D3TLHRR_.esm.js.map +0 -1
  328. package/dist/chunks/order-page-BRG7MXZ2.esm.js.map +0 -1
  329. package/dist/chunks/order-page-BbHDQfmy.esm.js.map +0 -1
  330. package/dist/chunks/progress-bar-CveZ8E6Q.esm.d.ts +0 -15
  331. package/dist/chunks/promo-pill-label-BXRqZHET.esm.d.ts +0 -19
  332. package/dist/chunks/routes-BvX92EDq.esm.js +0 -2
  333. package/dist/chunks/routes-BvX92EDq.esm.js.map +0 -1
  334. package/dist/chunks/routes-DahRzf8t.esm.d.ts +0 -638
  335. package/dist/chunks/routes-DguZveS3.esm.js +0 -2
  336. package/dist/chunks/routes-DguZveS3.esm.js.map +0 -1
  337. package/dist/chunks/share-button-BRjKJc5L.esm.js.map +0 -1
  338. package/dist/chunks/share-button-CDVVaxEc.esm.d.ts +0 -27
  339. package/dist/chunks/share-button-DmjRJmXh.esm.js.map +0 -1
  340. package/dist/chunks/update-cart-CJywJNax.esm.js.map +0 -1
  341. package/dist/chunks/update-cart-gwNcGXkd.esm.js.map +0 -1
  342. package/dist/chunks/vendor-KKSARHWL.esm.js +0 -1284
  343. package/dist/chunks/vendor-KKSARHWL.esm.js.map +0 -1
@@ -1,23 +1,23 @@
1
- import{j as E,y as r,f as B,g as p,t as A,h as z,k as L}from"../chunks/lit-WqMxC_PA.esm.js";import{u as b,A as W,_ as G,i as k,d as D,a as M}from"../chunks/localize-C25pEGnx.esm.js";import{D as R,W as y,j as _,S as j}from"../chunks/routes-BvX92EDq.esm.js";import{c as O,d as H,e as U}from"../chunks/enforce-config-Ba1JkOHs.esm.js";import{c as K}from"../chunks/responsive-BR8qUfBa.esm.js";import"../chunks/_share-dialog-dependencies-BG0p8uUr.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import{p as N}from"../chunks/promo-pill-label-ByFGhdxh.esm.js";import{formatStoreAndReturnPromoCodes as V,isEmptyPromoData as q,parseJsonStringArray as J,getPromoCodesFromCart as Y,setPromoCodesInLocalStorage as Z,setPromoCodeInCookie as Q}from"../utils/promoManager.js";import{B as X}from"../chunks/cart-contents-DkoytiZh.esm.js";import{createScopedLocalStorage as ee}from"../utils/local-storage.js";import{makeApiKeyHeader as te}from"../utils/makeApiKeyHeader.js";import{f as w,a as S}from"../chunks/events-Dki0ka4F.esm.js";import{getBeamCartId as oe}from"../utils/cart.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../utils/cookies.js";const ae=(n="",{borderRadius:e="0px",borderStyle:t="unset",borderColor:o="#000000",borderWidth:i="1px"}={})=>{const a=n.startsWith("--beam-")?n:`--beam-${n}`;return{[`${a}-borderRadius`]:e,[`${a}-borderStyle`]:t,[`${a}-borderColor`]:o,[`${a}-borderWidth`]:i}},ie=(n="",{borderRadius:e="0px",borderStyle:t="unset",borderColor:o="#000000",borderWidth:i="1px"}={})=>{const a=n.startsWith("--beam-")?n:`--beam-${n}`;return E(` border-radius: var(${a}-borderRadius, ${e});
1
+ import{g as E,b as r,i as B,n as p,r as z,a as A,h as L}from"../chunks/lit-JRlupCB5.esm.js";import{u as b,A as W,_ as G,i as k,d as D,a as M}from"../chunks/localize-DkAbsh05.esm.js";import{D as R,W as y,j as _,S as j}from"../chunks/routes-BIMwJ8u9.esm.js";import{c as O,d as H,e as U}from"../chunks/enforce-config-DUbQnaLO.esm.js";import{c as K}from"../chunks/responsive-CIV4sFdH.esm.js";import"../chunks/_share-dialog-dependencies-D6vA_2f6.esm.js";import"../chunks/vendor-ckSdd6aH.esm.js";import{p as N}from"../chunks/promo-pill-label-DcsiJS_N.esm.js";import{formatStoreAndReturnPromoCodes as V,isEmptyPromoData as q,parseJsonStringArray as J,getPromoCodesFromCart as Y,setPromoCodesInLocalStorage as Z,setPromoCodeInCookie as Q}from"../utils/promoManager.js";import{B as X}from"../chunks/cart-contents-DkoytiZh.esm.js";import{createScopedLocalStorage as ee}from"../utils/local-storage.js";import{makeApiKeyHeader as te}from"../utils/makeApiKeyHeader.js";import{f as w,a as S}from"../chunks/events-COWOQoLW.esm.js";import{getBeamCartId as oe}from"../utils/cart.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../utils/memoize-last.js";import"../chunks/lodash-BSs6Il-c.esm.js";import"../utils/cookies.js";const ae=(n="",{borderRadius:e="0px",borderStyle:t="unset",borderColor:o="#000000",borderWidth:i="1px"}={})=>{const a=n.startsWith("--beam-")?n:`--beam-${n}`;return{[`${a}-borderRadius`]:e,[`${a}-borderStyle`]:t,[`${a}-borderColor`]:o,[`${a}-borderWidth`]:i}},ie=(n="",{borderRadius:e="0px",borderStyle:t="unset",borderColor:o="#000000",borderWidth:i="1px"}={})=>{const a=n.startsWith("--beam-")?n:`--beam-${n}`;return E(` border-radius: var(${a}-borderRadius, ${e});
2
2
  border-style: var(${a}-borderStyle, ${t});
3
3
  border-color: var(${a}-borderColor, ${o});
4
4
  border-width: var(${a}-borderWidth, ${i});
5
5
  `)},re=()=>r` <svg
6
- xmlns="http://www.w3.org/2000/svg"
7
- width="24"
8
- height="24"
9
- viewBox="0 0 24 24"
10
- fill="none"
11
- stroke="currentColor"
12
- stroke-width="2"
13
- stroke-linecap="round"
14
- stroke-linejoin="round"
15
- part="svg"
16
- >
17
- <circle cx="12" cy="12" r="10"></circle>
18
- <path d="M12 16v-4"></path>
19
- <path d="M12 8h.01"></path>
20
- </svg>`,v={en:{ctaTitle:()=>"Choose Your Impact",ctaMessage:()=>"At no extra cost, 1% of every order will be donated to a nonprofit you choose. Add to cart to choose. Powered by Beam",inlineSeparator:()=>":"},fr:{ctaTitle:()=>"Choisissez votre impact",ctaMessage:()=>"Sans frais suppl\xE9mentaires, 1 % de chaque commande est revers\xE9 \xE0 l'association de votre choix. Ajoutez au panier pour choisir. Propuls\xE9 par Beam.",inlineSeparator:()=>":"},es:{ctaTitle:()=>"Elige tu impacto",ctaMessage:()=>"Sin coste adicional, el 1 % de cada pedido se dona a la organizaci\xF3n sin \xE1nimo de lucro que elijas. A\xF1\xE1delo al carrito para elegir. Impulsado por Beam.",inlineSeparator:()=>":"},de:{ctaTitle:()=>"W\xE4hlen Sie Ihren Impact",ctaMessage:()=>"Ohne zus\xE4tzliche Kosten wird 1 % jeder Bestellung an eine von Ihnen gew\xE4hlte gemeinn\xFCtzige Organisation gespendet. Zum Warenkorb hinzuf\xFCgen, um auszuw\xE4hlen. Unterst\xFCtzt von Beam.",inlineSeparator:()=>":"},it:{ctaTitle:()=>"Scegli il tuo impatto",ctaMessage:()=>"L'1 % di ogni acquisto viene donato, senza alcun costo aggiuntivo, a un'organizzazione no-profit a tua scelta. Aggiungi al carrello per scegliere. Promosso da Beam.",inlineSeparator:()=>":"},pl:{ctaTitle:()=>"Wybierz sw\xF3j wp\u0142yw",ctaMessage:()=>"1 % warto\u015Bci ka\u017Cdego zam\xF3wienia przekazywany jest na wybran\u0105 przez Ciebie organizacj\u0119 non-profit \u2013 bez dodatkowych koszt\xF3w. Dodaj do koszyka, aby wybra\u0107. Obs\u0142ugiwane przez Beam.",inlineSeparator:()=>":"},ja:{ctaTitle:()=>"\u5BC4\u4ED8\u5148\u3092\u304A\u9078\u3073\u304F\u3060\u3055\u3044\u3002",ctaMessage:()=>"\u8FFD\u52A0\u8CBB\u7528\u306A\u3057\u3067\u3001\u3054\u6CE8\u6587\u91D1\u984D\u306E1%\u3092\u975E\u55B6\u5229\u56E3\u4F53\u3078\u5BC4\u4ED8\u3067\u304D\u307E\u3059\u3002\u3054\u5E0C\u671B\u306E\u5834\u5408\u3001\u30AB\u30FC\u30C8\u306B\u8FFD\u52A0\u3057\u3066\u5BC4\u4ED8\u5185\u5BB9\u3092\u304A\u9078\u3073\u304F\u3060\u3055\u3044\u3002Powered by Beam",inlineSeparator:()=>":"}};var se=Object.defineProperty,c=(n,e,t,o)=>{for(var i=void 0,a=n.length-1,l;a>=0;a--)(l=n[a])&&(i=l(e,t,i)||i);return i&&se(e,t,i),i};const le="--beam-ProductDetailsPage-imageUrl";class s extends z{constructor(){super(...arguments),this.baseUrl=R,this.lang="en",this.draftConfig=!1,this.debug=!1,this.localStorage=ee(this),this.pluginPromoCodes=[],this.handlePromoCodesStored=e=>{const t=(e.detail.promoCodes?.unvalidatedPromoCodes??[]).map(o=>o.attributes?.value??o.attributes?.url??"").sort();this.pluginPromoCodes=t},this.postProductDetailsPageData=async()=>{U(["apiKey","storeId"],this);const e=oe(X,{apiKey:this.apiKey}),t=this.getManualPromoCodes(),o=V(t.map(l=>({value:l})),this.apiKey),i=o&&!q(o);i&&this.dispatchEvent(new w({source:y.product_details_page}));const a=await _({baseUrl:this.baseUrl,headers:te(this.apiKey),queryParams:{version:"1.0.0",lang:this.configLang,storeId:this.storeId,widgetName:y.product_details_page,draftConfig:this.draftConfig,remoteProductIdentifier:this.remoteProductIdentifier},requestBody:{...i&&{promos:o},beamCartId:e||void 0}});return this.handleValidatedPromoCodes(a),a},this.productDetailsPageDataController=new W(this,this.postProductDetailsPageData)}get configLang(){return j[this.lang]||"en"}get parsedPromoCodes(){return J(this.promoCodes)}getManualPromoCodes(){if(this.parsedPromoCodes&&this.parsedPromoCodes.length>0)return this.parsedPromoCodes;const e=this.localStorage.getItemJson("cart");return e?Y(e):[]}async handleValidatedPromoCodes(e){e.promos?.validatedPromoCodes&&(await Promise.all([Z({apiKey:this.apiKey,promoCodes:{validatedPromoCodes:e.promos.validatedPromoCodes,unvalidatedPromoCodes:[]}}),Q({validatedPromoCodes:e.promos.validatedPromoCodes,domain:this.domain})]),this.dispatchEvent(new w({source:y.product_details_page})))}async firstUpdated(){window.addEventListener(S.eventName,this.handlePromoCodesStored)}disconnectedCallback(){window.removeEventListener(S.eventName,this.handlePromoCodesStored),super.disconnectedCallback()}async updated(e){const t=["storeId","baseUrl","lang","apiKey","pluginPromoCodes","promoCodes"];this.pluginPromoCodes;for(const o of t)if(e.has(o)){await this.productDetailsPageDataController.exec();break}}render(){const{data:e,loading:t}=this.productDetailsPageDataController,o=this.cssVariables["--beam-ProductDetailsPage-image-placement"],i=P=>P!=="0px"&&P!=="0",a=this.cssVariables["--beam-ProductDetailsPage-shouldDisplayPromoPill"]==="true",l=!!e?.config?.web?.promo,g=i(this.cssVariables["--beam-ProductDetailsPage-imageHeight"]),h=i(this.cssVariables["--beam-ProductDetailsPage-title-fontSize"]),u=a&&l&&g&&h,m=this.cssVariables["--beam-ProductDetailsPage-shouldDisplayColon"]==="true";return t?r``:e==null?this.debug?G({error:new Error("No data")}):"":r`
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ width="24"
8
+ height="24"
9
+ viewBox="0 0 24 24"
10
+ fill="none"
11
+ stroke="currentColor"
12
+ stroke-width="2"
13
+ stroke-linecap="round"
14
+ stroke-linejoin="round"
15
+ part="svg"
16
+ >
17
+ <circle cx="12" cy="12" r="10"></circle>
18
+ <path d="M12 16v-4"></path>
19
+ <path d="M12 8h.01"></path>
20
+ </svg>`,v={en:{ctaTitle:()=>"Choose Your Impact",ctaMessage:()=>"At no extra cost, 1% of every order will be donated to a nonprofit you choose. Add to cart to choose. Powered by Beam",inlineSeparator:()=>":"},fr:{ctaTitle:()=>"Choisissez votre impact",ctaMessage:()=>"Sans frais suppl\xE9mentaires, 1 % de chaque commande est revers\xE9 \xE0 l'association de votre choix. Ajoutez au panier pour choisir. Propuls\xE9 par Beam.",inlineSeparator:()=>":"},es:{ctaTitle:()=>"Elige tu impacto",ctaMessage:()=>"Sin coste adicional, el 1 % de cada pedido se dona a la organizaci\xF3n sin \xE1nimo de lucro que elijas. A\xF1\xE1delo al carrito para elegir. Impulsado por Beam.",inlineSeparator:()=>":"},de:{ctaTitle:()=>"W\xE4hlen Sie Ihren Impact",ctaMessage:()=>"Ohne zus\xE4tzliche Kosten wird 1 % jeder Bestellung an eine von Ihnen gew\xE4hlte gemeinn\xFCtzige Organisation gespendet. Zum Warenkorb hinzuf\xFCgen, um auszuw\xE4hlen. Unterst\xFCtzt von Beam.",inlineSeparator:()=>":"},it:{ctaTitle:()=>"Scegli il tuo impatto",ctaMessage:()=>"L'1 % di ogni acquisto viene donato, senza alcun costo aggiuntivo, a un'organizzazione no-profit a tua scelta. Aggiungi al carrello per scegliere. Promosso da Beam.",inlineSeparator:()=>":"},pl:{ctaTitle:()=>"Wybierz sw\xF3j wp\u0142yw",ctaMessage:()=>"1 % warto\u015Bci ka\u017Cdego zam\xF3wienia przekazywany jest na wybran\u0105 przez Ciebie organizacj\u0119 non-profit \u2013 bez dodatkowych koszt\xF3w. Dodaj do koszyka, aby wybra\u0107. Obs\u0142ugiwane przez Beam.",inlineSeparator:()=>":"},ja:{ctaTitle:()=>"\u5BC4\u4ED8\u5148\u3092\u304A\u9078\u3073\u304F\u3060\u3055\u3044\u3002",ctaMessage:()=>"\u8FFD\u52A0\u8CBB\u7528\u306A\u3057\u3067\u3001\u3054\u6CE8\u6587\u91D1\u984D\u306E1%\u3092\u975E\u55B6\u5229\u56E3\u4F53\u3078\u5BC4\u4ED8\u3067\u304D\u307E\u3059\u3002\u3054\u5E0C\u671B\u306E\u5834\u5408\u3001\u30AB\u30FC\u30C8\u306B\u8FFD\u52A0\u3057\u3066\u5BC4\u4ED8\u5185\u5BB9\u3092\u304A\u9078\u3073\u304F\u3060\u3055\u3044\u3002Powered by Beam",inlineSeparator:()=>":"}};var se=Object.defineProperty,c=(n,e,t,o)=>{for(var i=void 0,a=n.length-1,l;a>=0;a--)(l=n[a])&&(i=l(e,t,i)||i);return i&&se(e,t,i),i};const le="--beam-ProductDetailsPage-imageUrl";class s extends A{constructor(){super(...arguments),this.baseUrl=R,this.lang="en",this.draftConfig=!1,this.debug=!1,this.localStorage=ee(this),this.pluginPromoCodes=[],this.handlePromoCodesStored=e=>{const t=(e.detail.promoCodes?.unvalidatedPromoCodes??[]).map(o=>o.attributes?.value??o.attributes?.url??"").sort();this.pluginPromoCodes=t},this.postProductDetailsPageData=async()=>{U(["apiKey","storeId"],this);const e=oe(X,{apiKey:this.apiKey}),t=this.getManualPromoCodes(),o=V(t.map(l=>({value:l})),this.apiKey),i=o&&!q(o);i&&this.dispatchEvent(new w({source:y.product_details_page}));const a=await _({baseUrl:this.baseUrl,headers:te(this.apiKey),queryParams:{version:"1.0.0",lang:this.configLang,storeId:this.storeId,widgetName:y.product_details_page,draftConfig:this.draftConfig,remoteProductIdentifier:this.remoteProductIdentifier},requestBody:{...i&&{promos:o},beamCartId:e||void 0}});return this.handleValidatedPromoCodes(a),a},this.productDetailsPageDataController=new W(this,this.postProductDetailsPageData)}get configLang(){return j[this.lang]||"en"}get parsedPromoCodes(){return J(this.promoCodes)}getManualPromoCodes(){if(this.parsedPromoCodes&&this.parsedPromoCodes.length>0)return this.parsedPromoCodes;const e=this.localStorage.getItemJson("cart");return e?Y(e):[]}async handleValidatedPromoCodes(e){e.promos?.validatedPromoCodes&&(await Promise.all([Z({apiKey:this.apiKey,promoCodes:{validatedPromoCodes:e.promos.validatedPromoCodes,unvalidatedPromoCodes:[]}}),Q({validatedPromoCodes:e.promos.validatedPromoCodes,domain:this.domain})]),this.dispatchEvent(new w({source:y.product_details_page})))}async firstUpdated(){window.addEventListener(S.eventName,this.handlePromoCodesStored)}disconnectedCallback(){window.removeEventListener(S.eventName,this.handlePromoCodesStored),super.disconnectedCallback()}async updated(e){const t=["storeId","baseUrl","lang","apiKey","pluginPromoCodes","promoCodes"];this.pluginPromoCodes;for(const o of t)if(e.has(o)){await this.productDetailsPageDataController.exec();break}}render(){const{data:e,loading:t}=this.productDetailsPageDataController,o=this.cssVariables["--beam-ProductDetailsPage-image-placement"],i=P=>P!=="0px"&&P!=="0",a=this.cssVariables["--beam-ProductDetailsPage-shouldDisplayPromoPill"]==="true",l=!!e?.config?.web?.promo,g=i(this.cssVariables["--beam-ProductDetailsPage-imageHeight"]),h=i(this.cssVariables["--beam-ProductDetailsPage-title-fontSize"]),u=a&&l&&g&&h,m=this.cssVariables["--beam-ProductDetailsPage-shouldDisplayColon"]==="true";return t?r``:e==null?this.debug?G({error:new Error("No data")}):"":r`
21
21
  <style>
22
22
  :host {
23
23
  ${this.cssVariables.toCSS()}
@@ -49,7 +49,7 @@ import{j as E,y as r,f as B,g as p,t as A,h as z,k as L}from"../chunks/lit-WqMxC
49
49
  </div>
50
50
  `}renderWidgetIcon(e){const t=this.cssVariables[le];return t?r`
51
51
  <span class="icon-container" part="icon" ${e==="block-center"?'style="order:1"':""}>
52
- <img src=${t} part="icon" aria-hidden="true" alt="" />
52
+ <img src=${t} part="icon" aria-hidden="true" alt="" data-speedsize-ignore="true" />
53
53
  </span>
54
54
  `:r``}renderContent(e,t,o){const i=k(this.configLang,o?.config?.web?.title)||v[this.configLang].ctaTitle(),a=k(this.configLang,o?.config?.web?.description)||v[this.configLang].ctaMessage();return e?r`
55
55
  <div class="info-inline-promo">
@@ -287,5 +287,5 @@ import{j as E,y as r,f as B,g as p,t as A,h as z,k as L}from"../chunks/lit-WqMxC
287
287
  color: var(--beam-ProductDetailsPage-TooltipIcon-color);
288
288
  height: auto;
289
289
  }
290
- `],c([p({type:String,reflect:!0})],s.prototype,"baseUrl"),c([p({type:String,reflect:!1})],s.prototype,"apiKey"),c([p({type:Number})],s.prototype,"storeId"),c([p({type:String})],s.prototype,"lang"),c([p({type:Boolean})],s.prototype,"draftConfig"),c([p({type:Boolean})],s.prototype,"debug"),c([p({type:String})],s.prototype,"remoteProductIdentifier"),c([p({type:String})],s.prototype,"promoCodes"),c([p({type:String})],s.prototype,"domain"),c([A()],s.prototype,"pluginPromoCodes"),H(s);export{s as BeamProductDetailsPage};
290
+ `],c([p({type:String,reflect:!0})],s.prototype,"baseUrl"),c([p({type:String,reflect:!1})],s.prototype,"apiKey"),c([p({type:Number})],s.prototype,"storeId"),c([p({type:String})],s.prototype,"lang"),c([p({type:Boolean})],s.prototype,"draftConfig"),c([p({type:Boolean})],s.prototype,"debug"),c([p({type:String})],s.prototype,"remoteProductIdentifier"),c([p({type:String})],s.prototype,"promoCodes"),c([p({type:String})],s.prototype,"domain"),c([z()],s.prototype,"pluginPromoCodes"),H(s);export{s as BeamProductDetailsPage};
291
291
  //# sourceMappingURL=product-details-page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"product-details-page.js","sources":["../../src/shared/fragments/custom-border.ts","../../src/shared/fragments/info.ts","../../src/components/product-details-page/strings.ts","../../src/components/product-details-page/index.ts"],"sourcesContent":["import { CSSResult, unsafeCSS } from \"lit\";\n\nexport const defineCustomBorder = (\n namespace = \"\",\n { borderRadius = \"0px\", borderStyle = \"unset\", borderColor = \"#000000\", borderWidth = \"1px\" } = {}\n): Record<string, string> => {\n const prefix = namespace.startsWith(\"--beam-\") ? namespace : `--beam-${namespace}`;\n return {\n [`${prefix}-borderRadius`]: borderRadius,\n [`${prefix}-borderStyle`]: borderStyle,\n [`${prefix}-borderColor`]: borderColor,\n [`${prefix}-borderWidth`]: borderWidth,\n };\n};\n\nexport const useCustomBorder = (\n namespace = \"\",\n { borderRadius = \"0px\", borderStyle = \"unset\", borderColor = \"#000000\", borderWidth = \"1px\" } = {}\n): CSSResult => {\n const prefix = namespace.startsWith(\"--beam-\") ? namespace : `--beam-${namespace}`;\n return unsafeCSS(`\\\n border-radius: var(${prefix}-borderRadius, ${borderRadius});\n border-style: var(${prefix}-borderStyle, ${borderStyle});\n border-color: var(${prefix}-borderColor, ${borderColor});\n border-width: var(${prefix}-borderWidth, ${borderWidth});\n `);\n};\n","import { html } from \"lit\";\n\nexport const _info = () => html` <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n part=\"svg\"\n>\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <path d=\"M12 16v-4\"></path>\n <path d=\"M12 8h.01\"></path>\n</svg>`;\n","export const strings = {\n en: {\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: () =>\n `At no extra cost, 1% of every order will be donated to a nonprofit you choose. Add to cart to choose. Powered by Beam`,\n inlineSeparator: () => `:`,\n },\n fr: {\n ctaTitle: () => `Choisissez votre impact`,\n ctaMessage: () =>\n `Sans frais supplémentaires, 1 % de chaque commande est reversé à l'association de votre choix. Ajoutez au panier pour choisir. Propulsé par Beam.`,\n inlineSeparator: () => `:`,\n },\n es: {\n ctaTitle: () => `Elige tu impacto`,\n ctaMessage: () =>\n `Sin coste adicional, el 1 % de cada pedido se dona a la organización sin ánimo de lucro que elijas. Añádelo al carrito para elegir. Impulsado por Beam.`,\n inlineSeparator: () => `:`,\n },\n de: {\n ctaTitle: () => `Wählen Sie Ihren Impact`,\n ctaMessage: () =>\n `Ohne zusätzliche Kosten wird 1 % jeder Bestellung an eine von Ihnen gewählte gemeinnützige Organisation gespendet. Zum Warenkorb hinzufügen, um auszuwählen. Unterstützt von Beam.`,\n inlineSeparator: () => `:`,\n },\n it: {\n ctaTitle: () => `Scegli il tuo impatto`,\n ctaMessage: () =>\n `L'1 % di ogni acquisto viene donato, senza alcun costo aggiuntivo, a un'organizzazione no-profit a tua scelta. Aggiungi al carrello per scegliere. Promosso da Beam.`,\n inlineSeparator: () => `:`,\n },\n pl: {\n ctaTitle: () => `Wybierz swój wpływ`,\n ctaMessage: () =>\n `1 % wartości każdego zamówienia przekazywany jest na wybraną przez Ciebie organizację non-profit – bez dodatkowych kosztów. Dodaj do koszyka, aby wybrać. Obsługiwane przez Beam.`,\n inlineSeparator: () => `:`,\n },\n ja: {\n ctaTitle: () => `寄付先をお選びください。`,\n ctaMessage: () =>\n `追加費用なしで、ご注文金額の1%を非営利団体へ寄付できます。ご希望の場合、カートに追加して寄付内容をお選びください。Powered by Beam`,\n inlineSeparator: () => `:`,\n },\n};\n","import { LitElement, css, html } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { postProductDetailsPage } from \"../../api-sdk/v3/routes\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { LANGUAGES, TUrl } from \"../../api-sdk/types\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport { localizeUserString } from \"../../shared/localize\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { cssResponsiveUtils } from \"../../shared/responsive\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { defineCustomBorder, useCustomBorder } from \"../../shared/fragments/custom-border\";\n// shoelace html tag imports\nimport \"../../shared/shoelace-components\";\nimport \"@shoelace-style/shoelace/dist/components/tooltip/tooltip.js\";\nimport \"@shoelace-style/shoelace/dist/components/button/button.js\";\nimport { _info } from \"../../shared/fragments/info\";\nimport { promoPillLabelConfigDefaults } from \"../../shared/components/promo-pill-label\";\nimport {\n getPromoCodesFromCart,\n setPromoCodeInCookie,\n parseJsonStringArray,\n formatStoreAndReturnPromoCodes,\n setPromoCodesInLocalStorage,\n isEmptyPromoData,\n} from \"../../utils/promoManager\";\nimport \"../../shared/components/promo-pill-label\";\nimport { BEAM_CART_COOKIE_NAME, TBeamCartLocalStorage } from \"../../shared/cart-contents\";\nimport { createScopedLocalStorage } from \"../../utils/local-storage\";\nimport { makeApiKeyHeader } from \"../../utils/makeApiKeyHeader\";\nimport { BeamPromoCodesStoredEvent, BeamWidgetStoredPromoCodesEvent } from \"../../utils/events\";\nimport { getBeamCartId } from \"../../utils/cart\";\nimport { strings } from \"./strings\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: number;\n};\ntype IAPIV3PostProductDetailsPage = Awaited<ReturnType<typeof postProductDetailsPage>>;\n\nconst IMAGE_URL_REMOTE_CONFIG_KEY = \"--beam-ProductDetailsPage-imageUrl\";\n\nexport class BeamProductDetailsPage extends LitElement {\n static tagName = \"beam-product-details-page\";\n\n @property({ type: String, reflect: true }) public baseUrl: TUrl = DEFAULT_BASE_URL;\n\n @property({ type: String, reflect: false }) apiKey?: RequiredConfig[\"apiKey\"];\n\n @property({ type: Number }) storeId?: number;\n\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n\n @property({ type: Boolean }) public draftConfig = false;\n\n @property({ type: Boolean }) public debug = false;\n\n @property({ type: String }) remoteProductIdentifier?: string;\n\n @property({ type: String }) public promoCodes?: string;\n\n @property({ type: String }) public domain?: string;\n\n private localStorage = createScopedLocalStorage(this as LitElement & RequiredConfig);\n\n @state() private pluginPromoCodes: string[] = [];\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n get parsedPromoCodes(): string[] {\n return parseJsonStringArray(this.promoCodes);\n }\n\n private handlePromoCodesStored = (evt: BeamPromoCodesStoredEvent) => {\n const promoCodesFromPlugin = (evt.detail.promoCodes?.unvalidatedPromoCodes ?? [])\n .map((c) => c.attributes?.value ?? c.attributes?.url ?? \"\")\n .sort();\n this.pluginPromoCodes = promoCodesFromPlugin;\n };\n\n private getManualPromoCodes(): string[] {\n // Priority 1: Widget passed discount codes\n if (this.parsedPromoCodes && this.parsedPromoCodes.length > 0) {\n return this.parsedPromoCodes;\n }\n\n // Priority 2: Cart fallback\n const cart = this.localStorage.getItemJson<TBeamCartLocalStorage>(\"cart\");\n return cart ? getPromoCodesFromCart(cart) : [];\n }\n\n private async handleValidatedPromoCodes(response: IAPIV3PostProductDetailsPage) {\n if (response.promos?.validatedPromoCodes) {\n await Promise.all([\n setPromoCodesInLocalStorage({\n apiKey: this.apiKey,\n promoCodes: { validatedPromoCodes: response.promos.validatedPromoCodes, unvalidatedPromoCodes: [] },\n }),\n setPromoCodeInCookie({\n validatedPromoCodes: response.promos.validatedPromoCodes,\n domain: this.domain,\n }),\n ]);\n this.dispatchEvent(\n new BeamWidgetStoredPromoCodesEvent({\n source: WIDGET_NAMES.product_details_page,\n })\n );\n }\n }\n\n async firstUpdated() {\n window.addEventListener(BeamPromoCodesStoredEvent.eventName, this.handlePromoCodesStored as EventListener);\n }\n\n disconnectedCallback() {\n window.removeEventListener(BeamPromoCodesStoredEvent.eventName, this.handlePromoCodesStored as EventListener);\n super.disconnectedCallback();\n }\n\n postProductDetailsPageData = async () => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\"], this)) throw new MissingConfig();\n const beamCartId = getBeamCartId(BEAM_CART_COOKIE_NAME, { apiKey: this.apiKey });\n\n const manualPromoCodes = this.getManualPromoCodes();\n const formattedPromos = formatStoreAndReturnPromoCodes(\n manualPromoCodes.map((code) => ({ value: code })),\n this.apiKey\n );\n const shouldSendPromos = formattedPromos && !isEmptyPromoData(formattedPromos);\n\n if (shouldSendPromos) {\n this.dispatchEvent(\n new BeamWidgetStoredPromoCodesEvent({\n source: WIDGET_NAMES.product_details_page,\n })\n );\n }\n const res = await postProductDetailsPage({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n queryParams: {\n version: \"1.0.0\",\n lang: this.configLang,\n storeId: this.storeId,\n widgetName: WIDGET_NAMES.product_details_page,\n draftConfig: this.draftConfig,\n remoteProductIdentifier: this.remoteProductIdentifier,\n },\n requestBody: {\n ...(shouldSendPromos && { promos: formattedPromos }),\n beamCartId: beamCartId ? beamCartId : undefined,\n },\n });\n this.handleValidatedPromoCodes(res);\n return res;\n };\n\n private productDetailsPageDataController = new AsyncController<typeof this.postProductDetailsPageData>(\n this,\n this.postProductDetailsPageData\n );\n\n async updated(changedProperties: Map<string, unknown>) {\n const requireNewDataProps = [\"storeId\", \"baseUrl\", \"lang\", \"apiKey\", \"pluginPromoCodes\", \"promoCodes\"];\n void this.pluginPromoCodes;\n for (const prop of requireNewDataProps) {\n if (changedProperties.has(prop)) {\n await this.productDetailsPageDataController.exec();\n break;\n }\n }\n }\n\n render() {\n const { data, loading } = this.productDetailsPageDataController;\n const iconDisplay = this.cssVariables[\"--beam-ProductDetailsPage-image-placement\"];\n const isNonZero = (value: string) => value !== \"0px\" && value !== \"0\";\n const shouldDisplayPromoPill = this.cssVariables[\"--beam-ProductDetailsPage-shouldDisplayPromoPill\"] === \"true\";\n const isPromoActive = !!data?.config?.web?.promo;\n const hasValidImageHeight = isNonZero(this.cssVariables[\"--beam-ProductDetailsPage-imageHeight\"]);\n const hasValidTitleFontSize = isNonZero(this.cssVariables[\"--beam-ProductDetailsPage-title-fontSize\"]);\n const isPromoPillVisible =\n shouldDisplayPromoPill && // Determines if the promo pill is enabled for the marketing version of the PDP\n isPromoActive && // Is promo currently active\n hasValidImageHeight && // Ensures the promo pill is not displayed for the subtext version of the PDP\n hasValidTitleFontSize; // Ensures the promo pill is not displayed for the subtext version of the PDP\n const shouldShowPunctuation = this.cssVariables[\"--beam-ProductDetailsPage-shouldDisplayColon\"] === \"true\"; // Determines if a colon should be displayed in promo display\n\n if (loading) {\n return html``;\n }\n if (data == null) {\n if (this.debug) {\n return _errorMessage({ error: new Error(\"No data\") });\n }\n return \"\";\n }\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n <div\n class=\"root ${iconDisplay === \"block-center\" ? \"block-display\" : \"inline-display\"}\"\n aria-label=\"product detail page Beam component\"\n >\n ${iconDisplay === \"block-center\"\n ? html`\n ${this.renderWidgetIcon(iconDisplay)}\n ${isPromoPillVisible\n ? html`\n <div class=\"promo-container\">\n <beam-promo-info-pill .promo=${data?.config?.web?.promo}></beam-promo-info-pill>\n </div>\n `\n : html``}\n <div class=\"info-container\">${this.renderContent(isPromoPillVisible, shouldShowPunctuation, data)}</div>\n `\n : html`\n ${isPromoPillVisible\n ? html`\n <div class=\"promo-container\">\n <beam-promo-info-pill .promo=${data?.config?.web?.promo}></beam-promo-info-pill>\n </div>\n `\n : html``}\n <div class=\"content-inline\">\n ${this.renderWidgetIcon(iconDisplay)}\n <div class=\"info-container\">${this.renderContent(isPromoPillVisible, shouldShowPunctuation, data)}</div>\n </div>\n `}\n </div>\n `;\n }\n\n renderWidgetIcon(iconDisplay: string) {\n const imageUrl = this.cssVariables[IMAGE_URL_REMOTE_CONFIG_KEY];\n\n if (!imageUrl) return html``;\n\n const isBlockDisplay = iconDisplay === \"block-center\";\n const containerStyle = isBlockDisplay ? 'style=\"order:1\"' : \"\";\n\n return html`\n <span class=\"icon-container\" part=\"icon\" ${containerStyle}>\n <img src=${imageUrl} part=\"icon\" aria-hidden=\"true\" alt=\"\" />\n </span>\n `;\n }\n\n renderContent(isPromoPillVisible: boolean, shouldDisplayColon: boolean, data: IAPIV3PostProductDetailsPage) {\n const title = localizeUserString(this.configLang, data?.config?.web?.title) || strings[this.configLang].ctaTitle();\n const description =\n localizeUserString(this.configLang, data?.config?.web?.description) || strings[this.configLang].ctaMessage();\n return isPromoPillVisible\n ? html`\n <div class=\"info-inline-promo\">\n <span class=\"title\">${title + (shouldDisplayColon ? strings[this.configLang].inlineSeparator() : \"\")}</span>\n <span class=\"description\"> <span>${description}</span> ${this.renderDisclosureTooltip()} </span>\n </div>\n `\n : html`\n <div class=\"title-block\">\n <h3 class=\"title\">${title}</h3>\n </div>\n <div class=\"description-block\">\n <span class=\"description\"> <span>${description}</span> ${this.renderDisclosureTooltip()} </span>\n </div>\n `;\n }\n\n renderCloseTooltipIcon() {\n return html`<svg\n aria-hidden=\"true\"\n width=\"11\"\n height=\"11\"\n viewBox=\"0 0 11 11\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.40836 5.40811L1.48828 1.48804M5.40836 5.40811L9.32843 9.32819M5.40836 5.40811L9.32843 1.48804M5.40836 5.40811L1.48828 9.32819\"\n stroke=\"white\"\n stroke-width=\"1.56803\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg> `;\n }\n\n /* PayPal Giving Fund Disclosure */\n renderDisclosureTooltip() {\n let closeTimer: number | undefined;\n let ariaTimer: number | undefined;\n\n // Does the PDP module still have the focusElement of the page?\n const stillHasFocus = () => {\n return document.activeElement?.tagName.toLowerCase() === this.tagName.toLowerCase();\n };\n\n const onHide = () => {\n // Even after animation is done, we need to give the browser a moment\n // to move focus to another element before setting aria-hidden\n clearTimeout(ariaTimer);\n ariaTimer = setTimeout(() => {\n this.renderRoot.querySelector(\".ppgf-disclosure-tooltip-content\")?.setAttribute(\"aria-hidden\", \"true\");\n }, 50);\n };\n\n const onShow = () => {\n clearTimeout(ariaTimer);\n const tooltipContent = this.renderRoot.querySelector(\".ppgf-disclosure-tooltip-content\") as HTMLElement;\n\n tooltipContent?.setAttribute(\"aria-hidden\", \"false\");\n\n tooltipContent?.focus();\n };\n\n // Close the tooltip\n const closeTooltip = ({\n skipDelay = false,\n keepOpenIfFocused = false,\n }: {\n skipDelay?: boolean;\n keepOpenIfFocused?: boolean;\n }) => {\n clearTimeout(closeTimer);\n closeTimer = setTimeout(\n () => {\n // if focus is still on this module, don't close anything\n if (keepOpenIfFocused && stillHasFocus()) {\n return;\n }\n (this.renderRoot.querySelector(\".ppgf-disclosure-tooltip\") as any)?.hide();\n },\n skipDelay ? 0 : 300\n );\n };\n\n // Open the tooltip; resets the timeout for closing if one exists so we don't\n // close it again\n const openTooltip = () => {\n clearTimeout(closeTimer);\n (this.renderRoot.querySelector(\".ppgf-disclosure-tooltip\") as any)?.show();\n };\n\n // Toggle the tooltip\n const toggleTooltip = ({\n skipDelay = false,\n keepOpenIfFocused = false,\n }: {\n skipDelay?: boolean;\n keepOpenIfFocused?: boolean;\n }) => {\n const tooltip = this.renderRoot.querySelector(\".ppgf-disclosure-tooltip\") as any;\n if (tooltip) {\n if (tooltip.open) {\n closeTooltip({\n skipDelay,\n keepOpenIfFocused,\n });\n } else {\n openTooltip();\n }\n }\n };\n\n // Triggering the tooltip to open on enter\n const onKeydownTrigger = (evt: KeyboardEvent) => {\n if (evt.key === \"Enter\" || evt.key === \" \") {\n evt.preventDefault();\n toggleTooltip({\n skipDelay: true,\n keepOpenIfFocused: false,\n });\n }\n };\n\n // Blur on the trigger checks if focus is still on the PDP module before closing the tooltip\n const onBlurTrigger = () => {\n closeTooltip({\n skipDelay: false,\n keepOpenIfFocused: true,\n });\n };\n\n // If the icon is clicked, force open the tooltip (for mobile)\n const onClickTrigger = () => {\n openTooltip();\n };\n\n // Mouseover on the icon should open the tooltip every time\n const onMouseoverTooltip = () => {\n openTooltip();\n };\n\n // Mouseout of the icon should check if we came back within 100ms\n const onMouseoutTooltip = () => {\n closeTooltip({\n skipDelay: false,\n keepOpenIfFocused: false,\n });\n };\n\n // This is needed to close the tooltip if the focus goes from the tooltip content\n // to something outside the page\n const onKeydownTooltip = () => {\n // If we tab out of the PDP tooltip, allow the tooltip to close itself\n closeTooltip({\n skipDelay: true,\n keepOpenIfFocused: true,\n });\n };\n\n // If the X is clicked, force close the tooltip\n const onClickClose = () => {\n closeTooltip({\n skipDelay: true,\n keepOpenIfFocused: false,\n });\n };\n\n const ppgfDisclosure = this.productDetailsPageDataController.data?.ppgfDisclosure;\n return ppgfDisclosure\n ? html`<sl-tooltip\n class=\"ppgf-disclosure-tooltip\"\n part=\"tooltip\"\n trigger=\"manual\"\n tabindex=\"0\"\n @mouseenter=\"${onMouseoverTooltip}\"\n @mouseleave=\"${onMouseoutTooltip}\"\n @keydown=\"${onKeydownTooltip}\"\n @sl-after-hide=\"${onHide}\"\n @sl-after-show=\"${onShow}\"\n >\n <div\n class=\"ppgf-disclosure-tooltip-content\"\n id=\"BeamPPGFDisclosure\"\n slot=\"content\"\n part=\"tooltip-content\"\n aria-hidden=\"true\"\n >\n <button\n class=\"ppgf-disclosure-close\"\n role=\"button\"\n aria-label=\"Close tooltip\"\n part=\"tooltip-close-button\"\n @click=\"${onClickClose}\"\n >\n ${this.renderCloseTooltipIcon()}\n </button>\n <div class=\"ppgf-disclosure-tooltip-copy\" part=\"tooltip-disclosure-copy\">\n ${unsafeHTML(ppgfDisclosure.copy)}\n </div>\n </div>\n <span\n class=\"ppgf-disclosure-tooltip-trigger\"\n part=\"tooltip-disclosure-icon\"\n aria-label=\"PayPal Giving Fund Disclosure Tooltip\"\n role=\"button\"\n tabindex=\"0\"\n @keydown=\"${onKeydownTrigger}\"\n @blur=\"${onBlurTrigger}\"\n @click=\"${onClickTrigger}\"\n >\n <div class=\"ppgf-disclosure-tooltip-trigger-mask d-lg-none\"></div>\n <sl-button\n variant=\"text\"\n size=\"small\"\n class=\"ppgf-disclosure-tooltip-trigger\"\n part=\"tooltip-disclosure-button\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n circle\n >\n ${_info()}\n </sl-button>\n </span>\n </sl-tooltip>`\n : html``;\n }\n /* End PayPal Giving Fund Disclosure */\n\n public get cssVariables() {\n const defaults = {\n \"--beam-ProductDetailsPage-imageWidth\": \"24px\",\n \"--beam-ProductDetailsPage-imageHeight\": \"24px\",\n \"--beam-ProductDetailsPage-maxWidth\": \"346px\",\n \"--beam-ProductDetailsPage-paddingTop\": \"8px\",\n \"--beam-ProductDetailsPage-paddingRight\": \"12px\",\n \"--beam-ProductDetailsPage-paddingBottom\": \"8px\",\n \"--beam-ProductDetailsPage-paddingLeft\": \"15px\",\n \"--beam-ProductDetailsPage-InfoContainer-marginLeft\": \"8px\",\n \"--beam-ProductDetailsPage-InfoContainer-textAlign\": \"inherit\",\n \"--beam-ProductDetailsPage-InfoContainer-lineHeight\": \"15px\",\n \"--beam-ProductDetailsPage-InfoContainer-marginTop\": \"4px\",\n \"--beam-ProductDetailsPage-backgroundColor\": \"unset\",\n \"--beam-ProductDetailsPage-TooltipIcon-width\": \"10px\",\n \"--beam-ProductDetailsPage-TooltipIcon-color\": \"inherit\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor\": \"#000000\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingTop\": \"10px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingRight\": \"8px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingBottom\": \"10px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingLeft\": \"8px\",\n \"--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color\": \"#5CA3FF\",\n ...defineCustomText(\"--beam-ProductDetailsPage-title\", {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n }),\n \"--beam-ProductDetailsPage-title-textAlign\": \"left\",\n ...defineCustomText(\"--beam-ProductDetailsPage-description\", {\n marginTop: \"0px\",\n fontSize: \"12px\",\n lineHeight: \"15px\",\n }),\n \"--beam-ProductDetailsPage-description-textAlign\": \"left\",\n ...defineCustomText(\"--beam-ProductDetailsPage-PPGFDisclosureTooltipContent\", {\n fontSize: \"12px\",\n lineHeight: \"16px\",\n color: \"#FFFFFF\",\n }),\n ...defineCustomBorder(\"--beam-ProductDetailsPage\"),\n \"--beam-ProductDetailsPage-close-display\": \"initial\",\n \"--beam-ProductDetailsPage-close-padding\": \"0\",\n \"--beam-ProductDetailsPage-image-placement\": \"inline-left\", // options: \"inline-left\" || \"block-center\"\n \"--beam-ProductDetailsPage-blockImage-alignSelf\": \"center\",\n \"--beam-ProductDetailsPage-promoPill-marginTop\": \"4px\",\n \"--beam-ProductDetailsPage-promoPill-alignSelf\": \"left\",\n \"--beam-ProductDetailsPage-shouldDisplayColon\": \"true\",\n \"--beam-ProductDetailsPage-shouldDisplayPromoPill\": \"true\",\n ...promoPillLabelConfigDefaults,\n };\n const remoteConfig = this.productDetailsPageDataController?.data?.config?.web?.theme || {};\n\n const config = { ...defaults, ...remoteConfig };\n\n const serializable = Object.create({\n toCSS() {\n return _cssVariableMap(this as Record<string, string>);\n },\n });\n\n return Object.assign(serializable, config);\n }\n\n static styles = [\n cssReset,\n cssResponsiveUtils,\n css`\n :host {\n font-family: var(--beam-fontFamily);\n font-style: var(--beam-fontStyle);\n font-size: var(--beam-fontSize);\n background-color: var(--beam-backgroundColor);\n color: var(--beam-textColor);\n max-width: var(--beam-ProductDetailsPage-maxWidth);\n word-break: normal;\n display: block;\n }\n .root {\n padding-top: var(--beam-ProductDetailsPage-paddingTop);\n padding-right: var(--beam-ProductDetailsPage-paddingRight);\n padding-bottom: var(--beam-ProductDetailsPage-paddingBottom);\n padding-left: var(--beam-ProductDetailsPage-paddingLeft);\n width: 100%;\n background-color: var(--beam-ProductDetailsPage-backgroundColor);\n display: flex;\n flex-direction: column;\n ${useCustomBorder(\"--beam-ProductDetailsPage\")}\n }\n /* When iconDisplay is inline-center */\n .inline-display {\n display: flex;\n }\n /* When iconDisplay is block-center */\n .block-display {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n .promo-container {\n order: 2;\n display: flex;\n margin-top: var(--beam-ProductDetailsPage-promoPill-marginTop);\n align-self: var(--beam-ProductDetailsPage-promoPill-alignSelf);\n }\n .content-inline {\n order: 3;\n display: flex;\n align-items: center;\n }\n /* Info block for both inline and block layout */\n .info-container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n text-align: var(--beam-ProductDetailsPage-InfoContainer-textAlign);\n line-height: var(--beam-ProductDetailsPage-InfoContainer-lineHeight);\n margin-top: var(--beam-ProductDetailsPage-InfoContainer-marginTop);\n margin-left: var(--beam-ProductDetailsPage-InfoContainer-marginLeft);\n }\n .block-display .info-container {\n order: 3;\n }\n .root.inline-display .icon-container,\n .root.inline-display .info-container {\n display: inline-flex;\n }\n .root.inline-display {\n flex-direction: column;\n }\n .icon-container {\n width: var(--beam-ProductDetailsPage-imageWidth);\n height: var(--beam-ProductDetailsPage-imageHeight);\n align-self: var(--beam-ProductDetailsPage-blockImage-alignSelf);\n flex-shrink: 0;\n }\n .icon-container > img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n .title {\n ${useCustomText(\"--beam-ProductDetailsPage-title\")}\n }\n .title-block {\n text-align: var(--beam-ProductDetailsPage-title-textAlign);\n line-height: var(--beam-ProductDetailsPage-title-lineHeight);\n }\n .info-inline-promo {\n margin-top: var(--beam-ProductDetailsPage-description-marginTop, 0px);\n }\n .description {\n ${useCustomText(\"--beam-ProductDetailsPage-description\")}\n }\n .description-block {\n text-align: var(--beam-ProductDetailsPage-description-textAlign);\n line-height: var(--beam-ProductDetailsPage-description-lineHeight);\n ${useCustomText(\"--beam-ProductDetailsPage-description\")}\n }\n .ppgf-disclosure-tooltip {\n --max-width: 268px;\n }\n .ppgf-disclosure-tooltip::part(body) {\n background-color: var(--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor);\n padding-top: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingTop);\n padding-right: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingRight);\n padding-bottom: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingBottom);\n padding-left: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingLeft);\n }\n .ppgf-disclosure-tooltip::part(base__arrow) {\n background-color: var(--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor);\n }\n .ppgf-disclosure-tooltip-content {\n display: flex;\n flex-direction: column;\n ${useCustomText(\"--beam-ProductDetailsPage-PPGFDisclosureTooltipContent\")}\n }\n .ppgf-disclosure-tooltip-copy > a,\n .ppgf-disclosure-close {\n pointer-events: auto;\n cursor: pointer;\n color: var(--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color);\n }\n .ppgf-disclosure-close {\n display: var(--beam-ProductDetailsPage-close-display);\n padding: var(--beam-ProductDetailsPage-close-padding);\n height: 12px;\n background: none;\n border: none;\n margin-left: auto;\n }\n .ppgf-disclosure-tooltip-copy > a:visited {\n color: var(--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color);\n }\n .ppgf-disclosure-tooltip-trigger {\n position: relative;\n }\n .ppgf-disclosure-tooltip-trigger-mask {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: calc(var(--beam-ProductDetailsPage-TooltipIcon-width) + 20px);\n height: calc(var(--beam-ProductDetailsPage-TooltipIcon-width) + 20px);\n }\n .ppgf-disclosure-tooltip-trigger::part(base) {\n line-height: 1;\n border: none;\n min-height: 0;\n min-width: 0;\n width: auto;\n color: var(--beam-ProductDetailsPage-TooltipIcon-color);\n }\n .ppgf-disclosure-tooltip-trigger::part(label) {\n padding: 0;\n }\n .ppgf-disclosure-tooltip-trigger > svg {\n width: var(--beam-ProductDetailsPage-TooltipIcon-width);\n color: var(--beam-ProductDetailsPage-TooltipIcon-color);\n height: auto;\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamProductDetailsPage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-product-details-page\": BeamProductDetailsPage;\n }\n}\n"],"names":["defineCustomBorder","namespace","borderRadius","borderStyle","borderColor","borderWidth","prefix","useCustomBorder","unsafeCSS","_info","html","strings","$","s","f","p","e","t","o","i","r","IMAGE_URL_REMOTE_CONFIG_KEY","BeamProductDetailsPage","LitElement","DEFAULT_BASE_URL","createScopedLocalStorage","evt","promoCodesFromPlugin","c","enforceConfig","beamCartId","getBeamCartId","BEAM_CART_COOKIE_NAME","manualPromoCodes","formattedPromos","formatStoreAndReturnPromoCodes","code","shouldSendPromos","isEmptyPromoData","BeamWidgetStoredPromoCodesEvent","WIDGET_NAMES","res","postProductDetailsPage","makeApiKeyHeader","AsyncController","SUPPORTED_LANGUAGES","parseJsonStringArray","cart","getPromoCodesFromCart","response","setPromoCodesInLocalStorage","setPromoCodeInCookie","BeamPromoCodesStoredEvent","changedProperties","requireNewDataProps","prop","data","loading","iconDisplay","isNonZero","value","shouldDisplayPromoPill","isPromoActive","hasValidImageHeight","hasValidTitleFontSize","isPromoPillVisible","shouldShowPunctuation","_errorMessage","imageUrl","shouldDisplayColon","title","localizeUserString","description","closeTimer","ariaTimer","stillHasFocus","onHide","onShow","tooltipContent","closeTooltip","skipDelay","keepOpenIfFocused","openTooltip","toggleTooltip","tooltip","onKeydownTrigger","onBlurTrigger","onClickTrigger","onMouseoverTooltip","onMouseoutTooltip","onKeydownTooltip","onClickClose","ppgfDisclosure","unsafeHTML","defaults","defineCustomText","promoPillLabelConfigDefaults","remoteConfig","config","_cssVariableMap","cssReset","cssResponsiveUtils","css","useCustomText","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
1
+ {"version":3,"file":"product-details-page.js","sources":["../../src/shared/fragments/custom-border.ts","../../src/shared/fragments/info.ts","../../src/components/product-details-page/strings.ts","../../src/components/product-details-page/index.ts"],"sourcesContent":["import { CSSResult, unsafeCSS } from \"lit\";\n\nexport const defineCustomBorder = (\n namespace = \"\",\n { borderRadius = \"0px\", borderStyle = \"unset\", borderColor = \"#000000\", borderWidth = \"1px\" } = {},\n): Record<string, string> => {\n const prefix = namespace.startsWith(\"--beam-\") ? namespace : `--beam-${namespace}`;\n return {\n [`${prefix}-borderRadius`]: borderRadius,\n [`${prefix}-borderStyle`]: borderStyle,\n [`${prefix}-borderColor`]: borderColor,\n [`${prefix}-borderWidth`]: borderWidth,\n };\n};\n\nexport const useCustomBorder = (\n namespace = \"\",\n { borderRadius = \"0px\", borderStyle = \"unset\", borderColor = \"#000000\", borderWidth = \"1px\" } = {},\n): CSSResult => {\n const prefix = namespace.startsWith(\"--beam-\") ? namespace : `--beam-${namespace}`;\n return unsafeCSS(`\\\n border-radius: var(${prefix}-borderRadius, ${borderRadius});\n border-style: var(${prefix}-borderStyle, ${borderStyle});\n border-color: var(${prefix}-borderColor, ${borderColor});\n border-width: var(${prefix}-borderWidth, ${borderWidth});\n `);\n};\n","import { html } from \"lit\";\n\nexport const _info = () =>\n html` <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n part=\"svg\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <path d=\"M12 16v-4\"></path>\n <path d=\"M12 8h.01\"></path>\n </svg>`;\n","export const strings = {\n en: {\n ctaTitle: () => `Choose Your Impact`,\n ctaMessage: () =>\n `At no extra cost, 1% of every order will be donated to a nonprofit you choose. Add to cart to choose. Powered by Beam`,\n inlineSeparator: () => `:`,\n },\n fr: {\n ctaTitle: () => `Choisissez votre impact`,\n ctaMessage: () =>\n `Sans frais supplémentaires, 1 % de chaque commande est reversé à l'association de votre choix. Ajoutez au panier pour choisir. Propulsé par Beam.`,\n inlineSeparator: () => `:`,\n },\n es: {\n ctaTitle: () => `Elige tu impacto`,\n ctaMessage: () =>\n `Sin coste adicional, el 1 % de cada pedido se dona a la organización sin ánimo de lucro que elijas. Añádelo al carrito para elegir. Impulsado por Beam.`,\n inlineSeparator: () => `:`,\n },\n de: {\n ctaTitle: () => `Wählen Sie Ihren Impact`,\n ctaMessage: () =>\n `Ohne zusätzliche Kosten wird 1 % jeder Bestellung an eine von Ihnen gewählte gemeinnützige Organisation gespendet. Zum Warenkorb hinzufügen, um auszuwählen. Unterstützt von Beam.`,\n inlineSeparator: () => `:`,\n },\n it: {\n ctaTitle: () => `Scegli il tuo impatto`,\n ctaMessage: () =>\n `L'1 % di ogni acquisto viene donato, senza alcun costo aggiuntivo, a un'organizzazione no-profit a tua scelta. Aggiungi al carrello per scegliere. Promosso da Beam.`,\n inlineSeparator: () => `:`,\n },\n pl: {\n ctaTitle: () => `Wybierz swój wpływ`,\n ctaMessage: () =>\n `1 % wartości każdego zamówienia przekazywany jest na wybraną przez Ciebie organizację non-profit – bez dodatkowych kosztów. Dodaj do koszyka, aby wybrać. Obsługiwane przez Beam.`,\n inlineSeparator: () => `:`,\n },\n ja: {\n ctaTitle: () => `寄付先をお選びください。`,\n ctaMessage: () =>\n `追加費用なしで、ご注文金額の1%を非営利団体へ寄付できます。ご希望の場合、カートに追加して寄付内容をお選びください。Powered by Beam`,\n inlineSeparator: () => `:`,\n },\n};\n","import { LitElement, css, html } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport { AsyncController } from \"../../shared/controllers/async-controller\";\nimport { postProductDetailsPage } from \"../../api-sdk/v3/routes\";\nimport { DEFAULT_BASE_URL, SUPPORTED_LANGUAGES, WIDGET_NAMES } from \"../../api-sdk/constants\";\nimport { LANGUAGES, TUrl } from \"../../api-sdk/types\";\nimport { MissingConfig } from \"../../utils/beam-errors\";\nimport { enforceConfig } from \"../../shared/enforce-config\";\nimport { _cssVariableMap } from \"../../shared/fragments/css-variable-map\";\nimport { localizeUserString } from \"../../shared/localize\";\nimport { _errorMessage } from \"../../shared/fragments/error-message-template\";\nimport { cssResponsiveUtils } from \"../../shared/responsive\";\nimport { defineCustomElement } from \"../../shared/defineCustomElement\";\nimport { cssReset } from \"../../shared/css-reset\";\nimport { defineCustomText, useCustomText } from \"../../shared/fragments/custom-text\";\nimport { defineCustomBorder, useCustomBorder } from \"../../shared/fragments/custom-border\";\n// shoelace html tag imports\nimport \"../../shared/shoelace-components\";\nimport \"@shoelace-style/shoelace/dist/components/tooltip/tooltip.js\";\nimport \"@shoelace-style/shoelace/dist/components/button/button.js\";\nimport { _info } from \"../../shared/fragments/info\";\nimport { promoPillLabelConfigDefaults } from \"../../shared/components/promo-pill-label\";\nimport {\n getPromoCodesFromCart,\n setPromoCodeInCookie,\n parseJsonStringArray,\n formatStoreAndReturnPromoCodes,\n setPromoCodesInLocalStorage,\n isEmptyPromoData,\n} from \"../../utils/promoManager\";\nimport { BEAM_CART_COOKIE_NAME, TBeamCartLocalStorage } from \"../../shared/cart-contents\";\nimport { createScopedLocalStorage } from \"../../utils/local-storage\";\nimport { makeApiKeyHeader } from \"../../utils/makeApiKeyHeader\";\nimport { BeamPromoCodesStoredEvent, BeamWidgetStoredPromoCodesEvent } from \"../../utils/events\";\nimport { getBeamCartId } from \"../../utils/cart\";\nimport { strings } from \"./strings\";\n\ntype RequiredConfig = {\n apiKey: string;\n storeId: number;\n};\ntype IAPIV3PostProductDetailsPage = Awaited<ReturnType<typeof postProductDetailsPage>>;\n\nconst IMAGE_URL_REMOTE_CONFIG_KEY = \"--beam-ProductDetailsPage-imageUrl\";\n\nexport class BeamProductDetailsPage extends LitElement {\n static tagName = \"beam-product-details-page\";\n\n @property({ type: String, reflect: true }) public baseUrl: TUrl = DEFAULT_BASE_URL;\n\n @property({ type: String, reflect: false }) apiKey?: RequiredConfig[\"apiKey\"];\n\n @property({ type: Number }) storeId?: number;\n\n @property({ type: String }) public lang: LANGUAGES = \"en\";\n\n @property({ type: Boolean }) public draftConfig = false;\n\n @property({ type: Boolean }) public debug = false;\n\n @property({ type: String }) remoteProductIdentifier?: string;\n\n @property({ type: String }) public promoCodes?: string;\n\n @property({ type: String }) public domain?: string;\n\n private localStorage = createScopedLocalStorage(this as LitElement & RequiredConfig);\n\n @state() private pluginPromoCodes: string[] = [];\n\n get configLang() {\n return SUPPORTED_LANGUAGES[this.lang] || \"en\";\n }\n\n get parsedPromoCodes(): string[] {\n return parseJsonStringArray(this.promoCodes);\n }\n\n private handlePromoCodesStored = (evt: BeamPromoCodesStoredEvent) => {\n const promoCodesFromPlugin = (evt.detail.promoCodes?.unvalidatedPromoCodes ?? [])\n .map((c) => c.attributes?.value ?? c.attributes?.url ?? \"\")\n .sort();\n this.pluginPromoCodes = promoCodesFromPlugin;\n };\n\n private getManualPromoCodes(): string[] {\n // Priority 1: Widget passed discount codes\n if (this.parsedPromoCodes && this.parsedPromoCodes.length > 0) {\n return this.parsedPromoCodes;\n }\n\n // Priority 2: Cart fallback\n const cart = this.localStorage.getItemJson<TBeamCartLocalStorage>(\"cart\");\n return cart ? getPromoCodesFromCart(cart) : [];\n }\n\n private async handleValidatedPromoCodes(response: IAPIV3PostProductDetailsPage) {\n if (response.promos?.validatedPromoCodes) {\n await Promise.all([\n setPromoCodesInLocalStorage({\n apiKey: this.apiKey,\n promoCodes: { validatedPromoCodes: response.promos.validatedPromoCodes, unvalidatedPromoCodes: [] },\n }),\n setPromoCodeInCookie({\n validatedPromoCodes: response.promos.validatedPromoCodes,\n domain: this.domain,\n }),\n ]);\n this.dispatchEvent(\n new BeamWidgetStoredPromoCodesEvent({\n source: WIDGET_NAMES.product_details_page,\n }),\n );\n }\n }\n\n async firstUpdated() {\n window.addEventListener(BeamPromoCodesStoredEvent.eventName, this.handlePromoCodesStored as EventListener);\n }\n\n disconnectedCallback() {\n window.removeEventListener(BeamPromoCodesStoredEvent.eventName, this.handlePromoCodesStored as EventListener);\n super.disconnectedCallback();\n }\n\n postProductDetailsPageData = async () => {\n if (!enforceConfig<RequiredConfig>([\"apiKey\", \"storeId\"], this)) throw new MissingConfig();\n const beamCartId = getBeamCartId(BEAM_CART_COOKIE_NAME, { apiKey: this.apiKey });\n\n const manualPromoCodes = this.getManualPromoCodes();\n const formattedPromos = formatStoreAndReturnPromoCodes(\n manualPromoCodes.map((code) => ({ value: code })),\n this.apiKey,\n );\n const shouldSendPromos = formattedPromos && !isEmptyPromoData(formattedPromos);\n\n if (shouldSendPromos) {\n this.dispatchEvent(\n new BeamWidgetStoredPromoCodesEvent({\n source: WIDGET_NAMES.product_details_page,\n }),\n );\n }\n const res = await postProductDetailsPage({\n baseUrl: this.baseUrl,\n headers: makeApiKeyHeader(this.apiKey),\n queryParams: {\n version: \"1.0.0\",\n lang: this.configLang,\n storeId: this.storeId,\n widgetName: WIDGET_NAMES.product_details_page,\n draftConfig: this.draftConfig,\n remoteProductIdentifier: this.remoteProductIdentifier,\n },\n requestBody: {\n ...(shouldSendPromos && { promos: formattedPromos }),\n beamCartId: beamCartId ? beamCartId : undefined,\n },\n });\n this.handleValidatedPromoCodes(res);\n return res;\n };\n\n private productDetailsPageDataController = new AsyncController<typeof this.postProductDetailsPageData>(\n this,\n this.postProductDetailsPageData,\n );\n\n async updated(changedProperties: Map<string, unknown>) {\n const requireNewDataProps = [\"storeId\", \"baseUrl\", \"lang\", \"apiKey\", \"pluginPromoCodes\", \"promoCodes\"];\n void this.pluginPromoCodes;\n for (const prop of requireNewDataProps) {\n if (changedProperties.has(prop)) {\n await this.productDetailsPageDataController.exec();\n break;\n }\n }\n }\n\n render() {\n const { data, loading } = this.productDetailsPageDataController;\n const iconDisplay = this.cssVariables[\"--beam-ProductDetailsPage-image-placement\"];\n const isNonZero = (value: string) => value !== \"0px\" && value !== \"0\";\n const shouldDisplayPromoPill = this.cssVariables[\"--beam-ProductDetailsPage-shouldDisplayPromoPill\"] === \"true\";\n const isPromoActive = !!data?.config?.web?.promo;\n const hasValidImageHeight = isNonZero(this.cssVariables[\"--beam-ProductDetailsPage-imageHeight\"]);\n const hasValidTitleFontSize = isNonZero(this.cssVariables[\"--beam-ProductDetailsPage-title-fontSize\"]);\n const isPromoPillVisible =\n shouldDisplayPromoPill && // Determines if the promo pill is enabled for the marketing version of the PDP\n isPromoActive && // Is promo currently active\n hasValidImageHeight && // Ensures the promo pill is not displayed for the subtext version of the PDP\n hasValidTitleFontSize; // Ensures the promo pill is not displayed for the subtext version of the PDP\n const shouldShowPunctuation = this.cssVariables[\"--beam-ProductDetailsPage-shouldDisplayColon\"] === \"true\"; // Determines if a colon should be displayed in promo display\n\n if (loading) {\n return html``;\n }\n if (data == null) {\n if (this.debug) {\n return _errorMessage({ error: new Error(\"No data\") });\n }\n return \"\";\n }\n return html`\n <style>\n :host {\n ${this.cssVariables.toCSS()}\n }\n </style>\n <div\n class=\"root ${iconDisplay === \"block-center\" ? \"block-display\" : \"inline-display\"}\"\n aria-label=\"product detail page Beam component\"\n >\n ${iconDisplay === \"block-center\"\n ? html`\n ${this.renderWidgetIcon(iconDisplay)}\n ${isPromoPillVisible\n ? html`\n <div class=\"promo-container\">\n <beam-promo-info-pill .promo=${data?.config?.web?.promo}></beam-promo-info-pill>\n </div>\n `\n : html``}\n <div class=\"info-container\">${this.renderContent(isPromoPillVisible, shouldShowPunctuation, data)}</div>\n `\n : html`\n ${isPromoPillVisible\n ? html`\n <div class=\"promo-container\">\n <beam-promo-info-pill .promo=${data?.config?.web?.promo}></beam-promo-info-pill>\n </div>\n `\n : html``}\n <div class=\"content-inline\">\n ${this.renderWidgetIcon(iconDisplay)}\n <div class=\"info-container\">${this.renderContent(isPromoPillVisible, shouldShowPunctuation, data)}</div>\n </div>\n `}\n </div>\n `;\n }\n\n renderWidgetIcon(iconDisplay: string) {\n const imageUrl = this.cssVariables[IMAGE_URL_REMOTE_CONFIG_KEY];\n\n if (!imageUrl) return html``;\n\n const isBlockDisplay = iconDisplay === \"block-center\";\n const containerStyle = isBlockDisplay ? 'style=\"order:1\"' : \"\";\n\n return html`\n <span class=\"icon-container\" part=\"icon\" ${containerStyle}>\n <img src=${imageUrl} part=\"icon\" aria-hidden=\"true\" alt=\"\" data-speedsize-ignore=\"true\" />\n </span>\n `;\n }\n\n renderContent(isPromoPillVisible: boolean, shouldDisplayColon: boolean, data: IAPIV3PostProductDetailsPage) {\n const title = localizeUserString(this.configLang, data?.config?.web?.title) || strings[this.configLang].ctaTitle();\n const description =\n localizeUserString(this.configLang, data?.config?.web?.description) || strings[this.configLang].ctaMessage();\n return isPromoPillVisible\n ? html`\n <div class=\"info-inline-promo\">\n <span class=\"title\">${title + (shouldDisplayColon ? strings[this.configLang].inlineSeparator() : \"\")}</span>\n <span class=\"description\"> <span>${description}</span> ${this.renderDisclosureTooltip()} </span>\n </div>\n `\n : html`\n <div class=\"title-block\">\n <h3 class=\"title\">${title}</h3>\n </div>\n <div class=\"description-block\">\n <span class=\"description\"> <span>${description}</span> ${this.renderDisclosureTooltip()} </span>\n </div>\n `;\n }\n\n renderCloseTooltipIcon() {\n return html`<svg\n aria-hidden=\"true\"\n width=\"11\"\n height=\"11\"\n viewBox=\"0 0 11 11\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.40836 5.40811L1.48828 1.48804M5.40836 5.40811L9.32843 9.32819M5.40836 5.40811L9.32843 1.48804M5.40836 5.40811L1.48828 9.32819\"\n stroke=\"white\"\n stroke-width=\"1.56803\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg> `;\n }\n\n /* PayPal Giving Fund Disclosure */\n renderDisclosureTooltip() {\n let closeTimer: number | undefined;\n let ariaTimer: number | undefined;\n\n // Does the PDP module still have the focusElement of the page?\n const stillHasFocus = () => {\n return document.activeElement?.tagName.toLowerCase() === this.tagName.toLowerCase();\n };\n\n const onHide = () => {\n // Even after animation is done, we need to give the browser a moment\n // to move focus to another element before setting aria-hidden\n clearTimeout(ariaTimer);\n ariaTimer = setTimeout(() => {\n this.renderRoot.querySelector(\".ppgf-disclosure-tooltip-content\")?.setAttribute(\"aria-hidden\", \"true\");\n }, 50);\n };\n\n const onShow = () => {\n clearTimeout(ariaTimer);\n const tooltipContent = this.renderRoot.querySelector(\".ppgf-disclosure-tooltip-content\") as HTMLElement;\n\n tooltipContent?.setAttribute(\"aria-hidden\", \"false\");\n\n tooltipContent?.focus();\n };\n\n // Close the tooltip\n const closeTooltip = ({\n skipDelay = false,\n keepOpenIfFocused = false,\n }: {\n skipDelay?: boolean;\n keepOpenIfFocused?: boolean;\n }) => {\n clearTimeout(closeTimer);\n closeTimer = setTimeout(\n () => {\n // if focus is still on this module, don't close anything\n if (keepOpenIfFocused && stillHasFocus()) {\n return;\n }\n (this.renderRoot.querySelector(\".ppgf-disclosure-tooltip\") as any)?.hide();\n },\n skipDelay ? 0 : 300,\n );\n };\n\n // Open the tooltip; resets the timeout for closing if one exists so we don't\n // close it again\n const openTooltip = () => {\n clearTimeout(closeTimer);\n (this.renderRoot.querySelector(\".ppgf-disclosure-tooltip\") as any)?.show();\n };\n\n // Toggle the tooltip\n const toggleTooltip = ({\n skipDelay = false,\n keepOpenIfFocused = false,\n }: {\n skipDelay?: boolean;\n keepOpenIfFocused?: boolean;\n }) => {\n const tooltip = this.renderRoot.querySelector(\".ppgf-disclosure-tooltip\") as any;\n if (tooltip) {\n if (tooltip.open) {\n closeTooltip({\n skipDelay,\n keepOpenIfFocused,\n });\n } else {\n openTooltip();\n }\n }\n };\n\n // Triggering the tooltip to open on enter\n const onKeydownTrigger = (evt: KeyboardEvent) => {\n if (evt.key === \"Enter\" || evt.key === \" \") {\n evt.preventDefault();\n toggleTooltip({\n skipDelay: true,\n keepOpenIfFocused: false,\n });\n }\n };\n\n // Blur on the trigger checks if focus is still on the PDP module before closing the tooltip\n const onBlurTrigger = () => {\n closeTooltip({\n skipDelay: false,\n keepOpenIfFocused: true,\n });\n };\n\n // If the icon is clicked, force open the tooltip (for mobile)\n const onClickTrigger = () => {\n openTooltip();\n };\n\n // Mouseover on the icon should open the tooltip every time\n const onMouseoverTooltip = () => {\n openTooltip();\n };\n\n // Mouseout of the icon should check if we came back within 100ms\n const onMouseoutTooltip = () => {\n closeTooltip({\n skipDelay: false,\n keepOpenIfFocused: false,\n });\n };\n\n // This is needed to close the tooltip if the focus goes from the tooltip content\n // to something outside the page\n const onKeydownTooltip = () => {\n // If we tab out of the PDP tooltip, allow the tooltip to close itself\n closeTooltip({\n skipDelay: true,\n keepOpenIfFocused: true,\n });\n };\n\n // If the X is clicked, force close the tooltip\n const onClickClose = () => {\n closeTooltip({\n skipDelay: true,\n keepOpenIfFocused: false,\n });\n };\n\n const ppgfDisclosure = this.productDetailsPageDataController.data?.ppgfDisclosure;\n return ppgfDisclosure\n ? html`<sl-tooltip\n class=\"ppgf-disclosure-tooltip\"\n part=\"tooltip\"\n trigger=\"manual\"\n tabindex=\"0\"\n @mouseenter=\"${onMouseoverTooltip}\"\n @mouseleave=\"${onMouseoutTooltip}\"\n @keydown=\"${onKeydownTooltip}\"\n @sl-after-hide=\"${onHide}\"\n @sl-after-show=\"${onShow}\"\n >\n <div\n class=\"ppgf-disclosure-tooltip-content\"\n id=\"BeamPPGFDisclosure\"\n slot=\"content\"\n part=\"tooltip-content\"\n aria-hidden=\"true\"\n >\n <button\n class=\"ppgf-disclosure-close\"\n role=\"button\"\n aria-label=\"Close tooltip\"\n part=\"tooltip-close-button\"\n @click=\"${onClickClose}\"\n >\n ${this.renderCloseTooltipIcon()}\n </button>\n <div class=\"ppgf-disclosure-tooltip-copy\" part=\"tooltip-disclosure-copy\">\n ${unsafeHTML(ppgfDisclosure.copy)}\n </div>\n </div>\n <span\n class=\"ppgf-disclosure-tooltip-trigger\"\n part=\"tooltip-disclosure-icon\"\n aria-label=\"PayPal Giving Fund Disclosure Tooltip\"\n role=\"button\"\n tabindex=\"0\"\n @keydown=\"${onKeydownTrigger}\"\n @blur=\"${onBlurTrigger}\"\n @click=\"${onClickTrigger}\"\n >\n <div class=\"ppgf-disclosure-tooltip-trigger-mask d-lg-none\"></div>\n <sl-button\n variant=\"text\"\n size=\"small\"\n class=\"ppgf-disclosure-tooltip-trigger\"\n part=\"tooltip-disclosure-button\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n circle\n >\n ${_info()}\n </sl-button>\n </span>\n </sl-tooltip>`\n : html``;\n }\n /* End PayPal Giving Fund Disclosure */\n\n public get cssVariables() {\n const defaults = {\n \"--beam-ProductDetailsPage-imageWidth\": \"24px\",\n \"--beam-ProductDetailsPage-imageHeight\": \"24px\",\n \"--beam-ProductDetailsPage-maxWidth\": \"346px\",\n \"--beam-ProductDetailsPage-paddingTop\": \"8px\",\n \"--beam-ProductDetailsPage-paddingRight\": \"12px\",\n \"--beam-ProductDetailsPage-paddingBottom\": \"8px\",\n \"--beam-ProductDetailsPage-paddingLeft\": \"15px\",\n \"--beam-ProductDetailsPage-InfoContainer-marginLeft\": \"8px\",\n \"--beam-ProductDetailsPage-InfoContainer-textAlign\": \"inherit\",\n \"--beam-ProductDetailsPage-InfoContainer-lineHeight\": \"15px\",\n \"--beam-ProductDetailsPage-InfoContainer-marginTop\": \"4px\",\n \"--beam-ProductDetailsPage-backgroundColor\": \"unset\",\n \"--beam-ProductDetailsPage-TooltipIcon-width\": \"10px\",\n \"--beam-ProductDetailsPage-TooltipIcon-color\": \"inherit\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor\": \"#000000\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingTop\": \"10px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingRight\": \"8px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingBottom\": \"10px\",\n \"--beam-ProductDetailsPage-PPGFDisclosure-paddingLeft\": \"8px\",\n \"--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color\": \"#5CA3FF\",\n ...defineCustomText(\"--beam-ProductDetailsPage-title\", {\n fontSize: \"12px\",\n fontWeight: \"bold\",\n }),\n \"--beam-ProductDetailsPage-title-textAlign\": \"left\",\n ...defineCustomText(\"--beam-ProductDetailsPage-description\", {\n marginTop: \"0px\",\n fontSize: \"12px\",\n lineHeight: \"15px\",\n }),\n \"--beam-ProductDetailsPage-description-textAlign\": \"left\",\n ...defineCustomText(\"--beam-ProductDetailsPage-PPGFDisclosureTooltipContent\", {\n fontSize: \"12px\",\n lineHeight: \"16px\",\n color: \"#FFFFFF\",\n }),\n ...defineCustomBorder(\"--beam-ProductDetailsPage\"),\n \"--beam-ProductDetailsPage-close-display\": \"initial\",\n \"--beam-ProductDetailsPage-close-padding\": \"0\",\n \"--beam-ProductDetailsPage-image-placement\": \"inline-left\", // options: \"inline-left\" || \"block-center\"\n \"--beam-ProductDetailsPage-blockImage-alignSelf\": \"center\",\n \"--beam-ProductDetailsPage-promoPill-marginTop\": \"4px\",\n \"--beam-ProductDetailsPage-promoPill-alignSelf\": \"left\",\n \"--beam-ProductDetailsPage-shouldDisplayColon\": \"true\",\n \"--beam-ProductDetailsPage-shouldDisplayPromoPill\": \"true\",\n ...promoPillLabelConfigDefaults,\n };\n const remoteConfig = this.productDetailsPageDataController?.data?.config?.web?.theme || {};\n\n const config = { ...defaults, ...remoteConfig };\n\n const serializable = Object.create({\n toCSS() {\n return _cssVariableMap(this as Record<string, string>);\n },\n });\n\n return Object.assign(serializable, config);\n }\n\n static styles = [\n cssReset,\n cssResponsiveUtils,\n css`\n :host {\n font-family: var(--beam-fontFamily);\n font-style: var(--beam-fontStyle);\n font-size: var(--beam-fontSize);\n background-color: var(--beam-backgroundColor);\n color: var(--beam-textColor);\n max-width: var(--beam-ProductDetailsPage-maxWidth);\n word-break: normal;\n display: block;\n }\n .root {\n padding-top: var(--beam-ProductDetailsPage-paddingTop);\n padding-right: var(--beam-ProductDetailsPage-paddingRight);\n padding-bottom: var(--beam-ProductDetailsPage-paddingBottom);\n padding-left: var(--beam-ProductDetailsPage-paddingLeft);\n width: 100%;\n background-color: var(--beam-ProductDetailsPage-backgroundColor);\n display: flex;\n flex-direction: column;\n ${useCustomBorder(\"--beam-ProductDetailsPage\")}\n }\n /* When iconDisplay is inline-center */\n .inline-display {\n display: flex;\n }\n /* When iconDisplay is block-center */\n .block-display {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n .promo-container {\n order: 2;\n display: flex;\n margin-top: var(--beam-ProductDetailsPage-promoPill-marginTop);\n align-self: var(--beam-ProductDetailsPage-promoPill-alignSelf);\n }\n .content-inline {\n order: 3;\n display: flex;\n align-items: center;\n }\n /* Info block for both inline and block layout */\n .info-container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n text-align: var(--beam-ProductDetailsPage-InfoContainer-textAlign);\n line-height: var(--beam-ProductDetailsPage-InfoContainer-lineHeight);\n margin-top: var(--beam-ProductDetailsPage-InfoContainer-marginTop);\n margin-left: var(--beam-ProductDetailsPage-InfoContainer-marginLeft);\n }\n .block-display .info-container {\n order: 3;\n }\n .root.inline-display .icon-container,\n .root.inline-display .info-container {\n display: inline-flex;\n }\n .root.inline-display {\n flex-direction: column;\n }\n .icon-container {\n width: var(--beam-ProductDetailsPage-imageWidth);\n height: var(--beam-ProductDetailsPage-imageHeight);\n align-self: var(--beam-ProductDetailsPage-blockImage-alignSelf);\n flex-shrink: 0;\n }\n .icon-container > img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n .title {\n ${useCustomText(\"--beam-ProductDetailsPage-title\")}\n }\n .title-block {\n text-align: var(--beam-ProductDetailsPage-title-textAlign);\n line-height: var(--beam-ProductDetailsPage-title-lineHeight);\n }\n .info-inline-promo {\n margin-top: var(--beam-ProductDetailsPage-description-marginTop, 0px);\n }\n .description {\n ${useCustomText(\"--beam-ProductDetailsPage-description\")}\n }\n .description-block {\n text-align: var(--beam-ProductDetailsPage-description-textAlign);\n line-height: var(--beam-ProductDetailsPage-description-lineHeight);\n ${useCustomText(\"--beam-ProductDetailsPage-description\")}\n }\n .ppgf-disclosure-tooltip {\n --max-width: 268px;\n }\n .ppgf-disclosure-tooltip::part(body) {\n background-color: var(--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor);\n padding-top: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingTop);\n padding-right: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingRight);\n padding-bottom: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingBottom);\n padding-left: var(--beam-ProductDetailsPage-PPGFDisclosure-paddingLeft);\n }\n .ppgf-disclosure-tooltip::part(base__arrow) {\n background-color: var(--beam-ProductDetailsPage-PPGFDisclosure-backgroundColor);\n }\n .ppgf-disclosure-tooltip-content {\n display: flex;\n flex-direction: column;\n ${useCustomText(\"--beam-ProductDetailsPage-PPGFDisclosureTooltipContent\")}\n }\n .ppgf-disclosure-tooltip-copy > a,\n .ppgf-disclosure-close {\n pointer-events: auto;\n cursor: pointer;\n color: var(--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color);\n }\n .ppgf-disclosure-close {\n display: var(--beam-ProductDetailsPage-close-display);\n padding: var(--beam-ProductDetailsPage-close-padding);\n height: 12px;\n background: none;\n border: none;\n margin-left: auto;\n }\n .ppgf-disclosure-tooltip-copy > a:visited {\n color: var(--beam-ProductDetailsPage-PPGFDisclosureHyperlink-color);\n }\n .ppgf-disclosure-tooltip-trigger {\n position: relative;\n }\n .ppgf-disclosure-tooltip-trigger-mask {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: calc(var(--beam-ProductDetailsPage-TooltipIcon-width) + 20px);\n height: calc(var(--beam-ProductDetailsPage-TooltipIcon-width) + 20px);\n }\n .ppgf-disclosure-tooltip-trigger::part(base) {\n line-height: 1;\n border: none;\n min-height: 0;\n min-width: 0;\n width: auto;\n color: var(--beam-ProductDetailsPage-TooltipIcon-color);\n }\n .ppgf-disclosure-tooltip-trigger::part(label) {\n padding: 0;\n }\n .ppgf-disclosure-tooltip-trigger > svg {\n width: var(--beam-ProductDetailsPage-TooltipIcon-width);\n color: var(--beam-ProductDetailsPage-TooltipIcon-color);\n height: auto;\n }\n `,\n ];\n}\n\ndefineCustomElement(BeamProductDetailsPage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"beam-product-details-page\": BeamProductDetailsPage;\n }\n}\n"],"names":["defineCustomBorder","namespace","borderRadius","borderStyle","borderColor","borderWidth","prefix","useCustomBorder","unsafeCSS","_info","html","strings","$","s","f","p","e","t","o","i","r","IMAGE_URL_REMOTE_CONFIG_KEY","BeamProductDetailsPage","LitElement","DEFAULT_BASE_URL","createScopedLocalStorage","evt","promoCodesFromPlugin","c","enforceConfig","beamCartId","getBeamCartId","BEAM_CART_COOKIE_NAME","manualPromoCodes","formattedPromos","formatStoreAndReturnPromoCodes","code","shouldSendPromos","isEmptyPromoData","BeamWidgetStoredPromoCodesEvent","WIDGET_NAMES","res","postProductDetailsPage","makeApiKeyHeader","AsyncController","SUPPORTED_LANGUAGES","parseJsonStringArray","cart","getPromoCodesFromCart","response","setPromoCodesInLocalStorage","setPromoCodeInCookie","BeamPromoCodesStoredEvent","changedProperties","requireNewDataProps","prop","data","loading","iconDisplay","isNonZero","value","shouldDisplayPromoPill","isPromoActive","hasValidImageHeight","hasValidTitleFontSize","isPromoPillVisible","shouldShowPunctuation","_errorMessage","imageUrl","shouldDisplayColon","title","localizeUserString","description","closeTimer","ariaTimer","stillHasFocus","onHide","onShow","tooltipContent","closeTooltip","skipDelay","keepOpenIfFocused","openTooltip","toggleTooltip","tooltip","onKeydownTrigger","onBlurTrigger","onClickTrigger","onMouseoverTooltip","onMouseoutTooltip","onKeydownTooltip","onClickClose","ppgfDisclosure","unsafeHTML","defaults","defineCustomText","promoPillLabelConfigDefaults","remoteConfig","config","_cssVariableMap","cssReset","cssResponsiveUtils","css","useCustomText","__decorateClass","property","state","defineCustomElement"],"mappings":"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"}
@@ -2,13 +2,10 @@ import * as lit_html from 'lit-html';
2
2
  import * as lit from 'lit';
3
3
  import { LitElement, PropertyValues } from 'lit';
4
4
  import * as lodash from 'lodash';
5
- import '../chunks/progress-bar-CveZ8E6Q.esm.js';
6
- import '../chunks/promo-pill-label-BXRqZHET.esm.js';
7
- import './beam-partner-logos.js';
8
- import { a as TId, T as TNumericId } from '../chunks/types-CPxMwnoR.esm.js';
9
- import { T as TCart } from '../chunks/cart-contents-CLT7p7Gd.esm.js';
5
+ import { a as TId, T as TNumericId } from '../chunks/types-D_PLq1pj.esm.js';
6
+ import { T as TCart } from '../chunks/cart-contents-CEoSx3y4.esm.js';
10
7
  import { L as LANGUAGES } from '../chunks/types-DfRc36jU.esm.js';
11
- import '../chunks/openapi-spec-Bk7E2QQP.esm.js';
8
+ import '../chunks/openapi-spec-B4z4_CMq.esm.js';
12
9
 
13
10
  interface TRequiredConfig {
14
11
  apiKey: string;
@@ -1,2 +1,2 @@
1
- import"../chunks/lit-WqMxC_PA.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/localize-Btu9xYcE.esm.js";import"../chunks/routes-DguZveS3.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/promo-pill-label-WGLW3bql.esm.js";import"./beam-partner-logos.esm.js";import"../chunks/enforce-config-CZ3ToOgr.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/local-storage.esm.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";import{B as h}from"../chunks/index-C5gnsl34.esm.js";import"../chunks/events-Dki0ka4F.esm.js";import"../utils/logger.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/_share-dialog-dependencies-dHlBUqo0.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";export{h as BeamRedeemTransaction};
1
+ import"../chunks/lit-JRlupCB5.esm.js";import"../chunks/lodash-BSs6Il-c.esm.js";import"../chunks/localize-Dg7NgKIP.esm.js";import"../chunks/routes-DSu5s3K7.esm.js";import"../chunks/enforce-config-DHnpgqSK.esm.js";import"../chunks/loading-template-BFvXaTlD.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/local-storage.esm.js";import"../chunks/css-card-grid-DixMt6ek.esm.js";import{B as j}from"../chunks/index-UMeAzKTG.esm.js";import"../chunks/events-COWOQoLW.esm.js";import"../chunks/progress-bar-B82FOT8n.esm.js";import"./beam-partner-logos.esm.js";import"../chunks/promo-pill-label-D_4zJ7uy.esm.js";import"../utils/logger.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../utils/memoize-last.esm.js";import"../chunks/_share-dialog-dependencies-Bk60ibnw.esm.js";import"../chunks/vendor-ckSdd6aH.esm.js";export{j as BeamRedeemTransaction};
2
2
  //# sourceMappingURL=redeem-transaction.esm.js.map
@@ -1,2 +1,2 @@
1
- import"../chunks/lit-WqMxC_PA.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/localize-C25pEGnx.esm.js";import"../chunks/routes-BvX92EDq.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/promo-pill-label-ByFGhdxh.esm.js";import"./beam-partner-logos.js";import"../chunks/enforce-config-Ba1JkOHs.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/local-storage.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";import{B as h}from"../chunks/index-2OQzw7UI.esm.js";import"../chunks/events-Dki0ka4F.esm.js";import"../utils/logger.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/_share-dialog-dependencies-BG0p8uUr.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";export{h as BeamRedeemTransaction};
1
+ import"../chunks/lit-JRlupCB5.esm.js";import"../chunks/lodash-BSs6Il-c.esm.js";import"../chunks/localize-DkAbsh05.esm.js";import"../chunks/routes-BIMwJ8u9.esm.js";import"../chunks/enforce-config-DUbQnaLO.esm.js";import"../chunks/loading-template-BFvXaTlD.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/local-storage.js";import"../chunks/css-card-grid-DixMt6ek.esm.js";import{B as j}from"../chunks/index-BEEmYYxP.esm.js";import"../chunks/events-COWOQoLW.esm.js";import"../chunks/progress-bar-B82FOT8n.esm.js";import"./beam-partner-logos.js";import"../chunks/promo-pill-label-DcsiJS_N.esm.js";import"../utils/logger.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../utils/memoize-last.js";import"../chunks/_share-dialog-dependencies-D6vA_2f6.esm.js";import"../chunks/vendor-ckSdd6aH.esm.js";export{j as BeamRedeemTransaction};
2
2
  //# sourceMappingURL=redeem-transaction.js.map
@@ -2,22 +2,10 @@ import * as lit_html from 'lit-html';
2
2
  import * as lit from 'lit';
3
3
  import { LitElement, PropertyValues } from 'lit';
4
4
  import * as lodash from 'lodash';
5
- import '../chunks/progress-bar-CveZ8E6Q.esm.js';
6
- import '../chunks/promo-pill-label-BXRqZHET.esm.js';
7
- import { T as TNumericId } from '../chunks/types-CPxMwnoR.esm.js';
5
+ import { T as TNumericId } from '../chunks/types-D_PLq1pj.esm.js';
8
6
  import { L as LANGUAGES } from '../chunks/types-DfRc36jU.esm.js';
9
- import { T as TCart } from '../chunks/cart-contents-CLT7p7Gd.esm.js';
10
- import '../chunks/openapi-spec-Bk7E2QQP.esm.js';
11
-
12
- declare class BeamNotificationBlip extends LitElement {
13
- static get styles(): lit.CSSResult;
14
- render(): lit_html.TemplateResult<1>;
15
- }
16
- declare global {
17
- interface HTMLElementTagNameMap {
18
- "beam-notification-blip": BeamNotificationBlip;
19
- }
20
- }
7
+ import { T as TCart } from '../chunks/cart-contents-CEoSx3y4.esm.js';
8
+ import '../chunks/openapi-spec-B4z4_CMq.esm.js';
21
9
 
22
10
  interface RequiredConfig {
23
11
  apiKey: string;
@@ -1,4 +1,4 @@
1
- import{h as D,f as L,y as d,g as f,t as P,q as v,u as J,m as z,k as G}from"../chunks/lit-WqMxC_PA.esm.js";import{i as Q,d as X}from"../chunks/lodash-D3TLHRR_.esm.js";import{u as S,A,d as h,a as Y,_ as B,i as m}from"../chunks/localize-Btu9xYcE.esm.js";import{D as Z,W as C,d as ee,h as te,S as oe}from"../chunks/routes-DguZveS3.esm.js";import{p as ie}from"../chunks/progress-bar-DF7UuuHb.esm.js";import{p as ne}from"../chunks/promo-pill-label-WGLW3bql.esm.js";import{c as ae,d as re,e as I}from"../chunks/enforce-config-CZ3ToOgr.esm.js";import{_ as se}from"../chunks/loading-template-DG4lkIIc.esm.js";import{f as M,c as k,k as le,i as E,j as ce,g as T,a as F}from"../chunks/events-Dki0ka4F.esm.js";import{logger as pe}from"../utils/logger.esm.js";import{createScopedLocalStorage as de}from"../utils/local-storage.esm.js";import{formatStoreAndReturnPromoCodes as fe,isEmptyPromoData as me,parseJsonStringArray as ge,getPromoCodesFromCart as ue,setPromoCodesInLocalStorage as he,setPromoCodeInCookie as be}from"../utils/promoManager.esm.js";import{c as Se}from"../chunks/responsive-BR8qUfBa.esm.js";import{B as K}from"../chunks/cart-contents-DkoytiZh.esm.js";import{getBeamCartId as W,getExternalCartId as _}from"../utils/cart.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/_share-dialog-dependencies-dHlBUqo0.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../utils/cookies.esm.js";class Ne extends D{static get styles(){return L`
1
+ import{a as D,i as L,b as d,n as f,r as P,e as v,m as J,j as z,h as G}from"../chunks/lit-JRlupCB5.esm.js";import{i as Q,d as X}from"../chunks/lodash-BSs6Il-c.esm.js";import{u as S,A,d as u,a as Y,_ as B,i as m}from"../chunks/localize-Dg7NgKIP.esm.js";import{D as Z,W as C,d as ee,h as te,S as oe}from"../chunks/routes-DSu5s3K7.esm.js";import{c as ie,d as ne,e as I}from"../chunks/enforce-config-DHnpgqSK.esm.js";import{_ as ae}from"../chunks/loading-template-BFvXaTlD.esm.js";import{f as M,c as E,l as re,j as k,k as se,g as T,a as F}from"../chunks/events-COWOQoLW.esm.js";import{logger as le}from"../utils/logger.esm.js";import{createScopedLocalStorage as ce}from"../utils/local-storage.esm.js";import{formatStoreAndReturnPromoCodes as pe,isEmptyPromoData as de,parseJsonStringArray as fe,getPromoCodesFromCart as me,setPromoCodesInLocalStorage as ge,setPromoCodeInCookie as he}from"../utils/promoManager.esm.js";import{p as ue}from"../chunks/progress-bar-B82FOT8n.esm.js";import{c as be}from"../chunks/responsive-CIV4sFdH.esm.js";import{B as W}from"../chunks/cart-contents-DkoytiZh.esm.js";import{p as Se}from"../chunks/promo-pill-label-D_4zJ7uy.esm.js";import{getBeamCartId as K,getExternalCartId as _}from"../utils/cart.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../utils/memoize-last.esm.js";import"../utils/cookies.esm.js";import"../chunks/_share-dialog-dependencies-Bk60ibnw.esm.js";import"../chunks/vendor-ckSdd6aH.esm.js";class Ne extends D{static get styles(){return L`
2
2
  :host {
3
3
  }
4
4
 
@@ -18,7 +18,7 @@ import{h as D,f as L,y as d,g as f,t as P,q as v,u as J,m as z,k as G}from"../ch
18
18
  aria-label="Notification Blip"
19
19
  >
20
20
  <span class="notification-blip" part="notification-blip" role="button" tabindex="0" aria-hidden="true"></span>
21
- </div>`}}customElements.get("beam-notification-blip")||customElements.define("beam-notification-blip",Ne);const ve={"--beam-notificationBlip-color-background":"#000"},g={en:{beamAttribution:()=>"Powered by Beam",ctaTitle:()=>"Choose your impact",ctaPromoPrefixMessage:()=>"At no extra cost,",ctaPromoMessage:({donationPercentage:o="1"}={})=>`select a nonprofit and ${o}% will be donated for you.`,ctaMessage:({donationPercentage:o="1"}={})=>`At no extra cost, select a nonprofit and ${o}% will be donated for you.`,inlineSeparator:()=>": "},fr:{beamAttribution:()=>"Optimis\xE9 par Beam",ctaTitle:()=>"Choisissez votre cause",ctaPromoPrefixMessage:()=>"Sans frais suppl\xE9mentaires,",ctaPromoMessage:({donationPercentage:o="1"}={})=>`s\xE9lectionnez une association et ${o} % sera revers\xE9 en votre nom.`,ctaMessage:({donationPercentage:o="1"}={})=>`Sans frais suppl\xE9mentaires, choisissez une association et ${o} % de votre commande sera revers\xE9 en votre nom.`,inlineSeparator:()=>" : "},de:{beamAttribution:()=>"Unterst\xFCtzt von Beam",ctaTitle:()=>"W\xE4hle deine Wirkung",ctaPromoPrefixMessage:()=>"Ohne zus\xE4tzliche Kosten,",ctaPromoMessage:({donationPercentage:o="1"}={})=>`w\xE4hle eine Organisation und ${o}% deines Einkaufs werden gespendet.`,ctaMessage:({donationPercentage:o="1"}={})=>`Ohne zus\xE4tzliche Kosten kannst du eine gemeinn\xFCtzige Organisation ausw\xE4hlen und ${o}% deiner Bestellung werden gespendet.`,inlineSeparator:()=>": "},es:{beamAttribution:()=>"Ofrecido por Beam",ctaTitle:()=>"Elige tu impacto",ctaPromoPrefixMessage:()=>"Sin coste adicional,",ctaPromoMessage:({donationPercentage:o="1"}={})=>`elige una organizaci\xF3n y donaremos el ${o}% en tu nombre.`,ctaMessage:({donationPercentage:o="1"}={})=>`Sin coste adicional, elige una organizaci\xF3n sin fines de lucro y donaremos el ${o}% de tu compra en tu nombre.`,inlineSeparator:()=>": "},it:{beamAttribution:()=>"Gestito da Beam",ctaTitle:()=>"Scegli il tuo impatto",ctaPromoPrefixMessage:()=>"Senza costi aggiuntivi,",ctaPromoMessage:({donationPercentage:o="1"}={})=>`scegli un'organizzazione e doneremo l\u2019${o}% per te.`,ctaMessage:({donationPercentage:o="1"}={})=>`Senza costi aggiuntivi, seleziona un'organizzazione no-profit e doneremo l\u2019${o}% del tuo acquisto per te.`,inlineSeparator:()=>": "},pl:{beamAttribution:()=>"Obs\u0142ugiwane przez Beam",ctaTitle:()=>"Wybierz sw\xF3j wp\u0142yw",ctaPromoPrefixMessage:()=>"Bez dodatkowych koszt\xF3w,",ctaPromoMessage:({donationPercentage:o="1"}={})=>`wybierz organizacj\u0119, a ${o}% zostanie przekazane w Twoim imieniu.`,ctaMessage:({donationPercentage:o="1"}={})=>`Bez dodatkowych koszt\xF3w wybierz organizacj\u0119, kt\xF3rej przeka\u017Cemy ${o}% warto\u015Bci Twojego zam\xF3wienia w Twoim imieniu.`,inlineSeparator:()=>": "},ja:{beamAttribution:()=>"Powered by Beam",ctaTitle:()=>"\u5BC4\u4ED8\u5148\u3092\u304A\u9078\u3073\u304F\u3060\u3055\u3044\u3002",ctaPromoPrefixMessage:()=>"\u8FFD\u52A0\u8CBB\u7528\u306A\u3057\u3067\u3001",ctaPromoMessage:({donationPercentage:o="1"}={})=>`\u975E\u55B6\u5229\u56E3\u4F53\u3092\u9078\u3076\u3068\u3001${o}%\u304C\u305D\u306E\u56E3\u4F53\u306B\u5BC4\u4ED8\u3055\u308C\u307E\u3059\u3002`,ctaMessage:({donationPercentage:o="1"}={})=>`\u8FFD\u52A0\u8CBB\u7528\u306A\u3057\u3067\u975E\u55B6\u5229\u56E3\u4F53\u3092\u304A\u9078\u3073\u3044\u305F\u3060\u304F\u3068\u3001\u3054\u8CFC\u5165\u91D1\u984D\u306E${o}%\u304C\u5BC4\u4ED8\u3055\u308C\u307E\u3059\u3002`,inlineSeparator:()=>"\uFF1A"}};var Ce=Object.defineProperty,p=(o,e,t,n)=>{for(var i=void 0,a=o.length-1,r;a>=0;a--)(r=o[a])&&(i=r(e,t,i)||i);return i&&Ce(e,t,i),i};let j=!1;class l extends D{constructor(){super(...arguments),this.baseUrl=Z,this.selectedNonprofitId=null,this.lang="en",this.debug=!1,this.draftConfig=!1,this.lastSelectionActionDate=new Date,this.isMobile=window.innerWidth<768,this.enableNonprofitDeselection=!1,this.didTryToCreateNewSelectionFromCache=!1,this.pluginPromoCodes=[],this.handlePromoCodesStored=e=>{const t=(e.detail.promoCodes?.unvalidatedPromoCodes??[]).map(n=>n.attributes?.value??n.attributes?.url??"").sort();this.pluginPromoCodes=t},this.getChainNonprofits=async()=>{I(["apiKey"],this);const e=W(K,{apiKey:this.apiKey}),t=_("cart",{apiKey:this.apiKey}),n=this.cart?.content?{schema:this.cart?.schema,content:this.cart?.content}:void 0,i=this.getManualPromoCodes(),a=fe(i.map(u=>({value:u})),this.apiKey),r=a&&!me(a);r&&this.dispatchEvent(new M({source:C.select_nonprofit}));const c=await ee({baseUrl:this.baseUrl,apiRoot:"/api/v3",headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{storeId:this.storeId,widgetName:C.select_nonprofit,postalCode:this.postalCode,countryCode:this.countryCode,beamCartId:e||void 0,cartId:t||void 0,version:"1.0.0",lang:this.configLang,...r&&{promos:a},options:{config:{draftConfig:this.draftConfig}},cart:n}});return this.enableNonprofitDeselection=!!c.config.enableNonprofitDeselection,this.selectedNonprofitId!==null&&this.selectedNonprofitId&&!c.nonprofits.map(u=>u.nonprofit.id).includes(this.selectedNonprofitId)&&(this.selectedNonprofitId=null,await this.postSelectNonprofit({selectedNonprofitId:null}),this.localStorage.setItem("nonprofit",null)),c.store?.id&&c.store.id!==this.storeId&&(this.storeId=c.store.id),await this.createNewSelectionForCachedNonprofit(),this.localStorage.setItemJson("chainNonprofits",{createdAt:new Date,data:c}),this.handleValidatedPromoCodes(c),c},this.postSelectNonprofit=async({selectedNonprofitId:e})=>{I(["apiKey","storeId"],this);const t=new Date;this.lastSelectionActionDate=t;const n=_("cart",{apiKey:this.apiKey}),i=W(K,{apiKey:this.apiKey}),a=await te({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{nonprofitId:e,selectionId:this.selectionId,storeId:this.storeId,cartId:n||void 0,beamCartId:i||void 0,creationMethod:"cart",postalCode:this.postalCode,countryCode:this.countryCode}});this.selectionId=a?.selectionId,this.localStorage.setItem("transaction",this.selectionId),this.localStorage.setItem("nonprofit",e),this.localStorage.setItem("nonprofit_selected_at",t.toISOString()),await this.updateComplete;const r=this.getNonprofitById(e);e!==null&&this.dispatchEvent(new k({selectedNonprofitId:e,selectionId:this.selectionId,nonprofitName:r?.nonprofit?.name??null,source:C.select_nonprofit,timestamp:t})),e===null&&this.dispatchEvent(new le({newNonprofitId:null,selectionId:this.selectionId,timestamp:t}))},this.nonprofitListDataController=new A(this,this.getChainNonprofits),this.selectionDataController=new A(this,this.postSelectNonprofit),this.localStorage=de(this),this.handleCartChange=e=>{this.cart=e.detail},this.handleNonprofitSelect=e=>{const{selectionId:t,selectedNonprofitId:n,timestamp:i}=e.detail;!i||i<this.lastSelectionActionDate||(this.lastSelectionActionDate=i,this.selectionId!==t&&(this.selectionId=t),this.selectedNonprofitId!==n&&(this.selectedNonprofitId=n??null))},this.handleInitialNonprofitSync=e=>{if(j)return;const{nonprofitId:t,selectionId:n}=e.detail,i=t!==void 0&&this.selectedNonprofitId!==t,a=n!==void 0&&this.selectionId!==n;(i||a)&&(i&&(this.selectedNonprofitId=t),a&&(this.selectionId=n),this.requestUpdate(),j=!0,window.removeEventListener(E.eventName,this.handleInitialNonprofitSync))},this.makeHandleSelect=(e,t,n)=>async i=>{const a=this.selectedNonprofitId;if(i instanceof KeyboardEvent){let r=null;switch(i.key){case"ArrowUp":case"ArrowLeft":t===0?r=n[n.length-1]:r=n[t-1],i.preventDefault();break;case"ArrowRight":case"ArrowDown":t===n.length-1?r=n[0]:r=n[t+1],i.preventDefault();break;case"Enter":case" ":i.preventDefault();break;default:return}if(r){a!=null&&(this.selectedNonprofitId=r.nonprofit.id);const c=this.renderRoot.querySelector(`[data-value="${r.nonprofit.id}"]`);c!==null&&(c.tabIndex=0,c.focus());return}}if(i.currentTarget instanceof HTMLElement)if(a===e)if(this.enableNonprofitDeselection)this.selectedNonprofitId=null,this.localStorage.setItem("nonprofit",null);else return;else this.selectedNonprofitId=e;this.dispatchEvent(new ce({})),window.removeEventListener(E.eventName,this.handleInitialNonprofitSync),await this.selectionDataController.exec({selectedNonprofitId:this.selectedNonprofitId})},this.evaluateBreakPoints=X(()=>{this.isMobile=window.innerWidth<768},50,{maxWait:50,leading:!0})}get configLang(){return oe[this.lang]||"en"}get parsedPromoCodes(){return ge(this.promoCodes)}getManualPromoCodes(){if(this.parsedPromoCodes&&this.parsedPromoCodes.length>0)return this.parsedPromoCodes;const e=this.localStorage.getItemJson("cart");return e?ue(e):[]}async handleValidatedPromoCodes(e){e.promos?.validatedPromoCodes&&(await Promise.all([he({apiKey:this.apiKey,promoCodes:{validatedPromoCodes:e.promos.validatedPromoCodes,unvalidatedPromoCodes:[]}}),be({validatedPromoCodes:e.promos.validatedPromoCodes,domain:this.domain})]),this.dispatchEvent(new M({source:C.select_nonprofit})))}getNonprofitById(e){return e?this.nonprofitListDataController?.data?.nonprofits.find(t=>t.nonprofit.id===e):null}async connectedCallback(){super.connectedCallback(),window.addEventListener(E.eventName,this.handleInitialNonprofitSync),window.addEventListener(k.eventName,this.handleNonprofitSelect),this.nonprofitListDataController.loading=!0,window.addEventListener(T.eventName,this.handleCartChange),window.addEventListener("resize",this.evaluateBreakPoints)}async firstUpdated(){await this.restoreStateFromCache(),window.addEventListener(F.eventName,this.handlePromoCodesStored)}async updated(e){const t=["baseUrl","storeId","apiKey","countryCode","postalCode","cart","lang","promoCodes","pluginPromoCodes"];this.pluginPromoCodes;for(const n of t)if(e.has(n)){await this.nonprofitListDataController.exec();break}}disconnectedCallback(){window.removeEventListener(T.eventName,this.handleCartChange),window.removeEventListener("resize",this.evaluateBreakPoints),window.removeEventListener(F.eventName,this.handlePromoCodesStored),window.removeEventListener(k.eventName,this.handleNonprofitSelect),super.disconnectedCallback()}async restoreStateFromCache(){try{const e=new Date().valueOf();this.cart=this.localStorage.getItemJson("cart")??void 0;const t=30*24*60*60*1e3,n=this.localStorage.getItem("nonprofit_selected_at")??0,i=e>new Date(n).valueOf()+t;i?i&&this.selectedNonprofitId!==null&&(await this.postSelectNonprofit({selectedNonprofitId:null}),this.localStorage.setItem("nonprofit",null)):(this.selectedNonprofitId=parseInt(this.localStorage.getItem("nonprofit")||"")||null,this.selectionId=this.localStorage.getItem("transaction")??void 0);const{createdAt:a=0,data:r}=this.localStorage.getItemJson("chainNonprofits")||{},c=2*60*60*1e3;!(e>new Date(a).valueOf()+c)&&this.nonprofitListDataController.loading&&(this.nonprofitListDataController.data=r,this.nonprofitListDataController.loading=!1)}catch(e){pe.error(e)}}async createNewSelectionForCachedNonprofit(){if(I(["apiKey"],this),!(!this.storeId||this.didTryToCreateNewSelectionFromCache))try{this.didTryToCreateNewSelectionFromCache=!0}catch{}}get cssVariables(){const e={"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit",...ie,"--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-borderWidth":"1px","--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","--beam-SelectNonprofit-details-padding":"10px",...h("--beam-SelectNonprofit-title",{fontSize:"1.25em",fontWeight:"bold"}),"--beam-SelectNonprofit-header-inline-lineHeight":"inherit",...h("--beam-SelectNonprofit-title-inline",{fontWeight:"bold"}),"--beam-SelectNonprofit-title-inline-textTransform":"none","--beam-SelectNonprofit-title-block-margin-right":"8px",...h("--beam-SelectNonprofit-description",{marginTop:"0.5em"}),...h("--beam-SelectNonprofit-description-inline"),...h("--beam-SelectNonprofit-details-cause",{fontSize:"0.85em",fontWeight:"bold"}),...h("--beam-SelectNonprofit-details-beamAttribution",{fontSize:"0.85em"}),...h("--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",...h("--beam-SelectNonprofit-details-fundingProgressLabel",{fontSize:"0.85em"}),...ve,...ne,"--beam-SelectNonprofit-promo-block-header-justifyContent":"initial","--beam-SelectNonprofit-notification-blip-top":"4px","--beam-SelectNonprofit-notification-blip-left":"50%","--beam-SelectNonprofit-display-notification-blip":"true","--beam-SelectNonprofit-enable-inline-header":"false","--beam-SelectNonprofit-force-multiline-header":"false"},t=this.nonprofitListDataController?.data?.config?.web?.theme||{},n={...e,...t};return Object.assign(Object.create({toCSS(){return Y(this)}}),n)}render(){const{selectedNonprofitId:e}=this,{data:t,loading:n}=this.nonprofitListDataController;if(n&&!t)return se();if(this.nonprofitListDataController.error)return this.debug?B({error:this.nonprofitListDataController.error}):"";if(this.selectionDataController.error&&this.debug)return B({error:this.selectionDataController.error});const i=t?.nonprofits||[],a=i.find(s=>s.nonprofit.id===e)||null,r=!!t?.config?.web?.promo,c=i.some(s=>!s.promo||!s.promo.isActive),u=s=>this.cssVariables[s],O=u("--beam-SelectNonprofit-display-notification-blip")==="true",y=u("--beam-SelectNonprofit-title-textAlign")==="center",U=u("--beam-SelectNonprofit-enable-inline-header")==="true",b=u("--beam-SelectNonprofit-force-multiline-header")!=="true"&&(U||this.isMobile),$=d`<h3
21
+ </div>`}}customElements.get("beam-notification-blip")||customElements.define("beam-notification-blip",Ne);const ve={"--beam-notificationBlip-color-background":"#000"},g={en:{beamAttribution:()=>"Powered by Beam",ctaTitle:()=>"Choose your impact",ctaPromoPrefixMessage:()=>"At no extra cost,",ctaPromoMessage:({donationPercentage:o="1"}={})=>`select a nonprofit and ${o}% will be donated for you.`,ctaMessage:({donationPercentage:o="1"}={})=>`At no extra cost, select a nonprofit and ${o}% will be donated for you.`,inlineSeparator:()=>": "},fr:{beamAttribution:()=>"Optimis\xE9 par Beam",ctaTitle:()=>"Choisissez votre cause",ctaPromoPrefixMessage:()=>"Sans frais suppl\xE9mentaires,",ctaPromoMessage:({donationPercentage:o="1"}={})=>`s\xE9lectionnez une association et ${o} % sera revers\xE9 en votre nom.`,ctaMessage:({donationPercentage:o="1"}={})=>`Sans frais suppl\xE9mentaires, choisissez une association et ${o} % de votre commande sera revers\xE9 en votre nom.`,inlineSeparator:()=>" : "},de:{beamAttribution:()=>"Unterst\xFCtzt von Beam",ctaTitle:()=>"W\xE4hle deine Wirkung",ctaPromoPrefixMessage:()=>"Ohne zus\xE4tzliche Kosten,",ctaPromoMessage:({donationPercentage:o="1"}={})=>`w\xE4hle eine Organisation und ${o}% deines Einkaufs werden gespendet.`,ctaMessage:({donationPercentage:o="1"}={})=>`Ohne zus\xE4tzliche Kosten kannst du eine gemeinn\xFCtzige Organisation ausw\xE4hlen und ${o}% deiner Bestellung werden gespendet.`,inlineSeparator:()=>": "},es:{beamAttribution:()=>"Ofrecido por Beam",ctaTitle:()=>"Elige tu impacto",ctaPromoPrefixMessage:()=>"Sin coste adicional,",ctaPromoMessage:({donationPercentage:o="1"}={})=>`elige una organizaci\xF3n y donaremos el ${o}% en tu nombre.`,ctaMessage:({donationPercentage:o="1"}={})=>`Sin coste adicional, elige una organizaci\xF3n sin fines de lucro y donaremos el ${o}% de tu compra en tu nombre.`,inlineSeparator:()=>": "},it:{beamAttribution:()=>"Gestito da Beam",ctaTitle:()=>"Scegli il tuo impatto",ctaPromoPrefixMessage:()=>"Senza costi aggiuntivi,",ctaPromoMessage:({donationPercentage:o="1"}={})=>`scegli un'organizzazione e doneremo l\u2019${o}% per te.`,ctaMessage:({donationPercentage:o="1"}={})=>`Senza costi aggiuntivi, seleziona un'organizzazione no-profit e doneremo l\u2019${o}% del tuo acquisto per te.`,inlineSeparator:()=>": "},pl:{beamAttribution:()=>"Obs\u0142ugiwane przez Beam",ctaTitle:()=>"Wybierz sw\xF3j wp\u0142yw",ctaPromoPrefixMessage:()=>"Bez dodatkowych koszt\xF3w,",ctaPromoMessage:({donationPercentage:o="1"}={})=>`wybierz organizacj\u0119, a ${o}% zostanie przekazane w Twoim imieniu.`,ctaMessage:({donationPercentage:o="1"}={})=>`Bez dodatkowych koszt\xF3w wybierz organizacj\u0119, kt\xF3rej przeka\u017Cemy ${o}% warto\u015Bci Twojego zam\xF3wienia w Twoim imieniu.`,inlineSeparator:()=>": "},ja:{beamAttribution:()=>"Powered by Beam",ctaTitle:()=>"\u5BC4\u4ED8\u5148\u3092\u304A\u9078\u3073\u304F\u3060\u3055\u3044\u3002",ctaPromoPrefixMessage:()=>"\u8FFD\u52A0\u8CBB\u7528\u306A\u3057\u3067\u3001",ctaPromoMessage:({donationPercentage:o="1"}={})=>`\u975E\u55B6\u5229\u56E3\u4F53\u3092\u9078\u3076\u3068\u3001${o}%\u304C\u305D\u306E\u56E3\u4F53\u306B\u5BC4\u4ED8\u3055\u308C\u307E\u3059\u3002`,ctaMessage:({donationPercentage:o="1"}={})=>`\u8FFD\u52A0\u8CBB\u7528\u306A\u3057\u3067\u975E\u55B6\u5229\u56E3\u4F53\u3092\u304A\u9078\u3073\u3044\u305F\u3060\u304F\u3068\u3001\u3054\u8CFC\u5165\u91D1\u984D\u306E${o}%\u304C\u5BC4\u4ED8\u3055\u308C\u307E\u3059\u3002`,inlineSeparator:()=>"\uFF1A"}};var Ce=Object.defineProperty,p=(o,e,t,n)=>{for(var i=void 0,a=o.length-1,r;a>=0;a--)(r=o[a])&&(i=r(e,t,i)||i);return i&&Ce(e,t,i),i};let j=!1;class l extends D{constructor(){super(...arguments),this.baseUrl=Z,this.selectedNonprofitId=null,this.lang="en",this.debug=!1,this.draftConfig=!1,this.lastSelectionActionDate=new Date,this.isMobile=window.innerWidth<768,this.enableNonprofitDeselection=!1,this.didTryToCreateNewSelectionFromCache=!1,this.pluginPromoCodes=[],this.handlePromoCodesStored=e=>{const t=(e.detail.promoCodes?.unvalidatedPromoCodes??[]).map(n=>n.attributes?.value??n.attributes?.url??"").sort();this.pluginPromoCodes=t},this.getChainNonprofits=async()=>{I(["apiKey"],this);const e=K(W,{apiKey:this.apiKey}),t=_("cart",{apiKey:this.apiKey}),n=this.cart?.content?{schema:this.cart?.schema,content:this.cart?.content}:void 0,i=this.getManualPromoCodes(),a=pe(i.map(h=>({value:h})),this.apiKey),r=a&&!de(a);r&&this.dispatchEvent(new M({source:C.select_nonprofit}));const c=await ee({baseUrl:this.baseUrl,apiRoot:"/api/v3",headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{storeId:this.storeId,widgetName:C.select_nonprofit,postalCode:this.postalCode,countryCode:this.countryCode,beamCartId:e||void 0,cartId:t||void 0,version:"1.0.0",lang:this.configLang,...r&&{promos:a},options:{config:{draftConfig:this.draftConfig}},cart:n}});return this.enableNonprofitDeselection=!!c.config.enableNonprofitDeselection,this.selectedNonprofitId!==null&&this.selectedNonprofitId&&!c.nonprofits.map(h=>h.nonprofit.id).includes(this.selectedNonprofitId)&&(this.selectedNonprofitId=null,await this.postSelectNonprofit({selectedNonprofitId:null}),this.localStorage.setItem("nonprofit",null)),c.store?.id&&c.store.id!==this.storeId&&(this.storeId=c.store.id),await this.createNewSelectionForCachedNonprofit(),this.localStorage.setItemJson("chainNonprofits",{createdAt:new Date,data:c}),this.handleValidatedPromoCodes(c),c},this.postSelectNonprofit=async({selectedNonprofitId:e})=>{I(["apiKey","storeId"],this);const t=new Date;this.lastSelectionActionDate=t;const n=_("cart",{apiKey:this.apiKey}),i=K(W,{apiKey:this.apiKey}),a=await te({baseUrl:this.baseUrl,headers:{authorization:`Api-Key ${this.apiKey}`},requestBody:{nonprofitId:e,selectionId:this.selectionId,storeId:this.storeId,cartId:n||void 0,beamCartId:i||void 0,creationMethod:"cart",postalCode:this.postalCode,countryCode:this.countryCode}});this.selectionId=a?.selectionId,this.localStorage.setItem("transaction",this.selectionId),this.localStorage.setItem("nonprofit",e),this.localStorage.setItem("nonprofit_selected_at",t.toISOString()),await this.updateComplete;const r=this.getNonprofitById(e);e!==null&&this.dispatchEvent(new E({selectedNonprofitId:e,selectionId:this.selectionId,nonprofitName:r?.nonprofit?.name??null,source:C.select_nonprofit,timestamp:t})),e===null&&this.dispatchEvent(new re({newNonprofitId:null,selectionId:this.selectionId,timestamp:t}))},this.nonprofitListDataController=new A(this,this.getChainNonprofits),this.selectionDataController=new A(this,this.postSelectNonprofit),this.localStorage=ce(this),this.handleCartChange=e=>{this.cart=e.detail},this.handleNonprofitSelect=e=>{const{selectionId:t,selectedNonprofitId:n,timestamp:i}=e.detail;!i||i<this.lastSelectionActionDate||(this.lastSelectionActionDate=i,this.selectionId!==t&&(this.selectionId=t),this.selectedNonprofitId!==n&&(this.selectedNonprofitId=n??null))},this.handleInitialNonprofitSync=e=>{if(j)return;const{nonprofitId:t,selectionId:n}=e.detail,i=t!==void 0&&this.selectedNonprofitId!==t,a=n!==void 0&&this.selectionId!==n;(i||a)&&(i&&(this.selectedNonprofitId=t),a&&(this.selectionId=n),this.requestUpdate(),j=!0,window.removeEventListener(k.eventName,this.handleInitialNonprofitSync))},this.makeHandleSelect=(e,t,n)=>async i=>{const a=this.selectedNonprofitId;if(i instanceof KeyboardEvent){let r=null;switch(i.key){case"ArrowUp":case"ArrowLeft":t===0?r=n[n.length-1]:r=n[t-1],i.preventDefault();break;case"ArrowRight":case"ArrowDown":t===n.length-1?r=n[0]:r=n[t+1],i.preventDefault();break;case"Enter":case" ":i.preventDefault();break;default:return}if(r){a!=null&&(this.selectedNonprofitId=r.nonprofit.id);const c=this.renderRoot.querySelector(`[data-value="${r.nonprofit.id}"]`);c!==null&&(c.tabIndex=0,c.focus());return}}if(i.currentTarget instanceof HTMLElement)if(a===e)if(this.enableNonprofitDeselection)this.selectedNonprofitId=null,this.localStorage.setItem("nonprofit",null);else return;else this.selectedNonprofitId=e;this.dispatchEvent(new se({})),window.removeEventListener(k.eventName,this.handleInitialNonprofitSync),await this.selectionDataController.exec({selectedNonprofitId:this.selectedNonprofitId})},this.evaluateBreakPoints=X(()=>{this.isMobile=window.innerWidth<768},50,{maxWait:50,leading:!0})}get configLang(){return oe[this.lang]||"en"}get parsedPromoCodes(){return fe(this.promoCodes)}getManualPromoCodes(){if(this.parsedPromoCodes&&this.parsedPromoCodes.length>0)return this.parsedPromoCodes;const e=this.localStorage.getItemJson("cart");return e?me(e):[]}async handleValidatedPromoCodes(e){e.promos?.validatedPromoCodes&&(await Promise.all([ge({apiKey:this.apiKey,promoCodes:{validatedPromoCodes:e.promos.validatedPromoCodes,unvalidatedPromoCodes:[]}}),he({validatedPromoCodes:e.promos.validatedPromoCodes,domain:this.domain})]),this.dispatchEvent(new M({source:C.select_nonprofit})))}getNonprofitById(e){return e?this.nonprofitListDataController?.data?.nonprofits.find(t=>t.nonprofit.id===e):null}async connectedCallback(){super.connectedCallback(),window.addEventListener(k.eventName,this.handleInitialNonprofitSync),window.addEventListener(E.eventName,this.handleNonprofitSelect),this.nonprofitListDataController.loading=!0,window.addEventListener(T.eventName,this.handleCartChange),window.addEventListener("resize",this.evaluateBreakPoints)}async firstUpdated(){await this.restoreStateFromCache(),window.addEventListener(F.eventName,this.handlePromoCodesStored)}async updated(e){const t=["baseUrl","storeId","apiKey","countryCode","postalCode","cart","lang","promoCodes","pluginPromoCodes"];this.pluginPromoCodes;for(const n of t)if(e.has(n)){await this.nonprofitListDataController.exec();break}}disconnectedCallback(){window.removeEventListener(T.eventName,this.handleCartChange),window.removeEventListener("resize",this.evaluateBreakPoints),window.removeEventListener(F.eventName,this.handlePromoCodesStored),window.removeEventListener(E.eventName,this.handleNonprofitSelect),super.disconnectedCallback()}async restoreStateFromCache(){try{const e=new Date().valueOf();this.cart=this.localStorage.getItemJson("cart")??void 0;const t=720*60*60*1e3,n=this.localStorage.getItem("nonprofit_selected_at")??0,i=e>new Date(n).valueOf()+t;i?i&&this.selectedNonprofitId!==null&&(await this.postSelectNonprofit({selectedNonprofitId:null}),this.localStorage.setItem("nonprofit",null)):(this.selectedNonprofitId=parseInt(this.localStorage.getItem("nonprofit")||"")||null,this.selectionId=this.localStorage.getItem("transaction")??void 0);const{createdAt:a=0,data:r}=this.localStorage.getItemJson("chainNonprofits")||{},c=7200*1e3;!(e>new Date(a).valueOf()+c)&&this.nonprofitListDataController.loading&&(this.nonprofitListDataController.data=r,this.nonprofitListDataController.loading=!1)}catch(e){le.error(e)}}async createNewSelectionForCachedNonprofit(){if(I(["apiKey"],this),!(!this.storeId||this.didTryToCreateNewSelectionFromCache))try{this.didTryToCreateNewSelectionFromCache=!0}catch{}}get cssVariables(){const e={"--beam-fontFamily":"inherit","--beam-fontStyle":"inherit","--beam-fontSize":"inherit","--beam-textColor":"inherit","--beam-backgroundColor":"inherit",...ue,"--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-borderWidth":"1px","--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-borderWidth":"1px","--beam-SelectNonprofit-details-borderColor":"currentColor","--beam-SelectNonprofit-details-backgroundColor":"inherit","--beam-SelectNonprofit-details-padding":"10px",...u("--beam-SelectNonprofit-title",{fontSize:"1.25em",fontWeight:"bold"}),"--beam-SelectNonprofit-header-inline-lineHeight":"inherit",...u("--beam-SelectNonprofit-title-inline",{fontWeight:"bold"}),"--beam-SelectNonprofit-title-inline-textTransform":"none","--beam-SelectNonprofit-title-block-margin-right":"8px",...u("--beam-SelectNonprofit-description",{marginTop:"0.5em"}),...u("--beam-SelectNonprofit-description-inline"),...u("--beam-SelectNonprofit-details-cause",{fontSize:"0.85em",fontWeight:"bold"}),...u("--beam-SelectNonprofit-details-beamAttribution",{fontSize:"0.85em"}),...u("--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",...u("--beam-SelectNonprofit-details-fundingProgressLabel",{fontSize:"0.85em"}),...ve,...Se,"--beam-SelectNonprofit-promo-block-header-justifyContent":"initial","--beam-SelectNonprofit-notification-blip-top":"4px","--beam-SelectNonprofit-notification-blip-left":"50%","--beam-SelectNonprofit-display-notification-blip":"true","--beam-SelectNonprofit-enable-inline-header":"false","--beam-SelectNonprofit-force-multiline-header":"false"},t=this.nonprofitListDataController?.data?.config?.web?.theme||{},n={...e,...t};return Object.assign(Object.create({toCSS(){return Y(this)}}),n)}render(){const{selectedNonprofitId:e}=this,{data:t,loading:n}=this.nonprofitListDataController;if(n&&!t)return ae();if(this.nonprofitListDataController.error)return this.debug?B({error:this.nonprofitListDataController.error}):"";if(this.selectionDataController.error&&this.debug)return B({error:this.selectionDataController.error});const i=t?.nonprofits||[],a=i.find(s=>s.nonprofit.id===e)||null,r=!!t?.config?.web?.promo,c=i.some(s=>!s.promo||!s.promo.isActive),h=s=>this.cssVariables[s],O=h("--beam-SelectNonprofit-display-notification-blip")==="true",y=h("--beam-SelectNonprofit-title-textAlign")==="center",U=h("--beam-SelectNonprofit-enable-inline-header")==="true",b=h("--beam-SelectNonprofit-force-multiline-header")!=="true"&&(U||this.isMobile),$=d`<h3
22
22
  class=${v({"title-block":!0,"d-none":!0,"d-block":!b})}
23
23
  part="title"
24
24
  id="beam-SelectNonprofit-title"
@@ -87,6 +87,7 @@ import{h as D,f as L,y as d,g as f,t as P,q as v,u as J,m as z,k as G}from"../ch
87
87
  src="${N?s.causeIconSelectedUrl:s.causeIconUrl}"
88
88
  alt=""
89
89
  role="presentation"
90
+ data-speedsize-ignore="true"
90
91
  style="
91
92
  height: var(--beam-SelectNonprofit-options-iconHeight, 24px);
92
93
  user-select: none;
@@ -102,7 +103,7 @@ import{h as D,f as L,y as d,g as f,t as P,q as v,u as J,m as z,k as G}from"../ch
102
103
  class="details"
103
104
  part="details"
104
105
  style="
105
- border: 1px solid var(--beam-SelectNonprofit-details-borderColor);
106
+ border: var(--beam-SelectNonprofit-details-borderWidth) solid var(--beam-SelectNonprofit-details-borderColor);
106
107
  border-radius: var(--beam-SelectNonprofit-details-borderRadius);
107
108
  background-color: var(--beam-SelectNonprofit-details-backgroundColor);
108
109
  padding: var(--beam-SelectNonprofit-details-padding);
@@ -146,7 +147,7 @@ import{h as D,f as L,y as d,g as f,t as P,q as v,u as J,m as z,k as G}from"../ch
146
147
  </div>
147
148
  </div>
148
149
  `:""}
149
- `}}l.tagName="beam-select-nonprofit",l.styles=[ae,Se,L`
150
+ `}}l.tagName="beam-select-nonprofit",l.styles=[ie,be,L`
150
151
  :host {
151
152
  display: block;
152
153
  max-width: var(--beam-SelectNonprofit-maxWidth, 800px);
@@ -232,5 +233,5 @@ import{h as D,f as L,y as d,g as f,t as P,q as v,u as J,m as z,k as G}from"../ch
232
233
  top: var(--beam-SelectNonprofit-notification-blip-top);
233
234
  left: var(--beam-SelectNonprofit-notification-blip-left);
234
235
  }
235
- `],p([f({type:String})],l.prototype,"baseUrl"),p([f({type:String})],l.prototype,"apiKey"),p([f({type:Number,reflect:!0})],l.prototype,"storeId"),p([f({type:String})],l.prototype,"countryCode"),p([f({type:String})],l.prototype,"postalCode"),p([f({attribute:!1,hasChanged:(o,e)=>!Q(o,e)})],l.prototype,"cart"),p([f({type:Number,reflect:!0})],l.prototype,"selectedNonprofitId"),p([f({type:String})],l.prototype,"lang"),p([f({type:Boolean})],l.prototype,"debug"),p([f({type:Boolean})],l.prototype,"draftConfig"),p([f({type:String})],l.prototype,"promoCodes"),p([f({type:String})],l.prototype,"domain"),p([P()],l.prototype,"lastSelectionActionDate"),p([P()],l.prototype,"isMobile"),p([P()],l.prototype,"pluginPromoCodes"),re(l);export{l as BeamSelectNonprofit};
236
+ `],p([f({type:String})],l.prototype,"baseUrl"),p([f({type:String})],l.prototype,"apiKey"),p([f({type:Number,reflect:!0})],l.prototype,"storeId"),p([f({type:String})],l.prototype,"countryCode"),p([f({type:String})],l.prototype,"postalCode"),p([f({attribute:!1,hasChanged:(o,e)=>!Q(o,e)})],l.prototype,"cart"),p([f({type:Number,reflect:!0})],l.prototype,"selectedNonprofitId"),p([f({type:String})],l.prototype,"lang"),p([f({type:Boolean})],l.prototype,"debug"),p([f({type:Boolean})],l.prototype,"draftConfig"),p([f({type:String})],l.prototype,"promoCodes"),p([f({type:String})],l.prototype,"domain"),p([P()],l.prototype,"lastSelectionActionDate"),p([P()],l.prototype,"isMobile"),p([P()],l.prototype,"pluginPromoCodes"),ne(l);export{l as BeamSelectNonprofit};
236
237
  //# sourceMappingURL=select-nonprofit.esm.js.map