@salla.sa/twilight-components 2.14.591 → 2.14.593
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/{apple-pay-order-options-B036Wu4O.js → apple-pay-order-options-CA8IYRTb.js} +1 -0
- package/dist/cjs/{filepond-DkObEO32.js → filepond-Dh9Ih7bu.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-poster-wXgeY5cU.js → filepond-plugin-file-poster-C6Sx5vF0.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-size-CWleid1C.js → filepond-plugin-file-validate-size-DdzdetN6.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-type-CJLl2hbe.js → filepond-plugin-file-validate-type-DRWFKOpQ.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-edit-Bp6AxXM9.js → filepond-plugin-image-edit-B4vaf2kZ.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-exif-orientation-abWKSX9-.js → filepond-plugin-image-exif-orientation-BXfm40Ut.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-preview-DxprNycS.js → filepond-plugin-image-preview-DQLCCOAs.js} +1 -1
- package/dist/cjs/{helpers-DBynEhOO.js → helpers-DSseNQ1K.js} +1 -1
- package/dist/cjs/{index-DBN0LueR.js → index-CLrjVXN1.js} +3 -3
- package/dist/cjs/{intlTelInput-B6H18Td2.js → intlTelInput-o62W18dw.js} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- 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 +152 -7
- 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 +11 -11
- 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 +45 -34
- 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 +3 -3
- package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
- package/dist/cjs/salla-contacts.cjs.entry.js +1 -1
- 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 +2 -2
- 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_2.cjs.entry.js +2 -2
- package/dist/cjs/salla-gifting.cjs.entry.js +2 -2
- 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 +1 -1
- 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 +2 -2
- 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 +3 -3
- package/dist/cjs/salla-search.cjs.entry.js +2 -2
- package/dist/cjs/salla-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/salla-social-share.cjs.entry.js +2 -2
- package/dist/cjs/salla-social.cjs.entry.js +2 -2
- package/dist/cjs/salla-tab-content_3.cjs.entry.js +4 -4
- package/dist/cjs/salla-tiered-offer.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 +2 -2
- 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 +2 -2
- package/dist/cjs/salla-wishlist-summary.cjs.entry.js +1 -1
- package/dist/cjs/twilight.cjs.js +2 -2
- package/dist/cjs/{vanilla-picker-Cm71HMBs.js → vanilla-picker-FCNrUTtN.js} +1 -1
- package/dist/collection/components/salla-add-product-button/salla-add-product-button.css +58 -36
- package/dist/collection/components/salla-add-product-button/salla-add-product-button.js +120 -2
- package/dist/collection/components/salla-bullet-delivery/helpers.js +1 -1
- package/dist/collection/components/salla-bullet-delivery/salla-bullet-delivery.js +39 -28
- package/dist/collection/components/salla-order-options-modal/apple-pay-order-options.js +1 -1
- package/dist/collection/components/salla-quick-buy/salla-quick-buy.js +17 -4
- package/dist/collection/components/salla-review-card/salla-review-card.js +1 -1
- package/dist/collection/components/salla-review-factors-tags/salla-review-factors-tags.js +1 -1
- package/dist/collection/components/salla-reviews-page/salla-reviews-page.js +1 -1
- package/dist/collection/components/salla-search/salla-search.js +1 -1
- package/dist/collection/components/salla-search-product-card/salla-search-product-card.js +2 -2
- package/dist/collection/components/salla-searchable-dropdown/salla-searchable-dropdown.js +4 -4
- package/dist/collection/components/salla-skeleton/salla-skeleton.js +1 -1
- package/dist/collection/components/salla-social/salla-social.js +1 -1
- package/dist/collection/components/salla-social-share/salla-social-share.js +1 -1
- package/dist/collection/components/salla-tabs/salla-tab-content.js +1 -1
- package/dist/collection/components/salla-tabs/salla-tab-header.js +1 -1
- package/dist/collection/components/salla-tabs/salla-tabs.js +1 -1
- package/dist/collection/components/salla-tel-input/salla-tel-input.js +1 -1
- package/dist/collection/components/salla-tooltip/salla-tooltip.js +1 -1
- package/dist/collection/components/salla-user-settings/salla-user-settings.js +1 -1
- package/dist/collection/components/salla-wishlist-actions/salla-wishlist-actions.js +1 -1
- package/dist/components/apple-pay-order-options.js +1 -1
- package/dist/components/helpers.js +2 -2
- package/dist/components/index.js +3 -3
- package/dist/components/salla-add-product-button2.js +120 -3
- package/dist/components/salla-bullet-delivery.js +40 -29
- package/dist/components/salla-delivery-promise.js +1 -1
- package/dist/components/salla-gifting.js +1 -1
- package/dist/components/salla-quick-buy2.js +35 -5
- package/dist/components/salla-review-card2.js +1 -1
- package/dist/components/salla-review-factors-tags2.js +1 -1
- package/dist/components/salla-reviews-page.js +1 -1
- package/dist/components/salla-search-product-card2.js +2 -2
- package/dist/components/salla-search.js +1 -1
- package/dist/components/salla-searchable-dropdown2.js +4 -4
- package/dist/components/salla-skeleton2.js +1 -1
- package/dist/components/salla-social-share2.js +1 -1
- package/dist/components/salla-social.js +1 -1
- package/dist/components/salla-tab-content2.js +1 -1
- package/dist/components/salla-tab-header2.js +1 -1
- package/dist/components/salla-tabs2.js +1 -1
- package/dist/components/salla-tel-input2.js +1 -1
- package/dist/components/salla-tooltip2.js +1 -1
- package/dist/components/salla-user-settings.js +1 -1
- package/dist/components/salla-wishlist-actions.js +1 -1
- package/dist/docs.json +29 -13
- package/dist/esm/{apple-pay-order-options-s0kn7yr8.js → apple-pay-order-options-BS2iQKah.js} +1 -1
- package/dist/esm/{filepond-Cstf5r6K.js → filepond-DTcw03Zq.js} +1 -1
- package/dist/esm/{filepond-plugin-file-poster-GibBgGHW.js → filepond-plugin-file-poster-Csk5cMw9.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-size-CLc6zco6.js → filepond-plugin-file-validate-size-FFrf5LrW.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-type-Ca3dc8p0.js → filepond-plugin-file-validate-type-DeZP4xXd.js} +1 -1
- package/dist/esm/{filepond-plugin-image-edit-CNGBLi7d.js → filepond-plugin-image-edit-DRKyd_1I.js} +1 -1
- package/dist/esm/{filepond-plugin-image-exif-orientation-Dmmu9-UQ.js → filepond-plugin-image-exif-orientation-CxVz7OAy.js} +1 -1
- package/dist/esm/{filepond-plugin-image-preview-KX15tx60.js → filepond-plugin-image-preview-CsKN7em3.js} +1 -1
- package/dist/esm/{helpers-BJxBnTgv.js → helpers-DgRxTSyJ.js} +2 -2
- package/dist/esm/{index-UnmOIma5.js → index-0Tl_yZW8.js} +3 -3
- package/dist/esm/{intlTelInput-C-F-rxZ3.js → intlTelInput-CBN9egFg.js} +1 -1
- package/dist/esm/loader.js +3 -3
- 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 +152 -7
- 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 +11 -11
- 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 +45 -34
- 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 +3 -3
- package/dist/esm/salla-conditional-offer.entry.js +1 -1
- package/dist/esm/salla-contacts.entry.js +1 -1
- 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 +2 -2
- 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_2.entry.js +2 -2
- package/dist/esm/salla-gifting.entry.js +2 -2
- 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 +1 -1
- 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 +2 -2
- 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 +3 -3
- package/dist/esm/salla-search.entry.js +2 -2
- package/dist/esm/salla-skeleton.entry.js +2 -2
- package/dist/esm/salla-social-share.entry.js +2 -2
- package/dist/esm/salla-social.entry.js +2 -2
- package/dist/esm/salla-tab-content_3.entry.js +4 -4
- package/dist/esm/salla-tiered-offer.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 +2 -2
- 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 +2 -2
- package/dist/esm/salla-wishlist-summary.entry.js +1 -1
- package/dist/esm/twilight.js +3 -3
- package/dist/esm/{vanilla-picker-DMAcm04D.js → vanilla-picker-CiLp9ysz.js} +1 -1
- package/dist/twilight/{p-e6de2f79.entry.js → p-01b4b05f.entry.js} +1 -1
- package/dist/twilight/{p-c1eab306.entry.js → p-0433773a.entry.js} +1 -1
- package/dist/twilight/p-0Tl_yZW8.js +5 -0
- package/dist/twilight/{p-5c313f74.entry.js → p-0c26bedf.entry.js} +1 -1
- package/dist/twilight/{p-f92f10c7.entry.js → p-0cc42e36.entry.js} +1 -1
- package/dist/twilight/{p-4b175320.entry.js → p-0fe961e0.entry.js} +1 -1
- package/dist/twilight/{p-fa3c4bcf.entry.js → p-14c9ed90.entry.js} +1 -1
- package/dist/twilight/{p-2f1c8e60.entry.js → p-179595d9.entry.js} +1 -1
- package/dist/twilight/{p-e3c46eea.entry.js → p-17f2114f.entry.js} +1 -1
- package/dist/twilight/{p-9d0658a0.entry.js → p-183e02ac.entry.js} +1 -1
- package/dist/twilight/{p-a5c693c1.entry.js → p-1892ea42.entry.js} +1 -1
- package/dist/twilight/{p-6dcfc119.entry.js → p-1abcc81d.entry.js} +1 -1
- package/dist/twilight/p-1bf7cce7.entry.js +4 -0
- package/dist/twilight/{p-9b01e5c2.entry.js → p-220338b4.entry.js} +1 -1
- package/dist/twilight/{p-9c284764.entry.js → p-253a352c.entry.js} +1 -1
- package/dist/twilight/{p-46ef2b4e.entry.js → p-26adf02d.entry.js} +1 -1
- package/dist/twilight/{p-78d1e145.entry.js → p-288627a2.entry.js} +1 -1
- package/dist/twilight/{p-8e938bfa.entry.js → p-299e7413.entry.js} +1 -1
- package/dist/twilight/{p-49f2ad4a.entry.js → p-2ac1eac9.entry.js} +1 -1
- package/dist/twilight/{p-426ac7ab.entry.js → p-2cbed601.entry.js} +1 -1
- package/dist/twilight/{p-ff65be76.entry.js → p-2d2db627.entry.js} +1 -1
- package/dist/twilight/{p-71372771.entry.js → p-2da1eb61.entry.js} +1 -1
- package/dist/twilight/{p-3d535509.entry.js → p-31253c2d.entry.js} +1 -1
- package/dist/twilight/{p-caec4a90.entry.js → p-35d5e339.entry.js} +1 -1
- package/dist/twilight/{p-170a29db.entry.js → p-3b5fe2ef.entry.js} +1 -1
- package/dist/twilight/{p-bb4a95d9.entry.js → p-3d533d87.entry.js} +1 -1
- package/dist/twilight/{p-18b786f4.entry.js → p-40be8baa.entry.js} +1 -1
- package/dist/twilight/{p-acd9c538.entry.js → p-42426756.entry.js} +1 -1
- package/dist/twilight/{p-1a7bee69.entry.js → p-4432411c.entry.js} +1 -1
- package/dist/twilight/{p-4b135194.entry.js → p-449eae1d.entry.js} +1 -1
- package/dist/twilight/{p-1aaed68f.entry.js → p-44afcd79.entry.js} +1 -1
- package/dist/twilight/{p-2e971549.entry.js → p-4701a008.entry.js} +1 -1
- package/dist/twilight/{p-0bee12ba.entry.js → p-4d852a57.entry.js} +1 -1
- package/dist/twilight/{p-a1d251d4.entry.js → p-4d879cd3.entry.js} +1 -1
- package/dist/twilight/{p-c1eaf8c3.entry.js → p-52e7b4f6.entry.js} +1 -1
- package/dist/twilight/{p-3d7fdd11.entry.js → p-5cc28510.entry.js} +1 -1
- package/dist/twilight/{p-42d6eb6b.entry.js → p-636ffc46.entry.js} +1 -1
- package/dist/twilight/{p-9d680306.entry.js → p-6561d5d3.entry.js} +1 -1
- package/dist/twilight/{p-d11b211f.entry.js → p-65665ee3.entry.js} +1 -1
- package/dist/twilight/{p-06268aeb.entry.js → p-6db61be2.entry.js} +1 -1
- package/dist/twilight/{p-a0e1d5f7.entry.js → p-75fc9b99.entry.js} +1 -1
- package/dist/twilight/{p-f5605df6.entry.js → p-775f9b02.entry.js} +1 -1
- package/dist/twilight/{p-36ac5a06.entry.js → p-7bee2390.entry.js} +1 -1
- package/dist/twilight/{p-7f23b98d.entry.js → p-7c038d9d.entry.js} +1 -1
- package/dist/twilight/{p-51d7a9f2.entry.js → p-7c06ad6a.entry.js} +1 -1
- package/dist/twilight/{p-e34ff202.entry.js → p-7f59893d.entry.js} +1 -1
- package/dist/twilight/{p-40a7f8c6.entry.js → p-80f27669.entry.js} +1 -1
- package/dist/twilight/{p-ce0c6667.entry.js → p-821e9049.entry.js} +1 -1
- package/dist/twilight/{p-a32fb61e.entry.js → p-85ab4182.entry.js} +1 -1
- package/dist/twilight/{p-398e864d.entry.js → p-8d369871.entry.js} +1 -1
- package/dist/twilight/{p-fb8395de.entry.js → p-8e013db1.entry.js} +1 -1
- package/dist/twilight/{p-e3066c95.entry.js → p-918fa44a.entry.js} +1 -1
- package/dist/twilight/{p-8ec3b9f0.entry.js → p-933807d7.entry.js} +1 -1
- package/dist/twilight/{p-da14ac3f.entry.js → p-9434c23f.entry.js} +1 -1
- package/dist/twilight/{p-2d983198.entry.js → p-95b89c32.entry.js} +1 -1
- package/dist/twilight/{p-2059ac26.entry.js → p-99e615a1.entry.js} +1 -1
- package/dist/twilight/{p-833fb416.entry.js → p-9a818822.entry.js} +1 -1
- package/dist/twilight/{p-CtQLzZ1X.js → p-BABHygiN.js} +1 -1
- package/dist/twilight/{p-D_C0F9n5.js → p-BDO2BBmv.js} +1 -1
- package/dist/twilight/p-BS2iQKah.js +4 -0
- package/dist/twilight/{p-C3HaKgMG.js → p-BZHrTB2v.js} +1 -1
- package/dist/twilight/{p-BOWrmsKT.js → p-CZkK9lyS.js} +1 -1
- package/dist/twilight/{p-xX3a9YdQ.js → p-Cbnu3aaI.js} +1 -1
- package/dist/twilight/{p-CjeoBv5q.js → p-CxpHph5p.js} +1 -1
- package/dist/twilight/{p-BJxBnTgv.js → p-DgRxTSyJ.js} +1 -1
- package/dist/twilight/{p-Dq91sWJh.js → p-MugjBhYh.js} +1 -1
- package/dist/twilight/p-YTWgVZ0u.js +9 -0
- package/dist/twilight/{p-f08ff103.entry.js → p-a263bdbb.entry.js} +1 -1
- package/dist/twilight/{p-a192abb7.entry.js → p-a735c70e.entry.js} +1 -1
- package/dist/twilight/{p-52b99743.entry.js → p-a764bfe7.entry.js} +1 -1
- package/dist/twilight/{p-ca47204f.entry.js → p-ad9dcb47.entry.js} +1 -1
- package/dist/twilight/{p-6b277129.entry.js → p-ae22bfeb.entry.js} +1 -1
- package/dist/twilight/{p-635cf0ae.entry.js → p-aec2d723.entry.js} +1 -1
- package/dist/twilight/{p-f69a3e84.entry.js → p-aee17b8b.entry.js} +1 -1
- package/dist/twilight/{p-ce7450a9.entry.js → p-af12fce1.entry.js} +1 -1
- package/dist/twilight/{p-13215fa2.entry.js → p-b01764d0.entry.js} +1 -1
- package/dist/twilight/{p-b7399739.entry.js → p-b0d66765.entry.js} +1 -1
- package/dist/twilight/{p-62842639.entry.js → p-b566bc10.entry.js} +1 -1
- package/dist/twilight/p-b81474c4.entry.js +4 -0
- package/dist/twilight/{p-e0ce5d4c.entry.js → p-b9d2ae8a.entry.js} +1 -1
- package/dist/twilight/{p-6a68c551.entry.js → p-bc3ad6d2.entry.js} +1 -1
- package/dist/twilight/{p-35163279.entry.js → p-bf3fdf6d.entry.js} +1 -1
- package/dist/twilight/{p-47e519e4.entry.js → p-c394f30a.entry.js} +1 -1
- package/dist/twilight/{p-d62c6529.entry.js → p-cc7c4469.entry.js} +1 -1
- package/dist/twilight/{p-81294230.entry.js → p-ce9b6ac6.entry.js} +1 -1
- package/dist/twilight/{p-21358994.entry.js → p-d05e1bfd.entry.js} +1 -1
- package/dist/twilight/{p-b70cdf88.entry.js → p-d744234e.entry.js} +1 -1
- package/dist/twilight/{p-f7b65338.entry.js → p-d851751c.entry.js} +1 -1
- package/dist/twilight/{p-540992c1.entry.js → p-dc129d7a.entry.js} +1 -1
- package/dist/twilight/{p-adfc54e4.entry.js → p-ddc61bff.entry.js} +1 -1
- package/dist/twilight/{p-efb67446.entry.js → p-deb1139c.entry.js} +1 -1
- package/dist/twilight/{p-a1d0c650.entry.js → p-e429b1e5.entry.js} +1 -1
- package/dist/twilight/{p-2e204cbc.entry.js → p-e8cb4cd9.entry.js} +1 -1
- package/dist/twilight/{p-2308e70c.entry.js → p-e8fa4bd0.entry.js} +1 -1
- package/dist/twilight/{p-27366663.entry.js → p-e9372ca0.entry.js} +1 -1
- package/dist/twilight/{p-7f93ea69.entry.js → p-e955b287.entry.js} +1 -1
- package/dist/twilight/{p-ea07afaa.entry.js → p-eb590773.entry.js} +1 -1
- package/dist/twilight/{p-1762cfe3.entry.js → p-f176c43e.entry.js} +1 -1
- package/dist/twilight/p-f445e7a3.entry.js +4 -0
- package/dist/twilight/{p-6e7a12dd.entry.js → p-f4cff5cf.entry.js} +1 -1
- package/dist/twilight/{p-700cf9fc.entry.js → p-f828fefc.entry.js} +1 -1
- package/dist/twilight/{p-48f9cd45.entry.js → p-f92d1971.entry.js} +1 -1
- package/dist/twilight/{p-DVatlmKV.js → p-fP9RBas5.js} +1 -1
- package/dist/twilight/{p-e1d59b7e.entry.js → p-fb527b4d.entry.js} +1 -1
- package/dist/twilight/{p-efb9f953.entry.js → p-fe27963f.entry.js} +1 -1
- package/dist/twilight/{p-328e352d.entry.js → p-fea37c8c.entry.js} +1 -1
- package/dist/twilight/{p-1dc68727.entry.js → p-fef5c118.entry.js} +1 -1
- package/dist/twilight/twilight.esm.js +1 -1
- package/dist/types/components/salla-add-product-button/salla-add-product-button.d.ts +16 -0
- package/dist/types/components/salla-bullet-delivery/salla-bullet-delivery.d.ts +12 -0
- package/dist/types/components/salla-order-options-modal/apple-pay-order-options.d.ts +2 -0
- package/dist/types/components/salla-search/search-response.d.ts +1 -0
- package/package.json +5 -5
- package/dist/twilight/p-3845541d.entry.js +0 -4
- package/dist/twilight/p-38956156.entry.js +0 -4
- package/dist/twilight/p-UnmOIma5.js +0 -5
- package/dist/twilight/p-b5d6ddd7.entry.js +0 -4
- package/dist/twilight/p-iC3SM6Ji.js +0 -9
- package/dist/twilight/p-s0kn7yr8.js +0 -4
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
5
5
|
import { P as PendingOrdersIcon } from './cart.js';
|
|
6
6
|
import { H as Helper } from './Helper.js';
|
|
7
|
-
import { i as injectFreeProductsIntoPayload, d as defineCustomElement$3, c as canCompleteApplePay } from './salla-quick-buy2.js';
|
|
7
|
+
import { i as injectFreeProductsIntoPayload, d as defineCustomElement$3, c as canCompleteApplePay, a as isApplePayHostedRedirect } from './salla-quick-buy2.js';
|
|
8
|
+
import { e as ensureOrderOptionsModal, a as appendOrderOptionsToPayload } from './apple-pay-order-options.js';
|
|
8
9
|
import { d as defineCustomElement$h } from './salla-attachment-view2.js';
|
|
9
10
|
import { d as defineCustomElement$g } from './salla-booking-field2.js';
|
|
10
11
|
import { d as defineCustomElement$f } from './salla-button2.js';
|
|
@@ -257,7 +258,7 @@ class FastCheckoutGate {
|
|
|
257
258
|
}
|
|
258
259
|
}
|
|
259
260
|
|
|
260
|
-
const sallaAddProductButtonCss = "/*!twlt*/:host{display:block}salla-add-product-button[width=wide]{width:100%}.sticky{position:sticky}.hidden{display:none}.w-full{width:100%}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.s-hidden{display:none}.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}.s-hidden{display:none}.s-add-product-button-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.s-add-product-button-with-quick-buy{display:flex}@media (min-width: 640px){.s-add-product-button-with-quick-buy{flex-direction:column}}.s-add-product-button-with-quick-buy:not(.s-add-product-button-with-sticky-bar){flex-direction:column !important}.s-add-product-button-main{display:flex;width:66.666667%;column-gap:0.375rem}@media (min-width: 640px){.s-add-product-button-main{width:100%;column-gap:0.625rem}}.s-add-product-button-with-sticky-bar salla-quick-buy{width:33.333333%}@media (min-width: 640px){.s-add-product-button-with-sticky-bar salla-quick-buy{width:100%}}.s-add-product-button-with-quick-buy:not(.s-add-product-button-with-sticky-bar) .s-add-product-button-main{width:100%}.s-add-product-button-with-quick-buy:not(.s-add-product-button-with-apple-pay) .s-add-product-button-main{width:100%}.s-add-product-button-main:not(.w-full)>salla-button{width:50% !important}.s-add-product-button-main .s-add-product-button-mini-checkout{--salla-fast-checkout-button-border-radius:.75rem;width:50%}.s-add-product-button-with-sticky-bar{width:100% !important}@media (min-width: 640px){.s-add-product-button-with-sticky-bar{width:auto}}.s-add-product-button-with-apple-pay{column-gap:0.375rem}@media (min-width: 640px){.s-add-product-button-with-apple-pay{column-gap:unset}}.s-add-product-button-with-apple-pay:not(.s-add-product-button-with-sticky-bar) salla-quick-buy apple-pay-button{margin-top:0.625rem}.s-add-product-button-with-sticky-bar salla-quick-buy .s-quick-buy-button .s-button-text span{display:none}@media (min-width: 768px){.s-add-product-button-with-sticky-bar salla-quick-buy .s-quick-buy-button .s-button-text span{display:block}}.s-add-product-button-mini-checkout-content{display:flex;flex-shrink:0;align-items:center;white-space:nowrap;font-size:.8rem}@media (min-width: 640px){.s-add-product-button-mini-checkout-content{font-size:0.875rem;line-height:1.25rem}}.s-add-product-button-mini-checkout-content:where([dir=\"rtl\"],[dir=\"rtl\"] *){flex-direction:row-reverse}.s-add-product-button-mini-checkout-content svg{margin-right:0.375rem;height:1rem;width:1rem;fill:currentColor}.s-add-product-button-mini-checkout-content svg:where([dir=\"rtl\"],[dir=\"rtl\"] *){margin-right:0px;margin-left:0.375rem}.s-add-product-button-busy{pointer-events:none;position:relative}.s-add-product-button-busy::after{position:absolute;top:50%;left:50%;z-index:10;height:1rem;width:1rem;--tw-translate-x:-50%;content:var(--tw-content);--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{content:var(--tw-content);transform:rotate(360deg)}}.s-add-product-button-busy::after{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)}";
|
|
261
|
+
const sallaAddProductButtonCss = "/*!twlt*/:host{display:block}salla-add-product-button[width=wide]{width:100%}.s-add-product-button-buy-now{display:block;font-family:'PingARLT';font-weight:normal}.s-add-product-button-buy-now .s-fast-checkout-button{display:flex;align-items:center;justify-content:center;height:var(--salla-fast-checkout-button-height, 2.5rem);width:var(--salla-fast-checkout-button-width, 100%);border-radius:var(--salla-fast-checkout-button-border-radius, 0.375rem);font-size:0.875rem;font-weight:bold;text-transform:uppercase;cursor:pointer;transition:all 0.3s ease-in-out;border:none;font-family:'PingARLT';gap:5px;direction:ltr;border-width:1px;border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-primary-reverse);padding:1px 6px;line-height:normal;letter-spacing:normal;outline:none}.s-add-product-button-buy-now .s-fast-checkout-button:focus-visible{outline:auto}.s-add-product-button-buy-now .s-fast-checkout-button:hover{background-color:var(--color-primary)}.s-add-product-button-buy-now .s-fast-checkout-button.outline{background-color:transparent;border:1px solid var(--color-primary);color:var(--color-primary)}.s-add-product-button-buy-now .s-fast-checkout-button.rtl{flex-direction:row-reverse}.s-add-product-button-buy-now .s-fast-checkout-button:disabled{cursor:progress;opacity:0.7}.sticky{position:sticky}.hidden{display:none}.w-full{width:100%}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.s-hidden{display:none}.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}.s-hidden{display:none}.s-add-product-button-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.s-add-product-button-with-quick-buy{display:flex}@media (min-width: 640px){.s-add-product-button-with-quick-buy{flex-direction:column}}.s-add-product-button-with-quick-buy:not(.s-add-product-button-with-sticky-bar){flex-direction:column !important}.s-add-product-button-main{display:flex;width:66.666667%;column-gap:0.375rem}@media (min-width: 640px){.s-add-product-button-main{width:100%;column-gap:0.625rem}}.s-add-product-button-with-sticky-bar salla-quick-buy{width:33.333333%}@media (min-width: 640px){.s-add-product-button-with-sticky-bar salla-quick-buy{width:100%}}.s-add-product-button-with-quick-buy:not(.s-add-product-button-with-sticky-bar) .s-add-product-button-main{width:100%}.s-add-product-button-with-quick-buy:not(.s-add-product-button-with-apple-pay) .s-add-product-button-main{width:100%}.s-add-product-button-main:not(.w-full)>salla-button{width:50% !important}.s-add-product-button-main .s-add-product-button-mini-checkout{--salla-fast-checkout-button-border-radius:.75rem;width:50%}.s-add-product-button-with-sticky-bar{width:100% !important}@media (min-width: 640px){.s-add-product-button-with-sticky-bar{width:auto}}.s-add-product-button-with-apple-pay{column-gap:0.375rem}@media (min-width: 640px){.s-add-product-button-with-apple-pay{column-gap:unset}}.s-add-product-button-with-apple-pay:not(.s-add-product-button-with-sticky-bar) salla-quick-buy apple-pay-button{margin-top:0.625rem}.s-add-product-button-with-sticky-bar salla-quick-buy .s-quick-buy-button .s-button-text span{display:none}@media (min-width: 768px){.s-add-product-button-with-sticky-bar salla-quick-buy .s-quick-buy-button .s-button-text span{display:block}}.s-add-product-button-mini-checkout-content{display:flex;flex-shrink:0;align-items:center;white-space:nowrap;font-size:.8rem}@media (min-width: 640px){.s-add-product-button-mini-checkout-content{font-size:0.875rem;line-height:1.25rem}}.s-add-product-button-mini-checkout-content:where([dir=\"rtl\"],[dir=\"rtl\"] *){flex-direction:row-reverse}.s-add-product-button-mini-checkout-content svg{margin-right:0.375rem;height:1rem;width:1rem;fill:currentColor}.s-add-product-button-mini-checkout-content svg:where([dir=\"rtl\"],[dir=\"rtl\"] *){margin-right:0px;margin-left:0.375rem}.s-add-product-button-busy{pointer-events:none;position:relative}.s-add-product-button-busy::after{position:absolute;top:50%;left:50%;z-index:10;height:1rem;width:1rem;--tw-translate-x:-50%;content:var(--tw-content);--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{content:var(--tw-content);transform:rotate(360deg)}}.s-add-product-button-busy::after{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)}";
|
|
261
262
|
|
|
262
263
|
const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddProductButton extends HTMLElement {
|
|
263
264
|
constructor() {
|
|
@@ -266,6 +267,11 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
|
|
|
266
267
|
this.success = createEvent(this, "success", 7);
|
|
267
268
|
this.failed = createEvent(this, "failed", 7);
|
|
268
269
|
this.hostAttributes = {};
|
|
270
|
+
this.buyNowBusy = false;
|
|
271
|
+
/** Latest buy-now click; an older click still waiting on Bullet Delivery drops out. */
|
|
272
|
+
this.buyNowToken = 0;
|
|
273
|
+
this.buyNowLastClick = 0;
|
|
274
|
+
this.buyNowLivePrice = 0;
|
|
269
275
|
/**
|
|
270
276
|
* Has Pre Order
|
|
271
277
|
*/
|
|
@@ -280,6 +286,7 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
|
|
|
280
286
|
this.productType = 'product';
|
|
281
287
|
this.selectedOptions = [];
|
|
282
288
|
this.buyNowText = salla.lang.get('pages.products.buy_now');
|
|
289
|
+
this.buyNowLoading = false;
|
|
283
290
|
/** Use matchMedia instead of window.innerWidth to avoid forced reflow (Lighthouse/PageSpeed) */
|
|
284
291
|
this.isDesktopViewport = typeof window !== 'undefined' ? window.matchMedia('(min-width: 768px)').matches : true;
|
|
285
292
|
this.viewportMediaQuery = null;
|
|
@@ -287,6 +294,9 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
|
|
|
287
294
|
this.orderOptionsGateAttached = false;
|
|
288
295
|
/** Guards one-time attachment of the fast-checkout Bullet Delivery gate (logic lives in FastCheckoutGate). */
|
|
289
296
|
this.fastCheckoutGateAttached = false;
|
|
297
|
+
this.onBuyNowPriceUpdated = (response) => {
|
|
298
|
+
this.buyNowLivePrice = Number(response?.data?.price) || this.buyNowLivePrice;
|
|
299
|
+
};
|
|
290
300
|
this.onViewportChange = (e) => {
|
|
291
301
|
this.isDesktopViewport = e.matches;
|
|
292
302
|
this.btn?.setText((e.matches && !!this.passedLabel) ? this.passedLabel : this.getLabel());
|
|
@@ -414,6 +424,105 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
|
|
|
414
424
|
type: this.supportStickyBar && !this.isDesktopViewport ? 'plain' : this.productType == 'donating' ? 'donate' : 'buy'
|
|
415
425
|
};
|
|
416
426
|
}
|
|
427
|
+
// Store setting: quick-buy skips the mini-checkout popup and goes straight to the checkout page.
|
|
428
|
+
get redirectsToCheckout() {
|
|
429
|
+
return salla.config.get('store.settings.buy_now.redirect_to_checkout') === true;
|
|
430
|
+
}
|
|
431
|
+
/** The fast-checkout slot renders and the store redirects, so the buy-now button is on the page. */
|
|
432
|
+
get showsBuyNowButton() {
|
|
433
|
+
return this.showQuickBuy
|
|
434
|
+
&& !!document.getElementById('fast-checkout-js')
|
|
435
|
+
&& !['financial_support', 'donating'].includes(this.productType)
|
|
436
|
+
&& this.redirectsToCheckout;
|
|
437
|
+
}
|
|
438
|
+
buyNowButton() {
|
|
439
|
+
return h("div", { class: "s-add-product-button-mini-checkout s-mini-checkout hide-scroll s-add-product-button-buy-now" }, h("button", { type: "button", class: `s-fast-checkout-button outline ${salla.lang.locale == 'ar' ? 'rtl' : 'ltr'}`, disabled: this.buyNowLoading, onClick: () => this.buyNowRedirect() }, h("div", { class: "s-add-product-button-mini-checkout-content" }, h("span", { innerHTML: WalletIcon }), this.buyNowText)));
|
|
440
|
+
}
|
|
441
|
+
async buyNowRedirect() {
|
|
442
|
+
// A double-click would reach Bullet Delivery twice, which stalls its guest gate.
|
|
443
|
+
const now = Date.now();
|
|
444
|
+
if (this.buyNowBusy || now - this.buyNowLastClick < 500) {
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
447
|
+
this.buyNowLastClick = now;
|
|
448
|
+
const token = ++this.buyNowToken;
|
|
449
|
+
const optionsEl = document.querySelector(`salla-product-options[product-id="${this.productId}"]`);
|
|
450
|
+
if (optionsEl?.validateAndScroll && !(await optionsEl.validateAndScroll())) {
|
|
451
|
+
return;
|
|
452
|
+
}
|
|
453
|
+
// Bullet Delivery's address gate, as the widget runs it; stays pending if the shopper backs out.
|
|
454
|
+
await salla.cart.event.beforeStartFastCheckout();
|
|
455
|
+
if (token !== this.buyNowToken || this.buyNowBusy) {
|
|
456
|
+
return;
|
|
457
|
+
}
|
|
458
|
+
this.buyNowBusy = true;
|
|
459
|
+
let leaving = false;
|
|
460
|
+
try {
|
|
461
|
+
this.buyNowLoading = true;
|
|
462
|
+
const form = document.querySelector('form.product-form');
|
|
463
|
+
const data = form ? new FormData(form) : new FormData();
|
|
464
|
+
data.set('id', String(this.productId));
|
|
465
|
+
data.set('source', 'buy_now');
|
|
466
|
+
if (!(await this.collectOrderOptions(data))) {
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
const resp = await salla.api.request('checkout/mini', data, 'post');
|
|
470
|
+
if (resp.data?.url) {
|
|
471
|
+
leaving = this.openCheckout(resp.data.url);
|
|
472
|
+
}
|
|
473
|
+
else if (resp.data?.to === 'login') {
|
|
474
|
+
salla.event.dispatch('login::open');
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
catch (error) {
|
|
478
|
+
this.failed.emit(error);
|
|
479
|
+
}
|
|
480
|
+
finally {
|
|
481
|
+
if (!leaving) {
|
|
482
|
+
this.buyNowBusy = false;
|
|
483
|
+
this.buyNowLoading = false;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
/** Order options and free offer products, as the widget collects them; false when the modal is dismissed. */
|
|
488
|
+
async collectOrderOptions(data) {
|
|
489
|
+
let resp;
|
|
490
|
+
try {
|
|
491
|
+
resp = await salla.api.withoutNotifier(() => salla.product.api.getOrderOptions([{ id: this.productId, quantity: Number(data.get('quantity')) || 1 }]));
|
|
492
|
+
}
|
|
493
|
+
catch (error) {
|
|
494
|
+
salla?.logger?.warn?.('order-options: fetch failed', error);
|
|
495
|
+
return true;
|
|
496
|
+
}
|
|
497
|
+
const orderOptions = resp?.data?.order_options || [];
|
|
498
|
+
const freeProducts = (Array.isArray(resp?.data?.advance_free_product) ? resp.data.advance_free_product : [])
|
|
499
|
+
.filter((entry) => Array.isArray(entry?.options) && entry.options.length);
|
|
500
|
+
if (!orderOptions.length && !freeProducts.length) {
|
|
501
|
+
return true;
|
|
502
|
+
}
|
|
503
|
+
try {
|
|
504
|
+
const result = await ensureOrderOptionsModal().open({
|
|
505
|
+
orderOptions,
|
|
506
|
+
freeProducts,
|
|
507
|
+
basePrice: this.buyNowLivePrice || Number(resp?.data?.products?.[0]?.price?.amount) || 0,
|
|
508
|
+
});
|
|
509
|
+
appendOrderOptionsToPayload(data, result?.orderOptions || []);
|
|
510
|
+
injectFreeProductsIntoPayload(data, result?.freeProducts || []);
|
|
511
|
+
return true;
|
|
512
|
+
}
|
|
513
|
+
catch {
|
|
514
|
+
return false;
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
/** Native SPA webviews own the checkout screen; returns true when this page navigates away. */
|
|
518
|
+
openCheckout(url) {
|
|
519
|
+
if (salla.mobile?.isSpaWebview?.() && salla.mobile.openCheckout) {
|
|
520
|
+
salla.mobile.openCheckout(url);
|
|
521
|
+
return false;
|
|
522
|
+
}
|
|
523
|
+
window.location.href = url;
|
|
524
|
+
return true;
|
|
525
|
+
}
|
|
417
526
|
miniCheckoutWidget() {
|
|
418
527
|
let storeId = salla.config.get('store.id');
|
|
419
528
|
if (!storeId) {
|
|
@@ -432,8 +541,11 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
|
|
|
432
541
|
&& this.productType !== 'booking';
|
|
433
542
|
// Cross-browser Apple Pay: native (Safari) OR the Payment Request API
|
|
434
543
|
// (non-Safari browsers / non-Apple devices via the QR-code fallback).
|
|
544
|
+
// Hosted (MyFatoorah, S2S off) Apple Pay has no native sheet and no buy-now redirect
|
|
545
|
+
// path, so the quick-buy button below must not render for it either.
|
|
435
546
|
this.isApplePayActive = salla.config.get('store.settings.payments')?.includes('apple_pay')
|
|
436
547
|
&& salla.config.get('store.settings.is_salla_gateway', false)
|
|
548
|
+
&& !isApplePayHostedRedirect()
|
|
437
549
|
&& await canCompleteApplePay();
|
|
438
550
|
this.passedLabel = this.host.innerHTML.replace('<!---->', '').trim();
|
|
439
551
|
if (!!this.passedLabel && this.isDesktopViewport) {
|
|
@@ -463,11 +575,14 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
|
|
|
463
575
|
} }, h("div", { class: {
|
|
464
576
|
's-add-product-button-main': this.showQuickBuy,
|
|
465
577
|
'w-full': !document.getElementById('fast-checkout-js') || ['financial_support', 'donating'].includes(this.productType) // This is a temporary fix until all themes fully support the fast checkout -- To be removed later
|
|
466
|
-
} }, h("salla-button", { color: this.productStatus === 'sale' ? 'primary' : 'light', type: "button", fill: this.productStatus === 'sale' ? 'solid' : 'outline', ref: el => this.btn = el, onClick: event => this.addProductToCart(event), disabled: this.productStatus !== 'sale', "aria-label": this.isIconOnlyLabel ? this.addToCartLabel : undefined, ...this.getBtnAttributes(), "loader-position": "center" }, h("slot", null)), this.showQuickBuy && !!document.getElementById('fast-checkout-js') && !['financial_support', 'donating'].includes(this.productType) ? this.miniCheckoutWidget() : ''), this.showQuickBuy && this.isApplePayActive ? h("salla-quick-buy", { ...this.getQuickBuyBtnAttributes() }) : '');
|
|
578
|
+
} }, h("salla-button", { color: this.productStatus === 'sale' ? 'primary' : 'light', type: "button", fill: this.productStatus === 'sale' ? 'solid' : 'outline', ref: el => this.btn = el, onClick: event => this.addProductToCart(event), disabled: this.productStatus !== 'sale', "aria-label": this.isIconOnlyLabel ? this.addToCartLabel : undefined, ...this.getBtnAttributes(), "loader-position": "center" }, h("slot", null)), this.showQuickBuy && !!document.getElementById('fast-checkout-js') && !['financial_support', 'donating'].includes(this.productType) ? (this.redirectsToCheckout ? this.buyNowButton() : this.miniCheckoutWidget()) : ''), this.showQuickBuy && this.isApplePayActive ? h("salla-quick-buy", { ...this.getQuickBuyBtnAttributes() }) : '');
|
|
467
579
|
}
|
|
468
580
|
async componentDidLoad() {
|
|
469
581
|
// Register this component for hooks system, already on it logic to run componentDidLoad trigger
|
|
470
582
|
await Salla.hooks.registerComponent('salla-add-product-button', this);
|
|
583
|
+
if (this.showsBuyNowButton) {
|
|
584
|
+
salla.product?.event?.onPriceUpdated?.(this.onBuyNowPriceUpdated);
|
|
585
|
+
}
|
|
471
586
|
if (!this.notifyOptionsAvailability) {
|
|
472
587
|
return;
|
|
473
588
|
}
|
|
@@ -516,6 +631,7 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
|
|
|
516
631
|
}
|
|
517
632
|
disconnectedCallback() {
|
|
518
633
|
this.viewportMediaQuery?.removeEventListener('change', this.onViewportChange);
|
|
634
|
+
salla.product?.event?.offPriceUpdated?.(this.onBuyNowPriceUpdated);
|
|
519
635
|
}
|
|
520
636
|
get host() { return this; }
|
|
521
637
|
static get style() { return sallaAddProductButtonCss; }
|
|
@@ -537,6 +653,7 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
|
|
|
537
653
|
"showQuickBuy": [32],
|
|
538
654
|
"isApplePayActive": [32],
|
|
539
655
|
"buyNowText": [32],
|
|
656
|
+
"buyNowLoading": [32],
|
|
540
657
|
"isDesktopViewport": [32]
|
|
541
658
|
}]);
|
|
542
659
|
function defineCustomElement() {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Crafted with ❤ by Salla
|
|
3
3
|
*/
|
|
4
4
|
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
5
|
-
import { i as isSaudiArabia, b as bulletDeliveryAPI, r as requireRegionAndDistrictForSA, g as getIntentLatitude, a as getIntentLongitude, h as hasSessionAddressIntent, c as getIntentCityId, d as getIntentCountryId, e as getIntentRegionId, f as getIntentDistrictId, j as
|
|
5
|
+
import { i as isSaudiArabia, b as bulletDeliveryAPI, r as requireRegionAndDistrictForSA, g as getIntentLatitude, a as getIntentLongitude, h as hasSessionAddressIntent, c as getIntentCityId, d as getIntentCountryId, e as getIntentRegionId, f as getIntentDistrictId, j as isBranchSelectable, k as filterBranches, l as getIntentBranchId, m as findNearestBranch, n as getGeolocationErrorMessage, o as clearApiCache, p as getIntentSubtitle, q as isMapOriginIntent, s as getIntentCountryCode } from './helpers.js';
|
|
6
6
|
import { S as SILocation } from './location.js';
|
|
7
7
|
import { S as Search } from './search.js';
|
|
8
8
|
import { d as defineCustomElement$7 } from './salla-button2.js';
|
|
@@ -500,10 +500,7 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
|
|
|
500
500
|
}
|
|
501
501
|
// Auto-select preselected branch if provided
|
|
502
502
|
if (this.preselectedBranchId) {
|
|
503
|
-
|
|
504
|
-
if (branch) {
|
|
505
|
-
this.selectedBranch = branch;
|
|
506
|
-
}
|
|
503
|
+
this.preselectBranch(this.preselectedBranchId);
|
|
507
504
|
}
|
|
508
505
|
}
|
|
509
506
|
// Prefill form data from session storage
|
|
@@ -954,15 +951,30 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
|
|
|
954
951
|
async loadBranches() {
|
|
955
952
|
this.loadingBranches = true;
|
|
956
953
|
try {
|
|
957
|
-
this.
|
|
954
|
+
this.applyLoadedBranches(await bulletDeliveryAPI.getBranches({
|
|
958
955
|
country_id: this.selectedCountry?.id,
|
|
959
|
-
});
|
|
960
|
-
this.filterBranches();
|
|
956
|
+
}));
|
|
961
957
|
}
|
|
962
958
|
finally {
|
|
963
959
|
this.loadingBranches = false;
|
|
964
960
|
}
|
|
965
961
|
}
|
|
962
|
+
/**
|
|
963
|
+
* Store a freshly fetched branch list and reconcile the current selection with it.
|
|
964
|
+
* `selectedBranch` is a snapshot from selection time: when the refreshed list carries the
|
|
965
|
+
* same branch, swap in the fresh copy, and drop it if it is no longer selectable (INV-1407).
|
|
966
|
+
* A selection missing from the list (e.g. filtered out by a search) is left untouched.
|
|
967
|
+
*/
|
|
968
|
+
applyLoadedBranches(branches) {
|
|
969
|
+
this.branches = branches;
|
|
970
|
+
if (this.selectedBranch) {
|
|
971
|
+
const fresh = branches.find((b) => b.id === this.selectedBranch?.id);
|
|
972
|
+
if (fresh) {
|
|
973
|
+
this.selectedBranch = isBranchSelectable(fresh) ? fresh : null;
|
|
974
|
+
}
|
|
975
|
+
}
|
|
976
|
+
this.filterBranches();
|
|
977
|
+
}
|
|
966
978
|
filterBranches() {
|
|
967
979
|
this.filteredBranches = filterBranches(this.branches, this.branchSearchQuery);
|
|
968
980
|
}
|
|
@@ -989,13 +1001,7 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
|
|
|
989
1001
|
if (country) {
|
|
990
1002
|
this.selectedCountry = country;
|
|
991
1003
|
this.updateNewAddressForm({ country_id: Number(country.id) });
|
|
992
|
-
|
|
993
|
-
if (branchId != null && this.branches.length > 0) {
|
|
994
|
-
const branch = this.branches.find((b) => b.id === branchId);
|
|
995
|
-
if (branch) {
|
|
996
|
-
this.selectedBranch = branch;
|
|
997
|
-
}
|
|
998
|
-
}
|
|
1004
|
+
this.preselectBranch(getIntentBranchId(intent));
|
|
999
1005
|
}
|
|
1000
1006
|
}
|
|
1001
1007
|
}
|
|
@@ -1159,11 +1165,10 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
|
|
|
1159
1165
|
return;
|
|
1160
1166
|
this.loadingBranches = true;
|
|
1161
1167
|
try {
|
|
1162
|
-
this.
|
|
1168
|
+
this.applyLoadedBranches(await bulletDeliveryAPI.getBranches({
|
|
1163
1169
|
country_id: this.selectedCountry?.id,
|
|
1164
1170
|
query,
|
|
1165
|
-
});
|
|
1166
|
-
this.filterBranches();
|
|
1171
|
+
}));
|
|
1167
1172
|
}
|
|
1168
1173
|
finally {
|
|
1169
1174
|
this.loadingBranches = false;
|
|
@@ -1196,12 +1201,11 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
|
|
|
1196
1201
|
async loadBranchesWithLocation(lat, lng) {
|
|
1197
1202
|
this.loadingBranches = true;
|
|
1198
1203
|
try {
|
|
1199
|
-
this.
|
|
1204
|
+
this.applyLoadedBranches(await bulletDeliveryAPI.getBranches({
|
|
1200
1205
|
country_id: this.selectedCountry?.id,
|
|
1201
1206
|
lat,
|
|
1202
1207
|
lng,
|
|
1203
|
-
});
|
|
1204
|
-
this.filterBranches();
|
|
1208
|
+
}));
|
|
1205
1209
|
// Auto-select country from first branch if no country is selected
|
|
1206
1210
|
if (!this.selectedCountry && this.branches.length > 0) {
|
|
1207
1211
|
const firstBranch = this.branches[0];
|
|
@@ -1258,6 +1262,18 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
|
|
|
1258
1262
|
this.selectedBranch = branch;
|
|
1259
1263
|
this.allocationOutOfCoverageMessage = null;
|
|
1260
1264
|
}
|
|
1265
|
+
/**
|
|
1266
|
+
* Restore a remembered / event-provided branch — but only one the list renders as selectable,
|
|
1267
|
+
* so a branch that has closed since it was remembered is never silently preselected (INV-1407).
|
|
1268
|
+
*/
|
|
1269
|
+
preselectBranch(branchId) {
|
|
1270
|
+
if (branchId == null)
|
|
1271
|
+
return;
|
|
1272
|
+
const branch = this.branches.find((b) => b.id === branchId);
|
|
1273
|
+
if (branch && isBranchSelectable(branch)) {
|
|
1274
|
+
this.selectedBranch = branch;
|
|
1275
|
+
}
|
|
1276
|
+
}
|
|
1261
1277
|
handleSavedAddressSelect(address) {
|
|
1262
1278
|
if (address.is_in_coverage === false) {
|
|
1263
1279
|
// Show toast notification for out of coverage address
|
|
@@ -1497,13 +1513,7 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
|
|
|
1497
1513
|
await this.loadBranches();
|
|
1498
1514
|
}
|
|
1499
1515
|
// Preselect branch from session storage if available
|
|
1500
|
-
|
|
1501
|
-
if (branchId != null && this.branches.length > 0) {
|
|
1502
|
-
const branch = this.branches.find((b) => b.id === branchId);
|
|
1503
|
-
if (branch) {
|
|
1504
|
-
this.selectedBranch = branch;
|
|
1505
|
-
}
|
|
1506
|
-
}
|
|
1516
|
+
this.preselectBranch(getIntentBranchId(savedIntent));
|
|
1507
1517
|
}
|
|
1508
1518
|
else if (tab === "address") {
|
|
1509
1519
|
// Lazy-load saved addresses when switching to address tab (if not loaded yet).
|
|
@@ -1532,7 +1542,8 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
|
|
|
1532
1542
|
}
|
|
1533
1543
|
isConfirmDisabled() {
|
|
1534
1544
|
if (this.activeTab === "branch") {
|
|
1535
|
-
|
|
1545
|
+
// Backstop for any selection path: the allocation API rejects non-selectable branches (INV-1407).
|
|
1546
|
+
return !isBranchSelectable(this.selectedBranch);
|
|
1536
1547
|
}
|
|
1537
1548
|
if (this.activeTab === "address") {
|
|
1538
1549
|
if (this.isLoggedIn && this.selectedSessionAddress) {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Crafted with ❤ by Salla
|
|
3
3
|
*/
|
|
4
4
|
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
5
|
-
import {
|
|
5
|
+
import { q as isMapOriginIntent } from './helpers.js';
|
|
6
6
|
import { d as defineCustomElement$6 } from './salla-button2.js';
|
|
7
7
|
import { d as defineCustomElement$5 } from './salla-loading2.js';
|
|
8
8
|
import { d as defineCustomElement$4 } from './salla-modal2.js';
|
|
@@ -6,7 +6,7 @@ import { a as anime } from './anime.es.js';
|
|
|
6
6
|
import { I as IconArrowLeft } from './arrow-left.js';
|
|
7
7
|
import { C as Cancel } from './cancel.js';
|
|
8
8
|
import { S as SIGiftSharing } from './gift-sharing.js';
|
|
9
|
-
import {
|
|
9
|
+
import { a as appendOrderOptionsToPayload } from './apple-pay-order-options.js';
|
|
10
10
|
import { d as defineCustomElement$k } from './salla-attachment-view2.js';
|
|
11
11
|
import { d as defineCustomElement$j } from './salla-booking-field2.js';
|
|
12
12
|
import { d as defineCustomElement$i } from './salla-button2.js';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
5
5
|
import { a as axios } from './axios.js';
|
|
6
|
-
import { r as resolveApplePayOrderOptions,
|
|
6
|
+
import { r as resolveApplePayOrderOptions, b as reportProductOptionsValiditySync, a as appendOrderOptionsToPayload } from './apple-pay-order-options.js';
|
|
7
7
|
import { d as defineCustomElement$e } from './salla-attachment-view2.js';
|
|
8
8
|
import { d as defineCustomElement$d } from './salla-booking-field2.js';
|
|
9
9
|
import { d as defineCustomElement$c } from './salla-button2.js';
|
|
@@ -51,6 +51,23 @@ function applePayMerchantId() {
|
|
|
51
51
|
return salla?.config?.get?.('store.settings.buy_now.merchant_identifier') || null;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Whether the store's Apple Pay is a hosted redirect rather than a native sheet.
|
|
56
|
+
*
|
|
57
|
+
* MyFatoorah Apple Pay without S2S has no native flow: the checkout page hands off as a
|
|
58
|
+
* credit_card redirect to MyFatoorah's hosted page. The buy-now surfaces (PDP, sticky bar)
|
|
59
|
+
* have no redirect path, so they must not offer an Apple Pay button at all.
|
|
60
|
+
*
|
|
61
|
+
* The backend publishes this as a single boolean (`ApplePayFeature::isHostedRedirect`).
|
|
62
|
+
* Compared with `=== true` on purpose: against a backend that predates the field the key is
|
|
63
|
+
* absent, so this returns false and every surface keeps its current behaviour. That is what
|
|
64
|
+
* makes the storefront half safe to ship independently of the backend half.
|
|
65
|
+
* @returns {boolean}
|
|
66
|
+
*/
|
|
67
|
+
function isApplePayHostedRedirect() {
|
|
68
|
+
return salla?.config?.get?.('store.settings.buy_now.hostedRedirect') === true;
|
|
69
|
+
}
|
|
70
|
+
|
|
54
71
|
/**
|
|
55
72
|
* Build the W3C Payment Request `methodData` for the Apple Pay method. Callers
|
|
56
73
|
* supply the values (the probe reads them from config; the live session reads
|
|
@@ -2107,9 +2124,12 @@ const SallaQuickBuy = /*@__PURE__*/ proxyCustomElement(class SallaQuickBuy exten
|
|
|
2107
2124
|
const canMakePayments = typeof window !== 'undefined' && !!window.ApplePaySession?.canMakePayments?.();
|
|
2108
2125
|
const storeHasApplePay = salla?.config?.get?.('store.settings.payments')?.includes?.('apple_pay') ?? true;
|
|
2109
2126
|
const isSallaGateway = salla?.config?.get?.('store.settings.is_salla_gateway', false) ?? true;
|
|
2127
|
+
// Hosted (MyFatoorah, S2S off) Apple Pay has no native sheet and buy-now has no redirect
|
|
2128
|
+
// path, so there is nothing this button could do — don't offer it.
|
|
2129
|
+
const isHostedRedirect = isApplePayHostedRedirect();
|
|
2110
2130
|
// No networks means nothing to charge with, so don't show the button — canMakePayments()
|
|
2111
2131
|
// alone would light it up on Safari.
|
|
2112
|
-
this.isApplePayActive = canMakePayments && storeHasApplePay && isSallaGateway
|
|
2132
|
+
this.isApplePayActive = canMakePayments && storeHasApplePay && isSallaGateway && !isHostedRedirect
|
|
2113
2133
|
&& !!this.resolveSupportedNetworks().length;
|
|
2114
2134
|
const runInit = async () => {
|
|
2115
2135
|
if (!this.productId && salla?.config?.get && salla.url?.is_page) {
|
|
@@ -2138,7 +2158,8 @@ const SallaQuickBuy = /*@__PURE__*/ proxyCustomElement(class SallaQuickBuy exten
|
|
|
2138
2158
|
salla.product.event.onPriceUpdated(response => { this.applyBaseCurrencyPrice(response?.data); });
|
|
2139
2159
|
}
|
|
2140
2160
|
const storeAllowsApplePay = (salla?.config?.get?.('store.settings.payments')?.includes?.('apple_pay') ?? storeHasApplePay)
|
|
2141
|
-
&& (salla?.config?.get?.('store.settings.is_salla_gateway', false) ?? isSallaGateway)
|
|
2161
|
+
&& (salla?.config?.get?.('store.settings.is_salla_gateway', false) ?? isSallaGateway)
|
|
2162
|
+
&& !isApplePayHostedRedirect();
|
|
2142
2163
|
// Preload Apple's JS SDK so the rendered <apple-pay-button> upgrades on
|
|
2143
2164
|
// every flow (native Safari + QR). Fire-and-forget: the element upgrades
|
|
2144
2165
|
// retroactively once the script defines it.
|
|
@@ -2162,7 +2183,16 @@ const SallaQuickBuy = /*@__PURE__*/ proxyCustomElement(class SallaQuickBuy exten
|
|
|
2162
2183
|
});
|
|
2163
2184
|
}
|
|
2164
2185
|
render() {
|
|
2165
|
-
|
|
2186
|
+
// Hosted (MyFatoorah, S2S off) Apple Pay has no native sheet and buy-now has no
|
|
2187
|
+
// redirect path, so render nothing rather than an Apple Pay button that cannot
|
|
2188
|
+
// do Apple Pay. Scoped to the hosted case on purpose: when a store simply has no
|
|
2189
|
+
// Apple Pay, `isApplePayActive` is false too, but there the button is a deliberate
|
|
2190
|
+
// generic buy-now that falls back to `checkout/mini` (see quickBuyHandler), and
|
|
2191
|
+
// direct consumers rely on that.
|
|
2192
|
+
if (isApplePayHostedRedirect()) {
|
|
2193
|
+
return h(Host, null);
|
|
2194
|
+
}
|
|
2195
|
+
return h(Host, null, this.quickBuyButton());
|
|
2166
2196
|
}
|
|
2167
2197
|
quickBuyButton() {
|
|
2168
2198
|
return h("apple-pay-button", { locale: salla?.config?.get?.('user.language_code') || 'ar', onClick: () => this.quickBuyHandler(), "data-quick-purchase": "applepay", class: "s-quick-buy-apple-pay", "data-is-applepay": "1", buttonstyle: "black", type: this.type });
|
|
@@ -2274,4 +2304,4 @@ function defineCustomElement() {
|
|
|
2274
2304
|
}
|
|
2275
2305
|
defineCustomElement();
|
|
2276
2306
|
|
|
2277
|
-
export { SallaQuickBuy as S, canCompleteApplePay as c, defineCustomElement as d, injectFreeProductsIntoPayload as i };
|
|
2307
|
+
export { SallaQuickBuy as S, isApplePayHostedRedirect as a, canCompleteApplePay as c, defineCustomElement as d, injectFreeProductsIntoPayload as i };
|
|
@@ -172,7 +172,7 @@ const SallaReviewCard = /*@__PURE__*/ proxyCustomElement(class SallaReviewCard e
|
|
|
172
172
|
return (h("a", { href: this.review?.product?.url, class: "s-review-card-product-container" }, h("img", { alt: product.image?.alt || "Product", src: product.image?.url, class: "s-review-card-product-image", width: 60, height: 60, loading: "lazy", decoding: "async", draggable: false }), h("div", { class: "s-review-card-product-details" }, h("p", { class: "s-review-card-product-details-name" }, product.name), this.showPurchaseCount ? h("p", { class: "s-review-card-product-details-purchase-count" }, h("span", { innerHTML: IconFire2 }), this.purchasedCount) : null)));
|
|
173
173
|
}
|
|
174
174
|
render() {
|
|
175
|
-
return h("div", { key: '
|
|
175
|
+
return h("div", { key: '44589734c0a8ab8211a50e89e306de7dd53ad679', class: "s-review-card-container" }, this.renderSlider(), this.renderSingleImage(), renderDivider(), h("div", { key: '14e57255f40beab2e4b92724f26f171cdaaf69f4', class: "s-review-card-content" }, this.renderHeader(), h("p", { key: '8f27f7f13b5611a71164dba288f53e53e10e67f0', class: "s-review-card-review-content", innerHTML: this.review?.content }), renderDivider(), this.renderProductInfo()));
|
|
176
176
|
}
|
|
177
177
|
get el() { return this; }
|
|
178
178
|
static get style() { return sallaReviewCardCss; }
|
|
@@ -132,7 +132,7 @@ const SallaReviewFactorsTags = /*@__PURE__*/ proxyCustomElement(class SallaRevie
|
|
|
132
132
|
return (h("div", { class: "s-review-factors-tags-factors" }, factors.map(factor => (h("div", { class: "s-review-factors-tags-factor-tag" }, h("span", { class: "s-review-factors-tags-factor-name" }, factor.name), h("span", { class: "s-review-factors-tags-factor-star", innerHTML: Rate }), h("span", { class: "s-review-factors-tags-factor-rating" }, factor.rating || ''))))));
|
|
133
133
|
}
|
|
134
134
|
render() {
|
|
135
|
-
return (h(Host, { key: '
|
|
135
|
+
return (h(Host, { key: 'f4347eb019e8af95cfa053389887afaa73300f40', class: "s-review-factors-tags-wrapper" }, this.renderFactorTags()));
|
|
136
136
|
}
|
|
137
137
|
static get watchers() { return {
|
|
138
138
|
"factors": ["onPropsChange"],
|
|
@@ -685,7 +685,7 @@ const SallaReviewsPage$1 = /*@__PURE__*/ proxyCustomElement(class SallaReviewsPa
|
|
|
685
685
|
return options.map(option => (h("option", { key: option.value, value: option.value, selected: option.value === this.sort }, option.label)));
|
|
686
686
|
}
|
|
687
687
|
render() {
|
|
688
|
-
return (h("host", { key: '
|
|
688
|
+
return (h("host", { key: '9d393d47dde31817178d398dacf0be9d1961f487' }, h("div", { key: '2109c18f3cf9ebb5769291ee88dc733e2b96759f', class: "s-reviews-page-header-wrapper" }, h("h2", { key: 'f9259ac0832ea3041a517ee3dd8dccb41a3bd903', class: "s-reviews-page-title" }, this.langTitlesReviews, h("span", { key: 'f49098ca0e3f911669c610a310dbf331922e9b8a', class: "s-reviews-page-count" }, "(", this.langRatingReviews, ")")), h("div", { key: '739397b8f7389cfab453d435868b20be49871d6d', class: "s-reviews-page-filter-wrapper" }, h("label", { key: '92bd0f40b758f394ca3c1604ba207653e2263bac', class: "s-reviews-page-filter-label", htmlFor: "testimonials-filter" }, this.langSorting), h("select", { key: 'a2b42e0c18c9192a3ff33f61ca21e50355655ed4', onChange: (e) => this.handleSorting(e), disabled: !this.reviews.length, class: "s-reviews-page-filter" }, this.renderSortingOptions()))), this.reviews.length ? h("main", { class: "s-reviews-page-grid", ref: el => {
|
|
689
689
|
this.wrapper = el;
|
|
690
690
|
} }, this.reviews.map(review => (h("salla-review-card", { key: review.id, review: review }))))
|
|
691
691
|
: h("div", { class: "s-products-list-placeholder" }, h("span", { innerHTML: ShoppingBag }), h("p", null, this.placeholderText)), this.pagination?.links?.next && this.reviews.length ? (h("div", { class: "s-reviews-page-load-more-container" }, h("salla-button", { class: "s-reviews-page-load-more-btn", loading: this.isLoading, onClick: () => this.infiniteScroll?.loadNextPage(), onKeyUp: () => this.infiniteScroll?.loadNextPage() }, this.langLoadMore))) : null));
|
|
@@ -121,7 +121,7 @@ const SallaSearchProductCard = /*@__PURE__*/ proxyCustomElement(class SallaSearc
|
|
|
121
121
|
// 's-search-product-card-out-of-stock': this.productData?.is_out_of_stock,
|
|
122
122
|
};
|
|
123
123
|
const hrefProp = this.productData?.url ? { href: this.productData.url } : {};
|
|
124
|
-
return (h(Host, { key: '
|
|
124
|
+
return (h(Host, { key: '68ea949b11eefd54cdc6f98efdfca9b88118618d', id: `search-product-${this.productData?.id}`, class: classes }, this.productData?.url ? (h("a", { class: "s-search-product-card-overlay-link", "aria-label": this.productData?.name, ...hrefProp })) : null, h("div", { key: 'b6edf8d163728c4bf676ff762156206b12c3e412', class: "s-search-product-card-image" }, h("img", { key: '49d70e57178065d4cd82ab9969ef1024e17da13f', class: `s-search-product-card-image-${salla.url.is_placeholder(this.productData?.image?.url) ? 'contain' : 'cover'} lazy`, src: this.placeholder, alt: this.productData?.image?.alt || this.productData?.name, "data-src": this.productData?.image?.url || this.productData?.thumbnail }), this.getProductBadge()), h("div", { key: '1828cfa687675c9e0db05f52790e14e47fc62276', class: "s-search-product-card-content" }, h("div", { key: '4def9eb945cbbf9392a11ab917652f32b40e855d', class: "s-search-product-card-content-main" }, h("h3", { key: 'fac38036cd00252f8b2625b51b45edcb0f8f386e', class: "s-search-product-card-content-title" }, this.getDisplayTitle()), this.productData?.subtitle ? (h("p", { class: "s-search-product-card-content-subtitle" }, this.productData?.subtitle)) : null), !!this.showDonationAmount && !!this.productData?.donation
|
|
125
125
|
? [
|
|
126
126
|
h("salla-progress-bar", { donation: this.productData?.donation }),
|
|
127
127
|
h("div", { class: "s-search-product-card-donation-input" }, this.productData?.donation?.can_donate
|
|
@@ -136,7 +136,7 @@ const SallaSearchProductCard = /*@__PURE__*/ proxyCustomElement(class SallaSearc
|
|
|
136
136
|
]
|
|
137
137
|
: null),
|
|
138
138
|
]
|
|
139
|
-
: null, h("div", { key: '
|
|
139
|
+
: null, h("div", { key: '8a6b30d272e21ec90223437c9e47ae416aa2299b', class: "s-search-product-card-content-sub" }, this.getProductPrice(), this.productData?.is_out_of_stock ? (h("span", { class: "s-search-product-card-out-of-stock-label" }, this.outOfStock)) : null), this.productData?.rating?.stars ? (h("div", { class: "s-search-product-card-rating" }, h("span", { innerHTML: Rate }), h("span", null, this.productData.rating.stars))) : null), !this.hideAddBtn ? (h("div", { class: "s-search-product-card-content-footer" }, h("salla-add-product-button", { ref: el => (this.addBtn = el), "product-id": this.productData.id, "product-status": this.productData.status, "product-type": this.productData.type, class: "s-add-product-button-compact" }, this.renderAddToCartLabel()))) : null));
|
|
140
140
|
}
|
|
141
141
|
componentDidLoad() {
|
|
142
142
|
document.lazyLoadInstance?.update(this.host?.querySelectorAll('.lazy'));
|
|
@@ -362,7 +362,7 @@ const SallaSearch$1 = /*@__PURE__*/ proxyCustomElement(class SallaSearch extends
|
|
|
362
362
|
.fetch({ source: 'search', source_value: val })
|
|
363
363
|
.then(response => {
|
|
364
364
|
this.results = response;
|
|
365
|
-
salla.event.emit('Products Searched', { query: val, total: response.data?.length });
|
|
365
|
+
salla.event.emit('Products Searched', { query: val, total: response.data?.length, metadata: response.metadata });
|
|
366
366
|
})
|
|
367
367
|
.catch(err => (err !== 'Query is same as previous one!' ? (this.results = undefined) : null))
|
|
368
368
|
.finally(() => this.afterSearching());
|
|
@@ -197,18 +197,18 @@ const SallaSearchableDropdown = /*@__PURE__*/ proxyCustomElement(class SallaSear
|
|
|
197
197
|
render() {
|
|
198
198
|
const hasSelection = this.selectedItem != null;
|
|
199
199
|
const listboxId = `${this.inputId}-listbox`;
|
|
200
|
-
return (h(Host, { key: '
|
|
200
|
+
return (h(Host, { key: '9b8ac693952ae27f7fecb0f848ef60f5778f0e75', class: "s-searchable-dropdown" }, h("div", { key: '2f10ce4a1aca3ff7299d8561a6dffc05b241b6b1', class: { 's-searchable-dropdown': true, 's-searchable-dropdown--open': this.isOpen } }, this.label && (h("label", { key: 'bf4f834506b01c388f961e71675dcff60fcab9d9', class: "s-searchable-dropdown-label", htmlFor: this.inputId }, this.label, this.required && h("span", { key: 'ccc2919fd2897f6f88009763c10e7e6b04818f5d', class: "s-searchable-dropdown-required" }, " *"))), h("div", { key: '4b3796c45068749c9ad6fcd7cd82289971abd6cb', class: {
|
|
201
201
|
's-searchable-dropdown-trigger': true,
|
|
202
202
|
's-searchable-dropdown-trigger--disabled': this.disabled || this.loading,
|
|
203
203
|
's-searchable-dropdown-trigger--open': this.isOpen,
|
|
204
|
-
}, role: "combobox", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": "listbox", "aria-controls": listboxId, "aria-disabled": this.disabled || this.loading ? 'true' : 'false', tabIndex: this.disabled || this.loading ? -1 : 0, onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, hasSelection ? (h("span", { class: "s-searchable-dropdown-trigger-text" }, this.getDisplayName(this.selectedItem))) : (h("span", { class: "s-searchable-dropdown-trigger-placeholder" }, this.placeholder)), h("i", { key: '
|
|
204
|
+
}, role: "combobox", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": "listbox", "aria-controls": listboxId, "aria-disabled": this.disabled || this.loading ? 'true' : 'false', tabIndex: this.disabled || this.loading ? -1 : 0, onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, hasSelection ? (h("span", { class: "s-searchable-dropdown-trigger-text" }, this.getDisplayName(this.selectedItem))) : (h("span", { class: "s-searchable-dropdown-trigger-placeholder" }, this.placeholder)), h("i", { key: '0f00911d4b31a3bc5607b3d80c75fa9161e57450', class: {
|
|
205
205
|
'sicon-keyboard_arrow_down': true,
|
|
206
206
|
's-searchable-dropdown-trigger-icon': true,
|
|
207
207
|
's-searchable-dropdown-trigger-icon--open': this.isOpen,
|
|
208
|
-
}, "aria-hidden": "true" })), this.isOpen && (h("div", { key: '
|
|
208
|
+
}, "aria-hidden": "true" })), this.isOpen && (h("div", { key: 'e9d3ee8e3ce449038c9c24f664da1fd44cb140c9', class: {
|
|
209
209
|
's-searchable-dropdown-panel': true,
|
|
210
210
|
's-searchable-dropdown-panel--up': this.dropUp,
|
|
211
|
-
}, ref: (el) => (this.panelRef = el) }, this.searchable && (h("div", { key: '
|
|
211
|
+
}, ref: (el) => (this.panelRef = el) }, this.searchable && (h("div", { key: '21d3d0f542271255a57c7ae1171a2245f21db148', class: "s-searchable-dropdown-search-wrap" }, h("i", { key: '32b23853dce56095394b0f3f32a62aa05e803af2', class: "sicon-search s-searchable-dropdown-search-icon", "aria-hidden": "true" }), h("input", { key: 'c50548c034ed3e4ff395fb009e545c78c2dc712e', ref: (el) => (this.searchInputRef = el), id: this.inputId, type: "text", class: "s-searchable-dropdown-search-input", placeholder: this.placeholder, value: this.clientSearch ? this.clientSearchQuery : this.searchQuery, onInput: this.handleSearchInputChange, onKeyDown: this.handleSearchKeyDown, autocomplete: "off", "aria-autocomplete": "list", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-controls": listboxId }))), h("div", { key: 'c89233e8d294fe583d9fb8c11c7bb26af5307ce3', id: listboxId, class: "s-searchable-dropdown-list s-scrollbar", role: "listbox" }, this.renderListContent()))))));
|
|
212
212
|
}
|
|
213
213
|
renderListContent() {
|
|
214
214
|
if (this.searching || this.loading) {
|
|
@@ -27,7 +27,7 @@ const SallaSkeleton = /*@__PURE__*/ proxyCustomElement(class SallaSkeleton exten
|
|
|
27
27
|
's-skeleton-item': true,
|
|
28
28
|
's-skeleton-item-circular': this.type == 'circle',
|
|
29
29
|
};
|
|
30
|
-
return (h(Host, { key: '
|
|
30
|
+
return (h(Host, { key: 'b6ea2f9ba293c4c5922a5abf48f05845d02a8590', class: "s-skeleton-wrapper", style: { width: this.width, height: this.height } }, h("div", { key: '8fa3bed8b7aa80e01742d6c2496bc0578aabe7f1', class: classes }, "\u00A0")));
|
|
31
31
|
}
|
|
32
32
|
static get style() { return sallaSkeletonCss; }
|
|
33
33
|
}, [0, "salla-skeleton", {
|
|
@@ -383,7 +383,7 @@ const SallaSocialShare = /*@__PURE__*/ proxyCustomElement(class SallaSocialShare
|
|
|
383
383
|
})));
|
|
384
384
|
}
|
|
385
385
|
render() {
|
|
386
|
-
return (h("div", { key: '
|
|
386
|
+
return (h("div", { key: 'e54e51701050bfe02aa33824a5870294618ca22c', class: "s-social-share-wrapper" }, h("slot", { key: '692691792083ae58a23c4a273019e09c74366805', name: "widget" }, h("salla-button", { key: 'a27f7bfd1d2fde734f1d89aa5dc83a59b3803b23', "aria-label": "Share", onClick: () => this.handleShareClick(), class: "s-social-share-btn", shape: "icon", fill: "outline", color: "light" }, h("span", { key: '30cde6555a83a7362c2739e018fe994ee6dc25cf', innerHTML: this.opened ? Cancel : ShareAlt }))), this.mode === 'modal' ? this.renderModal() : this.renderPopupList()));
|
|
387
387
|
}
|
|
388
388
|
get host() { return this; }
|
|
389
389
|
static get watchers() { return {
|
|
@@ -56,7 +56,7 @@ const SallaSocial$1 = /*@__PURE__*/ proxyCustomElement(class SallaSocial extends
|
|
|
56
56
|
}
|
|
57
57
|
render() {
|
|
58
58
|
const linksArray = this.getLinksArray();
|
|
59
|
-
return (h(Host, { key: '
|
|
59
|
+
return (h(Host, { key: '4b8d92800f475d314d5637e290c1fa95c78335f5' }, h("ul", { key: 'b6134f221891e28484155c55d3bcf0182bcb967a', class: "s-social-list" }, linksArray.map((link) => (h("li", { class: "s-social-link" }, h("div", { id: "social-slot", innerHTML: this.socialSlot
|
|
60
60
|
.replace(/\{icon\}/g, this.iconsList[link.type])
|
|
61
61
|
.replace(/\{type\}/g, link.type)
|
|
62
62
|
.replace(/\{link\}/g, link.value.toString()) })))))));
|
|
@@ -32,7 +32,7 @@ const SallaTabContent = /*@__PURE__*/ proxyCustomElement(class SallaTabContent e
|
|
|
32
32
|
's-tabs-content': true,
|
|
33
33
|
's-tabs-content-selected': this.isSelected
|
|
34
34
|
};
|
|
35
|
-
return (h("div", { key: '
|
|
35
|
+
return (h("div", { key: '3107faffd358504438b464be5000682d403e1b22', class: classes }, h("slot", { key: 'e6fc9e480389b54f9e6e20a7c8ccdb880a4ee6d4' })));
|
|
36
36
|
}
|
|
37
37
|
static get style() { return sallaTabContentCss; }
|
|
38
38
|
}, [4, "salla-tab-content", {
|