UNPKG

wix-style-react

Version:
37 lines (31 loc) 1.09 kB
/** * @return {{unselectPrevious: Function, selectPrevious: Function}} returns an object with functions that can be used to unselect current and reselect previous selection */ export 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 }; };