import * as _ from 'lodash' ; function setGuideLine ( chart , item ) { if ( item . quickType === 'parallel' ) { const data = item . data ; chart . guide ( ) . line ( { start : [ 'min' , data ] , end : [ 'max' , data ] , ... item } ) ; } else if ( item . quickType === 'normal' ) { const data = item . data ; chart . guide ( ) . line ( { start : [ data , 'min' ] , end : [ data , 'max' ] , ... item } ) ; } else { chart . guide ( ) . line ( item ) ; } } function setGuideArc ( chart , item ) { if ( item . quickType === 'parallel' ) { const data = item . data ; chart . guide ( ) . arc ( { start : [ 'min' , data ] , end : [ 'max' , data ] , ... item } ) ; chart . guide ( ) . arc ( { start : [ 'max' , data ] , end : [ 'min' , data ] , ... item } ) ; } else if ( item . quickType === 'normal' ) { const data = item . data ; chart . guide ( ) . line ( { start : [ data , 'min' ] , end : [ data , 'max' ] , ... item } ) ; } else { chart . guide ( ) . arc ( item ) ; } } export const process = ( chart , config ) => { const cGuide = _ . cloneDeep ( config . guide ) ; const isArr = Array . isArray ( cGuide ) ; if ( _ . isNil ( cGuide ) || _ . isEmpty ( cGuide ) ) { return ; } const arrGuide = isArr ? cGuide : [ cGuide ] ; arrGuide . forEach ( ( res ) => { if ( res . type === 'line' ) { setGuideLine ( chart , res ) ; } else if ( res . type === 'rect' ) { chart . guide ( ) . rect ( res ) ; } else if ( res . type === 'arc' ) { setGuideArc ( chart , res ) ; } else if ( res . type === 'text' ) { chart . guide ( ) . text ( res ) ; } else if ( res . type === 'tag' ) { chart . guide ( ) . tag ( res ) ; } else if ( res . type === 'html' ) { chart . guide ( ) . html ( res ) ; } } ) ; return chart ; } ;