UNPKG

react-native-advanced-input-mask

Version:

Text input mask for React Native on iOS, Android and web. Synchronous and easy formatting without hustle

71 lines 2.51 kB
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } import React, { forwardRef, memo, useCallback } from "react"; import { StyleSheet, TextInput } from "react-native"; import { IS_FABRIC } from "../../architecture"; import MaskedTextInputDecoratorView from "../../MaskedTextInputNative"; const styles = StyleSheet.create({ displayNone: { display: "none" }, farAway: { position: "absolute", top: 1e8, left: 1e8 } }); const MaskedTextInput = /*#__PURE__*/forwardRef(({ affinityCalculationStrategy, affinityFormat, allowSuggestions, allowedKeys, autocomplete, autocompleteOnFocus, autoSkip, customNotations, customTransformation, defaultValue, isRTL, mask, autoCapitalize = "words", value, onChangeText, onTailPlaceholderChange, renderTextInputComponent, validationRegex, ...rest }, ref) => { const InputComponent = renderTextInputComponent ?? TextInput; const onAdvancedMaskTextChangeCallback = useCallback(({ nativeEvent: { extracted, formatted, tailPlaceholder } }) => { onChangeText === null || onChangeText === void 0 || onChangeText(formatted, extracted); onTailPlaceholderChange === null || onTailPlaceholderChange === void 0 || onTailPlaceholderChange(tailPlaceholder); }, [onChangeText, onTailPlaceholderChange]); return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(InputComponent, _extends({}, rest, { ref: ref, autoCapitalize: autoCapitalize })), /*#__PURE__*/React.createElement(MaskedTextInputDecoratorView, { affinityCalculationStrategy: affinityCalculationStrategy, affinityFormat: affinityFormat, allowedKeys: allowedKeys, allowSuggestions: allowSuggestions, autocomplete: autocomplete, autocompleteOnFocus: autocompleteOnFocus, autoSkip: autoSkip, customNotations: customNotations, customTransformation: customTransformation, defaultValue: defaultValue, isRTL: isRTL, primaryMaskFormat: mask, style: IS_FABRIC ? styles.farAway : styles.displayNone, validationRegex: validationRegex, value: value, onAdvancedMaskTextChange: onAdvancedMaskTextChangeCallback })); }); export default /*#__PURE__*/memo(MaskedTextInput); //# sourceMappingURL=index.js.map