react-native-advanced-input-mask
Version:
Text input mask for React Native on iOS, Android and web. Synchronous and easy formatting without hustle
35 lines (34 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _types = require("../model/types");
class CaretStringIterator {
constructor(caretString, currentIndex = 0) {
this.caretString = caretString;
this.currentIndex = currentIndex;
}
insertionAffectsCaret() {
const {
caretGravity,
caretPosition
} = this.caretString;
const isBackwardGravity = caretGravity.type === _types.CaretGravityType.Backward;
return isBackwardGravity ? this.currentIndex <= caretPosition : this.currentIndex < caretPosition;
}
deletionAffectsCaret = () => this.currentIndex < this.caretString.caretPosition;
next() {
const {
string
} = this.caretString;
if (this.currentIndex >= string.length) {
return null;
}
const char = string.charAt(this.currentIndex);
this.currentIndex += 1;
return char;
}
}
var _default = exports.default = CaretStringIterator;
//# sourceMappingURL=CaretStringIterator.js.map