Free shipping on orders over $34
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
1 / 8
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift
0% OFF

Teardrop Stainless Steel Earrings For Women Gold Plated Water Drop Earring Dupes Vintage Jewelry Party Gift

$12.73
0 sold
Qty 4995 in stock
Model Number : 22668
Gender : Women
Shape\pattern : Water Drop
Style : TRENDY
Material : Metal
Metals Type : Stainless Steel
Brand Name : doyours


Item Type : Earrings
Earring Type : Drop Earrings
Fine or Fashion : Fashion
2024 New Trend : Female Chunky Hoop Earrings
Support : Wholesale
Occasion : Party,Wedding




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