55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
-
-
+
-
-
-
+
+
|
this.oNodeControl = new GrammalecteNodeControl();
}
start (xNode=null) {
this.oTooltip.hide();
this.clear();
if (xNode) {
if (xNode.tagName == "TEXTAREA") {
this.oNodeControl.setNode(xNode);
this.oNodeControl.setNode(xNode);
} else {
this.oNodeControl.clear();
this.addMessage("Cette zone de texte n’est pas un champ de formulaire “textarea” mais un node HTML éditable. Les modifications ne seront pas répercutées automatiquement. Une fois votre texte corrigé, vous pouvez utiliser le bouton ‹∑› pour copier le texte dans le presse-papiers.");
if (xNode.tagName != "TEXTAREA") {
this.addMessage("Note : cette zone de texte n’est pas un champ de formulaire “textarea” mais un node HTML éditable. Une telle zone de texte est susceptible de contenir des éléments non textuels qui seront effacés lors de la correction.");
}
}
}
clear () {
while (this.xParagraphList.firstChild) {
this.xParagraphList.removeChild(this.xParagraphList.firstChild);
|
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
|
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
|
+
+
+
+
|
xNodeErr.className = (this.aIgnoredErrors.has(xNodeErr.dataset.ignored_key)) ? "grammalecte_error_ignored" : "grammalecte_error grammalecte_error_" + oErr['sType'];
return xNodeErr;
}
blockParagraph (xParagraph) {
xParagraph.contentEditable = "false";
document.getElementById("grammalecte_check"+xParagraph.dataset.para_num).textContent = "Analyse…";
document.getElementById("grammalecte_check"+xParagraph.dataset.para_num).style.backgroundColor = "hsl(0, 50%, 50%)";
document.getElementById("grammalecte_check"+xParagraph.dataset.para_num).style.boxShadow = "0 0 0 3px hsla(0, 100%, 50%, .2)";
}
freeParagraph (xParagraph) {
xParagraph.contentEditable = "true";
document.getElementById("grammalecte_check"+xParagraph.dataset.para_num).textContent = "Réanalyser";
document.getElementById("grammalecte_check"+xParagraph.dataset.para_num).style.backgroundColor = "hsl(120, 30%, 50%)";
document.getElementById("grammalecte_check"+xParagraph.dataset.para_num).style.boxShadow = "none";
}
applySuggestion (sNodeSuggId) { // sugg
try {
let sErrorId = document.getElementById(sNodeSuggId).dataset.error_id;
//let sParaNum = sErrorId.slice(0, sErrorId.indexOf("-"));
let xNodeErr = document.getElementById("grammalecte_err" + sErrorId);
|
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
|
432
433
434
435
436
437
438
439
440
441
442
443
444
445
|
-
|
class GrammalecteNodeControl {
constructor () {
this.xNode = null;
this.dParagraph = new Map();
this.bTextArea = null;
this.bWriteEN = false; // write editable node
}
setNode (xNode) {
this.clear();
this.xNode = xNode;
this.bTextArea = (xNode.tagName == "TEXTAREA");
this.xNode.disabled = true;
|
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
|
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
|
+
+
+
+
+
+
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
+
|
this.dParagraph.set(i, sText.slice(iStart, iEnd));
i++;
iStart = iEnd+1;
}
this.dParagraph.set(i, sText.slice(iStart));
//console.log("Paragraphs number: " + (i+1));
}
eraseContent () {
while (this.xNode.firstChild) {
this.xNode.removeChild(this.xNode.firstChild);
}
}
write () {
if (this.xNode !== null && (this.bTextArea || this.bWriteEN)) {
if (this.xNode !== null) {
let sText = "";
if (this.bTextArea) {
this.dParagraph.forEach(function (val, key) {
sText += val + "\n";
});
this.dParagraph.forEach(function (val, key) {
sText += val + "\n";
});
sText = sText.slice(0,-1).normalize("NFC");
if (this.bTextArea) {
this.xNode.value = sText;
this.xNode.value = sText.slice(0,-1).normalize("NFC");
} else {
this.eraseContent();
this.dParagraph.forEach((val, key) => {
this.xNode.appendChild(document.createTextNode(val.normalize("NFC")));
this.xNode.appendChild(document.createElement("br"));
});
/*
this.dParagraph.forEach(function (val, key) {
sText += val + "<br/>";
});
this.xNode.textContent = sText;
this.xNode.innerHTML = sText.normalize("NFC");
*/
}
}
}
}
|