@launchmenu/core
Version:
An environment for visual keyboard controlled applets
35 lines • 3.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.removeText = void 0;
const performNormalizedTextEdit_1 = require("./performNormalizedTextEdit");
/**
* Removes text from the text field in the given direction
* @param targetField The text field to insert the text into
* @param direction The amount of characters to remove and the direction (-1 == backspace)
* @param caret The caret to remove the text at
*/
function removeText(targetField, direction = -1, caret) {
performNormalizedTextEdit_1.performNormalizedTextEdit(targetField, textField => {
if (!caret)
caret = textField.getSelection();
const start = Math.min(caret.start, caret.end);
const end = Math.max(caret.start, caret.end);
let newCaretPos = start;
let alterations = [];
// If text is currently selected, ignore the direction and just remove it
if (start != end)
alterations = [{ start, end, text: "" }];
// If the direction is backwards remove before the cursor and move the cursor backwards
else if (direction < 0) {
alterations = [{ start: Math.max(0, start + direction), end, text: "" }];
newCaretPos = caret.start + direction;
}
// If the direction is forwards remove after the cursor
else
alterations = [{ start, end: end + direction, text: "" }];
// Return the nee changes and new selection
return { alterations, selection: { start: newCaretPos, end: newCaretPos } };
});
}
exports.removeText = removeText;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlVGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXh0RmllbGRzL2ludGVyYWN0aW9uL3JlbW92ZVRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsMkVBQXNFO0FBR3RFOzs7OztHQUtHO0FBQ0gsU0FBZ0IsVUFBVSxDQUN0QixXQUE0QixFQUM1QixZQUFvQixDQUFDLENBQUMsRUFDdEIsS0FBc0I7SUFFdEIscURBQXlCLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1FBQy9DLElBQUksQ0FBQyxLQUFLO1lBQUUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUU3QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFN0MsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksV0FBVyxHQUEyQixFQUFFLENBQUM7UUFFN0MseUVBQXlFO1FBQ3pFLElBQUksS0FBSyxJQUFJLEdBQUc7WUFBRSxXQUFXLEdBQUcsQ0FBQyxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUM7UUFDekQsdUZBQXVGO2FBQ2xGLElBQUksU0FBUyxHQUFHLENBQUMsRUFBRTtZQUNwQixXQUFXLEdBQUcsQ0FBQyxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsU0FBUyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDO1lBQ3ZFLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztTQUN6QztRQUNELHVEQUF1RDs7WUFDbEQsV0FBVyxHQUFHLENBQUMsRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUM7UUFFN0QsMkNBQTJDO1FBQzNDLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLEVBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFDLEVBQUMsQ0FBQztJQUM1RSxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUEzQkQsZ0NBMkJDIn0=