UNPKG

ngx-editor

Version:

Rich Text Editor for angular using ProseMirror

17 lines 2.85 kB
export const calculateTooltipPos = (view) => { const { state: { selection } } = view; const { from, to } = selection; // These are in screen coordinates const start = view.coordsAtPos(from); const end = view.coordsAtPos(to); // The box in which the tooltip is positioned, to use as base const box = view.dom.getBoundingClientRect(); // Find a center-ish x position from the selection endpoints (when // crossing lines, end may be more to the left) const left = Math.max((start.left + end.left) / 2, start.left + 3); return { left: left - box.left, bottom: box.bottom - start.top }; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnViYmxlUG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZWRpdG9yL2hlbHBlcnMvYnViYmxlUG9zaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFnQixFQUFtQixFQUFFO0lBQ3ZFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQztJQUN0QyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FBQztJQUUvQixrQ0FBa0M7SUFDbEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWpDLDZEQUE2RDtJQUM3RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFFN0Msa0VBQWtFO0lBQ2xFLCtDQUErQztJQUMvQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFbkUsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUk7UUFDckIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUc7S0FDL0IsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvclZpZXcgfSBmcm9tICdwcm9zZW1pcnJvci12aWV3JztcblxuaW50ZXJmYWNlIFRvb2x0aXBQb3NpdGlvbiB7XG4gIGJvdHRvbTogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBjYWxjdWxhdGVUb29sdGlwUG9zID0gKHZpZXc6IEVkaXRvclZpZXcpOiBUb29sdGlwUG9zaXRpb24gPT4ge1xuICBjb25zdCB7IHN0YXRlOiB7IHNlbGVjdGlvbiB9IH0gPSB2aWV3O1xuICBjb25zdCB7IGZyb20sIHRvIH0gPSBzZWxlY3Rpb247XG5cbiAgLy8gVGhlc2UgYXJlIGluIHNjcmVlbiBjb29yZGluYXRlc1xuICBjb25zdCBzdGFydCA9IHZpZXcuY29vcmRzQXRQb3MoZnJvbSk7XG4gIGNvbnN0IGVuZCA9IHZpZXcuY29vcmRzQXRQb3ModG8pO1xuXG4gIC8vIFRoZSBib3ggaW4gd2hpY2ggdGhlIHRvb2x0aXAgaXMgcG9zaXRpb25lZCwgdG8gdXNlIGFzIGJhc2VcbiAgY29uc3QgYm94ID0gdmlldy5kb20uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgLy8gRmluZCBhIGNlbnRlci1pc2ggeCBwb3NpdGlvbiBmcm9tIHRoZSBzZWxlY3Rpb24gZW5kcG9pbnRzICh3aGVuXG4gIC8vIGNyb3NzaW5nIGxpbmVzLCBlbmQgbWF5IGJlIG1vcmUgdG8gdGhlIGxlZnQpXG4gIGNvbnN0IGxlZnQgPSBNYXRoLm1heCgoc3RhcnQubGVmdCArIGVuZC5sZWZ0KSAvIDIsIHN0YXJ0LmxlZnQgKyAzKTtcblxuICByZXR1cm4ge1xuICAgIGxlZnQ6IGxlZnQgLSBib3gubGVmdCxcbiAgICBib3R0b206IGJveC5ib3R0b20gLSBzdGFydC50b3BcbiAgfTtcbn07XG4iXX0=