<commit_before>Please do not download directly this code - this is the development version and can be unstable. You can find the [latest
stable version here] (https://github.com/ogobrecht/d3-force-apex-plugin/releases/latest).


# d3-force-apex-plugin

This is a D3 force implementation, playground and Oracle APEX plugin, which uses the
[D3 visualization library] (http://d3js.org/) to render a network layout. It has the following features:

* Works with APEX versions 4.2.x and 5.x
* Interactive customization wizard
* Source data can be a XML string, JSON string or JavaScript Object (JSON)
* Link directions are visible and self references are rendered in a nice way - have a look in the online demos
* Node sizes are calculated between given min and max values depending on the SIZEVALUE attribute in your source data
* Node colors are assigned depending on the given COLORVALUE attribute in your source data - if you provide a IMAGE
  attribute for a node, then the image is used instead of a fill color
* Optional tooltips depending on the given INFOSTRING attribute in your source data
* If you have a node attribute called LINK, you can define on which event the URL should be called - default is
  dblclick - try it out in the online demos by double clicking the node KING
* Nodes can be pinned and the current positions can be saved and loaded to predefine a layout - optionally you can
  align the nodes to a grid when they are dragged around
* With the lasso mode you can select nodes and implement a graphical multi select
* The graph can be zoomed between the two configured min and max scale factors and is callable with the API
* There is a JavaScript API to interact with the graph, also including eight events (node click, node double click,
  node contextmenu, node mouse enter, node mouse leave, link click, lasso start, lasso end)
* All eight events are available in APEX - the plugin region can be AJAX refreshed and triggers then also
  apexbeforerefresh and apexafterrefresh
* NEW in 2.0.0: Automatic label placement after force end to prevent overlapping (optional, per default switched off),
  links can now have a COLOR and a INFOSTRING attribute - see also the changelog


## Requirements

* APEX 4.2 or higher, if used as a plugin
* A modern browser, who is able to work with SVG and CSS3 - for more informations see the
  [D3 Wiki] (https://github.com/mbostock/d3/wiki#browser--platform-support)


## Links

* Download of the [latest version] (https://github.com/ogobrecht/d3-force-apex-plugin/releases/latest)
* Plugin demo on [apex.oracle.com] (https://apex.oracle.com/pls/apex/f?p=18290)
* Standalone demo on [github.io] (http://ogobrecht.github.io/d3-force-apex-plugin/)
* API Reference in the [wiki] (https://github.com/ogobrecht/d3-force-apex-plugin/wiki/API-Reference)


## Credits

I would like to say THANK YOU to all the people who share their knowledge. Without this sharing I would not have been
able to create this D3 implementation. Special thanks to <NAME> for his great library and to <NAME> for
mentoring me on Oracle APEX plugin development.


## Changelog

This D3 force implementation uses [semantic versioning] (http://semver.org).
You can find the current version by using the customization wizard or by calling a API method:

    // initialize and run a graph
    var example = net_gobrechts_d3_force().start();

    // check version
    example.version();<commit_msg>correct graph function name<commit_after>Please do not download directly this code - this is the development version and can be unstable. You can find the [latest
stable version here] (https://github.com/ogobrecht/d3-force-apex-plugin/releases/latest).


# d3-force-apex-plugin

This is a D3 force implementation, playground and Oracle APEX plugin, which uses the
[D3 visualization library] (http://d3js.org/) to render a network layout. It has the following features:

* Works with APEX versions 4.2.x and 5.x
* Interactive customization wizard
* Source data can be a XML string, JSON string or JavaScript Object (JSON)
* Link directions are visible and self references are rendered in a nice way - have a look in the online demos
* Node sizes are calculated between given min and max values depending on the SIZEVALUE attribute in your source data
* Node colors are assigned depending on the given COLORVALUE attribute in your source data - if you provide a IMAGE
  attribute for a node, then the image is used instead of a fill color
* Optional tooltips depending on the given INFOSTRING attribute in your source data
* If you have a node attribute called LINK, you can define on which event the URL should be called - default is
  dblclick - try it out in the online demos by double clicking the node KING
* Nodes can be pinned and the current positions can be saved and loaded to predefine a layout - optionally you can
  align the nodes to a grid when they are dragged around
* With the lasso mode you can select nodes and implement a graphical multi select
* The graph can be zoomed between the two configured min and max scale factors and is callable with the API
* There is a JavaScript API to interact with the graph, also including eight events (node click, node double click,
  node contextmenu, node mouse enter, node mouse leave, link click, lasso start, lasso end)
* All eight events are available in APEX - the plugin region can be AJAX refreshed and triggers then also
  apexbeforerefresh and apexafterrefresh
* NEW in 2.0.0: Automatic label placement after force end to prevent overlapping (optional, per default switched off),
  links can now have a COLOR and a INFOSTRING attribute - see also the changelog


## Requirements

* APEX 4.2 or higher, if used as a plugin
* A modern browser, who is able to work with SVG and CSS3 - for more informations see the
  [D3 Wiki] (https://github.com/mbostock/d3/wiki#browser--platform-support)


## Links

* Download of the [latest version] (https://github.com/ogobrecht/d3-force-apex-plugin/releases/latest)
* Plugin demo on [apex.oracle.com] (https://apex.oracle.com/pls/apex/f?p=18290)
* Standalone demo on [github.io] (http://ogobrecht.github.io/d3-force-apex-plugin/)
* API Reference in the [wiki] (https://github.com/ogobrecht/d3-force-apex-plugin/wiki/API-Reference)


## Credits

I would like to say THANK YOU to all the people who share their knowledge. Without this sharing I would not have been
able to create this D3 implementation. Special thanks to <NAME> for his great library and to <NAME> for
mentoring me on Oracle APEX plugin development.


## Changelog

This D3 force implementation uses [semantic versioning] (http://semver.org).
You can find the current version by using the customization wizard or by calling a API method:

    // initialize and run a graph
    var example = netGobrechtsD3Force().start();

    // check version
    example.version();
{'fraction_non_alphanumeric': 0.06154294881143357, 'fraction_numerical': 0.00787516406591804, 'mean_word_length': 4.133233532934132, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 10, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '549984', 'n_tokens_mistral': 1893, 'n_tokens_neox': 1812, 'n_words': 972}