playbook_ui 14.23.0.pre.rc.3 → 14.24.0.pre.rc.0
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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +2 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.html.erb +46 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_rails.md +7 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header_rails.html.erb +51 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header_rails.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +3 -1
- data/app/pb_kits/playbook/pb_advanced_table/table_header.html.erb +5 -1
- data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +36 -0
- data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +11 -2
- data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +2 -0
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.md +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.md +1 -1
- data/app/pb_kits/playbook/pb_gauge/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors.jsx +32 -15
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_colors_react.md +2 -0
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex.jsx +35 -9
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex_react.md +1 -0
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.jsx +26 -14
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_disable_animation.jsx +32 -15
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.jsx +45 -17
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.jsx +59 -22
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_live_data.jsx +40 -9
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.jsx +50 -18
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.jsx +31 -18
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.jsx +34 -17
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.jsx +64 -23
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units_react.md +1 -0
- data/app/pb_kits/playbook/pb_gauge/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_gauge/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_gauge/gaugeTheme.ts +7 -1
- data/app/pb_kits/playbook/pb_line_graph/docs/_description.md +1 -3
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors.jsx +36 -17
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_colors_react.md +3 -0
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_default.jsx +31 -16
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.jsx +63 -31
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_height.md +3 -0
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend.jsx +35 -16
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_nonclickable.jsx +41 -16
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_position.jsx +107 -62
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_position.md +4 -7
- data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_line_graph/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_line_graph/lineGraphTheme.ts +16 -1
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +3 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_strict_mode.html.erb +10 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_strict_mode.jsx +26 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_strict_mode.md +3 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +3 -0
- data/dist/chunks/_line_graph-BfCo79KE.js +1 -0
- data/dist/chunks/_typeahead-Db4YQA5c.js +6 -0
- data/dist/chunks/_weekday_stacked-DhFTG-Jt.js +61 -0
- data/dist/chunks/lib-DnQyMxO1.js +29 -0
- data/dist/chunks/{pb_form_validation-BUOKwfvW.js → pb_form_validation-kl-4Jv4t.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/playbook-doc.js +1 -1
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/lib/playbook/version.rb +2 -2
- metadata +24 -15
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_pb_styles.jsx +0 -30
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_pb_styles.md +0 -1
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.jsx +0 -52
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.md +0 -1
- data/dist/chunks/_circle_chart-BZmlhBs2.js +0 -1
- data/dist/chunks/_typeahead-B1tu_vWi.js +0 -22
- data/dist/chunks/_weekday_stacked-CKk0dR5s.js +0 -45
- data/dist/chunks/lib-DYpq0k8j.js +0 -29
- /data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_row_styling.md → _advanced_table_row_styling_react.md} +0 -0
- /data/app/pb_kits/playbook/pb_gauge/docs/{_gauge_colors.md → _gauge_colors_rails.md} +0 -0
- /data/app/pb_kits/playbook/pb_gauge/docs/{_gauge_complex.md → _gauge_complex_rails.md} +0 -0
- /data/app/pb_kits/playbook/pb_line_graph/docs/{_line_graph_colors.md → _line_graph_colors_rails.md} +0 -0
@@ -1,38 +1,70 @@
|
|
1
1
|
import React from 'react'
|
2
|
-
import
|
2
|
+
import lineGraphTheme from '../lineGraphTheme'
|
3
|
+
import Highcharts from "highcharts"
|
4
|
+
import HighchartsReact from "highcharts-react-official"
|
3
5
|
|
4
6
|
const data = [{
|
5
7
|
name: 'Number of Installations',
|
6
8
|
data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175],
|
7
9
|
}]
|
8
10
|
|
9
|
-
const
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
11
|
+
const categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
|
12
|
+
|
13
|
+
const LineGraphHeight = () => {
|
14
|
+
const chartOptionsFirst = {
|
15
|
+
title: {
|
16
|
+
text: 'Fixed Height (300px)',
|
17
|
+
},
|
18
|
+
chart: {
|
19
|
+
height: '300px'
|
20
|
+
},
|
21
|
+
xAxis: {
|
22
|
+
categories: categories,
|
23
|
+
},
|
24
|
+
yAxis: {
|
25
|
+
min: 0,
|
26
|
+
title: {
|
27
|
+
text: 'Number of Employees',
|
28
|
+
},
|
29
|
+
},
|
30
|
+
series: data
|
31
|
+
}
|
32
|
+
|
33
|
+
const chartOptionsSecond = {
|
34
|
+
title: {
|
35
|
+
text: 'Percentage Height (50%)',
|
36
|
+
},
|
37
|
+
chart: {
|
38
|
+
height: '50%'
|
39
|
+
},
|
40
|
+
xAxis: {
|
41
|
+
categories: categories,
|
42
|
+
},
|
43
|
+
yAxis: {
|
44
|
+
min: 0,
|
45
|
+
title: {
|
46
|
+
text: 'Number of Employees',
|
47
|
+
},
|
48
|
+
},
|
49
|
+
series: data
|
50
|
+
}
|
51
|
+
|
52
|
+
const optionsFirst = Highcharts.merge({}, lineGraphTheme, chartOptionsFirst)
|
53
|
+
const optionsSecond = Highcharts.merge({}, lineGraphTheme, chartOptionsSecond)
|
54
|
+
|
55
|
+
return (
|
56
|
+
<div>
|
57
|
+
<HighchartsReact
|
58
|
+
highcharts={Highcharts}
|
59
|
+
options={optionsFirst}
|
60
|
+
/>
|
61
|
+
|
62
|
+
<HighchartsReact
|
63
|
+
highcharts={Highcharts}
|
64
|
+
options={optionsSecond}
|
65
|
+
/>
|
66
|
+
</div>
|
67
|
+
)
|
68
|
+
}
|
69
|
+
|
70
|
+
export default LineGraphHeight
|
@@ -0,0 +1,3 @@
|
|
1
|
+
By default, Highcharts have a height of 400px, but this can be customized. You can override the default by specifying either a percentage or a fixed pixel value.
|
2
|
+
|
3
|
+
Using a percentage maintains a consistent aspect ratio across different responsive sizes. For example, setting the height to 50% makes the chart’s height half of its width.
|
@@ -1,24 +1,43 @@
|
|
1
1
|
import React from 'react'
|
2
|
-
import
|
2
|
+
import lineGraphTheme from '../lineGraphTheme'
|
3
|
+
import Highcharts from "highcharts"
|
4
|
+
import HighchartsReact from "highcharts-react-official"
|
3
5
|
|
4
6
|
const data = [{
|
5
7
|
name: 'Number of Installations',
|
6
8
|
data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175],
|
7
9
|
}]
|
8
10
|
|
9
|
-
const
|
10
|
-
<div>
|
11
|
-
<LineGraph
|
12
|
-
axisTitle="Number of Employees"
|
13
|
-
chartData={data}
|
14
|
-
id="line-test-2"
|
15
|
-
legend
|
16
|
-
title="Line Graph with Legend"
|
17
|
-
xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug']}
|
18
|
-
yAxisMin={0}
|
19
|
-
{...props}
|
20
|
-
/>
|
21
|
-
</div>
|
22
|
-
)
|
11
|
+
const categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug']
|
23
12
|
|
24
|
-
|
13
|
+
const chartOptions = {
|
14
|
+
series: data,
|
15
|
+
title: { text: "Line Graph with Legend" },
|
16
|
+
xAxis: {
|
17
|
+
categories: categories,
|
18
|
+
},
|
19
|
+
yAxis: {
|
20
|
+
min: 0,
|
21
|
+
title: {
|
22
|
+
text: "Number of Employees",
|
23
|
+
},
|
24
|
+
},
|
25
|
+
legend: {
|
26
|
+
enabled: true,
|
27
|
+
},
|
28
|
+
}
|
29
|
+
|
30
|
+
const LineGraphLegend = () => {
|
31
|
+
const options = Highcharts.merge({}, lineGraphTheme, chartOptions)
|
32
|
+
|
33
|
+
return(
|
34
|
+
<div>
|
35
|
+
<HighchartsReact
|
36
|
+
highcharts={Highcharts}
|
37
|
+
options={options}
|
38
|
+
/>
|
39
|
+
</div>
|
40
|
+
)
|
41
|
+
}
|
42
|
+
|
43
|
+
export default LineGraphLegend
|
@@ -1,24 +1,49 @@
|
|
1
1
|
import React from 'react'
|
2
|
-
import
|
2
|
+
import lineGraphTheme from '../lineGraphTheme'
|
3
|
+
import Highcharts from "highcharts"
|
4
|
+
import HighchartsReact from "highcharts-react-official"
|
3
5
|
|
4
6
|
const data = [{
|
5
7
|
name: 'Number of Installations',
|
6
8
|
data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175],
|
7
9
|
}]
|
8
10
|
|
9
|
-
const
|
10
|
-
<div>
|
11
|
-
<LineGraph
|
12
|
-
axisTitle="Number of Employees"
|
13
|
-
chartData={data}
|
14
|
-
id="line-test-3"
|
15
|
-
legend
|
16
|
-
title="Line Graph with Legend Non Clickable"
|
17
|
-
toggleLegendClick={false}
|
18
|
-
xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug']}
|
19
|
-
{...props}
|
20
|
-
/>
|
21
|
-
</div>
|
22
|
-
)
|
11
|
+
const categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug']
|
23
12
|
|
24
|
-
|
13
|
+
const chartOptions = {
|
14
|
+
title: {
|
15
|
+
text: 'Line Graph with Legend Non Clickable',
|
16
|
+
},
|
17
|
+
xAxis: {
|
18
|
+
categories: categories,
|
19
|
+
},
|
20
|
+
yAxis: {
|
21
|
+
title: {
|
22
|
+
text: 'Number of Employees',
|
23
|
+
},
|
24
|
+
},
|
25
|
+
legend: {
|
26
|
+
enabled: true,
|
27
|
+
events: {
|
28
|
+
itemClick: function () {
|
29
|
+
return false;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
},
|
33
|
+
series: data
|
34
|
+
}
|
35
|
+
|
36
|
+
const LineGraphLegendNonclickable = () => {
|
37
|
+
const options = Highcharts.merge({}, lineGraphTheme, chartOptions)
|
38
|
+
|
39
|
+
return (
|
40
|
+
<div>
|
41
|
+
<HighchartsReact
|
42
|
+
highcharts={Highcharts}
|
43
|
+
options={options}
|
44
|
+
/>
|
45
|
+
</div>
|
46
|
+
)
|
47
|
+
}
|
48
|
+
|
49
|
+
export default LineGraphLegendNonclickable
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import React from 'react'
|
2
|
-
import
|
2
|
+
import lineGraphTheme from '../lineGraphTheme'
|
3
|
+
import Highcharts from "highcharts"
|
4
|
+
import HighchartsReact from "highcharts-react-official"
|
3
5
|
import Title from '../../pb_title/_title'
|
4
6
|
|
5
7
|
const data = [{
|
@@ -19,66 +21,109 @@ const data = [{
|
|
19
21
|
data: [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111],
|
20
22
|
}]
|
21
23
|
|
22
|
-
const
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
)
|
24
|
+
const categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug']
|
25
|
+
|
26
|
+
const LineGraphLegendPosition = (props) => {
|
27
|
+
const chartOptionsFirst = {
|
28
|
+
title: { text: "Alignment of Legend" },
|
29
|
+
series: data,
|
30
|
+
xAxis: {
|
31
|
+
categories: categories,
|
32
|
+
},
|
33
|
+
yAxis: {
|
34
|
+
min: 0,
|
35
|
+
title: {
|
36
|
+
text: "Number of Employees",
|
37
|
+
},
|
38
|
+
},
|
39
|
+
legend: {
|
40
|
+
enabled: true,
|
41
|
+
align: 'right',
|
42
|
+
verticalAlign: 'top'
|
43
|
+
},
|
44
|
+
}
|
45
|
+
|
46
|
+
const chartOptionsSecond = {
|
47
|
+
title: { text: "Layout of Legend" },
|
48
|
+
series: data,
|
49
|
+
xAxis: {
|
50
|
+
categories: categories,
|
51
|
+
},
|
52
|
+
yAxis: {
|
53
|
+
min: 0,
|
54
|
+
title: {
|
55
|
+
text: "Number of Employees",
|
56
|
+
},
|
57
|
+
},
|
58
|
+
legend: {
|
59
|
+
enabled: true,
|
60
|
+
layout: 'vertical'
|
61
|
+
},
|
62
|
+
}
|
63
|
+
|
64
|
+
const chartOptionsThird = {
|
65
|
+
title: { text: "Offset of Legend" },
|
66
|
+
series: data,
|
67
|
+
xAxis: {
|
68
|
+
categories: categories,
|
69
|
+
},
|
70
|
+
yAxis: {
|
71
|
+
min: 0,
|
72
|
+
title: {
|
73
|
+
text: "Number of Employees",
|
74
|
+
},
|
75
|
+
},
|
76
|
+
legend: {
|
77
|
+
enabled: true,
|
78
|
+
layout: 'vertical',
|
79
|
+
x: 100,
|
80
|
+
y: 10
|
81
|
+
},
|
82
|
+
}
|
83
|
+
|
84
|
+
const optionsFirst = Highcharts.merge({}, lineGraphTheme, chartOptionsFirst)
|
85
|
+
const optionsSecond = Highcharts.merge({}, lineGraphTheme, chartOptionsSecond)
|
86
|
+
const optionsThird = Highcharts.merge({}, lineGraphTheme, chartOptionsThird)
|
87
|
+
|
88
|
+
return (
|
89
|
+
<div>
|
90
|
+
<Title
|
91
|
+
paddingY="sm"
|
92
|
+
size={4}
|
93
|
+
tag="h4"
|
94
|
+
text="align | verticalAlign"
|
95
|
+
{...props}
|
96
|
+
/>
|
97
|
+
<HighchartsReact
|
98
|
+
highcharts={Highcharts}
|
99
|
+
options={optionsFirst}
|
100
|
+
/>
|
101
|
+
|
102
|
+
<Title
|
103
|
+
paddingY="sm"
|
104
|
+
size={4}
|
105
|
+
tag="h4"
|
106
|
+
text="layout"
|
107
|
+
{...props}
|
108
|
+
/>
|
109
|
+
<HighchartsReact
|
110
|
+
highcharts={Highcharts}
|
111
|
+
options={optionsSecond}
|
112
|
+
/>
|
113
|
+
|
114
|
+
<Title
|
115
|
+
paddingY="sm"
|
116
|
+
size={4}
|
117
|
+
tag="h4"
|
118
|
+
text="x | y"
|
119
|
+
{...props}
|
120
|
+
/>
|
121
|
+
<HighchartsReact
|
122
|
+
highcharts={Highcharts}
|
123
|
+
options={optionsThird}
|
124
|
+
/>
|
125
|
+
</div>
|
126
|
+
)
|
127
|
+
}
|
83
128
|
|
84
129
|
export default LineGraphLegendPosition
|
@@ -1,17 +1,14 @@
|
|
1
1
|
##### Prop
|
2
2
|
|
3
3
|
`align` **Type**: String | **Values**: left | center | right (defaults to center)
|
4
|
-
`verticalAlign` **Type**: String | **Values**: top | middle | bottom (defaults
|
4
|
+
`verticalAlign` **Type**: String | **Values**: top | middle | bottom (defaults to bottom)
|
5
5
|
`layout` **Type**: String | **Values**: horizontal | vertical | proximate (defaults to horizontal)
|
6
6
|
`x` **Type**: Number (defaults to 0)
|
7
7
|
`y` **Type**: Number (defaults to 0)
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
- `layout` determines the position of the legend items
|
9
|
+
`layout` determines the position of the legend items
|
12
10
|
`layout: proximate` will place the legend items as close as possible to the graphs they're representing. It will also determine whether to place the legend above/below or on the side of the plot area, if the legend is in a corner.
|
13
11
|
|
14
|
-
|
15
|
-
|
12
|
+
`x` offsets the legend relative to its horizontal alignment. Negative x moves it to the left, positive x moves it to the right
|
16
13
|
|
17
|
-
|
14
|
+
`y` offsets the legend relative to its vertical alignment. Negative y moves it up, positive y moves it down.
|
@@ -4,4 +4,3 @@ export { default as LineGraphLegendPosition } from './_line_graph_legend_positio
|
|
4
4
|
export { default as LineGraphLegendNonclickable } from './_line_graph_legend_nonclickable.jsx'
|
5
5
|
export { default as LineGraphHeight } from './_line_graph_height.jsx'
|
6
6
|
export { default as LineGraphColors } from './_line_graph_colors.jsx'
|
7
|
-
export { default as LineGraphPbStyles } from './_line_graph_pb_styles.jsx'
|
@@ -50,7 +50,21 @@ const lineGraphTheme = {
|
|
50
50
|
},
|
51
51
|
},
|
52
52
|
credits: { enabled: false },
|
53
|
-
legend: {
|
53
|
+
legend: {
|
54
|
+
enabled: false,
|
55
|
+
itemStyle: {
|
56
|
+
fontFamily: typography.font_family_base,
|
57
|
+
color: colors.text_lt_light,
|
58
|
+
fontWeight: typography.regular,
|
59
|
+
fontSize: typography.text_smaller,
|
60
|
+
},
|
61
|
+
itemHoverStyle: {
|
62
|
+
color: colors.text_lt_default,
|
63
|
+
},
|
64
|
+
itemHiddenStyle: {
|
65
|
+
color: colors.text_lt_lighter,
|
66
|
+
},
|
67
|
+
},
|
54
68
|
colors: [
|
55
69
|
colors.data_1,
|
56
70
|
colors.data_2,
|
@@ -88,6 +102,7 @@ const lineGraphTheme = {
|
|
88
102
|
minorGridLineColor: colors.border_light,
|
89
103
|
lineWidth: 0,
|
90
104
|
tickWidth: 0,
|
105
|
+
tickPixelInterval: 50,
|
91
106
|
labels: {
|
92
107
|
style: {
|
93
108
|
fontFamily: typography.font_family_base,
|
@@ -38,6 +38,7 @@ type PhoneNumberInputProps = {
|
|
38
38
|
required?: boolean,
|
39
39
|
value?: string,
|
40
40
|
formatAsYouType?: boolean,
|
41
|
+
strictMode?: boolean,
|
41
42
|
countrySearch?: boolean,
|
42
43
|
}
|
43
44
|
|
@@ -94,6 +95,7 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.Ref<unknown>
|
|
94
95
|
preferredCountries = [],
|
95
96
|
value = "",
|
96
97
|
formatAsYouType = false,
|
98
|
+
strictMode = false,
|
97
99
|
countrySearch = false,
|
98
100
|
} = props
|
99
101
|
|
@@ -256,6 +258,7 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.Ref<unknown>
|
|
256
258
|
countrySearch: countrySearch,
|
257
259
|
fixDropdownWidth: false,
|
258
260
|
formatAsYouType: formatAsYouType,
|
261
|
+
strictMode: strictMode,
|
259
262
|
hiddenInput: hiddenInputs ? () => ({
|
260
263
|
phone: `${name}_full`,
|
261
264
|
country: `${name}_country_code`,
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import React from "react";
|
2
|
+
|
3
|
+
import Body from '../../pb_body/_body'
|
4
|
+
import PhoneNumberInput from '../../pb_phone_number_input/_phone_number_input'
|
5
|
+
|
6
|
+
const PhoneNumberInputStrictMode = (props) => {
|
7
|
+
|
8
|
+
return (
|
9
|
+
<>
|
10
|
+
<PhoneNumberInput
|
11
|
+
id="strict"
|
12
|
+
strictMode
|
13
|
+
{...props}
|
14
|
+
/>
|
15
|
+
<Body>With formatAsYouType</Body>
|
16
|
+
<PhoneNumberInput
|
17
|
+
formatAsYouType
|
18
|
+
id="strict"
|
19
|
+
strictMode
|
20
|
+
{...props}
|
21
|
+
/>
|
22
|
+
</>
|
23
|
+
);
|
24
|
+
};
|
25
|
+
|
26
|
+
export default PhoneNumberInputStrictMode;
|
@@ -10,6 +10,7 @@ examples:
|
|
10
10
|
- phone_number_input_clear_field: Clearing the Input Field
|
11
11
|
- phone_number_input_access_input_element: Accessing the Input Element
|
12
12
|
- phone_number_input_format: Format as You Type
|
13
|
+
- phone_number_input_strict_mode: Strict Mode
|
13
14
|
- phone_number_input_country_search: Country Search
|
14
15
|
|
15
16
|
rails:
|
@@ -20,5 +21,6 @@ examples:
|
|
20
21
|
- phone_number_input_exclude_countries: Exclude Countries
|
21
22
|
- phone_number_input_validation: Form Validation
|
22
23
|
- phone_number_input_format: Format as You Type
|
24
|
+
- phone_number_input_strict_mode: Strict Mode
|
23
25
|
- phone_number_input_hidden_inputs: Hidden Inputs
|
24
26
|
- phone_number_input_country_search: Country Search
|
@@ -7,4 +7,5 @@ export { default as PhoneNumberInputValidation } from './_phone_number_input_val
|
|
7
7
|
export { default as PhoneNumberInputClearField } from './_phone_number_input_clear_field'
|
8
8
|
export { default as PhoneNumberInputAccessInputElement } from './_phone_number_input_access_input_element'
|
9
9
|
export { default as PhoneNumberInputFormat } from './_phone_number_input_format'
|
10
|
+
export { default as PhoneNumberInputStrictMode } from './_phone_number_input_strict_mode'
|
10
11
|
export { default as PhoneNumberInputCountrySearch } from './_phone_number_input_country_search'
|
@@ -25,6 +25,8 @@ module Playbook
|
|
25
25
|
default: ""
|
26
26
|
prop :format_as_you_type, type: Playbook::Props::Boolean,
|
27
27
|
default: false
|
28
|
+
prop :strict_mode, type: Playbook::Props::Boolean,
|
29
|
+
default: false
|
28
30
|
prop :hidden_inputs, type: Playbook::Props::Boolean,
|
29
31
|
default: false
|
30
32
|
prop :country_search, type: Playbook::Props::Boolean,
|
@@ -41,6 +43,7 @@ module Playbook
|
|
41
43
|
disabled: disabled,
|
42
44
|
error: error,
|
43
45
|
formatAsYouType: format_as_you_type,
|
46
|
+
strictMode: strict_mode,
|
44
47
|
hiddenInputs: hidden_inputs,
|
45
48
|
initialCountry: initial_country,
|
46
49
|
label: label,
|
@@ -0,0 +1 @@
|
|
1
|
+
import{jsx,Fragment,jsxs}from"react/jsx-runtime";import{useState,useEffect}from"react";import{b as buildAriaProps,c as buildDataProps,d as buildHtmlProps,H as HighchartsReact,e as Highcharts,f as classnames,g as globalProps,h as HighchartsMore,S as SolidGauge,i as buildCss}from"./_typeahead-Db4YQA5c.js";import{c as colors,h as highchartsTheme,m as merge,a as highchartsDarkTheme,t as typography}from"./lib-DnQyMxO1.js";const mapColors=array=>{const regex=/(data)\-[1-8]/;const newArray=array.map((item=>regex.test(item)?`${colors[`data_${item[item.length-1]}`]}`:item));return newArray};const BarGraph=({aria:aria={},data:data={},align:align="center",axisTitle:axisTitle,dark:dark=false,chartData:chartData,className:className="pb_bar_graph",colors:colors2,htmlOptions:htmlOptions={},customOptions:customOptions={},axisFormat:axisFormat,id:id,pointStart:pointStart,stacking:stacking,subTitle:subTitle,type:type="column",title:title="Title",xAxisCategories:xAxisCategories,yAxisMin:yAxisMin,yAxisMax:yAxisMax,legend:legend=false,toggleLegendClick:toggleLegendClick=true,height:height,layout:layout="horizontal",verticalAlign:verticalAlign="bottom",x:x=0,y:y=0,...props})=>{const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const setupTheme=()=>{dark?Highcharts.setOptions(highchartsDarkTheme):Highcharts.setOptions(highchartsTheme)};setupTheme();const staticOptions={title:{text:title},chart:{height:height,type:type},subtitle:{text:subTitle},yAxis:[{labels:{format:typeof axisFormat==="string"?axisFormat:axisFormat&&axisFormat[0]?axisFormat[0].format:""},min:yAxisMin,max:yAxisMax,opposite:false,title:{text:Array.isArray(axisTitle)?axisTitle.length>0?axisTitle[0].name:null:axisTitle},plotLines:typeof yAxisMin!=="undefined"&&yAxisMin!==null?[]:[{value:0,zIndex:10,color:"#E4E8F0"}]}],xAxis:{categories:xAxisCategories},legend:{enabled:legend,align:align,verticalAlign:verticalAlign,layout:layout,x:x,y:y},colors:colors2!==void 0&&colors2.length>0?mapColors(colors2):highchartsTheme.colors,plotOptions:{series:{stacking:stacking,pointStart:pointStart,borderWidth:stacking?0:"",events:{},dataLabels:{enabled:false}}},series:chartData,credits:false};if(Array.isArray(axisTitle)&&axisTitle.length>1&&axisTitle[1].name){staticOptions.yAxis.push({labels:{format:typeof axisFormat==="string"?axisFormat:axisFormat[1].format},min:yAxisMin,max:yAxisMax,opposite:true,title:{text:axisTitle[1].name},plotLines:typeof yAxisMin!=="undefined"&&yAxisMin!==null?[]:[{value:0,zIndex:10,color:"#E4E8F0"}]})}if(!toggleLegendClick){staticOptions.plotOptions.series.events={legendItemClick:()=>false}}const filteredProps={...props};delete filteredProps.verticalAlign;const[options,setOptions]=useState({});useEffect((()=>{setOptions(merge(staticOptions,customOptions))}),[chartData]);return jsx(HighchartsReact,{containerProps:{className:classnames(globalProps(filteredProps),className),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options})};const alignBlockElement=event=>{const itemToMove=document.querySelector(`#wrapper-circle-chart-${event.target.renderTo.id} .pb-circle-chart-block`);const chartContainer=document.querySelector(`#${event.target.renderTo.id}`);if(itemToMove!==null&&chartContainer!==null){itemToMove.style.height=`${event.target.chartHeight}px`;itemToMove.style.width=`${event.target.chartWidth}px`;if(chartContainer.firstChild!==null){chartContainer.firstChild.before(itemToMove)}}};const CircleChart=({align:align="center",aria:aria={},rounded:rounded=false,borderColor:borderColor=(rounded?null:""),borderWidth:borderWidth=(rounded?20:null),chartData:chartData,children:children,className:className,colors:colors2=[],customOptions:customOptions={},dark:dark=false,data:data={},dataLabelHtml:dataLabelHtml="<div>{point.name}</div>",dataLabels:dataLabels=false,height:height,htmlOptions:htmlOptions={},id:id,innerSize:innerSize="md",legend:legend=false,maxPointSize:maxPointSize=null,minPointSize:minPointSize=null,startAngle:startAngle=null,style:style="pie",title:title,tooltipHtml:tooltipHtml,useHtml:useHtml=false,zMin:zMin=null,layout:layout="horizontal",verticalAlign:verticalAlign="bottom",x:x=0,y:y=0,...props})=>{const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);HighchartsMore(Highcharts);const setupTheme=()=>{dark?Highcharts.setOptions(highchartsDarkTheme):Highcharts.setOptions(highchartsTheme)};setupTheme();Highcharts.setOptions({tooltip:{headerFormat:null,pointFormat:tooltipHtml?tooltipHtml:'<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: <b>{point.y}</b>',useHTML:useHtml}});const innerSizes={sm:"35%",md:"50%",lg:"85%",none:"0%"};const innerSizeFormat=size=>innerSizes[size];const filteredProps={...props};delete filteredProps.verticalAlign;const[options,setOptions]=useState({});useEffect((()=>{const formattedChartData=chartData.map((obj=>{obj.y=obj.value;delete obj.value;return obj}));const staticOptions={title:{text:title},chart:{height:height,type:style,events:{render:event=>alignBlockElement(event),redraw:event=>alignBlockElement(event)}},legend:{align:align,verticalAlign:verticalAlign,layout:layout,x:x,y:y},plotOptions:{pie:{colors:colors2.length>0?mapColors(colors2):highchartsTheme.colors,dataLabels:{enabled:dataLabels,connectorShape:"straight",connectorWidth:3,format:dataLabelHtml},showInLegend:legend}},series:[{minPointSize:minPointSize,maxPointSize:maxPointSize,innerSize:borderWidth==20?"100%":innerSizeFormat(innerSize),data:formattedChartData,zMin:zMin,startAngle:startAngle,borderWidth:borderWidth,borderColor:borderColor}],credits:false};setOptions(merge(staticOptions,customOptions))}),[chartData]);return jsx(Fragment,{children:children?jsxs("div",{id:`wrapper-circle-chart-${id}`,children:[jsx(HighchartsReact,{containerProps:{className:classnames("pb_circle_chart",globalProps(filteredProps)),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options}),jsx("div",{className:"pb-circle-chart-block",children:children})]}):jsx(HighchartsReact,{containerProps:{className:classnames("pb_circle_chart",globalProps(filteredProps)),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options})})};const Gauge=({aria:aria={},chartData:chartData,customOptions:customOptions={},dark:dark=false,data:data={},disableAnimation:disableAnimation=false,fullCircle:fullCircle=false,height:height=null,htmlOptions:htmlOptions={},id:id,max:max=100,min:min=0,prefix:prefix="",showLabels:showLabels=false,style:style="solidgauge",suffix:suffix="",title:title="",tooltipHtml:tooltipHtml='<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: <b>{point.y}</b>',colors:colors$1=[],minorTickInterval:minorTickInterval=null,circumference:circumference=(fullCircle?[0,360]:[-100,100]),...props})=>{const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);HighchartsMore(Highcharts);SolidGauge(Highcharts);const setupTheme=()=>{dark?Highcharts.setOptions(highchartsDarkTheme):Highcharts.setOptions(highchartsTheme)};setupTheme();Highcharts.setOptions({tooltip:{pointFormat:tooltipHtml,followPointer:true}});const css=buildCss({pb_gauge_kit:true});const[options,setOptions]=useState({});useEffect((()=>{const formattedChartData=chartData.map((obj=>{obj.y=obj.value;delete obj.value;return obj}));const staticOptions={chart:{events:{load(){setTimeout(this.reflow.bind(this),0)}},type:style,height:height},title:{text:title},yAxis:{min:min,max:max,lineWidth:0,tickWidth:0,minorTickInterval:minorTickInterval,tickAmount:2,tickPositions:[min,max],labels:{y:26,enabled:showLabels}},credits:false,series:[{data:formattedChartData}],pane:{center:["50%","50%"],size:"90%",startAngle:circumference[0],endAngle:circumference[1],background:{borderWidth:20,innerRadius:"90%",outerRadius:"90%",shape:"arc",className:"gauge-pane"}},colors:colors$1!==void 0&&colors$1.length>0?mapColors(colors$1):highchartsTheme.colors,plotOptions:{series:{animation:!disableAnimation},solidgauge:{borderColor:colors$1!==void 0&&colors$1.length===1?mapColors(colors$1).join():highchartsTheme.colors[0],borderWidth:20,radius:90,innerRadius:"90%",dataLabels:{borderWidth:0,color:colors.text_lt_default,enabled:true,format:`<span class="prefix${dark?" dark":""}">${prefix}</span><span class="fix${dark?" dark":""}">{y:,f}</span><span class="suffix${dark?" dark":""}">${suffix}</span>`,style:{fontFamily:typography.font_family_base,fontWeight:typography.regular,fontSize:typography.heading_2},y:-26}}}};setOptions(merge(staticOptions,customOptions));if(document.querySelector(".prefix")){document.querySelectorAll(".prefix").forEach((prefix2=>{prefix2.setAttribute("y","28")}));document.querySelectorAll(".fix").forEach((fix=>fix.setAttribute("y","38")))}}),[chartData]);return jsx(HighchartsReact,{containerProps:{className:classnames(css,globalProps(props)),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options})};const LineGraph=({aria:aria={},data:data={},align:align="center",className:className="pb_bar_graph",customOptions:customOptions={},dark:dark=false,gradient:gradient=false,type:type="line",htmlOptions:htmlOptions={},id:id,legend:legend=false,toggleLegendClick:toggleLegendClick=true,layout:layout="horizontal",verticalAlign:verticalAlign="bottom",x:x=0,y:y=0,axisTitle:axisTitle,xAxisCategories:xAxisCategories,yAxisMin:yAxisMin,yAxisMax:yAxisMax,chartData:chartData,pointStart:pointStart,subTitle:subTitle,title:title,height:height,colors:colors2=[],...props})=>{const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const setupTheme=()=>{dark?Highcharts.setOptions(highchartsDarkTheme):Highcharts.setOptions(highchartsTheme)};setupTheme();const staticOptions={title:{text:title},chart:{height:height,type:type},subtitle:{text:subTitle},yAxis:{min:yAxisMin,max:yAxisMax,title:{text:axisTitle}},xAxis:{categories:xAxisCategories},legend:{enabled:legend,align:align,verticalAlign:verticalAlign,layout:layout,x:x,y:y},colors:colors2!==void 0&&colors2.length>0?mapColors(colors2):highchartsTheme.colors,plotOptions:{series:{pointStart:pointStart,events:{},dataLabels:{enabled:false}}},series:chartData,credits:false};if(!toggleLegendClick){staticOptions.plotOptions.series.events={legendItemClick:()=>false}}const filteredProps={...props};delete filteredProps.verticalAlign;const[options,setOptions]=useState({});useEffect((()=>{setOptions(merge(staticOptions,customOptions))}),[chartData]);return jsx(HighchartsReact,{containerProps:{className:classnames(globalProps(filteredProps),className),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options})};export{BarGraph as B,CircleChart as C,Gauge as G,LineGraph as L};
|