playbook_ui 14.22.0.pre.alpha.PLAY22588587 → 14.22.0.pre.alpha.play2261highchartsbargraphimportedstyles8730

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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/CustomCell.tsx +6 -7
  3. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +2 -2
  4. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +5 -0
  5. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header.jsx +69 -0
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_with_custom_header.md +1 -0
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +1 -0
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +2 -1
  9. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +2 -2
  10. data/app/pb_kits/playbook/pb_bar_graph/barGraphTheme.ts +106 -0
  11. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.jsx +33 -15
  12. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_default.jsx +33 -15
  13. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.jsx +52 -22
  14. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.md +3 -0
  15. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_horizontal.jsx +12 -16
  16. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend.jsx +31 -15
  17. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.jsx +39 -16
  18. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.jsx +86 -38
  19. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_negative_numbers.jsx +33 -15
  20. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.jsx +72 -22
  21. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.md +1 -1
  22. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_spline.jsx +32 -15
  23. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_stacked.jsx +37 -16
  24. data/app/pb_kits/playbook/pb_bar_graph/docs/_description.md +1 -3
  25. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +1 -3
  26. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +0 -2
  27. data/app/pb_kits/playbook/pb_table/_table.tsx +4 -4
  28. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns.jsx +8 -8
  29. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns_react.md +1 -1
  30. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns.jsx +12 -12
  31. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns_react.md +3 -3
  32. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns.jsx +12 -12
  33. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns_react.md +3 -3
  34. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input.html.erb +18 -0
  35. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input_rails.md +1 -0
  36. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +1 -0
  37. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +3 -0
  38. data/dist/chunks/_bar_graph-iq9-hk-x.js +1 -0
  39. data/dist/chunks/{_typeahead-B7FRYVtS.js → _typeahead-DeLOYzLb.js} +3 -3
  40. data/dist/chunks/_weekday_stacked-bjb7ElwG.js +45 -0
  41. data/dist/chunks/{lib-Carqm8Ip.js → lib-GtpYwIew.js} +1 -1
  42. data/dist/chunks/{pb_form_validation-DqRmTS8m.js → pb_form_validation-BCfG-8Zp.js} +1 -1
  43. data/dist/chunks/vendor.js +1 -1
  44. data/dist/playbook-doc.js +2 -2
  45. data/dist/playbook-rails-react-bindings.js +1 -1
  46. data/dist/playbook-rails.js +1 -1
  47. data/dist/playbook.css +1 -1
  48. data/lib/playbook/version.rb +1 -1
  49. metadata +14 -11
  50. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.jsx +0 -72
  51. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.md +0 -6
  52. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +0 -64
  53. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +0 -1
  54. data/dist/chunks/_weekday_stacked-D1TcPO8F.js +0 -45
  55. /data/app/pb_kits/playbook/pb_typeahead/docs/{_typeahead_preserve_input.md → _typeahead_preserve_input_react.md} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 911865c34980d9a3e4456c6d6261d2c78bcc4be2295b4250f639415c020c6557
4
- data.tar.gz: ffbc96ad87820c2ecedb124a431d654e168ce906b0dff718ca65af44017c2bf0
3
+ metadata.gz: d54d5b30f8aa5a3674fbcf5e138889fa5621bf8f0ce5b4fa55106804e4dbb43e
4
+ data.tar.gz: 5ea3e7bdd1b718cfb5a6795512874bb12b012627edd9b82b82a04f2ca27f683f
5
5
  SHA512:
6
- metadata.gz: 439099c3f2922db547ad9f6b41a9424b07da3cdd25f97c0c881ab41b727858d3e81bac0ace6737a96dfb98b02c70e4014f199f40f5c9941d45fef77aeb01a60d
7
- data.tar.gz: 31ce0f8177eb5fe6e5a4752ddd67f59abf21c91255d2d9deee8af886b2fcc23dbab7b7df1a8fc964cab98aadbdaf7abf85b15f344fa566ec35ed64056220d29b
6
+ metadata.gz: 9b544a9e3c00e1a0cc07bc8f676349059100aad6ed934eefe690853543695c75f13e9a422da64cdd479f9d75375c6e6eab9829e0b8da497844928652e15e195c
7
+ data.tar.gz: 6f03c79d01b1bd9ab12a6be7c13cda2c02ad0f5d27d18eb64975d51d26b04cfddbf7c7faf694661c7c5f76afc65d6295076237726cdca20f007c68a25e67845a
@@ -20,7 +20,7 @@ interface CustomCellProps {
20
20
  customRenderer?: (row: Row<GenericObject>, value: string | undefined) => React.ReactNode
21
21
  selectableRows?: boolean
22
22
  customStyle?: GenericObject
23
- }
23
+ }
24
24
 
25
25
  export const CustomCell = ({
26
26
  getValue,
@@ -35,7 +35,7 @@ export const CustomCell = ({
35
35
 
36
36
  const handleOnExpand = (row: Row<GenericObject>) => {
37
37
  onRowToggleClick && onRowToggleClick(row);
38
-
38
+
39
39
  if (!expandedControl) {
40
40
  setExpanded({ ...expanded, [row.id]: !row.getIsExpanded() });
41
41
  }
@@ -46,8 +46,8 @@ export const CustomCell = ({
46
46
 
47
47
  return (
48
48
  <div style={{ paddingLeft: `${row.depth * 1.25}em`}}>
49
- <Flex
50
- alignItems="center"
49
+ <Flex
50
+ alignItems="center"
51
51
  columnGap="xs"
52
52
  justify="start"
53
53
  orientation="row"
@@ -71,12 +71,11 @@ export const CustomCell = ({
71
71
  >
72
72
  {row.getIsExpanded() ? (
73
73
  <Icon cursor="pointer"
74
- icon="circle-play"
75
- rotation={90}
74
+ icon="circle-play-down"
76
75
  />
77
76
  ) : (
78
77
  <Icon cursor="pointer"
79
- icon="circle-play"
78
+ icon="circle-play"
80
79
  />
81
80
  )}
82
81
  </button>
@@ -87,7 +87,7 @@ export function useTableState({
87
87
  // Handle grouped columns
88
88
  if (column.columns && column.columns.length > 0) {
89
89
  return {
90
- header: column.label || "",
90
+ header: column.header || column.label || "",
91
91
  columns: buildColumns(column.columns, false),
92
92
  };
93
93
  }
@@ -95,7 +95,7 @@ export function useTableState({
95
95
  // Define the base column structure
96
96
  const columnStructure = {
97
97
  ...columnHelper.accessor(column.accessor, {
98
- header: column.label || "",
98
+ header: column.header ?? column.label ?? "",
99
99
  }),
100
100
  };
101
101
 
@@ -189,6 +189,11 @@
189
189
  box-sizing: border-box !important;
190
190
  }
191
191
  }
192
+ // Fixes for tooltip picking up th styling from Table kit
193
+ .pb_tooltip_kit {
194
+ font-weight: unset;
195
+ text-transform: unset;
196
+ }
192
197
  }
193
198
 
194
199
  .pb_advanced_table_body {
@@ -0,0 +1,69 @@
1
+ import React from "react"
2
+ import AdvancedTable from '../../pb_advanced_table/_advanced_table'
3
+ import Icon from "../../pb_icon/_icon"
4
+ import Flex from "../../pb_flex/_flex"
5
+ import Caption from "../../pb_caption/_caption"
6
+ import Tooltip from "../../pb_tooltip/_tooltip"
7
+ import MOCK_DATA from "./advanced_table_mock_data.json"
8
+
9
+ const AdvancedTableWithCustomHeader = (props) => {
10
+ const columnDefinitions = [
11
+ {
12
+ accessor: "year",
13
+ label: "Year",
14
+ cellAccessors: ["quarter", "month", "day"],
15
+ },
16
+ {
17
+ accessor: "newEnrollments",
18
+ label: "New Enrollments",
19
+ header: () => (
20
+ <Flex alignItems="center"
21
+ justifyContent="center"
22
+ >
23
+ <Caption marginRight="xs">New Enrollments</Caption>
24
+ <Tooltip placement="top"
25
+ text="Whoa. I'm a Tooltip"
26
+ zIndex={10}
27
+ >
28
+ <Icon cursor="pointer"
29
+ icon="info"
30
+ size="xs"
31
+ />
32
+ </Tooltip>
33
+ </Flex>
34
+ ),
35
+ },
36
+ {
37
+ accessor: "scheduledMeetings",
38
+ label: "Scheduled Meetings",
39
+ },
40
+ {
41
+ accessor: "attendanceRate",
42
+ label: "Attendance Rate",
43
+ },
44
+ {
45
+ accessor: "completedClasses",
46
+ label: "Completed Classes",
47
+ },
48
+ {
49
+ accessor: "classCompletionRate",
50
+ label: "Class Completion Rate",
51
+ },
52
+ {
53
+ accessor: "graduatedStudents",
54
+ label: "Graduated Students",
55
+ },
56
+ ];
57
+
58
+ return (
59
+ <div>
60
+ <AdvancedTable
61
+ columnDefinitions={columnDefinitions}
62
+ tableData={MOCK_DATA}
63
+ {...props}
64
+ />
65
+ </div>
66
+ )
67
+ }
68
+
69
+ export default AdvancedTableWithCustomHeader
@@ -0,0 +1 @@
1
+ The optional `header` key/value pair can be used within `columnDefinitions` to render a custom header. This example shows an Icon and Tooltip being used but other kits can be used as well.
@@ -41,6 +41,7 @@ examples:
41
41
  - advanced_table_inline_row_loading: Inline Row Loading
42
42
  - advanced_table_responsive: Responsive Tables
43
43
  - advanced_table_custom_cell: Custom Components for Cells
44
+ - advanced_table_with_custom_header: Custom Header Cell
44
45
  - advanced_table_pagination: Pagination
45
46
  - advanced_table_pagination_with_props: Pagination Props
46
47
  - advanced_table_column_headers: Multi-Header Columns
@@ -38,4 +38,5 @@ export { default as AdvancedTableRowStyling } from './_advanced_table_row_stylin
38
38
  export { default as AdvancedTableColumnStyling } from './_advanced_table_column_styling.jsx'
39
39
  export { default as AdvancedTableColumnStylingColumnHeaders } from './_advanced_table_column_styling_column_headers.jsx'
40
40
  export { default as AdvancedTableInfiniteScroll} from './_advanced_table_infinite_scroll.jsx'
41
- export { default as AdvancedTableCustomSort } from './_advanced_table_custom_sort.jsx'
41
+ export {default as AdvancedTableWithCustomHeader} from './_advanced_table_with_custom_header.jsx'
42
+ export { default as AdvancedTableCustomSort } from './_advanced_table_custom_sort.jsx'
@@ -30,11 +30,11 @@
30
30
  class="gray-icon expand-toggle-icon"
31
31
  data-advanced-table="true">
32
32
  <%= pb_rails("icon", props: { id: "advanced-table_open_icon", icon: "circle-play", cursor: "pointer" }) %>
33
- <%= pb_rails("icon", props: { id: "advanced-table_close_icon", icon: "circle-play", cursor: "pointer", rotation: 90 }) %>
33
+ <%= pb_rails("icon", props: { id: "advanced-table_close_icon", icon: "circle-play-down", cursor: "pointer" }) %>
34
34
  </button>
35
35
  <% end %>
36
36
  <% end %>
37
- <%= pb_rails("flex/flex_item") do %>
37
+ <%= pb_rails("flex/flex_item") do %>
38
38
  <% if column[:custom_renderer].present? %>
39
39
  <%= raw(column[:custom_renderer].call(object.row, custom_renderer_value(column, index))) %>
40
40
  <% elsif index.zero? %>
@@ -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 Highcharts from "highcharts";
4
+ import HighchartsReact from "highcharts-react-official";
5
+
6
+ import barGraphTheme from '../barGraphTheme';
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 BarGraphColors = (props) => (
23
- <div>
24
- <BarGraph
25
- axisTitle="Number of Employees"
26
- chartData={chartData}
27
- colors={['data-4', 'data-5', 'data-6', 'data-7', 'data-8']}
28
- id="bar-colors"
29
- title="Bar Graph with Custom Data Colors"
30
- xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May']}
31
- yAxisMin={0}
32
- {...props}
33
- />
34
- </div>
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 Highcharts from "highcharts";
3
+ import HighchartsReact from "highcharts-react-official";
2
4
 
3
- import BarGraph from '../_bar_graph'
5
+ import barGraphTheme from '../barGraphTheme';
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 BarGraphDefault = (props) => (
23
- <div>
24
- <BarGraph
25
- axisTitle="Number of Employees"
26
- chartData={chartData}
27
- id="bar-default"
28
- subTitle="Source: thesolarfoundation.com"
29
- title="Solar Employment Growth by Sector, 2010-2016"
30
- xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May']}
31
- yAxisMin={0}
32
- {...props}
33
- />
34
- </div>
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 Highcharts from "highcharts";
3
+ import HighchartsReact from "highcharts-react-official";
2
4
 
3
- import BarGraph from '../_bar_graph'
5
+ import barGraphTheme from '../barGraphTheme';
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 BarGraphDefault = (props) => (
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
- <BarGraph
13
- axisTitle="Number of Employees"
14
- chartData={chartData}
15
- height="300"
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
- <BarGraph
27
- axisTitle="Number of Employees"
28
- chartData={chartData}
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 BarGraphDefault
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 Highcharts from "highcharts";
3
+ import HighchartsReact from "highcharts-react-official";
2
4
 
3
- import BarGraph from '../_bar_graph'
5
+ import barGraphTheme from '../barGraphTheme';
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: 'Population (millions)',
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 BarGraphHorizontal = (props) => (
53
+ const options = Highcharts.merge({}, barGraphTheme, chartOptions)
54
+
55
+ const BarGraphHorizontal = () => (
58
56
  <div>
59
- <BarGraph
60
- customOptions={barGraphOptions}
61
- id="bar-horizontal"
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 BarGraph from "../../pb_bar_graph/_bar_graph"
2
+ import Highcharts from "highcharts";
3
+ import HighchartsReact from "highcharts-react-official";
4
+
5
+ import barGraphTheme from '../barGraphTheme';
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 BarGraphLegend = (props) => (
10
- <div>
11
- <BarGraph
12
- axisTitle="Number of Employees"
13
- chartData={chartData}
14
- id="bar-test-2"
15
- legend
16
- title="Bar Graph with Legend"
17
- xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May']}
18
- yAxisMin={0}
19
- {...props}
20
- />
21
- </div>
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