@salla.sa/twilight-components 2.14.389 → 2.14.391
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{filepond-D-Sm5mfd.js → filepond-DFNeUlJZ.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-poster-D_Q9tOzh.js → filepond-plugin-file-poster-CdscjCyV.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-size-jE8i9yLT.js → filepond-plugin-file-validate-size-CeIHus23.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-type-ClNK2GsY.js → filepond-plugin-file-validate-type-B-xReGXI.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-edit-BtI2loP1.js → filepond-plugin-image-edit-BEZKgnin.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-exif-orientation-DFksd-cT.js → filepond-plugin-image-exif-orientation-BsIhjiXV.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-preview-B6iy7dvj.js → filepond-plugin-image-preview-CgGyHHMF.js} +1 -1
- package/dist/cjs/{index-CZzG9P8m.js → index-RCgJUM7B.js} +34 -10
- package/dist/cjs/{index-PbcABX0l.js → index-U__MmWip.js} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/salla-accordion-body_2.cjs.entry.js +63 -0
- package/dist/cjs/salla-accordion_6.cjs.entry.js +1 -1
- package/dist/cjs/salla-add-product-button_4.cjs.entry.js +1 -1
- 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-apps-icons.cjs.entry.js +1 -1
- package/dist/cjs/salla-booking-field_7.cjs.entry.js +10 -10
- package/dist/cjs/salla-bullet-delivery.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-comment-form_8.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 +196 -0
- package/dist/cjs/salla-custom-fields.cjs.entry.js +1 -1
- package/dist/cjs/salla-delivery-promise.cjs.entry.js +230 -0
- 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 +45 -0
- package/dist/cjs/salla-gifting.cjs.entry.js +91 -16
- 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-prize-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-program.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-accordion-body_3.cjs.entry.js → salla-map.cjs.entry.js} +1 -57
- 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-notification-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-notifications.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-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 +95 -0
- package/dist/cjs/salla-order-edit.cjs.entry.js +181 -0
- 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-count-down_2.cjs.entry.js → salla-product-card.cjs.entry.js} +1 -160
- 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-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/salla-quick-order.cjs.entry.js +1 -1
- package/dist/cjs/salla-rating-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-scopes.cjs.entry.js +1 -1
- package/dist/cjs/salla-search.cjs.entry.js +1 -1
- package/dist/cjs/salla-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/salla-slider.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/twilight.cjs.js +2 -2
- package/dist/cjs/{vanilla-picker-BP4lqf-K.js → vanilla-picker-yWlr4I9a.js} +1 -1
- package/dist/collection/collection-manifest.json +4 -0
- package/dist/collection/components/salla-count-down/salla-count-down.css +4 -0
- package/dist/collection/components/salla-count-down/salla-count-down.js +122 -13
- package/dist/collection/components/salla-delivery-promise/interfaces.js +1 -0
- package/dist/collection/components/salla-delivery-promise/salla-delivery-promise.js +247 -0
- package/dist/collection/components/salla-fulfillment-methods/salla-fulfillment-methods.js +51 -0
- package/dist/collection/components/salla-gifting/salla-gifting.js +96 -15
- package/dist/collection/components/salla-order-edit/interfaces.js +1 -0
- package/dist/collection/components/salla-order-edit/salla-order-edit-item.css +0 -0
- package/dist/collection/components/salla-order-edit/salla-order-edit-item.js +185 -0
- package/dist/collection/components/salla-order-edit/salla-order-edit.css +0 -0
- package/dist/collection/components/salla-order-edit/salla-order-edit.js +256 -0
- package/dist/components/index.js +2 -2
- package/dist/components/salla-count-down2.js +49 -13
- package/dist/components/salla-delivery-promise.d.ts +11 -0
- package/dist/components/salla-delivery-promise.js +266 -0
- package/dist/components/salla-fulfillment-methods.d.ts +11 -0
- package/dist/components/salla-fulfillment-methods.js +64 -0
- package/dist/components/salla-gifting.js +96 -15
- package/dist/components/salla-order-edit-item.d.ts +11 -0
- package/dist/components/salla-order-edit-item.js +9 -0
- package/dist/components/salla-order-edit-item2.js +184 -0
- package/dist/components/salla-order-edit.d.ts +11 -0
- package/dist/components/salla-order-edit.js +291 -0
- package/dist/components/salla-quantity-input.js +1 -125
- package/dist/components/salla-quantity-input2.js +130 -0
- package/dist/esm/{filepond-PPWykQxI.js → filepond-dioc1UNj.js} +1 -1
- package/dist/esm/{filepond-plugin-file-poster-BRSyNznG.js → filepond-plugin-file-poster-BpOMmY57.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-size-BKa_IBRc.js → filepond-plugin-file-validate-size-D3zrIASS.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-type-B2Gqcysx.js → filepond-plugin-file-validate-type-C_O5sg3V.js} +1 -1
- package/dist/esm/{filepond-plugin-image-edit-C0UvZ9iA.js → filepond-plugin-image-edit-vV9cFwQt.js} +1 -1
- package/dist/esm/{filepond-plugin-image-exif-orientation-Dmzu9ZJy.js → filepond-plugin-image-exif-orientation-DQHJunT0.js} +1 -1
- package/dist/esm/{filepond-plugin-image-preview-CaZ36U6e.js → filepond-plugin-image-preview-CK8pdQ2g.js} +1 -1
- package/dist/esm/{index-C3w2qMi0.js → index-B6FFbRiW.js} +1 -1
- package/dist/esm/{index-CyfZeaV2.js → index-BBHnyTVS.js} +34 -10
- package/dist/esm/loader.js +3 -3
- package/dist/esm/salla-accordion-body_2.entry.js +60 -0
- package/dist/esm/salla-accordion_6.entry.js +1 -1
- package/dist/esm/salla-add-product-button_4.entry.js +1 -1
- 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-apps-icons.entry.js +1 -1
- package/dist/esm/salla-booking-field_7.entry.js +10 -10
- package/dist/esm/salla-bullet-delivery.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-comment-form_8.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 +194 -0
- package/dist/esm/salla-custom-fields.entry.js +1 -1
- package/dist/esm/salla-delivery-promise.entry.js +228 -0
- 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 +43 -0
- package/dist/esm/salla-gifting.entry.js +91 -16
- 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-prize-item.entry.js +1 -1
- package/dist/esm/salla-loyalty-program.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-accordion-body_3.entry.js → salla-map.entry.js} +2 -56
- 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-notification-item.entry.js +1 -1
- package/dist/esm/salla-notifications.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-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 +93 -0
- package/dist/esm/salla-order-edit.entry.js +179 -0
- 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-count-down_2.entry.js → salla-product-card.entry.js} +2 -160
- 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-progress-bar.entry.js +1 -1
- package/dist/esm/salla-quick-order.entry.js +1 -1
- package/dist/esm/salla-rating-modal.entry.js +1 -1
- package/dist/esm/salla-scopes.entry.js +1 -1
- package/dist/esm/salla-search.entry.js +1 -1
- package/dist/esm/salla-skeleton.entry.js +1 -1
- package/dist/esm/salla-slider.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/twilight.js +3 -3
- package/dist/esm/{vanilla-picker-BnLjo9lg.js → vanilla-picker-DSMkPxn-.js} +1 -1
- package/dist/twilight/p-01cb129f.entry.js +4 -0
- package/dist/twilight/{p-CKAWVE2E.js → p-03jJUGJM.js} +1 -1
- package/dist/twilight/{p-414f399b.entry.js → p-042206f2.entry.js} +1 -1
- package/dist/twilight/{p-8c1f6ff5.entry.js → p-0557c403.entry.js} +1 -1
- package/dist/twilight/{p-f9b6a945.entry.js → p-06d3f60c.entry.js} +1 -1
- package/dist/twilight/{p-8538541b.entry.js → p-099267e9.entry.js} +1 -1
- package/dist/twilight/{p-d224ad78.entry.js → p-0a779ecb.entry.js} +1 -1
- package/dist/twilight/p-0c45b777.entry.js +4 -0
- package/dist/twilight/{p-c782ba90.entry.js → p-143f385c.entry.js} +1 -1
- package/dist/twilight/p-1646270f.entry.js +4 -0
- package/dist/twilight/{p-7eebae69.entry.js → p-1a7e8dc4.entry.js} +1 -1
- package/dist/twilight/p-1b50e37e.entry.js +4 -0
- package/dist/twilight/{p-f8b53b4a.entry.js → p-1bacbd68.entry.js} +1 -1
- package/dist/twilight/{p-5db4f7be.entry.js → p-214c17ba.entry.js} +1 -1
- package/dist/twilight/{p-5a3fbfcc.entry.js → p-23c450bb.entry.js} +1 -1
- package/dist/twilight/{p-3490e1f2.entry.js → p-2534ee8d.entry.js} +1 -1
- package/dist/twilight/{p-2d3c3fc0.entry.js → p-2690964e.entry.js} +1 -1
- package/dist/twilight/{p-749f87cc.entry.js → p-2f4352f5.entry.js} +1 -1
- package/dist/twilight/{p-fdb99998.entry.js → p-2fd9954e.entry.js} +1 -1
- package/dist/twilight/{p-de4fc6d3.entry.js → p-3094c1a1.entry.js} +1 -1
- package/dist/twilight/{p-313e016b.entry.js → p-31cff9d6.entry.js} +1 -1
- package/dist/twilight/{p-49178d13.entry.js → p-3570139b.entry.js} +1 -1
- package/dist/twilight/p-3a20fbc0.entry.js +4 -0
- package/dist/twilight/{p-fca12e58.entry.js → p-43a3d74b.entry.js} +1 -1
- package/dist/twilight/{p-b6924b12.entry.js → p-43fd9024.entry.js} +1 -1
- package/dist/twilight/{p-7367264c.entry.js → p-45c1eaa8.entry.js} +1 -1
- package/dist/twilight/p-49260c6c.entry.js +4 -0
- package/dist/twilight/{p-f713d4c1.entry.js → p-495a9262.entry.js} +1 -1
- package/dist/twilight/{p-9b03dc5f.entry.js → p-4b78b5b6.entry.js} +1 -1
- package/dist/twilight/{p-92aa6f9c.entry.js → p-4f664ee5.entry.js} +1 -1
- package/dist/twilight/{p-981aa6b2.entry.js → p-5039c032.entry.js} +1 -1
- package/dist/twilight/{p-282b2717.entry.js → p-51eeff00.entry.js} +1 -1
- package/dist/twilight/{p-a3479656.entry.js → p-5abc72fb.entry.js} +1 -1
- package/dist/twilight/{p-52249b73.entry.js → p-5de17423.entry.js} +1 -1
- package/dist/twilight/{p-71e9036c.entry.js → p-5e08505f.entry.js} +1 -1
- package/dist/twilight/{p-7b3e9e94.entry.js → p-64316672.entry.js} +1 -1
- package/dist/twilight/{p-68e1946b.entry.js → p-698cda6b.entry.js} +1 -1
- package/dist/twilight/p-6d9ff62d.entry.js +4 -0
- package/dist/twilight/p-72128782.entry.js +4 -0
- package/dist/twilight/{p-9af46409.entry.js → p-736661d1.entry.js} +1 -1
- package/dist/twilight/{p-6f230886.entry.js → p-73fc8bc2.entry.js} +1 -1
- package/dist/twilight/{p-e51abff8.entry.js → p-78230ff2.entry.js} +1 -1
- package/dist/twilight/{p-9dace77f.entry.js → p-7b1e18b9.entry.js} +1 -1
- package/dist/twilight/p-8735bed6.entry.js +4 -0
- package/dist/twilight/{p-d0d9eaa7.entry.js → p-911df985.entry.js} +1 -1
- package/dist/twilight/{p-b85269f0.entry.js → p-917e279a.entry.js} +1 -1
- package/dist/twilight/{p-0dcadf17.entry.js → p-9623211d.entry.js} +1 -1
- package/dist/twilight/{p-56f20bf9.entry.js → p-98365139.entry.js} +1 -1
- package/dist/twilight/{p-e4984da6.entry.js → p-9a2fa95c.entry.js} +1 -1
- package/dist/twilight/{p-3424772f.entry.js → p-9f09f917.entry.js} +1 -1
- package/dist/twilight/{p-CyfZeaV2.js → p-BBHnyTVS.js} +2 -2
- package/dist/twilight/{p-DV84B4Zf.js → p-BLNd0Q7w.js} +1 -1
- package/dist/twilight/p-BdSnnWWn.js +9 -0
- package/dist/twilight/{p-DgRZXtp7.js → p-BywTh96y.js} +1 -1
- package/dist/twilight/{p-B5sTdzgA.js → p-CWQJdJyB.js} +1 -1
- package/dist/twilight/{p-DaXFe_AG.js → p-CttEbJoQ.js} +1 -1
- package/dist/twilight/{p-oPo_An7U.js → p-HRFCteJK.js} +1 -1
- package/dist/twilight/{p-nDM6sAQW.js → p-IulbkBPB.js} +1 -1
- package/dist/twilight/{p-71199938.entry.js → p-a50a28ea.entry.js} +1 -1
- package/dist/twilight/{p-1fa74395.entry.js → p-abfc0327.entry.js} +1 -1
- package/dist/twilight/{p-9ae66ab7.entry.js → p-b9a7a8b1.entry.js} +1 -1
- package/dist/twilight/{p-646ac137.entry.js → p-bc9aa300.entry.js} +1 -1
- package/dist/twilight/{p-28691a37.entry.js → p-c800360f.entry.js} +1 -1
- package/dist/twilight/{p-83bb3e08.entry.js → p-cc8c8ee0.entry.js} +1 -1
- package/dist/twilight/{p-a5215f9c.entry.js → p-ccf81e66.entry.js} +1 -1
- package/dist/twilight/{p-46715ed4.entry.js → p-ce4e06b8.entry.js} +1 -1
- package/dist/twilight/{p-85e08789.entry.js → p-d375a0d6.entry.js} +1 -1
- package/dist/twilight/{p-ccc3689d.entry.js → p-d5bea7d7.entry.js} +1 -1
- package/dist/twilight/{p-dccaabbe.entry.js → p-daf6d030.entry.js} +1 -1
- package/dist/twilight/{p-6c5ab45f.entry.js → p-db1699d8.entry.js} +1 -1
- package/dist/twilight/{p-75744403.entry.js → p-db8ea013.entry.js} +1 -1
- package/dist/twilight/{p-f2a021d2.entry.js → p-dd95dd45.entry.js} +1 -1
- package/dist/twilight/{p-6b642ef5.entry.js → p-df66218c.entry.js} +1 -1
- package/dist/twilight/{p-0e064e79.entry.js → p-e2a6cc78.entry.js} +1 -1
- package/dist/twilight/{p-b6d4d88f.entry.js → p-e5faf311.entry.js} +1 -1
- package/dist/twilight/{p-8c918f58.entry.js → p-e8ee7b09.entry.js} +1 -1
- package/dist/twilight/{p-016b3b19.entry.js → p-ec2a876a.entry.js} +1 -1
- package/dist/twilight/{p-549d8385.entry.js → p-f08590d7.entry.js} +1 -1
- package/dist/twilight/{p-c48e2a05.entry.js → p-f17b1333.entry.js} +1 -1
- package/dist/twilight/{p-4a0248ab.entry.js → p-f8b8c0da.entry.js} +1 -1
- package/dist/twilight/{p-833e8364.entry.js → p-f8beca67.entry.js} +1 -1
- package/dist/twilight/{p-77a89284.entry.js → p-fc6852a0.entry.js} +1 -1
- package/dist/twilight/{p-69ae622f.entry.js → p-fd540f5b.entry.js} +1 -1
- package/dist/twilight/{p-1a9b64ea.entry.js → p-fe417603.entry.js} +1 -1
- package/dist/twilight/{p-CJnMMMxb.js → p-okSe2zH1.js} +1 -1
- package/dist/twilight/twilight.esm.js +1 -1
- package/dist/types/components/salla-count-down/salla-count-down.d.ts +24 -0
- package/dist/types/components/salla-delivery-promise/interfaces.d.ts +27 -0
- package/dist/types/components/salla-delivery-promise/salla-delivery-promise.d.ts +48 -0
- package/dist/types/components/salla-fulfillment-methods/salla-fulfillment-methods.d.ts +18 -0
- package/dist/types/components/salla-gifting/gift-schema.d.ts +4 -0
- package/dist/types/components/salla-gifting/intefaces.d.ts +1 -0
- package/dist/types/components/salla-gifting/salla-gifting.d.ts +10 -1
- package/dist/types/components/salla-order-edit/interfaces.d.ts +114 -0
- package/dist/types/components/salla-order-edit/salla-order-edit-item.d.ts +35 -0
- package/dist/types/components/salla-order-edit/salla-order-edit.d.ts +42 -0
- package/dist/types/components.d.ts +236 -0
- package/package.json +5 -5
- package/dist/twilight/p-1048b469.entry.js +0 -4
- package/dist/twilight/p-C11T4TVo.js +0 -9
- package/dist/twilight/p-d33f3c58.entry.js +0 -4
- package/dist/twilight/p-fbcc194e.entry.js +0 -4
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
5
5
|
import { d as defineCustomElement$1 } from './salla-button2.js';
|
|
6
6
|
|
|
7
|
-
const sallaCountDownCss = "";
|
|
7
|
+
const sallaCountDownCss = ".s-count-down-horizontal{background-color:rgba(0, 0, 0, 0.06);background-color:color-mix(in srgb, var(--color-primary) 10%, transparent)}";
|
|
8
8
|
|
|
9
9
|
const SallaCountDown = /*@__PURE__*/ proxyCustomElement(class SallaCountDown extends HTMLElement {
|
|
10
10
|
constructor() {
|
|
@@ -22,6 +22,11 @@ const SallaCountDown = /*@__PURE__*/ proxyCustomElement(class SallaCountDown ext
|
|
|
22
22
|
* The digits lang to show in the count down
|
|
23
23
|
* */
|
|
24
24
|
this.digits = 'auto';
|
|
25
|
+
/**
|
|
26
|
+
* If true, hides days segment when days = 0, and hides hours segment when both days and hours = 0.
|
|
27
|
+
* Matches salla-timer behaviour. Off by default for backward compatibility.
|
|
28
|
+
* */
|
|
29
|
+
this.autoSegments = false;
|
|
25
30
|
this.daysLabel = salla.lang.getWithDefault('pages.checkout.day', 'يوم');
|
|
26
31
|
this.hoursLabel = salla.lang.getWithDefault('pages.checkout.hour', 'ساعة');
|
|
27
32
|
this.minutesLabel = salla.lang.getWithDefault('pages.checkout.minute', 'دقيقة');
|
|
@@ -29,6 +34,8 @@ const SallaCountDown = /*@__PURE__*/ proxyCustomElement(class SallaCountDown ext
|
|
|
29
34
|
this.endLabel = salla.lang.getWithDefault('pages.checkout.offer_ended', 'انتهت مدة العرض');
|
|
30
35
|
this.invalidDate = salla.lang.getWithDefault('blocks.buy_as_gift.incorrect_date', 'الرجاء إدخال الموعد بشكل صحيح');
|
|
31
36
|
this.offerEnded = false;
|
|
37
|
+
this.showDays = true;
|
|
38
|
+
this.showHours = true;
|
|
32
39
|
this.days = this.number(0);
|
|
33
40
|
this.hours = this.number(0);
|
|
34
41
|
this.minutes = this.number(0);
|
|
@@ -89,25 +96,48 @@ const SallaCountDown = /*@__PURE__*/ proxyCustomElement(class SallaCountDown ext
|
|
|
89
96
|
return salla.helpers.number(digit, this.digits === 'en');
|
|
90
97
|
}
|
|
91
98
|
startCountDown() {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
99
|
+
const isIsoFormat = this.date.includes('-');
|
|
100
|
+
const isDateOnly = this.endOfDay || this.date.split(' ').length === 1;
|
|
101
|
+
let countDownTime;
|
|
102
|
+
if (isIsoFormat) {
|
|
103
|
+
// Backend KSA date — parse as UTC+3 explicitly
|
|
104
|
+
const dateStr = isDateOnly
|
|
105
|
+
? `${this.date.split(' ')[0]}T23:59:59+03:00`
|
|
106
|
+
: `${this.date.replace(' ', 'T')}+03:00`;
|
|
107
|
+
countDownTime = new Date(dateStr).getTime();
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
// "MMM DD, YYYY HH:mm:ss" format — preserve existing behaviour
|
|
111
|
+
const countDownDate = new Date(this.date);
|
|
112
|
+
if (isDateOnly) {
|
|
113
|
+
countDownDate.setHours(23, 59, 59, 999);
|
|
114
|
+
}
|
|
115
|
+
countDownTime = countDownDate.getTime();
|
|
95
116
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
this.days = this.number(
|
|
101
|
-
this.hours = this.number(
|
|
117
|
+
const tick = () => {
|
|
118
|
+
const distance = countDownTime - Date.now();
|
|
119
|
+
const dRaw = Math.floor(distance / (1000 * 60 * 60 * 24));
|
|
120
|
+
const hRaw = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
|
121
|
+
this.days = this.number(dRaw);
|
|
122
|
+
this.hours = this.number(hRaw);
|
|
102
123
|
this.minutes = this.number(Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)));
|
|
103
124
|
this.seconds = this.number(Math.floor((distance % (1000 * 60)) / 1000));
|
|
125
|
+
if (this.autoSegments) {
|
|
126
|
+
this.showDays = dRaw > 0;
|
|
127
|
+
this.showHours = dRaw > 0 || hRaw > 0;
|
|
128
|
+
}
|
|
104
129
|
if (distance < 0) {
|
|
105
130
|
this.endCountDown();
|
|
106
131
|
}
|
|
107
|
-
}
|
|
132
|
+
};
|
|
133
|
+
this.countInterval = setInterval(tick, 1000);
|
|
134
|
+
tick();
|
|
108
135
|
}
|
|
109
136
|
renderCountDown() {
|
|
110
|
-
|
|
137
|
+
const listStyle = this.listPadding ? { paddingLeft: this.listPadding, paddingRight: this.listPadding } : undefined;
|
|
138
|
+
const resolvedBoxColor = this.boxTheme ? `var(--color-${this.boxTheme})` : this.boxColor;
|
|
139
|
+
const boxStyle = this.boxed && resolvedBoxColor ? { backgroundColor: resolvedBoxColor } : undefined;
|
|
140
|
+
return (h("ul", { class: `s-count-down-list ${this.boxed ? 's-count-down-boxed' : ''} ${this.offerEnded ? 's-count-down-ended' : ''} s-count-down-${this.size} s-count-down-${this.color}`, style: listStyle }, h("li", { class: "s-count-down-item", style: boxStyle }, h("div", { class: "s-count-down-item-value" }, this.seconds), this.labeled && h("div", { class: "s-count-down-item-label" }, this.secondsLabel)), h("li", { class: "s-count-down-item", style: boxStyle }, h("div", { class: "s-count-down-item-value" }, this.minutes), this.labeled && h("div", { class: "s-count-down-item-label" }, this.minutesLabel)), (!this.autoSegments || this.showHours) && (h("li", { class: "s-count-down-item", style: boxStyle }, h("div", { class: "s-count-down-item-value" }, this.hours), this.labeled && h("div", { class: "s-count-down-item-label" }, this.hoursLabel))), (!this.autoSegments || this.showDays) && (h("li", { class: "s-count-down-item", style: boxStyle }, h("div", { class: "s-count-down-item-value" }, this.days), this.labeled && h("div", { class: "s-count-down-item-label" }, this.daysLabel)))));
|
|
111
141
|
}
|
|
112
142
|
renderInvalidDate() {
|
|
113
143
|
return h("div", { class: "s-count-down-text-center" }, this.invalidDate);
|
|
@@ -158,7 +188,7 @@ const SallaCountDown = /*@__PURE__*/ proxyCustomElement(class SallaCountDown ext
|
|
|
158
188
|
return this.renderCountDown();
|
|
159
189
|
}
|
|
160
190
|
render() {
|
|
161
|
-
return (h(Host, { key: '
|
|
191
|
+
return (h(Host, { key: '72c0f5f822ea852674814ced58f323e8b99075c0', class: `s-count-down-wrapper ${this.preOrder && this.isValidDate(this.date) ? 's-count-down-pre-order' : ''} ${this.horizontal ? 's-count-down-horizontal' : ''} ${this.withButton ? 's-count-down-with-button' : ''} ${this.offerEnded ? 's-count-down-ended' : ''}` }, this.renderPrefixText(), this.renderContent(), this.offerEnded && this.renderOfferEnded(), this.renderButton()));
|
|
162
192
|
}
|
|
163
193
|
static get style() { return sallaCountDownCss; }
|
|
164
194
|
}, [0, "salla-count-down", {
|
|
@@ -175,8 +205,12 @@ const SallaCountDown = /*@__PURE__*/ proxyCustomElement(class SallaCountDown ext
|
|
|
175
205
|
"color": [1],
|
|
176
206
|
"labeled": [4],
|
|
177
207
|
"endText": [1, "end-text"],
|
|
208
|
+
"boxColor": [1, "box-color"],
|
|
209
|
+
"boxTheme": [1, "box-theme"],
|
|
210
|
+
"listPadding": [1, "list-padding"],
|
|
178
211
|
"digits": [1],
|
|
179
212
|
"endOfDay": [4, "end-of-day"],
|
|
213
|
+
"autoSegments": [4, "auto-segments"],
|
|
180
214
|
"daysLabel": [32],
|
|
181
215
|
"hoursLabel": [32],
|
|
182
216
|
"minutesLabel": [32],
|
|
@@ -189,6 +223,8 @@ const SallaCountDown = /*@__PURE__*/ proxyCustomElement(class SallaCountDown ext
|
|
|
189
223
|
"hours": [32],
|
|
190
224
|
"minutes": [32],
|
|
191
225
|
"seconds": [32],
|
|
226
|
+
"showDays": [32],
|
|
227
|
+
"showHours": [32],
|
|
192
228
|
"endCountDown": [64]
|
|
193
229
|
}]);
|
|
194
230
|
function defineCustomElement() {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface SallaDeliveryPromise extends Components.SallaDeliveryPromise, HTMLElement {}
|
|
4
|
+
export const SallaDeliveryPromise: {
|
|
5
|
+
prototype: SallaDeliveryPromise;
|
|
6
|
+
new (): SallaDeliveryPromise;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Crafted with ❤ by Salla
|
|
3
|
+
*/
|
|
4
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
5
|
+
import { d as defineCustomElement$2 } from './salla-skeleton2.js';
|
|
6
|
+
|
|
7
|
+
const SallaDeliveryPromise$1 = /*@__PURE__*/ proxyCustomElement(class SallaDeliveryPromise extends HTMLElement {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.__registerHost();
|
|
11
|
+
this.cities = [];
|
|
12
|
+
this.filteredCities = [];
|
|
13
|
+
this.selectedCity = null;
|
|
14
|
+
this.deliveryMessage = null;
|
|
15
|
+
this.isLoadingCities = false;
|
|
16
|
+
this.isLoadingPromises = false;
|
|
17
|
+
this.isDropdownOpen = false;
|
|
18
|
+
this.searchQuery = '';
|
|
19
|
+
this.hasError = false;
|
|
20
|
+
this.errorMessage = '';
|
|
21
|
+
/** i18n labels for city selector only; message comes from BE */
|
|
22
|
+
this.labels = {
|
|
23
|
+
deliveryTo: 'توصيل إلى',
|
|
24
|
+
pickupFromBranch: 'الاستلام من فرع',
|
|
25
|
+
searchPlaceholder: 'بحث...',
|
|
26
|
+
noResults: 'لا توجد نتائج',
|
|
27
|
+
selectCity: 'اختر المدينة',
|
|
28
|
+
};
|
|
29
|
+
this.canRender = false;
|
|
30
|
+
this.requiresShipping = false;
|
|
31
|
+
/** Used only for API calls, not rendered — no need for @State */
|
|
32
|
+
this.productId = undefined;
|
|
33
|
+
this.onClickOutside = (e) => {
|
|
34
|
+
if (this.host.contains(e.target)) {
|
|
35
|
+
return; // click inside component (e.g. search input, city list) — don't close
|
|
36
|
+
}
|
|
37
|
+
this.isDropdownOpen = false;
|
|
38
|
+
window.removeEventListener('click', this.onClickOutside);
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
setLabels() {
|
|
42
|
+
this.labels = {
|
|
43
|
+
deliveryTo: salla.lang.getWithDefault('pages.products.promise_deliver_to', 'توصيل إلى'),
|
|
44
|
+
pickupFromBranch: salla.lang.getWithDefault('pages.products.promise_pickup_from_branch', 'الاستلام من فرع'),
|
|
45
|
+
searchPlaceholder: salla.lang.getWithDefault('blocks.header.search_placeholder', 'بحث...'),
|
|
46
|
+
noResults: salla.lang.getWithDefault('common.elements.no_options', 'لا توجد نتائج'),
|
|
47
|
+
selectCity: salla.lang.getWithDefault('common.elements.select_city', 'اختر المدينة'),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
logger(message, data) {
|
|
51
|
+
if (localStorage.getItem('salla-delivery-promise-debug')) {
|
|
52
|
+
if (data) {
|
|
53
|
+
console.log(message, data);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
console.log(message);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async componentDidLoad() {
|
|
61
|
+
await salla.onReady();
|
|
62
|
+
await salla.lang.onLoaded();
|
|
63
|
+
this.setLabels();
|
|
64
|
+
this.requiresShipping = salla.url.is_page('product.single') &&
|
|
65
|
+
salla.config.get('store.features', []).includes('delivery-promises');
|
|
66
|
+
if (this.requiresShipping) {
|
|
67
|
+
this.logger('requiresShipping', this.requiresShipping);
|
|
68
|
+
this.productId = salla.config.get('page.id');
|
|
69
|
+
this.logger('productId', this.productId);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this.canRender = false;
|
|
73
|
+
this.logger('not requiresShipping', {
|
|
74
|
+
is_product_single: salla.url.is_page('product.single'),
|
|
75
|
+
includesDeliveryPromises: salla.config.get('store.features', []).includes('delivery-promises')
|
|
76
|
+
});
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
await this.fetchCities();
|
|
80
|
+
}
|
|
81
|
+
async fetchCities() {
|
|
82
|
+
this.logger('start startfetchCities');
|
|
83
|
+
this.isLoadingCities = true;
|
|
84
|
+
this.hasError = false;
|
|
85
|
+
try {
|
|
86
|
+
const response = await salla.api.request(salla.url.api(`products/${this.productId}/delivery-promises/cities`));
|
|
87
|
+
if (response.success && Array.isArray(response.data) && response.data.length > 0) {
|
|
88
|
+
this.logger('fetchCities success', { cities: response.data });
|
|
89
|
+
// Sort cities: explicit cities first (id !== -1), then "Rest of cities" (id === -1)
|
|
90
|
+
this.cities = this.sortCities(response.data);
|
|
91
|
+
this.filteredCities = [...this.cities];
|
|
92
|
+
// First, check if API returns a selected city (is_selected: true)
|
|
93
|
+
let cityToSelect = this.cities.find(c => c.is_selected);
|
|
94
|
+
if (!cityToSelect) {
|
|
95
|
+
this.logger('no selectedCity from API response');
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
this.logger('selectedCity', cityToSelect);
|
|
99
|
+
this.selectedCity = cityToSelect;
|
|
100
|
+
await this.fetchDeliveryMessage(cityToSelect.id);
|
|
101
|
+
}
|
|
102
|
+
this.canRender = true;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.logger('no data returned from fetchCities', { response: response });
|
|
106
|
+
this.canRender = false;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
this.logger('fetchCities error', { error: error.message });
|
|
111
|
+
this.hasError = true;
|
|
112
|
+
this.errorMessage = error.message || 'Failed to load cities';
|
|
113
|
+
this.canRender = false;
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
this.isLoadingCities = false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
async fetchDeliveryMessage(cityId) {
|
|
120
|
+
this.logger('start fetchDeliveryMessage', { cityId });
|
|
121
|
+
this.isLoadingPromises = true;
|
|
122
|
+
this.hasError = false;
|
|
123
|
+
this.deliveryMessage = null;
|
|
124
|
+
try {
|
|
125
|
+
const response = await salla.api.withoutNotifier(() => salla.api.request(salla.url.api(`products/${this.productId}/delivery-promises?city_id=${cityId}`)));
|
|
126
|
+
if (response.success && response.data?.message) {
|
|
127
|
+
const message = response.data.message.trim();
|
|
128
|
+
this.logger('fetchDeliveryMessage success', { message });
|
|
129
|
+
this.deliveryMessage = message || null;
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
this.logger('deliveryMessage not valid', { response });
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
this.logger('fetchDeliveryMessage error', { error: error.message });
|
|
137
|
+
this.hasError = true;
|
|
138
|
+
this.errorMessage = error.message || 'Failed to load delivery message';
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
this.isLoadingPromises = false;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
toggleDropdown(e) {
|
|
145
|
+
e?.stopPropagation();
|
|
146
|
+
this.isDropdownOpen = !this.isDropdownOpen;
|
|
147
|
+
if (this.isDropdownOpen) {
|
|
148
|
+
window.addEventListener('click', this.onClickOutside);
|
|
149
|
+
if (this.searchInputRef) {
|
|
150
|
+
setTimeout(() => this.searchInputRef.focus(), 100);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
window.removeEventListener('click', this.onClickOutside);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
disconnectedCallback() {
|
|
158
|
+
window.removeEventListener('click', this.onClickOutside);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Sort cities: explicit cities first (id !== -1), then "Rest of cities" (id === -1) at the end
|
|
162
|
+
*/
|
|
163
|
+
sortCities(cities) {
|
|
164
|
+
return [...cities].sort((a, b) => {
|
|
165
|
+
// "Rest of cities" (id === -1) should always be at the end
|
|
166
|
+
if (a.id === -1)
|
|
167
|
+
return 1;
|
|
168
|
+
if (b.id === -1)
|
|
169
|
+
return -1;
|
|
170
|
+
return 0;
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
handleSearch(event) {
|
|
174
|
+
const query = event.target.value.toLowerCase();
|
|
175
|
+
this.searchQuery = query;
|
|
176
|
+
if (query.length > 0) {
|
|
177
|
+
this.filteredCities = this.cities.filter(city => city.name.toLowerCase()?.includes(query) ||
|
|
178
|
+
(city.name_en || '').toLowerCase()?.includes(query));
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
this.filteredCities = [...this.cities];
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
async selectCity(city) {
|
|
185
|
+
this.logger('selectCity', { city: city });
|
|
186
|
+
this.selectedCity = city;
|
|
187
|
+
this.isDropdownOpen = false;
|
|
188
|
+
window.removeEventListener('click', this.onClickOutside);
|
|
189
|
+
this.searchQuery = '';
|
|
190
|
+
this.filteredCities = [...this.cities];
|
|
191
|
+
await this.fetchDeliveryMessage(city.id);
|
|
192
|
+
}
|
|
193
|
+
renderDropdown() {
|
|
194
|
+
return (h("div", { class: "s-delivery-promise-dropdown" }, h("div", { class: "s-delivery-promise-dropdown-search" }, h("i", { class: "sicon-search" }), h("input", { type: "text", placeholder: this.labels.searchPlaceholder, value: this.searchQuery, onInput: (e) => this.handleSearch(e), ref: el => this.searchInputRef = el })), h("div", { class: "s-delivery-promise-dropdown-list" }, this.filteredCities.length === 0 ? (h("div", { class: "s-delivery-promise-dropdown-empty" }, this.labels.noResults)) : (this.filteredCities.map(city => (h("div", { key: city.id, class: `s-delivery-promise-dropdown-item ${this.selectedCity?.id === city.id ? 'selected' : ''}`, onClick: () => this.selectCity(city) }, h("span", { class: "s-delivery-promise-city-name" }, city.name), this.selectedCity?.id === city.id && (h("i", { class: "sicon-check" })))))))));
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Skeleton shown during initial city fetch to avoid blank period and layout shift.
|
|
198
|
+
* Matches the structure/size of the real content (header + message area).
|
|
199
|
+
*/
|
|
200
|
+
renderInitialLoadingSkeleton() {
|
|
201
|
+
return (h(Host, { class: "s-delivery-promise-wrapper s-delivery-promise-skeleton" }, h("div", { class: "s-delivery-promise-container" }, h("div", { class: "s-delivery-promise-header s-delivery-promise-header-skeleton" }, h("div", { class: "s-delivery-promise-location" }, h("salla-skeleton", { height: "14px", width: "180px" })), h("salla-skeleton", { height: "18px", width: "18px" })), h("div", { class: "s-delivery-promise-loading" }, h("salla-skeleton", { height: "20px", width: "80%" })))));
|
|
202
|
+
}
|
|
203
|
+
renderDeliveryMessage() {
|
|
204
|
+
if (this.isLoadingPromises) {
|
|
205
|
+
return (h("div", { class: "s-delivery-promise-loading" }, h("salla-skeleton", { height: "20px", width: "80%" })));
|
|
206
|
+
}
|
|
207
|
+
if (!this.deliveryMessage) {
|
|
208
|
+
return null;
|
|
209
|
+
}
|
|
210
|
+
return (h("div", { class: "s-delivery-promise-message" }, this.deliveryMessage));
|
|
211
|
+
}
|
|
212
|
+
render() {
|
|
213
|
+
// Not on product page or delivery-promises disabled — hide entirely
|
|
214
|
+
if (!this.requiresShipping) {
|
|
215
|
+
return null;
|
|
216
|
+
}
|
|
217
|
+
// Initial city fetch: show skeleton to avoid blank period and layout shift
|
|
218
|
+
if (this.isLoadingCities) {
|
|
219
|
+
return this.renderInitialLoadingSkeleton();
|
|
220
|
+
}
|
|
221
|
+
// Fetch done but no cities / error — hide
|
|
222
|
+
if (!this.canRender || this.cities.length === 0) {
|
|
223
|
+
return null;
|
|
224
|
+
}
|
|
225
|
+
return (h(Host, { class: "s-delivery-promise-wrapper" }, h("div", { class: "s-delivery-promise-container" }, h("div", { class: "s-delivery-promise-header", onClick: (e) => this.toggleDropdown(e) }, h("div", { class: "s-delivery-promise-location" }, h("span", { class: "s-delivery-promise-title" }, this.labels.deliveryTo, " ", this.selectedCity?.name || this.labels.selectCity)), h("i", { class: `sicon-keyboard_arrow_down s-delivery-promise-arrow ${this.isDropdownOpen ? 'open' : ''}` })), this.hasError && (h("div", { class: "s-delivery-promise-error" }, this.errorMessage)), this.isDropdownOpen && this.renderDropdown(), !this.hasError && this.renderDeliveryMessage())));
|
|
226
|
+
}
|
|
227
|
+
get host() { return this; }
|
|
228
|
+
}, [0, "salla-delivery-promise", {
|
|
229
|
+
"cities": [32],
|
|
230
|
+
"filteredCities": [32],
|
|
231
|
+
"selectedCity": [32],
|
|
232
|
+
"deliveryMessage": [32],
|
|
233
|
+
"isLoadingCities": [32],
|
|
234
|
+
"isLoadingPromises": [32],
|
|
235
|
+
"isDropdownOpen": [32],
|
|
236
|
+
"searchQuery": [32],
|
|
237
|
+
"hasError": [32],
|
|
238
|
+
"errorMessage": [32],
|
|
239
|
+
"labels": [32],
|
|
240
|
+
"canRender": [32],
|
|
241
|
+
"requiresShipping": [32]
|
|
242
|
+
}]);
|
|
243
|
+
function defineCustomElement$1() {
|
|
244
|
+
if (typeof customElements === "undefined") {
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
const components = ["salla-delivery-promise", "salla-skeleton"];
|
|
248
|
+
components.forEach(tagName => { switch (tagName) {
|
|
249
|
+
case "salla-delivery-promise":
|
|
250
|
+
if (!customElements.get(tagName)) {
|
|
251
|
+
customElements.define(tagName, SallaDeliveryPromise$1);
|
|
252
|
+
}
|
|
253
|
+
break;
|
|
254
|
+
case "salla-skeleton":
|
|
255
|
+
if (!customElements.get(tagName)) {
|
|
256
|
+
defineCustomElement$2();
|
|
257
|
+
}
|
|
258
|
+
break;
|
|
259
|
+
} });
|
|
260
|
+
}
|
|
261
|
+
defineCustomElement$1();
|
|
262
|
+
|
|
263
|
+
const SallaDeliveryPromise = SallaDeliveryPromise$1;
|
|
264
|
+
const defineCustomElement = defineCustomElement$1;
|
|
265
|
+
|
|
266
|
+
export { SallaDeliveryPromise, defineCustomElement };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface SallaFulfillmentMethods extends Components.SallaFulfillmentMethods, HTMLElement {}
|
|
4
|
+
export const SallaFulfillmentMethods: {
|
|
5
|
+
prototype: SallaFulfillmentMethods;
|
|
6
|
+
new (): SallaFulfillmentMethods;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Crafted with ❤ by Salla
|
|
3
|
+
*/
|
|
4
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
5
|
+
|
|
6
|
+
const SallaFulfillmentMethods$1 = /*@__PURE__*/ proxyCustomElement(class SallaFulfillmentMethods extends HTMLElement {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
this.methods = [];
|
|
11
|
+
this.shouldRender = false;
|
|
12
|
+
}
|
|
13
|
+
async componentDidLoad() {
|
|
14
|
+
await Salla.onReady();
|
|
15
|
+
await Salla.lang.onLoaded();
|
|
16
|
+
if (!Salla.config.get('store.support_pickup'))
|
|
17
|
+
return;
|
|
18
|
+
this.shouldRender = true;
|
|
19
|
+
this.setLabels();
|
|
20
|
+
}
|
|
21
|
+
setLabels() {
|
|
22
|
+
this.methods = [
|
|
23
|
+
{
|
|
24
|
+
id: 'delivery',
|
|
25
|
+
title: Salla.lang.getWithDefault('pages.products.promise_delivery_title', 'متاح للتوصيل'),
|
|
26
|
+
subtitle: Salla.lang.getWithDefault('pages.products.promise_delivery_subtitle', 'طلبك يوصلك لباب البيت بسهولة.'),
|
|
27
|
+
iconClass: 'sicon-location',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
id: 'pickup',
|
|
31
|
+
title: Salla.lang.getWithDefault('pages.products.promise_pickup_title', 'متاح للاستلام'),
|
|
32
|
+
subtitle: Salla.lang.getWithDefault('pages.products.promise_pickup_subtitle', 'استلام فوري من أقرب فرع.'),
|
|
33
|
+
iconClass: 'sicon-store',
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
}
|
|
37
|
+
render() {
|
|
38
|
+
if (!this.shouldRender)
|
|
39
|
+
return null;
|
|
40
|
+
return (h(Host, { class: "s-fulfillment-methods" }, h("div", { class: "s-fulfillment-methods-list" }, this.methods.map((method) => (h("div", { key: method.id, class: "s-fulfillment-methods-card" }, h("div", { class: "s-fulfillment-methods-content" }, h("div", { class: "s-fulfillment-methods-icon-wrap" }, h("i", { class: `${method.iconClass} s-fulfillment-methods-icon` })), h("div", { class: "s-fulfillment-methods-text" }, h("span", { class: "s-fulfillment-methods-title" }, method.title), h("span", { class: "s-fulfillment-methods-subtitle" }, method.subtitle)))))))));
|
|
41
|
+
}
|
|
42
|
+
}, [0, "salla-fulfillment-methods", {
|
|
43
|
+
"methods": [32],
|
|
44
|
+
"shouldRender": [32]
|
|
45
|
+
}]);
|
|
46
|
+
function defineCustomElement$1() {
|
|
47
|
+
if (typeof customElements === "undefined") {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const components = ["salla-fulfillment-methods"];
|
|
51
|
+
components.forEach(tagName => { switch (tagName) {
|
|
52
|
+
case "salla-fulfillment-methods":
|
|
53
|
+
if (!customElements.get(tagName)) {
|
|
54
|
+
customElements.define(tagName, SallaFulfillmentMethods$1);
|
|
55
|
+
}
|
|
56
|
+
break;
|
|
57
|
+
} });
|
|
58
|
+
}
|
|
59
|
+
defineCustomElement$1();
|
|
60
|
+
|
|
61
|
+
const SallaFulfillmentMethods = SallaFulfillmentMethods$1;
|
|
62
|
+
const defineCustomElement = defineCustomElement$1;
|
|
63
|
+
|
|
64
|
+
export { SallaFulfillmentMethods, defineCustomElement };
|