@salla.sa/twilight-components 2.14.586 → 2.14.587
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.
- package/dist/cjs/{filepond-D_6sbWQk.js → filepond-BF8Q2gfH.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-poster-CVS8pOZw.js → filepond-plugin-file-poster-CDZXoVge.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-size-o1y8Fye-.js → filepond-plugin-file-validate-size-M6dKiRMH.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-type-Djhh1ldw.js → filepond-plugin-file-validate-type-BSTQI9uG.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-edit-0QzvFJme.js → filepond-plugin-image-edit-h3hJm3qv.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-exif-orientation-D8VMTsfT.js → filepond-plugin-image-exif-orientation-CXkq3_oT.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-preview-D77Y-dvk.js → filepond-plugin-image-preview-BP4-WdE7.js} +1 -1
- package/dist/cjs/{index-CReCU9cs.js → index-DN51eLtp.js} +2 -2
- package/dist/cjs/{intlTelInput-DpaOw5FS.js → intlTelInput-Cgao3Jc8.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/salla-accordion-body_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-accordion_6.cjs.entry.js +1 -1
- package/dist/cjs/salla-add-product-button_5.cjs.entry.js +99 -22
- package/dist/cjs/salla-advertisement.cjs.entry.js +1 -1
- package/dist/cjs/salla-alert_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-app-install-alert.cjs.entry.js +1 -1
- package/dist/cjs/salla-applied-filters.cjs.entry.js +1 -1
- package/dist/cjs/salla-apps-icons.cjs.entry.js +1 -1
- package/dist/cjs/salla-attachment-view_9.cjs.entry.js +10 -10
- package/dist/cjs/salla-badge.cjs.entry.js +1 -1
- package/dist/cjs/salla-basket-gap.cjs.entry.js +1 -1
- package/dist/cjs/salla-bullet-delivery_3.cjs.entry.js +1 -1
- package/dist/cjs/salla-cart-coupons.cjs.entry.js +1 -1
- package/dist/cjs/salla-cart-item-offers_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-cart-summary-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-cashback-banner.cjs.entry.js +1 -1
- package/dist/cjs/salla-comment-factors.cjs.entry.js +1 -1
- package/dist/cjs/salla-comment-form_9.cjs.entry.js +1 -1
- package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
- package/dist/cjs/salla-contacts.cjs.entry.js +2 -2
- package/dist/cjs/salla-cookies-bar.cjs.entry.js +1 -1
- package/dist/cjs/salla-count-down.cjs.entry.js +1 -1
- package/dist/cjs/salla-custom-fields.cjs.entry.js +1 -1
- package/dist/cjs/salla-delivery-promise.cjs.entry.js +1 -1
- package/dist/cjs/salla-edit-order-button.cjs.entry.js +1 -1
- package/dist/cjs/salla-filters-widget.cjs.entry.js +1 -1
- package/dist/cjs/salla-filters.cjs.entry.js +1 -1
- package/dist/cjs/salla-fulfillment-methods.cjs.entry.js +1 -1
- package/dist/cjs/salla-gift-card-redeem.cjs.entry.js +1 -1
- package/dist/cjs/salla-gifting.cjs.entry.js +1 -1
- package/dist/cjs/salla-hook.cjs.entry.js +1 -1
- package/dist/cjs/salla-infinite-scroll.cjs.entry.js +1 -1
- package/dist/cjs/salla-installment.cjs.entry.js +1 -1
- package/dist/cjs/salla-list-tile.cjs.entry.js +1 -1
- package/dist/cjs/salla-localization-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-login-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-banner_10.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-exchange-product-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-points-banner.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-points-history.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty.cjs.entry.js +1 -1
- package/dist/cjs/salla-maintenance-alert.cjs.entry.js +1 -1
- package/dist/cjs/salla-map_3.cjs.entry.js +1 -1
- package/dist/cjs/salla-menu.cjs.entry.js +1 -1
- package/dist/cjs/salla-metadata.cjs.entry.js +1 -1
- package/dist/cjs/salla-multiple-bundle-product-cart_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-multiple-bundle-product-options-modal_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-multiple-bundle-product.cjs.entry.js +1 -1
- package/dist/cjs/salla-next-order-coupon.cjs.entry.js +1 -1
- package/dist/cjs/salla-notification-item_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-offer-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-offer.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-branch.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-cancel.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-details-multiple-bundle-product.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-details-options.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-details.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-edit-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-edit-product-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-edit.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-options-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-shipments.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-summary.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-totals-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-orders.cjs.entry.js +1 -1
- package/dist/cjs/salla-payments.cjs.entry.js +24 -3
- package/dist/cjs/salla-placeholder.cjs.entry.js +1 -1
- package/dist/cjs/salla-price-range.cjs.entry.js +1 -1
- package/dist/cjs/salla-product-card-embed.cjs.entry.js +1 -1
- package/dist/cjs/salla-product-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-product-size-guide.cjs.entry.js +1 -1
- package/dist/cjs/salla-products-list.cjs.entry.js +1 -1
- package/dist/cjs/salla-products-slider.cjs.entry.js +1 -1
- package/dist/cjs/salla-quick-order.cjs.entry.js +1 -1
- package/dist/cjs/salla-rating-modal-v2.cjs.entry.js +1 -1
- package/dist/cjs/salla-rating-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-review-factors-tags.cjs.entry.js +1 -1
- package/dist/cjs/salla-review-order-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-scopes.cjs.entry.js +1 -1
- package/dist/cjs/salla-search-product-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-search.cjs.entry.js +1 -1
- package/dist/cjs/salla-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/salla-social-share.cjs.entry.js +1 -1
- package/dist/cjs/salla-social.cjs.entry.js +1 -1
- package/dist/cjs/salla-tab-content_3.cjs.entry.js +1 -1
- package/dist/cjs/salla-tiered-offer.cjs.entry.js +1 -1
- package/dist/cjs/salla-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/salla-trust-badges.cjs.entry.js +1 -1
- package/dist/cjs/salla-user-menu.cjs.entry.js +1 -1
- package/dist/cjs/salla-user-profile.cjs.entry.js +1 -1
- package/dist/cjs/salla-user-settings.cjs.entry.js +1 -1
- package/dist/cjs/salla-verify.cjs.entry.js +1 -1
- package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
- package/dist/cjs/salla-wishlist-actions.cjs.entry.js +1 -1
- package/dist/cjs/salla-wishlist-summary.cjs.entry.js +1 -1
- package/dist/cjs/twilight.cjs.js +1 -1
- package/dist/cjs/{vanilla-picker-qPeQoSpS.js → vanilla-picker-BAqDsAyV.js} +1 -1
- package/dist/collection/components/salla-contacts/salla-contacts.js +1 -1
- package/dist/collection/components/salla-payments/salla-payments.css +3 -0
- package/dist/collection/components/salla-payments/salla-payments.js +22 -1
- package/dist/collection/components/salla-quick-buy/salla-quick-buy.js +20 -6
- package/dist/components/index.js +2 -2
- package/dist/components/salla-contacts.js +1 -1
- package/dist/components/salla-payments.js +23 -2
- package/dist/components/salla-quick-buy2.js +98 -21
- package/dist/docs.json +1 -1
- package/dist/esm/{filepond-cGd_8brq.js → filepond-Xi2-pJA0.js} +1 -1
- package/dist/esm/{filepond-plugin-file-poster-DmVMpWPg.js → filepond-plugin-file-poster-DduYF-sA.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-size-vJfZzddp.js → filepond-plugin-file-validate-size-BkPirl0j.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-type-DXfCY9T0.js → filepond-plugin-file-validate-type-BIX8_1CI.js} +1 -1
- package/dist/esm/{filepond-plugin-image-edit-DHBzZ_bY.js → filepond-plugin-image-edit--1Sv5xxH.js} +1 -1
- package/dist/esm/{filepond-plugin-image-exif-orientation-2sbvlxy2.js → filepond-plugin-image-exif-orientation-Dss_DgF7.js} +1 -1
- package/dist/esm/{filepond-plugin-image-preview-BnPTV3nB.js → filepond-plugin-image-preview-CaA89Pn1.js} +1 -1
- package/dist/esm/{index-CpfofV0a.js → index-BtdIfJF8.js} +2 -2
- package/dist/esm/{intlTelInput-DxmbJyWe.js → intlTelInput-DxHIK3cL.js} +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/salla-accordion-body_2.entry.js +1 -1
- package/dist/esm/salla-accordion_6.entry.js +1 -1
- package/dist/esm/salla-add-product-button_5.entry.js +99 -22
- package/dist/esm/salla-advertisement.entry.js +1 -1
- package/dist/esm/salla-alert_2.entry.js +1 -1
- package/dist/esm/salla-app-install-alert.entry.js +1 -1
- package/dist/esm/salla-applied-filters.entry.js +1 -1
- package/dist/esm/salla-apps-icons.entry.js +1 -1
- package/dist/esm/salla-attachment-view_9.entry.js +10 -10
- package/dist/esm/salla-badge.entry.js +1 -1
- package/dist/esm/salla-basket-gap.entry.js +1 -1
- package/dist/esm/salla-bullet-delivery_3.entry.js +1 -1
- package/dist/esm/salla-cart-coupons.entry.js +1 -1
- package/dist/esm/salla-cart-item-offers_2.entry.js +1 -1
- package/dist/esm/salla-cart-summary-card.entry.js +1 -1
- package/dist/esm/salla-cashback-banner.entry.js +1 -1
- package/dist/esm/salla-comment-factors.entry.js +1 -1
- package/dist/esm/salla-comment-form_9.entry.js +1 -1
- package/dist/esm/salla-conditional-offer.entry.js +1 -1
- package/dist/esm/salla-contacts.entry.js +2 -2
- package/dist/esm/salla-cookies-bar.entry.js +1 -1
- package/dist/esm/salla-count-down.entry.js +1 -1
- package/dist/esm/salla-custom-fields.entry.js +1 -1
- package/dist/esm/salla-delivery-promise.entry.js +1 -1
- package/dist/esm/salla-edit-order-button.entry.js +1 -1
- package/dist/esm/salla-filters-widget.entry.js +1 -1
- package/dist/esm/salla-filters.entry.js +1 -1
- package/dist/esm/salla-fulfillment-methods.entry.js +1 -1
- package/dist/esm/salla-gift-card-redeem.entry.js +1 -1
- package/dist/esm/salla-gifting.entry.js +1 -1
- package/dist/esm/salla-hook.entry.js +1 -1
- package/dist/esm/salla-infinite-scroll.entry.js +1 -1
- package/dist/esm/salla-installment.entry.js +1 -1
- package/dist/esm/salla-list-tile.entry.js +1 -1
- package/dist/esm/salla-localization-modal.entry.js +1 -1
- package/dist/esm/salla-login-modal.entry.js +1 -1
- package/dist/esm/salla-loyalty-banner_10.entry.js +1 -1
- package/dist/esm/salla-loyalty-exchange-product-card.entry.js +1 -1
- package/dist/esm/salla-loyalty-points-banner.entry.js +1 -1
- package/dist/esm/salla-loyalty-points-history.entry.js +1 -1
- package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
- package/dist/esm/salla-loyalty.entry.js +1 -1
- package/dist/esm/salla-maintenance-alert.entry.js +1 -1
- package/dist/esm/salla-map_3.entry.js +1 -1
- package/dist/esm/salla-menu.entry.js +1 -1
- package/dist/esm/salla-metadata.entry.js +1 -1
- package/dist/esm/salla-multiple-bundle-product-cart_2.entry.js +1 -1
- package/dist/esm/salla-multiple-bundle-product-options-modal_2.entry.js +1 -1
- package/dist/esm/salla-multiple-bundle-product.entry.js +1 -1
- package/dist/esm/salla-next-order-coupon.entry.js +1 -1
- package/dist/esm/salla-notification-item_2.entry.js +1 -1
- package/dist/esm/salla-offer-modal.entry.js +1 -1
- package/dist/esm/salla-offer.entry.js +1 -1
- package/dist/esm/salla-order-branch.entry.js +1 -1
- package/dist/esm/salla-order-cancel.entry.js +1 -1
- package/dist/esm/salla-order-details-multiple-bundle-product.entry.js +1 -1
- package/dist/esm/salla-order-details-options.entry.js +1 -1
- package/dist/esm/salla-order-details.entry.js +1 -1
- package/dist/esm/salla-order-edit-item.entry.js +1 -1
- package/dist/esm/salla-order-edit-product-card.entry.js +1 -1
- package/dist/esm/salla-order-edit.entry.js +1 -1
- package/dist/esm/salla-order-options-modal.entry.js +1 -1
- package/dist/esm/salla-order-shipments.entry.js +1 -1
- package/dist/esm/salla-order-summary.entry.js +1 -1
- package/dist/esm/salla-order-totals-card.entry.js +1 -1
- package/dist/esm/salla-orders.entry.js +1 -1
- package/dist/esm/salla-payments.entry.js +24 -3
- package/dist/esm/salla-placeholder.entry.js +1 -1
- package/dist/esm/salla-price-range.entry.js +1 -1
- package/dist/esm/salla-product-card-embed.entry.js +1 -1
- package/dist/esm/salla-product-card.entry.js +1 -1
- package/dist/esm/salla-product-size-guide.entry.js +1 -1
- package/dist/esm/salla-products-list.entry.js +1 -1
- package/dist/esm/salla-products-slider.entry.js +1 -1
- package/dist/esm/salla-quick-order.entry.js +1 -1
- package/dist/esm/salla-rating-modal-v2.entry.js +1 -1
- package/dist/esm/salla-rating-modal.entry.js +1 -1
- package/dist/esm/salla-review-factors-tags.entry.js +1 -1
- package/dist/esm/salla-review-order-item.entry.js +1 -1
- package/dist/esm/salla-scopes.entry.js +1 -1
- package/dist/esm/salla-search-product-card.entry.js +1 -1
- package/dist/esm/salla-search.entry.js +1 -1
- package/dist/esm/salla-skeleton.entry.js +1 -1
- package/dist/esm/salla-social-share.entry.js +1 -1
- package/dist/esm/salla-social.entry.js +1 -1
- package/dist/esm/salla-tab-content_3.entry.js +1 -1
- package/dist/esm/salla-tiered-offer.entry.js +1 -1
- package/dist/esm/salla-tooltip.entry.js +1 -1
- package/dist/esm/salla-trust-badges.entry.js +1 -1
- package/dist/esm/salla-user-menu.entry.js +1 -1
- package/dist/esm/salla-user-profile.entry.js +1 -1
- package/dist/esm/salla-user-settings.entry.js +1 -1
- package/dist/esm/salla-verify.entry.js +1 -1
- package/dist/esm/salla-wallet.entry.js +1 -1
- package/dist/esm/salla-wishlist-actions.entry.js +1 -1
- package/dist/esm/salla-wishlist-summary.entry.js +1 -1
- package/dist/esm/twilight.js +2 -2
- package/dist/esm/{vanilla-picker-nA0gc1Cv.js → vanilla-picker-CdDrNNAM.js} +1 -1
- package/dist/twilight/{p-228007cc.entry.js → p-072455fd.entry.js} +1 -1
- package/dist/twilight/{p-2d6ac28f.entry.js → p-09f65942.entry.js} +1 -1
- package/dist/twilight/{p-555caba6.entry.js → p-0b975744.entry.js} +1 -1
- package/dist/twilight/{p-c956c5f0.entry.js → p-0d58eb8e.entry.js} +1 -1
- package/dist/twilight/{p-d8bb98ed.entry.js → p-14545c2e.entry.js} +1 -1
- package/dist/twilight/{p-ce4f7734.entry.js → p-15b4d61d.entry.js} +1 -1
- package/dist/twilight/{p-a1619269.entry.js → p-1f48b187.entry.js} +1 -1
- package/dist/twilight/{p-8ddf82ac.entry.js → p-20b122f5.entry.js} +1 -1
- package/dist/twilight/{p-523971f5.entry.js → p-20edfe7d.entry.js} +1 -1
- package/dist/twilight/{p-9974ecba.entry.js → p-22bf309f.entry.js} +1 -1
- package/dist/twilight/p-24ebf9d6.entry.js +4 -0
- package/dist/twilight/{p-4814b5d4.entry.js → p-26479dee.entry.js} +1 -1
- package/dist/twilight/{p-c5d5b9e9.entry.js → p-2a5844fa.entry.js} +1 -1
- package/dist/twilight/{p-944e0e08.entry.js → p-3212b345.entry.js} +1 -1
- package/dist/twilight/{p-c382d4e1.entry.js → p-32f6ea11.entry.js} +1 -1
- package/dist/twilight/{p-71e1f303.entry.js → p-340621ed.entry.js} +1 -1
- package/dist/twilight/{p-1075a4d0.entry.js → p-344e9465.entry.js} +1 -1
- package/dist/twilight/{p-d6fcc0ac.entry.js → p-357c7c69.entry.js} +1 -1
- package/dist/twilight/{p-07bb37a5.entry.js → p-3b37eccc.entry.js} +1 -1
- package/dist/twilight/{p-af82356a.entry.js → p-3b566d5d.entry.js} +1 -1
- package/dist/twilight/{p-f3d84cf0.entry.js → p-410af88a.entry.js} +1 -1
- package/dist/twilight/{p-5f41c9fe.entry.js → p-41b0367e.entry.js} +1 -1
- package/dist/twilight/{p-8c44f4f2.entry.js → p-49d4a3c2.entry.js} +1 -1
- package/dist/twilight/{p-8e2ea210.entry.js → p-4e5bde43.entry.js} +1 -1
- package/dist/twilight/{p-0df9bcc4.entry.js → p-506f1716.entry.js} +1 -1
- package/dist/twilight/{p-62555be5.entry.js → p-565f74fe.entry.js} +1 -1
- package/dist/twilight/{p-5fe757aa.entry.js → p-56b50c65.entry.js} +1 -1
- package/dist/twilight/{p-415eba06.entry.js → p-56f3be75.entry.js} +1 -1
- package/dist/twilight/{p-d92b735e.entry.js → p-5710d065.entry.js} +1 -1
- package/dist/twilight/{p-e3a06384.entry.js → p-573899dc.entry.js} +1 -1
- package/dist/twilight/{p-0782f0a7.entry.js → p-58a66109.entry.js} +1 -1
- package/dist/twilight/{p-2c92df45.entry.js → p-5afc95a7.entry.js} +1 -1
- package/dist/twilight/{p-9b2767b1.entry.js → p-5d8cc35c.entry.js} +1 -1
- package/dist/twilight/{p-f2e4492c.entry.js → p-5f7532b3.entry.js} +1 -1
- package/dist/twilight/{p-fd4272ca.entry.js → p-60a35744.entry.js} +1 -1
- package/dist/twilight/{p-ee056aef.entry.js → p-646d3f8f.entry.js} +1 -1
- package/dist/twilight/{p-83df1e8e.entry.js → p-67a08021.entry.js} +1 -1
- package/dist/twilight/{p-b5abf61f.entry.js → p-6b9c1c5d.entry.js} +1 -1
- package/dist/twilight/{p-8eb99a28.entry.js → p-6de41bdc.entry.js} +1 -1
- package/dist/twilight/{p-42c011f5.entry.js → p-6ed2c97c.entry.js} +1 -1
- package/dist/twilight/{p-b65576d3.entry.js → p-773de9cc.entry.js} +1 -1
- package/dist/twilight/{p-73ecd2bc.entry.js → p-7944abc5.entry.js} +1 -1
- package/dist/twilight/{p-6d9c2c00.entry.js → p-799027c5.entry.js} +1 -1
- package/dist/twilight/{p-BVZV3mwk.js → p-7Z5IAwod.js} +1 -1
- package/dist/twilight/{p-bde115c6.entry.js → p-7c1d3130.entry.js} +1 -1
- package/dist/twilight/{p-841f230a.entry.js → p-80818114.entry.js} +1 -1
- package/dist/twilight/{p-d680f719.entry.js → p-80a7d4af.entry.js} +1 -1
- package/dist/twilight/{p-51ecb2d9.entry.js → p-84588994.entry.js} +1 -1
- package/dist/twilight/{p-dc89997e.entry.js → p-89cbcd3c.entry.js} +1 -1
- package/dist/twilight/{p-f8858ab7.entry.js → p-8bf2a280.entry.js} +1 -1
- package/dist/twilight/{p-d6634a06.entry.js → p-8dac352c.entry.js} +1 -1
- package/dist/twilight/{p-c2bd158e.entry.js → p-93064a1f.entry.js} +1 -1
- package/dist/twilight/{p-ea3bb7fb.entry.js → p-9661b909.entry.js} +1 -1
- package/dist/twilight/{p-ea4f08bf.entry.js → p-97ead14b.entry.js} +1 -1
- package/dist/twilight/{p-41a26099.entry.js → p-98c519f7.entry.js} +1 -1
- package/dist/twilight/{p-b0350351.entry.js → p-9d3d89f8.entry.js} +1 -1
- package/dist/twilight/{p-CkkVp-q5.js → p-Bc26pjHG.js} +1 -1
- package/dist/twilight/{p-hBZ1atkH.js → p-BiGEqBIB.js} +1 -1
- package/dist/twilight/{p-Dxk4zt55.js → p-BjKw2hiE.js} +1 -1
- package/dist/twilight/{p-CpfofV0a.js → p-BtdIfJF8.js} +1 -1
- package/dist/twilight/{p-xMEM8S5Y.js → p-CKp7_rq_.js} +1 -1
- package/dist/twilight/{p-D0cyuYs_.js → p-D9PZqqzV.js} +2 -2
- package/dist/twilight/{p-BeznJhTa.js → p-DetotZcx.js} +1 -1
- package/dist/twilight/{p-D1Wbg5r1.js → p-DwNLIufU.js} +1 -1
- package/dist/twilight/{p-DY7GHkFV.js → p-ShShhGeu.js} +1 -1
- package/dist/twilight/{p-3ee5c715.entry.js → p-a0ad482e.entry.js} +1 -1
- package/dist/twilight/{p-4c7190e3.entry.js → p-a244a4f2.entry.js} +1 -1
- package/dist/twilight/{p-dc3bdfef.entry.js → p-a6c0154a.entry.js} +1 -1
- package/dist/twilight/{p-dd96258c.entry.js → p-a71b30fa.entry.js} +1 -1
- package/dist/twilight/{p-06724710.entry.js → p-a9857ca3.entry.js} +1 -1
- package/dist/twilight/{p-547d3b81.entry.js → p-ae543e87.entry.js} +1 -1
- package/dist/twilight/{p-ea96f4ff.entry.js → p-af6932b0.entry.js} +1 -1
- package/dist/twilight/{p-50c8e72c.entry.js → p-b199478b.entry.js} +1 -1
- package/dist/twilight/{p-bcfd547b.entry.js → p-b1f146d6.entry.js} +1 -1
- package/dist/twilight/{p-1bf5a9c5.entry.js → p-b492dd6a.entry.js} +1 -1
- package/dist/twilight/{p-4d7cf422.entry.js → p-b5b70b36.entry.js} +1 -1
- package/dist/twilight/{p-ae85b377.entry.js → p-b677ddca.entry.js} +1 -1
- package/dist/twilight/{p-b137c970.entry.js → p-bbfa65b5.entry.js} +1 -1
- package/dist/twilight/{p-7938aa97.entry.js → p-bce91b93.entry.js} +1 -1
- package/dist/twilight/{p-9b27ca27.entry.js → p-bd84e964.entry.js} +1 -1
- package/dist/twilight/{p-5b1a2e44.entry.js → p-be824cd2.entry.js} +1 -1
- package/dist/twilight/{p-547c2ed5.entry.js → p-c1caf8cb.entry.js} +1 -1
- package/dist/twilight/{p-33a611be.entry.js → p-c317b529.entry.js} +1 -1
- package/dist/twilight/{p-85fb9e19.entry.js → p-c3d67706.entry.js} +1 -1
- package/dist/twilight/{p-3444b26e.entry.js → p-c495c15f.entry.js} +1 -1
- package/dist/twilight/{p-a9d5b26c.entry.js → p-c571954d.entry.js} +1 -1
- package/dist/twilight/{p-d9758e1a.entry.js → p-c61fce7a.entry.js} +1 -1
- package/dist/twilight/p-c64aaef9.entry.js +4 -0
- package/dist/twilight/{p-6f7fba84.entry.js → p-cbe828f7.entry.js} +1 -1
- package/dist/twilight/{p-a35e39e5.entry.js → p-cec14ad5.entry.js} +1 -1
- package/dist/twilight/{p-43512641.entry.js → p-cf1ea038.entry.js} +1 -1
- package/dist/twilight/{p-a188bde3.entry.js → p-d3a3216f.entry.js} +1 -1
- package/dist/twilight/{p-c80c3bde.entry.js → p-d46adde4.entry.js} +1 -1
- package/dist/twilight/{p-a5ea67c7.entry.js → p-d720d65e.entry.js} +1 -1
- package/dist/twilight/{p-68dd78bc.entry.js → p-df4e13e9.entry.js} +1 -1
- package/dist/twilight/{p-e58faf81.entry.js → p-e3a2bf70.entry.js} +1 -1
- package/dist/twilight/{p-de880ecf.entry.js → p-e519da79.entry.js} +1 -1
- package/dist/twilight/{p-d3876217.entry.js → p-e583bb7d.entry.js} +1 -1
- package/dist/twilight/{p-5ca9e30b.entry.js → p-e9174da7.entry.js} +1 -1
- package/dist/twilight/{p-0103d0dc.entry.js → p-e9ab3ead.entry.js} +1 -1
- package/dist/twilight/{p-b7334ac9.entry.js → p-f318c73c.entry.js} +1 -1
- package/dist/twilight/{p-0470406f.entry.js → p-f32f8e51.entry.js} +1 -1
- package/dist/twilight/{p-afe27025.entry.js → p-f3cd8cf5.entry.js} +1 -1
- package/dist/twilight/{p-6713d7fd.entry.js → p-f4d02219.entry.js} +1 -1
- package/dist/twilight/{p-d50badfc.entry.js → p-f97885ed.entry.js} +1 -1
- package/dist/twilight/{p-cfa579ba.entry.js → p-fcbd0395.entry.js} +1 -1
- package/dist/twilight/twilight.esm.js +1 -1
- package/dist/types/components/salla-quick-buy/salla-quick-buy.d.ts +9 -0
- package/package.json +5 -5
- package/dist/twilight/p-37861ce2.entry.js +0 -4
- package/dist/twilight/p-741c66e3.entry.js +0 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Crafted with ❤ by Salla
|
|
3
3
|
*/
|
|
4
|
-
import{r as t,h as r,a as e}from"./p-CpfofV0a.js";import{t as o}from"./p-CrSV-tno.js";var i,a;!function(t){t.ProductDetail="product.single",t.Cart="cart"}(i||(i={})),function(t){t.Conditional="conditional",t.PercentageOrFixed="fixed",t.DiscountsTable="discounts_table",t.Bank="bank",t.BuyXGetY="buy_x_get_y",t.SpecialPrice="special_price",t.Percentage="percentage",t.FixedAmount="fixed_amount"}(a||(a={}));const s=class{constructor(r){t(this,r),this.productCardComponent="salla-product-card",this.offersList=[],this.canRender=!1,this.showOffer=salla.config.get("store.settings.product.show_special_offers"),this.showAllOffersModal=!1,this.showProductsModal=!1,this.selectedOfferProducts=[],this.collapsedOffers={},this.expandedCategories={},this.productsLoaded=!1,this.offer_with_price_text=salla.lang.get("pages.offer.with_price",{price:""}),this.with_discount_text=salla.lang.get("pages.products.with_a_discount"),this.product_discount_text=salla.lang.get("pages.products.discount"),this.special_offer_text=salla.lang.get("pages.products.special_offer"),this.buy_quantity_text=t=>salla.lang.get("pages.offer.buy_quantity",{quantity:t}),this.products_link_text=salla.lang.get("pages.offer.included_products","المنتجات المشمولة"),this.min_spend_text=t=>o("pages.offer.min_spend_amount",{amount:t,currency:""},`بحد أدنى ${t} من مبلغ الشراء`),this.min_items_text=t=>o("pages.offer.min_items",{items:t},`بحد أدنى ${t} منتجات`),this.max_discount_text=t=>o("pages.offer.max_discount_amount",{amount:t,currency:""},`بحد أقصى ${t} للخصم`),this.branches_text=o("pages.offer.available_branches",{},"الفروع المتاحة"),this.buy_from_text=o("pages.offer.buy_from_categories",{},"اشترِ من:"),this.get_from_text=o("pages.offer.get_from_categories",{},"احصل من:"),this.payment_methods_text=o("pages.offer.payment_methods",{},"طرق الدفع"),this.product_text=salla.lang.get("common.elements.product","منتج"),salla.lang.onLoaded((()=>{this.offer_with_price_text=salla.lang.get("pages.offer.with_price"),this.with_discount_text=salla.lang.get("pages.products.with_a_discount"),this.product_discount_text=salla.lang.get("pages.products.discount"),this.special_offer_text=salla.lang.get("pages.products.special_offer"),this.buy_quantity_text(0),this.products_link_text=salla.lang.get("pages.offer.included_products","المنتجات المشمولة"),this.min_spend_text=t=>o("pages.offer.min_spend_amount",{amount:t,currency:""},`بحد أدنى ${t} من مبلغ الشراء`),this.min_items_text=t=>o("pages.offer.min_items",{items:t},`بحد أدنى ${t} منتجات`),this.max_discount_text=t=>o("pages.offer.max_discount_amount",{amount:t,currency:""},`بحد أقصى ${t} للخصم`),this.branches_text=o("pages.offer.available_branches",{},"الفروع المتاحة"),this.buy_from_text=o("pages.offer.buy_from_categories",{},"اشترِ من:"),this.get_from_text=o("pages.offer.get_from_categories",{},"احصل من:"),this.payment_methods_text=o("pages.offer.payment_methods",{},"طرق الدفع"),this.product_text=salla.lang.get("common.elements.product","منتج")})),salla.onReady((()=>{this.currentPage=salla.config.get("page.slug");const t=salla.config.get("currencies")||{},r=salla.config.get("user.currency_code");this.userCurrency=t[r]||{symbol:"",code:r||"SAR",name:""}}))}async getEndpointByPageName(){return this.currentPage==i.Cart?`offers/cart/${await Salla.cart.getCurrentCartId()}`:this.currentPage==i.ProductDetail?`offers/product/${salla.config.get("page.id")}`:"offers"}emitPromotionViewed(){if(!(this.offersList.length&&this.canRender&&this.showOffer))return;const t=this.offersList.slice(0,5).map(((t,r)=>({id:t.id,name:t.title,creative:t.description||"",position:r+1})));salla.event.emit("salla::offer.promotion.viewed",t)}emitPromotionClicked(t,r=1){if(!(this.offersList.length&&this.canRender&&this.showOffer))return;const e=t||this.offersList[0];salla.event.emit("salla::offer.promotion.clicked",[{id:e.id,name:e.title,creative:e.description||"",position:r}])}componentWillLoad(){return this.hasCustomComponent=!!customElements.get(this.productCardComponent),new Promise((t=>salla.onReady(t))).then((()=>{if(this.showOffer=!salla.url.is_page("product.single")||salla.config.get("store.settings.product.show_special_offers"),!this.showOffer)throw new Error("Merchant disabled showing the offers on product page")})).then((async()=>this.currentPage==i.Cart?salla.api.cart.offers():salla.api.request(await this.getEndpointByPageName()))).then((async t=>{if(!(this.offersList=t.data).length)throw new Error("salla-offers:: There is no offers!");if(this.offersList=this.offersList.filter((t=>[a.SpecialPrice,a.Bank,a.BuyXGetY,a.DiscountsTable,a.PercentageOrFixed,a.Percentage,a.FixedAmount].includes(t.type))),!this.offersList.length)throw new Error("salla-offers:: No supported offer types found!");let r=null;this.offersList.some((t=>{const r=t.details;return"category"===r.apply_to&&r.targets||"categories"===r.apply_to&&r.targets||t.type===a.BuyXGetY&&("categories"===r.get?.source||"category"===r.get?.source||"categories"===r.buy?.source||"category"===r.buy?.source)}))&&(r=(await salla.product.api.categories()).data);const e=new Set;for(const t of this.offersList){const r=t.details;"product"!==r.apply_to&&"products"!==r.apply_to||!r.targets||r.targets.forEach((t=>e.add(t))),t.type===a.BuyXGetY&&"products"===r.get?.source&&r.get?.source_value&&r.get.source_value.forEach((t=>e.add(t))),t.type!==a.BuyXGetY||"products"!==r.buy?.source&&"product"!==r.buy?.source||!r.buy?.source_value||r.buy.source_value.forEach((t=>e.add(t)))}let o={};if(e.size>0)try{const t=await salla.product.api.fetch({source:"selected",source_value:Array.from(e)});o=Object.fromEntries(t.data.map((t=>[t.id,t])))}catch(t){o={}}for(const t of this.offersList){const e=t.details;if(("category"===e.apply_to&&e.targets||"categories"===e.apply_to&&e.targets)&&r&&(e.categories=this.findCategories(r,e.targets)),"product"!==e.apply_to&&"products"!==e.apply_to||!e.targets||(e.products=e.targets.map((t=>o[t])).filter(Boolean)),"brand"===e.apply_to&&e.targets&&(e.brands=e.targets),"tag"===e.apply_to&&e.targets&&(e.tags=e.targets),t.type===a.BuyXGetY&&e.get){const t=e.get;"products"===t.source&&t.source_value?t.products=t.source_value.map((t=>o[t])).filter(Boolean):("categories"===t.source||"category"===t.source)&&r&&t.source_value&&(t.categories=this.findCategories(r,t.source_value),e.categories=t.categories)}if(t.type===a.BuyXGetY&&e.buy){const t=e.buy;"products"!==t.source&&"product"!==t.source||!t.source_value?("categories"===t.source||"category"===t.source)&&r&&t.source_value&&(t.categories=this.findCategories(r,t.source_value)):t.products=t.source_value.map((t=>o[t])).filter(Boolean)}}return this.offersList})).then((()=>{this.canRender=!0})).catch((t=>{salla.logger.warn(t)}))}componentDidLoad(){let t=this.host.querySelector(".s-slider-block__title-nav");t?.classList.add("s-offer-bank-payment-nav"),this.emitPromotionViewed()}findCategories(t,r){let e=[];for(const o of t)r.includes(o.id_||o.id)&&e.push(o),o.sub_categories?.length>0&&(e=e.concat(this.findCategories(o.sub_categories,r)));return e}render(){if(!this.offersList.length||!this.canRender||!this.showOffer)return null;const t=salla.lang.get("pages.offer.offers_title","عروض المنتج"),e=salla.lang.get("pages.offer.offers_subtitle","احصل على المنتج بسعر مخفض مع أفضل العروض");return[r("div",{class:"s-offer-wrapper"},r("salla-slider",{type:"carousel",id:"offers-slider","block-title":t,"block-subTitle":e,"show-controls":this.offersList.length>1},r("div",{slot:"items"},this.offersList.slice(0,5).map(((t,r)=>this.renderOfferCard(t,r+1))),this.offersList.length>5&&this.renderShowMoreCard()))),this.renderAllOffersModal(),this.renderProductsModal()]}renderShowMoreCard(){return r("div",{class:"s-offer-slide-one-fourth swiper-slide",onClick:t=>{t.preventDefault(),t.stopPropagation(),this.openAllOffersModal()}},r("div",{class:"s-offer-card s-offer-show-more-card"},r("i",{class:"sicon-add s-offer-show-more-icon"}),r("h3",{class:"s-offer-show-more-title"},salla.lang.get("pages.offer.show_more_offers","عرض المزيد من العروض"))))}openAllOffersModal(){this.showAllOffersModal=!0}closeAllOffersModal(){this.showAllOffersModal=!1}closeProductsModal(){this.showProductsModal=!1,this.selectedOfferProducts=[],this.productsLoaded=!1}handleAccordionToggle(t,r){this.collapsedOffers={...this.collapsedOffers,[t]:r}}getOfferProducts(t){const r=t.details;return r.products&&r.products.length>0?r.products:t.type===a.BuyXGetY&&r.get?.products?r.get.products:[]}renderCardDescriptionRow(t,e=!1){const o=e&&t.type===a.DiscountsTable?this.renderProductsLinkForModalCard(t,!1):null;return t.description||o?r("div",{class:"s-offer-card-description-row"},t.description&&r("p",{class:"s-offer-card-description"},t.description),o):null}renderProductsLinkForModalCard(t,e){const o=this.getOfferProducts(t);return o&&0!==o.length?r("div",{class:"s-offer-products-link",onClick:t=>{t.stopPropagation(),this.selectedOfferProducts=o,this.showProductsModal=!0}},r("span",{class:"s-offer-products-link-text"},this.products_link_text),e&&r("i",{class:"sicon-keyboard_arrow_down s-offer-products-link-icon"})):null}renderAllOffersModal(){return r("salla-drawer",{visible:this.showAllOffersModal,position:"right",width:"md","no-padding":!0,"drawer-title":salla.lang.get("pages.offer.all_offers_title","جميع العروض"),onDrawerVisibilityChanged:t=>!t.detail&&this.closeAllOffersModal()},r("div",{class:"s-offer-drawer-content"},this.offersList.map(((t,r)=>this.renderModalOfferCard(t,r+1)))))}renderProductsModal(){return r("salla-drawer",{visible:this.showProductsModal,width:"md",position:"right","no-padding":!0,"drawer-title":this.products_link_text,onDrawerVisibilityChanged:t=>!t.detail&&this.closeProductsModal()},r("div",{class:"s-offer-products-drawer-content"},this.selectedOfferProducts?.length>0?r("div",null,!this.productsLoaded&&r("div",{class:"flex items-center justify-center p-8"},r("salla-loading",{size:"24"})),r("salla-products-list",{source:"selected","source-value":JSON.stringify(this.selectedOfferProducts.map((t=>t.id))),"product-card-component":this.productCardComponent,"horizontal-cards":!0,"compact-cards":!0,includes:["images"],onProductsFetched:()=>this.productsLoaded=!0})):r("div",{class:"p-4 text-center text-gray-500"},salla.lang.get("blocks.products.no_products_found","لا توجد منتجات"))))}renderModalOfferCard(t,e=1){const o=this.getOfferProducts(t),i=o&&o.length>0,s=!1!==this.collapsedOffers[t.id];return r("div",{class:"s-offer-drawer-card"},r("div",{class:"s-offer-card-main",onClick:()=>this.emitPromotionClicked(t,e)},r("div",{class:"s-offer-card-icon"},this.getOfferIcon(t.type)),r("div",{class:"s-offer-card-content"},r("h3",{class:"s-offer-card-title",title:t.title},t.title),this.renderCardDescriptionRow(t),t.type===a.DiscountsTable?r("div",{class:"s-offer-card-details"},this.renderDiscountTableOfferContent(t),this.renderOfferPaymentMethods(t),this.renderOfferBranches(t)):r("div",{class:"s-offer-card-details"},t.type===a.PercentageOrFixed||t.type===a.Percentage||t.type===a.FixedAmount?this.renderPercentageOrFixedOfferContent(t):this.renderMinSpend(t),this.renderOfferCategories(t),this.renderOfferBrands(t),this.renderOfferTags(t),this.renderOfferPaymentMethods(t),this.renderOfferBranches(t)))),i&&r("salla-accordion",{collapsed:s,collapsible:!0,size:"sm",onClick:t=>t.stopPropagation(),onAccordionToggle:r=>this.handleAccordionToggle(t.id,r.detail.payload.collapsed)},r("salla-accordion-head",{collapsible:!0,collapsed:s},r("div",{slot:"title",class:"s-offer-products-thumbnails"},r("span",{class:"s-offer-products-title"},this.products_link_text,r("i",{class:`sicon-keyboard_arrow_${s?"down":"up"} s-offer-products-link-icon`})),r("div",{class:"s-offer-products-thumbnails-stack"},o.slice(0,3).map(((t,e)=>r("div",{class:"s-offer-product-thumbnail",style:{zIndex:`${e+1}`}},r("img",{src:t.thumbnail||t.image?.url||salla.url.cdn("images/s-empty.png"),alt:t.name})))),o.length>3&&r("div",{class:"s-offer-products-more-count",style:{zIndex:"7"}},"+",o.length-3)))),r("salla-accordion-body",null,r("div",{class:"s-offer-products-content"},r("salla-products-list",{source:"selected","source-value":JSON.stringify(o.map((t=>t.id))),"product-card-component":this.productCardComponent,"horizontal-cards":!0,"compact-cards":!0,includes:["images"]})))))}renderOfferCard(t,e=1){return r("div",{class:"s-offer-slide-one-fourth swiper-slide",onClick:()=>this.emitPromotionClicked(t,e)},r("div",{class:"s-offer-card"},r("div",{class:"s-offer-card-icon"},this.getOfferIcon(t.type)),r("div",{class:"s-offer-card-content"},r("h3",{class:"s-offer-card-title",title:t.title},t.title),this.renderCardDescriptionRow(t,!0),r("div",{class:"s-offer-card-details"},t.type===a.DiscountsTable?[this.renderDiscountTableOfferContent(t),this.renderOfferPaymentMethods(t),this.renderOfferBranches(t)]:t.type===a.PercentageOrFixed||t.type===a.Percentage||t.type===a.FixedAmount?[this.renderPercentageOrFixedOfferContent(t),this.renderOfferCategories(t),this.renderOfferBrands(t),this.renderOfferTags(t),this.renderOfferPaymentMethods(t),this.renderOfferBranches(t)]:[this.renderMinSpend(t),this.renderOfferCategories(t),this.renderOfferBrands(t),this.renderOfferTags(t),this.renderOfferPaymentMethods(t),this.renderOfferBranches(t)],t.type!==a.DiscountsTable&&this.renderProductsLinkForModalCard(t,!1)))))}getOfferIcon(t){return r("i",{class:{[a.DiscountsTable]:"sicon-discount-calculator",[a.Bank]:"sicon-bank",[a.SpecialPrice]:"sicon-fire",[a.BuyXGetY]:"sicon-gift",[a.PercentageOrFixed]:"sicon-special-discount",[a.Percentage]:"sicon-special-discount",[a.FixedAmount]:"sicon-special-discount"}[t]||"sicon-discount"})}renderDiscountTableOfferContent(t){const e=t.details.discounts||[];return e.length?r("div",null,!t.description&&r("div",{class:"s-offer-card-description"},salla.lang.get("pages.offer.discount_table_subtitle","وفِّر أكثر بشراء منتجات أكثر")),r("table",{class:"s-offer-discount-table"},r("tbody",null,this.groupDiscountsByRows(e,3).map(((t,e)=>r("tr",{key:e},t.map(((t,e)=>r("td",{key:e},r("div",{class:"s-offer-discount-percentage"},t.percentage,"%"),r("div",{class:"s-offer-discount-condition"},this.formatDiscountCondition(t))))))))))):null}renderMinSpend(t){const e=t.details;return e.min_spend>0?r("div",{class:"s-offer-min-spend",innerHTML:this.min_spend_text(this.money(e.min_spend))}):null}renderPercentageOrFixedOfferContent(t){const e=t.details;return e.discount_value||e.min_spend>0||e.min_items>0||e.max_discount_amount>0?r("div",{class:"s-offer-percentage-fixed-content"},e.min_spend>0&&r("div",{class:"s-offer-min-spend",innerHTML:this.min_spend_text(this.money(e.min_spend))}),e.min_items>0&&r("div",{class:"s-offer-min-items"},this.min_items_text(e.min_items)),e.max_discount_amount>0&&r("div",{class:"s-offer-max-discount",innerHTML:this.max_discount_text(this.money(e.max_discount_amount))})):null}groupDiscountsByRows(t,r){const e=[];for(let o=0;o<t.length;o+=r)e.push(t.slice(o,o+r));return e}money(t){return"function"==typeof salla?.money?salla.money(t):`${t} ${this.userCurrency?.symbol||""}`}formatDiscountCondition(t){return`${t.quantity??1} ${this.product_text}`}renderCategoryGroup(t,e,o){return r("div",{class:"s-offer-categories-group"},r("span",{class:"s-offer-categories-label"},o),r("div",{class:"s-offer-categories-list"},e.map(((e,o)=>r("a",{key:`${t.id}-${o}`,class:"s-offer-category-item",href:e.url||salla.url.create("categories",e.id||e.id_)},e.name)))))}renderOfferCategories(t){const e=t.details;let o=e.categories||[];if(t.type===a.BuyXGetY&&e.get?.categories&&(o=e.get.categories),t.type===a.BuyXGetY){const o=e.buy?.categories||[],i=e.get?.categories||[],a=t=>t.map((t=>t.id||t.id_)).join(",");if(o.length&&i.length&&a(o)!==a(i))return r("div",{class:"s-offer-categories"},this.renderCategoryGroup(t,o,this.buy_from_text),this.renderCategoryGroup(t,i,this.get_from_text))}if(!o.length)return null;const i=this.expandedCategories[t.id],s=o.length>3,n=i?o:o.slice(0,3);return r("div",{class:"s-offer-categories"},r("div",{class:"s-offer-categories-list"},n.map(((t,e)=>r("a",{key:e,class:"s-offer-category-item",href:t.url||salla.url.create("categories",t.id||t.id_)},t.name))),s&&r("span",{class:"s-offer-categories-toggle",onClick:r=>{r.preventDefault(),r.stopPropagation(),this.toggleCategoryExpansion(t.id)}},i?r("span",null,r("i",{class:"sicon-keyboard_arrow_up"})," ",salla.lang.get("common.elements.hide","إخفاء")):r("span",null,salla.lang.get("common.elements.show","عرض")," ","+"+(o.length-3)," ",r("i",{class:"sicon-keyboard_arrow_down"})))))}renderOfferBrands(t){const e=t.details.brands||[];if(!e.length)return null;const o=this.expandedCategories[t.id],i=e.length>3,a=o?e:e.slice(0,3);return r("div",{class:"s-offer-categories"},r("div",{class:"s-offer-categories-list"},a.map(((t,e)=>r("a",{key:e,class:"s-offer-category-item",href:t.url},t.name))),i&&r("span",{class:"s-offer-categories-toggle",onClick:r=>{r.preventDefault(),r.stopPropagation(),this.toggleCategoryExpansion(t.id)}},o?r("span",null,r("i",{class:"sicon-keyboard_arrow_up"})," ",salla.lang.get("common.elements.hide","إخفاء")):r("span",null,salla.lang.get("common.elements.show","عرض")," ","+"+(e.length-3)," ",r("i",{class:"sicon-keyboard_arrow_down"})))))}renderOfferPaymentMethods(t){const e=t.details.payment_methods||[];return e.length?r("div",{class:"s-offer-payment-methods"},r("span",{class:"s-offer-payment-methods-label"},this.payment_methods_text),r("div",{class:"s-offer-payment-methods-list"},e.map(((t,e)=>r("span",{key:e,class:"s-offer-payment-method-item"},t.name))))):null}renderOfferBranches(t){const e=t.details.branches||[];return e.length?r("div",{class:"s-offer-branches"},r("span",{class:"s-offer-branches-label"},this.branches_text),r("div",{class:"s-offer-branches-list"},e.map(((t,e)=>r("span",{key:e,class:"s-offer-branch-item"},t.name))))):null}renderOfferTags(t){const e=t.details.tags||[];if(!e.length)return null;const o=this.expandedCategories[t.id],i=e.length>3,a=o?e:e.slice(0,3);return r("div",{class:"s-offer-categories"},r("div",{class:"s-offer-categories-list"},a.map(((t,e)=>r("a",{key:e,class:"s-offer-category-item",href:t.url||salla.url.create("tags",t.id)},t.name))),i&&r("span",{class:"s-offer-categories-toggle",onClick:r=>{r.preventDefault(),r.stopPropagation(),this.toggleCategoryExpansion(t.id)}},o?r("span",null,r("i",{class:"sicon-keyboard_arrow_up"})," ",salla.lang.get("common.elements.hide","إخفاء")):r("span",null,salla.lang.get("common.elements.show","عرض")," ","+"+(e.length-3)," ",r("i",{class:"sicon-keyboard_arrow_down"})))))}toggleCategoryExpansion(t){this.expandedCategories={...this.expandedCategories,[t]:!this.expandedCategories[t]}}get host(){return e(this)}};s.style='/*!twlt*/:host .s-drawer-close:where([dir=rtl],[dir=rtl] *){left:0}.visible{visibility:visible}.fixed{position:fixed}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.items-center{align-items:center}.justify-center{justify-content:center}.p-4{padding:1rem}.p-8{padding:2rem}.text-center{text-align:center}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.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-offer-wrapper{position:relative;margin-bottom:2rem;overflow:hidden;border-radius:var(--s-radius, 0.25rem);--tw-bg-opacity:1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1));padding:0.625rem}@media (min-width: 640px){.s-offer-wrapper{padding:1.25rem}}@media (min-width: 768px){.s-offer-wrapper{margin-bottom:4rem}}.s-offer-corner-badge{position:absolute;z-index:1;float:left;margin:0px;height:auto;width:auto;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-width:0px;--tw-bg-opacity:1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1));padding-left:3rem;padding-right:3rem;padding-top:0.25rem;padding-bottom:0.25rem;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-offer-corner-badge:where([dir="ltr"],[dir="ltr"] *){top:1.25rem;right:-3.5rem;--tw-rotate:45deg;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-offer-corner-badge:where([dir="rtl"],[dir="rtl"] *){top:0.75rem;left:-3rem;--tw-rotate:-45deg;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-offer-slide-one-sixth{width:50% !important}@media (min-width: 640px){.s-offer-slide-one-sixth{width:33.333333% !important}}@media (min-width: 768px){.s-offer-slide-one-sixth{width:25% !important}}@media (min-width: 1024px){.s-offer-slide-one-sixth{width:16.666667% !important}}.s-offer-slide-one-sixth-single{display:flex;align-items:center !important;gap:0.75rem}.s-offer-slide-cat-entry{display:flex;height:9rem;flex-direction:column;align-items:center;justify-content:center;border-radius:0.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:0.75rem;text-align:center;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1));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:500ms}.s-offer-slide-cat-entry:hover{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1));--tw-shadow:5px 10px 30px #2B2D340D;--tw-shadow-colored:5px 10px 30px 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-offer-slide-cat-entry i{margin-bottom:1rem;display:inline-block;font-size:33px;color:var(--color-primary)}.s-offer-slide-cat-entry h4{font-size:0.875rem;line-height:1.25rem;font-weight:700}.s-offer-slide-one-fourth{height:auto;width:auto;max-width:310px}.s-offer-slide-offer-entry{display:flex;height:9rem;flex-direction:column;align-items:center;justify-content:space-between;border-radius:0.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));text-align:center;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1));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:500ms}.s-offer-slide-offer-entry:hover{--tw-shadow:5px 10px 30px #2B2D340D;--tw-shadow-colored:5px 10px 30px 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-offer-slide-offer-entry-price-quantity-container{display:flex;width:100%;flex-grow:1;flex-direction:column;justify-content:center;padding:0.75rem}.s-offer-slide-offer-entry-quantity{margin-bottom:0.25rem}.s-offer-slide-offer-entry-price{font-size:0.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-offer-slide-offer-entry-price-amount{font-size:1.875rem;line-height:2.25rem;font-weight:800;--tw-text-opacity:1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.s-offer-slide-offer-entry-price-amount-percent{width:100%;border-top-width:1px;--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:0.5rem;font-size:0.875rem;line-height:1.25rem}.s-offer-slide-offer-entry-price-amount-percent span{font-weight:700}.s-offer-discount-list{margin-top:1.25rem}.s-offer-discount-list>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.625rem * var(--tw-space-y-reverse))}.s-offer-discount-list-item{display:flex;justify-content:space-between;border-top-width:1px;padding-top:0.625rem}.s-offer-discount-list-item-money{font-weight:700;--tw-text-opacity:1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.s-offer-discount-list-item-discount{font-size:0.875rem;line-height:1.25rem}.s-offer-discount-list-item-discount span{font-weight:700}.s-offer-bank-wrapper{position:relative;display:flex;min-height:144px;width:100%;flex-direction:column;align-items:center;justify-content:center;border-radius:0.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:0.5rem}.s-offer-bank-wrapper:hover{--tw-shadow:5px 10px 30px #2B2D340D;--tw-shadow-colored:5px 10px 30px 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-offer-bank-wrapper-multi-spacer{margin-top:1.25rem}.s-offer-bank-wrapper-sinlge-item{display:flex;align-items:center;gap:0.75rem}.s-offer-bank-logo{margin-bottom:0.25rem;display:flex;height:5rem;width:5rem;align-items:center;border-radius:var(--s-radius, 0.25rem)}.s-offer-bank-logo img{height:100%;max-height:100%;width:100%;object-fit:contain}.s-offer-bank-payment-wrapper{display:flex;min-width:84px;flex-wrap:nowrap;align-items:center;justify-content:center;gap:0.25rem}.s-offer-bank-payment-single{display:flex;height:1.5rem;width:2rem;align-items:center;justify-content:center;border-radius:var(--s-radius, 0.25rem);--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.s-offer-bank-payment-single img{max-height:100%;max-width:100%;object-fit:contain}.s-offer-bank-payment-discount-percent{position:absolute;top:-1rem;left:auto;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1));padding-left:0.5rem;padding-right:0.5rem;padding-top:0.25rem;padding-bottom:0.25rem;font-size:11px;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));--tw-shadow:0 1px 2px rgba(0,0,0,0.35);--tw-shadow-colored:0 1px 2px 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-offer-bank-message{width:100%}.s-offer-bank-message h2{max-width:92%;font-size:1rem;line-height:1.5rem;font-weight:500;--tw-text-opacity:1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.s-offer-bank-message p{max-width:95%;font-size:0.875rem;line-height:1.25rem;font-weight:400;line-height:1.5;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.s-offer-bank-message-amount{font-weight:700;--tw-text-opacity:1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.s-offer-bank-payment-nav{margin-left:3.5rem !important;margin-right:3.5rem !important}.s-offer-.s-slider-block__title{position:relative;margin-bottom:1.25rem}.s-offer-.s-slider-block__title::before{position:absolute;top:1rem;font-size:3rem;font-weight:400;line-height:1;--tw-text-opacity:1;color:rgb(254 242 242 / var(--tw-text-opacity, 1));--tw-content:\'ee30\';content:var(--tw-content)}.s-offer-.s-slider-block__title:where([dir="ltr"],[dir="ltr"] *)::before{content:var(--tw-content);left:0px}.s-offer-.s-slider-block__title:where([dir="rtl"],[dir="rtl"] *)::before{content:var(--tw-content);right:0px}.s-offer-.s-offer-wrapper .s-slider-block__title h2{z-index:0;font-size:1.125rem;line-height:1.75rem;--tw-text-opacity:1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.s-offer-.s-offer-wrapper .s-slider-block__title p{margin-top:0.25rem;overflow:visible;display:block;-webkit-box-orient:horizontal;-webkit-line-clamp:none;line-height:1.5rem}.s-offer-wrapper .s-slider-block__title::before{content:\\ee30;font-family:sallaicons;position:absolute;top:1rem;font-size:3rem;font-weight:400;line-height:1;z-index:-1;color:rgba(254, 242, 242, 1)}.s-offer-bank-wrapper-single-item{display:flex;align-items:center;gap:0.875rem}.s-offer-slides-container{display:flex;gap:1rem}.s-offer-card{margin-left:auto;margin-right:auto;display:flex;height:100%;min-height:138px;max-width:28rem;gap:0.75rem;border-radius:0.375rem;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:1.5rem;padding-right:1.5rem;padding-top:1.25rem;padding-bottom:1.25rem}.s-offer-card-icon{display:flex;height:3rem;width:3rem;flex-shrink:0;align-items:center;justify-content:center;align-self:flex-start;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));font-size:1.5rem;line-height:2rem}.s-offer-card-content{min-width:0px;flex:1 1 0%;text-align:right}.s-offer-card-title{margin-bottom:0.25rem;width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:0.875rem;line-height:1.25rem;font-weight:600;line-height:1.25;--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.s-offer-card-description{font-size:0.875rem;line-height:1.25rem;line-height:1.625;--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.s-offer-card-description-row{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:0.75rem;row-gap:0.25rem}.s-offer-card-details{display:flex;width:100%;flex-direction:column}.s-offer-shared-content{display:flex;flex-direction:column;align-items:center;text-align:center}.s-offer-drawer-card{overflow:hidden;border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:1rem;padding-right:1rem;padding-top:1.5rem;padding-bottom:1.5rem}.s-offer-drawer-card:last-child{border-bottom-width:0px}.s-offer-drawer-card .s-offer-card-main{display:flex;align-items:center;gap:1rem;padding:0px}.s-offer-drawer-card .s-offer-card-icon{display:flex;height:3rem;width:3rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));font-size:1.25rem;line-height:1.75rem;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-offer-drawer-card .s-offer-card-content{min-width:0px;flex:1 1 0%;text-align:right}.s-offer-drawer-card .s-offer-card-title{margin-bottom:0.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:0.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.s-offer-drawer-card .s-offer-card-description{font-size:0.875rem;line-height:1.25rem;line-height:1.625;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.s-offer-drawer-card .s-accordion-wrapper{margin:0px}.s-offer-drawer-card .s-accordion-head-wrapper{margin-right:60px;width:100%;max-width:370px;cursor:pointer;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-bottom:0.75rem;padding-right:0px;padding-top:0px}.s-offer-drawer-card .s-accordion-head-wrapper-end{display:none !important}.s-offer-drawer-card .s-accordion-body-wrapper{overflow:auto;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:1rem;padding-right:1rem;padding-bottom:0px}.s-offer-drawer-card .s-accordion-body-wrapper::-webkit-scrollbar{width:5px}.s-offer-drawer-card .s-accordion-body-wrapper::-webkit-scrollbar-track{background-color:#eee}.s-offer-drawer-card .s-accordion-body-wrapper::-webkit-scrollbar-thumb{background-color:var(--color-primary);border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px}.s-offer-products-thumbnails{display:flex;width:100%;align-items:center;justify-content:space-between}.s-offer-products-thumbnails-stack{position:relative;display:flex;align-items:center}.s-offer-product-thumbnail{position:relative;z-index:10;margin-left:-0.5rem;height:2rem;width:2rem;overflow:hidden;border-radius:0.375rem;border-width:2px;--tw-border-opacity:1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.s-offer-product-thumbnail:first-child{margin-left:0px}.s-offer-product-thumbnail img{height:100%;width:100%;object-fit:cover}.s-offer-products-more-count{position:relative;z-index:50;margin-left:-0.5rem;display:flex;height:2rem;width:2rem;align-items:center;justify-content:center;border-radius:0.375rem;border-width:2px;--tw-border-opacity:1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1));font-size:11px;font-weight:400;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1));direction:ltr}.s-offer-products-title{display:flex;align-items:center;font-size:0.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.s-offer-products-accordion-content{--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:0.75rem}.s-offer-products-link{display:flex;cursor:pointer;align-items:center;justify-content:space-between;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1));transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:200ms}.s-offer-products-link:hover{--tw-text-opacity:1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.s-offer-products-link-text{font-size:0.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1));text-decoration-line:underline}.s-offer-products-link-icon{font-size:15px;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1));transition-property:transform;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:200ms}.s-offer-products-link:hover .s-offer-products-link-icon{--tw-translate-x:-0.25rem;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-offer-drawer-padding{padding:0px !important}.s-offer-drawer-content{max-height:calc(100vh - 120px);overflow-y:auto !important;padding-left:1rem;padding-right:1rem}.s-offer-drawer-content::-webkit-scrollbar{width:5px}.s-offer-drawer-content::-webkit-scrollbar-track{background-color:#eee}.s-offer-drawer-content::-webkit-scrollbar-thumb{background-color:var(--color-primary);border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px}.s-offer-products-drawer-content{max-height:calc(100vh - 120px);overflow-y:auto !important;padding-left:1.5rem;padding-right:1.5rem}.s-offer-products-drawer-content::-webkit-scrollbar{width:5px}.s-offer-products-drawer-content::-webkit-scrollbar-track{background-color:#eee}.s-offer-products-drawer-content::-webkit-scrollbar-thumb{background-color:var(--color-primary);border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px}.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-products-list-single-column salla-product-card[horizontal] img{height:60px !important;max-height:60px !important;width:60px !important;max-width:60px !important;object-fit:cover !important}.s-offer-products-list-single-column salla-product-card[horizontal] button{--tw-bg-opacity:1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-offer-products-list-single-column salla-product-card[horizontal] button:hover{--tw-bg-opacity:1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.s-offer-discount-table{width:100%;border-collapse:collapse}.s-offer-discount-table tr:not(:last-child){border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.s-offer-discount-table td{padding:0.75rem;text-align:right}.s-offer-discount-table td:first-child{padding-right:0px}.s-offer-discount-percentage{font-size:0.75rem;line-height:1rem;font-weight:700;line-height:1.25}.s-offer-discount-condition{margin-top:0.25rem;font-size:10px;line-height:1.25;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.s-offer-categories{margin-top:0.75rem;text-align:right}.s-offer-categories-group{margin-top:0.25rem;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:0.5rem}.s-offer-categories-label{flex-shrink:0;font-size:13px;font-weight:700;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.s-offer-categories-list{display:flex;flex-wrap:wrap;column-gap:1rem;font-size:13px;line-height:1.625}.s-offer-categories-list a{text-decoration-line:underline}.s-offer-category-item{display:inline-block;cursor:pointer;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-offer-category-item:hover{--tw-text-opacity:1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.s-offer-categories-toggle{cursor:pointer;font-size:0.75rem;line-height:1rem;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.s-offer-categories-toggle:hover{--tw-text-opacity:1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.s-offer-min-spend{margin-top:0.625rem;font-size:13px;line-height:17px;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-offer-percentage-fixed-content{display:flex;flex-direction:column}.s-offer-min-items{font-size:13px;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-offer-discount-table-subtitle{margin-bottom:0.75rem;font-size:0.875rem;line-height:1.25rem;line-height:1.625;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.s-offer-show-more-card{pointer-events:auto;display:flex;cursor:pointer;align-items:center;justify-content:center;gap:0.25rem;text-align:center}.s-offer-show-more-icon{--tw-text-opacity:1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.s-offer-show-more-title{font-size:0.875rem;line-height:1.25rem;font-weight:600;line-height:1.25;--tw-text-opacity:1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.s-offer-drawer-card .s-products-list-compact-cards{margin-bottom:0px !important}.s-offer-max-discount{font-size:13px;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-offer-branches{margin-top:0.75rem;text-align:right}.s-offer-branches-label{margin-bottom:0.25rem;display:block;font-size:13px;font-weight:700;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-offer-branches-list{display:flex;flex-wrap:wrap;column-gap:1rem;font-size:13px;line-height:1.625}.s-offer-branch-item{display:inline-block;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-offer-payment-methods{margin-top:0.75rem;text-align:right}.s-offer-payment-methods-label{margin-bottom:0.25rem;display:block;font-size:13px;font-weight:700;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-offer-payment-methods-list{display:flex;flex-wrap:wrap;column-gap:1rem;font-size:13px;line-height:1.625}.s-offer-payment-method-item{display:inline-block;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-offer-discount-amount{font-size:12px;line-height:15px;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-offer-modal-cat-item.swiper-slide{margin-top:1rem;margin-bottom:1rem;display:flex;height:9rem;max-width:180px;flex-direction:column;align-items:center;justify-content:center;border-radius:0.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:0.75rem;text-align:center;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1));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:500ms}.s-offer-modal-cat-item.swiper-slide:hover{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1));--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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-offer-modal-brand-item.swiper-slide{margin-top:1rem;margin-bottom:1rem;display:flex;height:9rem;max-width:180px;flex-direction:column;align-items:center;justify-content:center;border-radius:0.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:0.75rem;text-align:center;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1));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:500ms}.s-offer-modal-brand-item.swiper-slide:hover{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1));--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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-offer-modal-tag-item.swiper-slide{margin-top:1rem;margin-bottom:1rem;display:flex;height:9rem;max-width:180px;flex-direction:column;align-items:center;justify-content:center;border-radius:0.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:0.75rem;text-align:center;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1));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:500ms}.s-offer-modal-tag-item.swiper-slide:hover{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1));--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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-offer-modal-product.swiper-slide{display:flex;width:70%;flex-shrink:0;flex-grow:1;flex-direction:column}@media (min-width: 640px){.s-offer-modal-product.swiper-slide{width:40%}}@media (min-width: 1024px){.s-offer-modal-product.swiper-slide{width:28%}}';export{s as salla_offer}
|
|
4
|
+
import{r as t,h as r,a as e}from"./p-BtdIfJF8.js";import{t as o}from"./p-CrSV-tno.js";var i,a;!function(t){t.ProductDetail="product.single",t.Cart="cart"}(i||(i={})),function(t){t.Conditional="conditional",t.PercentageOrFixed="fixed",t.DiscountsTable="discounts_table",t.Bank="bank",t.BuyXGetY="buy_x_get_y",t.SpecialPrice="special_price",t.Percentage="percentage",t.FixedAmount="fixed_amount"}(a||(a={}));const s=class{constructor(r){t(this,r),this.productCardComponent="salla-product-card",this.offersList=[],this.canRender=!1,this.showOffer=salla.config.get("store.settings.product.show_special_offers"),this.showAllOffersModal=!1,this.showProductsModal=!1,this.selectedOfferProducts=[],this.collapsedOffers={},this.expandedCategories={},this.productsLoaded=!1,this.offer_with_price_text=salla.lang.get("pages.offer.with_price",{price:""}),this.with_discount_text=salla.lang.get("pages.products.with_a_discount"),this.product_discount_text=salla.lang.get("pages.products.discount"),this.special_offer_text=salla.lang.get("pages.products.special_offer"),this.buy_quantity_text=t=>salla.lang.get("pages.offer.buy_quantity",{quantity:t}),this.products_link_text=salla.lang.get("pages.offer.included_products","المنتجات المشمولة"),this.min_spend_text=t=>o("pages.offer.min_spend_amount",{amount:t,currency:""},`بحد أدنى ${t} من مبلغ الشراء`),this.min_items_text=t=>o("pages.offer.min_items",{items:t},`بحد أدنى ${t} منتجات`),this.max_discount_text=t=>o("pages.offer.max_discount_amount",{amount:t,currency:""},`بحد أقصى ${t} للخصم`),this.branches_text=o("pages.offer.available_branches",{},"الفروع المتاحة"),this.buy_from_text=o("pages.offer.buy_from_categories",{},"اشترِ من:"),this.get_from_text=o("pages.offer.get_from_categories",{},"احصل من:"),this.payment_methods_text=o("pages.offer.payment_methods",{},"طرق الدفع"),this.product_text=salla.lang.get("common.elements.product","منتج"),salla.lang.onLoaded((()=>{this.offer_with_price_text=salla.lang.get("pages.offer.with_price"),this.with_discount_text=salla.lang.get("pages.products.with_a_discount"),this.product_discount_text=salla.lang.get("pages.products.discount"),this.special_offer_text=salla.lang.get("pages.products.special_offer"),this.buy_quantity_text(0),this.products_link_text=salla.lang.get("pages.offer.included_products","المنتجات المشمولة"),this.min_spend_text=t=>o("pages.offer.min_spend_amount",{amount:t,currency:""},`بحد أدنى ${t} من مبلغ الشراء`),this.min_items_text=t=>o("pages.offer.min_items",{items:t},`بحد أدنى ${t} منتجات`),this.max_discount_text=t=>o("pages.offer.max_discount_amount",{amount:t,currency:""},`بحد أقصى ${t} للخصم`),this.branches_text=o("pages.offer.available_branches",{},"الفروع المتاحة"),this.buy_from_text=o("pages.offer.buy_from_categories",{},"اشترِ من:"),this.get_from_text=o("pages.offer.get_from_categories",{},"احصل من:"),this.payment_methods_text=o("pages.offer.payment_methods",{},"طرق الدفع"),this.product_text=salla.lang.get("common.elements.product","منتج")})),salla.onReady((()=>{this.currentPage=salla.config.get("page.slug");const t=salla.config.get("currencies")||{},r=salla.config.get("user.currency_code");this.userCurrency=t[r]||{symbol:"",code:r||"SAR",name:""}}))}async getEndpointByPageName(){return this.currentPage==i.Cart?`offers/cart/${await Salla.cart.getCurrentCartId()}`:this.currentPage==i.ProductDetail?`offers/product/${salla.config.get("page.id")}`:"offers"}emitPromotionViewed(){if(!(this.offersList.length&&this.canRender&&this.showOffer))return;const t=this.offersList.slice(0,5).map(((t,r)=>({id:t.id,name:t.title,creative:t.description||"",position:r+1})));salla.event.emit("salla::offer.promotion.viewed",t)}emitPromotionClicked(t,r=1){if(!(this.offersList.length&&this.canRender&&this.showOffer))return;const e=t||this.offersList[0];salla.event.emit("salla::offer.promotion.clicked",[{id:e.id,name:e.title,creative:e.description||"",position:r}])}componentWillLoad(){return this.hasCustomComponent=!!customElements.get(this.productCardComponent),new Promise((t=>salla.onReady(t))).then((()=>{if(this.showOffer=!salla.url.is_page("product.single")||salla.config.get("store.settings.product.show_special_offers"),!this.showOffer)throw new Error("Merchant disabled showing the offers on product page")})).then((async()=>this.currentPage==i.Cart?salla.api.cart.offers():salla.api.request(await this.getEndpointByPageName()))).then((async t=>{if(!(this.offersList=t.data).length)throw new Error("salla-offers:: There is no offers!");if(this.offersList=this.offersList.filter((t=>[a.SpecialPrice,a.Bank,a.BuyXGetY,a.DiscountsTable,a.PercentageOrFixed,a.Percentage,a.FixedAmount].includes(t.type))),!this.offersList.length)throw new Error("salla-offers:: No supported offer types found!");let r=null;this.offersList.some((t=>{const r=t.details;return"category"===r.apply_to&&r.targets||"categories"===r.apply_to&&r.targets||t.type===a.BuyXGetY&&("categories"===r.get?.source||"category"===r.get?.source||"categories"===r.buy?.source||"category"===r.buy?.source)}))&&(r=(await salla.product.api.categories()).data);const e=new Set;for(const t of this.offersList){const r=t.details;"product"!==r.apply_to&&"products"!==r.apply_to||!r.targets||r.targets.forEach((t=>e.add(t))),t.type===a.BuyXGetY&&"products"===r.get?.source&&r.get?.source_value&&r.get.source_value.forEach((t=>e.add(t))),t.type!==a.BuyXGetY||"products"!==r.buy?.source&&"product"!==r.buy?.source||!r.buy?.source_value||r.buy.source_value.forEach((t=>e.add(t)))}let o={};if(e.size>0)try{const t=await salla.product.api.fetch({source:"selected",source_value:Array.from(e)});o=Object.fromEntries(t.data.map((t=>[t.id,t])))}catch(t){o={}}for(const t of this.offersList){const e=t.details;if(("category"===e.apply_to&&e.targets||"categories"===e.apply_to&&e.targets)&&r&&(e.categories=this.findCategories(r,e.targets)),"product"!==e.apply_to&&"products"!==e.apply_to||!e.targets||(e.products=e.targets.map((t=>o[t])).filter(Boolean)),"brand"===e.apply_to&&e.targets&&(e.brands=e.targets),"tag"===e.apply_to&&e.targets&&(e.tags=e.targets),t.type===a.BuyXGetY&&e.get){const t=e.get;"products"===t.source&&t.source_value?t.products=t.source_value.map((t=>o[t])).filter(Boolean):("categories"===t.source||"category"===t.source)&&r&&t.source_value&&(t.categories=this.findCategories(r,t.source_value),e.categories=t.categories)}if(t.type===a.BuyXGetY&&e.buy){const t=e.buy;"products"!==t.source&&"product"!==t.source||!t.source_value?("categories"===t.source||"category"===t.source)&&r&&t.source_value&&(t.categories=this.findCategories(r,t.source_value)):t.products=t.source_value.map((t=>o[t])).filter(Boolean)}}return this.offersList})).then((()=>{this.canRender=!0})).catch((t=>{salla.logger.warn(t)}))}componentDidLoad(){let t=this.host.querySelector(".s-slider-block__title-nav");t?.classList.add("s-offer-bank-payment-nav"),this.emitPromotionViewed()}findCategories(t,r){let e=[];for(const o of t)r.includes(o.id_||o.id)&&e.push(o),o.sub_categories?.length>0&&(e=e.concat(this.findCategories(o.sub_categories,r)));return e}render(){if(!this.offersList.length||!this.canRender||!this.showOffer)return null;const t=salla.lang.get("pages.offer.offers_title","عروض المنتج"),e=salla.lang.get("pages.offer.offers_subtitle","احصل على المنتج بسعر مخفض مع أفضل العروض");return[r("div",{class:"s-offer-wrapper"},r("salla-slider",{type:"carousel",id:"offers-slider","block-title":t,"block-subTitle":e,"show-controls":this.offersList.length>1},r("div",{slot:"items"},this.offersList.slice(0,5).map(((t,r)=>this.renderOfferCard(t,r+1))),this.offersList.length>5&&this.renderShowMoreCard()))),this.renderAllOffersModal(),this.renderProductsModal()]}renderShowMoreCard(){return r("div",{class:"s-offer-slide-one-fourth swiper-slide",onClick:t=>{t.preventDefault(),t.stopPropagation(),this.openAllOffersModal()}},r("div",{class:"s-offer-card s-offer-show-more-card"},r("i",{class:"sicon-add s-offer-show-more-icon"}),r("h3",{class:"s-offer-show-more-title"},salla.lang.get("pages.offer.show_more_offers","عرض المزيد من العروض"))))}openAllOffersModal(){this.showAllOffersModal=!0}closeAllOffersModal(){this.showAllOffersModal=!1}closeProductsModal(){this.showProductsModal=!1,this.selectedOfferProducts=[],this.productsLoaded=!1}handleAccordionToggle(t,r){this.collapsedOffers={...this.collapsedOffers,[t]:r}}getOfferProducts(t){const r=t.details;return r.products&&r.products.length>0?r.products:t.type===a.BuyXGetY&&r.get?.products?r.get.products:[]}renderCardDescriptionRow(t,e=!1){const o=e&&t.type===a.DiscountsTable?this.renderProductsLinkForModalCard(t,!1):null;return t.description||o?r("div",{class:"s-offer-card-description-row"},t.description&&r("p",{class:"s-offer-card-description"},t.description),o):null}renderProductsLinkForModalCard(t,e){const o=this.getOfferProducts(t);return o&&0!==o.length?r("div",{class:"s-offer-products-link",onClick:t=>{t.stopPropagation(),this.selectedOfferProducts=o,this.showProductsModal=!0}},r("span",{class:"s-offer-products-link-text"},this.products_link_text),e&&r("i",{class:"sicon-keyboard_arrow_down s-offer-products-link-icon"})):null}renderAllOffersModal(){return r("salla-drawer",{visible:this.showAllOffersModal,position:"right",width:"md","no-padding":!0,"drawer-title":salla.lang.get("pages.offer.all_offers_title","جميع العروض"),onDrawerVisibilityChanged:t=>!t.detail&&this.closeAllOffersModal()},r("div",{class:"s-offer-drawer-content"},this.offersList.map(((t,r)=>this.renderModalOfferCard(t,r+1)))))}renderProductsModal(){return r("salla-drawer",{visible:this.showProductsModal,width:"md",position:"right","no-padding":!0,"drawer-title":this.products_link_text,onDrawerVisibilityChanged:t=>!t.detail&&this.closeProductsModal()},r("div",{class:"s-offer-products-drawer-content"},this.selectedOfferProducts?.length>0?r("div",null,!this.productsLoaded&&r("div",{class:"flex items-center justify-center p-8"},r("salla-loading",{size:"24"})),r("salla-products-list",{source:"selected","source-value":JSON.stringify(this.selectedOfferProducts.map((t=>t.id))),"product-card-component":this.productCardComponent,"horizontal-cards":!0,"compact-cards":!0,includes:["images"],onProductsFetched:()=>this.productsLoaded=!0})):r("div",{class:"p-4 text-center text-gray-500"},salla.lang.get("blocks.products.no_products_found","لا توجد منتجات"))))}renderModalOfferCard(t,e=1){const o=this.getOfferProducts(t),i=o&&o.length>0,s=!1!==this.collapsedOffers[t.id];return r("div",{class:"s-offer-drawer-card"},r("div",{class:"s-offer-card-main",onClick:()=>this.emitPromotionClicked(t,e)},r("div",{class:"s-offer-card-icon"},this.getOfferIcon(t.type)),r("div",{class:"s-offer-card-content"},r("h3",{class:"s-offer-card-title",title:t.title},t.title),this.renderCardDescriptionRow(t),t.type===a.DiscountsTable?r("div",{class:"s-offer-card-details"},this.renderDiscountTableOfferContent(t),this.renderOfferPaymentMethods(t),this.renderOfferBranches(t)):r("div",{class:"s-offer-card-details"},t.type===a.PercentageOrFixed||t.type===a.Percentage||t.type===a.FixedAmount?this.renderPercentageOrFixedOfferContent(t):this.renderMinSpend(t),this.renderOfferCategories(t),this.renderOfferBrands(t),this.renderOfferTags(t),this.renderOfferPaymentMethods(t),this.renderOfferBranches(t)))),i&&r("salla-accordion",{collapsed:s,collapsible:!0,size:"sm",onClick:t=>t.stopPropagation(),onAccordionToggle:r=>this.handleAccordionToggle(t.id,r.detail.payload.collapsed)},r("salla-accordion-head",{collapsible:!0,collapsed:s},r("div",{slot:"title",class:"s-offer-products-thumbnails"},r("span",{class:"s-offer-products-title"},this.products_link_text,r("i",{class:`sicon-keyboard_arrow_${s?"down":"up"} s-offer-products-link-icon`})),r("div",{class:"s-offer-products-thumbnails-stack"},o.slice(0,3).map(((t,e)=>r("div",{class:"s-offer-product-thumbnail",style:{zIndex:`${e+1}`}},r("img",{src:t.thumbnail||t.image?.url||salla.url.cdn("images/s-empty.png"),alt:t.name})))),o.length>3&&r("div",{class:"s-offer-products-more-count",style:{zIndex:"7"}},"+",o.length-3)))),r("salla-accordion-body",null,r("div",{class:"s-offer-products-content"},r("salla-products-list",{source:"selected","source-value":JSON.stringify(o.map((t=>t.id))),"product-card-component":this.productCardComponent,"horizontal-cards":!0,"compact-cards":!0,includes:["images"]})))))}renderOfferCard(t,e=1){return r("div",{class:"s-offer-slide-one-fourth swiper-slide",onClick:()=>this.emitPromotionClicked(t,e)},r("div",{class:"s-offer-card"},r("div",{class:"s-offer-card-icon"},this.getOfferIcon(t.type)),r("div",{class:"s-offer-card-content"},r("h3",{class:"s-offer-card-title",title:t.title},t.title),this.renderCardDescriptionRow(t,!0),r("div",{class:"s-offer-card-details"},t.type===a.DiscountsTable?[this.renderDiscountTableOfferContent(t),this.renderOfferPaymentMethods(t),this.renderOfferBranches(t)]:t.type===a.PercentageOrFixed||t.type===a.Percentage||t.type===a.FixedAmount?[this.renderPercentageOrFixedOfferContent(t),this.renderOfferCategories(t),this.renderOfferBrands(t),this.renderOfferTags(t),this.renderOfferPaymentMethods(t),this.renderOfferBranches(t)]:[this.renderMinSpend(t),this.renderOfferCategories(t),this.renderOfferBrands(t),this.renderOfferTags(t),this.renderOfferPaymentMethods(t),this.renderOfferBranches(t)],t.type!==a.DiscountsTable&&this.renderProductsLinkForModalCard(t,!1)))))}getOfferIcon(t){return r("i",{class:{[a.DiscountsTable]:"sicon-discount-calculator",[a.Bank]:"sicon-bank",[a.SpecialPrice]:"sicon-fire",[a.BuyXGetY]:"sicon-gift",[a.PercentageOrFixed]:"sicon-special-discount",[a.Percentage]:"sicon-special-discount",[a.FixedAmount]:"sicon-special-discount"}[t]||"sicon-discount"})}renderDiscountTableOfferContent(t){const e=t.details.discounts||[];return e.length?r("div",null,!t.description&&r("div",{class:"s-offer-card-description"},salla.lang.get("pages.offer.discount_table_subtitle","وفِّر أكثر بشراء منتجات أكثر")),r("table",{class:"s-offer-discount-table"},r("tbody",null,this.groupDiscountsByRows(e,3).map(((t,e)=>r("tr",{key:e},t.map(((t,e)=>r("td",{key:e},r("div",{class:"s-offer-discount-percentage"},t.percentage,"%"),r("div",{class:"s-offer-discount-condition"},this.formatDiscountCondition(t))))))))))):null}renderMinSpend(t){const e=t.details;return e.min_spend>0?r("div",{class:"s-offer-min-spend",innerHTML:this.min_spend_text(this.money(e.min_spend))}):null}renderPercentageOrFixedOfferContent(t){const e=t.details;return e.discount_value||e.min_spend>0||e.min_items>0||e.max_discount_amount>0?r("div",{class:"s-offer-percentage-fixed-content"},e.min_spend>0&&r("div",{class:"s-offer-min-spend",innerHTML:this.min_spend_text(this.money(e.min_spend))}),e.min_items>0&&r("div",{class:"s-offer-min-items"},this.min_items_text(e.min_items)),e.max_discount_amount>0&&r("div",{class:"s-offer-max-discount",innerHTML:this.max_discount_text(this.money(e.max_discount_amount))})):null}groupDiscountsByRows(t,r){const e=[];for(let o=0;o<t.length;o+=r)e.push(t.slice(o,o+r));return e}money(t){return"function"==typeof salla?.money?salla.money(t):`${t} ${this.userCurrency?.symbol||""}`}formatDiscountCondition(t){return`${t.quantity??1} ${this.product_text}`}renderCategoryGroup(t,e,o){return r("div",{class:"s-offer-categories-group"},r("span",{class:"s-offer-categories-label"},o),r("div",{class:"s-offer-categories-list"},e.map(((e,o)=>r("a",{key:`${t.id}-${o}`,class:"s-offer-category-item",href:e.url||salla.url.create("categories",e.id||e.id_)},e.name)))))}renderOfferCategories(t){const e=t.details;let o=e.categories||[];if(t.type===a.BuyXGetY&&e.get?.categories&&(o=e.get.categories),t.type===a.BuyXGetY){const o=e.buy?.categories||[],i=e.get?.categories||[],a=t=>t.map((t=>t.id||t.id_)).join(",");if(o.length&&i.length&&a(o)!==a(i))return r("div",{class:"s-offer-categories"},this.renderCategoryGroup(t,o,this.buy_from_text),this.renderCategoryGroup(t,i,this.get_from_text))}if(!o.length)return null;const i=this.expandedCategories[t.id],s=o.length>3,n=i?o:o.slice(0,3);return r("div",{class:"s-offer-categories"},r("div",{class:"s-offer-categories-list"},n.map(((t,e)=>r("a",{key:e,class:"s-offer-category-item",href:t.url||salla.url.create("categories",t.id||t.id_)},t.name))),s&&r("span",{class:"s-offer-categories-toggle",onClick:r=>{r.preventDefault(),r.stopPropagation(),this.toggleCategoryExpansion(t.id)}},i?r("span",null,r("i",{class:"sicon-keyboard_arrow_up"})," ",salla.lang.get("common.elements.hide","إخفاء")):r("span",null,salla.lang.get("common.elements.show","عرض")," ","+"+(o.length-3)," ",r("i",{class:"sicon-keyboard_arrow_down"})))))}renderOfferBrands(t){const e=t.details.brands||[];if(!e.length)return null;const o=this.expandedCategories[t.id],i=e.length>3,a=o?e:e.slice(0,3);return r("div",{class:"s-offer-categories"},r("div",{class:"s-offer-categories-list"},a.map(((t,e)=>r("a",{key:e,class:"s-offer-category-item",href:t.url},t.name))),i&&r("span",{class:"s-offer-categories-toggle",onClick:r=>{r.preventDefault(),r.stopPropagation(),this.toggleCategoryExpansion(t.id)}},o?r("span",null,r("i",{class:"sicon-keyboard_arrow_up"})," ",salla.lang.get("common.elements.hide","إخفاء")):r("span",null,salla.lang.get("common.elements.show","عرض")," ","+"+(e.length-3)," ",r("i",{class:"sicon-keyboard_arrow_down"})))))}renderOfferPaymentMethods(t){const e=t.details.payment_methods||[];return e.length?r("div",{class:"s-offer-payment-methods"},r("span",{class:"s-offer-payment-methods-label"},this.payment_methods_text),r("div",{class:"s-offer-payment-methods-list"},e.map(((t,e)=>r("span",{key:e,class:"s-offer-payment-method-item"},t.name))))):null}renderOfferBranches(t){const e=t.details.branches||[];return e.length?r("div",{class:"s-offer-branches"},r("span",{class:"s-offer-branches-label"},this.branches_text),r("div",{class:"s-offer-branches-list"},e.map(((t,e)=>r("span",{key:e,class:"s-offer-branch-item"},t.name))))):null}renderOfferTags(t){const e=t.details.tags||[];if(!e.length)return null;const o=this.expandedCategories[t.id],i=e.length>3,a=o?e:e.slice(0,3);return r("div",{class:"s-offer-categories"},r("div",{class:"s-offer-categories-list"},a.map(((t,e)=>r("a",{key:e,class:"s-offer-category-item",href:t.url||salla.url.create("tags",t.id)},t.name))),i&&r("span",{class:"s-offer-categories-toggle",onClick:r=>{r.preventDefault(),r.stopPropagation(),this.toggleCategoryExpansion(t.id)}},o?r("span",null,r("i",{class:"sicon-keyboard_arrow_up"})," ",salla.lang.get("common.elements.hide","إخفاء")):r("span",null,salla.lang.get("common.elements.show","عرض")," ","+"+(e.length-3)," ",r("i",{class:"sicon-keyboard_arrow_down"})))))}toggleCategoryExpansion(t){this.expandedCategories={...this.expandedCategories,[t]:!this.expandedCategories[t]}}get host(){return e(this)}};s.style='/*!twlt*/:host .s-drawer-close:where([dir=rtl],[dir=rtl] *){left:0}.visible{visibility:visible}.fixed{position:fixed}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.items-center{align-items:center}.justify-center{justify-content:center}.p-4{padding:1rem}.p-8{padding:2rem}.text-center{text-align:center}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.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-offer-wrapper{position:relative;margin-bottom:2rem;overflow:hidden;border-radius:var(--s-radius, 0.25rem);--tw-bg-opacity:1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1));padding:0.625rem}@media (min-width: 640px){.s-offer-wrapper{padding:1.25rem}}@media (min-width: 768px){.s-offer-wrapper{margin-bottom:4rem}}.s-offer-corner-badge{position:absolute;z-index:1;float:left;margin:0px;height:auto;width:auto;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-width:0px;--tw-bg-opacity:1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1));padding-left:3rem;padding-right:3rem;padding-top:0.25rem;padding-bottom:0.25rem;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-offer-corner-badge:where([dir="ltr"],[dir="ltr"] *){top:1.25rem;right:-3.5rem;--tw-rotate:45deg;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-offer-corner-badge:where([dir="rtl"],[dir="rtl"] *){top:0.75rem;left:-3rem;--tw-rotate:-45deg;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-offer-slide-one-sixth{width:50% !important}@media (min-width: 640px){.s-offer-slide-one-sixth{width:33.333333% !important}}@media (min-width: 768px){.s-offer-slide-one-sixth{width:25% !important}}@media (min-width: 1024px){.s-offer-slide-one-sixth{width:16.666667% !important}}.s-offer-slide-one-sixth-single{display:flex;align-items:center !important;gap:0.75rem}.s-offer-slide-cat-entry{display:flex;height:9rem;flex-direction:column;align-items:center;justify-content:center;border-radius:0.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:0.75rem;text-align:center;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1));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:500ms}.s-offer-slide-cat-entry:hover{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1));--tw-shadow:5px 10px 30px #2B2D340D;--tw-shadow-colored:5px 10px 30px 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-offer-slide-cat-entry i{margin-bottom:1rem;display:inline-block;font-size:33px;color:var(--color-primary)}.s-offer-slide-cat-entry h4{font-size:0.875rem;line-height:1.25rem;font-weight:700}.s-offer-slide-one-fourth{height:auto;width:auto;max-width:310px}.s-offer-slide-offer-entry{display:flex;height:9rem;flex-direction:column;align-items:center;justify-content:space-between;border-radius:0.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));text-align:center;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1));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:500ms}.s-offer-slide-offer-entry:hover{--tw-shadow:5px 10px 30px #2B2D340D;--tw-shadow-colored:5px 10px 30px 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-offer-slide-offer-entry-price-quantity-container{display:flex;width:100%;flex-grow:1;flex-direction:column;justify-content:center;padding:0.75rem}.s-offer-slide-offer-entry-quantity{margin-bottom:0.25rem}.s-offer-slide-offer-entry-price{font-size:0.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-offer-slide-offer-entry-price-amount{font-size:1.875rem;line-height:2.25rem;font-weight:800;--tw-text-opacity:1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.s-offer-slide-offer-entry-price-amount-percent{width:100%;border-top-width:1px;--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:0.5rem;font-size:0.875rem;line-height:1.25rem}.s-offer-slide-offer-entry-price-amount-percent span{font-weight:700}.s-offer-discount-list{margin-top:1.25rem}.s-offer-discount-list>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.625rem * var(--tw-space-y-reverse))}.s-offer-discount-list-item{display:flex;justify-content:space-between;border-top-width:1px;padding-top:0.625rem}.s-offer-discount-list-item-money{font-weight:700;--tw-text-opacity:1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.s-offer-discount-list-item-discount{font-size:0.875rem;line-height:1.25rem}.s-offer-discount-list-item-discount span{font-weight:700}.s-offer-bank-wrapper{position:relative;display:flex;min-height:144px;width:100%;flex-direction:column;align-items:center;justify-content:center;border-radius:0.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:0.5rem}.s-offer-bank-wrapper:hover{--tw-shadow:5px 10px 30px #2B2D340D;--tw-shadow-colored:5px 10px 30px 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-offer-bank-wrapper-multi-spacer{margin-top:1.25rem}.s-offer-bank-wrapper-sinlge-item{display:flex;align-items:center;gap:0.75rem}.s-offer-bank-logo{margin-bottom:0.25rem;display:flex;height:5rem;width:5rem;align-items:center;border-radius:var(--s-radius, 0.25rem)}.s-offer-bank-logo img{height:100%;max-height:100%;width:100%;object-fit:contain}.s-offer-bank-payment-wrapper{display:flex;min-width:84px;flex-wrap:nowrap;align-items:center;justify-content:center;gap:0.25rem}.s-offer-bank-payment-single{display:flex;height:1.5rem;width:2rem;align-items:center;justify-content:center;border-radius:var(--s-radius, 0.25rem);--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.s-offer-bank-payment-single img{max-height:100%;max-width:100%;object-fit:contain}.s-offer-bank-payment-discount-percent{position:absolute;top:-1rem;left:auto;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1));padding-left:0.5rem;padding-right:0.5rem;padding-top:0.25rem;padding-bottom:0.25rem;font-size:11px;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));--tw-shadow:0 1px 2px rgba(0,0,0,0.35);--tw-shadow-colored:0 1px 2px 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-offer-bank-message{width:100%}.s-offer-bank-message h2{max-width:92%;font-size:1rem;line-height:1.5rem;font-weight:500;--tw-text-opacity:1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.s-offer-bank-message p{max-width:95%;font-size:0.875rem;line-height:1.25rem;font-weight:400;line-height:1.5;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.s-offer-bank-message-amount{font-weight:700;--tw-text-opacity:1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.s-offer-bank-payment-nav{margin-left:3.5rem !important;margin-right:3.5rem !important}.s-offer-.s-slider-block__title{position:relative;margin-bottom:1.25rem}.s-offer-.s-slider-block__title::before{position:absolute;top:1rem;font-size:3rem;font-weight:400;line-height:1;--tw-text-opacity:1;color:rgb(254 242 242 / var(--tw-text-opacity, 1));--tw-content:\'ee30\';content:var(--tw-content)}.s-offer-.s-slider-block__title:where([dir="ltr"],[dir="ltr"] *)::before{content:var(--tw-content);left:0px}.s-offer-.s-slider-block__title:where([dir="rtl"],[dir="rtl"] *)::before{content:var(--tw-content);right:0px}.s-offer-.s-offer-wrapper .s-slider-block__title h2{z-index:0;font-size:1.125rem;line-height:1.75rem;--tw-text-opacity:1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.s-offer-.s-offer-wrapper .s-slider-block__title p{margin-top:0.25rem;overflow:visible;display:block;-webkit-box-orient:horizontal;-webkit-line-clamp:none;line-height:1.5rem}.s-offer-wrapper .s-slider-block__title::before{content:\\ee30;font-family:sallaicons;position:absolute;top:1rem;font-size:3rem;font-weight:400;line-height:1;z-index:-1;color:rgba(254, 242, 242, 1)}.s-offer-bank-wrapper-single-item{display:flex;align-items:center;gap:0.875rem}.s-offer-slides-container{display:flex;gap:1rem}.s-offer-card{margin-left:auto;margin-right:auto;display:flex;height:100%;min-height:138px;max-width:28rem;gap:0.75rem;border-radius:0.375rem;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:1.5rem;padding-right:1.5rem;padding-top:1.25rem;padding-bottom:1.25rem}.s-offer-card-icon{display:flex;height:3rem;width:3rem;flex-shrink:0;align-items:center;justify-content:center;align-self:flex-start;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));font-size:1.5rem;line-height:2rem}.s-offer-card-content{min-width:0px;flex:1 1 0%;text-align:right}.s-offer-card-title{margin-bottom:0.25rem;width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:0.875rem;line-height:1.25rem;font-weight:600;line-height:1.25;--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.s-offer-card-description{font-size:0.875rem;line-height:1.25rem;line-height:1.625;--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.s-offer-card-description-row{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:0.75rem;row-gap:0.25rem}.s-offer-card-details{display:flex;width:100%;flex-direction:column}.s-offer-shared-content{display:flex;flex-direction:column;align-items:center;text-align:center}.s-offer-drawer-card{overflow:hidden;border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:1rem;padding-right:1rem;padding-top:1.5rem;padding-bottom:1.5rem}.s-offer-drawer-card:last-child{border-bottom-width:0px}.s-offer-drawer-card .s-offer-card-main{display:flex;align-items:center;gap:1rem;padding:0px}.s-offer-drawer-card .s-offer-card-icon{display:flex;height:3rem;width:3rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));font-size:1.25rem;line-height:1.75rem;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-offer-drawer-card .s-offer-card-content{min-width:0px;flex:1 1 0%;text-align:right}.s-offer-drawer-card .s-offer-card-title{margin-bottom:0.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:0.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.s-offer-drawer-card .s-offer-card-description{font-size:0.875rem;line-height:1.25rem;line-height:1.625;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.s-offer-drawer-card .s-accordion-wrapper{margin:0px}.s-offer-drawer-card .s-accordion-head-wrapper{margin-right:60px;width:100%;max-width:370px;cursor:pointer;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-bottom:0.75rem;padding-right:0px;padding-top:0px}.s-offer-drawer-card .s-accordion-head-wrapper-end{display:none !important}.s-offer-drawer-card .s-accordion-body-wrapper{overflow:auto;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:1rem;padding-right:1rem;padding-bottom:0px}.s-offer-drawer-card .s-accordion-body-wrapper::-webkit-scrollbar{width:5px}.s-offer-drawer-card .s-accordion-body-wrapper::-webkit-scrollbar-track{background-color:#eee}.s-offer-drawer-card .s-accordion-body-wrapper::-webkit-scrollbar-thumb{background-color:var(--color-primary);border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px}.s-offer-products-thumbnails{display:flex;width:100%;align-items:center;justify-content:space-between}.s-offer-products-thumbnails-stack{position:relative;display:flex;align-items:center}.s-offer-product-thumbnail{position:relative;z-index:10;margin-left:-0.5rem;height:2rem;width:2rem;overflow:hidden;border-radius:0.375rem;border-width:2px;--tw-border-opacity:1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.s-offer-product-thumbnail:first-child{margin-left:0px}.s-offer-product-thumbnail img{height:100%;width:100%;object-fit:cover}.s-offer-products-more-count{position:relative;z-index:50;margin-left:-0.5rem;display:flex;height:2rem;width:2rem;align-items:center;justify-content:center;border-radius:0.375rem;border-width:2px;--tw-border-opacity:1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1));font-size:11px;font-weight:400;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1));direction:ltr}.s-offer-products-title{display:flex;align-items:center;font-size:0.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.s-offer-products-accordion-content{--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:0.75rem}.s-offer-products-link{display:flex;cursor:pointer;align-items:center;justify-content:space-between;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1));transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:200ms}.s-offer-products-link:hover{--tw-text-opacity:1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.s-offer-products-link-text{font-size:0.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1));text-decoration-line:underline}.s-offer-products-link-icon{font-size:15px;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1));transition-property:transform;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:200ms}.s-offer-products-link:hover .s-offer-products-link-icon{--tw-translate-x:-0.25rem;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-offer-drawer-padding{padding:0px !important}.s-offer-drawer-content{max-height:calc(100vh - 120px);overflow-y:auto !important;padding-left:1rem;padding-right:1rem}.s-offer-drawer-content::-webkit-scrollbar{width:5px}.s-offer-drawer-content::-webkit-scrollbar-track{background-color:#eee}.s-offer-drawer-content::-webkit-scrollbar-thumb{background-color:var(--color-primary);border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px}.s-offer-products-drawer-content{max-height:calc(100vh - 120px);overflow-y:auto !important;padding-left:1.5rem;padding-right:1.5rem}.s-offer-products-drawer-content::-webkit-scrollbar{width:5px}.s-offer-products-drawer-content::-webkit-scrollbar-track{background-color:#eee}.s-offer-products-drawer-content::-webkit-scrollbar-thumb{background-color:var(--color-primary);border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px}.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-products-list-single-column salla-product-card[horizontal] img{height:60px !important;max-height:60px !important;width:60px !important;max-width:60px !important;object-fit:cover !important}.s-offer-products-list-single-column salla-product-card[horizontal] button{--tw-bg-opacity:1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.s-offer-products-list-single-column salla-product-card[horizontal] button:hover{--tw-bg-opacity:1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.s-offer-discount-table{width:100%;border-collapse:collapse}.s-offer-discount-table tr:not(:last-child){border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.s-offer-discount-table td{padding:0.75rem;text-align:right}.s-offer-discount-table td:first-child{padding-right:0px}.s-offer-discount-percentage{font-size:0.75rem;line-height:1rem;font-weight:700;line-height:1.25}.s-offer-discount-condition{margin-top:0.25rem;font-size:10px;line-height:1.25;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.s-offer-categories{margin-top:0.75rem;text-align:right}.s-offer-categories-group{margin-top:0.25rem;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:0.5rem}.s-offer-categories-label{flex-shrink:0;font-size:13px;font-weight:700;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.s-offer-categories-list{display:flex;flex-wrap:wrap;column-gap:1rem;font-size:13px;line-height:1.625}.s-offer-categories-list a{text-decoration-line:underline}.s-offer-category-item{display:inline-block;cursor:pointer;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-offer-category-item:hover{--tw-text-opacity:1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.s-offer-categories-toggle{cursor:pointer;font-size:0.75rem;line-height:1rem;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.s-offer-categories-toggle:hover{--tw-text-opacity:1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.s-offer-min-spend{margin-top:0.625rem;font-size:13px;line-height:17px;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-offer-percentage-fixed-content{display:flex;flex-direction:column}.s-offer-min-items{font-size:13px;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-offer-discount-table-subtitle{margin-bottom:0.75rem;font-size:0.875rem;line-height:1.25rem;line-height:1.625;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.s-offer-show-more-card{pointer-events:auto;display:flex;cursor:pointer;align-items:center;justify-content:center;gap:0.25rem;text-align:center}.s-offer-show-more-icon{--tw-text-opacity:1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.s-offer-show-more-title{font-size:0.875rem;line-height:1.25rem;font-weight:600;line-height:1.25;--tw-text-opacity:1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.s-offer-drawer-card .s-products-list-compact-cards{margin-bottom:0px !important}.s-offer-max-discount{font-size:13px;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-offer-branches{margin-top:0.75rem;text-align:right}.s-offer-branches-label{margin-bottom:0.25rem;display:block;font-size:13px;font-weight:700;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-offer-branches-list{display:flex;flex-wrap:wrap;column-gap:1rem;font-size:13px;line-height:1.625}.s-offer-branch-item{display:inline-block;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-offer-payment-methods{margin-top:0.75rem;text-align:right}.s-offer-payment-methods-label{margin-bottom:0.25rem;display:block;font-size:13px;font-weight:700;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-offer-payment-methods-list{display:flex;flex-wrap:wrap;column-gap:1rem;font-size:13px;line-height:1.625}.s-offer-payment-method-item{display:inline-block;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-offer-discount-amount{font-size:12px;line-height:15px;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-offer-modal-cat-item.swiper-slide{margin-top:1rem;margin-bottom:1rem;display:flex;height:9rem;max-width:180px;flex-direction:column;align-items:center;justify-content:center;border-radius:0.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:0.75rem;text-align:center;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1));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:500ms}.s-offer-modal-cat-item.swiper-slide:hover{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1));--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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-offer-modal-brand-item.swiper-slide{margin-top:1rem;margin-bottom:1rem;display:flex;height:9rem;max-width:180px;flex-direction:column;align-items:center;justify-content:center;border-radius:0.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:0.75rem;text-align:center;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1));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:500ms}.s-offer-modal-brand-item.swiper-slide:hover{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1));--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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-offer-modal-tag-item.swiper-slide{margin-top:1rem;margin-bottom:1rem;display:flex;height:9rem;max-width:180px;flex-direction:column;align-items:center;justify-content:center;border-radius:0.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:0.75rem;text-align:center;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1));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:500ms}.s-offer-modal-tag-item.swiper-slide:hover{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1));--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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-offer-modal-product.swiper-slide{display:flex;width:70%;flex-shrink:0;flex-grow:1;flex-direction:column}@media (min-width: 640px){.s-offer-modal-product.swiper-slide{width:40%}}@media (min-width: 1024px){.s-offer-modal-product.swiper-slide{width:28%}}';export{s as salla_offer}
|
|
@@ -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-CpfofV0a.js";import{i as t}from"./p-BJxBnTgv.js";function s(e,r){localStorage.getItem("salla-delivery-promise-debug")&&(void 0!==r?console.log(e,r):console.log(e))}async function l(e,r){s("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?(s("fetchCities success",{count:o.data.length}),{cities:o.data}):(s("fetchCities: no data",{response:o}),{cities:[]})}function a(){const e=(Boolean(salla.config.get("store.settings.bullet_delivery.settings.remember_last_session"))?salla.storage.store:salla.storage.session).get("bullet_delivery_intent");return e&&"object"==typeof e?e:null}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();s("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=function(){const e=a();if(!e)return null;if("address"===e.type){const r=e.address_details?.city,i=null!=r?.id?Number(r.id):null!=e.city_id?Number(e.city_id):null,o=r?.name?.trim()||"";return null!=i?{type:"address",option:{id:i,name:o}}:t(e)&&e.address_details?.formatted_address?{type:"address",option:{name:e.address_details.formatted_address}}:null}if("branch"===e.type){const r=null!=e.branch_id?Number(e.branch_id):null!=e.branch_details?.id?Number(e.branch_details.id):null,i=e.branch_details?.name?.trim()||"";return null!=r?{type:"branch",option:{id:r,name:i}}:null}return null}();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",function(){const e=a(),r={};if("address"===e?.type&&null!=e.address_id&&(r.preselected_address_id=Number(e.address_id)),"branch"===e?.type){const i=e.branch_id??e.branch_details?.id;null!=i&&(r.preselected_branch_id=Number(i))}return r}())}async loadCities(){this.isLoadingCities=!0,this.hasError=!1;const{cityId:e,cityName:r}=this.getIPDeliveryLocation();s("delivery promise standard flow getIPDeliveryLocation",this.getIPDeliveryLocation());try{const{cities:i}=await l(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&&(s("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){s("fetchDeliveryMessage start",{productId:e,id:r,optionType:i});let t="";t="city"!==i||o?`?reference_id=${r}&reference_type=${i}`:`?reference_id=${r}`;const l=await salla.api.withoutNotifier((()=>salla.api.request(salla.url.api(`products/${e}/delivery-promises${t}`))));if(!l.success)return s("fetchDeliveryMessage error",{response:l}),null;const a=l.data?.message?.trim();return s("fetchDeliveryMessage success",{message:a}),a||null}(this.productId,e,r,this.isLoginCycleEnabled)}catch(i){s("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 l(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-BtdIfJF8.js";import{i as t}from"./p-BJxBnTgv.js";function s(e,r){localStorage.getItem("salla-delivery-promise-debug")&&(void 0!==r?console.log(e,r):console.log(e))}async function l(e,r){s("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?(s("fetchCities success",{count:o.data.length}),{cities:o.data}):(s("fetchCities: no data",{response:o}),{cities:[]})}function a(){const e=(Boolean(salla.config.get("store.settings.bullet_delivery.settings.remember_last_session"))?salla.storage.store:salla.storage.session).get("bullet_delivery_intent");return e&&"object"==typeof e?e:null}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();s("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=function(){const e=a();if(!e)return null;if("address"===e.type){const r=e.address_details?.city,i=null!=r?.id?Number(r.id):null!=e.city_id?Number(e.city_id):null,o=r?.name?.trim()||"";return null!=i?{type:"address",option:{id:i,name:o}}:t(e)&&e.address_details?.formatted_address?{type:"address",option:{name:e.address_details.formatted_address}}:null}if("branch"===e.type){const r=null!=e.branch_id?Number(e.branch_id):null!=e.branch_details?.id?Number(e.branch_details.id):null,i=e.branch_details?.name?.trim()||"";return null!=r?{type:"branch",option:{id:r,name:i}}:null}return null}();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",function(){const e=a(),r={};if("address"===e?.type&&null!=e.address_id&&(r.preselected_address_id=Number(e.address_id)),"branch"===e?.type){const i=e.branch_id??e.branch_details?.id;null!=i&&(r.preselected_branch_id=Number(i))}return r}())}async loadCities(){this.isLoadingCities=!0,this.hasError=!1;const{cityId:e,cityName:r}=this.getIPDeliveryLocation();s("delivery promise standard flow getIPDeliveryLocation",this.getIPDeliveryLocation());try{const{cities:i}=await l(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&&(s("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){s("fetchDeliveryMessage start",{productId:e,id:r,optionType:i});let t="";t="city"!==i||o?`?reference_id=${r}&reference_type=${i}`:`?reference_id=${r}`;const l=await salla.api.withoutNotifier((()=>salla.api.request(salla.url.api(`products/${e}/delivery-promises${t}`))));if(!l.success)return s("fetchDeliveryMessage error",{response:l}),null;const a=l.data?.message?.trim();return s("fetchDeliveryMessage success",{message:a}),a||null}(this.productId,e,r,this.isLoginCycleEnabled)}catch(i){s("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 l(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 t,c as r,h as i,H as e,a as s}from"./p-CpfofV0a.js";import{M as o}from"./p-DmgxDvXL.js";const a=class{constructor(i){t(this,i),this.verified=r(this,"verified"),this.translationLoaded=!1,this.display="modal",this.type="mobile",this.autoReload=!0,this.supportWebAuth=!0,this.resendAfter=30,this.isProfileVerify=!1,salla.lang.onLoaded((()=>{this.translationLoaded=!0,this.title=salla.lang.get("pages.profile.verify_title")+salla.lang.get("common.elements."+this.type),this.modal?.setTitle(this.title)})),"inline"!=this.display?(salla.event.on("profile::verification",(t=>{let r=Array.isArray(t)?t[0]:t;"delete_account"===r?.request_type||document.getElementById("salla-user-settings-delete-modal")?.hasAttribute("visible")||(this.isProfileVerify=!0,this.open(r),this.title=salla.lang.get("pages.profile.verify_title")+salla.lang.get("common.elements."+r.type),this.modal?.setTitle(this.title))})),salla.event.on("modalClosed",(()=>{this.resendAfter=0,this.timer.innerHTML="30 : 00"}))):this.modal={open:()=>"",close:()=>"",setTitle:()=>""}}splitNumber(t){this.resetError();let r=t.data||t.target.value;r&&1!==r.length&&this.modifyNext(t.target,r)}modifyNext(t,r){t.value=r[0],r=r.substring(1),t.nextElementSibling&&r.length?this.modifyNext(t.nextElementSibling,r):t.nextElementSibling||0!==r.length?t.nextElementSibling&&0===r.length&&t.nextElementSibling.focus():t.focus()}checkAllInputs(){let t=!0;for(let r=0;r<this.otpInputs.length;r++)""===this.otpInputs[r].value&&(t=!1);return t}handleKeyUp(t){if(this.resetError(),["Alt","Shift","Control","AltGraph","Ctrl"].includes(t.key))return;let r=t.keyCode||t.charCode;t.target.value?(t.target.nextElementSibling?.focus(),t.target.nextElementSibling?.select()):[8,46].includes(r)&&(t.target.previousElementSibling?.focus(),t.target.previousElementSibling?.select()),t.target.value.length>1&&this.splitNumber(t)}handlePaste(t){this.resetError();let r=(salla.helpers.number(t.clipboardData.getData("text"))||"").replace(/[^0-9]/g,"");r=r.substring(0,this.otpInputs.length),this.otpInputs.forEach((t=>t.value="")),this.modifyNext(this.otpInputs[0],r)}handleInput(t){this.resetError(),salla.helpers.inputDigitsOnly(t.target),this.checkAllInputs()&&setTimeout((()=>{this.toggleOTPSubmit()}),100)}resetError(){this.hasError=!1,this.errorMessage=""}handleFocus(t){t.target!==this.firstOtpInput&&(""==this.firstOtpInput?.value&&this.firstOtpInput.focus(),""==t.target.previousElementSibling.value&&t.target.previousElementSibling.focus())}async getCode(){return this.code.value}async open(t){this.data=t,this.data.type=this.data.type||this.type,this.type=this.data.type,this.resendTimer(),this.otpInputs=this.body.querySelectorAll(".s-verify-input"),this.firstOtpInput=this.body.querySelector("#otp-1"),this.reset(),this.resetError(),"modal"==this.display&&this.modal?.setTitle(this.title),this.modal.open(),this.firstOtpInput?.addEventListener("input",(t=>this.splitNumber(t))),setTimeout((()=>this.otpInputs[0].focus()),100)}toggleOTPSubmit(){let t=[];if(this.otpInputs.forEach((r=>r.value&&t.push(r.value))),this.code.value=t.join(""),4===t.length)return this.btn.disable(),void this.btn.click();this.btn.enable()}reset(){this.otpInputs.forEach((t=>t.value="")),this.code.value="",this.otpInputs[0].focus()}resendTimer(){this.resendMessage.style.display="block",this.resend.style.display="none",this.resendAfter=30;let t=setInterval((()=>{this.resendAfter<=0?(clearInterval(t),this.resend.style.display="block",this.resendMessage.style.display="none"):(this.timer.innerHTML=`${this.resendAfter>=10?this.resendAfter:"0"+this.resendAfter} : 00`,this.resendAfter--)}),1e3)}resendCode(){return this.btn.stop().then((()=>this.btn.disable())).then((()=>{this.otpInputs.forEach((t=>t.value="")),this.otpInputs[0].focus()})).then((()=>salla.api.auth.resend(this.data))).finally((()=>this.resendTimer()))}submit(){if(this.code.value.length<4)return this.otpInputs[this.code.value.length].focus(),void salla.log("Trying to submit without 4 digits!");let t={code:this.code.value,...this.data};return this.btn.load().then((()=>this.btn.disable())).then((()=>this.isProfileVerify?salla.profile.verify(t):salla.auth.verify(t,this.supportWebAuth))).then((t=>this.verified.emit(t))).then((()=>this.btn.stop()&&this.btn.disable())).then((()=>this.modal.close())).then((()=>this.autoReload&&window.location.reload())).catch((t=>{this.hasError=!0,this.errorMessage=t.response?.data?.error?.message||salla.lang.get("common.errors.error_occurred"),t.response?salla.logger.error(t):console.log("Unexpected error",t),this.btn.stop()&&this.btn.enable()&&this.reset()}))}render(){return"inline"==this.display?i(e,null,this.myBody()):i("salla-modal",{width:"xs",class:"s-verify",ref:t=>this.modal=t,"modal-title":this.title},i("span",{slot:"icon",class:"s-verify-header-icon",innerHTML:"mobile"==this.type?'\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>android-phone</title>\n<path d="M22.667 0h-13.333c-2.941 0-5.333 2.392-5.333 5.333v21.333c0 2.941 2.392 5.333 5.333 5.333h13.333c2.941 0 5.333-2.392 5.333-5.333v-21.333c0-2.941-2.392-5.333-5.333-5.333zM25.333 26.667c0 1.471-1.196 2.667-2.667 2.667h-13.333c-1.471 0-2.667-1.196-2.667-2.667v-2.667h18.667zM25.333 21.333h-18.667v-16c0-1.471 1.196-2.667 2.667-2.667h13.333c1.471 0 2.667 1.196 2.667 2.667zM13.333 28h5.333c0.736 0 1.333-0.597 1.333-1.333s-0.597-1.333-1.333-1.333h-5.333c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333z"></path>\n</svg>\n':o}),this.myBody())}myBody(){return i("div",{class:"s-verify-body",ref:t=>this.body=t},i("div",{class:"s-verify-message",innerHTML:salla.lang.get("pages.profile.verify_message")}),i("slot",{name:"mobile"}),i("slot",{name:"email"}),i("input",{type:"hidden",name:"code",maxlength:"4",required:!0,ref:t=>this.code=t}),i("div",{class:{"s-verify-codes":!0,"has-error":this.hasError},dir:"ltr"},[1,2,3,4].map((t=>i("input",{type:"number",autocomplete:"one-time-code",pattern:"[0-9]*",inputmode:"numeric",maxlength:"1",value:"",id:`otp-${t}`,class:{"s-verify-input":!0,"s-has-error":this.hasError},onInput:t=>this.handleInput(t),onPaste:t=>this.handlePaste(t),onKeyUp:t=>this.handleKeyUp(t),onFocus:t=>this.handleFocus(t),required:!0})))),this.hasError&&this.errorMessage?i("span",{class:"s-verify-error-message"},this.errorMessage):"",i("div",{slot:"footer",class:"s-verify-footer"},i("salla-button",{class:"s-verify-submit","loader-position":"center",disabled:!0,onClick:()=>this.submit(),ref:t=>this.btn=t},salla.lang.get("pages.profile.verify")),i("p",{class:"s-verify-resend-message",ref:t=>this.resendMessage=t},salla.lang.get("blocks.header.resend_after"),i("b",{class:"s-verify-timer",ref:t=>this.timer=t})),i("a",{href:"#",class:"s-verify-resend",onClick:()=>this.resendCode(),ref:t=>this.resend=t},salla.lang.get("blocks.comments.submit"))),i("slot",{name:"after-footer"}))}get host(){return s(this)}};a.style='/*!twlt*/salla-verify{display:block}.s-verify-input{}.s-verify-input::-webkit-outer-spin-button,.s-verify-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.s-verify-input[type=number]{-moz-appearance:textfield}.visible{visibility:visible}.block{display:block}.inline{display:inline}.hidden{display:none}.s-has-error{--tw-border-opacity:1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.s-has-error:focus{--tw-border-opacity:1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.btn{display:inline-flex;flex:1 1 0%;align-items:center;justify-content:center;white-space:nowrap;border-radius:0.375rem;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}.btn:hover{opacity:0.8}.has-error .s-form-label{color:#ff443a}.has-error .s-form-control,.has-error .s-tel-input-control,.has-error .s-datetime-picker-input{border-color:#ff443a;color:#ff443a}.s-has-error{--tw-border-opacity:1 !important;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1)) !important;--tw-text-opacity:1 !important;color:rgb(239 68 68 / var(--tw-text-opacity, 1)) !important}.s-verify-message{text-align:center;font-size:0.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-verify-label{margin-bottom:1rem;display:block;text-align:center;font-size:0.875rem;line-height:1.25rem}.s-verify-codes{margin-left:-0.25rem;margin-right:-0.25rem;margin-bottom:1.25rem;display:flex;justify-content:space-between}.s-verify-codes.has-error{margin-bottom:0px}.s-verify-input{margin-left:0.25rem;margin-right:0.25rem;height:2.5rem;width:100%;border-radius:var(--s-radius, 0.25rem);border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));padding-left:0.5rem;padding-right:0.5rem;text-align:center;font-size:1.125rem;line-height:1.75rem;font-weight:700;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.s-verify-input:focus{border-color:var(--color-primary)}.s-verify-input:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.s-verify-footer{text-align:center}.s-verify-submit{margin-bottom:1.25rem;width:100%}.s-verify-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-verify-header-icon{margin-left:auto;margin-right:auto;margin-bottom:1rem;height:5rem;width:5rem}}.s-verify-header-icon:where([dir="ltr"],[dir="ltr"] *){margin-right:0.5rem}@media (min-width: 640px){.s-verify-header-icon:where([dir="ltr"],[dir="ltr"] *){margin-right:0px}}.s-verify-header-icon:where([dir="rtl"],[dir="rtl"] *){margin-left:0.5rem}@media (min-width: 640px){.s-verify-header-icon:where([dir="rtl"],[dir="rtl"] *){margin-left:0px}}.s-verify-resend-message{font-size:0.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-verify-error-message{margin-bottom:1.25rem;display:block;height:1.75rem;padding-top:0.75rem;text-align:center;font-size:0.75rem;line-height:1rem;--tw-border-opacity:1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.s-verify-error-message:focus{--tw-border-opacity:1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.s-verify-error-message{--tw-border-opacity:1 !important;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1)) !important;--tw-text-opacity:1 !important;color:rgb(239 68 68 / var(--tw-text-opacity, 1)) !important}.s-verify-timer{margin-left:0.25rem;margin-right:0.25rem;--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.s-verify-resend{text-align:center;font-size:0.875rem;line-height:1.25rem;color:var(--color-primary)}.s-verify-back{position:absolute;left:10px;top:10px;display:flex;height:2rem;width:2rem;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));font-size:1.125rem;line-height:1.75rem;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1));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-verify-back:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.s-verify-back:where([dir="rtl"],[dir="rtl"] *){left:unset;right:10px}.s-verify-back svg{height:18px;width:18px}[dir=\'ltr\'] .s-verify-back{transform:scale(-1)}';export{a as salla_verify}
|
|
4
|
+
import{r as t,c as r,h as i,H as e,a as s}from"./p-BtdIfJF8.js";import{M as o}from"./p-DmgxDvXL.js";const a=class{constructor(i){t(this,i),this.verified=r(this,"verified"),this.translationLoaded=!1,this.display="modal",this.type="mobile",this.autoReload=!0,this.supportWebAuth=!0,this.resendAfter=30,this.isProfileVerify=!1,salla.lang.onLoaded((()=>{this.translationLoaded=!0,this.title=salla.lang.get("pages.profile.verify_title")+salla.lang.get("common.elements."+this.type),this.modal?.setTitle(this.title)})),"inline"!=this.display?(salla.event.on("profile::verification",(t=>{let r=Array.isArray(t)?t[0]:t;"delete_account"===r?.request_type||document.getElementById("salla-user-settings-delete-modal")?.hasAttribute("visible")||(this.isProfileVerify=!0,this.open(r),this.title=salla.lang.get("pages.profile.verify_title")+salla.lang.get("common.elements."+r.type),this.modal?.setTitle(this.title))})),salla.event.on("modalClosed",(()=>{this.resendAfter=0,this.timer.innerHTML="30 : 00"}))):this.modal={open:()=>"",close:()=>"",setTitle:()=>""}}splitNumber(t){this.resetError();let r=t.data||t.target.value;r&&1!==r.length&&this.modifyNext(t.target,r)}modifyNext(t,r){t.value=r[0],r=r.substring(1),t.nextElementSibling&&r.length?this.modifyNext(t.nextElementSibling,r):t.nextElementSibling||0!==r.length?t.nextElementSibling&&0===r.length&&t.nextElementSibling.focus():t.focus()}checkAllInputs(){let t=!0;for(let r=0;r<this.otpInputs.length;r++)""===this.otpInputs[r].value&&(t=!1);return t}handleKeyUp(t){if(this.resetError(),["Alt","Shift","Control","AltGraph","Ctrl"].includes(t.key))return;let r=t.keyCode||t.charCode;t.target.value?(t.target.nextElementSibling?.focus(),t.target.nextElementSibling?.select()):[8,46].includes(r)&&(t.target.previousElementSibling?.focus(),t.target.previousElementSibling?.select()),t.target.value.length>1&&this.splitNumber(t)}handlePaste(t){this.resetError();let r=(salla.helpers.number(t.clipboardData.getData("text"))||"").replace(/[^0-9]/g,"");r=r.substring(0,this.otpInputs.length),this.otpInputs.forEach((t=>t.value="")),this.modifyNext(this.otpInputs[0],r)}handleInput(t){this.resetError(),salla.helpers.inputDigitsOnly(t.target),this.checkAllInputs()&&setTimeout((()=>{this.toggleOTPSubmit()}),100)}resetError(){this.hasError=!1,this.errorMessage=""}handleFocus(t){t.target!==this.firstOtpInput&&(""==this.firstOtpInput?.value&&this.firstOtpInput.focus(),""==t.target.previousElementSibling.value&&t.target.previousElementSibling.focus())}async getCode(){return this.code.value}async open(t){this.data=t,this.data.type=this.data.type||this.type,this.type=this.data.type,this.resendTimer(),this.otpInputs=this.body.querySelectorAll(".s-verify-input"),this.firstOtpInput=this.body.querySelector("#otp-1"),this.reset(),this.resetError(),"modal"==this.display&&this.modal?.setTitle(this.title),this.modal.open(),this.firstOtpInput?.addEventListener("input",(t=>this.splitNumber(t))),setTimeout((()=>this.otpInputs[0].focus()),100)}toggleOTPSubmit(){let t=[];if(this.otpInputs.forEach((r=>r.value&&t.push(r.value))),this.code.value=t.join(""),4===t.length)return this.btn.disable(),void this.btn.click();this.btn.enable()}reset(){this.otpInputs.forEach((t=>t.value="")),this.code.value="",this.otpInputs[0].focus()}resendTimer(){this.resendMessage.style.display="block",this.resend.style.display="none",this.resendAfter=30;let t=setInterval((()=>{this.resendAfter<=0?(clearInterval(t),this.resend.style.display="block",this.resendMessage.style.display="none"):(this.timer.innerHTML=`${this.resendAfter>=10?this.resendAfter:"0"+this.resendAfter} : 00`,this.resendAfter--)}),1e3)}resendCode(){return this.btn.stop().then((()=>this.btn.disable())).then((()=>{this.otpInputs.forEach((t=>t.value="")),this.otpInputs[0].focus()})).then((()=>salla.api.auth.resend(this.data))).finally((()=>this.resendTimer()))}submit(){if(this.code.value.length<4)return this.otpInputs[this.code.value.length].focus(),void salla.log("Trying to submit without 4 digits!");let t={code:this.code.value,...this.data};return this.btn.load().then((()=>this.btn.disable())).then((()=>this.isProfileVerify?salla.profile.verify(t):salla.auth.verify(t,this.supportWebAuth))).then((t=>this.verified.emit(t))).then((()=>this.btn.stop()&&this.btn.disable())).then((()=>this.modal.close())).then((()=>this.autoReload&&window.location.reload())).catch((t=>{this.hasError=!0,this.errorMessage=t.response?.data?.error?.message||salla.lang.get("common.errors.error_occurred"),t.response?salla.logger.error(t):console.log("Unexpected error",t),this.btn.stop()&&this.btn.enable()&&this.reset()}))}render(){return"inline"==this.display?i(e,null,this.myBody()):i("salla-modal",{width:"xs",class:"s-verify",ref:t=>this.modal=t,"modal-title":this.title},i("span",{slot:"icon",class:"s-verify-header-icon",innerHTML:"mobile"==this.type?'\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>android-phone</title>\n<path d="M22.667 0h-13.333c-2.941 0-5.333 2.392-5.333 5.333v21.333c0 2.941 2.392 5.333 5.333 5.333h13.333c2.941 0 5.333-2.392 5.333-5.333v-21.333c0-2.941-2.392-5.333-5.333-5.333zM25.333 26.667c0 1.471-1.196 2.667-2.667 2.667h-13.333c-1.471 0-2.667-1.196-2.667-2.667v-2.667h18.667zM25.333 21.333h-18.667v-16c0-1.471 1.196-2.667 2.667-2.667h13.333c1.471 0 2.667 1.196 2.667 2.667zM13.333 28h5.333c0.736 0 1.333-0.597 1.333-1.333s-0.597-1.333-1.333-1.333h-5.333c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333z"></path>\n</svg>\n':o}),this.myBody())}myBody(){return i("div",{class:"s-verify-body",ref:t=>this.body=t},i("div",{class:"s-verify-message",innerHTML:salla.lang.get("pages.profile.verify_message")}),i("slot",{name:"mobile"}),i("slot",{name:"email"}),i("input",{type:"hidden",name:"code",maxlength:"4",required:!0,ref:t=>this.code=t}),i("div",{class:{"s-verify-codes":!0,"has-error":this.hasError},dir:"ltr"},[1,2,3,4].map((t=>i("input",{type:"number",autocomplete:"one-time-code",pattern:"[0-9]*",inputmode:"numeric",maxlength:"1",value:"",id:`otp-${t}`,class:{"s-verify-input":!0,"s-has-error":this.hasError},onInput:t=>this.handleInput(t),onPaste:t=>this.handlePaste(t),onKeyUp:t=>this.handleKeyUp(t),onFocus:t=>this.handleFocus(t),required:!0})))),this.hasError&&this.errorMessage?i("span",{class:"s-verify-error-message"},this.errorMessage):"",i("div",{slot:"footer",class:"s-verify-footer"},i("salla-button",{class:"s-verify-submit","loader-position":"center",disabled:!0,onClick:()=>this.submit(),ref:t=>this.btn=t},salla.lang.get("pages.profile.verify")),i("p",{class:"s-verify-resend-message",ref:t=>this.resendMessage=t},salla.lang.get("blocks.header.resend_after"),i("b",{class:"s-verify-timer",ref:t=>this.timer=t})),i("a",{href:"#",class:"s-verify-resend",onClick:()=>this.resendCode(),ref:t=>this.resend=t},salla.lang.get("blocks.comments.submit"))),i("slot",{name:"after-footer"}))}get host(){return s(this)}};a.style='/*!twlt*/salla-verify{display:block}.s-verify-input{}.s-verify-input::-webkit-outer-spin-button,.s-verify-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.s-verify-input[type=number]{-moz-appearance:textfield}.visible{visibility:visible}.block{display:block}.inline{display:inline}.hidden{display:none}.s-has-error{--tw-border-opacity:1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.s-has-error:focus{--tw-border-opacity:1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.btn{display:inline-flex;flex:1 1 0%;align-items:center;justify-content:center;white-space:nowrap;border-radius:0.375rem;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}.btn:hover{opacity:0.8}.has-error .s-form-label{color:#ff443a}.has-error .s-form-control,.has-error .s-tel-input-control,.has-error .s-datetime-picker-input{border-color:#ff443a;color:#ff443a}.s-has-error{--tw-border-opacity:1 !important;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1)) !important;--tw-text-opacity:1 !important;color:rgb(239 68 68 / var(--tw-text-opacity, 1)) !important}.s-verify-message{text-align:center;font-size:0.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-verify-label{margin-bottom:1rem;display:block;text-align:center;font-size:0.875rem;line-height:1.25rem}.s-verify-codes{margin-left:-0.25rem;margin-right:-0.25rem;margin-bottom:1.25rem;display:flex;justify-content:space-between}.s-verify-codes.has-error{margin-bottom:0px}.s-verify-input{margin-left:0.25rem;margin-right:0.25rem;height:2.5rem;width:100%;border-radius:var(--s-radius, 0.25rem);border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));padding-left:0.5rem;padding-right:0.5rem;text-align:center;font-size:1.125rem;line-height:1.75rem;font-weight:700;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.s-verify-input:focus{border-color:var(--color-primary)}.s-verify-input:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.s-verify-footer{text-align:center}.s-verify-submit{margin-bottom:1.25rem;width:100%}.s-verify-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-verify-header-icon{margin-left:auto;margin-right:auto;margin-bottom:1rem;height:5rem;width:5rem}}.s-verify-header-icon:where([dir="ltr"],[dir="ltr"] *){margin-right:0.5rem}@media (min-width: 640px){.s-verify-header-icon:where([dir="ltr"],[dir="ltr"] *){margin-right:0px}}.s-verify-header-icon:where([dir="rtl"],[dir="rtl"] *){margin-left:0.5rem}@media (min-width: 640px){.s-verify-header-icon:where([dir="rtl"],[dir="rtl"] *){margin-left:0px}}.s-verify-resend-message{font-size:0.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-verify-error-message{margin-bottom:1.25rem;display:block;height:1.75rem;padding-top:0.75rem;text-align:center;font-size:0.75rem;line-height:1rem;--tw-border-opacity:1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.s-verify-error-message:focus{--tw-border-opacity:1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.s-verify-error-message{--tw-border-opacity:1 !important;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1)) !important;--tw-text-opacity:1 !important;color:rgb(239 68 68 / var(--tw-text-opacity, 1)) !important}.s-verify-timer{margin-left:0.25rem;margin-right:0.25rem;--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.s-verify-resend{text-align:center;font-size:0.875rem;line-height:1.25rem;color:var(--color-primary)}.s-verify-back{position:absolute;left:10px;top:10px;display:flex;height:2rem;width:2rem;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));font-size:1.125rem;line-height:1.75rem;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1));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-verify-back:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.s-verify-back:where([dir="rtl"],[dir="rtl"] *){left:unset;right:10px}.s-verify-back svg{height:18px;width:18px}[dir=\'ltr\'] .s-verify-back{transform:scale(-1)}';export{a as salla_verify}
|
|
@@ -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-CpfofV0a.js";import{a as o}from"./p-CgtvEd63.js";import{S as a}from"./p-DiKTtDW5.js";import{H as n}from"./p-Brgf4SAC.js";const l=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.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=()=>n.syncWishlistIcons(this.wrapper,`${this.productCardComponent}, salla-product-card`),this.includes=n.parseJson(this.includes||this.host.getAttribute("includes")),Array.isArray(this.includes)||(this.includes=null),n.setIncludes(this.includes),salla.lang.onLoaded((()=>{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")}))}connectedCallback(){"scrollRestoration"in history&&(history.scrollRestoration="manual"),window.addEventListener("DOMContentLoaded",this.boundScrollToLastViewedProduct),salla.event.on("salla-filters::changed",(t=>this.setFilters(t))),salla.event.on("wishlist::removed",this.onWishlistItemRemoved),salla.event.on("wishlist::storage.synced",this.onWishlistStorageSynced)}disconnectedCallback(){window.removeEventListener("DOMContentLoaded",this.boundScrollToLastViewedProduct),window.removeEventListener("scroll",this.boundHandleScroll),salla.event.off("wishlist::removed",this.onWishlistItemRemoved),salla.event.off("wishlist::storage.synced",this.onWishlistStorageSynced)}async setFilters(t){if(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(){o({targets:"salla-products-list salla-product-card",opacity:[0,1],duration:1200,translateY:[20,0],delay:function(t,s){return 100*s}})}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=${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="");const s=document.createElement(this.hasCustomComponent?this.productCardComponent:"salla-product-card");return s.product=t,this.compactCards&&(s.compact=!0,s.toggleAttribute("compact",!0)),this.applyLandingPageStyles(s),this.applyHorizontalCardStyles(s),s.addEventListener("click",(s=>{const e=s.target;e.closest("a")?(n.saveProductSource(this.getSource()),n.saveProductPosition(t.position),n.saveRequestId(this.requestId),this.hasInfiniteScroll&&(this.takeStateSnapshot(),sessionStorage.setItem(this.lastViewedProductKey,t.id))):e.closest("salla-add-product-button")&&(n.saveProductPosition(t.position),n.saveRequestId(this.requestId))})),this.selectable?this.wrapSelectableItem(s,t):s}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){return"search"===t?`search:${n.getProductsSourceValue(this.source,this.sourceValue)}`:t}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 n.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("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:n.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 n.injectExtraFieldsToResponse(t)}catch(t){console.error("Error injecting data:",t)}}getInitialData(){return this.loading(),salla.api.withoutNotifier((()=>salla.product.api.fetch({source:n.getApiSource(this.getSource()),source_value:this.getSourceValue(),limit:this.limit}).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 n.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&&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){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()}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{this.sortBy=this.sortBy||t.get("sort")||t.get("by"),this.parsedFilters=n.extractFiltersFromUrl(t),this.parsedFilters&&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.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:a}),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=n.getPageTitleForSource(e);try{if("search"===this.getSource())s=salla.lang.get("common.elements.search_about",{word:n.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??""}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)}}n.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"]}}};l.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}.fixed{position:fixed}.sticky{position:sticky}.block{display:block}.grid{display:grid}.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{l as salla_products_list}
|
|
4
|
+
import{r as t,c as s,h as e,H as i,a as r}from"./p-BtdIfJF8.js";import{a as o}from"./p-CgtvEd63.js";import{S as a}from"./p-DiKTtDW5.js";import{H as n}from"./p-Brgf4SAC.js";const l=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.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=()=>n.syncWishlistIcons(this.wrapper,`${this.productCardComponent}, salla-product-card`),this.includes=n.parseJson(this.includes||this.host.getAttribute("includes")),Array.isArray(this.includes)||(this.includes=null),n.setIncludes(this.includes),salla.lang.onLoaded((()=>{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")}))}connectedCallback(){"scrollRestoration"in history&&(history.scrollRestoration="manual"),window.addEventListener("DOMContentLoaded",this.boundScrollToLastViewedProduct),salla.event.on("salla-filters::changed",(t=>this.setFilters(t))),salla.event.on("wishlist::removed",this.onWishlistItemRemoved),salla.event.on("wishlist::storage.synced",this.onWishlistStorageSynced)}disconnectedCallback(){window.removeEventListener("DOMContentLoaded",this.boundScrollToLastViewedProduct),window.removeEventListener("scroll",this.boundHandleScroll),salla.event.off("wishlist::removed",this.onWishlistItemRemoved),salla.event.off("wishlist::storage.synced",this.onWishlistStorageSynced)}async setFilters(t){if(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(){o({targets:"salla-products-list salla-product-card",opacity:[0,1],duration:1200,translateY:[20,0],delay:function(t,s){return 100*s}})}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=${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="");const s=document.createElement(this.hasCustomComponent?this.productCardComponent:"salla-product-card");return s.product=t,this.compactCards&&(s.compact=!0,s.toggleAttribute("compact",!0)),this.applyLandingPageStyles(s),this.applyHorizontalCardStyles(s),s.addEventListener("click",(s=>{const e=s.target;e.closest("a")?(n.saveProductSource(this.getSource()),n.saveProductPosition(t.position),n.saveRequestId(this.requestId),this.hasInfiniteScroll&&(this.takeStateSnapshot(),sessionStorage.setItem(this.lastViewedProductKey,t.id))):e.closest("salla-add-product-button")&&(n.saveProductPosition(t.position),n.saveRequestId(this.requestId))})),this.selectable?this.wrapSelectableItem(s,t):s}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){return"search"===t?`search:${n.getProductsSourceValue(this.source,this.sourceValue)}`:t}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 n.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("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:n.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 n.injectExtraFieldsToResponse(t)}catch(t){console.error("Error injecting data:",t)}}getInitialData(){return this.loading(),salla.api.withoutNotifier((()=>salla.product.api.fetch({source:n.getApiSource(this.getSource()),source_value:this.getSourceValue(),limit:this.limit}).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 n.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&&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){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()}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{this.sortBy=this.sortBy||t.get("sort")||t.get("by"),this.parsedFilters=n.extractFiltersFromUrl(t),this.parsedFilters&&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.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:a}),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=n.getPageTitleForSource(e);try{if("search"===this.getSource())s=salla.lang.get("common.elements.search_about",{word:n.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??""}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)}}n.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"]}}};l.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}.fixed{position:fixed}.sticky{position:sticky}.block{display:block}.grid{display:grid}.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{l as salla_products_list}
|