//
class RadicalModifier extends Modifier {
modify(element) { let squareElement = this.findChild(element, "math-sqrt"); let indexElement = this.findChild(element, "math-index"); let surdElement = this.findChild(squareElement, "math-surd"); let contentElement = this.findChild(squareElement, "math-cont"); let surdSymbolElement = surdElement.children[0]; let stretchLevel = this.calcStretchLevel(contentElement); surdSymbolElement.textContent = DATA["radical"][stretchLevel]; if (indexElement) { this.modifyIndex(element, indexElement); } } modifyIndex(element, indexElement) { let width = this.getWidth(indexElement); let fontRatio = this.getFontSize(element) / this.getFontSize(indexElement); if (width / fontRatio < 0.5) { let margin = 0.5 * fontRatio - width; indexElement.style.marginLeft = "" + margin + "em"; } } calcStretchLevel(element) { let heightAbs = this.getHeight(element) * 1000; let stretchLevel = null; for (let i = 0 ; i <= 3 ; i ++) { if (heightAbs <= DATA["radical"]["height"][i]) { stretchLevel = i; break; } } if (stretchLevel == null) { stretchLevel = 3; } return stretchLevel; }
}