vis-rails 1.0.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1 -1
  3. data/README.md +2 -0
  4. data/lib/vis/rails/version.rb +1 -1
  5. data/vendor/assets/javascripts/module/exports-only-timeline.js +55 -0
  6. data/vendor/assets/javascripts/vis-only-timeline.js +23 -0
  7. data/vendor/assets/javascripts/vis.js +3 -3
  8. data/vendor/assets/stylesheets/vis-only-timeline.css +3 -0
  9. data/vendor/assets/vis/DataSet.js +106 -130
  10. data/vendor/assets/vis/DataView.js +35 -37
  11. data/vendor/assets/vis/graph/Edge.js +225 -45
  12. data/vendor/assets/vis/graph/Graph.js +120 -24
  13. data/vendor/assets/vis/graph/Node.js +16 -16
  14. data/vendor/assets/vis/graph/graphMixins/HierarchicalLayoutMixin.js +1 -1
  15. data/vendor/assets/vis/graph/graphMixins/ManipulationMixin.js +143 -0
  16. data/vendor/assets/vis/graph/graphMixins/SelectionMixin.js +81 -3
  17. data/vendor/assets/vis/graph3d/Graph3d.js +3306 -0
  18. data/vendor/assets/vis/module/exports.js +2 -3
  19. data/vendor/assets/vis/timeline/Range.js +93 -80
  20. data/vendor/assets/vis/timeline/Timeline.js +525 -428
  21. data/vendor/assets/vis/timeline/component/Component.js +19 -53
  22. data/vendor/assets/vis/timeline/component/CurrentTime.js +57 -25
  23. data/vendor/assets/vis/timeline/component/CustomTime.js +55 -19
  24. data/vendor/assets/vis/timeline/component/Group.js +47 -50
  25. data/vendor/assets/vis/timeline/component/ItemSet.js +402 -206
  26. data/vendor/assets/vis/timeline/component/TimeAxis.js +112 -169
  27. data/vendor/assets/vis/timeline/component/css/animation.css +33 -0
  28. data/vendor/assets/vis/timeline/component/css/currenttime.css +1 -1
  29. data/vendor/assets/vis/timeline/component/css/customtime.css +1 -1
  30. data/vendor/assets/vis/timeline/component/css/item.css +1 -11
  31. data/vendor/assets/vis/timeline/component/css/itemset.css +13 -18
  32. data/vendor/assets/vis/timeline/component/css/labelset.css +8 -6
  33. data/vendor/assets/vis/timeline/component/css/panel.css +56 -13
  34. data/vendor/assets/vis/timeline/component/css/timeaxis.css +15 -8
  35. data/vendor/assets/vis/timeline/component/item/Item.js +16 -15
  36. data/vendor/assets/vis/timeline/component/item/ItemBox.js +30 -30
  37. data/vendor/assets/vis/timeline/component/item/ItemPoint.js +20 -21
  38. data/vendor/assets/vis/timeline/component/item/ItemRange.js +23 -24
  39. data/vendor/assets/vis/timeline/component/item/ItemRangeOverflow.js +10 -10
  40. data/vendor/assets/vis/timeline/stack.js +5 -5
  41. data/vendor/assets/vis/util.js +81 -35
  42. metadata +7 -4
  43. data/vendor/assets/vis/timeline/component/Panel.js +0 -170
  44. data/vendor/assets/vis/timeline/component/RootPanel.js +0 -176
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vis-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - AlexVangelov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-04 00:00:00.000000000 Z
11
+ date: 2014-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: momentjs-rails
@@ -87,7 +87,10 @@ files:
87
87
  - lib/vis/rails/engine.rb
88
88
  - lib/vis/rails/version.rb
89
89
  - vendor/assets/component/emitter.js
90
+ - vendor/assets/javascripts/module/exports-only-timeline.js
91
+ - vendor/assets/javascripts/vis-only-timeline.js
90
92
  - vendor/assets/javascripts/vis.js
93
+ - vendor/assets/stylesheets/vis-only-timeline.css
91
94
  - vendor/assets/stylesheets/vis.css
92
95
  - vendor/assets/vis/DataSet.js
93
96
  - vendor/assets/vis/DataView.js
@@ -127,6 +130,7 @@ files:
127
130
  - vendor/assets/vis/graph/img/upArrow.png
128
131
  - vendor/assets/vis/graph/img/zoomExtends.png
129
132
  - vendor/assets/vis/graph/shapes.js
133
+ - vendor/assets/vis/graph3d/Graph3d.js
130
134
  - vendor/assets/vis/module/exports.js
131
135
  - vendor/assets/vis/module/header.js
132
136
  - vendor/assets/vis/module/imports.js
@@ -139,9 +143,8 @@ files:
139
143
  - vendor/assets/vis/timeline/component/CustomTime.js
140
144
  - vendor/assets/vis/timeline/component/Group.js
141
145
  - vendor/assets/vis/timeline/component/ItemSet.js
142
- - vendor/assets/vis/timeline/component/Panel.js
143
- - vendor/assets/vis/timeline/component/RootPanel.js
144
146
  - vendor/assets/vis/timeline/component/TimeAxis.js
147
+ - vendor/assets/vis/timeline/component/css/animation.css
145
148
  - vendor/assets/vis/timeline/component/css/currenttime.css
146
149
  - vendor/assets/vis/timeline/component/css/customtime.css
147
150
  - vendor/assets/vis/timeline/component/css/item.css
@@ -1,170 +0,0 @@
1
- /**
2
- * A panel can contain components
3
- * @param {Object} [options] Available parameters:
4
- * {String | Number | function} [left]
5
- * {String | Number | function} [top]
6
- * {String | Number | function} [width]
7
- * {String | Number | function} [height]
8
- * {String | function} [className]
9
- * @constructor Panel
10
- * @extends Component
11
- */
12
- function Panel(options) {
13
- this.id = util.randomUUID();
14
- this.parent = null;
15
- this.childs = [];
16
-
17
- this.options = options || {};
18
-
19
- // create frame
20
- this.frame = (typeof document !== 'undefined') ? document.createElement('div') : null;
21
- }
22
-
23
- Panel.prototype = new Component();
24
-
25
- /**
26
- * Set options. Will extend the current options.
27
- * @param {Object} [options] Available parameters:
28
- * {String | function} [className]
29
- * {String | Number | function} [left]
30
- * {String | Number | function} [top]
31
- * {String | Number | function} [width]
32
- * {String | Number | function} [height]
33
- */
34
- Panel.prototype.setOptions = Component.prototype.setOptions;
35
-
36
- /**
37
- * Get the outer frame of the panel
38
- * @returns {HTMLElement} frame
39
- */
40
- Panel.prototype.getFrame = function () {
41
- return this.frame;
42
- };
43
-
44
- /**
45
- * Append a child to the panel
46
- * @param {Component} child
47
- */
48
- Panel.prototype.appendChild = function (child) {
49
- this.childs.push(child);
50
- child.parent = this;
51
-
52
- // attach to the DOM
53
- var frame = child.getFrame();
54
- if (frame) {
55
- if (frame.parentNode) {
56
- frame.parentNode.removeChild(frame);
57
- }
58
- this.frame.appendChild(frame);
59
- }
60
- };
61
-
62
- /**
63
- * Insert a child to the panel
64
- * @param {Component} child
65
- * @param {Component} beforeChild
66
- */
67
- Panel.prototype.insertBefore = function (child, beforeChild) {
68
- var index = this.childs.indexOf(beforeChild);
69
- if (index != -1) {
70
- this.childs.splice(index, 0, child);
71
- child.parent = this;
72
-
73
- // attach to the DOM
74
- var frame = child.getFrame();
75
- if (frame) {
76
- if (frame.parentNode) {
77
- frame.parentNode.removeChild(frame);
78
- }
79
-
80
- var beforeFrame = beforeChild.getFrame();
81
- if (beforeFrame) {
82
- this.frame.insertBefore(frame, beforeFrame);
83
- }
84
- else {
85
- this.frame.appendChild(frame);
86
- }
87
- }
88
- }
89
- };
90
-
91
- /**
92
- * Remove a child from the panel
93
- * @param {Component} child
94
- */
95
- Panel.prototype.removeChild = function (child) {
96
- var index = this.childs.indexOf(child);
97
- if (index != -1) {
98
- this.childs.splice(index, 1);
99
- child.parent = null;
100
-
101
- // remove from the DOM
102
- var frame = child.getFrame();
103
- if (frame && frame.parentNode) {
104
- this.frame.removeChild(frame);
105
- }
106
- }
107
- };
108
-
109
- /**
110
- * Test whether the panel contains given child
111
- * @param {Component} child
112
- */
113
- Panel.prototype.hasChild = function (child) {
114
- var index = this.childs.indexOf(child);
115
- return (index != -1);
116
- };
117
-
118
- /**
119
- * Repaint the component
120
- * @return {boolean} Returns true if the component was resized since previous repaint
121
- */
122
- Panel.prototype.repaint = function () {
123
- var asString = util.option.asString,
124
- options = this.options,
125
- frame = this.getFrame();
126
-
127
- // update className
128
- frame.className = 'vpanel' + (options.className ? (' ' + asString(options.className)) : '');
129
-
130
- // repaint the child components
131
- var childsResized = this._repaintChilds();
132
-
133
- // update frame size
134
- this._updateSize();
135
-
136
- return this._isResized() || childsResized;
137
- };
138
-
139
- /**
140
- * Repaint all childs of the panel
141
- * @return {boolean} Returns true if the component is resized
142
- * @private
143
- */
144
- Panel.prototype._repaintChilds = function () {
145
- var resized = false;
146
- for (var i = 0, ii = this.childs.length; i < ii; i++) {
147
- resized = this.childs[i].repaint() || resized;
148
- }
149
- return resized;
150
- };
151
-
152
- /**
153
- * Apply the size from options to the panel, and recalculate it's actual size.
154
- * @private
155
- */
156
- Panel.prototype._updateSize = function () {
157
- // apply size
158
- this.frame.style.top = util.option.asSize(this.options.top);
159
- this.frame.style.bottom = util.option.asSize(this.options.bottom);
160
- this.frame.style.left = util.option.asSize(this.options.left);
161
- this.frame.style.right = util.option.asSize(this.options.right);
162
- this.frame.style.width = util.option.asSize(this.options.width, '100%');
163
- this.frame.style.height = util.option.asSize(this.options.height, '');
164
-
165
- // get actual size
166
- this.top = this.frame.offsetTop;
167
- this.left = this.frame.offsetLeft;
168
- this.width = this.frame.offsetWidth;
169
- this.height = this.frame.offsetHeight;
170
- };
@@ -1,176 +0,0 @@
1
- /**
2
- * A root panel can hold components. The root panel must be initialized with
3
- * a DOM element as container.
4
- * @param {HTMLElement} container
5
- * @param {Object} [options] Available parameters: see RootPanel.setOptions.
6
- * @constructor RootPanel
7
- * @extends Panel
8
- */
9
- function RootPanel(container, options) {
10
- this.id = util.randomUUID();
11
- this.container = container;
12
-
13
- this.options = options || {};
14
- this.defaultOptions = {
15
- autoResize: true
16
- };
17
-
18
- // create the HTML DOM
19
- this._create();
20
-
21
- // attach the root panel to the provided container
22
- if (!this.container) throw new Error('Cannot repaint root panel: no container attached');
23
- this.container.appendChild(this.getFrame());
24
-
25
-
26
- this._initWatch();
27
- }
28
-
29
- RootPanel.prototype = new Panel();
30
-
31
- /**
32
- * Create the HTML DOM for the root panel
33
- */
34
- RootPanel.prototype._create = function _create() {
35
- // create frame
36
- this.frame = document.createElement('div');
37
-
38
- // create event listeners for all interesting events, these events will be
39
- // emitted via emitter
40
- this.hammer = Hammer(this.frame, {
41
- prevent_default: true
42
- });
43
- this.listeners = {};
44
-
45
- var me = this;
46
- var events = [
47
- 'touch', 'pinch', 'tap', 'doubletap', 'hold',
48
- 'dragstart', 'drag', 'dragend',
49
- 'mousewheel', 'DOMMouseScroll' // DOMMouseScroll is for Firefox
50
- ];
51
- events.forEach(function (event) {
52
- var listener = function () {
53
- var args = [event].concat(Array.prototype.slice.call(arguments, 0));
54
- me.emit.apply(me, args);
55
- };
56
- me.hammer.on(event, listener);
57
- me.listeners[event] = listener;
58
- });
59
- };
60
-
61
- /**
62
- * Set options. Will extend the current options.
63
- * @param {Object} [options] Available parameters:
64
- * {String | function} [className]
65
- * {String | Number | function} [left]
66
- * {String | Number | function} [top]
67
- * {String | Number | function} [width]
68
- * {String | Number | function} [height]
69
- * {Boolean | function} [autoResize]
70
- */
71
- RootPanel.prototype.setOptions = function setOptions(options) {
72
- if (options) {
73
- util.extend(this.options, options);
74
-
75
- this.repaint();
76
-
77
- this._initWatch();
78
- }
79
- };
80
-
81
- /**
82
- * Get the frame of the root panel
83
- */
84
- RootPanel.prototype.getFrame = function getFrame() {
85
- return this.frame;
86
- };
87
-
88
- /**
89
- * Repaint the root panel
90
- */
91
- RootPanel.prototype.repaint = function repaint() {
92
- // update class name
93
- var options = this.options;
94
- var editable = options.editable.updateTime || options.editable.updateGroup;
95
- var className = 'vis timeline rootpanel ' + options.orientation + (editable ? ' editable' : '');
96
- if (options.className) className += ' ' + util.option.asString(className);
97
- this.frame.className = className;
98
-
99
- // repaint the child components
100
- var childsResized = this._repaintChilds();
101
-
102
- // update frame size
103
- this.frame.style.maxHeight = util.option.asSize(this.options.maxHeight, '');
104
- this.frame.style.minHeight = util.option.asSize(this.options.minHeight, '');
105
- this._updateSize();
106
-
107
- // if the root panel or any of its childs is resized, repaint again,
108
- // as other components may need to be resized accordingly
109
- var resized = this._isResized() || childsResized;
110
- if (resized) {
111
- setTimeout(this.repaint.bind(this), 0);
112
- }
113
- };
114
-
115
- /**
116
- * Initialize watching when option autoResize is true
117
- * @private
118
- */
119
- RootPanel.prototype._initWatch = function _initWatch() {
120
- var autoResize = this.getOption('autoResize');
121
- if (autoResize) {
122
- this._watch();
123
- }
124
- else {
125
- this._unwatch();
126
- }
127
- };
128
-
129
- /**
130
- * Watch for changes in the size of the frame. On resize, the Panel will
131
- * automatically redraw itself.
132
- * @private
133
- */
134
- RootPanel.prototype._watch = function _watch() {
135
- var me = this;
136
-
137
- this._unwatch();
138
-
139
- var checkSize = function checkSize() {
140
- var autoResize = me.getOption('autoResize');
141
- if (!autoResize) {
142
- // stop watching when the option autoResize is changed to false
143
- me._unwatch();
144
- return;
145
- }
146
-
147
- if (me.frame) {
148
- // check whether the frame is resized
149
- if ((me.frame.clientWidth != me.lastWidth) ||
150
- (me.frame.clientHeight != me.lastHeight)) {
151
- me.lastWidth = me.frame.clientWidth;
152
- me.lastHeight = me.frame.clientHeight;
153
- me.repaint();
154
- // TODO: emit a resize event instead?
155
- }
156
- }
157
- };
158
-
159
- // TODO: automatically cleanup the event listener when the frame is deleted
160
- util.addEventListener(window, 'resize', checkSize);
161
-
162
- this.watchTimer = setInterval(checkSize, 1000);
163
- };
164
-
165
- /**
166
- * Stop watching for a resize of the frame.
167
- * @private
168
- */
169
- RootPanel.prototype._unwatch = function _unwatch() {
170
- if (this.watchTimer) {
171
- clearInterval(this.watchTimer);
172
- this.watchTimer = undefined;
173
- }
174
-
175
- // TODO: remove event listener on window.resize
176
- };