@salla.sa/twilight-components 2.14.173 → 2.14.175

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 (276) hide show
  1. package/dist/cjs/{app-globals-B4u9muVH.js → app-globals-DabZzG17.js} +3 -3
  2. package/dist/cjs/{app-globals-B4u9muVH.js.map → app-globals-DabZzG17.js.map} +1 -1
  3. package/dist/cjs/{index-D18AHTW9.js → index-Dcq9GsQm.js} +4 -4
  4. package/dist/cjs/{index-D18AHTW9.js.map → index-Dcq9GsQm.js.map} +1 -1
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/salla-add-product-button_49.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-metadata.cjs.entry.js +1 -1
  19. package/dist/cjs/salla-notification-item.cjs.entry.js +1 -1
  20. package/dist/cjs/salla-notifications.cjs.entry.js +1 -1
  21. package/dist/cjs/salla-offer.cjs.entry.js +38 -2
  22. package/dist/cjs/salla-offer.cjs.entry.js.map +1 -1
  23. package/dist/cjs/salla-offer.entry.cjs.js.map +1 -1
  24. package/dist/cjs/salla-order-summary.cjs.entry.js +1 -1
  25. package/dist/cjs/salla-orders.cjs.entry.js +1 -1
  26. package/dist/cjs/salla-payments.cjs.entry.js +1 -1
  27. package/dist/cjs/salla-price-range.cjs.entry.js +1 -1
  28. package/dist/cjs/salla-product-options.cjs.entry.js +1 -1
  29. package/dist/cjs/salla-review-card.cjs.entry.js +1 -1
  30. package/dist/cjs/salla-reviews-page.cjs.entry.js +1 -1
  31. package/dist/cjs/salla-reviews.cjs.entry.js +1 -1
  32. package/dist/cjs/salla-social.cjs.entry.js +1 -1
  33. package/dist/cjs/salla-tooltip.cjs.entry.js +1 -1
  34. package/dist/cjs/salla-verify.cjs.entry.js +1 -1
  35. package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
  36. package/dist/cjs/twilight.cjs.js +2 -2
  37. package/dist/collection/components/salla-offer/interfaces.js +1 -0
  38. package/dist/collection/components/salla-offer/interfaces.js.map +1 -1
  39. package/dist/collection/components/salla-offer/salla-offer.js +36 -1
  40. package/dist/collection/components/salla-offer/salla-offer.js.map +1 -1
  41. package/dist/components/index.js +2 -2
  42. package/dist/components/index.js.map +1 -1
  43. package/dist/components/salla-offer.js +37 -1
  44. package/dist/components/salla-offer.js.map +1 -1
  45. package/dist/esm/{app-globals-CpgKX2o5.js → app-globals-Bl2bN9R6.js} +3 -3
  46. package/dist/esm/{app-globals-CpgKX2o5.js.map → app-globals-Bl2bN9R6.js.map} +1 -1
  47. package/dist/esm/{index-vIXrwQyG.js → index-8rC69jmJ.js} +4 -4
  48. package/dist/esm/{index-vIXrwQyG.js.map → index-8rC69jmJ.js.map} +1 -1
  49. package/dist/esm/loader.js +3 -3
  50. package/dist/esm/salla-add-product-button_49.entry.js +1 -1
  51. package/dist/esm/salla-advertisement.entry.js +1 -1
  52. package/dist/esm/salla-app-install-alert.entry.js +1 -1
  53. package/dist/esm/salla-apps-icons.entry.js +1 -1
  54. package/dist/esm/salla-booking-field_2.entry.js +1 -1
  55. package/dist/esm/salla-cart-item-offers.entry.js +1 -1
  56. package/dist/esm/salla-conditional-offer.entry.js +1 -1
  57. package/dist/esm/salla-contacts.entry.js +1 -1
  58. package/dist/esm/salla-filters-widget.entry.js +1 -1
  59. package/dist/esm/salla-filters.entry.js +1 -1
  60. package/dist/esm/salla-installment.entry.js +1 -1
  61. package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
  62. package/dist/esm/salla-metadata.entry.js +1 -1
  63. package/dist/esm/salla-notification-item.entry.js +1 -1
  64. package/dist/esm/salla-notifications.entry.js +1 -1
  65. package/dist/esm/salla-offer.entry.js +38 -2
  66. package/dist/esm/salla-offer.entry.js.map +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-CpgKX2o5.js → app-globals-Bl2bN9R6.js} +2 -2
  81. package/dist/esm-es5/{app-globals-CpgKX2o5.js.map → app-globals-Bl2bN9R6.js.map} +1 -1
  82. package/dist/esm-es5/{index-vIXrwQyG.js → index-8rC69jmJ.js} +3 -3
  83. package/dist/esm-es5/{index-vIXrwQyG.js.map → index-8rC69jmJ.js.map} +1 -1
  84. package/dist/esm-es5/loader.js +1 -1
  85. package/dist/esm-es5/salla-add-product-button_49.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-metadata.entry.js +1 -1
  98. package/dist/esm-es5/salla-notification-item.entry.js +1 -1
  99. package/dist/esm-es5/salla-notifications.entry.js +1 -1
  100. package/dist/esm-es5/salla-offer.entry.js +1 -1
  101. package/dist/esm-es5/salla-offer.entry.js.map +1 -1
  102. package/dist/esm-es5/salla-order-summary.entry.js +1 -1
  103. package/dist/esm-es5/salla-orders.entry.js +1 -1
  104. package/dist/esm-es5/salla-payments.entry.js +1 -1
  105. package/dist/esm-es5/salla-price-range.entry.js +1 -1
  106. package/dist/esm-es5/salla-product-options.entry.js +1 -1
  107. package/dist/esm-es5/salla-review-card.entry.js +1 -1
  108. package/dist/esm-es5/salla-reviews-page.entry.js +1 -1
  109. package/dist/esm-es5/salla-reviews.entry.js +1 -1
  110. package/dist/esm-es5/salla-social.entry.js +1 -1
  111. package/dist/esm-es5/salla-tooltip.entry.js +1 -1
  112. package/dist/esm-es5/salla-verify.entry.js +1 -1
  113. package/dist/esm-es5/salla-wallet.entry.js +1 -1
  114. package/dist/esm-es5/twilight.js +1 -1
  115. package/dist/twilight/{p-8df210ae.system.entry.js → p-06cd6130.system.entry.js} +2 -2
  116. package/dist/twilight/{p-adbabf18.system.entry.js → p-0887287d.system.entry.js} +2 -2
  117. package/dist/twilight/{p-2766b789.entry.js → p-092d7efd.entry.js} +2 -2
  118. package/dist/twilight/{p-4094dee3.entry.js → p-09fed654.entry.js} +2 -2
  119. package/dist/twilight/{p-79082d4a.system.entry.js → p-0b73cb63.system.entry.js} +3 -3
  120. package/dist/twilight/{p-1879e6cf.system.entry.js → p-16e84662.system.entry.js} +2 -2
  121. package/dist/twilight/{p-2b51b09f.entry.js → p-1b752cd8.entry.js} +2 -2
  122. package/dist/twilight/{p-f4fef823.entry.js → p-2131de3b.entry.js} +2 -2
  123. package/dist/twilight/{p-aa4ebbd6.system.entry.js → p-2790a652.system.entry.js} +2 -2
  124. package/dist/twilight/p-2f7ea720.entry.js +5 -0
  125. package/dist/twilight/p-2f7ea720.entry.js.map +1 -0
  126. package/dist/twilight/{p-c1e3690a.system.entry.js → p-365be155.system.entry.js} +2 -2
  127. package/dist/twilight/{p-5c44c799.entry.js → p-43b14796.entry.js} +2 -2
  128. package/dist/twilight/{p-ee44b568.entry.js → p-449a75fc.entry.js} +2 -2
  129. package/dist/twilight/{p-a2381b8c.entry.js → p-5262b657.entry.js} +2 -2
  130. package/dist/twilight/{p-5176ded1.entry.js → p-558ff7cf.entry.js} +2 -2
  131. package/dist/twilight/{p-8de7c1af.entry.js → p-579a3547.entry.js} +2 -2
  132. package/dist/twilight/{p-1be181ec.entry.js → p-58232db6.entry.js} +2 -2
  133. package/dist/twilight/{p-25332950.system.entry.js → p-58cc8639.system.entry.js} +2 -2
  134. package/dist/twilight/{p-b4a61fb0.system.entry.js → p-5ed06c97.system.entry.js} +2 -2
  135. package/dist/twilight/{p-42daf2ad.system.entry.js → p-5ef33dc1.system.entry.js} +2 -2
  136. package/dist/twilight/{p-6ac42075.system.entry.js → p-67e6ac2f.system.entry.js} +2 -2
  137. package/dist/twilight/{p-0ea5fa1e.entry.js → p-6fccf4e9.entry.js} +2 -2
  138. package/dist/twilight/{p-0e7a7efe.system.entry.js → p-71de36fc.system.entry.js} +3 -3
  139. package/dist/twilight/p-74052ff8.system.entry.js +5 -0
  140. package/dist/twilight/p-74052ff8.system.entry.js.map +1 -0
  141. package/dist/twilight/{p-602413db.system.entry.js → p-7f2502dc.system.entry.js} +2 -2
  142. package/dist/twilight/{p-b274aa85.entry.js → p-81367a3c.entry.js} +2 -2
  143. package/dist/twilight/{p-64de8699.system.entry.js → p-817e733f.system.entry.js} +2 -2
  144. package/dist/twilight/{p-d63ce584.system.entry.js → p-8b4281d6.system.entry.js} +2 -2
  145. package/dist/twilight/{p-36333899.entry.js → p-8ddccb3b.entry.js} +2 -2
  146. package/dist/twilight/{p-41094395.system.entry.js → p-8f7481ba.system.entry.js} +2 -2
  147. package/dist/twilight/{p-vIXrwQyG.js → p-8rC69jmJ.js} +3 -3
  148. package/dist/twilight/{p-vIXrwQyG.js.map → p-8rC69jmJ.js.map} +1 -1
  149. package/dist/twilight/{p-fe1623cd.entry.js → p-93266eb2.entry.js} +2 -2
  150. package/dist/twilight/{p-a6d39742.entry.js → p-96eac7b0.entry.js} +2 -2
  151. package/dist/twilight/{p-d5ec738f.system.entry.js → p-9769eccf.system.entry.js} +2 -2
  152. package/dist/twilight/{p-03b99e60.entry.js → p-9fff207a.entry.js} +2 -2
  153. package/dist/twilight/{p-CUYw8FbW.system.js.map → p-AIzmpzc2.system.js.map} +1 -1
  154. package/dist/twilight/{p-B2fMVnmh.system.js.map → p-B-DVbNz_.system.js.map} +1 -1
  155. package/dist/twilight/{p-Byo7y4wQ.system.js.map → p-BXGhJDi-.system.js.map} +1 -1
  156. package/dist/twilight/{p-CO9OfGOY.system.js.map → p-BY4PZA26.system.js.map} +1 -1
  157. package/dist/twilight/{p-YAMamMrs.system.js.map → p-BaNAPrjg.system.js.map} +1 -1
  158. package/dist/twilight/{p-BEq8Sqtq.system.js → p-BoX5GkMl.system.js} +3 -3
  159. package/dist/twilight/{p-BEq8Sqtq.system.js.map → p-BoX5GkMl.system.js.map} +1 -1
  160. package/dist/twilight/{p-CNrROw77.system.js.map → p-BrbV-4vA.system.js.map} +1 -1
  161. package/dist/twilight/{p-DG6OYmZX.system.js.map → p-C7uilJzh.system.js.map} +1 -1
  162. package/dist/twilight/{p-Mx6gViyN.system.js.map → p-CHkAv0yL.system.js.map} +1 -1
  163. package/dist/twilight/{p-Bx_KaJB9.system.js.map → p-CTJeMLn_.system.js.map} +1 -1
  164. package/dist/twilight/{p-C_eGHQNq.system.js.map → p-CWTnuTlC.system.js.map} +1 -1
  165. package/dist/twilight/{p-DrC4mxqn.system.js.map → p-D-XNsxDZ.system.js.map} +1 -1
  166. package/dist/twilight/{p-D9DvPoqM.system.js.map → p-D-phf_4a.system.js.map} +1 -1
  167. package/dist/twilight/{p-DuaxQ7I-.system.js.map → p-D87fuwNW.system.js.map} +1 -1
  168. package/dist/twilight/{p-BxWgbnnc.system.js.map → p-DEzhG-S_.system.js.map} +1 -1
  169. package/dist/twilight/{p-Cto5_1CP.system.js.map → p-DIdb3mfL.system.js.map} +1 -1
  170. package/dist/twilight/{p-XjNTWZKX.system.js.map → p-DJBeNlJO.system.js.map} +1 -1
  171. package/dist/twilight/{p-B49g8Hxl.system.js.map → p-DWhdZbVI.system.js.map} +1 -1
  172. package/dist/twilight/{p-DTpFOXv1.system.js.map → p-DY52_1BS.system.js.map} +1 -1
  173. package/dist/twilight/{p-Qm9V8NV1.system.js.map → p-DZom_81x.system.js.map} +1 -1
  174. package/dist/twilight/{p-oc09Y_5z.js → p-DdsU8AsW.js} +2 -2
  175. package/dist/twilight/{p-oc09Y_5z.js.map → p-DdsU8AsW.js.map} +1 -1
  176. package/dist/twilight/{p-DwbVnLHT.system.js → p-HDTWg7_s.system.js} +2 -2
  177. package/dist/twilight/{p-DwbVnLHT.system.js.map → p-HDTWg7_s.system.js.map} +1 -1
  178. package/dist/twilight/{p-gxcqWZJR.system.js.map → p-QF1kqTVP.system.js.map} +1 -1
  179. package/dist/twilight/{p-BOtB3Yon.system.js.map → p-Y6LeYhRT.system.js.map} +1 -1
  180. package/dist/twilight/{p-TA6q3xuJ.system.js.map → p-_Bs7lBkx.system.js.map} +1 -1
  181. package/dist/twilight/{p-863498b9.system.entry.js → p-a53f3564.system.entry.js} +2 -2
  182. package/dist/twilight/{p-3a59fb40.entry.js → p-aafcf0e1.entry.js} +2 -2
  183. package/dist/twilight/{p-6285dc2e.system.entry.js → p-ab06e10e.system.entry.js} +2 -2
  184. package/dist/twilight/{p-ba6b32ae.system.entry.js → p-abe21069.system.entry.js} +2 -2
  185. package/dist/twilight/{p-a478087b.entry.js → p-b1bc5c23.entry.js} +7 -7
  186. package/dist/twilight/{p-1e44a936.system.entry.js → p-b4a49e74.system.entry.js} +2 -2
  187. package/dist/twilight/{p-56d701ad.system.entry.js → p-b83938c9.system.entry.js} +2 -2
  188. package/dist/twilight/{p-8f2e8614.entry.js → p-c1d54266.entry.js} +2 -2
  189. package/dist/twilight/{p-55049215.system.entry.js → p-c45077c9.system.entry.js} +2 -2
  190. package/dist/twilight/{p-3ba2686f.system.entry.js → p-c5a92807.system.entry.js} +2 -2
  191. package/dist/twilight/{p-CV0g1vBc.system.js.map → p-cNswK5sp.system.js.map} +1 -1
  192. package/dist/twilight/{p-302939a8.entry.js → p-cd84d54a.entry.js} +2 -2
  193. package/dist/twilight/{p-767c9c3d.system.entry.js → p-d0b3e106.system.entry.js} +2 -2
  194. package/dist/twilight/{p-007049e6.entry.js → p-d1ea36f4.entry.js} +2 -2
  195. package/dist/twilight/{p-8ti0P_Zt.system.js.map → p-diqKohWS.system.js.map} +1 -1
  196. package/dist/twilight/{p-3604a575.entry.js → p-e2a7da4e.entry.js} +2 -2
  197. package/dist/twilight/{p-0c16813a.entry.js → p-e9f7ea25.entry.js} +2 -2
  198. package/dist/twilight/{p-920362e7.entry.js → p-ed8ee877.entry.js} +2 -2
  199. package/dist/twilight/{p-f2ea1f16.entry.js → p-f16b6269.entry.js} +2 -2
  200. package/dist/twilight/{p-1bab237b.system.entry.js → p-f6ecc091.system.entry.js} +2 -2
  201. package/dist/twilight/{p-13f25c42.system.entry.js → p-f86089a5.system.entry.js} +2 -2
  202. package/dist/twilight/{p-46d50afa.entry.js → p-f87ab3b3.entry.js} +2 -2
  203. package/dist/twilight/{p-2fe4a885.system.entry.js → p-fb2294a5.system.entry.js} +2 -2
  204. package/dist/twilight/{p-a398a6c5.entry.js → p-fbe16cca.entry.js} +2 -2
  205. package/dist/twilight/p-g7BpsiwE.system.js.map +1 -0
  206. package/dist/twilight/{p-GhXs-URJ.system.js.map → p-oMYbEDtH.system.js.map} +1 -1
  207. package/dist/twilight/{p-CxJN3exX.system.js → p-p4T4UdAZ.system.js} +2 -2
  208. package/dist/twilight/{p-CxJN3exX.system.js.map → p-p4T4UdAZ.system.js.map} +1 -1
  209. package/dist/twilight/{p-CzaPhG07.system.js.map → p-pq7Zum_e.system.js.map} +1 -1
  210. package/dist/twilight/{p-u1vZE9eM.system.js.map → p-tBHYVpoa.system.js.map} +1 -1
  211. package/dist/twilight/{p-A5hh4_gK.system.js.map → p-y6mDpD4e.system.js.map} +1 -1
  212. package/dist/twilight/salla-offer.entry.esm.js.map +1 -1
  213. package/dist/twilight/twilight.esm.js +1 -1
  214. package/dist/twilight/twilight.js +1 -1
  215. package/dist/types/components/salla-offer/interfaces.d.ts +13 -2
  216. package/dist/types/components/salla-offer/salla-offer.d.ts +1 -0
  217. package/package.json +5 -5
  218. package/dist/twilight/p-09fea270.system.entry.js +0 -5
  219. package/dist/twilight/p-09fea270.system.entry.js.map +0 -1
  220. package/dist/twilight/p-9527c7bb.entry.js +0 -5
  221. package/dist/twilight/p-9527c7bb.entry.js.map +0 -1
  222. package/dist/twilight/p-CjC0IO6M.system.js.map +0 -1
  223. /package/dist/twilight/{p-8df210ae.system.entry.js.map → p-06cd6130.system.entry.js.map} +0 -0
  224. /package/dist/twilight/{p-adbabf18.system.entry.js.map → p-0887287d.system.entry.js.map} +0 -0
  225. /package/dist/twilight/{p-2766b789.entry.js.map → p-092d7efd.entry.js.map} +0 -0
  226. /package/dist/twilight/{p-4094dee3.entry.js.map → p-09fed654.entry.js.map} +0 -0
  227. /package/dist/twilight/{p-79082d4a.system.entry.js.map → p-0b73cb63.system.entry.js.map} +0 -0
  228. /package/dist/twilight/{p-1879e6cf.system.entry.js.map → p-16e84662.system.entry.js.map} +0 -0
  229. /package/dist/twilight/{p-2b51b09f.entry.js.map → p-1b752cd8.entry.js.map} +0 -0
  230. /package/dist/twilight/{p-f4fef823.entry.js.map → p-2131de3b.entry.js.map} +0 -0
  231. /package/dist/twilight/{p-aa4ebbd6.system.entry.js.map → p-2790a652.system.entry.js.map} +0 -0
  232. /package/dist/twilight/{p-c1e3690a.system.entry.js.map → p-365be155.system.entry.js.map} +0 -0
  233. /package/dist/twilight/{p-5c44c799.entry.js.map → p-43b14796.entry.js.map} +0 -0
  234. /package/dist/twilight/{p-ee44b568.entry.js.map → p-449a75fc.entry.js.map} +0 -0
  235. /package/dist/twilight/{p-a2381b8c.entry.js.map → p-5262b657.entry.js.map} +0 -0
  236. /package/dist/twilight/{p-5176ded1.entry.js.map → p-558ff7cf.entry.js.map} +0 -0
  237. /package/dist/twilight/{p-8de7c1af.entry.js.map → p-579a3547.entry.js.map} +0 -0
  238. /package/dist/twilight/{p-1be181ec.entry.js.map → p-58232db6.entry.js.map} +0 -0
  239. /package/dist/twilight/{p-25332950.system.entry.js.map → p-58cc8639.system.entry.js.map} +0 -0
  240. /package/dist/twilight/{p-b4a61fb0.system.entry.js.map → p-5ed06c97.system.entry.js.map} +0 -0
  241. /package/dist/twilight/{p-42daf2ad.system.entry.js.map → p-5ef33dc1.system.entry.js.map} +0 -0
  242. /package/dist/twilight/{p-6ac42075.system.entry.js.map → p-67e6ac2f.system.entry.js.map} +0 -0
  243. /package/dist/twilight/{p-0ea5fa1e.entry.js.map → p-6fccf4e9.entry.js.map} +0 -0
  244. /package/dist/twilight/{p-0e7a7efe.system.entry.js.map → p-71de36fc.system.entry.js.map} +0 -0
  245. /package/dist/twilight/{p-602413db.system.entry.js.map → p-7f2502dc.system.entry.js.map} +0 -0
  246. /package/dist/twilight/{p-b274aa85.entry.js.map → p-81367a3c.entry.js.map} +0 -0
  247. /package/dist/twilight/{p-64de8699.system.entry.js.map → p-817e733f.system.entry.js.map} +0 -0
  248. /package/dist/twilight/{p-d63ce584.system.entry.js.map → p-8b4281d6.system.entry.js.map} +0 -0
  249. /package/dist/twilight/{p-36333899.entry.js.map → p-8ddccb3b.entry.js.map} +0 -0
  250. /package/dist/twilight/{p-41094395.system.entry.js.map → p-8f7481ba.system.entry.js.map} +0 -0
  251. /package/dist/twilight/{p-fe1623cd.entry.js.map → p-93266eb2.entry.js.map} +0 -0
  252. /package/dist/twilight/{p-a6d39742.entry.js.map → p-96eac7b0.entry.js.map} +0 -0
  253. /package/dist/twilight/{p-d5ec738f.system.entry.js.map → p-9769eccf.system.entry.js.map} +0 -0
  254. /package/dist/twilight/{p-03b99e60.entry.js.map → p-9fff207a.entry.js.map} +0 -0
  255. /package/dist/twilight/{p-863498b9.system.entry.js.map → p-a53f3564.system.entry.js.map} +0 -0
  256. /package/dist/twilight/{p-3a59fb40.entry.js.map → p-aafcf0e1.entry.js.map} +0 -0
  257. /package/dist/twilight/{p-6285dc2e.system.entry.js.map → p-ab06e10e.system.entry.js.map} +0 -0
  258. /package/dist/twilight/{p-ba6b32ae.system.entry.js.map → p-abe21069.system.entry.js.map} +0 -0
  259. /package/dist/twilight/{p-a478087b.entry.js.map → p-b1bc5c23.entry.js.map} +0 -0
  260. /package/dist/twilight/{p-1e44a936.system.entry.js.map → p-b4a49e74.system.entry.js.map} +0 -0
  261. /package/dist/twilight/{p-56d701ad.system.entry.js.map → p-b83938c9.system.entry.js.map} +0 -0
  262. /package/dist/twilight/{p-8f2e8614.entry.js.map → p-c1d54266.entry.js.map} +0 -0
  263. /package/dist/twilight/{p-55049215.system.entry.js.map → p-c45077c9.system.entry.js.map} +0 -0
  264. /package/dist/twilight/{p-3ba2686f.system.entry.js.map → p-c5a92807.system.entry.js.map} +0 -0
  265. /package/dist/twilight/{p-302939a8.entry.js.map → p-cd84d54a.entry.js.map} +0 -0
  266. /package/dist/twilight/{p-767c9c3d.system.entry.js.map → p-d0b3e106.system.entry.js.map} +0 -0
  267. /package/dist/twilight/{p-007049e6.entry.js.map → p-d1ea36f4.entry.js.map} +0 -0
  268. /package/dist/twilight/{p-3604a575.entry.js.map → p-e2a7da4e.entry.js.map} +0 -0
  269. /package/dist/twilight/{p-0c16813a.entry.js.map → p-e9f7ea25.entry.js.map} +0 -0
  270. /package/dist/twilight/{p-920362e7.entry.js.map → p-ed8ee877.entry.js.map} +0 -0
  271. /package/dist/twilight/{p-f2ea1f16.entry.js.map → p-f16b6269.entry.js.map} +0 -0
  272. /package/dist/twilight/{p-1bab237b.system.entry.js.map → p-f6ecc091.system.entry.js.map} +0 -0
  273. /package/dist/twilight/{p-13f25c42.system.entry.js.map → p-f86089a5.system.entry.js.map} +0 -0
  274. /package/dist/twilight/{p-46d50afa.entry.js.map → p-f87ab3b3.entry.js.map} +0 -0
  275. /package/dist/twilight/{p-2fe4a885.system.entry.js.map → p-fb2294a5.system.entry.js.map} +0 -0
  276. /package/dist/twilight/{p-a398a6c5.entry.js.map → p-fbe16cca.entry.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{p as e,b as a}from"./p-vIXrwQyG.js";export{s as setNonce}from"./p-vIXrwQyG.js";import{g as t}from"./p-oc09Y_5z.js";var l=()=>{const a=import.meta.url;const t={};if(a!==""){t.resourcesUrl=new URL(".",a).href}return e(t)};l().then((async e=>{await t();return a(JSON.parse('[["p-9527c7bb",[[0,"salla-offer",{"productCardComponent":[1,"product-card-component"],"offersList":[32],"userCurrency":[32],"isMultipleBank":[32],"title":[32],"currentPage":[32],"hasCustomComponent":[32],"isBankOffer":[32],"canRender":[32],"showOffer":[32],"offer_with_price_text":[32],"with_discount_text":[32],"product_discount_text":[32],"special_offer_text":[32],"multipleBankOfferTitleText":[32],"multipleBankOfferTitleDescription":[32],"buy_quantity_text":[32]}]]],["p-4094dee3",[[0,"salla-product-options",{"productId":[2,"product-id"],"options":[1],"hideOutLabel":[1,"hide-out-label"],"uniqueKey":[1,"unique-key"],"config":[1],"optionsData":[32],"outOfStockText":[32],"donationAmount":[32],"selectDonationAmount":[32],"selectAmount":[32],"isCustomDonation":[32],"selectedOptions":[32],"canDisabled":[32],"selectedSkus":[32],"selectedOutSkus":[32],"disableCardValue":[32],"availableDigitalCardValues":[32],"setOptionsData":[64],"getSelectedOptionsData":[64],"reportValidity":[64],"hasOutOfStockOption":[64],"getSelectedOptions":[64],"getOption":[64]}]]],["p-3604a575",[[0,"salla-filters",{"filters":[1040],"isSidebarOpen":[32],"filtersData":[32],"apply":[32],"reset":[32],"getFilters":[64],"applyFilters":[64],"resetFilters":[64]}]]],["p-a2381b8c",[[4,"salla-verify",{"display":[1],"type":[1025],"autoReload":[4,"auto-reload"],"supportWebAuth":[4,"support-web-auth"],"translationLoaded":[32],"title":[32],"resendAfter":[32],"hasError":[32],"errorMessage":[32],"isProfileVerify":[32],"getCode":[64],"open":[64]}]]],["p-8f2e8614",[[0,"salla-notifications",{"loadMoreText":[1,"load-more-text"],"itemPerPage":[2,"item-per-page"],"pagination":[32],"total":[32],"showPlaceholder":[32],"nextPage":[32],"no_notifications_trans":[32],"load_more_text_trans":[32]}]]],["p-2766b789",[[0,"salla-order-summary",{"orderId":[514,"order-id"],"codeCopied":[32],"noItemFound":[32],"order_items":[32]}]]],["p-a398a6c5",[[0,"salla-reviews",{"displayAllLink":[516,"display-all-link"],"source":[513],"sourceValue":[513,"source-value"],"limit":[514],"type":[1],"sort":[1],"hideCustomerInfo":[4,"hide-customer-info"],"reviews":[32],"isRTL":[32],"showReviews":[32],"testimonialText":[32],"displayAllLinkText":[32]}]]],["p-f4fef823",[[0,"salla-reviews-page",{"reviews":[32],"isLoading":[32],"pagination":[32],"sort":[32]}]]],["p-46d50afa",[[0,"salla-wallet",{"transactionsArray":[32],"balance":[32],"isLoading":[32],"nextPageUrl":[32]}]]],["p-fe1623cd",[[0,"salla-conditional-offer",{"offer":[32],"products":[32],"isLoading":[32],"canRender":[32]}]]],["p-a6d39742",[[0,"salla-orders",{"params":[16],"loadMoreText":[1,"load-more-text"],"orderNumberText":[32],"totalOrderText":[32],"orderDateText":[32],"orderStatusText":[32],"noOrderText":[32],"load_more_text_trans":[32],"languageCode":[32],"orders":[32],"pagination":[32],"hasInfiniteScroll":[32],"total":[32],"nextPage":[32],"showPlaceholder":[32]}]]],["p-5c44c799",[[0,"salla-advertisement",{"position":[32],"advertisements":[32],"advertIcon":[32],"currentSlug":[32]}]]],["p-03b99e60",[[0,"salla-app-install-alert",{"data":[32],"ctaLink":[32],"open":[32],"closing":[32]}]]],["p-b274aa85",[[0,"salla-apps-icons",{"hideTitle":[4,"hide-title"],"appsTitle":[1,"apps-title"],"vertical":[4],"apps":[32]}]]],["p-5176ded1",[[0,"salla-cart-item-offers",{"quantity":[2],"offers":[1],"itemId":[2,"item-id"],"productPrice":[2,"product-price"],"internalQuantity":[32],"internalOffers":[32],"internalProductPrice":[32],"showAll":[32],"freeLabel":[32],"receivedOffer":[32],"discountAmountLabel":[32],"showMoreOffers":[32]}]]],["p-3a59fb40",[[0,"salla-contacts",{"contactsTitle":[1025,"contacts-title"],"hideTitle":[4,"hide-title"],"isHeader":[4,"is-header"],"horizontal":[4],"iconsOnly":[4,"icons-only"],"contacts":[32],"iconsList":[32]}]]],["p-2b51b09f",[[0,"salla-installment",{"price":[1],"language":[1],"currency":[1],"country":[1],"tabbyIsActive":[32],"spotiiIsActive":[32],"tamaraIsActive":[32],"mispayActive":[32],"emkanIsActive":[32],"madfuActive":[32],"rajehiIsActive":[32],"installment_sheria_text":[32]}]]],["p-1be181ec",[[0,"salla-loyalty-prize-item",{"item":[16]}]]],["p-0ea5fa1e",[[0,"salla-metadata",{"entity":[1],"entityId":[8,"entity-id"],"specs":[32],"download":[32]}]]],["p-302939a8",[[0,"salla-payments",{"exclude":[1040]}]]],["p-36333899",[[0,"salla-social",{"links":[32],"iconsList":[32]}]]],["p-f2ea1f16",[[4,"salla-filters-widget",{"withLoadMore":[1028,"with-load-more"],"filtersData":[16,"filters-data"],"option":[16],"isOpen":[32],"isShowMore":[32],"showMoreLabel":[32],"showLessLabel":[32],"page":[32],"setWidgetHeight":[64],"reset":[64],"showMore":[64],"toggleWidget":[64]}]]],["p-007049e6",[[0,"salla-notification-item",{"notification":[16]}]]],["p-920362e7",[[0,"salla-review-card",{"review":[16],"currentSlide":[32],"purchasedCount":[32],"showPurchaseCount":[32]}]]],["p-8de7c1af",[[4,"salla-tooltip",{"text":[1],"targetId":[1,"target-id"],"show":[32]},[[9,"mouseover","handleMouseOver"],[9,"mouseout","handleMouseOut"]]]]],["p-a478087b",[[0,"salla-offer-modal",{"offer":[32],"offer_name":[32],"offer_message":[32],"hasError":[32],"errorMessage":[32],"productID":[32],"offer_type":[32],"translationLoaded":[32],"addToCartLabel":[32],"open":[64],"showOffer":[64]}],[4,"salla-gifting",{"productId":[2,"product-id"],"widgetTitle":[1,"widget-title"],"widgetSubtitle":[1,"widget-subtitle"],"physicalProducts":[4,"physical-products"],"vertical":[4],"sectionTitle":[32],"sectionSubtitle":[32],"sectionBtnText":[32],"giftDetails":[32],"selectImageForYourGift":[32],"selectImageOrUpload":[32],"selectGiftMessage":[32],"giftCustomText":[32],"textId":[32],"incorrectGiftText":[32],"nextStep":[32],"senderNameLabel":[32],"receiverNameFieldLabel":[32],"receiverMobileFieldLabel":[32],"receiverCountryFieldLabel":[32],"ksa":[32],"selectCity":[32],"selectCityInfo":[32],"receiverCityFieldLabel":[32],"receiverEmailFieldLabel":[32],"emailPlaceholder":[32],"sendLater":[32],"selectSendDateAndTime":[32],"canNotEditOrderAfterSelectDate":[32],"sendGift":[32],"donationRequired":[32],"currentStep":[32],"showCalendar":[32],"showGiftText":[32],"currentLang":[32],"parentClass":[32],"errors":[32],"gift":[32],"selectedGiftTextOption":[32],"showTextArea":[32],"selectedImage":[32],"uploadedImage":[32],"selectedText":[32],"senderName":[32],"errorMessage":[32],"hasError":[32],"quantity":[32],"deliveryDate":[32],"timeZone":[32],"receiverName":[32],"receiverMobile":[32],"receiverCountryCode":[32],"receiverEmail":[32],"hostId":[32],"receiverCity":[32],"open":[64],"close":[64],"goToStep2":[64]}],[4,"salla-loyalty",{"prizePoints":[1544,"prize-points"],"customerPoints":[1538,"customer-points"],"prizeTitle":[1537,"prize-title"],"allowEmail":[4,"allow-email"],"allowMobile":[4,"allow-mobile"],"requireEmail":[4,"require-email"],"guestMessage":[1025,"guest-message"],"loyaltyProgram":[32],"buttonLoading":[32],"selectedItem":[32],"askConfirmation":[32],"is_loggedin":[32],"hasError":[32],"errorMessage":[32],"translationLoaded":[32],"open":[64],"close":[64],"resetExchange":[64],"exchangeLoyaltyPoint":[64]}],[0,"salla-comments",{"itemId":[2,"item-id"],"loadMoreText":[1,"load-more-text"],"hideForm":[4,"hide-form"],"blockTitle":[1,"block-title"],"hideTitle":[4,"hide-title"],"type":[1],"showFormAvatar":[4,"show-form-avatar"],"hideBought":[4,"hide-bought"],"sort":[1],"testimonials":[4],"comments":[32],"pagination":[32],"total":[32],"showPlaceholder":[32],"nextPage":[32],"mostHelpfulLabel":[32],"noComments":[32],"comment_title":[32],"comment_name":[32],"placeholder_text":[32],"showRatingSummary":[32],"allowLikes":[32],"reload":[64]}],[4,"salla-product-size-guide",{"guides":[32],"productId":[32],"placeholder_title":[32],"placeholder_description":[32],"modal_title":[32],"hasError":[32],"open":[64],"close":[64]}],[0,"salla-rating-modal",{"orderId":[2,"order-id"],"order":[32],"hasError":[32],"showContactWidget":[32],"errorMessage":[32],"dragAndDropFilesLabel":[32],"contactSubjectLabel":[32],"editReviewLabel":[32],"allowedImagesTypesLabel":[32],"addImagesLabel":[32],"editImagesLabel":[32],"threeImagesMax":[32],"areYouSureLabel":[32],"confirmDeletionLabel":[32],"cancelLabel":[32],"confirmDeleteBtn":[32],"updatedSuccessfullyLabel":[32],"deletedSuccessfullyLabel":[32],"allowAttachImages":[32],"allowContactSupport":[32],"contactUsLabel":[32],"images":[32],"productImages":[32],"editItemImages":[32],"contact_body":[32],"editMode":[32],"defaultMode":[32],"deleteMode":[32],"shouldOpenDeleteModal":[32],"editType":[32],"editFeedbackId":[32],"deleteFeedbackId":[32],"editItem":[32],"open":[64],"close":[64]}],[4,"salla-scopes",{"selection":[1],"searchDisplayLimit":[2,"search-display-limit"],"translationLoaded":[32],"mode":[32],"current_scope":[32],"scopes":[32],"originalScopesList":[32],"selected_scope":[32],"isOpenedBefore":[32],"hasError":[32],"loading":[32],"close":[64],"open":[64],"handleSubmit":[64]}],[0,"salla-localization-modal",{"language":[1537],"currency":[1537],"translationLoaded":[32],"languages":[32],"currencies":[32],"hasError":[32],"errorMessage":[32],"open":[64],"close":[64],"submit":[64]}],[0,"salla-user-profile",{"customFields":[1,"custom-fields"],"minAge":[2,"min-age"],"userData":[32],"isEditable":[32],"userDefinedFields":[32],"disableAction":[32],"isLoading":[32],"first_name_trans":[32],"last_name_trans":[32],"birthday_trans":[32],"birthday_placeholder_trans":[32],"gender_trans":[32],"gender_placeholder_trans":[32],"male_trans":[32],"female_trans":[32],"email_trans":[32],"mobile_trans":[32],"save_btn_trans":[32],"drag_and_drop_trans":[32],"browse_trans":[32],"email_required_trans":[32],"invalid_email_trans":[32],"setCustomFields":[64]}],[0,"salla-bottom-alert",{"type":[513],"icon":[513],"message":[513],"actionUrl":[513,"action-url"],"actionLabel":[513,"action-label"],"storeId":[32],"template":[32],"loading":[32],"templateData":[32],"defaultMessage":[32],"defaultActionLabel":[32],"storeFeatures":[32],"storeDetails":[32],"storePrice":[32],"theDeveloper":[32],"templateInformation":[32],"buyTheTemplate":[32],"isRtl":[32]}],[0,"salla-quick-order",{"quickOrderTitle":[1025,"quick-order-title"],"subTitle":[1025,"sub-title"],"payButtonTitle":[1025,"pay-button-title"],"confirmPayButtonTitle":[1025,"confirm-pay-button-title"],"agreementText":[1025,"agreement-text"],"isEmailRequired":[1028,"is-email-required"],"productId":[1025,"product-id"],"thanksMessage":[1025,"thanks-message"],"quickOrderStyle":[1025,"quick-order-style"],"user":[32],"isAvailable":[32],"oneClick":[32],"expanded":[32],"isTermsRequired":[32],"countryCode":[32],"submitSucess":[32],"placeHolderEmail":[32],"emailOptional":[32],"agreementShowText":[32],"agreementModalHead":[32],"userNameLabel":[32],"termsChecked":[32]}],[0,"salla-user-settings",{"deactivateAccount":[32],"promotionalMsgs":[32],"hideMyName":[32],"hideMyNameDesc":[32],"deactivateDesc":[32],"promotionalMsgsDesc":[32],"sorryForLeavingText":[32],"warningText":[32],"keepAccount":[32],"buttonLoading":[32],"canHideName":[32],"isHiddenName":[32],"isNotifiable":[32]}],[0,"salla-search",{"inline":[4],"oval":[4],"height":[2],"maxWords":[2,"max-words"],"showAction":[4,"show-action"],"translationLoaded":[32],"results":[32],"loading":[32],"typing":[32],"debounce":[32],"search_term":[32]},[[0,"keydown","handleKeyDown"]],{"search_term":["handleSearch"]}],[0,"salla-login-modal",{"isEmailAllowed":[1028,"is-email-allowed"],"isMobileAllowed":[1028,"is-mobile-allowed"],"isEmailRequired":[1028,"is-email-required"],"supportWebAuth":[516,"support-web-auth"],"inline":[516],"storeId":[1032,"store-id"],"api":[1],"headers":[1025],"withoutReload":[1028,"without-reload"],"messages":[32],"isClosable":[32],"iframeLoaded":[32],"scrolling":[32],"direction":[32],"canRenderIframe":[32],"open":[64]}],[0,"salla-menu",{"source":[1],"sourceValue":[1,"source-value"],"topnav":[4],"useReactLink":[4,"use-react-link"],"limit":[2],"menus":[32]}],[4,"salla-social-share",{"url":[513],"urlName":[513,"url-name"],"platforms":[513],"opened":[32],"allPlatforms":[32],"platformIcons":[32],"convertedPlatforms":[32],"open":[64],"refresh":[64]}],[0,"salla-breadcrumb",{"breadcrumbs":[32]}],[4,"salla-cart-summary",{"showCartLabel":[4,"show-cart-label"],"cartSummaryCount":[32],"cartSummaryTotal":[32],"cartLabel":[32],"animateToCart":[64]}],[4,"salla-infinite-scroll",{"nextPage":[1,"next-page"],"autoload":[1028],"container":[1],"loadMoreText":[1,"load-more-text"],"item":[1],"loadMore":[32],"noMore":[32],"failedToLoad":[32]}],[0,"salla-maintenance-alert",{"title":[32],"message":[32],"buttonTitle":[32]}],[4,"salla-quantity-input",{"cartItemId":[8,"cart-item-id"],"quantity":[32],"fireChangeEvent":[32],"decrease":[64],"increase":[64],"setValue":[64]},null,{"quantity":["watchPropHandler"]}],[4,"salla-user-menu",{"inline":[516],"avatarOnly":[516,"avatar-only"],"showHeader":[516,"show-header"],"relativeDropdown":[516,"relative-dropdown"],"accountLoading":[32],"opened":[32],"notifications":[32],"orders":[32],"pending_orders":[32],"wishlist":[32],"profile":[32],"rating":[32],"wallet":[32],"logout":[32],"hello":[32],"first_name":[32],"last_name":[32],"avatar":[32],"is_loggedIn":[32],"badges":[32],"hasBadges":[32],"OrderUpdate":[32]}],[0,"salla-products-slider",{"blockTitle":[1,"block-title"],"subTitle":[1,"sub-title"],"sliderId":[1,"slider-id"],"displayAllUrl":[1,"display-all-url"],"autoplay":[1028],"source":[1537],"sourceValue":[1,"source-value"],"limit":[1026],"sliderConfig":[520,"slider-config"],"productCardComponent":[1,"product-card-component"],"includes":[1040],"productsData":[32],"isReady":[32],"sourceValueIsValid":[32],"hasCustomComponent":[32],"apiUrl":[32],"parsedSourceValue":[32]}],[4,"salla-map",{"name":[1],"required":[4],"readonly":[4],"searchable":[1028],"lat":[1026],"lng":[1026],"apiKey":[1025,"api-key"],"modalTitle":[1,"modal-title"],"zoom":[1026],"theme":[1025],"modalActivityTitle":[32],"confirmButtonTitle":[32],"locateButtonTitle":[32],"locateButtonEdit":[32],"searchPlaceholder":[32],"searchInputValue":[32],"formattedAddress":[32],"geolocationError":[32],"searchInput":[32],"mapInput":[32],"mapElement":[32],"selectedLat":[32],"selectedLng":[32],"open":[64]}],[0,"salla-reviews-summary",{"itemId":[2,"item-id"],"data":[32],"canRender":[32],"basedOnLabel":[32],"recommendedLabel":[32],"showRatingSummary":[32],"recommendationOnly":[32],"showRecommendation":[32]}],[0,"salla-comment-form",{"type":[1537],"showAvatar":[4,"show-avatar"],"itemId":[1544,"item-id"],"placeholder":[32],"submitText":[32],"canComment":[32]}],[4,"salla-color-picker",{"name":[1],"required":[4],"color":[1537],"format":[1],"showCancelButton":[4,"show-cancel-button"],"showTextField":[4,"show-text-field"],"enableAlpha":[4,"enable-alpha"],"widgetColor":[32],"setPickerOption":[64],"movePopUp":[64],"setColorValue":[64],"openPicker":[64],"closePicker":[64],"destroyPicker":[64]}],[0,"salla-products-list",{"source":[1537],"sourceValue":[1032,"source-value"],"limit":[1026],"sortBy":[1025,"sort-by"],"filtersResults":[1540,"filters-results"],"horizontalCards":[516,"horizontal-cards"],"rowCards":[516,"row-cards"],"autoload":[1028],"loadMoreText":[1,"load-more-text"],"productCardComponent":[1,"product-card-component"],"includes":[1040],"page":[32],"nextPage":[32],"hasInfiniteScroll":[32],"hasCustomComponent":[32],"sourceValueIsValid":[32],"placeholderText":[32],"endOfText":[32],"failedLoadMore":[32],"currentPage":[32],"currentCategoryIdFilter":[32],"isReady":[32],"showPlaceholder":[32],"switchToNormalBehavior":[32],"parsedFilters":[32],"filtersSnapshot":[32],"setFilters":[64],"reload":[64]}],[0,"salla-comment-item",{"comment":[16],"hideBought":[16,"hide-bought"],"has_bought_trans":[32],"rated_trans":[32],"waiting_approval_trans":[32],"has_order_trans":[32],"allowLikes":[32],"allowAttachImages":[32],"helpfulLabel":[32],"likesCount":[32],"likedComments":[32]}],[4,"salla-tab-content",{"name":[1],"isSelected":[32],"getChild":[64]}],[4,"salla-tab-header",{"name":[1],"activeClass":[1,"active-class"],"height":[8],"centered":[4],"isSelected":[32],"getChild":[64]}],[4,"salla-tabs",{"backgroundColor":[1,"background-color"],"vertical":[4]},[[0,"tabSelected","onSelectedTab"]]],[4,"salla-product-card",{"product":[1],"horizontal":[4],"shadowOnHover":[4,"shadow-on-hover"],"hideAddBtn":[4,"hide-add-btn"],"fullImage":[4,"full-image"],"minimal":[4],"isSpecial":[4,"is-special"],"showQuantity":[4,"show-quantity"],"productData":[32],"fitImageHeight":[32],"remained":[32],"outOfStock":[32],"donationAmount":[32],"startingPrice":[32],"addToCart":[32],"placeholder":[32]}],[0,"salla-datetime-picker",{"value":[1537],"required":[4],"name":[513],"placeholder":[1],"allowInput":[4,"allow-input"],"allowInvalidPreload":[4,"allow-invalid-preload"],"altFormat":[1,"alt-format"],"altInput":[4,"alt-input"],"altInputClass":[1,"alt-input-class"],"appendTo":[16,"append-to"],"ariaDateFormat":[1,"aria-date-format"],"autoFillDefaultTime":[4,"auto-fill-default-time"],"clickOpens":[4,"click-opens"],"closeOnSelect":[4,"close-on-select"],"conjunction":[1],"dateFormat":[1,"date-format"],"defaultDate":[8,"default-date"],"defaultHour":[2,"default-hour"],"defaultMinute":[2,"default-minute"],"defaultSeconds":[2,"default-seconds"],"disable":[16],"disableMobile":[4,"disable-mobile"],"enable":[16],"enableSeconds":[4,"enable-seconds"],"enableTime":[4,"enable-time"],"formatDate":[16,"format-date"],"hourIncrement":[2,"hour-increment"],"inline":[4],"locale":[1],"maxDate":[8,"max-date"],"maxTime":[8,"max-time"],"minDate":[8,"min-date"],"minTime":[8,"min-time"],"minuteIncrement":[2,"minute-increment"],"mode":[1],"monthSelectorType":[1,"month-selector-type"],"nextArrow":[1,"next-arrow"],"noCalendar":[4,"no-calendar"],"dateParser":[16,"date-parser"],"position":[1],"positionElement":[16,"position-element"],"prevArrow":[1,"prev-arrow"],"shorthandCurrentMonth":[4,"shorthand-current-month"],"static":[4],"showMonths":[2,"show-months"],"time_24hr":[4,"time_-2-4hr"],"weekNumbers":[4,"week-numbers"],"wrap":[4],"disabled":[4]}],[4,"salla-add-product-button",{"channels":[513],"subscribedOptions":[1,"subscribed-options"],"quickBuy":[1540,"quick-buy"],"quantity":[514],"donatingAmount":[514,"donating-amount"],"notifyOptionsAvailability":[516,"notify-options-availability"],"productId":[520,"product-id"],"supportStickyBar":[516,"support-sticky-bar"],"productStatus":[513,"product-status"],"productType":[513,"product-type"],"hasOutOfStockOption":[32],"hasSubscribedOptions":[32],"selectedOptions":[32],"showQuickBuy":[32],"isApplePayActive":[32],"buyNowText":[32]}],[0,"salla-count-down",{"date":[1],"boxed":[4],"size":[1],"color":[1],"labeled":[4],"endText":[1,"end-text"],"digits":[1],"endOfDay":[4,"end-of-day"],"daysLabel":[32],"hoursLabel":[32],"minutesLabel":[32],"secondsLabel":[32],"endLabel":[32],"invalidDate":[32],"offerEnded":[32],"countInterval":[32],"days":[32],"hours":[32],"minutes":[32],"seconds":[32],"endCountDown":[64]}],[0,"salla-file-upload",{"value":[1544],"files":[513],"height":[513],"cartItemId":[1,"cart-item-id"],"profileImage":[516,"profile-image"],"name":[1537],"payloadName":[1,"payload-name"],"type":[1],"accept":[1537],"fileId":[2,"file-id"],"url":[1025],"method":[1],"formData":[1,"form-data"],"required":[4],"maxFileSize":[1,"max-file-size"],"disabled":[4],"allowDrop":[4,"allow-drop"],"allowBrowse":[4,"allow-browse"],"allowPaste":[4,"allow-paste"],"allowMultiple":[4,"allow-multiple"],"allowReplace":[4,"allow-replace"],"allowRevert":[4,"allow-revert"],"allowRemove":[4,"allow-remove"],"allowProcess":[4,"allow-process"],"allowReorder":[4,"allow-reorder"],"allowImagePreview":[4,"allow-image-preview"],"imagePreviewHeight":[2,"image-preview-height"],"filePosterHeight":[2,"file-poster-height"],"storeAsFile":[4,"store-as-file"],"forceRevert":[4,"force-revert"],"maxFilesCount":[2,"max-files-count"],"maxParallelUploads":[2,"max-parallel-uploads"],"checkValidity":[4,"check-validity"],"itemInsertLocation":[1,"item-insert-location"],"itemInsertInterval":[2,"item-insert-interval"],"credits":[4],"dropOnPage":[4,"drop-on-page"],"dropOnElement":[4,"drop-on-element"],"dropValidation":[4,"drop-validation"],"ignoredFiles":[16,"ignored-files"],"instantUpload":[1028,"instant-upload"],"chunkUploads":[4,"chunk-uploads"],"chunkForce":[4,"chunk-force"],"chunkSize":[2,"chunk-size"],"chunkRetryDelays":[16,"chunk-retry-delays"],"labelDecimalSeparator":[1,"label-decimal-separator"],"labelThousandsSeparator":[1,"label-thousands-separator"],"labelIdle":[1025,"label-idle"],"iconRemove":[1,"icon-remove"],"iconProcess":[1,"icon-process"],"iconRetry":[1,"icon-retry"],"iconUndo":[1,"icon-undo"],"max_images_count":[32],"max_count_hint":[32],"uploadedFiles":[32],"isListScrollerListenerAdded":[32],"showMaxCountHint":[32],"setOption":[64]}],[4,"salla-list-tile",{"href":[1],"target":[1]}],[0,"salla-product-availability",{"channels":[1],"notifyOptionsAvailability":[4,"notify-options-availability"],"productId":[2,"product-id"],"isSubscribed":[1028,"is-subscribed"],"translationLoaded":[32],"title_":[32],"isVisitorSubscribed":[32]},null,{"channels":["channelsWatcher"]}],[0,"salla-quick-buy",{"type":[1025],"productId":[1025,"product-id"],"cartId":[1025,"cart-id"],"amount":[1538],"currency":[1025],"options":[16],"isRequireShipping":[1028,"is-require-shipping"],"applePayOnly":[1028,"apple-pay-only"],"isApplePayActive":[32],"quickBuy":[32]}],[0,"salla-progress-bar",{"donation":[1],"target":[1026],"value":[1026],"height":[1025],"header":[1025],"stripped":[1028],"message":[1025],"unit":[1025],"color":[1025],"hideUnits":[4,"hide-units"]}],[0,"salla-rating-stars",{"name":[1],"size":[1],"value":[2],"reviews":[2],"withLabel":[4,"with-label"],"editable":[4],"translationsLoaded":[32],"labels":[32],"reviewLabel":[32],"selectedStar":[32]}],[4,"salla-placeholder",{"icon":[1],"alignment":[1],"iconSize":[1,"icon-size"],"translationLoaded":[32]}],[0,"salla-skeleton",{"type":[1],"width":[1],"height":[1]}],[4,"salla-slider",{"blockTitle":[513,"block-title"],"listenToThumbnailsOption":[516,"listen-to-thumbnails-option"],"blockSubtitle":[513,"block-subtitle"],"displayAllUrl":[513,"display-all-url"],"arrowsCentered":[516,"arrows-centered"],"verticalThumbs":[516,"vertical-thumbs"],"gridThumbs":[516,"grid-thumbs"],"vertical":[516],"autoHeight":[516,"auto-height"],"showControls":[516,"show-controls"],"controlsOuter":[516,"controls-outer"],"showThumbsControls":[4,"show-thumbs-controls"],"autoPlay":[4,"auto-play"],"slidesPerView":[1,"slides-per-view"],"pagination":[4],"centered":[4],"loop":[4],"direction":[1537],"type":[1],"sliderConfig":[520,"slider-config"],"thumbsConfig":[520,"thumbs-config"],"currentIndex":[32],"isEnd":[32],"isBeginning":[32],"swiperScript":[32],"displayAllTitle":[32],"windowWidth":[32],"sliderInstance":[64],"slideTo":[64],"slideNext":[64],"slidePrev":[64],"slideToLoop":[64],"slideNextLoop":[64],"slidePrevLoop":[64],"slideReset":[64],"slideToClosest":[64],"update":[64],"updateAutoHeight":[64],"updateSlides":[64],"updateProgress":[64],"updateSlidesClasses":[64],"getSlides":[64],"updateSize":[64],"sliderInit":[64],"thumbsSliderInstance":[64],"thumbsSliderInit":[64],"thumbsSliderUpdate":[64],"thumbsSliderUpdateSlides":[64],"getThumbsUpdateSize":[64],"thumbsSlideTo":[64],"getThumbsSlides":[64]}],[0,"salla-tel-input",{"phone":[1025],"autofocus":[516],"name":[1],"disabled":[4],"countryCode":[1025,"country-code"],"mobileRequired":[32],"countryCodeLabel":[32],"mobileLabel":[32],"tooShort":[32],"tooLong":[32],"invalidCountryCode":[32],"invalidNumber":[32],"errorMap":[32],"getValues":[64],"isValid":[64]}],[4,"salla-modal",{"isClosable":[1028,"is-closable"],"width":[513],"position":[513],"visible":[516],"hasSkeleton":[516,"has-skeleton"],"isLoading":[1540,"is-loading"],"subTitleFirst":[4,"sub-title-first"],"noPadding":[4,"no-padding"],"subTitle":[1,"sub-title"],"centered":[4],"iconStyle":[1,"icon-style"],"modalTitle":[32],"open":[64],"close":[64],"setTitle":[64],"loading":[64],"stopLoading":[64]},[[0,"keyup","handleKeyUp"]],{"visible":["handleVisible"]}],[0,"salla-loading",{"size":[8],"width":[8],"color":[1],"bgColor":[1,"bg-color"]}],[4,"salla-button",{"shape":[513],"color":[513],"fill":[513],"size":[513],"width":[513],"loading":[516],"disabled":[516],"loaderPosition":[1,"loader-position"],"href":[1],"type":[513],"load":[64],"stop":[64],"setText":[64],"disable":[64],"enable":[64]}]]],["p-ee44b568",[[0,"salla-booking-field",{"option":[16],"productId":[2,"product-id"],"bookNowLabel":[32],"editLabel":[32],"bookedLabel":[32],"selectDate":[32],"bookingUrl":[32],"iframeReady":[32],"reservations":[32],"reservationsInput":[32]}],[4,"salla-conditional-fields",null,[[0,"change","changeHandler"]]]]],["p-0c16813a",[[0,"salla-price-range",{"minPrice":[1032,"min-price"],"maxPrice":[1032,"max-price"],"option":[16],"filtersData":[520,"filters-data"],"min":[32],"max":[32],"priceOptions":[32],"moreThanLabel":[32],"lessThanLabel":[32],"toLabel":[32],"fromLabel":[32],"typing":[32],"isMin":[32],"isRTL":[32],"reset":[64]}]]]]'),e)}));
4
+ import{p as e,b as a}from"./p-8rC69jmJ.js";export{s as setNonce}from"./p-8rC69jmJ.js";import{g as t}from"./p-DdsU8AsW.js";var l=()=>{const a=import.meta.url;const t={};if(a!==""){t.resourcesUrl=new URL(".",a).href}return e(t)};l().then((async e=>{await t();return a(JSON.parse('[["p-2f7ea720",[[0,"salla-offer",{"productCardComponent":[1,"product-card-component"],"offersList":[32],"userCurrency":[32],"isMultipleBank":[32],"title":[32],"currentPage":[32],"hasCustomComponent":[32],"isBankOffer":[32],"canRender":[32],"showOffer":[32],"offer_with_price_text":[32],"with_discount_text":[32],"product_discount_text":[32],"special_offer_text":[32],"multipleBankOfferTitleText":[32],"multipleBankOfferTitleDescription":[32],"buy_quantity_text":[32]}]]],["p-09fed654",[[0,"salla-product-options",{"productId":[2,"product-id"],"options":[1],"hideOutLabel":[1,"hide-out-label"],"uniqueKey":[1,"unique-key"],"config":[1],"optionsData":[32],"outOfStockText":[32],"donationAmount":[32],"selectDonationAmount":[32],"selectAmount":[32],"isCustomDonation":[32],"selectedOptions":[32],"canDisabled":[32],"selectedSkus":[32],"selectedOutSkus":[32],"disableCardValue":[32],"availableDigitalCardValues":[32],"setOptionsData":[64],"getSelectedOptionsData":[64],"reportValidity":[64],"hasOutOfStockOption":[64],"getSelectedOptions":[64],"getOption":[64]}]]],["p-e2a7da4e",[[0,"salla-filters",{"filters":[1040],"isSidebarOpen":[32],"filtersData":[32],"apply":[32],"reset":[32],"getFilters":[64],"applyFilters":[64],"resetFilters":[64]}]]],["p-5262b657",[[4,"salla-verify",{"display":[1],"type":[1025],"autoReload":[4,"auto-reload"],"supportWebAuth":[4,"support-web-auth"],"translationLoaded":[32],"title":[32],"resendAfter":[32],"hasError":[32],"errorMessage":[32],"isProfileVerify":[32],"getCode":[64],"open":[64]}]]],["p-c1d54266",[[0,"salla-notifications",{"loadMoreText":[1,"load-more-text"],"itemPerPage":[2,"item-per-page"],"pagination":[32],"total":[32],"showPlaceholder":[32],"nextPage":[32],"no_notifications_trans":[32],"load_more_text_trans":[32]}]]],["p-092d7efd",[[0,"salla-order-summary",{"orderId":[514,"order-id"],"codeCopied":[32],"noItemFound":[32],"order_items":[32]}]]],["p-fbe16cca",[[0,"salla-reviews",{"displayAllLink":[516,"display-all-link"],"source":[513],"sourceValue":[513,"source-value"],"limit":[514],"type":[1],"sort":[1],"hideCustomerInfo":[4,"hide-customer-info"],"reviews":[32],"isRTL":[32],"showReviews":[32],"testimonialText":[32],"displayAllLinkText":[32]}]]],["p-2131de3b",[[0,"salla-reviews-page",{"reviews":[32],"isLoading":[32],"pagination":[32],"sort":[32]}]]],["p-f87ab3b3",[[0,"salla-wallet",{"transactionsArray":[32],"balance":[32],"isLoading":[32],"nextPageUrl":[32]}]]],["p-93266eb2",[[0,"salla-conditional-offer",{"offer":[32],"products":[32],"isLoading":[32],"canRender":[32]}]]],["p-96eac7b0",[[0,"salla-orders",{"params":[16],"loadMoreText":[1,"load-more-text"],"orderNumberText":[32],"totalOrderText":[32],"orderDateText":[32],"orderStatusText":[32],"noOrderText":[32],"load_more_text_trans":[32],"languageCode":[32],"orders":[32],"pagination":[32],"hasInfiniteScroll":[32],"total":[32],"nextPage":[32],"showPlaceholder":[32]}]]],["p-43b14796",[[0,"salla-advertisement",{"position":[32],"advertisements":[32],"advertIcon":[32],"currentSlug":[32]}]]],["p-9fff207a",[[0,"salla-app-install-alert",{"data":[32],"ctaLink":[32],"open":[32],"closing":[32]}]]],["p-81367a3c",[[0,"salla-apps-icons",{"hideTitle":[4,"hide-title"],"appsTitle":[1,"apps-title"],"vertical":[4],"apps":[32]}]]],["p-558ff7cf",[[0,"salla-cart-item-offers",{"quantity":[2],"offers":[1],"itemId":[2,"item-id"],"productPrice":[2,"product-price"],"internalQuantity":[32],"internalOffers":[32],"internalProductPrice":[32],"showAll":[32],"freeLabel":[32],"receivedOffer":[32],"discountAmountLabel":[32],"showMoreOffers":[32]}]]],["p-aafcf0e1",[[0,"salla-contacts",{"contactsTitle":[1025,"contacts-title"],"hideTitle":[4,"hide-title"],"isHeader":[4,"is-header"],"horizontal":[4],"iconsOnly":[4,"icons-only"],"contacts":[32],"iconsList":[32]}]]],["p-1b752cd8",[[0,"salla-installment",{"price":[1],"language":[1],"currency":[1],"country":[1],"tabbyIsActive":[32],"spotiiIsActive":[32],"tamaraIsActive":[32],"mispayActive":[32],"emkanIsActive":[32],"madfuActive":[32],"rajehiIsActive":[32],"installment_sheria_text":[32]}]]],["p-58232db6",[[0,"salla-loyalty-prize-item",{"item":[16]}]]],["p-6fccf4e9",[[0,"salla-metadata",{"entity":[1],"entityId":[8,"entity-id"],"specs":[32],"download":[32]}]]],["p-cd84d54a",[[0,"salla-payments",{"exclude":[1040]}]]],["p-8ddccb3b",[[0,"salla-social",{"links":[32],"iconsList":[32]}]]],["p-f16b6269",[[4,"salla-filters-widget",{"withLoadMore":[1028,"with-load-more"],"filtersData":[16,"filters-data"],"option":[16],"isOpen":[32],"isShowMore":[32],"showMoreLabel":[32],"showLessLabel":[32],"page":[32],"setWidgetHeight":[64],"reset":[64],"showMore":[64],"toggleWidget":[64]}]]],["p-d1ea36f4",[[0,"salla-notification-item",{"notification":[16]}]]],["p-ed8ee877",[[0,"salla-review-card",{"review":[16],"currentSlide":[32],"purchasedCount":[32],"showPurchaseCount":[32]}]]],["p-579a3547",[[4,"salla-tooltip",{"text":[1],"targetId":[1,"target-id"],"show":[32]},[[9,"mouseover","handleMouseOver"],[9,"mouseout","handleMouseOut"]]]]],["p-b1bc5c23",[[0,"salla-offer-modal",{"offer":[32],"offer_name":[32],"offer_message":[32],"hasError":[32],"errorMessage":[32],"productID":[32],"offer_type":[32],"translationLoaded":[32],"addToCartLabel":[32],"open":[64],"showOffer":[64]}],[4,"salla-gifting",{"productId":[2,"product-id"],"widgetTitle":[1,"widget-title"],"widgetSubtitle":[1,"widget-subtitle"],"physicalProducts":[4,"physical-products"],"vertical":[4],"sectionTitle":[32],"sectionSubtitle":[32],"sectionBtnText":[32],"giftDetails":[32],"selectImageForYourGift":[32],"selectImageOrUpload":[32],"selectGiftMessage":[32],"giftCustomText":[32],"textId":[32],"incorrectGiftText":[32],"nextStep":[32],"senderNameLabel":[32],"receiverNameFieldLabel":[32],"receiverMobileFieldLabel":[32],"receiverCountryFieldLabel":[32],"ksa":[32],"selectCity":[32],"selectCityInfo":[32],"receiverCityFieldLabel":[32],"receiverEmailFieldLabel":[32],"emailPlaceholder":[32],"sendLater":[32],"selectSendDateAndTime":[32],"canNotEditOrderAfterSelectDate":[32],"sendGift":[32],"donationRequired":[32],"currentStep":[32],"showCalendar":[32],"showGiftText":[32],"currentLang":[32],"parentClass":[32],"errors":[32],"gift":[32],"selectedGiftTextOption":[32],"showTextArea":[32],"selectedImage":[32],"uploadedImage":[32],"selectedText":[32],"senderName":[32],"errorMessage":[32],"hasError":[32],"quantity":[32],"deliveryDate":[32],"timeZone":[32],"receiverName":[32],"receiverMobile":[32],"receiverCountryCode":[32],"receiverEmail":[32],"hostId":[32],"receiverCity":[32],"open":[64],"close":[64],"goToStep2":[64]}],[4,"salla-loyalty",{"prizePoints":[1544,"prize-points"],"customerPoints":[1538,"customer-points"],"prizeTitle":[1537,"prize-title"],"allowEmail":[4,"allow-email"],"allowMobile":[4,"allow-mobile"],"requireEmail":[4,"require-email"],"guestMessage":[1025,"guest-message"],"loyaltyProgram":[32],"buttonLoading":[32],"selectedItem":[32],"askConfirmation":[32],"is_loggedin":[32],"hasError":[32],"errorMessage":[32],"translationLoaded":[32],"open":[64],"close":[64],"resetExchange":[64],"exchangeLoyaltyPoint":[64]}],[0,"salla-comments",{"itemId":[2,"item-id"],"loadMoreText":[1,"load-more-text"],"hideForm":[4,"hide-form"],"blockTitle":[1,"block-title"],"hideTitle":[4,"hide-title"],"type":[1],"showFormAvatar":[4,"show-form-avatar"],"hideBought":[4,"hide-bought"],"sort":[1],"testimonials":[4],"comments":[32],"pagination":[32],"total":[32],"showPlaceholder":[32],"nextPage":[32],"mostHelpfulLabel":[32],"noComments":[32],"comment_title":[32],"comment_name":[32],"placeholder_text":[32],"showRatingSummary":[32],"allowLikes":[32],"reload":[64]}],[4,"salla-product-size-guide",{"guides":[32],"productId":[32],"placeholder_title":[32],"placeholder_description":[32],"modal_title":[32],"hasError":[32],"open":[64],"close":[64]}],[0,"salla-rating-modal",{"orderId":[2,"order-id"],"order":[32],"hasError":[32],"showContactWidget":[32],"errorMessage":[32],"dragAndDropFilesLabel":[32],"contactSubjectLabel":[32],"editReviewLabel":[32],"allowedImagesTypesLabel":[32],"addImagesLabel":[32],"editImagesLabel":[32],"threeImagesMax":[32],"areYouSureLabel":[32],"confirmDeletionLabel":[32],"cancelLabel":[32],"confirmDeleteBtn":[32],"updatedSuccessfullyLabel":[32],"deletedSuccessfullyLabel":[32],"allowAttachImages":[32],"allowContactSupport":[32],"contactUsLabel":[32],"images":[32],"productImages":[32],"editItemImages":[32],"contact_body":[32],"editMode":[32],"defaultMode":[32],"deleteMode":[32],"shouldOpenDeleteModal":[32],"editType":[32],"editFeedbackId":[32],"deleteFeedbackId":[32],"editItem":[32],"open":[64],"close":[64]}],[4,"salla-scopes",{"selection":[1],"searchDisplayLimit":[2,"search-display-limit"],"translationLoaded":[32],"mode":[32],"current_scope":[32],"scopes":[32],"originalScopesList":[32],"selected_scope":[32],"isOpenedBefore":[32],"hasError":[32],"loading":[32],"close":[64],"open":[64],"handleSubmit":[64]}],[0,"salla-localization-modal",{"language":[1537],"currency":[1537],"translationLoaded":[32],"languages":[32],"currencies":[32],"hasError":[32],"errorMessage":[32],"open":[64],"close":[64],"submit":[64]}],[0,"salla-user-profile",{"customFields":[1,"custom-fields"],"minAge":[2,"min-age"],"userData":[32],"isEditable":[32],"userDefinedFields":[32],"disableAction":[32],"isLoading":[32],"first_name_trans":[32],"last_name_trans":[32],"birthday_trans":[32],"birthday_placeholder_trans":[32],"gender_trans":[32],"gender_placeholder_trans":[32],"male_trans":[32],"female_trans":[32],"email_trans":[32],"mobile_trans":[32],"save_btn_trans":[32],"drag_and_drop_trans":[32],"browse_trans":[32],"email_required_trans":[32],"invalid_email_trans":[32],"setCustomFields":[64]}],[0,"salla-bottom-alert",{"type":[513],"icon":[513],"message":[513],"actionUrl":[513,"action-url"],"actionLabel":[513,"action-label"],"storeId":[32],"template":[32],"loading":[32],"templateData":[32],"defaultMessage":[32],"defaultActionLabel":[32],"storeFeatures":[32],"storeDetails":[32],"storePrice":[32],"theDeveloper":[32],"templateInformation":[32],"buyTheTemplate":[32],"isRtl":[32]}],[0,"salla-quick-order",{"quickOrderTitle":[1025,"quick-order-title"],"subTitle":[1025,"sub-title"],"payButtonTitle":[1025,"pay-button-title"],"confirmPayButtonTitle":[1025,"confirm-pay-button-title"],"agreementText":[1025,"agreement-text"],"isEmailRequired":[1028,"is-email-required"],"productId":[1025,"product-id"],"thanksMessage":[1025,"thanks-message"],"quickOrderStyle":[1025,"quick-order-style"],"user":[32],"isAvailable":[32],"oneClick":[32],"expanded":[32],"isTermsRequired":[32],"countryCode":[32],"submitSucess":[32],"placeHolderEmail":[32],"emailOptional":[32],"agreementShowText":[32],"agreementModalHead":[32],"userNameLabel":[32],"termsChecked":[32]}],[0,"salla-user-settings",{"deactivateAccount":[32],"promotionalMsgs":[32],"hideMyName":[32],"hideMyNameDesc":[32],"deactivateDesc":[32],"promotionalMsgsDesc":[32],"sorryForLeavingText":[32],"warningText":[32],"keepAccount":[32],"buttonLoading":[32],"canHideName":[32],"isHiddenName":[32],"isNotifiable":[32]}],[0,"salla-search",{"inline":[4],"oval":[4],"height":[2],"maxWords":[2,"max-words"],"showAction":[4,"show-action"],"translationLoaded":[32],"results":[32],"loading":[32],"typing":[32],"debounce":[32],"search_term":[32]},[[0,"keydown","handleKeyDown"]],{"search_term":["handleSearch"]}],[0,"salla-login-modal",{"isEmailAllowed":[1028,"is-email-allowed"],"isMobileAllowed":[1028,"is-mobile-allowed"],"isEmailRequired":[1028,"is-email-required"],"supportWebAuth":[516,"support-web-auth"],"inline":[516],"storeId":[1032,"store-id"],"api":[1],"headers":[1025],"withoutReload":[1028,"without-reload"],"messages":[32],"isClosable":[32],"iframeLoaded":[32],"scrolling":[32],"direction":[32],"canRenderIframe":[32],"open":[64]}],[0,"salla-menu",{"source":[1],"sourceValue":[1,"source-value"],"topnav":[4],"useReactLink":[4,"use-react-link"],"limit":[2],"menus":[32]}],[4,"salla-social-share",{"url":[513],"urlName":[513,"url-name"],"platforms":[513],"opened":[32],"allPlatforms":[32],"platformIcons":[32],"convertedPlatforms":[32],"open":[64],"refresh":[64]}],[0,"salla-breadcrumb",{"breadcrumbs":[32]}],[4,"salla-cart-summary",{"showCartLabel":[4,"show-cart-label"],"cartSummaryCount":[32],"cartSummaryTotal":[32],"cartLabel":[32],"animateToCart":[64]}],[4,"salla-infinite-scroll",{"nextPage":[1,"next-page"],"autoload":[1028],"container":[1],"loadMoreText":[1,"load-more-text"],"item":[1],"loadMore":[32],"noMore":[32],"failedToLoad":[32]}],[0,"salla-maintenance-alert",{"title":[32],"message":[32],"buttonTitle":[32]}],[4,"salla-quantity-input",{"cartItemId":[8,"cart-item-id"],"quantity":[32],"fireChangeEvent":[32],"decrease":[64],"increase":[64],"setValue":[64]},null,{"quantity":["watchPropHandler"]}],[4,"salla-user-menu",{"inline":[516],"avatarOnly":[516,"avatar-only"],"showHeader":[516,"show-header"],"relativeDropdown":[516,"relative-dropdown"],"accountLoading":[32],"opened":[32],"notifications":[32],"orders":[32],"pending_orders":[32],"wishlist":[32],"profile":[32],"rating":[32],"wallet":[32],"logout":[32],"hello":[32],"first_name":[32],"last_name":[32],"avatar":[32],"is_loggedIn":[32],"badges":[32],"hasBadges":[32],"OrderUpdate":[32]}],[0,"salla-products-slider",{"blockTitle":[1,"block-title"],"subTitle":[1,"sub-title"],"sliderId":[1,"slider-id"],"displayAllUrl":[1,"display-all-url"],"autoplay":[1028],"source":[1537],"sourceValue":[1,"source-value"],"limit":[1026],"sliderConfig":[520,"slider-config"],"productCardComponent":[1,"product-card-component"],"includes":[1040],"productsData":[32],"isReady":[32],"sourceValueIsValid":[32],"hasCustomComponent":[32],"apiUrl":[32],"parsedSourceValue":[32]}],[4,"salla-map",{"name":[1],"required":[4],"readonly":[4],"searchable":[1028],"lat":[1026],"lng":[1026],"apiKey":[1025,"api-key"],"modalTitle":[1,"modal-title"],"zoom":[1026],"theme":[1025],"modalActivityTitle":[32],"confirmButtonTitle":[32],"locateButtonTitle":[32],"locateButtonEdit":[32],"searchPlaceholder":[32],"searchInputValue":[32],"formattedAddress":[32],"geolocationError":[32],"searchInput":[32],"mapInput":[32],"mapElement":[32],"selectedLat":[32],"selectedLng":[32],"open":[64]}],[0,"salla-reviews-summary",{"itemId":[2,"item-id"],"data":[32],"canRender":[32],"basedOnLabel":[32],"recommendedLabel":[32],"showRatingSummary":[32],"recommendationOnly":[32],"showRecommendation":[32]}],[0,"salla-comment-form",{"type":[1537],"showAvatar":[4,"show-avatar"],"itemId":[1544,"item-id"],"placeholder":[32],"submitText":[32],"canComment":[32]}],[4,"salla-color-picker",{"name":[1],"required":[4],"color":[1537],"format":[1],"showCancelButton":[4,"show-cancel-button"],"showTextField":[4,"show-text-field"],"enableAlpha":[4,"enable-alpha"],"widgetColor":[32],"setPickerOption":[64],"movePopUp":[64],"setColorValue":[64],"openPicker":[64],"closePicker":[64],"destroyPicker":[64]}],[0,"salla-products-list",{"source":[1537],"sourceValue":[1032,"source-value"],"limit":[1026],"sortBy":[1025,"sort-by"],"filtersResults":[1540,"filters-results"],"horizontalCards":[516,"horizontal-cards"],"rowCards":[516,"row-cards"],"autoload":[1028],"loadMoreText":[1,"load-more-text"],"productCardComponent":[1,"product-card-component"],"includes":[1040],"page":[32],"nextPage":[32],"hasInfiniteScroll":[32],"hasCustomComponent":[32],"sourceValueIsValid":[32],"placeholderText":[32],"endOfText":[32],"failedLoadMore":[32],"currentPage":[32],"currentCategoryIdFilter":[32],"isReady":[32],"showPlaceholder":[32],"switchToNormalBehavior":[32],"parsedFilters":[32],"filtersSnapshot":[32],"setFilters":[64],"reload":[64]}],[0,"salla-comment-item",{"comment":[16],"hideBought":[16,"hide-bought"],"has_bought_trans":[32],"rated_trans":[32],"waiting_approval_trans":[32],"has_order_trans":[32],"allowLikes":[32],"allowAttachImages":[32],"helpfulLabel":[32],"likesCount":[32],"likedComments":[32]}],[4,"salla-tab-content",{"name":[1],"isSelected":[32],"getChild":[64]}],[4,"salla-tab-header",{"name":[1],"activeClass":[1,"active-class"],"height":[8],"centered":[4],"isSelected":[32],"getChild":[64]}],[4,"salla-tabs",{"backgroundColor":[1,"background-color"],"vertical":[4]},[[0,"tabSelected","onSelectedTab"]]],[4,"salla-product-card",{"product":[1],"horizontal":[4],"shadowOnHover":[4,"shadow-on-hover"],"hideAddBtn":[4,"hide-add-btn"],"fullImage":[4,"full-image"],"minimal":[4],"isSpecial":[4,"is-special"],"showQuantity":[4,"show-quantity"],"productData":[32],"fitImageHeight":[32],"remained":[32],"outOfStock":[32],"donationAmount":[32],"startingPrice":[32],"addToCart":[32],"placeholder":[32]}],[0,"salla-datetime-picker",{"value":[1537],"required":[4],"name":[513],"placeholder":[1],"allowInput":[4,"allow-input"],"allowInvalidPreload":[4,"allow-invalid-preload"],"altFormat":[1,"alt-format"],"altInput":[4,"alt-input"],"altInputClass":[1,"alt-input-class"],"appendTo":[16,"append-to"],"ariaDateFormat":[1,"aria-date-format"],"autoFillDefaultTime":[4,"auto-fill-default-time"],"clickOpens":[4,"click-opens"],"closeOnSelect":[4,"close-on-select"],"conjunction":[1],"dateFormat":[1,"date-format"],"defaultDate":[8,"default-date"],"defaultHour":[2,"default-hour"],"defaultMinute":[2,"default-minute"],"defaultSeconds":[2,"default-seconds"],"disable":[16],"disableMobile":[4,"disable-mobile"],"enable":[16],"enableSeconds":[4,"enable-seconds"],"enableTime":[4,"enable-time"],"formatDate":[16,"format-date"],"hourIncrement":[2,"hour-increment"],"inline":[4],"locale":[1],"maxDate":[8,"max-date"],"maxTime":[8,"max-time"],"minDate":[8,"min-date"],"minTime":[8,"min-time"],"minuteIncrement":[2,"minute-increment"],"mode":[1],"monthSelectorType":[1,"month-selector-type"],"nextArrow":[1,"next-arrow"],"noCalendar":[4,"no-calendar"],"dateParser":[16,"date-parser"],"position":[1],"positionElement":[16,"position-element"],"prevArrow":[1,"prev-arrow"],"shorthandCurrentMonth":[4,"shorthand-current-month"],"static":[4],"showMonths":[2,"show-months"],"time_24hr":[4,"time_-2-4hr"],"weekNumbers":[4,"week-numbers"],"wrap":[4],"disabled":[4]}],[4,"salla-add-product-button",{"channels":[513],"subscribedOptions":[1,"subscribed-options"],"quickBuy":[1540,"quick-buy"],"quantity":[514],"donatingAmount":[514,"donating-amount"],"notifyOptionsAvailability":[516,"notify-options-availability"],"productId":[520,"product-id"],"supportStickyBar":[516,"support-sticky-bar"],"productStatus":[513,"product-status"],"productType":[513,"product-type"],"hasOutOfStockOption":[32],"hasSubscribedOptions":[32],"selectedOptions":[32],"showQuickBuy":[32],"isApplePayActive":[32],"buyNowText":[32]}],[0,"salla-count-down",{"date":[1],"boxed":[4],"size":[1],"color":[1],"labeled":[4],"endText":[1,"end-text"],"digits":[1],"endOfDay":[4,"end-of-day"],"daysLabel":[32],"hoursLabel":[32],"minutesLabel":[32],"secondsLabel":[32],"endLabel":[32],"invalidDate":[32],"offerEnded":[32],"countInterval":[32],"days":[32],"hours":[32],"minutes":[32],"seconds":[32],"endCountDown":[64]}],[0,"salla-file-upload",{"value":[1544],"files":[513],"height":[513],"cartItemId":[1,"cart-item-id"],"profileImage":[516,"profile-image"],"name":[1537],"payloadName":[1,"payload-name"],"type":[1],"accept":[1537],"fileId":[2,"file-id"],"url":[1025],"method":[1],"formData":[1,"form-data"],"required":[4],"maxFileSize":[1,"max-file-size"],"disabled":[4],"allowDrop":[4,"allow-drop"],"allowBrowse":[4,"allow-browse"],"allowPaste":[4,"allow-paste"],"allowMultiple":[4,"allow-multiple"],"allowReplace":[4,"allow-replace"],"allowRevert":[4,"allow-revert"],"allowRemove":[4,"allow-remove"],"allowProcess":[4,"allow-process"],"allowReorder":[4,"allow-reorder"],"allowImagePreview":[4,"allow-image-preview"],"imagePreviewHeight":[2,"image-preview-height"],"filePosterHeight":[2,"file-poster-height"],"storeAsFile":[4,"store-as-file"],"forceRevert":[4,"force-revert"],"maxFilesCount":[2,"max-files-count"],"maxParallelUploads":[2,"max-parallel-uploads"],"checkValidity":[4,"check-validity"],"itemInsertLocation":[1,"item-insert-location"],"itemInsertInterval":[2,"item-insert-interval"],"credits":[4],"dropOnPage":[4,"drop-on-page"],"dropOnElement":[4,"drop-on-element"],"dropValidation":[4,"drop-validation"],"ignoredFiles":[16,"ignored-files"],"instantUpload":[1028,"instant-upload"],"chunkUploads":[4,"chunk-uploads"],"chunkForce":[4,"chunk-force"],"chunkSize":[2,"chunk-size"],"chunkRetryDelays":[16,"chunk-retry-delays"],"labelDecimalSeparator":[1,"label-decimal-separator"],"labelThousandsSeparator":[1,"label-thousands-separator"],"labelIdle":[1025,"label-idle"],"iconRemove":[1,"icon-remove"],"iconProcess":[1,"icon-process"],"iconRetry":[1,"icon-retry"],"iconUndo":[1,"icon-undo"],"max_images_count":[32],"max_count_hint":[32],"uploadedFiles":[32],"isListScrollerListenerAdded":[32],"showMaxCountHint":[32],"setOption":[64]}],[4,"salla-list-tile",{"href":[1],"target":[1]}],[0,"salla-product-availability",{"channels":[1],"notifyOptionsAvailability":[4,"notify-options-availability"],"productId":[2,"product-id"],"isSubscribed":[1028,"is-subscribed"],"translationLoaded":[32],"title_":[32],"isVisitorSubscribed":[32]},null,{"channels":["channelsWatcher"]}],[0,"salla-quick-buy",{"type":[1025],"productId":[1025,"product-id"],"cartId":[1025,"cart-id"],"amount":[1538],"currency":[1025],"options":[16],"isRequireShipping":[1028,"is-require-shipping"],"applePayOnly":[1028,"apple-pay-only"],"isApplePayActive":[32],"quickBuy":[32]}],[0,"salla-progress-bar",{"donation":[1],"target":[1026],"value":[1026],"height":[1025],"header":[1025],"stripped":[1028],"message":[1025],"unit":[1025],"color":[1025],"hideUnits":[4,"hide-units"]}],[0,"salla-rating-stars",{"name":[1],"size":[1],"value":[2],"reviews":[2],"withLabel":[4,"with-label"],"editable":[4],"translationsLoaded":[32],"labels":[32],"reviewLabel":[32],"selectedStar":[32]}],[4,"salla-placeholder",{"icon":[1],"alignment":[1],"iconSize":[1,"icon-size"],"translationLoaded":[32]}],[0,"salla-skeleton",{"type":[1],"width":[1],"height":[1]}],[4,"salla-slider",{"blockTitle":[513,"block-title"],"listenToThumbnailsOption":[516,"listen-to-thumbnails-option"],"blockSubtitle":[513,"block-subtitle"],"displayAllUrl":[513,"display-all-url"],"arrowsCentered":[516,"arrows-centered"],"verticalThumbs":[516,"vertical-thumbs"],"gridThumbs":[516,"grid-thumbs"],"vertical":[516],"autoHeight":[516,"auto-height"],"showControls":[516,"show-controls"],"controlsOuter":[516,"controls-outer"],"showThumbsControls":[4,"show-thumbs-controls"],"autoPlay":[4,"auto-play"],"slidesPerView":[1,"slides-per-view"],"pagination":[4],"centered":[4],"loop":[4],"direction":[1537],"type":[1],"sliderConfig":[520,"slider-config"],"thumbsConfig":[520,"thumbs-config"],"currentIndex":[32],"isEnd":[32],"isBeginning":[32],"swiperScript":[32],"displayAllTitle":[32],"windowWidth":[32],"sliderInstance":[64],"slideTo":[64],"slideNext":[64],"slidePrev":[64],"slideToLoop":[64],"slideNextLoop":[64],"slidePrevLoop":[64],"slideReset":[64],"slideToClosest":[64],"update":[64],"updateAutoHeight":[64],"updateSlides":[64],"updateProgress":[64],"updateSlidesClasses":[64],"getSlides":[64],"updateSize":[64],"sliderInit":[64],"thumbsSliderInstance":[64],"thumbsSliderInit":[64],"thumbsSliderUpdate":[64],"thumbsSliderUpdateSlides":[64],"getThumbsUpdateSize":[64],"thumbsSlideTo":[64],"getThumbsSlides":[64]}],[0,"salla-tel-input",{"phone":[1025],"autofocus":[516],"name":[1],"disabled":[4],"countryCode":[1025,"country-code"],"mobileRequired":[32],"countryCodeLabel":[32],"mobileLabel":[32],"tooShort":[32],"tooLong":[32],"invalidCountryCode":[32],"invalidNumber":[32],"errorMap":[32],"getValues":[64],"isValid":[64]}],[4,"salla-modal",{"isClosable":[1028,"is-closable"],"width":[513],"position":[513],"visible":[516],"hasSkeleton":[516,"has-skeleton"],"isLoading":[1540,"is-loading"],"subTitleFirst":[4,"sub-title-first"],"noPadding":[4,"no-padding"],"subTitle":[1,"sub-title"],"centered":[4],"iconStyle":[1,"icon-style"],"modalTitle":[32],"open":[64],"close":[64],"setTitle":[64],"loading":[64],"stopLoading":[64]},[[0,"keyup","handleKeyUp"]],{"visible":["handleVisible"]}],[0,"salla-loading",{"size":[8],"width":[8],"color":[1],"bgColor":[1,"bg-color"]}],[4,"salla-button",{"shape":[513],"color":[513],"fill":[513],"size":[513],"width":[513],"loading":[516],"disabled":[516],"loaderPosition":[1,"loader-position"],"href":[1],"type":[513],"load":[64],"stop":[64],"setText":[64],"disable":[64],"enable":[64]}]]],["p-449a75fc",[[0,"salla-booking-field",{"option":[16],"productId":[2,"product-id"],"bookNowLabel":[32],"editLabel":[32],"bookedLabel":[32],"selectDate":[32],"bookingUrl":[32],"iframeReady":[32],"reservations":[32],"reservationsInput":[32]}],[4,"salla-conditional-fields",null,[[0,"change","changeHandler"]]]]],["p-e9f7ea25",[[0,"salla-price-range",{"minPrice":[1032,"min-price"],"maxPrice":[1032,"max-price"],"option":[16],"filtersData":[520,"filters-data"],"min":[32],"max":[32],"priceOptions":[32],"moreThanLabel":[32],"lessThanLabel":[32],"toLabel":[32],"fromLabel":[32],"typing":[32],"isMin":[32],"isRTL":[32],"reset":[64]}]]]]'),e)}));
5
5
  //# sourceMappingURL=twilight.esm.js.map
@@ -115,7 +115,7 @@ DOMTokenList
115
115
  var resourcesUrl = scriptElm ? scriptElm.getAttribute('data-resources-url') || scriptElm.src : '';
116
116
  var start = function() {
117
117
  // if src is not present then origin is "null", and new URL() throws TypeError: Failed to construct 'URL': Invalid base URL
118
- var url = new URL('./p-CxJN3exX.system.js', new URL(resourcesUrl, window.location.origin !== 'null' ? window.location.origin : undefined));
118
+ var url = new URL('./p-p4T4UdAZ.system.js', new URL(resourcesUrl, window.location.origin !== 'null' ? window.location.origin : undefined));
119
119
  System.import(url.href);
120
120
  };
121
121
 
@@ -7,7 +7,8 @@ export declare enum OfferType {
7
7
  PercentageOrFixed = "fixed",
8
8
  DiscountsTable = "discounts_table",
9
9
  Bank = "bank",
10
- BuyXGetY = "buy_x_get_y"
10
+ BuyXGetY = "buy_x_get_y",
11
+ SpecialPrice = "special_price"
11
12
  }
12
13
  export interface DiscountDetailFixed {
13
14
  discount_type: "fixed";
@@ -49,6 +50,16 @@ export interface BankOffer {
49
50
  minimum_spend: number;
50
51
  payments: string[];
51
52
  }
53
+ export interface SpecialPriceDetail {
54
+ apply_to: "product" | "category";
55
+ discount_value: number;
56
+ ends_at: number;
57
+ min_items: number;
58
+ min_spend: number;
59
+ targets: Array<string | number>;
60
+ products?: Product[];
61
+ categories?: Category[];
62
+ }
52
63
  export interface BuyXGetYDetail {
53
64
  ends_at: number;
54
65
  buy: {
@@ -70,7 +81,7 @@ export interface Offer {
70
81
  title: string;
71
82
  description: string;
72
83
  type: OfferType | "conditional" | "fixed" | "discounts_table" | "bank" | "buy_x_get_y";
73
- details: DiscountDetailConditional | DiscountDetailPercentageFixed | DiscountDetailTable | BankOffer | BuyXGetYDetail;
84
+ details: DiscountDetailConditional | DiscountDetailPercentageFixed | DiscountDetailTable | BankOffer | BuyXGetYDetail | SpecialPriceDetail;
74
85
  }
75
86
  export interface Product {
76
87
  id: number;
@@ -75,4 +75,5 @@ export declare class SallaOffer {
75
75
  * @returns An array of HTML elements representing discounts_table.
76
76
  */
77
77
  private renderDiscountTableSection;
78
+ private renderSpecialPriceSection;
78
79
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salla.sa/twilight-components",
3
- "version": "2.14.173",
3
+ "version": "2.14.175",
4
4
  "license": "GPL-3.0",
5
5
  "author": "Salla Team <support@salla.dev> (https://salla.dev)",
6
6
  "bugs": {
@@ -80,9 +80,9 @@
80
80
  "typescript": "^5.4.5"
81
81
  },
82
82
  "dependencies": {
83
- "@salla.sa/applepay": "2.14.173",
84
- "@salla.sa/twilight": "2.14.173",
85
- "@salla.sa/twilight-tailwind-theme": "2.14.173",
83
+ "@salla.sa/applepay": "2.14.175",
84
+ "@salla.sa/twilight": "2.14.175",
85
+ "@salla.sa/twilight-tailwind-theme": "2.14.175",
86
86
  "@types/node": "^20.4.8",
87
87
  "animejs": "^3.2.2",
88
88
  "filepond": "^4.30.6",
@@ -100,5 +100,5 @@
100
100
  "vanilla-lazyload": "^17.8.5",
101
101
  "vanilla-picker": "^2.12.2"
102
102
  },
103
- "gitHead": "b3220986ee197319044e6529d6defffcf44ddb31"
103
+ "gitHead": "1836fc8d04b76db2ecd3a9d0174c16ab4214335e"
104
104
  }
@@ -1,5 +0,0 @@
1
- var __awaiter=this&&this.__awaiter||function(e,t,r,s){function n(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,a){function i(e){try{l(s.next(e))}catch(e){a(e)}}function o(e){try{l(s["throw"](e))}catch(e){a(e)}}function l(e){e.done?r(e.value):n(e.value).then(i,o)}l((s=s.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},s,n,a,i;return i={next:o(0),throw:o(1),return:o(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i;function o(e){return function(t){return l([e,t])}}function l(o){if(s)throw new TypeError("Generator is already executing.");while(i&&(i=0,o[0]&&(r=0)),r)try{if(s=1,n&&(a=o[0]&2?n["return"]:o[0]?n["throw"]||((a=n["return"])&&a.call(n),0):n.next)&&!(a=a.call(n,o[1])).done)return a;if(n=0,a)o=[o[0]&2,a.value];switch(o[0]){case 0:case 1:a=o;break;case 4:r.label++;return{value:o[1],done:false};case 5:r.label++;n=o[1];o=[0];continue;case 7:o=r.ops.pop();r.trys.pop();continue;default:if(!(a=r.trys,a=a.length>0&&a[a.length-1])&&(o[0]===6||o[0]===2)){r=0;continue}if(o[0]===3&&(!a||o[1]>a[0]&&o[1]<a[3])){r.label=o[1];break}if(o[0]===6&&r.label<a[1]){r.label=a[1];a=o;break}if(a&&r.label<a[2]){r.label=a[2];r.ops.push(o);break}if(a[2])r.ops.pop();r.trys.pop();continue}o=t.call(e,r)}catch(e){o=[6,e];n=0}finally{s=a=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}};
2
- /*!
3
- * Crafted with ❤ by Salla
4
- */System.register(["./p-BEq8Sqtq.system.js"],(function(e){"use strict";var t,r,s;return{setters:[function(e){t=e.r;r=e.h;s=e.g}],execute:function(){var n;(function(e){e["ProductDetail"]="product.single";e["Cart"]="cart"})(n||(n={}));var a;(function(e){e["Conditional"]="conditional";e["PercentageOrFixed"]="fixed";e["DiscountsTable"]="discounts_table";e["Bank"]="bank";e["BuyXGetY"]="buy_x_get_y"})(a||(a={}));var i='.s-offer-wrapper .s-slider-block__title h2{font-size:1.125rem;line-height:1.75rem;color:#f87171}.s-offer-wrapper .s-slider-block__title h2::before{font-family:"sallaicons";content:"\\ee30" !important;position:absolute;top:1rem;font-size:3rem;font-weight:400;line-height:1;color:#fef2f2}.s-offer-bank-wrapper-sinlge-item{display:-ms-flexbox;display:flex;-ms-flex-align:center !important;align-items:center !important;gap:14px}.s-offer-bank-wrapper{display:-ms-flexbox !important;display:flex !important;width:100% !important}';var o=e("salla_offer",function(){function e(e){var r=this;t(this,e);var s;this.productCardComponent="custom-salla-product-card";this.offersList=[];this.isMultipleBank=false;this.isBankOffer=false;this.canRender=false;this.showOffer=salla.config.get("store.settings.product.show_special_offers");this.offer_with_price_text=salla.lang.get("pages.offer.with_price",{price:""});this.with_discount_text=salla.lang.get("pages.products.with_a_discount");this.product_discount_text=salla.lang.get("pages.products.discount");this.special_offer_text=salla.lang.get("pages.products.special_offer");this.multipleBankOfferTitleText=salla.lang.get("pages.offer.multiple_bank_offers_title");this.multipleBankOfferTitleDescription=salla.lang.get("pages.offer.multiple_bank_offers_message");this.buy_quantity_text=function(e){return salla.lang.get("pages.offer.buy_quantity",{quantity:e})};salla.lang.onLoaded((function(){r.offer_with_price_text=salla.lang.get("pages.offer.with_price");r.with_discount_text=salla.lang.get("pages.products.with_a_discount");r.product_discount_text=salla.lang.get("pages.products.discount");r.special_offer_text=salla.lang.get("pages.products.special_offer");r.multipleBankOfferTitleText=salla.lang.get("pages.offer.multiple_bank_offers_title");r.multipleBankOfferTitleDescription=salla.lang.get("pages.offer.multiple_bank_offers_message");r.buy_quantity_text(0)}));salla.onReady((function(){r.currentPage=salla.config.get("page.slug");r.userCurrency=salla.config.get("currencies")[salla.config.get("user.currency_code")].symbol}));this.categorySlot=((s=this.host.querySelector('[slot="category"]'))===null||s===void 0?void 0:s.innerHTML)||'<a href={url} class="s-offer-slide-cat-entry"><i class={icon}></i><h4>{name}</h4></a>'}e.prototype.getEndpointByPageName=function(){return __awaiter(this,void 0,void 0,(function(){var e;return __generator(this,(function(t){switch(t.label){case 0:if(!(this.currentPage==n.Cart))return[3,2];return[4,Salla.cart.getCurrentCartId()];case 1:e=t.sent();return[2,"offers/cart/".concat(e)];case 2:if(this.currentPage==n.ProductDetail){return[2,"offers/product/".concat(salla.config.get("page.id"))]}return[2,"offers"]}}))}))};e.prototype.componentWillLoad=function(){var e=this;this.hasCustomComponent=!!customElements.get(this.productCardComponent);return new Promise((function(e){return salla.onReady(e)})).then((function(){e.showOffer=!salla.url.is_page("product.single")||salla.config.get("store.settings.product.show_special_offers");if(e.showOffer){return}throw new Error("Merchant disabled showing the offers on product page")})).then((function(){return __awaiter(e,void 0,void 0,(function(){var e,t;return __generator(this,(function(r){switch(r.label){case 0:t=(e=salla.api).request;return[4,this.getEndpointByPageName()];case 1:return[2,t.apply(e,[r.sent()])]}}))}))})).then((function(t){if(!(e.offersList=t.data).length){throw new Error("salla-offers:: There is no offers!")}var r=e.offersList.find((function(e){return[a.Bank,a.BuyXGetY,a.DiscountsTable].includes(e.type)}));if(!r){throw new Error("salla-offers:: Offer type not supported yet!")}if(r.type===a.DiscountsTable){return e.offersList=[r]}if(e.isBankOffer=r.type===a.Bank){e.offersList=e.offersList.filter((function(e){return e.type===a.Bank}));e.isMultipleBank=e.offersList.length>1;return e.offersList}var s=r.details.get;return s.source==="products"?salla.product.api.fetch({source:"selected",source_value:s.source_value}).then((function(t){s.products=t.data;r.details.get=s;return e.offersList=[r]})):salla.product.api.categories().then((function(t){s.categories=e.findCategories(t.data,s.source_value);r.details.get=s;return e.offersList=[r]}))})).then((function(t){salla.storage.set(e.getStorageKey(),{offers:t,stored_at:(new Date).getTime()});e.canRender=true})).catch((function(e){salla.logger.warn(e)}))};e.prototype.componentDidLoad=function(){var e=this.host.querySelector(".s-slider-block__title-nav");e===null||e===void 0?void 0:e.classList.add("s-offer-bank-payment-nav")};e.prototype.findCategories=function(e,t){var r;var s=[];for(var n=0,a=e;n<a.length;n++){var i=a[n];if(t.includes(i.id_||i.id)){s.push(i)}if(((r=i.sub_categories)===null||r===void 0?void 0:r.length)>0){s=s.concat(this.findCategories(i.sub_categories,t))}}return s};e.prototype.getStorageKey=function(){try{var e=salla.config.get("page.slug").replace(".","_");var t=salla.lang.getLocale();var r=salla.config.currency().code;if(!e||!t||!r){throw new Error("Unable to get the storage key.")}return"s-offers-".concat(e,"-").concat(salla.config.get("page.id"),"-").concat(t,"-").concat(r)}catch(e){return""}};e.prototype.getOffersFromStorage=function(){var e=salla.storage.get(this.getStorageKey());if(!e||e.stored_at<(new Date).getTime()-10*60*1e3){salla.storage.remove(this.getStorageKey());return null}this.canRender=true;return Promise.resolve(e.offers)};e.prototype.render=function(){if(!this.offersList.length||!this.canRender||!this.showOffer)return null;var e=this.offersList[0];var t=this.isBankOffer?this.isMultipleBank?this.multipleBankOfferTitleText:null:e.title;var s=this.isBankOffer?this.isMultipleBank?this.multipleBankOfferTitleDescription:null:e.description;var n={"block-title":t,"block-subTitle":s,"show-controls":this.isMultipleBank};return r("div",{class:"s-offer-wrapper"},r("p",{class:"s-offer-corner-badge"},this.special_offer_text),r("salla-slider",Object.assign({type:"carousel",id:"offer-slider"},n),r("div",{slot:"items"},this.renderSectionForOfferType(e.type))))};e.prototype.renderSectionForOfferType=function(e){if(this.isBankOffer){return this.renderBankSection()}if(e==a.BuyXGetY){return this.renderBuyXGetYSection()}return this.renderDiscountTableSection()};e.prototype.getCategoriesSection=function(e){return r("div",{class:"s-offer-slide-one-sixth swiper-slide",innerHTML:this.categorySlot.replace(/\{url\}/g,e.url).replace(/\{icon\}/g,e.icon||"sicon-store").replace(/\{name\}/g,e.name)})};e.prototype.renderBuyXGetYSection=function(){var e=this;var t,s;var n=this.offersList[0].details;return[(t=n.get.products)===null||t===void 0?void 0:t.map((function(t){return r("div",{class:"s-offer-slide-one-fourth"},e.hasCustomComponent?r(e.productCardComponent,{product:t}):r("salla-product-card",{"shadow-on-hover":true,product:t}))})),(s=n.get.categories)===null||s===void 0?void 0:s.map((function(t){return e.getCategoriesSection(t)}))]};e.prototype.renderBankSection=function(){var e=this;return this.offersList.map((function(t){return r("div",{class:{"s-offer-slide-one-sixth":e.isMultipleBank,"s-offer-bank-wrapper-sinlge-item":!e.isMultipleBank}},r("div",{class:{"s-offer-bank-wrapper":true,"s-offer-slide-one-sixth":!e.isMultipleBank,"s-offer-bank-wrapper-multi-spacer":e.isMultipleBank}},r("div",{class:"s-offer-bank-logo"},r("img",{src:t.details.logo||salla.url.cdn("images/s-empty.png"),"data-src":t.details.logo,alt:t.title+" offer"})),r("ul",{class:"s-offer-bank-payment-wrapper"},t.details.payments.map((function(e){return r("li",{class:"s-offer-bank-payment-single"},r("img",{src:salla.url.cdn("images/payment/"+e+".png")||salla.url.cdn("images/s-empty.png"),"data-src":salla.url.cdn("images/payment/"+e+".png"),alt:"payment"}))}))),e.isMultipleBank?r("p",{class:"s-offer-bank-payment-discount-percent"},"".concat(e.product_discount_text," ").concat(t.details.discount_value).concat(t.details.discount_type==="percentage"&&"%")):""),!e.isMultipleBank?r("div",{class:"s-offer-bank-message s-offer-slide-one-fourth"},r("h2",null,e.offersList[0].title),r("p",{innerHTML:e.generateBankDescription(e.offersList[0].description,t.details.discount_value)})):"")}))};e.prototype.generateBankDescription=function(e,t){return e.replace(new RegExp("".concat(t," %")),'<span class="s-offer-bank-message-amount">'.concat(t," %</span>"))};e.prototype.renderDiscountTableSection=function(){var e=this;var t;var s=this.offersList[0];var n=s.details.show_price_after_discount;return(t=this.offersList[0].details.discounts)===null||t===void 0?void 0:t.map((function(t){return r("div",{class:"s-offer-slide-one-fourth"},r("div",{class:"s-offer-slide-offer-entry"},r("div",{class:"s-offer-slide-offer-entry-price-quantity-container"},r("p",{class:"s-offer-slide-offer-entry-quantity"},e.buy_quantity_text(t.quantity)),n?r("div",{class:"s-offer-slide-offer-entry-price"},r("span",null,e.offer_with_price_text),r("span",{class:"s-offer-slide-offer-entry-price-amount"},t.discounted_amount)," ",r("span",null,e.userCurrency)):""),r("p",{class:"s-offer-slide-offer-entry-price-amount-percent"},e.with_discount_text,"(",r("span",null,t.percentage,!!t.percentage&&"%"),")")))}))};Object.defineProperty(e.prototype,"host",{get:function(){return s(this)},enumerable:false,configurable:true});return e}());o.style=i}}}));
5
- //# sourceMappingURL=p-09fea270.system.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["PageType","OfferType","sallaOfferCss","SallaOffer","exports","class_1","hostRef","_this","this","productCardComponent","offersList","isMultipleBank","isBankOffer","canRender","showOffer","salla","config","get","offer_with_price_text","lang","price","with_discount_text","product_discount_text","special_offer_text","multipleBankOfferTitleText","multipleBankOfferTitleDescription","buy_quantity_text","quantity","onLoaded","onReady","currentPage","userCurrency","symbol","categorySlot","_a","host","querySelector","innerHTML","prototype","getEndpointByPageName","Cart","Salla","cart","getCurrentCartId","cartId","_c","sent","concat","ProductDetail","componentWillLoad","hasCustomComponent","customElements","Promise","resolve","then","url","is_page","Error","__awaiter","_d","__generator","_e","api","request","apply","res","data","length","offer","find","Bank","BuyXGetY","DiscountsTable","includes","type","filter","getY","details","source","product","fetch","source_value","response","products","categories","findCategories","offers","storage","set","getStorageKey","stored_at","Date","getTime","catch","error","logger","warn","componentDidLoad","nav","classList","add","ids","found","_i","categories_1","category","id_","id","push","sub_categories","pageSlug","replace","locale","getLocale","currencyCode","currency","code","getOffersFromStorage","storageOffers","remove","render","blockTitle","title","blockSubTitle","description","titles","h","class","Object","assign","slot","renderSectionForOfferType","offerType","renderBankSection","renderBuyXGetYSection","renderDiscountTableSection","getCategoriesSection","icon","name","map","_b","bankOffer","src","logo","cdn","alt","payments","payment","discount_value","discount_type","generateBankDescription","desc","value","RegExp","show_discounted_price","show_price_after_discount","discounts","discount","discounted_amount","percentage"],"sources":["src/components/salla-offer/interfaces.ts","src/components/salla-offer/salla-offer.scss?tag=salla-offer","src/components/salla-offer/salla-offer.tsx"],"sourcesContent":["export enum PageType {\n ProductDetail = \"product.single\",\n Cart = \"cart\"\n}\n\nexport enum OfferType {\n Conditional = \"conditional\",\n PercentageOrFixed = \"fixed\",\n DiscountsTable = \"discounts_table\",\n Bank = \"bank\",\n BuyXGetY = \"buy_x_get_y\"\n}\n\n\nexport interface DiscountDetailFixed {\n discount_type: \"fixed\";\n min_spend: number;\n discount_value: number;\n}\n\nexport interface DiscountDetailFreeProduct {\n discount_type: \"free_product\";\n min_spend: number;\n discount_value: number;\n}\n\nexport interface DiscountDetailConditional extends Array<DiscountDetailFixed | DiscountDetailFreeProduct> {}\n\nexport interface DiscountDetailPercentageFixed {\n apply_to: \"all\" | \"products\" | \"categories\" | \"payment_methods\";\n targets: Array<string | number>;\n ends_at: number;\n min_spend: number;\n discount_value: number;\n}\n\nexport interface Discount {\n discounted_amount: any;\n quantity: number;\n percentage: number;\n}\n\nexport interface DiscountDetailTable {\n apply_to: \"all\" | \"products\" | \"categories\" | \"payment_methods\" | \"order\";\n discount_value: number;\n ends_at: string;\n min_items: number;\n min_spend: number;\n show_price_after_discount: boolean;\n discounts: Discount[];\n}\n\nexport interface BankOffer {\n logo: string;\n discount_value: number;\n discount_type: string;\n minimum_spend: number;\n payments: string[];\n}\n\nexport interface BuyXGetYDetail {\n ends_at: number;\n buy: {\n source: \"product\" | \"category\";\n source_value: number[];\n quantity: number;\n };\n get: {\n source: \"products\" | \"category\";\n source_value: number[];\n type: \"free_product\" | \"percentage\" | \"fixed\";\n value: number;\n products?: Product[];//we will set this dynamically\n categories?: Category[];//we will set this dynamically\n };\n}\n\nexport interface Offer {\n id: number;\n title: string;\n description: string;\n type: OfferType | \"conditional\" | \"fixed\" | \"discounts_table\" | \"bank\" | \"buy_x_get_y\";\n details: DiscountDetailConditional | DiscountDetailPercentageFixed | DiscountDetailTable | BankOffer | BuyXGetYDetail;\n}\n\nexport interface Product {\n id: number;\n type: string;\n status: string;\n is_available: boolean;\n sku: string;\n name: string;\n price: { amount: number; currency: string; };\n promotion: { title: string; sub_title: string; };\n sale_price: { amount: number; currency: string; };\n regular_price: { amount: number; currency: string; };\n currency: string;\n url: string;\n thumbnail: string;\n has_special_price: boolean;\n favorite?: any;\n}\n\nexport interface Category {\n id?: string;\n id_?: number;\n name?: string;\n url?: string;\n icon?: string;\n sub_categories?: Category[];\n items?: any[] | null;\n}\n\nexport interface Currency {\n code: string | 'SAR';\n name: string;\n symbol: string;\n amount?: number;\n country_code?: string;\n}\n",".s-offer-wrapper .s-slider-block__title {\n h2 {\n font-size: 1.125rem;\n line-height: 1.75rem;\n color: #f87171;\n\n &::before {\n font-family: \"sallaicons\";\n content: \"\\ee30\" !important;\n position: absolute;\n top: 1rem;\n font-size: 3rem;\n font-weight: 400;\n line-height: 1;\n color: #fef2f2;\n }\n }\n}\n\n.s-offer-bank-wrapper-sinlge-item{\n display: flex;\n align-items: center !important;\n gap: 14px;\n}\n\n.s-offer-bank-wrapper {\n display: flex !important;\n width: 100% !important;\n}\n\n// .s-offer-bank-wrapper {\n // \n// }","import { Component, Element, Prop, State, h } from '@stencil/core';\nimport { Offer, Category, Product, Discount, Currency, BuyXGetYDetail, PageType, OfferType, BankOffer, DiscountDetailTable } from './interfaces';\n\n\n/**\n * `salla-offer` is a StencilJS component that displays offers, categories, products, banks, and discount information.\n * It uses the `salla-slider` component for carousel functionality.\n *\n * @slot category - The slot for customizing the category entry layout.\n * \n * @csspart custom - Custom CSS part to target specific elements in the component.\n *\n * @example\n * <salla-offer product-id=\"123\"></salla-offer>\n */\n@Component({\n tag: 'salla-offer',\n styleUrl: 'salla-offer.scss',\n})\nexport class SallaOffer {\n\n constructor() {\n // Language\n salla.lang.onLoaded(() => {\n this.offer_with_price_text = salla.lang.get('pages.offer.with_price');\n this.with_discount_text = salla.lang.get('pages.products.with_a_discount');\n this.product_discount_text = salla.lang.get('pages.products.discount');\n this.special_offer_text = salla.lang.get('pages.products.special_offer');\n this.multipleBankOfferTitleText = salla.lang.get('pages.offer.multiple_bank_offers_title');\n this.multipleBankOfferTitleDescription = salla.lang.get('pages.offer.multiple_bank_offers_message');\n this.buy_quantity_text(0);\n })\n\n salla.onReady(() => {\n this.currentPage = salla.config.get('page.slug')\n this.userCurrency = salla.config.get('currencies')[salla.config.get('user.currency_code')].symbol\n });\n\n this.categorySlot = this.host.querySelector('[slot=\"category\"]')?.innerHTML || '<a href={url} class=\"s-offer-slide-cat-entry\"><i class={icon}></i><h4>{name}</h4></a>';\n }\n\n /**\n * Custom Card Component for the Salla Products List.\n *\n * This component allows you to customize the appearance of individual product cards within a Salla Products List.\n *\n * @example\n * <salla-products-list product-card-component=\"my-custom-card-style1\" ...\n * <salla-products-list product-card-component=\"my-custom-card-style2\" ...\n */\n @Prop() productCardComponent: string = 'custom-salla-product-card';\n\n // Declare component state variables\n @State() offersList: Offer[] = [];\n @State() userCurrency: Currency;\n @State() isMultipleBank: boolean = false;\n @State() title?: string;\n @State() currentPage: string;\n @State() hasCustomComponent: boolean;\n\n @State() isBankOffer: boolean = false;\n @State() canRender: boolean = false;\n @State() showOffer: boolean = salla.config.get('store.settings.product.show_special_offers');\n\n // Default translated texts\n @State() offer_with_price_text: string = salla.lang.get('pages.offer.with_price', { price: '' });\n @State() with_discount_text: string = salla.lang.get('pages.products.with_a_discount')\n @State() product_discount_text: string = salla.lang.get('pages.products.discount')\n @State() special_offer_text: string = salla.lang.get('pages.products.special_offer')\n @State() multipleBankOfferTitleText: string = salla.lang.get('pages.offer.multiple_bank_offers_title')\n @State() multipleBankOfferTitleDescription: string = salla.lang.get('pages.offer.multiple_bank_offers_message')\n @State() buy_quantity_text: (quantity: number) => string = (quantity) => salla.lang.get('pages.offer.buy_quantity', { quantity })\n\n // Reference to the host element\n @Element() host: HTMLElement;\n\n private categorySlot: string;\n\n private async getEndpointByPageName(): Promise<string> {\n if (this.currentPage == PageType.Cart) {\n const cartId = await Salla.cart.getCurrentCartId();\n return `offers/cart/${cartId}`;\n }\n\n if (this.currentPage == PageType.ProductDetail) {\n return `offers/product/${salla.config.get('page.id')}`;\n }\n\n return \"offers\";\n }\n\n componentWillLoad() {\n this.hasCustomComponent = !!customElements.get(this.productCardComponent);\n // let offers = this.getOffersFromStorage();\n // if (offers) {\n // return offers.then(offersFromStorage => this.offersList = offersFromStorage);\n // }\n\n return (new Promise(resolve => salla.onReady(resolve)))\n .then(() => {\n this.showOffer = !salla.url.is_page('product.single') || salla.config.get('store.settings.product.show_special_offers')\n if (this.showOffer) {\n return;\n }\n throw new Error(\"Merchant disabled showing the offers on product page\");\n }\n )\n .then(async () => salla.api.request(await this.getEndpointByPageName()))\n .then((res) => {\n if (!(this.offersList = res.data).length) {\n throw new Error('salla-offers:: There is no offers!');\n }\n //we support these offers only\n const offer = this.offersList.find(offer => [OfferType.Bank, OfferType.BuyXGetY, OfferType.DiscountsTable].includes(offer.type as any));\n if (!offer) {\n throw new Error('salla-offers:: Offer type not supported yet!');\n }\n //because there is no need for special handling for discounts table, just skip the other cases\n if (offer.type === OfferType.DiscountsTable) {\n return this.offersList = [offer];\n }\n\n //if it's banks offer, we need to include the other banks overs\n if ((this.isBankOffer = offer.type === OfferType.Bank)) {\n this.offersList = this.offersList.filter(offer => offer.type === OfferType.Bank);\n this.isMultipleBank = this.offersList.length > 1;\n return this.offersList;\n }\n //BuyXGetY offers\n const getY = (offer.details as BuyXGetYDetail).get;\n\n return getY.source === 'products'\n //todo:: avoid this request, and the handling for the products, just use `salla-products-slider` and don't forget to pass the customcard\n ? salla.product.api.fetch({ source: \"selected\", source_value: getY.source_value })\n .then((response: any) => {\n getY.products = response.data;\n (offer.details as any).get = getY;\n return this.offersList = [offer];\n })//set the products\n : salla.product.api.categories()//get all categories in one query, then extract only the selected one, instead of sending multi requests\n .then((res) => {\n getY.categories = this.findCategories(res.data, getY.source_value);\n (offer.details as any).get = getY;\n return this.offersList = [offer];\n });\n })\n .then((offers: Offer[]) => {\n salla.storage.set(this.getStorageKey(), { offers, stored_at: new Date().getTime() });\n this.canRender = true;\n })\n .catch((error) => {\n salla.logger.warn(error)\n });\n }\n\n componentDidLoad() {\n let nav = this.host.querySelector('.s-slider-block__title-nav');\n nav?.classList.add(\"s-offer-bank-payment-nav\")\n }\n\n\n findCategories(categories: Category[], ids: any[]): Category[] {\n let found: Category[] = [];\n\n for (const category of categories) {\n if (ids.includes(category.id_ || category.id)) { //here we are using || because we are planning to drop `id_`\n found.push(category);\n }\n if (category.sub_categories?.length > 0) {\n found = found.concat(this.findCategories(category.sub_categories, ids));\n }\n }\n\n return found;\n }\n\n //todo::add to the key params, to make sure it will support multi offers in the same page if it's wanted\n getStorageKey(): string {\n try {\n const pageSlug = salla.config.get('page.slug').replace('.', '_');\n const locale = salla.lang.getLocale();\n const currencyCode = salla.config.currency().code;\n\n if (!pageSlug || !locale || !currencyCode) {\n throw new Error('Unable to get the storage key.');\n }\n\n return `s-offers-${pageSlug}-${salla.config.get('page.id')}-${locale}-${currencyCode}`;\n } catch (error) {\n return '';\n }\n }\n\n //@ts-ignore\n getOffersFromStorage(): null | Promise<Offer[]> {\n let storageOffers = salla.storage.get(this.getStorageKey());\n //if the offers not existed, or it has been stored before 10 minutes from now, ignore it;\n if (!storageOffers || storageOffers.stored_at < (new Date().getTime() - 10 * 60 * 1000)) {\n salla.storage.remove(this.getStorageKey());\n return null;\n }\n this.canRender = true;\n\n //return it as resolve to support .then\n return Promise.resolve(storageOffers.offers);\n }\n\n render() {\n if (!this.offersList.length || !this.canRender || !this.showOffer) return null;\n const offer: Offer = this.offersList[0];\n\n const blockTitle = this.isBankOffer ? (this.isMultipleBank ? this.multipleBankOfferTitleText : null) : offer.title;\n const blockSubTitle = this.isBankOffer ? (this.isMultipleBank ? this.multipleBankOfferTitleDescription : null) : offer.description;\n\n const titles = {\n 'block-title': blockTitle,\n 'block-subTitle': blockSubTitle,\n 'show-controls': this.isMultipleBank\n };\n\n return (\n <div class=\"s-offer-wrapper\">\n {<p class=\"s-offer-corner-badge\">{this.special_offer_text}</p>}\n {/* discounts table is not a slider, it's a table🤔 */}\n {/* single bank offer is not a slider, it's a dom without slider🤔 */}\n <salla-slider type=\"carousel\" id=\"offer-slider\" {...titles}>\n <div slot='items'>\n {this.renderSectionForOfferType(offer.type)}\n </div>\n </salla-slider>\n </div>\n );\n }\n\n private renderSectionForOfferType(offerType: OfferType | string) {\n if (this.isBankOffer) {\n return this.renderBankSection();\n }\n if (offerType == OfferType.BuyXGetY) {\n return this.renderBuyXGetYSection();\n }\n\n return this.renderDiscountTableSection();\n }\n\n /**\n * Generates content for the categories section.\n *\n * @param offeredCategories - An array of Category objects.\n * @returns An array of HTML elements representing categories.\n */\n private getCategoriesSection(category: Category) {\n return <div class=\"s-offer-slide-one-sixth swiper-slide\" innerHTML={this.categorySlot\n .replace(/\\{url\\}/g, category.url)\n .replace(/\\{icon\\}/g, category.icon || \"sicon-store\")\n .replace(/\\{name\\}/g, category.name)}></div>\n }\n\n private renderBuyXGetYSection() {\n const details = (this.offersList[0].details as BuyXGetYDetail)\n return [\n details.get.products?.map((product: Product) => (\n <div class=\"s-offer-slide-one-fourth\">\n {this.hasCustomComponent\n ? <this.productCardComponent product={product}></this.productCardComponent>\n : <salla-product-card shadow-on-hover product={product}></salla-product-card>}\n </div>\n )),\n details.get.categories?.map((category: Category) => this.getCategoriesSection(category))\n ];\n }\n\n /**\n * Generates content for the bank section.\n *\n * @param offeredBank - An array of Bank objects.\n * @param name - The title of the current offer.\n * @param description - The description of the current offer.\n * @returns An array of HTML elements representing banks.\n * \n * TODO: loop over the list and filter bank types and pass it to this function\n */\n private renderBankSection() {\n return this.offersList.map((bankOffer: Offer) => {\n return <div class={{ \"s-offer-slide-one-sixth\": this.isMultipleBank, \"s-offer-bank-wrapper-sinlge-item\": !this.isMultipleBank }}>\n <div class={{ \"s-offer-bank-wrapper\": true, \"s-offer-slide-one-sixth\": !this.isMultipleBank, \"s-offer-bank-wrapper-multi-spacer\": this.isMultipleBank }}>\n <div class=\"s-offer-bank-logo\">\n <img src={(bankOffer.details as BankOffer).logo || salla.url.cdn('images/s-empty.png')} data-src={(bankOffer.details as BankOffer).logo} alt={bankOffer.title + \" offer\"} />\n </div>\n <ul class=\"s-offer-bank-payment-wrapper\">\n {(bankOffer.details as BankOffer).payments.map((payment: string) => {\n return <li class=\"s-offer-bank-payment-single\">\n <img\n src={salla.url.cdn('images/payment/' + payment + '.png') || salla.url.cdn('images/s-empty.png')}\n data-src={salla.url.cdn('images/payment/' + payment + '.png')}\n alt=\"payment\" />\n </li>\n })}\n </ul>\n {this.isMultipleBank ?\n <p class=\"s-offer-bank-payment-discount-percent\">\n {`${this.product_discount_text} ${(bankOffer.details as BankOffer).discount_value}${(bankOffer.details as BankOffer).discount_type === \"percentage\" && '%'}`}\n </p>\n : \"\"}\n </div>\n {!this.isMultipleBank ?\n <div class=\"s-offer-bank-message s-offer-slide-one-fourth\">\n <h2>{this.offersList[0].title}</h2>\n <p innerHTML={this.generateBankDescription(this.offersList[0].description, (bankOffer.details as BankOffer).discount_value)}></p>\n </div>\n : \"\"}\n </div>\n })\n }\n\n private generateBankDescription(desc: string, value): string {\n return desc.replace(new RegExp(`${value} %`), `<span class=\"s-offer-bank-message-amount\">${value} %</span>`)\n }\n\n /**\n * Generates content for the discount table section.\n *\n * @param discountTable - An array of Discount objects.\n * @returns An array of HTML elements representing discounts_table.\n */\n private renderDiscountTableSection() {\n const offer: Offer = this.offersList[0];\n let show_discounted_price = (offer.details as DiscountDetailTable).show_price_after_discount;\n return (this.offersList[0].details as DiscountDetailTable).discounts?.map((discount: Discount) => <div class=\"s-offer-slide-one-fourth\">\n <div class=\"s-offer-slide-offer-entry\">\n <div class=\"s-offer-slide-offer-entry-price-quantity-container\">\n <p class=\"s-offer-slide-offer-entry-quantity\">{this.buy_quantity_text(discount.quantity)}</p>\n {show_discounted_price ?\n <div class=\"s-offer-slide-offer-entry-price\">\n <span>{this.offer_with_price_text}</span>\n <span class=\"s-offer-slide-offer-entry-price-amount\">{discount.discounted_amount}</span> <span>{this.userCurrency}</span>\n </div> : \"\"}\n </div>\n <p class=\"s-offer-slide-offer-entry-price-amount-percent\">{this.with_discount_text}\n (<span>{discount.percentage}{!!discount.percentage && '%'}</span>)</p>\n </div>\n </div>\n )\n }\n\n}\n"],"mappings":";;;qJAAA,IAAYA,GAAZ,SAAYA,GACVA,EAAA,kCACAA,EAAA,cACD,EAHD,CAAYA,MAGX,KAED,IAAYC,GAAZ,SAAYA,GACVA,EAAA,6BACAA,EAAA,6BACAA,EAAA,oCACAA,EAAA,eACAA,EAAA,yBACD,EAND,CAAYA,MAMX,KCXD,IAAMC,EAAgB,+gB,ICmBTC,EAAUC,EAAA,yBAErB,SAAAC,EAAAC,GAAA,IAAAC,EAAAC,K,gBA6BQA,KAAoBC,qBAAW,4BAG9BD,KAAUE,WAAY,GAEtBF,KAAcG,eAAY,MAK1BH,KAAWI,YAAY,MACvBJ,KAASK,UAAY,MACrBL,KAASM,UAAYC,MAAMC,OAAOC,IAAI,8CAGtCT,KAAAU,sBAAgCH,MAAMI,KAAKF,IAAI,yBAA0B,CAAEG,MAAO,KAClFZ,KAAkBa,mBAAWN,MAAMI,KAAKF,IAAI,kCAC5CT,KAAqBc,sBAAWP,MAAMI,KAAKF,IAAI,2BAC/CT,KAAkBe,mBAAWR,MAAMI,KAAKF,IAAI,gCAC5CT,KAA0BgB,2BAAWT,MAAMI,KAAKF,IAAI,0CACpDT,KAAiCiB,kCAAWV,MAAMI,KAAKF,IAAI,4CAC3DT,KAAAkB,kBAAkD,SAACC,GAAa,OAAAZ,MAAMI,KAAKF,IAAI,2BAA4B,CAAEU,SAAQA,GAArD,EAhDvEZ,MAAMI,KAAKS,UAAS,WAClBrB,EAAKW,sBAAwBH,MAAMI,KAAKF,IAAI,0BAC5CV,EAAKc,mBAAqBN,MAAMI,KAAKF,IAAI,kCACzCV,EAAKe,sBAAwBP,MAAMI,KAAKF,IAAI,2BAC5CV,EAAKgB,mBAAqBR,MAAMI,KAAKF,IAAI,gCACzCV,EAAKiB,2BAA6BT,MAAMI,KAAKF,IAAI,0CACjDV,EAAKkB,kCAAoCV,MAAMI,KAAKF,IAAI,4CACxDV,EAAKmB,kBAAkB,EACzB,IAEAX,MAAMc,SAAQ,WACZtB,EAAKuB,YAAcf,MAAMC,OAAOC,IAAI,aACpCV,EAAKwB,aAAehB,MAAMC,OAAOC,IAAI,cAAcF,MAAMC,OAAOC,IAAI,uBAAuBe,MAC7F,IAEAxB,KAAKyB,eAAeC,EAAA1B,KAAK2B,KAAKC,cAAc,wBAAoB,MAAAF,SAAA,SAAAA,EAAEG,YAAa,uFAChF,CAuCahC,EAAAiC,UAAAC,sBAAN,W,uHACF/B,KAAKsB,aAAe9B,EAASwC,MAA7B,YACa,SAAMC,MAAMC,KAAKC,oB,OAA1BC,EAASC,EAAAC,OACf,SAAO,eAAAC,OAAeH,I,OAGxB,GAAIpC,KAAKsB,aAAe9B,EAASgD,cAAe,CAC9C,SAAO,kBAAAD,OAAkBhC,MAAMC,OAAOC,IAAI,Y,CAG5C,SAAO,U,QAGTZ,EAAAiC,UAAAW,kBAAA,eAAA1C,EAAAC,KACEA,KAAK0C,qBAAuBC,eAAelC,IAAIT,KAAKC,sBAMpD,OAAO,IAAK2C,SAAQ,SAAAC,GAAW,OAAAtC,MAAMc,QAAQwB,EAAd,IAC5BC,MAAK,WACJ/C,EAAKO,WAAaC,MAAMwC,IAAIC,QAAQ,mBAAqBzC,MAAMC,OAAOC,IAAI,8CAC1E,GAAIV,EAAKO,UAAW,CAClB,M,CAEF,MAAM,IAAI2C,MAAM,uDAClB,IAECH,MAAK,kBAAAI,UAAAnD,OAAA,yBAAAsC,EAAAc,EAAA,OAAAC,YAAApD,MAAA,SAAAqD,G,uBAAYF,GAAAd,EAAA9B,MAAM+C,KAAIC,QAAQ,SAAMvD,KAAK+B,yB,OAA7B,SAAAoB,EAAAK,MAAAnB,EAAA,CAAkBgB,EAAAf,U,UACnCQ,MAAK,SAACW,GACL,KAAM1D,EAAKG,WAAauD,EAAIC,MAAMC,OAAQ,CACxC,MAAM,IAAIV,MAAM,qC,CAGlB,IAAMW,EAAQ7D,EAAKG,WAAW2D,MAAK,SAAAD,GAAS,OAACnE,EAAUqE,KAAMrE,EAAUsE,SAAUtE,EAAUuE,gBAAgBC,SAASL,EAAMM,KAA9E,IAC5C,IAAKN,EAAO,CACV,MAAM,IAAIX,MAAM,+C,CAGlB,GAAIW,EAAMM,OAASzE,EAAUuE,eAAgB,CAC3C,OAAOjE,EAAKG,WAAa,CAAC0D,E,CAI5B,GAAK7D,EAAKK,YAAcwD,EAAMM,OAASzE,EAAUqE,KAAO,CACtD/D,EAAKG,WAAaH,EAAKG,WAAWiE,QAAO,SAAAP,GAAS,OAAAA,EAAMM,OAASzE,EAAUqE,IAAzB,IAClD/D,EAAKI,eAAiBJ,EAAKG,WAAWyD,OAAS,EAC/C,OAAO5D,EAAKG,U,CAGd,IAAMkE,EAAQR,EAAMS,QAA2B5D,IAE/C,OAAO2D,EAAKE,SAAW,WAEnB/D,MAAMgE,QAAQjB,IAAIkB,MAAM,CAAEF,OAAQ,WAAYG,aAAcL,EAAKK,eAChE3B,MAAK,SAAC4B,GACLN,EAAKO,SAAWD,EAAShB,KACxBE,EAAMS,QAAgB5D,IAAM2D,EAC7B,OAAOrE,EAAKG,WAAa,CAAC0D,E,IAE5BrD,MAAMgE,QAAQjB,IAAIsB,aACjB9B,MAAK,SAACW,GACLW,EAAKQ,WAAa7E,EAAK8E,eAAepB,EAAIC,KAAMU,EAAKK,cACpDb,EAAMS,QAAgB5D,IAAM2D,EAC7B,OAAOrE,EAAKG,WAAa,CAAC0D,EAC5B,GACN,IACCd,MAAK,SAACgC,GACLvE,MAAMwE,QAAQC,IAAIjF,EAAKkF,gBAAiB,CAAEH,OAAMA,EAAEI,WAAW,IAAIC,MAAOC,YACxErF,EAAKM,UAAY,IACnB,IACCgF,OAAM,SAACC,GACN/E,MAAMgF,OAAOC,KAAKF,EACpB,G,EAGJzF,EAAAiC,UAAA2D,iBAAA,WACE,IAAIC,EAAM1F,KAAK2B,KAAKC,cAAc,8BAClC8D,IAAG,MAAHA,SAAG,SAAHA,EAAKC,UAAUC,IAAI,2B,EAIrB/F,EAAAiC,UAAA+C,eAAA,SAAeD,EAAwBiB,G,MACrC,IAAIC,EAAoB,GAExB,IAAuB,IAAAC,EAAA,EAAAC,EAAApB,EAAAmB,EAAAC,EAAArC,OAAAoC,IAAY,CAA9B,IAAME,EAAQD,EAAAD,GACjB,GAAIF,EAAI5B,SAASgC,EAASC,KAAOD,EAASE,IAAK,CAC7CL,EAAMM,KAAKH,E,CAEb,KAAIvE,EAAAuE,EAASI,kBAAc,MAAA3E,SAAA,SAAAA,EAAEiC,QAAS,EAAG,CACvCmC,EAAQA,EAAMvD,OAAOvC,KAAK6E,eAAeoB,EAASI,eAAgBR,G,EAItE,OAAOC,C,EAITjG,EAAAiC,UAAAmD,cAAA,WACE,IACE,IAAMqB,EAAW/F,MAAMC,OAAOC,IAAI,aAAa8F,QAAQ,IAAK,KAC5D,IAAMC,EAASjG,MAAMI,KAAK8F,YAC1B,IAAMC,EAAenG,MAAMC,OAAOmG,WAAWC,KAE7C,IAAKN,IAAaE,IAAWE,EAAc,CACzC,MAAM,IAAIzD,MAAM,iC,CAGlB,MAAO,YAAAV,OAAY+D,EAAQ,KAAA/D,OAAIhC,MAAMC,OAAOC,IAAI,WAAU,KAAA8B,OAAIiE,EAAM,KAAAjE,OAAImE,E,CACxE,MAAOpB,GACP,MAAO,E,GAKXzF,EAAAiC,UAAA+E,qBAAA,WACE,IAAIC,EAAgBvG,MAAMwE,QAAQtE,IAAIT,KAAKiF,iBAE3C,IAAK6B,GAAiBA,EAAc5B,WAAa,IAAIC,MAAOC,UAAY,GAAK,GAAK,IAAO,CACvF7E,MAAMwE,QAAQgC,OAAO/G,KAAKiF,iBAC1B,OAAO,I,CAETjF,KAAKK,UAAY,KAGjB,OAAOuC,QAAQC,QAAQiE,EAAchC,O,EAGvCjF,EAAAiC,UAAAkF,OAAA,WACE,IAAKhH,KAAKE,WAAWyD,SAAW3D,KAAKK,YAAcL,KAAKM,UAAW,OAAO,KAC1E,IAAMsD,EAAe5D,KAAKE,WAAW,GAErC,IAAM+G,EAAajH,KAAKI,YAAeJ,KAAKG,eAAiBH,KAAKgB,2BAA6B,KAAQ4C,EAAMsD,MAC7G,IAAMC,EAAgBnH,KAAKI,YAAeJ,KAAKG,eAAiBH,KAAKiB,kCAAoC,KAAQ2C,EAAMwD,YAEvH,IAAMC,EAAS,CACb,cAAeJ,EACf,iBAAkBE,EAClB,gBAAiBnH,KAAKG,gBAGxB,OACEmH,EAAA,OAAKC,MAAM,mBACRD,EAAA,KAAGC,MAAM,wBAAwBvH,KAAKe,oBAGvCuG,EAAc,eAAAE,OAAAC,OAAA,CAAAvD,KAAK,WAAWiC,GAAG,gBAAmBkB,GAClDC,EAAA,OAAKI,KAAK,SACP1H,KAAK2H,0BAA0B/D,EAAMM,Q,EAOxCrE,EAAAiC,UAAA6F,0BAAA,SAA0BC,GAChC,GAAI5H,KAAKI,YAAa,CACpB,OAAOJ,KAAK6H,mB,CAEd,GAAID,GAAanI,EAAUsE,SAAU,CACnC,OAAO/D,KAAK8H,uB,CAGd,OAAO9H,KAAK+H,4B,EASNlI,EAAAiC,UAAAkG,qBAAA,SAAqB/B,GAC3B,OAAOqB,EAAA,OAAKC,MAAM,uCAAuC1F,UAAW7B,KAAKyB,aACtE8E,QAAQ,WAAYN,EAASlD,KAC7BwD,QAAQ,YAAaN,EAASgC,MAAQ,eACtC1B,QAAQ,YAAaN,EAASiC,O,EAG3BrI,EAAAiC,UAAAgG,sBAAA,eAAA/H,EAAAC,K,QACN,IAAMqE,EAAWrE,KAAKE,WAAW,GAAGmE,QACpC,MAAO,EACL3C,EAAA2C,EAAQ5D,IAAIkE,YAAU,MAAAjD,SAAA,SAAAA,EAAAyG,KAAI,SAAC5D,GAAgB,OACzC+C,EAAK,OAAAC,MAAM,4BACRxH,EAAK2C,mBACF4E,EAACvH,EAAKE,qBAAqB,CAAAsE,QAASA,IACpC+C,EAAA,6CAAoC/C,QAASA,IAJV,KAO3C6D,EAAA/D,EAAQ5D,IAAImE,cAAU,MAAAwD,SAAA,SAAAA,EAAED,KAAI,SAAClC,GAAuB,OAAAlG,EAAKiI,qBAAqB/B,EAA1B,I,EAchDpG,EAAAiC,UAAA+F,kBAAA,eAAA9H,EAAAC,KACN,OAAOA,KAAKE,WAAWiI,KAAI,SAACE,GAC1B,OAAOf,EAAA,OAAKC,MAAO,CAAE,0BAA2BxH,EAAKI,eAAgB,oCAAqCJ,EAAKI,iBAC7GmH,EAAA,OAAKC,MAAO,CAAE,uBAAwB,KAAM,2BAA4BxH,EAAKI,eAAgB,oCAAqCJ,EAAKI,iBACrImH,EAAK,OAAAC,MAAM,qBACTD,EAAA,OAAKgB,IAAMD,EAAUhE,QAAsBkE,MAAQhI,MAAMwC,IAAIyF,IAAI,sBAAqB,WAAaH,EAAUhE,QAAsBkE,KAAME,IAAKJ,EAAUnB,MAAQ,YAElKI,EAAA,MAAIC,MAAM,gCACNc,EAAUhE,QAAsBqE,SAASP,KAAI,SAACQ,GAC9C,OAAOrB,EAAA,MAAIC,MAAM,+BACfD,EAAA,OACEgB,IAAK/H,MAAMwC,IAAIyF,IAAI,kBAAoBG,EAAU,SAAWpI,MAAMwC,IAAIyF,IAAI,sBAAqB,WACrFjI,MAAMwC,IAAIyF,IAAI,kBAAoBG,EAAU,QACtDF,IAAI,YAEV,KAED1I,EAAKI,eACJmH,EAAG,KAAAC,MAAM,yCACN,GAAAhF,OAAGxC,EAAKe,sBAAqB,KAAAyB,OAAK8F,EAAUhE,QAAsBuE,gBAAcrG,OAAI8F,EAAUhE,QAAsBwE,gBAAkB,cAAgB,MAEvJ,KAEJ9I,EAAKI,eACLmH,EAAK,OAAAC,MAAM,iDACTD,EAAK,UAAAvH,EAAKG,WAAW,GAAGgH,OACxBI,EAAG,KAAAzF,UAAW9B,EAAK+I,wBAAwB/I,EAAKG,WAAW,GAAGkH,YAAciB,EAAUhE,QAAsBuE,mBAE5G,GAER,G,EAGM/I,EAAAiC,UAAAgH,wBAAA,SAAwBC,EAAcC,GAC5C,OAAOD,EAAKxC,QAAQ,IAAI0C,OAAO,GAAA1G,OAAGyG,EAAK,OAAO,6CAAAzG,OAA6CyG,EAAK,a,EAS1FnJ,EAAAiC,UAAAiG,2BAAA,eAAAhI,EAAAC,K,MACN,IAAM4D,EAAe5D,KAAKE,WAAW,GACrC,IAAIgJ,EAAyBtF,EAAMS,QAAgC8E,0BACnE,OAAOzH,EAAC1B,KAAKE,WAAW,GAAGmE,QAAgC+E,aAAS,MAAA1H,SAAA,SAAAA,EAAEyG,KAAI,SAACkB,GAAuB,OAAA/B,EAAA,OAAKC,MAAM,4BAC3GD,EAAK,OAAAC,MAAM,6BACTD,EAAK,OAAAC,MAAM,sDACTD,EAAA,KAAGC,MAAM,sCAAsCxH,EAAKmB,kBAAkBmI,EAASlI,WAC9E+H,EACC5B,EAAK,OAAAC,MAAM,mCACTD,EAAO,YAAAvH,EAAKW,uBACZ4G,EAAA,QAAMC,MAAM,0CAA0C8B,EAASC,mBAAyB,IAAChC,EAAO,YAAAvH,EAAKwB,eAC9F,IAEb+F,EAAG,KAAAC,MAAM,kDAAkDxH,EAAKc,mBAAkB,IAC/EyG,EAAA,YAAO+B,EAASE,aAAcF,EAASE,YAAc,KAAW,MAX2B,G,yHArT/E,I","ignoreList":[]}
@@ -1,5 +0,0 @@
1
- /*!
2
- * Crafted with ❤ by Salla
3
- */
4
- import{r as s,h as e,g as t}from"./p-vIXrwQyG.js";var r;(function(s){s["ProductDetail"]="product.single";s["Cart"]="cart"})(r||(r={}));var a;(function(s){s["Conditional"]="conditional";s["PercentageOrFixed"]="fixed";s["DiscountsTable"]="discounts_table";s["Bank"]="bank";s["BuyXGetY"]="buy_x_get_y"})(a||(a={}));const i='.s-offer-wrapper .s-slider-block__title h2{font-size:1.125rem;line-height:1.75rem;color:#f87171}.s-offer-wrapper .s-slider-block__title h2::before{font-family:"sallaicons";content:"\\ee30" !important;position:absolute;top:1rem;font-size:3rem;font-weight:400;line-height:1;color:#fef2f2}.s-offer-bank-wrapper-sinlge-item{display:-ms-flexbox;display:flex;-ms-flex-align:center !important;align-items:center !important;gap:14px}.s-offer-bank-wrapper{display:-ms-flexbox !important;display:flex !important;width:100% !important}';const l=class{constructor(e){s(this,e);var t;this.productCardComponent="custom-salla-product-card";this.offersList=[];this.isMultipleBank=false;this.isBankOffer=false;this.canRender=false;this.showOffer=salla.config.get("store.settings.product.show_special_offers");this.offer_with_price_text=salla.lang.get("pages.offer.with_price",{price:""});this.with_discount_text=salla.lang.get("pages.products.with_a_discount");this.product_discount_text=salla.lang.get("pages.products.discount");this.special_offer_text=salla.lang.get("pages.products.special_offer");this.multipleBankOfferTitleText=salla.lang.get("pages.offer.multiple_bank_offers_title");this.multipleBankOfferTitleDescription=salla.lang.get("pages.offer.multiple_bank_offers_message");this.buy_quantity_text=s=>salla.lang.get("pages.offer.buy_quantity",{quantity:s});salla.lang.onLoaded((()=>{this.offer_with_price_text=salla.lang.get("pages.offer.with_price");this.with_discount_text=salla.lang.get("pages.products.with_a_discount");this.product_discount_text=salla.lang.get("pages.products.discount");this.special_offer_text=salla.lang.get("pages.products.special_offer");this.multipleBankOfferTitleText=salla.lang.get("pages.offer.multiple_bank_offers_title");this.multipleBankOfferTitleDescription=salla.lang.get("pages.offer.multiple_bank_offers_message");this.buy_quantity_text(0)}));salla.onReady((()=>{this.currentPage=salla.config.get("page.slug");this.userCurrency=salla.config.get("currencies")[salla.config.get("user.currency_code")].symbol}));this.categorySlot=((t=this.host.querySelector('[slot="category"]'))===null||t===void 0?void 0:t.innerHTML)||'<a href={url} class="s-offer-slide-cat-entry"><i class={icon}></i><h4>{name}</h4></a>'}async getEndpointByPageName(){if(this.currentPage==r.Cart){const s=await Salla.cart.getCurrentCartId();return`offers/cart/${s}`}if(this.currentPage==r.ProductDetail){return`offers/product/${salla.config.get("page.id")}`}return"offers"}componentWillLoad(){this.hasCustomComponent=!!customElements.get(this.productCardComponent);return new Promise((s=>salla.onReady(s))).then((()=>{this.showOffer=!salla.url.is_page("product.single")||salla.config.get("store.settings.product.show_special_offers");if(this.showOffer){return}throw new Error("Merchant disabled showing the offers on product page")})).then((async()=>salla.api.request(await this.getEndpointByPageName()))).then((s=>{if(!(this.offersList=s.data).length){throw new Error("salla-offers:: There is no offers!")}const e=this.offersList.find((s=>[a.Bank,a.BuyXGetY,a.DiscountsTable].includes(s.type)));if(!e){throw new Error("salla-offers:: Offer type not supported yet!")}if(e.type===a.DiscountsTable){return this.offersList=[e]}if(this.isBankOffer=e.type===a.Bank){this.offersList=this.offersList.filter((s=>s.type===a.Bank));this.isMultipleBank=this.offersList.length>1;return this.offersList}const t=e.details.get;return t.source==="products"?salla.product.api.fetch({source:"selected",source_value:t.source_value}).then((s=>{t.products=s.data;e.details.get=t;return this.offersList=[e]})):salla.product.api.categories().then((s=>{t.categories=this.findCategories(s.data,t.source_value);e.details.get=t;return this.offersList=[e]}))})).then((s=>{salla.storage.set(this.getStorageKey(),{offers:s,stored_at:(new Date).getTime()});this.canRender=true})).catch((s=>{salla.logger.warn(s)}))}componentDidLoad(){let s=this.host.querySelector(".s-slider-block__title-nav");s===null||s===void 0?void 0:s.classList.add("s-offer-bank-payment-nav")}findCategories(s,e){var t;let r=[];for(const a of s){if(e.includes(a.id_||a.id)){r.push(a)}if(((t=a.sub_categories)===null||t===void 0?void 0:t.length)>0){r=r.concat(this.findCategories(a.sub_categories,e))}}return r}getStorageKey(){try{const s=salla.config.get("page.slug").replace(".","_");const e=salla.lang.getLocale();const t=salla.config.currency().code;if(!s||!e||!t){throw new Error("Unable to get the storage key.")}return`s-offers-${s}-${salla.config.get("page.id")}-${e}-${t}`}catch(s){return""}}getOffersFromStorage(){let s=salla.storage.get(this.getStorageKey());if(!s||s.stored_at<(new Date).getTime()-10*60*1e3){salla.storage.remove(this.getStorageKey());return null}this.canRender=true;return Promise.resolve(s.offers)}render(){if(!this.offersList.length||!this.canRender||!this.showOffer)return null;const s=this.offersList[0];const t=this.isBankOffer?this.isMultipleBank?this.multipleBankOfferTitleText:null:s.title;const r=this.isBankOffer?this.isMultipleBank?this.multipleBankOfferTitleDescription:null:s.description;const a={"block-title":t,"block-subTitle":r,"show-controls":this.isMultipleBank};return e("div",{class:"s-offer-wrapper"},e("p",{class:"s-offer-corner-badge"},this.special_offer_text),e("salla-slider",Object.assign({type:"carousel",id:"offer-slider"},a),e("div",{slot:"items"},this.renderSectionForOfferType(s.type))))}renderSectionForOfferType(s){if(this.isBankOffer){return this.renderBankSection()}if(s==a.BuyXGetY){return this.renderBuyXGetYSection()}return this.renderDiscountTableSection()}getCategoriesSection(s){return e("div",{class:"s-offer-slide-one-sixth swiper-slide",innerHTML:this.categorySlot.replace(/\{url\}/g,s.url).replace(/\{icon\}/g,s.icon||"sicon-store").replace(/\{name\}/g,s.name)})}renderBuyXGetYSection(){var s,t;const r=this.offersList[0].details;return[(s=r.get.products)===null||s===void 0?void 0:s.map((s=>e("div",{class:"s-offer-slide-one-fourth"},this.hasCustomComponent?e(this.productCardComponent,{product:s}):e("salla-product-card",{"shadow-on-hover":true,product:s})))),(t=r.get.categories)===null||t===void 0?void 0:t.map((s=>this.getCategoriesSection(s)))]}renderBankSection(){return this.offersList.map((s=>e("div",{class:{"s-offer-slide-one-sixth":this.isMultipleBank,"s-offer-bank-wrapper-sinlge-item":!this.isMultipleBank}},e("div",{class:{"s-offer-bank-wrapper":true,"s-offer-slide-one-sixth":!this.isMultipleBank,"s-offer-bank-wrapper-multi-spacer":this.isMultipleBank}},e("div",{class:"s-offer-bank-logo"},e("img",{src:s.details.logo||salla.url.cdn("images/s-empty.png"),"data-src":s.details.logo,alt:s.title+" offer"})),e("ul",{class:"s-offer-bank-payment-wrapper"},s.details.payments.map((s=>e("li",{class:"s-offer-bank-payment-single"},e("img",{src:salla.url.cdn("images/payment/"+s+".png")||salla.url.cdn("images/s-empty.png"),"data-src":salla.url.cdn("images/payment/"+s+".png"),alt:"payment"}))))),this.isMultipleBank?e("p",{class:"s-offer-bank-payment-discount-percent"},`${this.product_discount_text} ${s.details.discount_value}${s.details.discount_type==="percentage"&&"%"}`):""),!this.isMultipleBank?e("div",{class:"s-offer-bank-message s-offer-slide-one-fourth"},e("h2",null,this.offersList[0].title),e("p",{innerHTML:this.generateBankDescription(this.offersList[0].description,s.details.discount_value)})):"")))}generateBankDescription(s,e){return s.replace(new RegExp(`${e} %`),`<span class="s-offer-bank-message-amount">${e} %</span>`)}renderDiscountTableSection(){var s;const t=this.offersList[0];let r=t.details.show_price_after_discount;return(s=this.offersList[0].details.discounts)===null||s===void 0?void 0:s.map((s=>e("div",{class:"s-offer-slide-one-fourth"},e("div",{class:"s-offer-slide-offer-entry"},e("div",{class:"s-offer-slide-offer-entry-price-quantity-container"},e("p",{class:"s-offer-slide-offer-entry-quantity"},this.buy_quantity_text(s.quantity)),r?e("div",{class:"s-offer-slide-offer-entry-price"},e("span",null,this.offer_with_price_text),e("span",{class:"s-offer-slide-offer-entry-price-amount"},s.discounted_amount)," ",e("span",null,this.userCurrency)):""),e("p",{class:"s-offer-slide-offer-entry-price-amount-percent"},this.with_discount_text,"(",e("span",null,s.percentage,!!s.percentage&&"%"),")")))))}get host(){return t(this)}};l.style=i;export{l as salla_offer};
5
- //# sourceMappingURL=p-9527c7bb.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["PageType","OfferType","sallaOfferCss","SallaOffer","constructor","hostRef","this","productCardComponent","offersList","isMultipleBank","isBankOffer","canRender","showOffer","salla","config","get","offer_with_price_text","lang","price","with_discount_text","product_discount_text","special_offer_text","multipleBankOfferTitleText","multipleBankOfferTitleDescription","buy_quantity_text","quantity","onLoaded","onReady","currentPage","userCurrency","symbol","categorySlot","_a","host","querySelector","innerHTML","getEndpointByPageName","Cart","cartId","Salla","cart","getCurrentCartId","ProductDetail","componentWillLoad","hasCustomComponent","customElements","Promise","resolve","then","url","is_page","Error","async","api","request","res","data","length","offer","find","Bank","BuyXGetY","DiscountsTable","includes","type","filter","getY","details","source","product","fetch","source_value","response","products","categories","findCategories","offers","storage","set","getStorageKey","stored_at","Date","getTime","catch","error","logger","warn","componentDidLoad","nav","classList","add","ids","found","category","id_","id","push","sub_categories","concat","pageSlug","replace","locale","getLocale","currencyCode","currency","code","getOffersFromStorage","storageOffers","remove","render","blockTitle","title","blockSubTitle","description","titles","h","class","Object","assign","slot","renderSectionForOfferType","offerType","renderBankSection","renderBuyXGetYSection","renderDiscountTableSection","getCategoriesSection","icon","name","map","_b","bankOffer","src","logo","cdn","alt","payments","payment","discount_value","discount_type","generateBankDescription","desc","value","RegExp","show_discounted_price","show_price_after_discount","discounts","discount","discounted_amount","percentage"],"sources":["src/components/salla-offer/interfaces.ts","src/components/salla-offer/salla-offer.scss?tag=salla-offer","src/components/salla-offer/salla-offer.tsx"],"sourcesContent":["export enum PageType {\n ProductDetail = \"product.single\",\n Cart = \"cart\"\n}\n\nexport enum OfferType {\n Conditional = \"conditional\",\n PercentageOrFixed = \"fixed\",\n DiscountsTable = \"discounts_table\",\n Bank = \"bank\",\n BuyXGetY = \"buy_x_get_y\"\n}\n\n\nexport interface DiscountDetailFixed {\n discount_type: \"fixed\";\n min_spend: number;\n discount_value: number;\n}\n\nexport interface DiscountDetailFreeProduct {\n discount_type: \"free_product\";\n min_spend: number;\n discount_value: number;\n}\n\nexport interface DiscountDetailConditional extends Array<DiscountDetailFixed | DiscountDetailFreeProduct> {}\n\nexport interface DiscountDetailPercentageFixed {\n apply_to: \"all\" | \"products\" | \"categories\" | \"payment_methods\";\n targets: Array<string | number>;\n ends_at: number;\n min_spend: number;\n discount_value: number;\n}\n\nexport interface Discount {\n discounted_amount: any;\n quantity: number;\n percentage: number;\n}\n\nexport interface DiscountDetailTable {\n apply_to: \"all\" | \"products\" | \"categories\" | \"payment_methods\" | \"order\";\n discount_value: number;\n ends_at: string;\n min_items: number;\n min_spend: number;\n show_price_after_discount: boolean;\n discounts: Discount[];\n}\n\nexport interface BankOffer {\n logo: string;\n discount_value: number;\n discount_type: string;\n minimum_spend: number;\n payments: string[];\n}\n\nexport interface BuyXGetYDetail {\n ends_at: number;\n buy: {\n source: \"product\" | \"category\";\n source_value: number[];\n quantity: number;\n };\n get: {\n source: \"products\" | \"category\";\n source_value: number[];\n type: \"free_product\" | \"percentage\" | \"fixed\";\n value: number;\n products?: Product[];//we will set this dynamically\n categories?: Category[];//we will set this dynamically\n };\n}\n\nexport interface Offer {\n id: number;\n title: string;\n description: string;\n type: OfferType | \"conditional\" | \"fixed\" | \"discounts_table\" | \"bank\" | \"buy_x_get_y\";\n details: DiscountDetailConditional | DiscountDetailPercentageFixed | DiscountDetailTable | BankOffer | BuyXGetYDetail;\n}\n\nexport interface Product {\n id: number;\n type: string;\n status: string;\n is_available: boolean;\n sku: string;\n name: string;\n price: { amount: number; currency: string; };\n promotion: { title: string; sub_title: string; };\n sale_price: { amount: number; currency: string; };\n regular_price: { amount: number; currency: string; };\n currency: string;\n url: string;\n thumbnail: string;\n has_special_price: boolean;\n favorite?: any;\n}\n\nexport interface Category {\n id?: string;\n id_?: number;\n name?: string;\n url?: string;\n icon?: string;\n sub_categories?: Category[];\n items?: any[] | null;\n}\n\nexport interface Currency {\n code: string | 'SAR';\n name: string;\n symbol: string;\n amount?: number;\n country_code?: string;\n}\n",".s-offer-wrapper .s-slider-block__title {\n h2 {\n font-size: 1.125rem;\n line-height: 1.75rem;\n color: #f87171;\n\n &::before {\n font-family: \"sallaicons\";\n content: \"\\ee30\" !important;\n position: absolute;\n top: 1rem;\n font-size: 3rem;\n font-weight: 400;\n line-height: 1;\n color: #fef2f2;\n }\n }\n}\n\n.s-offer-bank-wrapper-sinlge-item{\n display: flex;\n align-items: center !important;\n gap: 14px;\n}\n\n.s-offer-bank-wrapper {\n display: flex !important;\n width: 100% !important;\n}\n\n// .s-offer-bank-wrapper {\n // \n// }","import { Component, Element, Prop, State, h } from '@stencil/core';\nimport { Offer, Category, Product, Discount, Currency, BuyXGetYDetail, PageType, OfferType, BankOffer, DiscountDetailTable } from './interfaces';\n\n\n/**\n * `salla-offer` is a StencilJS component that displays offers, categories, products, banks, and discount information.\n * It uses the `salla-slider` component for carousel functionality.\n *\n * @slot category - The slot for customizing the category entry layout.\n * \n * @csspart custom - Custom CSS part to target specific elements in the component.\n *\n * @example\n * <salla-offer product-id=\"123\"></salla-offer>\n */\n@Component({\n tag: 'salla-offer',\n styleUrl: 'salla-offer.scss',\n})\nexport class SallaOffer {\n\n constructor() {\n // Language\n salla.lang.onLoaded(() => {\n this.offer_with_price_text = salla.lang.get('pages.offer.with_price');\n this.with_discount_text = salla.lang.get('pages.products.with_a_discount');\n this.product_discount_text = salla.lang.get('pages.products.discount');\n this.special_offer_text = salla.lang.get('pages.products.special_offer');\n this.multipleBankOfferTitleText = salla.lang.get('pages.offer.multiple_bank_offers_title');\n this.multipleBankOfferTitleDescription = salla.lang.get('pages.offer.multiple_bank_offers_message');\n this.buy_quantity_text(0);\n })\n\n salla.onReady(() => {\n this.currentPage = salla.config.get('page.slug')\n this.userCurrency = salla.config.get('currencies')[salla.config.get('user.currency_code')].symbol\n });\n\n this.categorySlot = this.host.querySelector('[slot=\"category\"]')?.innerHTML || '<a href={url} class=\"s-offer-slide-cat-entry\"><i class={icon}></i><h4>{name}</h4></a>';\n }\n\n /**\n * Custom Card Component for the Salla Products List.\n *\n * This component allows you to customize the appearance of individual product cards within a Salla Products List.\n *\n * @example\n * <salla-products-list product-card-component=\"my-custom-card-style1\" ...\n * <salla-products-list product-card-component=\"my-custom-card-style2\" ...\n */\n @Prop() productCardComponent: string = 'custom-salla-product-card';\n\n // Declare component state variables\n @State() offersList: Offer[] = [];\n @State() userCurrency: Currency;\n @State() isMultipleBank: boolean = false;\n @State() title?: string;\n @State() currentPage: string;\n @State() hasCustomComponent: boolean;\n\n @State() isBankOffer: boolean = false;\n @State() canRender: boolean = false;\n @State() showOffer: boolean = salla.config.get('store.settings.product.show_special_offers');\n\n // Default translated texts\n @State() offer_with_price_text: string = salla.lang.get('pages.offer.with_price', { price: '' });\n @State() with_discount_text: string = salla.lang.get('pages.products.with_a_discount')\n @State() product_discount_text: string = salla.lang.get('pages.products.discount')\n @State() special_offer_text: string = salla.lang.get('pages.products.special_offer')\n @State() multipleBankOfferTitleText: string = salla.lang.get('pages.offer.multiple_bank_offers_title')\n @State() multipleBankOfferTitleDescription: string = salla.lang.get('pages.offer.multiple_bank_offers_message')\n @State() buy_quantity_text: (quantity: number) => string = (quantity) => salla.lang.get('pages.offer.buy_quantity', { quantity })\n\n // Reference to the host element\n @Element() host: HTMLElement;\n\n private categorySlot: string;\n\n private async getEndpointByPageName(): Promise<string> {\n if (this.currentPage == PageType.Cart) {\n const cartId = await Salla.cart.getCurrentCartId();\n return `offers/cart/${cartId}`;\n }\n\n if (this.currentPage == PageType.ProductDetail) {\n return `offers/product/${salla.config.get('page.id')}`;\n }\n\n return \"offers\";\n }\n\n componentWillLoad() {\n this.hasCustomComponent = !!customElements.get(this.productCardComponent);\n // let offers = this.getOffersFromStorage();\n // if (offers) {\n // return offers.then(offersFromStorage => this.offersList = offersFromStorage);\n // }\n\n return (new Promise(resolve => salla.onReady(resolve)))\n .then(() => {\n this.showOffer = !salla.url.is_page('product.single') || salla.config.get('store.settings.product.show_special_offers')\n if (this.showOffer) {\n return;\n }\n throw new Error(\"Merchant disabled showing the offers on product page\");\n }\n )\n .then(async () => salla.api.request(await this.getEndpointByPageName()))\n .then((res) => {\n if (!(this.offersList = res.data).length) {\n throw new Error('salla-offers:: There is no offers!');\n }\n //we support these offers only\n const offer = this.offersList.find(offer => [OfferType.Bank, OfferType.BuyXGetY, OfferType.DiscountsTable].includes(offer.type as any));\n if (!offer) {\n throw new Error('salla-offers:: Offer type not supported yet!');\n }\n //because there is no need for special handling for discounts table, just skip the other cases\n if (offer.type === OfferType.DiscountsTable) {\n return this.offersList = [offer];\n }\n\n //if it's banks offer, we need to include the other banks overs\n if ((this.isBankOffer = offer.type === OfferType.Bank)) {\n this.offersList = this.offersList.filter(offer => offer.type === OfferType.Bank);\n this.isMultipleBank = this.offersList.length > 1;\n return this.offersList;\n }\n //BuyXGetY offers\n const getY = (offer.details as BuyXGetYDetail).get;\n\n return getY.source === 'products'\n //todo:: avoid this request, and the handling for the products, just use `salla-products-slider` and don't forget to pass the customcard\n ? salla.product.api.fetch({ source: \"selected\", source_value: getY.source_value })\n .then((response: any) => {\n getY.products = response.data;\n (offer.details as any).get = getY;\n return this.offersList = [offer];\n })//set the products\n : salla.product.api.categories()//get all categories in one query, then extract only the selected one, instead of sending multi requests\n .then((res) => {\n getY.categories = this.findCategories(res.data, getY.source_value);\n (offer.details as any).get = getY;\n return this.offersList = [offer];\n });\n })\n .then((offers: Offer[]) => {\n salla.storage.set(this.getStorageKey(), { offers, stored_at: new Date().getTime() });\n this.canRender = true;\n })\n .catch((error) => {\n salla.logger.warn(error)\n });\n }\n\n componentDidLoad() {\n let nav = this.host.querySelector('.s-slider-block__title-nav');\n nav?.classList.add(\"s-offer-bank-payment-nav\")\n }\n\n\n findCategories(categories: Category[], ids: any[]): Category[] {\n let found: Category[] = [];\n\n for (const category of categories) {\n if (ids.includes(category.id_ || category.id)) { //here we are using || because we are planning to drop `id_`\n found.push(category);\n }\n if (category.sub_categories?.length > 0) {\n found = found.concat(this.findCategories(category.sub_categories, ids));\n }\n }\n\n return found;\n }\n\n //todo::add to the key params, to make sure it will support multi offers in the same page if it's wanted\n getStorageKey(): string {\n try {\n const pageSlug = salla.config.get('page.slug').replace('.', '_');\n const locale = salla.lang.getLocale();\n const currencyCode = salla.config.currency().code;\n\n if (!pageSlug || !locale || !currencyCode) {\n throw new Error('Unable to get the storage key.');\n }\n\n return `s-offers-${pageSlug}-${salla.config.get('page.id')}-${locale}-${currencyCode}`;\n } catch (error) {\n return '';\n }\n }\n\n //@ts-ignore\n getOffersFromStorage(): null | Promise<Offer[]> {\n let storageOffers = salla.storage.get(this.getStorageKey());\n //if the offers not existed, or it has been stored before 10 minutes from now, ignore it;\n if (!storageOffers || storageOffers.stored_at < (new Date().getTime() - 10 * 60 * 1000)) {\n salla.storage.remove(this.getStorageKey());\n return null;\n }\n this.canRender = true;\n\n //return it as resolve to support .then\n return Promise.resolve(storageOffers.offers);\n }\n\n render() {\n if (!this.offersList.length || !this.canRender || !this.showOffer) return null;\n const offer: Offer = this.offersList[0];\n\n const blockTitle = this.isBankOffer ? (this.isMultipleBank ? this.multipleBankOfferTitleText : null) : offer.title;\n const blockSubTitle = this.isBankOffer ? (this.isMultipleBank ? this.multipleBankOfferTitleDescription : null) : offer.description;\n\n const titles = {\n 'block-title': blockTitle,\n 'block-subTitle': blockSubTitle,\n 'show-controls': this.isMultipleBank\n };\n\n return (\n <div class=\"s-offer-wrapper\">\n {<p class=\"s-offer-corner-badge\">{this.special_offer_text}</p>}\n {/* discounts table is not a slider, it's a table🤔 */}\n {/* single bank offer is not a slider, it's a dom without slider🤔 */}\n <salla-slider type=\"carousel\" id=\"offer-slider\" {...titles}>\n <div slot='items'>\n {this.renderSectionForOfferType(offer.type)}\n </div>\n </salla-slider>\n </div>\n );\n }\n\n private renderSectionForOfferType(offerType: OfferType | string) {\n if (this.isBankOffer) {\n return this.renderBankSection();\n }\n if (offerType == OfferType.BuyXGetY) {\n return this.renderBuyXGetYSection();\n }\n\n return this.renderDiscountTableSection();\n }\n\n /**\n * Generates content for the categories section.\n *\n * @param offeredCategories - An array of Category objects.\n * @returns An array of HTML elements representing categories.\n */\n private getCategoriesSection(category: Category) {\n return <div class=\"s-offer-slide-one-sixth swiper-slide\" innerHTML={this.categorySlot\n .replace(/\\{url\\}/g, category.url)\n .replace(/\\{icon\\}/g, category.icon || \"sicon-store\")\n .replace(/\\{name\\}/g, category.name)}></div>\n }\n\n private renderBuyXGetYSection() {\n const details = (this.offersList[0].details as BuyXGetYDetail)\n return [\n details.get.products?.map((product: Product) => (\n <div class=\"s-offer-slide-one-fourth\">\n {this.hasCustomComponent\n ? <this.productCardComponent product={product}></this.productCardComponent>\n : <salla-product-card shadow-on-hover product={product}></salla-product-card>}\n </div>\n )),\n details.get.categories?.map((category: Category) => this.getCategoriesSection(category))\n ];\n }\n\n /**\n * Generates content for the bank section.\n *\n * @param offeredBank - An array of Bank objects.\n * @param name - The title of the current offer.\n * @param description - The description of the current offer.\n * @returns An array of HTML elements representing banks.\n * \n * TODO: loop over the list and filter bank types and pass it to this function\n */\n private renderBankSection() {\n return this.offersList.map((bankOffer: Offer) => {\n return <div class={{ \"s-offer-slide-one-sixth\": this.isMultipleBank, \"s-offer-bank-wrapper-sinlge-item\": !this.isMultipleBank }}>\n <div class={{ \"s-offer-bank-wrapper\": true, \"s-offer-slide-one-sixth\": !this.isMultipleBank, \"s-offer-bank-wrapper-multi-spacer\": this.isMultipleBank }}>\n <div class=\"s-offer-bank-logo\">\n <img src={(bankOffer.details as BankOffer).logo || salla.url.cdn('images/s-empty.png')} data-src={(bankOffer.details as BankOffer).logo} alt={bankOffer.title + \" offer\"} />\n </div>\n <ul class=\"s-offer-bank-payment-wrapper\">\n {(bankOffer.details as BankOffer).payments.map((payment: string) => {\n return <li class=\"s-offer-bank-payment-single\">\n <img\n src={salla.url.cdn('images/payment/' + payment + '.png') || salla.url.cdn('images/s-empty.png')}\n data-src={salla.url.cdn('images/payment/' + payment + '.png')}\n alt=\"payment\" />\n </li>\n })}\n </ul>\n {this.isMultipleBank ?\n <p class=\"s-offer-bank-payment-discount-percent\">\n {`${this.product_discount_text} ${(bankOffer.details as BankOffer).discount_value}${(bankOffer.details as BankOffer).discount_type === \"percentage\" && '%'}`}\n </p>\n : \"\"}\n </div>\n {!this.isMultipleBank ?\n <div class=\"s-offer-bank-message s-offer-slide-one-fourth\">\n <h2>{this.offersList[0].title}</h2>\n <p innerHTML={this.generateBankDescription(this.offersList[0].description, (bankOffer.details as BankOffer).discount_value)}></p>\n </div>\n : \"\"}\n </div>\n })\n }\n\n private generateBankDescription(desc: string, value): string {\n return desc.replace(new RegExp(`${value} %`), `<span class=\"s-offer-bank-message-amount\">${value} %</span>`)\n }\n\n /**\n * Generates content for the discount table section.\n *\n * @param discountTable - An array of Discount objects.\n * @returns An array of HTML elements representing discounts_table.\n */\n private renderDiscountTableSection() {\n const offer: Offer = this.offersList[0];\n let show_discounted_price = (offer.details as DiscountDetailTable).show_price_after_discount;\n return (this.offersList[0].details as DiscountDetailTable).discounts?.map((discount: Discount) => <div class=\"s-offer-slide-one-fourth\">\n <div class=\"s-offer-slide-offer-entry\">\n <div class=\"s-offer-slide-offer-entry-price-quantity-container\">\n <p class=\"s-offer-slide-offer-entry-quantity\">{this.buy_quantity_text(discount.quantity)}</p>\n {show_discounted_price ?\n <div class=\"s-offer-slide-offer-entry-price\">\n <span>{this.offer_with_price_text}</span>\n <span class=\"s-offer-slide-offer-entry-price-amount\">{discount.discounted_amount}</span> <span>{this.userCurrency}</span>\n </div> : \"\"}\n </div>\n <p class=\"s-offer-slide-offer-entry-price-amount-percent\">{this.with_discount_text}\n (<span>{discount.percentage}{!!discount.percentage && '%'}</span>)</p>\n </div>\n </div>\n )\n }\n\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"p-CjC0IO6M.system.js","sources":["src/components/salla-offer/interfaces.ts","src/components/salla-offer/salla-offer.scss?tag=salla-offer","src/components/salla-offer/salla-offer.tsx"],"sourcesContent":["export enum PageType {\n ProductDetail = \"product.single\",\n Cart = \"cart\"\n}\n\nexport enum OfferType {\n Conditional = \"conditional\",\n PercentageOrFixed = \"fixed\",\n DiscountsTable = \"discounts_table\",\n Bank = \"bank\",\n BuyXGetY = \"buy_x_get_y\"\n}\n\n\nexport interface DiscountDetailFixed {\n discount_type: \"fixed\";\n min_spend: number;\n discount_value: number;\n}\n\nexport interface DiscountDetailFreeProduct {\n discount_type: \"free_product\";\n min_spend: number;\n discount_value: number;\n}\n\nexport interface DiscountDetailConditional extends Array<DiscountDetailFixed | DiscountDetailFreeProduct> {}\n\nexport interface DiscountDetailPercentageFixed {\n apply_to: \"all\" | \"products\" | \"categories\" | \"payment_methods\";\n targets: Array<string | number>;\n ends_at: number;\n min_spend: number;\n discount_value: number;\n}\n\nexport interface Discount {\n discounted_amount: any;\n quantity: number;\n percentage: number;\n}\n\nexport interface DiscountDetailTable {\n apply_to: \"all\" | \"products\" | \"categories\" | \"payment_methods\" | \"order\";\n discount_value: number;\n ends_at: string;\n min_items: number;\n min_spend: number;\n show_price_after_discount: boolean;\n discounts: Discount[];\n}\n\nexport interface BankOffer {\n logo: string;\n discount_value: number;\n discount_type: string;\n minimum_spend: number;\n payments: string[];\n}\n\nexport interface BuyXGetYDetail {\n ends_at: number;\n buy: {\n source: \"product\" | \"category\";\n source_value: number[];\n quantity: number;\n };\n get: {\n source: \"products\" | \"category\";\n source_value: number[];\n type: \"free_product\" | \"percentage\" | \"fixed\";\n value: number;\n products?: Product[];//we will set this dynamically\n categories?: Category[];//we will set this dynamically\n };\n}\n\nexport interface Offer {\n id: number;\n title: string;\n description: string;\n type: OfferType | \"conditional\" | \"fixed\" | \"discounts_table\" | \"bank\" | \"buy_x_get_y\";\n details: DiscountDetailConditional | DiscountDetailPercentageFixed | DiscountDetailTable | BankOffer | BuyXGetYDetail;\n}\n\nexport interface Product {\n id: number;\n type: string;\n status: string;\n is_available: boolean;\n sku: string;\n name: string;\n price: { amount: number; currency: string; };\n promotion: { title: string; sub_title: string; };\n sale_price: { amount: number; currency: string; };\n regular_price: { amount: number; currency: string; };\n currency: string;\n url: string;\n thumbnail: string;\n has_special_price: boolean;\n favorite?: any;\n}\n\nexport interface Category {\n id?: string;\n id_?: number;\n name?: string;\n url?: string;\n icon?: string;\n sub_categories?: Category[];\n items?: any[] | null;\n}\n\nexport interface Currency {\n code: string | 'SAR';\n name: string;\n symbol: string;\n amount?: number;\n country_code?: string;\n}\n",".s-offer-wrapper .s-slider-block__title {\n h2 {\n font-size: 1.125rem;\n line-height: 1.75rem;\n color: #f87171;\n\n &::before {\n font-family: \"sallaicons\";\n content: \"\\ee30\" !important;\n position: absolute;\n top: 1rem;\n font-size: 3rem;\n font-weight: 400;\n line-height: 1;\n color: #fef2f2;\n }\n }\n}\n\n.s-offer-bank-wrapper-sinlge-item{\n display: flex;\n align-items: center !important;\n gap: 14px;\n}\n\n.s-offer-bank-wrapper {\n display: flex !important;\n width: 100% !important;\n}\n\n// .s-offer-bank-wrapper {\n // \n// }","import { Component, Element, Prop, State, h } from '@stencil/core';\nimport { Offer, Category, Product, Discount, Currency, BuyXGetYDetail, PageType, OfferType, BankOffer, DiscountDetailTable } from './interfaces';\n\n\n/**\n * `salla-offer` is a StencilJS component that displays offers, categories, products, banks, and discount information.\n * It uses the `salla-slider` component for carousel functionality.\n *\n * @slot category - The slot for customizing the category entry layout.\n * \n * @csspart custom - Custom CSS part to target specific elements in the component.\n *\n * @example\n * <salla-offer product-id=\"123\"></salla-offer>\n */\n@Component({\n tag: 'salla-offer',\n styleUrl: 'salla-offer.scss',\n})\nexport class SallaOffer {\n\n constructor() {\n // Language\n salla.lang.onLoaded(() => {\n this.offer_with_price_text = salla.lang.get('pages.offer.with_price');\n this.with_discount_text = salla.lang.get('pages.products.with_a_discount');\n this.product_discount_text = salla.lang.get('pages.products.discount');\n this.special_offer_text = salla.lang.get('pages.products.special_offer');\n this.multipleBankOfferTitleText = salla.lang.get('pages.offer.multiple_bank_offers_title');\n this.multipleBankOfferTitleDescription = salla.lang.get('pages.offer.multiple_bank_offers_message');\n this.buy_quantity_text(0);\n })\n\n salla.onReady(() => {\n this.currentPage = salla.config.get('page.slug')\n this.userCurrency = salla.config.get('currencies')[salla.config.get('user.currency_code')].symbol\n });\n\n this.categorySlot = this.host.querySelector('[slot=\"category\"]')?.innerHTML || '<a href={url} class=\"s-offer-slide-cat-entry\"><i class={icon}></i><h4>{name}</h4></a>';\n }\n\n /**\n * Custom Card Component for the Salla Products List.\n *\n * This component allows you to customize the appearance of individual product cards within a Salla Products List.\n *\n * @example\n * <salla-products-list product-card-component=\"my-custom-card-style1\" ...\n * <salla-products-list product-card-component=\"my-custom-card-style2\" ...\n */\n @Prop() productCardComponent: string = 'custom-salla-product-card';\n\n // Declare component state variables\n @State() offersList: Offer[] = [];\n @State() userCurrency: Currency;\n @State() isMultipleBank: boolean = false;\n @State() title?: string;\n @State() currentPage: string;\n @State() hasCustomComponent: boolean;\n\n @State() isBankOffer: boolean = false;\n @State() canRender: boolean = false;\n @State() showOffer: boolean = salla.config.get('store.settings.product.show_special_offers');\n\n // Default translated texts\n @State() offer_with_price_text: string = salla.lang.get('pages.offer.with_price', { price: '' });\n @State() with_discount_text: string = salla.lang.get('pages.products.with_a_discount')\n @State() product_discount_text: string = salla.lang.get('pages.products.discount')\n @State() special_offer_text: string = salla.lang.get('pages.products.special_offer')\n @State() multipleBankOfferTitleText: string = salla.lang.get('pages.offer.multiple_bank_offers_title')\n @State() multipleBankOfferTitleDescription: string = salla.lang.get('pages.offer.multiple_bank_offers_message')\n @State() buy_quantity_text: (quantity: number) => string = (quantity) => salla.lang.get('pages.offer.buy_quantity', { quantity })\n\n // Reference to the host element\n @Element() host: HTMLElement;\n\n private categorySlot: string;\n\n private async getEndpointByPageName(): Promise<string> {\n if (this.currentPage == PageType.Cart) {\n const cartId = await Salla.cart.getCurrentCartId();\n return `offers/cart/${cartId}`;\n }\n\n if (this.currentPage == PageType.ProductDetail) {\n return `offers/product/${salla.config.get('page.id')}`;\n }\n\n return \"offers\";\n }\n\n componentWillLoad() {\n this.hasCustomComponent = !!customElements.get(this.productCardComponent);\n // let offers = this.getOffersFromStorage();\n // if (offers) {\n // return offers.then(offersFromStorage => this.offersList = offersFromStorage);\n // }\n\n return (new Promise(resolve => salla.onReady(resolve)))\n .then(() => {\n this.showOffer = !salla.url.is_page('product.single') || salla.config.get('store.settings.product.show_special_offers')\n if (this.showOffer) {\n return;\n }\n throw new Error(\"Merchant disabled showing the offers on product page\");\n }\n )\n .then(async () => salla.api.request(await this.getEndpointByPageName()))\n .then((res) => {\n if (!(this.offersList = res.data).length) {\n throw new Error('salla-offers:: There is no offers!');\n }\n //we support these offers only\n const offer = this.offersList.find(offer => [OfferType.Bank, OfferType.BuyXGetY, OfferType.DiscountsTable].includes(offer.type as any));\n if (!offer) {\n throw new Error('salla-offers:: Offer type not supported yet!');\n }\n //because there is no need for special handling for discounts table, just skip the other cases\n if (offer.type === OfferType.DiscountsTable) {\n return this.offersList = [offer];\n }\n\n //if it's banks offer, we need to include the other banks overs\n if ((this.isBankOffer = offer.type === OfferType.Bank)) {\n this.offersList = this.offersList.filter(offer => offer.type === OfferType.Bank);\n this.isMultipleBank = this.offersList.length > 1;\n return this.offersList;\n }\n //BuyXGetY offers\n const getY = (offer.details as BuyXGetYDetail).get;\n\n return getY.source === 'products'\n //todo:: avoid this request, and the handling for the products, just use `salla-products-slider` and don't forget to pass the customcard\n ? salla.product.api.fetch({ source: \"selected\", source_value: getY.source_value })\n .then((response: any) => {\n getY.products = response.data;\n (offer.details as any).get = getY;\n return this.offersList = [offer];\n })//set the products\n : salla.product.api.categories()//get all categories in one query, then extract only the selected one, instead of sending multi requests\n .then((res) => {\n getY.categories = this.findCategories(res.data, getY.source_value);\n (offer.details as any).get = getY;\n return this.offersList = [offer];\n });\n })\n .then((offers: Offer[]) => {\n salla.storage.set(this.getStorageKey(), { offers, stored_at: new Date().getTime() });\n this.canRender = true;\n })\n .catch((error) => {\n salla.logger.warn(error)\n });\n }\n\n componentDidLoad() {\n let nav = this.host.querySelector('.s-slider-block__title-nav');\n nav?.classList.add(\"s-offer-bank-payment-nav\")\n }\n\n\n findCategories(categories: Category[], ids: any[]): Category[] {\n let found: Category[] = [];\n\n for (const category of categories) {\n if (ids.includes(category.id_ || category.id)) { //here we are using || because we are planning to drop `id_`\n found.push(category);\n }\n if (category.sub_categories?.length > 0) {\n found = found.concat(this.findCategories(category.sub_categories, ids));\n }\n }\n\n return found;\n }\n\n //todo::add to the key params, to make sure it will support multi offers in the same page if it's wanted\n getStorageKey(): string {\n try {\n const pageSlug = salla.config.get('page.slug').replace('.', '_');\n const locale = salla.lang.getLocale();\n const currencyCode = salla.config.currency().code;\n\n if (!pageSlug || !locale || !currencyCode) {\n throw new Error('Unable to get the storage key.');\n }\n\n return `s-offers-${pageSlug}-${salla.config.get('page.id')}-${locale}-${currencyCode}`;\n } catch (error) {\n return '';\n }\n }\n\n //@ts-ignore\n getOffersFromStorage(): null | Promise<Offer[]> {\n let storageOffers = salla.storage.get(this.getStorageKey());\n //if the offers not existed, or it has been stored before 10 minutes from now, ignore it;\n if (!storageOffers || storageOffers.stored_at < (new Date().getTime() - 10 * 60 * 1000)) {\n salla.storage.remove(this.getStorageKey());\n return null;\n }\n this.canRender = true;\n\n //return it as resolve to support .then\n return Promise.resolve(storageOffers.offers);\n }\n\n render() {\n if (!this.offersList.length || !this.canRender || !this.showOffer) return null;\n const offer: Offer = this.offersList[0];\n\n const blockTitle = this.isBankOffer ? (this.isMultipleBank ? this.multipleBankOfferTitleText : null) : offer.title;\n const blockSubTitle = this.isBankOffer ? (this.isMultipleBank ? this.multipleBankOfferTitleDescription : null) : offer.description;\n\n const titles = {\n 'block-title': blockTitle,\n 'block-subTitle': blockSubTitle,\n 'show-controls': this.isMultipleBank\n };\n\n return (\n <div class=\"s-offer-wrapper\">\n {<p class=\"s-offer-corner-badge\">{this.special_offer_text}</p>}\n {/* discounts table is not a slider, it's a table🤔 */}\n {/* single bank offer is not a slider, it's a dom without slider🤔 */}\n <salla-slider type=\"carousel\" id=\"offer-slider\" {...titles}>\n <div slot='items'>\n {this.renderSectionForOfferType(offer.type)}\n </div>\n </salla-slider>\n </div>\n );\n }\n\n private renderSectionForOfferType(offerType: OfferType | string) {\n if (this.isBankOffer) {\n return this.renderBankSection();\n }\n if (offerType == OfferType.BuyXGetY) {\n return this.renderBuyXGetYSection();\n }\n\n return this.renderDiscountTableSection();\n }\n\n /**\n * Generates content for the categories section.\n *\n * @param offeredCategories - An array of Category objects.\n * @returns An array of HTML elements representing categories.\n */\n private getCategoriesSection(category: Category) {\n return <div class=\"s-offer-slide-one-sixth swiper-slide\" innerHTML={this.categorySlot\n .replace(/\\{url\\}/g, category.url)\n .replace(/\\{icon\\}/g, category.icon || \"sicon-store\")\n .replace(/\\{name\\}/g, category.name)}></div>\n }\n\n private renderBuyXGetYSection() {\n const details = (this.offersList[0].details as BuyXGetYDetail)\n return [\n details.get.products?.map((product: Product) => (\n <div class=\"s-offer-slide-one-fourth\">\n {this.hasCustomComponent\n ? <this.productCardComponent product={product}></this.productCardComponent>\n : <salla-product-card shadow-on-hover product={product}></salla-product-card>}\n </div>\n )),\n details.get.categories?.map((category: Category) => this.getCategoriesSection(category))\n ];\n }\n\n /**\n * Generates content for the bank section.\n *\n * @param offeredBank - An array of Bank objects.\n * @param name - The title of the current offer.\n * @param description - The description of the current offer.\n * @returns An array of HTML elements representing banks.\n * \n * TODO: loop over the list and filter bank types and pass it to this function\n */\n private renderBankSection() {\n return this.offersList.map((bankOffer: Offer) => {\n return <div class={{ \"s-offer-slide-one-sixth\": this.isMultipleBank, \"s-offer-bank-wrapper-sinlge-item\": !this.isMultipleBank }}>\n <div class={{ \"s-offer-bank-wrapper\": true, \"s-offer-slide-one-sixth\": !this.isMultipleBank, \"s-offer-bank-wrapper-multi-spacer\": this.isMultipleBank }}>\n <div class=\"s-offer-bank-logo\">\n <img src={(bankOffer.details as BankOffer).logo || salla.url.cdn('images/s-empty.png')} data-src={(bankOffer.details as BankOffer).logo} alt={bankOffer.title + \" offer\"} />\n </div>\n <ul class=\"s-offer-bank-payment-wrapper\">\n {(bankOffer.details as BankOffer).payments.map((payment: string) => {\n return <li class=\"s-offer-bank-payment-single\">\n <img\n src={salla.url.cdn('images/payment/' + payment + '.png') || salla.url.cdn('images/s-empty.png')}\n data-src={salla.url.cdn('images/payment/' + payment + '.png')}\n alt=\"payment\" />\n </li>\n })}\n </ul>\n {this.isMultipleBank ?\n <p class=\"s-offer-bank-payment-discount-percent\">\n {`${this.product_discount_text} ${(bankOffer.details as BankOffer).discount_value}${(bankOffer.details as BankOffer).discount_type === \"percentage\" && '%'}`}\n </p>\n : \"\"}\n </div>\n {!this.isMultipleBank ?\n <div class=\"s-offer-bank-message s-offer-slide-one-fourth\">\n <h2>{this.offersList[0].title}</h2>\n <p innerHTML={this.generateBankDescription(this.offersList[0].description, (bankOffer.details as BankOffer).discount_value)}></p>\n </div>\n : \"\"}\n </div>\n })\n }\n\n private generateBankDescription(desc: string, value): string {\n return desc.replace(new RegExp(`${value} %`), `<span class=\"s-offer-bank-message-amount\">${value} %</span>`)\n }\n\n /**\n * Generates content for the discount table section.\n *\n * @param discountTable - An array of Discount objects.\n * @returns An array of HTML elements representing discounts_table.\n */\n private renderDiscountTableSection() {\n const offer: Offer = this.offersList[0];\n let show_discounted_price = (offer.details as DiscountDetailTable).show_price_after_discount;\n return (this.offersList[0].details as DiscountDetailTable).discounts?.map((discount: Discount) => <div class=\"s-offer-slide-one-fourth\">\n <div class=\"s-offer-slide-offer-entry\">\n <div class=\"s-offer-slide-offer-entry-price-quantity-container\">\n <p class=\"s-offer-slide-offer-entry-quantity\">{this.buy_quantity_text(discount.quantity)}</p>\n {show_discounted_price ?\n <div class=\"s-offer-slide-offer-entry-price\">\n <span>{this.offer_with_price_text}</span>\n <span class=\"s-offer-slide-offer-entry-price-amount\">{discount.discounted_amount}</span> <span>{this.userCurrency}</span>\n </div> : \"\"}\n </div>\n <p class=\"s-offer-slide-offer-entry-price-amount-percent\">{this.with_discount_text}\n (<span>{discount.percentage}{!!discount.percentage && '%'}</span>)</p>\n </div>\n </div>\n )\n }\n\n}\n"],"names":[],"mappings":"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"}