Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
Hair Care Suit Deep Moisturizing And Smooth
5 / 5

Hair Care Suit Deep Moisturizing And Smooth

Color Classification
Please select a color classification
Price
$11.56
$0.00

Quantity

Product information:
Color classification: shampoo 100ml conditioner 100g
Product Name: Hair Care Suit
Key words: Hair Care
Ingredients: Shampoo: water, glycerin, vitamin E, tea tree oil, castor oil; Conditioner: water, lanolin, collagen, aloe extract, green tea extract
Product Size: 13.1*4.1 * 4.1cm


Packing list:
Shampoo 100ML+conditioner 100G

Product Image:
/** @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-1726694338796').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);