From 853e1df6fda1514d780769718f6996eb196cd05c Mon Sep 17 00:00:00 2001 From: Doug A Date: Tue, 12 Apr 2022 15:34:56 -0300 Subject: [PATCH 01/10] add eventListenerOptions: so we can capture too --- lib/index.ts | 63 +++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 55 insertions(+), 8 deletions(-) diff --git a/lib/index.ts b/lib/index.ts index f2368c7..5238d1e 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -86,6 +86,12 @@ type EndCallback = ( cancelled: boolean, ) => void; +type eventListenerOptions = { + capture: boolean; + passive: boolean; + once: boolean; +}; + interface PointerTrackerOptions { /** * Called when a pointer is pressed/touched within the element. @@ -131,6 +137,11 @@ interface PointerTrackerOptions { * This feature only applies to pointer events. */ rawUpdates?: boolean; + /** + * Set the options of the event listener: capture, passive, and once. + * See: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#parameters + */ + eventListenerOptions?: eventListenerOptions; } /** @@ -151,6 +162,7 @@ export default class PointerTracker { private _moveCallback: MoveCallback; private _endCallback: EndCallback; private _rawUpdates: boolean; + private _eventListenerOptions: eventListenerOptions; /** * Firefox has a bug where touch-based pointer events have a `buttons` of 0, when this shouldn't @@ -175,22 +187,48 @@ export default class PointerTracker { end = noop, rawUpdates = false, avoidPointerEvents = false, + eventListenerOptions = { capture: false, passive: false, once: false }, }: PointerTrackerOptions = {}, ) { this._startCallback = start; this._moveCallback = move; this._endCallback = end; this._rawUpdates = rawUpdates && 'onpointerrawupdate' in window; + this._eventListenerOptions = eventListenerOptions; // Add listeners if (self.PointerEvent && !avoidPointerEvents) { - this._element.addEventListener('pointerdown', this._pointerStart); + this._element.addEventListener( + 'pointerdown', + this._pointerStart, + this._eventListenerOptions, + ); } else { - this._element.addEventListener('mousedown', this._pointerStart); - this._element.addEventListener('touchstart', this._touchStart); - this._element.addEventListener('touchmove', this._move); - this._element.addEventListener('touchend', this._touchEnd); - this._element.addEventListener('touchcancel', this._touchEnd); + this._element.addEventListener( + 'mousedown', + this._pointerStart, + this._eventListenerOptions, + ); + this._element.addEventListener( + 'touchstart', + this._touchStart, + this._eventListenerOptions, + ); + this._element.addEventListener( + 'touchmove', + this._move, + this._eventListenerOptions, + ); + this._element.addEventListener( + 'touchend', + this._touchEnd, + this._eventListenerOptions, + ); + this._element.addEventListener( + 'touchcancel', + this._touchEnd, + this._eventListenerOptions, + ); } } @@ -259,9 +297,18 @@ export default class PointerTracker { this._element.addEventListener( this._rawUpdates ? 'pointerrawupdate' : 'pointermove', this._move, + this._eventListenerOptions, + ); + this._element.addEventListener( + 'pointerup', + this._pointerEnd, + this._eventListenerOptions, + ); + this._element.addEventListener( + 'pointercancel', + this._pointerEnd, + this._eventListenerOptions, ); - this._element.addEventListener('pointerup', this._pointerEnd); - this._element.addEventListener('pointercancel', this._pointerEnd); } else { // MouseEvent window.addEventListener('mousemove', this._move); From 9f878e7ad29b59bacd0b9e125eb12a0268794ba2 Mon Sep 17 00:00:00 2001 From: Doug A Date: Tue, 12 Apr 2022 15:35:19 -0300 Subject: [PATCH 02/10] dist build with capture options --- dist/PointerTracker-min.js | 2 +- dist/PointerTracker.js | 22 ++++++++++++---------- dist/PointerTracker.mjs | 22 ++++++++++++---------- dist/index.d.ts | 13 ++++++++++++- 4 files changed, 37 insertions(+), 22 deletions(-) diff --git a/dist/PointerTracker-min.js b/dist/PointerTracker-min.js index 8bf9539..40425b1 100644 --- a/dist/PointerTracker-min.js +++ b/dist/PointerTracker-min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).PointerTracker=t()}(this,(function(){"use strict";class e{constructor(e){this.id=-1,this.nativePointer=e,this.pageX=e.pageX,this.pageY=e.pageY,this.clientX=e.clientX,this.clientY=e.clientY,self.Touch&&e instanceof Touch?this.id=e.identifier:t(e)&&(this.id=e.pointerId)}getCoalesced(){if("getCoalescedEvents"in this.nativePointer){const t=this.nativePointer.getCoalescedEvents().map(t=>new e(t));if(t.length>0)return t}return[this]}}const t=e=>"pointerId"in e,n=e=>"changedTouches"in e,i=()=>{};return class{constructor(s,{start:r=(()=>!0),move:o=i,end:h=i,rawUpdates:d=!1,avoidPointerEvents:a=!1}={}){this._element=s,this.startPointers=[],this.currentPointers=[],this._excludeFromButtonsCheck=new Set,this._pointerStart=n=>{if(t(n)&&0===n.buttons)this._excludeFromButtonsCheck.add(n.pointerId);else if(!(1&n.buttons))return;const i=new e(n);if(!this.currentPointers.some(e=>e.id===i.id)&&this._triggerPointerStart(i,n))if(t(n)){(n.target&&"setPointerCapture"in n.target?n.target:this._element).setPointerCapture(n.pointerId),this._element.addEventListener(this._rawUpdates?"pointerrawupdate":"pointermove",this._move),this._element.addEventListener("pointerup",this._pointerEnd),this._element.addEventListener("pointercancel",this._pointerEnd)}else window.addEventListener("mousemove",this._move),window.addEventListener("mouseup",this._pointerEnd)},this._touchStart=t=>{for(const n of Array.from(t.changedTouches))this._triggerPointerStart(new e(n),t)},this._move=i=>{if(!(n(i)||t(i)&&this._excludeFromButtonsCheck.has(i.pointerId)||0!==i.buttons))return void this._pointerEnd(i);const s=this.currentPointers.slice(),r=n(i)?Array.from(i.changedTouches).map(t=>new e(t)):[new e(i)],o=[];for(const e of r){const t=this.currentPointers.findIndex(t=>t.id===e.id);-1!==t&&(o.push(e),this.currentPointers[t]=e)}0!==o.length&&this._moveCallback(s,o,i)},this._triggerPointerEnd=(e,t)=>{if(!n(t)&&1&t.buttons)return!1;const i=this.currentPointers.findIndex(t=>t.id===e.id);if(-1===i)return!1;this.currentPointers.splice(i,1),this.startPointers.splice(i,1),this._excludeFromButtonsCheck.delete(e.id);const s=!("mouseup"===t.type||"touchend"===t.type||"pointerup"===t.type);return this._endCallback(e,t,s),!0},this._pointerEnd=n=>{if(this._triggerPointerEnd(new e(n),n))if(t(n)){if(this.currentPointers.length)return;this._element.removeEventListener(this._rawUpdates?"pointerrawupdate":"pointermove",this._move),this._element.removeEventListener("pointerup",this._pointerEnd),this._element.removeEventListener("pointercancel",this._pointerEnd)}else window.removeEventListener("mousemove",this._move),window.removeEventListener("mouseup",this._pointerEnd)},this._touchEnd=t=>{for(const n of Array.from(t.changedTouches))this._triggerPointerEnd(new e(n),t)},this._startCallback=r,this._moveCallback=o,this._endCallback=h,this._rawUpdates=d&&"onpointerrawupdate"in window,self.PointerEvent&&!a?this._element.addEventListener("pointerdown",this._pointerStart):(this._element.addEventListener("mousedown",this._pointerStart),this._element.addEventListener("touchstart",this._touchStart),this._element.addEventListener("touchmove",this._move),this._element.addEventListener("touchend",this._touchEnd),this._element.addEventListener("touchcancel",this._touchEnd))}stop(){this._element.removeEventListener("pointerdown",this._pointerStart),this._element.removeEventListener("mousedown",this._pointerStart),this._element.removeEventListener("touchstart",this._touchStart),this._element.removeEventListener("touchmove",this._move),this._element.removeEventListener("touchend",this._touchEnd),this._element.removeEventListener("touchcancel",this._touchEnd),this._element.removeEventListener(this._rawUpdates?"pointerrawupdate":"pointermove",this._move),this._element.removeEventListener("pointerup",this._pointerEnd),this._element.removeEventListener("pointercancel",this._pointerEnd),window.removeEventListener("mousemove",this._move),window.removeEventListener("mouseup",this._pointerEnd)}_triggerPointerStart(e,t){return!!this._startCallback(e,t)&&(this.currentPointers.push(e),this.startPointers.push(e),!0)}}})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).PointerTracker=t()}(this,(function(){"use strict";class e{constructor(e){this.id=-1,this.nativePointer=e,this.pageX=e.pageX,this.pageY=e.pageY,this.clientX=e.clientX,this.clientY=e.clientY,self.Touch&&e instanceof Touch?this.id=e.identifier:t(e)&&(this.id=e.pointerId)}getCoalesced(){if("getCoalescedEvents"in this.nativePointer){const t=this.nativePointer.getCoalescedEvents().map(t=>new e(t));if(t.length>0)return t}return[this]}}const t=e=>"pointerId"in e,n=e=>"changedTouches"in e,i=()=>{};return class{constructor(s,{start:r=(()=>!0),move:o=i,end:h=i,rawUpdates:d=!1,avoidPointerEvents:a=!1,eventListenerOptions:c={capture:!1,passive:!1,once:!1}}={}){this._element=s,this.startPointers=[],this.currentPointers=[],this._excludeFromButtonsCheck=new Set,this._pointerStart=n=>{if(t(n)&&0===n.buttons)this._excludeFromButtonsCheck.add(n.pointerId);else if(!(1&n.buttons))return;const i=new e(n);if(!this.currentPointers.some(e=>e.id===i.id)&&this._triggerPointerStart(i,n))if(t(n)){(n.target&&"setPointerCapture"in n.target?n.target:this._element).setPointerCapture(n.pointerId),this._element.addEventListener(this._rawUpdates?"pointerrawupdate":"pointermove",this._move,this._eventListenerOptions),this._element.addEventListener("pointerup",this._pointerEnd,this._eventListenerOptions),this._element.addEventListener("pointercancel",this._pointerEnd,this._eventListenerOptions)}else window.addEventListener("mousemove",this._move),window.addEventListener("mouseup",this._pointerEnd)},this._touchStart=t=>{for(const n of Array.from(t.changedTouches))this._triggerPointerStart(new e(n),t)},this._move=i=>{if(!(n(i)||t(i)&&this._excludeFromButtonsCheck.has(i.pointerId)||0!==i.buttons))return void this._pointerEnd(i);const s=this.currentPointers.slice(),r=n(i)?Array.from(i.changedTouches).map(t=>new e(t)):[new e(i)],o=[];for(const e of r){const t=this.currentPointers.findIndex(t=>t.id===e.id);-1!==t&&(o.push(e),this.currentPointers[t]=e)}0!==o.length&&this._moveCallback(s,o,i)},this._triggerPointerEnd=(e,t)=>{if(!n(t)&&1&t.buttons)return!1;const i=this.currentPointers.findIndex(t=>t.id===e.id);if(-1===i)return!1;this.currentPointers.splice(i,1),this.startPointers.splice(i,1),this._excludeFromButtonsCheck.delete(e.id);const s=!("mouseup"===t.type||"touchend"===t.type||"pointerup"===t.type);return this._endCallback(e,t,s),!0},this._pointerEnd=n=>{if(this._triggerPointerEnd(new e(n),n))if(t(n)){if(this.currentPointers.length)return;this._element.removeEventListener(this._rawUpdates?"pointerrawupdate":"pointermove",this._move),this._element.removeEventListener("pointerup",this._pointerEnd),this._element.removeEventListener("pointercancel",this._pointerEnd)}else window.removeEventListener("mousemove",this._move),window.removeEventListener("mouseup",this._pointerEnd)},this._touchEnd=t=>{for(const n of Array.from(t.changedTouches))this._triggerPointerEnd(new e(n),t)},this._startCallback=r,this._moveCallback=o,this._endCallback=h,this._rawUpdates=d&&"onpointerrawupdate"in window,this._eventListenerOptions=c,self.PointerEvent&&!a?this._element.addEventListener("pointerdown",this._pointerStart,this._eventListenerOptions):(this._element.addEventListener("mousedown",this._pointerStart,this._eventListenerOptions),this._element.addEventListener("touchstart",this._touchStart,this._eventListenerOptions),this._element.addEventListener("touchmove",this._move,this._eventListenerOptions),this._element.addEventListener("touchend",this._touchEnd,this._eventListenerOptions),this._element.addEventListener("touchcancel",this._touchEnd,this._eventListenerOptions))}stop(){this._element.removeEventListener("pointerdown",this._pointerStart),this._element.removeEventListener("mousedown",this._pointerStart),this._element.removeEventListener("touchstart",this._touchStart),this._element.removeEventListener("touchmove",this._move),this._element.removeEventListener("touchend",this._touchEnd),this._element.removeEventListener("touchcancel",this._touchEnd),this._element.removeEventListener(this._rawUpdates?"pointerrawupdate":"pointermove",this._move),this._element.removeEventListener("pointerup",this._pointerEnd),this._element.removeEventListener("pointercancel",this._pointerEnd),window.removeEventListener("mousemove",this._move),window.removeEventListener("mouseup",this._pointerEnd)}_triggerPointerStart(e,t){return!!this._startCallback(e,t)&&(this.currentPointers.push(e),this.startPointers.push(e),!0)}}})); diff --git a/dist/PointerTracker.js b/dist/PointerTracker.js index 3828deb..e32743e 100644 --- a/dist/PointerTracker.js +++ b/dist/PointerTracker.js @@ -33,6 +33,7 @@ // https://github.com/w3c/pointerevents/issues/409 if (events.length > 0) return events; + // Otherwise, Firefox falls through… } return [this]; } @@ -50,7 +51,7 @@ * @param element Element to monitor. * @param options */ - constructor(_element, { start = () => true, move = noop, end = noop, rawUpdates = false, avoidPointerEvents = false, } = {}) { + constructor(_element, { start = () => true, move = noop, end = noop, rawUpdates = false, avoidPointerEvents = false, eventListenerOptions = { capture: false, passive: false, once: false }, } = {}) { this._element = _element; /** * State of the tracked pointers when they were pressed/touched. @@ -96,9 +97,9 @@ ? event.target : this._element; capturingElement.setPointerCapture(event.pointerId); - this._element.addEventListener(this._rawUpdates ? 'pointerrawupdate' : 'pointermove', this._move); - this._element.addEventListener('pointerup', this._pointerEnd); - this._element.addEventListener('pointercancel', this._pointerEnd); + this._element.addEventListener(this._rawUpdates ? 'pointerrawupdate' : 'pointermove', this._move, this._eventListenerOptions); + this._element.addEventListener('pointerup', this._pointerEnd, this._eventListenerOptions); + this._element.addEventListener('pointercancel', this._pointerEnd, this._eventListenerOptions); } else { // MouseEvent @@ -208,16 +209,17 @@ this._moveCallback = move; this._endCallback = end; this._rawUpdates = rawUpdates && 'onpointerrawupdate' in window; + this._eventListenerOptions = eventListenerOptions; // Add listeners if (self.PointerEvent && !avoidPointerEvents) { - this._element.addEventListener('pointerdown', this._pointerStart); + this._element.addEventListener('pointerdown', this._pointerStart, this._eventListenerOptions); } else { - this._element.addEventListener('mousedown', this._pointerStart); - this._element.addEventListener('touchstart', this._touchStart); - this._element.addEventListener('touchmove', this._move); - this._element.addEventListener('touchend', this._touchEnd); - this._element.addEventListener('touchcancel', this._touchEnd); + this._element.addEventListener('mousedown', this._pointerStart, this._eventListenerOptions); + this._element.addEventListener('touchstart', this._touchStart, this._eventListenerOptions); + this._element.addEventListener('touchmove', this._move, this._eventListenerOptions); + this._element.addEventListener('touchend', this._touchEnd, this._eventListenerOptions); + this._element.addEventListener('touchcancel', this._touchEnd, this._eventListenerOptions); } } /** diff --git a/dist/PointerTracker.mjs b/dist/PointerTracker.mjs index b740876..61b9805 100644 --- a/dist/PointerTracker.mjs +++ b/dist/PointerTracker.mjs @@ -27,6 +27,7 @@ class Pointer { // https://github.com/w3c/pointerevents/issues/409 if (events.length > 0) return events; + // Otherwise, Firefox falls through… } return [this]; } @@ -44,7 +45,7 @@ class PointerTracker { * @param element Element to monitor. * @param options */ - constructor(_element, { start = () => true, move = noop, end = noop, rawUpdates = false, avoidPointerEvents = false, } = {}) { + constructor(_element, { start = () => true, move = noop, end = noop, rawUpdates = false, avoidPointerEvents = false, eventListenerOptions = { capture: false, passive: false, once: false }, } = {}) { this._element = _element; /** * State of the tracked pointers when they were pressed/touched. @@ -90,9 +91,9 @@ class PointerTracker { ? event.target : this._element; capturingElement.setPointerCapture(event.pointerId); - this._element.addEventListener(this._rawUpdates ? 'pointerrawupdate' : 'pointermove', this._move); - this._element.addEventListener('pointerup', this._pointerEnd); - this._element.addEventListener('pointercancel', this._pointerEnd); + this._element.addEventListener(this._rawUpdates ? 'pointerrawupdate' : 'pointermove', this._move, this._eventListenerOptions); + this._element.addEventListener('pointerup', this._pointerEnd, this._eventListenerOptions); + this._element.addEventListener('pointercancel', this._pointerEnd, this._eventListenerOptions); } else { // MouseEvent @@ -202,16 +203,17 @@ class PointerTracker { this._moveCallback = move; this._endCallback = end; this._rawUpdates = rawUpdates && 'onpointerrawupdate' in window; + this._eventListenerOptions = eventListenerOptions; // Add listeners if (self.PointerEvent && !avoidPointerEvents) { - this._element.addEventListener('pointerdown', this._pointerStart); + this._element.addEventListener('pointerdown', this._pointerStart, this._eventListenerOptions); } else { - this._element.addEventListener('mousedown', this._pointerStart); - this._element.addEventListener('touchstart', this._touchStart); - this._element.addEventListener('touchmove', this._move); - this._element.addEventListener('touchend', this._touchEnd); - this._element.addEventListener('touchcancel', this._touchEnd); + this._element.addEventListener('mousedown', this._pointerStart, this._eventListenerOptions); + this._element.addEventListener('touchstart', this._touchStart, this._eventListenerOptions); + this._element.addEventListener('touchmove', this._move, this._eventListenerOptions); + this._element.addEventListener('touchend', this._touchEnd, this._eventListenerOptions); + this._element.addEventListener('touchcancel', this._touchEnd, this._eventListenerOptions); } } /** diff --git a/dist/index.d.ts b/dist/index.d.ts index 4663a0f..137d54d 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -23,6 +23,11 @@ export declare type InputEvent = TouchEvent | PointerEvent | MouseEvent; declare type StartCallback = (pointer: Pointer, event: InputEvent) => boolean; declare type MoveCallback = (previousPointers: Pointer[], changedPointers: Pointer[], event: InputEvent) => void; declare type EndCallback = (pointer: Pointer, event: InputEvent, cancelled: boolean) => void; +declare type eventListenerOptions = { + capture: boolean; + passive: boolean; + once: boolean; +}; interface PointerTrackerOptions { /** * Called when a pointer is pressed/touched within the element. @@ -68,6 +73,11 @@ interface PointerTrackerOptions { * This feature only applies to pointer events. */ rawUpdates?: boolean; + /** + * Set the options of the event listener: capture, passive, and once. + * See: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#parameters + */ + eventListenerOptions?: eventListenerOptions; } /** * Track pointers across a particular element @@ -87,6 +97,7 @@ export default class PointerTracker { private _moveCallback; private _endCallback; private _rawUpdates; + private _eventListenerOptions; /** * Firefox has a bug where touch-based pointer events have a `buttons` of 0, when this shouldn't * happen. https://bugzilla.mozilla.org/show_bug.cgi?id=1729440 @@ -101,7 +112,7 @@ export default class PointerTracker { * @param element Element to monitor. * @param options */ - constructor(_element: HTMLElement, { start, move, end, rawUpdates, avoidPointerEvents, }?: PointerTrackerOptions); + constructor(_element: HTMLElement, { start, move, end, rawUpdates, avoidPointerEvents, eventListenerOptions, }?: PointerTrackerOptions); /** * Remove all listeners. */ From 35dcb24ef4e4169e56f3205545a1c33c6e204c6b Mon Sep 17 00:00:00 2001 From: Doug A Date: Tue, 12 Apr 2022 15:35:27 -0300 Subject: [PATCH 03/10] 2.5.4 --- package-lock.json | 5 +++-- package.json | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 844f833..5725f55 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,12 @@ { "name": "pointer-tracker", - "version": "2.5.3", + "version": "2.5.4", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "2.5.3", + "name": "pointer-tracker", + "version": "2.5.4", "license": "Apache-2.0", "devDependencies": { "husky": "^7.0.2", diff --git a/package.json b/package.json index e65b3e3..491d716 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pointer-tracker", - "version": "2.5.3", + "version": "2.5.4", "description": "Track mouse/touch/pointer events through one interface", "main": "dist/PointerTracker.js", "module": "dist/PointerTracker.mjs", From cd43b4078f490f1bb628dda4a6de94e40ad1e5f3 Mon Sep 17 00:00:00 2001 From: Doug A Date: Tue, 12 Apr 2022 16:10:20 -0300 Subject: [PATCH 04/10] add eventListenerOptions to README --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index d09d0e2..2a0b271 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,11 @@ const pointerTracker = new PointerTracker(element, { // // This feature only applies to pointer events. The default is false. rawUpdates: false, + // Set the event listener opitons + // For example, set { capture: true } if you want to capture the event before it reaches listeners + // below yours in the DOM tree. + // For details, see: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#parameters + eventListenerOptions: { capture: false, passive: false, once: false }, }); // State of the tracked pointers when they were pressed/touched. From e55233dcdb979b05244a1546eb5d0a8ae452a150 Mon Sep 17 00:00:00 2001 From: Doug A Date: Tue, 12 Apr 2022 16:11:41 -0300 Subject: [PATCH 05/10] why do I only see typos after pushing --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2a0b271..4c62ac4 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ const pointerTracker = new PointerTracker(element, { // // This feature only applies to pointer events. The default is false. rawUpdates: false, - // Set the event listener opitons + // Set the event listener options // For example, set { capture: true } if you want to capture the event before it reaches listeners // below yours in the DOM tree. // For details, see: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#parameters From 9d43727eeb2567e1020f886314d82485369214bb Mon Sep 17 00:00:00 2001 From: Doug Anderson Date: Wed, 13 Apr 2022 13:40:05 -0300 Subject: [PATCH 06/10] mk eventListenerOptions optional in TS --- lib/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/index.ts b/lib/index.ts index 5238d1e..a5c360a 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -87,9 +87,9 @@ type EndCallback = ( ) => void; type eventListenerOptions = { - capture: boolean; - passive: boolean; - once: boolean; + capture?: boolean; + passive?: boolean; + once?: boolean; }; interface PointerTrackerOptions { From ffbadafe38527710e69b61759d6f198ee648a9a5 Mon Sep 17 00:00:00 2001 From: Doug Anderson Date: Wed, 13 Apr 2022 13:41:13 -0300 Subject: [PATCH 07/10] 2.5.5 --- dist/PointerTracker.js | 4 ++-- dist/index.d.ts | 6 +++--- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dist/PointerTracker.js b/dist/PointerTracker.js index e32743e..823fb80 100644 --- a/dist/PointerTracker.js +++ b/dist/PointerTracker.js @@ -2,7 +2,7 @@ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.PointerTracker = factory()); -}(this, (function () { 'use strict'; +})(this, (function () { 'use strict'; class Pointer { constructor(nativePointer) { @@ -256,4 +256,4 @@ return PointerTracker; -}))); +})); diff --git a/dist/index.d.ts b/dist/index.d.ts index 137d54d..f101522 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -24,9 +24,9 @@ declare type StartCallback = (pointer: Pointer, event: InputEvent) => boolean; declare type MoveCallback = (previousPointers: Pointer[], changedPointers: Pointer[], event: InputEvent) => void; declare type EndCallback = (pointer: Pointer, event: InputEvent, cancelled: boolean) => void; declare type eventListenerOptions = { - capture: boolean; - passive: boolean; - once: boolean; + capture?: boolean; + passive?: boolean; + once?: boolean; }; interface PointerTrackerOptions { /** diff --git a/package-lock.json b/package-lock.json index 5725f55..f0fb0e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pointer-tracker", - "version": "2.5.4", + "version": "2.5.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "pointer-tracker", - "version": "2.5.4", + "version": "2.5.5", "license": "Apache-2.0", "devDependencies": { "husky": "^7.0.2", diff --git a/package.json b/package.json index 491d716..61e2153 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pointer-tracker", - "version": "2.5.4", + "version": "2.5.5", "description": "Track mouse/touch/pointer events through one interface", "main": "dist/PointerTracker.js", "module": "dist/PointerTracker.mjs", From 3c25bf39fa714e86186cfe81ae27d9dc7692c8fc Mon Sep 17 00:00:00 2001 From: Doug A Date: Wed, 13 Apr 2022 14:46:25 -0300 Subject: [PATCH 08/10] emphasize optional in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c62ac4..9c3236e 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ const pointerTracker = new PointerTracker(element, { // For example, set { capture: true } if you want to capture the event before it reaches listeners // below yours in the DOM tree. // For details, see: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#parameters - eventListenerOptions: { capture: false, passive: false, once: false }, + eventListenerOptions: { capture?: false, passive?: false, once?: false }, }); // State of the tracked pointers when they were pressed/touched. From f41347b16b9d14eba6fdfdbf6506f8876c93bef6 Mon Sep 17 00:00:00 2001 From: Doug A Date: Wed, 8 Jun 2022 19:43:33 -0300 Subject: [PATCH 09/10] 2.5.6 namespace @douganderson444/ --- package-lock.json | 20 ++++++++++---------- package.json | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index f0fb0e2..eea3b3c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { - "name": "pointer-tracker", - "version": "2.5.5", + "name": "@douganderson444/pointer-tracker", + "version": "2.5.6", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "pointer-tracker", - "version": "2.5.5", + "name": "@douganderson444/pointer-tracker", + "version": "2.5.6", "license": "Apache-2.0", "devDependencies": { "husky": "^7.0.2", @@ -107,9 +107,9 @@ } }, "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { "node": ">=8" @@ -1594,9 +1594,9 @@ } }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { diff --git a/package.json b/package.json index 61e2153..91d00db 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "pointer-tracker", - "version": "2.5.5", + "name": "@douganderson444/pointer-tracker", + "version": "2.5.6", "description": "Track mouse/touch/pointer events through one interface", "main": "dist/PointerTracker.js", "module": "dist/PointerTracker.mjs", From 5890b3612d325463e7f6ace683d428252e466330 Mon Sep 17 00:00:00 2001 From: Doug A Date: Fri, 6 Jan 2023 10:31:10 -0400 Subject: [PATCH 10/10] readme reflects this repo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c3236e..fd38109 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Track mouse/touch/pointer events for a given element. ### PointerTracker ```js -import PointerTracker from 'pointer-tracker'; +import PointerTracker from '@douganderson444/pointer-tracker'; const pointerTracker = new PointerTracker(element, { start(pointer, event) {