From bd8b6194b09bfa0ebcc17ba070921f3a99a2b596 Mon Sep 17 00:00:00 2001 From: Adriano Raiano Date: Tue, 27 Jun 2023 12:46:17 +0200 Subject: [PATCH 1/7] update site --- site | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site b/site index 3765677e..91455670 160000 --- a/site +++ b/site @@ -1 +1 @@ -Subproject commit 3765677e84e09ed276bb4254ff459e0678f8af4e +Subproject commit 91455670814ebce7997c212687b3da2114095123 From cb8dc9b1baf2e2785b5e095a4a779af5e63a31a1 Mon Sep 17 00:00:00 2001 From: dstang2000 Date: Sat, 9 Dec 2023 05:11:59 +0800 Subject: [PATCH 2/7] add node types: input and output (#251) * add node types: input and output * update readme * commit input.js --- README.md | 24 ++++++- imgs/example.svg | 2 +- imgs/input.png | Bin 0 -> 7252 bytes imgs/output.png | Bin 0 -> 7001 bytes src/flowchart.defaults.js | 2 + src/flowchart.parse.js | 9 +++ src/flowchart.symbol.input.js | 67 ++++++++++++++++++ src/flowchart.symbol.output.js | 124 +++++++++++++++++++++++++++++++++ 8 files changed, 225 insertions(+), 3 deletions(-) create mode 100644 imgs/input.png create mode 100644 imgs/output.png create mode 100644 src/flowchart.symbol.input.js create mode 100644 src/flowchart.symbol.output.js diff --git a/README.md b/README.md index ceb32c32..03849acf 100644 --- a/README.md +++ b/README.md @@ -12,15 +12,17 @@ Fine grain changes to node and connection style can also be made right in the DS ```flowchart st=>start: Start:>http://www.google.com[blank] e=>end:>http://www.google.com +getInfo=>input: Input Info op1=>operation: My Operation sub1=>subroutine: My Subroutine cond=>condition: Yes or No?:>http://www.google.com io=>inputoutput: catch something... +printInfo=>output: Print info para=>parallel: parallel tasks -st->op1->cond -cond(yes)->io->e +st->getInfo->op1->cond +cond(yes)->io->printInfo->e cond(no)->para para(path1, bottom)->sub1(right)->op1 para(path2, top)->op1 @@ -95,6 +97,24 @@ Indicates that IO happens in a flow. io=>inputoutput: inputoutput ``` +### input +Indicates that Input happens in a flow. + +![input image](imgs/input.png "input image") + +```flowchart +getInfo=>input: Input info +``` + +### output +Indicates that Output happens in a flow. + +![output image](imgs/output.png "output image") + +```flowchart +printInfo=>output: Print info +``` + ### subroutine Indicates that a subroutine happens in the flow and that there should be another flowchart that documents this subroutine. diff --git a/imgs/example.svg b/imgs/example.svg index e652353f..19096226 100644 --- a/imgs/example.svg +++ b/imgs/example.svg @@ -1 +1 @@ -Created with Raphaël 2.2.0StartMy OperationYesor No?catch something...Endparallel tasksMy Subroutineyesno \ No newline at end of file +Created with Raphaël 2.3.0StartInput InfoMy OperationYesor No?catch something...Print infoEndparallel tasksMy Subroutineyesno \ No newline at end of file diff --git a/imgs/input.png b/imgs/input.png new file mode 100644 index 0000000000000000000000000000000000000000..0fb8d314feaab3845178a7e748709eead79a95dd GIT binary patch literal 7252 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 HWE1r-AO~jm literal 0 HcmV?d00001 diff --git a/src/flowchart.defaults.js b/src/flowchart.defaults.js index 3e57ac2c..e10dac07 100644 --- a/src/flowchart.defaults.js +++ b/src/flowchart.defaults.js @@ -24,6 +24,8 @@ module.exports = { 'end': {}, 'condition': {}, 'inputoutput': {}, + 'input': {}, //tds + 'output': {}, //tds 'operation': {}, 'subroutine': {}, 'parallel': {} diff --git a/src/flowchart.parse.js b/src/flowchart.parse.js index 08514c94..03e941fa 100644 --- a/src/flowchart.parse.js +++ b/src/flowchart.parse.js @@ -3,10 +3,13 @@ var Start = require('./flowchart.symbol.start'); var End = require('./flowchart.symbol.end'); var Operation = require('./flowchart.symbol.operation'); var InputOutput = require('./flowchart.symbol.inputoutput'); +var Input = require('./flowchart.symbol.input'); //tds +var Output = require('./flowchart.symbol.output'); //tds var Subroutine = require('./flowchart.symbol.subroutine'); var Condition = require('./flowchart.symbol.condition'); var Parallel = require('./flowchart.symbol.parallel'); + function parse(input) { input = input || ''; input = input.trim(); @@ -43,6 +46,12 @@ function parse(input) { case 'inputoutput': dispSymbols[s.key] = new InputOutput(diagram, s); break; + case 'input': + dispSymbols[s.key] = new Input(diagram, s); //tds + break; + case 'output': + dispSymbols[s.key] = new Output(diagram, s); //tds + break; case 'subroutine': dispSymbols[s.key] = new Subroutine(diagram, s); break; diff --git a/src/flowchart.symbol.input.js b/src/flowchart.symbol.input.js new file mode 100644 index 00000000..6f5823dc --- /dev/null +++ b/src/flowchart.symbol.input.js @@ -0,0 +1,67 @@ +var Symbol = require('./flowchart.symbol'); +var inherits = require('./flowchart.helpers').inherits; +var drawAPI = require('./flowchart.functions'); +var drawPath = drawAPI.drawPath; + +function Input(chart, options) { + options = options || {}; + Symbol.call(this, chart, options); + this.textMargin = this.getAttr('text-margin'); + + this.text.attr({ + x: this.textMargin * 3 + }); + + var width = this.text.getBBox().width + 4 * this.textMargin; + var height = this.text.getBBox().height + 2 * this.textMargin; + var startX = this.textMargin; + var startY = height/2; + + var start = {x: startX, y: startY}; + var points = [ + {x: startX - this.textMargin + 2 * this.textMargin, y: height}, + {x: startX - this.textMargin + width, y: height}, + {x: startX - this.textMargin + width + 2 * this.textMargin, y: 0}, + {x: startX - this.textMargin, y: 0}, + {x: startX, y: startY} + ]; + + var symbol = drawPath(chart, start, points); + + symbol.attr({ + stroke: this.getAttr('element-color'), + 'stroke-width': this.getAttr('line-width'), + fill: this.getAttr('fill') + }); + if (options.link) { symbol.attr('href', options.link); } + if (options.target) { symbol.attr('target', options.target); } + if (options.key) { symbol.node.id = options.key; } + symbol.node.setAttribute('class', this.getAttr('class')); + + this.text.attr({ + y: symbol.getBBox().height/2 + }); + + this.group.push(symbol); + symbol.insertBefore(this.text); + this.symbol = symbol + + this.initialize(); +} +inherits(Input, Symbol); + +Input.prototype.getLeft = function() { + var y = this.getY() + this.group.getBBox().height/2; + var x = this.getX() + this.textMargin; + return {x: x, y: y}; +}; + +Input.prototype.getRight = function() { + var y = this.getY() + this.group.getBBox().height/2; + var x = this.getX() + this.group.getBBox().width - this.textMargin; + return {x: x, y: y}; +}; + +module.exports = Input; + + diff --git a/src/flowchart.symbol.output.js b/src/flowchart.symbol.output.js new file mode 100644 index 00000000..363dac0b --- /dev/null +++ b/src/flowchart.symbol.output.js @@ -0,0 +1,124 @@ +var Symbol = require('./flowchart.symbol'); +var inherits = require('./flowchart.helpers').inherits; +var drawAPI = require('./flowchart.functions'); +var drawPath = drawAPI.drawPath; + +function Output(chart, options) { + options = options || {}; + Symbol.call(this, chart, options); + this.textMargin = this.getAttr('text-margin'); + + this.text.attr({ + x: this.textMargin * 3 + }); + + var width = this.text.getBBox().width + 4 * this.textMargin; + var height = this.text.getBBox().height + 2 * this.textMargin; + var startX = this.textMargin; + var startY = height/2; + + var start = {x: startX, y: startY}; + var points = [ + {x: startX - this.textMargin, y: height}, + {x: startX - this.textMargin + width + 2 * this.textMargin, y: height}, + {x: startX - this.textMargin + width, y: 0}, + {x: startX - this.textMargin + 2 * this.textMargin, y: 0}, + {x: startX, y: startY} + ]; + + var symbol = drawPath(chart, start, points); + + symbol.attr({ + stroke: this.getAttr('element-color'), + 'stroke-width': this.getAttr('line-width'), + fill: this.getAttr('fill') + }); + if (options.link) { symbol.attr('href', options.link); } + if (options.target) { symbol.attr('target', options.target); } + if (options.key) { symbol.node.id = options.key; } + symbol.node.setAttribute('class', this.getAttr('class')); + + this.text.attr({ + y: symbol.getBBox().height/2 + }); + + this.group.push(symbol); + symbol.insertBefore(this.text); + this.symbol = symbol + + this.initialize(); +} +inherits(Output, Symbol); + +Output.prototype.getLeft = function() { + var y = this.getY() + this.group.getBBox().height/2; + var x = this.getX() + this.textMargin; + return {x: x, y: y}; +}; + +Output.prototype.getRight = function() { + var y = this.getY() + this.group.getBBox().height/2; + var x = this.getX() + this.group.getBBox().width - this.textMargin; + return {x: x, y: y}; +}; + +module.exports = Output; + + + +/* +//var Symbol = require('./flowchart.symbol'); +var inherits = require('./flowchart.helpers').inherits; +var drawAPI = require('./flowchart.functions'); +var InputOutput = require('./flowchart.symbol.inputoutput'); +var drawPath = drawAPI.drawPath; + +function Output(chart, options) { + options = options || {}; + InputOutput.call(this, chart, options); + + var width = this.text.getBBox().width + 4 * this.textMargin; + var height = this.text.getBBox().height + 2 * this.textMargin; + var startX = this.textMargin; + var startY = height/2; + + var start = {x: startX, y: startY}; + var points = [ + {x: startX - this.textMargin + 2 * this.textMargin, y: height}, + {x: startX - this.textMargin + width, y: height}, + {x: startX - this.textMargin + width + 2 * this.textMargin, y: 0}, + {x: startX - this.textMargin, y: 0}, + {x: startX, y: startY} + ]; + + var symbol = drawPath(chart, start, points); + + symbol.attr({ + stroke: this.getAttr('element-color'), + 'stroke-width': this.getAttr('line-width'), + fill: this.getAttr('fill') + }); + if (options.link) { symbol.attr('href', options.link); } + if (options.target) { symbol.attr('target', options.target); } + if (options.key) { symbol.node.id = options.key; } + symbol.node.setAttribute('class', this.getAttr('class')); + + this.text.attr({ + y: symbol.getBBox().height/2 + }); + + this.group.push(symbol); + symbol.insertBefore(this.text); + + if (this.symbol){ + this.group.remove(this.symbol); //tds + this.symbol.parentNode.removeChild(this.symbol); //tds + } + this.symbol = symbol + + this.initialize(); +} +inherits(Output, InputOutput); + +module.exports = Output; +*/ From 759e753dc97b5d1c5d401bd0fee65e2c0e461325 Mon Sep 17 00:00:00 2001 From: Adriano Raiano Date: Fri, 8 Dec 2023 22:26:10 +0100 Subject: [PATCH 3/7] prepare commit --- bower.json | 15 ---- index.html | 5 +- license | 2 +- release/flowchart.js | 146 ++++++++++++++++++++++++++++++++--- release/flowchart.js.map | 2 +- release/flowchart.min.js | 6 +- release/flowchart.min.js.map | 2 +- releasenotes.md | 4 + 8 files changed, 149 insertions(+), 33 deletions(-) delete mode 100644 bower.json diff --git a/bower.json b/bower.json deleted file mode 100644 index 5b82ba5d..00000000 --- a/bower.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "flowchart", - "version": "1.6.6", - "main": "./release/flowchart.min.js", - "dependencies": {}, - "ignore": [ - "src/", - "buildtasks/", - "example/", - ".gitignore", - "Gruntfile.js", - "package.json", - "**/*.zip" - ] -} diff --git a/index.html b/index.html index aae36316..eb057b41 100644 --- a/index.html +++ b/index.html @@ -18,6 +18,8 @@ c2=>condition: Good idea|rejected io=>inputoutput: catch something...|request para=>parallel: parallel tasks + in=>input: some in + out=>output: some out st->op1(right)->cond cond(yes, right)->c2 @@ -25,8 +27,9 @@ c2(true)->io->e c2(false)->e - para(path1, bottom)->sub1(left)->op1 + para(path1, left)->sub1(top)->op1 para(path2, right)->op2->e + para(path3, bottom)->in->out->e