@salla.sa/twilight-components 2.14.239 → 2.14.241

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 (333) hide show
  1. package/dist/cjs/{app-globals-DbdvvtOW.js → app-globals-DvkVPAlZ.js} +3 -3
  2. package/dist/cjs/{app-globals-DbdvvtOW.js.map → app-globals-DvkVPAlZ.js.map} +1 -1
  3. package/dist/cjs/{index-BDdHgq9_.js → index-BPhiWOV7.js} +4 -4
  4. package/dist/cjs/index-BPhiWOV7.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/salla-accordion-body.cjs.entry.js +1 -1
  7. package/dist/cjs/salla-accordion-head.cjs.entry.js +1 -1
  8. package/dist/cjs/salla-accordion.cjs.entry.js +1 -1
  9. package/dist/cjs/salla-add-product-button_51.cjs.entry.js +1 -1
  10. package/dist/cjs/salla-advertisement.cjs.entry.js +1 -1
  11. package/dist/cjs/salla-app-install-alert.cjs.entry.js +1 -1
  12. package/dist/cjs/salla-apps-icons.cjs.entry.js +1 -1
  13. package/dist/cjs/salla-booking-field_2.cjs.entry.js +1 -1
  14. package/dist/cjs/salla-cart-item-offers.cjs.entry.js +1 -1
  15. package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
  16. package/dist/cjs/salla-contacts.cjs.entry.js +1 -1
  17. package/dist/cjs/salla-filters-widget.cjs.entry.js +1 -1
  18. package/dist/cjs/salla-filters.cjs.entry.js +1 -1
  19. package/dist/cjs/salla-installment.cjs.entry.js +1 -1
  20. package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +1 -1
  21. package/dist/cjs/salla-loyalty-program.cjs.entry.js +1 -1
  22. package/dist/cjs/salla-metadata.cjs.entry.js +1 -1
  23. package/dist/cjs/salla-notification-item.cjs.entry.js +1 -1
  24. package/dist/cjs/salla-notifications.cjs.entry.js +1 -1
  25. package/dist/cjs/salla-offer.cjs.entry.js +1 -1
  26. package/dist/cjs/salla-order-summary.cjs.entry.js +1 -1
  27. package/dist/cjs/salla-orders.cjs.entry.js +1 -1
  28. package/dist/cjs/salla-payments.cjs.entry.js +1 -1
  29. package/dist/cjs/salla-price-range.cjs.entry.js +1 -1
  30. package/dist/cjs/salla-product-options.cjs.entry.js +37 -6
  31. package/dist/cjs/salla-product-options.cjs.entry.js.map +1 -1
  32. package/dist/cjs/salla-product-options.entry.cjs.js.map +1 -1
  33. package/dist/cjs/salla-review-card.cjs.entry.js +1 -1
  34. package/dist/cjs/salla-reviews-page.cjs.entry.js +1 -1
  35. package/dist/cjs/salla-reviews.cjs.entry.js +1 -1
  36. package/dist/cjs/salla-social.cjs.entry.js +1 -1
  37. package/dist/cjs/salla-tiered-offer.cjs.entry.js +23 -10
  38. package/dist/cjs/salla-tiered-offer.cjs.entry.js.map +1 -1
  39. package/dist/cjs/salla-tiered-offer.entry.cjs.js.map +1 -1
  40. package/dist/cjs/salla-tooltip.cjs.entry.js +1 -1
  41. package/dist/cjs/salla-verify.cjs.entry.js +1 -1
  42. package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
  43. package/dist/cjs/twilight.cjs.js +2 -2
  44. package/dist/collection/components/salla-product-options/salla-product-options.js +36 -5
  45. package/dist/collection/components/salla-product-options/salla-product-options.js.map +1 -1
  46. package/dist/collection/components/salla-tiered-offer/salla-tiered-offer.js +22 -9
  47. package/dist/collection/components/salla-tiered-offer/salla-tiered-offer.js.map +1 -1
  48. package/dist/components/index.js +2 -2
  49. package/dist/components/index.js.map +1 -1
  50. package/dist/components/salla-product-options.js +36 -5
  51. package/dist/components/salla-product-options.js.map +1 -1
  52. package/dist/components/salla-tiered-offer.js +22 -9
  53. package/dist/components/salla-tiered-offer.js.map +1 -1
  54. package/dist/esm/{app-globals-Db6Lb5QT.js → app-globals-BoC0E74W.js} +3 -3
  55. package/dist/esm/{app-globals-Db6Lb5QT.js.map → app-globals-BoC0E74W.js.map} +1 -1
  56. package/dist/esm/{index-Dxu9oA9K.js → index-Qk6_ks1N.js} +4 -4
  57. package/dist/esm/index-Qk6_ks1N.js.map +1 -0
  58. package/dist/esm/loader.js +3 -3
  59. package/dist/esm/salla-accordion-body.entry.js +1 -1
  60. package/dist/esm/salla-accordion-head.entry.js +1 -1
  61. package/dist/esm/salla-accordion.entry.js +1 -1
  62. package/dist/esm/salla-add-product-button_51.entry.js +1 -1
  63. package/dist/esm/salla-advertisement.entry.js +1 -1
  64. package/dist/esm/salla-app-install-alert.entry.js +1 -1
  65. package/dist/esm/salla-apps-icons.entry.js +1 -1
  66. package/dist/esm/salla-booking-field_2.entry.js +1 -1
  67. package/dist/esm/salla-cart-item-offers.entry.js +1 -1
  68. package/dist/esm/salla-conditional-offer.entry.js +1 -1
  69. package/dist/esm/salla-contacts.entry.js +1 -1
  70. package/dist/esm/salla-filters-widget.entry.js +1 -1
  71. package/dist/esm/salla-filters.entry.js +1 -1
  72. package/dist/esm/salla-installment.entry.js +1 -1
  73. package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
  74. package/dist/esm/salla-loyalty-program.entry.js +1 -1
  75. package/dist/esm/salla-metadata.entry.js +1 -1
  76. package/dist/esm/salla-notification-item.entry.js +1 -1
  77. package/dist/esm/salla-notifications.entry.js +1 -1
  78. package/dist/esm/salla-offer.entry.js +1 -1
  79. package/dist/esm/salla-order-summary.entry.js +1 -1
  80. package/dist/esm/salla-orders.entry.js +1 -1
  81. package/dist/esm/salla-payments.entry.js +1 -1
  82. package/dist/esm/salla-price-range.entry.js +1 -1
  83. package/dist/esm/salla-product-options.entry.js +37 -6
  84. package/dist/esm/salla-product-options.entry.js.map +1 -1
  85. package/dist/esm/salla-review-card.entry.js +1 -1
  86. package/dist/esm/salla-reviews-page.entry.js +1 -1
  87. package/dist/esm/salla-reviews.entry.js +1 -1
  88. package/dist/esm/salla-social.entry.js +1 -1
  89. package/dist/esm/salla-tiered-offer.entry.js +23 -10
  90. package/dist/esm/salla-tiered-offer.entry.js.map +1 -1
  91. package/dist/esm/salla-tooltip.entry.js +1 -1
  92. package/dist/esm/salla-verify.entry.js +1 -1
  93. package/dist/esm/salla-wallet.entry.js +1 -1
  94. package/dist/esm/twilight.js +3 -3
  95. package/dist/esm-es5/{app-globals-Db6Lb5QT.js → app-globals-BoC0E74W.js} +2 -2
  96. package/dist/esm-es5/{app-globals-Db6Lb5QT.js.map → app-globals-BoC0E74W.js.map} +1 -1
  97. package/dist/esm-es5/{index-Dxu9oA9K.js → index-Qk6_ks1N.js} +3 -3
  98. package/dist/{twilight/p-Dxu9oA9K.js.map → esm-es5/index-Qk6_ks1N.js.map} +1 -1
  99. package/dist/esm-es5/loader.js +1 -1
  100. package/dist/esm-es5/salla-accordion-body.entry.js +1 -1
  101. package/dist/esm-es5/salla-accordion-head.entry.js +1 -1
  102. package/dist/esm-es5/salla-accordion.entry.js +1 -1
  103. package/dist/esm-es5/salla-add-product-button_51.entry.js +1 -1
  104. package/dist/esm-es5/salla-advertisement.entry.js +1 -1
  105. package/dist/esm-es5/salla-app-install-alert.entry.js +1 -1
  106. package/dist/esm-es5/salla-apps-icons.entry.js +1 -1
  107. package/dist/esm-es5/salla-booking-field_2.entry.js +2 -2
  108. package/dist/esm-es5/salla-cart-item-offers.entry.js +1 -1
  109. package/dist/esm-es5/salla-conditional-offer.entry.js +1 -1
  110. package/dist/esm-es5/salla-contacts.entry.js +1 -1
  111. package/dist/esm-es5/salla-filters-widget.entry.js +1 -1
  112. package/dist/esm-es5/salla-filters.entry.js +1 -1
  113. package/dist/esm-es5/salla-installment.entry.js +1 -1
  114. package/dist/esm-es5/salla-loyalty-prize-item.entry.js +1 -1
  115. package/dist/esm-es5/salla-loyalty-program.entry.js +2 -2
  116. package/dist/esm-es5/salla-metadata.entry.js +1 -1
  117. package/dist/esm-es5/salla-notification-item.entry.js +1 -1
  118. package/dist/esm-es5/salla-notifications.entry.js +1 -1
  119. package/dist/esm-es5/salla-offer.entry.js +1 -1
  120. package/dist/esm-es5/salla-order-summary.entry.js +1 -1
  121. package/dist/esm-es5/salla-orders.entry.js +1 -1
  122. package/dist/esm-es5/salla-payments.entry.js +1 -1
  123. package/dist/esm-es5/salla-price-range.entry.js +1 -1
  124. package/dist/esm-es5/salla-product-options.entry.js +1 -1
  125. package/dist/esm-es5/salla-product-options.entry.js.map +1 -1
  126. package/dist/esm-es5/salla-review-card.entry.js +1 -1
  127. package/dist/esm-es5/salla-reviews-page.entry.js +1 -1
  128. package/dist/esm-es5/salla-reviews.entry.js +1 -1
  129. package/dist/esm-es5/salla-social.entry.js +1 -1
  130. package/dist/esm-es5/salla-tiered-offer.entry.js +2 -2
  131. package/dist/esm-es5/salla-tiered-offer.entry.js.map +1 -1
  132. package/dist/esm-es5/salla-tooltip.entry.js +1 -1
  133. package/dist/esm-es5/salla-verify.entry.js +1 -1
  134. package/dist/esm-es5/salla-wallet.entry.js +1 -1
  135. package/dist/esm-es5/twilight.js +1 -1
  136. package/dist/twilight/p-0080e341.entry.js +5 -0
  137. package/dist/twilight/{p-79dab8b8.system.entry.js → p-03f69cea.system.entry.js} +2 -2
  138. package/dist/twilight/{p-7167cda0.system.entry.js → p-0488395f.system.entry.js} +2 -2
  139. package/dist/twilight/{p-cab02e98.system.entry.js → p-085de295.system.entry.js} +2 -2
  140. package/dist/twilight/{p-03f98d2f.system.entry.js → p-095cd107.system.entry.js} +2 -2
  141. package/dist/twilight/{p-7632d96b.system.entry.js → p-0b5059a8.system.entry.js} +2 -2
  142. package/dist/twilight/{p-64128588.entry.js → p-109639b5.entry.js} +2 -2
  143. package/dist/twilight/p-109639b5.entry.js.map +1 -0
  144. package/dist/twilight/{p-11fe6afc.entry.js → p-113610e6.entry.js} +2 -2
  145. package/dist/twilight/{p-1b84dff7.system.entry.js → p-17ac3f07.system.entry.js} +2 -2
  146. package/dist/twilight/{p-2d41b312.entry.js → p-1bac43db.entry.js} +2 -2
  147. package/dist/twilight/{p-2b6b8c81.entry.js → p-1cbfdf9c.entry.js} +2 -2
  148. package/dist/twilight/{p-eb410142.entry.js → p-2018f332.entry.js} +2 -2
  149. package/dist/twilight/{p-b24fe018.system.entry.js → p-22a97b77.system.entry.js} +2 -2
  150. package/dist/twilight/{p-67c709ff.entry.js → p-2504b7c0.entry.js} +2 -2
  151. package/dist/twilight/{p-6f2cf177.entry.js → p-26f3294b.entry.js} +2 -2
  152. package/dist/twilight/{p-DjvOm_NU.system.js.map → p-2pstlFTx.system.js.map} +1 -1
  153. package/dist/twilight/{p-4c9e43fe.system.entry.js → p-31249011.system.entry.js} +2 -2
  154. package/dist/twilight/{p-331c6ed5.system.entry.js → p-33c1da66.system.entry.js} +2 -2
  155. package/dist/twilight/{p-9110491f.entry.js → p-34170712.entry.js} +2 -2
  156. package/dist/twilight/{p-3f455e4b.entry.js → p-3ca55ad3.entry.js} +2 -2
  157. package/dist/twilight/{p-3917911e.system.entry.js → p-3d646989.system.entry.js} +2 -2
  158. package/dist/twilight/{p-37ef34af.entry.js → p-3e782481.entry.js} +2 -2
  159. package/dist/twilight/{p-5eb4592c.entry.js → p-3f2e984c.entry.js} +2 -2
  160. package/dist/twilight/{p-142c7169.entry.js → p-4049f624.entry.js} +2 -2
  161. package/dist/twilight/{p-529f23c6.system.entry.js → p-41c210db.system.entry.js} +2 -2
  162. package/dist/twilight/p-4aad96c4.system.entry.js +5 -0
  163. package/dist/twilight/p-4aad96c4.system.entry.js.map +1 -0
  164. package/dist/twilight/{p-b3451de7.system.entry.js → p-4c901b62.system.entry.js} +2 -2
  165. package/dist/twilight/{p-C1Uuu_Iz.system.js.map → p-4qh49PqK.system.js.map} +1 -1
  166. package/dist/twilight/{p-462c7109.system.entry.js → p-59796bb2.system.entry.js} +2 -2
  167. package/dist/twilight/{p-f8352357.entry.js → p-6029cdd7.entry.js} +2 -2
  168. package/dist/twilight/{p-3b21bc63.entry.js → p-60dac7ef.entry.js} +2 -2
  169. package/dist/twilight/{p-28c53329.system.entry.js → p-60f649f5.system.entry.js} +2 -2
  170. package/dist/twilight/{p-5ee8e3ee.system.entry.js → p-61cec922.system.entry.js} +2 -2
  171. package/dist/twilight/{p-c698caa6.system.entry.js → p-65c74d07.system.entry.js} +2 -2
  172. package/dist/twilight/{p-099c2ddf.entry.js → p-65ee4bcd.entry.js} +2 -2
  173. package/dist/twilight/{p-3971d884.system.entry.js → p-66f0d009.system.entry.js} +2 -2
  174. package/dist/twilight/{p-a642fb2d.system.entry.js → p-69c4dc57.system.entry.js} +3 -3
  175. package/dist/twilight/{p-f6a84618.entry.js → p-824f1195.entry.js} +2 -2
  176. package/dist/twilight/{p-5b5a6101.entry.js → p-84013163.entry.js} +2 -2
  177. package/dist/twilight/p-87b54ba7.system.entry.js +5 -0
  178. package/dist/twilight/p-87b54ba7.system.entry.js.map +1 -0
  179. package/dist/twilight/{p-bdf35a25.system.entry.js → p-8a9bfcbb.system.entry.js} +2 -2
  180. package/dist/twilight/{p-816097f4.entry.js → p-8c3bf70a.entry.js} +2 -2
  181. package/dist/twilight/{p-ea58fa22.entry.js → p-8e111e2e.entry.js} +2 -2
  182. package/dist/twilight/{p-ad1bfcf3.entry.js → p-90e0ff36.entry.js} +7 -7
  183. package/dist/twilight/{p-411b87ef.entry.js → p-92cbc26e.entry.js} +2 -2
  184. package/dist/twilight/{p-c24b8585.system.entry.js → p-932a9495.system.entry.js} +2 -2
  185. package/dist/twilight/{p-b5838794.entry.js → p-9c99ec9d.entry.js} +2 -2
  186. package/dist/twilight/{p-cf060e6c.system.entry.js → p-9da459e3.system.entry.js} +2 -2
  187. package/dist/twilight/{p-01aded94.system.entry.js → p-9da95409.system.entry.js} +2 -2
  188. package/dist/twilight/{p-ab42e437.entry.js → p-9f52c186.entry.js} +2 -2
  189. package/dist/twilight/{p-_oBuExIe.system.js.map → p-B-e3U5P8.system.js.map} +1 -1
  190. package/dist/twilight/{p-DNbI4S_I.js → p-B2te2F0k.js} +2 -2
  191. package/dist/twilight/{p-DNbI4S_I.js.map → p-B2te2F0k.js.map} +1 -1
  192. package/dist/twilight/{p-CFR20olG.system.js.map → p-B7cmAuH9.system.js.map} +1 -1
  193. package/dist/twilight/{p-Cih6sizk.system.js.map → p-BBH0E_z-.system.js.map} +1 -1
  194. package/dist/twilight/{p-Dlx1ErOi.system.js.map → p-BKPR76P3.system.js.map} +1 -1
  195. package/dist/twilight/p-BZcH7srY.system.js.map +1 -0
  196. package/dist/twilight/{p-DdyaaxwR.system.js.map → p-BahDCVg3.system.js.map} +1 -1
  197. package/dist/twilight/{p-DNQHLxWG.system.js.map → p-Bb2NxpFe.system.js.map} +1 -1
  198. package/dist/twilight/{p-CwLRhDos.system.js.map → p-BcNL_T6G.system.js.map} +1 -1
  199. package/dist/twilight/{p-CkkLk7Pj.system.js.map → p-Bn8EiyAB.system.js.map} +1 -1
  200. package/dist/twilight/{p-Cym5H1Z6.system.js.map → p-Brs9NM0b.system.js.map} +1 -1
  201. package/dist/twilight/{p-D5r3ATtc.system.js.map → p-BtBYqT4P.system.js.map} +1 -1
  202. package/dist/twilight/{p-gKm1xaeh.system.js.map → p-C0CfWHAH.system.js.map} +1 -1
  203. package/dist/twilight/{p-NfM7SGbO.system.js.map → p-C3WNijb1.system.js.map} +1 -1
  204. package/dist/twilight/p-CJsgY2dR.system.js.map +1 -0
  205. package/dist/twilight/{p-Cww7QFEI.system.js.map → p-CNDItboI.system.js.map} +1 -1
  206. package/dist/twilight/{p-Dl5noMXr.system.js.map → p-CVoL_QTn.system.js.map} +1 -1
  207. package/dist/twilight/{p-BuTOc-d8.system.js.map → p-CanB30IP.system.js.map} +1 -1
  208. package/dist/twilight/{p-Dzux6KMv.system.js.map → p-CdbjWpSy.system.js.map} +1 -1
  209. package/dist/twilight/{p-Cv46yWRf.system.js.map → p-CpwGQDDt.system.js.map} +1 -1
  210. package/dist/twilight/{p-D2DsyAg6.system.js.map → p-Ct1jxnfI.system.js.map} +1 -1
  211. package/dist/twilight/{p-BDyUK9ox.system.js.map → p-CtJIl0_w.system.js.map} +1 -1
  212. package/dist/twilight/{p-DdBJaRrc.system.js.map → p-CxzOd1Cr.system.js.map} +1 -1
  213. package/dist/twilight/{p-B6bpYnnP.system.js.map → p-Cyx08ZZ7.system.js.map} +1 -1
  214. package/dist/twilight/{p-DyN-KAxy.system.js.map → p-D41YJ-X4.system.js.map} +1 -1
  215. package/dist/twilight/{p-DxmXbXHz.system.js.map → p-D68XohHN.system.js.map} +1 -1
  216. package/dist/twilight/{p-BUwki4wf.system.js.map → p-DG5qnodN.system.js.map} +1 -1
  217. package/dist/twilight/{p-D1zqgG9Y.system.js.map → p-DQoj-KfA.system.js.map} +1 -1
  218. package/dist/twilight/{p-DST6iM3C.system.js.map → p-DVqAtg79.system.js.map} +1 -1
  219. package/dist/twilight/{p-BV4kErtd.system.js → p-DdFhEMb6.system.js} +3 -3
  220. package/dist/twilight/p-DdFhEMb6.system.js.map +1 -0
  221. package/dist/twilight/{p-dQTzJHLh.system.js.map → p-Dhb4JyLV.system.js.map} +1 -1
  222. package/dist/twilight/{p-CRhaoLbg.system.js.map → p-DrQZJLBF.system.js.map} +1 -1
  223. package/dist/twilight/{p-BbWNHcOU.system.js → p-DxWLRF--.system.js} +2 -2
  224. package/dist/twilight/{p-BbWNHcOU.system.js.map → p-DxWLRF--.system.js.map} +1 -1
  225. package/dist/twilight/{p-E94lGW7o.system.js.map → p-L6p0JXbn.system.js.map} +1 -1
  226. package/dist/twilight/{p-Dxu9oA9K.js → p-Qk6_ks1N.js} +3 -3
  227. package/dist/twilight/p-Qk6_ks1N.js.map +1 -0
  228. package/dist/twilight/{p-DIHPMktR.system.js → p-XH--V_xY.system.js} +2 -2
  229. package/dist/twilight/{p-DIHPMktR.system.js.map → p-XH--V_xY.system.js.map} +1 -1
  230. package/dist/twilight/{p-e651f83f.system.entry.js → p-a0bfb9f0.system.entry.js} +2 -2
  231. package/dist/twilight/{p-4437951d.system.entry.js → p-b4dcca7d.system.entry.js} +2 -2
  232. package/dist/twilight/{p-67d370cb.entry.js → p-ba73145a.entry.js} +2 -2
  233. package/dist/twilight/{p-b854bd23.entry.js → p-bd157361.entry.js} +2 -2
  234. package/dist/twilight/p-c09b9065.entry.js +5 -0
  235. package/dist/twilight/p-c09b9065.entry.js.map +1 -0
  236. package/dist/twilight/{p-12198e85.system.entry.js → p-c32b29f3.system.entry.js} +2 -2
  237. package/dist/twilight/{p-4659c645.entry.js → p-cafa90ca.entry.js} +2 -2
  238. package/dist/twilight/{p-554092d9.system.entry.js → p-cb051f40.system.entry.js} +2 -2
  239. package/dist/twilight/p-d7834bb8.system.entry.js +5 -0
  240. package/dist/twilight/{p-4bc9089d.entry.js → p-da0d4708.entry.js} +2 -2
  241. package/dist/twilight/p-da239ecb.entry.js +5 -0
  242. package/dist/twilight/{p-cc5e1937.system.entry.js → p-e0c33d75.system.entry.js} +2 -2
  243. package/dist/twilight/{p-bd89e063.system.entry.js → p-e3a5c60b.system.entry.js} +2 -2
  244. package/dist/twilight/{p-c695b1d9.system.entry.js → p-e505c759.system.entry.js} +2 -2
  245. package/dist/twilight/{p-788980fa.entry.js → p-e702680e.entry.js} +2 -2
  246. package/dist/twilight/{p-a3cd1fad.entry.js → p-f289d1e4.entry.js} +2 -2
  247. package/dist/twilight/{p-f36b71e2.system.entry.js → p-f7619cf4.system.entry.js} +2 -2
  248. package/dist/twilight/{p-07f023da.entry.js → p-f8ddee2c.entry.js} +2 -2
  249. package/dist/twilight/{p-Cr6XPQwf.system.js.map → p-xWkxNUTt.system.js.map} +1 -1
  250. package/dist/twilight/salla-product-options.entry.esm.js.map +1 -1
  251. package/dist/twilight/salla-tiered-offer.entry.esm.js.map +1 -1
  252. package/dist/twilight/twilight.esm.js +1 -1
  253. package/dist/twilight/twilight.js +1 -1
  254. package/dist/types/components/salla-product-options/salla-product-options.d.ts +11 -1
  255. package/package.json +5 -5
  256. package/dist/cjs/index-BDdHgq9_.js.map +0 -1
  257. package/dist/esm/index-Dxu9oA9K.js.map +0 -1
  258. package/dist/esm-es5/index-Dxu9oA9K.js.map +0 -1
  259. package/dist/twilight/p-06af0212.entry.js +0 -5
  260. package/dist/twilight/p-06af0212.entry.js.map +0 -1
  261. package/dist/twilight/p-5273af20.entry.js +0 -5
  262. package/dist/twilight/p-63f5db56.system.entry.js +0 -5
  263. package/dist/twilight/p-63f5db56.system.entry.js.map +0 -1
  264. package/dist/twilight/p-64128588.entry.js.map +0 -1
  265. package/dist/twilight/p-BV4kErtd.system.js.map +0 -1
  266. package/dist/twilight/p-DRACrmyE.system.js.map +0 -1
  267. package/dist/twilight/p-STaxwEDu.system.js.map +0 -1
  268. package/dist/twilight/p-b4b32523.system.entry.js +0 -5
  269. package/dist/twilight/p-bf84ef7e.system.entry.js +0 -5
  270. package/dist/twilight/p-bf84ef7e.system.entry.js.map +0 -1
  271. package/dist/twilight/p-efcb6ca0.entry.js +0 -5
  272. /package/dist/twilight/{p-efcb6ca0.entry.js.map → p-0080e341.entry.js.map} +0 -0
  273. /package/dist/twilight/{p-79dab8b8.system.entry.js.map → p-03f69cea.system.entry.js.map} +0 -0
  274. /package/dist/twilight/{p-7167cda0.system.entry.js.map → p-0488395f.system.entry.js.map} +0 -0
  275. /package/dist/twilight/{p-cab02e98.system.entry.js.map → p-085de295.system.entry.js.map} +0 -0
  276. /package/dist/twilight/{p-03f98d2f.system.entry.js.map → p-095cd107.system.entry.js.map} +0 -0
  277. /package/dist/twilight/{p-7632d96b.system.entry.js.map → p-0b5059a8.system.entry.js.map} +0 -0
  278. /package/dist/twilight/{p-11fe6afc.entry.js.map → p-113610e6.entry.js.map} +0 -0
  279. /package/dist/twilight/{p-1b84dff7.system.entry.js.map → p-17ac3f07.system.entry.js.map} +0 -0
  280. /package/dist/twilight/{p-2d41b312.entry.js.map → p-1bac43db.entry.js.map} +0 -0
  281. /package/dist/twilight/{p-2b6b8c81.entry.js.map → p-1cbfdf9c.entry.js.map} +0 -0
  282. /package/dist/twilight/{p-eb410142.entry.js.map → p-2018f332.entry.js.map} +0 -0
  283. /package/dist/twilight/{p-b24fe018.system.entry.js.map → p-22a97b77.system.entry.js.map} +0 -0
  284. /package/dist/twilight/{p-67c709ff.entry.js.map → p-2504b7c0.entry.js.map} +0 -0
  285. /package/dist/twilight/{p-6f2cf177.entry.js.map → p-26f3294b.entry.js.map} +0 -0
  286. /package/dist/twilight/{p-4c9e43fe.system.entry.js.map → p-31249011.system.entry.js.map} +0 -0
  287. /package/dist/twilight/{p-331c6ed5.system.entry.js.map → p-33c1da66.system.entry.js.map} +0 -0
  288. /package/dist/twilight/{p-9110491f.entry.js.map → p-34170712.entry.js.map} +0 -0
  289. /package/dist/twilight/{p-3f455e4b.entry.js.map → p-3ca55ad3.entry.js.map} +0 -0
  290. /package/dist/twilight/{p-3917911e.system.entry.js.map → p-3d646989.system.entry.js.map} +0 -0
  291. /package/dist/twilight/{p-37ef34af.entry.js.map → p-3e782481.entry.js.map} +0 -0
  292. /package/dist/twilight/{p-5eb4592c.entry.js.map → p-3f2e984c.entry.js.map} +0 -0
  293. /package/dist/twilight/{p-142c7169.entry.js.map → p-4049f624.entry.js.map} +0 -0
  294. /package/dist/twilight/{p-529f23c6.system.entry.js.map → p-41c210db.system.entry.js.map} +0 -0
  295. /package/dist/twilight/{p-b3451de7.system.entry.js.map → p-4c901b62.system.entry.js.map} +0 -0
  296. /package/dist/twilight/{p-462c7109.system.entry.js.map → p-59796bb2.system.entry.js.map} +0 -0
  297. /package/dist/twilight/{p-f8352357.entry.js.map → p-6029cdd7.entry.js.map} +0 -0
  298. /package/dist/twilight/{p-3b21bc63.entry.js.map → p-60dac7ef.entry.js.map} +0 -0
  299. /package/dist/twilight/{p-28c53329.system.entry.js.map → p-60f649f5.system.entry.js.map} +0 -0
  300. /package/dist/twilight/{p-5ee8e3ee.system.entry.js.map → p-61cec922.system.entry.js.map} +0 -0
  301. /package/dist/twilight/{p-c698caa6.system.entry.js.map → p-65c74d07.system.entry.js.map} +0 -0
  302. /package/dist/twilight/{p-099c2ddf.entry.js.map → p-65ee4bcd.entry.js.map} +0 -0
  303. /package/dist/twilight/{p-3971d884.system.entry.js.map → p-66f0d009.system.entry.js.map} +0 -0
  304. /package/dist/twilight/{p-a642fb2d.system.entry.js.map → p-69c4dc57.system.entry.js.map} +0 -0
  305. /package/dist/twilight/{p-f6a84618.entry.js.map → p-824f1195.entry.js.map} +0 -0
  306. /package/dist/twilight/{p-5b5a6101.entry.js.map → p-84013163.entry.js.map} +0 -0
  307. /package/dist/twilight/{p-bdf35a25.system.entry.js.map → p-8a9bfcbb.system.entry.js.map} +0 -0
  308. /package/dist/twilight/{p-816097f4.entry.js.map → p-8c3bf70a.entry.js.map} +0 -0
  309. /package/dist/twilight/{p-ea58fa22.entry.js.map → p-8e111e2e.entry.js.map} +0 -0
  310. /package/dist/twilight/{p-ad1bfcf3.entry.js.map → p-90e0ff36.entry.js.map} +0 -0
  311. /package/dist/twilight/{p-411b87ef.entry.js.map → p-92cbc26e.entry.js.map} +0 -0
  312. /package/dist/twilight/{p-c24b8585.system.entry.js.map → p-932a9495.system.entry.js.map} +0 -0
  313. /package/dist/twilight/{p-b5838794.entry.js.map → p-9c99ec9d.entry.js.map} +0 -0
  314. /package/dist/twilight/{p-cf060e6c.system.entry.js.map → p-9da459e3.system.entry.js.map} +0 -0
  315. /package/dist/twilight/{p-01aded94.system.entry.js.map → p-9da95409.system.entry.js.map} +0 -0
  316. /package/dist/twilight/{p-ab42e437.entry.js.map → p-9f52c186.entry.js.map} +0 -0
  317. /package/dist/twilight/{p-e651f83f.system.entry.js.map → p-a0bfb9f0.system.entry.js.map} +0 -0
  318. /package/dist/twilight/{p-4437951d.system.entry.js.map → p-b4dcca7d.system.entry.js.map} +0 -0
  319. /package/dist/twilight/{p-67d370cb.entry.js.map → p-ba73145a.entry.js.map} +0 -0
  320. /package/dist/twilight/{p-b854bd23.entry.js.map → p-bd157361.entry.js.map} +0 -0
  321. /package/dist/twilight/{p-12198e85.system.entry.js.map → p-c32b29f3.system.entry.js.map} +0 -0
  322. /package/dist/twilight/{p-4659c645.entry.js.map → p-cafa90ca.entry.js.map} +0 -0
  323. /package/dist/twilight/{p-554092d9.system.entry.js.map → p-cb051f40.system.entry.js.map} +0 -0
  324. /package/dist/twilight/{p-b4b32523.system.entry.js.map → p-d7834bb8.system.entry.js.map} +0 -0
  325. /package/dist/twilight/{p-4bc9089d.entry.js.map → p-da0d4708.entry.js.map} +0 -0
  326. /package/dist/twilight/{p-5273af20.entry.js.map → p-da239ecb.entry.js.map} +0 -0
  327. /package/dist/twilight/{p-cc5e1937.system.entry.js.map → p-e0c33d75.system.entry.js.map} +0 -0
  328. /package/dist/twilight/{p-bd89e063.system.entry.js.map → p-e3a5c60b.system.entry.js.map} +0 -0
  329. /package/dist/twilight/{p-c695b1d9.system.entry.js.map → p-e505c759.system.entry.js.map} +0 -0
  330. /package/dist/twilight/{p-788980fa.entry.js.map → p-e702680e.entry.js.map} +0 -0
  331. /package/dist/twilight/{p-a3cd1fad.entry.js.map → p-f289d1e4.entry.js.map} +0 -0
  332. /package/dist/twilight/{p-f36b71e2.system.entry.js.map → p-f7619cf4.system.entry.js.map} +0 -0
  333. /package/dist/twilight/{p-07f023da.entry.js.map → p-f8ddee2c.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"p-DRACrmyE.system.js","sources":["src/components/salla-product-options/interfaces.ts","src/components/salla-product-options/salla-product-options.scss?tag=salla-product-options","src/components/salla-product-options/salla-product-options.tsx"],"sourcesContent":["export enum DisplayType {\n COLOR = \"color\",\n DATE = \"date\",\n DATETIME = \"datetime\",\n DONATION = \"donation\",\n IMAGE = \"image\",\n MULTIPLE_OPTIONS = \"multiple-options\",\n NUMBER = \"number\",\n SINGLE_OPTION = \"single-option\",\n DIGITAL_CARD_VALUE = \"digital-code-value\",\n COUNTRY = \"country\",\n SPLITTER = \"splitter\",\n TEXT = \"text\",\n TEXTAREA = \"textarea\",\n THUMBNAIL = \"thumbnail\",\n TIME = \"time\",\n RADIO = \"radio\",\n CHECKBOX = \"checkbox\",\n MAP = \"map\",\n FILE = \"file\", // similar to image type (file-uploader component)\n COLOR_PICKER = \"color_picker\",\n BOOKING = \"booking\"\n}\n\nexport interface ProductDetail {\n id: string;\n sku: string;\n name: string;\n description: string;\n url: string;\n promotion_title: string;\n subtitle: string;\n type: string;\n status: string;\n price: number;\n sale_price: number;\n regular_price: number;\n starting_price: null;\n quantity: number;\n max_quantity: number;\n discount_ends: number;\n is_taxable: boolean;\n has_read_more: boolean;\n can_add_note: boolean;\n can_show_remained_quantity: boolean;\n can_upload_file: boolean;\n has_custom_form: boolean;\n is_on_sale: boolean;\n is_hidden_quantity: boolean;\n is_available: boolean;\n is_out_of_stock: boolean;\n weight: null;\n calories: null;\n image: SimpleImage;\n brand: Brand;\n donation?: ProductDonation;\n images: Image[];\n tags: Tag[];\n notify_availability: null;\n rating: Rating;\n options: Option[];\n sold_quantity: number;\n category: Category;\n}\n\nexport interface SimpleImage {\n url: string;\n alt: string;\n}\n\nexport interface Category {\n name: string;\n url: string;\n icon: string;\n}\n\nexport interface ProductDonation {\n target_message?: string;\n collected_amount?: number;\n target_amount?: number;\n target_percent?: number;\n target_end_date?: string;\n can_donate: boolean;\n custom_amount_enabled: boolean;\n}\n\nexport interface Image {\n id: number;\n url: string;\n main: boolean;\n three_d_image_url: string;\n alt: string;\n video_url: string;\n type: string;\n sort: number;\n}\n\nexport interface Option {\n id: number;\n name: string;\n required: boolean;\n type: string;\n placeholder: string;\n option_type: string;\n not_same_day_order: boolean;\n availability_range: number;\n from_date_time: null;\n to_date_time: null;\n visibility_condition?: { option: number, operator: \"=\" | \"!=\", value: number };\n details?: Detail[];\n condition_attributes: string;\n value?: any;\n length?: number;\n donation?: Donation\n}\n\nexport interface Donation {\n custom_amount_enabled: boolean;\n target_message?: string;\n target_date: string | \"2023-04-18\";\n target_end_date: string | \"2023-04-18\";\n target_amount: number;\n collected_amount: number;\n can_donate: boolean;\n}\n\nexport interface Detail {\n id: number;\n option_id: number;\n name: string;\n additional_price: number;\n option_value: null | string;\n image: null | string;\n color: null | string;\n is_out: boolean;\n skus_availability?: { [sku_id: number]: boolean };\n is_selected: boolean;\n is_default?: 0 | 1;\n code?: string;\n type?: string;\n\n}\n\nexport interface Brand {\n id: string;\n url: string;\n name: string;\n logo: string;\n}\n\nexport interface PreTaxPrice {\n amount: number;\n currency: Currency;\n}\n\nexport enum Currency {\n Sar = \"SAR\",\n}\n\nexport interface Promotion {\n title: string;\n sub_title: string;\n}\n\nexport interface Rating {\n count: number;\n stars: number;\n}\n\nexport interface Tag {\n name: string;\n url: string;\n}\n\nexport interface OptionConfig {\n singleOption?: OptionDisplayType;\n multipleOption?: OptionDisplayType;\n}\n\nexport interface OptionDisplayType {\n type: 'button' | 'default'; // defaults to 'default', which is select and checkbox for single and multiple options respectivly\n}\n","\n.s-product-options{\n &-wrapper{\n\n }\n &-option-container{\n\n }\n &-option{\n\n }\n &-option-label{\n\n }\n &-option-content{\n\n }\n &-colors-wrapper{\n\n }\n &-date-element{\n\n }\n &-time-element{\n \n }\n &-datetime-element{\n\n }\n &-image-input{\n\n }\n &-multiple-options-wrapper{\n\n }\n &-splitter{\n\n }\n &-text{\n\n }\n &-textarea{\n\n }\n &-thumbnails-wrapper{\n\n }\n}\n","import { Component, Prop, h, State, Element, Host, Event, type EventEmitter, Method } from '@stencil/core';\nimport { type Option, DisplayType, type Detail, OptionConfig } from './interfaces';\nimport CheckCircleIcon from '../../assets/svg/check.svg';\nimport CameraIcon from '../../assets/svg/camera.svg';\nimport FileIcon from '../../assets/svg/file-upload.svg';\n\n@Component({\n tag: 'salla-product-options',\n styleUrl: 'salla-product-options.scss',\n})\nexport class SallaProductOptions {\n\n constructor() {\n this.canDisabled = !salla.config.get('store.settings.product.notify_options_availability') || salla.url.is_page('cart');\n salla.lang.onLoaded(() => {\n this.outOfStockText = salla.lang.get(\"pages.products.out_of_stock\");\n this.donationAmount = salla.lang.get('pages.products.donation_amount');\n this.selectDonationAmount = salla.lang.getWithDefault('pages.products.select_donation_amount', 'تحديد مبلغ التبرع');\n this.selectAmount = salla.lang.getWithDefault('pages.products.select_amount', 'اختر المبلغ');\n });\n\n if (this.options) {\n try {\n this.setOptionsData(Array.isArray(this.options) ? this.options : JSON.parse(this.options));\n return;\n } catch (e) {\n salla.log('Bad json passed via options prop');\n }\n }\n if (!Array.isArray(this.optionsData)) {\n salla.log('Options is not an array[] ---> ', this.optionsData);\n this.setOptionsData([]);\n }\n\n if (this.productId && !salla.url.is_page('cart')) {\n salla.api.product.getDetails(this.productId, ['options']).then(resp => this.setOptionsData(resp.data.options));\n }\n }\n /**\n * Sets the options data for the product\n * @param optionsData - Array of product options\n */\n @Method()\n async setOptionsData(optionsData: Option[]) {\n this.optionsData = optionsData;\n const that = this\n this.optionsData[0]?.details?.forEach(function (detail) {\n Object.entries(detail.skus_availability || {})\n .filter(sku => !sku[1])\n .map(sku => that.outSkus.push(Number(sku[0])));\n });\n }\n\n @Element() host: HTMLElement;\n\n private fileTypes: Record<string, string> = {\n pdf: 'application/pdf',\n png: 'image/png',\n jpg: 'image/jpeg',\n word: 'application/doc,application/ms-doc,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n exl: 'application/excel,application/vnd.ms-excel,application/x-excel,application/x-msexcel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n txt: 'text/plain',\n };\n\n @State() optionsData: Option[]\n @State() outOfStockText = \"\"\n @State() donationAmount: string = salla.lang.get('pages.products.donation_amount')\n @State() selectDonationAmount: string = salla.lang.getWithDefault('pages.products.select_donation_amount', 'تحديد مبلغ التبرع')\n @State() selectAmount: string = salla.lang.getWithDefault('pages.products.select_amount', 'اختر المبلغ')\n @State() isCustomDonation = false;\n @State() selectedOptions = [];\n @State() canDisabled: boolean;\n @State() selectedSkus?: Array<string | number>;\n @State() selectedOutSkus?: Array<string | number>;\n @State() disableCardValue = true\n @State() availableDigitalCardValues: Detail[] = []\n\n private outSkus: Array<string | number> = [];\n private donationInput?: HTMLInputElement;\n private optionConfig: OptionConfig;\n /**\n * Avoid selection of previous default or selected card value option \n * when switching between digital card country options for the 1st time\n */\n private ignoreDefaultCardValue = false\n /**\n * The id of the product to which the options are going to be fetched for.\n */\n @Prop() productId: number = salla.config.get('page.id');\n\n /**\n * Product detail information.\n */\n @Prop() options: string\n\n /**\n * Hide the out of stock label.\n * Will be used in the case of live validation such as cart page and inline checkout\n */\n @Prop() hideOutLabel: string\n\n /**\n * A unique key used to generate distinct identifiers.\n * \n * This key is appended to a default value to ensure uniqueness\n * across instances or components where differentiation is required.\n */\n @Prop() uniqueKey: string\n\n /**\n * Configuration for customizing the display layout of product options.\n * The `config` prop accepts a JSON string that specifies the layout type for rendering options.\n * It allows customization of how single-option and multiple-option selections are displayed.\n * \n * Example Usage:\n * ```html\n * <salla-product-options \n * options=\"{{ product.options }}\" \n * product-id=\"{{ product.id }}\" \n * unique-key=\"abc123\"\n * config='{\n * \"single-option\": { \"type\": \"button\" },\n * \"multiple-option\": { \"type\": \"button\" }\n * }'>\n * </salla-product-options>\n * ```\n * \n * Example Config JSON:\n * ```json\n * {\n * \"single-option\": { \"type\": \"button\" },\n * \"multiple-option\": { \"type\": \"default\" }\n * }\n * ```\n * \n * - `single-option`:\n * - Defines the display style for single-option selections.\n * - `type`: Supported values:\n * - `\"button\"`: Displays options in a button-style grid layout.\n * - `\"default\"`: Displays options as a dropdown (default).\n * \n * - `multiple-option`:\n * - Defines the display style for multiple-option selections.\n * - `type`: Supported values:\n * - `\"button\"`: Displays options in a button-style grid layout.\n * - `\"default\"`: Displays options as a list of checkboxes (default).\n */\n @Prop() config: string;\n\n /**\n * Get the id's of the selected options.\n * */\n @Method()\n async getSelectedOptionsData() {\n const selectedOptions = {}\n const formData = (this.host as HTMLElement & { getElementSallaData: () => FormData }).getElementSallaData();\n formData.forEach((value, key) => {\n if (key.startsWith('options[')) { (selectedOptions[key.replace('options[', '').replace(']', '')] = value) }\n });\n return selectedOptions;\n }\n\n /**\n * Report options form validity.\n * */\n @Method()\n async reportValidity() {\n const requiredElements = this.host.querySelectorAll('[required]') as unknown as Array<HTMLInputElement>;\n let pass = true;\n for (let i = 0; i < requiredElements.length; i++) {\n //if there is only one invalid option, return false\n if ('reportValidity' in requiredElements[i] && !requiredElements[i].reportValidity()) {\n pass = false;\n }\n }\n return pass;\n }\n\n /**\n * Return true if there is any out of stock options are selected and vise versa.\n * */\n @Method()\n async hasOutOfStockOption() {\n return this.selectedOptions.some(option => option.is_out) || (this.selectedSkus?.length && this.selectedSkus?.every(sku => this.outSkus.includes(sku)));\n }\n\n /**\n * Get selected options.\n * */\n @Method()\n async getSelectedOptions() {\n return this.selectedOptions;\n }\n\n /**\n * Get a specific option by its id.\n * */\n @Method()\n async getOption(option_id) {\n return this.optionsData.find(option => option.id === option_id);\n }\n\n /**\n * An event that emitted when any option is changed.\n */\n @Event() changed: EventEmitter;\n\n // @ts-ignore\n private invalidHandler(event: Event, option: Option) {\n const closestProductOption = (event.target as HTMLInputElement).closest('.s-product-options-option') as HTMLElement;\n\n if (!closestProductOption.classList.contains('s-product-options-option-error')) {\n closestProductOption.classList.add('s-product-options-option-error');\n }\n\n if (!salla.url.is_page('cart')) {\n const firstInvalidElement = this.host.querySelector('.s-product-options-option-error');\n if (firstInvalidElement === closestProductOption) {\n this.scrollToElement(closestProductOption);\n }\n }\n }\n\n private scrollToElement(element: HTMLElement) {\n if (element) {\n element.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }\n }\n\n private changedHandler(event, option, fireChangeEvent = true) {\n const data = {\n event: event,\n option: option,\n detail: null,\n productId: this.productId\n };\n\n if (option.details) {\n const detail = option.details.find((detail) => {\n return Number(detail.id) === Number(event.target.value);\n });\n data.detail = detail;\n }\n\n if (option.type === 'country') {\n this.handleCountryOptionChange(event, data.detail);\n }\n\n const optionElement = event.target.closest('.s-product-options-option');\n if (event.target.value ||\n ((option.type === DisplayType.FILE || option.type === DisplayType.IMAGE) && event.type === 'added') ||\n (option.type === DisplayType.MAP && event.type === 'selected' && (event.target.lat && event.target.lng))) {\n setTimeout(() => {\n optionElement.classList.remove('s-product-options-option-error');\n }, 200);\n }\n\n if (option.type === DisplayType.DONATION) {\n salla.event.emit('product-options::donation-changed', {\n id: this.productId,\n price: event.target.value\n });\n }\n\n this.setSelectedSkus();\n this.handleRequiredMultipleOptions(option);\n\n const index = this.selectedOptions.findIndex(opt => opt.option_id === data.option.id);\n\n if (data.option.type === DisplayType.MULTIPLE_OPTIONS) {\n // Handle multiple selections\n const detailIndex = this.selectedOptions.findIndex(\n opt => opt.option_id === data.option.id && opt?.id === data.detail?.id\n );\n if (detailIndex > -1) {\n // If the option is already selected, remove it (unselect)\n this.selectedOptions.splice(detailIndex, 1);\n } else {\n // If the option is not selected, add it to the selectedOptions array\n this.selectedOptions.push({ ...data.detail, option_id: data.option.id });\n }\n } else {\n // Handle single selection\n if (!data.detail || Object.keys(data.detail).length === 0) {\n // If there is no value for the single-select, remove it from the selectedOptions array\n if (index > -1) {\n this.selectedOptions.splice(index, 1);\n }\n } else {\n // If a value exists, update or add the selection\n if (index > -1) {\n // Replace the existing selection with the new one\n this.selectedOptions[index] = { ...data.detail, option_id: data.option.id };\n } else {\n // If no selection exists for this input, add the new selection\n this.selectedOptions.push({ ...data.detail, option_id: data.option.id });\n }\n }\n }\n\n \n // Update optionsData directly\n this.optionsData = this.optionsData.map(opt => {\n if (opt.id === data.option.id) {\n return {\n ...opt,\n details: opt.details.map(detail => ({\n ...detail,\n is_selected: data.option.type === DisplayType.MULTIPLE_OPTIONS\n ? this.selectedOptions.some(selected => selected.id === detail.id)\n : Number(detail.id) === Number(data.detail?.id),\n value: data.detail?.value\n }))\n };\n }\n return opt;\n });\n // Emit the event only if fireChangeEvent is true\n if (fireChangeEvent) {\n this.changed.emit(data);\n salla.event.emit('product-options::change', data);\n }\n }\n\n\n private handleDonationOptions = (event, detail, type) => {\n if (detail === 'custom' && type === 'input') {\n salla.helpers.inputDigitsOnly(event.target)\n salla.event.emit('product-options::donation-changed', {\n id: this.productId,\n price: event.target.value\n });\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n this.isCustomDonation = event.target.value === 'custom';\n if (this.donationInput) {\n if (event.target.value === 'custom') {\n this.donationInput.value = '';\n this.donationInput.focus()\n } else {\n this.donationInput.value = event.target.value;\n }\n if (detail === 'custom') {\n return\n }\n salla.event.emit('product-options::donation-changed', {\n id: this.productId,\n price: event.target.value\n });\n }\n }\n\n private hideLabel = (option) => {\n if (option.type === DisplayType.DONATION && (option.donation && !option.donation.can_donate)) {\n return true;\n }\n return false;\n }\n\n private getExpireDonationMessage = (option) => {\n if (!option.donation) {\n return;\n }\n const completed = option.donation.target_amount <= option.donation.collected_amount;\n return <div class={{ \"s-product-options-donation-message\": true, \"s-product-options-donation-completed\": completed, \"s-product-options-donation-expired\": !completed }}>\n <p>{option.donation.target_message}</p>\n <span innerHTML={completed ? salla.money(option.donation.target_amount) : ''}></span>\n </div>\n }\n /**\n * loop throw all selected details, then get common sku, if it's only one, means we selected all of them;\n */\n private setSelectedSkus() {\n this.selectedSkus = this.selectedOptions.map(detail => Object.keys(detail.skus_availability || {}))\n .reduce((p, c) => p.filter(e => c.includes(e)), []) // Initialize accumulator as an empty array\n .map(sku => Number(sku));\n }\n \n\n private handleRequiredMultipleOptions(option) {\n if (option.type !== DisplayType.MULTIPLE_OPTIONS || !option.required) {\n return;\n }\n const optionContainer = this.host.querySelector(`[data-option-id=\"${option.id}\"]`);\n const hasChecked = optionContainer.querySelectorAll('input:checked').length;\n optionContainer.querySelectorAll('input').forEach(input => input.toggleAttribute('required', !hasChecked));\n }\n\n private getLatLng(value, type: 'lat' | 'lng') {\n return value\n ? value.split(',')[type === 'lat' ? 0 : 1]\n : '';\n }\n\n private getDisplayForType(option: Option) {\n if (this[`${option.type}Option`]) {\n return this[`${option.type}Option`](option);\n }\n\n if (option.type === DisplayType.COLOR_PICKER) {\n return this.colorPickerOption(option)\n }\n\n if (option.type === DisplayType.MULTIPLE_OPTIONS) {\n return this.multipleOptions(option);\n }\n\n if (option.type === DisplayType.SINGLE_OPTION) {\n return this.singleOption(option);\n }\n\n if (option.type === DisplayType.DIGITAL_CARD_VALUE) {\n return this.digitalCardValuesOption(option);\n }\n if (option.type === DisplayType.COUNTRY) {\n return this.countryOption(option);\n }\n\n if (option.type === DisplayType.BOOKING && salla.url.is_page(\"cart\")) {\n return <salla-booking-field onInvalidInput={(e) => this.invalidHandler(e, option)} option={option as any} productId={option.value}></salla-booking-field>\n }\n\n salla.log(`Couldn't find options type(${option.type})😢`);\n return '';\n }\n\n protected getOptionShownWhen(option: Option) {\n return option.visibility_condition\n ? { \"data-show-when\": `options[${option.visibility_condition.option}] ${option.visibility_condition.operator} ${option.visibility_condition.value}` }\n : {};\n }\n\n private getAvailableDigitalCardSKUs(detail: Detail) {\n const digitalCardOption = this.optionsData.find(({ type }) => type === 'digital-code-value')\n\n if (!digitalCardOption) throw new Error('product-options:: No digital card options found')\n\n const outofStockSKUs = Object.keys(detail.skus_availability).filter(key => detail.skus_availability[key] === false)\n\n this.availableDigitalCardValues = digitalCardOption.details.filter((op) => {\n\n return !Object.keys(op.skus_availability).filter(SKU_key => outofStockSKUs.includes(SKU_key)).length\n\n })\n\n }\n private handleCountryOptionChange(event: Event, detail: Detail) {\n event.stopImmediatePropagation()\n\n this.ignoreDefaultCardValue = true\n\n const currentCardValue = this.host.querySelector(\"input[data-code-value]:checked\") as HTMLInputElement | null\n\n if (currentCardValue) currentCardValue.checked = false\n\n const digitalCardOption = this.optionsData.find(({ type }) => type === 'digital-code-value')\n\n if (!digitalCardOption) throw new Error('product-options:: No digital card options found')\n\n this.getAvailableDigitalCardSKUs(detail)\n }\n\n private getSelectedDigitalCardOptions(option: Option) {\n const selectedOption = option.details.find(detail => detail.is_selected)\n const defaultOption = option.details.find(detail => !!detail.is_default) || option.details[0] /*option.details[0] only applys for counrty options*/\n if (!['digital-code-value', 'country'].includes(option.type)) return\n\n return selectedOption || defaultOption\n\n\n }\n\n //we need the cart Id for productOption Image\n componentWillLoad() {\n if(salla.url.is_page(\"cart\")){\n this.disableCardValue=false\n this.fillSelectedOptions();\n }\n\n if (this.config) {\n try {\n this.optionConfig = typeof this.config === 'string' ? JSON.parse(this.config) : this.config;\n } catch (error) {\n console.error('Failed to parse JSON in config prop:', error);\n }\n }\n\n const shouldSelectDefaultOption = this.optionsData.filter(({ type }) => [\"country\", \"digital-card-value\"].includes(type)).length > 0 && salla.url.is_page('cart')\n\n if (shouldSelectDefaultOption) {\n const countryOption = this.optionsData.find(option => option.type === 'country')\n\n const defaultSelection = countryOption && this.getSelectedDigitalCardOptions(countryOption)\n\n if (defaultSelection) {\n this.getAvailableDigitalCardSKUs(defaultSelection)\n }\n }\n this.outOfStockText = salla.lang.get('pages.products.out_of_stock')\n return salla.onReady(() => {\n const needsCartId = (!salla.storage.get('cart.id') && this.optionsData.some(option => ['file', 'image'].includes(option.type)));\n return needsCartId ? salla.api.cart.getCurrentCartId(false, \"salla-product-options\") : null;\n })\n }\n\n private hideDigitalCardsOptions(option:Option){\n return (this.disableCardValue && option.type===DisplayType.DIGITAL_CARD_VALUE && !salla.url.is_page(\"cart\"))\n }\n\n render() {\n if (this.optionsData?.length === 0) {\n return;\n }\n\n return (\n <Host class=\"s-product-options-wrapper\">\n {/* TODO:: move salla-conditional-field logic to here, no need of another component*/}\n <salla-conditional-fields>\n {this.optionsData.map((option: Option) =>\n <div key={option.id} class={`s-product-options-option-container${option.visibility_condition || this.hideDigitalCardsOptions(option) ? ' hidden' : ''}`}\n data-option-id={option.id}\n {...this.getOptionShownWhen(option)}>\n {option.name === 'splitter' ?\n this.splitterOption()\n : <div class={{ \"s-product-options-option\": true, \"s-product-options-option-booking\": option.type === DisplayType.BOOKING && salla.url.is_page(\"cart\") }} data-option-type={option.type}\n data-option-required={`${option.required}`}>\n <label htmlFor={`options[${option.id}]`} class={`s-product-options-option-label ${this.hideLabel(option) ? 's-product-options-option-label-hidden' : ''}`}>\n <b>\n {option.name}\n {option.required && <span> * </span>} </b>\n <small>{option.placeholder}</small>\n </label>\n <div class={`s-product-options-option-content ${this.hideLabel(option) || (option.type === DisplayType.BOOKING && salla.url.is_page(\"cart\")) ? 's-product-options-option-content-full-width' : ''}`}>\n {this.getDisplayForType(option)}\n </div>\n </div>}\n </div>\n )}\n </salla-conditional-fields>\n </Host>\n );\n\n }\n\n private generateUniqueKey(defaultValue: string): string {\n return this.uniqueKey ? `${defaultValue}-${this.uniqueKey}` : defaultValue;\n }\n private fillSelectedOptions() {\n this.selectedOptions = this.optionsData.reduce((acc, opt) => {\n const selectedDetails = opt.details.filter(detail => detail.is_selected);\n const mappedDetails = selectedDetails.map(detail => ({\n ...detail,\n option_id: opt.id\n }));\n return acc.concat(mappedDetails);\n }, []);\n }\n\n componentDidLoad() {\n if (this.optionsData?.length === 0 && !this.optionsData.some(option => option.type === DisplayType.DONATION)) {\n return;\n }\n const selectedDonationOption = this.optionsData.find(option => option.type === DisplayType.DONATION)?.details.find(detail => detail.is_selected);\n if (!selectedDonationOption) {\n return;\n }\n setTimeout(() => {\n salla.event.emit('product-options::donation-changed', {\n id: this.productId,\n price: selectedDonationOption.additional_price\n });\n }, 1000);\n }\n //@ts-ignore\n private donationOption(option: Option, product: Product) {\n return <div class=\"s-product-options-donation-wrapper\">\n\n {option.donation?.can_donate ? [\n option.donation ?\n <div key={option.id} class=\"s-product-options-donation-progress\">\n <salla-progress-bar donation={option.donation}>\n </salla-progress-bar>\n </div>\n : '',\n option.details.length ?\n [<h4 key={option.id}>{this.selectAmount}</h4>,\n <div key={option.id} class=\"s-product-options-donation-options\">\n {option.details.map((detail, i) =>\n <div key={option.id} class=\"s-product-options-donation-options-item\">\n <input id={this.generateUniqueKey(`donation-option-${i}`)} type=\"radio\" name=\"donating_option\" checked={detail.is_selected} value={detail.additional_price} onChange={e => this.handleDonationOptions(e, detail, 'option')} />\n <label htmlFor={this.generateUniqueKey(`donation-option-${i}`)}>\n <span innerHTML={salla.money(detail.name)}></span>\n </label>\n </div>\n )}\n {option.donation?.custom_amount_enabled ?\n <div class=\"s-product-options-donation-options-item\">\n <input id={this.generateUniqueKey(\"donation-option-custom\")} type=\"radio\" name=\"donating_option\" value=\"custom\" onChange={e => this.handleDonationOptions(e, 'custom', 'option')} />\n <label htmlFor={this.generateUniqueKey(\"donation-option-custom\")}>\n <span> {this.selectDonationAmount} </span>\n </label>\n </div>\n : ''\n }\n </div>] : '',\n\n <div key={option.id} class={{ \"s-product-options-donation-input-group\": true, \"shown\": !option.details.length || (option.details.length && this.isCustomDonation) }}>\n <input\n type=\"text\"\n id=\"donating-amount\"\n name=\"donation_amount\"\n class=\"s-form-control\"\n ref={el => { this.donationInput = el as HTMLInputElement }}\n value={\n option.details.length\n && option.details.some(detail => detail.is_selected)\n ? option.details.find(detail => detail.is_selected).additional_price\n : option.value}\n // required\n placeholder={option.placeholder}\n onInput={e => this.handleDonationOptions(e, 'custom', 'input')}\n onBlur={e => this.changedHandler(e, option)}\n onInvalid={(e) => this.invalidHandler(e, option)}\n />\n {/* value={option.value} */}\n <span class=\"s-product-options-donation-amount-currency\">\n {salla.config.currency(salla.config.get('user.currency_code')).symbol}\n </span>\n </div>\n ] :\n this.getExpireDonationMessage(option)\n }\n </div>\n }\n\n private fileUploader(option: Option, additions: Record<string, unknown> | null = null) {\n return <salla-file-upload\n {...(additions || {})}\n payload-name=\"file\"\n value={option.value}\n instant-upload={true}\n name={`options[${option.id}]`}\n required={!option.visibility_condition && option.required}\n height=\"120px\"\n onAdded={(e) => this.changedHandler(e, option)}\n url={salla.cart.api.getUploadImageEndpoint()}\n form-data={{ cart_item_id: this.productId, product_id: this.productId }}\n onInvalidInput={(e) => this.invalidHandler(e, option)}\n class={{ \"s-product-options-image-input\": true, required: option.required }}\n >\n <div class=\"s-product-options-filepond-placeholder\">\n <span class=\"s-product-options-filepond-placeholder-icon\"\n innerHTML={(additions as { accept: string }).accept?.split(',').every(type => type.includes('image'))\n ? CameraIcon\n : FileIcon}\n />\n <p class=\"s-product-options-filepond-placeholder-text\">{salla.lang.get('common.uploader.drag_and_drop')}</p>\n <span class=\"filepond--label-action\">{salla.lang.get('common.uploader.browse')}</span>\n </div>\n </salla-file-upload>\n }\n\n //@ts-ignore\n private imageOption(option: Option) {\n return this.fileUploader(option, { accept: 'image/png,image/jpeg,image/jpg,image/gif' });\n }\n\n //@ts-ignore\n private fileOption(option: Option) {\n const types = option.details.map(detail => this.fileTypes[detail.name]).filter(Boolean);\n return types?.length\n ? this.fileUploader(option, { accept: types.join(',') })\n : 'File types not selected.';\n }\n\n // TODO: (ONLY FOR TESTING!) find a better way to make it testable, e.g. wrap it with a unique class like textOption\n //@ts-ignore\n private numberOption(option: Option) {\n return <input\n type=\"text\"\n value={option.value}\n class=\"s-form-control\"\n required={!option.visibility_condition && option.required}\n name={`options[${option.id}]`}\n placeholder={option.placeholder}\n onBlur={e => this.changedHandler(e, option)}\n onInvalid={(e) => this.invalidHandler(e, option)}\n onInput={e => salla.helpers.inputDigitsOnly(e.target)} />\n }\n\n //@ts-ignore\n private splitterOption() {\n return <div class=\"s-product-options-splitter\" />\n }\n\n //@ts-ignore\n private textOption(option: Option) {\n return <div class=\"s-product-options-text\">\n <input\n type=\"text\"\n value={option.value}\n maxLength={option?.length}\n class='s-form-control'\n required={!option.visibility_condition && option.required}\n name={`options[${option.id}]`}\n placeholder={option.placeholder}\n onInvalid={(e) => this.invalidHandler(e, option)}\n onChange={e => this.changedHandler(e, option)} />\n </div>\n }\n\n //@ts-ignore\n private textareaOption(option: Option) {\n //todo::remove mt-1 class, and if it's okay to remove the tag itself will be great\n return <div class=\"s-product-options-textarea\">\n <div class=\"mt-1\">\n <textarea\n rows={4}\n value={option.value}\n maxLength={option?.length}\n class=\"s-form-control\"\n required={!option.visibility_condition && option.required}\n id={`options[${option.id}]`}\n name={`options[${option.id}]`}\n placeholder={option.placeholder}\n onInvalid={(e) => this.invalidHandler(e, option)}\n onChange={(e) => this.changedHandler(e, option)} />\n </div>\n </div>\n }\n\n //@ts-ignore\n private mapOption(option: Option) {\n return <salla-map\n zoom={15}\n lat={this.getLatLng(option.value, 'lat')}\n lng={this.getLatLng(option.value, 'lng')}\n name={`options[${option.id}]`}\n searchable={true}\n required={option.required}\n onInvalidInput={(e) => this.invalidHandler(e, option)}\n onSelected={e => this.changedHandler(e, option)} />\n }\n\n private colorPickerOption(option: Option) {\n return <salla-color-picker\n onSubmitted={e => this.changedHandler(e, option)}\n name={`options[${option.id}]`}\n required={!option.visibility_condition && option.required}\n onInvalidInput={(e) => this.invalidHandler(e, option)}\n color={option.value} />\n }\n\n /**\n * ============= Date Time options =============\n */\n //@ts-ignore\n private timeOption(option: Option) {\n return <salla-datetime-picker\n noCalendar={true}\n enableTime={true}\n dateFormat=\"h:i K\"\n value={option.value}\n placeholder={option.name}\n required={!option.visibility_condition && option.required}\n name={`options[${option.id}]`}\n class=\"s-product-options-time-element\"\n onInvalidInput={(e) => this.invalidHandler(e, option)}\n onPicked={e => this.changedHandler(e, option)} />\n }\n\n //@ts-ignore\n private dateOption(option: Option) {\n //todo:: consider date-range @see https://github.com/SallaApp/theme-raed/blob/master/src/assets/js/partials/product-options.js#L8-L23\n return <div class=\"s-product-options-date-element\">\n <salla-datetime-picker\n value={option.value}\n placeholder={option.name}\n required={!option.visibility_condition && option.required}\n minDate={new Date()}\n name={`options[${option.id}]`}\n onInvalidInput={(e) => this.invalidHandler(e, option)}\n onPicked={e => this.changedHandler(e, option)} />\n </div>\n }\n\n //@ts-ignore\n private datetimeOption(option: Option) {\n //todo:: consider date-range @see https://github.com/SallaApp/theme-raed/blob/master/src/assets/js/partials/product-options.js#L8-L23\n return <div class=\"s-product-options-datetime-element\">\n <salla-datetime-picker\n enableTime={true}\n value={option.value}\n dateFormat=\"Y-m-d G:i:K\"\n placeholder={option.name}\n required={!option.visibility_condition && option.required}\n name={`options[${option.id}]`}\n maxDate={option.to_date_time}\n minDate={option.from_date_time}\n onInvalidInput={(e) => this.invalidHandler(e, option)}\n onPicked={e => this.changedHandler(e, option)} />\n </div>\n }\n\n /**\n * ============= Advanced options =============\n */\n protected getOptionDetailName(detail: Detail, outOfStock = true, optionType?: string) {\n let detailName;\n if (optionType && optionType === DisplayType.COLOR) {\n detailName = detail.name\n + ((outOfStock && this.isOptionDetailOut(detail) && !salla.url.is_page(\"cart\")) && !this.hideOutLabel ? ` <br/> <p> ${this.outOfStockText} </p>` : '')\n + (detail.additional_price ? ` <p> (${salla.money(detail.additional_price, false)}) </p>` : '');\n }\n\n if(!detailName){\n detailName = detail.name\n + ((outOfStock && this.isOptionDetailOut(detail) && !salla.url.is_page(\"cart\")) && !this.hideOutLabel ? ` - ${this.outOfStockText}` : '')\n + (detail.additional_price ? ` (${salla.money(detail.additional_price, false)})` : '');\n }\n\n //Some merchants adding price to the names of the options,\n //and because we are using this inside select option, we need to replace the html currency symbol with the store currency symbol\n return detailName.replace('<i class=sicon-sar></i>',salla.config.currency()?.symbol || 'ر.س');\n }\n\n\n protected isOptionDetailOut(detail: Detail) {\n if (detail.is_out || !detail.skus_availability || !this.selectedSkus?.length) {\n return detail.is_out;\n }\n\n const isDetailSelected = this.selectedOptions.filter(option => option.id === detail.id).length;\n //if the current options is the only selected option, so we are sure that it's not out, because there is no other options selected yet\n if (isDetailSelected && this.selectedOptions.length === 1) {\n return false;\n }\n\n //if current details has sku in the possible outSkus it's out for sure\n if (isDetailSelected) {\n //here we will get the possible outSkus for current selected options\n const outSelectableSkus = this.selectedSkus.filter(sku => this.outSkus.includes(sku));\n return Object.keys(detail.skus_availability).some(sku => outSelectableSkus.includes(Number(sku)))\n }\n\n return this.selectedOptions.some(option => option.is_out && option.option_id !== detail.option_id)\n\n }\n\n /**\n * Renders a single input element (radio or checkbox) for an option detail.\n * @param type - The type of input element ('radio' or 'checkbox').\n * @param detail - The detail object representing an option detail.\n * @param option - The parent option object containing the details.\n * @param isRequired - Indicates if the input is required based on the option's rules.\n * @param name - The name attribute for the input element.\n * @returns HTMLElement - A labeled input element.\n */\n private renderInput(\n type: 'radio' | 'checkbox',\n detail: Detail,\n option: Option,\n isRequired: boolean,\n name: string,\n buttonStyle: boolean,\n ): HTMLElement {\n const id = this.generateUniqueKey(`${type}-${option.id}-${detail.id}`);\n const isDisabled = this.isOptionDetailOut(detail);\n return (\n <label class={{\n \"s-product-options-disabled\": isDisabled,\n }}>\n <input\n id={id}\n type={type}\n name={name}\n value={detail.id}\n disabled={isDisabled}\n required={isRequired}\n checked={detail.is_selected}\n onInvalid={(e) => this.invalidHandler(e, option)}\n onChange={(e) => this.changedHandler(e, option)}\n />\n <div class={{\"s-product-options-grid-mode-span\": buttonStyle, \"s-product-options-disabled\": isDisabled}}>\n {this.getOptionDetailName(detail)}\n </div>\n </label>\n );\n }\n\n /**\n * Renders a collection of input elements for all details of an option.\n * @param type - The type of input elements ('radio' or 'checkbox').\n * @param option - The parent option object containing the details.\n * @param isRequired - Indicates if the inputs are required based on the option's rules.\n * @returns HTMLElement[] - An array of labeled input elements.\n */\n private renderOptionDetails(\n type: 'radio' | 'checkbox',\n option: Option,\n isRequired: boolean,\n buttonStyle: boolean = false\n ): HTMLElement[] {\n const name = type === 'radio' ? `options[${option.id}]` : `options[${option.id}][]`;\n return option?.details.map((detail: Detail) =>\n this.renderInput(type, detail, option, isRequired, name, buttonStyle)\n );\n }\n\n /**\n * Renders a dropdown (select) element for a single-option selection.\n * @param option - The parent option object.\n * @returns HTMLElement - A select dropdown element with all option details.\n */\n private renderSelect(option: Option): HTMLElement {\n return (\n <div>\n <select\n name={`options[${option.id}]`}\n required={!option.visibility_condition && option.required}\n class=\"s-form-control\"\n onInvalid={(e) => this.invalidHandler(e, option)}\n onChange={(e) => this.changedHandler(e, option)}\n >\n <option value=\"\">{option.placeholder}</option>\n {option?.details.map((detail: Detail) => (\n <option\n key={detail.id}\n value={detail.id}\n disabled={this.canDisabled && this.isOptionDetailOut(detail)}\n selected={detail.is_selected}\n >\n {this.getOptionDetailName(detail)}\n </option>\n ))}\n </select>\n </div>\n );\n }\n\n /**\n * Renders a grid-based layout for option inputs (radio or checkbox).\n * @param type - The type of input elements ('radio' or 'checkbox').\n * @param option - The parent option object containing the details.\n * @param isRequired - Indicates if the inputs are required based on the option's rules.\n * @returns HTMLElement - A grid-based container with input elements.\n */\n private renderButtonStyle(\n type: 'radio' | 'checkbox',\n option: Option,\n isRequired: boolean\n ): HTMLElement {\n return (\n <div class=\"s-product-options-grid-mode\">\n {this.renderOptionDetails(type, option, isRequired, true)}\n </div>\n );\n }\n\n /**\n * Renders a single-option selection, either as a grid or dropdown, based on configuration.\n * @param option - The parent option object.\n * @returns HTMLElement - The rendered single-option element.\n */\n private singleOption(option: Option): HTMLElement {\n const buttonStyle = this.optionConfig?.['single-option']?.type === 'button';\n const isRequired = !option.visibility_condition && option.required;\n\n return buttonStyle\n ? this.renderButtonStyle('radio', option, isRequired)\n : this.renderSelect(option);\n }\n\n /**\n * Renders a multiple-option selection, either as a grid or list, based on configuration.\n * @param option - The parent option object.\n * @returns HTMLElement - The rendered multiple-option element.\n */\n private multipleOptions(option: Option): HTMLElement {\n const buttonStyle = this.optionConfig?.['multiple-option']?.type === 'button';\n const isRequired =\n option.required &&\n !option.details.some((detail) => detail.is_selected) &&\n !option.visibility_condition;\n\n return buttonStyle\n ? this.renderButtonStyle('checkbox', option, isRequired)\n : (\n <div\n class={{\n 's-product-options-multiple-options-wrapper': true,\n required: option.required,\n }}\n >\n {this.renderOptionDetails('checkbox', option, isRequired)}\n </div>\n );\n }\n \n //@ts-ignore\n private colorOption(option: Option) {\n return (\n <fieldset\n class=\"s-product-options-colors-wrapper\"\n >\n {option?.details.map((detail) => (\n <div\n class=\"s-product-options-colors-item\"\n key={detail.id}\n >\n <input\n type=\"radio\"\n value={detail.id}\n required={!option.visibility_condition && option.required}\n checked={detail.is_selected}\n name={`options[${option.id}]`}\n disabled={this.canDisabled && this.isOptionDetailOut(detail)}\n id={this.generateUniqueKey(`color-${this.productId}-${option.id}-${detail.id}`)}\n onInvalid={(e) => this.invalidHandler(e, option)}\n onChange={(e) => this.changedHandler(e, option)}\n />\n <label htmlFor={this.generateUniqueKey(`color-${this.productId}-${option.id}-${detail.id}`)}>\n <span style={{ backgroundColor: detail.color }} />\n <div innerHTML={this.getOptionDetailName(detail, true, option.type)} />\n </label>\n </div>\n ))}\n </fieldset>\n );\n } \n\n //@ts-ignore\n private thumbnailOption(option: Option) {\n return <div class=\"s-product-options-thumbnails-wrapper\">\n {option.details.map((detail: Detail) => {\n return <div key={detail.id}>\n <input type=\"radio\"\n value={detail.id}\n data-itemid={detail.id} //todo:: why need this? it's already in the value!\n required={!option.visibility_condition && option.required}\n checked={detail.is_selected}\n name={`options[${option.id}]`}\n data-img-id={detail.option_value}\n disabled={this.canDisabled && this.isOptionDetailOut(detail)}\n id={this.generateUniqueKey(`option_${this.productId}-${option.id}_${detail.id}`)}\n onInvalid={(e) => this.invalidHandler(e, option)}\n onChange={(e) => this.changedHandler(e, option)} />\n <label htmlFor={this.generateUniqueKey(`option_${this.productId}-${option.id}_${detail.id}`)}\n data-img-id={detail.option_value}\n class=\"go-to-slide\">\n <img data-src={detail.image} src={detail.image} title={detail.name} alt={detail.name} />\n <span innerHTML={CheckCircleIcon} class=\"s-product-options-thumbnails-icon\" />\n {this.isOptionDetailOut(detail) ?\n [\n <small key={detail.id} class=\"s-product-options-thumbnails-stock-badge\">{this.outOfStockText}</small>,\n this.canDisabled ? <div key={detail.id} class=\"s-product-options-thumbnails-badge-overlay\" /> : '',\n ]\n : ''}\n </label>\n <p>{this.getOptionDetailName(detail, false)} </p>\n </div>\n })}\n </div>\n }\n\n // Digital card options\n private digitalCardValuesOption(option: Option) {\n\n return <div class=\"s-product-options-digital-card-wrapper\">\n {this.availableDigitalCardValues.length > 0 ? this.availableDigitalCardValues.map((detail) => {\n const id = String(detail.id)\n return <label htmlFor={this.generateUniqueKey(id.toString())} key={id} class=\"s-product-options-digital-card-option\">\n <input type=\"radio\" data-code-value class=\"s-form-control s-product-options-digital-card-input\" value={detail.id}\n name={`options[${option.id}]`}\n id={this.generateUniqueKey(id.toString())}\n required={!option.visibility_condition && option.required}\n onInvalid={(e) => this.invalidHandler(e, option)}\n {...(!this.ignoreDefaultCardValue ? {defaultChecked: this.getSelectedDigitalCardOptions(option)?.id === detail.id}:{})}\n\n />\n <span>{detail.name} {salla.config?.currency()?.symbol}</span>\n </label>\n })\n : <div class=\"s-product-options-digital-card-out-of-stock\"/>\n }\n </div>\n }\n private countryOption(option: Option) {\n return <div class=\"s-product-options-digital-card-wrapper\">\n {option.details.map((detail) => {\n\n return <label htmlFor={this.generateUniqueKey(detail.id.toString())} key={detail.id} class={{\"s-product-options-digital-card-option\":true,\"s-product-options-digital-card-option-stock-out\":detail.is_out}}>\n <input id={this.generateUniqueKey(detail.id.toString())} type=\"radio\" class=\"s-form-control s-product-options-digital-card-input\" value={detail.id}\n name={`options[${option.id}]`}\n disabled={detail.is_out}\n required={!option.visibility_condition && option.required}\n onInvalid={(e) => this.invalidHandler(e, option)}\n onChange={e => this.changedHandler(e, option)}\n onClick={()=>{ this.disableCardValue = false}}\n {...(salla.url.is_page(\"cart\") ? {defaultChecked:this.getSelectedDigitalCardOptions(option)?.id === detail.id}:{})}\n\n />\n <img loading='lazy' alt={detail.code} height={24} width={24} class=\"s-product-options-country-flag\" src={`https://cdn.assets.salla.network/prod/admin/cp/assets/flags/1x1/${String(detail.code).toLocaleLowerCase()}.svg`}/>\n <span >{detail.name}</span>\n </label>\n })\n }\n </div>\n\n }\n\n}"],"names":["CheckCircleIcon"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"p-STaxwEDu.system.js","sources":["src/components/salla-tiered-offer/interfaces.ts","src/components/salla-tiered-offer/constants.ts","src/components/salla-tiered-offer/utils.ts","src/components/salla-tiered-offer/salla-tiered-offer.scss?tag=salla-tiered-offer","src/components/salla-tiered-offer/salla-tiered-offer.tsx"],"sourcesContent":["export enum DiscountType {\n PERCENTAGE = \"percentage\",\n FIXED = \"fixed\",\n}\n\n\nexport interface Discount {\n name?: string;\n type?: DiscountType;\n value?: number;\n min_spend?: number;\n}\n\nexport interface TieredOfferDetails {\n based_on?: string;\n ends_at?: number;\n start_value?: number;\n end_value?: number;\n current_value?: number;\n discounts?: Discount[];\n with_current_cart?: boolean;\n applied_with_coupon?: boolean;\n}\n\nexport interface Offer {\n id?: number;\n type?: string;\n title?: string;\n description?: string;\n details?: TieredOfferDetails | null;\n}\n\nexport interface TieredOfferTier {\n name: string;\n tier_name: string;\n discount: string;\n icon: string;\n threshold: number;\n text_color?: string;\n index: number;\n}\n\nexport interface TieredOfferData {\n current_tier: string;\n tiers: TieredOfferTier[];\n}\n\nexport interface TieredOfferConfig {\n staticIcons: string[];\n staticColors: string[];\n}\n","import { TieredOfferConfig } from './interfaces';\nimport StarIcon from '../../assets/svg/star-rounded.svg';\nimport StarsIcon from '../../assets/svg/stars.svg';\nimport GoldIcon from '../../assets/svg/gold.svg';\nimport DiamondIcon from '../../assets/svg/diamond-02.svg';\n\nexport const TIERED_OFFER_CONFIG: TieredOfferConfig = {\n staticIcons: [StarIcon, StarsIcon, GoldIcon, DiamondIcon],\n staticColors: ['#993018', '#444444', '#D18F36', '#315F9C']\n};","import { TieredOfferTier } from './interfaces';\n\nexport class TierUtils {\n /**\n * Find tier by index\n */\n static findTierByIndex(tiers: TieredOfferTier[], index: number): TieredOfferTier | null {\n return tiers.find(tier => tier.index === index) || null;\n }\n\n /**\n * Find tier by tier name\n */\n static findTierByName(tiers: TieredOfferTier[], tierName: string): TieredOfferTier | null {\n return tiers.find(tier => tier.tier_name === tierName) || null;\n }\n\n /**\n * Get tier name by index\n */\n static getTierNameByIndex(tiers: TieredOfferTier[], index: number): string | undefined {\n return this.findTierByIndex(tiers, index)?.tier_name;\n }\n\n /**\n * Find current tier index based on current value\n */\n static findCurrentTierIndex(currentValue: number, tiers: TieredOfferTier[]): number {\n if (!tiers) return 0;\n \n for (let i = tiers.length - 1; i >= 0; i--) {\n if (currentValue >= tiers[i].threshold) {\n return tiers[i].index;\n }\n }\n return 0;\n }\n}","\n// SVG styling for milestone icons \n.s-tiered-offer-milestone-icon {\n svg {\n color: currentColor;\n \n path {\n stroke: currentColor;\n fill: none;\n }\n }\n \n // Active and completed states - fill the star icon, keep others as stroke\n &.s-tiered-offer-milestone-active,\n &.s-tiered-offer-milestone-completed {\n svg {\n path {\n fill: currentColor;\n stroke: none;\n }\n \n // For stroke-based icons (crown, stars, diamond) \n &[fill=\"none\"] path {\n fill: none;\n stroke: currentColor;\n }\n }\n }\n}\n\n// RTL Support \n[dir=\"rtl\"] {\n .s-tiered-offer-progress-wrapper {\n .s-tiered-offer-progress-bg {\n transform: scaleX(-1);\n }\n \n .s-tiered-offer-progress-fill {\n transform: scaleX(-1);\n left: auto;\n }\n }\n\n .flip-x {\n transform: scaleX(-1);\n }\n}\n","import { Component, Host, h, State } from '@stencil/core';\nimport { Offer, TieredOfferTier, TieredOfferData, DiscountType } from './interfaces';\nimport { TIERED_OFFER_CONFIG } from './constants';\nimport { TierUtils } from './utils';\n\n@Component({\n tag: 'salla-tiered-offer',\n styleUrl: 'salla-tiered-offer.scss',\n})\nexport class SallaTieredOffer {\n\n constructor() {\n salla.lang.onLoaded(() => {\n this.loyaltyProgramText = salla.lang.get('blocks.tiered_offer.program_title');\n this.currentTierText = salla.lang.get('blocks.tiered_offer.current_tier');\n this.discountText = salla.lang.get('blocks.tiered_offer.discount');\n this.benefitText = salla.lang.get('blocks.tiered_offer.tier_description');\n });\n }\n\n\n @State() tieredOfferData: TieredOfferData;\n @State() apiOfferData: Offer;\n @State() currentTierIndex: number = 0;\n @State() currentTier: string;\n @State() activeTabTier: string;\n\n @State() canRender: boolean = false;\n @State() isLoading: boolean = false;\n\n // Language strings\n @State() loyaltyProgramText: string;\n @State() currentTierText: string;\n @State() discountText: string;\n @State() benefitText: string;\n\n async componentWillLoad() {\n try {\n await salla.onReady();\n \n if (!this.checkFeatureEnabled()) {\n return;\n }\n \n if (!this.checkCartExists()) {\n return;\n }\n \n this.isLoading = true;\n \n const offerData = await this.fetchTieredOfferData();\n if (!offerData) {\n return;\n }\n \n this.initializeComponent(offerData);\n \n } catch (error) {\n this.canRender = false;\n salla.logger.warn('salla-tiered-offer:: ', error);\n } finally {\n this.isLoading = false;\n }\n }\n \n private checkFeatureEnabled(): boolean {\n return salla.config.get('store.features')?.includes('tiered-offer');\n }\n \n private checkCartExists(): boolean {\n return !!salla.storage.get(\"cart\")?.summary?.count;\n }\n \n private validateCouponCompatibility(offerData: Offer, cartCoupon?: any): boolean {\n // If coupon is applied but offer doesn't support coupons, widget should be hidden\n return !(cartCoupon && !offerData.details?.applied_with_coupon);\n }\n \n private async fetchTieredOfferData(): Promise<Offer | null> {\n try {\n const { data }: { data: Offer[] } = await salla.api.cart.offers();\n const tieredOffer = data.find(offer => offer.type === \"tiered_offer\");\n \n if (!tieredOffer) {\n return null;\n }\n \n // Hide widget if coupon is applied and offer doesn't support coupons\n if (!this.validateCouponCompatibility(tieredOffer, salla.storage.get(\"cart\")?.coupon)) {\n this.canRender = false;\n return null;\n }\n \n return tieredOffer;\n } catch (error) {\n throw error;\n }\n }\n \n private initializeComponent(apiOfferData: Offer): void {\n this.apiOfferData = apiOfferData;\n \n // Map tiered details data to component format\n this.tieredOfferData = this.mapApiDataToTiers(this.apiOfferData);\n this.loyaltyProgramText = this.apiOfferData.title || this.loyaltyProgramText;\n \n // Find current tier index based on current_value from API\n const currentValue = this.apiOfferData.details?.current_value || 0;\n const currentTierIndex = this.findCurrentTierIndex(currentValue);\n \n // Only render if user has reached at least the first tier\n if (currentTierIndex === 0) {\n this.canRender = false;\n return;\n }\n \n this.currentTierIndex = currentTierIndex;\n this.currentTier = TierUtils.getTierNameByIndex(this.tieredOfferData.tiers, currentTierIndex);\n this.activeTabTier = this.currentTier;\n this.canRender = true;\n }\n\n componentDidLoad() {\n salla.event.on(\"cart::updated\", (updatedCart) => {\n this.updateOfferValues(updatedCart);\n });\n }\n\n private mapApiDataToTiers(apiData: Offer): TieredOfferData {\n // Sort discounts by min_spend to create proper tier order\n const sortedDiscounts = [...apiData.details.discounts].sort((a, b) => a.min_spend - b.min_spend);\n\n const tiers: TieredOfferTier[] = sortedDiscounts.map((discount, index) => ({\n name: discount.name, \n tier_name: discount.name, \n discount: discount.type === DiscountType.PERCENTAGE ? `${salla.helpers.number(discount.value)}%` : salla.money(discount.value),\n icon: TIERED_OFFER_CONFIG.staticIcons[index] || TIERED_OFFER_CONFIG.staticIcons[0], \n threshold: discount.min_spend,\n text_color: TIERED_OFFER_CONFIG.staticColors[index], \n index: index + 1\n }));\n\n return {\n current_tier: TierUtils.getTierNameByIndex(tiers, this.findCurrentTierIndex(apiData.details.current_value, tiers)),\n tiers\n };\n }\n\n private findCurrentTierIndex(currentValue: number, tiers = this.tieredOfferData?.tiers): number {\n return TierUtils.findCurrentTierIndex(currentValue, tiers || []);\n }\n\n private updateOfferValues(updatedCart: { items: any[], sub_total: number, coupon?: any }) {\n if (!this.apiOfferData || !this.tieredOfferData) {\n return;\n }\n\n // Check coupon compatibility\n if (!this.validateCouponCompatibility(this.apiOfferData, updatedCart.coupon)) {\n this.canRender = false;\n return;\n }\n\n // If no coupon conflict, show widget\n this.canRender = true;\n\n // Check if this offer should update with cart changes\n if (this.apiOfferData.details?.with_current_cart === false) {\n return;\n }\n\n // Update current_value in API offer data\n const currentValue = updatedCart.sub_total;\n this.apiOfferData = {\n ...this.apiOfferData,\n details: {\n ...this.apiOfferData.details,\n current_value: currentValue\n }\n };\n\n // Update current tier based on new value\n const newTierIndex = this.findCurrentTierIndex(currentValue);\n \n // Check if user qualifies for any tier\n if (newTierIndex === 0) {\n this.canRender = false;\n return;\n }\n\n // user qualifies show widget\n this.canRender = true;\n this.currentTierIndex = newTierIndex;\n this.currentTier = TierUtils.getTierNameByIndex(this.tieredOfferData.tiers, newTierIndex);\n \n // Update active tab if needed\n if (this.activeTabTier !== this.currentTier) {\n this.activeTabTier = this.currentTier;\n }\n }\n\n private getLoadingSkeletonView() {\n return <Host>\n <div class=\"s-tiered-offer-container\">\n <div class=\"s-tiered-offer-skeleton-wrapper\">\n <div class=\"s-tiered-offer-skeleton-title\">\n <salla-skeleton height=\"16px\" width=\"40%\" />\n </div>\n <div class=\"s-tiered-offer-skeleton-subtitle\">\n <salla-skeleton height=\"20px\" width=\"60%\" />\n </div>\n <div class=\"s-tiered-offer-skeleton-progress\">\n <salla-skeleton height=\"16px\" width=\"100%\" />\n </div>\n <div class=\"s-tiered-offer-skeleton-tabs\">\n <salla-skeleton height=\"50px\" width=\"100%\" />\n </div>\n </div>\n </div>\n </Host>\n }\n\n private getCurrentTierData(): TieredOfferTier {\n return TierUtils.findTierByIndex(this.tieredOfferData.tiers, this.currentTierIndex) || this.tieredOfferData.tiers[0];\n }\n\n private getProgressWidth(): number {\n const currentValue = this.apiOfferData.details?.current_value || 0;\n const totalTiers = this.tieredOfferData.tiers.length;\n \n // Use existing method to find current tier index (which already handles the logic)\n const currentTierIndex = this.findCurrentTierIndex(currentValue);\n \n // Convert to 0-based index for progress calculation\n const completedTiers = currentTierIndex;\n return (completedTiers / totalTiers) * 100;\n }\n\n private handleTabClick = (tierName: string) => {\n this.activeTabTier = tierName;\n }\n \n private calculateMilestonePosition(index: number, totalTiers: number): string {\n if (totalTiers === 1) {\n return 'calc(100% - 18px)';\n }\n const milestonePercent = ((index + 1) / totalTiers) * 100;\n const offsetPercent = 8 / totalTiers;\n return `${Math.max(2, Math.min(95, milestonePercent - offsetPercent))}%`;\n }\n \n private getMilestoneStyles(tier: TieredOfferTier, index: number, totalTiers: number) {\n const isRtl = document.documentElement.dir === 'rtl';\n const adjustedPercent = this.calculateMilestonePosition(index, totalTiers);\n const alignItems = tier.name.length > 6 ? 'flex-end' : 'center';\n \n return {\n [isRtl ? 'right' : 'left']: adjustedPercent,\n alignItems,\n position: 'absolute' as const,\n transform: isRtl ? 'translateX(50%)' : 'translateX(-50%)'\n };\n }\n \n private getMilestoneIconStyles(tier: TieredOfferTier, isCurrent: boolean, isReached: boolean) {\n if (isCurrent) {\n return { color: tier.text_color };\n }\n if (isReached) {\n return { color: 'var(--color-primary)' };\n }\n return {};\n }\n \n private renderProgressBarBackground(progressWidth: number) {\n return [\n <div class=\"s-tiered-offer-progress-bg\"></div>,\n <div \n class=\"s-tiered-offer-progress-fill\"\n style={{ width: `${progressWidth}%` }}>\n </div>\n ];\n }\n \n private renderMilestoneIcon(tier: TieredOfferTier, isCurrent: boolean, isReached: boolean) {\n const iconClasses = [\n 's-tiered-offer-milestone-icon',\n isCurrent ? 's-tiered-offer-milestone-active' : '',\n isReached ? 's-tiered-offer-milestone-completed' : ''\n ].filter(Boolean).join(' ');\n \n return (\n <div \n class={iconClasses}\n style={this.getMilestoneIconStyles(tier, isCurrent, isReached)}>\n <span innerHTML={tier.icon}></span>\n </div>\n );\n }\n \n private renderMilestoneName(tier: TieredOfferTier, isCurrent: boolean) {\n return (\n <div class=\"s-tiered-offer-milestone-name\">\n {isCurrent && (\n <span style={{ color: tier.text_color }}>\n {tier.name}\n </span>\n )}\n </div>\n );\n }\n \n private renderMilestones(currentValue: number, totalTiers: number) {\n const containerClass = totalTiers === 1 \n ? 's-tiered-offer-single-milestone-justify-end' \n : 's-tiered-offer-milestones';\n \n return (\n <div class=\"s-tiered-offer-milestones-wrapper\">\n <div class={containerClass}>\n {this.tieredOfferData.tiers.map((tier, index) => {\n const isReached = currentValue >= tier.threshold;\n const isCurrent = tier.tier_name === this.currentTier;\n \n return (\n <div \n class=\"s-tiered-offer-milestone\"\n style={this.getMilestoneStyles(tier, index, totalTiers)}>\n {this.renderMilestoneIcon(tier, isCurrent, isReached)}\n {this.renderMilestoneName(tier, isCurrent)}\n </div>\n );\n })}\n </div>\n </div>\n );\n }\n\n private renderProgressBar() {\n const progressWidth = this.getProgressWidth();\n const totalTiers = this.tieredOfferData.tiers.length;\n const currentValue = this.apiOfferData.details?.current_value || 0;\n\n return (\n <div class=\"s-tiered-offer-progress-container\">\n <div class=\"s-tiered-offer-progress-wrapper\">\n {this.renderProgressBarBackground(progressWidth)}\n {this.renderMilestones(currentValue, totalTiers)}\n </div>\n </div>\n );\n }\n\n private renderTabs() {\n return (\n <div class=\"s-tiered-offer-tabs-container\">\n {/* Tab Headers */}\n <div class=\"s-tiered-offer-tab-headers\">\n {this.tieredOfferData.tiers.map(tier => {\n const isActive = tier.tier_name === this.activeTabTier;\n return (\n <button \n class={`s-tiered-offer-tab-header ${isActive ? 's-tiered-offer-tab-active' : ''}`}\n onClick={() => this.handleTabClick(tier.tier_name)}>\n <span>{tier.name}</span>\n </button>\n );\n })}\n </div>\n\n {/* Tab Content */}\n <div class=\"s-tiered-offer-tab-content-wrapper\">\n {(() => {\n const activeTier = TierUtils.findTierByName(this.tieredOfferData.tiers, this.activeTabTier);\n if (!activeTier) return null;\n \n return (\n <div class=\"s-tiered-offer-tab-content\">\n <div class=\"s-tiered-offer-tab-content-inner\">\n <div class=\"s-tiered-offer-discount-section\">\n <p class=\"s-tiered-offer-discount-title\">\n {this.discountText} <span innerHTML={activeTier.discount}></span>\n </p>\n <p class=\"s-tiered-offer-benefit-description\">\n {this.benefitText} {activeTier.name}\n </p>\n </div>\n </div>\n </div>\n );\n })()}\n </div>\n </div>\n );\n }\n\n render() {\n \n if (this.isLoading) {\n return this.getLoadingSkeletonView();\n }\n\n if (!this.canRender || !this.tieredOfferData) {\n return null;\n }\n \n\n const currentTierData = this.getCurrentTierData();\n\n return (\n <Host>\n <div class=\"s-tiered-offer-container\">\n {/* Header Section */}\n <div class=\"s-tiered-offer-header\">\n <div class=\"s-tiered-offer-header-content\">\n <p class=\"s-tiered-offer-program-title\">{this.loyaltyProgramText}</p>\n <div class=\"s-tiered-offer-current-tier-name-wrapper\">\n <h2 class=\"s-tiered-offer-current-tier\">\n {this.currentTierText} <span class=\"s-tiered-offer-tier-name\">{currentTierData.name}</span>\n </h2>\n <span innerHTML={currentTierData.icon}></span>\n </div>\n </div>\n </div>\n\n {/* Progress Bar */}\n {this.renderProgressBar()}\n\n {/* Tabs */}\n {this.renderTabs()}\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /*!
2
- * Crafted with ❤ by Salla
3
- */
4
- System.register(["./p-BV4kErtd.system.js"],(function(e){"use strict";var t,c,n;return{setters:[function(e){t=e.r;c=e.h;n=e.H}],execute:function(){var r="";var b=e("salla_accordion_body",function(){function e(e){t(this,e)}e.prototype.render=function(){return c(n,{key:"298d42a5bf1bcefdb181ec35060220cf749b56ed",class:"s-accordion-body-wrapper"},c("slot",{key:"6ab081e8b71b5dc69fb66fbdec82b4725ab53b0d"}))};return e}());b.style=r}}}));
5
- //# sourceMappingURL=p-b4b32523.system.entry.js.map
@@ -1,5 +0,0 @@
1
- var __awaiter=this&&this.__awaiter||function(t,e,r,i){function n(t){return t instanceof r?t:new r((function(e){e(t)}))}return new(r||(r=Promise))((function(r,s){function o(t){try{l(i.next(t))}catch(t){s(t)}}function a(t){try{l(i["throw"](t))}catch(t){s(t)}}function l(t){t.done?r(t.value):n(t.value).then(o,a)}l((i=i.apply(t,e||[])).next())}))};var __generator=this&&this.__generator||function(t,e){var r={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},i,n,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(t){return function(e){return l([t,e])}}function l(a){if(i)throw new TypeError("Generator is already executing.");while(o&&(o=0,a[0]&&(r=0)),r)try{if(i=1,n&&(s=a[0]&2?n["return"]:a[0]?n["throw"]||((s=n["return"])&&s.call(n),0):n.next)&&!(s=s.call(n,a[1])).done)return s;if(n=0,s)a=[a[0]&2,s.value];switch(a[0]){case 0:case 1:s=a;break;case 4:r.label++;return{value:a[1],done:false};case 5:r.label++;n=a[1];a=[0];continue;case 7:a=r.ops.pop();r.trys.pop();continue;default:if(!(s=r.trys,s=s.length>0&&s[s.length-1])&&(a[0]===6||a[0]===2)){r=0;continue}if(a[0]===3&&(!s||a[1]>s[0]&&a[1]<s[3])){r.label=a[1];break}if(a[0]===6&&r.label<s[1]){r.label=s[1];s=a;break}if(s&&r.label<s[2]){r.label=s[2];r.ops.push(a);break}if(s[2])r.ops.pop();r.trys.pop();continue}a=e.call(t,r)}catch(t){a=[6,t];n=0}finally{i=s=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}};var __spreadArray=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,s;i<n;i++){if(s||!(i in e)){if(!s)s=Array.prototype.slice.call(e,0,i);s[i]=e[i]}}return t.concat(s||Array.prototype.slice.call(e))};
2
- /*!
3
- * Crafted with ❤ by Salla
4
- */System.register(["./p-BV4kErtd.system.js"],(function(t){"use strict";var e,r,i;return{setters:[function(t){e=t.r;r=t.h;i=t.H}],execute:function(){var n;(function(t){t["PERCENTAGE"]="percentage";t["FIXED"]="fixed"})(n||(n={}));var s='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="40" height="40" color="#000000" fill="none">\n <path d="M13.7276 3.44418L15.4874 6.99288C15.7274 7.48687 16.3673 7.9607 16.9073 8.05143L20.0969 8.58575C22.1367 8.92853 22.6167 10.4206 21.1468 11.8925L18.6671 14.3927C18.2471 14.8161 18.0172 15.6327 18.1471 16.2175L18.8571 19.3125C19.417 21.7623 18.1271 22.71 15.9774 21.4296L12.9877 19.6452C12.4478 19.3226 11.5579 19.3226 11.0079 19.6452L8.01827 21.4296C5.8785 22.71 4.57865 21.7522 5.13859 19.3125L5.84851 16.2175C5.97849 15.6327 5.74852 14.8161 5.32856 14.3927L2.84884 11.8925C1.389 10.4206 1.85895 8.92853 3.89872 8.58575L7.08837 8.05143C7.61831 7.9607 8.25824 7.48687 8.49821 6.99288L10.258 3.44418C11.2179 1.51861 12.7777 1.51861 13.7276 3.44418Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>\n</svg>';var o='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" color="#000000" fill="none">\n <path d="M3 12C7.5 12 12 7.5 12 3C12 7.5 16.5 12 21 12C16.5 12 12 16.5 12 21C12 16.5 7.5 12 3 12Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"></path>\n <path d="M2 19.5C2.83333 19.5 4.5 17.8333 4.5 17C4.5 17.8333 6.16667 19.5 7 19.5C6.16667 19.5 4.5 21.1667 4.5 22C4.5 21.1667 2.83333 19.5 2 19.5Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"></path>\n <path d="M16 5C17 5 19 3 19 2C19 3 21 5 22 5C21 5 19 7 19 8C19 7 17 5 16 5Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"></path>\n</svg>';var a='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="40" height="40" color="#000000" fill="none">\n <path d="M14.2644 18.3717C14.5806 17.407 14.7387 16.9247 15.0616 16.593C15.215 16.4354 15.3932 16.3048 15.5887 16.2066C16.0003 16 16.5003 16 17.5002 16C18.5001 16 19.0001 16 19.4116 16.2066C19.6072 16.3048 19.7853 16.4354 19.9388 16.593C20.2617 16.9247 20.4198 17.407 20.736 18.3717L21.0624 19.3675C21.4561 20.5688 21.653 21.1694 21.3587 21.5847C21.0643 22 20.4418 22 19.1966 22H15.8038C14.5586 22 13.936 22 13.6417 21.5847C13.3473 21.1694 13.5442 20.5688 13.938 19.3675L14.2644 18.3717Z" stroke="currentColor" stroke-width="1.5"></path>\n <path d="M8.76421 10.3717C9.08041 9.40705 9.23851 8.92471 9.56143 8.59298C9.71485 8.43537 9.89299 8.3048 10.0885 8.20663C10.5001 8 11.0001 8 12 8C12.9999 8 13.4999 8 13.9115 8.20663C14.107 8.3048 14.2851 8.43537 14.4386 8.59298C14.7615 8.92471 14.9196 9.40705 15.2358 10.3717L15.5622 11.3675C15.956 12.5688 16.1528 13.1694 15.8585 13.5847C15.5642 14 14.9416 14 13.6964 14H10.3036C9.05842 14 8.43585 14 8.1415 13.5847C7.84716 13.1694 8.04404 12.5688 8.43779 11.3675L8.76421 10.3717Z" stroke="currentColor" stroke-width="1.5"></path>\n <path d="M3.26439 18.3717C3.58059 17.407 3.73869 16.9247 4.06162 16.593C4.21504 16.4354 4.39317 16.3048 4.58872 16.2066C5.00031 16 5.50027 16 6.50018 16C7.5001 16 8.00006 16 8.41165 16.2066C8.6072 16.3048 8.78533 16.4354 8.93875 16.593C9.26167 16.9247 9.41977 17.407 9.73597 18.3717L10.0624 19.3675C10.4561 20.5688 10.653 21.1694 10.3587 21.5847C10.0643 22 9.44176 22 8.19661 22H4.80375C3.5586 22 2.93603 22 2.64169 21.5847C2.34735 21.1694 2.54422 20.5688 2.93797 19.3675L3.26439 18.3717Z" stroke="currentColor" stroke-width="1.5"></path>\n <path d="M12 2V4M7.5 3.5L9 5M16.5 3.5L15 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path>\n</svg>';var l='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" color="#000000" fill="none">\n <path d="M5.78223 4.18192C6.43007 3.68319 6.754 3.43383 7.12788 3.27323C7.29741 3.20041 7.47367 3.14158 7.65459 3.09741C8.0536 3 8.4767 3 9.32289 3H14.6771C15.5233 3 15.9464 3 16.3454 3.09741C16.5263 3.14158 16.7026 3.20041 16.8721 3.27323C17.246 3.43383 17.5699 3.68319 18.2178 4.18192C20.3644 5.83448 21.4378 6.66077 21.8057 7.73078C21.9694 8.20673 22.0305 8.70728 21.9858 9.20461C21.8852 10.3227 21.0379 11.346 19.3433 13.3925L15.3498 18.2153C13.8126 20.0718 13.044 21 12 21C10.956 21 10.1874 20.0718 8.65018 18.2153L4.65671 13.3925C2.96208 11.346 2.11476 10.3227 2.0142 9.20461C1.96947 8.70728 2.03064 8.20673 2.1943 7.73078C2.56224 6.66077 3.63557 5.83448 5.78223 4.18192Z" stroke="currentColor" stroke-width="1.5"></path>\n <path d="M10 8.5H14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>\n</svg>';var f={staticIcons:[s,o,a,l],staticColors:["#993018","#444444","#D18F36","#315F9C"]};var u=function(){function t(){}t.findTierByIndex=function(t,e){return t.find((function(t){return t.index===e}))||null};t.findTierByName=function(t,e){return t.find((function(t){return t.tier_name===e}))||null};t.getTierNameByIndex=function(t,e){var r;return(r=this.findTierByIndex(t,e))===null||r===void 0?void 0:r.tier_name};t.findCurrentTierIndex=function(t,e){if(!e)return 0;for(var r=e.length-1;r>=0;r--){if(t>=e[r].threshold){return e[r].index}}return 0};return t}();var c=".s-tiered-offer-milestone-icon svg{color:currentColor}.s-tiered-offer-milestone-icon svg path{stroke:currentColor;fill:none}.s-tiered-offer-milestone-icon.s-tiered-offer-milestone-active svg path,.s-tiered-offer-milestone-icon.s-tiered-offer-milestone-completed svg path{fill:currentColor;stroke:none}.s-tiered-offer-milestone-icon.s-tiered-offer-milestone-active svg[fill=none] path,.s-tiered-offer-milestone-icon.s-tiered-offer-milestone-completed svg[fill=none] path{fill:none;stroke:currentColor}[dir=rtl] .s-tiered-offer-progress-wrapper .s-tiered-offer-progress-bg{-webkit-transform:scaleX(-1);transform:scaleX(-1)}[dir=rtl] .s-tiered-offer-progress-wrapper .s-tiered-offer-progress-fill{-webkit-transform:scaleX(-1);transform:scaleX(-1);left:auto}[dir=rtl] .flip-x{-webkit-transform:scaleX(-1);transform:scaleX(-1)}";var d=t("salla_tiered_offer",function(){function t(t){var r=this;e(this,t);this.currentTierIndex=0;this.canRender=false;this.isLoading=false;this.handleTabClick=function(t){r.activeTabTier=t};salla.lang.onLoaded((function(){r.loyaltyProgramText=salla.lang.get("blocks.tiered_offer.program_title");r.currentTierText=salla.lang.get("blocks.tiered_offer.current_tier");r.discountText=salla.lang.get("blocks.tiered_offer.discount");r.benefitText=salla.lang.get("blocks.tiered_offer.tier_description")}))}t.prototype.componentWillLoad=function(){return __awaiter(this,void 0,void 0,(function(){var t,e;return __generator(this,(function(r){switch(r.label){case 0:r.trys.push([0,3,4,5]);return[4,salla.onReady()];case 1:r.sent();if(!this.checkFeatureEnabled()){return[2]}if(!this.checkCartExists()){return[2]}this.isLoading=true;return[4,this.fetchTieredOfferData()];case 2:t=r.sent();if(!t){return[2]}this.initializeComponent(t);return[3,5];case 3:e=r.sent();this.canRender=false;salla.logger.warn("salla-tiered-offer:: ",e);return[3,5];case 4:this.isLoading=false;return[7];case 5:return[2]}}))}))};t.prototype.checkFeatureEnabled=function(){var t;return(t=salla.config.get("store.features"))===null||t===void 0?void 0:t.includes("tiered-offer")};t.prototype.checkCartExists=function(){var t,e;return!!((e=(t=salla.storage.get("cart"))===null||t===void 0?void 0:t.summary)===null||e===void 0?void 0:e.count)};t.prototype.validateCouponCompatibility=function(t,e){var r;return!(e&&!((r=t.details)===null||r===void 0?void 0:r.applied_with_coupon))};t.prototype.fetchTieredOfferData=function(){return __awaiter(this,void 0,void 0,(function(){var t,e,r,i;return __generator(this,(function(n){switch(n.label){case 0:n.trys.push([0,2,,3]);return[4,salla.api.cart.offers()];case 1:e=n.sent().data;r=e.find((function(t){return t.type==="tiered_offer"}));if(!r){return[2,null]}if(!this.validateCouponCompatibility(r,(t=salla.storage.get("cart"))===null||t===void 0?void 0:t.coupon)){this.canRender=false;return[2,null]}return[2,r];case 2:i=n.sent();throw i;case 3:return[2]}}))}))};t.prototype.initializeComponent=function(t){var e;this.apiOfferData=t;this.tieredOfferData=this.mapApiDataToTiers(this.apiOfferData);this.loyaltyProgramText=this.apiOfferData.title||this.loyaltyProgramText;var r=((e=this.apiOfferData.details)===null||e===void 0?void 0:e.current_value)||0;var i=this.findCurrentTierIndex(r);if(i===0){this.canRender=false;return}this.currentTierIndex=i;this.currentTier=u.getTierNameByIndex(this.tieredOfferData.tiers,i);this.activeTabTier=this.currentTier;this.canRender=true};t.prototype.componentDidLoad=function(){var t=this;salla.event.on("cart::updated",(function(e){t.updateOfferValues(e)}))};t.prototype.mapApiDataToTiers=function(t){var e=__spreadArray([],t.details.discounts,true).sort((function(t,e){return t.min_spend-e.min_spend}));var r=e.map((function(t,e){return{name:t.name,tier_name:t.name,discount:t.type===n.PERCENTAGE?"".concat(salla.helpers.number(t.value),"%"):salla.money(t.value),icon:f.staticIcons[e]||f.staticIcons[0],threshold:t.min_spend,text_color:f.staticColors[e],index:e+1}}));return{current_tier:u.getTierNameByIndex(r,this.findCurrentTierIndex(t.details.current_value,r)),tiers:r}};t.prototype.findCurrentTierIndex=function(t,e){var r;if(e===void 0){e=(r=this.tieredOfferData)===null||r===void 0?void 0:r.tiers}return u.findCurrentTierIndex(t,e||[])};t.prototype.updateOfferValues=function(t){var e;if(!this.apiOfferData||!this.tieredOfferData){return}if(!this.validateCouponCompatibility(this.apiOfferData,t.coupon)){this.canRender=false;return}this.canRender=true;if(((e=this.apiOfferData.details)===null||e===void 0?void 0:e.with_current_cart)===false){return}var r=t.sub_total;this.apiOfferData=Object.assign(Object.assign({},this.apiOfferData),{details:Object.assign(Object.assign({},this.apiOfferData.details),{current_value:r})});var i=this.findCurrentTierIndex(r);if(i===0){this.canRender=false;return}this.canRender=true;this.currentTierIndex=i;this.currentTier=u.getTierNameByIndex(this.tieredOfferData.tiers,i);if(this.activeTabTier!==this.currentTier){this.activeTabTier=this.currentTier}};t.prototype.getLoadingSkeletonView=function(){return r(i,null,r("div",{class:"s-tiered-offer-container"},r("div",{class:"s-tiered-offer-skeleton-wrapper"},r("div",{class:"s-tiered-offer-skeleton-title"},r("salla-skeleton",{height:"16px",width:"40%"})),r("div",{class:"s-tiered-offer-skeleton-subtitle"},r("salla-skeleton",{height:"20px",width:"60%"})),r("div",{class:"s-tiered-offer-skeleton-progress"},r("salla-skeleton",{height:"16px",width:"100%"})),r("div",{class:"s-tiered-offer-skeleton-tabs"},r("salla-skeleton",{height:"50px",width:"100%"})))))};t.prototype.getCurrentTierData=function(){return u.findTierByIndex(this.tieredOfferData.tiers,this.currentTierIndex)||this.tieredOfferData.tiers[0]};t.prototype.getProgressWidth=function(){var t;var e=((t=this.apiOfferData.details)===null||t===void 0?void 0:t.current_value)||0;var r=this.tieredOfferData.tiers.length;var i=this.findCurrentTierIndex(e);var n=i;return n/r*100};t.prototype.calculateMilestonePosition=function(t,e){if(e===1){return"calc(100% - 18px)"}var r=(t+1)/e*100;var i=8/e;return"".concat(Math.max(2,Math.min(95,r-i)),"%")};t.prototype.getMilestoneStyles=function(t,e,r){var i;var n=document.documentElement.dir==="rtl";var s=this.calculateMilestonePosition(e,r);var o=t.name.length>6?"flex-end":"center";return i={},i[n?"right":"left"]=s,i.alignItems=o,i.position="absolute",i.transform=n?"translateX(50%)":"translateX(-50%)",i};t.prototype.getMilestoneIconStyles=function(t,e,r){if(e){return{color:t.text_color}}if(r){return{color:"var(--color-primary)"}}return{}};t.prototype.renderProgressBarBackground=function(t){return[r("div",{class:"s-tiered-offer-progress-bg"}),r("div",{class:"s-tiered-offer-progress-fill",style:{width:"".concat(t,"%")}})]};t.prototype.renderMilestoneIcon=function(t,e,i){var n=["s-tiered-offer-milestone-icon",e?"s-tiered-offer-milestone-active":"",i?"s-tiered-offer-milestone-completed":""].filter(Boolean).join(" ");return r("div",{class:n,style:this.getMilestoneIconStyles(t,e,i)},r("span",{innerHTML:t.icon}))};t.prototype.renderMilestoneName=function(t,e){return r("div",{class:"s-tiered-offer-milestone-name"},e&&r("span",{style:{color:t.text_color}},t.name))};t.prototype.renderMilestones=function(t,e){var i=this;var n=e===1?"s-tiered-offer-single-milestone-justify-end":"s-tiered-offer-milestones";return r("div",{class:"s-tiered-offer-milestones-wrapper"},r("div",{class:n},this.tieredOfferData.tiers.map((function(n,s){var o=t>=n.threshold;var a=n.tier_name===i.currentTier;return r("div",{class:"s-tiered-offer-milestone",style:i.getMilestoneStyles(n,s,e)},i.renderMilestoneIcon(n,a,o),i.renderMilestoneName(n,a))}))))};t.prototype.renderProgressBar=function(){var t;var e=this.getProgressWidth();var i=this.tieredOfferData.tiers.length;var n=((t=this.apiOfferData.details)===null||t===void 0?void 0:t.current_value)||0;return r("div",{class:"s-tiered-offer-progress-container"},r("div",{class:"s-tiered-offer-progress-wrapper"},this.renderProgressBarBackground(e),this.renderMilestones(n,i)))};t.prototype.renderTabs=function(){var t=this;return r("div",{class:"s-tiered-offer-tabs-container"},r("div",{class:"s-tiered-offer-tab-headers"},this.tieredOfferData.tiers.map((function(e){var i=e.tier_name===t.activeTabTier;return r("button",{class:"s-tiered-offer-tab-header ".concat(i?"s-tiered-offer-tab-active":""),onClick:function(){return t.handleTabClick(e.tier_name)}},r("span",null,e.name))}))),r("div",{class:"s-tiered-offer-tab-content-wrapper"},function(){var e=u.findTierByName(t.tieredOfferData.tiers,t.activeTabTier);if(!e)return null;return r("div",{class:"s-tiered-offer-tab-content"},r("div",{class:"s-tiered-offer-tab-content-inner"},r("div",{class:"s-tiered-offer-discount-section"},r("p",{class:"s-tiered-offer-discount-title"},t.discountText," ",r("span",{innerHTML:e.discount})),r("p",{class:"s-tiered-offer-benefit-description"},t.benefitText," ",e.name))))}()))};t.prototype.render=function(){if(this.isLoading){return this.getLoadingSkeletonView()}if(!this.canRender||!this.tieredOfferData){return null}var t=this.getCurrentTierData();return r(i,null,r("div",{class:"s-tiered-offer-container"},r("div",{class:"s-tiered-offer-header"},r("div",{class:"s-tiered-offer-header-content"},r("p",{class:"s-tiered-offer-program-title"},this.loyaltyProgramText),r("div",{class:"s-tiered-offer-current-tier-name-wrapper"},r("h2",{class:"s-tiered-offer-current-tier"},this.currentTierText," ",r("span",{class:"s-tiered-offer-tier-name"},t.name)),r("span",{innerHTML:t.icon})))),this.renderProgressBar(),this.renderTabs()))};return t}());d.style=c}}}));
5
- //# sourceMappingURL=p-bf84ef7e.system.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["DiscountType","TIERED_OFFER_CONFIG","staticIcons","StarIcon","StarsIcon","GoldIcon","DiamondIcon","staticColors","TierUtils","findTierByIndex","tiers","index","find","tier","findTierByName","tierName","tier_name","getTierNameByIndex","_a","this","findCurrentTierIndex","currentValue","i","length","threshold","sallaTieredOfferCss","SallaTieredOffer","exports","class_1","hostRef","_this","currentTierIndex","canRender","isLoading","handleTabClick","activeTabTier","salla","lang","onLoaded","loyaltyProgramText","get","currentTierText","discountText","benefitText","prototype","componentWillLoad","onReady","_c","sent","checkFeatureEnabled","checkCartExists","fetchTieredOfferData","offerData","initializeComponent","logger","warn","error_1","config","includes","_b","storage","summary","count","validateCouponCompatibility","cartCoupon","details","applied_with_coupon","api","cart","offers","data","tieredOffer","offer","type","coupon","error_2","apiOfferData","tieredOfferData","mapApiDataToTiers","title","current_value","currentTier","componentDidLoad","event","on","updatedCart","updateOfferValues","apiData","sortedDiscounts","__spreadArray","discounts","sort","a","b","min_spend","map","discount","name","PERCENTAGE","concat","helpers","number","value","money","icon","text_color","current_tier","with_current_cart","sub_total","Object","assign","newTierIndex","getLoadingSkeletonView","h","Host","class","height","width","getCurrentTierData","getProgressWidth","totalTiers","completedTiers","calculateMilestonePosition","milestonePercent","offsetPercent","Math","max","min","getMilestoneStyles","isRtl","document","documentElement","dir","adjustedPercent","alignItems","position","transform","getMilestoneIconStyles","isCurrent","isReached","color","renderProgressBarBackground","progressWidth","style","renderMilestoneIcon","iconClasses","filter","Boolean","join","innerHTML","renderMilestoneName","renderMilestones","containerClass","renderProgressBar","renderTabs","isActive","onClick","activeTier","render","currentTierData"],"sources":["src/components/salla-tiered-offer/interfaces.ts","src/components/salla-tiered-offer/constants.ts","src/components/salla-tiered-offer/utils.ts","src/components/salla-tiered-offer/salla-tiered-offer.scss?tag=salla-tiered-offer","src/components/salla-tiered-offer/salla-tiered-offer.tsx"],"sourcesContent":["export enum DiscountType {\n PERCENTAGE = \"percentage\",\n FIXED = \"fixed\",\n}\n\n\nexport interface Discount {\n name?: string;\n type?: DiscountType;\n value?: number;\n min_spend?: number;\n}\n\nexport interface TieredOfferDetails {\n based_on?: string;\n ends_at?: number;\n start_value?: number;\n end_value?: number;\n current_value?: number;\n discounts?: Discount[];\n with_current_cart?: boolean;\n applied_with_coupon?: boolean;\n}\n\nexport interface Offer {\n id?: number;\n type?: string;\n title?: string;\n description?: string;\n details?: TieredOfferDetails | null;\n}\n\nexport interface TieredOfferTier {\n name: string;\n tier_name: string;\n discount: string;\n icon: string;\n threshold: number;\n text_color?: string;\n index: number;\n}\n\nexport interface TieredOfferData {\n current_tier: string;\n tiers: TieredOfferTier[];\n}\n\nexport interface TieredOfferConfig {\n staticIcons: string[];\n staticColors: string[];\n}\n","import { TieredOfferConfig } from './interfaces';\nimport StarIcon from '../../assets/svg/star-rounded.svg';\nimport StarsIcon from '../../assets/svg/stars.svg';\nimport GoldIcon from '../../assets/svg/gold.svg';\nimport DiamondIcon from '../../assets/svg/diamond-02.svg';\n\nexport const TIERED_OFFER_CONFIG: TieredOfferConfig = {\n staticIcons: [StarIcon, StarsIcon, GoldIcon, DiamondIcon],\n staticColors: ['#993018', '#444444', '#D18F36', '#315F9C']\n};","import { TieredOfferTier } from './interfaces';\n\nexport class TierUtils {\n /**\n * Find tier by index\n */\n static findTierByIndex(tiers: TieredOfferTier[], index: number): TieredOfferTier | null {\n return tiers.find(tier => tier.index === index) || null;\n }\n\n /**\n * Find tier by tier name\n */\n static findTierByName(tiers: TieredOfferTier[], tierName: string): TieredOfferTier | null {\n return tiers.find(tier => tier.tier_name === tierName) || null;\n }\n\n /**\n * Get tier name by index\n */\n static getTierNameByIndex(tiers: TieredOfferTier[], index: number): string | undefined {\n return this.findTierByIndex(tiers, index)?.tier_name;\n }\n\n /**\n * Find current tier index based on current value\n */\n static findCurrentTierIndex(currentValue: number, tiers: TieredOfferTier[]): number {\n if (!tiers) return 0;\n \n for (let i = tiers.length - 1; i >= 0; i--) {\n if (currentValue >= tiers[i].threshold) {\n return tiers[i].index;\n }\n }\n return 0;\n }\n}","\n// SVG styling for milestone icons \n.s-tiered-offer-milestone-icon {\n svg {\n color: currentColor;\n \n path {\n stroke: currentColor;\n fill: none;\n }\n }\n \n // Active and completed states - fill the star icon, keep others as stroke\n &.s-tiered-offer-milestone-active,\n &.s-tiered-offer-milestone-completed {\n svg {\n path {\n fill: currentColor;\n stroke: none;\n }\n \n // For stroke-based icons (crown, stars, diamond) \n &[fill=\"none\"] path {\n fill: none;\n stroke: currentColor;\n }\n }\n }\n}\n\n// RTL Support \n[dir=\"rtl\"] {\n .s-tiered-offer-progress-wrapper {\n .s-tiered-offer-progress-bg {\n transform: scaleX(-1);\n }\n \n .s-tiered-offer-progress-fill {\n transform: scaleX(-1);\n left: auto;\n }\n }\n\n .flip-x {\n transform: scaleX(-1);\n }\n}\n","import { Component, Host, h, State } from '@stencil/core';\nimport { Offer, TieredOfferTier, TieredOfferData, DiscountType } from './interfaces';\nimport { TIERED_OFFER_CONFIG } from './constants';\nimport { TierUtils } from './utils';\n\n@Component({\n tag: 'salla-tiered-offer',\n styleUrl: 'salla-tiered-offer.scss',\n})\nexport class SallaTieredOffer {\n\n constructor() {\n salla.lang.onLoaded(() => {\n this.loyaltyProgramText = salla.lang.get('blocks.tiered_offer.program_title');\n this.currentTierText = salla.lang.get('blocks.tiered_offer.current_tier');\n this.discountText = salla.lang.get('blocks.tiered_offer.discount');\n this.benefitText = salla.lang.get('blocks.tiered_offer.tier_description');\n });\n }\n\n\n @State() tieredOfferData: TieredOfferData;\n @State() apiOfferData: Offer;\n @State() currentTierIndex: number = 0;\n @State() currentTier: string;\n @State() activeTabTier: string;\n\n @State() canRender: boolean = false;\n @State() isLoading: boolean = false;\n\n // Language strings\n @State() loyaltyProgramText: string;\n @State() currentTierText: string;\n @State() discountText: string;\n @State() benefitText: string;\n\n async componentWillLoad() {\n try {\n await salla.onReady();\n \n if (!this.checkFeatureEnabled()) {\n return;\n }\n \n if (!this.checkCartExists()) {\n return;\n }\n \n this.isLoading = true;\n \n const offerData = await this.fetchTieredOfferData();\n if (!offerData) {\n return;\n }\n \n this.initializeComponent(offerData);\n \n } catch (error) {\n this.canRender = false;\n salla.logger.warn('salla-tiered-offer:: ', error);\n } finally {\n this.isLoading = false;\n }\n }\n \n private checkFeatureEnabled(): boolean {\n return salla.config.get('store.features')?.includes('tiered-offer');\n }\n \n private checkCartExists(): boolean {\n return !!salla.storage.get(\"cart\")?.summary?.count;\n }\n \n private validateCouponCompatibility(offerData: Offer, cartCoupon?: any): boolean {\n // If coupon is applied but offer doesn't support coupons, widget should be hidden\n return !(cartCoupon && !offerData.details?.applied_with_coupon);\n }\n \n private async fetchTieredOfferData(): Promise<Offer | null> {\n try {\n const { data }: { data: Offer[] } = await salla.api.cart.offers();\n const tieredOffer = data.find(offer => offer.type === \"tiered_offer\");\n \n if (!tieredOffer) {\n return null;\n }\n \n // Hide widget if coupon is applied and offer doesn't support coupons\n if (!this.validateCouponCompatibility(tieredOffer, salla.storage.get(\"cart\")?.coupon)) {\n this.canRender = false;\n return null;\n }\n \n return tieredOffer;\n } catch (error) {\n throw error;\n }\n }\n \n private initializeComponent(apiOfferData: Offer): void {\n this.apiOfferData = apiOfferData;\n \n // Map tiered details data to component format\n this.tieredOfferData = this.mapApiDataToTiers(this.apiOfferData);\n this.loyaltyProgramText = this.apiOfferData.title || this.loyaltyProgramText;\n \n // Find current tier index based on current_value from API\n const currentValue = this.apiOfferData.details?.current_value || 0;\n const currentTierIndex = this.findCurrentTierIndex(currentValue);\n \n // Only render if user has reached at least the first tier\n if (currentTierIndex === 0) {\n this.canRender = false;\n return;\n }\n \n this.currentTierIndex = currentTierIndex;\n this.currentTier = TierUtils.getTierNameByIndex(this.tieredOfferData.tiers, currentTierIndex);\n this.activeTabTier = this.currentTier;\n this.canRender = true;\n }\n\n componentDidLoad() {\n salla.event.on(\"cart::updated\", (updatedCart) => {\n this.updateOfferValues(updatedCart);\n });\n }\n\n private mapApiDataToTiers(apiData: Offer): TieredOfferData {\n // Sort discounts by min_spend to create proper tier order\n const sortedDiscounts = [...apiData.details.discounts].sort((a, b) => a.min_spend - b.min_spend);\n\n const tiers: TieredOfferTier[] = sortedDiscounts.map((discount, index) => ({\n name: discount.name, \n tier_name: discount.name, \n discount: discount.type === DiscountType.PERCENTAGE ? `${salla.helpers.number(discount.value)}%` : salla.money(discount.value),\n icon: TIERED_OFFER_CONFIG.staticIcons[index] || TIERED_OFFER_CONFIG.staticIcons[0], \n threshold: discount.min_spend,\n text_color: TIERED_OFFER_CONFIG.staticColors[index], \n index: index + 1\n }));\n\n return {\n current_tier: TierUtils.getTierNameByIndex(tiers, this.findCurrentTierIndex(apiData.details.current_value, tiers)),\n tiers\n };\n }\n\n private findCurrentTierIndex(currentValue: number, tiers = this.tieredOfferData?.tiers): number {\n return TierUtils.findCurrentTierIndex(currentValue, tiers || []);\n }\n\n private updateOfferValues(updatedCart: { items: any[], sub_total: number, coupon?: any }) {\n if (!this.apiOfferData || !this.tieredOfferData) {\n return;\n }\n\n // Check coupon compatibility\n if (!this.validateCouponCompatibility(this.apiOfferData, updatedCart.coupon)) {\n this.canRender = false;\n return;\n }\n\n // If no coupon conflict, show widget\n this.canRender = true;\n\n // Check if this offer should update with cart changes\n if (this.apiOfferData.details?.with_current_cart === false) {\n return;\n }\n\n // Update current_value in API offer data\n const currentValue = updatedCart.sub_total;\n this.apiOfferData = {\n ...this.apiOfferData,\n details: {\n ...this.apiOfferData.details,\n current_value: currentValue\n }\n };\n\n // Update current tier based on new value\n const newTierIndex = this.findCurrentTierIndex(currentValue);\n \n // Check if user qualifies for any tier\n if (newTierIndex === 0) {\n this.canRender = false;\n return;\n }\n\n // user qualifies show widget\n this.canRender = true;\n this.currentTierIndex = newTierIndex;\n this.currentTier = TierUtils.getTierNameByIndex(this.tieredOfferData.tiers, newTierIndex);\n \n // Update active tab if needed\n if (this.activeTabTier !== this.currentTier) {\n this.activeTabTier = this.currentTier;\n }\n }\n\n private getLoadingSkeletonView() {\n return <Host>\n <div class=\"s-tiered-offer-container\">\n <div class=\"s-tiered-offer-skeleton-wrapper\">\n <div class=\"s-tiered-offer-skeleton-title\">\n <salla-skeleton height=\"16px\" width=\"40%\" />\n </div>\n <div class=\"s-tiered-offer-skeleton-subtitle\">\n <salla-skeleton height=\"20px\" width=\"60%\" />\n </div>\n <div class=\"s-tiered-offer-skeleton-progress\">\n <salla-skeleton height=\"16px\" width=\"100%\" />\n </div>\n <div class=\"s-tiered-offer-skeleton-tabs\">\n <salla-skeleton height=\"50px\" width=\"100%\" />\n </div>\n </div>\n </div>\n </Host>\n }\n\n private getCurrentTierData(): TieredOfferTier {\n return TierUtils.findTierByIndex(this.tieredOfferData.tiers, this.currentTierIndex) || this.tieredOfferData.tiers[0];\n }\n\n private getProgressWidth(): number {\n const currentValue = this.apiOfferData.details?.current_value || 0;\n const totalTiers = this.tieredOfferData.tiers.length;\n \n // Use existing method to find current tier index (which already handles the logic)\n const currentTierIndex = this.findCurrentTierIndex(currentValue);\n \n // Convert to 0-based index for progress calculation\n const completedTiers = currentTierIndex;\n return (completedTiers / totalTiers) * 100;\n }\n\n private handleTabClick = (tierName: string) => {\n this.activeTabTier = tierName;\n }\n \n private calculateMilestonePosition(index: number, totalTiers: number): string {\n if (totalTiers === 1) {\n return 'calc(100% - 18px)';\n }\n const milestonePercent = ((index + 1) / totalTiers) * 100;\n const offsetPercent = 8 / totalTiers;\n return `${Math.max(2, Math.min(95, milestonePercent - offsetPercent))}%`;\n }\n \n private getMilestoneStyles(tier: TieredOfferTier, index: number, totalTiers: number) {\n const isRtl = document.documentElement.dir === 'rtl';\n const adjustedPercent = this.calculateMilestonePosition(index, totalTiers);\n const alignItems = tier.name.length > 6 ? 'flex-end' : 'center';\n \n return {\n [isRtl ? 'right' : 'left']: adjustedPercent,\n alignItems,\n position: 'absolute' as const,\n transform: isRtl ? 'translateX(50%)' : 'translateX(-50%)'\n };\n }\n \n private getMilestoneIconStyles(tier: TieredOfferTier, isCurrent: boolean, isReached: boolean) {\n if (isCurrent) {\n return { color: tier.text_color };\n }\n if (isReached) {\n return { color: 'var(--color-primary)' };\n }\n return {};\n }\n \n private renderProgressBarBackground(progressWidth: number) {\n return [\n <div class=\"s-tiered-offer-progress-bg\"></div>,\n <div \n class=\"s-tiered-offer-progress-fill\"\n style={{ width: `${progressWidth}%` }}>\n </div>\n ];\n }\n \n private renderMilestoneIcon(tier: TieredOfferTier, isCurrent: boolean, isReached: boolean) {\n const iconClasses = [\n 's-tiered-offer-milestone-icon',\n isCurrent ? 's-tiered-offer-milestone-active' : '',\n isReached ? 's-tiered-offer-milestone-completed' : ''\n ].filter(Boolean).join(' ');\n \n return (\n <div \n class={iconClasses}\n style={this.getMilestoneIconStyles(tier, isCurrent, isReached)}>\n <span innerHTML={tier.icon}></span>\n </div>\n );\n }\n \n private renderMilestoneName(tier: TieredOfferTier, isCurrent: boolean) {\n return (\n <div class=\"s-tiered-offer-milestone-name\">\n {isCurrent && (\n <span style={{ color: tier.text_color }}>\n {tier.name}\n </span>\n )}\n </div>\n );\n }\n \n private renderMilestones(currentValue: number, totalTiers: number) {\n const containerClass = totalTiers === 1 \n ? 's-tiered-offer-single-milestone-justify-end' \n : 's-tiered-offer-milestones';\n \n return (\n <div class=\"s-tiered-offer-milestones-wrapper\">\n <div class={containerClass}>\n {this.tieredOfferData.tiers.map((tier, index) => {\n const isReached = currentValue >= tier.threshold;\n const isCurrent = tier.tier_name === this.currentTier;\n \n return (\n <div \n class=\"s-tiered-offer-milestone\"\n style={this.getMilestoneStyles(tier, index, totalTiers)}>\n {this.renderMilestoneIcon(tier, isCurrent, isReached)}\n {this.renderMilestoneName(tier, isCurrent)}\n </div>\n );\n })}\n </div>\n </div>\n );\n }\n\n private renderProgressBar() {\n const progressWidth = this.getProgressWidth();\n const totalTiers = this.tieredOfferData.tiers.length;\n const currentValue = this.apiOfferData.details?.current_value || 0;\n\n return (\n <div class=\"s-tiered-offer-progress-container\">\n <div class=\"s-tiered-offer-progress-wrapper\">\n {this.renderProgressBarBackground(progressWidth)}\n {this.renderMilestones(currentValue, totalTiers)}\n </div>\n </div>\n );\n }\n\n private renderTabs() {\n return (\n <div class=\"s-tiered-offer-tabs-container\">\n {/* Tab Headers */}\n <div class=\"s-tiered-offer-tab-headers\">\n {this.tieredOfferData.tiers.map(tier => {\n const isActive = tier.tier_name === this.activeTabTier;\n return (\n <button \n class={`s-tiered-offer-tab-header ${isActive ? 's-tiered-offer-tab-active' : ''}`}\n onClick={() => this.handleTabClick(tier.tier_name)}>\n <span>{tier.name}</span>\n </button>\n );\n })}\n </div>\n\n {/* Tab Content */}\n <div class=\"s-tiered-offer-tab-content-wrapper\">\n {(() => {\n const activeTier = TierUtils.findTierByName(this.tieredOfferData.tiers, this.activeTabTier);\n if (!activeTier) return null;\n \n return (\n <div class=\"s-tiered-offer-tab-content\">\n <div class=\"s-tiered-offer-tab-content-inner\">\n <div class=\"s-tiered-offer-discount-section\">\n <p class=\"s-tiered-offer-discount-title\">\n {this.discountText} <span innerHTML={activeTier.discount}></span>\n </p>\n <p class=\"s-tiered-offer-benefit-description\">\n {this.benefitText} {activeTier.name}\n </p>\n </div>\n </div>\n </div>\n );\n })()}\n </div>\n </div>\n );\n }\n\n render() {\n \n if (this.isLoading) {\n return this.getLoadingSkeletonView();\n }\n\n if (!this.canRender || !this.tieredOfferData) {\n return null;\n }\n \n\n const currentTierData = this.getCurrentTierData();\n\n return (\n <Host>\n <div class=\"s-tiered-offer-container\">\n {/* Header Section */}\n <div class=\"s-tiered-offer-header\">\n <div class=\"s-tiered-offer-header-content\">\n <p class=\"s-tiered-offer-program-title\">{this.loyaltyProgramText}</p>\n <div class=\"s-tiered-offer-current-tier-name-wrapper\">\n <h2 class=\"s-tiered-offer-current-tier\">\n {this.currentTierText} <span class=\"s-tiered-offer-tier-name\">{currentTierData.name}</span>\n </h2>\n <span innerHTML={currentTierData.icon}></span>\n </div>\n </div>\n </div>\n\n {/* Progress Bar */}\n {this.renderProgressBar()}\n\n {/* Tabs */}\n {this.renderTabs()}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +0,0 @@
1
- /*!
2
- * Crafted with ❤ by Salla
3
- */
4
- import{r as e,c as t,h as a,H as i}from"./p-Dxu9oA9K.js";const s="salla-loyalty-prize-item:hover{-webkit-box-shadow:0 5px 15px 1px rgba(0, 0, 0, 0.04) !important;box-shadow:0 5px 15px 1px rgba(0, 0, 0, 0.04) !important}";const c=class{constructor(a){e(this,a);this.prizeItemSelected=t(this,"prizeItemSelected")}onPrizeItemClick(){this.prizeItemSelected.emit(this.item)}render(){return a(i,{key:"601dbcf73e68678eecc912c14c2b1be612a78551"},a("div",{key:"074f8b4cb736bfabd5885d9df77bf74e7c4829a1",onClick:this.onPrizeItemClick.bind(this)},a("img",{key:"4bec672992f7e998bde639295831a5c9ad5f5088",class:"s-loyalty-prize-item-image",src:this.item.image,alt:this.item.name}),a("div",{key:"c8f858a7f406fe8e9123c57df627a4b6a2cbd719",class:"s-loyalty-prize-item-title"},this.item.name),a("div",{key:"81b954aa730e07c7f32ee538692581dede3543db",class:"s-loyalty-prize-item-subtitle"},this.item.description),a("div",{key:"b7baeada2da364fec6ee7bd606b595b1f652d8a8",class:"s-loyalty-prize-item-points"},this.item.cost_points," Points")))}};c.style=s;export{c as salla_loyalty_prize_item};
5
- //# sourceMappingURL=p-efcb6ca0.entry.js.map