playbook_ui 14.22.0.pre.alpha.popoverkittransitionpoppertofloatingui8736 → 14.22.0.pre.alpha.popoverkittransitionpoppertofloatingui8781

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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_bar_graph/barGraphTheme.ts +106 -0
  3. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_colors.jsx +33 -15
  4. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_default.jsx +33 -15
  5. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.jsx +52 -22
  6. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_height.md +3 -0
  7. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_horizontal.jsx +12 -16
  8. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend.jsx +31 -15
  9. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.jsx +39 -16
  10. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.jsx +86 -38
  11. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_negative_numbers.jsx +32 -15
  12. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.jsx +72 -22
  13. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.md +1 -1
  14. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_spline.jsx +31 -15
  15. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_stacked.jsx +37 -16
  16. data/app/pb_kits/playbook/pb_bar_graph/docs/_description.md +1 -3
  17. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +1 -3
  18. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +0 -2
  19. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open.html.erb +14 -0
  20. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_click_open_rails.md +1 -0
  21. data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +1 -0
  22. data/app/pb_kits/playbook/pb_tooltip/index.js +59 -36
  23. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +9 -2
  24. data/dist/chunks/_bar_graph-B9HqVkQv.js +1 -0
  25. data/dist/chunks/{_typeahead-L71EUpvT.js → _typeahead-CiAYz-Py.js} +3 -3
  26. data/dist/chunks/{_weekday_stacked-BEQ6MH1X.js → _weekday_stacked-_I9XNGZe.js} +1 -1
  27. data/dist/chunks/{lib-MbZXVX7s.js → lib-BTYFzEXV.js} +1 -1
  28. data/dist/chunks/{pb_form_validation-ClEueixE.js → pb_form_validation-Cn7GCWm0.js} +1 -1
  29. data/dist/chunks/vendor.js +1 -1
  30. data/dist/playbook-doc.js +1 -1
  31. data/dist/playbook-rails-react-bindings.js +1 -1
  32. data/dist/playbook-rails.js +1 -1
  33. data/lib/playbook/version.rb +1 -1
  34. metadata +12 -11
  35. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.jsx +0 -72
  36. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.md +0 -6
  37. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +0 -64
  38. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +0 -1
  39. /data/app/pb_kits/playbook/pb_tooltip/docs/{_tooltip_click_open.md → _tooltip_click_open_react.md} +0 -0
@@ -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',
@@ -10,26 +12,41 @@ const chartData = [{
10
12
  name: 'Manufacturing',
11
13
  data: [1475, 200, 1000, 654, -656],
12
14
  threshold: 0
13
- },
15
+ },
14
16
  {
15
17
  name: 'Sales & Distribution',
16
18
  data: [1270, 100, -1200, 554, 756],
17
19
  threshold: 0
18
20
  }]
19
21
 
22
+ const chartOptions = {
23
+ series: chartData,
24
+ title: {
25
+ text: "Bar Graph with Negative Numbers",
26
+ },
27
+ xAxis: {
28
+ categories: ["Jan", "Feb", "Mar", "Apr", "May"],
29
+ },
30
+ yAxis: {
31
+ title: {
32
+ text: "Number of Employees",
33
+ },
34
+ },
35
+ legend: { enabled: true },
36
+ };
20
37
 
21
- const BarGraphStacked = (props) => (
22
- <div>
23
- <BarGraph
24
- axisTitle="Number of Employees"
25
- chartData={chartData}
26
- id="bar-default"
27
- legend
28
- title="Bar Graph with Negative Numbers"
29
- xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May']}
30
- {...props}
31
- />
32
- </div>
33
- )
38
+
39
+ const BarGraphStacked = () => {
40
+ const options = Highcharts.merge({}, barGraphTheme, chartOptions)
41
+
42
+ return(
43
+ <div>
44
+ <HighchartsReact
45
+ highcharts={Highcharts}
46
+ options={options}
47
+ />
48
+ </div>
49
+ )
50
+ }
34
51
 
35
52
  export default BarGraphStacked
@@ -1,6 +1,11 @@
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'
6
+
7
+ import colors from '../../tokens/exports/_colors.module.scss'
8
+ import typography from '../../tokens/exports/_typography.module.scss'
4
9
 
5
10
  const chartData = [{
6
11
  name: 'Number of Installations',
@@ -13,24 +18,69 @@ const chartData = [{
13
18
  yAxis: 1
14
19
  }]
15
20
 
16
- const axisTitles = [ {name: "Number of Installations"}, {name: "Percentage"}]
17
-
18
- const axisFormats = [{format: ""}, {format: "{value}%"}]
19
-
20
- const BarGraphSecondaryYAxis= (props) => (
21
- <div>
22
- <BarGraph
23
- axisFormat={axisFormats}
24
- axisTitle={axisTitles}
25
- chartData={chartData}
26
- id="bar-spline"
27
- legend
28
- title="Bar Graph with Secondary Y-axis"
29
- xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May']}
30
- yAxisMin={0}
31
- {...props}
32
- />
33
- </div>
34
- )
35
-
36
- export default BarGraphSecondaryYAxis
21
+ const chartOptions = {
22
+ series: chartData,
23
+ title: {
24
+ text: "Bar Graph with Secondary Y-axis",
25
+ },
26
+ xAxis: {
27
+ categories: ["Jan", "Feb", "Mar", "Apr", "May"],
28
+ },
29
+ yAxis: [{
30
+ labels: {
31
+ style: {
32
+ fontFamily: typography.font_family_base,
33
+ color: colors.text_lt_lighter,
34
+ fontWeight: typography.bold,
35
+ fontSize: typography.text_smaller,
36
+ },
37
+ },
38
+ title: {
39
+ text: "Number of Employees",
40
+ style: {
41
+ fontFamily: typography.font_family_base,
42
+ color: colors.text_lt_lighter,
43
+ fontWeight: typography.bold,
44
+ fontSize: typography.text_smaller,
45
+ },
46
+ },
47
+ }, {
48
+ labels: {
49
+ style: {
50
+ fontFamily: typography.font_family_base,
51
+ color: colors.text_lt_lighter,
52
+ fontWeight: typography.bold,
53
+ fontSize: typography.text_smaller,
54
+ },
55
+ },
56
+ title: {
57
+ text: "Percentage",
58
+ style: {
59
+ fontFamily: typography.font_family_base,
60
+ color: colors.text_lt_lighter,
61
+ fontWeight: typography.bold,
62
+ fontSize: typography.text_smaller,
63
+ },
64
+ },
65
+
66
+ opposite: true,
67
+ min: 0,
68
+ max: 100
69
+ }],
70
+ legend: { enabled: true },
71
+ }
72
+
73
+ const BarGraphSecondaryYAxis = () => {
74
+ const options = Highcharts.merge({}, barGraphTheme, chartOptions)
75
+
76
+ return (
77
+ <div>
78
+ <HighchartsReact
79
+ highcharts={Highcharts}
80
+ options={options}
81
+ />
82
+ </div>
83
+ )
84
+ }
85
+
86
+ export default BarGraphSecondaryYAxis
@@ -1,3 +1,3 @@
1
- Optionally add a second yAxis to support secondary datasets (e.x., a spline) by passing` yAxis: 1` to the second node of your `chartData` array.
1
+ Optionally add a second yAxis to support secondary datasets (e.x., a spline) by passing `yAxis: 1` to the second node of your `chartData` array.
2
2
 
3
3
  To customize the format and/or title of your secondary yAxis, pass your desired values as arrays through the `axisFormat` and `axisTitle` props, respectively.
@@ -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: 'Number of Installations',
@@ -12,19 +14,33 @@ const chartData = [{
12
14
  color: '#F9BB00',
13
15
  }]
14
16
 
15
- const BarGraphSpline = (props) => (
16
- <div>
17
- <BarGraph
18
- axisTitle="Number of Employees"
19
- chartData={chartData}
20
- id="bar-spline"
21
- legend
22
- title="Bar Graph with Spline"
23
- xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May']}
24
- yAxisMin={0}
25
- {...props}
26
- />
27
- </div>
28
- )
17
+ const chartOptions = {
18
+ series: chartData,
19
+ title: {
20
+ text: "Bar Graph with Spline",
21
+ },
22
+ xAxis: {
23
+ categories: ["Jan", "Feb", "Mar", "Apr", "May"],
24
+ },
25
+ yAxis: {
26
+ title: {
27
+ text: "Number of Employees",
28
+ },
29
+ },
30
+ legend: { enabled: true },
31
+ };
32
+
33
+ const BarGraphSpline = () => {
34
+ const options = Highcharts.merge({}, barGraphTheme, chartOptions)
35
+
36
+ return (
37
+ <div>
38
+ <HighchartsReact
39
+ highcharts={Highcharts}
40
+ options={options}
41
+ />
42
+ </div>
43
+ )
44
+ }
29
45
 
30
46
  export default BarGraphSpline
@@ -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',
@@ -14,21 +16,40 @@ const chartData = [{
14
16
  data: [975, 1600, 1500, 924, 500],
15
17
  }]
16
18
 
19
+ const chartOptions = {
20
+ series: chartData,
21
+ title: {
22
+ text: "Bar Graph with Stacked Columns",
23
+ },
24
+ xAxis: {
25
+ categories: ["Jan", "Feb", "Mar", "Apr", "May"],
26
+ },
27
+ yAxis: {
28
+ title: {
29
+ text: "Number of Employees",
30
+ },
31
+ },
32
+ plotOptions: {
33
+ column: {
34
+ stacking: 'normal',
35
+ borderWidth: 0,
36
+ }
37
+ },
38
+ legend: { enabled: true },
39
+ };
17
40
 
18
- const BarGraphStacked = (props) => (
19
- <div>
20
- <BarGraph
21
- axisTitle="Number Of Employees"
22
- chartData={chartData}
23
- id="bar-default"
24
- legend
25
- stacking="normal"
26
- title="Bar Graph with Stacked Columns"
27
- xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May']}
28
- yAxisMin={0}
29
- {...props}
30
- />
31
- </div>
32
- )
41
+
42
+ const BarGraphStacked = () => {
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
+ }
33
54
 
34
55
  export default BarGraphStacked
@@ -1,3 +1 @@
1
- Bar graphs are used to compare data. Bar graphs are not typically used to show percentages. The default height of bar graph is 400px and can be changed. The default height is in pixel units, but can also use percentage string (percentage would be that of the width. For example, `height:"50%"` would mean that the height is 50% of the width). This allows for preserving the aspect ratio across responsive sizes.
2
-
3
- For more information, see: <a href="https://api.highcharts.com/highcharts/chart.height" target="_blank"> highcharts/chart.height</a>.
1
+ To apply Playbook styles to your Highchart, import BarGraphTheme.ts and merge it with your Highchart options. Then, pass the merged value to the options prop. Playbook’s styling will be applied automatically. See the examples in the documentation below.
@@ -17,15 +17,13 @@ examples:
17
17
 
18
18
  react:
19
19
  - bar_graph_default: Default
20
- - bar_graph_pb_styles: Playbook Styles
21
20
  - bar_graph_legend: Legend
22
21
  - bar_graph_legend_position: Legend Position
23
22
  - bar_graph_legend_non_clickable: Legend Non Clickable
24
23
  - bar_graph_height: Height
25
24
  - bar_graph_spline: Spline
26
25
  - bar_graph_colors: Color Overrides
27
- - bar_graph_custom: Custom Overrides
28
26
  - bar_graph_stacked: Stacked
29
27
  - bar_graph_negative_numbers: Negative Numbers
30
28
  - bar_graph_secondary_y_axis: Secondary Y-Axis
31
- - bar_graph_horizontal: Custom Options From Highcharts
29
+ - bar_graph_horizontal: Horizontal Bar Graph
@@ -5,9 +5,7 @@ export { default as BarGraphLegendNonClickable } from './_bar_graph_legend_non_c
5
5
  export { default as BarGraphHeight } from './_bar_graph_height.jsx'
6
6
  export { default as BarGraphSpline } from './_bar_graph_spline.jsx'
7
7
  export { default as BarGraphColors } from './_bar_graph_colors.jsx'
8
- export { default as BarGraphCustom } from './_bar_graph_custom.jsx'
9
8
  export { default as BarGraphStacked } from './_bar_graph_stacked.jsx'
10
9
  export { default as BarGraphNegativeNumbers } from './_bar_graph_negative_numbers.jsx'
11
10
  export { default as BarGraphSecondaryYAxis } from './_bar_graph_secondary_y_axis.jsx'
12
11
  export { default as BarGraphHorizontal } from './_bar_graph_horizontal.jsx'
13
- export { default as BarGraphPbStyles } from './_bar_graph_pb_styles.jsx'
@@ -0,0 +1,14 @@
1
+ <%= pb_rails("button", props: {
2
+ text: "Click to Open",
3
+ id: "click-tooltip-trigger-1",
4
+ variant: "primary"
5
+ }) %>
6
+
7
+ <%= pb_rails("tooltip", props: {
8
+ trigger_element_selector: "#click-tooltip-trigger-1",
9
+ tooltip_id: "click-tooltip-1",
10
+ position: "top",
11
+ use_click_to_open: true
12
+ }) do %>
13
+ Tooltip opened by click! Click trigger again to close.
14
+ <% end %>
@@ -0,0 +1 @@
1
+ Set the prop `use_click_to_open` as `true` so that the tooltip will only appear when an item is clicked rather than hovered over.
@@ -9,6 +9,7 @@ examples:
9
9
  - tooltip_with_icon_circle: Icon Circle Tooltip
10
10
  - tooltip_delay_rails: Delay
11
11
  - tooltip_show_tooltip: Show Tooltip
12
+ - tooltip_click_open: Click to Open
12
13
 
13
14
  react:
14
15
  - tooltip_default_react: Default
@@ -19,60 +19,75 @@ export default class PbTooltip extends PbEnhancedElement {
19
19
  }
20
20
 
21
21
  this.triggerElements.forEach((trigger) => {
22
- const method = this.triggerMethod
22
+ const method = this.effectiveTriggerMethod
23
23
  const interactionEnabled = this.tooltipInteraction
24
24
 
25
25
  if (method === 'click') {
26
- trigger.addEventListener('click', () => {
27
- this.showTooltip(trigger)
28
- })
29
- } else {
30
- trigger.addEventListener('mouseenter', () => {
31
- clearSafeZoneListener(this)
32
- clearTimeout(this.mouseleaveTimeout)
33
- this.currentTrigger = trigger
34
- const delayOpen = this.delayOpen ? parseInt(this.delayOpen) : TOOLTIP_TIMEOUT
35
- this.mouseenterTimeout = setTimeout(() => {
36
- this.showTooltip(trigger)
37
- if (interactionEnabled) {
38
- this.checkCloseTooltip(trigger)
26
+ trigger.addEventListener('click', (e) => {
27
+ if (this.useClickToOpen) {
28
+ e.preventDefault()
29
+ if (this.isTooltipVisible()) {
30
+ this.hideTooltip()
31
+ } else {
32
+ this.showTooltip(trigger)
39
33
  }
40
- }, delayOpen)
34
+ } else {
35
+ this.showTooltip(trigger)
36
+ }
41
37
  })
38
+ } else {
39
+ if (!this.useClickToOpen) {
40
+ trigger.addEventListener('mouseenter', () => {
41
+ clearSafeZoneListener(this)
42
+ clearTimeout(this.mouseleaveTimeout)
43
+ this.currentTrigger = trigger
44
+ const delayOpen = this.delayOpen ? parseInt(this.delayOpen) : TOOLTIP_TIMEOUT
45
+ this.mouseenterTimeout = setTimeout(() => {
46
+ this.showTooltip(trigger)
47
+ if (interactionEnabled) {
48
+ this.checkCloseTooltip(trigger)
49
+ }
50
+ }, delayOpen)
51
+ })
42
52
 
43
- trigger.addEventListener('mouseleave', () => {
44
- clearTimeout(this.mouseenterTimeout)
45
- if (this.delayClose) {
46
- const delayClose = parseInt(this.delayClose)
47
- this.mouseleaveTimeout = setTimeout(() => {
53
+ trigger.addEventListener('mouseleave', () => {
54
+ clearTimeout(this.mouseenterTimeout)
55
+ if (this.delayClose) {
56
+ const delayClose = parseInt(this.delayClose)
57
+ this.mouseleaveTimeout = setTimeout(() => {
58
+ if (interactionEnabled) {
59
+ this.attachSafeZoneListener()
60
+ } else {
61
+ this.hideTooltip()
62
+ }
63
+ }, delayClose)
64
+ } else {
48
65
  if (interactionEnabled) {
49
66
  this.attachSafeZoneListener()
50
67
  } else {
51
68
  this.hideTooltip()
52
69
  }
53
- }, delayClose)
54
- } else {
55
- if (interactionEnabled) {
56
- this.attachSafeZoneListener()
57
- } else {
58
- this.hideTooltip()
59
70
  }
60
- }
61
- })
62
-
63
- if (interactionEnabled) {
64
- this.tooltip.addEventListener('mouseenter', () => {
65
- clearSafeZoneListener(this)
66
71
  })
67
72
 
68
- this.tooltip.addEventListener('mouseleave', () => {
69
- this.attachSafeZoneListener()
70
- })
73
+ if (interactionEnabled) {
74
+ this.tooltip.addEventListener('mouseenter', () => {
75
+ clearSafeZoneListener(this)
76
+ })
77
+
78
+ this.tooltip.addEventListener('mouseleave', () => {
79
+ this.attachSafeZoneListener()
80
+ })
81
+ }
71
82
  }
72
83
  }
73
84
  })
74
85
  }
75
86
 
87
+ isTooltipVisible() {
88
+ return this.tooltip && this.tooltip.classList.contains('show')
89
+ }
90
+
76
91
  attachSafeZoneListener() {
77
92
  clearSafeZoneListener(this)
78
93
  this.safeZoneHandler = (e) => {
@@ -145,7 +160,7 @@ export default class PbTooltip extends PbEnhancedElement {
145
160
 
146
161
  this.tooltip.classList.add('show')
147
162
 
148
- if (this.triggerMethod === 'click') {
163
+ if (this.effectiveTriggerMethod === 'click' && !this.useClickToOpen) {
149
164
  clearTimeout(this.autoHideTimeout)
150
165
  this.autoHideTimeout = setTimeout(() => {
151
166
  this.hideTooltip()
@@ -224,6 +239,14 @@ export default class PbTooltip extends PbEnhancedElement {
224
239
  return this.element.dataset.pbTooltipTriggerMethod || 'hover'
225
240
  }
226
241
 
242
+ get useClickToOpen() {
243
+ return this.element.dataset.pbTooltipUseClickToOpen === 'true'
244
+ }
245
+
246
+ get effectiveTriggerMethod() {
247
+ return this.useClickToOpen ? 'click' : this.triggerMethod
248
+ }
249
+
227
250
  get tooltipInteraction() {
228
251
  return this.element.dataset.pbTooltipInteraction === 'true'
229
252
  }
@@ -21,6 +21,8 @@ module Playbook
21
21
  prop :trigger_method, type: Playbook::Props::Enum,
22
22
  values: %w[hover click],
23
23
  default: "hover"
24
+ prop :use_click_to_open, type: Playbook::Props::Boolean,
25
+ default: false
24
26
  prop :width
25
27
 
26
28
  def classname
@@ -46,6 +48,10 @@ module Playbook
46
48
  out
47
49
  end
48
50
 
51
+ def effective_trigger_method
52
+ use_click_to_open ? "click" : (trigger_method || "hover")
53
+ end
54
+
49
55
  def data
50
56
  data = Hash(values[:data]).merge(
51
57
  pb_tooltip_kit: true,
@@ -54,8 +60,9 @@ module Playbook
54
60
  pb_tooltip_trigger_element_id: trigger_element_id,
55
61
  pb_tooltip_tooltip_id: tooltip_id,
56
62
  pb_tooltip_show_tooltip: true,
57
- pb_tooltip_trigger_method: trigger_method,
58
- pb_tooltip_interaction: interaction
63
+ pb_tooltip_trigger_method: effective_trigger_method,
64
+ pb_tooltip_interaction: interaction,
65
+ pb_tooltip_use_click_to_open: use_click_to_open
59
66
  )
60
67
  data = data.merge(pb_tooltip_delay_open: delay_open) if delay_open
61
68
  data = data.merge(pb_tooltip_delay_close: delay_close) if delay_close
@@ -0,0 +1 @@
1
+ import{jsx}from"react/jsx-runtime";import{useState,useEffect}from"react";import{b as buildAriaProps,a as buildDataProps,c as buildHtmlProps,m as mapColors,H as HighchartsReact,d as Highcharts,e as classnames,g as globalProps}from"./_typeahead-CiAYz-Py.js";import{h as highchartsTheme,m as merge,a as highchartsDarkTheme}from"./lib-BTYFzEXV.js";const BarGraph=({aria:aria={},data:data={},align:align="center",axisTitle:axisTitle,dark:dark=false,chartData:chartData,className:className="pb_bar_graph",colors:colors,htmlOptions:htmlOptions={},customOptions:customOptions={},axisFormat:axisFormat,id:id,pointStart:pointStart,stacking:stacking,subTitle:subTitle,type:type="column",title:title="Title",xAxisCategories:xAxisCategories,yAxisMin:yAxisMin,yAxisMax:yAxisMax,legend:legend=false,toggleLegendClick:toggleLegendClick=true,height:height,layout:layout="horizontal",verticalAlign:verticalAlign="bottom",x:x=0,y:y=0,...props})=>{const ariaProps=buildAriaProps(aria);const dataProps=buildDataProps(data);const htmlProps=buildHtmlProps(htmlOptions);const setupTheme=()=>{dark?Highcharts.setOptions(highchartsDarkTheme):Highcharts.setOptions(highchartsTheme)};setupTheme();const staticOptions={title:{text:title},chart:{height:height,type:type},subtitle:{text:subTitle},yAxis:[{labels:{format:typeof axisFormat==="string"?axisFormat:axisFormat&&axisFormat[0]?axisFormat[0].format:""},min:yAxisMin,max:yAxisMax,opposite:false,title:{text:Array.isArray(axisTitle)?axisTitle.length>0?axisTitle[0].name:null:axisTitle},plotLines:typeof yAxisMin!=="undefined"&&yAxisMin!==null?[]:[{value:0,zIndex:10,color:"#E4E8F0"}]}],xAxis:{categories:xAxisCategories},legend:{enabled:legend,align:align,verticalAlign:verticalAlign,layout:layout,x:x,y:y},colors:colors!==void 0&&colors.length>0?mapColors(colors):highchartsTheme.colors,plotOptions:{series:{stacking:stacking,pointStart:pointStart,borderWidth:stacking?0:"",events:{},dataLabels:{enabled:false}}},series:chartData,credits:false};if(Array.isArray(axisTitle)&&axisTitle.length>1&&axisTitle[1].name){staticOptions.yAxis.push({labels:{format:typeof axisFormat==="string"?axisFormat:axisFormat[1].format},min:yAxisMin,max:yAxisMax,opposite:true,title:{text:axisTitle[1].name},plotLines:typeof yAxisMin!=="undefined"&&yAxisMin!==null?[]:[{value:0,zIndex:10,color:"#E4E8F0"}]})}if(!toggleLegendClick){staticOptions.plotOptions.series.events={legendItemClick:()=>false}}const filteredProps={...props};delete filteredProps.verticalAlign;const[options,setOptions]=useState({});useEffect((()=>{setOptions(merge(staticOptions,customOptions))}),[chartData]);return jsx(HighchartsReact,{containerProps:{className:classnames(globalProps(filteredProps),className),id:id,...ariaProps,...dataProps,...htmlProps},highcharts:Highcharts,options:options})};export{BarGraph as B};