@salla.sa/twilight-components 2.14.236 → 2.14.237

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 (307) hide show
  1. package/dist/cjs/{app-globals-BiBL8n7O.js → app-globals-FZ87eeGF.js} +3 -3
  2. package/dist/cjs/{app-globals-BiBL8n7O.js.map → app-globals-FZ87eeGF.js.map} +1 -1
  3. package/dist/cjs/{index-CL9a1bHC.js → index-DPPV2C9A.js} +4 -4
  4. package/dist/cjs/index-DPPV2C9A.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 +1 -1
  31. package/dist/cjs/salla-review-card.cjs.entry.js +1 -1
  32. package/dist/cjs/salla-reviews-page.cjs.entry.js +1 -1
  33. package/dist/cjs/salla-reviews.cjs.entry.js +1 -1
  34. package/dist/cjs/salla-social.cjs.entry.js +1 -1
  35. package/dist/cjs/salla-tiered-offer.cjs.entry.js +1 -1
  36. package/dist/cjs/salla-tooltip.cjs.entry.js +1 -1
  37. package/dist/cjs/salla-verify.cjs.entry.js +1 -1
  38. package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
  39. package/dist/cjs/twilight.cjs.js +2 -2
  40. package/dist/components/index.js +2 -2
  41. package/dist/components/index.js.map +1 -1
  42. package/dist/esm/{app-globals-DLksl8_y.js → app-globals-Bo28PF0U.js} +3 -3
  43. package/dist/esm/{app-globals-DLksl8_y.js.map → app-globals-Bo28PF0U.js.map} +1 -1
  44. package/dist/esm/{index-Bc7QG0Bw.js → index-DtSa9t5u.js} +4 -4
  45. package/dist/esm/index-DtSa9t5u.js.map +1 -0
  46. package/dist/esm/loader.js +3 -3
  47. package/dist/esm/salla-accordion-body.entry.js +1 -1
  48. package/dist/esm/salla-accordion-head.entry.js +1 -1
  49. package/dist/esm/salla-accordion.entry.js +1 -1
  50. package/dist/esm/salla-add-product-button_51.entry.js +1 -1
  51. package/dist/esm/salla-advertisement.entry.js +1 -1
  52. package/dist/esm/salla-app-install-alert.entry.js +1 -1
  53. package/dist/esm/salla-apps-icons.entry.js +1 -1
  54. package/dist/esm/salla-booking-field_2.entry.js +1 -1
  55. package/dist/esm/salla-cart-item-offers.entry.js +1 -1
  56. package/dist/esm/salla-conditional-offer.entry.js +1 -1
  57. package/dist/esm/salla-contacts.entry.js +1 -1
  58. package/dist/esm/salla-filters-widget.entry.js +1 -1
  59. package/dist/esm/salla-filters.entry.js +1 -1
  60. package/dist/esm/salla-installment.entry.js +1 -1
  61. package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
  62. package/dist/esm/salla-loyalty-program.entry.js +1 -1
  63. package/dist/esm/salla-metadata.entry.js +1 -1
  64. package/dist/esm/salla-notification-item.entry.js +1 -1
  65. package/dist/esm/salla-notifications.entry.js +1 -1
  66. package/dist/esm/salla-offer.entry.js +1 -1
  67. package/dist/esm/salla-order-summary.entry.js +1 -1
  68. package/dist/esm/salla-orders.entry.js +1 -1
  69. package/dist/esm/salla-payments.entry.js +1 -1
  70. package/dist/esm/salla-price-range.entry.js +1 -1
  71. package/dist/esm/salla-product-options.entry.js +1 -1
  72. package/dist/esm/salla-review-card.entry.js +1 -1
  73. package/dist/esm/salla-reviews-page.entry.js +1 -1
  74. package/dist/esm/salla-reviews.entry.js +1 -1
  75. package/dist/esm/salla-social.entry.js +1 -1
  76. package/dist/esm/salla-tiered-offer.entry.js +1 -1
  77. package/dist/esm/salla-tooltip.entry.js +1 -1
  78. package/dist/esm/salla-verify.entry.js +1 -1
  79. package/dist/esm/salla-wallet.entry.js +1 -1
  80. package/dist/esm/twilight.js +3 -3
  81. package/dist/esm-es5/{app-globals-DLksl8_y.js → app-globals-Bo28PF0U.js} +2 -2
  82. package/dist/esm-es5/{app-globals-DLksl8_y.js.map → app-globals-Bo28PF0U.js.map} +1 -1
  83. package/dist/esm-es5/{index-Bc7QG0Bw.js → index-DtSa9t5u.js} +3 -3
  84. package/dist/esm-es5/index-DtSa9t5u.js.map +1 -0
  85. package/dist/esm-es5/loader.js +1 -1
  86. package/dist/esm-es5/salla-accordion-body.entry.js +1 -1
  87. package/dist/esm-es5/salla-accordion-head.entry.js +1 -1
  88. package/dist/esm-es5/salla-accordion.entry.js +1 -1
  89. package/dist/esm-es5/salla-add-product-button_51.entry.js +1 -1
  90. package/dist/esm-es5/salla-advertisement.entry.js +1 -1
  91. package/dist/esm-es5/salla-app-install-alert.entry.js +1 -1
  92. package/dist/esm-es5/salla-apps-icons.entry.js +1 -1
  93. package/dist/esm-es5/salla-booking-field_2.entry.js +1 -1
  94. package/dist/esm-es5/salla-cart-item-offers.entry.js +1 -1
  95. package/dist/esm-es5/salla-conditional-offer.entry.js +1 -1
  96. package/dist/esm-es5/salla-contacts.entry.js +1 -1
  97. package/dist/esm-es5/salla-filters-widget.entry.js +2 -2
  98. package/dist/esm-es5/salla-filters.entry.js +1 -1
  99. package/dist/esm-es5/salla-installment.entry.js +1 -1
  100. package/dist/esm-es5/salla-loyalty-prize-item.entry.js +1 -1
  101. package/dist/esm-es5/salla-loyalty-program.entry.js +1 -1
  102. package/dist/esm-es5/salla-metadata.entry.js +1 -1
  103. package/dist/esm-es5/salla-notification-item.entry.js +1 -1
  104. package/dist/esm-es5/salla-notifications.entry.js +1 -1
  105. package/dist/esm-es5/salla-offer.entry.js +1 -1
  106. package/dist/esm-es5/salla-order-summary.entry.js +2 -2
  107. package/dist/esm-es5/salla-orders.entry.js +1 -1
  108. package/dist/esm-es5/salla-payments.entry.js +1 -1
  109. package/dist/esm-es5/salla-price-range.entry.js +1 -1
  110. package/dist/esm-es5/salla-product-options.entry.js +1 -1
  111. package/dist/esm-es5/salla-review-card.entry.js +1 -1
  112. package/dist/esm-es5/salla-reviews-page.entry.js +1 -1
  113. package/dist/esm-es5/salla-reviews.entry.js +1 -1
  114. package/dist/esm-es5/salla-social.entry.js +1 -1
  115. package/dist/esm-es5/salla-tiered-offer.entry.js +1 -1
  116. package/dist/esm-es5/salla-tooltip.entry.js +1 -1
  117. package/dist/esm-es5/salla-verify.entry.js +1 -1
  118. package/dist/esm-es5/salla-wallet.entry.js +1 -1
  119. package/dist/esm-es5/twilight.js +1 -1
  120. package/dist/twilight/{p-f0a7b319.entry.js → p-00fdccc5.entry.js} +2 -2
  121. package/dist/twilight/{p-aa20b533.system.entry.js → p-01b78d49.system.entry.js} +2 -2
  122. package/dist/twilight/{p-482a526a.entry.js → p-12aa800a.entry.js} +2 -2
  123. package/dist/twilight/{p-aac7c581.system.entry.js → p-1614dd20.system.entry.js} +2 -2
  124. package/dist/twilight/{p-CpJ1jVBY.system.js.map → p-1XKUtqZy.system.js.map} +1 -1
  125. package/dist/twilight/{p-64c571ff.system.entry.js → p-1b311c39.system.entry.js} +2 -2
  126. package/dist/twilight/{p-f401cc33.system.entry.js → p-1c6aea67.system.entry.js} +2 -2
  127. package/dist/twilight/{p-4247e4d2.entry.js → p-1d8324b2.entry.js} +2 -2
  128. package/dist/twilight/{p-09eb989c.entry.js → p-1facdb93.entry.js} +2 -2
  129. package/dist/twilight/{p-c37dad77.entry.js → p-20ad900f.entry.js} +2 -2
  130. package/dist/twilight/{p-527a00c2.system.entry.js → p-219325ba.system.entry.js} +2 -2
  131. package/dist/twilight/{p-7d16e7db.system.entry.js → p-26785fd0.system.entry.js} +3 -3
  132. package/dist/twilight/{p-a546c3d3.entry.js → p-27b04365.entry.js} +2 -2
  133. package/dist/twilight/{p-f97dc76f.system.entry.js → p-36325cef.system.entry.js} +2 -2
  134. package/dist/twilight/{p-6c10f4ac.system.entry.js → p-36a5d976.system.entry.js} +2 -2
  135. package/dist/twilight/{p-a7474b8f.system.entry.js → p-3ae71186.system.entry.js} +2 -2
  136. package/dist/twilight/{p-3017331b.system.entry.js → p-430ec00d.system.entry.js} +2 -2
  137. package/dist/twilight/{p-0716a969.entry.js → p-460ad452.entry.js} +2 -2
  138. package/dist/twilight/{p-a00d1eb5.entry.js → p-4ad84b72.entry.js} +2 -2
  139. package/dist/twilight/{p-cc0e129e.entry.js → p-4d71cbb2.entry.js} +2 -2
  140. package/dist/twilight/{p-542f3ffe.system.entry.js → p-51ba7792.system.entry.js} +2 -2
  141. package/dist/twilight/{p-6680d962.system.entry.js → p-52286bee.system.entry.js} +2 -2
  142. package/dist/twilight/{p-04b288b6.system.entry.js → p-573c00f7.system.entry.js} +2 -2
  143. package/dist/twilight/{p-dbb37c5f.system.entry.js → p-5e44b3b4.system.entry.js} +2 -2
  144. package/dist/twilight/{p-70b84a25.system.entry.js → p-5fae7361.system.entry.js} +2 -2
  145. package/dist/twilight/p-61a95334.entry.js +5 -0
  146. package/dist/twilight/{p-8956e04b.system.entry.js → p-630c9461.system.entry.js} +2 -2
  147. package/dist/twilight/{p-cb39de74.system.entry.js → p-64ebd8b6.system.entry.js} +2 -2
  148. package/dist/twilight/{p-f7024ef7.entry.js → p-68ecf660.entry.js} +2 -2
  149. package/dist/twilight/{p-5178d6d9.entry.js → p-757253af.entry.js} +2 -2
  150. package/dist/twilight/{p-9ff207cb.system.entry.js → p-778bdc4b.system.entry.js} +2 -2
  151. package/dist/twilight/{p-cd25fc49.system.entry.js → p-78dfe8fa.system.entry.js} +2 -2
  152. package/dist/twilight/{p-d7341c64.entry.js → p-7c0b086b.entry.js} +2 -2
  153. package/dist/twilight/{p-8debb4f8.system.entry.js → p-84021991.system.entry.js} +2 -2
  154. package/dist/twilight/{p-Whtd-rzC.system.js.map → p-8886CCPm.system.js.map} +1 -1
  155. package/dist/twilight/{p-dda41b9d.system.entry.js → p-96d04c12.system.entry.js} +2 -2
  156. package/dist/twilight/{p-b9d5c374.entry.js → p-9799f20a.entry.js} +2 -2
  157. package/dist/twilight/{p-51ae989f.system.entry.js → p-9a269dd2.system.entry.js} +2 -2
  158. package/dist/twilight/{p-f695f2bb.entry.js → p-9b4fdac9.entry.js} +2 -2
  159. package/dist/twilight/{p-a346005f.entry.js → p-9c3ec628.entry.js} +2 -2
  160. package/dist/twilight/{p-C4tH1o11.system.js.map → p-B5qX9SAM.system.js.map} +1 -1
  161. package/dist/twilight/{p-Do1VfT5m.system.js.map → p-B8RN8fEn.system.js.map} +1 -1
  162. package/dist/twilight/{p-CntH3fnG.system.js → p-B8x9Yk9m.system.js} +2 -2
  163. package/dist/twilight/{p-CntH3fnG.system.js.map → p-B8x9Yk9m.system.js.map} +1 -1
  164. package/dist/twilight/{p-DK242p_n.system.js.map → p-BR_-nyn4.system.js.map} +1 -1
  165. package/dist/twilight/{p-DySkqkzn.system.js.map → p-BWgobA0o.system.js.map} +1 -1
  166. package/dist/twilight/{p-D84bigTt.system.js.map → p-BdGsc5dG.system.js.map} +1 -1
  167. package/dist/twilight/{p-BQSsG6hs.system.js.map → p-BtWV4qr8.system.js.map} +1 -1
  168. package/dist/twilight/{p-BpWtz-o-.system.js.map → p-BwVf7CY-.system.js.map} +1 -1
  169. package/dist/twilight/{p-DnKKfIGu.js → p-Bycrl6RW.js} +2 -2
  170. package/dist/twilight/{p-DnKKfIGu.js.map → p-Bycrl6RW.js.map} +1 -1
  171. package/dist/twilight/{p-BsAOFHfa.system.js.map → p-C7ynTIue.system.js.map} +1 -1
  172. package/dist/twilight/{p-PsIrDG0P.system.js.map → p-CC3LDJcU.system.js.map} +1 -1
  173. package/dist/twilight/{p-D_aiDoJa.system.js.map → p-CDZp7nYn.system.js.map} +1 -1
  174. package/dist/twilight/{p-DL91peQd.system.js.map → p-CIQZOGjg.system.js.map} +1 -1
  175. package/dist/twilight/{p-4g60g1gM.system.js.map → p-CKqNoRao.system.js.map} +1 -1
  176. package/dist/twilight/{p-BuTL-5IZ.system.js.map → p-CLY4wiDR.system.js.map} +1 -1
  177. package/dist/twilight/{p-AmBNLzq7.system.js.map → p-CLm3ap1x.system.js.map} +1 -1
  178. package/dist/twilight/{p-AFVbnV1C.system.js.map → p-CWekReia.system.js.map} +1 -1
  179. package/dist/twilight/{p-DdPxu711.system.js.map → p-CfE2ZfVQ.system.js.map} +1 -1
  180. package/dist/twilight/{p-yX5xEUEV.system.js.map → p-Cgh4BpN_.system.js.map} +1 -1
  181. package/dist/twilight/{p-BhQyYKvB.system.js.map → p-ChkI944T.system.js.map} +1 -1
  182. package/dist/twilight/{p-CQruSS5v.system.js → p-Clm1SRkt.system.js} +3 -3
  183. package/dist/twilight/p-Clm1SRkt.system.js.map +1 -0
  184. package/dist/twilight/{p-DYol8Ecn.system.js.map → p-CuEaB1Hm.system.js.map} +1 -1
  185. package/dist/twilight/{p-Clk-QZRq.system.js.map → p-CyXDaFP8.system.js.map} +1 -1
  186. package/dist/twilight/{p-DjRNVWxB.system.js.map → p-D2o1lDPM.system.js.map} +1 -1
  187. package/dist/twilight/{p-D7npZfHa.system.js.map → p-DBGYgKNQ.system.js.map} +1 -1
  188. package/dist/twilight/{p-CAFr1-rq.system.js.map → p-DC7zsBuh.system.js.map} +1 -1
  189. package/dist/twilight/{p-5q7t88A_.system.js.map → p-DI2sPRFm.system.js.map} +1 -1
  190. package/dist/twilight/{p-YQ7at5KH.system.js → p-DM9p7qQz.system.js} +2 -2
  191. package/dist/twilight/{p-YQ7at5KH.system.js.map → p-DM9p7qQz.system.js.map} +1 -1
  192. package/dist/twilight/{p-B2Fa9jiU.system.js.map → p-DOyyQqRR.system.js.map} +1 -1
  193. package/dist/twilight/{p-NuVPw_Nc.system.js.map → p-DYsXGiq5.system.js.map} +1 -1
  194. package/dist/twilight/{p-Bc7QG0Bw.js → p-DtSa9t5u.js} +3 -3
  195. package/dist/twilight/p-DtSa9t5u.js.map +1 -0
  196. package/dist/twilight/{p-qxXtNkn5.system.js.map → p-Dzk0QUwj.system.js.map} +1 -1
  197. package/dist/twilight/{p-DFlzYvlE.system.js.map → p-PnqzIRp-.system.js.map} +1 -1
  198. package/dist/twilight/{p-B5O8wbtO.system.js.map → p-RYDfVaJJ.system.js.map} +1 -1
  199. package/dist/twilight/{p-BcP7I9Z3.system.js.map → p-YTTfnax2.system.js.map} +1 -1
  200. package/dist/twilight/{p-43f27f25.system.entry.js → p-a5b597b3.system.entry.js} +2 -2
  201. package/dist/twilight/{p-01719df8.entry.js → p-a937ef88.entry.js} +2 -2
  202. package/dist/twilight/{p-e130408a.entry.js → p-aa69d190.entry.js} +2 -2
  203. package/dist/twilight/{p-0c994332.entry.js → p-acf8361d.entry.js} +2 -2
  204. package/dist/twilight/{p-94364cd6.system.entry.js → p-aef17c85.system.entry.js} +2 -2
  205. package/dist/twilight/{p-b162797c.system.entry.js → p-b0bce22c.system.entry.js} +2 -2
  206. package/dist/twilight/{p-12cdc823.system.entry.js → p-b5ebb061.system.entry.js} +2 -2
  207. package/dist/twilight/{p-573da499.entry.js → p-b6a5a344.entry.js} +2 -2
  208. package/dist/twilight/{p-8ba1d52f.entry.js → p-b9272614.entry.js} +2 -2
  209. package/dist/twilight/{p-f3310543.system.entry.js → p-bbbd7bd9.system.entry.js} +2 -2
  210. package/dist/twilight/{p-dfd38f87.entry.js → p-bdeb81be.entry.js} +2 -2
  211. package/dist/twilight/{p-918b2ceb.system.entry.js → p-bf8af618.system.entry.js} +2 -2
  212. package/dist/twilight/{p-5ad09904.entry.js → p-c0939dd1.entry.js} +2 -2
  213. package/dist/twilight/p-cd88255a.entry.js +5 -0
  214. package/dist/twilight/{p-3719e470.entry.js → p-ce8dd3c5.entry.js} +2 -2
  215. package/dist/twilight/{p-97839943.entry.js → p-d5eb325d.entry.js} +2 -2
  216. package/dist/twilight/{p-f5dd6513.entry.js → p-d670c635.entry.js} +2 -2
  217. package/dist/twilight/{p-d4c6706e.system.entry.js → p-dba7bf98.system.entry.js} +2 -2
  218. package/dist/twilight/{p-3588f05f.system.entry.js → p-dc469dfa.system.entry.js} +3 -3
  219. package/dist/twilight/{p-8885c541.entry.js → p-dfdd47e2.entry.js} +2 -2
  220. package/dist/twilight/{p-47953286.entry.js → p-e0476256.entry.js} +2 -2
  221. package/dist/twilight/{p-38e04dc6.system.entry.js → p-e782145e.system.entry.js} +2 -2
  222. package/dist/twilight/{p-c32a25e6.entry.js → p-e92e52f9.entry.js} +2 -2
  223. package/dist/twilight/{p-a2485825.system.entry.js → p-e970b826.system.entry.js} +2 -2
  224. package/dist/twilight/p-efeeb252.entry.js +5 -0
  225. package/dist/twilight/{p-4ad5e38a.entry.js → p-f64105f8.entry.js} +2 -2
  226. package/dist/twilight/p-fb8f44fa.system.entry.js +5 -0
  227. package/dist/twilight/{p-f557f4f9.entry.js → p-fe471308.entry.js} +2 -2
  228. package/dist/twilight/{p-CNp8Idfw.system.js.map → p-jqHVaV2X.system.js.map} +1 -1
  229. package/dist/twilight/{p-CJnL2gU5.system.js.map → p-q_MM0oKK.system.js.map} +1 -1
  230. package/dist/twilight/twilight.esm.js +1 -1
  231. package/dist/twilight/twilight.js +1 -1
  232. package/package.json +5 -5
  233. package/dist/cjs/index-CL9a1bHC.js.map +0 -1
  234. package/dist/esm/index-Bc7QG0Bw.js.map +0 -1
  235. package/dist/esm-es5/index-Bc7QG0Bw.js.map +0 -1
  236. package/dist/twilight/p-3a66e093.entry.js +0 -5
  237. package/dist/twilight/p-49641cec.system.entry.js +0 -5
  238. package/dist/twilight/p-74e321ea.entry.js +0 -5
  239. package/dist/twilight/p-77ba2862.entry.js +0 -5
  240. package/dist/twilight/p-Bc7QG0Bw.js.map +0 -1
  241. package/dist/twilight/p-CQruSS5v.system.js.map +0 -1
  242. /package/dist/twilight/{p-f0a7b319.entry.js.map → p-00fdccc5.entry.js.map} +0 -0
  243. /package/dist/twilight/{p-aa20b533.system.entry.js.map → p-01b78d49.system.entry.js.map} +0 -0
  244. /package/dist/twilight/{p-482a526a.entry.js.map → p-12aa800a.entry.js.map} +0 -0
  245. /package/dist/twilight/{p-aac7c581.system.entry.js.map → p-1614dd20.system.entry.js.map} +0 -0
  246. /package/dist/twilight/{p-64c571ff.system.entry.js.map → p-1b311c39.system.entry.js.map} +0 -0
  247. /package/dist/twilight/{p-f401cc33.system.entry.js.map → p-1c6aea67.system.entry.js.map} +0 -0
  248. /package/dist/twilight/{p-4247e4d2.entry.js.map → p-1d8324b2.entry.js.map} +0 -0
  249. /package/dist/twilight/{p-09eb989c.entry.js.map → p-1facdb93.entry.js.map} +0 -0
  250. /package/dist/twilight/{p-c37dad77.entry.js.map → p-20ad900f.entry.js.map} +0 -0
  251. /package/dist/twilight/{p-527a00c2.system.entry.js.map → p-219325ba.system.entry.js.map} +0 -0
  252. /package/dist/twilight/{p-7d16e7db.system.entry.js.map → p-26785fd0.system.entry.js.map} +0 -0
  253. /package/dist/twilight/{p-a546c3d3.entry.js.map → p-27b04365.entry.js.map} +0 -0
  254. /package/dist/twilight/{p-f97dc76f.system.entry.js.map → p-36325cef.system.entry.js.map} +0 -0
  255. /package/dist/twilight/{p-6c10f4ac.system.entry.js.map → p-36a5d976.system.entry.js.map} +0 -0
  256. /package/dist/twilight/{p-a7474b8f.system.entry.js.map → p-3ae71186.system.entry.js.map} +0 -0
  257. /package/dist/twilight/{p-3017331b.system.entry.js.map → p-430ec00d.system.entry.js.map} +0 -0
  258. /package/dist/twilight/{p-0716a969.entry.js.map → p-460ad452.entry.js.map} +0 -0
  259. /package/dist/twilight/{p-a00d1eb5.entry.js.map → p-4ad84b72.entry.js.map} +0 -0
  260. /package/dist/twilight/{p-cc0e129e.entry.js.map → p-4d71cbb2.entry.js.map} +0 -0
  261. /package/dist/twilight/{p-542f3ffe.system.entry.js.map → p-51ba7792.system.entry.js.map} +0 -0
  262. /package/dist/twilight/{p-6680d962.system.entry.js.map → p-52286bee.system.entry.js.map} +0 -0
  263. /package/dist/twilight/{p-04b288b6.system.entry.js.map → p-573c00f7.system.entry.js.map} +0 -0
  264. /package/dist/twilight/{p-dbb37c5f.system.entry.js.map → p-5e44b3b4.system.entry.js.map} +0 -0
  265. /package/dist/twilight/{p-70b84a25.system.entry.js.map → p-5fae7361.system.entry.js.map} +0 -0
  266. /package/dist/twilight/{p-74e321ea.entry.js.map → p-61a95334.entry.js.map} +0 -0
  267. /package/dist/twilight/{p-8956e04b.system.entry.js.map → p-630c9461.system.entry.js.map} +0 -0
  268. /package/dist/twilight/{p-cb39de74.system.entry.js.map → p-64ebd8b6.system.entry.js.map} +0 -0
  269. /package/dist/twilight/{p-f7024ef7.entry.js.map → p-68ecf660.entry.js.map} +0 -0
  270. /package/dist/twilight/{p-5178d6d9.entry.js.map → p-757253af.entry.js.map} +0 -0
  271. /package/dist/twilight/{p-9ff207cb.system.entry.js.map → p-778bdc4b.system.entry.js.map} +0 -0
  272. /package/dist/twilight/{p-cd25fc49.system.entry.js.map → p-78dfe8fa.system.entry.js.map} +0 -0
  273. /package/dist/twilight/{p-d7341c64.entry.js.map → p-7c0b086b.entry.js.map} +0 -0
  274. /package/dist/twilight/{p-8debb4f8.system.entry.js.map → p-84021991.system.entry.js.map} +0 -0
  275. /package/dist/twilight/{p-dda41b9d.system.entry.js.map → p-96d04c12.system.entry.js.map} +0 -0
  276. /package/dist/twilight/{p-b9d5c374.entry.js.map → p-9799f20a.entry.js.map} +0 -0
  277. /package/dist/twilight/{p-51ae989f.system.entry.js.map → p-9a269dd2.system.entry.js.map} +0 -0
  278. /package/dist/twilight/{p-f695f2bb.entry.js.map → p-9b4fdac9.entry.js.map} +0 -0
  279. /package/dist/twilight/{p-a346005f.entry.js.map → p-9c3ec628.entry.js.map} +0 -0
  280. /package/dist/twilight/{p-43f27f25.system.entry.js.map → p-a5b597b3.system.entry.js.map} +0 -0
  281. /package/dist/twilight/{p-01719df8.entry.js.map → p-a937ef88.entry.js.map} +0 -0
  282. /package/dist/twilight/{p-e130408a.entry.js.map → p-aa69d190.entry.js.map} +0 -0
  283. /package/dist/twilight/{p-0c994332.entry.js.map → p-acf8361d.entry.js.map} +0 -0
  284. /package/dist/twilight/{p-94364cd6.system.entry.js.map → p-aef17c85.system.entry.js.map} +0 -0
  285. /package/dist/twilight/{p-b162797c.system.entry.js.map → p-b0bce22c.system.entry.js.map} +0 -0
  286. /package/dist/twilight/{p-12cdc823.system.entry.js.map → p-b5ebb061.system.entry.js.map} +0 -0
  287. /package/dist/twilight/{p-573da499.entry.js.map → p-b6a5a344.entry.js.map} +0 -0
  288. /package/dist/twilight/{p-8ba1d52f.entry.js.map → p-b9272614.entry.js.map} +0 -0
  289. /package/dist/twilight/{p-f3310543.system.entry.js.map → p-bbbd7bd9.system.entry.js.map} +0 -0
  290. /package/dist/twilight/{p-dfd38f87.entry.js.map → p-bdeb81be.entry.js.map} +0 -0
  291. /package/dist/twilight/{p-918b2ceb.system.entry.js.map → p-bf8af618.system.entry.js.map} +0 -0
  292. /package/dist/twilight/{p-5ad09904.entry.js.map → p-c0939dd1.entry.js.map} +0 -0
  293. /package/dist/twilight/{p-3a66e093.entry.js.map → p-cd88255a.entry.js.map} +0 -0
  294. /package/dist/twilight/{p-3719e470.entry.js.map → p-ce8dd3c5.entry.js.map} +0 -0
  295. /package/dist/twilight/{p-97839943.entry.js.map → p-d5eb325d.entry.js.map} +0 -0
  296. /package/dist/twilight/{p-f5dd6513.entry.js.map → p-d670c635.entry.js.map} +0 -0
  297. /package/dist/twilight/{p-d4c6706e.system.entry.js.map → p-dba7bf98.system.entry.js.map} +0 -0
  298. /package/dist/twilight/{p-3588f05f.system.entry.js.map → p-dc469dfa.system.entry.js.map} +0 -0
  299. /package/dist/twilight/{p-8885c541.entry.js.map → p-dfdd47e2.entry.js.map} +0 -0
  300. /package/dist/twilight/{p-47953286.entry.js.map → p-e0476256.entry.js.map} +0 -0
  301. /package/dist/twilight/{p-38e04dc6.system.entry.js.map → p-e782145e.system.entry.js.map} +0 -0
  302. /package/dist/twilight/{p-c32a25e6.entry.js.map → p-e92e52f9.entry.js.map} +0 -0
  303. /package/dist/twilight/{p-a2485825.system.entry.js.map → p-e970b826.system.entry.js.map} +0 -0
  304. /package/dist/twilight/{p-77ba2862.entry.js.map → p-efeeb252.entry.js.map} +0 -0
  305. /package/dist/twilight/{p-4ad5e38a.entry.js.map → p-f64105f8.entry.js.map} +0 -0
  306. /package/dist/twilight/{p-49641cec.system.entry.js.map → p-fb8f44fa.system.entry.js.map} +0 -0
  307. /package/dist/twilight/{p-f557f4f9.entry.js.map → p-fe471308.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"p-DySkqkzn.system.js","sources":["src/components/salla-review-card/salla-review-card.css?tag=salla-review-card","src/components/salla-review-card/salla-review-card.tsx"],"sourcesContent":[":host {\n display: block\n}\n\n","import { Component, h, Element, State, Prop } from \"@stencil/core\";\nimport type { Review } from \"./interfaces\";\nimport IconVerified from '../../assets/svg/check.svg'\nimport IconStar2 from '../../assets/svg/star-02.svg'\nimport IconStar2Muted from '../../assets/svg/star-02-muted.svg'\nimport IconFire2 from '../../assets/svg/fire-02.svg'\n\ninterface SwipeEvent {\n x: number;\n y: number;\n}\n\n@Component({\n tag: \"salla-review-card\",\n styleUrl: \"salla-review-card.css\",\n})\nexport class SallaReviewCard {\n @Element() el!: HTMLElement;\n @Prop() review: Partial<Review>;\n @State() currentSlide = 0;\n @State() purchasedCount: string\n @State() showPurchaseCount = false;\n\n private startPoint: SwipeEvent = { x: 0, y: 0 };\n private isSwiping = false;\n private sliderElement?: HTMLElement;\n private isRTL = \"rtl\"\n\n async componentDidLoad() {\n await salla.onReady()\n\n this.showPurchaseCount = !!salla.config.get('store.settings.product.total_sold_enabled', false);\n this.isRTL = salla.config.get('theme.is_rtl', true)\n\n this.purchasedCount = salla.lang.getWithDefault('blocks.home.reviews.purchased_count',\n this.isRTL ? ` تم شراءه ${this.review.product?.sold_quantity} مرة`\n : `Purchased ${this.review.product.sold_quantity} times`,\n { count: this.review.product?.sold_quantity })\n\n this.initializeSlider();\n }\n\n disconnectedCallback() {\n this.removeEventListeners();\n }\n\n private get images(): Review[\"product\"][\"images\"] {\n const { review } = this;\n return review?.images?.length > 1\n ? review.images.map((image, idx) => ({ url: image, alt: '', id: idx }))\n : review?.product?.images || []\n }\n\n private get hasMultipleImages(): boolean {\n return this.images.length > 1;\n }\n\n private get slideTransform(): string {\n const direction = this.isRTL ? 1 : -1;\n return `translateX(${this.currentSlide * 100 * direction}%)`;\n }\n\n private initializeSlider() {\n if (!this.hasMultipleImages) return;\n\n this.sliderElement = this.el.querySelector(\".s-review-card-slider-container\") as HTMLElement;\n if (!this.sliderElement) return;\n\n // Enable pointer events and set touch-action\n this.sliderElement.style.touchAction = 'pan-y pinch-zoom';\n this.addEventListeners();\n }\n\n private addEventListeners() {\n if (!this.sliderElement) return;\n\n this.sliderElement.addEventListener(\"pointerdown\", this.handlePointerDown, { passive: false });\n this.sliderElement.addEventListener(\"pointermove\", this.handlePointerMove, { passive: false });\n this.sliderElement.addEventListener(\"pointerup\", this.handlePointerUp, { passive: true });\n this.sliderElement.addEventListener(\"pointercancel\", this.handlePointerCancel, { passive: true });\n }\n\n private removeEventListeners() {\n if (!this.sliderElement) return;\n\n this.sliderElement.removeEventListener(\"pointerdown\", this.handlePointerDown);\n this.sliderElement.removeEventListener(\"pointermove\", this.handlePointerMove);\n this.sliderElement.removeEventListener(\"pointerup\", this.handlePointerUp);\n this.sliderElement.removeEventListener(\"pointercancel\", this.handlePointerCancel);\n }\n\n private handlePointerDown = (e: PointerEvent) => {\n // Only handle primary pointer (first touch/mouse)\n if (!e.isPrimary) return;\n\n this.sliderElement?.setPointerCapture(e.pointerId);\n\n this.startSwipe(e.clientX, e.clientY);\n e.preventDefault();\n };\n\n private handlePointerMove = (e: PointerEvent) => {\n if (!this.isSwiping || !e.isPrimary) return;\n e.preventDefault();\n };\n\n private handlePointerUp = (e: PointerEvent) => {\n if (!this.isSwiping || !e.isPrimary) return;\n\n this.sliderElement?.releasePointerCapture(e.pointerId);\n\n this.endSwipe(e.clientX, e.clientY);\n };\n\n private handlePointerCancel = (e: PointerEvent) => {\n if (!this.isSwiping || !e.isPrimary) return;\n\n this.sliderElement?.releasePointerCapture(e.pointerId);\n\n this.isSwiping = false;\n };\n\n private startSwipe(x: number, y: number) {\n this.startPoint = { x, y };\n this.isSwiping = true;\n }\n\n componentDidRender() {\n this.removeEventListeners()\n this.addEventListeners();\n }\n\n private endSwipe(x: number, y: number) {\n this.isSwiping = false;\n const dx = x - this.startPoint.x;\n const dy = y - this.startPoint.y;\n this.processSwipe(dx, dy);\n }\n\n private processSwipe(dx: number, dy: number) {\n const MIN_SWIPE_DISTANCE = 10;\n\n if (Math.abs(dx) < MIN_SWIPE_DISTANCE || Math.abs(dy) > Math.abs(dx)) return;\n\n const isLeftSwipe = dx < 0;\n const shouldGoNext = this.isRTL ? !isLeftSwipe : isLeftSwipe;\n\n if (shouldGoNext) {\n this.goToNextSlide();\n } else {\n this.goToPrevSlide();\n }\n }\n\n private goToNextSlide() {\n if (this.currentSlide < this.images.length - 1) {\n this.currentSlide++;\n }\n }\n\n private goToPrevSlide() {\n if (this.currentSlide > 0) {\n this.currentSlide--;\n }\n }\n\n private goToSlide = (index: number) => {\n this.currentSlide = Math.max(0, Math.min(index, this.images.length - 1));\n };\n\n private renderStars() {\n return Array(5)\n .fill(null)\n .map((_, index) => <span key={index} innerHTML={this.review.stars >= index + 1 ? IconStar2 : IconStar2Muted} />);\n }\n\n private renderDots() {\n return this.images.map(({ url }, index) => (\n <button\n key={url || index}\n type=\"button\"\n class={`s-review-card-slider-dot ${this.currentSlide === index ? \"active\" : \"\"}`}\n onClick={() => this.goToSlide(index)}\n aria-label={`Go to slide ${index + 1}`}\n onPointerDown={() => this.goToSlide(index)}\n />\n ));\n }\n\n private renderSlider() {\n if (!this.hasMultipleImages) return null;\n\n return (\n <div class=\"s-review-card-slider-container\">\n <div class=\"s-review-card-slides\" style={{ transform: this.slideTransform }}>\n {this.images.map((image) => (\n <div key={image?.id} class=\"s-review-card-slider-slide\">\n <img\n src={image.url}\n alt={image.alt || \"Product image\"}\n width={275}\n height={275}\n loading=\"lazy\"\n draggable={false}\n />\n </div>\n ))}\n </div>\n <div class=\"s-review-card-slider-dots\">{this.renderDots()}</div>\n </div>\n );\n }\n\n private renderSingleImage() {\n const image = this.review?.product?.image;\n if (!image || this.hasMultipleImages) return null;\n\n return (\n <img\n src={image.url}\n alt={image.alt || \"Product image\"}\n class=\"s-review-card-image\"\n width={275}\n height={275}\n loading=\"lazy\"\n decoding=\"async\"\n draggable={false}\n />\n\n );\n }\n\n private renderHeader() {\n return (\n <div class=\"s-review-card-header\">\n <div class=\"s-review-card-reviewer-name\">\n <p>{this.review?.name}</p>\n {this.review?.has_order && <span class=\"s-review-card-verified-icon\" innerHTML={IconVerified} />}\n </div>\n <div class=\"s-review-card-stars\">{this.renderStars()}</div>\n </div>\n );\n }\n\n private renderProductInfo() {\n const product = this.review?.product;\n if (!product) return null;\n\n return (\n <a href={this.review?.product?.url} class=\"s-review-card-product-container\">\n <img\n alt={product.image?.alt || \"Product\"}\n src={product.image?.url}\n class=\"s-review-card-product-image\"\n width={60}\n height={60}\n loading=\"lazy\"\n decoding=\"async\"\n draggable={false}\n />\n <div class=\"s-review-card-product-details\">\n <p class=\"s-review-card-product-details-name\">{product.name}</p>\n {this.showPurchaseCount ? <p class=\"s-review-card-product-details-purchase-count\">\n <span innerHTML={IconFire2} />\n {this.purchasedCount}\n </p> : null}\n </div>\n </a>\n );\n }\n\n render() {\n return <div class=\"s-review-card-container\">\n {this.renderSlider()}\n {this.renderSingleImage()}\n {renderDivider()}\n <div class=\"s-review-card-content\">\n {this.renderHeader()}\n <p\n class=\"s-review-card-review-content\"\n innerHTML={this.review?.content}\n />\n {renderDivider()}\n {this.renderProductInfo()}\n </div>\n </div>\n }\n}\n\nconst renderDivider = (className?: string) => (\n <div class={`s-review-card-divider ${className || \"\"}`} />\n)"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-BWgobA0o.system.js","sources":["src/components/salla-review-card/salla-review-card.css?tag=salla-review-card","src/components/salla-review-card/salla-review-card.tsx"],"sourcesContent":[":host {\n display: block\n}\n\n","import { Component, h, Element, State, Prop } from \"@stencil/core\";\nimport type { Review } from \"./interfaces\";\nimport IconVerified from '../../assets/svg/check.svg'\nimport IconStar2 from '../../assets/svg/star-02.svg'\nimport IconStar2Muted from '../../assets/svg/star-02-muted.svg'\nimport IconFire2 from '../../assets/svg/fire-02.svg'\n\ninterface SwipeEvent {\n x: number;\n y: number;\n}\n\n@Component({\n tag: \"salla-review-card\",\n styleUrl: \"salla-review-card.css\",\n})\nexport class SallaReviewCard {\n @Element() el!: HTMLElement;\n @Prop() review: Partial<Review>;\n @State() currentSlide = 0;\n @State() purchasedCount: string\n @State() showPurchaseCount = false;\n\n private startPoint: SwipeEvent = { x: 0, y: 0 };\n private isSwiping = false;\n private sliderElement?: HTMLElement;\n private isRTL = \"rtl\"\n\n async componentDidLoad() {\n await salla.onReady()\n\n this.showPurchaseCount = !!salla.config.get('store.settings.product.total_sold_enabled', false);\n this.isRTL = salla.config.get('theme.is_rtl', true)\n\n this.purchasedCount = salla.lang.getWithDefault('blocks.home.reviews.purchased_count',\n this.isRTL ? ` تم شراءه ${this.review.product?.sold_quantity} مرة`\n : `Purchased ${this.review.product.sold_quantity} times`,\n { count: this.review.product?.sold_quantity })\n\n this.initializeSlider();\n }\n\n disconnectedCallback() {\n this.removeEventListeners();\n }\n\n private get images(): Review[\"product\"][\"images\"] {\n const { review } = this;\n return review?.images?.length > 1\n ? review.images.map((image, idx) => ({ url: image, alt: '', id: idx }))\n : review?.product?.images || []\n }\n\n private get hasMultipleImages(): boolean {\n return this.images.length > 1;\n }\n\n private get slideTransform(): string {\n const direction = this.isRTL ? 1 : -1;\n return `translateX(${this.currentSlide * 100 * direction}%)`;\n }\n\n private initializeSlider() {\n if (!this.hasMultipleImages) return;\n\n this.sliderElement = this.el.querySelector(\".s-review-card-slider-container\") as HTMLElement;\n if (!this.sliderElement) return;\n\n // Enable pointer events and set touch-action\n this.sliderElement.style.touchAction = 'pan-y pinch-zoom';\n this.addEventListeners();\n }\n\n private addEventListeners() {\n if (!this.sliderElement) return;\n\n this.sliderElement.addEventListener(\"pointerdown\", this.handlePointerDown, { passive: false });\n this.sliderElement.addEventListener(\"pointermove\", this.handlePointerMove, { passive: false });\n this.sliderElement.addEventListener(\"pointerup\", this.handlePointerUp, { passive: true });\n this.sliderElement.addEventListener(\"pointercancel\", this.handlePointerCancel, { passive: true });\n }\n\n private removeEventListeners() {\n if (!this.sliderElement) return;\n\n this.sliderElement.removeEventListener(\"pointerdown\", this.handlePointerDown);\n this.sliderElement.removeEventListener(\"pointermove\", this.handlePointerMove);\n this.sliderElement.removeEventListener(\"pointerup\", this.handlePointerUp);\n this.sliderElement.removeEventListener(\"pointercancel\", this.handlePointerCancel);\n }\n\n private handlePointerDown = (e: PointerEvent) => {\n // Only handle primary pointer (first touch/mouse)\n if (!e.isPrimary) return;\n\n this.sliderElement?.setPointerCapture(e.pointerId);\n\n this.startSwipe(e.clientX, e.clientY);\n e.preventDefault();\n };\n\n private handlePointerMove = (e: PointerEvent) => {\n if (!this.isSwiping || !e.isPrimary) return;\n e.preventDefault();\n };\n\n private handlePointerUp = (e: PointerEvent) => {\n if (!this.isSwiping || !e.isPrimary) return;\n\n this.sliderElement?.releasePointerCapture(e.pointerId);\n\n this.endSwipe(e.clientX, e.clientY);\n };\n\n private handlePointerCancel = (e: PointerEvent) => {\n if (!this.isSwiping || !e.isPrimary) return;\n\n this.sliderElement?.releasePointerCapture(e.pointerId);\n\n this.isSwiping = false;\n };\n\n private startSwipe(x: number, y: number) {\n this.startPoint = { x, y };\n this.isSwiping = true;\n }\n\n componentDidRender() {\n this.removeEventListeners()\n this.addEventListeners();\n }\n\n private endSwipe(x: number, y: number) {\n this.isSwiping = false;\n const dx = x - this.startPoint.x;\n const dy = y - this.startPoint.y;\n this.processSwipe(dx, dy);\n }\n\n private processSwipe(dx: number, dy: number) {\n const MIN_SWIPE_DISTANCE = 10;\n\n if (Math.abs(dx) < MIN_SWIPE_DISTANCE || Math.abs(dy) > Math.abs(dx)) return;\n\n const isLeftSwipe = dx < 0;\n const shouldGoNext = this.isRTL ? !isLeftSwipe : isLeftSwipe;\n\n if (shouldGoNext) {\n this.goToNextSlide();\n } else {\n this.goToPrevSlide();\n }\n }\n\n private goToNextSlide() {\n if (this.currentSlide < this.images.length - 1) {\n this.currentSlide++;\n }\n }\n\n private goToPrevSlide() {\n if (this.currentSlide > 0) {\n this.currentSlide--;\n }\n }\n\n private goToSlide = (index: number) => {\n this.currentSlide = Math.max(0, Math.min(index, this.images.length - 1));\n };\n\n private renderStars() {\n return Array(5)\n .fill(null)\n .map((_, index) => <span key={index} innerHTML={this.review.stars >= index + 1 ? IconStar2 : IconStar2Muted} />);\n }\n\n private renderDots() {\n return this.images.map(({ url }, index) => (\n <button\n key={url || index}\n type=\"button\"\n class={`s-review-card-slider-dot ${this.currentSlide === index ? \"active\" : \"\"}`}\n onClick={() => this.goToSlide(index)}\n aria-label={`Go to slide ${index + 1}`}\n onPointerDown={() => this.goToSlide(index)}\n />\n ));\n }\n\n private renderSlider() {\n if (!this.hasMultipleImages) return null;\n\n return (\n <div class=\"s-review-card-slider-container\">\n <div class=\"s-review-card-slides\" style={{ transform: this.slideTransform }}>\n {this.images.map((image) => (\n <div key={image?.id} class=\"s-review-card-slider-slide\">\n <img\n src={image.url}\n alt={image.alt || \"Product image\"}\n width={275}\n height={275}\n loading=\"lazy\"\n draggable={false}\n />\n </div>\n ))}\n </div>\n <div class=\"s-review-card-slider-dots\">{this.renderDots()}</div>\n </div>\n );\n }\n\n private renderSingleImage() {\n const image = this.review?.product?.image;\n if (!image || this.hasMultipleImages) return null;\n\n return (\n <img\n src={image.url}\n alt={image.alt || \"Product image\"}\n class=\"s-review-card-image\"\n width={275}\n height={275}\n loading=\"lazy\"\n decoding=\"async\"\n draggable={false}\n />\n\n );\n }\n\n private renderHeader() {\n return (\n <div class=\"s-review-card-header\">\n <div class=\"s-review-card-reviewer-name\">\n <p>{this.review?.name}</p>\n {this.review?.has_order && <span class=\"s-review-card-verified-icon\" innerHTML={IconVerified} />}\n </div>\n <div class=\"s-review-card-stars\">{this.renderStars()}</div>\n </div>\n );\n }\n\n private renderProductInfo() {\n const product = this.review?.product;\n if (!product) return null;\n\n return (\n <a href={this.review?.product?.url} class=\"s-review-card-product-container\">\n <img\n alt={product.image?.alt || \"Product\"}\n src={product.image?.url}\n class=\"s-review-card-product-image\"\n width={60}\n height={60}\n loading=\"lazy\"\n decoding=\"async\"\n draggable={false}\n />\n <div class=\"s-review-card-product-details\">\n <p class=\"s-review-card-product-details-name\">{product.name}</p>\n {this.showPurchaseCount ? <p class=\"s-review-card-product-details-purchase-count\">\n <span innerHTML={IconFire2} />\n {this.purchasedCount}\n </p> : null}\n </div>\n </a>\n );\n }\n\n render() {\n return <div class=\"s-review-card-container\">\n {this.renderSlider()}\n {this.renderSingleImage()}\n {renderDivider()}\n <div class=\"s-review-card-content\">\n {this.renderHeader()}\n <p\n class=\"s-review-card-review-content\"\n innerHTML={this.review?.content}\n />\n {renderDivider()}\n {this.renderProductInfo()}\n </div>\n </div>\n }\n}\n\nconst renderDivider = (className?: string) => (\n <div class={`s-review-card-divider ${className || \"\"}`} />\n)"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-D84bigTt.system.js","sources":["src/components/salla-payments/salla-payments.scss?tag=salla-payments","src/components/salla-payments/salla-payments.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Host, Prop, h, Element } from '@stencil/core';\n/**\n * @slot payment - Replaces payment item, has replaceable props `{image}`, `{payment}`.\n * @slot sbc - Replaces SBC certificate item, has replaceable props `{image}`.\n * @slot cod - Replaces COD item, has replaceable props `{image}`.\n */\n@Component({\n tag: 'salla-payments',\n styleUrl: 'salla-payments.scss'\n})\n\nexport class SallaPayments {\n @Element() host: HTMLElement;\n private paymentSlot: string;\n private sbcSlot: string;\n private codSlot: string;\n private payments: string[];\n private placeholderImage: string;\n /**\n * Array of the payments/items that are not supported, ex: [\"sbc\", \"made-in-ksa\", \"cod\", \"mada\", \"\"].\n */\n @Prop({ mutable: true }) exclude: string[] = [];\n\n componentWillLoad() {\n return salla.onReady()\n .then(() => {\n if (typeof this.exclude === 'string') {\n try {\n this.exclude = JSON.parse(this.exclude);\n } catch (error) {\n salla.logger.error('salla-payments:: failed to parse the exclude props!', this.exclude);\n this.exclude = [];\n }\n }\n this.placeholderImage = salla.url.cdn(`images/s-empty.png`);\n this.paymentSlot = this.host.querySelector('[slot=\"payment\"]')?.innerHTML || `<li class=\"s-payments-list-item\"><img class=\"lazy\" width=\"100%\" height=\"100%\" src=\"${this.placeholderImage}\" data-src=\"{image}\" alt={payment} /><li>`;\n this.sbcSlot = this.host.querySelector('[slot=\"sbc\"]')?.innerHTML || `<li class=\"s-payments-list-item\"><a target=\"_blank\" href=\"{link}\"> <img width=\"100%\" height=\"100%\" src=\"${this.placeholderImage}\" data-src={image} class=\"lazy s-payments-sbc-image\" alt=\"SBC\"/></a><li>`;\n this.codSlot = this.host.querySelector('[slot=\"cod\"]')?.innerHTML || `<li class=\"s-payments-list-item\"> <img width=\"100%\" height=\"100%\" src=\"${this.placeholderImage}\" data-src={image} class=\"lazy\" alt=\"COD\"/><li>`;\n this.payments = salla.config.get('store.settings.payments');\n })\n }\n \n render() {\n const madeInKSA = !this.exclude.includes('made-in-ksa') && salla.config.get('store.settings.made_in_ksa');\n const sbcId = this.exclude.includes('sbc') ? null : salla.config.get('store.settings.certificate.id');\n return (\n <Host class=\"s-payments-list-wrap\">\n { }\n <ul class=\"s-payments-list\">\n {madeInKSA && <li class=\"s-payments-list-item\">\n <img class=\"lazy\" width=\"100%\" height=\"100%\" decoding=\"async\" loading=\"lazy\" data-src={salla.url.cdn(`images/made-in-ksa.svg`, 58, 58)} alt=\"made in KSA certified\" />\n </li>}\n\n {/* Dynamic methods */}\n {this.payments.map((payment) => (\n payment == \"cod\" ?\n <div id=\"cod-slot\" innerHTML={this.codSlot\n .replace(/\\{image\\}/g, salla.url.cdn(`images/payment/cod_mini.png`, 58, 58))}>\n </div> :\n <div id=\"payment-slot\" innerHTML={this.paymentSlot\n .replace(/\\{image\\}/g, salla.url.cdn(`images/payment/${payment}_mini.png`, 58, 58))\n .replace(/\\{payment\\}/g, payment)}>\n </div>\n ))}\n\n {/* SBC certificate */}\n {sbcId && <div id=\"sbc-slot\" innerHTML={this.sbcSlot\n .replace(/\\{image\\}/g, salla.url.cdn(`images/sbc.png`, 58, 58))\n .replace(/\\{link\\}/g, `https://eauthenticate.saudibusiness.gov.sa/certificate-details/${sbcId}`)}>\n </div>}\n </ul>\n </Host>\n );\n }\n componentDidLoad() {\n //todo:: double check about the following workaround, it looks not normal\n document.lazyLoadInstance?.update(this.host.querySelectorAll('.lazy'));\n // fix lazy loaded images that have 100% width and height\n this.host.querySelectorAll('.lazy').forEach((img) => {\n img.addEventListener('load', () => {\n img.setAttribute('width', \"100%\");\n img.setAttribute('height', \"100%\");\n });\n });\n }\n componentDidRender() {\n //todo:: double check about the following workaround to reduce the dom length, it looks unusal\n this.host.querySelectorAll('#payment-slot').forEach(el => el.replaceWith(el.firstChild));\n this.host.querySelectorAll('#sbc-slot').forEach(el => el.replaceWith(el.firstChild));\n this.host.querySelectorAll('#cod-slot').forEach(el => el.replaceWith(el.firstChild));\n this.host.querySelector('[slot=\"payment\"]')?.remove();\n this.host.querySelector('[slot=\"sbc\"]')?.remove();\n this.host.querySelector('[slot=\"cod\"]')?.remove();\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-BdGsc5dG.system.js","sources":["src/components/salla-payments/salla-payments.scss?tag=salla-payments","src/components/salla-payments/salla-payments.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Host, Prop, h, Element } from '@stencil/core';\n/**\n * @slot payment - Replaces payment item, has replaceable props `{image}`, `{payment}`.\n * @slot sbc - Replaces SBC certificate item, has replaceable props `{image}`.\n * @slot cod - Replaces COD item, has replaceable props `{image}`.\n */\n@Component({\n tag: 'salla-payments',\n styleUrl: 'salla-payments.scss'\n})\n\nexport class SallaPayments {\n @Element() host: HTMLElement;\n private paymentSlot: string;\n private sbcSlot: string;\n private codSlot: string;\n private payments: string[];\n private placeholderImage: string;\n /**\n * Array of the payments/items that are not supported, ex: [\"sbc\", \"made-in-ksa\", \"cod\", \"mada\", \"\"].\n */\n @Prop({ mutable: true }) exclude: string[] = [];\n\n componentWillLoad() {\n return salla.onReady()\n .then(() => {\n if (typeof this.exclude === 'string') {\n try {\n this.exclude = JSON.parse(this.exclude);\n } catch (error) {\n salla.logger.error('salla-payments:: failed to parse the exclude props!', this.exclude);\n this.exclude = [];\n }\n }\n this.placeholderImage = salla.url.cdn(`images/s-empty.png`);\n this.paymentSlot = this.host.querySelector('[slot=\"payment\"]')?.innerHTML || `<li class=\"s-payments-list-item\"><img class=\"lazy\" width=\"100%\" height=\"100%\" src=\"${this.placeholderImage}\" data-src=\"{image}\" alt={payment} /><li>`;\n this.sbcSlot = this.host.querySelector('[slot=\"sbc\"]')?.innerHTML || `<li class=\"s-payments-list-item\"><a target=\"_blank\" href=\"{link}\"> <img width=\"100%\" height=\"100%\" src=\"${this.placeholderImage}\" data-src={image} class=\"lazy s-payments-sbc-image\" alt=\"SBC\"/></a><li>`;\n this.codSlot = this.host.querySelector('[slot=\"cod\"]')?.innerHTML || `<li class=\"s-payments-list-item\"> <img width=\"100%\" height=\"100%\" src=\"${this.placeholderImage}\" data-src={image} class=\"lazy\" alt=\"COD\"/><li>`;\n this.payments = salla.config.get('store.settings.payments');\n })\n }\n \n render() {\n const madeInKSA = !this.exclude.includes('made-in-ksa') && salla.config.get('store.settings.made_in_ksa');\n const sbcId = this.exclude.includes('sbc') ? null : salla.config.get('store.settings.certificate.id');\n return (\n <Host class=\"s-payments-list-wrap\">\n { }\n <ul class=\"s-payments-list\">\n {madeInKSA && <li class=\"s-payments-list-item\">\n <img class=\"lazy\" width=\"100%\" height=\"100%\" decoding=\"async\" loading=\"lazy\" data-src={salla.url.cdn(`images/made-in-ksa.svg`, 58, 58)} alt=\"made in KSA certified\" />\n </li>}\n\n {/* Dynamic methods */}\n {this.payments.map((payment) => (\n payment == \"cod\" ?\n <div id=\"cod-slot\" innerHTML={this.codSlot\n .replace(/\\{image\\}/g, salla.url.cdn(`images/payment/cod_mini.png`, 58, 58))}>\n </div> :\n <div id=\"payment-slot\" innerHTML={this.paymentSlot\n .replace(/\\{image\\}/g, salla.url.cdn(`images/payment/${payment}_mini.png`, 58, 58))\n .replace(/\\{payment\\}/g, payment)}>\n </div>\n ))}\n\n {/* SBC certificate */}\n {sbcId && <div id=\"sbc-slot\" innerHTML={this.sbcSlot\n .replace(/\\{image\\}/g, salla.url.cdn(`images/sbc.png`, 58, 58))\n .replace(/\\{link\\}/g, `https://eauthenticate.saudibusiness.gov.sa/certificate-details/${sbcId}`)}>\n </div>}\n </ul>\n </Host>\n );\n }\n componentDidLoad() {\n //todo:: double check about the following workaround, it looks not normal\n document.lazyLoadInstance?.update(this.host.querySelectorAll('.lazy'));\n // fix lazy loaded images that have 100% width and height\n this.host.querySelectorAll('.lazy').forEach((img) => {\n img.addEventListener('load', () => {\n img.setAttribute('width', \"100%\");\n img.setAttribute('height', \"100%\");\n });\n });\n }\n componentDidRender() {\n //todo:: double check about the following workaround to reduce the dom length, it looks unusal\n this.host.querySelectorAll('#payment-slot').forEach(el => el.replaceWith(el.firstChild));\n this.host.querySelectorAll('#sbc-slot').forEach(el => el.replaceWith(el.firstChild));\n this.host.querySelectorAll('#cod-slot').forEach(el => el.replaceWith(el.firstChild));\n this.host.querySelector('[slot=\"payment\"]')?.remove();\n this.host.querySelector('[slot=\"sbc\"]')?.remove();\n this.host.querySelector('[slot=\"cod\"]')?.remove();\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-BQSsG6hs.system.js","sources":["src/components/salla-price-range/salla-price-range.scss?tag=salla-price-range","src/components/salla-price-range/salla-price-range.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n\n.rtl, [dir=\"rtl\"] {\n .rtl-range-slider {\n transform: rotateY(180deg);\n }\n\n .rtl-range-numbers{\n flex-direction: row-reverse;\n }\n\n .form-select, select{\n background-position: left 0.5rem center;\n padding-right: 12px;\n } \n\n // divide\n.menu-divide {\n li {\n &:not(:last-child) {\n &:after {\n left: 0;\n right: auto;\n }\n }\n }\n}\n}\n\ninput[type=range]::-webkit-slider-thumb {\n pointer-events: all;\n width: 24px;\n height: 24px;\n -webkit-appearance: none;\n}\n\n[type='checkbox']:checked{\n background-size: 80%;\n}","import { Component, Host, h, State, Prop, Event, Method } from '@stencil/core';\nimport { Filter, FilterValue } from \"../salla-filters/interfaces\";\nimport arrowLeft from '../../assets/svg/arrow-left.svg'\nimport arrowRight from '../../assets/svg/arrow-right.svg'\n\n\n@Component({\n tag: 'salla-price-range',\n styleUrl: 'salla-price-range.scss',\n})\nexport class SallaPriceRange {\n /**\n * Minimum price threshold value\n */\n @Prop({ mutable: true }) minPrice;\n\n /**\n * Maximum price threshold value\n */\n @Prop({ mutable: true }) maxPrice;\n\n /**\n * Product price range filter option object instance\n */\n @Prop({ reflect: true }) option: Filter;\n\n /**\n * Currently selected price filter data\n */\n @Prop({ reflect: true }) filtersData: any;\n\n\n @State() min = 0;\n @State() max = 10000;\n @State() priceOptions: any;\n @State() moreThanLabel: string = \"أكثر من\";\n @State() lessThanLabel: string = \"أقل من\";\n @State() toLabel: string = \"الى\";\n @State() fromLabel: string = \"من\";\n @State() typing: boolean = false;\n @State() isMin: boolean = false;\n @State() isRTL: Boolean = salla.config.get('theme.is_rtl', true);\n\n\n /**\n * Custome event emitted when there is a change in price input.\n */\n @Event() changed: any;\n\n isReady: Boolean;\n minInput: HTMLInputElement;\n maxInput: HTMLInputElement;\n filterValues: Array<FilterValue> = [];\n\n\n connectedCallback() {\n if (this.filtersData && this.filtersData?.price) {\n this.minPrice = this.filtersData.price.min;\n this.maxPrice = this.filtersData.price.max;\n }\n salla.lang.onLoaded(() => {\n this.moreThanLabel = salla.lang.getWithDefault('common.elements.more_than', this.moreThanLabel)\n this.lessThanLabel = salla.lang.getWithDefault('common.elements.less_than', this.lessThanLabel)\n this.toLabel = salla.lang.getWithDefault('common.elements.to', this.toLabel)\n this.fromLabel = salla.lang.getWithDefault('common.elements.from', this.fromLabel)\n })\n\n //no need to show one option only\n if (this.option.values.length == 1) {\n return;\n }\n //here we may receive too many prices, we will group all inputs to\n if (this.option.values.length <= 5) {\n this.filterValues = this.option.values;\n return;\n }\n const chunkSize = Math.ceil(this.option.values.length / 5);\n for (let i = 0; i < this.option.values.length; i += chunkSize) {\n this.filterValues.push(\n this.option.values\n .slice(i, i + chunkSize)\n .reduce((final: FilterValue, currentValue: FilterValue) => {\n final.to = currentValue.to;\n final.count += currentValue.count;\n return final;\n })\n );\n // do whatever\n }\n }\n\n /**\n * reset the price range inputs\n */\n @Method()\n async reset() {\n //@ts-ignore\n this.minInput.value = null;\n this.maxInput.value = null;\n this.minPrice=null\n this.maxPrice=null\n }\n\n private getPriceLabel(filterValue: FilterValue) {\n // @ts-ignore\n if (isNaN(filterValue.from) || filterValue.from < 1) {\n return `${this.lessThanLabel} ${salla.money(filterValue.to)}`;\n }\n // @ts-ignore\n if (isNaN(filterValue.to) || filterValue.to < 1) {\n return `${this.moreThanLabel} ${salla.money(filterValue.from)}`;\n }\n\n return `${salla.money(filterValue.from)} ${this.toLabel} ${salla.money(filterValue.to)}`;\n }\n\n minInputValidation(value: number) {\n if (value && (value > this.max || (this.maxPrice && value > this.maxPrice))) {\n // this.minPrice = this.maxPrice;\n return;\n }\n\n if (value < this.min) {\n this.minPrice = this.min;\n return;\n }\n\n if (value) {\n this.minPrice = value;\n }\n }\n\n maxInputValidation(value) {\n if (value && (value < this.min || (this.minPrice && value < this.minPrice))) {\n // this.maxPrice = this.minPrice;\n return;\n }\n if (value > this.max) {\n this.maxPrice = this.max;\n return;\n }\n }\n\n private async changedEventHandler(event) {\n salla.helpers.inputDigitsOnly(this.minInput)\n salla.helpers.inputDigitsOnly(this.maxInput)\n\n const minInputValue = this.minPrice ? +this.minPrice * 1 : null\n const maxInputValue = this.maxPrice ? +this.maxPrice * 1 : null\n \n if (!this.maxPrice) {\n this.maxPrice = '';\n }\n if (this.isMin) {\n this.minInputValidation(minInputValue);\n } else {\n if (!this.minPrice) {\n this.minPrice = 0;\n }\n this.maxInputValidation(maxInputValue)\n }\n\n this.isReady && this.changed.emit({\n event: event,\n option: this.option,\n value: { max: this.maxPrice, min: this.minPrice }\n })\n }\n private handleMinMaxPrice(event: Event, value: FilterValue): void {\n //todo:: cover when from is star\n this.minPrice = value.from;\n this.maxPrice = value.to !== '*' ? value.to : \"\";\n\n this.changedEventHandler(event);\n }\n\n\n\n private isChecked(filterValue: FilterValue) {\n if (!this.minPrice && !this.maxPrice) {\n return false;\n }\n\n //1 filterValue.from zero or * and this.minPrice not set or zero\n //2 filterValue.from == this.minPrice\n //@ts-ignore\n let isMinEqual = ((filterValue.from < 1 || filterValue.from == '*') && this.minPrice == 0) || filterValue.from == this.minPrice;\n\n //1 filterValue.to == \"*\" or null\n //2 filterValue.to == this.max\n let isMaxEqual = filterValue.to == '*' || !filterValue.to || filterValue.to == this.maxPrice;\n return isMinEqual && isMaxEqual;\n }\n\n private handleMinPrice(event: Event) {\n this.isMin = true\n const value = (event.target as HTMLInputElement).value\n this.minPrice = value ==='' ? 0 : value\n }\n private handleMaxPrice(event: Event) {\n this.isMin = false\n const value = (event.target as HTMLInputElement).value\n this.maxPrice = value === undefined ? '' : value\n }\n\n\n render() {\n return (\n <Host>\n {\n this.filterValues.map((filterValue, index) => {\n\n return <label class=\"s-filters-label\" htmlFor={`${this.option.key}-${index}`} key={index}>\n <input\n id={`${this.option.key}-${index}`}\n name=\"price\"\n type=\"radio\"\n checked={this.isChecked(filterValue)}\n class=\"s-filters-radio\"\n onChange={e => this.handleMinMaxPrice(e, filterValue)}\n />\n <span innerHTML={this.getPriceLabel(filterValue)}></span>\n </label>\n })\n }\n\n\n <div class=\"flex justify-center items-center\">\n <div class=\"relative max-w-xl w-full\">\n <div class=\"s-price-range-inputs\">\n <div class=\"s-price-range-relative\">\n <div class=\"s-price-range-currency\"> {salla.config.currency().symbol}</div>\n <input\n type=\"number\"\n maxlength=\"5\"\n ref={el => this.minInput = el}\n onBlur={(e) => this.handleMinPrice(e)}\n value={this.minPrice}\n placeholder={this.fromLabel}\n class=\"s-price-range-number-input\"\n\n />\n </div>\n\n <div class=\"s-price-range-gray-text\"> -</div>\n <div class=\"s-price-range-relative\">\n <div class=\"s-price-range-currency\"> {salla.config.currency().symbol}</div>\n <input\n type=\"number\"\n maxlength=\"5\"\n ref={el => this.maxInput = el}\n onBlur={(e) => this.handleMaxPrice(e)}\n value={this.maxPrice}\n placeholder={this.toLabel}\n class=\"s-price-range-number-input\" aria-describedby=\"price-currency\" />\n </div>\n <salla-button color='gray' shape='icon' size='small' fill='outline' onClick={(event) => this.changedEventHandler(event)}>\n <span innerHTML={this.isRTL ? arrowLeft : arrowRight} />\n </salla-button>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n\n componentDidLoad() {\n this.isReady = true;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-BtWV4qr8.system.js","sources":["src/components/salla-price-range/salla-price-range.scss?tag=salla-price-range","src/components/salla-price-range/salla-price-range.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n\n.rtl, [dir=\"rtl\"] {\n .rtl-range-slider {\n transform: rotateY(180deg);\n }\n\n .rtl-range-numbers{\n flex-direction: row-reverse;\n }\n\n .form-select, select{\n background-position: left 0.5rem center;\n padding-right: 12px;\n } \n\n // divide\n.menu-divide {\n li {\n &:not(:last-child) {\n &:after {\n left: 0;\n right: auto;\n }\n }\n }\n}\n}\n\ninput[type=range]::-webkit-slider-thumb {\n pointer-events: all;\n width: 24px;\n height: 24px;\n -webkit-appearance: none;\n}\n\n[type='checkbox']:checked{\n background-size: 80%;\n}","import { Component, Host, h, State, Prop, Event, Method } from '@stencil/core';\nimport { Filter, FilterValue } from \"../salla-filters/interfaces\";\nimport arrowLeft from '../../assets/svg/arrow-left.svg'\nimport arrowRight from '../../assets/svg/arrow-right.svg'\n\n\n@Component({\n tag: 'salla-price-range',\n styleUrl: 'salla-price-range.scss',\n})\nexport class SallaPriceRange {\n /**\n * Minimum price threshold value\n */\n @Prop({ mutable: true }) minPrice;\n\n /**\n * Maximum price threshold value\n */\n @Prop({ mutable: true }) maxPrice;\n\n /**\n * Product price range filter option object instance\n */\n @Prop({ reflect: true }) option: Filter;\n\n /**\n * Currently selected price filter data\n */\n @Prop({ reflect: true }) filtersData: any;\n\n\n @State() min = 0;\n @State() max = 10000;\n @State() priceOptions: any;\n @State() moreThanLabel: string = \"أكثر من\";\n @State() lessThanLabel: string = \"أقل من\";\n @State() toLabel: string = \"الى\";\n @State() fromLabel: string = \"من\";\n @State() typing: boolean = false;\n @State() isMin: boolean = false;\n @State() isRTL: Boolean = salla.config.get('theme.is_rtl', true);\n\n\n /**\n * Custome event emitted when there is a change in price input.\n */\n @Event() changed: any;\n\n isReady: Boolean;\n minInput: HTMLInputElement;\n maxInput: HTMLInputElement;\n filterValues: Array<FilterValue> = [];\n\n\n connectedCallback() {\n if (this.filtersData && this.filtersData?.price) {\n this.minPrice = this.filtersData.price.min;\n this.maxPrice = this.filtersData.price.max;\n }\n salla.lang.onLoaded(() => {\n this.moreThanLabel = salla.lang.getWithDefault('common.elements.more_than', this.moreThanLabel)\n this.lessThanLabel = salla.lang.getWithDefault('common.elements.less_than', this.lessThanLabel)\n this.toLabel = salla.lang.getWithDefault('common.elements.to', this.toLabel)\n this.fromLabel = salla.lang.getWithDefault('common.elements.from', this.fromLabel)\n })\n\n //no need to show one option only\n if (this.option.values.length == 1) {\n return;\n }\n //here we may receive too many prices, we will group all inputs to\n if (this.option.values.length <= 5) {\n this.filterValues = this.option.values;\n return;\n }\n const chunkSize = Math.ceil(this.option.values.length / 5);\n for (let i = 0; i < this.option.values.length; i += chunkSize) {\n this.filterValues.push(\n this.option.values\n .slice(i, i + chunkSize)\n .reduce((final: FilterValue, currentValue: FilterValue) => {\n final.to = currentValue.to;\n final.count += currentValue.count;\n return final;\n })\n );\n // do whatever\n }\n }\n\n /**\n * reset the price range inputs\n */\n @Method()\n async reset() {\n //@ts-ignore\n this.minInput.value = null;\n this.maxInput.value = null;\n this.minPrice=null\n this.maxPrice=null\n }\n\n private getPriceLabel(filterValue: FilterValue) {\n // @ts-ignore\n if (isNaN(filterValue.from) || filterValue.from < 1) {\n return `${this.lessThanLabel} ${salla.money(filterValue.to)}`;\n }\n // @ts-ignore\n if (isNaN(filterValue.to) || filterValue.to < 1) {\n return `${this.moreThanLabel} ${salla.money(filterValue.from)}`;\n }\n\n return `${salla.money(filterValue.from)} ${this.toLabel} ${salla.money(filterValue.to)}`;\n }\n\n minInputValidation(value: number) {\n if (value && (value > this.max || (this.maxPrice && value > this.maxPrice))) {\n // this.minPrice = this.maxPrice;\n return;\n }\n\n if (value < this.min) {\n this.minPrice = this.min;\n return;\n }\n\n if (value) {\n this.minPrice = value;\n }\n }\n\n maxInputValidation(value) {\n if (value && (value < this.min || (this.minPrice && value < this.minPrice))) {\n // this.maxPrice = this.minPrice;\n return;\n }\n if (value > this.max) {\n this.maxPrice = this.max;\n return;\n }\n }\n\n private async changedEventHandler(event) {\n salla.helpers.inputDigitsOnly(this.minInput)\n salla.helpers.inputDigitsOnly(this.maxInput)\n\n const minInputValue = this.minPrice ? +this.minPrice * 1 : null\n const maxInputValue = this.maxPrice ? +this.maxPrice * 1 : null\n \n if (!this.maxPrice) {\n this.maxPrice = '';\n }\n if (this.isMin) {\n this.minInputValidation(minInputValue);\n } else {\n if (!this.minPrice) {\n this.minPrice = 0;\n }\n this.maxInputValidation(maxInputValue)\n }\n\n this.isReady && this.changed.emit({\n event: event,\n option: this.option,\n value: { max: this.maxPrice, min: this.minPrice }\n })\n }\n private handleMinMaxPrice(event: Event, value: FilterValue): void {\n //todo:: cover when from is star\n this.minPrice = value.from;\n this.maxPrice = value.to !== '*' ? value.to : \"\";\n\n this.changedEventHandler(event);\n }\n\n\n\n private isChecked(filterValue: FilterValue) {\n if (!this.minPrice && !this.maxPrice) {\n return false;\n }\n\n //1 filterValue.from zero or * and this.minPrice not set or zero\n //2 filterValue.from == this.minPrice\n //@ts-ignore\n let isMinEqual = ((filterValue.from < 1 || filterValue.from == '*') && this.minPrice == 0) || filterValue.from == this.minPrice;\n\n //1 filterValue.to == \"*\" or null\n //2 filterValue.to == this.max\n let isMaxEqual = filterValue.to == '*' || !filterValue.to || filterValue.to == this.maxPrice;\n return isMinEqual && isMaxEqual;\n }\n\n private handleMinPrice(event: Event) {\n this.isMin = true\n const value = (event.target as HTMLInputElement).value\n this.minPrice = value ==='' ? 0 : value\n }\n private handleMaxPrice(event: Event) {\n this.isMin = false\n const value = (event.target as HTMLInputElement).value\n this.maxPrice = value === undefined ? '' : value\n }\n\n\n render() {\n return (\n <Host>\n {\n this.filterValues.map((filterValue, index) => {\n\n return <label class=\"s-filters-label\" htmlFor={`${this.option.key}-${index}`} key={index}>\n <input\n id={`${this.option.key}-${index}`}\n name=\"price\"\n type=\"radio\"\n checked={this.isChecked(filterValue)}\n class=\"s-filters-radio\"\n onChange={e => this.handleMinMaxPrice(e, filterValue)}\n />\n <span innerHTML={this.getPriceLabel(filterValue)}></span>\n </label>\n })\n }\n\n\n <div class=\"flex justify-center items-center\">\n <div class=\"relative max-w-xl w-full\">\n <div class=\"s-price-range-inputs\">\n <div class=\"s-price-range-relative\">\n <div class=\"s-price-range-currency\"> {salla.config.currency().symbol}</div>\n <input\n type=\"number\"\n maxlength=\"5\"\n ref={el => this.minInput = el}\n onBlur={(e) => this.handleMinPrice(e)}\n value={this.minPrice}\n placeholder={this.fromLabel}\n class=\"s-price-range-number-input\"\n\n />\n </div>\n\n <div class=\"s-price-range-gray-text\"> -</div>\n <div class=\"s-price-range-relative\">\n <div class=\"s-price-range-currency\"> {salla.config.currency().symbol}</div>\n <input\n type=\"number\"\n maxlength=\"5\"\n ref={el => this.maxInput = el}\n onBlur={(e) => this.handleMaxPrice(e)}\n value={this.maxPrice}\n placeholder={this.toLabel}\n class=\"s-price-range-number-input\" aria-describedby=\"price-currency\" />\n </div>\n <salla-button color='gray' shape='icon' size='small' fill='outline' onClick={(event) => this.changedEventHandler(event)}>\n <span innerHTML={this.isRTL ? arrowLeft : arrowRight} />\n </salla-button>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n\n componentDidLoad() {\n this.isReady = true;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-BpWtz-o-.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
+ {"version":3,"file":"p-BwVf7CY-.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 +1,5 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{L as e}from"./p-Bc7QG0Bw.js";function t(){if(!document.lazyLoadInstance){document.lazyLoadInstance=new e({use_native:true});document.lazyLoadBackgrounds=new e({elements_selector:".lazy[data-bg]:not(.loaded)"})}if(document.readyState!=="complete"){document.addEventListener("DOMContentLoaded",(()=>document.lazyLoadInstance.update()));document.addEventListener("DOMContentLoaded",(()=>document.lazyLoadBackgrounds.update()))}salla.infiniteScroll.event.onAppend((()=>{document.lazyLoadInstance.update();document.lazyLoadBackgrounds.update()}))}const o=t;export{o as g};
5
- //# sourceMappingURL=p-DnKKfIGu.js.map
4
+ import{L as e}from"./p-DtSa9t5u.js";function t(){if(!document.lazyLoadInstance){document.lazyLoadInstance=new e({use_native:true});document.lazyLoadBackgrounds=new e({elements_selector:".lazy[data-bg]:not(.loaded)"})}if(document.readyState!=="complete"){document.addEventListener("DOMContentLoaded",(()=>document.lazyLoadInstance.update()));document.addEventListener("DOMContentLoaded",(()=>document.lazyLoadBackgrounds.update()))}salla.infiniteScroll.event.onAppend((()=>{document.lazyLoadInstance.update();document.lazyLoadBackgrounds.update()}))}const o=t;export{o as g};
5
+ //# sourceMappingURL=p-Bycrl6RW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"p-DnKKfIGu.js","sources":["src/global/app.ts","@stencil/core/internal/app-globals"],"sourcesContent":["import '@salla.sa/twilight'\nimport LazyLoad from \"vanilla-lazyload\";\n\nexport default function () {\n // Only initialize it one time for the entire application\n if (!document.lazyLoadInstance) {\n document.lazyLoadInstance = new LazyLoad({\n use_native: true,//native not support lazyLoad backgrounds\n // restore_on_error: true,\n // Your custom settings go here\n // callback_finish: () => document.lazyLoadBackgrounds.update(document.querySelectorAll('.lazy[data-bg]:not(.loaded)'))\n });\n document.lazyLoadBackgrounds = new LazyLoad({\n elements_selector: '.lazy[data-bg]:not(.loaded)',\n });\n //native way doesn't load backgrounds\n // document.lazyLoadBackgrounds = new LazyLoad();\n }\n //make sure that lazyLoad will be fired after loading the page too.\n if (document.readyState !== 'complete') {\n document.addEventListener(\"DOMContentLoaded\", () => document.lazyLoadInstance.update());\n document.addEventListener(\"DOMContentLoaded\", () => document.lazyLoadBackgrounds.update());\n }\n\n // fire it after each load more request;\n // @ts-ignore\n salla.infiniteScroll.event.onAppend(() => {\n document.lazyLoadInstance.update();\n document.lazyLoadBackgrounds.update();\n }\n );\n}\n","import appGlobalScript from '/home/runner/work/twilight/twilight/packages/twilight-components/src/global/app.ts';\nexport const globalScripts = appGlobalScript;\nexport const globalStyles = \"\";\n"],"names":[],"mappings":";;;;;AAGc,wBAAA,IAAA;;AAEZ,IAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;AAC9B,QAAA,QAAQ,CAAC,gBAAgB,GAAG,IAAI,QAAQ,CAAC;YACvC,UAAU,EAAE,IAAI;;;;AAIjB,SAAA,CAAC;AACF,QAAA,QAAQ,CAAC,mBAAmB,GAAG,IAAI,QAAQ,CAAC;AACxC,YAAA,iBAAiB,EAAE,6BAA6B;AACnD,SAAA,CAAC;;;;;AAKJ,IAAA,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;AACtC,QAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;AACvF,QAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;;;;IAK5F,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAK;AAC/B,QAAA,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE;AAClC,QAAA,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE;AACzC,KAAC,CACJ;AACL;;AC9BY,MAAC,aAAa,GAAG;;;;"}
1
+ {"version":3,"file":"p-Bycrl6RW.js","sources":["src/global/app.ts","@stencil/core/internal/app-globals"],"sourcesContent":["import '@salla.sa/twilight'\nimport LazyLoad from \"vanilla-lazyload\";\n\nexport default function () {\n // Only initialize it one time for the entire application\n if (!document.lazyLoadInstance) {\n document.lazyLoadInstance = new LazyLoad({\n use_native: true,//native not support lazyLoad backgrounds\n // restore_on_error: true,\n // Your custom settings go here\n // callback_finish: () => document.lazyLoadBackgrounds.update(document.querySelectorAll('.lazy[data-bg]:not(.loaded)'))\n });\n document.lazyLoadBackgrounds = new LazyLoad({\n elements_selector: '.lazy[data-bg]:not(.loaded)',\n });\n //native way doesn't load backgrounds\n // document.lazyLoadBackgrounds = new LazyLoad();\n }\n //make sure that lazyLoad will be fired after loading the page too.\n if (document.readyState !== 'complete') {\n document.addEventListener(\"DOMContentLoaded\", () => document.lazyLoadInstance.update());\n document.addEventListener(\"DOMContentLoaded\", () => document.lazyLoadBackgrounds.update());\n }\n\n // fire it after each load more request;\n // @ts-ignore\n salla.infiniteScroll.event.onAppend(() => {\n document.lazyLoadInstance.update();\n document.lazyLoadBackgrounds.update();\n }\n );\n}\n","import appGlobalScript from '/home/runner/work/twilight/twilight/packages/twilight-components/src/global/app.ts';\nexport const globalScripts = appGlobalScript;\nexport const globalStyles = \"\";\n"],"names":[],"mappings":";;;;;AAGc,wBAAA,IAAA;;AAEZ,IAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;AAC9B,QAAA,QAAQ,CAAC,gBAAgB,GAAG,IAAI,QAAQ,CAAC;YACvC,UAAU,EAAE,IAAI;;;;AAIjB,SAAA,CAAC;AACF,QAAA,QAAQ,CAAC,mBAAmB,GAAG,IAAI,QAAQ,CAAC;AACxC,YAAA,iBAAiB,EAAE,6BAA6B;AACnD,SAAA,CAAC;;;;;AAKJ,IAAA,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;AACtC,QAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;AACvF,QAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;;;;IAK5F,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAK;AAC/B,QAAA,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE;AAClC,QAAA,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE;AACzC,KAAC,CACJ;AACL;;AC9BY,MAAC,aAAa,GAAG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-BsAOFHfa.system.js","sources":["src/components/salla-accordion/salla-accordion-body.scss?tag=salla-accordion-body","src/components/salla-accordion/salla-accordion-body.tsx"],"sourcesContent":["\n","import { Component, Host, h } from '@stencil/core';\n\n/**\n * @salla/ui-components\n * The `salla-accordion-body` component represents the body/content of an accordion.\n */\n@Component({\n tag: 'salla-accordion-body',\n styleUrl: 'salla-accordion-body.scss',\n shadow: false\n})\nexport class SallaAccordionBody {\n render() {\n return (\n <Host class=\"s-accordion-body-wrapper\">\n <slot></slot>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;YAAA,MAAM,qBAAqB,GAAG,EAAE;;kBCWnB,kBAAkB,mCAAA,MAAA;;;;gBAC7B,MAAM,GAAA;oBACJ,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,0BAA0B,EAAA,EACpC,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACR;;;;;;;;;;;"}
1
+ {"version":3,"file":"p-C7ynTIue.system.js","sources":["src/components/salla-accordion/salla-accordion-body.scss?tag=salla-accordion-body","src/components/salla-accordion/salla-accordion-body.tsx"],"sourcesContent":["\n","import { Component, Host, h } from '@stencil/core';\n\n/**\n * @salla/ui-components\n * The `salla-accordion-body` component represents the body/content of an accordion.\n */\n@Component({\n tag: 'salla-accordion-body',\n styleUrl: 'salla-accordion-body.scss',\n shadow: false\n})\nexport class SallaAccordionBody {\n render() {\n return (\n <Host class=\"s-accordion-body-wrapper\">\n <slot></slot>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;YAAA,MAAM,qBAAqB,GAAG,EAAE;;kBCWnB,kBAAkB,mCAAA,MAAA;;;;gBAC7B,MAAM,GAAA;oBACJ,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,0BAA0B,EAAA,EACpC,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACR;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-PsIrDG0P.system.js","sources":["src/components/salla-metadata/salla-metadata.scss?tag=salla-metadata","src/components/salla-metadata/salla-metadata.tsx"],"sourcesContent":["","import { Component, Host, h, Element, Prop, State } from '@stencil/core';\nimport { Field, Specs } from './interfaces';\n\n@Component({\n tag: 'salla-metadata',\n styleUrl: 'salla-metadata.scss',\n})\nexport class SallaMetadata {\n constructor() {\n if (this.entityId) {\n try {\n this.entityId = Array.isArray(this.entityId)\n ? this.entityId\n : JSON.parse(this.entityId as string);\n return;\n } catch (e) {\n salla.log('Bad json passed via entityId prop');\n }\n }\n }\n\n @Element() host: HTMLElement;\n\n /**\n * The entity type.\n */\n @Prop() entity: string = 'product';\n\n /**\n * The id of the product/the endity to which the specs are going to be fetched for.\n */\n @Prop() entityId: number | number[] | string;\n\n @State() specs: Specs[] = [];\n @State() download: string = salla.lang.get('pages.thank_you.download');\n\n private getValue(field: Field) {\n if (field.type === 'file') {\n return `<a href=\"${field.value}\" class=\"text-primary\" target=\"_blank\"><span class=\"sicon-download\"></span> ${this.download}</a>`;\n }\n if (field.type === 'url') {\n return `<a href=\"${field.value}\" class=\"text-blue-700 underline\" target=\"_blank\">${field.value}</a>`; // classes will be moved to the utilities.json file\n }\n if (field.type === 'date') {\n const date = new Date(field.value);\n const day = String(date.getDate()).padStart(2, '0');\n const month = String(date.getMonth() + 1).padStart(2, '0'); // Months are 0-based\n const year = date.getFullYear();\n\n const formattedDate = `${day}/${month}/${year}`;\n\n return formattedDate;\n }\n return field.value;\n }\n\n async componentWillLoad() {\n await salla.onReady();\n\n if (!salla.config.get('store.features')?.includes('custom-fields')) {\n return salla.logger.error('feature custom-fields is not activated');\n }\n\n //todo:: remove `product.showNewUrls` after changing it from BE\n if (!this.entityId && (salla.url.is_page('product.single') || salla.url.is_page(\"product.showNewUrls\"))) {\n this.entityId = salla.config.get('page.id');\n }\n\n if (!this.entityId) {\n return salla.logger.error(\"can't render salla-metadata without enity-id prop!\");\n }\n\n await salla.lang.onLoaded();\n this.download = salla.lang.get('pages.thank_you.download');\n\n const response = await Salla.api.metadata.fetchValues(this.entity, this.entityId);\n this.specs = response.data[0]?.sections;\n }\n render() {\n if (!this.specs.length) {\n return;\n }\n return (\n <Host class=\"s-metadata-wrapper\">\n {this.specs.map((item: Specs) => {\n return (\n <div class=\"s-metadata-box\">\n <div class=\"s-metadata-box-header\">\n <i class=\"sicon-list\"></i>\n {item.name}\n </div>\n\n {item.fields.map((field: Field) => {\n return (\n <div class=\"s-metadata-row\">\n <p class=\"s-metadata-row-name\">{field.name}</p>\n <p class=\"s-metadata-row-value\" innerHTML={this.getValue(field) as any}></p>\n </div>\n );\n })}\n </div>\n );\n })}\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-CC3LDJcU.system.js","sources":["src/components/salla-metadata/salla-metadata.scss?tag=salla-metadata","src/components/salla-metadata/salla-metadata.tsx"],"sourcesContent":["","import { Component, Host, h, Element, Prop, State } from '@stencil/core';\nimport { Field, Specs } from './interfaces';\n\n@Component({\n tag: 'salla-metadata',\n styleUrl: 'salla-metadata.scss',\n})\nexport class SallaMetadata {\n constructor() {\n if (this.entityId) {\n try {\n this.entityId = Array.isArray(this.entityId)\n ? this.entityId\n : JSON.parse(this.entityId as string);\n return;\n } catch (e) {\n salla.log('Bad json passed via entityId prop');\n }\n }\n }\n\n @Element() host: HTMLElement;\n\n /**\n * The entity type.\n */\n @Prop() entity: string = 'product';\n\n /**\n * The id of the product/the endity to which the specs are going to be fetched for.\n */\n @Prop() entityId: number | number[] | string;\n\n @State() specs: Specs[] = [];\n @State() download: string = salla.lang.get('pages.thank_you.download');\n\n private getValue(field: Field) {\n if (field.type === 'file') {\n return `<a href=\"${field.value}\" class=\"text-primary\" target=\"_blank\"><span class=\"sicon-download\"></span> ${this.download}</a>`;\n }\n if (field.type === 'url') {\n return `<a href=\"${field.value}\" class=\"text-blue-700 underline\" target=\"_blank\">${field.value}</a>`; // classes will be moved to the utilities.json file\n }\n if (field.type === 'date') {\n const date = new Date(field.value);\n const day = String(date.getDate()).padStart(2, '0');\n const month = String(date.getMonth() + 1).padStart(2, '0'); // Months are 0-based\n const year = date.getFullYear();\n\n const formattedDate = `${day}/${month}/${year}`;\n\n return formattedDate;\n }\n return field.value;\n }\n\n async componentWillLoad() {\n await salla.onReady();\n\n if (!salla.config.get('store.features')?.includes('custom-fields')) {\n return salla.logger.error('feature custom-fields is not activated');\n }\n\n //todo:: remove `product.showNewUrls` after changing it from BE\n if (!this.entityId && (salla.url.is_page('product.single') || salla.url.is_page(\"product.showNewUrls\"))) {\n this.entityId = salla.config.get('page.id');\n }\n\n if (!this.entityId) {\n return salla.logger.error(\"can't render salla-metadata without enity-id prop!\");\n }\n\n await salla.lang.onLoaded();\n this.download = salla.lang.get('pages.thank_you.download');\n\n const response = await Salla.api.metadata.fetchValues(this.entity, this.entityId);\n this.specs = response.data[0]?.sections;\n }\n render() {\n if (!this.specs.length) {\n return;\n }\n return (\n <Host class=\"s-metadata-wrapper\">\n {this.specs.map((item: Specs) => {\n return (\n <div class=\"s-metadata-box\">\n <div class=\"s-metadata-box-header\">\n <i class=\"sicon-list\"></i>\n {item.name}\n </div>\n\n {item.fields.map((field: Field) => {\n return (\n <div class=\"s-metadata-row\">\n <p class=\"s-metadata-row-name\">{field.name}</p>\n <p class=\"s-metadata-row-value\" innerHTML={this.getValue(field) as any}></p>\n </div>\n );\n })}\n </div>\n );\n })}\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-D_aiDoJa.system.js","sources":["src/components/salla-advertisement/salla-advertisement.scss?tag=salla-advertisement","src/components/salla-advertisement/salla-advertisement.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, State, Element, h } from '@stencil/core';\nimport { Advertisement } from './interfaces';\nimport AnimeJS from 'animejs';\n/**\n * @name SallaAdvertisement\n * @description A StencilJS component for handling and displaying advertisements in different pages of salla applications.\n * @tag salla-advertisement\n */\n\n/**\n * @slot adv - Replaces the entire advertisement, has replaceable props `{icon}`, `{url}`, `{target}`, `{description}`, `{bg_color}`, `{text_color}`.\n * */\n@Component({\n tag: 'salla-advertisement',\n styleUrl: 'salla-advertisement.scss',\n})\nexport class SallaAdvertisement {\n /**\n * Constructor for initializing the component.\n */\n constructor() {\n salla.onReady(() => {\n this.currentSlug = salla.config.get(\"page.slug\");\n })\n\n this.advSlot = this.host.querySelector('[slot=\"adv\"]')?.innerHTML || `<div class=\"s-advertisement-content\"><h2 class=\"s-advertisement-content-main\">{iconElem}{urlElem}</h2>{closeElem}</div>\n `;\n }\n private readonly advSlot: string;\n // State properties for managing component state\n @State() position: string;\n @State() advertisements: Advertisement[];\n @State() advertIcon: string;\n @State() currentSlug: string = salla.config.get(\"page.slug\");\n\n @Element() private host: HTMLElement;\n\n\n /**\n * Checks whether an advertisement is marked as not visible/dismissed.\n * @param advert - The advertisement to check.\n * @returns True if the advertisement is not visible, false otherwise.\n */\n private isNotVisible(advert: Advertisement): boolean {\n return !!salla.storage.get(`statusAd-${advert.id}`)\n }\n\n /**\n * Sets a flag to control the visibility of an advertisement and triggers an animation when hiding it.\n * @param advert - The advertisement to update.\n * @param flag - The flag indicating whether to display or hide the advertisement.\n */\n private setCanDisplayFlag(advert: Advertisement, flag: boolean): void {\n if (!flag) {\n // Set the statusAd flag to 'dismissed'\n salla.storage.set(`statusAd-${advert.id}`, 'dismissed');\n // Trigger an animation to hide the advertisement\n AnimeJS({\n targets: this.host,\n opacity: [1, 0],\n duration: 300,\n height: [this.host.clientHeight, 0],\n easing: 'easeInOutQuad',\n });\n }\n }\n\n /**\n * Renders the advertisements based on the fetched data and visibility status.\n * @returns JSX for rendering advertisements.\n */\n render() {\n if ((Array.isArray(this.advertisements) && !this.advertisements.length) || !this.advertisements) {\n return;\n }\n return this.advertisements.map((advertisement: Advertisement) => {\n return <div class={{ \"s-hidden\": this.isNotVisible(advertisement), 's-advertisement': true }} data-id={advertisement.id}\n style={{ \"background-color\": advertisement.colors.bg, \"color\": advertisement.colors.text }}>\n <div id=\"adv-slot\" innerHTML={\n this.advSlot\n // Replace the props with the advertisement data\n // !Note: The props with the 'Elem' suffix are for internal use only.\n .replace(\"{iconElem}\", `<i class=\"s-advertisement-content-icon ${advertisement.icon}\"></i>`)\n .replace(\"{urlElem}\", advertisement.url ? `<a href=\"${advertisement.url}\" target=\"${advertisement.target}\">${advertisement.description}</a>` : advertisement.description)\n .replace(\"{closeElem}\", `<button class=\"s-advertisement-action\" aria-label=\"close-alert\"><i class=\"sicon-cancel\"></i></button>`)\n .replace('{icon}', advertisement.icon)\n .replace('{url}', advertisement.url)\n .replace('{target}', advertisement.target)\n .replace('{description}', advertisement.description)\n .replace('{bg_color}', advertisement.colors.bg)\n .replace('{text_color}', advertisement.colors.text)\n }></div>\n </div>\n }\n );\n }\n\n /**\n * Lifecycle method that fetches advertisements before the component is loaded.\n */\n componentWillLoad() {\n // Fetch advertisements based on the current page\n return (new Promise(resolve => salla.onReady(resolve)))\n .then(() => salla.api.advertisement.fetch(this.currentSlug))\n .then(resp => Array.isArray(resp.data) ? resp.data.find(ad => !salla.storage.get(`statusAd-${ad.id}`)) : null)\n .then(ad => this.advertisements = ad ? [ad] : []);\n }\n\n componentDidRender() {\n if ((Array.isArray(this.advertisements) && !this.advertisements.length) || !this.advertisements) {\n return;\n }\n // Add event listener for the close button\n setTimeout(() => {\n let closeBtn = this.host.querySelector('.s-advertisement-action');\n if (closeBtn) {\n closeBtn.addEventListener('click', () => this.setCanDisplayFlag(this.advertisements[0], false));\n }\n });\n\n // Reduce Dom size by removing the slot element\n this.host.querySelectorAll('#adv-slot').forEach(el => el?.replaceWith(el?.firstChild));\n this.host.querySelector('[slot=\"adv\"]')?.remove();\n\n // Trigger an animation to show the advertisement\n AnimeJS({\n targets: this.host,\n opacity: [0, 1],\n duration: 300,\n height: [0, this.host.clientHeight],\n easing: 'easeInOutQuad',\n });\n }\n}\n"],"names":["AnimeJS"],"mappings":"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"}
1
+ {"version":3,"file":"p-CDZp7nYn.system.js","sources":["src/components/salla-advertisement/salla-advertisement.scss?tag=salla-advertisement","src/components/salla-advertisement/salla-advertisement.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, State, Element, h } from '@stencil/core';\nimport { Advertisement } from './interfaces';\nimport AnimeJS from 'animejs';\n/**\n * @name SallaAdvertisement\n * @description A StencilJS component for handling and displaying advertisements in different pages of salla applications.\n * @tag salla-advertisement\n */\n\n/**\n * @slot adv - Replaces the entire advertisement, has replaceable props `{icon}`, `{url}`, `{target}`, `{description}`, `{bg_color}`, `{text_color}`.\n * */\n@Component({\n tag: 'salla-advertisement',\n styleUrl: 'salla-advertisement.scss',\n})\nexport class SallaAdvertisement {\n /**\n * Constructor for initializing the component.\n */\n constructor() {\n salla.onReady(() => {\n this.currentSlug = salla.config.get(\"page.slug\");\n })\n\n this.advSlot = this.host.querySelector('[slot=\"adv\"]')?.innerHTML || `<div class=\"s-advertisement-content\"><h2 class=\"s-advertisement-content-main\">{iconElem}{urlElem}</h2>{closeElem}</div>\n `;\n }\n private readonly advSlot: string;\n // State properties for managing component state\n @State() position: string;\n @State() advertisements: Advertisement[];\n @State() advertIcon: string;\n @State() currentSlug: string = salla.config.get(\"page.slug\");\n\n @Element() private host: HTMLElement;\n\n\n /**\n * Checks whether an advertisement is marked as not visible/dismissed.\n * @param advert - The advertisement to check.\n * @returns True if the advertisement is not visible, false otherwise.\n */\n private isNotVisible(advert: Advertisement): boolean {\n return !!salla.storage.get(`statusAd-${advert.id}`)\n }\n\n /**\n * Sets a flag to control the visibility of an advertisement and triggers an animation when hiding it.\n * @param advert - The advertisement to update.\n * @param flag - The flag indicating whether to display or hide the advertisement.\n */\n private setCanDisplayFlag(advert: Advertisement, flag: boolean): void {\n if (!flag) {\n // Set the statusAd flag to 'dismissed'\n salla.storage.set(`statusAd-${advert.id}`, 'dismissed');\n // Trigger an animation to hide the advertisement\n AnimeJS({\n targets: this.host,\n opacity: [1, 0],\n duration: 300,\n height: [this.host.clientHeight, 0],\n easing: 'easeInOutQuad',\n });\n }\n }\n\n /**\n * Renders the advertisements based on the fetched data and visibility status.\n * @returns JSX for rendering advertisements.\n */\n render() {\n if ((Array.isArray(this.advertisements) && !this.advertisements.length) || !this.advertisements) {\n return;\n }\n return this.advertisements.map((advertisement: Advertisement) => {\n return <div class={{ \"s-hidden\": this.isNotVisible(advertisement), 's-advertisement': true }} data-id={advertisement.id}\n style={{ \"background-color\": advertisement.colors.bg, \"color\": advertisement.colors.text }}>\n <div id=\"adv-slot\" innerHTML={\n this.advSlot\n // Replace the props with the advertisement data\n // !Note: The props with the 'Elem' suffix are for internal use only.\n .replace(\"{iconElem}\", `<i class=\"s-advertisement-content-icon ${advertisement.icon}\"></i>`)\n .replace(\"{urlElem}\", advertisement.url ? `<a href=\"${advertisement.url}\" target=\"${advertisement.target}\">${advertisement.description}</a>` : advertisement.description)\n .replace(\"{closeElem}\", `<button class=\"s-advertisement-action\" aria-label=\"close-alert\"><i class=\"sicon-cancel\"></i></button>`)\n .replace('{icon}', advertisement.icon)\n .replace('{url}', advertisement.url)\n .replace('{target}', advertisement.target)\n .replace('{description}', advertisement.description)\n .replace('{bg_color}', advertisement.colors.bg)\n .replace('{text_color}', advertisement.colors.text)\n }></div>\n </div>\n }\n );\n }\n\n /**\n * Lifecycle method that fetches advertisements before the component is loaded.\n */\n componentWillLoad() {\n // Fetch advertisements based on the current page\n return (new Promise(resolve => salla.onReady(resolve)))\n .then(() => salla.api.advertisement.fetch(this.currentSlug))\n .then(resp => Array.isArray(resp.data) ? resp.data.find(ad => !salla.storage.get(`statusAd-${ad.id}`)) : null)\n .then(ad => this.advertisements = ad ? [ad] : []);\n }\n\n componentDidRender() {\n if ((Array.isArray(this.advertisements) && !this.advertisements.length) || !this.advertisements) {\n return;\n }\n // Add event listener for the close button\n setTimeout(() => {\n let closeBtn = this.host.querySelector('.s-advertisement-action');\n if (closeBtn) {\n closeBtn.addEventListener('click', () => this.setCanDisplayFlag(this.advertisements[0], false));\n }\n });\n\n // Reduce Dom size by removing the slot element\n this.host.querySelectorAll('#adv-slot').forEach(el => el?.replaceWith(el?.firstChild));\n this.host.querySelector('[slot=\"adv\"]')?.remove();\n\n // Trigger an animation to show the advertisement\n AnimeJS({\n targets: this.host,\n opacity: [0, 1],\n duration: 300,\n height: [0, this.host.clientHeight],\n easing: 'easeInOutQuad',\n });\n }\n}\n"],"names":["AnimeJS"],"mappings":"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"}