playbook_ui 14.22.0.pre.rc.7 → 14.23.0.pre.alpha.PLAY2205atborderbug9085
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/Components/CustomCell.tsx +6 -7
- data/app/pb_kits/playbook/pb_advanced_table/Components/SubRowHeaderRow.tsx +32 -11
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableActionBar.tsx +10 -10
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +72 -3
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +15 -6
- 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 +13 -1
- 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_custom_sort.jsx +65 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_custom_sort.md +5 -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.jsx +69 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_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 +13 -8
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss +23 -2
- 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 +13 -4
- data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +2 -0
- data/app/pb_kits/playbook/pb_badge/_badge.scss +5 -6
- data/app/pb_kits/playbook/pb_bar_graph/barGraphTheme.ts +106 -0
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.jsx +33 -15
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_default.jsx +33 -15
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.jsx +52 -22
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.md +3 -0
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_horizontal.jsx +12 -16
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend.jsx +31 -15
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.jsx +39 -16
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.jsx +86 -38
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.md +1 -1
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_negative_numbers.jsx +32 -15
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.jsx +72 -22
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.md +1 -1
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_spline.jsx +31 -15
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_stacked.jsx +37 -16
- data/app/pb_kits/playbook/pb_bar_graph/docs/_description.md +1 -3
- data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +1 -3
- data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +0 -2
- data/app/pb_kits/playbook/pb_body/docs/_body_truncate.jsx +3 -3
- data/app/pb_kits/playbook/pb_body/docs/_body_truncate_react.md +4 -0
- data/app/pb_kits/playbook/pb_circle_chart/circleChartTheme.ts +36 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.jsx +71 -26
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.jsx +29 -16
- data/app/pb_kits/playbook/pb_circle_chart/docs/{_circle_chart_colors.md → _circle_chart_colors_rails.md} +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors_react.md +2 -0
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.jsx +28 -16
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.md +4 -2
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.jsx +23 -15
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_inner_sizes.jsx +81 -51
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.jsx +103 -75
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.md +4 -7
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_live_data.jsx +19 -13
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.jsx +30 -17
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_labels.jsx +34 -20
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_legend_kit.jsx +29 -20
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_title.jsx +28 -20
- data/app/pb_kits/playbook/pb_circle_chart/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_draggable/context/index.tsx +12 -4
- data/app/pb_kits/playbook/pb_draggable/context/types.ts +5 -2
- 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 +30 -17
- 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_table/_table.tsx +4 -4
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns.jsx +8 -8
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns_react.md +1 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns.jsx +12 -12
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns_react.md +3 -3
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns.jsx +12 -12
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns_react.md +3 -3
- data/app/pb_kits/playbook/pb_title/docs/_title_truncate.jsx +3 -3
- data/app/pb_kits/playbook/pb_title/docs/_title_truncate_react.md +4 -0
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open.html.erb +14 -0
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open_rails.md +1 -0
- data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_tooltip/index.js +59 -36
- data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +9 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input.html.erb +18 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input_rails.md +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_typeahead/typeahead.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-BNHSKTSw.js +61 -0
- data/dist/chunks/lib-DnQyMxO1.js +29 -0
- data/dist/chunks/{pb_form_validation-DqRmTS8m.js → pb_form_validation-kl-4Jv4t.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/menu.yml +68 -8
- 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 +2 -2
- metadata +43 -25
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.jsx +0 -72
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.md +0 -6
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +0 -64
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +0 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.jsx +0 -38
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.md +0 -1
- 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/_typeahead-B7FRYVtS.js +0 -22
- data/dist/chunks/_weekday_stacked-B0oaGhTW.js +0 -45
- data/dist/chunks/lib-Carqm8Ip.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_body/docs/{_body_truncate.md → _body_truncate_rails.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
- /data/app/pb_kits/playbook/pb_title/docs/{_title_truncate.md → _title_truncate_rails.md} +0 -0
- /data/app/pb_kits/playbook/pb_tooltip/docs/{_tooltip_click_open.md → _tooltip_click_open_react.md} +0 -0
- /data/app/pb_kits/playbook/pb_typeahead/docs/{_typeahead_preserve_input.md → _typeahead_preserve_input_react.md} +0 -0
@@ -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
|
|
@@ -68,7 +69,7 @@ const containOnlyNumbers = (value: string) => {
|
|
68
69
|
return /^[()+\-\ .\d]*$/g.test(value)
|
69
70
|
}
|
70
71
|
|
71
|
-
const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.
|
72
|
+
const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.Ref<unknown>) => {
|
72
73
|
const {
|
73
74
|
aria = {},
|
74
75
|
className,
|
@@ -94,6 +95,7 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.MutableRefOb
|
|
94
95
|
preferredCountries = [],
|
95
96
|
value = "",
|
96
97
|
formatAsYouType = false,
|
98
|
+
strictMode = false,
|
97
99
|
countrySearch = false,
|
98
100
|
} = props
|
99
101
|
|
@@ -106,15 +108,16 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.MutableRefOb
|
|
106
108
|
className
|
107
109
|
)
|
108
110
|
|
109
|
-
const inputRef = useRef<HTMLInputElement>()
|
111
|
+
const inputRef = useRef<HTMLInputElement | null>(null)
|
110
112
|
const itiRef = useRef<any>(null);
|
111
113
|
const [inputValue, setInputValue] = useState(value)
|
112
114
|
const [error, setError] = useState(props.error)
|
113
115
|
const [dropDownIsOpen, setDropDownIsOpen] = useState(false)
|
114
116
|
const [selectedData, setSelectedData] = useState()
|
117
|
+
const [hasTyped, setHasTyped] = useState(false)
|
115
118
|
|
116
119
|
useEffect(() => {
|
117
|
-
if (error
|
120
|
+
if ((error ?? '').length > 0) {
|
118
121
|
onValidate(false)
|
119
122
|
} else {
|
120
123
|
onValidate(true)
|
@@ -131,6 +134,7 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.MutableRefOb
|
|
131
134
|
clearField() {
|
132
135
|
setInputValue("")
|
133
136
|
setError("")
|
137
|
+
setHasTyped(false)
|
134
138
|
},
|
135
139
|
inputNode() {
|
136
140
|
return inputRef.current
|
@@ -201,6 +205,8 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.MutableRefOb
|
|
201
205
|
}
|
202
206
|
|
203
207
|
const validateErrors = () => {
|
208
|
+
if (!hasTyped && !error) return
|
209
|
+
|
204
210
|
if (itiRef.current) isValid(itiRef.current.isValidNumber())
|
205
211
|
if (validateOnlyNumbers(itiRef.current)) return
|
206
212
|
if (validateTooLongNumber(itiRef.current)) return
|
@@ -214,6 +220,7 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.MutableRefOb
|
|
214
220
|
}
|
215
221
|
|
216
222
|
const handleOnChange = (evt: React.ChangeEvent<HTMLInputElement>) => {
|
223
|
+
if (!hasTyped) setHasTyped(true)
|
217
224
|
setInputValue(evt.target.value)
|
218
225
|
let phoneNumberData
|
219
226
|
if (formatAsYouType) {
|
@@ -251,6 +258,7 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.MutableRefOb
|
|
251
258
|
countrySearch: countrySearch,
|
252
259
|
fixDropdownWidth: false,
|
253
260
|
formatAsYouType: formatAsYouType,
|
261
|
+
strictMode: strictMode,
|
254
262
|
hiddenInput: hiddenInputs ? () => ({
|
255
263
|
phone: `${name}_full`,
|
256
264
|
country: `${name}_country_code`,
|
@@ -259,16 +267,17 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.MutableRefOb
|
|
259
267
|
|
260
268
|
itiRef.current = telInputInit;
|
261
269
|
|
262
|
-
inputRef.current
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
inputRef.current.addEventListener("open:countrydropdown", () => setDropDownIsOpen(true))
|
270
|
-
inputRef.current.addEventListener("close:countrydropdown", () => setDropDownIsOpen(false))
|
270
|
+
if (inputRef.current) {
|
271
|
+
inputRef.current.addEventListener("countrychange", (evt: Event) => {
|
272
|
+
const phoneNumberData = getCurrentSelectedData(telInputInit, (evt.target as HTMLInputElement).value)
|
273
|
+
setSelectedData(phoneNumberData)
|
274
|
+
onChange(phoneNumberData)
|
275
|
+
validateErrors()
|
276
|
+
})
|
271
277
|
|
278
|
+
inputRef.current.addEventListener("open:countrydropdown", () => setDropDownIsOpen(true))
|
279
|
+
inputRef.current.addEventListener("close:countrydropdown", () => setDropDownIsOpen(false))
|
280
|
+
}
|
272
281
|
if (formatAsYouType) {
|
273
282
|
inputRef.current?.addEventListener("input", (evt) => {
|
274
283
|
handleOnChange(evt as unknown as React.ChangeEvent<HTMLInputElement>);
|
@@ -303,12 +312,16 @@ const PhoneNumberInput = (props: PhoneNumberInputProps, ref?: React.MutableRefOb
|
|
303
312
|
{...htmlProps}
|
304
313
|
>
|
305
314
|
<TextInput
|
306
|
-
ref={
|
307
|
-
|
308
|
-
|
309
|
-
|
315
|
+
ref={inputNode => {
|
316
|
+
if (ref) {
|
317
|
+
if (typeof ref === 'function') {
|
318
|
+
ref(inputNode)
|
319
|
+
} else {
|
320
|
+
(ref as React.MutableRefObject<HTMLInputElement | null>).current = inputNode
|
321
|
+
}
|
310
322
|
}
|
311
|
-
|
323
|
+
inputRef.current = inputNode
|
324
|
+
}}
|
312
325
|
{...textInputProps}
|
313
326
|
/>
|
314
327
|
</div>
|
@@ -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,
|
@@ -104,8 +104,8 @@ const Table = (props: TableProps): React.ReactElement => {
|
|
104
104
|
|
105
105
|
stickyLeftColumn.forEach((colId, index) => {
|
106
106
|
const isLastColumn = index === stickyLeftColumn.length - 1;
|
107
|
-
const header = document.querySelector(`th[id="${colId}"]`);
|
108
|
-
const cells = document.querySelectorAll(`td[id="${colId}"]`);
|
107
|
+
const header = document.querySelector(`th[data-sticky-id="${colId}"]`);
|
108
|
+
const cells = document.querySelectorAll(`td[data-sticky-id="${colId}"]`);
|
109
109
|
|
110
110
|
if (header) {
|
111
111
|
header.classList.add('sticky');
|
@@ -155,8 +155,8 @@ const Table = (props: TableProps): React.ReactElement => {
|
|
155
155
|
|
156
156
|
stickyRightColumnReversed.forEach((colId, index) => {
|
157
157
|
const isLastColumn = index === stickyRightColumn.length - 1;
|
158
|
-
const header = document.querySelector(`th[id="${colId}"]`);
|
159
|
-
const cells = document.querySelectorAll(`td[id="${colId}"]`);
|
158
|
+
const header = document.querySelector(`th[data-sticky-id="${colId}"]`);
|
159
|
+
const cells = document.querySelectorAll(`td[data-sticky-id="${colId}"]`);
|
160
160
|
|
161
161
|
if (header) {
|
162
162
|
header.classList.add('sticky');
|
@@ -11,7 +11,7 @@ const TableStickyColumns = () => {
|
|
11
11
|
>
|
12
12
|
<thead>
|
13
13
|
<tr>
|
14
|
-
<th id="a">{'Column 1'}</th>
|
14
|
+
<th data-sticky-id="a">{'Column 1'}</th>
|
15
15
|
<th>{'Column 2'}</th>
|
16
16
|
<th>{'Column 3'}</th>
|
17
17
|
<th>{'Column 4'}</th>
|
@@ -25,12 +25,12 @@ const TableStickyColumns = () => {
|
|
25
25
|
<th>{'Column 12'}</th>
|
26
26
|
<th>{'Column 13'}</th>
|
27
27
|
<th>{'Column 14'}</th>
|
28
|
-
<th id="b">{'Column 15'}</th>
|
28
|
+
<th data-sticky-id="b">{'Column 15'}</th>
|
29
29
|
</tr>
|
30
30
|
</thead>
|
31
31
|
<tbody>
|
32
32
|
<tr>
|
33
|
-
<td id="a">{'Value 1'}</td>
|
33
|
+
<td data-sticky-id="a">{'Value 1'}</td>
|
34
34
|
<td>{'Value 2'}</td>
|
35
35
|
<td>{'Value 3'}</td>
|
36
36
|
<td>{'Value 4'}</td>
|
@@ -44,10 +44,10 @@ const TableStickyColumns = () => {
|
|
44
44
|
<td>{'Value 12'}</td>
|
45
45
|
<td>{'Value 13'}</td>
|
46
46
|
<td>{'Value 14'}</td>
|
47
|
-
<td id="b">{'Value 15'}</td>
|
47
|
+
<td data-sticky-id="b">{'Value 15'}</td>
|
48
48
|
</tr>
|
49
49
|
<tr>
|
50
|
-
<td id="a">{'Value 1'}</td>
|
50
|
+
<td data-sticky-id="a">{'Value 1'}</td>
|
51
51
|
<td>{'Value 2'}</td>
|
52
52
|
<td>{'Value 3'}</td>
|
53
53
|
<td>{'Value 4'}</td>
|
@@ -61,10 +61,10 @@ const TableStickyColumns = () => {
|
|
61
61
|
<td>{'Value 12'}</td>
|
62
62
|
<td>{'Value 13'}</td>
|
63
63
|
<td>{'Value 14'}</td>
|
64
|
-
<td id="b">{'Value 15'}</td>
|
64
|
+
<td data-sticky-id="b">{'Value 15'}</td>
|
65
65
|
</tr>
|
66
66
|
<tr>
|
67
|
-
<td id="a">{'Value 1'}</td>
|
67
|
+
<td data-sticky-id="a">{'Value 1'}</td>
|
68
68
|
<td>{'Value 2'}</td>
|
69
69
|
<td>{'Value 3'}</td>
|
70
70
|
<td>{'Value 4'}</td>
|
@@ -78,7 +78,7 @@ const TableStickyColumns = () => {
|
|
78
78
|
<td>{'Value 12'}</td>
|
79
79
|
<td>{'Value 13'}</td>
|
80
80
|
<td>{'Value 14'}</td>
|
81
|
-
<td id="b">{'Value 15'}</td>
|
81
|
+
<td data-sticky-id="b">{'Value 15'}</td>
|
82
82
|
</tr>
|
83
83
|
</tbody>
|
84
84
|
</Table>
|