@salla.sa/twilight-components 2.14.194 → 2.14.196

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 (286) hide show
  1. package/dist/cjs/{app-globals-BnBOzRdV.js → app-globals-DcwtPv94.js} +3 -3
  2. package/dist/cjs/{app-globals-BnBOzRdV.js.map → app-globals-DcwtPv94.js.map} +1 -1
  3. package/dist/cjs/{index-B0zdrLLN.js → index-B1wLS44k.js} +4 -4
  4. package/dist/cjs/index-B1wLS44k.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/salla-add-product-button_50.cjs.entry.js +1 -1
  7. package/dist/cjs/salla-advertisement.cjs.entry.js +1 -1
  8. package/dist/cjs/salla-app-install-alert.cjs.entry.js +1 -1
  9. package/dist/cjs/salla-apps-icons.cjs.entry.js +1 -1
  10. package/dist/cjs/salla-booking-field_2.cjs.entry.js +1 -1
  11. package/dist/cjs/salla-cart-item-offers.cjs.entry.js +1 -1
  12. package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
  13. package/dist/cjs/salla-contacts.cjs.entry.js +1 -1
  14. package/dist/cjs/salla-filters-widget.cjs.entry.js +1 -1
  15. package/dist/cjs/salla-filters.cjs.entry.js +1 -1
  16. package/dist/cjs/salla-installment.cjs.entry.js +1 -1
  17. package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +1 -1
  18. package/dist/cjs/salla-loyalty-program.cjs.entry.js +1 -1
  19. package/dist/cjs/salla-metadata.cjs.entry.js +18 -26
  20. package/dist/cjs/salla-metadata.cjs.entry.js.map +1 -1
  21. package/dist/cjs/salla-metadata.entry.cjs.js.map +1 -1
  22. package/dist/cjs/salla-notification-item.cjs.entry.js +1 -1
  23. package/dist/cjs/salla-notifications.cjs.entry.js +1 -1
  24. package/dist/cjs/salla-offer.cjs.entry.js +1 -1
  25. package/dist/cjs/salla-order-summary.cjs.entry.js +1 -1
  26. package/dist/cjs/salla-orders.cjs.entry.js +1 -1
  27. package/dist/cjs/salla-payments.cjs.entry.js +1 -1
  28. package/dist/cjs/salla-price-range.cjs.entry.js +1 -1
  29. package/dist/cjs/salla-product-options.cjs.entry.js +1 -1
  30. package/dist/cjs/salla-review-card.cjs.entry.js +1 -1
  31. package/dist/cjs/salla-reviews-page.cjs.entry.js +1 -1
  32. package/dist/cjs/salla-reviews.cjs.entry.js +1 -1
  33. package/dist/cjs/salla-social.cjs.entry.js +1 -1
  34. package/dist/cjs/salla-tooltip.cjs.entry.js +1 -1
  35. package/dist/cjs/salla-verify.cjs.entry.js +1 -1
  36. package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
  37. package/dist/cjs/twilight.cjs.js +2 -2
  38. package/dist/collection/components/salla-metadata/salla-metadata.js +17 -25
  39. package/dist/collection/components/salla-metadata/salla-metadata.js.map +1 -1
  40. package/dist/components/index.js +2 -2
  41. package/dist/components/index.js.map +1 -1
  42. package/dist/components/salla-metadata.js +17 -25
  43. package/dist/components/salla-metadata.js.map +1 -1
  44. package/dist/esm/{app-globals-Wfw3xJLP.js → app-globals-CMLhMUa4.js} +3 -3
  45. package/dist/esm/{app-globals-Wfw3xJLP.js.map → app-globals-CMLhMUa4.js.map} +1 -1
  46. package/dist/esm/{index-DRv0XmhL.js → index-CONUyMCB.js} +4 -4
  47. package/dist/esm/index-CONUyMCB.js.map +1 -0
  48. package/dist/esm/loader.js +3 -3
  49. package/dist/esm/salla-add-product-button_50.entry.js +1 -1
  50. package/dist/esm/salla-advertisement.entry.js +1 -1
  51. package/dist/esm/salla-app-install-alert.entry.js +1 -1
  52. package/dist/esm/salla-apps-icons.entry.js +1 -1
  53. package/dist/esm/salla-booking-field_2.entry.js +1 -1
  54. package/dist/esm/salla-cart-item-offers.entry.js +1 -1
  55. package/dist/esm/salla-conditional-offer.entry.js +1 -1
  56. package/dist/esm/salla-contacts.entry.js +1 -1
  57. package/dist/esm/salla-filters-widget.entry.js +1 -1
  58. package/dist/esm/salla-filters.entry.js +1 -1
  59. package/dist/esm/salla-installment.entry.js +1 -1
  60. package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
  61. package/dist/esm/salla-loyalty-program.entry.js +1 -1
  62. package/dist/esm/salla-metadata.entry.js +18 -26
  63. package/dist/esm/salla-metadata.entry.js.map +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-tooltip.entry.js +1 -1
  77. package/dist/esm/salla-verify.entry.js +1 -1
  78. package/dist/esm/salla-wallet.entry.js +1 -1
  79. package/dist/esm/twilight.js +3 -3
  80. package/dist/esm-es5/{app-globals-Wfw3xJLP.js → app-globals-CMLhMUa4.js} +2 -2
  81. package/dist/esm-es5/{app-globals-Wfw3xJLP.js.map → app-globals-CMLhMUa4.js.map} +1 -1
  82. package/dist/esm-es5/{index-DRv0XmhL.js → index-CONUyMCB.js} +3 -3
  83. package/dist/esm-es5/index-CONUyMCB.js.map +1 -0
  84. package/dist/esm-es5/loader.js +1 -1
  85. package/dist/esm-es5/salla-add-product-button_50.entry.js +1 -1
  86. package/dist/esm-es5/salla-advertisement.entry.js +1 -1
  87. package/dist/esm-es5/salla-app-install-alert.entry.js +1 -1
  88. package/dist/esm-es5/salla-apps-icons.entry.js +1 -1
  89. package/dist/esm-es5/salla-booking-field_2.entry.js +1 -1
  90. package/dist/esm-es5/salla-cart-item-offers.entry.js +1 -1
  91. package/dist/esm-es5/salla-conditional-offer.entry.js +1 -1
  92. package/dist/esm-es5/salla-contacts.entry.js +1 -1
  93. package/dist/esm-es5/salla-filters-widget.entry.js +1 -1
  94. package/dist/esm-es5/salla-filters.entry.js +1 -1
  95. package/dist/esm-es5/salla-installment.entry.js +1 -1
  96. package/dist/esm-es5/salla-loyalty-prize-item.entry.js +1 -1
  97. package/dist/esm-es5/salla-loyalty-program.entry.js +1 -1
  98. package/dist/esm-es5/salla-metadata.entry.js +2 -2
  99. package/dist/esm-es5/salla-metadata.entry.js.map +1 -1
  100. package/dist/esm-es5/salla-notification-item.entry.js +1 -1
  101. package/dist/esm-es5/salla-notifications.entry.js +1 -1
  102. package/dist/esm-es5/salla-offer.entry.js +1 -1
  103. package/dist/esm-es5/salla-order-summary.entry.js +1 -1
  104. package/dist/esm-es5/salla-orders.entry.js +1 -1
  105. package/dist/esm-es5/salla-payments.entry.js +1 -1
  106. package/dist/esm-es5/salla-price-range.entry.js +1 -1
  107. package/dist/esm-es5/salla-product-options.entry.js +1 -1
  108. package/dist/esm-es5/salla-review-card.entry.js +1 -1
  109. package/dist/esm-es5/salla-reviews-page.entry.js +1 -1
  110. package/dist/esm-es5/salla-reviews.entry.js +1 -1
  111. package/dist/esm-es5/salla-social.entry.js +1 -1
  112. package/dist/esm-es5/salla-tooltip.entry.js +1 -1
  113. package/dist/esm-es5/salla-verify.entry.js +1 -1
  114. package/dist/esm-es5/salla-wallet.entry.js +1 -1
  115. package/dist/esm-es5/twilight.js +1 -1
  116. package/dist/twilight/{p-112585b6.entry.js → p-0019e61b.entry.js} +2 -2
  117. package/dist/twilight/{p-62b4bf45.entry.js → p-02cd389e.entry.js} +2 -2
  118. package/dist/twilight/{p-1dfa3fe5.system.entry.js → p-03e5656e.system.entry.js} +2 -2
  119. package/dist/twilight/{p-ca02a3cd.entry.js → p-09df22cf.entry.js} +2 -2
  120. package/dist/twilight/{p-84c9781f.system.entry.js → p-107bd9f2.system.entry.js} +2 -2
  121. package/dist/twilight/p-17015518.system.entry.js +5 -0
  122. package/dist/twilight/p-17015518.system.entry.js.map +1 -0
  123. package/dist/twilight/{p-e62d9aac.entry.js → p-2e773814.entry.js} +2 -2
  124. package/dist/twilight/{p-ae6b0c4c.system.entry.js → p-39760a31.system.entry.js} +2 -2
  125. package/dist/twilight/{p-2e1ff58e.system.entry.js → p-39cf13fd.system.entry.js} +2 -2
  126. package/dist/twilight/{p-47dee548.system.entry.js → p-3e91ec00.system.entry.js} +2 -2
  127. package/dist/twilight/{p-0d166440.entry.js → p-414d7627.entry.js} +2 -2
  128. package/dist/twilight/{p-a2096860.system.entry.js → p-42146b3c.system.entry.js} +2 -2
  129. package/dist/twilight/{p-bc69cc10.system.entry.js → p-4c16561e.system.entry.js} +2 -2
  130. package/dist/twilight/{p-6c3b691b.entry.js → p-514a1295.entry.js} +2 -2
  131. package/dist/twilight/{p-fdf7e063.system.entry.js → p-561250d4.system.entry.js} +2 -2
  132. package/dist/twilight/{p-7a2ac4a5.entry.js → p-62204048.entry.js} +2 -2
  133. package/dist/twilight/{p-6a872e4b.entry.js → p-6d619972.entry.js} +2 -2
  134. package/dist/twilight/{p-c898a503.entry.js → p-7725a345.entry.js} +2 -2
  135. package/dist/twilight/{p-507a3997.system.entry.js → p-7db52b53.system.entry.js} +2 -2
  136. package/dist/twilight/{p-a0a83d68.entry.js → p-808c2fee.entry.js} +2 -2
  137. package/dist/twilight/{p-2e0e7f45.entry.js → p-8285c000.entry.js} +2 -2
  138. package/dist/twilight/{p-c583b04b.system.entry.js → p-8342b9d6.system.entry.js} +2 -2
  139. package/dist/twilight/{p-f33cde83.system.entry.js → p-858429a1.system.entry.js} +2 -2
  140. package/dist/twilight/{p-331a8d27.entry.js → p-877cc018.entry.js} +2 -2
  141. package/dist/twilight/{p-77e66a6f.entry.js → p-8a6100af.entry.js} +2 -2
  142. package/dist/twilight/{p-cc26130d.entry.js → p-8b311ce7.entry.js} +2 -2
  143. package/dist/twilight/{p-6635bf0f.entry.js → p-8cff4083.entry.js} +2 -2
  144. package/dist/twilight/{p-84cfd735.entry.js → p-8f476ac3.entry.js} +2 -2
  145. package/dist/twilight/{p-acbd6f19.entry.js → p-943f9775.entry.js} +2 -2
  146. package/dist/twilight/{p-fd6087d3.system.entry.js → p-94d1df72.system.entry.js} +2 -2
  147. package/dist/twilight/{p-e5607d73.system.entry.js → p-96bf4edd.system.entry.js} +2 -2
  148. package/dist/twilight/{p-5cec94f8.system.entry.js → p-998f3f0a.system.entry.js} +2 -2
  149. package/dist/twilight/{p-d9b5a4c7.system.entry.js → p-9d11bc87.system.entry.js} +2 -2
  150. package/dist/twilight/{p-B7dpXGsi.system.js → p-B4WCJaj6.system.js} +2 -2
  151. package/dist/twilight/{p-B7dpXGsi.system.js.map → p-B4WCJaj6.system.js.map} +1 -1
  152. package/dist/twilight/{p-CksqhaSD.system.js.map → p-B4noQbLm.system.js.map} +1 -1
  153. package/dist/twilight/{p-DtwDyxDU.system.js.map → p-BHJIrEx_.system.js.map} +1 -1
  154. package/dist/twilight/{p-CzcWDYay.system.js.map → p-BLvBCoGM.system.js.map} +1 -1
  155. package/dist/twilight/{p-HVw-BMW-.system.js.map → p-BNiyr8p1.system.js.map} +1 -1
  156. package/dist/twilight/{p-B0ULJwZu.system.js.map → p-BgnsZ1ET.system.js.map} +1 -1
  157. package/dist/twilight/{p-BnSHXYkG.system.js.map → p-BiSqGVG7.system.js.map} +1 -1
  158. package/dist/twilight/{p-Ccn3M790.system.js.map → p-Bn8ryM3U.system.js.map} +1 -1
  159. package/dist/twilight/{p-BCG3GzKE.system.js.map → p-C0pBG_cq.system.js.map} +1 -1
  160. package/dist/twilight/{p-yvpT3wtW.system.js.map → p-C7niKe5O.system.js.map} +1 -1
  161. package/dist/twilight/{p-DHfUhPxC.system.js.map → p-CASZcwnl.system.js.map} +1 -1
  162. package/dist/twilight/{p-ELe49MmA.system.js.map → p-CHAzfld4.system.js.map} +1 -1
  163. package/dist/twilight/{p-DRv0XmhL.js → p-CONUyMCB.js} +3 -3
  164. package/dist/twilight/p-CONUyMCB.js.map +1 -0
  165. package/dist/twilight/{p-CVjsvN8c.system.js.map → p-CW18-rtv.system.js.map} +1 -1
  166. package/dist/twilight/{p-wS4LBnhF.system.js.map → p-Cgm3UwCD.system.js.map} +1 -1
  167. package/dist/twilight/{p-CEW2B7S2.system.js.map → p-CjDeQhhE.system.js.map} +1 -1
  168. package/dist/twilight/{p-DGFW85sK.system.js → p-CjulTfsF.system.js} +2 -2
  169. package/dist/twilight/{p-DGFW85sK.system.js.map → p-CjulTfsF.system.js.map} +1 -1
  170. package/dist/twilight/{p-KwuCFr9s.system.js.map → p-D-e59yUg.system.js.map} +1 -1
  171. package/dist/twilight/{p-zOLwLvZb.system.js.map → p-D1XybiwD.system.js.map} +1 -1
  172. package/dist/twilight/{p-BmODWtIK.system.js.map → p-D20InuUP.system.js.map} +1 -1
  173. package/dist/twilight/p-D7xrGiR8.system.js.map +1 -0
  174. package/dist/twilight/{p-DPHtICcx.system.js.map → p-DFoKUbv2.system.js.map} +1 -1
  175. package/dist/twilight/{p-ajGtsBD_.system.js.map → p-DI2tHblf.system.js.map} +1 -1
  176. package/dist/twilight/{p-DcFTDTyY.system.js.map → p-DJBst9a2.system.js.map} +1 -1
  177. package/dist/twilight/{p-CQ9pE7Ht.system.js.map → p-DMuInOEE.system.js.map} +1 -1
  178. package/dist/twilight/{p-Cfgn6QTB.system.js.map → p-DS9iXYHv.system.js.map} +1 -1
  179. package/dist/twilight/{p-DGP3FxWu.system.js.map → p-DfqH8O1k.system.js.map} +1 -1
  180. package/dist/twilight/{p-D4IJKBYj.system.js.map → p-DnbQV4Rs.system.js.map} +1 -1
  181. package/dist/twilight/{p-B6OnjICY.system.js.map → p-DxrzEIN4.system.js.map} +1 -1
  182. package/dist/twilight/{p-GkQO-jwJ.system.js.map → p-F_JBcLKA.system.js.map} +1 -1
  183. package/dist/twilight/{p-BeF8ARDV.system.js.map → p-HrVniZrt.system.js.map} +1 -1
  184. package/dist/twilight/{p-B5X_STmF.system.js.map → p-PhNceWMy.system.js.map} +1 -1
  185. package/dist/twilight/{p-CGIBoCqM.system.js → p-QUCORK4D.system.js} +3 -3
  186. package/dist/twilight/p-QUCORK4D.system.js.map +1 -0
  187. package/dist/twilight/{p-CikRFmeX.js → p-XINIu7y_.js} +2 -2
  188. package/dist/twilight/{p-CikRFmeX.js.map → p-XINIu7y_.js.map} +1 -1
  189. package/dist/twilight/{p-511efd33.system.entry.js → p-a3e578cd.system.entry.js} +2 -2
  190. package/dist/twilight/{p-014b407e.entry.js → p-a58d6a31.entry.js} +2 -2
  191. package/dist/twilight/{p-ac1aef7f.system.entry.js → p-a8e00df0.system.entry.js} +2 -2
  192. package/dist/twilight/{p-9004fdae.entry.js → p-a92945f2.entry.js} +2 -2
  193. package/dist/twilight/{p-905e4596.system.entry.js → p-aa9ef50d.system.entry.js} +2 -2
  194. package/dist/twilight/{p-a2416a55.system.entry.js → p-ab1d455b.system.entry.js} +2 -2
  195. package/dist/twilight/{p-39-8Ke2d.system.js.map → p-ajLbPqsj.system.js.map} +1 -1
  196. package/dist/twilight/{p-032f9285.system.entry.js → p-b1cbe674.system.entry.js} +2 -2
  197. package/dist/twilight/{p-38013f30.system.entry.js → p-b5e548e6.system.entry.js} +2 -2
  198. package/dist/twilight/{p-ef8356bb.entry.js → p-b87d1708.entry.js} +2 -2
  199. package/dist/twilight/{p-1e229fc6.entry.js → p-bfb836dc.entry.js} +2 -2
  200. package/dist/twilight/{p-3e00cbb6.system.entry.js → p-c7935125.system.entry.js} +2 -2
  201. package/dist/twilight/{p-cfd35e95.system.entry.js → p-c99e09ce.system.entry.js} +2 -2
  202. package/dist/twilight/{p-a10879fa.entry.js → p-ccdcee73.entry.js} +2 -2
  203. package/dist/twilight/{p-32ffeef7.entry.js → p-d06cf51d.entry.js} +2 -2
  204. package/dist/twilight/{p-1ea561a5.entry.js → p-dfc17c1d.entry.js} +2 -2
  205. package/dist/twilight/{p-c12a8052.system.entry.js → p-e5e12795.system.entry.js} +2 -2
  206. package/dist/twilight/{p-e3c10792.entry.js → p-ea37405f.entry.js} +2 -2
  207. package/dist/twilight/{p-8e110acf.system.entry.js → p-eb646a9f.system.entry.js} +2 -2
  208. package/dist/twilight/p-f18bd4f2.entry.js +5 -0
  209. package/dist/twilight/p-f18bd4f2.entry.js.map +1 -0
  210. package/dist/twilight/{p-043397f9.entry.js → p-f8c5e596.entry.js} +2 -2
  211. package/dist/twilight/{p-92d79fdb.system.entry.js → p-f98c3187.system.entry.js} +2 -2
  212. package/dist/twilight/{p-8aad36f3.entry.js → p-f9d8551b.entry.js} +2 -2
  213. package/dist/twilight/{p-c199cbce.system.entry.js → p-fa2b1c2e.system.entry.js} +2 -2
  214. package/dist/twilight/{p-d8b31901.entry.js → p-fe4ce1da.entry.js} +2 -2
  215. package/dist/twilight/{p-a5cfbed1.system.entry.js → p-fec147d4.system.entry.js} +2 -2
  216. package/dist/twilight/salla-metadata.entry.esm.js.map +1 -1
  217. package/dist/twilight/twilight.esm.js +1 -1
  218. package/dist/twilight/twilight.js +1 -1
  219. package/dist/types/components/salla-metadata/salla-metadata.d.ts +1 -1
  220. package/package.json +5 -5
  221. package/dist/cjs/index-B0zdrLLN.js.map +0 -1
  222. package/dist/esm/index-DRv0XmhL.js.map +0 -1
  223. package/dist/esm-es5/index-DRv0XmhL.js.map +0 -1
  224. package/dist/twilight/p-35334c5a.system.entry.js +0 -5
  225. package/dist/twilight/p-35334c5a.system.entry.js.map +0 -1
  226. package/dist/twilight/p-9b29330f.entry.js +0 -5
  227. package/dist/twilight/p-9b29330f.entry.js.map +0 -1
  228. package/dist/twilight/p-CGIBoCqM.system.js.map +0 -1
  229. package/dist/twilight/p-DRv0XmhL.js.map +0 -1
  230. package/dist/twilight/p-TZ8CxEIh.system.js.map +0 -1
  231. /package/dist/twilight/{p-112585b6.entry.js.map → p-0019e61b.entry.js.map} +0 -0
  232. /package/dist/twilight/{p-62b4bf45.entry.js.map → p-02cd389e.entry.js.map} +0 -0
  233. /package/dist/twilight/{p-1dfa3fe5.system.entry.js.map → p-03e5656e.system.entry.js.map} +0 -0
  234. /package/dist/twilight/{p-ca02a3cd.entry.js.map → p-09df22cf.entry.js.map} +0 -0
  235. /package/dist/twilight/{p-84c9781f.system.entry.js.map → p-107bd9f2.system.entry.js.map} +0 -0
  236. /package/dist/twilight/{p-e62d9aac.entry.js.map → p-2e773814.entry.js.map} +0 -0
  237. /package/dist/twilight/{p-ae6b0c4c.system.entry.js.map → p-39760a31.system.entry.js.map} +0 -0
  238. /package/dist/twilight/{p-2e1ff58e.system.entry.js.map → p-39cf13fd.system.entry.js.map} +0 -0
  239. /package/dist/twilight/{p-47dee548.system.entry.js.map → p-3e91ec00.system.entry.js.map} +0 -0
  240. /package/dist/twilight/{p-0d166440.entry.js.map → p-414d7627.entry.js.map} +0 -0
  241. /package/dist/twilight/{p-a2096860.system.entry.js.map → p-42146b3c.system.entry.js.map} +0 -0
  242. /package/dist/twilight/{p-bc69cc10.system.entry.js.map → p-4c16561e.system.entry.js.map} +0 -0
  243. /package/dist/twilight/{p-6c3b691b.entry.js.map → p-514a1295.entry.js.map} +0 -0
  244. /package/dist/twilight/{p-fdf7e063.system.entry.js.map → p-561250d4.system.entry.js.map} +0 -0
  245. /package/dist/twilight/{p-7a2ac4a5.entry.js.map → p-62204048.entry.js.map} +0 -0
  246. /package/dist/twilight/{p-6a872e4b.entry.js.map → p-6d619972.entry.js.map} +0 -0
  247. /package/dist/twilight/{p-c898a503.entry.js.map → p-7725a345.entry.js.map} +0 -0
  248. /package/dist/twilight/{p-507a3997.system.entry.js.map → p-7db52b53.system.entry.js.map} +0 -0
  249. /package/dist/twilight/{p-a0a83d68.entry.js.map → p-808c2fee.entry.js.map} +0 -0
  250. /package/dist/twilight/{p-2e0e7f45.entry.js.map → p-8285c000.entry.js.map} +0 -0
  251. /package/dist/twilight/{p-c583b04b.system.entry.js.map → p-8342b9d6.system.entry.js.map} +0 -0
  252. /package/dist/twilight/{p-f33cde83.system.entry.js.map → p-858429a1.system.entry.js.map} +0 -0
  253. /package/dist/twilight/{p-331a8d27.entry.js.map → p-877cc018.entry.js.map} +0 -0
  254. /package/dist/twilight/{p-77e66a6f.entry.js.map → p-8a6100af.entry.js.map} +0 -0
  255. /package/dist/twilight/{p-cc26130d.entry.js.map → p-8b311ce7.entry.js.map} +0 -0
  256. /package/dist/twilight/{p-6635bf0f.entry.js.map → p-8cff4083.entry.js.map} +0 -0
  257. /package/dist/twilight/{p-84cfd735.entry.js.map → p-8f476ac3.entry.js.map} +0 -0
  258. /package/dist/twilight/{p-acbd6f19.entry.js.map → p-943f9775.entry.js.map} +0 -0
  259. /package/dist/twilight/{p-fd6087d3.system.entry.js.map → p-94d1df72.system.entry.js.map} +0 -0
  260. /package/dist/twilight/{p-e5607d73.system.entry.js.map → p-96bf4edd.system.entry.js.map} +0 -0
  261. /package/dist/twilight/{p-5cec94f8.system.entry.js.map → p-998f3f0a.system.entry.js.map} +0 -0
  262. /package/dist/twilight/{p-d9b5a4c7.system.entry.js.map → p-9d11bc87.system.entry.js.map} +0 -0
  263. /package/dist/twilight/{p-511efd33.system.entry.js.map → p-a3e578cd.system.entry.js.map} +0 -0
  264. /package/dist/twilight/{p-014b407e.entry.js.map → p-a58d6a31.entry.js.map} +0 -0
  265. /package/dist/twilight/{p-ac1aef7f.system.entry.js.map → p-a8e00df0.system.entry.js.map} +0 -0
  266. /package/dist/twilight/{p-9004fdae.entry.js.map → p-a92945f2.entry.js.map} +0 -0
  267. /package/dist/twilight/{p-905e4596.system.entry.js.map → p-aa9ef50d.system.entry.js.map} +0 -0
  268. /package/dist/twilight/{p-a2416a55.system.entry.js.map → p-ab1d455b.system.entry.js.map} +0 -0
  269. /package/dist/twilight/{p-032f9285.system.entry.js.map → p-b1cbe674.system.entry.js.map} +0 -0
  270. /package/dist/twilight/{p-38013f30.system.entry.js.map → p-b5e548e6.system.entry.js.map} +0 -0
  271. /package/dist/twilight/{p-ef8356bb.entry.js.map → p-b87d1708.entry.js.map} +0 -0
  272. /package/dist/twilight/{p-1e229fc6.entry.js.map → p-bfb836dc.entry.js.map} +0 -0
  273. /package/dist/twilight/{p-3e00cbb6.system.entry.js.map → p-c7935125.system.entry.js.map} +0 -0
  274. /package/dist/twilight/{p-cfd35e95.system.entry.js.map → p-c99e09ce.system.entry.js.map} +0 -0
  275. /package/dist/twilight/{p-a10879fa.entry.js.map → p-ccdcee73.entry.js.map} +0 -0
  276. /package/dist/twilight/{p-32ffeef7.entry.js.map → p-d06cf51d.entry.js.map} +0 -0
  277. /package/dist/twilight/{p-1ea561a5.entry.js.map → p-dfc17c1d.entry.js.map} +0 -0
  278. /package/dist/twilight/{p-c12a8052.system.entry.js.map → p-e5e12795.system.entry.js.map} +0 -0
  279. /package/dist/twilight/{p-e3c10792.entry.js.map → p-ea37405f.entry.js.map} +0 -0
  280. /package/dist/twilight/{p-8e110acf.system.entry.js.map → p-eb646a9f.system.entry.js.map} +0 -0
  281. /package/dist/twilight/{p-043397f9.entry.js.map → p-f8c5e596.entry.js.map} +0 -0
  282. /package/dist/twilight/{p-92d79fdb.system.entry.js.map → p-f98c3187.system.entry.js.map} +0 -0
  283. /package/dist/twilight/{p-8aad36f3.entry.js.map → p-f9d8551b.entry.js.map} +0 -0
  284. /package/dist/twilight/{p-c199cbce.system.entry.js.map → p-fa2b1c2e.system.entry.js.map} +0 -0
  285. /package/dist/twilight/{p-d8b31901.entry.js.map → p-fe4ce1da.entry.js.map} +0 -0
  286. /package/dist/twilight/{p-a5cfbed1.system.entry.js.map → p-fec147d4.system.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"p-CVjsvN8c.system.js","sources":["src/components/salla-notifications/salla-notifications.scss?tag=salla-notifications","src/components/salla-notifications/salla-notifications.tsx"],"sourcesContent":["","import { Component, h, State, Prop, Element } from '@stencil/core';\nimport { Notification } from \"./interfaces\"\nimport {Pagination} from \"../../interfaces\"\nimport Helper from '../../Helpers/Helper';\n\n@Component({\n tag: 'salla-notifications',\n styleUrl: 'salla-notifications.scss',\n})\nexport class SallaNotifications {\n\n constructor() {\n salla.lang.onLoaded(() => {\n this.no_notifications_trans = salla.lang.get('blocks.header.no_notifications');\n this.load_more_text_trans = salla.lang.get('common.elements.load_more')\n })\n }\n\n /**\n * Load more text\n */\n @Prop() loadMoreText: string;\n\n /**\n * Number of notifications to load per request.\n */\n @Prop() itemPerPage: number = 10;\n\n @State() pagination: Pagination;\n @State() total: number;\n @State() showPlaceholder: boolean;\n @State() nextPage: string;\n\n @State() no_notifications_trans = salla.lang.get('blocks.header.no_notifications')\n @State() load_more_text_trans = salla.lang.get('common.elements.load_more');\n\n private status: any;\n private btnLoader: any;\n private infiniteScroll: any;\n private wrapper: any;\n\n @Element() host: HTMLElement;\n\n // Show/hide loading\n private loading(isLoading = true) {\n let btnText = this.status?.querySelector('.s-button-text');\n if (btnText) {\n Helper.toggleElementClassIf(btnText, 's-button-hide', 's-button-show', () => isLoading);\n this.btnLoader.style.display = isLoading ? 'inherit' : 'none';\n }\n }\n\n private getNotificationCard(notification: Notification) {\n const notificationItem = document.createElement('salla-notification-item') as HTMLSallaNotificationItemElement;\n notificationItem.notification = notification;\n notificationItem.classList.add('s-block');\n return notificationItem;\n }\n\n\n render() {\n if (this.showPlaceholder) {\n return <div class=\"s-notifications-no-content\">\n <salla-placeholder alignment='center'>\n <span slot='title'>\n {this.no_notifications_trans}\n </span>\n </salla-placeholder>\n </div>\n }\n\n return <div class=\"s-notifications-wrapper\">\n <div class=\"s-notifications-container\" ref={wrapper => this.wrapper = wrapper}></div>\n\n {this.nextPage && (\n <div class=\"s-infinite-scroll-wrapper\" ref={status => this.status = status}>\n <button onClick={() => this.loadMore()} class=\"s-infinite-scroll-btn s-button-btn s-button-primary\">\n <span class=\"s-button-text s-infinite-scroll-btn-text\">{this.loadMoreText ?? this.load_more_text_trans}</span>\n <span class=\"s-button-loader s-button-loader-center s-infinite-scroll-btn-loader\" ref={btnLoader => this.btnLoader = btnLoader} style={{ \"display\": \"none\" }}></span>\n </button>\n </div>\n )}\n </div>\n }\n\n\n private handleResponse(notificationsList: Notification[]) {\n return notificationsList.map(notification => this.getNotificationCard(notification))\n }\n\n private initiateInfiniteScroll() {\n if (!this.wrapper) {\n salla.logger.error('Wrapper is undefined. Cannot initiate infinite scroll.');\n return;\n }\n\n this.infiniteScroll = salla.infiniteScroll.initiate(this.wrapper, this.wrapper, {\n path: () => this.nextPage,\n history: true,\n nextPage: this.nextPage,\n scrollThreshold: false,\n }, true);\n\n this.infiniteScroll?.on('request', _response => {\n this.loading();\n });\n\n this.infiniteScroll?.on('load', response => {\n this.loading(false);\n this.pagination = response.pagination;\n this.nextPage = response.pagination.links?.next || null;\n this.handleResponse(response.data).forEach(data => this.wrapper.append(data))\n let items = this.host.querySelectorAll('salla-notification-item:not(.animated)');\n Helper.animateItems(items);\n });\n\n this.infiniteScroll?.on('error', (e) => {\n salla.logger.error('Error loading more comments:', e);\n });\n }\n\n private async loadInitialData() {\n await salla.api.notifications.fetch({\"per_page\": this.itemPerPage})\n .then(resp => {\n this.pagination = resp.pagination;\n this.total = resp.pagination.total;\n this.nextPage = resp.pagination.links?.next || null;\n\n // if (!this.notifications.length) {\n // this.showPlaceholder = true;\n // return this.loading(false);\n // }\n\n setTimeout(() => {\n if (!resp.data.length) {\n return this.showPlaceholder = true;\n }\n this.handleResponse(resp.data).forEach(data => this.wrapper.append(data))\n this.initiateInfiniteScroll();\n let items = this.wrapper.querySelectorAll('salla-notification-item:not(.animated)');\n Helper.animateItems(items);\n }, 100)\n })\n .catch(error => {\n salla.logger.error(error)\n this.showPlaceholder = true;\n this.loading(false)\n })\n }\n\n // Get next page\n async loadMore() {\n this.infiniteScroll?.loadNextPage();\n }\n\n async componentWillLoad() {\n await this.loadInitialData();\n }\n\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-CW18-rtv.system.js","sources":["src/components/salla-notifications/salla-notifications.scss?tag=salla-notifications","src/components/salla-notifications/salla-notifications.tsx"],"sourcesContent":["","import { Component, h, State, Prop, Element } from '@stencil/core';\nimport { Notification } from \"./interfaces\"\nimport {Pagination} from \"../../interfaces\"\nimport Helper from '../../Helpers/Helper';\n\n@Component({\n tag: 'salla-notifications',\n styleUrl: 'salla-notifications.scss',\n})\nexport class SallaNotifications {\n\n constructor() {\n salla.lang.onLoaded(() => {\n this.no_notifications_trans = salla.lang.get('blocks.header.no_notifications');\n this.load_more_text_trans = salla.lang.get('common.elements.load_more')\n })\n }\n\n /**\n * Load more text\n */\n @Prop() loadMoreText: string;\n\n /**\n * Number of notifications to load per request.\n */\n @Prop() itemPerPage: number = 10;\n\n @State() pagination: Pagination;\n @State() total: number;\n @State() showPlaceholder: boolean;\n @State() nextPage: string;\n\n @State() no_notifications_trans = salla.lang.get('blocks.header.no_notifications')\n @State() load_more_text_trans = salla.lang.get('common.elements.load_more');\n\n private status: any;\n private btnLoader: any;\n private infiniteScroll: any;\n private wrapper: any;\n\n @Element() host: HTMLElement;\n\n // Show/hide loading\n private loading(isLoading = true) {\n let btnText = this.status?.querySelector('.s-button-text');\n if (btnText) {\n Helper.toggleElementClassIf(btnText, 's-button-hide', 's-button-show', () => isLoading);\n this.btnLoader.style.display = isLoading ? 'inherit' : 'none';\n }\n }\n\n private getNotificationCard(notification: Notification) {\n const notificationItem = document.createElement('salla-notification-item') as HTMLSallaNotificationItemElement;\n notificationItem.notification = notification;\n notificationItem.classList.add('s-block');\n return notificationItem;\n }\n\n\n render() {\n if (this.showPlaceholder) {\n return <div class=\"s-notifications-no-content\">\n <salla-placeholder alignment='center'>\n <span slot='title'>\n {this.no_notifications_trans}\n </span>\n </salla-placeholder>\n </div>\n }\n\n return <div class=\"s-notifications-wrapper\">\n <div class=\"s-notifications-container\" ref={wrapper => this.wrapper = wrapper}></div>\n\n {this.nextPage && (\n <div class=\"s-infinite-scroll-wrapper\" ref={status => this.status = status}>\n <button onClick={() => this.loadMore()} class=\"s-infinite-scroll-btn s-button-btn s-button-primary\">\n <span class=\"s-button-text s-infinite-scroll-btn-text\">{this.loadMoreText ?? this.load_more_text_trans}</span>\n <span class=\"s-button-loader s-button-loader-center s-infinite-scroll-btn-loader\" ref={btnLoader => this.btnLoader = btnLoader} style={{ \"display\": \"none\" }}></span>\n </button>\n </div>\n )}\n </div>\n }\n\n\n private handleResponse(notificationsList: Notification[]) {\n return notificationsList.map(notification => this.getNotificationCard(notification))\n }\n\n private initiateInfiniteScroll() {\n if (!this.wrapper) {\n salla.logger.error('Wrapper is undefined. Cannot initiate infinite scroll.');\n return;\n }\n\n this.infiniteScroll = salla.infiniteScroll.initiate(this.wrapper, this.wrapper, {\n path: () => this.nextPage,\n history: true,\n nextPage: this.nextPage,\n scrollThreshold: false,\n }, true);\n\n this.infiniteScroll?.on('request', _response => {\n this.loading();\n });\n\n this.infiniteScroll?.on('load', response => {\n this.loading(false);\n this.pagination = response.pagination;\n this.nextPage = response.pagination.links?.next || null;\n this.handleResponse(response.data).forEach(data => this.wrapper.append(data))\n let items = this.host.querySelectorAll('salla-notification-item:not(.animated)');\n Helper.animateItems(items);\n });\n\n this.infiniteScroll?.on('error', (e) => {\n salla.logger.error('Error loading more comments:', e);\n });\n }\n\n private async loadInitialData() {\n await salla.api.notifications.fetch({\"per_page\": this.itemPerPage})\n .then(resp => {\n this.pagination = resp.pagination;\n this.total = resp.pagination.total;\n this.nextPage = resp.pagination.links?.next || null;\n\n // if (!this.notifications.length) {\n // this.showPlaceholder = true;\n // return this.loading(false);\n // }\n\n setTimeout(() => {\n if (!resp.data.length) {\n return this.showPlaceholder = true;\n }\n this.handleResponse(resp.data).forEach(data => this.wrapper.append(data))\n this.initiateInfiniteScroll();\n let items = this.wrapper.querySelectorAll('salla-notification-item:not(.animated)');\n Helper.animateItems(items);\n }, 100)\n })\n .catch(error => {\n salla.logger.error(error)\n this.showPlaceholder = true;\n this.loading(false)\n })\n }\n\n // Get next page\n async loadMore() {\n this.infiniteScroll?.loadNextPage();\n }\n\n async componentWillLoad() {\n await this.loadInitialData();\n }\n\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-wS4LBnhF.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-Cgm3UwCD.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 +1 @@
1
- {"version":3,"file":"p-CEW2B7S2.system.js","sources":["../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/throttle.js","src/Helpers/masonry-layout.ts","src/components/salla-reviews-page/salla-reviews-page.css?tag=salla-reviews-page","src/components/salla-reviews-page/salla-reviews-page.tsx"],"sourcesContent":["var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","import throttle from \"lodash/throttle\";\n\nexport class MasonryLayout {\n\tprivate mutationObserver: MutationObserver;\n\tprivate resizeObserver: ResizeObserver;\n\n\tconstructor(private grid: Element) {\n\t\tthis.mutationObserver = new MutationObserver(this.onContainerMutation);\n\t\tthis.resizeObserver = new ResizeObserver(this.onChildrenResize);\n\n\t\tif (CSS.supports(\"grid-template-rows\", \"masonry\") === false) {\n\t\t\tthis.create();\n\t\t}\n\t}\n\n\tprivate create = () => {\n\t\tthis.mutationObserver.observe(this.grid, {\n\t\t\tchildList: true,\n\t\t});\n\n\t\tfor (const item of Array.from(this.grid.children)){\n\t\t\tthis.resizeObserver.observe(item);\n\t\t};\n\t};\n\n\tprivate onContainerMutation = (mutations: MutationRecord[]) => {\n\t\tconst removedNodes = mutations.flatMap((mutation) =>\n\t\t\tArray.from(mutation.removedNodes),\n\t\t);\n\t\tconst addedNodes = mutations.flatMap((mutation) =>\n\t\t\tArray.from(mutation.addedNodes),\n\t\t);\n\n\t\tfor (const node of removedNodes) {\n\t\t\tif (node instanceof Element) {\n\t\t\t\tthis.resizeObserver.unobserve(node);\n\t\t\t}\n\t\t}\n\n\t\tfor (const node of addedNodes) {\n\t\t\tif (node instanceof Element) {\n\t\t\t\tthis.resizeObserver.observe(node);\n\t\t\t}\n\t\t}\n\n\t\tif (removedNodes.length > 0 && addedNodes.length === 0) {\n\t\t\tthis.update();\n\t\t}\n\t};\n\n\tprivate onChildrenResize = (entries: ResizeObserverEntry[]) => {\n\t\tconst entriesToUpdate = entries.filter(\n\t\t\t(entry) => entry.target.parentElement !== null,\n\t\t);\n\n\t\tif (entriesToUpdate.length > 0) {\n\t\t\tthis.update();\n\t\t}\n\t};\n\n\tupdate = throttle(() => {\n\t\tconst computedStyle = window.getComputedStyle(this.grid);\n\n\t\tif (computedStyle.getPropertyValue(\"display\").includes(\"grid\") === false) {\n\t\t\tthis.clean();\n\t\t\treturn;\n\t\t}\n\n\t\tconst columns = parseGridTemplateColumns(this.grid);\n\n\t\tif (columns.length <= 1) {\n\t\t\tthis.clean();\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst rowGap =\n\t\t\tNumber.parseFloat(computedStyle.getPropertyValue(\"row-gap\").trim()) || 0;\n\n\t\tconst items = Array.from(this.grid.children) as HTMLElement[];\n\n\t\tfor (let columnIndex = 0; columnIndex < columns.length; columnIndex++) {\n\t\t\tconst firstItemInColumn = items[columnIndex];\n\n\t\t\tfirstItemInColumn?.style.removeProperty(\"margin-top\");\n\t\t}\n\n\t\tfor (let index = 0; index < items.length; index++) {\n\t\t\tconst prevItem = items[index - columns.length];\n\t\t\tconst nextItem = items[index];\n\n\t\t\tif (prevItem !== undefined && nextItem !== undefined) {\n\t\t\t\tconst prevBottom = prevItem.getBoundingClientRect().bottom;\n\n\t\t\t\tnextItem.style.removeProperty(\"margin-top\");\n\n\t\t\t\tconst nextTop = nextItem.getBoundingClientRect().top;\n\n\t\t\t\tif (nextTop - rowGap !== prevBottom) {\n\t\t\t\t\tconst margin =\n\t\t\t\t\t\tMath.round(\n\t\t\t\t\t\t\t(prevBottom - (nextTop - rowGap) + Number.EPSILON) * 100,\n\t\t\t\t\t\t) / 100;\n\n\t\t\t\t\tnextItem.style.setProperty(\"margin-top\", `${margin}px`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, 32);\n\n\tdestroy = () => {\n\t\tthis.resizeObserver.disconnect();\n\t\tthis.mutationObserver.disconnect();\n\t\tthis.clean();\n\t};\n\n\tprivate clean = () => {\n\t\tfor ( const item of (Array.from(this.grid.children) as HTMLElement[])){\n\t\t\titem.style.removeProperty(\"margin-top\");\n\t\t}\n\t};\n\n\t[Symbol.dispose]() {\n\t\tthis.destroy();\n\t}\n}\n\nfunction parseGridTemplateColumns(grid: Element) {\n\tconst computedStyle = window.getComputedStyle(grid);\n\n\tconst gridTemplateColumns = computedStyle.getPropertyValue(\n\t\t\"grid-template-columns\",\n\t);\n\n\treturn gridTemplateColumns\n\t\t.trim()\n\t\t.split(/\\s+(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/);\n}",":host {\n display: block;\n}","import { Component, State, Element, h } from '@stencil/core';\nimport type { Review } from '../salla-review-card/interfaces';\nimport type { Pagination } from '../../interfaces/common';\nimport ShoppingBag from '../../assets/svg/shopping-bag.svg';\nimport Helper from '../../Helpers/Helper';\nimport { MasonryLayout } from '../../Helpers/masonry-layout';\n\n\n@Component({\n tag: 'salla-reviews-page',\n styleUrl: 'salla-reviews-page.css',\n})\nexport class SallaReviewsPage {\n @Element() el: HTMLElement;\n @State() reviews: Partial<Review>[] = [];\n @State() isLoading = false;\n @State() pagination: Pagination = null;\n @State() sort: \"top_rating\" | \"bottom_rating\" | \"latest\" | \"oldest\" = \"latest\";\n\n // Language variables\n private langTitlesReviews: string;\n private langRatingReviews: string;\n private langSorting: string;\n private langSortByTopRating: string;\n private langSortByMostRecent: string;\n private langSortByLeastRecent: string;\n private langSortByLeastRated: string;\n\n private langLoadMore: string;\n private placeholderText: string;\n\n private infiniteScroll: any;\n private wrapper: HTMLElement;\n\n private getUrlParams() {\n const params = new URLSearchParams(window.location.search);\n return {\n sort: params.get('sort') as typeof this.sort || null,\n page: Number.parseInt(params.get('page')) || 1\n };\n }\n\n private updateUrlParams(params: { sort?: string, page?: number }) {\n const url = new URL(window.location.href);\n for (const [key, value] of Object.entries(params)) {\n if (value) {\n url.searchParams.set(key, value.toString());\n } else {\n url.searchParams.delete(key);\n }\n };\n window.history.replaceState({}, '', url.toString());\n }\n\n private fetchReviews(sort?: typeof this.sort, page?: number) {\n const urlParams = this.getUrlParams();\n return salla.api.request('reviews', {\n params: {\n type: 'products',\n format: 'lite',\n per_page: 8,\n page: page || urlParams.page || 1,\n sort: sort || urlParams.sort || null\n }\n });\n }\n\n\n private async initializeMasonry() {\n const grid = this.el.querySelector('.s-reviews-page-grid');\n if (!grid) return;\n\n try {\n new MasonryLayout(grid);\n salla.logger.info('Masonry initialized successfully');\n } catch (error) {\n salla.logger.error('Masonry initialization failed:', error);\n }\n }\n private animateReviewCards() {\n const items = this.wrapper.querySelectorAll('salla-review-card:not(.animated)');\n Helper.animateItems(items);\n }\n\n private initiateInfiniteScroll() {\n if (!this.wrapper) {\n salla.logger.error('Wrapper is undefined. Cannot initiate infinite scroll.');\n return;\n }\n\n this.infiniteScroll = salla.infiniteScroll.initiate(this.wrapper, this.wrapper, {\n path: () => this.pagination?.links?.next || null,\n history: false,\n scrollThreshold: false,\n }, true);\n\n this.infiniteScroll?.on('request', () => {\n this.isLoading = true;\n });\n\n this.infiniteScroll?.on('load', response => {\n this.pagination = response.pagination;\n this.reviews = [...this.reviews, ...response.data]\n this.isLoading = false;\n // Update URL with the current page\n this.updateUrlParams({ page: response.pagination.current_page });\n\n });\n\n this.infiniteScroll?.on('error', (e) => {\n salla.logger.error('Error loading more reviews:', e);\n this.isLoading = false;\n });\n }\n\n\n componentDidRender() {\n setTimeout(() => {\n requestAnimationFrame(this.animateReviewCards.bind(this))\n }, 176)\n }\n\n async componentWillLoad() {\n try {\n await salla.onReady();\n\n // Initialize language variables\n this.langTitlesReviews = salla.lang.get(\"common.titles.reviews\");\n this.langSorting = salla.lang.get('pages.categories.sorting');\n this.placeholderText = salla.lang.choice(\"pages.rating.reviews\", 0)\n this.langLoadMore = salla.lang.get('common.elements.load_more');\n this.langSortByTopRating = salla.lang.get('pages.testimonials.sort_by_rating_desc');\n this.langSortByMostRecent = salla.lang.get('pages.testimonials.sort_by_date_desc');\n this.langSortByLeastRated = salla.lang.get('pages.testimonials.sort_by_rating_asc');\n this.langSortByLeastRecent = salla.lang.get('pages.testimonials.sort_by_date_asc');\n\n const urlParams = this.getUrlParams();\n const response = await this.fetchReviews(urlParams.sort);\n this.sort = urlParams.sort;\n this.reviews = response.data\n this.pagination = response.pagination;\n this.langRatingReviews = salla.lang.choice(\"pages.rating.reviews\", this.pagination?.total);\n\n\n\n } catch (error) {\n salla.logger.error('Error loading reviews:', error);\n }\n }\n\n private async handleSorting(e: Event) {\n const value = (e.target as HTMLSelectElement).value as typeof this.sort;\n this.sort = value;\n this.updateUrlParams({ sort: value, page: 1 }); // Reset to page 1 when changing sort\n const response = await this.fetchReviews(value, 1);\n this.reviews = response.data\n this.pagination = response.pagination;\n }\n\n async componentDidLoad() {\n await this.initializeMasonry();\n this.initiateInfiniteScroll();\n this.sort = this.getUrlParams().sort || \"latest\";\n this.updateUrlParams({ sort: this.sort, page: 1 });\n }\n\n disconnectedCallback() {\n if (this.infiniteScroll) {\n this.infiniteScroll.destroy();\n }\n }\n\n private renderSortingOptions() {\n const options = [\n { value: 'latest', label: this.langSortByMostRecent },\n { value: 'oldest', label: this.langSortByLeastRecent },\n { value: 'top_rating', label: this.langSortByTopRating },\n { value: 'bottom_rating', label: this.langSortByLeastRated },\n ];\n return options.map(option => (\n <option key={option.value} value={option.value} selected={option.value === this.sort}>\n {option.label}\n </option>\n ));\n }\n\n\n render() {\n return (\n <host>\n <div class=\"s-reviews-page-header-wrapper\">\n <h2 class=\"s-reviews-page-title\">{this.langTitlesReviews}<span class=\"s-reviews-page-count\">({this.langRatingReviews})</span></h2>\n <div class=\"s-reviews-page-filter-wrapper\">\n <label class=\"s-reviews-page-filter-label\"\n htmlFor=\"testimonials-filter\">{this.langSorting}</label>\n <select onChange={(e) => this.handleSorting(e)} disabled={!this.reviews.length} class=\"s-reviews-page-filter\">\n {this.renderSortingOptions()}\n </select>\n </div>\n </div>\n {this.reviews.length ? <main class=\"s-reviews-page-grid\" ref={el => {\n this.wrapper = el\n }}>\n {this.reviews.map(review => (\n <salla-review-card\n key={review.id}\n review={review}\n />\n ))}\n </main>\n : <div class=\"s-products-list-placeholder\">\n <span innerHTML={ShoppingBag} />\n <p>{this.placeholderText}</p>\n </div>\n }\n {this.pagination?.links?.next && this.reviews.length ? (\n\n <div class=\"s-reviews-page-load-more-container\">\n <salla-button class=\"s-reviews-page-load-more-btn\" loading={this.isLoading} onClick={() => this.infiniteScroll?.loadNextPage()}\n onKeyUp={() => this.infiniteScroll?.loadNextPage()}>\n {this.langLoadMore}\n </salla-button>\n </div>\n ) : null}\n </host>\n );\n }\n}"],"names":["require$$0","require$$1","require$$2"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
1
+ {"version":3,"file":"p-CjDeQhhE.system.js","sources":["../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/throttle.js","src/Helpers/masonry-layout.ts","src/components/salla-reviews-page/salla-reviews-page.css?tag=salla-reviews-page","src/components/salla-reviews-page/salla-reviews-page.tsx"],"sourcesContent":["var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","import throttle from \"lodash/throttle\";\n\nexport class MasonryLayout {\n\tprivate mutationObserver: MutationObserver;\n\tprivate resizeObserver: ResizeObserver;\n\n\tconstructor(private grid: Element) {\n\t\tthis.mutationObserver = new MutationObserver(this.onContainerMutation);\n\t\tthis.resizeObserver = new ResizeObserver(this.onChildrenResize);\n\n\t\tif (CSS.supports(\"grid-template-rows\", \"masonry\") === false) {\n\t\t\tthis.create();\n\t\t}\n\t}\n\n\tprivate create = () => {\n\t\tthis.mutationObserver.observe(this.grid, {\n\t\t\tchildList: true,\n\t\t});\n\n\t\tfor (const item of Array.from(this.grid.children)){\n\t\t\tthis.resizeObserver.observe(item);\n\t\t};\n\t};\n\n\tprivate onContainerMutation = (mutations: MutationRecord[]) => {\n\t\tconst removedNodes = mutations.flatMap((mutation) =>\n\t\t\tArray.from(mutation.removedNodes),\n\t\t);\n\t\tconst addedNodes = mutations.flatMap((mutation) =>\n\t\t\tArray.from(mutation.addedNodes),\n\t\t);\n\n\t\tfor (const node of removedNodes) {\n\t\t\tif (node instanceof Element) {\n\t\t\t\tthis.resizeObserver.unobserve(node);\n\t\t\t}\n\t\t}\n\n\t\tfor (const node of addedNodes) {\n\t\t\tif (node instanceof Element) {\n\t\t\t\tthis.resizeObserver.observe(node);\n\t\t\t}\n\t\t}\n\n\t\tif (removedNodes.length > 0 && addedNodes.length === 0) {\n\t\t\tthis.update();\n\t\t}\n\t};\n\n\tprivate onChildrenResize = (entries: ResizeObserverEntry[]) => {\n\t\tconst entriesToUpdate = entries.filter(\n\t\t\t(entry) => entry.target.parentElement !== null,\n\t\t);\n\n\t\tif (entriesToUpdate.length > 0) {\n\t\t\tthis.update();\n\t\t}\n\t};\n\n\tupdate = throttle(() => {\n\t\tconst computedStyle = window.getComputedStyle(this.grid);\n\n\t\tif (computedStyle.getPropertyValue(\"display\").includes(\"grid\") === false) {\n\t\t\tthis.clean();\n\t\t\treturn;\n\t\t}\n\n\t\tconst columns = parseGridTemplateColumns(this.grid);\n\n\t\tif (columns.length <= 1) {\n\t\t\tthis.clean();\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst rowGap =\n\t\t\tNumber.parseFloat(computedStyle.getPropertyValue(\"row-gap\").trim()) || 0;\n\n\t\tconst items = Array.from(this.grid.children) as HTMLElement[];\n\n\t\tfor (let columnIndex = 0; columnIndex < columns.length; columnIndex++) {\n\t\t\tconst firstItemInColumn = items[columnIndex];\n\n\t\t\tfirstItemInColumn?.style.removeProperty(\"margin-top\");\n\t\t}\n\n\t\tfor (let index = 0; index < items.length; index++) {\n\t\t\tconst prevItem = items[index - columns.length];\n\t\t\tconst nextItem = items[index];\n\n\t\t\tif (prevItem !== undefined && nextItem !== undefined) {\n\t\t\t\tconst prevBottom = prevItem.getBoundingClientRect().bottom;\n\n\t\t\t\tnextItem.style.removeProperty(\"margin-top\");\n\n\t\t\t\tconst nextTop = nextItem.getBoundingClientRect().top;\n\n\t\t\t\tif (nextTop - rowGap !== prevBottom) {\n\t\t\t\t\tconst margin =\n\t\t\t\t\t\tMath.round(\n\t\t\t\t\t\t\t(prevBottom - (nextTop - rowGap) + Number.EPSILON) * 100,\n\t\t\t\t\t\t) / 100;\n\n\t\t\t\t\tnextItem.style.setProperty(\"margin-top\", `${margin}px`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, 32);\n\n\tdestroy = () => {\n\t\tthis.resizeObserver.disconnect();\n\t\tthis.mutationObserver.disconnect();\n\t\tthis.clean();\n\t};\n\n\tprivate clean = () => {\n\t\tfor ( const item of (Array.from(this.grid.children) as HTMLElement[])){\n\t\t\titem.style.removeProperty(\"margin-top\");\n\t\t}\n\t};\n\n\t[Symbol.dispose]() {\n\t\tthis.destroy();\n\t}\n}\n\nfunction parseGridTemplateColumns(grid: Element) {\n\tconst computedStyle = window.getComputedStyle(grid);\n\n\tconst gridTemplateColumns = computedStyle.getPropertyValue(\n\t\t\"grid-template-columns\",\n\t);\n\n\treturn gridTemplateColumns\n\t\t.trim()\n\t\t.split(/\\s+(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/);\n}",":host {\n display: block;\n}","import { Component, State, Element, h } from '@stencil/core';\nimport type { Review } from '../salla-review-card/interfaces';\nimport type { Pagination } from '../../interfaces/common';\nimport ShoppingBag from '../../assets/svg/shopping-bag.svg';\nimport Helper from '../../Helpers/Helper';\nimport { MasonryLayout } from '../../Helpers/masonry-layout';\n\n\n@Component({\n tag: 'salla-reviews-page',\n styleUrl: 'salla-reviews-page.css',\n})\nexport class SallaReviewsPage {\n @Element() el: HTMLElement;\n @State() reviews: Partial<Review>[] = [];\n @State() isLoading = false;\n @State() pagination: Pagination = null;\n @State() sort: \"top_rating\" | \"bottom_rating\" | \"latest\" | \"oldest\" = \"latest\";\n\n // Language variables\n private langTitlesReviews: string;\n private langRatingReviews: string;\n private langSorting: string;\n private langSortByTopRating: string;\n private langSortByMostRecent: string;\n private langSortByLeastRecent: string;\n private langSortByLeastRated: string;\n\n private langLoadMore: string;\n private placeholderText: string;\n\n private infiniteScroll: any;\n private wrapper: HTMLElement;\n\n private getUrlParams() {\n const params = new URLSearchParams(window.location.search);\n return {\n sort: params.get('sort') as typeof this.sort || null,\n page: Number.parseInt(params.get('page')) || 1\n };\n }\n\n private updateUrlParams(params: { sort?: string, page?: number }) {\n const url = new URL(window.location.href);\n for (const [key, value] of Object.entries(params)) {\n if (value) {\n url.searchParams.set(key, value.toString());\n } else {\n url.searchParams.delete(key);\n }\n };\n window.history.replaceState({}, '', url.toString());\n }\n\n private fetchReviews(sort?: typeof this.sort, page?: number) {\n const urlParams = this.getUrlParams();\n return salla.api.request('reviews', {\n params: {\n type: 'products',\n format: 'lite',\n per_page: 8,\n page: page || urlParams.page || 1,\n sort: sort || urlParams.sort || null\n }\n });\n }\n\n\n private async initializeMasonry() {\n const grid = this.el.querySelector('.s-reviews-page-grid');\n if (!grid) return;\n\n try {\n new MasonryLayout(grid);\n salla.logger.info('Masonry initialized successfully');\n } catch (error) {\n salla.logger.error('Masonry initialization failed:', error);\n }\n }\n private animateReviewCards() {\n const items = this.wrapper.querySelectorAll('salla-review-card:not(.animated)');\n Helper.animateItems(items);\n }\n\n private initiateInfiniteScroll() {\n if (!this.wrapper) {\n salla.logger.error('Wrapper is undefined. Cannot initiate infinite scroll.');\n return;\n }\n\n this.infiniteScroll = salla.infiniteScroll.initiate(this.wrapper, this.wrapper, {\n path: () => this.pagination?.links?.next || null,\n history: false,\n scrollThreshold: false,\n }, true);\n\n this.infiniteScroll?.on('request', () => {\n this.isLoading = true;\n });\n\n this.infiniteScroll?.on('load', response => {\n this.pagination = response.pagination;\n this.reviews = [...this.reviews, ...response.data]\n this.isLoading = false;\n // Update URL with the current page\n this.updateUrlParams({ page: response.pagination.current_page });\n\n });\n\n this.infiniteScroll?.on('error', (e) => {\n salla.logger.error('Error loading more reviews:', e);\n this.isLoading = false;\n });\n }\n\n\n componentDidRender() {\n setTimeout(() => {\n requestAnimationFrame(this.animateReviewCards.bind(this))\n }, 176)\n }\n\n async componentWillLoad() {\n try {\n await salla.onReady();\n\n // Initialize language variables\n this.langTitlesReviews = salla.lang.get(\"common.titles.reviews\");\n this.langSorting = salla.lang.get('pages.categories.sorting');\n this.placeholderText = salla.lang.choice(\"pages.rating.reviews\", 0)\n this.langLoadMore = salla.lang.get('common.elements.load_more');\n this.langSortByTopRating = salla.lang.get('pages.testimonials.sort_by_rating_desc');\n this.langSortByMostRecent = salla.lang.get('pages.testimonials.sort_by_date_desc');\n this.langSortByLeastRated = salla.lang.get('pages.testimonials.sort_by_rating_asc');\n this.langSortByLeastRecent = salla.lang.get('pages.testimonials.sort_by_date_asc');\n\n const urlParams = this.getUrlParams();\n const response = await this.fetchReviews(urlParams.sort);\n this.sort = urlParams.sort;\n this.reviews = response.data\n this.pagination = response.pagination;\n this.langRatingReviews = salla.lang.choice(\"pages.rating.reviews\", this.pagination?.total);\n\n\n\n } catch (error) {\n salla.logger.error('Error loading reviews:', error);\n }\n }\n\n private async handleSorting(e: Event) {\n const value = (e.target as HTMLSelectElement).value as typeof this.sort;\n this.sort = value;\n this.updateUrlParams({ sort: value, page: 1 }); // Reset to page 1 when changing sort\n const response = await this.fetchReviews(value, 1);\n this.reviews = response.data\n this.pagination = response.pagination;\n }\n\n async componentDidLoad() {\n await this.initializeMasonry();\n this.initiateInfiniteScroll();\n this.sort = this.getUrlParams().sort || \"latest\";\n this.updateUrlParams({ sort: this.sort, page: 1 });\n }\n\n disconnectedCallback() {\n if (this.infiniteScroll) {\n this.infiniteScroll.destroy();\n }\n }\n\n private renderSortingOptions() {\n const options = [\n { value: 'latest', label: this.langSortByMostRecent },\n { value: 'oldest', label: this.langSortByLeastRecent },\n { value: 'top_rating', label: this.langSortByTopRating },\n { value: 'bottom_rating', label: this.langSortByLeastRated },\n ];\n return options.map(option => (\n <option key={option.value} value={option.value} selected={option.value === this.sort}>\n {option.label}\n </option>\n ));\n }\n\n\n render() {\n return (\n <host>\n <div class=\"s-reviews-page-header-wrapper\">\n <h2 class=\"s-reviews-page-title\">{this.langTitlesReviews}<span class=\"s-reviews-page-count\">({this.langRatingReviews})</span></h2>\n <div class=\"s-reviews-page-filter-wrapper\">\n <label class=\"s-reviews-page-filter-label\"\n htmlFor=\"testimonials-filter\">{this.langSorting}</label>\n <select onChange={(e) => this.handleSorting(e)} disabled={!this.reviews.length} class=\"s-reviews-page-filter\">\n {this.renderSortingOptions()}\n </select>\n </div>\n </div>\n {this.reviews.length ? <main class=\"s-reviews-page-grid\" ref={el => {\n this.wrapper = el\n }}>\n {this.reviews.map(review => (\n <salla-review-card\n key={review.id}\n review={review}\n />\n ))}\n </main>\n : <div class=\"s-products-list-placeholder\">\n <span innerHTML={ShoppingBag} />\n <p>{this.placeholderText}</p>\n </div>\n }\n {this.pagination?.links?.next && this.reviews.length ? (\n\n <div class=\"s-reviews-page-load-more-container\">\n <salla-button class=\"s-reviews-page-load-more-btn\" loading={this.isLoading} onClick={() => this.infiniteScroll?.loadNextPage()}\n onKeyUp={() => this.infiniteScroll?.loadNextPage()}>\n {this.langLoadMore}\n </salla-button>\n </div>\n ) : null}\n </host>\n );\n }\n}"],"names":["require$$0","require$$1","require$$2"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- System.register(["./p-CGIBoCqM.system.js"],(function(e){"use strict";var t;return{setters:[function(e){t=e.L}],execute:function(){function n(){if(!document.lazyLoadInstance){document.lazyLoadInstance=new t({use_native:true});document.lazyLoadBackgrounds=new t({elements_selector:".lazy[data-bg]:not(.loaded)"})}if(document.readyState!=="complete"){document.addEventListener("DOMContentLoaded",(function(){return document.lazyLoadInstance.update()}));document.addEventListener("DOMContentLoaded",(function(){return document.lazyLoadBackgrounds.update()}))}salla.infiniteScroll.event.onAppend((function(){document.lazyLoadInstance.update();document.lazyLoadBackgrounds.update()}))}var o=e("g",n)}}}));
5
- //# sourceMappingURL=p-DGFW85sK.system.js.map
4
+ System.register(["./p-QUCORK4D.system.js"],(function(e){"use strict";var t;return{setters:[function(e){t=e.L}],execute:function(){function n(){if(!document.lazyLoadInstance){document.lazyLoadInstance=new t({use_native:true});document.lazyLoadBackgrounds=new t({elements_selector:".lazy[data-bg]:not(.loaded)"})}if(document.readyState!=="complete"){document.addEventListener("DOMContentLoaded",(function(){return document.lazyLoadInstance.update()}));document.addEventListener("DOMContentLoaded",(function(){return document.lazyLoadBackgrounds.update()}))}salla.infiniteScroll.event.onAppend((function(){document.lazyLoadInstance.update();document.lazyLoadBackgrounds.update()}))}var o=e("g",n)}}}));
5
+ //# sourceMappingURL=p-CjulTfsF.system.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"p-DGFW85sK.system.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":";;;;;;;;;;;;YAGc,wBAAA,IAAA;;YAEZ,IAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YAC9B,QAAA,QAAQ,CAAC,gBAAgB,GAAG,IAAI,QAAQ,CAAC;wBACvC,UAAU,EAAE,IAAI;;;;YAIjB,SAAA,CAAC;YACF,QAAA,QAAQ,CAAC,mBAAmB,GAAG,IAAI,QAAQ,CAAC;YACxC,YAAA,iBAAiB,EAAE,6BAA6B;YACnD,SAAA,CAAC;;;;;YAKJ,IAAA,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;YACtC,QAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;YACvF,QAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;;;;gBAK5F,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAK;YAC/B,QAAA,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAClC,QAAA,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE;YACzC,KAAC,CACJ;YACL;;AC9BY,kBAAC,aAAa,gBAAG;;;;;;;;"}
1
+ {"version":3,"file":"p-CjulTfsF.system.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":";;;;;;;;;;;;YAGc,wBAAA,IAAA;;YAEZ,IAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YAC9B,QAAA,QAAQ,CAAC,gBAAgB,GAAG,IAAI,QAAQ,CAAC;wBACvC,UAAU,EAAE,IAAI;;;;YAIjB,SAAA,CAAC;YACF,QAAA,QAAQ,CAAC,mBAAmB,GAAG,IAAI,QAAQ,CAAC;YACxC,YAAA,iBAAiB,EAAE,6BAA6B;YACnD,SAAA,CAAC;;;;;YAKJ,IAAA,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;YACtC,QAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;YACvF,QAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;;;;gBAK5F,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAK;YAC/B,QAAA,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAClC,QAAA,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE;YACzC,KAAC,CACJ;YACL;;AC9BY,kBAAC,aAAa,gBAAG;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-KwuCFr9s.system.js","sources":["src/components/salla-filters/salla-filters.scss?tag=salla-filters","src/components/salla-filters/salla-filters.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.s-rating-stars-small {\n line-height: 12px;\n}\n.s-filters-radio{\n background-image: none !important;\n}","import { Component, Element, h, Event, EventEmitter, Host, Method, Prop, State } from '@stencil/core';\nimport { Filter, FilterOptionTypes } from \"./interfaces\";\nimport Helper from '../../Helpers/Helper';\n@Component({\n tag: 'salla-filters',\n styleUrl: 'salla-filters.scss',\n})\nexport class SallaFilters {\n\n constructor() {\n salla.event.on('filters::hidden', () => this.host.style.display = 'none');\n\n salla.lang.onLoaded(() => {\n this.apply = salla.lang.get('pages.checkout.apply');\n this.reset = salla.lang.get('pages.categories.filters_reset');\n });\n\n salla.event.on('filters::fetched', ({ filters }) => {\n this.host.style.display = '';\n let freshFilterData: any = {};\n this.filters = filters\n .map((filter: Filter) => {\n filter.label = {\n category_id: salla.lang.get('common.titles.categories'),\n brand_id: salla.lang.get('common.titles.brands'),\n rating: salla.lang.get('pages.categories.filter_rating'),\n price: salla.lang.get('pages.categories.filter_price'),\n }[filter.key] || filter.label;\n // filter.type = FilterOptionTypes.VALUES;\n if (filter.key == 'rating') {\n filter.type = FilterOptionTypes.VALUES;\n //@ts-ignore\n let { max, min } = filter.values;\n //@ts-ignore\n filter.values = [5, 4, 3, 2, 1].filter(stars => stars >= min || stars <= max)\n }\n if (this.filtersData.variants && filter.type == FilterOptionTypes.VARIANTS) {\n freshFilterData.variants = this.filtersData.variants;\n }\n if (this.filtersData[filter.key] && filter.type !== FilterOptionTypes.VARIANTS) {\n freshFilterData[filter.key] = this.filtersData[filter.key];\n }\n let searchParams = new URLSearchParams(window.location.search);\n let hasFilters = false;\n for (let key of searchParams.keys()) {\n if (key.includes('filters')) {\n hasFilters = true;\n break; // No need to continue checking once a match is found\n }\n }\n if (salla.config.get('page.slug') == \"product.index\" && Object.keys(freshFilterData).length == 0 && !hasFilters) {\n // Append the current category to the url if there are no pre-selected filters\n let currentUrl = window.location.href;\n let filterValue = salla.config.get('page.id');\n let separator = currentUrl.indexOf('?') !== -1 ? '&' : '?';\n let newUrl = currentUrl + separator + 'filters[category_id]=' + filterValue;\n freshFilterData.category_id = filterValue;\n window.history.pushState({ path: newUrl }, '', newUrl);\n }\n return filter;\n });\n this.filtersData = freshFilterData;\n this.host.childNodes.forEach(async (widget: HTMLSallaFiltersWidgetElement) => widget.setWidgetHeight && await widget.setWidgetHeight())\n });\n }\n\n async componentWillLoad() {\n try {\n const searchParams = new URLSearchParams(window.location.search);\n this.filtersData = await Helper.extractFiltersFromUrl(searchParams);\n } catch (e) {\n console.warn('failed to get filters from URL', e.message);\n }\n }\n\n\n @Element() host: HTMLElement;\n\n /**\n * Array of filter options\n */\n @Prop({ reflect: true, mutable: true }) filters?: Filter[];\n\n private isReady = false;//to avoid triggering the changed event\n\n @State() isSidebarOpen: boolean;\n @State() filtersData: object | any = {}\n @State() apply: string;\n @State() reset: string;\n\n /**\n * Custom event fired when the selected filters are changed.\n */\n @Event() changed: EventEmitter;\n\n /**\n * Method to get filter data.\n */\n @Method()\n async getFilters() {\n return this.filtersData;\n }\n\n /**\n * Apply filter action.\n */\n @Method()\n async applyFilters() {\n if (!this.isReady) {\n return;\n }\n let hasFilters = Object.keys(this.filtersData).length > 0;\n setTimeout(() => {\n if (hasFilters) {\n let url = new URL(window.location.href);\n for (const [key] of url.searchParams.entries()) {\n if (key.startsWith(\"filters\")) {\n url.searchParams.delete(key);\n }\n }\n let encodedFilterValues = this.encodeFilters(this.filtersData)\n let sanitizedFilterValues = url.search.split(\"&\").filter(item => !item.includes('filters')).join(\"&\")\n if (sanitizedFilterValues) {\n url.search = url.search.split(\"&filters\")[0] + \"&\" + encodedFilterValues\n } else {\n url.search = `?${encodedFilterValues}`\n }\n window.history.pushState({}, '', url.href);\n }\n else {\n let url = new URL(window.location.href);\n url.searchParams?.delete('filters');\n window.history.pushState({}, '', url.toString());\n }\n salla.event.emit('salla-filters::changed', this.filtersData);\n this.changed.emit(this.filtersData);\n }, 300);\n }\n\n\n private encodeFilters(filters, parentKey = 'filters') {\n const encodedFilters = [];\n\n for (const key in filters) {\n if (Object.prototype.hasOwnProperty.call(filters, key)) {\n const value = filters[key];\n\n const fullKey = parentKey ? `${parentKey}[${key}]` : key;\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n encodedFilters.push(`${fullKey}[${i}]=${value[i]}`)\n }\n }\n else if (typeof value === 'object' && value !== null) {\n encodedFilters.push(this.encodeFilters(value, fullKey));\n } else {\n // const encodedKey = encodeURIComponent(fullKey);\n // const encodedValue = encodeURIComponent(value);\n let result = `${fullKey}=${value}`\n encodedFilters.push(result);\n }\n }\n }\n return encodedFilters.join('&');\n };\n\n /**\n * Reset selected filters.\n */\n @Method()\n async resetFilters() {\n this.removeFiltersQueryParams()\n this.filtersData = {};\n this.host.childNodes.forEach((widget: HTMLSallaFiltersWidgetElement) => widget.reset && widget.reset())\n salla.event.emit('salla-filters::reset');\n return this.applyFilters();\n }\n\n private removeFiltersQueryParams() {\n const searchParams = new URLSearchParams(window.location.search);\n\n const newUrl = Array.from(searchParams.keys())\n .filter(key => !key.startsWith('filters['))\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(searchParams.get(key))}`)\n .join('&');\n\n const finalUrl = newUrl ? `${window.location.pathname}?${newUrl}` : window.location.pathname;\n window.history.pushState({}, '', finalUrl);\n }\n\n /**\n * @param {{target:HTMLInputElement}} event\n * @param option\n * @param value\n * @private\n */\n private handleOptionChange(event, option: Filter, value) {\n if (option.type === FilterOptionTypes.RANGE) {\n this.filtersData[option.key] = value;\n\n }\n let isChecked = event.target.checked;\n\n if (option.type === FilterOptionTypes.VARIANTS) {\n this.filtersData.variants = this.filtersData.variants || {};\n isChecked && (this.filtersData.variants[option.key] = value);\n isChecked || (delete this.filtersData.variants[option.key]);\n }\n\n else if (event.target.type == \"radio\") {\n isChecked && (this.filtersData[option.key] = value);\n isChecked || (delete this.filtersData[option.key]);\n }\n\n //it's checkbox\n // add if condition to avoid error when the filter is not existed in the filtersData\n else if (event.target.type == \"checkbox\") {\n this.filtersData[option.key] = this.filtersData[option.key] || [];\n if (isChecked) {\n this.filtersData[option.key].push(value);\n\n }\n this.filtersData[option.key] = this.filtersData[option.key].filter(val => val != value);\n }\n this.applyFilters();\n }\n\n\n\n render() {\n return <Host>\n {this.filters?.map(option => <salla-filters-widget\n option={option}\n filtersData={this.filtersData}\n onChanged={({ detail: { event, option, value } }) => {\n this.handleOptionChange(event, option, value)\n }} />)}\n\n {this.filters?.length ? <div class=\"s-filters-footer\">\n {/* <salla-button color='primary' onClick={() => this.applyFilters()}>{this.apply}</salla-button> */}\n <salla-button color='gray' fill='outline' onClick={() => this.resetFilters()}>{this.reset}</salla-button>\n </div> : ''}\n </Host>;\n }\n\n componentDidLoad() {\n this.isReady = true;\n }\n}\n\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-D-e59yUg.system.js","sources":["src/components/salla-filters/salla-filters.scss?tag=salla-filters","src/components/salla-filters/salla-filters.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.s-rating-stars-small {\n line-height: 12px;\n}\n.s-filters-radio{\n background-image: none !important;\n}","import { Component, Element, h, Event, EventEmitter, Host, Method, Prop, State } from '@stencil/core';\nimport { Filter, FilterOptionTypes } from \"./interfaces\";\nimport Helper from '../../Helpers/Helper';\n@Component({\n tag: 'salla-filters',\n styleUrl: 'salla-filters.scss',\n})\nexport class SallaFilters {\n\n constructor() {\n salla.event.on('filters::hidden', () => this.host.style.display = 'none');\n\n salla.lang.onLoaded(() => {\n this.apply = salla.lang.get('pages.checkout.apply');\n this.reset = salla.lang.get('pages.categories.filters_reset');\n });\n\n salla.event.on('filters::fetched', ({ filters }) => {\n this.host.style.display = '';\n let freshFilterData: any = {};\n this.filters = filters\n .map((filter: Filter) => {\n filter.label = {\n category_id: salla.lang.get('common.titles.categories'),\n brand_id: salla.lang.get('common.titles.brands'),\n rating: salla.lang.get('pages.categories.filter_rating'),\n price: salla.lang.get('pages.categories.filter_price'),\n }[filter.key] || filter.label;\n // filter.type = FilterOptionTypes.VALUES;\n if (filter.key == 'rating') {\n filter.type = FilterOptionTypes.VALUES;\n //@ts-ignore\n let { max, min } = filter.values;\n //@ts-ignore\n filter.values = [5, 4, 3, 2, 1].filter(stars => stars >= min || stars <= max)\n }\n if (this.filtersData.variants && filter.type == FilterOptionTypes.VARIANTS) {\n freshFilterData.variants = this.filtersData.variants;\n }\n if (this.filtersData[filter.key] && filter.type !== FilterOptionTypes.VARIANTS) {\n freshFilterData[filter.key] = this.filtersData[filter.key];\n }\n let searchParams = new URLSearchParams(window.location.search);\n let hasFilters = false;\n for (let key of searchParams.keys()) {\n if (key.includes('filters')) {\n hasFilters = true;\n break; // No need to continue checking once a match is found\n }\n }\n if (salla.config.get('page.slug') == \"product.index\" && Object.keys(freshFilterData).length == 0 && !hasFilters) {\n // Append the current category to the url if there are no pre-selected filters\n let currentUrl = window.location.href;\n let filterValue = salla.config.get('page.id');\n let separator = currentUrl.indexOf('?') !== -1 ? '&' : '?';\n let newUrl = currentUrl + separator + 'filters[category_id]=' + filterValue;\n freshFilterData.category_id = filterValue;\n window.history.pushState({ path: newUrl }, '', newUrl);\n }\n return filter;\n });\n this.filtersData = freshFilterData;\n this.host.childNodes.forEach(async (widget: HTMLSallaFiltersWidgetElement) => widget.setWidgetHeight && await widget.setWidgetHeight())\n });\n }\n\n async componentWillLoad() {\n try {\n const searchParams = new URLSearchParams(window.location.search);\n this.filtersData = await Helper.extractFiltersFromUrl(searchParams);\n } catch (e) {\n console.warn('failed to get filters from URL', e.message);\n }\n }\n\n\n @Element() host: HTMLElement;\n\n /**\n * Array of filter options\n */\n @Prop({ reflect: true, mutable: true }) filters?: Filter[];\n\n private isReady = false;//to avoid triggering the changed event\n\n @State() isSidebarOpen: boolean;\n @State() filtersData: object | any = {}\n @State() apply: string;\n @State() reset: string;\n\n /**\n * Custom event fired when the selected filters are changed.\n */\n @Event() changed: EventEmitter;\n\n /**\n * Method to get filter data.\n */\n @Method()\n async getFilters() {\n return this.filtersData;\n }\n\n /**\n * Apply filter action.\n */\n @Method()\n async applyFilters() {\n if (!this.isReady) {\n return;\n }\n let hasFilters = Object.keys(this.filtersData).length > 0;\n setTimeout(() => {\n if (hasFilters) {\n let url = new URL(window.location.href);\n for (const [key] of url.searchParams.entries()) {\n if (key.startsWith(\"filters\")) {\n url.searchParams.delete(key);\n }\n }\n let encodedFilterValues = this.encodeFilters(this.filtersData)\n let sanitizedFilterValues = url.search.split(\"&\").filter(item => !item.includes('filters')).join(\"&\")\n if (sanitizedFilterValues) {\n url.search = url.search.split(\"&filters\")[0] + \"&\" + encodedFilterValues\n } else {\n url.search = `?${encodedFilterValues}`\n }\n window.history.pushState({}, '', url.href);\n }\n else {\n let url = new URL(window.location.href);\n url.searchParams?.delete('filters');\n window.history.pushState({}, '', url.toString());\n }\n salla.event.emit('salla-filters::changed', this.filtersData);\n this.changed.emit(this.filtersData);\n }, 300);\n }\n\n\n private encodeFilters(filters, parentKey = 'filters') {\n const encodedFilters = [];\n\n for (const key in filters) {\n if (Object.prototype.hasOwnProperty.call(filters, key)) {\n const value = filters[key];\n\n const fullKey = parentKey ? `${parentKey}[${key}]` : key;\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n encodedFilters.push(`${fullKey}[${i}]=${value[i]}`)\n }\n }\n else if (typeof value === 'object' && value !== null) {\n encodedFilters.push(this.encodeFilters(value, fullKey));\n } else {\n // const encodedKey = encodeURIComponent(fullKey);\n // const encodedValue = encodeURIComponent(value);\n let result = `${fullKey}=${value}`\n encodedFilters.push(result);\n }\n }\n }\n return encodedFilters.join('&');\n };\n\n /**\n * Reset selected filters.\n */\n @Method()\n async resetFilters() {\n this.removeFiltersQueryParams()\n this.filtersData = {};\n this.host.childNodes.forEach((widget: HTMLSallaFiltersWidgetElement) => widget.reset && widget.reset())\n salla.event.emit('salla-filters::reset');\n return this.applyFilters();\n }\n\n private removeFiltersQueryParams() {\n const searchParams = new URLSearchParams(window.location.search);\n\n const newUrl = Array.from(searchParams.keys())\n .filter(key => !key.startsWith('filters['))\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(searchParams.get(key))}`)\n .join('&');\n\n const finalUrl = newUrl ? `${window.location.pathname}?${newUrl}` : window.location.pathname;\n window.history.pushState({}, '', finalUrl);\n }\n\n /**\n * @param {{target:HTMLInputElement}} event\n * @param option\n * @param value\n * @private\n */\n private handleOptionChange(event, option: Filter, value) {\n if (option.type === FilterOptionTypes.RANGE) {\n this.filtersData[option.key] = value;\n\n }\n let isChecked = event.target.checked;\n\n if (option.type === FilterOptionTypes.VARIANTS) {\n this.filtersData.variants = this.filtersData.variants || {};\n isChecked && (this.filtersData.variants[option.key] = value);\n isChecked || (delete this.filtersData.variants[option.key]);\n }\n\n else if (event.target.type == \"radio\") {\n isChecked && (this.filtersData[option.key] = value);\n isChecked || (delete this.filtersData[option.key]);\n }\n\n //it's checkbox\n // add if condition to avoid error when the filter is not existed in the filtersData\n else if (event.target.type == \"checkbox\") {\n this.filtersData[option.key] = this.filtersData[option.key] || [];\n if (isChecked) {\n this.filtersData[option.key].push(value);\n\n }\n this.filtersData[option.key] = this.filtersData[option.key].filter(val => val != value);\n }\n this.applyFilters();\n }\n\n\n\n render() {\n return <Host>\n {this.filters?.map(option => <salla-filters-widget\n option={option}\n filtersData={this.filtersData}\n onChanged={({ detail: { event, option, value } }) => {\n this.handleOptionChange(event, option, value)\n }} />)}\n\n {this.filters?.length ? <div class=\"s-filters-footer\">\n {/* <salla-button color='primary' onClick={() => this.applyFilters()}>{this.apply}</salla-button> */}\n <salla-button color='gray' fill='outline' onClick={() => this.resetFilters()}>{this.reset}</salla-button>\n </div> : ''}\n </Host>;\n }\n\n componentDidLoad() {\n this.isReady = true;\n }\n}\n\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-zOLwLvZb.system.js","sources":["src/components/salla-contacts/salla-contacts.scss?tag=salla-contacts","src/components/salla-contacts/salla-contacts.tsx"],"sourcesContent":[".unicode {\n unicode-bidi: plaintext;\n}","import { Component, Host, h, Prop, State, Element } from '@stencil/core';\nimport mobile from '../../assets/svg/iphone.svg';\nimport whatsapp from '../../assets/svg/whatsapp2.svg';\nimport phone from '../../assets/svg/phone.svg';\nimport telegram from '../../assets/svg/paper-plane-o.svg';\nimport email from '../../assets/svg/mail.svg';\n/**\n * @slot contact - Replaces contact item, has replaceable props `{icon}`, `{value}`.\n */\n@Component({\n tag: 'salla-contacts',\n styleUrl: 'salla-contacts.scss',\n})\nexport class SallaContacts {\n constructor() {\n this.contactSlot = this.host.querySelector('[slot=\"contact\"]')?.innerHTML || `<a href={link} class=\"s-contacts-item\"><span class=\"s-contacts-icon\">{icon}</span>${!this.iconsOnly && \"<span class='unicode'>{value}</span>\"}</a>`;\n\n salla.onReady(() => {\n this.contacts = salla.config.get('store.contacts');\n });\n\n salla.lang.onLoaded(() => {\n this.contactsTitle = this.contactsTitle || salla.lang.get('blocks.footer.social');\n });\n }\n private readonly contactSlot: string;\n\n /**\n * Section title for social block of footer.\n */\n @Prop({mutable: true}) contactsTitle: string;\n\n /**\n * Flag to toggle title visibility.\n */\n @Prop() hideTitle: boolean;\n\n /**\n * Conditional flag to check whether the content is header or not.\n */\n @Prop() isHeader: boolean;\n\n /**\n * Flag to toggle list of contents whether vertical or horizontal.\n */\n @Prop() horizontal: boolean;\n\n /**\n * Flag condition to show icon only or icon with label\n */\n @Prop() iconsOnly: boolean;\n\n\n @Element() host: HTMLElement;\n @State() contacts: any = salla.config.get('store.contacts');\n @State() iconsList: any = { mobile, whatsapp, phone, telegram, email }\n private getContactsArray() {\n return Object.entries(this.contacts)\n .filter(([_key, value]) => value !== '')\n .map(([type, value]) => ({ type, value }));\n }\n\n private getContactLink(type) {\n const contactValue = this.contacts[type];\n switch (type) {\n case 'phone':\n case 'mobile':\n return `tel:${contactValue}`;\n case 'whatsapp':\n return salla.url.get('whatsapp/send');\n case 'email':\n return `mailto:${contactValue}`;\n case 'telegram':\n // Check if the contact is already a full URL\n return contactValue.startsWith('https://t.me/') ? contactValue : `https://t.me/${contactValue}`;\n default:\n return contactValue;\n }\n }\n private getContactIcon(type) {\n return this.iconsList[type];\n }\n\n componentWillLoad() {\n return new Promise(resolve => salla.onReady(resolve));\n }\n\n\n render() {\n \n const contactsArray = this.getContactsArray();\n\n if(!contactsArray || contactsArray.length == 0){\n return\n }\n\n if (this.isHeader) {\n return (\n <Host class=\"s-contacts s-contacts-header\">\n {contactsArray.filter((contact) => contact.type == 'phone' || contact.type == 'email').map((contact, index) => (\n <a href={this.getContactLink(contact.type)} key={index} class=\"s-contacts-topnav-link\">\n {contact.type === 'email' ? (\n contact.value\n ) : (\n [\n <span>{this.contactsTitle}: </span>,\n <a class=\"unicode\" href={this.iconsList[contact.type]}>{contact.value}</a>\n ]\n )}\n </a>\n ))}\n </Host>\n );\n }\n\n return (\n <Host class=\"s-contacts\">\n {!this.hideTitle && <h3 class=\"s-contacts-title\">{this.contactsTitle}</h3>}\n <div class={{\n 's-contacts-list': true,\n 's-contacts-list-horizontal': this.horizontal,\n 's-contacts-list-vertical': !this.horizontal,\n 's-contacts-list-icons-only': this.iconsOnly\n }\n }>\n {contactsArray.map((contact, index) => (\n <div key={index} id=\"contact-slot\" innerHTML={this.contactSlot\n .replace(/\\{icon\\}/g, this.getContactIcon(contact.type))\n .replace(/\\{value\\}/g, contact.value.toString())\n .replace(/\\{link\\}/g, this.getContactLink(contact.type))}>\n </div>\n ))}\n </div>\n </Host>\n );\n }\n componentDidRender() {\n // this.host.querySelectorAll('#contact-slot').forEach(el => el.replaceWith(el.firstChild));\n this.host.querySelector('[slot=\"contact\"]')?.remove();\n }\n}\n\n"],"names":["email"],"mappings":"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"}
1
+ {"version":3,"file":"p-D1XybiwD.system.js","sources":["src/components/salla-contacts/salla-contacts.scss?tag=salla-contacts","src/components/salla-contacts/salla-contacts.tsx"],"sourcesContent":[".unicode {\n unicode-bidi: plaintext;\n}","import { Component, Host, h, Prop, State, Element } from '@stencil/core';\nimport mobile from '../../assets/svg/iphone.svg';\nimport whatsapp from '../../assets/svg/whatsapp2.svg';\nimport phone from '../../assets/svg/phone.svg';\nimport telegram from '../../assets/svg/paper-plane-o.svg';\nimport email from '../../assets/svg/mail.svg';\n/**\n * @slot contact - Replaces contact item, has replaceable props `{icon}`, `{value}`.\n */\n@Component({\n tag: 'salla-contacts',\n styleUrl: 'salla-contacts.scss',\n})\nexport class SallaContacts {\n constructor() {\n this.contactSlot = this.host.querySelector('[slot=\"contact\"]')?.innerHTML || `<a href={link} class=\"s-contacts-item\"><span class=\"s-contacts-icon\">{icon}</span>${!this.iconsOnly && \"<span class='unicode'>{value}</span>\"}</a>`;\n\n salla.onReady(() => {\n this.contacts = salla.config.get('store.contacts');\n });\n\n salla.lang.onLoaded(() => {\n this.contactsTitle = this.contactsTitle || salla.lang.get('blocks.footer.social');\n });\n }\n private readonly contactSlot: string;\n\n /**\n * Section title for social block of footer.\n */\n @Prop({mutable: true}) contactsTitle: string;\n\n /**\n * Flag to toggle title visibility.\n */\n @Prop() hideTitle: boolean;\n\n /**\n * Conditional flag to check whether the content is header or not.\n */\n @Prop() isHeader: boolean;\n\n /**\n * Flag to toggle list of contents whether vertical or horizontal.\n */\n @Prop() horizontal: boolean;\n\n /**\n * Flag condition to show icon only or icon with label\n */\n @Prop() iconsOnly: boolean;\n\n\n @Element() host: HTMLElement;\n @State() contacts: any = salla.config.get('store.contacts');\n @State() iconsList: any = { mobile, whatsapp, phone, telegram, email }\n private getContactsArray() {\n return Object.entries(this.contacts)\n .filter(([_key, value]) => value !== '')\n .map(([type, value]) => ({ type, value }));\n }\n\n private getContactLink(type) {\n const contactValue = this.contacts[type];\n switch (type) {\n case 'phone':\n case 'mobile':\n return `tel:${contactValue}`;\n case 'whatsapp':\n return salla.url.get('whatsapp/send');\n case 'email':\n return `mailto:${contactValue}`;\n case 'telegram':\n // Check if the contact is already a full URL\n return contactValue.startsWith('https://t.me/') ? contactValue : `https://t.me/${contactValue}`;\n default:\n return contactValue;\n }\n }\n private getContactIcon(type) {\n return this.iconsList[type];\n }\n\n componentWillLoad() {\n return new Promise(resolve => salla.onReady(resolve));\n }\n\n\n render() {\n \n const contactsArray = this.getContactsArray();\n\n if(!contactsArray || contactsArray.length == 0){\n return\n }\n\n if (this.isHeader) {\n return (\n <Host class=\"s-contacts s-contacts-header\">\n {contactsArray.filter((contact) => contact.type == 'phone' || contact.type == 'email').map((contact, index) => (\n <a href={this.getContactLink(contact.type)} key={index} class=\"s-contacts-topnav-link\">\n {contact.type === 'email' ? (\n contact.value\n ) : (\n [\n <span>{this.contactsTitle}: </span>,\n <a class=\"unicode\" href={this.iconsList[contact.type]}>{contact.value}</a>\n ]\n )}\n </a>\n ))}\n </Host>\n );\n }\n\n return (\n <Host class=\"s-contacts\">\n {!this.hideTitle && <h3 class=\"s-contacts-title\">{this.contactsTitle}</h3>}\n <div class={{\n 's-contacts-list': true,\n 's-contacts-list-horizontal': this.horizontal,\n 's-contacts-list-vertical': !this.horizontal,\n 's-contacts-list-icons-only': this.iconsOnly\n }\n }>\n {contactsArray.map((contact, index) => (\n <div key={index} id=\"contact-slot\" innerHTML={this.contactSlot\n .replace(/\\{icon\\}/g, this.getContactIcon(contact.type))\n .replace(/\\{value\\}/g, contact.value.toString())\n .replace(/\\{link\\}/g, this.getContactLink(contact.type))}>\n </div>\n ))}\n </div>\n </Host>\n );\n }\n componentDidRender() {\n // this.host.querySelectorAll('#contact-slot').forEach(el => el.replaceWith(el.firstChild));\n this.host.querySelector('[slot=\"contact\"]')?.remove();\n }\n}\n\n"],"names":["email"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAA,MAAM,gBAAgB,GAAG,iEAAiE;;YCa7E,aAAa,6BAAA,MAAA;MACxB,IAAA,WAAA,CAAA,OAAA,EAAA;;;cAwCS,IAAQ,CAAA,QAAA,GAAQ,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;MAClD,QAAA,IAAA,CAAA,SAAS,GAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,SAAEA,QAAK,EAAE;cAxCpE,IAAI,CAAC,WAAW,GAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,SAAS,KAAI,CAAA,kFAAA,EAAqF,CAAC,IAAI,CAAC,SAAS,IAAI,sCAAsC,MAAM;MAEjO,QAAA,KAAK,CAAC,OAAO,CAAC,MAAK;kBACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;MACpD,SAAC,CAAC;MAEF,QAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAK;MACvB,YAAA,IAAI,CAAC,aAAa,GAAI,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC;MACpF,SAAC,CAAC;MACH;UAgCO,gBAAgB,GAAA;MACtB,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ;MAChC,aAAA,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE;MACtC,aAAA,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;;MAGtC,IAAA,cAAc,CAAC,IAAI,EAAA;cACzB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;cACxC,QAAQ,IAAI;MACV,YAAA,KAAK,OAAO;MACZ,YAAA,KAAK,QAAQ;sBACX,OAAO,CAAA,IAAA,EAAO,YAAY,CAAA,CAAE;MAC9B,YAAA,KAAK,UAAU;sBACb,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC;MACvC,YAAA,KAAK,OAAO;sBACV,OAAO,CAAA,OAAA,EAAU,YAAY,CAAA,CAAE;MACjC,YAAA,KAAK,UAAU;;MAEb,gBAAA,OAAO,YAAY,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,YAAY,GAAG,CAAgB,aAAA,EAAA,YAAY,EAAE;MACjG,YAAA;MACE,gBAAA,OAAO,YAAY;;;MAGjB,IAAA,cAAc,CAAC,IAAI,EAAA;MACzB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;UAG7B,iBAAiB,GAAA;MACf,QAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;;UAIvD,MAAM,GAAA;MAEJ,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE;cAE7C,IAAG,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAC;kBAC7C;;MAGF,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,YAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,KAAK,EAAC,8BAA8B,EAAA,EACvC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,MACxG,SAAG,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAC,wBAAwB,EAAA,EACnF,OAAO,CAAC,IAAI,KAAK,OAAO,IACvB,OAAO,CAAC,KAAK,KAEb;sBACE,CAAA,CAAA,MAAA,EAAA,IAAA,EAAO,IAAI,CAAC,aAAa,EAAU,IAAA,CAAA;sBACnC,CAAA,CAAA,GAAA,EAAA,EAAG,KAAK,EAAC,SAAS,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAG,OAAO,CAAC,KAAK;MACtE,aAAA,CACF,CACC,CACL,CAAC,CACG;;MAIX,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,KAAK,EAAC,YAAY,EAAA,EACrB,CAAC,IAAI,CAAC,SAAS,IAAI,CAAI,CAAA,IAAA,EAAA,EAAA,KAAK,EAAC,kBAAkB,EAAE,EAAA,IAAI,CAAC,aAAa,CAAM,EAC1E,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE;MACV,gBAAA,iBAAiB,EAAE,IAAI;sBACvB,4BAA4B,EAAE,IAAI,CAAC,UAAU;MAC7C,gBAAA,0BAA0B,EAAE,CAAC,IAAI,CAAC,UAAU;sBAC5C,4BAA4B,EAAE,IAAI,CAAC;MACpC,aAAA,EAEE,EAAA,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,MAChC,WAAK,GAAG,EAAE,KAAK,EAAE,EAAE,EAAC,cAAc,EAAC,SAAS,EAAE,IAAI,CAAC;uBAChD,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;uBACtD,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;MAC9C,iBAAA,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EACpD,CAAA,CACP,CAAC,CACE,CACD;;UAGX,kBAAkB,GAAA;;;MAEhB,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,EAAE;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-BmODWtIK.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-D20InuUP.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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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p-D7xrGiR8.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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"}