react-native-advanced-input-mask
Version:
Text input mask for React Native on iOS, Android and web. Synchronous and easy formatting without hustle
29 lines • 897 B
JavaScript
import { CaretGravityType } from "../model/types";
class CaretStringIterator {
constructor(caretString, currentIndex = 0) {
this.caretString = caretString;
this.currentIndex = currentIndex;
}
insertionAffectsCaret() {
const {
caretGravity,
caretPosition
} = this.caretString;
const isBackwardGravity = caretGravity.type === 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;
}
}
export default CaretStringIterator;
//# sourceMappingURL=CaretStringIterator.js.map