diff --git a/build/demo/add.js b/build/demo/add.js
index 94b9f3c..0e5e39a 100644
--- a/build/demo/add.js
+++ b/build/demo/add.js
@@ -1,60 +1,14 @@
'use strict';
+var data = new Trie();
+
+data.add('go');
+data.add('get');
+data.add('boo');
+data.add('ba');
+
document.addEventListener('DOMContentLoaded', function () {
- var WIDTH = 700;
- var HEIGHT = 600;
- var MARGIN = 100;
-
- var svg = d3.select('body').append('svg').attr('width', WIDTH + MARGIN).attr('height', HEIGHT + MARGIN).attr('viewBox', '-' + MARGIN / 2 + ' -' + MARGIN / 2 + ' ' + WIDTH + ' ' + HEIGHT);
-
- svg.append('g').attr('class', 'lines');
-
- var tree = d3.layout.tree().size([WIDTH - MARGIN, HEIGHT - MARGIN]);
-
draw();
-
- function draw() {
- console.dir(data.root);
- var nodes = tree.nodes(data.root);
- var links = tree.links(nodes);
-
- var linkElements = svg.select('g.lines').selectAll('line').data(links);
- linkElements.exit().remove();
- linkElements.enter().append('line');
-
- linkElements.attr('x1', function (d) {
- return d.source.x;
- }).attr('y1', function (d) {
- return d.source.y;
- }).attr('x2', function (d) {
- return d.target.x;
- }).attr('y2', function (d) {
- return d.target.y;
- }).style('stroke', 'rgb(72, 213, 91)').style('stroke-width', '2px');
-
- var nodeElements = svg.selectAll('g.node').data(nodes);
- nodeElements.exit().remove();
- var nodesEnter = nodeElements.enter().append('g').attr('class', 'node');
-
- nodeElements.attr('transform', function (d) {
- return 'translate(' + d.x + ', ' + d.y + ')';
- }).style('font-family', 'monospace').style('font-size', '11px').attr('data-word', function (d) {
- return d.name;
- });
-
- nodesEnter.append('circle');
-
- var circles = nodeElements.selectAll('circle');
- circles.attr('r', 25).style('fill', 'rgb(28, 236, 166)').style('stroke', 'rgb(17, 172, 144)').style('fill', 'rgb(28, 236, 166)').style('stroke', 'rgb(17, 172, 144)').attr('r', 10).transition().ease(d3.ease('elastic')).duration(700).attr('r', 25);
-
- nodesEnter.append('text');
- var texts = svg.selectAll('g.node text').data(nodes);
-
- texts.attr('dy', 5).html(function (d) {
- return '' + d.name.split('').join('') + '';
- }).attr('text-anchor', 'middle').style('fill', 'white');
- }
-
// Form and other stuff
var form = document.querySelector('form');
diff --git a/build/demo/colors.js b/build/demo/colors.js
new file mode 100644
index 0000000..3d10ac2
--- /dev/null
+++ b/build/demo/colors.js
@@ -0,0 +1,19 @@
+'use strict';
+
+var data = new Trie();
+
+data.add('colors');
+data.add('coffee');
+data.add('codecs');
+
+data.add('boo');
+data.add('boloss');
+data.add('badass');
+
+data.add('rebecca');
+data.add('robots');
+data.add('rio');
+
+document.addEventListener('DOMContentLoaded', function () {
+ draw();
+});
diff --git a/build/demo/draw.js b/build/demo/draw.js
new file mode 100644
index 0000000..094ad6c
--- /dev/null
+++ b/build/demo/draw.js
@@ -0,0 +1,52 @@
+'use strict';
+
+var WIDTH = 800;
+var HEIGHT = 600;
+var MARGIN = 100;
+
+var svg = d3.select('body').append('svg').attr('width', WIDTH + MARGIN).attr('height', HEIGHT + MARGIN).attr('viewBox', '-' + MARGIN / 2 + ' -' + MARGIN / 2 + ' ' + WIDTH + ' ' + HEIGHT);
+
+svg.append('g').attr('class', 'lines');
+
+var tree = d3.layout.tree().size([WIDTH - MARGIN, HEIGHT - MARGIN]);
+
+function draw() {
+ var nodes = tree.nodes(data.root);
+ var links = tree.links(nodes);
+
+ var linkElements = svg.select('g.lines').selectAll('line').data(links);
+ linkElements.exit().remove();
+ linkElements.enter().append('line');
+
+ linkElements.attr('x1', function (d) {
+ return d.source.x;
+ }).attr('y1', function (d) {
+ return d.source.y;
+ }).attr('x2', function (d) {
+ return d.target.x;
+ }).attr('y2', function (d) {
+ return d.target.y;
+ }).style('stroke', 'rgb(72, 213, 91)').style('stroke-width', '2px');
+
+ var nodeElements = svg.selectAll('g.node').data(nodes);
+ nodeElements.exit().remove();
+ var nodesEnter = nodeElements.enter().append('g').attr('class', 'node');
+
+ nodeElements.attr('transform', function (d) {
+ return 'translate(' + d.x + ', ' + d.y + ')';
+ }).style('font-family', 'monospace').style('font-size', '11px').attr('data-word', function (d) {
+ return d.name;
+ });
+
+ nodesEnter.append('circle');
+
+ var circles = nodeElements.selectAll('circle');
+ circles.attr('r', 25).style('fill', 'rgb(28, 236, 166)').style('stroke', 'rgb(17, 172, 144)').style('fill', 'rgb(28, 236, 166)').style('stroke', 'rgb(17, 172, 144)').attr('r', 10).transition().ease(d3.ease('elastic')).duration(700).attr('r', 25);
+
+ nodesEnter.append('text');
+ var texts = svg.selectAll('g.node text').data(nodes);
+
+ texts.attr('dy', 5).html(function (d) {
+ return '' + d.name.split('').join('') + '';
+ }).attr('text-anchor', 'middle').style('fill', 'white');
+}
diff --git a/demo/add.html b/demo/add.html
index 32f12ec..3170545 100644
--- a/demo/add.html
+++ b/demo/add.html
@@ -105,5 +105,5 @@
-
+
diff --git a/demo/add.js b/demo/add.js
index 3a9c925..b50d90c 100644
--- a/demo/add.js
+++ b/demo/add.js
@@ -1,69 +1,12 @@
+let data = new Trie();
+
+data.add('go');
+data.add('get');
+data.add('boo');
+data.add('ba');
+
document.addEventListener('DOMContentLoaded', () => {
- const WIDTH = 700;
- const HEIGHT = 600;
- const MARGIN = 100;
-
- let svg = d3.select('body').append('svg')
- .attr('width', WIDTH + MARGIN)
- .attr('height', HEIGHT + MARGIN)
- .attr('viewBox', `-${MARGIN / 2} -${MARGIN / 2} ${WIDTH} ${HEIGHT}`);
-
- svg.append('g').attr('class', 'lines');
-
- let tree = d3.layout.tree()
- .size([WIDTH - MARGIN, HEIGHT - MARGIN]);
-
draw();
-
- function draw() {
- console.dir(data.root);
- let nodes = tree.nodes(data.root);
- let links = tree.links(nodes);
-
- let linkElements = svg.select('g.lines').selectAll('line').data(links);
- linkElements.exit().remove();
- linkElements.enter().append('line');
-
- linkElements.attr('x1', d => d.source.x)
- .attr('y1', d => d.source.y)
- .attr('x2', d => d.target.x)
- .attr('y2', d => d.target.y)
- .style('stroke', 'rgb(72, 213, 91)')
- .style('stroke-width', '2px');
-
- let nodeElements = svg.selectAll('g.node').data(nodes);
- nodeElements.exit().remove();
- let nodesEnter = nodeElements.enter().append('g').attr('class', 'node');
-
- nodeElements.attr('transform', d => `translate(${d.x}, ${d.y})`)
- .style('font-family', 'monospace')
- .style('font-size', '11px')
- .attr('data-word', d => d.name);
-
- nodesEnter.append('circle');
-
- let circles = nodeElements.selectAll('circle');
- circles.attr('r', 25)
- .style('fill', 'rgb(28, 236, 166)')
- .style('stroke', 'rgb(17, 172, 144)')
- .style('fill', 'rgb(28, 236, 166)')
- .style('stroke', 'rgb(17, 172, 144)')
- .attr('r', 10)
- .transition()
- .ease(d3.ease('elastic'))
- .duration(700)
- .attr('r', 25);
-
-
- nodesEnter.append('text');
- let texts = svg.selectAll('g.node text').data(nodes);
-
- texts.attr('dy', 5)
- .html(d => `${d.name.split('').join('')}`)
- .attr('text-anchor', 'middle')
- .style('fill', 'white');
- }
-
// Form and other stuff
const form = document.querySelector('form');
diff --git a/demo/colors.html b/demo/colors.html
new file mode 100644
index 0000000..b1ef038
--- /dev/null
+++ b/demo/colors.html
@@ -0,0 +1,11 @@
+
+ Colors Trie
+
+
+
+
+
+
+
+
+
diff --git a/demo/colors.js b/demo/colors.js
new file mode 100644
index 0000000..4dc311a
--- /dev/null
+++ b/demo/colors.js
@@ -0,0 +1,17 @@
+let data = new Trie();
+
+data.add('colors');
+data.add('coffee');
+data.add('codecs');
+
+data.add('boo');
+data.add('boloss');
+data.add('badass');
+
+data.add('rebecca');
+data.add('robots');
+data.add('rio');
+
+document.addEventListener('DOMContentLoaded', () => {
+ draw();
+});
diff --git a/demo/data.js b/demo/data.js
deleted file mode 100644
index ab29677..0000000
--- a/demo/data.js
+++ /dev/null
@@ -1,13 +0,0 @@
-window.data = new Trie();
-
-data.add('colors');
-data.add('coffee');
-// data.add('codecs');
-
-data.add('boo');
-// data.add('boloss');
-// data.add('badass');
-
-// data.add('rebecca');
-// data.add('robots');
-// data.add('rio');
diff --git a/demo/draw.js b/demo/draw.js
new file mode 100644
index 0000000..1740c62
--- /dev/null
+++ b/demo/draw.js
@@ -0,0 +1,61 @@
+const WIDTH = 800;
+const HEIGHT = 600;
+const MARGIN = 100;
+
+let svg = d3.select('body').append('svg')
+ .attr('width', WIDTH + MARGIN)
+ .attr('height', HEIGHT + MARGIN)
+ .attr('viewBox', `-${MARGIN / 2} -${MARGIN / 2} ${WIDTH} ${HEIGHT}`);
+
+svg.append('g').attr('class', 'lines');
+
+let tree = d3.layout.tree()
+ .size([WIDTH - MARGIN, HEIGHT - MARGIN]);
+
+function draw() {
+ let nodes = tree.nodes(data.root);
+ let links = tree.links(nodes);
+
+ let linkElements = svg.select('g.lines').selectAll('line').data(links);
+ linkElements.exit().remove();
+ linkElements.enter().append('line');
+
+ linkElements.attr('x1', d => d.source.x)
+ .attr('y1', d => d.source.y)
+ .attr('x2', d => d.target.x)
+ .attr('y2', d => d.target.y)
+ .style('stroke', 'rgb(72, 213, 91)')
+ .style('stroke-width', '2px');
+
+ let nodeElements = svg.selectAll('g.node').data(nodes);
+ nodeElements.exit().remove();
+ let nodesEnter = nodeElements.enter().append('g').attr('class', 'node');
+
+ nodeElements.attr('transform', d => `translate(${d.x}, ${d.y})`)
+ .style('font-family', 'monospace')
+ .style('font-size', '11px')
+ .attr('data-word', d => d.name);
+
+ nodesEnter.append('circle');
+
+ let circles = nodeElements.selectAll('circle');
+ circles.attr('r', 25)
+ .style('fill', 'rgb(28, 236, 166)')
+ .style('stroke', 'rgb(17, 172, 144)')
+ .style('fill', 'rgb(28, 236, 166)')
+ .style('stroke', 'rgb(17, 172, 144)')
+ .attr('r', 10)
+ .transition()
+ .ease(d3.ease('elastic'))
+ .duration(700)
+ .attr('r', 25);
+
+
+ nodesEnter.append('text');
+ let texts = svg.selectAll('g.node text').data(nodes);
+
+ texts.attr('dy', 5)
+ .html(d => `${d.name.split('').join('')}`)
+ .attr('text-anchor', 'middle')
+ .style('fill', 'white');
+}