jb-core 0.0.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -2
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.br +0 -0
- package/dist/index.cjs.js.gz +0 -0
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.br +0 -0
- package/dist/index.umd.js.gz +0 -0
- package/dist/index.umd.js.map +1 -1
- package/dist/web-component/jb-core/lib/device-detection.d.ts +1 -0
- package/dist/web-component/jb-core/lib/events.d.ts +10 -2
- package/dist/web-component/jb-core/lib/index.d.ts +1 -0
- package/lib/device-detection.ts +3 -0
- package/lib/events.ts +65 -35
- package/lib/index.ts +2 -1
- package/package.json +2 -1
- package/react/dist/index.cjs.js +2 -2
- package/react/dist/index.cjs.js.map +1 -1
- package/react/dist/index.js +2 -2
- package/react/dist/index.js.map +1 -1
- package/react/dist/index.umd.js +2 -2
- package/react/dist/index.umd.js.map +1 -1
- package/react/lib/use-event.ts +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
# jb-core
|
|
2
2
|
|
|
3
|
-
core modules of jb-design system
|
|
3
|
+
core modules of jb-design system mostly contain functions that help you manage your web-components & tools to connect them to ReactJS components.
|
|
4
|
+
|
|
5
|
+
## js modules
|
|
6
|
+
|
|
7
|
+
### listenAndSilentEvent
|
|
8
|
+
|
|
9
|
+
this function listen to event in the capture phase and stop it's propagation and call your handler so you will be the only one who capture this event used for event forwarding (transformation) in web-components.
|
|
10
|
+
|
|
11
|
+
```js
|
|
12
|
+
listenAndSilentEvent(inputDom, 'keyup', yourOnKeyUpHandler);
|
|
13
|
+
listenAndSilentEvent(inputDom, 'keyup', yourOnKeyUpHandler,{passive:true});
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### create events
|
|
17
|
+
|
|
18
|
+
these functions will create events base on existing event objects used mostly for event forwarding.
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
#onInputInput(e:InputEvent){
|
|
22
|
+
const event = createInputEvent('input', e, { cancelable: false });
|
|
23
|
+
this.dispatchEvent(event);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
we also have `createKeyboardEvent`, `createInputEvent`, `createFocusEvent`.
|
|
4
28
|
|
|
5
29
|
## React modules:
|
|
6
30
|
|
|
@@ -14,4 +38,4 @@ import {useEvent} from 'jb-core/react';
|
|
|
14
38
|
useEvent(ref,'event',props.onEvent);
|
|
15
39
|
//for example
|
|
16
40
|
useEvent(ref,'change',props.onChange);
|
|
17
|
-
```
|
|
41
|
+
```
|
package/dist/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.createInputEvent=function(e,t,a){const o={bubbles:t.bubbles,cancelable:t.cancelable,composed:t.composed,detail:t.detail,isComposing:t.isComposing,view:t.view,which:t.which,data:t.data,dataTransfer:t.dataTransfer,inputType:t.inputType,targetRanges:"function"==typeof t.getTargetRanges()?t.getTargetRanges():[],...a};return new InputEvent(e,o)},exports.createKeyboardEvent=function(e,t,a){const o={altKey:t.altKey,bubbles:t.bubbles,cancelable:t.cancelable,code:t.code,composed:t.composed,ctrlKey:t.ctrlKey,detail:t.detail,isComposing:t.isComposing,key:t.key,location:t.location,metaKey:t.metaKey,repeat:t.repeat,shiftKey:t.shiftKey,view:t.view,charCode:t.charCode,keyCode:t.keyCode,which:t.which,...a};return new KeyboardEvent(e,o)};
|
|
1
|
+
"use strict";exports.createFocusEvent=function(e,t,a){const o={bubbles:t.bubbles,cancelable:t.cancelable,composed:t.composed,detail:t.detail,view:t.view,which:t.which,relatedTarget:t.relatedTarget,...a};return new FocusEvent(e,o)},exports.createInputEvent=function(e,t,a){const o={bubbles:t.bubbles,cancelable:t.cancelable,composed:t.composed,detail:t.detail,isComposing:t.isComposing,view:t.view,which:t.which,data:t.data,dataTransfer:t.dataTransfer,inputType:t.inputType,targetRanges:"function"==typeof t.getTargetRanges()?t.getTargetRanges():[],...a};return new InputEvent(e,o)},exports.createKeyboardEvent=function(e,t,a){const o={altKey:t.altKey,bubbles:t.bubbles,cancelable:t.cancelable,code:t.code,composed:t.composed,ctrlKey:t.ctrlKey,detail:t.detail,isComposing:t.isComposing,key:t.key,location:t.location,metaKey:t.metaKey,repeat:t.repeat,shiftKey:t.shiftKey,view:t.view,charCode:t.charCode,keyCode:t.keyCode,which:t.which,...a};return new KeyboardEvent(e,o)},exports.isMobile=()=>/Mobi/i.test(window.navigator.userAgent),exports.listenAndSilentEvent=function(e,t,a,o={}){document.addEventListener(t,(t=>{t.composedPath().includes(e)&&(t.stopPropagation(),t.stopImmediatePropagation(),a(t))}),{capture:!0,...o})};
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.br
CHANGED
|
Binary file
|
package/dist/index.cjs.js.gz
CHANGED
|
Binary file
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../lib/events.ts"],"sourcesContent":["/**\r\n * add type to event target for easier access to target\r\n */\r\nexport type EventTypeWithTarget<TEvent,TTarget> = TEvent & {\r\n target: TTarget;\r\n};\r\n/**\r\n * create a keyboardEvent based on e value and replace them with initObj\r\n */\r\nexport function createKeyboardEvent(eventName:string,e:KeyboardEvent,initObj:KeyboardEventInit){\r\n const initialObject: KeyboardEventInit = {\r\n altKey:e.altKey,\r\n bubbles:e.bubbles,\r\n cancelable:e.cancelable,\r\n code:e.code,\r\n composed:e.composed,\r\n ctrlKey:e.ctrlKey,\r\n detail:e.detail,\r\n isComposing:e.isComposing,\r\n key:e.key,\r\n location:e.location,\r\n metaKey:e.metaKey,\r\n repeat:e.repeat,\r\n shiftKey:e.shiftKey,\r\n view:e.view,\r\n charCode:e.charCode,\r\n keyCode:e.keyCode,\r\n which:e.which,\r\n ...initObj
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../lib/events.ts","../lib/device-detection.ts"],"sourcesContent":["/**\r\n * add type to event target for easier access to target\r\n */\r\nexport type EventTypeWithTarget<TEvent, TTarget> = TEvent & {\r\n target: TTarget;\r\n};\r\n/**\r\n * this function will stop event from propagate even in capturing phase and will call handler only if event target is the element\r\n */\r\nexport function listenAndSilentEvent<TEvent extends Event, TTarget>(element: TTarget, eventName: string, handler: (e:TEvent) => void, options: AddEventListenerOptions = {}) {\r\n document.addEventListener(eventName, (e: TEvent) => {\r\n if (e.composedPath().includes(element as unknown as EventTarget)) {\r\n e.stopPropagation();\r\n e.stopImmediatePropagation();\r\n handler(e);\r\n }\r\n },{capture:true,...options});\r\n}\r\n/**\r\n * create a keyboardEvent based on `e` value and replace them with initObj\r\n */\r\nexport function createKeyboardEvent(eventName: string, e: KeyboardEvent, initObj: KeyboardEventInit) {\r\n const initialObject: KeyboardEventInit = {\r\n altKey: e.altKey,\r\n bubbles: e.bubbles,\r\n cancelable: e.cancelable,\r\n code: e.code,\r\n composed: e.composed,\r\n ctrlKey: e.ctrlKey,\r\n detail: e.detail,\r\n isComposing: e.isComposing,\r\n key: e.key,\r\n location: e.location,\r\n metaKey: e.metaKey,\r\n repeat: e.repeat,\r\n shiftKey: e.shiftKey,\r\n view: e.view,\r\n charCode: e.charCode,\r\n keyCode: e.keyCode,\r\n which: e.which,\r\n ...initObj\r\n };\r\n const event = new KeyboardEvent(eventName, initialObject);\r\n return event;\r\n}\r\n/**\r\n * create a InputEvent based on `e` value and replace them with initObj\r\n */\r\nexport function createInputEvent(eventName: string, e: InputEvent, initObj: InputEventInit) {\r\n const initialObject: InputEventInit = {\r\n bubbles: e.bubbles,\r\n cancelable: e.cancelable,\r\n composed: e.composed,\r\n detail: e.detail,\r\n isComposing: e.isComposing,\r\n view: e.view,\r\n which: e.which,\r\n data: e.data,\r\n dataTransfer: e.dataTransfer,\r\n inputType: e.inputType,\r\n targetRanges: typeof e.getTargetRanges() == \"function\" ? e.getTargetRanges() : [],\r\n ...initObj\r\n };\r\n const event = new InputEvent(eventName, initialObject);\r\n return event;\r\n}\r\n\r\n/**\r\n * create a InputEvent based on `e` value and replace them with initObj\r\n */\r\nexport function createFocusEvent(eventName: string, e: FocusEvent, initObj: FocusEventInit) {\r\n const initialObject: FocusEventInit = {\r\n bubbles: e.bubbles,\r\n cancelable: e.cancelable,\r\n composed: e.composed,\r\n detail: e.detail,\r\n view: e.view,\r\n which: e.which,\r\n relatedTarget: e.relatedTarget,\r\n ...initObj\r\n };\r\n const event = new FocusEvent(eventName, initialObject);\r\n return event;\r\n}","export const isMobile = ()=>{\r\n return /Mobi/i.test(window.navigator.userAgent);\r\n};"],"names":["eventName","e","initObj","initialObject","bubbles","cancelable","composed","detail","view","which","relatedTarget","FocusEvent","isComposing","data","dataTransfer","inputType","targetRanges","getTargetRanges","InputEvent","altKey","code","ctrlKey","key","location","metaKey","repeat","shiftKey","charCode","keyCode","KeyboardEvent","test","window","navigator","userAgent","element","handler","options","document","addEventListener","composedPath","includes","stopPropagation","stopImmediatePropagation","capture"],"mappings":"+CAsEiCA,EAAmBC,EAAeC,GACjE,MAAMC,EAAgC,CACpCC,QAASH,EAAEG,QACXC,WAAYJ,EAAEI,WACdC,SAAUL,EAAEK,SACZC,OAAQN,EAAEM,OACVC,KAAMP,EAAEO,KACRC,MAAOR,EAAEQ,MACTC,cAAeT,EAAES,iBACdR,GAGL,OADc,IAAIS,WAAWX,EAAWG,EAE1C,oCAnCiCH,EAAmBC,EAAeC,GACjE,MAAMC,EAAgC,CACpCC,QAASH,EAAEG,QACXC,WAAYJ,EAAEI,WACdC,SAAUL,EAAEK,SACZC,OAAQN,EAAEM,OACVK,YAAaX,EAAEW,YACfJ,KAAMP,EAAEO,KACRC,MAAOR,EAAEQ,MACTI,KAAMZ,EAAEY,KACRC,aAAcb,EAAEa,aAChBC,UAAWd,EAAEc,UACbC,aAA4C,mBAAvBf,EAAEgB,kBAAkChB,EAAEgB,kBAAoB,MAC5Ef,GAGL,OADc,IAAIgB,WAAWlB,EAAWG,EAE1C,uCA5CoCH,EAAmBC,EAAkBC,GACvE,MAAMC,EAAmC,CACvCgB,OAAQlB,EAAEkB,OACVf,QAASH,EAAEG,QACXC,WAAYJ,EAAEI,WACde,KAAMnB,EAAEmB,KACRd,SAAUL,EAAEK,SACZe,QAASpB,EAAEoB,QACXd,OAAQN,EAAEM,OACVK,YAAaX,EAAEW,YACfU,IAAKrB,EAAEqB,IACPC,SAAUtB,EAAEsB,SACZC,QAASvB,EAAEuB,QACXC,OAAQxB,EAAEwB,OACVC,SAAUzB,EAAEyB,SACZlB,KAAMP,EAAEO,KACRmB,SAAU1B,EAAE0B,SACZC,QAAS3B,EAAE2B,QACXnB,MAAOR,EAAEQ,SACNP,GAGL,OADc,IAAI2B,cAAc7B,EAAWG,EAE7C,mBC5CwB,IACf,QAAQ2B,KAAKC,OAAOC,UAAUC,wCDQjC,SAA8DC,EAAkBlC,EAAmBmC,EAA6BC,EAAmC,CAAA,GACvKC,SAASC,iBAAiBtC,GAAYC,IAChCA,EAAEsC,eAAeC,SAASN,KAC5BjC,EAAEwC,kBACFxC,EAAEyC,2BACFP,EAAQlC,GACT,GACD,CAAC0C,SAAQ,KAAQP,GACrB"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function e(e,t,a){const o={altKey:t.altKey,bubbles:t.bubbles,cancelable:t.cancelable,code:t.code,composed:t.composed,ctrlKey:t.ctrlKey,detail:t.detail,isComposing:t.isComposing,key:t.key,location:t.location,metaKey:t.metaKey,repeat:t.repeat,shiftKey:t.shiftKey,view:t.view,charCode:t.charCode,keyCode:t.keyCode,which:t.which,...a};return new KeyboardEvent(e,o)}function
|
|
1
|
+
function e(e,t,a,o={}){document.addEventListener(t,(t=>{t.composedPath().includes(e)&&(t.stopPropagation(),t.stopImmediatePropagation(),a(t))}),{capture:!0,...o})}function t(e,t,a){const o={altKey:t.altKey,bubbles:t.bubbles,cancelable:t.cancelable,code:t.code,composed:t.composed,ctrlKey:t.ctrlKey,detail:t.detail,isComposing:t.isComposing,key:t.key,location:t.location,metaKey:t.metaKey,repeat:t.repeat,shiftKey:t.shiftKey,view:t.view,charCode:t.charCode,keyCode:t.keyCode,which:t.which,...a};return new KeyboardEvent(e,o)}function a(e,t,a){const o={bubbles:t.bubbles,cancelable:t.cancelable,composed:t.composed,detail:t.detail,isComposing:t.isComposing,view:t.view,which:t.which,data:t.data,dataTransfer:t.dataTransfer,inputType:t.inputType,targetRanges:"function"==typeof t.getTargetRanges()?t.getTargetRanges():[],...a};return new InputEvent(e,o)}function o(e,t,a){const o={bubbles:t.bubbles,cancelable:t.cancelable,composed:t.composed,detail:t.detail,view:t.view,which:t.which,relatedTarget:t.relatedTarget,...a};return new FocusEvent(e,o)}const n=()=>/Mobi/i.test(window.navigator.userAgent);export{o as createFocusEvent,a as createInputEvent,t as createKeyboardEvent,n as isMobile,e as listenAndSilentEvent};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.br
CHANGED
|
Binary file
|
package/dist/index.js.gz
CHANGED
|
Binary file
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../lib/events.ts"],"sourcesContent":["/**\r\n * add type to event target for easier access to target\r\n */\r\nexport type EventTypeWithTarget<TEvent,TTarget> = TEvent & {\r\n target: TTarget;\r\n};\r\n/**\r\n * create a keyboardEvent based on e value and replace them with initObj\r\n */\r\nexport function createKeyboardEvent(eventName:string,e:KeyboardEvent,initObj:KeyboardEventInit){\r\n const initialObject: KeyboardEventInit = {\r\n altKey:e.altKey,\r\n bubbles:e.bubbles,\r\n cancelable:e.cancelable,\r\n code:e.code,\r\n composed:e.composed,\r\n ctrlKey:e.ctrlKey,\r\n detail:e.detail,\r\n isComposing:e.isComposing,\r\n key:e.key,\r\n location:e.location,\r\n metaKey:e.metaKey,\r\n repeat:e.repeat,\r\n shiftKey:e.shiftKey,\r\n view:e.view,\r\n charCode:e.charCode,\r\n keyCode:e.keyCode,\r\n which:e.which,\r\n ...initObj
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../lib/events.ts","../lib/device-detection.ts"],"sourcesContent":["/**\r\n * add type to event target for easier access to target\r\n */\r\nexport type EventTypeWithTarget<TEvent, TTarget> = TEvent & {\r\n target: TTarget;\r\n};\r\n/**\r\n * this function will stop event from propagate even in capturing phase and will call handler only if event target is the element\r\n */\r\nexport function listenAndSilentEvent<TEvent extends Event, TTarget>(element: TTarget, eventName: string, handler: (e:TEvent) => void, options: AddEventListenerOptions = {}) {\r\n document.addEventListener(eventName, (e: TEvent) => {\r\n if (e.composedPath().includes(element as unknown as EventTarget)) {\r\n e.stopPropagation();\r\n e.stopImmediatePropagation();\r\n handler(e);\r\n }\r\n },{capture:true,...options});\r\n}\r\n/**\r\n * create a keyboardEvent based on `e` value and replace them with initObj\r\n */\r\nexport function createKeyboardEvent(eventName: string, e: KeyboardEvent, initObj: KeyboardEventInit) {\r\n const initialObject: KeyboardEventInit = {\r\n altKey: e.altKey,\r\n bubbles: e.bubbles,\r\n cancelable: e.cancelable,\r\n code: e.code,\r\n composed: e.composed,\r\n ctrlKey: e.ctrlKey,\r\n detail: e.detail,\r\n isComposing: e.isComposing,\r\n key: e.key,\r\n location: e.location,\r\n metaKey: e.metaKey,\r\n repeat: e.repeat,\r\n shiftKey: e.shiftKey,\r\n view: e.view,\r\n charCode: e.charCode,\r\n keyCode: e.keyCode,\r\n which: e.which,\r\n ...initObj\r\n };\r\n const event = new KeyboardEvent(eventName, initialObject);\r\n return event;\r\n}\r\n/**\r\n * create a InputEvent based on `e` value and replace them with initObj\r\n */\r\nexport function createInputEvent(eventName: string, e: InputEvent, initObj: InputEventInit) {\r\n const initialObject: InputEventInit = {\r\n bubbles: e.bubbles,\r\n cancelable: e.cancelable,\r\n composed: e.composed,\r\n detail: e.detail,\r\n isComposing: e.isComposing,\r\n view: e.view,\r\n which: e.which,\r\n data: e.data,\r\n dataTransfer: e.dataTransfer,\r\n inputType: e.inputType,\r\n targetRanges: typeof e.getTargetRanges() == \"function\" ? e.getTargetRanges() : [],\r\n ...initObj\r\n };\r\n const event = new InputEvent(eventName, initialObject);\r\n return event;\r\n}\r\n\r\n/**\r\n * create a InputEvent based on `e` value and replace them with initObj\r\n */\r\nexport function createFocusEvent(eventName: string, e: FocusEvent, initObj: FocusEventInit) {\r\n const initialObject: FocusEventInit = {\r\n bubbles: e.bubbles,\r\n cancelable: e.cancelable,\r\n composed: e.composed,\r\n detail: e.detail,\r\n view: e.view,\r\n which: e.which,\r\n relatedTarget: e.relatedTarget,\r\n ...initObj\r\n };\r\n const event = new FocusEvent(eventName, initialObject);\r\n return event;\r\n}","export const isMobile = ()=>{\r\n return /Mobi/i.test(window.navigator.userAgent);\r\n};"],"names":["listenAndSilentEvent","element","eventName","handler","options","document","addEventListener","e","composedPath","includes","stopPropagation","stopImmediatePropagation","capture","createKeyboardEvent","initObj","initialObject","altKey","bubbles","cancelable","code","composed","ctrlKey","detail","isComposing","key","location","metaKey","repeat","shiftKey","view","charCode","keyCode","which","KeyboardEvent","createInputEvent","data","dataTransfer","inputType","targetRanges","getTargetRanges","InputEvent","createFocusEvent","relatedTarget","FocusEvent","isMobile","test","window","navigator","userAgent"],"mappings":"AASM,SAAUA,EAAoDC,EAAkBC,EAAmBC,EAA6BC,EAAmC,CAAA,GACvKC,SAASC,iBAAiBJ,GAAYK,IAChCA,EAAEC,eAAeC,SAASR,KAC5BM,EAAEG,kBACFH,EAAEI,2BACFR,EAAQI,GACT,GACD,CAACK,SAAQ,KAAQR,GACrB,UAIgBS,EAAoBX,EAAmBK,EAAkBO,GACvE,MAAMC,EAAmC,CACvCC,OAAQT,EAAES,OACVC,QAASV,EAAEU,QACXC,WAAYX,EAAEW,WACdC,KAAMZ,EAAEY,KACRC,SAAUb,EAAEa,SACZC,QAASd,EAAEc,QACXC,OAAQf,EAAEe,OACVC,YAAahB,EAAEgB,YACfC,IAAKjB,EAAEiB,IACPC,SAAUlB,EAAEkB,SACZC,QAASnB,EAAEmB,QACXC,OAAQpB,EAAEoB,OACVC,SAAUrB,EAAEqB,SACZC,KAAMtB,EAAEsB,KACRC,SAAUvB,EAAEuB,SACZC,QAASxB,EAAEwB,QACXC,MAAOzB,EAAEyB,SACNlB,GAGL,OADc,IAAImB,cAAc/B,EAAWa,EAE7C,UAIgBmB,EAAiBhC,EAAmBK,EAAeO,GACjE,MAAMC,EAAgC,CACpCE,QAASV,EAAEU,QACXC,WAAYX,EAAEW,WACdE,SAAUb,EAAEa,SACZE,OAAQf,EAAEe,OACVC,YAAahB,EAAEgB,YACfM,KAAMtB,EAAEsB,KACRG,MAAOzB,EAAEyB,MACTG,KAAM5B,EAAE4B,KACRC,aAAc7B,EAAE6B,aAChBC,UAAW9B,EAAE8B,UACbC,aAA4C,mBAAvB/B,EAAEgC,kBAAkChC,EAAEgC,kBAAoB,MAC5EzB,GAGL,OADc,IAAI0B,WAAWtC,EAAWa,EAE1C,UAKgB0B,EAAiBvC,EAAmBK,EAAeO,GACjE,MAAMC,EAAgC,CACpCE,QAASV,EAAEU,QACXC,WAAYX,EAAEW,WACdE,SAAUb,EAAEa,SACZE,OAAQf,EAAEe,OACVO,KAAMtB,EAAEsB,KACRG,MAAOzB,EAAEyB,MACTU,cAAenC,EAAEmC,iBACd5B,GAGL,OADc,IAAI6B,WAAWzC,EAAWa,EAE1C,CCnFO,MAAM6B,EAAW,IACf,QAAQC,KAAKC,OAAOC,UAAUC"}
|
package/dist/index.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).JBCore={})}(this,(function(e){"use strict";e.
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).JBCore={})}(this,(function(e){"use strict";e.createFocusEvent=function(e,t,n){const o={bubbles:t.bubbles,cancelable:t.cancelable,composed:t.composed,detail:t.detail,view:t.view,which:t.which,relatedTarget:t.relatedTarget,...n};return new FocusEvent(e,o)},e.createInputEvent=function(e,t,n){const o={bubbles:t.bubbles,cancelable:t.cancelable,composed:t.composed,detail:t.detail,isComposing:t.isComposing,view:t.view,which:t.which,data:t.data,dataTransfer:t.dataTransfer,inputType:t.inputType,targetRanges:"function"==typeof t.getTargetRanges()?t.getTargetRanges():[],...n};return new InputEvent(e,o)},e.createKeyboardEvent=function(e,t,n){const o={altKey:t.altKey,bubbles:t.bubbles,cancelable:t.cancelable,code:t.code,composed:t.composed,ctrlKey:t.ctrlKey,detail:t.detail,isComposing:t.isComposing,key:t.key,location:t.location,metaKey:t.metaKey,repeat:t.repeat,shiftKey:t.shiftKey,view:t.view,charCode:t.charCode,keyCode:t.keyCode,which:t.which,...n};return new KeyboardEvent(e,o)},e.isMobile=()=>/Mobi/i.test(window.navigator.userAgent),e.listenAndSilentEvent=function(e,t,n,o={}){document.addEventListener(t,(t=>{t.composedPath().includes(e)&&(t.stopPropagation(),t.stopImmediatePropagation(),n(t))}),{capture:!0,...o})}}));
|
|
2
2
|
//# sourceMappingURL=index.umd.js.map
|
package/dist/index.umd.js.br
CHANGED
|
Binary file
|
package/dist/index.umd.js.gz
CHANGED
|
Binary file
|
package/dist/index.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../lib/events.ts"],"sourcesContent":["/**\r\n * add type to event target for easier access to target\r\n */\r\nexport type EventTypeWithTarget<TEvent,TTarget> = TEvent & {\r\n target: TTarget;\r\n};\r\n/**\r\n * create a keyboardEvent based on e value and replace them with initObj\r\n */\r\nexport function createKeyboardEvent(eventName:string,e:KeyboardEvent,initObj:KeyboardEventInit){\r\n const initialObject: KeyboardEventInit = {\r\n altKey:e.altKey,\r\n bubbles:e.bubbles,\r\n cancelable:e.cancelable,\r\n code:e.code,\r\n composed:e.composed,\r\n ctrlKey:e.ctrlKey,\r\n detail:e.detail,\r\n isComposing:e.isComposing,\r\n key:e.key,\r\n location:e.location,\r\n metaKey:e.metaKey,\r\n repeat:e.repeat,\r\n shiftKey:e.shiftKey,\r\n view:e.view,\r\n charCode:e.charCode,\r\n keyCode:e.keyCode,\r\n which:e.which,\r\n ...initObj
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../lib/events.ts","../lib/device-detection.ts"],"sourcesContent":["/**\r\n * add type to event target for easier access to target\r\n */\r\nexport type EventTypeWithTarget<TEvent, TTarget> = TEvent & {\r\n target: TTarget;\r\n};\r\n/**\r\n * this function will stop event from propagate even in capturing phase and will call handler only if event target is the element\r\n */\r\nexport function listenAndSilentEvent<TEvent extends Event, TTarget>(element: TTarget, eventName: string, handler: (e:TEvent) => void, options: AddEventListenerOptions = {}) {\r\n document.addEventListener(eventName, (e: TEvent) => {\r\n if (e.composedPath().includes(element as unknown as EventTarget)) {\r\n e.stopPropagation();\r\n e.stopImmediatePropagation();\r\n handler(e);\r\n }\r\n },{capture:true,...options});\r\n}\r\n/**\r\n * create a keyboardEvent based on `e` value and replace them with initObj\r\n */\r\nexport function createKeyboardEvent(eventName: string, e: KeyboardEvent, initObj: KeyboardEventInit) {\r\n const initialObject: KeyboardEventInit = {\r\n altKey: e.altKey,\r\n bubbles: e.bubbles,\r\n cancelable: e.cancelable,\r\n code: e.code,\r\n composed: e.composed,\r\n ctrlKey: e.ctrlKey,\r\n detail: e.detail,\r\n isComposing: e.isComposing,\r\n key: e.key,\r\n location: e.location,\r\n metaKey: e.metaKey,\r\n repeat: e.repeat,\r\n shiftKey: e.shiftKey,\r\n view: e.view,\r\n charCode: e.charCode,\r\n keyCode: e.keyCode,\r\n which: e.which,\r\n ...initObj\r\n };\r\n const event = new KeyboardEvent(eventName, initialObject);\r\n return event;\r\n}\r\n/**\r\n * create a InputEvent based on `e` value and replace them with initObj\r\n */\r\nexport function createInputEvent(eventName: string, e: InputEvent, initObj: InputEventInit) {\r\n const initialObject: InputEventInit = {\r\n bubbles: e.bubbles,\r\n cancelable: e.cancelable,\r\n composed: e.composed,\r\n detail: e.detail,\r\n isComposing: e.isComposing,\r\n view: e.view,\r\n which: e.which,\r\n data: e.data,\r\n dataTransfer: e.dataTransfer,\r\n inputType: e.inputType,\r\n targetRanges: typeof e.getTargetRanges() == \"function\" ? e.getTargetRanges() : [],\r\n ...initObj\r\n };\r\n const event = new InputEvent(eventName, initialObject);\r\n return event;\r\n}\r\n\r\n/**\r\n * create a InputEvent based on `e` value and replace them with initObj\r\n */\r\nexport function createFocusEvent(eventName: string, e: FocusEvent, initObj: FocusEventInit) {\r\n const initialObject: FocusEventInit = {\r\n bubbles: e.bubbles,\r\n cancelable: e.cancelable,\r\n composed: e.composed,\r\n detail: e.detail,\r\n view: e.view,\r\n which: e.which,\r\n relatedTarget: e.relatedTarget,\r\n ...initObj\r\n };\r\n const event = new FocusEvent(eventName, initialObject);\r\n return event;\r\n}","export const isMobile = ()=>{\r\n return /Mobi/i.test(window.navigator.userAgent);\r\n};"],"names":["eventName","e","initObj","initialObject","bubbles","cancelable","composed","detail","view","which","relatedTarget","FocusEvent","isComposing","data","dataTransfer","inputType","targetRanges","getTargetRanges","InputEvent","altKey","code","ctrlKey","key","location","metaKey","repeat","shiftKey","charCode","keyCode","KeyboardEvent","test","window","navigator","userAgent","element","handler","options","document","addEventListener","composedPath","includes","stopPropagation","stopImmediatePropagation","capture"],"mappings":"0QAsEiCA,EAAmBC,EAAeC,GACjE,MAAMC,EAAgC,CACpCC,QAASH,EAAEG,QACXC,WAAYJ,EAAEI,WACdC,SAAUL,EAAEK,SACZC,OAAQN,EAAEM,OACVC,KAAMP,EAAEO,KACRC,MAAOR,EAAEQ,MACTC,cAAeT,EAAES,iBACdR,GAGL,OADc,IAAIS,WAAWX,EAAWG,EAE1C,8BAnCiCH,EAAmBC,EAAeC,GACjE,MAAMC,EAAgC,CACpCC,QAASH,EAAEG,QACXC,WAAYJ,EAAEI,WACdC,SAAUL,EAAEK,SACZC,OAAQN,EAAEM,OACVK,YAAaX,EAAEW,YACfJ,KAAMP,EAAEO,KACRC,MAAOR,EAAEQ,MACTI,KAAMZ,EAAEY,KACRC,aAAcb,EAAEa,aAChBC,UAAWd,EAAEc,UACbC,aAA4C,mBAAvBf,EAAEgB,kBAAkChB,EAAEgB,kBAAoB,MAC5Ef,GAGL,OADc,IAAIgB,WAAWlB,EAAWG,EAE1C,iCA5CoCH,EAAmBC,EAAkBC,GACvE,MAAMC,EAAmC,CACvCgB,OAAQlB,EAAEkB,OACVf,QAASH,EAAEG,QACXC,WAAYJ,EAAEI,WACde,KAAMnB,EAAEmB,KACRd,SAAUL,EAAEK,SACZe,QAASpB,EAAEoB,QACXd,OAAQN,EAAEM,OACVK,YAAaX,EAAEW,YACfU,IAAKrB,EAAEqB,IACPC,SAAUtB,EAAEsB,SACZC,QAASvB,EAAEuB,QACXC,OAAQxB,EAAEwB,OACVC,SAAUzB,EAAEyB,SACZlB,KAAMP,EAAEO,KACRmB,SAAU1B,EAAE0B,SACZC,QAAS3B,EAAE2B,QACXnB,MAAOR,EAAEQ,SACNP,GAGL,OADc,IAAI2B,cAAc7B,EAAWG,EAE7C,aC5CwB,IACf,QAAQ2B,KAAKC,OAAOC,UAAUC,kCDQjC,SAA8DC,EAAkBlC,EAAmBmC,EAA6BC,EAAmC,CAAA,GACvKC,SAASC,iBAAiBtC,GAAYC,IAChCA,EAAEsC,eAAeC,SAASN,KAC5BjC,EAAEwC,kBACFxC,EAAEyC,2BACFP,EAAQlC,GACT,GACD,CAAC0C,SAAQ,KAAQP,GACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isMobile: () => boolean;
|
|
@@ -5,10 +5,18 @@ export type EventTypeWithTarget<TEvent, TTarget> = TEvent & {
|
|
|
5
5
|
target: TTarget;
|
|
6
6
|
};
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* this function will stop event from propagate even in capturing phase and will call handler only if event target is the element
|
|
9
|
+
*/
|
|
10
|
+
export declare function listenAndSilentEvent<TEvent extends Event, TTarget>(element: TTarget, eventName: string, handler: (e: TEvent) => void, options?: AddEventListenerOptions): void;
|
|
11
|
+
/**
|
|
12
|
+
* create a keyboardEvent based on `e` value and replace them with initObj
|
|
9
13
|
*/
|
|
10
14
|
export declare function createKeyboardEvent(eventName: string, e: KeyboardEvent, initObj: KeyboardEventInit): KeyboardEvent;
|
|
11
15
|
/**
|
|
12
|
-
* create a
|
|
16
|
+
* create a InputEvent based on `e` value and replace them with initObj
|
|
13
17
|
*/
|
|
14
18
|
export declare function createInputEvent(eventName: string, e: InputEvent, initObj: InputEventInit): InputEvent;
|
|
19
|
+
/**
|
|
20
|
+
* create a InputEvent based on `e` value and replace them with initObj
|
|
21
|
+
*/
|
|
22
|
+
export declare function createFocusEvent(eventName: string, e: FocusEvent, initObj: FocusEventInit): FocusEvent;
|
package/lib/events.ts
CHANGED
|
@@ -1,54 +1,84 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* add type to event target for easier access to target
|
|
3
3
|
*/
|
|
4
|
-
export type EventTypeWithTarget<TEvent,TTarget> = TEvent & {
|
|
4
|
+
export type EventTypeWithTarget<TEvent, TTarget> = TEvent & {
|
|
5
5
|
target: TTarget;
|
|
6
6
|
};
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* this function will stop event from propagate even in capturing phase and will call handler only if event target is the element
|
|
9
9
|
*/
|
|
10
|
-
export function
|
|
10
|
+
export function listenAndSilentEvent<TEvent extends Event, TTarget>(element: TTarget, eventName: string, handler: (e:TEvent) => void, options: AddEventListenerOptions = {}) {
|
|
11
|
+
document.addEventListener(eventName, (e: TEvent) => {
|
|
12
|
+
if (e.composedPath().includes(element as unknown as EventTarget)) {
|
|
13
|
+
e.stopPropagation();
|
|
14
|
+
e.stopImmediatePropagation();
|
|
15
|
+
handler(e);
|
|
16
|
+
}
|
|
17
|
+
},{capture:true,...options});
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* create a keyboardEvent based on `e` value and replace them with initObj
|
|
21
|
+
*/
|
|
22
|
+
export function createKeyboardEvent(eventName: string, e: KeyboardEvent, initObj: KeyboardEventInit) {
|
|
11
23
|
const initialObject: KeyboardEventInit = {
|
|
12
|
-
altKey:e.altKey,
|
|
13
|
-
bubbles:e.bubbles,
|
|
14
|
-
cancelable:e.cancelable,
|
|
15
|
-
code:e.code,
|
|
16
|
-
composed:e.composed,
|
|
17
|
-
ctrlKey:e.ctrlKey,
|
|
18
|
-
detail:e.detail,
|
|
19
|
-
isComposing:e.isComposing,
|
|
20
|
-
key:e.key,
|
|
21
|
-
location:e.location,
|
|
22
|
-
metaKey:e.metaKey,
|
|
23
|
-
repeat:e.repeat,
|
|
24
|
-
shiftKey:e.shiftKey,
|
|
25
|
-
view:e.view,
|
|
26
|
-
charCode:e.charCode,
|
|
27
|
-
keyCode:e.keyCode,
|
|
28
|
-
which:e.which,
|
|
29
|
-
...initObj
|
|
24
|
+
altKey: e.altKey,
|
|
25
|
+
bubbles: e.bubbles,
|
|
26
|
+
cancelable: e.cancelable,
|
|
27
|
+
code: e.code,
|
|
28
|
+
composed: e.composed,
|
|
29
|
+
ctrlKey: e.ctrlKey,
|
|
30
|
+
detail: e.detail,
|
|
31
|
+
isComposing: e.isComposing,
|
|
32
|
+
key: e.key,
|
|
33
|
+
location: e.location,
|
|
34
|
+
metaKey: e.metaKey,
|
|
35
|
+
repeat: e.repeat,
|
|
36
|
+
shiftKey: e.shiftKey,
|
|
37
|
+
view: e.view,
|
|
38
|
+
charCode: e.charCode,
|
|
39
|
+
keyCode: e.keyCode,
|
|
40
|
+
which: e.which,
|
|
41
|
+
...initObj
|
|
30
42
|
};
|
|
31
43
|
const event = new KeyboardEvent(eventName, initialObject);
|
|
32
44
|
return event;
|
|
33
45
|
}
|
|
34
46
|
/**
|
|
35
|
-
* create a
|
|
47
|
+
* create a InputEvent based on `e` value and replace them with initObj
|
|
36
48
|
*/
|
|
37
|
-
export function createInputEvent(eventName:string,e:InputEvent,initObj:InputEventInit){
|
|
49
|
+
export function createInputEvent(eventName: string, e: InputEvent, initObj: InputEventInit) {
|
|
38
50
|
const initialObject: InputEventInit = {
|
|
39
|
-
bubbles:e.bubbles,
|
|
40
|
-
cancelable:e.cancelable,
|
|
41
|
-
composed:e.composed,
|
|
42
|
-
detail:e.detail,
|
|
43
|
-
isComposing:e.isComposing,
|
|
44
|
-
view:e.view,
|
|
45
|
-
which:e.which,
|
|
46
|
-
data:e.data,
|
|
47
|
-
dataTransfer:e.dataTransfer,
|
|
48
|
-
inputType:e.inputType,
|
|
49
|
-
targetRanges: typeof e.getTargetRanges() == "function"?e.getTargetRanges():[],
|
|
50
|
-
...initObj
|
|
51
|
+
bubbles: e.bubbles,
|
|
52
|
+
cancelable: e.cancelable,
|
|
53
|
+
composed: e.composed,
|
|
54
|
+
detail: e.detail,
|
|
55
|
+
isComposing: e.isComposing,
|
|
56
|
+
view: e.view,
|
|
57
|
+
which: e.which,
|
|
58
|
+
data: e.data,
|
|
59
|
+
dataTransfer: e.dataTransfer,
|
|
60
|
+
inputType: e.inputType,
|
|
61
|
+
targetRanges: typeof e.getTargetRanges() == "function" ? e.getTargetRanges() : [],
|
|
62
|
+
...initObj
|
|
51
63
|
};
|
|
52
64
|
const event = new InputEvent(eventName, initialObject);
|
|
53
65
|
return event;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* create a InputEvent based on `e` value and replace them with initObj
|
|
70
|
+
*/
|
|
71
|
+
export function createFocusEvent(eventName: string, e: FocusEvent, initObj: FocusEventInit) {
|
|
72
|
+
const initialObject: FocusEventInit = {
|
|
73
|
+
bubbles: e.bubbles,
|
|
74
|
+
cancelable: e.cancelable,
|
|
75
|
+
composed: e.composed,
|
|
76
|
+
detail: e.detail,
|
|
77
|
+
view: e.view,
|
|
78
|
+
which: e.which,
|
|
79
|
+
relatedTarget: e.relatedTarget,
|
|
80
|
+
...initObj
|
|
81
|
+
};
|
|
82
|
+
const event = new FocusEvent(eventName, initialObject);
|
|
83
|
+
return event;
|
|
54
84
|
}
|
package/lib/index.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from "./events.js";
|
|
1
|
+
export * from "./events.js";
|
|
2
|
+
export * from "./device-detection.js";
|
package/package.json
CHANGED
package/react/dist/index.cjs.js
CHANGED
|
@@ -12,12 +12,12 @@ function useEvent(ref, event, handler, passive = false) {
|
|
|
12
12
|
const dom = ref.current;
|
|
13
13
|
if (dom) {
|
|
14
14
|
// initiate the event handler
|
|
15
|
-
dom.addEventListener(event, internalHandler, passive);
|
|
15
|
+
dom.addEventListener(event, internalHandler, { passive, capture: false });
|
|
16
16
|
}
|
|
17
17
|
// this will clean up the event every time the component is re-rendered
|
|
18
18
|
return function cleanup() {
|
|
19
19
|
if (dom) {
|
|
20
|
-
dom.removeEventListener(event, internalHandler, passive);
|
|
20
|
+
dom.removeEventListener(event, internalHandler, { passive, capture: false });
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
}, [ref, event, handler, passive]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../lib/use-event.ts"],"sourcesContent":["import { useCallback, useEffect } from \"react\";\r\n\r\nexport function useEvent<TRef extends React.MutableRefObject<any|null>,TEvent>(ref:TRef, event:string, handler?:(e:TEvent)=>void, passive = false) {\r\n const internalHandler = useCallback((e:TEvent)=>{\r\n if(ref.current && typeof handler == \"function\"){\r\n handler(e);\r\n }\r\n },[ref,handler]);\r\n useEffect(() => {\r\n const dom = ref.current;\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, internalHandler, passive); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, internalHandler, passive);\r\n }\r\n };\r\n },[ref,event,handler,passive]);\r\n}"],"names":["useCallback","useEffect"],"mappings":";;;;AAEM,SAAU,QAAQ,CAAuD,GAAQ,EAAE,KAAY,EAAE,OAAyB,EAAE,OAAO,GAAG,KAAK,EAAA;AAC/I,IAAA,MAAM,eAAe,GAAGA,iBAAW,CAAC,CAAC,CAAQ,KAAG;QAC9C,IAAG,GAAG,CAAC,OAAO,IAAI,OAAO,OAAO,IAAI,UAAU,EAAC;YAC7C,OAAO,CAAC,CAAC,CAAC,CAAC;AACZ,SAAA;AACH,KAAC,EAAC,CAAC,GAAG,EAAC,OAAO,CAAC,CAAC,CAAC;IACjBC,eAAS,CAAC,MAAK;AACb,QAAA,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;AACxB,QAAA,IAAI,GAAG,EAAE;;
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../lib/use-event.ts"],"sourcesContent":["import { useCallback, useEffect } from \"react\";\r\n\r\nexport function useEvent<TRef extends React.MutableRefObject<any|null>,TEvent>(ref:TRef, event:string, handler?:(e:TEvent)=>void, passive = false) {\r\n const internalHandler = useCallback((e:TEvent)=>{\r\n if(ref.current && typeof handler == \"function\"){\r\n handler(e);\r\n }\r\n },[ref,handler]);\r\n useEffect(() => {\r\n const dom = ref.current;\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, internalHandler, { passive, capture:false }); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, internalHandler, {passive, capture:false});\r\n }\r\n };\r\n },[ref,event,handler,passive]);\r\n}"],"names":["useCallback","useEffect"],"mappings":";;;;AAEM,SAAU,QAAQ,CAAuD,GAAQ,EAAE,KAAY,EAAE,OAAyB,EAAE,OAAO,GAAG,KAAK,EAAA;AAC/I,IAAA,MAAM,eAAe,GAAGA,iBAAW,CAAC,CAAC,CAAQ,KAAG;QAC9C,IAAG,GAAG,CAAC,OAAO,IAAI,OAAO,OAAO,IAAI,UAAU,EAAC;YAC7C,OAAO,CAAC,CAAC,CAAC,CAAC;AACZ,SAAA;AACH,KAAC,EAAC,CAAC,GAAG,EAAC,OAAO,CAAC,CAAC,CAAC;IACjBC,eAAS,CAAC,MAAK;AACb,QAAA,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;AACxB,QAAA,IAAI,GAAG,EAAE;;AAEP,YAAA,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,EAAC,KAAK,EAAE,CAAC,CAAC;AAC1E,SAAA;;AAED,QAAA,OAAO,SAAS,OAAO,GAAA;AACrB,YAAA,IAAG,GAAG,EAAC;AACL,gBAAA,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC,KAAK,EAAC,CAAC,CAAC;AAC3E,aAAA;AACH,SAAC,CAAC;KACH,EAAC,CAAC,GAAG,EAAC,KAAK,EAAC,OAAO,EAAC,OAAO,CAAC,CAAC,CAAC;AACjC;;;;"}
|
package/react/dist/index.js
CHANGED
|
@@ -10,12 +10,12 @@ function useEvent(ref, event, handler, passive = false) {
|
|
|
10
10
|
const dom = ref.current;
|
|
11
11
|
if (dom) {
|
|
12
12
|
// initiate the event handler
|
|
13
|
-
dom.addEventListener(event, internalHandler, passive);
|
|
13
|
+
dom.addEventListener(event, internalHandler, { passive, capture: false });
|
|
14
14
|
}
|
|
15
15
|
// this will clean up the event every time the component is re-rendered
|
|
16
16
|
return function cleanup() {
|
|
17
17
|
if (dom) {
|
|
18
|
-
dom.removeEventListener(event, internalHandler, passive);
|
|
18
|
+
dom.removeEventListener(event, internalHandler, { passive, capture: false });
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
21
|
}, [ref, event, handler, passive]);
|
package/react/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../lib/use-event.ts"],"sourcesContent":["import { useCallback, useEffect } from \"react\";\r\n\r\nexport function useEvent<TRef extends React.MutableRefObject<any|null>,TEvent>(ref:TRef, event:string, handler?:(e:TEvent)=>void, passive = false) {\r\n const internalHandler = useCallback((e:TEvent)=>{\r\n if(ref.current && typeof handler == \"function\"){\r\n handler(e);\r\n }\r\n },[ref,handler]);\r\n useEffect(() => {\r\n const dom = ref.current;\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, internalHandler, passive); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, internalHandler, passive);\r\n }\r\n };\r\n },[ref,event,handler,passive]);\r\n}"],"names":[],"mappings":";;AAEM,SAAU,QAAQ,CAAuD,GAAQ,EAAE,KAAY,EAAE,OAAyB,EAAE,OAAO,GAAG,KAAK,EAAA;AAC/I,IAAA,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAQ,KAAG;QAC9C,IAAG,GAAG,CAAC,OAAO,IAAI,OAAO,OAAO,IAAI,UAAU,EAAC;YAC7C,OAAO,CAAC,CAAC,CAAC,CAAC;AACZ,SAAA;AACH,KAAC,EAAC,CAAC,GAAG,EAAC,OAAO,CAAC,CAAC,CAAC;IACjB,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;AACxB,QAAA,IAAI,GAAG,EAAE;;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../lib/use-event.ts"],"sourcesContent":["import { useCallback, useEffect } from \"react\";\r\n\r\nexport function useEvent<TRef extends React.MutableRefObject<any|null>,TEvent>(ref:TRef, event:string, handler?:(e:TEvent)=>void, passive = false) {\r\n const internalHandler = useCallback((e:TEvent)=>{\r\n if(ref.current && typeof handler == \"function\"){\r\n handler(e);\r\n }\r\n },[ref,handler]);\r\n useEffect(() => {\r\n const dom = ref.current;\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, internalHandler, { passive, capture:false }); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, internalHandler, {passive, capture:false});\r\n }\r\n };\r\n },[ref,event,handler,passive]);\r\n}"],"names":[],"mappings":";;AAEM,SAAU,QAAQ,CAAuD,GAAQ,EAAE,KAAY,EAAE,OAAyB,EAAE,OAAO,GAAG,KAAK,EAAA;AAC/I,IAAA,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAQ,KAAG;QAC9C,IAAG,GAAG,CAAC,OAAO,IAAI,OAAO,OAAO,IAAI,UAAU,EAAC;YAC7C,OAAO,CAAC,CAAC,CAAC,CAAC;AACZ,SAAA;AACH,KAAC,EAAC,CAAC,GAAG,EAAC,OAAO,CAAC,CAAC,CAAC;IACjB,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;AACxB,QAAA,IAAI,GAAG,EAAE;;AAEP,YAAA,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,EAAC,KAAK,EAAE,CAAC,CAAC;AAC1E,SAAA;;AAED,QAAA,OAAO,SAAS,OAAO,GAAA;AACrB,YAAA,IAAG,GAAG,EAAC;AACL,gBAAA,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC,KAAK,EAAC,CAAC,CAAC;AAC3E,aAAA;AACH,SAAC,CAAC;KACH,EAAC,CAAC,GAAG,EAAC,KAAK,EAAC,OAAO,EAAC,OAAO,CAAC,CAAC,CAAC;AACjC;;;;"}
|
package/react/dist/index.umd.js
CHANGED
|
@@ -14,12 +14,12 @@
|
|
|
14
14
|
const dom = ref.current;
|
|
15
15
|
if (dom) {
|
|
16
16
|
// initiate the event handler
|
|
17
|
-
dom.addEventListener(event, internalHandler, passive);
|
|
17
|
+
dom.addEventListener(event, internalHandler, { passive, capture: false });
|
|
18
18
|
}
|
|
19
19
|
// this will clean up the event every time the component is re-rendered
|
|
20
20
|
return function cleanup() {
|
|
21
21
|
if (dom) {
|
|
22
|
-
dom.removeEventListener(event, internalHandler, passive);
|
|
22
|
+
dom.removeEventListener(event, internalHandler, { passive, capture: false });
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
25
|
}, [ref, event, handler, passive]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../lib/use-event.ts"],"sourcesContent":["import { useCallback, useEffect } from \"react\";\r\n\r\nexport function useEvent<TRef extends React.MutableRefObject<any|null>,TEvent>(ref:TRef, event:string, handler?:(e:TEvent)=>void, passive = false) {\r\n const internalHandler = useCallback((e:TEvent)=>{\r\n if(ref.current && typeof handler == \"function\"){\r\n handler(e);\r\n }\r\n },[ref,handler]);\r\n useEffect(() => {\r\n const dom = ref.current;\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, internalHandler, passive); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, internalHandler, passive);\r\n }\r\n };\r\n },[ref,event,handler,passive]);\r\n}"],"names":["useCallback","useEffect"],"mappings":";;;;;;EAEM,SAAU,QAAQ,CAAuD,GAAQ,EAAE,KAAY,EAAE,OAAyB,EAAE,OAAO,GAAG,KAAK,EAAA;EAC/I,IAAA,MAAM,eAAe,GAAGA,iBAAW,CAAC,CAAC,CAAQ,KAAG;UAC9C,IAAG,GAAG,CAAC,OAAO,IAAI,OAAO,OAAO,IAAI,UAAU,EAAC;cAC7C,OAAO,CAAC,CAAC,CAAC,CAAC;EACZ,SAAA;EACH,KAAC,EAAC,CAAC,GAAG,EAAC,OAAO,CAAC,CAAC,CAAC;MACjBC,eAAS,CAAC,MAAK;EACb,QAAA,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;EACxB,QAAA,IAAI,GAAG,EAAE;;
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../lib/use-event.ts"],"sourcesContent":["import { useCallback, useEffect } from \"react\";\r\n\r\nexport function useEvent<TRef extends React.MutableRefObject<any|null>,TEvent>(ref:TRef, event:string, handler?:(e:TEvent)=>void, passive = false) {\r\n const internalHandler = useCallback((e:TEvent)=>{\r\n if(ref.current && typeof handler == \"function\"){\r\n handler(e);\r\n }\r\n },[ref,handler]);\r\n useEffect(() => {\r\n const dom = ref.current;\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, internalHandler, { passive, capture:false }); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, internalHandler, {passive, capture:false});\r\n }\r\n };\r\n },[ref,event,handler,passive]);\r\n}"],"names":["useCallback","useEffect"],"mappings":";;;;;;EAEM,SAAU,QAAQ,CAAuD,GAAQ,EAAE,KAAY,EAAE,OAAyB,EAAE,OAAO,GAAG,KAAK,EAAA;EAC/I,IAAA,MAAM,eAAe,GAAGA,iBAAW,CAAC,CAAC,CAAQ,KAAG;UAC9C,IAAG,GAAG,CAAC,OAAO,IAAI,OAAO,OAAO,IAAI,UAAU,EAAC;cAC7C,OAAO,CAAC,CAAC,CAAC,CAAC;EACZ,SAAA;EACH,KAAC,EAAC,CAAC,GAAG,EAAC,OAAO,CAAC,CAAC,CAAC;MACjBC,eAAS,CAAC,MAAK;EACb,QAAA,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;EACxB,QAAA,IAAI,GAAG,EAAE;;EAEP,YAAA,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,EAAC,KAAK,EAAE,CAAC,CAAC;EAC1E,SAAA;;EAED,QAAA,OAAO,SAAS,OAAO,GAAA;EACrB,YAAA,IAAG,GAAG,EAAC;EACL,gBAAA,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC,KAAK,EAAC,CAAC,CAAC;EAC3E,aAAA;EACH,SAAC,CAAC;OACH,EAAC,CAAC,GAAG,EAAC,KAAK,EAAC,OAAO,EAAC,OAAO,CAAC,CAAC,CAAC;EACjC;;;;;;;;"}
|
package/react/lib/use-event.ts
CHANGED
|
@@ -10,12 +10,12 @@ export function useEvent<TRef extends React.MutableRefObject<any|null>,TEvent>(r
|
|
|
10
10
|
const dom = ref.current;
|
|
11
11
|
if (dom) {
|
|
12
12
|
// initiate the event handler
|
|
13
|
-
dom.addEventListener(event, internalHandler, passive);
|
|
13
|
+
dom.addEventListener(event, internalHandler, { passive, capture:false });
|
|
14
14
|
}
|
|
15
15
|
// this will clean up the event every time the component is re-rendered
|
|
16
16
|
return function cleanup() {
|
|
17
17
|
if(dom){
|
|
18
|
-
dom.removeEventListener(event, internalHandler, passive);
|
|
18
|
+
dom.removeEventListener(event, internalHandler, {passive, capture:false});
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
21
|
},[ref,event,handler,passive]);
|