gifted-charts-core 0.0.23 → 0.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/BarChart/Animated2DWithGradient.ts +6 -6
- package/src/BarChart/index.ts +1 -1
- package/src/BarChart/types.ts +5 -5
- package/src/PopulationPyramid/index.ts +69 -41
- package/src/PopulationPyramid/types.ts +58 -5
- package/src/utils/index.ts +44 -3
- package/src/utils/types.ts +5 -0
package/package.json
CHANGED
|
@@ -9,18 +9,18 @@ import {
|
|
|
9
9
|
} from './types'
|
|
10
10
|
import { type ReactNode } from 'react'
|
|
11
11
|
|
|
12
|
-
interface
|
|
12
|
+
interface Animated2dWithGradientPropsType extends BarChartPropsType {
|
|
13
13
|
item: barDataItem
|
|
14
14
|
index: number
|
|
15
15
|
barHeight: number
|
|
16
16
|
selectedIndex: number
|
|
17
|
-
barBackgroundPattern
|
|
18
|
-
barInnerComponent
|
|
17
|
+
barBackgroundPattern?: () => ReactNode
|
|
18
|
+
barInnerComponent?: (
|
|
19
19
|
item?: stackDataItem | barDataItem,
|
|
20
20
|
index?: number
|
|
21
21
|
) => ReactNode
|
|
22
|
-
patternId
|
|
23
|
-
barStyle
|
|
22
|
+
patternId?: string
|
|
23
|
+
barStyle?: object
|
|
24
24
|
intactTopLabel: boolean
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -34,7 +34,7 @@ interface IgetPropsForAnimated2DWithGradientReturnType {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
export const getPropsForAnimated2DWithGradient = (
|
|
37
|
-
props:
|
|
37
|
+
props: Animated2dWithGradientPropsType
|
|
38
38
|
): IgetPropsForAnimated2DWithGradientReturnType => {
|
|
39
39
|
const {
|
|
40
40
|
barBorderWidth,
|
package/src/BarChart/index.ts
CHANGED
package/src/BarChart/types.ts
CHANGED
|
@@ -532,7 +532,7 @@ export interface RenderBarsPropsType {
|
|
|
532
532
|
barBorderTopRightRadius?: number
|
|
533
533
|
barBorderBottomLeftRadius?: number
|
|
534
534
|
barBorderBottomRightRadius?: number
|
|
535
|
-
barInnerComponent?: (item?: barDataItem, index?: number) => ReactNode
|
|
535
|
+
barInnerComponent?: (item?: barDataItem | stackDataItem, index?: number) => ReactNode
|
|
536
536
|
autoShiftLabels?: boolean
|
|
537
537
|
barBackgroundPattern?: () => ReactNode
|
|
538
538
|
patternId?: string
|
|
@@ -592,11 +592,11 @@ export interface animatedBarPropTypes {
|
|
|
592
592
|
}
|
|
593
593
|
|
|
594
594
|
export interface CommonPropsFor2Dand3DbarsType {
|
|
595
|
-
barBackgroundPattern
|
|
596
|
-
barInnerComponent
|
|
597
|
-
patternId
|
|
595
|
+
barBackgroundPattern?: () => ReactNode
|
|
596
|
+
barInnerComponent?: (item?: barDataItem, index?: number) => ReactNode
|
|
597
|
+
patternId?: string
|
|
598
598
|
barWidth: number
|
|
599
|
-
barStyle
|
|
599
|
+
barStyle?: object
|
|
600
600
|
item: barDataItem
|
|
601
601
|
index: number
|
|
602
602
|
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} from '../utils/constants'
|
|
6
|
-
import { type PopulationPyramidPropsType, type RulesProps } from './types'
|
|
1
|
+
import { getStrokeDashArray } from '../utils'
|
|
2
|
+
import { AxesAndRulesDefaults, populationDefaults } from '../utils/constants'
|
|
3
|
+
import { Framework } from '../utils/types'
|
|
4
|
+
import { type RulesPropsType, type TPopulationPyramidPropsType } from './types'
|
|
7
5
|
|
|
8
|
-
export const usePopulationPyramid = (props:
|
|
6
|
+
export const usePopulationPyramid = (props: TPopulationPyramidPropsType) => {
|
|
9
7
|
const {
|
|
8
|
+
framework,
|
|
10
9
|
height = populationDefaults.height,
|
|
11
10
|
width = populationDefaults.width,
|
|
12
11
|
verticalMarginBetweenBars = populationDefaults.verticalMarginBetweenBars,
|
|
@@ -14,24 +13,20 @@ export const usePopulationPyramid = (props: PopulationPyramidPropsType) => {
|
|
|
14
13
|
data,
|
|
15
14
|
hideRules = AxesAndRulesDefaults.hideRules,
|
|
16
15
|
hideYAxisText = AxesAndRulesDefaults.hideYAxisText,
|
|
17
|
-
yAxisColor = AxesAndRulesDefaults.yAxisColor,
|
|
18
16
|
yAxisThickness = AxesAndRulesDefaults.yAxisThickness,
|
|
19
17
|
|
|
20
|
-
xAxisColor = AxesAndRulesDefaults.xAxisColor,
|
|
21
18
|
xAxisThickness = AxesAndRulesDefaults.xAxisThickness,
|
|
22
19
|
xAxisType = AxesAndRulesDefaults.xAxisType,
|
|
23
20
|
xAxisNoOfSections = populationDefaults.xAxisNoOfSections,
|
|
24
21
|
showXAxisIndices = populationDefaults.showXAxisIndices,
|
|
25
22
|
xAxisIndicesWidth = populationDefaults.xAxisIndicesWidth,
|
|
26
23
|
xAxisIndicesHeight = populationDefaults.xAxisIndicesHeight,
|
|
27
|
-
xAxisIndicesColor = populationDefaults.xAxisIndicesColor,
|
|
28
24
|
xAxisIndicesShiftY = 0,
|
|
29
25
|
showXAxisLabelTexts = populationDefaults.showXAxisLabelTexts,
|
|
30
26
|
xAxisLabelFontSize = populationDefaults.defaultFontSize,
|
|
31
27
|
xAxisLabelFontStyle = populationDefaults.defaultFontStyle,
|
|
32
28
|
xAxisLabelFontWeight = populationDefaults.defaultFontWeight,
|
|
33
29
|
xAxisLabelFontFamily = populationDefaults.defaultFontFamily,
|
|
34
|
-
xAxisLabelColor = populationDefaults.defaultFontColor,
|
|
35
30
|
xAxisLabelShiftX = 0,
|
|
36
31
|
xAxisLabelShiftY = 0,
|
|
37
32
|
xAxisLabelPrefix = populationDefaults.prefix,
|
|
@@ -39,7 +34,6 @@ export const usePopulationPyramid = (props: PopulationPyramidPropsType) => {
|
|
|
39
34
|
formatXAxisLabels,
|
|
40
35
|
|
|
41
36
|
showVerticalLines = populationDefaults.showVerticalLines,
|
|
42
|
-
verticalLinesColor = populationDefaults.verticalLinesColor,
|
|
43
37
|
verticalLinesThickness = populationDefaults.verticalLinesThickness,
|
|
44
38
|
verticalLinesType = populationDefaults.verticalLinesType,
|
|
45
39
|
verticalLinesStrokeDashArray = populationDefaults.verticalLinesStrokeDashArray,
|
|
@@ -47,18 +41,15 @@ export const usePopulationPyramid = (props: PopulationPyramidPropsType) => {
|
|
|
47
41
|
showYAxisIndices = AxesAndRulesDefaults.showYAxisIndices,
|
|
48
42
|
yAxisIndicesWidth = AxesAndRulesDefaults.yAxisIndicesWidth,
|
|
49
43
|
yAxisIndicesHeight = AxesAndRulesDefaults.yAxisIndicesHeight,
|
|
50
|
-
yAxisIndicesColor = AxesAndRulesDefaults.yAxisIndicesColor,
|
|
51
44
|
yAxisLabelFontSize = populationDefaults.defaultFontSize,
|
|
52
45
|
yAxisLabelFontStyle = populationDefaults.defaultFontStyle,
|
|
53
46
|
yAxisLabelFontWeight = populationDefaults.defaultFontWeight,
|
|
54
47
|
yAxisLabelFontFamily = populationDefaults.defaultFontFamily,
|
|
55
|
-
yAxisLabelColor = populationDefaults.defaultFontColor,
|
|
56
48
|
yAxisLabelTextMarginRight = populationDefaults.yAxisLabelTextMarginRight,
|
|
57
49
|
yAxisLabelTexts = [],
|
|
58
50
|
showValuesAsBarLabels = populationDefaults.showValuesAsBarLabels,
|
|
59
51
|
|
|
60
52
|
rulesThickness = AxesAndRulesDefaults.rulesThickness,
|
|
61
|
-
rulesColor = AxesAndRulesDefaults.rulesColor,
|
|
62
53
|
rulesType = AxesAndRulesDefaults.rulesType,
|
|
63
54
|
dashWidth = AxesAndRulesDefaults.dashWidth,
|
|
64
55
|
dashGap = AxesAndRulesDefaults.dashGap,
|
|
@@ -66,8 +57,6 @@ export const usePopulationPyramid = (props: PopulationPyramidPropsType) => {
|
|
|
66
57
|
leftBarLabelWidth = populationDefaults.leftBarLabelWidth,
|
|
67
58
|
leftBarLabelFontSize = props.barLabelFontSize ??
|
|
68
59
|
populationDefaults.defaultFontSize,
|
|
69
|
-
leftBarLabelColor = props.barLabelColor ??
|
|
70
|
-
populationDefaults.defaultFontColor,
|
|
71
60
|
leftBarLabelFontStyle = props.barLabelFontStyle ??
|
|
72
61
|
populationDefaults.defaultFontStyle,
|
|
73
62
|
leftBarLabelFontWeight = props.barLabelFontWeight ??
|
|
@@ -80,8 +69,6 @@ export const usePopulationPyramid = (props: PopulationPyramidPropsType) => {
|
|
|
80
69
|
rightBarLabelWidth = populationDefaults.rightBarLabelWidth,
|
|
81
70
|
rightBarLabelFontSize = props.barLabelFontSize ??
|
|
82
71
|
populationDefaults.defaultFontSize,
|
|
83
|
-
rightBarLabelColor = props.barLabelColor ??
|
|
84
|
-
populationDefaults.defaultFontColor,
|
|
85
72
|
rightBarLabelFontStyle = props.barLabelFontStyle ??
|
|
86
73
|
populationDefaults.defaultFontStyle,
|
|
87
74
|
rightBarLabelFontWeight = props.barLabelFontWeight ??
|
|
@@ -95,15 +82,10 @@ export const usePopulationPyramid = (props: PopulationPyramidPropsType) => {
|
|
|
95
82
|
showMidAxis = populationDefaults.showMidAxis,
|
|
96
83
|
midAxisLabelWidth = populationDefaults.midAxisLabelWidth,
|
|
97
84
|
midAxisLabelFontSize = populationDefaults.defaultFontSize,
|
|
98
|
-
midAxisLabelColor = populationDefaults.defaultFontColor,
|
|
99
85
|
midAxisLabelFontStyle = populationDefaults.defaultFontStyle,
|
|
100
86
|
midAxisLabelFontWeight = populationDefaults.defaultFontWeight,
|
|
101
87
|
midAxisLabelFontFamily = populationDefaults.defaultFontFamily,
|
|
102
88
|
|
|
103
|
-
leftBarColor = populationDefaults.leftBarColor,
|
|
104
|
-
rightBarColor = populationDefaults.rightBarColor,
|
|
105
|
-
leftBarBorderColor = populationDefaults.leftBarBorderColor,
|
|
106
|
-
rightBarBorderColor = populationDefaults.rightBarBorderColor,
|
|
107
89
|
leftBarBorderWidth = props.barBorderWidth ??
|
|
108
90
|
populationDefaults.leftBarBorderWidth,
|
|
109
91
|
rightBarBorderWidth = props.barBorderWidth ??
|
|
@@ -117,14 +99,56 @@ export const usePopulationPyramid = (props: PopulationPyramidPropsType) => {
|
|
|
117
99
|
showSurplus = populationDefaults.showSurplus,
|
|
118
100
|
showSurplusLeft = populationDefaults.showSurplusLeft,
|
|
119
101
|
showSurplusRight = populationDefaults.showSurplusRight,
|
|
102
|
+
leftSurplusBorderWidth = populationDefaults.leftSurplusBorderWidth,
|
|
103
|
+
rightSurplusBorderWidth = populationDefaults.rightSurplusBorderWidth
|
|
104
|
+
} = props
|
|
105
|
+
|
|
106
|
+
let {
|
|
107
|
+
yAxisColor = AxesAndRulesDefaults.yAxisColor,
|
|
108
|
+
xAxisColor = AxesAndRulesDefaults.xAxisColor,
|
|
109
|
+
xAxisIndicesColor = populationDefaults.xAxisIndicesColor,
|
|
110
|
+
xAxisLabelColor = populationDefaults.defaultFontColor,
|
|
111
|
+
verticalLinesColor = populationDefaults.verticalLinesColor,
|
|
112
|
+
yAxisIndicesColor = AxesAndRulesDefaults.yAxisIndicesColor,
|
|
113
|
+
yAxisLabelColor = populationDefaults.defaultFontColor,
|
|
114
|
+
rulesColor = AxesAndRulesDefaults.rulesColor,
|
|
115
|
+
leftBarLabelColor = props.barLabelColor ??
|
|
116
|
+
populationDefaults.defaultFontColor,
|
|
117
|
+
rightBarLabelColor = props.barLabelColor ??
|
|
118
|
+
populationDefaults.defaultFontColor,
|
|
119
|
+
midAxisLabelColor = populationDefaults.defaultFontColor,
|
|
120
|
+
leftBarColor = populationDefaults.leftBarColor,
|
|
121
|
+
rightBarColor = populationDefaults.rightBarColor,
|
|
122
|
+
leftBarBorderColor = populationDefaults.leftBarBorderColor,
|
|
123
|
+
rightBarBorderColor = populationDefaults.rightBarBorderColor,
|
|
120
124
|
leftSurplusColor = populationDefaults.leftSurplusColor,
|
|
121
125
|
leftSurplusBorderColor = populationDefaults.leftSurplusBorderColor,
|
|
122
126
|
rightSurplusColor = populationDefaults.rightSurplusColor,
|
|
123
|
-
rightSurplusBorderColor = populationDefaults.rightSurplusBorderColor
|
|
124
|
-
leftSurplusBorderWidth = populationDefaults.leftSurplusBorderWidth,
|
|
125
|
-
rightSurplusBorderWidth = populationDefaults.rightSurplusBorderWidth
|
|
127
|
+
rightSurplusBorderColor = populationDefaults.rightSurplusBorderColor
|
|
126
128
|
} = props
|
|
127
129
|
|
|
130
|
+
if (framework === Framework.reactJS) {
|
|
131
|
+
yAxisColor = yAxisColor.toString()
|
|
132
|
+
xAxisColor = xAxisColor.toString()
|
|
133
|
+
xAxisIndicesColor = xAxisIndicesColor.toString()
|
|
134
|
+
xAxisLabelColor = xAxisLabelColor.toString()
|
|
135
|
+
verticalLinesColor = verticalLinesColor.toString()
|
|
136
|
+
yAxisIndicesColor = yAxisIndicesColor.toString()
|
|
137
|
+
yAxisLabelColor = yAxisLabelColor.toString()
|
|
138
|
+
rulesColor = rulesColor.toString()
|
|
139
|
+
leftBarLabelColor = leftBarLabelColor.toString()
|
|
140
|
+
rightBarLabelColor = rightBarLabelColor.toString()
|
|
141
|
+
midAxisLabelColor = midAxisLabelColor.toString()
|
|
142
|
+
leftBarColor = leftBarColor.toString()
|
|
143
|
+
rightBarColor = rightBarColor.toString()
|
|
144
|
+
leftBarBorderColor = leftBarBorderColor.toString()
|
|
145
|
+
rightBarBorderColor = rightBarBorderColor.toString()
|
|
146
|
+
leftSurplusColor = leftSurplusColor.toString()
|
|
147
|
+
leftSurplusBorderColor = leftSurplusBorderColor.toString()
|
|
148
|
+
rightSurplusColor = rightSurplusColor.toString()
|
|
149
|
+
rightSurplusBorderColor = rightSurplusBorderColor.toString()
|
|
150
|
+
}
|
|
151
|
+
|
|
128
152
|
const yAxisLabelWidth = hideYAxisText
|
|
129
153
|
? yAxisThickness
|
|
130
154
|
: props.yAxisLabelWidth ?? AxesAndRulesDefaults.yAxisLabelWidth
|
|
@@ -146,8 +170,7 @@ export const usePopulationPyramid = (props: PopulationPyramidPropsType) => {
|
|
|
146
170
|
const max = Math.max(leftMax, rightMax)
|
|
147
171
|
|
|
148
172
|
const xAxisRoundToDigits =
|
|
149
|
-
props.xAxisRoundToDigits ??
|
|
150
|
-
(max < 0.1 ? 3 : max < 1 ? 2 : max < 10 ? 1 : 0)
|
|
173
|
+
props.xAxisRoundToDigits ?? (max < 0.1 ? 3 : max < 1 ? 2 : max < 10 ? 1 : 0)
|
|
151
174
|
|
|
152
175
|
const midAxisAndLabelWidth =
|
|
153
176
|
(showMidAxis ? midAxisLabelWidth : 0) / 2 +
|
|
@@ -158,7 +181,7 @@ export const usePopulationPyramid = (props: PopulationPyramidPropsType) => {
|
|
|
158
181
|
const leftXAfterMid = mid - (showMidAxis ? midAxisLabelWidth / 2 : 0)
|
|
159
182
|
const rightXAfterMid = mid + (showMidAxis ? midAxisLabelWidth / 2 : 0)
|
|
160
183
|
|
|
161
|
-
const yAxisLineProps:
|
|
184
|
+
const yAxisLineProps: RulesPropsType = {
|
|
162
185
|
x1: yAxisLabelWidth,
|
|
163
186
|
y1: 0,
|
|
164
187
|
x2: yAxisLabelWidth,
|
|
@@ -166,18 +189,22 @@ export const usePopulationPyramid = (props: PopulationPyramidPropsType) => {
|
|
|
166
189
|
stroke: yAxisColor,
|
|
167
190
|
strokeWidth: yAxisThickness
|
|
168
191
|
}
|
|
169
|
-
if (props.yAxisStrokeDashArray?.length === 2) {
|
|
170
|
-
yAxisLineProps.strokeDasharray = props.yAxisStrokeDashArray
|
|
171
|
-
}
|
|
172
192
|
|
|
173
|
-
|
|
193
|
+
yAxisLineProps.strokeDasharray = getStrokeDashArray(
|
|
194
|
+
props.yAxisStrokeDashArray,
|
|
195
|
+
framework
|
|
196
|
+
)
|
|
197
|
+
|
|
198
|
+
const midAxisLineCommonProps: RulesPropsType = {
|
|
174
199
|
y1: 0,
|
|
175
200
|
y2: containerHeight,
|
|
176
201
|
strokeWidth: props.midAxisThickness ?? yAxisThickness
|
|
177
202
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
203
|
+
|
|
204
|
+
midAxisLineCommonProps.strokeDasharray = getStrokeDashArray(
|
|
205
|
+
props.midAxisStrokeDashArray,
|
|
206
|
+
framework
|
|
207
|
+
)
|
|
181
208
|
|
|
182
209
|
const xAxisLabelY =
|
|
183
210
|
containerHeight + xAxisLabelFontSize + 6 + xAxisLabelShiftY
|
|
@@ -187,15 +214,16 @@ export const usePopulationPyramid = (props: PopulationPyramidPropsType) => {
|
|
|
187
214
|
stroke: xAxisIndicesColor,
|
|
188
215
|
strokeWidth: xAxisIndicesWidth
|
|
189
216
|
}
|
|
190
|
-
const verticalLinesCommonProps:
|
|
217
|
+
const verticalLinesCommonProps: RulesPropsType = {
|
|
191
218
|
y1: 0,
|
|
192
219
|
y2: containerHeight,
|
|
193
220
|
stroke: verticalLinesColor,
|
|
194
221
|
strokeWidth: verticalLinesThickness
|
|
195
222
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
223
|
+
verticalLinesCommonProps.strokeDasharray = getStrokeDashArray(
|
|
224
|
+
verticalLinesStrokeDashArray
|
|
225
|
+
)
|
|
226
|
+
|
|
199
227
|
const xAxisLabelsCommonProps = {
|
|
200
228
|
y: xAxisLabelY + xAxisLabelShiftY,
|
|
201
229
|
stroke: xAxisLabelColor,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ColorValue } from 'react-native'
|
|
2
|
-
import { type RuleTypes } from '../utils/types'
|
|
2
|
+
import { type Framework, type RuleTypes } from '../utils/types'
|
|
3
3
|
import { type FontStyle, type FontWeight } from 'react-native-svg'
|
|
4
4
|
|
|
5
5
|
export interface popnPyramidDataItem {
|
|
@@ -60,6 +60,21 @@ export interface popnPyramidDataItem {
|
|
|
60
60
|
rightSurplusBorderWidth?: number
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
export type popnPyramidDataItemReactJS = popnPyramidDataItem & {
|
|
64
|
+
leftBarColor?: string
|
|
65
|
+
rightBarColor?: string
|
|
66
|
+
leftBarBorderColor?: string
|
|
67
|
+
rightBarBorderColor?: string
|
|
68
|
+
barLabelColor?: string
|
|
69
|
+
leftBarLabelColor?: string
|
|
70
|
+
rightBarLabelColor?: string
|
|
71
|
+
midAxisLabelColor?: string
|
|
72
|
+
leftSurplusColor?: string
|
|
73
|
+
leftSurplusBorderColor?: string
|
|
74
|
+
rightSurplusColor?: string
|
|
75
|
+
rightSurplusBorderColor?: string
|
|
76
|
+
}
|
|
77
|
+
|
|
63
78
|
export interface RulesProps {
|
|
64
79
|
x1?: number
|
|
65
80
|
y1?: number
|
|
@@ -67,7 +82,11 @@ export interface RulesProps {
|
|
|
67
82
|
y2?: number
|
|
68
83
|
stroke?: ColorValue
|
|
69
84
|
strokeWidth?: number
|
|
70
|
-
strokeDasharray?: number[]
|
|
85
|
+
strokeDasharray?: number[] | string
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export type RulesPropsReactJS = RulesProps & {
|
|
89
|
+
stroke?: string
|
|
71
90
|
}
|
|
72
91
|
|
|
73
92
|
export interface PopulationPyramidPropsType {
|
|
@@ -81,7 +100,7 @@ export interface PopulationPyramidPropsType {
|
|
|
81
100
|
yAxisLabelWidth?: number
|
|
82
101
|
yAxisColor?: ColorValue
|
|
83
102
|
yAxisThickness?: number
|
|
84
|
-
yAxisStrokeDashArray?: number[]
|
|
103
|
+
yAxisStrokeDashArray?: number[] | string
|
|
85
104
|
xAxisColor?: ColorValue
|
|
86
105
|
xAxisThickness?: number
|
|
87
106
|
xAxisType?: RuleTypes
|
|
@@ -108,7 +127,7 @@ export interface PopulationPyramidPropsType {
|
|
|
108
127
|
verticalLinesColor?: ColorValue
|
|
109
128
|
verticalLinesThickness?: number
|
|
110
129
|
verticalLinesType?: RuleTypes
|
|
111
|
-
verticalLinesStrokeDashArray?: number[]
|
|
130
|
+
verticalLinesStrokeDashArray?: number[] | string
|
|
112
131
|
|
|
113
132
|
noOfSections?: number
|
|
114
133
|
barsMapToYAxisSections?: boolean
|
|
@@ -139,7 +158,7 @@ export interface PopulationPyramidPropsType {
|
|
|
139
158
|
midAxisColor?: ColorValue
|
|
140
159
|
midAxisLeftColor?: ColorValue
|
|
141
160
|
midAxisRightColor?: ColorValue
|
|
142
|
-
midAxisStrokeDashArray?: number[]
|
|
161
|
+
midAxisStrokeDashArray?: number[] | string
|
|
143
162
|
midAxisLabelFontSize?: number
|
|
144
163
|
midAxisLabelColor?: ColorValue
|
|
145
164
|
midAxisLabelFontStyle?: FontStyle
|
|
@@ -195,5 +214,39 @@ export interface PopulationPyramidPropsType {
|
|
|
195
214
|
rightSurplusBorderColor?: ColorValue
|
|
196
215
|
leftSurplusBorderWidth?: number
|
|
197
216
|
rightSurplusBorderWidth?: number
|
|
217
|
+
}
|
|
198
218
|
|
|
219
|
+
export type PopulationPyramidPropsTypeReactJS = PopulationPyramidPropsType & {
|
|
220
|
+
data: popnPyramidDataItemReactJS[]
|
|
221
|
+
yAxisColor?: string
|
|
222
|
+
xAxisColor?: string
|
|
223
|
+
xAxisIndicesColor?: string
|
|
224
|
+
xAxisLabelColor?: string
|
|
225
|
+
verticalLinesColor?: string
|
|
226
|
+
yAxisIndicesColor?: string
|
|
227
|
+
yAxisLabelColor?: string
|
|
228
|
+
rulesColor?: string
|
|
229
|
+
midAxisColor?: string
|
|
230
|
+
midAxisLeftColor?: string
|
|
231
|
+
midAxisRightColor?: string
|
|
232
|
+
midAxisLabelColor?: string
|
|
233
|
+
barLabelColor?: string
|
|
234
|
+
leftBarLabelColor?: string
|
|
235
|
+
rightBarLabelColor?: string
|
|
236
|
+
leftBarColor?: string
|
|
237
|
+
rightBarColor?: string
|
|
238
|
+
leftBarBorderColor?: string
|
|
239
|
+
rightBarBorderColor?: string
|
|
240
|
+
leftSurplusColor?: string
|
|
241
|
+
leftSurplusBorderColor?: string
|
|
242
|
+
rightSurplusColor?: string
|
|
243
|
+
rightSurplusBorderColor?: string
|
|
199
244
|
}
|
|
245
|
+
|
|
246
|
+
export type RulesPropsType =
|
|
247
|
+
| ({ framework: Framework.reactJS } & RulesPropsReactJS)
|
|
248
|
+
| ({ framework?: Framework.reactNative } & RulesProps)
|
|
249
|
+
|
|
250
|
+
export type TPopulationPyramidPropsType =
|
|
251
|
+
| ({ framework: Framework.reactJS } & PopulationPyramidPropsTypeReactJS)
|
|
252
|
+
| ({ framework?: Framework.reactNative } & PopulationPyramidPropsType)
|
package/src/utils/index.ts
CHANGED
|
@@ -18,7 +18,8 @@ import {
|
|
|
18
18
|
CurveType,
|
|
19
19
|
type HighlightedRange,
|
|
20
20
|
type LineProperties,
|
|
21
|
-
type LineSegment
|
|
21
|
+
type LineSegment,
|
|
22
|
+
Framework
|
|
22
23
|
} from './types'
|
|
23
24
|
import {
|
|
24
25
|
type lineConfigType,
|
|
@@ -1362,7 +1363,7 @@ export const getInterpolatedData = (
|
|
|
1362
1363
|
const post: lineDataItem[] = data.slice(index + 1, n)
|
|
1363
1364
|
|
|
1364
1365
|
const preValidIndex = pre.findLastIndex(
|
|
1365
|
-
(item) => typeof item.value === 'number'
|
|
1366
|
+
(item: lineDataItem) => typeof item.value === 'number'
|
|
1366
1367
|
)
|
|
1367
1368
|
const postValidInd = post.findIndex(
|
|
1368
1369
|
(item) => typeof item.value === 'number'
|
|
@@ -1384,7 +1385,7 @@ export const getInterpolatedData = (
|
|
|
1384
1385
|
// 2. There are more than valid values in pre
|
|
1385
1386
|
const secondPre: lineDataItem[] = data.slice(0, preValidIndex)
|
|
1386
1387
|
const secondPreIndex = secondPre.findLastIndex(
|
|
1387
|
-
(item) => typeof item.value === 'number'
|
|
1388
|
+
(item: lineDataItem) => typeof item.value === 'number'
|
|
1388
1389
|
)
|
|
1389
1390
|
|
|
1390
1391
|
count = preValidIndex - secondPreIndex
|
|
@@ -1490,3 +1491,43 @@ export const getSanitisedData = (
|
|
|
1490
1491
|
}
|
|
1491
1492
|
return nullishHandledData
|
|
1492
1493
|
}
|
|
1494
|
+
|
|
1495
|
+
export const getStrokeDashArray = (
|
|
1496
|
+
strokeDash?: number[] | string,
|
|
1497
|
+
framework?: Framework
|
|
1498
|
+
): number[] | string | undefined => {
|
|
1499
|
+
let strokeDashArrayOrString: number[] | string | undefined
|
|
1500
|
+
if (framework === Framework.reactJS) {
|
|
1501
|
+
if (strokeDash instanceof Array) {
|
|
1502
|
+
strokeDashArrayOrString = strokeDash.toString().replace(',', ' ')
|
|
1503
|
+
} else if (typeof strokeDash === 'string') {
|
|
1504
|
+
strokeDashArrayOrString = strokeDash
|
|
1505
|
+
.replace(',', ' ')
|
|
1506
|
+
.replace('[', '')
|
|
1507
|
+
.replace(']', '')
|
|
1508
|
+
.replace('{', '')
|
|
1509
|
+
.replace('}', '')
|
|
1510
|
+
}
|
|
1511
|
+
} else {
|
|
1512
|
+
if (strokeDash instanceof Array) {
|
|
1513
|
+
strokeDashArrayOrString = strokeDash
|
|
1514
|
+
} else if (typeof strokeDash === 'string') {
|
|
1515
|
+
const ar = strokeDash
|
|
1516
|
+
.replace(',', ' ')
|
|
1517
|
+
.replace('[', '')
|
|
1518
|
+
.replace(']', '')
|
|
1519
|
+
.replace('{', '')
|
|
1520
|
+
.replace('}', '')
|
|
1521
|
+
.split(' ')
|
|
1522
|
+
if (ar[0] && ar[1]) {
|
|
1523
|
+
const n1 = Number(ar[0])
|
|
1524
|
+
const n2 = Number(ar[1])
|
|
1525
|
+
if (!isNaN(n1) && !isNaN(n2)) {
|
|
1526
|
+
strokeDashArrayOrString = [n1, n2]
|
|
1527
|
+
}
|
|
1528
|
+
}
|
|
1529
|
+
}
|
|
1530
|
+
}
|
|
1531
|
+
|
|
1532
|
+
return strokeDashArrayOrString
|
|
1533
|
+
}
|
package/src/utils/types.ts
CHANGED
|
@@ -3,6 +3,11 @@ import { type chartTypes, type yAxisSides } from './constants'
|
|
|
3
3
|
import { type lineDataItem } from '../LineChart/types'
|
|
4
4
|
import { type barDataItem, type stackDataItem } from '../BarChart/types'
|
|
5
5
|
|
|
6
|
+
export enum Framework {
|
|
7
|
+
reactJS,
|
|
8
|
+
reactNative
|
|
9
|
+
}
|
|
10
|
+
|
|
6
11
|
export type RuleType = 'solid' | 'dashed' | 'dotted' | string
|
|
7
12
|
|
|
8
13
|
export interface RuleTypes {
|