MCPcopy
hub / github.com/1Panel-dev/MaxKB / delete_node

Function delete_node

ui/src/workflow/common/shortcut.ts:292–341  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

290 document.addEventListener('paste', paste_node)
291
292 const delete_node = () => {
293 const elements = graph.getSelectElements(true)
294 lf.clearSelectElements()
295 if (elements.nodes.length == 0 && elements.edges.length == 0) {
296 return
297 }
298 if (elements.edges.length > 0 && elements.nodes.length == 0) {
299 elements.edges
300 .filter((edge) => !['loop-edge'].includes(edge.type || ''))
301 .forEach((edge: any) => lf.deleteEdge(edge.id))
302 return
303 }
304 const nodes = elements.nodes.filter((node) =>
305 [
306 'start-node',
307 'tool-start-node',
308 'tool-base-node',
309 'base-node',
310 'loop-body-node',
311 'loop-start-node',
312 'knowledge-base-node',
313 ].includes(node.type),
314 )
315 if (nodes.length > 0) {
316 MsgError(`${nodes[0].properties?.stepName}${t('workflow.delete.deleteMessage')}`)
317 return
318 }
319 MsgConfirm(t('common.tip'), t('workflow.delete.confirmTitle'), {
320 confirmButtonText: t('common.confirm'),
321 confirmButtonClass: 'danger',
322 }).then(() => {
323 if (!keyboardOptions?.enabled) return true
324 if (graph.textEditElement) return true
325
326 elements.edges.forEach((edge: any) => lf.deleteEdge(edge.id))
327 elements.nodes.forEach((node: any) => {
328 if (node.type === 'loop-node') {
329 const next = lf.getNodeOutgoingNode(node.id)
330 next.forEach((n: any) => {
331 if (n.type === 'loop-body-node') {
332 lf.deleteNode(n.id)
333 }
334 })
335 }
336 lf.deleteNode(node.id)
337 })
338 })
339
340 return false
341 }
342 graph.eventCenter.on('copy_node', copy_node)
343 // 复制
344 keyboard.on(['cmd + c', 'ctrl + c'], copy_node)

Callers

nothing calls this directly

Calls 2

MsgErrorFunction · 0.90
MsgConfirmFunction · 0.90

Tested by

no test coverage detected