playbook_ui 14.23.0.pre.alpha.PLAY2243customindeterminatemaincheckboxlabels9046 → 14.23.0.pre.alpha.PLAY2283multiheaderverticalbordersdoc9335
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/_playbook.scss +0 -1
- data/app/pb_kits/playbook/pb_advanced_table/Components/CustomCell.tsx +7 -6
- data/app/pb_kits/playbook/pb_advanced_table/Components/SortIconButton.tsx +24 -25
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableActionBar.tsx +10 -10
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +11 -12
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +7 -4
- data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +78 -2
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +13 -7
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +14 -2
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +34 -0
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table_action_bar.js +16 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_vertical_border.html.erb +43 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_vertical_border.jsx +64 -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_selectable_rows_header_rails.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_rails.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_per_column.jsx +55 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_per_column.md +6 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_per_column_for_multi_column.jsx +80 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_per_column_for_multi_column.md +1 -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_multi_header.jsx +107 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header_multi_header.md +1 -0
- 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 +7 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +4 -0
- data/app/pb_kits/playbook/pb_advanced_table/flat_advanced_table.js +4 -11
- data/app/pb_kits/playbook/pb_advanced_table/index.js +108 -125
- data/app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss +7 -1
- data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +7 -4
- 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 +46 -4
- data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +13 -4
- data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +24 -5
- data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.rb +1 -1
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.md +1 -1
- data/app/pb_kits/playbook/pb_checkbox/index.js +220 -30
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.md +1 -1
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +17 -1
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +6 -0
- data/app/pb_kits/playbook/pb_dropdown/_dropdown_mixin.scss +36 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_active_style_options.jsx +90 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_active_style_options_react.md +4 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options.jsx +1 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options_react.md +1 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +3 -2
- data/app/pb_kits/playbook/pb_dropdown/docs/index.js +2 -1
- data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +24 -0
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +11 -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_multi_level_select/_helper_functions.tsx +18 -9
- data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +3 -1
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_show_checked_children.html.erb +75 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_show_checked_children.jsx +94 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_show_checked_children.md +3 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +1 -1
- data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.rb +3 -0
- data/app/pb_kits/playbook/pb_pagination/_pagination.tsx +4 -0
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_default_rails.md +3 -1
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_default_react.md +3 -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/app/pb_kits/playbook/pb_select/select.rb +4 -2
- data/dist/chunks/_line_graph-D7DgMqnT.js +1 -0
- data/dist/chunks/_typeahead-BzYZCpJO.js +6 -0
- data/dist/chunks/_weekday_stacked-CCn-qLh_.js +37 -0
- data/dist/chunks/lib-CY5ZPzic.js +29 -0
- data/dist/chunks/{pb_form_validation-DF742j1h.js → pb_form_validation-D3b0JKHH.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/menu.yml +3 -10
- data/dist/playbook-doc.js +2 -2
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/version.rb +1 -1
- metadata +32 -22
- 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/app/pb_kits/playbook/pb_walkthrough/_walkthrough.scss +0 -0
- data/app/pb_kits/playbook/pb_walkthrough/_walkthrough.tsx +0 -202
- data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_continuous.jsx +0 -69
- data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_default.jsx +0 -71
- data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_multi_beacon.jsx +0 -110
- data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_no_beacon.jsx +0 -76
- data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_no_overlay.jsx +0 -76
- data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_styled.jsx +0 -76
- data/app/pb_kits/playbook/pb_walkthrough/docs/example.yml +0 -10
- data/app/pb_kits/playbook/pb_walkthrough/docs/index.js +0 -6
- data/app/pb_kits/playbook/pb_walkthrough/walkthrough.test.jsx +0 -34
- data/dist/chunks/_gauge-BUpiCaK5.js +0 -1
- data/dist/chunks/_typeahead-ITbXBlyi.js +0 -6
- data/dist/chunks/_weekday_stacked-BIEMUAn8.js +0 -61
- data/dist/chunks/lib-AStGp3dD.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_line_graph/docs/{_line_graph_colors.md → _line_graph_colors_rails.md} +0 -0
@@ -1,6 +1,7 @@
|
|
1
1
|
import React from 'react'
|
2
|
-
|
3
|
-
import
|
2
|
+
import lineGraphTheme from '../lineGraphTheme'
|
3
|
+
import Highcharts from "highcharts"
|
4
|
+
import HighchartsReact from "highcharts-react-official"
|
4
5
|
|
5
6
|
const data = [{
|
6
7
|
name: 'Installation',
|
@@ -19,19 +20,33 @@ const data = [{
|
|
19
20
|
data: [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111],
|
20
21
|
}]
|
21
22
|
|
22
|
-
const
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
23
|
+
const categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
|
24
|
+
|
25
|
+
const chartOptions = {
|
26
|
+
series: data,
|
27
|
+
title: { text: "Solar Employment Growth by Sector, 2010-2016" },
|
28
|
+
subtitle: { text: "Source: thesolarfoundation.com" },
|
29
|
+
xAxis: {
|
30
|
+
categories: categories,
|
31
|
+
},
|
32
|
+
yAxis: {
|
33
|
+
title: {
|
34
|
+
text: "Number of Employees",
|
35
|
+
},
|
36
|
+
},
|
37
|
+
}
|
38
|
+
|
39
|
+
const LineGraphDefault = () => {
|
40
|
+
const options = Highcharts.merge({}, lineGraphTheme, chartOptions)
|
41
|
+
|
42
|
+
return(
|
43
|
+
<div>
|
44
|
+
<HighchartsReact
|
45
|
+
highcharts={Highcharts}
|
46
|
+
options={options}
|
47
|
+
/>
|
48
|
+
</div>
|
49
|
+
)
|
50
|
+
}
|
36
51
|
|
37
52
|
export default LineGraphDefault
|
@@ -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,
|
@@ -143,7 +143,8 @@ export const recursiveCheckParent = (
|
|
143
143
|
|
144
144
|
export const getExpandedItems = (
|
145
145
|
treeData: { [key: string]: string }[],
|
146
|
-
selectedIds: string[]
|
146
|
+
selectedIds: string[],
|
147
|
+
showCheckedChildren = true
|
147
148
|
): any[] => {
|
148
149
|
const expandedItems: any[] = [];
|
149
150
|
|
@@ -152,19 +153,27 @@ export const getExpandedItems = (
|
|
152
153
|
const item = items[i];
|
153
154
|
const itemAncestors = [...ancestors, item];
|
154
155
|
|
156
|
+
// Always honor explicit expanded: true
|
155
157
|
if (item.expanded) {
|
156
158
|
expandedItems.push(item.id);
|
157
159
|
}
|
158
|
-
|
159
|
-
|
160
|
+
|
161
|
+
// Only expand based on selected items if showCheckedChildren is true
|
162
|
+
if (showCheckedChildren) {
|
163
|
+
if (selectedIds && selectedIds.length && selectedIds.includes(item.id)) {
|
164
|
+
expandedItems.push(...itemAncestors.map((ancestor: any) => ancestor.id));
|
165
|
+
}
|
166
|
+
if (Array.isArray(item.children)) {
|
167
|
+
const hasCheckedChildren = item.children.some(
|
168
|
+
(child: { [key: string]: string }) => child.checked
|
169
|
+
);
|
170
|
+
if (hasCheckedChildren) {
|
171
|
+
expandedItems.push(...itemAncestors.map((ancestor: any) => ancestor.id));
|
172
|
+
}
|
173
|
+
}
|
160
174
|
}
|
175
|
+
|
161
176
|
if (Array.isArray(item.children)) {
|
162
|
-
const hasCheckedChildren = item.children.some(
|
163
|
-
(child: { [key: string]: string }) => child.checked
|
164
|
-
);
|
165
|
-
if (hasCheckedChildren) {
|
166
|
-
expandedItems.push(...itemAncestors.map((ancestor) => ancestor.id));
|
167
|
-
}
|
168
177
|
traverse(item.children, itemAncestors);
|
169
178
|
}
|
170
179
|
}
|
@@ -47,6 +47,7 @@ type MultiLevelSelectProps = {
|
|
47
47
|
name?: string
|
48
48
|
required?: boolean
|
49
49
|
returnAllSelected?: boolean
|
50
|
+
showCheckedChildren?: boolean
|
50
51
|
treeData?: { [key: string]: string; }[] | any
|
51
52
|
onChange?: (event: { target: { name?: string; value: any } }) => void
|
52
53
|
onSelect?: (prop: { [key: string]: any }) => void
|
@@ -71,6 +72,7 @@ const MultiLevelSelect = forwardRef<HTMLInputElement, MultiLevelSelectProps>((pr
|
|
71
72
|
label,
|
72
73
|
required = false,
|
73
74
|
returnAllSelected = false,
|
75
|
+
showCheckedChildren = true,
|
74
76
|
treeData,
|
75
77
|
onChange = () => null,
|
76
78
|
onSelect = () => null,
|
@@ -104,7 +106,7 @@ const MultiLevelSelect = forwardRef<HTMLInputElement, MultiLevelSelectProps>((pr
|
|
104
106
|
// State for default return
|
105
107
|
const [defaultReturn, setDefaultReturn] = useState([]);
|
106
108
|
// Get expanded items from treeData
|
107
|
-
const initialExpandedItems = getExpandedItems(treeData, selectedIds);
|
109
|
+
const initialExpandedItems = getExpandedItems(treeData, selectedIds, showCheckedChildren);
|
108
110
|
// Initialize state with expanded items
|
109
111
|
const [expanded, setExpanded] = useState(initialExpandedItems);
|
110
112
|
|