|
237 | 237 | }
|
238 | 238 | },
|
239 | 239 |
|
| 240 | +
|
| 241 | + deleteNode(node, cx, x){ |
| 242 | + if(node){ |
| 243 | + const currentCircleXAxis = parseFloat(node.element.circle.attr('cx')); |
| 244 | + const currentTextX = parseFloat(node.element.text.attr('x')); |
| 245 | + console.log(cx, currentCircleXAxis, x, currentTextX); |
| 246 | + node.element.circle.transition() |
| 247 | + .duration(1000) |
| 248 | + .attr('cx', cx); |
| 249 | +
|
| 250 | + node.element.text.transition() |
| 251 | + .duration(1000) |
| 252 | + .attr('x', x); |
| 253 | + if(node.element.lines){ |
| 254 | + for(const line of node.element.lines){ |
| 255 | + line.attr('x1', currentTextX); |
| 256 | + } |
| 257 | + } |
| 258 | + this.deleteNode(node.next, currentCircleXAxis, currentTextX) |
| 259 | + } |
| 260 | +
|
| 261 | + return; |
| 262 | +
|
| 263 | + }, |
| 264 | +
|
240 | 265 | removeItemFromLinkedList() {
|
241 | 266 | let current = this.linkedList.head;
|
242 | 267 |
|
243 | 268 | while (current) {
|
244 | 269 | if (current.data == this.targetValue) {
|
| 270 | + const currentCircleXAxis = parseFloat(current.element.circle.attr('cx')); |
| 271 | + const currentTextX = parseFloat(current.element.text.attr('x')); |
245 | 272 | console.log("Item found to delete");
|
246 |
| - const currentCircleXAxis = parseFloat( current.element.circle.attr('cx')); |
247 |
| - const currentTextX = parseFloat( current.element.text.attr('x')); |
248 | 273 | current.element.circle.remove();
|
249 | 274 | current.element.text.remove();
|
| 275 | + if(current.next) { |
| 276 | + current.data = current.next.data; |
250 | 277 |
|
251 |
| - for(const line of current.element.lines){ |
252 |
| - line.remove(); |
253 |
| - } |
254 |
| - current.next?.element.circle.transition() |
255 |
| - .duration(1000) |
256 |
| - .attr('cx', currentCircleXAxis); |
257 |
| - current.next?.element.text.transition() |
258 |
| - .duration(1000) |
259 |
| - .attr('x', currentTextX); |
260 |
| - current.data = current.next.data; |
261 |
| - current.element = current.next.element; |
262 |
| - if (current.next) { |
263 |
| - current.next = current.next.next; |
264 |
| - } else { |
265 |
| - current.next = null; |
| 278 | + for (const line of current.element.lines) { |
| 279 | + line.remove(); |
| 280 | + } |
| 281 | + current.element = current.next.element; |
| 282 | + this.deleteNode(current.next, currentCircleXAxis, currentTextX); |
266 | 283 | }
|
267 |
| - console.log() |
268 |
| -
|
269 |
| -
|
270 | 284 | break;
|
271 | 285 | }
|
272 | 286 | current = current.next;
|
|
0 commit comments