apexcharts 0.1.7 → 0.1.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +138 -71
  3. data/lib/apex_charts/charts.rb +17 -0
  4. data/lib/{apexcharts/charts/area.rb → apex_charts/charts/area_chart.rb} +1 -1
  5. data/lib/{apexcharts/charts/bar.rb → apex_charts/charts/bar_chart.rb} +1 -1
  6. data/lib/{apexcharts/charts/base.rb → apex_charts/charts/base_chart.rb} +6 -4
  7. data/lib/apex_charts/charts/box_plot_chart.rb +8 -0
  8. data/lib/{apexcharts/charts/bubble.rb → apex_charts/charts/bubble_chart.rb} +2 -2
  9. data/lib/{apexcharts/charts/candlestick.rb → apex_charts/charts/candlestick_chart.rb} +1 -1
  10. data/lib/{apexcharts/charts/cartesian.rb → apex_charts/charts/cartesian_chart.rb} +9 -9
  11. data/lib/{apexcharts/charts/column.rb → apex_charts/charts/column_chart.rb} +3 -1
  12. data/lib/{apexcharts/charts/donut.rb → apex_charts/charts/donut_chart.rb} +1 -1
  13. data/lib/{apexcharts → apex_charts}/charts/features/annotations.rb +7 -5
  14. data/lib/{apexcharts → apex_charts}/charts/features/mixable.rb +1 -1
  15. data/lib/{apexcharts/charts/heatmap.rb → apex_charts/charts/heatmap_chart.rb} +2 -2
  16. data/lib/{apexcharts/charts/line.rb → apex_charts/charts/line_chart.rb} +1 -1
  17. data/lib/{apexcharts/charts/mixed.rb → apex_charts/charts/mixed_charts.rb} +13 -7
  18. data/lib/{apexcharts/charts/pie.rb → apex_charts/charts/pie_chart.rb} +1 -1
  19. data/lib/apex_charts/charts/polar_chart.rb +9 -0
  20. data/lib/{apexcharts/charts/radar.rb → apex_charts/charts/radar_chart.rb} +2 -2
  21. data/lib/{apexcharts/charts/radial_bar.rb → apex_charts/charts/radial_bar_chart.rb} +1 -1
  22. data/lib/{apexcharts/charts/range_bar.rb → apex_charts/charts/range_bar_chart.rb} +1 -1
  23. data/lib/{apexcharts/charts/scatter.rb → apex_charts/charts/scatter_chart.rb} +1 -1
  24. data/lib/{apexcharts/charts/syncing.rb → apex_charts/charts/syncing_charts.rb} +2 -2
  25. data/lib/{apexcharts → apex_charts}/colors.rb +2 -1
  26. data/lib/apex_charts/config/default_options.rb +16 -0
  27. data/lib/apex_charts/config/schema.rb +20 -0
  28. data/lib/apex_charts/configuration.rb +27 -0
  29. data/lib/{apexcharts → apex_charts}/helper.rb +25 -24
  30. data/lib/apex_charts/options/default/annotations_options.rb +14 -0
  31. data/lib/apex_charts/options/default/chart_options.rb +33 -0
  32. data/lib/apex_charts/options/default/data_labels_options.rb +18 -0
  33. data/lib/apex_charts/options/default/fill_options.rb +14 -0
  34. data/lib/apex_charts/options/default/grid_options.rb +17 -0
  35. data/lib/apex_charts/options/default/helper_options.rb +22 -0
  36. data/lib/apex_charts/options/default/legend_options.rb +33 -0
  37. data/lib/apex_charts/options/default/markers_options.rb +26 -0
  38. data/lib/apex_charts/options/default/no_data_options.rb +14 -0
  39. data/lib/apex_charts/options/default/plot_options.rb +19 -0
  40. data/lib/apex_charts/options/default/root_options.rb +38 -0
  41. data/lib/apex_charts/options/default/states_options.rb +11 -0
  42. data/lib/apex_charts/options/default/stroke_options.rb +14 -0
  43. data/lib/apex_charts/options/default/theme_options.rb +11 -0
  44. data/lib/apex_charts/options/default/title_subtitle_options.rb +15 -0
  45. data/lib/apex_charts/options/default/tooltip_options.rb +25 -0
  46. data/lib/apex_charts/options/default/x_axis_options.rb +27 -0
  47. data/lib/apex_charts/options/default/y_axis_options.rb +28 -0
  48. data/lib/apex_charts/options/dry_schema/annotations_options.rb +22 -0
  49. data/lib/apex_charts/options/dry_schema/annotations_options/annotation_label.rb +24 -0
  50. data/lib/apex_charts/options/dry_schema/annotations_options/image_annotations.rb +15 -0
  51. data/lib/apex_charts/options/dry_schema/annotations_options/point_annotations.rb +33 -0
  52. data/lib/apex_charts/options/dry_schema/annotations_options/text_annotations.rb +26 -0
  53. data/lib/apex_charts/options/dry_schema/annotations_options/x_axis_annotations.rb +20 -0
  54. data/lib/apex_charts/options/dry_schema/annotations_options/y_axis_annotations.rb +21 -0
  55. data/lib/apex_charts/options/dry_schema/chart_options.rb +35 -0
  56. data/lib/apex_charts/options/dry_schema/data_labels_options.rb +37 -0
  57. data/lib/apex_charts/options/dry_schema/fill_options.rb +34 -0
  58. data/lib/apex_charts/options/dry_schema/general_schema/drop_shadow.rb +14 -0
  59. data/lib/apex_charts/options/dry_schema/general_schema/function.rb +12 -0
  60. data/lib/apex_charts/options/dry_schema/grid_options.rb +19 -0
  61. data/lib/apex_charts/options/dry_schema/helper_options.rb +22 -0
  62. data/lib/apex_charts/options/dry_schema/legend_options.rb +61 -0
  63. data/lib/apex_charts/options/dry_schema/markers_options.rb +34 -0
  64. data/lib/apex_charts/options/dry_schema/markers_options/discrete_point.rb +13 -0
  65. data/lib/apex_charts/options/dry_schema/no_data_options.rb +16 -0
  66. data/lib/apex_charts/options/dry_schema/plot_options.rb +231 -0
  67. data/lib/apex_charts/options/dry_schema/root_options.rb +42 -0
  68. data/lib/apex_charts/options/dry_schema/schema.rb +32 -0
  69. data/lib/apex_charts/options/dry_schema/states_options.rb +22 -0
  70. data/lib/apex_charts/options/dry_schema/states_options/filter.rb +10 -0
  71. data/lib/apex_charts/options/dry_schema/stroke_options.rb +21 -0
  72. data/lib/apex_charts/options/dry_schema/theme_options.rb +18 -0
  73. data/lib/apex_charts/options/dry_schema/title_subtitle_options.rb +22 -0
  74. data/lib/apex_charts/options/dry_schema/tooltip_options.rb +27 -0
  75. data/lib/apex_charts/options/dry_schema/x_axis_options.rb +30 -0
  76. data/lib/apex_charts/options/dry_schema/y_axis_options.rb +30 -0
  77. data/lib/{apexcharts → apex_charts}/options_builder.rb +63 -40
  78. data/lib/{apexcharts → apex_charts}/prefix_with_apex.rb +3 -1
  79. data/lib/{apexcharts → apex_charts}/prefixer.rb +2 -0
  80. data/lib/apex_charts/renderer.rb +113 -0
  81. data/lib/apex_charts/series.rb +7 -0
  82. data/lib/{apexcharts/series/bubble.rb → apex_charts/series/bubble_series.rb} +4 -2
  83. data/lib/{apexcharts/series/cartesian.rb → apex_charts/series/cartesian_series.rb} +4 -2
  84. data/lib/{apexcharts/series/polar.rb → apex_charts/series/polar_series.rb} +4 -2
  85. data/lib/{apexcharts → apex_charts}/support/rails.rb +0 -0
  86. data/lib/{apexcharts → apex_charts}/support/sinatra.rb +0 -0
  87. data/lib/{apexcharts → apex_charts}/theme.rb +2 -18
  88. data/lib/{apexcharts → apex_charts}/utils.rb +0 -0
  89. data/lib/{apexcharts → apex_charts}/utils/copy.rb +2 -0
  90. data/lib/{apexcharts → apex_charts}/utils/date_time.rb +7 -2
  91. data/lib/{apexcharts → apex_charts}/utils/hash.rb +2 -0
  92. data/lib/{apexcharts → apex_charts}/version.rb +2 -1
  93. data/lib/apexcharts.rb +3 -3
  94. data/vendor/assets/javascripts/apexcharts.js +11 -3
  95. metadata +103 -74
  96. data/lib/apexcharts/charts.rb +0 -13
  97. data/lib/apexcharts/charts/polar.rb +0 -7
  98. data/lib/apexcharts/config.rb +0 -25
  99. data/lib/apexcharts/config/default_options.rb +0 -12
  100. data/lib/apexcharts/options/annotations.rb +0 -10
  101. data/lib/apexcharts/options/axis.rb +0 -17
  102. data/lib/apexcharts/options/chart.rb +0 -26
  103. data/lib/apexcharts/options/data_labels.rb +0 -14
  104. data/lib/apexcharts/options/div_attributes.rb +0 -9
  105. data/lib/apexcharts/options/fill.rb +0 -12
  106. data/lib/apexcharts/options/grid.rb +0 -15
  107. data/lib/apexcharts/options/legend.rb +0 -27
  108. data/lib/apexcharts/options/markers.rb +0 -18
  109. data/lib/apexcharts/options/no_data.rb +0 -12
  110. data/lib/apexcharts/options/plot_options.rb +0 -12
  111. data/lib/apexcharts/options/root.rb +0 -44
  112. data/lib/apexcharts/options/states.rb +0 -9
  113. data/lib/apexcharts/options/stroke.rb +0 -12
  114. data/lib/apexcharts/options/subtitle.rb +0 -9
  115. data/lib/apexcharts/options/theme.rb +0 -8
  116. data/lib/apexcharts/options/title.rb +0 -13
  117. data/lib/apexcharts/options/tooltip.rb +0 -22
  118. data/lib/apexcharts/options/x_axis.rb +0 -12
  119. data/lib/apexcharts/options/y_axis.rb +0 -15
  120. data/lib/apexcharts/renderer.rb +0 -68
  121. data/lib/apexcharts/series.rb +0 -7
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ApexCharts
4
- %w(
5
- base cartesian line area bar column scatter candlestick
6
- heatmap bubble radar mixed syncing polar pie donut
7
- ).each do |type|
8
- autoload :"#{type.capitalize}Chart", "apexcharts/charts/#{type}.rb"
9
- end
10
-
11
- autoload :RangeBarChart, 'apexcharts/charts/range_bar.rb'
12
- autoload :RadialBarChart, 'apexcharts/charts/radial_bar.rb'
13
- end
@@ -1,7 +0,0 @@
1
- module ApexCharts
2
- class PolarChart < BaseChart
3
- def series_type
4
- PolarSeries
5
- end
6
- end
7
- end
@@ -1,25 +0,0 @@
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
@@ -1,12 +0,0 @@
1
- module ApexCharts
2
- module DefaultOptions
3
- def default_options=(options)
4
- @default_options = OptionsBuilder.new(nil, options)
5
- .build_general_options
6
- end
7
-
8
- def default_options
9
- @default_options ||= {}
10
- end
11
- end
12
- end
@@ -1,10 +0,0 @@
1
- module ApexCharts
2
- class AnnotationsOptions < ::SmartKv
3
- optional *%i[
4
- points
5
- position
6
- xaxis
7
- yaxis
8
- ]
9
- end
10
- end
@@ -1,17 +0,0 @@
1
- module ApexCharts
2
- class AxisOptions < ::SmartKv
3
- optional *%i[
4
- axisBorder
5
- axisTicks
6
- crosshairs
7
- floating
8
- labels
9
- max
10
- min
11
- tickAmount
12
- title
13
- tooltip
14
- type
15
- ]
16
- end
17
- end
@@ -1,26 +0,0 @@
1
- module ApexCharts
2
- class ChartOptions < ::SmartKv
3
- optional *%i[
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
- end
26
- end
@@ -1,14 +0,0 @@
1
- module ApexCharts
2
- class DataLabelsOptions < ::SmartKv
3
- optional *%i[
4
- dropShadow
5
- enabled
6
- enabledOnSeries
7
- formatter
8
- offsetX
9
- offsetY
10
- style
11
- textAnchor
12
- ]
13
- end
14
- end
@@ -1,9 +0,0 @@
1
- module ApexCharts
2
- class DivAttributes < ::SmartKv
3
- optional *%i[
4
- class
5
- id
6
- style
7
- ]
8
- end
9
- end
@@ -1,12 +0,0 @@
1
- module ApexCharts
2
- class FillOptions < ::SmartKv
3
- optional *%i[
4
- colors
5
- gradient
6
- image
7
- opacity
8
- pattern
9
- type
10
- ]
11
- end
12
- end
@@ -1,15 +0,0 @@
1
- module ApexCharts
2
- class GridOptions < ::SmartKv
3
- optional *%i[
4
- borderColor
5
- column
6
- padding
7
- position
8
- row
9
- show
10
- strokeDashArray
11
- xaxis
12
- yaxis
13
- ]
14
- end
15
- end
@@ -1,27 +0,0 @@
1
- module ApexCharts
2
- class LegendOptions < ::SmartKv
3
- optional *%i[
4
- containerMargin
5
- floating
6
- fontFamily
7
- fontSize
8
- formatter
9
- height
10
- horizontalAlign
11
- itemMargin
12
- labels
13
- markers
14
- offsetX
15
- offsetY
16
- onItemClick
17
- onItemHover
18
- position
19
- show
20
- showForNullSeries
21
- showForSingleSeries
22
- showForZeroSeries
23
- textAnchor
24
- width
25
- ]
26
- end
27
- end
@@ -1,18 +0,0 @@
1
- module ApexCharts
2
- class MarkersOptions < ::SmartKv
3
- optional *%i[
4
- colors
5
- discrete
6
- fillOpacity
7
- hover
8
- offsetX
9
- offsetY
10
- radius
11
- shape
12
- size
13
- strokeColor
14
- strokeOpacity
15
- strokeWidth
16
- ]
17
- end
18
- end
@@ -1,12 +0,0 @@
1
- module ApexCharts
2
- class NoDataOptions < ::SmartKv
3
- optional *%i[
4
- align
5
- offsetX
6
- offsetY
7
- style
8
- text
9
- verticalAlign
10
- ]
11
- end
12
- end
@@ -1,12 +0,0 @@
1
- module ApexCharts
2
- class PlotOptions < ::SmartKv
3
- optional *%i[
4
- bar
5
- candlestick
6
- heatmap
7
- pie
8
- radar
9
- radialBar
10
- ]
11
- end
12
- end
@@ -1,44 +0,0 @@
1
- require_relative 'div_attributes'
2
- require_relative 'chart'
3
- require_relative 'stroke'
4
- require_relative 'states'
5
-
6
- module ApexCharts
7
- class RootOptions < ::SmartKv
8
- optional *%i[
9
- annotations
10
- brushTarget
11
- chart
12
- chartId
13
- colors
14
- dataLabels
15
- fill
16
- grid
17
- group
18
- labels
19
- legend
20
- markers
21
- noData
22
- plotOptions
23
- responsive
24
- series
25
- states
26
- stroke
27
- subtitle
28
- theme
29
- title
30
- tooltip
31
- var
32
- xaxis
33
- xtitle
34
- xtype
35
- yaxis
36
- ytitle
37
- ytype
38
- ],
39
- *DivAttributes.optional_keys,
40
- *ChartOptions.optional_keys,
41
- *StrokeOptions.optional_keys,
42
- *StatesOptions.optional_keys
43
- end
44
- end
@@ -1,9 +0,0 @@
1
- module ApexCharts
2
- class StatesOptions < ::SmartKv
3
- optional *%i[
4
- active
5
- hover
6
- normal
7
- ]
8
- end
9
- end
@@ -1,12 +0,0 @@
1
- module ApexCharts
2
- class StrokeOptions < ::SmartKv
3
- optional *%i[
4
- colors
5
- curve
6
- dashArray
7
- lineCap
8
- show
9
- width
10
- ]
11
- end
12
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'title'
4
-
5
- module ApexCharts
6
- class SubtitleOptions < TitleOptions
7
- optional
8
- end
9
- end
@@ -1,8 +0,0 @@
1
- module ApexCharts
2
- class ThemeOptions < ::SmartKv
3
- optional *%i[
4
- monochrome
5
- palette
6
- ]
7
- end
8
- end
@@ -1,13 +0,0 @@
1
- module ApexCharts
2
- class TitleOptions < ::SmartKv
3
- optional *%i[
4
- align
5
- floating
6
- margin
7
- offsetX
8
- offsetY
9
- style
10
- text
11
- ]
12
- end
13
- end
@@ -1,22 +0,0 @@
1
- module ApexCharts
2
- class TooltipOptions < ::SmartKv
3
- optional *%i[
4
- custom
5
- enabled
6
- fillSeriesColor
7
- fixed
8
- followCursor
9
- intersect
10
- inverseOrder
11
- items
12
- marker
13
- onDatasetHover
14
- shared
15
- style
16
- theme
17
- x
18
- y
19
- z
20
- ]
21
- end
22
- end
@@ -1,12 +0,0 @@
1
- require_relative 'axis'
2
-
3
- module ApexCharts
4
- class XAxisOptions < AxisOptions
5
- optional *%i[
6
- categories
7
- position
8
- range
9
- tickPlacement
10
- ]
11
- end
12
- end
@@ -1,15 +0,0 @@
1
- require_relative 'axis'
2
-
3
- module ApexCharts
4
- class YAxisOptions < AxisOptions
5
- optional *%i[
6
- decimalsInFloat
7
- forceNiceScale
8
- logarithmic
9
- opposite
10
- seriesName
11
- show
12
- showAlways
13
- ]
14
- end
15
- end
@@ -1,68 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'json'
4
-
5
- module ApexCharts
6
- class Renderer
7
- class << self
8
- def render_default(options)
9
- renderer = new options
10
-
11
- html = if renderer.id_number == '1' && !ApexCharts.config.default_options.empty?
12
- renderer.window_apex
13
- else
14
- ''
15
- end
16
- html + <<~HTML
17
- <div id="#{renderer.element_id}" class="#{renderer.css_class}" style="#{renderer.style}"></div>
18
- <script type="text/javascript">
19
- var #{renderer.variable} = new ApexCharts(document.querySelector("##{renderer.element_id}"), #{renderer.options.to_json});
20
- #{renderer.variable}.render();
21
- </script>
22
- HTML
23
- end
24
- end
25
-
26
- attr_reader :options
27
-
28
- def initialize(options)
29
- @options = options
30
- end
31
-
32
- def attributes
33
- @attributes ||= options.delete(:div) { {} }
34
- end
35
-
36
- def element_id
37
- @element_id ||= attributes.delete(:id)
38
- end
39
-
40
- def id_number
41
- @id_number ||= element_id&.[](/\d+/)
42
- end
43
-
44
- def variable
45
- @variable ||= attributes.delete(:var) { "chart#{id_number}" }
46
- end
47
-
48
- def css_class
49
- attributes.delete(:class)
50
- end
51
-
52
- def height
53
- "#{options[:chart][:height].to_i}px"
54
- end
55
-
56
- def style
57
- "height: #{height}; #{attributes.delete(:style)}"
58
- end
59
-
60
- def window_apex
61
- <<~HTML
62
- <script type="text/javascript">
63
- window.Apex = #{ApexCharts.config.default_options.to_json}
64
- </script>
65
- HTML
66
- end
67
- end
68
- end