Code Monkey home page Code Monkey logo

spring-flo's Introduction

Spring Flo

macOS Build Status Dependency Status

IntroductionHow To UseAcknowledgments

Introduction

Spring Flo is a JavaScript library that offers a basic embeddable HTML5 visual builder for pipelines and simple graphs. This library is used as the basis of the stream builder in Spring Cloud Data Flow.

dataflow ui

Here is a youtube video of Spring Flo in action.


How To Use

Refer to the wiki for more information on how to embed it in an application.

Please ensure that at a minimum Node.js, npm and the Angular CLI are available on your system. In order to execute the build simply do:

$ git clone https://github.com/spring-projects/spring-flo.git
$ npm install
$ npm run build

Build results are produced under the dist folder.

A small self contained sample usage of Spring Flo is available in the demo sub folder. Execute npm start to run the sample. The Spring Cloud Data Flow UI at github shows a larger scale usage of Spring Flo.

Spring Flo is Open Source software released under the Apache 2.0 license.

Pull requests are welcome, but before accepting them we will need you to sign the Contributors Agreement.


Acknowledgments

This project uses code from several open source packages: JointJS, CodeMirror (...).

This project is powered by:

Pivotal Spring

spring-flo's People

Contributors

aclement avatar acrisci avatar boykoalex avatar ghillert avatar hakhan88 avatar lappro avatar oodamien avatar spring-operator avatar vgordievskiy avatar wolfmeister avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spring-flo's Issues

404 for operators.js

Hi,

After a fresh clone and npm install, starting the project with npm run start and going to the page gives me this 404 error.

(index):19 Error: (SystemJS) XHR error (404 Not Found) loading http://localhost:3000/node_modules/rxjs/operators.js
	Error: XHR error (404 Not Found) loading http://localhost:3000/node_modules/rxjs/operators.js
	    at XMLHttpRequest.wrapFn (http://localhost:3000/node_modules/zone.js/dist/zone.js:1166:39)
	    at ZoneDelegate.invokeTask (http://localhost:3000/node_modules/zone.js/dist/zone.js:425:31)
	    at Zone.runTask (http://localhost:3000/node_modules/zone.js/dist/zone.js:192:47)
	    at ZoneTask.invokeTask [as invoke] (http://localhost:3000/node_modules/zone.js/dist/zone.js:499:34)
	    at invokeTask (http://localhost:3000/node_modules/zone.js/dist/zone.js:1540:14)
	    at XMLHttpRequest.globalZoneAwareCallback (http://localhost:3000/node_modules/zone.js/dist/zone.js:1566:17)
	Error loading http://localhost:3000/node_modules/rxjs/operators.js as "./operators" from http://localhost:3000/node_modules/rxjs/Rx.js
	    at XMLHttpRequest.wrapFn (http://localhost:3000/node_modules/zone.js/dist/zone.js:1166:39)
	    at ZoneDelegate.invokeTask (http://localhost:3000/node_modules/zone.js/dist/zone.js:425:31)
	    at Zone.runTask (http://localhost:3000/node_modules/zone.js/dist/zone.js:192:47)
	    at ZoneTask.invokeTask [as invoke] (http://localhost:3000/node_modules/zone.js/dist/zone.js:499:34)
	    at invokeTask (http://localhost:3000/node_modules/zone.js/dist/zone.js:1540:14)
	    at XMLHttpRequest.globalZoneAwareCallback (http://localhost:3000/node_modules/zone.js/dist/zone.js:1566:17)
	Error loading http://localhost:3000/node_modules/rxjs/operators.js as "./operators" from http://localhost:3000/node_modules/rxjs/Rx.js

Convert DSL to Json Object

Hi Team,

I am very thankful to you for this app(Spring-Flo).
This app resolved the biggest problem.

I have a simple query.
Is there any library/package available for DSL to JSON and JSON to DSL conversion?

I know we can do this using JavaScript. If it is available please suggest me.

Or If it possible can we add two methods for this conversion in this app?

Publish 0.7.0 release

As a developer, I'd like to publish the 0.7.0 release as an npm package.

  • Update README with latest screenshot
  • Review Wiki docs for correctness

Develop a Parser.simplify method

Only for the stream feature -

Description:
The dslText is the DSL with all the parameters sent in the last deploy/update. He reflects all the states.
The originalDslText is the DSL of the stream creation (= first DSL).
On SCDF UI, this 2 properties are used.

Problem:

  • Hard for a user to have a vision of a stream (read between parameters).
  • The DSL Text is most of the time truncate in the UI

How to reproduce:

  • Create a stream file | log
  • Deploy file | log (do not specify parameter)
  • Navigate to the stream page, you should see something like that:
time --spring.cloud.stream.kafka.streams.binder.zkNodes=zookeeper:2181 --spring.cloud.stream.kafka.binder.zkNodes=zookeeper:2181 --spring.cloud.stream.kafka.streams.binder.brokers=PLAINTEXT://kafka-broker:9092 --spring.cloud.stream.kafka.binder.brokers=PLAINTEXT://kafka-broker:9092 | transform --spring.cloud.stream.kafka.streams.binder.zkNodes=zookeeper:2181 --foo=bar --spring.cloud.stream.kafka.binder.zkNodes=zookeeper:2181 --spring.cloud.stream.kafka.streams.binder.brokers=PLAINTEXT://kafka-broker:9092 --spring.cloud.stream.kafka.binder.brokers=PLAINTEXT://kafka-broker:9092 | log --spring.cloud.stream.kafka.streams.binder.zkNodes=zookeeper:2181 --foo=bar --spring.cloud.stream.kafka.binder.zkNodes=zookeeper:2181 --spring.cloud.stream.kafka.streams.binder.brokers=PLAINTEXT://kafka-broker:9092 --spring.cloud.stream.kafka.binder.brokers=PLAINTEXT://kafka-broker:9092

image

Solution:
Create a method which return the stream with just the apps and names
Ex: f1: file | l1:log

Support complex statemachine flos

I've been thinking what it would take for a flo to support more complex graphs like presented in below images which is currently what papyrus plugin in eclipse is able to model.

I think there is two major things missing:

  • Having flo's to have sub-flo's (sub-states)
  • Having separate flo's in a regions

maybe-flo1
maybe-flo2

404 GET /codemirror-minified

npm start ; [1] 18.11.07 09:57:42 304 GET /rxjs/internal/observable/dom/ajax.js
[1] 18.11.07 09:57:42 304 GET /rxjs/internal/util/root.js
[1] 18.11.07 09:57:42 304 GET /rxjs/internal/util/applyMixins.js
[1] 18.11.07 09:57:46 404 GET /codemirror-minified
[1] 18.11.07 09:57:46 404 GET /codemirror-minified/addon/hint/show-hint
[1] 18.11.07 09:57:46 404 GET /codemirror-minified/addon/scroll/annotatescrollbar
[1] 18.11.07 09:57:46 404 GET /codemirror-minified/addon/display/placeholder[1] 18.11.07 09:57:46 404 GET /codemirror-minified/mode/meta
[1] 18.11.07 09:57:46 404 GET /codemirror-minified/addon/scroll/simplescrollbars
[1] 18.11.07 09:57:46 404 GET /codemirror-minified/addon/edit/matchbrackets
[1] 18.11.07 09:57:46 404 GET /codemirror-minified/addon/lint/lint
[1] 18.11.07 09:57:46 404 GET /codemirror-minified/addon/lint/json-lint
[1] 18.11.07 09:57:46 404 GET /codemirror-minified/addon/lint/javascript-lint

why?

refreshes all the time

unable to setup as it keeps on refreshing and never reaches a stable point ....
i followed the steps to setup this application turns out it is more than just frustrating to set this up

throwing aot compilation errors when included in external project

three errors below are causing the AOT built to fail when AOT is enabled.

  1. ERROR in node_modules\spring-flo\out-tsc\spring-flo.d.ts.EditorComponent.html(12,9): : Directive ResizerDirective, Property 'startDrag' is private and only accessible within class 'ResizerDirective'.

  2. node_modules\spring-flo\out-tsc\spring-flo.d.ts.DynamicFormPropertyComponent.html(30,21): : Property 'options' does not exist on type 'ControlModel'.

  3. node_modules\spring-flo\out-tsc\spring-flo.d.ts.DynamicFormPropertyComponent.html(34,48): : Property 'language' does not exist on type 'ControlModel'.

suggestions:

  1. make startDrag public rather than private
  2. access 'options' as object['options'] rather than object.options
  3. access 'options' as object['language'] rather than object.language

please let me know should you require more info on this issue

thanks

sorry can anyone help me , i have a problem when i import editor.ts

src/main/webapp/app/flow/editor.ts:183:11 - error TS2454: Variable 'closestData' is used before being assigned.

183 if (closestData) {
~~~~~~~~~~~
src/main/webapp/app/flow/editor.ts:224:59 - error TS2339: Property 'get' does not exist on type 'Link'.

224 let outgoingLinksNumber = links.filter(l => l.get('source').id === e.id).length;
~~~
src/main/webapp/app/flow/editor.ts:225:59 - error TS2339: Property 'get' does not exist on type 'Link'.

225 let incomingLinksNumber = links.filter(l => l.get('target').id === e.id).length;
~~~
src/main/webapp/app/flow/editor.ts:470:25 - error TS2339: Property 'get' does not exist on type 'Link'.

470 let source = link.get('source').id;
~~~
src/main/webapp/app/flow/editor.ts:471:25 - error TS2339: Property 'get' does not exist on type 'Link'.

471 let target = link.get('target').id;
~~~
src/main/webapp/app/flow/editor.ts:483:55 - error TS2339: Property 'model' does not exist on type 'ElementView | LinkView'.
Property 'model' does not exist on type 'ElementView'.

483 let sourceEnd : Flo.LinkEnd = {id: sourceView.model.id, selector: sourceView.getSelector(magnetS, null)};
~~~~~
src/main/webapp/app/flow/editor.ts:483:98 - error TS2345: Argument of type 'SVGElement | undefined' is not assignable to parameter of type
'SVGElement'.
Type 'undefined' is not assignable to type 'SVGElement'.

483 let sourceEnd : Flo.LinkEnd = {id: sourceView.model.id, selector: sourceView.getSelector(magnetS, null)};
~~~~~~~
src/main/webapp/app/flow/editor.ts:484:13 - error TS2532: Object is possibly 'undefined'.

484 if (magnetS.getAttribute('port')) {
~~~~~~~
src/main/webapp/app/flow/editor.ts:485:11 - error TS2322: Type 'string | null' is not assignable to type 'string | undefined'.
Type 'null' is not assignable to type 'string | undefined'.

485 sourceEnd.port = magnetS.getAttribute('port');
~~~~~~~~~~~~~~
src/main/webapp/app/flow/editor.ts:485:28 - error TS2532: Object is possibly 'undefined'.

485 sourceEnd.port = magnetS.getAttribute('port');
~~~~~~~
src/main/webapp/app/flow/editor.ts:487:55 - error TS2339: Property 'model' does not exist on type 'ElementView | LinkView'.
Property 'model' does not exist on type 'ElementView'.

487 let targetEnd : Flo.LinkEnd = {id: targetView.model.id, selector: targetView.getSelector(magnetT, null)};
~~~~~
src/main/webapp/app/flow/editor.ts:487:98 - error TS2345: Argument of type 'SVGElement | undefined' is not assignable to parameter of type
'SVGElement'.
Type 'undefined' is not assignable to type 'SVGElement'.

487 let targetEnd : Flo.LinkEnd = {id: targetView.model.id, selector: targetView.getSelector(magnetT, null)};
~~~~~~~
src/main/webapp/app/flow/editor.ts:488:13 - error TS2532: Object is possibly 'undefined'.

488 if (magnetT.getAttribute('port')) {
~~~~~~~
src/main/webapp/app/flow/editor.ts:489:11 - error TS2322: Type 'string | null' is not assignable to type 'string | undefined'.
Type 'null' is not assignable to type 'string | undefined'.

489 targetEnd.port = magnetT.getAttribute('port');
~~~~~~~~~~~~~~
src/main/webapp/app/flow/editor.ts:489:28 - error TS2532: Object is possibly 'undefined'.

489 targetEnd.port = magnetT.getAttribute('port');
~~~~~~~
src/main/webapp/app/flow/editor.ts:491:50 - error TS2345: Argument of type 'null' is not assignable to parameter of type 'ElementMetadata | undefined'.

491 context.createLink(sourceEnd, targetEnd, null, null);
~~~~
src/main/webapp/app/flow/editor.ts:498:55 - error TS2339: Property 'model' does not exist on type 'ElementView | LinkView'.
Property 'model' does not exist on type 'ElementView'.

498 let sourceEnd : Flo.LinkEnd = {id: sourceView.model.id, selector: sourceView.getSelector(magnetS, null)};
~~~~~
src/main/webapp/app/flow/editor.ts:498:98 - error TS2345: Argument of type 'SVGElement | undefined' is not assignable to parameter of type
'SVGElement'.
Type 'undefined' is not assignable to type 'SVGElement'.

498 let sourceEnd : Flo.LinkEnd = {id: sourceView.model.id, selector: sourceView.getSelector(magnetS, null)};
~~~~~~~
src/main/webapp/app/flow/editor.ts:499:13 - error TS2532: Object is possibly 'undefined'.

499 if (magnetS.getAttribute('port')) {
~~~~~~~
src/main/webapp/app/flow/editor.ts:500:11 - error TS2322: Type 'string | null' is not assignable to type 'string | undefined'.
Type 'null' is not assignable to type 'string | undefined'.

500 sourceEnd.port = magnetS.getAttribute('port');
~~~~~~~~~~~~~~
src/main/webapp/app/flow/editor.ts:500:28 - error TS2532: Object is possibly 'undefined'.

500 sourceEnd.port = magnetS.getAttribute('port');
~~~~~~~
src/main/webapp/app/flow/editor.ts:502:55 - error TS2339: Property 'model' does not exist on type 'ElementView | LinkView'.
Property 'model' does not exist on type 'ElementView'.

502 let targetEnd : Flo.LinkEnd = {id: targetView.model.id, selector: targetView.getSelector(magnetT, null)};
~~~~~
src/main/webapp/app/flow/editor.ts:502:98 - error TS2345: Argument of type 'SVGElement | undefined' is not assignable to parameter of type
'SVGElement'.
Type 'undefined' is not assignable to type 'SVGElement'.

502 let targetEnd : Flo.LinkEnd = {id: targetView.model.id, selector: targetView.getSelector(magnetT, null)};
~~~~~~~
src/main/webapp/app/flow/editor.ts:503:13 - error TS2532: Object is possibly 'undefined'.

503 if (magnetT.getAttribute('port')) {
~~~~~~~
src/main/webapp/app/flow/editor.ts:504:11 - error TS2322: Type 'string | null' is not assignable to type 'string | undefined'.
Type 'null' is not assignable to type 'string | undefined'.

504 targetEnd.port = magnetT.getAttribute('port');
~~~~~~~~~~~~~~
src/main/webapp/app/flow/editor.ts:504:28 - error TS2532: Object is possibly 'undefined'.

504 targetEnd.port = magnetT.getAttribute('port');
~~~~~~~
src/main/webapp/app/flow/editor.ts:506:50 - error TS2345: Argument of type 'null' is not assignable to parameter of type 'ElementMetadata | undefined'.

506 context.createLink(sourceEnd, targetEnd, null, null);
~~~~
src/main/webapp/app/flow/editor.ts:556:29 - error TS2339: Property 'get' does not exist on type 'Link'.

556 targetId = links[i].get('target').id;
~~~
src/main/webapp/app/flow/editor.ts:557:29 - error TS2339: Property 'get' does not exist on type 'Link'.

557 sourceId = links[i].get('source').id;
~~~
src/main/webapp/app/flow/editor.ts:588:7 - error TS7029: Fallthrough case in switch.

588 case 'enum':
~~~~~~~~~~~~
src/main/webapp/app/flow/editor.ts:610:68 - error TS2454: Variable 'validation' is used before being assigned.

610 return new Properties.GenericControlModel(property, inputType, validation);

Unexpected logic during filtering

During development based on Spring Flo library, I've faced an unexpected behavior during filtering by name or group.

Here is the explanation:

  1. You have an application named timestamp. If you'll try to filter by name with values timestamp or Timestamp you'll see an expected result.
  2. But, if you have at least 1 capital letter in the name of the application [e.g. Timestamp] and you'll try to filter either by timestamp or Timestamp you'll get a No results found message.

Is this an expected behavior designed by the development team or I can submit a pull request regarding this problem?

Pass over Flo API

Review Flo API. Some final refactorings:

  1. Mark optional method parameters with ?
  2. Editor service probably needs Flo.EditorContext instance variable since it's in present in almost all methods as a parameter

Customize Node size

Some of the names of my nodes are kind of long and they don't fit in the boxes properly. They overflow the edges which doesn't look good.

Node size is currently hardcoded in shared/shapes.ts as IMAGE_H and IMAGE_W. I would like to configure this to be something slightly larger to accommodate my longest name.

In the future, I would like to make the nodes size themselves dynamically based on the width of the label.

runtime services?

In addition to the three services -metamodel, render and editor should there be a "runtime" service too - for flow deployment, run time status, persistence etc?

flo not being set on joint.shapes

Hi,

I am having a strange issue on one of my environments. It seems to work correctly on my development machine but not my CI machine but I'm not sure why.

My renderer implementation is nearly identical to the demo. But it seems like in the renderer::createNode() function, the flo property is undefined on joint.shapes which naturally leads to this runtime error at this line in the browser:

ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'Node' of undefined

It seems that the flo member is set directly on the jointjs import. I wonder if it's possible that they are importing two different versions of the library.

Any tips on how to debug this further would be much appreciated.

Provide Flo as Node (NPM) Module

In order to get rid of Bower in SCDF UI, we need to be able to consume Flow as node module. At least initially Flo does not need to be in the NPM repo (Eventually it would be good though). As long as I can consume Flow via GitHub (have the respective package.json file) things will be good.

Scroll left list is not working on firefox

The area is not scrollable on firefox :
image

Test:
On #palette-paper-container, change the property overflow:overlay to overflow:scroll fixes the issue on Firefox

Environnement: Mac OS, Firefox 64.0.2

how to embed spring-flo into empty angular

  1. ng new myApp
    npm i spring-flo --save

copy package.js devDependencies to myApp
npm i
copy editor.ts graph-to-text.ts ... to myApp

ng server, success no error
but in browser have error
ERROR TypeError: Object(...) is not a function
at ResizerDirective.ngOnInit (webpack-internal:///../../../../spring-flo@0.8.1@spring-flo/fesm5/spring-flo.js:3407)
at checkAndUpdateDirectiveInline (webpack-internal:///../../../../
@[email protected]@@angular/core/esm5/core.js:12627)
at checkAndUpdateNodeInline (webpack-internal:///../../../../@[email protected]@@angular/core/esm5/core.js:14151)
at checkAndUpdateNode (webpack-internal:///../../../../
@[email protected]@@angular/core/esm5/core.js:14094)
at debugCheckAndUpdateNode (webpack-internal:///../../../../@[email protected]@@angular/core/esm5/core.js:14987)
at debugCheckDirectivesFn (webpack-internal:///../../../../
@[email protected]@@angular/core/esm5/core.js:14928)
at Object.eval [as updateDirectives] (ng:///FloModule/EditorComponent.ngfactory.js:64)
at Object.debugUpdateDirectives [as updateDirectives] (webpack-internal:///../../../../@[email protected]@@angular/core/esm5/core.js:14913)
at checkAndUpdateView (webpack-internal:///../../../../
@[email protected]@@angular/core/esm5/core.js:14060)
at callViewAction (webpack-internal:///../../../../_@[email protected]@@angular/core/esm5/core.js:14411)
View_EditorComponent_2 @ ng:///FloModule/EditorComponent.ngfactory.js:40

Cannot build build.js on windows

On windows environment, running npm run build throws errors and doesnt compile

Suspect the issue is with build.js since the shell exec is not able to run. Was the development for this done on non windows environments ?

Investigate alternatives for JointJS

  1. Investigate violations coming from zone.js when Flo is embedded in SCDF UI
  2. Investigate rendering libraries (that has typescript support for it)
    -- Consider removing backbone

build error, what happens

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 17.914 s
[INFO] Finished at: 2016-10-13T14:15:23+08:00
[INFO] Final Memory: 11M/303M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:0.0.23:grunt (grunt build) on project spring-flo: Failed to run task: 'grunt --no-color' failed. (error code 3) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.github.eirslett:frontend-maven-plugin:0.0.23:grunt (grunt build) on project spring-flo: Failed to run task
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoFailureException: Failed to run task
at com.github.eirslett.maven.plugins.frontend.mojo.GruntMojo.execute(GruntMojo.java:71)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 20 more
Caused by: com.github.eirslett.maven.plugins.frontend.lib.TaskRunnerException: 'grunt --no-color' failed. (error code 3)
at com.github.eirslett.maven.plugins.frontend.lib.NodeTaskExecutor.execute(NodeTaskExecutor.java:38)
at com.github.eirslett.maven.plugins.frontend.mojo.GruntMojo.execute(GruntMojo.java:69)
... 22 more
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Upgrade JointJS to 2.1.2

We are currently at 1.x and upgrading to 2.1.1 might be a bigger effort. Let's start with evaluating the effort and then decide whether we want to stick with JointJS or other alternatives.

Rendering issue in IE11

The nodes are not getting rendered in IE11, with error details (console) as - endsWith not supported.

I have fixed the issue in my local, please correct all the js files, and replace "endsWith" call with "match" call.
e.g - endsWith('?') to be replaced with - match('\?' + "$")

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.