@salla.sa/twilight-components 2.14.552 → 2.14.553
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-DVyeUqBh.js +90 -0
- package/dist/cjs/{filepond-BTsLGLic.js → filepond-i59nX3lz.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-poster-DSHHkMx8.js → filepond-plugin-file-poster-BYzX1aNf.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-size-BB6ltSRf.js → filepond-plugin-file-validate-size-DycWnZhG.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-type-CNWlgtpi.js → filepond-plugin-file-validate-type-z0JXBj53.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-edit-DuY72vJR.js → filepond-plugin-image-edit-CJRUCqBQ.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-exif-orientation-DWzZOyOL.js → filepond-plugin-image-exif-orientation-DxMxZUYg.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-preview-ropJ4nYL.js → filepond-plugin-image-preview-CjSIPPRf.js} +1 -1
- package/dist/cjs/{index-CoSVCFSp.js → index-BDeMaV8l.js} +18 -22
- package/dist/cjs/{intlTelInput-BSHBNNPO.js → intlTelInput-YxceQr88.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 +5 -86
- package/dist/cjs/salla-advertisement.cjs.entry.js +1 -1
- package/dist/cjs/salla-alert_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-app-install-alert.cjs.entry.js +1 -1
- package/dist/cjs/salla-applied-filters.cjs.entry.js +1 -1
- package/dist/cjs/salla-apps-icons.cjs.entry.js +1 -1
- package/dist/cjs/salla-attachment-view_9.cjs.entry.js +10 -10
- package/dist/cjs/salla-badge.cjs.entry.js +1 -1
- package/dist/cjs/salla-basket-gap.cjs.entry.js +1 -1
- package/dist/cjs/salla-bullet-delivery_3.cjs.entry.js +1 -1
- package/dist/cjs/salla-cart-coupons.cjs.entry.js +1 -1
- package/dist/cjs/salla-cart-item-offers_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-cart-summary-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-cashback-banner.cjs.entry.js +1 -1
- package/dist/cjs/salla-comment-factors.cjs.entry.js +1 -1
- package/dist/cjs/salla-comment-form_9.cjs.entry.js +1 -1
- package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
- package/dist/cjs/salla-contacts.cjs.entry.js +1 -1
- package/dist/cjs/salla-cookies-bar.cjs.entry.js +1 -1
- package/dist/cjs/{salla-count-down.cjs.entry.js → salla-count-down_2.cjs.entry.js} +209 -1
- package/dist/cjs/salla-custom-fields.cjs.entry.js +1 -1
- package/dist/cjs/salla-delivery-promise.cjs.entry.js +1 -1
- package/dist/cjs/salla-edit-order-button.cjs.entry.js +1 -1
- package/dist/cjs/salla-filters-widget.cjs.entry.js +1 -1
- package/dist/cjs/salla-filters.cjs.entry.js +1 -1
- package/dist/cjs/salla-fulfillment-methods.cjs.entry.js +1 -1
- package/dist/cjs/salla-gifting.cjs.entry.js +108 -5
- 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-slider.cjs.entry.js → salla-map_3.cjs.entry.js} +829 -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-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-order-options-modal_2.cjs.entry.js → salla-product-card.cjs.entry.js} +1 -209
- package/dist/cjs/salla-product-size-guide.cjs.entry.js +1 -1
- package/dist/cjs/salla-products-list.cjs.entry.js +1 -1
- package/dist/cjs/salla-products-slider.cjs.entry.js +1 -1
- package/dist/cjs/salla-quick-order.cjs.entry.js +1 -1
- package/dist/cjs/salla-rating-modal-v2.cjs.entry.js +1 -1
- package/dist/cjs/salla-rating-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-review-factors-tags.cjs.entry.js +1 -1
- package/dist/cjs/salla-review-order-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-scopes.cjs.entry.js +4 -2
- package/dist/cjs/salla-search.cjs.entry.js +1 -1
- package/dist/cjs/salla-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/salla-social-share.cjs.entry.js +1 -1
- package/dist/cjs/salla-social.cjs.entry.js +1 -1
- package/dist/cjs/salla-tab-content_3.cjs.entry.js +1 -1
- package/dist/cjs/salla-tiered-offer.cjs.entry.js +1 -1
- package/dist/cjs/salla-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/salla-trust-badges.cjs.entry.js +1 -1
- package/dist/cjs/salla-user-menu.cjs.entry.js +1 -1
- package/dist/cjs/salla-user-profile.cjs.entry.js +1 -1
- package/dist/cjs/salla-user-settings.cjs.entry.js +1 -1
- package/dist/cjs/salla-verify.cjs.entry.js +1 -1
- package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
- package/dist/cjs/salla-wishlist-actions.cjs.entry.js +1 -1
- package/dist/cjs/twilight.cjs.js +2 -2
- package/dist/cjs/{vanilla-picker-DdIwY7TN.js → vanilla-picker-BkTzr0I6.js} +1 -1
- package/dist/collection/components/salla-gifting/salla-gifting.css +3 -0
- package/dist/collection/components/salla-gifting/salla-gifting.js +106 -3
- package/dist/collection/components/salla-scopes/salla-scopes.js +3 -1
- package/dist/components/apple-pay-order-options.js +86 -0
- package/dist/components/index.js +2 -2
- package/dist/components/salla-gifting.js +165 -20
- package/dist/components/salla-quick-buy2.js +1 -82
- package/dist/components/salla-scopes.js +3 -1
- package/dist/esm/apple-pay-order-options-Bg2HuLRr.js +86 -0
- package/dist/esm/{filepond-CqbRA3Vl.js → filepond-OzvsJA0M.js} +1 -1
- package/dist/esm/{filepond-plugin-file-poster-Byt9onuT.js → filepond-plugin-file-poster-CDQfaOXY.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-size-C1P2OJEv.js → filepond-plugin-file-validate-size-1vRv7vgS.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-type-BP2FLMsG.js → filepond-plugin-file-validate-type-pajN7jZu.js} +1 -1
- package/dist/esm/{filepond-plugin-image-edit-C69hhmiF.js → filepond-plugin-image-edit-93DCmlU_.js} +1 -1
- package/dist/esm/{filepond-plugin-image-exif-orientation-B2QzeXLq.js → filepond-plugin-image-exif-orientation-CncCUIVb.js} +1 -1
- package/dist/esm/{filepond-plugin-image-preview-CR1odLVd.js → filepond-plugin-image-preview-Mz81wKGp.js} +1 -1
- package/dist/esm/{index-Q9lz4Iuq.js → index-Dx4PTJFl.js} +18 -22
- package/dist/esm/{intlTelInput-DzbfeHCl.js → intlTelInput-DEYUtZO9.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 +2 -83
- package/dist/esm/salla-advertisement.entry.js +1 -1
- package/dist/esm/salla-alert_2.entry.js +1 -1
- package/dist/esm/salla-app-install-alert.entry.js +1 -1
- package/dist/esm/salla-applied-filters.entry.js +1 -1
- package/dist/esm/salla-apps-icons.entry.js +1 -1
- package/dist/esm/salla-attachment-view_9.entry.js +10 -10
- package/dist/esm/salla-badge.entry.js +1 -1
- package/dist/esm/salla-basket-gap.entry.js +1 -1
- package/dist/esm/salla-bullet-delivery_3.entry.js +1 -1
- package/dist/esm/salla-cart-coupons.entry.js +1 -1
- package/dist/esm/salla-cart-item-offers_2.entry.js +1 -1
- package/dist/esm/salla-cart-summary-card.entry.js +1 -1
- package/dist/esm/salla-cashback-banner.entry.js +1 -1
- package/dist/esm/salla-comment-factors.entry.js +1 -1
- package/dist/esm/salla-comment-form_9.entry.js +1 -1
- package/dist/esm/salla-conditional-offer.entry.js +1 -1
- package/dist/esm/salla-contacts.entry.js +1 -1
- package/dist/esm/salla-cookies-bar.entry.js +1 -1
- package/dist/esm/{salla-count-down.entry.js → salla-count-down_2.entry.js} +209 -2
- package/dist/esm/salla-custom-fields.entry.js +1 -1
- package/dist/esm/salla-delivery-promise.entry.js +1 -1
- package/dist/esm/salla-edit-order-button.entry.js +1 -1
- package/dist/esm/salla-filters-widget.entry.js +1 -1
- package/dist/esm/salla-filters.entry.js +1 -1
- package/dist/esm/salla-fulfillment-methods.entry.js +1 -1
- package/dist/esm/salla-gifting.entry.js +108 -5
- 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-slider.entry.js → salla-map_3.entry.js} +828 -2
- 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-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-order-options-modal_2.entry.js → salla-product-card.entry.js} +2 -209
- package/dist/esm/salla-product-size-guide.entry.js +1 -1
- package/dist/esm/salla-products-list.entry.js +1 -1
- package/dist/esm/salla-products-slider.entry.js +1 -1
- package/dist/esm/salla-quick-order.entry.js +1 -1
- package/dist/esm/salla-rating-modal-v2.entry.js +1 -1
- package/dist/esm/salla-rating-modal.entry.js +1 -1
- package/dist/esm/salla-review-factors-tags.entry.js +1 -1
- package/dist/esm/salla-review-order-item.entry.js +1 -1
- package/dist/esm/salla-scopes.entry.js +4 -2
- package/dist/esm/salla-search.entry.js +1 -1
- package/dist/esm/salla-skeleton.entry.js +1 -1
- package/dist/esm/salla-social-share.entry.js +1 -1
- package/dist/esm/salla-social.entry.js +1 -1
- package/dist/esm/salla-tab-content_3.entry.js +1 -1
- package/dist/esm/salla-tiered-offer.entry.js +1 -1
- package/dist/esm/salla-tooltip.entry.js +1 -1
- package/dist/esm/salla-trust-badges.entry.js +1 -1
- package/dist/esm/salla-user-menu.entry.js +1 -1
- package/dist/esm/salla-user-profile.entry.js +1 -1
- package/dist/esm/salla-user-settings.entry.js +1 -1
- package/dist/esm/salla-verify.entry.js +1 -1
- package/dist/esm/salla-wallet.entry.js +1 -1
- package/dist/esm/salla-wishlist-actions.entry.js +1 -1
- package/dist/esm/twilight.js +3 -3
- package/dist/esm/{vanilla-picker-DZSS4OVz.js → vanilla-picker-43VIKXEr.js} +1 -1
- package/dist/twilight/{p-4bac36be.entry.js → p-01dde8da.entry.js} +1 -1
- package/dist/twilight/p-05333b72.entry.js +4 -0
- package/dist/twilight/{p-7022989a.entry.js → p-05920338.entry.js} +1 -1
- package/dist/twilight/{p-7e8b2b0d.entry.js → p-05ed463f.entry.js} +1 -1
- package/dist/twilight/{p-25b7344e.entry.js → p-08c448e7.entry.js} +1 -1
- package/dist/twilight/{p-4abffe52.entry.js → p-0f475a9c.entry.js} +1 -1
- package/dist/twilight/{p-89aad90f.entry.js → p-129d396b.entry.js} +1 -1
- package/dist/twilight/{p-34dfff49.entry.js → p-12a40f7d.entry.js} +1 -1
- package/dist/twilight/{p-808fef3d.entry.js → p-144a349d.entry.js} +1 -1
- package/dist/twilight/{p-1242708e.entry.js → p-15470633.entry.js} +1 -1
- package/dist/twilight/{p-fe34bfd0.entry.js → p-1627f8c5.entry.js} +1 -1
- package/dist/twilight/{p-5b94bea7.entry.js → p-16c9bb12.entry.js} +1 -1
- package/dist/twilight/{p-79e2d7eb.entry.js → p-1a0db854.entry.js} +1 -1
- package/dist/twilight/{p-06abf9fb.entry.js → p-204db13a.entry.js} +1 -1
- package/dist/twilight/{p-8920aae0.entry.js → p-21b5ef79.entry.js} +1 -1
- package/dist/twilight/{p-c7482df4.entry.js → p-21dfba32.entry.js} +1 -1
- package/dist/twilight/{p-ae5ce421.entry.js → p-24950b7c.entry.js} +1 -1
- package/dist/twilight/{p-e69f6c43.entry.js → p-24a5e070.entry.js} +1 -1
- package/dist/twilight/{p-36aa4c09.entry.js → p-26bf1509.entry.js} +1 -1
- package/dist/twilight/{p-6867eb35.entry.js → p-2718a5f2.entry.js} +1 -1
- package/dist/twilight/{p-8abf3859.entry.js → p-2941175d.entry.js} +1 -1
- package/dist/twilight/{p-aa1af88d.entry.js → p-2dfbb461.entry.js} +1 -1
- package/dist/twilight/{p-f0cefe50.entry.js → p-2f137e63.entry.js} +1 -1
- package/dist/twilight/{p-d7c03cf7.entry.js → p-360e4f8e.entry.js} +1 -1
- package/dist/twilight/{p-a24168ae.entry.js → p-378efeff.entry.js} +1 -1
- package/dist/twilight/{p-7d3899e7.entry.js → p-3b4e2cf3.entry.js} +1 -1
- package/dist/twilight/{p-492c72eb.entry.js → p-3b9cf7e4.entry.js} +1 -1
- package/dist/twilight/{p-7dda74dd.entry.js → p-40e417f1.entry.js} +1 -1
- package/dist/twilight/{p-06109ef0.entry.js → p-422c19a5.entry.js} +1 -1
- package/dist/twilight/{p-e0868b92.entry.js → p-45f512a8.entry.js} +1 -1
- package/dist/twilight/{p-f7c2ff0f.entry.js → p-4be292da.entry.js} +1 -1
- package/dist/twilight/{p-bfa2b7c5.entry.js → p-50a2be61.entry.js} +1 -1
- package/dist/twilight/{p-e6b1dd40.entry.js → p-5197cc6a.entry.js} +1 -1
- package/dist/twilight/{p-462a49e4.entry.js → p-58ee3cea.entry.js} +1 -1
- package/dist/twilight/{p-bf860754.entry.js → p-619a9a6e.entry.js} +1 -1
- package/dist/twilight/{p-f632b2f7.entry.js → p-6343cd09.entry.js} +1 -1
- package/dist/twilight/{p-c90ff0bf.entry.js → p-6533ba39.entry.js} +1 -1
- package/dist/twilight/{p-b881f716.entry.js → p-6b62d934.entry.js} +1 -1
- package/dist/twilight/{p-5d671536.entry.js → p-6ee230b4.entry.js} +1 -1
- package/dist/twilight/{p-b92af898.entry.js → p-6fffb603.entry.js} +1 -1
- package/dist/twilight/{p-eddf3ee5.entry.js → p-74510683.entry.js} +1 -1
- package/dist/twilight/{p-53e430c6.entry.js → p-74a4437f.entry.js} +1 -1
- package/dist/twilight/{p-9f4fef0f.entry.js → p-7709f0dd.entry.js} +1 -1
- package/dist/twilight/{p-bd389ba7.entry.js → p-79b4ca8e.entry.js} +1 -1
- package/dist/twilight/{p-9118b3cf.entry.js → p-7d3355a8.entry.js} +1 -1
- package/dist/twilight/{p-a7417d3a.entry.js → p-8123e013.entry.js} +1 -1
- package/dist/twilight/{p-00bb1a13.entry.js → p-8137113a.entry.js} +1 -1
- package/dist/twilight/{p-61ca8dd2.entry.js → p-8140d052.entry.js} +1 -1
- package/dist/twilight/p-8968b284.entry.js +4 -0
- package/dist/twilight/{p-a0e73c0f.entry.js → p-8a57a89a.entry.js} +1 -1
- package/dist/twilight/{p-0bb678e7.entry.js → p-8bb4da9c.entry.js} +1 -1
- package/dist/twilight/{p-31394018.entry.js → p-8bb74e84.entry.js} +1 -1
- package/dist/twilight/{p-31d03d8c.entry.js → p-8ff29a31.entry.js} +1 -1
- package/dist/twilight/{p-49cbb9ed.entry.js → p-90677c84.entry.js} +1 -1
- package/dist/twilight/{p-7d9e3032.entry.js → p-919b40e3.entry.js} +1 -1
- package/dist/twilight/{p-7f2bc499.entry.js → p-92a471ea.entry.js} +1 -1
- package/dist/twilight/{p-5470f52a.entry.js → p-955661c8.entry.js} +1 -1
- package/dist/twilight/{p-c6ed3a34.entry.js → p-9c0e3e8f.entry.js} +1 -1
- package/dist/twilight/{p-f4207ccf.entry.js → p-9c5571a0.entry.js} +1 -1
- package/dist/twilight/{p-VPmzkmKU.js → p-B5U60WIk.js} +2 -2
- package/dist/twilight/{p-CPEEGqkw.js → p-BKvFlB2x.js} +1 -1
- package/dist/twilight/p-Bg2HuLRr.js +4 -0
- package/dist/twilight/{p-BCwAi8HD.js → p-C1H-fEuk.js} +1 -1
- package/dist/twilight/{p-CA-ne4vX.js → p-Cgw3EhC4.js} +1 -1
- package/dist/twilight/{p-Ce0SoG8e.js → p-ChQewA0U.js} +1 -1
- package/dist/twilight/{p-sDtjU0pK.js → p-Dccf61n9.js} +1 -1
- package/dist/twilight/{p-Q9lz4Iuq.js → p-Dx4PTJFl.js} +1 -1
- package/dist/twilight/{p-B31LPQuk.js → p-HzrPs4_N.js} +1 -1
- package/dist/twilight/{p-DPu3dYaG.js → p-ILDsy-mr.js} +1 -1
- package/dist/twilight/{p-d70c704f.entry.js → p-a2c2f78b.entry.js} +1 -1
- package/dist/twilight/{p-f5485435.entry.js → p-a2cae5fd.entry.js} +1 -1
- package/dist/twilight/{p-2845de1c.entry.js → p-a4d28c99.entry.js} +1 -1
- package/dist/twilight/{p-e305f635.entry.js → p-a7bdbeb1.entry.js} +1 -1
- package/dist/twilight/{p-bbdec84a.entry.js → p-a7ee89d7.entry.js} +1 -1
- package/dist/twilight/{p-4b827efc.entry.js → p-a95b7da2.entry.js} +1 -1
- package/dist/twilight/{p-40b70c18.entry.js → p-a965c7da.entry.js} +1 -1
- package/dist/twilight/{p-92fbada7.entry.js → p-aa88c61e.entry.js} +1 -1
- package/dist/twilight/{p-688b40b4.entry.js → p-acff1e55.entry.js} +1 -1
- package/dist/twilight/{p-6f6d6f45.entry.js → p-b1d3bdb6.entry.js} +1 -1
- package/dist/twilight/{p-ff6672b6.entry.js → p-b54f9dd8.entry.js} +1 -1
- package/dist/twilight/{p-382e5a40.entry.js → p-b572b38c.entry.js} +1 -1
- package/dist/twilight/p-bdfceb12.entry.js +4 -0
- package/dist/twilight/{p-7deba3f8.entry.js → p-be080eb3.entry.js} +1 -1
- package/dist/twilight/p-bfd1e64f.entry.js +4 -0
- package/dist/twilight/{p-52e1754b.entry.js → p-c0ff19e0.entry.js} +1 -1
- package/dist/twilight/p-c2823b78.entry.js +4 -0
- package/dist/twilight/{p-008dcf73.entry.js → p-c2f2a752.entry.js} +1 -1
- package/dist/twilight/{p-56e93806.entry.js → p-c53d45d1.entry.js} +1 -1
- package/dist/twilight/{p-0100262e.entry.js → p-c653dbde.entry.js} +1 -1
- package/dist/twilight/{p-1dc63988.entry.js → p-c6708390.entry.js} +1 -1
- package/dist/twilight/{p-c0599e5d.entry.js → p-cabecab4.entry.js} +1 -1
- package/dist/twilight/{p-729f3fa0.entry.js → p-cadfb356.entry.js} +1 -1
- package/dist/twilight/{p-67b60d33.entry.js → p-cddaa208.entry.js} +1 -1
- package/dist/twilight/{p-3c0705e2.entry.js → p-d97e4c69.entry.js} +1 -1
- package/dist/twilight/{p-25017fcd.entry.js → p-e1109a12.entry.js} +1 -1
- package/dist/twilight/{p-54bdc583.entry.js → p-e315d524.entry.js} +1 -1
- package/dist/twilight/{p-ce8205e2.entry.js → p-e4dd05a7.entry.js} +1 -1
- package/dist/twilight/{p-d6a04817.entry.js → p-e5b29085.entry.js} +1 -1
- package/dist/twilight/{p-27176c04.entry.js → p-e97e121a.entry.js} +1 -1
- package/dist/twilight/{p-754af3dd.entry.js → p-f1587a83.entry.js} +1 -1
- package/dist/twilight/p-f4e80187.entry.js +4 -0
- package/dist/twilight/{p-ea3480ff.entry.js → p-f5cff7aa.entry.js} +1 -1
- package/dist/twilight/{p-WyyaE0fN.js → p-lRRdZqp5.js} +1 -1
- package/dist/twilight/twilight.esm.js +1 -1
- package/dist/types/components/salla-gifting/salla-gifting.d.ts +29 -0
- package/package.json +5 -5
- package/dist/cjs/salla-map_2.cjs.entry.js +0 -835
- package/dist/esm/salla-map_2.entry.js +0 -832
- package/dist/twilight/p-171c1927.entry.js +0 -4
- package/dist/twilight/p-4941b3cd.entry.js +0 -4
- package/dist/twilight/p-6860331a.entry.js +0 -4
- package/dist/twilight/p-79451510.entry.js +0 -4
- package/dist/twilight/p-8bcf6db3.entry.js +0 -4
- package/dist/twilight/p-a70cbfe9.entry.js +0 -4
- package/dist/twilight/p-dfc67513.entry.js +0 -4
|
@@ -8,12 +8,17 @@ import LeftArrow from "../../assets/svg/arrow-left.svg";
|
|
|
8
8
|
import Cancel from "../../assets/svg/cancel.svg";
|
|
9
9
|
import GiftSharing from "../../assets/svg/gift-sharing.svg";
|
|
10
10
|
import Alert from "../../assets/svg/alert.svg";
|
|
11
|
+
import { appendOrderOptionsToPayload } from "../salla-order-options-modal/apple-pay-order-options";
|
|
11
12
|
/**
|
|
12
13
|
* @slot widget-btn-content - Used to customize widget button content.
|
|
13
14
|
*/
|
|
14
15
|
export class SallaGifting {
|
|
15
16
|
constructor() {
|
|
16
17
|
this.defaultEvent = "gifting:open";
|
|
18
|
+
/** Order options picked in the pre-gift modal, sent as `order_options` with the gift payload. */
|
|
19
|
+
this.collectedOrderOptions = [];
|
|
20
|
+
/** Live PDP price, kept in sync by `onPriceUpdated`, used to seed the order-options total. */
|
|
21
|
+
this.livePrice = 0;
|
|
17
22
|
this.selectImageForYourGift = salla.lang.get('blocks.buy_as_gift.select_image_for_your_gift');
|
|
18
23
|
this.currentStep = 1;
|
|
19
24
|
this.showCalendar = false;
|
|
@@ -156,10 +161,12 @@ export class SallaGifting {
|
|
|
156
161
|
return null;
|
|
157
162
|
}
|
|
158
163
|
componentDidLoad() {
|
|
159
|
-
salla.event.product.onPriceUpdated(() => {
|
|
164
|
+
salla.event.product.onPriceUpdated((response) => {
|
|
160
165
|
const quantityInput = document.querySelector(`.s-quantity-input-input`);
|
|
161
166
|
// @ts-ignore
|
|
162
167
|
this.quantity = quantityInput?.value;
|
|
168
|
+
// Seeds the order-options modal total so it reflects the current variant/quantity price.
|
|
169
|
+
this.livePrice = Number(response?.data?.price) || this.livePrice;
|
|
163
170
|
});
|
|
164
171
|
}
|
|
165
172
|
getFormDataFromForm() {
|
|
@@ -184,6 +191,93 @@ export class SallaGifting {
|
|
|
184
191
|
}
|
|
185
192
|
return formData;
|
|
186
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* Order-options gate. Two shapes, because the two gifting entry points already differ:
|
|
196
|
+
*
|
|
197
|
+
* - **Cart page**: the order-option forms are rendered inline and synced to the cart on change,
|
|
198
|
+
* so gifting reuses the cart-submit check — block on invalid, never re-ask in a modal.
|
|
199
|
+
* - **PDP**: nothing renders the options, so they're collected in the shared
|
|
200
|
+
* <salla-order-options-modal> *before* the gifting modal, the same modal and sequence the PDP
|
|
201
|
+
* uses for Quick Purchase and Apple Pay.
|
|
202
|
+
*
|
|
203
|
+
* Returns false when the buyer must fix something first (invalid inline form, or a dismissed
|
|
204
|
+
* modal); the gifting modal then stays closed and they retry from the widget button.
|
|
205
|
+
*/
|
|
206
|
+
async collectOrderOptions() {
|
|
207
|
+
this.collectedOrderOptions = [];
|
|
208
|
+
if (!this.productId) {
|
|
209
|
+
return this.validateInlineCartOptions();
|
|
210
|
+
}
|
|
211
|
+
const { products, basePrice } = this.getOrderOptionsTarget();
|
|
212
|
+
if (!products.length) {
|
|
213
|
+
return true;
|
|
214
|
+
}
|
|
215
|
+
let response;
|
|
216
|
+
try {
|
|
217
|
+
response = await salla.api.withoutNotifier(() => salla.product.api.getOrderOptions(products));
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
salla?.logger?.warn?.('order-options: fetch failed', error);
|
|
221
|
+
return true;
|
|
222
|
+
}
|
|
223
|
+
const orderOptions = response?.data?.order_options || [];
|
|
224
|
+
if (!orderOptions.length) {
|
|
225
|
+
return true;
|
|
226
|
+
}
|
|
227
|
+
const price = basePrice > 0 ? basePrice : Number(response?.data?.products?.[0]?.price?.amount) || 0;
|
|
228
|
+
try {
|
|
229
|
+
const result = await this.ensureOrderOptionsModal().open({ orderOptions, basePrice: price });
|
|
230
|
+
this.collectedOrderOptions = result?.orderOptions || [];
|
|
231
|
+
return true;
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
// dismissed — keep the gifting modal closed.
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Same check the theme runs on cart submit: every `form[id^="item-"]` (cart items *and* the
|
|
240
|
+
* inline order-option forms) must be valid. Values are already on the cart — each form syncs
|
|
241
|
+
* through `cart.updateItem` on change — so nothing is collected here, gifting is only blocked.
|
|
242
|
+
*/
|
|
243
|
+
validateInlineCartOptions() {
|
|
244
|
+
const forms = document.querySelectorAll('form[id^="item-"]');
|
|
245
|
+
let isValid = true;
|
|
246
|
+
forms.forEach(form => {
|
|
247
|
+
if (!form.reportValidity()) {
|
|
248
|
+
isValid = false;
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
if (!isValid) {
|
|
252
|
+
salla.error(salla.lang.get('common.messages.required_fields'));
|
|
253
|
+
}
|
|
254
|
+
return isValid;
|
|
255
|
+
}
|
|
256
|
+
/** What to ask order options for on the PDP. `basePrice` seeds the modal's live total. */
|
|
257
|
+
getOrderOptionsTarget() {
|
|
258
|
+
return {
|
|
259
|
+
products: [{ id: this.productId, quantity: this.getGiftQuantity() }],
|
|
260
|
+
basePrice: this.livePrice,
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
/** `quantity` state is only seeded on price updates, so fall back to the product form. */
|
|
264
|
+
getGiftQuantity() {
|
|
265
|
+
const fromState = Number(this.quantity);
|
|
266
|
+
if (Number.isFinite(fromState) && fromState > 0) {
|
|
267
|
+
return fromState;
|
|
268
|
+
}
|
|
269
|
+
const fromForm = Number(this.getFormDataFromForm()?.get('quantity'));
|
|
270
|
+
return Number.isFinite(fromForm) && fromForm > 0 ? fromForm : 1;
|
|
271
|
+
}
|
|
272
|
+
/** Get-or-create the singleton order-options modal on <body>. */
|
|
273
|
+
ensureOrderOptionsModal() {
|
|
274
|
+
let modal = document.querySelector('salla-order-options-modal');
|
|
275
|
+
if (!modal) {
|
|
276
|
+
modal = document.createElement('salla-order-options-modal');
|
|
277
|
+
document.body.appendChild(modal);
|
|
278
|
+
}
|
|
279
|
+
return modal;
|
|
280
|
+
}
|
|
187
281
|
/**
|
|
188
282
|
* Show / Open the gifting modal window
|
|
189
283
|
*/
|
|
@@ -193,6 +287,12 @@ export class SallaGifting {
|
|
|
193
287
|
salla.event.dispatch('login::open', { withoutReload: true });
|
|
194
288
|
return;
|
|
195
289
|
}
|
|
290
|
+
// Required customizations can't be bypassed by gifting: the order-options modal runs first, and
|
|
291
|
+
// dismissing it keeps the gifting modal closed. Runs here (not in the button handler) so the
|
|
292
|
+
// `gifting:open` event and the after-login re-entry go through the same gate.
|
|
293
|
+
if (!(await this.collectOrderOptions())) {
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
196
296
|
// Reopen on step 1, but KEEP the user's selections (image / text / custom
|
|
197
297
|
// message / sender+receiver). The modal element is never destroyed, so its
|
|
198
298
|
// state and DOM survive close→reopen without a page refresh — we only reset
|
|
@@ -697,6 +797,9 @@ export class SallaGifting {
|
|
|
697
797
|
formData = this.getFormDataFromForm() || new FormData();
|
|
698
798
|
formData = this.mergeObjectToFormData(giftPayload, formData);
|
|
699
799
|
}
|
|
800
|
+
// PDP flow only — the cart flow's options are already on the cart, and the API keeps existing
|
|
801
|
+
// selections when the request carries no `order_options`.
|
|
802
|
+
appendOrderOptionsToPayload(formData ?? giftPayload, this.collectedOrderOptions);
|
|
700
803
|
const addGiftMethod = this.productId
|
|
701
804
|
? () => salla.product.addProductGiftToCart(this.productId, formData, true)
|
|
702
805
|
: () => salla.cart.addCartGiftToCart(giftPayload, true);
|
|
@@ -749,7 +852,7 @@ export class SallaGifting {
|
|
|
749
852
|
}
|
|
750
853
|
render() {
|
|
751
854
|
return [
|
|
752
|
-
h("div", { key: '
|
|
855
|
+
h("div", { key: 'fd15533a1dbb57c0bbf31d66046b7051b63221d7' }, h("salla-list-tile", { key: 'b6f298371176e3fc829a8f0a7de775adbc70f903', class: this.generateClass() }, h("div", { key: '46c0dfc5d7d89576d411b5765d92a72b3dd289ba', slot: "title" }, this.vertical ? h("span", { innerHTML: GiftSharing }) : '', h("h3", { key: 'd0b9bbd243458f9ea25aa7a970d3084d16ca56a8' }, !!this.widgetTitle ? this.widgetTitle : this.sectionTitle)), h("div", { key: '0ac470d3daa813ca8177e9f92c9c0eec402784b0', slot: "subtitle" }, h("div", { key: 'a783624dfe67959544cd70b3a087ccd004fb517f' }, !!this.widgetSubtitle ? this.widgetSubtitle : this.sectionSubtitle)), h("div", { key: 'd76689c03fdff0aa9ff50323227a191e8aa7aa11', slot: "action" }, h("salla-button", { key: '1516f29ca50b92f78a8f7e5a07daa9e70740dae9', color: "primary", fill: "outline", width: "wide", class: "s-gifting-widget-action", onClick: () => this.handleGiftButtonClick() }, h("slot", { key: '9d9b070b98e7a60736ca87347b0982a3034681a2', name: "widget-btn-content" }, h("div", { key: '4813d5f3bf85c3f5a0eefb5bd5478a009b6aceb2', class: "s-gifting-widget-action-content" }, h("span", { key: '738760ee256892c2f654ebae06877ca6cdaf0bec', innerHTML: GiftSharing }), " \u00A0", h("span", { key: 'bb181feda8126bd541517dabe107c44ab4da177a' }, this.sectionBtnText)))))), h("salla-modal", { key: '0d4478c6d9cf6bd1e75e81dca234c05af9303e0e', id: this.hostId, isLoading: true, class: "s-gifting-modal", width: "sm", ref: modal => this.modal = modal }, h("div", { key: 'cea9b69f0af18a825f1cf4ac979fb571cc4b497f', slot: "loading" }, h("div", { key: '8190baa4b26d4de58ea98a4bd3662a54ca024e3a', class: "s-gifting-skeleton" }, h("div", { key: '6271ba338d1e85c5337f9b4956b2b0eb1c610669', class: "s-gifting-modal-header" }, h("salla-skeleton", { key: '77fb7f73e5dd748b69c9ed7263e3cefc9b24d643', type: 'circle', height: '5rem', width: '5rem' }), h("h2", { key: '4e436f8ad10aad25ffb84632973376855c0d803d', class: "s-gifting-modal-title" }, h("div", { key: '98c17840dd15e6d8495bd709a76d257001a3c2f3', class: "s-gifting-modal-badge-wrapper" }, h("salla-skeleton", { key: '9582b325011b36f5dbb7bf70a044554e339af05a', height: '15px', width: '150px' })))), h("div", { key: 'd95d5c41fb226a654e62c183fcababcf1a1af9b5', class: "s-gifting-skeleton-content" }, h("salla-skeleton", { key: '73ee2dd11f30ad370261a9b88324f40a52607973', height: '10px', width: '150px' }), h("salla-skeleton", { key: '8b07be46818f49401a5c7aae8a19de0445e9785e', height: '230px' }), h("salla-skeleton", { key: '6a7a9ff47ad18efdfc51d2c70dba6cf89c572974', height: '10px', width: '150px' }), h("salla-skeleton", { key: 'f033c20b65077bfa99fb302415e10ff55f2d112d', height: '30px' }), h("salla-skeleton", { key: '60bf4740d16b9cf852536315b62d1abafc14e4d5', height: '40px' })))), h("slot", { key: 'eac7b126556b6895457fdd0c87f15b872975947f', name: "header" }), !!this.hasError ?
|
|
753
856
|
h("salla-placeholder", { alignment: "center" }, h("span", { slot: "title" }, this.errorMessage || salla.lang.get('common.errors.empty_results')), h("span", { slot: "description" }, " "))
|
|
754
857
|
:
|
|
755
858
|
[
|
|
@@ -772,7 +875,7 @@ export class SallaGifting {
|
|
|
772
875
|
h("div", { class: this.step2ItemClass(this.errors?.['receiver.city_id'] ? 's-form-group s-form-has-error' : 's-form-group') }, h("label", { class: "s-form-label", htmlFor: `${this.hostId}-city` }, this.receiverCityFieldLabel), h("salla-searchable-dropdown", { placeholder: this.selectCity, items: this.displayedCities, selectedItem: this.selectedCity, loading: this.loadingCities, searching: this.searchingCities, disabled: this.loadingCities || (this.isKSA && !this.selectedRegionId), required: true, inputId: `${this.hostId}-city`, searchQuery: this.citySearchQuery, clientSearch: !this.enableCityAjaxSearch, dropUp: true, keepParentScroll: true, onItemSelected: (e) => this.handleCitySelected(e.detail), onSearchInput: (e) => this.handleCitySearch(e.detail), onDropdownClosed: () => this.handleCityDropdownClosed() }), this.errors && this.errors['receiver.city_id'] ?
|
|
773
876
|
h("span", { class: "s-gifting-error" }, this.errors['receiver.city_id']) : ''), this.isPhysical() && this.cityNoticeText() &&
|
|
774
877
|
h("div", { class: this.step2ItemClass('s-gifting-info') }, h("span", { innerHTML: Alert }), h("span", null, this.cityNoticeText())), !this.isPhysical() && h("div", { class: this.step2ItemClass() }, h("label", { class: "s-gifting-schedule s-gifting-clickable", htmlFor: `schedule-${this.hostId}` }, h("input", { type: "checkbox", name: 'schedule', id: `schedule-${this.hostId}`, onChange: () => this.toggleCalendar(), class: "s-checkbox" }), h("span", { class: "s-form-label" }, " ", this.sendLater, " "))), h("div", { class: this.getCalendarClasses(), ref: (el) => this.calendarFormGroup = el }, h("label", { class: "s-form-label" }, this.selectSendDateAndTime), h("salla-datetime-picker", { value: this.deliveryDate, placeholder: this.selectSendDateAndTime, "enable-time": true, "date-format": "Y-m-d h:i K", onPicked: (event) => this.handleDateTimePicker(event) }), h("span", { class: "s-gifting-calendar-hint" }, this.canNotEditOrderAfterSelectDate)), h("div", { class: this.step2ItemClass('s-gifting-step-two-footer') }, !this.skipStep1() && h("a", { href: "#!", innerHTML: LeftArrow, onClick: (e) => this.goToStep1(e) }), h("salla-button", { onClick: () => this.submitForm(), color: "primary", width: 'wide' }, h("span", null, this.sendGift)))))
|
|
775
|
-
], h("slot", { key: '
|
|
878
|
+
], h("slot", { key: '8f516d4a4275f867f0564ef7aa187fb2bcc1e32f', name: "footer" })))
|
|
776
879
|
];
|
|
777
880
|
}
|
|
778
881
|
static get is() { return "salla-gifting"; }
|
|
@@ -39,7 +39,9 @@ export class SallaScopees {
|
|
|
39
39
|
? "blocks.scope.shopping_from_another_market"
|
|
40
40
|
: "blocks.scope.shopping_from_another_branch");
|
|
41
41
|
}
|
|
42
|
-
return salla.lang.get(
|
|
42
|
+
return salla.lang.get(isMultiCountries
|
|
43
|
+
? 'blocks.scope.search_for_availability_in_other_markets'
|
|
44
|
+
: 'blocks.scope.search_for_availability_in_other_branches');
|
|
43
45
|
};
|
|
44
46
|
salla.event.on('scopes::open', ({ mode = null, product_id = null } = {}) => {
|
|
45
47
|
this.open(mode, product_id);
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Crafted with ❤ by Salla
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Order-options helpers for the Apple Pay quick-buy flow — keeps <salla-quick-buy> to thin AP wiring.
|
|
6
|
+
* Apple Pay resolves options inside the session-started hook (single gesture), so the caller owns
|
|
7
|
+
* the ApplePaySession and drives it via callbacks.
|
|
8
|
+
*/
|
|
9
|
+
/** Get-or-create the singleton order-options modal on <body>. */
|
|
10
|
+
function ensureOrderOptionsModal() {
|
|
11
|
+
let modal = document.querySelector('salla-order-options-modal');
|
|
12
|
+
if (!modal) {
|
|
13
|
+
modal = document.createElement('salla-order-options-modal');
|
|
14
|
+
document.body.appendChild(modal);
|
|
15
|
+
}
|
|
16
|
+
return modal;
|
|
17
|
+
}
|
|
18
|
+
/** Sync PDP-option validity (an `await` would consume the Apple Pay gesture). Skips hidden/disabled inputs. */
|
|
19
|
+
function reportProductOptionsValiditySync(productId) {
|
|
20
|
+
const optionsElement = document.querySelector(`salla-product-options[product-id="${productId}"]`);
|
|
21
|
+
if (!optionsElement)
|
|
22
|
+
return true;
|
|
23
|
+
const requiredInputs = optionsElement.querySelectorAll('[required]');
|
|
24
|
+
let pass = true;
|
|
25
|
+
requiredInputs.forEach((input) => {
|
|
26
|
+
if (input.disabled || input.closest('.hidden'))
|
|
27
|
+
return;
|
|
28
|
+
if ('reportValidity' in input && !input.reportValidity())
|
|
29
|
+
pass = false;
|
|
30
|
+
});
|
|
31
|
+
return pass;
|
|
32
|
+
}
|
|
33
|
+
/** Merge collected order-options into the quick-purchase payload (FormData or plain object). */
|
|
34
|
+
function appendOrderOptionsToPayload(data, orderOptions) {
|
|
35
|
+
if (!orderOptions.length)
|
|
36
|
+
return;
|
|
37
|
+
if (data && typeof data.append === 'function') {
|
|
38
|
+
orderOptions.forEach((entry, i) => {
|
|
39
|
+
data.append(`order_options[${i}][id]`, String(entry.id));
|
|
40
|
+
data.append(`order_options[${i}][value]`, String(entry.value));
|
|
41
|
+
});
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (data && typeof data === 'object') {
|
|
45
|
+
data.order_options = orderOptions;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Fetch order options and, if any, collect them via the modal (apple-pay mode). Callbacks drive the
|
|
50
|
+
* caller's pre-created session: `beginPendingSession` (no options), `discardPendingSession` (options
|
|
51
|
+
* found — the modal's AP button starts a fresh one), `onSubmit` (submitted).
|
|
52
|
+
*/
|
|
53
|
+
async function resolveApplePayOrderOptions(opts) {
|
|
54
|
+
let resp;
|
|
55
|
+
try {
|
|
56
|
+
resp = await salla.api.withoutNotifier(() => salla.product.api.getOrderOptions([{ id: opts.productId, quantity: opts.quantity }]));
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
salla?.logger?.warn?.('order-options: fetch failed', error);
|
|
60
|
+
opts.beginPendingSession();
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const items = resp?.data?.order_options || [];
|
|
64
|
+
if (!items.length) {
|
|
65
|
+
opts.beginPendingSession(); // begin() doesn't need a fresh gesture
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
opts.discardPendingSession(); // drop the unused session; the modal builds a fresh one
|
|
69
|
+
const basePrice = Number(opts.amount) > 0
|
|
70
|
+
? Number(opts.amount)
|
|
71
|
+
: Number(resp?.data?.products?.[0]?.price?.amount) || 0;
|
|
72
|
+
const modal = ensureOrderOptionsModal();
|
|
73
|
+
try {
|
|
74
|
+
await modal.open({
|
|
75
|
+
orderOptions: items,
|
|
76
|
+
basePrice,
|
|
77
|
+
paymentMode: 'apple-pay',
|
|
78
|
+
onSubmit: opts.onSubmit,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
// dismissed — no live session
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export { reportProductOptionsValiditySync as a, appendOrderOptionsToPayload as b, resolveApplePayOrderOptions as r };
|