[web/data] Fix userCallbackThenUpdateUI to completely replace old DOM elements
Without the 'swap' parameter, userCallbackThenUpdateUI() would replace
the _children_ of the component with a new version of the componenent,
thus creating nested divs/spans/buttons/etc.
Closes #4881299
table.tree {
border-collapse: collapse;
}
table.tree td {
padding: 0px;
}
div.tree_cell {
border: 1px solid black;
margin-top: 2px;
margin-bottom: 2px;
margin-left: 0px;
margin-right: 0px;
padding-top: 2px;
padding-bottom: 2px;
padding-left: 5px;
padding-right: 5px;
}
div.selected {
border: 2px solid black;
background-color: #ccc;
}
table.tree td.tree_cell {
padding: 0px;
}
table.tree td.tree_cell_1_1,
td.tree_cell_1_2 {
border-bottom: 1px solid black;
}
table.tree td.tree_cell_1_3 {
border-right: 1px solid black;
}
table.tree td.tree_cell_1_4 {
border: 0px;
}
table.tree td.tree_cell_2_1,
td.tree_cell_2_3 {
border-right: 1px solid black;
}
table.tree td.tree_cell_2_2,
td.tree_cell_2_4 {
border: 0px;
}
table.tree td.tree_cell_3_1,
td.tree_cell_3_3 {
border-right: 1px solid black;
}
table.tree td.tree_cell_3_2 {
border-bottom: 1px solid black;
}
table.tree td.tree_cell_3_4 {
border: 0px;
}
table.tree td.tree_cell_4_1 {
border-right: 1px solid black;
}
table.tree td.tree_cell_4_2 {
border-bottom: 1px solid black;
}
table.tree td.tree_cell_4_3,
td.tree_cell_4_4 {
border: 0px;
}
table.tree td.tree_cell_5_1,
td.tree_cell_5_2 {
border-bottom: 1px solid black;
}
table.tree td.tree_cell_5_3,
td.tree_cell_5_4 {
border: 0px;
}
table.tree td.tree_cell_0_1,
td.tree_cell_0_2,
td.tree_cell_0_3,
td.tree_cell_0_4 {
border: 0px;
}