Free shipping on orders over $34
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
1 / 8
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
0% OFF

Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear

$30.48
0 sold
Qty 2138 in stock
Occasion : Party
Compatibility : All Compatible
Model Number : P1327
Material : Metal
Chain Type : Link Chain
Style : Classic
Necklace Type : Pendant Necklaces
Gender : Women
Metals Type : Stainless Steel


Fine or Fashion : Fashion
Item Type : Necklaces
Style : Simple
Material : Stainless Steel
Packaging : Independent packaging

Fashion Necklace Sexy Collar Chain Different Color Natural Stone Hand Beaded Necklace Girl's Ins Style Headwear
 






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