www.linenstylish.com
Open in
urlscan Pro
104.17.247.119
Public Scan
Submitted URL: http://www.linenstylish.com/collections/2024-outfit-ideas/products/off-shoulder-textured-button-up-slit-long-sleeve-maxi-dress
Effective URL: https://www.linenstylish.com/collections/2024-outfit-ideas/products/off-shoulder-textured-button-up-slit-long-sleeve-maxi-dress
Submission: On June 27 via api from US — Scanned from DE
Effective URL: https://www.linenstylish.com/collections/2024-outfit-ideas/products/off-shoulder-textured-button-up-slit-long-sleeve-maxi-dress
Submission: On June 27 via api from US — Scanned from DE
Form analysis
8 forms found in the DOM<form>
<input name="variant_id" type="hidden" value="${data.variants[0].id}">
<button type="button" class="product-snippet__quick-shop-icon" role="addToCart" data-quick-shop="${data.handle}" data-track-product-id="${data.id}" data-track="click" data-track-content="add_to_cart" data-track-source="quick_shop">
<svg class="" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
<path d="M8.6 1.9a.3.3 0 0 0-.3-.3h-.6a.3.3 0 0 0-.3.3v5.5H1.9a.3.3 0 0 0-.3.3v.6a.3.3 0 0 0 .3.3h5.5v5.5a.3.3 0 0 0 .3.3h.6a.3.3 0 0 0 .3-.3V8.6h5.5a.3.3 0 0 0 .3-.3v-.6a.3.3 0 0 0-.3-.3H8.6V1.9z" fill="currentColor"></path>
</svg>
</button>
</form>
GET /search
<form class="flex items-center" action="/search" method="get">
<button type="submit" class="clear text-0 text-inherit cursor-pointer">
<svg class="" width="26" height="26" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M17.925 20.057A9.955 9.955 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10a9.968 9.968 0 0 1-2.864 7.006l4.929 4.928a.8.8 0 0 1-1.132 1.132l-5-5-.008-.01zM20.4 12a8.4 8.4 0 1 1-16.8 0 8.4 8.4 0 0 1 16.8 0z"
fill="currentColor"></path>
</svg>
</button>
<input @input-debounced="header_search_predictive_render.rerender(data=event.value, redo=true);" class="header__search_sidebar-input flex-1 text-base leading-none type-text-font-family clear" type="text" autocomplete="off" name="q"
placeholder="Search products">
<button type="reset" class="header__search-modal-close text-0 text-inherit clear cursor-pointer" @tap="header_search_sidebar.close()">
<svg class="" width="26" height="26" xmlns="http://www.w3.org/2000/svg">
<path d="M21.502 5.732A.85.85 0 0 0 20.3 4.53l-7.32 7.32L5.734 4.6a.85.85 0 0 0-1.202 1.203l7.248 7.247L4.53 20.3A.85.85 0 0 0 5.733 21.5l7.248-7.248 7.319 7.319a.85.85 0 0 0 1.202-1.202l-7.319-7.319 7.319-7.319z" fill="currentColor"></path>
</svg>
</button>
</form>
<form role="spz-product-form788093bf-c6a7-437f-a498-206b51abdc70">
<div class="product-info-body-inner product-info-body-z-index" id="product-info-body-inner-container">
<h1 class="product-info__header_title m-0 type-heading-font-family text-base lg:text-xl leading-1.3 lg:leading-1.2 break-words product-title-color ">Off Shoulder Textured Button Up Slit Long Sleeve Maxi Dress</h1>
<spz-render id="product-info-prices" layout="container" manual="" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container" style="height: auto;">
<template> ${function() { const variantData = data.variant ||
{"id":"a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","product_id":"788093bf-c6a7-437f-a498-206b51abdc70","title":"Black-S","weight_unit":"kg","inventory_quantity":0,"sku":"BL2403073720-Black-S","barcode":"","position":1,"option1":"Black","option2":"S","option3":"","note":"","image":{"src":"\/\/img.fantaskycdn.com\/80cb213fbf37771cbedce8941eacc137.jpeg","path":"80cb213fbf37771cbedce8941eacc137.jpeg","width":1080,"height":1620,"alt":"","aspect_ratio":0.6666666666666666},"wholesale_price":[{"price":46.45,"min_quantity":1}],"weight":"330","compare_at_price":"75","price":"46.45","retail_price":"75","available":true,"url":"\/products\/off-shoulder-textured-button-up-slit-long-sleeve-maxi-dress?variant=a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","available_quantity":999999999,"options":[{"name":"Color","value":"Black"},{"name":"Size","value":"S"}],"off_ratio":38,"flashsale_info":[],"sales":0};
const saveType = "percentage"; const saveText = "Save {{saved_amount}}"; const productLabelDiscountOn = false; return ` <div class="flex items-center justify-between mt-3">
<div spz-if="${!variantData.price}" class="mr-2 text-2xl leading-1.2 font-semibold color-price flex items-center">
<spz-currency class="mr-2 text-2xl leading-1.2 font-semibold color-price" container-class="product-info__header_price" value="${data.product.price_min}" layout="container"></spz-currency>
<span class="flex" spz-if="${!variantData.price && data.product.price_min < data.product.price_max}"> - <spz-currency class="ml-2 text-2xl leading-1.2 font-semibold color-price" container-class="product-info__header_price"
value="${data.product.price_max}" layout="container"></spz-currency></span>
</div>
<div spz-else="" class="flex items-center flex-wrap">
<spz-currency class="mr-2 text-2xl leading-1.2 font-semibold color-price" container-class="product-info__header_price" value="${variantData.price}" layout="container"></spz-currency>
<spz-currency class="body-plus-2 leading-1.1 color-compare-price line-through mr-2" container-class="product-info__header_compare-at-price" layout="container" value="${variantData.compare_at_price}"
spz-if="${+variantData.price < +variantData.compare_at_price}"></spz-currency>
<div spz-if="${productLabelDiscountOn && variantData.off_ratio > 0}" class="inline-block color-save-price whitespace-nowrap"> ${saveText.replace('\{\{saved_amount\}\}', saveType == 'percentage' ? variantData.off_ratio + '%' :
`<spz-currency class="inline-block" value="${variantData.compare_at_price - variantData.price}" layout="container"></spz-currency>` )} </div>
</div>
</div> `; }()} </template>
<div class="flex items-center justify-between mt-3">
<div class="flex items-center flex-wrap" spz-else="">
<spz-currency class="mr-2 text-2xl leading-1.2 font-semibold color-price i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" container-class="product-info__header_price" value="46.45" layout="container"
i-spzhtml-layout="container">
<div class="money product-info__header_price notranslate">€43.49</div>
</spz-currency><spz-currency class="body-plus-2 leading-1.1 color-compare-price line-through mr-2 i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" container-class="product-info__header_compare-at-price"
layout="container" value="75" spz-if="true" i-spzhtml-layout="container">
<div class="money product-info__header_compare-at-price notranslate">€70.22</div>
</spz-currency>
</div>
</div>
</spz-render>
<div class="plugin-discount-wrap empty-hidden" role="[theme-seat-for-plugin]">
<div class="bootstrap">
<div class="plugin__wrappers d-flex flex-column">
<div class="coupon_plugin__single plugin_modals-coupon " impr="1" imprevt="1" imprsd="true">
<div class="coupon_plugin__coupon">
<div class="rules__line" style="background: linear-gradient(90deg, #F8A056, #F93E37)">
<div class="rules__first-line" style="color: #ffffff">
<span class="condition">Extra</span><span class="off">12% OFF</span>
<div class="coupon_plugin__coupon-divider"></div>
</div>
<div class="rules__second-line align-items-center justify-content-center">
<button data-code="NY2024" data-id="622f3e23-6459-4e29-94fb-9bb048db41dd" class="code_btn " type="button" data-activetype="percentage" style="background: #FEE7CD; color: #F94339">
<span>GET</span>
<span class="notranslate"> NY2024 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 2v.5H4.5v-1a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-1V11h.5V2H6zM3 14V5h7v9H3zM1.5 4.5a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-10z"
fill="currentColor"></path>
</svg>
</span>
<textarea class="coupon_code_value notranslate" style="position:absolute;left:-99999px;">NY2024</textarea>
</button>
<div class="coupon__copied notranslate" style="color: #ffffff">Copy code</div>
</div>
</div>
<svg class="app-coupon-triangle app-coupon-triangle-0" xmlns="http://www.w3.org/2000/svg" width="106" height="96" viewBox="0 0 106 96" fill="none">
<path d="M102.929 68.555c6.833 12.054-1.946 26.985-15.802 26.875l-68.312-.542C4.959 94.778-3.582 79.71 3.441 67.766l34.625-58.89C45.09-3.067 62.41-2.93 69.242 9.125l33.687 59.43z" fill="#fff" fill-opacity=".11"></path>
</svg>
<svg class="app-coupon-triangle app-coupon-triangle-1" xmlns="http://www.w3.org/2000/svg" width="106" height="96" viewBox="0 0 106 96" fill="none">
<path d="M102.929 68.555c6.833 12.054-1.946 26.985-15.802 26.875l-68.312-.542C4.959 94.778-3.582 79.71 3.441 67.766l34.625-58.89C45.09-3.067 62.41-2.93 69.242 9.125l33.687 59.43z" fill="#fff" fill-opacity=".11"></path>
</svg>
<svg class="app-coupon-triangle app-coupon-triangle-2" xmlns="http://www.w3.org/2000/svg" width="106" height="96" viewBox="0 0 106 96" fill="none">
<path d="M102.929 68.555c6.833 12.054-1.946 26.985-15.802 26.875l-68.312-.542C4.959 94.778-3.582 79.71 3.441 67.766l34.625-58.89C45.09-3.067 62.41-2.93 69.242 9.125l33.687 59.43z" fill="#fff" fill-opacity=".11"></path>
</svg>
</div>
</div>
</div>
</div>
</div>
<spz-variants class="product-info__variants flex flex-col items-start i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" layout="container" id="product-info-variants" src="script:product-json" switch-slide="[]"
slide="product-main-images;" manual="" interference="" select-soldout-suffix=" - Sold out" interact="hover" inherit-url-variant=""
@mouseout="product-info-selected-variant-Color.rerender(data=event);product-info-selected-variant-Size.rerender(data=event);" @colormouseover="product-info-selected-variant-Color.rerender(data=event);"
@sizemouseover="product-info-selected-variant-Size.rerender(data=event);" i-spzhtml-layout="container">
<fieldset class="product-info__variants_content mt-6 lg:mt-8 mx-0" name="Color">
<legend class="w-full">
<span class="lg:body-plus-2 leading-1.3 product-info__variants_title">Color</span>
<spz-render class="inline-block opacity-60 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="product-info-selected-variant-Color" layout="container" manual="" i-spzhtml-layout="container"
style="height: 18px;">
<template> ${function(){ const optName = "Color"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (': ' + optionValue) : ''; return
` <span> ${optionValueText} </span> ` }()} </template>
<span> : Black </span></spz-render>
</legend>
<div class="flex flex-wrap ">
<div class="relative mt-3 mr-3">
<input type="radio" option="Black" id="product-info-variant-Black-0" class="pointer-events-auto" name="product-info-variant-Color" value="Black" form="product-info-body"
@input-debounced="product-info-selected-variant-color.rerender(data=event);" checked="">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="image-with-text">
<spz-img class="ml-1 i-spzhtml-layout-responsive i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-built i-spzhtml-layout" src="//img.fantaskycdn.com/80cb213fbf37771cbedce8941eacc137_48x.jpeg" layout="responsive" width="42"
height="42" alt="" object-fit="cover" auto-fit="" i-spzhtml-layout="responsive" complete=""><i-spzhtml-sizer style="padding-top:100%;"></i-spzhtml-sizer><img decoding="async" alt=""
src="//img.fantaskycdn.com/80cb213fbf37771cbedce8941eacc137_48x.jpeg" class="i-spzhtml-fill-content i-spzhtml-replaced-content" style="object-fit: cover;"></spz-img>
<span class="break-words py-2 px-3">Black</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="Rose Red" id="product-info-variant-Rose Red-1" class="pointer-events-auto" name="product-info-variant-Color" value="Rose Red" form="product-info-body"
@input-debounced="product-info-selected-variant-color.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="image-with-text">
<spz-img class="ml-1 i-spzhtml-layout-responsive i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-built i-spzhtml-layout" src="//img.fantaskycdn.com/4ead975228a85b23f060ae4ac1acc133_48x.jpeg" layout="responsive" width="42"
height="42" alt="" object-fit="cover" auto-fit="" i-spzhtml-layout="responsive" complete=""><i-spzhtml-sizer style="padding-top:100%;"></i-spzhtml-sizer><img decoding="async" alt=""
src="//img.fantaskycdn.com/4ead975228a85b23f060ae4ac1acc133_48x.jpeg" class="i-spzhtml-fill-content i-spzhtml-replaced-content" style="object-fit: cover;"></spz-img>
<span class="break-words py-2 px-3">Rose Red</span>
</label>
</div>
</div>
</fieldset>
<spz-render id="Color-error-tip" manual="" layout="container" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
<template> ${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return `<div class="product-info__variants-tips font-bold">${tipText}</div>` }()} </template>
</spz-render>
<fieldset class="product-info__variants_content mt-6 lg:mt-8 mx-0" name="Size">
<legend class="w-full">
<span class="lg:body-plus-2 leading-1.3 product-info__variants_title">Size</span>
<spz-render class="inline-block opacity-60 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="product-info-selected-variant-Size" layout="container" manual="" i-spzhtml-layout="container"
style="height: 18px;">
<template> ${function(){ const optName = "Size"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (': ' + optionValue) : ''; return `
<span> ${optionValueText} </span> ` }()} </template>
<span> : S </span></spz-render>
</legend>
<div class="flex flex-wrap mt-1 product-info-variant-container ">
<div class="relative mt-3 mr-3">
<input type="radio" option="S" id="product-info-variant-S-0" class="pointer-events-auto" name="product-info-variant-Size" value="S" form="product-info-body" @input-debounced="product-info-selected-variant-size.rerender(data=event);"
checked="">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">S</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="M" id="product-info-variant-M-1" class="pointer-events-auto" name="product-info-variant-Size" value="M" form="product-info-body" @input-debounced="product-info-selected-variant-size.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">M</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="L" id="product-info-variant-L-2" class="pointer-events-auto" name="product-info-variant-Size" value="L" form="product-info-body" @input-debounced="product-info-selected-variant-size.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">L</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="XL" id="product-info-variant-XL-3" class="pointer-events-auto" name="product-info-variant-Size" value="XL" form="product-info-body" @input-debounced="product-info-selected-variant-size.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">XL</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="2XL" id="product-info-variant-2XL-4" class="pointer-events-auto" name="product-info-variant-Size" value="2XL" form="product-info-body"
@input-debounced="product-info-selected-variant-size.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-[1px]
" data-type="text">
<span class="break-words py-3 px-4 text-center">2XL</span>
</label>
</div>
</div>
</fieldset>
<spz-render id="Size-error-tip" manual="" layout="container" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
<template> ${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return `<div class="product-info__variants-tips font-bold">${tipText}</div>` }()} </template>
</spz-render>
</spz-variants>
<div class="mt-5 lg:mt-6">
<div class="lg:body-plus-2 leading-1.3">Quantity</div>
<spz-quantity class="product-info-qty mt-3 i-spzhtml-layout-fixed-height i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="product-info-quantity" name="quantity" value="1" min="1" max="999999999"
icon-class="product-info-qty-btn clear flex items-center justify-center flex-shrink-0" input-class="product-info-qty-input clear flex-shrink-0 body-plus-2 text-center" height="40" layout="fixed-height" style="height:40px;"
i-spzhtml-layout="fixed-height">
<div class="i-spzhtml-fill-content i-spzhtml-replaced-content"><span role="button" class="i-spzhtml-quantity-number-decrease product-info-qty-btn clear flex items-center justify-center flex-shrink-0" disabled=""><svg role="decrease" class=""
width="16" height="16" xmlns="http://www.w3.org/2000/svg">
<path d="M13.7 7.4a.3.3 0 0 1 .3.3v.6a.3.3 0 0 1-.3.3H2.3a.3.3 0 0 1-.3-.3v-.6a.3.3 0 0 1 .3-.3h11.4z" fill="currentColor"></path>
</svg></span><input type="number" name="quantity" min="1" max="999999999" class="i-spzhtml-quantity-number-input product-info-qty-input clear flex-shrink-0 body-plus-2 text-center"><span role="button"
class="i-spzhtml-quantity-number-increase product-info-qty-btn clear flex items-center justify-center flex-shrink-0"><svg role="increase" class="" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
<path d="M8.3 14a.3.3 0 0 0 .3-.3V8.6h5.1a.3.3 0 0 0 .3-.3v-.6a.3.3 0 0 0-.3-.3H8.6V2.3a.3.3 0 0 0-.3-.3h-.6a.3.3 0 0 0-.3.3v5.1H2.3a.3.3 0 0 0-.3.3v.6a.3.3 0 0 0 .3.3h5.1v5.1a.3.3 0 0 0 .3.3h.6z" fill="currentColor"></path>
</svg></span></div>
</spz-quantity>
</div>
<div class="mt-5 lg:mt-6">
<button class="relative button-primary flex items-center justify-center body-plus-2 type-text-font-family rounded-btn product-info_atc_btn painter-shrink-animation" type="button" role="addToCart" data-track="click"
data-track-content="add_to_cart" data-track-source="add_to_cart">
<span role="content">Add to cart</span>
<spz-render id="product-info-btn-price" layout="container" template="product-info-btn-price-template" manual="" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container"
style="height: auto;">
<div class="flex"><span class="product_price_before"></span><spz-currency value="46.45" layout="container" class="i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
<div class="money notranslate">€43.49</div>
</spz-currency></div>
</spz-render>
<style>
.product_price_before::before {
content: ' - ';
display: block;
width: 20px;
}
</style>
<template id="product-info-btn-price-template"> ${function(){ const wholesale_enabled = false; const qty = data.quantity || 1; const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants
&& data.product.variants[0]); const productVariant =
{"id":"a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","product_id":"788093bf-c6a7-437f-a498-206b51abdc70","title":"Black-S","weight_unit":"kg","inventory_quantity":0,"sku":"BL2403073720-Black-S","barcode":"","position":1,"option1":"Black","option2":"S","option3":"","note":"","image":{"src":"\/\/img.fantaskycdn.com\/80cb213fbf37771cbedce8941eacc137.jpeg","path":"80cb213fbf37771cbedce8941eacc137.jpeg","width":1080,"height":1620,"alt":"","aspect_ratio":0.6666666666666666},"wholesale_price":[{"price":46.45,"min_quantity":1}],"weight":"330","compare_at_price":"75","price":"46.45","retail_price":"75","available":true,"url":"\/products\/off-shoulder-textured-button-up-slit-long-sleeve-maxi-dress?variant=a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","available_quantity":999999999,"options":[{"name":"Color","value":"Black"},{"name":"Size","value":"S"}],"off_ratio":38,"flashsale_info":[],"sales":0};
const variantData = currentSelectVariant || defaultVariant || productVariant; const wholesale_price = variantData.wholesale_price || []; if(wholesale_enabled && wholesale_price.length > 0) { let wholesaleIndex =
wholesale_price.findIndex(item => { return item.min_quantity > qty; }); if(wholesaleIndex < 0){ wholesaleIndex = wholesale_price.length - 1; }else if(wholesaleIndex > 0){ wholesaleIndex = wholesaleIndex - 1; } const
wholesalePrice = wholesale_price[wholesaleIndex] || ''; return ` <div class="flex">
<span class="product_price_before"></span><spz-currency value="${wholesalePrice.price}" layout="container"></spz-currency>
</div> ` }else { const price = variantData && variantData.price; return price != undefined ? `<div class="flex"><span class="product_price_before"></span><spz-currency value="${price}" layout="container"></spz-currency></div>` :
'<span></span>'; } }()} </template>
<div class="loading items-center justify-center absolute inset-0 flex" role="loading" show="">
<div class="loading-bounce"></div>
</div>
</button>
<button class="relative button-secondary w-full rounded-btn mt-3 product-info_atc_btn product-info_buy_now_btn" role="buyNow" type="button" data-track="click" data-track-content="checkout" data-track-source="buy_now">
<span role="content">Buy now</span>
<div class="loading items-center justify-center absolute inset-0 flex" role="loading" show="">
<div class="loading-bounce"></div>
</div>
</button>
<spz-paypal class="mt-3 i-spzhtml-layout-fixed-height i-spzhtml-layout-size-defined i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="paypal-express-button-container" variant="#product-info-variants" quantity="#product-info-quantity"
product-id="788093bf-c6a7-437f-a498-206b51abdc70" variant-id="a6f0360e-0046-4b7f-88f5-3a2b7da2dc47" product-form="#product-info-body" role="paypal" layout="fixed-height" height="52"
paypal-js="https://www.paypal.com/sdk/js?client-id=AUwoRlv3iZ3jt3o3hhcft_tZ5g6tvefEpjCf9YNGeH7q8p_WraleitkKfLnWIs8HLpzalgRA5AMT0BYO&currency=USD&disable-funding=card%2Cbancontact%2Cblik%2Ceps%2Cgiropay%2Cideal%2Cmercadopago%2Cmybank%2Cp24%2Csepa%2Csofort%2Cvenmo&enable-funding=paylater"
style="height:52px;" i-spzhtml-layout="fixed-height">
<div id="zoid-paypal-buttons-uid_bf0f338308_mdm6ndu6mzk" class="paypal-buttons paypal-buttons-context-iframe paypal-buttons-label-unknown paypal-buttons-layout-horizontal" data-paypal-smart-button-version="5.0.448"
style="height: 52px; transition: all 0.2s ease-in-out 0s;">
<style nonce="">
#zoid-paypal-buttons-uid_bf0f338308_mdm6ndu6mzk {
position: relative;
display: inline-block;
width: 100%;
min-height: 25px;
min-width: 150px;
font-size: 0;
}
#zoid-paypal-buttons-uid_bf0f338308_mdm6ndu6mzk>iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
#zoid-paypal-buttons-uid_bf0f338308_mdm6ndu6mzk>iframe.component-frame {
z-index: 100;
}
#zoid-paypal-buttons-uid_bf0f338308_mdm6ndu6mzk>iframe.prerender-frame {
transition: opacity .2s linear;
z-index: 200;
}
#zoid-paypal-buttons-uid_bf0f338308_mdm6ndu6mzk>iframe.visible {
opacity: 1;
}
#zoid-paypal-buttons-uid_bf0f338308_mdm6ndu6mzk>iframe.invisible {
opacity: 0;
pointer-events: none;
}
#zoid-paypal-buttons-uid_bf0f338308_mdm6ndu6mzk>.smart-menu {
position: absolute;
z-index: 300;
top: 0;
left: 0;
width: 100%;
}
</style><iframe allowtransparency="true"
name="__zoid__paypal_buttons__eyJzZW5kZXIiOnsiZG9tYWluIjoiaHR0cHM6Ly93d3cubGluZW5zdHlsaXNoLmNvbSJ9LCJtZXRhRGF0YSI6eyJ3aW5kb3dSZWYiOnsidHlwZSI6InBhcmVudCIsImRpc3RhbmNlIjowfX0sInJlZmVyZW5jZSI6eyJ0eXBlIjoicmF3IiwidmFsIjoie1widWlkXCI6XCJ6b2lkLXBheXBhbC1idXR0b25zLXVpZF9iZjBmMzM4MzA4X21kbTZuZHU2bXprXCIsXCJjb250ZXh0XCI6XCJpZnJhbWVcIixcInRhZ1wiOlwicGF5cGFsLWJ1dHRvbnNcIixcImNoaWxkRG9tYWluTWF0Y2hcIjp7XCJfX3R5cGVfX1wiOlwicmVnZXhcIixcIl9fdmFsX19cIjpcIlxcXFwucGF5cGFsXFxcXC4oY29tfGNuKSg6XFxcXGQrKT8kXCJ9LFwidmVyc2lvblwiOlwiMTBfM18zXCIsXCJwcm9wc1wiOntcImVudlwiOlwicHJvZHVjdGlvblwiLFwiY29tbWl0XCI6dHJ1ZSxcInN0eWxlXCI6e1wibGFiZWxcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwibGF5b3V0XCI6XCJob3Jpem9udGFsXCIsXCJjb2xvclwiOlwiZ29sZFwiLFwic2hhcGVcIjpcInJlY3RcIixcInRhZ2xpbmVcIjpmYWxzZSxcImhlaWdodFwiOjUyLFwicGVyaW9kXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcIm1lbnVQbGFjZW1lbnRcIjpcImJlbG93XCIsXCJkaXNhYmxlTWF4V2lkdGhcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiZGlzYWJsZU1heEhlaWdodFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJib3JkZXJSYWRpdXNcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9fSxcImZ1bmRpbmdcIjp7XCJkaXNhbGxvd2VkXCI6W1wiY3JlZGl0XCJdfSxcIm9uQXBwcm92ZVwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkX2Y2ZjAwNjExMjNfbWRtNm5kdTZtemtcIixcIm5hbWVcIjpcImJvdW5kIHZhbHVlXCJ9fSxcImNyZWF0ZU9yZGVyXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfNzg0ZDc5YmM0ZF9tZG02bmR1Nm16a1wiLFwibmFtZVwiOlwiYm91bmQgdmFsdWVcIn19LFwiY3NwTm9uY2VcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiYWxsb3dCaWxsaW5nUGF5bWVudHNcIjp0cnVlLFwiYW1vdW50XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImFwaVN0YWdlSG9zdFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJhcHBsZVBheVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJhcHBsZVBheVN1cHBvcnRcIjpmYWxzZSxcImJyYW5kZWRcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiYnV0dG9uTG9jYXRpb25cIjpcInd3dy5saW5lbnN0eWxpc2guY29tXCIsXCJidXR0b25TZXNzaW9uSURcIjpcInVpZF8wY2VkOTljN2FlX21kbTZuZHU2bXprXCIsXCJidXR0b25TaXplXCI6XCJsYXJnZVwiLFwiYnV5ZXJDb3VudHJ5XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImNsaWVudEFjY2Vzc1Rva2VuXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImN1c3RvbWVySWRcIjpcIlwiLFwiY2xpZW50SURcIjpcIkFVd29SbHYzaVozanQzbzNoaGNmdF90WjVnNnR2ZWZFcGpDZjlZTkdlSDdxOHBfV3JhbGVpdGtLZkxuV0lzOEhMcHphbGdSQTVBTVQwQllPXCIsXCJjbGllbnRNZXRhZGF0YUlEXCI6XCJ1aWRfNTY4MWJiZjNmZF9tZG02bmR1Nm16a1wiLFwiY29tcG9uZW50c1wiOltcImJ1dHRvbnNcIl0sXCJjcmVhdGVCaWxsaW5nQWdyZWVtZW50XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImNyZWF0ZVN1YnNjcmlwdGlvblwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJjcmVhdGVWYXVsdFNldHVwVG9rZW5cIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiY3NwXCI6e1wibm9uY2VcIjpcIlwifSxcImN1cnJlbmN5XCI6XCJVU0RcIixcImRlYnVnXCI6ZmFsc2UsXCJkaXNhYmxlQ2FyZFwiOltdLFwiZGlzYWJsZUZ1bmRpbmdcIjpbXCJjYXJkXCIsXCJiYW5jb250YWN0XCIsXCJibGlrXCIsXCJlcHNcIixcImdpcm9wYXlcIixcImlkZWFsXCIsXCJtZXJjYWRvcGFnb1wiLFwibXliYW5rXCIsXCJwMjRcIixcInNlcGFcIixcInNvZm9ydFwiLFwidmVubW9cIl0sXCJkaXNhYmxlU2V0Q29va2llXCI6dHJ1ZSxcImRpc3BsYXlPbmx5XCI6W10sXCJlbmFibGVGdW5kaW5nXCI6W1wicGF5bGF0ZXJcIl0sXCJlbmFibGVUaHJlZURvbWFpblNlY3VyZVwiOmZhbHNlLFwiZW5hYmxlVmF1bHRcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiZXhwZXJpbWVudFwiOntcImVuYWJsZVZlbm1vXCI6ZmFsc2UsXCJ2ZW5tb1ZhdWx0V2l0aG91dFB1cmNoYXNlXCI6ZmFsc2V9LFwiZXhwZXJpbWVudGF0aW9uXCI6e30sXCJmbG93XCI6XCJwdXJjaGFzZVwiLFwiZnVuZGluZ0VsaWdpYmlsaXR5XCI6e1wicGF5cGFsXCI6e1wiZWxpZ2libGVcIjp0cnVlLFwidmF1bHRhYmxlXCI6ZmFsc2V9LFwicGF5bGF0ZXJcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmF1bHRhYmxlXCI6ZmFsc2UsXCJwcm9kdWN0c1wiOntcInBheUluM1wiOntcImVsaWdpYmxlXCI6ZmFsc2UsXCJ2YXJpYW50XCI6bnVsbH0sXCJwYXlJbjRcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmFyaWFudFwiOm51bGx9LFwicGF5bGF0ZXJcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmFyaWFudFwiOm51bGx9fX0sXCJjYXJkXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcImJyYW5kZWRcIjp0cnVlLFwiaW5zdGFsbG1lbnRzXCI6ZmFsc2UsXCJ2ZW5kb3JzXCI6e1widmlzYVwiOntcImVsaWdpYmxlXCI6dHJ1ZSxcInZhdWx0YWJsZVwiOnRydWV9LFwibWFzdGVyY2FyZFwiOntcImVsaWdpYmxlXCI6dHJ1ZSxcInZhdWx0YWJsZVwiOnRydWV9LFwiYW1leFwiOntcImVsaWdpYmxlXCI6dHJ1ZSxcInZhdWx0YWJsZVwiOnRydWV9LFwiZGlzY292ZXJcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmF1bHRhYmxlXCI6dHJ1ZX0sXCJoaXBlclwiOntcImVsaWdpYmxlXCI6ZmFsc2UsXCJ2YXVsdGFibGVcIjpmYWxzZX0sXCJlbG9cIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmF1bHRhYmxlXCI6dHJ1ZX0sXCJqY2JcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmF1bHRhYmxlXCI6dHJ1ZX0sXCJtYWVzdHJvXCI6e1wiZWxpZ2libGVcIjp0cnVlLFwidmF1bHRhYmxlXCI6dHJ1ZX0sXCJkaW5lcnNcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjp0cnVlfSxcImN1cFwiOntcImVsaWdpYmxlXCI6dHJ1ZSxcInZhdWx0YWJsZVwiOnRydWV9fSxcImd1ZXN0RW5hYmxlZFwiOmZhbHNlfSxcInZlbm1vXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOmZhbHNlfSxcIml0YXVcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcImNyZWRpdFwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiYXBwbGVwYXlcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInNlcGFcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcImlkZWFsXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJiYW5jb250YWN0XCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJnaXJvcGF5XCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJlcHNcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInNvZm9ydFwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwibXliYW5rXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJwMjRcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcIndlY2hhdHBheVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwicGF5dVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiYmxpa1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwidHJ1c3RseVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwib3h4b1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiYm9sZXRvXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJib2xldG9iYW5jYXJpb1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwibWVyY2Fkb3BhZ29cIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcIm11bHRpYmFuY29cIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInNhdGlzcGF5XCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJwYWlkeVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9fSxcImZ1bmRpbmdTb3VyY2VcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiZ2V0UGFnZVVybFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzBjODc5ODFkYzlfbWRtNm5kdTZtemtcIixcIm5hbWVcIjpcImdldFBhZ2VVcmxcIn19LFwiZ2V0UG9wdXBCcmlkZ2VcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF9iNjA4MGZhZDU2X21kbTZuZHU2bXprXCIsXCJuYW1lXCI6XCJnZXRQb3B1cEJyaWRnZVwifX0sXCJnZXRQcmVyZW5kZXJEZXRhaWxzXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfYjQwNzRmNWUwNl9tZG02bmR1Nm16a1wiLFwibmFtZVwiOlwiZ2V0UHJlcmVuZGVyRGV0YWlsc1wifX0sXCJnZXRRdWVyaWVkRWxpZ2libGVGdW5kaW5nXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfYjlkMmE5ODk4Zl9tZG02bmR1Nm16a1wiLFwibmFtZVwiOlwiZ2V0UXVlcmllZEVsaWdpYmxlRnVuZGluZ1wifX0sXCJob3N0ZWRCdXR0b25JZFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJpbnRlbnRcIjpcImNhcHR1cmVcIixcImpzU2RrTGlicmFyeVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJsb2NhbGVcIjp7XCJjb3VudHJ5XCI6XCJVU1wiLFwibGFuZ1wiOlwiZW5cIn0sXCJtZXJjaGFudElEXCI6W10sXCJtZXJjaGFudFJlcXVlc3RlZFBvcHVwc0Rpc2FibGVkXCI6ZmFsc2UsXCJtZXNzYWdlXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcIm5vbmNlXCI6XCJcIixcIm9uQ2FuY2VsXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcIm9uQ2xpY2tcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwib25Db21wbGV0ZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJvbkluaXRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF9jZGE5ZmIzNTlhX21kbTZuZHU2bXprXCIsXCJuYW1lXCI6XCJvbkluaXRcIn19LFwib25NZXNzYWdlQ2xpY2tcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF8yOWQ2YzdhY2M4X21kbTZuZHU2bXprXCIsXCJuYW1lXCI6XCJvbk1lc3NhZ2VDbGlja1wifX0sXCJvbk1lc3NhZ2VIb3ZlclwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzc5OGY5Y2JhZWZfbWRtNm5kdTZtemtcIixcIm5hbWVcIjpcIm9uTWVzc2FnZUhvdmVyXCJ9fSxcIm9uTWVzc2FnZVJlYWR5XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfYTAxMDMzZWIyOF9tZG02bmR1Nm16a1wiLFwibmFtZVwiOlwib25NZXNzYWdlUmVhZHlcIn19LFwib25TaGlwcGluZ0FkZHJlc3NDaGFuZ2VcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwib25TaGlwcGluZ0NoYW5nZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJvblNoaXBwaW5nT3B0aW9uc0NoYW5nZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJoYXNTaGlwcGluZ0NhbGxiYWNrXCI6ZmFsc2UsXCJwYWdlVHlwZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJwYXJ0bmVyQXR0cmlidXRpb25JRFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJwYXltZW50TWV0aG9kTm9uY2VcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwicGF5bWVudE1ldGhvZFRva2VuXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcInBheW1lbnRSZXF1ZXN0XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcInBsYXRmb3JtXCI6XCJkZXNrdG9wXCIsXCJyZWZlcnJlckRvbWFpblwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJyZW1lbWJlclwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkX2NhMDBmOTU3MjVfbWRtNm5kdTZtemtcIixcIm5hbWVcIjpcInJlbWVtYmVyXCJ9fSxcInJlbWVtYmVyZWRcIjpbXSxcInJlbmRlcmVkQnV0dG9uc1wiOltcInBheXBhbFwiXSxcInNlc3Npb25JRFwiOlwidWlkXzU2ODFiYmYzZmRfbWRtNm5kdTZtemtcIixcInNka0NvcnJlbGF0aW9uSURcIjpcImY4NjUwMDQ1MGViOTlcIixcInNlc3Npb25TdGF0ZVwiOntcImdldFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzNjOTU1YTNiYzlfbWRtNm5kdTZtemtcIixcIm5hbWVcIjpcImdldFwifX0sXCJzZXRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF82ZDBiMDJlOGVmX21kbTZuZHU2bXprXCIsXCJuYW1lXCI6XCJzZXRcIn19fSxcImdldFNob3BwZXJJbnNpZ2h0c1VzZWRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF85MmNkNjMxNWUxX21kbTZuZHU2bXprXCIsXCJuYW1lXCI6XCJDclwifX0sXCJzdGFnZUhvc3RcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwic3RvcmFnZUlEXCI6XCJ1aWRfZTgwYmM2MTVhMV9tZG02bmR1Nm16a1wiLFwic3RvcmFnZVN0YXRlXCI6e1wiZ2V0XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfZWRiZDYyNjhhMl9tZG02bmR1Nm16a1wiLFwibmFtZVwiOlwiZ2V0XCJ9fSxcInNldFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkX2YzYjc1YzU3NTBfbWRtNm5kdTZtemtcIixcIm5hbWVcIjpcInNldFwifX19LFwic3VwcG9ydGVkTmF0aXZlQnJvd3NlclwiOmZhbHNlLFwic3VwcG9ydHNQb3B1cHNcIjp0cnVlLFwidGVzdFwiOntcImFjdGlvblwiOlwiY2hlY2tvdXRcIn0sXCJ1c2VyRXhwZXJpZW5jZUZsb3dcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwidXNlcklEVG9rZW5cIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwidmF1bHRcIjpmYWxzZSxcIndhbGxldFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn19LFwiZXhwb3J0c1wiOntcImluaXRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF83YjI2MWEwMWFiX21kbTZuZHU2bXprXCIsXCJuYW1lXCI6XCJpbml0XCJ9fSxcImNsb3NlXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfY2MwNDc1MzYyY19tZG02bmR1Nm16a1wiLFwibmFtZVwiOlwiY2xvc2U6Om1lbW9pemVkXCJ9fSxcImNoZWNrQ2xvc2VcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF81MzE4YTg4YjkxX21kbTZuZHU2bXprXCIsXCJuYW1lXCI6XCJjaGVja0Nsb3NlXCJ9fSxcInJlc2l6ZVwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzdiNzdmMGJlZmVfbWRtNm5kdTZtemtcIixcIm5hbWVcIjpcIl9uXCJ9fSxcIm9uRXJyb3JcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF80MjRlMjQ5Y2M5X21kbTZuZHU2bXprXCIsXCJuYW1lXCI6XCJxblwifX0sXCJzaG93XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfMGE5MjU5ZDdhYV9tZG02bmR1Nm16a1wiLFwibmFtZVwiOlwiZ25cIn19LFwiaGlkZVwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzViNmMxNzVlNjBfbWRtNm5kdTZtemtcIixcIm5hbWVcIjpcInZuXCJ9fSxcImV4cG9ydFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzJmYTQ4NzQ1ZDFfbWRtNm5kdTZtemtcIixcIm5hbWVcIjpcIlduXCJ9fX19In19__"
title="PayPal" allowpaymentrequest="allowpaymentrequest" scrolling="no" id="jsx-iframe-7b3cfabeb7" class="component-frame visible" style="background-color: transparent; border: none;"></iframe>
<div id="smart-menu" class="smart-menu"></div>
<div id="installments-modal" class="installments-modal"></div><iframe name="__detect_close_uid_58f230ca93_mdm6ndu6mzk__" style="display: none;"></iframe>
</div>
</spz-paypal>
<div class="product-info__out_stock mt-2 text-center text-sm leading-1.3 opacity-70 lg:mt-3 hidden"> Product was out of stock. </div>
<div class="product-info__unavailable mt-2 text-center text-sm leading-1.3 opacity-70 lg:mt-3 hidden"> Product is unavailable. </div>
</div>
<spz-render layout="container" id="product-detail-featured" manual="" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
<template> ${function(){ const variantData = data.variant ||
{"id":"a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","product_id":"788093bf-c6a7-437f-a498-206b51abdc70","title":"Black-S","weight_unit":"kg","inventory_quantity":0,"sku":"BL2403073720-Black-S","barcode":"","position":1,"option1":"Black","option2":"S","option3":"","note":"","image":{"src":"\/\/img.fantaskycdn.com\/80cb213fbf37771cbedce8941eacc137.jpeg","path":"80cb213fbf37771cbedce8941eacc137.jpeg","width":1080,"height":1620,"alt":"","aspect_ratio":0.6666666666666666},"wholesale_price":[{"price":46.45,"min_quantity":1}],"weight":"330","compare_at_price":"75","price":"46.45","retail_price":"75","available":true,"url":"\/products\/off-shoulder-textured-button-up-slit-long-sleeve-maxi-dress?variant=a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","available_quantity":999999999,"options":[{"name":"Color","value":"Black"},{"name":"Size","value":"S"}],"off_ratio":38,"flashsale_info":[],"sales":0};
return ` <div class="mt-5 body-minus-2">
</div> ` }()} </template>
<div class="mt-5 body-minus-2">
</div>
</spz-render>
<div id="apps-combination" class="modal" data-product-id="788093bf-c6a7-437f-a498-206b51abdc70"></div>
<style>
#apps-combination {
--text_font_size: 14px
}
</style>
<script id="apps_combination-1539149753700">
try {
(() => {
try {
var __defProp = Object.defineProperty,
__defProps = Object.defineProperties,
__getOwnPropDescs = Object.getOwnPropertyDescriptors,
__getOwnPropSymbols = Object.getOwnPropertySymbols,
__hasOwnProp = Object.prototype.hasOwnProperty,
__propIsEnum = Object.prototype.propertyIsEnumerable,
__defNormalProp = (e, t, n) => t in e ? __defProp(e, t, {
enumerable: !0,
configurable: !0,
writable: !0,
value: n
}) : e[t] = n,
__spreadValues = (e, t) => {
for (var n in t || (t = {})) __hasOwnProp.call(t, n) && __defNormalProp(e, n, t[n]);
if (__getOwnPropSymbols)
for (var n of __getOwnPropSymbols(t)) __propIsEnum.call(t, n) && __defNormalProp(e, n, t[n]);
return e
},
__spreadProps = (e, t) => __defProps(e, __getOwnPropDescs(t)),
__vite_style__ = document.createElement("style");
__vite_style__.innerHTML =
"*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::-webkit-backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.p-absolute{position:absolute}.p-relative{position:relative}.p-top-1\\/2{top:50%}.p-right-3{right:.75rem}.p-top-0{top:0}.p-left-0{left:0}.p-top-\\[-2px\\]{top:-2px}.p-left-\\[-2px\\]{left:-2px}.p-z-\\[100\\]{z-index:100}.p-m-0{margin:0}.p-my-10{margin-top:2.5rem;margin-bottom:2.5rem}.p-mr-3{margin-right:.75rem}.p-mb-3{margin-bottom:.75rem}.p-mb-\\[10px\\]{margin-bottom:10px}.p-ml-\\[10px\\]{margin-left:10px}.p-mr-\\[10px\\]{margin-right:10px}.p-mt-\\[-12px\\]{margin-top:-12px}.p-ml-4{margin-left:1rem}.p-mt-\\[42px\\]{margin-top:42px}.p-mb-\\[28px\\]{margin-bottom:28px}.p-mb-4{margin-bottom:1rem}.p-box-border{box-sizing:border-box}.p-flex{display:flex}.\\!p-flex{display:flex!important}.p-hidden{display:none}.p-h-\\[52px\\]{height:52px}.p-h-full{height:100%}.p-h-10{height:2.5rem}.p-h-\\[50px\\]{height:50px}.p-h-9{height:2.25rem}.p-h-5{height:1.25rem}.p-min-h-\\[40px\\]{min-height:40px}.p-w-\\[52px\\]{width:52px}.p-w-full{width:100%}.p-w-\\[calc\\(50\\%-6px\\)\\]{width:calc(50% - 6px)}.p-w-10{width:2.5rem}.p-w-9{width:2.25rem}.p-w-5{width:1.25rem}.p--rotate-180{--tw-rotate: -180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.p-cursor-pointer{cursor:pointer}.p-flex-col{flex-direction:column}.p-flex-wrap{flex-wrap:wrap}.p-items-center{align-items:center}.p-overflow-hidden{overflow:hidden}.p-whitespace-nowrap{white-space:nowrap}.p-rounded-\\[3px\\]{border-radius:3px}.p-rounded-sm{border-radius:.125rem}.p-rounded{border-radius:.25rem}.p-rounded-tl{border-top-left-radius:.25rem}.p-rounded-br{border-bottom-right-radius:.25rem}.p-border{border-width:1px}.p-border-2{border-width:2px}.p-border-solid{border-style:solid}.p-border-dashed{border-style:dashed}.p-border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.p-border-\\[\\#dddddd\\]{--tw-border-opacity: 1;border-color:rgb(221 221 221 / var(--tw-border-opacity))}.p-border-\\[\\#000000\\]{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.p-border-\\[\\#d6d6d6\\]{--tw-border-opacity: 1;border-color:rgb(214 214 214 / var(--tw-border-opacity))}.p-bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.p-bg-\\[\\#f5f5f5\\]{--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity))}.p-bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.p-object-contain{-o-object-fit:contain;object-fit:contain}.p-object-cover{-o-object-fit:cover;object-fit:cover}.p-p-\\[2px\\]{padding:2px}.p-px-2{padding-left:.5rem;padding-right:.5rem}.p-py-\\[6px\\]{padding-top:6px;padding-bottom:6px}.p-px-3{padding-left:.75rem;padding-right:.75rem}.p-py-2{padding-top:.5rem;padding-bottom:.5rem}.p-pl-2{padding-left:.5rem}.p-pr-\\[38px\\]{padding-right:38px}.p-pt-10{padding-top:2.5rem}.p-pb-3{padding-bottom:.75rem}.p-text-center{text-align:center}.p-text-variants_title{font-size:var(--text_font_size)}.p-text-sm{font-size:.875rem;line-height:1.25rem}.p-text-\\[14px\\]{font-size:14px}.p-leading-10{line-height:2.5rem}.p-leading-9{line-height:2.25rem}.p-leading-4{line-height:1rem}.p-leading-5{line-height:1.25rem}.p-text-inherit{color:inherit}.p-text-\\[\\#32384f\\]{--tw-text-opacity: 1;color:rgb(50 56 79 / var(--tw-text-opacity))}.p-text-\\[white\\]{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.p-no-underline{-webkit-text-decoration-line:none;text-decoration-line:none}.p-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.p-duration-300{transition-duration:.3s}.p-ease-linear{transition-timing-function:linear}.combination_text_ellipsis{word-break:break-all;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}.last\\:p-mr-0:last-child{margin-right:0}.even\\:p-ml-3:nth-child(even){margin-left:.75rem}.hover\\:p-bg-\\[\\#f5f5f5\\]:hover{--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity))}@media (min-width: 1024px){.lg\\:p-h-\\[42px\\]{height:42px}.lg\\:p-h-\\[50px\\]{height:50px}.lg\\:p-h-9{height:2.25rem}.lg\\:p-w-\\[42px\\]{width:42px}.lg\\:p-w-9{width:2.25rem}.lg\\:p-leading-9{line-height:2.25rem}}\n",
document.head.appendChild(__vite_style__),
function(e) {
"function" == typeof define && define.amd ? define(e) : e()
}((function() {
"use strict";
var e, t, n, r, o, i, p = {},
l = [],
_ = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;
function a(e, t) {
for (var n in t) e[n] = t[n];
return e
}
function c(e) {
var t = e.parentNode;
t && t.removeChild(e)
}
function s(t, n, r) {
var o, i, p, l = {};
for (p in n) "key" == p ? o = n[p] : "ref" == p ? i = n[p] : l[p] = n[p];
if (arguments.length > 2 && (l.children = arguments.length > 3 ? e.call(arguments, 2) : r), "function" == typeof t && null != t.defaultProps)
for (p in t.defaultProps) void 0 === l[p] && (l[p] = t.defaultProps[p]);
return d(t, l, o, i, null)
}
function d(e, r, o, i, p) {
var l = {
type: e,
props: r,
key: o,
ref: i,
__k: null,
__: null,
__b: 0,
__e: null,
__d: void 0,
__c: null,
__h: null,
constructor: void 0,
__v: null == p ? ++n : p
};
return null == p && null != t.vnode && t.vnode(l), l
}
function u(e) {
return e.children
}
function f(e, t) {
this.props = e, this.context = t
}
function h(e, t) {
if (null == t) return e.__ ? h(e.__, e.__.__k.indexOf(e) + 1) : null;
for (var n; t < e.__k.length; t++)
if (null != (n = e.__k[t]) && null != n.__e) return n.__e;
return "function" == typeof e.type ? h(e) : null
}
function m(e) {
var t, n;
if (null != (e = e.__) && null != e.__c) {
for (e.__e = e.__c.base = null, t = 0; t < e.__k.length; t++)
if (null != (n = e.__k[t]) && null != n.__e) {
e.__e = e.__c.base = n.__e;
break
} return m(e)
}
}
function w(e) {
(!e.__d && (e.__d = !0) && r.push(e) && !b.__r++ || i !== t.debounceRendering) && ((i = t.debounceRendering) || o)(b)
}
function b() {
for (var e; b.__r = r.length;) e = r.sort((function(e, t) {
return e.__v.__b - t.__v.__b
})), r = [], e.some((function(e) {
var t, n, r, o, i, p;
e.__d && (i = (o = (t = e).__v).__e, (p = t.__P) && (n = [], (r = a({}, o)).__v = o.__v + 1, C(p, o, r, t.__n, void 0 !== p.ownerSVGElement, null != o.__h ? [i] : null, n, null == i ? h(o) : i, o.__h), O(n, o), o
.__e != i && m(o)))
}))
}
function v(e, t, n, r, o, i, _, a, c, s) {
var f, m, w, b, v, y, k, P = r && r.__k || l,
S = P.length;
for (n.__k = [], f = 0; f < t.length; f++)
if (null != (b = n.__k[f] = null == (b = t[f]) || "boolean" == typeof b ? null : "string" == typeof b || "number" == typeof b || "bigint" == typeof b ? d(null, b, null, null, b) : Array.isArray(b) ? d(u, {
children: b
}, null, null, null) : b.__b > 0 ? d(b.type, b.props, b.key, null, b.__v) : b)) {
if (b.__ = n, b.__b = n.__b + 1, null === (w = P[f]) || w && b.key == w.key && b.type === w.type) P[f] = void 0;
else
for (m = 0; m < S; m++) {
if ((w = P[m]) && b.key == w.key && b.type === w.type) {
P[m] = void 0;
break
}
w = null
}
C(e, b, w = w || p, o, i, _, a, c, s), v = b.__e, (m = b.ref) && w.ref != m && (k || (k = []), w.ref && k.push(w.ref, null, b), k.push(m, b.__c || v, b)), null != v ? (null == y && (y = v), "function" == typeof b.type && b
.__k === w.__k ? b.__d = c = g(b, c, e) : c = x(e, b, w, P, v, c), "function" == typeof n.type && (n.__d = c)) : c && w.__e == c && c.parentNode != e && (c = h(w))
} for (n.__e = y, f = S; f--;) null != P[f] && ("function" == typeof n.type && null != P[f].__e && P[f].__e == n.__d && (n.__d = h(r, f + 1)), A(P[f], P[f]));
if (k)
for (f = 0; f < k.length; f++) E(k[f], k[++f], k[++f])
}
function g(e, t, n) {
for (var r, o = e.__k, i = 0; o && i < o.length; i++)(r = o[i]) && (r.__ = e, t = "function" == typeof r.type ? g(r, t, n) : x(n, r, r, o, r.__e, t));
return t
}
function y(e, t) {
return t = t || [], null == e || "boolean" == typeof e || (Array.isArray(e) ? e.some((function(e) {
y(e, t)
})) : t.push(e)), t
}
function x(e, t, n, r, o, i) {
var p, l, _;
if (void 0 !== t.__d) p = t.__d, t.__d = void 0;
else if (null == n || o != i || null == o.parentNode) e: if (null == i || i.parentNode !== e) e.appendChild(o), p = null;
else {
for (l = i, _ = 0;
(l = l.nextSibling) && _ < r.length; _ += 2)
if (l == o) break e;
e.insertBefore(o, i), p = i
} return void 0 !== p ? p : o.nextSibling
}
function k(e, t, n) {
"-" === t[0] ? e.setProperty(t, n) : e[t] = null == n ? "" : "number" != typeof n || _.test(t) ? n : n + "px"
}
function P(e, t, n, r, o) {
var i;
e: if ("style" === t)
if ("string" == typeof n) e.style.cssText = n;
else {
if ("string" == typeof r && (e.style.cssText = r = ""), r)
for (t in r) n && t in n || k(e.style, t, "");
if (n)
for (t in n) r && n[t] === r[t] || k(e.style, t, n[t])
}
else if ("o" === t[0] && "n" === t[1]) i = t !== (t = t.replace(/Capture$/, "")), t = t.toLowerCase() in e ? t.toLowerCase().slice(2) : t.slice(2), e.l || (e.l = {}), e.l[t + i] = n, n ? r || e.addEventListener(t, i ? N : S,
i) : e.removeEventListener(t, i ? N : S, i);
else if ("dangerouslySetInnerHTML" !== t) {
if (o) t = t.replace(/xlink(H|:h)/, "h").replace(/sName$/, "s");
else if ("href" !== t && "list" !== t && "form" !== t && "tabIndex" !== t && "download" !== t && t in e) try {
e[t] = null == n ? "" : n;
break e
} catch (p) {}
"function" == typeof n || (null != n && (!1 !== n || "a" === t[0] && "r" === t[1]) ? e.setAttribute(t, n) : e.removeAttribute(t))
}
}
function S(e) {
this.l[e.type + !1](t.event ? t.event(e) : e)
}
function N(e) {
this.l[e.type + !0](t.event ? t.event(e) : e)
}
function C(n, r, o, i, l, _, s, d, m) {
var w, b, g, y, x, k, S, N, C, O, E, A, j, U = r.type;
if (void 0 !== r.constructor) return null;
null != o.__h && (m = o.__h, d = r.__e = o.__e, r.__h = null, _ = [d]), (w = t.__b) && w(r);
try {
e: if ("function" == typeof U) {
if (N = r.props, C = (w = U.contextType) && i[w.__c], O = w ? C ? C.props.value : w.__ : i, o.__c ? S = (b = r.__c = o.__c).__ = b.__E : ("prototype" in U && U.prototype.render ? r.__c = b = new U(N, O) : (r.__c = b =
new f(N, O), b.constructor = U, b.render = H), C && C.sub(b), b.props = N, b.state || (b.state = {}), b.context = O, b.__n = i, g = b.__d = !0, b.__h = []), null == b.__s && (b.__s = b.state), null != U
.getDerivedStateFromProps && (b.__s == b.state && (b.__s = a({}, b.__s)), a(b.__s, U.getDerivedStateFromProps(N, b.__s))), y = b.props, x = b.state, g) null == U.getDerivedStateFromProps && null != b
.componentWillMount && b.componentWillMount(), null != b.componentDidMount && b.__h.push(b.componentDidMount);
else {
if (null == U.getDerivedStateFromProps && N !== y && null != b.componentWillReceiveProps && b.componentWillReceiveProps(N, O), !b.__e && null != b.shouldComponentUpdate && !1 === b.shouldComponentUpdate(N, b.__s, O) ||
r.__v === o.__v) {
b.props = N, b.state = b.__s, r.__v !== o.__v && (b.__d = !1), b.__v = r, r.__e = o.__e, r.__k = o.__k, r.__k.forEach((function(e) {
e && (e.__ = r)
})), b.__h.length && s.push(b);
break e
}
null != b.componentWillUpdate && b.componentWillUpdate(N, b.__s, O), null != b.componentDidUpdate && b.__h.push((function() {
b.componentDidUpdate(y, x, k)
}))
}
if (b.context = O, b.props = N, b.__v = r, b.__P = n, E = t.__r, A = 0, "prototype" in U && U.prototype.render) b.state = b.__s, b.__d = !1, E && E(r), w = b.render(b.props, b.state, b.context);
else
do {
b.__d = !1, E && E(r), w = b.render(b.props, b.state, b.context), b.state = b.__s
} while (b.__d && ++A < 25);
b.state = b.__s, null != b.getChildContext && (i = a(a({}, i), b.getChildContext())), g || null == b.getSnapshotBeforeUpdate || (k = b.getSnapshotBeforeUpdate(y, x)), j = null != w && w.type === u && null == w.key ? w
.props.children : w, v(n, Array.isArray(j) ? j : [j], r, o, i, l, _, s, d, m), b.base = r.__e, r.__h = null, b.__h.length && s.push(b), S && (b.__E = b.__ = null), b.__e = !1
} else null == _ && r.__v === o.__v ? (r.__k = o.__k, r.__e = o.__e) : r.__e = function(t, n, r, o, i, l, _, a) {
var s, d, u, f = r.props,
m = n.props,
w = n.type,
b = 0;
if ("svg" === w && (i = !0), null != l)
for (; b < l.length; b++)
if ((s = l[b]) && "setAttribute" in s == !!w && (w ? s.localName === w : 3 === s.nodeType)) {
t = s, l[b] = null;
break
} if (null == t) {
if (null === w) return document.createTextNode(m);
t = i ? document.createElementNS("http://www.w3.org/2000/svg", w) : document.createElement(w, m.is && m), l = null, a = !1
}
if (null === w) f === m || a && t.data === m || (t.data = m);
else {
if (l = l && e.call(t.childNodes), d = (f = r.props || p).dangerouslySetInnerHTML, u = m.dangerouslySetInnerHTML, !a) {
if (null != l)
for (f = {}, b = 0; b < t.attributes.length; b++) f[t.attributes[b].name] = t.attributes[b].value;
(u || d) && (u && (d && u.__html == d.__html || u.__html === t.innerHTML) || (t.innerHTML = u && u.__html || ""))
}
if (function(e, t, n, r, o) {
var i;
for (i in n) "children" === i || "key" === i || i in t || P(e, i, null, n[i], r);
for (i in t) o && "function" != typeof t[i] || "children" === i || "key" === i || "value" === i || "checked" === i || n[i] === t[i] || P(e, i, t[i], n[i], r)
}(t, m, f, i, a), u) n.__k = [];
else if (b = n.props.children, v(t, Array.isArray(b) ? b : [b], n, r, o, i && "foreignObject" !== w, l, _, l ? l[0] : r.__k && h(r, 0), a), null != l)
for (b = l.length; b--;) null != l[b] && c(l[b]);
a || ("value" in m && void 0 !== (b = m.value) && (b !== t.value || "progress" === w && !b || "option" === w && b !== f.value) && P(t, "value", b, f.value, !1), "checked" in m && void 0 !== (b = m.checked) && b !== t
.checked && P(t, "checked", b, f.checked, !1))
}
return t
}(o.__e, r, o, i, l, _, s, m);
(w = t.diffed) && w(r)
}
catch (W) {
r.__v = null, (m || null != _) && (r.__e = d, r.__h = !!m, _[_.indexOf(d)] = null), t.__e(W, r, o)
}
}
function O(e, n) {
t.__c && t.__c(n, e), e.some((function(n) {
try {
e = n.__h, n.__h = [], e.some((function(e) {
e.call(n)
}))
} catch (r) {
t.__e(r, n.__v)
}
}))
}
function E(e, n, r) {
try {
"function" == typeof e ? e(n) : e.current = n
} catch (o) {
t.__e(o, r)
}
}
function A(e, n, r) {
var o, i;
if (t.unmount && t.unmount(e), (o = e.ref) && (o.current && o.current !== e.__e || E(o, null, n)), null != (o = e.__c)) {
if (o.componentWillUnmount) try {
o.componentWillUnmount()
} catch (p) {
t.__e(p, n)
}
o.base = o.__P = null
}
if (o = e.__k)
for (i = 0; i < o.length; i++) o[i] && A(o[i], n, "function" != typeof e.type);
r || null == e.__e || c(e.__e), e.__e = e.__d = void 0
}
function H(e, t, n) {
return this.constructor(e, n)
}
function j(n, r, o) {
var i, l, _;
t.__ && t.__(n, r), l = (i = "function" == typeof o) ? null : o && o.__k || r.__k, _ = [], C(r, n = (!i && o || r).__k = s(u, null, [n]), l || p, p, void 0 !== r.ownerSVGElement, !i && o ? [o] : l ? null : r.firstChild ? e
.call(r.childNodes) : null, _, !i && o ? o : l ? l.__e : r.firstChild, i), O(_, n)
}
e = l.slice, t = {
__e: function(e, t, n, r) {
for (var o, i, p; t = t.__;)
if ((o = t.__c) && !o.__) try {
if ((i = o.constructor) && null != i.getDerivedStateFromError && (o.setState(i.getDerivedStateFromError(e)), p = o.__d), null != o.componentDidCatch && (o.componentDidCatch(e, r || {}), p = o.__d), p) return o
.__E = o
} catch (l) {
e = l
}
throw e
}
}, n = 0, f.prototype.setState = function(e, t) {
var n;
n = null != this.__s && this.__s !== this.state ? this.__s : this.__s = a({}, this.state), "function" == typeof e && (e = e(a({}, n), this.props)), e && a(n, e), null != e && this.__v && (t && this.__h.push(t), w(this))
}, f.prototype.forceUpdate = function(e) {
this.__v && (this.__e = !0, e && this.__h.push(e), w(this))
}, f.prototype.render = u, r = [], o = "function" == typeof Promise ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, b.__r = 0;
var U, W, z, T, L = 0,
M = [],
R = [],
D = t.__b,
I = t.__r,
V = t.diffed,
$ = t.__c,
B = t.unmount;
function F(e, n) {
t.__h && t.__h(W, e, L || n), L = 0;
var r = W.__H || (W.__H = {
__: [],
__h: []
});
return e >= r.__.length && r.__.push({
__V: R
}), r.__[e]
}
function q(e) {
return L = 1,
function(e, t, n) {
var r = F(U++, 2);
return r.t = e, r.__c || (r.__ = [n ? n(t) : K(void 0, t), function(e) {
var t = r.t(r.__[0], e);
r.__[0] !== t && (r.__ = [t, r.__[1]], r.__c.setState({}))
}], r.__c = W), r.__
}(K, e)
}
function Z(e, n) {
var r, o, i = F(U++, 3);
!t.__s && (r = i.__H, o = n, !r || r.length !== o.length || o.some((function(e, t) {
return e !== r[t]
}))) && (i.__ = e, i.u = n, W.__H.__h.push(i))
}
function Y() {
for (var e; e = M.shift();)
if (e.__P) try {
e.__H.__h.forEach(X), e.__H.__h.forEach(J), e.__H.__h = []
} catch (n) {
e.__H.__h = [], t.__e(n, e.__v)
}
}
t.__b = function(e) {
W = null, D && D(e)
}, t.__r = function(e) {
I && I(e), U = 0;
var t = (W = e.__c).__H;
t && (z === W ? (t.__h = [], W.__h = [], t.__.forEach((function(e) {
e.__V = R, e.u = void 0
}))) : (t.__h.forEach(X), t.__h.forEach(J), t.__h = [])), z = W
}, t.diffed = function(e) {
V && V(e);
var n = e.__c;
n && n.__H && (n.__H.__h.length && (1 !== M.push(n) && T === t.requestAnimationFrame || ((T = t.requestAnimationFrame) || function(e) {
var t, n = function() {
clearTimeout(r), G && cancelAnimationFrame(t), setTimeout(e)
},
r = setTimeout(n, 100);
G && (t = requestAnimationFrame(n))
})(Y)), n.__H.__.forEach((function(e) {
e.u && (e.__H = e.u), e.__V !== R && (e.__ = e.__V), e.u = void 0, e.__V = R
}))), z = W = null
}, t.__c = function(e, n) {
n.some((function(e) {
try {
e.__h.forEach(X), e.__h = e.__h.filter((function(e) {
return !e.__ || J(e)
}))
} catch (r) {
n.some((function(e) {
e.__h && (e.__h = [])
})), n = [], t.__e(r, e.__v)
}
})), $ && $(e, n)
}, t.unmount = function(e) {
B && B(e);
var n, r = e.__c;
r && r.__H && (r.__H.__.forEach((function(e) {
try {
X(e)
} catch (t) {
n = t
}
})), n && t.__e(n, r.__v))
};
var G = "function" == typeof requestAnimationFrame;
function X(e) {
var t = W,
n = e.__c;
"function" == typeof n && (e.__c = void 0, n()), W = t
}
function J(e) {
var t = W;
e.__c = e.__(), W = t
}
function K(e, t) {
return "function" == typeof t ? t(e) : t
}
var Q = 0;
function ee(e, n, r, o, i) {
var p, l, _ = {};
for (l in n) "ref" == l ? p = n[l] : _[l] = n[l];
var a = {
type: e,
props: _,
key: r,
ref: p,
__k: null,
__: null,
__b: 0,
__e: null,
__d: void 0,
__c: null,
__h: null,
constructor: void 0,
__v: --Q,
__source: i,
__self: o
};
if ("function" == typeof e && (p = e.defaultProps))
for (l in p) void 0 === _[l] && (_[l] = p[l]);
return t.vnode && t.vnode(a), a
}
function te() {
const e = document.querySelector("#apps-combination");
return ee("div", {
className: "p-relative p-my-10 p-border-dashed p-border-2 p-border-black p-rounded p-px-2 p-pt-10 p-pb-3 p-text-center p-leading-5 p-text-sm",
children: [ee("div", {
className: "p-absolute p-top-[-2px] p-left-[-2px] p-px-3 p-py-2 p-rounded-tl p-rounded-br p-text-[14px] p-bg-black p-text-[white]",
children: "Combined variants"
}), ee("div", {
children: e ? "The current item does not participate in the combination. Switch the participating items to check the design." : "The combination could only show in product details on storefront."
}), ee("div", {
children: "(This prompt will not be displayed on the client-side)"
})]
})
}
function ne(e, t) {
for (var n in e)
if ("__source" !== n && !(n in t)) return !0;
for (var r in t)
if ("__source" !== r && e[r] !== t[r]) return !0;
return !1
}
function re(e) {
this.props = e
}(re.prototype = new f).isPureReactComponent = !0, re.prototype.shouldComponentUpdate = function(e, t) {
return ne(this.props, e) || ne(this.state, t)
};
var oe = t.__b;
t.__b = function(e) {
e.type && e.type.__f && e.ref && (e.props.ref = e.ref, e.ref = null), oe && oe(e)
};
var ie = t.__e;
t.__e = function(e, t, n, r) {
if (e.then)
for (var o, i = t; i = i.__;)
if ((o = i.__c) && o.__c) return null == t.__e && (t.__e = n.__e, t.__k = n.__k), o.__c(e, t);
ie(e, t, n, r)
};
var pe = t.unmount;
function le() {
this.__u = 0, this.t = null, this.__b = null
}
function _e(e) {
var t = e.__.__c;
return t && t.__e && t.__e(e)
}
function ae() {
this.u = null, this.o = null
}
t.unmount = function(e) {
var t = e.__c;
t && t.__R && t.__R(), t && !0 === e.__h && (e.type = null), pe && pe(e)
}, (le.prototype = new f).__c = function(e, t) {
var n = t.__c,
r = this;
null == r.t && (r.t = []), r.t.push(n);
var o = _e(r.__v),
i = !1,
p = function() {
i || (i = !0, n.__R = null, o ? o(l) : l())
};
n.__R = p;
var l = function() {
if (!--r.__u) {
if (r.state.__e) {
var e = r.state.__e;
r.__v.__k[0] = function e(t, n, r) {
return t && (t.__v = null, t.__k = t.__k && t.__k.map((function(t) {
return e(t, n, r)
})), t.__c && t.__c.__P === n && (t.__e && r.insertBefore(t.__e, t.__d), t.__c.__e = !0, t.__c.__P = r)), t
}(e, e.__c.__P, e.__c.__O)
}
var t;
for (r.setState({
__e: r.__b = null
}); t = r.t.pop();) t.forceUpdate()
}
},
_ = !0 === t.__h;
r.__u++ || _ || r.setState({
__e: r.__b = r.__v.__k[0]
}), e.then(p, p)
}, le.prototype.componentWillUnmount = function() {
this.t = []
}, le.prototype.render = function(e, t) {
if (this.__b) {
if (this.__v.__k) {
var n = document.createElement("div"),
r = this.__v.__k[0].__c;
this.__v.__k[0] = function e(t, n, r) {
return t && (t.__c && t.__c.__H && (t.__c.__H.__.forEach((function(e) {
"function" == typeof e.__c && e.__c()
})), t.__c.__H = null), null != (t = function(e, t) {
for (var n in t) e[n] = t[n];
return e
}({}, t)).__c && (t.__c.__P === r && (t.__c.__P = n), t.__c = null), t.__k = t.__k && t.__k.map((function(t) {
return e(t, n, r)
}))), t
}(this.__b, n, r.__O = r.__P)
}
this.__b = null
}
var o = t.__e && s(u, null, e.fallback);
return o && (o.__h = null), [s(u, null, t.__e ? null : e.children), o]
};
var ce = function(e, t, n) {
if (++n[1] === n[0] && e.o.delete(t), e.props.revealOrder && ("t" !== e.props.revealOrder[0] || !e.o.size))
for (n = e.u; n;) {
for (; n.length > 3;) n.pop()();
if (n[1] < n[0]) break;
e.u = n = n[2]
}
};
function se(e) {
return this.getChildContext = function() {
return e.context
}, e.children
}
function de(e) {
var t = this,
n = e.i;
t.componentWillUnmount = function() {
j(null, t.l), t.l = null, t.i = null
}, t.i && t.i !== n && t.componentWillUnmount(), e.__v ? (t.l || (t.i = n, t.l = {
nodeType: 1,
parentNode: n,
childNodes: [],
appendChild: function(e) {
this.childNodes.push(e), t.i.appendChild(e)
},
insertBefore: function(e, n) {
this.childNodes.push(e), t.i.appendChild(e)
},
removeChild: function(e) {
this.childNodes.splice(this.childNodes.indexOf(e) >>> 1, 1), t.i.removeChild(e)
}
}), j(s(se, {
context: t.context
}, e.__v), t.l)) : t.l && t.componentWillUnmount()
}(ae.prototype = new f).__e = function(e) {
var t = this,
n = _e(t.__v),
r = t.o.get(e);
return r[0]++,
function(o) {
var i = function() {
t.props.revealOrder ? (r.push(o), ce(t, e, r)) : o()
};
n ? n(i) : i()
}
}, ae.prototype.render = function(e) {
this.u = null, this.o = new Map;
var t = y(e.children);
e.revealOrder && "b" === e.revealOrder[0] && t.reverse();
for (var n = t.length; n--;) this.o.set(t[n], this.u = [1, 0, this.u]);
return e.children
}, ae.prototype.componentDidUpdate = ae.prototype.componentDidMount = function() {
var e = this;
this.o.forEach((function(t, n) {
ce(e, n, t)
}))
};
var ue = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103,
fe =
/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|shape|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,
he = "undefined" != typeof document,
me = function(e) {
return ("undefined" != typeof Symbol && "symbol" == typeof Symbol() ? /fil|che|rad/i : /fil|che|ra/i).test(e)
};
f.prototype.isReactComponent = {}, ["componentWillMount", "componentWillReceiveProps", "componentWillUpdate"].forEach((function(e) {
Object.defineProperty(f.prototype, e, {
configurable: !0,
get: function() {
return this["UNSAFE_" + e]
},
set: function(t) {
Object.defineProperty(this, e, {
configurable: !0,
writable: !0,
value: t
})
}
})
}));
var we = t.event;
function be() {}
function ve() {
return this.cancelBubble
}
function ge() {
return this.defaultPrevented
}
t.event = function(e) {
return we && (e = we(e)), e.persist = be, e.isPropagationStopped = ve, e.isDefaultPrevented = ge, e.nativeEvent = e
};
var ye = {
configurable: !0,
get: function() {
return this.class
}
},
xe = t.vnode;
t.vnode = function(e) {
var t = e.type,
n = e.props,
r = n;
if ("string" == typeof t) {
var o = -1 === t.indexOf("-");
for (var i in r = {}, n) {
var p = n[i];
he && "children" === i && "noscript" === t || "value" === i && "defaultValue" in n && null == p || ("defaultValue" === i && "value" in n && null == n.value ? i = "value" : "download" === i && !0 === p ? p = "" :
/ondoubleclick/i.test(i) ? i = "ondblclick" : /^onchange(textarea|input)/i.test(i + t) && !me(n.type) ? i = "oninput" : /^onfocus$/i.test(i) ? i = "onfocusin" : /^onblur$/i.test(i) ? i = "onfocusout" :
/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i) ? i = i.toLowerCase() : o && fe.test(i) ? i = i.replace(/[A-Z0-9]/, "-$&").toLowerCase() : null === p && (p = void 0), /^oninput$/i.test(i) && (i = i.toLowerCase(), r[i] &&
(i = "oninputCapture")), r[i] = p)
}
"select" == t && r.multiple && Array.isArray(r.value) && (r.value = y(n.children).forEach((function(e) {
e.props.selected = -1 != r.value.indexOf(e.props.value)
}))), "select" == t && null != r.defaultValue && (r.value = y(n.children).forEach((function(e) {
e.props.selected = r.multiple ? -1 != r.defaultValue.indexOf(e.props.value) : r.defaultValue == e.props.value
}))), e.props = r, n.class != n.className && (ye.enumerable = "className" in n, null != n.className && (r.class = n.className), Object.defineProperty(r, "className", ye))
}
e.$$typeof = ue, xe && xe(e)
};
var ke = t.__r;
t.__r = function(e) {
ke && ke(e), e.__c
};
const Pe = e => {
var t, n;
const r = null == (n = null == (t = window.SHOPLAZZA) ? void 0 : t.routes) ? void 0 : n.root;
return /^(http|\/\/)/gi.test(e) ? e : r ? r + e : e
};
function Se(e) {
return ee("svg", __spreadProps(__spreadValues({
t: "1620898511511",
viewBox: "0 0 1024 1024",
version: "1.1"
}, e), {
children: ee("path", {
d: "M516.928 707.008a47.808 47.808 0 0 1-30.592-13.952L192.192 398.912a48 48 0 0 1 67.84-67.84l260.352 260.224 260.16-260.288a48 48 0 0 1 62.528-4.608l5.376 4.608a48 48 0 0 1 0 67.904L554.24 693.12a47.808 47.808 0 0 1-30.592 13.952z",
"p-id": "14205"
})
}))
}
function Ne({
data: e,
productId: t
}) {
const [n, r] = q(!1), o = e => {
e.stopPropagation(), r(!1)
}, i = e => {
e.stopPropagation(), r((e => !e))
};
return Z((() => (document.addEventListener("click", o), () => {
document.removeEventListener("click", o)
})), []), ee("div", {
className: "p-mt-[42px] p-mb-[28px] app-combination",
impr: "1",
imprevt: "1",
children: [ee("div", {
className: "p-mb-4 p-leading-4 product-info__variants_title p-text-variants_title",
children: e.title
}), ee("div", {
className: "p-flex p-flex-wrap appCombinationWrapper",
children: (() => {
var r, o, p, l, _, a;
let c = null;
if ((e.products || []).forEach((e => {
e.product_id === t && (c = e)
})), "1" == e.style) return ee(u, {
children: (e.products || []).map((e => ee("a", {
className: "p-box-border p-mr-3 p-mb-3 lg:p-w-[42px] lg:p-h-[42px] p-w-[52px] p-h-[52px] last:p-mr-0 p-flex p-overflow-hidden p-no-underline " + (t === e.product_id ?
"lg:p-w-[42px] lg:p-h-[42px] p-w-[52px] p-h-[52px] p-border p-border-solid p-border-black p-p-[2px] p-rounded-[3px] " : ""),
href: Pe(e.product_handle),
children: ee("img", {
className: "p-w-full p-h-full p-object-cover p-rounded-[3px] " + (t === e.product_id ? "p-rounded-sm" : ""),
src: e.product_image
})
}, e.product_id)))
});
if ("2" == e.style) return ee(u, {
children: (e.products || []).map((e => ee("a", {
className: "p-w-[calc(50%-6px)] p-flex p-items-center p-box-border p-mb-[10px] lg:p-h-[50px] p-h-[52px] p-px-2 p-py-[6px] p-border-solid p-border p-border-[#dddddd] p-rounded-sm p-no-underline even:p-ml-3 p-text-inherit " +
(e.product_id === t ? "p-border-[#000000]" : ""),
href: Pe(e.product_handle),
children: [ee("img", {
className: "lg:p-w-9 lg:p-h-9 p-w-10 p-h-10 p-object-contain p-rounded-sm",
src: e.product_image
}), ee("div", {
className: "p-ml-[10px] lg:p-leading-9 p-leading-10 p-overflow-hidden p-whitespace-nowrap",
children: e.display_name || e.product_name
})]
}, e.product_id)))
});
{
const u = (null == (r = document.querySelector(".appCombinationWrapper")) ? void 0 : r.clientHeight) || 0,
m = (null == (o = document.querySelector(".appCombinationWrapper")) ? void 0 : o.clientWidth) || 0,
w = ((null == (l = null == (p = document.querySelector(".appCombinationWrapper")) ? void 0 : p.getBoundingClientRect()) ? void 0 : l.top) || 0) + window.scrollY,
b = ((null == (a = null == (_ = document.querySelector(".appCombinationWrapper")) ? void 0 : _.getBoundingClientRect()) ? void 0 : a.left) || 0) + window.scrollX;
return ee("div", {
className: "p-box-border p-flex p-h-[50px] p-w-full p-relative p-border p-border-solid p-border-[#d6d6d6] p-cursor-pointer",
children: [c ? ee("div", {
className: "p-box-border p-flex p-items-center p-w-full p-h-full p-pl-2 p-pr-[38px] p-py-[6px]",
onClick: i,
children: [ee("img", {
src: c.product_image,
className: "p-w-9 p-h-9 p-mr-[10px] p-rounded-sm p-object-cover"
}), ee("div", {
className: "combination_text_ellipsis p-leading-9",
children: c.display_name || c.product_name
}), ee("span", {
className: "p-absolute p-top-1/2 p-right-3 p-mt-[-12px] p-w-5 p-h-5 p-text-[#32384f] p-transition-transform p-ease-linear p-duration-300 " + (n ? "p--rotate-180" : ""),
children: ee(Se, {})
})]
}) : null, n ? (d = ee("div", {
className: "p-absolute p-top-0 p-left-0 p-w-full",
children: ee("div", {
style: {
top: w + u - 1 + "px",
left: `${b}px`,
width: `${m}px`
},
className: `p-absolute p-box-border p-overflow-hidden p-hidden ${n?"!p-flex":""} p-flex-col p-bg-white p-z-[100] p-border p-border-solid p-border-[#d6d6d6] p-min-h-[40px]`,
children: (e.products || []).map((e => ee("a", {
href: Pe(e.product_handle),
className: "p-box-border p-h-[50px] p-w-full p-m-0 p-px-2 p-py-[6px] p-flex p-no-underline hover:p-bg-[#f5f5f5] p-text-inherit " + (e.product_id === t ? "p-bg-[#f5f5f5]" :
""),
children: [ee("img", {
className: "p-w-9 p-h-9 p-object-cover p-rounded-[3px]",
src: e.product_image
}), ee("div", {
className: "combination_text_ellipsis p-ml-4 p-leading-9",
children: e.display_name || e.product_name
})]
}, e.product_id)))
})
}), f = document.body, h = s(de, {
__v: d,
i: f
}), h.containerInfo = f, h) : null]
})
}
var d, f, h
})()
})]
})
}
j(ee((function() {
var e;
const [t, n] = q({}), [r, o] = q(!1), i = null == (e = document.getElementById("apps-combination").dataset) ? void 0 : e.productId, p = window.top !== window.self, l = document.querySelector("#apps-combination"), _ =
() => {
fetch(Pe(`/api/combination/products?product_id=${i}`), {
mode: "cors"
}).then((e => e.json((t => e.ok ? t : Promise.reject({
status: e.status,
message: t
}))))).then((e => {
if (e && l) {
n(e), o(!1);
try {
! function(e, t) {
const n = document.querySelector(e),
r = () => {
t()
};
n && !n.getAttribute("imprsd") ? n.addEventListener("impress", r) : r()
}(".app-combination", (function() {
const t = Date.now();
window.sa && sa.track("plugin_combinations_pv", {
is_combination: !0,
product_id: i,
title: e.title,
style: e.style,
store_id: window.SHOP_PARAMS && SHOP_PARAMS.shop_id,
plugin_timestamp: t
}), window.spzutm && window.spzutm.registerParams("add_to_cart", {
variants_combination: JSON.stringify({
title: e.title,
style: e.style,
store_id: window.SHOP_PARAMS && SHOP_PARAMS.shop_id,
product_id: i,
plugin_timestamp: t
})
})
}))
} catch (t) {
console.log(t)
}
} else {
o(!0);
try {
window.sa && sa.track("plugin_combinations_pv", {
product_id: i,
is_combination: !1,
store_id: window.SHOP_PARAMS && SHOP_PARAMS.shop_id
})
} catch (t) {
console.log(t)
}
}
})).catch((e => {
o(!0), console.log(e)
}))
};
return Z((() => {
_()
}), []), ee(u, {
children: [t.style ? ee(Ne, {
data: t,
productId: i
}) : null, p && r ? ee(te, {}) : null]
})
}), {}), document.getElementById("apps-combination"))
}));
} catch (err) {
console.log('combination sales error' + err)
}
})()
} catch (e) {
console.error(e)
}
</script>
<div class="bundle-combination-container">
<div class="common__product-row">
<bundle-product-list data-version="0112 15:08" class="bundle-main" style-type="" is-quick-shop="true" pid="788093bf-c6a7-437f-a498-206b51abdc70" title-text="Frequently Bought Together " title-color="#000000" btn-bg-color="#EE7C30"
btn-text-color="#ffffff" impr="1" imprevt="1" imprsd="true" style="cursor: wait; pointer-events: none;"></bundle-product-list>
</div>
</div>
<style>
.bundle-combination-container {
--color_price: #CD201A;
--color_title: #000000;
--color_btn_bg: #EE7C30;
--color_btn_color: #ffffff;
--color_origin_price: #BEBEBE;
}
.app-container {
padding: var(--general-layout-spacing, var(--page-spacing, 40px));
max-width: var(--general-layout-width, var(--layout-width, var(--page-width, 1140px)));
margin: 0 auto;
}
</style>
<script id="apps_bundle-1539149753700">
try {
(() => {
const productInfo = document.querySelector('.product-info');
const productInfoBody = document.querySelector('.product-info-body');
const curProductInfo = productInfo || productInfoBody;
const productInfoIn = !document.querySelector('div[data-section-type*="//apps/appbundle/blocks/bundle-combination/"] bundle-product-list');
// 仅针对 Hero 做处理 ,debug APPS-2880
if (window.C_SETTINGS.theme.merchant_theme_name === 'Hero' && productInfoIn) {
const $target = curProductInfo?.parentElement;
if ($target) {
const $targetZIndex = window.getComputedStyle($target)['zIndex'];
let newIndex = $targetZIndex === ' auto' ? 1 : parseInt($targetZIndex) + 1;
$target.style.zIndex = newIndex;
}
}
// Flash主题的遮挡问题,低于20,被兄弟节点图片覆盖,超过100,盖住了底部满减优惠,超过1000盖住了顶部吸附,只能取20-100之间
if (curProductInfo && window?.C_SETTINGS?.theme.merchant_theme_name === "Flash") {
curProductInfo.style.zIndex = 20;
}
try {
! function(t) {
"function" == typeof define && define.amd ? define(t) : t()
}((function() {
"use strict";
function t(t, e, i, o) {
var n, s = arguments.length,
r = s < 3 ? e : null === o ? o = Object.getOwnPropertyDescriptor(e, i) : o;
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(t, e, i, o);
else
for (var l = t.length - 1; l >= 0; l--)(n = t[l]) && (r = (s < 3 ? n(r) : s > 3 ? n(e, i, r) : n(e, i)) || r);
return s > 3 && r && Object.defineProperty(e, i, r), r
}
function e(t, e, i, o) {
return new(i || (i = Promise))((function(n, s) {
function r(t) {
try {
a(o.next(t))
} catch (t) {
s(t)
}
}
function l(t) {
try {
a(o.throw(t))
} catch (t) {
s(t)
}
}
function a(t) {
var e;
t.done ? n(t.value) : (e = t.value, e instanceof i ? e : new i((function(t) {
t(e)
}))).then(r, l)
}
a((o = o.apply(t, e || [])).next())
}))
}
"function" == typeof SuppressedError && SuppressedError;
const i = window,
o = i.ShadowRoot && (void 0 === i.ShadyCSS || i.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype,
n = Symbol(),
s = new WeakMap;
class r {
constructor(t, e, i) {
if (this._$cssResult$ = !0, i !== n) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
this.cssText = t, this.t = e
}
get styleSheet() {
let t = this.o;
const e = this.t;
if (o && void 0 === t) {
const i = void 0 !== e && 1 === e.length;
i && (t = s.get(e)), void 0 === t && ((this.o = t = new CSSStyleSheet).replaceSync(this.cssText), i && s.set(e, t))
}
return t
}
toString() {
return this.cssText
}
}
const l = (t, ...e) => {
const i = 1 === t.length ? t[0] : e.reduce(((e, i, o) => e + (t => {
if (!0 === t._$cssResult$) return t.cssText;
if ("number" == typeof t) return t;
throw Error("Value passed to 'css' function must be a 'css' function result: " + t + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")
})(i) + t[o + 1]), t[0]);
return new r(i, t, n)
},
a = o ? t => t : t => t instanceof CSSStyleSheet ? (t => {
let e = "";
for (const i of t.cssRules) e += i.cssText;
return (t => new r("string" == typeof t ? t : t + "", void 0, n))(e)
})(t) : t;
var d;
const c = window,
p = c.trustedTypes,
h = p ? p.emptyScript : "",
u = c.reactiveElementPolyfillSupport,
f = {
toAttribute(t, e) {
switch (e) {
case Boolean:
t = t ? h : null;
break;
case Object:
case Array:
t = null == t ? t : JSON.stringify(t)
}
return t
},
fromAttribute(t, e) {
let i = t;
switch (e) {
case Boolean:
i = null !== t;
break;
case Number:
i = null === t ? null : Number(t);
break;
case Object:
case Array:
try {
i = JSON.parse(t)
} catch (t) {
i = null
}
}
return i
}
},
v = (t, e) => e !== t && (e == e || t == t),
m = {
attribute: !0,
type: String,
converter: f,
reflect: !1,
hasChanged: v
},
g = "finalized";
class y extends HTMLElement {
constructor() {
super(), this._$Ei = new Map, this.isUpdatePending = !1, this.hasUpdated = !1, this._$El = null, this._$Eu()
}
static addInitializer(t) {
var e;
this.finalize(), (null !== (e = this.h) && void 0 !== e ? e : this.h = []).push(t)
}
static get observedAttributes() {
this.finalize();
const t = [];
return this.elementProperties.forEach(((e, i) => {
const o = this._$Ep(i, e);
void 0 !== o && (this._$Ev.set(o, i), t.push(o))
})), t
}
static createProperty(t, e = m) {
if (e.state && (e.attribute = !1), this.finalize(), this.elementProperties.set(t, e), !e.noAccessor && !this.prototype.hasOwnProperty(t)) {
const i = "symbol" == typeof t ? Symbol() : "__" + t,
o = this.getPropertyDescriptor(t, i, e);
void 0 !== o && Object.defineProperty(this.prototype, t, o)
}
}
static getPropertyDescriptor(t, e, i) {
return {
get() {
return this[e]
},
set(o) {
const n = this[t];
this[e] = o, this.requestUpdate(t, n, i)
},
configurable: !0,
enumerable: !0
}
}
static getPropertyOptions(t) {
return this.elementProperties.get(t) || m
}
static finalize() {
if (this.hasOwnProperty(g)) return !1;
this[g] = !0;
const t = Object.getPrototypeOf(this);
if (t.finalize(), void 0 !== t.h && (this.h = [...t.h]), this.elementProperties = new Map(t.elementProperties), this._$Ev = new Map, this.hasOwnProperty("properties")) {
const t = this.properties,
e = [...Object.getOwnPropertyNames(t), ...Object.getOwnPropertySymbols(t)];
for (const i of e) this.createProperty(i, t[i])
}
return this.elementStyles = this.finalizeStyles(this.styles), !0
}
static finalizeStyles(t) {
const e = [];
if (Array.isArray(t)) {
const i = new Set(t.flat(1 / 0).reverse());
for (const t of i) e.unshift(a(t))
} else void 0 !== t && e.push(a(t));
return e
}
static _$Ep(t, e) {
const i = e.attribute;
return !1 === i ? void 0 : "string" == typeof i ? i : "string" == typeof t ? t.toLowerCase() : void 0
}
_$Eu() {
var t;
this._$E_ = new Promise((t => this.enableUpdating = t)), this._$AL = new Map, this._$Eg(), this.requestUpdate(), null === (t = this.constructor.h) || void 0 === t || t.forEach((t => t(this)))
}
addController(t) {
var e, i;
(null !== (e = this._$ES) && void 0 !== e ? e : this._$ES = []).push(t), void 0 !== this.renderRoot && this.isConnected && (null === (i = t.hostConnected) || void 0 === i || i.call(t))
}
removeController(t) {
var e;
null === (e = this._$ES) || void 0 === e || e.splice(this._$ES.indexOf(t) >>> 0, 1)
}
_$Eg() {
this.constructor.elementProperties.forEach(((t, e) => {
this.hasOwnProperty(e) && (this._$Ei.set(e, this[e]), delete this[e])
}))
}
createRenderRoot() {
var t;
const e = null !== (t = this.shadowRoot) && void 0 !== t ? t : this.attachShadow(this.constructor.shadowRootOptions);
return ((t, e) => {
o ? t.adoptedStyleSheets = e.map((t => t instanceof CSSStyleSheet ? t : t.styleSheet)) : e.forEach((e => {
const o = document.createElement("style"),
n = i.litNonce;
void 0 !== n && o.setAttribute("nonce", n), o.textContent = e.cssText, t.appendChild(o)
}))
})(e, this.constructor.elementStyles), e
}
connectedCallback() {
var t;
void 0 === this.renderRoot && (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), null === (t = this._$ES) || void 0 === t || t.forEach((t => {
var e;
return null === (e = t.hostConnected) || void 0 === e ? void 0 : e.call(t)
}))
}
enableUpdating(t) {}
disconnectedCallback() {
var t;
null === (t = this._$ES) || void 0 === t || t.forEach((t => {
var e;
return null === (e = t.hostDisconnected) || void 0 === e ? void 0 : e.call(t)
}))
}
attributeChangedCallback(t, e, i) {
this._$AK(t, i)
}
_$EO(t, e, i = m) {
var o;
const n = this.constructor._$Ep(t, i);
if (void 0 !== n && !0 === i.reflect) {
const s = (void 0 !== (null === (o = i.converter) || void 0 === o ? void 0 : o.toAttribute) ? i.converter : f).toAttribute(e, i.type);
this._$El = t, null == s ? this.removeAttribute(n) : this.setAttribute(n, s), this._$El = null
}
}
_$AK(t, e) {
var i;
const o = this.constructor,
n = o._$Ev.get(t);
if (void 0 !== n && this._$El !== n) {
const t = o.getPropertyOptions(n),
s = "function" == typeof t.converter ? {
fromAttribute: t.converter
} : void 0 !== (null === (i = t.converter) || void 0 === i ? void 0 : i.fromAttribute) ? t.converter : f;
this._$El = n, this[n] = s.fromAttribute(e, t.type), this._$El = null
}
}
requestUpdate(t, e, i) {
let o = !0;
void 0 !== t && (((i = i || this.constructor.getPropertyOptions(t)).hasChanged || v)(this[t], e) ? (this._$AL.has(t) || this._$AL.set(t, e), !0 === i.reflect && this._$El !== t && (void 0 === this._$EC && (this._$EC =
new Map), this._$EC.set(t, i))) : o = !1), !this.isUpdatePending && o && (this._$E_ = this._$Ej())
}
async _$Ej() {
this.isUpdatePending = !0;
try {
await this._$E_
} catch (t) {
Promise.reject(t)
}
const t = this.scheduleUpdate();
return null != t && await t, !this.isUpdatePending
}
scheduleUpdate() {
return this.performUpdate()
}
performUpdate() {
var t;
if (!this.isUpdatePending) return;
this.hasUpdated, this._$Ei && (this._$Ei.forEach(((t, e) => this[e] = t)), this._$Ei = void 0);
let e = !1;
const i = this._$AL;
try {
e = this.shouldUpdate(i), e ? (this.willUpdate(i), null === (t = this._$ES) || void 0 === t || t.forEach((t => {
var e;
return null === (e = t.hostUpdate) || void 0 === e ? void 0 : e.call(t)
})), this.update(i)) : this._$Ek()
} catch (t) {
throw e = !1, this._$Ek(), t
}
e && this._$AE(i)
}
willUpdate(t) {}
_$AE(t) {
var e;
null === (e = this._$ES) || void 0 === e || e.forEach((t => {
var e;
return null === (e = t.hostUpdated) || void 0 === e ? void 0 : e.call(t)
})), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(t)), this.updated(t)
}
_$Ek() {
this._$AL = new Map, this.isUpdatePending = !1
}
get updateComplete() {
return this.getUpdateComplete()
}
getUpdateComplete() {
return this._$E_
}
shouldUpdate(t) {
return !0
}
update(t) {
void 0 !== this._$EC && (this._$EC.forEach(((t, e) => this._$EO(e, this[e], t))), this._$EC = void 0), this._$Ek()
}
updated(t) {}
firstUpdated(t) {}
}
var b;
y[g] = !0, y.elementProperties = new Map, y.elementStyles = [], y.shadowRootOptions = {
mode: "open"
}, null == u || u({
ReactiveElement: y
}), (null !== (d = c.reactiveElementVersions) && void 0 !== d ? d : c.reactiveElementVersions = []).push("1.6.3");
const x = window,
w = x.trustedTypes,
_ = w ? w.createPolicy("lit-html", {
createHTML: t => t
}) : void 0,
$ = "$lit$",
S = `lit$${(Math.random()+"").slice(9)}$`,
C = "?" + S,
k = `<${C}>`,
E = document,
T = () => E.createComment(""),
P = t => null === t || "object" != typeof t && "function" != typeof t,
A = Array.isArray,
I = "[ \t\n\f\r]",
z = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,
O = /-->/g,
H = />/g,
L = RegExp(`>|${I}(?:([^\\s"'>=/]+)(${I}*=${I}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`, "g"),
B = /'/g,
j = /"/g,
N = /^(?:script|style|textarea|title)$/i,
R = (t => (e, ...i) => ({
_$litType$: t,
strings: e,
values: i
}))(1),
q = Symbol.for("lit-noChange"),
V = Symbol.for("lit-nothing"),
M = new WeakMap,
U = E.createTreeWalker(E, 129, null, !1);
function D(t, e) {
if (!Array.isArray(t) || !t.hasOwnProperty("raw")) throw Error("invalid template strings array");
return void 0 !== _ ? _.createHTML(e) : e
}
const W = (t, e) => {
const i = t.length - 1,
o = [];
let n, s = 2 === e ? "<svg>" : "",
r = z;
for (let e = 0; e < i; e++) {
const i = t[e];
let l, a, d = -1,
c = 0;
for (; c < i.length && (r.lastIndex = c, a = r.exec(i), null !== a);) c = r.lastIndex, r === z ? "!--" === a[1] ? r = O : void 0 !== a[1] ? r = H : void 0 !== a[2] ? (N.test(a[2]) && (n = RegExp("</" + a[2], "g")), r = L) :
void 0 !== a[3] && (r = L) : r === L ? ">" === a[0] ? (r = null != n ? n : z, d = -1) : void 0 === a[1] ? d = -2 : (d = r.lastIndex - a[2].length, l = a[1], r = void 0 === a[3] ? L : '"' === a[3] ? j : B) : r === j ||
r === B ? r = L : r === O || r === H ? r = z : (r = L, n = void 0);
const p = r === L && t[e + 1].startsWith("/>") ? " " : "";
s += r === z ? i + k : d >= 0 ? (o.push(l), i.slice(0, d) + $ + i.slice(d) + S + p) : i + S + (-2 === d ? (o.push(void 0), e) : p)
}
return [D(t, s + (t[i] || "<?>") + (2 === e ? "</svg>" : "")), o]
};
class F {
constructor({
strings: t,
_$litType$: e
}, i) {
let o;
this.parts = [];
let n = 0,
s = 0;
const r = t.length - 1,
l = this.parts,
[a, d] = W(t, e);
if (this.el = F.createElement(a, i), U.currentNode = this.el.content, 2 === e) {
const t = this.el.content,
e = t.firstChild;
e.remove(), t.append(...e.childNodes)
}
for (; null !== (o = U.nextNode()) && l.length < r;) {
if (1 === o.nodeType) {
if (o.hasAttributes()) {
const t = [];
for (const e of o.getAttributeNames())
if (e.endsWith($) || e.startsWith(S)) {
const i = d[s++];
if (t.push(e), void 0 !== i) {
const t = o.getAttribute(i.toLowerCase() + $).split(S),
e = /([.?@])?(.*)/.exec(i);
l.push({
type: 1,
index: n,
name: e[2],
strings: t,
ctor: "." === e[1] ? Z : "?" === e[1] ? X : "@" === e[1] ? tt : Y
})
} else l.push({
type: 6,
index: n
})
} for (const e of t) o.removeAttribute(e)
}
if (N.test(o.tagName)) {
const t = o.textContent.split(S),
e = t.length - 1;
if (e > 0) {
o.textContent = w ? w.emptyScript : "";
for (let i = 0; i < e; i++) o.append(t[i], T()), U.nextNode(), l.push({
type: 2,
index: ++n
});
o.append(t[e], T())
}
}
} else if (8 === o.nodeType)
if (o.data === C) l.push({
type: 2,
index: n
});
else {
let t = -1;
for (; - 1 !== (t = o.data.indexOf(S, t + 1));) l.push({
type: 7,
index: n
}), t += S.length - 1
} n++
}
}
static createElement(t, e) {
const i = E.createElement("template");
return i.innerHTML = t, i
}
}
function G(t, e, i = t, o) {
var n, s, r, l;
if (e === q) return e;
let a = void 0 !== o ? null === (n = i._$Co) || void 0 === n ? void 0 : n[o] : i._$Cl;
const d = P(e) ? void 0 : e._$litDirective$;
return (null == a ? void 0 : a.constructor) !== d && (null === (s = null == a ? void 0 : a._$AO) || void 0 === s || s.call(a, !1), void 0 === d ? a = void 0 : (a = new d(t), a._$AT(t, i, o)), void 0 !== o ? (null !== (r = (l =
i)._$Co) && void 0 !== r ? r : l._$Co = [])[o] = a : i._$Cl = a), void 0 !== a && (e = G(t, a._$AS(t, e.values), a, o)), e
}
class Q {
constructor(t, e) {
this._$AV = [], this._$AN = void 0, this._$AD = t, this._$AM = e
}
get parentNode() {
return this._$AM.parentNode
}
get _$AU() {
return this._$AM._$AU
}
u(t) {
var e;
const {
el: {
content: i
},
parts: o
} = this._$AD, n = (null !== (e = null == t ? void 0 : t.creationScope) && void 0 !== e ? e : E).importNode(i, !0);
U.currentNode = n;
let s = U.nextNode(),
r = 0,
l = 0,
a = o[0];
for (; void 0 !== a;) {
if (r === a.index) {
let e;
2 === a.type ? e = new J(s, s.nextSibling, this, t) : 1 === a.type ? e = new a.ctor(s, a.name, a.strings, this, t) : 6 === a.type && (e = new et(s, this, t)), this._$AV.push(e), a = o[++l]
}
r !== (null == a ? void 0 : a.index) && (s = U.nextNode(), r++)
}
return U.currentNode = E, n
}
v(t) {
let e = 0;
for (const i of this._$AV) void 0 !== i && (void 0 !== i.strings ? (i._$AI(t, i, e), e += i.strings.length - 2) : i._$AI(t[e])), e++
}
}
class J {
constructor(t, e, i, o) {
var n;
this.type = 2, this._$AH = V, this._$AN = void 0, this._$AA = t, this._$AB = e, this._$AM = i, this.options = o, this._$Cp = null === (n = null == o ? void 0 : o.isConnected) || void 0 === n || n
}
get _$AU() {
var t, e;
return null !== (e = null === (t = this._$AM) || void 0 === t ? void 0 : t._$AU) && void 0 !== e ? e : this._$Cp
}
get parentNode() {
let t = this._$AA.parentNode;
const e = this._$AM;
return void 0 !== e && 11 === (null == t ? void 0 : t.nodeType) && (t = e.parentNode), t
}
get startNode() {
return this._$AA
}
get endNode() {
return this._$AB
}
_$AI(t, e = this) {
t = G(this, t, e), P(t) ? t === V || null == t || "" === t ? (this._$AH !== V && this._$AR(), this._$AH = V) : t !== this._$AH && t !== q && this._(t) : void 0 !== t._$litType$ ? this.g(t) : void 0 !== t.nodeType ? this.$(
t) : (t => A(t) || "function" == typeof(null == t ? void 0 : t[Symbol.iterator]))(t) ? this.T(t) : this._(t)
}
k(t) {
return this._$AA.parentNode.insertBefore(t, this._$AB)
}
$(t) {
this._$AH !== t && (this._$AR(), this._$AH = this.k(t))
}
_(t) {
this._$AH !== V && P(this._$AH) ? this._$AA.nextSibling.data = t : this.$(E.createTextNode(t)), this._$AH = t
}
g(t) {
var e;
const {
values: i,
_$litType$: o
} = t, n = "number" == typeof o ? this._$AC(t) : (void 0 === o.el && (o.el = F.createElement(D(o.h, o.h[0]), this.options)), o);
if ((null === (e = this._$AH) || void 0 === e ? void 0 : e._$AD) === n) this._$AH.v(i);
else {
const t = new Q(n, this),
e = t.u(this.options);
t.v(i), this.$(e), this._$AH = t
}
}
_$AC(t) {
let e = M.get(t.strings);
return void 0 === e && M.set(t.strings, e = new F(t)), e
}
T(t) {
A(this._$AH) || (this._$AH = [], this._$AR());
const e = this._$AH;
let i, o = 0;
for (const n of t) o === e.length ? e.push(i = new J(this.k(T()), this.k(T()), this, this.options)) : i = e[o], i._$AI(n), o++;
o < e.length && (this._$AR(i && i._$AB.nextSibling, o), e.length = o)
}
_$AR(t = this._$AA.nextSibling, e) {
var i;
for (null === (i = this._$AP) || void 0 === i || i.call(this, !1, !0, e); t && t !== this._$AB;) {
const e = t.nextSibling;
t.remove(), t = e
}
}
setConnected(t) {
var e;
void 0 === this._$AM && (this._$Cp = t, null === (e = this._$AP) || void 0 === e || e.call(this, t))
}
}
class Y {
constructor(t, e, i, o, n) {
this.type = 1, this._$AH = V, this._$AN = void 0, this.element = t, this.name = e, this._$AM = o, this.options = n, i.length > 2 || "" !== i[0] || "" !== i[1] ? (this._$AH = Array(i.length - 1).fill(new String), this
.strings = i) : this._$AH = V
}
get tagName() {
return this.element.tagName
}
get _$AU() {
return this._$AM._$AU
}
_$AI(t, e = this, i, o) {
const n = this.strings;
let s = !1;
if (void 0 === n) t = G(this, t, e, 0), s = !P(t) || t !== this._$AH && t !== q, s && (this._$AH = t);
else {
const o = t;
let r, l;
for (t = n[0], r = 0; r < n.length - 1; r++) l = G(this, o[i + r], e, r), l === q && (l = this._$AH[r]), s || (s = !P(l) || l !== this._$AH[r]), l === V ? t = V : t !== V && (t += (null != l ? l : "") + n[r + 1]), this
._$AH[r] = l
}
s && !o && this.j(t)
}
j(t) {
t === V ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, null != t ? t : "")
}
}
class Z extends Y {
constructor() {
super(...arguments), this.type = 3
}
j(t) {
this.element[this.name] = t === V ? void 0 : t
}
}
const K = w ? w.emptyScript : "";
class X extends Y {
constructor() {
super(...arguments), this.type = 4
}
j(t) {
t && t !== V ? this.element.setAttribute(this.name, K) : this.element.removeAttribute(this.name)
}
}
class tt extends Y {
constructor(t, e, i, o, n) {
super(t, e, i, o, n), this.type = 5
}
_$AI(t, e = this) {
var i;
if ((t = null !== (i = G(this, t, e, 0)) && void 0 !== i ? i : V) === q) return;
const o = this._$AH,
n = t === V && o !== V || t.capture !== o.capture || t.once !== o.once || t.passive !== o.passive,
s = t !== V && (o === V || n);
n && this.element.removeEventListener(this.name, this, o), s && this.element.addEventListener(this.name, this, t), this._$AH = t
}
handleEvent(t) {
var e, i;
"function" == typeof this._$AH ? this._$AH.call(null !== (i = null === (e = this.options) || void 0 === e ? void 0 : e.host) && void 0 !== i ? i : this.element, t) : this._$AH.handleEvent(t)
}
}
class et {
constructor(t, e, i) {
this.element = t, this.type = 6, this._$AN = void 0, this._$AM = e, this.options = i
}
get _$AU() {
return this._$AM._$AU
}
_$AI(t) {
G(this, t)
}
}
const it = x.litHtmlPolyfillSupport;
null == it || it(F, J), (null !== (b = x.litHtmlVersions) && void 0 !== b ? b : x.litHtmlVersions = []).push("2.8.0");
var ot, nt;
class st extends y {
constructor() {
super(...arguments), this.renderOptions = {
host: this
}, this._$Do = void 0
}
createRenderRoot() {
var t, e;
const i = super.createRenderRoot();
return null !== (t = (e = this.renderOptions).renderBefore) && void 0 !== t || (e.renderBefore = i.firstChild), i
}
update(t) {
const e = this.render();
this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = ((t, e, i) => {
var o, n;
const s = null !== (o = null == i ? void 0 : i.renderBefore) && void 0 !== o ? o : e;
let r = s._$litPart$;
if (void 0 === r) {
const t = null !== (n = null == i ? void 0 : i.renderBefore) && void 0 !== n ? n : null;
s._$litPart$ = r = new J(e.insertBefore(T(), t), t, void 0, null != i ? i : {})
}
return r._$AI(t), r
})(e, this.renderRoot, this.renderOptions)
}
connectedCallback() {
var t;
super.connectedCallback(), null === (t = this._$Do) || void 0 === t || t.setConnected(!0)
}
disconnectedCallback() {
var t;
super.disconnectedCallback(), null === (t = this._$Do) || void 0 === t || t.setConnected(!1)
}
render() {
return q
}
}
st.finalized = !0, st._$litElement$ = !0, null === (ot = globalThis.litElementHydrateSupport) || void 0 === ot || ot.call(globalThis, {
LitElement: st
});
const rt = globalThis.litElementPolyfillSupport;
null == rt || rt({
LitElement: st
}), (null !== (nt = globalThis.litElementVersions) && void 0 !== nt ? nt : globalThis.litElementVersions = []).push("3.3.3");
const lt = (t, e) => "method" === e.kind && e.descriptor && !("value" in e.descriptor) ? {
...e,
finisher(i) {
i.createProperty(e.key, t)
}
} : {
kind: "field",
key: Symbol(),
placement: "own",
descriptor: {},
originalKey: e.key,
initializer() {
"function" == typeof e.initializer && (this[e.key] = e.initializer.call(this))
},
finisher(i) {
i.createProperty(e.key, t)
}
},
at = (t, e, i) => {
e.constructor.createProperty(i, t)
};
function dt(t) {
return (e, i) => void 0 !== i ? at(t, e, i) : lt(t, e)
}
function ct(t) {
return dt({
...t,
state: !0
})
}
const pt = ({
finisher: t,
descriptor: e
}) => (i, o) => {
var n;
if (void 0 === o) {
const o = null !== (n = i.originalKey) && void 0 !== n ? n : i.key,
s = null != e ? {
kind: "method",
placement: "prototype",
key: o,
descriptor: e(i.key)
} : {
...i,
key: o
};
return null != t && (s.finisher = function(e) {
t(e, o)
}), s
} {
const n = i.constructor;
void 0 !== e && Object.defineProperty(i, o, e(o)), null == t || t(n, o)
}
};
function ht(t, e) {
return pt({
descriptor: i => {
const o = {
get() {
var e, i;
return null !== (i = null === (e = this.renderRoot) || void 0 === e ? void 0 : e.querySelector(t)) && void 0 !== i ? i : null
},
enumerable: !0,
configurable: !0
};
if (e) {
const e = "symbol" == typeof i ? Symbol() : "__" + i;
o.get = function() {
var i, o;
return void 0 === this[e] && (this[e] = null !== (o = null === (i = this.renderRoot) || void 0 === i ? void 0 : i.querySelector(t)) && void 0 !== o ? o : null), this[e]
}
}
return o
}
})
}
var ut;
function ft(t) {
return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t
}
null === (ut = window.HTMLSlotElement) || void 0 === ut || ut.prototype.assignedElements;
var vt = {
exports: {}
};
! function(t) {
function e(i) {
return t.exports = e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
return typeof t
} : function(t) {
return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
}, t.exports.__esModule = !0, t.exports.default = t.exports, e(i)
}
t.exports = e, t.exports.__esModule = !0, t.exports.default = t.exports
}(vt);
var mt, gt, yt = ft(vt.exports),
bt = {
exports: {}
},
xt = {
exports: {}
},
wt = {
exports: {}
};
! function(t) {
var e = vt.exports.default;
t.exports = function(t, i) {
if ("object" !== e(t) || null === t) return t;
var o = t[Symbol.toPrimitive];
if (void 0 !== o) {
var n = o.call(t, i || "default");
if ("object" !== e(n)) return n;
throw new TypeError("@@toPrimitive must return a primitive value.")
}
return ("string" === i ? String : Number)(t)
}, t.exports.__esModule = !0, t.exports.default = t.exports
}(wt),
function(t) {
var e = vt.exports.default,
i = wt.exports;
t.exports = function(t) {
var o = i(t, "string");
return "symbol" === e(o) ? o : String(o)
}, t.exports.__esModule = !0, t.exports.default = t.exports
}(xt), gt = xt.exports, (mt = bt).exports = function(t, e, i) {
return (e = gt(e)) in t ? Object.defineProperty(t, e, {
value: i,
enumerable: !0,
configurable: !0,
writable: !0
}) : t[e] = i, t
}, mt.exports.__esModule = !0, mt.exports.default = mt.exports;
var _t = ft(bt.exports),
$t = {
exports: {}
};
! function(t) {
function e(t, e, i, o, n, s, r) {
try {
var l = t[s](r),
a = l.value
} catch (t) {
return void i(t)
}
l.done ? e(a) : Promise.resolve(a).then(o, n)
}
t.exports = function(t) {
return function() {
var i = this,
o = arguments;
return new Promise((function(n, s) {
var r = t.apply(i, o);
function l(t) {
e(r, n, s, l, a, "next", t)
}
function a(t) {
e(r, n, s, l, a, "throw", t)
}
l(void 0)
}))
}
}, t.exports.__esModule = !0, t.exports.default = t.exports
}($t);
var St = ft($t.exports),
Ct = {
exports: {}
};
! function(t) {
var e = vt.exports.default;
function i() {
t.exports = i = function() {
return n
}, t.exports.__esModule = !0, t.exports.default = t.exports;
var o, n = {},
s = Object.prototype,
r = s.hasOwnProperty,
l = Object.defineProperty || function(t, e, i) {
t[e] = i.value
},
a = "function" == typeof Symbol ? Symbol : {},
d = a.iterator || "@@iterator",
c = a.asyncIterator || "@@asyncIterator",
p = a.toStringTag || "@@toStringTag";
function h(t, e, i) {
return Object.defineProperty(t, e, {
value: i,
enumerable: !0,
configurable: !0,
writable: !0
}), t[e]
}
try {
h({}, "")
} catch (o) {
h = function(t, e, i) {
return t[e] = i
}
}
function u(t, e, i, o) {
var n = e && e.prototype instanceof x ? e : x,
s = Object.create(n.prototype),
r = new O(o || []);
return l(s, "_invoke", {
value: P(t, i, r)
}), s
}
function f(t, e, i) {
try {
return {
type: "normal",
arg: t.call(e, i)
}
} catch (t) {
return {
type: "throw",
arg: t
}
}
}
n.wrap = u;
var v = "suspendedStart",
m = "suspendedYield",
g = "executing",
y = "completed",
b = {};
function x() {}
function w() {}
function _() {}
var $ = {};
h($, d, (function() {
return this
}));
var S = Object.getPrototypeOf,
C = S && S(S(H([])));
C && C !== s && r.call(C, d) && ($ = C);
var k = _.prototype = x.prototype = Object.create($);
function E(t) {
["next", "throw", "return"].forEach((function(e) {
h(t, e, (function(t) {
return this._invoke(e, t)
}))
}))
}
function T(t, i) {
function o(n, s, l, a) {
var d = f(t[n], t, s);
if ("throw" !== d.type) {
var c = d.arg,
p = c.value;
return p && "object" == e(p) && r.call(p, "__await") ? i.resolve(p.__await).then((function(t) {
o("next", t, l, a)
}), (function(t) {
o("throw", t, l, a)
})) : i.resolve(p).then((function(t) {
c.value = t, l(c)
}), (function(t) {
return o("throw", t, l, a)
}))
}
a(d.arg)
}
var n;
l(this, "_invoke", {
value: function(t, e) {
function s() {
return new i((function(i, n) {
o(t, e, i, n)
}))
}
return n = n ? n.then(s, s) : s()
}
})
}
function P(t, e, i) {
var n = v;
return function(s, r) {
if (n === g) throw new Error("Generator is already running");
if (n === y) {
if ("throw" === s) throw r;
return {
value: o,
done: !0
}
}
for (i.method = s, i.arg = r;;) {
var l = i.delegate;
if (l) {
var a = A(l, i);
if (a) {
if (a === b) continue;
return a
}
}
if ("next" === i.method) i.sent = i._sent = i.arg;
else if ("throw" === i.method) {
if (n === v) throw n = y, i.arg;
i.dispatchException(i.arg)
} else "return" === i.method && i.abrupt("return", i.arg);
n = g;
var d = f(t, e, i);
if ("normal" === d.type) {
if (n = i.done ? y : m, d.arg === b) continue;
return {
value: d.arg,
done: i.done
}
}
"throw" === d.type && (n = y, i.method = "throw", i.arg = d.arg)
}
}
}
function A(t, e) {
var i = e.method,
n = t.iterator[i];
if (n === o) return e.delegate = null, "throw" === i && t.iterator.return && (e.method = "return", e.arg = o, A(t, e), "throw" === e.method) || "return" !== i && (e.method = "throw", e.arg = new TypeError(
"The iterator does not provide a '" + i + "' method")), b;
var s = f(n, t.iterator, e.arg);
if ("throw" === s.type) return e.method = "throw", e.arg = s.arg, e.delegate = null, b;
var r = s.arg;
return r ? r.done ? (e[t.resultName] = r.value, e.next = t.nextLoc, "return" !== e.method && (e.method = "next", e.arg = o), e.delegate = null, b) : r : (e.method = "throw", e.arg = new TypeError(
"iterator result is not an object"), e.delegate = null, b)
}
function I(t) {
var e = {
tryLoc: t[0]
};
1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e)
}
function z(t) {
var e = t.completion || {};
e.type = "normal", delete e.arg, t.completion = e
}
function O(t) {
this.tryEntries = [{
tryLoc: "root"
}], t.forEach(I, this), this.reset(!0)
}
function H(t) {
if (t || "" === t) {
var i = t[d];
if (i) return i.call(t);
if ("function" == typeof t.next) return t;
if (!isNaN(t.length)) {
var n = -1,
s = function e() {
for (; ++n < t.length;)
if (r.call(t, n)) return e.value = t[n], e.done = !1, e;
return e.value = o, e.done = !0, e
};
return s.next = s
}
}
throw new TypeError(e(t) + " is not iterable")
}
return w.prototype = _, l(k, "constructor", {
value: _,
configurable: !0
}), l(_, "constructor", {
value: w,
configurable: !0
}), w.displayName = h(_, p, "GeneratorFunction"), n.isGeneratorFunction = function(t) {
var e = "function" == typeof t && t.constructor;
return !!e && (e === w || "GeneratorFunction" === (e.displayName || e.name))
}, n.mark = function(t) {
return Object.setPrototypeOf ? Object.setPrototypeOf(t, _) : (t.__proto__ = _, h(t, p, "GeneratorFunction")), t.prototype = Object.create(k), t
}, n.awrap = function(t) {
return {
__await: t
}
}, E(T.prototype), h(T.prototype, c, (function() {
return this
})), n.AsyncIterator = T, n.async = function(t, e, i, o, s) {
void 0 === s && (s = Promise);
var r = new T(u(t, e, i, o), s);
return n.isGeneratorFunction(e) ? r : r.next().then((function(t) {
return t.done ? t.value : r.next()
}))
}, E(k), h(k, p, "Generator"), h(k, d, (function() {
return this
})), h(k, "toString", (function() {
return "[object Generator]"
})), n.keys = function(t) {
var e = Object(t),
i = [];
for (var o in e) i.push(o);
return i.reverse(),
function t() {
for (; i.length;) {
var o = i.pop();
if (o in e) return t.value = o, t.done = !1, t
}
return t.done = !0, t
}
}, n.values = H, O.prototype = {
constructor: O,
reset: function(t) {
if (this.prev = 0, this.next = 0, this.sent = this._sent = o, this.done = !1, this.delegate = null, this.method = "next", this.arg = o, this.tryEntries.forEach(z), !t)
for (var e in this) "t" === e.charAt(0) && r.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = o)
},
stop: function() {
this.done = !0;
var t = this.tryEntries[0].completion;
if ("throw" === t.type) throw t.arg;
return this.rval
},
dispatchException: function(t) {
if (this.done) throw t;
var e = this;
function i(i, n) {
return l.type = "throw", l.arg = t, e.next = i, n && (e.method = "next", e.arg = o), !!n
}
for (var n = this.tryEntries.length - 1; n >= 0; --n) {
var s = this.tryEntries[n],
l = s.completion;
if ("root" === s.tryLoc) return i("end");
if (s.tryLoc <= this.prev) {
var a = r.call(s, "catchLoc"),
d = r.call(s, "finallyLoc");
if (a && d) {
if (this.prev < s.catchLoc) return i(s.catchLoc, !0);
if (this.prev < s.finallyLoc) return i(s.finallyLoc)
} else if (a) {
if (this.prev < s.catchLoc) return i(s.catchLoc, !0)
} else {
if (!d) throw new Error("try statement without catch or finally");
if (this.prev < s.finallyLoc) return i(s.finallyLoc)
}
}
}
},
abrupt: function(t, e) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var o = this.tryEntries[i];
if (o.tryLoc <= this.prev && r.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
var n = o;
break
}
}
n && ("break" === t || "continue" === t) && n.tryLoc <= e && e <= n.finallyLoc && (n = null);
var s = n ? n.completion : {};
return s.type = t, s.arg = e, n ? (this.method = "next", this.next = n.finallyLoc, b) : this.complete(s)
},
complete: function(t, e) {
if ("throw" === t.type) throw t.arg;
return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), b
},
finish: function(t) {
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
var i = this.tryEntries[e];
if (i.finallyLoc === t) return this.complete(i.completion, i.afterLoc), z(i), b
}
},
catch: function(t) {
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
var i = this.tryEntries[e];
if (i.tryLoc === t) {
var o = i.completion;
if ("throw" === o.type) {
var n = o.arg;
z(i)
}
return n
}
}
throw new Error("illegal catch attempt")
},
delegateYield: function(t, e, i) {
return this.delegate = {
iterator: H(t),
resultName: e,
nextLoc: i
}, "next" === this.method && (this.arg = o), b
}
}, n
}
t.exports = i, t.exports.__esModule = !0, t.exports.default = t.exports
}(Ct);
var kt = Ct.exports(),
Et = kt;
try {
regeneratorRuntime = kt
} catch (t) {
"object" == typeof globalThis ? globalThis.regeneratorRuntime = kt : Function("r", "regeneratorRuntime = r")(kt)
}
var Tt, Pt;
function At(t, e) {
if ("string" == typeof t && "string" == typeof e) {
if (!e.startsWith("/")) throw new Error("prefixionPath: urlPath must be start with /");
if (!t.startsWith("/")) throw new Error("prefixionPath: prefix must be start with /");
return t + e
}
}
function It(t) {
if ("string" != typeof t) throw new Error("globalizePath: urlPath must be string");
if (t.startsWith("http")) throw new Error("globalizePath: urlPath can't be http url");
t.startsWith("/") || (t = "/" + t);
var e = function() {
var t = window.C_SETTINGS && window.C_SETTINGS.routes && window.C_SETTINGS.routes.root || "";
return t.length > 0 && (t.startsWith("/") || (t = "/" + t)), t
}();
return e.length > 0 && !t.startsWith(e) || "/ca" === e && t.startsWith("/cart") ? At(e, t) : t
}
function zt(t, e) {
var i = Object.keys(t);
if (Object.getOwnPropertySymbols) {
var o = Object.getOwnPropertySymbols(t);
e && (o = o.filter((function(e) {
return Object.getOwnPropertyDescriptor(t, e).enumerable
}))), i.push.apply(i, o)
}
return i
}
function Ot(t) {
for (var e = 1; e < arguments.length; e++) {
var i = null != arguments[e] ? arguments[e] : {};
e % 2 ? zt(Object(i), !0).forEach((function(e) {
_t(t, e, i[e])
})) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(i)) : zt(Object(i)).forEach((function(e) {
Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(i, e))
}))
}
return t
}
var Ht = function(t) {
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 50,
i = null;
return function() {
for (var o = arguments.length, n = new Array(o), s = 0; s < o; s++) n[s] = arguments[s];
var r = this;
i && clearTimeout(i), i = setTimeout((function() {
t.apply(r, n)
}), e)
}
},
Lt = function(t, e) {
var i = null;
return function() {
var o = this,
n = arguments;
i || (i = setTimeout((function() {
t.apply(o, n), clearTimeout(i), i = null
}), e))
}
},
Bt = {
ROOT_URL: C_SETTINGS && C_SETTINGS.routes && C_SETTINGS.routes.root || "",
post: function(t) {
return (Tt = Tt || St(Et.mark((function t(e) {
var i, o, n, s = arguments;
return Et.wrap((function(t) {
for (;;) switch (t.prev = t.next) {
case 0:
return i = s.length > 1 && void 0 !== s[1] ? s[1] : {}, t.prev = 1, t.next = 4, fetch(Bt.ROOT_URL + e, Ot(Ot({
method: "POST",
headers: {
"Content-Type": "application/json"
}
}, i), {}, {
body: JSON.stringify(i.body)
}));
case 4:
return o = t.sent, t.next = 7, o.json();
case 7:
return n = t.sent, t.abrupt("return", n);
case 11:
throw t.prev = 11, t.t0 = t.catch(1), new Error("post request error" + t.t0);
case 14:
case "end":
return t.stop()
}
}), t, null, [
[1, 11]
])
})))).apply(this, arguments)
},
get: function(t) {
return (Pt = Pt || St(Et.mark((function t(e) {
var i, o;
return Et.wrap((function(t) {
for (;;) switch (t.prev = t.next) {
case 0:
return t.prev = 1, t.next = 4, fetch(Bt.ROOT_URL + e);
case 4:
return i = t.sent, t.next = 7, i.json();
case 7:
return o = t.sent, t.abrupt("return", o);
case 11:
throw t.prev = 11, t.t0 = t.catch(1), new Error("get request error" + t.t0);
case 14:
case "end":
return t.stop()
}
}), t, null, [
[1, 11]
])
})))).apply(this, arguments)
}
},
jt = function(t, e) {
var i, o = {
amount: {
n: 2,
x: 3,
s: ",",
c: "."
},
amount_no_decimals: {
n: 0,
x: 3,
s: ",",
c: ""
},
amount_with_comma_separator: {
n: 2,
x: 3,
s: ".",
c: ","
},
amount_no_decimals_with_comma_separator: {
n: 0,
x: 3,
s: ".",
c: ""
},
amount_with_apostrophe_separator: {
n: 2,
x: 3,
s: "'",
c: "."
}
} [e] || "amount",
n = "\\d(?=(\\d{" + (o.x || 3) + "})+" + (o.n > 0 ? "\\D" : "$") + ")";
return i = 0 === o.n ? t.toFixed(0) : parseFloat(t).toFixed(o.n + 1).slice(0, -1), (o.c ? i.replace(".", o.c) : i).replace(new RegExp(n, "g"), "$&" + (o.s || ","))
},
Nt = function(t) {
if (window.C_APPS_MULTI_CURRENCY && window.C_APPS_MULTI_CURRENCY.globalFinance) return window.C_APPS_MULTI_CURRENCY.globalFinance(Number(t));
var e = window.C_SETTINGS.currency_symbol,
i = window.C_SETTINGS ? window.C_SETTINGS.currency_symbol_pos : "left",
o = window.C_SETTINGS ? window.C_SETTINGS.money_format : "amount";
return "right" === i ? jt(1 * Number(t), o) + e : e + jt(1 * Number(t), o)
},
Rt = !!window.$;
function qt(t) {
var e = document.querySelector(".product-info"),
i = document.querySelector(".product-info-body"),
o = document.querySelector(".product-info__body"),
n = e || i || o,
s = document.querySelector("bundle-product-list"),
r = document.querySelector('div[data-section-type*="//apps/appbundle/blocks/bundle-combination/"]'),
l = r && r.contains(s),
a = {
isInProductInfo: n ? n.contains(s) : !l,
productInfo: n || null
};
if (t) {
var d = Number(window.getComputedStyle(n).paddingLeft.replace(/[^/.\d]/g, "")),
c = Number(n.offsetWidth) - d;
return Ot(Ot({}, a), {}, {
productInfoWidth: c
})
}
return a
}
const Vt = {
FASHION_HORIZONTAL: "fashionHorizontal",
FASHION_VERTICAL: "fashionVertical"
},
Mt = "fixed_price",
Ut = "fixed_amount",
Dt = "percentage",
Wt = "multi",
Ft = "single";
class Gt extends st {
constructor() {
super(...arguments), this.titleText = "", this.switchable = !1, this.titleColor = "", this.btnBgColor = "", this.btnTextColor = "", this.pid = "", this.discount_ids = "", this.styleType = "sutra", this.isQuickShop = "false",
this.atcBtnStyle = void 0, this.selected_all = !0, this.select_one = !1, this.selectedInfo = [], this.modalVisible = !1, this.loading = !1, this.success = !1, this.onResize = () => {}
}
requestUpdate() {
super.requestUpdate()
}
connectedCallback() {
this.onResize = Lt(this.computeWidth, 50), super.connectedCallback(), window.addEventListener("resize", this.onResize)
}
disconnectedCallback() {
super.disconnectedCallback(), window.removeEventListener("resize", this.onResize)
}
computeWidth() {
var t, e;
const {
isInProductInfo: i,
productInfo: o,
productInfoWidth: n
} = qt(!0), s = null === (t = this.shadowRoot) || void 0 === t ? void 0 : t.querySelector(".main");
if (s)
if (i) {
if (o) {
let t = n;
"Flash" === (null === (e = null === window || void 0 === window ? void 0 : window.SHOPLAZZA) || void 0 === e ? void 0 : e.theme.merchant_theme_name) && (null === window || void 0 === window ? void 0 : window
.innerWidth) < 960 && (t -= 32), s.style.maxWidth = `${t}px`, s.classList.add("main--in")
}
} else o && this.styleType === Vt.FASHION_VERTICAL && (s.style.maxWidth = `${n}px`), s.classList.remove("main--in")
}
showToast(t) {
const e = document.createElement("bundle-toast");
t && (e.text = t), document.body.appendChild(e)
}
buySelectedProduct() {
return e(this, void 0, void 0, (function*() {
if (this.selectedInfo.every((t => !t.is_selected))) return;
this.loading = !0;
const t = this.bundleInfo.entitled_products.filter((t => t.is_selected)),
i = t.map((t => ({
product_id: t.id,
variant_id: t.selected_id,
quantity: Number(t.count),
note: t.note || "",
price: t.variants.find((e => e.id === t.selected_id)).price,
available: "true",
selected: "true"
})));
let o = [];
o.push(this.bundleInfo.id), Bt.post("/api/bundle-sales/cart", {
body: {
cart: {
line_items: i
},
action_type: "buy_now",
bundle_sale_ids: o
}
}).then((t => {
const o = {
line_items: (i || []).map((t => ({
quantity: Number(t.quantity),
variant_id: t.variant_id,
note: t.note || "",
properties: t.properties || {}
}))),
refer_info: {
source: "buy_now"
}
};
fetch(It("/api/checkout/order"), {
method: "POST",
body: JSON.stringify(o),
headers: {
"Content-Type": "application/json;charset=utf-8"
}
}).then((t => e(this, void 0, void 0, (function*() {
if (t.redirected && t.url.includes("/account/login")) return window.location.href = It(`/account/login?_returnUrl=${encodeURIComponent(window.location.pathname)}`);
const e = yield t.json();
if ("success" !== e.state) this.showToast(e.message || e.errors[0] || "Unknown error"), location.reload();
else {
const t = e && e.data && e.data.order_token;
t && (window.safeHref ? window.safeHref = It(`/checkout/${t}?step=contact_information`) : window.location.href = It(`/checkout/${t}?step=contact_information`))
}
}))))
}))
}))
}
addSelectedToCart() {
var t;
return e(this, void 0, void 0, (function*() {
if (this.selectedInfo.every((t => !t.is_selected))) return;
this.loading = !0;
const e = this.bundleInfo.entitled_products.filter((t => t.is_selected)),
i = e.map((t => ({
product_id: t.id,
variant_id: t.selected_id,
quantity: t.count
})));
try {
const e = {
discount_id: this.bundleInfo.id,
value_type: this.bundleInfo.value_type,
popups_setting: this.bundleInfo.popups_setting,
global_show_text: this.bundleInfo.global_show_text,
target_selection: this.bundleInfo.target_selection,
page: null === (t = window.SHOP_PARAMS) || void 0 === t ? void 0 : t.template_type,
product_ids: this.bundleInfo.entitled_products.map((t => t.id)),
block: !0,
operation_type: this.bundleInfo.operation_type,
entitled_product_ids: this.bundleInfo.entitled_product_ids.join(",")
};
window.sa && window.sa.track("plugin_bundle_combination_click_atc", e)
} catch (t) {}
const o = yield Bt.post("/api/cart/batch", {
body: {
line_items: i
}
});
if (this.loading = !1, o.errors && o.errors[0]) this.showToast(o.errors[0]);
else {
this.success = !0;
try {
const t = sessionStorage.bundle_sale_ids && JSON.parse(sessionStorage.bundle_sale_ids) || [];
t.includes(this.bundleInfo.id) || (t.push(this.bundleInfo.id), sessionStorage.setItem("bundle_sale_ids", JSON.stringify(t)))
} catch (t) {}
e.forEach((t => {
var e;
const i = {
id: t.id,
product_id: t.id,
number: t.count || 1,
quantity: t.count || 1,
variant_id: t.selected_id,
childrenId: t.selected_id,
item_price: null === (e = t.variants.find((e => e.id === t.selected_id))) || void 0 === e ? void 0 : e.price,
name: t.title,
type: "",
source: "bundle"
};
Rt ? window.$(document.body).trigger("dj.addToCart", i) : document.dispatchEvent(new CustomEvent("dj.addToCart", {
detail: i
}))
})), setTimeout((() => {
window.safeHref ? window.safeHref = It("/cart") : window.location.href = It("/cart")
}))
}
}))
}
switch () {
this.dispatchEvent(new CustomEvent("bundle-combination-switch"))
}
clickSelect() {
var t, e;
this.select_one = this.selectedInfo.filter((t => t.is_selected)).length <= 1, this.selectedInfo.every((t => t.is_selected)) && (null === (e = null === (t = this.bundleInfo) || void 0 === t ? void 0 : t.entitled_products) ||
void 0 === e ? void 0 : e.length) === this.selectedInfo.length ? (this.selected_all = !0, this.requestUpdate()) : this.selected_all = !1
}
clickProduct(t) {
const e = t.detail;
"true" === this.isQuickShop && (this.modalProduct = e, this.modalVisible = !0);
const i = {
block: !0,
discount_ids: this.discount_ids,
product_id: this.pid,
discount_id: this.bundleInfo.id,
CurrProd_id: e.id,
operation_type: this.bundleInfo.operation_type,
entitled_product_ids: this.bundleInfo.entitled_product_ids.join(",")
};
window.sa && window.sa.track("plugin_bundle_combination_product_click", i)
}
renderImgs(t, e) {
var i;
const o = this.parentNode.offsetWidth > 960;
return null === (i = this.selectedInfo) || void 0 === i ? void 0 : i.slice(t, e).map(((e, i) => {
var n, s, r;
const l = null === (n = e.variants) || void 0 === n ? void 0 : n.find((t => t.id === e.selected_id)),
a = (null === (s = null == l ? void 0 : l.image) || void 0 === s ? void 0 : s.src) || (null === (r = e.image) || void 0 === r ? void 0 : r.src);
return R`<div class="img-item">${0!==i||3===t?R`<svg style="${o?"":"padding: 0 12px;"}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none"><path d="M18.573 8.571h-7.145V1.428a1.427 1.427 0 1 0-2.856 0V8.57H1.428a1.428 1.428 0 0 0 0 2.856h7.144v7.144a1.428 1.428 0 0 0 2.856 0v-7.145h7.144a1.428 1.428 0 0 0 0-2.855z" fill="#C5C5C5"/></svg>`:""}<bundle-product-img class="${o?"":"main--in"}" ?is-select="${e.is_selected}" .isQuickShop="${"true"===this.isQuickShop}" .count="${e.count}" .href="${e.url}" .src="${a}" @click="${()=>this.clickProduct(e)}"></bundle-product-img></div>`
}))
}
getlowestPricedProduct(t, e) {
let i = [],
o = [],
n = e;
const s = [...t];
return s.sort(((t, e) => Number(t.price) - Number(e.price))), s.forEach((t => {
if (0 === n) o.push(t);
else {
const e = Number(t.count);
e <= n ? (i.push(t), n -= e) : (i.push(Object.assign(Object.assign({}, t), {
count: `${n}`
})), o.push(Object.assign(Object.assign({}, t), {
count: "" + (e - n)
})), n = 0)
}
})), [i, o]
}
getPrice(t, e = "price") {
let i = 0;
return t.filter((t => t.is_selected)).forEach((t => {
var o;
const n = null === (o = t.variants) || void 0 === o ? void 0 : o.find((e => e.id === t.selected_id)),
s = +(n && n[e] || 0);
i += +t.count * s
})), i
}
handlePriceValue() {
const t = this.getPrice(this.selectedInfo);
let e = t,
i = 0;
if (this.bundleInfo.layer_type === Wt) {
const t = this.selectedInfo.filter((t => t.is_selected));
if (!this.bundleInfo.target_product_id || this.bundleInfo.target_product_id && this.selectedInfo.filter((t => t.is_selected)).some((t => t.id === this.bundleInfo.target_product_id))) {
let o = 0,
n = 0;
const s = t.reduce(((t, e) => t + Number(e.count)), 0),
r = this.bundleInfo.prerequisite_quantity_range;
for (let t = r.length - 1; t >= 0; t--) {
const e = r[t],
{
value: i,
greater_than_or_equal_to: l
} = e;
if (s >= Number(l)) {
o = Number(i), n = Number(l);
break
}
}
if (this.bundleInfo.value_type === Ut) i = o, e -= o;
else if (this.bundleInfo.value_type === Dt) {
const [s, r] = this.getlowestPricedProduct(t, n), l = this.getPrice(s), a = this.getPrice(r);
i = Math.round(l * (o / 100) * 100) / 100, e = l - i + a
}
}
} else {
const o = Number(this.bundleInfo.value);
this.bundleInfo.value_type === Mt ? o < Number(e) && (e = o, i = t - o) : this.bundleInfo.value_type === Ut ? (i = o, e -= o) : this.bundleInfo.value_type === Dt && (i = Math.round(e * (o / 100) * 100) / 100, e -= i)
}
return e = e < 0 ? 0 : e, this.bundleInfo.totalPrice = e.toFixed(2), {
salePrice: t.toFixed(2),
savePrice: i.toFixed(2)
}
}
updated() {
var t;
if (this.computeWidth(), this.modalVisible) {
const e = document.createElement("bundle-product-modal");
e.data = this.modalProduct, e.setAttribute("btn-bg-color", this.btnBgColor), e.setAttribute("btn-text-color", this.btnTextColor), e.setAttribute("top", document.documentElement.scrollTop.toString()), e.close = () => {
this.modalVisible = !1, e.remove()
}, null === (t = document.querySelector(".bundle-combination-container")) || void 0 === t || t.appendChild(e)
}
}
changeCheckBox(t) {
const {
index: e
} = t.detail, i = this.selectedInfo[e].is_selected;
this.selectedInfo[e].is_selected = !i, this.requestUpdate(), window.sa && window.sa.track("plugin_bundle_combination_product_select", {
block: !0
})
}
render() {
var t, e;
if (!this.bundleInfo) return;
const i = this.parentNode.offsetWidth > 960;
i && (null === (e = null === (t = document.querySelector(".bundle-combination-container")) || void 0 === t ? void 0 : t.classList) || void 0 === e || e.add("app-container")), this.selectedInfo = this.bundleInfo ? this
.bundleInfo.entitled_products.filter((t => t.published)) : [], this.clickSelect();
const {
salePrice: o,
savePrice: n
} = this.handlePriceValue();
let s = "";
return [Vt.FASHION_HORIZONTAL, Vt.FASHION_VERTICAL].includes(this.styleType) && (s = this.styleType),
R`<div class="main ${s}"><div class="header" style="${s?"margin-bottom: 20px;":""}"><div class="title" style="${i?"":"font-size: 20px;"}"><span style="color:${this.titleColor}">${this.titleText}</span></div>${this.switchable?R`<div class="switch" @click="${this.switch}" style="${i?"":"font-size: 14px;"}">Related Items</div>`:""}</div>${s?R`<bundle-fashion .overWidth="${i}" title-text="${this.titleText}" switchable="${this.switchable}" title-color="${this.titleColor}" btn-bg-color="${this.btnBgColor}" btn-text-color="${this.btnTextColor}" styleTypeClass="${s}" .isQuickShop="${"true"===this.isQuickShop}" .atcBtnStyle="${this.atcBtnStyle}" .select_one="${this.select_one}" .loading="${this.loading}" .success="${this.success}" .selected_all="${this.selected_all}" .selectedInfo="${this.selectedInfo}" .bundleInfo="${this.bundleInfo}" .salePrice="${o}" .savePrice="${n}" @clickSelect="${this.clickSelect}" @clickProduct="${this.clickProduct}" @changeCheckBox="${this.changeCheckBox}" @addToCart="${this.addSelectedToCart}" @buySelectedProduct="${this.buySelectedProduct}"></bundle-fashion>`:R`<bundle-sutra .overWidth="${i}" title-text="${this.titleText}" switchable="${this.switchable}" title-color="${this.titleColor}" btn-bg-color="${this.btnBgColor}" btn-text-color="${this.btnTextColor}" styleTypeClass="${s}" .isQuickShop="${"true"===this.isQuickShop}" .atcBtnStyle="${this.atcBtnStyle}" .select_one="${this.select_one}" .loading="${this.loading}" .success="${this.success}" .selected_all="${this.selected_all}" .selectedInfo="${this.selectedInfo}" .bundleInfo="${this.bundleInfo}" .salePrice="${o}" .savePrice="${n}" @clickSelect="${this.clickSelect}" @clickProduct="${this.clickProduct}" @changeCheckBox="${this.changeCheckBox}" @addToCart="${this.addSelectedToCart}" @buySelectedProduct="${this.buySelectedProduct}"></bundle-sutra>`}</div>${""}`
}
}
Gt.styles = [
l`.main{padding:20px 0;margin-left:auto;margin-right:auto;max-width:var(--layout-width,1366px)}.header{display:flex;align-items:center}.title{font-size:24px;line-height:24px}.switch{cursor:pointer;text-decoration:underline;font-size:16px;white-space:nowrap;margin-left:10px}.main--in.main{padding:20px 0}.main--in .header{flex-direction:column;align-items:flex-start}.main--in .switch{font-size:14px;margin-top:4px;margin-left:0}@media (max-width:960px){.main{padding:20px 0;max-width:unset}.header{flex-direction:column;align-items:flex-start;margin-bottom:8px}.title{font-size:16px!important}.switch{font-size:14px;margin-top:4px;margin-left:0}}`,
l`.fashionHorizontal .title{font-size:22px;line-height:24px}.fashionHorizontal .switch{color:val(--color-body-text,#292929);font-weight:400}.fashionHorizontal .header{justify-content:space-between}.fashionVertical .header{flex-direction:column;align-items:flex-start}.fashionVertical .switch{margin-top:10px;margin-left:0}.fashionVertical.main{margin-right:initial}.main--in.fashionHorizontal .header{flex-direction:column;align-items:flex-start;justify-content:flex-start}.main--in.fashionHorizontal .switch{margin-top:4px;margin-left:0}.main--in.fashionHorizontal.main{padding:20px 0}.main--in.fashionVertical.main{padding:20px 0!important;margin-left:0}.main--in.fashionVertical.main{margin-right:auto}@media (max-width:960px){.fashionVertical.main{margin-right:auto}}`
], t([dt({
type: String,
attribute: "title-text"
})], Gt.prototype, "titleText", void 0), t([dt()], Gt.prototype, "switchable", void 0), t([dt({
type: String,
attribute: "title-color"
})], Gt.prototype, "titleColor", void 0), t([dt({
type: String,
attribute: "btn-bg-color"
})], Gt.prototype, "btnBgColor", void 0), t([dt({
type: String,
attribute: "btn-text-color"
})], Gt.prototype, "btnTextColor", void 0), t([dt({
type: String,
attribute: !1
})], Gt.prototype, "pid", void 0), t([dt({
type: String,
attribute: !1
})], Gt.prototype, "discount_ids", void 0), t([dt({
attribute: !1
})], Gt.prototype, "bundleInfo", void 0), t([dt({
type: String,
attribute: "style-type"
})], Gt.prototype, "styleType", void 0), t([dt({
attribute: "is-quick-shop"
})], Gt.prototype, "isQuickShop", void 0), t([dt({
attribute: !1
})], Gt.prototype, "atcBtnStyle", void 0), t([ct()], Gt.prototype, "selected_all", void 0), t([ct()], Gt.prototype, "select_one", void 0), t([ct()], Gt.prototype, "selectedInfo", void 0), t([ct()], Gt.prototype, "modalProduct",
void 0), t([ct()], Gt.prototype, "modalVisible", void 0), t([ct()], Gt.prototype, "loading", void 0), t([ct()], Gt.prototype, "success", void 0), t([ct()], Gt.prototype, "onResize", void 0), window.customElements.get(
"bundle-product-list") || window.customElements.define("bundle-product-list", Gt);
class Qt extends st {
constructor() {
super(...arguments), this.src = "", this.href = "", this.styleTypeClass = "", this.isFirst = !1, this.isSelect = !0, this.isQuickShop = !1, this.count = 1, this.icon = R`<div class="icon"></div>`
}
updated() {
if (window.innerWidth < 960) return;
const {
isInProductInfo: t,
productInfoWidth: e
} = qt(!0);
if (!t) return;
this.item.classList.add("product-img--in");
const i = e || 500;
if (this.styleTypeClass === Vt.FASHION_HORIZONTAL) {
const t = (i - 32) / 3;
this.item.style.width = `${t}px`, this.item.style.height = 4 * t / 3 + "px"
} else if (this.styleTypeClass === Vt.FASHION_VERTICAL);
else {
const t = (i - 88) / 3;
this.item.style.height = `${t}px`, this.item.style.width = `${t}px`
}
}
render() {
return R`<div class="product-img"><a .href="${this.isQuickShop?"javascript:void(0);":It(this.href)}"><img src="${this.src}" class="${this.isSelect?"select":""} lazyload" alt="appbundle"> </a>${this.count>1?R`<div class="count notranslate ${this.isSelect?"select":""}">x ${this.count}</div>`:""}</div>`
}
}
Qt.styles = [
l`:host{display:flex;align-items:center}:host(.sutra) .product-img{position:relative;max-width:160px;max-height:160px;width:9vw;height:9vw;border-radius:4px;overflow:hidden}a{position:relative;display:block;width:100%;height:100%}img{position:absolute;left:0;right:0;top:0;bottom:0;max-width:100%;max-height:100%;display:block;margin:auto;opacity:.2}.product-img .select{opacity:1}.icon{padding:0 16px}.count{position:absolute;top:0;right:0;background-color:#ec9154;color:#fff;font-size:12px;line-height:1;padding:4px 6px;font-weight:800;border-bottom-left-radius:4px;opacity:.2}@media (max-width:960px){:host(.sutra) .product-img{width:90px!important;height:90px!important}}`,
l`:host(.fashionHorizontal) .product-img{width:100%;height:260px;position:relative}:host(.fashionHorizontal) .count{top:initial;bottom:0;right:0;border-bottom-left-radius:0;padding:6px 10px;background:rgba(41,41,41,.4);font-family:Jost;font-size:14px;font-style:normal;font-weight:400;line-height:14px}:host(.fashionHorizontal) .product-img--in.product-img{height:200px}:host(.fashionHorizontal) .product-img--in .count{padding:2px 4px;font-size:12px}@media (max-width:960px){:host(.fashionHorizontal) .product-img{height:200px}:host(.fashionHorizontal) .count{padding:4px 8px;font-size:12px}}`,
l`:host(.fashionVertical){height:100%;margin:0 16px;position:relative}:host(.fashionVertical) .product-img{width:103px;height:138px}:host(.fashionVertical) .count{top:initial;bottom:0;right:0;border-bottom-left-radius:0;padding:6px 10px;background:rgba(41,41,41,.4);font-family:Jost;font-size:14px;font-style:normal;font-weight:400;line-height:14px}:host(.fashionVertical) .product-img--in.product-img{width:85px;height:113px}:host(.fashionVertical) .product-img--in.count{padding:2px 4px;font-size:12px}@media (max-width:960px){:host(.fashionVertical) .product-img{width:85px;height:113px}:host(.fashionVertical) .count{padding:4px 8px;font-size:12px}}`
], t([dt({
type: String
})], Qt.prototype, "src", void 0), t([dt({
type: String
})], Qt.prototype, "href", void 0), t([dt()], Qt.prototype, "styleTypeClass", void 0), t([dt({
type: Boolean,
attribute: "is-first"
})], Qt.prototype, "isFirst", void 0), t([dt({
type: Boolean,
attribute: "is-select"
})], Qt.prototype, "isSelect", void 0), t([dt({
type: Boolean
})], Qt.prototype, "isQuickShop", void 0), t([dt({
type: Number
})], Qt.prototype, "count", void 0), t([ht(".product-img")], Qt.prototype, "item", void 0), window.customElements.get("bundle-product-img") || window.customElements.define("bundle-product-img", Qt);
const Jt = R`<svg xmlns="http://www.w3.org/2000/svg" width="10" height="16" viewBox="0 0 10 16" fill="none"><path d="M8.5 0.928955L1.42893 8.00002L8.5 15.0711" stroke="#222222" stroke-width="2"/></svg>`,
Yt = R`<svg xmlns="http://www.w3.org/2000/svg" width="10" height="16" viewBox="0 0 10 16" fill="none"><path d="M1.5 0.928955L8.57107 8.00002L1.5 15.0711" stroke="#222222" stroke-width="2"/></svg>`,
Zt =
R`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><rect x="1" y="1" width="22" height="22" rx="1" fill="#292929"/><path d="M5.3938 12.4719L10.8058 17.0053L18.6062 6.99475" stroke="white" stroke-width="2.2"/><rect x="1" y="1" width="22" height="22" rx="1" stroke="#292929" stroke-width="2"/></svg>`,
Kt =
R`<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect width="16" height="16" rx="2" fill="#2C77F6"/><path d="M12.328 3.75l1.422 1.408-7.163 7.092L2.25 7.956l1.422-1.409 2.915 2.886 5.74-5.683z" fill="#fff"/></svg>`,
Xt =
R`<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="1" width="14" height="14" rx="1" fill="#fff"/><path fill-rule="evenodd" clip-rule="evenodd" d="M16 1.994C16 .894 15.107 0 14.006 0H1.994C.894 0 0 .893 0 1.994v12.012C0 15.106.893 16 1.994 16h12.012c1.1 0 1.994-.893 1.994-1.994V1.994zM1.994 1h12.012l.116.007a.996.996 0 0 1 .878.987v12.012l-.007.116a.996.996 0 0 1-.987.878H1.994l-.116-.007A.995.995 0 0 1 1 14.006V1.994l.007-.116A.996.996 0 0 1 1.994 1z" fill="#D8DBE6"/></svg>`,
te =
R`<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path opacity=".01" fill="#fff" d="M0 0h16v16H0z"/><path d="M8 11.048a.748.748 0 0 0 .57-.26l4.555-4.556a.75.75 0 0 0-1.06-1.06L8 9.236 3.936 5.172a.75.75 0 0 0-1.061 1.06l4.555 4.556a.748.748 0 0 0 .57.26z" fill="#0A1533"/></svg>`,
ee =
R`<svg style="display:block;margin:auto" width="22" height="22" viewBox="0 0 50 50"><path fill="currentColor" fill-opacity=".6" d="M43.935 25.145c0-10.318-8.364-18.683-18.683-18.683-10.318 0-18.683 8.365-18.683 18.683h4.068c0-8.071 6.543-14.615 14.615-14.615s14.615 6.543 14.615 14.615h4.068z"><animateTransform attributeName="transform" attributeType="xml" dur="0.6s" from="0 25 25" repeatCount="indefinite" to="360 25 25" type="rotate"/></path></svg>`,
ie = document.querySelector("bundle-product-list");
class oe extends st {
constructor() {
super(...arguments), this.backgroundColor = (null == ie ? void 0 : ie.getAttribute("btn-bg-color")) || "#EE7C30", this.textColor = (null == ie ? void 0 : ie.getAttribute("btn-text-color")) || "#FFFFFF", this.disabled = !1,
this.loading = !1, this.success = !1, this.successHtml =
R`<svg width="16" height="17" viewBox="0 0 16 17"><path d="M8 16.5a8 8 0 1 1 .001-16A8 8 0 0 1 8 16.5zM8 2.043c-3.787 0-6.457 2.67-6.457 6.457S4.213 14.957 8 14.957s6.457-2.67 6.457-6.457S11.787 2.043 8 2.043zm-.74 9.148l-.138.137-.027-.027a.555.555 0 0 1-.238.056.559.559 0 0 1-.321-.111l-.014.013-.068-.068-.001-.002-2.355-2.354.808-.808 1.951 1.95 4.306-4.306.808.809-4.71 4.71z" fill="currentColor"/></svg> Added`
}
render() {
let t = null;
return this.loading && (t = ee), this.success && (t = this.successHtml),
R`<div class="button" style="${`background-color: ${this.backgroundColor};color: ${this.textColor};${this.disabled?"background-color: #D9DADB;":""}`}">${t||R`<slot></slot>`}</div>`
}
}
oe.styles = [
l`.button{font-size:14px;line-height:24px;font-weight:500;justify-content:center;align-items:center;padding:12px 20px;border-radius:4px 4px 4px 4px;cursor:pointer;white-space:initial;word-break:keep-all}@media (max-width:960px){.button{text-align:center}}`,
l`:host(.fashionHorizontal) .button{border-radius:0;text-align:center}`, l`:host(.fashionVertical) .button{border-radius:0}`
], t([dt({
type: String,
attribute: "bg-color"
})], oe.prototype, "backgroundColor", void 0), t([dt({
type: String,
attribute: "text-color"
})], oe.prototype, "textColor", void 0), t([dt({
type: Boolean
})], oe.prototype, "disabled", void 0), t([dt({
type: Boolean
})], oe.prototype, "loading", void 0), t([dt({
type: Boolean
})], oe.prototype, "success", void 0), window.customElements.get("bundle-button") || window.customElements.define("bundle-button", oe);
const ne = l`:host(fashion-horizontal) .content_flex{display:flex}`;
class se extends st {
constructor() {
super(...arguments), this.index = 0, this.isSelect = !1, this.selectedOptions = {}, this.thisOne = !1, this.styleTypeClass = "", this.price = "", this.compare_at_price = "", this.modalWidth = 260, this.modalLeft = 0, this
.modalTop = 0, this.showModal = t => {
if (window.innerWidth < 960 || /none/.test(t.target.classList)) return;
const e = t.clientX - t.offsetX;
e + 300 > window.innerWidth ? this.modalLeft = e - (this.modalWidth - t.target.offsetWidth) : this.modalLeft = e, this.modalTop = t.clientY - t.offsetY + t.target.offsetHeight, this.isSelect = !0, this.eva(this.isSelect)
}, this.hideModal = () => {
window.innerWidth < 960 || (this.isSelect = !1, this.eva(this.isSelect))
}
}
requestUpdate() {
super.requestUpdate()
}
willUpdate() {
if (this.data.variants) {
if (this.data.selected_options) this.selectedOptions = Object.assign({}, this.data.selected_options);
else
for (let t of this.data.variants)
if (t.available) {
this.selectedOptions.option1 = t.option1, this.selectedOptions.option2 = t.option2, this.selectedOptions.option3 = t.option3;
break
} this.data.selected_id ? this.data.variants.forEach((t => {
t.id === this.data.selected_id && (this.price = t.price, this.compare_at_price = t.compare_at_price)
})) : (this.price = this.data.variants[0].price, this.compare_at_price = this.data.variants[0].compare_at_price)
}
}
updated() {
const {
isInProductInfo: t
} = qt();
t && this.bundleProductSelect && (t ? this.bundleProductSelect.classList.add("bundle-product-select--in") : this.bundleProductSelect.classList.remove("bundle-product-select--in"))
}
eva(t) {
const e = !document.querySelector('div[data-section-type*="//apps/appbundle/blocks/bundle-combination/"] bundle-product-list');
if ("Eva" === window.C_SETTINGS.theme.merchant_theme_name && e) {
const e = document.querySelector(".product-info__body");
e && (t ? e.classList.remove("tw-overflow-hidden") : e.classList.add("tw-overflow-hidden"))
}
}
clickBundle() {
if (window.innerWidth > 960) return;
const t = this.data.options && 0 === this.data.options.length,
e = this.data.options && this.data.options.length > 0 && 1 === this.data.variants.length;
t || e || (this.isSelect = !this.isSelect, this.eva(this.isSelect))
}
variantClick(t) {
var e, i;
const o = this;
Object.assign(this.selectedOptions, t.detail), null === (i = null === (e = this.data) || void 0 === e ? void 0 : e.variants) || void 0 === i || i.forEach((function(t) {
t.option1 === o.selectedOptions.option1 && t.option2 === ((null == o ? void 0 : o.selectedOptions.option2) || "") && t.option3 === ((null == o ? void 0 : o.selectedOptions.option3) || "") && (o.data.selected_id = t
.id, o.price = t.price, o.compare_at_price = t.compare_at_price)
})), this.data.selected_options = Object.assign({}, this.selectedOptions)
}
onChange() {
this.dispatchEvent(new CustomEvent("changeCheckBox", {
detail: {
index: this.index
},
bubbles: !0,
composed: !0
}))
}
render() {
var t;
const e = this.data.options && 0 === this.data.options.length || !this.data.options,
i = this.data.options && this.data.options.length > 0 && 1 === this.data.variants.length,
o = R`<div class="price money notranslate">${Nt(Number(this.price).toFixed(2))}</div>`;
return R`<div class="bundle-product-select"><div class="title" @click="${this.onChange}">${this.thisOne?R`<span style="font-weight:800">This item: </span>`:""}${this.data.title}</div>${this.styleTypeClass?R`<div class="price-wrap">${o}</div>`:""}<div class="content_flex select notranslate ${e||i?"none":""}" @mouseenter="${this.showModal}" @mouseleave="${this.hideModal}">${e?"":R`<div class="label ${this.isSelect?" lable-select":""} ${i?"one-option":""}" @click="${this.clickBundle}"><div class="selected-variant ${i?"white-space: normal;":""}">${Object.values(this.selectedOptions).filter((t=>!!t)).join("/")}</div>${i?"":te}</div>`} ${this.styleTypeClass?"":o} ${this.isSelect?R`<bundle-select-modal @variantClick="${this.variantClick}" @closeModal="${()=>{setTimeout((()=>{this.isSelect=!1,this.eva(this.isSelect)}),200)}}" class="option_overlay ${this.isSelect?"":"hidden"}" style="${window.innerWidth>960?`left: ${this.modalLeft}px; top: ${this.modalTop}px;`:""}width:${this.modalWidth}" .selectedOptions="${this.data.selected_options||this.selectedOptions}" .options="${null===(t=this.data)||void 0===t?void 0:t.options}" .data="${this.data}" .isSelect="${this.isSelect}" top="${document.documentElement.scrollTop.toString()}"></bundle-select-modal>`:""}<div class="dropdown-overlay ${this.isSelect?"":"hidden"}" @click="${()=>this.isSelect=!1}"></div></div></div>`
}
}
se.styles = [ne, l`.content_flex{display:flex;align-items:center;position:relative;max-width:100%}.price{white-space:nowrap;color:var(--color_price)}.label{cursor:pointer}`,
l`:host(.sutra) .bundle-product-select{display:flex}:host(.sutra) .title{margin-left:16px;margin-right:16px;width:372px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;cursor:pointer;line-height:16px;color:#212b36;align-self:center}input{width:16px;height:16px;margin:0;padding:0;margin-right:12px;cursor:pointer}:host(.sutra) .label{display:flex;align-items:center;justify-content:space-between;width:260px;min-width:0;margin-right:16px;padding:6px 12px;border-radius:2px 2px 2px 2px;border:1px solid #d8dbe6;box-sizing:border-box}.one-option{padding-left:0;padding-right:0;border:none;width:auto!important}.label>svg{flex-shrink:0;margin-left:10px}.hidden{display:none!important}.lable-select{border:1px solid #30354d!important}.options{max-width:212px}:host(.sutra) .price{margin-right:auto;flex-shrink:0;font-size:16px}.selected-variant{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#212b36}.option_overlay{position:fixed;box-sizing:border-box;top:100%;left:0;max-height:300px;width:260px;overflow-y:scroll;background:#fff;box-shadow:0 2px 10px 1px rgba(0,0,0,.10000000149011612),0 0 4px 1px rgba(0,0,0,.03999999910593033);display:none;z-index:1100;padding:16px;padding-bottom:0;display:block;scrollbar-width:none;-ms-overflow-style:none}.option_overlay::-webkit-scrollbar{display:none}:host(.w-full) .bundle-product-select{flex-direction:column}:host(.w-full) .bundle-product-select .title{align-self:auto}:host(.w-full) .select{justify-content:space-between;margin-top:8px;margin-left:16px;box-sizing:border-box}:host(.w-full) .content,:host(.w-full) .content_flex,:host(.w-full) .title{width:auto}:host(.w-full) .label{flex:1}@media (max-width:960px){.bundle-product-select{flex-direction:column}.bundle-product-select .title{align-self:auto}.content,.content_flex,.title{width:auto}:host(.sutra) .label{flex:1}:host(.sutra) .bundle-product-select{flex-direction:column}.option_overlay{position:fixed;max-height:80vh;top:50%;left:50%!important;overflow-y:auto;transform:translate(-50%,-50%);z-index:1101;border-radius:4px;width:90%!important;padding:0}:host(.sutra) .title{width:auto}:host(.sutra) .price{font-size:14px}.dropdown-overlay{position:fixed;top:0;bottom:0;left:0;right:0;display:block;background-color:rgba(0,0,0,.5);z-index:1100}:host(.sutra) .select{justify-content:space-between;margin-top:8px;margin-left:16px;box-sizing:border-box}}`,
l`:host(.fashionHorizontal) .title,:host(.fashionVertical) .title{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(41,41,41,.75);font-family:Jost;font-size:14px;font-style:normal;font-weight:400;margin-bottom:10px}:host(.fashionHorizontal) .price-wrap{display:flex;flex-wrap:wrap;align-items:baseline;margin-bottom:20px}:host(.fashionHorizontal) .price,:host(.fashionVertical) .price{font-size:22px;margin-right:8px;line-height:18px;overflow:hidden;text-overflow:ellipsis}:host(.fashionHorizontal) .originPrice,:host(.fashionVertical) .originPrice{color:var(--color_price);color:#9f9f9f;font-family:Jost;font-size:16px;font-style:normal;font-weight:400;text-decoration:line-through;line-height:18px}:host(.fashionHorizontal) .label{display:flex;align-items:center;justify-content:center;width:100%;max-width:200px;border:1px solid #e6e6e6;box-sizing:border-box;padding:10px 20px}:host(.fashionHorizontal) .option_overlay{position:fixed}:host(.fashion-full.fashionHorizontal) .label{padding:4px 8px}:host(.fashion-full.fashionHorizontal) .price-wrap{display:block;margin-bottom:10px}:host(.fashion-full.fashionHorizontal) .price{margin-right:0;margin-bottom:8px;font-size:14px;white-space:initial}@media (max-width:960px){:host(.fashionHorizontal) .label{padding:4px 8px}:host(.fashionHorizontal) .price{font-size:14px}}`,
l`:host(.fashionVertical) .select{margin-right:auto}:host(.fashionVertical) .bundle-product-select{display:flex;flex-direction:column;min-height:128px;height:100%}:host(.fashionVertical) .price-wrap{display:flex;flex-wrap:wrap;align-items:baseline;margin-bottom:auto}:host(.fashionVertical) .label{display:flex;align-items:center;justify-content:center;width:auto;max-width:100%;border:1px solid #e6e6e6;box-sizing:border-box;padding:10px 20px;margin-top:10px}:host(.fashion-full.fashionVertical) .label{padding:4px 8px}:host(.fashionVertical) .bundle-product-select--in .price{font-size:14px}:host(.fashion-full.fashionVertical) .bundle-product-select{min-height:100px}:host(.fashion-full.fashionVertical) .select{width:auto}@media (min-width:960px){:host(.fashionVertical) .bundle-product-select--in .label>svg{margin-left:0}}@media (max-width:960px){:host(.fashionVertical) .label{padding:4px 8px}:host(.fashionVertical) .bundle-product-select{min-height:100px}:host(.fashionVertical) .select{margin-right:initial;width:auto}:host(.fashionVertical) .price{font-size:14px}}`
], t([dt()], se.prototype, "data", void 0), t([dt({
type: Number,
attribute: "index"
})], se.prototype, "index", void 0), t([dt({
type: Boolean
})], se.prototype, "isSelect", void 0), t([dt()], se.prototype, "selectedOptions", void 0), t([dt({
type: Boolean,
attribute: "this-one"
})], se.prototype, "thisOne", void 0), t([dt()], se.prototype, "styleTypeClass", void 0), t([ht(".option_overlay")], se.prototype, "modalEl", void 0), t([ht(".label")], se.prototype, "labelEl", void 0), t([ht(
".bundle-product-select")], se.prototype, "bundleProductSelect", void 0), t([ht(".dropdown-overlay")], se.prototype, "maskEl", void 0), t([ct()], se.prototype, "price", void 0), t([ct()], se.prototype, "compare_at_price",
void 0), t([ct()], se.prototype, "modalWidth", void 0), t([ct()], se.prototype, "modalLeft", void 0), t([ct()], se.prototype, "modalTop", void 0), window.customElements.get("bundle-product-select") || window.customElements
.define("bundle-product-select", se);
var re = !1;
if ("undefined" != typeof window) {
var le = {
get passive() {
re = !0
}
};
window.addEventListener("testPassive", null, le), window.removeEventListener("testPassive", null, le)
}
var ae = "undefined" != typeof window && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || "MacIntel" === window.navigator.platform && window.navigator.maxTouchPoints > 1),
de = [],
ce = !1,
pe = -1,
he = void 0,
ue = void 0,
fe = void 0,
ve = function(t) {
return de.some((function(e) {
return !(!e.options.allowTouchMove || !e.options.allowTouchMove(t))
}))
},
me = function(t) {
var e = t || window.event;
return !!ve(e.target) || (e.touches.length > 1 || (e.preventDefault && e.preventDefault(), !1))
},
ge = function(t, e) {
if (t) {
if (!de.some((function(e) {
return e.targetElement === t
}))) {
var i = {
targetElement: t,
options: e || {}
};
de = [].concat(function(t) {
if (Array.isArray(t)) {
for (var e = 0, i = Array(t.length); e < t.length; e++) i[e] = t[e];
return i
}
return Array.from(t)
}(de), [i]), ae ? window.requestAnimationFrame((function() {
if (void 0 === ue) {
ue = {
position: document.body.style.position,
top: document.body.style.top,
left: document.body.style.left
};
var t = window,
e = t.scrollY,
i = t.scrollX,
o = t.innerHeight;
document.body.style.position = "fixed", document.body.style.top = -e, document.body.style.left = -i, setTimeout((function() {
return window.requestAnimationFrame((function() {
var t = o - window.innerHeight;
t && e >= o && (document.body.style.top = -(e + t))
}))
}), 300)
}
})) : function(t) {
if (void 0 === fe) {
var e = !!t && !0 === t.reserveScrollBarGap,
i = window.innerWidth - document.documentElement.clientWidth;
if (e && i > 0) {
var o = parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"), 10);
fe = document.body.style.paddingRight, document.body.style.paddingRight = o + i + "px"
}
}
void 0 === he && (he = document.body.style.overflow, document.body.style.overflow = "hidden")
}(e), ae && (t.ontouchstart = function(t) {
1 === t.targetTouches.length && (pe = t.targetTouches[0].clientY)
}, t.ontouchmove = function(e) {
1 === e.targetTouches.length && function(t, e) {
var i = t.targetTouches[0].clientY - pe;
!ve(t.target) && (e && 0 === e.scrollTop && i > 0 || function(t) {
return !!t && t.scrollHeight - t.scrollTop <= t.clientHeight
}(e) && i < 0 ? me(t) : t.stopPropagation())
}(e, t)
}, ce || (document.addEventListener("touchmove", me, re ? {
passive: !1
} : void 0), ce = !0))
}
} else console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.")
},
ye = function(t) {
t ? (de = de.filter((function(e) {
return e.targetElement !== t
})), ae && (t.ontouchstart = null, t.ontouchmove = null, ce && 0 === de.length && (document.removeEventListener("touchmove", me, re ? {
passive: !1
} : void 0), ce = !1)), ae ? function() {
if (void 0 !== ue) {
var t = -parseInt(document.body.style.top, 10),
e = -parseInt(document.body.style.left, 10);
document.body.style.position = ue.position, document.body.style.top = ue.top, document.body.style.left = ue.left, window.scrollTo(e, t), ue = void 0
}
}() : (void 0 !== fe && (document.body.style.paddingRight = fe, fe = void 0), void 0 !== he && (document.body.style.overflow = he, he = void 0))) : console.error(
"enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.")
};
let be;
class xe extends st {
constructor() {
super(...arguments), this.selectedOptions = {}, this.options = [], this.data = {}, this.top = "", this.price = "", this.compareAtPrice = "", this.image = {}, this.isSelect = !1, this.priceScope = "", this.backgroundColor =
"#EE7C30"
}
willUpdate() {
var t, e, i;
const o = this;
null === (e = null === (t = this.data) || void 0 === t ? void 0 : t.variants) || void 0 === e || e.forEach((function(t, e) {
var i;
t.option1 === o.selectedOptions.option1 && t.option2 === ((null == o ? void 0 : o.selectedOptions.option2) || "") && t.option3 === ((null == o ? void 0 : o.selectedOptions.option3) || "") && (o.image = (null === (i =
null == t ? void 0 : t.image) || void 0 === i ? void 0 : i.src) ? null == t ? void 0 : t.image : o.data.image, o.price = t.price, o.compareAtPrice = t.compare_at_price)
})), null === (i = this.modalInputEl) || void 0 === i || i.focus()
}
attributeChangedCallback(t, e, i) {
"top" === t && +i > 0 && (be = +i)
}
closeModal() {
var t;
window.innerWidth < 960 && ye(null === (t = this.shadowRoot) || void 0 === t ? void 0 : t.querySelector(".select")), document.documentElement.scrollTop = be, this.dispatchEvent(new CustomEvent("closeModal", {
bubbles: !0,
composed: !0,
cancelable: !0
}))
}
firstUpdated() {
window.innerWidth < 960 || (this.modalEl.addEventListener("mousedown", (t => {
this.closeIconEl.contains(t.target) || t.preventDefault()
})), this.modalInputEl.addEventListener("blur", (() => {
this.closeModal()
})))
}
variantChange(t) {
this.priceScope = t.detail
}
render() {
var t, e;
this.isSelect && window.innerWidth < 960 && ge(this.selectEl);
const i = (null === (t = this.selectEl) || void 0 === t ? void 0 : t.scrollHeight) > (null === (e = this.selectEl) || void 0 === e ? void 0 : e.clientHeight);
return R`<input id="modal" readonly="readonly"> <label class="modal notranslate" for="modal"><div class="modal_content"><div class="modal_header"><div class="modal_header_img"><img src="${this.image.src}" class="lazyload" alt="appbundle"></div><div class="modal_header_info"><div class="modal_header_title">${this.data.title}</div><div class="prices"><div class="modal_header_price money notranslate">${this.priceScope||Nt(this.price)}</div><div class="modal_compare_price money notranslate">${Nt(this.compareAtPrice)}</div></div></div><div class="modal_close_icon" @click="${this.closeModal}"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="none"><path fill="#000" d="m17.41 16.02 4.24 4.24a1.002 1.002 0 0 1-1.418 1.416l-4.241-4.24-4.269 4.269a1.009 1.009 0 0 1-1.427-1.427l4.27-4.27-4.24-4.24a1 1 0 0 1 1.414-1.416l4.241 4.241 4.298-4.298a1.009 1.009 0 0 1 1.427 1.427l-4.296 4.299Z"/></svg></div></div><div class="options"><bundle-product-option class="select" .isSelect="${this.isSelect}" .selectedOptions="${this.selectedOptions}" .options="${this.options}" .data="${this.data}" @variantClick="${()=>this.priceScope=""}" @variantChange="${this.variantChange}"></bundle-product-option></div></div></label><div class="btn" style="${i?"box-shadow: 0px 2px 10px 1px rgb(0 0 0 / 10%);":""}"><bundle-button @click="${this.closeModal}">confirm</bundle-button></div>`
}
}
xe.styles =
l`:host{position:relative}.modal_header{display:none}input#modal{height:0;opacity:0;border:0;position:absolute}.btn{display:none}@media(max-width:960px){.modal{display:flex;max-height:80vh;overflow:hidden}.modal_content{display:flex;flex-direction:column;overflow:hidden;width:100%}.modal_header{display:flex;position:relative;margin-bottom:16px;padding:16px;padding-bottom:0;flex-shrink:0}.modal_header .modal_close_icon{position:absolute;top:8px;right:6px}.modal_header_img img{margin-right:16px;flex-shrink:0}.modal_header_img{height:66px}.modal_header_img img{width:66px;height:66px;object-fit:cover;border-radius:4px 4px 4px 4px}.modal_header_info{margin-right:36px}.prices{display:flex;align-items:baseline}.modal_header_title{width:100%;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:16px}.modal_header_price{color:var(--color_price);font-size:16px;font-weight:500}.modal_compare_price{color:var(--color_origin_price);font-size:14px;margin-left:8px;text-decoration:line-through;font-weight:400}.options_wrap{padding:0 16px 78px 16px;flex:1;overflow:hidden}.options{flex:1;display:flex;overflow:hidden;padding-bottom:74px}.select{overflow:auto;padding:0 16px}.btn{display:block;position:fixed;bottom:0;left:0;width:100%;box-sizing:border-box;padding:16px;background-color:#fff;font-size:16px}}`,
t([dt({})], xe.prototype, "selectedOptions", void 0), t([dt({
type: Array
})], xe.prototype, "options", void 0), t([dt()], xe.prototype, "data", void 0), t([dt()], xe.prototype, "top", void 0), t([dt()], xe.prototype, "price", void 0), t([dt()], xe.prototype, "compareAtPrice", void 0), t([dt()], xe
.prototype, "image", void 0), t([dt({
type: Boolean
})], xe.prototype, "isSelect", void 0), t([ht("label.modal")], xe.prototype, "modalEl", void 0), t([ht("input#modal")], xe.prototype, "modalInputEl", void 0), t([ht(".modal_close_icon")], xe.prototype, "closeIconEl", void 0), t(
[ht(".select")], xe.prototype, "selectEl", void 0), t([ct()], xe.prototype, "priceScope", void 0), t([dt({
type: String,
attribute: "background-color"
})], xe.prototype, "backgroundColor", void 0), window.customElements.get("bundle-select-modal") || window.customElements.define("bundle-select-modal", xe);
class we extends st {
constructor() {
super(...arguments), this.options = [], this.selectedOptions = {}, this.overlay = !1, this.index = 0, this.isSelect = !1
}
variantsTypeChange(t) {
var e, i;
let o = t.currentTarget;
if (o.classList.contains("option_container_selected")) o.classList.remove("option_container_selected");
else {
null === (e = o.parentElement.querySelector(".option_container_selected")) || void 0 === e || e.classList.remove("option_container_selected"), o.classList.add("option_container_selected");
if (this.options.length === ((null === (i = this.shadowRoot.querySelectorAll(".option_container_selected")) || void 0 === i ? void 0 : i.length) || 0)) {
let t = {};
for (let e = 0; e < this.options.length; e++) t[`option${e+1}`] = this.contentEls[e].querySelector(".option_container_selected").getAttribute("val");
this.dispatchEvent(new CustomEvent("variantClick", {
detail: t,
bubbles: !0,
composed: !0,
cancelable: !0
}))
}
}
this.requestUpdate(), setTimeout((() => {
var t;
if (this.options.length === ((null === (t = this.shadowRoot.querySelectorAll(".option_container_selected")) || void 0 === t ? void 0 : t.length) || 0)) return;
let e = this.data.variants.slice();
const i = this.data.options;
this.shadowRoot.querySelectorAll(".option_container_selected").forEach((t => {
const o = t.id.split("-"),
n = parseInt(o[0].substring(6), 10) - 1,
s = parseInt(o[1], 10);
e = e.filter((t => t[o[0]] == i[n].values[s]))
}));
const o = e.reduce(((t, e) => parseFloat(t.price) > parseFloat(e.price) ? e : t), e[0]).price,
n = e.reduce(((t, e) => parseFloat(t.price) < parseFloat(e.price) ? e : t), e[0]).price,
s = o === n ? Nt(o) : `${Nt(o)} - ${Nt(n)}`;
this.dispatchEvent(new CustomEvent("variantChange", {
detail: s
}))
}), 50)
}
updated() {
var t = this.data.variants.slice();
const e = this.data.options;
let i = [];
this.shadowRoot.querySelectorAll(".option_container_selected").forEach((o => {
var n = o.id.split("-"),
s = parseInt(n[0].substring(6), 10) - 1,
r = parseInt(n[1], 10);
i.push(n[0]), t = t.filter((t => t[n[0]] == e[s].values[r]))
}));
this.shadowRoot.querySelectorAll(".option_container:not(.option_container_selected)").forEach((o => {
var n = o.id.split("-"),
s = parseInt(n[0].substring(6), 10) - 1,
r = parseInt(n[1], 10),
l = Object.assign({}, t[0]);
l[n[0]] = e[s].values[r];
var a = i.slice(); - 1 == a.indexOf(n[0]) && a.push(n[0]);
var d = 0 == this.data.variants.filter((t => (t.option1 == l.option1 || -1 === a.indexOf("option1")) && (t.option2 == l.option2 || -1 === a.indexOf("option2")) && (t.option3 == l.option3 || -1 === a.indexOf(
"option3")) && +t.available_quantity > 0)).length;
d ? o.classList.add("disabled") : o.classList.remove("disabled")
}))
}
render() {
var t;
return R`<div class="product_option notranslate">${null===(t=this.options)||void 0===t?void 0:t.map(((t,e)=>R`<div class="option_name">${t.name}</div><div class="option_content" index="${e}">${t.values.map(((t,i)=>R`<div val="${t}" option="${`option${e+1}`}" id="${`option${e+1}-${i}`}" class="option_container ${this.selectedOptions["option"+(+e+1)]===t?"option_container_selected":""}" @click="${this.variantsTypeChange}">${t}</div>`))}</div>`))}</div>`
}
}
we.styles =
l`@media(max-width:960px){:host(.select) .product_option{max-height:70vh}}.option_content{display:flex;flex-wrap:wrap;margin-bottom:8px;margin-top:8px}.option_name{font-size:12px;line-height:16px}.option_container{min-width:36px;min-height:36px;box-shadow:inset 0 0 0 1px rgba(33,43,54,.25),inset 0 0 0 3px transparent;padding:6px 12px;margin-right:8px;margin-bottom:8px;display:flex;justify-content:center;align-items:center;box-sizing:border-box;border-radius:2px;font-size:14px;cursor:pointer;word-break:break-word}.option_container_selected{box-shadow:inset 0 0 0 2px var(--color-body-text,#212b36)}.disabled{background-color:#efefef;pointer-events:none}@media(max-width:960px){.option_name{font-size:14px}.option_content{font-size:16px}.option_container{min-width:42px;min-height:42px}.product_option{scrollbar-width:none;-ms-overflow-style:none}.product_option::-webkit-scrollbar{display:none}}`,
t([function(t) {
return pt({
descriptor: e => ({
get() {
var e, i;
return null !== (i = null === (e = this.renderRoot) || void 0 === e ? void 0 : e.querySelectorAll(t)) && void 0 !== i ? i : []
},
enumerable: !0,
configurable: !0
})
})
}(".option_content")], we.prototype, "contentEls", void 0), t([dt()], we.prototype, "options", void 0), t([dt()], we.prototype, "data", void 0), t([dt({})], we.prototype, "selectedOptions", void 0), t([dt({
type: Boolean
})], we.prototype, "overlay", void 0), t([dt({
type: Number
})], we.prototype, "index", void 0), t([dt({
type: Boolean
})], we.prototype, "isSelect", void 0), window.customElements.get("bundle-product-option") || window.customElements.define("bundle-product-option", we);
const _e = window.C_SETTINGS.shop.wholesale_enabled;
class $e extends st {
constructor() {
super(...arguments), this.data = {}, this.selectedOptions = {}, this.options = [], this.numDropDown = 1, this.imgList = [], this.currentImgIndex = 0, this.currentPosition = 1, this.loading = !1, this.priceScope = "", this
.icon =
R`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path opacity=".01" fill="#fff" d="M0 0h16v16H0z"/><path d="M8 11.048a.748.748 0 0 0 .57-.26l4.555-4.556a.75.75 0 0 0-1.06-1.06L8 9.236 3.936 5.172a.75.75 0 0 0-1.061 1.06l4.555 4.556a.748.748 0 0 0 .57.26z" fill="#0A1533"/></svg>`,
this.closeIcon =
R`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M3.404 2.343l4.595 4.595 4.597-4.595a.75.75 0 1 1 1.06 1.06L9.06 8l4.597 4.597a.75.75 0 1 1-1.06 1.06L7.998 9.06l-4.595 4.597a.75.75 0 1 1-1.06-1.06l4.594-4.598-4.595-4.595a.75.75 0 1 1 1.06-1.06z" fill="currentColor"/></svg>`
}
firstUpdated() {
var t, e, i, o, n;
if (ge(null === (t = this.shadowRoot) || void 0 === t ? void 0 : t.querySelector(".content")), this.imgList = this.data.images.map((t => t.src)) || [], null === (e = this.data) || void 0 === e ? void 0 : e.variants) {
if (this.data.selected_options) this.selectedOptions = Object.assign({}, this.data.selected_options);
else
for (let t of this.data.variants)
if (t.available) {
this.selectedOptions.option1 = t.option1, this.selectedOptions.option2 = t.option2, this.selectedOptions.option3 = t.option3;
break
} this.data.selected_id && this.data.variants.forEach(((t, e) => {
if (t.id === this.data.selected_id) {
let e = this.imgList.findIndex((e => {
var i;
return (null === (i = t.image) || void 0 === i ? void 0 : i.src) === e
}));
e > -1 && (this.currentImgIndex = e), this.changeNextOrPrev(0, 1)
}
}))
}
this.listEl.addEventListener("scroll", Lt((t => {
const e = this.listEl.scrollLeft,
i = .75 * document.body.offsetWidth;
this.currentPosition = Math.round(e / i) + 1
}), 100)), this.shadowRoot.querySelector(".modal").addEventListener("touchstart", (t => {
t.stopPropagation()
}));
(null === (i = this.shadowRoot) || void 0 === i ? void 0 : i.querySelector(".num_input")).addEventListener("blur", (t => {
if (t.target.value = t.target.value.replace(/[^\d]/g, ""), "" === t.target.value.trim() || +t.target.value.trim() < 1) return t.target.value = 1, void(this.numDropDown = 1);
this.numDropDown = +t.target.value
}));
const s = null === (o = this.shadowRoot) || void 0 === o ? void 0 : o.querySelector(".num_item_sub"),
r = null === (n = this.shadowRoot) || void 0 === n ? void 0 : n.querySelector(".num_item_add");
1 === this.numDropDown && s.classList.add("num_item_not_allow"), s.addEventListener("click", (t => {
this.numDropDown > 1 && this.numDropDown--
})), r.addEventListener("click", (t => {
var e, i, o;
const n = this.data.variants.find((t => t.id === this.data.selected_id)); + n.available_quantity > +this.numDropDown && (this.numDropDown++, null === (o = null === (i = null === (e = this.shadowRoot) || void 0 ===
e ? void 0 : e.querySelector(".num_item_not_allow")) || void 0 === i ? void 0 : i.classList) || void 0 === o || o.remove("num_item_not_allow"))
}))
}
variantChange(t) {
this.priceScope = t.detail
}
getQualifiedWPriceClassName(t) {
let e = "";
return t.max_quantity ? this.numDropDown <= t.max_quantity && this.numDropDown >= t.min_quantity && (e = "w-price-qualified") : this.numDropDown >= t.min_quantity && (e = "w-price-qualified"), e
}
variantClick(t) {
var e, i;
Object.assign(this.selectedOptions, t.detail), null === (i = null === (e = this.data) || void 0 === e ? void 0 : e.variants) || void 0 === i || i.forEach(((t, e) => {
if (t.option1 === this.selectedOptions.option1 && t.option2 === ((null == this ? void 0 : this.selectedOptions.option2) || "") && t.option3 === ((null == this ? void 0 : this.selectedOptions.option3) || "")) {
const e = this.imgList.findIndex((e => {
var i;
return (null === (i = t.image) || void 0 === i ? void 0 : i.src) === e
}));
this.data.selected_id = t.id, -1 !== e && (this.currentImgIndex = e)
}
})), this.data.selected_options = Object.assign({}, this.selectedOptions), this.scrollList(), this.changeNextOrPrev(0);
const o = this.data.variants.find((t => t.id === this.data.selected_id)); + this.numDropDown > +o.available_quantity && (this.numDropDown = +o.available_quantity), this.priceScope = "", this.requestUpdate()
}
changeImage(t) {
this.currentImgIndex = t, this.scrollList(), this.changeNextOrPrev(0)
}
scrollList() {
setTimeout((() => {
try {
const t = this.shadowRoot.querySelector(".img-item-selected");
t.parentElement.scrollTo({
left: t.offsetLeft,
behavior: "smooth"
})
} catch (t) {
console.error(t)
}
}))
}
changeNextOrPrev(t, e) {
const i = this.currentImgIndex + t;
i < 0 || i > this.imgList.length - 1 || (this.currentImgIndex += t, e ? setTimeout((() => {
this.shadowRoot.querySelector(".img-item-selected").scrollIntoView({
inline: "start"
})
})) : this.scrollList())
}
closeModal() {
var t;
ye(null === (t = this.shadowRoot) || void 0 === t ? void 0 : t.querySelector(".content")), document.documentElement.scrollTop = this.currentScrollTop, this.close()
}
buyNowProcess(t) {
var i;
return e(this, void 0, void 0, (function*() {
let e = t.properties || {};
const o = yield Bt.post("/api/checkout/order", {
body: {
line_items: [{
quantity: +this.numDropDown || 1,
variant_id: t.selected_id,
note: "",
properties: e
}],
refer_info: {
source: "buy_now"
}
}
});
if ("success" === o.state) return window.safeHref = It(`/checkout/${null===(i=o.data)||void 0===i?void 0:i.order_token}?step=contact_information`)
}))
}
addToCart() {
var t, i;
return e(this, void 0, void 0, (function*() {
if ("" !== this.priceScope) return void this.showToast('Please select a variant at least');
this.loading = !0;
const e = {
product_id: this.data.id,
variant_id: this.data.selected_id,
quantity: +this.numDropDown || 1
},
o = yield Bt.post("/api/cart/batch", {
body: {
line_items: [e]
}
});
if (o.errors) return this.showToast(o.errors[0]), this.loading = !1, void this.closeModal();
this.loading = !1;
const n = ((null === (t = window.SHOP_PARAMS) || void 0 === t ? void 0 : t.product_settings) || {}).add_to_cart_process;
"to_cart" === n && "page" === n || (Rt ? window.$(document).trigger("dj.common.cart.change") : document.dispatchEvent(new CustomEvent("dj.cartChange")));
const s = {
id: this.data.id,
product_id: this.data.id,
number: this.data.count || 1,
quantity: this.numDropDown || 1,
variant_id: this.data.selected_id,
childrenId: this.data.selected_id,
item_price: this.data.variants.find((t => t.id === this.data.selected_id)).price,
name: this.data.title,
type: "",
source: "bundle",
process: ((null === (i = window.SHOP_PARAMS) || void 0 === i ? void 0 : i.product_settings) || {}).add_to_cart_process
};
Rt ? window.$(document.body).trigger("dj.addToCart", s) : document.dispatchEvent(new CustomEvent("dj.addToCart", {
detail: s
})), this.closeModal(), "to_cart" === n || "page" === n ? window.safeHref ? window.safeHref = It("/cart") : window.location.href = It("/cart") : "to_checkout" === n && this.buyNowProcess(this.data), this
.showToast()
}))
}
showToast(t) {
const e = document.createElement("bundle-toast");
t && (e.text = t), document.body.appendChild(e)
}
render() {
const t = this.data.variants.find((t => t.id === this.data.selected_id)),
e = null == t ? void 0 : t.price,
i = null == t ? void 0 : t.compare_at_price,
o = window.innerWidth < 960,
n = this.currentImgIndex > 0,
s = this.currentImgIndex < this.imgList.length - 1;
return R`<div class="modal"><div class="content"><div class="slider"><div class="image"><img src="${this.imgList[this.currentImgIndex]}" class="lazyload" alt="appbundle"> ${n?R`<div class="arrow arrow-l" @click="${()=>this.changeNextOrPrev(-1)}"><svg viewBox="0 0 100 100"><path d="M30 50l25 25 5-5-20-20 20-20-5-5z" fill="#fff"/></svg></div>`:""} ${s?R`<div class="arrow arrow-r" @click="${()=>this.changeNextOrPrev(1)}"><svg viewBox="0 0 100 100"><path d="M70 50L45 25l-5 5 20 20-20 20 5 5z" fill="#fff"/></svg></div>`:""}</div><div class="list" style="grid-template-columns:repeat(${this.imgList.length},${o?this.imgList.length>1?"75%":"100%":"68px"})">${this.imgList.map(((t,e)=>R`<img alt="appbundle" class="lazyload img-item ${e===this.currentImgIndex?"img-item-selected":""} ${1===this.imgList.length?"lonely":""}" src="${t}" @click="${()=>this.changeImage(e)}">`))} ${this.imgList.length>1?R`<div class="position notranslate">${this.currentPosition}/${this.imgList.length}</div>`:""}</div></div><div class="body"><div class="header"><div class="title">${this.data.title}</div>${_e?R`<div><a href="${It(this.data.url)}" class="see-detail see-detail-trial">See detail${this.icon}</a></div><div class="w-price-list notranslate">${((null==t?void 0:t.wholesale_price)||[]).map((t=>R`<div class="w-price-item"><div class="w-price ${this.getQualifiedWPriceClassName(t)}">${Nt(t.price)}</div><div class="w-item">${t.max_quantity?`${t.min_quantity} - ${t.max_quantity} Pieces`:`>= ${t.min_quantity} Pieces`}</div></div>`))}</div>`:R`<div class="sub"><div class="prices"><span class="price money notranslate">${this.priceScope||Nt(e)}</span> <span class="compare-price money notranslate">${Nt(i)}</span></div><a href="${It(this.data.url)}" class="see-detail">See detail${this.icon}</a></div>`}</div>${o?R`<div class="divider"></div>`:""}<div class="options"><bundle-product-option .selectedOptions="${this.selectedOptions}" .options="${this.data.options}" .data="${this.data}" @variantClick="${this.variantClick}" @variantChange="${this.variantChange}"></bundle-product-option></div><div class="quantity"><div class="quantity_title">Quantity</div><div class="num_select_mobile"><div class="num_item_sub ${1==+this.numDropDown?"num_item_not_allow":""}"><svg fill="currentColor" width="13" height="14" xmlns="http://www.w3.org/2000/svg"><rect y="6" width="13" height="1" rx=".5" transform="translate(0 .5)" fill-rule="evenodd"></rect></svg></div><input type="tel" class="num_input" .value="${this.numDropDown}"><div class="num_item_add ${+this.numDropDown>=t.available_quantity?"num_item_not_allow":""}"><svg width="13" height="14" xmlns="http://www.w3.org/2000/svg"><path d="M6.5 0a.5.5 0 0 1 .5.5V6h5.5a.5.5 0 1 1 0 1H7v5.5a.5.5 0 1 1-1 0V7H.5a.5.5 0 0 1 0-1H6V.5a.5.5 0 0 1 .5-.5z" fill="currentColor"></path></svg></div></div></div><div class="btn"><bundle-button text-color="${this.btnTextColor}" bg-color="${this.btnBgColor}" @click="${this.addToCart}" ?loading="${this.loading}">Add to Cart</bundle-button></div></div><div class="close-icon" @click="${this.closeModal}">${this.closeIcon}</div></div><div class="mask" @click="${this.closeModal}"></div></div>`
}
}
$e.styles =
l`.content{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1101;background-color:#fff;display:flex}@media (max-width:960px){.content{top:68px;left:0;right:0;bottom:0;transform:unset;flex-direction:column;overflow:scroll;padding-bottom:86px}}.slider{position:relative;flex-shrink:0;padding:24px;width:360px;user-select:none;padding-inline-end:0}@media (max-width:960px){.slider{width:100%;padding:0}}.title{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#212b36;line-height:22px;font-size:16px}.price{font-size:22px;font-weight:500;color:var(--color_price);line-height:22px}.prices{display:flex;align-items:center}.compare-price{margin-left:8px;font-size:16px;font-weight:400;color:var(--color_origin_price);line-height:22px;text-decoration:line-through}@media (min-width:960px){.options{max-height:420px;overflow:scroll;scrollbar-width:none;-ms-overflow-style:none}.options::-webkit-scrollbar{display:none}}.image{position:relative;width:100%;height:480px}@media (max-width:960px){.image{display:none}}.image>img{width:100%;height:100%;object-fit:contain}.arrow{position:absolute;top:50%;width:40px;height:40px;background-color:rgba(0,0,0,.14);border-radius:50%;cursor:pointer;z-index:1}.arrow-not-allow{opacity:.7}.arrow-l{left:16px;transform:translate(0,-50%)}.arrow-r{right:16px;transform:translate(0,-50%)}.body{display:flex;flex-direction:column;width:350px;padding:24px 48px 24px 40px}.quantity{font-size:14px}.quantity_title{margin-bottom:8px}.num_select_mobile{display:none}.num_select_mobile{display:flex;align-items:center;justify-content:center;width:120px}.num_item_add,.num_item_sub{border:1px solid #ddd;cursor:pointer}.num_item_add,.num_item_sub,.num_item_val{display:flex;align-items:center;justify-content:center;width:38px;height:38px}.num_item_not_allow{background-color:#e6e6e6;color:rgba(16,16,16,.3)}.num_input{box-sizing:border-box;border:1px solid transparent;width:36px;height:40px;outline:0;font-size:16px;text-align:center}.quantity_select{display:flex}.select_icon{margin-top:10px;margin-left:-26px;pointer-events:none}@media (max-width:960px){.body{width:100%;padding:16px;box-sizing:border-box}}.header{display:flex;flex-direction:column}.sub{display:flex;align-items:center;padding:16px 0}.see-detail{display:flex;align-items:center;margin-left:auto;color:#30354d;font-size:14px;text-decoration:auto;cursor:pointer;white-space:nowrap;flex-shrink:0}.see-detail svg{margin-left:4px;transform:rotateZ(270deg)}.see-detail-trial{margin-top:8px}.w-price-list{display:flex;padding:12px 16px;background:#f9f9fa;border-radius:4px;overflow-x:scroll;margin-top:8px}.w-price-list::-webkit-scrollbar{height:4px}.w-price-list::-webkit-scrollbar-track{background:#f9f9fa}.w-price-list::-webkit-scrollbar-thumb{background:#cccbcb;border-radius:2px}.w-price-list::-webkit-scrollbar-thumb:hover{background:#888}.w-price-item{margin-right:32px;flex-shrink:0}.w-price-item:last-child{margin-right:0}.w-price{font-weight:500;font-size:16px;line-height:23px;color:val(--color-body-text,#292929)}.w-price-qualified{color:#ff3f02}.w-item{font-weight:400;font-size:12px;line-height:17px;color:rgba(41,41,41,.7);margin-top:4px}.list{display:grid;grid-column-gap:8px;overflow-x:scroll;width:100%;margin-top:8px;scrollbar-width:none;-ms-overflow-style:none}.list::-webkit-scrollbar{display:none}@media (max-width:960px){.list{scroll-snap-type:x mandatory;margin-top:0}.sub{padding:8px 0}.price{font-size:20px}.divider{border-bottom:1px solid #d8dbe6;margin:12px 0 20px 0}.see-detail{font-size:12px}}@media (min-width:960px){.position{display:none}}.position{position:absolute;right:12px;bottom:12px;z-index:1;background:rgba(0,0,0,.4);border-radius:17px 17px 17px 17px;padding:4px 8px;font-size:12px;color:#fff;line-height:14px}.img-item{width:68px;height:68px;object-fit:cover;border-radius:4px;box-sizing:border-box}@media (max-width:960px){.img-item{width:100%;height:75vw;scroll-snap-align:start;border-radius:0}.lonely{height:80vw;object-fit:contain;background-color:#f9f9f9}}@media (min-width:960px){.img-item-selected{padding:3px;border:1px solid #212b36}}.btn{margin-top:auto;text-align:center;padding-top:16px;margin-bottom:-8px}@media (max-width:960px){.btn{position:fixed;bottom:0;left:0;width:100%;box-sizing:border-box;padding:16px;box-shadow:0 2px 10px 1px rgb(0 0 0 / 10%);background-color:#fff;margin-bottom:0}.title{font-size:14px;line-height:16px}}.mask{position:fixed;top:0;left:0;bottom:0;right:0;z-index:1100;background-color:rgba(0,0,0,.7)}.close-icon{position:absolute;top:8px;right:8px;display:flex;justify-content:center;align-items:center;color:#0a1533;width:36px;height:36px;background-color:transparent;cursor:pointer;z-index:1}html[dir=rtl] .close-icon{left:8px;right:unset}@media (max-width:960px){.close-icon{position:fixed;top:80px;right:12px;color:#fff;border-radius:50%;background-color:rgba(0,0,0,.2)}}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}`,
t([ht(".list")], $e.prototype, "listEl", void 0), t([dt()], $e.prototype, "data", void 0), t([dt()], $e.prototype, "selectedOptions", void 0), t([dt({
type: Array
})], $e.prototype, "options", void 0), t([dt()], $e.prototype, "close", void 0), t([dt()], $e.prototype, "numDropDown", void 0), t([dt({
attribute: "btn-bg-color"
})], $e.prototype, "btnBgColor", void 0), t([dt({
attribute: "btn-text-color"
})], $e.prototype, "btnTextColor", void 0), t([dt({
attribute: "top"
})], $e.prototype, "currentScrollTop", void 0), t([ct()], $e.prototype, "imgList", void 0), t([ct()], $e.prototype, "currentImgIndex", void 0), t([ct()], $e.prototype, "currentPosition", void 0), t([ct()], $e.prototype,
"loading", void 0), t([ct()], $e.prototype, "priceScope", void 0), window.customElements.get("bundle-product-modal") || window.customElements.define("bundle-product-modal", $e);
class Se extends st {
updated() {
var t;
const e = window.innerWidth < 960,
i = !document.querySelector('div[data-section-type*="//apps/appbundle/blocks/bundle-combination/"] bundle-product-list'),
o = this.shadowRoot.querySelector(".wrap"),
n = this.shadowRoot.querySelector(".skeleton");
i && !e && (o.style.padding = "40px 0", n.style.padding = "40px 8px 12px", null === (t = this.shadowRoot.querySelector(".skeleton br")) || void 0 === t || t.remove()), i && e && (o.style.padding = "16px 0"), i || e || (o
.style.padding = "40px 0"), !i && e && (o.style.padding = "16px 0")
}
render() {
return R`<div class="wrap"><div class="skeleton">The current item does not participate in the bundling. Switch the participating items to check the design.<br>(This prompt will not be displayed on the client-side)</div></div>`
}
}
Se.styles =
l`.wrap{max-width:var(--layout-width,1000px);margin:0 auto}.skeleton{position:relative;border-radius:4px;border:2px dashed #000;color:#000;line-height:20px!important;text-align:center;font-size:14px;padding:24px 16px;font-weight:500}@media (max-width:960px){.skeleton{font-size:12px;padding:40px 8px 12px!important}.skeleton::before{font-size:12px}}.skeleton::before{content:"Bundle sales";position:absolute;top:-2px;left:-2px;padding:8px 12px;font-size:14px;background-color:#000;color:#fff;border-radius:4px 0 4px 0;text-align:center;font-weight:500}`,
window.customElements.get("bundle-skeleton") || window.customElements.define("bundle-skeleton", Se);
class Ce extends st {
constructor() {
super(...arguments), this.text = "", this.successHtml =
R`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M12 24C5.373 24 0 18.628 0 12S5.373 0 12 0s12 5.373 12 12-5.373 12-12 12zm0-21.685c-5.68 0-9.686 4.006-9.686 9.686S6.32 21.686 12 21.686s9.686-4.005 9.686-9.685c0-5.68-4.006-9.686-9.686-9.686zm-1.11 13.721l-.207.207-.04-.04a.833.833 0 0 1-.357.084.838.838 0 0 1-.482-.168l-.02.02-.103-.103-.002-.001-3.532-3.533 1.212-1.212 2.927 2.927 6.458-6.46 1.213 1.213-7.064 7.065-.002.001z" fill="#EE7C30"/></svg>`
}
firstUpdated() {
setTimeout((() => {
const t = document.querySelector("bundle-toast");
null == t || t.remove()
}), 3e3)
}
render() {
return R`<div class="toast">${this.text?"":R`<div class="icon">${this.successHtml}</div>`} ${this.text||'Added'}</div>`
}
}
Ce.styles =
l`.toast{position:fixed;z-index:1250;left:50%;transform:translateX(-50%);display:flex;justify-content:center;align-items:center;padding:12px 120px;background-color:rgba(0,0,0,.8);font-size:16px;color:#fff;animation:fade_pc 3s;animation-fill-mode:forwards;border-radius:4px;text-align:center}.icon{display:flex;align-items:center;margin-right:12px}@media (max-width:960px){.toast{padding:12px 28px;animation:fade_mobile 3s;animation-fill-mode:forwards}}@keyframes fade_pc{0%{opacity:.1;top:20px}20%{opacity:1;top:100px}80%{opacity:1;top:100px}100%{opacity:0;top:20px}}@keyframes fade_mobile{0%{opacity:.1;top:0}20%{opacity:1;top:50px}80%{opacity:1;top:50px}100%{opacity:0;top:0}}`,
t([dt()], Ce.prototype, "text", void 0), window.customElements.get("bundle-toast") || window.customElements.define("bundle-toast", Ce);
class ke extends st {
constructor() {
super(...arguments), this.overWidth = !1, this.titleText = "", this.savePrice = "", this.salePrice = "", this.switchable = !1, this.atcBtnStyle = 1, this.titleColor = "", this.btnBgColor = "", this.btnTextColor = "", this
.bundleInfo = {}, this.styleType = "sutra", this.isQuickShop = !1, this.selected_all = !1, this.select_one = !1, this.selectedInfo = [], this.loading = !1, this.success = !1, this.styleTypeClass = ""
}
renderImgs(t, e) {
var i;
const o = this.overWidth;
return null === (i = this.selectedInfo) || void 0 === i ? void 0 : i.slice(t, e).map(((e, i) => {
var n, s, r;
const l = null === (n = e.variants) || void 0 === n ? void 0 : n.find((t => t.id === e.selected_id)),
a = (null === (s = null == l ? void 0 : l.image) || void 0 === s ? void 0 : s.src) || (null === (r = e.image) || void 0 === r ? void 0 : r.src);
return R`<div class="img-item">${0!==i||3===t?R`<svg style="${o?"":"padding: 0 12px;"}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none"><path d="M18.573 8.571h-7.145V1.428a1.427 1.427 0 1 0-2.856 0V8.57H1.428a1.428 1.428 0 0 0 0 2.856h7.144v7.144a1.428 1.428 0 0 0 2.856 0v-7.145h7.144a1.428 1.428 0 0 0 0-2.855z" fill="#C5C5C5"/></svg>`:""}<bundle-product-img class="sutra ${o?"":"w-full"}" ?is-select="${e.is_selected}" .isQuickShop="${this.isQuickShop}" .count="${e.count}" .href="${e.url}" .src="${a}" @click="${()=>this.clickProduct(e)}"></bundle-product-img></div>`
}))
}
clickProduct(t) {
this.dispatchEvent(new CustomEvent("clickProduct", {
detail: t
}))
}
clickSelect() {
this.dispatchEvent(new CustomEvent("clickSelect"))
}
render() {
const t = this.overWidth,
e =
R`<bundle-add-cart class="sutra ${t?"":"w-full"}" styleTypeClass="${this.styleTypeClass}" layer_type="${this.bundleInfo.layer_type}" total_price="${this.bundleInfo.totalPrice}" value="${this.bundleInfo.value}" value_type="${this.bundleInfo.value_type}" .atcBtnStyle="${this.atcBtnStyle}" .salePrice="${this.salePrice}" .savePrice="${this.savePrice}" .selectedInfo="${this.selectedInfo}" .selected_all="${this.selected_all}" .success="${this.success}" .loading="${this.loading}" .btnTextColor="${this.btnTextColor}" .btnBgColor="${this.btnBgColor}" .select_one="${this.select_one}"></bundle-add-cart>`;
return R`<div class="container"><div class="content-list"><div class="img-list" style="${t?"":"justify-content:center; flex-wrap: wrap"}"><div class="first-list">${this.renderImgs(0,3)}</div><div class="second-list">${this.renderImgs(3)}</div></div>${t?e:""}</div><div class="select-list">${this.selectedInfo.map(((e,i)=>R`<div class="content"><div class="checkbox-wrap ${t?"":"checkbox-top"}"><bundle-check-box class="${this.styleTypeClass}" styleTypeClass="${this.styleTypeClass}" .data="${e}" .index="${i}" ?this-one="${e.thisOne}"></bundle-check-box></div><div class="select-wrap"><bundle-product-select class="sutra ${t?"":"w-full"}" ?this-one="${e.thisOne}" .data="${e}" .index="${i}" @click="${this.clickSelect}"></bundle-product-select></div></div>`))}</div>${t?"":e}</div>`
}
}
ke.styles =
l`.select-list{width:100%}.container{display:flex;flex-wrap:wrap}.checkbox-wrap{flex-shrink:0}.select-wrap{flex:1;width:0}.content{position:relative;display:flex;flex-wrap:wrap;align-items:center;margin-bottom:16px;flex-wrap:wrap;font-size:14px}.content-list{display:flex;margin-bottom:24px}.content-list svg{width:20px;height:20px;padding:0 16px}.img-list{display:flex}.img-item{display:flex;align-items:center;margin-top:32px}.grow-1{flex-grow:1;text-align:center}.first-list,.second-list{display:flex}.checkbox-top{align-self:flex-start}@media (max-width:960px){.checkbox-wrap{align-self:flex-start}.content-list svg{width:12px;height:12px;padding:0 8px!important}.bundle_money{color:var(--color_price)}.origin_money{font-size:14px}.img-item{margin-top:16px}.first-list{width:100%;justify-content:center}.second-list{width:100%;margin-left:50px}}`,
t([dt({
type: Boolean
})], ke.prototype, "overWidth", void 0), t([dt({
type: String,
attribute: "title-text"
})], ke.prototype, "titleText", void 0), t([dt({
attribute: "savePrice"
})], ke.prototype, "savePrice", void 0), t([dt({
attribute: "salePrice"
})], ke.prototype, "salePrice", void 0), t([dt()], ke.prototype, "switchable", void 0), t([dt({
attribute: "atcBtnStyle"
})], ke.prototype, "atcBtnStyle", void 0), t([dt({
type: String,
attribute: "title-color"
})], ke.prototype, "titleColor", void 0), t([dt({
type: String,
attribute: "btn-bg-color"
})], ke.prototype, "btnBgColor", void 0), t([dt({
type: String,
attribute: "btn-text-color"
})], ke.prototype, "btnTextColor", void 0), t([dt({
type: Object,
attribute: "bundleInfo"
})], ke.prototype, "bundleInfo", void 0), t([dt({
type: String,
attribute: "style-type"
})], ke.prototype, "styleType", void 0), t([dt({
type: Boolean
})], ke.prototype, "isQuickShop", void 0), t([dt({
type: Boolean,
attribute: "selected_all"
})], ke.prototype, "selected_all", void 0), t([dt({
type: Boolean,
attribute: "select_one"
})], ke.prototype, "select_one", void 0), t([dt({
type: Object,
attribute: "selectedInfo",
reflect: !0
})], ke.prototype, "selectedInfo", void 0), t([dt({
type: Boolean,
attribute: "loading"
})], ke.prototype, "loading", void 0), t([dt({
type: Boolean,
attribute: "success"
})], ke.prototype, "success", void 0), t([dt()], ke.prototype, "styleTypeClass", void 0), window.customElements.get("bundle-sutra") || window.customElements.define("bundle-sutra", ke);
class Ee extends st {
constructor() {
super(...arguments), this.overWidth = !1, this.titleText = "", this.salePrice = "", this.savePrice = "", this.switchable = !1, this.atcBtnStyle = 1, this.titleColor = "", this.btnBgColor = "", this.btnTextColor = "", this
.bundleInfo = {}, this.styleType = "sutra", this.isQuickShop = !1, this.selected_all = !1, this.select_one = !1, this.selectedInfo = [], this.loading = !1, this.success = !1, this.styleTypeClass = "", this.vertical = !1,
this.scrollTimer = null, this.isShowArrow = !1, this.isArSa = "ar-SA" === document.documentElement.lang
}
clickProduct(t) {
this.dispatchEvent(new CustomEvent("clickProduct", {
detail: t
}))
}
clickSelect() {
this.dispatchEvent(new CustomEvent("clickSelect"))
}
shiftMove(t) {
if (this.scrollContainer) {
let e = this.scrollContainer.scrollLeft;
if (t) e -= 230, this.isArSa || (e = e < 0 ? 0 : e);
else {
const t = this.scrollContainer.offsetWidth,
i = this.scrollContainer.scrollWidth - t;
e += 230, e = e > i ? i : e
}
this.scrollContainer.scrollTo ? this.scrollContainer.scrollTo({
left: e,
behavior: "smooth"
}) : this.scrollContainer.scrollLeft = e
}
}
shiftLeft() {
this.shiftMove(!0)
}
shiftRight() {
this.shiftMove(!1)
}
showArrow() {
this.isShowArrow = !0
}
hideArrow() {
this.isShowArrow = !1
}
updated() {
if (window.innerWidth < 960) return;
const {
isInProductInfo: t
} = qt(!1);
t ? this.fashionContainer.classList.add("fashion--in") : this.fashionContainer.classList.remove("fashion--in")
}
render() {
var t;
const e = this.styleTypeClass === Vt.FASHION_VERTICAL;
let i = !1;
return this.scrollContainer && (i = this.scrollContainer.scrollWidth > this.scrollContainer.offsetWidth),
R`<div class="fashion-container ${this.styleTypeClass}"><div class="container" @mouseenter="${this.showArrow}" @mouseleave="${this.hideArrow}"><div class="container-scroll"><div class="container-scroll-inner">${null===(t=this.selectedInfo)||void 0===t?void 0:t.map(((t,e)=>{var i,o,n;const s=null===(i=t.variants)||void 0===i?void 0:i.find((e=>e.id===t.selected_id)),r=(null===(o=null==s?void 0:s.image)||void 0===o?void 0:o.src)||(null===(n=t.image)||void 0===n?void 0:n.src);return R`<div class="container-img"><div class="img-checkbox"><bundle-check-box class="${this.styleTypeClass} ${this.overWidth?"":"fashion-full"}" styleTypeClass="${this.styleTypeClass}" .data="${t}" .index="${e}" ?this-one="${t.thisOne}"></bundle-check-box></div><div class="img-wrap"><bundle-product-img class="${this.styleTypeClass} ${this.overWidth?"":"fashion-full"}" styleTypeClass="${this.styleTypeClass}" ?is-select="${t.is_selected}" .isQuickShop="${this.isQuickShop}" .count="${t.count}" .href="${t.url}" .src="${r}" @click="${()=>this.clickProduct(t)}"></bundle-product-img></div><div class="select-specification"><bundle-product-select class="${this.styleTypeClass} ${this.overWidth?"":"fashion-full"}" styleTypeClass="${this.styleTypeClass}" ?this-one="${t.thisOne}" .data="${t}" .index="${e}" @click="${this.clickSelect}"></bundle-product-select></div></div>`}))}</div></div>${e?"":R`<div class="container-arrow-left container-arrow flex-center ${this.isShowArrow&&i?"container-arrow--show":""}" @mouseup="${this.shiftLeft}">${Jt}</div>`} ${e?"":R`<div class="container-arrow-right container-arrow flex-center ${this.isShowArrow&&i?"container-arrow--show":""}" @mouseup="${this.shiftRight}">${Yt}</div>`}</div><div class="interval"></div><div class="totalinfo">${R`<bundle-add-cart class="${this.styleTypeClass} ${this.overWidth?"":"fashion-full"}" styleTypeClass="${this.styleTypeClass}" total_price="${this.bundleInfo.totalPrice}" layer_type="${this.bundleInfo.layer_type}" value="${this.bundleInfo.value}" value_type="${this.bundleInfo.value_type}" .atcBtnStyle="${this.atcBtnStyle}" .salePrice="${this.salePrice}" .savePrice="${this.savePrice}" .selectedInfo="${this.selectedInfo}" .selected_all="${this.selected_all}" .success="${this.success}" .loading="${this.loading}" .btnTextColor="${this.btnTextColor}" .btnBgColor="${this.btnBgColor}" .select_one="${this.select_one}"></bundle-add-cart>`}</div></div>`
}
}
Ee.styles = [l`.fashion-container{overflow:hidden;display:flex;border:1px solid #e6e6e6}.flex-center{display:flex;align-items:center;justify-content:center}`,
l`.fashionHorizontal.fashion-container{flex-direction:row;padding:20px;display:inline-flex;max-width:100%;box-sizing:border-box}.fashionHorizontal .container{flex:1;min-width:0;position:relative}.fashionHorizontal .container-scroll{overflow:overlay;width:100%;height:100%}.fashionHorizontal .container-scroll::-webkit-scrollbar{width:0;height:0}.fashionHorizontal .container-scroll-inner{display:flex;height:100%}.fashionHorizontal .container-img{position:relative;width:210px;display:flex;flex-direction:column;flex-shrink:0}.fashionHorizontal .container-img:not(:first-child){margin-left:20px}.fashionHorizontal .img-checkbox{position:absolute;top:10px;right:10px;z-index:10}.fashionHorizontal .container-arrow{position:absolute;width:40px;height:40px;top:50%;border-radius:50%;border:1px solid #e6e6e6;transform:translateY(-50%);background-color:#fff;cursor:pointer;opacity:0;transition:opacity .3s cubic-bezier(.455,.03,.515,.955)}.fashionHorizontal .container-arrow--show{opacity:1}.fashionHorizontal .container-arrow-left{left:10px}.fashionHorizontal .container-arrow-right{right:10px}.fashionHorizontal .interval{border-left:1px solid #e6e6e6;margin:0 20px;flex-shrink:0}.fashionHorizontal .select-specification{margin-top:12px}.fashionHorizontal .totalinfo{display:flex;align-items:center;padding:0 30px;width:220px;flex-shrink:0;box-sizing:border-box}.fashion--in.fashionHorizontal.fashion-container{flex-direction:column;padding:16px;display:flex}.fashion--in.fashionHorizontal .container{width:auto}.fashion--in.fashionHorizontal .interval{border-top:1px solid #e6e6e6;margin:20px 0;flex-shrink:0}.fashion--in.fashionHorizontal .container-img{width:calc((100% - 32px)/ 3)}.fashion--in.fashionHorizontal .container-img:not(:first-child){margin-left:16px}.fashion--in.fashionHorizontal .select-specification{margin-top:10px}.fashion--in.fashionHorizontal .totalinfo{width:auto;padding:0}@media (max-width:960px){.fashionHorizontal.fashion-container{flex-direction:column;padding:16px;display:flex}.fashionHorizontal .container{width:auto}.fashionHorizontal .interval{border-top:1px solid #e6e6e6;margin:20px 0;flex-shrink:0}.fashionHorizontal .container-img{width:120px}.fashion--in.fashionHorizontal .container-img{width:120px}.fashionHorizontal .container-img:not(:first-child){margin-left:16px}.fashionHorizontal .select-specification{margin-top:10px}.fashionHorizontal .totalinfo{width:auto;padding:0}}`,
l`.fashionVertical.fashion-container{flex-direction:column;padding:10px 0}.fashionVertical .container-img{display:flex;padding:20px}.fashionVertical .img-checkbox{flex-shrink:0;display:flex;align-items:center}.fashionVertical .select-specification{flex:1;width:0}.fashionVertical .interval{border-top:1px solid #e6e6e6;margin:10px 20px;flex-shrink:0}.fashionVertical .totalinfo{display:flex;flex-direction:column;padding:20px}.fashion--in.fashionVertical .container-img{padding:20px 16px}.fashion--in.fashionVertical .interval{margin:0 16px}.fashion--in.fashionVertical .totalinfo{padding:20px 16px}@media (max-width:960px){.fashionVertical .container-img{padding:20px 16px}.fashionVertical .interval{margin:0 16px}.fashionVertical .totalinfo{padding:20px 16px}}`
], t([dt({
type: Boolean
})], Ee.prototype, "overWidth", void 0), t([dt({
type: String,
attribute: "title-text"
})], Ee.prototype, "titleText", void 0), t([dt({
attribute: "salePrice"
})], Ee.prototype, "salePrice", void 0), t([dt({
attribute: "savePrice"
})], Ee.prototype, "savePrice", void 0), t([dt()], Ee.prototype, "switchable", void 0), t([dt({
attribute: "atcBtnStyle"
})], Ee.prototype, "atcBtnStyle", void 0), t([dt({
type: String,
attribute: "title-color"
})], Ee.prototype, "titleColor", void 0), t([dt({
type: String,
attribute: "btn-bg-color"
})], Ee.prototype, "btnBgColor", void 0), t([dt({
type: String,
attribute: "btn-text-color"
})], Ee.prototype, "btnTextColor", void 0), t([dt({
type: Object,
attribute: "bundleInfo"
})], Ee.prototype, "bundleInfo", void 0), t([dt({
type: String,
attribute: "style-type"
})], Ee.prototype, "styleType", void 0), t([dt({
type: Boolean
})], Ee.prototype, "isQuickShop", void 0), t([dt({
type: Boolean,
attribute: "selected_all"
})], Ee.prototype, "selected_all", void 0), t([dt({
type: Boolean,
attribute: "select_one"
})], Ee.prototype, "select_one", void 0), t([dt({
type: Object,
attribute: "selectedInfo",
reflect: !0
})], Ee.prototype, "selectedInfo", void 0), t([dt({
type: Boolean,
attribute: "loading"
})], Ee.prototype, "loading", void 0), t([dt({
type: Boolean,
attribute: "success"
})], Ee.prototype, "success", void 0), t([dt()], Ee.prototype, "styleTypeClass", void 0), t([ht(".fashion-container")], Ee.prototype, "fashionContainer", void 0), t([ht(".container-scroll")], Ee.prototype, "scrollContainer",
void 0), t([ct()], Ee.prototype, "vertical", void 0), t([ct()], Ee.prototype, "scrollTimer", void 0), t([ct()], Ee.prototype, "isShowArrow", void 0), t([ct()], Ee.prototype, "isArSa", void 0), window.customElements.get(
"bundle-fashion") || window.customElements.define("bundle-fashion", Ee);
class Te extends st {
constructor() {
super(...arguments), this.layer_type = Ft, this.value = "", this.value_type = "", this.total_price = "", this.atcBtnStyle = 1, this.selectedInfo = [], this.selected_all = !1, this.salePrice = "", this.savePrice = "", this
.loading = !1, this.success = !1, this.select_one = !1, this.btnTextColor = "", this.btnBgColor = "", this.styleTypeClass = ""
}
updated() {
if (window.innerWidth < 960) return;
const {
isInProductInfo: t
} = qt();
t && this.addCartPanel.classList.add("addCartPanel--in")
}
addToCart() {
this.dispatchEvent(new CustomEvent("addToCart", {
bubbles: !0,
composed: !0
}))
}
buySelectedProduct() {
this.dispatchEvent(new CustomEvent("buySelectedProduct", {
bubbles: !0,
composed: !0
}))
}
render() {
const t = this.layer_type === Wt && 0 !== Number(this.savePrice),
e = !t && this.selected_all,
i = t || e ? this.total_price : this.salePrice,
o = this.value_type === Mt && !t && Number(this.value) >= Number(this.salePrice),
n = !t && !this.selected_all || "none" === this.value_type || o ? "display: none" : "",
s = this.selectedInfo.every((t => !t.is_selected));
return R`<div class="addCartPanel ${this.styleTypeClass}">${this.styleTypeClass&&0!==Number(this.savePrice)&&(t||this.selected_all)?R`<div class="discountAmount"><span>save</span> <span class="money notranslate">${` ${Nt(this.savePrice)}`}</span></div>`:""}<div class="price"><span class="price-title">Total price:</span> <span class="bundle_money money notranslate">${Nt(i)}</span> <span class="origin_money money notranslate money_delete" style="${n}">${Nt(this.salePrice)}</span></div><div class="add-cart-btn"><bundle-button class="${this.styleTypeClass}" text-color="${this.btnTextColor}" bg-color="${this.btnBgColor}" ?disabled="${s}" ?loading="${this.loading}" ?success="${this.success}" @click="${2===this.atcBtnStyle?this.buySelectedProduct:this.addToCart}">${2===this.atcBtnStyle?'Buy Now':this.select_one?'Add to Cart':'Add selected to cart'}</bundle-button></div></div>`
}
}
Te.styles = [
l`.addCartPanel{flex-shrink:0}.discountAmount{display:inline-block;border:1px solid var(--color-text-critical,#db393a);color:var(--color-text-critical,#db393a);font-size:14px;font-weight:400;padding:4px 8px}.price-title{white-space:nowrap}.bundle_money{color:var(--color_price,#db393a);font-weight:500;white-space:nowrap}.origin_money{color:var(--color_price);font-weight:500;font-size:16px;white-space:nowrap}.money_delete{text-decoration:line-through;color:var(--color_origin_price)}`,
l`:host(.sutra){width:100%}:host(.sutra) .addCartPanel{margin-top:56px;text-align:center;margin-left:60px;white-space:nowrap}:host(.sutra) .price{display:flex;justify-content:center;align-items:center;margin-bottom:16px;line-height:20px;font-size:16px}:host(.sutra) .price-title{margin-right:8px}:host(.sutra) .bundle_money{margin-right:8px}:host(.sutra) .origin_money{margin-right:8px}:host(.w-full) .addCartPanel{width:100%;text-align:center;margin-top:8px;margin-left:0}@media (max-width:960px){:host(.sutra) .addCartPanel{width:100%;text-align:center;margin-top:8px;margin-left:0}}`,
l`:host(.fashionHorizontal){width:100%}.fashionHorizontal .discountAmount{margin-bottom:20px}.fashionHorizontal .price{margin-bottom:40px;display:flex;flex-wrap:wrap;align-items:baseline}.fashionHorizontal .price-title{width:100%;margin-bottom:8px;color:val(--color-body-text,#292929);font-family:Jost;font-size:18px;font-style:normal;font-weight:500;line-height:20px;text-transform:capitalize}.fashionHorizontal .bundle_money{margin-right:10px;font-size:24px}.fashionHorizontal .origin_money{font-weight:400}.addCartPanel--in.fashionHorizontal .price-title{width:auto}.addCartPanel--in.fashionHorizontal.addCartPanel{display:flex;flex-direction:column;align-items:flex-end}.addCartPanel--in.fashionHorizontal .price{text-align:right;margin-bottom:30px;justify-content:flex-end}.addCartPanel--in.fashionHorizontal .bundle_money{margin:0 10px}.addCartPanel--in.fashionHorizontal .add-cart-btn{width:auto}@media (max-width:960px){.addCartPanel--in.fashionHorizontal.addCartPanel,.fashionHorizontal.addCartPanel{display:flex;flex-direction:column;align-items:center}.fashionHorizontal .price-title{width:auto}.fashionHorizontal .price{margin-bottom:30px}.fashionHorizontal .bundle_money{margin:0 10px}.addCartPanel--in.fashionHorizontal .add-cart-btn,.fashionHorizontal .add-cart-btn{width:100%}}`,
l`.fashionVertical{text-align:right;white-space:nowrap}.fashionVertical .discountAmount{margin-bottom:10px}.fashionVertical .price{margin-bottom:30px;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:baseline}.fashionVertical .price-title{margin-bottom:8px;color:val(--color-body-text,#292929);font-family:Jost;font-size:18px;font-style:normal;font-weight:500;line-height:20px;text-transform:capitalize}.fashionVertical .bundle_money{margin:0 10px;font-size:22px}.fashionVertical .origin_money{font-weight:400}.fashionVertical .add-cart-btn{width:auto;display:inline-block;margin-left:auto}:host(.fashion-full) .fashionVertical .add-cart-btn{width:auto}@media (max-width:960px){.fashionVertical .add-cart-btn,:host(.fashion-full) .fashionVertical .add-cart-btn{width:100%}}`
], t([dt()], Te.prototype, "layer_type", void 0), t([dt()], Te.prototype, "value", void 0), t([dt()], Te.prototype, "value_type", void 0), t([dt()], Te.prototype, "total_price", void 0), t([dt({
attribute: "atcBtnStyle"
})], Te.prototype, "atcBtnStyle", void 0), t([dt({
type: Object,
attribute: "selectedInfo",
reflect: !0
})], Te.prototype, "selectedInfo", void 0), t([dt({
type: Boolean,
attribute: "selected_all"
})], Te.prototype, "selected_all", void 0), t([dt({
attribute: "salePrice"
})], Te.prototype, "salePrice", void 0), t([dt({
attribute: "savePrice"
})], Te.prototype, "savePrice", void 0), t([dt({
type: Boolean,
attribute: "loading"
})], Te.prototype, "loading", void 0), t([dt({
type: Boolean,
attribute: "success"
})], Te.prototype, "success", void 0), t([dt({
type: Boolean,
attribute: "select_one"
})], Te.prototype, "select_one", void 0), t([dt({
attribute: "btnTextColor"
})], Te.prototype, "btnTextColor", void 0), t([dt({
attribute: "btnBgColor"
})], Te.prototype, "btnBgColor", void 0), t([dt()], Te.prototype, "styleTypeClass", void 0), t([ht(".addCartPanel")], Te.prototype, "addCartPanel", void 0), window.customElements.get("bundle-add-cart") || window.customElements
.define("bundle-add-cart", Te);
class Pe extends st {
constructor() {
super(...arguments), this.data = {}, this.styleTypeClass = "", this.thisOne = !1, this.index = 0
}
onChange() {
this.dispatchEvent(new CustomEvent("changeCheckBox", {
detail: {
index: this.index
},
bubbles: !0,
composed: !0
}))
}
requestUpdate() {
super.requestUpdate()
}
render() {
return R`<div class="content_flex"><input style="display:none" type="checkbox" class="bundle-checked" id="bundle-checked" .checked="${this.data.is_selected}" @click="${this.onChange}"> <label for="bundle-checked" class="check-label"><div class="close-icon">${this.data.is_selected?this.styleTypeClass?Zt:Kt:Xt}</div></label></div>`
}
}
Pe.styles =
l`.content_flex{display:flex;align-items:center;position:relative}.check-label{display:flex;align-items:center}.close-icon{display:flex;cursor:pointer}:host(.fashionHorizontal) .close-icon svg,:host(.fashionVertical) .close-icon svg{width:24px;height:24px}:host(.fashion-full.fashionHorizontal) .close-icon svg,:host(.fashion-full.fashionVertical) .close-icon svg{width:16px;height:16px}@media (max-width:960px){:host(.fashionHorizontal) .close-icon svg,:host(.fashionVertical) .close-icon svg{width:16px;height:16px}}`,
t([dt()], Pe.prototype, "data", void 0), t([dt()], Pe.prototype, "styleTypeClass", void 0), t([dt({
type: Boolean,
attribute: "thisOne"
})], Pe.prototype, "thisOne", void 0), t([dt({
type: Number,
attribute: "index"
})], Pe.prototype, "index", void 0), window.customElements.get("bundle-check-box") || window.customElements.define("bundle-check-box", Pe), e(void 0, void 0, void 0, (function*() {
var t, i;
let o = [];
const n = t => e(void 0, void 0, void 0, (function*() {
if (!t) return [];
const {
data: e
} = yield Bt.get(
`/api/product/list?${function(t){var e=[],i=function(t,i){i=null==(i="function"==typeof i?i():i)?"":i,e[e.length]=encodeURIComponent(t)+"="+encodeURIComponent(i)};return function t(o,n){var s,r,l;if(o)if(Array.isArray(n))for(s=0,r=n.length;s<r;s++)t(o+"["+("object"==yt(n[s])&&n[s]?s:"")+"]",n[s]);else if("[object Object]"===Object.prototype.toString.call(n))for(l in n)t(o+"["+l+"]",n[l]);else i(o,n);else if(Array.isArray(n))for(s=0,r=n.length;s<r;s++)i(n[s].name,n[s].value);else for(l in n)t(l,n[l]);return e}("",t).join("&")}({ids:t,limit:t.length,page:1})}`
), i = e.list;
return i.forEach((t => {
window.C_SETTINGS.store_trial && (t.variant || []).forEach((t => {
(t.wholesale_price || []).forEach(((e, i) => {
const o = t.wholesale_price[i + 1];
o && (e.max_quantity = o.min_quantity - 1)
}))
}))
})), i
})),
s = t => e(void 0, void 0, void 0, (function*() {
if (d && (d.style.cursor = "wait", d.pid = t, d.style.pointerEvents = "none", d.switchable = p.bundle_sales.length > 1), 0 === p.bundle_sales.length) return void r(d);
const e = p.bundle_sales[a];
e.entitled_products.forEach((t => Object.assign(t, o.find((e => e.id === t.id)))));
const i = e.entitled_products.find((e => e.id === t)),
n = e.entitled_products.findIndex((e => e.id === t));
e.entitled_products.splice(n, 1), e.entitled_products.unshift(i), e.isRequested = !0, d && (d.bundleInfo = e, d.discount_ids = p.bundle_sales.map((t => t.id)).join(","), d.bundleInfo.entitled_products.filter((t =>
t.price)).forEach((e => {
e.is_selected = !0, e.selected_id = e.variants.filter((t => t.available))[0].id, e.id === t && (e.thisOne = !0)
})), d.style.cursor = "", d.style.pointerEvents = ""),
function(t, e) {
var i = document.querySelector(t),
o = function() {
e()
};
i && !i.getAttribute("imprsd") ? i.addEventListener("impress", o) : o()
}("bundle-product-list", (() => {
var e, i;
const o = p.bundle_sales[a],
n = {
discount_id: o.id,
value_type: o.value_type,
popups_setting: o.popups_setting,
global_show_text: o.global_show_text,
target_selection: o.target_selection,
page: null === (e = window.SHOP_PARAMS) || void 0 === e ? void 0 : e.template_type,
product_id: t,
plugin_timestamp: Date.now(),
show_related_items: p.bundle_sales.length > 1,
block: !0,
discount_ids: p.bundle_sales.map((t => t.id)).join(","),
operation_type: o.operation_type,
entitled_product_ids: o.entitled_product_ids
};
window.sa && (null === (i = window.sa) || void 0 === i || i.track("plugin_bundle_combination_pv", n))
}))
})),
r = t => {
var e;
if (!document.querySelector("bundle-skeleton") && window.self !== window.top) {
const i = document.createElement("bundle-skeleton");
null === (e = null == t ? void 0 : t.parentElement) || void 0 === e || e.insertBefore(i, t)
}
};
let l = window.innerWidth;
window.addEventListener("resize", Ht((() => {
window.innerWidth !== l && window.top !== window.self && window.location.reload()
}), 500));
let a = 0;
const d = document.querySelector('[data-section-id="1539149753700"] .bundle-main'),
c = d.getAttribute("pid") || "",
p = yield Bt.get(`/api/bundle-sales?product_id=${c}`);
yield e(void 0, void 0, void 0, (function*() {
const t = yield Bt.get("/api/bundle-sales/setting?type=discount_code");
d && (d.atcBtnStyle = t.style || 1)
})), yield e(void 0, void 0, void 0, (function*() {
const t = p.bundle_sales.map((t => t.entitled_product_ids)).flat();
o = yield n(t);
const e = [];
p.bundle_sales.forEach((t => {
t.entitled_product_ids.every((t => null == o ? void 0 : o.find((e => e.id === t && e.available)))) && e.push(t)
})), p.bundle_sales = e
})), yield s(c);
const {
isInProductInfo: h
} = qt();
h || null === (i = null === (t = document.querySelector(".bundle-combination-container")) || void 0 === t ? void 0 : t.classList) || void 0 === i || i.add("tw-container", "container", "container-gap", "page-width"),
null == d || d.addEventListener("bundle-combination-switch", Ht((() => e(void 0, void 0, void 0, (function*() {
var t;
if (a = a === p.bundle_sales.length - 1 ? 0 : a + 1, p.bundle_sales[a].isRequested) return void(d.bundleInfo = p.bundle_sales[a]);
yield s(c);
const e = p.bundle_sales[a];
window.sa && (null === (t = window.sa) || void 0 === t || t.track("plugin_bundle_combination_related_item_click", {
discount_ids: p.bundle_sales.map((t => t.id)),
product_id: c,
block: !0,
discount_id: e.id,
operation_type: e.operation_type,
entitled_product_ids: e.entitled_product_ids.join(",")
}))
}))), 300))
}))
}));
} catch (err) {
console.log('bundle sales error' + err)
}
})()
} catch (e) {
console.error(e)
}
</script>
<div class="app-bundle-pricing-detail"></div>
<div class="product-info-custom-labels flex">
<div class="text-xs leading-1.3 color-custom-label-text product-info-custom-label bg-custom-label rounded-sm">Please allow a processing time of 3-5 business days before orders ship from our warehouse.</div>
</div>
<script async="" crossorigin="anonymous" src="//static.staticdj.com/cuttlefish/v1/spz.min.js"></script>
<style>
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .plugin-strengthen-trust-container {
max-width: var(--general-layout-width, var(--layout-width, var(--page-width, 1140px)));
padding: 0 var(--general-layout-spacing, var(--page-spacing, 40px));
margin: 0 auto;
}
.plugin-strengthen-trust-1539149753700-wrap {
padding: 8px 0;
word-break: break-word;
}
.scale-125 {
transform: scale(1.25);
}
.pl4 {
padding-left: 4px;
}
.pb-4 {
padding-bottom: 16px;
}
.opacity-1 {
opacity: 1;
}
.trust-big-title {
display: none;
padding-top: 40px;
font-size: 24px;
font-weight: 500;
color: var(--color-body-text, #292929);
font-family: var(--font-heading-family);
}
.store-open-trust-tips {
display: flex;
align-items: flex-start;
padding: 8px 12px;
border-radius: 4px 4px 0 0;
border: 1px dashed #ff7979;
background: #fff;
}
.store-open-trust-tips .tips-text {
flex: 16px;
margin-left: 4px;
color: #ff7979;
font-size: 14px;
font-weight: 500;
}
.plugin-strengthen-trust-1539149753700-wrap .trust-title-block {
display: flex;
padding: 16px 12px;
align-items: center;
background: rgba(49, 176, 121, 0.2);
font-size: 16px;
font-weight: 500;
border-radius: 4px 4px 0px 0px;
}
.plugin-strengthen-trust-1539149753700-wrap.trust-expanded .trust-title-block {
padding-left: 20px;
}
.plugin-strengthen-trust-1539149753700-wrap .trust-title {
flex: 1;
margin: 0 4px;
color: #31B079;
}
.plugin-strengthen-trust-1539149753700-wrap .trust-thumbnail-desc {
display: flex;
flex-wrap: wrap;
padding: 12px 12px 0 16px;
background: rgba(49, 176, 121, 0.05);
}
.trust-card-block section[expanded] .trust-thumbnail-desc {
display: none;
}
.trust-card-block section {
height: auto !important;
}
.trust-card-block section[expanded] .icon_arrow_trust {
transform: rotate(180deg);
}
.plugin-strengthen-trust-1539149753700-wrap .trust-card-block .icon_arrow_trust {
color: #31B079;
}
.plugin-strengthen-trust-1539149753700-wrap .trust-card-border {
border-radius: 0 0 4px 4px;
border: 1px solid rgba(49, 176, 121, 0.2);
}
.trust-thumbnail-desc-item {
width: 50%;
display: flex;
flex-direction: column;
padding: 0 0 12px 20px;
box-sizing: border-box;
}
.trust-thumbnail-desc-item:nth-child(2n) {
padding-left: 20px;
}
.trust-thumbnail-desc-title {
padding-top: 4px;
color: var(--color-body-text, #292929);
opacity: 0.85;
font-size: 14px;
font-weight: 400;
}
.trust-card-block .trust-thumbnail-img {
flex-shrink: 0;
}
.trust-card-block .trust-thumbnail-title {
padding-left: 4px;
}
.plugin-strengthen-trust-1539149753700-wrap .trust-open-card {
padding: 20px 20px 0;
background: rgba(49, 176, 121, 0.05);
}
.trust-card-desc-block {
padding-bottom: 20px;
box-sizing: border-box;
}
.trust-card-desc-title {
display: flex;
align-items: center;
color: var(--color-body-text, #292929);
font-size: 14px;
font-weight: 400;
}
.trust-card-desc-text {
padding: 4px 0;
font-size: 14px;
font-weight: 400;
color: var(--color-body-text, #292929);
opacity: 0.85;
}
.trust-card-desc-text ul {
padding-left: 20px;
margin: 0;
}
.trust-card-desc-text a {
color: #4D74ED;
text-decoration: underline;
}
.trust-card-desc-img {
padding: 8px 0 4px 8px;
border-radius: 3px;
background: #f6f6f6;
}
.icon-trust-block {
margin: 0 8px 4px 0;
}
.icon-trust-block-custom {
border-radius: 3px;
}
.trust-expanded .trust-title {
color: #292929;
}
.plugin-strengthen-trust-1539149753700-wrap .icon_security_trust {
color: #31B079;
}
.plugin-strengthen-trust-1539149753700-wrap .icon_title_trust {
color: #31B079;
}
.trust-expanded .icon_arrow_trust,
.trust-expanded .trust-thumbnail-desc {
display: none;
}
.plugin-strengthen-trust-1539149753700-wrap.trust-expanded .trust-card-desc-title {
color: #31B079;
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4 .trust-thumbnail-desc {
flex-wrap: nowrap;
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4 .more-than-4 .trust-thumbnail-desc {
flex-wrap: wrap;
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4 .more-than-4 .trust-thumbnail-desc .trust-thumbnail-desc-item,
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4 .more-than-4 .trust-card-desc-block {
width: 25%;
flex: none;
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4 .trust-open-card {
display: flex;
flex-wrap: wrap;
padding: 0;
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4 ljs-accordion>section[expanded]>:last-child {
display: flex !important;
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4 .trust-card-desc-block {
flex: 1;
padding: 12px;
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4 .store-open-trust-tips {
padding: 16px 0;
border: none;
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4.is-card-expanded .trust-open-card {
display: flex !important;
border: none;
background: none;
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4.is-card-expanded .trust-title-block {
display: none;
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4 .trust-big-title {
display: block;
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4.is-card-expanded .trust-card-desc-block {
margin-right: 16px;
background: rgba(49, 176, 121, 0.05);
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4.is-card-expanded .more-than-4 .trust-card-desc-block {
width: calc(25% - 18px);
flex: none;
margin-bottom: 16px;
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4.is-card-expanded .icon_security_trust {
color: var(--color-body-text, #292929);
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4.is-card-expanded .icon_title_trust {
color: var(--color-body-text, #292929);
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .expanded-column-4.is-card-expanded .trust-card-desc-block:last-child {
margin-right: 0;
}
@media (min-width: 960px) {
.lg\:hidden {
display: none;
}
}
@media (max-width: 959.98px) {
.md\:hidden {
display: none;
}
[data-section-type="shoplazza://apps/painterb/blocks/strengthen_trust/283166158603952609"] .plugin-strengthen-trust-container {
padding: 0 var(--general-layout-spacing, var(--page-spacing, 16px));
}
.trust-expanded .trust-accordion-header {
display: none;
}
.trust-accordion-header .trust-title-block {
padding: 8px 12px;
}
.trust-accordion-header .trust-thumbnail-desc {
padding: 12px 12px 0;
}
.trust-thumbnail-desc .trust-thumbnail-desc-item {
flex-direction: row;
align-items: center;
width: 100%;
padding-left: 0;
}
.trust-thumbnail-desc .trust-thumbnail-desc-item:nth-child(2n) {
padding-left: 0;
}
.trust-thumbnail-desc-item .trust-thumbnail-desc-title {
flex: 1;
padding-top: 0;
padding-left: 4px;
}
.trust-sidebar {
display: flex;
flex-direction: column;
background: #FFF;
}
.trust-sidebar-cancel {
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: flex-end;
padding-right: 16px;
}
.trust-sidebar .trust-open-card {
border: none;
}
.trust-expanded .trust-open-card {
padding: 8px;
}
.trust-card-desc-block {
padding-bottom: 12px;
}
.icon_arrow_right_trust {
flex-shrink: 0;
color: var(--color-body-text, #292929);
}
.plugin-strengthen-trust-1539149753700-wrap .trust-card-big-title {
display: flex;
align-items: center;
padding: 16px 20px;
border-radius: 4px 4px 0px 0px;
background: rgba(49, 176, 121, 0.2);
}
.plugin-strengthen-trust-1539149753700-wrap.trust-expanded .trust-card-big-title {
padding-left: 8px;
}
.trust-card-big-title .trust-title {
font-size: 16px;
font-weight: 500;
}
.sidebar-bottom-content {
overflow-y: auto;
}
/* 兼容nova移动端抽屉购物车 sidebar 样式 */
#trust-sidebar-cart_drawer {
width: 100%;
}
}
html[dir="rtl"] .icon_arrow_right_trust {
transform: rotate(180deg);
}
</style>
<ljs-script layout="logic" type="application/javascript" class="i-spzhtml-layout-logic i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="logic"> /** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement {
static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_
= this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target
= container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_()
{ this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** *
@param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if
(rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); </ljs-script>
<ljs-script layout="logic" type="application/javascript" class="i-spzhtml-layout-logic i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="logic"> const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class
SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ =
SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector(
document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; }
SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type:
'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result =
JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const
moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ?
this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);
</ljs-script>
<spz-custom-strengthen-trust layout="container" render-id="strengthen-trust-render-1539149753700" id="strengthen-trust-render-script-1539149753700" class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout"
i-spzhtml-layout="container"></spz-custom-strengthen-trust>
<ljs-render id="strengthen-trust-render-1539149753700" layout="container" manual="" @finish="strengthen-trust-render-script-1539149753700.track(style='icon_title');"
class="i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
<template>
<div spz-if="${ data.isEditor || data.other_enabled }" class="plugin-strengthen-trust-container">
<div class="
plugin-strengthen-trust-1539149753700-wrap md:hidden expanded-column-4
">
<div class="trust-big-title type-title-font-family ${data.other_enabled?'pb-4':''}"> ${data.module_title} </div>
<div spz-if="${!data.other_enabled}" class="store-open-trust-tips">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<g clip-path="url(#clip0_2160_10007)">
<path
d="M8.92398 8.53999C8.924 8.66134 8.90011 8.7815 8.85368 8.89362C8.80725 9.00574 8.7392 9.10761 8.6534 9.19342C8.5676 9.27923 8.46573 9.3473 8.35362 9.39375C8.24151 9.44019 8.12135 9.46409 8 9.46409C7.87865 9.46409 7.75849 9.44019 7.64638 9.39375C7.53427 9.3473 7.43241 9.27923 7.3466 9.19342C7.2608 9.10761 7.19275 9.00574 7.14632 8.89362C7.09989 8.7815 7.076 8.66134 7.07602 8.53999V4.23208C7.076 4.11073 7.09989 3.99056 7.14632 3.87845C7.19275 3.76633 7.2608 3.66446 7.3466 3.57865C7.43241 3.49283 7.53427 3.42476 7.64638 3.37832C7.75849 3.33188 7.87865 3.30798 8 3.30798C8.12135 3.30798 8.24151 3.33188 8.35362 3.37832C8.46573 3.42476 8.5676 3.49283 8.6534 3.57865C8.7392 3.66446 8.80725 3.76633 8.85368 3.87845C8.90011 3.99056 8.924 4.11073 8.92398 4.23208V8.53999ZM8 12.5399C7.7872 12.5392 7.58121 12.4648 7.41712 12.3293C7.25303 12.1938 7.141 12.0056 7.10009 11.7968C7.05919 11.5879 7.09195 11.3714 7.1928 11.184C7.29365 10.9966 7.45634 10.8499 7.65317 10.769C7.84999 10.6881 8.06878 10.678 8.27226 10.7403C8.47574 10.8026 8.65133 10.9335 8.76912 11.1107C8.88691 11.2879 8.93962 11.5005 8.91826 11.7123C8.8969 11.924 8.8028 12.1218 8.65199 12.2719C8.56722 12.3585 8.46569 12.427 8.35359 12.4731C8.24149 12.5191 8.12118 12.5419 8 12.5399ZM8 0.000162657C6.92965 -0.00673195 5.86922 0.205626 4.88406 0.62415C2.96107 1.43154 1.43154 2.96107 0.62415 4.88406C0.205626 5.86922 -0.00673195 6.92965 0.000162657 8C-0.00673195 9.07035 0.205626 10.1308 0.62415 11.1159C1.43154 13.0389 2.96107 14.5685 4.88406 15.3759C5.86922 15.7944 6.92965 16.0067 8 15.9998C9.07035 16.0067 10.1308 15.7944 11.1159 15.3759C13.0389 14.5685 14.5685 13.0389 15.3759 11.1159C15.7944 10.1308 16.0067 9.07035 15.9998 8C16.0067 6.92965 15.7944 5.86922 15.3759 4.88406C14.5685 2.96107 13.0389 1.43154 11.1159 0.62415C10.1308 0.205626 9.07035 -0.00673195 8 0.000162657Z"
fill="#FF7979"></path>
</g>
<defs>
<clipPath id="clip0_2160_10007">
<rect width="16" height="16" fill="white"></rect>
</clipPath>
</defs>
</svg>
<span class="tips-text"> To display this card to customers, you need to go to "Booster & Store Conversion" to turn on the trust enhancement feature. </span>
</div>
<ljs-accordion class="trust-card-block" layout="container">
<section class="${data.module_settings.length>4?'more-than-4':''}" @expand="strengthen-trust-render-script-1539149753700.track(type='trust_expand_click');">
<div class="trust-accordion-header">
<div class="trust-title-block">
<svg class="icon_security_trust" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M9.99932 0C10.5736 0 11.1307 0.184885 11.5792 0.524258L12.0909 0.911325C13.4831 1.96508 15.0052 2.85514 16.6239 3.56198L17.9248 4.13095C18.3719 4.32298 18.7485 4.63668 19.0065 5.03203C19.2644 5.42739 19.3921 5.88649 19.3732 6.35077C18.9684 14.8758 13.0391 18.7013 11.0849 19.7312C10.4069 20.0896 9.59169 20.0896 8.91232 19.7312C6.95805 18.7 1.03164 14.8731 0.626913 6.32479C0.607503 5.85814 0.736181 5.39668 0.996373 4.99983C1.25657 4.60299 1.63636 4.28894 2.08683 4.09813L3.31114 3.57292C4.97349 2.85777 6.53548 1.94994 7.96121 0.870293L8.41942 0.524258C8.86789 0.184885 9.42506 0 9.99932 0ZM7.19446 9.35226C7.43734 9.34797 7.67239 9.43812 7.85011 9.60372L9.12261 10.875L12.1639 7.83623C12.3416 7.67063 12.5766 7.58047 12.8195 7.58476C13.0624 7.58904 13.2941 7.68743 13.4659 7.8592C13.6377 8.03096 13.736 8.2627 13.7403 8.50557C13.7446 8.74845 13.6545 8.98351 13.4889 9.16123L9.78511 12.8637C9.60933 13.0393 9.37105 13.1379 9.12261 13.1379C8.87418 13.1379 8.63589 13.0393 8.46011 12.8637L6.52511 10.9287C6.35951 10.751 6.26936 10.5159 6.27364 10.2731C6.27793 10.0302 6.37632 9.79846 6.54809 9.6267C6.71985 9.45493 6.95158 9.35654 7.19446 9.35226Z"
fill="currentColor"></path>
</svg>
<span class="trust-title">${data.module_title}</span>
<svg class="icon_arrow_trust" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
<path
d="M7.54264 10.3064C7.77695 10.5407 8.15686 10.5407 8.39117 10.3064L12.8459 5.85165C12.9631 5.73449 12.9631 5.54454 12.8459 5.42738L12.5065 5.08797C12.3894 4.97082 12.1994 4.97082 12.0823 5.08797L7.96696 9.20328L3.85155 5.08787C3.73439 4.97071 3.54444 4.97071 3.42728 5.08787L3.08787 5.42728C2.97071 5.54444 2.97071 5.73439 3.08787 5.85154L7.54264 10.3064Z"
fill="currentColor"></path>
</svg>
</div>
<div class="trust-thumbnail-desc trust-card-border">
<div class="trust-thumbnail-desc-item" spz-for="item in data.module_settings" key="item.type">
<div spz-if="${(item.icon_type === 'default')}">
<div spz-if="${(item.type == 'payment_setting')}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" class="icon_title_trust scale-125">
<g clip-path="url(#clip0_2533_19421)">
<path
d="M18.5653 9.98893C18.8533 9.78627 19.3146 9.78359 19.6026 9.98893C19.6026 9.98893 20.3706 10.6023 21.3253 11.0103V3.61827C21.3253 3.26094 21.0399 2.97559 20.6879 2.97559H0.626594C0.274586 2.97559 -0.0107422 3.26359 -0.0107422 3.61827V17.2689C-0.0107422 17.6263 0.274586 17.9116 0.626594 17.9116H14.1626C13.9279 17.5516 13.8533 17.0343 13.8533 16.6209V11.5543C13.8533 11.3169 14.0373 11.1676 14.2666 11.2183C14.2666 11.2183 14.8266 11.3649 15.3466 11.3649C16.8346 11.3649 18.5653 9.98895 18.5653 9.98895V9.98893ZM7.88259 9.80494H2.76259C2.40791 9.80494 2.12259 9.51694 2.12259 9.16494C2.12259 8.81026 2.41059 8.52493 2.76259 8.52493H7.88259C8.23727 8.52493 8.52259 8.81293 8.52259 9.16494C8.52259 9.51694 8.23459 9.80494 7.88259 9.80494ZM2.75992 6.3916C2.40791 6.3916 2.12259 6.1036 2.12259 5.75159C2.12259 5.39691 2.40791 5.11159 2.75992 5.11159H18.5519C18.9039 5.11159 19.1893 5.39959 19.1893 5.75159C19.1893 6.10627 18.9039 6.3916 18.5519 6.3916H2.75992Z"
fill="currentColor"></path>
<path
d="M23.4559 12.0668H22.5412C21.2052 12.0668 19.7092 10.8668 19.7092 10.8668C19.4212 10.6615 18.9572 10.6669 18.6692 10.8668C18.6692 10.8668 17.1732 12.0668 15.8372 12.0668H14.9225C14.6879 12.0668 14.4985 12.2588 14.4985 12.4935V16.7842C14.4985 17.2535 14.7972 17.8722 15.1652 18.1655L18.5225 20.8242C18.8905 21.1149 19.4879 21.1149 19.8586 20.8242L23.2159 18.1655C23.5839 17.8749 23.8826 17.2562 23.8826 16.7842V12.4935C23.8826 12.2588 23.6906 12.0668 23.4559 12.0668ZM21.3386 14.7922L19.3866 17.2748C19.0026 17.7655 18.3199 17.7788 17.9172 17.3068L17.0532 16.2988C16.8986 16.1202 16.9199 15.8508 17.0986 15.6961C17.2772 15.5415 17.5466 15.5628 17.7012 15.7415L18.5652 16.7495C18.6186 16.8135 18.6639 16.8135 18.7172 16.7442L20.6692 14.2615C20.8159 14.0775 21.0826 14.0428 21.2692 14.1895C21.4506 14.3388 21.4826 14.6082 21.3386 14.7922Z"
fill="currentColor"></path>
</g>
<defs>
<clipPath id="clip0_2533_19421">
<rect width="24" height="24" fill="currentColor"></rect>
</clipPath>
</defs>
</svg>
</div>
<div spz-if="${(item.type == 'privacy_setting')}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust scale-125">
<path fill="currentColor"
d="M19.505 15.49h-3.174a.712.712 0 0 1-.082-.338v-.675c0-.322.199-.584.444-.584h1.05c.243 0 .441.26.441.582 0 .254.157.46.352.46.194 0 .351-.206.351-.46 0-.83-.512-1.504-1.143-1.504h-1.051c-.632 0-1.145.675-1.145 1.506v.675c0 .114.01.227.032.338h-1.138a.674.674 0 0 0-.66.685v4.614c0 .378.295.685.66.685h5.063c.364 0 .66-.307.66-.685v-4.614a.672.672 0 0 0-.66-.685m-2.193 2.994v1.864a.272.272 0 1 1-.543 0v-1.864a.9.9 0 0 1-.6-.86c0-.499.39-.903.872-.903.481 0 .872.404.872.904 0 .4-.252.74-.601.859m3.6-1.075v3.663a.794.794 0 0 1-.329.643h1.097c0-1.546-.127-3.008-.769-4.306">
</path>
<path fill="currentColor"
d="M16.905 7.214a4.863 4.863 0 0 0-5.79-4.773A4.81 4.81 0 0 0 7.26 6.366a4.863 4.863 0 0 0 3.817 5.61.03.03 0 0 1 .016.05.03.03 0 0 1-.02.008c-4.915.477-8.76 4.613-8.775 9.65a.03.03 0 0 0 .03.03h10.978c.027 0-.124-.033-.144-.051-.162-.146-.334-.356-.334-.591l.07-5.33a.825.825 0 0 1 .826-.825h1.203a.03.03 0 0 0 .03-.034c-.047-.281-.07-1.728.574-2.141a.03.03 0 0 0 .014-.029.03.03 0 0 0-.02-.025c-.782-.287-1.645-.534-2.568-.641a.03.03 0 0 1-.002-.06 4.861 4.861 0 0 0 3.95-4.773">
</path>
</svg>
</div>
<div spz-if="${(item.type == 'logitics_setting')}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust scale-125">
<path fill="currentColor"
d="M10.469 5.344c.094.375.187.75.187 1.125 0 .656-.094 1.218-.375 1.687-.281.563-.562 1.031-.937 1.406-.375.376-.844.75-1.406.938-.563.188-1.125.375-1.688.375-.656 0-1.219-.094-1.687-.375-.563-.187-1.032-.562-1.407-.937-.375-.376-.75-.844-.937-1.407-.281-.562-.375-1.125-.375-1.687V6.28c-.375.282-.469.563-.657.844A3.37 3.37 0 0 0 1 8.156V19.22c0 .281.094.468.188.656.187.188.375.188.562.188h.469c0-.938.187-1.594.656-2.063.469-.469 1.125-.656 1.969-.656.937 0 1.593.281 1.968.75.47.468.657 1.125.657 1.968h5.812c.188 0 .375-.093.563-.187.187-.187.281-.375.281-.562V5.53h-3.656z">
</path>
<path fill="currentColor"
d="M5.031 18.656c-.375 0-.75.094-.937.375-.282.282-.375.563-.375.938s.094.656.375.937c.281.282.562.375.937.375s.75-.093.938-.375c.281-.281.375-.562.375-.937s-.094-.75-.375-.938c-.282-.187-.563-.375-.938-.375m14.532.094c.375 0 .656.094.937.375s.375.563.375.938-.094.75-.375.937c-.281.281-.562.375-.937.375s-.75-.094-.938-.375c-.281-.281-.375-.562-.375-.937s.094-.657.375-.938c.281-.281.563-.375.938-.375">
</path>
<path fill="currentColor"
d="M23.406 15c-.093-.844-.281-1.594-.562-2.437a8 8 0 0 0-1.219-2.344A3.994 3.994 0 0 0 20.5 9.188c-.469-.282-.937-.563-1.406-.75-.469-.188-1.032-.282-1.5-.376-.469-.093-1.032-.093-1.5-.093-.188 0-.282.093-.375.375-.094.187-.188.375-.188.562v10.219c0 .281.094.469.281.656a.851.851 0 0 0 .657.282h.375c0-.375.093-.657.187-1.032.094-.281.282-.562.563-.843.187-.282.468-.47.843-.563.282-.187.657-.187 1.032-.187s.75.093 1.031.187c.375.094.656.281.844.469.281.187.468.468.562.843.188.375.188.75.188 1.22h.843c.094 0 .188 0 .188-.095.094-.093.094-.187.094-.28 0-.095.093-.282.093-.376v-1.968c.282-.844.188-1.594.094-2.438m-1.687-.281h-4.407c-.093 0-.187-.094-.28-.188-.095-.094-.188-.187-.188-.281v-3.844c0-.187.093-.281.187-.469a.716.716 0 0 1 .469-.187h1.031c.282 0 .563.094.938.188.281.093.656.28.937.562.469.469.75 1.031.938 1.688.187.656.375 1.312.468 1.968v.188c.094.281 0 .375-.093.375M6.156 3C4.188 3 2.594 4.594 2.594 6.469c0 1.968 1.594 3.468 3.562 3.468A3.46 3.46 0 0 0 9.625 6.47 3.46 3.46 0 0 0 6.156 3m1.688 3.188-2.25 1.968-1.219-1.125V5.72l1.219 1.125 2.25-2.063z">
</path>
</svg>
</div>
<div spz-if="${(item.type == 'customer_setting')}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust scale-125">
<path fill="currentColor"
d="M11.966 4.548c-3.109 0-5.628 2.467-5.628 5.51 0 3.044 2.52 5.51 5.628 5.51 3.109 0 5.628-2.466 5.628-5.51 0-3.043-2.52-5.51-5.628-5.51m-6.5 7.626V7.087a2.69 2.69 0 0 0-.21.008c1.153-2.504 3.721-4.247 6.71-4.247 2.99 0 5.559 1.743 6.712 4.247a2.677 2.677 0 0 0-.212-.008v5.087c1.436 0 2.6-1.14 2.6-2.544 0-.954-.537-1.785-1.33-2.22C18.616 4.26 15.565 2 11.965 2c-3.599 0-6.65 2.261-7.768 5.41a2.534 2.534 0 0 0-1.331 2.22c0 1.405 1.163 2.544 2.6 2.544m12.116 2.916a8.3 8.3 0 0 1-5.616 2.167 8.3 8.3 0 0 1-5.608-2.16C3.728 16.424 2 18.783 2 21.987h20c0-3.21-1.76-5.572-4.418-6.896">
</path>
</svg>
</div>
</div>
<div spz-else="">
<ljs-img class="trust-thumbnail-img" width="30" height="30" layout="fixed" src="//img.fantaskycdn.com/${item.icon}" object-fit="contain" alt="trust-img"></ljs-img>
</div>
<div class="trust-thumbnail-desc-title">${item.title}</div>
</div>
</div>
</div>
<div id="trust-open-card" class="trust-open-card trust-card-border">
<div id="trust-card-desc-block-1539149753700-${index}" class="trust-card-desc-block" spz-for="(item,index) in data.originData.module_settings" key="item.type">
<div class="trust-card-desc-title">
<div spz-if="${item.icon_type === 'default'&&item.type == 'payment_setting'}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" class="icon_title_trust">
<g clip-path="url(#clip0_2533_19421)">
<path
d="M18.5653 9.98893C18.8533 9.78627 19.3146 9.78359 19.6026 9.98893C19.6026 9.98893 20.3706 10.6023 21.3253 11.0103V3.61827C21.3253 3.26094 21.0399 2.97559 20.6879 2.97559H0.626594C0.274586 2.97559 -0.0107422 3.26359 -0.0107422 3.61827V17.2689C-0.0107422 17.6263 0.274586 17.9116 0.626594 17.9116H14.1626C13.9279 17.5516 13.8533 17.0343 13.8533 16.6209V11.5543C13.8533 11.3169 14.0373 11.1676 14.2666 11.2183C14.2666 11.2183 14.8266 11.3649 15.3466 11.3649C16.8346 11.3649 18.5653 9.98895 18.5653 9.98895V9.98893ZM7.88259 9.80494H2.76259C2.40791 9.80494 2.12259 9.51694 2.12259 9.16494C2.12259 8.81026 2.41059 8.52493 2.76259 8.52493H7.88259C8.23727 8.52493 8.52259 8.81293 8.52259 9.16494C8.52259 9.51694 8.23459 9.80494 7.88259 9.80494ZM2.75992 6.3916C2.40791 6.3916 2.12259 6.1036 2.12259 5.75159C2.12259 5.39691 2.40791 5.11159 2.75992 5.11159H18.5519C18.9039 5.11159 19.1893 5.39959 19.1893 5.75159C19.1893 6.10627 18.9039 6.3916 18.5519 6.3916H2.75992Z"
fill="currentColor"></path>
<path
d="M23.4559 12.0668H22.5412C21.2052 12.0668 19.7092 10.8668 19.7092 10.8668C19.4212 10.6615 18.9572 10.6669 18.6692 10.8668C18.6692 10.8668 17.1732 12.0668 15.8372 12.0668H14.9225C14.6879 12.0668 14.4985 12.2588 14.4985 12.4935V16.7842C14.4985 17.2535 14.7972 17.8722 15.1652 18.1655L18.5225 20.8242C18.8905 21.1149 19.4879 21.1149 19.8586 20.8242L23.2159 18.1655C23.5839 17.8749 23.8826 17.2562 23.8826 16.7842V12.4935C23.8826 12.2588 23.6906 12.0668 23.4559 12.0668ZM21.3386 14.7922L19.3866 17.2748C19.0026 17.7655 18.3199 17.7788 17.9172 17.3068L17.0532 16.2988C16.8986 16.1202 16.9199 15.8508 17.0986 15.6961C17.2772 15.5415 17.5466 15.5628 17.7012 15.7415L18.5652 16.7495C18.6186 16.8135 18.6639 16.8135 18.7172 16.7442L20.6692 14.2615C20.8159 14.0775 21.0826 14.0428 21.2692 14.1895C21.4506 14.3388 21.4826 14.6082 21.3386 14.7922Z"
fill="currentColor"></path>
</g>
<defs>
<clipPath id="clip0_2533_19421">
<rect width="24" height="24" fill="currentColor"></rect>
</clipPath>
</defs>
</svg>
</div>
<div spz-if="${item.icon_type === 'default'&&item.type == 'privacy_setting'}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M19.505 15.49h-3.174a.712.712 0 0 1-.082-.338v-.675c0-.322.199-.584.444-.584h1.05c.243 0 .441.26.441.582 0 .254.157.46.352.46.194 0 .351-.206.351-.46 0-.83-.512-1.504-1.143-1.504h-1.051c-.632 0-1.145.675-1.145 1.506v.675c0 .114.01.227.032.338h-1.138a.674.674 0 0 0-.66.685v4.614c0 .378.295.685.66.685h5.063c.364 0 .66-.307.66-.685v-4.614a.672.672 0 0 0-.66-.685m-2.193 2.994v1.864a.272.272 0 1 1-.543 0v-1.864a.9.9 0 0 1-.6-.86c0-.499.39-.903.872-.903.481 0 .872.404.872.904 0 .4-.252.74-.601.859m3.6-1.075v3.663a.794.794 0 0 1-.329.643h1.097c0-1.546-.127-3.008-.769-4.306">
</path>
<path fill="currentColor"
d="M16.905 7.214a4.863 4.863 0 0 0-5.79-4.773A4.81 4.81 0 0 0 7.26 6.366a4.863 4.863 0 0 0 3.817 5.61.03.03 0 0 1 .016.05.03.03 0 0 1-.02.008c-4.915.477-8.76 4.613-8.775 9.65a.03.03 0 0 0 .03.03h10.978c.027 0-.124-.033-.144-.051-.162-.146-.334-.356-.334-.591l.07-5.33a.825.825 0 0 1 .826-.825h1.203a.03.03 0 0 0 .03-.034c-.047-.281-.07-1.728.574-2.141a.03.03 0 0 0 .014-.029.03.03 0 0 0-.02-.025c-.782-.287-1.645-.534-2.568-.641a.03.03 0 0 1-.002-.06 4.861 4.861 0 0 0 3.95-4.773">
</path>
</svg>
</div>
<div spz-if="${item.icon_type === 'default'&&item.type == 'logitics_setting'}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M10.469 5.344c.094.375.187.75.187 1.125 0 .656-.094 1.218-.375 1.687-.281.563-.562 1.031-.937 1.406-.375.376-.844.75-1.406.938-.563.188-1.125.375-1.688.375-.656 0-1.219-.094-1.687-.375-.563-.187-1.032-.562-1.407-.937-.375-.376-.75-.844-.937-1.407-.281-.562-.375-1.125-.375-1.687V6.28c-.375.282-.469.563-.657.844A3.37 3.37 0 0 0 1 8.156V19.22c0 .281.094.468.188.656.187.188.375.188.562.188h.469c0-.938.187-1.594.656-2.063.469-.469 1.125-.656 1.969-.656.937 0 1.593.281 1.968.75.47.468.657 1.125.657 1.968h5.812c.188 0 .375-.093.563-.187.187-.187.281-.375.281-.562V5.53h-3.656z">
</path>
<path fill="currentColor"
d="M5.031 18.656c-.375 0-.75.094-.937.375-.282.282-.375.563-.375.938s.094.656.375.937c.281.282.562.375.937.375s.75-.093.938-.375c.281-.281.375-.562.375-.937s-.094-.75-.375-.938c-.282-.187-.563-.375-.938-.375m14.532.094c.375 0 .656.094.937.375s.375.563.375.938-.094.75-.375.937c-.281.281-.562.375-.937.375s-.75-.094-.938-.375c-.281-.281-.375-.562-.375-.937s.094-.657.375-.938c.281-.281.563-.375.938-.375">
</path>
<path fill="currentColor"
d="M23.406 15c-.093-.844-.281-1.594-.562-2.437a8 8 0 0 0-1.219-2.344A3.994 3.994 0 0 0 20.5 9.188c-.469-.282-.937-.563-1.406-.75-.469-.188-1.032-.282-1.5-.376-.469-.093-1.032-.093-1.5-.093-.188 0-.282.093-.375.375-.094.187-.188.375-.188.562v10.219c0 .281.094.469.281.656a.851.851 0 0 0 .657.282h.375c0-.375.093-.657.187-1.032.094-.281.282-.562.563-.843.187-.282.468-.47.843-.563.282-.187.657-.187 1.032-.187s.75.093 1.031.187c.375.094.656.281.844.469.281.187.468.468.562.843.188.375.188.75.188 1.22h.843c.094 0 .188 0 .188-.095.094-.093.094-.187.094-.28 0-.095.093-.282.093-.376v-1.968c.282-.844.188-1.594.094-2.438m-1.687-.281h-4.407c-.093 0-.187-.094-.28-.188-.095-.094-.188-.187-.188-.281v-3.844c0-.187.093-.281.187-.469a.716.716 0 0 1 .469-.187h1.031c.282 0 .563.094.938.188.281.093.656.28.937.562.469.469.75 1.031.938 1.688.187.656.375 1.312.468 1.968v.188c.094.281 0 .375-.093.375M6.156 3C4.188 3 2.594 4.594 2.594 6.469c0 1.968 1.594 3.468 3.562 3.468A3.46 3.46 0 0 0 9.625 6.47 3.46 3.46 0 0 0 6.156 3m1.688 3.188-2.25 1.968-1.219-1.125V5.72l1.219 1.125 2.25-2.063z">
</path>
</svg>
</div>
<div spz-if="${item.icon_type === 'default'&&item.type == 'customer_setting'}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M11.966 4.548c-3.109 0-5.628 2.467-5.628 5.51 0 3.044 2.52 5.51 5.628 5.51 3.109 0 5.628-2.466 5.628-5.51 0-3.043-2.52-5.51-5.628-5.51m-6.5 7.626V7.087a2.69 2.69 0 0 0-.21.008c1.153-2.504 3.721-4.247 6.71-4.247 2.99 0 5.559 1.743 6.712 4.247a2.677 2.677 0 0 0-.212-.008v5.087c1.436 0 2.6-1.14 2.6-2.544 0-.954-.537-1.785-1.33-2.22C18.616 4.26 15.565 2 11.965 2c-3.599 0-6.65 2.261-7.768 5.41a2.534 2.534 0 0 0-1.331 2.22c0 1.405 1.163 2.544 2.6 2.544m12.116 2.916a8.3 8.3 0 0 1-5.616 2.167 8.3 8.3 0 0 1-5.608-2.16C3.728 16.424 2 18.783 2 21.987h20c0-3.21-1.76-5.572-4.418-6.896">
</path>
</svg>
</div>
<div spz-if="${item.icon_type === 'custom'}">
<ljs-img class="trust-thumbnail-img" width="24" height="24" layout="fixed" src="//img.fantaskycdn.com/${item.icon}" object-fit="contain" alt="trust-img"></ljs-img>
</div>
<span class="trust-thumbnail-title">${item.title}</span>
</div>
<div class="trust-card-desc-text"> ${item.content.replaceAll("{store_name}","linenstylish")} </div>
<div spz-if="${item.logos.length > 0&&item.logos_type=='default' }" class="trust-card-desc-img">
<ljs-img spz-for="(logo,index) in item.logos" key="index" width="55" height="35" class="icon-trust-block" layout="fixed" src="//img.fantaskycdn.com/${logo}" object-fit="contain" alt="trust-img"></ljs-img>
</div>
<div spz-if="${item.logos.length > 0&&item.logos_type=='custom' }" class="trust-card-desc-img-custom">
<ljs-img spz-for="(logo,index) in item.logos" key="index" width="${logo.width}" height="${logo.height}" class="icon-trust-block-custom" layout="responsive" src="//img.fantaskycdn.com/${logo.path}" object-fit="contain"
auto-fit="" alt="image"></ljs-img>
</div>
</div>
</div>
</section>
</ljs-accordion>
</div>
<div class="plugin-strengthen-trust-1539149753700-wrap lg:hidden
">
<div spz-if="${!data.other_enabled}" class="store-open-trust-tips">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<g clip-path="url(#clip0_2160_10007)">
<path
d="M8.92398 8.53999C8.924 8.66134 8.90011 8.7815 8.85368 8.89362C8.80725 9.00574 8.7392 9.10761 8.6534 9.19342C8.5676 9.27923 8.46573 9.3473 8.35362 9.39375C8.24151 9.44019 8.12135 9.46409 8 9.46409C7.87865 9.46409 7.75849 9.44019 7.64638 9.39375C7.53427 9.3473 7.43241 9.27923 7.3466 9.19342C7.2608 9.10761 7.19275 9.00574 7.14632 8.89362C7.09989 8.7815 7.076 8.66134 7.07602 8.53999V4.23208C7.076 4.11073 7.09989 3.99056 7.14632 3.87845C7.19275 3.76633 7.2608 3.66446 7.3466 3.57865C7.43241 3.49283 7.53427 3.42476 7.64638 3.37832C7.75849 3.33188 7.87865 3.30798 8 3.30798C8.12135 3.30798 8.24151 3.33188 8.35362 3.37832C8.46573 3.42476 8.5676 3.49283 8.6534 3.57865C8.7392 3.66446 8.80725 3.76633 8.85368 3.87845C8.90011 3.99056 8.924 4.11073 8.92398 4.23208V8.53999ZM8 12.5399C7.7872 12.5392 7.58121 12.4648 7.41712 12.3293C7.25303 12.1938 7.141 12.0056 7.10009 11.7968C7.05919 11.5879 7.09195 11.3714 7.1928 11.184C7.29365 10.9966 7.45634 10.8499 7.65317 10.769C7.84999 10.6881 8.06878 10.678 8.27226 10.7403C8.47574 10.8026 8.65133 10.9335 8.76912 11.1107C8.88691 11.2879 8.93962 11.5005 8.91826 11.7123C8.8969 11.924 8.8028 12.1218 8.65199 12.2719C8.56722 12.3585 8.46569 12.427 8.35359 12.4731C8.24149 12.5191 8.12118 12.5419 8 12.5399ZM8 0.000162657C6.92965 -0.00673195 5.86922 0.205626 4.88406 0.62415C2.96107 1.43154 1.43154 2.96107 0.62415 4.88406C0.205626 5.86922 -0.00673195 6.92965 0.000162657 8C-0.00673195 9.07035 0.205626 10.1308 0.62415 11.1159C1.43154 13.0389 2.96107 14.5685 4.88406 15.3759C5.86922 15.7944 6.92965 16.0067 8 15.9998C9.07035 16.0067 10.1308 15.7944 11.1159 15.3759C13.0389 14.5685 14.5685 13.0389 15.3759 11.1159C15.7944 10.1308 16.0067 9.07035 15.9998 8C16.0067 6.92965 15.7944 5.86922 15.3759 4.88406C14.5685 2.96107 13.0389 1.43154 11.1159 0.62415C10.1308 0.205626 9.07035 -0.00673195 8 0.000162657Z"
fill="#FF7979"></path>
</g>
<defs>
<clipPath id="clip0_2160_10007">
<rect width="16" height="16" fill="white"></rect>
</clipPath>
</defs>
</svg>
<span class="tips-text"> To display this card to customers, you need to go to "Booster & Store Conversion" to turn on the trust enhancement feature. </span>
</div>
<div class="trust-card-block" layout="container">
<div class="trust-accordion-header">
<div class="trust-title-block">
<svg class="icon_security_trust" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M9.99932 0C10.5736 0 11.1307 0.184885 11.5792 0.524258L12.0909 0.911325C13.4831 1.96508 15.0052 2.85514 16.6239 3.56198L17.9248 4.13095C18.3719 4.32298 18.7485 4.63668 19.0065 5.03203C19.2644 5.42739 19.3921 5.88649 19.3732 6.35077C18.9684 14.8758 13.0391 18.7013 11.0849 19.7312C10.4069 20.0896 9.59169 20.0896 8.91232 19.7312C6.95805 18.7 1.03164 14.8731 0.626913 6.32479C0.607503 5.85814 0.736181 5.39668 0.996373 4.99983C1.25657 4.60299 1.63636 4.28894 2.08683 4.09813L3.31114 3.57292C4.97349 2.85777 6.53548 1.94994 7.96121 0.870293L8.41942 0.524258C8.86789 0.184885 9.42506 0 9.99932 0ZM7.19446 9.35226C7.43734 9.34797 7.67239 9.43812 7.85011 9.60372L9.12261 10.875L12.1639 7.83623C12.3416 7.67063 12.5766 7.58047 12.8195 7.58476C13.0624 7.58904 13.2941 7.68743 13.4659 7.8592C13.6377 8.03096 13.736 8.2627 13.7403 8.50557C13.7446 8.74845 13.6545 8.98351 13.4889 9.16123L9.78511 12.8637C9.60933 13.0393 9.37105 13.1379 9.12261 13.1379C8.87418 13.1379 8.63589 13.0393 8.46011 12.8637L6.52511 10.9287C6.35951 10.751 6.26936 10.5159 6.27364 10.2731C6.27793 10.0302 6.37632 9.79846 6.54809 9.6267C6.71985 9.45493 6.95158 9.35654 7.19446 9.35226Z"
fill="currentColor"></path>
</svg>
<span class="trust-title">${data.module_title}</span>
</div>
<div class="trust-thumbnail-desc trust-card-border">
<div class="trust-thumbnail-desc-item" spz-for="(item,index) in data.module_settings" key="item.type"
@tap="trust-sidebar-1539149753700.open;sidebar-scroll-1539149753700.setTarget(containerId='sidebar-bottom-content-1539149753700', targetId='trust-card-desc-block-1539149753700-${index}');strengthen-trust-render-script-1539149753700.track(type='trust_expand_click');">
<div spz-if="${(item.icon_type === 'default')}">
<div spz-if="${(item.type == 'payment_setting')}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" class="icon_title_trust">
<g clip-path="url(#clip0_2533_19421)">
<path
d="M18.5653 9.98893C18.8533 9.78627 19.3146 9.78359 19.6026 9.98893C19.6026 9.98893 20.3706 10.6023 21.3253 11.0103V3.61827C21.3253 3.26094 21.0399 2.97559 20.6879 2.97559H0.626594C0.274586 2.97559 -0.0107422 3.26359 -0.0107422 3.61827V17.2689C-0.0107422 17.6263 0.274586 17.9116 0.626594 17.9116H14.1626C13.9279 17.5516 13.8533 17.0343 13.8533 16.6209V11.5543C13.8533 11.3169 14.0373 11.1676 14.2666 11.2183C14.2666 11.2183 14.8266 11.3649 15.3466 11.3649C16.8346 11.3649 18.5653 9.98895 18.5653 9.98895V9.98893ZM7.88259 9.80494H2.76259C2.40791 9.80494 2.12259 9.51694 2.12259 9.16494C2.12259 8.81026 2.41059 8.52493 2.76259 8.52493H7.88259C8.23727 8.52493 8.52259 8.81293 8.52259 9.16494C8.52259 9.51694 8.23459 9.80494 7.88259 9.80494ZM2.75992 6.3916C2.40791 6.3916 2.12259 6.1036 2.12259 5.75159C2.12259 5.39691 2.40791 5.11159 2.75992 5.11159H18.5519C18.9039 5.11159 19.1893 5.39959 19.1893 5.75159C19.1893 6.10627 18.9039 6.3916 18.5519 6.3916H2.75992Z"
fill="currentColor"></path>
<path
d="M23.4559 12.0668H22.5412C21.2052 12.0668 19.7092 10.8668 19.7092 10.8668C19.4212 10.6615 18.9572 10.6669 18.6692 10.8668C18.6692 10.8668 17.1732 12.0668 15.8372 12.0668H14.9225C14.6879 12.0668 14.4985 12.2588 14.4985 12.4935V16.7842C14.4985 17.2535 14.7972 17.8722 15.1652 18.1655L18.5225 20.8242C18.8905 21.1149 19.4879 21.1149 19.8586 20.8242L23.2159 18.1655C23.5839 17.8749 23.8826 17.2562 23.8826 16.7842V12.4935C23.8826 12.2588 23.6906 12.0668 23.4559 12.0668ZM21.3386 14.7922L19.3866 17.2748C19.0026 17.7655 18.3199 17.7788 17.9172 17.3068L17.0532 16.2988C16.8986 16.1202 16.9199 15.8508 17.0986 15.6961C17.2772 15.5415 17.5466 15.5628 17.7012 15.7415L18.5652 16.7495C18.6186 16.8135 18.6639 16.8135 18.7172 16.7442L20.6692 14.2615C20.8159 14.0775 21.0826 14.0428 21.2692 14.1895C21.4506 14.3388 21.4826 14.6082 21.3386 14.7922Z"
fill="currentColor"></path>
</g>
<defs>
<clipPath id="clip0_2533_19421">
<rect width="24" height="24" fill="currentColor"></rect>
</clipPath>
</defs>
</svg>
</div>
<div spz-if="${(item.type == 'privacy_setting')}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M19.505 15.49h-3.174a.712.712 0 0 1-.082-.338v-.675c0-.322.199-.584.444-.584h1.05c.243 0 .441.26.441.582 0 .254.157.46.352.46.194 0 .351-.206.351-.46 0-.83-.512-1.504-1.143-1.504h-1.051c-.632 0-1.145.675-1.145 1.506v.675c0 .114.01.227.032.338h-1.138a.674.674 0 0 0-.66.685v4.614c0 .378.295.685.66.685h5.063c.364 0 .66-.307.66-.685v-4.614a.672.672 0 0 0-.66-.685m-2.193 2.994v1.864a.272.272 0 1 1-.543 0v-1.864a.9.9 0 0 1-.6-.86c0-.499.39-.903.872-.903.481 0 .872.404.872.904 0 .4-.252.74-.601.859m3.6-1.075v3.663a.794.794 0 0 1-.329.643h1.097c0-1.546-.127-3.008-.769-4.306">
</path>
<path fill="currentColor"
d="M16.905 7.214a4.863 4.863 0 0 0-5.79-4.773A4.81 4.81 0 0 0 7.26 6.366a4.863 4.863 0 0 0 3.817 5.61.03.03 0 0 1 .016.05.03.03 0 0 1-.02.008c-4.915.477-8.76 4.613-8.775 9.65a.03.03 0 0 0 .03.03h10.978c.027 0-.124-.033-.144-.051-.162-.146-.334-.356-.334-.591l.07-5.33a.825.825 0 0 1 .826-.825h1.203a.03.03 0 0 0 .03-.034c-.047-.281-.07-1.728.574-2.141a.03.03 0 0 0 .014-.029.03.03 0 0 0-.02-.025c-.782-.287-1.645-.534-2.568-.641a.03.03 0 0 1-.002-.06 4.861 4.861 0 0 0 3.95-4.773">
</path>
</svg>
</div>
<div spz-if="${(item.type == 'logitics_setting')}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M10.469 5.344c.094.375.187.75.187 1.125 0 .656-.094 1.218-.375 1.687-.281.563-.562 1.031-.937 1.406-.375.376-.844.75-1.406.938-.563.188-1.125.375-1.688.375-.656 0-1.219-.094-1.687-.375-.563-.187-1.032-.562-1.407-.937-.375-.376-.75-.844-.937-1.407-.281-.562-.375-1.125-.375-1.687V6.28c-.375.282-.469.563-.657.844A3.37 3.37 0 0 0 1 8.156V19.22c0 .281.094.468.188.656.187.188.375.188.562.188h.469c0-.938.187-1.594.656-2.063.469-.469 1.125-.656 1.969-.656.937 0 1.593.281 1.968.75.47.468.657 1.125.657 1.968h5.812c.188 0 .375-.093.563-.187.187-.187.281-.375.281-.562V5.53h-3.656z">
</path>
<path fill="currentColor"
d="M5.031 18.656c-.375 0-.75.094-.937.375-.282.282-.375.563-.375.938s.094.656.375.937c.281.282.562.375.937.375s.75-.093.938-.375c.281-.281.375-.562.375-.937s-.094-.75-.375-.938c-.282-.187-.563-.375-.938-.375m14.532.094c.375 0 .656.094.937.375s.375.563.375.938-.094.75-.375.937c-.281.281-.562.375-.937.375s-.75-.094-.938-.375c-.281-.281-.375-.562-.375-.937s.094-.657.375-.938c.281-.281.563-.375.938-.375">
</path>
<path fill="currentColor"
d="M23.406 15c-.093-.844-.281-1.594-.562-2.437a8 8 0 0 0-1.219-2.344A3.994 3.994 0 0 0 20.5 9.188c-.469-.282-.937-.563-1.406-.75-.469-.188-1.032-.282-1.5-.376-.469-.093-1.032-.093-1.5-.093-.188 0-.282.093-.375.375-.094.187-.188.375-.188.562v10.219c0 .281.094.469.281.656a.851.851 0 0 0 .657.282h.375c0-.375.093-.657.187-1.032.094-.281.282-.562.563-.843.187-.282.468-.47.843-.563.282-.187.657-.187 1.032-.187s.75.093 1.031.187c.375.094.656.281.844.469.281.187.468.468.562.843.188.375.188.75.188 1.22h.843c.094 0 .188 0 .188-.095.094-.093.094-.187.094-.28 0-.095.093-.282.093-.376v-1.968c.282-.844.188-1.594.094-2.438m-1.687-.281h-4.407c-.093 0-.187-.094-.28-.188-.095-.094-.188-.187-.188-.281v-3.844c0-.187.093-.281.187-.469a.716.716 0 0 1 .469-.187h1.031c.282 0 .563.094.938.188.281.093.656.28.937.562.469.469.75 1.031.938 1.688.187.656.375 1.312.468 1.968v.188c.094.281 0 .375-.093.375M6.156 3C4.188 3 2.594 4.594 2.594 6.469c0 1.968 1.594 3.468 3.562 3.468A3.46 3.46 0 0 0 9.625 6.47 3.46 3.46 0 0 0 6.156 3m1.688 3.188-2.25 1.968-1.219-1.125V5.72l1.219 1.125 2.25-2.063z">
</path>
</svg>
</div>
<div spz-if="${(item.type == 'customer_setting')}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M11.966 4.548c-3.109 0-5.628 2.467-5.628 5.51 0 3.044 2.52 5.51 5.628 5.51 3.109 0 5.628-2.466 5.628-5.51 0-3.043-2.52-5.51-5.628-5.51m-6.5 7.626V7.087a2.69 2.69 0 0 0-.21.008c1.153-2.504 3.721-4.247 6.71-4.247 2.99 0 5.559 1.743 6.712 4.247a2.677 2.677 0 0 0-.212-.008v5.087c1.436 0 2.6-1.14 2.6-2.544 0-.954-.537-1.785-1.33-2.22C18.616 4.26 15.565 2 11.965 2c-3.599 0-6.65 2.261-7.768 5.41a2.534 2.534 0 0 0-1.331 2.22c0 1.405 1.163 2.544 2.6 2.544m12.116 2.916a8.3 8.3 0 0 1-5.616 2.167 8.3 8.3 0 0 1-5.608-2.16C3.728 16.424 2 18.783 2 21.987h20c0-3.21-1.76-5.572-4.418-6.896">
</path>
</svg>
</div>
</div>
<div spz-else="">
<ljs-img class="trust-thumbnail-img" width="24" height="24" layout="fixed" src="//img.fantaskycdn.com/${item.icon}" object-fit="contain" alt="trust-img"></ljs-img>
</div>
<div class="trust-thumbnail-desc-title">${item.title}</div>
<svg xmlns="http://www.w3.org/2000/svg" class="icon_arrow_right_trust" width="12" height="12" viewBox="0 0 12 12" fill="none">
<path
d="M7.62392 6.4489C7.85824 6.21459 7.85824 5.83468 7.62393 5.60037L4.44195 2.41839C4.3248 2.30124 4.13485 2.30124 4.01769 2.41839L3.8692 2.56689C3.75204 2.68404 3.75204 2.87399 3.8692 2.99115L6.90264 6.0246L3.86912 9.05812C3.75196 9.17528 3.75196 9.36523 3.86912 9.48239L4.01761 9.63088C4.13477 9.74804 4.32472 9.74804 4.44187 9.63088L7.62392 6.4489Z"
fill="#292929"></path>
</svg>
</div>
</div>
</div>
<spz-custom-anchor-scroll id="sidebar-scroll-1539149753700" layout="logic"></spz-custom-anchor-scroll>
<ljs-sidebar id="trust-sidebar-1539149753700" class="trust-sidebar" layout="nodisplay" side="bottom" disable-unmount="" @open="sidebar-scroll-1539149753700.scrollToTarget">
<div class="trust-sidebar-cancel trust-card-big-title" @tap="trust-sidebar-1539149753700.close">
<svg class="icon_security_trust" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M9.99932 0C10.5736 0 11.1307 0.184885 11.5792 0.524258L12.0909 0.911325C13.4831 1.96508 15.0052 2.85514 16.6239 3.56198L17.9248 4.13095C18.3719 4.32298 18.7485 4.63668 19.0065 5.03203C19.2644 5.42739 19.3921 5.88649 19.3732 6.35077C18.9684 14.8758 13.0391 18.7013 11.0849 19.7312C10.4069 20.0896 9.59169 20.0896 8.91232 19.7312C6.95805 18.7 1.03164 14.8731 0.626913 6.32479C0.607503 5.85814 0.736181 5.39668 0.996373 4.99983C1.25657 4.60299 1.63636 4.28894 2.08683 4.09813L3.31114 3.57292C4.97349 2.85777 6.53548 1.94994 7.96121 0.870293L8.41942 0.524258C8.86789 0.184885 9.42506 0 9.99932 0ZM7.19446 9.35226C7.43734 9.34797 7.67239 9.43812 7.85011 9.60372L9.12261 10.875L12.1639 7.83623C12.3416 7.67063 12.5766 7.58047 12.8195 7.58476C13.0624 7.58904 13.2941 7.68743 13.4659 7.8592C13.6377 8.03096 13.736 8.2627 13.7403 8.50557C13.7446 8.74845 13.6545 8.98351 13.4889 9.16123L9.78511 12.8637C9.60933 13.0393 9.37105 13.1379 9.12261 13.1379C8.87418 13.1379 8.63589 13.0393 8.46011 12.8637L6.52511 10.9287C6.35951 10.751 6.26936 10.5159 6.27364 10.2731C6.27793 10.0302 6.37632 9.79846 6.54809 9.6267C6.71985 9.45493 6.95158 9.35654 7.19446 9.35226Z"
fill="currentColor"></path>
</svg>
<span class="trust-title">${data.module_title}</span>
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M1.93064 17.1473C1.81348 17.2644 1.81348 17.4544 1.93064 17.5715L2.83502 18.4759C2.95217 18.5931 3.14212 18.5931 3.25928 18.4759L9.91177 11.8234L16.6153 18.527C16.7325 18.6442 16.9225 18.6442 17.0396 18.527L17.944 17.6226C18.0611 17.5055 18.0611 17.3155 17.944 17.1984L11.2404 10.4948L17.8929 3.84229C18.0101 3.72513 18.0101 3.53518 17.8929 3.41802L16.9885 2.51365C16.8714 2.39649 16.6814 2.39649 16.5643 2.51365L9.91177 9.16616L3.31035 2.56474C3.19319 2.44758 3.00325 2.44758 2.88609 2.56474L1.98171 3.46911C1.86456 3.58627 1.86456 3.77622 1.98171 3.89337L8.58313 10.4948L1.93064 17.1473Z"
fill="#707070"></path>
</svg>
</div>
<div id="sidebar-bottom-content-1539149753700" class="sidebar-bottom-content">
<div id="trust-open-card" class="trust-open-card trust-card-border">
<div id="trust-card-desc-block-1539149753700-${index}" class="trust-card-desc-block" spz-for="(item,index) in data.originData.module_settings" key="item.type">
<div class="trust-card-desc-title">
<div spz-if="${item.icon_type === 'default'&&item.type == 'payment_setting'}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" class="icon_title_trust">
<g clip-path="url(#clip0_2533_19421)">
<path
d="M18.5653 9.98893C18.8533 9.78627 19.3146 9.78359 19.6026 9.98893C19.6026 9.98893 20.3706 10.6023 21.3253 11.0103V3.61827C21.3253 3.26094 21.0399 2.97559 20.6879 2.97559H0.626594C0.274586 2.97559 -0.0107422 3.26359 -0.0107422 3.61827V17.2689C-0.0107422 17.6263 0.274586 17.9116 0.626594 17.9116H14.1626C13.9279 17.5516 13.8533 17.0343 13.8533 16.6209V11.5543C13.8533 11.3169 14.0373 11.1676 14.2666 11.2183C14.2666 11.2183 14.8266 11.3649 15.3466 11.3649C16.8346 11.3649 18.5653 9.98895 18.5653 9.98895V9.98893ZM7.88259 9.80494H2.76259C2.40791 9.80494 2.12259 9.51694 2.12259 9.16494C2.12259 8.81026 2.41059 8.52493 2.76259 8.52493H7.88259C8.23727 8.52493 8.52259 8.81293 8.52259 9.16494C8.52259 9.51694 8.23459 9.80494 7.88259 9.80494ZM2.75992 6.3916C2.40791 6.3916 2.12259 6.1036 2.12259 5.75159C2.12259 5.39691 2.40791 5.11159 2.75992 5.11159H18.5519C18.9039 5.11159 19.1893 5.39959 19.1893 5.75159C19.1893 6.10627 18.9039 6.3916 18.5519 6.3916H2.75992Z"
fill="currentColor"></path>
<path
d="M23.4559 12.0668H22.5412C21.2052 12.0668 19.7092 10.8668 19.7092 10.8668C19.4212 10.6615 18.9572 10.6669 18.6692 10.8668C18.6692 10.8668 17.1732 12.0668 15.8372 12.0668H14.9225C14.6879 12.0668 14.4985 12.2588 14.4985 12.4935V16.7842C14.4985 17.2535 14.7972 17.8722 15.1652 18.1655L18.5225 20.8242C18.8905 21.1149 19.4879 21.1149 19.8586 20.8242L23.2159 18.1655C23.5839 17.8749 23.8826 17.2562 23.8826 16.7842V12.4935C23.8826 12.2588 23.6906 12.0668 23.4559 12.0668ZM21.3386 14.7922L19.3866 17.2748C19.0026 17.7655 18.3199 17.7788 17.9172 17.3068L17.0532 16.2988C16.8986 16.1202 16.9199 15.8508 17.0986 15.6961C17.2772 15.5415 17.5466 15.5628 17.7012 15.7415L18.5652 16.7495C18.6186 16.8135 18.6639 16.8135 18.7172 16.7442L20.6692 14.2615C20.8159 14.0775 21.0826 14.0428 21.2692 14.1895C21.4506 14.3388 21.4826 14.6082 21.3386 14.7922Z"
fill="currentColor"></path>
</g>
<defs>
<clipPath id="clip0_2533_19421">
<rect width="24" height="24" fill="currentColor"></rect>
</clipPath>
</defs>
</svg>
</div>
<div spz-if="${item.icon_type === 'default'&&item.type == 'privacy_setting'}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M19.505 15.49h-3.174a.712.712 0 0 1-.082-.338v-.675c0-.322.199-.584.444-.584h1.05c.243 0 .441.26.441.582 0 .254.157.46.352.46.194 0 .351-.206.351-.46 0-.83-.512-1.504-1.143-1.504h-1.051c-.632 0-1.145.675-1.145 1.506v.675c0 .114.01.227.032.338h-1.138a.674.674 0 0 0-.66.685v4.614c0 .378.295.685.66.685h5.063c.364 0 .66-.307.66-.685v-4.614a.672.672 0 0 0-.66-.685m-2.193 2.994v1.864a.272.272 0 1 1-.543 0v-1.864a.9.9 0 0 1-.6-.86c0-.499.39-.903.872-.903.481 0 .872.404.872.904 0 .4-.252.74-.601.859m3.6-1.075v3.663a.794.794 0 0 1-.329.643h1.097c0-1.546-.127-3.008-.769-4.306">
</path>
<path fill="currentColor"
d="M16.905 7.214a4.863 4.863 0 0 0-5.79-4.773A4.81 4.81 0 0 0 7.26 6.366a4.863 4.863 0 0 0 3.817 5.61.03.03 0 0 1 .016.05.03.03 0 0 1-.02.008c-4.915.477-8.76 4.613-8.775 9.65a.03.03 0 0 0 .03.03h10.978c.027 0-.124-.033-.144-.051-.162-.146-.334-.356-.334-.591l.07-5.33a.825.825 0 0 1 .826-.825h1.203a.03.03 0 0 0 .03-.034c-.047-.281-.07-1.728.574-2.141a.03.03 0 0 0 .014-.029.03.03 0 0 0-.02-.025c-.782-.287-1.645-.534-2.568-.641a.03.03 0 0 1-.002-.06 4.861 4.861 0 0 0 3.95-4.773">
</path>
</svg>
</div>
<div spz-if="${item.icon_type === 'default'&&item.type == 'logitics_setting'}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M10.469 5.344c.094.375.187.75.187 1.125 0 .656-.094 1.218-.375 1.687-.281.563-.562 1.031-.937 1.406-.375.376-.844.75-1.406.938-.563.188-1.125.375-1.688.375-.656 0-1.219-.094-1.687-.375-.563-.187-1.032-.562-1.407-.937-.375-.376-.75-.844-.937-1.407-.281-.562-.375-1.125-.375-1.687V6.28c-.375.282-.469.563-.657.844A3.37 3.37 0 0 0 1 8.156V19.22c0 .281.094.468.188.656.187.188.375.188.562.188h.469c0-.938.187-1.594.656-2.063.469-.469 1.125-.656 1.969-.656.937 0 1.593.281 1.968.75.47.468.657 1.125.657 1.968h5.812c.188 0 .375-.093.563-.187.187-.187.281-.375.281-.562V5.53h-3.656z">
</path>
<path fill="currentColor"
d="M5.031 18.656c-.375 0-.75.094-.937.375-.282.282-.375.563-.375.938s.094.656.375.937c.281.282.562.375.937.375s.75-.093.938-.375c.281-.281.375-.562.375-.937s-.094-.75-.375-.938c-.282-.187-.563-.375-.938-.375m14.532.094c.375 0 .656.094.937.375s.375.563.375.938-.094.75-.375.937c-.281.281-.562.375-.937.375s-.75-.094-.938-.375c-.281-.281-.375-.562-.375-.937s.094-.657.375-.938c.281-.281.563-.375.938-.375">
</path>
<path fill="currentColor"
d="M23.406 15c-.093-.844-.281-1.594-.562-2.437a8 8 0 0 0-1.219-2.344A3.994 3.994 0 0 0 20.5 9.188c-.469-.282-.937-.563-1.406-.75-.469-.188-1.032-.282-1.5-.376-.469-.093-1.032-.093-1.5-.093-.188 0-.282.093-.375.375-.094.187-.188.375-.188.562v10.219c0 .281.094.469.281.656a.851.851 0 0 0 .657.282h.375c0-.375.093-.657.187-1.032.094-.281.282-.562.563-.843.187-.282.468-.47.843-.563.282-.187.657-.187 1.032-.187s.75.093 1.031.187c.375.094.656.281.844.469.281.187.468.468.562.843.188.375.188.75.188 1.22h.843c.094 0 .188 0 .188-.095.094-.093.094-.187.094-.28 0-.095.093-.282.093-.376v-1.968c.282-.844.188-1.594.094-2.438m-1.687-.281h-4.407c-.093 0-.187-.094-.28-.188-.095-.094-.188-.187-.188-.281v-3.844c0-.187.093-.281.187-.469a.716.716 0 0 1 .469-.187h1.031c.282 0 .563.094.938.188.281.093.656.28.937.562.469.469.75 1.031.938 1.688.187.656.375 1.312.468 1.968v.188c.094.281 0 .375-.093.375M6.156 3C4.188 3 2.594 4.594 2.594 6.469c0 1.968 1.594 3.468 3.562 3.468A3.46 3.46 0 0 0 9.625 6.47 3.46 3.46 0 0 0 6.156 3m1.688 3.188-2.25 1.968-1.219-1.125V5.72l1.219 1.125 2.25-2.063z">
</path>
</svg>
</div>
<div spz-if="${item.icon_type === 'default'&&item.type == 'customer_setting'}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M11.966 4.548c-3.109 0-5.628 2.467-5.628 5.51 0 3.044 2.52 5.51 5.628 5.51 3.109 0 5.628-2.466 5.628-5.51 0-3.043-2.52-5.51-5.628-5.51m-6.5 7.626V7.087a2.69 2.69 0 0 0-.21.008c1.153-2.504 3.721-4.247 6.71-4.247 2.99 0 5.559 1.743 6.712 4.247a2.677 2.677 0 0 0-.212-.008v5.087c1.436 0 2.6-1.14 2.6-2.544 0-.954-.537-1.785-1.33-2.22C18.616 4.26 15.565 2 11.965 2c-3.599 0-6.65 2.261-7.768 5.41a2.534 2.534 0 0 0-1.331 2.22c0 1.405 1.163 2.544 2.6 2.544m12.116 2.916a8.3 8.3 0 0 1-5.616 2.167 8.3 8.3 0 0 1-5.608-2.16C3.728 16.424 2 18.783 2 21.987h20c0-3.21-1.76-5.572-4.418-6.896">
</path>
</svg>
</div>
<div spz-if="${item.icon_type === 'custom'}">
<ljs-img class="trust-thumbnail-img" width="24" height="24" layout="fixed" src="//img.fantaskycdn.com/${item.icon}" object-fit="contain" alt="trust-img"></ljs-img>
</div>
<span class="trust-thumbnail-title">${item.title}</span>
</div>
<div class="trust-card-desc-text"> ${item.content.replaceAll("{store_name}","linenstylish")} </div>
<div spz-if="${item.logos.length > 0&&item.logos_type=='default' }" class="trust-card-desc-img">
<ljs-img spz-for="(logo,index) in item.logos" key="index" width="55" height="35" class="icon-trust-block" layout="fixed" src="//img.fantaskycdn.com/${logo}" object-fit="contain" alt="trust-img"></ljs-img>
</div>
<div spz-if="${item.logos.length > 0&&item.logos_type=='custom' }" class="trust-card-desc-img-custom">
<ljs-img spz-for="(logo,index) in item.logos" key="index" width="${logo.width}" height="${logo.height}" class="icon-trust-block-custom" layout="responsive" src="//img.fantaskycdn.com/${logo.path}" object-fit="contain"
auto-fit="" alt="image"></ljs-img>
</div>
</div>
</div>
</div>
</ljs-sidebar>
</div>
</div>
</div>
</template>
<div spz-if="false" class="plugin-strengthen-trust-container">
<div class=" plugin-strengthen-trust-1539149753700-wrap md:hidden expanded-column-4 ">
<div class="trust-big-title type-title-font-family "> Security and Service </div>
<div spz-if="true" class="store-open-trust-tips"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<g clip-path="url(#clip0_2160_10007)">
<path
d="M8.92398 8.53999C8.924 8.66134 8.90011 8.7815 8.85368 8.89362C8.80725 9.00574 8.7392 9.10761 8.6534 9.19342C8.5676 9.27923 8.46573 9.3473 8.35362 9.39375C8.24151 9.44019 8.12135 9.46409 8 9.46409C7.87865 9.46409 7.75849 9.44019 7.64638 9.39375C7.53427 9.3473 7.43241 9.27923 7.3466 9.19342C7.2608 9.10761 7.19275 9.00574 7.14632 8.89362C7.09989 8.7815 7.076 8.66134 7.07602 8.53999V4.23208C7.076 4.11073 7.09989 3.99056 7.14632 3.87845C7.19275 3.76633 7.2608 3.66446 7.3466 3.57865C7.43241 3.49283 7.53427 3.42476 7.64638 3.37832C7.75849 3.33188 7.87865 3.30798 8 3.30798C8.12135 3.30798 8.24151 3.33188 8.35362 3.37832C8.46573 3.42476 8.5676 3.49283 8.6534 3.57865C8.7392 3.66446 8.80725 3.76633 8.85368 3.87845C8.90011 3.99056 8.924 4.11073 8.92398 4.23208V8.53999ZM8 12.5399C7.7872 12.5392 7.58121 12.4648 7.41712 12.3293C7.25303 12.1938 7.141 12.0056 7.10009 11.7968C7.05919 11.5879 7.09195 11.3714 7.1928 11.184C7.29365 10.9966 7.45634 10.8499 7.65317 10.769C7.84999 10.6881 8.06878 10.678 8.27226 10.7403C8.47574 10.8026 8.65133 10.9335 8.76912 11.1107C8.88691 11.2879 8.93962 11.5005 8.91826 11.7123C8.8969 11.924 8.8028 12.1218 8.65199 12.2719C8.56722 12.3585 8.46569 12.427 8.35359 12.4731C8.24149 12.5191 8.12118 12.5419 8 12.5399ZM8 0.000162657C6.92965 -0.00673195 5.86922 0.205626 4.88406 0.62415C2.96107 1.43154 1.43154 2.96107 0.62415 4.88406C0.205626 5.86922 -0.00673195 6.92965 0.000162657 8C-0.00673195 9.07035 0.205626 10.1308 0.62415 11.1159C1.43154 13.0389 2.96107 14.5685 4.88406 15.3759C5.86922 15.7944 6.92965 16.0067 8 15.9998C9.07035 16.0067 10.1308 15.7944 11.1159 15.3759C13.0389 14.5685 14.5685 13.0389 15.3759 11.1159C15.7944 10.1308 16.0067 9.07035 15.9998 8C16.0067 6.92965 15.7944 5.86922 15.3759 4.88406C14.5685 2.96107 13.0389 1.43154 11.1159 0.62415C10.1308 0.205626 9.07035 -0.00673195 8 0.000162657Z"
fill="#FF7979"></path>
</g>
<defs>
<clipPath id="clip0_2160_10007">
<rect width="16" height="16" fill="white"></rect>
</clipPath>
</defs>
</svg> <span class="tips-text"> To display this card to customers, you need to go to "Booster & Store Conversion" to turn on the trust enhancement feature. </span> </div> <ljs-accordion
class="trust-card-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-container spz-unresolved i-spzhtml-unresolved" layout="container" i-spzhtml-layout="container">
<section class="" @expand="strengthen-trust-render-script-1539149753700.track(type='trust_expand_click');">
<div class="trust-accordion-header">
<div class="trust-title-block"> <svg class="icon_security_trust" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M9.99932 0C10.5736 0 11.1307 0.184885 11.5792 0.524258L12.0909 0.911325C13.4831 1.96508 15.0052 2.85514 16.6239 3.56198L17.9248 4.13095C18.3719 4.32298 18.7485 4.63668 19.0065 5.03203C19.2644 5.42739 19.3921 5.88649 19.3732 6.35077C18.9684 14.8758 13.0391 18.7013 11.0849 19.7312C10.4069 20.0896 9.59169 20.0896 8.91232 19.7312C6.95805 18.7 1.03164 14.8731 0.626913 6.32479C0.607503 5.85814 0.736181 5.39668 0.996373 4.99983C1.25657 4.60299 1.63636 4.28894 2.08683 4.09813L3.31114 3.57292C4.97349 2.85777 6.53548 1.94994 7.96121 0.870293L8.41942 0.524258C8.86789 0.184885 9.42506 0 9.99932 0ZM7.19446 9.35226C7.43734 9.34797 7.67239 9.43812 7.85011 9.60372L9.12261 10.875L12.1639 7.83623C12.3416 7.67063 12.5766 7.58047 12.8195 7.58476C13.0624 7.58904 13.2941 7.68743 13.4659 7.8592C13.6377 8.03096 13.736 8.2627 13.7403 8.50557C13.7446 8.74845 13.6545 8.98351 13.4889 9.16123L9.78511 12.8637C9.60933 13.0393 9.37105 13.1379 9.12261 13.1379C8.87418 13.1379 8.63589 13.0393 8.46011 12.8637L6.52511 10.9287C6.35951 10.751 6.26936 10.5159 6.27364 10.2731C6.27793 10.0302 6.37632 9.79846 6.54809 9.6267C6.71985 9.45493 6.95158 9.35654 7.19446 9.35226Z"
fill="currentColor"></path>
</svg> <span class="trust-title">Security and Service</span> <svg class="icon_arrow_trust" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
<path
d="M7.54264 10.3064C7.77695 10.5407 8.15686 10.5407 8.39117 10.3064L12.8459 5.85165C12.9631 5.73449 12.9631 5.54454 12.8459 5.42738L12.5065 5.08797C12.3894 4.97082 12.1994 4.97082 12.0823 5.08797L7.96696 9.20328L3.85155 5.08787C3.73439 4.97071 3.54444 4.97071 3.42728 5.08787L3.08787 5.42728C2.97071 5.54444 2.97071 5.73439 3.08787 5.85154L7.54264 10.3064Z"
fill="currentColor"></path>
</svg> </div>
<div class="trust-thumbnail-desc trust-card-border">
<div class="trust-thumbnail-desc-item" key="payment_setting">
<div spz-if="true">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" class="icon_title_trust scale-125">
<g clip-path="url(#clip0_2533_19421)">
<path
d="M18.5653 9.98893C18.8533 9.78627 19.3146 9.78359 19.6026 9.98893C19.6026 9.98893 20.3706 10.6023 21.3253 11.0103V3.61827C21.3253 3.26094 21.0399 2.97559 20.6879 2.97559H0.626594C0.274586 2.97559 -0.0107422 3.26359 -0.0107422 3.61827V17.2689C-0.0107422 17.6263 0.274586 17.9116 0.626594 17.9116H14.1626C13.9279 17.5516 13.8533 17.0343 13.8533 16.6209V11.5543C13.8533 11.3169 14.0373 11.1676 14.2666 11.2183C14.2666 11.2183 14.8266 11.3649 15.3466 11.3649C16.8346 11.3649 18.5653 9.98895 18.5653 9.98895V9.98893ZM7.88259 9.80494H2.76259C2.40791 9.80494 2.12259 9.51694 2.12259 9.16494C2.12259 8.81026 2.41059 8.52493 2.76259 8.52493H7.88259C8.23727 8.52493 8.52259 8.81293 8.52259 9.16494C8.52259 9.51694 8.23459 9.80494 7.88259 9.80494ZM2.75992 6.3916C2.40791 6.3916 2.12259 6.1036 2.12259 5.75159C2.12259 5.39691 2.40791 5.11159 2.75992 5.11159H18.5519C18.9039 5.11159 19.1893 5.39959 19.1893 5.75159C19.1893 6.10627 18.9039 6.3916 18.5519 6.3916H2.75992Z"
fill="currentColor"></path>
<path
d="M23.4559 12.0668H22.5412C21.2052 12.0668 19.7092 10.8668 19.7092 10.8668C19.4212 10.6615 18.9572 10.6669 18.6692 10.8668C18.6692 10.8668 17.1732 12.0668 15.8372 12.0668H14.9225C14.6879 12.0668 14.4985 12.2588 14.4985 12.4935V16.7842C14.4985 17.2535 14.7972 17.8722 15.1652 18.1655L18.5225 20.8242C18.8905 21.1149 19.4879 21.1149 19.8586 20.8242L23.2159 18.1655C23.5839 17.8749 23.8826 17.2562 23.8826 16.7842V12.4935C23.8826 12.2588 23.6906 12.0668 23.4559 12.0668ZM21.3386 14.7922L19.3866 17.2748C19.0026 17.7655 18.3199 17.7788 17.9172 17.3068L17.0532 16.2988C16.8986 16.1202 16.9199 15.8508 17.0986 15.6961C17.2772 15.5415 17.5466 15.5628 17.7012 15.7415L18.5652 16.7495C18.6186 16.8135 18.6639 16.8135 18.7172 16.7442L20.6692 14.2615C20.8159 14.0775 21.0826 14.0428 21.2692 14.1895C21.4506 14.3388 21.4826 14.6082 21.3386 14.7922Z"
fill="currentColor"></path>
</g>
<defs>
<clipPath id="clip0_2533_19421">
<rect width="24" height="24" fill="currentColor"></rect>
</clipPath>
</defs>
</svg> </div>
</div>
<div class="trust-thumbnail-desc-title">Payment Security</div>
</div>
<div class="trust-thumbnail-desc-item" key="privacy_setting">
<div spz-if="true">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust scale-125">
<path fill="currentColor"
d="M19.505 15.49h-3.174a.712.712 0 0 1-.082-.338v-.675c0-.322.199-.584.444-.584h1.05c.243 0 .441.26.441.582 0 .254.157.46.352.46.194 0 .351-.206.351-.46 0-.83-.512-1.504-1.143-1.504h-1.051c-.632 0-1.145.675-1.145 1.506v.675c0 .114.01.227.032.338h-1.138a.674.674 0 0 0-.66.685v4.614c0 .378.295.685.66.685h5.063c.364 0 .66-.307.66-.685v-4.614a.672.672 0 0 0-.66-.685m-2.193 2.994v1.864a.272.272 0 1 1-.543 0v-1.864a.9.9 0 0 1-.6-.86c0-.499.39-.903.872-.903.481 0 .872.404.872.904 0 .4-.252.74-.601.859m3.6-1.075v3.663a.794.794 0 0 1-.329.643h1.097c0-1.546-.127-3.008-.769-4.306">
</path>
<path fill="currentColor"
d="M16.905 7.214a4.863 4.863 0 0 0-5.79-4.773A4.81 4.81 0 0 0 7.26 6.366a4.863 4.863 0 0 0 3.817 5.61.03.03 0 0 1 .016.05.03.03 0 0 1-.02.008c-4.915.477-8.76 4.613-8.775 9.65a.03.03 0 0 0 .03.03h10.978c.027 0-.124-.033-.144-.051-.162-.146-.334-.356-.334-.591l.07-5.33a.825.825 0 0 1 .826-.825h1.203a.03.03 0 0 0 .03-.034c-.047-.281-.07-1.728.574-2.141a.03.03 0 0 0 .014-.029.03.03 0 0 0-.02-.025c-.782-.287-1.645-.534-2.568-.641a.03.03 0 0 1-.002-.06 4.861 4.861 0 0 0 3.95-4.773">
</path>
</svg> </div>
</div>
<div class="trust-thumbnail-desc-title">Privacy Protection</div>
</div>
<div class="trust-thumbnail-desc-item" key="logitics_setting">
<div spz-if="true">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust scale-125">
<path fill="currentColor"
d="M10.469 5.344c.094.375.187.75.187 1.125 0 .656-.094 1.218-.375 1.687-.281.563-.562 1.031-.937 1.406-.375.376-.844.75-1.406.938-.563.188-1.125.375-1.688.375-.656 0-1.219-.094-1.687-.375-.563-.187-1.032-.562-1.407-.937-.375-.376-.75-.844-.937-1.407-.281-.562-.375-1.125-.375-1.687V6.28c-.375.282-.469.563-.657.844A3.37 3.37 0 0 0 1 8.156V19.22c0 .281.094.468.188.656.187.188.375.188.562.188h.469c0-.938.187-1.594.656-2.063.469-.469 1.125-.656 1.969-.656.937 0 1.593.281 1.968.75.47.468.657 1.125.657 1.968h5.812c.188 0 .375-.093.563-.187.187-.187.281-.375.281-.562V5.53h-3.656z">
</path>
<path fill="currentColor"
d="M5.031 18.656c-.375 0-.75.094-.937.375-.282.282-.375.563-.375.938s.094.656.375.937c.281.282.562.375.937.375s.75-.093.938-.375c.281-.281.375-.562.375-.937s-.094-.75-.375-.938c-.282-.187-.563-.375-.938-.375m14.532.094c.375 0 .656.094.937.375s.375.563.375.938-.094.75-.375.937c-.281.281-.562.375-.937.375s-.75-.094-.938-.375c-.281-.281-.375-.562-.375-.937s.094-.657.375-.938c.281-.281.563-.375.938-.375">
</path>
<path fill="currentColor"
d="M23.406 15c-.093-.844-.281-1.594-.562-2.437a8 8 0 0 0-1.219-2.344A3.994 3.994 0 0 0 20.5 9.188c-.469-.282-.937-.563-1.406-.75-.469-.188-1.032-.282-1.5-.376-.469-.093-1.032-.093-1.5-.093-.188 0-.282.093-.375.375-.094.187-.188.375-.188.562v10.219c0 .281.094.469.281.656a.851.851 0 0 0 .657.282h.375c0-.375.093-.657.187-1.032.094-.281.282-.562.563-.843.187-.282.468-.47.843-.563.282-.187.657-.187 1.032-.187s.75.093 1.031.187c.375.094.656.281.844.469.281.187.468.468.562.843.188.375.188.75.188 1.22h.843c.094 0 .188 0 .188-.095.094-.093.094-.187.094-.28 0-.095.093-.282.093-.376v-1.968c.282-.844.188-1.594.094-2.438m-1.687-.281h-4.407c-.093 0-.187-.094-.28-.188-.095-.094-.188-.187-.188-.281v-3.844c0-.187.093-.281.187-.469a.716.716 0 0 1 .469-.187h1.031c.282 0 .563.094.938.188.281.093.656.28.937.562.469.469.75 1.031.938 1.688.187.656.375 1.312.468 1.968v.188c.094.281 0 .375-.093.375M6.156 3C4.188 3 2.594 4.594 2.594 6.469c0 1.968 1.594 3.468 3.562 3.468A3.46 3.46 0 0 0 9.625 6.47 3.46 3.46 0 0 0 6.156 3m1.688 3.188-2.25 1.968-1.219-1.125V5.72l1.219 1.125 2.25-2.063z">
</path>
</svg> </div>
</div>
<div class="trust-thumbnail-desc-title">Efficient and Safe Logitics</div>
</div>
<div class="trust-thumbnail-desc-item" key="customer_setting">
<div spz-if="true">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust scale-125">
<path fill="currentColor"
d="M11.966 4.548c-3.109 0-5.628 2.467-5.628 5.51 0 3.044 2.52 5.51 5.628 5.51 3.109 0 5.628-2.466 5.628-5.51 0-3.043-2.52-5.51-5.628-5.51m-6.5 7.626V7.087a2.69 2.69 0 0 0-.21.008c1.153-2.504 3.721-4.247 6.71-4.247 2.99 0 5.559 1.743 6.712 4.247a2.677 2.677 0 0 0-.212-.008v5.087c1.436 0 2.6-1.14 2.6-2.544 0-.954-.537-1.785-1.33-2.22C18.616 4.26 15.565 2 11.965 2c-3.599 0-6.65 2.261-7.768 5.41a2.534 2.534 0 0 0-1.331 2.22c0 1.405 1.163 2.544 2.6 2.544m12.116 2.916a8.3 8.3 0 0 1-5.616 2.167 8.3 8.3 0 0 1-5.608-2.16C3.728 16.424 2 18.783 2 21.987h20c0-3.21-1.76-5.572-4.418-6.896">
</path>
</svg> </div>
</div>
<div class="trust-thumbnail-desc-title">Customer Service</div>
</div>
</div>
</div>
<div id="trust-open-card" class="trust-open-card trust-card-border">
<div id="trust-card-desc-block-1539149753700-0" class="trust-card-desc-block" key="payment_setting">
<div class="trust-card-desc-title">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" class="icon_title_trust">
<g clip-path="url(#clip0_2533_19421)">
<path
d="M18.5653 9.98893C18.8533 9.78627 19.3146 9.78359 19.6026 9.98893C19.6026 9.98893 20.3706 10.6023 21.3253 11.0103V3.61827C21.3253 3.26094 21.0399 2.97559 20.6879 2.97559H0.626594C0.274586 2.97559 -0.0107422 3.26359 -0.0107422 3.61827V17.2689C-0.0107422 17.6263 0.274586 17.9116 0.626594 17.9116H14.1626C13.9279 17.5516 13.8533 17.0343 13.8533 16.6209V11.5543C13.8533 11.3169 14.0373 11.1676 14.2666 11.2183C14.2666 11.2183 14.8266 11.3649 15.3466 11.3649C16.8346 11.3649 18.5653 9.98895 18.5653 9.98895V9.98893ZM7.88259 9.80494H2.76259C2.40791 9.80494 2.12259 9.51694 2.12259 9.16494C2.12259 8.81026 2.41059 8.52493 2.76259 8.52493H7.88259C8.23727 8.52493 8.52259 8.81293 8.52259 9.16494C8.52259 9.51694 8.23459 9.80494 7.88259 9.80494ZM2.75992 6.3916C2.40791 6.3916 2.12259 6.1036 2.12259 5.75159C2.12259 5.39691 2.40791 5.11159 2.75992 5.11159H18.5519C18.9039 5.11159 19.1893 5.39959 19.1893 5.75159C19.1893 6.10627 18.9039 6.3916 18.5519 6.3916H2.75992Z"
fill="currentColor"></path>
<path
d="M23.4559 12.0668H22.5412C21.2052 12.0668 19.7092 10.8668 19.7092 10.8668C19.4212 10.6615 18.9572 10.6669 18.6692 10.8668C18.6692 10.8668 17.1732 12.0668 15.8372 12.0668H14.9225C14.6879 12.0668 14.4985 12.2588 14.4985 12.4935V16.7842C14.4985 17.2535 14.7972 17.8722 15.1652 18.1655L18.5225 20.8242C18.8905 21.1149 19.4879 21.1149 19.8586 20.8242L23.2159 18.1655C23.5839 17.8749 23.8826 17.2562 23.8826 16.7842V12.4935C23.8826 12.2588 23.6906 12.0668 23.4559 12.0668ZM21.3386 14.7922L19.3866 17.2748C19.0026 17.7655 18.3199 17.7788 17.9172 17.3068L17.0532 16.2988C16.8986 16.1202 16.9199 15.8508 17.0986 15.6961C17.2772 15.5415 17.5466 15.5628 17.7012 15.7415L18.5652 16.7495C18.6186 16.8135 18.6639 16.8135 18.7172 16.7442L20.6692 14.2615C20.8159 14.0775 21.0826 14.0428 21.2692 14.1895C21.4506 14.3388 21.4826 14.6082 21.3386 14.7922Z"
fill="currentColor"></path>
</g>
<defs>
<clipPath id="clip0_2533_19421">
<rect width="24" height="24" fill="currentColor"></rect>
</clipPath>
</defs>
</svg> </div> <span class="trust-thumbnail-title">Payment Security</span>
</div>
<div class="trust-card-desc-text"> linenstylish is committed to your secure shopping experience. We offer safe and trusted payment options to protect your transactions. Your payment information is shared only with our certified
payment service providers, who are dedicated to maintaining the confidentiality of your details. </div>
<div spz-if="true" class="trust-card-desc-img"> <ljs-img key="0" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/329db58ac0f7bf6e446ea93aa338f25d.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="1" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/b823bc7dd65f1a58d949dfb47916e4b2.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="2" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/3cc7bc0c09f7f0fb19581a21abd4cd53.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="3" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/18345efd4db8552be9c72c41c27ea6e7.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="4" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/0f27c24bf18e73ee40099276c78a2407.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="5" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/b068c5902e07857d5251e11f8198ad80.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="6" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/50927f9a9805ee57dd3971a24ab13037.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="7" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/b4029a4ce8320976ba05b25a1731d926.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img> </div>
</div>
<div id="trust-card-desc-block-1539149753700-1" class="trust-card-desc-block" key="privacy_setting">
<div class="trust-card-desc-title">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M19.505 15.49h-3.174a.712.712 0 0 1-.082-.338v-.675c0-.322.199-.584.444-.584h1.05c.243 0 .441.26.441.582 0 .254.157.46.352.46.194 0 .351-.206.351-.46 0-.83-.512-1.504-1.143-1.504h-1.051c-.632 0-1.145.675-1.145 1.506v.675c0 .114.01.227.032.338h-1.138a.674.674 0 0 0-.66.685v4.614c0 .378.295.685.66.685h5.063c.364 0 .66-.307.66-.685v-4.614a.672.672 0 0 0-.66-.685m-2.193 2.994v1.864a.272.272 0 1 1-.543 0v-1.864a.9.9 0 0 1-.6-.86c0-.499.39-.903.872-.903.481 0 .872.404.872.904 0 .4-.252.74-.601.859m3.6-1.075v3.663a.794.794 0 0 1-.329.643h1.097c0-1.546-.127-3.008-.769-4.306">
</path>
<path fill="currentColor"
d="M16.905 7.214a4.863 4.863 0 0 0-5.79-4.773A4.81 4.81 0 0 0 7.26 6.366a4.863 4.863 0 0 0 3.817 5.61.03.03 0 0 1 .016.05.03.03 0 0 1-.02.008c-4.915.477-8.76 4.613-8.775 9.65a.03.03 0 0 0 .03.03h10.978c.027 0-.124-.033-.144-.051-.162-.146-.334-.356-.334-.591l.07-5.33a.825.825 0 0 1 .826-.825h1.203a.03.03 0 0 0 .03-.034c-.047-.281-.07-1.728.574-2.141a.03.03 0 0 0 .014-.029.03.03 0 0 0-.02-.025c-.782-.287-1.645-.534-2.568-.641a.03.03 0 0 1-.002-.06 4.861 4.861 0 0 0 3.95-4.773">
</path>
</svg> </div> <span class="trust-thumbnail-title">Privacy Protection</span>
</div>
<div class="trust-card-desc-text"> At linenstylish, your privacy is our priority. We employ internationally recognized encryption methods for all network transmissions, ensuring the utmost security for your private data during your
shopping journey. This includes the protection of your shipping address, credit card information, shopping details, and more. Shop with confidence, knowing your privacy is safeguarded with us. </div>
</div>
<div id="trust-card-desc-block-1539149753700-2" class="trust-card-desc-block" key="logitics_setting">
<div class="trust-card-desc-title">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M10.469 5.344c.094.375.187.75.187 1.125 0 .656-.094 1.218-.375 1.687-.281.563-.562 1.031-.937 1.406-.375.376-.844.75-1.406.938-.563.188-1.125.375-1.688.375-.656 0-1.219-.094-1.687-.375-.563-.187-1.032-.562-1.407-.937-.375-.376-.75-.844-.937-1.407-.281-.562-.375-1.125-.375-1.687V6.28c-.375.282-.469.563-.657.844A3.37 3.37 0 0 0 1 8.156V19.22c0 .281.094.468.188.656.187.188.375.188.562.188h.469c0-.938.187-1.594.656-2.063.469-.469 1.125-.656 1.969-.656.937 0 1.593.281 1.968.75.47.468.657 1.125.657 1.968h5.812c.188 0 .375-.093.563-.187.187-.187.281-.375.281-.562V5.53h-3.656z">
</path>
<path fill="currentColor"
d="M5.031 18.656c-.375 0-.75.094-.937.375-.282.282-.375.563-.375.938s.094.656.375.937c.281.282.562.375.937.375s.75-.093.938-.375c.281-.281.375-.562.375-.937s-.094-.75-.375-.938c-.282-.187-.563-.375-.938-.375m14.532.094c.375 0 .656.094.937.375s.375.563.375.938-.094.75-.375.937c-.281.281-.562.375-.937.375s-.75-.094-.938-.375c-.281-.281-.375-.562-.375-.937s.094-.657.375-.938c.281-.281.563-.375.938-.375">
</path>
<path fill="currentColor"
d="M23.406 15c-.093-.844-.281-1.594-.562-2.437a8 8 0 0 0-1.219-2.344A3.994 3.994 0 0 0 20.5 9.188c-.469-.282-.937-.563-1.406-.75-.469-.188-1.032-.282-1.5-.376-.469-.093-1.032-.093-1.5-.093-.188 0-.282.093-.375.375-.094.187-.188.375-.188.562v10.219c0 .281.094.469.281.656a.851.851 0 0 0 .657.282h.375c0-.375.093-.657.187-1.032.094-.281.282-.562.563-.843.187-.282.468-.47.843-.563.282-.187.657-.187 1.032-.187s.75.093 1.031.187c.375.094.656.281.844.469.281.187.468.468.562.843.188.375.188.75.188 1.22h.843c.094 0 .188 0 .188-.095.094-.093.094-.187.094-.28 0-.095.093-.282.093-.376v-1.968c.282-.844.188-1.594.094-2.438m-1.687-.281h-4.407c-.093 0-.187-.094-.28-.188-.095-.094-.188-.187-.188-.281v-3.844c0-.187.093-.281.187-.469a.716.716 0 0 1 .469-.187h1.031c.282 0 .563.094.938.188.281.093.656.28.937.562.469.469.75 1.031.938 1.688.187.656.375 1.312.468 1.968v.188c.094.281 0 .375-.093.375M6.156 3C4.188 3 2.594 4.594 2.594 6.469c0 1.968 1.594 3.468 3.562 3.468A3.46 3.46 0 0 0 9.625 6.47 3.46 3.46 0 0 0 6.156 3m1.688 3.188-2.25 1.968-1.219-1.125V5.72l1.219 1.125 2.25-2.063z">
</path>
</svg> </div> <span class="trust-thumbnail-title">Efficient and Safe Logitics</span>
</div>
<div class="trust-card-desc-text"> At linenstylish, we ensure secure and efficient logistics. Track your order in real-time right from the order page. For added security, consider our optional "Shipping Protection" service. If your
purchase encounters any delays, damage, or loss during delivery, rest assured, our insurance will cover your losses.
<a target="_blank" rel="noreferrer" href="https://www.seel.com/terms/shipping-protection-for-customer">learn more</a> </div>
<div spz-if="true" class="trust-card-desc-img"> <ljs-img key="0" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/4e628a598fd199505f3299e1184bb0c9.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="1" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/ed09bd56b0a33c981a6bbdbcf97e348f.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="2" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/a1b992c66e86603a67a5fe1b1a4b0570.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="3" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/2cb1039ea5e997169f3d8f72ec5ebec9.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="4" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/11e0aef019c2bad92cd867abff3e72ad.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="5" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/1d4ed10d4d6da3dffe658be5b52df89f.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img> </div>
</div>
<div id="trust-card-desc-block-1539149753700-3" class="trust-card-desc-block" key="customer_setting">
<div class="trust-card-desc-title">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M11.966 4.548c-3.109 0-5.628 2.467-5.628 5.51 0 3.044 2.52 5.51 5.628 5.51 3.109 0 5.628-2.466 5.628-5.51 0-3.043-2.52-5.51-5.628-5.51m-6.5 7.626V7.087a2.69 2.69 0 0 0-.21.008c1.153-2.504 3.721-4.247 6.71-4.247 2.99 0 5.559 1.743 6.712 4.247a2.677 2.677 0 0 0-.212-.008v5.087c1.436 0 2.6-1.14 2.6-2.544 0-.954-.537-1.785-1.33-2.22C18.616 4.26 15.565 2 11.965 2c-3.599 0-6.65 2.261-7.768 5.41a2.534 2.534 0 0 0-1.331 2.22c0 1.405 1.163 2.544 2.6 2.544m12.116 2.916a8.3 8.3 0 0 1-5.616 2.167 8.3 8.3 0 0 1-5.608-2.16C3.728 16.424 2 18.783 2 21.987h20c0-3.21-1.76-5.572-4.418-6.896">
</path>
</svg> </div> <span class="trust-thumbnail-title">Customer Service</span>
</div>
<div class="trust-card-desc-text"> If you encounter problems during or after shopping, don't hesitate to reach out. linenstylish's customer service team is here to assist you.
<a target="_blank" rel="noreferrer" href="/">learn more</a> </div>
</div>
</div>
</section>
</ljs-accordion>
</div>
<div class="plugin-strengthen-trust-1539149753700-wrap lg:hidden ">
<div spz-if="true" class="store-open-trust-tips"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<g clip-path="url(#clip0_2160_10007)">
<path
d="M8.92398 8.53999C8.924 8.66134 8.90011 8.7815 8.85368 8.89362C8.80725 9.00574 8.7392 9.10761 8.6534 9.19342C8.5676 9.27923 8.46573 9.3473 8.35362 9.39375C8.24151 9.44019 8.12135 9.46409 8 9.46409C7.87865 9.46409 7.75849 9.44019 7.64638 9.39375C7.53427 9.3473 7.43241 9.27923 7.3466 9.19342C7.2608 9.10761 7.19275 9.00574 7.14632 8.89362C7.09989 8.7815 7.076 8.66134 7.07602 8.53999V4.23208C7.076 4.11073 7.09989 3.99056 7.14632 3.87845C7.19275 3.76633 7.2608 3.66446 7.3466 3.57865C7.43241 3.49283 7.53427 3.42476 7.64638 3.37832C7.75849 3.33188 7.87865 3.30798 8 3.30798C8.12135 3.30798 8.24151 3.33188 8.35362 3.37832C8.46573 3.42476 8.5676 3.49283 8.6534 3.57865C8.7392 3.66446 8.80725 3.76633 8.85368 3.87845C8.90011 3.99056 8.924 4.11073 8.92398 4.23208V8.53999ZM8 12.5399C7.7872 12.5392 7.58121 12.4648 7.41712 12.3293C7.25303 12.1938 7.141 12.0056 7.10009 11.7968C7.05919 11.5879 7.09195 11.3714 7.1928 11.184C7.29365 10.9966 7.45634 10.8499 7.65317 10.769C7.84999 10.6881 8.06878 10.678 8.27226 10.7403C8.47574 10.8026 8.65133 10.9335 8.76912 11.1107C8.88691 11.2879 8.93962 11.5005 8.91826 11.7123C8.8969 11.924 8.8028 12.1218 8.65199 12.2719C8.56722 12.3585 8.46569 12.427 8.35359 12.4731C8.24149 12.5191 8.12118 12.5419 8 12.5399ZM8 0.000162657C6.92965 -0.00673195 5.86922 0.205626 4.88406 0.62415C2.96107 1.43154 1.43154 2.96107 0.62415 4.88406C0.205626 5.86922 -0.00673195 6.92965 0.000162657 8C-0.00673195 9.07035 0.205626 10.1308 0.62415 11.1159C1.43154 13.0389 2.96107 14.5685 4.88406 15.3759C5.86922 15.7944 6.92965 16.0067 8 15.9998C9.07035 16.0067 10.1308 15.7944 11.1159 15.3759C13.0389 14.5685 14.5685 13.0389 15.3759 11.1159C15.7944 10.1308 16.0067 9.07035 15.9998 8C16.0067 6.92965 15.7944 5.86922 15.3759 4.88406C14.5685 2.96107 13.0389 1.43154 11.1159 0.62415C10.1308 0.205626 9.07035 -0.00673195 8 0.000162657Z"
fill="#FF7979"></path>
</g>
<defs>
<clipPath id="clip0_2160_10007">
<rect width="16" height="16" fill="white"></rect>
</clipPath>
</defs>
</svg> <span class="tips-text"> To display this card to customers, you need to go to "Booster & Store Conversion" to turn on the trust enhancement feature. </span> </div>
<div class="trust-card-block" layout="container">
<div class="trust-accordion-header">
<div class="trust-title-block"> <svg class="icon_security_trust" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M9.99932 0C10.5736 0 11.1307 0.184885 11.5792 0.524258L12.0909 0.911325C13.4831 1.96508 15.0052 2.85514 16.6239 3.56198L17.9248 4.13095C18.3719 4.32298 18.7485 4.63668 19.0065 5.03203C19.2644 5.42739 19.3921 5.88649 19.3732 6.35077C18.9684 14.8758 13.0391 18.7013 11.0849 19.7312C10.4069 20.0896 9.59169 20.0896 8.91232 19.7312C6.95805 18.7 1.03164 14.8731 0.626913 6.32479C0.607503 5.85814 0.736181 5.39668 0.996373 4.99983C1.25657 4.60299 1.63636 4.28894 2.08683 4.09813L3.31114 3.57292C4.97349 2.85777 6.53548 1.94994 7.96121 0.870293L8.41942 0.524258C8.86789 0.184885 9.42506 0 9.99932 0ZM7.19446 9.35226C7.43734 9.34797 7.67239 9.43812 7.85011 9.60372L9.12261 10.875L12.1639 7.83623C12.3416 7.67063 12.5766 7.58047 12.8195 7.58476C13.0624 7.58904 13.2941 7.68743 13.4659 7.8592C13.6377 8.03096 13.736 8.2627 13.7403 8.50557C13.7446 8.74845 13.6545 8.98351 13.4889 9.16123L9.78511 12.8637C9.60933 13.0393 9.37105 13.1379 9.12261 13.1379C8.87418 13.1379 8.63589 13.0393 8.46011 12.8637L6.52511 10.9287C6.35951 10.751 6.26936 10.5159 6.27364 10.2731C6.27793 10.0302 6.37632 9.79846 6.54809 9.6267C6.71985 9.45493 6.95158 9.35654 7.19446 9.35226Z"
fill="currentColor"></path>
</svg> <span class="trust-title">Security and Service</span> </div>
<div class="trust-thumbnail-desc trust-card-border">
<div class="trust-thumbnail-desc-item" key="payment_setting"
@tap="trust-sidebar-1539149753700.open;sidebar-scroll-1539149753700.setTarget(containerId='sidebar-bottom-content-1539149753700', targetId='trust-card-desc-block-1539149753700-0');strengthen-trust-render-script-1539149753700.track(type='trust_expand_click');">
<div spz-if="true">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" class="icon_title_trust">
<g clip-path="url(#clip0_2533_19421)">
<path
d="M18.5653 9.98893C18.8533 9.78627 19.3146 9.78359 19.6026 9.98893C19.6026 9.98893 20.3706 10.6023 21.3253 11.0103V3.61827C21.3253 3.26094 21.0399 2.97559 20.6879 2.97559H0.626594C0.274586 2.97559 -0.0107422 3.26359 -0.0107422 3.61827V17.2689C-0.0107422 17.6263 0.274586 17.9116 0.626594 17.9116H14.1626C13.9279 17.5516 13.8533 17.0343 13.8533 16.6209V11.5543C13.8533 11.3169 14.0373 11.1676 14.2666 11.2183C14.2666 11.2183 14.8266 11.3649 15.3466 11.3649C16.8346 11.3649 18.5653 9.98895 18.5653 9.98895V9.98893ZM7.88259 9.80494H2.76259C2.40791 9.80494 2.12259 9.51694 2.12259 9.16494C2.12259 8.81026 2.41059 8.52493 2.76259 8.52493H7.88259C8.23727 8.52493 8.52259 8.81293 8.52259 9.16494C8.52259 9.51694 8.23459 9.80494 7.88259 9.80494ZM2.75992 6.3916C2.40791 6.3916 2.12259 6.1036 2.12259 5.75159C2.12259 5.39691 2.40791 5.11159 2.75992 5.11159H18.5519C18.9039 5.11159 19.1893 5.39959 19.1893 5.75159C19.1893 6.10627 18.9039 6.3916 18.5519 6.3916H2.75992Z"
fill="currentColor"></path>
<path
d="M23.4559 12.0668H22.5412C21.2052 12.0668 19.7092 10.8668 19.7092 10.8668C19.4212 10.6615 18.9572 10.6669 18.6692 10.8668C18.6692 10.8668 17.1732 12.0668 15.8372 12.0668H14.9225C14.6879 12.0668 14.4985 12.2588 14.4985 12.4935V16.7842C14.4985 17.2535 14.7972 17.8722 15.1652 18.1655L18.5225 20.8242C18.8905 21.1149 19.4879 21.1149 19.8586 20.8242L23.2159 18.1655C23.5839 17.8749 23.8826 17.2562 23.8826 16.7842V12.4935C23.8826 12.2588 23.6906 12.0668 23.4559 12.0668ZM21.3386 14.7922L19.3866 17.2748C19.0026 17.7655 18.3199 17.7788 17.9172 17.3068L17.0532 16.2988C16.8986 16.1202 16.9199 15.8508 17.0986 15.6961C17.2772 15.5415 17.5466 15.5628 17.7012 15.7415L18.5652 16.7495C18.6186 16.8135 18.6639 16.8135 18.7172 16.7442L20.6692 14.2615C20.8159 14.0775 21.0826 14.0428 21.2692 14.1895C21.4506 14.3388 21.4826 14.6082 21.3386 14.7922Z"
fill="currentColor"></path>
</g>
<defs>
<clipPath id="clip0_2533_19421">
<rect width="24" height="24" fill="currentColor"></rect>
</clipPath>
</defs>
</svg> </div>
</div>
<div class="trust-thumbnail-desc-title">Payment Security</div> <svg xmlns="http://www.w3.org/2000/svg" class="icon_arrow_right_trust" width="12" height="12" viewBox="0 0 12 12" fill="none">
<path
d="M7.62392 6.4489C7.85824 6.21459 7.85824 5.83468 7.62393 5.60037L4.44195 2.41839C4.3248 2.30124 4.13485 2.30124 4.01769 2.41839L3.8692 2.56689C3.75204 2.68404 3.75204 2.87399 3.8692 2.99115L6.90264 6.0246L3.86912 9.05812C3.75196 9.17528 3.75196 9.36523 3.86912 9.48239L4.01761 9.63088C4.13477 9.74804 4.32472 9.74804 4.44187 9.63088L7.62392 6.4489Z"
fill="#292929"></path>
</svg>
</div>
<div class="trust-thumbnail-desc-item" key="privacy_setting"
@tap="trust-sidebar-1539149753700.open;sidebar-scroll-1539149753700.setTarget(containerId='sidebar-bottom-content-1539149753700', targetId='trust-card-desc-block-1539149753700-1');strengthen-trust-render-script-1539149753700.track(type='trust_expand_click');">
<div spz-if="true">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M19.505 15.49h-3.174a.712.712 0 0 1-.082-.338v-.675c0-.322.199-.584.444-.584h1.05c.243 0 .441.26.441.582 0 .254.157.46.352.46.194 0 .351-.206.351-.46 0-.83-.512-1.504-1.143-1.504h-1.051c-.632 0-1.145.675-1.145 1.506v.675c0 .114.01.227.032.338h-1.138a.674.674 0 0 0-.66.685v4.614c0 .378.295.685.66.685h5.063c.364 0 .66-.307.66-.685v-4.614a.672.672 0 0 0-.66-.685m-2.193 2.994v1.864a.272.272 0 1 1-.543 0v-1.864a.9.9 0 0 1-.6-.86c0-.499.39-.903.872-.903.481 0 .872.404.872.904 0 .4-.252.74-.601.859m3.6-1.075v3.663a.794.794 0 0 1-.329.643h1.097c0-1.546-.127-3.008-.769-4.306">
</path>
<path fill="currentColor"
d="M16.905 7.214a4.863 4.863 0 0 0-5.79-4.773A4.81 4.81 0 0 0 7.26 6.366a4.863 4.863 0 0 0 3.817 5.61.03.03 0 0 1 .016.05.03.03 0 0 1-.02.008c-4.915.477-8.76 4.613-8.775 9.65a.03.03 0 0 0 .03.03h10.978c.027 0-.124-.033-.144-.051-.162-.146-.334-.356-.334-.591l.07-5.33a.825.825 0 0 1 .826-.825h1.203a.03.03 0 0 0 .03-.034c-.047-.281-.07-1.728.574-2.141a.03.03 0 0 0 .014-.029.03.03 0 0 0-.02-.025c-.782-.287-1.645-.534-2.568-.641a.03.03 0 0 1-.002-.06 4.861 4.861 0 0 0 3.95-4.773">
</path>
</svg> </div>
</div>
<div class="trust-thumbnail-desc-title">Privacy Protection</div> <svg xmlns="http://www.w3.org/2000/svg" class="icon_arrow_right_trust" width="12" height="12" viewBox="0 0 12 12" fill="none">
<path
d="M7.62392 6.4489C7.85824 6.21459 7.85824 5.83468 7.62393 5.60037L4.44195 2.41839C4.3248 2.30124 4.13485 2.30124 4.01769 2.41839L3.8692 2.56689C3.75204 2.68404 3.75204 2.87399 3.8692 2.99115L6.90264 6.0246L3.86912 9.05812C3.75196 9.17528 3.75196 9.36523 3.86912 9.48239L4.01761 9.63088C4.13477 9.74804 4.32472 9.74804 4.44187 9.63088L7.62392 6.4489Z"
fill="#292929"></path>
</svg>
</div>
<div class="trust-thumbnail-desc-item" key="logitics_setting"
@tap="trust-sidebar-1539149753700.open;sidebar-scroll-1539149753700.setTarget(containerId='sidebar-bottom-content-1539149753700', targetId='trust-card-desc-block-1539149753700-2');strengthen-trust-render-script-1539149753700.track(type='trust_expand_click');">
<div spz-if="true">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M10.469 5.344c.094.375.187.75.187 1.125 0 .656-.094 1.218-.375 1.687-.281.563-.562 1.031-.937 1.406-.375.376-.844.75-1.406.938-.563.188-1.125.375-1.688.375-.656 0-1.219-.094-1.687-.375-.563-.187-1.032-.562-1.407-.937-.375-.376-.75-.844-.937-1.407-.281-.562-.375-1.125-.375-1.687V6.28c-.375.282-.469.563-.657.844A3.37 3.37 0 0 0 1 8.156V19.22c0 .281.094.468.188.656.187.188.375.188.562.188h.469c0-.938.187-1.594.656-2.063.469-.469 1.125-.656 1.969-.656.937 0 1.593.281 1.968.75.47.468.657 1.125.657 1.968h5.812c.188 0 .375-.093.563-.187.187-.187.281-.375.281-.562V5.53h-3.656z">
</path>
<path fill="currentColor"
d="M5.031 18.656c-.375 0-.75.094-.937.375-.282.282-.375.563-.375.938s.094.656.375.937c.281.282.562.375.937.375s.75-.093.938-.375c.281-.281.375-.562.375-.937s-.094-.75-.375-.938c-.282-.187-.563-.375-.938-.375m14.532.094c.375 0 .656.094.937.375s.375.563.375.938-.094.75-.375.937c-.281.281-.562.375-.937.375s-.75-.094-.938-.375c-.281-.281-.375-.562-.375-.937s.094-.657.375-.938c.281-.281.563-.375.938-.375">
</path>
<path fill="currentColor"
d="M23.406 15c-.093-.844-.281-1.594-.562-2.437a8 8 0 0 0-1.219-2.344A3.994 3.994 0 0 0 20.5 9.188c-.469-.282-.937-.563-1.406-.75-.469-.188-1.032-.282-1.5-.376-.469-.093-1.032-.093-1.5-.093-.188 0-.282.093-.375.375-.094.187-.188.375-.188.562v10.219c0 .281.094.469.281.656a.851.851 0 0 0 .657.282h.375c0-.375.093-.657.187-1.032.094-.281.282-.562.563-.843.187-.282.468-.47.843-.563.282-.187.657-.187 1.032-.187s.75.093 1.031.187c.375.094.656.281.844.469.281.187.468.468.562.843.188.375.188.75.188 1.22h.843c.094 0 .188 0 .188-.095.094-.093.094-.187.094-.28 0-.095.093-.282.093-.376v-1.968c.282-.844.188-1.594.094-2.438m-1.687-.281h-4.407c-.093 0-.187-.094-.28-.188-.095-.094-.188-.187-.188-.281v-3.844c0-.187.093-.281.187-.469a.716.716 0 0 1 .469-.187h1.031c.282 0 .563.094.938.188.281.093.656.28.937.562.469.469.75 1.031.938 1.688.187.656.375 1.312.468 1.968v.188c.094.281 0 .375-.093.375M6.156 3C4.188 3 2.594 4.594 2.594 6.469c0 1.968 1.594 3.468 3.562 3.468A3.46 3.46 0 0 0 9.625 6.47 3.46 3.46 0 0 0 6.156 3m1.688 3.188-2.25 1.968-1.219-1.125V5.72l1.219 1.125 2.25-2.063z">
</path>
</svg> </div>
</div>
<div class="trust-thumbnail-desc-title">Efficient and Safe Logitics</div> <svg xmlns="http://www.w3.org/2000/svg" class="icon_arrow_right_trust" width="12" height="12" viewBox="0 0 12 12" fill="none">
<path
d="M7.62392 6.4489C7.85824 6.21459 7.85824 5.83468 7.62393 5.60037L4.44195 2.41839C4.3248 2.30124 4.13485 2.30124 4.01769 2.41839L3.8692 2.56689C3.75204 2.68404 3.75204 2.87399 3.8692 2.99115L6.90264 6.0246L3.86912 9.05812C3.75196 9.17528 3.75196 9.36523 3.86912 9.48239L4.01761 9.63088C4.13477 9.74804 4.32472 9.74804 4.44187 9.63088L7.62392 6.4489Z"
fill="#292929"></path>
</svg>
</div>
<div class="trust-thumbnail-desc-item" key="customer_setting"
@tap="trust-sidebar-1539149753700.open;sidebar-scroll-1539149753700.setTarget(containerId='sidebar-bottom-content-1539149753700', targetId='trust-card-desc-block-1539149753700-3');strengthen-trust-render-script-1539149753700.track(type='trust_expand_click');">
<div spz-if="true">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M11.966 4.548c-3.109 0-5.628 2.467-5.628 5.51 0 3.044 2.52 5.51 5.628 5.51 3.109 0 5.628-2.466 5.628-5.51 0-3.043-2.52-5.51-5.628-5.51m-6.5 7.626V7.087a2.69 2.69 0 0 0-.21.008c1.153-2.504 3.721-4.247 6.71-4.247 2.99 0 5.559 1.743 6.712 4.247a2.677 2.677 0 0 0-.212-.008v5.087c1.436 0 2.6-1.14 2.6-2.544 0-.954-.537-1.785-1.33-2.22C18.616 4.26 15.565 2 11.965 2c-3.599 0-6.65 2.261-7.768 5.41a2.534 2.534 0 0 0-1.331 2.22c0 1.405 1.163 2.544 2.6 2.544m12.116 2.916a8.3 8.3 0 0 1-5.616 2.167 8.3 8.3 0 0 1-5.608-2.16C3.728 16.424 2 18.783 2 21.987h20c0-3.21-1.76-5.572-4.418-6.896">
</path>
</svg> </div>
</div>
<div class="trust-thumbnail-desc-title">Customer Service</div> <svg xmlns="http://www.w3.org/2000/svg" class="icon_arrow_right_trust" width="12" height="12" viewBox="0 0 12 12" fill="none">
<path
d="M7.62392 6.4489C7.85824 6.21459 7.85824 5.83468 7.62393 5.60037L4.44195 2.41839C4.3248 2.30124 4.13485 2.30124 4.01769 2.41839L3.8692 2.56689C3.75204 2.68404 3.75204 2.87399 3.8692 2.99115L6.90264 6.0246L3.86912 9.05812C3.75196 9.17528 3.75196 9.36523 3.86912 9.48239L4.01761 9.63088C4.13477 9.74804 4.32472 9.74804 4.44187 9.63088L7.62392 6.4489Z"
fill="#292929"></path>
</svg>
</div>
</div>
</div> <spz-custom-anchor-scroll id="sidebar-scroll-1539149753700" layout="logic" class="i-spzhtml-element i-spzhtml-layout-logic i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="logic"></spz-custom-anchor-scroll> <ljs-sidebar
id="trust-sidebar-1539149753700" class="trust-sidebar" layout="nodisplay" side="bottom" disable-unmount="" @open="sidebar-scroll-1539149753700.scrollToTarget">
<div class="trust-sidebar-cancel trust-card-big-title" @tap="trust-sidebar-1539149753700.close"> <svg class="icon_security_trust" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M9.99932 0C10.5736 0 11.1307 0.184885 11.5792 0.524258L12.0909 0.911325C13.4831 1.96508 15.0052 2.85514 16.6239 3.56198L17.9248 4.13095C18.3719 4.32298 18.7485 4.63668 19.0065 5.03203C19.2644 5.42739 19.3921 5.88649 19.3732 6.35077C18.9684 14.8758 13.0391 18.7013 11.0849 19.7312C10.4069 20.0896 9.59169 20.0896 8.91232 19.7312C6.95805 18.7 1.03164 14.8731 0.626913 6.32479C0.607503 5.85814 0.736181 5.39668 0.996373 4.99983C1.25657 4.60299 1.63636 4.28894 2.08683 4.09813L3.31114 3.57292C4.97349 2.85777 6.53548 1.94994 7.96121 0.870293L8.41942 0.524258C8.86789 0.184885 9.42506 0 9.99932 0ZM7.19446 9.35226C7.43734 9.34797 7.67239 9.43812 7.85011 9.60372L9.12261 10.875L12.1639 7.83623C12.3416 7.67063 12.5766 7.58047 12.8195 7.58476C13.0624 7.58904 13.2941 7.68743 13.4659 7.8592C13.6377 8.03096 13.736 8.2627 13.7403 8.50557C13.7446 8.74845 13.6545 8.98351 13.4889 9.16123L9.78511 12.8637C9.60933 13.0393 9.37105 13.1379 9.12261 13.1379C8.87418 13.1379 8.63589 13.0393 8.46011 12.8637L6.52511 10.9287C6.35951 10.751 6.26936 10.5159 6.27364 10.2731C6.27793 10.0302 6.37632 9.79846 6.54809 9.6267C6.71985 9.45493 6.95158 9.35654 7.19446 9.35226Z"
fill="currentColor"></path>
</svg> <span class="trust-title">Security and Service</span> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M1.93064 17.1473C1.81348 17.2644 1.81348 17.4544 1.93064 17.5715L2.83502 18.4759C2.95217 18.5931 3.14212 18.5931 3.25928 18.4759L9.91177 11.8234L16.6153 18.527C16.7325 18.6442 16.9225 18.6442 17.0396 18.527L17.944 17.6226C18.0611 17.5055 18.0611 17.3155 17.944 17.1984L11.2404 10.4948L17.8929 3.84229C18.0101 3.72513 18.0101 3.53518 17.8929 3.41802L16.9885 2.51365C16.8714 2.39649 16.6814 2.39649 16.5643 2.51365L9.91177 9.16616L3.31035 2.56474C3.19319 2.44758 3.00325 2.44758 2.88609 2.56474L1.98171 3.46911C1.86456 3.58627 1.86456 3.77622 1.98171 3.89337L8.58313 10.4948L1.93064 17.1473Z"
fill="#707070"></path>
</svg> </div>
<div id="sidebar-bottom-content-1539149753700" class="sidebar-bottom-content">
<div id="trust-open-card" class="trust-open-card trust-card-border">
<div id="trust-card-desc-block-1539149753700-0" class="trust-card-desc-block" key="payment_setting">
<div class="trust-card-desc-title">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" class="icon_title_trust">
<g clip-path="url(#clip0_2533_19421)">
<path
d="M18.5653 9.98893C18.8533 9.78627 19.3146 9.78359 19.6026 9.98893C19.6026 9.98893 20.3706 10.6023 21.3253 11.0103V3.61827C21.3253 3.26094 21.0399 2.97559 20.6879 2.97559H0.626594C0.274586 2.97559 -0.0107422 3.26359 -0.0107422 3.61827V17.2689C-0.0107422 17.6263 0.274586 17.9116 0.626594 17.9116H14.1626C13.9279 17.5516 13.8533 17.0343 13.8533 16.6209V11.5543C13.8533 11.3169 14.0373 11.1676 14.2666 11.2183C14.2666 11.2183 14.8266 11.3649 15.3466 11.3649C16.8346 11.3649 18.5653 9.98895 18.5653 9.98895V9.98893ZM7.88259 9.80494H2.76259C2.40791 9.80494 2.12259 9.51694 2.12259 9.16494C2.12259 8.81026 2.41059 8.52493 2.76259 8.52493H7.88259C8.23727 8.52493 8.52259 8.81293 8.52259 9.16494C8.52259 9.51694 8.23459 9.80494 7.88259 9.80494ZM2.75992 6.3916C2.40791 6.3916 2.12259 6.1036 2.12259 5.75159C2.12259 5.39691 2.40791 5.11159 2.75992 5.11159H18.5519C18.9039 5.11159 19.1893 5.39959 19.1893 5.75159C19.1893 6.10627 18.9039 6.3916 18.5519 6.3916H2.75992Z"
fill="currentColor"></path>
<path
d="M23.4559 12.0668H22.5412C21.2052 12.0668 19.7092 10.8668 19.7092 10.8668C19.4212 10.6615 18.9572 10.6669 18.6692 10.8668C18.6692 10.8668 17.1732 12.0668 15.8372 12.0668H14.9225C14.6879 12.0668 14.4985 12.2588 14.4985 12.4935V16.7842C14.4985 17.2535 14.7972 17.8722 15.1652 18.1655L18.5225 20.8242C18.8905 21.1149 19.4879 21.1149 19.8586 20.8242L23.2159 18.1655C23.5839 17.8749 23.8826 17.2562 23.8826 16.7842V12.4935C23.8826 12.2588 23.6906 12.0668 23.4559 12.0668ZM21.3386 14.7922L19.3866 17.2748C19.0026 17.7655 18.3199 17.7788 17.9172 17.3068L17.0532 16.2988C16.8986 16.1202 16.9199 15.8508 17.0986 15.6961C17.2772 15.5415 17.5466 15.5628 17.7012 15.7415L18.5652 16.7495C18.6186 16.8135 18.6639 16.8135 18.7172 16.7442L20.6692 14.2615C20.8159 14.0775 21.0826 14.0428 21.2692 14.1895C21.4506 14.3388 21.4826 14.6082 21.3386 14.7922Z"
fill="currentColor"></path>
</g>
<defs>
<clipPath id="clip0_2533_19421">
<rect width="24" height="24" fill="currentColor"></rect>
</clipPath>
</defs>
</svg> </div> <span class="trust-thumbnail-title">Payment Security</span>
</div>
<div class="trust-card-desc-text"> linenstylish is committed to your secure shopping experience. We offer safe and trusted payment options to protect your transactions. Your payment information is shared only with our certified
payment service providers, who are dedicated to maintaining the confidentiality of your details. </div>
<div spz-if="true" class="trust-card-desc-img"> <ljs-img key="0" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/329db58ac0f7bf6e446ea93aa338f25d.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="1" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/b823bc7dd65f1a58d949dfb47916e4b2.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="2" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/3cc7bc0c09f7f0fb19581a21abd4cd53.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="3" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/18345efd4db8552be9c72c41c27ea6e7.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="4" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/0f27c24bf18e73ee40099276c78a2407.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="5" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/b068c5902e07857d5251e11f8198ad80.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="6" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/50927f9a9805ee57dd3971a24ab13037.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="7" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/b4029a4ce8320976ba05b25a1731d926.svg" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img> </div>
</div>
<div id="trust-card-desc-block-1539149753700-1" class="trust-card-desc-block" key="privacy_setting">
<div class="trust-card-desc-title">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M19.505 15.49h-3.174a.712.712 0 0 1-.082-.338v-.675c0-.322.199-.584.444-.584h1.05c.243 0 .441.26.441.582 0 .254.157.46.352.46.194 0 .351-.206.351-.46 0-.83-.512-1.504-1.143-1.504h-1.051c-.632 0-1.145.675-1.145 1.506v.675c0 .114.01.227.032.338h-1.138a.674.674 0 0 0-.66.685v4.614c0 .378.295.685.66.685h5.063c.364 0 .66-.307.66-.685v-4.614a.672.672 0 0 0-.66-.685m-2.193 2.994v1.864a.272.272 0 1 1-.543 0v-1.864a.9.9 0 0 1-.6-.86c0-.499.39-.903.872-.903.481 0 .872.404.872.904 0 .4-.252.74-.601.859m3.6-1.075v3.663a.794.794 0 0 1-.329.643h1.097c0-1.546-.127-3.008-.769-4.306">
</path>
<path fill="currentColor"
d="M16.905 7.214a4.863 4.863 0 0 0-5.79-4.773A4.81 4.81 0 0 0 7.26 6.366a4.863 4.863 0 0 0 3.817 5.61.03.03 0 0 1 .016.05.03.03 0 0 1-.02.008c-4.915.477-8.76 4.613-8.775 9.65a.03.03 0 0 0 .03.03h10.978c.027 0-.124-.033-.144-.051-.162-.146-.334-.356-.334-.591l.07-5.33a.825.825 0 0 1 .826-.825h1.203a.03.03 0 0 0 .03-.034c-.047-.281-.07-1.728.574-2.141a.03.03 0 0 0 .014-.029.03.03 0 0 0-.02-.025c-.782-.287-1.645-.534-2.568-.641a.03.03 0 0 1-.002-.06 4.861 4.861 0 0 0 3.95-4.773">
</path>
</svg> </div> <span class="trust-thumbnail-title">Privacy Protection</span>
</div>
<div class="trust-card-desc-text"> At linenstylish, your privacy is our priority. We employ internationally recognized encryption methods for all network transmissions, ensuring the utmost security for your private data during
your shopping journey. This includes the protection of your shipping address, credit card information, shopping details, and more. Shop with confidence, knowing your privacy is safeguarded with us. </div>
</div>
<div id="trust-card-desc-block-1539149753700-2" class="trust-card-desc-block" key="logitics_setting">
<div class="trust-card-desc-title">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M10.469 5.344c.094.375.187.75.187 1.125 0 .656-.094 1.218-.375 1.687-.281.563-.562 1.031-.937 1.406-.375.376-.844.75-1.406.938-.563.188-1.125.375-1.688.375-.656 0-1.219-.094-1.687-.375-.563-.187-1.032-.562-1.407-.937-.375-.376-.75-.844-.937-1.407-.281-.562-.375-1.125-.375-1.687V6.28c-.375.282-.469.563-.657.844A3.37 3.37 0 0 0 1 8.156V19.22c0 .281.094.468.188.656.187.188.375.188.562.188h.469c0-.938.187-1.594.656-2.063.469-.469 1.125-.656 1.969-.656.937 0 1.593.281 1.968.75.47.468.657 1.125.657 1.968h5.812c.188 0 .375-.093.563-.187.187-.187.281-.375.281-.562V5.53h-3.656z">
</path>
<path fill="currentColor"
d="M5.031 18.656c-.375 0-.75.094-.937.375-.282.282-.375.563-.375.938s.094.656.375.937c.281.282.562.375.937.375s.75-.093.938-.375c.281-.281.375-.562.375-.937s-.094-.75-.375-.938c-.282-.187-.563-.375-.938-.375m14.532.094c.375 0 .656.094.937.375s.375.563.375.938-.094.75-.375.937c-.281.281-.562.375-.937.375s-.75-.094-.938-.375c-.281-.281-.375-.562-.375-.937s.094-.657.375-.938c.281-.281.563-.375.938-.375">
</path>
<path fill="currentColor"
d="M23.406 15c-.093-.844-.281-1.594-.562-2.437a8 8 0 0 0-1.219-2.344A3.994 3.994 0 0 0 20.5 9.188c-.469-.282-.937-.563-1.406-.75-.469-.188-1.032-.282-1.5-.376-.469-.093-1.032-.093-1.5-.093-.188 0-.282.093-.375.375-.094.187-.188.375-.188.562v10.219c0 .281.094.469.281.656a.851.851 0 0 0 .657.282h.375c0-.375.093-.657.187-1.032.094-.281.282-.562.563-.843.187-.282.468-.47.843-.563.282-.187.657-.187 1.032-.187s.75.093 1.031.187c.375.094.656.281.844.469.281.187.468.468.562.843.188.375.188.75.188 1.22h.843c.094 0 .188 0 .188-.095.094-.093.094-.187.094-.28 0-.095.093-.282.093-.376v-1.968c.282-.844.188-1.594.094-2.438m-1.687-.281h-4.407c-.093 0-.187-.094-.28-.188-.095-.094-.188-.187-.188-.281v-3.844c0-.187.093-.281.187-.469a.716.716 0 0 1 .469-.187h1.031c.282 0 .563.094.938.188.281.093.656.28.937.562.469.469.75 1.031.938 1.688.187.656.375 1.312.468 1.968v.188c.094.281 0 .375-.093.375M6.156 3C4.188 3 2.594 4.594 2.594 6.469c0 1.968 1.594 3.468 3.562 3.468A3.46 3.46 0 0 0 9.625 6.47 3.46 3.46 0 0 0 6.156 3m1.688 3.188-2.25 1.968-1.219-1.125V5.72l1.219 1.125 2.25-2.063z">
</path>
</svg> </div> <span class="trust-thumbnail-title">Efficient and Safe Logitics</span>
</div>
<div class="trust-card-desc-text"> At linenstylish, we ensure secure and efficient logistics. Track your order in real-time right from the order page. For added security, consider our optional "Shipping Protection" service. If
your purchase encounters any delays, damage, or loss during delivery, rest assured, our insurance will cover your losses.
<a target="_blank" rel="noreferrer" href="https://www.seel.com/terms/shipping-protection-for-customer">learn more</a> </div>
<div spz-if="true" class="trust-card-desc-img"> <ljs-img key="0" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/4e628a598fd199505f3299e1184bb0c9.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="1" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/ed09bd56b0a33c981a6bbdbcf97e348f.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="2" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/a1b992c66e86603a67a5fe1b1a4b0570.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="3" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/2cb1039ea5e997169f3d8f72ec5ebec9.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="4" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/11e0aef019c2bad92cd867abff3e72ad.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="5" width="55" height="35"
class="icon-trust-block i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt i-spzhtml-layout-fixed i-spzhtml-layout-size-defined spz-unresolved i-spzhtml-unresolved" layout="fixed"
src="//img.fantaskycdn.com/oss/operation/1d4ed10d4d6da3dffe658be5b52df89f.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img> </div>
</div>
<div id="trust-card-desc-block-1539149753700-3" class="trust-card-desc-block" key="customer_setting">
<div class="trust-card-desc-title">
<div spz-if="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="icon_title_trust">
<path fill="currentColor"
d="M11.966 4.548c-3.109 0-5.628 2.467-5.628 5.51 0 3.044 2.52 5.51 5.628 5.51 3.109 0 5.628-2.466 5.628-5.51 0-3.043-2.52-5.51-5.628-5.51m-6.5 7.626V7.087a2.69 2.69 0 0 0-.21.008c1.153-2.504 3.721-4.247 6.71-4.247 2.99 0 5.559 1.743 6.712 4.247a2.677 2.677 0 0 0-.212-.008v5.087c1.436 0 2.6-1.14 2.6-2.544 0-.954-.537-1.785-1.33-2.22C18.616 4.26 15.565 2 11.965 2c-3.599 0-6.65 2.261-7.768 5.41a2.534 2.534 0 0 0-1.331 2.22c0 1.405 1.163 2.544 2.6 2.544m12.116 2.916a8.3 8.3 0 0 1-5.616 2.167 8.3 8.3 0 0 1-5.608-2.16C3.728 16.424 2 18.783 2 21.987h20c0-3.21-1.76-5.572-4.418-6.896">
</path>
</svg> </div> <span class="trust-thumbnail-title">Customer Service</span>
</div>
<div class="trust-card-desc-text"> If you encounter problems during or after shopping, don't hesitate to reach out. linenstylish's customer service team is here to assist you.
<a target="_blank" rel="noreferrer" href="/">learn more</a> </div>
</div>
</div>
</div>
</ljs-sidebar>
</div>
</div>
</div>
</ljs-render>
</div>
<div class="plugin__buy_on_others empty-hidden"></div>
<input name="product_id" type="hidden" value="788093bf-c6a7-437f-a498-206b51abdc70"><input name="variant_id" type="hidden" value="a6f0360e-0046-4b7f-88f5-3a2b7da2dc47"><input name="note" type="hidden">
</form>
POST
<form id="footer__newsletter__form" class="footer__newsletter__form type-text-font-family relative flex items-center md:w-full text-base" action-xhr="/api/customers/newsletters" method="POST" custom-validation="show-first-on-submit"
@submiterror="footer__newsletter__error-ajax.rerender(data=event);footer__newsletter__error-ajax.toggleClass(class='hidden', force=false);">
<input class="footer__newsletter__input clear flex-1 block lg:w-full px-4 lg:px-3" id="footer__newsletter__input" type="text" name="email" placeholder="Enter your email" required="" pattern="([A-Za-z0-9_\-.])+@([A-Za-z0-9_\-.])+\.([A-Za-z]{2,4})"
@input-debounced="footer__newsletter__error-ajax.toggleClass(class='hidden', force=true);">
<button class="footer__newsletter__btn type-text-font-family m-0 flex items-center border-none leading-none" type="submit">
<span class="md:hidden">Subscribe</span>
<svg class="lg:hidden" width="20" height="6" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path opacity=".01" fill="currentColor" d="M0 0h20v6H0z"></path>
<path fill="currentColor" d="M0 2h14v2H0z"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="m20 3-6 3V0l6 3Z" fill="currentColor"></path>
</svg>
</button>
<div class="footer__newsletter__error-tip" validation-for="footer__newsletter__input" visible-when-invalid="patternMismatch" hidden=""> Please enter a valid email address. </div>
<div class="footer__newsletter__error-tip" validation-for="footer__newsletter__input" visible-when-invalid="valueMissing" hidden=""> Please enter your email address. </div>
<spz-render id="footer__newsletter__error-ajax" class="footer__newsletter__error-tip hidden i-spzhtml-layout-container i-spzhtml-element i-spzhtml-notbuilt spz-notbuilt spz-unresolved i-spzhtml-unresolved" layout="container" manual=""
i-spzhtml-layout="container">
<template>
<div spz-if="${data.errors && data.errors.length > 0}"> ${data.errors && data.errors[0]} </div>
</template>
</spz-render>
<div class="footer__newsletter__success-tip flex-shrink-0 body-plus-2"> Thanks for subscribing </div>
</form>
<form>
<div class="quick-shop-content rounded-global-small">
<div class="quick-shop-inner-content">
<spz-variants name="quick-shop-variant" id="quick-shop-variants" class="pointer-events-none" layout="container" template="quick-shop-variant-template" spz-if="${product_options && product_options.length > 0}"
@mouseout="${mouse_out_event}" interact="hover" interference="" ${mouse_over_event}=""></spz-variants>
<button class="relative mt-5 lg:mt-6 button-primary flex items-center justify-center body-plus-2 type-text-font-family rounded-btn quick-shop_atc_btn" type="button" role="addToCart" data-track="click" data-track-content="add_to_cart"
data-track-source="add_to_cart">
<span role="content">${statusLan}</span>
<spz-render id="quick-shop-btn-price" layout="container" template="quick-shop-button-price-template" manual=""></spz-render>
<div class="loading items-center justify-center absolute inset-0" role="loading" show="">
<div class="loading-bounce"></div>
</div>
</button>
</div>
</div>
</form>
<form>
<div class="quick-shop-content rounded-global-small">
<div class="quick-shop-inner-content">
<spz-variants name="quick-shop-variant" id="quick-shop-variants" class="pointer-events-none" layout="container" template="quick-shop-variant-template" spz-if="${product_options && product_options.length > 0}"
@mouseout="${mouse_out_event}" interact="hover" interference="" ${mouse_over_event}=""></spz-variants>
<button class="relative mt-5 lg:mt-6 button-primary flex items-center justify-center body-plus-2 type-text-font-family rounded-btn quick-shop_atc_btn" type="button" role="addToCart" data-track="click" data-track-content="add_to_cart"
data-track-source="add_to_cart">
<span role="content">${statusLan}</span>
<spz-render id="quick-shop-btn-price" layout="container" template="quick-shop-button-price-template" manual=""></spz-render>
<div class="loading items-center justify-center absolute inset-0" role="loading" show="">
<div class="loading-bounce"></div>
</div>
</button>
</div>
</div>
</form>
<form class="">
<div class="zb-flex">
<a href="${product.url}?${toQuery({ aid: 'smart_recommend.2.' + data.id, ifb: product.ifb || '', cfb: product.cfb || '', scm: product.scm || data.scm || '', ssp: data.ssp || '' })}" impr="1" imprevt="1" class="zb-w-[132px] zb-mr-4 rtl:zb-ml-4 rtl:zb-mr-0" data-prdct="${product.id}" data-ifb="${product.ifb || ''}" data-cfb="${product.cfb || ''}" data-scm="${product.scm || data.scm || ''}" data-spm="${productIndex}"> <ljs-render layout="container" id="smart_cart_pop_image_${product.id}" template="smart_cart_pop_image_template" manual=""></ljs-render> </a>
<div class="zb-flex zb-flex-col zb-flex-grow zb-justify-between">
<div>
<div class="zb-line-clamp-2 zb-text-sm zb-mb-2">${product.title}</div> <ljs-render layout="container" id="smart_cart_pop_price_${product.id}" template="smart_cart_pop_price_template" manual=""></ljs-render>
</div>
<div>
<div class="zb-relative zb-w-full zb-cursor-pointer">
<div class="zb-border zb-border-solid zb-border-[#eee] zb-px-3 zb-py-[10px] zb-flex zb-items-center zb-justify-between zb-font-semibold zb-text-sm zb-rounded-sm"
@tap="smart_pop_variant-select-${product.id}.toggleClass(class=zb-rotate-180);smart_cart_pop_variant_${product.id}_mobile.toggleClass(class=zb-hidden);smart_cart_pop_variant_${product.id}_pc.toggleClass(class=smart_cart_pop_variant_pc_show,force=true);smart_cart_pop_variant_modal_${product.id}.open"
spz-if="${!!(product.options && product.options.length && product.options.length > 0) && data.config.variant_select_visible}"> <ljs-render manual="" layout="container" id="smart_cart_pop_variant_text_${product.id}"
template="smart_cart_pop_variant_text_template"></ljs-render> <svg id="smart_pop_variant-select-${product.id}" width="12" height="8" class="zb-ml-2" viewBox="0 0 12 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M6.00002 7.06738C6.19244 7.06775 6.38498 6.99453 6.5318 6.84772C6.54504 6.83447 6.55769 6.82086 6.56973 6.8069L11.1251 2.25152C11.418 1.95863 11.418 1.48375 11.1251 1.19086C10.8322 0.897968 10.3573 0.897968 10.0645 1.19086L6.00003 5.25529L1.9356 1.19086C1.64271 0.897968 1.16784 0.897968 0.874943 1.19086C0.58205 1.48375 0.58205 1.95863 0.874943 2.25152L5.43033 6.8069C5.44237 6.82086 5.45502 6.83447 5.46826 6.84772C5.61507 6.99453 5.8076 7.06775 6.00002 7.06738Z"
fill="#0A1533"></path>
</svg> </div> <ljs-lightbox layout="nodisplay" disable-unmount="" class="smart_cart_pop_lightbox_pc" id="smart_cart_pop_variant_modal_${product.id}" @close="smart_pop_variant-select-${product.id}.toggleClass(class=zb-rotate-180);">
<div id="smart_cart_pop_variant_${product.id}_pc" class="zb-hidden"><ljs-variants id="smart_cart_pop_variants_${product.id}"
class="md:!zb-absolute md:zb-top-[50px] md:zb-w-full md:zb-left-0 md:zb-z-30 md:zb-bg-white zb-max-h-[280px] zb-overflow-y-auto md:zb-shadow-pop" layout="container" template="smart_cart_pop_variant_template"
onclick="event.stopPropagation()" disabled-dj-event="" interference=""> </ljs-variants></div>
</ljs-lightbox>
</div>
<div class="zb-mt-3"> <button product-id="${product.id}" id="smart_cart_pop_atc_btn_${product.id}"
class="zb-flex zb-items-center zb-justify-center zb-w-full zb-text-white zb-py-[10px] zb-h-9 zb-text-xs zb-font-normal zb-border-none zb-rounded-[4px] smart_cart_pop_atc_btn_bg" type="button" role="addToCart"
@tap="smart_cart_pop_loading_${product.id}.toggleClass(class=zb-hidden);smart_cart_pop_atc_${product.id}.toggleClass(class=zb-hidden);smart_cart_pop_atc_btn_${product.id}.toggleClass(class=zb-pointer-events-none);custom-func.addATCHook(activity_id='${data.id}',ifb='${product.ifb}',cfb='${product.cfb}',scm='${product.scm || data.scm}',ssp='${data.ssp}',spm='${data.spmBase}.${productIndex}')">
<ljs-render layout="container" id="smart_cart_pop_atc_${product.id}" template="smart_cart_pop_atc_template" mamual="" class="notranslate"> </ljs-render>
<div id="smart_cart_pop_added_${product.id}" class="zb-hidden"><span class="zb-flex zb-justify-center zb-gap-1"><svg width="14" height="15" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M8 16.5006C3.58171 16.5006 0 12.9183 0 8.5C0 4.08171 3.58171 0.5 8 0.5C12.4183 0.5 16 4.08171 16 8.5C16 12.9183 12.4183 16.5006 8 16.5006ZM8 2.04344C4.21314 2.04344 1.54287 4.71371 1.54287 8.50057C1.54287 12.2874 4.21314 14.9577 8 14.9577C11.7869 14.9577 14.4571 12.2874 14.4571 8.50057C14.4571 4.71371 11.7869 2.04344 8 2.04344ZM7.26057 11.1909L7.12229 11.3286L7.09543 11.3017C7.02286 11.336 6.94286 11.3577 6.85714 11.3577C6.73543 11.3577 6.62857 11.3109 6.536 11.2463L6.52229 11.2594L6.45371 11.1909C6.45314 11.1903 6.45314 11.1903 6.45257 11.1897L4.09771 8.83486L4.90629 8.02686L6.85714 9.97771L11.1629 5.67143L11.9714 6.48L7.26171 11.1897C7.26114 11.1903 7.26114 11.1903 7.26057 11.1909Z"
fill="white"></path>
</svg>Added</span></div>
<div id="smart_cart_pop_loading_${product.id}" class="zb-hidden">
<div class="smart_cart_pop_loading"></div>
</div>
</button> </div>
</div>
</div>
</div>
<div id="smart_cart_pop_variant_${product.id}_mobile" class="zb-hidden md:zb-hidden"><ljs-variants id="smart_cart_pop_variants_${product.id}"
class="md:!zb-absolute md:zb-top-[50px] md:zb-w-full md:zb-left-0 md:zb-z-30 md:zb-bg-white zb-max-h-[280px] zb-overflow-y-auto md:zb-shadow-pop" layout="container" template="smart_cart_pop_variant_template" onclick="event.stopPropagation()"
disabled-dj-event="" interference=""> </ljs-variants></div>
</form>
POST //translate.googleapis.com/translate_voting?client=te
<form id="goog-gt-votingForm" action="//translate.googleapis.com/translate_voting?client=te" method="post" target="votingFrame" class="VIpgJd-yAWNEb-hvhgNd-aXYTce"><input type="text" name="sl" id="goog-gt-votingInputSrcLang"><input type="text"
name="tl" id="goog-gt-votingInputTrgLang"><input type="text" name="query" id="goog-gt-votingInputSrcText"><input type="text" name="gtrans" id="goog-gt-votingInputTrgText"><input type="text" name="vote" id="goog-gt-votingInputVote"></form>
Text Content
${(function(){ const get_random_six_digits = () => { return Math.random().toString().slice(-6) }; const wholesale_enabled = false; const setting_product_image_display = "133.33%"; const product_image = data.image; const secondary_image = data.secondImage; const image_width = product_image.width; let image_height = product_image.height; if(setting_product_image_display == '100%'){ image_height = image_width }else if(setting_product_image_display == '133.33%'){ image_height = image_width * 1.3333; }; const product_image_hover_on = true && !!secondary_image.src; const has_save_label = false && ((+data.compare_at_price) > (+data.price)); const is_single_variant = data.variants.length == 1; const min_price_variant_href = (data.min_price_variant && data.min_price_variant.available) ? data.min_price_variant.withinUrl : data.withinUrl; const retail_price_max = data.retail_price_max || data.compare_at_price_max; const THUMBNAILS_MAX_SIZE = 3; const thumbnails = data.thumbVariants.slice(0, THUMBNAILS_MAX_SIZE); const image_wrap_id = 'image_wrap_' + get_random_six_digits(); const image_carousel_id = 'image_carousel_' + get_random_six_digits(); const thumbnails_selector_id = 'thumbnails_selector_' + get_random_six_digits(); const form_id = 'form_' + get_random_six_digits(); const mixed_wholesale = data.mixed_wholesale; return ` ${ data.available ? `` : "Sold out" } Mixed Lot ${DATA.TITLE} ${ data.price_min != data.price_max ? `From ` : ` ` } +${data.remainInvisibleThumbCount} ` })()} Free Shipping on Order Over $69 Free Shipping on Order Over $69 Powered by Google Übersetzer Bahasa Indonesia,English,한국어,简体中文,日本語,Português,العربية,Русский,Español,繁體中文,Français,ไทย,Italiano,Deutsch,Polski,Nederlands,Bahasa Melayu,svenska,norsk,čeština,Lietuvis,Latvietis,Suomalainen,Ελληνικά,Eestlane,dansk,Magyar,Romanian,Slovenščina,Український,Slovenská,Български,Tiếng Việt,Türkçe,Hrvatski jezik EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Afghan Afghani (AFN) * Albanian Lek (ALL) * Algerian Dinar (DZD) * Angolan Kwanza (AOA) * Argentine Pesos (ARS) * Armenian Dram (AMD) * Aruban Florin (AWG) * Australian Dollars (AUD) * Barbadian Dollar (BBD) * Azerbaijani Manat (AZN) * Bangladesh Taka (BDT) * Bahamian Dollar (BSD) * Bahraini Dinar (BHD) * Belarusian Ruble (BYN) * Belize Dollar (BZD) * Bhutanese Ngultrum (BTN) * Bosnia and Herzegovina Convertible Mark (BAM) * Brazilian Real (BRL) * Bolivian Boliviano (BOB) * Botswana Pula (BWP) * Brunei Dollar (BND) * Bulgarian Lev (BGN) * Burmese Kyat (MMK) * Cambodian Riel (KHR) * Cape Verdean escudo (CVE) * Cayman Dollars (KYD) * Central African CFA Franc (XAF) * Chilean Peso (CLP) * Chinese Yuan Renminbi (CNY) * Colombian Peso (COP) * Comorian Franc (KMF) * Congolese franc (CDF) * Costa Rican Colones (CRC) * Croatian Kuna (HRK) * Czech Koruny (CZK) * Danish Kroner (DKK) * Dominican Peso (DOP) * East Caribbean Dollar (XCD) * Egyptian Pound (EGP) * Ethiopian Birr (ETB) * CFP Franc (XPF) * Fijian Dollars (FJD) * Gambian Dalasi (GMD) * Ghanaian Cedi (GHS) * Guatemalan Quetzal (GTQ) * Guyanese Dollar (GYD) * Georgian Lari (GEL) * Haitian Gourde (HTG) * Honduran Lempira (HNL) * Hong Kong Dollars (HKD) * Hungarian Forint (HUF) * Icelandic Kronur (ISK) * Indian Rupees (INR) * Indonesian Rupiah (IDR) * Israeli New Shekel (NIS) * Jamaican Dollars (JMD) * Japanese Yen (JPY) * Jersey Pound (JEP) * Jordanian Dinar (JOD) * Kazakhstani Tenge (KZT) * Kenyan Shilling (KES) * Kuwaiti Dinar (KWD) * Kyrgyzstani Som (KGS) * Laotian Kip (LAK) * Latvian Lati (LVL) * Lebanese Pounds (LBP) * Lesotho Loti (LSL) * Liberian Dollar (LRD) * Malagasy Ariary (MGA) * Macedonia Denar (MKD) * Macanese Pataca (MOP) * Malawian Kwacha (MWK) * Maldivian Rufiyaa (MVR) * Mexican Pesos (MXN) * Malaysian Ringgits (MYR) * Mauritian Rupee (MUR) * Moldovan Leu (MDL) * Moroccan Dirham (MAD) * Mongolian Tugrik (MNT) * Mozambican Metical (MZN) * Namibian Dollar (NAD) * Nepalese Rupee (NPR) * Netherlands Antillean Guilder (ANG) * New Zealand Dollars (NZD) * Nicaraguan Córdoba (NIO) * Nigerian Naira (NGN) * Norwegian Kroner (NOK) * Omani Rial (OMR) * Pakistani Rupee (PKR) * Papua New Guinean Kina (PGK) * Paraguayan Guarani (PYG) * Peruvian Nuevo Sol (PEN) * Philippine Peso (PHP) * Polish Zlotych (PLN) * Qatari Rial (QAR) * Romanian Lei (RON) * Russian Rubles (RUB) * Rwandan Franc (RWF) * Samoan Tala (WST) * Saudi Riyal (SAR) * Sao Tome And Principe Dobra (STD) * Serbian dinar (RSD) * Seychellois Rupee (SCR) * Singapore Dollars (SGD) * Sudanese Pound (SDG) * Syrian Pound (SYP) * South African Rand (ZAR) * South Korean Won (KRW) * South Sudanese Pound (SSP) * Solomon Islands Dollar (SBD) * Sri Lankan Rupees (LKR) * Surinamese Dollar (SRD) * Swazi Lilangeni (SZL) * Swedish Kronor (SEK) * Swiss Francs (CHF) * Taiwan Dollars (TWD) * Thai baht (THB) * Tanzanian Shilling (TZS) * Trinidad and Tobago Dollars (TTD) * Tunisian Dinar (TND) * Turkish Lira (TRY) * Turkmenistani Manat (TMT) * Ugandan Shilling (UGX) * Ukrainian Hryvnia (UAH) * United Arab Emirates Dirham (AED) * Uruguayan Pesos (UYU) * Uzbekistan som (UZS) * Vanuatu Vatu (VUV) * Venezuelan Bolivares (VEF) * Vietnamese đồng (VND) * West African CFA franc (XOF) * Yemeni Rial (YER) * Zambian Kwacha (ZMW) * Saint Helena pound * Burundian franc * Bermudian dollar * Cuban peso * Djiboutian franc * Eritrean nakfa * Guinean franc * North Korean won * Sierra Leonean leone * Somali shilling * Tajikistani somoni * Tongan paʻanga * Falkland Islands pound * Log in * Create an account ${data.data && data.data.count} * Home * New Arrivals * Best Seller * Clothing * 👗Linen Style Pleated Linen Linen Dresses Linen Set Minimalist Linen Vintage Style Skirts Shirts Tops Jumpsuit Pants Shorts Loungewear * 🌞Spring & Summer Swimsuits Chic Dresses & Sets Sleeveless Dresses Party Dresses Mini Dresses Backless Dresses Boho Dresses Tie-Waist Dresses Workwear Y2K Loose Tops Vacation Two Piece Set * 🍁Fall-Winter Outfits Knit Dresses Knit Sets Knit Cloak Slim Sweater Dresses Sweater Tops Trousers Coat & Jackets Accessories to Keep Warm * 🌈Graffiti Style Vacation Outfits Graffiti Dresses Graffiti Short Two-Piece Set Graffiti Long Two-Piece Set * 💼Workwear FASHIONABLE FANTASY COLOR MAXI DRESS (12) €60.67 €88.48 * Accessories Canvas Bag Sandals Earrings Rings Necklaces GEOMETRIC IRREGULAR EARRINGS €5.60 €13.10 * Customer Reviews * Order Info * More links ${(function(){ const formatLinks = (links) => { return links.map(link => { link.tag = tags[link.title.toUpperCase()] || {}; link.target_attr = link.target == '_blank' ? 'target="_blank"' : ''; link.href_attr = link.url ? `href="${link.url}"` : ''; if(link.children && link.children.length){ link.children = formatLinks(link.children); } return link; }) }; const tags = "{}"; let linkList = [ { id: 62916535, title: "Home", url: "\/", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62916537, title: "New Arrivals", url: "\/collections\/pre-order", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62916539, title: "Best Seller", url: "\/collections\/2024-womens-linen-clothing", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62916541, title: "Clothing", url: "\/collections\/tie-waist-dresses", target: "", levels: 2, product0: {"id":"0f8eee33-3c4f-4e87-a978-5418cfb2e656","title":"Fashionable Fantasy Color Maxi Dress","brief":"","vendor":"","vendor_url":"","has_only_default_variant":false,"requires_shipping":true,"taxable":false,"published":true,"handle":"fashionable-fantasy-color-maxi-dress","spu":"6624010312628","need_variant_image":true,"updated_at":"2024-05-20T02:17:45Z","created_at":"2024-01-03T07:20:49Z","mixed_wholesale":false,"min_price_variant":{"id":"cc2a1de1-6966-40e8-936c-c5ef9e762395","title":"White-S","weight_unit":"kg","inventory_quantity":0,"sku":"6624010312628-White-S","barcode":"","position":1,"option1":"White","option2":"S","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/1f7227fddb0769e42a5a4fed65b11102.png","path":"1f7227fddb0769e42a5a4fed65b11102.png","width":900,"height":1200,"alt":""},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"400","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=cc2a1de1-6966-40e8-936c-c5ef9e762395","available_quantity":999999999,"options":[{"name":"Color","value":"White"},{"name":"Size","value":"S"}],"off_ratio":31},"tags":"haiyan,Kinki,\u9017\u5457\u98ce,Printing","available":true,"price_min":"64.8","price":"64.8","price_max":"64.8","compare_at_price_min":"94.5","compare_at_price":"94.5","compare_at_price_max":"94.5","retail_price_min":"94.5","retail_price_max":"94.5","url":"\/products\/fashionable-fantasy-color-maxi-dress","published_at":"2024-01-03T07:20:49Z","image":{"src":"\/\/img.fantaskycdn.com\/3918ceaa3a5bcdf008d61db28d526946.jpeg","path":"3918ceaa3a5bcdf008d61db28d526946.jpeg","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"options":[{"id":"322d1cc6-173c-4c93-bd76-9d431c27af39","name":"Color","position":1,"values":["White","Green","Apricot"]},{"id":"dea23861-f108-4d08-960e-dcff0ee8cb4b","name":"Size","position":2,"values":["S","M","L","XL","2XL"]}],"variants":[{"id":"cc2a1de1-6966-40e8-936c-c5ef9e762395","title":"White-S","weight_unit":"kg","inventory_quantity":0,"sku":"6624010312628-White-S","barcode":"","position":1,"option1":"White","option2":"S","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/1f7227fddb0769e42a5a4fed65b11102.png","path":"1f7227fddb0769e42a5a4fed65b11102.png","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"400","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=cc2a1de1-6966-40e8-936c-c5ef9e762395","available_quantity":999999999,"options":[{"name":"Color","value":"White"},{"name":"Size","value":"S"}],"off_ratio":31,"flashsale_info":[],"sales":null},{"id":"9ddcc4ef-8681-4cf1-a3ff-84675a6738ac","title":"White-M","weight_unit":"kg","inventory_quantity":0,"sku":"6624010312628-White-M","barcode":"","position":2,"option1":"White","option2":"M","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/1f7227fddb0769e42a5a4fed65b11102.png","path":"1f7227fddb0769e42a5a4fed65b11102.png","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"400","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=9ddcc4ef-8681-4cf1-a3ff-84675a6738ac","available_quantity":999999999,"options":[{"name":"Color","value":"White"},{"name":"Size","value":"M"}],"off_ratio":31,"flashsale_info":[],"sales":null},{"id":"93a7e39d-f59e-4909-a84b-5bccb4c868d9","title":"White-L","weight_unit":"kg","inventory_quantity":0,"sku":"6624010312628-White-L","barcode":"","position":3,"option1":"White","option2":"L","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/1f7227fddb0769e42a5a4fed65b11102.png","path":"1f7227fddb0769e42a5a4fed65b11102.png","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"400","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=93a7e39d-f59e-4909-a84b-5bccb4c868d9","available_quantity":999999999,"options":[{"name":"Color","value":"White"},{"name":"Size","value":"L"}],"off_ratio":31,"flashsale_info":[],"sales":null},{"id":"6319d4a6-5d00-4a8c-9902-e93a6acac10e","title":"White-XL","weight_unit":"kg","inventory_quantity":0,"sku":"6624010312628-White-XL","barcode":"","position":4,"option1":"White","option2":"XL","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/1f7227fddb0769e42a5a4fed65b11102.png","path":"1f7227fddb0769e42a5a4fed65b11102.png","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"400","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=6319d4a6-5d00-4a8c-9902-e93a6acac10e","available_quantity":999999999,"options":[{"name":"Color","value":"White"},{"name":"Size","value":"XL"}],"off_ratio":31,"flashsale_info":[],"sales":null},{"id":"01a749de-8e22-4001-bb23-c9d8d4da696c","title":"White-2XL","weight_unit":"kg","inventory_quantity":0,"sku":"6624010312628-White-2XL","barcode":"","position":5,"option1":"White","option2":"2XL","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/1f7227fddb0769e42a5a4fed65b11102.png","path":"1f7227fddb0769e42a5a4fed65b11102.png","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"400","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=01a749de-8e22-4001-bb23-c9d8d4da696c","available_quantity":999999999,"options":[{"name":"Color","value":"White"},{"name":"Size","value":"2XL"}],"off_ratio":31,"flashsale_info":[],"sales":null},{"id":"61baddc6-6b9e-450a-a09e-d1108aacf33d","title":"Green-S","weight_unit":"","inventory_quantity":0,"sku":"6624010312628-Green-S","barcode":"","position":6,"option1":"Green","option2":"S","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/3918ceaa3a5bcdf008d61db28d526946.jpeg","path":"3918ceaa3a5bcdf008d61db28d526946.jpeg","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"0","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=61baddc6-6b9e-450a-a09e-d1108aacf33d","available_quantity":999999999,"options":[{"name":"Color","value":"Green"},{"name":"Size","value":"S"}],"off_ratio":31,"flashsale_info":[],"sales":null},{"id":"db75e519-7056-4ed3-821a-59d93e532db2","title":"Green-M","weight_unit":"","inventory_quantity":0,"sku":"6624010312628-Green-M","barcode":"","position":7,"option1":"Green","option2":"M","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/3918ceaa3a5bcdf008d61db28d526946.jpeg","path":"3918ceaa3a5bcdf008d61db28d526946.jpeg","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"0","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=db75e519-7056-4ed3-821a-59d93e532db2","available_quantity":999999999,"options":[{"name":"Color","value":"Green"},{"name":"Size","value":"M"}],"off_ratio":31,"flashsale_info":[],"sales":null},{"id":"7e3cc536-8207-4e6e-8010-12c775a8fa26","title":"Green-L","weight_unit":"","inventory_quantity":0,"sku":"6624010312628-Green-L","barcode":"","position":8,"option1":"Green","option2":"L","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/3918ceaa3a5bcdf008d61db28d526946.jpeg","path":"3918ceaa3a5bcdf008d61db28d526946.jpeg","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"0","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=7e3cc536-8207-4e6e-8010-12c775a8fa26","available_quantity":999999999,"options":[{"name":"Color","value":"Green"},{"name":"Size","value":"L"}],"off_ratio":31,"flashsale_info":[],"sales":null},{"id":"93024d0f-4a8a-45ce-90ec-199124971493","title":"Green-XL","weight_unit":"","inventory_quantity":0,"sku":"6624010312628-Green-XL","barcode":"","position":9,"option1":"Green","option2":"XL","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/3918ceaa3a5bcdf008d61db28d526946.jpeg","path":"3918ceaa3a5bcdf008d61db28d526946.jpeg","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"0","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=93024d0f-4a8a-45ce-90ec-199124971493","available_quantity":999999999,"options":[{"name":"Color","value":"Green"},{"name":"Size","value":"XL"}],"off_ratio":31,"flashsale_info":[],"sales":null},{"id":"971b3438-806b-4806-ab35-6b40f1f7f0bc","title":"Green-2XL","weight_unit":"","inventory_quantity":0,"sku":"6624010312628-Green-2XL","barcode":"","position":10,"option1":"Green","option2":"2XL","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/3918ceaa3a5bcdf008d61db28d526946.jpeg","path":"3918ceaa3a5bcdf008d61db28d526946.jpeg","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"0","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=971b3438-806b-4806-ab35-6b40f1f7f0bc","available_quantity":999999999,"options":[{"name":"Color","value":"Green"},{"name":"Size","value":"2XL"}],"off_ratio":31,"flashsale_info":[],"sales":null},{"id":"ec8eb511-4320-42e5-943a-31ae95705c44","title":"Apricot-S","weight_unit":"kg","inventory_quantity":0,"sku":"6624010312628-Apricot-S","barcode":"","position":11,"option1":"Apricot","option2":"S","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/24ddfd693a1d5913233cd3f54019fa9e.png","path":"24ddfd693a1d5913233cd3f54019fa9e.png","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"400","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=ec8eb511-4320-42e5-943a-31ae95705c44","available_quantity":999999999,"options":[{"name":"Color","value":"Apricot"},{"name":"Size","value":"S"}],"off_ratio":31,"flashsale_info":[],"sales":null},{"id":"54b64d9e-7dc2-4adc-a35e-895328b01518","title":"Apricot-M","weight_unit":"kg","inventory_quantity":0,"sku":"6624010312628-Apricot-M","barcode":"","position":12,"option1":"Apricot","option2":"M","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/24ddfd693a1d5913233cd3f54019fa9e.png","path":"24ddfd693a1d5913233cd3f54019fa9e.png","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"400","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=54b64d9e-7dc2-4adc-a35e-895328b01518","available_quantity":999999999,"options":[{"name":"Color","value":"Apricot"},{"name":"Size","value":"M"}],"off_ratio":31,"flashsale_info":[],"sales":null},{"id":"b1b8bf14-3c54-429f-8cd6-adb4ab73a31f","title":"Apricot-L","weight_unit":"kg","inventory_quantity":0,"sku":"6624010312628-Apricot-L","barcode":"","position":13,"option1":"Apricot","option2":"L","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/24ddfd693a1d5913233cd3f54019fa9e.png","path":"24ddfd693a1d5913233cd3f54019fa9e.png","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"400","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=b1b8bf14-3c54-429f-8cd6-adb4ab73a31f","available_quantity":999999999,"options":[{"name":"Color","value":"Apricot"},{"name":"Size","value":"L"}],"off_ratio":31,"flashsale_info":[],"sales":null},{"id":"700c1221-1fd0-4d16-84b4-44e7b7ec184c","title":"Apricot-XL","weight_unit":"kg","inventory_quantity":0,"sku":"6624010312628-Apricot-XL","barcode":"","position":14,"option1":"Apricot","option2":"XL","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/24ddfd693a1d5913233cd3f54019fa9e.png","path":"24ddfd693a1d5913233cd3f54019fa9e.png","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"400","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=700c1221-1fd0-4d16-84b4-44e7b7ec184c","available_quantity":999999999,"options":[{"name":"Color","value":"Apricot"},{"name":"Size","value":"XL"}],"off_ratio":31,"flashsale_info":[],"sales":null},{"id":"2a2bcfe7-09d7-4e79-85e7-25d2d7c8a0e5","title":"Apricot-2XL","weight_unit":"kg","inventory_quantity":0,"sku":"6624010312628-Apricot-2XL","barcode":"","position":15,"option1":"Apricot","option2":"2XL","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/24ddfd693a1d5913233cd3f54019fa9e.png","path":"24ddfd693a1d5913233cd3f54019fa9e.png","width":900,"height":1200,"alt":"","aspect_ratio":0.75},"wholesale_price":[{"price":64.8,"min_quantity":1}],"weight":"400","compare_at_price":"94.5","price":"64.8","retail_price":"94.5","available":true,"url":"\/products\/fashionable-fantasy-color-maxi-dress?variant=2a2bcfe7-09d7-4e79-85e7-25d2d7c8a0e5","available_quantity":999999999,"options":[{"name":"Color","value":"Apricot"},{"name":"Size","value":"2XL"}],"off_ratio":31,"flashsale_info":[],"sales":null}],"images":[{"src":"\/\/img.fantaskycdn.com\/3918ceaa3a5bcdf008d61db28d526946.jpeg","path":"3918ceaa3a5bcdf008d61db28d526946.jpeg","width":900,"height":1200,"alt":"","aspect_ratio":0.75},{"src":"\/\/img.fantaskycdn.com\/8af49c458046968895c2620fdfaa1f04.jpeg","path":"8af49c458046968895c2620fdfaa1f04.jpeg","width":900,"height":1200,"alt":"","aspect_ratio":0.75},{"src":"\/\/img.fantaskycdn.com\/1f7227fddb0769e42a5a4fed65b11102.png","path":"1f7227fddb0769e42a5a4fed65b11102.png","width":900,"height":1200,"alt":"","aspect_ratio":0.75},{"src":"\/\/img.fantaskycdn.com\/24ddfd693a1d5913233cd3f54019fa9e.png","path":"24ddfd693a1d5913233cd3f54019fa9e.png","width":900,"height":1200,"alt":"","aspect_ratio":0.75},{"src":"\/\/img.fantaskycdn.com\/9137ba309ab157a56433e9cc9bfab85d.png","path":"9137ba309ab157a56433e9cc9bfab85d.png","width":900,"height":1200,"alt":"","aspect_ratio":0.75}],"retail_price":"94.5","off_ratio":31,"price_varies":true} || {}, children: [ { title: "\ud83d\udc57Linen Style", url: "\/collections\/pleated-linen", target: "", levels: 1, children: [ { title: "Pleated Linen", url: "\/collections\/pleated-linen", target: "", levels: 0, }, { title: "Linen Dresses", url: "\/collections\/linen-dresses-sets", target: "", levels: 0, }, { title: "Linen Set", url: "\/collections\/pleated-linen", target: "", levels: 0, }, { title: "Minimalist Linen", url: "\/collections\/casual-lifestyle", target: "", levels: 0, }, { title: "Vintage Style", url: "\/collections\/linens", target: "", levels: 0, }, { title: "Skirts", url: "\/collections\/dresses-skirts", target: "", levels: 0, }, { title: "Shirts", url: "\/collections\/shirts-u6kw", target: "", levels: 0, }, { title: "Tops", url: "\/collections\/tops", target: "", levels: 0, }, { title: "Jumpsuit", url: "\/collections\/linen-jumpsuit", target: "", levels: 0, }, { title: "Pants", url: "\/collections\/pants", target: "", levels: 0, }, { title: "Shorts", url: "\/collections\/shorts", target: "", levels: 0, }, { title: "Loungewear", url: "\/collections\/loungewear", target: "", levels: 0, }, ] }, { title: "\ud83c\udf1eSpring & Summer", url: "\/collections\/chic-dresses-sets", target: "", levels: 1, children: [ { title: "Swimsuits", url: "\/collections\/modern-swimsuits", target: "", levels: 0, }, { title: "Chic Dresses & Sets", url: "\/collections\/chic-dresses-sets", target: "", levels: 0, }, { title: "Sleeveless Dresses", url: "\/collections\/sleeveless-dresses", target: "", levels: 0, }, { title: "Party Dresses", url: "\/collections\/party-dresses", target: "", levels: 0, }, { title: "Mini Dresses", url: "\/collections\/mini-dresses", target: "", levels: 0, }, { title: "Backless Dresses", url: "\/collections\/chic-backless-dresses-sets", target: "", levels: 0, }, { title: "Boho Dresses", url: "\/collections\/spring-dresses", target: "", levels: 0, }, { title: "Tie-Waist Dresses", url: "\/collections\/tie-waist-dresses", target: "", levels: 0, }, { title: "Workwear", url: "\/collections\/casual-workwear", target: "", levels: 0, }, { title: "Y2K", url: "\/collections\/2024-outfit-ideas", target: "", levels: 0, }, { title: "Loose Tops", url: "\/collections\/casual-office-wear", target: "", levels: 0, }, { title: "Vacation Two Piece Set", url: "\/collections\/vacation-outfits", target: "", levels: 0, }, ] }, { title: "\ud83c\udf41Fall-Winter Outfits", url: "\/collections\/2023-winter-collection", target: "", levels: 1, children: [ { title: "Knit Dresses", url: "\/collections\/knit-dresses", target: "", levels: 0, }, { title: "Knit Sets", url: "\/collections\/casual-sets", target: "", levels: 0, }, { title: "Knit Cloak", url: "\/collections\/split-long-top-dresses-cloak", target: "", levels: 0, }, { title: "Slim Sweater Dresses", url: "\/collections\/split-casual-knitted-dresses", target: "", levels: 0, }, { title: "Sweater Tops", url: "\/collections\/cozy-winter-tops", target: "", levels: 0, }, { title: "Trousers", url: "\/collections\/winter-pants", target: "", levels: 0, }, { title: "Coat & Jackets", url: "\/collections\/coat", target: "", levels: 0, }, { title: "Accessories to Keep Warm", url: "\/collections\/winter-accessories", target: "", levels: 0, }, ] }, { title: "\ud83c\udf08Graffiti Style", url: "\/collections\/graffiti-clothes", target: "", levels: 1, children: [ { title: "Vacation Outfits", url: "\/collections\/printed-dresses-sets", target: "", levels: 0, }, { title: "Graffiti Dresses", url: "\/collections\/spring-dresses", target: "", levels: 0, }, { title: "Graffiti Short Two-Piece Set", url: "\/collections\/graffiti-clothes", target: "", levels: 0, }, { title: "Graffiti Long Two-Piece Set", url: "\/collections\/graffiti-sets-dresses", target: "", levels: 0, }, ] }, { title: "\ud83d\udcbcWorkwear", url: "\/collections\/casual-workwear", target: "", levels: 0, children: [ ] }, ] }, { id: 62916625, title: "Accessories", url: "\/collections\/earrings", target: "", levels: 1, product0: {"id":"f84ad307-014b-4600-ba0a-2fbc0617d2ce","title":"Geometric Irregular Earrings","brief":"","vendor":"","vendor_url":"","has_only_default_variant":false,"requires_shipping":true,"taxable":false,"published":true,"handle":"geometric-irregular-earrings","spu":"MM24061316761","need_variant_image":true,"updated_at":"2024-06-18T02:19:23Z","created_at":"2024-06-18T02:19:23Z","mixed_wholesale":false,"min_price_variant":{"id":"8e9e2837-d252-42f1-9112-79c3c2c27e58","title":"Gold","weight_unit":"kg","inventory_quantity":0,"sku":"MM24061316761-Gold","barcode":"","position":1,"option1":"Gold","option2":"","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/22aba98cf4af9fd3a12d946ac8cbbd2e.jpeg","path":"22aba98cf4af9fd3a12d946ac8cbbd2e.jpeg","width":1200,"height":1200,"alt":""},"wholesale_price":[{"price":5.99,"min_quantity":1}],"weight":"26","compare_at_price":"13.99","price":"5.99","retail_price":"13.99","available":true,"url":"\/products\/geometric-irregular-earrings?variant=8e9e2837-d252-42f1-9112-79c3c2c27e58","available_quantity":999999999,"options":[{"name":"color","value":"Gold"}],"off_ratio":57},"tags":"MM,\u8033\u73af,2024.06.13","available":true,"price_min":"5.99","price":"5.99","price_max":"5.99","compare_at_price_min":"13.99","compare_at_price":"13.99","compare_at_price_max":"13.99","retail_price_min":"13.99","retail_price_max":"13.99","url":"\/products\/geometric-irregular-earrings","published_at":"2024-06-18T02:19:23Z","image":{"src":"\/\/img.fantaskycdn.com\/cf03cc63b5471bf05421928dc1f9162b.jpeg","path":"cf03cc63b5471bf05421928dc1f9162b.jpeg","width":1200,"height":1200,"alt":"","aspect_ratio":1},"options":[{"id":"8b2f70b0-9ae5-4515-acdb-d8d3063b2d3e","name":"color","position":1,"values":["Gold","Silver"]}],"variants":[{"id":"8e9e2837-d252-42f1-9112-79c3c2c27e58","title":"Gold","weight_unit":"kg","inventory_quantity":0,"sku":"MM24061316761-Gold","barcode":"","position":1,"option1":"Gold","option2":"","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/22aba98cf4af9fd3a12d946ac8cbbd2e.jpeg","path":"22aba98cf4af9fd3a12d946ac8cbbd2e.jpeg","width":1200,"height":1200,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":5.99,"min_quantity":1}],"weight":"26","compare_at_price":"13.99","price":"5.99","retail_price":"13.99","available":true,"url":"\/products\/geometric-irregular-earrings?variant=8e9e2837-d252-42f1-9112-79c3c2c27e58","available_quantity":999999999,"options":[{"name":"color","value":"Gold"}],"off_ratio":57,"flashsale_info":[],"sales":null},{"id":"6103d10d-6e73-40bd-b94e-26c592d9f477","title":"Silver","weight_unit":"kg","inventory_quantity":0,"sku":"MM24061316761-Silver","barcode":"","position":2,"option1":"Silver","option2":"","option3":"","image":{"src":"\/\/img.fantaskycdn.com\/f64c9fd7847739ef550c5b481f6b2339.jpeg","path":"f64c9fd7847739ef550c5b481f6b2339.jpeg","width":1200,"height":1200,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":5.99,"min_quantity":1}],"weight":"26","compare_at_price":"13.99","price":"5.99","retail_price":"13.99","available":true,"url":"\/products\/geometric-irregular-earrings?variant=6103d10d-6e73-40bd-b94e-26c592d9f477","available_quantity":999999999,"options":[{"name":"color","value":"Silver"}],"off_ratio":57,"flashsale_info":[],"sales":null}],"images":[{"src":"\/\/img.fantaskycdn.com\/cf03cc63b5471bf05421928dc1f9162b.jpeg","path":"cf03cc63b5471bf05421928dc1f9162b.jpeg","width":1200,"height":1200,"alt":"","aspect_ratio":1},{"src":"\/\/img.fantaskycdn.com\/13bbe7e2b8fe5a10055d88e472b89070.jpeg","path":"13bbe7e2b8fe5a10055d88e472b89070.jpeg","width":1200,"height":1200,"alt":"","aspect_ratio":1},{"src":"\/\/img.fantaskycdn.com\/22aba98cf4af9fd3a12d946ac8cbbd2e.jpeg","path":"22aba98cf4af9fd3a12d946ac8cbbd2e.jpeg","width":1200,"height":1200,"alt":"","aspect_ratio":1},{"src":"\/\/img.fantaskycdn.com\/f64c9fd7847739ef550c5b481f6b2339.jpeg","path":"f64c9fd7847739ef550c5b481f6b2339.jpeg","width":1200,"height":1200,"alt":"","aspect_ratio":1},{"src":"\/\/img.fantaskycdn.com\/ed645baccc620e73e23ac7181cea351d.jpeg","path":"ed645baccc620e73e23ac7181cea351d.jpeg","width":1200,"height":1200,"alt":"","aspect_ratio":1},{"src":"\/\/img.fantaskycdn.com\/f93a10d64fc3a0e5620d78dd94e85a5d.jpeg","path":"f93a10d64fc3a0e5620d78dd94e85a5d.jpeg","width":1200,"height":1200,"alt":"","aspect_ratio":1},{"src":"\/\/img.fantaskycdn.com\/24b828bb147b60f567d98254bae632eb.jpeg","path":"24b828bb147b60f567d98254bae632eb.jpeg","width":1200,"height":1200,"alt":"","aspect_ratio":1},{"src":"\/\/img.fantaskycdn.com\/5d562e2aa9cb9bcbf167a4e26152a905.jpeg","path":"5d562e2aa9cb9bcbf167a4e26152a905.jpeg","width":1200,"height":1200,"alt":"","aspect_ratio":1},{"src":"\/\/img.fantaskycdn.com\/173811f95d7ee9ba2231e2e0f1482bb5.jpeg","path":"173811f95d7ee9ba2231e2e0f1482bb5.jpeg","width":1200,"height":1200,"alt":"","aspect_ratio":1}],"retail_price":"13.99","off_ratio":57,"price_varies":true} || {}, children: [ { title: "Canvas Bag", url: "\/collections\/canvas-bag", target: "", levels: 0, children: [ ] }, { title: "Sandals", url: "\/collections\/sandals", target: "", levels: 0, children: [ ] }, { title: "Earrings", url: "\/collections\/earrings", target: "", levels: 0, children: [ ] }, { title: "Rings", url: "\/collections\/rings", target: "", levels: 0, children: [ ] }, { title: "Necklaces", url: "\/collections\/necklaces", target: "", levels: 0, children: [ ] }, ] }, { id: 62916637, title: "Customer Reviews", url: "\/pages\/customer-reviews", target: "", levels: 0, product0: null || {}, children: [ ] }, { id: 62916639, title: "Order Info", url: "\/pages\/track-order", target: "", levels: 0, product0: null || {}, children: [ ] }, ].slice(offset); linkList = formatLinks(linkList); const hasChild = linkList.some(link => !!(link.children && link.children.length || link.product0.id)); return ` * ${link.title} ${link.tag.label} * ${second_link.title} ${second_link.tag.label} ${third_links.title} ${third_links.tag.label} * ${link.title} ${link.tag.label} ` })()} * Clothing * Accessories * Customer Reviews * Order Info * 👗Linen Style Pleated Linen Linen Dresses Linen Set Minimalist Linen Vintage Style Skirts Shirts Tops Jumpsuit Pants Shorts Loungewear * 🌞Spring & Summer Swimsuits Chic Dresses & Sets Sleeveless Dresses Party Dresses Mini Dresses Backless Dresses Boho Dresses Tie-Waist Dresses Workwear Y2K Loose Tops Vacation Two Piece Set * 🍁Fall-Winter Outfits Knit Dresses Knit Sets Knit Cloak Slim Sweater Dresses Sweater Tops Trousers Coat & Jackets Accessories to Keep Warm * 🌈Graffiti Style Vacation Outfits Graffiti Dresses Graffiti Short Two-Piece Set Graffiti Long Two-Piece Set * 💼Workwear FASHIONABLE FANTASY COLOR MAXI DRESS (12) €60.67 €88.48 * Canvas Bag * Sandals * Earrings * Rings * Necklaces GEOMETRIC IRREGULAR EARRINGS Bahasa Indonesia,English,한국어,简体中文,日本語,Português,العربية,Русский,Español,繁體中文,Français,ไทย,Italiano,Deutsch,Polski,Nederlands,Bahasa Melayu,svenska,norsk,čeština,Lietuvis,Latvietis,Suomalainen,Ελληνικά,Eestlane,dansk,Magyar,Romanian,Slovenščina,Український,Slovenská,Български,Tiếng Việt,Türkçe,Hrvatski jezik EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Afghan Afghani (AFN) * Albanian Lek (ALL) * Algerian Dinar (DZD) * Angolan Kwanza (AOA) * Argentine Pesos (ARS) * Armenian Dram (AMD) * Aruban Florin (AWG) * Australian Dollars (AUD) * Barbadian Dollar (BBD) * Azerbaijani Manat (AZN) * Bangladesh Taka (BDT) * Bahamian Dollar (BSD) * Bahraini Dinar (BHD) * Belarusian Ruble (BYN) * Belize Dollar (BZD) * Bhutanese Ngultrum (BTN) * Bosnia and Herzegovina Convertible Mark (BAM) * Brazilian Real (BRL) * Bolivian Boliviano (BOB) * Botswana Pula (BWP) * Brunei Dollar (BND) * Bulgarian Lev (BGN) * Burmese Kyat (MMK) * Cambodian Riel (KHR) * Cape Verdean escudo (CVE) * Cayman Dollars (KYD) * Central African CFA Franc (XAF) * Chilean Peso (CLP) * Chinese Yuan Renminbi (CNY) * Colombian Peso (COP) * Comorian Franc (KMF) * Congolese franc (CDF) * Costa Rican Colones (CRC) * Croatian Kuna (HRK) * Czech Koruny (CZK) * Danish Kroner (DKK) * Dominican Peso (DOP) * East Caribbean Dollar (XCD) * Egyptian Pound (EGP) * Ethiopian Birr (ETB) * CFP Franc (XPF) * Fijian Dollars (FJD) * Gambian Dalasi (GMD) * Ghanaian Cedi (GHS) * Guatemalan Quetzal (GTQ) * Guyanese Dollar (GYD) * Georgian Lari (GEL) * Haitian Gourde (HTG) * Honduran Lempira (HNL) * Hong Kong Dollars (HKD) * Hungarian Forint (HUF) * Icelandic Kronur (ISK) * Indian Rupees (INR) * Indonesian Rupiah (IDR) * Israeli New Shekel (NIS) * Jamaican Dollars (JMD) * Japanese Yen (JPY) * Jersey Pound (JEP) * Jordanian Dinar (JOD) * Kazakhstani Tenge (KZT) * Kenyan Shilling (KES) * Kuwaiti Dinar (KWD) * Kyrgyzstani Som (KGS) * Laotian Kip (LAK) * Latvian Lati (LVL) * Lebanese Pounds (LBP) * Lesotho Loti (LSL) * Liberian Dollar (LRD) * Malagasy Ariary (MGA) * Macedonia Denar (MKD) * Macanese Pataca (MOP) * Malawian Kwacha (MWK) * Maldivian Rufiyaa (MVR) * Mexican Pesos (MXN) * Malaysian Ringgits (MYR) * Mauritian Rupee (MUR) * Moldovan Leu (MDL) * Moroccan Dirham (MAD) * Mongolian Tugrik (MNT) * Mozambican Metical (MZN) * Namibian Dollar (NAD) * Nepalese Rupee (NPR) * Netherlands Antillean Guilder (ANG) * New Zealand Dollars (NZD) * Nicaraguan Córdoba (NIO) * Nigerian Naira (NGN) * Norwegian Kroner (NOK) * Omani Rial (OMR) * Pakistani Rupee (PKR) * Papua New Guinean Kina (PGK) * Paraguayan Guarani (PYG) * Peruvian Nuevo Sol (PEN) * Philippine Peso (PHP) * Polish Zlotych (PLN) * Qatari Rial (QAR) * Romanian Lei (RON) * Russian Rubles (RUB) * Rwandan Franc (RWF) * Samoan Tala (WST) * Saudi Riyal (SAR) * Sao Tome And Principe Dobra (STD) * Serbian dinar (RSD) * Seychellois Rupee (SCR) * Singapore Dollars (SGD) * Sudanese Pound (SDG) * Syrian Pound (SYP) * South African Rand (ZAR) * South Korean Won (KRW) * South Sudanese Pound (SSP) * Solomon Islands Dollar (SBD) * Sri Lankan Rupees (LKR) * Surinamese Dollar (SRD) * Swazi Lilangeni (SZL) * Swedish Kronor (SEK) * Swiss Francs (CHF) * Taiwan Dollars (TWD) * Thai baht (THB) * Tanzanian Shilling (TZS) * Trinidad and Tobago Dollars (TTD) * Tunisian Dinar (TND) * Turkish Lira (TRY) * Turkmenistani Manat (TMT) * Ugandan Shilling (UGX) * Ukrainian Hryvnia (UAH) * United Arab Emirates Dirham (AED) * Uruguayan Pesos (UYU) * Uzbekistan som (UZS) * Vanuatu Vatu (VUV) * Venezuelan Bolivares (VEF) * Vietnamese đồng (VND) * West African CFA franc (XOF) * Yemeni Rial (YER) * Zambian Kwacha (ZMW) * Saint Helena pound * Burundian franc * Bermudian dollar * Cuban peso * Djiboutian franc * Eritrean nakfa * Guinean franc * North Korean won * Sierra Leonean leone * Somali shilling * Tajikistani somoni * Tongan paʻanga * Falkland Islands pound * Log in * Create an account ${data.data && data.data.count} ${(function(){ if (data === undefined || typeof data !== 'string' || data == '') return ''; const keyword = encodeURIComponent(data); return ` View more Your search for '${data}' did not yield any results. ` })()} * Home * New Arrivals * Best Seller * Clothing * Clothing * 👗Linen Style * 👗Linen Style * Pleated Linen * Linen Dresses * Linen Set * Minimalist Linen * Vintage Style * Skirts * Shirts * Tops * Jumpsuit * Pants * Shorts * Loungewear * 🌞Spring & Summer * 🌞Spring & Summer * Swimsuits * Chic Dresses & Sets * Sleeveless Dresses * Party Dresses * Mini Dresses * Backless Dresses * Boho Dresses * Tie-Waist Dresses * Workwear * Y2K * Loose Tops * Vacation Two Piece Set * 🍁Fall-Winter Outfits * 🍁Fall-Winter Outfits * Knit Dresses * Knit Sets * Knit Cloak * Slim Sweater Dresses * Sweater Tops * Trousers * Coat & Jackets * Accessories to Keep Warm * 🌈Graffiti Style * 🌈Graffiti Style * Vacation Outfits * Graffiti Dresses * Graffiti Short Two-Piece Set * Graffiti Long Two-Piece Set * 💼Workwear * Accessories * Accessories * Canvas Bag * Sandals * Earrings * Rings * Necklaces * Customer Reviews * Order Info Bahasa Indonesia,English,한국어,简体中文,日本語,Português,العربية,Русский,Español,繁體中文,Français,ไทย,Italiano,Deutsch,Polski,Nederlands,Bahasa Melayu,svenska,norsk,čeština,Lietuvis,Latvietis,Suomalainen,Ελληνικά,Eestlane,dansk,Magyar,Romanian,Slovenščina,Український,Slovenská,Български,Tiếng Việt,Türkçe,Hrvatski jezik EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Afghan Afghani (AFN) * Albanian Lek (ALL) * Algerian Dinar (DZD) * Angolan Kwanza (AOA) * Argentine Pesos (ARS) * Armenian Dram (AMD) * Aruban Florin (AWG) * Australian Dollars (AUD) * Barbadian Dollar (BBD) * Azerbaijani Manat (AZN) * Bangladesh Taka (BDT) * Bahamian Dollar (BSD) * Bahraini Dinar (BHD) * Belarusian Ruble (BYN) * Belize Dollar (BZD) * Bhutanese Ngultrum (BTN) * Bosnia and Herzegovina Convertible Mark (BAM) * Brazilian Real (BRL) * Bolivian Boliviano (BOB) * Botswana Pula (BWP) * Brunei Dollar (BND) * Bulgarian Lev (BGN) * Burmese Kyat (MMK) * Cambodian Riel (KHR) * Cape Verdean escudo (CVE) * Cayman Dollars (KYD) * Central African CFA Franc (XAF) * Chilean Peso (CLP) * Chinese Yuan Renminbi (CNY) * Colombian Peso (COP) * Comorian Franc (KMF) * Congolese franc (CDF) * Costa Rican Colones (CRC) * Croatian Kuna (HRK) * Czech Koruny (CZK) * Danish Kroner (DKK) * Dominican Peso (DOP) * East Caribbean Dollar (XCD) * Egyptian Pound (EGP) * Ethiopian Birr (ETB) * CFP Franc (XPF) * Fijian Dollars (FJD) * Gambian Dalasi (GMD) * Ghanaian Cedi (GHS) * Guatemalan Quetzal (GTQ) * Guyanese Dollar (GYD) * Georgian Lari (GEL) * Haitian Gourde (HTG) * Honduran Lempira (HNL) * Hong Kong Dollars (HKD) * Hungarian Forint (HUF) * Icelandic Kronur (ISK) * Indian Rupees (INR) * Indonesian Rupiah (IDR) * Israeli New Shekel (NIS) * Jamaican Dollars (JMD) * Japanese Yen (JPY) * Jersey Pound (JEP) * Jordanian Dinar (JOD) * Kazakhstani Tenge (KZT) * Kenyan Shilling (KES) * Kuwaiti Dinar (KWD) * Kyrgyzstani Som (KGS) * Laotian Kip (LAK) * Latvian Lati (LVL) * Lebanese Pounds (LBP) * Lesotho Loti (LSL) * Liberian Dollar (LRD) * Malagasy Ariary (MGA) * Macedonia Denar (MKD) * Macanese Pataca (MOP) * Malawian Kwacha (MWK) * Maldivian Rufiyaa (MVR) * Mexican Pesos (MXN) * Malaysian Ringgits (MYR) * Mauritian Rupee (MUR) * Moldovan Leu (MDL) * Moroccan Dirham (MAD) * Mongolian Tugrik (MNT) * Mozambican Metical (MZN) * Namibian Dollar (NAD) * Nepalese Rupee (NPR) * Netherlands Antillean Guilder (ANG) * New Zealand Dollars (NZD) * Nicaraguan Córdoba (NIO) * Nigerian Naira (NGN) * Norwegian Kroner (NOK) * Omani Rial (OMR) * Pakistani Rupee (PKR) * Papua New Guinean Kina (PGK) * Paraguayan Guarani (PYG) * Peruvian Nuevo Sol (PEN) * Philippine Peso (PHP) * Polish Zlotych (PLN) * Qatari Rial (QAR) * Romanian Lei (RON) * Russian Rubles (RUB) * Rwandan Franc (RWF) * Samoan Tala (WST) * Saudi Riyal (SAR) * Sao Tome And Principe Dobra (STD) * Serbian dinar (RSD) * Seychellois Rupee (SCR) * Singapore Dollars (SGD) * Sudanese Pound (SDG) * Syrian Pound (SYP) * South African Rand (ZAR) * South Korean Won (KRW) * South Sudanese Pound (SSP) * Solomon Islands Dollar (SBD) * Sri Lankan Rupees (LKR) * Surinamese Dollar (SRD) * Swazi Lilangeni (SZL) * Swedish Kronor (SEK) * Swiss Francs (CHF) * Taiwan Dollars (TWD) * Thai baht (THB) * Tanzanian Shilling (TZS) * Trinidad and Tobago Dollars (TTD) * Tunisian Dinar (TND) * Turkish Lira (TRY) * Turkmenistani Manat (TMT) * Ugandan Shilling (UGX) * Ukrainian Hryvnia (UAH) * United Arab Emirates Dirham (AED) * Uruguayan Pesos (UYU) * Uzbekistan som (UZS) * Vanuatu Vatu (VUV) * Venezuelan Bolivares (VEF) * Vietnamese đồng (VND) * West African CFA franc (XOF) * Yemeni Rial (YER) * Zambian Kwacha (ZMW) * Saint Helena pound * Burundian franc * Bermudian dollar * Cuban peso * Djiboutian franc * Eritrean nakfa * Guinean franc * North Korean won * Sierra Leonean leone * Somali shilling * Tajikistani somoni * Tongan paʻanga * Falkland Islands pound Log in (function(){ let w = window.innerWidth; function setHeaderCssVar() { const headerEle = document.getElementById('shoplaza-section-header'); if(!headerEle){ return }; document.body.style.setProperty('--window-height', `${window.innerHeight}px`); document.body.style.setProperty('--header-height', `${headerEle.clientHeight}px`); const mdScorllHideEle = headerEle.querySelector('.header__mobile .header__scroll_hide'); if (mdScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-md', `${mdScorllHideEle.clientHeight}px`); } const pcScorllHideEle = headerEle.querySelector('.header__desktop .header__scroll_hide'); if (pcScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-pc', `${pcScorllHideEle.clientHeight}px`); } } function handlResize() { if(w == window.innerWidth){return}; w = window.innerWidth; setHeaderCssVar(); }; function init(){ setHeaderCssVar(); window.removeEventListener('resize', window._theme_header_listener) window._theme_header_listener = handlResize; window.addEventListener('resize', window._theme_header_listener); } init(); })(); ${data.index + 1}/4 OFF SHOULDER TEXTURED BUTTON UP SLIT LONG SLEEVE MAXI DRESS ${function() { const variantData = data.variant || {"id":"a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","product_id":"788093bf-c6a7-437f-a498-206b51abdc70","title":"Black-S","weight_unit":"kg","inventory_quantity":0,"sku":"BL2403073720-Black-S","barcode":"","position":1,"option1":"Black","option2":"S","option3":"","note":"","image":{"src":"\/\/img.fantaskycdn.com\/80cb213fbf37771cbedce8941eacc137.jpeg","path":"80cb213fbf37771cbedce8941eacc137.jpeg","width":1080,"height":1620,"alt":"","aspect_ratio":0.6666666666666666},"wholesale_price":[{"price":46.45,"min_quantity":1}],"weight":"330","compare_at_price":"75","price":"46.45","retail_price":"75","available":true,"url":"\/products\/off-shoulder-textured-button-up-slit-long-sleeve-maxi-dress?variant=a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","available_quantity":999999999,"options":[{"name":"Color","value":"Black"},{"name":"Size","value":"S"}],"off_ratio":38,"flashsale_info":[],"sales":0}; const saveType = "percentage"; const saveText = "Save {{saved_amount}}"; const productLabelDiscountOn = false; return ` - ${saveText.replace('\{\{saved_amount\}\}', saveType == 'percentage' ? variantData.off_ratio + '%' : `` )} `; }()} €43.49 €70.22 Extra12% OFF GET NY2024 NY2024 Copy code Color ${function(){ const optName = "Color"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (': ' + optionValue) : ''; return ` ${optionValueText} ` }()} : Black Black Rose Red ${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return ` ${tipText} ` }()} Size ${function(){ const optName = "Size"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (': ' + optionValue) : ''; return ` ${optionValueText} ` }()} : S S M L XL 2XL ${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return ` ${tipText} ` }()} Quantity Add to cart €43.49 ${function(){ const wholesale_enabled = false; const qty = data.quantity || 1; const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const productVariant = {"id":"a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","product_id":"788093bf-c6a7-437f-a498-206b51abdc70","title":"Black-S","weight_unit":"kg","inventory_quantity":0,"sku":"BL2403073720-Black-S","barcode":"","position":1,"option1":"Black","option2":"S","option3":"","note":"","image":{"src":"\/\/img.fantaskycdn.com\/80cb213fbf37771cbedce8941eacc137.jpeg","path":"80cb213fbf37771cbedce8941eacc137.jpeg","width":1080,"height":1620,"alt":"","aspect_ratio":0.6666666666666666},"wholesale_price":[{"price":46.45,"min_quantity":1}],"weight":"330","compare_at_price":"75","price":"46.45","retail_price":"75","available":true,"url":"\/products\/off-shoulder-textured-button-up-slit-long-sleeve-maxi-dress?variant=a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","available_quantity":999999999,"options":[{"name":"Color","value":"Black"},{"name":"Size","value":"S"}],"off_ratio":38,"flashsale_info":[],"sales":0}; const variantData = currentSelectVariant || defaultVariant || productVariant; const wholesale_price = variantData.wholesale_price || []; if(wholesale_enabled && wholesale_price.length > 0) { let wholesaleIndex = wholesale_price.findIndex(item => { return item.min_quantity > qty; }); if(wholesaleIndex < 0){ wholesaleIndex = wholesale_price.length - 1; }else if(wholesaleIndex > 0){ wholesaleIndex = wholesaleIndex - 1; } const wholesalePrice = wholesale_price[wholesaleIndex] || ''; return ` ` }else { const price = variantData && variantData.price; return price != undefined ? ` ` : ''; } }()} Buy now Product was out of stock. Product is unavailable. ${function(){ const variantData = data.variant || {"id":"a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","product_id":"788093bf-c6a7-437f-a498-206b51abdc70","title":"Black-S","weight_unit":"kg","inventory_quantity":0,"sku":"BL2403073720-Black-S","barcode":"","position":1,"option1":"Black","option2":"S","option3":"","note":"","image":{"src":"\/\/img.fantaskycdn.com\/80cb213fbf37771cbedce8941eacc137.jpeg","path":"80cb213fbf37771cbedce8941eacc137.jpeg","width":1080,"height":1620,"alt":"","aspect_ratio":0.6666666666666666},"wholesale_price":[{"price":46.45,"min_quantity":1}],"weight":"330","compare_at_price":"75","price":"46.45","retail_price":"75","available":true,"url":"\/products\/off-shoulder-textured-button-up-slit-long-sleeve-maxi-dress?variant=a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","available_quantity":999999999,"options":[{"name":"Color","value":"Black"},{"name":"Size","value":"S"}],"off_ratio":38,"flashsale_info":[],"sales":0}; return ` ` }()} Please allow a processing time of 3-5 business days before orders ship from our warehouse. /** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust); ${data.module_title} To display this card to customers, you need to go to "Booster & Store Conversion" to turn on the trust enhancement feature. ${data.module_title} ${item.title} ${item.title} ${item.content.replaceAll("{store_name}","linenstylish")} To display this card to customers, you need to go to "Booster & Store Conversion" to turn on the trust enhancement feature. ${data.module_title} ${item.title} ${data.module_title} ${item.title} ${item.content.replaceAll("{store_name}","linenstylish")} Security and Service To display this card to customers, you need to go to "Booster & Store Conversion" to turn on the trust enhancement feature. Security and Service Payment Security Privacy Protection Efficient and Safe Logitics Customer Service Payment Security linenstylish is committed to your secure shopping experience. We offer safe and trusted payment options to protect your transactions. Your payment information is shared only with our certified payment service providers, who are dedicated to maintaining the confidentiality of your details. Privacy Protection At linenstylish, your privacy is our priority. We employ internationally recognized encryption methods for all network transmissions, ensuring the utmost security for your private data during your shopping journey. This includes the protection of your shipping address, credit card information, shopping details, and more. Shop with confidence, knowing your privacy is safeguarded with us. Efficient and Safe Logitics At linenstylish, we ensure secure and efficient logistics. Track your order in real-time right from the order page. For added security, consider our optional "Shipping Protection" service. If your purchase encounters any delays, damage, or loss during delivery, rest assured, our insurance will cover your losses. learn more Customer Service If you encounter problems during or after shopping, don't hesitate to reach out. linenstylish's customer service team is here to assist you. learn more To display this card to customers, you need to go to "Booster & Store Conversion" to turn on the trust enhancement feature. Security and Service Payment Security Privacy Protection Efficient and Safe Logitics Customer Service Security and Service Payment Security linenstylish is committed to your secure shopping experience. We offer safe and trusted payment options to protect your transactions. Your payment information is shared only with our certified payment service providers, who are dedicated to maintaining the confidentiality of your details. Privacy Protection At linenstylish, your privacy is our priority. We employ internationally recognized encryption methods for all network transmissions, ensuring the utmost security for your private data during your shopping journey. This includes the protection of your shipping address, credit card information, shopping details, and more. Shop with confidence, knowing your privacy is safeguarded with us. Efficient and Safe Logitics At linenstylish, we ensure secure and efficient logistics. Track your order in real-time right from the order page. For added security, consider our optional "Shipping Protection" service. If your purchase encounters any delays, damage, or loss during delivery, rest assured, our insurance will cover your losses. learn more Customer Service If you encounter problems during or after shopping, don't hesitate to reach out. linenstylish's customer service team is here to assist you. learn more Description SKU: BL2403073720 Material: Polyester Thickness: Normal Size : S-2XL Style: Leisure/Casual Season: Spring/Autumn Product Type: Dress The size is measured by hand, there may be 2-3cm difference due to manual measurement. Size Chart: Customer Reviews Here are what our customers say. Write a Review Write a Review Reviews With Photos Newest Newest Most liked Highest ratings Lowest ratings No reviews yet, why don't you leave the first review? Write a Review Customer Reviews Reviews With Photos Newest Most liked Highest ratings Lowest ratings × ${function(){ const limit = typeof data === 'number' ? data : 0; return ` Pictures/Videos (${limit || 0}/5) ` }()} ${(function(){ const closeIcon = ' '; if (item.type === 'image') { return ` ${closeIcon} ` } return ` ${closeIcon} ` })()} Submit Comments Anonymously class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload); The review would not show in product details on storefront since it does not support to. YOU MAY ALSO LIKE YOU MAY ALSO LIKE ASYMMETRIC SHEER MESH SLIT LONG SLEEVE MAXI DRESS €35.58 WRAP RUCHED HIGH NECK LONG SLEEVE MAXI DRESS €60.86 WRAP RUCHED HIGH NECK LONG SLEEVE MAXI DRESS €60.86 TASSEL HEM CROCHET KNIT DRESS €60.86 RECENTLY VIEWED Be the first to know about our new arrivals and exclusive offers. Subscribe Please enter a valid email address. Please enter your email address. ${data.errors && data.errors[0]} Thanks for subscribing Company Info * About us * Contact us * Shipping Info * Payment Methods * Terms&Conditions * Refund Policy * Privacy Policy * Intellectual Property Rights Company Info * About us * Contact us * Shipping Info * Payment Methods * Terms&Conditions * Refund Policy * Privacy Policy * Intellectual Property Rights Get in touch Email us Get in touch Email us Follow us * * * Follow us * * * We accept * PayPal * Visa * Mastercard * Maestro * American Express * Diners Club * Discover * JCB We accept * PayPal * Visa * Mastercard * Maestro * American Express * Diners Club * Discover * JCB © 2024 linenstylish View Cart ${function(){ const productData = data.product; let product_change_event = '', mouse_over_event = ' '; mouse_out_event = ''; const product_options = productData.options.filter(Boolean) || []; for (let opt of product_options) { product_change_event = product_change_event + `quick-shop-selected-variant-${opt.name}.rerender(data=event.selectedValues.${opt.name});`; mouse_out_event = mouse_out_event + `quick-shop-selected-variant-${opt.name}.rerender(data=event.selectData.${opt.name});`; mouse_over_event = mouse_over_event + `@${opt.name}Mouseover="quick-shop-selected-variant-${opt.name}.rerender(data=event);"`; } const selectedVariant = productData.variants.find(v => v.available) || productData.variants[0]; const statusLan = ((selectedVariant && !selectedVariant.available) || (!selectedVariant && !productData.available)) ? "Sold out" : "Add to cart"; return ` ${statusLan} ` }()} ${function(){ const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const variantData = currentSelectVariant || defaultVariant || data; const retail_price = variantData.retail_price || 0; return ` Retail ` }()} ${function(){ const wholesale_enabled = false; const qty = data.quantity || 1; const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const productVariant = {"id":"a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","product_id":"788093bf-c6a7-437f-a498-206b51abdc70","title":"Black-S","weight_unit":"kg","inventory_quantity":0,"sku":"BL2403073720-Black-S","barcode":"","position":1,"option1":"Black","option2":"S","option3":"","note":"","image":{"src":"\/\/img.fantaskycdn.com\/80cb213fbf37771cbedce8941eacc137.jpeg","path":"80cb213fbf37771cbedce8941eacc137.jpeg","width":1080,"height":1620,"alt":"","aspect_ratio":0.6666666666666666},"wholesale_price":[{"price":46.45,"min_quantity":1}],"weight":"330","compare_at_price":"75","price":"46.45","retail_price":"75","available":true,"url":"\/products\/off-shoulder-textured-button-up-slit-long-sleeve-maxi-dress?variant=a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","available_quantity":999999999,"options":[{"name":"Color","value":"Black"},{"name":"Size","value":"S"}],"off_ratio":38,"flashsale_info":[],"sales":0}; const variantData = currentSelectVariant || defaultVariant || productVariant; const wholesale_price = variantData.wholesale_price || []; if(wholesale_enabled && wholesale_price.length > 0) { let wholesaleIndex = wholesale_price.findIndex(item => { return item.min_quantity > qty; }); if(wholesaleIndex < 0){ wholesaleIndex = wholesale_price.length - 1; }else if(wholesaleIndex > 0){ wholesaleIndex = wholesaleIndex - 1; } const wholesalePrice = wholesale_price[wholesaleIndex] || ''; return ` ` }else { const price = variantData && variantData.price; return price != undefined ? ` ` : ''; } }()} ${function() { let variantImageShowed = false; const currentProduct = data.product; return (currentProduct.options || []).map((option, index) => { const optionName = option.name || ''; const position = `option${index + 1}`; let isThumbImage = false; if (currentProduct.need_variant_image && !variantImageShowed) { const variantNames = ["color"] || []; for (let i = 0, len = variantNames.length; i < len; i++) { const name = variantNames[i].toLowerCase(); if (name === optionName.toLowerCase()) { isThumbImage = true; variantImageShowed = true; } } } const variantType = "button"; const thumbStyle = "image_with_text"; return ` ${optionName}: ${option.values.map((value, idx) => { const selected = data.selectedValues[optionName] == value ? 'checked' : ''; let thumbImage = null; if (isThumbImage) { const variants = currentProduct.variants; for (let i = 0, len = variants.length; i < len; i++) { const variant = variants[i]; if (variant[position] == value && thumbImage == null) { thumbImage = variant.image; break; } } } return ` ${value} ` }).join('')} ${optionName} ${option.values.map(value => { const selected = data.selectedValues[optionName] == value ? 'selected' : ''; return `${value}` }).join('')} ` }).join(''); }()} ${data.originData && data.originData.value || data.value} View Cart ${function(){ const productData = data.product; let product_change_event = '', mouse_over_event = ' '; mouse_out_event = ''; const product_options = productData.options.filter(Boolean) || []; for (let opt of product_options) { product_change_event = product_change_event + `quick-shop-selected-variant-${opt.name}.rerender(data=event.selectedValues.${opt.name});`; mouse_out_event = mouse_out_event + `quick-shop-selected-variant-${opt.name}.rerender(data=event.selectData.${opt.name});`; mouse_over_event = mouse_over_event + `@${opt.name}Mouseover="quick-shop-selected-variant-${opt.name}.rerender(data=event);"`; } const selectedVariant = productData.variants.find(v => v.available) || productData.variants[0]; const statusLan = ((selectedVariant && !selectedVariant.available) || (!selectedVariant && !productData.available)) ? "Sold out" : "Add to cart"; return ` ${statusLan} ` }()} ${function(){ const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const variantData = currentSelectVariant || defaultVariant || data; const retail_price = variantData.retail_price || 0; return ` Retail ` }()} ${function(){ const wholesale_enabled = false; const qty = data.quantity || 1; const currentSelectVariant = data.variant; const defaultVariant = (data.product && data.product.variants && data.product.variants[0]); const productVariant = {"id":"a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","product_id":"788093bf-c6a7-437f-a498-206b51abdc70","title":"Black-S","weight_unit":"kg","inventory_quantity":0,"sku":"BL2403073720-Black-S","barcode":"","position":1,"option1":"Black","option2":"S","option3":"","note":"","image":{"src":"\/\/img.fantaskycdn.com\/80cb213fbf37771cbedce8941eacc137.jpeg","path":"80cb213fbf37771cbedce8941eacc137.jpeg","width":1080,"height":1620,"alt":"","aspect_ratio":0.6666666666666666},"wholesale_price":[{"price":46.45,"min_quantity":1}],"weight":"330","compare_at_price":"75","price":"46.45","retail_price":"75","available":true,"url":"\/products\/off-shoulder-textured-button-up-slit-long-sleeve-maxi-dress?variant=a6f0360e-0046-4b7f-88f5-3a2b7da2dc47","available_quantity":999999999,"options":[{"name":"Color","value":"Black"},{"name":"Size","value":"S"}],"off_ratio":38,"flashsale_info":[],"sales":0}; const variantData = currentSelectVariant || defaultVariant || productVariant; const wholesale_price = variantData.wholesale_price || []; if(wholesale_enabled && wholesale_price.length > 0) { let wholesaleIndex = wholesale_price.findIndex(item => { return item.min_quantity > qty; }); if(wholesaleIndex < 0){ wholesaleIndex = wholesale_price.length - 1; }else if(wholesaleIndex > 0){ wholesaleIndex = wholesaleIndex - 1; } const wholesalePrice = wholesale_price[wholesaleIndex] || ''; return ` ` }else { const price = variantData && variantData.price; return price != undefined ? ` ` : ''; } }()} ${function() { let variantImageShowed = false; const currentProduct = data.product; return (currentProduct.options || []).map((option, index) => { const optionName = option.name || ''; const position = `option${index + 1}`; let isThumbImage = false; if (currentProduct.need_variant_image && !variantImageShowed) { const variantNames = ["color"] || []; for (let i = 0, len = variantNames.length; i < len; i++) { const name = variantNames[i].toLowerCase(); if (name === optionName.toLowerCase()) { isThumbImage = true; variantImageShowed = true; } } } const variantType = "button"; const thumbStyle = "image_with_text"; return ` ${optionName}: ${option.values.map((value, idx) => { const selected = data.selectedValues[optionName] == value ? 'checked' : ''; let thumbImage = null; if (isThumbImage) { const variants = currentProduct.variants; for (let i = 0, len = variants.length; i < len; i++) { const variant = variants[i]; if (variant[position] == value && thumbImage == null) { thumbImage = variant.image; break; } } } return ` ${value} ` }).join('')} ${optionName} ${option.values.map(value => { const selected = data.selectedValues[optionName] == value ? 'selected' : ''; return `${value}` }).join('')} ` }).join(''); }()} ${data.originData && data.originData.value || data.value} const TAG = 'spz-custom-painter-button-animation'; const MAX_ITERATION_COUNT = 99999999; const SITE = (window.C_SETTINGS && window.C_SETTINGS.routes && window.C_SETTINGS.routes.root) || ''; const ADD_TO_CART_ANIMATION_SETTING = `${SITE}/api/marketing_atmosphere_app/add_to_cart_btn_animation/setting`; class SpzCustomPainterButtonAnimation extends SPZ.BaseElement { /**@override */ static deferredMount() { return false; } /** @param {!SpzElement} element */ constructor(element) { super(element); /** @private {!../../src/service/xhr-impl.Xhr} */ this.xhr_ = SPZServices.xhrFor(this.win); /** @private {Object} */ this.data_ = null; /** @private {Element} */ this.addToCartButton_ = null; /** @private {boolean} */ this.productAvailable_ = true; /** @private {number} */ this.timerId_ = null; /** @private {number} */ this.animationExecutionCount_ = 0; /** @private {boolean} */ this.selectedVariantAvailable_ = true; /** @private {number} */ this.delay_ = 5000; /** @private {number} */ this.iterationCount_ = 5; /** @private {string} */ this.animationClass_ = ''; } /** @override */ isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } /** @override */ buildCallback() { this.productAvailable_ = this.element.hasAttribute('product-available'); this.selectedVariantAvailable_ = this.element.hasAttribute('selected-variant-available'); } /** @override */ mountCallback() { this.render_(); } /** @private */ render_() { if (!this.productAvailable_) { return; } this.fetch_().then((data) => { if (!data) { return; } this.data_ = data; this.animationClass_ = `painter-${data.animation_name}-animation`; this.iterationCount_ = data.animation_iteration_count === 'infinite' ? MAX_ITERATION_COUNT : data.animation_iteration_count; const animationDuration = 1; const animationDelay = data.animation_delay || 5; this.delay_ = (animationDuration + animationDelay) * 1000; this.handleButtonEffect_(); }); } /** * @param {JsonObject} data * @return {(null|Object)} * @private */ parseJson_(data) { try { return JSON.parse(data); } catch (e) { return null; } } /** * @return {Promise} * @private */ fetch_() { return this.xhr_.fetchJson(ADD_TO_CART_ANIMATION_SETTING).then((data) => { if (!data || !data.enabled) { return null; } return this.parseJson_(data.detail); }); } /** @private */ getAddToCartButton_() { this.addToCartButton_ = SPZCore.Dom.scopedQuerySelector( document.body, '[data-section-type="product"] [role="addToCart"], [data-section-type="product_detail"] [role="addToCart"], [data-section-type="product_detail"] [data-click="addToCart"], [data-section-type="product"] [data-click="addToCart"]' ); } /** @private */ restartAnimation_() { this.addToCartButton_.classList.remove(this.animationClass_); this.addToCartButton_./* OK */ offsetWidth; this.addToCartButton_.classList.add(this.animationClass_); this.animationExecutionCount_++; } /** @private */ clearTimer_() { this.win.clearInterval(this.timerId_); this.timerId_ = null; } /** @private */ setupTimer_() { this.timerId_ = this.win.setInterval(() => { this.restartAnimation_(); if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); this.clearTimer_(); } }, this.delay_); } /** @private */ restartTimer_() { if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); return; } this.setupTimer_(); } /** @private */ listenVariantChange_() { SPZUtils.Event.listen(self.document, 'dj.variantChange', (e) => { const selectedVariant = e.detail && e.detail.selected; if (!selectedVariant) { return; } const {available} = selectedVariant; if (this.selectedVariantAvailable_ !== available) { this.selectedVariantAvailable_ = available; this.clearTimer_(); if (available) { this.restartTimer_(); } } }); } /** @private */ removeAnimationClass_() { this.win.setTimeout(() => { this.addToCartButton_.classList.remove(this.animationClass_); }, 1000); } /** @private */ handleButtonEffect_() { this.getAddToCartButton_(); if (!this.addToCartButton_) { return; } if (this.selectedVariantAvailable_) { ++this.animationExecutionCount_; this.addToCartButton_.classList.add(this.animationClass_); if (this.iterationCount_ === 1) { this.removeAnimationClass_(); return; } this.setupTimer_(); } this.listenVariantChange_(); } } SPZ.defineElement(TAG, SpzCustomPainterButtonAnimation); 111 Item has been added ${(function(){ const products = data.products; const getDefaultVariant = function(product){ if (product.min_price_variant.available){ return product.min_price_variant; }else { const avail_variants = product.variants.filter(function(variant){ return variant.available; }); if (avail_variants.length) { return avail_variants[0]; } } }; const toQuery = obj => Object.keys(obj) .map(k => Array.isArray(obj[k]) ? obj[k].map(v => `${k}[]=${encodeURIComponent(v)}`).join('&') : `${k}=${encodeURIComponent(obj[k])}` ) .join('&'); const getDefaultTrackParams = function(product, index){ const variant = getDefaultVariant(product); const params = { aid: 'smart_recommend.2.' + data.id, scm: product.scm || data.scm || '', spm: data.spmBase + '.' + index, ssp: data.ssp || '', }; const trackParams = Object.keys(params).map(function(key){ return params[key]; }).join('__'); return trackParams; }; const hasMore = (data.products.length - data.target_top_product_num - data.page * data.limit) === 0; return ` ${(function(){ return ` ${data.config.pop_title} ${data.rebate_tips || ''} `; })()} ${product.title} Added `; })()} class SpzCustomComponent extends SPZ.BaseElement { constructor(element) { super(element); this.templates_ = null; this.container_ = null; this._atcLineItem = {}; this.cart_ = {}; this.top_product_ids_ = []; this.products_ = []; this.activityId_ = null; this.rendered_ = false; this.myInterceptor_ = null; this.i18n_ = {}; this.config_ = {}; this.page_ = 1; this.limit_ = 10; this.loading_ = false; } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.templates_ = SPZServices.templatesForDoc(this.element); this.setAction_(); } mountCallback() { console.log('pop mounted'); this.i18n_ = window.smartRecommendI18n && window.smartRecommendI18n[document.documentElement.lang || 'en-US'] || {}; const cartPopRenderEl = document.getElementById("smart_cart_pop_render"); const modalEl = document.getElementById("smart_cart_pop_modal"); const spmBase = `smart_recommend_2`; const extra = { spmBase: spmBase, i18n: this.i18n_, }; const that = this; document.addEventListener('dj.addToCart', (event) => { try { const e = event.detail; if (e.source === 'buy_now' || window.__upsell_block || this.rendered_) return; that.fetchActivityData({product_id: e.product_id, variant_id: e.variant_id}).then(data => { if (!data || !data.products || !data.products.length) return; that.config_ = data.config; const recommendStyle = document.createElement('style'); recommendStyle.innerHTML = ` #plugin_recommend_atc_pop { display: none !important; } `; document.head.appendChild(recommendStyle); if (data.config.pop_frequency === 'once' && window.sessionStorage.getItem('smart_pop_times') > 0) return; SPZ.whenApiDefined(cartPopRenderEl).then(function(api){ api.render(Object.assign({}, data, extra), true).then(function() { that.rendered_ = true; if (data.products.length) { const headEl = document.getElementById("smart_cart_pop_head_render"); if (headEl) { SPZ.whenApiDefined(headEl).then(function(head){ head.render({ data: data }); }); } SPZ.whenApiDefined(modalEl).then(function(api){ that.impressListen('#smart_cart_pop_activity', function(){ that.trackPluginImpression_(data); }); api.open(); const intersectionObserver = new IntersectionObserver( function (entries) { if (entries[0].intersectionRatio > 0){ !that.loading_ && (that.products_.length - that.target_top_product_num_) === that.page_ * that.limit_ && that.viewMore(); } }, { threshold: [0.1] } ); intersectionObserver.observe( document.querySelector('#smart_cart_pop_view_more_text') ); }); } }) }); }) } catch (e) { console.error(e); } }); } unmountCallback() { } viewMore () { const cartPopRenderEl = document.getElementById("smart_cart_pop_render"); const that = this; const data = {}; SPZ.whenApiDefined(cartPopRenderEl).then(function(api){ that.fetchActivityData({ page: that.page_ + 1, limit: that.limit_ }).then(function(data) { data.products = that.products_; data.target_top_product_num = that.target_top_product_num_; data.i18n = that.i18n_; data.spmBase = `smart_recommend_2`; api.render(data); }) }) } fetchActivityData(data) { const that = this; if (data.product_id) { that._atcLineItem = data; } that.loading_ = true; return that.getCart().then(cart => { that.cart_ = cart.cart; return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_activities", { method: "POST", headers: { "Content-Type": "application/json", "store-id": window.SHOPLAZZA.shop.shop_id, }, body: JSON.stringify({ "show_type": 2, "line_item": { "product_id": that._atcLineItem.product_id, "variant_id": that._atcLineItem.variant_id, }, line_items: cart.cart.line_items, "page": data.page || 1, "limit": data.limit || 10, }) }).then(function(res){ if(res.ok){ return res.json(); } }).then(function(data){ data.cart = cart.cart; if (data.page === 1) { that.target_top_product_num_ = data.target_top_product_num || 0; } that.products_ = that.products_.concat(data.products || []); that.page_ = data.page || 1; that.limit_ = data.limit || 10; return data; }).catch(function(e){ console.log(e); }).finally(function(){ that.loading_ = false; }) }); }; setAction_() { this.registerAction('changeBannerColor', (data) => { if (!data.args.data || !data.args.data.data || !data.args.data.data.data) return false; const config = data.args.data.data.data.config; const bannerBgEl = document.querySelector('.smart_cart_pop_banner_bg'); if (bannerBgEl && config) { bannerBgEl.style.background = config.banner_bg_color; bannerBgEl.style.color = config.banner_text_color; } }); this.registerAction('handleProductChange', (data) => { const that = this; const imageEl = document.getElementById(`smart_cart_pop_image_${data.args.data.product_id}`); SPZ.whenApiDefined(imageEl).then(function(api){ api.render({ data: data.args.data, config: that.config_ }); }); const atcTextEl = document.getElementById(`smart_cart_pop_atc_${data.args.data.product_id}`); SPZ.whenApiDefined(atcTextEl).then(function(api){ api.render({ data: data.args.data, defaultText: data.args.defaultText, soldOutText: that.i18n_.sold_out }); }); if (data.args.data.variant.available) { document.getElementById(`smart_cart_pop_atc_btn_${data.args.data.product_id}`).classList.remove('zb-pointer-events-none'); } else { document.getElementById(`smart_cart_pop_atc_btn_${data.args.data.product_id}`).classList.add('zb-pointer-events-none'); } }); this.registerAction('handleProduct', (detail) => { const that = this; this.renderProductsForm_(detail.args.data.data); }); this.registerAction('addATCHook', (data) => { const params = data.args; this.myInterceptor_ = window.djInterceptors && window.djInterceptors.track.use({ event: 'dj.addToCart', params: { aid: 'smart_recommend.2.' + params.activity_id, ssp: params.ssp, scm: params.scm, cfb: params.cfb, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${params.spm}`, }, once: true }); }); this.registerAction('handleAtcSuccess', (detail) => { detail.args.data.product = detail.args.data.product || {}; detail.args.data.variant = detail.args.data.variant || {}; const defParams = detail.args.product.split('__'); const product_id = detail.args.data.product.id; const product_title = detail.args.data.product.title; const variant_id = detail.args.data.variant.id; const price = detail.args.data.variant.price; const aid = defParams[0]; const ifb = detail.args.data.product.ifb; const cfb = detail.args.data.product.cfb; const scm = defParams[1]; const spm = defParams[2]; const ssp = defParams[3]; const params = { id: product_id, product_id: product_id, number: 1, name: product_title, variant_id: variant_id, childrenId: variant_id, item_price: price, source: 'add_to_cart', _extra: { aid: aid, ifb: ifb, cfb: cfb, scm: scm, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, ssp: ssp, } }; const activity_id = `${detail.args.activity_id}`; const target_drive_way = detail.args.target_drive_way; document.getElementById(`smart_cart_pop_loading_${product_id}`).classList.add('zb-hidden'); document.getElementById(`smart_cart_pop_added_${product_id}`).classList.remove('zb-hidden'); setTimeout(() => { document.getElementById(`smart_cart_pop_added_${product_id}`).classList.add('zb-hidden'); document.getElementById(`smart_cart_pop_atc_${product_id}`).classList.remove('zb-hidden'); document.getElementById(`smart_cart_pop_atc_btn_${product_id}`).classList.remove('zb-pointer-events-none'); }, 1000); this.tranckAddToCart(params); if (target_drive_way === 'rebate') { const bannerEl = document.getElementById(`smart_cart_pop_banner`); this.getRecommendInfo(activity_id).then(res => { if (res && res.rebate_tips) { bannerEl.innerHTML = res.rebate_tips; } }) } }); this.registerAction('handleCartSummary', (event) => { const that = this; const checkoutButtonEle = document.getElementById("smart_cart_pop_checkout_button"); if (checkoutButtonEle) { SPZ.whenApiDefined(checkoutButtonEle).then(function(api){ api.render({ i18n: that.i18n_ }, false); }); } const tipEl = document.getElementById("smart_cart_pop_tip_info"); const cart = event && event.args && event.args.data && event.args.data.data; if (!tipEl || !cart) return; let total_price = cart.total_price; if (!total_price) { SPZ.whenApiDefined(tipEl).then(function(api){ api.render({ total_price: total_price, i18n: that.i18n_ }, false); }); } else { this.getBindDiscount_(cart.line_items).then(res => { if (res && res.discount_code){ const total = cart.line_price - cart.total_discount - res.bundle_discount_value; if (total > 0) { total_price = total; } else { total_price = 0; } } SPZ.whenApiDefined(tipEl).then(function(api){ api.render({ total_price: total_price, i18n: that.i18n_ }, false); }); }) } }); this.registerAction('open', () => { window.sessionStorage.setItem('smart_pop_times', Number(window.sessionStorage.getItem('smart_pop_times')) + 1); }); this.registerAction('close', () => { this.rendered_ = false; this.products_ = []; window.djInterceptors && window.djInterceptors.track.eject(this.myInterceptor_); }); } getCart() { return fetch(`${window.SHOPLAZZA.routes.root || ''}/api/cart`, { method: 'GET', headers: { 'Content-Type': 'application/json; charset=UTF-8', }, }).then(res => res.json()) } getRecommendInfo (activity_id) { return this.getCart().then(cart => { this.cart_ = cart.cart; return fetch(`${window.SHOPLAZZA.routes.root || ''}/api/possum/recommend_info`, { method: 'POST', headers: { 'Content-Type': 'application/json; charset=UTF-8', }, body: JSON.stringify({ show_type: 2, rule_id: `${activity_id}`, line_items: cart.cart.line_items, line_item: this._atcLineItem, }) }).then(res => res.json()) }) } renderProductsForm_(data) { const products = data.products; const listPopRenderEl = document.getElementById("smart_cart_pop_render"); if (!listPopRenderEl) return; listPopRenderEl.querySelectorAll('.smart_cart_pop_atc_btn_bg').forEach(function(el){ el.style.background = data.config.add_to_cart_button_color; }); products.forEach(function(product){ const productId = product.id; const productFormEls = listPopRenderEl.querySelectorAll(`ljs-product-form[product-id="${productId}"]`); let variantsEl = listPopRenderEl.querySelectorAll(`ljs-product-form[product-id="${productId}"] #smart_cart_pop_variant_${productId}_mobile ljs-variants`); if (window.innerWidth > 768) { variantsEl = listPopRenderEl.querySelectorAll(`ljs-product-form[product-id="${productId}"] #smart_cart_pop_variant_${productId}_pc ljs-variants`); } productFormEls.forEach(function(el){ SPZ.whenApiDefined(el).then(function(api){ api.setProduct(product); }); }); variantsEl.forEach(function(el){ SPZ.whenApiDefined(el).then(function(api){ api.handleRender(product); }); }) }); } tranckAddToCart(detail) { if (window.$) { window.$(document.body).trigger('dj.addToCart', detail); } } trackPluginImpression_(rule){ if (window.sa && window.sa.track) { window.sa.track("module_impressions", { aid: `smart_recommend.2.${rule.id}` }); } } getBindDiscount_(carts) { let bundle_sale_ids = []; try { bundle_sale_ids = sessionStorage['bundle_sale_ids'] && JSON.parse(sessionStorage['bundle_sale_ids']).filter((item, index, arr) => arr.indexOf(item, 0) === index).slice(-5); } catch (err) { console.error(err); } if (!carts.length) { Promise.resolve(); } return fetch(`${window.SHOPLAZZA.routes.root || ''}/api/bundle-sales/cart`, { method: 'POST', headers: { 'Content-Type': 'application/json; charset=UTF-8', 'store-id': window.SHOPLAZZA.shop.shop_id, }, body: JSON.stringify({ cart: carts, action_type: 'cart', bundle_sale_ids }) }).then(res => res.json()) } impressListen(selector, cb) { const el = document.querySelector(selector); const onImpress = (e) => { if (e) { e.stopPropagation(); } cb(); }; if (el && !el.getAttribute('imprsd')) { el.addEventListener('impress', onImpress) } else if (el) { onImpress(); } } } SPZ.defineElement('spz-custom-smart', SpzCustomComponent); ${function(){ return ` ${data.data.rebate_tips || ''} `; }()} ${function(){ const getImageHeight = function(image){ const width = image.width || 500; const height = image.height || 500; const image_size = data.config.image_size || 0; let ratio = 0; if(image_size == 0){ ratio = (height / width).toFixed(2); }else if(image_size == 1){ ratio = 1.5; } return 132 * ratio; }; const image = data.data.variant.image || data.data.product.image; return ` `; }()} ${(function(){ const product = data.product; const avail_variants = product.variants.filter(function(variant){ return variant.available; }); const selected_variant = product.min_price_variant.available ? product.min_price_variant : avail_variants.length && avail_variants[0]; return ` ${option.name} ${ option.values.map(function(value, index){ const checked = selected_variant["option"+option.position] == value ? "checked": ""; return ` ${value} ` }).join("") } ` })()} ${(function(){ const variant = data.variant; return ` `; })()} ${(function(){ const variant = data.variant; return ` ${ variant.options.map(function(option){ return option.value; }).join("/") || 'Not exist' } `; })()} ${(function(){ const variant = data.data && data.data.variant; const defaultText = data.defaultText || 'Add To Cart'; const text = (!variant || variant.available) ? defaultText: data.soldOutText; return ` ${text} `; })()} ${(function(){ let cart = data; if(data.data) { cart = data.data; } return ` ${cart.item_count >=0 ? cart.item_count : '..'} `; })()} ${(function(){ return ` ${data.i18n.checkout} `; })()} GIFTS POINTS Off Shoulder Textured Button Up Slit Long Sleeve Maxi Dress €43.49 €70.22 €43.49 €70.22 Black/S Add to Cart Off Shoulder Textured Button Up Slit Long Sleeve Maxi Dress €43.49 €70.22 €43.49 €70.22 Black/S Black Black Rose Red S S M L XL 2XL Add to Cart S***e in the United States purchased Commuter All-Match String Top & Pants Two-Piece Set 21 minutes ago S***e recently purchased Success Copy successfully, use at checkout Originaltext Diese Übersetzung bewerten Mit deinem Feedback können wir Google Übersetzer weiter verbessern