@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
|
@@ -7,36 +7,88 @@ salla-add-product-button[width=wide] {
|
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
|
|
10
|
+
/* Buy-now redirect button: copy of salla-mini-checkout-widget's button CSS, same theme vars. */
|
|
11
|
+
.s-add-product-button-buy-now {
|
|
12
|
+
display: block;
|
|
13
|
+
font-family: 'PingARLT';
|
|
14
|
+
font-weight: normal;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.s-add-product-button-buy-now .s-fast-checkout-button {
|
|
18
|
+
display: flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
justify-content: center;
|
|
21
|
+
height: var(--salla-fast-checkout-button-height, 2.5rem);
|
|
22
|
+
width: var(--salla-fast-checkout-button-width, 100%);
|
|
23
|
+
border-radius: var(--salla-fast-checkout-button-border-radius, 0.375rem);
|
|
24
|
+
font-size: 0.875rem;
|
|
25
|
+
font-weight: bold;
|
|
26
|
+
text-transform: uppercase;
|
|
27
|
+
cursor: pointer;
|
|
28
|
+
transition: all 0.3s ease-in-out;
|
|
29
|
+
border: none;
|
|
30
|
+
font-family: 'PingARLT';
|
|
31
|
+
gap: 5px;
|
|
32
|
+
direction: ltr;
|
|
33
|
+
border-width: 1px;
|
|
34
|
+
border-color: var(--color-primary);
|
|
35
|
+
background-color: var(--color-primary);
|
|
36
|
+
color: var(--color-primary-reverse);
|
|
37
|
+
/* The widget's button sits in shadow DOM, out of the theme's preflight reset; keep the browser defaults it gets. */
|
|
38
|
+
padding: 1px 6px;
|
|
39
|
+
line-height: normal;
|
|
40
|
+
letter-spacing: normal;
|
|
41
|
+
/* The theme's Tailwind `.outline` utility (outline-style: solid) hits the `outline` class; the widget is shielded by shadow DOM. */
|
|
42
|
+
outline: none;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.s-add-product-button-buy-now .s-fast-checkout-button:focus-visible {
|
|
46
|
+
outline: auto;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.s-add-product-button-buy-now .s-fast-checkout-button:hover {
|
|
50
|
+
background-color: var(--color-primary);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.s-add-product-button-buy-now .s-fast-checkout-button.outline {
|
|
54
|
+
background-color: transparent;
|
|
55
|
+
border: 1px solid var(--color-primary);
|
|
56
|
+
color: var(--color-primary);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.s-add-product-button-buy-now .s-fast-checkout-button.rtl {
|
|
60
|
+
flex-direction: row-reverse;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.s-add-product-button-buy-now .s-fast-checkout-button:disabled {
|
|
64
|
+
cursor: progress;
|
|
65
|
+
opacity: 0.7;
|
|
66
|
+
}
|
|
67
|
+
|
|
10
68
|
.sticky {
|
|
11
69
|
position: sticky;
|
|
12
70
|
}
|
|
13
71
|
|
|
14
|
-
|
|
15
72
|
.hidden {
|
|
16
73
|
display: none;
|
|
17
74
|
}
|
|
18
75
|
|
|
19
|
-
|
|
20
76
|
.w-full {
|
|
21
77
|
width: 100%;
|
|
22
78
|
}
|
|
23
79
|
|
|
24
|
-
|
|
25
80
|
.outline {
|
|
26
81
|
outline-style: solid;
|
|
27
82
|
}
|
|
28
83
|
|
|
29
|
-
|
|
30
84
|
.filter {
|
|
31
85
|
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);
|
|
32
86
|
}
|
|
33
87
|
|
|
34
|
-
|
|
35
88
|
.s-hidden {
|
|
36
89
|
display: none;
|
|
37
90
|
}
|
|
38
91
|
|
|
39
|
-
|
|
40
92
|
.btn {
|
|
41
93
|
display: inline-flex;
|
|
42
94
|
flex: 1 1 0%;
|
|
@@ -56,17 +108,14 @@ salla-add-product-button[width=wide] {
|
|
|
56
108
|
transition-duration: 300ms;
|
|
57
109
|
}
|
|
58
110
|
|
|
59
|
-
|
|
60
111
|
.btn:hover {
|
|
61
112
|
opacity: 0.8;
|
|
62
113
|
}
|
|
63
114
|
|
|
64
|
-
|
|
65
115
|
.s-hidden {
|
|
66
116
|
display: none;
|
|
67
117
|
}
|
|
68
118
|
|
|
69
|
-
|
|
70
119
|
.s-add-product-button-sr-only {
|
|
71
120
|
position: absolute;
|
|
72
121
|
width: 1px;
|
|
@@ -79,12 +128,10 @@ salla-add-product-button[width=wide] {
|
|
|
79
128
|
border-width: 0;
|
|
80
129
|
}
|
|
81
130
|
|
|
82
|
-
|
|
83
131
|
.s-add-product-button-with-quick-buy {
|
|
84
132
|
display: flex;
|
|
85
133
|
}
|
|
86
134
|
|
|
87
|
-
|
|
88
135
|
@media (min-width: 640px) {
|
|
89
136
|
|
|
90
137
|
.s-add-product-button-with-quick-buy {
|
|
@@ -92,19 +139,16 @@ salla-add-product-button[width=wide] {
|
|
|
92
139
|
}
|
|
93
140
|
}
|
|
94
141
|
|
|
95
|
-
|
|
96
142
|
.s-add-product-button-with-quick-buy:not(.s-add-product-button-with-sticky-bar) {
|
|
97
143
|
flex-direction: column !important;
|
|
98
144
|
}
|
|
99
145
|
|
|
100
|
-
|
|
101
146
|
.s-add-product-button-main {
|
|
102
147
|
display: flex;
|
|
103
148
|
width: 66.666667%;
|
|
104
149
|
column-gap: 0.375rem;
|
|
105
150
|
}
|
|
106
151
|
|
|
107
|
-
|
|
108
152
|
@media (min-width: 640px) {
|
|
109
153
|
|
|
110
154
|
.s-add-product-button-main {
|
|
@@ -113,12 +157,10 @@ salla-add-product-button[width=wide] {
|
|
|
113
157
|
}
|
|
114
158
|
}
|
|
115
159
|
|
|
116
|
-
|
|
117
160
|
.s-add-product-button-with-sticky-bar salla-quick-buy {
|
|
118
161
|
width: 33.333333%;
|
|
119
162
|
}
|
|
120
163
|
|
|
121
|
-
|
|
122
164
|
@media (min-width: 640px) {
|
|
123
165
|
|
|
124
166
|
.s-add-product-button-with-sticky-bar salla-quick-buy {
|
|
@@ -126,33 +168,27 @@ salla-add-product-button[width=wide] {
|
|
|
126
168
|
}
|
|
127
169
|
}
|
|
128
170
|
|
|
129
|
-
|
|
130
171
|
.s-add-product-button-with-quick-buy:not(.s-add-product-button-with-sticky-bar) .s-add-product-button-main {
|
|
131
172
|
width: 100%;
|
|
132
173
|
}
|
|
133
174
|
|
|
134
|
-
|
|
135
175
|
.s-add-product-button-with-quick-buy:not(.s-add-product-button-with-apple-pay) .s-add-product-button-main {
|
|
136
176
|
width: 100%;
|
|
137
177
|
}
|
|
138
178
|
|
|
139
|
-
|
|
140
179
|
.s-add-product-button-main:not(.w-full) > salla-button {
|
|
141
180
|
width: 50% !important;
|
|
142
181
|
}
|
|
143
182
|
|
|
144
|
-
|
|
145
183
|
.s-add-product-button-main .s-add-product-button-mini-checkout {
|
|
146
184
|
--salla-fast-checkout-button-border-radius: .75rem;
|
|
147
185
|
width: 50%;
|
|
148
186
|
}
|
|
149
187
|
|
|
150
|
-
|
|
151
188
|
.s-add-product-button-with-sticky-bar {
|
|
152
189
|
width: 100% !important;
|
|
153
190
|
}
|
|
154
191
|
|
|
155
|
-
|
|
156
192
|
@media (min-width: 640px) {
|
|
157
193
|
|
|
158
194
|
.s-add-product-button-with-sticky-bar {
|
|
@@ -160,12 +196,10 @@ salla-add-product-button[width=wide] {
|
|
|
160
196
|
}
|
|
161
197
|
}
|
|
162
198
|
|
|
163
|
-
|
|
164
199
|
.s-add-product-button-with-apple-pay {
|
|
165
200
|
column-gap: 0.375rem;
|
|
166
201
|
}
|
|
167
202
|
|
|
168
|
-
|
|
169
203
|
@media (min-width: 640px) {
|
|
170
204
|
|
|
171
205
|
.s-add-product-button-with-apple-pay {
|
|
@@ -173,17 +207,14 @@ salla-add-product-button[width=wide] {
|
|
|
173
207
|
}
|
|
174
208
|
}
|
|
175
209
|
|
|
176
|
-
|
|
177
210
|
.s-add-product-button-with-apple-pay:not(.s-add-product-button-with-sticky-bar) salla-quick-buy apple-pay-button {
|
|
178
211
|
margin-top: 0.625rem;
|
|
179
212
|
}
|
|
180
213
|
|
|
181
|
-
|
|
182
214
|
.s-add-product-button-with-sticky-bar salla-quick-buy .s-quick-buy-button .s-button-text span {
|
|
183
215
|
display: none;
|
|
184
216
|
}
|
|
185
217
|
|
|
186
|
-
|
|
187
218
|
@media (min-width: 768px) {
|
|
188
219
|
|
|
189
220
|
.s-add-product-button-with-sticky-bar salla-quick-buy .s-quick-buy-button .s-button-text span {
|
|
@@ -191,7 +222,6 @@ salla-add-product-button[width=wide] {
|
|
|
191
222
|
}
|
|
192
223
|
}
|
|
193
224
|
|
|
194
|
-
|
|
195
225
|
.s-add-product-button-mini-checkout-content {
|
|
196
226
|
display: flex;
|
|
197
227
|
flex-shrink: 0;
|
|
@@ -200,7 +230,6 @@ salla-add-product-button[width=wide] {
|
|
|
200
230
|
font-size: .8rem;
|
|
201
231
|
}
|
|
202
232
|
|
|
203
|
-
|
|
204
233
|
@media (min-width: 640px) {
|
|
205
234
|
|
|
206
235
|
.s-add-product-button-mini-checkout-content {
|
|
@@ -209,12 +238,10 @@ salla-add-product-button[width=wide] {
|
|
|
209
238
|
}
|
|
210
239
|
}
|
|
211
240
|
|
|
212
|
-
|
|
213
241
|
.s-add-product-button-mini-checkout-content:where([dir="rtl"], [dir="rtl"] *) {
|
|
214
242
|
flex-direction: row-reverse;
|
|
215
243
|
}
|
|
216
244
|
|
|
217
|
-
|
|
218
245
|
.s-add-product-button-mini-checkout-content svg {
|
|
219
246
|
margin-right: 0.375rem;
|
|
220
247
|
height: 1rem;
|
|
@@ -222,19 +249,16 @@ salla-add-product-button[width=wide] {
|
|
|
222
249
|
fill: currentColor;
|
|
223
250
|
}
|
|
224
251
|
|
|
225
|
-
|
|
226
252
|
.s-add-product-button-mini-checkout-content svg:where([dir="rtl"], [dir="rtl"] *) {
|
|
227
253
|
margin-right: 0px;
|
|
228
254
|
margin-left: 0.375rem;
|
|
229
255
|
}
|
|
230
256
|
|
|
231
|
-
|
|
232
257
|
.s-add-product-button-busy {
|
|
233
258
|
pointer-events: none;
|
|
234
259
|
position: relative;
|
|
235
260
|
}
|
|
236
261
|
|
|
237
|
-
|
|
238
262
|
.s-add-product-button-busy::after {
|
|
239
263
|
position: absolute;
|
|
240
264
|
top: 50%;
|
|
@@ -248,7 +272,6 @@ salla-add-product-button[width=wide] {
|
|
|
248
272
|
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));
|
|
249
273
|
}
|
|
250
274
|
|
|
251
|
-
|
|
252
275
|
@keyframes spin {
|
|
253
276
|
|
|
254
277
|
to {
|
|
@@ -257,7 +280,6 @@ salla-add-product-button[width=wide] {
|
|
|
257
280
|
}
|
|
258
281
|
}
|
|
259
282
|
|
|
260
|
-
|
|
261
283
|
.s-add-product-button-busy::after {
|
|
262
284
|
animation: spin 1s linear infinite;
|
|
263
285
|
border-radius: 9999px;
|
|
@@ -6,12 +6,19 @@ import Cart from "../../assets/svg/cart.svg";
|
|
|
6
6
|
// import SallaIcon from '../../assets/svg/salla.svg';
|
|
7
7
|
import WalletIcon from "../../assets/svg/full-wallet.svg";
|
|
8
8
|
import Helper from "../../Helpers/Helper";
|
|
9
|
-
import { canCompleteApplePay } from "@salla.sa/applepay/src/apple-pay-support";
|
|
9
|
+
import { canCompleteApplePay, isApplePayHostedRedirect } from "@salla.sa/applepay/src/apple-pay-support";
|
|
10
10
|
import { OrderOptionsGate } from "../salla-order-options-modal/order-options-gate";
|
|
11
11
|
import { FastCheckoutGate } from "../salla-bullet-delivery/fast-checkout-gate";
|
|
12
|
+
import { appendOrderOptionsToPayload, ensureOrderOptionsModal } from "../salla-order-options-modal/apple-pay-order-options";
|
|
13
|
+
import { injectFreeProductsIntoPayload } from "../salla-order-options-modal/free-product-payload";
|
|
12
14
|
export class SallaAddProductButton {
|
|
13
15
|
constructor() {
|
|
14
16
|
this.hostAttributes = {};
|
|
17
|
+
this.buyNowBusy = false;
|
|
18
|
+
/** Latest buy-now click; an older click still waiting on Bullet Delivery drops out. */
|
|
19
|
+
this.buyNowToken = 0;
|
|
20
|
+
this.buyNowLastClick = 0;
|
|
21
|
+
this.buyNowLivePrice = 0;
|
|
15
22
|
/**
|
|
16
23
|
* Has Pre Order
|
|
17
24
|
*/
|
|
@@ -26,6 +33,7 @@ export class SallaAddProductButton {
|
|
|
26
33
|
this.productType = 'product';
|
|
27
34
|
this.selectedOptions = [];
|
|
28
35
|
this.buyNowText = salla.lang.get('pages.products.buy_now');
|
|
36
|
+
this.buyNowLoading = false;
|
|
29
37
|
/** Use matchMedia instead of window.innerWidth to avoid forced reflow (Lighthouse/PageSpeed) */
|
|
30
38
|
this.isDesktopViewport = typeof window !== 'undefined' ? window.matchMedia('(min-width: 768px)').matches : true;
|
|
31
39
|
this.viewportMediaQuery = null;
|
|
@@ -33,6 +41,9 @@ export class SallaAddProductButton {
|
|
|
33
41
|
this.orderOptionsGateAttached = false;
|
|
34
42
|
/** Guards one-time attachment of the fast-checkout Bullet Delivery gate (logic lives in FastCheckoutGate). */
|
|
35
43
|
this.fastCheckoutGateAttached = false;
|
|
44
|
+
this.onBuyNowPriceUpdated = (response) => {
|
|
45
|
+
this.buyNowLivePrice = Number(response?.data?.price) || this.buyNowLivePrice;
|
|
46
|
+
};
|
|
36
47
|
this.onViewportChange = (e) => {
|
|
37
48
|
this.isDesktopViewport = e.matches;
|
|
38
49
|
this.btn?.setText((e.matches && !!this.passedLabel) ? this.passedLabel : this.getLabel());
|
|
@@ -160,6 +171,105 @@ export class SallaAddProductButton {
|
|
|
160
171
|
type: this.supportStickyBar && !this.isDesktopViewport ? 'plain' : this.productType == 'donating' ? 'donate' : 'buy'
|
|
161
172
|
};
|
|
162
173
|
}
|
|
174
|
+
// Store setting: quick-buy skips the mini-checkout popup and goes straight to the checkout page.
|
|
175
|
+
get redirectsToCheckout() {
|
|
176
|
+
return salla.config.get('store.settings.buy_now.redirect_to_checkout') === true;
|
|
177
|
+
}
|
|
178
|
+
/** The fast-checkout slot renders and the store redirects, so the buy-now button is on the page. */
|
|
179
|
+
get showsBuyNowButton() {
|
|
180
|
+
return this.showQuickBuy
|
|
181
|
+
&& !!document.getElementById('fast-checkout-js')
|
|
182
|
+
&& !['financial_support', 'donating'].includes(this.productType)
|
|
183
|
+
&& this.redirectsToCheckout;
|
|
184
|
+
}
|
|
185
|
+
buyNowButton() {
|
|
186
|
+
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)));
|
|
187
|
+
}
|
|
188
|
+
async buyNowRedirect() {
|
|
189
|
+
// A double-click would reach Bullet Delivery twice, which stalls its guest gate.
|
|
190
|
+
const now = Date.now();
|
|
191
|
+
if (this.buyNowBusy || now - this.buyNowLastClick < 500) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
this.buyNowLastClick = now;
|
|
195
|
+
const token = ++this.buyNowToken;
|
|
196
|
+
const optionsEl = document.querySelector(`salla-product-options[product-id="${this.productId}"]`);
|
|
197
|
+
if (optionsEl?.validateAndScroll && !(await optionsEl.validateAndScroll())) {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
// Bullet Delivery's address gate, as the widget runs it; stays pending if the shopper backs out.
|
|
201
|
+
await salla.cart.event.beforeStartFastCheckout();
|
|
202
|
+
if (token !== this.buyNowToken || this.buyNowBusy) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
this.buyNowBusy = true;
|
|
206
|
+
let leaving = false;
|
|
207
|
+
try {
|
|
208
|
+
this.buyNowLoading = true;
|
|
209
|
+
const form = document.querySelector('form.product-form');
|
|
210
|
+
const data = form ? new FormData(form) : new FormData();
|
|
211
|
+
data.set('id', String(this.productId));
|
|
212
|
+
data.set('source', 'buy_now');
|
|
213
|
+
if (!(await this.collectOrderOptions(data))) {
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
const resp = await salla.api.request('checkout/mini', data, 'post');
|
|
217
|
+
if (resp.data?.url) {
|
|
218
|
+
leaving = this.openCheckout(resp.data.url);
|
|
219
|
+
}
|
|
220
|
+
else if (resp.data?.to === 'login') {
|
|
221
|
+
salla.event.dispatch('login::open');
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
this.failed.emit(error);
|
|
226
|
+
}
|
|
227
|
+
finally {
|
|
228
|
+
if (!leaving) {
|
|
229
|
+
this.buyNowBusy = false;
|
|
230
|
+
this.buyNowLoading = false;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/** Order options and free offer products, as the widget collects them; false when the modal is dismissed. */
|
|
235
|
+
async collectOrderOptions(data) {
|
|
236
|
+
let resp;
|
|
237
|
+
try {
|
|
238
|
+
resp = await salla.api.withoutNotifier(() => salla.product.api.getOrderOptions([{ id: this.productId, quantity: Number(data.get('quantity')) || 1 }]));
|
|
239
|
+
}
|
|
240
|
+
catch (error) {
|
|
241
|
+
salla?.logger?.warn?.('order-options: fetch failed', error);
|
|
242
|
+
return true;
|
|
243
|
+
}
|
|
244
|
+
const orderOptions = resp?.data?.order_options || [];
|
|
245
|
+
const freeProducts = (Array.isArray(resp?.data?.advance_free_product) ? resp.data.advance_free_product : [])
|
|
246
|
+
.filter((entry) => Array.isArray(entry?.options) && entry.options.length);
|
|
247
|
+
if (!orderOptions.length && !freeProducts.length) {
|
|
248
|
+
return true;
|
|
249
|
+
}
|
|
250
|
+
try {
|
|
251
|
+
const result = await ensureOrderOptionsModal().open({
|
|
252
|
+
orderOptions,
|
|
253
|
+
freeProducts,
|
|
254
|
+
basePrice: this.buyNowLivePrice || Number(resp?.data?.products?.[0]?.price?.amount) || 0,
|
|
255
|
+
});
|
|
256
|
+
appendOrderOptionsToPayload(data, result?.orderOptions || []);
|
|
257
|
+
injectFreeProductsIntoPayload(data, result?.freeProducts || []);
|
|
258
|
+
return true;
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/** Native SPA webviews own the checkout screen; returns true when this page navigates away. */
|
|
265
|
+
openCheckout(url) {
|
|
266
|
+
if (salla.mobile?.isSpaWebview?.() && salla.mobile.openCheckout) {
|
|
267
|
+
salla.mobile.openCheckout(url);
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
270
|
+
window.location.href = url;
|
|
271
|
+
return true;
|
|
272
|
+
}
|
|
163
273
|
miniCheckoutWidget() {
|
|
164
274
|
let storeId = salla.config.get('store.id');
|
|
165
275
|
if (!storeId) {
|
|
@@ -178,8 +288,11 @@ export class SallaAddProductButton {
|
|
|
178
288
|
&& this.productType !== 'booking';
|
|
179
289
|
// Cross-browser Apple Pay: native (Safari) OR the Payment Request API
|
|
180
290
|
// (non-Safari browsers / non-Apple devices via the QR-code fallback).
|
|
291
|
+
// Hosted (MyFatoorah, S2S off) Apple Pay has no native sheet and no buy-now redirect
|
|
292
|
+
// path, so the quick-buy button below must not render for it either.
|
|
181
293
|
this.isApplePayActive = salla.config.get('store.settings.payments')?.includes('apple_pay')
|
|
182
294
|
&& salla.config.get('store.settings.is_salla_gateway', false)
|
|
295
|
+
&& !isApplePayHostedRedirect()
|
|
183
296
|
&& await canCompleteApplePay();
|
|
184
297
|
this.passedLabel = this.host.innerHTML.replace('<!---->', '').trim();
|
|
185
298
|
if (!!this.passedLabel && this.isDesktopViewport) {
|
|
@@ -209,11 +322,14 @@ export class SallaAddProductButton {
|
|
|
209
322
|
} }, h("div", { class: {
|
|
210
323
|
's-add-product-button-main': this.showQuickBuy,
|
|
211
324
|
'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
|
|
212
|
-
} }, 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() }) : '');
|
|
325
|
+
} }, 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() }) : '');
|
|
213
326
|
}
|
|
214
327
|
async componentDidLoad() {
|
|
215
328
|
// Register this component for hooks system, already on it logic to run componentDidLoad trigger
|
|
216
329
|
await Salla.hooks.registerComponent('salla-add-product-button', this);
|
|
330
|
+
if (this.showsBuyNowButton) {
|
|
331
|
+
salla.product?.event?.onPriceUpdated?.(this.onBuyNowPriceUpdated);
|
|
332
|
+
}
|
|
217
333
|
if (!this.notifyOptionsAvailability) {
|
|
218
334
|
return;
|
|
219
335
|
}
|
|
@@ -262,6 +378,7 @@ export class SallaAddProductButton {
|
|
|
262
378
|
}
|
|
263
379
|
disconnectedCallback() {
|
|
264
380
|
this.viewportMediaQuery?.removeEventListener('change', this.onViewportChange);
|
|
381
|
+
salla.product?.event?.offPriceUpdated?.(this.onBuyNowPriceUpdated);
|
|
265
382
|
}
|
|
266
383
|
static get is() { return "salla-add-product-button"; }
|
|
267
384
|
static get originalStyleUrls() {
|
|
@@ -498,6 +615,7 @@ export class SallaAddProductButton {
|
|
|
498
615
|
"showQuickBuy": {},
|
|
499
616
|
"isApplePayActive": {},
|
|
500
617
|
"buyNowText": {},
|
|
618
|
+
"buyNowLoading": {},
|
|
501
619
|
"isDesktopViewport": {}
|
|
502
620
|
};
|
|
503
621
|
}
|
|
@@ -38,7 +38,7 @@ export function findNearestBranch(branches, userLat, userLon) {
|
|
|
38
38
|
for (const b of branches) {
|
|
39
39
|
const lat = b.location?.lat != null ? Number(b.location.lat) : Number.NaN;
|
|
40
40
|
const lng = b.location?.lng != null ? Number(b.location.lng) : Number.NaN;
|
|
41
|
-
if (Number.isNaN(lat) || Number.isNaN(lng) || b
|
|
41
|
+
if (Number.isNaN(lat) || Number.isNaN(lng) || !isBranchSelectable(b))
|
|
42
42
|
continue;
|
|
43
43
|
const d = calculateDistance(userLat, userLon, lat, lng);
|
|
44
44
|
if (d < minD) {
|
|
@@ -446,10 +446,7 @@ export class SallaBulletDelivery {
|
|
|
446
446
|
}
|
|
447
447
|
// Auto-select preselected branch if provided
|
|
448
448
|
if (this.preselectedBranchId) {
|
|
449
|
-
|
|
450
|
-
if (branch) {
|
|
451
|
-
this.selectedBranch = branch;
|
|
452
|
-
}
|
|
449
|
+
this.preselectBranch(this.preselectedBranchId);
|
|
453
450
|
}
|
|
454
451
|
}
|
|
455
452
|
// Prefill form data from session storage
|
|
@@ -900,15 +897,30 @@ export class SallaBulletDelivery {
|
|
|
900
897
|
async loadBranches() {
|
|
901
898
|
this.loadingBranches = true;
|
|
902
899
|
try {
|
|
903
|
-
this.
|
|
900
|
+
this.applyLoadedBranches(await bulletDeliveryAPI.getBranches({
|
|
904
901
|
country_id: this.selectedCountry?.id,
|
|
905
|
-
});
|
|
906
|
-
this.filterBranches();
|
|
902
|
+
}));
|
|
907
903
|
}
|
|
908
904
|
finally {
|
|
909
905
|
this.loadingBranches = false;
|
|
910
906
|
}
|
|
911
907
|
}
|
|
908
|
+
/**
|
|
909
|
+
* Store a freshly fetched branch list and reconcile the current selection with it.
|
|
910
|
+
* `selectedBranch` is a snapshot from selection time: when the refreshed list carries the
|
|
911
|
+
* same branch, swap in the fresh copy, and drop it if it is no longer selectable (INV-1407).
|
|
912
|
+
* A selection missing from the list (e.g. filtered out by a search) is left untouched.
|
|
913
|
+
*/
|
|
914
|
+
applyLoadedBranches(branches) {
|
|
915
|
+
this.branches = branches;
|
|
916
|
+
if (this.selectedBranch) {
|
|
917
|
+
const fresh = branches.find((b) => b.id === this.selectedBranch?.id);
|
|
918
|
+
if (fresh) {
|
|
919
|
+
this.selectedBranch = isBranchSelectable(fresh) ? fresh : null;
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
this.filterBranches();
|
|
923
|
+
}
|
|
912
924
|
filterBranches() {
|
|
913
925
|
this.filteredBranches = filterBranches(this.branches, this.branchSearchQuery);
|
|
914
926
|
}
|
|
@@ -935,13 +947,7 @@ export class SallaBulletDelivery {
|
|
|
935
947
|
if (country) {
|
|
936
948
|
this.selectedCountry = country;
|
|
937
949
|
this.updateNewAddressForm({ country_id: Number(country.id) });
|
|
938
|
-
|
|
939
|
-
if (branchId != null && this.branches.length > 0) {
|
|
940
|
-
const branch = this.branches.find((b) => b.id === branchId);
|
|
941
|
-
if (branch) {
|
|
942
|
-
this.selectedBranch = branch;
|
|
943
|
-
}
|
|
944
|
-
}
|
|
950
|
+
this.preselectBranch(getIntentBranchId(intent));
|
|
945
951
|
}
|
|
946
952
|
}
|
|
947
953
|
}
|
|
@@ -1105,11 +1111,10 @@ export class SallaBulletDelivery {
|
|
|
1105
1111
|
return;
|
|
1106
1112
|
this.loadingBranches = true;
|
|
1107
1113
|
try {
|
|
1108
|
-
this.
|
|
1114
|
+
this.applyLoadedBranches(await bulletDeliveryAPI.getBranches({
|
|
1109
1115
|
country_id: this.selectedCountry?.id,
|
|
1110
1116
|
query,
|
|
1111
|
-
});
|
|
1112
|
-
this.filterBranches();
|
|
1117
|
+
}));
|
|
1113
1118
|
}
|
|
1114
1119
|
finally {
|
|
1115
1120
|
this.loadingBranches = false;
|
|
@@ -1142,12 +1147,11 @@ export class SallaBulletDelivery {
|
|
|
1142
1147
|
async loadBranchesWithLocation(lat, lng) {
|
|
1143
1148
|
this.loadingBranches = true;
|
|
1144
1149
|
try {
|
|
1145
|
-
this.
|
|
1150
|
+
this.applyLoadedBranches(await bulletDeliveryAPI.getBranches({
|
|
1146
1151
|
country_id: this.selectedCountry?.id,
|
|
1147
1152
|
lat,
|
|
1148
1153
|
lng,
|
|
1149
|
-
});
|
|
1150
|
-
this.filterBranches();
|
|
1154
|
+
}));
|
|
1151
1155
|
// Auto-select country from first branch if no country is selected
|
|
1152
1156
|
if (!this.selectedCountry && this.branches.length > 0) {
|
|
1153
1157
|
const firstBranch = this.branches[0];
|
|
@@ -1204,6 +1208,18 @@ export class SallaBulletDelivery {
|
|
|
1204
1208
|
this.selectedBranch = branch;
|
|
1205
1209
|
this.allocationOutOfCoverageMessage = null;
|
|
1206
1210
|
}
|
|
1211
|
+
/**
|
|
1212
|
+
* Restore a remembered / event-provided branch — but only one the list renders as selectable,
|
|
1213
|
+
* so a branch that has closed since it was remembered is never silently preselected (INV-1407).
|
|
1214
|
+
*/
|
|
1215
|
+
preselectBranch(branchId) {
|
|
1216
|
+
if (branchId == null)
|
|
1217
|
+
return;
|
|
1218
|
+
const branch = this.branches.find((b) => b.id === branchId);
|
|
1219
|
+
if (branch && isBranchSelectable(branch)) {
|
|
1220
|
+
this.selectedBranch = branch;
|
|
1221
|
+
}
|
|
1222
|
+
}
|
|
1207
1223
|
handleSavedAddressSelect(address) {
|
|
1208
1224
|
if (address.is_in_coverage === false) {
|
|
1209
1225
|
// Show toast notification for out of coverage address
|
|
@@ -1443,13 +1459,7 @@ export class SallaBulletDelivery {
|
|
|
1443
1459
|
await this.loadBranches();
|
|
1444
1460
|
}
|
|
1445
1461
|
// Preselect branch from session storage if available
|
|
1446
|
-
|
|
1447
|
-
if (branchId != null && this.branches.length > 0) {
|
|
1448
|
-
const branch = this.branches.find((b) => b.id === branchId);
|
|
1449
|
-
if (branch) {
|
|
1450
|
-
this.selectedBranch = branch;
|
|
1451
|
-
}
|
|
1452
|
-
}
|
|
1462
|
+
this.preselectBranch(getIntentBranchId(savedIntent));
|
|
1453
1463
|
}
|
|
1454
1464
|
else if (tab === "address") {
|
|
1455
1465
|
// Lazy-load saved addresses when switching to address tab (if not loaded yet).
|
|
@@ -1478,7 +1488,8 @@ export class SallaBulletDelivery {
|
|
|
1478
1488
|
}
|
|
1479
1489
|
isConfirmDisabled() {
|
|
1480
1490
|
if (this.activeTab === "branch") {
|
|
1481
|
-
|
|
1491
|
+
// Backstop for any selection path: the allocation API rejects non-selectable branches (INV-1407).
|
|
1492
|
+
return !isBranchSelectable(this.selectedBranch);
|
|
1482
1493
|
}
|
|
1483
1494
|
if (this.activeTab === "address") {
|
|
1484
1495
|
if (this.isLoggedIn && this.selectedSessionAddress) {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* the ApplePaySession and drives it via callbacks.
|
|
8
8
|
*/
|
|
9
9
|
/** Get-or-create the singleton order-options modal on <body>. */
|
|
10
|
-
function ensureOrderOptionsModal() {
|
|
10
|
+
export function ensureOrderOptionsModal() {
|
|
11
11
|
let modal = document.querySelector('salla-order-options-modal');
|
|
12
12
|
if (!modal) {
|
|
13
13
|
modal = document.createElement('salla-order-options-modal');
|
|
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
|
|
|
5
5
|
import "@salla.sa/applepay/src/index";
|
|
6
6
|
import { resolveApplePayOrderOptions, appendOrderOptionsToPayload, reportProductOptionsValiditySync, } from "../salla-order-options-modal/apple-pay-order-options";
|
|
7
7
|
import { injectFreeProductsIntoPayload } from "../salla-order-options-modal/free-product-payload";
|
|
8
|
-
import { applePayMerchantId, canCompleteApplePay, ensureApplePaySdk, resolveApplePayNetworks } from "@salla.sa/applepay/src/apple-pay-support";
|
|
8
|
+
import { applePayMerchantId, canCompleteApplePay, ensureApplePaySdk, isApplePayHostedRedirect, resolveApplePayNetworks } from "@salla.sa/applepay/src/apple-pay-support";
|
|
9
9
|
export class SallaQuickBuy {
|
|
10
10
|
constructor() {
|
|
11
11
|
/**
|
|
@@ -315,9 +315,12 @@ export class SallaQuickBuy {
|
|
|
315
315
|
const canMakePayments = typeof window !== 'undefined' && !!window.ApplePaySession?.canMakePayments?.();
|
|
316
316
|
const storeHasApplePay = salla?.config?.get?.('store.settings.payments')?.includes?.('apple_pay') ?? true;
|
|
317
317
|
const isSallaGateway = salla?.config?.get?.('store.settings.is_salla_gateway', false) ?? true;
|
|
318
|
+
// Hosted (MyFatoorah, S2S off) Apple Pay has no native sheet and buy-now has no redirect
|
|
319
|
+
// path, so there is nothing this button could do — don't offer it.
|
|
320
|
+
const isHostedRedirect = isApplePayHostedRedirect();
|
|
318
321
|
// No networks means nothing to charge with, so don't show the button — canMakePayments()
|
|
319
322
|
// alone would light it up on Safari.
|
|
320
|
-
this.isApplePayActive = canMakePayments && storeHasApplePay && isSallaGateway
|
|
323
|
+
this.isApplePayActive = canMakePayments && storeHasApplePay && isSallaGateway && !isHostedRedirect
|
|
321
324
|
&& !!this.resolveSupportedNetworks().length;
|
|
322
325
|
const runInit = async () => {
|
|
323
326
|
if (!this.productId && salla?.config?.get && salla.url?.is_page) {
|
|
@@ -346,7 +349,8 @@ export class SallaQuickBuy {
|
|
|
346
349
|
salla.product.event.onPriceUpdated(response => { this.applyBaseCurrencyPrice(response?.data); });
|
|
347
350
|
}
|
|
348
351
|
const storeAllowsApplePay = (salla?.config?.get?.('store.settings.payments')?.includes?.('apple_pay') ?? storeHasApplePay)
|
|
349
|
-
&& (salla?.config?.get?.('store.settings.is_salla_gateway', false) ?? isSallaGateway)
|
|
352
|
+
&& (salla?.config?.get?.('store.settings.is_salla_gateway', false) ?? isSallaGateway)
|
|
353
|
+
&& !isApplePayHostedRedirect();
|
|
350
354
|
// Preload Apple's JS SDK so the rendered <apple-pay-button> upgrades on
|
|
351
355
|
// every flow (native Safari + QR). Fire-and-forget: the element upgrades
|
|
352
356
|
// retroactively once the script defines it.
|
|
@@ -370,7 +374,16 @@ export class SallaQuickBuy {
|
|
|
370
374
|
});
|
|
371
375
|
}
|
|
372
376
|
render() {
|
|
373
|
-
|
|
377
|
+
// Hosted (MyFatoorah, S2S off) Apple Pay has no native sheet and buy-now has no
|
|
378
|
+
// redirect path, so render nothing rather than an Apple Pay button that cannot
|
|
379
|
+
// do Apple Pay. Scoped to the hosted case on purpose: when a store simply has no
|
|
380
|
+
// Apple Pay, `isApplePayActive` is false too, but there the button is a deliberate
|
|
381
|
+
// generic buy-now that falls back to `checkout/mini` (see quickBuyHandler), and
|
|
382
|
+
// direct consumers rely on that.
|
|
383
|
+
if (isApplePayHostedRedirect()) {
|
|
384
|
+
return h(Host, null);
|
|
385
|
+
}
|
|
386
|
+
return h(Host, null, this.quickBuyButton());
|
|
374
387
|
}
|
|
375
388
|
quickBuyButton() {
|
|
376
389
|
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 });
|