New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties
New women's graphene seamless high-waisted antibacterial shaping panties

New women's graphene seamless high-waisted antibacterial shaping panties

Price

$49.99 $29.99
Save $20.00
Free shipping on orders over 69.9

color

Please select a color

size

Please select a size

Quantity

Free returns
Sustainably made
Secure payments

Try It Today, Absolutely Risk-Free, With Your Money Back Guarantee

Due to high demand, this promotion Last 30 minutes with the lowest price of the year. Seize the discount now! Tomorrow we will stop the promotion, return to the original price of $49.99

🎉More than 98.97% of customers recommend this product.

(It's about out of stock, today is the last sale. We give one free Graphene Honeycomb Vaginal Tightening & Body Shaping Briefs to the top 100 customers who place orders today.)

🏆After Sales Service>>If you are not satisfied with the goods received, please contact us within 30 days after receipt, and we will give you the best help! Please don't worry!
🎉More than 98.97% of customers recommend this product.

Take it from consumers who achieved total relief with Graphene Honeycomb Vaginal Tightening & Body Shaping Briefs!

Congrats on their successes! 

I heard about this product from my friend and she told me it helped her heal her irregular periods and vaginal inflammation issues and get rid of cellulite and edema within a few weeks. She assured me that it really works. I immediately ordered 4 PAIRS products on the website. Easy to change and use. After using it for a few weeks, my lower body dryness and odor have been completely resolved, my period is normal at the same time every month, and my pussy looks tight and tender!! and even more amazingly, it has helped me lose about 30 pounds, My stretch marks are gone too! my hips are taller and straight, and now I am is a big fan of it. This really is a game-changer!

-Hallie Holland—Oakland, California
⭐⭐⭐⭐⭐

“I had problems with my endocrine system, which caused me to develop obesity and irregular periods. I also often feel tired and have unexplained pains somewhere. This annoyed me a lot. I have tried many products but none work of them. A friend recommended it to me. I wear Graphene Honeycomb Vaginal Tightening & Body Shaping Briefs. Stick with it for 5 weeks. The toxins in the body have been completely eliminated. I feel so much lighter now! My endocrine and menstrual periods are back to normal. I wear it every day now, I feel like the toxins are being flushed out of my body. I was amazed at the change in myself“

- Ashley Poole, Bangor, Maine

⭐⭐⭐⭐⭐

Obesity could be the result of diseases of the female reproductive system!

At present, getting fat is the most taboo thing for most women, and gynecological diseases will also lead to getting fat. Therefore, experts remind us to keep in good shape and keep in good health first.  Most types of obesity are associated with genetic and dietary habits. Obesity caused by no obvious pathological factors is called simple obesity, but gynecological diseases have a direct relationship with obesity.

Diseases of the female reproductive system are gynecological diseasesGynecological diseases include vulvar diseases, vaginal diseases, uterine diseases, fallopian tube diseases, ovarian diseases, etc. Gynecological diseases are common diseases in women, which can be treated by imperial foreign methods. Many people lack due awareness of gynecological diseases and lack health care for their bodies. Coupled with various bad living habits of some women, their physical health deteriorates, resulting in some women suffering from diseases that cannot be cured for a long time. These will bring great difficulties and inconvenience to their normal life and work.

Research and experiments have proved that: this product has very dramatic preventive and therapeutic effects on gynecological diseases.

Toxins(body waste) are destroying your body!

The special body structure of women makes it easier for toxins to accumulate in the uterus and vagina, and some external factors (frequent sex, pregnancy, bacterial infection caused by inadequate cleaning) will make it worse, and it’s mainly characterized by vaginal odor, itching, dryness, Dull color, abnormal leucorrhea, and frequent inflammation. When too much body waste accumulates in the vagina and can not be discharged normally, the human body would suffer from swelling and obesity.

Toxins cause abnormal fat storage and low metabolism by affecting hormonal balance, while our bodies retain water and fat to defend against visible threats. Thus, the result could be an abnormally swollen body and some insidious diseases.

What is Graphene?

Graphene has a lower resistance than copper or silver and is the thinnest and toughest nanomaterial known to date. Compared to all other materials, graphene is the best conductor of heat and electricity and can heat up quickly in 1-2 seconds. It has good medical and physical therapy effects.

The infrared wave spectrum of graphene is similar to the infrared spectrum of the human body. It can resonate with the body and generate heat from the inside out, causing the temperature of deep subcutaneous tissues to rise, promoting blood circulation, strengthening the blood and cellular tissue metabolism, increasing cellular oxygen supply, and improving body microcirculation.

What is Tourmaline?

Tourmaline is a gemstone whose main components are magnesium, aluminum, iron, boron, and other trace elements that are beneficial to the human body and can regulate the body's metabolism. Tourmaline surface always flows with 0.06mA micro-current that basically matches with human bioelectricity, which can balance the body's bioelectricity and restore the pathological potential to normal.

Tourmaline can therefore help reduce weight, improve blood circulation, and reduce the accumulation of toxic metals in the body. It is also believed to help support the liver, balance mood, and prevent water retention. It will be of great help in restoring women's health.

How do Graphene Honeycomb Vaginal Tightening & Body Shaping Briefs Work?

Graphene honeycomb vaginal tightening and shaping panties release natural energy through the thermal circulation to improve blood circulation throughout the body and eliminate toxins from the uterus. Working simultaneously with Tourmaline (a precious natural mineral) in the middle of the panties, it dredges the whole body's lymphatic system, improves various gynecological diseases, reduces body fat, tightens the vagina, and lifts the buttocks

Detoxifies and promotes a healthy reproductive system and uterus

The heating function of the graphene material is very useful in helping to expel toxins and cold energy from the blocked uterus. Based on thermal circulation, these graphene cellular vaginal firming and shaping panties use multi-directional thermal circulation to help users promote and unblock blood circulation to help effectively stimulate blood and lymphatic circulation in the body, relieve gynecological disorders, reduce fluid accumulation in body tissues and tighten the vagina.

The micro-current of tourmaline also unblocks the body's detoxification channels, eliminating accumulated toxins and effectively eliminating redness, swelling, and decay in the private area in a short period of time, eliminating various inflammations and odors.

According to clinical research, using this product for 20 days can solve women's problems of vaginitis, pelvic inflammatory disease and fluid accumulation, cervical erosion, trichomoniasis, mycotic vaginitis, uterine cold, Stretch marks, and irregular menstruation.

Promote blood circulation in the buttocks for fast buttock growth

Graphene honeycomb vaginal tightening and shaping panties generate heat from the inside out to help activate hip acupuncture points, promote blood circulation, and re-stimulate the cellular vitality of the buttocks to create a perfect buttock shape.

Accelerates body metabolism for healthy weight loss

Graphene and Tourmaline have been shown to activate nerves and help lymphatic fluid drainage. It can also accelerate weight loss by promoting lipolysis and improving calorie burning.

Increases collagen production and clears stretch marks

Graphene self-heating accelerates the fading of purple-red lines, increases collagen production, and clears stretch marks

This is why Graphene Honeycomb Vaginal Tightening & Body Shaping Briefs is special:

✅Effectively help with gynecological problems.
✅Tighten the vagina and restore pink skin.
Stretch mark removal
✅Speed up metabolism and improve digestion.
✅Prevents fat accumulation and healthy weight loss.
✅Lifts the buttocks.
✅Multiple benefits - eliminates fat and toxins, regularizes menstruation, lifts hips, improves blood circulation, eliminates itching and vaginal tightening

Chelsea’s 8-week journey with Graphene Honeycomb Vaginal Tightening & Body Shaping Briefs:

I am a family entrepreneur. Long-time sitting and irregular bedtime have affected my body. My period only comes once every two or three months. My lower body is deformed and loose, and it smells like fish. My tummy bulged like a water ball, my husband didn't even want to sleep with me, he always had excuses. I think I'm about to lose him.

I think it is time to change. I found this Graphene Honeycomb Vaginal Tightening & Body Shaping Briefs online and after the first use, I can noticeably feel a lot less odor and I do feel a lot more comfortable.

After 4 weeks of use, I feel a big difference. My period came on time and the smell was completely gone! My vagina looks like a new one. At the same time, my tummy has cleared up a lot, and my arms are no longer swollen, you can see the difference in the photos, I will stick with it, and I am happy to see more difference in the next few weeks!

I can not believe it! Such a big change can be achieved without resorting to surgery, my vagina is now firm and pink, and my edema and cellulite are completely gone! My husband was so amazed at my change that he now haunts me every night. This product is really amazing, you can feel the toxins actually being flushed out of your body after every use, such an effective and easy-to-use product, and I recommend it to everyone like me!

- Chelsea Palmer, Houston, Texas

⭐⭐⭐⭐⭐

“I wear it every day and everyone has been asking me if I had a BBL done. I bought 4 pairs of Graphene Honeycomb Vaginal Tightening & Body Shaping Briefs, Now worn for about 3 weeks, I now have to buy new clothes. I definitely recommend this product especially for the non-believers because I was one of them too. Everywhere I go people admire my butt. It works 100%”
—Klein D--Nevada,Las Vegas
⭐⭐⭐⭐⭐

Packing list:

  • 1 BOX Graphene Honeycomb Vaginal Tightening & Body Shaping Briefs
  • Color:pink\green\black\Skin color
  • Material: Nylon, Spandex, Graphene fiber, Tourmaline 
  • Our product is a permanent solution for women's health problems. According to most use cases, it is recommended that you buy 5 or more. It will completely solve your problem.

👑ABOUT US 

SHIPPING

  • We ship worldwide
  • If you have any questions, please contact our customer service staff member for assistance!

OUR GUARANTEE

  • 📦 Insured Worldwide Shipping: Each order includes real-time tracking details and insurance coverage in the unlikely event that a package gets lost or stolen in transit.
  • 💰 Money-Back Guarantee: If your items arrive damaged or become defective within 15 days of normal usage, we will gladly issue a replacement or refund.
  • ✉️ 24/7 Customer Support: We have a team of live reps ready to help and answer any questions you have within a 24-hour time frame, 7 days a week.

/** @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-1718252090972').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);
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);