🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
1/9
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨
1/9

🎁BeautyRest+Anti-Snoring Sleeping V-Face Beauty Device⏰Promotion 49% OFF Limited Time✨

$29.99
$50.00
Save $20.01
PACKAGE
Please select a package
Quantity
/** @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);


💝99.2% of Reviewers Recommends This Product.
🌎 Over $59.99 for free delivery worldwide
🛒 Tracking number for every order
💯 Payments Via PayPal® and Credit Card
⭐ Returns>>100% Money Back Guarantee

Our goods are authentic, with genuine patents, counterfeit must be investigated! Customers please identify our products

It will sell out fast, Enjoy a discount now!!⚡Please make sure to buy enough quantity before we increase the price!!!🔥


Before we begin, take a look at our satisfied customers!

"I've been using the BeautyRest+ Sleeping V-Face Beauty Device daily for the past three months, and it has been quite efficient at relieving tension from my skin and muscles. I've seen a vast improvement in the lines and firmness of my skin, as well as the disappearance of my saggy skin and double chin! Overall, I think this is the perfect non-invasive product for me and has exceeded my expectations."

-Scarlette, 53, Brooklyn, NJ

"I've always felt like I appear older than I am, and it bothers me. However, the BeautyRest+ Sleeping V-Face Beauty Device has helped to revitalize my appearance. It's so simple to use! - All I have to do is charge it throughout the day, wear it at night, and wake up with revitalized and relaxed skin; my loose skin and subdermal fat have also vanished! Overall, I'm quite pleased with this product."

-Amanda, 44, Vancouver, ST

What is Electrical Muscle Stimulation (EMS)?

Electric muscle stimulation (EMS), or neuromuscular electrical stimulation (NMES), is a technique that utilizes electrical current at high Hz frequencies to induce muscle contraction. This process increases blood flow and nutrient distribution and may also stimulate the recruitment of additional muscle fibers beyond those activated during a typical warm-up or exercise session. EMS has been employed as electrotherapy to enhance muscle strength, reduce edema, relieve pain, and promote wound healing by stimulating muscle contractions via electrical impulses.

Electrical Muscle Stimulation is an effective treatment for toning and tightening the muscles to improve the appearance of the skin. It uses micro-current to stimulate the muscles to make them stronger, firmer, and more defined. This results in the muscles filling out loose skin, giving the skin a smoother and more youthful appearance.

This technology that uses electrical impulses to stimulate muscle contractions. When these impulses are delivered to the muscles, they cause them to contract and relax, similar to the way they would during exercise. This process can help to build and tone muscle, and it can also be used to reduce fat in certain areas of the body. By stimulating the muscles with EMS, the body is forced to use more energy, which can result in an increase in metabolism and a reduction in body fat. Additionally, EMS can target specific muscle groups and activate deeper muscle fibers that are not always targeted with traditional exercise.

Also, EMS is a safe and non-invasive method for muscle stimulation. It sends electrical impulses through the skin and into the muscles, mimicking the natural contractions that occur during exercise. These electrical impulses are low-frequency and low-intensity, meaning that they are not strong enough to cause harm to the body. When used properly, EMS can provide a comfortable and effective workout experience without causing pain or damage to the muscles or other parts of the body.

-

How does NuBeauty+™ Sleeping V-Face Beauty Device work?

Microcurrent facials, also known as 'natural facelifts,' are a popular choice for improving the appearance of the skin. Uakku™ Sleeping V-Face Beauty Device allows you to achieve these benefits in the comfort of your own home. This innovative tool uses highly low-voltage electrical currents that mirror your body's electrical currents at a cellular level. These electrical currents repair damaged skin and stimulate collagen and elastic production, effectively reducing the appearance of aging; if you are looking for a non-invasive way to improve the health and appearance of your skin, the NuBeauty+™ Sleeping V-Face Beauty Device.

Uakku™ Sleeping V-Face Beauty Device is incredibly easy to use and only requires a few minutes of your time. Apply a gel primer (included) and adjust the intensity before gliding the device along your brow, cheekbones, forehead, and jawline to lift, tone, and contour your skin. Clinical tests have shown that this device improves facial contour, minimizes wrinkles, and leaves the skin even and radiant. The overwhelmingly positive reviews are a testament to its effectiveness - you must try it yourself to see the results."

Dr. Emma Wren with Uakku™ Sleeping V-Face Beauty Device

Uakku™ Sleeping V-Face Beauty Device, a groundbreaking beauty tool designed to help achieve a more youthful and lifted appearance. This innovative device utilizes the power of microcurrent and EMS (electrical muscle stimulation) technology to promote facial muscle stimulation, increase circulation, and improve skin elasticity. This device has been scientifically designed to avoid nerve damage and does not cause any pain or discomfort during use. The electrical impulses stimulate the muscles to contract and relax, leading to improved facial contour and tone.

If you're looking for a safe and effective way to enhance your natural beauty and achieve a more youthful, lifted appearance, the NuBeauty+™ Sleeping V-Face Beauty Device is an excellent choice. Its innovative technology and user-friendly design make it a must-have tool for anyone looking to improve their skincare routine and achieve beautiful, glowing skin.

Let's take a look at Isabella's experience with the BeautyRest+ Sleeping V-Face Beauty Device:

Isabella has been dealing with wrinkles for years and has noticed that the loss of collagen in her skin has caused her face and neck to sag, making her appear older than she is. She has limited time and resources to invest in costly dermatological treatments, so her doctor suggested that she try the BeautyRest+ Sleeping V-Face Beauty Device as a more affordable and convenient solution to improve the health and appearance of her skin. Isabella hopes this device will help restore her skin to its youthful glory.

After using the BeautyRest+ Sleeping V-Face Beauty Device consistently for about 4 weeks, Isabella noticed that her skin became firmer. The wrinkles and sagging on her skin became less prominent and tight. She also no longer experiences itchiness on her skin thanks to the increased penetration of the vibration into her neck muscles and neck skin.

Isabella has been using the BeautyRest+ Sleeping V-Face Beauty Device for 8 weeks and has noticed a significant improvement in the appearance of her neck. The lines on her skin have become less prominent, giving her a firmer and more youthful-looking complexion. She is delighted with the results and feels more confident in her appearance due to the effectiveness of this device. Overall, the BeautyRest+ Sleeping V-Face Beauty Device has exceeded her expectations and provided her with the desired improvements in the health and appearance of her skin.

How to use:

  • Wash your neck (exfoliate if needed)
  • Apply toner and moisturizer.
  • Hook the ends on your ear like a mask.
  • Make sure the two nubs are facing inwards and firmly pressing against under your chin.
  • Switch the device on.
  • Leave it on while you sleep or do your errands.
  • Take off when you wake up the day afterward.
  • To wash, take a warm and damp towel and clean the nubs.
  • Wipe the nubs a second time with a dry towel or tissue.
  • Charge the BeautyRest+ Sleeping V-Face Beauty Device if needed.

Specifications

  • Material: Elastic Band, ABS Plastic, Stainless Steel
  • Method: Vibration
  • Net Weight: 13.7g
  • Size: 50x20x12mm (1.9x0.78x0.47 inches)
  • Charging Cord Included: YES 

Does BeautyRest+ include a warranty?

All BeautyRest+ purchases include a 2-year limited warranty that covers replacement & repairs due to malfunctions & manufacturing defects.

Package Includes

  • BeautyRest+ Sleeping V-Face Beauty Device

⚡Click On "ADD TO CART" To Get Yours Now!

✨OUR GUARANTEE✨


✅We truly believe we make some of the most innovative products in the world, and we want to make sure we back that up with a risk-free ironclad 45-day guarantee.

✅If you don't have a positive experience for ANY reason, we will do WHATEVER it takes to make sure you are 100% satisfied with your purchase.

✅Buying items online can be a daunting task, so we want you to realize that there is an absolute ZERO risk in buying something and trying it out. If you don't like it, no hard feelings we'll make it right.

✅We have 24/7/365 Ticket and Email Support.

WHY US?👇

  • We work directly with manufacturers all over the world to ensure the best quality of our products. We have a Quality Control department which helps us to keep our promise!
  • Price is always competitive.
  • Awesome Customer Service
  • Amazing products along with High Quality
  • Read reviews from our lovely customers

🔥 The price is limited! 🔥 Grab yours as the limited promotion available!

✈ Worldwide Shipping ✈  

Please note that shipping is insured. However, you may receive your items earlier. Tracking Numbers will ALWAYS be sent so you can track it every step of the way! Cool things are worth waiting for! 😉

🔒 100% Risk-Free Purchase 🔥 

  • We truly offer stunning, trendy high-quality products in the world.
  • We will do WHATEVER it takes with outstanding customer service support to assist everyone.
  • If you are not satisfied with receiving the goods, you can apply for a refund.
  • You can pay with PayPal, which will protect your money.

✅Payments Via PayPal®, Credit and Debit cards.

If you want to checkout with a Credit and Debit Card, just enter your * Card No, * Expiration Date, and * CVV.
f34603c6042c7802af86fc595826003b48c8f721fa4f1ffa117ffea06bd06849.png
153a0932404b13aa72f600fa0f9237172d5147ac6302b2183812028339748e9c.png
class SpzSmartBlockComponent extends SPZ.BaseElement { constructor(element) { super(element); this.templates_ = null; this.container_ = null; this.i18n_ = {}; this.config_ = {}; this.show_type_ = 3; this.product_resource_id_ = ''; this.collection_resource_id_ = ''; this.cart_items_ = []; this.customer_id_ = ''; this.order_id_ = ''; } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { const template_type = window.SHOPLAZZA.meta.page.template_type; if (template_type === 1) { this.show_type_ = 3; this.product_resource_id_ = window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 2) { this.show_type_ = 4; this.collection_resource_id_ = window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 15){ this.show_type_ = 5; } else if (template_type === 13){ this.show_type_ = 6; } else if (template_type === 20){ this.show_type_ = 7; this.customer_id_ = window.SHOPLAZZA.customer.customer_id; } else if (template_type === 35){ this.show_type_ = 8; this.order_id_ = window.location.pathname.split('/').pop(); } this.templates_ = SPZServices.templatesForDoc(this.element); this.setAction_(); } mountCallback() { console.log('smart mounted'); const that = this; const themeName = window.SHOPLAZZA.theme.merchant_theme_name; const isGeek = /Geek/.test(themeName); this.fetchRules().then((res) => { if (res && res.rules && res.rules.length) { const blockEl = document.getElementById('smart_recommend_block'); SPZ.whenApiDefined(blockEl).then((api) => { api.render({data: res}, true).then(() => { if (isGeek && that.show_type_ === 6) { blockEl.querySelector('.plugin_container_wrpper').style.padding = '30px 0'; } const recommendStyle = document.createElement('style'); recommendStyle.innerHTML = ` .plugin__recommend_container,.app-recommend-card { display: none !important; } `; document.head.appendChild(recommendStyle); const fetchList = []; res.rules.forEach((rule) => { fetchList.push(this.fetchRuleProductList(rule.id)); }); const fetchAll = Promise.all(fetchList); fetchAll.then((p_res) => { res.rules.forEach((rule, index) => { rule.products = p_res[index] && p_res[index].products; const ruleEl = document.getElementById('smart_recommend_rule_' + rule.id); SPZ.whenApiDefined(ruleEl).then((api) => { api.render({data: rule}, true).then(() => { that.impressListen(`#smart_recommend_rule_ul_${rule.id}`, function(){ that.trackRuleImpress(rule); }); const btnElList = document.querySelectorAll(`#smart_recommend_rule_ul_${rule.id} button`); btnElList.forEach((btnEl) => { if (btnEl && rule.config && rule.config.quick_shop_button_bg_color && rule.config.quick_shop_button_text_color) { btnEl.style.backgroundColor = rule.config.quick_shop_button_bg_color; btnEl.style.color = rule.config.quick_shop_button_text_color; } }) }); }); }); }); }) }) } else { if (window.top !== window.self) { const template_type = window.SHOPLAZZA.meta.page.template_type; const holderEl = document.getElementById('smart_recommend_preview_no_data_placeholder'); SPZ.whenApiDefined(holderEl).then((api) => { api.render({data: { isCart: template_type === 13, isCollection: template_type === 2, isProduct: template_type === 1, isIndex: template_type === 15 }}, true); }); } } }); } setAction_() { this.registerAction('quickShop', (data) => { const that = this; const product_id = data.args.product_id; const productIndex = data.args.productIndex; const rule_id = data.args.rule_id; const ssp = data.args.ssp; const scm = data.args.scm; const cfb = data.args.cfb; const ifb = data.args.ifb; const modalRender = document.getElementById('smart_recommend_product_modal_render'); if (product_id) { this.fetchProductData(product_id).then((res) => { const product = res.products && res.products.length && res.products[0] || {}; product.cfb = cfb; product.ifb = ifb; SPZ.whenApiDefined(modalRender).then((api) => { api.render({product: product, productIndex: productIndex, rule_id: rule_id, ssp: ssp, scm: scm, show_type: that.show_type_}, true).then(() => { const modalEl = document.getElementById('smart_recommend_product_modal'); SPZ.whenApiDefined(modalEl).then((modal) => { that.impressListen('#smart_recommend_product_modal', function(){ that.trackQuickShop({ rule_id: rule_id, product_id: product_id }); }); modal.open(); }); const formEl = document.getElementById('smart_recommend_product_form'); SPZ.whenApiDefined(formEl).then((form) => { form.setProduct(product); }); const variantEl = document.getElementById('smart_recommend_product_variants'); SPZ.whenApiDefined(variantEl).then((variant) => { variant.handleRender(product); }); }); }) }); } }); this.registerAction('handleScroll', (data) => { this.directTo(data.args.rule_id, data.args.direction); }); this.registerAction('handleProductChange', (data) => { const variant = data.args.data.variant; const product = data.args.data.product; const imageRenderEl = document.getElementById('smart_recommend_product_image'); SPZ.whenApiDefined(imageRenderEl).then((api) => { api.render({ variant: variant, product: product }, true); }); }); this.registerAction('handleAtcSuccess', (detail) => { const data = detail.args; data.data.product = data.data.product || {}; data.data.variant = data.data.variant || {}; const product_id = data.data.product.id; const product_title = data.data.product.title; const variant_id = data.data.variant.id; const price = data.data.variant.price; const rule_id = data.rule_id; const aid = `smart_recommend.${this.show_type_}.${rule_id}`; const ifb = data.data.product.ifb; const cfb = data.data.product.cfb; const ssp = data.ssp; const scm = data.scm; const spm = `smart_recommend_${this.show_type_}.${data.spmIndex}`; 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, } }; this.tranckAddToCart(params); }); this.registerAction('addATCHook', (data) => { const params = data.args; const spm = `smart_recommend_${this.show_type_}.${params.spmIndex}`; this.myInterceptor_ = window.djInterceptors && window.djInterceptors.track.use({ event: 'dj.addToCart', params: { aid: `smart_recommend.${this.show_type_}.` + params.rule_id, ssp: params.ssp, scm: params.scm, cfb: params.cfb, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, }, once: true }); }); } tranckAddToCart(detail) { if (window.$) { window.$(document.body).trigger('dj.addToCart', detail); } } fetchRules() { const payload = { show_type: this.show_type_, }; let that = this; if (this.show_type_ === 6) { let line_items = []; return this.fetchCart().then((res) => { if (res && res.cart && res.cart.line_items) { line_items = res.cart.line_items.map((item) => { return { product_id: item.product_id, variant_id: item.variant_id, quantity: item.quantity, price: item.price } }); } payload.line_items = line_items; that.cart_items_ = line_items; return that.fetchRulesRequest(payload); }); } else { if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return this.fetchRulesRequest(payload); } } fetchRulesRequest(payload) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_query", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }); } fetchCart() { return fetch(`/api/cart/cart-select?r=${Math.random().toString(36).slice(-4)}`) .then((res) => { if (res.ok) { return res.json(); } }); } fetchRuleProductList(rule_id) { const payload = { page: 1, limit: 100, fields: ["title", "url", "image", "min_price_variant.price", "min_price_variant.compare_at_price"], rule_id: rule_id, }; if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 6) { payload.line_items = this.cart_items_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); }); } fetchProductData(product_id) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ product_ids: [product_id], fields: [ "images", "options", "min_price_variant", "variants"] }) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); const loadingEl = document.getElementById('smart_recommend_loading'); if (loadingEl) { loadingEl.style.display = 'none'; } }); } getStyle(ele, style) { if (!ele) return; if (window.getComputedStyle) { return window.getComputedStyle(ele)[style]; } return ele.currentStyle[style]; } directTo(id, direction) { const scrollElement = document.getElementById(`smart_recommend_rule_ul_${id}`); const blockWidth = parseInt(this.getStyle(scrollElement, 'width')); const scrollLength = (blockWidth * 0.19 - 12) * 5; const scrollPoint = scrollElement.scrollWidth - scrollElement.clientWidth; if (!scrollElement) return; if (direction === 'left') { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft - scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: Math.max(scrollElement.scrollLeft - scrollLength, 0), behavior: 'smooth' }); } else { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint + 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: scrollElement.scrollLeft >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); } } trackRuleImpress(rule) { if (window.sa && window.sa.track) { window.sa.track("plugin_common", { plugin_name: "upsell", event_type: "impressions", rule_id: rule.id, ssp: rule.ssp, scm: rule.scm, show_type: this.show_type_, support_app_block: window.SHOPLAZZA.theme.support_app_block }); window.sa.track("module_impressions", { aid: `smart_recommend.${this.show_type_}.${rule.id}`, support_app_block: window.SHOPLAZZA.theme.support_app_block }); } } trackQuickShop(data) { window.sa && sa.track && sa.track("plugin_common", { plugin_name: "upsell", event_type: "quick_shop", rule_id: data.rule_id, product_id: data.product_id, show_type: this.show_type_, }); } 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-block', SpzSmartBlockComponent);