use-mask-input 3.10.1 → 3.10.2

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.
Files changed (46) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/dist/antd.cjs +1 -65
  3. package/dist/antd.cjs.map +1 -1
  4. package/dist/antd.d.cts +12 -10
  5. package/dist/{antd.d.ts → antd.d.mts} +12 -10
  6. package/dist/antd.mjs +2 -0
  7. package/dist/antd.mjs.map +1 -0
  8. package/dist/index-BmKzoe0X.d.cts +836 -0
  9. package/dist/index-BmKzoe0X.d.mts +836 -0
  10. package/dist/index.cjs +1 -173
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +18 -15
  13. package/dist/{index.d.ts → index.d.mts} +18 -15
  14. package/dist/index.mjs +2 -0
  15. package/dist/index.mjs.map +1 -0
  16. package/dist/withMask-VWeBqi_u.cjs +2 -0
  17. package/dist/withMask-VWeBqi_u.cjs.map +1 -0
  18. package/dist/withMask-jrErtLYS.mjs +2 -0
  19. package/dist/withMask-jrErtLYS.mjs.map +1 -0
  20. package/package.json +42 -22
  21. package/dist/antd.js +0 -63
  22. package/dist/antd.js.map +0 -1
  23. package/dist/chunk-PMBRAXS4.cjs +0 -5876
  24. package/dist/chunk-PMBRAXS4.cjs.map +0 -1
  25. package/dist/chunk-XSTQDKDU.js +0 -5866
  26. package/dist/chunk-XSTQDKDU.js.map +0 -1
  27. package/dist/index-D8KkaDbQ.d.cts +0 -596
  28. package/dist/index-D8KkaDbQ.d.ts +0 -596
  29. package/dist/index.js +0 -165
  30. package/dist/index.js.map +0 -1
  31. package/src/antd/useHookFormMaskAntd.spec.ts +0 -181
  32. package/src/antd/useMaskInputAntd-server.spec.tsx +0 -37
  33. package/src/antd/useMaskInputAntd.spec.tsx +0 -131
  34. package/src/api/useHookFormMask.spec.ts +0 -259
  35. package/src/api/useMaskInput-server.spec.tsx +0 -30
  36. package/src/api/useMaskInput.spec.tsx +0 -238
  37. package/src/api/withHookFormMask.spec.ts +0 -179
  38. package/src/api/withMask.spec.ts +0 -137
  39. package/src/api/withTanStackFormMask.spec.ts +0 -76
  40. package/src/core/elementResolver.spec.ts +0 -175
  41. package/src/core/inputmask.spec.ts +0 -21
  42. package/src/core/maskConfig.spec.ts +0 -208
  43. package/src/core/maskEngine.spec.ts +0 -114
  44. package/src/utils/flow.spec.ts +0 -57
  45. package/src/utils/isServer.spec.ts +0 -15
  46. package/src/utils/moduleInterop.spec.ts +0 -37
package/CHANGELOG.md CHANGED
@@ -1,4 +1,8 @@
1
- ## [3.6.0](https://github.com/eduardoborges/use-mask-input/compare/3.5.2...3.6.0) (2026-01-13)
1
+ ## 3.10.2
2
+
3
+ ### Patch Changes
4
+
5
+ - 639985b: Add npm license metadata to the package manifest.
2
6
 
3
7
  ## 3.10.1
4
8
 
@@ -91,6 +95,8 @@
91
95
 
92
96
  - add support to alphanumerial brazilian & update inputmask cnpj ([#145](https://github.com/eduardoborges/use-mask-input/issues/145)) ([64dbc92](https://github.com/eduardoborges/use-mask-input/commit/64dbc9256af8b16461acbacf1c574e43f6cf195a))
93
97
 
98
+ ## [3.6.0](https://github.com/eduardoborges/use-mask-input/compare/3.5.2...3.6.0) (2026-01-13)
99
+
94
100
  ## [3.5.2](https://github.com/eduardoborges/use-mask-input/compare/3.5.1...3.5.2) (2025-09-24)
95
101
 
96
102
  ### Bug Fixes
package/dist/antd.cjs CHANGED
@@ -1,66 +1,2 @@
1
- 'use strict';
2
-
3
- var chunkPMBRAXS4_cjs = require('./chunk-PMBRAXS4.cjs');
4
- var react = require('react');
5
-
6
- function useHookFormMaskAntd(registerFn) {
7
- return react.useMemo(() => {
8
- const refCache = /* @__PURE__ */ new Map();
9
- return (fieldName, mask, options) => {
10
- if (!registerFn) throw new Error("registerFn is required");
11
- const registerReturn = registerFn(fieldName, options);
12
- const { ref } = registerReturn;
13
- const cacheKey = chunkPMBRAXS4_cjs.makeMaskCacheKey(fieldName, mask);
14
- if (!refCache.has(cacheKey)) {
15
- const refWithMask = (inputRef) => {
16
- const element = inputRef ? chunkPMBRAXS4_cjs.resolveInputRef(inputRef.input) : null;
17
- if (element) chunkPMBRAXS4_cjs.applyMaskToElement(element, mask, options);
18
- if (ref) ref(element);
19
- };
20
- refCache.set(cacheKey, refWithMask);
21
- }
22
- const result = {
23
- ...registerReturn,
24
- ref: refCache.get(cacheKey)
25
- };
26
- chunkPMBRAXS4_cjs.setPrevRef(result, ref);
27
- return result;
28
- };
29
- }, [registerFn]);
30
- }
31
- function useMaskInputAntd(props) {
32
- const { mask, register, options } = props;
33
- const ref = react.useRef(null);
34
- const maskRef = react.useRef(mask);
35
- const optionsRef = react.useRef(options);
36
- const maskedElementRef = react.useRef(null);
37
- const unmaskedValue = react.useCallback(() => chunkPMBRAXS4_cjs.getUnmaskedValue(ref.current), []);
38
- maskRef.current = mask;
39
- optionsRef.current = options;
40
- const refCallback = react.useCallback((input) => {
41
- if (!input) {
42
- ref.current = null;
43
- return;
44
- }
45
- ref.current = chunkPMBRAXS4_cjs.resolveInputRef(input.input);
46
- if (ref.current && ref.current !== maskedElementRef.current) {
47
- chunkPMBRAXS4_cjs.withMask(maskRef.current, optionsRef.current)(ref.current);
48
- maskedElementRef.current = ref.current;
49
- }
50
- }, []);
51
- react.useEffect(() => {
52
- if (chunkPMBRAXS4_cjs.isServer_default || !ref.current || !register) return;
53
- register(ref.current);
54
- }, [register]);
55
- if (chunkPMBRAXS4_cjs.isServer_default) {
56
- const noop = (() => {
57
- });
58
- return chunkPMBRAXS4_cjs.setUnmaskedValue(noop, () => "");
59
- }
60
- return chunkPMBRAXS4_cjs.setUnmaskedValue(refCallback, unmaskedValue);
61
- }
62
-
63
- exports.useHookFormMaskAntd = useHookFormMaskAntd;
64
- exports.useMaskInputAntd = useMaskInputAntd;
65
- //# sourceMappingURL=antd.cjs.map
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./withMask-VWeBqi_u.cjs");let t=require("react");function n(n){return(0,t.useMemo)(()=>{let t=new Map;return(r,i,a)=>{if(!n)throw Error(`registerFn is required`);let o=n(r,a),{ref:s}=o,c=e.i(r,i);t.has(c)||t.set(c,t=>{let n=t?e.l(t.input):null;n&&e.n(n,i,a),s&&s(n)});let l={...o,ref:t.get(c)};return e.a(l,s),l}},[n])}function r(n){let{mask:r,register:i,options:a}=n,o=(0,t.useRef)(null),s=(0,t.useRef)(r),c=(0,t.useRef)(a),l=(0,t.useRef)(null),u=(0,t.useCallback)(()=>e.r(o.current),[]);s.current=r,c.current=a;let d=(0,t.useCallback)(t=>{if(!t){o.current=null;return}o.current=e.l(t.input),o.current&&o.current!==l.current&&(e.t(s.current,c.current)(o.current),l.current=o.current)},[]);return(0,t.useEffect)(()=>{e.s||!o.current||!i||i(o.current)},[i]),e.s?e.o((()=>{}),()=>``):e.o(d,u)}exports.useHookFormMaskAntd=n,exports.useMaskInputAntd=r;
66
2
  //# sourceMappingURL=antd.cjs.map
package/dist/antd.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/antd/useHookFormMaskAntd.ts","../src/antd/useMaskInputAntd.ts"],"names":["useMemo","makeMaskCacheKey","resolveInputRef","applyMaskToElement","setPrevRef","useRef","useCallback","getUnmaskedValue","withMask","useEffect","isServer_default","setUnmaskedValue"],"mappings":"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","file":"antd.cjs","sourcesContent":["import { useMemo } from 'react';\n\nimport { applyMaskToElement, resolveInputRef } from '../core';\nimport { makeMaskCacheKey, setPrevRef } from '../utils';\n\nimport type { InputRef } from 'antd';\nimport type { RefCallback } from 'react';\nimport type {\n FieldValues, Path,\n RegisterOptions,\n UseFormRegister,\n} from 'react-hook-form';\n\nimport type { Mask, Options, UseHookFormMaskReturn } from '../types';\n\nexport type UseHookFormMaskAntdReturn<T extends FieldValues> = Omit<\n UseHookFormMaskReturn<T>,\n 'ref'\n> & { ref: RefCallback<InputRef | null> };\n\n/**\n * Ant Design version of useHookFormMask.\n * Creates a masked register that works with Ant Design Input (ref receives InputRef).\n *\n * @template T - The form data type\n * @template D - The register options type\n * @param registerFn - The register function from useForm hook\n * @returns A function that registers a field with mask support for Ant Design Input\n */\nexport default function useHookFormMaskAntd<\n T extends FieldValues, D extends RegisterOptions,\n>(registerFn: UseFormRegister<T>): ((fieldName: Path<T>, mask: Mask, options?: (\n D & Options) | Options | D) => UseHookFormMaskAntdReturn<T>) {\n //\n return useMemo(() => {\n const refCache = new Map<string, RefCallback<InputRef | null>>();\n\n return (fieldName: Path<T>, mask: Mask, options?: (\n D & Options) | Options | D): UseHookFormMaskAntdReturn<T> => {\n if (!registerFn) throw new Error('registerFn is required');\n\n const registerReturn = registerFn(fieldName, options as Options);\n const { ref } = registerReturn as UseHookFormMaskReturn<T>;\n\n const cacheKey = makeMaskCacheKey(fieldName, mask);\n\n if (!refCache.has(cacheKey)) {\n const refWithMask: RefCallback<InputRef | null> = (inputRef) => {\n const element = inputRef ? resolveInputRef(inputRef.input) : null;\n if (element) applyMaskToElement(element, mask, options as Options);\n if (ref) ref(element);\n };\n refCache.set(cacheKey, refWithMask);\n }\n\n const result = {\n ...registerReturn,\n ref: refCache.get(cacheKey),\n } as UseHookFormMaskAntdReturn<T>;\n\n setPrevRef(result, ref);\n\n return result;\n };\n }, [registerFn]);\n}\n","import { useCallback, useEffect, useRef } from 'react';\n\nimport withMask from '../api/withMask';\nimport { resolveInputRef } from '../core';\nimport isServer from '../utils/isServer';\nimport { getUnmaskedValue, setUnmaskedValue } from '../utils';\n\nimport type { InputRef } from 'antd';\n\nimport type { Mask, Options, UnmaskedValueApi } from '../types';\n\ntype UseMaskInputAntdReturn = ((input: InputRef | null) => void) & UnmaskedValueApi;\n\ninterface UseMaskInputOptions {\n mask: Mask;\n register?: (element: HTMLElement) => void;\n options?: Options;\n}\n\n/**\n * React hook for applying input masks to Ant Design form elements.\n *\n * @param props - Configuration object\n * @param props.mask - The mask pattern to apply\n * @param props.register - Optional callback that receives the element\n * @param props.options - Optional mask configuration options\n * @returns A ref callback function to attach to the Ant Design Input element\n */\nexport default function useMaskInputAntd(props: UseMaskInputOptions): UseMaskInputAntdReturn {\n const { mask, register, options } = props;\n const ref = useRef<HTMLInputElement | null>(null);\n const maskRef = useRef(mask);\n const optionsRef = useRef(options);\n const maskedElementRef = useRef<HTMLInputElement | null>(null);\n const unmaskedValue = useCallback(() => getUnmaskedValue(ref.current), []);\n\n maskRef.current = mask;\n optionsRef.current = options;\n\n const refCallback = useCallback((input: InputRef | null): void => {\n if (!input) {\n ref.current = null;\n return;\n }\n\n ref.current = resolveInputRef(input.input);\n\n if (ref.current && ref.current !== maskedElementRef.current) {\n withMask(maskRef.current, optionsRef.current)(ref.current);\n maskedElementRef.current = ref.current;\n }\n }, []);\n\n useEffect(() => {\n if (isServer || !ref.current || !register) return;\n register(ref.current);\n }, [register]);\n\n if (isServer) {\n const noop = (() => {\n // server doesn't have dom, so just do nothing\n }) as unknown as UseMaskInputAntdReturn;\n\n return setUnmaskedValue(noop, () => '');\n }\n\n return setUnmaskedValue(refCallback as UseMaskInputAntdReturn, unmaskedValue);\n}\n"]}
1
+ {"version":3,"file":"antd.cjs","names":["makeMaskCacheKey","resolveInputRef","getUnmaskedValue","resolveInputRef","isServer","setUnmaskedValue"],"sources":["../src/antd/useHookFormMaskAntd.ts","../src/antd/useMaskInputAntd.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { applyMaskToElement, resolveInputRef } from '../core';\nimport { makeMaskCacheKey, setPrevRef } from '../utils';\n\nimport type { InputRef } from 'antd';\nimport type { RefCallback } from 'react';\nimport type {\n FieldValues, Path,\n RegisterOptions,\n UseFormRegister,\n} from 'react-hook-form';\n\nimport type { Mask, Options, UseHookFormMaskReturn } from '../types';\n\nexport type UseHookFormMaskAntdReturn<T extends FieldValues> = Omit<\n UseHookFormMaskReturn<T>,\n 'ref'\n> & { ref: RefCallback<InputRef | null> };\n\n/**\n * Ant Design version of useHookFormMask.\n * Creates a masked register that works with Ant Design Input (ref receives InputRef).\n *\n * @template T - The form data type\n * @template D - The register options type\n * @param registerFn - The register function from useForm hook\n * @returns A function that registers a field with mask support for Ant Design Input\n */\nexport default function useHookFormMaskAntd<\n T extends FieldValues, D extends RegisterOptions,\n>(registerFn: UseFormRegister<T>): ((fieldName: Path<T>, mask: Mask, options?: (\n D & Options) | Options | D) => UseHookFormMaskAntdReturn<T>) {\n //\n return useMemo(() => {\n const refCache = new Map<string, RefCallback<InputRef | null>>();\n\n return (fieldName: Path<T>, mask: Mask, options?: (\n D & Options) | Options | D): UseHookFormMaskAntdReturn<T> => {\n if (!registerFn) throw new Error('registerFn is required');\n\n const registerReturn = registerFn(fieldName, options as Options);\n const { ref } = registerReturn as UseHookFormMaskReturn<T>;\n\n const cacheKey = makeMaskCacheKey(fieldName, mask);\n\n if (!refCache.has(cacheKey)) {\n const refWithMask: RefCallback<InputRef | null> = (inputRef) => {\n const element = inputRef ? resolveInputRef(inputRef.input) : null;\n if (element) applyMaskToElement(element, mask, options as Options);\n if (ref) ref(element);\n };\n refCache.set(cacheKey, refWithMask);\n }\n\n const result = {\n ...registerReturn,\n ref: refCache.get(cacheKey),\n } as UseHookFormMaskAntdReturn<T>;\n\n setPrevRef(result, ref);\n\n return result;\n };\n }, [registerFn]);\n}\n","import { useCallback, useEffect, useRef } from 'react';\n\nimport withMask from '../api/withMask';\nimport { resolveInputRef } from '../core';\nimport isServer from '../utils/isServer';\nimport { getUnmaskedValue, setUnmaskedValue } from '../utils';\n\nimport type { InputRef } from 'antd';\n\nimport type { Mask, Options, UnmaskedValueApi } from '../types';\n\ntype UseMaskInputAntdReturn = ((input: InputRef | null) => void) & UnmaskedValueApi;\n\ninterface UseMaskInputOptions {\n mask: Mask;\n register?: (element: HTMLElement) => void;\n options?: Options;\n}\n\n/**\n * React hook for applying input masks to Ant Design form elements.\n *\n * @param props - Configuration object\n * @param props.mask - The mask pattern to apply\n * @param props.register - Optional callback that receives the element\n * @param props.options - Optional mask configuration options\n * @returns A ref callback function to attach to the Ant Design Input element\n */\nexport default function useMaskInputAntd(props: UseMaskInputOptions): UseMaskInputAntdReturn {\n const { mask, register, options } = props;\n const ref = useRef<HTMLInputElement | null>(null);\n const maskRef = useRef(mask);\n const optionsRef = useRef(options);\n const maskedElementRef = useRef<HTMLInputElement | null>(null);\n const unmaskedValue = useCallback(() => getUnmaskedValue(ref.current), []);\n\n maskRef.current = mask;\n optionsRef.current = options;\n\n const refCallback = useCallback((input: InputRef | null): void => {\n if (!input) {\n ref.current = null;\n return;\n }\n\n ref.current = resolveInputRef(input.input);\n\n if (ref.current && ref.current !== maskedElementRef.current) {\n withMask(maskRef.current, optionsRef.current)(ref.current);\n maskedElementRef.current = ref.current;\n }\n }, []);\n\n useEffect(() => {\n if (isServer || !ref.current || !register) return;\n register(ref.current);\n }, [register]);\n\n if (isServer) {\n const noop = (() => {\n // server doesn't have dom, so just do nothing\n }) as unknown as UseMaskInputAntdReturn;\n\n return setUnmaskedValue(noop, () => '');\n }\n\n return setUnmaskedValue(refCallback as UseMaskInputAntdReturn, unmaskedValue);\n}\n"],"mappings":"qIA6BA,SAAwB,EAEtB,EAC6D,CAE7D,OAAA,EAAA,EAAA,aAAqB,CACnB,IAAM,EAAW,IAAI,IAErB,OAAQ,EAAoB,EAAY,IACuB,CAC7D,GAAI,CAAC,EAAY,MAAU,MAAM,wBAAwB,EAEzD,IAAM,EAAiB,EAAW,EAAW,CAAkB,EACzD,CAAE,OAAQ,EAEV,EAAWA,EAAAA,EAAiB,EAAW,CAAI,EAE5C,EAAS,IAAI,CAAQ,GAMxB,EAAS,IAAI,EALsC,GAAa,CAC9D,IAAM,EAAU,EAAWC,EAAAA,EAAgB,EAAS,KAAK,EAAI,KACzD,GAAS,EAAA,EAAmB,EAAS,EAAM,CAAkB,EAC7D,GAAK,EAAI,CAAO,CACtB,CACkC,EAGpC,IAAM,EAAS,CACb,GAAG,EACH,IAAK,EAAS,IAAI,CAAQ,CAC5B,EAIA,OAFA,EAAA,EAAW,EAAQ,CAAG,EAEf,CACT,CACF,EAAG,CAAC,CAAU,CAAC,CACjB,CCrCA,SAAwB,EAAiB,EAAoD,CAC3F,GAAM,CAAE,OAAM,WAAU,WAAY,EAC9B,GAAA,EAAA,EAAA,QAAsC,IAAI,EAC1C,GAAA,EAAA,EAAA,QAAiB,CAAI,EACrB,GAAA,EAAA,EAAA,QAAoB,CAAO,EAC3B,GAAA,EAAA,EAAA,QAAmD,IAAI,EACvD,GAAA,EAAA,EAAA,iBAAkCC,EAAAA,EAAiB,EAAI,OAAO,EAAG,CAAC,CAAC,EAEzE,EAAQ,QAAU,EAClB,EAAW,QAAU,EAErB,IAAM,GAAA,EAAA,EAAA,aAA2B,GAAiC,CAChE,GAAI,CAAC,EAAO,CACV,EAAI,QAAU,KACd,MACF,CAEA,EAAI,QAAUC,EAAAA,EAAgB,EAAM,KAAK,EAErC,EAAI,SAAW,EAAI,UAAY,EAAiB,UAClD,EAAA,EAAS,EAAQ,QAAS,EAAW,OAAO,EAAE,EAAI,OAAO,EACzD,EAAiB,QAAU,EAAI,QAEnC,EAAG,CAAC,CAAC,EAeL,OAbA,EAAA,EAAA,eAAgB,CACVC,EAAAA,GAAY,CAAC,EAAI,SAAW,CAAC,GACjC,EAAS,EAAI,OAAO,CACtB,EAAG,CAAC,CAAQ,CAAC,EAETA,EAAAA,EAKKC,EAAAA,OAJa,CAEpB,OAEoC,EAAE,EAGjCA,EAAAA,EAAiB,EAAuC,CAAa,CAC9E"}
package/dist/antd.d.cts CHANGED
@@ -1,10 +1,10 @@
1
- import { InputRef } from 'antd';
2
- import { RefCallback } from 'react';
3
- import { FieldValues, RegisterOptions, UseFormRegister, Path } from 'react-hook-form';
4
- import { a as UseHookFormMaskReturn, M as Mask, O as Options, c as UnmaskedValueApi } from './index-D8KkaDbQ.cjs';
1
+ import { a as UnmaskedValueApi, d as UseFormRegister, l as RegisterOptions, n as Mask, o as UseHookFormMaskReturn, p as Path, r as Options, u as FieldValues } from "./index-BmKzoe0X.cjs";
2
+ import { InputRef } from "antd";
3
+ import { RefCallback } from "react";
5
4
 
5
+ //#region src/antd/useHookFormMaskAntd.d.ts
6
6
  type UseHookFormMaskAntdReturn<T extends FieldValues> = Omit<UseHookFormMaskReturn<T>, 'ref'> & {
7
- ref: RefCallback<InputRef | null>;
7
+ ref: RefCallback<InputRef | null>;
8
8
  };
9
9
  /**
10
10
  * Ant Design version of useHookFormMask.
@@ -16,12 +16,13 @@ type UseHookFormMaskAntdReturn<T extends FieldValues> = Omit<UseHookFormMaskRetu
16
16
  * @returns A function that registers a field with mask support for Ant Design Input
17
17
  */
18
18
  declare function useHookFormMaskAntd<T extends FieldValues, D extends RegisterOptions>(registerFn: UseFormRegister<T>): ((fieldName: Path<T>, mask: Mask, options?: (D & Options) | Options | D) => UseHookFormMaskAntdReturn<T>);
19
-
19
+ //#endregion
20
+ //#region src/antd/useMaskInputAntd.d.ts
20
21
  type UseMaskInputAntdReturn = ((input: InputRef | null) => void) & UnmaskedValueApi;
21
22
  interface UseMaskInputOptions {
22
- mask: Mask;
23
- register?: (element: HTMLElement) => void;
24
- options?: Options;
23
+ mask: Mask;
24
+ register?: (element: HTMLElement) => void;
25
+ options?: Options;
25
26
  }
26
27
  /**
27
28
  * React hook for applying input masks to Ant Design form elements.
@@ -33,5 +34,6 @@ interface UseMaskInputOptions {
33
34
  * @returns A ref callback function to attach to the Ant Design Input element
34
35
  */
35
36
  declare function useMaskInputAntd(props: UseMaskInputOptions): UseMaskInputAntdReturn;
36
-
37
+ //#endregion
37
38
  export { type UseHookFormMaskAntdReturn, useHookFormMaskAntd, useMaskInputAntd };
39
+ //# sourceMappingURL=antd.d.cts.map
@@ -1,10 +1,10 @@
1
- import { InputRef } from 'antd';
2
- import { RefCallback } from 'react';
3
- import { FieldValues, RegisterOptions, UseFormRegister, Path } from 'react-hook-form';
4
- import { a as UseHookFormMaskReturn, M as Mask, O as Options, c as UnmaskedValueApi } from './index-D8KkaDbQ.js';
1
+ import { a as UnmaskedValueApi, d as UseFormRegister, l as RegisterOptions, n as Mask, o as UseHookFormMaskReturn, p as Path, r as Options, u as FieldValues } from "./index-BmKzoe0X.mjs";
2
+ import { RefCallback } from "react";
3
+ import { InputRef } from "antd";
5
4
 
5
+ //#region src/antd/useHookFormMaskAntd.d.ts
6
6
  type UseHookFormMaskAntdReturn<T extends FieldValues> = Omit<UseHookFormMaskReturn<T>, 'ref'> & {
7
- ref: RefCallback<InputRef | null>;
7
+ ref: RefCallback<InputRef | null>;
8
8
  };
9
9
  /**
10
10
  * Ant Design version of useHookFormMask.
@@ -16,12 +16,13 @@ type UseHookFormMaskAntdReturn<T extends FieldValues> = Omit<UseHookFormMaskRetu
16
16
  * @returns A function that registers a field with mask support for Ant Design Input
17
17
  */
18
18
  declare function useHookFormMaskAntd<T extends FieldValues, D extends RegisterOptions>(registerFn: UseFormRegister<T>): ((fieldName: Path<T>, mask: Mask, options?: (D & Options) | Options | D) => UseHookFormMaskAntdReturn<T>);
19
-
19
+ //#endregion
20
+ //#region src/antd/useMaskInputAntd.d.ts
20
21
  type UseMaskInputAntdReturn = ((input: InputRef | null) => void) & UnmaskedValueApi;
21
22
  interface UseMaskInputOptions {
22
- mask: Mask;
23
- register?: (element: HTMLElement) => void;
24
- options?: Options;
23
+ mask: Mask;
24
+ register?: (element: HTMLElement) => void;
25
+ options?: Options;
25
26
  }
26
27
  /**
27
28
  * React hook for applying input masks to Ant Design form elements.
@@ -33,5 +34,6 @@ interface UseMaskInputOptions {
33
34
  * @returns A ref callback function to attach to the Ant Design Input element
34
35
  */
35
36
  declare function useMaskInputAntd(props: UseMaskInputOptions): UseMaskInputAntdReturn;
36
-
37
+ //#endregion
37
38
  export { type UseHookFormMaskAntdReturn, useHookFormMaskAntd, useMaskInputAntd };
39
+ //# sourceMappingURL=antd.d.mts.map
package/dist/antd.mjs ADDED
@@ -0,0 +1,2 @@
1
+ import{a as e,i as t,l as n,n as r,o as i,r as a,s as o,t as s}from"./withMask-jrErtLYS.mjs";import{useCallback as c,useEffect as l,useMemo as u,useRef as d}from"react";function f(i){return u(()=>{let a=new Map;return(o,s,c)=>{if(!i)throw Error(`registerFn is required`);let l=i(o,c),{ref:u}=l,d=t(o,s);a.has(d)||a.set(d,e=>{let t=e?n(e.input):null;t&&r(t,s,c),u&&u(t)});let f={...l,ref:a.get(d)};return e(f,u),f}},[i])}function p(e){let{mask:t,register:r,options:u}=e,f=d(null),p=d(t),m=d(u),h=d(null),g=c(()=>a(f.current),[]);p.current=t,m.current=u;let _=c(e=>{if(!e){f.current=null;return}f.current=n(e.input),f.current&&f.current!==h.current&&(s(p.current,m.current)(f.current),h.current=f.current)},[]);return l(()=>{o||!f.current||!r||r(f.current)},[r]),o?i((()=>{}),()=>``):i(_,g)}export{f as useHookFormMaskAntd,p as useMaskInputAntd};
2
+ //# sourceMappingURL=antd.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antd.mjs","names":[],"sources":["../src/antd/useHookFormMaskAntd.ts","../src/antd/useMaskInputAntd.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { applyMaskToElement, resolveInputRef } from '../core';\nimport { makeMaskCacheKey, setPrevRef } from '../utils';\n\nimport type { InputRef } from 'antd';\nimport type { RefCallback } from 'react';\nimport type {\n FieldValues, Path,\n RegisterOptions,\n UseFormRegister,\n} from 'react-hook-form';\n\nimport type { Mask, Options, UseHookFormMaskReturn } from '../types';\n\nexport type UseHookFormMaskAntdReturn<T extends FieldValues> = Omit<\n UseHookFormMaskReturn<T>,\n 'ref'\n> & { ref: RefCallback<InputRef | null> };\n\n/**\n * Ant Design version of useHookFormMask.\n * Creates a masked register that works with Ant Design Input (ref receives InputRef).\n *\n * @template T - The form data type\n * @template D - The register options type\n * @param registerFn - The register function from useForm hook\n * @returns A function that registers a field with mask support for Ant Design Input\n */\nexport default function useHookFormMaskAntd<\n T extends FieldValues, D extends RegisterOptions,\n>(registerFn: UseFormRegister<T>): ((fieldName: Path<T>, mask: Mask, options?: (\n D & Options) | Options | D) => UseHookFormMaskAntdReturn<T>) {\n //\n return useMemo(() => {\n const refCache = new Map<string, RefCallback<InputRef | null>>();\n\n return (fieldName: Path<T>, mask: Mask, options?: (\n D & Options) | Options | D): UseHookFormMaskAntdReturn<T> => {\n if (!registerFn) throw new Error('registerFn is required');\n\n const registerReturn = registerFn(fieldName, options as Options);\n const { ref } = registerReturn as UseHookFormMaskReturn<T>;\n\n const cacheKey = makeMaskCacheKey(fieldName, mask);\n\n if (!refCache.has(cacheKey)) {\n const refWithMask: RefCallback<InputRef | null> = (inputRef) => {\n const element = inputRef ? resolveInputRef(inputRef.input) : null;\n if (element) applyMaskToElement(element, mask, options as Options);\n if (ref) ref(element);\n };\n refCache.set(cacheKey, refWithMask);\n }\n\n const result = {\n ...registerReturn,\n ref: refCache.get(cacheKey),\n } as UseHookFormMaskAntdReturn<T>;\n\n setPrevRef(result, ref);\n\n return result;\n };\n }, [registerFn]);\n}\n","import { useCallback, useEffect, useRef } from 'react';\n\nimport withMask from '../api/withMask';\nimport { resolveInputRef } from '../core';\nimport isServer from '../utils/isServer';\nimport { getUnmaskedValue, setUnmaskedValue } from '../utils';\n\nimport type { InputRef } from 'antd';\n\nimport type { Mask, Options, UnmaskedValueApi } from '../types';\n\ntype UseMaskInputAntdReturn = ((input: InputRef | null) => void) & UnmaskedValueApi;\n\ninterface UseMaskInputOptions {\n mask: Mask;\n register?: (element: HTMLElement) => void;\n options?: Options;\n}\n\n/**\n * React hook for applying input masks to Ant Design form elements.\n *\n * @param props - Configuration object\n * @param props.mask - The mask pattern to apply\n * @param props.register - Optional callback that receives the element\n * @param props.options - Optional mask configuration options\n * @returns A ref callback function to attach to the Ant Design Input element\n */\nexport default function useMaskInputAntd(props: UseMaskInputOptions): UseMaskInputAntdReturn {\n const { mask, register, options } = props;\n const ref = useRef<HTMLInputElement | null>(null);\n const maskRef = useRef(mask);\n const optionsRef = useRef(options);\n const maskedElementRef = useRef<HTMLInputElement | null>(null);\n const unmaskedValue = useCallback(() => getUnmaskedValue(ref.current), []);\n\n maskRef.current = mask;\n optionsRef.current = options;\n\n const refCallback = useCallback((input: InputRef | null): void => {\n if (!input) {\n ref.current = null;\n return;\n }\n\n ref.current = resolveInputRef(input.input);\n\n if (ref.current && ref.current !== maskedElementRef.current) {\n withMask(maskRef.current, optionsRef.current)(ref.current);\n maskedElementRef.current = ref.current;\n }\n }, []);\n\n useEffect(() => {\n if (isServer || !ref.current || !register) return;\n register(ref.current);\n }, [register]);\n\n if (isServer) {\n const noop = (() => {\n // server doesn't have dom, so just do nothing\n }) as unknown as UseMaskInputAntdReturn;\n\n return setUnmaskedValue(noop, () => '');\n }\n\n return setUnmaskedValue(refCallback as UseMaskInputAntdReturn, unmaskedValue);\n}\n"],"mappings":"yKA6BA,SAAwB,EAEtB,EAC6D,CAE7D,OAAO,MAAc,CACnB,IAAM,EAAW,IAAI,IAErB,OAAQ,EAAoB,EAAY,IACuB,CAC7D,GAAI,CAAC,EAAY,MAAU,MAAM,wBAAwB,EAEzD,IAAM,EAAiB,EAAW,EAAW,CAAkB,EACzD,CAAE,OAAQ,EAEV,EAAW,EAAiB,EAAW,CAAI,EAE5C,EAAS,IAAI,CAAQ,GAMxB,EAAS,IAAI,EALsC,GAAa,CAC9D,IAAM,EAAU,EAAW,EAAgB,EAAS,KAAK,EAAI,KACzD,GAAS,EAAmB,EAAS,EAAM,CAAkB,EAC7D,GAAK,EAAI,CAAO,CACtB,CACkC,EAGpC,IAAM,EAAS,CACb,GAAG,EACH,IAAK,EAAS,IAAI,CAAQ,CAC5B,EAIA,OAFA,EAAW,EAAQ,CAAG,EAEf,CACT,CACF,EAAG,CAAC,CAAU,CAAC,CACjB,CCrCA,SAAwB,EAAiB,EAAoD,CAC3F,GAAM,CAAE,OAAM,WAAU,WAAY,EAC9B,EAAM,EAAgC,IAAI,EAC1C,EAAU,EAAO,CAAI,EACrB,EAAa,EAAO,CAAO,EAC3B,EAAmB,EAAgC,IAAI,EACvD,EAAgB,MAAkB,EAAiB,EAAI,OAAO,EAAG,CAAC,CAAC,EAEzE,EAAQ,QAAU,EAClB,EAAW,QAAU,EAErB,IAAM,EAAc,EAAa,GAAiC,CAChE,GAAI,CAAC,EAAO,CACV,EAAI,QAAU,KACd,MACF,CAEA,EAAI,QAAU,EAAgB,EAAM,KAAK,EAErC,EAAI,SAAW,EAAI,UAAY,EAAiB,UAClD,EAAS,EAAQ,QAAS,EAAW,OAAO,EAAE,EAAI,OAAO,EACzD,EAAiB,QAAU,EAAI,QAEnC,EAAG,CAAC,CAAC,EAeL,OAbA,MAAgB,CACV,GAAY,CAAC,EAAI,SAAW,CAAC,GACjC,EAAS,EAAI,OAAO,CACtB,EAAG,CAAC,CAAQ,CAAC,EAET,EAKK,OAJa,CAEpB,OAEoC,EAAE,EAGjC,EAAiB,EAAuC,CAAa,CAC9E"}