From 51ba1498034dbd98062a4576a5bcfa82334a9672 Mon Sep 17 00:00:00 2001 From: josdejong Date: Tue, 17 Sep 2013 14:09:49 +0200 Subject: [PATCH] Updated vis overview image --- docs/css/style.css | 6 +++ docs/img/vis_overview.odg | Bin 30379 -> 29653 bytes docs/img/vis_overview.png | Bin 65183 -> 49562 bytes docs/index.html | 7 +++ src/graph/Graph.js | 57 ++++++++++----------- vis.js | 105 +++++++++++++++++++++++--------------- vis.min.js | 2 +- 7 files changed, 106 insertions(+), 71 deletions(-) diff --git a/docs/css/style.css b/docs/css/style.css index 5addab9c..14ba2183 100644 --- a/docs/css/style.css +++ b/docs/css/style.css @@ -39,13 +39,19 @@ h3 { font-size: 140%; } +a > img { + border: none; +} + a { color: #2B7CE9; text-decoration: none; } + a:visited { color: #2E60A4; } + a:hover { color: red; text-decoration: underline; diff --git a/docs/img/vis_overview.odg b/docs/img/vis_overview.odg index 27ef9772606aa8d9e7d6f5638d7d09d2395b720d..0038f586beae1786d7b9fb6b05cbcaa46f91203e 100644 GIT binary patch delta 11792 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�fVD#u=}Z;ZBrb!eYEry}1sy-z zuYrJhhwna?GCsUv0uQ+{Wxw$Q+7{L8$Mxs3v-9WQbJKl6cxL(Qk?kSd|C}3G+EE$d z@AtQ0Oh@K_7AU}#Zb&Hqe4+cR1qC?T0qajxi`{|iPo~|T0^IF@^LK&cPv+X5_wO1C z@SO|FU!48}N3tB9q5gcvaenhZp8bL~oO%9&D!-#_DKH?=@87TS|0A9LdLL|O?rQQI zwW!ELLF0gMK!5Z8CkR6M2Mq{RK?(x7n7g`K*;~5&UzBzvO6`j5AP^P@2#oB44lPOz zCUN1{{f(Obc|LxlrvFZR+W*2(|8q3|T>M|>>mTWbDY(i7=hvwJAT%(lI}voA4fvHi z+kfxEM>itqpEh7}M-uR}8{EI^S!}_XZnS?E@pn6OTX3}l9+<`rgW`YUJd%HO3j(Fv zf<+xD(EhC2e|CSwg$R1)Hw&`=>kF#gFB)v{sy#AT$rb5Orv|P>(2{mwPgkZt<=-3v o?7+J&)YN}ZDp{RbnhomLvHP`yxc?eNiyheCoeqxK;dkx-0|11@!vFvP delta 12456 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 V>_4#~vI3+(k&#doFBdiX@*f7Yf4cwx literal 65183 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 YVJ3Yjw2b?wtEx%9LMS65+Lo$8% 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 + +

Install

diff --git a/src/graph/Graph.js b/src/graph/Graph.js index b5f3b92b..11cf53bb 100644 --- a/src/graph/Graph.js +++ b/src/graph/Graph.js @@ -163,7 +163,6 @@ Graph.prototype.setData = function(data) { this._setEdges(data && data.edges); } - // find a stable position or start animating to a stable position if (this.stabilize) { this._doStabilize(); @@ -251,7 +250,7 @@ Graph.prototype.setOptions = function (options) { /** * fire an event - * @param {String} event The name of an event, for example "select" + * @param {String} event The name of an event, for example 'select' * @param {Object} params Optional object with event parameters * @private */ @@ -273,21 +272,21 @@ Graph.prototype._create = function () { this.containerElement.removeChild(this.containerElement.firstChild); } - this.frame = document.createElement("div"); - this.frame.className = "graph-frame"; - this.frame.style.position = "relative"; - this.frame.style.overflow = "hidden"; + this.frame = document.createElement('div'); + this.frame.className = 'graph-frame'; + this.frame.style.position = 'relative'; + this.frame.style.overflow = 'hidden'; // create the graph canvas (HTML canvas element) - this.frame.canvas = document.createElement( "canvas" ); - this.frame.canvas.style.position = "relative"; + this.frame.canvas = document.createElement( 'canvas' ); + this.frame.canvas.style.position = 'relative'; this.frame.appendChild(this.frame.canvas); if (!this.frame.canvas.getContext) { - var noCanvas = document.createElement( "DIV" ); - noCanvas.style.color = "red"; - noCanvas.style.fontWeight = "bold" ; - noCanvas.style.padding = "10px"; - noCanvas.innerHTML = "Error: your browser does not support HTML canvas"; + var noCanvas = document.createElement( 'DIV' ); + noCanvas.style.color = 'red'; + noCanvas.style.fontWeight = 'bold' ; + noCanvas.style.padding = '10px'; + noCanvas.innerHTML = 'Error: your browser does not support HTML canvas'; this.frame.canvas.appendChild(noCanvas); } @@ -877,7 +876,7 @@ Graph.prototype.setSelection = function(selection) { var i, iMax, id; if (!selection || (selection.length == undefined)) - throw "Selection must be an array with ids"; + throw 'Selection must be an array with ids'; // first unselect any selected node for (i = 0, iMax = this.selection.length; i < iMax; i++) { @@ -1000,17 +999,17 @@ Graph.prototype._getConnectionCount = function(level) { /** * Set a new size for the graph - * @param {string} width Width in pixels or percentage (for example "800px" - * or "50%") - * @param {string} height Height in pixels or percentage (for example "400px" - * or "30%") + * @param {string} width Width in pixels or percentage (for example '800px' + * or '50%') + * @param {string} height Height in pixels or percentage (for example '400px' + * or '30%') */ Graph.prototype.setSize = function(width, height) { this.frame.style.width = width; this.frame.style.height = height; - this.frame.canvas.style.width = "100%"; - this.frame.canvas.style.height = "100%"; + this.frame.canvas.style.width = '100%'; + this.frame.canvas.style.height = '100%'; this.frame.canvas.width = this.frame.canvas.clientWidth; this.frame.canvas.height = this.frame.canvas.clientHeight; @@ -1337,7 +1336,7 @@ Graph.prototype.redraw = function() { * @private */ Graph.prototype._redraw = function() { - var ctx = this.frame.canvas.getContext("2d"); + var ctx = this.frame.canvas.getContext('2d'); // clear the canvas var w = this.frame.canvas.width; @@ -1365,8 +1364,8 @@ Graph.prototype._redraw = function() { Graph.prototype._setTranslation = function(offsetX, offsetY) { if (this.translation === undefined) { this.translation = { - "x": 0, - "y": 0 + x: 0, + y: 0 }; } @@ -1385,8 +1384,8 @@ Graph.prototype._setTranslation = function(offsetX, offsetY) { */ Graph.prototype._getTranslation = function() { return { - "x": this.translation.x, - "y": this.translation.y + x: this.translation.x, + y: this.translation.y }; }; @@ -1449,7 +1448,7 @@ Graph.prototype._yToCanvas = function(y) { /** * Redraw all nodes - * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); + * The 2d context of a HTML canvas can be retrieved by canvas.getContext('2d'); * @param {CanvasRenderingContext2D} ctx * @private */ @@ -1476,7 +1475,7 @@ Graph.prototype._drawNodes = function(ctx) { /** * Redraw all edges - * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); + * The 2d context of a HTML canvas can be retrieved by canvas.getContext('2d'); * @param {CanvasRenderingContext2D} ctx * @private */ @@ -1512,7 +1511,7 @@ Graph.prototype._doStabilize = function() { var end = new Date(); - // console.log("Stabilized in " + (end-start) + " ms, " + count + " iterations" ); // TODO: cleanup + // console.log('Stabilized in ' + (end-start) + ' ms, ' + count + ' iterations' ); // TODO: cleanup }; /** @@ -1669,7 +1668,7 @@ Graph.prototype._calculateForces = function() { /** * Check if any of the nodes is still moving - * @param {number} vmin the minimum velocity considered as "moving" + * @param {number} vmin the minimum velocity considered as 'moving' * @return {boolean} true if moving, false if non of the nodes is moving * @private */ diff --git a/vis.js b/vis.js index 9304828a..0bfa98bb 100644 --- a/vis.js +++ b/vis.js @@ -13016,7 +13016,6 @@ Graph.prototype.setData = function(data) { this._setEdges(data && data.edges); } - // find a stable position or start animating to a stable position if (this.stabilize) { this._doStabilize(); @@ -13104,7 +13103,7 @@ Graph.prototype.setOptions = function (options) { /** * fire an event - * @param {String} event The name of an event, for example "select" + * @param {String} event The name of an event, for example 'select' * @param {Object} params Optional object with event parameters * @private */ @@ -13126,21 +13125,21 @@ Graph.prototype._create = function () { this.containerElement.removeChild(this.containerElement.firstChild); } - this.frame = document.createElement("div"); - this.frame.className = "graph-frame"; - this.frame.style.position = "relative"; - this.frame.style.overflow = "hidden"; + this.frame = document.createElement('div'); + this.frame.className = 'graph-frame'; + this.frame.style.position = 'relative'; + this.frame.style.overflow = 'hidden'; // create the graph canvas (HTML canvas element) - this.frame.canvas = document.createElement( "canvas" ); - this.frame.canvas.style.position = "relative"; + this.frame.canvas = document.createElement( 'canvas' ); + this.frame.canvas.style.position = 'relative'; this.frame.appendChild(this.frame.canvas); if (!this.frame.canvas.getContext) { - var noCanvas = document.createElement( "DIV" ); - noCanvas.style.color = "red"; - noCanvas.style.fontWeight = "bold" ; - noCanvas.style.padding = "10px"; - noCanvas.innerHTML = "Error: your browser does not support HTML canvas"; + var noCanvas = document.createElement( 'DIV' ); + noCanvas.style.color = 'red'; + noCanvas.style.fontWeight = 'bold' ; + noCanvas.style.padding = '10px'; + noCanvas.innerHTML = 'Error: your browser does not support HTML canvas'; this.frame.canvas.appendChild(noCanvas); } @@ -13171,8 +13170,8 @@ Graph.prototype._create = function () { * @private */ Graph.prototype._getNodeAt = function (pointer) { - var x = this._xToCanvas(pointer.x); - var y = this._yToCanvas(pointer.y); + var x = this._canvasToX(pointer.x); + var y = this._canvasToY(pointer.y); var obj = { left: x, @@ -13281,11 +13280,11 @@ Graph.prototype._onDrag = function (event) { var node = s.node; if (!s.xFixed) { - node.x = me._xToCanvas(me._canvasToX(s.x) + deltaX); + node.x = me._canvasToX(me._xToCanvas(s.x) + deltaX); } if (!s.yFixed) { - node.y = me._yToCanvas(me._canvasToY(s.y) + deltaY); + node.y = me._canvasToY(me._yToCanvas(s.y) + deltaY); } }); @@ -13509,10 +13508,10 @@ Graph.prototype._onMouseMoveTitle = function (event) { */ Graph.prototype._checkShowPopup = function (pointer) { var obj = { - left: this._xToCanvas(pointer.x), - top: this._yToCanvas(pointer.y), - right: this._xToCanvas(pointer.x), - bottom: this._yToCanvas(pointer.y) + left: this._canvasToX(pointer.x), + top: this._canvasToY(pointer.y), + right: this._canvasToX(pointer.x), + bottom: this._canvasToY(pointer.y) }; var id; @@ -13730,7 +13729,7 @@ Graph.prototype.setSelection = function(selection) { var i, iMax, id; if (!selection || (selection.length == undefined)) - throw "Selection must be an array with ids"; + throw 'Selection must be an array with ids'; // first unselect any selected node for (i = 0, iMax = this.selection.length; i < iMax; i++) { @@ -13853,17 +13852,17 @@ Graph.prototype._getConnectionCount = function(level) { /** * Set a new size for the graph - * @param {string} width Width in pixels or percentage (for example "800px" - * or "50%") - * @param {string} height Height in pixels or percentage (for example "400px" - * or "30%") + * @param {string} width Width in pixels or percentage (for example '800px' + * or '50%') + * @param {string} height Height in pixels or percentage (for example '400px' + * or '30%') */ Graph.prototype.setSize = function(width, height) { this.frame.style.width = width; this.frame.style.height = height; - this.frame.canvas.style.width = "100%"; - this.frame.canvas.style.height = "100%"; + this.frame.canvas.style.width = '100%'; + this.frame.canvas.style.height = '100%'; this.frame.canvas.width = this.frame.canvas.clientWidth; this.frame.canvas.height = this.frame.canvas.clientHeight; @@ -14190,7 +14189,7 @@ Graph.prototype.redraw = function() { * @private */ Graph.prototype._redraw = function() { - var ctx = this.frame.canvas.getContext("2d"); + var ctx = this.frame.canvas.getContext('2d'); // clear the canvas var w = this.frame.canvas.width; @@ -14218,8 +14217,8 @@ Graph.prototype._redraw = function() { Graph.prototype._setTranslation = function(offsetX, offsetY) { if (this.translation === undefined) { this.translation = { - "x": 0, - "y": 0 + x: 0, + y: 0 }; } @@ -14238,8 +14237,8 @@ Graph.prototype._setTranslation = function(offsetX, offsetY) { */ Graph.prototype._getTranslation = function() { return { - "x": this.translation.x, - "y": this.translation.y + x: this.translation.x, + y: this.translation.y }; }; @@ -14260,25 +14259,49 @@ Graph.prototype._getScale = function() { return this.scale; }; -Graph.prototype._xToCanvas = function(x) { +/** + * Convert a horizontal point on the HTML canvas to the x-value of the model + * @param {number} x + * @returns {number} + * @private + */ +Graph.prototype._canvasToX = function(x) { return (x - this.translation.x) / this.scale; }; -Graph.prototype._canvasToX = function(x) { +/** + * Convert an x-value in the model to a horizontal point on the HTML canvas + * @param {number} x + * @returns {number} + * @private + */ +Graph.prototype._xToCanvas = function(x) { return x * this.scale + this.translation.x; }; -Graph.prototype._yToCanvas = function(y) { +/** + * Convert a vertical point on the HTML canvas to the y-value of the model + * @param {number} y + * @returns {number} + * @private + */ +Graph.prototype._canvasToY = function(y) { return (y - this.translation.y) / this.scale; }; -Graph.prototype._canvasToY = function(y) { +/** + * Convert an y-value in the model to a vertical point on the HTML canvas + * @param {number} y + * @returns {number} + * @private + */ +Graph.prototype._yToCanvas = function(y) { return y * this.scale + this.translation.y ; }; /** * Redraw all nodes - * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); + * The 2d context of a HTML canvas can be retrieved by canvas.getContext('2d'); * @param {CanvasRenderingContext2D} ctx * @private */ @@ -14305,7 +14328,7 @@ Graph.prototype._drawNodes = function(ctx) { /** * Redraw all edges - * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); + * The 2d context of a HTML canvas can be retrieved by canvas.getContext('2d'); * @param {CanvasRenderingContext2D} ctx * @private */ @@ -14341,7 +14364,7 @@ Graph.prototype._doStabilize = function() { var end = new Date(); - // console.log("Stabilized in " + (end-start) + " ms, " + count + " iterations" ); // TODO: cleanup + // console.log('Stabilized in ' + (end-start) + ' ms, ' + count + ' iterations' ); // TODO: cleanup }; /** @@ -14498,7 +14521,7 @@ Graph.prototype._calculateForces = function() { /** * Check if any of the nodes is still moving - * @param {number} vmin the minimum velocity considered as "moving" + * @param {number} vmin the minimum velocity considered as 'moving' * @return {boolean} true if moving, false if non of the nodes is moving * @private */ diff --git a/vis.min.js b/vis.min.js index 3cc9e542..2b24b43d 100644 --- a/vis.min.js +++ b/vis.min.js @@ -26,4 +26,4 @@ }this.subscribers={},this.internalIds={}}function r(t,e){this.id=O.randomUUID(),this.data=null,this.ids={},this.options=e||{},this.fieldId="id",this.subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}function a(t,e){this.parent=t,this.options=e||{},this.defaultOptions={order:function(t,e){if(t instanceof y){if(e instanceof y){var i=t.data.end-t.data.start,n=e.data.end-e.data.start;return i-n||t.data.start-e.data.start}return-1}return e instanceof y?1:t.data.start-e.data.start},margin:{item:10}},this.ordered=[]}function h(t){this.id=O.randomUUID(),this.start=0,this.end=0,this.options={min:null,max:null,zoomMin:null,zoomMax:null},this.listeners=[],this.setOptions(t)}function d(){this.id=O.randomUUID(),this.components={},this.repaintTimer=void 0,this.reflowTimer=void 0}function l(){this.id=null,this.parent=null,this.depends=null,this.controller=null,this.options=null,this.frame=null,this.top=0,this.left=0,this.width=0,this.height=0}function p(t,e,i){this.id=O.randomUUID(),this.parent=t,this.depends=e,this.options=i||{}}function c(t,e){this.id=O.randomUUID(),this.container=t,this.options=e||{},this.defaultOptions={autoResize:!0},this.listeners={}}function u(t,e,i){this.id=O.randomUUID(),this.parent=t,this.depends=e,this.dom={majorLines:[],majorTexts:[],minorLines:[],minorTexts:[],redundant:{majorLines:[],majorTexts:[],minorLines:[],minorTexts:[]}},this.props={range:{start:0,end:0,minimumStep:0},lineTop:0},this.options=i||{},this.defaultOptions={orientation:"bottom",showMinorLabels:!0,showMajorLabels:!0},this.conversion=null,this.range=null}function f(t,e,i){this.id=O.randomUUID(),this.parent=t,this.depends=e,this.options=i||{},this.defaultOptions={type:"box",align:"center",orientation:"bottom",margin:{axis:20,item:10},padding:5},this.dom={};var n=this;this.itemsData=null,this.range=null,this.listeners={add:function(t,e,i){i!=n.id&&n._onAdd(e.items)},update:function(t,e,i){i!=n.id&&n._onUpdate(e.items)},remove:function(t,e,i){i!=n.id&&n._onRemove(e.items)}},this.items={},this.queue={},this.stack=new a(this,Object.create(this.options)),this.conversion=null}function m(t,e,i,n){this.parent=t,this.data=e,this.dom=null,this.options=i||{},this.defaultOptions=n||{},this.selected=!1,this.visible=!1,this.top=0,this.left=0,this.width=0,this.height=0}function g(t,e,i,n){this.props={dot:{left:0,top:0,width:0,height:0},line:{top:0,left:0,width:0,height:0}},m.call(this,t,e,i,n)}function v(t,e,i,n){this.props={dot:{top:0,width:0,height:0},content:{height:0,marginLeft:0}},m.call(this,t,e,i,n)}function y(t,e,i,n){this.props={content:{left:0,width:0}},m.call(this,t,e,i,n)}function b(t,e,i){this.id=O.randomUUID(),this.parent=t,this.groupId=e,this.itemset=null,this.options=i||{},this.options.top=0,this.props={label:{width:0,height:0}},this.top=0,this.left=0,this.width=0,this.height=0}function w(t,e,i){this.id=O.randomUUID(),this.parent=t,this.depends=e,this.options=i||{},this.range=null,this.itemsData=null,this.groupsData=null,this.groups={},this.dom={},this.props={labels:{width:0}},this.queue={};var n=this;this.listeners={add:function(t,e){n._onAdd(e.items)},update:function(t,e){n._onUpdate(e.items)},remove:function(t,e){n._onRemove(e.items)}}}function _(t,e,i){var n=this;if(this.options=O.extend({orientation:"bottom",min:null,max:null,zoomMin:10,zoomMax:31536e10,showMinorLabels:!0,showMajorLabels:!0,autoResize:!1},i),this.controller=new d,!t)throw Error("No container element provided");var s=Object.create(this.options);s.height=function(){return n.options.height?n.options.height:n.timeaxis.height+n.content.height},this.rootPanel=new c(t,s),this.controller.add(this.rootPanel);var o=Object.create(this.options);o.left=function(){return n.labelPanel.width},o.width=function(){return n.rootPanel.width-n.labelPanel.width},o.top=null,o.height=null,this.itemPanel=new p(this.rootPanel,[],o),this.controller.add(this.itemPanel);var r=Object.create(this.options);r.top=null,r.left=null,r.height=null,r.width=function(){return n.content&&"function"==typeof n.content.getLabelsWidth?n.content.getLabelsWidth():0},this.labelPanel=new p(this.rootPanel,[],r),this.controller.add(this.labelPanel);var a=M().hours(0).minutes(0).seconds(0).milliseconds(0);this.range=new h({start:a.clone().add("days",-3).valueOf(),end:a.clone().add("days",4).valueOf()}),this.range.subscribe(this.rootPanel,"move","horizontal"),this.range.subscribe(this.rootPanel,"zoom","horizontal"),this.range.on("rangechange",function(){var t=!0;n.controller.requestReflow(t)}),this.range.on("rangechanged",function(){var t=!0;n.controller.requestReflow(t)});var l=Object.create(s);l.range=this.range,l.left=null,l.top=null,l.width="100%",l.height=null,this.timeaxis=new u(this.itemPanel,[],l),this.timeaxis.setRange(this.range),this.controller.add(this.timeaxis),this.setGroups(null),this.itemsData=null,this.groupsData=null,e&&this.setItems(e)}function E(t,e,i,n){this.selected=!1,this.edges=[],this.group=n.nodes.group,this.fontSize=n.nodes.fontSize,this.fontFace=n.nodes.fontFace,this.fontColor=n.nodes.fontColor,this.color=n.nodes.color,this.id=void 0,this.shape=n.nodes.shape,this.image=n.nodes.image,this.x=0,this.y=0,this.xFixed=!1,this.yFixed=!1,this.radius=n.nodes.radius,this.radiusFixed=!1,this.radiusMin=n.nodes.radiusMin,this.radiusMax=n.nodes.radiusMax,this.imagelist=e,this.grouplist=i,this.setProperties(t,n),this.mass=50,this.fx=0,this.fy=0,this.vx=0,this.vy=0,this.minForce=n.minForce,this.damping=.9}function T(t,e,i){if(!e)throw"No graph provided";this.graph=e,this.widthMin=i.edges.widthMin,this.widthMax=i.edges.widthMax,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.style=i.edges.style,this.title=void 0,this.width=i.edges.width,this.value=void 0,this.length=i.edges.length,this.from=null,this.to=null,this.connected=!1,this.dash=O.extend({},i.edges.dash),this.stiffness=void 0,this.color=i.edges.color,this.widthFixed=!1,this.lengthFixed=!1,this.setProperties(t,i)}function x(t,e,i,n){this.container=t?t:document.body,this.x=0,this.y=0,this.padding=5,void 0!==e&&void 0!==i&&this.setPosition(e,i),void 0!==n&&this.setText(n),this.frame=document.createElement("div");var s=this.frame.style;s.position="absolute",s.visibility="hidden",s.border="1px solid #666",s.color="black",s.padding=this.padding+"px",s.backgroundColor="#FFFFC6",s.borderRadius="3px",s.MozBorderRadius="3px",s.WebkitBorderRadius="3px",s.boxShadow="3px 3px 10px rgba(128, 128, 128, 0.5)",s.whiteSpace="nowrap",this.container.appendChild(this.frame)}function S(t,e,i){this.containerElement=t,this.width="100%",this.height="100%",this.refreshRate=50,this.stabilize=!0,this.selectable=!0,this.constants={nodes:{radiusMin:5,radiusMax:20,radius:5,distance:100,shape:"ellipse",image:void 0,widthMin:16,widthMax:64,fontColor:"black",fontSize:14,fontFace:"arial",color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"}},borderColor:"#2B7CE9",backgroundColor:"#97C2FC",highlightColor:"#D2E5FF",group:void 0},edges:{widthMin:1,widthMax:15,width:1,style:"line",color:"#343434",fontColor:"#343434",fontSize:14,fontFace:"arial",length:100,dash:{length:10,gap:5,altLength:void 0}},minForce:.05,minVelocity:.02,maxIterations:1e3};var n=this;this.nodes={},this.edges={},this.nodesData=null,this.edgesData=null;var s=this;this.nodesListeners={add:function(t,e){s._addNodes(e.items),s.start()},update:function(t,e){s._updateNodes(e.items),s.start()},remove:function(t,e){s._removeNodes(e.items),s.start()}},this.edgesListeners={add:function(t,e){s._addEdges(e.items),s.start()},update:function(t,e){s._updateEdges(e.items),s.start()},remove:function(t,e){s._removeEdges(e.items),s.start()}},this.groups=new Groups,this.images=new Images,this.images.setOnloadCallback(function(){n._redraw()}),this.moving=!1,this.selection=[],this.timer=void 0,this._create(),this.setOptions(i),this.setData(e)}var M="undefined"!=typeof window&&window.moment||e("moment"),D="undefined"!=typeof window&&window.Hammer||e("hammerjs");if(!Array.prototype.indexOf){Array.prototype.indexOf=function(t){for(var e=0;this.length>e;e++)if(this[e]==t)return e;return-1};try{console.log("Warning: Ancient browser detected. Please update your browser")}catch(C){}}Array.prototype.forEach||(Array.prototype.forEach=function(t,e){for(var i=0,n=this.length;n>i;++i)t.call(e||this,this[i],i,this)}),Array.prototype.map||(Array.prototype.map=function(t,e){var i,n,s;if(null==this)throw new TypeError(" this is null or not defined");var o=Object(this),r=o.length>>>0;if("function"!=typeof t)throw new TypeError(t+" is not a function");for(e&&(i=e),n=Array(r),s=0;r>s;){var a,h;s in o&&(a=o[s],h=t.call(i,a,s,o),n[s]=h),s++}return n}),Array.prototype.filter||(Array.prototype.filter=function(t){"use strict";if(null==this)throw new TypeError;var e=Object(this),i=e.length>>>0;if("function"!=typeof t)throw new TypeError;for(var n=[],s=arguments[1],o=0;i>o;o++)if(o in e){var r=e[o];t.call(s,r,o,e)&&n.push(r)}return n}),Object.keys||(Object.keys=function(){var t=Object.prototype.hasOwnProperty,e=!{toString:null}.propertyIsEnumerable("toString"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],n=i.length;return function(s){if("object"!=typeof s&&"function"!=typeof s||null===s)throw new TypeError("Object.keys called on non-object");var o=[];for(var r in s)t.call(s,r)&&o.push(r);if(e)for(var a=0;n>a;a++)t.call(s,i[a])&&o.push(i[a]);return o}}()),Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),Function.prototype.bind||(Function.prototype.bind=function(t){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var e=Array.prototype.slice.call(arguments,1),i=this,n=function(){},s=function(){return i.apply(this instanceof n&&t?this:t,e.concat(Array.prototype.slice.call(arguments)))};return n.prototype=this.prototype,s.prototype=new n,s}),Object.create||(Object.create=function(t){function e(){}if(arguments.length>1)throw Error("Object.create implementation only accepts the first parameter.");return e.prototype=t,new e}),Function.prototype.bind||(Function.prototype.bind=function(t){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var e=Array.prototype.slice.call(arguments,1),i=this,n=function(){},s=function(){return i.apply(this instanceof n&&t?this:t,e.concat(Array.prototype.slice.call(arguments)))};return n.prototype=this.prototype,s.prototype=new n,s});var O={};O.isNumber=function(t){return t instanceof Number||"number"==typeof t},O.isString=function(t){return t instanceof String||"string"==typeof t},O.isDate=function(t){if(t instanceof Date)return!0;if(O.isString(t)){var e=N.exec(t);if(e)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},O.isDataTable=function(t){return"undefined"!=typeof google&&google.visualization&&google.visualization.DataTable&&t instanceof google.visualization.DataTable},O.randomUUID=function(){var t=function(){return Math.floor(65536*Math.random()).toString(16)};return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()},O.extend=function(t){for(var e=1,i=arguments.length;i>e;e++){var n=arguments[e];for(var s in n)n.hasOwnProperty(s)&&void 0!==n[s]&&(t[s]=n[s])}return t},O.convert=function(t,e){var i;if(void 0===t)return void 0;if(null===t)return null;if(!e)return t;if("string"!=typeof e&&!(e instanceof String))throw Error("Type must be a string");switch(e){case"boolean":case"Boolean":return Boolean(t);case"number":case"Number":return Number(t.valueOf());case"string":case"String":return t+"";case"Date":if(O.isNumber(t))return new Date(t);if(t instanceof Date)return new Date(t.valueOf());if(M.isMoment(t))return new Date(t.valueOf());if(O.isString(t))return i=N.exec(t),i?new Date(Number(i[1])):M(t).toDate();throw Error("Cannot convert object of type "+O.getType(t)+" to type Date");case"Moment":if(O.isNumber(t))return M(t);if(t instanceof Date)return M(t.valueOf());if(M.isMoment(t))return M.clone();if(O.isString(t))return i=N.exec(t),i?M(Number(i[1])):M(t);throw Error("Cannot convert object of type "+O.getType(t)+" to type Date");case"ISODate":if(O.isNumber(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(M.isMoment(t))return t.toDate().toISOString();if(O.isString(t))return i=N.exec(t),i?new Date(Number(i[1])).toISOString():new Date(t).toISOString();throw Error("Cannot convert object of type "+O.getType(t)+" to type ISODate");case"ASPDate":if(O.isNumber(t))return"/Date("+t+")/";if(t instanceof Date)return"/Date("+t.valueOf()+")/";if(O.isString(t)){i=N.exec(t);var n;return n=i?new Date(Number(i[1])).valueOf():new Date(t).valueOf(),"/Date("+n+")/"}throw Error("Cannot convert object of type "+O.getType(t)+" to type ASPDate");default:throw Error("Cannot convert object of type "+O.getType(t)+' to type "'+e+'"')}};var N=/^\/?Date\((\-?\d+)/i;O.getType=function(t){var e=typeof t;return"object"==e?null==t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":t instanceof Array?"Array":t instanceof Date?"Date":"Object":"number"==e?"Number":"boolean"==e?"Boolean":"string"==e?"String":e},O.getAbsoluteLeft=function(t){for(var e=document.documentElement,i=document.body,n=t.offsetLeft,s=t.offsetParent;null!=s&&s!=i&&s!=e;)n+=s.offsetLeft,n-=s.scrollLeft,s=s.offsetParent;return n},O.getAbsoluteTop=function(t){for(var e=document.documentElement,i=document.body,n=t.offsetTop,s=t.offsetParent;null!=s&&s!=i&&s!=e;)n+=s.offsetTop,n-=s.scrollTop,s=s.offsetParent;return n},O.getPageY=function(t){if("pageY"in t)return t.pageY;var e;e="targetTouches"in t&&t.targetTouches.length?t.targetTouches[0].clientY:t.clientY;var i=document.documentElement,n=document.body;return e+(i&&i.scrollTop||n&&n.scrollTop||0)-(i&&i.clientTop||n&&n.clientTop||0)},O.getPageX=function(t){if("pageY"in t)return t.pageX;var e;e="targetTouches"in t&&t.targetTouches.length?t.targetTouches[0].clientX:t.clientX;var i=document.documentElement,n=document.body;return e+(i&&i.scrollLeft||n&&n.scrollLeft||0)-(i&&i.clientLeft||n&&n.clientLeft||0)},O.addClassName=function(t,e){var i=t.className.split(" ");-1==i.indexOf(e)&&(i.push(e),t.className=i.join(" "))},O.removeClassName=function(t,e){var i=t.className.split(" "),n=i.indexOf(e);-1!=n&&(i.splice(n,1),t.className=i.join(" "))},O.forEach=function(t,e){var i,n;if(t instanceof Array)for(i=0,n=t.length;n>i;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},O.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},O.addEventListener=function(t,e,i,n){t.addEventListener?(void 0===n&&(n=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,n)):t.attachEvent("on"+e,i)},O.removeEventListener=function(t,e,i,n){t.removeEventListener?(void 0===n&&(n=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,n)):t.detachEvent("on"+e,i)},O.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},O.stopPropagation=function(t){t||(t=window.event),t.stopPropagation?t.stopPropagation():t.cancelBubble=!0},O.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},O.option={},O.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},O.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},O.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?t+"":e||null},O.option.asSize=function(t,e){return"function"==typeof t&&(t=t()),O.isString(t)?t:O.isNumber(t)?t+"px":e||null},O.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},O.loadCss=function(t){if("undefined"!=typeof document){var e=document.createElement("style");e.type="text/css",e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t)),document.getElementsByTagName("head")[0].appendChild(e)}};var L={listeners:[],indexOf:function(t){for(var e=this.listeners,i=0,n=this.listeners.length;n>i;i++){var s=e[i];if(s&&s.object==t)return i}return-1},addListener:function(t,e,i){var n=this.indexOf(t),s=this.listeners[n];s||(s={object:t,events:{}},this.listeners.push(s));var o=s.events[e];o||(o=[],s.events[e]=o),-1==o.indexOf(i)&&o.push(i)},removeListener:function(t,e,i){var n=this.indexOf(t),s=this.listeners[n];if(s){var o=s.events[e];o&&(n=o.indexOf(i),-1!=n&&o.splice(n,1),0==o.length&&delete s.events[e]);var r=0,a=s.events;for(var h in a)a.hasOwnProperty(h)&&r++;0==r&&delete this.listeners[n]}},removeAllListeners:function(){this.listeners=[]},trigger:function(t,e,i){var n=this.indexOf(t),s=this.listeners[n];if(s){var o=s.events[e];if(o)for(var r=0,a=o.length;a>r;r++)o[r](i)}}};s.prototype.on=function(t,e,i){var n=t instanceof RegExp?t:RegExp(t.replace("*","\\w+")),s={id:O.randomUUID(),event:t,regexp:n,callback:"function"==typeof e?e:null,target:i};return this.subscriptions.push(s),s.id},s.prototype.off=function(t){for(var e=0;this.subscriptions.length>e;){var i=this.subscriptions[e],n=!0;if(t instanceof Object)for(var s in t)t.hasOwnProperty(s)&&t[s]!==i[s]&&(n=!1);else n=i.id==t;n?this.subscriptions.splice(e,1):e++}},s.prototype.emit=function(t,e,i){for(var n=0;this.subscriptions.length>n;n++){var s=this.subscriptions[n];s.regexp.test(t)&&s.callback&&s.callback(t,e,i)}},o.prototype.subscribe=function(t,e){var i=this.subscribers[t];i||(i=[],this.subscribers[t]=i),i.push({callback:e})},o.prototype.unsubscribe=function(t,e){var i=this.subscribers[t];i&&(this.subscribers[t]=i.filter(function(t){return t.callback!=e}))},o.prototype._trigger=function(t,e,i){if("*"==t)throw Error("Cannot trigger event *");var n=[];t in this.subscribers&&(n=n.concat(this.subscribers[t])),"*"in this.subscribers&&(n=n.concat(this.subscribers["*"]));for(var s=0;n.length>s;s++){var o=n[s];o.callback&&o.callback(t,e,i||null)}},o.prototype.add=function(t,e){var i,n=[],s=this;if(t instanceof Array)for(var o=0,r=t.length;r>o;o++)i=s._addItem(t[o]),n.push(i);else if(O.isDataTable(t))for(var a=this._getColumnNames(t),h=0,d=t.getNumberOfRows();d>h;h++){for(var l={},p=0,c=a.length;c>p;p++){var u=a[p];l[u]=t.getValue(h,p)}i=s._addItem(l),n.push(i)}else{if(!(t instanceof Object))throw Error("Unknown dataType");i=s._addItem(t),n.push(i)}return n.length&&this._trigger("add",{items:n},e),n},o.prototype.update=function(t,e){var i=[],n=[],s=this,o=s.fieldId,r=function(t){var e=t[o];s.data[e]?(e=s._updateItem(t),n.push(e)):(e=s._addItem(t),i.push(e))};if(t instanceof Array)for(var a=0,h=t.length;h>a;a++)r(t[a]);else if(O.isDataTable(t))for(var d=this._getColumnNames(t),l=0,p=t.getNumberOfRows();p>l;l++){for(var c={},u=0,f=d.length;f>u;u++){var m=d[u];c[m]=t.getValue(l,u)}r(c)}else{if(!(t instanceof Object))throw Error("Unknown dataType");r(t)}return i.length&&this._trigger("add",{items:i},e),n.length&&this._trigger("update",{items:n},e),i.concat(n)},o.prototype.get=function(){var t,e,i,n,s=this,o=O.getType(arguments[0]);"String"==o||"Number"==o?(t=arguments[0],i=arguments[1],n=arguments[2]):"Array"==o?(e=arguments[0],i=arguments[1],n=arguments[2]):(i=arguments[0],n=arguments[1]);var r;if(i&&i.type){if(r="DataTable"==i.type?"DataTable":"Array",n&&r!=O.getType(n))throw Error('Type of parameter "data" ('+O.getType(n)+") "+"does not correspond with specified options.type ("+i.type+")");if("DataTable"==r&&!O.isDataTable(n))throw Error('Parameter "data" must be a DataTable when options.type is "DataTable"')}else r=n?"DataTable"==O.getType(n)?"DataTable":"Array":"Array";var a,h,d,l,p=i&&i.convert||this.options.convert,c=i&&i.filter,u=[];if(void 0!=t)a=s._getItem(t,p),c&&!c(a)&&(a=null);else if(void 0!=e)for(d=0,l=e.length;l>d;d++)a=s._getItem(e[d],p),(!c||c(a))&&u.push(a);else for(h in this.data)this.data.hasOwnProperty(h)&&(a=s._getItem(h,p),(!c||c(a))&&u.push(a));if(i&&i.order&&void 0==t&&this._sort(u,i.order),i&&i.fields){var f=i.fields;if(void 0!=t)a=this._filterFields(a,f);else for(d=0,l=u.length;l>d;d++)u[d]=this._filterFields(u[d],f)}if("DataTable"==r){var m=this._getColumnNames(n);if(void 0!=t)s._appendRow(n,m,a);else for(d=0,l=u.length;l>d;d++)s._appendRow(n,m,u[d]);return n}if(void 0!=t)return a;if(n){for(d=0,l=u.length;l>d;d++)n.push(u[d]);return n}return u},o.prototype.getIds=function(t){var e,i,n,s,o,r=this.data,a=t&&t.filter,h=t&&t.order,d=t&&t.convert||this.options.convert,l=[];if(a)if(h){o=[];for(n in r)r.hasOwnProperty(n)&&(s=this._getItem(n,d),a(s)&&o.push(s));for(this._sort(o,h),e=0,i=o.length;i>e;e++)l[e]=o[e][this.fieldId]}else for(n in r)r.hasOwnProperty(n)&&(s=this._getItem(n,d),a(s)&&l.push(s[this.fieldId]));else if(h){o=[];for(n in r)r.hasOwnProperty(n)&&o.push(r[n]);for(this._sort(o,h),e=0,i=o.length;i>e;e++)l[e]=o[e][this.fieldId]}else for(n in r)r.hasOwnProperty(n)&&(s=r[n],l.push(s[this.fieldId]));return l},o.prototype.forEach=function(t,e){var i,n,s=e&&e.filter,o=e&&e.convert||this.options.convert,r=this.data;if(e&&e.order)for(var a=this.get(e),h=0,d=a.length;d>h;h++)i=a[h],n=i[this.fieldId],t(i,n);else for(n in r)r.hasOwnProperty(n)&&(i=this._getItem(n,o),(!s||s(i))&&t(i,n))},o.prototype.map=function(t,e){var i,n=e&&e.filter,s=e&&e.convert||this.options.convert,o=[],r=this.data;for(var a in r)r.hasOwnProperty(a)&&(i=this._getItem(a,s),(!n||n(i))&&o.push(t(i,a)));return e&&e.order&&this._sort(o,e.order),o},o.prototype._filterFields=function(t,e){var i={};for(var n in t)t.hasOwnProperty(n)&&-1!=e.indexOf(n)&&(i[n]=t[n]);return i},o.prototype._sort=function(t,e){if(O.isString(e)){var i=e;t.sort(function(t,e){var n=t[i],s=e[i];return n>s?1:s>n?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},o.prototype.remove=function(t,e){var i,n,s,o=[];if(t instanceof Array)for(i=0,n=t.length;n>i;i++)s=this._remove(t[i]),null!=s&&o.push(s);else s=this._remove(t),null!=s&&o.push(s);return o.length&&this._trigger("remove",{items:o},e),o},o.prototype._remove=function(t){if(O.isNumber(t)||O.isString(t)){if(this.data[t])return delete this.data[t],delete this.internalIds[t],t}else if(t instanceof Object){var e=t[this.fieldId];if(e&&this.data[e])return delete this.data[e],delete this.internalIds[e],e}return null},o.prototype.clear=function(t){var e=Object.keys(this.data);return this.data={},this.internalIds={},this._trigger("remove",{items:e},t),e},o.prototype.max=function(t){var e=this.data,i=null,n=null;for(var s in e)if(e.hasOwnProperty(s)){var o=e[s],r=o[t];null!=r&&(!i||r>n)&&(i=o,n=r)}return i},o.prototype.min=function(t){var e=this.data,i=null,n=null;for(var s in e)if(e.hasOwnProperty(s)){var o=e[s],r=o[t];null!=r&&(!i||n>r)&&(i=o,n=r)}return i},o.prototype.distinct=function(t){var e=this.data,i=[],n=this.options.convert[t],s=0;for(var o in e)if(e.hasOwnProperty(o)){for(var r=e[o],a=O.convert(r[t],n),h=!1,d=0;s>d;d++)if(i[d]==a){h=!0;break}h||(i[s]=a,s++)}return i},o.prototype._addItem=function(t){var e=t[this.fieldId];if(void 0!=e){if(this.data[e])throw Error("Cannot add item: item with id "+e+" already exists")}else e=O.randomUUID(),t[this.fieldId]=e,this.internalIds[e]=t;var i={};for(var n in t)if(t.hasOwnProperty(n)){var s=this.convert[n];i[n]=O.convert(t[n],s)}return this.data[e]=i,e},o.prototype._getItem=function(t,e){var i,n,s=this.data[t];if(!s)return null;var o={},r=this.fieldId,a=this.internalIds;if(e)for(i in s)s.hasOwnProperty(i)&&(n=s[i],i==r&&n in a||(o[i]=O.convert(n,e[i])));else for(i in s)s.hasOwnProperty(i)&&(n=s[i],i==r&&n in a||(o[i]=n));return o},o.prototype._updateItem=function(t){var e=t[this.fieldId];if(void 0==e)throw Error("Cannot update item: item has no id (item: "+JSON.stringify(t)+")");var i=this.data[e];if(!i)throw Error("Cannot update item: no item with id "+e+" found");for(var n in t)if(t.hasOwnProperty(n)){var s=this.convert[n];i[n]=O.convert(t[n],s)}return e},o.prototype._getColumnNames=function(t){for(var e=[],i=0,n=t.getNumberOfColumns();n>i;i++)e[i]=t.getColumnId(i)||t.getColumnLabel(i);return e},o.prototype._appendRow=function(t,e,i){for(var n=t.addRow(),s=0,o=e.length;o>s;s++){var r=e[s];t.setValue(n,s,i[r])}},r.prototype.setData=function(t){var e,i,n;if(this.data){this.data.unsubscribe&&this.data.unsubscribe("*",this.listener),e=[];for(var s in this.ids)this.ids.hasOwnProperty(s)&&e.push(s);this.ids={},this._trigger("remove",{items:e})}if(this.data=t,this.data){for(this.fieldId=this.options.fieldId||this.data&&this.data.options&&this.data.options.fieldId||"id",e=this.data.getIds({filter:this.options&&this.options.filter}),i=0,n=e.length;n>i;i++)s=e[i],this.ids[s]=!0;this._trigger("add",{items:e}),this.data.subscribe&&this.data.subscribe("*",this.listener)}},r.prototype.get=function(){var t,e,i,n=this,s=O.getType(arguments[0]);"String"==s||"Number"==s||"Array"==s?(t=arguments[0],e=arguments[1],i=arguments[2]):(e=arguments[0],i=arguments[1]);var o=O.extend({},this.options,e);this.options.filter&&e&&e.filter&&(o.filter=function(t){return n.options.filter(t)&&e.filter(t)});var r=[];return void 0!=t&&r.push(t),r.push(o),r.push(i),this.data&&this.data.get.apply(this.data,r)},r.prototype.getIds=function(t){var e;if(this.data){var i,n=this.options.filter;i=t&&t.filter?n?function(e){return n(e)&&t.filter(e)}:t.filter:n,e=this.data.getIds({filter:i,order:t&&t.order})}else e=[];return e},r.prototype._onEvent=function(t,e,i){var n,s,o,r,a=e&&e.items,h=this.data,d=[],l=[],p=[];if(a&&h){switch(t){case"add":for(n=0,s=a.length;s>n;n++)o=a[n],r=this.get(o),r&&(this.ids[o]=!0,d.push(o));break;case"update":for(n=0,s=a.length;s>n;n++)o=a[n],r=this.get(o),r?this.ids[o]?l.push(o):(this.ids[o]=!0,d.push(o)):this.ids[o]&&(delete this.ids[o],p.push(o));break;case"remove":for(n=0,s=a.length;s>n;n++)o=a[n],this.ids[o]&&(delete this.ids[o],p.push(o))}d.length&&this._trigger("add",{items:d},i),l.length&&this._trigger("update",{items:l},i),p.length&&this._trigger("remove",{items:p},i)}},r.prototype.subscribe=o.prototype.subscribe,r.prototype.unsubscribe=o.prototype.unsubscribe,r.prototype._trigger=o.prototype._trigger,TimeStep=function(t,e,i){this.current=new Date,this._start=new Date,this._end=new Date,this.autoScale=!0,this.scale=TimeStep.SCALE.DAY,this.step=1,this.setRange(t,e,i)},TimeStep.SCALE={MILLISECOND:1,SECOND:2,MINUTE:3,HOUR:4,DAY:5,WEEKDAY:6,MONTH:7,YEAR:8},TimeStep.prototype.setRange=function(t,e,i){t instanceof Date&&e instanceof Date&&(this._start=void 0!=t?new Date(t.valueOf()):new Date,this._end=void 0!=e?new Date(e.valueOf()):new Date,this.autoScale&&this.setMinimumStep(i))},TimeStep.prototype.first=function(){this.current=new Date(this._start.valueOf()),this.roundToMinor()},TimeStep.prototype.roundToMinor=function(){switch(this.scale){case TimeStep.SCALE.YEAR:this.current.setFullYear(this.step*Math.floor(this.current.getFullYear()/this.step)),this.current.setMonth(0);case TimeStep.SCALE.MONTH:this.current.setDate(1);case TimeStep.SCALE.DAY:case TimeStep.SCALE.WEEKDAY:this.current.setHours(0);case TimeStep.SCALE.HOUR:this.current.setMinutes(0);case TimeStep.SCALE.MINUTE:this.current.setSeconds(0);case TimeStep.SCALE.SECOND:this.current.setMilliseconds(0)}if(1!=this.step)switch(this.scale){case TimeStep.SCALE.MILLISECOND:this.current.setMilliseconds(this.current.getMilliseconds()-this.current.getMilliseconds()%this.step);break;case TimeStep.SCALE.SECOND:this.current.setSeconds(this.current.getSeconds()-this.current.getSeconds()%this.step);break;case TimeStep.SCALE.MINUTE:this.current.setMinutes(this.current.getMinutes()-this.current.getMinutes()%this.step);break;case TimeStep.SCALE.HOUR:this.current.setHours(this.current.getHours()-this.current.getHours()%this.step);break;case TimeStep.SCALE.WEEKDAY:case TimeStep.SCALE.DAY:this.current.setDate(this.current.getDate()-1-(this.current.getDate()-1)%this.step+1);break;case TimeStep.SCALE.MONTH:this.current.setMonth(this.current.getMonth()-this.current.getMonth()%this.step);break;case TimeStep.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()-this.current.getFullYear()%this.step);break;default:}},TimeStep.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()},TimeStep.prototype.next=function(){var t=this.current.valueOf();if(6>this.current.getMonth())switch(this.scale){case TimeStep.SCALE.MILLISECOND:this.current=new Date(this.current.valueOf()+this.step);break;case TimeStep.SCALE.SECOND:this.current=new Date(this.current.valueOf()+1e3*this.step);break;case TimeStep.SCALE.MINUTE:this.current=new Date(this.current.valueOf()+60*1e3*this.step);break;case TimeStep.SCALE.HOUR:this.current=new Date(this.current.valueOf()+60*60*1e3*this.step);var e=this.current.getHours();this.current.setHours(e-e%this.step);break;case TimeStep.SCALE.WEEKDAY:case TimeStep.SCALE.DAY:this.current.setDate(this.current.getDate()+this.step);break;case TimeStep.SCALE.MONTH:this.current.setMonth(this.current.getMonth()+this.step);break;case TimeStep.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()+this.step);break;default:}else switch(this.scale){case TimeStep.SCALE.MILLISECOND:this.current=new Date(this.current.valueOf()+this.step);break;case TimeStep.SCALE.SECOND:this.current.setSeconds(this.current.getSeconds()+this.step);break;case TimeStep.SCALE.MINUTE:this.current.setMinutes(this.current.getMinutes()+this.step);break;case TimeStep.SCALE.HOUR:this.current.setHours(this.current.getHours()+this.step);break;case TimeStep.SCALE.WEEKDAY:case TimeStep.SCALE.DAY:this.current.setDate(this.current.getDate()+this.step);break;case TimeStep.SCALE.MONTH:this.current.setMonth(this.current.getMonth()+this.step);break;case TimeStep.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()+this.step);break;default:}if(1!=this.step)switch(this.scale){case TimeStep.SCALE.MILLISECOND:this.current.getMilliseconds()0&&(this.step=e),this.autoScale=!1},TimeStep.prototype.setAutoScale=function(t){this.autoScale=t},TimeStep.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,n=864e5,s=36e5,o=6e4,r=1e3,a=1;1e3*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=1e3),500*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=500),100*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=100),50*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=50),10*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=10),5*e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=5),e>t&&(this.scale=TimeStep.SCALE.YEAR,this.step=1),3*i>t&&(this.scale=TimeStep.SCALE.MONTH,this.step=3),i>t&&(this.scale=TimeStep.SCALE.MONTH,this.step=1),5*n>t&&(this.scale=TimeStep.SCALE.DAY,this.step=5),2*n>t&&(this.scale=TimeStep.SCALE.DAY,this.step=2),n>t&&(this.scale=TimeStep.SCALE.DAY,this.step=1),n/2>t&&(this.scale=TimeStep.SCALE.WEEKDAY,this.step=1),4*s>t&&(this.scale=TimeStep.SCALE.HOUR,this.step=4),s>t&&(this.scale=TimeStep.SCALE.HOUR,this.step=1),15*o>t&&(this.scale=TimeStep.SCALE.MINUTE,this.step=15),10*o>t&&(this.scale=TimeStep.SCALE.MINUTE,this.step=10),5*o>t&&(this.scale=TimeStep.SCALE.MINUTE,this.step=5),o>t&&(this.scale=TimeStep.SCALE.MINUTE,this.step=1),15*r>t&&(this.scale=TimeStep.SCALE.SECOND,this.step=15),10*r>t&&(this.scale=TimeStep.SCALE.SECOND,this.step=10),5*r>t&&(this.scale=TimeStep.SCALE.SECOND,this.step=5),r>t&&(this.scale=TimeStep.SCALE.SECOND,this.step=1),200*a>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=200),100*a>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=100),50*a>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=50),10*a>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=10),5*a>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=5),a>t&&(this.scale=TimeStep.SCALE.MILLISECOND,this.step=1) }},TimeStep.prototype.snap=function(t){if(this.scale==TimeStep.SCALE.YEAR){var e=t.getFullYear()+Math.round(t.getMonth()/12);t.setFullYear(Math.round(e/this.step)*this.step),t.setMonth(0),t.setDate(0),t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0)}else if(this.scale==TimeStep.SCALE.MONTH)t.getDate()>15?(t.setDate(1),t.setMonth(t.getMonth()+1)):t.setDate(1),t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0);else if(this.scale==TimeStep.SCALE.DAY||this.scale==TimeStep.SCALE.WEEKDAY){switch(this.step){case 5:case 2:t.setHours(24*Math.round(t.getHours()/24));break;default:t.setHours(12*Math.round(t.getHours()/12))}t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0)}else if(this.scale==TimeStep.SCALE.HOUR){switch(this.step){case 4:t.setMinutes(60*Math.round(t.getMinutes()/60));break;default:t.setMinutes(30*Math.round(t.getMinutes()/30))}t.setSeconds(0),t.setMilliseconds(0)}else if(this.scale==TimeStep.SCALE.MINUTE){switch(this.step){case 15:case 10:t.setMinutes(5*Math.round(t.getMinutes()/5)),t.setSeconds(0);break;case 5:t.setSeconds(60*Math.round(t.getSeconds()/60));break;default:t.setSeconds(30*Math.round(t.getSeconds()/30))}t.setMilliseconds(0)}else if(this.scale==TimeStep.SCALE.SECOND)switch(this.step){case 15:case 10:t.setSeconds(5*Math.round(t.getSeconds()/5)),t.setMilliseconds(0);break;case 5:t.setMilliseconds(1e3*Math.round(t.getMilliseconds()/1e3));break;default:t.setMilliseconds(500*Math.round(t.getMilliseconds()/500))}else if(this.scale==TimeStep.SCALE.MILLISECOND){var i=this.step>5?this.step/2:1;t.setMilliseconds(Math.round(t.getMilliseconds()/i)*i)}},TimeStep.prototype.isMajor=function(){switch(this.scale){case TimeStep.SCALE.MILLISECOND:return 0==this.current.getMilliseconds();case TimeStep.SCALE.SECOND:return 0==this.current.getSeconds();case TimeStep.SCALE.MINUTE:return 0==this.current.getHours()&&0==this.current.getMinutes();case TimeStep.SCALE.HOUR:return 0==this.current.getHours();case TimeStep.SCALE.WEEKDAY:case TimeStep.SCALE.DAY:return 1==this.current.getDate();case TimeStep.SCALE.MONTH:return 0==this.current.getMonth();case TimeStep.SCALE.YEAR:return!1;default:return!1}},TimeStep.prototype.getLabelMinor=function(t){switch(void 0==t&&(t=this.current),this.scale){case TimeStep.SCALE.MILLISECOND:return M(t).format("SSS");case TimeStep.SCALE.SECOND:return M(t).format("s");case TimeStep.SCALE.MINUTE:return M(t).format("HH:mm");case TimeStep.SCALE.HOUR:return M(t).format("HH:mm");case TimeStep.SCALE.WEEKDAY:return M(t).format("ddd D");case TimeStep.SCALE.DAY:return M(t).format("D");case TimeStep.SCALE.MONTH:return M(t).format("MMM");case TimeStep.SCALE.YEAR:return M(t).format("YYYY");default:return""}},TimeStep.prototype.getLabelMajor=function(t){switch(void 0==t&&(t=this.current),this.scale){case TimeStep.SCALE.MILLISECOND:return M(t).format("HH:mm:ss");case TimeStep.SCALE.SECOND:return M(t).format("D MMMM HH:mm");case TimeStep.SCALE.MINUTE:case TimeStep.SCALE.HOUR:return M(t).format("ddd D MMMM");case TimeStep.SCALE.WEEKDAY:case TimeStep.SCALE.DAY:return M(t).format("MMMM YYYY");case TimeStep.SCALE.MONTH:return M(t).format("YYYY");case TimeStep.SCALE.YEAR:return"";default:return""}},a.prototype.setOptions=function(t){O.extend(this.options,t)},a.prototype.update=function(){this._order(),this._stack()},a.prototype._order=function(){var t=this.parent.items;if(!t)throw Error("Cannot stack items: parent does not contain items");var e=[],i=0;O.forEach(t,function(t){t.visible&&(e[i]=t,i++)});var n=this.options.order||this.defaultOptions.order;if("function"!=typeof n)throw Error("Option order must be a function");e.sort(n),this.ordered=e},a.prototype._stack=function(){var t,e,i,n=this.ordered,s=this.options,o=s.orientation||this.defaultOptions.orientation,r="top"==o;for(i=s.margin&&void 0!==s.margin.item?s.margin.item:this.defaultOptions.margin.item,t=0,e=n.length;e>t;t++){var a=n[t],h=null;do h=this.checkOverlap(n,t,0,t-1,i),null!=h&&(a.top=r?h.top+h.height+i:h.top-a.height-i);while(h)}},a.prototype.checkOverlap=function(t,e,i,n,s){for(var o=this.collision,r=t[e],a=n;a>=i;a--){var h=t[a];if(o(r,h,s)&&a!=e)return h}return null},a.prototype.collision=function(t,e,i){return t.left-ie.left&&t.top-ie.top},h.prototype.setOptions=function(t){O.extend(this.options,t),(null!=t.start||null!=t.end)&&this.setRange(t.start,t.end)},h.prototype.subscribe=function(t,e,i){var n,s=this;if("horizontal"!=i&&"vertical"!=i)throw new TypeError('Unknown direction "'+i+'". '+'Choose "horizontal" or "vertical".');if("move"==e)n={component:t,event:e,direction:i,callback:function(t){s._onMouseDown(t,n)},params:{}},t.on("mousedown",n.callback),s.listeners.push(n);else{if("zoom"!=e)throw new TypeError('Unknown event "'+e+'". '+'Choose "move" or "zoom".');n={component:t,event:e,direction:i,callback:function(t){s._onMouseWheel(t,n)},params:{}},t.on("mousewheel",n.callback),s.listeners.push(n)}},h.prototype.on=function(t,e){L.addListener(this,t,e)},h.prototype._trigger=function(t){L.trigger(this,t,{start:this.start,end:this.end})},h.prototype.setRange=function(t,e){var i=this._applyRange(t,e);i&&(this._trigger("rangechange"),this._trigger("rangechanged"))},h.prototype._applyRange=function(t,e){var i,n=null!=t?O.convert(t,"Number"):this.start,s=null!=e?O.convert(e,"Number"):this.end;if(isNaN(n))throw Error('Invalid start "'+t+'"');if(isNaN(s))throw Error('Invalid end "'+e+'"');if(n>s&&(s=n),null!=this.options.min){var o=this.options.min.valueOf();o>n&&(i=o-n,n+=i,s+=i)}if(null!=this.options.max){var r=this.options.max.valueOf();s>r&&(i=s-r,n-=i,s-=i)}if(null!=this.options.zoomMin){var a=this.options.zoomMin.valueOf();0>a&&(a=0),a>s-n&&(this.end-this.start>a?(i=a-(s-n),n-=i/2,s+=i/2):(n=this.start,s=this.end))}if(null!=this.options.zoomMax){var h=this.options.zoomMax.valueOf();0>h&&(h=0),s-n>h&&(h>this.end-this.start?(i=s-n-h,n+=i/2,s-=i/2):(n=this.start,s=this.end))}var d=this.start!=n||this.end!=s;return this.start=n,this.end=s,d},h.prototype.getRange=function(){return{start:this.start,end:this.end}},h.prototype.conversion=function(t){return this.start,this.end,h.conversion(this.start,this.end,t)},h.conversion=function(t,e,i){return 0!=i&&0!=e-t?{offset:t,factor:i/(e-t)}:{offset:0,factor:1}},h.prototype._onMouseDown=function(t,e){t=t||window.event;var i=e.params,n=t.which?1==t.which:1==t.button;if(n){i.mouseX=O.getPageX(t),i.mouseY=O.getPageY(t),i.previousLeft=0,i.previousOffset=0,i.moved=!1,i.start=this.start,i.end=this.end;var s=e.component.frame;s&&(s.style.cursor="move");var o=this;i.onMouseMove||(i.onMouseMove=function(t){o._onMouseMove(t,e)},O.addEventListener(document,"mousemove",i.onMouseMove)),i.onMouseUp||(i.onMouseUp=function(t){o._onMouseUp(t,e)},O.addEventListener(document,"mouseup",i.onMouseUp)),O.preventDefault(t)}},h.prototype._onMouseMove=function(t,e){t=t||window.event;var i=e.params,n=O.getPageX(t),s=O.getPageY(t);void 0==i.mouseX&&(i.mouseX=n),void 0==i.mouseY&&(i.mouseY=s);var o=n-i.mouseX,r=s-i.mouseY,a="horizontal"==e.direction?o:r;Math.abs(a)>=1&&(i.moved=!0);var h=i.end-i.start,d="horizontal"==e.direction?e.component.width:e.component.height,l=-a/d*h;this._applyRange(i.start+l,i.end+l),this._trigger("rangechange"),O.preventDefault(t)},h.prototype._onMouseUp=function(t,e){t=t||window.event;var i=e.params;e.component.frame&&(e.component.frame.style.cursor="auto"),i.onMouseMove&&(O.removeEventListener(document,"mousemove",i.onMouseMove),i.onMouseMove=null),i.onMouseUp&&(O.removeEventListener(document,"mouseup",i.onMouseUp),i.onMouseUp=null),i.moved&&this._trigger("rangechanged")},h.prototype._onMouseWheel=function(t,e){t=t||window.event;var i=0;if(t.wheelDelta?i=t.wheelDelta/120:t.detail&&(i=-t.detail/3),i){var n=this,s=function(){var s=i/5,o=null,r=e.component.frame;if(r){var a,h;if("horizontal"==e.direction){a=e.component.width,h=n.conversion(a);var d=O.getAbsoluteLeft(r),l=O.getPageX(t);o=(l-d)/h.factor+h.offset}else{a=e.component.height,h=n.conversion(a);var p=O.getAbsoluteTop(r),c=O.getPageY(t);o=(p+a-c-p)/h.factor+h.offset}}n.zoom(s,o)};s()}O.preventDefault(t)},h.prototype.zoom=function(t,e){null==e&&(e=(this.start+this.end)/2),t>=1&&(t=.9),-1>=t&&(t=-.9),0>t&&(t/=1+t);var i=this.start-e,n=this.end-e,s=this.start-i*t,o=this.end-n*t;this.setRange(s,o)},h.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,n=this.end+e*t;this.start=i,this.end=n},h.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,n=this.start-i,s=this.end-i;this.setRange(n,s)},d.prototype.add=function(t){if(void 0==t.id)throw Error("Component has no field id");if(!(t instanceof l||t instanceof d))throw new TypeError("Component must be an instance of prototype Component or Controller");t.controller=this,this.components[t.id]=t},d.prototype.remove=function(t){var e;for(e in this.components)if(this.components.hasOwnProperty(e)&&(e==t||this.components[e]==t))break;e&&delete this.components[e]},d.prototype.requestReflow=function(t){if(t)this.reflow();else if(!this.reflowTimer){var e=this;this.reflowTimer=setTimeout(function(){e.reflowTimer=void 0,e.reflow()},0)}},d.prototype.requestRepaint=function(t){if(t)this.repaint();else if(!this.repaintTimer){var e=this;this.repaintTimer=setTimeout(function(){e.repaintTimer=void 0,e.repaint()},0)}},d.prototype.repaint=function(){function t(n,s){s in i||(n.depends&&n.depends.forEach(function(e){t(e,e.id)}),n.parent&&t(n.parent,n.parent.id),e=n.repaint()||e,i[s]=!0)}var e=!1;this.repaintTimer&&(clearTimeout(this.repaintTimer),this.repaintTimer=void 0);var i={};O.forEach(this.components,t),e&&this.reflow()},d.prototype.reflow=function(){function t(n,s){s in i||(n.depends&&n.depends.forEach(function(e){t(e,e.id)}),n.parent&&t(n.parent,n.parent.id),e=n.reflow()||e,i[s]=!0)}var e=!1;this.reflowTimer&&(clearTimeout(this.reflowTimer),this.reflowTimer=void 0);var i={};O.forEach(this.components,t),e&&this.repaint()},l.prototype.setOptions=function(t){t&&(O.extend(this.options,t),this.controller&&(this.requestRepaint(),this.requestReflow()))},l.prototype.getOption=function(t){var e;return this.options&&(e=this.options[t]),void 0===e&&this.defaultOptions&&(e=this.defaultOptions[t]),e},l.prototype.getContainer=function(){return null},l.prototype.getFrame=function(){return this.frame},l.prototype.repaint=function(){return!1},l.prototype.reflow=function(){return!1},l.prototype.hide=function(){return this.frame&&this.frame.parentNode?(this.frame.parentNode.removeChild(this.frame),!0):!1},l.prototype.show=function(){return this.frame&&this.frame.parentNode?!1:this.repaint()},l.prototype.requestRepaint=function(){if(!this.controller)throw Error("Cannot request a repaint: no controller configured");this.controller.requestRepaint()},l.prototype.requestReflow=function(){if(!this.controller)throw Error("Cannot request a reflow: no controller configured");this.controller.requestReflow()},p.prototype=new l,p.prototype.setOptions=l.prototype.setOptions,p.prototype.getContainer=function(){return this.frame},p.prototype.repaint=function(){var t=0,e=O.updateProperty,i=O.option.asSize,n=this.options,s=this.frame;if(!s){s=document.createElement("div"),s.className="panel";var o=n.className;o&&("function"==typeof o?O.addClassName(s,o()+""):O.addClassName(s,o+"")),this.frame=s,t+=1}if(!s.parentNode){if(!this.parent)throw Error("Cannot repaint panel: no parent attached");var r=this.parent.getContainer();if(!r)throw Error("Cannot repaint panel: parent has no container element");r.appendChild(s),t+=1}return t+=e(s.style,"top",i(n.top,"0px")),t+=e(s.style,"left",i(n.left,"0px")),t+=e(s.style,"width",i(n.width,"100%")),t+=e(s.style,"height",i(n.height,"100%")),t>0},p.prototype.reflow=function(){var t=0,e=O.updateProperty,i=this.frame;return i?(t+=e(this,"top",i.offsetTop),t+=e(this,"left",i.offsetLeft),t+=e(this,"width",i.offsetWidth),t+=e(this,"height",i.offsetHeight)):t+=1,t>0},c.prototype=new p,c.prototype.setOptions=l.prototype.setOptions,c.prototype.repaint=function(){var t=0,e=O.updateProperty,i=O.option.asSize,n=this.options,s=this.frame;if(!s){s=document.createElement("div"),s.className="vis timeline rootpanel";var o=n.className;o&&O.addClassName(s,O.option.asString(o)),this.frame=s,t+=1}if(!s.parentNode){if(!this.container)throw Error("Cannot repaint root panel: no container attached");this.container.appendChild(s),t+=1}return t+=e(s.style,"top",i(n.top,"0px")),t+=e(s.style,"left",i(n.left,"0px")),t+=e(s.style,"width",i(n.width,"100%")),t+=e(s.style,"height",i(n.height,"100%")),this._updateEventEmitters(),this._updateWatch(),t>0},c.prototype.reflow=function(){var t=0,e=O.updateProperty,i=this.frame;return i?(t+=e(this,"top",i.offsetTop),t+=e(this,"left",i.offsetLeft),t+=e(this,"width",i.offsetWidth),t+=e(this,"height",i.offsetHeight)):t+=1,t>0},c.prototype._updateWatch=function(){var t=this.getOption("autoResize");t?this._watch():this._unwatch()},c.prototype._watch=function(){var t=this;this._unwatch();var e=function(){var e=t.getOption("autoResize");return e?(t.frame&&(t.frame.clientWidth!=t.width||t.frame.clientHeight!=t.height)&&t.requestReflow(),void 0):(t._unwatch(),void 0)};O.addEventListener(window,"resize",e),this.watchTimer=setInterval(e,1e3)},c.prototype._unwatch=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0)},c.prototype.on=function(t,e){var i=this.listeners[t];i||(i=[],this.listeners[t]=i),i.push(e),this._updateEventEmitters()},c.prototype._updateEventEmitters=function(){if(this.listeners){var t=this;O.forEach(this.listeners,function(e,i){if(t.emitters||(t.emitters={}),!(i in t.emitters)){var n=t.frame;if(n){var s=function(t){e.forEach(function(e){e(t)})};t.emitters[i]=s,O.addEventListener(n,i,s)}}})}},u.prototype=new l,u.prototype.setOptions=l.prototype.setOptions,u.prototype.setRange=function(t){if(!(t instanceof h||t&&t.start&&t.end))throw new TypeError("Range must be an instance of Range, or an object containing start and end.");this.range=t},u.prototype.toTime=function(t){var e=this.conversion;return new Date(t/e.factor+e.offset)},u.prototype.toScreen=function(t){var e=this.conversion;return(t.valueOf()-e.offset)*e.factor},u.prototype.repaint=function(){var t=0,e=O.updateProperty,i=O.option.asSize,n=this.options,s=this.getOption("orientation"),o=this.props,r=this.step,a=this.frame;if(a||(a=document.createElement("div"),this.frame=a,t+=1),a.className="axis "+s,!a.parentNode){if(!this.parent)throw Error("Cannot repaint time axis: no parent attached");var h=this.parent.getContainer();if(!h)throw Error("Cannot repaint time axis: parent has no container element");h.appendChild(a),t+=1}var d=a.parentNode;if(d){var l=a.nextSibling;d.removeChild(a);var p="bottom"==s&&this.props.parentHeight&&this.height?this.props.parentHeight-this.height+"px":"0px";if(t+=e(a.style,"top",i(n.top,p)),t+=e(a.style,"left",i(n.left,"0px")),t+=e(a.style,"width",i(n.width,"100%")),t+=e(a.style,"height",i(n.height,this.height+"px")),this._repaintMeasureChars(),this.step){this._repaintStart(),r.first();for(var c=void 0,u=0;r.hasNext()&&1e3>u;){u++;var f=r.getCurrent(),m=this.toScreen(f),g=r.isMajor();this.getOption("showMinorLabels")&&this._repaintMinorText(m,r.getLabelMinor()),g&&this.getOption("showMajorLabels")?(m>0&&(void 0==c&&(c=m),this._repaintMajorText(m,r.getLabelMajor())),this._repaintMajorLine(m)):this._repaintMinorLine(m),r.next()}if(this.getOption("showMajorLabels")){var v=this.toTime(0),y=r.getLabelMajor(v),b=y.length*(o.majorCharWidth||10)+10;(void 0==c||c>b)&&this._repaintMajorText(0,y)}this._repaintEnd()}this._repaintLine(),l?d.insertBefore(a,l):d.appendChild(a)}return t>0},u.prototype._repaintStart=function(){var t=this.dom,e=t.redundant;e.majorLines=t.majorLines,e.majorTexts=t.majorTexts,e.minorLines=t.minorLines,e.minorTexts=t.minorTexts,t.majorLines=[],t.majorTexts=[],t.minorLines=[],t.minorTexts=[]},u.prototype._repaintEnd=function(){O.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},u.prototype._repaintMinorText=function(t,e){var i=this.dom.redundant.minorTexts.shift();if(!i){var n=document.createTextNode("");i=document.createElement("div"),i.appendChild(n),i.className="text minor",this.frame.appendChild(i)}this.dom.minorTexts.push(i),i.childNodes[0].nodeValue=e,i.style.left=t+"px",i.style.top=this.props.minorLabelTop+"px"},u.prototype._repaintMajorText=function(t,e){var i=this.dom.redundant.majorTexts.shift();if(!i){var n=document.createTextNode(e);i=document.createElement("div"),i.className="text major",i.appendChild(n),this.frame.appendChild(i)}this.dom.majorTexts.push(i),i.childNodes[0].nodeValue=e,i.style.top=this.props.majorLabelTop+"px",i.style.left=t+"px"},u.prototype._repaintMinorLine=function(t){var e=this.dom.redundant.minorLines.shift();e||(e=document.createElement("div"),e.className="grid vertical minor",this.frame.appendChild(e)),this.dom.minorLines.push(e);var i=this.props;e.style.top=i.minorLineTop+"px",e.style.height=i.minorLineHeight+"px",e.style.left=t-i.minorLineWidth/2+"px"},u.prototype._repaintMajorLine=function(t){var e=this.dom.redundant.majorLines.shift();e||(e=document.createElement("DIV"),e.className="grid vertical major",this.frame.appendChild(e)),this.dom.majorLines.push(e);var i=this.props;e.style.top=i.majorLineTop+"px",e.style.left=t-i.majorLineWidth/2+"px",e.style.height=i.majorLineHeight+"px"},u.prototype._repaintLine=function(){var t=this.dom.line,e=this.frame;this.options,this.getOption("showMinorLabels")||this.getOption("showMajorLabels")?(t?(e.removeChild(t),e.appendChild(t)):(t=document.createElement("div"),t.className="grid horizontal major",e.appendChild(t),this.dom.line=t),t.style.top=this.props.lineTop+"px"):t&&axis.parentElement&&(e.removeChild(axis.line),delete this.dom.line)},u.prototype._repaintMeasureChars=function(){var t,e=this.dom;if(!e.measureCharMinor){t=document.createTextNode("0");var i=document.createElement("DIV");i.className="text minor measure",i.appendChild(t),this.frame.appendChild(i),e.measureCharMinor=i}if(!e.measureCharMajor){t=document.createTextNode("0");var n=document.createElement("DIV");n.className="text major measure",n.appendChild(t),this.frame.appendChild(n),e.measureCharMajor=n}},u.prototype.reflow=function(){var t=0,e=O.updateProperty,i=this.frame,n=this.range;if(!n)throw Error("Cannot repaint time axis: no range configured");if(i){t+=e(this,"top",i.offsetTop),t+=e(this,"left",i.offsetLeft);var s=this.props,o=this.getOption("showMinorLabels"),r=this.getOption("showMajorLabels"),a=this.dom.measureCharMinor,h=this.dom.measureCharMajor;a&&(s.minorCharHeight=a.clientHeight,s.minorCharWidth=a.clientWidth),h&&(s.majorCharHeight=h.clientHeight,s.majorCharWidth=h.clientWidth);var d=i.parentNode?i.parentNode.offsetHeight:0;switch(d!=s.parentHeight&&(s.parentHeight=d,t+=1),this.getOption("orientation")){case"bottom":s.minorLabelHeight=o?s.minorCharHeight:0,s.majorLabelHeight=r?s.majorCharHeight:0,s.minorLabelTop=0,s.majorLabelTop=s.minorLabelTop+s.minorLabelHeight,s.minorLineTop=-this.top,s.minorLineHeight=Math.max(this.top+s.majorLabelHeight,0),s.minorLineWidth=1,s.majorLineTop=-this.top,s.majorLineHeight=Math.max(this.top+s.minorLabelHeight+s.majorLabelHeight,0),s.majorLineWidth=1,s.lineTop=0;break;case"top":s.minorLabelHeight=o?s.minorCharHeight:0,s.majorLabelHeight=r?s.majorCharHeight:0,s.majorLabelTop=0,s.minorLabelTop=s.majorLabelTop+s.majorLabelHeight,s.minorLineTop=s.minorLabelTop,s.minorLineHeight=Math.max(d-s.majorLabelHeight-this.top),s.minorLineWidth=1,s.majorLineTop=0,s.majorLineHeight=Math.max(d-this.top),s.majorLineWidth=1,s.lineTop=s.majorLabelHeight+s.minorLabelHeight;break;default:throw Error('Unkown orientation "'+this.getOption("orientation")+'"')}var l=s.minorLabelHeight+s.majorLabelHeight;t+=e(this,"width",i.offsetWidth),t+=e(this,"height",l),this._updateConversion();var p=O.convert(n.start,"Date"),c=O.convert(n.end,"Date"),u=this.toTime(5*(s.minorCharWidth||10))-this.toTime(0);this.step=new TimeStep(p,c,u),t+=e(s.range,"start",p.valueOf()),t+=e(s.range,"end",c.valueOf()),t+=e(s.range,"minimumStep",u.valueOf())}return t>0},u.prototype._updateConversion=function(){var t=this.range;if(!t)throw Error("No range configured");this.conversion=t.conversion?t.conversion(this.width):h.conversion(t.start,t.end,this.width)},f.prototype=new p,f.types={box:g,range:y,point:v},f.prototype.setOptions=l.prototype.setOptions,f.prototype.setRange=function(t){if(!(t instanceof h||t&&t.start&&t.end))throw new TypeError("Range must be an instance of Range, or an object containing start and end.");this.range=t},f.prototype.repaint=function(){var t=0,e=O.updateProperty,i=O.option.asSize,n=this.options,s=this.getOption("orientation"),o=this.defaultOptions,r=this.frame;if(!r){r=document.createElement("div"),r.className="itemset";var a=n.className;a&&O.addClassName(r,O.option.asString(a));var h=document.createElement("div");h.className="background",r.appendChild(h),this.dom.background=h;var d=document.createElement("div");d.className="foreground",r.appendChild(d),this.dom.foreground=d;var l=document.createElement("div");l.className="itemset-axis",this.dom.axis=l,this.frame=r,t+=1}if(!this.parent)throw Error("Cannot repaint itemset: no parent attached");var p=this.parent.getContainer();if(!p)throw Error("Cannot repaint itemset: parent has no container element");r.parentNode||(p.appendChild(r),t+=1),this.dom.axis.parentNode||(p.appendChild(this.dom.axis),t+=1),t+=e(r.style,"left",i(n.left,"0px")),t+=e(r.style,"top",i(n.top,"0px")),t+=e(r.style,"width",i(n.width,"100%")),t+=e(r.style,"height",i(n.height,this.height+"px")),t+=e(this.dom.axis.style,"left",i(n.left,"0px")),t+=e(this.dom.axis.style,"width",i(n.width,"100%")),t+="bottom"==s?e(this.dom.axis.style,"top",this.height+this.top+"px"):e(this.dom.axis.style,"top",this.top+"px"),this._updateConversion();var c=this,u=this.queue,m=this.itemsData,g=this.items,v={};return Object.keys(u).forEach(function(e){var i=u[e],s=g[e];switch(i){case"add":case"update":var r=m&&m.get(e,v);if(r){var a=r.type||r.start&&r.end&&"range"||n.type||"box",h=f.types[a];if(s&&(h&&s instanceof h?(s.data=r,t++):(t+=s.hide(),s=null)),!s){if(!h)throw new TypeError('Unknown item type "'+a+'"');s=new h(c,r,n,o),t++}s.repaint(),g[e]=s}delete u[e];break;case"remove":s&&(t+=s.hide()),delete g[e],delete u[e];break;default:console.log('Error: unknown action "'+i+'"')}}),O.forEach(this.items,function(e){e.visible?(t+=e.show(),e.reposition()):t+=e.hide()}),t>0},f.prototype.getForeground=function(){return this.dom.foreground},f.prototype.getBackground=function(){return this.dom.background},f.prototype.getAxis=function(){return this.dom.axis},f.prototype.reflow=function(){var t=0,e=this.options,i=e.margin&&e.margin.axis||this.defaultOptions.margin.axis,n=e.margin&&e.margin.item||this.defaultOptions.margin.item,s=O.updateProperty,o=O.option.asNumber,r=O.option.asSize,a=this.frame;if(a){this._updateConversion(),O.forEach(this.items,function(e){t+=e.reflow()}),this.stack.update();var h,d=o(e.maxHeight),l=null!=r(e.height);if(l)h=a.offsetHeight;else{var p=this.stack.ordered;if(p.length){var c=p[0].top,u=p[0].top+p[0].height;O.forEach(p,function(t){c=Math.min(c,t.top),u=Math.max(u,t.top+t.height)}),h=u-c+i+n}else h=i+n}null!=d&&(h=Math.min(h,d)),t+=s(this,"height",h),t+=s(this,"top",a.offsetTop),t+=s(this,"left",a.offsetLeft),t+=s(this,"width",a.offsetWidth)}else t+=1;return t>0},f.prototype.hide=function(){var t=!1;return this.frame&&this.frame.parentNode&&(this.frame.parentNode.removeChild(this.frame),t=!0),this.dom.axis&&this.dom.axis.parentNode&&(this.dom.axis.parentNode.removeChild(this.dom.axis),t=!0),t},f.prototype.setItems=function(t){var e,i=this,n=this.itemsData;if(t){if(!(t instanceof o||t instanceof r))throw new TypeError("Data must be an instance of DataSet");this.itemsData=t}else this.itemsData=null;if(n&&(O.forEach(this.listeners,function(t,e){n.unsubscribe(e,t)}),e=n.getIds(),this._onRemove(e)),this.itemsData){var s=this.id;O.forEach(this.listeners,function(t,e){i.itemsData.subscribe(e,t,s)}),e=this.itemsData.getIds(),this._onAdd(e)}},f.prototype.getItems=function(){return this.itemsData},f.prototype._onUpdate=function(t){this._toQueue("update",t)},f.prototype._onAdd=function(t){this._toQueue("add",t)},f.prototype._onRemove=function(t){this._toQueue("remove",t)},f.prototype._toQueue=function(t,e){var i=this.queue;e.forEach(function(e){i[e]=t}),this.controller&&this.requestRepaint()},f.prototype._updateConversion=function(){var t=this.range;if(!t)throw Error("No range configured");this.conversion=t.conversion?t.conversion(this.width):h.conversion(t.start,t.end,this.width)},f.prototype.toTime=function(t){var e=this.conversion;return new Date(t/e.factor+e.offset)},f.prototype.toScreen=function(t){var e=this.conversion;return(t.valueOf()-e.offset)*e.factor},m.prototype.select=function(){this.selected=!0},m.prototype.unselect=function(){this.selected=!1},m.prototype.show=function(){return!1},m.prototype.hide=function(){return!1},m.prototype.repaint=function(){return!1},m.prototype.reflow=function(){return!1},g.prototype=new m(null,null),g.prototype.select=function(){this.selected=!0},g.prototype.unselect=function(){this.selected=!1},g.prototype.repaint=function(){var t=!1,e=this.dom;if(e||(this._create(),e=this.dom,t=!0),e){if(!this.parent)throw Error("Cannot repaint item: no parent attached");var i=this.parent.getForeground();if(!i)throw Error("Cannot repaint time axis: parent has no foreground container element");var n=this.parent.getBackground();if(!n)throw Error("Cannot repaint time axis: parent has no background container element");var s=this.parent.getAxis();if(!n)throw Error("Cannot repaint time axis: parent has no axis container element");if(e.box.parentNode||(i.appendChild(e.box),t=!0),e.line.parentNode||(n.appendChild(e.line),t=!0),e.dot.parentNode||(s.appendChild(e.dot),t=!0),this.data.content!=this.content){if(this.content=this.data.content,this.content instanceof Element)e.content.innerHTML="",e.content.appendChild(this.content);else{if(void 0==this.data.content)throw Error('Property "content" missing in item '+this.data.id);e.content.innerHTML=this.content}t=!0}var o=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");this.className!=o&&(this.className=o,e.box.className="item box"+o,e.line.className="item line"+o,e.dot.className="item dot"+o,t=!0)}return t},g.prototype.show=function(){return this.dom&&this.dom.box.parentNode?!1:this.repaint()},g.prototype.hide=function(){var t=!1,e=this.dom;return e&&(e.box.parentNode&&(e.box.parentNode.removeChild(e.box),t=!0),e.line.parentNode&&e.line.parentNode.removeChild(e.line),e.dot.parentNode&&e.dot.parentNode.removeChild(e.dot)),t},g.prototype.reflow=function(){var t,e,i,n,s,o,r,a,h,d,l,p,c=0;if(void 0==this.data.start)throw Error('Property "start" missing in item '+this.data.id);if(l=this.data,p=this.parent&&this.parent.range,l&&p){var u=p.end-p.start;this.visible=l.start>p.start-u&&l.start0},g.prototype._create=function(){var t=this.dom;t||(this.dom=t={},t.box=document.createElement("DIV"),t.content=document.createElement("DIV"),t.content.className="content",t.box.appendChild(t.content),t.line=document.createElement("DIV"),t.line.className="line",t.dot=document.createElement("DIV"),t.dot.className="dot")},g.prototype.reposition=function(){var t=this.dom,e=this.props,i=this.options.orientation||this.defaultOptions.orientation;if(t){var n=t.box,s=t.line,o=t.dot;n.style.left=this.left+"px",n.style.top=this.top+"px",s.style.left=e.line.left+"px","top"==i?(s.style.top="0px",s.style.height=this.top+"px"):(s.style.top=this.top+this.height+"px",s.style.height=Math.max(this.parent.height-this.top-this.height+this.props.dot.height/2,0)+"px"),o.style.left=e.dot.left+"px",o.style.top=e.dot.top+"px"}},v.prototype=new m(null,null),v.prototype.select=function(){this.selected=!0},v.prototype.unselect=function(){this.selected=!1},v.prototype.repaint=function(){var t=!1,e=this.dom;if(e||(this._create(),e=this.dom,t=!0),e){if(!this.parent)throw Error("Cannot repaint item: no parent attached");var i=this.parent.getForeground();if(!i)throw Error("Cannot repaint time axis: parent has no foreground container element");if(e.point.parentNode||(i.appendChild(e.point),i.appendChild(e.point),t=!0),this.data.content!=this.content){if(this.content=this.data.content,this.content instanceof Element)e.content.innerHTML="",e.content.appendChild(this.content);else{if(void 0==this.data.content)throw Error('Property "content" missing in item '+this.data.id);e.content.innerHTML=this.content}t=!0}var n=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");this.className!=n&&(this.className=n,e.point.className="item point"+n,t=!0)}return t},v.prototype.show=function(){return this.dom&&this.dom.point.parentNode?!1:this.repaint()},v.prototype.hide=function(){var t=!1,e=this.dom;return e&&e.point.parentNode&&(e.point.parentNode.removeChild(e.point),t=!0),t},v.prototype.reflow=function(){var t,e,i,n,s,o,r,a,h,d,l=0;if(void 0==this.data.start)throw Error('Property "start" missing in item '+this.data.id);if(h=this.data,d=this.parent&&this.parent.range,h&&d){var p=d.end-d.start;this.visible=h.start>d.start-p&&h.start0},v.prototype._create=function(){var t=this.dom;t||(this.dom=t={},t.point=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.point.appendChild(t.content),t.dot=document.createElement("div"),t.dot.className="dot",t.point.appendChild(t.dot))},v.prototype.reposition=function(){var t=this.dom,e=this.props;t&&(t.point.style.top=this.top+"px",t.point.style.left=this.left+"px",t.content.style.marginLeft=e.content.marginLeft+"px",t.dot.style.top=e.dot.top+"px")},y.prototype=new m(null,null),y.prototype.select=function(){this.selected=!0},y.prototype.unselect=function(){this.selected=!1},y.prototype.repaint=function(){var t=!1,e=this.dom;if(e||(this._create(),e=this.dom,t=!0),e){if(!this.parent)throw Error("Cannot repaint item: no parent attached");var i=this.parent.getForeground();if(!i)throw Error("Cannot repaint time axis: parent has no foreground container element");if(e.box.parentNode||(i.appendChild(e.box),t=!0),this.data.content!=this.content){if(this.content=this.data.content,this.content instanceof Element)e.content.innerHTML="",e.content.appendChild(this.content);else{if(void 0==this.data.content)throw Error('Property "content" missing in item '+this.data.id); e.content.innerHTML=this.content}t=!0}var n=this.data.className?" "+this.data.className:"";this.className!=n&&(this.className=n,e.box.className="item range"+n,t=!0)}return t},y.prototype.show=function(){return this.dom&&this.dom.box.parentNode?!1:this.repaint()},y.prototype.hide=function(){var t=!1,e=this.dom;return e&&e.box.parentNode&&(e.box.parentNode.removeChild(e.box),t=!0),t},y.prototype.reflow=function(){var t,e,i,n,s,o,r,a,h,d,l,p,c,u,f,m,g=0;if(void 0==this.data.start)throw Error('Property "start" missing in item '+this.data.id);if(void 0==this.data.end)throw Error('Property "end" missing in item '+this.data.id);return h=this.data,d=this.parent&&this.parent.range,this.visible=h&&d?h.startd.start:!1,this.visible&&(t=this.dom,t?(e=this.props,i=this.options,o=this.parent,r=o.toScreen(this.data.start),a=o.toScreen(this.data.end),l=O.updateProperty,p=t.box,c=o.width,f=i.orientation||this.defaultOptions.orientation,n=i.margin&&i.margin.axis||this.defaultOptions.margin.axis,s=i.padding||this.defaultOptions.padding,g+=l(e.content,"width",t.content.offsetWidth),g+=l(this,"height",p.offsetHeight),-c>r&&(r=-c),a>2*c&&(a=2*c),u=0>r?Math.min(-r,a-r-e.content.width-2*s):0,g+=l(e.content,"left",u),"top"==f?(m=n,g+=l(this,"top",m)):(m=o.height-this.height-n,g+=l(this,"top",m)),g+=l(this,"left",r),g+=l(this,"width",Math.max(a-r,1))):g+=1),g>0},y.prototype._create=function(){var t=this.dom;t||(this.dom=t={},t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.box.appendChild(t.content))},y.prototype.reposition=function(){var t=this.dom,e=this.props;t&&(t.box.style.top=this.top+"px",t.box.style.left=this.left+"px",t.box.style.width=this.width+"px",t.content.style.left=e.content.left+"px")},b.prototype=new l,b.prototype.setOptions=l.prototype.setOptions,b.prototype.getContainer=function(){return this.parent.getContainer()},b.prototype.setItems=function(t){if(this.itemset&&(this.itemset.hide(),this.itemset.setItems(),this.parent.controller.remove(this.itemset),this.itemset=null),t){var e=this.groupId,i=Object.create(this.options);this.itemset=new f(this,null,i),this.itemset.setRange(this.parent.range),this.view=new r(t,{filter:function(t){return t.group==e}}),this.itemset.setItems(this.view),this.parent.controller.add(this.itemset)}},b.prototype.repaint=function(){return!1},b.prototype.reflow=function(){var t=0,e=O.updateProperty;if(t+=e(this,"top",this.itemset?this.itemset.top:0),t+=e(this,"height",this.itemset?this.itemset.height:0),this.label){var i=this.label.firstChild;t+=e(this.props.label,"width",i.clientWidth),t+=e(this.props.label,"height",i.clientHeight)}else t+=e(this.props.label,"width",0),t+=e(this.props.label,"height",0);return t>0},w.prototype=new p,w.prototype.setOptions=l.prototype.setOptions,w.prototype.setRange=function(){},w.prototype.setItems=function(t){this.itemsData=t;for(var e in this.groups)if(this.groups.hasOwnProperty(e)){var i=this.groups[e];i.setItems(t)}},w.prototype.getItems=function(){return this.itemsData},w.prototype.setRange=function(t){this.range=t},w.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(O.forEach(this.listeners,function(t,e){i.groupsData.unsubscribe(e,t)}),e=this.groupsData.getIds(),this._onRemove(e)),t?t instanceof o?this.groupsData=t:(this.groupsData=new o({convert:{start:"Date",end:"Date"}}),this.groupsData.add(t)):this.groupsData=null,this.groupsData){var n=this.id;O.forEach(this.listeners,function(t,e){i.groupsData.subscribe(e,t,n)}),e=this.groupsData.getIds(),this._onAdd(e)}},w.prototype.getGroups=function(){return this.groupsData},w.prototype.repaint=function(){var t,e,i,n,s=0,o=O.updateProperty,r=O.option.asSize,a=O.option.asElement,h=this.options,d=this.dom.frame,l=this.dom.labels;if(!this.parent)throw Error("Cannot repaint groupset: no parent attached");var p=this.parent.getContainer();if(!p)throw Error("Cannot repaint groupset: parent has no container element");if(!d){d=document.createElement("div"),d.className="groupset",this.dom.frame=d;var c=h.className;c&&O.addClassName(d,O.option.asString(c)),s+=1}d.parentNode||(p.appendChild(d),s+=1);var u=a(h.labelContainer);if(!u)throw Error('Cannot repaint groupset: option "labelContainer" not defined');l||(l=document.createElement("div"),l.className="labels",this.dom.labels=l),l.parentNode&&l.parentNode==u||(l.parentNode&&l.parentNode.removeChild(l.parentNode),u.appendChild(l)),s+=o(d.style,"height",r(h.height,this.height+"px")),s+=o(d.style,"top",r(h.top,"0px")),s+=o(d.style,"left",r(h.left,"0px")),s+=o(d.style,"width",r(h.width,"100%")),s+=o(l.style,"top",r(h.top,"0px"));var f=this,m=this.queue,g=this.groups,v=this.groupsData,y=Object.keys(m);if(y.length){y.forEach(function(t){var e=m[t],i=g[t];switch(e){case"add":case"update":if(!i){var n=Object.create(f.options);i=new b(f,t,n),i.setItems(f.itemsData),g[t]=i,f.controller.add(i)}i.data=v.get(t),delete m[t];break;case"remove":i&&(i.setItems(),delete g[t],f.controller.remove(i)),delete m[t];break;default:console.log('Error: unknown action "'+e+'"')}});var w=this.groupsData.getIds({order:this.options.groupsOrder});for(t=0;w.length>t;t++)(function(t,e){var i=0;e&&(i=function(){return e.top+e.height}),t.setOptions({top:i})})(g[w[t]],g[w[t-1]]);for(;l.firstChild;)l.removeChild(l.firstChild);for(t=0;w.length>t;t++)e=w[t],n=this._createLabel(e),l.appendChild(n);s++}for(e in g)g.hasOwnProperty(e)&&(i=g[e],n=i.label,n&&(n.style.top=i.top+"px",n.style.height=i.height+"px"));return s>0},w.prototype._createLabel=function(t){var e=this.groups[t],i=document.createElement("div");i.className="label";var n=document.createElement("div");n.className="inner",i.appendChild(n);var s=e.data&&e.data.content;s instanceof Element?n.appendChild(s):void 0!=s&&(n.innerHTML=s);var o=e.data&&e.data.className;return o&&O.addClassName(i,o),e.label=i,i},w.prototype.getContainer=function(){return this.dom.frame},w.prototype.getLabelsWidth=function(){return this.props.labels.width},w.prototype.reflow=function(){var t,e,i=0,n=this.options,s=O.updateProperty,o=O.option.asNumber,r=O.option.asSize,a=this.dom.frame;if(a){var h,d=o(n.maxHeight),l=null!=r(n.height);if(l)h=a.offsetHeight;else{h=0;for(t in this.groups)this.groups.hasOwnProperty(t)&&(e=this.groups[t],h+=e.height)}null!=d&&(h=Math.min(h,d)),i+=s(this,"height",h),i+=s(this,"top",a.offsetTop),i+=s(this,"left",a.offsetLeft),i+=s(this,"width",a.offsetWidth)}var p=0;for(t in this.groups)if(this.groups.hasOwnProperty(t)){e=this.groups[t];var c=e.props&&e.props.label&&e.props.label.width||0;p=Math.max(p,c)}return i+=s(this.props.labels,"width",p),i>0},w.prototype.hide=function(){return this.dom.frame&&this.dom.frame.parentNode?(this.dom.frame.parentNode.removeChild(this.dom.frame),!0):!1},w.prototype.show=function(){return this.dom.frame&&this.dom.frame.parentNode?!1:this.repaint()},w.prototype._onUpdate=function(t){this._toQueue(t,"update")},w.prototype._onAdd=function(t){this._toQueue(t,"add")},w.prototype._onRemove=function(t){this._toQueue(t,"remove")},w.prototype._toQueue=function(t,e){var i=this.queue;t.forEach(function(t){i[t]=e}),this.controller&&this.requestRepaint()},_.prototype.setOptions=function(t){t&&O.extend(this.options,t),this.controller.reflow(),this.controller.repaint()},_.prototype.setItems=function(t){var e,i=null==this.itemsData;if(t?t instanceof o&&(e=t):e=null,t instanceof o||(e=new o({convert:{start:"Date",end:"Date"}}),e.add(t)),this.itemsData=e,this.content.setItems(e),i&&(void 0==this.options.start||void 0==this.options.end)){var n=this.getItemRange(),s=n.min,r=n.max;if(null!=s&&null!=r){var a=r.valueOf()-s.valueOf();0>=a&&(a=864e5),s=new Date(s.valueOf()-.05*a),r=new Date(r.valueOf()+.05*a)}void 0!=this.options.start&&(s=new Date(this.options.start.valueOf())),void 0!=this.options.end&&(r=new Date(this.options.end.valueOf())),(null!=s||null!=r)&&this.range.setRange(s,r)}},_.prototype.setGroups=function(t){var e=this;this.groupsData=t;var i=this.groupsData?w:f;if(!(this.content instanceof i)){this.content&&(this.content.hide(),this.content.setItems&&this.content.setItems(),this.content.setGroups&&this.content.setGroups(),this.controller.remove(this.content));var n=Object.create(this.options);O.extend(n,{top:function(){return"top"==e.options.orientation?e.timeaxis.height:e.itemPanel.height-e.timeaxis.height-e.content.height},left:null,width:"100%",height:function(){return e.options.height?e.itemPanel.height-e.timeaxis.height:null},maxHeight:function(){if(e.options.maxHeight){if(!O.isNumber(e.options.maxHeight))throw new TypeError("Number expected for property maxHeight");return e.options.maxHeight-e.timeaxis.height}return null},labelContainer:function(){return e.labelPanel.getContainer()}}),this.content=new i(this.itemPanel,[this.timeaxis],n),this.content.setRange&&this.content.setRange(this.range),this.content.setItems&&this.content.setItems(this.itemsData),this.content.setGroups&&this.content.setGroups(this.groupsData),this.controller.add(this.content)}},_.prototype.getItemRange=function(){var t=this.itemsData,e=null,i=null;if(t){var n=t.min("start");e=n?n.start.valueOf():null;var s=t.max("start");s&&(i=s.start.valueOf());var o=t.max("end");o&&(i=null==i?o.end.valueOf():Math.max(i,o.end.valueOf()))}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},function(t){function e(t){return M=t,c()}function i(){D=0,C=M.charAt(0)}function n(){D++,C=M.charAt(D)}function s(){return M.charAt(D+1)}function o(t){return L.test(t)}function r(t,e){if(t||(t={}),e)for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function a(t,e,i){for(var n=e.split("."),s=t;n.length;){var o=n.shift();n.length?(s[o]||(s[o]={}),s=s[o]):s[o]=i}}function h(t,e){for(var i,n,s=null,o=[t],a=t;a.parent;)o.push(a.parent),a=a.parent;if(a.nodes)for(i=0,n=a.nodes.length;n>i;i++)if(e.id===a.nodes[i].id){s=a.nodes[i];break}for(s||(s={id:e.id},t.node&&(s.attr=r(s.attr,t.node))),i=o.length-1;i>=0;i--){var h=o[i];h.nodes||(h.nodes=[]),-1==h.nodes.indexOf(s)&&h.nodes.push(s)}e.attr&&(s.attr=r(s.attr,e.attr))}function d(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=r({},t.edge);e.attr=r(i,e.attr)}}function l(t,e,i,n,s){var o={from:e,to:i,type:n};return t.edge&&(o.attr=r({},t.edge)),o.attr=r(o.attr||{},s),o}function p(){for(N=x.NULL,O="";" "==C||" "==C||"\n"==C||"\r"==C;)n();do{var t=!1;if("#"==C){for(var e=D-1;" "==M.charAt(e)||" "==M.charAt(e);)e--;if("\n"==M.charAt(e)||""==M.charAt(e)){for(;""!=C&&"\n"!=C;)n();t=!0}}if("/"==C&&"/"==s()){for(;""!=C&&"\n"!=C;)n();t=!0}if("/"==C&&"*"==s()){for(;""!=C;){if("*"==C&&"/"==s()){n(),n();break}n()}t=!0}for(;" "==C||" "==C||"\n"==C||"\r"==C;)n()}while(t);if(""==C)return N=x.DELIMITER,void 0;var i=C+s();if(S[i])return N=x.DELIMITER,O=i,n(),n(),void 0;if(S[C])return N=x.DELIMITER,O=C,n(),void 0;if(o(C)||"-"==C){for(O+=C,n();o(C);)O+=C,n();return"false"==O?O=!1:"true"==O?O=!0:isNaN(Number(O))||(O=Number(O)),N=x.IDENTIFIER,void 0}if('"'==C){for(n();""!=C&&('"'!=C||'"'==C&&'"'==s());)O+=C,'"'==C&&n(),n();if('"'!=C)throw w('End of string " expected');return n(),N=x.IDENTIFIER,void 0}for(N=x.UNKNOWN;""!=C;)O+=C,n();throw new SyntaxError('Syntax error in part "'+_(O,30)+'"')}function c(){var t={};if(i(),p(),"strict"==O&&(t.strict=!0,p()),("graph"==O||"digraph"==O)&&(t.type=O,p()),N==x.IDENTIFIER&&(t.id=O,p()),"{"!=O)throw w("Angle bracket { expected");if(p(),u(t),"}"!=O)throw w("Angle bracket } expected");if(p(),""!==O)throw w("End of file expected");return p(),delete t.node,delete t.edge,delete t.graph,t}function u(t){for(;""!==O&&"}"!=O;)f(t),";"==O&&p()}function f(t){var e=m(t);if(e)return y(t,e),void 0;var i=g(t);if(!i){if(N!=x.IDENTIFIER)throw w("Identifier expected");var n=O;if(p(),"="==O){if(p(),N!=x.IDENTIFIER)throw w("Identifier expected");t[n]=O,p()}else v(t,n)}}function m(t){var e=null;if("subgraph"==O&&(e={},e.type="subgraph",p(),N==x.IDENTIFIER&&(e.id=O,p())),"{"==O){if(p(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,u(e),"}"!=O)throw w("Angle bracket } expected");p(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function g(t){return"node"==O?(p(),t.node=b(),"node"):"edge"==O?(p(),t.edge=b(),"edge"):"graph"==O?(p(),t.graph=b(),"graph"):null}function v(t,e){var i={id:e},n=b();n&&(i.attr=n),h(t,i),y(t,e)}function y(t,e){for(;"->"==O||"--"==O;){var i,n=O;p();var s=m(t);if(s)i=s;else{if(N!=x.IDENTIFIER)throw w("Identifier or subgraph expected");i=O,h(t,{id:i}),p()}var o=b(),r=l(t,e,i,n,o);d(t,r),e=i}}function b(){for(var t=null;"["==O;){for(p(),t={};""!==O&&"]"!=O;){if(N!=x.IDENTIFIER)throw w("Attribute name expected");var e=O;if(p(),"="!=O)throw w("Equal sign = expected");if(p(),N!=x.IDENTIFIER)throw w("Attribute value expected");var i=O;a(t,e,i),p(),","==O&&p()}if("]"!=O)throw w("Bracket ] expected");p()}return t}function w(t){return new SyntaxError(t+', got "'+_(O,30)+'" (char '+D+")")}function _(t,e){return e>=t.length?t:t.substr(0,27)+"..."}function E(t,e,i){t instanceof Array?t.forEach(function(t){e instanceof Array?e.forEach(function(e){i(t,e)}):i(t,e)}):e instanceof Array?e.forEach(function(e){i(t,e)}):i(t,e)}function T(t){function i(t){var e={from:t.from,to:t.to};return r(e,t.attr),e.style="->"==t.type?"arrow":"line",e}var n=e(t),s={nodes:[],edges:[],options:{}};return n.nodes&&n.nodes.forEach(function(t){var e={id:t.id,label:(t.label||t.id)+""};r(e,t.attr),e.image&&(e.shape="image"),s.nodes.push(e)}),n.edges&&n.edges.forEach(function(t){var e,n;e=t.from instanceof Object?t.from.nodes:{id:t.from},n=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges&&t.from.edges.forEach(function(t){var e=i(t);s.edges.push(e)}),E(e,n,function(e,n){var o=l(s,e.id,n.id,t.type,t.attr),r=i(o);s.edges.push(r)}),t.to instanceof Object&&t.to.edges&&t.to.edges.forEach(function(t){var e=i(t);s.edges.push(e)})}),n.attr&&(s.options=n.attr),s}var x={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},S={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},M="",D=0,C="",O="",N=x.NULL,L=/[a-zA-Z_0-9.:#]/;t.parseDOT=e,t.DOTToGraph=T}(O!==void 0?O:n),"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1)},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i)},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath();var n=2*i,s=n/2,o=Math.sqrt(3)/6*n,r=Math.sqrt(n*n-s*s);this.moveTo(t,e-(r-o)),this.lineTo(t+s,e+o),this.lineTo(t-s,e+o),this.lineTo(t,e-(r-o)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath();var n=2*i,s=n/2,o=Math.sqrt(3)/6*n,r=Math.sqrt(n*n-s*s);this.moveTo(t,e+(r-o)),this.lineTo(t+s,e-o),this.lineTo(t-s,e-o),this.lineTo(t,e+(r-o)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath();for(var n=0;10>n;n++){var s=0===n%2?1.3*i:.5*i;this.lineTo(t+s*Math.sin(2*n*Math.PI/10),e-s*Math.cos(2*n*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,n,s){var o=Math.PI/180;0>i-2*s&&(s=i/2),0>n-2*s&&(s=n/2),this.beginPath(),this.moveTo(t+s,e),this.lineTo(t+i-s,e),this.arc(t+i-s,e+s,s,270*o,360*o,!1),this.lineTo(t+i,e+n-s),this.arc(t+i-s,e+n-s,s,0,90*o,!1),this.lineTo(t+s,e+n),this.arc(t+s,e+n-s,s,90*o,180*o,!1),this.lineTo(t,e+s),this.arc(t+s,e+s,s,180*o,270*o,!1)},CanvasRenderingContext2D.prototype.ellipse=function(t,e,i,n){var s=.5522848,o=i/2*s,r=n/2*s,a=t+i,h=e+n,d=t+i/2,l=e+n/2;this.beginPath(),this.moveTo(t,l),this.bezierCurveTo(t,l-r,d-o,e,d,e),this.bezierCurveTo(d+o,e,a,l-r,a,l),this.bezierCurveTo(a,l+r,d+o,h,d,h),this.bezierCurveTo(d-o,h,t,l+r,t,l)},CanvasRenderingContext2D.prototype.database=function(t,e,i,n){var s=1/3,o=i,r=n*s,a=.5522848,h=o/2*a,d=r/2*a,l=t+o,p=e+r,c=t+o/2,u=e+r/2,f=e+(n-r/2),m=e+n;this.beginPath(),this.moveTo(l,u),this.bezierCurveTo(l,u+d,c+h,p,c,p),this.bezierCurveTo(c-h,p,t,u+d,t,u),this.bezierCurveTo(t,u-d,c-h,e,c,e),this.bezierCurveTo(c+h,e,l,u-d,l,u),this.lineTo(l,f),this.bezierCurveTo(l,f+d,c+h,m,c,m),this.bezierCurveTo(c-h,m,t,f+d,t,f),this.lineTo(t,u)},CanvasRenderingContext2D.prototype.arrow=function(t,e,i,n){var s=t-n*Math.cos(i),o=e-n*Math.sin(i),r=t-.9*n*Math.cos(i),a=e-.9*n*Math.sin(i),h=s+n/3*Math.cos(i+.5*Math.PI),d=o+n/3*Math.sin(i+.5*Math.PI),l=s+n/3*Math.cos(i-.5*Math.PI),p=o+n/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(t,e),this.lineTo(h,d),this.lineTo(r,a),this.lineTo(l,p),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,n,s){s||(s=[10,5]),0==c&&(c=.001);var o=s.length;this.moveTo(t,e);for(var r=i-t,a=n-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,p=!0;d>=.1;){var c=s[l++%o];c>d&&(c=d);var u=Math.sqrt(c*c/(1+h*h));0>r&&(u=-u),t+=u,e+=h*u,this[p?"lineTo":"moveTo"](t,e),d-=c,p=!p}}),E.prototype.attachEdge=function(t){-1==this.edges.indexOf(t)&&this.edges.push(t),this._updateMass()},E.prototype.detachEdge=function(t){var e=this.edges.indexOf(t);-1!=e&&this.edges.splice(e,1),this._updateMass()},E.prototype._updateMass=function(){this.mass=50+20*this.edges.length},E.prototype.setProperties=function(t,e){if(t){if(void 0!=t.id&&(this.id=t.id),void 0!=t.label&&(this.label=t.label),void 0!=t.title&&(this.title=t.title),void 0!=t.group&&(this.group=t.group),void 0!=t.x&&(this.x=t.x),void 0!=t.y&&(this.y=t.y),void 0!=t.value&&(this.value=t.value),void 0===this.id)throw"Node must have an id";if(this.group){var i=this.grouplist.get(this.group);for(var n in i)i.hasOwnProperty(n)&&(this[n]=i[n])}if(void 0!=t.shape&&(this.shape=t.shape),void 0!=t.image&&(this.image=t.image),void 0!=t.radius&&(this.radius=t.radius),void 0!=t.color&&(this.color=E.parseColor(t.color)),void 0!=t.fontColor&&(this.fontColor=t.fontColor),void 0!=t.fontSize&&(this.fontSize=t.fontSize),void 0!=t.fontFace&&(this.fontFace=t.fontFace),void 0!=this.image){if(!this.imagelist)throw"No imagelist provided";this.imageObj=this.imagelist.load(this.image)}switch(this.xFixed=this.xFixed||void 0!=t.x,this.yFixed=this.yFixed||void 0!=t.y,this.radiusFixed=this.radiusFixed||void 0!=t.radius,"image"==this.shape&&(this.radiusMin=e.nodes.widthMin,this.radiusMax=e.nodes.widthMax),this.shape){case"database":this.draw=this._drawDatabase,this.resize=this._resizeDatabase;break;case"box":this.draw=this._drawBox,this.resize=this._resizeBox;break;case"circle":this.draw=this._drawCircle,this.resize=this._resizeCircle;break;case"ellipse":this.draw=this._drawEllipse,this.resize=this._resizeEllipse;break;case"image":this.draw=this._drawImage,this.resize=this._resizeImage;break;case"text":this.draw=this._drawText,this.resize=this._resizeText;break;case"dot":this.draw=this._drawDot,this.resize=this._resizeShape;break;case"square":this.draw=this._drawSquare,this.resize=this._resizeShape;break;case"triangle":this.draw=this._drawTriangle,this.resize=this._resizeShape;break;case"triangleDown":this.draw=this._drawTriangleDown,this.resize=this._resizeShape;break;case"star":this.draw=this._drawStar,this.resize=this._resizeShape;break;default:this.draw=this._drawEllipse,this.resize=this._resizeEllipse}this._reset()}},E.parseColor=function(t){var e;return O.isString(t)?e={border:t,background:t,highlight:{border:t,background:t}}:(e={},e.background=t.background||"white",e.border=t.border||e.background,O.isString(t.highlight)?e.highlight={border:t.highlight,background:t.highlight}:(e.highlight={},e.highlight.background=t.highlight&&t.highlight.background||e.background,e.highlight.border=t.highlight&&t.highlight.border||e.border)),e},E.prototype.select=function(){this.selected=!0,this._reset()},E.prototype.unselect=function(){this.selected=!1,this._reset()},E.prototype._reset=function(){this.width=void 0,this.height=void 0},E.prototype.getTitle=function(){return this.title},E.prototype.distanceToBorder=function(t,e){var i=1;switch(this.width||this.resize(t),this.shape){case"circle":case"dot":return this.radius+i;case"ellipse":var n=this.width/2,s=this.height/2,o=Math.sin(e)*n,r=Math.cos(e)*s;return n*s/Math.sqrt(o*o+r*r);case"box":case"image":case"text":default:return this.width?Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i:0}},E.prototype._setForce=function(t,e){this.fx=t,this.fy=e},E.prototype._addForce=function(t,e){this.fx+=t,this.fy+=e},E.prototype.discreteStep=function(t){if(!this.xFixed){var e=-this.damping*this.vx,i=(this.fx+e)/this.mass;this.vx+=i/t,this.x+=this.vx/t}if(!this.yFixed){var n=-this.damping*this.vy,s=(this.fy+n)/this.mass;this.vy+=s/t,this.y+=this.vy/t}},E.prototype.isFixed=function(){return this.xFixed&&this.yFixed},E.prototype.isMoving=function(t){return Math.abs(this.vx)>t||Math.abs(this.vy)>t||!this.xFixed&&Math.abs(this.fx)>this.minForce||!this.yFixed&&Math.abs(this.fy)>this.minForce},E.prototype.isSelected=function(){return this.selected},E.prototype.getValue=function(){return this.value},E.prototype.getDistance=function(t,e){var i=this.x-t,n=this.y-e;return Math.sqrt(i*i+n*n)},E.prototype.setValueRange=function(t,e){if(!this.radiusFixed&&void 0!==this.value){var i=(this.radiusMax-this.radiusMin)/(e-t);this.radius=(this.value-t)*i+this.radiusMin}},E.prototype.draw=function(){throw"Draw method not initialized for node"},E.prototype.resize=function(){throw"Resize method not initialized for node"},E.prototype.isOverlappingWith=function(t){return this.leftt.left&&this.topt.top},E.prototype._resizeImage=function(){if(!this.width){var t,e;if(this.value){var i=this.imageObj.height/this.imageObj.width;t=this.radius||this.imageObj.width,e=this.radius*i||this.imageObj.height}else t=this.imageObj.width,e=this.imageObj.height;this.width=t,this.height=e}},E.prototype._drawImage=function(t){this._resizeImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e;this.imageObj?(t.drawImage(this.imageObj,this.left,this.top,this.width,this.height),e=this.y+this.height/2):e=this.y,this._label(t,this.label,this.x,e,void 0,"top")},E.prototype._resizeBox=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e}},E.prototype._drawBox=function(t){this._resizeBox(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,t.strokeStyle=this.selected?this.color.highlight.border:this.color.border,t.fillStyle=this.selected?this.color.highlight.background:this.color.background,t.lineWidth=this.selected?2:1,t.roundRect(this.left,this.top,this.width,this.height,this.radius),t.fill(),t.stroke(),this._label(t,this.label,this.x,this.y)},E.prototype._resizeDatabase=function(t){if(!this.width){var e=5,i=this.getTextSize(t),n=i.width+2*e;this.width=n,this.height=n}},E.prototype._drawDatabase=function(t){this._resizeDatabase(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,t.strokeStyle=this.selected?this.color.highlight.border:this.color.border,t.fillStyle=this.selected?this.color.highlight.background:this.color.background,t.lineWidth=this.selected?2:1,t.database(this.x-this.width/2,this.y-.5*this.height,this.width,this.height),t.fill(),t.stroke(),this._label(t,this.label,this.x,this.y)},E.prototype._resizeCircle=function(t){if(!this.width){var e=5,i=this.getTextSize(t),n=Math.max(i.width,i.height)+2*e;this.radius=n/2,this.width=n,this.height=n}},E.prototype._drawCircle=function(t){this._resizeCircle(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,t.strokeStyle=this.selected?this.color.highlight.border:this.color.border,t.fillStyle=this.selected?this.color.highlight.background:this.color.background,t.lineWidth=this.selected?2:1,t.circle(this.x,this.y,this.radius),t.fill(),t.stroke(),this._label(t,this.label,this.x,this.y)},E.prototype._resizeEllipse=function(t){if(!this.width){var e=this.getTextSize(t);this.width=1.5*e.width,this.height=2*e.height,this.widthl;l++)t.fillText(r[l],i,d),d+=h}},E.prototype.getTextSize=function(t){if(void 0!=this.label){t.font=(this.selected?"bold ":"")+this.fontSize+"px "+this.fontFace;for(var e=this.label.split("\n"),i=(this.fontSize+4)*e.length,n=0,s=0,o=e.length;o>s;s++)n=Math.max(n,t.measureText(e[s]).width);return{width:n,height:i}}return{width:0,height:0}},T.prototype.setProperties=function(t,e){if(t)switch(void 0!=t.from&&(this.fromId=t.from),void 0!=t.to&&(this.toId=t.to),void 0!=t.id&&(this.id=t.id),void 0!=t.style&&(this.style=t.style),void 0!=t.label&&(this.label=t.label),this.label&&(this.fontSize=e.edges.fontSize,this.fontFace=e.edges.fontFace,this.fontColor=e.edges.fontColor,void 0!=t.fontColor&&(this.fontColor=t.fontColor),void 0!=t.fontSize&&(this.fontSize=t.fontSize),void 0!=t.fontFace&&(this.fontFace=t.fontFace)),void 0!=t.title&&(this.title=t.title),void 0!=t.width&&(this.width=t.width),void 0!=t.value&&(this.value=t.value),void 0!=t.length&&(this.length=t.length),t.dash&&(void 0!=t.dash.length&&(this.dash.length=t.dash.length),void 0!=t.dash.gap&&(this.dash.gap=t.dash.gap),void 0!=t.dash.altLength&&(this.dash.altLength=t.dash.altLength)),void 0!=t.color&&(this.color=t.color),this.connect(),this.widthFixed=this.widthFixed||void 0!=t.width,this.lengthFixed=this.lengthFixed||void 0!=t.length,this.stiffness=1/this.length,this.style){case"line":this.draw=this._drawLine;break;case"arrow":this.draw=this._drawArrow;break;case"arrow-center":this.draw=this._drawArrowCenter;break;case"dash-line":this.draw=this._drawDashLine;break;default:this.draw=this._drawLine}},T.prototype.connect=function(){this.disconnect(),this.from=this.graph.nodes[this.fromId]||null,this.to=this.graph.nodes[this.toId]||null,this.connected=this.from&&this.to,this.connected?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this))},T.prototype.disconnect=function(){this.from&&(this.from.detachEdge(this),this.from=null),this.to&&(this.to.detachEdge(this),this.to=null),this.connected=!1},T.prototype.getTitle=function(){return this.title},T.prototype.getValue=function(){return this.value},T.prototype.setValueRange=function(t,e){if(!this.widthFixed&&void 0!==this.value){var i=(this.widthMax-this.widthMin)/(e-t);this.width=(this.value-t)*i+this.widthMin}},T.prototype.draw=function(){throw"Method draw not initialized in edge"},T.prototype.isOverlappingWith=function(t){var e=10,i=this.from.x,n=this.from.y,s=this.to.x,o=this.to.y,r=t.left,a=t.top,h=T._dist(i,n,s,o,r,a);return e>h},T.prototype._drawLine=function(t){t.strokeStyle=this.color,t.lineWidth=this._getLineWidth();var e;if(this.from!=this.to)this._line(t),this.label&&(e=this._pointOnLine(.5),this._label(t,this.label,e.x,e.y));else{var i,n,s=this.length/4,o=this.from;o.width||o.resize(t),o.width>o.height?(i=o.x+o.width/2,n=o.y-s):(i=o.x+s,n=o.y-o.height/2),this._circle(t,i,n,s),e=this._pointOnCircle(i,n,s,.5),this._label(t,this.label,e.x,e.y)}},T.prototype._getLineWidth=function(){return this.from.selected||this.to.selected?Math.min(2*this.width,this.widthMax):this.width},T.prototype._line=function(t){t.beginPath(),t.moveTo(this.from.x,this.from.y),t.lineTo(this.to.x,this.to.y),t.stroke()},T.prototype._circle=function(t,e,i,n){t.beginPath(),t.arc(e,i,n,0,2*Math.PI,!1),t.stroke()},T.prototype._label=function(t,e,i,n){if(e){t.font=(this.from.selected||this.to.selected?"bold ":"")+this.fontSize+"px "+this.fontFace,t.fillStyle="white";var s=t.measureText(e).width,o=this.fontSize,r=i-s/2,a=n-o/2;t.fillRect(r,a,s,o),t.fillStyle=this.fontColor||"black",t.textAlign="left",t.textBaseline="top",t.fillText(e,r,a)}},T.prototype._drawDashLine=function(t){if(t.strokeStyle=this.color,t.lineWidth=this._getLineWidth(),t.beginPath(),t.lineCap="round",void 0!=this.dash.altLength?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.dash.length,this.dash.gap,this.dash.altLength,this.dash.gap]):void 0!=this.dash.length&&void 0!=this.dash.gap?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.dash.length,this.dash.gap]):(t.moveTo(this.from.x,this.from.y),t.lineTo(this.to.x,this.to.y)),t.stroke(),this.label){var e=this._pointOnLine(.5);this._label(t,this.label,e.x,e.y)}},T.prototype._pointOnLine=function(t){return{x:(1-t)*this.from.x+t*this.to.x,y:(1-t)*this.from.y+t*this.to.y}},T.prototype._pointOnCircle=function(t,e,i,n){var s=2*(n-3/8)*Math.PI;return{x:t+i*Math.cos(s),y:e-i*Math.sin(s)}},T.prototype._drawArrowCenter=function(t){var e;if(t.strokeStyle=this.color,t.fillStyle=this.color,t.lineWidth=this._getLineWidth(),this.from!=this.to){this._line(t);var i=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),n=10+5*this.width;e=this._pointOnLine(.5),t.arrow(e.x,e.y,i,n),t.fill(),t.stroke(),this.label&&(e=this._pointOnLine(.5),this._label(t,this.label,e.x,e.y))}else{var s,o,r=this.length/4,a=this.from;a.width||a.resize(t),a.width>a.height?(s=a.x+a.width/2,o=a.y-r):(s=a.x+r,o=a.y-a.height/2),this._circle(t,s,o,r);var i=.2*Math.PI,n=10+5*this.width;e=this._pointOnCircle(s,o,r,.5),t.arrow(e.x,e.y,i,n),t.fill(),t.stroke(),this.label&&(e=this._pointOnCircle(s,o,r,.5),this._label(t,this.label,e.x,e.y))}},T.prototype._drawArrow=function(t){t.strokeStyle=this.color,t.fillStyle=this.color,t.lineWidth=this._getLineWidth();var e,i;if(this.from!=this.to){e=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x);var n=this.to.x-this.from.x,s=this.to.y-this.from.y,o=Math.sqrt(n*n+s*s),r=this.from.distanceToBorder(t,e+Math.PI),a=(o-r)/o,h=a*this.from.x+(1-a)*this.to.x,d=a*this.from.y+(1-a)*this.to.y,l=this.to.distanceToBorder(t,e),p=(o-l)/o,c=(1-p)*this.from.x+p*this.to.x,u=(1-p)*this.from.y+p*this.to.y;if(t.beginPath(),t.moveTo(h,d),t.lineTo(c,u),t.stroke(),i=10+5*this.width,t.arrow(c,u,e,i),t.fill(),t.stroke(),this.label){var f=this._pointOnLine(.5);this._label(t,this.label,f.x,f.y)}}else{var m,g,v,y=this.from,b=this.length/4;y.width||y.resize(t),y.width>y.height?(m=y.x+y.width/2,g=y.y-b,v={x:m,y:y.y,angle:.9*Math.PI}):(m=y.x+b,g=y.y-y.height/2,v={x:y.x,y:g,angle:.6*Math.PI}),t.beginPath(),t.arc(m,g,b,0,2*Math.PI,!1),t.stroke(),i=10+5*this.width,t.arrow(v.x,v.y,v.angle,i),t.fill(),t.stroke(),this.label&&(f=this._pointOnCircle(m,g,b,.5),this._label(t,this.label,f.x,f.y)) -}},T._dist=function(t,e,i,n,s,o){var r=i-t,a=n-e,h=r*r+a*a,d=((s-t)*r+(o-e)*a)/h;d>1?d=1:0>d&&(d=0);var l=t+d*r,p=e+d*a,c=l-s,u=p-o;return Math.sqrt(c*c+u*u)},x.prototype.setPosition=function(t,e){this.x=parseInt(t),this.y=parseInt(e)},x.prototype.setText=function(t){this.frame.innerHTML=t},x.prototype.show=function(t){if(void 0===t&&(t=!0),t){var e=this.frame.clientHeight,i=this.frame.clientWidth,n=this.frame.parentNode.clientHeight,s=this.frame.parentNode.clientWidth,o=this.y-e;o+e+this.padding>n&&(o=n-e-this.padding),this.padding>o&&(o=this.padding);var r=this.x;r+i+this.padding>s&&(r=s-i-this.padding),this.padding>r&&(r=this.padding),this.frame.style.left=r+"px",this.frame.style.top=o+"px",this.frame.style.visibility="visible"}else this.hide()},x.prototype.hide=function(){this.frame.style.visibility="hidden"},Groups=function(){this.clear(),this.defaultIndex=0},Groups.DEFAULT=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"}}],Groups.prototype.clear=function(){this.groups={},this.groups.length=function(){var t=0;for(var e in this)this.hasOwnProperty(e)&&t++;return t}},Groups.prototype.get=function(t){var e=this.groups[t];if(void 0==e){var i=this.defaultIndex%Groups.DEFAULT.length;this.defaultIndex++,e={},e.color=Groups.DEFAULT[i],this.groups[t]=e}return e},Groups.prototype.add=function(t,e){return this.groups[t]=e,e.color&&(e.color=E.parseColor(e.color)),e},Images=function(){this.images={},this.callback=void 0},Images.prototype.setOnloadCallback=function(t){this.callback=t},Images.prototype.load=function(t){var e=this.images[t];if(void 0==e){var i=this;e=new Image,this.images[t]=e,e.onload=function(){i.callback&&i.callback(this)},e.src=t}return e},S.prototype.setData=function(t){if(t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){if(t&&t.dot){var e=k.util.DOTToGraph(t.dot);return this.setData(e),void 0}}else this._setNodes(t&&t.nodes),this._setEdges(t&&t.edges);this.stabilize&&this._doStabilize(),this.start()},S.prototype.setOptions=function(t){if(t){if(void 0!=t.width&&(this.width=t.width),void 0!=t.height&&(this.height=t.height),void 0!=t.stabilize&&(this.stabilize=t.stabilize),void 0!=t.selectable&&(this.selectable=t.selectable),t.edges){for(var e in t.edges)t.edges.hasOwnProperty(e)&&(this.constants.edges[e]=t.edges[e]);void 0!=t.edges.length&&t.nodes&&void 0==t.nodes.distance&&(this.constants.edges.length=t.edges.length,this.constants.nodes.distance=1.25*t.edges.length),t.edges.fontColor||(this.constants.edges.fontColor=t.edges.color),t.edges.dash&&(void 0!=t.edges.dash.length&&(this.constants.edges.dash.length=t.edges.dash.length),void 0!=t.edges.dash.gap&&(this.constants.edges.dash.gap=t.edges.dash.gap),void 0!=t.edges.dash.altLength&&(this.constants.edges.dash.altLength=t.edges.dash.altLength))}if(t.nodes){for(e in t.nodes)t.nodes.hasOwnProperty(e)&&(this.constants.nodes[e]=t.nodes[e]);t.nodes.color&&(this.constants.nodes.color=E.parseColor(t.nodes.color))}if(t.groups)for(var i in t.groups)if(t.groups.hasOwnProperty(i)){var n=t.groups[i];this.groups.add(i,n)}}this.setSize(this.width,this.height),this._setTranslation(this.frame.clientWidth/2,this.frame.clientHeight/2),this._setScale(1)},S.prototype._trigger=function(t,e){L.trigger(this,t,e)},S.prototype._create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);if(this.frame=document.createElement("div"),this.frame.className="graph-frame",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),!this.frame.canvas.getContext){var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t)}var e=this;this.drag={},this.pinch={},this.hammer=D(this.frame.canvas,{prevent_default:!0}),this.hammer.on("tap",e._onTap.bind(e)),this.hammer.on("hold",e._onHold.bind(e)),this.hammer.on("pinch",e._onPinch.bind(e)),this.hammer.on("touch",e._onTouch.bind(e)),this.hammer.on("dragstart",e._onDragStart.bind(e)),this.hammer.on("drag",e._onDrag.bind(e)),this.hammer.on("dragend",e._onDragEnd.bind(e)),this.hammer.on("mousewheel",e._onMouseWheel.bind(e)),this.hammer.on("mousemove",e._onMouseMoveTitle.bind(e)),this.containerElement.appendChild(this.frame)},S.prototype._getNodeAt=function(t){var e=this._xToCanvas(t.x),i=this._yToCanvas(t.y),n={left:e,top:i,right:e,bottom:i},s=this._getNodesOverlappingWith(n);return s.length>0?s[s.length-1]:null},S.prototype._getPointer=function(t){return{x:t.pageX-k.util.getAbsoluteLeft(this.frame.canvas),y:t.pageY-k.util.getAbsoluteTop(this.frame.canvas)}},S.prototype._onTouch=function(t){this.drag.pointer=this._getPointer(t.gesture.touches[0]),this.drag.pinched=!1,this.pinch.scale=this._getScale()},S.prototype._onDragStart=function(){var t=this.drag;t.selection=[],t.translation=this._getTranslation(),t.nodeId=this._getNodeAt(t.pointer);var e=this.nodes[t.nodeId];if(e){e.isSelected()||this._selectNodes([t.nodeId]);var i=this;this.selection.forEach(function(e){var n=i.nodes[e];if(n){var s={id:e,node:n,x:n.x,y:n.y,xFixed:n.xFixed,yFixed:n.yFixed};n.xFixed=!0,n.yFixed=!0,t.selection.push(s)}})}},S.prototype._onDrag=function(t){if(!this.drag.pinched){var e=this._getPointer(t.gesture.touches[0]),i=this,n=this.drag,s=n.selection;if(s&&s.length){var o=e.x-n.pointer.x,r=e.y-n.pointer.y;s.forEach(function(t){var e=t.node;t.xFixed||(e.x=i._xToCanvas(i._canvasToX(t.x)+o)),t.yFixed||(e.y=i._yToCanvas(i._canvasToY(t.y)+r))}),this.moving||(this.moving=!0,this.start())}else{var a=e.x-this.drag.pointer.x,h=e.y-this.drag.pointer.y;this._setTranslation(this.drag.translation.x+a,this.drag.translation.y+h),this._redraw(),this.moved=!0}}},S.prototype._onDragEnd=function(){var t=this.drag.selection;t&&t.forEach(function(t){t.node.xFixed=t.xFixed,t.node.yFixed=t.yFixed})},S.prototype._onTap=function(t){var e=this._getPointer(t.gesture.touches[0]),i=this._getNodeAt(e),n=this.nodes[i];n?(this._selectNodes([i]),this.moving||this._redraw()):(this._unselectNodes(),this._redraw())},S.prototype._onHold=function(t){var e=this._getPointer(t.gesture.touches[0]),i=this._getNodeAt(e),n=this.nodes[i];if(n){if(n.isSelected())this._unselectNodes([i]);else{var s=!0;this._selectNodes([i],s)}this.moving||this._redraw()}},S.prototype._onPinch=function(t){var e=this._getPointer(t.gesture.center);this.drag.pinched=!0,"scale"in this.pinch||(this.pinch.scale=1);var i=this.pinch.scale*t.gesture.scale;this._zoom(i,e)},S.prototype._zoom=function(t,e){var i=this._getScale();.01>t&&(t=.01),t>10&&(t=10);var n=this._getTranslation(),s=t/i,o=(1-s)*e.x+n.x*s,r=(1-s)*e.y+n.y*s;return this._setScale(t),this._setTranslation(o,r),this._redraw(),t},S.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){"mouswheelScale"in this.pinch||(this.pinch.mouswheelScale=1);var i=this.pinch.mouswheelScale,n=e/10;0>e&&(n/=1-n),i*=1+n;var s=D.event.collectEventData(this,"scroll",t),o=this._getPointer(s.center);i=this._zoom(i,o),this.pinch.mouswheelScale=i}t.preventDefault()},S.prototype._onMouseMoveTitle=function(t){var e=D.event.collectEventData(this,"mousemove",t),i=this._getPointer(e.center);this.popupNode&&this._checkHidePopup(i);var n=this,s=function(){n._checkShowPopup(i)};this.popupTimer&&clearInterval(this.popupTimer),this.leftButtonDown||(this.popupTimer=setTimeout(s,300))},S.prototype._checkShowPopup=function(t){var e,i={left:this._xToCanvas(t.x),top:this._yToCanvas(t.y),right:this._xToCanvas(t.x),bottom:this._yToCanvas(t.y)},n=this.popupNode;if(void 0==this.popupNode){var s=this.nodes;for(e in s)if(s.hasOwnProperty(e)){var o=s[e];if(void 0!=o.getTitle()&&o.isOverlappingWith(i)){this.popupNode=o;break}}}if(void 0==this.popupNode){var r=this.edges;for(e in r)if(r.hasOwnProperty(e)){var a=r[e];if(a.connected&&void 0!=a.getTitle()&&a.isOverlappingWith(i)){this.popupNode=a;break}}}if(this.popupNode){if(this.popupNode!=n){var h=this;h.popup||(h.popup=new x(h.frame)),h.popup.setPosition(t.x-3,t.y-3),h.popup.setText(h.popupNode.getTitle()),h.popup.show()}}else this.popup&&this.popup.hide()},S.prototype._checkHidePopup=function(t){this.popupNode&&this._getNodeAt(t)||(this.popupNode=void 0,this.popup&&this.popup.hide())},S.prototype._unselectNodes=function(t,e){var i,n,s,o=!1;if(t)for(i=0,n=t.length;n>i;i++){s=t[i],this.nodes[s].unselect();for(var r=0;this.selection.length>r;)this.selection[r]==s?(this.selection.splice(r,1),o=!0):r++}else if(this.selection&&this.selection.length){for(i=0,n=this.selection.length;n>i;i++)s=this.selection[i],this.nodes[s].unselect(),o=!0;this.selection=[]}return!o||1!=e&&void 0!=e||this._trigger("select"),o},S.prototype._selectNodes=function(t,e){var i,n,s=!1,o=!0;if(t.length!=this.selection.length)o=!1;else for(i=0,n=Math.min(t.length,this.selection.length);n>i;i++)if(t[i]!=this.selection[i]){o=!1;break}if(o)return s;if(void 0==e||0==e){var r=!1;s=this._unselectNodes(void 0,r)}for(i=0,n=t.length;n>i;i++){var a=t[i],h=-1!=this.selection.indexOf(a);h||(this.nodes[a].select(),this.selection.push(a),s=!0)}return s&&this._trigger("select"),s},S.prototype._getNodesOverlappingWith=function(t){var e=this.nodes,i=[];for(var n in e)e.hasOwnProperty(n)&&e[n].isOverlappingWith(t)&&i.push(n);return i},S.prototype.getSelection=function(){return this.selection.concat([])},S.prototype.setSelection=function(t){var e,i,n;if(!t||void 0==t.length)throw"Selection must be an array with ids";for(e=0,i=this.selection.length;i>e;e++)n=this.selection[e],this.nodes[n].unselect();for(this.selection=[],e=0,i=t.length;i>e;e++){n=t[e];var s=this.nodes[n];if(!s)throw new RangeError('Node with id "'+n+'" not found');s.select(),this.selection.push(n)}this.redraw()},S.prototype._updateSelection=function(){for(var t=0;this.selection.length>t;){var e=this.selection[t];this.nodes[e]?t++:this.selection.splice(t,1)}},S.prototype._getConnectionCount=function(t){function e(t){for(var e=[],i=0,n=t.length;n>i;i++)for(var s=t[i],o=s.edges,r=0,a=o.length;a>r;r++){var h=o[r],d=null;h.from==s?d=h.to:h.to==s&&(d=h.from);var l,p;if(d)for(l=0,p=t.length;p>l;l++)if(t[l]==d){d=null;break}if(d)for(l=0,p=e.length;p>l;l++)if(e[l]==d){d=null;break}d&&e.push(d)}return e}void 0==t&&(t=1);var i=[],n=this.nodes;for(var s in n)if(n.hasOwnProperty(s)){for(var o=[n[s]],r=0;t>r;r++)o=o.concat(e(o));i.push(o)}for(var a=[],h=0,d=i.length;d>h;h++)a.push(i[h].length);return a},S.prototype.setSize=function(t,e){this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth,this.frame.canvas.height=this.frame.canvas.clientHeight},S.prototype._setNodes=function(t){var e=this.nodesData;if(t instanceof o||t instanceof r)this.nodesData=t;else if(t instanceof Array)this.nodesData=new o,this.nodesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.nodesData=new o}if(e&&O.forEach(this.nodesListeners,function(t,i){e.unsubscribe(i,t)}),this.nodes={},this.nodesData){var i=this;O.forEach(this.nodesListeners,function(t,e){i.nodesData.subscribe(e,t)});var n=this.nodesData.getIds();this._addNodes(n)}this._updateSelection()},S.prototype._addNodes=function(t){for(var e,i=0,n=t.length;n>i;i++){e=t[i];var s=this.nodesData.get(e),o=new E(s,this.images,this.groups,this.constants);if(this.nodes[e]=o,!o.isFixed()){var r=2*this.constants.edges.length,a=t.length,h=2*Math.PI*(i/a);o.x=r*Math.cos(h),o.y=r*Math.sin(h),this.moving=!0}}this._reconnectEdges(),this._updateValueRange(this.nodes)},S.prototype._updateNodes=function(t){for(var e=this.nodes,i=this.nodesData,n=0,s=t.length;s>n;n++){var o=t[n],r=e[o],a=i.get(o);r?r.setProperties(a,this.constants):(r=new E(properties,this.images,this.groups,this.constants),e[o]=r,r.isFixed()||(this.moving=!0))}this._reconnectEdges(),this._updateValueRange(e)},S.prototype._removeNodes=function(t){for(var e=this.nodes,i=0,n=t.length;n>i;i++){var s=t[i];delete e[s]}this._reconnectEdges(),this._updateSelection(),this._updateValueRange(e)},S.prototype._setEdges=function(t){var e=this.edgesData;if(t instanceof o||t instanceof r)this.edgesData=t;else if(t instanceof Array)this.edgesData=new o,this.edgesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.edgesData=new o}if(e&&O.forEach(this.edgesListeners,function(t,i){e.unsubscribe(i,t)}),this.edges={},this.edgesData){var i=this;O.forEach(this.edgesListeners,function(t,e){i.edgesData.subscribe(e,t)});var n=this.edgesData.getIds();this._addEdges(n)}this._reconnectEdges()},S.prototype._addEdges=function(t){for(var e=this.edges,i=this.edgesData,n=0,s=t.length;s>n;n++){var o=t[n],r=e[o];r&&r.disconnect();var a=i.get(o);e[o]=new T(a,this,this.constants)}this.moving=!0,this._updateValueRange(e)},S.prototype._updateEdges=function(t){for(var e=this.edges,i=this.edgesData,n=0,s=t.length;s>n;n++){var o=t[n],r=i.get(o),a=e[o];a?(a.disconnect(),a.setProperties(r,this.constants),a.connect()):(a=new T(r,this,this.constants),this.edges[o]=a)}this.moving=!0,this._updateValueRange(e)},S.prototype._removeEdges=function(t){for(var e=this.edges,i=0,n=t.length;n>i;i++){var s=t[i],o=e[s];o&&(o.disconnect(),delete e[s])}this.moving=!0,this._updateValueRange(e)},S.prototype._reconnectEdges=function(){var t,e=this.nodes,i=this.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[]);for(t in i)if(i.hasOwnProperty(t)){var n=i[t];n.from=null,n.to=null,n.connect()}},S.prototype._updateValueRange=function(t){var e,i=void 0,n=void 0;for(e in t)if(t.hasOwnProperty(e)){var s=t[e].getValue();void 0!==s&&(i=void 0===i?s:Math.min(s,i),n=void 0===n?s:Math.max(s,n))}if(void 0!==i&&void 0!==n)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,n)},S.prototype.redraw=function(){this.setSize(this.width,this.height),this._redraw()},S.prototype._redraw=function(){var t=this.frame.canvas.getContext("2d"),e=this.frame.canvas.width,i=this.frame.canvas.height;t.clearRect(0,0,e,i),t.save(),t.translate(this.translation.x,this.translation.y),t.scale(this.scale,this.scale),this._drawEdges(t),this._drawNodes(t),t.restore()},S.prototype._setTranslation=function(t,e){void 0===this.translation&&(this.translation={x:0,y:0}),void 0!==t&&(this.translation.x=t),void 0!==e&&(this.translation.y=e)},S.prototype._getTranslation=function(){return{x:this.translation.x,y:this.translation.y}},S.prototype._setScale=function(t){this.scale=t},S.prototype._getScale=function(){return this.scale},S.prototype._xToCanvas=function(t){return(t-this.translation.x)/this.scale},S.prototype._canvasToX=function(t){return t*this.scale+this.translation.x},S.prototype._yToCanvas=function(t){return(t-this.translation.y)/this.scale},S.prototype._canvasToY=function(t){return t*this.scale+this.translation.y},S.prototype._drawNodes=function(t){var e=this.nodes,i=[];for(var n in e)e.hasOwnProperty(n)&&(e[n].isSelected()?i.push(n):e[n].draw(t));for(var s=0,o=i.length;o>s;s++)e[i[s]].draw(t)},S.prototype._drawEdges=function(t){var e=this.edges;for(var i in e)if(e.hasOwnProperty(i)){var n=e[i];n.connected&&e[i].draw(t)}},S.prototype._doStabilize=function(){new Date;for(var t=0,e=this.constants.minVelocity,i=!1;!i&&this.constants.maxIterations>t;)this._calculateForces(),this._discreteStepNodes(),i=!this._isMoving(e),t++;new Date},S.prototype._calculateForces=function(){var t,e,i,n,s,o,r,a,h,d,l,p=this.nodes,c=this.edges,u=.01,f=this.frame.canvas.clientWidth/2,m=this.frame.canvas.clientHeight/2;for(t in p)if(p.hasOwnProperty(t)){var g=p[t];e=f-g.x,i=m-g.y,n=Math.atan2(i,e),o=Math.cos(n)*u,r=Math.sin(n)*u,g._setForce(o,r)}var v=this.constants.nodes.distance,y=10;for(var b in p)if(p.hasOwnProperty(b)){var w=p[b];for(var _ in p)if(p.hasOwnProperty(_)){var E=p[_];e=E.x-w.x,i=E.y-w.y,s=Math.sqrt(e*e+i*i),n=Math.atan2(i,e),a=1/(1+Math.exp((s/v-1)*y)),o=Math.cos(n)*a,r=Math.sin(n)*a,w._addForce(-o,-r),E._addForce(o,r)}}for(t in c)if(c.hasOwnProperty(t)){var T=c[t];T.connected&&(e=T.to.x-T.from.x,i=T.to.y-T.from.y,l=T.length,d=Math.sqrt(e*e+i*i),n=Math.atan2(i,e),h=T.stiffness*(l-d),o=Math.cos(n)*h,r=Math.sin(n)*h,T.from._addForce(-o,-r),T.to._addForce(o,r))}},S.prototype._isMoving=function(t){var e=this.nodes;for(var i in e)if(e.hasOwnProperty(i)&&e[i].isMoving(t))return!0;return!1},S.prototype._discreteStepNodes=function(){var t=this.refreshRate/1e3,e=this.nodes;for(var i in e)e.hasOwnProperty(i)&&e[i].discreteStep(t)},S.prototype.start=function(){if(this.moving){this._calculateForces(),this._discreteStepNodes();var t=this.constants.minVelocity;this.moving=this._isMoving(t)}if(this.moving){if(!this.timer){var e=this;this.timer=window.setTimeout(function(){e.timer=void 0,e.start(),e._redraw()},this.refreshRate)}}else this._redraw()},S.prototype.stop=function(){this.timer&&(window.clearInterval(this.timer),this.timer=void 0)};var k={util:O,events:L,Controller:d,DataSet:o,DataView:r,Range:h,Stack:a,TimeStep:TimeStep,EventBus:s,components:{items:{Item:m,ItemBox:g,ItemPoint:v,ItemRange:y},Component:l,Panel:p,RootPanel:c,ItemSet:f,TimeAxis:u},graph:{Node:E,Edge:T,Popup:x,Groups:Groups,Images:Images},Timeline:_,Graph:S};n!==void 0&&(n=k),i!==void 0&&i.exports!==void 0&&(i.exports=k),"function"==typeof t&&t(function(){return k}),"undefined"!=typeof window&&(window.vis=k),O.loadCss("/* vis.js stylesheet */\n.vis.timeline {\n}\n\n\n.vis.timeline.rootpanel {\n position: relative;\n overflow: hidden;\n\n border: 1px solid #bfbfbf;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n.vis.timeline .panel {\n position: absolute;\n overflow: hidden;\n}\n\n\n.vis.timeline .groupset {\n position: absolute;\n padding: 0;\n margin: 0;\n}\n\n.vis.timeline .labels {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n padding: 0;\n margin: 0;\n\n border-right: 1px solid #bfbfbf;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n}\n\n.vis.timeline .labels .label {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n border-bottom: 1px solid #bfbfbf;\n color: #4d4d4d;\n}\n\n.vis.timeline .labels .label .inner {\n display: inline-block;\n padding: 5px;\n}\n\n\n.vis.timeline .itemset {\n position: absolute;\n padding: 0;\n margin: 0;\n overflow: hidden;\n}\n\n.vis.timeline .background {\n}\n\n.vis.timeline .foreground {\n}\n\n.vis.timeline .itemset-axis {\n position: absolute;\n}\n\n.vis.timeline .groupset .itemset-axis {\n border-top: 1px solid #bfbfbf;\n}\n\n/* TODO: with orientation=='bottom', this will more or less overlap with timeline axis\n.vis.timeline .groupset .itemset-axis:last-child {\n border-top: none;\n}\n*/\n\n\n.vis.timeline .item {\n position: absolute;\n color: #1A1A1A;\n border-color: #97B0F8;\n background-color: #D5DDF6;\n display: inline-block;\n}\n\n.vis.timeline .item.selected {\n border-color: #FFC200;\n background-color: #FFF785;\n z-index: 999;\n}\n\n.vis.timeline .item.cluster {\n /* TODO: use another color or pattern? */\n background: #97B0F8 url('img/cluster_bg.png');\n color: white;\n}\n.vis.timeline .item.cluster.point {\n border-color: #D5DDF6;\n}\n\n.vis.timeline .item.box {\n text-align: center;\n border-style: solid;\n border-width: 1px;\n border-radius: 5px;\n -moz-border-radius: 5px; /* For Firefox 3.6 and older */\n}\n\n.vis.timeline .item.point {\n background: none;\n}\n\n.vis.timeline .dot {\n border: 5px solid #97B0F8;\n position: absolute;\n border-radius: 5px;\n -moz-border-radius: 5px; /* For Firefox 3.6 and older */\n}\n\n.vis.timeline .item.range {\n overflow: hidden;\n border-style: solid;\n border-width: 1px;\n border-radius: 2px;\n -moz-border-radius: 2px; /* For Firefox 3.6 and older */\n}\n\n.vis.timeline .item.range .drag-left {\n cursor: w-resize;\n z-index: 1000;\n}\n\n.vis.timeline .item.range .drag-right {\n cursor: e-resize;\n z-index: 1000;\n}\n\n.vis.timeline .item.range .content {\n position: relative;\n display: inline-block;\n}\n\n.vis.timeline .item.line {\n position: absolute;\n width: 0;\n border-left-width: 1px;\n border-left-style: solid;\n}\n\n.vis.timeline .item .content {\n margin: 5px;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.vis.timeline .axis {\n position: relative;\n}\n\n.vis.timeline .axis .text {\n position: absolute;\n color: #4d4d4d;\n padding: 3px;\n white-space: nowrap;\n}\n\n.vis.timeline .axis .text.measure {\n position: absolute;\n padding-left: 0;\n padding-right: 0;\n margin-left: 0;\n margin-right: 0;\n visibility: hidden;\n}\n\n.vis.timeline .axis .grid.vertical {\n position: absolute;\n width: 0;\n border-right: 1px solid;\n}\n\n.vis.timeline .axis .grid.horizontal {\n position: absolute;\n left: 0;\n width: 100%;\n height: 0;\n border-bottom: 1px solid;\n}\n\n.vis.timeline .axis .grid.minor {\n border-color: #e5e5e5;\n}\n\n.vis.timeline .axis .grid.major {\n border-color: #bfbfbf;\n}\n\n")},{hammerjs:1,moment:2}]},{},[3])(3)}); \ No newline at end of file +}},T._dist=function(t,e,i,n,s,o){var r=i-t,a=n-e,h=r*r+a*a,d=((s-t)*r+(o-e)*a)/h;d>1?d=1:0>d&&(d=0);var l=t+d*r,p=e+d*a,c=l-s,u=p-o;return Math.sqrt(c*c+u*u)},x.prototype.setPosition=function(t,e){this.x=parseInt(t),this.y=parseInt(e)},x.prototype.setText=function(t){this.frame.innerHTML=t},x.prototype.show=function(t){if(void 0===t&&(t=!0),t){var e=this.frame.clientHeight,i=this.frame.clientWidth,n=this.frame.parentNode.clientHeight,s=this.frame.parentNode.clientWidth,o=this.y-e;o+e+this.padding>n&&(o=n-e-this.padding),this.padding>o&&(o=this.padding);var r=this.x;r+i+this.padding>s&&(r=s-i-this.padding),this.padding>r&&(r=this.padding),this.frame.style.left=r+"px",this.frame.style.top=o+"px",this.frame.style.visibility="visible"}else this.hide()},x.prototype.hide=function(){this.frame.style.visibility="hidden"},Groups=function(){this.clear(),this.defaultIndex=0},Groups.DEFAULT=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"}}],Groups.prototype.clear=function(){this.groups={},this.groups.length=function(){var t=0;for(var e in this)this.hasOwnProperty(e)&&t++;return t}},Groups.prototype.get=function(t){var e=this.groups[t];if(void 0==e){var i=this.defaultIndex%Groups.DEFAULT.length;this.defaultIndex++,e={},e.color=Groups.DEFAULT[i],this.groups[t]=e}return e},Groups.prototype.add=function(t,e){return this.groups[t]=e,e.color&&(e.color=E.parseColor(e.color)),e},Images=function(){this.images={},this.callback=void 0},Images.prototype.setOnloadCallback=function(t){this.callback=t},Images.prototype.load=function(t){var e=this.images[t];if(void 0==e){var i=this;e=new Image,this.images[t]=e,e.onload=function(){i.callback&&i.callback(this)},e.src=t}return e},S.prototype.setData=function(t){if(t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){if(t&&t.dot){var e=k.util.DOTToGraph(t.dot);return this.setData(e),void 0}}else this._setNodes(t&&t.nodes),this._setEdges(t&&t.edges);this.stabilize&&this._doStabilize(),this.start()},S.prototype.setOptions=function(t){if(t){if(void 0!=t.width&&(this.width=t.width),void 0!=t.height&&(this.height=t.height),void 0!=t.stabilize&&(this.stabilize=t.stabilize),void 0!=t.selectable&&(this.selectable=t.selectable),t.edges){for(var e in t.edges)t.edges.hasOwnProperty(e)&&(this.constants.edges[e]=t.edges[e]);void 0!=t.edges.length&&t.nodes&&void 0==t.nodes.distance&&(this.constants.edges.length=t.edges.length,this.constants.nodes.distance=1.25*t.edges.length),t.edges.fontColor||(this.constants.edges.fontColor=t.edges.color),t.edges.dash&&(void 0!=t.edges.dash.length&&(this.constants.edges.dash.length=t.edges.dash.length),void 0!=t.edges.dash.gap&&(this.constants.edges.dash.gap=t.edges.dash.gap),void 0!=t.edges.dash.altLength&&(this.constants.edges.dash.altLength=t.edges.dash.altLength))}if(t.nodes){for(e in t.nodes)t.nodes.hasOwnProperty(e)&&(this.constants.nodes[e]=t.nodes[e]);t.nodes.color&&(this.constants.nodes.color=E.parseColor(t.nodes.color))}if(t.groups)for(var i in t.groups)if(t.groups.hasOwnProperty(i)){var n=t.groups[i];this.groups.add(i,n)}}this.setSize(this.width,this.height),this._setTranslation(this.frame.clientWidth/2,this.frame.clientHeight/2),this._setScale(1)},S.prototype._trigger=function(t,e){L.trigger(this,t,e)},S.prototype._create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);if(this.frame=document.createElement("div"),this.frame.className="graph-frame",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),!this.frame.canvas.getContext){var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t)}var e=this;this.drag={},this.pinch={},this.hammer=D(this.frame.canvas,{prevent_default:!0}),this.hammer.on("tap",e._onTap.bind(e)),this.hammer.on("hold",e._onHold.bind(e)),this.hammer.on("pinch",e._onPinch.bind(e)),this.hammer.on("touch",e._onTouch.bind(e)),this.hammer.on("dragstart",e._onDragStart.bind(e)),this.hammer.on("drag",e._onDrag.bind(e)),this.hammer.on("dragend",e._onDragEnd.bind(e)),this.hammer.on("mousewheel",e._onMouseWheel.bind(e)),this.hammer.on("mousemove",e._onMouseMoveTitle.bind(e)),this.containerElement.appendChild(this.frame)},S.prototype._getNodeAt=function(t){var e=this._canvasToX(t.x),i=this._canvasToY(t.y),n={left:e,top:i,right:e,bottom:i},s=this._getNodesOverlappingWith(n);return s.length>0?s[s.length-1]:null},S.prototype._getPointer=function(t){return{x:t.pageX-k.util.getAbsoluteLeft(this.frame.canvas),y:t.pageY-k.util.getAbsoluteTop(this.frame.canvas)}},S.prototype._onTouch=function(t){this.drag.pointer=this._getPointer(t.gesture.touches[0]),this.drag.pinched=!1,this.pinch.scale=this._getScale()},S.prototype._onDragStart=function(){var t=this.drag;t.selection=[],t.translation=this._getTranslation(),t.nodeId=this._getNodeAt(t.pointer);var e=this.nodes[t.nodeId];if(e){e.isSelected()||this._selectNodes([t.nodeId]);var i=this;this.selection.forEach(function(e){var n=i.nodes[e];if(n){var s={id:e,node:n,x:n.x,y:n.y,xFixed:n.xFixed,yFixed:n.yFixed};n.xFixed=!0,n.yFixed=!0,t.selection.push(s)}})}},S.prototype._onDrag=function(t){if(!this.drag.pinched){var e=this._getPointer(t.gesture.touches[0]),i=this,n=this.drag,s=n.selection;if(s&&s.length){var o=e.x-n.pointer.x,r=e.y-n.pointer.y;s.forEach(function(t){var e=t.node;t.xFixed||(e.x=i._canvasToX(i._xToCanvas(t.x)+o)),t.yFixed||(e.y=i._canvasToY(i._yToCanvas(t.y)+r))}),this.moving||(this.moving=!0,this.start())}else{var a=e.x-this.drag.pointer.x,h=e.y-this.drag.pointer.y;this._setTranslation(this.drag.translation.x+a,this.drag.translation.y+h),this._redraw(),this.moved=!0}}},S.prototype._onDragEnd=function(){var t=this.drag.selection;t&&t.forEach(function(t){t.node.xFixed=t.xFixed,t.node.yFixed=t.yFixed})},S.prototype._onTap=function(t){var e=this._getPointer(t.gesture.touches[0]),i=this._getNodeAt(e),n=this.nodes[i];n?(this._selectNodes([i]),this.moving||this._redraw()):(this._unselectNodes(),this._redraw())},S.prototype._onHold=function(t){var e=this._getPointer(t.gesture.touches[0]),i=this._getNodeAt(e),n=this.nodes[i];if(n){if(n.isSelected())this._unselectNodes([i]);else{var s=!0;this._selectNodes([i],s)}this.moving||this._redraw()}},S.prototype._onPinch=function(t){var e=this._getPointer(t.gesture.center);this.drag.pinched=!0,"scale"in this.pinch||(this.pinch.scale=1);var i=this.pinch.scale*t.gesture.scale;this._zoom(i,e)},S.prototype._zoom=function(t,e){var i=this._getScale();.01>t&&(t=.01),t>10&&(t=10);var n=this._getTranslation(),s=t/i,o=(1-s)*e.x+n.x*s,r=(1-s)*e.y+n.y*s;return this._setScale(t),this._setTranslation(o,r),this._redraw(),t},S.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){"mouswheelScale"in this.pinch||(this.pinch.mouswheelScale=1);var i=this.pinch.mouswheelScale,n=e/10;0>e&&(n/=1-n),i*=1+n;var s=D.event.collectEventData(this,"scroll",t),o=this._getPointer(s.center);i=this._zoom(i,o),this.pinch.mouswheelScale=i}t.preventDefault()},S.prototype._onMouseMoveTitle=function(t){var e=D.event.collectEventData(this,"mousemove",t),i=this._getPointer(e.center);this.popupNode&&this._checkHidePopup(i);var n=this,s=function(){n._checkShowPopup(i)};this.popupTimer&&clearInterval(this.popupTimer),this.leftButtonDown||(this.popupTimer=setTimeout(s,300))},S.prototype._checkShowPopup=function(t){var e,i={left:this._canvasToX(t.x),top:this._canvasToY(t.y),right:this._canvasToX(t.x),bottom:this._canvasToY(t.y)},n=this.popupNode;if(void 0==this.popupNode){var s=this.nodes;for(e in s)if(s.hasOwnProperty(e)){var o=s[e];if(void 0!=o.getTitle()&&o.isOverlappingWith(i)){this.popupNode=o;break}}}if(void 0==this.popupNode){var r=this.edges;for(e in r)if(r.hasOwnProperty(e)){var a=r[e];if(a.connected&&void 0!=a.getTitle()&&a.isOverlappingWith(i)){this.popupNode=a;break}}}if(this.popupNode){if(this.popupNode!=n){var h=this;h.popup||(h.popup=new x(h.frame)),h.popup.setPosition(t.x-3,t.y-3),h.popup.setText(h.popupNode.getTitle()),h.popup.show()}}else this.popup&&this.popup.hide()},S.prototype._checkHidePopup=function(t){this.popupNode&&this._getNodeAt(t)||(this.popupNode=void 0,this.popup&&this.popup.hide())},S.prototype._unselectNodes=function(t,e){var i,n,s,o=!1;if(t)for(i=0,n=t.length;n>i;i++){s=t[i],this.nodes[s].unselect();for(var r=0;this.selection.length>r;)this.selection[r]==s?(this.selection.splice(r,1),o=!0):r++}else if(this.selection&&this.selection.length){for(i=0,n=this.selection.length;n>i;i++)s=this.selection[i],this.nodes[s].unselect(),o=!0;this.selection=[]}return!o||1!=e&&void 0!=e||this._trigger("select"),o},S.prototype._selectNodes=function(t,e){var i,n,s=!1,o=!0;if(t.length!=this.selection.length)o=!1;else for(i=0,n=Math.min(t.length,this.selection.length);n>i;i++)if(t[i]!=this.selection[i]){o=!1;break}if(o)return s;if(void 0==e||0==e){var r=!1;s=this._unselectNodes(void 0,r)}for(i=0,n=t.length;n>i;i++){var a=t[i],h=-1!=this.selection.indexOf(a);h||(this.nodes[a].select(),this.selection.push(a),s=!0)}return s&&this._trigger("select"),s},S.prototype._getNodesOverlappingWith=function(t){var e=this.nodes,i=[];for(var n in e)e.hasOwnProperty(n)&&e[n].isOverlappingWith(t)&&i.push(n);return i},S.prototype.getSelection=function(){return this.selection.concat([])},S.prototype.setSelection=function(t){var e,i,n;if(!t||void 0==t.length)throw"Selection must be an array with ids";for(e=0,i=this.selection.length;i>e;e++)n=this.selection[e],this.nodes[n].unselect();for(this.selection=[],e=0,i=t.length;i>e;e++){n=t[e];var s=this.nodes[n];if(!s)throw new RangeError('Node with id "'+n+'" not found');s.select(),this.selection.push(n)}this.redraw()},S.prototype._updateSelection=function(){for(var t=0;this.selection.length>t;){var e=this.selection[t];this.nodes[e]?t++:this.selection.splice(t,1)}},S.prototype._getConnectionCount=function(t){function e(t){for(var e=[],i=0,n=t.length;n>i;i++)for(var s=t[i],o=s.edges,r=0,a=o.length;a>r;r++){var h=o[r],d=null;h.from==s?d=h.to:h.to==s&&(d=h.from);var l,p;if(d)for(l=0,p=t.length;p>l;l++)if(t[l]==d){d=null;break}if(d)for(l=0,p=e.length;p>l;l++)if(e[l]==d){d=null;break}d&&e.push(d)}return e}void 0==t&&(t=1);var i=[],n=this.nodes;for(var s in n)if(n.hasOwnProperty(s)){for(var o=[n[s]],r=0;t>r;r++)o=o.concat(e(o));i.push(o)}for(var a=[],h=0,d=i.length;d>h;h++)a.push(i[h].length);return a},S.prototype.setSize=function(t,e){this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth,this.frame.canvas.height=this.frame.canvas.clientHeight},S.prototype._setNodes=function(t){var e=this.nodesData;if(t instanceof o||t instanceof r)this.nodesData=t;else if(t instanceof Array)this.nodesData=new o,this.nodesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.nodesData=new o}if(e&&O.forEach(this.nodesListeners,function(t,i){e.unsubscribe(i,t)}),this.nodes={},this.nodesData){var i=this;O.forEach(this.nodesListeners,function(t,e){i.nodesData.subscribe(e,t)});var n=this.nodesData.getIds();this._addNodes(n)}this._updateSelection()},S.prototype._addNodes=function(t){for(var e,i=0,n=t.length;n>i;i++){e=t[i];var s=this.nodesData.get(e),o=new E(s,this.images,this.groups,this.constants);if(this.nodes[e]=o,!o.isFixed()){var r=2*this.constants.edges.length,a=t.length,h=2*Math.PI*(i/a);o.x=r*Math.cos(h),o.y=r*Math.sin(h),this.moving=!0}}this._reconnectEdges(),this._updateValueRange(this.nodes)},S.prototype._updateNodes=function(t){for(var e=this.nodes,i=this.nodesData,n=0,s=t.length;s>n;n++){var o=t[n],r=e[o],a=i.get(o);r?r.setProperties(a,this.constants):(r=new E(properties,this.images,this.groups,this.constants),e[o]=r,r.isFixed()||(this.moving=!0))}this._reconnectEdges(),this._updateValueRange(e)},S.prototype._removeNodes=function(t){for(var e=this.nodes,i=0,n=t.length;n>i;i++){var s=t[i];delete e[s]}this._reconnectEdges(),this._updateSelection(),this._updateValueRange(e)},S.prototype._setEdges=function(t){var e=this.edgesData;if(t instanceof o||t instanceof r)this.edgesData=t;else if(t instanceof Array)this.edgesData=new o,this.edgesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.edgesData=new o}if(e&&O.forEach(this.edgesListeners,function(t,i){e.unsubscribe(i,t)}),this.edges={},this.edgesData){var i=this;O.forEach(this.edgesListeners,function(t,e){i.edgesData.subscribe(e,t)});var n=this.edgesData.getIds();this._addEdges(n)}this._reconnectEdges()},S.prototype._addEdges=function(t){for(var e=this.edges,i=this.edgesData,n=0,s=t.length;s>n;n++){var o=t[n],r=e[o];r&&r.disconnect();var a=i.get(o);e[o]=new T(a,this,this.constants)}this.moving=!0,this._updateValueRange(e)},S.prototype._updateEdges=function(t){for(var e=this.edges,i=this.edgesData,n=0,s=t.length;s>n;n++){var o=t[n],r=i.get(o),a=e[o];a?(a.disconnect(),a.setProperties(r,this.constants),a.connect()):(a=new T(r,this,this.constants),this.edges[o]=a)}this.moving=!0,this._updateValueRange(e)},S.prototype._removeEdges=function(t){for(var e=this.edges,i=0,n=t.length;n>i;i++){var s=t[i],o=e[s];o&&(o.disconnect(),delete e[s])}this.moving=!0,this._updateValueRange(e)},S.prototype._reconnectEdges=function(){var t,e=this.nodes,i=this.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[]);for(t in i)if(i.hasOwnProperty(t)){var n=i[t];n.from=null,n.to=null,n.connect()}},S.prototype._updateValueRange=function(t){var e,i=void 0,n=void 0;for(e in t)if(t.hasOwnProperty(e)){var s=t[e].getValue();void 0!==s&&(i=void 0===i?s:Math.min(s,i),n=void 0===n?s:Math.max(s,n))}if(void 0!==i&&void 0!==n)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,n)},S.prototype.redraw=function(){this.setSize(this.width,this.height),this._redraw()},S.prototype._redraw=function(){var t=this.frame.canvas.getContext("2d"),e=this.frame.canvas.width,i=this.frame.canvas.height;t.clearRect(0,0,e,i),t.save(),t.translate(this.translation.x,this.translation.y),t.scale(this.scale,this.scale),this._drawEdges(t),this._drawNodes(t),t.restore()},S.prototype._setTranslation=function(t,e){void 0===this.translation&&(this.translation={x:0,y:0}),void 0!==t&&(this.translation.x=t),void 0!==e&&(this.translation.y=e)},S.prototype._getTranslation=function(){return{x:this.translation.x,y:this.translation.y}},S.prototype._setScale=function(t){this.scale=t},S.prototype._getScale=function(){return this.scale},S.prototype._canvasToX=function(t){return(t-this.translation.x)/this.scale},S.prototype._xToCanvas=function(t){return t*this.scale+this.translation.x},S.prototype._canvasToY=function(t){return(t-this.translation.y)/this.scale},S.prototype._yToCanvas=function(t){return t*this.scale+this.translation.y},S.prototype._drawNodes=function(t){var e=this.nodes,i=[];for(var n in e)e.hasOwnProperty(n)&&(e[n].isSelected()?i.push(n):e[n].draw(t));for(var s=0,o=i.length;o>s;s++)e[i[s]].draw(t)},S.prototype._drawEdges=function(t){var e=this.edges;for(var i in e)if(e.hasOwnProperty(i)){var n=e[i];n.connected&&e[i].draw(t)}},S.prototype._doStabilize=function(){new Date;for(var t=0,e=this.constants.minVelocity,i=!1;!i&&this.constants.maxIterations>t;)this._calculateForces(),this._discreteStepNodes(),i=!this._isMoving(e),t++;new Date},S.prototype._calculateForces=function(){var t,e,i,n,s,o,r,a,h,d,l,p=this.nodes,c=this.edges,u=.01,f=this.frame.canvas.clientWidth/2,m=this.frame.canvas.clientHeight/2;for(t in p)if(p.hasOwnProperty(t)){var g=p[t];e=f-g.x,i=m-g.y,n=Math.atan2(i,e),o=Math.cos(n)*u,r=Math.sin(n)*u,g._setForce(o,r)}var v=this.constants.nodes.distance,y=10;for(var b in p)if(p.hasOwnProperty(b)){var w=p[b];for(var _ in p)if(p.hasOwnProperty(_)){var E=p[_];e=E.x-w.x,i=E.y-w.y,s=Math.sqrt(e*e+i*i),n=Math.atan2(i,e),a=1/(1+Math.exp((s/v-1)*y)),o=Math.cos(n)*a,r=Math.sin(n)*a,w._addForce(-o,-r),E._addForce(o,r)}}for(t in c)if(c.hasOwnProperty(t)){var T=c[t];T.connected&&(e=T.to.x-T.from.x,i=T.to.y-T.from.y,l=T.length,d=Math.sqrt(e*e+i*i),n=Math.atan2(i,e),h=T.stiffness*(l-d),o=Math.cos(n)*h,r=Math.sin(n)*h,T.from._addForce(-o,-r),T.to._addForce(o,r))}},S.prototype._isMoving=function(t){var e=this.nodes;for(var i in e)if(e.hasOwnProperty(i)&&e[i].isMoving(t))return!0;return!1},S.prototype._discreteStepNodes=function(){var t=this.refreshRate/1e3,e=this.nodes;for(var i in e)e.hasOwnProperty(i)&&e[i].discreteStep(t)},S.prototype.start=function(){if(this.moving){this._calculateForces(),this._discreteStepNodes();var t=this.constants.minVelocity;this.moving=this._isMoving(t)}if(this.moving){if(!this.timer){var e=this;this.timer=window.setTimeout(function(){e.timer=void 0,e.start(),e._redraw()},this.refreshRate)}}else this._redraw()},S.prototype.stop=function(){this.timer&&(window.clearInterval(this.timer),this.timer=void 0)};var k={util:O,events:L,Controller:d,DataSet:o,DataView:r,Range:h,Stack:a,TimeStep:TimeStep,EventBus:s,components:{items:{Item:m,ItemBox:g,ItemPoint:v,ItemRange:y},Component:l,Panel:p,RootPanel:c,ItemSet:f,TimeAxis:u},graph:{Node:E,Edge:T,Popup:x,Groups:Groups,Images:Images},Timeline:_,Graph:S};n!==void 0&&(n=k),i!==void 0&&i.exports!==void 0&&(i.exports=k),"function"==typeof t&&t(function(){return k}),"undefined"!=typeof window&&(window.vis=k),O.loadCss("/* vis.js stylesheet */\n.vis.timeline {\n}\n\n\n.vis.timeline.rootpanel {\n position: relative;\n overflow: hidden;\n\n border: 1px solid #bfbfbf;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n.vis.timeline .panel {\n position: absolute;\n overflow: hidden;\n}\n\n\n.vis.timeline .groupset {\n position: absolute;\n padding: 0;\n margin: 0;\n}\n\n.vis.timeline .labels {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n padding: 0;\n margin: 0;\n\n border-right: 1px solid #bfbfbf;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n}\n\n.vis.timeline .labels .label {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n border-bottom: 1px solid #bfbfbf;\n color: #4d4d4d;\n}\n\n.vis.timeline .labels .label .inner {\n display: inline-block;\n padding: 5px;\n}\n\n\n.vis.timeline .itemset {\n position: absolute;\n padding: 0;\n margin: 0;\n overflow: hidden;\n}\n\n.vis.timeline .background {\n}\n\n.vis.timeline .foreground {\n}\n\n.vis.timeline .itemset-axis {\n position: absolute;\n}\n\n.vis.timeline .groupset .itemset-axis {\n border-top: 1px solid #bfbfbf;\n}\n\n/* TODO: with orientation=='bottom', this will more or less overlap with timeline axis\n.vis.timeline .groupset .itemset-axis:last-child {\n border-top: none;\n}\n*/\n\n\n.vis.timeline .item {\n position: absolute;\n color: #1A1A1A;\n border-color: #97B0F8;\n background-color: #D5DDF6;\n display: inline-block;\n}\n\n.vis.timeline .item.selected {\n border-color: #FFC200;\n background-color: #FFF785;\n z-index: 999;\n}\n\n.vis.timeline .item.cluster {\n /* TODO: use another color or pattern? */\n background: #97B0F8 url('img/cluster_bg.png');\n color: white;\n}\n.vis.timeline .item.cluster.point {\n border-color: #D5DDF6;\n}\n\n.vis.timeline .item.box {\n text-align: center;\n border-style: solid;\n border-width: 1px;\n border-radius: 5px;\n -moz-border-radius: 5px; /* For Firefox 3.6 and older */\n}\n\n.vis.timeline .item.point {\n background: none;\n}\n\n.vis.timeline .dot {\n border: 5px solid #97B0F8;\n position: absolute;\n border-radius: 5px;\n -moz-border-radius: 5px; /* For Firefox 3.6 and older */\n}\n\n.vis.timeline .item.range {\n overflow: hidden;\n border-style: solid;\n border-width: 1px;\n border-radius: 2px;\n -moz-border-radius: 2px; /* For Firefox 3.6 and older */\n}\n\n.vis.timeline .item.range .drag-left {\n cursor: w-resize;\n z-index: 1000;\n}\n\n.vis.timeline .item.range .drag-right {\n cursor: e-resize;\n z-index: 1000;\n}\n\n.vis.timeline .item.range .content {\n position: relative;\n display: inline-block;\n}\n\n.vis.timeline .item.line {\n position: absolute;\n width: 0;\n border-left-width: 1px;\n border-left-style: solid;\n}\n\n.vis.timeline .item .content {\n margin: 5px;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.vis.timeline .axis {\n position: relative;\n}\n\n.vis.timeline .axis .text {\n position: absolute;\n color: #4d4d4d;\n padding: 3px;\n white-space: nowrap;\n}\n\n.vis.timeline .axis .text.measure {\n position: absolute;\n padding-left: 0;\n padding-right: 0;\n margin-left: 0;\n margin-right: 0;\n visibility: hidden;\n}\n\n.vis.timeline .axis .grid.vertical {\n position: absolute;\n width: 0;\n border-right: 1px solid;\n}\n\n.vis.timeline .axis .grid.horizontal {\n position: absolute;\n left: 0;\n width: 100%;\n height: 0;\n border-bottom: 1px solid;\n}\n\n.vis.timeline .axis .grid.minor {\n border-color: #e5e5e5;\n}\n\n.vis.timeline .axis .grid.major {\n border-color: #bfbfbf;\n}\n\n")},{hammerjs:1,moment:2}]},{},[3])(3)}); \ No newline at end of file