// Adds column2, column3,... to output import {app} from "../../scripts/app.js" class Spreadsheet2Video { // onNodeCreated(side, slot, connect, link_info, output) { onNodeCreated(graphNode) { return this.addRemoveOutput(graphNode, false); } onConnectionsChange(side, slot, connect, link_info /*, output */) { if(!link_info?.origin_id) { return; } const graphNode = app.graph.getNodeById(link_info.origin_id); if(!graphNode) { return; } this.addRemoveOutput(graphNode, true); } addRemoveOutput(graphNode, onlyExisting) { if(!graphNode) { return; } let columnsCount = 0; let columnLinkedMax = 0; let columnMax = 0; let lastColumn = 1; const outputsByColumn = []; for(const output of graphNode.outputs) { const m = /^COLUMN(\d+)$/.exec(output.name); if(!m) { continue; } const column = parseInt(m[1]); if(output.links && column >= columnLinkedMax) { columnLinkedMax = column; } if(column >= columnMax) { columnMax = column; } outputsByColumn[column] = columnsCount; if ((lastColumn+1) != column) { console.error(`Spreadsheet2VideoInputImage. Column mismatch. Expected COLUMN${lastColumn+1}, found: ${column}`); } ++columnsCount; lastColumn = column; } if(onlyExisting && columnsCount === 0) { return false; } let columnMaxWanted = Math.ceil((columnLinkedMax+3)/2)*2; const removeSlotIndex = []; for(let c = columnMaxWanted; c