UNPKG

react-native-advanced-input-mask

Version:

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

51 lines (50 loc) 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _utils = require("../utils"); var _State = _interopRequireDefault(require("./State")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class ValueState extends _State.default { constructor(child, valueState) { super(child); this.stateType = valueState; } accepts(character) { if ("name" in this.stateType) { if (this.stateType.name === "ellipsis") { return this.checkEllipsis(this.stateType.inheritedType, character); } return this.stateType.regex.test(character); } return this.stateType.characterSet.includes(character); } checkEllipsis(stateType, character) { if ("name" in stateType) { if (stateType.name === "ellipsis") { this.checkEllipsis(stateType.inheritedType, character); } else { return stateType.regex.test(character); } } return stateType.characterSet.includes(character); } accept = character => this.accepts(character) ? { state: this.nextState(), insert: character, pass: true, value: character } : null; get isElliptical() { return "name" in this.stateType && this.stateType.name === "ellipsis"; } nextState = () => this.isElliptical ? this : this.child; toString = () => { var _this$child; const typeStr = (0, _utils.getCharacterTypeString)(this.stateType); return `${typeStr} -> ${((_this$child = this.child) === null || _this$child === void 0 ? void 0 : _this$child.toString()) ?? "null"}`; }; } var _default = exports.default = ValueState; //# sourceMappingURL=ValueState.js.map