123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 'use strict';
- Object.defineProperty(exports, '__esModule', { value: true });
- function useCursor(input) {
- let selectionInfo;
- function recordCursor() {
- if (input.value == void 0)
- return;
- const { selectionStart, selectionEnd, value } = input.value;
- if (selectionStart == null || selectionEnd == null)
- return;
- const beforeTxt = value.slice(0, Math.max(0, selectionStart));
- const afterTxt = value.slice(Math.max(0, selectionEnd));
- selectionInfo = {
- selectionStart,
- selectionEnd,
- value,
- beforeTxt,
- afterTxt
- };
- }
- function setCursor() {
- if (input.value == void 0 || selectionInfo == void 0)
- return;
- const { value } = input.value;
- const { beforeTxt, afterTxt, selectionStart } = selectionInfo;
- if (beforeTxt == void 0 || afterTxt == void 0 || selectionStart == void 0)
- return;
- let startPos = value.length;
- if (value.endsWith(afterTxt)) {
- startPos = value.length - afterTxt.length;
- } else if (value.startsWith(beforeTxt)) {
- startPos = beforeTxt.length;
- } else {
- const beforeLastChar = beforeTxt[selectionStart - 1];
- const newIndex = value.indexOf(beforeLastChar, selectionStart - 1);
- if (newIndex !== -1) {
- startPos = newIndex + 1;
- }
- }
- input.value.setSelectionRange(startPos, startPos);
- }
- return [recordCursor, setCursor];
- }
- exports.useCursor = useCursor;
- //# sourceMappingURL=index.js.map
|