main.js $selectedNode //which node is active init() //basic init function //utility function isPointInNode(x,y,node) check pointer on node //render function renderNodeList() //select block function drawSelectOutline() getResizeHandleAtPoint(mouseX, mouseY) mainCanvas. e(mouseup) e(mousedown) e(mousemove) //update to render prop_panel.js //create html from for nodePros nm.js //node manager for get set remove add update select $nodes = [] //array of all nodes nm('nodeId.props') getNode(nodeId) addNode() createNode() // removeNode() //remove $selectNode updateNode() //update props $selectNode clearNodes() //remove all node load_ly() upload_ly() download_ly() ly.js //node block ly coordinate set ly(b_block) //this call ly_fn for get cordinat ly_uz(f, ly_flag, o_flag, c_box,) //read doc for ly ly_cell() parse_ly.js //parse line and create node parse_ly(line) draw.js //responsible to draw block drawAllNode(nodes) //draw all node ctx.clear //clear canvas for node in nodes: ly(node) //set all node coordinate for node in nodes: drawNode(node) //draw all node if selectedNode: drawSelectOutline(selectedNode) drawNode(b_block) //draw node in canvas //-------------------------------------------------- draw.drawAllNode(nodes) //draw all node ctx.clear //clear canvas for node in nodes: ly(node) //set all node coordinate for node in nodes: drawNode(node) //draw all node if selectedNode: drawSelectOutline(selectedNode) fn createNode() //this function createNode fn parse_ly()