Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com
Wireless Bra Posture Corrector  Stunahome.com

Wireless Bra Posture Corrector

Fits True to Size
Free Return & Exchange

color - ROSE

Please select a color

cup size

Please select a cup size

band size

Please select a band size

Price

£0.00 £28.99
7 sold
The current item does not participate in the discount gift campaign. Switch the participating items to check the design.
(This prompt will not be displayed on the client-side)

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);