Commit f5cc10dd authored by Sergey.Luzyanin's avatar Sergey.Luzyanin Committed by Alexander.Trofimov

учет выходящих за пределы блока подписей зачений на осях

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@55265 954022d7-b5bf-4e40-9824-e11837661b57
parent d00e30c4
...@@ -2018,8 +2018,11 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -2018,8 +2018,11 @@ CChartSpace.prototype.recalculateAxis = function()
var hor_interval_width = rect.w/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]); var hor_interval_width = rect.w/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]);
var vert_interval_height = rect.h/(arr_val[arr_val.length-1] - arr_val[0]); var vert_interval_height = rect.h/(arr_val[arr_val.length-1] - arr_val[0]);
var arr_x_points = [], arr_y_points = []; var arr_x_points = [], arr_y_points = [];
var labels_pos = y_ax.tickLabelsPos; var labels_pos = y_ax.tickLblPos;
var first_hor_label_half_width = (x_ax.tickLblPos === TICK_LABEL_POSITION_NONE || x_ax.bDelete) ? 0 : x_ax.labels.arrLabels[0].tx.rich.content.XLimit/2;
var last_hor_label_half_width = (x_ax.tickLblPos === TICK_LABEL_POSITION_NONE || x_ax.bDelete) ? 0 : x_ax.labels.arrLabels[x_ax.labels.arrLabels.length-1].tx.rich.content.XLimit/2;
var left_gap, right_gap;
if(x_ax_orientation === ORIENTATION_MIN_MAX) if(x_ax_orientation === ORIENTATION_MIN_MAX)
{ {
switch(labels_pos) switch(labels_pos)
...@@ -2027,34 +2030,38 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -2027,34 +2030,38 @@ CChartSpace.prototype.recalculateAxis = function()
case TICK_LABEL_POSITION_HIGH: case TICK_LABEL_POSITION_HIGH:
{ {
left_align_labels = false; left_align_labels = false;
y_ax.labels.x = rect.x + rect.w - y_ax.labels.extX;
hor_interval_width = (rect.w-y_ax.labels.extX)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]); right_gap = Math.max(last_hor_label_half_width, y_ax.labels.extX);
hor_interval_width = (rect.w - right_gap - first_hor_label_half_width)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]);
for(i = 0; i < arr_x_val.length; ++i) for(i = 0; i < arr_x_val.length; ++i)
{ {
arr_x_points[i] = rect.x + hor_interval_width*(arr_x_val[i] - arr_x_val[0]); arr_x_points[i] = rect.x + first_hor_label_half_width + hor_interval_width*(arr_x_val[i] - arr_x_val[0]);
} }
y_ax.xPos = rect.x + (crosses-arr_x_val[0])*hor_interval_width; y_ax.labels.x = rect.x + first_hor_label_half_width + hor_interval_width*(arr_x_val[arr_x_val.length-1] - arr_x_val[0]);
y_ax.xPos = rect.x + first_hor_label_half_width + (crosses-arr_x_val[0])*hor_interval_width;
break; break;
} }
case TICK_LABEL_POSITION_LOW: case TICK_LABEL_POSITION_LOW:
{ {
y_ax.labels.x = rect.x; left_gap = Math.max(first_hor_label_half_width, y_ax.labels.extX);
hor_interval_width = (rect.w-y_ax.labels.extX)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]); hor_interval_width = (rect.w-left_gap - last_hor_label_half_width)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]);
for(i = 0; i < arr_x_val.length; ++i) for(i = 0; i < arr_x_val.length; ++i)
{ {
arr_x_points[i] = rect.x + y_ax.labels.extX + hor_interval_width*(arr_x_val[i] - arr_x_val[0]); arr_x_points[i] = rect.x + left_gap + hor_interval_width*(arr_x_val[i] - arr_x_val[0]);
} }
y_ax.xPos = rect.x + y_ax.labels.extX + (crosses-arr_x_val[0])*hor_interval_width; y_ax.labels.x = rect.x + left_gap - y_ax.labels.extX;
y_ax.xPos = rect.x + left_gap + (crosses-arr_x_val[0])*hor_interval_width;
break; break;
} }
case TICK_LABEL_POSITION_NONE: case TICK_LABEL_POSITION_NONE:
{ {
y_ax.labels = null; y_ax.labels = null;
hor_interval_width = (rect.w- first_hor_label_half_width - last_hor_label_half_width)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]);
for(i = 0; i < arr_x_val.length; ++i) for(i = 0; i < arr_x_val.length; ++i)
{ {
arr_x_points[i] = rect.x + hor_interval_width*(arr_x_val[i] - arr_x_val[0]); arr_x_points[i] = rect.x + first_hor_label_half_width + hor_interval_width*(arr_x_val[i] - arr_x_val[0]);
} }
y_ax.xPos = rect.x + (crosses-arr_x_val[0])*hor_interval_width; y_ax.xPos = rect.x + first_hor_label_half_width + hor_interval_width*(crosses - arr_x_val[0]);
break; break;
} }
default : default :
...@@ -2062,30 +2069,29 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -2062,30 +2069,29 @@ CChartSpace.prototype.recalculateAxis = function()
if(y_ax.crosses === CROSSES_MAX) if(y_ax.crosses === CROSSES_MAX)
{ {
left_align_labels = false; left_align_labels = false;
y_ax.labels.x = rect.x + rect.w - y_ax.labels.extX; right_gap = Math.max(right_gap, y_ax.labels.extX);
y_ax.xPos = rect.x + rect.w - y_ax.labels.extX;
hor_interval_width = (rect.w-y_ax.labels.extX)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]); y_ax.labels.x = rect.x + rect.w - right_gap;
y_ax.xPos = rect.x + rect.w - right_gap;
hor_interval_width = (rect.w - right_gap - first_hor_label_half_width)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]);
for(i = 0; i < arr_x_val.length; ++i) for(i = 0; i < arr_x_val.length; ++i)
{ {
arr_x_points[i] = rect.x + hor_interval_width*(arr_x_val[i] - arr_x_val[0]); arr_x_points[i] = rect.x + first_hor_label_half_width + hor_interval_width*(arr_x_val[i] - arr_x_val[0]);
} }
} }
else else
{ {
if((crosses-arr_x_val[0])*hor_interval_width < y_ax.labels.extX) hor_interval_width = (rect.w - first_hor_label_half_width - last_hor_label_half_width)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]);
{ if(first_hor_label_half_width + (crosses-arr_x_val[0])*hor_interval_width < y_ax.labels.extX)
y_ax.labels.x = rect.x;
hor_interval_width = (rect.w - y_ax.labels.extX)/(arr_x_val[arr_x_val.length-1] - crosses);
}
else
{ {
y_ax.labels.x = rect.x + hor_interval_width*(crosses-arr_x_val[0]) - y_ax.labels.extX; hor_interval_width = (rect.w - y_ax.labels.extX - last_hor_label_half_width)/(arr_x_val[arr_x_val.length-1] - crosses);
} }
y_ax.xPos = y_ax.labels.x + y_ax.labels.extX; y_ax.xPos = rect.x+ rect.w - last_hor_label_half_width - (arr_x_val[arr_x_val.length-1] - crosses)*hor_interval_width;
for(i = 0; i < arr_x_val.length; ++i) for(i = 0; i < arr_x_val.length; ++i)
{ {
arr_x_points[i] = y_ax.xPos + (arr_x_val[i] - crosses)*hor_interval_width; arr_x_points[i] = y_ax.xPos + (arr_x_val[i] - crosses)*hor_interval_width;
} }
y_ax.labels.x = y_ax.xPos - y_ax.labels.extX;
} }
break; break;
} }
...@@ -2097,31 +2103,36 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -2097,31 +2103,36 @@ CChartSpace.prototype.recalculateAxis = function()
{ {
case TICK_LABEL_POSITION_HIGH: case TICK_LABEL_POSITION_HIGH:
{ {
y_ax.labels.x = rect.x; left_gap = Math.max(y_ax.labels.extX, last_hor_label_half_width);
hor_interval_width = (rect.w - y_ax.labels.extX)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]); hor_interval_width = (rect.w - left_gap - first_hor_label_half_width)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]);
y_ax.xPos = rect.x + rect.w - (crosses - arr_x_val[0])*hor_interval_width;
y_ax.xPos = rect.x + rect.w - (crosses - arr_x_val[0])*hor_interval_width - first_hor_label_half_width;
for(i = 0; i < arr_x_val.length; ++i) for(i = 0; i < arr_x_val.length; ++i)
{ {
arr_x_points[i] = y_ax.xPos - (arr_x_val[i]-crosses)*hor_interval_width; arr_x_points[i] = y_ax.xPos - (arr_x_val[i]-crosses)*hor_interval_width;
} }
y_ax.labels.x = y_ax.xPos - (arr_x_val[arr_x_val.length-1]-crosses)*hor_interval_width - y_ax.labels.extX;
break; break;
} }
case TICK_LABEL_POSITION_LOW: case TICK_LABEL_POSITION_LOW:
{ {
left_align_labels = false; left_align_labels = false;
y_ax.labels.x = rect.x + rect.w - y_ax.labels.extX;
hor_interval_width = (rect.w - y_ax.labels.extX)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]); right_gap = Math.max(y_ax.labels.extX, first_hor_label_half_width);
y_ax.xPos = rect.x + rect.w - y_ax.labels.extX - (crosses - arr_x_val[0])*hor_interval_width; hor_interval_width = (rect.w - right_gap - last_hor_label_half_width)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]);
y_ax.xPos = rect.x + rect.w - right_gap - (crosses - arr_x_val[0])*hor_interval_width;
for(i = 0; i < arr_x_val.length; ++i) for(i = 0; i < arr_x_val.length; ++i)
{ {
arr_x_points[i] = y_ax.xPos - (arr_x_val[i]-crosses)*hor_interval_width; arr_x_points[i] = y_ax.xPos - (arr_x_val[i]-crosses)*hor_interval_width;
} }
y_ax.labels.x = rect.x + rect.w - right_gap;
break; break;
} }
case TICK_LABEL_POSITION_NONE: case TICK_LABEL_POSITION_NONE:
{ {
y_ax.labels = null; y_ax.labels = null;
y_ax.xPos = rect.x + rect.w - (crosses - arr_x_val[0])*hor_interval_width; hor_interval_width = (rect.w - first_hor_label_half_width - last_hor_label_half_width)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]);
y_ax.xPos = rect.x + rect.w - first_hor_label_half_width - (crosses - arr_x_val[0])*hor_interval_width;
for(i = 0; i < arr_x_val.length; ++i) for(i = 0; i < arr_x_val.length; ++i)
{ {
arr_x_points[i] = y_ax.xPos - (arr_x_val[i]-crosses)*hor_interval_width; arr_x_points[i] = y_ax.xPos - (arr_x_val[i]-crosses)*hor_interval_width;
...@@ -2133,23 +2144,22 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -2133,23 +2144,22 @@ CChartSpace.prototype.recalculateAxis = function()
if(y_ax.crosses === CROSSES_MAX) if(y_ax.crosses === CROSSES_MAX)
{ {
y_ax.labels.x = rect.x; left_gap = Math.max(y_ax.labels.extX, last_hor_label_half_width);
hor_interval_width = (rect.w - y_ax.labels.extX)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]); hor_interval_width = (rect.w - left_gap - first_hor_label_half_width)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]);
y_ax.xPos = rect.x + rect.w - (crosses-arr_x_val[0])*hor_interval_width; y_ax.xPos = rect.x + rect.w - first_hor_label_half_width - (crosses-arr_x_val[0])*hor_interval_width;
y_ax.labels.x = y_ax.xPos - ((arr_x_val[arr_x_val.length-1] - crosses)*hor_interval_width) - y_ax.labels.extX;
} }
else else
{ {
if((crosses-arr_x_val[0])*hor_interval_width < y_ax.labels.extX) left_align_labels = false;
{ hor_interval_width = (rect.w - first_hor_label_half_width - last_hor_label_half_width)/(arr_x_val[arr_x_val.length-1] - arr_x_val[0]);
y_ax.labels.x = rect.x + rect.w - y_ax.labels.extX; if(first_hor_label_half_width + (crosses-arr_x_val[0])*hor_interval_width < y_ax.labels.extX)
hor_interval_width = (rect.w - y_ax.labels.extX)/(arr_x_val[arr_x_val.length-1] - crosses);
}
else
{ {
y_ax.labels.x = rect.x + rect.w - (crosses - arr_x_val[0])*hor_interval_width; hor_interval_width = (rect.w - y_ax.labels.extX - last_hor_label_half_width)/(arr_x_val[arr_x_val.length-1] - crosses);
} }
left_align_labels = false; left_align_labels = false;
y_ax.xPos = rect.x + hor_interval_width*(arr_x_val[arr_x_val.length-1] - crosses); y_ax.xPos = rect.x + last_hor_label_half_width + hor_interval_width*(arr_x_val[arr_x_val.length-1] - crosses);
y_ax.labels.x = y_ax.xPos;
} }
for(i = 0; i < arr_x_val.length; ++i) for(i = 0; i < arr_x_val.length; ++i)
{ {
...@@ -2199,6 +2209,11 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -2199,6 +2209,11 @@ CChartSpace.prototype.recalculateAxis = function()
} }
var tick_labels_pos_x = x_ax.tickLblPos; var tick_labels_pos_x = x_ax.tickLblPos;
var first_vert_label_half_height = (y_ax.tickLblPos === TICK_LABEL_POSITION_NONE || y_ax.bDelete) ? 0 : y_ax.labels.arrLabels[0].tx.rich.content.Get_SummaryHeight()/2;
var last_vert_label_half_height = (y_ax.tickLblPos === TICK_LABEL_POSITION_NONE || y_ax.bDelete) ? 0 : y_ax.labels.arrLabels[0].tx.rich.content.Get_SummaryHeight()/2;
var bottom_gap, top_height;
if(y_ax_orientation === ORIENTATION_MIN_MAX) if(y_ax_orientation === ORIENTATION_MIN_MAX)
{ {
switch(tick_labels_pos_x) switch(tick_labels_pos_x)
...@@ -2206,34 +2221,43 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -2206,34 +2221,43 @@ CChartSpace.prototype.recalculateAxis = function()
case TICK_LABEL_POSITION_HIGH: case TICK_LABEL_POSITION_HIGH:
{ {
bottom_align_labels = false; bottom_align_labels = false;
x_ax.labels.y = rect.y; var bottom_start_point = rect.y + rect.h - first_vert_label_half_height;
vert_interval_height = (rect.h - x_ax.labels.extY)/(arr_val[arr_val.length-1] - arr_val[0]);
top_height = Math.max(x_ax.labels.extY, last_vert_label_half_height);
vert_interval_height = (rect.h - top_height - first_vert_label_half_height)/(arr_val[arr_val.length-1] - arr_val[0]);
x_ax.labels.y = bottom_start_point - (arr_val[arr_val.length - 1] - arr_val[0])*vert_interval_height - x_ax.labels.extY;
for(i = 0; i < arr_val.length; ++i) for(i = 0; i < arr_val.length; ++i)
{ {
arr_y_points[i] = rect.y +x_ax.labels.extY + (arr_val[i] - arr_val[0])*vert_interval_height; arr_y_points[i] = bottom_start_point - (arr_val[i] - arr_val[0])*vert_interval_height;
} }
x_ax.yPos = rect.y + rect.h - (crosses_x - arr_val[0])*vert_interval_height; x_ax.yPos = bottom_start_point - (crosses_x - arr_val[0])*vert_interval_height;
break; break;
} }
case TICK_LABEL_POSITION_LOW: case TICK_LABEL_POSITION_LOW:
{ {
x_ax.labels.y = rect.y + rect.h - x_ax.labels.extY; bottom_gap = Math.max(x_ax.labels.extY, first_vert_label_half_height);
vert_interval_height = (rect.h - x_ax.labels.extY)/(arr_val[arr_val.length-1] - arr_val[0]); x_ax.labels.y = rect.y + rect.h - bottom_gap;
vert_interval_height = (rect.h - bottom_gap - last_vert_label_half_height)/(arr_val[arr_val.length-1] - arr_val[0]);
for(i = 0; i < arr_val.length; ++i) for(i = 0; i < arr_val.length; ++i)
{ {
arr_y_points[i] = rect.y + rect.h - (arr_val[i] - arr_val[0])*vert_interval_height; arr_y_points[i] = rect.y + rect.h - bottom_gap - (arr_val[i] - arr_val[0])*vert_interval_height;
} }
x_ax.yPos = rect.y + rect.h - x_ax.labels.extY - (crosses_x - arr_val[0])*vert_interval_height; x_ax.yPos = rect.y + rect.h - bottom_gap - (crosses_x - arr_val[0])*vert_interval_height;
break; break;
} }
case TICK_LABEL_POSITION_NONE: case TICK_LABEL_POSITION_NONE:
{ {
x_ax.labels = null; x_ax.labels = null;
vert_interval_height = (rect.h - first_vert_label_half_height - last_vert_label_half_height)/(arr_val[arr_val.length-1] - arr_val[0]);
for(i = 0; i < arr_val.length; ++i) for(i = 0; i < arr_val.length; ++i)
{ {
arr_y_points[i] = rect.y + rect.h - (arr_val[i] - arr_val[0])*vert_interval_height; arr_y_points[i] = rect.y + rect.h - first_vert_label_half_height - (arr_val[i] - arr_val[0])*vert_interval_height;
} }
x_ax.yPos = rect.y + rect.h - (crosses_x - arr_val[0])*vert_interval_height; x_ax.yPos = rect.y + rect.h - first_vert_label_half_height - (crosses_x - arr_val[0])*vert_interval_height;
break; break;
} }
default : default :
...@@ -2241,26 +2265,26 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -2241,26 +2265,26 @@ CChartSpace.prototype.recalculateAxis = function()
if(x_ax.crosses === CROSSES_MAX) if(x_ax.crosses === CROSSES_MAX)
{ {
bottom_align_labels = false; bottom_align_labels = false;
x_ax.labels.y = rect.y; top_height = Math.max(x_ax.labels.extY, last_vert_label_half_height);
vert_interval_height = (rect.h - x_ax.labels.extY)/(arr_val[arr_val.length-1] - arr_val[0]);
vert_interval_height = (rect.h - top_height - first_vert_label_half_height)/(arr_val[arr_val.length-1] - arr_val[0]);
for(i = 0; i < arr_val.length; ++i) for(i = 0; i < arr_val.length; ++i)
{ {
arr_y_points[i] = rect.y + rect.h - (arr_val[i] - arr_val[0])*vert_interval_height; arr_y_points[i] = rect.y + rect.h - first_vert_label_half_height - (arr_val[i] - arr_val[0])*vert_interval_height;
} }
x_ax.yPos = rect.y + rect.h - (crosses_x - arr_val[0])*vert_interval_height; x_ax.yPos = rect.y + rect.h - first_vert_label_half_height - (arr_val[arr_val.length-1] - arr_val[0])*vert_interval_height;
x_ax.labels.y = x_ax.yPos - x_ax.labels.extY;
} }
else else
{ {
if((crosses_x-arr_val[0])*vert_interval_height < x_ax.labels.extY) vert_interval_height = (rect.h - first_vert_label_half_height - last_vert_label_half_height)/(arr_val[arr_val.length-1] - arr_val[0]);
{ if(first_vert_label_half_height + (crosses_x-arr_val[0])*vert_interval_height < x_ax.labels.extY)
x_ax.labels.y = rect.y + rect.h - x_ax.labels.extY;
vert_interval_height = (rect.h - x_ax.labels.extY)/(arr_val[arr_val.length-1] - crosses_x);
}
else
{ {
x_ax.labels.y = rect.y + rect.h - (crosses_x - arr_val[0])*vert_interval_height; vert_interval_height = (rect.h - x_ax.labels.extY - last_vert_label_half_height)/(arr_val[arr_val.length-1] - crosses_x);
} }
x_ax.yPos = x_ax.labels.y;
x_ax.yPos = rect.y + last_vert_label_half_height+ (arr_val[arr_val.length-1] - crosses_x)*vert_interval_height;
x_ax.labels.y = x_ax.yPos;
for(i = 0;i < arr_val.length; ++i) for(i = 0;i < arr_val.length; ++i)
{ {
arr_y_points[i] = x_ax.yPos - (arr_val[i] - crosses_x)*vert_interval_height; arr_y_points[i] = x_ax.yPos - (arr_val[i] - crosses_x)*vert_interval_height;
...@@ -2276,34 +2300,38 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -2276,34 +2300,38 @@ CChartSpace.prototype.recalculateAxis = function()
{ {
case TICK_LABEL_POSITION_HIGH: case TICK_LABEL_POSITION_HIGH:
{ {
x_ax.labels.y = rect.y + rect.h - x_ax.labels.extY; bottom_gap = Math.max(last_vert_label_half_height, x_ax.labels.extY);
vert_interval_height = (rect.h - x_ax.labels.extY)/(arr_val[arr_val.length-1] - arr_val[0]); vert_interval_height = (rect.h - bottom_gap - first_vert_label_half_height)/(arr_val[arr_val.length-1] - arr_val[0]);
x_ax.yPos = rect.y + (crosses_x - arr_val[0])*vert_interval_height; x_ax.yPos = rect.y + first_vert_label_half_height + (crosses_x - arr_val[0])*vert_interval_height;
for(i = 0; i < arr_val.length; ++i) for(i = 0; i < arr_val.length; ++i)
{ {
arr_y_points[i] = rect.y + vert_interval_height*(arr_val[i] - arr_val[0]); arr_y_points[i] = x_ax.yPos + vert_interval_height*(arr_val[i] - crosses_x);
} }
x_ax.labels.y = x_ax.yPos + vert_interval_height*(arr_val[arr_val.length-1] - crosses_x);
break; break;
} }
case TICK_LABEL_POSITION_LOW: case TICK_LABEL_POSITION_LOW:
{ {
top_height = Math.max(x_ax.labels.extY, first_vert_label_half_height);
bottom_align_labels = false; bottom_align_labels = false;
x_ax.labels.y = rect.y; vert_interval_height = (rect.h - top_height - last_vert_label_half_height)/(arr_val[arr_val.length-1] - arr_val[0]);
vert_interval_height = (rect.h - x_ax.labels.extY)/(arr_val[arr_val.length-1] - arr_val[0]); x_ax.yPos = rect.y + top_height + (crosses_x- arr_val[0])*vert_interval_height;
x_ax.yPos = rect.y + x_ax.labels.extY + (crosses_x- arr_val[0])*vert_interval_height;
for(i = 0; i < arr_val.length; ++i) for(i = 0; i < arr_val.length; ++i)
{ {
arr_y_points[i] = rect.y + x_ax.labels.extY + vert_interval_height*(arr_val[i] - arr_val[0]); arr_y_points[i] = rect.y + top_height + vert_interval_height*(arr_val[i] - arr_val[0]);
} }
x_ax.labels.y = rect.y + top_height - x_ax.labels.extY;
break; break;
} }
case TICK_LABEL_POSITION_NONE: case TICK_LABEL_POSITION_NONE:
{ {
x_ax.labels = null; x_ax.labels = null;
x_ax.yPos = rect.y + (crosses_x-arr_val[0])*vert_interval_height; vert_interval_height = (rect.h - first_vert_label_half_height - last_vert_label_half_height)/(arr_val[arr_val.length-1] - arr_val[0]);
x_ax.yPos = rect.y + first_vert_label_half_height + (crosses_x-arr_val[0])*vert_interval_height;
for(i = 0; i < arr_val.length;++i) for(i = 0; i < arr_val.length;++i)
{ {
arr_y_points[i] = rect.y + vert_interval_height*(arr_val[i] - arr_val[0]); arr_y_points[i] = rect.y + first_vert_label_half_height + vert_interval_height*(arr_val[i] - arr_val[0]);
} }
break; break;
} }
...@@ -2311,28 +2339,32 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -2311,28 +2339,32 @@ CChartSpace.prototype.recalculateAxis = function()
{//TICK_LABEL_POSITION_NEXT_TO рядом с осью {//TICK_LABEL_POSITION_NEXT_TO рядом с осью
if(x_ax.crosses === CROSSES_MAX) if(x_ax.crosses === CROSSES_MAX)
{ {
x_ax.labels.y = rect.y + rect.extY - x_ax.labels.extY; bottom_gap = Math.max(x_ax.labels.extY, last_vert_label_half_height);
vert_interval_height = (rect.h - x_ax.labels.extY)/(arr_val[arr_val.length-1] - arr_val[0]);
x_ax.yPos = rect.y + (crosses_x-arr_val[0])*vert_interval_height;
vert_interval_height = (rect.h - bottom_gap - first_vert_label_half_height)/(arr_val[arr_val.length-1] - arr_val[0]);
x_ax.yPos = rect.y + first_vert_label_half_height + (crosses_x-arr_val[0])*vert_interval_height;
for(i = 0; i < arr_val.length; ++i) for(i = 0; i < arr_val.length; ++i)
{ {
arr_y_points[i] = rect.y + vert_interval_height*(arr_val[i] - arr_val[0]); arr_y_points[i] = rect.y + first_vert_label_half_height+ vert_interval_height*(arr_val[i] - arr_val[0]);
} }
x_ax.labels.y = rect.y + rect.extY - bottom_gap;
} }
else else
{ {
bottom_align_labels = false; bottom_align_labels = false;
if((crosses_x-arr_val[0])*vert_interval_height < x_ax.labels.extY)
vert_interval_height = (rect.h - last_vert_label_half_height - first_vert_label_half_height)/(arr_val[arr_val.length-1] - arr_val[0]);
if(first_vert_label_half_height + (crosses_x-arr_val[0])*vert_interval_height < x_ax.labels.extY)
{ {
x_ax.labels.y = rect.y;
x_ax.yPos = rect.y + x_ax.labels.extY; x_ax.yPos = rect.y + x_ax.labels.extY;
vert_interval_height = (rect.h-x_ax.labels.extY)/(arr_val[arr_val.length-1] - crosses_x); vert_interval_height = (rect.h-x_ax.labels.extY - last_vert_label_half_height)/(arr_val[arr_val.length-1] - crosses_x);
} }
else else
{ {
x_ax.labels.y = rect.y + vert_interval_height*(crosses_x - arr_val[0]) - x_ax.labels.extY; x_ax.yPos = rect.y + rect.h - vert_interval_height*(arr_val[arr_val.length-1] - crosses_x) - last_vert_label_half_height;
x_ax.yPos = rect.y + vert_interval_height*(crosses_x - arr_val[0]);
} }
x_ax.labels.y = x_ax.yPos - x_ax.labels.extY;
for(i = 0; i < arr_val.length; ++i) for(i = 0; i < arr_val.length; ++i)
{ {
arr_y_points[i] = x_ax.yPos + vert_interval_height*(arr_val[i] - crosses_x); arr_y_points[i] = x_ax.yPos + vert_interval_height*(arr_val[i] - crosses_x);
...@@ -2343,7 +2375,6 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -2343,7 +2375,6 @@ CChartSpace.prototype.recalculateAxis = function()
} }
} }
if(isRealObject(y_ax.scaling) && isRealNumber(y_ax.scaling.logBase) && y_ax.scaling.logBase >= 2 && y_ax.scaling.logBase <= 1000) if(isRealObject(y_ax.scaling) && isRealNumber(y_ax.scaling.logBase) && y_ax.scaling.logBase >= 2 && y_ax.scaling.logBase <= 1000)
{ {
for(i = 0; i < arr_val.length; ++i) for(i = 0; i < arr_val.length; ++i)
...@@ -2448,20 +2479,20 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -2448,20 +2479,20 @@ CChartSpace.prototype.recalculateAxis = function()
if(y_ax.labels) if(y_ax.labels)
{ {
if(y_ax_orientation === ORIENTATION_MIN_MAX) if(y_ax_orientation === ORIENTATION_MIN_MAX)
{
var t = y_ax.labels.arrLabels[0].tx.rich.content.Get_SummaryHeight()/2;
y_ax.labels.y = arr_y_points[0] - t;
y_ax.labels.extY = arr_y_points[arr_y_points.length-1] - arr_y_points[0] + t + y_ax.labels.arrLabels[y_ax.labels.arrLabels.length-1].tx.rich.content.Get_SummaryHeight()/2;
}
else
{ {
var t = y_ax.labels.arrLabels[y_ax.labels.arrLabels.length-1].tx.rich.content.Get_SummaryHeight()/2; var t = y_ax.labels.arrLabels[y_ax.labels.arrLabels.length-1].tx.rich.content.Get_SummaryHeight()/2;
y_ax.labels.y = arr_y_points[arr_y_points.length-1] - t; y_ax.labels.y = arr_y_points[arr_y_points.length-1] - t;
y_ax.labels.extY = arr_y_points[0] - arr_y_points[arr_y_points.length-1] + t + y_ax.labels.arrLabels[0].tx.rich.content.Get_SummaryHeight()/2; y_ax.labels.extY = arr_y_points[0] - arr_y_points[arr_y_points.length-1] + t + y_ax.labels.arrLabels[0].tx.rich.content.Get_SummaryHeight()/2;
} }
else
{
var t = y_ax.labels.arrLabels[0].tx.rich.content.Get_SummaryHeight()/2;
y_ax.labels.y = arr_y_points[0] - t;
y_ax.labels.extY = arr_y_points[arr_y_points.length-1] - arr_y_points[0] + t + y_ax.labels.arrLabels[y_ax.labels.arrLabels.length-1].tx.rich.content.Get_SummaryHeight()/2;
}
} }
if(x_ax.labels.extX) if(x_ax.labels)
{ {
if(x_ax_orientation === ORIENTATION_MIN_MAX) if(x_ax_orientation === ORIENTATION_MIN_MAX)
{ {
...@@ -2477,8 +2508,6 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -2477,8 +2508,6 @@ CChartSpace.prototype.recalculateAxis = function()
} }
} }
/*new recalc*/ /*new recalc*/
} }
} }
else if(chart_type === historyitem_type_RadarChart) else if(chart_type === historyitem_type_RadarChart)
...@@ -2827,7 +2856,6 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -2827,7 +2856,6 @@ CChartSpace.prototype.recalculateAxis = function()
arr_val[i] = Math.log(arr_val[i])/Math.log(val_ax.scaling.logBase); arr_val[i] = Math.log(arr_val[i])/Math.log(val_ax.scaling.logBase);
} }
} }
val_ax.labels = new CValAxisLabels(this); val_ax.labels = new CValAxisLabels(this);
var max_width = 0; var max_width = 0;
val_ax.yPoints = []; val_ax.yPoints = [];
...@@ -3442,71 +3470,64 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -3442,71 +3470,64 @@ CChartSpace.prototype.recalculateAxis = function()
var hor_labels_pos = cat_ax.tickLblPos; var hor_labels_pos = cat_ax.tickLblPos;
var arr_val_labels_points = [];//массив середин подписей вертикальной оси; i-й элемент - y-координата центра подписи i-огто значения; var arr_val_labels_points = [];//массив середин подписей вертикальной оси; i-й элемент - y-координата центра подписи i-огто значения;
var unit_height = rect.h/(arr_val[arr_val.length - 1] - arr_val[0]);//высота единицы измерения на вертикальной оси var top_val_axis_gap, bottom_val_axis_gap;
var first_val_axis_label_half_height = (val_ax.bDelete || val_ax.tickLblPos ===TICK_LABEL_POSITION_NONE) ? 0 :val_ax.labels.arrLabels[0].tx.rich.content.Get_SummaryHeight()/2;
var last_val_axis_label_half_height = (val_ax.bDelete || val_ax.tickLblPos ===TICK_LABEL_POSITION_NONE) ? 0 : val_ax.labels.arrLabels[val_ax.labels.arrLabels.length-1].tx.rich.content.Get_SummaryHeight()/2;
var unit_height = (rect.h - first_val_axis_label_half_height - last_val_axis_label_half_height)/(arr_val[arr_val.length - 1] - arr_val[0]);//высота единицы измерения на вертикальной оси
if(val_ax_orientation === ORIENTATION_MIN_MAX) if(val_ax_orientation === ORIENTATION_MIN_MAX)
{ {
if(hor_labels_pos === TICK_LABEL_POSITION_NEXT_TO || !isRealNumber(hor_labels_pos)) if(hor_labels_pos === TICK_LABEL_POSITION_NEXT_TO || !isRealNumber(hor_labels_pos))
{ {
if(cat_ax.crosses === CROSSES_MAX) if(cat_ax.crosses === CROSSES_MAX)
{ {
cat_labels_align_bottom = false;
top_val_axis_gap = Math.max(last_val_axis_label_half_height, cat_ax.labels.extY);
unit_height = (rect.h - top_val_axis_gap - first_val_axis_label_half_height)/(arr_val[arr_val.length - 1] - arr_val[0]);
cat_labels_align_bottom = false;//в данном случае подписи будут выравниваться по верхнему краю блока с подписями cat_labels_align_bottom = false;//в данном случае подписи будут выравниваться по верхнему краю блока с подписями
cat_ax.labels.y = rect.y; cat_ax.posY = rect.y + rect.h - first_val_axis_label_half_height - (crosses_val_ax - arr_val[0])*unit_height;
unit_height = (rect.h - cat_ax.labels.extY)/(arr_val[arr_val.length - 1] - arr_val[0]); cat_ax.labels.y = cat_ax.posY - cat_ax.labels.extY;
for(i = 0; i < arr_val.length; ++i)
arr_val_labels_points[i] = rect.y + rect.h - (arr_val[i] - arr_val[0])*unit_height;
cat_ax.posY = cat_ax.labels.y + cat_ax.labels.extY;
} }
else else
{ {
var bottom_points_height = (crosses_val_ax - arr_val[0])*unit_height;//высота области под горизонтальной осью var bottom_points_height = first_val_axis_label_half_height + (crosses_val_ax - arr_val[0])*unit_height;//высота области под горизонтальной осью
if(bottom_points_height < cat_ax.labels.extY) if(bottom_points_height < cat_ax.labels.extY)
{ {
var top_points_height = rect.h - cat_ax.labels.extY; unit_height = (rect.h - last_val_axis_label_half_height - cat_ax.labels.extY)/(arr_val[arr_val.length-1] - crosses_val_ax);
cat_ax.labels.y = rect.y + rect.h - cat_ax.labels.extY;
unit_height = (cat_ax.labels.y - rect.y)/(arr_val[arr_val.length-1]-crosses_val_ax);
var bottom_point = rect.y + unit_height*(arr_val[arr_val.length - 1] - arr_val[0]);
for(i = 0; i < arr_val.length; ++i)
arr_val_labels_points[i] = bottom_point - (arr_val[i] - arr_val[0])*unit_height;
}
else
{
cat_ax.labels.y = rect.y + (arr_val[arr_val.length-1] - crosses_val_ax)*unit_height;
for(i = 0; i < arr_val.length; ++i)
arr_val_labels_points[i] = rect.y + rect.h - (arr_val[i] - arr_val[0])*unit_height;
} }
cat_ax.posY = cat_ax.labels.y; cat_ax.posY = rect.y + last_val_axis_label_half_height + (arr_val[arr_val.length-1] - crosses_val_ax)*unit_height;
cat_ax.labels.y = cat_ax.posY;
} }
for(i = 0; i < arr_val.length; ++i)
arr_val_labels_points[i] = cat_ax.posY - (arr_val[i] - crosses_val_ax)*unit_height;
} }
else if(hor_labels_pos === TICK_LABEL_POSITION_LOW) else if(hor_labels_pos === TICK_LABEL_POSITION_LOW)
{ {
cat_ax.labels.y = rect.y + rect.h - cat_ax.labels.extY; bottom_val_axis_gap = Math.max(cat_ax.labels.extY, first_val_axis_label_half_height);
unit_height = (rect.h - cat_ax.labels.extY)/(arr_val[arr_val.length - 1] - arr_val[0]); unit_height = (rect.h - bottom_val_axis_gap - last_val_axis_label_half_height)/(arr_val[arr_val.length - 1] - arr_val[0]);
cat_ax.posY = rect.y + last_val_axis_label_half_height + (arr_val[arr_val.length-1] - crosses_val_ax)*unit_height;
var bottom_point = rect.y + unit_height*(arr_val[arr_val.length - 1] - arr_val[0]); cat_ax.labels.y = rect.y + rect.h - bottom_val_axis_gap;
for(i = 0; i < arr_val.length; ++i) for(i = 0; i < arr_val.length; ++i)
arr_val_labels_points[i] = bottom_point - (arr_val[i] - arr_val[0])*unit_height; arr_val_labels_points[i] = cat_ax.posY - (arr_val[i] - crosses_val_ax)*unit_height;
cat_ax.posY = cat_ax.labels.y - (crosses_val_ax - arr_val[0])*unit_height;
} }
else if(hor_labels_pos === TICK_LABEL_POSITION_HIGH) else if(hor_labels_pos === TICK_LABEL_POSITION_HIGH)
{ {
cat_labels_align_bottom = false; top_val_axis_gap = Math.max(last_val_axis_label_half_height, cat_ax.labels.extY);
cat_ax.labels.y = rect.y; unit_height = (rect.h - top_val_axis_gap - first_val_axis_label_half_height)/(arr_val[arr_val.length - 1] - arr_val[0]);
unit_height = (rect.h - cat_ax.labels.extY)/(arr_val[arr_val.length - 1] - arr_val[0]); cat_labels_align_bottom = false;//в данном случае подписи будут выравниваться по верхнему краю блока с подписями
cat_ax.posY = rect.y + rect.h - first_val_axis_label_half_height - (crosses_val_ax - arr_val[0])*unit_height;
cat_ax.labels.y = rect.y + top_val_axis_gap - cat_ax.labels.extY;
for(i = 0; i < arr_val.length; ++i) for(i = 0; i < arr_val.length; ++i)
arr_val_labels_points[i] = rect.y + rect.h - (arr_val[i] - arr_val[0])*unit_height; arr_val_labels_points[i] = cat_ax.posY - (arr_val[i] - crosses_val_ax)*unit_height;
cat_ax.posY = rect.y + rect.h + cat_ax.labels.extY - (crosses_val_ax - arr_val[0])*unit_height;
} }
else else
{ {
//подписей осей нет //подписей осей нет
cat_ax.labels = null; cat_ax.labels = null;
for(i = 0; i < arr_val.length; ++i) for(i = 0; i < arr_val.length; ++i)
arr_val_labels_points[i] = rect.y + rect.h - (arr_val[i] - arr_val[0])*unit_height; arr_val_labels_points[i] = rect.y + rect.h - first_val_axis_label_half_height - (arr_val[i] - arr_val[0])*unit_height;
cat_ax.posY = rect.y + rect.h - (crosses_val_ax - arr_val[0])*unit_height; cat_ax.posY = rect.y + rect.h - first_val_axis_label_half_height - (crosses_val_ax - arr_val[0])*unit_height;
} }
} }
else else
...@@ -3515,58 +3536,53 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -3515,58 +3536,53 @@ CChartSpace.prototype.recalculateAxis = function()
{ {
if(cat_ax.crosses === CROSSES_MAX) if(cat_ax.crosses === CROSSES_MAX)
{ {
cat_ax.labels.y = rect.y + rect.h - cat_ax.labels.extY; bottom_val_axis_gap = Math.max(cat_ax.labels.extY, last_val_axis_label_half_height);
unit_height = (rect.h - cat_ax.labels.extY)/(arr_val[arr_val.length - 1] - arr_val[0]); unit_height = (rect.h - bottom_val_axis_gap - first_val_axis_label_half_height)/(arr_val[arr_val.length - 1] - arr_val[0]);
cat_ax.posY = rect.y + first_val_axis_label_half_height + (crosses_val_ax - arr_val[0])*unit_height;
for(i = 0; i < arr_val.length; ++i) cat_ax.labels.y = rect.y + rect.h - bottom_val_axis_gap;
arr_val_labels_points[i] = rect.y + (arr_val[i] - arr_val[0])*unit_height;
} }
else else
{ {
cat_labels_align_bottom = false; cat_labels_align_bottom = false;
var top_points_height = (crosses_val_ax - arr_val[0])*unit_height; var top_points_height = first_val_axis_label_half_height + (crosses_val_ax - arr_val[0])*unit_height;
if(top_points_height < cat_ax.labels.extY) if(top_points_height < cat_ax.labels.extY)
{ {
cat_ax.labels.y = rect.y; unit_height = (rect.h - cat_ax.labels.extY - last_val_axis_label_half_height)/(arr_val[arr_val.length-1] - crosses_val_ax);
var bottom_points_height = rect.h - cat_ax.labels.extY;
unit_height = bottom_points_height/(arr_val[arr_val.length - 1] - crosses_val_ax);
var top_point = rect.y + rect.h - unit_height*(arr_val[arr_val.length-1] - arr_val[0]);
for(i = 0; i < arr_val.length; ++i)
arr_val_labels_points[i] = top_point + (arr_val[i] - arr_val[0])*unit_height;
}
else
{
cat_ax.labels.y = rect.y + unit_height*(crosses_val_ax - arr_val[0]) - cat_ax.labels.extY;
for(i = 0; i < arr_val.length; ++i)
arr_val_labels_points[i] = rect.y + (arr_val[i] - arr_val[0])*unit_height;
} }
cat_ax.posY = rect.y + rect.h - last_val_axis_label_half_height - (arr_val[arr_val.length-1] - crosses_val_ax)*unit_height;
cat_ax.labels.y = cat_ax.posY - cat_ax.labels.extY;
} }
for(i = 0; i < arr_val.length; ++i)
arr_val_labels_points[i] = cat_ax.posY + (arr_val[i] - crosses_val_ax)*unit_height;
} }
else if(hor_labels_pos === TICK_LABEL_POSITION_LOW) else if(hor_labels_pos === TICK_LABEL_POSITION_LOW)
{ {
cat_labels_align_bottom = false; cat_labels_align_bottom = false;
cat_ax.labels.y = rect.y; top_val_axis_gap = Math.max(first_val_axis_label_half_height, cat_ax.labels.extY);
unit_height = (rect.h - cat_ax.labels.extY)/(arr_val[arr_val.length-1] - arr_val[0]); unit_height = (rect.h - top_val_axis_gap - last_val_axis_label_half_height)/(arr_val[arr_val.length-1] - arr_val[0]);
var top_point = rect.y + rect.h - unit_height*(arr_val[arr_val.length-1] - arr_val[0]); cat_ax.yPos = rect.y + rect.h - last_val_axis_label_half_height - (arr_val[arr_val.length-1] - crosses_val_ax)*unit_height;
for(i = 0; i < arr_val.length; ++i)
arr_val_labels_points[i] = top_point + (arr_val[i] - arr_val[0])*unit_height;
for(i = 0; i < arr_val.length; ++i)
arr_val_labels_points[i] = cat_ax.posY + (arr_val[i] - crosses_val_ax)*unit_height;
cat_ax.labels.y = cat_ax.posY + (arr_val[0] - crosses_val_ax)*unit_height - cat_ax.labels.extY;
} }
else if(hor_labels_pos === TICK_LABEL_POSITION_HIGH) else if(hor_labels_pos === TICK_LABEL_POSITION_HIGH)
{ {
cat_ax.labels.y = rect.y + rect.h - cat_ax.labels.extY;
unit_height = (rect.h - cat_ax.labels.extY)/(arr_val[arr_val.length-1] - arr_val[0]); bottom_val_axis_gap = Math.max(cat_ax.labels.extY, last_val_axis_label_half_height);
unit_height = (rect.h - bottom_val_axis_gap - first_val_axis_label_half_height)/(arr_val[arr_val.length-1] - arr_val[0]);
cat_ax.yPos = rect.y + first_val_axis_label_half_height + (crosses_val_ax - arr_val[0])*unit_height;
for(i = 0; i < arr_val.length; ++i) for(i = 0; i < arr_val.length; ++i)
arr_val_labels_points[i] = rect.y + (arr_val[i] - arr_val[0])*unit_height; arr_val_labels_points[i] = cat_ax.posY + (arr_val[i] - crosses_val_ax)*unit_height;
cat_ax.labels.y = rect.y + rect.h - bottom_val_axis_gap;
} }
else else
{//подписей осей нет {//подписей осей нет
cat_ax.labels = null; cat_ax.labels = null;
unit_height = (rect.h - last_val_axis_label_half_height - first_val_axis_label_half_height)/(arr_val[arr_val.length-1] - arr_val[0]);
for(i = 0; i < arr_val.length; ++i) for(i = 0; i < arr_val.length; ++i)
arr_val_labels_points[i] = rect.y + (arr_val[i] - arr_val[0])*unit_height; arr_val_labels_points[i] = rect.y + first_val_axis_label_half_height + (arr_val[i] - arr_val[0])*unit_height;
} }
} }
//запишем в оси необходимую информацию для отрисовщика plotArea и выставим окончательные позиции для подписей //запишем в оси необходимую информацию для отрисовщика plotArea и выставим окончательные позиции для подписей
...@@ -3612,7 +3628,6 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -3612,7 +3628,6 @@ CChartSpace.prototype.recalculateAxis = function()
{ {
val_ax.yPoints[i] = {val:arr_val[i], pos: arr_val_labels_points[i]}; val_ax.yPoints[i] = {val:arr_val[i], pos: arr_val_labels_points[i]};
} }
cat_ax.xPoints = []; cat_ax.xPoints = [];
for(i = 0; i <arr_cat_labels_points.length; ++i) for(i = 0; i <arr_cat_labels_points.length; ++i)
{ {
...@@ -4212,8 +4227,14 @@ CChartSpace.prototype.recalculateAxis = function() ...@@ -4212,8 +4227,14 @@ CChartSpace.prototype.recalculateAxis = function()
var val_ax_orientation = val_ax.scaling && isRealNumber(val_ax.scaling.orientation) ? val_ax.scaling.orientation : ORIENTATION_MIN_MAX; var val_ax_orientation = val_ax.scaling && isRealNumber(val_ax.scaling.orientation) ? val_ax.scaling.orientation : ORIENTATION_MIN_MAX;
var hor_labels_pos = cat_ax.tickLblPos; var hor_labels_pos = cat_ax.tickLblPos;
var first_val_lbl_half_width = (val_ax.tickLblPos === TICK_LABEL_POSITION_NONE || val_ax.bDelete) ? 0 : val_ax.labels.arrLabels[0].tx.rich.content.XLimit/2;
var last_val_lbl_half_width = (val_ax.tickLblPos === TICK_LABEL_POSITION_NONE || val_ax.bDelete) ? 0 : val_ax.labels.arrLabels[val_ax.labels.arrLabels.length-1].tx.rich.content.XLimit/2;
var arr_val_labels_points = [];//массив середин подписей вертикальной оси; i-й элемент - x-координата центра подписи i-огто значения; var arr_val_labels_points = [];//массив середин подписей вертикальной оси; i-й элемент - x-координата центра подписи i-огто значения;
var unit_width = rect.w/(arr_val[arr_val.length - 1] - arr_val[0]);//ширина единицы измерения на вертикальной оси var unit_width = (rect.w )/(arr_val[arr_val.length - 1] - arr_val[0]);//ширина единицы измерения на вертикальной оси
if(val_ax_orientation === ORIENTATION_MIN_MAX) if(val_ax_orientation === ORIENTATION_MIN_MAX)
{ {
if(hor_labels_pos === TICK_LABEL_POSITION_NEXT_TO || !isRealNumber(hor_labels_pos)) if(hor_labels_pos === TICK_LABEL_POSITION_NEXT_TO || !isRealNumber(hor_labels_pos))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment