🎁Free Shipping on Orders Over $59🎉
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
1 / 10
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
Swear Word Daily Pen Set-7pcs Funny black ink Pens
39% OFF
Fnkus

Swear Word Daily Pen Set-7pcs Funny black ink Pens

$19.99 $32.99
0 sold
Qty 1000 in stock

A set of 7 funny pens, push-button design, black refill, funny characters...

FEATURES

  • 😍Steal the show everywhere you go with these sassy slightly inappropriate pens. You don't need to say how you are feeling, your pens will do all the work to tell everybody in which mood you are in.
  • 😍There is nothing like a fun light insult on a pen. Get compliments when you interact with people or when you lend a pen to someone. If you don't get a compliment you will get a few laughs.
  • 🎁Funny pens for the home, office, or on-the-go. A must among office supplies if you want to keep your day light, naughty, and hilarious without being too rude.

SPECIFICATIONS

  • Shell material: plastic
  • Size: 14x1cm single / 5.51*0.39in single
  • Nib: 1.0mm
  • How to use: push
  • Refill color: black ink
  • Image: color as shown
  • pakage:7cs* Funny week Pens 
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);