react-imask
Advanced tools
Comparing version 7.0.1-alpha.0 to 7.0.1-alpha.1
@@ -6,4 +6,4 @@ import { type InputMask, type InputMaskElement, type FactoryOpts } from 'imask'; | ||
export default function useIMask<MaskElement extends InputMaskElement, Opts extends FactoryOpts>(opts: Opts, { onAccept, onComplete }?: Partial<Pick<ReactMaskProps<MaskElement, Opts>, 'onAccept' | 'onComplete'>>): { | ||
ref: MutableRefObject<MaskElement>; | ||
maskRef: MutableRefObject<InputMask<Opts>>; | ||
ref: MutableRefObject<MaskElement | null>; | ||
maskRef: MutableRefObject<InputMask<Opts> | null>; | ||
value: InputMask<Opts>['value']; | ||
@@ -10,0 +10,0 @@ setValue: Dispatch<InputMask<Opts>['value']>; |
import React from 'react'; | ||
import { IMaskInputProps } from './mixin'; | ||
declare const IMaskInput: React.ForwardRefExoticComponent<(Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Partial<Pick<import("../../imask/esm").Masked<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
declare const IMaskInput: React.ForwardRefExoticComponent<(Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Partial<Pick<import("../../imask/esm").Masked<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
mask: typeof import("../../imask/esm").Masked | typeof import("../../imask/esm").MaskedPattern | typeof import("../../imask/esm").MaskedDate | typeof import("../../imask/esm").MaskedNumber | typeof import("../../imask/esm").MaskedEnum | typeof import("../../imask/esm").MaskedRange | typeof import("../../imask/esm").MaskedRegExp | typeof import("../../imask/esm").MaskedFunction | typeof import("../../imask/esm").MaskedDynamic; | ||
} & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Partial<Pick<import("../../imask/esm").Masked<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Partial<Pick<import("../../imask/esm").Masked<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
mask: import("../../imask/esm").Masked<any>; | ||
} & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("../../imask/esm").MaskedDateOptions<Date>, "mask"> & { | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Omit<import("../../imask/esm").MaskedDateOptions, "mask"> & { | ||
mask: DateConstructor; | ||
} & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Partial<Pick<import("../../imask/esm").MaskedNumber, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid" | "min" | "max" | "radix" | "thousandsSeparator" | "mapToRadix" | "scale" | "normalizeZeros" | "padFractionalZeros">> & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Partial<Pick<import("../../imask/esm").MaskedPattern<string>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid" | "definitions" | "blocks" | "placeholderChar" | "displayChar" | "lazy">> & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Partial<Pick<import("../../imask/esm").MaskedDynamic<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid" | "dispatch">> & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Partial<Pick<import("../../imask/esm").MaskedRegExp, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Partial<Pick<import("../../imask/esm").MaskedFunction<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Partial<Pick<import("../../imask/esm").MaskedNumber, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid" | "min" | "max" | "radix" | "thousandsSeparator" | "mapToRadix" | "scale" | "normalizeZeros" | "padFractionalZeros">> & { | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Partial<Pick<import("../../imask/esm").MaskedPattern<string>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid" | "definitions" | "blocks" | "placeholderChar" | "displayChar" | "lazy">> & { | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Partial<Pick<import("../../imask/esm").MaskedDynamic<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid" | "dispatch">> & { | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Partial<Pick<import("../../imask/esm").MaskedRegExp, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Partial<Pick<import("../../imask/esm").MaskedFunction<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref">) & React.RefAttributes<unknown>>; | ||
export default IMaskInput; | ||
//# sourceMappingURL=input.d.ts.map |
import React from 'react'; | ||
import { type InputMask, type InputMaskElement, type FactoryOpts, type AllFactoryStaticOpts } from 'imask'; | ||
export type Falsy = false | 0 | "" | null | undefined; | ||
export type ReactMaskOpts = FactoryOpts & { | ||
export type ReactMaskOpts<Opts extends FactoryOpts = FactoryOpts> = Opts & { | ||
unmask?: 'typed' | boolean; | ||
@@ -26,3 +26,3 @@ }; | ||
export type MaskOpts<MaskElement extends InputMaskElement, Props extends IMaskInputProps<MaskElement> = IMaskInputProps<MaskElement>> = Extract<Props, FactoryOpts>; | ||
export type IMaskMixinProps<MaskElement extends InputMaskElement, Props extends ReactMaskOpts & ReactMaskProps<MaskElement> = ReactMaskOpts & ReactMaskProps<MaskElement>> = Props & ReactMaskProps<MaskElement, Props>; | ||
export type IMaskMixinProps<MaskElement extends InputMaskElement, Props extends (ReactMaskOpts & ReactMaskProps<MaskElement>) = ReactMaskOpts & ReactMaskProps<MaskElement>> = Omit<ReactMaskProps<MaskElement, Props>, 'ref'> & MaskOpts<MaskElement, Props>; | ||
export type IMaskInputProps<MaskElement extends InputMaskElement, Props extends IMaskMixinProps<MaskElement> = IMaskMixinProps<MaskElement>> = ReactElementProps<MaskElement> & IMaskMixinProps<MaskElement, Props>; | ||
@@ -29,0 +29,0 @@ export default function IMaskMixin<MaskElement extends InputMaskElement, Props extends IMaskInputProps<MaskElement>>(ComposedComponent: ReactMixinComponent<MaskElement>): React.ForwardRefExoticComponent<React.PropsWithoutRef<Props> & React.RefAttributes<React.ComponentType<Props>>>; |
@@ -7,48 +7,54 @@ (function (global, factory) { | ||
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } | ||
var IMask__default = /*#__PURE__*/_interopDefault(IMask); | ||
var React__default = /*#__PURE__*/_interopDefault(React); | ||
var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes); | ||
const MASK_PROPS = { | ||
// common | ||
mask: PropTypes.oneOfType([PropTypes.array, PropTypes.func, PropTypes.string, PropTypes.instanceOf(RegExp), PropTypes.oneOf([Date, Number, IMask.Masked]), PropTypes.instanceOf(IMask.Masked)]), | ||
value: PropTypes.any, | ||
unmask: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['typed'])]), | ||
prepare: PropTypes.func, | ||
prepareChar: PropTypes.func, | ||
validate: PropTypes.func, | ||
commit: PropTypes.func, | ||
overwrite: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['shift'])]), | ||
eager: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['append', 'remove'])]), | ||
skipInvalid: PropTypes.bool, | ||
mask: PropTypes__default.default.oneOfType([PropTypes__default.default.array, PropTypes__default.default.func, PropTypes__default.default.string, PropTypes__default.default.instanceOf(RegExp), PropTypes__default.default.oneOf([Date, Number, IMask__default.default.Masked]), PropTypes__default.default.instanceOf(IMask__default.default.Masked)]), | ||
value: PropTypes__default.default.any, | ||
unmask: PropTypes__default.default.oneOfType([PropTypes__default.default.bool, PropTypes__default.default.oneOf(['typed'])]), | ||
prepare: PropTypes__default.default.func, | ||
prepareChar: PropTypes__default.default.func, | ||
validate: PropTypes__default.default.func, | ||
commit: PropTypes__default.default.func, | ||
overwrite: PropTypes__default.default.oneOfType([PropTypes__default.default.bool, PropTypes__default.default.oneOf(['shift'])]), | ||
eager: PropTypes__default.default.oneOfType([PropTypes__default.default.bool, PropTypes__default.default.oneOf(['append', 'remove'])]), | ||
skipInvalid: PropTypes__default.default.bool, | ||
// events | ||
onAccept: PropTypes.func, | ||
onComplete: PropTypes.func, | ||
onAccept: PropTypes__default.default.func, | ||
onComplete: PropTypes__default.default.func, | ||
// pattern | ||
placeholderChar: PropTypes.string, | ||
displayChar: PropTypes.string, | ||
lazy: PropTypes.bool, | ||
definitions: PropTypes.object, | ||
blocks: PropTypes.object, | ||
placeholderChar: PropTypes__default.default.string, | ||
displayChar: PropTypes__default.default.string, | ||
lazy: PropTypes__default.default.bool, | ||
definitions: PropTypes__default.default.object, | ||
blocks: PropTypes__default.default.object, | ||
// enum | ||
enum: PropTypes.arrayOf(PropTypes.string), | ||
enum: PropTypes__default.default.arrayOf(PropTypes__default.default.string), | ||
// range | ||
maxLength: PropTypes.number, | ||
from: PropTypes.number, | ||
to: PropTypes.number, | ||
maxLength: PropTypes__default.default.number, | ||
from: PropTypes__default.default.number, | ||
to: PropTypes__default.default.number, | ||
// date | ||
pattern: PropTypes.string, | ||
format: PropTypes.func, | ||
parse: PropTypes.func, | ||
autofix: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['pad'])]), | ||
pattern: PropTypes__default.default.string, | ||
format: PropTypes__default.default.func, | ||
parse: PropTypes__default.default.func, | ||
autofix: PropTypes__default.default.oneOfType([PropTypes__default.default.bool, PropTypes__default.default.oneOf(['pad'])]), | ||
// number | ||
radix: PropTypes.string, | ||
thousandsSeparator: PropTypes.string, | ||
mapToRadix: PropTypes.arrayOf(PropTypes.string), | ||
scale: PropTypes.number, | ||
normalizeZeros: PropTypes.bool, | ||
padFractionalZeros: PropTypes.bool, | ||
min: PropTypes.oneOfType([PropTypes.number, PropTypes.instanceOf(Date)]), | ||
max: PropTypes.oneOfType([PropTypes.number, PropTypes.instanceOf(Date)]), | ||
radix: PropTypes__default.default.string, | ||
thousandsSeparator: PropTypes__default.default.string, | ||
mapToRadix: PropTypes__default.default.arrayOf(PropTypes__default.default.string), | ||
scale: PropTypes__default.default.number, | ||
normalizeZeros: PropTypes__default.default.bool, | ||
padFractionalZeros: PropTypes__default.default.bool, | ||
min: PropTypes__default.default.oneOfType([PropTypes__default.default.number, PropTypes__default.default.instanceOf(Date)]), | ||
max: PropTypes__default.default.oneOfType([PropTypes__default.default.number, PropTypes__default.default.instanceOf(Date)]), | ||
// dynamic | ||
dispatch: PropTypes.func, | ||
dispatch: PropTypes__default.default.func, | ||
// ref | ||
inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ | ||
current: PropTypes.object | ||
inputRef: PropTypes__default.default.oneOfType([PropTypes__default.default.func, PropTypes__default.default.shape({ | ||
current: PropTypes__default.default.object | ||
})]) | ||
@@ -61,7 +67,5 @@ }; | ||
var _class; | ||
const MaskedComponent = (_class = class MaskedComponent extends React.Component { | ||
const MaskedComponent = (_class = class MaskedComponent extends React__default.default.Component { | ||
constructor(props) { | ||
super(props); | ||
this.element = void 0; | ||
this.maskRef = void 0; | ||
this._inputRef = this._inputRef.bind(this); | ||
@@ -78,4 +82,4 @@ } | ||
if (this.maskRef) { | ||
this.maskRef.updateOptions(maskOptions); | ||
if ('value' in props) this.maskValue = props.value; | ||
this.maskRef.updateOptions(maskOptions); // TODO fix | ||
if ('value' in props && props.value !== undefined) this.maskValue = props.value; | ||
} else { | ||
@@ -86,3 +90,3 @@ this.initMask(maskOptions); | ||
this.destroyMask(); | ||
if ('value' in props) { | ||
if ('value' in props && props.value !== undefined) { | ||
var _this$element; | ||
@@ -106,4 +110,4 @@ if ((_this$element = this.element) != null && _this$element.isContentEditable && this.element.tagName !== 'INPUT' && this.element.tagName !== 'TEXTAREA') this.element.textContent = props.value;else this.element.value = props.value; | ||
} | ||
this.maskRef = IMask(this.element, maskOptions).on('accept', this._onAccept.bind(this)).on('complete', this._onComplete.bind(this)); | ||
if ('value' in this.props) this.maskValue = this.props.value; | ||
this.maskRef = IMask__default.default(this.element, maskOptions).on('accept', this._onAccept.bind(this)).on('complete', this._onComplete.bind(this)); | ||
if ('value' in this.props && this.props.value !== undefined) this.maskValue = this.props.value; | ||
} | ||
@@ -139,2 +143,3 @@ destroyMask() { | ||
get maskValue() { | ||
if (!this.maskRef) return ''; | ||
if (this.props.unmask === 'typed') return this.maskRef.typedValue; | ||
@@ -145,2 +150,3 @@ if (this.props.unmask) return this.maskRef.unmaskedValue; | ||
set maskValue(value) { | ||
if (!this.maskRef) return; | ||
value = value == null && this.props.unmask !== 'typed' ? '' : value; | ||
@@ -156,3 +162,3 @@ if (this.props.unmask === 'typed') this.maskRef.typedValue = value;else if (this.props.unmask) this.maskRef.unmaskedValue = value;else this.maskRef.value = value; | ||
render() { | ||
return React.createElement(ComposedComponent, { | ||
return React__default.default.createElement(ComposedComponent, { | ||
...this._extractNonMaskProps(this.props), | ||
@@ -166,3 +172,3 @@ inputRef: this._inputRef | ||
MaskedComponent.propTypes = MASK_PROPS; | ||
return React.forwardRef((props, ref) => React.createElement(MaskedComponent, { | ||
return React__default.default.forwardRef((props, ref) => React__default.default.createElement(MaskedComponent, { | ||
...props, | ||
@@ -178,3 +184,3 @@ ref | ||
} = _ref; | ||
return React.createElement('input', { | ||
return React__default.default.createElement('input', { | ||
...props, | ||
@@ -184,8 +190,10 @@ ref: inputRef | ||
}); | ||
const IMaskInputFn = (props, ref) => React.createElement(IMaskInputClass, { | ||
const IMaskInputFn = (props, ref) => React__default.default.createElement(IMaskInputClass, { | ||
...props, | ||
ref | ||
}); | ||
const IMaskInput = React.forwardRef(IMaskInputFn); | ||
}) // TODO fix no idea | ||
; | ||
const IMaskInput = React__default.default.forwardRef(IMaskInputFn); | ||
function useIMask(opts, _temp) { | ||
@@ -228,8 +236,9 @@ let { | ||
if (el && opts != null && opts.mask) { | ||
maskRef.current = IMask(el, opts); | ||
maskRef.current = IMask__default.default(el, opts); | ||
_onAccept(); | ||
} | ||
} else { | ||
mask == null ? void 0 : mask.updateOptions(opts); | ||
mask == null ? void 0 : mask.updateOptions(opts); // TODO fix no idea | ||
} | ||
setInitialized(Boolean(maskRef.current)); | ||
@@ -287,3 +296,6 @@ }, [opts, _destroyMask, _onAccept]); | ||
exports.IMask = IMask; | ||
Object.defineProperty(exports, 'IMask', { | ||
enumerable: true, | ||
get: function () { return IMask__default.default; } | ||
}); | ||
exports.IMaskInput = IMaskInput; | ||
@@ -290,0 +302,0 @@ exports.IMaskMixin = IMaskMixin; |
@@ -6,4 +6,4 @@ import { type InputMask, type InputMaskElement, type FactoryOpts } from 'imask'; | ||
export default function useIMask<MaskElement extends InputMaskElement, Opts extends FactoryOpts>(opts: Opts, { onAccept, onComplete }?: Partial<Pick<ReactMaskProps<MaskElement, Opts>, 'onAccept' | 'onComplete'>>): { | ||
ref: MutableRefObject<MaskElement>; | ||
maskRef: MutableRefObject<InputMask<Opts>>; | ||
ref: MutableRefObject<MaskElement | null>; | ||
maskRef: MutableRefObject<InputMask<Opts> | null>; | ||
value: InputMask<Opts>['value']; | ||
@@ -10,0 +10,0 @@ setValue: Dispatch<InputMask<Opts>['value']>; |
@@ -45,4 +45,5 @@ import IMask from 'imask/esm/imask'; | ||
} else { | ||
mask == null ? void 0 : mask.updateOptions(opts); | ||
mask == null ? void 0 : mask.updateOptions(opts); // TODO fix no idea | ||
} | ||
setInitialized(Boolean(maskRef.current)); | ||
@@ -49,0 +50,0 @@ }, [opts, _destroyMask, _onAccept]); |
import React from 'react'; | ||
import { IMaskInputProps } from './mixin'; | ||
declare const IMaskInput: React.ForwardRefExoticComponent<(Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Partial<Pick<import("../../imask/esm").Masked<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
declare const IMaskInput: React.ForwardRefExoticComponent<(Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Partial<Pick<import("../../imask/esm").Masked<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
mask: typeof import("../../imask/esm").Masked | typeof import("../../imask/esm").MaskedPattern | typeof import("../../imask/esm").MaskedDate | typeof import("../../imask/esm").MaskedNumber | typeof import("../../imask/esm").MaskedEnum | typeof import("../../imask/esm").MaskedRange | typeof import("../../imask/esm").MaskedRegExp | typeof import("../../imask/esm").MaskedFunction | typeof import("../../imask/esm").MaskedDynamic; | ||
} & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Partial<Pick<import("../../imask/esm").Masked<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Partial<Pick<import("../../imask/esm").Masked<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
mask: import("../../imask/esm").Masked<any>; | ||
} & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("../../imask/esm").MaskedDateOptions<Date>, "mask"> & { | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Omit<import("../../imask/esm").MaskedDateOptions, "mask"> & { | ||
mask: DateConstructor; | ||
} & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Partial<Pick<import("../../imask/esm").MaskedNumber, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid" | "min" | "max" | "radix" | "thousandsSeparator" | "mapToRadix" | "scale" | "normalizeZeros" | "padFractionalZeros">> & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Partial<Pick<import("../../imask/esm").MaskedPattern<string>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid" | "definitions" | "blocks" | "placeholderChar" | "displayChar" | "lazy">> & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Partial<Pick<import("../../imask/esm").MaskedDynamic<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid" | "dispatch">> & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Partial<Pick<import("../../imask/esm").MaskedRegExp, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Partial<Pick<import("../../imask/esm").MaskedFunction<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
unmask?: boolean | "typed"; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts>>>>>; | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Partial<Pick<import("../../imask/esm").MaskedNumber, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid" | "min" | "max" | "radix" | "thousandsSeparator" | "mapToRadix" | "scale" | "normalizeZeros" | "padFractionalZeros">> & { | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Partial<Pick<import("../../imask/esm").MaskedPattern<string>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid" | "definitions" | "blocks" | "placeholderChar" | "displayChar" | "lazy">> & { | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Partial<Pick<import("../../imask/esm").MaskedDynamic<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid" | "dispatch">> & { | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Partial<Pick<import("../../imask/esm").MaskedRegExp, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref"> | Omit<import("./mixin").ReactElementProps<HTMLInputElement> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>, "ref"> & Omit<import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>, "ref"> & Partial<Pick<import("../../imask/esm").MaskedFunction<any>, "mask" | "parent" | "prepare" | "prepareChar" | "validate" | "commit" | "format" | "parse" | "overwrite" | "eager" | "skipInvalid">> & { | ||
unmask?: boolean | "typed" | undefined; | ||
} & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>> & { | ||
ref?: React.Ref<React.ComponentType<IMaskInputProps<HTMLInputElement, import("./mixin").IMaskMixinProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts> & import("./mixin").ReactMaskProps<HTMLInputElement, import("./mixin").ReactMaskOpts<import("../../imask/esm").FactoryOpts>>>>>> | undefined; | ||
}, "ref">) & React.RefAttributes<unknown>>; | ||
export default IMaskInput; | ||
//# sourceMappingURL=input.d.ts.map |
@@ -19,5 +19,7 @@ import React from 'react'; | ||
ref | ||
}); | ||
}) // TODO fix no idea | ||
; | ||
const IMaskInput = React.forwardRef(IMaskInputFn); | ||
export { IMaskInput as default }; |
import React from 'react'; | ||
import { type InputMask, type InputMaskElement, type FactoryOpts, type AllFactoryStaticOpts } from 'imask'; | ||
export type Falsy = false | 0 | "" | null | undefined; | ||
export type ReactMaskOpts = FactoryOpts & { | ||
export type ReactMaskOpts<Opts extends FactoryOpts = FactoryOpts> = Opts & { | ||
unmask?: 'typed' | boolean; | ||
@@ -26,3 +26,3 @@ }; | ||
export type MaskOpts<MaskElement extends InputMaskElement, Props extends IMaskInputProps<MaskElement> = IMaskInputProps<MaskElement>> = Extract<Props, FactoryOpts>; | ||
export type IMaskMixinProps<MaskElement extends InputMaskElement, Props extends ReactMaskOpts & ReactMaskProps<MaskElement> = ReactMaskOpts & ReactMaskProps<MaskElement>> = Props & ReactMaskProps<MaskElement, Props>; | ||
export type IMaskMixinProps<MaskElement extends InputMaskElement, Props extends (ReactMaskOpts & ReactMaskProps<MaskElement>) = ReactMaskOpts & ReactMaskProps<MaskElement>> = Omit<ReactMaskProps<MaskElement, Props>, 'ref'> & MaskOpts<MaskElement, Props>; | ||
export type IMaskInputProps<MaskElement extends InputMaskElement, Props extends IMaskMixinProps<MaskElement> = IMaskMixinProps<MaskElement>> = ReactElementProps<MaskElement> & IMaskMixinProps<MaskElement, Props>; | ||
@@ -29,0 +29,0 @@ export default function IMaskMixin<MaskElement extends InputMaskElement, Props extends IMaskInputProps<MaskElement>>(ComposedComponent: ReactMixinComponent<MaskElement>): React.ForwardRefExoticComponent<React.PropsWithoutRef<Props> & React.RefAttributes<React.ComponentType<Props>>>; |
@@ -61,4 +61,2 @@ import React from 'react'; | ||
super(props); | ||
this.element = void 0; | ||
this.maskRef = void 0; | ||
this._inputRef = this._inputRef.bind(this); | ||
@@ -75,4 +73,4 @@ } | ||
if (this.maskRef) { | ||
this.maskRef.updateOptions(maskOptions); | ||
if ('value' in props) this.maskValue = props.value; | ||
this.maskRef.updateOptions(maskOptions); // TODO fix | ||
if ('value' in props && props.value !== undefined) this.maskValue = props.value; | ||
} else { | ||
@@ -83,3 +81,3 @@ this.initMask(maskOptions); | ||
this.destroyMask(); | ||
if ('value' in props) { | ||
if ('value' in props && props.value !== undefined) { | ||
var _this$element; | ||
@@ -104,3 +102,3 @@ if ((_this$element = this.element) != null && _this$element.isContentEditable && this.element.tagName !== 'INPUT' && this.element.tagName !== 'TEXTAREA') this.element.textContent = props.value;else this.element.value = props.value; | ||
this.maskRef = IMask(this.element, maskOptions).on('accept', this._onAccept.bind(this)).on('complete', this._onComplete.bind(this)); | ||
if ('value' in this.props) this.maskValue = this.props.value; | ||
if ('value' in this.props && this.props.value !== undefined) this.maskValue = this.props.value; | ||
} | ||
@@ -136,2 +134,3 @@ destroyMask() { | ||
get maskValue() { | ||
if (!this.maskRef) return ''; | ||
if (this.props.unmask === 'typed') return this.maskRef.typedValue; | ||
@@ -142,2 +141,3 @@ if (this.props.unmask) return this.maskRef.unmaskedValue; | ||
set maskValue(value) { | ||
if (!this.maskRef) return; | ||
value = value == null && this.props.unmask !== 'typed' ? '' : value; | ||
@@ -144,0 +144,0 @@ if (this.props.unmask === 'typed') this.maskRef.typedValue = value;else if (this.props.unmask) this.maskRef.unmaskedValue = value;else this.maskRef.value = value; |
{ | ||
"name": "react-imask", | ||
"version": "7.0.1-alpha.0", | ||
"version": "7.0.1-alpha.1", | ||
"license": "MIT", | ||
@@ -13,4 +13,4 @@ "author": "Alexey Kryazhev", | ||
"scripts": { | ||
"lint": "eslint --quiet", | ||
"prebuild": "npm run lint && rimraf --glob \"{dist,esm}\"", | ||
"lint": "eslint src", | ||
"prebuild": "npm run lint -- --quiet && rimraf --glob \"{dist,esm}\"", | ||
"build": "tsc --emitDeclarationOnly && rollup -c", | ||
@@ -26,3 +26,3 @@ "watch": "rollup -c -w" | ||
"dependencies": { | ||
"imask": "^7.0.1-alpha.0", | ||
"imask": "^7.0.1-alpha.1", | ||
"prop-types": "^15.8.1" | ||
@@ -36,3 +36,3 @@ }, | ||
}, | ||
"gitHead": "27b880750f473bea574b9b962f661bc43d9d870a", | ||
"gitHead": "6b8ff4690db0365493bdcbff6d32de21dc3b2d04", | ||
"devDependencies": { | ||
@@ -39,0 +39,0 @@ "@types/react": "^18.2.12", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
91229
819
Updatedimask@^7.0.1-alpha.1