UNPKG

devexpress-richedit

Version:

DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.

37 lines (36 loc) 1.11 kB
export class FocusHelper { static preventFocusOnClick(element) { return new FocusBlocker(element); } } class FocusBlocker { constructor(target) { this.target = target; this.onPointerDownBinded = this.onPointerDown.bind(this); this.addEventListeners(target); } addEventListeners(element) { element.addEventListener("pointerdown", this.onPointerDownBinded); } removeEventListeners(element) { element.removeEventListener("pointerdown", this.onPointerDownBinded); } onPointerDown(event) { for (const element of event.composedPath()) { if (!(element instanceof HTMLElement)) continue; if (element === this.target) { event.preventDefault(); break; } if (!this.target.contains(element) || element.tabIndex > -1) break; } } dispose() { if (this.target) { this.removeEventListeners(this.target); this.target = null; } } }