UNPKG

@lyra/form-builder

Version:
42 lines (34 loc) 1.17 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = createRange; var _getWindow = require('get-window'); var _getWindow2 = _interopRequireDefault(_getWindow); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function createRange(event) { const window = (0, _getWindow2.default)(event.target); const x = event.x, y = event.y; // Resolve the point where the drag is now let range; // COMPAT: In Firefox, `caretRangeFromPoint` doesn't exist. (2016/07/25) if (window.document.caretRangeFromPoint) { range = window.document.caretRangeFromPoint(x, y); } else { range = window.document.createRange(); range.setStart(event.rangeParent, event.rangeOffset); } if (!range || range.isCollapsed) { return null; } const rangeOffset = range.startOffset; const rangeLength = range.startContainer.wholeText ? range.startContainer.wholeText.length : 0; const rangeIsAtStart = rangeOffset < rangeLength / 2; range.detach(); return { rangeOffset: rangeOffset, rangeLength: rangeLength, rangeIsAtStart: rangeIsAtStart }; }