1
This commit is contained in:
48
admin/node_modules/element-plus/lib/hooks/use-cursor/index.js
generated
vendored
Normal file
48
admin/node_modules/element-plus/lib/hooks/use-cursor/index.js
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
'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
|
||||
Reference in New Issue
Block a user