fix: Refactor block element check in BesQuillService to use isBlockElement method #5
This commit is contained in:
parent
45a10827c1
commit
c68e512496
31
service.js
31
service.js
@ -1215,10 +1215,7 @@ class BesQuillService extends BesTreeService {
|
|||||||
if (leaf) {
|
if (leaf) {
|
||||||
let domElement = leaf.domNode
|
let domElement = leaf.domNode
|
||||||
|
|
||||||
// TODO: Think of a way to get the block element containing the leaf. Because it is not necessary that the user will use this types of tag names.
|
while (domElement && !this.isBlockElement(domElement)) {
|
||||||
const acceptedTagNames = ['P', 'H1', 'H2']
|
|
||||||
|
|
||||||
while (domElement && !acceptedTagNames.includes(domElement.tagName)) {
|
|
||||||
domElement = domElement.parentNode
|
domElement = domElement.parentNode
|
||||||
}
|
}
|
||||||
if (domElement) {
|
if (domElement) {
|
||||||
@ -1252,6 +1249,32 @@ class BesQuillService extends BesTreeService {
|
|||||||
match.range.insertNode(document.createTextNode(replacement))
|
match.range.insertNode(document.createTextNode(replacement))
|
||||||
this.scheduleProofing(20)
|
this.scheduleProofing(20)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests if given element is block element.
|
||||||
|
*
|
||||||
|
* @param {Element} el DOM element
|
||||||
|
* @returns false if CSS display property is inline; true otherwise.
|
||||||
|
*/
|
||||||
|
isBlockElement(el) {
|
||||||
|
// Always treat our host element as block.
|
||||||
|
// Otherwise, should one make it inline, proofing would not start on it misbelieving it's a
|
||||||
|
// part of a bigger block of text.
|
||||||
|
if (el === this.textElement) return true
|
||||||
|
// Ensure element is a valid DOM element
|
||||||
|
if (!el || el.nodeType !== Node.ELEMENT_NODE) return false
|
||||||
|
switch (
|
||||||
|
document.defaultView
|
||||||
|
.getComputedStyle(el, null)
|
||||||
|
.getPropertyValue('display')
|
||||||
|
.toLowerCase()
|
||||||
|
) {
|
||||||
|
case 'inline':
|
||||||
|
return false
|
||||||
|
default:
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**************************************************************************************************
|
/**************************************************************************************************
|
||||||
|
Loading…
x
Reference in New Issue
Block a user