wix-style-react
Version:
46 lines (37 loc) • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createToggleSelection = void 0;
/**
* @return {{unselectPrevious: Function, selectPrevious: Function}} returns an object with functions that can be used to unselect current and reselect previous selection
*/
var createToggleSelection = function createToggleSelection() {
var unselectCurrent = function unselectCurrent() {
var activeTagName = activeElement.tagName.toUpperCase();
if (activeTagName === 'INPUT' || activeTagName === 'TEXTAREA') {
activeElement.blur();
} else {
activeElement = null;
}
selectionObject.removeAllRanges();
};
var selectPrevious = function selectPrevious() {
selectionObject.removeAllRanges();
ranges.forEach(function (range) {
selectionObject.addRange(range);
});
activeElement && activeElement.focus();
};
var selectionObject = window.getSelection();
var activeElement = document.activeElement;
var ranges = [];
for (var i = 0; i < selectionObject.rangeCount; i++) {
ranges.push(selectionObject.getRangeAt(i));
}
return {
unselectCurrent: unselectCurrent,
selectPrevious: selectPrevious
};
};
exports.createToggleSelection = createToggleSelection;