www.niospet.com
Open in
urlscan Pro
104.17.247.119
Public Scan
Submitted URL: http://www.niospet.com/products/cat-cardboard-house-with-scratch-pad?variant=9276e7c9-7549-4f90-84d2-0983ee7e7e88
Effective URL: https://www.niospet.com/products/cat-cardboard-house-with-scratch-pad?variant=9276e7c9-7549-4f90-84d2-0983ee7e7e88
Submission: On July 20 via api from US — Scanned from DE
Effective URL: https://www.niospet.com/products/cat-cardboard-house-with-scratch-pad?variant=9276e7c9-7549-4f90-84d2-0983ee7e7e88
Submission: On July 20 via api from US — Scanned from DE
Form analysis
7 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-sidebar.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-form9f91dd0b-5503-4afe-b723-37fdab022abc">
<div class="product-info-body-inner product-info-body-z-index" id="product-info-body-inner-container">
<h1 class="product-info-title m-0 leading-1.25 type-heading-font-family break-words product-title-color "> Cat Cardboard House with Scratch Pad </h1>
<spz-render class="mt-4 lg:mt-5 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="product-info-prices" layout="container" manual="" i-spzhtml-layout="container" style="height: auto;">
<template> ${function() { const variantData = data.variant ||
{"id":"9276e7c9-7549-4f90-84d2-0983ee7e7e88","product_id":"9f91dd0b-5503-4afe-b723-37fdab022abc","title":"M1","weight_unit":"kg","inventory_quantity":983,"sku":"","barcode":"","position":1,"option1":"M1","option2":"","option3":"","note":"","image":{"src":"\/\/img.fantaskycdn.com\/5d609925d6e7bdfd294b41fe66a84b84.JPG","path":"5d609925d6e7bdfd294b41fe66a84b84.JPG","width":1024,"height":1024,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":45.95,"min_quantity":1}],"weight":"0.58","compare_at_price":"0","price":"45.95","retail_price":"0","available":true,"url":"\/products\/cat-cardboard-house-with-scratch-pad?variant=9276e7c9-7549-4f90-84d2-0983ee7e7e88","available_quantity":999999999,"options":[{"name":"Pattern
Name","value":"M1"}],"off_ratio":0,"flashsale_info":[],"sales":13}; const saveType = "amount"; const productLabelDiscountOn = true; return ` <div class="flex items-center justify-between">
<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" 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" 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" container-class="product-info__header_price" value="${variantData.price}" layout="container"></spz-currency>
<spz-currency class="leading-1.2 color-compare-price line-through mr-2 lg:body-plus-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="product-info-saved-label inline-block color-save-price whitespace-nowrap font-semibold"> ${saveType == 'percentage' ? `-${variantData.off_ratio}%` :
`<span>-</span><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">
<div class="flex items-center flex-wrap" spz-else="">
<spz-currency class="mr-2 i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" container-class="product-info__header_price" value="45.95" layout="container" i-spzhtml-layout="container">
<div class="money product-info__header_price notranslate">€45.95</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>
</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-detail-images" manual="" interference="" select-soldout-suffix=" - Sold out" interact="hover" inherit-url-variant="" @mouseout="product-info-selected-variant-option1.rerender(data=event);"
@pattern-namemouseover="product-info-selected-variant-option1.rerender(data=event);" i-spzhtml-layout="container">
<fieldset class="product-info__variants_content mx-0 mt-4 lg:mt-5" name="Pattern Name">
<legend class="w-full m-0 p-0">
<span class="lg:body-plus-2 font-semibold leading-1.25 product-info__variants_title">Pattern Name: </span>
<spz-render class="product-info-selected-variant-option-text inline-block color-body-70 leading-1.25 lg:body-minus-2 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" id="product-info-selected-variant-option1"
layout="container" manual="" i-spzhtml-layout="container" style="height: 18px;">
<template> ${function(){ const optName = "Pattern Name"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (optionValue) : ''; return
`<span>${optionValueText}</span>`; }()} </template>
<span>M1</span></spz-render>
</legend>
<div class="flex flex-wrap product-info-variant-container ">
<div class="relative mt-3 mr-3">
<input type="radio" option="M1" id="product-info-variant-M1-0" class="pointer-events-auto" name="product-info-variant-Pattern Name" value="M1" form="product-info-body"
@input-debounced="product-info-selected-variant-option1.rerender(data=event);" checked="">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-sm
" data-type="text">
<span class="break-words text-center">M1</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="M2" id="product-info-variant-M2-1" class="pointer-events-auto" name="product-info-variant-Pattern Name" value="M2" form="product-info-body"
@input-debounced="product-info-selected-variant-option1.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-sm
" data-type="text">
<span class="break-words text-center">M2</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="Rectangle" id="product-info-variant-Rectangle-2" class="pointer-events-auto" name="product-info-variant-Pattern Name" value="Rectangle" form="product-info-body"
@input-debounced="product-info-selected-variant-option1.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-sm
" data-type="text">
<span class="break-words text-center">Rectangle</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="Star" id="product-info-variant-Star-3" class="pointer-events-auto" name="product-info-variant-Pattern Name" value="Star" form="product-info-body"
@input-debounced="product-info-selected-variant-option1.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-sm
" data-type="text">
<span class="break-words text-center">Star</span>
</label>
</div>
<div class="relative mt-3 mr-3">
<input type="radio" option="M1+M2" id="product-info-variant-M1+M2-4" class="pointer-events-auto" name="product-info-variant-Pattern Name" value="M1+M2" form="product-info-body"
@input-debounced="product-info-selected-variant-option1.rerender(data=event);">
<label class="product-info-variant-option relative flex items-center break-words flex-shrink-0 overflow-hidden
rounded-sm
" data-type="text">
<span class="break-words text-center">M1+M2</span>
</label>
</div>
</div>
</fieldset>
<spz-render id="product-variant-option1-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-4 lg:mt-5">
<div class="leading-1.25 font-semibold lg:body-plus-2">Quantity</div>
<spz-quantity class="product-info-qty mt-2 lg: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" aria-label="decrease" 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" aria-label="increase"
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-4 lg:mt-5">
<button class="relative button-secondary flex items-center justify-center w-full body-plus-2 leading-1.25 type-text-font-family rounded-btn product-info_atc_btn" 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="45.95" layout="container" class="i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" i-spzhtml-layout="container">
<div class="money notranslate">€45.95</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":"9276e7c9-7549-4f90-84d2-0983ee7e7e88","product_id":"9f91dd0b-5503-4afe-b723-37fdab022abc","title":"M1","weight_unit":"kg","inventory_quantity":983,"sku":"","barcode":"","position":1,"option1":"M1","option2":"","option3":"","note":"","image":{"src":"\/\/img.fantaskycdn.com\/5d609925d6e7bdfd294b41fe66a84b84.JPG","path":"5d609925d6e7bdfd294b41fe66a84b84.JPG","width":1024,"height":1024,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":45.95,"min_quantity":1}],"weight":"0.58","compare_at_price":"0","price":"45.95","retail_price":"0","available":true,"url":"\/products\/cat-cardboard-house-with-scratch-pad?variant=9276e7c9-7549-4f90-84d2-0983ee7e7e88","available_quantity":999999999,"options":[{"name":"Pattern
Name","value":"M1"}],"off_ratio":0,"flashsale_info":[],"sales":13}; 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-primary w-full body-plus-2 leading-1.25 type-text-font-family rounded-btn mt-2 lg:mt-3 product-info_atc_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>
<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 class="mt-4 lg:mt-5 i-spzhtml-layout-container i-spzhtml-element i-spzhtml-built i-spzhtml-layout" layout="container" id="product-detail-featured" manual="" i-spzhtml-layout="container" style="height: 16px;">
<template> ${function(){ const variantData = data.variant ||
{"id":"9276e7c9-7549-4f90-84d2-0983ee7e7e88","product_id":"9f91dd0b-5503-4afe-b723-37fdab022abc","title":"M1","weight_unit":"kg","inventory_quantity":983,"sku":"","barcode":"","position":1,"option1":"M1","option2":"","option3":"","note":"","image":{"src":"\/\/img.fantaskycdn.com\/5d609925d6e7bdfd294b41fe66a84b84.JPG","path":"5d609925d6e7bdfd294b41fe66a84b84.JPG","width":1024,"height":1024,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":45.95,"min_quantity":1}],"weight":"0.58","compare_at_price":"0","price":"45.95","retail_price":"0","available":true,"url":"\/products\/cat-cardboard-house-with-scratch-pad?variant=9276e7c9-7549-4f90-84d2-0983ee7e7e88","available_quantity":999999999,"options":[{"name":"Pattern
Name","value":"M1"}],"off_ratio":0,"flashsale_info":[],"sales":13}; return ` <div class="body-minus-2">
<div spz-if="${!!(variantData && variantData.sku)}" class="product-detail-featured-item"> Sku : <span>${variantData && variantData.sku}</span>
</div>
<div spz-if="${variantData && +variantData.weight > 0}" class="product-detail-featured-item"> Weight : <span>${variantData && variantData.weight}${variantData && variantData.weight_unit}</span>
</div>
<div spz-if="${!!(variantData && variantData.barcode)}" class="product-detail-featured-item"> Barcode : <span>${variantData && variantData.barcode}</span>
</div>
</div> ` }()} </template>
<div class="body-minus-2">
<div class="product-detail-featured-item" spz-if="true"> Weight : <span>0.58kg</span>
</div>
</div>
</spz-render>
<div class="bundle-combination-container">
<div class="common__product-row">
<bundle-product-list data-version="0112 15:08" class="bundle-main" style-type="sutra" is-quick-shop="true" pid="9f91dd0b-5503-4afe-b723-37fdab022abc" 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>
<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}","NioPets")} </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}","NioPets")} </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="true" 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 pb-4"> Security and Service </div> <ljs-accordion class="trust-card-block i-spzhtml-element i-spzhtml-layout-container i-spzhtml-built i-spzhtml-layout" layout="container"
i-spzhtml-layout="container">
<section class="" @expand="strengthen-trust-render-script-1539149753700.track(type='trust_expand_click');">
<div class="trust-accordion-header i-spzhtml-accordion-header" 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 i-spzhtml-accordion-content">
<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"> NioPets 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/18345efd4db8552be9c72c41c27ea6e7.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/50927f9a9805ee57dd3971a24ab13037.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/b068c5902e07857d5251e11f8198ad80.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/b823bc7dd65f1a58d949dfb47916e4b2.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/3cc7bc0c09f7f0fb19581a21abd4cd53.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 NioPets, 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 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/56795daf3e1b2e526fabf1590368afa9.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/9ddfdb73309f0a625d407a0f6afb9bbd.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/9050730bedd367f8c8e0a42138be79d2.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/aaa433c827216a6bb95fb68b5de4aeea.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/42fd2cf01ff65e2e4100dbade836fd55.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/02f47fad8c079ca26451786572a3b8f7.png" 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/6214e504e3a39e338cbacbad95cc91a6.png" 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/93631da9d6bb8df3f15abd313a7dbe52.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="8" 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/558fc0b3261edf2e60803e08a0653681.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="9" 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/200dbfe3761c90a067dd54a58e0bb43e.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="10" 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/9211bbdc27660ab7dafeed6b7cebe42b.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-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 NioPets, 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. NioPets'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 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"> NioPets 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/18345efd4db8552be9c72c41c27ea6e7.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/50927f9a9805ee57dd3971a24ab13037.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/b068c5902e07857d5251e11f8198ad80.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/b823bc7dd65f1a58d949dfb47916e4b2.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/3cc7bc0c09f7f0fb19581a21abd4cd53.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 NioPets, 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 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/56795daf3e1b2e526fabf1590368afa9.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/9ddfdb73309f0a625d407a0f6afb9bbd.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/9050730bedd367f8c8e0a42138be79d2.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/aaa433c827216a6bb95fb68b5de4aeea.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/42fd2cf01ff65e2e4100dbade836fd55.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/02f47fad8c079ca26451786572a3b8f7.png" 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/6214e504e3a39e338cbacbad95cc91a6.png" 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/93631da9d6bb8df3f15abd313a7dbe52.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="8" 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/558fc0b3261edf2e60803e08a0653681.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="9" 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/200dbfe3761c90a067dd54a58e0bb43e.png" object-fit="contain" alt="trust-img" i-spzhtml-layout="fixed" style="width: 55px; height: 35px;"></ljs-img><ljs-img key="10" 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/9211bbdc27660ab7dafeed6b7cebe42b.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-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 NioPets, 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. NioPets'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="9f91dd0b-5503-4afe-b723-37fdab022abc"><input name="variant_id" type="hidden" value="9276e7c9-7549-4f90-84d2-0983ee7e7e88"><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 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 = "100%"; 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 = true && ((+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 ? `${ (+data.compare_at_price > +data.price) ? `Save ` : '' }` : "Sold out" } Mixed Lot ${DATA.TITLE} ${ data.price_min != data.price_max ? `from ` : ` ` } +${data.remainInvisibleThumbCount} ` })()} Powered by Google Übersetzer English,한국어,简体中文,日本語,Português,العربية,Русский,Español,Français,Italiano,Deutsch,Polski,Nederlands,svenska,norsk,čeština,Suomalainen,Ελληνικά,Magyar,Український,Türkçe,Hrvatski jezik EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Croatian Kuna (HRK) * Danish Kroner (DKK) * Czech Koruny (CZK) * Egyptian Pound (EGP) * Hong Kong Dollars (HKD) * Israeli New Shekel (NIS) * Japanese Yen (JPY) * Kuwaiti Dinar (KWD) * Mexican Pesos (MXN) * New Zealand Dollars (NZD) * Netherlands Antillean Guilder (ANG) * Norwegian Kroner (NOK) * Polish Zlotych (PLN) * Romanian Lei (RON) * Singapore Dollars (SGD) * South Korean Won (KRW) * Swedish Kronor (SEK) * Swiss Francs (CHF) * Turkish Lira (TRY) * United Arab Emirates Dirham (AED) * Australian Dollars (AUD) * Colombian Peso (COP) * Log in * Create an account ${data.data && data.data.count} * Home * For Cat All Products Cat Bed Hair Cleaner Pet Toy Water Fountain Bowl Can Opener SPACE CAPSULE CAT BED TRANSPARNT CAT HOUSE from €45.95 * For Dog * Tracking Order * 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: 62437695, title: "Home", url: "\/", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 62437697, title: "For Cat", url: "\/collections\/pet-supplies", target: "", levels: 1, product0: { id: ("47cc8ff4-59d2-4e63-9f00-7be431ec923c") }, children: [ { title: "All Products", url: "\/collections\/pet-supplies", target: "", levels: 0, children: [ ] }, { title: "Cat Bed", url: "\/collections\/cat-bed", target: "", levels: 0, children: [ ] }, { title: "Hair Cleaner", url: "\/collections\/pet-hair-cleaner", target: "", levels: 0, children: [ ] }, { title: "Pet Toy", url: "\/collections\/pet-toy", target: "", levels: 0, children: [ ] }, { title: "Water Fountain", url: "\/collections\/pet-water-fountain", target: "", levels: 0, children: [ ] }, { title: "Bowl", url: "\/collections\/bowl", target: "", levels: 0, children: [ ] }, { title: "Can Opener ", url: "\/collections\/opener-lid", target: "", levels: 0, children: [ ] }, ] }, { id: 62437713, title: "For Dog", url: "\/collections\/for-dog", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 62437715, title: "Tracking Order", url: "\/pages\/tracking-order", target: "", levels: 0, product0: { id: (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} ` })()} * Home * For Cat All Products Cat Bed Hair Cleaner Pet Toy Water Fountain Bowl Can Opener SPACE CAPSULE CAT BED TRANSPARNT CAT HOUSE from €45.95 * For Dog * Tracking Order * 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: 62437695, title: "Home", url: "\/", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 62437697, title: "For Cat", url: "\/collections\/pet-supplies", target: "", levels: 1, product0: { id: ("47cc8ff4-59d2-4e63-9f00-7be431ec923c") }, children: [ { title: "All Products", url: "\/collections\/pet-supplies", target: "", levels: 0, children: [ ] }, { title: "Cat Bed", url: "\/collections\/cat-bed", target: "", levels: 0, children: [ ] }, { title: "Hair Cleaner", url: "\/collections\/pet-hair-cleaner", target: "", levels: 0, children: [ ] }, { title: "Pet Toy", url: "\/collections\/pet-toy", target: "", levels: 0, children: [ ] }, { title: "Water Fountain", url: "\/collections\/pet-water-fountain", target: "", levels: 0, children: [ ] }, { title: "Bowl", url: "\/collections\/bowl", target: "", levels: 0, children: [ ] }, { title: "Can Opener ", url: "\/collections\/opener-lid", target: "", levels: 0, children: [ ] }, ] }, { id: 62437713, title: "For Dog", url: "\/collections\/for-dog", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, { id: 62437715, title: "Tracking Order", url: "\/pages\/tracking-order", target: "", levels: 0, product0: { id: (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} ` })()} English,한국어,简体中文,日本語,Português,العربية,Русский,Español,Français,Italiano,Deutsch,Polski,Nederlands,svenska,norsk,čeština,Suomalainen,Ελληνικά,Magyar,Український,Türkçe,Hrvatski jezik EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Croatian Kuna (HRK) * Danish Kroner (DKK) * Czech Koruny (CZK) * Egyptian Pound (EGP) * Hong Kong Dollars (HKD) * Israeli New Shekel (NIS) * Japanese Yen (JPY) * Kuwaiti Dinar (KWD) * Mexican Pesos (MXN) * New Zealand Dollars (NZD) * Netherlands Antillean Guilder (ANG) * Norwegian Kroner (NOK) * Polish Zlotych (PLN) * Romanian Lei (RON) * Singapore Dollars (SGD) * South Korean Won (KRW) * Swedish Kronor (SEK) * Swiss Francs (CHF) * Turkish Lira (TRY) * United Arab Emirates Dirham (AED) * Australian Dollars (AUD) * Colombian Peso (COP) * 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 * For Cat * For Cat * All Products * Cat Bed * Hair Cleaner * Pet Toy * Water Fountain * Bowl * Can Opener * For Dog * Tracking Order English,한국어,简体中文,日本語,Português,العربية,Русский,Español,Français,Italiano,Deutsch,Polski,Nederlands,svenska,norsk,čeština,Suomalainen,Ελληνικά,Magyar,Український,Türkçe,Hrvatski jezik EUR * United States Dollars (USD) * Euro (EUR) * United Kingdom Pounds (GBP) * Canadian Dollars (CAD) * Croatian Kuna (HRK) * Danish Kroner (DKK) * Czech Koruny (CZK) * Egyptian Pound (EGP) * Hong Kong Dollars (HKD) * Israeli New Shekel (NIS) * Japanese Yen (JPY) * Kuwaiti Dinar (KWD) * Mexican Pesos (MXN) * New Zealand Dollars (NZD) * Netherlands Antillean Guilder (ANG) * Norwegian Kroner (NOK) * Polish Zlotych (PLN) * Romanian Lei (RON) * Singapore Dollars (SGD) * South Korean Won (KRW) * Swedish Kronor (SEK) * Swiss Francs (CHF) * Turkish Lira (TRY) * United Arab Emirates Dirham (AED) * Australian Dollars (AUD) * Colombian Peso (COP) 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(); })(); 5/10 ${data.index + 1}/${data.total} * * * * * * * * * * ${Array(data.total).fill(0).map((num, index) => ` * `).join('')} CAT CARDBOARD HOUSE WITH SCRATCH PAD ${function() { const variantData = data.variant || {"id":"9276e7c9-7549-4f90-84d2-0983ee7e7e88","product_id":"9f91dd0b-5503-4afe-b723-37fdab022abc","title":"M1","weight_unit":"kg","inventory_quantity":983,"sku":"","barcode":"","position":1,"option1":"M1","option2":"","option3":"","note":"","image":{"src":"\/\/img.fantaskycdn.com\/5d609925d6e7bdfd294b41fe66a84b84.JPG","path":"5d609925d6e7bdfd294b41fe66a84b84.JPG","width":1024,"height":1024,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":45.95,"min_quantity":1}],"weight":"0.58","compare_at_price":"0","price":"45.95","retail_price":"0","available":true,"url":"\/products\/cat-cardboard-house-with-scratch-pad?variant=9276e7c9-7549-4f90-84d2-0983ee7e7e88","available_quantity":999999999,"options":[{"name":"Pattern Name","value":"M1"}],"off_ratio":0,"flashsale_info":[],"sales":13}; const saveType = "amount"; const productLabelDiscountOn = true; return ` - ${saveType == 'percentage' ? `-${variantData.off_ratio}%` : `-` } `; }()} €45.95 Pattern Name: ${function(){ const optName = "Pattern Name"; const optionValue = data.originData.selectData ? data.originData.selectData[optName].value : data.originData.value; const optionValueText = optionValue ? (optionValue) : ''; return `${optionValueText}`; }()} M1 M1 M2 Rectangle Star M1+M2 ${function(){ const tipText = "Please select a {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data); return ` ${tipText} ` }()} Quantity Add to cart €45.95 ${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":"9276e7c9-7549-4f90-84d2-0983ee7e7e88","product_id":"9f91dd0b-5503-4afe-b723-37fdab022abc","title":"M1","weight_unit":"kg","inventory_quantity":983,"sku":"","barcode":"","position":1,"option1":"M1","option2":"","option3":"","note":"","image":{"src":"\/\/img.fantaskycdn.com\/5d609925d6e7bdfd294b41fe66a84b84.JPG","path":"5d609925d6e7bdfd294b41fe66a84b84.JPG","width":1024,"height":1024,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":45.95,"min_quantity":1}],"weight":"0.58","compare_at_price":"0","price":"45.95","retail_price":"0","available":true,"url":"\/products\/cat-cardboard-house-with-scratch-pad?variant=9276e7c9-7549-4f90-84d2-0983ee7e7e88","available_quantity":999999999,"options":[{"name":"Pattern Name","value":"M1"}],"off_ratio":0,"flashsale_info":[],"sales":13}; 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":"9276e7c9-7549-4f90-84d2-0983ee7e7e88","product_id":"9f91dd0b-5503-4afe-b723-37fdab022abc","title":"M1","weight_unit":"kg","inventory_quantity":983,"sku":"","barcode":"","position":1,"option1":"M1","option2":"","option3":"","note":"","image":{"src":"\/\/img.fantaskycdn.com\/5d609925d6e7bdfd294b41fe66a84b84.JPG","path":"5d609925d6e7bdfd294b41fe66a84b84.JPG","width":1024,"height":1024,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":45.95,"min_quantity":1}],"weight":"0.58","compare_at_price":"0","price":"45.95","retail_price":"0","available":true,"url":"\/products\/cat-cardboard-house-with-scratch-pad?variant=9276e7c9-7549-4f90-84d2-0983ee7e7e88","available_quantity":999999999,"options":[{"name":"Pattern Name","value":"M1"}],"off_ratio":0,"flashsale_info":[],"sales":13}; return ` Sku : ${variantData && variantData.sku} Weight : ${variantData && variantData.weight}${variantData && variantData.weight_unit} Barcode : ${variantData && variantData.barcode} ` }()} Weight : 0.58kg /** @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}","NioPets")} 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}","NioPets")} Security and Service Security and Service Payment Security Privacy Protection Efficient and Safe Logitics Customer Service Payment Security NioPets 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 NioPets, 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 NioPets, 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. NioPets's customer service team is here to assist you. learn more Security and Service Payment Security Privacy Protection Efficient and Safe Logitics Customer Service Security and Service Payment Security NioPets 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 NioPets, 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 NioPets, 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. NioPets's customer service team is here to assist you. learn more DESCRIPTION ABOUT THIS ITEM * 【2 in1 Design for Cat】Our cat cave with a scratching pad inside, your cat can have a rest and nap in it, and also can polish their nails with the scratching board. The scratching pad is reversible. It keeps your furniture safe from cat claw damage. * 【Privacy & Breathable】 The enclosed cat hideout house is semi-closed, which provide privacy for your Kitten. While the rectangle and star holes on it, which make the house is breathable and comfortable. * 【Easy to Install】Our cat Café is very easy to install, no tools needed. Just put the board together and the scratching pad in it. Each piece easily fit into each other, you will create a cute cat house with several minutes. * 【Environmentally Friendly】Our cat nest is made of 100% recycled corrugated cardboard. No other material, harmless to pets. * 【Size & Color】Two sizes and 2 colors available. 43x38x35cm/17x15x13.7inch. It will provide spacious space for your cat to move around, even for two small animals. You may measure your pet before purchasing. 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 RECENTLY VIEWED Subscribe today to hear first about our sales Subscribe Please enter a valid email address. Please enter your email address. ${data.errors && data.errors[0]} Thanks for subscribing Footer menu * Our Story * Shipping Policy * Return Policy * Contact Us * Tracking Order Footer menu * Our Story * Shipping Policy * Return Policy * Contact Us * Tracking Order We accept * American Express * Apple Pay * Mastercard * PayPal * Visa We accept * American Express * Apple Pay * Mastercard * PayPal * Visa Contact Us * Email: service@niospet.com Whatsapp:+8618566239751 Phone:+19714685804 Contact Us * Email: service@niospet.com Whatsapp:+8618566239751 Phone:+19714685804 Follow us * * * * Follow us * * * * English,한국어,简体中文,日本語,Português,العربية,Русский,Español,Français,Italiano,Deutsch,Polski,Nederlands,svenska,norsk,čeština,Suomalainen,Ελληνικά,Magyar,Український,Türkçe,Hrvatski jezik © 2024 NioPets CART Your shopping bag is empty Continue shopping * ${item.product_title} * ${item.options.map(option => option.value).join('/')} * ${propertie.name}/${propertie.isImage ? `View image` : propertie.value} Free gift Mixed Lot *${item.quantity} ${item.item_text} ${discount_item.title} (-) Total: ${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `${text}`; } return ` ${text} `; }).join(''); }()} ${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `${text}`; } return ` ${text} `; }).join(''); }()} * ${discount_application.title}: - ${data.invalid_msg} Check out Taxes and shipping calculated at checkout ${data.invalid_msg} Total: ${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `${text}`; } return ` ${text} `; }).join(''); }()} ${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `${text}`; } return ` ${text} `; }).join(''); }()} ${function() { const textArray = ("Save {{save_amount}}").split(/\{\{\s*save_amount\}\}/); if (textArray.length > 0 && textArray.length < 2) { textArray.push(''); } return textArray.map((text, index) => { if (index == 0) { return `${text}`; } return ` ${text} `; }).join(''); }()} * ${discount_application.title}: - Check out ${data.invalid_msg} Check out Taxes and shipping calculated at checkout * Subtotal: * ${discount_application.title}: - Total: Check out Taxes and shipping calculated at checkout const summaryStickyRender = document.querySelector('#cart-drawer-summary-sticky-render'); if (summaryStickyRender) { document.body.style.setProperty('--cart-drawer-summary-sticky-height', summaryStickyRender.clientHeight + 'px'); } 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":"9276e7c9-7549-4f90-84d2-0983ee7e7e88","product_id":"9f91dd0b-5503-4afe-b723-37fdab022abc","title":"M1","weight_unit":"kg","inventory_quantity":983,"sku":"","barcode":"","position":1,"option1":"M1","option2":"","option3":"","note":"","image":{"src":"\/\/img.fantaskycdn.com\/5d609925d6e7bdfd294b41fe66a84b84.JPG","path":"5d609925d6e7bdfd294b41fe66a84b84.JPG","width":1024,"height":1024,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":45.95,"min_quantity":1}],"weight":"0.58","compare_at_price":"0","price":"45.95","retail_price":"0","available":true,"url":"\/products\/cat-cardboard-house-with-scratch-pad?variant=9276e7c9-7549-4f90-84d2-0983ee7e7e88","available_quantity":999999999,"options":[{"name":"Pattern Name","value":"M1"}],"off_ratio":0,"flashsale_info":[],"sales":13}; 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 We care about your privacy This website uses cookies to ensure you get the best experience on our website. Privacy Policy DECLINE ACCEPT Originaltext Diese Übersetzung bewerten Mit deinem Feedback können wir Google Übersetzer weiter verbessern