@salla.sa/twilight-components 3.0.25 → 3.0.27

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 (368) hide show
  1. package/dist/cjs/{Helper-BSFw7uVh.js → Helper-CFeUiEPn.js} +1 -1
  2. package/dist/cjs/{filepond-DzJcpvBM.js → filepond-Cn3JTrL1.js} +1 -1
  3. package/dist/cjs/{filepond-plugin-file-poster-BILkbyw_.js → filepond-plugin-file-poster-BOIM6p80.js} +1 -1
  4. package/dist/cjs/{filepond-plugin-file-validate-size-DIJUAZji.js → filepond-plugin-file-validate-size-YTjl_kR1.js} +1 -1
  5. package/dist/cjs/{filepond-plugin-file-validate-type-4lpOf3hf.js → filepond-plugin-file-validate-type-ByB9Nk2o.js} +1 -1
  6. package/dist/cjs/{filepond-plugin-image-edit-DtE3Wj_4.js → filepond-plugin-image-edit-DT7UG1he.js} +1 -1
  7. package/dist/cjs/{filepond-plugin-image-exif-orientation-Dc_jwifJ.js → filepond-plugin-image-exif-orientation-CNqCjRvG.js} +1 -1
  8. package/dist/cjs/{filepond-plugin-image-preview-D_8qt0dd.js → filepond-plugin-image-preview-dsQXwutz.js} +1 -1
  9. package/dist/cjs/{index-D0d25H-r.js → index-DF5Yp06H.js} +6 -6
  10. package/dist/cjs/info-Do5bVPmK.js +13 -0
  11. package/dist/cjs/{intlTelInput-DqmuleM6.js → intlTelInput-CRlVjvSW.js} +1 -1
  12. package/dist/cjs/loader.cjs.js +2 -2
  13. package/dist/cjs/salla-accordion-body_2.cjs.entry.js +1 -1
  14. package/dist/cjs/salla-accordion_6.cjs.entry.js +2 -2
  15. package/dist/cjs/salla-add-product-button_5.cjs.entry.js +2 -2
  16. package/dist/cjs/salla-advertisement.cjs.entry.js +1 -1
  17. package/dist/cjs/salla-alert_2.cjs.entry.js +3 -9
  18. package/dist/cjs/salla-app-install-alert.cjs.entry.js +1 -1
  19. package/dist/cjs/salla-applied-filters.cjs.entry.js +2 -2
  20. package/dist/cjs/salla-apps-icons.cjs.entry.js +1 -1
  21. package/dist/cjs/salla-attachment-view_9.cjs.entry.js +11 -11
  22. package/dist/cjs/salla-badge.cjs.entry.js +1 -1
  23. package/dist/cjs/salla-basket-gap.cjs.entry.js +1 -1
  24. package/dist/cjs/salla-bullet-delivery_3.cjs.entry.js +1 -1
  25. package/dist/cjs/salla-cart-coupons.cjs.entry.js +1 -1
  26. package/dist/cjs/salla-cart-item-offers_2.cjs.entry.js +1 -1
  27. package/dist/cjs/salla-cart-summary-card.cjs.entry.js +120 -5
  28. package/dist/cjs/salla-cashback-banner.cjs.entry.js +1 -1
  29. package/dist/cjs/salla-comment-factors.cjs.entry.js +1 -1
  30. package/dist/cjs/salla-comment-form_9.cjs.entry.js +2 -2
  31. package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
  32. package/dist/cjs/salla-contacts.cjs.entry.js +1 -1
  33. package/dist/cjs/salla-cookies-bar.cjs.entry.js +1 -1
  34. package/dist/cjs/salla-count-down.cjs.entry.js +1 -1
  35. package/dist/cjs/salla-custom-fields.cjs.entry.js +1 -1
  36. package/dist/cjs/salla-delivery-promise.cjs.entry.js +1 -1
  37. package/dist/cjs/salla-edit-order-button.cjs.entry.js +1 -1
  38. package/dist/cjs/salla-filters-widget.cjs.entry.js +2 -2
  39. package/dist/cjs/salla-filters.cjs.entry.js +2 -2
  40. package/dist/cjs/salla-free-shipping-banner.cjs.entry.js +1 -1
  41. package/dist/cjs/salla-free-shipping-tag.cjs.entry.js +1 -1
  42. package/dist/cjs/salla-fulfillment-methods.cjs.entry.js +1 -1
  43. package/dist/cjs/salla-gift-card-redeem_2.cjs.entry.js +1 -1
  44. package/dist/cjs/salla-gifting.cjs.entry.js +1 -1
  45. package/dist/cjs/salla-hook.cjs.entry.js +1 -1
  46. package/dist/cjs/salla-infinite-scroll.cjs.entry.js +2 -2
  47. package/dist/cjs/salla-installment.cjs.entry.js +1 -1
  48. package/dist/cjs/salla-list-tile.cjs.entry.js +1 -1
  49. package/dist/cjs/salla-localization-modal.cjs.entry.js +1 -1
  50. package/dist/cjs/salla-login-modal.cjs.entry.js +1 -1
  51. package/dist/cjs/salla-loyalty-banner_10.cjs.entry.js +1 -1
  52. package/dist/cjs/salla-loyalty-exchange-product-card.cjs.entry.js +1 -1
  53. package/dist/cjs/salla-loyalty-points-banner.cjs.entry.js +1 -1
  54. package/dist/cjs/salla-loyalty-points-history.cjs.entry.js +1 -1
  55. package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +1 -1
  56. package/dist/cjs/salla-loyalty.cjs.entry.js +1 -1
  57. package/dist/cjs/salla-maintenance-alert.cjs.entry.js +1 -1
  58. package/dist/cjs/salla-map_3.cjs.entry.js +1 -1
  59. package/dist/cjs/salla-menu.cjs.entry.js +1 -1
  60. package/dist/cjs/salla-metadata.cjs.entry.js +1 -1
  61. package/dist/cjs/salla-mobile-update-modal.cjs.entry.js +1 -1
  62. package/dist/cjs/salla-multiple-bundle-product-cart_2.cjs.entry.js +1 -1
  63. package/dist/cjs/salla-multiple-bundle-product-options-modal_2.cjs.entry.js +1 -1
  64. package/dist/cjs/salla-multiple-bundle-product.cjs.entry.js +1 -1
  65. package/dist/cjs/salla-next-order-coupon.cjs.entry.js +1 -1
  66. package/dist/cjs/salla-notification-item_2.cjs.entry.js +2 -2
  67. package/dist/cjs/salla-offer-modal.cjs.entry.js +1 -1
  68. package/dist/cjs/salla-offer.cjs.entry.js +1 -1
  69. package/dist/cjs/salla-order-branch.cjs.entry.js +1 -1
  70. package/dist/cjs/salla-order-cancel.cjs.entry.js +1 -1
  71. package/dist/cjs/salla-order-details-multiple-bundle-product.cjs.entry.js +1 -1
  72. package/dist/cjs/salla-order-details-options.cjs.entry.js +1 -1
  73. package/dist/cjs/salla-order-details.cjs.entry.js +1 -1
  74. package/dist/cjs/salla-order-edit-item.cjs.entry.js +1 -1
  75. package/dist/cjs/salla-order-edit-product-card.cjs.entry.js +1 -1
  76. package/dist/cjs/salla-order-edit.cjs.entry.js +1 -1
  77. package/dist/cjs/salla-order-items.cjs.entry.js +1 -1
  78. package/dist/cjs/salla-order-options-modal.cjs.entry.js +1 -1
  79. package/dist/cjs/salla-order-payment.cjs.entry.js +1 -1
  80. package/dist/cjs/salla-order-rewards.cjs.entry.js +1 -1
  81. package/dist/cjs/salla-order-shipments.cjs.entry.js +1 -1
  82. package/dist/cjs/salla-order-summary.cjs.entry.js +1 -1
  83. package/dist/cjs/salla-order-totals-card.cjs.entry.js +27 -6
  84. package/dist/cjs/salla-orders.cjs.entry.js +2 -2
  85. package/dist/cjs/salla-payments.cjs.entry.js +1 -1
  86. package/dist/cjs/salla-placeholder.cjs.entry.js +1 -1
  87. package/dist/cjs/salla-price-range.cjs.entry.js +1 -1
  88. package/dist/cjs/salla-product-card-embed.cjs.entry.js +1 -1
  89. package/dist/cjs/salla-product-card.cjs.entry.js +1 -1
  90. package/dist/cjs/salla-product-size-guide.cjs.entry.js +1 -1
  91. package/dist/cjs/salla-products-list.cjs.entry.js +2 -2
  92. package/dist/cjs/salla-products-slider.cjs.entry.js +2 -2
  93. package/dist/cjs/salla-quick-order.cjs.entry.js +1 -1
  94. package/dist/cjs/salla-rating-modal-v2.cjs.entry.js +2 -2
  95. package/dist/cjs/salla-rating-modal.cjs.entry.js +2 -2
  96. package/dist/cjs/salla-review-factors-tags.cjs.entry.js +1 -1
  97. package/dist/cjs/salla-review-order-item.cjs.entry.js +1 -1
  98. package/dist/cjs/salla-scopes.cjs.entry.js +1 -1
  99. package/dist/cjs/salla-search-product-card.cjs.entry.js +1 -1
  100. package/dist/cjs/salla-search.cjs.entry.js +2 -2
  101. package/dist/cjs/salla-skeleton.cjs.entry.js +1 -1
  102. package/dist/cjs/salla-social-share.cjs.entry.js +1 -1
  103. package/dist/cjs/salla-social.cjs.entry.js +1 -1
  104. package/dist/cjs/salla-tab-content_3.cjs.entry.js +1 -1
  105. package/dist/cjs/salla-thank-you-header.cjs.entry.js +1 -1
  106. package/dist/cjs/salla-thank-you-page.cjs.entry.js +1 -1
  107. package/dist/cjs/salla-tiered-offer.cjs.entry.js +1 -1
  108. package/dist/cjs/salla-trust-badges.cjs.entry.js +1 -1
  109. package/dist/cjs/salla-user-menu.cjs.entry.js +1 -1
  110. package/dist/cjs/salla-user-profile.cjs.entry.js +1 -1
  111. package/dist/cjs/salla-user-settings.cjs.entry.js +1 -1
  112. package/dist/cjs/salla-verify.cjs.entry.js +1 -1
  113. package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
  114. package/dist/cjs/salla-wishlist-actions.cjs.entry.js +1 -1
  115. package/dist/cjs/salla-wishlist-summary.cjs.entry.js +2 -2
  116. package/dist/cjs/twilight.cjs.js +2 -2
  117. package/dist/cjs/{vanilla-picker-DP9Hy8IR.js → vanilla-picker-qYmOs8Yb.js} +1 -1
  118. package/dist/collection/components/salla-cart-summary-card/salla-cart-summary-card.css +152 -59
  119. package/dist/collection/components/salla-cart-summary-card/salla-cart-summary-card.js +123 -4
  120. package/dist/collection/components/salla-order-totals-card/salla-order-totals-card.css +3 -0
  121. package/dist/collection/components/salla-order-totals-card/salla-order-totals-card.js +25 -4
  122. package/dist/components/index.js +2 -2
  123. package/dist/components/info.js +11 -0
  124. package/dist/components/salla-bottom-alert.js +2 -8
  125. package/dist/components/salla-cart-summary-card.js +124 -5
  126. package/dist/components/salla-order-totals-card.js +26 -5
  127. package/dist/docs.json +3 -3
  128. package/dist/esm/{Helper-DmnUAusv.js → Helper-DE5KHY4U.js} +1 -1
  129. package/dist/esm/{filepond-DZbzdjkK.js → filepond-DbayHaoA.js} +1 -1
  130. package/dist/esm/{filepond-plugin-file-poster-D9cjvoj-.js → filepond-plugin-file-poster-Dy8NIhDv.js} +1 -1
  131. package/dist/esm/{filepond-plugin-file-validate-size-D-kjllC-.js → filepond-plugin-file-validate-size-Bn4zxXDf.js} +1 -1
  132. package/dist/esm/{filepond-plugin-file-validate-type-D9hsNaJl.js → filepond-plugin-file-validate-type-DmygkxtH.js} +1 -1
  133. package/dist/esm/{filepond-plugin-image-edit-CDHAxJY8.js → filepond-plugin-image-edit-BuO-l19h.js} +1 -1
  134. package/dist/esm/{filepond-plugin-image-exif-orientation-BGKiclwK.js → filepond-plugin-image-exif-orientation-COCmniWP.js} +1 -1
  135. package/dist/esm/{filepond-plugin-image-preview-BUjvnt8G.js → filepond-plugin-image-preview-D1i9Fj6F.js} +1 -1
  136. package/dist/esm/{index-ze9e0dxM.js → index-DvJClBwJ.js} +6 -6
  137. package/dist/esm/info-OdOOjQZO.js +11 -0
  138. package/dist/esm/{intlTelInput-BkYRB6km.js → intlTelInput-WsfvuLBW.js} +1 -1
  139. package/dist/esm/loader.js +3 -3
  140. package/dist/esm/salla-accordion-body_2.entry.js +1 -1
  141. package/dist/esm/salla-accordion_6.entry.js +2 -2
  142. package/dist/esm/salla-add-product-button_5.entry.js +2 -2
  143. package/dist/esm/salla-advertisement.entry.js +1 -1
  144. package/dist/esm/salla-alert_2.entry.js +3 -9
  145. package/dist/esm/salla-app-install-alert.entry.js +1 -1
  146. package/dist/esm/salla-applied-filters.entry.js +2 -2
  147. package/dist/esm/salla-apps-icons.entry.js +1 -1
  148. package/dist/esm/salla-attachment-view_9.entry.js +11 -11
  149. package/dist/esm/salla-badge.entry.js +1 -1
  150. package/dist/esm/salla-basket-gap.entry.js +1 -1
  151. package/dist/esm/salla-bullet-delivery_3.entry.js +1 -1
  152. package/dist/esm/salla-cart-coupons.entry.js +1 -1
  153. package/dist/esm/salla-cart-item-offers_2.entry.js +1 -1
  154. package/dist/esm/salla-cart-summary-card.entry.js +120 -5
  155. package/dist/esm/salla-cashback-banner.entry.js +1 -1
  156. package/dist/esm/salla-comment-factors.entry.js +1 -1
  157. package/dist/esm/salla-comment-form_9.entry.js +2 -2
  158. package/dist/esm/salla-conditional-offer.entry.js +1 -1
  159. package/dist/esm/salla-contacts.entry.js +1 -1
  160. package/dist/esm/salla-cookies-bar.entry.js +1 -1
  161. package/dist/esm/salla-count-down.entry.js +1 -1
  162. package/dist/esm/salla-custom-fields.entry.js +1 -1
  163. package/dist/esm/salla-delivery-promise.entry.js +1 -1
  164. package/dist/esm/salla-edit-order-button.entry.js +1 -1
  165. package/dist/esm/salla-filters-widget.entry.js +2 -2
  166. package/dist/esm/salla-filters.entry.js +2 -2
  167. package/dist/esm/salla-free-shipping-banner.entry.js +1 -1
  168. package/dist/esm/salla-free-shipping-tag.entry.js +1 -1
  169. package/dist/esm/salla-fulfillment-methods.entry.js +1 -1
  170. package/dist/esm/salla-gift-card-redeem_2.entry.js +1 -1
  171. package/dist/esm/salla-gifting.entry.js +1 -1
  172. package/dist/esm/salla-hook.entry.js +1 -1
  173. package/dist/esm/salla-infinite-scroll.entry.js +2 -2
  174. package/dist/esm/salla-installment.entry.js +1 -1
  175. package/dist/esm/salla-list-tile.entry.js +1 -1
  176. package/dist/esm/salla-localization-modal.entry.js +1 -1
  177. package/dist/esm/salla-login-modal.entry.js +1 -1
  178. package/dist/esm/salla-loyalty-banner_10.entry.js +1 -1
  179. package/dist/esm/salla-loyalty-exchange-product-card.entry.js +1 -1
  180. package/dist/esm/salla-loyalty-points-banner.entry.js +1 -1
  181. package/dist/esm/salla-loyalty-points-history.entry.js +1 -1
  182. package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
  183. package/dist/esm/salla-loyalty.entry.js +1 -1
  184. package/dist/esm/salla-maintenance-alert.entry.js +1 -1
  185. package/dist/esm/salla-map_3.entry.js +1 -1
  186. package/dist/esm/salla-menu.entry.js +1 -1
  187. package/dist/esm/salla-metadata.entry.js +1 -1
  188. package/dist/esm/salla-mobile-update-modal.entry.js +1 -1
  189. package/dist/esm/salla-multiple-bundle-product-cart_2.entry.js +1 -1
  190. package/dist/esm/salla-multiple-bundle-product-options-modal_2.entry.js +1 -1
  191. package/dist/esm/salla-multiple-bundle-product.entry.js +1 -1
  192. package/dist/esm/salla-next-order-coupon.entry.js +1 -1
  193. package/dist/esm/salla-notification-item_2.entry.js +2 -2
  194. package/dist/esm/salla-offer-modal.entry.js +1 -1
  195. package/dist/esm/salla-offer.entry.js +1 -1
  196. package/dist/esm/salla-order-branch.entry.js +1 -1
  197. package/dist/esm/salla-order-cancel.entry.js +1 -1
  198. package/dist/esm/salla-order-details-multiple-bundle-product.entry.js +1 -1
  199. package/dist/esm/salla-order-details-options.entry.js +1 -1
  200. package/dist/esm/salla-order-details.entry.js +1 -1
  201. package/dist/esm/salla-order-edit-item.entry.js +1 -1
  202. package/dist/esm/salla-order-edit-product-card.entry.js +1 -1
  203. package/dist/esm/salla-order-edit.entry.js +1 -1
  204. package/dist/esm/salla-order-items.entry.js +1 -1
  205. package/dist/esm/salla-order-options-modal.entry.js +1 -1
  206. package/dist/esm/salla-order-payment.entry.js +1 -1
  207. package/dist/esm/salla-order-rewards.entry.js +1 -1
  208. package/dist/esm/salla-order-shipments.entry.js +1 -1
  209. package/dist/esm/salla-order-summary.entry.js +1 -1
  210. package/dist/esm/salla-order-totals-card.entry.js +27 -6
  211. package/dist/esm/salla-orders.entry.js +2 -2
  212. package/dist/esm/salla-payments.entry.js +1 -1
  213. package/dist/esm/salla-placeholder.entry.js +1 -1
  214. package/dist/esm/salla-price-range.entry.js +1 -1
  215. package/dist/esm/salla-product-card-embed.entry.js +1 -1
  216. package/dist/esm/salla-product-card.entry.js +1 -1
  217. package/dist/esm/salla-product-size-guide.entry.js +1 -1
  218. package/dist/esm/salla-products-list.entry.js +2 -2
  219. package/dist/esm/salla-products-slider.entry.js +2 -2
  220. package/dist/esm/salla-quick-order.entry.js +1 -1
  221. package/dist/esm/salla-rating-modal-v2.entry.js +2 -2
  222. package/dist/esm/salla-rating-modal.entry.js +2 -2
  223. package/dist/esm/salla-review-factors-tags.entry.js +1 -1
  224. package/dist/esm/salla-review-order-item.entry.js +1 -1
  225. package/dist/esm/salla-scopes.entry.js +1 -1
  226. package/dist/esm/salla-search-product-card.entry.js +1 -1
  227. package/dist/esm/salla-search.entry.js +2 -2
  228. package/dist/esm/salla-skeleton.entry.js +1 -1
  229. package/dist/esm/salla-social-share.entry.js +1 -1
  230. package/dist/esm/salla-social.entry.js +1 -1
  231. package/dist/esm/salla-tab-content_3.entry.js +1 -1
  232. package/dist/esm/salla-thank-you-header.entry.js +1 -1
  233. package/dist/esm/salla-thank-you-page.entry.js +1 -1
  234. package/dist/esm/salla-tiered-offer.entry.js +1 -1
  235. package/dist/esm/salla-trust-badges.entry.js +1 -1
  236. package/dist/esm/salla-user-menu.entry.js +1 -1
  237. package/dist/esm/salla-user-profile.entry.js +1 -1
  238. package/dist/esm/salla-user-settings.entry.js +1 -1
  239. package/dist/esm/salla-verify.entry.js +1 -1
  240. package/dist/esm/salla-wallet.entry.js +1 -1
  241. package/dist/esm/salla-wishlist-actions.entry.js +1 -1
  242. package/dist/esm/salla-wishlist-summary.entry.js +2 -2
  243. package/dist/esm/twilight.js +3 -3
  244. package/dist/esm/{vanilla-picker-CxhuwWDi.js → vanilla-picker-DdilrJ6c.js} +1 -1
  245. package/dist/twilight/{p-bd06c200.entry.js → p-00c35c9f.entry.js} +1 -1
  246. package/dist/twilight/{p-67cf7454.entry.js → p-00f9aefc.entry.js} +1 -1
  247. package/dist/twilight/{p-da60995f.entry.js → p-029f809b.entry.js} +1 -1
  248. package/dist/twilight/{p-dceb3725.entry.js → p-02a06dcb.entry.js} +1 -1
  249. package/dist/twilight/{p-3ec3e9fb.entry.js → p-03dc3837.entry.js} +1 -1
  250. package/dist/twilight/{p-024ecda2.entry.js → p-054f32c4.entry.js} +1 -1
  251. package/dist/twilight/{p-78c04993.entry.js → p-069df650.entry.js} +1 -1
  252. package/dist/twilight/p-0a1a172d.entry.js +4 -0
  253. package/dist/twilight/{p-de10d0c3.entry.js → p-0ac5f79f.entry.js} +1 -1
  254. package/dist/twilight/{p-331003bc.entry.js → p-0c1bbd55.entry.js} +1 -1
  255. package/dist/twilight/{p-d89328d7.entry.js → p-0c4e99b4.entry.js} +1 -1
  256. package/dist/twilight/{p-fb955257.entry.js → p-0c65d35a.entry.js} +1 -1
  257. package/dist/twilight/{p-b297fe2e.entry.js → p-0d357ae2.entry.js} +1 -1
  258. package/dist/twilight/{p-11eb8675.entry.js → p-0ded0dc1.entry.js} +1 -1
  259. package/dist/twilight/p-13309e4e.entry.js +4 -0
  260. package/dist/twilight/{p-bf5b5f52.entry.js → p-16d49b35.entry.js} +1 -1
  261. package/dist/twilight/{p-f9dd6b3e.entry.js → p-19896b94.entry.js} +1 -1
  262. package/dist/twilight/{p-dbb4db25.entry.js → p-1b6b5a3c.entry.js} +1 -1
  263. package/dist/twilight/{p-d2396143.entry.js → p-1ce1b6dc.entry.js} +1 -1
  264. package/dist/twilight/{p-3a2ff4d6.entry.js → p-1d1bef93.entry.js} +1 -1
  265. package/dist/twilight/{p-4cf81a44.entry.js → p-1fce7e50.entry.js} +1 -1
  266. package/dist/twilight/{p-c122e9c1.entry.js → p-1ff27daa.entry.js} +1 -1
  267. package/dist/twilight/{p-97c5b11d.entry.js → p-22db0366.entry.js} +1 -1
  268. package/dist/twilight/p-24abaa09.entry.js +4 -0
  269. package/dist/twilight/{p-37b64e36.entry.js → p-29349910.entry.js} +1 -1
  270. package/dist/twilight/{p-d300a117.entry.js → p-29e3685e.entry.js} +1 -1
  271. package/dist/twilight/{p-71ce8e4f.entry.js → p-301a42aa.entry.js} +1 -1
  272. package/dist/twilight/{p-e849f5ef.entry.js → p-30919203.entry.js} +1 -1
  273. package/dist/twilight/{p-4c191ab4.entry.js → p-309edef2.entry.js} +1 -1
  274. package/dist/twilight/{p-7731e280.entry.js → p-3356b015.entry.js} +1 -1
  275. package/dist/twilight/{p-8d3c5d1f.entry.js → p-366403da.entry.js} +1 -1
  276. package/dist/twilight/{p-446e3f38.entry.js → p-36ee91e5.entry.js} +1 -1
  277. package/dist/twilight/{p-ed96c703.entry.js → p-388e49fe.entry.js} +1 -1
  278. package/dist/twilight/p-3a5604b1.entry.js +4 -0
  279. package/dist/twilight/{p-2dcd24fe.entry.js → p-3eae2216.entry.js} +1 -1
  280. package/dist/twilight/{p-5ceda3d5.entry.js → p-41b57414.entry.js} +1 -1
  281. package/dist/twilight/{p-776f9492.entry.js → p-43eb35a7.entry.js} +1 -1
  282. package/dist/twilight/{p-0c022fbd.entry.js → p-44621e3a.entry.js} +1 -1
  283. package/dist/twilight/{p-ffc7f526.entry.js → p-450cdcc4.entry.js} +1 -1
  284. package/dist/twilight/{p-5d8937c5.entry.js → p-46ae40a3.entry.js} +1 -1
  285. package/dist/twilight/{p-6d6b99fe.entry.js → p-4d5abe91.entry.js} +1 -1
  286. package/dist/twilight/{p-519cf4c2.entry.js → p-4e9c9419.entry.js} +1 -1
  287. package/dist/twilight/{p-5f9d87ec.entry.js → p-50898992.entry.js} +1 -1
  288. package/dist/twilight/{p-8b0b6bca.entry.js → p-52011986.entry.js} +1 -1
  289. package/dist/twilight/{p-cbd056ba.entry.js → p-52e24b0f.entry.js} +1 -1
  290. package/dist/twilight/{p-b6098938.entry.js → p-536a1841.entry.js} +1 -1
  291. package/dist/twilight/{p-47c79c49.entry.js → p-5865e825.entry.js} +1 -1
  292. package/dist/twilight/{p-20949dfb.entry.js → p-591694a7.entry.js} +1 -1
  293. package/dist/twilight/{p-474d882c.entry.js → p-60cd3462.entry.js} +1 -1
  294. package/dist/twilight/{p-9acfe389.entry.js → p-628ef86c.entry.js} +1 -1
  295. package/dist/twilight/{p-dfde387f.entry.js → p-630cce26.entry.js} +1 -1
  296. package/dist/twilight/{p-a7566af2.entry.js → p-6569bfee.entry.js} +1 -1
  297. package/dist/twilight/{p-57fafaba.entry.js → p-66f02fad.entry.js} +1 -1
  298. package/dist/twilight/{p-cdeaf60b.entry.js → p-6936e0a4.entry.js} +1 -1
  299. package/dist/twilight/{p-7fffa509.entry.js → p-6c5bd5ad.entry.js} +1 -1
  300. package/dist/twilight/{p-93571975.entry.js → p-6d0ad265.entry.js} +1 -1
  301. package/dist/twilight/{p-9fe5c0f5.entry.js → p-6e79128e.entry.js} +1 -1
  302. package/dist/twilight/{p-07e581af.entry.js → p-6ff4df6b.entry.js} +1 -1
  303. package/dist/twilight/{p-bb137dbb.entry.js → p-73f1697f.entry.js} +1 -1
  304. package/dist/twilight/{p-008740fe.entry.js → p-741cc4a4.entry.js} +1 -1
  305. package/dist/twilight/{p-c6f09614.entry.js → p-74e3b033.entry.js} +1 -1
  306. package/dist/twilight/{p-02b7dfcc.entry.js → p-7e421e8a.entry.js} +1 -1
  307. package/dist/twilight/{p-08be494e.entry.js → p-8056b437.entry.js} +1 -1
  308. package/dist/twilight/{p-89598ad3.entry.js → p-84b35a50.entry.js} +1 -1
  309. package/dist/twilight/{p-2aa9147c.entry.js → p-85bf4c43.entry.js} +1 -1
  310. package/dist/twilight/{p-0fd15433.entry.js → p-85e43124.entry.js} +1 -1
  311. package/dist/twilight/{p-1ca39f1c.entry.js → p-8a614038.entry.js} +1 -1
  312. package/dist/twilight/{p-BjUh9YCs.js → p-8iHhuUVM.js} +1 -1
  313. package/dist/twilight/{p-455a4702.entry.js → p-93439ac4.entry.js} +1 -1
  314. package/dist/twilight/{p-cb961f05.entry.js → p-963eb26d.entry.js} +1 -1
  315. package/dist/twilight/{p-bf65d2fa.entry.js → p-989e3cd6.entry.js} +1 -1
  316. package/dist/twilight/{p-4ec15515.entry.js → p-98cf67a5.entry.js} +1 -1
  317. package/dist/twilight/{p-16e2a110.entry.js → p-9ec3124c.entry.js} +1 -1
  318. package/dist/twilight/{p-9dd7cf71.entry.js → p-9ed41657.entry.js} +1 -1
  319. package/dist/twilight/{p-CICtuB_u.js → p-B1r6DqQZ.js} +1 -1
  320. package/dist/twilight/{p-DOUAavek.js → p-B8bJ6Bp4.js} +1 -1
  321. package/dist/twilight/{p-BpJsOjKP.js → p-BAfdlulm.js} +1 -1
  322. package/dist/twilight/{p-cykIAOlk.js → p-BHVWJBhN.js} +1 -1
  323. package/dist/twilight/{p-BlPdaFn2.js → p-BddjrRgx.js} +1 -1
  324. package/dist/twilight/{p-wYYV5ykR.js → p-CeKF1bL-.js} +1 -1
  325. package/dist/twilight/{p-ze9e0dxM.js → p-DvJClBwJ.js} +1 -1
  326. package/dist/twilight/{p-B8nGVDvQ.js → p-FYANWJHV.js} +1 -1
  327. package/dist/twilight/p-OdOOjQZO.js +4 -0
  328. package/dist/twilight/{p-C9ldyQUq.js → p-UebnA4Q1.js} +1 -1
  329. package/dist/twilight/{p-830abcc1.entry.js → p-a460c4be.entry.js} +1 -1
  330. package/dist/twilight/{p-792494c8.entry.js → p-a7297a33.entry.js} +1 -1
  331. package/dist/twilight/{p-f23ada45.entry.js → p-ac4b8722.entry.js} +1 -1
  332. package/dist/twilight/{p-5b118b5b.entry.js → p-accfd79c.entry.js} +1 -1
  333. package/dist/twilight/{p-e23b84bf.entry.js → p-adfdfe9d.entry.js} +1 -1
  334. package/dist/twilight/{p-73649c81.entry.js → p-ae1c28e0.entry.js} +1 -1
  335. package/dist/twilight/{p-f7c06bee.entry.js → p-b06cad39.entry.js} +1 -1
  336. package/dist/twilight/{p-59694c45.entry.js → p-b47ffe8e.entry.js} +1 -1
  337. package/dist/twilight/{p-75ad7f14.entry.js → p-be357093.entry.js} +1 -1
  338. package/dist/twilight/{p-8077d8b6.entry.js → p-c1b6d4ba.entry.js} +1 -1
  339. package/dist/twilight/{p-5e0f85ae.entry.js → p-c9e04a12.entry.js} +1 -1
  340. package/dist/twilight/{p-b71673ee.entry.js → p-ca20c66e.entry.js} +1 -1
  341. package/dist/twilight/{p-97fa91db.entry.js → p-cc84061b.entry.js} +1 -1
  342. package/dist/twilight/{p-d089ac6d.entry.js → p-cefd664d.entry.js} +1 -1
  343. package/dist/twilight/{p-a7849674.entry.js → p-d1fac437.entry.js} +1 -1
  344. package/dist/twilight/{p-7a985fe3.entry.js → p-d6015b0c.entry.js} +1 -1
  345. package/dist/twilight/{p-a865995d.entry.js → p-d6728c04.entry.js} +1 -1
  346. package/dist/twilight/{p-e3dd9502.entry.js → p-d7537ab1.entry.js} +1 -1
  347. package/dist/twilight/{p-9a2567e2.entry.js → p-d81a6a32.entry.js} +1 -1
  348. package/dist/twilight/{p-12a52f1b.entry.js → p-d8856c7b.entry.js} +1 -1
  349. package/dist/twilight/{p-45a7d444.entry.js → p-da3c7ee3.entry.js} +1 -1
  350. package/dist/twilight/{p-75f7f1d8.entry.js → p-e276cb82.entry.js} +1 -1
  351. package/dist/twilight/{p-c0301e00.entry.js → p-e73bc00f.entry.js} +1 -1
  352. package/dist/twilight/{p-03b2df97.entry.js → p-e785df2d.entry.js} +1 -1
  353. package/dist/twilight/{p-da0349f9.entry.js → p-e81d544a.entry.js} +1 -1
  354. package/dist/twilight/{p-7790a9a1.entry.js → p-e8414134.entry.js} +1 -1
  355. package/dist/twilight/{p-d61298f8.entry.js → p-ea0de552.entry.js} +1 -1
  356. package/dist/twilight/{p-a1a650ab.entry.js → p-ea58a665.entry.js} +1 -1
  357. package/dist/twilight/{p-770142fe.entry.js → p-f6b86d47.entry.js} +1 -1
  358. package/dist/twilight/{p-f054cf8e.entry.js → p-fbd7def8.entry.js} +1 -1
  359. package/dist/twilight/{p-CNQaYCUJ.js → p-zPvqMpJX.js} +1 -1
  360. package/dist/twilight/twilight.esm.js +1 -1
  361. package/dist/types/components/salla-cart-summary-card/salla-cart-summary-card.d.ts +26 -0
  362. package/dist/types/components/salla-order-totals-card/interfaces.d.ts +8 -3
  363. package/dist/types/components/salla-order-totals-card/salla-order-totals-card.d.ts +2 -1
  364. package/package.json +5 -5
  365. package/dist/twilight/p-0c0b2b36.entry.js +0 -4
  366. package/dist/twilight/p-61b98119.entry.js +0 -4
  367. package/dist/twilight/p-8d096f95.entry.js +0 -4
  368. package/dist/twilight/p-be8c42f1.entry.js +0 -4
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{r as e,h as r,H as i,a as o}from"./p-ze9e0dxM.js";import{r as t,b as s}from"./p-q5NJ0uS-.js";import"./p-BVaKfTMx.js";function l(e,r){localStorage.getItem("salla-delivery-promise-debug")&&(void 0!==r?console.log(e,r):console.log(e))}async function a(e,r){l("fetchCities start",{productId:e,keyword:r});const i=null!=r?`?keyword=${encodeURIComponent(r)}`:"",o=await salla.api.request(salla.url.api(`products/${e}/delivery-promises/cities${i}`));return o.success&&Array.isArray(o.data)&&0!==o.data.length?(l("fetchCities success",{count:o.data.length}),{cities:o.data}):(l("fetchCities: no data",{response:o}),{cities:[]})}const d={deliveryTo:"توصيل إلى",pickupFromBranch:"الاستلام من فرع",noResults:"لا توجد نتائج",selectCity:"اختر المدينة",changeCityTitle:"تغيير المدينة",changeCitySubtitle:"",cityFieldLabel:"المدينة",modalSearchPlaceholder:"ابحث عن مدينة",confirmAddress:"تأكيد العنوان",errorDeliveryPromise:"لا يتوفر وعد تسليم لهذه المدينة",errorPickupPromise:"لا يتوفر وعد تسليم لهذا الفرع"},n="salla-bullet-delivery-override-ip",c=class{constructor(r){e(this,r),this.isDeliveryPromiseEnabled=!1,this.isLoginCycleEnabled=!1,this.canRender=!1,this.labels=d,this.selectedLabel=null,this.deliveryMessage=null,this.hasError=!1,this.errorMessage="",this.isLoadingPromises=!1,this.selectedCityLoginCycle=null,this.selectedBranchLoginCycle=null,this.cities=[],this.selectedCity=null,this.isLoadingCities=!1,this.cityPendingSelection=null,this.modalCities=[],this.isSearchingCities=!1,this.citySearchCounter=0,this.onBulletDeliveryConfirmed=()=>{this.applyBulletIntent()},this.handleCitySearch=e=>{if(clearTimeout(this.citySearchTimer),!e.trim())return this.modalCities=[...this.cities],void(this.isSearchingCities=!1);this.citySearchTimer=setTimeout((()=>this.searchCitiesRemote(e)),300)},this.handleHeaderClick=e=>{e.stopPropagation(),this.isLoginCycleEnabled?this.openBulletDeliveryModal():this.openCityChangeModal()}}async componentDidLoad(){await salla.onReady(),await salla.lang.onLoaded(),this.labels={deliveryTo:salla.lang.getWithDefault("pages.products.promise_deliver_to",d.deliveryTo),pickupFromBranch:salla.lang.getWithDefault("pages.products.promise_pickup_from_branch",d.pickupFromBranch),noResults:salla.lang.getWithDefault("common.elements.no_options",d.noResults),selectCity:salla.lang.getWithDefault("common.elements.select_city",d.selectCity),changeCityTitle:salla.lang.getWithDefault("pages.products.promise_change_city_title",d.changeCityTitle),changeCitySubtitle:salla.lang.getWithDefault("pages.products.promise_change_city_subtitle","قد تتغيّر مدة التوصيل حسب المدينة."),cityFieldLabel:salla.lang.getWithDefault("pages.products.promise_city_field",d.cityFieldLabel),modalSearchPlaceholder:salla.lang.getWithDefault("pages.products.promise_search_city",d.modalSearchPlaceholder),confirmAddress:salla.lang.getWithDefault("pages.checkout.confirm_address",d.confirmAddress),errorDeliveryPromise:salla.lang.getWithDefault("pages.products.promise_delivery_not_available",d.errorDeliveryPromise),errorPickupPromise:salla.lang.getWithDefault("pages.products.promise_pickup_not_available",d.errorPickupPromise)},this.isDeliveryPromiseEnabled=salla.config.get("store.features",[]).includes("delivery-promises"),this.isLoginCycleEnabled=salla.config.get("store.features",[]).includes("bullet-delivery-v2")&&Salla.config.get("store.settings.bullet_delivery.enabled"),this.productId=salla.config.get("page.id"),this.isDeliveryPromiseEnabled?this.isLoginCycleEnabled?await this.initLoginCycleFlow():(this.selectedLabel=`${this.labels.deliveryTo} ${this.labels.selectCity}`,await this.loadCities()):this.canRender=!1}disconnectedCallback(){window.removeEventListener("bulletDeliveryConfirmed",this.onBulletDeliveryConfirmed)}getIPDeliveryLocation(){const e="store.shipping.delivery_location",r={cityId:salla.config.get(`${e}.city_id`),cityName:salla.config.get(`${e}.city_name`)};return localStorage.getItem(n)?JSON.parse(localStorage.getItem(n)):r}async initLoginCycleFlow(){const e=this.applyBulletIntent(),{cityId:r,cityName:i}=this.getIPDeliveryLocation();l("delivery promise login cycle flow getIPDeliveryLocation",this.getIPDeliveryLocation()),r&&i&&!e&&(this.selectedLabel=`${this.labels.deliveryTo} ${i}`,await this.loadDeliveryMessage(r,"city")),this.canRender=!0,window.addEventListener("bulletDeliveryConfirmed",this.onBulletDeliveryConfirmed)}applyBulletIntent(){const e=t();return e?("address"===e.type?(this.selectedCityLoginCycle=e.option,this.selectedBranchLoginCycle=null,this.selectedLabel=`${this.labels.deliveryTo} ${e.option.name||this.labels.selectCity}`,null!=e.option.id?this.loadDeliveryMessage(e.option.id,"city"):this.deliveryMessage=null):(this.selectedBranchLoginCycle=e.option,this.selectedCityLoginCycle=null,this.selectedLabel=`${this.labels.pickupFromBranch} ${e.option.name}`,this.loadDeliveryMessage(e.option.id,"branch")),!0):(this.selectedLabel=`${this.labels.deliveryTo} ${this.labels.selectCity}`,this.selectedCityLoginCycle=null,this.selectedBranchLoginCycle=null,this.deliveryMessage=null,!1)}openBulletDeliveryModal(){salla.event.emit("salla::bullet-delivery.modal.open.requested",s())}async loadCities(){this.isLoadingCities=!0,this.hasError=!1;const{cityId:e,cityName:r}=this.getIPDeliveryLocation();l("delivery promise standard flow getIPDeliveryLocation",this.getIPDeliveryLocation());try{const{cities:i}=await a(this.productId);if(!i.length)return void(this.canRender=!1);if(this.cities=i,this.canRender=!0,e&&r){this.selectedLabel=`${this.labels.deliveryTo} ${r}`;const i=this.cities.find((r=>String(r.id)===String(e)));i&&(l("delivery promise standard flow autoCity found",i),this.selectedCity=i),await this.loadDeliveryMessage(e,"city")}}catch(e){this.hasError=!0,this.errorMessage=e.message||"Failed to load cities",this.canRender=!1}finally{this.isLoadingCities=!1}}async loadDeliveryMessage(e,r){this.isLoadingPromises=!0,this.hasError=!1,this.deliveryMessage=null;try{this.deliveryMessage=await async function(e,r,i,o){l("fetchDeliveryMessage start",{productId:e,id:r,optionType:i});let t="";t="city"!==i||o?`?reference_id=${r}&reference_type=${i}`:`?reference_id=${r}`;const s=await salla.api.withoutNotifier((()=>salla.api.request(salla.url.api(`products/${e}/delivery-promises${t}`))));if(!s.success)return l("fetchDeliveryMessage error",{response:s}),null;const a=s.data?.message?.trim();return l("fetchDeliveryMessage success",{message:a}),a||null}(this.productId,e,r,this.isLoginCycleEnabled)}catch(i){l("loadDeliveryMessage failed",{id:e,optionType:r,error:i}),this.deliveryMessage=null}finally{this.isLoadingPromises=!1}}async openCityChangeModal(){this.cityModalRef&&(this.cityPendingSelection=null,this.modalCities=[...this.cities],await this.cityModalRef.setTitle(this.labels.changeCityTitle),await this.cityModalRef.open())}async searchCitiesRemote(e){const r=++this.citySearchCounter;this.isSearchingCities=!0;try{const{cities:i}=await a(this.productId,e);if(r!==this.citySearchCounter)return;this.modalCities=i}catch{if(r!==this.citySearchCounter)return;this.modalCities=[]}finally{r===this.citySearchCounter&&(this.isSearchingCities=!1)}}async handleConfirmCityModal(){if(!this.cityPendingSelection)return void await(this.cityModalRef?.close());const e=this.cityPendingSelection;this.selectedCity=e,this.selectedLabel=`${this.labels.deliveryTo} ${function(e){const r=salla.config.get("user.language_code");return r&&"ar"!==r&&e.name_en?.trim()?e.name_en.trim():e.name}(e)}`,await this.loadDeliveryMessage(e.id,"city"),await(this.cityModalRef?.close())}renderLoadingSkeleton(){return r(i,{class:"s-delivery-promise-wrapper s-delivery-promise-skeleton"},r("div",{class:"s-delivery-promise-container"},r("div",{class:"s-delivery-promise-header s-delivery-promise-header-skeleton"},r("div",{class:"s-delivery-promise-location"},r("salla-skeleton",{height:"14px",width:"180px"})),r("salla-skeleton",{height:"18px",width:"18px"})),r("div",{class:"s-delivery-promise-loading"},r("salla-skeleton",{height:"20px",width:"80%"}))))}renderDeliveryMessage(){return this.isLoadingPromises?r("div",{class:"s-delivery-promise-loading"},r("salla-skeleton",{height:"20px",width:"80%"})):this.deliveryMessage?r("div",{class:"s-delivery-promise-message"},this.deliveryMessage):null}renderCityModalBody(){return r("div",{class:"s-delivery-promise-modal-body"},r("salla-searchable-dropdown",{label:this.labels.cityFieldLabel,placeholder:this.labels.modalSearchPlaceholder,items:this.modalCities,selectedItem:this.cityPendingSelection,searching:this.isSearchingCities,required:!0,noResultsText:this.labels.noResults,inputId:"s-delivery-promise-modal-search",onItemSelected:e=>{this.cityPendingSelection=e.detail},onSearchInput:e=>{this.handleCitySearch(e.detail)}}))}renderCityChangeModal(){return this.isLoginCycleEnabled?null:r("salla-modal",{id:"s-delivery-promise-city-modal",ref:e=>{this.cityModalRef=e},class:"s-delivery-promise-city-modal",isClosable:!0,width:"md","modal-title":this.labels.changeCityTitle,subTitle:this.labels.changeCitySubtitle},this.renderCityModalBody(),r("salla-button",{slot:"footer",width:"wide",disabled:!this.cityPendingSelection,onClick:()=>this.handleConfirmCityModal()},!this.isLoadingPromises&&this.labels.confirmAddress))}render(){return this.isDeliveryPromiseEnabled?this.isLoadingCities?this.renderLoadingSkeleton():this.canRender?r(i,{class:"s-delivery-promise-wrapper"},r("div",{class:"s-delivery-promise-container"},r("div",{class:"s-delivery-promise-header",onClick:this.handleHeaderClick},r("div",{class:"s-delivery-promise-location"},r("span",{class:"s-delivery-promise-title"},this.selectedLabel)),r("i",{class:"sicon-keyboard_arrow_down s-delivery-promise-arrow"})),this.hasError&&r("div",{class:"s-delivery-promise-error"},this.errorMessage),!this.hasError&&this.renderDeliveryMessage()),this.renderCityChangeModal()):null:null}get host(){return o(this)}};c.style='/*!twlt*/@charset "UTF-8";:host{display:block}.s-delivery-promise-wrapper{font-family:inherit}.s-delivery-promise-container{position:relative;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:8px;padding:12px 16px;margin-bottom:12px}.s-delivery-promise-header{display:flex;align-items:center;cursor:pointer;padding:4px 0}.s-delivery-promise-skeleton .s-delivery-promise-header-skeleton{cursor:default;pointer-events:none}.s-delivery-promise-skeleton .s-delivery-promise-location salla-skeleton{display:block;flex-shrink:0}.s-delivery-promise-location{display:flex;align-items:center;gap:8px}.s-delivery-promise-title{color:var(--color-text-primary, #2b2d34);font-size:14px;font-weight:bold}.s-delivery-promise-arrow{color:var(--color-text-secondary, #666);font-size:18px;transition:transform 0.2s ease}.s-delivery-promise-arrow.open{transform:rotate(180deg)}.s-delivery-promise-city-modal{}.s-delivery-promise-city-modal .s-modal-title{color:var(--color-primary, #00897b);font-weight:700}.s-delivery-promise-city-modal .s-modal-sub-title{color:var(--color-text-secondary, #5c6c7c);font-size:14px;line-height:1.45}.s-delivery-promise-city-modal .s-modal-body{overflow:visible !important}.s-delivery-promise-city-modal .s-modal-body>salla-button{position:relative;z-index:0;margin-top:16px}.s-delivery-promise-modal-body{position:relative;z-index:10;display:flex;flex-direction:column;gap:12px;text-align:start;margin-bottom:16px}.s-delivery-promise-modal-combobox{position:relative;isolation:isolate}.s-delivery-promise-modal-field-label{display:block;font-size:14px;font-weight:500;color:var(--color-text-primary, #2b2d34)}.s-delivery-promise-required{color:var(--color-danger, #dc3545)}.s-delivery-promise-modal-search{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--color-border, #e5e7eb);border-radius:8px;background:var(--color-surface, #fff)}.s-delivery-promise-modal-search .sicon-search{flex-shrink:0;color:var(--color-text-secondary, #999);font-size:16px}.s-delivery-promise-modal-search input{flex:1;border:none;outline:none;font-size:14px;background:transparent;color:var(--color-text-primary, #333)}.s-delivery-promise-modal-search input::placeholder{color:var(--color-text-secondary, #999)}.s-delivery-promise-modal-popover{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1;border-radius:8px;border:1px solid var(--color-border, #e5e7eb);background:var(--color-surface, #fff);box-shadow:0 8px 24px rgba(0, 0, 0, 0.12);animation:s-delivery-promise-popover-in 0.2s ease}@keyframes s-delivery-promise-popover-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.s-delivery-promise-modal-list{max-height:min(40vh, 260px);overflow-y:auto;background:var(--color-surface, #fff)}.s-delivery-promise-modal-item{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;margin:0;border:none;border-bottom:1px solid var(--color-border, #eee);cursor:pointer;font:inherit;text-align:inherit;background:transparent;color:var(--color-text-primary, #2b2d34);transition:background 0.15s ease}.s-delivery-promise-modal-item:last-child{border-bottom:none}.s-delivery-promise-modal-item:hover{background:var(--color-hover, #f5f5f5)}.s-delivery-promise-modal-item--selected{background:var(--color-primary-light, rgba(0, 137, 123, 0.08))}.s-delivery-promise-modal-item--selected .s-delivery-promise-modal-item-name{color:var(--color-primary, #00897b);font-weight:600}.s-delivery-promise-modal-item .sicon-check{flex-shrink:0;color:var(--color-primary, #00897b);font-size:14px}.s-delivery-promise-modal-empty{padding:24px 16px;text-align:center;color:var(--color-text-secondary, #999);font-size:14px}.s-delivery-promise-message{margin-top:8px;font-size:13px;line-height:1.5;color:var(--color-text-secondary, #2b2d34)}.s-delivery-promise-loading{margin-top:12px;padding-top:12px}.s-delivery-promise-error{margin-top:12px;padding-top:12px;font-size:14px;color:var(--color-danger, #dc3545)}.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)}.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-delivery-promise-wrapper{display:block;font-family:inherit}.s-delivery-promise-container{position:relative;margin-bottom:0.75rem;border-radius:0.5rem;border-width:1px;border-color:var(--color-border,#e5e7eb);background-color:var(--color-surface,#fff);padding-left:1rem;padding-right:1rem;padding-top:0.75rem;padding-bottom:0.75rem}.s-delivery-promise-header{display:flex;cursor:pointer;align-items:center;padding-top:0.25rem;padding-bottom:0.25rem}.s-delivery-promise-skeleton .s-delivery-promise-header-skeleton{pointer-events:none;cursor:default}.s-delivery-promise-skeleton .s-delivery-promise-location salla-skeleton{display:block;flex-shrink:0}.s-delivery-promise-location{display:flex;align-items:center;gap:0.5rem}.s-delivery-promise-title{font-size:0.875rem;line-height:1.25rem;font-weight:700;color:var(--color-text-primary,#2b2d34)}.s-delivery-promise-arrow{font-size:1.125rem;line-height:1.75rem;color:var(--color-text-secondary,#666);transition-property:transform;transition-duration:200ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.s-delivery-promise-arrow.open{--tw-rotate:180deg;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))}.s-delivery-promise-message{margin-top:0.5rem;font-size:13px;line-height:1.5;color:var(--color-text-secondary,#2b2d34)}.s-delivery-promise-loading{margin-top:0.75rem;padding-top:0.75rem}.s-delivery-promise-error{margin-top:0.75rem;padding-top:0.75rem;font-size:0.875rem;line-height:1.25rem;color:var(--color-danger,#dc3545)}.s-delivery-promise-city-modal .s-modal-title{font-weight:700;color:var(--color-primary,#00897b)}.s-delivery-promise-city-modal .s-modal-sub-title{font-size:0.875rem;line-height:1.25rem;line-height:1.45;color:var(--color-text-secondary,#5c6c7c)}.s-delivery-promise-city-modal .s-modal-body{overflow:visible !important}.s-delivery-promise-city-modal .s-modal-body>salla-button{position:relative;z-index:0;margin-top:1rem}.s-delivery-promise-modal-body{position:relative;z-index:10;margin-bottom:1rem;display:flex;flex-direction:column;gap:0.75rem;text-align:start}.s-delivery-promise-modal-combobox{position:relative;isolation:isolate}.s-delivery-promise-modal-field-label{display:block;font-size:0.875rem;line-height:1.25rem;font-weight:500;color:var(--color-text-primary,#2b2d34)}.s-delivery-promise-modal-required{color:var(--color-danger,#dc3545)}.s-delivery-promise-modal-search{display:flex;align-items:center;gap:0.5rem;border-radius:0.5rem;border-width:1px;border-color:var(--color-border,#e5e7eb);background-color:var(--color-surface,#fff);padding-left:0.75rem;padding-right:0.75rem;padding-top:0.625rem;padding-bottom:0.625rem}.s-delivery-promise-modal-search .sicon-search{flex-shrink:0;font-size:1rem;line-height:1.5rem;color:var(--color-text-secondary,#999)}.s-delivery-promise-modal-search input{min-width:0px;flex:1 1 0%;border-width:0px;background-color:transparent;font-size:0.875rem;line-height:1.25rem;color:var(--color-text-primary,#333);outline:2px solid transparent;outline-offset:2px}.s-delivery-promise-modal-search input::placeholder{color:var(--color-text-secondary,#999)}.s-delivery-promise-modal-popover{position:absolute;left:0px;right:0px;top:calc(100% + 4px);z-index:1;border-radius:0.5rem;border-width:1px;border-color:var(--color-border,#e5e7eb);background-color:var(--color-surface,#fff);--tw-shadow:0 8px 24px rgba(0,0,0,0.12);--tw-shadow-colored:0 8px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.s-delivery-promise-modal-list{max-height:min(40vh, 260px);overflow-y:auto;background-color:var(--color-surface,#fff)}.s-delivery-promise-modal-item{margin:0px;display:flex;width:100%;cursor:pointer;align-items:center;justify-content:space-between;gap:0.5rem;border-width:0px;border-bottom-width:1px;border-color:var(--color-border,#eee);background-color:transparent;padding-left:1rem;padding-right:1rem;padding-top:0.75rem;padding-bottom:0.75rem;text-align:start;color:var(--color-text-primary,#2b2d34);transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-duration:150ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.s-delivery-promise-modal-item:last-child{border-bottom-width:0px}.s-delivery-promise-modal-item--selected{background-color:var(--color-primary-light,rgba(0,137,123,0.08))}.s-delivery-promise-modal-item--selected .s-delivery-promise-modal-item-name{font-weight:600;color:var(--color-primary,#00897b)}.s-delivery-promise-modal-item .sicon-check{flex-shrink:0;font-size:0.875rem;line-height:1.25rem;color:var(--color-primary,#00897b)}.s-delivery-promise-modal-empty{padding-left:1rem;padding-right:1rem;padding-top:1.5rem;padding-bottom:1.5rem;text-align:center;font-size:0.875rem;line-height:1.25rem;color:var(--color-text-secondary,#999)}';export{c as salla_delivery_promise}
4
+ import{r as e,h as r,H as i,a as o}from"./p-DvJClBwJ.js";import{r as t,b as s}from"./p-q5NJ0uS-.js";import"./p-BVaKfTMx.js";function l(e,r){localStorage.getItem("salla-delivery-promise-debug")&&(void 0!==r?console.log(e,r):console.log(e))}async function a(e,r){l("fetchCities start",{productId:e,keyword:r});const i=null!=r?`?keyword=${encodeURIComponent(r)}`:"",o=await salla.api.request(salla.url.api(`products/${e}/delivery-promises/cities${i}`));return o.success&&Array.isArray(o.data)&&0!==o.data.length?(l("fetchCities success",{count:o.data.length}),{cities:o.data}):(l("fetchCities: no data",{response:o}),{cities:[]})}const d={deliveryTo:"توصيل إلى",pickupFromBranch:"الاستلام من فرع",noResults:"لا توجد نتائج",selectCity:"اختر المدينة",changeCityTitle:"تغيير المدينة",changeCitySubtitle:"",cityFieldLabel:"المدينة",modalSearchPlaceholder:"ابحث عن مدينة",confirmAddress:"تأكيد العنوان",errorDeliveryPromise:"لا يتوفر وعد تسليم لهذه المدينة",errorPickupPromise:"لا يتوفر وعد تسليم لهذا الفرع"},n="salla-bullet-delivery-override-ip",c=class{constructor(r){e(this,r),this.isDeliveryPromiseEnabled=!1,this.isLoginCycleEnabled=!1,this.canRender=!1,this.labels=d,this.selectedLabel=null,this.deliveryMessage=null,this.hasError=!1,this.errorMessage="",this.isLoadingPromises=!1,this.selectedCityLoginCycle=null,this.selectedBranchLoginCycle=null,this.cities=[],this.selectedCity=null,this.isLoadingCities=!1,this.cityPendingSelection=null,this.modalCities=[],this.isSearchingCities=!1,this.citySearchCounter=0,this.onBulletDeliveryConfirmed=()=>{this.applyBulletIntent()},this.handleCitySearch=e=>{if(clearTimeout(this.citySearchTimer),!e.trim())return this.modalCities=[...this.cities],void(this.isSearchingCities=!1);this.citySearchTimer=setTimeout((()=>this.searchCitiesRemote(e)),300)},this.handleHeaderClick=e=>{e.stopPropagation(),this.isLoginCycleEnabled?this.openBulletDeliveryModal():this.openCityChangeModal()}}async componentDidLoad(){await salla.onReady(),await salla.lang.onLoaded(),this.labels={deliveryTo:salla.lang.getWithDefault("pages.products.promise_deliver_to",d.deliveryTo),pickupFromBranch:salla.lang.getWithDefault("pages.products.promise_pickup_from_branch",d.pickupFromBranch),noResults:salla.lang.getWithDefault("common.elements.no_options",d.noResults),selectCity:salla.lang.getWithDefault("common.elements.select_city",d.selectCity),changeCityTitle:salla.lang.getWithDefault("pages.products.promise_change_city_title",d.changeCityTitle),changeCitySubtitle:salla.lang.getWithDefault("pages.products.promise_change_city_subtitle","قد تتغيّر مدة التوصيل حسب المدينة."),cityFieldLabel:salla.lang.getWithDefault("pages.products.promise_city_field",d.cityFieldLabel),modalSearchPlaceholder:salla.lang.getWithDefault("pages.products.promise_search_city",d.modalSearchPlaceholder),confirmAddress:salla.lang.getWithDefault("pages.checkout.confirm_address",d.confirmAddress),errorDeliveryPromise:salla.lang.getWithDefault("pages.products.promise_delivery_not_available",d.errorDeliveryPromise),errorPickupPromise:salla.lang.getWithDefault("pages.products.promise_pickup_not_available",d.errorPickupPromise)},this.isDeliveryPromiseEnabled=salla.config.get("store.features",[]).includes("delivery-promises"),this.isLoginCycleEnabled=salla.config.get("store.features",[]).includes("bullet-delivery-v2")&&Salla.config.get("store.settings.bullet_delivery.enabled"),this.productId=salla.config.get("page.id"),this.isDeliveryPromiseEnabled?this.isLoginCycleEnabled?await this.initLoginCycleFlow():(this.selectedLabel=`${this.labels.deliveryTo} ${this.labels.selectCity}`,await this.loadCities()):this.canRender=!1}disconnectedCallback(){window.removeEventListener("bulletDeliveryConfirmed",this.onBulletDeliveryConfirmed)}getIPDeliveryLocation(){const e="store.shipping.delivery_location",r={cityId:salla.config.get(`${e}.city_id`),cityName:salla.config.get(`${e}.city_name`)};return localStorage.getItem(n)?JSON.parse(localStorage.getItem(n)):r}async initLoginCycleFlow(){const e=this.applyBulletIntent(),{cityId:r,cityName:i}=this.getIPDeliveryLocation();l("delivery promise login cycle flow getIPDeliveryLocation",this.getIPDeliveryLocation()),r&&i&&!e&&(this.selectedLabel=`${this.labels.deliveryTo} ${i}`,await this.loadDeliveryMessage(r,"city")),this.canRender=!0,window.addEventListener("bulletDeliveryConfirmed",this.onBulletDeliveryConfirmed)}applyBulletIntent(){const e=t();return e?("address"===e.type?(this.selectedCityLoginCycle=e.option,this.selectedBranchLoginCycle=null,this.selectedLabel=`${this.labels.deliveryTo} ${e.option.name||this.labels.selectCity}`,null!=e.option.id?this.loadDeliveryMessage(e.option.id,"city"):this.deliveryMessage=null):(this.selectedBranchLoginCycle=e.option,this.selectedCityLoginCycle=null,this.selectedLabel=`${this.labels.pickupFromBranch} ${e.option.name}`,this.loadDeliveryMessage(e.option.id,"branch")),!0):(this.selectedLabel=`${this.labels.deliveryTo} ${this.labels.selectCity}`,this.selectedCityLoginCycle=null,this.selectedBranchLoginCycle=null,this.deliveryMessage=null,!1)}openBulletDeliveryModal(){salla.event.emit("salla::bullet-delivery.modal.open.requested",s())}async loadCities(){this.isLoadingCities=!0,this.hasError=!1;const{cityId:e,cityName:r}=this.getIPDeliveryLocation();l("delivery promise standard flow getIPDeliveryLocation",this.getIPDeliveryLocation());try{const{cities:i}=await a(this.productId);if(!i.length)return void(this.canRender=!1);if(this.cities=i,this.canRender=!0,e&&r){this.selectedLabel=`${this.labels.deliveryTo} ${r}`;const i=this.cities.find((r=>String(r.id)===String(e)));i&&(l("delivery promise standard flow autoCity found",i),this.selectedCity=i),await this.loadDeliveryMessage(e,"city")}}catch(e){this.hasError=!0,this.errorMessage=e.message||"Failed to load cities",this.canRender=!1}finally{this.isLoadingCities=!1}}async loadDeliveryMessage(e,r){this.isLoadingPromises=!0,this.hasError=!1,this.deliveryMessage=null;try{this.deliveryMessage=await async function(e,r,i,o){l("fetchDeliveryMessage start",{productId:e,id:r,optionType:i});let t="";t="city"!==i||o?`?reference_id=${r}&reference_type=${i}`:`?reference_id=${r}`;const s=await salla.api.withoutNotifier((()=>salla.api.request(salla.url.api(`products/${e}/delivery-promises${t}`))));if(!s.success)return l("fetchDeliveryMessage error",{response:s}),null;const a=s.data?.message?.trim();return l("fetchDeliveryMessage success",{message:a}),a||null}(this.productId,e,r,this.isLoginCycleEnabled)}catch(i){l("loadDeliveryMessage failed",{id:e,optionType:r,error:i}),this.deliveryMessage=null}finally{this.isLoadingPromises=!1}}async openCityChangeModal(){this.cityModalRef&&(this.cityPendingSelection=null,this.modalCities=[...this.cities],await this.cityModalRef.setTitle(this.labels.changeCityTitle),await this.cityModalRef.open())}async searchCitiesRemote(e){const r=++this.citySearchCounter;this.isSearchingCities=!0;try{const{cities:i}=await a(this.productId,e);if(r!==this.citySearchCounter)return;this.modalCities=i}catch{if(r!==this.citySearchCounter)return;this.modalCities=[]}finally{r===this.citySearchCounter&&(this.isSearchingCities=!1)}}async handleConfirmCityModal(){if(!this.cityPendingSelection)return void await(this.cityModalRef?.close());const e=this.cityPendingSelection;this.selectedCity=e,this.selectedLabel=`${this.labels.deliveryTo} ${function(e){const r=salla.config.get("user.language_code");return r&&"ar"!==r&&e.name_en?.trim()?e.name_en.trim():e.name}(e)}`,await this.loadDeliveryMessage(e.id,"city"),await(this.cityModalRef?.close())}renderLoadingSkeleton(){return r(i,{class:"s-delivery-promise-wrapper s-delivery-promise-skeleton"},r("div",{class:"s-delivery-promise-container"},r("div",{class:"s-delivery-promise-header s-delivery-promise-header-skeleton"},r("div",{class:"s-delivery-promise-location"},r("salla-skeleton",{height:"14px",width:"180px"})),r("salla-skeleton",{height:"18px",width:"18px"})),r("div",{class:"s-delivery-promise-loading"},r("salla-skeleton",{height:"20px",width:"80%"}))))}renderDeliveryMessage(){return this.isLoadingPromises?r("div",{class:"s-delivery-promise-loading"},r("salla-skeleton",{height:"20px",width:"80%"})):this.deliveryMessage?r("div",{class:"s-delivery-promise-message"},this.deliveryMessage):null}renderCityModalBody(){return r("div",{class:"s-delivery-promise-modal-body"},r("salla-searchable-dropdown",{label:this.labels.cityFieldLabel,placeholder:this.labels.modalSearchPlaceholder,items:this.modalCities,selectedItem:this.cityPendingSelection,searching:this.isSearchingCities,required:!0,noResultsText:this.labels.noResults,inputId:"s-delivery-promise-modal-search",onItemSelected:e=>{this.cityPendingSelection=e.detail},onSearchInput:e=>{this.handleCitySearch(e.detail)}}))}renderCityChangeModal(){return this.isLoginCycleEnabled?null:r("salla-modal",{id:"s-delivery-promise-city-modal",ref:e=>{this.cityModalRef=e},class:"s-delivery-promise-city-modal",isClosable:!0,width:"md","modal-title":this.labels.changeCityTitle,subTitle:this.labels.changeCitySubtitle},this.renderCityModalBody(),r("salla-button",{slot:"footer",width:"wide",disabled:!this.cityPendingSelection,onClick:()=>this.handleConfirmCityModal()},!this.isLoadingPromises&&this.labels.confirmAddress))}render(){return this.isDeliveryPromiseEnabled?this.isLoadingCities?this.renderLoadingSkeleton():this.canRender?r(i,{class:"s-delivery-promise-wrapper"},r("div",{class:"s-delivery-promise-container"},r("div",{class:"s-delivery-promise-header",onClick:this.handleHeaderClick},r("div",{class:"s-delivery-promise-location"},r("span",{class:"s-delivery-promise-title"},this.selectedLabel)),r("i",{class:"sicon-keyboard_arrow_down s-delivery-promise-arrow"})),this.hasError&&r("div",{class:"s-delivery-promise-error"},this.errorMessage),!this.hasError&&this.renderDeliveryMessage()),this.renderCityChangeModal()):null:null}get host(){return o(this)}};c.style='/*!twlt*/@charset "UTF-8";:host{display:block}.s-delivery-promise-wrapper{font-family:inherit}.s-delivery-promise-container{position:relative;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:8px;padding:12px 16px;margin-bottom:12px}.s-delivery-promise-header{display:flex;align-items:center;cursor:pointer;padding:4px 0}.s-delivery-promise-skeleton .s-delivery-promise-header-skeleton{cursor:default;pointer-events:none}.s-delivery-promise-skeleton .s-delivery-promise-location salla-skeleton{display:block;flex-shrink:0}.s-delivery-promise-location{display:flex;align-items:center;gap:8px}.s-delivery-promise-title{color:var(--color-text-primary, #2b2d34);font-size:14px;font-weight:bold}.s-delivery-promise-arrow{color:var(--color-text-secondary, #666);font-size:18px;transition:transform 0.2s ease}.s-delivery-promise-arrow.open{transform:rotate(180deg)}.s-delivery-promise-city-modal{}.s-delivery-promise-city-modal .s-modal-title{color:var(--color-primary, #00897b);font-weight:700}.s-delivery-promise-city-modal .s-modal-sub-title{color:var(--color-text-secondary, #5c6c7c);font-size:14px;line-height:1.45}.s-delivery-promise-city-modal .s-modal-body{overflow:visible !important}.s-delivery-promise-city-modal .s-modal-body>salla-button{position:relative;z-index:0;margin-top:16px}.s-delivery-promise-modal-body{position:relative;z-index:10;display:flex;flex-direction:column;gap:12px;text-align:start;margin-bottom:16px}.s-delivery-promise-modal-combobox{position:relative;isolation:isolate}.s-delivery-promise-modal-field-label{display:block;font-size:14px;font-weight:500;color:var(--color-text-primary, #2b2d34)}.s-delivery-promise-required{color:var(--color-danger, #dc3545)}.s-delivery-promise-modal-search{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--color-border, #e5e7eb);border-radius:8px;background:var(--color-surface, #fff)}.s-delivery-promise-modal-search .sicon-search{flex-shrink:0;color:var(--color-text-secondary, #999);font-size:16px}.s-delivery-promise-modal-search input{flex:1;border:none;outline:none;font-size:14px;background:transparent;color:var(--color-text-primary, #333)}.s-delivery-promise-modal-search input::placeholder{color:var(--color-text-secondary, #999)}.s-delivery-promise-modal-popover{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1;border-radius:8px;border:1px solid var(--color-border, #e5e7eb);background:var(--color-surface, #fff);box-shadow:0 8px 24px rgba(0, 0, 0, 0.12);animation:s-delivery-promise-popover-in 0.2s ease}@keyframes s-delivery-promise-popover-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.s-delivery-promise-modal-list{max-height:min(40vh, 260px);overflow-y:auto;background:var(--color-surface, #fff)}.s-delivery-promise-modal-item{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;margin:0;border:none;border-bottom:1px solid var(--color-border, #eee);cursor:pointer;font:inherit;text-align:inherit;background:transparent;color:var(--color-text-primary, #2b2d34);transition:background 0.15s ease}.s-delivery-promise-modal-item:last-child{border-bottom:none}.s-delivery-promise-modal-item:hover{background:var(--color-hover, #f5f5f5)}.s-delivery-promise-modal-item--selected{background:var(--color-primary-light, rgba(0, 137, 123, 0.08))}.s-delivery-promise-modal-item--selected .s-delivery-promise-modal-item-name{color:var(--color-primary, #00897b);font-weight:600}.s-delivery-promise-modal-item .sicon-check{flex-shrink:0;color:var(--color-primary, #00897b);font-size:14px}.s-delivery-promise-modal-empty{padding:24px 16px;text-align:center;color:var(--color-text-secondary, #999);font-size:14px}.s-delivery-promise-message{margin-top:8px;font-size:13px;line-height:1.5;color:var(--color-text-secondary, #2b2d34)}.s-delivery-promise-loading{margin-top:12px;padding-top:12px}.s-delivery-promise-error{margin-top:12px;padding-top:12px;font-size:14px;color:var(--color-danger, #dc3545)}.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)}.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-delivery-promise-wrapper{display:block;font-family:inherit}.s-delivery-promise-container{position:relative;margin-bottom:0.75rem;border-radius:0.5rem;border-width:1px;border-color:var(--color-border,#e5e7eb);background-color:var(--color-surface,#fff);padding-left:1rem;padding-right:1rem;padding-top:0.75rem;padding-bottom:0.75rem}.s-delivery-promise-header{display:flex;cursor:pointer;align-items:center;padding-top:0.25rem;padding-bottom:0.25rem}.s-delivery-promise-skeleton .s-delivery-promise-header-skeleton{pointer-events:none;cursor:default}.s-delivery-promise-skeleton .s-delivery-promise-location salla-skeleton{display:block;flex-shrink:0}.s-delivery-promise-location{display:flex;align-items:center;gap:0.5rem}.s-delivery-promise-title{font-size:0.875rem;line-height:1.25rem;font-weight:700;color:var(--color-text-primary,#2b2d34)}.s-delivery-promise-arrow{font-size:1.125rem;line-height:1.75rem;color:var(--color-text-secondary,#666);transition-property:transform;transition-duration:200ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.s-delivery-promise-arrow.open{--tw-rotate:180deg;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))}.s-delivery-promise-message{margin-top:0.5rem;font-size:13px;line-height:1.5;color:var(--color-text-secondary,#2b2d34)}.s-delivery-promise-loading{margin-top:0.75rem;padding-top:0.75rem}.s-delivery-promise-error{margin-top:0.75rem;padding-top:0.75rem;font-size:0.875rem;line-height:1.25rem;color:var(--color-danger,#dc3545)}.s-delivery-promise-city-modal .s-modal-title{font-weight:700;color:var(--color-primary,#00897b)}.s-delivery-promise-city-modal .s-modal-sub-title{font-size:0.875rem;line-height:1.25rem;line-height:1.45;color:var(--color-text-secondary,#5c6c7c)}.s-delivery-promise-city-modal .s-modal-body{overflow:visible !important}.s-delivery-promise-city-modal .s-modal-body>salla-button{position:relative;z-index:0;margin-top:1rem}.s-delivery-promise-modal-body{position:relative;z-index:10;margin-bottom:1rem;display:flex;flex-direction:column;gap:0.75rem;text-align:start}.s-delivery-promise-modal-combobox{position:relative;isolation:isolate}.s-delivery-promise-modal-field-label{display:block;font-size:0.875rem;line-height:1.25rem;font-weight:500;color:var(--color-text-primary,#2b2d34)}.s-delivery-promise-modal-required{color:var(--color-danger,#dc3545)}.s-delivery-promise-modal-search{display:flex;align-items:center;gap:0.5rem;border-radius:0.5rem;border-width:1px;border-color:var(--color-border,#e5e7eb);background-color:var(--color-surface,#fff);padding-left:0.75rem;padding-right:0.75rem;padding-top:0.625rem;padding-bottom:0.625rem}.s-delivery-promise-modal-search .sicon-search{flex-shrink:0;font-size:1rem;line-height:1.5rem;color:var(--color-text-secondary,#999)}.s-delivery-promise-modal-search input{min-width:0px;flex:1 1 0%;border-width:0px;background-color:transparent;font-size:0.875rem;line-height:1.25rem;color:var(--color-text-primary,#333);outline:2px solid transparent;outline-offset:2px}.s-delivery-promise-modal-search input::placeholder{color:var(--color-text-secondary,#999)}.s-delivery-promise-modal-popover{position:absolute;left:0px;right:0px;top:calc(100% + 4px);z-index:1;border-radius:0.5rem;border-width:1px;border-color:var(--color-border,#e5e7eb);background-color:var(--color-surface,#fff);--tw-shadow:0 8px 24px rgba(0,0,0,0.12);--tw-shadow-colored:0 8px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.s-delivery-promise-modal-list{max-height:min(40vh, 260px);overflow-y:auto;background-color:var(--color-surface,#fff)}.s-delivery-promise-modal-item{margin:0px;display:flex;width:100%;cursor:pointer;align-items:center;justify-content:space-between;gap:0.5rem;border-width:0px;border-bottom-width:1px;border-color:var(--color-border,#eee);background-color:transparent;padding-left:1rem;padding-right:1rem;padding-top:0.75rem;padding-bottom:0.75rem;text-align:start;color:var(--color-text-primary,#2b2d34);transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-duration:150ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.s-delivery-promise-modal-item:last-child{border-bottom-width:0px}.s-delivery-promise-modal-item--selected{background-color:var(--color-primary-light,rgba(0,137,123,0.08))}.s-delivery-promise-modal-item--selected .s-delivery-promise-modal-item-name{font-weight:600;color:var(--color-primary,#00897b)}.s-delivery-promise-modal-item .sicon-check{flex-shrink:0;font-size:0.875rem;line-height:1.25rem;color:var(--color-primary,#00897b)}.s-delivery-promise-modal-empty{padding-left:1rem;padding-right:1rem;padding-top:1.5rem;padding-bottom:1.5rem;text-align:center;font-size:0.875rem;line-height:1.25rem;color:var(--color-text-secondary,#999)}';export{c as salla_delivery_promise}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{r as e,h as t,a}from"./p-ze9e0dxM.js";const i=class{constructor(t){e(this,t),this.hasError=!1}connectedCallback(){this.sizeGuideOpenListener=e=>this.open(e),salla.event.on("size-guide::open",this.sizeGuideOpenListener),this.langUnsubscribe=salla.lang.subscribe((()=>{this.placeholder_title=salla.lang.get("pages.products.size_guide_placeholder"),this.placeholder_description=salla.lang.get("pages.products.size_guide_placeholder_info"),this.modal_title=salla.lang.get("pages.products.size_guides")}))}disconnectedCallback(){salla.event.off("size-guide::open",this.sizeGuideOpenListener),this.langUnsubscribe?.()}async open(e){return this.modal.setTitle(this.modal_title),this.modal.open(),await salla.api.withoutNotifier((()=>salla.product.getSizeGuides(e))).then((e=>{this.guides=e.data})).catch((e=>{console.log(e),this.hasError=!0,this.placeholder_description=e.response?.data?.error?.message||e.response?.data})).finally((()=>this.modal.stopLoading()))}async close(){return this.modal.close()}showPlaceholder(){return t("salla-placeholder",{alignment:"center",iconSize:"xl"},t("div",{slot:"title"},this.placeholder_title),t("div",{slot:"description"},this.placeholder_description))}render(){return t("salla-modal",{key:"949a60f0becc6594358c20215c86564c9f96a5b2",class:"s-product-size-guide-wrapper",id:"salla-product-size-guide-modal",isLoading:!0,"has-skeleton":!0,width:"md",ref:e=>this.modal=e},t("span",{key:"a250df4a45be84188ce9875c969d544baee4aba8",slot:"icon",class:"s-product-size-guide-header-icon",innerHTML:'\x3c!-- Generated by IcoMoon.io --\x3e\n<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">\n<title>pencil-ruler</title>\n<path d="M3.057 11.609c0.26 0.26 0.601 0.391 0.943 0.391s0.683-0.131 0.943-0.391l6.667-6.667c0.521-0.521 0.521-1.364 0-1.885l-1.285-1.285c-1.143-1.143-2.661-1.772-4.276-1.772-1.616 0-3.135 0.629-4.276 1.772-1.143 1.141-1.772 2.66-1.772 4.276 0 1.615 0.629 3.135 1.772 4.276zM3.657 3.657c1.277-1.277 3.504-1.277 4.781 0l0.343 0.343-4.781 4.781-0.343-0.343c-0.639-0.639-0.991-1.488-0.991-2.391s0.352-1.752 0.991-2.391zM29.317 20.972c-0.2-0.707-0.932-1.119-1.645-0.921-0.709 0.2-1.121 0.937-0.921 1.645l1.987 7.041-7.041-1.987c-0.707-0.195-1.444 0.213-1.645 0.921-0.2 0.708 0.212 1.445 0.921 1.645l9.333 2.633c0.119 0.032 0.24 0.049 0.361 0.049 0.349 0 0.689-0.137 0.943-0.391 0.341-0.341 0.472-0.84 0.34-1.305zM31.609 8.772l-8.381-8.381c-0.5-0.5-1.385-0.5-1.885 0l-8.171 8.171s-0.001 0-0.001 0.001 0 0.001-0.001 0.001l-4.607 4.607s0 0-0.001 0 0 0 0 0.001l-8.171 8.171c-0.251 0.249-0.391 0.588-0.391 0.943 0 0.353 0.14 0.693 0.391 0.943l8.381 8.381c0.249 0.251 0.589 0.391 0.943 0.391s0.693-0.14 0.943-0.391l20.952-20.952c0.521-0.521 0.521-1.365 0-1.885zM9.715 28.781l-6.495-6.496 1.676-1.676 1.851 1.851c0.26 0.26 0.601 0.391 0.943 0.391s0.683-0.131 0.943-0.391c0.521-0.521 0.521-1.364 0-1.885l-1.851-1.851 2.724-2.724 3.008 3.008c0.26 0.26 0.601 0.391 0.943 0.391s0.683-0.131 0.943-0.391c0.521-0.521 0.521-1.364 0-1.885l-3.008-3.008 2.724-2.724 1.851 1.851c0.26 0.26 0.601 0.391 0.943 0.391s0.683-0.131 0.943-0.391c0.521-0.52 0.521-1.364 0-1.885l-1.851-1.851 2.724-2.724 3.008 3.008c0.26 0.26 0.601 0.391 0.943 0.391s0.683-0.131 0.943-0.391c0.521-0.521 0.521-1.365 0-1.885l-3.008-3.008 1.677-1.677 6.496 6.496z"></path>\n</svg>\n'}),t("div",{key:"5a3e827e8223a846f7b33372c4550144802bfd5d",slot:"loading"},t("div",{key:"77c24101a09e4ef97deed4a74e07e704300bffeb",class:"s-product-size-guide-skeleton"},t("salla-skeleton",{key:"a4803f830e8c682a299df76a4a16b2ad38a031d5",height:"15px",width:"25%"}),t("div",{key:"fa7bb72254eaa88670b0625244a19e8718cdc19c",class:"s-product-size-guide-skeleton-header"},t("salla-skeleton",{key:"90e41d1cba2dc9adc9730e9c84a0703dd222ec2c",height:"40px"}),t("salla-skeleton",{key:"09042f1818dd7bc5e03bb21adcbd7ea0a247287b",height:"40px"}),t("salla-skeleton",{key:"36e3a8804cebc939cf3e7d595f42b0ab145a8906",height:"40px"}),t("salla-skeleton",{key:"c0517ad2fad0e2a120af65a67524e8e368bcbbbe",height:"40px"})),t("div",{key:"72277a6e5717cb6f46b7d4ca00315e3fc6323840",class:"s-product-size-guide-skeleton-content"},t("salla-skeleton",{key:"a8fc7c88dfba933765c59e94efd6f57975d384d3",height:"15px",width:"25%"}),t("salla-skeleton",{key:"7f551c7e5851080aad5147ad026700ade3d4f729",height:"10px",width:"75%"}),t("salla-skeleton",{key:"4690828dd0204b6682658093ddcd782b7d7808cf",height:"10px",width:"50%"}),t("salla-skeleton",{key:"cfbc0911430d4f0f86fbd23f7a2cb795997f9ead",height:"10px",width:"75%"}),t("salla-skeleton",{key:"5dc89933c85eda48afb6d71755e5e810644b25dd",height:"10px",width:"100%"}),t("salla-skeleton",{key:"a87d5c8c088241516fb5a1e3f09a3c2f31231fe3",height:"10px",width:"25%"}),t("salla-skeleton",{key:"e103932b5300849c43b141d0551cb69291e7ebdd",height:"10px",width:"60%"}),t("salla-skeleton",{key:"7ebf1a7aa02eae1bca9aafd06b0b85bc8c188ef1",height:"10px",width:"45%"}),t("salla-skeleton",{key:"25e82e97bf169c5757bd02139160cf6b75efb993",height:"10px",width:"30%"})))),t("slot",{key:"36fe07ad56643fb92b517c4bf92424a893c7ba9b",name:"header"}),!this.hasError&&this.guides?[t("salla-tabs",{activeTab:this.guides[0]?.name},this.guides.map((e=>t("salla-tab-header",{slot:"header",name:e.name},t("span",null,e.name)))),this.guides.map((e=>t("salla-tab-content",{slot:"content",name:e.name},t("div",{innerHTML:e.description})))))]:this.showPlaceholder(),t("slot",{key:"4b6c6a747d398416f814e316fcb97db5281237a5",name:"footer"}))}get host(){return a(this)}};i.style='/*!twlt*/.s-product-size-guide-wrapper .s-modal-title{margin-bottom:0px !important}.s-product-size-guide-wrapper .s-tabs-content{max-height:60vh;overflow:auto}@media (min-width: 768px){.s-product-size-guide-wrapper .s-tabs-content{max-height:70vh}}.s-product-size-guide-placeholder{display:flex;align-items:center;justify-content:center}.s-product-size-guide-skeleton-table{margin-top:1.25rem;width:100%;border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));line-height:1.25rem}.s-product-size-guide-skeleton-table td{border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));padding:0.5rem;line-height:1.25rem}.s-product-size-guide-header-icon{display:inline-flex;height:3rem;width:3rem;align-items:center;justify-content:center;border-radius:9999px;border-width:1px;border-style:solid;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}@media (min-width: 640px){.s-product-size-guide-header-icon{margin-left:auto;margin-right:auto;margin-bottom:1rem;height:5rem;width:5rem}}.s-product-size-guide-header-icon:where([dir="ltr"],[dir="ltr"] *){margin-right:0.5rem}@media (min-width: 640px){.s-product-size-guide-header-icon:where([dir="ltr"],[dir="ltr"] *){margin-right:0px}}.s-product-size-guide-header-icon:where([dir="rtl"],[dir="rtl"] *){margin-left:0.5rem}@media (min-width: 640px){.s-product-size-guide-header-icon:where([dir="rtl"],[dir="rtl"] *){margin-left:0px}}.s-product-size-guide-header-icon svg{height:1.25rem;width:1.25rem;flex-shrink:0;fill:#9ca3af}.s-product-size-guide-skeleton-content{margin-top:1.25rem;display:flex;flex-direction:column}.s-product-size-guide-skeleton-content>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.75rem * var(--tw-space-y-reverse))}.s-product-size-guide-skeleton-header{margin-top:2rem;margin-bottom:2rem;display:flex;align-items:center;justify-content:space-between}.s-product-size-guide-skeleton-header>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.25rem * var(--tw-space-x-reverse));margin-left:calc(1.25rem * calc(1 - var(--tw-space-x-reverse)))}.s-product-size-guide-skeleton-header:where([dir="rtl"],[dir="rtl"] *)>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.s-product-size-guide-skeleton-header>salla-skeleton{flex:1 1 0%}';export{i as salla_product_size_guide}
4
+ import{r as e,h as t,a}from"./p-DvJClBwJ.js";const i=class{constructor(t){e(this,t),this.hasError=!1}connectedCallback(){this.sizeGuideOpenListener=e=>this.open(e),salla.event.on("size-guide::open",this.sizeGuideOpenListener),this.langUnsubscribe=salla.lang.subscribe((()=>{this.placeholder_title=salla.lang.get("pages.products.size_guide_placeholder"),this.placeholder_description=salla.lang.get("pages.products.size_guide_placeholder_info"),this.modal_title=salla.lang.get("pages.products.size_guides")}))}disconnectedCallback(){salla.event.off("size-guide::open",this.sizeGuideOpenListener),this.langUnsubscribe?.()}async open(e){return this.modal.setTitle(this.modal_title),this.modal.open(),await salla.api.withoutNotifier((()=>salla.product.getSizeGuides(e))).then((e=>{this.guides=e.data})).catch((e=>{console.log(e),this.hasError=!0,this.placeholder_description=e.response?.data?.error?.message||e.response?.data})).finally((()=>this.modal.stopLoading()))}async close(){return this.modal.close()}showPlaceholder(){return t("salla-placeholder",{alignment:"center",iconSize:"xl"},t("div",{slot:"title"},this.placeholder_title),t("div",{slot:"description"},this.placeholder_description))}render(){return t("salla-modal",{key:"949a60f0becc6594358c20215c86564c9f96a5b2",class:"s-product-size-guide-wrapper",id:"salla-product-size-guide-modal",isLoading:!0,"has-skeleton":!0,width:"md",ref:e=>this.modal=e},t("span",{key:"a250df4a45be84188ce9875c969d544baee4aba8",slot:"icon",class:"s-product-size-guide-header-icon",innerHTML:'\x3c!-- Generated by IcoMoon.io --\x3e\n<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">\n<title>pencil-ruler</title>\n<path d="M3.057 11.609c0.26 0.26 0.601 0.391 0.943 0.391s0.683-0.131 0.943-0.391l6.667-6.667c0.521-0.521 0.521-1.364 0-1.885l-1.285-1.285c-1.143-1.143-2.661-1.772-4.276-1.772-1.616 0-3.135 0.629-4.276 1.772-1.143 1.141-1.772 2.66-1.772 4.276 0 1.615 0.629 3.135 1.772 4.276zM3.657 3.657c1.277-1.277 3.504-1.277 4.781 0l0.343 0.343-4.781 4.781-0.343-0.343c-0.639-0.639-0.991-1.488-0.991-2.391s0.352-1.752 0.991-2.391zM29.317 20.972c-0.2-0.707-0.932-1.119-1.645-0.921-0.709 0.2-1.121 0.937-0.921 1.645l1.987 7.041-7.041-1.987c-0.707-0.195-1.444 0.213-1.645 0.921-0.2 0.708 0.212 1.445 0.921 1.645l9.333 2.633c0.119 0.032 0.24 0.049 0.361 0.049 0.349 0 0.689-0.137 0.943-0.391 0.341-0.341 0.472-0.84 0.34-1.305zM31.609 8.772l-8.381-8.381c-0.5-0.5-1.385-0.5-1.885 0l-8.171 8.171s-0.001 0-0.001 0.001 0 0.001-0.001 0.001l-4.607 4.607s0 0-0.001 0 0 0 0 0.001l-8.171 8.171c-0.251 0.249-0.391 0.588-0.391 0.943 0 0.353 0.14 0.693 0.391 0.943l8.381 8.381c0.249 0.251 0.589 0.391 0.943 0.391s0.693-0.14 0.943-0.391l20.952-20.952c0.521-0.521 0.521-1.365 0-1.885zM9.715 28.781l-6.495-6.496 1.676-1.676 1.851 1.851c0.26 0.26 0.601 0.391 0.943 0.391s0.683-0.131 0.943-0.391c0.521-0.521 0.521-1.364 0-1.885l-1.851-1.851 2.724-2.724 3.008 3.008c0.26 0.26 0.601 0.391 0.943 0.391s0.683-0.131 0.943-0.391c0.521-0.521 0.521-1.364 0-1.885l-3.008-3.008 2.724-2.724 1.851 1.851c0.26 0.26 0.601 0.391 0.943 0.391s0.683-0.131 0.943-0.391c0.521-0.52 0.521-1.364 0-1.885l-1.851-1.851 2.724-2.724 3.008 3.008c0.26 0.26 0.601 0.391 0.943 0.391s0.683-0.131 0.943-0.391c0.521-0.521 0.521-1.365 0-1.885l-3.008-3.008 1.677-1.677 6.496 6.496z"></path>\n</svg>\n'}),t("div",{key:"5a3e827e8223a846f7b33372c4550144802bfd5d",slot:"loading"},t("div",{key:"77c24101a09e4ef97deed4a74e07e704300bffeb",class:"s-product-size-guide-skeleton"},t("salla-skeleton",{key:"a4803f830e8c682a299df76a4a16b2ad38a031d5",height:"15px",width:"25%"}),t("div",{key:"fa7bb72254eaa88670b0625244a19e8718cdc19c",class:"s-product-size-guide-skeleton-header"},t("salla-skeleton",{key:"90e41d1cba2dc9adc9730e9c84a0703dd222ec2c",height:"40px"}),t("salla-skeleton",{key:"09042f1818dd7bc5e03bb21adcbd7ea0a247287b",height:"40px"}),t("salla-skeleton",{key:"36e3a8804cebc939cf3e7d595f42b0ab145a8906",height:"40px"}),t("salla-skeleton",{key:"c0517ad2fad0e2a120af65a67524e8e368bcbbbe",height:"40px"})),t("div",{key:"72277a6e5717cb6f46b7d4ca00315e3fc6323840",class:"s-product-size-guide-skeleton-content"},t("salla-skeleton",{key:"a8fc7c88dfba933765c59e94efd6f57975d384d3",height:"15px",width:"25%"}),t("salla-skeleton",{key:"7f551c7e5851080aad5147ad026700ade3d4f729",height:"10px",width:"75%"}),t("salla-skeleton",{key:"4690828dd0204b6682658093ddcd782b7d7808cf",height:"10px",width:"50%"}),t("salla-skeleton",{key:"cfbc0911430d4f0f86fbd23f7a2cb795997f9ead",height:"10px",width:"75%"}),t("salla-skeleton",{key:"5dc89933c85eda48afb6d71755e5e810644b25dd",height:"10px",width:"100%"}),t("salla-skeleton",{key:"a87d5c8c088241516fb5a1e3f09a3c2f31231fe3",height:"10px",width:"25%"}),t("salla-skeleton",{key:"e103932b5300849c43b141d0551cb69291e7ebdd",height:"10px",width:"60%"}),t("salla-skeleton",{key:"7ebf1a7aa02eae1bca9aafd06b0b85bc8c188ef1",height:"10px",width:"45%"}),t("salla-skeleton",{key:"25e82e97bf169c5757bd02139160cf6b75efb993",height:"10px",width:"30%"})))),t("slot",{key:"36fe07ad56643fb92b517c4bf92424a893c7ba9b",name:"header"}),!this.hasError&&this.guides?[t("salla-tabs",{activeTab:this.guides[0]?.name},this.guides.map((e=>t("salla-tab-header",{slot:"header",name:e.name},t("span",null,e.name)))),this.guides.map((e=>t("salla-tab-content",{slot:"content",name:e.name},t("div",{innerHTML:e.description})))))]:this.showPlaceholder(),t("slot",{key:"4b6c6a747d398416f814e316fcb97db5281237a5",name:"footer"}))}get host(){return a(this)}};i.style='/*!twlt*/.s-product-size-guide-wrapper .s-modal-title{margin-bottom:0px !important}.s-product-size-guide-wrapper .s-tabs-content{max-height:60vh;overflow:auto}@media (min-width: 768px){.s-product-size-guide-wrapper .s-tabs-content{max-height:70vh}}.s-product-size-guide-placeholder{display:flex;align-items:center;justify-content:center}.s-product-size-guide-skeleton-table{margin-top:1.25rem;width:100%;border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));line-height:1.25rem}.s-product-size-guide-skeleton-table td{border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));padding:0.5rem;line-height:1.25rem}.s-product-size-guide-header-icon{display:inline-flex;height:3rem;width:3rem;align-items:center;justify-content:center;border-radius:9999px;border-width:1px;border-style:solid;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}@media (min-width: 640px){.s-product-size-guide-header-icon{margin-left:auto;margin-right:auto;margin-bottom:1rem;height:5rem;width:5rem}}.s-product-size-guide-header-icon:where([dir="ltr"],[dir="ltr"] *){margin-right:0.5rem}@media (min-width: 640px){.s-product-size-guide-header-icon:where([dir="ltr"],[dir="ltr"] *){margin-right:0px}}.s-product-size-guide-header-icon:where([dir="rtl"],[dir="rtl"] *){margin-left:0.5rem}@media (min-width: 640px){.s-product-size-guide-header-icon:where([dir="rtl"],[dir="rtl"] *){margin-left:0px}}.s-product-size-guide-header-icon svg{height:1.25rem;width:1.25rem;flex-shrink:0;fill:#9ca3af}.s-product-size-guide-skeleton-content{margin-top:1.25rem;display:flex;flex-direction:column}.s-product-size-guide-skeleton-content>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.75rem * var(--tw-space-y-reverse))}.s-product-size-guide-skeleton-header{margin-top:2rem;margin-bottom:2rem;display:flex;align-items:center;justify-content:space-between}.s-product-size-guide-skeleton-header>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.25rem * var(--tw-space-x-reverse));margin-left:calc(1.25rem * calc(1 - var(--tw-space-x-reverse)))}.s-product-size-guide-skeleton-header:where([dir="rtl"],[dir="rtl"] *)>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.s-product-size-guide-skeleton-header>salla-skeleton{flex:1 1 0%}';export{i as salla_product_size_guide}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{r as t,h as i,H as e}from"./p-ze9e0dxM.js";import{f as s,g as l}from"./p-DqXpn47Z.js";const a=class{constructor(i){t(this,i),this.productRatings=[],this.allowUpdate=!1}async componentWillLoad(){await salla.onReady(),await this.loadOrderItem()}async onProductIdChange(){this.orderItem=void 0,this.productRatings=[],await this.loadOrderItem()}resolveFetchOrderId(){return salla.config.get("page.id")}sameId(t,i){return null!=t&&null!=i&&String(t)===String(i)}label(t,i){return"function"==typeof salla?.lang?.getWithDefault?salla.lang.getWithDefault(t,i):salla?.lang?.get?.(t)||i}toOrderItemRating(t){return{id:t.id??t.feedback_id,stars:t.stars??t.rating,content:t.content||"",is_pending:t.is_pending,can_update:t.can_update,images:t.images||[],videos:t.videos||[],product:t.product}}resolveOrderItem(t,i){const e=Array.isArray(t?.items)?t.items:[],s=i.find((t=>this.sameId(t.product?.id,this.productId)));if(!s)return;const l=e.find((t=>this.sameId(t.product?.id,this.productId)))||{product:s.product||{id:this.productId}};return{...l,product:l.product||s.product||{id:this.productId},rating:this.toOrderItemRating(s)}}async loadOrderItem(){const t=this.resolveFetchOrderId();if(t&&null!=this.productId&&""!==this.productId){this.fetchOrderId=t,this.allowUpdate=!!salla.config.get("store.settings.rating.allow_update");try{const i=await s(t);this.productRatings=l(i?.rating),this.orderItem=this.resolveOrderItem(i,this.productRatings)}catch(t){console.error("[salla-review-order-item] failed to load order item review",t)}}}renderActions(t){const e=t.rating;return e&&this.allowUpdate?i("div",{class:"rating-actions"},i("div",{class:"tooltip-toggle tooltip-toggle--hover icon-trigger mobile-shifted"},e.can_update?null:i("div",{class:"tooltip-content shadow-md rounded"},i("small",null,this.label("pages.order.edit_period_ended","انتهت مدة التعديل"),".")),i("salla-button",{"loader-position":"center",disabled:!e.can_update,shape:"icon",fill:"outline",color:"dark",size:"medium",onClick:()=>e.can_update?salla.event.dispatch("rating::edit",{type:"product",feedback_id:e.id}):void 0},i("i",{class:"sicon-format-border-color text-xl"}))),i("div",{class:"tooltip-toggle tooltip-toggle--hover icon-trigger mobile-shifted"},e.can_update?null:i("div",{class:"tooltip-content shadow-md rounded"},i("small",null,this.label("pages.order.delete_period_ended","انتهت مدة الحذف"),".")),i("salla-button",{"loader-position":"center",disabled:!e.can_update,shape:"icon",color:"danger",fill:"outline",size:"medium",onClick:()=>e.can_update?salla.event.dispatch("rating::delete",{feedback_id:e.id}):void 0},i("i",{class:"sicon-trash-2 text-xl"})))):null}serializeRatingMedia(t){return JSON.stringify({images:t.images||[],videos:t.videos||[],product:t.product})}serializeProductRatings(){return JSON.stringify(this.productRatings)}render(){const t=this.orderItem,s=t?.rating;return t&&s&&this.fetchOrderId?i(e,null,i("section",{class:"flex justify-between items-start border-t mt-10 pt-8"},i("div",null,i("p",{innerHTML:s.content||""}),s.is_pending?i("span",null,this.label("pages.rating.pending","قيد المراجعة")):null,i("div",{class:"flex flex-row flex-wrap gap-2"},i("salla-rating-stars",{size:"large",value:s.stars}),i("salla-review-factors-tags",{"order-id":this.fetchOrderId,"rating-id":s.id,"product-id":t.product?.id})),i("div",{class:"mt-2"},i("salla-attachments",{rating:this.serializeRatingMedia(s),"product-ratings":this.serializeProductRatings(),"product-id":t.product?.id??null,"max-visible":8,clickable:!0}))),this.renderActions(t))):i(e,null)}static get watchers(){return{productId:["onProductIdChange"]}}};export{a as salla_review_order_item}
4
+ import{r as t,h as i,H as e}from"./p-DvJClBwJ.js";import{f as s,g as l}from"./p-DqXpn47Z.js";const a=class{constructor(i){t(this,i),this.productRatings=[],this.allowUpdate=!1}async componentWillLoad(){await salla.onReady(),await this.loadOrderItem()}async onProductIdChange(){this.orderItem=void 0,this.productRatings=[],await this.loadOrderItem()}resolveFetchOrderId(){return salla.config.get("page.id")}sameId(t,i){return null!=t&&null!=i&&String(t)===String(i)}label(t,i){return"function"==typeof salla?.lang?.getWithDefault?salla.lang.getWithDefault(t,i):salla?.lang?.get?.(t)||i}toOrderItemRating(t){return{id:t.id??t.feedback_id,stars:t.stars??t.rating,content:t.content||"",is_pending:t.is_pending,can_update:t.can_update,images:t.images||[],videos:t.videos||[],product:t.product}}resolveOrderItem(t,i){const e=Array.isArray(t?.items)?t.items:[],s=i.find((t=>this.sameId(t.product?.id,this.productId)));if(!s)return;const l=e.find((t=>this.sameId(t.product?.id,this.productId)))||{product:s.product||{id:this.productId}};return{...l,product:l.product||s.product||{id:this.productId},rating:this.toOrderItemRating(s)}}async loadOrderItem(){const t=this.resolveFetchOrderId();if(t&&null!=this.productId&&""!==this.productId){this.fetchOrderId=t,this.allowUpdate=!!salla.config.get("store.settings.rating.allow_update");try{const i=await s(t);this.productRatings=l(i?.rating),this.orderItem=this.resolveOrderItem(i,this.productRatings)}catch(t){console.error("[salla-review-order-item] failed to load order item review",t)}}}renderActions(t){const e=t.rating;return e&&this.allowUpdate?i("div",{class:"rating-actions"},i("div",{class:"tooltip-toggle tooltip-toggle--hover icon-trigger mobile-shifted"},e.can_update?null:i("div",{class:"tooltip-content shadow-md rounded"},i("small",null,this.label("pages.order.edit_period_ended","انتهت مدة التعديل"),".")),i("salla-button",{"loader-position":"center",disabled:!e.can_update,shape:"icon",fill:"outline",color:"dark",size:"medium",onClick:()=>e.can_update?salla.event.dispatch("rating::edit",{type:"product",feedback_id:e.id}):void 0},i("i",{class:"sicon-format-border-color text-xl"}))),i("div",{class:"tooltip-toggle tooltip-toggle--hover icon-trigger mobile-shifted"},e.can_update?null:i("div",{class:"tooltip-content shadow-md rounded"},i("small",null,this.label("pages.order.delete_period_ended","انتهت مدة الحذف"),".")),i("salla-button",{"loader-position":"center",disabled:!e.can_update,shape:"icon",color:"danger",fill:"outline",size:"medium",onClick:()=>e.can_update?salla.event.dispatch("rating::delete",{feedback_id:e.id}):void 0},i("i",{class:"sicon-trash-2 text-xl"})))):null}serializeRatingMedia(t){return JSON.stringify({images:t.images||[],videos:t.videos||[],product:t.product})}serializeProductRatings(){return JSON.stringify(this.productRatings)}render(){const t=this.orderItem,s=t?.rating;return t&&s&&this.fetchOrderId?i(e,null,i("section",{class:"flex justify-between items-start border-t mt-10 pt-8"},i("div",null,i("p",{innerHTML:s.content||""}),s.is_pending?i("span",null,this.label("pages.rating.pending","قيد المراجعة")):null,i("div",{class:"flex flex-row flex-wrap gap-2"},i("salla-rating-stars",{size:"large",value:s.stars}),i("salla-review-factors-tags",{"order-id":this.fetchOrderId,"rating-id":s.id,"product-id":t.product?.id})),i("div",{class:"mt-2"},i("salla-attachments",{rating:this.serializeRatingMedia(s),"product-ratings":this.serializeProductRatings(),"product-id":t.product?.id??null,"max-visible":8,clickable:!0}))),this.renderActions(t))):i(e,null)}static get watchers(){return{productId:["onProductIdChange"]}}};export{a as salla_review_order_item}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{r as t,c as s,h as i,H as e,a as n}from"./p-ze9e0dxM.js";import{A as o}from"./p-BuGRUUN_.js";import{A as l}from"./p-CcEEx00d.js";const d=class{constructor(i){t(this,i),this.optionsSaved=s(this,"optionsSaved"),this.productSelected=s(this,"productSelected"),this.product=null,this.sectionId=null,this.sectionIndex=0,this.productIndex=0,this.selectedOptions={},this.optionsResetTokens={},this.isLoading=!1,this.hasUnsavedChanges=!1,this.validationErrors=[],this.isProductAlreadySelected=!1}generateCacheKey(t,s,i){return`${t||"unknown"}-${s||0}-${i||"unknown"}`}handleProductChange(t){setTimeout((()=>{this.modal&&t&&this.modal.setTitle(t.name||"")}),100),this.validationErrors=[],this.hasUnsavedChanges=!1}async open(){this.modal?(this.isLoading=!0,this.product?.name&&this.modal.setTitle(this.product.name),this.modal.open(),setTimeout((async()=>{this.product?.id&&await this.initializeSelectedOptions(),this.product?.name&&this.modal.setTitle(this.product.name),this.modal.stopLoading(),this.isLoading=!1}),300)):requestAnimationFrame((()=>this.open()))}async close(){this.modal&&this.modal.close()}async refreshOptionsState(){this.selectedOptions={...this.selectedOptions}}componentDidLoad(){this.modalOpenListener=t=>{this.product=t.product,this.sectionId=t.sectionId||null,this.sectionIndex=t.sectionIndex||0,this.productIndex=t.productIndex||0,this.isProductAlreadySelected=!!t.isProductAlreadySelected,this.open()},salla.event.on("multiple-bundle-product-modal::open",this.modalOpenListener),this.clearOptionsListener=t=>{t&&t.productId&&this.clearProductOptions(t.productId,t.sectionId,t.productIndex)},salla.event.on("multiple-bundle-product-modal::clear-options",this.clearOptionsListener),this.optionChangeListener=t=>{const s=t.detail||t,{option:i,detail:e}=s,n=i||s.option_id&&this.product?.options?.find((t=>t.id===s.option_id||String(t.id)===String(s.option_id))),o=e||(s.id?s:null);this.product?.id&&n&&this.handleOptionChange(Number(this.product.id),n,o)},salla.event.on("product-options::change",this.optionChangeListener),this.checkboxChangeListener=t=>{const s=t.target;if(s&&"checkbox"===s.type&&s.name&&s.name.includes("bundle[")&&s.name.includes("][id]")){const t=s.name.match(/^bundle\[([^\]]+)\]\[([^\]]+)\]\[id\]$/);if(t&&!s.checked){if("true"===s.getAttribute("data-selection-locked"))return void(s.checked=!0);const[,i,e]=t,n=s.value,o=this.host.closest("form");this.cleanupProductDeselection({sectionId:i,productIndex:parseInt(e,10),productId:n,form:o,uncheckedInput:s})}}},document.addEventListener("change",this.checkboxChangeListener)}disconnectedCallback(){this.checkboxChangeListener&&document.removeEventListener("change",this.checkboxChangeListener),this.optionChangeListener&&salla.event.off("product-options::change",this.optionChangeListener),this.modalOpenListener&&salla.event.off("multiple-bundle-product-modal::open",this.modalOpenListener),this.clearOptionsListener&&salla.event.off("multiple-bundle-product-modal::clear-options",this.clearOptionsListener)}cleanupProductDeselection(t){const{sectionId:s,productIndex:i,productId:e,form:n,uncheckedInput:o}=t;if(this.clearProductOptions(e,s,i),n){const t=`bundle[${s}][${i}]`;Array.from(n.querySelectorAll(`input[name^="${t}"]`)).forEach((s=>{if(s===o)return;const i="hidden"===s.type,n=s.getAttribute("data-product-id")===String(e)&&s.name?.startsWith(t);(i||n)&&s.remove()})),requestAnimationFrame((()=>{const t=new window.Event("change",{bubbles:!0});n.dispatchEvent(t)}))}}generateFormInputName(t,s,i){return`bundle[${t}][${s}][options][${i}]`}async initializeSelectedOptions(){if(!this.product?.id)return;const t=this.product.id,s=this.generateCacheKey(this.sectionId,this.productIndex,t),i=document.querySelector(`salla-product-options[product-id="${t}"]`);if(i)try{const t=await i.getSelectedOptions();t&&t.length>0&&(this.selectedOptions={...this.selectedOptions,[s]:t})}catch(t){console.warn("Could not initialize selected options:",t)}}clearProductOptions(t,s,i){const e={...this.selectedOptions};if(null==s||null==i||Number.isNaN(i)){const s=`-${String(t)}`,i=[];Object.keys(e).forEach((t=>{t.endsWith(s)&&(delete e[t],i.push(t))})),i.forEach((t=>this.bumpOptionsResetToken(t)))}else{const n=this.generateCacheKey(s,i,t);delete e[n],this.bumpOptionsResetToken(n)}this.selectedOptions=e,this.validationErrors=[],this.hasUnsavedChanges=!1}bumpOptionsResetToken(t){t&&(this.optionsResetTokens={...this.optionsResetTokens,[t]:(this.optionsResetTokens[t]||0)+1})}async handleOptionChange(t,s,i){const e=this.generateCacheKey(this.sectionId,this.productIndex,t),n=document.querySelector(`salla-product-options[product-id="${t}"]`);let o=[];if(n)try{o=await n.getSelectedOptions()||[]}catch(t){console.warn("Could not get current selections from component:",t)}if(o.length>0)this.selectedOptions={...this.selectedOptions,[e]:o};else if(this.selectedOptions[e]&&this.selectedOptions[e].length>0){const t=[...this.selectedOptions[e]||[]],n=t.findIndex((t=>t.option_id===s.id));n>-1?i&&null!=i.id?t[n]={...i,option_id:s.id}:t.splice(n,1):i&&null!=i.id&&t.push({...i,option_id:s.id}),this.selectedOptions={...this.selectedOptions,[e]:t}}else i&&null!=i.id&&(this.selectedOptions={...this.selectedOptions,[e]:[{...i,option_id:s.id}]});this.hasUnsavedChanges=!0,this.validationErrors=[]}async validateOptions(){if(!this.product?.options)return!0;const t=[],s=this.product.id,i=this.generateCacheKey(this.sectionId,this.productIndex,s),e=document.querySelector(`salla-product-options[product-id="${s}"]`);let n=[];if(e)try{n=await e.getSelectedOptions()||[];const t=this.selectedOptions[i]||[];(t.length>n.length||0===n.length&&t.length>0)&&(n=t)}catch(t){n=this.selectedOptions[i]||[]}else n=this.selectedOptions[i]||[];return 0===n.length&&t.push(salla.lang.get("pages.products.no_options_selected")),this.product.options.forEach((s=>{s.required&&(n.some((t=>t.option_id==s.id))||t.push(salla.lang.get("pages.products.required_option_missing",{option:s.name})))})),this.validationErrors=t,0===t.length}async onSave(t){t.preventDefault();const s=this.product?.id;if(!s)return;const i=this.generateCacheKey(this.sectionId,this.productIndex,s);if(await new Promise((t=>setTimeout(t,100))),await this.validateOptions()){if(!this.isProductAlreadySelected&&null!=this.sectionId){const t=this.host.closest("salla-multiple-bundle-product-details");if(!await(t?.canSelectBundleProduct(this.sectionId,s)))return void salla.notify.error(salla.lang.getWithDefault("pages.products.bundle_selection_limit_reached","لا يمكنك اختيار المزيد من المنتجات في هذا القسم"))}this.isLoading=!0;try{const t=document.querySelector(`salla-product-options[product-id="${s}"]`);let e=await(t?.getSelectedOptions());if((!e||0===e.length)&&this.selectedOptions[i]?.length>0&&(e=this.selectedOptions[i]),!e||0===e.length)return void(this.isLoading=!1);this.selectedOptions={...this.selectedOptions,[i]:e};const n=this.host.closest("form");if(!n)return void(this.isLoading=!1);const o=`bundle[${this.sectionId}][${this.productIndex}]`;Array.from(n.querySelectorAll(`input[name^="${o}"][type="hidden"]`)).forEach((t=>t.remove())),Array.from(n.querySelectorAll(`[data-product-id="${s}"][name^="${o}"]`)).forEach((t=>t.remove()));const l=`bundle[${this.sectionId}][${this.productIndex}][id]`,d=document.getElementById(l);if(d)d.checked=!0;else{const t=document.createElement("input");t.type="hidden",t.name=`bundle[${this.sectionId}][${this.productIndex}][id]`,t.value=String(s),t.dataset.productId=String(s),n.appendChild(t)}e.forEach((t=>{const i=t.option_id,e=document.createElement("input");e.type="hidden",e.name=this.generateFormInputName(this.sectionId,this.productIndex??0,i),e.value=String(t.id),e.dataset.productId=String(s),n.appendChild(e)}));const a=new window.Event("change",{bubbles:!0});n.dispatchEvent(a),this.optionsSaved.emit({productId:Number(s),selectedOptions:e,sectionId:this.sectionId,productIndex:this.productIndex}),this.sectionId&&this.productSelected.emit({productId:Number(s),sectionId:this.sectionId,product:this.product,fromModal:!0}),salla.notify.success(salla.lang.get("pages.products.options_saved")),this.hasUnsavedChanges=!1,this.validationErrors=[],this.modal.close()}catch(t){salla.notify.error(salla.lang.get("pages.products.options_save_error"))}finally{this.isLoading=!1}}else salla.notify.error(this.validationErrors.join(", "))}getOptionsWithSelectedState(){if(!this.product?.options)return[];const t=this.generateCacheKey(this.sectionId,this.productIndex,this.product.id),s=this.selectedOptions[t]||[];return this.product.options.map((t=>({...t,details:t.details.map((t=>{const i=s.some((s=>s.id===t.id));return{...t,is_selected:i}}))})))}render(){const t=this.product?.id,s=this.getOptionsWithSelectedState(),n=this.generateCacheKey(this.sectionId,this.productIndex,t),o=this.optionsResetTokens[n]||0,l=this.isLoading||s.some((t=>t.details.some((t=>t.is_selected&&!0===t.is_out))));return i(e,{key:"74f5fc9c02a5ea10a9d92d2427df05210740f3e4"},i("salla-modal",{key:"a00db7e88d2687ef106c3c384cd94b7d7b2ed443",isLoading:this.isLoading,ref:t=>this.modal=t,width:"md",centered:!1,id:`s-multiple-bundle-product-options-modal-options-${t}`,class:"s-multiple-bundle-product-options-modal-wrapper"},i("div",{key:"5ee1738c87ad75f7e812aefb3ea04b71f153673a",slot:"loading"},i("salla-skeleton",{key:"ebb0bf70a092958bd4241e4b7bc42922efed87dc",height:"100%",width:"100%"})),this.product?.images&&this.product?.images.length>0&&i("salla-slider",{key:"871db23f2811753e3f469a8e12483f4fd3166a40",id:`details-slider-${this.product?.id}`,type:"thumbs",loop:!1,"auto-height":!0,"listen-to-thumbnails-option":!0,showThumbsControls:!1,controlsOuter:!1,showControls:!1,class:"s-multiple-bundle-product-options-modal-slider",verticalThumbs:!0,thumbsConfig:{centeredSlides:!0,centeredSlidesBounds:!0,slidesPerView:Math.min(5,Math.max(1,this.product?.images.length)),watchOverflow:!0,watchSlidesProgress:!0,direction:"vertical",spaceBetween:10}},i("div",{key:"a80a29966c883094655558cdd861938f8c2c505f",slot:"items"},this.product?.images&&this.product?.images.map(((t,s)=>i("div",{key:s,class:"swiper-slide"},i("img",{src:t.url,alt:t.alt||`${this.product?.name} - Image ${s+1}`,loading:"lazy",onError:t=>{t.target.style.display="none"}}))))),this.product?.images&&this.product?.images.length>1&&i("div",{key:"bb38eec9d89c6fc1afbea740d23f21ea3b83892f",slot:"thumbs"},this.product?.images&&this.product?.images.map(((t,s)=>i("div",{key:s,"data-caption":`${this.product?.name} - Image ${s+1}`},i("img",{src:t.url,loading:"eager",class:"s-multiple-bundle-product-options-modal-slider-thumb",title:`${this.product?.name} - ${s+1}`,alt:t.alt||`${this.product?.name} - ${s+1}`,onError:t=>{t.target.style.display="none"}})))))),i("salla-product-options",{options:JSON.stringify(s),key:`${n}-reset-${o}`,"product-id":t,"unique-key":`${n}-reset-${o}`}),i("div",{key:"b18dbbdcbb37ff8fb61ec4be551c5d07cc04286e",slot:"footer"},i("div",{key:"1b71874c06aa379b515a1239fb9059da11e92609",class:"s-multiple-bundle-product-options-modal-footer"},i("salla-button",{key:"83db878dffdef845db6f904c9486d5c4cd003f31",onClick:t=>this.onSave(t),loading:this.isLoading,disabled:l},this.isLoading?salla.lang.get("common.elements.saving"):salla.lang.get("common.elements.save"))))))}get host(){return n(this)}static get watchers(){return{product:["handleProductChange"]}}};d.style=":host{display:block}";const a=class{constructor(i){t(this,i),this.productSelected=s(this,"productSelected"),this.productOptionsSelected=s(this,"productOptionsSelected"),this.selectedProducts={},this.isSelectionLocked=!1,this.selectionLimit=0,this.savedOptionsByInstance={},this.handleProductClick=(t,s)=>{const i=this.selectedProducts[this.section.id]?.has(t.id)||!1,e=this.getCheckbox(this.section.id,s);if(i&&this.isSelectionLocked)return void(e&&(e.checked=!0));if(!i&&this.isMaxSelectionReached()&&1!==this.selectionLimit)return;if(1===this.selectionLimit&&!i)return void this.productSelected.emit({product:t,sectionId:this.section.id});if(!e)return;const n=!e.checked;n||(this.dispatchClearOptionsEvent(t,s),this.clearSavedOptionsState(this.section.id,s)),e.checked=n,requestAnimationFrame((()=>{const t=new window.Event("change",{bubbles:!0});e.dispatchEvent(t)})),this.productSelected.emit({product:t,sectionId:this.section.id})},this.handleOptionsClick=t=>{!this.selectedProducts[this.section.id]?.has(t.id)&&this.isMaxSelectionReached()&&1!==this.selectionLimit||this.productOptionsSelected.emit({product:t,sectionId:this.section.id})}}getSelectedCount(){return this.selectedProducts[this.section?.id]?.size??0}isMaxSelectionReached(){return this.selectionLimit>1&&this.getSelectedCount()>=this.selectionLimit}isProductSelectionDisabled(t,s){return 0===t.quantity||!s&&this.isMaxSelectionReached()}getProductInstanceKey(t,s){return`${t}::${s}`}dispatchClearOptionsEvent(t,s){salla.event.dispatch("multiple-bundle-product-modal::clear-options",{productId:t.id,sectionId:this.section.id,sectionIndex:this.sectionIndex,productIndex:s})}handleOptionsSaved(t){const s=t.detail;if(!s)return;const{sectionId:i,productIndex:e,selectedOptions:n}=s;if(null==i||i!==this.section?.id)return;if(null==e||Number.isNaN(e))return;const o=this.getProductInstanceKey(i,e);if(n?.length)this.savedOptionsByInstance={...this.savedOptionsByInstance,[o]:!0};else if(this.savedOptionsByInstance[o]){const t={...this.savedOptionsByInstance};delete t[o],this.savedOptionsByInstance=t}}clearSavedOptionsState(t,s){const i=this.getProductInstanceKey(t,s);if(!this.savedOptionsByInstance[i])return;const e={...this.savedOptionsByInstance};delete e[i],this.savedOptionsByInstance=e}generateEventName(t,s){return`bundle[${t}][${s}][id]`}getCheckbox(t,s){const i=this.generateEventName(t,s);return this.host.querySelector(`input.s-multiple-bundle-product-checkbox[name="${i}"]`)}preventLockedDeselect(t,s){if(!this.isSelectionLocked||!s)return;t.preventDefault(),t.stopPropagation();const i=t.target;"checkbox"===i?.type&&(i.checked=!0)}render(){return i(e,{key:"17d96d9983fdb033c32d77228f52030ee408d856",class:"s-multiple-bundle-product-slider"},i("salla-slider",{key:"fe99a686cec9fe71728e651d1228564af1236483",type:"carousel",controlsOuter:!1,showControls:!1,id:`accordion-multiple-bundle-product-${this.section.id}`,pagination:!0,class:"s-multiple-bundle-product-wrapper-slider",sliderConfig:{spaceBetween:0}},i("div",{key:"2517a2b14ed787c32e1782fa7af04339660a0344",slot:"items"},this?.section?.products?.map(((t,s)=>{const e=this.selectedProducts[this.section.id]?.has(t.id)||!1,n=e&&this.isSelectionLocked,d=this.isProductSelectionDisabled(t,e),a=this.savedOptionsByInstance[this.getProductInstanceKey(this.section.id,s)]?salla.lang.getWithDefault("pages.products.edit_selected_options","تعديل الخيارات"):salla.lang.get("pages.products.choose_from_options");let c=salla.config.get("theme.is_rtl",!0)?o:l;return i("div",{class:"s-multiple-bundle-product-slide-one-third"+(d?" s-multiple-bundle-product-slide-one-third-disabled":""),key:t.id},i("div",{class:"s-multiple-bundle-product-card"},i("div",{class:"s-multiple-bundle-product-image-wrapper",onClick:()=>this.handleProductClick(t,s)},i("input",{id:this.generateEventName(this.section.id,s),type:"checkbox",class:"s-multiple-bundle-product-checkbox",checked:e,"data-selection-locked":n?"true":void 0,name:this.generateEventName(this.section.id,s),value:t.id,onClick:t=>this.preventLockedDeselect(t,e),onChange:t=>this.preventLockedDeselect(t,e)}),i("img",{src:t.image.url||salla.url.cdn("images/s-empty.png"),loading:"lazy",alt:t.image.alt||t.name,class:"s-multiple-bundle-product-image"})),i("div",{class:"s-multiple-bundle-product-content-wrapper"},i("div",{class:"s-multiple-bundle-product-content"},i("div",{class:"s-multiple-bundle-product-details"},i("div",{class:"s-multiple-bundle-product-title-wrapper"},i("h2",{class:"s-multiple-bundle-product-title"},i("a",{href:t?.url||"#",target:"_blank",rel:"noopener noreferrer"},t.name))),i("div",{class:"s-multiple-bundle-product-price-wrapper"},i("span",{class:"s-multiple-bundle-product-price"},i("span",{innerHTML:salla.money(t.price)})),t.sale_price>0&&i("span",{class:"s-multiple-bundle-product-price-discount"},i("span",{innerHTML:salla.money(t.regular_price)})))),t.quantity_in_group>0&&0!==t.quantity&&i("span",{class:"s-multiple-bundle-product-badge"},salla.lang.get("pages.products.pieces"),i("span",null,t.quantity_in_group)),0===t.quantity&&i("span",{class:"s-multiple-bundle-product-badge"},salla.lang.get("pages.products.quantity_in_group_finished"))),t.options?.length>0&&i("button",{class:"s-multiple-bundle-product-button",onClick:()=>this.handleOptionsClick(t),type:"button"},a,i("span",{class:"s-multiple-bundle-product-button-icon",innerHTML:c})))))})))))}get host(){return n(this)}};a.style="";export{d as salla_multiple_bundle_product_options_modal,a as salla_multiple_bundle_product_slider}
4
+ import{r as t,c as s,h as i,H as e,a as n}from"./p-DvJClBwJ.js";import{A as o}from"./p-BuGRUUN_.js";import{A as l}from"./p-CcEEx00d.js";const d=class{constructor(i){t(this,i),this.optionsSaved=s(this,"optionsSaved"),this.productSelected=s(this,"productSelected"),this.product=null,this.sectionId=null,this.sectionIndex=0,this.productIndex=0,this.selectedOptions={},this.optionsResetTokens={},this.isLoading=!1,this.hasUnsavedChanges=!1,this.validationErrors=[],this.isProductAlreadySelected=!1}generateCacheKey(t,s,i){return`${t||"unknown"}-${s||0}-${i||"unknown"}`}handleProductChange(t){setTimeout((()=>{this.modal&&t&&this.modal.setTitle(t.name||"")}),100),this.validationErrors=[],this.hasUnsavedChanges=!1}async open(){this.modal?(this.isLoading=!0,this.product?.name&&this.modal.setTitle(this.product.name),this.modal.open(),setTimeout((async()=>{this.product?.id&&await this.initializeSelectedOptions(),this.product?.name&&this.modal.setTitle(this.product.name),this.modal.stopLoading(),this.isLoading=!1}),300)):requestAnimationFrame((()=>this.open()))}async close(){this.modal&&this.modal.close()}async refreshOptionsState(){this.selectedOptions={...this.selectedOptions}}componentDidLoad(){this.modalOpenListener=t=>{this.product=t.product,this.sectionId=t.sectionId||null,this.sectionIndex=t.sectionIndex||0,this.productIndex=t.productIndex||0,this.isProductAlreadySelected=!!t.isProductAlreadySelected,this.open()},salla.event.on("multiple-bundle-product-modal::open",this.modalOpenListener),this.clearOptionsListener=t=>{t&&t.productId&&this.clearProductOptions(t.productId,t.sectionId,t.productIndex)},salla.event.on("multiple-bundle-product-modal::clear-options",this.clearOptionsListener),this.optionChangeListener=t=>{const s=t.detail||t,{option:i,detail:e}=s,n=i||s.option_id&&this.product?.options?.find((t=>t.id===s.option_id||String(t.id)===String(s.option_id))),o=e||(s.id?s:null);this.product?.id&&n&&this.handleOptionChange(Number(this.product.id),n,o)},salla.event.on("product-options::change",this.optionChangeListener),this.checkboxChangeListener=t=>{const s=t.target;if(s&&"checkbox"===s.type&&s.name&&s.name.includes("bundle[")&&s.name.includes("][id]")){const t=s.name.match(/^bundle\[([^\]]+)\]\[([^\]]+)\]\[id\]$/);if(t&&!s.checked){if("true"===s.getAttribute("data-selection-locked"))return void(s.checked=!0);const[,i,e]=t,n=s.value,o=this.host.closest("form");this.cleanupProductDeselection({sectionId:i,productIndex:parseInt(e,10),productId:n,form:o,uncheckedInput:s})}}},document.addEventListener("change",this.checkboxChangeListener)}disconnectedCallback(){this.checkboxChangeListener&&document.removeEventListener("change",this.checkboxChangeListener),this.optionChangeListener&&salla.event.off("product-options::change",this.optionChangeListener),this.modalOpenListener&&salla.event.off("multiple-bundle-product-modal::open",this.modalOpenListener),this.clearOptionsListener&&salla.event.off("multiple-bundle-product-modal::clear-options",this.clearOptionsListener)}cleanupProductDeselection(t){const{sectionId:s,productIndex:i,productId:e,form:n,uncheckedInput:o}=t;if(this.clearProductOptions(e,s,i),n){const t=`bundle[${s}][${i}]`;Array.from(n.querySelectorAll(`input[name^="${t}"]`)).forEach((s=>{if(s===o)return;const i="hidden"===s.type,n=s.getAttribute("data-product-id")===String(e)&&s.name?.startsWith(t);(i||n)&&s.remove()})),requestAnimationFrame((()=>{const t=new window.Event("change",{bubbles:!0});n.dispatchEvent(t)}))}}generateFormInputName(t,s,i){return`bundle[${t}][${s}][options][${i}]`}async initializeSelectedOptions(){if(!this.product?.id)return;const t=this.product.id,s=this.generateCacheKey(this.sectionId,this.productIndex,t),i=document.querySelector(`salla-product-options[product-id="${t}"]`);if(i)try{const t=await i.getSelectedOptions();t&&t.length>0&&(this.selectedOptions={...this.selectedOptions,[s]:t})}catch(t){console.warn("Could not initialize selected options:",t)}}clearProductOptions(t,s,i){const e={...this.selectedOptions};if(null==s||null==i||Number.isNaN(i)){const s=`-${String(t)}`,i=[];Object.keys(e).forEach((t=>{t.endsWith(s)&&(delete e[t],i.push(t))})),i.forEach((t=>this.bumpOptionsResetToken(t)))}else{const n=this.generateCacheKey(s,i,t);delete e[n],this.bumpOptionsResetToken(n)}this.selectedOptions=e,this.validationErrors=[],this.hasUnsavedChanges=!1}bumpOptionsResetToken(t){t&&(this.optionsResetTokens={...this.optionsResetTokens,[t]:(this.optionsResetTokens[t]||0)+1})}async handleOptionChange(t,s,i){const e=this.generateCacheKey(this.sectionId,this.productIndex,t),n=document.querySelector(`salla-product-options[product-id="${t}"]`);let o=[];if(n)try{o=await n.getSelectedOptions()||[]}catch(t){console.warn("Could not get current selections from component:",t)}if(o.length>0)this.selectedOptions={...this.selectedOptions,[e]:o};else if(this.selectedOptions[e]&&this.selectedOptions[e].length>0){const t=[...this.selectedOptions[e]||[]],n=t.findIndex((t=>t.option_id===s.id));n>-1?i&&null!=i.id?t[n]={...i,option_id:s.id}:t.splice(n,1):i&&null!=i.id&&t.push({...i,option_id:s.id}),this.selectedOptions={...this.selectedOptions,[e]:t}}else i&&null!=i.id&&(this.selectedOptions={...this.selectedOptions,[e]:[{...i,option_id:s.id}]});this.hasUnsavedChanges=!0,this.validationErrors=[]}async validateOptions(){if(!this.product?.options)return!0;const t=[],s=this.product.id,i=this.generateCacheKey(this.sectionId,this.productIndex,s),e=document.querySelector(`salla-product-options[product-id="${s}"]`);let n=[];if(e)try{n=await e.getSelectedOptions()||[];const t=this.selectedOptions[i]||[];(t.length>n.length||0===n.length&&t.length>0)&&(n=t)}catch(t){n=this.selectedOptions[i]||[]}else n=this.selectedOptions[i]||[];return 0===n.length&&t.push(salla.lang.get("pages.products.no_options_selected")),this.product.options.forEach((s=>{s.required&&(n.some((t=>t.option_id==s.id))||t.push(salla.lang.get("pages.products.required_option_missing",{option:s.name})))})),this.validationErrors=t,0===t.length}async onSave(t){t.preventDefault();const s=this.product?.id;if(!s)return;const i=this.generateCacheKey(this.sectionId,this.productIndex,s);if(await new Promise((t=>setTimeout(t,100))),await this.validateOptions()){if(!this.isProductAlreadySelected&&null!=this.sectionId){const t=this.host.closest("salla-multiple-bundle-product-details");if(!await(t?.canSelectBundleProduct(this.sectionId,s)))return void salla.notify.error(salla.lang.getWithDefault("pages.products.bundle_selection_limit_reached","لا يمكنك اختيار المزيد من المنتجات في هذا القسم"))}this.isLoading=!0;try{const t=document.querySelector(`salla-product-options[product-id="${s}"]`);let e=await(t?.getSelectedOptions());if((!e||0===e.length)&&this.selectedOptions[i]?.length>0&&(e=this.selectedOptions[i]),!e||0===e.length)return void(this.isLoading=!1);this.selectedOptions={...this.selectedOptions,[i]:e};const n=this.host.closest("form");if(!n)return void(this.isLoading=!1);const o=`bundle[${this.sectionId}][${this.productIndex}]`;Array.from(n.querySelectorAll(`input[name^="${o}"][type="hidden"]`)).forEach((t=>t.remove())),Array.from(n.querySelectorAll(`[data-product-id="${s}"][name^="${o}"]`)).forEach((t=>t.remove()));const l=`bundle[${this.sectionId}][${this.productIndex}][id]`,d=document.getElementById(l);if(d)d.checked=!0;else{const t=document.createElement("input");t.type="hidden",t.name=`bundle[${this.sectionId}][${this.productIndex}][id]`,t.value=String(s),t.dataset.productId=String(s),n.appendChild(t)}e.forEach((t=>{const i=t.option_id,e=document.createElement("input");e.type="hidden",e.name=this.generateFormInputName(this.sectionId,this.productIndex??0,i),e.value=String(t.id),e.dataset.productId=String(s),n.appendChild(e)}));const a=new window.Event("change",{bubbles:!0});n.dispatchEvent(a),this.optionsSaved.emit({productId:Number(s),selectedOptions:e,sectionId:this.sectionId,productIndex:this.productIndex}),this.sectionId&&this.productSelected.emit({productId:Number(s),sectionId:this.sectionId,product:this.product,fromModal:!0}),salla.notify.success(salla.lang.get("pages.products.options_saved")),this.hasUnsavedChanges=!1,this.validationErrors=[],this.modal.close()}catch(t){salla.notify.error(salla.lang.get("pages.products.options_save_error"))}finally{this.isLoading=!1}}else salla.notify.error(this.validationErrors.join(", "))}getOptionsWithSelectedState(){if(!this.product?.options)return[];const t=this.generateCacheKey(this.sectionId,this.productIndex,this.product.id),s=this.selectedOptions[t]||[];return this.product.options.map((t=>({...t,details:t.details.map((t=>{const i=s.some((s=>s.id===t.id));return{...t,is_selected:i}}))})))}render(){const t=this.product?.id,s=this.getOptionsWithSelectedState(),n=this.generateCacheKey(this.sectionId,this.productIndex,t),o=this.optionsResetTokens[n]||0,l=this.isLoading||s.some((t=>t.details.some((t=>t.is_selected&&!0===t.is_out))));return i(e,{key:"74f5fc9c02a5ea10a9d92d2427df05210740f3e4"},i("salla-modal",{key:"a00db7e88d2687ef106c3c384cd94b7d7b2ed443",isLoading:this.isLoading,ref:t=>this.modal=t,width:"md",centered:!1,id:`s-multiple-bundle-product-options-modal-options-${t}`,class:"s-multiple-bundle-product-options-modal-wrapper"},i("div",{key:"5ee1738c87ad75f7e812aefb3ea04b71f153673a",slot:"loading"},i("salla-skeleton",{key:"ebb0bf70a092958bd4241e4b7bc42922efed87dc",height:"100%",width:"100%"})),this.product?.images&&this.product?.images.length>0&&i("salla-slider",{key:"871db23f2811753e3f469a8e12483f4fd3166a40",id:`details-slider-${this.product?.id}`,type:"thumbs",loop:!1,"auto-height":!0,"listen-to-thumbnails-option":!0,showThumbsControls:!1,controlsOuter:!1,showControls:!1,class:"s-multiple-bundle-product-options-modal-slider",verticalThumbs:!0,thumbsConfig:{centeredSlides:!0,centeredSlidesBounds:!0,slidesPerView:Math.min(5,Math.max(1,this.product?.images.length)),watchOverflow:!0,watchSlidesProgress:!0,direction:"vertical",spaceBetween:10}},i("div",{key:"a80a29966c883094655558cdd861938f8c2c505f",slot:"items"},this.product?.images&&this.product?.images.map(((t,s)=>i("div",{key:s,class:"swiper-slide"},i("img",{src:t.url,alt:t.alt||`${this.product?.name} - Image ${s+1}`,loading:"lazy",onError:t=>{t.target.style.display="none"}}))))),this.product?.images&&this.product?.images.length>1&&i("div",{key:"bb38eec9d89c6fc1afbea740d23f21ea3b83892f",slot:"thumbs"},this.product?.images&&this.product?.images.map(((t,s)=>i("div",{key:s,"data-caption":`${this.product?.name} - Image ${s+1}`},i("img",{src:t.url,loading:"eager",class:"s-multiple-bundle-product-options-modal-slider-thumb",title:`${this.product?.name} - ${s+1}`,alt:t.alt||`${this.product?.name} - ${s+1}`,onError:t=>{t.target.style.display="none"}})))))),i("salla-product-options",{options:JSON.stringify(s),key:`${n}-reset-${o}`,"product-id":t,"unique-key":`${n}-reset-${o}`}),i("div",{key:"b18dbbdcbb37ff8fb61ec4be551c5d07cc04286e",slot:"footer"},i("div",{key:"1b71874c06aa379b515a1239fb9059da11e92609",class:"s-multiple-bundle-product-options-modal-footer"},i("salla-button",{key:"83db878dffdef845db6f904c9486d5c4cd003f31",onClick:t=>this.onSave(t),loading:this.isLoading,disabled:l},this.isLoading?salla.lang.get("common.elements.saving"):salla.lang.get("common.elements.save"))))))}get host(){return n(this)}static get watchers(){return{product:["handleProductChange"]}}};d.style=":host{display:block}";const a=class{constructor(i){t(this,i),this.productSelected=s(this,"productSelected"),this.productOptionsSelected=s(this,"productOptionsSelected"),this.selectedProducts={},this.isSelectionLocked=!1,this.selectionLimit=0,this.savedOptionsByInstance={},this.handleProductClick=(t,s)=>{const i=this.selectedProducts[this.section.id]?.has(t.id)||!1,e=this.getCheckbox(this.section.id,s);if(i&&this.isSelectionLocked)return void(e&&(e.checked=!0));if(!i&&this.isMaxSelectionReached()&&1!==this.selectionLimit)return;if(1===this.selectionLimit&&!i)return void this.productSelected.emit({product:t,sectionId:this.section.id});if(!e)return;const n=!e.checked;n||(this.dispatchClearOptionsEvent(t,s),this.clearSavedOptionsState(this.section.id,s)),e.checked=n,requestAnimationFrame((()=>{const t=new window.Event("change",{bubbles:!0});e.dispatchEvent(t)})),this.productSelected.emit({product:t,sectionId:this.section.id})},this.handleOptionsClick=t=>{!this.selectedProducts[this.section.id]?.has(t.id)&&this.isMaxSelectionReached()&&1!==this.selectionLimit||this.productOptionsSelected.emit({product:t,sectionId:this.section.id})}}getSelectedCount(){return this.selectedProducts[this.section?.id]?.size??0}isMaxSelectionReached(){return this.selectionLimit>1&&this.getSelectedCount()>=this.selectionLimit}isProductSelectionDisabled(t,s){return 0===t.quantity||!s&&this.isMaxSelectionReached()}getProductInstanceKey(t,s){return`${t}::${s}`}dispatchClearOptionsEvent(t,s){salla.event.dispatch("multiple-bundle-product-modal::clear-options",{productId:t.id,sectionId:this.section.id,sectionIndex:this.sectionIndex,productIndex:s})}handleOptionsSaved(t){const s=t.detail;if(!s)return;const{sectionId:i,productIndex:e,selectedOptions:n}=s;if(null==i||i!==this.section?.id)return;if(null==e||Number.isNaN(e))return;const o=this.getProductInstanceKey(i,e);if(n?.length)this.savedOptionsByInstance={...this.savedOptionsByInstance,[o]:!0};else if(this.savedOptionsByInstance[o]){const t={...this.savedOptionsByInstance};delete t[o],this.savedOptionsByInstance=t}}clearSavedOptionsState(t,s){const i=this.getProductInstanceKey(t,s);if(!this.savedOptionsByInstance[i])return;const e={...this.savedOptionsByInstance};delete e[i],this.savedOptionsByInstance=e}generateEventName(t,s){return`bundle[${t}][${s}][id]`}getCheckbox(t,s){const i=this.generateEventName(t,s);return this.host.querySelector(`input.s-multiple-bundle-product-checkbox[name="${i}"]`)}preventLockedDeselect(t,s){if(!this.isSelectionLocked||!s)return;t.preventDefault(),t.stopPropagation();const i=t.target;"checkbox"===i?.type&&(i.checked=!0)}render(){return i(e,{key:"17d96d9983fdb033c32d77228f52030ee408d856",class:"s-multiple-bundle-product-slider"},i("salla-slider",{key:"fe99a686cec9fe71728e651d1228564af1236483",type:"carousel",controlsOuter:!1,showControls:!1,id:`accordion-multiple-bundle-product-${this.section.id}`,pagination:!0,class:"s-multiple-bundle-product-wrapper-slider",sliderConfig:{spaceBetween:0}},i("div",{key:"2517a2b14ed787c32e1782fa7af04339660a0344",slot:"items"},this?.section?.products?.map(((t,s)=>{const e=this.selectedProducts[this.section.id]?.has(t.id)||!1,n=e&&this.isSelectionLocked,d=this.isProductSelectionDisabled(t,e),a=this.savedOptionsByInstance[this.getProductInstanceKey(this.section.id,s)]?salla.lang.getWithDefault("pages.products.edit_selected_options","تعديل الخيارات"):salla.lang.get("pages.products.choose_from_options");let c=salla.config.get("theme.is_rtl",!0)?o:l;return i("div",{class:"s-multiple-bundle-product-slide-one-third"+(d?" s-multiple-bundle-product-slide-one-third-disabled":""),key:t.id},i("div",{class:"s-multiple-bundle-product-card"},i("div",{class:"s-multiple-bundle-product-image-wrapper",onClick:()=>this.handleProductClick(t,s)},i("input",{id:this.generateEventName(this.section.id,s),type:"checkbox",class:"s-multiple-bundle-product-checkbox",checked:e,"data-selection-locked":n?"true":void 0,name:this.generateEventName(this.section.id,s),value:t.id,onClick:t=>this.preventLockedDeselect(t,e),onChange:t=>this.preventLockedDeselect(t,e)}),i("img",{src:t.image.url||salla.url.cdn("images/s-empty.png"),loading:"lazy",alt:t.image.alt||t.name,class:"s-multiple-bundle-product-image"})),i("div",{class:"s-multiple-bundle-product-content-wrapper"},i("div",{class:"s-multiple-bundle-product-content"},i("div",{class:"s-multiple-bundle-product-details"},i("div",{class:"s-multiple-bundle-product-title-wrapper"},i("h2",{class:"s-multiple-bundle-product-title"},i("a",{href:t?.url||"#",target:"_blank",rel:"noopener noreferrer"},t.name))),i("div",{class:"s-multiple-bundle-product-price-wrapper"},i("span",{class:"s-multiple-bundle-product-price"},i("span",{innerHTML:salla.money(t.price)})),t.sale_price>0&&i("span",{class:"s-multiple-bundle-product-price-discount"},i("span",{innerHTML:salla.money(t.regular_price)})))),t.quantity_in_group>0&&0!==t.quantity&&i("span",{class:"s-multiple-bundle-product-badge"},salla.lang.get("pages.products.pieces"),i("span",null,t.quantity_in_group)),0===t.quantity&&i("span",{class:"s-multiple-bundle-product-badge"},salla.lang.get("pages.products.quantity_in_group_finished"))),t.options?.length>0&&i("button",{class:"s-multiple-bundle-product-button",onClick:()=>this.handleOptionsClick(t),type:"button"},a,i("span",{class:"s-multiple-bundle-product-button-icon",innerHTML:c})))))})))))}get host(){return n(this)}};a.style="";export{d as salla_multiple_bundle_product_options_modal,a as salla_multiple_bundle_product_slider}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{r as t,c as s,h as e,H as i,a as r}from"./p-ze9e0dxM.js";import{S as o}from"./p-DiKTtDW5.js";import{H as a}from"./p-wYYV5ykR.js";const n=class{constructor(e){t(this,e),this.productsFetched=s(this,"productsFetched"),this.selectionChanged=s(this,"selectionChanged"),this.autoload=!1,this.productCardComponent="custom-salla-product-card",this.selectable=!1,this.page=1,this.placeholderText=salla.lang.get("pages.categories.no_products"),this.endOfText=salla.lang.get("common.elements.end_of_content"),this.failedLoadMore=salla.lang.get("common.elements.failed_to_load_more"),this.currentPage=salla.config.get("page"),this.filtersSnapshot=[],this.selectedProducts=new Map,this.lastViewedProductKey="lastViewedProductId",this.filtersKey="filters",this.infiniteScrollStateKey="infiniteScrollState",this.prevCategoryIdKey="prevCategoryId",this.isProcessing=!1,this.scrollTimeout=null,this.requestId=null,this.boundScrollToLastViewedProduct=()=>this.scrollToLastViewedProduct(),this.boundHandleScroll=()=>this.handleScroll(),this.specialPagesWithoutIds={"product.index.latest":"latest","product.index.offers":"offers","product.index.search":"search","product.index.sales":"sales"},this.filtersChangedListener=t=>this.setFilters(t),this.onWishlistItemRemoved=(t,s)=>{if("wishlist"!==this.getSource()||!this.wrapper)return;const e=String(s),i=this.hasCustomComponent?this.productCardComponent:"salla-product-card";for(const t of Array.from(this.wrapper.children)){const s=t,r=t.querySelector(i),o=s.product?.id??r?.product?.id;if(null!=o&&String(o)===e){t.remove();break}}for(const t of Array.from(this.wrapper.children)){if(!t.classList.contains("s-products-list-selectable-item"))continue;const s=t;if(null!=s.product?.id&&String(s.product.id)===e&&!t.querySelector(i)){t.remove();break}}if(this.selectable){for(const t of Array.from(this.selectedProducts.keys()))String(t)===e&&this.selectedProducts.delete(t);this.emitSelection()}},this.onWishlistStorageSynced=()=>a.syncWishlistIcons(this.wrapper,`${this.productCardComponent}, salla-product-card`),this.includes=a.parseJson(this.includes||this.host.getAttribute("includes")),Array.isArray(this.includes)||(this.includes=null),a.setIncludes(this.includes)}connectedCallback(){this.langUnsubscribe=salla.lang.subscribe((()=>{this.placeholderText=salla.lang.get("pages.categories.no_products"),this.endOfText=salla.lang.get("common.elements.end_of_content"),this.failedLoadMore=salla.lang.get("common.elements.failed_to_load_more"),this.currentPage=salla.config.get("page")})),"scrollRestoration"in history&&(history.scrollRestoration="manual"),window.addEventListener("DOMContentLoaded",this.boundScrollToLastViewedProduct),salla.event.on("salla-filters::changed",this.filtersChangedListener),salla.event.on("wishlist::removed",this.onWishlistItemRemoved),salla.event.on("wishlist::storage.synced",this.onWishlistStorageSynced)}disconnectedCallback(){this.langUnsubscribe?.(),window.removeEventListener("DOMContentLoaded",this.boundScrollToLastViewedProduct),window.removeEventListener("scroll",this.boundHandleScroll),salla.event.off("salla-filters::changed",this.filtersChangedListener),salla.event.off("wishlist::removed",this.onWishlistItemRemoved),salla.event.off("wishlist::storage.synced",this.onWishlistStorageSynced)}async setFilters(t){if(!0===this.filtersResults&&t&&JSON.stringify(t)!==JSON.stringify(this.parsedFilters))return window.scrollTo({top:0,behavior:"smooth"}),this.parsedFilters=JSON.parse(JSON.stringify(t)),"product.index"==this.currentPage?.slug&&(this.currentCategoryIdFilter=this.parsedFilters?.category_id?this.toCategoryIdFilter(this.parsedFilters.category_id):null),this.reload()}async reload(){!this.autoload&&this.loadMoreWrapper&&(this.loadMoreWrapper.style.display="none"),this.hasInfiniteScroll&&salla.infiniteScroll.destroy(this.infiniteScroll),await this.buildNextPageUrl(),this.wrapper.innerHTML="",this.hasInfiniteScroll?this.init():this.getInitialData(),this.showPlaceholder&&(this.showPlaceholder=!1,this.placeholderLoader=document.createElement("div"),this.placeholderLoader.classList.add("s-products-list-loading-wrapper"),this.placeholderLoader.style.display="inherit",this.placeholderLoader.innerHTML='<span class="s-button-loader s-button-loader-center s-infinite-scroll-btn-loader"></span>',this.host.insertAdjacentElement("afterend",this.placeholderLoader))}isFilterable(){return salla.config.get("store.settings.product.filters")&&this.filtersResults}getCachedFilters(){return Array.isArray(this.filtersSnapshot)&&this.filtersSnapshot.length?JSON.parse(JSON.stringify(this.filtersSnapshot)):null}emitFilters(t){if(!this.isFilterable())return;if(t.filters)return this.filtersResults=!0,this.filtersSnapshot=JSON.parse(JSON.stringify(t.filters)),void salla.event.emit("filters::fetched",{filters:t.filters});const s=t.cursor?.current>1?this.getCachedFilters():null;if(s)return this.filtersResults=!0,void salla.event.emit("filters::fetched",{filters:s});this.filtersSnapshot=[],salla.event.emit("filters::hidden")}isSourceWithoutValue(){const t=this.getSource();if("wishlist"===t){const t=new URLSearchParams(window.location.search);return!(t.has("source_value")||t.has("source_value[]")||this.sourceValue)}return["offers","latest","sales","top-rated","reorder"].includes(t)}animateItems(){const t=Array.from(this.host.querySelectorAll("salla-product-card"));t.length&&(t.forEach((t=>t.classList.remove("s-products-list-item-animate"))),t[0].getBoundingClientRect(),t.forEach(((t,s)=>{t.style.animationDelay=100*s+"ms",t.classList.add("s-products-list-item-animate")})))}async initBaseNextPageUrl(t){this.nextPage=salla.url.api(`products?source=${t}`),this.includes?.length&&(this.nextPage+=`&includes[]=${this.includes.join("&includes[]=")}`),this.limit&&(this.nextPage+=`&per_page=${this.limit>32?32:this.limit}`),this.sortBy&&(this.nextPage+=`&sort=${encodeURIComponent(this.sortBy)}`),"preview"===salla.config.get("theme.mode")&&(this.nextPage+="&use_username_url=1"),this.nextPage+="&filterable=1";for(const[t,s]of Object.entries(this.parsedFilters||{}))if("source_value"!==t&&"source_value[]"!==t)if(["string","number"].includes(typeof s))this.nextPage+=`&filters[${encodeURIComponent(t)}]=${encodeURIComponent(s)}`;else if(Array.isArray(s))s.forEach((s=>this.nextPage+=`&filters[${encodeURIComponent(t)}][]=${encodeURIComponent(s)}`));else if("object"==typeof s)for(const[e,i]of Object.entries(s))this.nextPage+=`&filters[${encodeURIComponent(t)}][${encodeURIComponent(e)}]=${encodeURIComponent(i)}`;this.nextPage=await this.applyBeforeBuildListUrl(this.nextPage)}async buildNextPageUrl(){let t=this.getSource();if("json"===t)return;const s=sessionStorage.getItem(this.infiniteScrollStateKey);if(s){const{nextPage:t}=JSON.parse(s);if(!t)return}if(await this.initBaseNextPageUrl(t),!this.isSourceWithoutValue())if(["search","related","landing-page"].includes(t))this.nextPage+=`&source_value=${this.getSourceValue()}`;else try{this.nextPage+=`&source_value[]=${this.getSourceValue().join("&source_value[]=")}`}catch(s){salla.logger.warn(`source-value prop should be array of ids ex source-value="[1,2,3]" for the source [${t}]`),this.sourceValueIsValid=!1}}loading(t=!0,s=!1){if(t){let t=s&&!this.autoload?this.btnLoader:this.loader;t&&(t.style.display="inherit")}else this.autoload||this.btnLoader&&(this.btnLoader.style.display="none"),this.loader&&(this.loader.style.display="none")}getItemHTML(t){"landing-page"===this.getSource()&&(t.url=""),"search"===this.getSource()&&t.url&&(t.url=salla.url.addParamToUrl("_svs","search-result",t.url));const s=document.createElement(this.hasCustomComponent?this.productCardComponent:"salla-product-card");if(s.product=t,this.compactCards&&(s.compact=!0,s.toggleAttribute("compact",!0)),this.applyLandingPageStyles(s),this.applyHorizontalCardStyles(s),this.applyOutOfStockVisibility(s,t),s.addEventListener("click",(s=>{const e=s.target;e.closest("a")?(a.saveProductSource(this.getSource()),a.saveProductPosition(t.position),a.saveRequestId(this.requestId),this.hasInfiniteScroll&&(this.takeStateSnapshot(),sessionStorage.setItem(this.lastViewedProductKey,t.id))):e.closest("salla-add-product-button")&&(a.saveProductPosition(t.position),a.saveRequestId(this.requestId))})),this.selectable){const e=this.wrapSelectableItem(s,t);return this.applyOutOfStockVisibility(e,t),e}return s}applyOutOfStockVisibility(t,s){s?.is_out_of_stock&&!0===salla.config.get("store.settings.product.hide_out_of_stock")&&(t.hidden=!0,t.style.display="none",t.setAttribute("aria-hidden","true"),t.setAttribute("data-out-of-stock-hidden",""))}wrapSelectableItem(t,s){const e=document.createElement("div");e.className="s-products-list-selectable-item",e.product=s;const i=this.selectedProducts.has(s.id);i&&e.classList.add("s-products-list-item-selected");const r=document.createElement("label");r.className="s-products-list-select-control",r.setAttribute("aria-label",salla.lang.get("common.elements.select","تحديد"));const o=document.createElement("input");return o.type="checkbox",o.className="s-products-list-select-checkbox",o.checked=i,o.addEventListener("change",(()=>this.toggleSelection(s,e,o.checked))),r.appendChild(o),e.appendChild(r),e.appendChild(t),e}toggleSelection(t,s,e){e?(this.selectedProducts.set(t.id,t),s?.classList.add("s-products-list-item-selected")):(this.selectedProducts.delete(t.id),s?.classList.remove("s-products-list-item-selected")),this.emitSelection()}emitSelection(){const t=Array.from(this.selectedProducts.values()),s=Array.from(this.selectedProducts.keys()),e={ids:s,products:t,count:s.length};this.selectionChanged.emit(e),salla.event.emit("salla-products-list::selection.changed",e)}appendProductCards(t){this.wrapper&&((Array.isArray(t)?t:[t]).forEach((t=>this.wrapper.append(t))),this.onWishlistStorageSynced())}refreshWishlistIconsAfterHydration(){return salla.wishlist.api.syncStorageFromServer()}onSelectableChanged(t,s){t!==s&&this.isReady&&this.wrapper&&(t||(this.selectedProducts.clear(),this.emitSelection()),this.reload())}applyLandingPageStyles(t){"landing-page"!==this.getSource()||this.hasCustomComponent||(t.toggleAttribute("hide-add-btn",!0),t.classList.add("s-product-card-fit-height"))}applyHorizontalCardStyles(t){this.horizontalCards&&(t.toggleAttribute("horizontal",!0),this.hasCustomComponent||t.toggleAttribute("shadow-on-hover",!0))}waitForResizing(t){let s=null;return new Promise((e=>{const i=new ResizeObserver((()=>{clearTimeout(s),s=setTimeout((()=>{i.disconnect(),e(null)}),160)}));i.observe(t)}))}waitForLayoutStable(t){let s=null,e=null;return new Promise((i=>{let r;const o=()=>{clearTimeout(s),clearTimeout(e),r.disconnect(),i(null)};r=new MutationObserver((()=>{clearTimeout(s),s=setTimeout(o,160)})),r.observe(t,{childList:!0,subtree:!0,attributes:!0}),e=setTimeout(o,1e3)}))}async waitForStableLayout(t){return await Promise.allSettled([this.waitForResizing(t),this.waitForLayoutStable(t)])}scrollToLastViewedProduct(){const t=sessionStorage.getItem(this.lastViewedProductKey);t&&!salla.url.is_page("product.single")&&this.isElementLoaded(`[id*="${t}"]`).then((()=>{const s=this.wrapper?.querySelector(`[id*="${t}"]`);if(!s)return;const e=()=>{const t=()=>{s.scrollIntoView({block:"start",behavior:"instant"});const t=matchMedia("(max-width: 1024px)").matches?"header .inner":"ul.main-menu",e=window?.header_is_sticky?document.querySelector(t)?.getBoundingClientRect()?.height??56:0,i=parseInt(getComputedStyle(this.wrapper).rowGap)??16;scrollBy({top:-1*(e+i),behavior:"instant"})};requestAnimationFrame(t),s.querySelectorAll("img.lazy").forEach((s=>{const e=s,i=()=>{requestAnimationFrame(t),e.onload=e.onerror=null};e.onload=i,e.onerror=i})),this.removeScrollRestorationSession()};this.waitForStableLayout(this.host).then((()=>requestAnimationFrame(e)))}))}isElementLoaded(t){return new Promise((s=>{const e=setInterval((()=>{if(document.querySelector(t))return clearInterval(e),s(document.querySelector(t))}),50)}))}takeStateSnapshot(){const t=[];for(let s=0;s<this.wrapper.children.length;s++){const e=this.wrapper.children?.[s];t.push(e.product)}const s={pageIndex:Math.max((this.infiniteScroll?.pageIndex??1)-1,1),nextPage:this.nextPage,currentPageData:t};if(this.isFilterable()){const t=sessionStorage.getItem(this.filtersKey);sessionStorage.setItem(this.filtersKey,t||JSON.stringify(this.filtersSnapshot))}sessionStorage.setItem(this.infiniteScrollStateKey,JSON.stringify(s));let e=salla.config.get("page.id");const i=Object.keys(this.specialPagesWithoutIds).find((t=>salla.url.is_page(t)));i?e=this.getCategoryIdentity(this.specialPagesWithoutIds[i]):null!==e&&(e=String(e)),sessionStorage.setItem(this.prevCategoryIdKey,e)}getCategoryIdentity(t){if("search"!==t)return t;const s=`search:${a.getProductsSourceValue(this.source,this.sourceValue)}`;return this.isSearchPageList()?`${s}:sort:${this.sortBy||"relevance"}`:s}removeScrollRestorationSession(){this.isFilterable()||sessionStorage.removeItem(this.filtersKey),sessionStorage.removeItem(this.infiniteScrollStateKey),sessionStorage.removeItem(this.lastViewedProductKey),sessionStorage.removeItem(this.prevCategoryIdKey)}loadStoredScrollState(){const t=sessionStorage.getItem(this.infiniteScrollStateKey),s=sessionStorage.getItem(this.filtersKey),e=sessionStorage.getItem(this.prevCategoryIdKey),i=this.getCategoryIdentity(this.specialPagesWithoutIds[salla.config.get("page.slug")]||null),r=salla.config.get("page.id"),o=salla.url.is_page("index"),a=salla.url.is_page("product.single"),n=i?e!==i:e!==String(r);if(e&&n&&!o&&!a||o&&!this.hasInfiniteScroll)return this.removeScrollRestorationSession(),this.switchToNormalBehavior=!0,!1;if(a)return this.switchToNormalBehavior=!0,!1;if(t)try{const{pageIndex:e,nextPage:i,currentPageData:r}=JSON.parse(t);if(s&&"undefined"!==s){const t=JSON.parse(s);this.filtersSnapshot=JSON.parse(JSON.stringify(t)),salla.event.emit("filters::fetched",{filters:t})}return this.page=e,this.nextPage=i,this.appendProductCards(r.map((t=>this.getItemHTML(t)))),!0}catch(t){console.error("Failed to load stored scroll state:",t),this.removeScrollRestorationSession()}return!1}getSource(){return a.getProductsSource(this.source)}isAuxiliaryProductsListSource(){return["json","selected","related","landing-page","recently"].includes(this.getSource())}toCategoryIdFilter(t){return Array.isArray(t)?t:t&&"object"==typeof t?Object.values(t):[t]}getSourceValue(){if("search"===this.getSource())return a.getProductsSourceValue(this.source,this.sourceValue);if("wishlist"===this.getSource()){const t=new URLSearchParams(window.location.search),s=t.getAll("source_value[]").length?t.getAll("source_value[]"):t.getAll("source_value");if(s.length)return s}return this.currentCategoryIdFilter?this.currentCategoryIdFilter:a.getProductsSourceValue(this.source,this.sourceValue)}getResponseHeader(t,s){if(!t)return;if("function"==typeof t.get)return t.get(s)||void 0;const e=t[s]??t[s.toLowerCase()];return"string"==typeof e?e:Array.isArray(e)&&"string"==typeof e[0]?e[0]:void 0}logFetchError(t,s,e,i){try{const r=s instanceof Error?s.name:void 0,o=s instanceof Error?s.message:String(s),a=i?.url||e,n=this.getResponseHeader(i?.headers,"cf-ray"),l=this.getResponseHeader(i?.headers,"cf-mitigated"),c=this.getResponseHeader(i?.headers,"server"),h="challenge"===l?.toLowerCase()||403===i?.status&&(!!n||!!c?.toLowerCase().includes("cloudflare")),d=`${r||""} ${o}`;let p="processing"===t?"processing":"unknown";"fetch"===t&&(h?p="cloudflare":/(?:^|\/)null(?:[/?#]|$)/i.test(a||"")?p="invalid_url":/timeout|timed out|abort/i.test(d)?p="timeout":!i?.status&&/fetch|network|load failed|connection/i.test(d)?p="network":i?.status&&(p="http")),salla.analytics?.log("salla::products.list.fetch.error",{errorPhase:t,failureType:p,cloudflareBlock:h,sourceList:this.getSource(),pageIndex:this.infiniteScroll?.pageIndex,httpStatus:i?.status,responseUrl:a,cfRay:n,cfMitigated:l,errorName:r,errorMessage:o.slice(0,500)})}catch{}}appendDataLayer(t){"object"==typeof dataLayer&&Array.isArray(dataLayer)&&dataLayer.push({event:"impressions",ecommerce:{currencyCode:salla.config.currency().code,impressions:t.map(((t,s)=>({id:t.id,name:t.name,price:t.price,brand:t.brand?.name||"",quantity:t.quantity,categories:[{name:t.category?.name||salla.config.get("page.title"),id:salla.config.get("page.id")}],category:t.category?.name||salla.config.get("page.title"),position:s+1})))}})}initiateInfiniteScroll(){if(!this.hasInfiniteScroll)return;const t=this.autoload&&this.includes&&this.includes.length>0;this.infiniteScroll=salla.infiniteScroll.initiate(this.wrapper,this.wrapper,{path:()=>this.nextPage,history:!1,nextPage:this.nextPage,scrollThreshold:!t&&!!this.autoload&&100,loadOnScroll:!t&&this.autoload},!0),this.infiniteScroll.pageIndex=this.page,this.infiniteScroll?.on("request",(()=>{this.loading(!0,!this.autoload)})),t&&window.addEventListener("scroll",this.boundHandleScroll),this.infiniteScroll?.on("load",(async(t,s,e)=>{if(!this.isProcessing){this.isProcessing=!0;try{try{const s=e?.headers?.get?.("s-request-id")||t?.request_id;s&&(this.requestId=s)}catch{}if(!t.data?.length&&2===this.infiniteScroll.pageIndex)return this.showPlaceholder=!0,salla.infiniteScroll.destroy(this.infiniteScroll),this.loading(!1),void(this.placeholderLoader&&this.placeholderLoader.remove());this.includes&&await this.injectAndProcessData(t);const s=await this.handleResponse(t);this.infiniteScroll.appendItems(s),this.onWishlistStorageSynced(),2===this.infiniteScroll.pageIndex&&(!this.autoload&&this.nextPage&&(this.loadMoreWrapper.style.display="block"),this.animateItems(),this.refreshInfiniteScrollMeasurements())}catch(t){console.error("Error during load:",t),this.logFetchError("processing",t,"string"==typeof s?s:void 0,e)}finally{this.isProcessing=!1}}})),this.infiniteScroll?.on("error",((t,s,e)=>{const i=e;this.status.querySelector(".s-infinite-scroll-error").classList.remove("s-hidden"),this.placeholderLoader&&this.placeholderLoader.remove(),this.loading(!1),this.isProcessing=!1,this.logFetchError("fetch",t,s,i)})),salla.onReady((()=>{sessionStorage.getItem(this.infiniteScrollStateKey)||this.manualLoadNextPage()}))}handleScroll(){this.isProcessing||this.scrollTimeout||(this.scrollTimeout=setTimeout((()=>{this.scrollTimeout=null,requestAnimationFrame((()=>{const t=this.wrapper.getBoundingClientRect(),s=window.innerHeight;t.bottom-s<=200&&!this.isProcessing&&this.nextPage&&this.manualLoadNextPage()}))}),200))}manualLoadNextPage(){this.nextPage&&this.infiniteScroll.loadNextPage()}refreshInfiniteScrollMeasurements(){this.autoload&&this.infiniteScroll?.updateMeasurements&&this.waitForStableLayout(document.body).then((()=>this.infiniteScroll?.updateMeasurements?.()))}async applyBeforeBuildListUrl(t){try{const s={component:this,url:t};return await salla.hooks.call("salla-products-list","beforeBuildListUrl",s),s.url}catch(s){return salla.logger.warn("beforeBuildListUrl hook failed",s?.message),t}}async resolveNextPageFromCursor(t){return t.cursor?t.cursor.next?await this.applyBeforeBuildListUrl(t.cursor.next):t.cursor.next:this.nextPage}async injectAndProcessData(t){try{await a.injectExtraFieldsToResponse(t)}catch(t){console.error("Error injecting data:",t)}}getInitialData(){return this.loading(),salla.api.withoutNotifier((()=>salla.product.api.fetch({source:a.getApiSource(this.getSource()),source_value:this.getSourceValue(),limit:this.limit,...this.isSearchPageList()&&this.sortBy?{sort:this.sortBy}:{}}).catch((t=>{const s=t?.response,e=s?.request?.responseURL||t?.config?.url;throw this.logFetchError("fetch",t,e,{status:s?.status,url:e,headers:s?.headers}),t})).then((async t=>t.data.length?(await a.injectExtraFieldsToResponse(t),this.firstPageResponse?void this.appendProductCards(await this.handleResponse(t)):(this.firstPageResponse=t,void(this.nextPage=await this.resolveNextPageFromCursor(t)))):(this.showPlaceholder=!0,this.placeholderLoader&&this.placeholderLoader.remove(),void this.loading(!1))))))}async loadMore(){this.infiniteScroll?.loadNextPage()}async getSelected(){return{ids:Array.from(this.selectedProducts.keys()),products:Array.from(this.selectedProducts.values())}}async getLoadedProducts(){const t=[];if(!this.wrapper)return t;for(let s=0;s<this.wrapper.children.length;s++){const e=this.wrapper.children[s];e?.product&&!e.hasAttribute("data-out-of-stock-hidden")&&t.push(e.product)}return t}async selectAll(){if(this.selectable&&this.wrapper){for(let t=0;t<this.wrapper.children.length;t++){const s=this.wrapper.children[t];if(s?.product&&!s.hasAttribute("data-out-of-stock-hidden")){this.selectedProducts.set(s.product.id,s.product),s.classList.add("s-products-list-item-selected");const t=s.querySelector(".s-products-list-select-checkbox");t&&(t.checked=!0)}}this.emitSelection()}}async clearSelection(){this.selectedProducts.clear(),this.wrapper&&(this.wrapper.querySelectorAll(".s-products-list-select-checkbox").forEach((t=>t.checked=!1)),this.wrapper.querySelectorAll(".s-products-list-item-selected").forEach((t=>t.classList.remove("s-products-list-item-selected")))),this.emitSelection()}isSearchPageList(){return"search"===this.getSource()&&"product.index.search"===this.currentPage?.slug&&!0===this.filtersResults}syncSearchSortControl(){if(!this.isSearchPageList()||this.sortBy)return;const t=document.querySelector("#product-filter");if(t&&"SELECT"===t.tagName){if(!t.querySelector('option[value=""]')){const s=document.createElement("option");s.setAttribute("value",""),s.textContent=salla.lang.getWithDefault("common.elements.search_results",salla.lang.get("pages.categories.sorting")),t.insertBefore(s,t.firstChild)}t.value=""}}componentWillLoad(){return salla.onReady().then((async()=>{this.hasCustomComponent=!!customElements.get(this.productCardComponent),this.sourceValueIsValid=!(!this.getSourceValue()&&!this.isSourceWithoutValue()),this.hasInfiniteScroll=!this.isAuxiliaryProductsListSource()&&!this.limit;let t=new URLSearchParams(window.location.search);try{const s=t.get("sort")||t.get("by");this.sortBy=this.isSearchPageList()?s||void 0:this.sortBy||s,this.parsedFilters=!0===this.filtersResults?a.extractFiltersFromUrl(t):{},!0===this.filtersResults&&this.parsedFilters?.category_id&&(this.currentCategoryIdFilter=this.toCategoryIdFilter(this.parsedFilters.category_id))}catch(t){salla.logger.warn("failed to get filters from url",t.message)}if(await this.buildNextPageUrl(),this.isReady=!0,!sessionStorage.getItem(this.infiniteScrollStateKey))if(this.sourceValueIsValid){if(!this.hasInfiniteScroll){if("json"===this.getSource())return this.getSourceValue().length?void setTimeout((()=>{this.appendProductCards(this.getSourceValue().map((t=>this.getItemHTML(t))))})):void(this.showPlaceholder=!0);if("selected"!==this.getSource()||this.getSourceValue().length)return this.getInitialData();this.showPlaceholder=!0}}else salla.logger.warn(`source-value prop is required for source [${this.getSource()}]`)}))}async componentDidLoad(){this.syncSearchSortControl(),this.hasInfiniteScroll&&this.init(),await Salla.hooks.registerComponent("salla-products-list",this),this.loadStoredScrollState()?(this.autoload?!this.nextPage&&this.loading(!1):this.nextPage?this.loadMoreWrapper&&(this.loadMoreWrapper.style.display="block"):(this.loadMoreWrapper&&(this.loadMoreWrapper.style.display="none"),this.status.querySelector(".s-infinite-scroll-last").classList.remove("s-hidden")),this.scrollToLastViewedProduct(),this.refreshInfiniteScrollMeasurements()):!this.firstPageResponse&&this.switchToNormalBehavior?this.getInitialData().then((async()=>{this.firstPageResponse?(this.appendProductCards(await this.handleResponse(this.firstPageResponse,!1)),setTimeout((()=>{if(!this.autoload&&this.nextPage&&1==this.infiniteScroll?.pageIndex){const t=this.host.querySelector(".s-infinite-scroll-wrapper");t&&(t.style.display="block")}}))):console.error("No response received after getInitialData.")})).catch((t=>{console.error("Error during initial data fetch:",t)})):this.firstPageResponse&&this.appendProductCards(await this.handleResponse(this.firstPageResponse,!1)),await this.refreshWishlistIconsAfterHydration()}canRender(){return this.sourceValueIsValid&&this.isReady}render(){return this.canRender()?this.showPlaceholder?e("div",{class:"s-products-list-placeholder"},e("span",{innerHTML:o}),e("p",null,this.placeholderText)):e(i,{class:"s-products-list"},e("div",{class:{"s-products-list-wrapper":!0,"s-products-list-horizontal-cards":this.horizontalCards&&!this.filtersResults,"s-products-list-vertical-cards":!this.horizontalCards&&!this.rowCards&&!this.filtersResults,"s-products-list-row-cards":this.rowCards,"s-products-list-compact-cards":this.compactCards,"s-products-list-filters-results":this.filtersResults},ref:t=>this.wrapper=t}),e("div",{class:"s-infinite-scroll-status",ref:t=>this.status=t},e("p",{class:"s-infinite-scroll-last infinite-scroll-last s-hidden"},this.endOfText),e("p",{class:"s-infinite-scroll-error infinite-scroll-error s-hidden"},this.failedLoadMore)),this.autoload&&e("div",{class:"s-products-list-loading-wrapper",style:{display:"none"},ref:t=>this.loader=t},e("span",{class:"s-button-loader s-button-loader-center s-infinite-scroll-btn-loader"})),this.hasInfiniteScroll&&this.nextPage&&!this.autoload?e("div",{class:"s-infinite-scroll-wrapper",style:{display:"none"},ref:t=>this.loadMoreWrapper=t},e("button",{onClick:()=>this.loadMore(),class:"s-infinite-scroll-btn s-button-btn s-button-primary"},e("span",{class:"s-button-text s-infinite-scroll-btn-text"},this.loadMoreText?this.loadMoreText:salla.lang.get("common.elements.load_more")),e("span",{class:"s-button-loader s-button-loader-center s-infinite-scroll-btn-loader",ref:t=>this.btnLoader=t,style:{display:"none"}}))):""):""}init(){this.initiateInfiniteScroll(),this.loading()}async handleResponse(t,s=!0){if(!t)return[];t._requestId&&(this.requestId=t._requestId);let e=this.getSource();if(1===t.cursor?.current){if(!this.isAuxiliaryProductsListSource()){let s=a.getPageTitleForSource(e);try{if("search"===this.getSource())s=salla.lang.get("common.elements.search_about",{word:a.escapeHtml(this.getSourceValue())});else if(!s){let e=Object.keys(this.parsedFilters||{}).length?null:this.getSourceValue()[0];s=t.filters?.find((t=>"category_id"===t.key))?.values?.find((t=>t.key==e))?.value??"";const i=salla.config.get("page.id");s||null==e||null==i||String(e)!==String(i)||(s=a.escapeHtml(salla.config.get("page.title")))}s+=(s?" - ":"")+salla.lang.choice("blocks.header.products_count",t.data?.length),15===t.data.length&&(s=s.replace(t.data.length,salla.lang.get("common.elements.more_than")+" "+t.data.length)),t.title=s}catch(t){salla.logger.error("Error::falid to handle response",t)}}a.generateProductSchema(t.data)}this.appendDataLayer(t.data),t.nextPage=this.nextPage,t.source=this.getSource(),t.sourceValue=this.getSourceValue(),salla.event.emit("salla-products-list::products.fetched",t),this.productsFetched.emit(t),this.emitFilters(t),s&&(this.nextPage=await this.resolveNextPageFromCursor(t)),this.loading(!1),this.placeholderLoader&&this.placeholderLoader.remove(),this.hasInfiniteScroll&&!this.nextPage&&(this.infiniteScroll.option({scrollThreshold:!1,loadOnScroll:!1}),this.status.querySelector(".s-infinite-scroll-last").classList.remove("s-hidden"));let i=await this.applyBeforeAppendItems(t.data);const r=[];for(let t=0;t<i.length;t++)r.push(this.getItemHTML(i[t]));return r}async applyBeforeAppendItems(t){const s={component:this,items:t};try{return await salla.hooks.call("salla-products-list","beforeAppendItems",s),Array.isArray(s.items)?s.items:t}catch{return t}}get host(){return r(this)}static get watchers(){return{selectable:["onSelectableChanged"]}}};n.style="/*!twlt*/.s-products-list-selectable-item{position:relative;border-radius:0.5rem;transition:box-shadow 0.15s ease-in-out}.s-products-list-item-selected{box-shadow:0 0 0 2px var(--color-primary)}.s-products-list-select-control{position:absolute;top:10px;inset-inline-start:10px;z-index:5;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.s-products-list-select-checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;position:relative;width:22px;height:22px;margin:0;cursor:pointer;color:var(--color-primary);border:1px solid rgba(0, 0, 0, 0.15);border-radius:6px;background-color:#fff;box-shadow:0 1px 3px rgba(0, 0, 0, 0.2);transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out}.s-products-list-select-checkbox:hover{border-color:var(--color-primary)}.s-products-list-select-checkbox:focus,.s-products-list-select-checkbox:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 1px 3px rgba(0, 0, 0, 0.2), 0 0 0 3px color-mix(in srgb, var(--color-primary) 30%, transparent)}.s-products-list-select-checkbox:checked,.s-products-list-select-checkbox:checked:hover,.s-products-list-select-checkbox:checked:focus{background-color:var(--color-primary);border-color:var(--color-primary)}.s-products-list-select-checkbox:checked::after{content:\"\";position:absolute;top:50%;left:50%;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:translate(-50%, -60%) rotate(45deg)}.s-products-list-row-cards .s-products-list-select-control{top:50%;inset-inline-start:14px;transform:translateY(-50%)}.s-products-list-row-cards .s-products-list-selectable-item>:not(.s-products-list-select-control){padding-inline-start:2.75rem}.s-products-list-item-animate{animation:s-products-list-item-in 1200ms linear both}@keyframes s-products-list-item-in{0%{opacity:0;transform:translateY(20px)}5%{opacity:0.428;transform:translateY(11.44px)}10%{opacity:0.845;transform:translateY(3.09px)}15%{opacity:1;transform:translateY(-2.19px)}20%{opacity:1;transform:translateY(-4.05px)}25%{opacity:1;transform:translateY(-3.54px)}30%{opacity:1;transform:translateY(-2.02px)}35%{opacity:1;transform:translateY(-0.55px)}40%{opacity:0.981;transform:translateY(0.39px)}45%{opacity:0.964;transform:translateY(0.72px)}50%{opacity:0.969;transform:translateY(0.62px)}55%{opacity:0.982;transform:translateY(0.36px)}60%{opacity:0.995;transform:translateY(0.1px)}65%{opacity:1;transform:translateY(-0.07px)}70%{opacity:1;transform:translateY(-0.13px)}75%{opacity:1;transform:translateY(-0.11px)}80%{opacity:1;transform:translateY(-0.06px)}85%{opacity:1;transform:translateY(-0.02px)}90%{opacity:0.999;transform:translateY(0.01px)}95%{opacity:0.999;transform:translateY(0.02px)}100%{opacity:1;transform:translateY(0px)}}.fixed{position:fixed}.sticky{position:sticky}.block{display:block}.grid{display:grid}.hidden{display:none}.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-products-list-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:2.5rem;padding-bottom:5rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-products-list-placeholder p{padding-top:0.5rem;text-align:center;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-products-list-placeholder span{margin-bottom:1rem;display:flex;height:8rem;width:8rem;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1));font-size:3rem;line-height:1;--tw-text-opacity:1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.s-products-list-placeholder span svg{margin-left:auto;margin-right:auto;height:4rem;width:4rem;fill:#d1d5db;text-align:center}.s-button-btn{position:relative;display:inline-flex;flex:1 1 0%;user-select:none;flex-direction:row-reverse;align-items:center;justify-content:center;white-space:nowrap;border-radius:var(--s-radius, 0.25rem);border-style:solid;padding-left:1.5rem;padding-right:1.5rem;padding-bottom:0.625rem;padding-top:0.5rem;font-size:0.875rem;line-height:1.25rem;font-weight:700;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms}.s-button-btn:hover{opacity:0.8}.s-button-primary{border-width:1px;border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-primary-reverse)}.s-button-primary:hover{background-color:var(--color-primary-dark)}.s-button-text{pointer-events:none;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms}.s-button-loader{margin-left:0.5rem;margin-right:0.5rem;display:flex;align-items:center;justify-content:center;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.s-button-loader::before{display:inline-block;height:1rem;content:var(--tw-content);width:1rem}@keyframes spin{to{content:var(--tw-content);transform:rotate(360deg)}}.s-button-loader::before{animation:spin 1s linear infinite;border-radius:9999px;border-width:2px;border-style:solid;border-top-color:var(--color-primary);border-left-color:var(--color-primary);border-bottom-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-border-opacity:1;border-right-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-content:'';content:var(--tw-content)}.s-button-loader-center .s-button-loader{position:absolute;top:50%;left:50%;margin:0px !important;--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))}.s-comments-item-like-btn .s-button-text{display:flex;flex-direction:row-reverse;gap:0.5rem}.s-hidden{display:none}.s-offer-products-list-single-column .s-products-list-wrapper{display:grid !important;grid-template-columns:repeat(1, minmax(0, 1fr)) !important;gap:0.75rem}.s-offer-drawer-card .s-products-list-compact-cards{margin-bottom:0px !important}.s-order-edit-products-list .s-products-list-wrapper{gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width: 769px){.s-order-edit-products-list .s-products-list-wrapper{grid-template-columns:repeat(3, minmax(0, 1fr))}}.s-order-edit-mobile-products-modal .products-list .s-products-list-wrapper{gap:0.625rem;grid-template-columns:repeat(2,minmax(0,1fr))}.s-products-list-wrapper{margin-bottom:2rem;display:grid}.s-products-list-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:2.5rem;padding-bottom:5rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-products-list-placeholder p{padding-top:0.5rem;text-align:center;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-products-list-row-cards{display:grid;gap:1rem}.s-products-list-vertical-cards{grid-template-columns:repeat(2, minmax(0, 1fr));gap:0.625rem}@media (min-width: 640px){.s-products-list-vertical-cards{gap:1rem}}@media (min-width: 768px){.s-products-list-vertical-cards{grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.5rem}}@media (min-width: 1024px){.s-products-list-vertical-cards{grid-template-columns:repeat(4, minmax(0, 1fr))}}.s-products-list-loading-wrapper{display:flex;height:5rem;align-items:center;justify-content:center}.s-products-list-filters-results{grid-template-columns:repeat(2, minmax(0, 1fr));gap:0.625rem}@media (min-width: 640px){.s-products-list-filters-results{gap:1rem}}@media (min-width: 768px){.s-products-list-filters-results{grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.5rem}}.s-products-list-horizontal-cards{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1rem}@media (min-width: 640px){.s-products-list-horizontal-cards{gap:2rem}}@media (min-width: 1024px){.s-products-list-horizontal-cards{grid-template-columns:repeat(2, minmax(0, 1fr))}}.s-products-list-compact-cards{display:flex !important;flex-direction:column !important;gap:0px !important}.s-products-list-placeholder span{margin-bottom:1rem;display:flex;height:8rem;width:8rem;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1));font-size:3rem;line-height:1;--tw-text-opacity:1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.s-products-list-placeholder span svg{margin-left:auto;margin-right:auto;height:4rem;width:4rem;fill:#d1d5db;text-align:center}/*!twlt*/.s-button-btn{position:relative;display:inline-flex;flex:1 1 0%;user-select:none;flex-direction:row-reverse;align-items:center;justify-content:center;white-space:nowrap;border-radius:var(--s-radius, 0.25rem);border-style:solid;padding-left:1.5rem;padding-right:1.5rem;padding-bottom:0.625rem;padding-top:0.5rem;font-size:0.875rem;line-height:1.25rem;font-weight:700;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms}.s-button-btn:hover{opacity:0.8}.s-button-primary{border-width:1px;border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-primary-reverse)}.s-button-primary:hover{background-color:var(--color-primary-dark)}.s-button-text{pointer-events:none;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms}.s-button-loader{margin-left:0.5rem;margin-right:0.5rem;display:flex;align-items:center;justify-content:center;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.s-button-loader::before{display:inline-block;height:1rem;content:var(--tw-content);width:1rem}@keyframes spin{to{content:var(--tw-content);transform:rotate(360deg)}}.s-button-loader::before{animation:spin 1s linear infinite;border-radius:9999px;border-width:2px;border-style:solid;border-top-color:var(--color-primary);border-left-color:var(--color-primary);border-bottom-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-border-opacity:1;border-right-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-content:'';content:var(--tw-content)}.s-button-loader-center .s-button-loader{position:absolute;top:50%;left:50%;margin:0px !important;--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))}.s-comments-item-like-btn .s-button-text{display:flex;flex-direction:row-reverse;gap:0.5rem}.s-infinite-scroll-wrapper{margin-top:1rem;text-align:center}.s-infinite-scroll-last{margin:0px;text-align:center}.s-infinite-scroll-error{margin:0px;text-align:center}";export{n as salla_products_list}
4
+ import{r as t,c as s,h as e,H as i,a as r}from"./p-DvJClBwJ.js";import{S as o}from"./p-DiKTtDW5.js";import{H as a}from"./p-CeKF1bL-.js";const n=class{constructor(e){t(this,e),this.productsFetched=s(this,"productsFetched"),this.selectionChanged=s(this,"selectionChanged"),this.autoload=!1,this.productCardComponent="custom-salla-product-card",this.selectable=!1,this.page=1,this.placeholderText=salla.lang.get("pages.categories.no_products"),this.endOfText=salla.lang.get("common.elements.end_of_content"),this.failedLoadMore=salla.lang.get("common.elements.failed_to_load_more"),this.currentPage=salla.config.get("page"),this.filtersSnapshot=[],this.selectedProducts=new Map,this.lastViewedProductKey="lastViewedProductId",this.filtersKey="filters",this.infiniteScrollStateKey="infiniteScrollState",this.prevCategoryIdKey="prevCategoryId",this.isProcessing=!1,this.scrollTimeout=null,this.requestId=null,this.boundScrollToLastViewedProduct=()=>this.scrollToLastViewedProduct(),this.boundHandleScroll=()=>this.handleScroll(),this.specialPagesWithoutIds={"product.index.latest":"latest","product.index.offers":"offers","product.index.search":"search","product.index.sales":"sales"},this.filtersChangedListener=t=>this.setFilters(t),this.onWishlistItemRemoved=(t,s)=>{if("wishlist"!==this.getSource()||!this.wrapper)return;const e=String(s),i=this.hasCustomComponent?this.productCardComponent:"salla-product-card";for(const t of Array.from(this.wrapper.children)){const s=t,r=t.querySelector(i),o=s.product?.id??r?.product?.id;if(null!=o&&String(o)===e){t.remove();break}}for(const t of Array.from(this.wrapper.children)){if(!t.classList.contains("s-products-list-selectable-item"))continue;const s=t;if(null!=s.product?.id&&String(s.product.id)===e&&!t.querySelector(i)){t.remove();break}}if(this.selectable){for(const t of Array.from(this.selectedProducts.keys()))String(t)===e&&this.selectedProducts.delete(t);this.emitSelection()}},this.onWishlistStorageSynced=()=>a.syncWishlistIcons(this.wrapper,`${this.productCardComponent}, salla-product-card`),this.includes=a.parseJson(this.includes||this.host.getAttribute("includes")),Array.isArray(this.includes)||(this.includes=null),a.setIncludes(this.includes)}connectedCallback(){this.langUnsubscribe=salla.lang.subscribe((()=>{this.placeholderText=salla.lang.get("pages.categories.no_products"),this.endOfText=salla.lang.get("common.elements.end_of_content"),this.failedLoadMore=salla.lang.get("common.elements.failed_to_load_more"),this.currentPage=salla.config.get("page")})),"scrollRestoration"in history&&(history.scrollRestoration="manual"),window.addEventListener("DOMContentLoaded",this.boundScrollToLastViewedProduct),salla.event.on("salla-filters::changed",this.filtersChangedListener),salla.event.on("wishlist::removed",this.onWishlistItemRemoved),salla.event.on("wishlist::storage.synced",this.onWishlistStorageSynced)}disconnectedCallback(){this.langUnsubscribe?.(),window.removeEventListener("DOMContentLoaded",this.boundScrollToLastViewedProduct),window.removeEventListener("scroll",this.boundHandleScroll),salla.event.off("salla-filters::changed",this.filtersChangedListener),salla.event.off("wishlist::removed",this.onWishlistItemRemoved),salla.event.off("wishlist::storage.synced",this.onWishlistStorageSynced)}async setFilters(t){if(!0===this.filtersResults&&t&&JSON.stringify(t)!==JSON.stringify(this.parsedFilters))return window.scrollTo({top:0,behavior:"smooth"}),this.parsedFilters=JSON.parse(JSON.stringify(t)),"product.index"==this.currentPage?.slug&&(this.currentCategoryIdFilter=this.parsedFilters?.category_id?this.toCategoryIdFilter(this.parsedFilters.category_id):null),this.reload()}async reload(){!this.autoload&&this.loadMoreWrapper&&(this.loadMoreWrapper.style.display="none"),this.hasInfiniteScroll&&salla.infiniteScroll.destroy(this.infiniteScroll),await this.buildNextPageUrl(),this.wrapper.innerHTML="",this.hasInfiniteScroll?this.init():this.getInitialData(),this.showPlaceholder&&(this.showPlaceholder=!1,this.placeholderLoader=document.createElement("div"),this.placeholderLoader.classList.add("s-products-list-loading-wrapper"),this.placeholderLoader.style.display="inherit",this.placeholderLoader.innerHTML='<span class="s-button-loader s-button-loader-center s-infinite-scroll-btn-loader"></span>',this.host.insertAdjacentElement("afterend",this.placeholderLoader))}isFilterable(){return salla.config.get("store.settings.product.filters")&&this.filtersResults}getCachedFilters(){return Array.isArray(this.filtersSnapshot)&&this.filtersSnapshot.length?JSON.parse(JSON.stringify(this.filtersSnapshot)):null}emitFilters(t){if(!this.isFilterable())return;if(t.filters)return this.filtersResults=!0,this.filtersSnapshot=JSON.parse(JSON.stringify(t.filters)),void salla.event.emit("filters::fetched",{filters:t.filters});const s=t.cursor?.current>1?this.getCachedFilters():null;if(s)return this.filtersResults=!0,void salla.event.emit("filters::fetched",{filters:s});this.filtersSnapshot=[],salla.event.emit("filters::hidden")}isSourceWithoutValue(){const t=this.getSource();if("wishlist"===t){const t=new URLSearchParams(window.location.search);return!(t.has("source_value")||t.has("source_value[]")||this.sourceValue)}return["offers","latest","sales","top-rated","reorder"].includes(t)}animateItems(){const t=Array.from(this.host.querySelectorAll("salla-product-card"));t.length&&(t.forEach((t=>t.classList.remove("s-products-list-item-animate"))),t[0].getBoundingClientRect(),t.forEach(((t,s)=>{t.style.animationDelay=100*s+"ms",t.classList.add("s-products-list-item-animate")})))}async initBaseNextPageUrl(t){this.nextPage=salla.url.api(`products?source=${t}`),this.includes?.length&&(this.nextPage+=`&includes[]=${this.includes.join("&includes[]=")}`),this.limit&&(this.nextPage+=`&per_page=${this.limit>32?32:this.limit}`),this.sortBy&&(this.nextPage+=`&sort=${encodeURIComponent(this.sortBy)}`),"preview"===salla.config.get("theme.mode")&&(this.nextPage+="&use_username_url=1"),this.nextPage+="&filterable=1";for(const[t,s]of Object.entries(this.parsedFilters||{}))if("source_value"!==t&&"source_value[]"!==t)if(["string","number"].includes(typeof s))this.nextPage+=`&filters[${encodeURIComponent(t)}]=${encodeURIComponent(s)}`;else if(Array.isArray(s))s.forEach((s=>this.nextPage+=`&filters[${encodeURIComponent(t)}][]=${encodeURIComponent(s)}`));else if("object"==typeof s)for(const[e,i]of Object.entries(s))this.nextPage+=`&filters[${encodeURIComponent(t)}][${encodeURIComponent(e)}]=${encodeURIComponent(i)}`;this.nextPage=await this.applyBeforeBuildListUrl(this.nextPage)}async buildNextPageUrl(){let t=this.getSource();if("json"===t)return;const s=sessionStorage.getItem(this.infiniteScrollStateKey);if(s){const{nextPage:t}=JSON.parse(s);if(!t)return}if(await this.initBaseNextPageUrl(t),!this.isSourceWithoutValue())if(["search","related","landing-page"].includes(t))this.nextPage+=`&source_value=${this.getSourceValue()}`;else try{this.nextPage+=`&source_value[]=${this.getSourceValue().join("&source_value[]=")}`}catch(s){salla.logger.warn(`source-value prop should be array of ids ex source-value="[1,2,3]" for the source [${t}]`),this.sourceValueIsValid=!1}}loading(t=!0,s=!1){if(t){let t=s&&!this.autoload?this.btnLoader:this.loader;t&&(t.style.display="inherit")}else this.autoload||this.btnLoader&&(this.btnLoader.style.display="none"),this.loader&&(this.loader.style.display="none")}getItemHTML(t){"landing-page"===this.getSource()&&(t.url=""),"search"===this.getSource()&&t.url&&(t.url=salla.url.addParamToUrl("_svs","search-result",t.url));const s=document.createElement(this.hasCustomComponent?this.productCardComponent:"salla-product-card");if(s.product=t,this.compactCards&&(s.compact=!0,s.toggleAttribute("compact",!0)),this.applyLandingPageStyles(s),this.applyHorizontalCardStyles(s),this.applyOutOfStockVisibility(s,t),s.addEventListener("click",(s=>{const e=s.target;e.closest("a")?(a.saveProductSource(this.getSource()),a.saveProductPosition(t.position),a.saveRequestId(this.requestId),this.hasInfiniteScroll&&(this.takeStateSnapshot(),sessionStorage.setItem(this.lastViewedProductKey,t.id))):e.closest("salla-add-product-button")&&(a.saveProductPosition(t.position),a.saveRequestId(this.requestId))})),this.selectable){const e=this.wrapSelectableItem(s,t);return this.applyOutOfStockVisibility(e,t),e}return s}applyOutOfStockVisibility(t,s){s?.is_out_of_stock&&!0===salla.config.get("store.settings.product.hide_out_of_stock")&&(t.hidden=!0,t.style.display="none",t.setAttribute("aria-hidden","true"),t.setAttribute("data-out-of-stock-hidden",""))}wrapSelectableItem(t,s){const e=document.createElement("div");e.className="s-products-list-selectable-item",e.product=s;const i=this.selectedProducts.has(s.id);i&&e.classList.add("s-products-list-item-selected");const r=document.createElement("label");r.className="s-products-list-select-control",r.setAttribute("aria-label",salla.lang.get("common.elements.select","تحديد"));const o=document.createElement("input");return o.type="checkbox",o.className="s-products-list-select-checkbox",o.checked=i,o.addEventListener("change",(()=>this.toggleSelection(s,e,o.checked))),r.appendChild(o),e.appendChild(r),e.appendChild(t),e}toggleSelection(t,s,e){e?(this.selectedProducts.set(t.id,t),s?.classList.add("s-products-list-item-selected")):(this.selectedProducts.delete(t.id),s?.classList.remove("s-products-list-item-selected")),this.emitSelection()}emitSelection(){const t=Array.from(this.selectedProducts.values()),s=Array.from(this.selectedProducts.keys()),e={ids:s,products:t,count:s.length};this.selectionChanged.emit(e),salla.event.emit("salla-products-list::selection.changed",e)}appendProductCards(t){this.wrapper&&((Array.isArray(t)?t:[t]).forEach((t=>this.wrapper.append(t))),this.onWishlistStorageSynced())}refreshWishlistIconsAfterHydration(){return salla.wishlist.api.syncStorageFromServer()}onSelectableChanged(t,s){t!==s&&this.isReady&&this.wrapper&&(t||(this.selectedProducts.clear(),this.emitSelection()),this.reload())}applyLandingPageStyles(t){"landing-page"!==this.getSource()||this.hasCustomComponent||(t.toggleAttribute("hide-add-btn",!0),t.classList.add("s-product-card-fit-height"))}applyHorizontalCardStyles(t){this.horizontalCards&&(t.toggleAttribute("horizontal",!0),this.hasCustomComponent||t.toggleAttribute("shadow-on-hover",!0))}waitForResizing(t){let s=null;return new Promise((e=>{const i=new ResizeObserver((()=>{clearTimeout(s),s=setTimeout((()=>{i.disconnect(),e(null)}),160)}));i.observe(t)}))}waitForLayoutStable(t){let s=null,e=null;return new Promise((i=>{let r;const o=()=>{clearTimeout(s),clearTimeout(e),r.disconnect(),i(null)};r=new MutationObserver((()=>{clearTimeout(s),s=setTimeout(o,160)})),r.observe(t,{childList:!0,subtree:!0,attributes:!0}),e=setTimeout(o,1e3)}))}async waitForStableLayout(t){return await Promise.allSettled([this.waitForResizing(t),this.waitForLayoutStable(t)])}scrollToLastViewedProduct(){const t=sessionStorage.getItem(this.lastViewedProductKey);t&&!salla.url.is_page("product.single")&&this.isElementLoaded(`[id*="${t}"]`).then((()=>{const s=this.wrapper?.querySelector(`[id*="${t}"]`);if(!s)return;const e=()=>{const t=()=>{s.scrollIntoView({block:"start",behavior:"instant"});const t=matchMedia("(max-width: 1024px)").matches?"header .inner":"ul.main-menu",e=window?.header_is_sticky?document.querySelector(t)?.getBoundingClientRect()?.height??56:0,i=parseInt(getComputedStyle(this.wrapper).rowGap)??16;scrollBy({top:-1*(e+i),behavior:"instant"})};requestAnimationFrame(t),s.querySelectorAll("img.lazy").forEach((s=>{const e=s,i=()=>{requestAnimationFrame(t),e.onload=e.onerror=null};e.onload=i,e.onerror=i})),this.removeScrollRestorationSession()};this.waitForStableLayout(this.host).then((()=>requestAnimationFrame(e)))}))}isElementLoaded(t){return new Promise((s=>{const e=setInterval((()=>{if(document.querySelector(t))return clearInterval(e),s(document.querySelector(t))}),50)}))}takeStateSnapshot(){const t=[];for(let s=0;s<this.wrapper.children.length;s++){const e=this.wrapper.children?.[s];t.push(e.product)}const s={pageIndex:Math.max((this.infiniteScroll?.pageIndex??1)-1,1),nextPage:this.nextPage,currentPageData:t};if(this.isFilterable()){const t=sessionStorage.getItem(this.filtersKey);sessionStorage.setItem(this.filtersKey,t||JSON.stringify(this.filtersSnapshot))}sessionStorage.setItem(this.infiniteScrollStateKey,JSON.stringify(s));let e=salla.config.get("page.id");const i=Object.keys(this.specialPagesWithoutIds).find((t=>salla.url.is_page(t)));i?e=this.getCategoryIdentity(this.specialPagesWithoutIds[i]):null!==e&&(e=String(e)),sessionStorage.setItem(this.prevCategoryIdKey,e)}getCategoryIdentity(t){if("search"!==t)return t;const s=`search:${a.getProductsSourceValue(this.source,this.sourceValue)}`;return this.isSearchPageList()?`${s}:sort:${this.sortBy||"relevance"}`:s}removeScrollRestorationSession(){this.isFilterable()||sessionStorage.removeItem(this.filtersKey),sessionStorage.removeItem(this.infiniteScrollStateKey),sessionStorage.removeItem(this.lastViewedProductKey),sessionStorage.removeItem(this.prevCategoryIdKey)}loadStoredScrollState(){const t=sessionStorage.getItem(this.infiniteScrollStateKey),s=sessionStorage.getItem(this.filtersKey),e=sessionStorage.getItem(this.prevCategoryIdKey),i=this.getCategoryIdentity(this.specialPagesWithoutIds[salla.config.get("page.slug")]||null),r=salla.config.get("page.id"),o=salla.url.is_page("index"),a=salla.url.is_page("product.single"),n=i?e!==i:e!==String(r);if(e&&n&&!o&&!a||o&&!this.hasInfiniteScroll)return this.removeScrollRestorationSession(),this.switchToNormalBehavior=!0,!1;if(a)return this.switchToNormalBehavior=!0,!1;if(t)try{const{pageIndex:e,nextPage:i,currentPageData:r}=JSON.parse(t);if(s&&"undefined"!==s){const t=JSON.parse(s);this.filtersSnapshot=JSON.parse(JSON.stringify(t)),salla.event.emit("filters::fetched",{filters:t})}return this.page=e,this.nextPage=i,this.appendProductCards(r.map((t=>this.getItemHTML(t)))),!0}catch(t){console.error("Failed to load stored scroll state:",t),this.removeScrollRestorationSession()}return!1}getSource(){return a.getProductsSource(this.source)}isAuxiliaryProductsListSource(){return["json","selected","related","landing-page","recently"].includes(this.getSource())}toCategoryIdFilter(t){return Array.isArray(t)?t:t&&"object"==typeof t?Object.values(t):[t]}getSourceValue(){if("search"===this.getSource())return a.getProductsSourceValue(this.source,this.sourceValue);if("wishlist"===this.getSource()){const t=new URLSearchParams(window.location.search),s=t.getAll("source_value[]").length?t.getAll("source_value[]"):t.getAll("source_value");if(s.length)return s}return this.currentCategoryIdFilter?this.currentCategoryIdFilter:a.getProductsSourceValue(this.source,this.sourceValue)}getResponseHeader(t,s){if(!t)return;if("function"==typeof t.get)return t.get(s)||void 0;const e=t[s]??t[s.toLowerCase()];return"string"==typeof e?e:Array.isArray(e)&&"string"==typeof e[0]?e[0]:void 0}logFetchError(t,s,e,i){try{const r=s instanceof Error?s.name:void 0,o=s instanceof Error?s.message:String(s),a=i?.url||e,n=this.getResponseHeader(i?.headers,"cf-ray"),l=this.getResponseHeader(i?.headers,"cf-mitigated"),c=this.getResponseHeader(i?.headers,"server"),h="challenge"===l?.toLowerCase()||403===i?.status&&(!!n||!!c?.toLowerCase().includes("cloudflare")),d=`${r||""} ${o}`;let p="processing"===t?"processing":"unknown";"fetch"===t&&(h?p="cloudflare":/(?:^|\/)null(?:[/?#]|$)/i.test(a||"")?p="invalid_url":/timeout|timed out|abort/i.test(d)?p="timeout":!i?.status&&/fetch|network|load failed|connection/i.test(d)?p="network":i?.status&&(p="http")),salla.analytics?.log("salla::products.list.fetch.error",{errorPhase:t,failureType:p,cloudflareBlock:h,sourceList:this.getSource(),pageIndex:this.infiniteScroll?.pageIndex,httpStatus:i?.status,responseUrl:a,cfRay:n,cfMitigated:l,errorName:r,errorMessage:o.slice(0,500)})}catch{}}appendDataLayer(t){"object"==typeof dataLayer&&Array.isArray(dataLayer)&&dataLayer.push({event:"impressions",ecommerce:{currencyCode:salla.config.currency().code,impressions:t.map(((t,s)=>({id:t.id,name:t.name,price:t.price,brand:t.brand?.name||"",quantity:t.quantity,categories:[{name:t.category?.name||salla.config.get("page.title"),id:salla.config.get("page.id")}],category:t.category?.name||salla.config.get("page.title"),position:s+1})))}})}initiateInfiniteScroll(){if(!this.hasInfiniteScroll)return;const t=this.autoload&&this.includes&&this.includes.length>0;this.infiniteScroll=salla.infiniteScroll.initiate(this.wrapper,this.wrapper,{path:()=>this.nextPage,history:!1,nextPage:this.nextPage,scrollThreshold:!t&&!!this.autoload&&100,loadOnScroll:!t&&this.autoload},!0),this.infiniteScroll.pageIndex=this.page,this.infiniteScroll?.on("request",(()=>{this.loading(!0,!this.autoload)})),t&&window.addEventListener("scroll",this.boundHandleScroll),this.infiniteScroll?.on("load",(async(t,s,e)=>{if(!this.isProcessing){this.isProcessing=!0;try{try{const s=e?.headers?.get?.("s-request-id")||t?.request_id;s&&(this.requestId=s)}catch{}if(!t.data?.length&&2===this.infiniteScroll.pageIndex)return this.showPlaceholder=!0,salla.infiniteScroll.destroy(this.infiniteScroll),this.loading(!1),void(this.placeholderLoader&&this.placeholderLoader.remove());this.includes&&await this.injectAndProcessData(t);const s=await this.handleResponse(t);this.infiniteScroll.appendItems(s),this.onWishlistStorageSynced(),2===this.infiniteScroll.pageIndex&&(!this.autoload&&this.nextPage&&(this.loadMoreWrapper.style.display="block"),this.animateItems(),this.refreshInfiniteScrollMeasurements())}catch(t){console.error("Error during load:",t),this.logFetchError("processing",t,"string"==typeof s?s:void 0,e)}finally{this.isProcessing=!1}}})),this.infiniteScroll?.on("error",((t,s,e)=>{const i=e;this.status.querySelector(".s-infinite-scroll-error").classList.remove("s-hidden"),this.placeholderLoader&&this.placeholderLoader.remove(),this.loading(!1),this.isProcessing=!1,this.logFetchError("fetch",t,s,i)})),salla.onReady((()=>{sessionStorage.getItem(this.infiniteScrollStateKey)||this.manualLoadNextPage()}))}handleScroll(){this.isProcessing||this.scrollTimeout||(this.scrollTimeout=setTimeout((()=>{this.scrollTimeout=null,requestAnimationFrame((()=>{const t=this.wrapper.getBoundingClientRect(),s=window.innerHeight;t.bottom-s<=200&&!this.isProcessing&&this.nextPage&&this.manualLoadNextPage()}))}),200))}manualLoadNextPage(){this.nextPage&&this.infiniteScroll.loadNextPage()}refreshInfiniteScrollMeasurements(){this.autoload&&this.infiniteScroll?.updateMeasurements&&this.waitForStableLayout(document.body).then((()=>this.infiniteScroll?.updateMeasurements?.()))}async applyBeforeBuildListUrl(t){try{const s={component:this,url:t};return await salla.hooks.call("salla-products-list","beforeBuildListUrl",s),s.url}catch(s){return salla.logger.warn("beforeBuildListUrl hook failed",s?.message),t}}async resolveNextPageFromCursor(t){return t.cursor?t.cursor.next?await this.applyBeforeBuildListUrl(t.cursor.next):t.cursor.next:this.nextPage}async injectAndProcessData(t){try{await a.injectExtraFieldsToResponse(t)}catch(t){console.error("Error injecting data:",t)}}getInitialData(){return this.loading(),salla.api.withoutNotifier((()=>salla.product.api.fetch({source:a.getApiSource(this.getSource()),source_value:this.getSourceValue(),limit:this.limit,...this.isSearchPageList()&&this.sortBy?{sort:this.sortBy}:{}}).catch((t=>{const s=t?.response,e=s?.request?.responseURL||t?.config?.url;throw this.logFetchError("fetch",t,e,{status:s?.status,url:e,headers:s?.headers}),t})).then((async t=>t.data.length?(await a.injectExtraFieldsToResponse(t),this.firstPageResponse?void this.appendProductCards(await this.handleResponse(t)):(this.firstPageResponse=t,void(this.nextPage=await this.resolveNextPageFromCursor(t)))):(this.showPlaceholder=!0,this.placeholderLoader&&this.placeholderLoader.remove(),void this.loading(!1))))))}async loadMore(){this.infiniteScroll?.loadNextPage()}async getSelected(){return{ids:Array.from(this.selectedProducts.keys()),products:Array.from(this.selectedProducts.values())}}async getLoadedProducts(){const t=[];if(!this.wrapper)return t;for(let s=0;s<this.wrapper.children.length;s++){const e=this.wrapper.children[s];e?.product&&!e.hasAttribute("data-out-of-stock-hidden")&&t.push(e.product)}return t}async selectAll(){if(this.selectable&&this.wrapper){for(let t=0;t<this.wrapper.children.length;t++){const s=this.wrapper.children[t];if(s?.product&&!s.hasAttribute("data-out-of-stock-hidden")){this.selectedProducts.set(s.product.id,s.product),s.classList.add("s-products-list-item-selected");const t=s.querySelector(".s-products-list-select-checkbox");t&&(t.checked=!0)}}this.emitSelection()}}async clearSelection(){this.selectedProducts.clear(),this.wrapper&&(this.wrapper.querySelectorAll(".s-products-list-select-checkbox").forEach((t=>t.checked=!1)),this.wrapper.querySelectorAll(".s-products-list-item-selected").forEach((t=>t.classList.remove("s-products-list-item-selected")))),this.emitSelection()}isSearchPageList(){return"search"===this.getSource()&&"product.index.search"===this.currentPage?.slug&&!0===this.filtersResults}syncSearchSortControl(){if(!this.isSearchPageList()||this.sortBy)return;const t=document.querySelector("#product-filter");if(t&&"SELECT"===t.tagName){if(!t.querySelector('option[value=""]')){const s=document.createElement("option");s.setAttribute("value",""),s.textContent=salla.lang.getWithDefault("common.elements.search_results",salla.lang.get("pages.categories.sorting")),t.insertBefore(s,t.firstChild)}t.value=""}}componentWillLoad(){return salla.onReady().then((async()=>{this.hasCustomComponent=!!customElements.get(this.productCardComponent),this.sourceValueIsValid=!(!this.getSourceValue()&&!this.isSourceWithoutValue()),this.hasInfiniteScroll=!this.isAuxiliaryProductsListSource()&&!this.limit;let t=new URLSearchParams(window.location.search);try{const s=t.get("sort")||t.get("by");this.sortBy=this.isSearchPageList()?s||void 0:this.sortBy||s,this.parsedFilters=!0===this.filtersResults?a.extractFiltersFromUrl(t):{},!0===this.filtersResults&&this.parsedFilters?.category_id&&(this.currentCategoryIdFilter=this.toCategoryIdFilter(this.parsedFilters.category_id))}catch(t){salla.logger.warn("failed to get filters from url",t.message)}if(await this.buildNextPageUrl(),this.isReady=!0,!sessionStorage.getItem(this.infiniteScrollStateKey))if(this.sourceValueIsValid){if(!this.hasInfiniteScroll){if("json"===this.getSource())return this.getSourceValue().length?void setTimeout((()=>{this.appendProductCards(this.getSourceValue().map((t=>this.getItemHTML(t))))})):void(this.showPlaceholder=!0);if("selected"!==this.getSource()||this.getSourceValue().length)return this.getInitialData();this.showPlaceholder=!0}}else salla.logger.warn(`source-value prop is required for source [${this.getSource()}]`)}))}async componentDidLoad(){this.syncSearchSortControl(),this.hasInfiniteScroll&&this.init(),await Salla.hooks.registerComponent("salla-products-list",this),this.loadStoredScrollState()?(this.autoload?!this.nextPage&&this.loading(!1):this.nextPage?this.loadMoreWrapper&&(this.loadMoreWrapper.style.display="block"):(this.loadMoreWrapper&&(this.loadMoreWrapper.style.display="none"),this.status.querySelector(".s-infinite-scroll-last").classList.remove("s-hidden")),this.scrollToLastViewedProduct(),this.refreshInfiniteScrollMeasurements()):!this.firstPageResponse&&this.switchToNormalBehavior?this.getInitialData().then((async()=>{this.firstPageResponse?(this.appendProductCards(await this.handleResponse(this.firstPageResponse,!1)),setTimeout((()=>{if(!this.autoload&&this.nextPage&&1==this.infiniteScroll?.pageIndex){const t=this.host.querySelector(".s-infinite-scroll-wrapper");t&&(t.style.display="block")}}))):console.error("No response received after getInitialData.")})).catch((t=>{console.error("Error during initial data fetch:",t)})):this.firstPageResponse&&this.appendProductCards(await this.handleResponse(this.firstPageResponse,!1)),await this.refreshWishlistIconsAfterHydration()}canRender(){return this.sourceValueIsValid&&this.isReady}render(){return this.canRender()?this.showPlaceholder?e("div",{class:"s-products-list-placeholder"},e("span",{innerHTML:o}),e("p",null,this.placeholderText)):e(i,{class:"s-products-list"},e("div",{class:{"s-products-list-wrapper":!0,"s-products-list-horizontal-cards":this.horizontalCards&&!this.filtersResults,"s-products-list-vertical-cards":!this.horizontalCards&&!this.rowCards&&!this.filtersResults,"s-products-list-row-cards":this.rowCards,"s-products-list-compact-cards":this.compactCards,"s-products-list-filters-results":this.filtersResults},ref:t=>this.wrapper=t}),e("div",{class:"s-infinite-scroll-status",ref:t=>this.status=t},e("p",{class:"s-infinite-scroll-last infinite-scroll-last s-hidden"},this.endOfText),e("p",{class:"s-infinite-scroll-error infinite-scroll-error s-hidden"},this.failedLoadMore)),this.autoload&&e("div",{class:"s-products-list-loading-wrapper",style:{display:"none"},ref:t=>this.loader=t},e("span",{class:"s-button-loader s-button-loader-center s-infinite-scroll-btn-loader"})),this.hasInfiniteScroll&&this.nextPage&&!this.autoload?e("div",{class:"s-infinite-scroll-wrapper",style:{display:"none"},ref:t=>this.loadMoreWrapper=t},e("button",{onClick:()=>this.loadMore(),class:"s-infinite-scroll-btn s-button-btn s-button-primary"},e("span",{class:"s-button-text s-infinite-scroll-btn-text"},this.loadMoreText?this.loadMoreText:salla.lang.get("common.elements.load_more")),e("span",{class:"s-button-loader s-button-loader-center s-infinite-scroll-btn-loader",ref:t=>this.btnLoader=t,style:{display:"none"}}))):""):""}init(){this.initiateInfiniteScroll(),this.loading()}async handleResponse(t,s=!0){if(!t)return[];t._requestId&&(this.requestId=t._requestId);let e=this.getSource();if(1===t.cursor?.current){if(!this.isAuxiliaryProductsListSource()){let s=a.getPageTitleForSource(e);try{if("search"===this.getSource())s=salla.lang.get("common.elements.search_about",{word:a.escapeHtml(this.getSourceValue())});else if(!s){let e=Object.keys(this.parsedFilters||{}).length?null:this.getSourceValue()[0];s=t.filters?.find((t=>"category_id"===t.key))?.values?.find((t=>t.key==e))?.value??"";const i=salla.config.get("page.id");s||null==e||null==i||String(e)!==String(i)||(s=a.escapeHtml(salla.config.get("page.title")))}s+=(s?" - ":"")+salla.lang.choice("blocks.header.products_count",t.data?.length),15===t.data.length&&(s=s.replace(t.data.length,salla.lang.get("common.elements.more_than")+" "+t.data.length)),t.title=s}catch(t){salla.logger.error("Error::falid to handle response",t)}}a.generateProductSchema(t.data)}this.appendDataLayer(t.data),t.nextPage=this.nextPage,t.source=this.getSource(),t.sourceValue=this.getSourceValue(),salla.event.emit("salla-products-list::products.fetched",t),this.productsFetched.emit(t),this.emitFilters(t),s&&(this.nextPage=await this.resolveNextPageFromCursor(t)),this.loading(!1),this.placeholderLoader&&this.placeholderLoader.remove(),this.hasInfiniteScroll&&!this.nextPage&&(this.infiniteScroll.option({scrollThreshold:!1,loadOnScroll:!1}),this.status.querySelector(".s-infinite-scroll-last").classList.remove("s-hidden"));let i=await this.applyBeforeAppendItems(t.data);const r=[];for(let t=0;t<i.length;t++)r.push(this.getItemHTML(i[t]));return r}async applyBeforeAppendItems(t){const s={component:this,items:t};try{return await salla.hooks.call("salla-products-list","beforeAppendItems",s),Array.isArray(s.items)?s.items:t}catch{return t}}get host(){return r(this)}static get watchers(){return{selectable:["onSelectableChanged"]}}};n.style="/*!twlt*/.s-products-list-selectable-item{position:relative;border-radius:0.5rem;transition:box-shadow 0.15s ease-in-out}.s-products-list-item-selected{box-shadow:0 0 0 2px var(--color-primary)}.s-products-list-select-control{position:absolute;top:10px;inset-inline-start:10px;z-index:5;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.s-products-list-select-checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;position:relative;width:22px;height:22px;margin:0;cursor:pointer;color:var(--color-primary);border:1px solid rgba(0, 0, 0, 0.15);border-radius:6px;background-color:#fff;box-shadow:0 1px 3px rgba(0, 0, 0, 0.2);transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out}.s-products-list-select-checkbox:hover{border-color:var(--color-primary)}.s-products-list-select-checkbox:focus,.s-products-list-select-checkbox:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 1px 3px rgba(0, 0, 0, 0.2), 0 0 0 3px color-mix(in srgb, var(--color-primary) 30%, transparent)}.s-products-list-select-checkbox:checked,.s-products-list-select-checkbox:checked:hover,.s-products-list-select-checkbox:checked:focus{background-color:var(--color-primary);border-color:var(--color-primary)}.s-products-list-select-checkbox:checked::after{content:\"\";position:absolute;top:50%;left:50%;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:translate(-50%, -60%) rotate(45deg)}.s-products-list-row-cards .s-products-list-select-control{top:50%;inset-inline-start:14px;transform:translateY(-50%)}.s-products-list-row-cards .s-products-list-selectable-item>:not(.s-products-list-select-control){padding-inline-start:2.75rem}.s-products-list-item-animate{animation:s-products-list-item-in 1200ms linear both}@keyframes s-products-list-item-in{0%{opacity:0;transform:translateY(20px)}5%{opacity:0.428;transform:translateY(11.44px)}10%{opacity:0.845;transform:translateY(3.09px)}15%{opacity:1;transform:translateY(-2.19px)}20%{opacity:1;transform:translateY(-4.05px)}25%{opacity:1;transform:translateY(-3.54px)}30%{opacity:1;transform:translateY(-2.02px)}35%{opacity:1;transform:translateY(-0.55px)}40%{opacity:0.981;transform:translateY(0.39px)}45%{opacity:0.964;transform:translateY(0.72px)}50%{opacity:0.969;transform:translateY(0.62px)}55%{opacity:0.982;transform:translateY(0.36px)}60%{opacity:0.995;transform:translateY(0.1px)}65%{opacity:1;transform:translateY(-0.07px)}70%{opacity:1;transform:translateY(-0.13px)}75%{opacity:1;transform:translateY(-0.11px)}80%{opacity:1;transform:translateY(-0.06px)}85%{opacity:1;transform:translateY(-0.02px)}90%{opacity:0.999;transform:translateY(0.01px)}95%{opacity:0.999;transform:translateY(0.02px)}100%{opacity:1;transform:translateY(0px)}}.fixed{position:fixed}.sticky{position:sticky}.block{display:block}.grid{display:grid}.hidden{display:none}.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-products-list-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:2.5rem;padding-bottom:5rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-products-list-placeholder p{padding-top:0.5rem;text-align:center;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-products-list-placeholder span{margin-bottom:1rem;display:flex;height:8rem;width:8rem;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1));font-size:3rem;line-height:1;--tw-text-opacity:1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.s-products-list-placeholder span svg{margin-left:auto;margin-right:auto;height:4rem;width:4rem;fill:#d1d5db;text-align:center}.s-button-btn{position:relative;display:inline-flex;flex:1 1 0%;user-select:none;flex-direction:row-reverse;align-items:center;justify-content:center;white-space:nowrap;border-radius:var(--s-radius, 0.25rem);border-style:solid;padding-left:1.5rem;padding-right:1.5rem;padding-bottom:0.625rem;padding-top:0.5rem;font-size:0.875rem;line-height:1.25rem;font-weight:700;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms}.s-button-btn:hover{opacity:0.8}.s-button-primary{border-width:1px;border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-primary-reverse)}.s-button-primary:hover{background-color:var(--color-primary-dark)}.s-button-text{pointer-events:none;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms}.s-button-loader{margin-left:0.5rem;margin-right:0.5rem;display:flex;align-items:center;justify-content:center;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.s-button-loader::before{display:inline-block;height:1rem;content:var(--tw-content);width:1rem}@keyframes spin{to{content:var(--tw-content);transform:rotate(360deg)}}.s-button-loader::before{animation:spin 1s linear infinite;border-radius:9999px;border-width:2px;border-style:solid;border-top-color:var(--color-primary);border-left-color:var(--color-primary);border-bottom-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-border-opacity:1;border-right-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-content:'';content:var(--tw-content)}.s-button-loader-center .s-button-loader{position:absolute;top:50%;left:50%;margin:0px !important;--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))}.s-comments-item-like-btn .s-button-text{display:flex;flex-direction:row-reverse;gap:0.5rem}.s-hidden{display:none}.s-offer-products-list-single-column .s-products-list-wrapper{display:grid !important;grid-template-columns:repeat(1, minmax(0, 1fr)) !important;gap:0.75rem}.s-offer-drawer-card .s-products-list-compact-cards{margin-bottom:0px !important}.s-order-edit-products-list .s-products-list-wrapper{gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width: 769px){.s-order-edit-products-list .s-products-list-wrapper{grid-template-columns:repeat(3, minmax(0, 1fr))}}.s-order-edit-mobile-products-modal .products-list .s-products-list-wrapper{gap:0.625rem;grid-template-columns:repeat(2,minmax(0,1fr))}.s-products-list-wrapper{margin-bottom:2rem;display:grid}.s-products-list-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:2.5rem;padding-bottom:5rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-products-list-placeholder p{padding-top:0.5rem;text-align:center;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-products-list-row-cards{display:grid;gap:1rem}.s-products-list-vertical-cards{grid-template-columns:repeat(2, minmax(0, 1fr));gap:0.625rem}@media (min-width: 640px){.s-products-list-vertical-cards{gap:1rem}}@media (min-width: 768px){.s-products-list-vertical-cards{grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.5rem}}@media (min-width: 1024px){.s-products-list-vertical-cards{grid-template-columns:repeat(4, minmax(0, 1fr))}}.s-products-list-loading-wrapper{display:flex;height:5rem;align-items:center;justify-content:center}.s-products-list-filters-results{grid-template-columns:repeat(2, minmax(0, 1fr));gap:0.625rem}@media (min-width: 640px){.s-products-list-filters-results{gap:1rem}}@media (min-width: 768px){.s-products-list-filters-results{grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.5rem}}.s-products-list-horizontal-cards{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1rem}@media (min-width: 640px){.s-products-list-horizontal-cards{gap:2rem}}@media (min-width: 1024px){.s-products-list-horizontal-cards{grid-template-columns:repeat(2, minmax(0, 1fr))}}.s-products-list-compact-cards{display:flex !important;flex-direction:column !important;gap:0px !important}.s-products-list-placeholder span{margin-bottom:1rem;display:flex;height:8rem;width:8rem;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1));font-size:3rem;line-height:1;--tw-text-opacity:1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.s-products-list-placeholder span svg{margin-left:auto;margin-right:auto;height:4rem;width:4rem;fill:#d1d5db;text-align:center}/*!twlt*/.s-button-btn{position:relative;display:inline-flex;flex:1 1 0%;user-select:none;flex-direction:row-reverse;align-items:center;justify-content:center;white-space:nowrap;border-radius:var(--s-radius, 0.25rem);border-style:solid;padding-left:1.5rem;padding-right:1.5rem;padding-bottom:0.625rem;padding-top:0.5rem;font-size:0.875rem;line-height:1.25rem;font-weight:700;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms}.s-button-btn:hover{opacity:0.8}.s-button-primary{border-width:1px;border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-primary-reverse)}.s-button-primary:hover{background-color:var(--color-primary-dark)}.s-button-text{pointer-events:none;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms}.s-button-loader{margin-left:0.5rem;margin-right:0.5rem;display:flex;align-items:center;justify-content:center;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.s-button-loader::before{display:inline-block;height:1rem;content:var(--tw-content);width:1rem}@keyframes spin{to{content:var(--tw-content);transform:rotate(360deg)}}.s-button-loader::before{animation:spin 1s linear infinite;border-radius:9999px;border-width:2px;border-style:solid;border-top-color:var(--color-primary);border-left-color:var(--color-primary);border-bottom-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-border-opacity:1;border-right-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-content:'';content:var(--tw-content)}.s-button-loader-center .s-button-loader{position:absolute;top:50%;left:50%;margin:0px !important;--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))}.s-comments-item-like-btn .s-button-text{display:flex;flex-direction:row-reverse;gap:0.5rem}.s-infinite-scroll-wrapper{margin-top:1rem;text-align:center}.s-infinite-scroll-last{margin:0px;text-align:center}.s-infinite-scroll-error{margin:0px;text-align:center}";export{n as salla_products_list}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{r as e,h as r}from"./p-ze9e0dxM.js";import{s as t}from"./p-BQHBj1u_.js";import{m as a,a as i}from"./p-DfHdQUMm.js";const o=class{constructor(r){e(this,r),this.logoFailed=!1}resetLogo(){this.logoFailed=!1}async componentWillLoad(){await salla.onReady(),await salla.lang.onLoaded()}charged(e){return null!=e&&/[1-9١-٩۱-۹]/.test(String(e))}row(e,t,o=!1,s=""){if(null==t||""===t)return null;const n=Number(t);return r("div",{class:{"s-order-payment-row":!0,"s-order-payment-total":o}},r("dt",null,e),Number.isFinite(n)?r("dd",{innerHTML:s+a(n,this.currency)}):r("dd",{innerHTML:i(String(t))}))}get discountList(){try{const e="string"==typeof this.discounts?JSON.parse(this.discounts):this.discounts;return Array.isArray(e)?e.map((e=>{const r=Math.abs(Number(e?.amount??e?.discount)),t="string"==typeof e?.discount?e.discount:"",a=Number.isFinite(r)&&r>0&&(!t||this.currency);return{name:e?.name,amount:a?r:t}})).filter((e=>"string"==typeof e.amount||e.amount>0)):[]}catch{return[]}}render(){const e=t(this.invoiceUrl);return r("section",{key:"a11d82b09c38a1f2b8085bcd62e3ba988aff1d30",class:"s-order-payment-wrapper"},r("dl",{key:"fdd189e43387e43cc9a2f78416ff6c0463a0fd5c",class:"s-order-payment-list"},r("div",{key:"27362be4b928815f2b6d2320bb9aada1344c7654",class:"s-order-payment-row"},r("dt",{key:"dec8b18118b8629a083720b9242d8b897f92722c"},salla.lang.get("pages.cart.payment_way")),r("dd",{key:"85d6532a1abe13b7204e16b9e90a88d0958a7e89"},this.paymentLogo&&!this.logoFailed?r("span",{class:"s-order-payment-logo"},r("img",{src:this.paymentLogo,alt:this.paymentMethod||"",loading:"lazy",onError:()=>{this.logoFailed=!0}})):this.paymentMethod)),this.row(salla.lang.get("pages.thank_you.sub_total"),this.subTotal),this.discountList.map((e=>this.row(e.name,e.amount,!1,"string"==typeof e.amount?"":"-"))),this.charged(this.taxAmount)?this.row(salla.lang.get("pages.cart.tax"),this.taxAmount):null,this.charged(this.shippingCost)?this.row(salla.lang.get("pages.orders.shipping_cost"),this.shippingCost):null,this.charged(this.codCost)?this.row(salla.lang.get("pages.cart.cash_on_delivery"),this.codCost):null,this.row(salla.lang.get("pages.orders.final_total"),this.total,!0)),e?r("a",{href:e,target:"_blank",rel:"noopener","data-testid":"store-thankyou-payment-view-invoice",class:"s-order-payment-invoice"},r("span",{"aria-hidden":"true",innerHTML:'\x3c!-- Generated by IcoMoon.io --\x3e\n<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">\n<title>receipt</title>\n<path d="M21.333 18.667h-10.667c-0.736 0-1.333 0.596-1.333 1.333s0.597 1.333 1.333 1.333h10.667c0.736 0 1.333-0.596 1.333-1.333s-0.597-1.333-1.333-1.333zM21.333 10.667h-10.667c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333h10.667c0.736 0 1.333-0.597 1.333-1.333s-0.597-1.333-1.333-1.333zM27.263 1.473c-0.453-0.225-0.993-0.176-1.396 0.127l-2.66 1.995-2.739-2.568c-0.513-0.48-1.311-0.48-1.824 0l-2.644 2.479-2.643-2.479c-0.513-0.48-1.311-0.48-1.824 0l-2.74 2.568-2.66-1.995c-0.407-0.303-0.945-0.352-1.396-0.127-0.452 0.227-0.737 0.688-0.737 1.193v26.667c0 0.505 0.285 0.967 0.737 1.193 0.451 0.223 0.992 0.176 1.396-0.127l2.66-1.995 2.739 2.568c0.513 0.481 1.311 0.481 1.824 0l2.644-2.479 2.643 2.477c0.256 0.241 0.584 0.361 0.912 0.361s0.656-0.12 0.912-0.361l2.739-2.568 2.661 1.996c0.404 0.304 0.944 0.351 1.396 0.127 0.452-0.227 0.737-0.688 0.737-1.193v-26.667c0-0.505-0.285-0.967-0.737-1.193zM25.333 26.667l-1.421-1.067c-0.519-0.388-1.239-0.352-1.712 0.093l-2.644 2.477-2.643-2.477c-0.257-0.24-0.585-0.36-0.913-0.36s-0.656 0.12-0.912 0.361l-2.643 2.477-2.644-2.477c-0.473-0.445-1.195-0.481-1.712-0.093l-1.423 1.065v-21.333l1.421 1.067c0.517 0.388 1.237 0.348 1.712-0.093l2.644-2.479 2.643 2.479c0.513 0.48 1.311 0.48 1.824 0l2.643-2.479 2.644 2.479c0.473 0.443 1.195 0.483 1.712 0.093l1.424-1.067z"></path>\n</svg>\n'}),salla.lang.get("pages.thank_you.view_invoice")):null)}static get watchers(){return{paymentLogo:["resetLogo"]}}};o.style='/*!twlt*/:host{display:block}.-my-1{margin-top:-0.25rem;margin-bottom:-0.25rem}.-my-1\\.5{margin-top:-0.375rem;margin-bottom:-0.375rem}.hidden{display:none}.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-order-payment-wrapper{display:flex;width:100%;flex-direction:column;align-items:flex-end;gap:1rem;border-radius:0.5rem;border-width:1px;border-color:var(--color-border-light,#f4f4f4);background-color:var(--color-surface,#fff);padding:1rem}@media (min-width: 640px){.s-order-payment-wrapper{padding:1.5rem}}.s-order-payment-list{margin:0px;display:flex;width:100%;flex-direction:column;gap:0.75rem}.s-order-payment-row{display:flex;width:100%;align-items:center;gap:1rem;font-size:0.875rem;line-height:1.25rem;color:var(--color-text-secondary,#666)}.s-order-payment-row dt{flex:1 1 0%;text-align:start}.s-order-payment-row dd{margin:0px;display:flex;align-items:center;gap:0.25rem}.s-order-payment-logo{margin-top:-0.375rem;margin-bottom:-0.375rem;display:inline-flex;height:1.75rem;width:3.5rem;flex-shrink:0}.s-order-payment-logo img{height:100%;width:100%;object-fit:contain}.s-order-payment-logo img:where([dir="ltr"],[dir="ltr"] *){object-position:right}.s-order-payment-logo img:where([dir="rtl"],[dir="rtl"] *){object-position:left}.s-order-payment-total{font-size:1rem;font-weight:700;line-height:1.5rem;color:var(--color-text-primary,#333)}.s-order-payment-invoice{display:flex;min-height:3rem;width:100%;align-items:center;justify-content:center;gap:0.5rem;border-radius:0.5rem;border-width:1px;border-color:var(--color-border,#eee);font-size:1rem;line-height:1.5rem;font-weight:500;color:var(--color-text-primary,#333);text-decoration-line:none}.s-order-payment-invoice svg{height:1.25rem;width:1.25rem;fill:currentColor}';export{o as salla_order_payment}
4
+ import{r as e,h as r}from"./p-DvJClBwJ.js";import{s as t}from"./p-BQHBj1u_.js";import{m as a,a as i}from"./p-DfHdQUMm.js";const o=class{constructor(r){e(this,r),this.logoFailed=!1}resetLogo(){this.logoFailed=!1}async componentWillLoad(){await salla.onReady(),await salla.lang.onLoaded()}charged(e){return null!=e&&/[1-9١-٩۱-۹]/.test(String(e))}row(e,t,o=!1,s=""){if(null==t||""===t)return null;const n=Number(t);return r("div",{class:{"s-order-payment-row":!0,"s-order-payment-total":o}},r("dt",null,e),Number.isFinite(n)?r("dd",{innerHTML:s+a(n,this.currency)}):r("dd",{innerHTML:i(String(t))}))}get discountList(){try{const e="string"==typeof this.discounts?JSON.parse(this.discounts):this.discounts;return Array.isArray(e)?e.map((e=>{const r=Math.abs(Number(e?.amount??e?.discount)),t="string"==typeof e?.discount?e.discount:"",a=Number.isFinite(r)&&r>0&&(!t||this.currency);return{name:e?.name,amount:a?r:t}})).filter((e=>"string"==typeof e.amount||e.amount>0)):[]}catch{return[]}}render(){const e=t(this.invoiceUrl);return r("section",{key:"a11d82b09c38a1f2b8085bcd62e3ba988aff1d30",class:"s-order-payment-wrapper"},r("dl",{key:"fdd189e43387e43cc9a2f78416ff6c0463a0fd5c",class:"s-order-payment-list"},r("div",{key:"27362be4b928815f2b6d2320bb9aada1344c7654",class:"s-order-payment-row"},r("dt",{key:"dec8b18118b8629a083720b9242d8b897f92722c"},salla.lang.get("pages.cart.payment_way")),r("dd",{key:"85d6532a1abe13b7204e16b9e90a88d0958a7e89"},this.paymentLogo&&!this.logoFailed?r("span",{class:"s-order-payment-logo"},r("img",{src:this.paymentLogo,alt:this.paymentMethod||"",loading:"lazy",onError:()=>{this.logoFailed=!0}})):this.paymentMethod)),this.row(salla.lang.get("pages.thank_you.sub_total"),this.subTotal),this.discountList.map((e=>this.row(e.name,e.amount,!1,"string"==typeof e.amount?"":"-"))),this.charged(this.taxAmount)?this.row(salla.lang.get("pages.cart.tax"),this.taxAmount):null,this.charged(this.shippingCost)?this.row(salla.lang.get("pages.orders.shipping_cost"),this.shippingCost):null,this.charged(this.codCost)?this.row(salla.lang.get("pages.cart.cash_on_delivery"),this.codCost):null,this.row(salla.lang.get("pages.orders.final_total"),this.total,!0)),e?r("a",{href:e,target:"_blank",rel:"noopener","data-testid":"store-thankyou-payment-view-invoice",class:"s-order-payment-invoice"},r("span",{"aria-hidden":"true",innerHTML:'\x3c!-- Generated by IcoMoon.io --\x3e\n<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">\n<title>receipt</title>\n<path d="M21.333 18.667h-10.667c-0.736 0-1.333 0.596-1.333 1.333s0.597 1.333 1.333 1.333h10.667c0.736 0 1.333-0.596 1.333-1.333s-0.597-1.333-1.333-1.333zM21.333 10.667h-10.667c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333h10.667c0.736 0 1.333-0.597 1.333-1.333s-0.597-1.333-1.333-1.333zM27.263 1.473c-0.453-0.225-0.993-0.176-1.396 0.127l-2.66 1.995-2.739-2.568c-0.513-0.48-1.311-0.48-1.824 0l-2.644 2.479-2.643-2.479c-0.513-0.48-1.311-0.48-1.824 0l-2.74 2.568-2.66-1.995c-0.407-0.303-0.945-0.352-1.396-0.127-0.452 0.227-0.737 0.688-0.737 1.193v26.667c0 0.505 0.285 0.967 0.737 1.193 0.451 0.223 0.992 0.176 1.396-0.127l2.66-1.995 2.739 2.568c0.513 0.481 1.311 0.481 1.824 0l2.644-2.479 2.643 2.477c0.256 0.241 0.584 0.361 0.912 0.361s0.656-0.12 0.912-0.361l2.739-2.568 2.661 1.996c0.404 0.304 0.944 0.351 1.396 0.127 0.452-0.227 0.737-0.688 0.737-1.193v-26.667c0-0.505-0.285-0.967-0.737-1.193zM25.333 26.667l-1.421-1.067c-0.519-0.388-1.239-0.352-1.712 0.093l-2.644 2.477-2.643-2.477c-0.257-0.24-0.585-0.36-0.913-0.36s-0.656 0.12-0.912 0.361l-2.643 2.477-2.644-2.477c-0.473-0.445-1.195-0.481-1.712-0.093l-1.423 1.065v-21.333l1.421 1.067c0.517 0.388 1.237 0.348 1.712-0.093l2.644-2.479 2.643 2.479c0.513 0.48 1.311 0.48 1.824 0l2.643-2.479 2.644 2.479c0.473 0.443 1.195 0.483 1.712 0.093l1.424-1.067z"></path>\n</svg>\n'}),salla.lang.get("pages.thank_you.view_invoice")):null)}static get watchers(){return{paymentLogo:["resetLogo"]}}};o.style='/*!twlt*/:host{display:block}.-my-1{margin-top:-0.25rem;margin-bottom:-0.25rem}.-my-1\\.5{margin-top:-0.375rem;margin-bottom:-0.375rem}.hidden{display:none}.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-order-payment-wrapper{display:flex;width:100%;flex-direction:column;align-items:flex-end;gap:1rem;border-radius:0.5rem;border-width:1px;border-color:var(--color-border-light,#f4f4f4);background-color:var(--color-surface,#fff);padding:1rem}@media (min-width: 640px){.s-order-payment-wrapper{padding:1.5rem}}.s-order-payment-list{margin:0px;display:flex;width:100%;flex-direction:column;gap:0.75rem}.s-order-payment-row{display:flex;width:100%;align-items:center;gap:1rem;font-size:0.875rem;line-height:1.25rem;color:var(--color-text-secondary,#666)}.s-order-payment-row dt{flex:1 1 0%;text-align:start}.s-order-payment-row dd{margin:0px;display:flex;align-items:center;gap:0.25rem}.s-order-payment-logo{margin-top:-0.375rem;margin-bottom:-0.375rem;display:inline-flex;height:1.75rem;width:3.5rem;flex-shrink:0}.s-order-payment-logo img{height:100%;width:100%;object-fit:contain}.s-order-payment-logo img:where([dir="ltr"],[dir="ltr"] *){object-position:right}.s-order-payment-logo img:where([dir="rtl"],[dir="rtl"] *){object-position:left}.s-order-payment-total{font-size:1rem;font-weight:700;line-height:1.5rem;color:var(--color-text-primary,#333)}.s-order-payment-invoice{display:flex;min-height:3rem;width:100%;align-items:center;justify-content:center;gap:0.5rem;border-radius:0.5rem;border-width:1px;border-color:var(--color-border,#eee);font-size:1rem;line-height:1.5rem;font-weight:500;color:var(--color-text-primary,#333);text-decoration-line:none}.s-order-payment-invoice svg{height:1.25rem;width:1.25rem;fill:currentColor}';export{o as salla_order_payment}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{r,h as a,H as t}from"./p-ze9e0dxM.js";import{S as s}from"./p-D4oPi1Ov.js";import{f as e,r as o}from"./p-DqXpn47Z.js";const i=class{constructor(a){r(this,a),this.loadedFactors=[]}async componentWillLoad(){await salla.onReady(),await this.loadFactors()}async onPropsChange(){await this.loadFactors()}getDisplayFactors(){return this.factors?.length?this.factors:this.loadedFactors}async loadFactors(){if(this.factors?.length)this.loadedFactors=[];else if(this.orderId)try{const r=await e(this.orderId);this.loadedFactors=o(r,this.ratingId,this.productId,this.itemId)}catch(r){console.error("[salla-review-factors-tags] failed to load order rating factors",r),this.loadedFactors=[]}else this.loadedFactors=[]}renderFactorTags(){const r=this.getDisplayFactors();return r.length?a("div",{class:"s-review-factors-tags-factors"},r.map((r=>a("div",{class:"s-review-factors-tags-factor-tag"},a("span",{class:"s-review-factors-tags-factor-name"},r.name),a("span",{class:"s-review-factors-tags-factor-star",innerHTML:s}),a("span",{class:"s-review-factors-tags-factor-rating"},r.rating||""))))):null}render(){return a(t,{key:"2fc041ebd27df774250e428f3a68026838221309",class:"s-review-factors-tags-wrapper"},this.renderFactorTags())}static get watchers(){return{factors:["onPropsChange"],orderId:["onPropsChange"],ratingId:["onPropsChange"],productId:["onPropsChange"],itemId:["onPropsChange"]}}};i.style="/*!twlt*/:host{display:inline-flex}.s-review-factors-tags-factors{display:flex;flex-wrap:wrap;gap:0.5rem;justify-content:flex-start;margin-bottom:0.6rem}.s-review-factors-tags-factor-tag{display:inline-flex;align-items:center;gap:0.25rem;border-radius:999px;border:1px solid #e8e8e8;background:rgba(255, 255, 255, 0.3);font-size:0.85rem;line-height:1;padding:0.4rem 0.65rem}.s-review-factors-tags-factor-rating{font-weight:600;color:var(--color-primary) !important}.s-review-factors-tags-factor-star{display:inline-flex;width:0.8rem;height:0.8rem;fill:var(--color-primary) !important}.s-review-factors-tags-factor-star svg{width:100%;height:100%}.s-review-factors-tags-factor-name{color:var(--main-text-color) !important;font-weight:unset !important}.s-review-factors-tags-wrapper{display:inline-flex}.s-review-factors-tags-factors{display:flex;flex-direction:row;flex-wrap:wrap;gap:0.5rem}.s-review-factors-tags-factor-tag{display:inline-flex;align-items:center;gap:0.25rem;border-radius:9999px;border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));background-color:rgb(255 255 255 / 0.3);padding-top:0.25rem;padding-bottom:0.25rem;padding-left:0.625rem;padding-right:0.625rem;font-size:0.875rem;line-height:1.25rem}.s-review-factors-tags-factor-name{font-weight:600;color:var(--color-primary-dark)}.s-review-factors-tags-factor-rating{font-weight:600;color:var(--color-primary-dark)}.s-review-factors-tags-factor-star{display:inline-flex;height:0.75rem;width:0.75rem;fill:var(--color-primary-dark)}.s-review-factors-tags-factor-star svg{height:100%;width:100%}";export{i as salla_review_factors_tags}
4
+ import{r,h as a,H as t}from"./p-DvJClBwJ.js";import{S as s}from"./p-D4oPi1Ov.js";import{f as e,r as o}from"./p-DqXpn47Z.js";const i=class{constructor(a){r(this,a),this.loadedFactors=[]}async componentWillLoad(){await salla.onReady(),await this.loadFactors()}async onPropsChange(){await this.loadFactors()}getDisplayFactors(){return this.factors?.length?this.factors:this.loadedFactors}async loadFactors(){if(this.factors?.length)this.loadedFactors=[];else if(this.orderId)try{const r=await e(this.orderId);this.loadedFactors=o(r,this.ratingId,this.productId,this.itemId)}catch(r){console.error("[salla-review-factors-tags] failed to load order rating factors",r),this.loadedFactors=[]}else this.loadedFactors=[]}renderFactorTags(){const r=this.getDisplayFactors();return r.length?a("div",{class:"s-review-factors-tags-factors"},r.map((r=>a("div",{class:"s-review-factors-tags-factor-tag"},a("span",{class:"s-review-factors-tags-factor-name"},r.name),a("span",{class:"s-review-factors-tags-factor-star",innerHTML:s}),a("span",{class:"s-review-factors-tags-factor-rating"},r.rating||""))))):null}render(){return a(t,{key:"2fc041ebd27df774250e428f3a68026838221309",class:"s-review-factors-tags-wrapper"},this.renderFactorTags())}static get watchers(){return{factors:["onPropsChange"],orderId:["onPropsChange"],ratingId:["onPropsChange"],productId:["onPropsChange"],itemId:["onPropsChange"]}}};i.style="/*!twlt*/:host{display:inline-flex}.s-review-factors-tags-factors{display:flex;flex-wrap:wrap;gap:0.5rem;justify-content:flex-start;margin-bottom:0.6rem}.s-review-factors-tags-factor-tag{display:inline-flex;align-items:center;gap:0.25rem;border-radius:999px;border:1px solid #e8e8e8;background:rgba(255, 255, 255, 0.3);font-size:0.85rem;line-height:1;padding:0.4rem 0.65rem}.s-review-factors-tags-factor-rating{font-weight:600;color:var(--color-primary) !important}.s-review-factors-tags-factor-star{display:inline-flex;width:0.8rem;height:0.8rem;fill:var(--color-primary) !important}.s-review-factors-tags-factor-star svg{width:100%;height:100%}.s-review-factors-tags-factor-name{color:var(--main-text-color) !important;font-weight:unset !important}.s-review-factors-tags-wrapper{display:inline-flex}.s-review-factors-tags-factors{display:flex;flex-direction:row;flex-wrap:wrap;gap:0.5rem}.s-review-factors-tags-factor-tag{display:inline-flex;align-items:center;gap:0.25rem;border-radius:9999px;border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));background-color:rgb(255 255 255 / 0.3);padding-top:0.25rem;padding-bottom:0.25rem;padding-left:0.625rem;padding-right:0.625rem;font-size:0.875rem;line-height:1.25rem}.s-review-factors-tags-factor-name{font-weight:600;color:var(--color-primary-dark)}.s-review-factors-tags-factor-rating{font-weight:600;color:var(--color-primary-dark)}.s-review-factors-tags-factor-star{display:inline-flex;height:0.75rem;width:0.75rem;fill:var(--color-primary-dark)}.s-review-factors-tags-factor-star svg{height:100%;width:100%}";export{i as salla_review_factors_tags}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{r as e,h as s,H as r}from"./p-ze9e0dxM.js";import{s as t}from"./p-CxrJQ3Jf.js";const a=class{constructor(s){e(this,s),this.dark=!1,this.commercialRegisterLabel="",this.freelanceLabel=""}connectedCallback(){this.initializeTranslations()}disconnectedCallback(){this.langUnsubscribe?.()}isVisibilityEnforced(){return"SA"===salla.config.get("store.store_country")}initializeTranslations(){this.langUnsubscribe=salla.lang.subscribe((()=>{const e=(e,s,r)=>{t(e,s,r)};e("ar.trans","blocks.footer.commercial_register","السجل التجاري"),e("en.trans","blocks.footer.commercial_register","Commercial Register"),e("ar.trans","blocks.footer.freelance","وثيقة العمل الحر"),e("en.trans","blocks.footer.freelance","Freelance Certificate"),this.commercialRegisterLabel=salla.lang.getWithDefault("blocks.footer.commercial_register","السجل التجاري"),this.freelanceLabel=salla.lang.getWithDefault("blocks.footer.freelance","وثيقة العمل الحر")}))}getBadgeData(){const e=salla.config.get("store.settings.commercial_number"),s=salla.config.get("store.settings.freelance_number");return e?{number:e,label:this.commercialRegisterLabel||"السجل التجاري",imageUrl:salla.url.cdn("images/commercial-register.png",70,70),type:"commercial"}:s?{number:s,label:this.freelanceLabel||"وثيقة العمل الحر",imageUrl:this.dark?salla.url.cdn("images/freelance-white.png"):salla.url.cdn("images/freelance.png"),type:"freelance"}:null}render(){const e=this.getBadgeData();return e?s(r,{class:"s-trust-badges-wrapper "+(this.dark?"dark":"")},this.isVisibilityEnforced()?s("img",{class:"s-trust-badges-image",width:"55",height:"55",src:e.imageUrl,alt:e.label}):null,s("div",{class:"s-trust-badges-content"},s("p",{class:"s-trust-badges-label"},e.label),s("b",{class:"s-trust-badges-number"},e.number))):null}};a.style='/*!twlt*/.s-trust-badges-image{width:55px;height:55px;flex-shrink:0}.s-trust-badges-wrapper{display:flex;align-items:center}.s-trust-badges-wrapper>: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-trust-badges-wrapper:where([dir="rtl"],[dir="rtl"] *)>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.s-trust-badges-label{margin-bottom:0.25rem;font-size:0.875rem;line-height:1.25rem}.s-trust-badges-number{font-size:0.875rem;line-height:1.25rem}';export{a as salla_trust_badges}
4
+ import{r as e,h as s,H as r}from"./p-DvJClBwJ.js";import{s as t}from"./p-CxrJQ3Jf.js";const a=class{constructor(s){e(this,s),this.dark=!1,this.commercialRegisterLabel="",this.freelanceLabel=""}connectedCallback(){this.initializeTranslations()}disconnectedCallback(){this.langUnsubscribe?.()}isVisibilityEnforced(){return"SA"===salla.config.get("store.store_country")}initializeTranslations(){this.langUnsubscribe=salla.lang.subscribe((()=>{const e=(e,s,r)=>{t(e,s,r)};e("ar.trans","blocks.footer.commercial_register","السجل التجاري"),e("en.trans","blocks.footer.commercial_register","Commercial Register"),e("ar.trans","blocks.footer.freelance","وثيقة العمل الحر"),e("en.trans","blocks.footer.freelance","Freelance Certificate"),this.commercialRegisterLabel=salla.lang.getWithDefault("blocks.footer.commercial_register","السجل التجاري"),this.freelanceLabel=salla.lang.getWithDefault("blocks.footer.freelance","وثيقة العمل الحر")}))}getBadgeData(){const e=salla.config.get("store.settings.commercial_number"),s=salla.config.get("store.settings.freelance_number");return e?{number:e,label:this.commercialRegisterLabel||"السجل التجاري",imageUrl:salla.url.cdn("images/commercial-register.png",70,70),type:"commercial"}:s?{number:s,label:this.freelanceLabel||"وثيقة العمل الحر",imageUrl:this.dark?salla.url.cdn("images/freelance-white.png"):salla.url.cdn("images/freelance.png"),type:"freelance"}:null}render(){const e=this.getBadgeData();return e?s(r,{class:"s-trust-badges-wrapper "+(this.dark?"dark":"")},this.isVisibilityEnforced()?s("img",{class:"s-trust-badges-image",width:"55",height:"55",src:e.imageUrl,alt:e.label}):null,s("div",{class:"s-trust-badges-content"},s("p",{class:"s-trust-badges-label"},e.label),s("b",{class:"s-trust-badges-number"},e.number))):null}};a.style='/*!twlt*/.s-trust-badges-image{width:55px;height:55px;flex-shrink:0}.s-trust-badges-wrapper{display:flex;align-items:center}.s-trust-badges-wrapper>: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-trust-badges-wrapper:where([dir="rtl"],[dir="rtl"] *)>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.s-trust-badges-label{margin-bottom:0.25rem;font-size:0.875rem;line-height:1.25rem}.s-trust-badges-number{font-size:0.875rem;line-height:1.25rem}';export{a as salla_trust_badges}