|
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