PluginProbe ʕ •ᴥ•ʔ
WooCommerce / 8.5.0-beta.1
WooCommerce v8.5.0-beta.1
10.9.1 10.9.0 10.9.0-rc.1 10.9.0-beta.2 10.9.0-beta.1 10.8.1 10.8.0 10.8.0-rc.1 10.8.0-beta.2 10.8.0-beta.1 7.8.0-beta.1 7.8.0-beta.2 7.8.0-rc.1 7.8.0-rc.2 7.8.1 7.8.2 7.8.3 7.8.4 7.9.0 7.9.0-beta.1 7.9.0-beta.2 7.9.0-rc.2 7.9.0-rc.3 7.9.1 7.9.2 8.0.0 8.0.0-beta.1 8.0.0-beta.2 8.0.0-rc.1 8.0.0-rc.2 8.0.1 8.0.2 8.0.3 8.0.4 8.0.5 8.1.0 8.1.0-beta.1 8.1.0-rc.1 8.1.0-rc.2 8.1.1 8.1.2 8.1.3 8.1.4 8.2.0 8.2.0-beta.1 8.2.0-rc.1 8.2.0-rc.2 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.3.0 8.3.0-beta.1 8.3.0-rc.1 8.3.0-rc.2 8.3.1 8.3.2 8.3.3 8.3.4 8.4.0 8.4.0-beta.1 8.4.0-rc.1 8.4.1 8.4.2 8.4.3 8.5.0 8.5.0-beta.1 8.5.0-rc.1 8.5.1 8.5.2 8.5.3 8.5.4 8.5.5 8.6.0 8.6.0-beta.1 8.6.0-rc.1 8.6.1 8.6.2 8.6.3 8.6.4 8.7.0 8.7.0-beta.1 8.7.0-beta.2 8.7.0-rc.1 8.7.1 8.7.2 8.7.3 8.8.0 8.8.0-beta.1 8.8.0-rc.1 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.8.6 8.8.7 8.9.0 8.9.0-beta.1 8.9.0-rc.1 8.9.1 8.9.2 8.9.3 8.9.4 8.9.5 9.0.0 9.0.0-beta.1 9.0.0-beta.2 9.0.0-rc.1 9.0.1 9.0.2 9.0.3 9.0.4 9.1.0 9.1.0-beta.1 9.1.0-rc.1 9.1.1 9.1.2 9.1.3 9.1.4 9.1.5 9.1.6 9.2.0 9.2.0-beta.1 9.2.0-rc.1 9.2.1 9.2.2 9.2.3 9.2.4 9.2.5 9.3.0 9.3.0-beta.1 9.3.0-rc.1 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.3.6 9.4.0 9.4.0-beta.1 9.4.0-beta.2 9.4.0-rc.1 9.4.0-rc.2 9.4.0-rc.3 9.4.0-rc.4 9.4.1 9.4.2 9.4.3 9.4.4 9.4.5 9.5.0 9.5.0-beta.1 9.5.0-beta.2 9.5.0-rc.1 9.5.1 9.5.2 9.5.3 9.5.4 9.6.0 9.6.0-beta.1 9.6.0-beta.2 9.6.0-rc.1 9.6.1 9.6.2 9.6.3 9.6.4 9.7.0 9.7.0-beta.1 9.7.0-rc.1 9.7.1 9.7.2 9.7.3 9.8.0 9.8.0-beta.1 9.8.0-rc.1 9.8.1 9.8.2 9.8.3 9.8.4 9.8.5 9.8.6 9.8.7 9.9.0 9.9.0-beta.1 9.9.0-rc.1 9.9.1 9.9.2 9.9.3 9.9.4 9.9.5 9.9.6 9.9.7 3.7.3 7.1.2 3.8.0 7.2.0 3.8.0-beta.1 7.2.0-beta.1 3.8.0-rc.1 7.2.0-beta.2 3.8.0-rc.2 7.2.0-rc.1 3.8.1 7.2.0-rc.2 3.8.2 7.2.1 3.8.3 7.2.2 3.9.0 7.2.3 3.9.0-beta.1 7.2.4 3.9.0-beta.2 7.3.0 3.9.0-rc.1 7.3.0-beta.1 3.9.0-rc.2 7.3.0-beta.2 3.9.0-rc.3 7.3.0-rc.1 3.9.0-rc.4 7.3.0-rc.2 3.9.1 7.3.1 3.9.2 7.4.0 3.9.3 7.4.0-beta.1 3.9.4 7.4.0-beta.2 3.9.5 7.4.0-rc.1 4.0.0 7.4.0-rc.2 4.0.0-beta.1 7.4.1 4.0.0-rc.1 7.4.2 4.0.0-rc.2 7.5.0 4.0.1 7.5.0-beta.1 4.0.2 7.5.0-beta.2 4.0.3 7.5.0-rc.1 4.0.4 7.5.1 4.1.0 7.5.2 4.1.0-beta.1 7.6.0 4.1.0-beta.2 7.6.0-beta.1 4.1.0-rc.1 7.6.0-beta.2 4.1.0-rc.2 7.6.0-rc.1 4.1.1 7.6.0-rc.2 4.1.2 7.6.0-rc.3 4.1.3 7.6.1 4.1.4 7.6.2 4.2.0 7.7.0 4.2.0-RC.1 7.7.0-beta.1 4.2.0-RC.2 7.7.0-beta.2 4.2.0-beta.1 7.7.0-rc.1 4.2.1 7.7.1 4.2.2 7.7.2 4.2.3 7.7.3 4.2.4 7.8.0 4.2.5 4.3.0 4.3.0-beta.1 4.3.0-rc.1 4.3.0-rc.2 4.3.0-rc.3 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.4.0 4.4.0-beta.1 4.4.0-rc.1 4.4.1 4.4.2 4.4.3 4.4.4 4.5.0 4.5.0-beta.1 4.5.0-rc.1 4.5.0-rc.3 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.6.0-beta.1 4.6.0-rc.1 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.7.0 4.7.0-beta.1 4.7.0-beta.2 4.7.0-rc.1 4.7.1 4.7.1-beta.1 4.7.2 4.7.3 4.7.4 4.8.0 4.8.0-beta.1 4.8.0-rc.1 4.8.0-rc.2 4.8.1 4.8.2 4.8.3 4.9.0 4.9.0-beta.1 4.9.0-rc.1 4.9.0-rc.2 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 5.0.0 5.0.0-beta.1 5.0.0-beta.2 5.0.0-rc.1 5.0.0-rc.2 5.0.0-rc.3 5.0.1 5.0.2 5.0.3 5.1.0 5.1.0-beta.1 5.1.0-rc.1 trunk 5.1.1 10.0.0 5.1.2 10.0.0-rc.1 5.1.3 10.0.0-rc.2 5.2.0 10.0.1 5.2.0-beta.1 10.0.2 5.2.0-rc.1 10.0.3 5.2.0-rc.2 10.0.4 5.2.1 10.0.5 5.2.2 10.0.6 5.2.3 10.1.0 5.2.4 10.1.0-rc.1 5.2.5 10.1.0-rc.2 5.3.0 10.1.0-rc.3 5.3.0-beta.1 10.1.0-rc.4 5.3.0-rc.1 10.1.1 5.3.0-rc.2 10.1.2 5.3.1 10.1.3 5.3.2 10.1.4 5.3.3 10.2.0 5.4.0 10.2.0-beta.1 5.4.0-beta.1 10.2.0-beta.2 5.4.0-rc.1 10.2.0-rc.1 5.4.1 10.2.1 5.4.2 10.2.2 5.4.3 10.2.3 5.4.4 10.2.4 5.4.5 10.3.0 5.5.0 10.3.0-beta.1 5.5.0-beta.1 10.3.0-beta.2 5.5.0-rc.1 10.3.0-rc.1 5.5.0-rc.2 10.3.0-rc.2 5.5.1 10.3.1 5.5.2 10.3.2 5.5.3 10.3.3 5.5.4 10.3.4 5.5.5 10.3.5 5.6.0 10.3.6 5.6.0-beta.1 10.3.7 5.6.0-rc.1 10.3.8 5.6.0-rc.2 10.4.0 5.6.1 10.4.0-beta.1 5.6.2 10.4.0-beta.2 5.6.3 10.4.0-rc.1 5.7.0 10.4.1 5.7.0-beta.1 10.4.2 5.7.0-rc.1 10.4.3 5.7.1 10.4.4 5.7.2 10.5.0 5.7.3 10.5.0-beta.1 5.8.0 10.5.0-beta.2 5.8.0-beta.1 10.5.0-rc.1 5.8.0-beta.2 10.5.0-rc.2 5.8.0-rc.1 10.5.0-rc.3 5.8.1 10.5.1 5.8.2 10.5.2 5.9.0 10.5.3 5.9.0-beta.1 10.6.0 5.9.0-rc.1 10.6.0-beta.1 5.9.0-rc.2 10.6.0-beta.2 5.9.1 10.6.0-rc.1 5.9.2 10.6.1 6.0.0 10.6.2 6.0.0-beta.1 10.7.0 6.0.0-rc.1 10.7.0-beta.1 6.0.1 10.7.0-beta.2 6.0.2 10.7.0-rc.1 6.1.0 3.0.0 6.1.0-beta.1 3.0.1 6.1.0-rc.1 3.0.2 6.1.0-rc.2 3.0.3 6.1.1 3.0.4 6.1.2 3.0.5 6.1.3 3.0.6 6.2.0 3.0.7 6.2.0-beta.1 3.0.8 6.2.0-rc.1 3.0.9 6.2.0-rc.2 3.1.0 6.2.1 3.1.1 6.2.2 3.1.2 6.2.3 3.2.0 6.3.0 3.2.1 6.3.0-beta.1 3.2.2 6.3.0-rc.1 3.2.3 6.3.0-rc.2 3.2.4 6.3.1 3.2.5 6.3.2 3.2.6 6.4.0 3.3.0 6.4.0-beta.1 3.3.1 6.4.0-rc.1 3.3.2 6.4.1 3.3.2-rc.1 6.4.2 3.3.3 6.5.0 3.3.4 6.5.0-beta.1 3.3.5 6.5.0-rc.1 3.3.6 6.5.0-rc.2 3.4.0 6.5.1 3.4.0-beta.1 6.5.2 3.4.0-rc.2 6.6.0 3.4.1 6.6.0-beta.1 3.4.2 6.6.0-rc.1 3.4.3 6.6.0-rc.2 3.4.4 6.6.1 3.4.5 6.6.2 3.4.6 6.7.0 3.4.7 6.7.0-beta.1 3.4.8 6.7.0-beta.2 3.5.0 6.7.0-rc.1 3.5.0-beta.1 6.7.1 3.5.0-rc.1 6.8.0 3.5.0-rc.2 6.8.0-beta.1 3.5.1 6.8.0-beta.2 3.5.10 6.8.0-rc.1 3.5.2 6.8.1 3.5.3 6.8.2 3.5.4 6.8.3 3.5.5 6.9.0 3.5.6 6.9.0-beta.1 3.5.7 6.9.0-beta.2 3.5.8 6.9.0-rc.1 3.5.9 6.9.1 3.6.0 6.9.2 3.6.0-beta.1 6.9.3 3.6.0-rc.1 6.9.4 3.6.0-rc.2 6.9.5 3.6.0-rc.3 7.0.0 3.6.1 7.0.0-beta.1 3.6.2 7.0.0-beta.2 3.6.3 7.0.0-beta.3 3.6.4 7.0.0-rc.1 3.6.5 7.0.0-rc.2 3.6.6 7.0.1 3.6.7 7.0.2 3.7.0 7.1.0 3.7.0-beta.1 7.1.0-beta.1 3.7.0-rc.1 7.1.0-beta.2 3.7.0-rc.2 7.1.0-rc.1 3.7.1 7.1.0-rc.2 3.7.2 7.1.1
woocommerce / assets / client / blocks / product-image-frontend.js
woocommerce / assets / client / blocks Last commit date
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
product-image-frontend.js
1313 lines
1 (self["webpackChunkwebpackWcBlocksJsonp"] = self["webpackChunkwebpackWcBlocksJsonp"] || []).push([["product-image"],{
2
3 /***/ "./assets/js/atomic/blocks/product-elements/image/attributes.ts":
4 /*!**********************************************************************!*\
5 !*** ./assets/js/atomic/blocks/product-elements/image/attributes.ts ***!
6 \**********************************************************************/
7 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8
9 "use strict";
10 __webpack_require__.r(__webpack_exports__);
11 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12 /* harmony export */ blockAttributes: () => (/* binding */ blockAttributes),
13 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
14 /* harmony export */ });
15 /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ "./assets/js/atomic/blocks/product-elements/image/types.ts");
16 /**
17 * External dependencies
18 */
19
20 /**
21 * Internal dependencies
22 */
23
24 const blockAttributes = {
25 showProductLink: {
26 type: 'boolean',
27 default: true
28 },
29 showSaleBadge: {
30 type: 'boolean',
31 default: true
32 },
33 saleBadgeAlign: {
34 type: 'string',
35 default: 'right'
36 },
37 imageSizing: {
38 type: 'string',
39 default: _types__WEBPACK_IMPORTED_MODULE_0__.ImageSizing.SINGLE
40 },
41 productId: {
42 type: 'number',
43 default: 0
44 },
45 isDescendentOfQueryLoop: {
46 type: 'boolean',
47 default: false
48 },
49 isDescendentOfSingleProductBlock: {
50 type: 'boolean',
51 default: false
52 },
53 width: {
54 type: 'string'
55 },
56 height: {
57 type: 'string'
58 },
59 scale: {
60 type: 'string',
61 default: 'cover'
62 },
63 aspectRatio: {
64 type: 'string'
65 }
66 };
67 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (blockAttributes);
68
69 /***/ }),
70
71 /***/ "./assets/js/atomic/blocks/product-elements/image/block.tsx":
72 /*!******************************************************************!*\
73 !*** ./assets/js/atomic/blocks/product-elements/image/block.tsx ***!
74 \******************************************************************/
75 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
76
77 "use strict";
78 __webpack_require__.r(__webpack_exports__);
79 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
80 /* harmony export */ Block: () => (/* binding */ Block),
81 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
82 /* harmony export */ });
83 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
84 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
85 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
86 /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);
87 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
88 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
89 /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! classnames */ "../../node_modules/.pnpm/classnames@2.3.1/node_modules/classnames/index.js");
90 /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);
91 /* harmony import */ var _woocommerce_settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @woocommerce/settings */ "@woocommerce/settings");
92 /* harmony import */ var _woocommerce_settings__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_woocommerce_settings__WEBPACK_IMPORTED_MODULE_4__);
93 /* harmony import */ var _woocommerce_shared_context__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @woocommerce/shared-context */ "@woocommerce/shared-context");
94 /* harmony import */ var _woocommerce_shared_context__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_woocommerce_shared_context__WEBPACK_IMPORTED_MODULE_5__);
95 /* harmony import */ var _woocommerce_base_hooks__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @woocommerce/base-hooks */ "./assets/js/base/hooks/use-style-props.ts");
96 /* harmony import */ var _woocommerce_shared_hocs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @woocommerce/shared-hocs */ "@woocommerce/shared-hocs");
97 /* harmony import */ var _woocommerce_shared_hocs__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_woocommerce_shared_hocs__WEBPACK_IMPORTED_MODULE_6__);
98 /* harmony import */ var _woocommerce_base_context_hooks__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @woocommerce/base-context/hooks */ "./assets/js/base/context/hooks/use-store-events.ts");
99 /* harmony import */ var _sale_badge_block__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../sale-badge/block */ "./assets/js/atomic/blocks/product-elements/sale-badge/block.tsx");
100 /* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./style.scss */ "./assets/js/atomic/blocks/product-elements/image/style.scss");
101 /* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_style_scss__WEBPACK_IMPORTED_MODULE_8__);
102 /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./types */ "./assets/js/atomic/blocks/product-elements/image/types.ts");
103
104 /**
105 * External dependencies
106 */
107
108
109
110
111
112
113
114
115 /**
116 * Internal dependencies
117 */
118
119
120
121 const ImagePlaceholder = props => {
122 return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
123 ...props,
124 src: _woocommerce_settings__WEBPACK_IMPORTED_MODULE_4__.PLACEHOLDER_IMG_SRC,
125 alt: "",
126 width: undefined,
127 height: undefined
128 });
129 };
130 const Image = ({
131 image,
132 loaded,
133 showFullSize,
134 fallbackAlt,
135 width,
136 scale,
137 height,
138 aspectRatio
139 }) => {
140 const {
141 thumbnail,
142 src,
143 srcset,
144 sizes,
145 alt
146 } = image || {};
147 const imageProps = {
148 alt: alt || fallbackAlt,
149 hidden: !loaded,
150 src: thumbnail,
151 ...(showFullSize && {
152 src,
153 srcSet: srcset,
154 sizes
155 })
156 };
157 const imageStyles = {
158 height,
159 width,
160 objectFit: scale,
161 aspectRatio
162 };
163 return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, imageProps.src && /* eslint-disable-next-line jsx-a11y/alt-text */
164 (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
165 style: imageStyles,
166 "data-testid": "product-image",
167 ...imageProps
168 }), !image && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ImagePlaceholder, {
169 style: imageStyles
170 }));
171 };
172 const Block = props => {
173 const {
174 className,
175 imageSizing = _types__WEBPACK_IMPORTED_MODULE_9__.ImageSizing.SINGLE,
176 showProductLink = true,
177 showSaleBadge,
178 saleBadgeAlign = 'right',
179 height,
180 width,
181 scale,
182 aspectRatio,
183 ...restProps
184 } = props;
185 const styleProps = (0,_woocommerce_base_hooks__WEBPACK_IMPORTED_MODULE_10__.useStyleProps)(props);
186 const {
187 parentClassName
188 } = (0,_woocommerce_shared_context__WEBPACK_IMPORTED_MODULE_5__.useInnerBlockLayoutContext)();
189 const {
190 product,
191 isLoading
192 } = (0,_woocommerce_shared_context__WEBPACK_IMPORTED_MODULE_5__.useProductDataContext)();
193 const {
194 dispatchStoreEvent
195 } = (0,_woocommerce_base_context_hooks__WEBPACK_IMPORTED_MODULE_11__.useStoreEvents)();
196 if (!product.id) {
197 return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
198 className: classnames__WEBPACK_IMPORTED_MODULE_3___default()(className, 'wc-block-components-product-image', {
199 [`${parentClassName}__product-image`]: parentClassName
200 }, styleProps.className),
201 style: styleProps.style
202 }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ImagePlaceholder, null));
203 }
204 const hasProductImages = !!product.images.length;
205 const image = hasProductImages ? product.images[0] : null;
206 const ParentComponent = showProductLink ? 'a' : _wordpress_element__WEBPACK_IMPORTED_MODULE_1__.Fragment;
207 const anchorLabel = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)( /* translators: %s is referring to the product name */
208 (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Link to %s', 'woocommerce'), product.name);
209 const anchorProps = {
210 href: product.permalink,
211 ...(!hasProductImages && {
212 'aria-label': anchorLabel
213 }),
214 onClick: () => {
215 dispatchStoreEvent('product-view-link', {
216 product
217 });
218 }
219 };
220
221 // Remove parent block custom styles from sale badge.
222 delete restProps.style;
223 return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
224 className: classnames__WEBPACK_IMPORTED_MODULE_3___default()(className, 'wc-block-components-product-image', {
225 [`${parentClassName}__product-image`]: parentClassName
226 }, styleProps.className),
227 style: styleProps.style
228 }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ParentComponent, {
229 ...(showProductLink && anchorProps)
230 }, !!showSaleBadge && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_sale_badge_block__WEBPACK_IMPORTED_MODULE_7__["default"], {
231 align: saleBadgeAlign,
232 ...restProps
233 }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Image, {
234 fallbackAlt: product.name,
235 image: image,
236 loaded: !isLoading,
237 showFullSize: imageSizing !== _types__WEBPACK_IMPORTED_MODULE_9__.ImageSizing.THUMBNAIL,
238 width: width,
239 height: height,
240 scale: scale,
241 aspectRatio: aspectRatio
242 })));
243 };
244 Block.__docgenInfo = {
245 "description": "",
246 "methods": [],
247 "displayName": "Block"
248 };
249 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_woocommerce_shared_hocs__WEBPACK_IMPORTED_MODULE_6__.withProductDataContext)(Block));
250 if (typeof STORYBOOK_REACT_CLASSES !== "undefined") {
251 STORYBOOK_REACT_CLASSES["assets/js/atomic/blocks/product-elements/image/block.tsx"] = {
252 name: "Block",
253 docgenInfo: Block.__docgenInfo,
254 path: "assets/js/atomic/blocks/product-elements/image/block.tsx"
255 };
256 }
257
258 /***/ }),
259
260 /***/ "./assets/js/atomic/blocks/product-elements/image/frontend.ts":
261 /*!********************************************************************!*\
262 !*** ./assets/js/atomic/blocks/product-elements/image/frontend.ts ***!
263 \********************************************************************/
264 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
265
266 "use strict";
267 __webpack_require__.r(__webpack_exports__);
268 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
269 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
270 /* harmony export */ });
271 /* harmony import */ var _woocommerce_shared_hocs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @woocommerce/shared-hocs */ "@woocommerce/shared-hocs");
272 /* harmony import */ var _woocommerce_shared_hocs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_woocommerce_shared_hocs__WEBPACK_IMPORTED_MODULE_0__);
273 /* harmony import */ var _block__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./block */ "./assets/js/atomic/blocks/product-elements/image/block.tsx");
274 /* harmony import */ var _attributes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./attributes */ "./assets/js/atomic/blocks/product-elements/image/attributes.ts");
275 /**
276 * External dependencies
277 */
278
279
280 /**
281 * Internal dependencies
282 */
283
284
285 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_woocommerce_shared_hocs__WEBPACK_IMPORTED_MODULE_0__.withFilteredAttributes)(_attributes__WEBPACK_IMPORTED_MODULE_2__["default"])(_block__WEBPACK_IMPORTED_MODULE_1__["default"]));
286
287 /***/ }),
288
289 /***/ "./assets/js/atomic/blocks/product-elements/image/types.ts":
290 /*!*****************************************************************!*\
291 !*** ./assets/js/atomic/blocks/product-elements/image/types.ts ***!
292 \*****************************************************************/
293 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
294
295 "use strict";
296 __webpack_require__.r(__webpack_exports__);
297 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
298 /* harmony export */ ImageSizing: () => (/* binding */ ImageSizing)
299 /* harmony export */ });
300 let ImageSizing = /*#__PURE__*/function (ImageSizing) {
301 ImageSizing["SINGLE"] = "single";
302 ImageSizing["THUMBNAIL"] = "thumbnail";
303 return ImageSizing;
304 }({});
305
306 /***/ }),
307
308 /***/ "./assets/js/atomic/blocks/product-elements/sale-badge/block.tsx":
309 /*!***********************************************************************!*\
310 !*** ./assets/js/atomic/blocks/product-elements/sale-badge/block.tsx ***!
311 \***********************************************************************/
312 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
313
314 "use strict";
315 __webpack_require__.r(__webpack_exports__);
316 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
317 /* harmony export */ Block: () => (/* binding */ Block),
318 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
319 /* harmony export */ });
320 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
321 /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
322 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
323 /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
324 /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! classnames */ "../../node_modules/.pnpm/classnames@2.3.1/node_modules/classnames/index.js");
325 /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
326 /* harmony import */ var _woocommerce_blocks_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @woocommerce/blocks-components */ "@woocommerce/blocks-components");
327 /* harmony import */ var _woocommerce_blocks_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_woocommerce_blocks_components__WEBPACK_IMPORTED_MODULE_3__);
328 /* harmony import */ var _woocommerce_shared_context__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @woocommerce/shared-context */ "@woocommerce/shared-context");
329 /* harmony import */ var _woocommerce_shared_context__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_woocommerce_shared_context__WEBPACK_IMPORTED_MODULE_4__);
330 /* harmony import */ var _woocommerce_base_hooks__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @woocommerce/base-hooks */ "./assets/js/base/hooks/use-style-props.ts");
331 /* harmony import */ var _woocommerce_shared_hocs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @woocommerce/shared-hocs */ "@woocommerce/shared-hocs");
332 /* harmony import */ var _woocommerce_shared_hocs__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_woocommerce_shared_hocs__WEBPACK_IMPORTED_MODULE_5__);
333 /* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./style.scss */ "./assets/js/atomic/blocks/product-elements/sale-badge/style.scss");
334 /* harmony import */ var _style_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_style_scss__WEBPACK_IMPORTED_MODULE_6__);
335
336 /**
337 * External dependencies
338 */
339
340
341
342
343
344
345 /**
346 * Internal dependencies
347 */
348
349 const Block = props => {
350 const {
351 className,
352 align
353 } = props;
354 const styleProps = (0,_woocommerce_base_hooks__WEBPACK_IMPORTED_MODULE_7__.useStyleProps)(props);
355 const {
356 parentClassName
357 } = (0,_woocommerce_shared_context__WEBPACK_IMPORTED_MODULE_4__.useInnerBlockLayoutContext)();
358 const {
359 product
360 } = (0,_woocommerce_shared_context__WEBPACK_IMPORTED_MODULE_4__.useProductDataContext)();
361 if ((!product.id || !product.on_sale) && !props.isDescendentOfSingleProductTemplate) {
362 return null;
363 }
364 const alignClass = typeof align === 'string' ? `wc-block-components-product-sale-badge--align-${align}` : '';
365 return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
366 className: classnames__WEBPACK_IMPORTED_MODULE_2___default()('wc-block-components-product-sale-badge', className, alignClass, {
367 [`${parentClassName}__product-onsale`]: parentClassName
368 }, styleProps.className),
369 style: styleProps.style
370 }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_woocommerce_blocks_components__WEBPACK_IMPORTED_MODULE_3__.Label, {
371 label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Sale', 'woocommerce'),
372 screenReaderLabel: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Product on sale', 'woocommerce')
373 }));
374 };
375 Block.__docgenInfo = {
376 "description": "",
377 "methods": [],
378 "displayName": "Block"
379 };
380 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_woocommerce_shared_hocs__WEBPACK_IMPORTED_MODULE_5__.withProductDataContext)(Block));
381 if (typeof STORYBOOK_REACT_CLASSES !== "undefined") {
382 STORYBOOK_REACT_CLASSES["assets/js/atomic/blocks/product-elements/sale-badge/block.tsx"] = {
383 name: "Block",
384 docgenInfo: Block.__docgenInfo,
385 path: "assets/js/atomic/blocks/product-elements/sale-badge/block.tsx"
386 };
387 }
388
389 /***/ }),
390
391 /***/ "./assets/js/base/hooks/use-style-props.ts":
392 /*!*************************************************!*\
393 !*** ./assets/js/base/hooks/use-style-props.ts ***!
394 \*************************************************/
395 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
396
397 "use strict";
398 __webpack_require__.r(__webpack_exports__);
399 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
400 /* harmony export */ useStyleProps: () => (/* binding */ useStyleProps)
401 /* harmony export */ });
402 /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../../node_modules/.pnpm/classnames@2.3.1/node_modules/classnames/index.js");
403 /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
404 /* harmony import */ var _woocommerce_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @woocommerce/types */ "./assets/js/types/type-guards/object.ts");
405 /* harmony import */ var _woocommerce_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @woocommerce/types */ "./assets/js/types/type-guards/string.ts");
406 /* harmony import */ var _use_typography_props__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./use-typography-props */ "./assets/js/base/hooks/use-typography-props.ts");
407 /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./assets/js/base/utils/get-inline-styles.ts");
408 /**
409 * External dependencies
410 */
411
412
413 /**
414 * Internal dependencies
415 */
416
417
418 /**
419 * Parses incoming props.
420 *
421 * This may include style properties at the top level, or may include a nested `style` object. This ensures the expected
422 * values are present and converts any string based values to objects as required.
423 */
424 const parseStyleAttributes = rawProps => {
425 const props = (0,_woocommerce_types__WEBPACK_IMPORTED_MODULE_1__.isObject)(rawProps) ? rawProps : {
426 style: {}
427 };
428 let style = props.style;
429 if ((0,_woocommerce_types__WEBPACK_IMPORTED_MODULE_2__.isString)(style)) {
430 style = JSON.parse(style) || {};
431 }
432 if (!(0,_woocommerce_types__WEBPACK_IMPORTED_MODULE_1__.isObject)(style)) {
433 style = {};
434 }
435 return {
436 ...props,
437 style
438 };
439 };
440
441 /**
442 * Returns the CSS class names and inline styles for a block when provided with its props/attributes.
443 *
444 * This hook (and its utilities) borrow functionality from the Gutenberg Block Editor package--something we don't want
445 * to import on the frontend.
446 */
447 const useStyleProps = props => {
448 const styleAttributes = parseStyleAttributes(props);
449 const colorProps = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getColorClassesAndStyles)(styleAttributes);
450 const borderProps = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getBorderClassesAndStyles)(styleAttributes);
451 const spacingProps = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getSpacingClassesAndStyles)(styleAttributes);
452 const typographyProps = (0,_use_typography_props__WEBPACK_IMPORTED_MODULE_4__.useTypographyProps)(styleAttributes);
453 return {
454 className: classnames__WEBPACK_IMPORTED_MODULE_0___default()(typographyProps.className, colorProps.className, borderProps.className, spacingProps.className),
455 style: {
456 ...typographyProps.style,
457 ...colorProps.style,
458 ...borderProps.style,
459 ...spacingProps.style
460 }
461 };
462 };
463
464 /***/ }),
465
466 /***/ "./assets/js/base/hooks/use-typography-props.ts":
467 /*!******************************************************!*\
468 !*** ./assets/js/base/hooks/use-typography-props.ts ***!
469 \******************************************************/
470 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
471
472 "use strict";
473 __webpack_require__.r(__webpack_exports__);
474 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
475 /* harmony export */ useTypographyProps: () => (/* binding */ useTypographyProps)
476 /* harmony export */ });
477 /* harmony import */ var _woocommerce_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @woocommerce/types */ "./assets/js/types/type-guards/object.ts");
478 /* harmony import */ var _woocommerce_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @woocommerce/types */ "./assets/js/types/type-guards/string.ts");
479 /**
480 * External dependencies
481 */
482
483
484 /**
485 * Internal dependencies
486 */
487
488 const useTypographyProps = props => {
489 const typography = (0,_woocommerce_types__WEBPACK_IMPORTED_MODULE_0__.isObject)(props.style.typography) ? props.style.typography : {};
490 const classNameFallback = (0,_woocommerce_types__WEBPACK_IMPORTED_MODULE_1__.isString)(typography.fontFamily) ? typography.fontFamily : '';
491 const className = props.fontFamily ? `has-${props.fontFamily}-font-family` : classNameFallback;
492 return {
493 className,
494 style: {
495 fontSize: props.fontSize ? `var(--wp--preset--font-size--${props.fontSize})` : typography.fontSize,
496 fontStyle: typography.fontStyle,
497 fontWeight: typography.fontWeight,
498 letterSpacing: typography.letterSpacing,
499 lineHeight: typography.lineHeight,
500 textDecoration: typography.textDecoration,
501 textTransform: typography.textTransform
502 }
503 };
504 };
505
506 /***/ }),
507
508 /***/ "./assets/js/base/utils/get-inline-styles.ts":
509 /*!***************************************************!*\
510 !*** ./assets/js/base/utils/get-inline-styles.ts ***!
511 \***************************************************/
512 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
513
514 "use strict";
515 __webpack_require__.r(__webpack_exports__);
516 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
517 /* harmony export */ getBorderClassesAndStyles: () => (/* binding */ getBorderClassesAndStyles),
518 /* harmony export */ getColorClassesAndStyles: () => (/* binding */ getColorClassesAndStyles),
519 /* harmony export */ getSpacingClassesAndStyles: () => (/* binding */ getSpacingClassesAndStyles)
520 /* harmony export */ });
521 /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../../node_modules/.pnpm/classnames@2.3.1/node_modules/classnames/index.js");
522 /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
523 /* harmony import */ var change_case__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! change-case */ "../../node_modules/.pnpm/param-case@3.0.4/node_modules/param-case/dist.es2015/index.js");
524 /* harmony import */ var _wordpress_style_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/style-engine */ "@wordpress/style-engine");
525 /* harmony import */ var _wordpress_style_engine__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_style_engine__WEBPACK_IMPORTED_MODULE_1__);
526 /* harmony import */ var _woocommerce_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @woocommerce/types */ "./assets/js/types/type-guards/object.ts");
527 /**
528 * External dependencies
529 */
530
531
532
533
534 /**
535 * Returns the inline styles to add depending on the style object
536 *
537 * @param {Object} styles Styles configuration.
538 * @return {Object} Flattened CSS variables declaration.
539 */
540 function getInlineStyles(styles = {}) {
541 const output = {};
542 (0,_wordpress_style_engine__WEBPACK_IMPORTED_MODULE_1__.getCSSRules)(styles, {
543 selector: ''
544 }).forEach(rule => {
545 output[rule.key] = rule.value;
546 });
547 return output;
548 }
549
550 /**
551 * Get the classname for a given color.
552 */
553 function getColorClassName(colorContextName, colorSlug) {
554 if (!colorContextName || !colorSlug) {
555 return '';
556 }
557 return `has-${(0,change_case__WEBPACK_IMPORTED_MODULE_2__.paramCase)(colorSlug)}-${colorContextName}`;
558 }
559
560 /**
561 * Generates a CSS class name consisting of all the applicable border color
562 * classes given the current block attributes.
563 */
564 function getBorderClassName(attributes) {
565 var _style$border;
566 const {
567 borderColor,
568 style
569 } = attributes;
570 const borderColorClass = borderColor ? getColorClassName('border-color', borderColor) : '';
571 return classnames__WEBPACK_IMPORTED_MODULE_0___default()({
572 'has-border-color': !!borderColor || !!(style !== null && style !== void 0 && (_style$border = style.border) !== null && _style$border !== void 0 && _style$border.color),
573 [borderColorClass]: !!borderColorClass
574 });
575 }
576 function getGradientClassName(gradientSlug) {
577 if (!gradientSlug) {
578 return undefined;
579 }
580 return `has-${gradientSlug}-gradient-background`;
581 }
582
583 /**
584 * Provides the CSS class names and inline styles for a block's color support
585 * attributes.
586 */
587 function getColorClassesAndStyles(props) {
588 var _style$color, _style$color2, _style$color3, _style$color4, _style$elements, _style$elements2, _style$elements2$link;
589 const {
590 backgroundColor,
591 textColor,
592 gradient,
593 style
594 } = props;
595
596 // Collect color CSS classes.
597 const backgroundClass = getColorClassName('background-color', backgroundColor);
598 const textClass = getColorClassName('color', textColor);
599 const gradientClass = getGradientClassName(gradient);
600 const hasGradient = gradientClass || (style === null || style === void 0 ? void 0 : (_style$color = style.color) === null || _style$color === void 0 ? void 0 : _style$color.gradient);
601
602 // Determine color CSS class name list.
603 const className = classnames__WEBPACK_IMPORTED_MODULE_0___default()(textClass, gradientClass, {
604 // Don't apply the background class if there's a gradient.
605 [backgroundClass]: !hasGradient && !!backgroundClass,
606 'has-text-color': textColor || (style === null || style === void 0 ? void 0 : (_style$color2 = style.color) === null || _style$color2 === void 0 ? void 0 : _style$color2.text),
607 'has-background': backgroundColor || (style === null || style === void 0 ? void 0 : (_style$color3 = style.color) === null || _style$color3 === void 0 ? void 0 : _style$color3.background) || gradient || (style === null || style === void 0 ? void 0 : (_style$color4 = style.color) === null || _style$color4 === void 0 ? void 0 : _style$color4.gradient),
608 'has-link-color': (0,_woocommerce_types__WEBPACK_IMPORTED_MODULE_3__.isObject)(style === null || style === void 0 ? void 0 : (_style$elements = style.elements) === null || _style$elements === void 0 ? void 0 : _style$elements.link) ? style === null || style === void 0 ? void 0 : (_style$elements2 = style.elements) === null || _style$elements2 === void 0 ? void 0 : (_style$elements2$link = _style$elements2.link) === null || _style$elements2$link === void 0 ? void 0 : _style$elements2$link.color : undefined
609 });
610
611 // Collect inline styles for colors.
612 const colorStyles = (style === null || style === void 0 ? void 0 : style.color) || {};
613 return {
614 className,
615 style: getInlineStyles({
616 color: colorStyles
617 })
618 };
619 }
620
621 /**
622 * Provides the CSS class names and inline styles for a block's border support
623 * attributes.
624 */
625 function getBorderClassesAndStyles(props) {
626 var _props$style;
627 const border = ((_props$style = props.style) === null || _props$style === void 0 ? void 0 : _props$style.border) || {};
628 const className = getBorderClassName(props);
629 return {
630 className,
631 style: getInlineStyles({
632 border
633 })
634 };
635 }
636
637 /**
638 * Provides the CSS class names and inline styles for a block's spacing support
639 * attributes.
640 */
641 function getSpacingClassesAndStyles(props) {
642 var _props$style2;
643 const spacingStyles = ((_props$style2 = props.style) === null || _props$style2 === void 0 ? void 0 : _props$style2.spacing) || {};
644 const styleProp = getInlineStyles({
645 spacing: spacingStyles
646 });
647 return {
648 className: undefined,
649 style: styleProp
650 };
651 }
652
653 /***/ }),
654
655 /***/ "./assets/js/types/type-guards/null.ts":
656 /*!*********************************************!*\
657 !*** ./assets/js/types/type-guards/null.ts ***!
658 \*********************************************/
659 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
660
661 "use strict";
662 __webpack_require__.r(__webpack_exports__);
663 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
664 /* harmony export */ isNull: () => (/* binding */ isNull)
665 /* harmony export */ });
666 const isNull = term => {
667 return term === null;
668 };
669
670 /***/ }),
671
672 /***/ "./assets/js/types/type-guards/object.ts":
673 /*!***********************************************!*\
674 !*** ./assets/js/types/type-guards/object.ts ***!
675 \***********************************************/
676 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
677
678 "use strict";
679 __webpack_require__.r(__webpack_exports__);
680 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
681 /* harmony export */ isEmptyObject: () => (/* binding */ isEmptyObject),
682 /* harmony export */ isObject: () => (/* binding */ isObject),
683 /* harmony export */ objectHasProp: () => (/* binding */ objectHasProp)
684 /* harmony export */ });
685 /* harmony import */ var _null__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./null */ "./assets/js/types/type-guards/null.ts");
686 /**
687 * Internal dependencies
688 */
689
690
691 const isObject = term => {
692 return !(0,_null__WEBPACK_IMPORTED_MODULE_0__.isNull)(term) && term instanceof Object && term.constructor === Object;
693 };
694 function objectHasProp(target, property) {
695 // The `in` operator throws a `TypeError` for non-object values.
696 return isObject(target) && property in target;
697 }
698 const isEmptyObject = object => {
699 return Object.keys(object).length === 0;
700 };
701
702 /***/ }),
703
704 /***/ "./assets/js/types/type-guards/string.ts":
705 /*!***********************************************!*\
706 !*** ./assets/js/types/type-guards/string.ts ***!
707 \***********************************************/
708 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
709
710 "use strict";
711 __webpack_require__.r(__webpack_exports__);
712 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
713 /* harmony export */ isString: () => (/* binding */ isString)
714 /* harmony export */ });
715 const isString = term => {
716 return typeof term === 'string';
717 };
718
719 /***/ }),
720
721 /***/ "../../node_modules/.pnpm/dot-case@3.0.4/node_modules/dot-case/dist.es2015/index.js":
722 /*!******************************************************************************************!*\
723 !*** ../../node_modules/.pnpm/dot-case@3.0.4/node_modules/dot-case/dist.es2015/index.js ***!
724 \******************************************************************************************/
725 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
726
727 "use strict";
728 __webpack_require__.r(__webpack_exports__);
729 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
730 /* harmony export */ dotCase: () => (/* binding */ dotCase)
731 /* harmony export */ });
732 /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ "../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs");
733 /* harmony import */ var no_case__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! no-case */ "../../node_modules/.pnpm/no-case@3.0.4/node_modules/no-case/dist.es2015/index.js");
734
735
736 function dotCase(input, options) {
737 if (options === void 0) { options = {}; }
738 return (0,no_case__WEBPACK_IMPORTED_MODULE_0__.noCase)(input, (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__assign)({ delimiter: "." }, options));
739 }
740 //# sourceMappingURL=index.js.map
741
742 /***/ }),
743
744 /***/ "./assets/js/atomic/blocks/product-elements/image/style.scss":
745 /*!*******************************************************************!*\
746 !*** ./assets/js/atomic/blocks/product-elements/image/style.scss ***!
747 \*******************************************************************/
748 /***/ (() => {
749
750
751
752 /***/ }),
753
754 /***/ "./assets/js/atomic/blocks/product-elements/sale-badge/style.scss":
755 /*!************************************************************************!*\
756 !*** ./assets/js/atomic/blocks/product-elements/sale-badge/style.scss ***!
757 \************************************************************************/
758 /***/ (() => {
759
760
761
762 /***/ }),
763
764 /***/ "../../node_modules/.pnpm/lower-case@2.0.2/node_modules/lower-case/dist.es2015/index.js":
765 /*!**********************************************************************************************!*\
766 !*** ../../node_modules/.pnpm/lower-case@2.0.2/node_modules/lower-case/dist.es2015/index.js ***!
767 \**********************************************************************************************/
768 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
769
770 "use strict";
771 __webpack_require__.r(__webpack_exports__);
772 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
773 /* harmony export */ localeLowerCase: () => (/* binding */ localeLowerCase),
774 /* harmony export */ lowerCase: () => (/* binding */ lowerCase)
775 /* harmony export */ });
776 /**
777 * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt
778 */
779 var SUPPORTED_LOCALE = {
780 tr: {
781 regexp: /\u0130|\u0049|\u0049\u0307/g,
782 map: {
783 İ: "\u0069",
784 I: "\u0131",
785 : "\u0069",
786 },
787 },
788 az: {
789 regexp: /\u0130/g,
790 map: {
791 İ: "\u0069",
792 I: "\u0131",
793 : "\u0069",
794 },
795 },
796 lt: {
797 regexp: /\u0049|\u004A|\u012E|\u00CC|\u00CD|\u0128/g,
798 map: {
799 I: "\u0069\u0307",
800 J: "\u006A\u0307",
801 Į: "\u012F\u0307",
802 Ì: "\u0069\u0307\u0300",
803 Í: "\u0069\u0307\u0301",
804 Ĩ: "\u0069\u0307\u0303",
805 },
806 },
807 };
808 /**
809 * Localized lower case.
810 */
811 function localeLowerCase(str, locale) {
812 var lang = SUPPORTED_LOCALE[locale.toLowerCase()];
813 if (lang)
814 return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));
815 return lowerCase(str);
816 }
817 /**
818 * Lower case as a function.
819 */
820 function lowerCase(str) {
821 return str.toLowerCase();
822 }
823 //# sourceMappingURL=index.js.map
824
825 /***/ }),
826
827 /***/ "../../node_modules/.pnpm/no-case@3.0.4/node_modules/no-case/dist.es2015/index.js":
828 /*!****************************************************************************************!*\
829 !*** ../../node_modules/.pnpm/no-case@3.0.4/node_modules/no-case/dist.es2015/index.js ***!
830 \****************************************************************************************/
831 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
832
833 "use strict";
834 __webpack_require__.r(__webpack_exports__);
835 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
836 /* harmony export */ noCase: () => (/* binding */ noCase)
837 /* harmony export */ });
838 /* harmony import */ var lower_case__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lower-case */ "../../node_modules/.pnpm/lower-case@2.0.2/node_modules/lower-case/dist.es2015/index.js");
839
840 // Support camel case ("camelCase" -> "camel Case" and "CAMELCase" -> "CAMEL Case").
841 var DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];
842 // Remove all non-word characters.
843 var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;
844 /**
845 * Normalize the string into something other libraries can manipulate easier.
846 */
847 function noCase(input, options) {
848 if (options === void 0) { options = {}; }
849 var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lower_case__WEBPACK_IMPORTED_MODULE_0__.lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? " " : _d;
850 var result = replace(replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0");
851 var start = 0;
852 var end = result.length;
853 // Trim the delimiter from around the output string.
854 while (result.charAt(start) === "\0")
855 start++;
856 while (result.charAt(end - 1) === "\0")
857 end--;
858 // Transform each token independently.
859 return result.slice(start, end).split("\0").map(transform).join(delimiter);
860 }
861 /**
862 * Replace `re` in the input string with the replacement value.
863 */
864 function replace(input, re, value) {
865 if (re instanceof RegExp)
866 return input.replace(re, value);
867 return re.reduce(function (input, re) { return input.replace(re, value); }, input);
868 }
869 //# sourceMappingURL=index.js.map
870
871 /***/ }),
872
873 /***/ "../../node_modules/.pnpm/param-case@3.0.4/node_modules/param-case/dist.es2015/index.js":
874 /*!**********************************************************************************************!*\
875 !*** ../../node_modules/.pnpm/param-case@3.0.4/node_modules/param-case/dist.es2015/index.js ***!
876 \**********************************************************************************************/
877 /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
878
879 "use strict";
880 __webpack_require__.r(__webpack_exports__);
881 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
882 /* harmony export */ paramCase: () => (/* binding */ paramCase)
883 /* harmony export */ });
884 /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ "../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs");
885 /* harmony import */ var dot_case__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dot-case */ "../../node_modules/.pnpm/dot-case@3.0.4/node_modules/dot-case/dist.es2015/index.js");
886
887
888 function paramCase(input, options) {
889 if (options === void 0) { options = {}; }
890 return (0,dot_case__WEBPACK_IMPORTED_MODULE_0__.dotCase)(input, (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__assign)({ delimiter: "-" }, options));
891 }
892 //# sourceMappingURL=index.js.map
893
894 /***/ }),
895
896 /***/ "../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs":
897 /*!*****************************************************************************!*\
898 !*** ../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs ***!
899 \*****************************************************************************/
900 /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
901
902 "use strict";
903 __webpack_require__.r(__webpack_exports__);
904 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
905 /* harmony export */ __addDisposableResource: () => (/* binding */ __addDisposableResource),
906 /* harmony export */ __assign: () => (/* binding */ __assign),
907 /* harmony export */ __asyncDelegator: () => (/* binding */ __asyncDelegator),
908 /* harmony export */ __asyncGenerator: () => (/* binding */ __asyncGenerator),
909 /* harmony export */ __asyncValues: () => (/* binding */ __asyncValues),
910 /* harmony export */ __await: () => (/* binding */ __await),
911 /* harmony export */ __awaiter: () => (/* binding */ __awaiter),
912 /* harmony export */ __classPrivateFieldGet: () => (/* binding */ __classPrivateFieldGet),
913 /* harmony export */ __classPrivateFieldIn: () => (/* binding */ __classPrivateFieldIn),
914 /* harmony export */ __classPrivateFieldSet: () => (/* binding */ __classPrivateFieldSet),
915 /* harmony export */ __createBinding: () => (/* binding */ __createBinding),
916 /* harmony export */ __decorate: () => (/* binding */ __decorate),
917 /* harmony export */ __disposeResources: () => (/* binding */ __disposeResources),
918 /* harmony export */ __esDecorate: () => (/* binding */ __esDecorate),
919 /* harmony export */ __exportStar: () => (/* binding */ __exportStar),
920 /* harmony export */ __extends: () => (/* binding */ __extends),
921 /* harmony export */ __generator: () => (/* binding */ __generator),
922 /* harmony export */ __importDefault: () => (/* binding */ __importDefault),
923 /* harmony export */ __importStar: () => (/* binding */ __importStar),
924 /* harmony export */ __makeTemplateObject: () => (/* binding */ __makeTemplateObject),
925 /* harmony export */ __metadata: () => (/* binding */ __metadata),
926 /* harmony export */ __param: () => (/* binding */ __param),
927 /* harmony export */ __propKey: () => (/* binding */ __propKey),
928 /* harmony export */ __read: () => (/* binding */ __read),
929 /* harmony export */ __rest: () => (/* binding */ __rest),
930 /* harmony export */ __runInitializers: () => (/* binding */ __runInitializers),
931 /* harmony export */ __setFunctionName: () => (/* binding */ __setFunctionName),
932 /* harmony export */ __spread: () => (/* binding */ __spread),
933 /* harmony export */ __spreadArray: () => (/* binding */ __spreadArray),
934 /* harmony export */ __spreadArrays: () => (/* binding */ __spreadArrays),
935 /* harmony export */ __values: () => (/* binding */ __values),
936 /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
937 /* harmony export */ });
938 /******************************************************************************
939 Copyright (c) Microsoft Corporation.
940
941 Permission to use, copy, modify, and/or distribute this software for any
942 purpose with or without fee is hereby granted.
943
944 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
945 REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
946 AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
947 INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
948 LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
949 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
950 PERFORMANCE OF THIS SOFTWARE.
951 ***************************************************************************** */
952 /* global Reflect, Promise, SuppressedError, Symbol */
953
954 var extendStatics = function(d, b) {
955 extendStatics = Object.setPrototypeOf ||
956 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
957 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
958 return extendStatics(d, b);
959 };
960
961 function __extends(d, b) {
962 if (typeof b !== "function" && b !== null)
963 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
964 extendStatics(d, b);
965 function __() { this.constructor = d; }
966 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
967 }
968
969 var __assign = function() {
970 __assign = Object.assign || function __assign(t) {
971 for (var s, i = 1, n = arguments.length; i < n; i++) {
972 s = arguments[i];
973 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
974 }
975 return t;
976 }
977 return __assign.apply(this, arguments);
978 }
979
980 function __rest(s, e) {
981 var t = {};
982 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
983 t[p] = s[p];
984 if (s != null && typeof Object.getOwnPropertySymbols === "function")
985 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
986 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
987 t[p[i]] = s[p[i]];
988 }
989 return t;
990 }
991
992 function __decorate(decorators, target, key, desc) {
993 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
994 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
995 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
996 return c > 3 && r && Object.defineProperty(target, key, r), r;
997 }
998
999 function __param(paramIndex, decorator) {
1000 return function (target, key) { decorator(target, key, paramIndex); }
1001 }
1002
1003 function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
1004 function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
1005 var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
1006 var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
1007 var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
1008 var _, done = false;
1009 for (var i = decorators.length - 1; i >= 0; i--) {
1010 var context = {};
1011 for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
1012 for (var p in contextIn.access) context.access[p] = contextIn.access[p];
1013 context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
1014 var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
1015 if (kind === "accessor") {
1016 if (result === void 0) continue;
1017 if (result === null || typeof result !== "object") throw new TypeError("Object expected");
1018 if (_ = accept(result.get)) descriptor.get = _;
1019 if (_ = accept(result.set)) descriptor.set = _;
1020 if (_ = accept(result.init)) initializers.unshift(_);
1021 }
1022 else if (_ = accept(result)) {
1023 if (kind === "field") initializers.unshift(_);
1024 else descriptor[key] = _;
1025 }
1026 }
1027 if (target) Object.defineProperty(target, contextIn.name, descriptor);
1028 done = true;
1029 };
1030
1031 function __runInitializers(thisArg, initializers, value) {
1032 var useValue = arguments.length > 2;
1033 for (var i = 0; i < initializers.length; i++) {
1034 value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
1035 }
1036 return useValue ? value : void 0;
1037 };
1038
1039 function __propKey(x) {
1040 return typeof x === "symbol" ? x : "".concat(x);
1041 };
1042
1043 function __setFunctionName(f, name, prefix) {
1044 if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
1045 return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
1046 };
1047
1048 function __metadata(metadataKey, metadataValue) {
1049 if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
1050 }
1051
1052 function __awaiter(thisArg, _arguments, P, generator) {
1053 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1054 return new (P || (P = Promise))(function (resolve, reject) {
1055 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
1056 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
1057 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
1058 step((generator = generator.apply(thisArg, _arguments || [])).next());
1059 });
1060 }
1061
1062 function __generator(thisArg, body) {
1063 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
1064 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
1065 function verb(n) { return function (v) { return step([n, v]); }; }
1066 function step(op) {
1067 if (f) throw new TypeError("Generator is already executing.");
1068 while (g && (g = 0, op[0] && (_ = 0)), _) try {
1069 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
1070 if (y = 0, t) op = [op[0] & 2, t.value];
1071 switch (op[0]) {
1072 case 0: case 1: t = op; break;
1073 case 4: _.label++; return { value: op[1], done: false };
1074 case 5: _.label++; y = op[1]; op = [0]; continue;
1075 case 7: op = _.ops.pop(); _.trys.pop(); continue;
1076 default:
1077 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
1078 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
1079 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
1080 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
1081 if (t[2]) _.ops.pop();
1082 _.trys.pop(); continue;
1083 }
1084 op = body.call(thisArg, _);
1085 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
1086 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
1087 }
1088 }
1089
1090 var __createBinding = Object.create ? (function(o, m, k, k2) {
1091 if (k2 === undefined) k2 = k;
1092 var desc = Object.getOwnPropertyDescriptor(m, k);
1093 if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
1094 desc = { enumerable: true, get: function() { return m[k]; } };
1095 }
1096 Object.defineProperty(o, k2, desc);
1097 }) : (function(o, m, k, k2) {
1098 if (k2 === undefined) k2 = k;
1099 o[k2] = m[k];
1100 });
1101
1102 function __exportStar(m, o) {
1103 for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
1104 }
1105
1106 function __values(o) {
1107 var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
1108 if (m) return m.call(o);
1109 if (o && typeof o.length === "number") return {
1110 next: function () {
1111 if (o && i >= o.length) o = void 0;
1112 return { value: o && o[i++], done: !o };
1113 }
1114 };
1115 throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
1116 }
1117
1118 function __read(o, n) {
1119 var m = typeof Symbol === "function" && o[Symbol.iterator];
1120 if (!m) return o;
1121 var i = m.call(o), r, ar = [], e;
1122 try {
1123 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
1124 }
1125 catch (error) { e = { error: error }; }
1126 finally {
1127 try {
1128 if (r && !r.done && (m = i["return"])) m.call(i);
1129 }
1130 finally { if (e) throw e.error; }
1131 }
1132 return ar;
1133 }
1134
1135 /** @deprecated */
1136 function __spread() {
1137 for (var ar = [], i = 0; i < arguments.length; i++)
1138 ar = ar.concat(__read(arguments[i]));
1139 return ar;
1140 }
1141
1142 /** @deprecated */
1143 function __spreadArrays() {
1144 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
1145 for (var r = Array(s), k = 0, i = 0; i < il; i++)
1146 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
1147 r[k] = a[j];
1148 return r;
1149 }
1150
1151 function __spreadArray(to, from, pack) {
1152 if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
1153 if (ar || !(i in from)) {
1154 if (!ar) ar = Array.prototype.slice.call(from, 0, i);
1155 ar[i] = from[i];
1156 }
1157 }
1158 return to.concat(ar || Array.prototype.slice.call(from));
1159 }
1160
1161 function __await(v) {
1162 return this instanceof __await ? (this.v = v, this) : new __await(v);
1163 }
1164
1165 function __asyncGenerator(thisArg, _arguments, generator) {
1166 if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
1167 var g = generator.apply(thisArg, _arguments || []), i, q = [];
1168 return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
1169 function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
1170 function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
1171 function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
1172 function fulfill(value) { resume("next", value); }
1173 function reject(value) { resume("throw", value); }
1174 function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
1175 }
1176
1177 function __asyncDelegator(o) {
1178 var i, p;
1179 return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
1180 function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
1181 }
1182
1183 function __asyncValues(o) {
1184 if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
1185 var m = o[Symbol.asyncIterator], i;
1186 return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
1187 function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
1188 function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
1189 }
1190
1191 function __makeTemplateObject(cooked, raw) {
1192 if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
1193 return cooked;
1194 };
1195
1196 var __setModuleDefault = Object.create ? (function(o, v) {
1197 Object.defineProperty(o, "default", { enumerable: true, value: v });
1198 }) : function(o, v) {
1199 o["default"] = v;
1200 };
1201
1202 function __importStar(mod) {
1203 if (mod && mod.__esModule) return mod;
1204 var result = {};
1205 if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
1206 __setModuleDefault(result, mod);
1207 return result;
1208 }
1209
1210 function __importDefault(mod) {
1211 return (mod && mod.__esModule) ? mod : { default: mod };
1212 }
1213
1214 function __classPrivateFieldGet(receiver, state, kind, f) {
1215 if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
1216 if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
1217 return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
1218 }
1219
1220 function __classPrivateFieldSet(receiver, state, value, kind, f) {
1221 if (kind === "m") throw new TypeError("Private method is not writable");
1222 if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
1223 if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
1224 return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
1225 }
1226
1227 function __classPrivateFieldIn(state, receiver) {
1228 if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
1229 return typeof state === "function" ? receiver === state : state.has(receiver);
1230 }
1231
1232 function __addDisposableResource(env, value, async) {
1233 if (value !== null && value !== void 0) {
1234 if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
1235 var dispose;
1236 if (async) {
1237 if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
1238 dispose = value[Symbol.asyncDispose];
1239 }
1240 if (dispose === void 0) {
1241 if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
1242 dispose = value[Symbol.dispose];
1243 }
1244 if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
1245 env.stack.push({ value: value, dispose: dispose, async: async });
1246 }
1247 else if (async) {
1248 env.stack.push({ async: true });
1249 }
1250 return value;
1251 }
1252
1253 var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
1254 var e = new Error(message);
1255 return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
1256 };
1257
1258 function __disposeResources(env) {
1259 function fail(e) {
1260 env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
1261 env.hasError = true;
1262 }
1263 function next() {
1264 while (env.stack.length) {
1265 var rec = env.stack.pop();
1266 try {
1267 var result = rec.dispose && rec.dispose.call(rec.value);
1268 if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
1269 }
1270 catch (e) {
1271 fail(e);
1272 }
1273 }
1274 if (env.hasError) throw env.error;
1275 }
1276 return next();
1277 }
1278
1279 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
1280 __extends,
1281 __assign,
1282 __rest,
1283 __decorate,
1284 __param,
1285 __metadata,
1286 __awaiter,
1287 __generator,
1288 __createBinding,
1289 __exportStar,
1290 __values,
1291 __read,
1292 __spread,
1293 __spreadArrays,
1294 __spreadArray,
1295 __await,
1296 __asyncGenerator,
1297 __asyncDelegator,
1298 __asyncValues,
1299 __makeTemplateObject,
1300 __importStar,
1301 __importDefault,
1302 __classPrivateFieldGet,
1303 __classPrivateFieldSet,
1304 __classPrivateFieldIn,
1305 __addDisposableResource,
1306 __disposeResources,
1307 });
1308
1309
1310 /***/ })
1311
1312 }]);
1313 //# sourceMappingURL=product-image-frontend.js.map?ver=3243eb2d5c4934bd2891