vis-rails 2.0.0 → 2.0.1

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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/lib/vis/rails/version.rb +1 -1
  3. data/vendor/assets/javascripts/vis.js +26 -26
  4. metadata +16 -85
  5. data/vendor/assets/vis/DataSet.js +0 -926
  6. data/vendor/assets/vis/DataView.js +0 -283
  7. data/vendor/assets/vis/graph/Edge.js +0 -957
  8. data/vendor/assets/vis/graph/Graph.js +0 -2291
  9. data/vendor/assets/vis/graph/Groups.js +0 -80
  10. data/vendor/assets/vis/graph/Images.js +0 -41
  11. data/vendor/assets/vis/graph/Node.js +0 -966
  12. data/vendor/assets/vis/graph/Popup.js +0 -132
  13. data/vendor/assets/vis/graph/css/graph-manipulation.css +0 -128
  14. data/vendor/assets/vis/graph/css/graph-navigation.css +0 -66
  15. data/vendor/assets/vis/graph/dotparser.js +0 -829
  16. data/vendor/assets/vis/graph/graphMixins/ClusterMixin.js +0 -1143
  17. data/vendor/assets/vis/graph/graphMixins/HierarchicalLayoutMixin.js +0 -311
  18. data/vendor/assets/vis/graph/graphMixins/ManipulationMixin.js +0 -576
  19. data/vendor/assets/vis/graph/graphMixins/MixinLoader.js +0 -199
  20. data/vendor/assets/vis/graph/graphMixins/NavigationMixin.js +0 -205
  21. data/vendor/assets/vis/graph/graphMixins/SectorsMixin.js +0 -552
  22. data/vendor/assets/vis/graph/graphMixins/SelectionMixin.js +0 -648
  23. data/vendor/assets/vis/graph/graphMixins/physics/BarnesHut.js +0 -398
  24. data/vendor/assets/vis/graph/graphMixins/physics/HierarchialRepulsion.js +0 -64
  25. data/vendor/assets/vis/graph/graphMixins/physics/PhysicsMixin.js +0 -697
  26. data/vendor/assets/vis/graph/graphMixins/physics/Repulsion.js +0 -66
  27. data/vendor/assets/vis/graph/img/acceptDeleteIcon.png +0 -0
  28. data/vendor/assets/vis/graph/img/addNodeIcon.png +0 -0
  29. data/vendor/assets/vis/graph/img/backIcon.png +0 -0
  30. data/vendor/assets/vis/graph/img/connectIcon.png +0 -0
  31. data/vendor/assets/vis/graph/img/cross.png +0 -0
  32. data/vendor/assets/vis/graph/img/cross2.png +0 -0
  33. data/vendor/assets/vis/graph/img/deleteIcon.png +0 -0
  34. data/vendor/assets/vis/graph/img/downArrow.png +0 -0
  35. data/vendor/assets/vis/graph/img/editIcon.png +0 -0
  36. data/vendor/assets/vis/graph/img/leftArrow.png +0 -0
  37. data/vendor/assets/vis/graph/img/minus.png +0 -0
  38. data/vendor/assets/vis/graph/img/plus.png +0 -0
  39. data/vendor/assets/vis/graph/img/rightArrow.png +0 -0
  40. data/vendor/assets/vis/graph/img/upArrow.png +0 -0
  41. data/vendor/assets/vis/graph/img/zoomExtends.png +0 -0
  42. data/vendor/assets/vis/graph/shapes.js +0 -225
  43. data/vendor/assets/vis/graph3d/Graph3d.js +0 -3306
  44. data/vendor/assets/vis/module/exports.js +0 -65
  45. data/vendor/assets/vis/module/header.js +0 -24
  46. data/vendor/assets/vis/module/imports.js +0 -31
  47. data/vendor/assets/vis/shim.js +0 -252
  48. data/vendor/assets/vis/timeline/Range.js +0 -532
  49. data/vendor/assets/vis/timeline/TimeStep.js +0 -466
  50. data/vendor/assets/vis/timeline/Timeline.js +0 -851
  51. data/vendor/assets/vis/timeline/component/Component.js +0 -52
  52. data/vendor/assets/vis/timeline/component/CurrentTime.js +0 -128
  53. data/vendor/assets/vis/timeline/component/CustomTime.js +0 -182
  54. data/vendor/assets/vis/timeline/component/Group.js +0 -470
  55. data/vendor/assets/vis/timeline/component/ItemSet.js +0 -1332
  56. data/vendor/assets/vis/timeline/component/TimeAxis.js +0 -389
  57. data/vendor/assets/vis/timeline/component/css/animation.css +0 -33
  58. data/vendor/assets/vis/timeline/component/css/currenttime.css +0 -5
  59. data/vendor/assets/vis/timeline/component/css/customtime.css +0 -6
  60. data/vendor/assets/vis/timeline/component/css/item.css +0 -107
  61. data/vendor/assets/vis/timeline/component/css/itemset.css +0 -33
  62. data/vendor/assets/vis/timeline/component/css/labelset.css +0 -36
  63. data/vendor/assets/vis/timeline/component/css/panel.css +0 -71
  64. data/vendor/assets/vis/timeline/component/css/timeaxis.css +0 -48
  65. data/vendor/assets/vis/timeline/component/css/timeline.css +0 -2
  66. data/vendor/assets/vis/timeline/component/item/Item.js +0 -139
  67. data/vendor/assets/vis/timeline/component/item/ItemBox.js +0 -230
  68. data/vendor/assets/vis/timeline/component/item/ItemPoint.js +0 -190
  69. data/vendor/assets/vis/timeline/component/item/ItemRange.js +0 -262
  70. data/vendor/assets/vis/timeline/component/item/ItemRangeOverflow.js +0 -57
  71. data/vendor/assets/vis/timeline/img/delete.png +0 -0
  72. data/vendor/assets/vis/timeline/stack.js +0 -112
  73. data/vendor/assets/vis/util.js +0 -990
@@ -1,389 +0,0 @@
1
- /**
2
- * A horizontal time axis
3
- * @param {{dom: Object, domProps: Object, emitter: Emitter, range: Range}} body
4
- * @param {Object} [options] See TimeAxis.setOptions for the available
5
- * options.
6
- * @constructor TimeAxis
7
- * @extends Component
8
- */
9
- function TimeAxis (body, options) {
10
- this.dom = {
11
- foreground: null,
12
- majorLines: [],
13
- majorTexts: [],
14
- minorLines: [],
15
- minorTexts: [],
16
- redundant: {
17
- majorLines: [],
18
- majorTexts: [],
19
- minorLines: [],
20
- minorTexts: []
21
- }
22
- };
23
- this.props = {
24
- range: {
25
- start: 0,
26
- end: 0,
27
- minimumStep: 0
28
- },
29
- lineTop: 0
30
- };
31
-
32
- this.defaultOptions = {
33
- orientation: 'bottom', // supported: 'top', 'bottom'
34
- // TODO: implement timeaxis orientations 'left' and 'right'
35
- showMinorLabels: true,
36
- showMajorLabels: true
37
- };
38
- this.options = util.extend({}, this.defaultOptions);
39
-
40
- this.body = body;
41
-
42
- // create the HTML DOM
43
- this._create();
44
-
45
- this.setOptions(options);
46
- }
47
-
48
- TimeAxis.prototype = new Component();
49
-
50
- /**
51
- * Set options for the TimeAxis.
52
- * Parameters will be merged in current options.
53
- * @param {Object} options Available options:
54
- * {string} [orientation]
55
- * {boolean} [showMinorLabels]
56
- * {boolean} [showMajorLabels]
57
- */
58
- TimeAxis.prototype.setOptions = function(options) {
59
- if (options) {
60
- // copy all options that we know
61
- util.selectiveExtend(['orientation', 'showMinorLabels', 'showMajorLabels'], this.options, options);
62
- }
63
- };
64
-
65
- /**
66
- * Create the HTML DOM for the TimeAxis
67
- */
68
- TimeAxis.prototype._create = function() {
69
- this.dom.foreground = document.createElement('div');
70
- this.dom.background = document.createElement('div');
71
-
72
- this.dom.foreground.className = 'timeaxis foreground';
73
- this.dom.background.className = 'timeaxis background';
74
- };
75
-
76
- /**
77
- * Destroy the TimeAxis
78
- */
79
- TimeAxis.prototype.destroy = function() {
80
- // remove from DOM
81
- if (this.dom.foreground.parentNode) {
82
- this.dom.foreground.parentNode.removeChild(this.dom.foreground);
83
- }
84
- if (this.dom.background.parentNode) {
85
- this.dom.background.parentNode.removeChild(this.dom.background);
86
- }
87
-
88
- this.body = null;
89
- };
90
-
91
- /**
92
- * Repaint the component
93
- * @return {boolean} Returns true if the component is resized
94
- */
95
- TimeAxis.prototype.redraw = function () {
96
- var options = this.options,
97
- props = this.props,
98
- foreground = this.dom.foreground,
99
- background = this.dom.background;
100
-
101
- // determine the correct parent DOM element (depending on option orientation)
102
- var parent = (options.orientation == 'top') ? this.body.dom.top : this.body.dom.bottom;
103
- var parentChanged = (foreground.parentNode !== parent);
104
-
105
- // calculate character width and height
106
- this._calculateCharSize();
107
-
108
- // TODO: recalculate sizes only needed when parent is resized or options is changed
109
- var orientation = this.options.orientation,
110
- showMinorLabels = this.options.showMinorLabels,
111
- showMajorLabels = this.options.showMajorLabels;
112
-
113
- // determine the width and height of the elemens for the axis
114
- props.minorLabelHeight = showMinorLabels ? props.minorCharHeight : 0;
115
- props.majorLabelHeight = showMajorLabels ? props.majorCharHeight : 0;
116
- props.height = props.minorLabelHeight + props.majorLabelHeight;
117
- props.width = foreground.offsetWidth;
118
-
119
- props.minorLineHeight = this.body.domProps.root.height - props.majorLabelHeight -
120
- (options.orientation == 'top' ? this.body.domProps.bottom.height : this.body.domProps.top.height);
121
- props.minorLineWidth = 1; // TODO: really calculate width
122
- props.majorLineHeight = props.minorLineHeight + props.majorLabelHeight;
123
- props.majorLineWidth = 1; // TODO: really calculate width
124
-
125
- // take foreground and background offline while updating (is almost twice as fast)
126
- var foregroundNextSibling = foreground.nextSibling;
127
- var backgroundNextSibling = background.nextSibling;
128
- foreground.parentNode && foreground.parentNode.removeChild(foreground);
129
- background.parentNode && background.parentNode.removeChild(background);
130
-
131
- foreground.style.height = this.props.height + 'px';
132
-
133
- this._repaintLabels();
134
-
135
- // put DOM online again (at the same place)
136
- if (foregroundNextSibling) {
137
- parent.insertBefore(foreground, foregroundNextSibling);
138
- }
139
- else {
140
- parent.appendChild(foreground)
141
- }
142
- if (backgroundNextSibling) {
143
- this.body.dom.backgroundVertical.insertBefore(background, backgroundNextSibling);
144
- }
145
- else {
146
- this.body.dom.backgroundVertical.appendChild(background)
147
- }
148
-
149
- return this._isResized() || parentChanged;
150
- };
151
-
152
- /**
153
- * Repaint major and minor text labels and vertical grid lines
154
- * @private
155
- */
156
- TimeAxis.prototype._repaintLabels = function () {
157
- var orientation = this.options.orientation;
158
-
159
- // calculate range and step (step such that we have space for 7 characters per label)
160
- var start = util.convert(this.body.range.start, 'Number'),
161
- end = util.convert(this.body.range.end, 'Number'),
162
- minimumStep = this.body.util.toTime((this.props.minorCharWidth || 10) * 7).valueOf()
163
- -this.body.util.toTime(0).valueOf();
164
- var step = new TimeStep(new Date(start), new Date(end), minimumStep);
165
- this.step = step;
166
-
167
- // Move all DOM elements to a "redundant" list, where they
168
- // can be picked for re-use, and clear the lists with lines and texts.
169
- // At the end of the function _repaintLabels, left over elements will be cleaned up
170
- var dom = this.dom;
171
- dom.redundant.majorLines = dom.majorLines;
172
- dom.redundant.majorTexts = dom.majorTexts;
173
- dom.redundant.minorLines = dom.minorLines;
174
- dom.redundant.minorTexts = dom.minorTexts;
175
- dom.majorLines = [];
176
- dom.majorTexts = [];
177
- dom.minorLines = [];
178
- dom.minorTexts = [];
179
-
180
- step.first();
181
- var xFirstMajorLabel = undefined;
182
- var max = 0;
183
- while (step.hasNext() && max < 1000) {
184
- max++;
185
- var cur = step.getCurrent(),
186
- x = this.body.util.toScreen(cur),
187
- isMajor = step.isMajor();
188
-
189
- // TODO: lines must have a width, such that we can create css backgrounds
190
-
191
- if (this.options.showMinorLabels) {
192
- this._repaintMinorText(x, step.getLabelMinor(), orientation);
193
- }
194
-
195
- if (isMajor && this.options.showMajorLabels) {
196
- if (x > 0) {
197
- if (xFirstMajorLabel == undefined) {
198
- xFirstMajorLabel = x;
199
- }
200
- this._repaintMajorText(x, step.getLabelMajor(), orientation);
201
- }
202
- this._repaintMajorLine(x, orientation);
203
- }
204
- else {
205
- this._repaintMinorLine(x, orientation);
206
- }
207
-
208
- step.next();
209
- }
210
-
211
- // create a major label on the left when needed
212
- if (this.options.showMajorLabels) {
213
- var leftTime = this.body.util.toTime(0),
214
- leftText = step.getLabelMajor(leftTime),
215
- widthText = leftText.length * (this.props.majorCharWidth || 10) + 10; // upper bound estimation
216
-
217
- if (xFirstMajorLabel == undefined || widthText < xFirstMajorLabel) {
218
- this._repaintMajorText(0, leftText, orientation);
219
- }
220
- }
221
-
222
- // Cleanup leftover DOM elements from the redundant list
223
- util.forEach(this.dom.redundant, function (arr) {
224
- while (arr.length) {
225
- var elem = arr.pop();
226
- if (elem && elem.parentNode) {
227
- elem.parentNode.removeChild(elem);
228
- }
229
- }
230
- });
231
- };
232
-
233
- /**
234
- * Create a minor label for the axis at position x
235
- * @param {Number} x
236
- * @param {String} text
237
- * @param {String} orientation "top" or "bottom" (default)
238
- * @private
239
- */
240
- TimeAxis.prototype._repaintMinorText = function (x, text, orientation) {
241
- // reuse redundant label
242
- var label = this.dom.redundant.minorTexts.shift();
243
-
244
- if (!label) {
245
- // create new label
246
- var content = document.createTextNode('');
247
- label = document.createElement('div');
248
- label.appendChild(content);
249
- label.className = 'text minor';
250
- this.dom.foreground.appendChild(label);
251
- }
252
- this.dom.minorTexts.push(label);
253
-
254
- label.childNodes[0].nodeValue = text;
255
-
256
- label.style.top = (orientation == 'top') ? (this.props.majorLabelHeight + 'px') : '0';
257
- label.style.left = x + 'px';
258
- //label.title = title; // TODO: this is a heavy operation
259
- };
260
-
261
- /**
262
- * Create a Major label for the axis at position x
263
- * @param {Number} x
264
- * @param {String} text
265
- * @param {String} orientation "top" or "bottom" (default)
266
- * @private
267
- */
268
- TimeAxis.prototype._repaintMajorText = function (x, text, orientation) {
269
- // reuse redundant label
270
- var label = this.dom.redundant.majorTexts.shift();
271
-
272
- if (!label) {
273
- // create label
274
- var content = document.createTextNode(text);
275
- label = document.createElement('div');
276
- label.className = 'text major';
277
- label.appendChild(content);
278
- this.dom.foreground.appendChild(label);
279
- }
280
- this.dom.majorTexts.push(label);
281
-
282
- label.childNodes[0].nodeValue = text;
283
- //label.title = title; // TODO: this is a heavy operation
284
-
285
- label.style.top = (orientation == 'top') ? '0' : (this.props.minorLabelHeight + 'px');
286
- label.style.left = x + 'px';
287
- };
288
-
289
- /**
290
- * Create a minor line for the axis at position x
291
- * @param {Number} x
292
- * @param {String} orientation "top" or "bottom" (default)
293
- * @private
294
- */
295
- TimeAxis.prototype._repaintMinorLine = function (x, orientation) {
296
- // reuse redundant line
297
- var line = this.dom.redundant.minorLines.shift();
298
-
299
- if (!line) {
300
- // create vertical line
301
- line = document.createElement('div');
302
- line.className = 'grid vertical minor';
303
- this.dom.background.appendChild(line);
304
- }
305
- this.dom.minorLines.push(line);
306
-
307
- var props = this.props;
308
- if (orientation == 'top') {
309
- line.style.top = props.majorLabelHeight + 'px';
310
- }
311
- else {
312
- line.style.top = this.body.domProps.top.height + 'px';
313
- }
314
- line.style.height = props.minorLineHeight + 'px';
315
- line.style.left = (x - props.minorLineWidth / 2) + 'px';
316
- };
317
-
318
- /**
319
- * Create a Major line for the axis at position x
320
- * @param {Number} x
321
- * @param {String} orientation "top" or "bottom" (default)
322
- * @private
323
- */
324
- TimeAxis.prototype._repaintMajorLine = function (x, orientation) {
325
- // reuse redundant line
326
- var line = this.dom.redundant.majorLines.shift();
327
-
328
- if (!line) {
329
- // create vertical line
330
- line = document.createElement('DIV');
331
- line.className = 'grid vertical major';
332
- this.dom.background.appendChild(line);
333
- }
334
- this.dom.majorLines.push(line);
335
-
336
- var props = this.props;
337
- if (orientation == 'top') {
338
- line.style.top = '0';
339
- }
340
- else {
341
- line.style.top = this.body.domProps.top.height + 'px';
342
- }
343
- line.style.left = (x - props.majorLineWidth / 2) + 'px';
344
- line.style.height = props.majorLineHeight + 'px';
345
- };
346
-
347
- /**
348
- * Determine the size of text on the axis (both major and minor axis).
349
- * The size is calculated only once and then cached in this.props.
350
- * @private
351
- */
352
- TimeAxis.prototype._calculateCharSize = function () {
353
- // Note: We calculate char size with every redraw. Size may change, for
354
- // example when any of the timelines parents had display:none for example.
355
-
356
- // determine the char width and height on the minor axis
357
- if (!this.dom.measureCharMinor) {
358
- this.dom.measureCharMinor = document.createElement('DIV');
359
- this.dom.measureCharMinor.className = 'text minor measure';
360
- this.dom.measureCharMinor.style.position = 'absolute';
361
-
362
- this.dom.measureCharMinor.appendChild(document.createTextNode('0'));
363
- this.dom.foreground.appendChild(this.dom.measureCharMinor);
364
- }
365
- this.props.minorCharHeight = this.dom.measureCharMinor.clientHeight;
366
- this.props.minorCharWidth = this.dom.measureCharMinor.clientWidth;
367
-
368
- // determine the char width and height on the major axis
369
- if (!this.dom.measureCharMajor) {
370
- this.dom.measureCharMajor = document.createElement('DIV');
371
- this.dom.measureCharMajor.className = 'text minor measure';
372
- this.dom.measureCharMajor.style.position = 'absolute';
373
-
374
- this.dom.measureCharMajor.appendChild(document.createTextNode('0'));
375
- this.dom.foreground.appendChild(this.dom.measureCharMajor);
376
- }
377
- this.props.majorCharHeight = this.dom.measureCharMajor.clientHeight;
378
- this.props.majorCharWidth = this.dom.measureCharMajor.clientWidth;
379
- };
380
-
381
- /**
382
- * Snap a date to a rounded value.
383
- * The snap intervals are dependent on the current scale and step.
384
- * @param {Date} date the date to be snapped.
385
- * @return {Date} snappedDate
386
- */
387
- TimeAxis.prototype.snap = function(date) {
388
- return this.step.snap(date);
389
- };
@@ -1,33 +0,0 @@
1
- .vis.timeline.root {
2
- /*
3
- -webkit-transition: height .4s ease-in-out;
4
- transition: height .4s ease-in-out;
5
- */
6
- }
7
-
8
- .vis.timeline .vispanel {
9
- /*
10
- -webkit-transition: height .4s ease-in-out, top .4s ease-in-out;
11
- transition: height .4s ease-in-out, top .4s ease-in-out;
12
- */
13
- }
14
-
15
- .vis.timeline .axis {
16
- /*
17
- -webkit-transition: top .4s ease-in-out;
18
- transition: top .4s ease-in-out;
19
- */
20
- }
21
-
22
- /* TODO: get animation working nicely
23
-
24
- .vis.timeline .item {
25
- -webkit-transition: top .4s ease-in-out;
26
- transition: top .4s ease-in-out;
27
- }
28
-
29
- .vis.timeline .item.line {
30
- -webkit-transition: height .4s ease-in-out, top .4s ease-in-out;
31
- transition: height .4s ease-in-out, top .4s ease-in-out;
32
- }
33
- /**/
@@ -1,5 +0,0 @@
1
- .vis.timeline .currenttime {
2
- background-color: #FF7F6E;
3
- width: 2px;
4
- z-index: 1;
5
- }
@@ -1,6 +0,0 @@
1
- .vis.timeline .customtime {
2
- background-color: #6E94FF;
3
- width: 2px;
4
- cursor: move;
5
- z-index: 1;
6
- }
@@ -1,107 +0,0 @@
1
-
2
- .vis.timeline .item {
3
- position: absolute;
4
- color: #1A1A1A;
5
- border-color: #97B0F8;
6
- border-width: 1px;
7
- background-color: #D5DDF6;
8
- display: inline-block;
9
- padding: 5px;
10
- }
11
-
12
- .vis.timeline .item.selected {
13
- border-color: #FFC200;
14
- background-color: #FFF785;
15
- z-index: 999;
16
- }
17
-
18
- .vis.timeline .editable .item.selected {
19
- cursor: move;
20
- }
21
-
22
- .vis.timeline .item.point.selected {
23
- background-color: #FFF785;
24
- }
25
-
26
- .vis.timeline .item.box {
27
- text-align: center;
28
- border-style: solid;
29
- border-radius: 2px;
30
- }
31
-
32
- .vis.timeline .item.point {
33
- background: none;
34
- }
35
-
36
- .vis.timeline .item.dot {
37
- position: absolute;
38
- padding: 0;
39
- border-width: 4px;
40
- border-style: solid;
41
- border-radius: 4px;
42
- }
43
-
44
- .vis.timeline .item.range,
45
- .vis.timeline .item.rangeoverflow{
46
- border-style: solid;
47
- border-radius: 2px;
48
- box-sizing: border-box;
49
- }
50
-
51
- .vis.timeline .item.range .content,
52
- .vis.timeline .item.rangeoverflow .content {
53
- position: relative;
54
- display: inline-block;
55
- }
56
-
57
- .vis.timeline .item.range .content {
58
- overflow: hidden;
59
- max-width: 100%;
60
- }
61
-
62
- .vis.timeline .item.line {
63
- padding: 0;
64
- position: absolute;
65
- width: 0;
66
- border-left-width: 1px;
67
- border-left-style: solid;
68
- }
69
-
70
- .vis.timeline .item .content {
71
- white-space: nowrap;
72
- overflow: hidden;
73
- }
74
-
75
- .vis.timeline .item .delete {
76
- background: url('img/timeline/delete.png') no-repeat top center;
77
- position: absolute;
78
- width: 24px;
79
- height: 24px;
80
- top: 0;
81
- right: -24px;
82
- cursor: pointer;
83
- }
84
-
85
- .vis.timeline .item.range .drag-left,
86
- .vis.timeline .item.rangeoverflow .drag-left {
87
- position: absolute;
88
- width: 24px;
89
- height: 100%;
90
- top: 0;
91
- left: -4px;
92
-
93
- cursor: w-resize;
94
- z-index: 10000;
95
- }
96
-
97
- .vis.timeline .item.range .drag-right,
98
- .vis.timeline .item.rangeoverflow .drag-right {
99
- position: absolute;
100
- width: 24px;
101
- height: 100%;
102
- top: 0;
103
- right: -4px;
104
-
105
- cursor: e-resize;
106
- z-index: 10001; /* a little higher z-index than .drag-left */
107
- }