jb-core 0.0.4 → 0.2.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 +4 -0
- package/dist/web-component/jb-core/lib/index.d.ts +2 -0
- package/dist/web-component/jb-core/lib/persian-helper.d.ts +3 -0
- package/dist/web-component/jb-core/lib/persian-tools.d.ts +3 -0
- package/lib/device-detection.ts +3 -0
- package/lib/events.ts +54 -42
- package/lib/index.ts +3 -1
- package/lib/persian-tools.ts +24 -0
- 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/hooks/index.ts +3 -0
- package/react/lib/{use-event.ts → hooks/use-event.ts} +2 -2
- package/react/lib/hooks/useInstance.ts +19 -0
- package/react/lib/hooks/useLazyRef.ts +12 -0
- package/react/lib/index.ts +1 -1
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.createFocusEvent=function(e,t,
|
|
1
|
+
"use strict";exports.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)},exports.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)},exports.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)},exports.enToFaDigits=function(e){return"string"!=typeof e&&isNaN(e)?"":e.toString().replace(/[0-9]/g,(function(e){return String.fromCharCode(e.charCodeAt(0)+1728)}))},exports.faToEnDigits=function(e){return"string"!=typeof e?"":e.replace(/[۰-۹]/g,(function(e){return String.fromCharCode(e.charCodeAt(0)-1728)}))},exports.isMobile=()=>/Mobi/i.test(window.navigator.userAgent),exports.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.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/persian-tools.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}","function faToEnDigits(input:string | number):string{\r\n if (typeof input !== \"string\"){\r\n return '';\r\n }\r\n const regex = /[۰-۹]/g;\r\n const result = input.replace(regex, function (w) {\r\n return String.fromCharCode(w.charCodeAt(0) - 1728);\r\n }\r\n );\r\n return result;\r\n}\r\n\r\nfunction enToFaDigits(input:string | number):string{\r\n if (typeof input !== \"string\" && isNaN(input)){\r\n return '';\r\n }\r\n const regex = /[0-9]/g;\r\n const result = input.toString().replace(regex, function (w) {\r\n return String.fromCharCode(w.charCodeAt(0) + 1728);\r\n }\r\n );\r\n return result;\r\n}\r\nexport {enToFaDigits, faToEnDigits};","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","input","isNaN","toString","replace","w","String","fromCharCode","charCodeAt","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,uBChCA,SAAsB2B,GACpB,MAAqB,iBAAVA,GAAsBC,MAAMD,GAC9B,GAGMA,EAAME,WAAWC,QADlB,UACiC,SAAUC,GACvD,OAAOC,OAAOC,aAAaF,EAAEG,WAAW,GAAK,KAC/C,GAGF,uBAtBA,SAAsBP,GACpB,MAAqB,iBAAVA,EACF,GAGMA,EAAMG,QADP,UACsB,SAAUC,GAC5C,OAAOC,OAAOC,aAAaF,EAAEG,WAAW,GAAK,KAC/C,GAGF,mBCVwB,IACf,QAAQC,KAAKC,OAAOC,UAAUC,wCFQjC,SAA8DC,EAAkB1C,EAAmB2C,EAA6BC,EAAmC,CAAA,GACvKC,SAASC,iBAAiB9C,GAAYC,IAChCA,EAAE8C,eAAeC,SAASN,KAC5BzC,EAAEgD,kBACFhD,EAAEiD,2BACFP,EAAQ1C,GACT,GACD,CAACkD,SAAQ,KAAQP,GACrB"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function e(e,t,
|
|
1
|
+
function e(e,t,n,o={}){document.addEventListener(t,(t=>{t.composedPath().includes(e)&&(t.stopPropagation(),t.stopImmediatePropagation(),n(t))}),{capture:!0,...o})}function t(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)}function n(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)}function o(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)}const a=()=>/Mobi/i.test(window.navigator.userAgent);function i(e){if("string"!=typeof e)return"";return e.replace(/[۰-۹]/g,(function(e){return String.fromCharCode(e.charCodeAt(0)-1728)}))}function r(e){if("string"!=typeof e&&isNaN(e))return"";return e.toString().replace(/[0-9]/g,(function(e){return String.fromCharCode(e.charCodeAt(0)+1728)}))}export{o as createFocusEvent,n as createInputEvent,t as createKeyboardEvent,r as enToFaDigits,i as faToEnDigits,a 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","../lib/persian-tools.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};","function faToEnDigits(input:string | number):string{\r\n if (typeof input !== \"string\"){\r\n return '';\r\n }\r\n const regex = /[۰-۹]/g;\r\n const result = input.replace(regex, function (w) {\r\n return String.fromCharCode(w.charCodeAt(0) - 1728);\r\n }\r\n );\r\n return result;\r\n}\r\n\r\nfunction enToFaDigits(input:string | number):string{\r\n if (typeof input !== \"string\" && isNaN(input)){\r\n return '';\r\n }\r\n const regex = /[0-9]/g;\r\n const result = input.toString().replace(regex, function (w) {\r\n return String.fromCharCode(w.charCodeAt(0) + 1728);\r\n }\r\n );\r\n return result;\r\n}\r\nexport {enToFaDigits, faToEnDigits};"],"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","faToEnDigits","input","replace","w","String","fromCharCode","charCodeAt","enToFaDigits","isNaN","toString"],"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,WCDvC,SAASC,EAAaC,GACpB,GAAqB,iBAAVA,EACT,MAAO,GAOT,OAJeA,EAAMC,QADP,UACsB,SAAUC,GAC5C,OAAOC,OAAOC,aAAaF,EAAEG,WAAW,GAAK,KAC/C,GAGF,CAEA,SAASC,EAAaN,GACpB,GAAqB,iBAAVA,GAAsBO,MAAMP,GACrC,MAAO,GAOT,OAJeA,EAAMQ,WAAWP,QADlB,UACiC,SAAUC,GACvD,OAAOC,OAAOC,aAAaF,EAAEG,WAAW,GAAK,KAC/C,GAGF"}
|
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.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)}}));
|
|
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.enToFaDigits=function(e){return"string"!=typeof e&&isNaN(e)?"":e.toString().replace(/[0-9]/g,(function(e){return String.fromCharCode(e.charCodeAt(0)+1728)}))},e.faToEnDigits=function(e){return"string"!=typeof e?"":e.replace(/[۰-۹]/g,(function(e){return String.fromCharCode(e.charCodeAt(0)-1728)}))},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/persian-tools.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}","function faToEnDigits(input:string | number):string{\r\n if (typeof input !== \"string\"){\r\n return '';\r\n }\r\n const regex = /[۰-۹]/g;\r\n const result = input.replace(regex, function (w) {\r\n return String.fromCharCode(w.charCodeAt(0) - 1728);\r\n }\r\n );\r\n return result;\r\n}\r\n\r\nfunction enToFaDigits(input:string | number):string{\r\n if (typeof input !== \"string\" && isNaN(input)){\r\n return '';\r\n }\r\n const regex = /[0-9]/g;\r\n const result = input.toString().replace(regex, function (w) {\r\n return String.fromCharCode(w.charCodeAt(0) + 1728);\r\n }\r\n );\r\n return result;\r\n}\r\nexport {enToFaDigits, faToEnDigits};","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","input","isNaN","toString","replace","w","String","fromCharCode","charCodeAt","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,iBChCA,SAAsB2B,GACpB,MAAqB,iBAAVA,GAAsBC,MAAMD,GAC9B,GAGMA,EAAME,WAAWC,QADlB,UACiC,SAAUC,GACvD,OAAOC,OAAOC,aAAaF,EAAEG,WAAW,GAAK,KAC/C,GAGF,iBAtBA,SAAsBP,GACpB,MAAqB,iBAAVA,EACF,GAGMA,EAAMG,QADP,UACsB,SAAUC,GAC5C,OAAOC,OAAOC,aAAaF,EAAEG,WAAW,GAAK,KAC/C,GAGF,aCVwB,IACf,QAAQC,KAAKC,OAAOC,UAAUC,kCFQjC,SAA8DC,EAAkB1C,EAAmB2C,EAA6BC,EAAmC,CAAA,GACvKC,SAASC,iBAAiB9C,GAAYC,IAChCA,EAAE8C,eAAeC,SAASN,KAC5BzC,EAAEgD,kBACFhD,EAAEiD,2BACFP,EAAQ1C,GACT,GACD,CAACkD,SAAQ,KAAQP,GACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isMobile: () => boolean;
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
export type EventTypeWithTarget<TEvent, TTarget> = TEvent & {
|
|
5
5
|
target: TTarget;
|
|
6
6
|
};
|
|
7
|
+
/**
|
|
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;
|
|
7
11
|
/**
|
|
8
12
|
* create a keyboardEvent based on `e` value and replace them with initObj
|
|
9
13
|
*/
|
package/lib/events.ts
CHANGED
|
@@ -1,32 +1,44 @@
|
|
|
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
|
+
/**
|
|
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 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
|
+
}
|
|
7
19
|
/**
|
|
8
20
|
* create a keyboardEvent based on `e` value and replace them with initObj
|
|
9
21
|
*/
|
|
10
|
-
export function createKeyboardEvent(eventName:string,e:KeyboardEvent,initObj:KeyboardEventInit){
|
|
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;
|
|
@@ -34,20 +46,20 @@ export function createKeyboardEvent(eventName:string,e:KeyboardEvent,initObj:Key
|
|
|
34
46
|
/**
|
|
35
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;
|
|
@@ -56,16 +68,16 @@ export function createInputEvent(eventName:string,e:InputEvent,initObj:InputEven
|
|
|
56
68
|
/**
|
|
57
69
|
* create a InputEvent based on `e` value and replace them with initObj
|
|
58
70
|
*/
|
|
59
|
-
export function createFocusEvent(eventName:string,e:FocusEvent,initObj:FocusEventInit){
|
|
71
|
+
export function createFocusEvent(eventName: string, e: FocusEvent, initObj: FocusEventInit) {
|
|
60
72
|
const initialObject: FocusEventInit = {
|
|
61
|
-
bubbles:e.bubbles,
|
|
62
|
-
cancelable:e.cancelable,
|
|
63
|
-
composed:e.composed,
|
|
64
|
-
detail:e.detail,
|
|
65
|
-
view:e.view,
|
|
66
|
-
which:e.which,
|
|
67
|
-
relatedTarget:e.relatedTarget,
|
|
68
|
-
...initObj
|
|
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
|
|
69
81
|
};
|
|
70
82
|
const event = new FocusEvent(eventName, initialObject);
|
|
71
83
|
return event;
|
package/lib/index.ts
CHANGED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
function faToEnDigits(input:string | number):string{
|
|
2
|
+
if (typeof input !== "string"){
|
|
3
|
+
return '';
|
|
4
|
+
}
|
|
5
|
+
const regex = /[۰-۹]/g;
|
|
6
|
+
const result = input.replace(regex, function (w) {
|
|
7
|
+
return String.fromCharCode(w.charCodeAt(0) - 1728);
|
|
8
|
+
}
|
|
9
|
+
);
|
|
10
|
+
return result;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function enToFaDigits(input:string | number):string{
|
|
14
|
+
if (typeof input !== "string" && isNaN(input)){
|
|
15
|
+
return '';
|
|
16
|
+
}
|
|
17
|
+
const regex = /[0-9]/g;
|
|
18
|
+
const result = input.toString().replace(regex, function (w) {
|
|
19
|
+
return String.fromCharCode(w.charCodeAt(0) + 1728);
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
export {enToFaDigits, faToEnDigits};
|
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;;;;;;;;"}
|
|
@@ -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]);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useLazyRef } from "./useLazyRef.js";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
type BaseConstructableClass<T = any> = new (...args: any[]) => T;
|
|
5
|
+
|
|
6
|
+
// Type to get the constructor parameters of a class
|
|
7
|
+
type Initializers<T extends BaseConstructableClass> = ConstructorParameters<T>;
|
|
8
|
+
|
|
9
|
+
// useInstance function that accepts a Store class and its initializers
|
|
10
|
+
/**
|
|
11
|
+
* create a instance of an class with lazy initialization
|
|
12
|
+
* @param Store class to create instance of
|
|
13
|
+
* @param initializers initializers to pass to the class constructor
|
|
14
|
+
* @returns instance of the class
|
|
15
|
+
*/
|
|
16
|
+
export const useInstance = <T extends BaseConstructableClass>(Store: T, initializers: Initializers<T>): InstanceType<T> => {
|
|
17
|
+
const vm = useLazyRef(() => new Store(...initializers));
|
|
18
|
+
return vm.current;
|
|
19
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MutableRefObject, useRef } from "react";
|
|
2
|
+
|
|
3
|
+
type InitFunc<T> = ()=>T
|
|
4
|
+
export const useLazyRef = <T>(initValFunc:InitFunc<T>) => {
|
|
5
|
+
const ref:MutableRefObject<any> = useRef(null);
|
|
6
|
+
if (ref.current === null) {
|
|
7
|
+
ref.current = initValFunc();
|
|
8
|
+
}
|
|
9
|
+
return ref;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
// used by: useMobx
|
package/react/lib/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './hooks/index.js';
|