Browse Source

[measures] offsets

tags/1.2.0
Prateeksha Singh 7 years ago
parent
commit
91e81926b6
13 changed files with 44 additions and 29 deletions
  1. +15
    -8
      dist/frappe-charts.esm.js
  2. +1
    -1
      dist/frappe-charts.min.cjs.js
  3. +1
    -1
      dist/frappe-charts.min.esm.js
  4. +1
    -1
      dist/frappe-charts.min.iife.js
  5. +1
    -1
      dist/frappe-charts.min.iife.js.map
  6. +1
    -1
      docs/assets/js/frappe-charts.min.js
  7. +1
    -1
      docs/assets/js/frappe-charts.min.js.map
  8. +2
    -2
      docs/assets/js/index.js
  9. +1
    -1
      docs/assets/js/index.min.js
  10. +1
    -1
      docs/assets/js/index.min.js.map
  11. +5
    -5
      src/js/charts/AxisChart.js
  12. +6
    -6
      src/js/charts/BaseChart.js
  13. +8
    -0
      src/js/utils/constants.js

+ 15
- 8
dist/frappe-charts.esm.js View File

@@ -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
&& relY > m.titleHeight + m.margins.top + m.paddings.top) {
if(relY < this.height + getTopOffset(m)
&& 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,


+ 1
- 1
dist/frappe-charts.min.cjs.js
File diff suppressed because it is too large
View File


+ 1
- 1
dist/frappe-charts.min.esm.js
File diff suppressed because it is too large
View File


+ 1
- 1
dist/frappe-charts.min.iife.js
File diff suppressed because it is too large
View File


+ 1
- 1
dist/frappe-charts.min.iife.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
docs/assets/js/frappe-charts.min.js
File diff suppressed because it is too large
View File


+ 1
- 1
docs/assets/js/frappe-charts.min.js.map
File diff suppressed because it is too large
View File


+ 2
- 2
docs/assets/js/index.js View File

@@ -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


+ 1
- 1
docs/assets/js/index.min.js View File

@@ -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);




+ 1
- 1
docs/assets/js/index.min.js.map
File diff suppressed because it is too large
View File


+ 5
- 5
src/js/charts/AxisChart.js View File

@@ -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
&& relY > m.titleHeight + m.margins.top + m.paddings.top) {
if(relY < this.height + getTopOffset(m)
&& 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,


+ 6
- 6
src/js/charts/BaseChart.js View File

@@ -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,
DEFAULT_COLORS} from '../utils/constants';
import { BASE_MEASURES, getExtraHeight, getExtraWidth, getTopOffset, getLeftOffset,
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) {


+ 8
- 0
src/js/utils/constants.js View File

@@ -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…
Cancel
Save