UNPKG

@atlaskit/renderer

Version:
41 lines (39 loc) 1.72 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.updateWindowSelectionAroundDraft = exports.dataAttributes = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); /* eslint-disable @atlaskit/platform/no-direct-document-usage -- draft selection uses document range APIs */ var dataAttributes = exports.dataAttributes = function dataAttributes(_ref) { var from = _ref.from, to = _ref.to; return (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, 'data-annotation-draft-mark', true), 'data-draft-start-at', from), 'data-draft-end-at', to); }; var buildDataAttributesQuery = function buildDataAttributesQuery(pos) { var a = dataAttributes(pos); return Object.entries(a).map(function (_ref3) { var _ref4 = (0, _slicedToArray2.default)(_ref3, 2), k = _ref4[0], v = _ref4[1]; return "[".concat(k, "=\"").concat(v, "\"]"); }).join(''); }; var updateWindowSelectionAroundDraft = exports.updateWindowSelectionAroundDraft = function updateWindowSelectionAroundDraft(pos) { var sel = window.getSelection(); if (!sel) { return false; } var draftNodes = document.querySelectorAll(buildDataAttributesQuery(pos)); if (!draftNodes || draftNodes.length === 0) { return false; } sel.removeAllRanges(); var range = document.createRange(); range.setStart(draftNodes[0], 0); range.setEndAfter(draftNodes[draftNodes.length - 1]); sel.addRange(range); return true; };