Cash on Delivery to Japan,Taiwan HongKong and Singapore ,Free shipping over USD$59
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
1 / 13
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
Five Claw Buckle Tool Set
You May Also Like Don't Like These?
mysite

Five Claw Buckle Tool Set

$9.99 $19.99
1 sold
Quantity
Qty 993 in stock

FEATURES

  • Well Made: Made of strong and durable steel, which lasts for a long time, making your projects work efficiently.

  • Easy to use: You can quickly attach eyelets, snaps, rivets and more with our attachment kit.

  • Wide Application: It can quickly and effectively repair or replace broken fasteners for coats, boat covers, tents, canvas, tarps, awnings, sailcloth, patio furniture and swimming pool covers.

SPECIFICATIONS

  • Material: ABS, PE, Plastic

  • Weight: 120g

  • Color: Silver

  • Size: 9.5*3.5mm/0.37*0.14in

    PACKAGE

    • 50/100/150mset * Five claw buckle installation tool set
    • 1 * tools

    NOTE

    • Please allow slight measurement deviations due to manual measurement.

    • Due to the different monitor and light effect, the actual color of the item might be slightly different from the color showed in the pictures.
    You May Also Like Don't Like These?
    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);