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.
- checksums.yaml +4 -4
- 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_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_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/dist/chunks/_bar_graph-B9HqVkQv.js +1 -0
- data/dist/chunks/{_typeahead-L71EUpvT.js → _typeahead-CiAYz-Py.js} +3 -3
- data/dist/chunks/{_weekday_stacked-BEQ6MH1X.js → _weekday_stacked-_I9XNGZe.js} +1 -1
- data/dist/chunks/{lib-MbZXVX7s.js → lib-BTYFzEXV.js} +1 -1
- data/dist/chunks/{pb_form_validation-ClEueixE.js → pb_form_validation-Cn7GCWm0.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/playbook-doc.js +1 -1
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/lib/playbook/version.rb +1 -1
- metadata +12 -11
- 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_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
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
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
|
-
|
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
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
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`
|
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
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
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
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
-
|
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:
|
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.
|
@@ -19,60 +19,75 @@ export default class PbTooltip extends PbEnhancedElement {
|
|
19
19
|
}
|
20
20
|
|
21
21
|
this.triggerElements.forEach((trigger) => {
|
22
|
-
const method = this.
|
22
|
+
const method = this.effectiveTriggerMethod
|
23
23
|
const interactionEnabled = this.tooltipInteraction
|
24
24
|
|
25
25
|
if (method === 'click') {
|
26
|
-
trigger.addEventListener('click', () => {
|
27
|
-
this.
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
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
|
-
}
|
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
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
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
|
-
|
69
|
-
this.
|
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.
|
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:
|
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};
|