[measures] offsets
This commit is contained in:
parent
ea872c10cb
commit
91e81926b6
23
dist/frappe-charts.esm.js
vendored
23
dist/frappe-charts.esm.js
vendored
@ -105,6 +105,14 @@ const BASE_MEASURES = {
|
|||||||
titleFontSize: 12,
|
titleFontSize: 12,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function getTopOffset(m) {
|
||||||
|
return m.titleHeight + m.margins.top + m.paddings.top;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getLeftOffset(m) {
|
||||||
|
return m.margins.left + m.paddings.left;
|
||||||
|
}
|
||||||
|
|
||||||
function getExtraHeight(m) {
|
function getExtraHeight(m) {
|
||||||
let totalExtraHeight = m.margins.top + m.margins.bottom
|
let totalExtraHeight = m.margins.top + m.margins.bottom
|
||||||
+ m.paddings.top + m.paddings.bottom
|
+ m.paddings.top + m.paddings.bottom
|
||||||
@ -1491,17 +1499,17 @@ class BaseChart {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
let top = m.margins.top + m.titleHeight + m.paddings.top;
|
let top = getTopOffset(m);
|
||||||
this.drawArea = makeSVGGroup(
|
this.drawArea = makeSVGGroup(
|
||||||
this.type + '-chart chart-draw-area',
|
this.type + '-chart chart-draw-area',
|
||||||
`translate(${m.margins.left + m.paddings.left}, ${top})`
|
`translate(${getLeftOffset(m)}, ${top})`
|
||||||
);
|
);
|
||||||
|
|
||||||
if(this.config.showLegend) {
|
if(this.config.showLegend) {
|
||||||
top += this.height + m.paddings.bottom;
|
top += this.height + m.paddings.bottom;
|
||||||
this.legendArea = makeSVGGroup(
|
this.legendArea = makeSVGGroup(
|
||||||
'chart-legend',
|
'chart-legend',
|
||||||
`translate(${m.margins.left + m.paddings.left}, ${top})`
|
`translate(${getLeftOffset(m)}, ${top})`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1509,7 +1517,7 @@ class BaseChart {
|
|||||||
this.svg.appendChild(this.drawArea);
|
this.svg.appendChild(this.drawArea);
|
||||||
if(this.config.showLegend) { this.svg.appendChild(this.legendArea); }
|
if(this.config.showLegend) { this.svg.appendChild(this.legendArea); }
|
||||||
|
|
||||||
this.updateTipOffset(m.margins.left + m.paddings.left, m.margins.top + m.paddings.top + m.titleHeight);
|
this.updateTipOffset(getLeftOffset(m), getTopOffset(m));
|
||||||
}
|
}
|
||||||
|
|
||||||
updateTipOffset(x, y) {
|
updateTipOffset(x, y) {
|
||||||
@ -3411,11 +3419,11 @@ class AxisChart extends BaseChart {
|
|||||||
this.container.addEventListener('mousemove', (e) => {
|
this.container.addEventListener('mousemove', (e) => {
|
||||||
let m = this.measures;
|
let m = this.measures;
|
||||||
let o = getOffset(this.container);
|
let o = getOffset(this.container);
|
||||||
let relX = e.pageX - o.left - m.margins.left - m.paddings.left;
|
let relX = e.pageX - o.left - getLeftOffset(m);
|
||||||
let relY = e.pageY - o.top;
|
let relY = e.pageY - o.top;
|
||||||
|
|
||||||
if(relY < this.height + m.titleHeight + m.margins.top + m.paddings.top
|
if(relY < this.height + getTopOffset(m)
|
||||||
&& relY > m.titleHeight + m.margins.top + m.paddings.top) {
|
&& relY > getTopOffset(m)) {
|
||||||
this.mapTooltipXPosition(relX);
|
this.mapTooltipXPosition(relX);
|
||||||
} else {
|
} else {
|
||||||
this.tip.hideTip();
|
this.tip.hideTip();
|
||||||
@ -3429,7 +3437,6 @@ class AxisChart extends BaseChart {
|
|||||||
|
|
||||||
let index = getClosestInArray(relX, s.xAxis.positions, true);
|
let index = getClosestInArray(relX, s.xAxis.positions, true);
|
||||||
|
|
||||||
console.log(relX, s.xAxis.positions[index], s.xAxis.positions, this.tip.offset.x);
|
|
||||||
this.tip.setValues(
|
this.tip.setValues(
|
||||||
s.xAxis.positions[index] + this.tip.offset.x,
|
s.xAxis.positions[index] + this.tip.offset.x,
|
||||||
s.yExtremes[index] + this.tip.offset.y,
|
s.yExtremes[index] + this.tip.offset.y,
|
||||||
|
|||||||
2
dist/frappe-charts.min.cjs.js
vendored
2
dist/frappe-charts.min.cjs.js
vendored
File diff suppressed because one or more lines are too long
2
dist/frappe-charts.min.esm.js
vendored
2
dist/frappe-charts.min.esm.js
vendored
File diff suppressed because one or more lines are too long
2
dist/frappe-charts.min.iife.js
vendored
2
dist/frappe-charts.min.iife.js
vendored
File diff suppressed because one or more lines are too long
2
dist/frappe-charts.min.iife.js.map
vendored
2
dist/frappe-charts.min.iife.js.map
vendored
File diff suppressed because one or more lines are too long
2
docs/assets/js/frappe-charts.min.js
vendored
2
docs/assets/js/frappe-charts.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
|||||||
import { shuffle } from '../../../src/js/utils/helpers';
|
import { shuffle, getRandomBias } from '../../../src/js/utils/helpers';
|
||||||
import { HEATMAP_COLORS_YELLOW, HEATMAP_COLORS_BLUE } from '../../../src/js/utils/constants';
|
import { HEATMAP_COLORS_YELLOW, HEATMAP_COLORS_BLUE } from '../../../src/js/utils/constants';
|
||||||
import { fireballOver25, fireball_2_5, fireball_5_25, lineCompositeData,
|
import { fireballOver25, fireball_2_5, fireball_5_25, lineCompositeData,
|
||||||
barCompositeData, typeData, trendsData, moonData, heatmapData } from './data';
|
barCompositeData, typeData, trendsData, moonData, heatmapData } from './data';
|
||||||
@ -104,7 +104,7 @@ let updateDataAllLabels = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun
|
|||||||
"Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri",
|
"Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri",
|
||||||
"Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon"];
|
"Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon"];
|
||||||
|
|
||||||
let getRandom = () => Math.floor(Math.random() * 75 - 15);
|
let getRandom = () => Math.floor(getRandomBias(-40, 60, 0.8, 1));
|
||||||
let updateDataAllValues = Array.from({length: 30}, getRandom);
|
let updateDataAllValues = Array.from({length: 30}, getRandom);
|
||||||
|
|
||||||
// We're gonna be shuffling this
|
// We're gonna be shuffling this
|
||||||
|
|||||||
2
docs/assets/js/index.min.js
vendored
2
docs/assets/js/index.min.js
vendored
@ -389,7 +389,7 @@ document.querySelector('.export-aggr').addEventListener('click', function () {
|
|||||||
var updateDataAllLabels = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon"];
|
var updateDataAllLabels = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon"];
|
||||||
|
|
||||||
var getRandom = function getRandom() {
|
var getRandom = function getRandom() {
|
||||||
return Math.floor(Math.random() * 75 - 15);
|
return Math.floor(getRandomBias(-40, 60, 0.8, 1));
|
||||||
};
|
};
|
||||||
var updateDataAllValues = Array.from({ length: 30 }, getRandom);
|
var updateDataAllValues = Array.from({ length: 30 }, getRandom);
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -6,7 +6,8 @@ import { getOffset, fire } from '../utils/dom';
|
|||||||
import { calcChartIntervals, getIntervalSize, getValueRange, getZeroIndex, scale, getClosestInArray } from '../utils/intervals';
|
import { calcChartIntervals, getIntervalSize, getValueRange, getZeroIndex, scale, getClosestInArray } from '../utils/intervals';
|
||||||
import { floatTwo } from '../utils/helpers';
|
import { floatTwo } from '../utils/helpers';
|
||||||
import { makeOverlay, updateOverlay, legendBar } from '../utils/draw';
|
import { makeOverlay, updateOverlay, legendBar } from '../utils/draw';
|
||||||
import { MIN_BAR_PERCENT_HEIGHT, BAR_CHART_SPACE_RATIO, LINE_CHART_DOT_SIZE } from '../utils/constants';
|
import { getTopOffset, getLeftOffset, MIN_BAR_PERCENT_HEIGHT, BAR_CHART_SPACE_RATIO,
|
||||||
|
LINE_CHART_DOT_SIZE } from '../utils/constants';
|
||||||
|
|
||||||
export default class AxisChart extends BaseChart {
|
export default class AxisChart extends BaseChart {
|
||||||
constructor(parent, args) {
|
constructor(parent, args) {
|
||||||
@ -367,11 +368,11 @@ export default class AxisChart extends BaseChart {
|
|||||||
this.container.addEventListener('mousemove', (e) => {
|
this.container.addEventListener('mousemove', (e) => {
|
||||||
let m = this.measures;
|
let m = this.measures;
|
||||||
let o = getOffset(this.container);
|
let o = getOffset(this.container);
|
||||||
let relX = e.pageX - o.left - m.margins.left - m.paddings.left;
|
let relX = e.pageX - o.left - getLeftOffset(m);
|
||||||
let relY = e.pageY - o.top;
|
let relY = e.pageY - o.top;
|
||||||
|
|
||||||
if(relY < this.height + m.titleHeight + m.margins.top + m.paddings.top
|
if(relY < this.height + getTopOffset(m)
|
||||||
&& relY > m.titleHeight + m.margins.top + m.paddings.top) {
|
&& relY > getTopOffset(m)) {
|
||||||
this.mapTooltipXPosition(relX);
|
this.mapTooltipXPosition(relX);
|
||||||
} else {
|
} else {
|
||||||
this.tip.hideTip();
|
this.tip.hideTip();
|
||||||
@ -385,7 +386,6 @@ export default class AxisChart extends BaseChart {
|
|||||||
|
|
||||||
let index = getClosestInArray(relX, s.xAxis.positions, true);
|
let index = getClosestInArray(relX, s.xAxis.positions, true);
|
||||||
|
|
||||||
console.log(relX, s.xAxis.positions[index], s.xAxis.positions, this.tip.offset.x);
|
|
||||||
this.tip.setValues(
|
this.tip.setValues(
|
||||||
s.xAxis.positions[index] + this.tip.offset.x,
|
s.xAxis.positions[index] + this.tip.offset.x,
|
||||||
s.yExtremes[index] + this.tip.offset.y,
|
s.yExtremes[index] + this.tip.offset.y,
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
import SvgTip from '../objects/SvgTip';
|
import SvgTip from '../objects/SvgTip';
|
||||||
import { $, isElementInViewport, getElementContentWidth } from '../utils/dom';
|
import { $, isElementInViewport, getElementContentWidth } from '../utils/dom';
|
||||||
import { makeSVGContainer, makeSVGDefs, makeSVGGroup, makeText, yLine } from '../utils/draw';
|
import { makeSVGContainer, makeSVGDefs, makeSVGGroup, makeText, yLine } from '../utils/draw';
|
||||||
import { BASE_MEASURES, getExtraHeight, getExtraWidth, INIT_CHART_UPDATE_TIMEOUT, CHART_POST_ANIMATE_TIMEOUT,
|
import { BASE_MEASURES, getExtraHeight, getExtraWidth, getTopOffset, getLeftOffset,
|
||||||
DEFAULT_COLORS} from '../utils/constants';
|
INIT_CHART_UPDATE_TIMEOUT, CHART_POST_ANIMATE_TIMEOUT, DEFAULT_COLORS} from '../utils/constants';
|
||||||
import { getColor, isValidColor } from '../utils/colors';
|
import { getColor, isValidColor } from '../utils/colors';
|
||||||
import { runSMILAnimation } from '../utils/animation';
|
import { runSMILAnimation } from '../utils/animation';
|
||||||
import { downloadFile, prepareForExport } from '../utils/export';
|
import { downloadFile, prepareForExport } from '../utils/export';
|
||||||
@ -181,17 +181,17 @@ export default class BaseChart {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
let top = m.margins.top + m.titleHeight + m.paddings.top;
|
let top = getTopOffset(m);
|
||||||
this.drawArea = makeSVGGroup(
|
this.drawArea = makeSVGGroup(
|
||||||
this.type + '-chart chart-draw-area',
|
this.type + '-chart chart-draw-area',
|
||||||
`translate(${m.margins.left + m.paddings.left}, ${top})`
|
`translate(${getLeftOffset(m)}, ${top})`
|
||||||
);
|
);
|
||||||
|
|
||||||
if(this.config.showLegend) {
|
if(this.config.showLegend) {
|
||||||
top += this.height + m.paddings.bottom;
|
top += this.height + m.paddings.bottom;
|
||||||
this.legendArea = makeSVGGroup(
|
this.legendArea = makeSVGGroup(
|
||||||
'chart-legend',
|
'chart-legend',
|
||||||
`translate(${m.margins.left + m.paddings.left}, ${top})`
|
`translate(${getLeftOffset(m)}, ${top})`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,7 +199,7 @@ export default class BaseChart {
|
|||||||
this.svg.appendChild(this.drawArea);
|
this.svg.appendChild(this.drawArea);
|
||||||
if(this.config.showLegend) { this.svg.appendChild(this.legendArea); }
|
if(this.config.showLegend) { this.svg.appendChild(this.legendArea); }
|
||||||
|
|
||||||
this.updateTipOffset(m.margins.left + m.paddings.left, m.margins.top + m.paddings.top + m.titleHeight);
|
this.updateTipOffset(getLeftOffset(m), getTopOffset(m));
|
||||||
}
|
}
|
||||||
|
|
||||||
updateTipOffset(x, y) {
|
updateTipOffset(x, y) {
|
||||||
|
|||||||
@ -37,6 +37,14 @@ export const BASE_MEASURES = {
|
|||||||
titleFontSize: 12,
|
titleFontSize: 12,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export function getTopOffset(m) {
|
||||||
|
return m.titleHeight + m.margins.top + m.paddings.top;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getLeftOffset(m) {
|
||||||
|
return m.margins.left + m.paddings.left;
|
||||||
|
}
|
||||||
|
|
||||||
export function getExtraHeight(m) {
|
export function getExtraHeight(m) {
|
||||||
let totalExtraHeight = m.margins.top + m.margins.bottom
|
let totalExtraHeight = m.margins.top + m.margins.bottom
|
||||||
+ m.paddings.top + m.paddings.bottom
|
+ m.paddings.top + m.paddings.bottom
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user