Free shipping on orders over $34
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
1 / 8
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl
0% OFF

Luxury Stainless Steel Infinity Necklace and Earrings Sets Wedding Necklaces Earring Jewelry Sets Free Chains Baby Girl

$9.47
0 sold
Qty 3684 in stock
Model Number : TZ244
Shape\pattern : Geometric
Included Additional Item Description : 3
Occasion : Anniversary
Material : Metal
Gender : Women,Girls
Style : Classic
Jewelry Sets Type : Necklace/Earrings
Metals Type : Stainless Steel,Titanium

Fine or Fashion : Fashion
Item Type : Jewelry Sets





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