@salla.sa/twilight-components 2.14.594 → 2.14.596
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-DtGoIKEP.js → filepond-MMeFYRaC.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-poster-DMejMF1-.js → filepond-plugin-file-poster-Dd1aobB-.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-size-J_fE6OBS.js → filepond-plugin-file-validate-size-Be46s5wp.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-type-BpewyAzF.js → filepond-plugin-file-validate-type-Cf3OjTHE.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-edit-DPNUTWCK.js → filepond-plugin-image-edit-BDX5qgng.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-exif-orientation-CZ6YRu70.js → filepond-plugin-image-exif-orientation-ilZNc8J4.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-preview-CgV-oWXK.js → filepond-plugin-image-preview-C9c7tVEB.js} +1 -1
- package/dist/cjs/{index-BziKkkwT.js → index-zv0p1Eys.js} +2 -2
- package/dist/cjs/{intlTelInput-BLuZALMt.js → intlTelInput-C8hiSJ_i.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 +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-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 +41 -16
- 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 +68 -15
- package/dist/cjs/salla-cart-item-offers_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-cart-summary-card.cjs.entry.js +29 -4
- 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 +24 -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 +1 -1
- package/dist/cjs/salla-edit-order-button.cjs.entry.js +1 -1
- package/dist/cjs/salla-filters-widget.cjs.entry.js +1 -1
- package/dist/cjs/salla-filters.cjs.entry.js +1 -1
- package/dist/cjs/salla-fulfillment-methods.cjs.entry.js +1 -1
- package/dist/cjs/salla-gift-card-redeem_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-gifting.cjs.entry.js +1 -1
- package/dist/cjs/salla-hook.cjs.entry.js +1 -1
- package/dist/cjs/salla-infinite-scroll.cjs.entry.js +1 -1
- package/dist/cjs/salla-installment.cjs.entry.js +1 -1
- package/dist/cjs/salla-list-tile.cjs.entry.js +1 -1
- package/dist/cjs/salla-localization-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-login-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-banner_10.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-exchange-product-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-points-banner.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-points-history.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty.cjs.entry.js +1 -1
- package/dist/cjs/salla-maintenance-alert.cjs.entry.js +1 -1
- package/dist/cjs/salla-map_3.cjs.entry.js +1 -1
- package/dist/cjs/salla-menu.cjs.entry.js +1 -1
- package/dist/cjs/salla-metadata.cjs.entry.js +1 -1
- package/dist/cjs/salla-multiple-bundle-product-cart_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-multiple-bundle-product-options-modal_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-multiple-bundle-product.cjs.entry.js +1 -1
- package/dist/cjs/salla-next-order-coupon.cjs.entry.js +1 -1
- package/dist/cjs/salla-notification-item_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-offer-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-offer.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-branch.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-cancel.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-details-multiple-bundle-product.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-details-options.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-details.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-edit-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-edit-product-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-edit.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-options-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-shipments.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-summary.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-totals-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-orders.cjs.entry.js +1 -1
- package/dist/cjs/salla-payments.cjs.entry.js +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 +1 -1
- package/dist/cjs/salla-review-order-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-scopes.cjs.entry.js +1 -1
- package/dist/cjs/salla-search-product-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-search.cjs.entry.js +1 -1
- package/dist/cjs/salla-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/salla-social-share.cjs.entry.js +1 -1
- package/dist/cjs/salla-social.cjs.entry.js +1 -1
- package/dist/cjs/salla-tab-content_3.cjs.entry.js +1 -1
- package/dist/cjs/salla-tiered-offer.cjs.entry.js +1 -1
- package/dist/cjs/salla-trust-badges.cjs.entry.js +1 -1
- package/dist/cjs/salla-user-menu.cjs.entry.js +1 -1
- package/dist/cjs/salla-user-profile.cjs.entry.js +1 -1
- package/dist/cjs/salla-user-settings.cjs.entry.js +1 -1
- package/dist/cjs/salla-verify.cjs.entry.js +1 -1
- package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
- package/dist/cjs/salla-wishlist-actions.cjs.entry.js +1 -1
- package/dist/cjs/salla-wishlist-summary.cjs.entry.js +1 -1
- package/dist/cjs/twilight.cjs.js +2 -2
- package/dist/cjs/{vanilla-picker-36O-wrIX.js → vanilla-picker-DRrOfZz0.js} +1 -1
- package/dist/collection/components/salla-cart-coupons/salla-cart-coupons.js +69 -15
- package/dist/collection/components/salla-cart-summary-card/salla-cart-summary-card.js +30 -3
- package/dist/collection/components/salla-comments/salla-comments.js +23 -2
- package/dist/collection/components/salla-file-upload/salla-file-upload.css +3 -0
- package/dist/collection/components/salla-file-upload/salla-file-upload.js +30 -5
- package/dist/components/index.js +2 -2
- package/dist/components/salla-cart-coupons.js +68 -14
- package/dist/components/salla-cart-summary-card.js +30 -3
- package/dist/components/salla-comments.js +23 -2
- package/dist/components/salla-file-upload2.js +31 -6
- package/dist/docs.json +1 -1
- package/dist/esm/{filepond-DZJO0NDO.js → filepond-okemUEVJ.js} +1 -1
- package/dist/esm/{filepond-plugin-file-poster-BGjhc2cd.js → filepond-plugin-file-poster-He-1QDcm.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-size-s9w1K7Bl.js → filepond-plugin-file-validate-size-BoQ9OZHK.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-type-OfI6GFgP.js → filepond-plugin-file-validate-type-BVxE-7xU.js} +1 -1
- package/dist/esm/{filepond-plugin-image-edit-Cfselyr4.js → filepond-plugin-image-edit-DJnNmArQ.js} +1 -1
- package/dist/esm/{filepond-plugin-image-exif-orientation-ConUo4eP.js → filepond-plugin-image-exif-orientation-CgkqV9g5.js} +1 -1
- package/dist/esm/{filepond-plugin-image-preview-BJ4T10Ty.js → filepond-plugin-image-preview-DxbixTNR.js} +1 -1
- package/dist/esm/{index-Bxge4xib.js → index-C1mBhG6Z.js} +2 -2
- package/dist/esm/{intlTelInput-B-IoM3ox.js → intlTelInput-wxpsRy0u.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 +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-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 +41 -16
- 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 +68 -15
- package/dist/esm/salla-cart-item-offers_2.entry.js +1 -1
- package/dist/esm/salla-cart-summary-card.entry.js +29 -4
- 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 +24 -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 +1 -1
- package/dist/esm/salla-edit-order-button.entry.js +1 -1
- package/dist/esm/salla-filters-widget.entry.js +1 -1
- package/dist/esm/salla-filters.entry.js +1 -1
- package/dist/esm/salla-fulfillment-methods.entry.js +1 -1
- package/dist/esm/salla-gift-card-redeem_2.entry.js +1 -1
- package/dist/esm/salla-gifting.entry.js +1 -1
- package/dist/esm/salla-hook.entry.js +1 -1
- package/dist/esm/salla-infinite-scroll.entry.js +1 -1
- package/dist/esm/salla-installment.entry.js +1 -1
- package/dist/esm/salla-list-tile.entry.js +1 -1
- package/dist/esm/salla-localization-modal.entry.js +1 -1
- package/dist/esm/salla-login-modal.entry.js +1 -1
- package/dist/esm/salla-loyalty-banner_10.entry.js +1 -1
- package/dist/esm/salla-loyalty-exchange-product-card.entry.js +1 -1
- package/dist/esm/salla-loyalty-points-banner.entry.js +1 -1
- package/dist/esm/salla-loyalty-points-history.entry.js +1 -1
- package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
- package/dist/esm/salla-loyalty.entry.js +1 -1
- package/dist/esm/salla-maintenance-alert.entry.js +1 -1
- package/dist/esm/salla-map_3.entry.js +1 -1
- package/dist/esm/salla-menu.entry.js +1 -1
- package/dist/esm/salla-metadata.entry.js +1 -1
- package/dist/esm/salla-multiple-bundle-product-cart_2.entry.js +1 -1
- package/dist/esm/salla-multiple-bundle-product-options-modal_2.entry.js +1 -1
- package/dist/esm/salla-multiple-bundle-product.entry.js +1 -1
- package/dist/esm/salla-next-order-coupon.entry.js +1 -1
- package/dist/esm/salla-notification-item_2.entry.js +1 -1
- package/dist/esm/salla-offer-modal.entry.js +1 -1
- package/dist/esm/salla-offer.entry.js +1 -1
- package/dist/esm/salla-order-branch.entry.js +1 -1
- package/dist/esm/salla-order-cancel.entry.js +1 -1
- package/dist/esm/salla-order-details-multiple-bundle-product.entry.js +1 -1
- package/dist/esm/salla-order-details-options.entry.js +1 -1
- package/dist/esm/salla-order-details.entry.js +1 -1
- package/dist/esm/salla-order-edit-item.entry.js +1 -1
- package/dist/esm/salla-order-edit-product-card.entry.js +1 -1
- package/dist/esm/salla-order-edit.entry.js +1 -1
- package/dist/esm/salla-order-options-modal.entry.js +1 -1
- package/dist/esm/salla-order-shipments.entry.js +1 -1
- package/dist/esm/salla-order-summary.entry.js +1 -1
- package/dist/esm/salla-order-totals-card.entry.js +1 -1
- package/dist/esm/salla-orders.entry.js +1 -1
- package/dist/esm/salla-payments.entry.js +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 +1 -1
- package/dist/esm/salla-review-order-item.entry.js +1 -1
- package/dist/esm/salla-scopes.entry.js +1 -1
- package/dist/esm/salla-search-product-card.entry.js +1 -1
- package/dist/esm/salla-search.entry.js +1 -1
- package/dist/esm/salla-skeleton.entry.js +1 -1
- package/dist/esm/salla-social-share.entry.js +1 -1
- package/dist/esm/salla-social.entry.js +1 -1
- package/dist/esm/salla-tab-content_3.entry.js +1 -1
- package/dist/esm/salla-tiered-offer.entry.js +1 -1
- package/dist/esm/salla-trust-badges.entry.js +1 -1
- package/dist/esm/salla-user-menu.entry.js +1 -1
- package/dist/esm/salla-user-profile.entry.js +1 -1
- package/dist/esm/salla-user-settings.entry.js +1 -1
- package/dist/esm/salla-verify.entry.js +1 -1
- package/dist/esm/salla-wallet.entry.js +1 -1
- package/dist/esm/salla-wishlist-actions.entry.js +1 -1
- package/dist/esm/salla-wishlist-summary.entry.js +1 -1
- package/dist/esm/twilight.js +3 -3
- package/dist/esm/{vanilla-picker-D1RSTlum.js → vanilla-picker-CQEJbE9K.js} +1 -1
- package/dist/twilight/{p-6d3d5a0b.entry.js → p-020eb2a1.entry.js} +1 -1
- package/dist/twilight/p-06799084.entry.js +4 -0
- package/dist/twilight/{p-b3213fee.entry.js → p-0a3abfd4.entry.js} +1 -1
- package/dist/twilight/{p-79bb0c41.entry.js → p-0ef388be.entry.js} +1 -1
- package/dist/twilight/{p-6bfcdb38.entry.js → p-1080831a.entry.js} +1 -1
- package/dist/twilight/{p-c0274022.entry.js → p-12a2b743.entry.js} +1 -1
- package/dist/twilight/{p-7ed0db2e.entry.js → p-160476f0.entry.js} +1 -1
- package/dist/twilight/{p-aa96807e.entry.js → p-1a5d0b25.entry.js} +1 -1
- package/dist/twilight/{p-6e42d70f.entry.js → p-1f99db23.entry.js} +1 -1
- package/dist/twilight/{p-3162901e.entry.js → p-21ba0eac.entry.js} +1 -1
- package/dist/twilight/{p-e7e52491.entry.js → p-232c39e9.entry.js} +1 -1
- package/dist/twilight/{p-fae38591.entry.js → p-305ed224.entry.js} +1 -1
- package/dist/twilight/{p-0e1a454b.entry.js → p-342b31ba.entry.js} +1 -1
- package/dist/twilight/{p-530b513d.entry.js → p-3a465851.entry.js} +1 -1
- package/dist/twilight/{p-a912d6a3.entry.js → p-3a4cf66c.entry.js} +1 -1
- package/dist/twilight/{p-35c0ca9a.entry.js → p-3c4702bb.entry.js} +1 -1
- package/dist/twilight/{p-a3a69984.entry.js → p-3dcb5129.entry.js} +1 -1
- package/dist/twilight/{p-e1b0dafc.entry.js → p-43d0c80e.entry.js} +1 -1
- package/dist/twilight/{p-b1dc78db.entry.js → p-474997dd.entry.js} +1 -1
- package/dist/twilight/{p-4543b3b3.entry.js → p-4b0eaa16.entry.js} +1 -1
- package/dist/twilight/{p-9f0459ec.entry.js → p-4bde9c4e.entry.js} +1 -1
- package/dist/twilight/{p-35bc566f.entry.js → p-50bbbd18.entry.js} +1 -1
- package/dist/twilight/{p-57097563.entry.js → p-51c26ce7.entry.js} +1 -1
- package/dist/twilight/{p-c4bf8d24.entry.js → p-54054ab9.entry.js} +1 -1
- package/dist/twilight/{p-f22ec479.entry.js → p-54bc613c.entry.js} +1 -1
- package/dist/twilight/{p-52012794.entry.js → p-58058ae9.entry.js} +1 -1
- package/dist/twilight/{p-c476eaab.entry.js → p-5babb989.entry.js} +1 -1
- package/dist/twilight/{p-abfbba72.entry.js → p-5c1a36ab.entry.js} +1 -1
- package/dist/twilight/{p-0d464350.entry.js → p-5cf3929c.entry.js} +1 -1
- package/dist/twilight/{p-2e5bace8.entry.js → p-5e099f96.entry.js} +1 -1
- package/dist/twilight/{p-5b3a04cd.entry.js → p-5e426c78.entry.js} +1 -1
- package/dist/twilight/{p-d9188e76.entry.js → p-60d06105.entry.js} +1 -1
- package/dist/twilight/{p-fd615606.entry.js → p-62653d93.entry.js} +1 -1
- package/dist/twilight/{p-34454493.entry.js → p-6602a61a.entry.js} +1 -1
- package/dist/twilight/{p-bff2400f.entry.js → p-672a709e.entry.js} +1 -1
- package/dist/twilight/{p-988f6193.entry.js → p-67d3ee58.entry.js} +1 -1
- package/dist/twilight/{p-2c8b8935.entry.js → p-7ac91ace.entry.js} +1 -1
- package/dist/twilight/{p-751ff32d.entry.js → p-8028be6f.entry.js} +1 -1
- package/dist/twilight/{p-572a1f84.entry.js → p-80699771.entry.js} +1 -1
- package/dist/twilight/{p-22f21c95.entry.js → p-81596b48.entry.js} +1 -1
- package/dist/twilight/{p-4362756f.entry.js → p-82939afe.entry.js} +1 -1
- package/dist/twilight/{p-6b90f160.entry.js → p-844176cb.entry.js} +1 -1
- package/dist/twilight/{p-1769ead6.entry.js → p-8513fec2.entry.js} +1 -1
- package/dist/twilight/{p-94e85b3c.entry.js → p-85cff524.entry.js} +1 -1
- package/dist/twilight/{p-b8661b67.entry.js → p-8bdb7f71.entry.js} +1 -1
- package/dist/twilight/{p-51e8c2b2.entry.js → p-8dfdd6c9.entry.js} +1 -1
- package/dist/twilight/{p-b6918b2b.entry.js → p-8eb75cf8.entry.js} +1 -1
- package/dist/twilight/{p-d38b5aaa.entry.js → p-8ec0fc03.entry.js} +1 -1
- package/dist/twilight/{p-f4c94e30.entry.js → p-92f6aa52.entry.js} +1 -1
- package/dist/twilight/{p-d1e4e15e.entry.js → p-97bb12a6.entry.js} +1 -1
- package/dist/twilight/{p-00cb1c25.entry.js → p-9d434410.entry.js} +1 -1
- package/dist/twilight/{p-B5twlAuI.js → p-BB23a2fo.js} +1 -1
- package/dist/twilight/{p-DnoH14HK.js → p-Bm1ywp6t.js} +1 -1
- package/dist/twilight/{p-Bxge4xib.js → p-C1mBhG6Z.js} +1 -1
- package/dist/twilight/{p-DKEu8h4M.js → p-C57CqqgQ.js} +1 -1
- package/dist/twilight/{p-BkWctmFE.js → p-CJPWrlxL.js} +1 -1
- package/dist/twilight/{p-EiLe0Yi_.js → p-CtcjG32v.js} +1 -1
- package/dist/twilight/{p-CWLJmpv-.js → p-DiU9tYvl.js} +1 -1
- package/dist/twilight/{p-W-AkIawg.js → p-E2n9kJc8.js} +1 -1
- package/dist/twilight/{p-CINox5XU.js → p-Gxv67UlH.js} +1 -1
- package/dist/twilight/{p-59256d82.entry.js → p-a11b77df.entry.js} +1 -1
- package/dist/twilight/{p-106ea7ed.entry.js → p-a4aac112.entry.js} +1 -1
- package/dist/twilight/{p-1b56374e.entry.js → p-a52bfa57.entry.js} +1 -1
- package/dist/twilight/{p-fd6fc043.entry.js → p-a9aadc0b.entry.js} +1 -1
- package/dist/twilight/{p-fb119c27.entry.js → p-ac20a6de.entry.js} +1 -1
- package/dist/twilight/{p-b2322278.entry.js → p-b3abf071.entry.js} +1 -1
- package/dist/twilight/{p-0bbd0d06.entry.js → p-bc26490f.entry.js} +1 -1
- package/dist/twilight/{p-c903b6bb.entry.js → p-bef93c52.entry.js} +1 -1
- package/dist/twilight/{p-125482ce.entry.js → p-c28395c6.entry.js} +1 -1
- package/dist/twilight/{p-15824030.entry.js → p-c28c53c3.entry.js} +1 -1
- package/dist/twilight/p-c30bfc0b.entry.js +4 -0
- package/dist/twilight/p-c82f46a9.entry.js +4 -0
- package/dist/twilight/{p-2510973e.entry.js → p-c89282b0.entry.js} +1 -1
- package/dist/twilight/{p-be3f6dbe.entry.js → p-ca7593c0.entry.js} +1 -1
- package/dist/twilight/{p-78963d5d.entry.js → p-caee5b0d.entry.js} +1 -1
- package/dist/twilight/{p-aafa69d6.entry.js → p-cb770a9e.entry.js} +1 -1
- package/dist/twilight/{p-db53740d.entry.js → p-cbcca1ff.entry.js} +1 -1
- package/dist/twilight/p-d6508494.entry.js +4 -0
- package/dist/twilight/{p-30b7383a.entry.js → p-d6d72996.entry.js} +1 -1
- package/dist/twilight/{p-2ef59b30.entry.js → p-d75157e0.entry.js} +1 -1
- package/dist/twilight/{p-64c76ad9.entry.js → p-d81bcfb3.entry.js} +1 -1
- package/dist/twilight/{p-e19a980b.entry.js → p-da9bd7f6.entry.js} +1 -1
- package/dist/twilight/{p-42162de9.entry.js → p-dbc1e40c.entry.js} +1 -1
- package/dist/twilight/{p-790ea507.entry.js → p-dcb5ceda.entry.js} +1 -1
- package/dist/twilight/{p-94970458.entry.js → p-de55326d.entry.js} +1 -1
- package/dist/twilight/{p-51243641.entry.js → p-e00ed6c9.entry.js} +1 -1
- package/dist/twilight/{p-d2e929bd.entry.js → p-e43c49e9.entry.js} +1 -1
- package/dist/twilight/{p-614b7b61.entry.js → p-e4589779.entry.js} +1 -1
- package/dist/twilight/{p-ebbb25fc.entry.js → p-e67b2aa8.entry.js} +1 -1
- package/dist/twilight/{p-09e56514.entry.js → p-e98835e3.entry.js} +1 -1
- package/dist/twilight/{p-66131771.entry.js → p-e9ce8dec.entry.js} +1 -1
- package/dist/twilight/{p-c16b9f4a.entry.js → p-eb718f6b.entry.js} +1 -1
- package/dist/twilight/{p-6e57ff9f.entry.js → p-ec361a66.entry.js} +1 -1
- package/dist/twilight/{p-1d551b52.entry.js → p-f130c67f.entry.js} +1 -1
- package/dist/twilight/{p-a37bc663.entry.js → p-f32de457.entry.js} +1 -1
- package/dist/twilight/{p-30f24d97.entry.js → p-f3985cfd.entry.js} +1 -1
- package/dist/twilight/{p-4cedf139.entry.js → p-f47a1351.entry.js} +1 -1
- package/dist/twilight/{p-4457a289.entry.js → p-f626ef96.entry.js} +1 -1
- package/dist/twilight/{p-2c2f0608.entry.js → p-f643bf2f.entry.js} +1 -1
- package/dist/twilight/{p-f046edd3.entry.js → p-f6df7f8a.entry.js} +1 -1
- package/dist/twilight/{p-df407f01.entry.js → p-f8aa1b23.entry.js} +1 -1
- package/dist/twilight/{p-3e02b792.entry.js → p-fac4da2b.entry.js} +1 -1
- package/dist/twilight/{p-d6d7c6a1.entry.js → p-fd3bb3f2.entry.js} +1 -1
- package/dist/twilight/{p-21d1a687.entry.js → p-fd787b30.entry.js} +1 -1
- package/dist/twilight/{p-BXAODWDa.js → p-pzi0Osm7.js} +1 -1
- package/dist/twilight/twilight.esm.js +1 -1
- package/dist/types/components/salla-cart-coupons/salla-cart-coupons.d.ts +14 -0
- package/dist/types/components/salla-cart-summary-card/salla-cart-summary-card.d.ts +3 -0
- package/dist/types/components/salla-comments/salla-comments.d.ts +3 -0
- package/dist/types/components/salla-file-upload/salla-file-upload.d.ts +1 -0
- package/package.json +5 -5
- package/dist/twilight/p-0835d9ab.entry.js +0 -4
- package/dist/twilight/p-84308a79.entry.js +0 -4
- package/dist/twilight/p-8c229520.entry.js +0 -4
- package/dist/twilight/p-df313b00.entry.js +0 -4
|
@@ -54,12 +54,23 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
|
|
|
54
54
|
// - Single-coupon (flag off): any payload carrying `coupon` re-syncs the input, so a
|
|
55
55
|
// server-side invalidation (e.g. cart drops below the coupon minimum) that emits
|
|
56
56
|
// `coupon: ''` clears the stale code instead of leaving it stuck until a reload.
|
|
57
|
+
// A null `coupon` is dropped from the payload, so a cart holding only a cashback
|
|
58
|
+
// activation code carries `cashback_code` alone — accept that too.
|
|
57
59
|
const carriesCoupons = this.multiCoupon
|
|
58
60
|
? Array.isArray(cartData?.coupons)
|
|
59
|
-
: (cartData && 'coupon' in cartData);
|
|
61
|
+
: (cartData && ('coupon' in cartData || 'cashback_code' in cartData));
|
|
60
62
|
if (carriesCoupons) {
|
|
61
63
|
this.syncAppliedFromCart(cartData);
|
|
62
64
|
}
|
|
65
|
+
else if (this.multiCoupon && cartData && 'cashback_code' in cartData) {
|
|
66
|
+
// Multi-coupon had a blind spot: a cart whose only code is a cashback activation code
|
|
67
|
+
// has no `coupons` array to carry (forApi drops a null `coupon`), so the chip never
|
|
68
|
+
// appeared on a cart::updated that wasn't itself an add/remove. It cannot go through
|
|
69
|
+
// syncAppliedFromCart though — that RE-SEEDS from the payload, and a summary-only
|
|
70
|
+
// update would then drop every stacked coupon, which is exactly what the guard above
|
|
71
|
+
// exists to prevent. So merge the one chip instead of rebuilding the list.
|
|
72
|
+
this.mergeCashbackCodeChip(cartData.cashback_code);
|
|
73
|
+
}
|
|
63
74
|
// Clear error when cart updates
|
|
64
75
|
this.couponError = '';
|
|
65
76
|
};
|
|
@@ -99,6 +110,24 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
|
|
|
99
110
|
this.onInput = (event) => {
|
|
100
111
|
this.couponInputValue = event.target.value;
|
|
101
112
|
};
|
|
113
|
+
/**
|
|
114
|
+
* Seed the chip list and the active coupon from a cart object.
|
|
115
|
+
* Multi-coupon: use the cart's `coupons` array (survives refresh).
|
|
116
|
+
* Single-coupon (default): use the single `coupon` code.
|
|
117
|
+
* A cashback activation code (`cashback_code`) is shown like an applied coupon; removing it
|
|
118
|
+
* goes through the same coupon delete calls, which clear it on the server.
|
|
119
|
+
*/
|
|
120
|
+
/**
|
|
121
|
+
* Add the cashback activation code to the existing chips without touching the rest.
|
|
122
|
+
*
|
|
123
|
+
* Additive only, on purpose: removal already flows through the explicit remove path, which
|
|
124
|
+
* refreshes from the server with a real `coupons` array. Inferring removal here is not
|
|
125
|
+
* possible anyway — nothing marks which chip is the cashback one — and guessing would risk
|
|
126
|
+
* deleting a real coupon.
|
|
127
|
+
*/
|
|
128
|
+
/** The cashback code this component merged into the chips, so a later update can replace
|
|
129
|
+
* or clear exactly that one without touching a real coupon. */
|
|
130
|
+
this.mergedCashbackCode = '';
|
|
102
131
|
}
|
|
103
132
|
async componentWillLoad() {
|
|
104
133
|
await Salla.onReady();
|
|
@@ -232,7 +261,7 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
|
|
|
232
261
|
// cart-details nests the cart under data.cart (same shape addCoupon/deleteCoupon read).
|
|
233
262
|
const cart = response?.data?.cart ?? response?.data ?? response;
|
|
234
263
|
if (cart && typeof cart === 'object' &&
|
|
235
|
-
(Array.isArray(cart.coupons) || 'coupon' in cart)) {
|
|
264
|
+
(Array.isArray(cart.coupons) || 'coupon' in cart || 'cashback_code' in cart)) {
|
|
236
265
|
this.applyCart(cart);
|
|
237
266
|
return;
|
|
238
267
|
}
|
|
@@ -251,17 +280,41 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
|
|
|
251
280
|
this.syncCartTotal(cart);
|
|
252
281
|
this.syncAppliedFromCart(cart);
|
|
253
282
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
283
|
+
mergeCashbackCodeChip(code) {
|
|
284
|
+
const next = (code || '').trim();
|
|
285
|
+
const prev = (this.mergedCashbackCode || '').trim();
|
|
286
|
+
if (next.toLowerCase() === prev.toLowerCase())
|
|
287
|
+
return;
|
|
288
|
+
// Drop the code WE merged last time before adding the new one. Purely additive
|
|
289
|
+
// merging left a stale chip behind whenever the code was replaced or cleared, so a
|
|
290
|
+
// shopper could see two cashback chips, or one for a code no longer on the cart.
|
|
291
|
+
// Only ever removes the tracked value — never a real coupon, which we have no way to
|
|
292
|
+
// distinguish otherwise. An ABSENT `cashback_code` key still means "no information",
|
|
293
|
+
// not "removed", and never reaches here.
|
|
294
|
+
const kept = prev
|
|
295
|
+
? this.appliedCoupons.filter(c => (c || '').toLowerCase() !== prev.toLowerCase())
|
|
296
|
+
: [...this.appliedCoupons];
|
|
297
|
+
const already = kept.some(c => (c || '').toLowerCase() === next.toLowerCase());
|
|
298
|
+
this.appliedCoupons = next && !already ? [...kept, next] : kept;
|
|
299
|
+
this.mergedCashbackCode = next;
|
|
300
|
+
if (prev && this.currentCoupon.toLowerCase() === prev.toLowerCase()) {
|
|
301
|
+
this.currentCoupon = next;
|
|
302
|
+
}
|
|
303
|
+
else if (next) {
|
|
304
|
+
this.currentCoupon = this.currentCoupon || next;
|
|
305
|
+
}
|
|
306
|
+
this.buildMergedCoupons();
|
|
307
|
+
}
|
|
259
308
|
syncAppliedFromCart(cart) {
|
|
260
|
-
this.currentCoupon = cart?.coupon || '';
|
|
309
|
+
this.currentCoupon = cart?.coupon || cart?.cashback_code || '';
|
|
310
|
+
// Keep the merge tracker in step with the rebuilt list. Without this the tracker went
|
|
311
|
+
// stale the moment a full payload rebuilt appliedCoupons, so the NEXT cashback-only
|
|
312
|
+
// update compared against a value no longer on the cart — leaving the old chip,
|
|
313
|
+
// appending a replacement beside it, or skipping a valid code.
|
|
314
|
+
this.mergedCashbackCode = (cart?.cashback_code || '').trim();
|
|
261
315
|
if (this.multiCoupon) {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
: (this.currentCoupon ? [this.currentCoupon] : []);
|
|
316
|
+
const coupons = Array.isArray(cart?.coupons) ? cart.coupons : [cart?.coupon];
|
|
317
|
+
this.appliedCoupons = [...coupons, cart?.cashback_code].filter(Boolean);
|
|
265
318
|
// The payload sends `applied_coupons` keyed BY CODE, which is the useful shape for a
|
|
266
319
|
// lookup; a plain list is accepted too so neither side depends on the other's choice.
|
|
267
320
|
const cards = cart?.applied_coupons;
|
|
@@ -575,7 +628,7 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
|
|
|
575
628
|
}
|
|
576
629
|
render() {
|
|
577
630
|
const couponRow = this.couponRow();
|
|
578
|
-
return (h(Host, { key: '
|
|
631
|
+
return (h(Host, { key: '79d820f5931ca33571e6897f4e5a09413e02cf96' }, h("div", { key: '7c55aa93e8f4bc44c76606e1af4cb593cab0e7b2', class: "s-cart-coupons-wrapper" }, h("div", { key: '7deee9dc280b91008c9f29eab2c7dbb42fb4d586', class: "s-cart-coupons-input-section" }, h("label", { key: 'f4362e77c3031c8bdacdbd0bd126f7df3c973583', htmlFor: "coupon-input", class: "s-cart-coupons-coupon-label" }, salla.lang.get('pages.cart.have_coupon')), h("div", { key: '631dce1aeb71c6bfc80d00869c0974ffedb3f932', class: "s-cart-coupons-coupon-input-container" }, this.multiCoupon ? [
|
|
579
632
|
// Multi-coupon: input stays active to append more codes; applied coupons render
|
|
580
633
|
// as removable chips below.
|
|
581
634
|
h("input", { type: "text", id: "coupon-input", name: "coupon", class: `form-input ${this.couponError ? 's-coupon-input-error' : ''}`, placeholder: salla.lang.get('pages.cart.coupon_placeholder'), value: this.couponInputValue, disabled: this.isApplying, onInput: this.onInput, onKeyUp: this.onKeyUp, "aria-label": salla.lang.get('pages.cart.apply_coupon'), key: "coupon-input" }),
|
|
@@ -586,7 +639,7 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
|
|
|
586
639
|
// a new code can only be entered after removing. Reuses the existing master classes.
|
|
587
640
|
h("input", { type: "text", id: "coupon-input", name: "coupon", class: `form-input ${this.couponError ? 's-coupon-input-error' : ''}`, placeholder: salla.lang.get('pages.cart.coupon_placeholder'), value: this.couponInputValue, disabled: !!this.currentCoupon || this.isApplying, onInput: this.onInput, onKeyUp: this.onKeyUp, "aria-label": salla.lang.get('pages.cart.apply_coupon'), key: "coupon-input" }),
|
|
588
641
|
h("salla-button", { ref: el => this.couponButtonRef = el, class: `s-cart-coupons-coupon-button ${this.currentCoupon ? 's-cart-coupons-coupon-button-remove' : 's-cart-coupons-coupon-button-apply'}`, color: this.currentCoupon ? 'danger' : 'primary', loading: this.isApplying, "loader-position": "center", onClick: () => this.handleCouponButtonClick(), key: "apply-button" }, this.currentCoupon ? (h("i", { class: "sicon-cancel" })) : (h("span", null, salla.lang.get('pages.cart.save_coupon')))),
|
|
589
|
-
]), this.couponError && (h("span", { key: '
|
|
642
|
+
]), this.couponError && (h("span", { key: '9713718d67c8c4ff4daeffc47572ac3cabea6905', class: "s-cart-coupons-coupon-error" }, this.couponError))), couponRow.length > 0 && (h("salla-slider", { type: "carousel", showControls: false, class: "s-cart-coupons-slider",
|
|
590
643
|
/* salla-slider hands its slot children to Swiper, which MOVES them out of the
|
|
591
644
|
`slot="items"` div into its own .swiper-wrapper. Stencil then patches against a
|
|
592
645
|
tree that no longer exists where it expects, so a slide added to a list that
|
|
@@ -595,7 +648,7 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
|
|
|
595
648
|
against dynamic custom components inside it. Keying on the exact code list
|
|
596
649
|
makes Stencil discard and remount the slider whenever the set changes, so
|
|
597
650
|
Swiper re-initialises over the full, correct set of slides. */
|
|
598
|
-
key: couponRow.map(entry => entry.code).join('|') }, h("div", { key: '
|
|
651
|
+
key: couponRow.map(entry => entry.code).join('|') }, h("div", { key: '4b96603ef79b45b312a87755850b3c81cc51deea', slot: "items" }, couponRow.map(entry => this.renderCouponCard(entry))))))));
|
|
599
652
|
}
|
|
600
653
|
get host() { return this; }
|
|
601
654
|
static get style() { return sallaCartCouponsCss; }
|
|
@@ -611,6 +664,7 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
|
|
|
611
664
|
"mergedCoupons": [32],
|
|
612
665
|
"appliedCouponCards": [32],
|
|
613
666
|
"multiCoupon": [32],
|
|
667
|
+
"mergedCashbackCode": [32],
|
|
614
668
|
"selectCoupon": [64]
|
|
615
669
|
}]);
|
|
616
670
|
function defineCustomElement$1() {
|
|
@@ -20,6 +20,8 @@ const SallaCartSummaryCard$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartS
|
|
|
20
20
|
this.cartCount = 0;
|
|
21
21
|
this.cartTotal = 0;
|
|
22
22
|
this.cartTotalDiscount = 0;
|
|
23
|
+
/** Active cashback (automatic or code-unlocked) — folded into the savings badge alongside the coupon discount. */
|
|
24
|
+
this.cartCashbackAmount = 0;
|
|
23
25
|
this.cartSubTotal = 0;
|
|
24
26
|
this.cartOptionsTotal = 0;
|
|
25
27
|
this.cartShippingCost = 0;
|
|
@@ -131,6 +133,7 @@ const SallaCartSummaryCard$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartS
|
|
|
131
133
|
this.vatTaxLabel = salla.lang.get('pages.cart.VAT_tax_amount');
|
|
132
134
|
this.savedLabel = salla.lang.get('pages.cart.discount');
|
|
133
135
|
this.discountBadge = salla.lang.get('pages.cart.saved');
|
|
136
|
+
this.cashbackLabel = salla.lang.get('pages.checkout.cashback');
|
|
134
137
|
this.finalTotalLabel = salla.lang.get('pages.cart.final_total');
|
|
135
138
|
this.pricesTaxedLabel = salla.lang.get('pages.cart.prices_taxed');
|
|
136
139
|
this.completeOrderLabel = salla.lang.get('pages.cart.complete_order');
|
|
@@ -257,8 +260,10 @@ const SallaCartSummaryCard$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartS
|
|
|
257
260
|
// skeleton either way so the CTA always renders.
|
|
258
261
|
applyCachedSummary() {
|
|
259
262
|
const summary = salla.storage?.get?.('cart.summary');
|
|
263
|
+
// false: the cached summary never carries cashback_amount, so it must not retract a
|
|
264
|
+
// promise the live cart made. Events refresh the real figure.
|
|
260
265
|
if (summary && typeof summary === 'object')
|
|
261
|
-
this.applyCartData(summary);
|
|
266
|
+
this.applyCartData(summary, false);
|
|
262
267
|
this.isLoading = false;
|
|
263
268
|
}
|
|
264
269
|
extractCart(payload) {
|
|
@@ -270,7 +275,7 @@ const SallaCartSummaryCard$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartS
|
|
|
270
275
|
return payload.cart;
|
|
271
276
|
return payload;
|
|
272
277
|
}
|
|
273
|
-
applyCartData(data) {
|
|
278
|
+
applyCartData(data, cashbackAuthoritative) {
|
|
274
279
|
if (!data)
|
|
275
280
|
return;
|
|
276
281
|
// First real payload ends the skeleton.
|
|
@@ -283,6 +288,25 @@ const SallaCartSummaryCard$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartS
|
|
|
283
288
|
const discount = data.total_discount ?? data.discount;
|
|
284
289
|
if (discount !== undefined)
|
|
285
290
|
this.cartTotalDiscount = this.num(discount);
|
|
291
|
+
// cashback_amount is a PROMISE, not a measurement, so it needs different handling from
|
|
292
|
+
// its neighbours in both directions.
|
|
293
|
+
//
|
|
294
|
+
// It must be RETRACTABLE: the backend omits it exactly when it has no promise to make
|
|
295
|
+
// (totals unbound, or the offers lookup failing closed), so a cart that recomputed its
|
|
296
|
+
// totals and did not come back with a figure is no longer promising one. Carrying the old
|
|
297
|
+
// number forward would leave the badge advertising cashback the cart may no longer earn.
|
|
298
|
+
//
|
|
299
|
+
// But only a payload that actually recomputed the totals may retract it. Two sources
|
|
300
|
+
// legitimately lack the field and must NOT clear the badge: the cached SDK summary
|
|
301
|
+
// (applyCachedSummary, used when cart/details fails) never carries it, and a
|
|
302
|
+
// `cart::updated` event can arrive with metadata only. Hence the explicit override, and
|
|
303
|
+
// otherwise the sub_total+total probe — a full cart payload always carries both, a
|
|
304
|
+
// metadata-only one carries neither.
|
|
305
|
+
const recomputedTotals = cashbackAuthoritative ?? (data.sub_total !== undefined && data.total !== undefined);
|
|
306
|
+
if (data.cashback_amount !== undefined)
|
|
307
|
+
this.cartCashbackAmount = this.num(data.cashback_amount);
|
|
308
|
+
else if (recomputedTotals)
|
|
309
|
+
this.cartCashbackAmount = 0;
|
|
286
310
|
if (data.sub_total !== undefined)
|
|
287
311
|
this.cartSubTotal = this.num(data.sub_total);
|
|
288
312
|
if (data.options_total !== undefined)
|
|
@@ -351,6 +375,7 @@ const SallaCartSummaryCard$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartS
|
|
|
351
375
|
if (this.isLoading)
|
|
352
376
|
return this.renderSkeleton();
|
|
353
377
|
const showSavings = this.cartTotalDiscount > 0;
|
|
378
|
+
const showCashback = this.cartCashbackAmount > 0;
|
|
354
379
|
const subTotalLabel = this.cartTaxAmount ? this.itemsTotalNoTaxLabel : this.itemsTotalLabel;
|
|
355
380
|
// Inline transform so sheet motion doesn't depend on SCSS load order.
|
|
356
381
|
const sheetStyle = this.isDesktop
|
|
@@ -367,7 +392,7 @@ const SallaCartSummaryCard$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartS
|
|
|
367
392
|
} }, h("div", { class: {
|
|
368
393
|
's-cart-summary-card-sheet-wrap': true,
|
|
369
394
|
's-cart-summary-card-sheet-wrap--open': this.isOpen,
|
|
370
|
-
}, "aria-hidden": this.isOpen ? 'false' : 'true' }, h("div", { class: "s-cart-summary-card-sheet", style: sheetStyle }, h("header", { class: "s-cart-summary-card-sheet-header" }, h("h3", { class: "s-cart-summary-card-sheet-title" }, this.summaryLabel)), h("div", { class: "s-cart-summary-card-line" }, h("span", null, subTotalLabel), h("b", { innerHTML: this.money(this.cartSubTotal) })), this.cartOptionsTotal > 0 && (h("div", { class: "s-cart-summary-card-line" }, h("span", null, this.optionsTotalLabel), h("b", { innerHTML: this.money(this.cartOptionsTotal) }))), this.cartHasShipping && (h("div", { class: "s-cart-summary-card-line" }, h("span", null, this.shippingCostLabel), h("b", { innerHTML: this.money(this.cartShippingCost) }))), this.cartTaxAmount > 0 && (h("div", { class: "s-cart-summary-card-line" }, h("span", null, this.vatTaxLabel), h("b", { innerHTML: this.money(this.cartTaxAmount) }))), showSavings && (h("div", { class: "s-cart-summary-card-line s-cart-summary-card-line--discount" }, h("span", null, this.savedLabel), h("b", null, "\u2212 ", h("span", { innerHTML: this.money(this.cartTotalDiscount) })))))), h("div", { class: "s-cart-summary-card-bar" }, h("div", { class: "s-cart-summary-card-bar-label" }, h("div", { class: "s-cart-summary-card-bar-label-main" }, h("span", { class: "s-cart-summary-card-bar-label-text" }, this.finalTotalLabel), h("span", { class: "s-cart-summary-card-bar-count" }, this.getItemsLabel())), this.cartTaxAmount > 0 && (h("div", { class: "s-cart-summary-card-bar-label-sub" }, this.pricesTaxedLabel))), h("div", { class: "s-cart-summary-card-bar-totals" }, h("div", { class: "s-cart-summary-card-bar-totals-row" }, showSavings && (h("s", { class: "s-cart-summary-card-bar-original" }, salla.helpers.number(this.roundToCurrency(this.cartTotal + this.cartTotalDiscount)))), h("b", { class: "s-cart-summary-card-bar-total", innerHTML: this.money(this.cartTotal) }), !this.isDesktop && (h("button", { type: "button", class: "s-cart-summary-card-chevron", "aria-label": this.isOpen ? this.closeSummaryLabel : this.openSummaryLabel, "aria-expanded": this.isOpen ? 'true' : 'false', onClick: this.toggleSheet }, h("i", { class: "sicon-keyboard_arrow_up s-cart-summary-card-chevron-icon" })))), showSavings && (h("div", { class: "s-cart-summary-card-bar-savings-badge" }, h("span", { "aria-hidden": "true" }, "\uD83C\uDF89"), h("span", null, this.discountBadge, " ", h("span", { innerHTML: this.money(this.cartTotalDiscount) })))))), h("div", { class: "s-cart-summary-card-action" }, h("salla-button", { id: "s-cart-summary-card-submit", width: "wide", "loader-position": "center", onClick: this.handleSubmit }, this.completeOrderLabel))));
|
|
395
|
+
}, "aria-hidden": this.isOpen ? 'false' : 'true' }, h("div", { class: "s-cart-summary-card-sheet", style: sheetStyle }, h("header", { class: "s-cart-summary-card-sheet-header" }, h("h3", { class: "s-cart-summary-card-sheet-title" }, this.summaryLabel)), h("div", { class: "s-cart-summary-card-line" }, h("span", null, subTotalLabel), h("b", { innerHTML: this.money(this.cartSubTotal) })), this.cartOptionsTotal > 0 && (h("div", { class: "s-cart-summary-card-line" }, h("span", null, this.optionsTotalLabel), h("b", { innerHTML: this.money(this.cartOptionsTotal) }))), this.cartHasShipping && (h("div", { class: "s-cart-summary-card-line" }, h("span", null, this.shippingCostLabel), h("b", { innerHTML: this.money(this.cartShippingCost) }))), this.cartTaxAmount > 0 && (h("div", { class: "s-cart-summary-card-line" }, h("span", null, this.vatTaxLabel), h("b", { innerHTML: this.money(this.cartTaxAmount) }))), showSavings && (h("div", { class: "s-cart-summary-card-line s-cart-summary-card-line--discount" }, h("span", null, this.savedLabel), h("b", null, "\u2212 ", h("span", { innerHTML: this.money(this.cartTotalDiscount) })))))), h("div", { class: "s-cart-summary-card-bar" }, h("div", { class: "s-cart-summary-card-bar-label" }, h("div", { class: "s-cart-summary-card-bar-label-main" }, h("span", { class: "s-cart-summary-card-bar-label-text" }, this.finalTotalLabel), h("span", { class: "s-cart-summary-card-bar-count" }, this.getItemsLabel())), this.cartTaxAmount > 0 && (h("div", { class: "s-cart-summary-card-bar-label-sub" }, this.pricesTaxedLabel))), h("div", { class: "s-cart-summary-card-bar-totals" }, h("div", { class: "s-cart-summary-card-bar-totals-row" }, showSavings && (h("s", { class: "s-cart-summary-card-bar-original" }, salla.helpers.number(this.roundToCurrency(this.cartTotal + this.cartTotalDiscount)))), h("b", { class: "s-cart-summary-card-bar-total", innerHTML: this.money(this.cartTotal) }), !this.isDesktop && (h("button", { type: "button", class: "s-cart-summary-card-chevron", "aria-label": this.isOpen ? this.closeSummaryLabel : this.openSummaryLabel, "aria-expanded": this.isOpen ? 'true' : 'false', onClick: this.toggleSheet }, h("i", { class: "sicon-keyboard_arrow_up s-cart-summary-card-chevron-icon" })))), (showSavings || showCashback) && (h("div", { class: "s-cart-summary-card-bar-savings-badge" }, h("span", { "aria-hidden": "true" }, "\uD83C\uDF89"), h("span", null, showSavings && (h("span", null, this.discountBadge, " ", h("span", { innerHTML: this.money(this.cartTotalDiscount) }))), showSavings && showCashback && ' + ', showCashback && (h("span", null, h("span", { innerHTML: this.money(this.cartCashbackAmount) }), " ", this.cashbackLabel))))))), h("div", { class: "s-cart-summary-card-action" }, h("salla-button", { id: "s-cart-summary-card-submit", width: "wide", "loader-position": "center", onClick: this.handleSubmit }, this.completeOrderLabel))));
|
|
371
396
|
}
|
|
372
397
|
get host() { return this; }
|
|
373
398
|
static get style() { return sallaCartSummaryCardCss; }
|
|
@@ -376,6 +401,7 @@ const SallaCartSummaryCard$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartS
|
|
|
376
401
|
"cartCount": [32],
|
|
377
402
|
"cartTotal": [32],
|
|
378
403
|
"cartTotalDiscount": [32],
|
|
404
|
+
"cartCashbackAmount": [32],
|
|
379
405
|
"cartSubTotal": [32],
|
|
380
406
|
"cartOptionsTotal": [32],
|
|
381
407
|
"cartShippingCost": [32],
|
|
@@ -392,6 +418,7 @@ const SallaCartSummaryCard$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartS
|
|
|
392
418
|
"vatTaxLabel": [32],
|
|
393
419
|
"savedLabel": [32],
|
|
394
420
|
"discountBadge": [32],
|
|
421
|
+
"cashbackLabel": [32],
|
|
395
422
|
"finalTotalLabel": [32],
|
|
396
423
|
"pricesTaxedLabel": [32],
|
|
397
424
|
"completeOrderLabel": [32],
|
|
@@ -70,6 +70,7 @@ const SallaComments$1 = /*@__PURE__*/ proxyCustomElement(class SallaComments ext
|
|
|
70
70
|
*/
|
|
71
71
|
this.testimonials = false;
|
|
72
72
|
this.customerId = null;
|
|
73
|
+
this.initialDataVersion = 0;
|
|
73
74
|
// Translations
|
|
74
75
|
this.noComments = salla.lang.get('blocks.comments.no_comments');
|
|
75
76
|
this.comment_title = '';
|
|
@@ -108,6 +109,18 @@ const SallaComments$1 = /*@__PURE__*/ proxyCustomElement(class SallaComments ext
|
|
|
108
109
|
setTranslations();
|
|
109
110
|
});
|
|
110
111
|
}
|
|
112
|
+
resetInfiniteScroll() {
|
|
113
|
+
clearTimeout(this.initialDataTimer);
|
|
114
|
+
if (this.infiniteScroll) {
|
|
115
|
+
this.infiniteScroll.destroy();
|
|
116
|
+
const instances = salla.infiniteScroll.instances;
|
|
117
|
+
for (let index = instances.length - 1; index >= 0; index--) {
|
|
118
|
+
if (instances[index] === this.infiniteScroll)
|
|
119
|
+
instances.splice(index, 1);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
this.infiniteScroll = undefined;
|
|
123
|
+
}
|
|
111
124
|
get sortOptions() {
|
|
112
125
|
return buildCommentSortOptions({
|
|
113
126
|
mostHelpfulLabel: this.mostHelpfulLabel,
|
|
@@ -242,7 +255,7 @@ const SallaComments$1 = /*@__PURE__*/ proxyCustomElement(class SallaComments ext
|
|
|
242
255
|
this.wrapper.append(loading);
|
|
243
256
|
}
|
|
244
257
|
this.nextPage = null;
|
|
245
|
-
this.loadInitialData();
|
|
258
|
+
return this.loadInitialData();
|
|
246
259
|
}
|
|
247
260
|
// Get comment item HTML
|
|
248
261
|
getCommentHTML(comment) {
|
|
@@ -294,6 +307,8 @@ const SallaComments$1 = /*@__PURE__*/ proxyCustomElement(class SallaComments ext
|
|
|
294
307
|
}
|
|
295
308
|
// Load initial data
|
|
296
309
|
async loadInitialData() {
|
|
310
|
+
const version = ++this.initialDataVersion;
|
|
311
|
+
this.resetInfiniteScroll();
|
|
297
312
|
try {
|
|
298
313
|
let resp = { data: [], pagination: {} };
|
|
299
314
|
const searchParams = new URLSearchParams(window.location.search);
|
|
@@ -314,6 +329,8 @@ const SallaComments$1 = /*@__PURE__*/ proxyCustomElement(class SallaComments ext
|
|
|
314
329
|
: null;
|
|
315
330
|
resp = await salla.api.comment.getComments(this.type, this.itemId, 1, 5, this.sort, this.customerId);
|
|
316
331
|
}
|
|
332
|
+
if (version !== this.initialDataVersion)
|
|
333
|
+
return;
|
|
317
334
|
if (!resp.data || !resp.data.length) {
|
|
318
335
|
this.showPlaceholder = false;
|
|
319
336
|
this.comments = [];
|
|
@@ -344,7 +361,9 @@ const SallaComments$1 = /*@__PURE__*/ proxyCustomElement(class SallaComments ext
|
|
|
344
361
|
this.total = resp.pagination.total;
|
|
345
362
|
this.nextPage = typeof resp.pagination.links === 'object' && !!resp.pagination.links.next ? resp.pagination.links.next : null;
|
|
346
363
|
this.patchNextPageUrl();
|
|
347
|
-
setTimeout(() => {
|
|
364
|
+
this.initialDataTimer = setTimeout(() => {
|
|
365
|
+
if (version !== this.initialDataVersion || !this.wrapper)
|
|
366
|
+
return;
|
|
348
367
|
for (const card of this.handleResponse(resp)) {
|
|
349
368
|
this.wrapper.append(card);
|
|
350
369
|
}
|
|
@@ -354,6 +373,8 @@ const SallaComments$1 = /*@__PURE__*/ proxyCustomElement(class SallaComments ext
|
|
|
354
373
|
}, 100);
|
|
355
374
|
}
|
|
356
375
|
catch (error) {
|
|
376
|
+
if (version !== this.initialDataVersion)
|
|
377
|
+
return;
|
|
357
378
|
console.error('Error loading initial data:', error);
|
|
358
379
|
this.showPlaceholder = true;
|
|
359
380
|
this.loading(false);
|
|
@@ -9,7 +9,7 @@ import { d as defineCustomElement$3 } from './salla-loading2.js';
|
|
|
9
9
|
import { d as defineCustomElement$2 } from './salla-modal2.js';
|
|
10
10
|
import { d as defineCustomElement$1 } from './salla-slider2.js';
|
|
11
11
|
|
|
12
|
-
const sallaFileUploadCss = "/*!twlt*//*!\n * FilePond 4.32.12\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n.filepond--assistant{position:absolute;overflow:hidden;height:1px;width:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.filepond--browser.filepond--browser{position:absolute;margin:0;padding:0;left:1em;top:1.75em;width:calc(100% - 2em);opacity:0;font-size:0}.filepond--data{position:absolute;width:0;height:0;padding:0;margin:0;border:none;visibility:hidden;pointer-events:none;contain:strict}.filepond--drip{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;opacity:.1;pointer-events:none;border-radius:.5em;background:rgba(0,0,0,.01)}.filepond--drip-blob{-webkit-transform-origin:center center;transform-origin:center center;width:8em;height:8em;margin-left:-4em;margin-top:-4em;background:#292625;border-radius:50%}.filepond--drip-blob,.filepond--drop-label{position:absolute;top:0;left:0;will-change:transform,opacity}.filepond--drop-label{right:0;margin:0;color:#4f4f4f;display:flex;justify-content:center;align-items:center;height:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--drop-label.filepond--drop-label label{display:block;margin:0;padding:.5em}.filepond--drop-label label{cursor:default;font-size:.875em;font-weight:400;text-align:center;line-height:1.5}.filepond--label-action{text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto;-webkit-text-decoration-color:#a7a4a4;text-decoration-color:#a7a4a4;cursor:pointer}.filepond--root[data-disabled] .filepond--drop-label label{opacity:.5}.filepond--file-action-button.filepond--file-action-button{font-size:1em;width:1.625em;height:1.625em;font-family:inherit;line-height:inherit;margin:0;padding:0;border:none;outline:none;will-change:transform,opacity}.filepond--file-action-button.filepond--file-action-button span{position:absolute;overflow:hidden;height:1px;width:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.filepond--file-action-button.filepond--file-action-button svg{width:100%;height:100%}.filepond--file-action-button.filepond--file-action-button:after{position:absolute;left:-.75em;right:-.75em;top:-.75em;bottom:-.75em;content:\"\"}.filepond--file-action-button{cursor:auto;color:#fff;border-radius:50%;background-color:rgba(0,0,0,.5);background-image:none;box-shadow:0 0 0 0 hsla(0,0%,100%,0);transition:box-shadow .25s ease-in}.filepond--file-action-button:focus,.filepond--file-action-button:hover{box-shadow:0 0 0 .125em hsla(0,0%,100%,.9)}.filepond--file-action-button[disabled]{color:hsla(0,0%,100%,.5);background-color:rgba(0,0,0,.25)}.filepond--file-action-button[hidden]{display:none}.filepond--action-edit-item.filepond--action-edit-item{width:2em;height:2em;padding:.1875em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=center]{margin-left:-.1875em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=bottom]{margin-bottom:-.1875em}.filepond--action-edit-item-alt{border:none;line-height:inherit;background:transparent;font-family:inherit;color:inherit;outline:none;padding:0;margin:0 0 0 .25em;pointer-events:all;position:absolute}.filepond--action-edit-item-alt svg{width:1.3125em;height:1.3125em}.filepond--action-edit-item-alt span{font-size:0;opacity:0}.filepond--file-info{position:static;display:flex;flex-direction:column;align-items:flex-start;flex:1;margin:0 .5em 0 0;min-width:0;will-change:transform,opacity;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--file-info *{margin:0}.filepond--file-info .filepond--file-info-main{font-size:.75em;line-height:1.2;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:100%}.filepond--file-info .filepond--file-info-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out;white-space:nowrap}.filepond--file-info .filepond--file-info-sub:empty{display:none}.filepond--file-status{position:static;display:flex;flex-direction:column;align-items:flex-end;flex-grow:0;flex-shrink:0;margin:0;min-width:2.25em;text-align:right;will-change:transform,opacity;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--file-status *{margin:0;white-space:nowrap}.filepond--file-status .filepond--file-status-main{font-size:.75em;line-height:1.2}.filepond--file-status .filepond--file-status-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out}.filepond--file-wrapper.filepond--file-wrapper{border:none;margin:0;padding:0;min-width:0;height:100%}.filepond--file-wrapper.filepond--file-wrapper>legend{position:absolute;overflow:hidden;height:1px;width:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.filepond--file{position:static;display:flex;height:100%;align-items:flex-start;padding:.5625em;color:#fff;border-radius:.5em}.filepond--file .filepond--file-status{margin-left:auto;margin-right:2.25em}.filepond--file .filepond--processing-complete-indicator{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:3}.filepond--file .filepond--file-action-button,.filepond--file .filepond--processing-complete-indicator,.filepond--file .filepond--progress-indicator{position:absolute}.filepond--file [data-align*=left]{left:.5625em}.filepond--file [data-align*=right]{right:.5625em}.filepond--file [data-align*=center]{left:calc(50% - .8125em)}.filepond--file [data-align*=bottom]{bottom:1.125em}.filepond--file [data-align=center]{top:calc(50% - .8125em)}.filepond--file .filepond--progress-indicator{margin-top:.1875em}.filepond--file .filepond--progress-indicator[data-align*=right]{margin-right:.1875em}.filepond--file .filepond--progress-indicator[data-align*=left]{margin-left:.1875em}[data-filepond-item-state*=error] .filepond--file-info,[data-filepond-item-state*=invalid] .filepond--file-info,[data-filepond-item-state=cancelled] .filepond--file-info{margin-right:2.25em}[data-filepond-item-state~=processing] .filepond--file-status-sub{opacity:0}[data-filepond-item-state~=processing] .filepond--action-abort-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-error] .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-error] .filepond--action-retry-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing svg{-webkit-animation:fall .5s linear .125s both;animation:fall .5s linear .125s both}[data-filepond-item-state=processing-complete] .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--file-info-sub,[data-filepond-item-state=processing-complete] .filepond--processing-complete-indicator:not([style*=hidden])~.filepond--file-status .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing~.filepond--file-info .filepond--file-info-sub{opacity:.5}[data-filepond-item-state*=error] .filepond--file-wrapper,[data-filepond-item-state*=error] .filepond--panel,[data-filepond-item-state*=invalid] .filepond--file-wrapper,[data-filepond-item-state*=invalid] .filepond--panel{-webkit-animation:shake .65s linear both;animation:shake .65s linear both}[data-filepond-item-state*=busy] .filepond--progress-indicator svg{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes shake{10%,90%{-webkit-transform:translateX(-.0625em);transform:translateX(-.0625em)}20%,80%{-webkit-transform:translateX(.125em);transform:translateX(.125em)}30%,50%,70%{-webkit-transform:translateX(-.25em);transform:translateX(-.25em)}40%,60%{-webkit-transform:translateX(.25em);transform:translateX(.25em)}}@keyframes shake{10%,90%{-webkit-transform:translateX(-.0625em);transform:translateX(-.0625em)}20%,80%{-webkit-transform:translateX(.125em);transform:translateX(.125em)}30%,50%,70%{-webkit-transform:translateX(-.25em);transform:translateX(-.25em)}40%,60%{-webkit-transform:translateX(.25em);transform:translateX(.25em)}}@-webkit-keyframes fall{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}70%{opacity:1;-webkit-transform:scale(1.1);transform:scale(1.1);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}to{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes fall{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}70%{opacity:1;-webkit-transform:scale(1.1);transform:scale(1.1);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}to{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.filepond--hopper[data-hopper-state=drag-over]>*{pointer-events:none}.filepond--hopper[data-hopper-state=drag-over]:after{content:\"\";position:absolute;left:0;top:0;right:0;bottom:0;z-index:100}.filepond--progress-indicator{z-index:103}.filepond--file-action-button{z-index:102}.filepond--file-status{z-index:101}.filepond--file-info{z-index:100}.filepond--item{position:absolute;top:0;left:0;right:0;z-index:1;padding:0;margin:.25em;will-change:transform,opacity;touch-action:auto}.filepond--item>.filepond--panel{z-index:-1}.filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:0 .0625em .125em -.0625em rgba(0,0,0,.25)}.filepond--item>.filepond--file-wrapper,.filepond--item>.filepond--panel{transition:opacity .15s ease-out}.filepond--item[data-drag-state]{cursor:-webkit-grab;cursor:grab}.filepond--item[data-drag-state]>.filepond--panel{transition:box-shadow .125s ease-in-out;box-shadow:0 0 0 transparent}.filepond--item[data-drag-state=drag]{cursor:-webkit-grabbing;cursor:grabbing}.filepond--item[data-drag-state=drag]>.filepond--panel{box-shadow:0 .125em .3125em rgba(0,0,0,.325)}.filepond--item[data-drag-state]:not([data-drag-state=idle]){z-index:2}.filepond--item-panel{background-color:#64605e}[data-filepond-item-state=processing-complete] .filepond--item-panel{background-color:#369763}[data-filepond-item-state*=error] .filepond--item-panel,[data-filepond-item-state*=invalid] .filepond--item-panel{background-color:#c44e47}.filepond--item-panel{border-radius:.5em;transition:background-color .25s}.filepond--list-scroller{position:absolute;top:0;left:0;right:0;margin:0;will-change:transform}.filepond--list-scroller[data-state=overflow] .filepond--list{bottom:0;right:0}.filepond--list-scroller[data-state=overflow]{overflow-y:scroll;overflow-x:hidden;-webkit-overflow-scrolling:touch;-webkit-mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent);mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent)}.filepond--list-scroller::-webkit-scrollbar{background:transparent}.filepond--list-scroller::-webkit-scrollbar:vertical{width:1em}.filepond--list-scroller::-webkit-scrollbar:horizontal{height:0}.filepond--list-scroller::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.3);border-radius:99999px;border:.3125em solid transparent;background-clip:content-box}.filepond--list.filepond--list{position:absolute;top:0;margin:0;padding:0;list-style-type:none;will-change:transform}.filepond--list{left:.75em;right:.75em}.filepond--root[data-style-panel-layout~=integrated]{width:100%;height:100%;max-width:none;margin:0}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root{border-radius:0}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root>*,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root>*{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{bottom:0;height:auto;display:flex;justify-content:center;align-items:center;z-index:7}.filepond--root[data-style-panel-layout~=circle] .filepond--item-panel,.filepond--root[data-style-panel-layout~=integrated] .filepond--item-panel{display:none}.filepond--root[data-style-panel-layout~=compact] .filepond--list-scroller,.filepond--root[data-style-panel-layout~=integrated] .filepond--list-scroller{overflow:hidden;height:100%;margin-top:0;margin-bottom:0}.filepond--root[data-style-panel-layout~=compact] .filepond--list,.filepond--root[data-style-panel-layout~=integrated] .filepond--list{left:0;right:0;height:100%}.filepond--root[data-style-panel-layout~=compact] .filepond--item,.filepond--root[data-style-panel-layout~=integrated] .filepond--item{margin:0}.filepond--root[data-style-panel-layout~=compact] .filepond--file-wrapper,.filepond--root[data-style-panel-layout~=integrated] .filepond--file-wrapper{height:100%}.filepond--root[data-style-panel-layout~=compact] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{z-index:7}.filepond--root[data-style-panel-layout~=circle]{border-radius:99999rem;overflow:hidden}.filepond--root[data-style-panel-layout~=circle]>.filepond--panel{border-radius:inherit}.filepond--root[data-style-panel-layout~=circle]>.filepond--panel>*{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--file-info,.filepond--root[data-style-panel-layout~=circle] .filepond--file-status{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--action-edit-item{opacity:1!important;visibility:visible!important}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent){.filepond--root[data-style-panel-layout~=circle]{will-change:transform}}}.filepond--panel-root{border-radius:.5em;background-color:#f1f0ef}.filepond--panel{position:absolute;left:0;top:0;right:0;margin:0;height:100%!important;pointer-events:none}.filepond-panel:not([data-scalable=false]){height:auto!important}.filepond--panel[data-scalable=false]>div{display:none}.filepond--panel[data-scalable=true]{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;background-color:transparent!important;border:none!important}.filepond--panel-bottom,.filepond--panel-center,.filepond--panel-top{position:absolute;left:0;top:0;right:0;margin:0;padding:0}.filepond--panel-bottom,.filepond--panel-top{height:.5em}.filepond--panel-top{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;border-bottom:none!important}.filepond--panel-top:after{content:\"\";position:absolute;height:2px;left:0;right:0;bottom:-1px;background-color:inherit}.filepond--panel-bottom,.filepond--panel-center{will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:translate3d(0,.5em,0);transform:translate3d(0,.5em,0)}.filepond--panel-bottom{border-top-left-radius:0!important;border-top-right-radius:0!important;border-top:none!important}.filepond--panel-bottom:before{content:\"\";position:absolute;height:2px;left:0;right:0;top:-1px;background-color:inherit}.filepond--panel-center{height:100px!important;border-top:none!important;border-bottom:none!important;border-radius:0!important}.filepond--panel-center:not([style]){visibility:hidden}.filepond--progress-indicator{position:static;width:1.25em;height:1.25em;color:#fff;margin:0;pointer-events:none;will-change:transform,opacity}.filepond--progress-indicator svg{width:100%;height:100%;vertical-align:top;transform-box:fill-box}.filepond--progress-indicator path{fill:none;stroke:currentColor}.filepond--list-scroller{z-index:6}.filepond--drop-label{z-index:5}.filepond--drip{z-index:3}.filepond--root>.filepond--panel{z-index:2}.filepond--browser{z-index:1}.filepond--root{box-sizing:border-box;position:relative;margin-bottom:1em;font-size:1rem;line-height:normal;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-weight:450;text-align:left;text-rendering:optimizeLegibility;direction:ltr;contain:layout style size}.filepond--root *{box-sizing:inherit;line-height:inherit}.filepond--root :not(text){font-size:inherit}.filepond--root[data-disabled]{pointer-events:none}.filepond--root[data-disabled] .filepond--list-scroller{pointer-events:all}.filepond--root[data-disabled] .filepond--list{pointer-events:none}.filepond--root .filepond--drop-label{min-height:4.75em}.filepond--root .filepond--list-scroller{margin-top:1em;margin-bottom:1em}.filepond--root .filepond--credits{position:absolute;right:0;opacity:.4;line-height:.85;font-size:11px;color:inherit;text-decoration:none;z-index:3;bottom:-14px}.filepond--root .filepond--credits[style]{top:0;bottom:auto;margin-top:14px}\n/*!\n * FilePondPluginImagePreview 4.6.12\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n.filepond--image-preview-markup {\n position: absolute;\n left: 0;\n top: 0;\n}\n.filepond--image-preview-wrapper {\n z-index: 2;\n}\n.filepond--image-preview-overlay {\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n min-height: 5rem;\n max-height: 7rem;\n margin: 0;\n opacity: 0;\n z-index: 2;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.filepond--image-preview-overlay svg {\n width: 100%;\n height: auto;\n color: inherit;\n max-height: inherit;\n}\n.filepond--image-preview-overlay-idle {\n mix-blend-mode: multiply;\n color: rgba(40, 40, 40, 0.85);\n}\n.filepond--image-preview-overlay-success {\n mix-blend-mode: normal;\n color: rgba(54, 151, 99, 1);\n}\n.filepond--image-preview-overlay-failure {\n mix-blend-mode: normal;\n color: rgba(196, 78, 71, 1);\n}\n/* disable for Safari as mix-blend-mode causes the overflow:hidden of the parent container to not work */\n@supports (-webkit-marquee-repetition: infinite) and\n ((-o-object-fit: fill) or (object-fit: fill)) {\n .filepond--image-preview-overlay-idle {\n mix-blend-mode: normal;\n }\n}\n.filepond--image-preview-wrapper {\n /* no interaction */\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n /* have preview fill up all available space */\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n height: 100%;\n margin: 0;\n\n /* radius is .05em less to prevent the panel background color from shining through */\n border-radius: 0.45em;\n overflow: hidden;\n\n /* this seems to prevent Chrome from redrawing this layer constantly */\n background: rgba(0, 0, 0, 0.01);\n}\n.filepond--image-preview {\n position: absolute;\n left: 0;\n top: 0;\n z-index: 1;\n display: flex; /* this aligns the graphic vertically if the panel is higher than the image */\n align-items: center;\n height: 100%;\n width: 100%;\n pointer-events: none;\n background: #222;\n\n /* will be animated */\n will-change: transform, opacity;\n}\n.filepond--image-clip {\n position: relative;\n overflow: hidden;\n margin: 0 auto;\n\n /* transparency indicator (currently only supports grid or basic color) */\n}\n.filepond--image-clip[data-transparency-indicator='grid'] img,\n.filepond--image-clip[data-transparency-indicator='grid'] canvas {\n background-color: #fff;\n background-image: url(\"data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' fill='%23eee'%3E%3Cpath d='M0 0 H50 V50 H0'/%3E%3Cpath d='M50 50 H100 V100 H50'/%3E%3C/svg%3E\");\n background-size: 1.25em 1.25em;\n}\n.filepond--image-bitmap,\n.filepond--image-vector {\n position: absolute;\n left: 0;\n top: 0;\n will-change: transform;\n}\n.filepond--root[data-style-panel-layout~='integrated']\n .filepond--image-preview-wrapper {\n border-radius: 0;\n}\n.filepond--root[data-style-panel-layout~='integrated']\n .filepond--image-preview {\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--image-preview-wrapper {\n border-radius: 99999rem;\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--image-preview-overlay {\n top: auto;\n bottom: 0;\n -webkit-transform: scaleY(-1);\n transform: scaleY(-1);\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--file\n .filepond--file-action-button[data-align*='bottom']:not([data-align*='center']) {\n margin-bottom: 0.325em;\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--file\n [data-align*='left'] {\n left: calc(50% - 3em);\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--file\n [data-align*='right'] {\n right: calc(50% - 3em);\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--progress-indicator[data-align*='bottom'][data-align*='left'],\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--progress-indicator[data-align*='bottom'][data-align*='right'] {\n margin-bottom: calc(0.325em + 0.1875em);\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--progress-indicator[data-align*='bottom'][data-align*='center'] {\n margin-top: 0;\n margin-bottom: 0.1875em;\n margin-left: 0.1875em;\n}\n\n/*!\n * FilePondPluginImageEdit 1.6.3\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n.filepond--action-edit-item.filepond--action-edit-item {\n width: 2em;\n height: 2em;\n padding: 0.1875em;\n}\n\n.filepond--action-edit-item.filepond--action-edit-item[data-align*='center'] {\n margin-left: -0.1875em;\n}\n\n.filepond--action-edit-item.filepond--action-edit-item[data-align*='bottom'] {\n margin-bottom: -0.1875em;\n}\n\n.filepond--action-edit-item-alt {\n border: none;\n line-height: inherit;\n background: transparent;\n font-family: inherit;\n color: inherit;\n outline: none;\n padding: 0;\n margin: 0 0 0 0.25em;\n pointer-events: all;\n position: absolute;\n}\n\n.filepond--action-edit-item-alt svg {\n width: 1.3125em;\n height: 1.3125em;\n}\n\n.filepond--action-edit-item-alt span {\n font-size: 0;\n opacity: 0;\n}\n.filepond--root[data-style-panel-layout~='circle'] .filepond--action-edit-item {\n opacity: 1 !important;\n visibility: visible !important;\n}\n\n.s-file-upload-wrapper .filepond--file-info-main {\n -webkit-line-clamp: 1;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n}\n.s-file-upload-has-gallery.s-file-upload-multiple .filepond--list-scroller {\n display: none !important;\n}\n.s-file-upload-has-gallery.s-file-upload-multiple .filepond--drop-label:not(.s-hidden) {\n cursor: pointer;\n}\n.s-file-upload-has-gallery.s-file-upload-multiple.s-file-upload-at-max .filepond--root {\n min-height: 120px;\n}\n.s-file-upload-has-gallery.s-file-upload-multiple .filepond--drop-label.s-file-upload-drop-label-disabled {\n visibility: visible !important;\n opacity: 0.55 !important;\n transform: none !important;\n height: auto !important;\n min-height: 4.75em !important;\n pointer-events: none !important;\n cursor: not-allowed;\n}\n.s-file-upload-has-gallery.s-file-upload-multiple .filepond--drop-label.s-file-upload-drop-label-disabled label {\n opacity: 1 !important;\n}\n.s-file-upload-wrapper .filepond--root[data-disabled] .filepond--drop-label label {\n opacity: 0.55;\n}\n.s-file-upload-gallery {\n --s-file-upload-preview-size: 75px;\n --s-file-upload-remove-size: 18px;\n --s-file-upload-remove-icon-size: 10px;\n --s-file-upload-gallery-gap: 12px;\n position: relative;\n margin-top: 0.5rem;\n padding-top: calc(var(--s-file-upload-remove-size) / 2);\n padding-inline-end: calc(var(--s-file-upload-remove-size) / 2);\n overflow: visible;\n}\n.s-file-upload-gallery-track {\n display: flex;\n gap: var(--s-file-upload-gallery-gap);\n width: 100%;\n min-height: var(--s-file-upload-preview-size);\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: thin;\n padding-bottom: 0.25rem;\n}\n.s-file-upload-gallery-item {\n position: relative;\n display: block;\n width: var(--s-file-upload-preview-size);\n height: var(--s-file-upload-preview-size);\n flex-shrink: 0;\n overflow: visible;\n}\n.s-file-upload-gallery-thumb {\n width: var(--s-file-upload-preview-size);\n height: var(--s-file-upload-preview-size);\n aspect-ratio: 1/1;\n border-radius: 0.375rem;\n overflow: hidden;\n background-color: #f3f4f6;\n cursor: pointer;\n position: relative;\n border: 1px solid #e5e7eb;\n box-sizing: border-box;\n}\n.s-file-upload-gallery-thumb.is-processing {\n opacity: 0.7;\n}\n.s-file-upload-gallery-thumb img {\n display: block;\n width: 100%;\n height: 100%;\n aspect-ratio: 1/1;\n object-fit: cover;\n}\n.s-file-upload-gallery-thumb video.s-file-upload-gallery-video-thumb {\n display: block;\n width: 100%;\n height: 100%;\n aspect-ratio: 1/1;\n object-fit: cover;\n pointer-events: none;\n}\n.s-file-upload-gallery-remove {\n position: absolute;\n top: 0;\n inset-inline-end: 0;\n inset-inline-start: auto;\n z-index: 5;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--s-file-upload-remove-size);\n height: var(--s-file-upload-remove-size);\n padding: 0;\n line-height: 1;\n border-radius: 9999px;\n background-color: #fff;\n border: 1px solid #9ca3af;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);\n cursor: pointer;\n}\n.s-file-upload-gallery-remove:hover {\n background-color: #f9fafb;\n}\n.s-file-upload-gallery-remove svg {\n display: block;\n width: var(--s-file-upload-remove-icon-size);\n height: var(--s-file-upload-remove-icon-size);\n fill: #1f2937;\n pointer-events: none;\n}\n.s-file-upload-gallery-video-icon {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: rgba(0, 0, 0, 0.2);\n pointer-events: none;\n}\n.s-file-upload-gallery-video-icon svg {\n width: calc(var(--s-file-upload-preview-size) * 0.28);\n height: calc(var(--s-file-upload-preview-size) * 0.28);\n max-width: 2rem;\n max-height: 2rem;\n fill: #fff;\n opacity: 0.9;\n}\n.visible{\n visibility: visible;\n}\n.fixed{\n position: fixed;\n}\n.grid{\n display: grid;\n}\n.hidden{\n display: none;\n}\n.transform{\n 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));\n}\n.resize{\n resize: both;\n}\n.ps-2{\n padding-inline-start: 0.5rem;\n}\n.filter{\n 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);\n}\n.s-hidden{\n display: none;\n}\n.s-scrollbar::-webkit-scrollbar{\n width: 5px;\n}\n.s-scrollbar::-webkit-scrollbar-track{\n background-color: #eee;\n}\n.s-scrollbar::-webkit-scrollbar-thumb{\n background-color: var(--color-primary);\n border-radius: 10px;\n -webkit-border-radius: 10px;\n -moz-border-radius: 10px;\n -ms-border-radius: 10px;\n -o-border-radius: 10px;\n}\n.s-file-upload-wrapper .filepond--drop-label{\n height: 100%;\n cursor: pointer;\n border-radius: var(--s-radius, 0.25rem);\n border-width: 1px;\n border-style: dashed;\n --tw-border-opacity: 1;\n border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\n}\n.s-file-upload-wrapper .filepond--drop-label label{\n margin-top: 0.75rem;\n margin-bottom: 0.75rem;\n font-family: var(--font-main), -apple-system, BlinkMacSystemFont;\n}\n.s-file-upload-wrapper .filepond--label-action{\n text-decoration-color: #6b7280;\n}\n.s-file-upload-wrapper .filepond--panel-root{\n border-radius: var(--s-radius, 0.25rem);\n --tw-bg-opacity: 1 !important;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)) !important;\n}\n.s-file-upload-profile-image .filepond--panel-root{\n border-radius: 9999px !important;\n}\n.s-file-upload:not(.s-file-upload-multiple) .s-file-upload-wrapper .filepond--list-scroller{\n overflow-y: inherit !important;\n overflow: inherit !important;\n margin: 0 !important;\n cursor: pointer !important;\n}\n.filepond--root{\n min-height: 120px !important;\n font-family: inherit !important;\n}\n.s-file-upload-wrapper .filepond--item-panel{\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n}\n.s-file-upload-wrapper .filepond--drip-blob{\n --tw-bg-opacity: 1;\n background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));\n}\n.s-file-upload-wrapper .filepond--list{\n left: 0px;\n width: 100%;\n}\n.s-file-upload-wrapper .filepond--file-poster-wrapper{\n position: absolute;\n left: 0px;\n top: 0px;\n right: 0px;\n margin: 0px;\n display: flex;\n height: 100%;\n width: 100%;\n user-select: none;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n border-radius: 0.45em;\n background-color: #00000003;\n}\n.s-file-upload-wrapper .filepond--file-poster{\n position: absolute;\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n}\n.s-file-upload-wrapper .filepond--file-poster-overlay{\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n}\n.s-file-upload-wrapper .filepond--item{\n margin: 0px;\n}\n.s-file-upload-wrapper .filepond--file-info{\n margin: 0px;\n}\n.s-file-upload-wrapper .filepond--file-info-main{\n width: 85px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: normal;\n font-size: 0.75em;\n line-height: 1.2;\n}\n.s-file-upload-wrapper .filepond--file-status{\n width: 55%;\n}\n.s-file-upload-wrapper .filepond--file-status:where([dir=\"rtl\"], [dir=\"rtl\"] *){\n margin-right: 35px;\n}\n@media (min-width: 768px){\n .s-file-upload-wrapper .filepond--file-status:where([dir=\"rtl\"], [dir=\"rtl\"] *){\n margin-right: 2.25em;\n }\n}\n.s-file-upload-wrapper .filepond--file-status .filepond--file-status-sub{\n width: 275px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.s-file-upload-profile-image .filepond--root{\n height: 80px;\n min-height: 80px !important;\n width: 80px;\n border-radius: 9999px !important;\n}\n.s-file-upload-profile-image .filepond--drop-label{\n z-index: 7;\n min-height: 70px !important;\n border-radius: 9999px !important;\n border-style: none;\n}\n.s-file-upload-profile-image .filepond--drop-label label{\n cursor: pointer;\n padding-top: 20px;\n padding-bottom: 20px;\n padding-left: 6px;\n padding-right: 6px;\n font-size: 0.8rem;\n margin-top: 0.75rem;\n margin-bottom: 0.75rem;\n font-family: var(--font-main), -apple-system, BlinkMacSystemFont;\n}\n.s-file-upload-profile-image .filepond--file{\n padding: 0px;\n}\n.s-file-upload-profile-image .filepond--file .filepond--action-remove-item{\n top: auto !important;\n bottom: -4px;\n left: 50%;\n transform: translateX(-50%) translateY(25%) !important;\n background-color: rgba(255,68,58,.7);\n cursor: pointer;\n width: 20px;\n height: 20px;\n transition: 0.3s;\n}\n.s-file-upload-profile-image .filepond--file .filepond--action-remove-item:hover{\n background-color: #FF443A;\n}\n.s-file-upload-profile-image .filepond--file .filepond--file-action-button{\n top: 28px;\n right: 28px;\n}\n.s-file-upload-profile-image .filepond--file .filepond--progress-indicator,.s-file-upload-profile-image .filepond--file .filepond--load-indicator,.s-file-upload-profile-image .filepond--file .filepond--processing-complete-indicator{\n top: 48% !important;\n right: 50%;\n left: auto;\n transform: translateX(50%) translateY(-50%);\n}\n.s-file-upload-profile-image .filepond--item-panel{\n background-color: transparent !important;\n}\n.s-file-upload-.s-file-upload-profile-image .filepond--item-panel .filepond--panel-top,.s-file-upload-profile-image .filepond--item-panel .filepond--panel-center,.s-file-upload-profile-image .filepond--item-panel .filepond--panel-bottom{\n display: none;\n}\n.s-file-upload-profile-image .filepond--file-poster-overlay{\n display: none;\n}\n.s-file-upload-profile-image .filepond--item{\n margin: 0px !important;\n height: 5rem !important;\n}\n.s-file-upload-profile-image .filepond--file-poster{\n height: 100%;\n width: 100%;\n}\n.s-file-upload-profile-image .filepond--file-status{\n display: none;\n}\n.s-file-upload-profile-image .filepond--image-preview-overlay-success{\n top: auto;\n bottom: 0px;\n --tw-scale-y: -1;\n 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));\n}\n.s-file-upload-profile-image .filepond--image-preview-wrapper{\n border-radius: 9999px;\n}\n.s-file-upload-profile-image .filepond--file-info{\n display: none;\n}\n.s-file-upload-profile-image .filepond--list{\n left: 0px;\n right: 0px;\n height: 100%;\n}\n.s-file-upload-profile-image .filepond--file-poster img{\n height: 100%;\n width: 100%;\n border-radius: 9999px;\n object-fit: cover;\n}\n.s-file-upload-profile-image .filepond--file-poster-wrapper{\n overflow: hidden;\n border-radius: 9999px;\n}\n.s-file-upload-profile-image .s-file-upload-has-error .filepond--file-status{\n position: absolute;\n bottom: -62%;\n left: -190%;\n display: flex !important;\n height: auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 1rem;\n line-height: 1.5rem;\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\n}\n.s-file-upload-multiple .filepond--root{\n max-height: 120px;\n}\n.s-file-upload-multiple .filepond--list-scroller{\n top: 0px;\n margin-top: 0px;\n margin-bottom: 0px;\n height: 100%;\n overflow-y: scroll;\n}\n.s-file-upload-multiple .filepond--drop-label:not(.s-hidden) + .filepond--list-scroller{\n display: none;\n}\n.s-file-upload-multiple .filepond--item{\n @media(min-width: 767px){\n width: calc(33.33% - .5em);\n margin-left: .3em !important;\n }\n @media(max-width: 767px){\n margin-bottom: .3em;\n }\n}\n.s-file-upload-hint{\n margin-top: -15px;\n font-size: 0.875rem;\n line-height: 1.25rem;\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.s-product-options-image-input .s-file-upload-wrapper{\n min-height: 120px;\n}\n";
|
|
12
|
+
const sallaFileUploadCss = "/*!twlt*//*!\n * FilePond 4.32.12\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n.filepond--assistant{position:absolute;overflow:hidden;height:1px;width:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.filepond--browser.filepond--browser{position:absolute;margin:0;padding:0;left:1em;top:1.75em;width:calc(100% - 2em);opacity:0;font-size:0}.filepond--data{position:absolute;width:0;height:0;padding:0;margin:0;border:none;visibility:hidden;pointer-events:none;contain:strict}.filepond--drip{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;opacity:.1;pointer-events:none;border-radius:.5em;background:rgba(0,0,0,.01)}.filepond--drip-blob{-webkit-transform-origin:center center;transform-origin:center center;width:8em;height:8em;margin-left:-4em;margin-top:-4em;background:#292625;border-radius:50%}.filepond--drip-blob,.filepond--drop-label{position:absolute;top:0;left:0;will-change:transform,opacity}.filepond--drop-label{right:0;margin:0;color:#4f4f4f;display:flex;justify-content:center;align-items:center;height:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--drop-label.filepond--drop-label label{display:block;margin:0;padding:.5em}.filepond--drop-label label{cursor:default;font-size:.875em;font-weight:400;text-align:center;line-height:1.5}.filepond--label-action{text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto;-webkit-text-decoration-color:#a7a4a4;text-decoration-color:#a7a4a4;cursor:pointer}.filepond--root[data-disabled] .filepond--drop-label label{opacity:.5}.filepond--file-action-button.filepond--file-action-button{font-size:1em;width:1.625em;height:1.625em;font-family:inherit;line-height:inherit;margin:0;padding:0;border:none;outline:none;will-change:transform,opacity}.filepond--file-action-button.filepond--file-action-button span{position:absolute;overflow:hidden;height:1px;width:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.filepond--file-action-button.filepond--file-action-button svg{width:100%;height:100%}.filepond--file-action-button.filepond--file-action-button:after{position:absolute;left:-.75em;right:-.75em;top:-.75em;bottom:-.75em;content:\"\"}.filepond--file-action-button{cursor:auto;color:#fff;border-radius:50%;background-color:rgba(0,0,0,.5);background-image:none;box-shadow:0 0 0 0 hsla(0,0%,100%,0);transition:box-shadow .25s ease-in}.filepond--file-action-button:focus,.filepond--file-action-button:hover{box-shadow:0 0 0 .125em hsla(0,0%,100%,.9)}.filepond--file-action-button[disabled]{color:hsla(0,0%,100%,.5);background-color:rgba(0,0,0,.25)}.filepond--file-action-button[hidden]{display:none}.filepond--action-edit-item.filepond--action-edit-item{width:2em;height:2em;padding:.1875em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=center]{margin-left:-.1875em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=bottom]{margin-bottom:-.1875em}.filepond--action-edit-item-alt{border:none;line-height:inherit;background:transparent;font-family:inherit;color:inherit;outline:none;padding:0;margin:0 0 0 .25em;pointer-events:all;position:absolute}.filepond--action-edit-item-alt svg{width:1.3125em;height:1.3125em}.filepond--action-edit-item-alt span{font-size:0;opacity:0}.filepond--file-info{position:static;display:flex;flex-direction:column;align-items:flex-start;flex:1;margin:0 .5em 0 0;min-width:0;will-change:transform,opacity;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--file-info *{margin:0}.filepond--file-info .filepond--file-info-main{font-size:.75em;line-height:1.2;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:100%}.filepond--file-info .filepond--file-info-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out;white-space:nowrap}.filepond--file-info .filepond--file-info-sub:empty{display:none}.filepond--file-status{position:static;display:flex;flex-direction:column;align-items:flex-end;flex-grow:0;flex-shrink:0;margin:0;min-width:2.25em;text-align:right;will-change:transform,opacity;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--file-status *{margin:0;white-space:nowrap}.filepond--file-status .filepond--file-status-main{font-size:.75em;line-height:1.2}.filepond--file-status .filepond--file-status-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out}.filepond--file-wrapper.filepond--file-wrapper{border:none;margin:0;padding:0;min-width:0;height:100%}.filepond--file-wrapper.filepond--file-wrapper>legend{position:absolute;overflow:hidden;height:1px;width:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.filepond--file{position:static;display:flex;height:100%;align-items:flex-start;padding:.5625em;color:#fff;border-radius:.5em}.filepond--file .filepond--file-status{margin-left:auto;margin-right:2.25em}.filepond--file .filepond--processing-complete-indicator{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:3}.filepond--file .filepond--file-action-button,.filepond--file .filepond--processing-complete-indicator,.filepond--file .filepond--progress-indicator{position:absolute}.filepond--file [data-align*=left]{left:.5625em}.filepond--file [data-align*=right]{right:.5625em}.filepond--file [data-align*=center]{left:calc(50% - .8125em)}.filepond--file [data-align*=bottom]{bottom:1.125em}.filepond--file [data-align=center]{top:calc(50% - .8125em)}.filepond--file .filepond--progress-indicator{margin-top:.1875em}.filepond--file .filepond--progress-indicator[data-align*=right]{margin-right:.1875em}.filepond--file .filepond--progress-indicator[data-align*=left]{margin-left:.1875em}[data-filepond-item-state*=error] .filepond--file-info,[data-filepond-item-state*=invalid] .filepond--file-info,[data-filepond-item-state=cancelled] .filepond--file-info{margin-right:2.25em}[data-filepond-item-state~=processing] .filepond--file-status-sub{opacity:0}[data-filepond-item-state~=processing] .filepond--action-abort-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-error] .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-error] .filepond--action-retry-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing svg{-webkit-animation:fall .5s linear .125s both;animation:fall .5s linear .125s both}[data-filepond-item-state=processing-complete] .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--file-info-sub,[data-filepond-item-state=processing-complete] .filepond--processing-complete-indicator:not([style*=hidden])~.filepond--file-status .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing~.filepond--file-info .filepond--file-info-sub{opacity:.5}[data-filepond-item-state*=error] .filepond--file-wrapper,[data-filepond-item-state*=error] .filepond--panel,[data-filepond-item-state*=invalid] .filepond--file-wrapper,[data-filepond-item-state*=invalid] .filepond--panel{-webkit-animation:shake .65s linear both;animation:shake .65s linear both}[data-filepond-item-state*=busy] .filepond--progress-indicator svg{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes shake{10%,90%{-webkit-transform:translateX(-.0625em);transform:translateX(-.0625em)}20%,80%{-webkit-transform:translateX(.125em);transform:translateX(.125em)}30%,50%,70%{-webkit-transform:translateX(-.25em);transform:translateX(-.25em)}40%,60%{-webkit-transform:translateX(.25em);transform:translateX(.25em)}}@keyframes shake{10%,90%{-webkit-transform:translateX(-.0625em);transform:translateX(-.0625em)}20%,80%{-webkit-transform:translateX(.125em);transform:translateX(.125em)}30%,50%,70%{-webkit-transform:translateX(-.25em);transform:translateX(-.25em)}40%,60%{-webkit-transform:translateX(.25em);transform:translateX(.25em)}}@-webkit-keyframes fall{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}70%{opacity:1;-webkit-transform:scale(1.1);transform:scale(1.1);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}to{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes fall{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}70%{opacity:1;-webkit-transform:scale(1.1);transform:scale(1.1);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}to{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.filepond--hopper[data-hopper-state=drag-over]>*{pointer-events:none}.filepond--hopper[data-hopper-state=drag-over]:after{content:\"\";position:absolute;left:0;top:0;right:0;bottom:0;z-index:100}.filepond--progress-indicator{z-index:103}.filepond--file-action-button{z-index:102}.filepond--file-status{z-index:101}.filepond--file-info{z-index:100}.filepond--item{position:absolute;top:0;left:0;right:0;z-index:1;padding:0;margin:.25em;will-change:transform,opacity;touch-action:auto}.filepond--item>.filepond--panel{z-index:-1}.filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:0 .0625em .125em -.0625em rgba(0,0,0,.25)}.filepond--item>.filepond--file-wrapper,.filepond--item>.filepond--panel{transition:opacity .15s ease-out}.filepond--item[data-drag-state]{cursor:-webkit-grab;cursor:grab}.filepond--item[data-drag-state]>.filepond--panel{transition:box-shadow .125s ease-in-out;box-shadow:0 0 0 transparent}.filepond--item[data-drag-state=drag]{cursor:-webkit-grabbing;cursor:grabbing}.filepond--item[data-drag-state=drag]>.filepond--panel{box-shadow:0 .125em .3125em rgba(0,0,0,.325)}.filepond--item[data-drag-state]:not([data-drag-state=idle]){z-index:2}.filepond--item-panel{background-color:#64605e}[data-filepond-item-state=processing-complete] .filepond--item-panel{background-color:#369763}[data-filepond-item-state*=error] .filepond--item-panel,[data-filepond-item-state*=invalid] .filepond--item-panel{background-color:#c44e47}.filepond--item-panel{border-radius:.5em;transition:background-color .25s}.filepond--list-scroller{position:absolute;top:0;left:0;right:0;margin:0;will-change:transform}.filepond--list-scroller[data-state=overflow] .filepond--list{bottom:0;right:0}.filepond--list-scroller[data-state=overflow]{overflow-y:scroll;overflow-x:hidden;-webkit-overflow-scrolling:touch;-webkit-mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent);mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent)}.filepond--list-scroller::-webkit-scrollbar{background:transparent}.filepond--list-scroller::-webkit-scrollbar:vertical{width:1em}.filepond--list-scroller::-webkit-scrollbar:horizontal{height:0}.filepond--list-scroller::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.3);border-radius:99999px;border:.3125em solid transparent;background-clip:content-box}.filepond--list.filepond--list{position:absolute;top:0;margin:0;padding:0;list-style-type:none;will-change:transform}.filepond--list{left:.75em;right:.75em}.filepond--root[data-style-panel-layout~=integrated]{width:100%;height:100%;max-width:none;margin:0}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root{border-radius:0}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root>*,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root>*{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{bottom:0;height:auto;display:flex;justify-content:center;align-items:center;z-index:7}.filepond--root[data-style-panel-layout~=circle] .filepond--item-panel,.filepond--root[data-style-panel-layout~=integrated] .filepond--item-panel{display:none}.filepond--root[data-style-panel-layout~=compact] .filepond--list-scroller,.filepond--root[data-style-panel-layout~=integrated] .filepond--list-scroller{overflow:hidden;height:100%;margin-top:0;margin-bottom:0}.filepond--root[data-style-panel-layout~=compact] .filepond--list,.filepond--root[data-style-panel-layout~=integrated] .filepond--list{left:0;right:0;height:100%}.filepond--root[data-style-panel-layout~=compact] .filepond--item,.filepond--root[data-style-panel-layout~=integrated] .filepond--item{margin:0}.filepond--root[data-style-panel-layout~=compact] .filepond--file-wrapper,.filepond--root[data-style-panel-layout~=integrated] .filepond--file-wrapper{height:100%}.filepond--root[data-style-panel-layout~=compact] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{z-index:7}.filepond--root[data-style-panel-layout~=circle]{border-radius:99999rem;overflow:hidden}.filepond--root[data-style-panel-layout~=circle]>.filepond--panel{border-radius:inherit}.filepond--root[data-style-panel-layout~=circle]>.filepond--panel>*{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--file-info,.filepond--root[data-style-panel-layout~=circle] .filepond--file-status{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--action-edit-item{opacity:1!important;visibility:visible!important}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent){.filepond--root[data-style-panel-layout~=circle]{will-change:transform}}}.filepond--panel-root{border-radius:.5em;background-color:#f1f0ef}.filepond--panel{position:absolute;left:0;top:0;right:0;margin:0;height:100%!important;pointer-events:none}.filepond-panel:not([data-scalable=false]){height:auto!important}.filepond--panel[data-scalable=false]>div{display:none}.filepond--panel[data-scalable=true]{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;background-color:transparent!important;border:none!important}.filepond--panel-bottom,.filepond--panel-center,.filepond--panel-top{position:absolute;left:0;top:0;right:0;margin:0;padding:0}.filepond--panel-bottom,.filepond--panel-top{height:.5em}.filepond--panel-top{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;border-bottom:none!important}.filepond--panel-top:after{content:\"\";position:absolute;height:2px;left:0;right:0;bottom:-1px;background-color:inherit}.filepond--panel-bottom,.filepond--panel-center{will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:translate3d(0,.5em,0);transform:translate3d(0,.5em,0)}.filepond--panel-bottom{border-top-left-radius:0!important;border-top-right-radius:0!important;border-top:none!important}.filepond--panel-bottom:before{content:\"\";position:absolute;height:2px;left:0;right:0;top:-1px;background-color:inherit}.filepond--panel-center{height:100px!important;border-top:none!important;border-bottom:none!important;border-radius:0!important}.filepond--panel-center:not([style]){visibility:hidden}.filepond--progress-indicator{position:static;width:1.25em;height:1.25em;color:#fff;margin:0;pointer-events:none;will-change:transform,opacity}.filepond--progress-indicator svg{width:100%;height:100%;vertical-align:top;transform-box:fill-box}.filepond--progress-indicator path{fill:none;stroke:currentColor}.filepond--list-scroller{z-index:6}.filepond--drop-label{z-index:5}.filepond--drip{z-index:3}.filepond--root>.filepond--panel{z-index:2}.filepond--browser{z-index:1}.filepond--root{box-sizing:border-box;position:relative;margin-bottom:1em;font-size:1rem;line-height:normal;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-weight:450;text-align:left;text-rendering:optimizeLegibility;direction:ltr;contain:layout style size}.filepond--root *{box-sizing:inherit;line-height:inherit}.filepond--root :not(text){font-size:inherit}.filepond--root[data-disabled]{pointer-events:none}.filepond--root[data-disabled] .filepond--list-scroller{pointer-events:all}.filepond--root[data-disabled] .filepond--list{pointer-events:none}.filepond--root .filepond--drop-label{min-height:4.75em}.filepond--root .filepond--list-scroller{margin-top:1em;margin-bottom:1em}.filepond--root .filepond--credits{position:absolute;right:0;opacity:.4;line-height:.85;font-size:11px;color:inherit;text-decoration:none;z-index:3;bottom:-14px}.filepond--root .filepond--credits[style]{top:0;bottom:auto;margin-top:14px}\n/*!\n * FilePondPluginImagePreview 4.6.12\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n.filepond--image-preview-markup {\n position: absolute;\n left: 0;\n top: 0;\n}\n.filepond--image-preview-wrapper {\n z-index: 2;\n}\n.filepond--image-preview-overlay {\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n min-height: 5rem;\n max-height: 7rem;\n margin: 0;\n opacity: 0;\n z-index: 2;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.filepond--image-preview-overlay svg {\n width: 100%;\n height: auto;\n color: inherit;\n max-height: inherit;\n}\n.filepond--image-preview-overlay-idle {\n mix-blend-mode: multiply;\n color: rgba(40, 40, 40, 0.85);\n}\n.filepond--image-preview-overlay-success {\n mix-blend-mode: normal;\n color: rgba(54, 151, 99, 1);\n}\n.filepond--image-preview-overlay-failure {\n mix-blend-mode: normal;\n color: rgba(196, 78, 71, 1);\n}\n/* disable for Safari as mix-blend-mode causes the overflow:hidden of the parent container to not work */\n@supports (-webkit-marquee-repetition: infinite) and\n ((-o-object-fit: fill) or (object-fit: fill)) {\n .filepond--image-preview-overlay-idle {\n mix-blend-mode: normal;\n }\n}\n.filepond--image-preview-wrapper {\n /* no interaction */\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n /* have preview fill up all available space */\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n height: 100%;\n margin: 0;\n\n /* radius is .05em less to prevent the panel background color from shining through */\n border-radius: 0.45em;\n overflow: hidden;\n\n /* this seems to prevent Chrome from redrawing this layer constantly */\n background: rgba(0, 0, 0, 0.01);\n}\n.filepond--image-preview {\n position: absolute;\n left: 0;\n top: 0;\n z-index: 1;\n display: flex; /* this aligns the graphic vertically if the panel is higher than the image */\n align-items: center;\n height: 100%;\n width: 100%;\n pointer-events: none;\n background: #222;\n\n /* will be animated */\n will-change: transform, opacity;\n}\n.filepond--image-clip {\n position: relative;\n overflow: hidden;\n margin: 0 auto;\n\n /* transparency indicator (currently only supports grid or basic color) */\n}\n.filepond--image-clip[data-transparency-indicator='grid'] img,\n.filepond--image-clip[data-transparency-indicator='grid'] canvas {\n background-color: #fff;\n background-image: url(\"data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' fill='%23eee'%3E%3Cpath d='M0 0 H50 V50 H0'/%3E%3Cpath d='M50 50 H100 V100 H50'/%3E%3C/svg%3E\");\n background-size: 1.25em 1.25em;\n}\n.filepond--image-bitmap,\n.filepond--image-vector {\n position: absolute;\n left: 0;\n top: 0;\n will-change: transform;\n}\n.filepond--root[data-style-panel-layout~='integrated']\n .filepond--image-preview-wrapper {\n border-radius: 0;\n}\n.filepond--root[data-style-panel-layout~='integrated']\n .filepond--image-preview {\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--image-preview-wrapper {\n border-radius: 99999rem;\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--image-preview-overlay {\n top: auto;\n bottom: 0;\n -webkit-transform: scaleY(-1);\n transform: scaleY(-1);\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--file\n .filepond--file-action-button[data-align*='bottom']:not([data-align*='center']) {\n margin-bottom: 0.325em;\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--file\n [data-align*='left'] {\n left: calc(50% - 3em);\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--file\n [data-align*='right'] {\n right: calc(50% - 3em);\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--progress-indicator[data-align*='bottom'][data-align*='left'],\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--progress-indicator[data-align*='bottom'][data-align*='right'] {\n margin-bottom: calc(0.325em + 0.1875em);\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--progress-indicator[data-align*='bottom'][data-align*='center'] {\n margin-top: 0;\n margin-bottom: 0.1875em;\n margin-left: 0.1875em;\n}\n\n/*!\n * FilePondPluginImageEdit 1.6.3\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n.filepond--action-edit-item.filepond--action-edit-item {\n width: 2em;\n height: 2em;\n padding: 0.1875em;\n}\n\n.filepond--action-edit-item.filepond--action-edit-item[data-align*='center'] {\n margin-left: -0.1875em;\n}\n\n.filepond--action-edit-item.filepond--action-edit-item[data-align*='bottom'] {\n margin-bottom: -0.1875em;\n}\n\n.filepond--action-edit-item-alt {\n border: none;\n line-height: inherit;\n background: transparent;\n font-family: inherit;\n color: inherit;\n outline: none;\n padding: 0;\n margin: 0 0 0 0.25em;\n pointer-events: all;\n position: absolute;\n}\n\n.filepond--action-edit-item-alt svg {\n width: 1.3125em;\n height: 1.3125em;\n}\n\n.filepond--action-edit-item-alt span {\n font-size: 0;\n opacity: 0;\n}\n.filepond--root[data-style-panel-layout~='circle'] .filepond--action-edit-item {\n opacity: 1 !important;\n visibility: visible !important;\n}\n\n.s-file-upload-wrapper .filepond--file-info-main {\n -webkit-line-clamp: 1;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n}\n.s-file-upload-has-gallery.s-file-upload-multiple .filepond--list-scroller {\n display: none !important;\n}\n.s-file-upload-has-gallery.s-file-upload-multiple .filepond--drop-label:not(.s-hidden) {\n cursor: pointer;\n}\n.s-file-upload-has-gallery.s-file-upload-multiple.s-file-upload-at-max .filepond--root {\n min-height: 120px;\n}\n.s-file-upload-has-gallery.s-file-upload-multiple .filepond--drop-label.s-file-upload-drop-label-disabled {\n visibility: visible !important;\n opacity: 0.55 !important;\n transform: none !important;\n height: auto !important;\n min-height: 4.75em !important;\n pointer-events: none !important;\n cursor: not-allowed;\n}\n.s-file-upload-has-gallery.s-file-upload-multiple .filepond--drop-label.s-file-upload-drop-label-disabled label {\n opacity: 1 !important;\n}\n.s-file-upload-wrapper .filepond--root[data-disabled] .filepond--drop-label label {\n opacity: 0.55;\n}\n.s-file-upload-gallery {\n --s-file-upload-preview-size: 75px;\n --s-file-upload-remove-size: 18px;\n --s-file-upload-remove-icon-size: 10px;\n --s-file-upload-gallery-gap: 12px;\n position: relative;\n margin-top: 0.5rem;\n padding-top: calc(var(--s-file-upload-remove-size) / 2);\n padding-inline-end: calc(var(--s-file-upload-remove-size) / 2);\n overflow: visible;\n}\n.s-file-upload-gallery-track {\n display: flex;\n gap: var(--s-file-upload-gallery-gap);\n width: 100%;\n min-height: var(--s-file-upload-preview-size);\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: thin;\n padding-bottom: 0.25rem;\n}\n.s-file-upload-gallery-item {\n position: relative;\n display: block;\n width: var(--s-file-upload-preview-size);\n height: var(--s-file-upload-preview-size);\n flex-shrink: 0;\n overflow: visible;\n}\n.s-file-upload-gallery-thumb {\n width: var(--s-file-upload-preview-size);\n height: var(--s-file-upload-preview-size);\n aspect-ratio: 1/1;\n border-radius: 0.375rem;\n overflow: hidden;\n background-color: #f3f4f6;\n cursor: pointer;\n position: relative;\n border: 1px solid #e5e7eb;\n box-sizing: border-box;\n}\n.s-file-upload-gallery-thumb.is-processing {\n opacity: 0.7;\n}\n.s-file-upload-gallery-thumb img {\n display: block;\n width: 100%;\n height: 100%;\n aspect-ratio: 1/1;\n object-fit: cover;\n}\n.s-file-upload-gallery-thumb video.s-file-upload-gallery-video-thumb {\n display: block;\n width: 100%;\n height: 100%;\n aspect-ratio: 1/1;\n object-fit: cover;\n pointer-events: none;\n}\n.s-file-upload-gallery-remove {\n position: absolute;\n top: 0;\n inset-inline-end: 0;\n inset-inline-start: auto;\n z-index: 5;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--s-file-upload-remove-size);\n height: var(--s-file-upload-remove-size);\n padding: 0;\n line-height: 1;\n border-radius: 9999px;\n background-color: #fff;\n border: 1px solid #9ca3af;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);\n cursor: pointer;\n}\n.s-file-upload-gallery-remove:hover {\n background-color: #f9fafb;\n}\n.s-file-upload-gallery-remove svg {\n display: block;\n width: var(--s-file-upload-remove-icon-size);\n height: var(--s-file-upload-remove-icon-size);\n fill: #1f2937;\n pointer-events: none;\n}\n.s-file-upload-gallery-video-icon {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: rgba(0, 0, 0, 0.2);\n pointer-events: none;\n}\n.s-file-upload-gallery-video-icon svg {\n width: calc(var(--s-file-upload-preview-size) * 0.28);\n height: calc(var(--s-file-upload-preview-size) * 0.28);\n max-width: 2rem;\n max-height: 2rem;\n fill: #fff;\n opacity: 0.9;\n}\n.visible{\n visibility: visible;\n}\n.fixed{\n position: fixed;\n}\n.relative{\n position: relative;\n}\n.grid{\n display: grid;\n}\n.hidden{\n display: none;\n}\n.transform{\n 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));\n}\n.resize{\n resize: both;\n}\n.ps-2{\n padding-inline-start: 0.5rem;\n}\n.filter{\n 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);\n}\n.s-hidden{\n display: none;\n}\n.s-scrollbar::-webkit-scrollbar{\n width: 5px;\n}\n.s-scrollbar::-webkit-scrollbar-track{\n background-color: #eee;\n}\n.s-scrollbar::-webkit-scrollbar-thumb{\n background-color: var(--color-primary);\n border-radius: 10px;\n -webkit-border-radius: 10px;\n -moz-border-radius: 10px;\n -ms-border-radius: 10px;\n -o-border-radius: 10px;\n}\n.s-file-upload-wrapper .filepond--drop-label{\n height: 100%;\n cursor: pointer;\n border-radius: var(--s-radius, 0.25rem);\n border-width: 1px;\n border-style: dashed;\n --tw-border-opacity: 1;\n border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\n}\n.s-file-upload-wrapper .filepond--drop-label label{\n margin-top: 0.75rem;\n margin-bottom: 0.75rem;\n font-family: var(--font-main), -apple-system, BlinkMacSystemFont;\n}\n.s-file-upload-wrapper .filepond--label-action{\n text-decoration-color: #6b7280;\n}\n.s-file-upload-wrapper .filepond--panel-root{\n border-radius: var(--s-radius, 0.25rem);\n --tw-bg-opacity: 1 !important;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)) !important;\n}\n.s-file-upload-profile-image .filepond--panel-root{\n border-radius: 9999px !important;\n}\n.s-file-upload:not(.s-file-upload-multiple) .s-file-upload-wrapper .filepond--list-scroller{\n overflow-y: inherit !important;\n overflow: inherit !important;\n margin: 0 !important;\n cursor: pointer !important;\n}\n.filepond--root{\n min-height: 120px !important;\n font-family: inherit !important;\n}\n.s-file-upload-wrapper .filepond--item-panel{\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n}\n.s-file-upload-wrapper .filepond--drip-blob{\n --tw-bg-opacity: 1;\n background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));\n}\n.s-file-upload-wrapper .filepond--list{\n left: 0px;\n width: 100%;\n}\n.s-file-upload-wrapper .filepond--file-poster-wrapper{\n position: absolute;\n left: 0px;\n top: 0px;\n right: 0px;\n margin: 0px;\n display: flex;\n height: 100%;\n width: 100%;\n user-select: none;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n border-radius: 0.45em;\n background-color: #00000003;\n}\n.s-file-upload-wrapper .filepond--file-poster{\n position: absolute;\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n}\n.s-file-upload-wrapper .filepond--file-poster-overlay{\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n}\n.s-file-upload-wrapper .filepond--item{\n margin: 0px;\n}\n.s-file-upload-wrapper .filepond--file-info{\n margin: 0px;\n}\n.s-file-upload-wrapper .filepond--file-info-main{\n width: 85px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: normal;\n font-size: 0.75em;\n line-height: 1.2;\n}\n.s-file-upload-wrapper .filepond--file-status{\n width: 55%;\n}\n.s-file-upload-wrapper .filepond--file-status:where([dir=\"rtl\"], [dir=\"rtl\"] *){\n margin-right: 35px;\n}\n@media (min-width: 768px){\n .s-file-upload-wrapper .filepond--file-status:where([dir=\"rtl\"], [dir=\"rtl\"] *){\n margin-right: 2.25em;\n }\n}\n.s-file-upload-wrapper .filepond--file-status .filepond--file-status-sub{\n width: 275px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.s-file-upload-profile-image .filepond--root{\n height: 80px;\n min-height: 80px !important;\n width: 80px;\n border-radius: 9999px !important;\n}\n.s-file-upload-profile-image .filepond--drop-label{\n z-index: 7;\n min-height: 70px !important;\n border-radius: 9999px !important;\n border-style: none;\n}\n.s-file-upload-profile-image .filepond--drop-label label{\n cursor: pointer;\n padding-top: 20px;\n padding-bottom: 20px;\n padding-left: 6px;\n padding-right: 6px;\n font-size: 0.8rem;\n margin-top: 0.75rem;\n margin-bottom: 0.75rem;\n font-family: var(--font-main), -apple-system, BlinkMacSystemFont;\n}\n.s-file-upload-profile-image .filepond--file{\n padding: 0px;\n}\n.s-file-upload-profile-image .filepond--file .filepond--action-remove-item{\n top: auto !important;\n bottom: -4px;\n left: 50%;\n transform: translateX(-50%) translateY(25%) !important;\n background-color: rgba(255,68,58,.7);\n cursor: pointer;\n width: 20px;\n height: 20px;\n transition: 0.3s;\n}\n.s-file-upload-profile-image .filepond--file .filepond--action-remove-item:hover{\n background-color: #FF443A;\n}\n.s-file-upload-profile-image .filepond--file .filepond--file-action-button{\n top: 28px;\n right: 28px;\n}\n.s-file-upload-profile-image .filepond--file .filepond--progress-indicator,.s-file-upload-profile-image .filepond--file .filepond--load-indicator,.s-file-upload-profile-image .filepond--file .filepond--processing-complete-indicator{\n top: 48% !important;\n right: 50%;\n left: auto;\n transform: translateX(50%) translateY(-50%);\n}\n.s-file-upload-profile-image .filepond--item-panel{\n background-color: transparent !important;\n}\n.s-file-upload-.s-file-upload-profile-image .filepond--item-panel .filepond--panel-top,.s-file-upload-profile-image .filepond--item-panel .filepond--panel-center,.s-file-upload-profile-image .filepond--item-panel .filepond--panel-bottom{\n display: none;\n}\n.s-file-upload-profile-image .filepond--file-poster-overlay{\n display: none;\n}\n.s-file-upload-profile-image .filepond--item{\n margin: 0px !important;\n height: 5rem !important;\n}\n.s-file-upload-profile-image .filepond--file-poster{\n height: 100%;\n width: 100%;\n}\n.s-file-upload-profile-image .filepond--file-status{\n display: none;\n}\n.s-file-upload-profile-image .filepond--image-preview-overlay-success{\n top: auto;\n bottom: 0px;\n --tw-scale-y: -1;\n 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));\n}\n.s-file-upload-profile-image .filepond--image-preview-wrapper{\n border-radius: 9999px;\n}\n.s-file-upload-profile-image .filepond--file-info{\n display: none;\n}\n.s-file-upload-profile-image .filepond--list{\n left: 0px;\n right: 0px;\n height: 100%;\n}\n.s-file-upload-profile-image .filepond--file-poster img{\n height: 100%;\n width: 100%;\n border-radius: 9999px;\n object-fit: cover;\n}\n.s-file-upload-profile-image .filepond--file-poster-wrapper{\n overflow: hidden;\n border-radius: 9999px;\n}\n.s-file-upload-profile-image .s-file-upload-has-error .filepond--file-status{\n position: absolute;\n bottom: -62%;\n left: -190%;\n display: flex !important;\n height: auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 1rem;\n line-height: 1.5rem;\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\n}\n.s-file-upload-multiple .filepond--root{\n max-height: 120px;\n}\n.s-file-upload-multiple .filepond--list-scroller{\n top: 0px;\n margin-top: 0px;\n margin-bottom: 0px;\n height: 100%;\n overflow-y: scroll;\n}\n.s-file-upload-multiple .filepond--drop-label:not(.s-hidden) + .filepond--list-scroller{\n display: none;\n}\n.s-file-upload-multiple .filepond--item{\n @media(min-width: 767px){\n width: calc(33.33% - .5em);\n margin-left: .3em !important;\n }\n @media(max-width: 767px){\n margin-bottom: .3em;\n }\n}\n.s-file-upload-hint{\n margin-top: -15px;\n font-size: 0.875rem;\n line-height: 1.25rem;\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.s-product-options-image-input .s-file-upload-wrapper{\n min-height: 120px;\n}\n";
|
|
13
13
|
|
|
14
14
|
const VIDEO_METADATA_TIMEOUT_MS = 10000;
|
|
15
15
|
const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload extends HTMLElement {
|
|
@@ -355,6 +355,14 @@ const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload e
|
|
|
355
355
|
}
|
|
356
356
|
return this.value || '';
|
|
357
357
|
}
|
|
358
|
+
isValidUploadResult(value) {
|
|
359
|
+
if (Array.isArray(value)) {
|
|
360
|
+
return value.length > 0 && value.every(item => typeof item === 'string' && this.isValidUploadResult(item));
|
|
361
|
+
}
|
|
362
|
+
// Keep relative paths and existing URL shapes; reject missing/coerced results.
|
|
363
|
+
return typeof value === 'string' && value.trim().length > 0 &&
|
|
364
|
+
!['undefined', 'null', '[object Object]'].includes(value.trim());
|
|
365
|
+
}
|
|
358
366
|
usesSplitCountLimits() {
|
|
359
367
|
return usesSplitCountLimits(this.maxImagesCount, this.maxVideosCount);
|
|
360
368
|
}
|
|
@@ -892,12 +900,12 @@ const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload e
|
|
|
892
900
|
this.revokeAllPreviewObjectUrls();
|
|
893
901
|
}
|
|
894
902
|
render() {
|
|
895
|
-
return (h(Host, { key: '
|
|
903
|
+
return (h(Host, { key: '77ac3b040e8c7e2b3dcc0957cbb761675b667a83', class: {
|
|
896
904
|
"s-file-upload": true,
|
|
897
905
|
"s-file-upload-profile-image": this.profileImage,
|
|
898
906
|
"s-file-upload-multiple": this.allowMultiple,
|
|
899
907
|
"s-file-upload-has-gallery": this.usesGalleryPreview(),
|
|
900
|
-
} }, h("input", { key: '
|
|
908
|
+
} }, h("input", { key: '8fdb2cc6f73427929a77a985018e5fc7df7cbd88', type: "file", name: this.name, ref: ele => this.fileUploader = ele, required: this.required, class: "s-file-upload-wrapper s-file-upload-input", accept: this.accept }), this.allowMultiple && this.showMaxCountHint ? h("div", { class: "s-file-upload-hint s-hidden" }, this.max_count_hint(this.getTotalMaxFiles())) : '', h("input", { key: 'dfc1c8e1315c8a73685b24cd869f8df47ac42a35', class: "s-hidden", name: 'hidden-' + this.name, required: this.required, value: this.getHiddenInputValue(), ref: input => this.hiddenInput = input }), this.renderPreviewGallery()));
|
|
901
909
|
}
|
|
902
910
|
async componentDidLoad() {
|
|
903
911
|
await Salla.onReady();
|
|
@@ -961,8 +969,12 @@ const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload e
|
|
|
961
969
|
}
|
|
962
970
|
},
|
|
963
971
|
onprocessfile: (error, file) => {
|
|
964
|
-
|
|
965
|
-
|
|
972
|
+
// A 2xx response without a usable upload result is still a failed upload.
|
|
973
|
+
const uploadError = error || (file.serverId == null
|
|
974
|
+
? { type: 'error', body: salla.lang.get('common.errors.error_occurred') }
|
|
975
|
+
: null);
|
|
976
|
+
if (uploadError) {
|
|
977
|
+
this.notifyUploadError(uploadError, file);
|
|
966
978
|
this.removeFailedFile(file);
|
|
967
979
|
if (this.usesGalleryPreview()) {
|
|
968
980
|
this.schedulePreviewFilesSync();
|
|
@@ -1039,10 +1051,21 @@ const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload e
|
|
|
1039
1051
|
// @ts-ignore
|
|
1040
1052
|
process: {
|
|
1041
1053
|
onload: (response) => {
|
|
1042
|
-
let responseData
|
|
1054
|
+
let responseData;
|
|
1055
|
+
try {
|
|
1056
|
+
const result = JSON.parse(response);
|
|
1057
|
+
if (!result || result.success === false)
|
|
1058
|
+
return null;
|
|
1059
|
+
responseData = result.data;
|
|
1060
|
+
}
|
|
1061
|
+
catch {
|
|
1062
|
+
return null;
|
|
1063
|
+
}
|
|
1043
1064
|
if ((this.instantUpload || this.allowMultiple) && Array.isArray(responseData) && responseData.length > 0) {
|
|
1044
1065
|
const item = responseData[0];
|
|
1045
1066
|
const fileUrl = typeof item === 'object' && item !== null ? item.filePath || item.url : item;
|
|
1067
|
+
if (!this.isValidUploadResult(fileUrl))
|
|
1068
|
+
return null;
|
|
1046
1069
|
const fileId = this.generateUploadFileId();
|
|
1047
1070
|
// Store the upload result to be picked up by onprocessfile
|
|
1048
1071
|
this.uploadedFiles = [
|
|
@@ -1057,6 +1080,8 @@ const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload e
|
|
|
1057
1080
|
const fileUrl = typeof responseData === 'object' && responseData !== null
|
|
1058
1081
|
? responseData.filePath || responseData.url
|
|
1059
1082
|
: responseData;
|
|
1083
|
+
if (!this.isValidUploadResult(fileUrl))
|
|
1084
|
+
return null;
|
|
1060
1085
|
const fileId = typeof responseData === 'object' && responseData !== null && responseData.id
|
|
1061
1086
|
? responseData.id
|
|
1062
1087
|
: this.generateUploadFileId();
|
package/dist/docs.json
CHANGED