1
1
import { getNumberIfValid , isValidNumber } from "@/utils" ;
2
2
3
- export const lineModeParser = ( options ) => {
4
- const lineModeConfig = options . lineMode . trim ( ) . split ( " " ) ;
5
- const mode = options . multiple ? "multiple" : lineModeConfig [ 0 ] ;
3
+ export const lineModeParser = ( lineMode , multiple ) => {
4
+ const lineModeConfig = lineMode . trim ( ) . split ( " " ) ;
5
+ const mode = multiple ? "multiple" : lineModeConfig [ 0 ] ;
6
6
return {
7
7
mode,
8
8
offset : getNumberIfValid ( lineModeConfig [ 1 ] ) || 0 ,
9
9
} ;
10
10
} ;
11
11
12
- const animationParser = ( animation ) => {
12
+ export const animationParser = ( animation ) => {
13
13
const animationConfig = animation . trim ( ) . split ( " " ) ;
14
14
return {
15
15
type : animationConfig [ 0 ] ,
@@ -18,7 +18,7 @@ const animationParser = (animation) => {
18
18
} ;
19
19
} ;
20
20
21
- const dashParser = ( dash ) => {
21
+ export const dashParser = ( dash ) => {
22
22
const dashConfig = dash . trim ( ) . split ( " " ) ;
23
23
const isStrict = dashConfig [ 0 ] === "strict" ;
24
24
if ( ! isStrict ) {
@@ -30,7 +30,7 @@ const dashParser = (dash) => {
30
30
} ;
31
31
} ;
32
32
33
- export const dotParser = ( dot ) => {
33
+ export const dotParser = ( dot , circleSize ) => {
34
34
let dotSize = 0 ;
35
35
let dotColor = "white" ;
36
36
let styles = { } ;
@@ -44,38 +44,34 @@ export const dotParser = (dot) => {
44
44
}
45
45
return {
46
46
...styles ,
47
- size : dotSize ,
47
+ size : calcThickness ( dotSize , circleSize ) ,
48
48
color : dotColor ,
49
49
} ;
50
50
} ;
51
51
52
- export const calcThickness = ( thickness , size ) => {
52
+ export const calcThickness = ( thickness , circleSize ) => {
53
53
const value = parseFloat ( thickness ) ;
54
- return thickness . toString ( ) . includes ( "%" ) ? ( value * size ) / 100 : value ;
54
+ return thickness . toString ( ) . includes ( "%" ) ? ( value * circleSize ) / 100 : value ;
55
55
} ;
56
56
57
- const parseLinePosition = ( linePosition ) => {
57
+ export const linePositionParser = ( linePosition ) => {
58
58
const [ position , offset ] = linePosition . toString ( ) . split ( " " ) ;
59
59
return {
60
60
position,
61
- offset : offset || 0 ,
61
+ offset : parseFloat ( offset ) || 0 ,
62
62
} ;
63
63
} ;
64
64
65
- export const parseOptions = ( options ) => {
66
- const dot = dotParser ( options . dot ) ;
67
- const globalDot = dotParser ( options . globalDot ) ;
68
- return {
69
- ...options ,
70
- thickness : calcThickness ( options . thickness , options . size ) ,
71
- emptyThickness : calcThickness ( options . emptyThickness , options . size ) ,
72
- globalThickness : calcThickness ( options . globalThickness , options . size ) ,
73
- dot : { ...dot , size : calcThickness ( dot . size , options . size ) } ,
74
- globalDot : { ...globalDot , size : calcThickness ( globalDot . size , options . size ) } ,
75
- dash : dashParser ( options . dash ) ,
76
- lineMode : lineModeParser ( options ) ,
77
- linePosition : parseLinePosition ( options . linePosition ) ,
78
- emptyLinePosition : parseLinePosition ( options . emptyLinePosition ) ,
79
- animation : animationParser ( options . animation ) ,
80
- } ;
81
- } ;
65
+ export const parseOptions = ( options ) => ( {
66
+ ...options ,
67
+ thickness : calcThickness ( options . thickness , options . size ) ,
68
+ emptyThickness : calcThickness ( options . emptyThickness , options . size ) ,
69
+ globalThickness : calcThickness ( options . globalThickness , options . size ) ,
70
+ dot : dotParser ( options . dot , options . size ) ,
71
+ globalDot : dotParser ( options . globalDot , options . size ) ,
72
+ dash : dashParser ( options . dash ) ,
73
+ lineMode : lineModeParser ( options . lineMode , options . multiple ) ,
74
+ linePosition : linePositionParser ( options . linePosition ) ,
75
+ emptyLinePosition : linePositionParser ( options . emptyLinePosition ) ,
76
+ animation : animationParser ( options . animation ) ,
77
+ } ) ;
0 commit comments