Add interpolateToCurve util method

This commit is contained in:
Tyler Long 2018-03-09 13:33:35 +08:00
parent c251270633
commit 9c101eb8af
2 changed files with 15 additions and 8 deletions

View File

@ -4,6 +4,7 @@ import * as d3 from 'd3'
import db from './gitGraphAst'
import gitGraphParser from './parser/gitGraph'
import { logger } from '../../logger'
import { interpolateToCurve } from '../../utils'
let allCommitsDict = {}
let branchNum
@ -52,10 +53,7 @@ function svgCreateDefs (svg) {
}
function svgDrawLine (svg, points, colorIdx, interpolate) {
let curve = d3.curveBasis
if (interpolate === 'linear') {
curve = d3.curveLinear
}
const curve = interpolateToCurve(interpolate, d3.curveBasis)
const color = config.branchColors[colorIdx % config.branchColors.length]
const lineGen = d3.line()
.x(function (d) {
@ -73,6 +71,7 @@ function svgDrawLine (svg, points, colorIdx, interpolate) {
.style('stroke-width', config.lineStrokeWidth)
.style('fill', 'none')
}
// Pass in the element and its pre-transform coords
function getElementCoords (element, coords) {
coords = coords || element.node().getBBox()

View File

@ -1,4 +1,4 @@
import { logger } from './logger'
import * as d3 from 'd3'
/**
* @function detectType
@ -36,12 +36,10 @@ export const detectType = function (text) {
}
if (text.match(/^\s*classDiagram/)) {
logger.debug('Detected classDiagram syntax')
return 'classDiagram'
}
if (text.match(/^\s*gitGraph/)) {
logger.debug('Detected gitGraph syntax')
return 'gitGraph'
}
return 'graph'
@ -61,7 +59,17 @@ export const isSubstringInArray = function (str, arr) {
return -1
}
const interpolates = {
basis: d3.curveBasis,
linear: d3.curveLinear,
cardinal: d3.curveCardinal
}
export const interpolateToCurve = (interpolate, defaultCurve) => {
return interpolates[interpolate] || defaultCurve
}
export default {
detectType,
isSubstringInArray
isSubstringInArray,
interpolateToCurve
}