Giter Site home page Giter Site logo

naetverkjs / naetverk Goto Github PK

View Code? Open in Web Editor NEW
15.0 2.0 0.0 4.92 MB

JavaScript framework for visual programming

License: MIT License

JavaScript 11.81% TypeScript 85.97% HTML 0.42% Sass 1.80%
hacktoberfest graph-editor flow-based-programming dataflow-programming visual-programming node-editor angular hacktoberfest2021

naetverk's Introduction

Naetverk.js


Build Status Coverage Maintainability Rating Quality Gate Status


JavaScript framework for visual programming

Warning

Do not use this framework before version 1 is released. It is currently still in development and not all updates will be compatible.

Introduction

Naetverk is a modular framework for visual programming. Naetverk is forked from the fantastic rete.js framework, that allows you to create node-based editor directly in the browser.

Why a different branch? - I have some ideas that I follow which are in conflict with the original implementation. We decided to move the individual plugins in to one mono repository to have a tighter connection between them. They also follow the same version number on release. So it should be easier to manage your dependencies.

Plugins

Name Version Description Extends Readme / Docs
@naetverkjs/naetverk npm Base library that allows the creation of node-based editors for visually programming or sequential scripting - Readme
@naetverkjs/connections npm Plugin to render the connections between nodes @naetverkjs/naetverk Readme
@naetverkjs/area npm Plugin to draw the network on a configurable background with limited zoom and grid snapping @naetverkjs/naetverk Readme
@naetverkjs/lifecycle npm Registers additional events that can be used while working with a component @naetverkjs/naetverk Readme
@naetverkjs/keyboard npm Registers keyboard input and maps them to events @naetverkjs/naetverk Readme
@naetverkjs/arrange npm Rearranges the node based on their size on the board @naetverkjs/naetverk Readme
@naetverkjs/history npm Plugin that adds the ability to revert actions @naetverkjs/naetverk Readme
@naetverkjs/selection npm Plugin that adds the ability to multiselect nodes with a selection rectangle @naetverkjs/naetverk Readme
@naetverkjs/comments npm Plugin that allows the creation of comments and groups around nodes @naetverkjs/naetverk Readme

Framework Renderers

Name Description Extends Readme / Docs
Angular
@naetverkjs/angular-renderer Angular Module to render basic nodes Readme
React
@naetverkjs/react-renderer React Module to render basic nodes Readme

Documentation:

https://naetverkjs.github.io/documentation/

naetverk's People

Contributors

bigstep22 avatar creadicted avatar dependabot-preview[bot] avatar dependabot[bot] avatar floric avatar gitter-badger avatar glebov-andrey avatar juliandavidmr avatar kswenson avatar mikecowgill avatar monkeywithacupcake avatar ni55an avatar pbliveshare avatar pszalanski avatar timu-jesse-ezell avatar trsh avatar yoshivda avatar

Stargazers

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

Watchers

 avatar  avatar

naetverk's Issues

React e2e does not run in CI

It looks like that in travis the React e2e test does not use the locally available naetverkjs library but looks for it in node_modules.

Bug: SelectionPlugin prevents input changes

The Selection Plugin stops the default handling and the propagation:

 e.preventDefault();
 e.stopPropagation();

This results in the bug that when active - the input values can not be changed.

Enabled the dragging of multiple selected nodes

   /**
     * Enabled the dragging of multiple selected nodes
     */
    editor.on('nodeselect', (node) => {
      editor.trigger('nodeselected', node);
      if (editor.selected.contains(node)) {
        return false;
      }
    });

Should be included in to the SelectionPlugin

Cleanup Tools

In tools, we have scripts for building and publishing that should share code and have some functions that are not used anymore. Also the build.config.js is not used since we use the build in nx build methods.

Add frame categories

Frames are currently only a comment. To allow a broader use case - they could be renamed, and a category should be added.
image

Fix typing issues in engine.ts

In the engine.ts file are two methods - abort() and lock() that lead to errors:

public async abort() {
    return new Promise((ret) => {
      if (this.state === State.PROCESSED) {
        this.state = State.ABORT;
        this.onAbort = ret;
      } else if (this.state === State.ABORT) {
        this.onAbort();
        this.onAbort = ret;
      } else ret();
    });
  }
 private async lock(node: EngineNode) {
    return new Promise((res) => {
      node.unlockPool = node.unlockPool || [];
      if (node.busy && !node.outputData) node.unlockPool.push(res);
      else res();

      node.busy = true;
    });
  }

They both handle the Promise execution in a way that is not familiar to me, so I need to investigate. But I also do not want to forget it - thats the reason why I created this issue.

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.