active-filters
2 years ago
add-to-cart-form
2 years ago
all-products
2 years ago
attribute-filter
2 years ago
base-components-mini-cart-contents-block
2 years ago
base-components-product-price~mini-cart-contents-block
2 years ago
breadcrumbs
2 years ago
cart-blocks
2 years ago
catalog-sorting
2 years ago
checkout
2 years ago
checkout-blocks
2 years ago
classic-shortcode
2 years ago
collection-active-filters
2 years ago
collection-attribute-filter
2 years ago
collection-filters
2 years ago
collection-price-filter
2 years ago
collection-rating-filter
2 years ago
collection-stock-filter
2 years ago
customer-account
2 years ago
featured-category
2 years ago
featured-product
2 years ago
filter-wrapper
2 years ago
handpicked-products
2 years ago
inner-blocks
2 years ago
mini-cart
2 years ago
mini-cart-contents-block
2 years ago
order-confirmation-additional-information
2 years ago
order-confirmation-billing-address
2 years ago
order-confirmation-billing-wrapper
2 years ago
order-confirmation-downloads
2 years ago
order-confirmation-downloads-wrapper
2 years ago
order-confirmation-shipping-address
2 years ago
order-confirmation-shipping-wrapper
2 years ago
order-confirmation-status
2 years ago
order-confirmation-summary
2 years ago
order-confirmation-totals
2 years ago
order-confirmation-totals-wrapper
2 years ago
page-content-wrapper
2 years ago
price-filter
2 years ago
product-average-rating
2 years ago
product-best-sellers
2 years ago
product-button
2 years ago
product-categories
2 years ago
product-category
2 years ago
product-collection
2 years ago
product-collection-no-results
2 years ago
product-details
2 years ago
product-gallery
2 years ago
product-gallery-large-image
2 years ago
product-gallery-large-image-next-previous
2 years ago
product-gallery-pager
2 years ago
product-gallery-thumbnails
2 years ago
product-image-gallery
2 years ago
product-meta
2 years ago
product-new
2 years ago
product-rating
2 years ago
product-rating-counter
2 years ago
product-rating-stars
2 years ago
product-results-count
2 years ago
product-reviews
2 years ago
product-tag
2 years ago
product-template
2 years ago
product-top-rated
2 years ago
products-by-attribute
2 years ago
rating-filter
2 years ago
related-products
2 years ago
single-product
2 years ago
stock-filter
2 years ago
store-notices
2 years ago
active-filters-frontend.asset.php
2 years ago
active-filters-frontend.js
2 years ago
active-filters-frontend.js.map
2 years ago
active-filters-rtl.css
2 years ago
active-filters-style.asset.php
2 years ago
active-filters-style.js.map
2 years ago
active-filters-wrapper-frontend.js
2 years ago
active-filters-wrapper-frontend.js.map
2 years ago
active-filters-wrapper-rtl.css
2 years ago
active-filters-wrapper-style.js.map
2 years ago
active-filters-wrapper.css
2 years ago
active-filters-wrapper.css.map
2 years ago
active-filters.asset.php
2 years ago
active-filters.css
2 years ago
active-filters.css.map
2 years ago
active-filters.js
2 years ago
active-filters.js.map
2 years ago
add-to-cart-form-rtl.css
2 years ago
add-to-cart-form-style.asset.php
2 years ago
add-to-cart-form-style.js.map
2 years ago
add-to-cart-form.css
2 years ago
add-to-cart-form.css.map
2 years ago
all-products-frontend.asset.php
2 years ago
all-products-frontend.js
2 years ago
all-products-frontend.js.map
2 years ago
all-products-rtl.css
2 years ago
all-products-style.asset.php
2 years ago
all-products-style.js.map
2 years ago
all-products.asset.php
2 years ago
all-products.css
2 years ago
all-products.css.map
2 years ago
all-products.js
2 years ago
all-products.js.map
2 years ago
all-reviews-rtl.css
2 years ago
all-reviews-style.asset.php
2 years ago
all-reviews-style.js.map
2 years ago
all-reviews.asset.php
2 years ago
all-reviews.css
2 years ago
all-reviews.css.map
2 years ago
all-reviews.js
2 years ago
all-reviews.js.map
2 years ago
assets_js_base_context_hooks_collections_use-collection_ts-assets_js_base_context_hooks_use-q-fdf7ba-style.js.map
2 years ago
assets_js_base_context_hooks_use-store-add-to-cart_ts-assets_js_base_context_hooks_use-store--e30f56-style.js.map
2 years ago
attribute-filter-frontend.asset.php
2 years ago
attribute-filter-frontend.js
2 years ago
attribute-filter-frontend.js.map
2 years ago
attribute-filter-rtl.css
2 years ago
attribute-filter-style.asset.php
2 years ago
attribute-filter-style.js.map
2 years ago
attribute-filter-wrapper-frontend.js
2 years ago
attribute-filter-wrapper-frontend.js.map
2 years ago
attribute-filter-wrapper-rtl.css
2 years ago
attribute-filter-wrapper-style.js.map
2 years ago
attribute-filter-wrapper.css
2 years ago
attribute-filter-wrapper.css.map
2 years ago
attribute-filter.asset.php
2 years ago
attribute-filter.css
2 years ago
attribute-filter.css.map
2 years ago
attribute-filter.js
2 years ago
attribute-filter.js.map
2 years ago
base-components-attribute-filter-wrapper-index.tsx-style.js.map
2 years ago
base-components-price-filter-wrapper-index.tsx-style.js.map
2 years ago
base-components-price-filter-wrapper-style.scss-rtl.css
2 years ago
base-components-price-filter-wrapper-style.scss.css
2 years ago
base-components-price-filter-wrapper-style.scss.css.map
2 years ago
base-components-rating-filter-wrapper-index.tsx-style.js.map
2 years ago
base-components-rating-filter-wrapper-style.scss-rtl.css
2 years ago
base-components-rating-filter-wrapper-style.scss.css
2 years ago
base-components-rating-filter-wrapper-style.scss.css.map
2 years ago
base-components-stock-filter-wrapper-index.tsx-style.js.map
2 years ago
base-components-stock-filter-wrapper~attribute-filter-wrapper~rating-filter-wrapper-style.scss-rtl.css
2 years ago
base-components-stock-filter-wrapper~attribute-filter-wrapper~rating-filter-wrapper-style.scss.css
2 years ago
base-components-stock-filter-wrapper~attribute-filter-wrapper~rating-filter-wrapper-style.scss.css.map
2 years ago
base-context-product-add-to-cart-index.js-style.js.map
2 years ago
blocks-checkout.asset.php
2 years ago
blocks-checkout.js
2 years ago
blocks-checkout.js.map
2 years ago
blocks-components.asset.php
2 years ago
blocks-components.js
2 years ago
blocks-components.js.map
2 years ago
breadcrumbs-rtl.css
2 years ago
breadcrumbs-style.asset.php
2 years ago
breadcrumbs-style.js.map
2 years ago
breadcrumbs.asset.php
2 years ago
breadcrumbs.css
2 years ago
breadcrumbs.css.map
2 years ago
breadcrumbs.js
2 years ago
breadcrumbs.js.map
2 years ago
cart-frontend.asset.php
2 years ago
cart-frontend.js
2 years ago
cart-frontend.js.map
2 years ago
cart-rtl.css
2 years ago
cart-style.asset.php
2 years ago
cart-style.js.map
2 years ago
cart.asset.php
2 years ago
cart.css
2 years ago
cart.css.map
2 years ago
cart.js
2 years ago
cart.js.map
2 years ago
catalog-sorting-rtl.css
2 years ago
catalog-sorting-style.asset.php
2 years ago
catalog-sorting-style.js.map
2 years ago
catalog-sorting.asset.php
2 years ago
catalog-sorting.css
2 years ago
catalog-sorting.css.map
2 years ago
catalog-sorting.js
2 years ago
catalog-sorting.js.map
2 years ago
checkout-frontend.asset.php
2 years ago
checkout-frontend.js
2 years ago
checkout-frontend.js.map
2 years ago
checkout-rtl.css
2 years ago
checkout-style.asset.php
2 years ago
checkout-style.js.map
2 years ago
checkout.asset.php
2 years ago
checkout.css
2 years ago
checkout.css.map
2 years ago
checkout.js
2 years ago
checkout.js.map
2 years ago
classic-shortcode-rtl.css
2 years ago
classic-shortcode-style.asset.php
2 years ago
classic-shortcode-style.js.map
2 years ago
classic-shortcode.asset.php
2 years ago
classic-shortcode.css
2 years ago
classic-shortcode.css.map
2 years ago
classic-shortcode.js
2 years ago
classic-shortcode.js.map
2 years ago
collection-active-filters-frontend.asset.php
2 years ago
collection-active-filters-frontend.js
2 years ago
collection-active-filters-frontend.js.map
2 years ago
collection-active-filters-rtl.css
2 years ago
collection-active-filters-style.asset.php
2 years ago
collection-active-filters-style.js.map
2 years ago
collection-active-filters.asset.php
2 years ago
collection-active-filters.css
2 years ago
collection-active-filters.css.map
2 years ago
collection-active-filters.js
2 years ago
collection-active-filters.js.map
2 years ago
collection-attribute-filter-frontend.asset.php
2 years ago
collection-attribute-filter-frontend.js
2 years ago
collection-attribute-filter-frontend.js.map
2 years ago
collection-attribute-filter-rtl.css
2 years ago
collection-attribute-filter-style.asset.php
2 years ago
collection-attribute-filter-style.js.map
2 years ago
collection-attribute-filter.asset.php
2 years ago
collection-attribute-filter.css
2 years ago
collection-attribute-filter.css.map
2 years ago
collection-attribute-filter.js
2 years ago
collection-attribute-filter.js.map
2 years ago
collection-filters-style.asset.php
2 years ago
collection-filters-style.js.map
2 years ago
collection-filters.asset.php
2 years ago
collection-filters.js
2 years ago
collection-filters.js.map
2 years ago
collection-price-filter-frontend.asset.php
2 years ago
collection-price-filter-frontend.js
2 years ago
collection-price-filter-frontend.js.map
2 years ago
collection-price-filter-rtl.css
2 years ago
collection-price-filter-style.asset.php
2 years ago
collection-price-filter-style.js.map
2 years ago
collection-price-filter.asset.php
2 years ago
collection-price-filter.css
2 years ago
collection-price-filter.css.map
2 years ago
collection-price-filter.js
2 years ago
collection-price-filter.js.map
2 years ago
collection-rating-filter-frontend.asset.php
2 years ago
collection-rating-filter-frontend.js
2 years ago
collection-rating-filter-frontend.js.map
2 years ago
collection-rating-filter-rtl.css
2 years ago
collection-rating-filter-style.asset.php
2 years ago
collection-rating-filter-style.js.map
2 years ago
collection-rating-filter.asset.php
2 years ago
collection-rating-filter.css
2 years ago
collection-rating-filter.css.map
2 years ago
collection-rating-filter.js
2 years ago
collection-rating-filter.js.map
2 years ago
collection-stock-filter-frontend.asset.php
2 years ago
collection-stock-filter-frontend.js
2 years ago
collection-stock-filter-frontend.js.map
2 years ago
collection-stock-filter-rtl.css
2 years ago
collection-stock-filter-style.asset.php
2 years ago
collection-stock-filter-style.js.map
2 years ago
collection-stock-filter.asset.php
2 years ago
collection-stock-filter.css
2 years ago
collection-stock-filter.css.map
2 years ago
collection-stock-filter.js
2 years ago
collection-stock-filter.js.map
2 years ago
customer-account-rtl.css
2 years ago
customer-account-style.asset.php
2 years ago
customer-account-style.js.map
2 years ago
customer-account.asset.php
2 years ago
customer-account.css
2 years ago
customer-account.css.map
2 years ago
customer-account.js
2 years ago
customer-account.js.map
2 years ago
featured-category-rtl.css
2 years ago
featured-category-style.asset.php
2 years ago
featured-category-style.js.map
2 years ago
featured-category.asset.php
2 years ago
featured-category.css
2 years ago
featured-category.css.map
2 years ago
featured-category.js
2 years ago
featured-category.js.map
2 years ago
featured-product-rtl.css
2 years ago
featured-product-style.asset.php
2 years ago
featured-product-style.js.map
2 years ago
featured-product.asset.php
2 years ago
featured-product.css
2 years ago
featured-product.css.map
2 years ago
featured-product.js
2 years ago
featured-product.js.map
2 years ago
filter-wrapper-frontend.asset.php
2 years ago
filter-wrapper-frontend.js
2 years ago
filter-wrapper-frontend.js.map
2 years ago
filter-wrapper-rtl.css
2 years ago
filter-wrapper-style.asset.php
2 years ago
filter-wrapper-style.js.map
2 years ago
filter-wrapper.asset.php
2 years ago
filter-wrapper.css
2 years ago
filter-wrapper.css.map
2 years ago
filter-wrapper.js
2 years ago
filter-wrapper.js.map
2 years ago
handpicked-products-style.asset.php
2 years ago
handpicked-products-style.js.map
2 years ago
handpicked-products.asset.php
2 years ago
handpicked-products.js
2 years ago
handpicked-products.js.map
2 years ago
legacy-template-rtl.css
2 years ago
legacy-template-style.asset.php
2 years ago
legacy-template-style.js.map
2 years ago
legacy-template.asset.php
2 years ago
legacy-template.css
2 years ago
legacy-template.css.map
2 years ago
legacy-template.js
2 years ago
legacy-template.js.map
2 years ago
mini-cart-component-frontend.asset.php
2 years ago
mini-cart-component-frontend.js
2 years ago
mini-cart-component-frontend.js.map
2 years ago
mini-cart-contents-rtl.css
2 years ago
mini-cart-contents-style.asset.php
2 years ago
mini-cart-contents-style.js.map
2 years ago
mini-cart-contents.asset.php
2 years ago
mini-cart-contents.css
2 years ago
mini-cart-contents.css.map
2 years ago
mini-cart-contents.js
2 years ago
mini-cart-contents.js.map
2 years ago
mini-cart-frontend.asset.php
2 years ago
mini-cart-frontend.js
2 years ago
mini-cart-frontend.js.map
2 years ago
mini-cart-rtl.css
2 years ago
mini-cart-style.asset.php
2 years ago
mini-cart-style.js.map
2 years ago
mini-cart.asset.php
2 years ago
mini-cart.css
2 years ago
mini-cart.css.map
2 years ago
mini-cart.js
2 years ago
mini-cart.js.map
2 years ago
order-confirmation-additional-information-rtl.css
2 years ago
order-confirmation-additional-information-style.asset.php
2 years ago
order-confirmation-additional-information-style.js.map
2 years ago
order-confirmation-additional-information.asset.php
2 years ago
order-confirmation-additional-information.css
2 years ago
order-confirmation-additional-information.css.map
2 years ago
order-confirmation-additional-information.js
2 years ago
order-confirmation-additional-information.js.map
2 years ago
order-confirmation-billing-address-rtl.css
2 years ago
order-confirmation-billing-address-style.asset.php
2 years ago
order-confirmation-billing-address-style.js.map
2 years ago
order-confirmation-billing-address.asset.php
2 years ago
order-confirmation-billing-address.css
2 years ago
order-confirmation-billing-address.css.map
2 years ago
order-confirmation-billing-address.js
2 years ago
order-confirmation-billing-address.js.map
2 years ago
order-confirmation-billing-wrapper-style.asset.php
2 years ago
order-confirmation-billing-wrapper-style.js.map
2 years ago
order-confirmation-billing-wrapper.asset.php
2 years ago
order-confirmation-billing-wrapper.js
2 years ago
order-confirmation-billing-wrapper.js.map
2 years ago
order-confirmation-downloads-rtl.css
2 years ago
order-confirmation-downloads-style.asset.php
2 years ago
order-confirmation-downloads-style.js.map
2 years ago
order-confirmation-downloads-wrapper-style.asset.php
2 years ago
order-confirmation-downloads-wrapper-style.js.map
2 years ago
order-confirmation-downloads-wrapper.asset.php
2 years ago
order-confirmation-downloads-wrapper.js
2 years ago
order-confirmation-downloads-wrapper.js.map
2 years ago
order-confirmation-downloads.asset.php
2 years ago
order-confirmation-downloads.css
2 years ago
order-confirmation-downloads.css.map
2 years ago
order-confirmation-downloads.js
2 years ago
order-confirmation-downloads.js.map
2 years ago
order-confirmation-shipping-address-rtl.css
2 years ago
order-confirmation-shipping-address-style.asset.php
2 years ago
order-confirmation-shipping-address-style.js.map
2 years ago
order-confirmation-shipping-address.asset.php
2 years ago
order-confirmation-shipping-address.css
2 years ago
order-confirmation-shipping-address.css.map
2 years ago
order-confirmation-shipping-address.js
2 years ago
order-confirmation-shipping-address.js.map
2 years ago
order-confirmation-shipping-wrapper-style.asset.php
2 years ago
order-confirmation-shipping-wrapper-style.js.map
2 years ago
order-confirmation-shipping-wrapper.asset.php
2 years ago
order-confirmation-shipping-wrapper.js
2 years ago
order-confirmation-shipping-wrapper.js.map
2 years ago
order-confirmation-status-rtl.css
2 years ago
order-confirmation-status-style.asset.php
2 years ago
order-confirmation-status-style.js.map
2 years ago
order-confirmation-status.asset.php
2 years ago
order-confirmation-status.css
2 years ago
order-confirmation-status.css.map
2 years ago
order-confirmation-status.js
2 years ago
order-confirmation-status.js.map
2 years ago
order-confirmation-summary-rtl.css
2 years ago
order-confirmation-summary-style.asset.php
2 years ago
order-confirmation-summary-style.js.map
2 years ago
order-confirmation-summary.asset.php
2 years ago
order-confirmation-summary.css
2 years ago
order-confirmation-summary.css.map
2 years ago
order-confirmation-summary.js
2 years ago
order-confirmation-summary.js.map
2 years ago
order-confirmation-totals-rtl.css
2 years ago
order-confirmation-totals-style.asset.php
2 years ago
order-confirmation-totals-style.js.map
2 years ago
order-confirmation-totals-wrapper-style.asset.php
2 years ago
order-confirmation-totals-wrapper-style.js.map
2 years ago
order-confirmation-totals-wrapper.asset.php
2 years ago
order-confirmation-totals-wrapper.js
2 years ago
order-confirmation-totals-wrapper.js.map
2 years ago
order-confirmation-totals.asset.php
2 years ago
order-confirmation-totals.css
2 years ago
order-confirmation-totals.css.map
2 years ago
order-confirmation-totals.js
2 years ago
order-confirmation-totals.js.map
2 years ago
packages-style-rtl.css
2 years ago
packages-style-style.asset.php
2 years ago
packages-style-style.js.map
2 years ago
packages-style.css
2 years ago
packages-style.css.map
2 years ago
page-content-wrapper-style.asset.php
2 years ago
page-content-wrapper-style.js.map
2 years ago
page-content-wrapper.asset.php
2 years ago
page-content-wrapper.js
2 years ago
page-content-wrapper.js.map
2 years ago
price-filter-frontend.asset.php
2 years ago
price-filter-frontend.js
2 years ago
price-filter-frontend.js.map
2 years ago
price-filter-rtl.css
2 years ago
price-filter-style.asset.php
2 years ago
price-filter-style.js.map
2 years ago
price-filter-wrapper-frontend.js
2 years ago
price-filter-wrapper-frontend.js.map
2 years ago
price-filter-wrapper-rtl.css
2 years ago
price-filter-wrapper-style.js.map
2 years ago
price-filter-wrapper.css
2 years ago
price-filter-wrapper.css.map
2 years ago
price-filter.asset.php
2 years ago
price-filter.css
2 years ago
price-filter.css.map
2 years ago
price-filter.js
2 years ago
price-filter.js.map
2 years ago
price-format.asset.php
2 years ago
price-format.js
2 years ago
price-format.js.map
2 years ago
product-add-to-cart-frontend.js
2 years ago
product-add-to-cart-frontend.js.map
2 years ago
product-add-to-cart-rtl.css
2 years ago
product-add-to-cart-style.js.map
2 years ago
product-add-to-cart.css
2 years ago
product-add-to-cart.css.map
2 years ago
product-add-to-cart.js
2 years ago
product-add-to-cart.js.map
2 years ago
product-average-rating-frontend.js
2 years ago
product-average-rating-frontend.js.map
2 years ago
product-average-rating-style.js.map
2 years ago
product-average-rating.js
2 years ago
product-average-rating.js.map
2 years ago
product-best-sellers-style.asset.php
2 years ago
product-best-sellers-style.js.map
2 years ago
product-best-sellers.asset.php
2 years ago
product-best-sellers.js
2 years ago
product-best-sellers.js.map
2 years ago
product-button-frontend.js
2 years ago
product-button-frontend.js.map
2 years ago
product-button-interactivity-frontend.asset.php
2 years ago
product-button-interactivity-frontend.js
2 years ago
product-button-interactivity-frontend.js.map
2 years ago
product-button-rtl.css
2 years ago
product-button-style.js.map
2 years ago
product-button.css
2 years ago
product-button.css.map
2 years ago
product-button.js
2 years ago
product-button.js.map
2 years ago
product-categories-rtl.css
2 years ago
product-categories-style.asset.php
2 years ago
product-categories-style.js.map
2 years ago
product-categories.asset.php
2 years ago
product-categories.css
2 years ago
product-categories.css.map
2 years ago
product-categories.js
2 years ago
product-categories.js.map
2 years ago
product-category-style.asset.php
2 years ago
product-category-style.js.map
2 years ago
product-category.asset.php
2 years ago
product-category.js
2 years ago
product-category.js.map
2 years ago
product-collection-no-results-style.asset.php
2 years ago
product-collection-no-results-style.js.map
2 years ago
product-collection-no-results.asset.php
2 years ago
product-collection-no-results.js
2 years ago
product-collection-no-results.js.map
2 years ago
product-collection-style.asset.php
2 years ago
product-collection-style.js.map
2 years ago
product-collection.asset.php
2 years ago
product-collection.js
2 years ago
product-collection.js.map
2 years ago
product-details-rtl.css
2 years ago
product-details-style.asset.php
2 years ago
product-details-style.js.map
2 years ago
product-details.css
2 years ago
product-details.css.map
2 years ago
product-gallery-frontend.asset.php
2 years ago
product-gallery-frontend.js
2 years ago
product-gallery-frontend.js.map
2 years ago
product-gallery-large-image-frontend.asset.php
2 years ago
product-gallery-large-image-frontend.js
2 years ago
product-gallery-large-image-frontend.js.map
2 years ago
product-gallery-large-image-next-previous-style.asset.php
2 years ago
product-gallery-large-image-next-previous-style.js.map
2 years ago
product-gallery-large-image-next-previous.asset.php
2 years ago
product-gallery-large-image-next-previous.js
2 years ago
product-gallery-large-image-next-previous.js.map
2 years ago
product-gallery-large-image-style.asset.php
2 years ago
product-gallery-large-image-style.js.map
2 years ago
product-gallery-large-image.asset.php
2 years ago
product-gallery-large-image.js
2 years ago
product-gallery-large-image.js.map
2 years ago
product-gallery-pager-style.asset.php
2 years ago
product-gallery-pager-style.js.map
2 years ago
product-gallery-pager.asset.php
2 years ago
product-gallery-pager.js
2 years ago
product-gallery-pager.js.map
2 years ago
product-gallery-rtl.css
2 years ago
product-gallery-style.asset.php
2 years ago
product-gallery-style.js.map
2 years ago
product-gallery-thumbnails-style.asset.php
2 years ago
product-gallery-thumbnails-style.js.map
2 years ago
product-gallery-thumbnails.asset.php
2 years ago
product-gallery-thumbnails.js
2 years ago
product-gallery-thumbnails.js.map
2 years ago
product-gallery.asset.php
2 years ago
product-gallery.css
2 years ago
product-gallery.css.map
2 years ago
product-gallery.js
2 years ago
product-gallery.js.map
2 years ago
product-image-frontend.js
2 years ago
product-image-frontend.js.map
2 years ago
product-image-gallery-rtl.css
2 years ago
product-image-gallery-style.asset.php
2 years ago
product-image-gallery-style.js.map
2 years ago
product-image-gallery.css
2 years ago
product-image-gallery.css.map
2 years ago
product-image-rtl.css
2 years ago
product-image-style.js.map
2 years ago
product-image.css
2 years ago
product-image.css.map
2 years ago
product-image.js
2 years ago
product-image.js.map
2 years ago
product-new-style.asset.php
2 years ago
product-new-style.js.map
2 years ago
product-new.asset.php
2 years ago
product-new.js
2 years ago
product-new.js.map
2 years ago
product-on-sale-style.asset.php
2 years ago
product-on-sale-style.js.map
2 years ago
product-on-sale.asset.php
2 years ago
product-on-sale.js
2 years ago
product-on-sale.js.map
2 years ago
product-price-frontend.js
2 years ago
product-price-frontend.js.map
2 years ago
product-price-rtl.css
2 years ago
product-price-style.js.map
2 years ago
product-price.css
2 years ago
product-price.css.map
2 years ago
product-price.js
2 years ago
product-price.js.map
2 years ago
product-query-rtl.css
2 years ago
product-query-style.asset.php
2 years ago
product-query-style.js.map
2 years ago
product-query.asset.php
2 years ago
product-query.css
2 years ago
product-query.css.map
2 years ago
product-query.js
2 years ago
product-query.js.map
2 years ago
product-rating-counter-frontend.js
2 years ago
product-rating-counter-frontend.js.map
2 years ago
product-rating-counter-style.js.map
2 years ago
product-rating-counter.js
2 years ago
product-rating-counter.js.map
2 years ago
product-rating-frontend.js
2 years ago
product-rating-frontend.js.map
2 years ago
product-rating-rtl.css
2 years ago
product-rating-stars-frontend.js
2 years ago
product-rating-stars-frontend.js.map
2 years ago
product-rating-stars-rtl.css
2 years ago
product-rating-stars-style.js.map
2 years ago
product-rating-stars.css
2 years ago
product-rating-stars.css.map
2 years ago
product-rating-stars.js
2 years ago
product-rating-stars.js.map
2 years ago
product-rating-style.js.map
2 years ago
product-rating.css
2 years ago
product-rating.css.map
2 years ago
product-rating.js
2 years ago
product-rating.js.map
2 years ago
product-results-count-rtl.css
2 years ago
product-results-count-style.asset.php
2 years ago
product-results-count-style.js.map
2 years ago
product-results-count.asset.php
2 years ago
product-results-count.css
2 years ago
product-results-count.css.map
2 years ago
product-results-count.js
2 years ago
product-results-count.js.map
2 years ago
product-reviews-rtl.css
2 years ago
product-reviews-style.asset.php
2 years ago
product-reviews-style.js.map
2 years ago
product-reviews.css
2 years ago
product-reviews.css.map
2 years ago
product-sale-badge-frontend.js
2 years ago
product-sale-badge-frontend.js.map
2 years ago
product-sale-badge-rtl.css
2 years ago
product-sale-badge-style.js.map
2 years ago
product-sale-badge.css
2 years ago
product-sale-badge.css.map
2 years ago
product-sale-badge.js
2 years ago
product-sale-badge.js.map
2 years ago
product-search-rtl.css
2 years ago
product-search-style.asset.php
2 years ago
product-search-style.js.map
2 years ago
product-search.asset.php
2 years ago
product-search.css
2 years ago
product-search.css.map
2 years ago
product-search.js
2 years ago
product-search.js.map
2 years ago
product-sku-frontend.js
2 years ago
product-sku-frontend.js.map
2 years ago
product-sku-rtl.css
2 years ago
product-sku-style.js.map
2 years ago
product-sku.css
2 years ago
product-sku.css.map
2 years ago
product-sku.js
2 years ago
product-sku.js.map
2 years ago
product-stock-indicator-frontend.js
2 years ago
product-stock-indicator-frontend.js.map
2 years ago
product-stock-indicator-rtl.css
2 years ago
product-stock-indicator-style.js.map
2 years ago
product-stock-indicator.css
2 years ago
product-stock-indicator.css.map
2 years ago
product-stock-indicator.js
2 years ago
product-stock-indicator.js.map
2 years ago
product-summary-frontend.js
2 years ago
product-summary-frontend.js.map
2 years ago
product-summary-rtl.css
2 years ago
product-summary-style.js.map
2 years ago
product-summary.css
2 years ago
product-summary.css.map
2 years ago
product-summary.js
2 years ago
product-summary.js.map
2 years ago
product-tag-style.asset.php
2 years ago
product-tag-style.js.map
2 years ago
product-tag.asset.php
2 years ago
product-tag.js
2 years ago
product-tag.js.map
2 years ago
product-template-rtl.css
2 years ago
product-template-style.asset.php
2 years ago
product-template-style.js.map
2 years ago
product-template.asset.php
2 years ago
product-template.css
2 years ago
product-template.css.map
2 years ago
product-template.js
2 years ago
product-template.js.map
2 years ago
product-title-frontend.js
2 years ago
product-title-frontend.js.map
2 years ago
product-title-rtl.css
2 years ago
product-title-style.js.map
2 years ago
product-title.css
2 years ago
product-title.css.map
2 years ago
product-title.js
2 years ago
product-title.js.map
2 years ago
product-top-rated-style.asset.php
2 years ago
product-top-rated-style.js.map
2 years ago
product-top-rated.asset.php
2 years ago
product-top-rated.js
2 years ago
product-top-rated.js.map
2 years ago
products-by-attribute-style.asset.php
2 years ago
products-by-attribute-style.js.map
2 years ago
products-by-attribute.asset.php
2 years ago
products-by-attribute.js
2 years ago
products-by-attribute.js.map
2 years ago
rating-filter-frontend.asset.php
2 years ago
rating-filter-frontend.js
2 years ago
rating-filter-frontend.js.map
2 years ago
rating-filter-rtl.css
2 years ago
rating-filter-style.asset.php
2 years ago
rating-filter-style.js.map
2 years ago
rating-filter-wrapper-frontend.js
2 years ago
rating-filter-wrapper-frontend.js.map
2 years ago
rating-filter-wrapper-rtl.css
2 years ago
rating-filter-wrapper-style.js.map
2 years ago
rating-filter-wrapper.css
2 years ago
rating-filter-wrapper.css.map
2 years ago
rating-filter.asset.php
2 years ago
rating-filter.css
2 years ago
rating-filter.css.map
2 years ago
rating-filter.js
2 years ago
rating-filter.js.map
2 years ago
reviews-by-category-rtl.css
2 years ago
reviews-by-category-style.asset.php
2 years ago
reviews-by-category-style.js.map
2 years ago
reviews-by-category.asset.php
2 years ago
reviews-by-category.css
2 years ago
reviews-by-category.css.map
2 years ago
reviews-by-category.js
2 years ago
reviews-by-category.js.map
2 years ago
reviews-by-product-rtl.css
2 years ago
reviews-by-product-style.asset.php
2 years ago
reviews-by-product-style.js.map
2 years ago
reviews-by-product.asset.php
2 years ago
reviews-by-product.css
2 years ago
reviews-by-product.css.map
2 years ago
reviews-by-product.js
2 years ago
reviews-by-product.js.map
2 years ago
reviews-frontend.asset.php
2 years ago
reviews-frontend.js
2 years ago
reviews-frontend.js.map
2 years ago
single-product-rtl.css
2 years ago
single-product-style.asset.php
2 years ago
single-product-style.js.map
2 years ago
single-product.asset.php
2 years ago
single-product.css
2 years ago
single-product.css.map
2 years ago
single-product.js
2 years ago
single-product.js.map
2 years ago
stock-filter-frontend.asset.php
2 years ago
stock-filter-frontend.js
2 years ago
stock-filter-frontend.js.map
2 years ago
stock-filter-rtl.css
2 years ago
stock-filter-style.asset.php
2 years ago
stock-filter-style.js.map
2 years ago
stock-filter-wrapper-frontend.js
2 years ago
stock-filter-wrapper-frontend.js.map
2 years ago
stock-filter-wrapper-rtl.css
2 years ago
stock-filter-wrapper-style.js.map
2 years ago
stock-filter-wrapper.css
2 years ago
stock-filter-wrapper.css.map
2 years ago
stock-filter.asset.php
2 years ago
stock-filter.css
2 years ago
stock-filter.css.map
2 years ago
stock-filter.js
2 years ago
stock-filter.js.map
2 years ago
store-notices-rtl.css
2 years ago
store-notices-style.asset.php
2 years ago
store-notices-style.js.map
2 years ago
store-notices.asset.php
2 years ago
store-notices.css
2 years ago
store-notices.css.map
2 years ago
store-notices.js
2 years ago
store-notices.js.map
2 years ago
vendors-node_modules_pnpm_dinero_js_1_9_1_node_modules_dinero_js_build_esm_dinero_js-style.js.map
2 years ago
vendors-node_modules_pnpm_param-case_3_0_4_node_modules_param-case_dist_es2015_index_js-style.js.map
2 years ago
vendors-node_modules_pnpm_wordpress_components_14_2_0__types_react_17_0_71_react-dom_17_0_2_r-019903-style.js.map
2 years ago
vendors-node_modules_pnpm_wordpress_components_14_2_0__types_react_17_0_71_react-dom_17_0_2_r-37238e-frontend.js
2 years ago
vendors-node_modules_pnpm_wordpress_components_14_2_0__types_react_17_0_71_react-dom_17_0_2_r-37238e-frontend.js.map
2 years ago
vendors-node_modules_pnpm_wordpress_components_14_2_0__types_react_17_0_71_react-dom_17_0_2_r-68c184-style.js.map
2 years ago
vendors-node_modules_pnpm_wordpress_components_14_2_0__types_react_17_0_71_react-dom_17_0_2_r-70a73f-frontend.js
2 years ago
vendors-node_modules_pnpm_wordpress_components_14_2_0__types_react_17_0_71_react-dom_17_0_2_r-70a73f-frontend.js.map
2 years ago
vendors-node_modules_pnpm_wordpress_components_14_2_0__types_react_17_0_71_react-dom_17_0_2_r-849324-frontend.js
2 years ago
vendors-node_modules_pnpm_wordpress_components_14_2_0__types_react_17_0_71_react-dom_17_0_2_r-849324-frontend.js.map
2 years ago
vendors-node_modules_pnpm_wordpress_components_14_2_0__types_react_17_0_71_react-dom_17_0_2_r-bab841-style.js.map
2 years ago
vendors-node_modules_pnpm_wordpress_components_14_2_0__types_react_17_0_71_react-dom_17_0_2_r-c6918e-style.js.map
2 years ago
wc-blocks-classic-template-revert-button-style-rtl.css
2 years ago
wc-blocks-classic-template-revert-button-style-style.asset.php
2 years ago
wc-blocks-classic-template-revert-button-style-style.js.map
2 years ago
wc-blocks-classic-template-revert-button-style.css
2 years ago
wc-blocks-classic-template-revert-button-style.css.map
2 years ago
wc-blocks-classic-template-revert-button.asset.php
2 years ago
wc-blocks-classic-template-revert-button.js
2 years ago
wc-blocks-classic-template-revert-button.js.map
2 years ago
wc-blocks-data.asset.php
2 years ago
wc-blocks-data.js
2 years ago
wc-blocks-data.js.map
2 years ago
wc-blocks-editor-style-rtl.css
2 years ago
wc-blocks-editor-style.css
2 years ago
wc-blocks-editor-style.css.map
2 years ago
wc-blocks-google-analytics.asset.php
2 years ago
wc-blocks-google-analytics.js
2 years ago
wc-blocks-google-analytics.js.map
2 years ago
wc-blocks-middleware.asset.php
2 years ago
wc-blocks-middleware.js
2 years ago
wc-blocks-middleware.js.map
2 years ago
wc-blocks-registry.asset.php
2 years ago
wc-blocks-registry.js
2 years ago
wc-blocks-registry.js.map
2 years ago
wc-blocks-rtl.css
2 years ago
wc-blocks-shared-context.asset.php
2 years ago
wc-blocks-shared-context.js
2 years ago
wc-blocks-shared-context.js.map
2 years ago
wc-blocks-shared-hocs.asset.php
2 years ago
wc-blocks-shared-hocs.js
2 years ago
wc-blocks-shared-hocs.js.map
2 years ago
wc-blocks-style.asset.php
2 years ago
wc-blocks-style.js.map
2 years ago
wc-blocks-vendors.asset.php
2 years ago
wc-blocks-vendors.js
2 years ago
wc-blocks-vendors.js.map
2 years ago
wc-blocks.asset.php
2 years ago
wc-blocks.css
2 years ago
wc-blocks.css.map
2 years ago
wc-blocks.js
2 years ago
wc-blocks.js.map
2 years ago
wc-interactivity-checkbox-list-rtl.css
2 years ago
wc-interactivity-checkbox-list-style.asset.php
2 years ago
wc-interactivity-checkbox-list-style.js.map
2 years ago
wc-interactivity-checkbox-list.asset.php
2 years ago
wc-interactivity-checkbox-list.css
2 years ago
wc-interactivity-checkbox-list.css.map
2 years ago
wc-interactivity-checkbox-list.js
2 years ago
wc-interactivity-checkbox-list.js.map
2 years ago
wc-interactivity-dropdown-rtl.css
2 years ago
wc-interactivity-dropdown-style.asset.php
2 years ago
wc-interactivity-dropdown-style.js.map
2 years ago
wc-interactivity-dropdown.asset.php
2 years ago
wc-interactivity-dropdown.css
2 years ago
wc-interactivity-dropdown.css.map
2 years ago
wc-interactivity-dropdown.js
2 years ago
wc-interactivity-dropdown.js.map
2 years ago
wc-interactivity.asset.php
2 years ago
wc-interactivity.js
2 years ago
wc-interactivity.js.map
2 years ago
wc-payment-method-bacs.asset.php
2 years ago
wc-payment-method-bacs.js
2 years ago
wc-payment-method-bacs.js.map
2 years ago
wc-payment-method-cheque.asset.php
2 years ago
wc-payment-method-cheque.js
2 years ago
wc-payment-method-cheque.js.map
2 years ago
wc-payment-method-cod.asset.php
2 years ago
wc-payment-method-cod.js
2 years ago
wc-payment-method-cod.js.map
2 years ago
wc-payment-method-paypal.asset.php
2 years ago
wc-payment-method-paypal.js
2 years ago
wc-payment-method-paypal.js.map
2 years ago
wc-settings.asset.php
2 years ago
wc-settings.js
2 years ago
wc-settings.js.map
2 years ago
wc-shipping-method-pickup-location.asset.php
2 years ago
wc-shipping-method-pickup-location.js
2 years ago
wc-shipping-method-pickup-location.js.map
2 years ago
mini-cart-frontend.js
742 lines
| 1 | /******/ (() => { // webpackBootstrap |
| 2 | /******/ "use strict"; |
| 3 | /******/ var __webpack_modules__ = ({ |
| 4 | |
| 5 | /***/ "./assets/js/base/utils/get-navigation-type.ts": |
| 6 | /*!*****************************************************!*\ |
| 7 | !*** ./assets/js/base/utils/get-navigation-type.ts ***! |
| 8 | \*****************************************************/ |
| 9 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { |
| 10 | |
| 11 | __webpack_require__.r(__webpack_exports__); |
| 12 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 13 | /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), |
| 14 | /* harmony export */ getNavigationType: () => (/* binding */ getNavigationType) |
| 15 | /* harmony export */ }); |
| 16 | /** |
| 17 | * Returns the navigation type for the page load. |
| 18 | */ |
| 19 | const getNavigationType = () => { |
| 20 | if (window.performance && window.performance.getEntriesByType('navigation').length) { |
| 21 | return window.performance.getEntriesByType('navigation')[0].type; |
| 22 | } |
| 23 | return ''; |
| 24 | }; |
| 25 | /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getNavigationType); |
| 26 | |
| 27 | /***/ }), |
| 28 | |
| 29 | /***/ "./assets/js/base/utils/lazy-load-script.ts": |
| 30 | /*!**************************************************!*\ |
| 31 | !*** ./assets/js/base/utils/lazy-load-script.ts ***! |
| 32 | \**************************************************/ |
| 33 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { |
| 34 | |
| 35 | __webpack_require__.r(__webpack_exports__); |
| 36 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 37 | /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) |
| 38 | /* harmony export */ }); |
| 39 | /* harmony import */ var _woocommerce_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @woocommerce/types */ "./assets/js/types/type-guards/string.ts"); |
| 40 | /** |
| 41 | * External dependencies |
| 42 | */ |
| 43 | |
| 44 | /** |
| 45 | * In WP, registered scripts are loaded into the page with an element like this: |
| 46 | * `<script src='...' id='[SCRIPT_ID]'></script>` |
| 47 | * This function checks whether an element matching that selector exists. |
| 48 | * Useful to know if a script has already been appended to the page. |
| 49 | */ |
| 50 | const isScriptTagInDOM = (scriptId, src = '') => { |
| 51 | // If the store is using a plugin to concatenate scripts, we might have some |
| 52 | // cases where we don't detect whether a script has already been loaded. |
| 53 | // Because of that, we add an extra protection to the wc-blocks-registry-js |
| 54 | // script, to avoid ending up with two registries. |
| 55 | if (scriptId === 'wc-blocks-registry-js') { |
| 56 | var _window, _window$wc; |
| 57 | if (typeof ((_window = window) === null || _window === void 0 ? void 0 : (_window$wc = _window.wc) === null || _window$wc === void 0 ? void 0 : _window$wc.wcBlocksRegistry) === 'object') { |
| 58 | return true; |
| 59 | } |
| 60 | } |
| 61 | const srcParts = src.split('?'); |
| 62 | if ((srcParts === null || srcParts === void 0 ? void 0 : srcParts.length) > 1) { |
| 63 | src = srcParts[0]; |
| 64 | } |
| 65 | const selector = src ? `script#${scriptId}, script[src*="${src}"]` : `script#${scriptId}`; |
| 66 | const scriptElements = document.querySelectorAll(selector); |
| 67 | return scriptElements.length > 0; |
| 68 | }; |
| 69 | |
| 70 | /** |
| 71 | * Appends a script element to the document body if a script with the same id |
| 72 | * doesn't exist. |
| 73 | */ |
| 74 | const appendScript = attributes => { |
| 75 | // Abort if id is not valid or a script with the same id exists. |
| 76 | if (!(0,_woocommerce_types__WEBPACK_IMPORTED_MODULE_0__.isString)(attributes.id) || isScriptTagInDOM(attributes.id, attributes === null || attributes === void 0 ? void 0 : attributes.src)) { |
| 77 | return; |
| 78 | } |
| 79 | const scriptElement = document.createElement('script'); |
| 80 | for (const attr in attributes) { |
| 81 | // We could technically be iterating over inherited members here, so |
| 82 | // if this is the case we should skip it. |
| 83 | if (!attributes.hasOwnProperty(attr)) { |
| 84 | continue; |
| 85 | } |
| 86 | const key = attr; |
| 87 | |
| 88 | // Skip the keys that aren't strings, because TS can't be sure which |
| 89 | // key in the scriptElement object we're assigning to. |
| 90 | if (key === 'onload' || key === 'onerror') { |
| 91 | continue; |
| 92 | } |
| 93 | |
| 94 | // This assignment stops TS complaining about the value maybe being |
| 95 | // undefined following the isString check below. |
| 96 | const value = attributes[key]; |
| 97 | if ((0,_woocommerce_types__WEBPACK_IMPORTED_MODULE_0__.isString)(value)) { |
| 98 | scriptElement[key] = value; |
| 99 | } |
| 100 | } |
| 101 | |
| 102 | // Now that we've assigned all the strings, we can explicitly assign to the |
| 103 | // function keys. |
| 104 | if (typeof attributes.onload === 'function') { |
| 105 | scriptElement.onload = attributes.onload; |
| 106 | } |
| 107 | if (typeof attributes.onerror === 'function') { |
| 108 | scriptElement.onerror = attributes.onerror; |
| 109 | } |
| 110 | document.body.appendChild(scriptElement); |
| 111 | }; |
| 112 | |
| 113 | /** |
| 114 | * Appends a `<script>` tag to the document body based on the src and handle |
| 115 | * parameters. In addition, it appends additional script tags to load the code |
| 116 | * needed for translations and any before and after inline scripts. See these |
| 117 | * documentation pages for more information: |
| 118 | * |
| 119 | * https://developer.wordpress.org/reference/functions/wp_set_script_translations/ |
| 120 | * https://developer.wordpress.org/reference/functions/wp_add_inline_script/ |
| 121 | */ |
| 122 | const lazyLoadScript = ({ |
| 123 | handle, |
| 124 | src, |
| 125 | version, |
| 126 | after, |
| 127 | before, |
| 128 | translations |
| 129 | }) => { |
| 130 | return new Promise((resolve, reject) => { |
| 131 | if (isScriptTagInDOM(`${handle}-js`, src)) { |
| 132 | resolve(); |
| 133 | } |
| 134 | if (translations) { |
| 135 | appendScript({ |
| 136 | id: `${handle}-js-translations`, |
| 137 | innerHTML: translations |
| 138 | }); |
| 139 | } |
| 140 | if (before) { |
| 141 | appendScript({ |
| 142 | id: `${handle}-js-before`, |
| 143 | innerHTML: before |
| 144 | }); |
| 145 | } |
| 146 | const onload = () => { |
| 147 | if (after) { |
| 148 | appendScript({ |
| 149 | id: `${handle}-js-after`, |
| 150 | innerHTML: after |
| 151 | }); |
| 152 | } |
| 153 | resolve(); |
| 154 | }; |
| 155 | appendScript({ |
| 156 | id: `${handle}-js`, |
| 157 | onerror: reject, |
| 158 | onload, |
| 159 | src: version ? `${src}?ver=${version}` : src |
| 160 | }); |
| 161 | }); |
| 162 | }; |
| 163 | /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (lazyLoadScript); |
| 164 | |
| 165 | /***/ }), |
| 166 | |
| 167 | /***/ "./assets/js/base/utils/legacy-events.ts": |
| 168 | /*!***********************************************!*\ |
| 169 | !*** ./assets/js/base/utils/legacy-events.ts ***! |
| 170 | \***********************************************/ |
| 171 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { |
| 172 | |
| 173 | __webpack_require__.r(__webpack_exports__); |
| 174 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 175 | /* harmony export */ dispatchEvent: () => (/* binding */ dispatchEvent), |
| 176 | /* harmony export */ translateJQueryEventToNative: () => (/* binding */ translateJQueryEventToNative), |
| 177 | /* harmony export */ triggerAddedToCartEvent: () => (/* binding */ triggerAddedToCartEvent), |
| 178 | /* harmony export */ triggerAddingToCartEvent: () => (/* binding */ triggerAddingToCartEvent) |
| 179 | /* harmony export */ }); |
| 180 | /** |
| 181 | * External dependencies |
| 182 | */ |
| 183 | |
| 184 | const CustomEvent = window.CustomEvent || null; |
| 185 | /** |
| 186 | * Wrapper function to dispatch an event. |
| 187 | */ |
| 188 | const dispatchEvent = (name, { |
| 189 | bubbles = false, |
| 190 | cancelable = false, |
| 191 | element, |
| 192 | detail = {} |
| 193 | }) => { |
| 194 | if (!CustomEvent) { |
| 195 | return; |
| 196 | } |
| 197 | if (!element) { |
| 198 | element = document.body; |
| 199 | } |
| 200 | const event = new CustomEvent(name, { |
| 201 | bubbles, |
| 202 | cancelable, |
| 203 | detail |
| 204 | }); |
| 205 | element.dispatchEvent(event); |
| 206 | }; |
| 207 | const triggerAddingToCartEvent = () => { |
| 208 | dispatchEvent('wc-blocks_adding_to_cart', { |
| 209 | bubbles: true, |
| 210 | cancelable: true |
| 211 | }); |
| 212 | }; |
| 213 | const triggerAddedToCartEvent = ({ |
| 214 | preserveCartData = false |
| 215 | }) => { |
| 216 | dispatchEvent('wc-blocks_added_to_cart', { |
| 217 | bubbles: true, |
| 218 | cancelable: true, |
| 219 | detail: { |
| 220 | preserveCartData |
| 221 | } |
| 222 | }); |
| 223 | }; |
| 224 | |
| 225 | /** |
| 226 | * Function that listens to a jQuery event and dispatches a native JS event. |
| 227 | * Useful to convert WC Core events into events that can be read by blocks. |
| 228 | * |
| 229 | * Returns a function to remove the jQuery event handler. Ideally it should be |
| 230 | * used when the component is unmounted. |
| 231 | */ |
| 232 | const translateJQueryEventToNative = (jQueryEventName, nativeEventName, |
| 233 | // Whether the event bubbles. |
| 234 | bubbles = false, |
| 235 | // Whether the event is cancelable. |
| 236 | cancelable = false) => { |
| 237 | if (typeof jQuery !== 'function') { |
| 238 | return () => void null; |
| 239 | } |
| 240 | const eventDispatcher = () => { |
| 241 | dispatchEvent(nativeEventName, { |
| 242 | bubbles, |
| 243 | cancelable |
| 244 | }); |
| 245 | }; |
| 246 | jQuery(document).on(jQueryEventName, eventDispatcher); |
| 247 | return () => jQuery(document).off(jQueryEventName, eventDispatcher); |
| 248 | }; |
| 249 | |
| 250 | /***/ }), |
| 251 | |
| 252 | /***/ "./assets/js/base/utils/preload-script.ts": |
| 253 | /*!************************************************!*\ |
| 254 | !*** ./assets/js/base/utils/preload-script.ts ***! |
| 255 | \************************************************/ |
| 256 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { |
| 257 | |
| 258 | __webpack_require__.r(__webpack_exports__); |
| 259 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 260 | /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) |
| 261 | /* harmony export */ }); |
| 262 | /** |
| 263 | * Appends a `<link>` tag to the document head to preload a script based on the |
| 264 | * src and handle parameters. |
| 265 | */ |
| 266 | const preloadScript = ({ |
| 267 | handle, |
| 268 | src, |
| 269 | version |
| 270 | }) => { |
| 271 | const srcParts = src.split('?'); |
| 272 | if ((srcParts === null || srcParts === void 0 ? void 0 : srcParts.length) > 1) { |
| 273 | src = srcParts[0]; |
| 274 | } |
| 275 | const selector = `#${handle}-js, #${handle}-js-prefetch, script[src*="${src}"]`; |
| 276 | const handleScriptElements = document.querySelectorAll(selector); |
| 277 | if (handleScriptElements.length === 0) { |
| 278 | const prefetchLink = document.createElement('link'); |
| 279 | prefetchLink.href = version ? `${src}?ver=${version}` : src; |
| 280 | prefetchLink.rel = 'preload'; |
| 281 | prefetchLink.as = 'script'; |
| 282 | prefetchLink.id = `${handle}-js-prefetch`; |
| 283 | document.head.appendChild(prefetchLink); |
| 284 | } |
| 285 | }; |
| 286 | /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (preloadScript); |
| 287 | |
| 288 | /***/ }), |
| 289 | |
| 290 | /***/ "./assets/js/blocks/mini-cart/utils/data.ts": |
| 291 | /*!**************************************************!*\ |
| 292 | !*** ./assets/js/blocks/mini-cart/utils/data.ts ***! |
| 293 | \**************************************************/ |
| 294 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { |
| 295 | |
| 296 | __webpack_require__.r(__webpack_exports__); |
| 297 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 298 | /* harmony export */ getMiniCartTotalsFromLocalStorage: () => (/* binding */ getMiniCartTotalsFromLocalStorage), |
| 299 | /* harmony export */ getMiniCartTotalsFromServer: () => (/* binding */ getMiniCartTotalsFromServer), |
| 300 | /* harmony export */ migrateAttributesToColorPanel: () => (/* binding */ migrateAttributesToColorPanel), |
| 301 | /* harmony export */ updateTotals: () => (/* binding */ updateTotals) |
| 302 | /* harmony export */ }); |
| 303 | /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); |
| 304 | /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__); |
| 305 | /* harmony import */ var _woocommerce_price_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @woocommerce/price-format */ "@woocommerce/price-format"); |
| 306 | /* harmony import */ var _woocommerce_price_format__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_woocommerce_price_format__WEBPACK_IMPORTED_MODULE_1__); |
| 307 | /* harmony import */ var _woocommerce_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @woocommerce/types */ "./assets/js/types/type-guards/boolean.ts"); |
| 308 | /* harmony import */ var _woocommerce_settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @woocommerce/settings */ "@woocommerce/settings"); |
| 309 | /* harmony import */ var _woocommerce_settings__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_woocommerce_settings__WEBPACK_IMPORTED_MODULE_2__); |
| 310 | /* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/api-fetch */ "@wordpress/api-fetch"); |
| 311 | /* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3__); |
| 312 | /** |
| 313 | * External dependencies |
| 314 | */ |
| 315 | |
| 316 | |
| 317 | |
| 318 | |
| 319 | |
| 320 | |
| 321 | /** |
| 322 | * Internal dependencies |
| 323 | */ |
| 324 | |
| 325 | const getPrice = (totals, showIncludingTax) => { |
| 326 | const currency = (0,_woocommerce_price_format__WEBPACK_IMPORTED_MODULE_1__.getCurrencyFromPriceResponse)(totals); |
| 327 | const subTotal = showIncludingTax ? parseInt(totals.total_items, 10) + parseInt(totals.total_items_tax, 10) : parseInt(totals.total_items, 10); |
| 328 | return (0,_woocommerce_price_format__WEBPACK_IMPORTED_MODULE_1__.formatPrice)(subTotal, currency); |
| 329 | }; |
| 330 | const updateTotals = cartData => { |
| 331 | if (!cartData) { |
| 332 | return; |
| 333 | } |
| 334 | const [totals, quantity] = cartData; |
| 335 | const showIncludingTax = (0,_woocommerce_settings__WEBPACK_IMPORTED_MODULE_2__.getSettingWithCoercion)('displayCartPricesIncludingTax', false, _woocommerce_types__WEBPACK_IMPORTED_MODULE_4__.isBoolean); |
| 336 | const amount = getPrice(totals, showIncludingTax); |
| 337 | const miniCartBlocks = document.querySelectorAll('.wc-block-mini-cart'); |
| 338 | const miniCartQuantities = document.querySelectorAll('.wc-block-mini-cart__badge'); |
| 339 | const miniCartAmounts = document.querySelectorAll('.wc-block-mini-cart__amount'); |
| 340 | miniCartBlocks.forEach(miniCartBlock => { |
| 341 | if (!(miniCartBlock instanceof HTMLElement)) { |
| 342 | return; |
| 343 | } |
| 344 | const miniCartButton = miniCartBlock.querySelector('.wc-block-mini-cart__button'); |
| 345 | miniCartButton === null || miniCartButton === void 0 ? void 0 : miniCartButton.setAttribute('aria-label', miniCartBlock.dataset.hasHiddenPrice ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)( /* translators: %s number of products in cart. */ |
| 346 | (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__._n)('%1$d item in cart', '%1$d items in cart', quantity, 'woocommerce'), quantity) : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)( /* translators: %1$d is the number of products in the cart. %2$s is the cart total */ |
| 347 | (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__._n)('%1$d item in cart, total price of %2$s', '%1$d items in cart, total price of %2$s', quantity, 'woocommerce'), quantity, amount)); |
| 348 | miniCartBlock.dataset.cartTotals = JSON.stringify(totals); |
| 349 | miniCartBlock.dataset.cartItemsCount = quantity.toString(); |
| 350 | }); |
| 351 | miniCartQuantities.forEach(miniCartQuantity => { |
| 352 | if (quantity > 0 || miniCartQuantity.textContent !== '') { |
| 353 | miniCartQuantity.textContent = quantity.toString(); |
| 354 | } |
| 355 | }); |
| 356 | miniCartAmounts.forEach(miniCartAmount => { |
| 357 | miniCartAmount.textContent = amount; |
| 358 | }); |
| 359 | |
| 360 | // Show the tax label only if there are products in the cart. |
| 361 | if (quantity > 0) { |
| 362 | const miniCartTaxLabels = document.querySelectorAll('.wc-block-mini-cart__tax-label'); |
| 363 | miniCartTaxLabels.forEach(miniCartTaxLabel => { |
| 364 | miniCartTaxLabel.removeAttribute('hidden'); |
| 365 | }); |
| 366 | } |
| 367 | }; |
| 368 | const getMiniCartTotalsFromLocalStorage = () => { |
| 369 | const rawMiniCartTotals = localStorage.getItem('wc-blocks_mini_cart_totals'); |
| 370 | if (!rawMiniCartTotals) { |
| 371 | return undefined; |
| 372 | } |
| 373 | const cartData = JSON.parse(rawMiniCartTotals); |
| 374 | return [cartData.totals, cartData.itemsCount]; |
| 375 | }; |
| 376 | const getMiniCartTotalsFromServer = async () => { |
| 377 | return _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default()({ |
| 378 | path: '/wc/store/v1/cart' |
| 379 | }).then(data => { |
| 380 | // Save server data to local storage, so we can re-fetch it faster |
| 381 | // on the next page load. |
| 382 | localStorage.setItem('wc-blocks_mini_cart_totals', JSON.stringify({ |
| 383 | totals: data.totals, |
| 384 | itemsCount: data.items_count |
| 385 | })); |
| 386 | return [data.totals, data.items_count]; |
| 387 | }).catch(error => { |
| 388 | // eslint-disable-next-line no-console |
| 389 | console.error(error); |
| 390 | return undefined; |
| 391 | }); |
| 392 | }; |
| 393 | function migrateAttributesToColorPanel(attributes) { |
| 394 | const attrs = { |
| 395 | ...attributes |
| 396 | }; |
| 397 | if (attrs.priceColorValue && !attrs.priceColor) { |
| 398 | attrs.priceColor = { |
| 399 | color: attributes.priceColorValue |
| 400 | }; |
| 401 | delete attrs.priceColorValue; |
| 402 | } |
| 403 | if (attrs.iconColorValue && !attrs.iconColor) { |
| 404 | attrs.iconColor = { |
| 405 | color: attributes.iconColorValue |
| 406 | }; |
| 407 | delete attrs.iconColorValue; |
| 408 | } |
| 409 | if (attrs.productCountColorValue && !attrs.productCountColor) { |
| 410 | attrs.productCountColor = { |
| 411 | color: attributes.productCountColorValue |
| 412 | }; |
| 413 | delete attrs.productCountColorValue; |
| 414 | } |
| 415 | return attrs; |
| 416 | } |
| 417 | |
| 418 | /***/ }), |
| 419 | |
| 420 | /***/ "./assets/js/blocks/mini-cart/utils/set-styles.ts": |
| 421 | /*!********************************************************!*\ |
| 422 | !*** ./assets/js/blocks/mini-cart/utils/set-styles.ts ***! |
| 423 | \********************************************************/ |
| 424 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { |
| 425 | |
| 426 | __webpack_require__.r(__webpack_exports__); |
| 427 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 428 | /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) |
| 429 | /* harmony export */ }); |
| 430 | function getClosestColor(element, colorType) { |
| 431 | if (!element) { |
| 432 | return null; |
| 433 | } |
| 434 | const color = window.getComputedStyle(element)[colorType]; |
| 435 | if (color !== 'rgba(0, 0, 0, 0)' && color !== 'transparent') { |
| 436 | return color; |
| 437 | } |
| 438 | return getClosestColor(element.parentElement, colorType); |
| 439 | } |
| 440 | function setStyles() { |
| 441 | /** |
| 442 | * Get the background color of the body then set it as the background color |
| 443 | * of the Mini-Cart Contents block. |
| 444 | * |
| 445 | * We only set the background color, instead of the whole background. As |
| 446 | * we only provide the option to customize the background color. |
| 447 | */ |
| 448 | const style = document.createElement('style'); |
| 449 | const backgroundColor = getComputedStyle(document.body).backgroundColor; |
| 450 | // For simplicity, we only consider the background color of the first Mini-Cart button. |
| 451 | const firstMiniCartButton = document.querySelector('.wc-block-mini-cart__button'); |
| 452 | const badgeTextColor = getClosestColor(firstMiniCartButton, 'backgroundColor') || '#fff'; |
| 453 | const badgeBackgroundColor = getClosestColor(firstMiniCartButton, 'color') || '#000'; |
| 454 | |
| 455 | // We use :where here to reduce specificity so customized colors and theme |
| 456 | // CSS take priority. |
| 457 | style.appendChild(document.createTextNode(`:where(.wp-block-woocommerce-mini-cart-contents) { |
| 458 | background-color: ${backgroundColor}; |
| 459 | } |
| 460 | :where(.wc-block-mini-cart__badge) { |
| 461 | background-color: ${badgeBackgroundColor}; |
| 462 | color: ${badgeTextColor}; |
| 463 | }`)); |
| 464 | document.head.appendChild(style); |
| 465 | } |
| 466 | /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setStyles); |
| 467 | |
| 468 | /***/ }), |
| 469 | |
| 470 | /***/ "./assets/js/types/type-guards/boolean.ts": |
| 471 | /*!************************************************!*\ |
| 472 | !*** ./assets/js/types/type-guards/boolean.ts ***! |
| 473 | \************************************************/ |
| 474 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { |
| 475 | |
| 476 | __webpack_require__.r(__webpack_exports__); |
| 477 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 478 | /* harmony export */ isBoolean: () => (/* binding */ isBoolean) |
| 479 | /* harmony export */ }); |
| 480 | const isBoolean = term => { |
| 481 | return typeof term === 'boolean'; |
| 482 | }; |
| 483 | |
| 484 | /***/ }), |
| 485 | |
| 486 | /***/ "./assets/js/types/type-guards/string.ts": |
| 487 | /*!***********************************************!*\ |
| 488 | !*** ./assets/js/types/type-guards/string.ts ***! |
| 489 | \***********************************************/ |
| 490 | /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { |
| 491 | |
| 492 | __webpack_require__.r(__webpack_exports__); |
| 493 | /* harmony export */ __webpack_require__.d(__webpack_exports__, { |
| 494 | /* harmony export */ isString: () => (/* binding */ isString) |
| 495 | /* harmony export */ }); |
| 496 | const isString = term => { |
| 497 | return typeof term === 'string'; |
| 498 | }; |
| 499 | |
| 500 | /***/ }), |
| 501 | |
| 502 | /***/ "@woocommerce/price-format": |
| 503 | /*!*************************************!*\ |
| 504 | !*** external ["wc","priceFormat"] ***! |
| 505 | \*************************************/ |
| 506 | /***/ ((module) => { |
| 507 | |
| 508 | module.exports = window["wc"]["priceFormat"]; |
| 509 | |
| 510 | /***/ }), |
| 511 | |
| 512 | /***/ "@woocommerce/settings": |
| 513 | /*!************************************!*\ |
| 514 | !*** external ["wc","wcSettings"] ***! |
| 515 | \************************************/ |
| 516 | /***/ ((module) => { |
| 517 | |
| 518 | module.exports = window["wc"]["wcSettings"]; |
| 519 | |
| 520 | /***/ }), |
| 521 | |
| 522 | /***/ "@wordpress/api-fetch": |
| 523 | /*!**********************************!*\ |
| 524 | !*** external ["wp","apiFetch"] ***! |
| 525 | \**********************************/ |
| 526 | /***/ ((module) => { |
| 527 | |
| 528 | module.exports = window["wp"]["apiFetch"]; |
| 529 | |
| 530 | /***/ }), |
| 531 | |
| 532 | /***/ "@wordpress/i18n": |
| 533 | /*!******************************!*\ |
| 534 | !*** external ["wp","i18n"] ***! |
| 535 | \******************************/ |
| 536 | /***/ ((module) => { |
| 537 | |
| 538 | module.exports = window["wp"]["i18n"]; |
| 539 | |
| 540 | /***/ }) |
| 541 | |
| 542 | /******/ }); |
| 543 | /************************************************************************/ |
| 544 | /******/ // The module cache |
| 545 | /******/ var __webpack_module_cache__ = {}; |
| 546 | /******/ |
| 547 | /******/ // The require function |
| 548 | /******/ function __webpack_require__(moduleId) { |
| 549 | /******/ // Check if module is in cache |
| 550 | /******/ var cachedModule = __webpack_module_cache__[moduleId]; |
| 551 | /******/ if (cachedModule !== undefined) { |
| 552 | /******/ return cachedModule.exports; |
| 553 | /******/ } |
| 554 | /******/ // Create a new module (and put it into the cache) |
| 555 | /******/ var module = __webpack_module_cache__[moduleId] = { |
| 556 | /******/ // no module.id needed |
| 557 | /******/ // no module.loaded needed |
| 558 | /******/ exports: {} |
| 559 | /******/ }; |
| 560 | /******/ |
| 561 | /******/ // Execute the module function |
| 562 | /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); |
| 563 | /******/ |
| 564 | /******/ // Return the exports of the module |
| 565 | /******/ return module.exports; |
| 566 | /******/ } |
| 567 | /******/ |
| 568 | /************************************************************************/ |
| 569 | /******/ /* webpack/runtime/compat get default export */ |
| 570 | /******/ (() => { |
| 571 | /******/ // getDefaultExport function for compatibility with non-harmony modules |
| 572 | /******/ __webpack_require__.n = (module) => { |
| 573 | /******/ var getter = module && module.__esModule ? |
| 574 | /******/ () => (module['default']) : |
| 575 | /******/ () => (module); |
| 576 | /******/ __webpack_require__.d(getter, { a: getter }); |
| 577 | /******/ return getter; |
| 578 | /******/ }; |
| 579 | /******/ })(); |
| 580 | /******/ |
| 581 | /******/ /* webpack/runtime/define property getters */ |
| 582 | /******/ (() => { |
| 583 | /******/ // define getter functions for harmony exports |
| 584 | /******/ __webpack_require__.d = (exports, definition) => { |
| 585 | /******/ for(var key in definition) { |
| 586 | /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { |
| 587 | /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); |
| 588 | /******/ } |
| 589 | /******/ } |
| 590 | /******/ }; |
| 591 | /******/ })(); |
| 592 | /******/ |
| 593 | /******/ /* webpack/runtime/hasOwnProperty shorthand */ |
| 594 | /******/ (() => { |
| 595 | /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) |
| 596 | /******/ })(); |
| 597 | /******/ |
| 598 | /******/ /* webpack/runtime/make namespace object */ |
| 599 | /******/ (() => { |
| 600 | /******/ // define __esModule on exports |
| 601 | /******/ __webpack_require__.r = (exports) => { |
| 602 | /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { |
| 603 | /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); |
| 604 | /******/ } |
| 605 | /******/ Object.defineProperty(exports, '__esModule', { value: true }); |
| 606 | /******/ }; |
| 607 | /******/ })(); |
| 608 | /******/ |
| 609 | /************************************************************************/ |
| 610 | var __webpack_exports__ = {}; |
| 611 | // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. |
| 612 | (() => { |
| 613 | /*!************************************************!*\ |
| 614 | !*** ./assets/js/blocks/mini-cart/frontend.ts ***! |
| 615 | \************************************************/ |
| 616 | __webpack_require__.r(__webpack_exports__); |
| 617 | /* harmony import */ var _woocommerce_base_utils_preload_script__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @woocommerce/base-utils/preload-script */ "./assets/js/base/utils/preload-script.ts"); |
| 618 | /* harmony import */ var _woocommerce_base_utils_lazy_load_script__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @woocommerce/base-utils/lazy-load-script */ "./assets/js/base/utils/lazy-load-script.ts"); |
| 619 | /* harmony import */ var _woocommerce_base_utils_get_navigation_type__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @woocommerce/base-utils/get-navigation-type */ "./assets/js/base/utils/get-navigation-type.ts"); |
| 620 | /* harmony import */ var _woocommerce_base_utils_legacy_events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @woocommerce/base-utils/legacy-events */ "./assets/js/base/utils/legacy-events.ts"); |
| 621 | /* harmony import */ var _utils_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/data */ "./assets/js/blocks/mini-cart/utils/data.ts"); |
| 622 | /* harmony import */ var _utils_set_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/set-styles */ "./assets/js/blocks/mini-cart/utils/set-styles.ts"); |
| 623 | /** |
| 624 | * External dependencies |
| 625 | */ |
| 626 | |
| 627 | |
| 628 | |
| 629 | |
| 630 | |
| 631 | /** |
| 632 | * Internal dependencies |
| 633 | */ |
| 634 | |
| 635 | |
| 636 | (0,_utils_data__WEBPACK_IMPORTED_MODULE_0__.updateTotals)((0,_utils_data__WEBPACK_IMPORTED_MODULE_0__.getMiniCartTotalsFromLocalStorage)()); |
| 637 | (0,_utils_data__WEBPACK_IMPORTED_MODULE_0__.getMiniCartTotalsFromServer)().then(_utils_data__WEBPACK_IMPORTED_MODULE_0__.updateTotals); |
| 638 | (0,_utils_set_styles__WEBPACK_IMPORTED_MODULE_1__["default"])(); |
| 639 | window.addEventListener('load', () => { |
| 640 | const miniCartBlocks = document.querySelectorAll('.wc-block-mini-cart'); |
| 641 | let wasLoadScriptsCalled = false; |
| 642 | if (miniCartBlocks.length === 0) { |
| 643 | return; |
| 644 | } |
| 645 | const dependencies = window.wcBlocksMiniCartFrontendDependencies; |
| 646 | |
| 647 | // Preload scripts |
| 648 | for (const dependencyHandle in dependencies) { |
| 649 | const dependency = dependencies[dependencyHandle]; |
| 650 | (0,_woocommerce_base_utils_preload_script__WEBPACK_IMPORTED_MODULE_2__["default"])({ |
| 651 | handle: dependencyHandle, |
| 652 | ...dependency |
| 653 | }); |
| 654 | } |
| 655 | |
| 656 | // Make it so we can read jQuery events triggered by WC Core elements. |
| 657 | const removeJQueryAddingToCartEvent = (0,_woocommerce_base_utils_legacy_events__WEBPACK_IMPORTED_MODULE_3__.translateJQueryEventToNative)('adding_to_cart', 'wc-blocks_adding_to_cart'); |
| 658 | const removeJQueryAddedToCartEvent = (0,_woocommerce_base_utils_legacy_events__WEBPACK_IMPORTED_MODULE_3__.translateJQueryEventToNative)('added_to_cart', 'wc-blocks_added_to_cart'); |
| 659 | const removeJQueryRemovedFromCartEvent = (0,_woocommerce_base_utils_legacy_events__WEBPACK_IMPORTED_MODULE_3__.translateJQueryEventToNative)('removed_from_cart', 'wc-blocks_removed_from_cart'); |
| 660 | const loadScripts = async () => { |
| 661 | // Ensure we only call loadScripts once. |
| 662 | if (wasLoadScriptsCalled) { |
| 663 | return; |
| 664 | } |
| 665 | wasLoadScriptsCalled = true; |
| 666 | |
| 667 | // Remove adding to cart event handler. |
| 668 | document.body.removeEventListener('wc-blocks_adding_to_cart', loadScripts); |
| 669 | removeJQueryAddingToCartEvent(); |
| 670 | |
| 671 | // Lazy load scripts. |
| 672 | for (const dependencyHandle in dependencies) { |
| 673 | const dependency = dependencies[dependencyHandle]; |
| 674 | await (0,_woocommerce_base_utils_lazy_load_script__WEBPACK_IMPORTED_MODULE_4__["default"])({ |
| 675 | handle: dependencyHandle, |
| 676 | ...dependency |
| 677 | }); |
| 678 | } |
| 679 | }; |
| 680 | document.body.addEventListener('wc-blocks_adding_to_cart', loadScripts); |
| 681 | |
| 682 | // Load scripts if a page is reloaded via the back button (potentially out of date cart data). |
| 683 | // Based on refreshCachedCartData() in assets/js/base/context/cart-checkout/cart/index.js. |
| 684 | window.addEventListener('pageshow', event => { |
| 685 | if (event !== null && event !== void 0 && event.persisted || (0,_woocommerce_base_utils_get_navigation_type__WEBPACK_IMPORTED_MODULE_5__["default"])() === 'back_forward') { |
| 686 | loadScripts(); |
| 687 | } |
| 688 | }); |
| 689 | miniCartBlocks.forEach((miniCartBlock, i) => { |
| 690 | if (!(miniCartBlock instanceof HTMLElement)) { |
| 691 | return; |
| 692 | } |
| 693 | const miniCartButton = miniCartBlock.querySelector('.wc-block-mini-cart__button'); |
| 694 | const miniCartDrawerPlaceholderOverlay = miniCartBlock.querySelector('.wc-block-components-drawer__screen-overlay'); |
| 695 | if (!miniCartButton || !miniCartDrawerPlaceholderOverlay) { |
| 696 | // Markup is not correct, abort. |
| 697 | return; |
| 698 | } |
| 699 | const loadContents = () => { |
| 700 | if (!wasLoadScriptsCalled) { |
| 701 | loadScripts(); |
| 702 | } |
| 703 | document.body.removeEventListener('wc-blocks_added_to_cart', |
| 704 | // eslint-disable-next-line @typescript-eslint/no-use-before-define |
| 705 | funcOnAddToCart); |
| 706 | document.body.removeEventListener('wc-blocks_removed_from_cart', |
| 707 | // eslint-disable-next-line @typescript-eslint/no-use-before-define |
| 708 | loadContentsWithRefresh); |
| 709 | removeJQueryAddedToCartEvent(); |
| 710 | removeJQueryRemovedFromCartEvent(); |
| 711 | }; |
| 712 | const openDrawer = () => { |
| 713 | miniCartBlock.dataset.isInitiallyOpen = 'true'; |
| 714 | miniCartDrawerPlaceholderOverlay.classList.add('wc-block-components-drawer__screen-overlay--with-slide-in'); |
| 715 | miniCartDrawerPlaceholderOverlay.classList.remove('wc-block-components-drawer__screen-overlay--is-hidden'); |
| 716 | loadContents(); |
| 717 | }; |
| 718 | const openDrawerWithRefresh = () => { |
| 719 | openDrawer(); |
| 720 | }; |
| 721 | const loadContentsWithRefresh = () => { |
| 722 | miniCartBlock.dataset.isInitiallyOpen = 'false'; |
| 723 | loadContents(); |
| 724 | }; |
| 725 | miniCartButton.addEventListener('mouseover', loadScripts); |
| 726 | miniCartButton.addEventListener('focus', loadScripts); |
| 727 | miniCartButton.addEventListener('click', openDrawer); |
| 728 | const funcOnAddToCart = miniCartBlock.dataset.addToCartBehaviour === 'open_drawer' ? openDrawerWithRefresh : loadContentsWithRefresh; |
| 729 | |
| 730 | // There might be more than one Mini-Cart block in the page. Make sure |
| 731 | // only one opens when adding a product to the cart. |
| 732 | if (i === 0) { |
| 733 | document.body.addEventListener('wc-blocks_added_to_cart', funcOnAddToCart); |
| 734 | document.body.addEventListener('wc-blocks_removed_from_cart', loadContentsWithRefresh); |
| 735 | } |
| 736 | }); |
| 737 | }); |
| 738 | })(); |
| 739 | |
| 740 | /******/ })() |
| 741 | ; |
| 742 | //# sourceMappingURL=mini-cart-frontend.js.map |