@salla.sa/twilight-components 3.0.19 → 3.0.21

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 (466) hide show
  1. package/dist/cjs/{Helper-DqKJCL8G.js → Helper-8GCn2Wfh.js} +1 -1
  2. package/dist/cjs/delivery-promise-intent-5WTKLkFZ.js +71 -0
  3. package/dist/cjs/{filepond-Byu0lc8z.js → filepond-DyDRgSW7.js} +1 -1
  4. package/dist/cjs/{filepond-plugin-file-poster-qwx7lYZ-.js → filepond-plugin-file-poster-BbEyrQ24.js} +1 -1
  5. package/dist/cjs/{filepond-plugin-file-validate-size-C-n0P4TT.js → filepond-plugin-file-validate-size-dIjgIAJz.js} +1 -1
  6. package/dist/cjs/{filepond-plugin-file-validate-type-C8VOOXdT.js → filepond-plugin-file-validate-type-MITfI2m0.js} +1 -1
  7. package/dist/cjs/{filepond-plugin-image-edit-B9KG763Y.js → filepond-plugin-image-edit-B0vevlWn.js} +1 -1
  8. package/dist/cjs/{filepond-plugin-image-exif-orientation-Czt4pYzU.js → filepond-plugin-image-exif-orientation-C8fbY4tU.js} +1 -1
  9. package/dist/cjs/{filepond-plugin-image-preview-BFm1Zl0o.js → filepond-plugin-image-preview-pu-ILH6g.js} +1 -1
  10. package/dist/cjs/{helpers-NV7wgP50.js → helpers-wRMwEkLy.js} +25 -0
  11. package/dist/cjs/{index-CFW798jX.js → index-DjzCGoSW.js} +14 -10
  12. package/dist/cjs/{intlTelInput-CLa2B89b.js → intlTelInput-mRDdvd3r.js} +1 -1
  13. package/dist/cjs/loader.cjs.js +2 -2
  14. package/dist/cjs/salla-accordion-body_2.cjs.entry.js +1 -1
  15. package/dist/cjs/salla-accordion_6.cjs.entry.js +2 -2
  16. package/dist/cjs/salla-add-product-button_5.cjs.entry.js +120 -6
  17. package/dist/cjs/salla-advertisement.cjs.entry.js +1 -1
  18. package/dist/cjs/salla-alert_2.cjs.entry.js +1 -1
  19. package/dist/cjs/salla-app-install-alert.cjs.entry.js +1 -1
  20. package/dist/cjs/salla-applied-filters.cjs.entry.js +2 -2
  21. package/dist/cjs/salla-apps-icons.cjs.entry.js +1 -1
  22. package/dist/cjs/salla-attachment-view_9.cjs.entry.js +13 -13
  23. package/dist/cjs/salla-badge.cjs.entry.js +1 -1
  24. package/dist/cjs/salla-basket-gap.cjs.entry.js +1 -1
  25. package/dist/cjs/salla-bullet-delivery_3.cjs.entry.js +12 -17
  26. package/dist/cjs/salla-cart-coupons.cjs.entry.js +1 -1
  27. package/dist/cjs/salla-cart-item-offers_2.cjs.entry.js +1 -1
  28. package/dist/cjs/salla-cart-summary-card.cjs.entry.js +1 -1
  29. package/dist/cjs/salla-cashback-banner.cjs.entry.js +1 -1
  30. package/dist/cjs/salla-comment-factors.cjs.entry.js +1 -1
  31. package/dist/cjs/salla-comment-form_9.cjs.entry.js +4 -4
  32. package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
  33. package/dist/cjs/salla-contacts.cjs.entry.js +1 -1
  34. package/dist/cjs/salla-cookies-bar.cjs.entry.js +1 -1
  35. package/dist/cjs/salla-count-down.cjs.entry.js +1 -1
  36. package/dist/cjs/salla-custom-fields.cjs.entry.js +1 -1
  37. package/dist/cjs/salla-delivery-promise.cjs.entry.js +5 -65
  38. package/dist/cjs/salla-edit-order-button.cjs.entry.js +1 -1
  39. package/dist/cjs/salla-filters-widget.cjs.entry.js +2 -2
  40. package/dist/cjs/salla-filters.cjs.entry.js +2 -2
  41. package/dist/cjs/salla-free-shipping-banner.cjs.entry.js +1 -1
  42. package/dist/cjs/salla-free-shipping-tag.cjs.entry.js +1 -1
  43. package/dist/cjs/salla-fulfillment-methods.cjs.entry.js +1 -1
  44. package/dist/cjs/salla-gift-card-redeem_2.cjs.entry.js +2 -2
  45. package/dist/cjs/salla-gifting.cjs.entry.js +1 -1
  46. package/dist/cjs/salla-hook.cjs.entry.js +1 -1
  47. package/dist/cjs/salla-infinite-scroll.cjs.entry.js +2 -2
  48. package/dist/cjs/salla-installment.cjs.entry.js +1 -1
  49. package/dist/cjs/salla-list-tile.cjs.entry.js +1 -1
  50. package/dist/cjs/salla-localization-modal.cjs.entry.js +1 -1
  51. package/dist/cjs/salla-login-modal.cjs.entry.js +1 -1
  52. package/dist/cjs/salla-loyalty-banner_10.cjs.entry.js +1 -1
  53. package/dist/cjs/salla-loyalty-exchange-product-card.cjs.entry.js +1 -1
  54. package/dist/cjs/salla-loyalty-points-banner.cjs.entry.js +1 -1
  55. package/dist/cjs/salla-loyalty-points-history.cjs.entry.js +1 -1
  56. package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +1 -1
  57. package/dist/cjs/salla-loyalty.cjs.entry.js +1 -1
  58. package/dist/cjs/salla-maintenance-alert.cjs.entry.js +1 -1
  59. package/dist/cjs/salla-map_3.cjs.entry.js +1 -1
  60. package/dist/cjs/salla-menu.cjs.entry.js +1 -1
  61. package/dist/cjs/salla-metadata.cjs.entry.js +1 -1
  62. package/dist/cjs/salla-mobile-update-modal.cjs.entry.js +188 -0
  63. package/dist/cjs/salla-multiple-bundle-product-cart_2.cjs.entry.js +4 -4
  64. package/dist/cjs/salla-multiple-bundle-product-options-modal_2.cjs.entry.js +6 -6
  65. package/dist/cjs/salla-multiple-bundle-product.cjs.entry.js +2 -2
  66. package/dist/cjs/salla-next-order-coupon.cjs.entry.js +1 -1
  67. package/dist/cjs/salla-notification-item_2.cjs.entry.js +3 -3
  68. package/dist/cjs/salla-offer-modal.cjs.entry.js +2 -2
  69. package/dist/cjs/salla-offer.cjs.entry.js +1 -1
  70. package/dist/cjs/salla-order-branch.cjs.entry.js +1 -1
  71. package/dist/cjs/salla-order-cancel.cjs.entry.js +1 -1
  72. package/dist/cjs/salla-order-details-multiple-bundle-product.cjs.entry.js +1 -1
  73. package/dist/cjs/salla-order-details-options.cjs.entry.js +1 -1
  74. package/dist/cjs/salla-order-details.cjs.entry.js +2 -2
  75. package/dist/cjs/salla-order-edit-item.cjs.entry.js +1 -1
  76. package/dist/cjs/salla-order-edit-product-card.cjs.entry.js +2 -2
  77. package/dist/cjs/salla-order-edit.cjs.entry.js +1 -1
  78. package/dist/cjs/salla-order-items.cjs.entry.js +2 -2
  79. package/dist/cjs/salla-order-options-modal.cjs.entry.js +1 -1
  80. package/dist/cjs/salla-order-payment.cjs.entry.js +2 -2
  81. package/dist/cjs/salla-order-rewards.cjs.entry.js +2 -2
  82. package/dist/cjs/salla-order-shipments.cjs.entry.js +1 -1
  83. package/dist/cjs/salla-order-summary.cjs.entry.js +2 -2
  84. package/dist/cjs/salla-order-totals-card.cjs.entry.js +1 -1
  85. package/dist/cjs/salla-orders.cjs.entry.js +2 -2
  86. package/dist/cjs/salla-payments.cjs.entry.js +3 -3
  87. package/dist/cjs/salla-placeholder.cjs.entry.js +2 -2
  88. package/dist/cjs/salla-price-range.cjs.entry.js +1 -1
  89. package/dist/cjs/salla-product-card-embed.cjs.entry.js +2 -2
  90. package/dist/cjs/salla-product-card.cjs.entry.js +1 -1
  91. package/dist/cjs/salla-product-size-guide.cjs.entry.js +3 -3
  92. package/dist/cjs/salla-products-list.cjs.entry.js +2 -2
  93. package/dist/cjs/salla-products-slider.cjs.entry.js +2 -2
  94. package/dist/cjs/salla-quick-order.cjs.entry.js +1 -1
  95. package/dist/cjs/salla-rating-modal-v2.cjs.entry.js +33 -7
  96. package/dist/cjs/salla-rating-modal.cjs.entry.js +2 -2
  97. package/dist/cjs/salla-review-factors-tags.cjs.entry.js +2 -2
  98. package/dist/cjs/salla-review-order-item.cjs.entry.js +1 -1
  99. package/dist/cjs/salla-scopes.cjs.entry.js +1 -1
  100. package/dist/cjs/salla-search-product-card.cjs.entry.js +3 -3
  101. package/dist/cjs/salla-search.cjs.entry.js +2 -2
  102. package/dist/cjs/salla-skeleton.cjs.entry.js +2 -2
  103. package/dist/cjs/salla-social-share.cjs.entry.js +2 -2
  104. package/dist/cjs/salla-social.cjs.entry.js +2 -2
  105. package/dist/cjs/salla-tab-content_3.cjs.entry.js +4 -4
  106. package/dist/cjs/salla-thank-you-header.cjs.entry.js +2 -2
  107. package/dist/cjs/salla-thank-you-page.cjs.entry.js +2 -2
  108. package/dist/cjs/salla-tiered-offer.cjs.entry.js +1 -1
  109. package/dist/cjs/salla-trust-badges.cjs.entry.js +1 -1
  110. package/dist/cjs/salla-user-menu.cjs.entry.js +1 -1
  111. package/dist/cjs/salla-user-profile.cjs.entry.js +1 -1
  112. package/dist/cjs/salla-user-settings.cjs.entry.js +2 -2
  113. package/dist/cjs/salla-verify.cjs.entry.js +3 -3
  114. package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
  115. package/dist/cjs/salla-wishlist-actions.cjs.entry.js +2 -2
  116. package/dist/cjs/salla-wishlist-summary.cjs.entry.js +2 -2
  117. package/dist/cjs/twilight.cjs.js +2 -2
  118. package/dist/cjs/{vanilla-picker-Vx_7G7bs.js → vanilla-picker-DTt0qsPz.js} +1 -1
  119. package/dist/collection/collection-manifest.json +1 -0
  120. package/dist/collection/components/salla-bullet-delivery/helpers.js +23 -0
  121. package/dist/collection/components/salla-bullet-delivery/salla-bullet-delivery.js +7 -12
  122. package/dist/collection/components/salla-mobile-update-modal/salla-mobile-update-modal.css +43 -0
  123. package/dist/collection/components/salla-mobile-update-modal/salla-mobile-update-modal.js +235 -0
  124. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-cart.js +1 -1
  125. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-details.js +2 -2
  126. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-options-modal.js +4 -4
  127. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-slider.js +1 -1
  128. package/dist/collection/components/salla-multiple-bundle-product/salla-multiple-bundle-product.js +1 -1
  129. package/dist/collection/components/salla-notifications/salla-notification-item.js +1 -1
  130. package/dist/collection/components/salla-offer-modal/salla-offer-modal.js +1 -1
  131. package/dist/collection/components/salla-order-details/salla-order-details.js +1 -1
  132. package/dist/collection/components/salla-order-edit/salla-order-edit-product-card.js +1 -1
  133. package/dist/collection/components/salla-order-items/salla-order-items.js +1 -1
  134. package/dist/collection/components/salla-order-payment/salla-order-payment.js +1 -1
  135. package/dist/collection/components/salla-order-rewards/salla-order-rewards.js +1 -1
  136. package/dist/collection/components/salla-order-summary/salla-order-summary.js +1 -1
  137. package/dist/collection/components/salla-payments/salla-payments.js +2 -2
  138. package/dist/collection/components/salla-placeholder/salla-placeholder.js +1 -1
  139. package/dist/collection/components/salla-product-availability/salla-product-availability.js +1 -1
  140. package/dist/collection/components/salla-product-card-embed/salla-product-card-embed.js +1 -1
  141. package/dist/collection/components/salla-product-size-guide/salla-product-size-guide.js +2 -2
  142. package/dist/collection/components/salla-quantity-input/salla-quantity-input.js +1 -1
  143. package/dist/collection/components/salla-quick-buy/salla-quick-buy.js +47 -1
  144. package/dist/collection/components/salla-rating-modal/salla-rating-modal-v2.js +31 -5
  145. package/dist/collection/components/salla-review-card/salla-review-card.js +1 -1
  146. package/dist/collection/components/salla-review-factors-tags/salla-review-factors-tags.js +1 -1
  147. package/dist/collection/components/salla-reviews-page/salla-reviews-page.js +1 -1
  148. package/dist/collection/components/salla-search-product-card/salla-search-product-card.js +2 -2
  149. package/dist/collection/components/salla-searchable-dropdown/salla-searchable-dropdown.js +4 -4
  150. package/dist/collection/components/salla-skeleton/salla-skeleton.js +1 -1
  151. package/dist/collection/components/salla-social/salla-social.js +1 -1
  152. package/dist/collection/components/salla-social-share/salla-social-share.js +1 -1
  153. package/dist/collection/components/salla-tabs/salla-tab-content.js +1 -1
  154. package/dist/collection/components/salla-tabs/salla-tab-header.js +1 -1
  155. package/dist/collection/components/salla-tabs/salla-tabs.js +1 -1
  156. package/dist/collection/components/salla-tel-input/salla-tel-input.js +1 -1
  157. package/dist/collection/components/salla-thank-you-header/salla-thank-you-header.js +1 -1
  158. package/dist/collection/components/salla-thank-you-page/salla-thank-you-page.js +1 -1
  159. package/dist/collection/components/salla-tooltip/salla-tooltip.js +1 -1
  160. package/dist/collection/components/salla-user-settings/salla-user-settings.js +1 -1
  161. package/dist/collection/components/salla-verify/salla-verify.js +48 -2
  162. package/dist/collection/components/salla-wishlist-actions/salla-wishlist-actions.js +1 -1
  163. package/dist/components/delivery-promise-intent.js +67 -0
  164. package/dist/components/helpers.js +24 -1
  165. package/dist/components/index.js +2 -2
  166. package/dist/components/mail.js +2 -2
  167. package/dist/components/salla-bullet-delivery.js +7 -12
  168. package/dist/components/salla-contacts.js +2 -2
  169. package/dist/components/salla-delivery-promise.js +1 -62
  170. package/dist/components/salla-loyalty-point2.js +2 -2
  171. package/dist/components/salla-mobile-update-modal.d.ts +11 -0
  172. package/dist/components/salla-mobile-update-modal.js +241 -0
  173. package/dist/components/salla-multiple-bundle-product-cart2.js +1 -1
  174. package/dist/components/salla-multiple-bundle-product-details2.js +2 -2
  175. package/dist/components/salla-multiple-bundle-product-options-modal2.js +4 -4
  176. package/dist/components/salla-multiple-bundle-product-slider2.js +1 -1
  177. package/dist/components/salla-multiple-bundle-product.js +1 -1
  178. package/dist/components/salla-notification-item2.js +1 -1
  179. package/dist/components/salla-offer-modal.js +1 -1
  180. package/dist/components/salla-order-details.js +1 -1
  181. package/dist/components/salla-order-edit-product-card.js +1 -1
  182. package/dist/components/salla-order-items2.js +1 -1
  183. package/dist/components/salla-order-payment.js +1 -1
  184. package/dist/components/salla-order-rewards.js +1 -1
  185. package/dist/components/salla-order-summary.js +1 -1
  186. package/dist/components/salla-payments.js +2 -2
  187. package/dist/components/salla-placeholder2.js +1 -1
  188. package/dist/components/salla-product-availability2.js +1 -1
  189. package/dist/components/salla-product-card-embed.js +1 -1
  190. package/dist/components/salla-product-size-guide.js +2 -2
  191. package/dist/components/salla-quantity-input2.js +1 -1
  192. package/dist/components/salla-quick-buy2.js +117 -3
  193. package/dist/components/salla-quick-order.js +2 -2
  194. package/dist/components/salla-rating-modal-v22.js +33 -7
  195. package/dist/components/salla-rating-modal2.js +2 -2
  196. package/dist/components/salla-review-card2.js +1 -1
  197. package/dist/components/salla-review-factors-tags2.js +1 -1
  198. package/dist/components/salla-reviews-page.js +1 -1
  199. package/dist/components/salla-search-product-card2.js +2 -2
  200. package/dist/components/salla-searchable-dropdown2.js +4 -4
  201. package/dist/components/salla-skeleton2.js +1 -1
  202. package/dist/components/salla-social-share2.js +4 -4
  203. package/dist/components/salla-social.js +1 -1
  204. package/dist/components/salla-tab-content2.js +1 -1
  205. package/dist/components/salla-tab-header2.js +1 -1
  206. package/dist/components/salla-tabs2.js +1 -1
  207. package/dist/components/salla-tel-input2.js +1 -1
  208. package/dist/components/salla-thank-you-header.js +1 -1
  209. package/dist/components/salla-thank-you-page.js +1 -1
  210. package/dist/components/salla-tooltip2.js +1 -1
  211. package/dist/components/salla-user-settings.js +1 -1
  212. package/dist/components/salla-verify.js +1 -321
  213. package/dist/components/salla-verify2.js +328 -0
  214. package/dist/components/salla-wishlist-actions.js +1 -1
  215. package/dist/docs.json +158 -2
  216. package/dist/esm/{Helper-I0CAizv1.js → Helper-DZKYnNWb.js} +1 -1
  217. package/dist/esm/delivery-promise-intent-C6pZjRut.js +67 -0
  218. package/dist/esm/{filepond-DTUYXV0J.js → filepond-Th5h_x_y.js} +1 -1
  219. package/dist/esm/{filepond-plugin-file-poster-DydZjneT.js → filepond-plugin-file-poster-CH6jw-Ue.js} +1 -1
  220. package/dist/esm/{filepond-plugin-file-validate-size-nbsCU2t9.js → filepond-plugin-file-validate-size-Q-NzkoIy.js} +1 -1
  221. package/dist/esm/{filepond-plugin-file-validate-type-Cl5B_DIy.js → filepond-plugin-file-validate-type-CbY5K7RZ.js} +1 -1
  222. package/dist/esm/{filepond-plugin-image-edit-bzskFyFR.js → filepond-plugin-image-edit-JietW24Z.js} +1 -1
  223. package/dist/esm/{filepond-plugin-image-exif-orientation-MBDuxLaX.js → filepond-plugin-image-exif-orientation-FoYRnhuB.js} +1 -1
  224. package/dist/esm/{filepond-plugin-image-preview-N6wzEryW.js → filepond-plugin-image-preview-DVAxXbSQ.js} +1 -1
  225. package/dist/esm/{helpers-Cnh7Qptl.js → helpers-BVaKfTMx.js} +24 -1
  226. package/dist/esm/{index-C9zdeQFI.js → index-C9GauqTa.js} +14 -10
  227. package/dist/esm/{intlTelInput-B5L9nYtO.js → intlTelInput-BVoDutQ9.js} +1 -1
  228. package/dist/esm/loader.js +3 -3
  229. package/dist/esm/salla-accordion-body_2.entry.js +1 -1
  230. package/dist/esm/salla-accordion_6.entry.js +2 -2
  231. package/dist/esm/salla-add-product-button_5.entry.js +120 -6
  232. package/dist/esm/salla-advertisement.entry.js +1 -1
  233. package/dist/esm/salla-alert_2.entry.js +1 -1
  234. package/dist/esm/salla-app-install-alert.entry.js +1 -1
  235. package/dist/esm/salla-applied-filters.entry.js +2 -2
  236. package/dist/esm/salla-apps-icons.entry.js +1 -1
  237. package/dist/esm/salla-attachment-view_9.entry.js +13 -13
  238. package/dist/esm/salla-badge.entry.js +1 -1
  239. package/dist/esm/salla-basket-gap.entry.js +1 -1
  240. package/dist/esm/salla-bullet-delivery_3.entry.js +12 -17
  241. package/dist/esm/salla-cart-coupons.entry.js +1 -1
  242. package/dist/esm/salla-cart-item-offers_2.entry.js +1 -1
  243. package/dist/esm/salla-cart-summary-card.entry.js +1 -1
  244. package/dist/esm/salla-cashback-banner.entry.js +1 -1
  245. package/dist/esm/salla-comment-factors.entry.js +1 -1
  246. package/dist/esm/salla-comment-form_9.entry.js +4 -4
  247. package/dist/esm/salla-conditional-offer.entry.js +1 -1
  248. package/dist/esm/salla-contacts.entry.js +1 -1
  249. package/dist/esm/salla-cookies-bar.entry.js +1 -1
  250. package/dist/esm/salla-count-down.entry.js +1 -1
  251. package/dist/esm/salla-custom-fields.entry.js +1 -1
  252. package/dist/esm/salla-delivery-promise.entry.js +3 -63
  253. package/dist/esm/salla-edit-order-button.entry.js +1 -1
  254. package/dist/esm/salla-filters-widget.entry.js +2 -2
  255. package/dist/esm/salla-filters.entry.js +2 -2
  256. package/dist/esm/salla-free-shipping-banner.entry.js +1 -1
  257. package/dist/esm/salla-free-shipping-tag.entry.js +1 -1
  258. package/dist/esm/salla-fulfillment-methods.entry.js +1 -1
  259. package/dist/esm/salla-gift-card-redeem_2.entry.js +2 -2
  260. package/dist/esm/salla-gifting.entry.js +1 -1
  261. package/dist/esm/salla-hook.entry.js +1 -1
  262. package/dist/esm/salla-infinite-scroll.entry.js +2 -2
  263. package/dist/esm/salla-installment.entry.js +1 -1
  264. package/dist/esm/salla-list-tile.entry.js +1 -1
  265. package/dist/esm/salla-localization-modal.entry.js +1 -1
  266. package/dist/esm/salla-login-modal.entry.js +1 -1
  267. package/dist/esm/salla-loyalty-banner_10.entry.js +1 -1
  268. package/dist/esm/salla-loyalty-exchange-product-card.entry.js +1 -1
  269. package/dist/esm/salla-loyalty-points-banner.entry.js +1 -1
  270. package/dist/esm/salla-loyalty-points-history.entry.js +1 -1
  271. package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
  272. package/dist/esm/salla-loyalty.entry.js +1 -1
  273. package/dist/esm/salla-maintenance-alert.entry.js +1 -1
  274. package/dist/esm/salla-map_3.entry.js +1 -1
  275. package/dist/esm/salla-menu.entry.js +1 -1
  276. package/dist/esm/salla-metadata.entry.js +1 -1
  277. package/dist/esm/salla-mobile-update-modal.entry.js +186 -0
  278. package/dist/esm/salla-multiple-bundle-product-cart_2.entry.js +4 -4
  279. package/dist/esm/salla-multiple-bundle-product-options-modal_2.entry.js +6 -6
  280. package/dist/esm/salla-multiple-bundle-product.entry.js +2 -2
  281. package/dist/esm/salla-next-order-coupon.entry.js +1 -1
  282. package/dist/esm/salla-notification-item_2.entry.js +3 -3
  283. package/dist/esm/salla-offer-modal.entry.js +2 -2
  284. package/dist/esm/salla-offer.entry.js +1 -1
  285. package/dist/esm/salla-order-branch.entry.js +1 -1
  286. package/dist/esm/salla-order-cancel.entry.js +1 -1
  287. package/dist/esm/salla-order-details-multiple-bundle-product.entry.js +1 -1
  288. package/dist/esm/salla-order-details-options.entry.js +1 -1
  289. package/dist/esm/salla-order-details.entry.js +2 -2
  290. package/dist/esm/salla-order-edit-item.entry.js +1 -1
  291. package/dist/esm/salla-order-edit-product-card.entry.js +2 -2
  292. package/dist/esm/salla-order-edit.entry.js +1 -1
  293. package/dist/esm/salla-order-items.entry.js +2 -2
  294. package/dist/esm/salla-order-options-modal.entry.js +1 -1
  295. package/dist/esm/salla-order-payment.entry.js +2 -2
  296. package/dist/esm/salla-order-rewards.entry.js +2 -2
  297. package/dist/esm/salla-order-shipments.entry.js +1 -1
  298. package/dist/esm/salla-order-summary.entry.js +2 -2
  299. package/dist/esm/salla-order-totals-card.entry.js +1 -1
  300. package/dist/esm/salla-orders.entry.js +2 -2
  301. package/dist/esm/salla-payments.entry.js +3 -3
  302. package/dist/esm/salla-placeholder.entry.js +2 -2
  303. package/dist/esm/salla-price-range.entry.js +1 -1
  304. package/dist/esm/salla-product-card-embed.entry.js +2 -2
  305. package/dist/esm/salla-product-card.entry.js +1 -1
  306. package/dist/esm/salla-product-size-guide.entry.js +3 -3
  307. package/dist/esm/salla-products-list.entry.js +2 -2
  308. package/dist/esm/salla-products-slider.entry.js +2 -2
  309. package/dist/esm/salla-quick-order.entry.js +1 -1
  310. package/dist/esm/salla-rating-modal-v2.entry.js +33 -7
  311. package/dist/esm/salla-rating-modal.entry.js +2 -2
  312. package/dist/esm/salla-review-factors-tags.entry.js +2 -2
  313. package/dist/esm/salla-review-order-item.entry.js +1 -1
  314. package/dist/esm/salla-scopes.entry.js +1 -1
  315. package/dist/esm/salla-search-product-card.entry.js +3 -3
  316. package/dist/esm/salla-search.entry.js +2 -2
  317. package/dist/esm/salla-skeleton.entry.js +2 -2
  318. package/dist/esm/salla-social-share.entry.js +2 -2
  319. package/dist/esm/salla-social.entry.js +2 -2
  320. package/dist/esm/salla-tab-content_3.entry.js +4 -4
  321. package/dist/esm/salla-thank-you-header.entry.js +2 -2
  322. package/dist/esm/salla-thank-you-page.entry.js +2 -2
  323. package/dist/esm/salla-tiered-offer.entry.js +1 -1
  324. package/dist/esm/salla-trust-badges.entry.js +1 -1
  325. package/dist/esm/salla-user-menu.entry.js +1 -1
  326. package/dist/esm/salla-user-profile.entry.js +1 -1
  327. package/dist/esm/salla-user-settings.entry.js +2 -2
  328. package/dist/esm/salla-verify.entry.js +3 -3
  329. package/dist/esm/salla-wallet.entry.js +1 -1
  330. package/dist/esm/salla-wishlist-actions.entry.js +2 -2
  331. package/dist/esm/salla-wishlist-summary.entry.js +2 -2
  332. package/dist/esm/twilight.js +3 -3
  333. package/dist/esm/{vanilla-picker-CAeu4f87.js → vanilla-picker-DF1Nq4hd.js} +1 -1
  334. package/dist/twilight/{p-4070f808.entry.js → p-0166f79c.entry.js} +1 -1
  335. package/dist/twilight/{p-0213fde4.entry.js → p-018826eb.entry.js} +1 -1
  336. package/dist/twilight/{p-74285af9.entry.js → p-043d73d9.entry.js} +1 -1
  337. package/dist/twilight/{p-825c5b73.entry.js → p-04aa3b60.entry.js} +1 -1
  338. package/dist/twilight/{p-90a59027.entry.js → p-0532a824.entry.js} +1 -1
  339. package/dist/twilight/{p-a55b5c44.entry.js → p-05918c61.entry.js} +1 -1
  340. package/dist/twilight/{p-c5e2c781.entry.js → p-062fc545.entry.js} +1 -1
  341. package/dist/twilight/{p-3b7a45ec.entry.js → p-08369cba.entry.js} +1 -1
  342. package/dist/twilight/{p-6d572fe0.entry.js → p-0d0f83be.entry.js} +1 -1
  343. package/dist/twilight/{p-982e9124.entry.js → p-0e68d32e.entry.js} +1 -1
  344. package/dist/twilight/{p-32d9da31.entry.js → p-115e4d6f.entry.js} +1 -1
  345. package/dist/twilight/{p-c2df20f8.entry.js → p-116ba74d.entry.js} +1 -1
  346. package/dist/twilight/{p-0add41ce.entry.js → p-12486655.entry.js} +1 -1
  347. package/dist/twilight/{p-30d64bd1.entry.js → p-1344006a.entry.js} +1 -1
  348. package/dist/twilight/{p-ade9a68c.entry.js → p-149eb28d.entry.js} +1 -1
  349. package/dist/twilight/{p-ce1e45a3.entry.js → p-172f2a77.entry.js} +1 -1
  350. package/dist/twilight/{p-386b3dcd.entry.js → p-173677bd.entry.js} +1 -1
  351. package/dist/twilight/{p-e20d5e75.entry.js → p-175aa116.entry.js} +1 -1
  352. package/dist/twilight/{p-e455709f.entry.js → p-1ad63304.entry.js} +1 -1
  353. package/dist/twilight/{p-db3efb27.entry.js → p-1c820b97.entry.js} +1 -1
  354. package/dist/twilight/{p-7fa4d0b6.entry.js → p-1c878907.entry.js} +1 -1
  355. package/dist/twilight/{p-a0bfedad.entry.js → p-1e675e56.entry.js} +1 -1
  356. package/dist/twilight/{p-8262e669.entry.js → p-283d55a9.entry.js} +1 -1
  357. package/dist/twilight/{p-9a0218a6.entry.js → p-28a3838d.entry.js} +1 -1
  358. package/dist/twilight/{p-b5e0065a.entry.js → p-2ac25f71.entry.js} +1 -1
  359. package/dist/twilight/{p-cb54adac.entry.js → p-2bf7cbe6.entry.js} +1 -1
  360. package/dist/twilight/{p-17bcbf9b.entry.js → p-2e5c4855.entry.js} +1 -1
  361. package/dist/twilight/{p-c64b2b22.entry.js → p-2e805b61.entry.js} +1 -1
  362. package/dist/twilight/{p-e921b2d1.entry.js → p-33c586a7.entry.js} +1 -1
  363. package/dist/twilight/{p-8948b58c.entry.js → p-35ec8259.entry.js} +1 -1
  364. package/dist/twilight/{p-8eb3fd92.entry.js → p-39cf245a.entry.js} +1 -1
  365. package/dist/twilight/{p-7db8d545.entry.js → p-39e19e3e.entry.js} +1 -1
  366. package/dist/twilight/{p-8b8cf457.entry.js → p-405a0719.entry.js} +1 -1
  367. package/dist/twilight/{p-6f84c662.entry.js → p-4514bfbc.entry.js} +1 -1
  368. package/dist/twilight/{p-d57b49ff.entry.js → p-45b91895.entry.js} +1 -1
  369. package/dist/twilight/p-45d6ae74.entry.js +4 -0
  370. package/dist/twilight/{p-e223beca.entry.js → p-466b7d90.entry.js} +1 -1
  371. package/dist/twilight/p-46848a79.entry.js +4 -0
  372. package/dist/twilight/{p-ad00021e.entry.js → p-4a1d812a.entry.js} +1 -1
  373. package/dist/twilight/{p-e3991836.entry.js → p-4f323370.entry.js} +1 -1
  374. package/dist/twilight/{p-aabcd09f.entry.js → p-54a0fabd.entry.js} +1 -1
  375. package/dist/twilight/{p-5aee5e44.entry.js → p-5ed309ee.entry.js} +1 -1
  376. package/dist/twilight/{p-0b0d4942.entry.js → p-624c2b99.entry.js} +1 -1
  377. package/dist/twilight/{p-8c2992e7.entry.js → p-628ae902.entry.js} +1 -1
  378. package/dist/twilight/{p-a22d9931.entry.js → p-62bf84fd.entry.js} +1 -1
  379. package/dist/twilight/{p-99cb3dba.entry.js → p-63247bfb.entry.js} +1 -1
  380. package/dist/twilight/{p-ec356e5a.entry.js → p-638e0139.entry.js} +1 -1
  381. package/dist/twilight/p-6c4555b2.entry.js +4 -0
  382. package/dist/twilight/{p-a5fc8358.entry.js → p-709b4ab5.entry.js} +1 -1
  383. package/dist/twilight/{p-01d5cd61.entry.js → p-70ce472b.entry.js} +1 -1
  384. package/dist/twilight/{p-036fbfc0.entry.js → p-7117fe09.entry.js} +1 -1
  385. package/dist/twilight/{p-eeefc285.entry.js → p-76141be4.entry.js} +1 -1
  386. package/dist/twilight/{p-9e429047.entry.js → p-7618a6df.entry.js} +1 -1
  387. package/dist/twilight/{p-252748d9.entry.js → p-77c477bd.entry.js} +1 -1
  388. package/dist/twilight/{p-20f9c62f.entry.js → p-7a1cdcc7.entry.js} +1 -1
  389. package/dist/twilight/{p-412fb721.entry.js → p-7d97513e.entry.js} +1 -1
  390. package/dist/twilight/{p-3b766a79.entry.js → p-7f30e00b.entry.js} +1 -1
  391. package/dist/twilight/{p-d0f903ac.entry.js → p-8722a50c.entry.js} +1 -1
  392. package/dist/twilight/{p-3bb0e184.entry.js → p-882d7c08.entry.js} +1 -1
  393. package/dist/twilight/{p-faf00404.entry.js → p-89c62a00.entry.js} +1 -1
  394. package/dist/twilight/{p-a3959219.entry.js → p-8ef15ba6.entry.js} +1 -1
  395. package/dist/twilight/{p-550ad1a6.entry.js → p-91473544.entry.js} +1 -1
  396. package/dist/twilight/{p-7db6ccfe.entry.js → p-931cc451.entry.js} +1 -1
  397. package/dist/twilight/{p-d0acd7ff.entry.js → p-93a088e7.entry.js} +1 -1
  398. package/dist/twilight/{p-32495dd2.entry.js → p-95758bdd.entry.js} +1 -1
  399. package/dist/twilight/{p-995b898f.entry.js → p-95f7c99b.entry.js} +1 -1
  400. package/dist/twilight/{p-45e0a5d0.entry.js → p-970e99cd.entry.js} +1 -1
  401. package/dist/twilight/{p-f83efc62.entry.js → p-979d0918.entry.js} +1 -1
  402. package/dist/twilight/{p-703b9253.entry.js → p-99765200.entry.js} +1 -1
  403. package/dist/twilight/{p-9683535f.entry.js → p-99b6d180.entry.js} +1 -1
  404. package/dist/twilight/{p-9e542951.entry.js → p-9b6f559e.entry.js} +1 -1
  405. package/dist/twilight/{p-777d28f6.entry.js → p-9e73b459.entry.js} +1 -1
  406. package/dist/twilight/{p-JGEddAgs.js → p-BTPANJIN.js} +1 -1
  407. package/dist/twilight/{p-Cnh7Qptl.js → p-BVaKfTMx.js} +1 -1
  408. package/dist/twilight/{p-Bgu5gtOF.js → p-C0zPqHmm.js} +1 -1
  409. package/dist/twilight/{p-C9zdeQFI.js → p-C9GauqTa.js} +2 -2
  410. package/dist/twilight/{p-Cfz9xit3.js → p-CFzrPKbi.js} +1 -1
  411. package/dist/twilight/{p-Dav_R_d2.js → p-CSsOnp68.js} +1 -1
  412. package/dist/twilight/{p-CmYSalnM.js → p-Cc1dNnp_.js} +1 -1
  413. package/dist/twilight/{p-Xgbueas7.js → p-DRtbu0JQ.js} +1 -1
  414. package/dist/twilight/{p-CSGj1pY-.js → p-DibVuHKp.js} +1 -1
  415. package/dist/twilight/{p-RflSBQNB.js → p-DuCmj2_U.js} +1 -1
  416. package/dist/twilight/{p-CWWgpQ8Q.js → p-Y0yMZUbe.js} +2 -2
  417. package/dist/twilight/{p-619c709c.entry.js → p-a91ddfb4.entry.js} +1 -1
  418. package/dist/twilight/{p-2b930157.entry.js → p-aa5d0b21.entry.js} +1 -1
  419. package/dist/twilight/{p-4d615f9f.entry.js → p-aff0942e.entry.js} +1 -1
  420. package/dist/twilight/{p-427c13b6.entry.js → p-b8238390.entry.js} +1 -1
  421. package/dist/twilight/{p-f3b12754.entry.js → p-bb05be17.entry.js} +1 -1
  422. package/dist/twilight/{p-5009f654.entry.js → p-bddfcbc8.entry.js} +1 -1
  423. package/dist/twilight/{p-9d1a5007.entry.js → p-ca329334.entry.js} +1 -1
  424. package/dist/twilight/{p-50853b76.entry.js → p-cf211a8c.entry.js} +1 -1
  425. package/dist/twilight/{p-194ff38c.entry.js → p-d0691020.entry.js} +1 -1
  426. package/dist/twilight/{p-c92cc92f.entry.js → p-d6d86cb3.entry.js} +1 -1
  427. package/dist/twilight/p-d9b6090b.entry.js +4 -0
  428. package/dist/twilight/{p-e37da59f.entry.js → p-da4b0896.entry.js} +1 -1
  429. package/dist/twilight/{p-db73d0bf.entry.js → p-da548ddf.entry.js} +1 -1
  430. package/dist/twilight/{p-fa622715.entry.js → p-de273a21.entry.js} +1 -1
  431. package/dist/twilight/{p-290ce0bc.entry.js → p-df317844.entry.js} +1 -1
  432. package/dist/twilight/{p-3cc6ca6c.entry.js → p-dff32c76.entry.js} +1 -1
  433. package/dist/twilight/{p-4d7fc363.entry.js → p-e233642f.entry.js} +1 -1
  434. package/dist/twilight/{p-73dea22d.entry.js → p-e353ad86.entry.js} +1 -1
  435. package/dist/twilight/{p-32f100f8.entry.js → p-e54ad603.entry.js} +1 -1
  436. package/dist/twilight/{p-bbb09d92.entry.js → p-e5741ee6.entry.js} +1 -1
  437. package/dist/twilight/{p-2e4e15c5.entry.js → p-e6d4feeb.entry.js} +1 -1
  438. package/dist/twilight/p-ea175728.entry.js +4 -0
  439. package/dist/twilight/p-ea31904b.entry.js +4 -0
  440. package/dist/twilight/{p-a070cce0.entry.js → p-ea7218bf.entry.js} +1 -1
  441. package/dist/twilight/{p-575014c4.entry.js → p-eae77b32.entry.js} +1 -1
  442. package/dist/twilight/{p-8712f7c7.entry.js → p-eb60fbbe.entry.js} +1 -1
  443. package/dist/twilight/{p-c4274188.entry.js → p-ed1ab1ad.entry.js} +1 -1
  444. package/dist/twilight/p-ee344577.entry.js +4 -0
  445. package/dist/twilight/{p-f6279a13.entry.js → p-f72cbb2e.entry.js} +1 -1
  446. package/dist/twilight/{p-1867f7d4.entry.js → p-fa881be4.entry.js} +1 -1
  447. package/dist/twilight/p-fad39687.entry.js +4 -0
  448. package/dist/twilight/p-q5NJ0uS-.js +4 -0
  449. package/dist/twilight/{p-BcT9tEVW.js → p-tNwFaykp.js} +1 -1
  450. package/dist/twilight/twilight.esm.js +1 -1
  451. package/dist/types/components/salla-bullet-delivery/helpers.d.ts +7 -0
  452. package/dist/types/components/salla-bullet-delivery/interfaces.d.ts +4 -0
  453. package/dist/types/components/salla-bullet-delivery/salla-bullet-delivery.d.ts +0 -2
  454. package/dist/types/components/salla-mobile-update-modal/salla-mobile-update-modal.d.ts +44 -0
  455. package/dist/types/components/salla-quick-buy/salla-quick-buy.d.ts +12 -0
  456. package/dist/types/components/salla-rating-modal/salla-rating-modal-v2.d.ts +4 -0
  457. package/dist/types/components/salla-verify/salla-verify.d.ts +8 -0
  458. package/dist/types/components.d.ts +50 -0
  459. package/package.json +5 -5
  460. package/dist/twilight/p-2e6537a3.entry.js +0 -4
  461. package/dist/twilight/p-3a4e86d1.entry.js +0 -4
  462. package/dist/twilight/p-86d55a6b.entry.js +0 -4
  463. package/dist/twilight/p-8c548259.entry.js +0 -4
  464. package/dist/twilight/p-908716fb.entry.js +0 -4
  465. package/dist/twilight/p-9cf31ff4.entry.js +0 -4
  466. package/dist/twilight/p-a3ca61af.entry.js +0 -4
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{r as t,h as r,H as a,a as i}from"./p-C9zdeQFI.js";import{H as o}from"./p-00vBRoH3.js";import{S as e}from"./p-D4oPi1Ov.js";import{C as s}from"./p-gFG8By9O.js";const c=class{constructor(r){if(t(this,r),this.forceShowWishlistButton=!1,this.compactAddToCart=!1,this.showOutOfStockBesidePrice=!1,this.COMPACT_TITLE_MAX_LENGTH=60,salla.onReady((()=>{this.fitImageHeight=salla.config.get("store.settings.product.fit_type"),salla.wishlist.event.onAdded(((t,r)=>this.toggleFavoriteIcon(!0,r))),salla.wishlist.event.onRemoved(((t,r)=>this.toggleFavoriteIcon(!1,r))),salla.event.on("wishlist::storage.synced",(()=>this.productData&&this.toggleFavoriteIcon(this.isInWishlist()))),this.placeholder=salla.url.asset(salla.config.get("theme.settings.placeholder"))})),this.product)try{this.productData="object"==typeof this.product?this.product:JSON.parse(this.product)}catch(t){salla.log("Bad json passed via product prop")}}connectedCallback(){this.langUnsubscribe=salla.lang.subscribe((()=>{this.remained=salla.lang.get("pages.products.remained"),this.donationAmount=salla.lang.get("pages.products.donation_amount"),this.startingPrice=salla.lang.get("pages.products.starting_price"),this.addToCart=salla.lang.get("pages.cart.add_to_cart"),this.outOfStock=salla.lang.get("pages.products.out_of_stock")}))}disconnectedCallback(){this.langUnsubscribe?.()}initCircleBar(){let t=this.productData.quantity/(this.productData.quantity>100?2*this.productData.quantity:100)*100;this.pie.querySelector(".s-product-card-content-pie-svg-bar").style.strokeDashoffset=100-t}toggleFavoriteIcon(t=!0,r=null){r&&r!==this.productData.id||this.wishlistBtn?.classList.toggle("s-product-card-wishlist-added",t)}isInWishlist(){return salla.storage.get("salla::wishlist",[]).includes(this.productData?.id)}async handleWishlistClick(){const t=this.isInWishlist();this.toggleFavoriteIcon(!t);try{await salla.wishlist.toggle(this.productData.id)}catch{this.toggleFavoriteIcon(t)}}formatDate(t){let r=new Date(t);return`${r.getFullYear()}-${r.getMonth()+1}-${r.getDate()}`}getDisplayTitle(){const t=this.productData?.name||"";return!this.compact||t.length<=this.COMPACT_TITLE_MAX_LENGTH?t:t.slice(0,this.COMPACT_TITLE_MAX_LENGTH).trimEnd()+"…"}getProductBadge(){return this.productData?.is_out_of_stock&&!this.showOutOfStockBesidePrice?r("div",{class:"s-product-card-out-badge"},this.outOfStock):this.showQuantity&&this.productData?.quantity?r("div",{class:"s-product-card-quantity"},this.remained," ",salla.helpers.number(this.productData?.quantity)):this.productData.promotion_title?r("div",{class:"s-product-card-promotion-title"},this.productData.promotion_title):""}renderAddToCartLabel(){return r("slot",{name:"add-to-cart-label"},this.compactAddToCart?r("span",{class:"s-product-card-add-to-cart-icon",innerHTML:s}):this.productData.add_to_cart_label)}getPriceFormat(t){return t&&0!=t?salla.money(t):salla.config.get("store.settings.product.show_price_as_dash")?"-":""}getProductPrice(){return this.productData.is_on_sale?r("div",{class:"s-product-card-sale-price"},r("p",{class:"s-product-card-price-value",innerHTML:this.getPriceFormat(this.productData.sale_price)}),r("span",{innerHTML:this.getPriceFormat(this.productData?.regular_price)})):this.productData.starting_price?r("div",{class:"s-product-card-starting-price"},r("p",null,this.startingPrice),r("h4",{innerHTML:this.getPriceFormat(this.productData?.starting_price)})):r("p",{class:"s-product-card-price-value",innerHTML:this.getPriceFormat(this.productData?.price)})}render(){if(!this.productData)return null;const t={"s-product-card-entry":!0,"s-product-card-vertical":!this.horizontal&&!this.fullImage&&!this.minimal,"s-product-card-horizontal":this.horizontal&&!this.fullImage&&!this.minimal,"s-product-card-fit-height":this.fitImageHeight&&!this.isSpecial&&!this.fullImage&&!this.minimal,"s-product-card-special":this.isSpecial,"s-product-card-full-image":this.fullImage,"s-product-card-minimal":this.minimal,"s-product-card-compact":this.compact,"s-product-card-donation":this.productData?.donation,"s-product-card-shadow":this.shadowOnHover,"s-product-card-out-of-stock":this.productData?.is_out_of_stock},i=this.productData?.url?{href:this.productData.url,title:`Learn more about ${this.productData?.name}`}:{};return r(a,{id:`product-${this.productData?.id}`,class:t},r("div",{class:this.fullImage?"s-product-card-image-full":"s-product-card-image"},r("a",{...i},r("img",{class:`s-product-card-image-${salla.url.is_placeholder(this.productData?.image?.url)?"contain":this.fitImageHeight?this.fitImageHeight:"cover"} lazy`,src:this.placeholder,alt:this.productData?.image?.alt||this.productData?.name,"data-src":this.productData?.image?.url||this.productData?.thumbnail}),this.fullImage||this.minimal?"":this.getProductBadge()),this.fullImage&&r("a",{...i,class:"s-product-card-overlay"}),this.horizontal||this.fullImage?"":r("salla-button",{shape:"icon",fill:"none",color:"light",loading:!1,"aria-label":"Add or remove to wishlist",ref:t=>this.wishlistBtn=t,class:"s-product-card-wishlist-btn animated",onClick:()=>this.handleWishlistClick()},r("span",{innerHTML:o}))),r("div",{class:"s-product-card-content"},this.isSpecial&&this.productData?.quantity?r("div",{class:"s-product-card-content-pie",ref:t=>this.pie=t},r("span",null,r("b",null,salla.helpers.number(this.productData?.quantity)),this.remained),r("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"-2 -1 36 34",class:"s-product-card-content-pie-svg"},r("circle",{cx:"16",cy:"16",r:"15.9155",class:"s-product-card-content-pie-svg-base"}),r("circle",{cx:"16",cy:"16",r:"15.9155",class:"s-product-card-content-pie-svg-bar"}))):"",r("div",{class:{"s-product-card-content-main":!0,"s-product-card-content-extra-padding":this.isSpecial}},r("h3",{class:"s-product-card-content-title"},r("a",{...i},this.getDisplayTitle())),this.productData?.subtitle&&!this.minimal?r("p",{class:"s-product-card-content-subtitle"},this.productData?.subtitle):""),!this.productData?.donation||this.minimal||this.fullImage?"":[r("salla-progress-bar",{donation:this.productData?.donation}),r("div",{class:"s-product-card-donation-input"},this.productData?.donation?.can_donate?[r("label",{htmlFor:"donation-amount"},this.donationAmount," ",r("span",null,"*")),r("input",{type:"text",onInput:t=>{salla.helpers.inputDigitsOnly(t.target),this.addBtn.donatingAmount=t.target.value},id:"donation-amount",name:"donating_amount",class:"s-form-control",placeholder:this.donationAmount})]:"")],r("div",{class:{"s-product-card-content-sub":!0,"s-product-card-content-extra-padding":this.isSpecial}},this.getProductPrice(),this.showOutOfStockBesidePrice&&this.productData?.is_out_of_stock?r("span",{class:"s-product-card-out-of-stock-label"},this.outOfStock):"",this.productData?.rating?.stars&&!this.minimal?r("div",{class:"s-product-card-rating"},r("span",{innerHTML:e}),r("span",null,this.productData.rating.stars)):""),this.isSpecial&&this.productData.discount_ends?r("salla-count-down",{date:this.formatDate(this.productData.discount_ends),"end-of-day":!0,boxed:!0,labeled:!0}):"",this.hideAddBtn||this.compact?"":r("div",{class:"s-product-card-content-footer"},r("salla-add-product-button",{fill:"outline",width:"wide",ref:t=>this.addBtn=t,"product-id":this.productData.id,"product-status":this.productData.status,"product-type":this.productData.type},this.renderAddToCartLabel()),this.horizontal||this.fullImage?r("salla-button",{shape:"icon",fill:"none",color:"light",loading:!1,ref:t=>this.wishlistBtn=t,"aria-label":"Add or remove to wishlist",class:"s-product-card-wishlist-btn animated",onClick:()=>this.handleWishlistClick(),"data-id":"{{ product.id }}"},r("span",{class:"text-xl",innerHTML:o})):"")),!this.hideAddBtn&&this.compact?r("div",{class:"s-product-card-content-footer"},r("salla-add-product-button",{ref:t=>this.addBtn=t,"product-id":this.productData.id,"product-status":this.productData.status,"product-type":this.productData.type,class:"s-add-product-button-compact"},this.renderAddToCartLabel()),this.forceShowWishlistButton?r("salla-button",{shape:"icon",fill:"none",color:"light",loading:!1,ref:t=>this.wishlistBtn=t,"aria-label":"Add or remove to wishlist",class:"s-product-card-wishlist-btn animated",onClick:()=>this.handleWishlistClick()},r("span",{innerHTML:o})):""):"")}componentDidLoad(){document.lazyLoadInstance?.update(this.host.querySelectorAll(".lazy")),this.productData?.quantity&&this.isSpecial&&this.initCircleBar(),!salla.config.isGuest()&&salla.storage.get("salla::wishlist",[]).includes(this.productData?.id)&&this.toggleFavoriteIcon()}static get assetsDirs(){return["assets"]}get host(){return i(this)}};c.style='/*!twlt*/.s-product-card-image::before{font-family:"sallaicons";content:"\\ec1f" !important}.s-product-card-content-pie-svg circle{transition:stroke-dashoffset 1s linear;-webkit-transition:stroke-dashoffset 1s linear;-moz-transition:stroke-dashoffset 1s linear;-ms-transition:stroke-dashoffset 1s linear;-o-transition:stroke-dashoffset 1s linear;stroke:#E8EDF2;stroke-width:2px;stroke-linecap:round;fill:none}.s-product-card-content-pie-svg-bar{stroke:var(--color-primary) !important;stroke-dasharray:100 100;stroke-dashoffset:100}.text-xl{font-size:1.25rem;line-height:1.75rem}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.outline{outline-style:solid}.has-error .s-form-control,.has-error .s-tel-input-control,.has-error .s-datetime-picker-input{border-color:#ff443a;color:#ff443a}.s-form-control{display:block;width:100%;border-radius:var(--s-radius, 0.25rem);border-width:1px;--tw-border-opacity:1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:0.5rem;font-size:0.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.s-form-control:focus{border-color:var(--color-primary);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)}.s-product-card-entry{position:relative;display:flex;height:100%;justify-content:space-between;border-radius:var(--s-radius, 0.25rem);--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));transition-property:box-shadow;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms}.s-product-card-shadow:hover{box-shadow:5px 10px 30px #2b2d340d}.s-product-card-out-of-stock img.loaded{--tw-grayscale:grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.s-product-card-overlay{position:absolute;top:0px;bottom:0px;left:0px;right:0px;--tw-bg-opacity:1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1));opacity:0.5;transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:700ms}.s-product-card-overlay:hover{opacity:0.4}.s-product-card-vertical{flex-direction:column}.s-product-card-vertical .s-product-card-image{flex:1 1 0%;border-top-left-radius:var(--s-radius, 0.25rem);border-top-right-radius:var(--s-radius, 0.25rem)}.s-product-card-vertical .s-product-card-wishlist-btn{position:absolute;top:0.5rem;right:0.5rem;opacity:0.75}.s-product-card-vertical .s-product-card-wishlist-btn:hover{opacity:1}@media (min-width: 768px){.s-product-card-vertical .s-product-card-wishlist-btn{right:0.5rem}}.s-product-card-vertical .s-product-card-wishlist-btn:where([dir="rtl"],[dir="rtl"] *){left:0.5rem;right:unset}@media (min-width: 768px){.s-product-card-vertical .s-product-card-wishlist-btn:where([dir="rtl"],[dir="rtl"] *){left:0.5rem;right:unset}}.s-product-card-minimal .s-product-card-wishlist-btn{position:absolute;top:0px;right:0px;opacity:0.75}.s-product-card-minimal .s-product-card-wishlist-btn:hover{opacity:1}@media (min-width: 768px){.s-product-card-minimal .s-product-card-wishlist-btn{right:0px}}.s-product-card-minimal .s-product-card-wishlist-btn:where([dir="rtl"],[dir="rtl"] *){left:0px;right:unset}@media (min-width: 768px){.s-product-card-minimal .s-product-card-wishlist-btn:where([dir="rtl"],[dir="rtl"] *){left:0px;right:unset}}.s-product-card-minimal .s-product-card-image{width:8rem}@media (min-width: 640px){.s-product-card-minimal .s-product-card-image{width:14rem}}@media (min-width: 1024px){.s-product-card-minimal .s-product-card-image{width:7rem}}.s-product-card-minimal .s-product-card-content-title a{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.s-product-card-minimal .s-product-card-content{display:flex;flex:1 1 0%;flex-direction:column;overflow:hidden;padding:1.25rem}.s-product-card-minimal .s-product-card-wishlist-btn button{margin:0px;background-color:transparent}.s-product-card-minimal .s-product-card-wishlist-btn button svg,.s-product-card-full-image .s-product-card-wishlist-btn button svg{height:1rem;width:1rem;fill:#fff}.s-product-card-vertical .s-product-card-wishlist-btn button{margin:0px;--tw-bg-opacity:1 !important;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1)) !important}.s-product-card-wishlist-btn button:hover svg{fill:#4b5563}.s-product-card-fit-height .s-product-card-image{height:11rem;max-height:15rem}.s-product-card-quantity{position:absolute;bottom:0.25rem;left:50%;z-index:1;max-width:calc(100% - 60px);--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:var(--s-radius, 0.25rem);--tw-bg-opacity:1;background-color:rgb(248 113 113 / var(--tw-bg-opacity, 1));padding-left:0.625rem;padding-right:0.625rem;padding-top:0.375rem;padding-bottom:0.375rem;font-size:0.75rem;line-height:1rem;font-weight:700;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.s-product-card-quantity{padding-top:0.5rem;padding-bottom:0.5rem}}.s-product-card-promotion-title{position:absolute;top:1rem;left:0px;z-index:1;max-width:calc(100% - 60px);border-top-right-radius:var(--s-radius, 0.25rem);border-bottom-right-radius:var(--s-radius, 0.25rem);--tw-bg-opacity:1;background-color:rgb(248 113 113 / var(--tw-bg-opacity, 1));padding-left:0.625rem;padding-right:0.625rem;padding-top:0.375rem;padding-bottom:0.375rem;font-size:0.75rem;line-height:1rem;font-weight:700;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.s-product-card-promotion-title{padding-top:0.5rem;padding-bottom:0.5rem}}.s-product-card-promotion-title:where([dir="rtl"],[dir="rtl"] *){right:0px;left:unset;border-top-left-radius:var(--s-radius, 0.25rem);border-bottom-left-radius:var(--s-radius, 0.25rem);border-top-right-radius:0px;border-bottom-right-radius:0px}.s-product-card-out-badge{position:absolute;bottom:0.5rem;left:50%;z-index:1;max-width:calc(100% - 60px);--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:0.375rem;--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1));padding-left:0.625rem;padding-right:0.625rem;padding-top:0.375rem;padding-bottom:0.375rem;font-size:0.75rem;line-height:1rem;font-weight:700;--tw-text-opacity:1;color:rgb(153 153 153 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.s-product-card-out-badge{padding-top:0.5rem;padding-bottom:0.5rem}}.s-product-card-image{position:relative;height:100%;width:100%;flex-shrink:0;overflow:hidden;--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.s-product-card-image::before{position:absolute;top:50%;left:50%;display:inline-block;--tw-translate-x:-50%;--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));font-size:1.875rem;line-height:2.25rem;content:var(--tw-content);--tw-text-opacity:1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.s-product-card-image:hover{opacity:0.9}.s-product-card-image img{height:100%;width:100%;transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:500ms}.s-product-card-image img.lazy{opacity:0}.s-product-card-image img.loaded{position:relative;opacity:1}.s-product-card-content{position:relative;display:flex;flex-direction:column;padding:0.75rem}@media (min-width: 640px){.s-product-card-content{padding:1.25rem}}.s-product-card-content-title{margin-bottom:0.625rem;max-width:100%;line-height:1.5rem}.s-product-card-content-subtitle{margin-bottom:0.625rem;font-size:0.875rem;line-height:1.5rem;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.s-product-card-special .s-product-card-content-main,special .s-product-card-content-sub{padding-right:6rem}.s-product-card-special .s-product-card-content-main:where([dir="rtl"],[dir="rtl"] *),special .s-product-card-content-sub:where([dir="rtl"],[dir="rtl"] *){padding-left:6rem;padding-right:0px}.s-product-card-donation-input{flex:1 1 0%}.s-product-card-donation-input label{margin-bottom:0.625rem;display:block;font-size:0.875rem;line-height:1.25rem}.s-product-card-donation-input label span{--tw-text-opacity:1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.s-product-card-content-title a{display:block;text-align:start;font-size:0.875rem;line-height:1.25rem;font-weight:700;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.s-product-card-content-title a:hover{color:var(--color-primary)}.s-product-card-content-sub{margin-bottom:1.25rem;display:flex;width:100%;align-items:center;justify-content:space-between}.s-product-card-out-of-stock-label{font-size:0.75rem;line-height:1rem;font-weight:700;--tw-text-opacity:1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.s-product-card-rating{display:flex;align-items:center}.s-product-card-rating>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.25rem * var(--tw-space-x-reverse));margin-left:calc(0.25rem * calc(1 - var(--tw-space-x-reverse)))}.s-product-card-rating{font-size:0.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-product-card-rating:where([dir="rtl"],[dir="rtl"] *)>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.s-product-card-rating span svg{margin-bottom:3px;height:1rem;width:1rem;fill:#fbbf24}.s-product-card-content-footer{margin-top:auto;display:flex;align-items:center}.s-product-card-sale-price>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.25rem * var(--tw-space-x-reverse));margin-left:calc(0.25rem * calc(1 - var(--tw-space-x-reverse)))}.s-product-card-sale-price:where([dir="rtl"],[dir="rtl"] *)>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.s-product-card-sale-price span{font-size:0.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1));text-decoration-line:line-through}.s-product-card-starting-price{display:flex;width:100%;align-items:center;justify-content:space-between}.s-product-card-starting-price h4{display:inline-block;font-size:0.875rem;line-height:1.25rem;font-weight:700;--tw-text-opacity:1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.s-product-card-price-value{display:inline-block;font-size:0.875rem;line-height:1.25rem;font-weight:700;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.s-product-card-image-cover{object-fit:cover}.s-product-card-image-contain{object-fit:contain}.s-product-card-content-pie{position:absolute;top:0.625rem;right:1.25rem;display:flex;height:72px;width:72px;align-items:center;justify-content:center;color:var(--color-primary)}.s-product-card-content-pie:where([dir="rtl"],[dir="rtl"] *){left:1.25rem;right:unset}.s-product-card-content-pie span{position:absolute;top:43%;left:50%;display:flex;--tw-translate-y:-50%;--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));flex-direction:column;align-items:center;justify-content:center;text-align:center;font-size:0.75rem;line-height:1rem;line-height:1;--tw-text-opacity:1;color:rgb(124 128 130 / var(--tw-text-opacity, 1))}.s-product-card-content-pie span b{font-size:1.25rem;line-height:1.75rem;font-weight:700;color:var(--color-primary)}.s-product-card-content-extra-padding{padding-right:6rem}.s-product-card-content-extra-padding:where([dir="rtl"],[dir="rtl"] *){padding-left:6rem;padding-right:0px}.s-product-card-wishlist-added svg{fill:#ef4444}.s-product-card-horizontal .s-product-card-image{height:auto;width:8rem}@media (min-width: 640px){.s-product-card-horizontal .s-product-card-image{width:14rem}}.s-product-card-horizontal .s-product-card-image:where([dir="ltr"],[dir="ltr"] *){border-top-left-radius:var(--s-radius, 0.25rem);border-bottom-left-radius:var(--s-radius, 0.25rem)}.s-product-card-horizontal .s-product-card-image:where([dir="rtl"],[dir="rtl"] *){border-top-right-radius:var(--s-radius, 0.25rem);border-bottom-right-radius:var(--s-radius, 0.25rem)}.s-product-card-horizontal .s-product-card-quantity{max-width:unset}.s-product-card-horizontal .s-product-card-content-title a{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.s-product-card-horizontal .s-product-card-promotion-title{max-width:unset}.s-product-card-horizontal .s-product-card-out-badge{max-width:unset}.s-product-card-horizontal .s-product-card-content{margin-bottom:0.625rem;width:100%}.s-product-card-full-image{height:20rem;overflow:hidden}@media (min-width: 768px){.s-product-card-full-image{height:auto}}.s-product-card-full-image .s-product-card-content{position:absolute;bottom:0px;z-index:10;width:100%;padding-left:2.5rem;padding-right:2.5rem;padding-top:1.25rem;padding-bottom:1.75rem}.s-product-card-full-image img{position:relative;height:100%;width:100%;overflow:hidden;border-radius:var(--s-radius, 0.25rem)}.s-product-card-full-image img:hover{opacity:0.9}.s-product-card-full-image .s-product-card-image a{height:100%;width:100%}.s-product-card-full-image .s-product-card-content-title a{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-product-card-full-image .s-product-card-content-title a:hover{color:var(--color-primary)}.s-product-card-full-image .s-product-card-content-subtitle{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-product-card-full-image .s-product-card-price-value{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-product-card-full-image .s-product-card-sale-price{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-product-card-full-image .s-product-card-sale-price span{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-product-card-image-full{width:100%}.s-product-card-compact{display:flex;cursor:pointer;flex-direction:row;align-items:center;gap:0.75rem;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-top:0.75rem;padding-bottom:0.75rem;padding-left:0px;padding-right:0px;transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:200ms}.s-product-card-compact .s-product-card-content-footer{margin-top:0px;flex-shrink:0;gap:0.5rem}.s-product-card-add-to-cart-icon svg{height:1rem;width:1rem;fill:currentColor}.s-product-card-compact .s-add-product-button-compact salla-button .s-button-btn{height:2rem;border-radius:0.375rem;border-width:1px;border-color:var(--color-primary);background-color:transparent;padding-left:0.75rem;padding-right:0.75rem;font-size:0.75rem;line-height:1rem;font-weight:500;color:var(--color-primary);transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:200ms}.s-product-card-compact .s-add-product-button-compact salla-button .s-button-btn:hover{border-color:var(--color-primary);background-color:var(--color-primary);--tw-bg-opacity:0.1;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-product-card-compact .s-product-card-content{min-width:0px;flex:1 1 0%;padding:0px;text-align:right}.s-product-card-compact .s-product-card-content-main{margin-bottom:0.25rem}.s-product-card-compact .s-product-card-content-title{font-size:0.875rem;line-height:1.25rem;font-weight:500;line-height:1.25;--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.s-product-card-compact .s-product-card-content-title a{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-weight:500}.s-product-card-compact .s-product-card-content-subtitle{margin-top:0.25rem;display:none;font-size:0.75rem;line-height:1rem;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-product-card-compact .s-product-card-content-sub{display:flex;align-items:center;justify-content:flex-start;gap:0.5rem;font-size:0.75rem;line-height:1rem;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-product-card-compact .s-product-card-content-sub h4{margin:0px}.s-product-card-compact .s-product-card-starting-price h4{font-weight:700}.s-product-card-compact .s-product-card-starting-price{justify-content:flex-start;gap:0.25rem}.s-product-card-compact .s-product-card-image{height:5rem;width:5rem;flex-shrink:0;border-radius:0.375rem}.s-product-card-compact .s-product-card-image img{height:100%;width:100%;border-radius:0.375rem;object-fit:cover}.s-product-card-compact .s-product-card-promotion-title{display:none}.s-search-grid-item .s-product-card-out-badge{--tw-bg-opacity:1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1));--tw-text-opacity:1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}';export{c as salla_product_card}
4
+ import{r as t,h as r,H as a,a as i}from"./p-C9GauqTa.js";import{H as o}from"./p-00vBRoH3.js";import{S as e}from"./p-D4oPi1Ov.js";import{C as s}from"./p-gFG8By9O.js";const c=class{constructor(r){if(t(this,r),this.forceShowWishlistButton=!1,this.compactAddToCart=!1,this.showOutOfStockBesidePrice=!1,this.COMPACT_TITLE_MAX_LENGTH=60,salla.onReady((()=>{this.fitImageHeight=salla.config.get("store.settings.product.fit_type"),salla.wishlist.event.onAdded(((t,r)=>this.toggleFavoriteIcon(!0,r))),salla.wishlist.event.onRemoved(((t,r)=>this.toggleFavoriteIcon(!1,r))),salla.event.on("wishlist::storage.synced",(()=>this.productData&&this.toggleFavoriteIcon(this.isInWishlist()))),this.placeholder=salla.url.asset(salla.config.get("theme.settings.placeholder"))})),this.product)try{this.productData="object"==typeof this.product?this.product:JSON.parse(this.product)}catch(t){salla.log("Bad json passed via product prop")}}connectedCallback(){this.langUnsubscribe=salla.lang.subscribe((()=>{this.remained=salla.lang.get("pages.products.remained"),this.donationAmount=salla.lang.get("pages.products.donation_amount"),this.startingPrice=salla.lang.get("pages.products.starting_price"),this.addToCart=salla.lang.get("pages.cart.add_to_cart"),this.outOfStock=salla.lang.get("pages.products.out_of_stock")}))}disconnectedCallback(){this.langUnsubscribe?.()}initCircleBar(){let t=this.productData.quantity/(this.productData.quantity>100?2*this.productData.quantity:100)*100;this.pie.querySelector(".s-product-card-content-pie-svg-bar").style.strokeDashoffset=100-t}toggleFavoriteIcon(t=!0,r=null){r&&r!==this.productData.id||this.wishlistBtn?.classList.toggle("s-product-card-wishlist-added",t)}isInWishlist(){return salla.storage.get("salla::wishlist",[]).includes(this.productData?.id)}async handleWishlistClick(){const t=this.isInWishlist();this.toggleFavoriteIcon(!t);try{await salla.wishlist.toggle(this.productData.id)}catch{this.toggleFavoriteIcon(t)}}formatDate(t){let r=new Date(t);return`${r.getFullYear()}-${r.getMonth()+1}-${r.getDate()}`}getDisplayTitle(){const t=this.productData?.name||"";return!this.compact||t.length<=this.COMPACT_TITLE_MAX_LENGTH?t:t.slice(0,this.COMPACT_TITLE_MAX_LENGTH).trimEnd()+"…"}getProductBadge(){return this.productData?.is_out_of_stock&&!this.showOutOfStockBesidePrice?r("div",{class:"s-product-card-out-badge"},this.outOfStock):this.showQuantity&&this.productData?.quantity?r("div",{class:"s-product-card-quantity"},this.remained," ",salla.helpers.number(this.productData?.quantity)):this.productData.promotion_title?r("div",{class:"s-product-card-promotion-title"},this.productData.promotion_title):""}renderAddToCartLabel(){return r("slot",{name:"add-to-cart-label"},this.compactAddToCart?r("span",{class:"s-product-card-add-to-cart-icon",innerHTML:s}):this.productData.add_to_cart_label)}getPriceFormat(t){return t&&0!=t?salla.money(t):salla.config.get("store.settings.product.show_price_as_dash")?"-":""}getProductPrice(){return this.productData.is_on_sale?r("div",{class:"s-product-card-sale-price"},r("p",{class:"s-product-card-price-value",innerHTML:this.getPriceFormat(this.productData.sale_price)}),r("span",{innerHTML:this.getPriceFormat(this.productData?.regular_price)})):this.productData.starting_price?r("div",{class:"s-product-card-starting-price"},r("p",null,this.startingPrice),r("h4",{innerHTML:this.getPriceFormat(this.productData?.starting_price)})):r("p",{class:"s-product-card-price-value",innerHTML:this.getPriceFormat(this.productData?.price)})}render(){if(!this.productData)return null;const t={"s-product-card-entry":!0,"s-product-card-vertical":!this.horizontal&&!this.fullImage&&!this.minimal,"s-product-card-horizontal":this.horizontal&&!this.fullImage&&!this.minimal,"s-product-card-fit-height":this.fitImageHeight&&!this.isSpecial&&!this.fullImage&&!this.minimal,"s-product-card-special":this.isSpecial,"s-product-card-full-image":this.fullImage,"s-product-card-minimal":this.minimal,"s-product-card-compact":this.compact,"s-product-card-donation":this.productData?.donation,"s-product-card-shadow":this.shadowOnHover,"s-product-card-out-of-stock":this.productData?.is_out_of_stock},i=this.productData?.url?{href:this.productData.url,title:`Learn more about ${this.productData?.name}`}:{};return r(a,{id:`product-${this.productData?.id}`,class:t},r("div",{class:this.fullImage?"s-product-card-image-full":"s-product-card-image"},r("a",{...i},r("img",{class:`s-product-card-image-${salla.url.is_placeholder(this.productData?.image?.url)?"contain":this.fitImageHeight?this.fitImageHeight:"cover"} lazy`,src:this.placeholder,alt:this.productData?.image?.alt||this.productData?.name,"data-src":this.productData?.image?.url||this.productData?.thumbnail}),this.fullImage||this.minimal?"":this.getProductBadge()),this.fullImage&&r("a",{...i,class:"s-product-card-overlay"}),this.horizontal||this.fullImage?"":r("salla-button",{shape:"icon",fill:"none",color:"light",loading:!1,"aria-label":"Add or remove to wishlist",ref:t=>this.wishlistBtn=t,class:"s-product-card-wishlist-btn animated",onClick:()=>this.handleWishlistClick()},r("span",{innerHTML:o}))),r("div",{class:"s-product-card-content"},this.isSpecial&&this.productData?.quantity?r("div",{class:"s-product-card-content-pie",ref:t=>this.pie=t},r("span",null,r("b",null,salla.helpers.number(this.productData?.quantity)),this.remained),r("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"-2 -1 36 34",class:"s-product-card-content-pie-svg"},r("circle",{cx:"16",cy:"16",r:"15.9155",class:"s-product-card-content-pie-svg-base"}),r("circle",{cx:"16",cy:"16",r:"15.9155",class:"s-product-card-content-pie-svg-bar"}))):"",r("div",{class:{"s-product-card-content-main":!0,"s-product-card-content-extra-padding":this.isSpecial}},r("h3",{class:"s-product-card-content-title"},r("a",{...i},this.getDisplayTitle())),this.productData?.subtitle&&!this.minimal?r("p",{class:"s-product-card-content-subtitle"},this.productData?.subtitle):""),!this.productData?.donation||this.minimal||this.fullImage?"":[r("salla-progress-bar",{donation:this.productData?.donation}),r("div",{class:"s-product-card-donation-input"},this.productData?.donation?.can_donate?[r("label",{htmlFor:"donation-amount"},this.donationAmount," ",r("span",null,"*")),r("input",{type:"text",onInput:t=>{salla.helpers.inputDigitsOnly(t.target),this.addBtn.donatingAmount=t.target.value},id:"donation-amount",name:"donating_amount",class:"s-form-control",placeholder:this.donationAmount})]:"")],r("div",{class:{"s-product-card-content-sub":!0,"s-product-card-content-extra-padding":this.isSpecial}},this.getProductPrice(),this.showOutOfStockBesidePrice&&this.productData?.is_out_of_stock?r("span",{class:"s-product-card-out-of-stock-label"},this.outOfStock):"",this.productData?.rating?.stars&&!this.minimal?r("div",{class:"s-product-card-rating"},r("span",{innerHTML:e}),r("span",null,this.productData.rating.stars)):""),this.isSpecial&&this.productData.discount_ends?r("salla-count-down",{date:this.formatDate(this.productData.discount_ends),"end-of-day":!0,boxed:!0,labeled:!0}):"",this.hideAddBtn||this.compact?"":r("div",{class:"s-product-card-content-footer"},r("salla-add-product-button",{fill:"outline",width:"wide",ref:t=>this.addBtn=t,"product-id":this.productData.id,"product-status":this.productData.status,"product-type":this.productData.type},this.renderAddToCartLabel()),this.horizontal||this.fullImage?r("salla-button",{shape:"icon",fill:"none",color:"light",loading:!1,ref:t=>this.wishlistBtn=t,"aria-label":"Add or remove to wishlist",class:"s-product-card-wishlist-btn animated",onClick:()=>this.handleWishlistClick(),"data-id":"{{ product.id }}"},r("span",{class:"text-xl",innerHTML:o})):"")),!this.hideAddBtn&&this.compact?r("div",{class:"s-product-card-content-footer"},r("salla-add-product-button",{ref:t=>this.addBtn=t,"product-id":this.productData.id,"product-status":this.productData.status,"product-type":this.productData.type,class:"s-add-product-button-compact"},this.renderAddToCartLabel()),this.forceShowWishlistButton?r("salla-button",{shape:"icon",fill:"none",color:"light",loading:!1,ref:t=>this.wishlistBtn=t,"aria-label":"Add or remove to wishlist",class:"s-product-card-wishlist-btn animated",onClick:()=>this.handleWishlistClick()},r("span",{innerHTML:o})):""):"")}componentDidLoad(){document.lazyLoadInstance?.update(this.host.querySelectorAll(".lazy")),this.productData?.quantity&&this.isSpecial&&this.initCircleBar(),!salla.config.isGuest()&&salla.storage.get("salla::wishlist",[]).includes(this.productData?.id)&&this.toggleFavoriteIcon()}static get assetsDirs(){return["assets"]}get host(){return i(this)}};c.style='/*!twlt*/.s-product-card-image::before{font-family:"sallaicons";content:"\\ec1f" !important}.s-product-card-content-pie-svg circle{transition:stroke-dashoffset 1s linear;-webkit-transition:stroke-dashoffset 1s linear;-moz-transition:stroke-dashoffset 1s linear;-ms-transition:stroke-dashoffset 1s linear;-o-transition:stroke-dashoffset 1s linear;stroke:#E8EDF2;stroke-width:2px;stroke-linecap:round;fill:none}.s-product-card-content-pie-svg-bar{stroke:var(--color-primary) !important;stroke-dasharray:100 100;stroke-dashoffset:100}.text-xl{font-size:1.25rem;line-height:1.75rem}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.outline{outline-style:solid}.has-error .s-form-control,.has-error .s-tel-input-control,.has-error .s-datetime-picker-input{border-color:#ff443a;color:#ff443a}.s-form-control{display:block;width:100%;border-radius:var(--s-radius, 0.25rem);border-width:1px;--tw-border-opacity:1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:0.5rem;font-size:0.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.s-form-control:focus{border-color:var(--color-primary);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)}.s-product-card-entry{position:relative;display:flex;height:100%;justify-content:space-between;border-radius:var(--s-radius, 0.25rem);--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));transition-property:box-shadow;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms}.s-product-card-shadow:hover{box-shadow:5px 10px 30px #2b2d340d}.s-product-card-out-of-stock img.loaded{--tw-grayscale:grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.s-product-card-overlay{position:absolute;top:0px;bottom:0px;left:0px;right:0px;--tw-bg-opacity:1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1));opacity:0.5;transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:700ms}.s-product-card-overlay:hover{opacity:0.4}.s-product-card-vertical{flex-direction:column}.s-product-card-vertical .s-product-card-image{flex:1 1 0%;border-top-left-radius:var(--s-radius, 0.25rem);border-top-right-radius:var(--s-radius, 0.25rem)}.s-product-card-vertical .s-product-card-wishlist-btn{position:absolute;top:0.5rem;right:0.5rem;opacity:0.75}.s-product-card-vertical .s-product-card-wishlist-btn:hover{opacity:1}@media (min-width: 768px){.s-product-card-vertical .s-product-card-wishlist-btn{right:0.5rem}}.s-product-card-vertical .s-product-card-wishlist-btn:where([dir="rtl"],[dir="rtl"] *){left:0.5rem;right:unset}@media (min-width: 768px){.s-product-card-vertical .s-product-card-wishlist-btn:where([dir="rtl"],[dir="rtl"] *){left:0.5rem;right:unset}}.s-product-card-minimal .s-product-card-wishlist-btn{position:absolute;top:0px;right:0px;opacity:0.75}.s-product-card-minimal .s-product-card-wishlist-btn:hover{opacity:1}@media (min-width: 768px){.s-product-card-minimal .s-product-card-wishlist-btn{right:0px}}.s-product-card-minimal .s-product-card-wishlist-btn:where([dir="rtl"],[dir="rtl"] *){left:0px;right:unset}@media (min-width: 768px){.s-product-card-minimal .s-product-card-wishlist-btn:where([dir="rtl"],[dir="rtl"] *){left:0px;right:unset}}.s-product-card-minimal .s-product-card-image{width:8rem}@media (min-width: 640px){.s-product-card-minimal .s-product-card-image{width:14rem}}@media (min-width: 1024px){.s-product-card-minimal .s-product-card-image{width:7rem}}.s-product-card-minimal .s-product-card-content-title a{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.s-product-card-minimal .s-product-card-content{display:flex;flex:1 1 0%;flex-direction:column;overflow:hidden;padding:1.25rem}.s-product-card-minimal .s-product-card-wishlist-btn button{margin:0px;background-color:transparent}.s-product-card-minimal .s-product-card-wishlist-btn button svg,.s-product-card-full-image .s-product-card-wishlist-btn button svg{height:1rem;width:1rem;fill:#fff}.s-product-card-vertical .s-product-card-wishlist-btn button{margin:0px;--tw-bg-opacity:1 !important;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1)) !important}.s-product-card-wishlist-btn button:hover svg{fill:#4b5563}.s-product-card-fit-height .s-product-card-image{height:11rem;max-height:15rem}.s-product-card-quantity{position:absolute;bottom:0.25rem;left:50%;z-index:1;max-width:calc(100% - 60px);--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:var(--s-radius, 0.25rem);--tw-bg-opacity:1;background-color:rgb(248 113 113 / var(--tw-bg-opacity, 1));padding-left:0.625rem;padding-right:0.625rem;padding-top:0.375rem;padding-bottom:0.375rem;font-size:0.75rem;line-height:1rem;font-weight:700;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.s-product-card-quantity{padding-top:0.5rem;padding-bottom:0.5rem}}.s-product-card-promotion-title{position:absolute;top:1rem;left:0px;z-index:1;max-width:calc(100% - 60px);border-top-right-radius:var(--s-radius, 0.25rem);border-bottom-right-radius:var(--s-radius, 0.25rem);--tw-bg-opacity:1;background-color:rgb(248 113 113 / var(--tw-bg-opacity, 1));padding-left:0.625rem;padding-right:0.625rem;padding-top:0.375rem;padding-bottom:0.375rem;font-size:0.75rem;line-height:1rem;font-weight:700;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.s-product-card-promotion-title{padding-top:0.5rem;padding-bottom:0.5rem}}.s-product-card-promotion-title:where([dir="rtl"],[dir="rtl"] *){right:0px;left:unset;border-top-left-radius:var(--s-radius, 0.25rem);border-bottom-left-radius:var(--s-radius, 0.25rem);border-top-right-radius:0px;border-bottom-right-radius:0px}.s-product-card-out-badge{position:absolute;bottom:0.5rem;left:50%;z-index:1;max-width:calc(100% - 60px);--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:0.375rem;--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1));padding-left:0.625rem;padding-right:0.625rem;padding-top:0.375rem;padding-bottom:0.375rem;font-size:0.75rem;line-height:1rem;font-weight:700;--tw-text-opacity:1;color:rgb(153 153 153 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.s-product-card-out-badge{padding-top:0.5rem;padding-bottom:0.5rem}}.s-product-card-image{position:relative;height:100%;width:100%;flex-shrink:0;overflow:hidden;--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.s-product-card-image::before{position:absolute;top:50%;left:50%;display:inline-block;--tw-translate-x:-50%;--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));font-size:1.875rem;line-height:2.25rem;content:var(--tw-content);--tw-text-opacity:1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.s-product-card-image:hover{opacity:0.9}.s-product-card-image img{height:100%;width:100%;transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:500ms}.s-product-card-image img.lazy{opacity:0}.s-product-card-image img.loaded{position:relative;opacity:1}.s-product-card-content{position:relative;display:flex;flex-direction:column;padding:0.75rem}@media (min-width: 640px){.s-product-card-content{padding:1.25rem}}.s-product-card-content-title{margin-bottom:0.625rem;max-width:100%;line-height:1.5rem}.s-product-card-content-subtitle{margin-bottom:0.625rem;font-size:0.875rem;line-height:1.5rem;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.s-product-card-special .s-product-card-content-main,special .s-product-card-content-sub{padding-right:6rem}.s-product-card-special .s-product-card-content-main:where([dir="rtl"],[dir="rtl"] *),special .s-product-card-content-sub:where([dir="rtl"],[dir="rtl"] *){padding-left:6rem;padding-right:0px}.s-product-card-donation-input{flex:1 1 0%}.s-product-card-donation-input label{margin-bottom:0.625rem;display:block;font-size:0.875rem;line-height:1.25rem}.s-product-card-donation-input label span{--tw-text-opacity:1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.s-product-card-content-title a{display:block;text-align:start;font-size:0.875rem;line-height:1.25rem;font-weight:700;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.s-product-card-content-title a:hover{color:var(--color-primary)}.s-product-card-content-sub{margin-bottom:1.25rem;display:flex;width:100%;align-items:center;justify-content:space-between}.s-product-card-out-of-stock-label{font-size:0.75rem;line-height:1rem;font-weight:700;--tw-text-opacity:1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.s-product-card-rating{display:flex;align-items:center}.s-product-card-rating>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.25rem * var(--tw-space-x-reverse));margin-left:calc(0.25rem * calc(1 - var(--tw-space-x-reverse)))}.s-product-card-rating{font-size:0.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-product-card-rating:where([dir="rtl"],[dir="rtl"] *)>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.s-product-card-rating span svg{margin-bottom:3px;height:1rem;width:1rem;fill:#fbbf24}.s-product-card-content-footer{margin-top:auto;display:flex;align-items:center}.s-product-card-sale-price>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.25rem * var(--tw-space-x-reverse));margin-left:calc(0.25rem * calc(1 - var(--tw-space-x-reverse)))}.s-product-card-sale-price:where([dir="rtl"],[dir="rtl"] *)>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.s-product-card-sale-price span{font-size:0.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1));text-decoration-line:line-through}.s-product-card-starting-price{display:flex;width:100%;align-items:center;justify-content:space-between}.s-product-card-starting-price h4{display:inline-block;font-size:0.875rem;line-height:1.25rem;font-weight:700;--tw-text-opacity:1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.s-product-card-price-value{display:inline-block;font-size:0.875rem;line-height:1.25rem;font-weight:700;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.s-product-card-image-cover{object-fit:cover}.s-product-card-image-contain{object-fit:contain}.s-product-card-content-pie{position:absolute;top:0.625rem;right:1.25rem;display:flex;height:72px;width:72px;align-items:center;justify-content:center;color:var(--color-primary)}.s-product-card-content-pie:where([dir="rtl"],[dir="rtl"] *){left:1.25rem;right:unset}.s-product-card-content-pie span{position:absolute;top:43%;left:50%;display:flex;--tw-translate-y:-50%;--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));flex-direction:column;align-items:center;justify-content:center;text-align:center;font-size:0.75rem;line-height:1rem;line-height:1;--tw-text-opacity:1;color:rgb(124 128 130 / var(--tw-text-opacity, 1))}.s-product-card-content-pie span b{font-size:1.25rem;line-height:1.75rem;font-weight:700;color:var(--color-primary)}.s-product-card-content-extra-padding{padding-right:6rem}.s-product-card-content-extra-padding:where([dir="rtl"],[dir="rtl"] *){padding-left:6rem;padding-right:0px}.s-product-card-wishlist-added svg{fill:#ef4444}.s-product-card-horizontal .s-product-card-image{height:auto;width:8rem}@media (min-width: 640px){.s-product-card-horizontal .s-product-card-image{width:14rem}}.s-product-card-horizontal .s-product-card-image:where([dir="ltr"],[dir="ltr"] *){border-top-left-radius:var(--s-radius, 0.25rem);border-bottom-left-radius:var(--s-radius, 0.25rem)}.s-product-card-horizontal .s-product-card-image:where([dir="rtl"],[dir="rtl"] *){border-top-right-radius:var(--s-radius, 0.25rem);border-bottom-right-radius:var(--s-radius, 0.25rem)}.s-product-card-horizontal .s-product-card-quantity{max-width:unset}.s-product-card-horizontal .s-product-card-content-title a{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.s-product-card-horizontal .s-product-card-promotion-title{max-width:unset}.s-product-card-horizontal .s-product-card-out-badge{max-width:unset}.s-product-card-horizontal .s-product-card-content{margin-bottom:0.625rem;width:100%}.s-product-card-full-image{height:20rem;overflow:hidden}@media (min-width: 768px){.s-product-card-full-image{height:auto}}.s-product-card-full-image .s-product-card-content{position:absolute;bottom:0px;z-index:10;width:100%;padding-left:2.5rem;padding-right:2.5rem;padding-top:1.25rem;padding-bottom:1.75rem}.s-product-card-full-image img{position:relative;height:100%;width:100%;overflow:hidden;border-radius:var(--s-radius, 0.25rem)}.s-product-card-full-image img:hover{opacity:0.9}.s-product-card-full-image .s-product-card-image a{height:100%;width:100%}.s-product-card-full-image .s-product-card-content-title a{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-product-card-full-image .s-product-card-content-title a:hover{color:var(--color-primary)}.s-product-card-full-image .s-product-card-content-subtitle{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-product-card-full-image .s-product-card-price-value{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-product-card-full-image .s-product-card-sale-price{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-product-card-full-image .s-product-card-sale-price span{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-product-card-image-full{width:100%}.s-product-card-compact{display:flex;cursor:pointer;flex-direction:row;align-items:center;gap:0.75rem;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-top:0.75rem;padding-bottom:0.75rem;padding-left:0px;padding-right:0px;transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:200ms}.s-product-card-compact .s-product-card-content-footer{margin-top:0px;flex-shrink:0;gap:0.5rem}.s-product-card-add-to-cart-icon svg{height:1rem;width:1rem;fill:currentColor}.s-product-card-compact .s-add-product-button-compact salla-button .s-button-btn{height:2rem;border-radius:0.375rem;border-width:1px;border-color:var(--color-primary);background-color:transparent;padding-left:0.75rem;padding-right:0.75rem;font-size:0.75rem;line-height:1rem;font-weight:500;color:var(--color-primary);transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:200ms}.s-product-card-compact .s-add-product-button-compact salla-button .s-button-btn:hover{border-color:var(--color-primary);background-color:var(--color-primary);--tw-bg-opacity:0.1;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-product-card-compact .s-product-card-content{min-width:0px;flex:1 1 0%;padding:0px;text-align:right}.s-product-card-compact .s-product-card-content-main{margin-bottom:0.25rem}.s-product-card-compact .s-product-card-content-title{font-size:0.875rem;line-height:1.25rem;font-weight:500;line-height:1.25;--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.s-product-card-compact .s-product-card-content-title a{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-weight:500}.s-product-card-compact .s-product-card-content-subtitle{margin-top:0.25rem;display:none;font-size:0.75rem;line-height:1rem;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-product-card-compact .s-product-card-content-sub{display:flex;align-items:center;justify-content:flex-start;gap:0.5rem;font-size:0.75rem;line-height:1rem;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-product-card-compact .s-product-card-content-sub h4{margin:0px}.s-product-card-compact .s-product-card-starting-price h4{font-weight:700}.s-product-card-compact .s-product-card-starting-price{justify-content:flex-start;gap:0.25rem}.s-product-card-compact .s-product-card-image{height:5rem;width:5rem;flex-shrink:0;border-radius:0.375rem}.s-product-card-compact .s-product-card-image img{height:100%;width:100%;border-radius:0.375rem;object-fit:cover}.s-product-card-compact .s-product-card-promotion-title{display:none}.s-search-grid-item .s-product-card-out-badge{--tw-bg-opacity:1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1));--tw-text-opacity:1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}';export{c as salla_product_card}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{r as s,h as t,H as i}from"./p-C9zdeQFI.js";const r=class{constructor(t){s(this,t),this.placeholderImage=salla.url.cdn("images/s-empty.png")}getProductImage(){return this.productDetails?.image?"string"==typeof this.productDetails.image?this.productDetails.image:this.productDetails.image.url||this.placeholderImage||salla.url.cdn("images/s-empty.png"):this.placeholderImage}getProductImageAlt(){return this.productDetails?.image&&"string"!=typeof this.productDetails.image?this.productDetails.image.alt||this.productDetails?.name||"":this.productDetails?.name||""}getAccordionId(){return`accordion-${this.productDetails?.id||"default"}`}getAccordionKey(){return this.productDetails?.id||"default"}shouldBeCollapsible(){return void 0!==this.collapsible?this.collapsible:this.productDetails?.options?.length>0}renderOptions(){return this.productDetails?.options?.length?t("salla-accordion-body",null,t("div",{class:"s-order-details-options"},t("salla-order-details-options",{options:this.productDetails.options}))):null}render(){if(!this.productDetails)return null;const s=this.shouldBeCollapsible();return t(i,{class:"s-order-details-bundle-wrapper"},t("salla-accordion",{key:this.getAccordionKey(),collapsed:!1,bordered:!0,collapsible:s,id:this.getAccordionId(),size:"sm"},t("salla-accordion-head",null,t("div",{class:"s-order-details-product"},t("div",{class:"s-order-details-product-content"},t("div",{class:"s-order-details-product-info"},t("div",{class:"s-order-details-product-image"},t("img",{src:this.getProductImage(),alt:this.getProductImageAlt()})),t("div",{class:"s-order-details-product-details"},t("a",{href:this.productDetails?.url||"#",class:"s-order-details-product-name"},this.productDetails?.name||""),this.productDetails?.quantity&&t("span",{class:"s-order-details-product-quantity"},"×",this.productDetails.quantity)))))),this.renderOptions()))}};r.style="";export{r as salla_order_details_multiple_bundle_product}
4
+ import{r as s,h as t,H as i}from"./p-C9GauqTa.js";const r=class{constructor(t){s(this,t),this.placeholderImage=salla.url.cdn("images/s-empty.png")}getProductImage(){return this.productDetails?.image?"string"==typeof this.productDetails.image?this.productDetails.image:this.productDetails.image.url||this.placeholderImage||salla.url.cdn("images/s-empty.png"):this.placeholderImage}getProductImageAlt(){return this.productDetails?.image&&"string"!=typeof this.productDetails.image?this.productDetails.image.alt||this.productDetails?.name||"":this.productDetails?.name||""}getAccordionId(){return`accordion-${this.productDetails?.id||"default"}`}getAccordionKey(){return this.productDetails?.id||"default"}shouldBeCollapsible(){return void 0!==this.collapsible?this.collapsible:this.productDetails?.options?.length>0}renderOptions(){return this.productDetails?.options?.length?t("salla-accordion-body",null,t("div",{class:"s-order-details-options"},t("salla-order-details-options",{options:this.productDetails.options}))):null}render(){if(!this.productDetails)return null;const s=this.shouldBeCollapsible();return t(i,{class:"s-order-details-bundle-wrapper"},t("salla-accordion",{key:this.getAccordionKey(),collapsed:!1,bordered:!0,collapsible:s,id:this.getAccordionId(),size:"sm"},t("salla-accordion-head",null,t("div",{class:"s-order-details-product"},t("div",{class:"s-order-details-product-content"},t("div",{class:"s-order-details-product-info"},t("div",{class:"s-order-details-product-image"},t("img",{src:this.getProductImage(),alt:this.getProductImageAlt()})),t("div",{class:"s-order-details-product-details"},t("a",{href:this.productDetails?.url||"#",class:"s-order-details-product-name"},this.productDetails?.name||""),this.productDetails?.quantity&&t("span",{class:"s-order-details-product-quantity"},"×",this.productDetails.quantity)))))),this.renderOptions()))}};r.style="";export{r as salla_order_details_multiple_bundle_product}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{r as s,h as t,H as i,a as e}from"./p-C9zdeQFI.js";import{C as o}from"./p-BsLF_HK7.js";const a=class{constructor(t){s(this,t),this.isVisible=!0,this.step="consent",this.isMobile=!1,this.mobileBreakpoint=768,this.mobileQueryHandler=s=>this.isMobile=s.matches,this.openRequestedHandler=()=>this.open(),this.authLoggedInHandler=()=>this.syncConsentAfterLogin(),this.authLoggedOutHandler=()=>this.handleLogout(),this.necessaryCookieKey="necessary_cookies",this.performanceCookieKey="performance_cookies",this.functionalCookieKey="functional_cookies",this.advertisingCookieKey="advertising_cookies",this.consentCookieDays=365,this.consentStorageKey="cookies-consent",this.sessionConsentPointsKey="cookies-consent-points",this.consentByUserKey="cookies-consent-by-user",this.trackingCookiesByCategory={performance_cookies:["_ga","_ga_*","_gid","_gat","_gat_gtag_*","_hjSessionUser_*","_hjSession_*","_hjIncludedInSessionSample_*","_hjAbsoluteSessionInProgress","_hjFirstSeen","_clck","_clsk","MUID","MR","ANONCHK","_ym_uid","_ym_d","_ym_isad"],advertising_cookies:["_gcl_au","_gcl_aw","_gcl_dc","IDE","test_cookie","1P_JAR","NID","_fbp","_fbc","fr","_ttp","_scid","sc_at","personalization_id","guest_id","muc_ads","_pin_unauth","_pinterest_ct_ua","li_sugr","bcookie","lidc","UserMatchHistory","AnalyticsSyncHistory"],functional_cookies:["intercom-id-*","intercom-session-*","__zlcmid","crisp-client%2Fsession%2F*","YSC","VISITOR_INFO1_LIVE","PREF"]},this.performanceEnabled=!1,this.functionsEnabled=!1,this.adsEnabled=!1}storeKey(s){return`${s}_${Salla.config.get("store.id")}`}async componentWillLoad(){await Salla.onReady(),await Salla.lang.onLoaded(),this.loadTranslations(),Salla.event.on("salla-cookies-bar::open",this.openRequestedHandler),Salla.event.on("auth::logged.in",this.authLoggedInHandler),Salla.event.on("auth::logged.out",this.authLoggedOutHandler),this.unregisterAfterFetchMenuItemsHook=Salla.hooks.registerHook("salla-menu","afterFetchMenuItems",(s=>this.appendCookiesSettingsLink(s))),this.hydrateToggleState(),this.currentConsentPoints()&&(this.isVisible=!1),this.enforceCurrentConsent()}isArabicLocale(){return(Salla.lang.getLocale?.()??document.documentElement.lang??"ar").toLowerCase().startsWith("ar")}translate(s,t,i){const e=Salla.lang.get(s);return e&&e!==s?e:this.isArabicLocale()?t:i}loadTranslations(){this.titleLabel=this.translate("common.cookies.settings_title","تخصيص إعدادات ملفات تعريف الارتباط","Customize Cookie Preferences Settings"),this.saveLabel=this.translate("common.cookies.save","حفظ الخيارات","Save Options"),this.messageLabel=Salla.lang.get("common.cookies.message"),this.linkLabel=Salla.lang.get("common.cookies.link"),this.acceptLabel=this.translate("common.cookies.accept","قبول","Accept"),this.acceptAllLabel=this.translate("common.cookies.accept_all","قبول الكل","Accept All"),this.customizeLabel=this.translate("common.cookies.customize","تخصيص","Customize"),this.essentialTitleLabel=this.translate("common.cookies.categories.essential.title","ملفات تعريف الارتباط الضرورية","Essential Cookies"),this.essentialDescriptionLabel=this.translate("common.cookies.categories.essential.description","ضروريه لتشغيل الوظائف الأساسية للموقع الإلكتروني.","Required for the website's basic functions."),this.essentialBadgeLabel=this.translate("common.cookies.categories.essential.badge","إجباري","Required"),this.performanceTitleLabel=this.translate("common.cookies.categories.performance.title","ملفات تعريف الارتباط الخاصة بالأداء","Performance Cookies"),this.performanceDescriptionLabel=this.translate("common.cookies.categories.performance.description","تساعدنا في تحليل كيفية استخدامك للموقع وتحسين أدائه.","Help us analyze site usage and improve performance."),this.functionsTitleLabel=this.translate("common.cookies.categories.functions.title","ملفات تعريف الارتباط الوظيفية","Functional Cookies"),this.functionsDescriptionLabel=this.translate("common.cookies.categories.functions.description","تُتيح لك تجربة مخصصة وتفعيل ميزات متقدمة داخل الموقع.","Enable enhanced functionality and personalization."),this.adsTitleLabel=this.translate("common.cookies.categories.ads.title","ملفات تعريف الارتباط الإعلانية","Advertising Cookies"),this.adsDescriptionLabel=this.translate("common.cookies.categories.ads.description","تُستخدم لعرض محتوى تسويقي مخصص يناسب اهتماماتك.","Allow personalized content.")}componentDidLoad(){this.mobileQuery=window.matchMedia(`(max-width: ${this.mobileBreakpoint-1}px)`),this.isMobile=this.mobileQuery.matches,this.mobileQuery.addEventListener("change",this.mobileQueryHandler)}disconnectedCallback(){this.mobileQuery?.removeEventListener("change",this.mobileQueryHandler),Salla.event.off("salla-cookies-bar::open",this.openRequestedHandler),Salla.event.off("auth::logged.in",this.authLoggedInHandler),Salla.event.off("auth::logged.out",this.authLoggedOutHandler),this.unregisterAfterFetchMenuItemsHook?.(),this.unregisterAfterFetchMenuItemsHook=void 0}allCategoryKeys(){return[this.necessaryCookieKey,this.performanceCookieKey,this.functionalCookieKey,this.advertisingCookieKey]}writeLocalConsentCookies(s){for(const t of this.allCategoryKeys())Salla.cookie.set(t,String(t===this.necessaryCookieKey||s.includes(t)),this.consentCookieDays)}applyConsent(s){this.writeLocalConsentCookies(s),this.clearSessionConsent(),Salla.storage.set(this.storeKey(this.consentByUserKey),!Salla.config.isGuest()),this.sweepDisabledCategoryCookies(s),Salla.config.isGuest()||Salla.api.request("account/data-privacy",{points:s},"post").catch((()=>{}))}currentConsentPoints(){return this.persistentConsentPoints()??this.sessionConsentPoints()}persistentConsentPoints(){return Salla.storage.get(this.consentStorageKey)?this.allCategoryKeys().filter((s=>s===this.necessaryCookieKey||"true"===Salla.cookie.get(s))):null}sessionConsentPoints(){if(!Salla.config.isGuest())return null;if(!Salla.storage.session?.get(this.storeKey(this.consentStorageKey)))return null;const s=Salla.storage.session.get(this.storeKey(this.sessionConsentPointsKey)),t=Array.isArray(s)?s:[];return this.allCategoryKeys().filter((s=>s===this.necessaryCookieKey||t.includes(s)))}clearSessionConsent(){Salla.storage.session?.remove(this.storeKey(this.consentStorageKey)),Salla.storage.session?.remove(this.storeKey(this.sessionConsentPointsKey))}enforceCurrentConsent(){const s=this.currentConsentPoints();s&&this.sweepDisabledCategoryCookies(s)}hydrateToggleState(){const s=this.currentConsentPoints();s&&(this.performanceEnabled=s.includes(this.performanceCookieKey),this.functionsEnabled=s.includes(this.functionalCookieKey),this.adsEnabled=s.includes(this.advertisingCookieKey))}handleLogout(){if(Salla.config.isGuest()&&!Salla.storage.get(this.storeKey(this.consentByUserKey)))return;const s=Salla.storage.get(this.consentStorageKey),t=this.persistentConsentPoints();s&&t&&(Salla.storage.session?.set(this.storeKey(this.consentStorageKey),s),Salla.storage.session?.set(this.storeKey(this.sessionConsentPointsKey),t));for(const s of this.allCategoryKeys())Salla.cookie.remove(s);Salla.storage.remove(this.consentStorageKey),Salla.storage.remove(this.storeKey(this.consentByUserKey))}syncConsentAfterLogin(){if(Salla.config.isGuest())return;this.clearSessionConsent();const s=this.persistentConsentPoints();if(!s)return this.step="consent",void(this.isVisible=!0);if(Salla.storage.get(this.storeKey(this.consentByUserKey)))return;const t=Salla.config.get("user.id");Salla.api.request("account/data-privacy",{points:s},"post").then((()=>{const i=this.persistentConsentPoints();!Salla.config.isGuest()&&Salla.config.get("user.id")===t&&i?.length===s.length&&s.every((s=>i.includes(s)))&&Salla.storage.set(this.storeKey(this.consentByUserKey),!0)})).catch((()=>{}))}cookieNameMatchesPattern(s,t){return t.endsWith("*")?s.startsWith(t.slice(0,-1)):s===t}sweepDisabledCategoryCookies(s){const t=Object.keys(this.trackingCookiesByCategory).filter((t=>!s.includes(t)));if(!t.length)return;const i=t.flatMap((s=>this.trackingCookiesByCategory[s]));document.cookie.split(";").map((s=>s.split("=")[0].trim())).filter((s=>i.some((t=>this.cookieNameMatchesPattern(s,t))))).forEach((s=>Salla.cookie.remove(s)))}dismiss(s){this.isVisible=!1;try{Salla.event.emit(`salla-cookies-bar::${s}`)}finally{Salla.storage.set(this.consentStorageKey,s)}}savePreferences(){const s=[this.necessaryCookieKey];this.performanceEnabled&&s.push(this.performanceCookieKey),this.functionsEnabled&&s.push(this.functionalCookieKey),this.adsEnabled&&s.push(this.advertisingCookieKey),this.applyConsent(s),this.dismiss("accepted")}async accept(){return this.applyConsent(this.allCategoryKeys()),this.dismiss("accepted"),this.host}async reject(){return this.applyConsent([this.necessaryCookieKey]),this.dismiss("rejected"),this.host}async open(){return this.hydrateToggleState(),this.step="consent",this.isVisible=!0,this.host}openPreferences(){this.hydrateToggleState(),this.step="preferences"}isRtl(){return Salla.config.get("theme.is_rtl",!0)}appendCookiesSettingsLink(s){const t=Salla.config.get("store.features")?.includes("website-cookies");if(!t||!s?.withCookiePreferences||"footer"!==s?.source)return;const i="#cookies-settings",e=s?.menus.some((s=>s?.url===i));e||(s.menus=[...s.menus,{id:"cookies-settings",order:null,title:Salla.lang.get("common.cookies.settings"),url:i,target:"_self",is_by_form_builder:!1,children:[],image:null,callback:()=>Salla.event.emit("salla-cookies-bar::open")}])}renderToggle(s,i,e,o){return t("label",{class:{"s-toggle":!0,"s-toggle--disabled":i}},t("input",{class:"s-toggle-input",type:"checkbox",checked:s,disabled:i,"aria-label":e,onChange:()=>o?.()}),t("div",{class:"s-toggle-switcher"}))}renderCategory(s,i,e,o){return t("div",{class:"s-cookies-bar-category"},t("div",{class:"s-cookies-bar-category-content"},t("div",{class:"s-cookies-bar-category-title-row"},t("span",{class:"s-cookies-bar-category-title"},s),o&&t("span",{class:"s-cookies-bar-badge"},o)),t("p",{class:"s-cookies-bar-category-description m-0"},i)),e)}renderMessage(){return t("p",{class:"s-cookies-bar-message m-0"},this.messageLabel,Salla.config.get("policy_url")&&t("a",{href:Salla.config.get("policy_url"),target:"_blank",class:"s-cookies-bar-link text-primary ms-1"}," ",this.linkLabel))}renderConsentStep(){return t("div",{class:"s-cookies-bar-consent"},this.renderMessage(),t("div",{class:"s-cookies-bar-consent-actions"},t("salla-button",{class:"s-cookies-bar-btn--customize",color:"primary",fill:"outline",type:"button",size:this.isMobile?"small":"medium",onClick:()=>this.openPreferences()},this.customizeLabel),t("salla-button",{class:"s-cookies-bar-btn--accept",color:"primary",fill:"solid",type:"button",size:this.isMobile?"small":"medium",onClick:()=>this.accept()},this.acceptAllLabel)))}renderPreferencesStep(){return t("div",null,t("div",{class:"s-cookies-bar-header"},t("h3",{class:"s-cookies-bar-title m-0"},this.titleLabel),t("button",{type:"button",class:"s-cookies-bar-close","aria-label":this.titleLabel,onClick:()=>this.reject()},t("span",{innerHTML:o}))),t("div",{class:"s-cookies-bar-categories"},this.renderCategory(this.essentialTitleLabel,this.essentialDescriptionLabel,this.renderToggle(!0,!0,this.essentialTitleLabel),this.essentialBadgeLabel),this.renderCategory(this.performanceTitleLabel,this.performanceDescriptionLabel,this.renderToggle(this.performanceEnabled,!1,this.performanceTitleLabel,(()=>this.performanceEnabled=!this.performanceEnabled))),this.renderCategory(this.functionsTitleLabel,this.functionsDescriptionLabel,this.renderToggle(this.functionsEnabled,!1,this.functionsTitleLabel,(()=>this.functionsEnabled=!this.functionsEnabled))),this.renderCategory(this.adsTitleLabel,this.adsDescriptionLabel,this.renderToggle(this.adsEnabled,!1,this.adsTitleLabel,(()=>this.adsEnabled=!this.adsEnabled)))),t("div",{class:"s-cookies-bar-footer"},this.renderMessage(),t("salla-button",{class:"s-cookies-bar-btn--save",color:"primary",fill:"solid",type:"button",size:this.isMobile?"small":"medium",onClick:()=>this.savePreferences()},this.saveLabel)))}render(){return this.isVisible?t(i,null,t("div",{dir:this.isRtl()?"rtl":"ltr",class:"s-cookies-bar"},"consent"===this.step?this.renderConsentStep():this.renderPreferencesStep())):t(i,null)}get host(){return e(this)}};a.style='/*!twlt*/:host{display:block;overflow:visible}.s-cookies-bar{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);z-index:100;background-color:#fff;border-radius:1rem;padding:1.25rem;width:calc(100% - 2rem);max-width:48rem;box-shadow:0 10px 30px -5px rgba(0, 0, 0, 0.2)}.s-cookies-bar-consent{display:flex;flex-direction:row;align-items:center;gap:1rem;flex-wrap:wrap}@media (max-width: 640px){.s-cookies-bar-consent{flex-direction:column;align-items:end}}.s-cookies-bar-consent-actions{display:flex;align-items:center;gap:0.75rem;flex-shrink:0}.s-cookies-bar-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.s-cookies-bar-title{font-size:1rem;font-weight:bold;color:#1f2937}.s-cookies-bar-close{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0}.s-cookies-bar-close svg{width:1.125rem;height:1.125rem;fill:currentColor}.s-cookies-bar-close:hover{color:#4b5563}.s-cookies-bar-categories{display:flex;flex-direction:column;gap:1rem}.s-cookies-bar-category{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.s-cookies-bar-category .s-toggle{flex-shrink:0}.s-cookies-bar-category .s-toggle--disabled{cursor:not-allowed}.s-cookies-bar-category-title-row{display:flex;align-items:center;gap:0.5rem}.s-cookies-bar-category-title{font-size:0.875rem;font-weight:500;color:#1f2937}.s-cookies-bar-category-description{font-size:0.75rem;color:#9ca3af;margin-top:0.25rem}.s-cookies-bar-badge{display:inline-flex;align-items:center;padding:0.0625rem 0.5rem;border-radius:9999px;background-color:#f3f4f6;color:#6b7280;font-size:0.6875rem;font-weight:500;white-space:nowrap}.s-cookies-bar-footer{display:flex;align-items:center;gap:0.75rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid #e5e7eb}.s-cookies-bar-message{flex:1;font-size:0.75rem;line-height:1.625;font-weight:700}.s-cookies-bar-btn--save{flex-shrink:0}.visible{visibility:visible}.invisible{visibility:hidden}.m-0{margin:0px}.ms-1{margin-inline-start:0.25rem}.hidden{display:none}.resize{resize:both}.text-primary{color:var(--color-primary)}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.toggle-checkbox .s-toggle-input{position:absolute;visibility:hidden}.toggle-checkbox .s-toggle-switcher{display:inline-block;background:#ccc;border-radius:16px;width:40px;height:25px;position:relative;vertical-align:middle;transition:background 0.25s}.toggle-checkbox .s-toggle-switcher:before,.toggle-checkbox .s-toggle-switcher:after{content:""}.toggle-checkbox .s-toggle-switcher:before{display:block;background:#fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,0.25);width:20px;height:21px;position:absolute;top:2.2px;left:1px;transition:left 0.25s}.toggle-checkbox .s-toggle-input:checked+div{background:#30D158}.toggle-checkbox .s-toggle-input:checked+div:before{left:18px}.s-toggle{cursor:pointer;display:inline-block}.s-toggle .s-toggle-input{position:absolute;visibility:hidden}.s-toggle .s-toggle-label{margin-left:5px;position:relative;top:2px}.s-toggle .s-toggle-switcher{display:inline-block;background:#ccc;border-radius:16px;width:40px;height:25px;position:relative;vertical-align:middle;transition:background 0.25s}.s-toggle .s-toggle-switcher:before,.s-toggle .s-toggle-switcher:after{content:""}.s-toggle .s-toggle-switcher:before{display:block;background:#fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,0.25);width:20px;height:21px;position:absolute;top:2.2px;left:1px;transition:left 0.25s}.s-toggle .s-toggle-input:checked+div{background:#30D158}.s-toggle .s-toggle-input:checked+div:before{left:18px}';export{a as salla_cookies_bar}
4
+ import{r as s,h as t,H as i,a as e}from"./p-C9GauqTa.js";import{C as o}from"./p-BsLF_HK7.js";const a=class{constructor(t){s(this,t),this.isVisible=!0,this.step="consent",this.isMobile=!1,this.mobileBreakpoint=768,this.mobileQueryHandler=s=>this.isMobile=s.matches,this.openRequestedHandler=()=>this.open(),this.authLoggedInHandler=()=>this.syncConsentAfterLogin(),this.authLoggedOutHandler=()=>this.handleLogout(),this.necessaryCookieKey="necessary_cookies",this.performanceCookieKey="performance_cookies",this.functionalCookieKey="functional_cookies",this.advertisingCookieKey="advertising_cookies",this.consentCookieDays=365,this.consentStorageKey="cookies-consent",this.sessionConsentPointsKey="cookies-consent-points",this.consentByUserKey="cookies-consent-by-user",this.trackingCookiesByCategory={performance_cookies:["_ga","_ga_*","_gid","_gat","_gat_gtag_*","_hjSessionUser_*","_hjSession_*","_hjIncludedInSessionSample_*","_hjAbsoluteSessionInProgress","_hjFirstSeen","_clck","_clsk","MUID","MR","ANONCHK","_ym_uid","_ym_d","_ym_isad"],advertising_cookies:["_gcl_au","_gcl_aw","_gcl_dc","IDE","test_cookie","1P_JAR","NID","_fbp","_fbc","fr","_ttp","_scid","sc_at","personalization_id","guest_id","muc_ads","_pin_unauth","_pinterest_ct_ua","li_sugr","bcookie","lidc","UserMatchHistory","AnalyticsSyncHistory"],functional_cookies:["intercom-id-*","intercom-session-*","__zlcmid","crisp-client%2Fsession%2F*","YSC","VISITOR_INFO1_LIVE","PREF"]},this.performanceEnabled=!1,this.functionsEnabled=!1,this.adsEnabled=!1}storeKey(s){return`${s}_${Salla.config.get("store.id")}`}async componentWillLoad(){await Salla.onReady(),await Salla.lang.onLoaded(),this.loadTranslations(),Salla.event.on("salla-cookies-bar::open",this.openRequestedHandler),Salla.event.on("auth::logged.in",this.authLoggedInHandler),Salla.event.on("auth::logged.out",this.authLoggedOutHandler),this.unregisterAfterFetchMenuItemsHook=Salla.hooks.registerHook("salla-menu","afterFetchMenuItems",(s=>this.appendCookiesSettingsLink(s))),this.hydrateToggleState(),this.currentConsentPoints()&&(this.isVisible=!1),this.enforceCurrentConsent()}isArabicLocale(){return(Salla.lang.getLocale?.()??document.documentElement.lang??"ar").toLowerCase().startsWith("ar")}translate(s,t,i){const e=Salla.lang.get(s);return e&&e!==s?e:this.isArabicLocale()?t:i}loadTranslations(){this.titleLabel=this.translate("common.cookies.settings_title","تخصيص إعدادات ملفات تعريف الارتباط","Customize Cookie Preferences Settings"),this.saveLabel=this.translate("common.cookies.save","حفظ الخيارات","Save Options"),this.messageLabel=Salla.lang.get("common.cookies.message"),this.linkLabel=Salla.lang.get("common.cookies.link"),this.acceptLabel=this.translate("common.cookies.accept","قبول","Accept"),this.acceptAllLabel=this.translate("common.cookies.accept_all","قبول الكل","Accept All"),this.customizeLabel=this.translate("common.cookies.customize","تخصيص","Customize"),this.essentialTitleLabel=this.translate("common.cookies.categories.essential.title","ملفات تعريف الارتباط الضرورية","Essential Cookies"),this.essentialDescriptionLabel=this.translate("common.cookies.categories.essential.description","ضروريه لتشغيل الوظائف الأساسية للموقع الإلكتروني.","Required for the website's basic functions."),this.essentialBadgeLabel=this.translate("common.cookies.categories.essential.badge","إجباري","Required"),this.performanceTitleLabel=this.translate("common.cookies.categories.performance.title","ملفات تعريف الارتباط الخاصة بالأداء","Performance Cookies"),this.performanceDescriptionLabel=this.translate("common.cookies.categories.performance.description","تساعدنا في تحليل كيفية استخدامك للموقع وتحسين أدائه.","Help us analyze site usage and improve performance."),this.functionsTitleLabel=this.translate("common.cookies.categories.functions.title","ملفات تعريف الارتباط الوظيفية","Functional Cookies"),this.functionsDescriptionLabel=this.translate("common.cookies.categories.functions.description","تُتيح لك تجربة مخصصة وتفعيل ميزات متقدمة داخل الموقع.","Enable enhanced functionality and personalization."),this.adsTitleLabel=this.translate("common.cookies.categories.ads.title","ملفات تعريف الارتباط الإعلانية","Advertising Cookies"),this.adsDescriptionLabel=this.translate("common.cookies.categories.ads.description","تُستخدم لعرض محتوى تسويقي مخصص يناسب اهتماماتك.","Allow personalized content.")}componentDidLoad(){this.mobileQuery=window.matchMedia(`(max-width: ${this.mobileBreakpoint-1}px)`),this.isMobile=this.mobileQuery.matches,this.mobileQuery.addEventListener("change",this.mobileQueryHandler)}disconnectedCallback(){this.mobileQuery?.removeEventListener("change",this.mobileQueryHandler),Salla.event.off("salla-cookies-bar::open",this.openRequestedHandler),Salla.event.off("auth::logged.in",this.authLoggedInHandler),Salla.event.off("auth::logged.out",this.authLoggedOutHandler),this.unregisterAfterFetchMenuItemsHook?.(),this.unregisterAfterFetchMenuItemsHook=void 0}allCategoryKeys(){return[this.necessaryCookieKey,this.performanceCookieKey,this.functionalCookieKey,this.advertisingCookieKey]}writeLocalConsentCookies(s){for(const t of this.allCategoryKeys())Salla.cookie.set(t,String(t===this.necessaryCookieKey||s.includes(t)),this.consentCookieDays)}applyConsent(s){this.writeLocalConsentCookies(s),this.clearSessionConsent(),Salla.storage.set(this.storeKey(this.consentByUserKey),!Salla.config.isGuest()),this.sweepDisabledCategoryCookies(s),Salla.config.isGuest()||Salla.api.request("account/data-privacy",{points:s},"post").catch((()=>{}))}currentConsentPoints(){return this.persistentConsentPoints()??this.sessionConsentPoints()}persistentConsentPoints(){return Salla.storage.get(this.consentStorageKey)?this.allCategoryKeys().filter((s=>s===this.necessaryCookieKey||"true"===Salla.cookie.get(s))):null}sessionConsentPoints(){if(!Salla.config.isGuest())return null;if(!Salla.storage.session?.get(this.storeKey(this.consentStorageKey)))return null;const s=Salla.storage.session.get(this.storeKey(this.sessionConsentPointsKey)),t=Array.isArray(s)?s:[];return this.allCategoryKeys().filter((s=>s===this.necessaryCookieKey||t.includes(s)))}clearSessionConsent(){Salla.storage.session?.remove(this.storeKey(this.consentStorageKey)),Salla.storage.session?.remove(this.storeKey(this.sessionConsentPointsKey))}enforceCurrentConsent(){const s=this.currentConsentPoints();s&&this.sweepDisabledCategoryCookies(s)}hydrateToggleState(){const s=this.currentConsentPoints();s&&(this.performanceEnabled=s.includes(this.performanceCookieKey),this.functionsEnabled=s.includes(this.functionalCookieKey),this.adsEnabled=s.includes(this.advertisingCookieKey))}handleLogout(){if(Salla.config.isGuest()&&!Salla.storage.get(this.storeKey(this.consentByUserKey)))return;const s=Salla.storage.get(this.consentStorageKey),t=this.persistentConsentPoints();s&&t&&(Salla.storage.session?.set(this.storeKey(this.consentStorageKey),s),Salla.storage.session?.set(this.storeKey(this.sessionConsentPointsKey),t));for(const s of this.allCategoryKeys())Salla.cookie.remove(s);Salla.storage.remove(this.consentStorageKey),Salla.storage.remove(this.storeKey(this.consentByUserKey))}syncConsentAfterLogin(){if(Salla.config.isGuest())return;this.clearSessionConsent();const s=this.persistentConsentPoints();if(!s)return this.step="consent",void(this.isVisible=!0);if(Salla.storage.get(this.storeKey(this.consentByUserKey)))return;const t=Salla.config.get("user.id");Salla.api.request("account/data-privacy",{points:s},"post").then((()=>{const i=this.persistentConsentPoints();!Salla.config.isGuest()&&Salla.config.get("user.id")===t&&i?.length===s.length&&s.every((s=>i.includes(s)))&&Salla.storage.set(this.storeKey(this.consentByUserKey),!0)})).catch((()=>{}))}cookieNameMatchesPattern(s,t){return t.endsWith("*")?s.startsWith(t.slice(0,-1)):s===t}sweepDisabledCategoryCookies(s){const t=Object.keys(this.trackingCookiesByCategory).filter((t=>!s.includes(t)));if(!t.length)return;const i=t.flatMap((s=>this.trackingCookiesByCategory[s]));document.cookie.split(";").map((s=>s.split("=")[0].trim())).filter((s=>i.some((t=>this.cookieNameMatchesPattern(s,t))))).forEach((s=>Salla.cookie.remove(s)))}dismiss(s){this.isVisible=!1;try{Salla.event.emit(`salla-cookies-bar::${s}`)}finally{Salla.storage.set(this.consentStorageKey,s)}}savePreferences(){const s=[this.necessaryCookieKey];this.performanceEnabled&&s.push(this.performanceCookieKey),this.functionsEnabled&&s.push(this.functionalCookieKey),this.adsEnabled&&s.push(this.advertisingCookieKey),this.applyConsent(s),this.dismiss("accepted")}async accept(){return this.applyConsent(this.allCategoryKeys()),this.dismiss("accepted"),this.host}async reject(){return this.applyConsent([this.necessaryCookieKey]),this.dismiss("rejected"),this.host}async open(){return this.hydrateToggleState(),this.step="consent",this.isVisible=!0,this.host}openPreferences(){this.hydrateToggleState(),this.step="preferences"}isRtl(){return Salla.config.get("theme.is_rtl",!0)}appendCookiesSettingsLink(s){const t=Salla.config.get("store.features")?.includes("website-cookies");if(!t||!s?.withCookiePreferences||"footer"!==s?.source)return;const i="#cookies-settings",e=s?.menus.some((s=>s?.url===i));e||(s.menus=[...s.menus,{id:"cookies-settings",order:null,title:Salla.lang.get("common.cookies.settings"),url:i,target:"_self",is_by_form_builder:!1,children:[],image:null,callback:()=>Salla.event.emit("salla-cookies-bar::open")}])}renderToggle(s,i,e,o){return t("label",{class:{"s-toggle":!0,"s-toggle--disabled":i}},t("input",{class:"s-toggle-input",type:"checkbox",checked:s,disabled:i,"aria-label":e,onChange:()=>o?.()}),t("div",{class:"s-toggle-switcher"}))}renderCategory(s,i,e,o){return t("div",{class:"s-cookies-bar-category"},t("div",{class:"s-cookies-bar-category-content"},t("div",{class:"s-cookies-bar-category-title-row"},t("span",{class:"s-cookies-bar-category-title"},s),o&&t("span",{class:"s-cookies-bar-badge"},o)),t("p",{class:"s-cookies-bar-category-description m-0"},i)),e)}renderMessage(){return t("p",{class:"s-cookies-bar-message m-0"},this.messageLabel,Salla.config.get("policy_url")&&t("a",{href:Salla.config.get("policy_url"),target:"_blank",class:"s-cookies-bar-link text-primary ms-1"}," ",this.linkLabel))}renderConsentStep(){return t("div",{class:"s-cookies-bar-consent"},this.renderMessage(),t("div",{class:"s-cookies-bar-consent-actions"},t("salla-button",{class:"s-cookies-bar-btn--customize",color:"primary",fill:"outline",type:"button",size:this.isMobile?"small":"medium",onClick:()=>this.openPreferences()},this.customizeLabel),t("salla-button",{class:"s-cookies-bar-btn--accept",color:"primary",fill:"solid",type:"button",size:this.isMobile?"small":"medium",onClick:()=>this.accept()},this.acceptAllLabel)))}renderPreferencesStep(){return t("div",null,t("div",{class:"s-cookies-bar-header"},t("h3",{class:"s-cookies-bar-title m-0"},this.titleLabel),t("button",{type:"button",class:"s-cookies-bar-close","aria-label":this.titleLabel,onClick:()=>this.reject()},t("span",{innerHTML:o}))),t("div",{class:"s-cookies-bar-categories"},this.renderCategory(this.essentialTitleLabel,this.essentialDescriptionLabel,this.renderToggle(!0,!0,this.essentialTitleLabel),this.essentialBadgeLabel),this.renderCategory(this.performanceTitleLabel,this.performanceDescriptionLabel,this.renderToggle(this.performanceEnabled,!1,this.performanceTitleLabel,(()=>this.performanceEnabled=!this.performanceEnabled))),this.renderCategory(this.functionsTitleLabel,this.functionsDescriptionLabel,this.renderToggle(this.functionsEnabled,!1,this.functionsTitleLabel,(()=>this.functionsEnabled=!this.functionsEnabled))),this.renderCategory(this.adsTitleLabel,this.adsDescriptionLabel,this.renderToggle(this.adsEnabled,!1,this.adsTitleLabel,(()=>this.adsEnabled=!this.adsEnabled)))),t("div",{class:"s-cookies-bar-footer"},this.renderMessage(),t("salla-button",{class:"s-cookies-bar-btn--save",color:"primary",fill:"solid",type:"button",size:this.isMobile?"small":"medium",onClick:()=>this.savePreferences()},this.saveLabel)))}render(){return this.isVisible?t(i,null,t("div",{dir:this.isRtl()?"rtl":"ltr",class:"s-cookies-bar"},"consent"===this.step?this.renderConsentStep():this.renderPreferencesStep())):t(i,null)}get host(){return e(this)}};a.style='/*!twlt*/:host{display:block;overflow:visible}.s-cookies-bar{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);z-index:100;background-color:#fff;border-radius:1rem;padding:1.25rem;width:calc(100% - 2rem);max-width:48rem;box-shadow:0 10px 30px -5px rgba(0, 0, 0, 0.2)}.s-cookies-bar-consent{display:flex;flex-direction:row;align-items:center;gap:1rem;flex-wrap:wrap}@media (max-width: 640px){.s-cookies-bar-consent{flex-direction:column;align-items:end}}.s-cookies-bar-consent-actions{display:flex;align-items:center;gap:0.75rem;flex-shrink:0}.s-cookies-bar-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.s-cookies-bar-title{font-size:1rem;font-weight:bold;color:#1f2937}.s-cookies-bar-close{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0}.s-cookies-bar-close svg{width:1.125rem;height:1.125rem;fill:currentColor}.s-cookies-bar-close:hover{color:#4b5563}.s-cookies-bar-categories{display:flex;flex-direction:column;gap:1rem}.s-cookies-bar-category{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.s-cookies-bar-category .s-toggle{flex-shrink:0}.s-cookies-bar-category .s-toggle--disabled{cursor:not-allowed}.s-cookies-bar-category-title-row{display:flex;align-items:center;gap:0.5rem}.s-cookies-bar-category-title{font-size:0.875rem;font-weight:500;color:#1f2937}.s-cookies-bar-category-description{font-size:0.75rem;color:#9ca3af;margin-top:0.25rem}.s-cookies-bar-badge{display:inline-flex;align-items:center;padding:0.0625rem 0.5rem;border-radius:9999px;background-color:#f3f4f6;color:#6b7280;font-size:0.6875rem;font-weight:500;white-space:nowrap}.s-cookies-bar-footer{display:flex;align-items:center;gap:0.75rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid #e5e7eb}.s-cookies-bar-message{flex:1;font-size:0.75rem;line-height:1.625;font-weight:700}.s-cookies-bar-btn--save{flex-shrink:0}.visible{visibility:visible}.invisible{visibility:hidden}.m-0{margin:0px}.ms-1{margin-inline-start:0.25rem}.hidden{display:none}.resize{resize:both}.text-primary{color:var(--color-primary)}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.toggle-checkbox .s-toggle-input{position:absolute;visibility:hidden}.toggle-checkbox .s-toggle-switcher{display:inline-block;background:#ccc;border-radius:16px;width:40px;height:25px;position:relative;vertical-align:middle;transition:background 0.25s}.toggle-checkbox .s-toggle-switcher:before,.toggle-checkbox .s-toggle-switcher:after{content:""}.toggle-checkbox .s-toggle-switcher:before{display:block;background:#fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,0.25);width:20px;height:21px;position:absolute;top:2.2px;left:1px;transition:left 0.25s}.toggle-checkbox .s-toggle-input:checked+div{background:#30D158}.toggle-checkbox .s-toggle-input:checked+div:before{left:18px}.s-toggle{cursor:pointer;display:inline-block}.s-toggle .s-toggle-input{position:absolute;visibility:hidden}.s-toggle .s-toggle-label{margin-left:5px;position:relative;top:2px}.s-toggle .s-toggle-switcher{display:inline-block;background:#ccc;border-radius:16px;width:40px;height:25px;position:relative;vertical-align:middle;transition:background 0.25s}.s-toggle .s-toggle-switcher:before,.s-toggle .s-toggle-switcher:after{content:""}.s-toggle .s-toggle-switcher:before{display:block;background:#fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,0.25);width:20px;height:21px;position:absolute;top:2.2px;left:1px;transition:left 0.25s}.s-toggle .s-toggle-input:checked+div{background:#30D158}.s-toggle .s-toggle-input:checked+div:before{left:18px}';export{a as salla_cookies_bar}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{r as e,h as r}from"./p-C9zdeQFI.js";function t(e){var r,a,s="";if("string"==typeof e||"number"==typeof e)s+=e;else if("object"==typeof e)if(Array.isArray(e))for(r=0;r<e.length;r++)e[r]&&(a=t(e[r]))&&(s&&(s+=" "),s+=a);else for(r in e)e[r]&&(s&&(s+=" "),s+=r);return s}const a=e=>"boolean"==typeof e?"".concat(e):0===e?"0":e,s=function(){for(var e,r,a=0,s="";a<arguments.length;)(e=arguments[a++])&&(r=t(e))&&(s&&(s+=" "),s+=r);return s},i=(o="s-badge-base",d={variants:{size:{xs:"s-badge-xs",sm:"s-badge-sm",md:"s-badge-md"},bg:{transparent:"s-badge-transparent",light:"s-badge-light","primary-100":"s-badge-primary-100"},color:{black:"s-badge-black","primary-900":"s-badge-color-primary-900"}}},e=>{var r;if(null==(null==d?void 0:d.variants))return s(o,null==e?void 0:e.class,null==e?void 0:e.className);const{variants:t,defaultVariants:i}=d,l=Object.keys(t).map((r=>{const s=null==e?void 0:e[r],o=null==i?void 0:i[r];if(null===s)return null;const d=a(s)||a(o);return t[r][d]})),n=e&&Object.entries(e).reduce(((e,r)=>{let[t,a]=r;return void 0===a||(e[t]=a),e}),{}),c=null==d||null===(r=d.compoundVariants)||void 0===r?void 0:r.reduce(((e,r)=>{let{class:t,className:a,...s}=r;return Object.entries(s).every((e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...i,...n}[r]):{...i,...n}[r]===t}))?[...e,t,a]:e}),[]);return s(o,l,c,null==e?void 0:e.class,null==e?void 0:e.className)});var o,d;const l=class{constructor(r){e(this,r),this.size="sm",this.color="black",this.bg="light"}render(){return r("div",{key:"33b750b244b3137042815ddc48fc2cbfdcb534fb",class:i({size:this.size,bg:this.bg,color:this.color})},r("slot",{key:"dd22df754c28a5e41aeede9b6376cd0a79cbd9fb"}))}};l.style='/*!twlt*/.s-badge-base{display:flex;max-width:max-content;align-items:center}.s-badge-base>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.5rem * var(--tw-space-x-reverse));margin-left:calc(0.5rem * calc(1 - var(--tw-space-x-reverse)))}.s-badge-base{white-space:nowrap;border-radius:0.375rem;padding-left:0.5rem;padding-right:0.5rem;padding-top:0.25rem;padding-bottom:0.25rem;font-weight:500;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.s-badge-base:where([dir="rtl"],[dir="rtl"] *)>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.s-badge-xs{font-size:0.75rem;line-height:1rem}.s-badge-xs svg{height:0.75rem;width:0.75rem}.s-badge-sm{font-size:0.875rem;line-height:1.25rem}.s-badge-sm svg{height:1rem;width:1rem}.s-badge-md{font-size:1rem;line-height:1.5rem}.s-badge-md svg{height:1.25rem;width:1.25rem}.s-badge-transparent{background-color:transparent}.s-badge-light{--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.s-badge-primary-100{background-color:color-mix(in srgb,var(--color-primary) 20%,white 80%)}.s-badge-color-black{--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.s-badge-color-primary-900{color:color-mix(in srgb,var(--color-primary) 45%,black 55%)}.s-badge-color-primary-900 svg{fill:currentColor}.s-badge-black{--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}';export{l as salla_badge}
4
+ import{r as e,h as r}from"./p-C9GauqTa.js";function t(e){var r,a,s="";if("string"==typeof e||"number"==typeof e)s+=e;else if("object"==typeof e)if(Array.isArray(e))for(r=0;r<e.length;r++)e[r]&&(a=t(e[r]))&&(s&&(s+=" "),s+=a);else for(r in e)e[r]&&(s&&(s+=" "),s+=r);return s}const a=e=>"boolean"==typeof e?"".concat(e):0===e?"0":e,s=function(){for(var e,r,a=0,s="";a<arguments.length;)(e=arguments[a++])&&(r=t(e))&&(s&&(s+=" "),s+=r);return s},i=(o="s-badge-base",l={variants:{size:{xs:"s-badge-xs",sm:"s-badge-sm",md:"s-badge-md"},bg:{transparent:"s-badge-transparent",light:"s-badge-light","primary-100":"s-badge-primary-100"},color:{black:"s-badge-black","primary-900":"s-badge-color-primary-900"}}},e=>{var r;if(null==(null==l?void 0:l.variants))return s(o,null==e?void 0:e.class,null==e?void 0:e.className);const{variants:t,defaultVariants:i}=l,d=Object.keys(t).map((r=>{const s=null==e?void 0:e[r],o=null==i?void 0:i[r];if(null===s)return null;const l=a(s)||a(o);return t[r][l]})),n=e&&Object.entries(e).reduce(((e,r)=>{let[t,a]=r;return void 0===a||(e[t]=a),e}),{}),c=null==l||null===(r=l.compoundVariants)||void 0===r?void 0:r.reduce(((e,r)=>{let{class:t,className:a,...s}=r;return Object.entries(s).every((e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...i,...n}[r]):{...i,...n}[r]===t}))?[...e,t,a]:e}),[]);return s(o,d,c,null==e?void 0:e.class,null==e?void 0:e.className)});var o,l;const d=class{constructor(r){e(this,r),this.size="sm",this.color="black",this.bg="light"}render(){return r("div",{key:"33b750b244b3137042815ddc48fc2cbfdcb534fb",class:i({size:this.size,bg:this.bg,color:this.color})},r("slot",{key:"dd22df754c28a5e41aeede9b6376cd0a79cbd9fb"}))}};d.style='/*!twlt*/.s-badge-base{display:flex;max-width:max-content;align-items:center}.s-badge-base>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.5rem * var(--tw-space-x-reverse));margin-left:calc(0.5rem * calc(1 - var(--tw-space-x-reverse)))}.s-badge-base{white-space:nowrap;border-radius:0.375rem;padding-left:0.5rem;padding-right:0.5rem;padding-top:0.25rem;padding-bottom:0.25rem;font-weight:500;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.s-badge-base:where([dir="rtl"],[dir="rtl"] *)>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.s-badge-xs{font-size:0.75rem;line-height:1rem}.s-badge-xs svg{height:0.75rem;width:0.75rem}.s-badge-sm{font-size:0.875rem;line-height:1.25rem}.s-badge-sm svg{height:1rem;width:1rem}.s-badge-md{font-size:1rem;line-height:1.5rem}.s-badge-md svg{height:1.25rem;width:1.25rem}.s-badge-transparent{background-color:transparent}.s-badge-light{--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.s-badge-primary-100{background-color:color-mix(in srgb,var(--color-primary) 20%,white 80%)}.s-badge-color-black{--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.s-badge-color-primary-900{color:color-mix(in srgb,var(--color-primary) 45%,black 55%)}.s-badge-color-primary-900 svg{fill:currentColor}.s-badge-black{--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}';export{d as salla_badge}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{r as s,h as t,H as a,a as i}from"./p-C9zdeQFI.js";import{i as e}from"./p-DgheRYLY.js";const r=class{constructor(t){s(this,t),this.hideTitle=!1,this.vertical=!1,this.sdkApps=null}componentWillLoad(){this.appSlot=this.host.querySelector('[slot="app"]')?.innerHTML}getTemplate(){return this.slotTemplate||this.appSlot||this.getDefaultSlot()}getDefaultSlot(){return'<img alt="{name}" src="{icon}" width="135" height="40" decoding="async" loading="lazy" />'}connectedCallback(){e()&&(this.langUnsubscribe=salla.lang.subscribe((()=>{this.appsTitle&&this.appsTitle!==this.langTitle||(this.appsTitle=this.langTitle=salla.lang.get("blocks.footer.download_apps"))}))),e()&&salla.onReady((()=>{this.sdkApps=salla.config.get("store.apps")}))}disconnectedCallback(){this.langUnsubscribe?.()}getAppsArray(){const s=this.apps||this.sdkApps;return s?Object.entries(s).filter((([,s])=>s&&"string"==typeof s)).map((([s,t])=>({name:s,value:t}))):[]}getCdnUrl(s){return e()?salla.url.cdn(`images/${s}.png`):`https://cdn.salla.net/images/${s}.png`}componentDidRender(){this.host.querySelector('[slot="app"]')?.remove()}render(){const s=this.getAppsArray();if(0!==s.length)return t(a,{class:"s-apps-icons"},!this.hideTitle&&this.appsTitle&&t("h3",null,this.appsTitle),t("div",{class:{"s-apps-icons-list":!0,vertical:this.vertical}},s.map((s=>t("a",{key:s.name,href:s.value,rel:"noreferrer",target:"_blank",class:"s-apps-icons-item",innerHTML:this.getTemplate().replace(/\{icon\}/g,this.getCdnUrl(s.name)).replace(/\{name\}/g,s.name)})))))}get host(){return i(this)}};r.style="/*!twlt*/:host{display:block}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.s-apps-icons-list{display:flex;gap:1rem}.s-apps-icons-list.vertical{flex-direction:column}.s-apps-icons-item{line-height:1}.s-apps-icons-item:hover{color:var(--color-primary)}";export{r as salla_apps_icons}
4
+ import{r as s,h as t,H as a,a as i}from"./p-C9GauqTa.js";import{i as e}from"./p-DgheRYLY.js";const r=class{constructor(t){s(this,t),this.hideTitle=!1,this.vertical=!1,this.sdkApps=null}componentWillLoad(){this.appSlot=this.host.querySelector('[slot="app"]')?.innerHTML}getTemplate(){return this.slotTemplate||this.appSlot||this.getDefaultSlot()}getDefaultSlot(){return'<img alt="{name}" src="{icon}" width="135" height="40" decoding="async" loading="lazy" />'}connectedCallback(){e()&&(this.langUnsubscribe=salla.lang.subscribe((()=>{this.appsTitle&&this.appsTitle!==this.langTitle||(this.appsTitle=this.langTitle=salla.lang.get("blocks.footer.download_apps"))}))),e()&&salla.onReady((()=>{this.sdkApps=salla.config.get("store.apps")}))}disconnectedCallback(){this.langUnsubscribe?.()}getAppsArray(){const s=this.apps||this.sdkApps;return s?Object.entries(s).filter((([,s])=>s&&"string"==typeof s)).map((([s,t])=>({name:s,value:t}))):[]}getCdnUrl(s){return e()?salla.url.cdn(`images/${s}.png`):`https://cdn.salla.net/images/${s}.png`}componentDidRender(){this.host.querySelector('[slot="app"]')?.remove()}render(){const s=this.getAppsArray();if(0!==s.length)return t(a,{class:"s-apps-icons"},!this.hideTitle&&this.appsTitle&&t("h3",null,this.appsTitle),t("div",{class:{"s-apps-icons-list":!0,vertical:this.vertical}},s.map((s=>t("a",{key:s.name,href:s.value,rel:"noreferrer",target:"_blank",class:"s-apps-icons-item",innerHTML:this.getTemplate().replace(/\{icon\}/g,this.getCdnUrl(s.name)).replace(/\{name\}/g,s.name)})))))}get host(){return i(this)}};r.style="/*!twlt*/:host{display:block}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.s-apps-icons-list{display:flex;gap:1rem}.s-apps-icons-list.vertical{flex-direction:column}.s-apps-icons-item{line-height:1}.s-apps-icons-item:hover{color:var(--color-primary)}";export{r as salla_apps_icons}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import"./p-C9zdeQFI.js";var e,t;!function(e){e.VALUES="values",e.VARIANTS="variants",e.MINIMUM="minimum",e.RANGE="range"}(e||(e={})),function(e){e.VALUES="values",e.VARIANT="variants",e.RANGE="range"}(t||(t={})),"undefined"!=typeof salla&&salla.event.setMaxListeners(100);var a=new class{constructor(){this.plans={0:"basic",25:"plus",50:"pro",100:"special"}}setIncludes(e){return this.includes=e,this}toggleElementClassIf(e,t,a,r){t=Array.isArray(t)?t:t.split(" "),a=Array.isArray(a)?a:a.split(" ");let s=r(e);return e?.classList.remove(...s?a:t),e?.classList.add(...s?t:a),this}toggleClassIf(e,t,a,r){return document.querySelectorAll(e).forEach((e=>this.toggleElementClassIf(e,t,a,r))),this}isValidEmail(e){return/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(e).toLowerCase())}filterEmojies(e){return e.replace(/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/g,"")}debounce(e,...t){return this.debounce_||(this.debounce_=salla.helpers.debounce(((e,...t)=>e(...t)),500)),this.debounce_(e,...t)}getProductsSource(e){return{"brands.single":"brands","product.index":"categories","product.index.latest":"latest","product.index.offers":"offers","product.index.search":"search","customer.wishlist":"wishlist","landing-page":"landing-page","product.index.tag":"tags","product.index.sales":"sales","components.most_sales_products":"sales"}[e||salla.config.get("page.slug")]||e||"latest"}getApiSource(e){return{recently:"selected"}[e]||e}getPageTitleForSource(e){return(e={brands:"common.titles.brands",latest:"blocks.home.latest_products",offers:"common.titles.discounts",reorder:"common.titles.products",sales:"common.titles.most_sales"}[e])?salla.lang.get(e):""}getProductsSourceValue(e,t){const a=this.getProductsSource(e);let r=null;if(t)try{r="string"==typeof t?JSON.parse(t):t}catch(e){console.error("Failed to parse JSON string in sourceValue:",e)}if(!["search","json","offers","latest","sales","related"].includes(a)){if(Array.isArray(r)&&r.length)return r;if(Array.isArray(r)&&!r.length)return"";if("number"==typeof r)return[r];if(!t&&["categories","tags","brands"].includes(e))return[salla.config.get("page.id")]}return r||t?r||t:"search"===a?"undefined"!=typeof window&&new URLSearchParams(window.location.search).get("q")||"":salla.config.get("page.id")}extractFiltersFromUrl(e){let t={};return e.forEach(((e,a)=>{const r=a.match(/^filters\[(.*?)\](\[(.*?)\])?$/u);if(r){const a=r[1],s=r[3];""===s||/^\d+$/.test(s)?(t[a]=Array.isArray(t[a])?t[a]:[],t[a].push(e)):s?(t[a]=t[a]||{},t[a][s]=e):t[a]=e}else{const r=a.match(/^(.*?)$/u);r&&(t[r[1]]=e)}})),t}resolveFilterLabels(t){return t.map((t=>{const a={...t};if(a.label={category_id:salla.lang.get("common.titles.categories"),brand_id:salla.lang.get("common.titles.brands"),rating:salla.lang.get("pages.categories.filter_rating"),price:salla.lang.get("pages.categories.filter_price")}[a.key]||a.label,"rating"==a.key){a.type=e.VALUES;const{max:r,min:s}=t.values;a.values=[5,4,3,2,1].filter((e=>e>=s||e<=r))}return a}))}async injectExtraFieldsToResponse(e){if(!e||!this.includes)return e;const t=e.data.map((e=>e.id));try{const{data:a}=await this.fetchImagesAndOptions(t);if(this.injectOptionsAndImages(e.data,a),!this.includes.includes("metadata"))return e;const r=await salla.api.metadata.fetchValues("product",t);return e.data.forEach((e=>{e.metadata=r.data.find((t=>parseInt(t.entity_id)===parseInt((e.id||"").toString())))})),e}catch(e){throw console.error("Error in injectExtraFieldsToResponse:",e),e}}fetchImagesAndOptions(e){return this.productsIncludes().length?salla.api.product.fetchOptions(e,{with:this.productsIncludes()}):Promise.resolve({data:[]})}injectOptionsAndImages(e,t){return t.length?e.map((e=>(this.includes.filter((e=>"metadata"!==e)).forEach((a=>{const r=t.find((t=>parseInt((t.id||"").toString())===parseInt((e.id||"").toString())));e[a]=r?r[a]:null})),e))):null}productsIncludes(){return this.includes?.filter((e=>"metadata"!=e))}saveSource(e,t){if(t)try{sessionStorage.setItem(e,t)}catch(e){salla.logger.warn("Error saving source to session storage")}}saveProductSource(e){this.saveSource("s-viewed-source",e)}saveProductPosition(e){if(null!=e&&""!==e)try{sessionStorage.setItem("s-viewed-position",String(e))}catch(e){salla.logger.warn("Error saving position to session storage")}}saveRequestId(e){if(e)try{sessionStorage.setItem("s-request-id",e)}catch(e){salla.logger.warn("Error saving request id to session storage")}}saveAddToCartSource(e){this.saveSource("s-add-to-cart-source",e)}parseJson(e){if("string"!=typeof e)return e;try{return JSON.parse(e)}catch(e){salla.logger.error("Failed to parse includes as JSON:",e)}return null}getProductSchemaMarkupScript(e){const t=document.createElement("script");return t.type="application/ld+json",t.text=JSON.stringify({"@context":"http://schema.org","@type":"Product",name:e?.name,image:e?.image?.url||e?.thumbnail,description:e?.description,brand:{"@type":"Brand",logo:e?.brand?.logo},offers:{"@type":"Offer",price:e?.price}}),t}createProductSchema(e,t){let a={productID:`${e.id}`,"@type":"Product",name:e.name,url:e.url,image:e.image.url||e.image,description:e.description||e.subtitle||e.name,...e.sku&&e.sku.length>0&&{sku:e.sku},offers:{"@type":"Offer",url:e.url,priceCurrency:e.currency,price:e.price,itemCondition:"NewCondition",availability:e.is_available?"InStock":"OutOfStock",priceValidUntil:e.discount_ends||new Date((new Date).setDate((new Date).getDate()+7)).toISOString().split("T")[0],priceSpecification:{"@type":"PriceSpecification",price:e.regular_price,priceCurrency:e.currency,valueAddedTaxIncluded:e.is_taxable},seller:{"@type":"Organization",name:salla.config.get("store.name")},shippingDetails:{"@type":"OfferShippingDetails",shippingRate:{"@type":"MonetaryAmount",value:"0",currency:e.currency||"SAR"},deliveryTime:{"@type":"ShippingDeliveryTime",businessDays:{"@type":"OpeningHoursSpecification",dayOfWeek:["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]},cutoffTime:"14:00"}},hasMerchantReturnPolicy:{"@type":"MerchantReturnPolicy",returnPolicyCategory:"https://schema.org/MerchantReturnFiniteReturnWindow",merchantReturnDays:30,returnMethod:"https://schema.org/ReturnByMail",returnFees:"https://schema.org/FreeReturn"}}};return e.rating?.stars&&(a.aggregateRating={"@type":"AggregateRating",ratingValue:e.rating.stars,reviewCount:e.rating.count}),{"@type":"ListItem",position:t,item:a}}generateProductSchema(e){const t="salla-product-schema-script";if(document.getElementById(t))return void salla.logger.warn(`already added schema-script with id (${t})!`);const a=document.createElement("script");a.type="application/ld+json",a.id=t;const r={"@context":"https://schema.org","@type":"ItemList",name:salla.config.get("page.title"),itemListElement:e.map(((e,t)=>this.createProductSchema(e,t+1)))};a.textContent=JSON.stringify(r),document.head.appendChild(a)}formatDateFromString(e,t,a="en"){const r={en:"Invalid Date",ar:"تاريخ غير صالح"};if(!e||"string"!=typeof e||""===e.trim())return r[a];let s;if(/^\d+$/.test(e)){const t=parseInt(e);s=new Date(t>1e12?t:1e3*t)}else s=new Date(e);return isNaN(s.getTime())?r[a]:`${{en:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ar:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"]}[a][s.getDay()]} ${t(s.getDate(),"en"===a)} ${{en:["January","February","March","April","May","June","July","August","September","October","November","December"],ar:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"]}[a][s.getMonth()]} ${t(s.getFullYear(),"en"===a)}`}copyToClipboard(e){var t=e.target.innerText;navigator.clipboard.writeText(t).then((()=>{console.log("Text copied to clipboard: "+t)})).catch((e=>{console.error("Unable to copy text to clipboard",e)}))}animateItems(e){if(!e?.length)return;const t=Array.from(e);t.forEach((e=>e.classList.remove("s-animate-fade-in-up"))),t[0].getBoundingClientRect(),t.forEach(((e,t)=>{e.style.animationDelay=100*t+"ms",e.classList.add("s-animate-fade-in-up")})),setTimeout((()=>t.forEach((e=>e.classList.add("animated")))),1200+100*(t.length-1))}createReviewObject(e){return{"@type":"Review",author:{"@type":"Person",name:e.name},reviewBody:e.content,reviewRating:{"@type":"Rating",bestRating:"5",ratingValue:e.stars,worstRating:"1"}}}generateReviewSchema(e){const t=document.createElement("script");t.type="application/ld+json";const a={"@context":"http://schema.org/","@type":"Store",name:salla.config.get("store.name"),url:salla.config.get("store.url"),address:"الرياض",review:e.map((e=>this.createReviewObject(e))),aggregateRating:{"@type":"AggregateRating",ratingValue:e.reduce(((e,t)=>e+t.stars),0)/e.length,reviewCount:e.length}};t.textContent=JSON.stringify(a),document.head.appendChild(t)}availabilityChannels(){let e=salla.config.get("store.settings.product.availability_notify");if(!e)return"";let t=[];return e.email&&t.push("email"),(e.sms||e.mobile||e.whatsapp)&&t.push("sms"),t.join(",")}syncWishlistIcons(e,t){e?.querySelectorAll(t).forEach((e=>{const t=e.product?.id,a="number"==typeof t?t:Number(t);if(Number.isNaN(a))return;const r=salla.wishlist.api.has(a);e.querySelectorAll(".s-product-card-wishlist-btn, .btn--wishlist").forEach((e=>{e.classList.toggle("s-product-card-wishlist-added",r),e.classList.toggle("wishlist-added",r)}))}))}getPlanName(){const e=Number(salla.config.get("store.ray"));return e in this.plans?this.plans[e]:void 0}escapeHtml(e){return String(e??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}};export{e as F,a as H}
4
+ import"./p-C9GauqTa.js";var e,t;!function(e){e.VALUES="values",e.VARIANTS="variants",e.MINIMUM="minimum",e.RANGE="range"}(e||(e={})),function(e){e.VALUES="values",e.VARIANT="variants",e.RANGE="range"}(t||(t={})),"undefined"!=typeof salla&&salla.event.setMaxListeners(100);var a=new class{constructor(){this.plans={0:"basic",25:"plus",50:"pro",100:"special"}}setIncludes(e){return this.includes=e,this}toggleElementClassIf(e,t,a,r){t=Array.isArray(t)?t:t.split(" "),a=Array.isArray(a)?a:a.split(" ");let s=r(e);return e?.classList.remove(...s?a:t),e?.classList.add(...s?t:a),this}toggleClassIf(e,t,a,r){return document.querySelectorAll(e).forEach((e=>this.toggleElementClassIf(e,t,a,r))),this}isValidEmail(e){return/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(e).toLowerCase())}filterEmojies(e){return e.replace(/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/g,"")}debounce(e,...t){return this.debounce_||(this.debounce_=salla.helpers.debounce(((e,...t)=>e(...t)),500)),this.debounce_(e,...t)}getProductsSource(e){return{"brands.single":"brands","product.index":"categories","product.index.latest":"latest","product.index.offers":"offers","product.index.search":"search","customer.wishlist":"wishlist","landing-page":"landing-page","product.index.tag":"tags","product.index.sales":"sales","components.most_sales_products":"sales"}[e||salla.config.get("page.slug")]||e||"latest"}getApiSource(e){return{recently:"selected"}[e]||e}getPageTitleForSource(e){return(e={brands:"common.titles.brands",latest:"blocks.home.latest_products",offers:"common.titles.discounts",reorder:"common.titles.products",sales:"common.titles.most_sales"}[e])?salla.lang.get(e):""}getProductsSourceValue(e,t){const a=this.getProductsSource(e);let r=null;if(t)try{r="string"==typeof t?JSON.parse(t):t}catch(e){console.error("Failed to parse JSON string in sourceValue:",e)}if(!["search","json","offers","latest","sales","related"].includes(a)){if(Array.isArray(r)&&r.length)return r;if(Array.isArray(r)&&!r.length)return"";if("number"==typeof r)return[r];if(!t&&["categories","tags","brands"].includes(e))return[salla.config.get("page.id")]}return r||t?r||t:"search"===a?"undefined"!=typeof window&&new URLSearchParams(window.location.search).get("q")||"":salla.config.get("page.id")}extractFiltersFromUrl(e){let t={};return e.forEach(((e,a)=>{const r=a.match(/^filters\[(.*?)\](\[(.*?)\])?$/u);if(r){const a=r[1],s=r[3];""===s||/^\d+$/.test(s)?(t[a]=Array.isArray(t[a])?t[a]:[],t[a].push(e)):s?(t[a]=t[a]||{},t[a][s]=e):t[a]=e}else{const r=a.match(/^(.*?)$/u);r&&(t[r[1]]=e)}})),t}resolveFilterLabels(t){return t.map((t=>{const a={...t};if(a.label={category_id:salla.lang.get("common.titles.categories"),brand_id:salla.lang.get("common.titles.brands"),rating:salla.lang.get("pages.categories.filter_rating"),price:salla.lang.get("pages.categories.filter_price")}[a.key]||a.label,"rating"==a.key){a.type=e.VALUES;const{max:r,min:s}=t.values;a.values=[5,4,3,2,1].filter((e=>e>=s||e<=r))}return a}))}async injectExtraFieldsToResponse(e){if(!e||!this.includes)return e;const t=e.data.map((e=>e.id));try{const{data:a}=await this.fetchImagesAndOptions(t);if(this.injectOptionsAndImages(e.data,a),!this.includes.includes("metadata"))return e;const r=await salla.api.metadata.fetchValues("product",t);return e.data.forEach((e=>{e.metadata=r.data.find((t=>parseInt(t.entity_id)===parseInt((e.id||"").toString())))})),e}catch(e){throw console.error("Error in injectExtraFieldsToResponse:",e),e}}fetchImagesAndOptions(e){return this.productsIncludes().length?salla.api.product.fetchOptions(e,{with:this.productsIncludes()}):Promise.resolve({data:[]})}injectOptionsAndImages(e,t){return t.length?e.map((e=>(this.includes.filter((e=>"metadata"!==e)).forEach((a=>{const r=t.find((t=>parseInt((t.id||"").toString())===parseInt((e.id||"").toString())));e[a]=r?r[a]:null})),e))):null}productsIncludes(){return this.includes?.filter((e=>"metadata"!=e))}saveSource(e,t){if(t)try{sessionStorage.setItem(e,t)}catch(e){salla.logger.warn("Error saving source to session storage")}}saveProductSource(e){this.saveSource("s-viewed-source",e)}saveProductPosition(e){if(null!=e&&""!==e)try{sessionStorage.setItem("s-viewed-position",String(e))}catch(e){salla.logger.warn("Error saving position to session storage")}}saveRequestId(e){if(e)try{sessionStorage.setItem("s-request-id",e)}catch(e){salla.logger.warn("Error saving request id to session storage")}}saveAddToCartSource(e){this.saveSource("s-add-to-cart-source",e)}parseJson(e){if("string"!=typeof e)return e;try{return JSON.parse(e)}catch(e){salla.logger.error("Failed to parse includes as JSON:",e)}return null}getProductSchemaMarkupScript(e){const t=document.createElement("script");return t.type="application/ld+json",t.text=JSON.stringify({"@context":"http://schema.org","@type":"Product",name:e?.name,image:e?.image?.url||e?.thumbnail,description:e?.description,brand:{"@type":"Brand",logo:e?.brand?.logo},offers:{"@type":"Offer",price:e?.price}}),t}createProductSchema(e,t){let a={productID:`${e.id}`,"@type":"Product",name:e.name,url:e.url,image:e.image.url||e.image,description:e.description||e.subtitle||e.name,...e.sku&&e.sku.length>0&&{sku:e.sku},offers:{"@type":"Offer",url:e.url,priceCurrency:e.currency,price:e.price,itemCondition:"NewCondition",availability:e.is_available?"InStock":"OutOfStock",priceValidUntil:e.discount_ends||new Date((new Date).setDate((new Date).getDate()+7)).toISOString().split("T")[0],priceSpecification:{"@type":"PriceSpecification",price:e.regular_price,priceCurrency:e.currency,valueAddedTaxIncluded:e.is_taxable},seller:{"@type":"Organization",name:salla.config.get("store.name")},shippingDetails:{"@type":"OfferShippingDetails",shippingRate:{"@type":"MonetaryAmount",value:"0",currency:e.currency||"SAR"},deliveryTime:{"@type":"ShippingDeliveryTime",businessDays:{"@type":"OpeningHoursSpecification",dayOfWeek:["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]},cutoffTime:"14:00"}},hasMerchantReturnPolicy:{"@type":"MerchantReturnPolicy",returnPolicyCategory:"https://schema.org/MerchantReturnFiniteReturnWindow",merchantReturnDays:30,returnMethod:"https://schema.org/ReturnByMail",returnFees:"https://schema.org/FreeReturn"}}};return e.rating?.stars&&(a.aggregateRating={"@type":"AggregateRating",ratingValue:e.rating.stars,reviewCount:e.rating.count}),{"@type":"ListItem",position:t,item:a}}generateProductSchema(e){const t="salla-product-schema-script";if(document.getElementById(t))return void salla.logger.warn(`already added schema-script with id (${t})!`);const a=document.createElement("script");a.type="application/ld+json",a.id=t;const r={"@context":"https://schema.org","@type":"ItemList",name:salla.config.get("page.title"),itemListElement:e.map(((e,t)=>this.createProductSchema(e,t+1)))};a.textContent=JSON.stringify(r),document.head.appendChild(a)}formatDateFromString(e,t,a="en"){const r={en:"Invalid Date",ar:"تاريخ غير صالح"};if(!e||"string"!=typeof e||""===e.trim())return r[a];let s;if(/^\d+$/.test(e)){const t=parseInt(e);s=new Date(t>1e12?t:1e3*t)}else s=new Date(e);return isNaN(s.getTime())?r[a]:`${{en:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ar:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"]}[a][s.getDay()]} ${t(s.getDate(),"en"===a)} ${{en:["January","February","March","April","May","June","July","August","September","October","November","December"],ar:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"]}[a][s.getMonth()]} ${t(s.getFullYear(),"en"===a)}`}copyToClipboard(e){var t=e.target.innerText;navigator.clipboard.writeText(t).then((()=>{console.log("Text copied to clipboard: "+t)})).catch((e=>{console.error("Unable to copy text to clipboard",e)}))}animateItems(e){if(!e?.length)return;const t=Array.from(e);t.forEach((e=>e.classList.remove("s-animate-fade-in-up"))),t[0].getBoundingClientRect(),t.forEach(((e,t)=>{e.style.animationDelay=100*t+"ms",e.classList.add("s-animate-fade-in-up")})),setTimeout((()=>t.forEach((e=>e.classList.add("animated")))),1200+100*(t.length-1))}createReviewObject(e){return{"@type":"Review",author:{"@type":"Person",name:e.name},reviewBody:e.content,reviewRating:{"@type":"Rating",bestRating:"5",ratingValue:e.stars,worstRating:"1"}}}generateReviewSchema(e){const t=document.createElement("script");t.type="application/ld+json";const a={"@context":"http://schema.org/","@type":"Store",name:salla.config.get("store.name"),url:salla.config.get("store.url"),address:"الرياض",review:e.map((e=>this.createReviewObject(e))),aggregateRating:{"@type":"AggregateRating",ratingValue:e.reduce(((e,t)=>e+t.stars),0)/e.length,reviewCount:e.length}};t.textContent=JSON.stringify(a),document.head.appendChild(t)}availabilityChannels(){let e=salla.config.get("store.settings.product.availability_notify");if(!e)return"";let t=[];return e.email&&t.push("email"),(e.sms||e.mobile||e.whatsapp)&&t.push("sms"),t.join(",")}syncWishlistIcons(e,t){e?.querySelectorAll(t).forEach((e=>{const t=e.product?.id,a="number"==typeof t?t:Number(t);if(Number.isNaN(a))return;const r=salla.wishlist.api.has(a);e.querySelectorAll(".s-product-card-wishlist-btn, .btn--wishlist").forEach((e=>{e.classList.toggle("s-product-card-wishlist-added",r),e.classList.toggle("wishlist-added",r)}))}))}getPlanName(){const e=Number(salla.config.get("store.ray"));return e in this.plans?this.plans[e]:void 0}escapeHtml(e){return String(e??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}};export{e as F,a as H}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- const n="BulletDeliveryAPI",r=n=>{const r=null==n?Number.NaN:Number(n);return!Number.isNaN(r)&&0!==r};async function e(r,e,t){try{return await r()}catch(r){return console.error(`${n}: ${t}`,r),e}}const t=new Map,a=3e5;let s=0;const o=new WeakMap;function c(n){const r=t.get(n);return!r||Date.now()-r.timestamp>a?(t.delete(n),null):r.data}function l(n,r){t.set(n,{data:r,timestamp:Date.now()})}function i(n,r){if(!n||null==r)return n;if(n.some((n=>null==n.country?.id)))return null;const e=n.filter((n=>String(n.country?.id)===String(r)));return e.length?e:null}function u({query:n,lat:r,lng:e,country_id:a,city_id:s,page:i,per_page:u=20},d=!0){const f={per_page:u};n&&n.trim().length>=2&&(f.query=n),r&&(f.lat=Number(r).toFixed(6)),e&&(f.lng=Number(e).toFixed(6)),a&&(f.country_id=a),s&&(f.city_id=s),i&&i>1&&(f.page=i);const m=`branches_${JSON.stringify(f)}`,h=d?c(m):null;if(h)return h;const p=(async()=>{const n=await salla.api.request("branches",{params:f});if(!Array.isArray(n?.data))throw new Error("Invalid branches response");return{branches:n.data,perPage:u,pagination:n.pagination}})();return d&&l(m,p),p.then((n=>{o.set(p,n)}),(()=>{})),p.catch((()=>{t.get(m)?.data===p&&t.delete(m)})),p}const d=n=>"SA"===String(n).toUpperCase(),f={async getCountries(n=!1,r){const t=r?.trim()?null:"countries_"+(n?1:0);if(t){const n=c(t);if(n)return n}const a=await e((async()=>{const e={for_branch:n?1:0};return n&&(e.for_allocation=1),r?.trim()&&(e.query=r.trim()),((await salla.api.request("shipping/countries",{params:e}))?.data??[]).map((n=>({id:n.id,code:n.code,name:n.name,has_regions:d(n.code)})))}),[],"Error getting countries");return t&&a.length>0&&l(t,a),a},async getRegions(t,a){if(!r(t))return console.warn(`${n}: getRegions called without valid country_id`),[];const s=a?.trim()?null:`regions_${t}`;if(s){const n=c(s);if(n)return n}const o=await e((async()=>{const n={};return a?.trim()&&(n.query=a.trim()),((await salla.api.request(`shipping/countries/${t}/regions`,{params:n}))?.data??[]).map((n=>({id:n.id,name:n.name,code:n.code,country_id:Number(t)})))}),[],"Error fetching regions");return s&&o.length>0&&l(s,o),o},async getCities(t,a,s){if(!r(t))return console.warn(`${n}: getCities called without valid country_id`),[];const o=s?.trim()?null:`cities_${t}_${a||"all"}`;if(o){const n=c(o);if(n)return n}const i=await e((async()=>{const n={for_branch:0,country_id:t};return a&&(n.region_id=a),s?.trim()&&(n.query=s.trim()),((await salla.api.request("shipping/cities",{params:n}))?.data??[]).map((n=>({id:n.id,name:n.name,country_id:t,...null!=n.region_id&&{region_id:n.region_id}})))}),[],"Error fetching cities");return o&&i.length>0&&l(o,i),i},getDistricts:async(t,a)=>r(t)?e((async()=>{const n={for_branch:0,city_id:t};a?.trim()&&(n.query=a.trim());const r=(await salla.api.request("shipping/districts",{params:n}))?.data;return(Array.isArray(r)?r:Array.isArray(r?.districts)?r.districts:[]).map((n=>({id:n.id,name:n.name,name_en:n.name_en,city_id:t})))}),[],"Error fetching districts"):(console.warn(`${n}: getDistricts called without valid city_id`),[]),getSavedAddresses:async()=>e((async()=>{const n=(await salla.api.request("address"))?.data;return Array.isArray(n)?n:[]}),[],"Error fetching user addresses"),async getAllBranches(n,r=20){const e=await this.getBranchCollection(n,r,{maxPages:Number.POSITIVE_INFINITY});if(!e.complete)throw Object.assign(new Error("Incomplete branch city collection"),{branches:e.branches});return e.branches},async getBranchCollection(n,r=20,{maxPages:a=10,requireComplete:d=!1}={}){const f=s,m=`branches_all_${JSON.stringify([n??null,r,a,d])}`,h=Number.isFinite(a)?c(m):null;if(h)return h;const p=null!=n?c("branches_all"):null;null==n&&l("branches_first",u({per_page:r,page:1}));const b={branches:[],complete:!1},g=e((async()=>{const e=p?c("branches_first"):null,t=e?o.get(e):null;if(p&&i(t?.branches??null,n)){const r=await p;if(f!==s)return{branches:[],complete:!1};const e=r.complete?i(r.branches,n):null;if(e)return{branches:e,complete:!0}}for(let e=1;e<=a;e++){const{branches:t,pagination:o}=await u({country_id:n,per_page:r,page:e},Number.isFinite(a)||1===e);if(f!==s)return{branches:[],complete:!1};const c=Number(o?.currentPage??e),l=Number(o?.totalPages);if(1===e&&0===l&&!t.length)return{branches:[],complete:!0};if(o&&(c!==e||!Number.isInteger(l)||l<e))throw new Error("Invalid branches pagination");if(b.branches.push(...t),o){if(d&&l>a)return b;if(e===l)return{branches:b.branches,complete:!0};if(!t.length)throw new Error("Incomplete branches response")}else if(t.length<r)return{branches:b.branches,complete:!0}}return b}),b,"Error fetching all branches");return l(m,g),null==n&&l("branches_all",g),g.then((n=>{n.complete?f===s&&t.get("branches_all")?.data===g&&l("branches_complete",n.branches):(t.get(m)?.data===g&&t.delete(m),t.get("branches_all")?.data===g&&t.delete("branches_all"))})),g},async getBranches(n={}){const r=s,t=n.query&&n.query.trim().length>=2||n.lat||n.lng||n.city_id,a=n.per_page??20,l=((n.page??1)-1)*a;if(!t){const e=i(c("branches_complete"),n.country_id);if(e)return e.slice(l,l+a);const t=c("branches_first");if(t){const e=o.get(t);if(r!==s)return[];if(e){const r=i(e.branches,n.country_id),t=e.pagination?1===Number(e.pagination.totalPages):e.branches.length<e.perPage;if(r&&(r.length>=l+a||t))return r.slice(l,l+a)}}}return e((async()=>(await u(n)).branches),[],"Error fetching branches")},saveAddressLocation:async n=>e((async()=>{const r=await salla.api.request("address/location",{...n,for_allocation:!0},"post"),e=r?.data??r;return{success:!0,address:"object"==typeof e&&null!=e&&"id"in e?e:void 0}}),{success:!1},"Error saving address/location"),setDeliveryScope:async n=>e((async()=>(await salla.api.withoutNotifier((()=>salla.scope.change({id:n}))),salla.storage.set("scope",{...salla.storage.get("scope")||{},id:n}),!0)),!1,"Error setting delivery scope"),async allocateScope(r){const e=n=>{const r=n;return Object.values(r?.error?.fields??{}).flat().find((n=>"string"==typeof n&&n.trim()))??r?.error?.message??r?.message??"Failed to allocate scope"};try{const n=await salla.api.withoutNotifier((()=>salla.api.request("scopes/allocation",r,"post")));return{success:!0,data:n?.data??n}}catch(r){console.error(`${n}: Error allocating scope`,r);const t=r;return{success:!1,error:null!=t?.response?.data?e(t.response.data):t?.message??"Unknown error"}}},getAddressToken:async()=>e((async()=>{const n=await salla.api.request("address/autocomplete-token");return n?.data?.token??null}),null,"Error fetching address autocomplete token")};function m(){s++,t.clear()}function h(){s++;for(const n of t.keys())n.startsWith("branches_")&&t.delete(n)}const p=n=>n*(Math.PI/180);function b(n,r,e,t){const a=p(e-n),s=p(t-r),o=Math.sin(a/2)**2+Math.cos(p(n))*Math.cos(p(e))*Math.sin(s/2)**2;return 12742*Math.atan2(Math.sqrt(o),Math.sqrt(1-o))}const g=n=>{if(!n)return!1;const r=n.pickup_readiness?.selectable;return"boolean"==typeof r?r:!1!==n.is_open},y=n=>{const r=n?.pickup_readiness;return r?.label&&["tomorrow","later"].includes(r.state)?r.label:null},_=n=>{const r=n?.pickup_readiness;return"same_day"!==r?.state||!1!==n?.is_open?null:r.ready_at?.match(/T(\d{2}:\d{2})/)?.[1]??null},w=n=>"orders_paused"===n?.pickup_readiness?.state,N=n=>{const r=new Set,e=[];for(const{city:t}of n)t?.id&&!r.has(String(t.id))&&(r.add(String(t.id)),e.push({id:t.id,name:t.name}));return e},$=n=>null==n||Number.isNaN(Number(n))?"":String(Math.round(100*Number(n))/100),S=["closed","unavailable"],v=n=>!!n&&!S.includes(n.pickup_readiness?.state),E=n=>{const r=n?.discount?.type,e=Number(n?.discount?.amount);return("percentage"===r||"fixed_amount"===r)&&e>0?{type:r,amount:e}:null},M=n=>{const r=n.filter(v).map(E).filter((n=>!!n));if(!r.length)return null;const e=r.some((n=>"percentage"===n.type))?"percentage":"fixed_amount",t=r.filter((n=>n.type===e)).map((n=>n.amount));return{type:e,min:Math.min(...t),max:Math.max(...t)}},A={sunday:0,الاحد:0,monday:1,الاثنين:1,tuesday:2,الثلاثاء:2,wednesday:3,الاربعاء:3,thursday:4,الخميس:4,friday:5,الجمعة:5,saturday:6,السبت:6},D=n=>(n.working_hours||[]).filter((n=>n?.name)).map((n=>{return{day_key:(r=n.name,A[String(r??"").trim().toLowerCase().replace(/[أإآ]/g,"ا")]),day:n.name,times:(n.times||[]).map((n=>({start:n.from,end:n.to})))};var r})),B=n=>!!n.always_open,k=(n,r)=>{const e=(n=>{const r=String(n??"").trim().match(/^(\d{1,2}):(\d{2})(?::\d{2})?$/);return!r||Number(r[1])>24?null:{hours:Number(r[1])%24,minutes:Number(r[2])}})(n);if(!e)return"";const t=new Date(Date.UTC(2e3,0,1,e.hours,e.minutes)),a=new Intl.DateTimeFormat("ar"===r?"ar-SA-u-nu-latn":"en",{timeZone:"UTC",hour:"2-digit",minute:"2-digit",hour12:!0}).formatToParts(t),s=n=>a.find((r=>r.type===n))?.value??"";return`${s("hour")}:${s("minute")} ${s("dayPeriod")}`},x=(n,r)=>n.length===r.length&&n.every(((n,e)=>n.start===r[e].start&&n.end===r[e].end)),C=n=>{const r=[],e=[...n||[]].filter((n=>n.times?.length)).sort(((n,r)=>(n.day_key??0)-(r.day_key??0)));for(const n of e){const e=r[r.length-1];e&&n.day_key===e.lastDayKey+1&&x(e.times,n.times)?(e.days.push(n.day),e.lastDayKey=n.day_key):r.push({days:[n.day],times:n.times,lastDayKey:n.day_key??0})}return r.sort(((n,r)=>r.days.length-n.days.length)).map((({days:n,times:r})=>({days:n,times:r})))},I=n=>String(n??"").trim().replace(/[^\d+]/g,""),P=n=>{const r=I(n.contacts?.phone);return r?`tel:${r}`:null},j=n=>{const r=I(n.contacts?.whatsapp).replace(/^\+/,"").replace(/^00/,"").replace(/\D/g,"");return r?`https://wa.me/${r}`:null},q=n=>null!=n.location?.lat&&null!=n.location?.lng?`https://www.google.com/maps?q=${n.location.lat},${n.location.lng}`:null;function O(n,r,e){let t=null,a=Number.POSITIVE_INFINITY;for(const s of n){const n=null!=s.location?.lat?Number(s.location.lat):Number.NaN,o=null!=s.location?.lng?Number(s.location.lng):Number.NaN;if(Number.isNaN(n)||Number.isNaN(o)||!g(s))continue;const c=b(r,e,n,o);c<a&&(a=c,t=s)}return t}const T=(n,r)=>{if(!r)return n;const e=r.toLowerCase();return n.filter((n=>[n.name,n.city?.name,n.city?.name_en,n.country?.name,n.country?.name_en].some((n=>n?.toLowerCase().includes(e)))))},F=(n,r,e)=>{if("branch"===n.type){const r=[n.branch_details?.country,n.branch_details?.city,n.branch_details?.district].filter(Boolean).join("، ");return r?`${e} ${r}`.trim():""}if("address"===n.type&&n.address_details){const e=[n.address_details.country?.name,n.address_details.city?.name,n.address_details.district?.name].filter(Boolean).join("، ")||n.address_details.short_address||"";return e?`${r} ${e}`.trim():""}return""},J=n=>null!=n?Number(n):void 0,R=n=>J(n?.address_details?.country?.id),U=n=>n?.country_code??n?.address_details?.country?.code??"",z=n=>J(n?.address_details?.region?.id),G=n=>J(n?.address_details?.city?.id),K=n=>J(n?.address_details?.district?.id),L=n=>n?.branch_details?.id,W=n=>!!n&&"address"===n.type&&null!=n.address_details?.lat&&null!=n.address_details?.lng,Z=n=>{if(!n||"address"!==n.type||n.address_id)return!1;if(W(n))return!0;const r=R(n),e=G(n),t=K(n),a=U(n),s=null!=t&&0!==Number(t),o=Boolean(n.address_details?.district?.name?.trim()),c=!d(a)||s||o;return!!(r&&e&&c)},H=(n,r,e)=>!n||!d(n)||null!=r&&0!==Number(r)&&null!=e&&("number"==typeof e?0!==e:String(e).trim().length>0);export{q as A,B,a as C,k as D,_ as E,w as F,U as G,d as a,f as b,h as c,R as d,z as e,K as f,G as g,Z as h,W as i,N as j,g as k,M as l,T as m,L as n,O as o,m as p,F as q,H as r,v as s,y as t,C as u,D as v,P as w,j as x,E as y,$ as z}
4
+ const n="BulletDeliveryAPI",r=n=>{const r=null==n?Number.NaN:Number(n);return!Number.isNaN(r)&&0!==r};async function e(r,e,t){try{return await r()}catch(r){return console.error(`${n}: ${t}`,r),e}}const t=new Map,a=3e5;let s=0;const o=new WeakMap;function c(n){const r=t.get(n);return!r||Date.now()-r.timestamp>a?(t.delete(n),null):r.data}function l(n,r){t.set(n,{data:r,timestamp:Date.now()})}function i(n,r){if(!n||null==r)return n;if(n.some((n=>null==n.country?.id)))return null;const e=n.filter((n=>String(n.country?.id)===String(r)));return e.length?e:null}function u({query:n,lat:r,lng:e,country_id:a,city_id:s,page:i,per_page:u=20},d=!0){const f={per_page:u};n&&n.trim().length>=2&&(f.query=n),r&&(f.lat=Number(r).toFixed(6)),e&&(f.lng=Number(e).toFixed(6)),a&&(f.country_id=a),s&&(f.city_id=s),i&&i>1&&(f.page=i);const m=`branches_${JSON.stringify(f)}`,h=d?c(m):null;if(h)return h;const b=(async()=>{const n=await salla.api.request("branches",{params:f});if(!Array.isArray(n?.data))throw new Error("Invalid branches response");return{branches:n.data,perPage:u,pagination:n.pagination}})();return d&&l(m,b),b.then((n=>{o.set(b,n)}),(()=>{})),b.catch((()=>{t.get(m)?.data===b&&t.delete(m)})),b}const d=n=>"SA"===String(n).toUpperCase(),f={async getCountries(n=!1,r){const t=r?.trim()?null:"countries_"+(n?1:0);if(t){const n=c(t);if(n)return n}const a=await e((async()=>{const e={for_branch:n?1:0};return n&&(e.for_allocation=1),r?.trim()&&(e.query=r.trim()),((await salla.api.request("shipping/countries",{params:e}))?.data??[]).map((n=>({id:n.id,code:n.code,name:n.name,has_regions:d(n.code)})))}),[],"Error getting countries");return t&&a.length>0&&l(t,a),a},async getRegions(t,a){if(!r(t))return console.warn(`${n}: getRegions called without valid country_id`),[];const s=a?.trim()?null:`regions_${t}`;if(s){const n=c(s);if(n)return n}const o=await e((async()=>{const n={};return a?.trim()&&(n.query=a.trim()),((await salla.api.request(`shipping/countries/${t}/regions`,{params:n}))?.data??[]).map((n=>({id:n.id,name:n.name,code:n.code,country_id:Number(t)})))}),[],"Error fetching regions");return s&&o.length>0&&l(s,o),o},async getCities(t,a,s){if(!r(t))return console.warn(`${n}: getCities called without valid country_id`),[];const o=s?.trim()?null:`cities_${t}_${a||"all"}`;if(o){const n=c(o);if(n)return n}const i=await e((async()=>{const n={for_branch:0,country_id:t};return a&&(n.region_id=a),s?.trim()&&(n.query=s.trim()),((await salla.api.request("shipping/cities",{params:n}))?.data??[]).map((n=>({id:n.id,name:n.name,country_id:t,...null!=n.region_id&&{region_id:n.region_id}})))}),[],"Error fetching cities");return o&&i.length>0&&l(o,i),i},getDistricts:async(t,a)=>r(t)?e((async()=>{const n={for_branch:0,city_id:t};a?.trim()&&(n.query=a.trim());const r=(await salla.api.request("shipping/districts",{params:n}))?.data;return(Array.isArray(r)?r:Array.isArray(r?.districts)?r.districts:[]).map((n=>({id:n.id,name:n.name,name_en:n.name_en,city_id:t})))}),[],"Error fetching districts"):(console.warn(`${n}: getDistricts called without valid city_id`),[]),getSavedAddresses:async()=>e((async()=>{const n=(await salla.api.request("address"))?.data;return Array.isArray(n)?n:[]}),[],"Error fetching user addresses"),async getAllBranches(n,r=20){const e=await this.getBranchCollection(n,r,{maxPages:Number.POSITIVE_INFINITY});if(!e.complete)throw Object.assign(new Error("Incomplete branch city collection"),{branches:e.branches});return e.branches},async getBranchCollection(n,r=20,{maxPages:a=10,requireComplete:d=!1}={}){const f=s,m=`branches_all_${JSON.stringify([n??null,r,a,d])}`,h=Number.isFinite(a)?c(m):null;if(h)return h;const b=null!=n?c("branches_all"):null;null==n&&l("branches_first",u({per_page:r,page:1}));const g={branches:[],complete:!1},p=e((async()=>{const e=b?c("branches_first"):null,t=e?o.get(e):null;if(b&&i(t?.branches??null,n)){const r=await b;if(f!==s)return{branches:[],complete:!1};const e=r.complete?i(r.branches,n):null;if(e)return{branches:e,complete:!0}}for(let e=1;e<=a;e++){const{branches:t,pagination:o}=await u({country_id:n,per_page:r,page:e},Number.isFinite(a)||1===e);if(f!==s)return{branches:[],complete:!1};const c=Number(o?.currentPage??e),l=Number(o?.totalPages);if(1===e&&0===l&&!t.length)return{branches:[],complete:!0};if(o&&(c!==e||!Number.isInteger(l)||l<e))throw new Error("Invalid branches pagination");if(g.branches.push(...t),o){if(d&&l>a)return g;if(e===l)return{branches:g.branches,complete:!0};if(!t.length)throw new Error("Incomplete branches response")}else if(t.length<r)return{branches:g.branches,complete:!0}}return g}),g,"Error fetching all branches");return l(m,p),null==n&&l("branches_all",p),p.then((n=>{n.complete?f===s&&t.get("branches_all")?.data===p&&l("branches_complete",n.branches):(t.get(m)?.data===p&&t.delete(m),t.get("branches_all")?.data===p&&t.delete("branches_all"))})),p},async getBranches(n={}){const r=s,t=n.query&&n.query.trim().length>=2||n.lat||n.lng||n.city_id,a=n.per_page??20,l=((n.page??1)-1)*a;if(!t){const e=i(c("branches_complete"),n.country_id);if(e)return e.slice(l,l+a);const t=c("branches_first");if(t){const e=o.get(t);if(r!==s)return[];if(e){const r=i(e.branches,n.country_id),t=e.pagination?1===Number(e.pagination.totalPages):e.branches.length<e.perPage;if(r&&(r.length>=l+a||t))return r.slice(l,l+a)}}}return e((async()=>(await u(n)).branches),[],"Error fetching branches")},saveAddressLocation:async n=>e((async()=>{const r=await salla.api.request("address/location",{...n,for_allocation:!0},"post"),e=r?.data??r;return{success:!0,address:"object"==typeof e&&null!=e&&"id"in e?e:void 0}}),{success:!1},"Error saving address/location"),setDeliveryScope:async n=>e((async()=>(await salla.api.withoutNotifier((()=>salla.scope.change({id:n}))),salla.storage.set("scope",{...salla.storage.get("scope")||{},id:n}),!0)),!1,"Error setting delivery scope"),async allocateScope(r){const e=n=>{const r=n;return Object.values(r?.error?.fields??{}).flat().find((n=>"string"==typeof n&&n.trim()))??r?.error?.message??r?.message??"Failed to allocate scope"};try{const n=await salla.api.withoutNotifier((()=>salla.api.request("scopes/allocation",r,"post")));return{success:!0,data:n?.data??n}}catch(r){console.error(`${n}: Error allocating scope`,r);const t=r;return{success:!1,error:null!=t?.response?.data?e(t.response.data):t?.message??"Unknown error"}}},getAddressToken:async()=>e((async()=>{const n=await salla.api.request("address/autocomplete-token");return n?.data?.token??null}),null,"Error fetching address autocomplete token")};function m(){s++,t.clear()}function h(){s++;for(const n of t.keys())n.startsWith("branches_")&&t.delete(n)}const b=n=>n*(Math.PI/180);function g(n,r,e,t){const a=b(e-n),s=b(t-r),o=Math.sin(a/2)**2+Math.cos(b(n))*Math.cos(b(e))*Math.sin(s/2)**2;return 12742*Math.atan2(Math.sqrt(o),Math.sqrt(1-o))}const p=n=>{if(!n)return!1;const r=n.pickup_readiness?.selectable;return"boolean"==typeof r?r:!1!==n.is_open},y=n=>{const r=n?.pickup_readiness;return r?.label&&["tomorrow","later"].includes(r.state)?r.label:null},_=n=>{const r=n?.pickup_readiness;return"same_day"!==r?.state||!1!==n?.is_open?null:r.ready_at?.match(/T(\d{2}:\d{2})/)?.[1]??null},w=n=>"orders_paused"===n?.pickup_readiness?.state,N=n=>{const r=new Set,e=[];for(const{city:t}of n)t?.id&&!r.has(String(t.id))&&(r.add(String(t.id)),e.push({id:t.id,name:t.name}));return e},$=n=>null==n||Number.isNaN(Number(n))?"":String(Math.round(100*Number(n))/100),S=["closed","unavailable"],v=n=>!!n&&!S.includes(n.pickup_readiness?.state),E=n=>{const r=n?.discount?.type,e=Number(n?.discount?.amount);return("percentage"===r||"fixed_amount"===r)&&e>0?{type:r,amount:e}:null},M=n=>{const r=n.filter(v).map(E).filter((n=>!!n));if(!r.length)return null;const e=r.some((n=>"percentage"===n.type))?"percentage":"fixed_amount",t=r.filter((n=>n.type===e)).map((n=>n.amount));return{type:e,min:Math.min(...t),max:Math.max(...t)}},A={sunday:0,الاحد:0,monday:1,الاثنين:1,tuesday:2,الثلاثاء:2,wednesday:3,الاربعاء:3,thursday:4,الخميس:4,friday:5,الجمعة:5,saturday:6,السبت:6},D=n=>(n.working_hours||[]).filter((n=>n?.name)).map((n=>{return{day_key:(r=n.name,A[String(r??"").trim().toLowerCase().replace(/[أإآ]/g,"ا")]),day:n.name,times:(n.times||[]).map((n=>({start:n.from,end:n.to})))};var r})),B=n=>!!n.always_open,k=(n,r)=>{const e=(n=>{const r=String(n??"").trim().match(/^(\d{1,2}):(\d{2})(?::\d{2})?$/);return!r||Number(r[1])>24?null:{hours:Number(r[1])%24,minutes:Number(r[2])}})(n);if(!e)return"";const t=new Date(Date.UTC(2e3,0,1,e.hours,e.minutes)),a=new Intl.DateTimeFormat("ar"===r?"ar-SA-u-nu-latn":"en",{timeZone:"UTC",hour:"2-digit",minute:"2-digit",hour12:!0}).formatToParts(t),s=n=>a.find((r=>r.type===n))?.value??"";return`${s("hour")}:${s("minute")} ${s("dayPeriod")}`},x=(n,r)=>n.length===r.length&&n.every(((n,e)=>n.start===r[e].start&&n.end===r[e].end)),C=n=>{const r=[],e=[...n||[]].filter((n=>n.times?.length)).sort(((n,r)=>(n.day_key??0)-(r.day_key??0)));for(const n of e){const e=r[r.length-1];e&&n.day_key===e.lastDayKey+1&&x(e.times,n.times)?(e.days.push(n.day),e.lastDayKey=n.day_key):r.push({days:[n.day],times:n.times,lastDayKey:n.day_key??0})}return r.sort(((n,r)=>r.days.length-n.days.length)).map((({days:n,times:r})=>({days:n,times:r})))},I=n=>String(n??"").trim().replace(/[^\d+]/g,""),P=n=>{const r=I(n.contacts?.phone);return r?`tel:${r}`:null},j=n=>{const r=I(n.contacts?.whatsapp).replace(/^\+/,"").replace(/^00/,"").replace(/\D/g,"");return r?`https://wa.me/${r}`:null},q=n=>null!=n.location?.lat&&null!=n.location?.lng?`https://www.google.com/maps?q=${n.location.lat},${n.location.lng}`:null;function O(n,r,e){let t=null,a=Number.POSITIVE_INFINITY;for(const s of n){const n=null!=s.location?.lat?Number(s.location.lat):Number.NaN,o=null!=s.location?.lng?Number(s.location.lng):Number.NaN;if(Number.isNaN(n)||Number.isNaN(o)||!p(s))continue;const c=g(r,e,n,o);c<a&&(a=c,t=s)}return t}const T=(n,r)=>{if(!r)return n;const e=r.toLowerCase();return n.filter((n=>[n.name,n.city?.name,n.city?.name_en,n.country?.name,n.country?.name_en].some((n=>n?.toLowerCase().includes(e)))))},F=(n,r,e)=>{if("branch"===n.type){const r=[n.branch_details?.country,n.branch_details?.city,n.branch_details?.district].filter(Boolean).join("، ");return r?`${e} ${r}`.trim():""}if("address"===n.type&&n.address_details){const e=[n.address_details.country?.name,n.address_details.city?.name,n.address_details.district?.name].filter(Boolean).join("، ")||n.address_details.short_address||"";return e?`${r} ${e}`.trim():""}return""},J=n=>null!=n?Number(n):void 0,R=n=>J(n?.address_details?.country?.id),U=n=>n?.country_code??n?.address_details?.country?.code??"",z=n=>J(n?.address_details?.region?.id),G=n=>J(n?.address_details?.city?.id),H=n=>J(n?.address_details?.district?.id),K=n=>n?.branch_details?.id,L=n=>!!n&&"address"===n.type&&null!=n.address_details?.lat&&null!=n.address_details?.lng,W=n=>{if(null==n||"string"==typeof n&&""===n.trim())return null;const r=Number(n);return Number.isFinite(r)?r:null},Z=n=>{if(!n||"address"!==n.type)return!1;const r=n.address_details,e=n=>""!==String(n??"").trim(),t=W(r?.lat),a=W(r?.lng),s=null!=t&&null!=a&&!(0===t&&0===a),o=e(r?.district?.name)||e(r?.local);return e(r?.short_address)||o&&(e(r?.street)||s)},Q=n=>{if(!n||"address"!==n.type||n.address_id)return!1;if(L(n))return!0;const r=R(n),e=G(n),t=H(n),a=U(n),s=null!=t&&0!==Number(t),o=Boolean(n.address_details?.district?.name?.trim()),c=!d(a)||s||o;return!!(r&&e&&c)},V=(n,r,e)=>!n||!d(n)||null!=r&&0!==Number(r)&&null!=e&&("number"==typeof e?0!==e:String(e).trim().length>0);export{$ as A,q as B,a as C,B as D,k as E,_ as F,w as G,U as H,Z as I,d as a,f as b,h as c,R as d,z as e,H as f,G as g,Q as h,L as i,N as j,p as k,M as l,T as m,K as n,O as o,m as p,F as q,V as r,v as s,W as t,y as u,C as v,D as w,P as x,j as y,E as z}