[FIX] web_editor: include selected td's descendants in getTraversedNodes

When a td has the `o_selected_td` class, it should be included in the
traversed/selected nodes, along with all its descendants. A syntax error
made it so that the descendants weren't in fact included.

closes odoo/odoo#112669

X-original-commit: 9f9279babbd98c343f51028fc719d7d9f1b2f887
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
This commit is contained in:
Antoine Guenet
2023-02-14 17:09:56 +01:00
parent b03bb44048
commit b64e862f40
@@ -669,7 +669,8 @@ export function getTraversedNodes(editable, range = getDeepRange(editable)) {
const selectedTable = closestElement(node, '.o_selected_table');
if (selectedTable) {
for (const selectedTd of selectedTable.querySelectorAll('.o_selected_td')) {
traversedNodes.add(selectedTd, ...descendants(selectedTd));
traversedNodes.add(selectedTd);
descendants(selectedTd).forEach(descendant => traversedNodes.add(descendant));
}
} else {
traversedNodes.add(node);
@@ -692,7 +693,7 @@ export function getSelectedNodes(editable) {
return [];
}
const range = sel.getRangeAt(0);
return getTraversedNodes(editable).flatMap(
return [...new Set(getTraversedNodes(editable).flatMap(
node => {
const td = closestElement(node, '.o_selected_td');
if (td) {
@@ -703,7 +704,7 @@ export function getSelectedNodes(editable) {
return [];
}
},
);
))];
}
/**