jb-core 0.1.0 → 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/dist/index.cjs.js CHANGED
@@ -1,2 +1,2 @@
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})};
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
Binary file
Binary file
@@ -1 +1 @@
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"}
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,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};
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","../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"}
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)},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})}}));
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
Binary file
Binary file
@@ -1 +1 @@
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"}
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"}
@@ -1,2 +1,3 @@
1
1
  export * from "./events.js";
2
2
  export * from "./device-detection.js";
3
+ export * from "./persian-tools.js";
@@ -0,0 +1,3 @@
1
+ declare function faToEnDigits(input: string | number): string;
2
+ declare function enToFaDigits(input: string | number): string;
3
+ export { enToFaDigits, faToEnDigits };
@@ -0,0 +1,3 @@
1
+ declare function faToEnDigits(input: string | number): string;
2
+ declare function enToFaDigits(input: string | number): string;
3
+ export { enToFaDigits, faToEnDigits };
package/lib/index.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from "./events.js";
2
- export * from "./device-detection.js";
2
+ export * from "./device-detection.js";
3
+ export * from "./persian-tools.js";
@@ -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
@@ -14,7 +14,7 @@
14
14
  "react component",
15
15
  "event"
16
16
  ],
17
- "version": "0.1.0",
17
+ "version": "0.2.0",
18
18
  "bugs": "https://github.com/javadbat/jb-core/issues",
19
19
  "license": "MIT",
20
20
  "files": [
@@ -0,0 +1,3 @@
1
+ export * from './use-event.js';
2
+ export * from './useInstance.js';
3
+ export * from './useLazyRef.js';
@@ -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
@@ -1 +1 @@
1
- export * from './use-event.js';
1
+ export * from './hooks/index.js';
File without changes