vendor/assets/vis/timeline/component/TimeAxis.js in vis-rails-1.0.1 vs vendor/assets/vis/timeline/component/TimeAxis.js in vis-rails-1.0.2
- old
+ new
@@ -405,35 +405,35 @@
* Determine the size of text on the axis (both major and minor axis).
* The size is calculated only once and then cached in this.props.
* @private
*/
TimeAxis.prototype._calculateCharSize = function () {
+ // Note: We calculate char size with every repaint. Size may change, for
+ // example when any of the timelines parents had display:none for example.
+
// determine the char width and height on the minor axis
- if (!('minorCharHeight' in this.props)) {
- var textMinor = document.createTextNode('0');
- var measureCharMinor = document.createElement('DIV');
- measureCharMinor.className = 'text minor measure';
- measureCharMinor.appendChild(textMinor);
- this.frame.appendChild(measureCharMinor);
+ if (!this.dom.measureCharMinor) {
+ this.dom.measureCharMinor = document.createElement('DIV');
+ this.dom.measureCharMinor.className = 'text minor measure';
+ this.dom.measureCharMinor.style.position = 'absolute';
- this.props.minorCharHeight = measureCharMinor.clientHeight;
- this.props.minorCharWidth = measureCharMinor.clientWidth;
-
- this.frame.removeChild(measureCharMinor);
+ this.dom.measureCharMinor.appendChild(document.createTextNode('0'));
+ this.frame.appendChild(this.dom.measureCharMinor);
}
+ this.props.minorCharHeight = this.dom.measureCharMinor.clientHeight;
+ this.props.minorCharWidth = this.dom.measureCharMinor.clientWidth;
- if (!('majorCharHeight' in this.props)) {
- var textMajor = document.createTextNode('0');
- var measureCharMajor = document.createElement('DIV');
- measureCharMajor.className = 'text major measure';
- measureCharMajor.appendChild(textMajor);
- this.frame.appendChild(measureCharMajor);
+ // determine the char width and height on the major axis
+ if (!this.dom.measureCharMajor) {
+ this.dom.measureCharMajor = document.createElement('DIV');
+ this.dom.measureCharMajor.className = 'text minor measure';
+ this.dom.measureCharMajor.style.position = 'absolute';
- this.props.majorCharHeight = measureCharMajor.clientHeight;
- this.props.majorCharWidth = measureCharMajor.clientWidth;
-
- this.frame.removeChild(measureCharMajor);
+ this.dom.measureCharMajor.appendChild(document.createTextNode('0'));
+ this.frame.appendChild(this.dom.measureCharMajor);
}
+ this.props.majorCharHeight = this.dom.measureCharMajor.clientHeight;
+ this.props.majorCharWidth = this.dom.measureCharMajor.clientWidth;
};
/**
* Snap a date to a rounded value.
* The snap intervals are dependent on the current scale and step.