playbook_ui 14.22.0 → 14.23.0.pre.alpha.PLAY2148selectclassnamessinglespacesfix9144
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/SubRowHeaderRow.tsx +32 -11
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +0 -1
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +3 -3
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +5 -0
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +6 -0
- 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_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_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 +14 -8
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +3 -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_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_checkbox/checkbox.rb +12 -1
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate.html.erb +1 -1
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate_rails.md +2 -1
- data/app/pb_kits/playbook/pb_checkbox/index.js +3 -1
- 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_select/select.rb +4 -2
- 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_table/docs/_table_with_selectable_rows.html.erb +1 -0
- 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-DfH_cGOX.js +61 -0
- data/dist/chunks/lib-DnQyMxO1.js +29 -0
- data/dist/chunks/{pb_form_validation-Dx1C9XCK.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 +45 -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-dOC1gq2X.js +0 -22
- data/dist/chunks/_weekday_stacked-Bh8iY5uA.js +0 -45
- data/dist/chunks/lib-DtCftrUN.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
@@ -76,6 +76,30 @@ module Playbook
|
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
|
+
# Get original column definition for custom rendering
|
80
|
+
def find_original_column_def(accessor)
|
81
|
+
find_column_def_by_accessor(column_definitions, accessor)
|
82
|
+
end
|
83
|
+
|
84
|
+
# Check if a header cell has a custom renderer
|
85
|
+
def has_header_renderer?(cell)
|
86
|
+
return false unless cell[:accessor].present?
|
87
|
+
|
88
|
+
original_def = find_original_column_def(cell[:accessor])
|
89
|
+
original_def && original_def[:header].present?
|
90
|
+
end
|
91
|
+
|
92
|
+
# Render custom header content
|
93
|
+
def render_header(cell)
|
94
|
+
return cell[:label] unless has_header_renderer?(cell)
|
95
|
+
|
96
|
+
original_def = find_original_column_def(cell[:accessor])
|
97
|
+
custom_renderer = original_def[:header]
|
98
|
+
|
99
|
+
# Call the custom renderer with the cell data and label
|
100
|
+
custom_renderer.call(cell, cell[:label])
|
101
|
+
end
|
102
|
+
|
79
103
|
private
|
80
104
|
|
81
105
|
def compute_max_depth(columns)
|
@@ -148,6 +172,18 @@ module Playbook
|
|
148
172
|
end
|
149
173
|
wrapped
|
150
174
|
end
|
175
|
+
|
176
|
+
def find_column_def_by_accessor(defs, target_accessor)
|
177
|
+
defs.each do |col|
|
178
|
+
return col if col[:accessor] == target_accessor
|
179
|
+
|
180
|
+
if col[:columns].is_a?(Array)
|
181
|
+
found = find_column_def_by_accessor(col[:columns], target_accessor)
|
182
|
+
return found if found
|
183
|
+
end
|
184
|
+
end
|
185
|
+
nil
|
186
|
+
end
|
151
187
|
end
|
152
188
|
end
|
153
189
|
end
|
@@ -1,3 +1,10 @@
|
|
1
|
+
<%
|
2
|
+
row_style = object.row_styling.find { |style| style[:row_id].to_s == object.row_id.to_s }
|
3
|
+
button_color = row_style&.[](:expand_button_color)
|
4
|
+
bg_color = row_style&.[](:background_color)
|
5
|
+
font_color = row_style&.[](:font_color)
|
6
|
+
%>
|
7
|
+
|
1
8
|
<%= pb_content_tag(:tr) do %>
|
2
9
|
<% has_separate_checkbox = object.selectable_rows && object.enable_toggle_expansion == "none" %>
|
3
10
|
<% if has_separate_checkbox %>
|
@@ -5,7 +12,7 @@
|
|
5
12
|
<% end %>
|
6
13
|
<% object.column_definitions.each_with_index do |column, index| %>
|
7
14
|
<% next unless column[:accessor].present? %>
|
8
|
-
<%= pb_rails("table/table_cell", props: { classname:object.td_classname(column, index)}) do %>
|
15
|
+
<%= pb_rails("table/table_cell", props: { html_options: { style: { "background-color": bg_color, color: font_color } }, classname:object.td_classname(column, index)}) do %>
|
9
16
|
<%= pb_rails("flex", props:{ align: "center", justify: object.justify_for(column, index), classname: object.loading ? "loading-cell" : "" }) do %>
|
10
17
|
<% if collapsible_trail && index.zero? %>
|
11
18
|
<% (1..depth).each do |i| %>
|
@@ -28,7 +35,9 @@
|
|
28
35
|
<button
|
29
36
|
id="<%= "#{object.id}_#{object.row.object_id}" %>"
|
30
37
|
class="gray-icon expand-toggle-icon"
|
31
|
-
data-advanced-table="true"
|
38
|
+
data-advanced-table="true"
|
39
|
+
style="color: <%= button_color %>"
|
40
|
+
>
|
32
41
|
<%= pb_rails("icon", props: { id: "advanced-table_open_icon", icon: "circle-play", cursor: "pointer" }) %>
|
33
42
|
<%= pb_rails("icon", props: { id: "advanced-table_close_icon", icon: "circle-play", cursor: "pointer", rotation: 90 }) %>
|
34
43
|
</button>
|
@@ -27,6 +27,8 @@ module Playbook
|
|
27
27
|
prop :enable_toggle_expansion, type: Playbook::Props::Enum,
|
28
28
|
values: %w[all header none],
|
29
29
|
default: "header"
|
30
|
+
prop :row_styling, type: Playbook::Props::Array,
|
31
|
+
default: []
|
30
32
|
|
31
33
|
def data
|
32
34
|
Hash(prop(:data)).merge(table_data_attributes)
|
@@ -5,7 +5,7 @@
|
|
5
5
|
@import "../tokens/typography";
|
6
6
|
|
7
7
|
[class^=pb_badge_kit] {
|
8
|
-
$
|
8
|
+
$pb_badge_height_rounded: 16px;
|
9
9
|
|
10
10
|
display: inline-flex;
|
11
11
|
align-items: center;
|
@@ -13,7 +13,6 @@
|
|
13
13
|
border-radius: $border_rad_light;
|
14
14
|
padding: 0 $space_xs/2;
|
15
15
|
border-width: 1px;
|
16
|
-
border-style: solid;
|
17
16
|
border-color: $card_light;
|
18
17
|
white-space: nowrap;
|
19
18
|
|
@@ -31,10 +30,10 @@
|
|
31
30
|
}
|
32
31
|
|
33
32
|
&[class*=_rounded] {
|
34
|
-
height: $
|
35
|
-
min-height: $
|
36
|
-
min-width: $
|
37
|
-
border-radius: $
|
33
|
+
height: $pb_badge_height_rounded;
|
34
|
+
min-height: $pb_badge_height_rounded;
|
35
|
+
min-width: $pb_badge_height_rounded;
|
36
|
+
border-radius: $pb_badge_height_rounded / 2;
|
38
37
|
}
|
39
38
|
|
40
39
|
&[class*=_notification] {
|
@@ -0,0 +1,106 @@
|
|
1
|
+
import colors from '../tokens/exports/_colors.module.scss'
|
2
|
+
import typography from '../tokens/exports/_typography.module.scss'
|
3
|
+
|
4
|
+
const barGraphTheme = {
|
5
|
+
title: {
|
6
|
+
text: "",
|
7
|
+
style: {
|
8
|
+
color: colors.text_lt_default,
|
9
|
+
fontFamily: typography.font_family_base,
|
10
|
+
fontWeight: typography.bold,
|
11
|
+
fontSize: typography.heading_3,
|
12
|
+
},
|
13
|
+
},
|
14
|
+
subtitle: {
|
15
|
+
text: "",
|
16
|
+
style: {
|
17
|
+
fontFamily: typography.font_family_base,
|
18
|
+
color: colors.text_lt_light,
|
19
|
+
fontWeight: typography.regular,
|
20
|
+
fontSize: typography.text_base,
|
21
|
+
},
|
22
|
+
},
|
23
|
+
chart: {
|
24
|
+
type: "column",
|
25
|
+
},
|
26
|
+
tooltip: {
|
27
|
+
backgroundColor: {
|
28
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
29
|
+
stops: [
|
30
|
+
[0, colors.bg_dark],
|
31
|
+
[1, colors.bg_dark],
|
32
|
+
],
|
33
|
+
},
|
34
|
+
style: {
|
35
|
+
fontFamily: typography.font_family_base,
|
36
|
+
color: colors.text_dk_default,
|
37
|
+
fontWeight: typography.regular,
|
38
|
+
fontSize: typography.text_smaller,
|
39
|
+
},
|
40
|
+
},
|
41
|
+
colors: [
|
42
|
+
colors.data_1,
|
43
|
+
colors.data_2,
|
44
|
+
colors.data_3,
|
45
|
+
colors.data_4,
|
46
|
+
colors.data_5,
|
47
|
+
colors.data_6,
|
48
|
+
colors.data_7,
|
49
|
+
],
|
50
|
+
credits: { enabled: false },
|
51
|
+
legend: {
|
52
|
+
enabled: false,
|
53
|
+
itemStyle: {
|
54
|
+
color: colors.text_lt_light,
|
55
|
+
fill: colors.text_lt_light,
|
56
|
+
fontSize: typography.text_smaller,
|
57
|
+
},
|
58
|
+
},
|
59
|
+
xAxis: {
|
60
|
+
gridLineWidth: 0,
|
61
|
+
lineColor: colors.border_light,
|
62
|
+
tickColor: colors.border_light,
|
63
|
+
labels: {
|
64
|
+
style: {
|
65
|
+
fontFamily: typography.font_family_base,
|
66
|
+
color: colors.text_lt_lighter,
|
67
|
+
fontWeight: typography.bold,
|
68
|
+
fontSize: typography.text_smaller,
|
69
|
+
},
|
70
|
+
},
|
71
|
+
title: {
|
72
|
+
style: {
|
73
|
+
color: colors.text_lt_default,
|
74
|
+
fontFamily: typography.font_family_base,
|
75
|
+
fontWeight: typography.regular,
|
76
|
+
fontSize: typography.heading_4,
|
77
|
+
},
|
78
|
+
},
|
79
|
+
},
|
80
|
+
yAxis: {
|
81
|
+
alternateGridColor: undefined as string | undefined,
|
82
|
+
minorTickInterval: null as number | null,
|
83
|
+
gridLineColor: colors.border_light,
|
84
|
+
minorGridLineColor: colors.border_light,
|
85
|
+
lineWidth: 0,
|
86
|
+
tickWidth: 0,
|
87
|
+
labels: {
|
88
|
+
style: {
|
89
|
+
fontFamily: typography.font_family_base,
|
90
|
+
color: colors.text_lt_lighter,
|
91
|
+
fontWeight: typography.bold,
|
92
|
+
fontSize: typography.text_smaller,
|
93
|
+
},
|
94
|
+
},
|
95
|
+
title: {
|
96
|
+
style: {
|
97
|
+
fontFamily: typography.font_family_base,
|
98
|
+
color: colors.text_lt_lighter,
|
99
|
+
fontWeight: typography.bold,
|
100
|
+
fontSize: typography.text_smaller,
|
101
|
+
},
|
102
|
+
},
|
103
|
+
},
|
104
|
+
}
|
105
|
+
|
106
|
+
export default barGraphTheme;
|
@@ -1,6 +1,10 @@
|
|
1
1
|
import React from 'react'
|
2
|
+
import colors from '../../tokens/exports/_colors.module.scss'
|
3
|
+
import barGraphTheme from '../barGraphTheme';
|
4
|
+
import Highcharts from "highcharts";
|
5
|
+
import HighchartsReact from "highcharts-react-official";
|
6
|
+
|
2
7
|
|
3
|
-
import BarGraph from '../_bar_graph'
|
4
8
|
|
5
9
|
const chartData = [{
|
6
10
|
name: 'Installation',
|
@@ -19,19 +23,33 @@ const chartData = [{
|
|
19
23
|
data: [1111, 677, 3245, 500, 200],
|
20
24
|
}]
|
21
25
|
|
22
|
-
const
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
26
|
+
const chartOptions = {
|
27
|
+
series: chartData,
|
28
|
+
title: {
|
29
|
+
text: "Bar Graph with Custom Data Colors",
|
30
|
+
},
|
31
|
+
xAxis: {
|
32
|
+
categories: ["Jan", "Feb", "Mar", "Apr", "May"],
|
33
|
+
},
|
34
|
+
yAxis: {
|
35
|
+
title: {
|
36
|
+
text: "Number of Employees",
|
37
|
+
},
|
38
|
+
},
|
39
|
+
colors: [colors.data_4, colors.data_5, colors.data_6, colors.data_7, colors.data_8],
|
40
|
+
}
|
41
|
+
|
42
|
+
const BarGraphColors = () => {
|
43
|
+
const options = Highcharts.merge({}, barGraphTheme, chartOptions)
|
44
|
+
|
45
|
+
return (
|
46
|
+
<div>
|
47
|
+
<HighchartsReact
|
48
|
+
highcharts={Highcharts}
|
49
|
+
options={options}
|
50
|
+
/>
|
51
|
+
</div>
|
52
|
+
)
|
53
|
+
}
|
36
54
|
|
37
55
|
export default BarGraphColors
|
@@ -1,6 +1,8 @@
|
|
1
1
|
import React from 'react'
|
2
|
+
import barGraphTheme from '../barGraphTheme';
|
3
|
+
import Highcharts from "highcharts";
|
4
|
+
import HighchartsReact from "highcharts-react-official";
|
2
5
|
|
3
|
-
import BarGraph from '../_bar_graph'
|
4
6
|
|
5
7
|
const chartData = [{
|
6
8
|
name: 'Installation',
|
@@ -19,19 +21,35 @@ const chartData = [{
|
|
19
21
|
data: [1111, 677, 3245, 500, 200],
|
20
22
|
}]
|
21
23
|
|
22
|
-
const
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
24
|
+
const chartOptions = {
|
25
|
+
series: chartData,
|
26
|
+
title: {
|
27
|
+
text: 'Solar Employment Growth by Sector, 2010-2016',
|
28
|
+
},
|
29
|
+
subtitle: {
|
30
|
+
text: 'Source: thesolarfoundation.com',
|
31
|
+
},
|
32
|
+
xAxis: {
|
33
|
+
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
|
34
|
+
},
|
35
|
+
yAxis: {
|
36
|
+
title: {
|
37
|
+
text: 'Number of Employees',
|
38
|
+
},
|
39
|
+
},
|
40
|
+
}
|
41
|
+
|
42
|
+
const BarGraphDefault = () => {
|
43
|
+
const options = Highcharts.merge({}, barGraphTheme, chartOptions)
|
44
|
+
|
45
|
+
return (
|
46
|
+
<div>
|
47
|
+
<HighchartsReact
|
48
|
+
highcharts={Highcharts}
|
49
|
+
options={options}
|
50
|
+
/>
|
51
|
+
</div>
|
52
|
+
)
|
53
|
+
}
|
36
54
|
|
37
55
|
export default BarGraphDefault
|
@@ -1,39 +1,69 @@
|
|
1
1
|
import React from 'react'
|
2
|
+
import barGraphTheme from '../barGraphTheme';
|
3
|
+
import Highcharts from "highcharts";
|
4
|
+
import HighchartsReact from "highcharts-react-official";
|
2
5
|
|
3
|
-
import BarGraph from '../_bar_graph'
|
4
6
|
|
5
7
|
const chartData = [{
|
6
8
|
name: 'Number of Installations',
|
7
9
|
data: [1475, 200, 3000, 654, 656],
|
8
10
|
}]
|
9
11
|
|
10
|
-
const
|
12
|
+
const pixelHeightChartOptions = {
|
13
|
+
chart: {
|
14
|
+
height: "300"
|
15
|
+
},
|
16
|
+
series: chartData,
|
17
|
+
title: {
|
18
|
+
text: "Fixed Height (300px)",
|
19
|
+
},
|
20
|
+
xAxis: {
|
21
|
+
categories: ["Jan", "Feb", "Mar", "Apr", "May"],
|
22
|
+
},
|
23
|
+
yAxis: {
|
24
|
+
title: {
|
25
|
+
text: "Number of Employees",
|
26
|
+
},
|
27
|
+
},
|
28
|
+
};
|
29
|
+
|
30
|
+
const percentageHeightChartOptions = {
|
31
|
+
chart: {
|
32
|
+
height: "50%"
|
33
|
+
},
|
34
|
+
series: chartData,
|
35
|
+
title: {
|
36
|
+
text: "Percentage Height (50%)",
|
37
|
+
},
|
38
|
+
xAxis: {
|
39
|
+
categories: ["Jan", "Feb", "Mar", "Apr", "May"],
|
40
|
+
},
|
41
|
+
yAxis: {
|
42
|
+
title: {
|
43
|
+
text: "Number of Employees",
|
44
|
+
},
|
45
|
+
},
|
46
|
+
};
|
47
|
+
|
48
|
+
const pixelOptions = Highcharts.merge({}, barGraphTheme, pixelHeightChartOptions)
|
49
|
+
|
50
|
+
const percentageOptions = Highcharts.merge({}, barGraphTheme, percentageHeightChartOptions)
|
51
|
+
|
52
|
+
const BarGraphHeight = () => (
|
11
53
|
<div>
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
id="bar-fixed-height"
|
17
|
-
title="Fixed Height (300px)"
|
18
|
-
xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']}
|
19
|
-
yAxisMin={0}
|
20
|
-
{...props}
|
21
|
-
/>
|
54
|
+
<HighchartsReact
|
55
|
+
highcharts={Highcharts}
|
56
|
+
options={pixelOptions}
|
57
|
+
/>
|
22
58
|
|
23
59
|
<br />
|
24
60
|
<br />
|
25
61
|
|
26
|
-
<
|
27
|
-
|
28
|
-
|
29
|
-
height="50%"
|
30
|
-
id="bar-percentage-height"
|
31
|
-
title="Percentage Height (50%)"
|
32
|
-
xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']}
|
33
|
-
yAxisMin={0}
|
34
|
-
{...props}
|
62
|
+
<HighchartsReact
|
63
|
+
highcharts={Highcharts}
|
64
|
+
options={percentageOptions}
|
35
65
|
/>
|
36
66
|
</div>
|
37
67
|
)
|
38
68
|
|
39
|
-
export default
|
69
|
+
export default BarGraphHeight
|
@@ -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,9 +1,10 @@
|
|
1
1
|
import React from 'react'
|
2
|
+
import barGraphTheme from '../barGraphTheme';
|
3
|
+
import Highcharts from "highcharts";
|
4
|
+
import HighchartsReact from "highcharts-react-official";
|
2
5
|
|
3
|
-
import BarGraph from '../_bar_graph'
|
4
6
|
|
5
|
-
|
6
|
-
const barGraphOptions = {
|
7
|
+
const chartOptions = {
|
7
8
|
chart: {
|
8
9
|
type: 'bar'
|
9
10
|
},
|
@@ -22,13 +23,8 @@ const barGraphOptions = {
|
|
22
23
|
lineWidth: 0
|
23
24
|
},
|
24
25
|
yAxis: {
|
25
|
-
min: 0,
|
26
26
|
title: {
|
27
|
-
text: '
|
28
|
-
align: 'high'
|
29
|
-
},
|
30
|
-
labels: {
|
31
|
-
overflow: 'justify'
|
27
|
+
text: '',
|
32
28
|
},
|
33
29
|
},
|
34
30
|
tooltip: {
|
@@ -51,16 +47,16 @@ const barGraphOptions = {
|
|
51
47
|
}, {
|
52
48
|
name: 'Year 2018',
|
53
49
|
data: [1276, 1007, 4561, 746]
|
54
|
-
}]
|
50
|
+
}],
|
55
51
|
}
|
56
52
|
|
57
|
-
const
|
53
|
+
const options = Highcharts.merge({}, barGraphTheme, chartOptions)
|
54
|
+
|
55
|
+
const BarGraphHorizontal = () => (
|
58
56
|
<div>
|
59
|
-
<
|
60
|
-
|
61
|
-
|
62
|
-
yAxisMin={0}
|
63
|
-
{...props}
|
57
|
+
<HighchartsReact
|
58
|
+
highcharts={Highcharts}
|
59
|
+
options={options}
|
64
60
|
/>
|
65
61
|
</div>
|
66
62
|
)
|
@@ -1,24 +1,40 @@
|
|
1
1
|
import React from 'react'
|
2
|
-
import
|
2
|
+
import barGraphTheme from '../barGraphTheme';
|
3
|
+
import Highcharts from "highcharts";
|
4
|
+
import HighchartsReact from "highcharts-react-official";
|
5
|
+
|
3
6
|
|
4
7
|
const chartData = [{
|
5
8
|
name: 'Number of Installations',
|
6
9
|
data: [1475, 200, 3000, 654, 656],
|
7
10
|
}]
|
8
11
|
|
9
|
-
const
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
12
|
+
const chartOptions = {
|
13
|
+
series: chartData,
|
14
|
+
title: {
|
15
|
+
text: 'Bar Graph with Legend',
|
16
|
+
},
|
17
|
+
xAxis: {
|
18
|
+
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
|
19
|
+
},
|
20
|
+
yAxis: {
|
21
|
+
title: {
|
22
|
+
text: 'Number of Employees',
|
23
|
+
},
|
24
|
+
},
|
25
|
+
legend: { enabled: true },
|
26
|
+
}
|
23
27
|
|
28
|
+
const BarGraphLegend = () => {
|
29
|
+
const options = Highcharts.merge({}, barGraphTheme, chartOptions)
|
30
|
+
|
31
|
+
return (
|
32
|
+
<div>
|
33
|
+
<HighchartsReact
|
34
|
+
highcharts={Highcharts}
|
35
|
+
options={options}
|
36
|
+
/>
|
37
|
+
</div>
|
38
|
+
)
|
39
|
+
}
|
24
40
|
export default BarGraphLegend
|
@@ -1,25 +1,48 @@
|
|
1
1
|
import React from 'react'
|
2
|
-
import
|
2
|
+
import barGraphTheme from '../barGraphTheme';
|
3
|
+
import Highcharts from "highcharts";
|
4
|
+
import HighchartsReact from "highcharts-react-official";
|
5
|
+
|
3
6
|
|
4
7
|
const chartData = [{
|
5
8
|
name: 'Number of Installations',
|
6
9
|
data: [1475, 200, 3000, 654, 656],
|
7
10
|
}]
|
8
11
|
|
9
|
-
const
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
12
|
+
const chartOptions = {
|
13
|
+
title: {
|
14
|
+
text: 'Bar Graph with Legend Non Clickable',
|
15
|
+
},
|
16
|
+
xAxis: {
|
17
|
+
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
|
18
|
+
},
|
19
|
+
yAxis: {
|
20
|
+
title: {
|
21
|
+
text: 'Number of Employees',
|
22
|
+
},
|
23
|
+
},
|
24
|
+
legend: {
|
25
|
+
enabled: true,
|
26
|
+
events: {
|
27
|
+
itemClick: function () {
|
28
|
+
return false;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
},
|
32
|
+
series: chartData
|
33
|
+
}
|
34
|
+
|
35
|
+
const BarGraphLegendNonClickable = () => {
|
36
|
+
const options = Highcharts.merge({}, barGraphTheme, chartOptions)
|
37
|
+
|
38
|
+
return (
|
39
|
+
<div>
|
40
|
+
<HighchartsReact
|
41
|
+
highcharts={Highcharts}
|
42
|
+
options={options}
|
43
|
+
/>
|
44
|
+
</div>
|
45
|
+
)
|
46
|
+
}
|
24
47
|
|
25
48
|
export default BarGraphLegendNonClickable
|