react-native-advanced-input-mask
Version:
Text input mask for React Native on iOS, Android and web. Synchronous and easy formatting without hustle
42 lines (41 loc) • 1.25 kB
JavaScript
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 OptionalValueState extends _State.default {
constructor(child, stateType) {
super(child);
this.stateType = stateType;
}
accepts(character) {
if (this.stateType) {
if ("name" in this.stateType) {
return this.stateType.regex.test(character);
}
return this.stateType.characterSet.includes(character);
}
return false;
}
accept = character => this.accepts(character) ? {
state: this.nextState(),
insert: character,
pass: true,
value: character
} : {
state: this.nextState(),
insert: null,
pass: false,
value: null
};
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 = OptionalValueState;
//# sourceMappingURL=OptionalValueState.js.map
;