use-mask-input 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -44,28 +44,24 @@ const App = () => {
44
44
  ## Usage with React Hook Forms
45
45
 
46
46
  ```tsx
47
- import React from 'react'
48
- import useMaskInput from 'use-mask-input';
47
+ import React from 'react';
49
48
  import { useForm } from 'react-hook-form';
49
+ import useMaskInput, { maskRegister } from 'use-mask-input';
50
50
 
51
- const App = () => {
52
- const { register, handleSubmit, errors } = useForm();
53
-
54
- const onSubmit = (data) => {
55
- console.log(data);
56
- };
51
+ function App() {
52
+ const { register, handleSubmit } = useForm();
57
53
 
58
- const maskedPhoneRef = useMaskInput({
59
- mask: ['(99) 9999 9999', '(99) 9 9999 9999'],
60
- register: register,
61
- })
54
+ ...
62
55
 
63
56
  return (
64
- <form onSubmit={handleSubmit(onSubmit)}>
65
- <input name="phone" ref={maskedPhoneRef} /> {/* register an input */}
66
- <input type="submit" />
57
+ <form onSubmit={onSubmit}>
58
+ <input
59
+ type="text"
60
+ {...maskRegister(register('phone'), ['(99) 9999 9999', '(99) 9 9999 9999'])}
61
+ />
62
+ <button type="submit">Submit</button>
67
63
  </form>
68
- )
64
+ );
69
65
  }
70
66
  ```
71
67
 
package/dist/index.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export { default } from './useMaskInput';
2
+ export { default as maskRegister } from './maskRegister';
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
2
2
 
3
3
  var react = require('react');
4
4
  var Inputmask = _interopDefault(require('inputmask'));
5
+ var flowright = _interopDefault(require('lodash.flowright'));
5
6
 
6
7
  function _extends() {
7
8
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -42,5 +43,26 @@ var useInputMask = function useInputMask(props) {
42
43
  return ref;
43
44
  };
44
45
 
45
- module.exports = useInputMask;
46
+ var maskRegister = function maskRegister(registerReturn, mask, options) {
47
+ var newRef;
48
+
49
+ if (registerReturn) {
50
+ var ref = registerReturn.ref;
51
+ var maskInput = Inputmask(_extends({
52
+ mask: mask,
53
+ jitMasking: true
54
+ }, options));
55
+ newRef = flowright(ref, function (_ref) {
56
+ maskInput.mask(_ref);
57
+ return _ref;
58
+ });
59
+ }
60
+
61
+ return _extends({}, registerReturn, {
62
+ ref: newRef
63
+ });
64
+ };
65
+
66
+ exports.default = useInputMask;
67
+ exports.maskRegister = maskRegister;
46
68
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/useMaskInput.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport Inputmask from 'inputmask';\n\ninterface UseInputMaskOptions {\n mask: Inputmask.Options['mask']\n register?(element: HTMLElement): void\n options?: Inputmask.Options\n}\n\nconst useInputMask = (props: UseInputMaskOptions) => {\n const { mask, register, options } = props;\n\n const ref = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n const maskInput = Inputmask({\n mask,\n ...options,\n });\n\n maskInput.mask(ref.current);\n\n if (register && ref.current) {\n register(ref.current);\n }\n }, [mask, register, options]);\n\n return ref;\n};\n\nexport default useInputMask;\n"],"names":["useInputMask","props","mask","register","options","ref","useRef","useEffect","current","maskInput","Inputmask"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AASA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD;EACnB,IAAQC,IAAR,GAAoCD,KAApC,CAAQC,IAAR;MAAcC,QAAd,GAAoCF,KAApC,CAAcE,QAAd;MAAwBC,OAAxB,GAAoCH,KAApC,CAAwBG,OAAxB;EAEA,IAAMC,GAAG,GAAGC,YAAM,CAAmB,IAAnB,CAAlB;EAEAC,eAAS,CAAC;IACR,IAAI,CAACF,GAAG,CAACG,OAAT,EAAkB;MAChB;;;IAGF,IAAMC,SAAS,GAAGC,SAAS;MACzBR,IAAI,EAAJA;OACGE,OAFsB,EAA3B;IAKAK,SAAS,CAACP,IAAV,CAAeG,GAAG,CAACG,OAAnB;;IAEA,IAAIL,QAAQ,IAAIE,GAAG,CAACG,OAApB,EAA6B;MAC3BL,QAAQ,CAACE,GAAG,CAACG,OAAL,CAAR;;GAbK,EAeN,CAACN,IAAD,EAAOC,QAAP,EAAiBC,OAAjB,CAfM,CAAT;EAiBA,OAAOC,GAAP;AACD,CAvBD;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/useMaskInput.ts","../src/maskRegister.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport Inputmask from 'inputmask';\n\ninterface UseInputMaskOptions {\n mask: Inputmask.Options['mask']\n register?(element: HTMLElement): void\n options?: Inputmask.Options\n}\n\nconst useInputMask = (props: UseInputMaskOptions) => {\n const { mask, register, options } = props;\n\n const ref = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n const maskInput = Inputmask({\n mask,\n ...options,\n });\n\n maskInput.mask(ref.current);\n\n if (register && ref.current) {\n register(ref.current);\n }\n }, [mask, register, options]);\n\n return ref;\n};\n\nexport default useInputMask;\n","/* eslint-disable @typescript-eslint/space-before-blocks */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport Inputmask from 'inputmask';\nimport { UseFormRegisterReturn } from 'react-hook-form';\nimport flowright from 'lodash.flowright';\n\nconst maskRegister = (\n registerReturn: UseFormRegisterReturn,\n mask: Inputmask.Options['mask'],\n options?: Inputmask.Options,\n) => {\n //\n let newRef;\n\n if (registerReturn){\n const { ref } = registerReturn;\n\n const maskInput = Inputmask({\n mask,\n jitMasking: true,\n ...options,\n });\n\n newRef = flowright(ref, (_ref) => {\n maskInput.mask(_ref);\n return _ref;\n });\n }\n\n return {\n ...registerReturn,\n ref: newRef,\n };\n};\n\nexport default maskRegister;\n"],"names":["useInputMask","props","mask","register","options","ref","useRef","useEffect","current","maskInput","Inputmask","maskRegister","registerReturn","newRef","jitMasking","flowright","_ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AASA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD;EACnB,IAAQC,IAAR,GAAoCD,KAApC,CAAQC,IAAR;MAAcC,QAAd,GAAoCF,KAApC,CAAcE,QAAd;MAAwBC,OAAxB,GAAoCH,KAApC,CAAwBG,OAAxB;EAEA,IAAMC,GAAG,GAAGC,YAAM,CAAmB,IAAnB,CAAlB;EAEAC,eAAS,CAAC;IACR,IAAI,CAACF,GAAG,CAACG,OAAT,EAAkB;MAChB;;;IAGF,IAAMC,SAAS,GAAGC,SAAS;MACzBR,IAAI,EAAJA;OACGE,OAFsB,EAA3B;IAKAK,SAAS,CAACP,IAAV,CAAeG,GAAG,CAACG,OAAnB;;IAEA,IAAIL,QAAQ,IAAIE,GAAG,CAACG,OAApB,EAA6B;MAC3BL,QAAQ,CAACE,GAAG,CAACG,OAAL,CAAR;;GAbK,EAeN,CAACN,IAAD,EAAOC,QAAP,EAAiBC,OAAjB,CAfM,CAAT;EAiBA,OAAOC,GAAP;AACD,CAvBD;;ACHA,IAAMM,YAAY,GAAG,SAAfA,YAAe,CACnBC,cADmB,EAEnBV,IAFmB,EAGnBE,OAHmB;EAMnB,IAAIS,MAAJ;;EAEA,IAAID,cAAJ,EAAmB;IACjB,IAAQP,GAAR,GAAgBO,cAAhB,CAAQP,GAAR;IAEA,IAAMI,SAAS,GAAGC,SAAS;MACzBR,IAAI,EAAJA,IADyB;MAEzBY,UAAU,EAAE;OACTV,OAHsB,EAA3B;IAMAS,MAAM,GAAGE,SAAS,CAACV,GAAD,EAAM,UAACW,IAAD;MACtBP,SAAS,CAACP,IAAV,CAAec,IAAf;MACA,OAAOA,IAAP;KAFgB,CAAlB;;;EAMF,oBACKJ,cADL;IAEEP,GAAG,EAAEQ;;AAER,CA3BD;;;;;"}
@@ -1,5 +1,6 @@
1
1
  import { useRef, useEffect } from 'react';
2
2
  import Inputmask from 'inputmask';
3
+ import flowright from 'lodash.flowright';
3
4
 
4
5
  function _extends() {
5
6
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -40,5 +41,26 @@ var useInputMask = function useInputMask(props) {
40
41
  return ref;
41
42
  };
42
43
 
44
+ var maskRegister = function maskRegister(registerReturn, mask, options) {
45
+ var newRef;
46
+
47
+ if (registerReturn) {
48
+ var ref = registerReturn.ref;
49
+ var maskInput = Inputmask(_extends({
50
+ mask: mask,
51
+ jitMasking: true
52
+ }, options));
53
+ newRef = flowright(ref, function (_ref) {
54
+ maskInput.mask(_ref);
55
+ return _ref;
56
+ });
57
+ }
58
+
59
+ return _extends({}, registerReturn, {
60
+ ref: newRef
61
+ });
62
+ };
63
+
43
64
  export default useInputMask;
65
+ export { maskRegister };
44
66
  //# sourceMappingURL=index.modern.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/useMaskInput.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport Inputmask from 'inputmask';\n\ninterface UseInputMaskOptions {\n mask: Inputmask.Options['mask']\n register?(element: HTMLElement): void\n options?: Inputmask.Options\n}\n\nconst useInputMask = (props: UseInputMaskOptions) => {\n const { mask, register, options } = props;\n\n const ref = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n const maskInput = Inputmask({\n mask,\n ...options,\n });\n\n maskInput.mask(ref.current);\n\n if (register && ref.current) {\n register(ref.current);\n }\n }, [mask, register, options]);\n\n return ref;\n};\n\nexport default useInputMask;\n"],"names":["useInputMask","props","mask","register","options","ref","useRef","useEffect","current","maskInput","Inputmask"],"mappings":";;;;;;;;;;;;;;;;;;;;AASA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD;EACnB,IAAQC,IAAR,GAAoCD,KAApC,CAAQC,IAAR;MAAcC,QAAd,GAAoCF,KAApC,CAAcE,QAAd;MAAwBC,OAAxB,GAAoCH,KAApC,CAAwBG,OAAxB;EAEA,IAAMC,GAAG,GAAGC,MAAM,CAAmB,IAAnB,CAAlB;EAEAC,SAAS,CAAC;IACR,IAAI,CAACF,GAAG,CAACG,OAAT,EAAkB;MAChB;;;IAGF,IAAMC,SAAS,GAAGC,SAAS;MACzBR,IAAI,EAAJA;OACGE,OAFsB,EAA3B;IAKAK,SAAS,CAACP,IAAV,CAAeG,GAAG,CAACG,OAAnB;;IAEA,IAAIL,QAAQ,IAAIE,GAAG,CAACG,OAApB,EAA6B;MAC3BL,QAAQ,CAACE,GAAG,CAACG,OAAL,CAAR;;GAbK,EAeN,CAACN,IAAD,EAAOC,QAAP,EAAiBC,OAAjB,CAfM,CAAT;EAiBA,OAAOC,GAAP;AACD,CAvBD;;;;"}
1
+ {"version":3,"file":"index.modern.js","sources":["../src/useMaskInput.ts","../src/maskRegister.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport Inputmask from 'inputmask';\n\ninterface UseInputMaskOptions {\n mask: Inputmask.Options['mask']\n register?(element: HTMLElement): void\n options?: Inputmask.Options\n}\n\nconst useInputMask = (props: UseInputMaskOptions) => {\n const { mask, register, options } = props;\n\n const ref = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n const maskInput = Inputmask({\n mask,\n ...options,\n });\n\n maskInput.mask(ref.current);\n\n if (register && ref.current) {\n register(ref.current);\n }\n }, [mask, register, options]);\n\n return ref;\n};\n\nexport default useInputMask;\n","/* eslint-disable @typescript-eslint/space-before-blocks */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport Inputmask from 'inputmask';\nimport { UseFormRegisterReturn } from 'react-hook-form';\nimport flowright from 'lodash.flowright';\n\nconst maskRegister = (\n registerReturn: UseFormRegisterReturn,\n mask: Inputmask.Options['mask'],\n options?: Inputmask.Options,\n) => {\n //\n let newRef;\n\n if (registerReturn){\n const { ref } = registerReturn;\n\n const maskInput = Inputmask({\n mask,\n jitMasking: true,\n ...options,\n });\n\n newRef = flowright(ref, (_ref) => {\n maskInput.mask(_ref);\n return _ref;\n });\n }\n\n return {\n ...registerReturn,\n ref: newRef,\n };\n};\n\nexport default maskRegister;\n"],"names":["useInputMask","props","mask","register","options","ref","useRef","useEffect","current","maskInput","Inputmask","maskRegister","registerReturn","newRef","jitMasking","flowright","_ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;AASA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD;EACnB,IAAQC,IAAR,GAAoCD,KAApC,CAAQC,IAAR;MAAcC,QAAd,GAAoCF,KAApC,CAAcE,QAAd;MAAwBC,OAAxB,GAAoCH,KAApC,CAAwBG,OAAxB;EAEA,IAAMC,GAAG,GAAGC,MAAM,CAAmB,IAAnB,CAAlB;EAEAC,SAAS,CAAC;IACR,IAAI,CAACF,GAAG,CAACG,OAAT,EAAkB;MAChB;;;IAGF,IAAMC,SAAS,GAAGC,SAAS;MACzBR,IAAI,EAAJA;OACGE,OAFsB,EAA3B;IAKAK,SAAS,CAACP,IAAV,CAAeG,GAAG,CAACG,OAAnB;;IAEA,IAAIL,QAAQ,IAAIE,GAAG,CAACG,OAApB,EAA6B;MAC3BL,QAAQ,CAACE,GAAG,CAACG,OAAL,CAAR;;GAbK,EAeN,CAACN,IAAD,EAAOC,QAAP,EAAiBC,OAAjB,CAfM,CAAT;EAiBA,OAAOC,GAAP;AACD,CAvBD;;ACHA,IAAMM,YAAY,GAAG,SAAfA,YAAe,CACnBC,cADmB,EAEnBV,IAFmB,EAGnBE,OAHmB;EAMnB,IAAIS,MAAJ;;EAEA,IAAID,cAAJ,EAAmB;IACjB,IAAQP,GAAR,GAAgBO,cAAhB,CAAQP,GAAR;IAEA,IAAMI,SAAS,GAAGC,SAAS;MACzBR,IAAI,EAAJA,IADyB;MAEzBY,UAAU,EAAE;OACTV,OAHsB,EAA3B;IAMAS,MAAM,GAAGE,SAAS,CAACV,GAAD,EAAM,UAACW,IAAD;MACtBP,SAAS,CAACP,IAAV,CAAec,IAAf;MACA,OAAOA,IAAP;KAFgB,CAAlB;;;EAMF,oBACKJ,cADL;IAEEP,GAAG,EAAEQ;;AAER,CA3BD;;;;;"}
@@ -0,0 +1,16 @@
1
+ import Inputmask from 'inputmask';
2
+ import { UseFormRegisterReturn } from 'react-hook-form';
3
+ declare const maskRegister: (registerReturn: UseFormRegisterReturn, mask: Inputmask.Options['mask'], options?: Inputmask.Options | undefined) => {
4
+ ref: ((_ref: any) => void) | undefined;
5
+ onChange: import("react-hook-form").ChangeHandler;
6
+ onBlur: import("react-hook-form").ChangeHandler;
7
+ name: string;
8
+ min?: string | number | undefined;
9
+ max?: string | number | undefined;
10
+ maxLength?: number | undefined;
11
+ minLength?: number | undefined;
12
+ pattern?: string | undefined;
13
+ required?: boolean | undefined;
14
+ disabled?: boolean | undefined;
15
+ };
16
+ export default maskRegister;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "use-mask-input",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "A react Hook for build elegant input masks. Compatible with React Hook Form",
5
5
  "author": "eduardoborges",
6
6
  "license": "MIT",
@@ -35,6 +35,7 @@
35
35
  "@semantic-release/release-notes-generator": "10.0.3",
36
36
  "@types/inputmask": "^5.0.3",
37
37
  "@types/jest": "29.0.3",
38
+ "@types/lodash.flowright": "^3.5.7",
38
39
  "@types/node": "18",
39
40
  "@types/react": "^17.x",
40
41
  "@types/react-dom": "^17.x",
@@ -60,7 +61,10 @@
60
61
  "dist"
61
62
  ],
62
63
  "dependencies": {
63
- "inputmask": "^5.0.7"
64
+ "inputmask": "^5.0.7",
65
+ "lodash.compose": "^2.4.1",
66
+ "lodash.flowright": "^3.5.0",
67
+ "react-hook-form": "^7.36.1"
64
68
  },
65
69
  "bundleDependencies": [
66
70
  "inputmask"