1
This commit is contained in:
44
admin/node_modules/element-plus/es/hooks/use-cursor/index.mjs
generated
vendored
Normal file
44
admin/node_modules/element-plus/es/hooks/use-cursor/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
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];
|
||||
}
|
||||
|
||||
export { useCursor };
|
||||
//# sourceMappingURL=index.mjs.map
|
||||
Reference in New Issue
Block a user