| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -58,60 +58,58 @@ BoxItem.prototype.isVisible = function(range) { | 
															
														
														
													
														
															
																 | 
																 | 
																  return isVisible; | 
																 | 
																 | 
																  return isVisible; | 
															
														
														
													
														
															
																 | 
																 | 
																}; | 
																 | 
																 | 
																}; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																/** | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 * Repaint the item | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 */ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																BoxItem.prototype.redraw = function() { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																  var dom = this.dom; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																  if (!dom) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																BoxItem.prototype._createDomElement = function() { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  if (!this.dom) { | 
															
														
														
													
														
															
																 | 
																 | 
																    // create DOM
 | 
																 | 
																 | 
																    // create DOM
 | 
															
														
														
													
														
															
																 | 
																 | 
																    this.dom = {}; | 
																 | 
																 | 
																    this.dom = {}; | 
															
														
														
													
														
															
																 | 
																 | 
																    dom = this.dom; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    // create main box
 | 
																 | 
																 | 
																    // create main box
 | 
															
														
														
													
														
															
																 | 
																 | 
																    dom.box = document.createElement('DIV'); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.box = document.createElement('DIV'); | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    // contents box (inside the background box). used for making margins
 | 
																 | 
																 | 
																    // contents box (inside the background box). used for making margins
 | 
															
														
														
													
														
															
																 | 
																 | 
																    dom.content = document.createElement('DIV'); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    dom.content.className = 'vis-item-content'; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    dom.box.appendChild(dom.content); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.content = document.createElement('DIV'); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.content.className = 'vis-item-content'; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.box.appendChild(this.dom.content); | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    // line to axis
 | 
																 | 
																 | 
																    // line to axis
 | 
															
														
														
													
														
															
																 | 
																 | 
																    dom.line = document.createElement('DIV'); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    dom.line.className = 'vis-line'; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.line = document.createElement('DIV'); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.line.className = 'vis-line'; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    // dot on axis
 | 
																 | 
																 | 
																    // dot on axis
 | 
															
														
														
													
														
															
																 | 
																 | 
																    dom.dot = document.createElement('DIV'); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    dom.dot.className = 'vis-dot'; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.dot = document.createElement('DIV'); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.dot.className = 'vis-dot'; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    // attach this item as attribute
 | 
																 | 
																 | 
																    // attach this item as attribute
 | 
															
														
														
													
														
															
																 | 
																 | 
																    dom.box['timeline-item'] = this; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.box['timeline-item'] = this; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    this.dirty = true; | 
																 | 
																 | 
																    this.dirty = true; | 
															
														
														
													
														
															
																 | 
																 | 
																  } | 
																 | 
																 | 
																  } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																  // append DOM to parent DOM
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																BoxItem.prototype._appendDomElement = function() { | 
															
														
														
													
														
															
																 | 
																 | 
																  if (!this.parent) { | 
																 | 
																 | 
																  if (!this.parent) { | 
															
														
														
													
														
															
																 | 
																 | 
																    throw new Error('Cannot redraw item: no parent attached'); | 
																 | 
																 | 
																    throw new Error('Cannot redraw item: no parent attached'); | 
															
														
														
													
														
															
																 | 
																 | 
																  } | 
																 | 
																 | 
																  } | 
															
														
														
													
														
															
																 | 
																 | 
																  if (!dom.box.parentNode) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  if (!this.dom.box.parentNode) { | 
															
														
														
													
														
															
																 | 
																 | 
																    var foreground = this.parent.dom.foreground; | 
																 | 
																 | 
																    var foreground = this.parent.dom.foreground; | 
															
														
														
													
														
															
																 | 
																 | 
																    if (!foreground) throw new Error('Cannot redraw item: parent has no foreground container element'); | 
																 | 
																 | 
																    if (!foreground) throw new Error('Cannot redraw item: parent has no foreground container element'); | 
															
														
														
													
														
															
																 | 
																 | 
																    foreground.appendChild(dom.box); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    foreground.appendChild(this.dom.box); | 
															
														
														
													
														
															
																 | 
																 | 
																  } | 
																 | 
																 | 
																  } | 
															
														
														
													
														
															
																 | 
																 | 
																  if (!dom.line.parentNode) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  if (!this.dom.line.parentNode) { | 
															
														
														
													
														
															
																 | 
																 | 
																    var background = this.parent.dom.background; | 
																 | 
																 | 
																    var background = this.parent.dom.background; | 
															
														
														
													
														
															
																 | 
																 | 
																    if (!background) throw new Error('Cannot redraw item: parent has no background container element'); | 
																 | 
																 | 
																    if (!background) throw new Error('Cannot redraw item: parent has no background container element'); | 
															
														
														
													
														
															
																 | 
																 | 
																    background.appendChild(dom.line); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    background.appendChild(this.dom.line); | 
															
														
														
													
														
															
																 | 
																 | 
																  } | 
																 | 
																 | 
																  } | 
															
														
														
													
														
															
																 | 
																 | 
																  if (!dom.dot.parentNode) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  if (!this.dom.dot.parentNode) { | 
															
														
														
													
														
															
																 | 
																 | 
																    var axis = this.parent.dom.axis; | 
																 | 
																 | 
																    var axis = this.parent.dom.axis; | 
															
														
														
													
														
															
																 | 
																 | 
																    if (!background) throw new Error('Cannot redraw item: parent has no axis container element'); | 
																 | 
																 | 
																    if (!background) throw new Error('Cannot redraw item: parent has no axis container element'); | 
															
														
														
													
														
															
																 | 
																 | 
																    axis.appendChild(dom.dot); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    axis.appendChild(this.dom.dot); | 
															
														
														
													
														
															
																 | 
																 | 
																  } | 
																 | 
																 | 
																  } | 
															
														
														
													
														
															
																 | 
																 | 
																  this.displayed = true; | 
																 | 
																 | 
																  this.displayed = true; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																  // Update DOM when item is marked dirty. An item is marked dirty when:
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																BoxItem.prototype._updateDirtyDomComponents = function() { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  // An item is marked dirty when:
 | 
															
														
														
													
														
															
																 | 
																 | 
																  // - the item is not yet rendered
 | 
																 | 
																 | 
																  // - the item is not yet rendered
 | 
															
														
														
													
														
															
																 | 
																 | 
																  // - the item's data is changed
 | 
																 | 
																 | 
																  // - the item's data is changed
 | 
															
														
														
													
														
															
																 | 
																 | 
																  // - the item is selected/deselected
 | 
																 | 
																 | 
																  // - the item is selected/deselected
 | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -126,41 +124,104 @@ BoxItem.prototype.redraw = function() { | 
															
														
														
													
														
															
																 | 
																 | 
																    var className = (this.data.className? ' ' + this.data.className : '') + | 
																 | 
																 | 
																    var className = (this.data.className? ' ' + this.data.className : '') + | 
															
														
														
													
														
															
																 | 
																 | 
																        (this.selected ? ' vis-selected' : '') + | 
																 | 
																 | 
																        (this.selected ? ' vis-selected' : '') + | 
															
														
														
													
														
															
																 | 
																 | 
																        (editable ? ' vis-editable' : ' vis-readonly'); | 
																 | 
																 | 
																        (editable ? ' vis-editable' : ' vis-readonly'); | 
															
														
														
													
														
															
																 | 
																 | 
																    dom.box.className = 'vis-item vis-box' + className; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    dom.line.className = 'vis-item vis-line' + className; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    dom.dot.className  = 'vis-item vis-dot' + className; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    // set initial position in the visible range of the grid so that the
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    // rendered box size can be determinated correctly, even the content
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    // has a dynamic width (fixes #2032).
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    var previousRight = dom.box.style.right; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    var previousLeft = dom.box.style.left; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    if (this.options.rtl) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      dom.box.style.right = "0px"; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    } else { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      dom.box.style.left = "0px"; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    } | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    // recalculate size
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    this.props.dot.height = dom.dot.offsetHeight; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    this.props.dot.width = dom.dot.offsetWidth; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    this.props.line.width = dom.line.offsetWidth; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    this.width = dom.box.offsetWidth; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    this.height = dom.box.offsetHeight; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.box.className = 'vis-item vis-box' + className; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.line.className = 'vis-item vis-line' + className; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.dot.className  = 'vis-item vis-dot' + className; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    // restore previous position
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    if (this.options.rtl) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      dom.box.style.right = previousRight; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    } else { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      dom.box.style.left = previousLeft; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																BoxItem.prototype._getDomComponentsSizes = function() { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  return { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    previous: { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      right: this.dom.box.style.right, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      left: this.dom.box.style.left | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    }, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    dot: { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      height: this.dom.dot.offsetHeight, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      width: this.dom.dot.offsetWidth | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    }, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    line: { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      width: this.dom.line.offsetWidth | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    }, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    box: { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      width: this.dom.box.offsetWidth, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      height: this.dom.box.offsetHeight | 
															
														
														
													
														
															
																 | 
																 | 
																    } | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																BoxItem.prototype._updateDomComponentsSizes = function(sizes) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  if (this.options.rtl) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.box.style.right = "0px"; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  } else { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.box.style.left = "0px"; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  } | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    this.dirty = false; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  // recalculate size
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  this.props.dot.height = sizes.dot.height; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  this.props.dot.width = sizes.dot.width; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  this.props.line.width = sizes.line.width; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  this.width = sizes.box.width; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  this.height = sizes.box.height; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  // restore previous position
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  if (this.options.rtl) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.box.style.right = sizes.previous.right; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  } else { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this.dom.box.style.left = sizes.previous.left; | 
															
														
														
													
														
															
																 | 
																 | 
																  } | 
																 | 
																 | 
																  } | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																  this._repaintOnItemUpdateTimeTooltip(dom.box); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  this.dirty = false; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																BoxItem.prototype._repaintDomAdditionals = function() { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  this._repaintOnItemUpdateTimeTooltip(this.dom.box); | 
															
														
														
													
														
															
																 | 
																 | 
																  this._repaintDragCenter(); | 
																 | 
																 | 
																  this._repaintDragCenter(); | 
															
														
														
													
														
															
																 | 
																 | 
																  this._repaintDeleteButton(dom.box); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  this._repaintDeleteButton(this.dom.box); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																/** | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 * Repaint the item | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 * @param {boolean} [returnQueue=false]  return the queue | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 * @return {boolean} the redraw queue if returnQueue=true | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 */ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																BoxItem.prototype.redraw = function(returnQueue) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  var sizes | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  var queue = [ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    // create item DOM
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this._createDomElement.bind(this), | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    // append DOM to parent DOM
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this._appendDomElement.bind(this), | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    // update dirty DOM
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this._updateDirtyDomComponents.bind(this), | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    (function() { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      if (this.dirty) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        sizes = this._getDomComponentsSizes(); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    }).bind(this), | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    (function() { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      if (this.dirty) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        this._updateDomComponentsSizes.bind(this)(sizes); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    }).bind(this), | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    // repaint DOM additionals
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    this._repaintDomAdditionals.bind(this) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  ]; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  if (returnQueue) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    return queue; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  } else { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    var result; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    queue.forEach(function (fn) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      result = fn(); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    }); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    return result; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  } | 
															
														
														
													
														
															
																 | 
																 | 
																}; | 
																 | 
																 | 
																}; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																/** | 
																 | 
																 | 
																/** | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
 |