apexcharts 0.1.10 → 0.1.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +89 -33
- data/lib/apex_charts/charts.rb +1 -0
- data/lib/apex_charts/charts/box_plot_chart.rb +8 -0
- data/lib/apex_charts/config/schema.rb +20 -0
- data/lib/apex_charts/configuration.rb +2 -0
- data/lib/apex_charts/helper.rb +9 -11
- data/lib/apex_charts/options/default/annotations_options.rb +14 -0
- data/lib/apex_charts/options/default/chart_options.rb +33 -0
- data/lib/apex_charts/options/default/data_labels_options.rb +18 -0
- data/lib/apex_charts/options/default/fill_options.rb +14 -0
- data/lib/apex_charts/options/default/grid_options.rb +17 -0
- data/lib/apex_charts/options/default/helper_options.rb +22 -0
- data/lib/apex_charts/options/default/legend_options.rb +33 -0
- data/lib/apex_charts/options/default/markers_options.rb +26 -0
- data/lib/apex_charts/options/default/no_data_options.rb +14 -0
- data/lib/apex_charts/options/default/plot_options.rb +19 -0
- data/lib/apex_charts/options/default/root_options.rb +38 -0
- data/lib/apex_charts/options/default/states_options.rb +11 -0
- data/lib/apex_charts/options/default/stroke_options.rb +14 -0
- data/lib/apex_charts/options/default/theme_options.rb +11 -0
- data/lib/apex_charts/options/default/title_subtitle_options.rb +15 -0
- data/lib/apex_charts/options/default/tooltip_options.rb +25 -0
- data/lib/apex_charts/options/default/x_axis_options.rb +27 -0
- data/lib/apex_charts/options/default/y_axis_options.rb +28 -0
- data/lib/apex_charts/options/dry_schema/annotations_options.rb +22 -0
- data/lib/apex_charts/options/dry_schema/annotations_options/annotation_label.rb +24 -0
- data/lib/apex_charts/options/dry_schema/annotations_options/image_annotations.rb +15 -0
- data/lib/apex_charts/options/dry_schema/annotations_options/point_annotations.rb +33 -0
- data/lib/apex_charts/options/dry_schema/annotations_options/text_annotations.rb +26 -0
- data/lib/apex_charts/options/dry_schema/annotations_options/x_axis_annotations.rb +20 -0
- data/lib/apex_charts/options/dry_schema/annotations_options/y_axis_annotations.rb +21 -0
- data/lib/apex_charts/options/dry_schema/chart_options.rb +35 -0
- data/lib/apex_charts/options/dry_schema/data_labels_options.rb +37 -0
- data/lib/apex_charts/options/dry_schema/fill_options.rb +34 -0
- data/lib/apex_charts/options/dry_schema/general_schema/drop_shadow.rb +14 -0
- data/lib/apex_charts/options/dry_schema/general_schema/function.rb +12 -0
- data/lib/apex_charts/options/dry_schema/grid_options.rb +19 -0
- data/lib/apex_charts/options/dry_schema/helper_options.rb +22 -0
- data/lib/apex_charts/options/dry_schema/legend_options.rb +61 -0
- data/lib/apex_charts/options/dry_schema/markers_options.rb +34 -0
- data/lib/apex_charts/options/dry_schema/markers_options/discrete_point.rb +13 -0
- data/lib/apex_charts/options/dry_schema/no_data_options.rb +16 -0
- data/lib/apex_charts/options/dry_schema/plot_options.rb +231 -0
- data/lib/apex_charts/options/dry_schema/root_options.rb +42 -0
- data/lib/apex_charts/options/dry_schema/schema.rb +32 -0
- data/lib/apex_charts/options/dry_schema/states_options.rb +22 -0
- data/lib/apex_charts/options/dry_schema/states_options/filter.rb +10 -0
- data/lib/apex_charts/options/dry_schema/stroke_options.rb +21 -0
- data/lib/apex_charts/options/dry_schema/theme_options.rb +18 -0
- data/lib/apex_charts/options/dry_schema/title_subtitle_options.rb +22 -0
- data/lib/apex_charts/options/dry_schema/tooltip_options.rb +27 -0
- data/lib/apex_charts/options/dry_schema/x_axis_options.rb +30 -0
- data/lib/apex_charts/options/dry_schema/y_axis_options.rb +30 -0
- data/lib/apex_charts/options_builder.rb +51 -38
- data/lib/apex_charts/theme.rb +0 -16
- data/lib/apex_charts/version.rb +2 -2
- data/vendor/assets/javascripts/apexcharts.js +5 -5
- metadata +58 -27
- data/lib/apex_charts/options/annotations_options.rb +0 -15
- data/lib/apex_charts/options/chart_options.rb +0 -32
- data/lib/apex_charts/options/data_labels_options.rb +0 -18
- data/lib/apex_charts/options/div_attributes.rb +0 -11
- data/lib/apex_charts/options/fill_options.rb +0 -14
- data/lib/apex_charts/options/grid_options.rb +0 -17
- data/lib/apex_charts/options/legend_options.rb +0 -32
- data/lib/apex_charts/options/markers_options.rb +0 -24
- data/lib/apex_charts/options/no_data_options.rb +0 -14
- data/lib/apex_charts/options/plot_options.rb +0 -16
- data/lib/apex_charts/options/root_options.rb +0 -47
- data/lib/apex_charts/options/states_options.rb +0 -11
- data/lib/apex_charts/options/stroke_options.rb +0 -14
- data/lib/apex_charts/options/theme_options.rb +0 -11
- data/lib/apex_charts/options/title_subtitle_options.rb +0 -15
- data/lib/apex_charts/options/tooltip_options.rb +0 -25
- data/lib/apex_charts/options/x_axis_options.rb +0 -26
- data/lib/apex_charts/options/y_axis_options.rb +0 -28
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'schema'
|
4
|
+
require_relative 'helper_options'
|
5
|
+
require_relative 'chart_options'
|
6
|
+
require_relative 'stroke_options'
|
7
|
+
require_relative 'states_options'
|
8
|
+
|
9
|
+
module ApexCharts::Options
|
10
|
+
module DrySchema
|
11
|
+
class RootOptions < Schema
|
12
|
+
define do
|
13
|
+
optional(:annotations)
|
14
|
+
optional(:chart)
|
15
|
+
optional(:colors)
|
16
|
+
optional(:dataLabels)
|
17
|
+
optional(:fill)
|
18
|
+
optional(:grid)
|
19
|
+
optional(:labels)
|
20
|
+
optional(:legend)
|
21
|
+
optional(:markers)
|
22
|
+
optional(:noData)
|
23
|
+
optional(:plotOptions)
|
24
|
+
optional(:responsive)
|
25
|
+
optional(:series)
|
26
|
+
optional(:states)
|
27
|
+
optional(:stroke)
|
28
|
+
optional(:subtitle)
|
29
|
+
optional(:theme)
|
30
|
+
optional(:title)
|
31
|
+
optional(:tooltip)
|
32
|
+
optional(:xaxis)
|
33
|
+
optional(:yaxis)
|
34
|
+
|
35
|
+
(HelperOptions.keys + ChartOptions.keys +
|
36
|
+
StrokeOptions.keys + StatesOptions.keys).each do |key|
|
37
|
+
optional(key)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'dry/schema'
|
2
|
+
|
3
|
+
Dry::Schema.config.validate_keys = true
|
4
|
+
|
5
|
+
module ApexCharts::Options
|
6
|
+
module DrySchema
|
7
|
+
class Schema < ::Dry::Schema::Params
|
8
|
+
class << self
|
9
|
+
def check(hash)
|
10
|
+
return hash if production?
|
11
|
+
|
12
|
+
schema = new[hash]
|
13
|
+
if schema.failure?
|
14
|
+
raise schema.errors.to_h.inspect
|
15
|
+
else
|
16
|
+
hash
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def keys
|
21
|
+
definition.send(:key_map).map{|key| key.name.to_sym }
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def production?
|
27
|
+
(ENV['APP_ENV'] || ENV['RAILS_ENV'] || ENV['RACK_ENV']) == "production"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'states_options/filter'
|
4
|
+
|
5
|
+
module ApexCharts::Options
|
6
|
+
module DrySchema
|
7
|
+
class StatesOptions < Schema
|
8
|
+
define do
|
9
|
+
optional(:active).hash do
|
10
|
+
optional(:allowMultipleDataPointsSelection) { bool? }
|
11
|
+
optional(:filter).hash(Filter)
|
12
|
+
end
|
13
|
+
optional(:hover).hash do
|
14
|
+
optional(:filter).hash(Filter)
|
15
|
+
end
|
16
|
+
optional(:normal).hash do
|
17
|
+
optional(:filter).hash(Filter)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ApexCharts::Options
|
4
|
+
module DrySchema
|
5
|
+
class StrokeOptions < Schema
|
6
|
+
define do
|
7
|
+
optional(:colors) { array? & each { str? } }
|
8
|
+
optional(:curve) {
|
9
|
+
included_in?(%w[smooth straight stepline]) |
|
10
|
+
(array? & each {
|
11
|
+
included_in? %w[smooth straight stepline]
|
12
|
+
})
|
13
|
+
}
|
14
|
+
optional(:dashArray) { int? | float? | (array? & each { int? | float? }) }
|
15
|
+
optional(:lineCap) { included_in? %w[butt square round] }
|
16
|
+
optional(:show) { bool? }
|
17
|
+
optional(:width) { int? | float? | (array? & each { int? | float? }) }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ApexCharts::Options
|
4
|
+
module DrySchema
|
5
|
+
class ThemeOptions < Schema
|
6
|
+
define do
|
7
|
+
optional(:mode).value(included_in?: %w[light dark])
|
8
|
+
optional(:monochrome).hash do
|
9
|
+
optional(:enabled) { bool? }
|
10
|
+
optional(:color) { str? }
|
11
|
+
optional(:shadeTo).value(included_in?: %w[light dark])
|
12
|
+
optional(:shadeIntensity) { int? | float? }
|
13
|
+
end
|
14
|
+
optional(:palette) { str? }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ApexCharts::Options
|
4
|
+
module DrySchema
|
5
|
+
class TitleSubtitleOptions < Schema
|
6
|
+
define do
|
7
|
+
optional(:align) { included_in? %w[left center right] }
|
8
|
+
optional(:floating) { bool? }
|
9
|
+
optional(:margin) { int? | float? }
|
10
|
+
optional(:offsetX) { int? | float? }
|
11
|
+
optional(:offsetY) { int? | float? }
|
12
|
+
optional(:style).hash do
|
13
|
+
optional(:color) { str? }
|
14
|
+
optional(:fontFamily) { str? }
|
15
|
+
optional(:fontSize) { str? }
|
16
|
+
optional(:fontWeight) { str? | int? | float? }
|
17
|
+
end
|
18
|
+
optional(:text) { str? }
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ApexCharts::Options
|
4
|
+
module DrySchema
|
5
|
+
class TooltipOptions < Schema
|
6
|
+
define do
|
7
|
+
optional(:custom)
|
8
|
+
optional(:enabled)
|
9
|
+
optional(:enabledOnSeries)
|
10
|
+
optional(:fillSeriesColor)
|
11
|
+
optional(:fixed)
|
12
|
+
optional(:followCursor)
|
13
|
+
optional(:intersect)
|
14
|
+
optional(:inverseOrder)
|
15
|
+
optional(:items)
|
16
|
+
optional(:marker)
|
17
|
+
optional(:onDatasetHover)
|
18
|
+
optional(:shared)
|
19
|
+
optional(:style)
|
20
|
+
optional(:theme)
|
21
|
+
optional(:x)
|
22
|
+
optional(:y)
|
23
|
+
optional(:z)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ApexCharts::Options
|
4
|
+
module DrySchema
|
5
|
+
class XAxisOptions < Schema
|
6
|
+
define do
|
7
|
+
optional(:axisBorder)
|
8
|
+
optional(:axisTicks)
|
9
|
+
optional(:categories)
|
10
|
+
optional(:overwriteCategories)
|
11
|
+
optional(:crosshairs)
|
12
|
+
optional(:floating)
|
13
|
+
optional(:decimalsInFloat)
|
14
|
+
optional(:labels)
|
15
|
+
optional(:max)
|
16
|
+
optional(:min)
|
17
|
+
optional(:position)
|
18
|
+
optional(:range)
|
19
|
+
optional(:tickAmount)
|
20
|
+
optional(:tickPlacement)
|
21
|
+
optional(:title)
|
22
|
+
optional(:tooltip)
|
23
|
+
optional(:type)
|
24
|
+
optional(:offsetX)
|
25
|
+
optional(:offsetY)
|
26
|
+
optional(:sorted)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ApexCharts::Options
|
4
|
+
module DrySchema
|
5
|
+
class YAxisOptions < Schema
|
6
|
+
define do
|
7
|
+
optional(:axisBorder)
|
8
|
+
optional(:axisTicks)
|
9
|
+
optional(:crosshairs)
|
10
|
+
optional(:decimalsInFloat)
|
11
|
+
optional(:floating)
|
12
|
+
optional(:forceNiceScale)
|
13
|
+
optional(:labels)
|
14
|
+
optional(:logarithmic)
|
15
|
+
optional(:max)
|
16
|
+
optional(:min)
|
17
|
+
optional(:opposite)
|
18
|
+
optional(:reversed)
|
19
|
+
optional(:seriesName)
|
20
|
+
optional(:show)
|
21
|
+
optional(:showAlways)
|
22
|
+
optional(:showForNullSeries)
|
23
|
+
optional(:tickAmount)
|
24
|
+
optional(:title)
|
25
|
+
optional(:tooltip)
|
26
|
+
optional(:type)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -1,21 +1,22 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
require_relative
|
5
|
-
require_relative
|
6
|
-
require_relative
|
7
|
-
require_relative
|
8
|
-
require_relative
|
9
|
-
require_relative
|
10
|
-
require_relative
|
11
|
-
require_relative
|
12
|
-
require_relative
|
13
|
-
require_relative
|
14
|
-
require_relative
|
15
|
-
require_relative
|
16
|
-
require_relative
|
17
|
-
require_relative
|
18
|
-
require_relative
|
3
|
+
%w(default dry_schema).each do |schema_dir|
|
4
|
+
require_relative "options/#{schema_dir}/root_options"
|
5
|
+
require_relative "options/#{schema_dir}/annotations_options"
|
6
|
+
require_relative "options/#{schema_dir}/data_labels_options"
|
7
|
+
require_relative "options/#{schema_dir}/fill_options"
|
8
|
+
require_relative "options/#{schema_dir}/grid_options"
|
9
|
+
require_relative "options/#{schema_dir}/legend_options"
|
10
|
+
require_relative "options/#{schema_dir}/markers_options"
|
11
|
+
require_relative "options/#{schema_dir}/no_data_options"
|
12
|
+
require_relative "options/#{schema_dir}/plot_options"
|
13
|
+
require_relative "options/#{schema_dir}/states_options"
|
14
|
+
require_relative "options/#{schema_dir}/title_subtitle_options"
|
15
|
+
require_relative "options/#{schema_dir}/theme_options"
|
16
|
+
require_relative "options/#{schema_dir}/tooltip_options"
|
17
|
+
require_relative "options/#{schema_dir}/x_axis_options"
|
18
|
+
require_relative "options/#{schema_dir}/y_axis_options"
|
19
|
+
end
|
19
20
|
|
20
21
|
module ApexCharts
|
21
22
|
class OptionsBuilder
|
@@ -35,7 +36,7 @@ module ApexCharts
|
|
35
36
|
end
|
36
37
|
|
37
38
|
def build_options
|
38
|
-
|
39
|
+
options_class(:Root).check @options
|
39
40
|
|
40
41
|
build_chart
|
41
42
|
build_div
|
@@ -78,14 +79,19 @@ module ApexCharts
|
|
78
79
|
def build_annotations
|
79
80
|
annotations = @options.delete :annotations
|
80
81
|
@built[:annotations] = (
|
81
|
-
|
82
|
+
if annotations.is_a? Hash
|
83
|
+
options_class(:Annotations).check annotations.compact
|
84
|
+
end
|
82
85
|
)
|
83
86
|
end
|
84
87
|
|
85
88
|
def build_chart
|
86
89
|
@built[:chart] =
|
87
90
|
if target = @options.delete(:brushTarget)
|
88
|
-
{
|
91
|
+
{
|
92
|
+
brush: {enabled: true, target: target.to_s},
|
93
|
+
selection: {enabled: true}
|
94
|
+
}
|
89
95
|
else
|
90
96
|
{}
|
91
97
|
end
|
@@ -106,7 +112,7 @@ module ApexCharts
|
|
106
112
|
|
107
113
|
return unless chart.is_a? Hash
|
108
114
|
|
109
|
-
@built[:chart].merge!
|
115
|
+
@built[:chart].merge! options_class(:Chart).check(chart.compact)
|
110
116
|
end
|
111
117
|
|
112
118
|
def build_colors
|
@@ -122,7 +128,7 @@ module ApexCharts
|
|
122
128
|
@built[:dataLabels] = if [true, false].include? data_labels
|
123
129
|
{enabled: data_labels}
|
124
130
|
elsif data_labels.is_a? Hash
|
125
|
-
|
131
|
+
options_class(:DataLabels).check data_labels.compact
|
126
132
|
end
|
127
133
|
end
|
128
134
|
|
@@ -137,7 +143,7 @@ module ApexCharts
|
|
137
143
|
@built[:fill] = if fill.is_a? String
|
138
144
|
{type: fill}
|
139
145
|
elsif fill.is_a? Hash
|
140
|
-
|
146
|
+
options_class(:Fill).check fill.compact
|
141
147
|
end
|
142
148
|
end
|
143
149
|
|
@@ -146,7 +152,7 @@ module ApexCharts
|
|
146
152
|
@built[:grid] = if [true, false].include? grid
|
147
153
|
{show: grid}
|
148
154
|
elsif grid.is_a? Hash
|
149
|
-
|
155
|
+
options_class(:Grid).check grid.compact
|
150
156
|
end
|
151
157
|
end
|
152
158
|
|
@@ -163,7 +169,7 @@ module ApexCharts
|
|
163
169
|
elsif legend.is_a? String
|
164
170
|
{show: true, position: legend}
|
165
171
|
elsif legend.is_a? Hash
|
166
|
-
|
172
|
+
options_class(:Legend).check legend.compact
|
167
173
|
end
|
168
174
|
end
|
169
175
|
|
@@ -172,7 +178,7 @@ module ApexCharts
|
|
172
178
|
@built[:markers] = if markers.is_a? String
|
173
179
|
{shape: markers}
|
174
180
|
elsif markers.is_a? Hash
|
175
|
-
|
181
|
+
options_class(:Markers).check markers.compact
|
176
182
|
end
|
177
183
|
end
|
178
184
|
|
@@ -181,7 +187,7 @@ module ApexCharts
|
|
181
187
|
@built[:noData] = if no_data.is_a? String
|
182
188
|
{text: no_data}
|
183
189
|
elsif no_data.is_a? Hash
|
184
|
-
|
190
|
+
options_class(:NoData).check no_data.compact
|
185
191
|
end
|
186
192
|
end
|
187
193
|
|
@@ -190,7 +196,7 @@ module ApexCharts
|
|
190
196
|
return unless plot_options.is_a? Hash
|
191
197
|
|
192
198
|
@built[:plotOptions] =
|
193
|
-
|
199
|
+
options_class(:Plot).check plot_options.compact
|
194
200
|
end
|
195
201
|
|
196
202
|
def build_responsive
|
@@ -207,7 +213,7 @@ module ApexCharts
|
|
207
213
|
}.compact
|
208
214
|
|
209
215
|
states = @options.delete :states
|
210
|
-
@built[:states].merge!
|
216
|
+
@built[:states].merge! options_class(:States).check(states.compact) if states.is_a? Hash
|
211
217
|
|
212
218
|
@built[:states] = nil if @built[:states].empty?
|
213
219
|
end
|
@@ -220,7 +226,7 @@ module ApexCharts
|
|
220
226
|
if [true, false].include? stroke
|
221
227
|
@built[:stroke].merge!(show: stroke)
|
222
228
|
elsif stroke.is_a? Hash
|
223
|
-
@built[:stroke].merge!
|
229
|
+
@built[:stroke].merge! options_class(:Stroke).check(stroke.compact)
|
224
230
|
end
|
225
231
|
|
226
232
|
@built[:stroke] = nil if @built[:stroke].empty?
|
@@ -231,7 +237,7 @@ module ApexCharts
|
|
231
237
|
@built[:subtitle] = if subtitle.is_a? String
|
232
238
|
{text: subtitle}
|
233
239
|
elsif subtitle.is_a? Hash
|
234
|
-
|
240
|
+
options_class(:TitleSubtitle).check subtitle.compact
|
235
241
|
end
|
236
242
|
end
|
237
243
|
|
@@ -240,14 +246,14 @@ module ApexCharts
|
|
240
246
|
@built[:theme] = if theme.is_a? String
|
241
247
|
case theme
|
242
248
|
when 'random'
|
243
|
-
resolve_theme(Theme
|
249
|
+
resolve_theme(Theme.all_palettes.sample)
|
244
250
|
when 'monochrome'
|
245
251
|
{monochrome: {enabled: true}}
|
246
252
|
else
|
247
253
|
resolve_theme(theme)
|
248
254
|
end
|
249
255
|
elsif theme.is_a? Hash
|
250
|
-
|
256
|
+
options_class(:Theme).check theme.compact
|
251
257
|
end
|
252
258
|
end
|
253
259
|
|
@@ -256,7 +262,7 @@ module ApexCharts
|
|
256
262
|
@built[:title] = if title.is_a? String
|
257
263
|
{text: title}
|
258
264
|
elsif title.is_a? Hash
|
259
|
-
|
265
|
+
options_class(:TitleSubtitle).check title.compact
|
260
266
|
end
|
261
267
|
end
|
262
268
|
|
@@ -265,7 +271,7 @@ module ApexCharts
|
|
265
271
|
@built[:tooltip] = if [true, false].include? tooltip
|
266
272
|
{enabled: tooltip}
|
267
273
|
elsif tooltip.is_a? Hash
|
268
|
-
|
274
|
+
options_class(:Tooltip).check tooltip.compact
|
269
275
|
end
|
270
276
|
end
|
271
277
|
|
@@ -282,7 +288,7 @@ module ApexCharts
|
|
282
288
|
if xaxis.is_a? String
|
283
289
|
@built[:xaxis][:title] = {text: xaxis}
|
284
290
|
elsif xaxis.is_a? Hash
|
285
|
-
|
291
|
+
options_class(:XAxis).check xaxis
|
286
292
|
@built[:xaxis].merge! xaxis
|
287
293
|
end
|
288
294
|
|
@@ -302,13 +308,15 @@ module ApexCharts
|
|
302
308
|
if yaxis.is_a? String
|
303
309
|
@built[:yaxis][0][:title] = {text: yaxis}
|
304
310
|
elsif yaxis.is_a? Hash
|
305
|
-
|
311
|
+
options_class(:YAxis).check yaxis
|
306
312
|
@built[:yaxis][0].merge! yaxis
|
307
313
|
end
|
308
314
|
|
309
315
|
@built[:yaxis] = nil if @built[:yaxis].all?(&:empty?)
|
310
316
|
end
|
311
317
|
|
318
|
+
private
|
319
|
+
|
312
320
|
def enabled(options)
|
313
321
|
boolean_to_hash(options) do |opts|
|
314
322
|
{enabled: opts}
|
@@ -336,10 +344,15 @@ module ApexCharts
|
|
336
344
|
def resolve_theme(theme)
|
337
345
|
if Theme::PALETTES.include? theme
|
338
346
|
{palette: theme}
|
339
|
-
elsif Theme
|
340
|
-
@built[:colors] = Theme
|
347
|
+
elsif Theme.palette_names.include? theme
|
348
|
+
@built[:colors] = Theme.get_colors(theme)
|
341
349
|
nil
|
342
350
|
end
|
343
351
|
end
|
352
|
+
|
353
|
+
def options_class(name)
|
354
|
+
schema = ApexCharts.config.schema
|
355
|
+
ApexCharts.const_get "Options::#{schema}::#{name}Options"
|
356
|
+
end
|
344
357
|
end
|
345
358
|
end
|