apexcharts 0.1.6 → 0.1.7
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/README.md +248 -52
- data/lib/apexcharts.rb +2 -1
- data/lib/apexcharts/charts.rb +11 -18
- data/lib/apexcharts/charts/base.rb +19 -18
- data/lib/apexcharts/charts/bubble.rb +2 -8
- data/lib/apexcharts/charts/cartesian.rb +30 -29
- data/lib/apexcharts/charts/donut.rb +0 -1
- data/lib/apexcharts/charts/features/annotations.rb +16 -17
- data/lib/apexcharts/charts/features/mixable.rb +1 -2
- data/lib/apexcharts/charts/heatmap.rb +2 -4
- data/lib/apexcharts/charts/mixed.rb +42 -32
- data/lib/apexcharts/charts/pie.rb +0 -1
- data/lib/apexcharts/charts/polar.rb +2 -9
- data/lib/apexcharts/charts/radar.rb +2 -4
- data/lib/apexcharts/charts/radial_bar.rb +0 -1
- data/lib/apexcharts/charts/syncing.rb +39 -25
- data/lib/apexcharts/colors.rb +4 -6
- data/lib/apexcharts/config.rb +25 -0
- data/lib/apexcharts/config/default_options.rb +12 -0
- data/lib/apexcharts/helper.rb +151 -87
- data/lib/apexcharts/options/annotations.rb +5 -5
- data/lib/apexcharts/options/axis.rb +12 -12
- data/lib/apexcharts/options/chart.rb +21 -21
- data/lib/apexcharts/options/data_labels.rb +9 -7
- data/lib/apexcharts/options/div_attributes.rb +4 -5
- data/lib/apexcharts/options/fill.rb +7 -7
- data/lib/apexcharts/options/grid.rb +10 -10
- data/lib/apexcharts/options/legend.rb +22 -19
- data/lib/apexcharts/options/markers.rb +13 -13
- data/lib/apexcharts/options/no_data.rb +7 -7
- data/lib/apexcharts/options/plot_options.rb +7 -7
- data/lib/apexcharts/options/root.rb +30 -30
- data/lib/apexcharts/options/states.rb +4 -4
- data/lib/apexcharts/options/stroke.rb +7 -7
- data/lib/apexcharts/options/subtitle.rb +3 -1
- data/lib/apexcharts/options/theme.rb +3 -3
- data/lib/apexcharts/options/title.rb +8 -8
- data/lib/apexcharts/options/tooltip.rb +17 -17
- data/lib/apexcharts/options/x_axis.rb +5 -5
- data/lib/apexcharts/options/y_axis.rb +8 -8
- data/lib/apexcharts/options_builder.rb +49 -60
- data/lib/apexcharts/prefix_with_apex.rb +5 -0
- data/lib/apexcharts/prefixer.rb +19 -0
- data/lib/apexcharts/renderer.rb +64 -17
- data/lib/apexcharts/series.rb +5 -3
- data/lib/apexcharts/series/bubble.rb +33 -22
- data/lib/apexcharts/series/cartesian.rb +63 -49
- data/lib/apexcharts/series/polar.rb +31 -17
- data/lib/apexcharts/support/rails.rb +1 -1
- data/lib/apexcharts/support/sinatra.rb +9 -0
- data/lib/apexcharts/theme.rb +5 -6
- data/lib/apexcharts/utils.rb +1 -0
- data/lib/apexcharts/utils/copy.rb +9 -0
- data/lib/apexcharts/utils/date_time.rb +50 -44
- data/lib/apexcharts/utils/hash.rb +2 -3
- data/lib/apexcharts/version.rb +1 -1
- data/vendor/assets/javascripts/apexcharts.js +2 -2
- metadata +27 -7
data/lib/apexcharts/colors.rb
CHANGED
@@ -4,7 +4,7 @@ require 'set'
|
|
4
4
|
|
5
5
|
module ApexCharts
|
6
6
|
class Colors
|
7
|
-
def initialize
|
7
|
+
def initialize(colors)
|
8
8
|
@color_set = Set.new(clean(colors))
|
9
9
|
end
|
10
10
|
|
@@ -14,15 +14,13 @@ module ApexCharts
|
|
14
14
|
|
15
15
|
private
|
16
16
|
|
17
|
-
def clean
|
17
|
+
def clean(colors)
|
18
18
|
colors = colors.respond_to?(:to_set) ? colors.to_a.flatten : Array(colors)
|
19
19
|
colors.map do |color|
|
20
|
-
unless color.tap
|
21
|
-
|
22
|
-
end
|
20
|
+
raise "unrecognized color #{color}" unless color.tap(&:upcase!)[/^#[0-9A-F]{6}/]
|
21
|
+
|
23
22
|
color
|
24
23
|
end
|
25
24
|
end
|
26
25
|
end
|
27
26
|
end
|
28
|
-
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require_relative 'config/default_options'
|
2
|
+
|
3
|
+
module ApexCharts
|
4
|
+
class << self
|
5
|
+
def helper_prefix
|
6
|
+
@@helper_prefix ||= ENV['APEXCHARTS_PREFIX']
|
7
|
+
end
|
8
|
+
|
9
|
+
def helper_prefix=(prefix)
|
10
|
+
@@helper_prefix = prefix
|
11
|
+
end
|
12
|
+
|
13
|
+
def configure
|
14
|
+
block_given? ? yield(config) : config
|
15
|
+
end
|
16
|
+
|
17
|
+
def config
|
18
|
+
@@config ||= Configuration.new
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class Configuration
|
23
|
+
include DefaultOptions
|
24
|
+
end
|
25
|
+
end
|
data/lib/apexcharts/helper.rb
CHANGED
@@ -1,103 +1,169 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative 'config'
|
4
|
+
require_relative 'utils'
|
3
5
|
require_relative 'series'
|
4
6
|
require_relative 'options_builder'
|
5
|
-
require_relative 'utils'
|
6
7
|
require_relative 'renderer'
|
7
8
|
require_relative 'charts'
|
9
|
+
require_relative 'prefixer'
|
8
10
|
require_relative 'theme'
|
9
11
|
|
10
12
|
module ApexCharts
|
11
13
|
module Helper
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
14
|
+
extend Prefixer
|
15
|
+
|
16
|
+
with_prefix do
|
17
|
+
def line_chart(series, options={}, &block)
|
18
|
+
outer_self = eval('self', block.binding, __FILE__, __LINE__) if block_given?
|
19
|
+
draw_chart(
|
20
|
+
LineChart.new(
|
21
|
+
outer_self, *prepare_series_and_options(series, options), &block
|
22
|
+
)
|
23
|
+
)
|
24
|
+
end
|
25
|
+
|
26
|
+
def area_chart(series, options={}, &block)
|
27
|
+
outer_self = eval('self', block.binding, __FILE__, __LINE__) if block_given?
|
28
|
+
draw_chart(
|
29
|
+
AreaChart.new(
|
30
|
+
outer_self, *prepare_series_and_options(series, options), &block
|
31
|
+
)
|
32
|
+
)
|
33
|
+
end
|
34
|
+
|
35
|
+
def column_chart(series, options={}, &block)
|
36
|
+
outer_self = eval('self', block.binding, __FILE__, __LINE__) if block_given?
|
37
|
+
draw_chart(
|
38
|
+
ColumnChart.new(
|
39
|
+
outer_self, *prepare_series_and_options(series, options), &block
|
40
|
+
)
|
41
|
+
)
|
42
|
+
end
|
43
|
+
|
44
|
+
def bar_chart(series, options={}, &block)
|
45
|
+
outer_self = eval('self', block.binding, __FILE__, __LINE__) if block_given?
|
46
|
+
draw_chart(
|
47
|
+
BarChart.new(
|
48
|
+
outer_self, *prepare_series_and_options(series, options), &block
|
49
|
+
)
|
50
|
+
)
|
51
|
+
end
|
52
|
+
|
53
|
+
def range_bar_chart(series, options={}, &block)
|
54
|
+
outer_self = eval('self', block.binding, __FILE__, __LINE__) if block_given?
|
55
|
+
draw_chart(
|
56
|
+
RangeBarChart.new(
|
57
|
+
outer_self, *prepare_series_and_options(series, options), &block
|
58
|
+
)
|
59
|
+
)
|
60
|
+
end
|
61
|
+
|
62
|
+
def scatter_chart(series, options={}, &block)
|
63
|
+
outer_self = eval('self', block.binding, __FILE__, __LINE__) if block_given?
|
64
|
+
draw_chart(
|
65
|
+
ScatterChart.new(
|
66
|
+
outer_self, *prepare_series_and_options(series, options), &block
|
67
|
+
)
|
68
|
+
)
|
69
|
+
end
|
70
|
+
|
71
|
+
def candlestick_chart(series, options={}, &block)
|
72
|
+
outer_self = eval('self', block.binding, __FILE__, __LINE__) if block_given?
|
73
|
+
draw_chart(
|
74
|
+
CandlestickChart.new(
|
75
|
+
outer_self, *prepare_series_and_options(series, options), &block
|
76
|
+
)
|
77
|
+
)
|
78
|
+
end
|
79
|
+
alias_method :ohlc_chart, :candlestick_chart
|
80
|
+
|
81
|
+
def heatmap_chart(series, options={})
|
82
|
+
draw_chart(
|
83
|
+
HeatmapChart.new(
|
84
|
+
*prepare_series_and_options(series, options)
|
85
|
+
)
|
86
|
+
)
|
87
|
+
end
|
88
|
+
|
89
|
+
def bubble_chart(series, options={})
|
90
|
+
draw_chart(
|
91
|
+
BubbleChart.new(
|
92
|
+
*prepare_series_and_options(series, options)
|
93
|
+
)
|
94
|
+
)
|
95
|
+
end
|
96
|
+
|
97
|
+
def radar_chart(series, options={})
|
98
|
+
draw_chart(
|
99
|
+
RadarChart.new(
|
100
|
+
*prepare_series_and_options(series, options)
|
101
|
+
)
|
102
|
+
)
|
103
|
+
end
|
104
|
+
|
105
|
+
def mixed_charts(options={}, &block)
|
106
|
+
outer_self = eval('self', block.binding, __FILE__, __LINE__)
|
107
|
+
draw_chart(
|
108
|
+
MixedCharts.new(
|
109
|
+
outer_self, deep_copy(options), &block
|
110
|
+
)
|
111
|
+
)
|
112
|
+
end
|
113
|
+
alias_method :combo_charts, :mixed_charts
|
114
|
+
|
115
|
+
def syncing_charts(options={}, &block)
|
116
|
+
outer_self = eval('self', block.binding, __FILE__, __LINE__)
|
117
|
+
draw_chart(
|
118
|
+
SyncingCharts.new(
|
119
|
+
outer_self, deep_copy(options), &block
|
120
|
+
)
|
121
|
+
)
|
122
|
+
end
|
123
|
+
alias_method :synchronized_charts, :syncing_charts
|
124
|
+
|
125
|
+
def pie_chart(series, options={})
|
126
|
+
draw_chart(
|
127
|
+
PieChart.new(
|
128
|
+
*prepare_series_and_options(series, options)
|
129
|
+
)
|
130
|
+
)
|
131
|
+
end
|
132
|
+
|
133
|
+
def donut_chart(series, options={})
|
134
|
+
draw_chart(
|
135
|
+
DonutChart.new(
|
136
|
+
*prepare_series_and_options(series, options)
|
137
|
+
)
|
138
|
+
)
|
139
|
+
end
|
140
|
+
|
141
|
+
def radial_bar_chart(series, options={})
|
142
|
+
draw_chart(
|
143
|
+
RadialBarChart.new(
|
144
|
+
*prepare_series_and_options(series, options)
|
145
|
+
)
|
146
|
+
)
|
147
|
+
end
|
148
|
+
alias_method :circle_chart, :radial_bar_chart
|
149
|
+
end
|
150
|
+
|
151
|
+
def create_palette(palette_name, colors)
|
152
|
+
Theme::Local.create palette_name, colors
|
153
|
+
end
|
154
|
+
|
155
|
+
def destroy_palette(palette_name)
|
156
|
+
Theme::Local.destroy palette_name
|
91
157
|
end
|
92
158
|
|
93
159
|
private
|
94
160
|
|
95
|
-
def draw_chart
|
161
|
+
def draw_chart(chart)
|
96
162
|
chart = chart.render
|
97
163
|
chart.respond_to?(:html_safe) ? chart.html_safe : chart
|
98
164
|
end
|
99
165
|
|
100
|
-
def prepare_series_and_options
|
166
|
+
def prepare_series_and_options(series, options)
|
101
167
|
series = deep_copy(series)
|
102
168
|
options = deep_copy(options)
|
103
169
|
options[:id] ||= apexcharts_id
|
@@ -107,17 +173,15 @@ module ApexCharts
|
|
107
173
|
def apexcharts_id
|
108
174
|
@_apexcharts_id ||= 0
|
109
175
|
@_apexcharts_id += 1
|
110
|
-
"chart-#{@_apexcharts_id}"
|
176
|
+
"#{ApexCharts.helper_prefix}chart-#{@_apexcharts_id}"
|
111
177
|
end
|
112
178
|
|
113
179
|
def apexcharts_group
|
114
180
|
@_apexcharts_group ||= 0
|
115
181
|
@_apexcharts_group += 1
|
116
|
-
"chart-group-#{@_apexcharts_group}"
|
182
|
+
"#{ApexCharts.helper_prefix}chart-group-#{@_apexcharts_group}"
|
117
183
|
end
|
118
184
|
|
119
|
-
|
120
|
-
Marshal.load(Marshal.dump(options))
|
121
|
-
end
|
185
|
+
include Utils::Copy
|
122
186
|
end
|
123
187
|
end
|
@@ -1,17 +1,17 @@
|
|
1
1
|
module ApexCharts
|
2
2
|
class AxisOptions < ::SmartKv
|
3
3
|
optional *%i[
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
4
|
+
axisBorder
|
5
|
+
axisTicks
|
6
|
+
crosshairs
|
7
|
+
floating
|
8
|
+
labels
|
9
|
+
max
|
10
|
+
min
|
11
|
+
tickAmount
|
12
|
+
title
|
13
|
+
tooltip
|
14
|
+
type
|
15
|
+
]
|
16
16
|
end
|
17
17
|
end
|
@@ -1,26 +1,26 @@
|
|
1
1
|
module ApexCharts
|
2
2
|
class ChartOptions < ::SmartKv
|
3
3
|
optional *%i[
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
4
|
+
animations
|
5
|
+
background
|
6
|
+
brush
|
7
|
+
defaultLocale
|
8
|
+
dropShadow
|
9
|
+
events
|
10
|
+
fontFamily
|
11
|
+
foreColor
|
12
|
+
height
|
13
|
+
id
|
14
|
+
locales
|
15
|
+
parentHeightOffset
|
16
|
+
selection
|
17
|
+
sparkline
|
18
|
+
stackType
|
19
|
+
stacked
|
20
|
+
toolbar
|
21
|
+
type
|
22
|
+
width
|
23
|
+
zoom
|
24
|
+
]
|
25
25
|
end
|
26
26
|
end
|
@@ -1,12 +1,14 @@
|
|
1
1
|
module ApexCharts
|
2
2
|
class DataLabelsOptions < ::SmartKv
|
3
3
|
optional *%i[
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
dropShadow
|
5
|
+
enabled
|
6
|
+
enabledOnSeries
|
7
|
+
formatter
|
8
|
+
offsetX
|
9
|
+
offsetY
|
10
|
+
style
|
11
|
+
textAnchor
|
12
|
+
]
|
11
13
|
end
|
12
14
|
end
|