card-mod-bootstrap 0.11.7 → 0.13.2

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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/{lib/javascript → assets/script}/bootstrap_modal_decko.js +0 -0
  3. data/assets/script/manifest.yml +18 -0
  4. data/assets/script/script_colorpicker.js.coffee +3 -0
  5. data/{lib/javascript → assets/script}/script_load_select2.js.coffee +0 -0
  6. data/assets/script/script_pointer_config.js.coffee +80 -0
  7. data/assets/script/script_pointer_list_editor.js.coffee +67 -0
  8. data/db/migrate_core_cards/20180423160231_migrate_customized_bootstrap_skin.rb +1 -1
  9. data/db/migrate_core_cards/20200809112346_add_mod_card.rb +7 -0
  10. data/db/migrate_core_cards/20201129140917_remove_script_cards.rb +9 -0
  11. data/file/mod_bootstrap_script_bootstrap_machine_output/file.js +25 -0
  12. data/file/mod_bootstrap_script_pointer_machine_output/file.js +223 -0
  13. data/lib/card/bootstrap.rb +17 -0
  14. data/lib/card/bootstrap/basic_tags.rb +26 -0
  15. data/lib/card/bootstrap/component.rb +110 -0
  16. data/lib/card/bootstrap/component/carousel.rb +78 -0
  17. data/lib/card/bootstrap/component/form.rb +67 -0
  18. data/lib/card/bootstrap/component/horizontal_form.rb +65 -0
  19. data/lib/card/bootstrap/component/layout.rb +107 -0
  20. data/lib/card/bootstrap/component/panel.rb +11 -0
  21. data/lib/{bootstrap/component/component_class.rb → card/bootstrap/component_klass.rb} +5 -4
  22. data/lib/card/bootstrap/component_loader.rb +30 -0
  23. data/lib/card/bootstrap/content.rb +42 -0
  24. data/lib/card/bootstrap/delegate.rb +18 -0
  25. data/lib/card/bootstrap/old_component.rb +108 -0
  26. data/lib/card/bootstrap/tag_method.rb +56 -0
  27. data/lib/card/bootstrapper.rb +17 -0
  28. data/lib/card/tab.rb +8 -1
  29. data/lib/stylesheets/font_awesome.css +6 -6
  30. data/lib/stylesheets/material_icons.css +4 -4
  31. data/locales/en.yml +3 -0
  32. data/public/{assets/fonts → fonts}/MaterialIcons-Regular.eot +0 -0
  33. data/public/{assets/fonts → fonts}/MaterialIcons-Regular.ijmap +0 -0
  34. data/public/{assets/fonts → fonts}/MaterialIcons-Regular.svg +0 -0
  35. data/public/{assets/fonts → fonts}/MaterialIcons-Regular.ttf +0 -0
  36. data/public/{assets/fonts → fonts}/MaterialIcons-Regular.woff +0 -0
  37. data/public/{assets/fonts → fonts}/MaterialIcons-Regular.woff2 +0 -0
  38. data/public/{assets/fonts → fonts}/fa-brands-400.eot +0 -0
  39. data/public/{assets/fonts → fonts}/fa-brands-400.svg +0 -0
  40. data/public/{assets/fonts → fonts}/fa-brands-400.ttf +0 -0
  41. data/public/{assets/fonts → fonts}/fa-brands-400.woff +0 -0
  42. data/public/{assets/fonts → fonts}/fa-brands-400.woff2 +0 -0
  43. data/public/{assets/fonts → fonts}/fa-regular-400.eot +0 -0
  44. data/public/{assets/fonts → fonts}/fa-regular-400.svg +0 -0
  45. data/public/{assets/fonts → fonts}/fa-regular-400.ttf +0 -0
  46. data/public/{assets/fonts → fonts}/fa-regular-400.woff +0 -0
  47. data/public/{assets/fonts → fonts}/fa-regular-400.woff2 +0 -0
  48. data/public/{assets/fonts → fonts}/fa-solid-900.eot +0 -0
  49. data/public/{assets/fonts → fonts}/fa-solid-900.svg +0 -0
  50. data/public/{assets/fonts → fonts}/fa-solid-900.ttf +0 -0
  51. data/public/{assets/fonts → fonts}/fa-solid-900.woff +0 -0
  52. data/public/{assets/fonts → fonts}/fa-solid-900.woff2 +0 -0
  53. data/public/{assets/fonts → fonts}/glyphicons-halflings-regular.eot +0 -0
  54. data/public/{assets/fonts → fonts}/glyphicons-halflings-regular.svg +0 -0
  55. data/public/{assets/fonts → fonts}/glyphicons-halflings-regular.ttf +0 -0
  56. data/public/{assets/fonts → fonts}/glyphicons-halflings-regular.woff +0 -0
  57. data/public/{assets/fonts → fonts}/glyphicons-halflings-regular.woff2 +0 -0
  58. data/set/abstract/bootswatch_theme.rb +2 -2
  59. data/set/all/bootstrap/icon.rb +3 -1
  60. metadata +78 -57
  61. data/lib/bootstrap.rb +0 -18
  62. data/lib/bootstrap/basic_tags.rb +0 -26
  63. data/lib/bootstrap/component.rb +0 -108
  64. data/lib/bootstrap/component/carousel.rb +0 -76
  65. data/lib/bootstrap/component/form.rb +0 -65
  66. data/lib/bootstrap/component/horizontal_form.rb +0 -63
  67. data/lib/bootstrap/component/layout.rb +0 -105
  68. data/lib/bootstrap/component/panel.rb +0 -9
  69. data/lib/bootstrap/component_loader.rb +0 -28
  70. data/lib/bootstrap/content.rb +0 -40
  71. data/lib/bootstrap/delegate.rb +0 -16
  72. data/lib/bootstrap/old_component.rb +0 -103
  73. data/lib/bootstrap/tag_method.rb +0 -54
  74. data/lib/bootstrapper.rb +0 -16
  75. data/set/self/script_bootstrap.rb +0 -12
  76. data/set/self/script_select2.rb +0 -12
@@ -77,14 +77,14 @@ def after_engine output
77
77
  Card::Auth.as_bot { update! db_content: output }
78
78
  end
79
79
 
80
- # needed to make the refresh_script_and_style method work with these cards
80
+ # needed to make the refresh_assets method work with these cards
81
81
  def source_files
82
82
  extended_input_cards.map do |i_card|
83
83
  i_card.try(:source_files)
84
84
  end.flatten.compact
85
85
  end
86
86
 
87
- # needed to make the refresh_script_and_style method work with these cards
87
+ # needed to make the refresh_assets method work with these cards
88
88
  def existing_source_paths
89
89
  extended_input_cards.map do |i_card|
90
90
  i_card.try(:existing_source_paths)
@@ -96,7 +96,9 @@ format :html do
96
96
  end
97
97
 
98
98
  def font_awesome_icon_tag icon, opts={}
99
- prepend_class opts, "fa fa-#{icon_class(:font_awesome, icon)}"
99
+
100
+ prepend_class opts,
101
+ "fa#{'b' if opts.delete :brand} fa-#{icon_class(:font_awesome, icon)}"
100
102
  wrap_with :i, "", opts
101
103
  end
102
104
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: card-mod-bootstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.7
4
+ version: 0.13.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan McCutchen
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-08-01 00:00:00.000000000 Z
13
+ date: 2021-08-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: card
@@ -18,70 +18,84 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 1.101.7
21
+ version: 1.103.2
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '='
27
27
  - !ruby/object:Gem::Version
28
- version: 1.101.7
28
+ version: 1.103.2
29
+ - !ruby/object:Gem::Dependency
30
+ name: card-mod-assets
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - '='
34
+ - !ruby/object:Gem::Version
35
+ version: 0.13.2
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - '='
41
+ - !ruby/object:Gem::Version
42
+ version: 0.13.2
29
43
  - !ruby/object:Gem::Dependency
30
44
  name: card-mod-edit
31
45
  requirement: !ruby/object:Gem::Requirement
32
46
  requirements:
33
47
  - - '='
34
48
  - !ruby/object:Gem::Version
35
- version: 0.11.7
49
+ version: 0.13.2
36
50
  type: :runtime
37
51
  prerelease: false
38
52
  version_requirements: !ruby/object:Gem::Requirement
39
53
  requirements:
40
54
  - - '='
41
55
  - !ruby/object:Gem::Version
42
- version: 0.11.7
56
+ version: 0.13.2
43
57
  - !ruby/object:Gem::Dependency
44
58
  name: card-mod-bar_and_box
45
59
  requirement: !ruby/object:Gem::Requirement
46
60
  requirements:
47
61
  - - '='
48
62
  - !ruby/object:Gem::Version
49
- version: 0.11.7
63
+ version: 0.13.2
50
64
  type: :runtime
51
65
  prerelease: false
52
66
  version_requirements: !ruby/object:Gem::Requirement
53
67
  requirements:
54
68
  - - '='
55
69
  - !ruby/object:Gem::Version
56
- version: 0.11.7
70
+ version: 0.13.2
57
71
  - !ruby/object:Gem::Dependency
58
72
  name: card-mod-style
59
73
  requirement: !ruby/object:Gem::Requirement
60
74
  requirements:
61
75
  - - '='
62
76
  - !ruby/object:Gem::Version
63
- version: 0.11.7
77
+ version: 0.13.2
64
78
  type: :runtime
65
79
  prerelease: false
66
80
  version_requirements: !ruby/object:Gem::Requirement
67
81
  requirements:
68
82
  - - '='
69
83
  - !ruby/object:Gem::Version
70
- version: 0.11.7
84
+ version: 0.13.2
71
85
  - !ruby/object:Gem::Dependency
72
86
  name: card-mod-script
73
87
  requirement: !ruby/object:Gem::Requirement
74
88
  requirements:
75
89
  - - '='
76
90
  - !ruby/object:Gem::Version
77
- version: 0.11.7
91
+ version: 0.13.2
78
92
  type: :runtime
79
93
  prerelease: false
80
94
  version_requirements: !ruby/object:Gem::Requirement
81
95
  requirements:
82
96
  - - '='
83
97
  - !ruby/object:Gem::Version
84
- version: 0.11.7
98
+ version: 0.13.2
85
99
  description: ''
86
100
  email:
87
101
  - info@decko.org
@@ -89,6 +103,12 @@ executables: []
89
103
  extensions: []
90
104
  extra_rdoc_files: []
91
105
  files:
106
+ - assets/script/bootstrap_modal_decko.js
107
+ - assets/script/manifest.yml
108
+ - assets/script/script_colorpicker.js.coffee
109
+ - assets/script/script_load_select2.js.coffee
110
+ - assets/script/script_pointer_config.js.coffee
111
+ - assets/script/script_pointer_list_editor.js.coffee
92
112
  - db/migrate_core_cards/20170719163733_update_bootswatch_themes_to_4_beta.rb
93
113
  - db/migrate_core_cards/20170726111053_add_bootstrap_mixins.rb
94
114
  - db/migrate_core_cards/20170726145012_select2.rb
@@ -103,6 +123,8 @@ files:
103
123
  - db/migrate_core_cards/20180516153037_add_style_select2_card.rb
104
124
  - db/migrate_core_cards/20180601133753_migrate_skins.rb
105
125
  - db/migrate_core_cards/20181129140917_fix_skin_images.rb
126
+ - db/migrate_core_cards/20200809112346_add_mod_card.rb
127
+ - db/migrate_core_cards/20201129140917_remove_script_cards.rb
106
128
  - db/migrate_core_cards/data/20181108181219_migrate_classic_skins_to_bootstrap.rb
107
129
  - db/migrate_core_cards/data/custom_theme/cards.scss
108
130
  - db/migrate_core_cards/data/custom_theme/colors.scss
@@ -166,6 +188,8 @@ files:
166
188
  - file/minty_skin_image/image-medium.png
167
189
  - file/minty_skin_image/image-original.png
168
190
  - file/minty_skin_image/image-small.png
191
+ - file/mod_bootstrap_script_bootstrap_machine_output/file.js
192
+ - file/mod_bootstrap_script_pointer_machine_output/file.js
169
193
  - file/paper_skin_image/image-icon.png
170
194
  - file/paper_skin_image/image-large.png
171
195
  - file/paper_skin_image/image-medium.png
@@ -226,57 +250,56 @@ files:
226
250
  - file/yeti_skin_image/image-medium.png
227
251
  - file/yeti_skin_image/image-original.png
228
252
  - file/yeti_skin_image/image-small.png
229
- - lib/bootstrap.rb
230
- - lib/bootstrap/basic_tags.rb
231
- - lib/bootstrap/component.rb
232
- - lib/bootstrap/component/carousel.rb
233
- - lib/bootstrap/component/component_class.rb
234
- - lib/bootstrap/component/form.rb
235
- - lib/bootstrap/component/horizontal_form.rb
236
- - lib/bootstrap/component/layout.rb
237
- - lib/bootstrap/component/panel.rb
238
- - lib/bootstrap/component_loader.rb
239
- - lib/bootstrap/content.rb
240
- - lib/bootstrap/delegate.rb
241
- - lib/bootstrap/old_component.rb
242
- - lib/bootstrap/tag_method.rb
243
- - lib/bootstrapper.rb
253
+ - lib/card/bootstrap.rb
254
+ - lib/card/bootstrap/basic_tags.rb
255
+ - lib/card/bootstrap/component.rb
256
+ - lib/card/bootstrap/component/carousel.rb
257
+ - lib/card/bootstrap/component/form.rb
258
+ - lib/card/bootstrap/component/horizontal_form.rb
259
+ - lib/card/bootstrap/component/layout.rb
260
+ - lib/card/bootstrap/component/panel.rb
261
+ - lib/card/bootstrap/component_klass.rb
262
+ - lib/card/bootstrap/component_loader.rb
263
+ - lib/card/bootstrap/content.rb
264
+ - lib/card/bootstrap/delegate.rb
265
+ - lib/card/bootstrap/old_component.rb
266
+ - lib/card/bootstrap/tag_method.rb
267
+ - lib/card/bootstrapper.rb
244
268
  - lib/card/lazy_tab.rb
245
269
  - lib/card/tab.rb
246
- - lib/javascript/bootstrap_modal_decko.js
247
- - lib/javascript/script_load_select2.js.coffee
248
270
  - lib/javascript/smartmenu.js
249
271
  - lib/stylesheets/font_awesome.css
250
272
  - lib/stylesheets/material_icons.css
251
273
  - lib/stylesheets/smartmenu.css
252
274
  - lib/stylesheets/style_bootstrap_cards.scss
253
275
  - lib/stylesheets/style_select2_bootstrap.scss
254
- - public/assets/fonts/MaterialIcons-Regular.eot
255
- - public/assets/fonts/MaterialIcons-Regular.ijmap
256
- - public/assets/fonts/MaterialIcons-Regular.svg
257
- - public/assets/fonts/MaterialIcons-Regular.ttf
258
- - public/assets/fonts/MaterialIcons-Regular.woff
259
- - public/assets/fonts/MaterialIcons-Regular.woff2
260
- - public/assets/fonts/fa-brands-400.eot
261
- - public/assets/fonts/fa-brands-400.svg
262
- - public/assets/fonts/fa-brands-400.ttf
263
- - public/assets/fonts/fa-brands-400.woff
264
- - public/assets/fonts/fa-brands-400.woff2
265
- - public/assets/fonts/fa-regular-400.eot
266
- - public/assets/fonts/fa-regular-400.svg
267
- - public/assets/fonts/fa-regular-400.ttf
268
- - public/assets/fonts/fa-regular-400.woff
269
- - public/assets/fonts/fa-regular-400.woff2
270
- - public/assets/fonts/fa-solid-900.eot
271
- - public/assets/fonts/fa-solid-900.svg
272
- - public/assets/fonts/fa-solid-900.ttf
273
- - public/assets/fonts/fa-solid-900.woff
274
- - public/assets/fonts/fa-solid-900.woff2
275
- - public/assets/fonts/glyphicons-halflings-regular.eot
276
- - public/assets/fonts/glyphicons-halflings-regular.svg
277
- - public/assets/fonts/glyphicons-halflings-regular.ttf
278
- - public/assets/fonts/glyphicons-halflings-regular.woff
279
- - public/assets/fonts/glyphicons-halflings-regular.woff2
276
+ - locales/en.yml
277
+ - public/fonts/MaterialIcons-Regular.eot
278
+ - public/fonts/MaterialIcons-Regular.ijmap
279
+ - public/fonts/MaterialIcons-Regular.svg
280
+ - public/fonts/MaterialIcons-Regular.ttf
281
+ - public/fonts/MaterialIcons-Regular.woff
282
+ - public/fonts/MaterialIcons-Regular.woff2
283
+ - public/fonts/fa-brands-400.eot
284
+ - public/fonts/fa-brands-400.svg
285
+ - public/fonts/fa-brands-400.ttf
286
+ - public/fonts/fa-brands-400.woff
287
+ - public/fonts/fa-brands-400.woff2
288
+ - public/fonts/fa-regular-400.eot
289
+ - public/fonts/fa-regular-400.svg
290
+ - public/fonts/fa-regular-400.ttf
291
+ - public/fonts/fa-regular-400.woff
292
+ - public/fonts/fa-regular-400.woff2
293
+ - public/fonts/fa-solid-900.eot
294
+ - public/fonts/fa-solid-900.svg
295
+ - public/fonts/fa-solid-900.ttf
296
+ - public/fonts/fa-solid-900.woff
297
+ - public/fonts/fa-solid-900.woff2
298
+ - public/fonts/glyphicons-halflings-regular.eot
299
+ - public/fonts/glyphicons-halflings-regular.svg
300
+ - public/fonts/glyphicons-halflings-regular.ttf
301
+ - public/fonts/glyphicons-halflings-regular.woff
302
+ - public/fonts/glyphicons-halflings-regular.woff2
280
303
  - set/abstract/bootstrap_code_file.rb
281
304
  - set/abstract/bootswatch_theme.rb
282
305
  - set/abstract/bootswatch_theme/html_views.rb
@@ -301,9 +324,7 @@ files:
301
324
  - set/self/bootstrap_functions.rb
302
325
  - set/self/font_awesome.rb
303
326
  - set/self/material_icons.rb
304
- - set/self/script_bootstrap.rb
305
327
  - set/self/script_load_select2.rb
306
- - set/self/script_select2.rb
307
328
  - set/self/smartmenu_css.rb
308
329
  - set/self/smartmenu_js.rb
309
330
  - set/self/style_bootstrap_cards.rb
data/lib/bootstrap.rb DELETED
@@ -1,18 +0,0 @@
1
- require "bootstrap/component_loader"
2
- require "bootstrap/component"
3
-
4
- class Bootstrap
5
- include Delegate
6
- extend ComponentLoader
7
- load_components
8
-
9
- attr_reader :context
10
-
11
- def initialize context=nil
12
- @context = context
13
- end
14
-
15
- def render *args, &block
16
- instance_exec(*args, &block)
17
- end
18
- end
@@ -1,26 +0,0 @@
1
- # require 'component'
2
-
3
- class Bootstrap
4
- module BasicTags
5
- def html content
6
- add_content String(content).html_safe
7
- ""
8
- end
9
-
10
- Component.def_div_method :div, nil do |opts, extra_args|
11
- prepend_class opts, extra_args.first if extra_args.present?
12
- opts
13
- end
14
-
15
- Component.def_div_method :span, nil do |opts, extra_args|
16
- prepend_class opts, extra_args.first if extra_args.present?
17
- opts
18
- end
19
-
20
- Component.def_tag_method :tag, nil, tag: :yield do |opts, extra_args|
21
- prepend_class opts, extra_args[1] if extra_args[1].present?
22
- opts[:tag] = extra_args[0]
23
- opts
24
- end
25
- end
26
- end
@@ -1,108 +0,0 @@
1
- class Bootstrap
2
- # render components of bootstrap library
3
- class Component
4
- extend ComponentClass
5
-
6
- def initialize context, *args, &block
7
- @context = context
8
- @content = ["".html_safe]
9
- @args = args
10
- @child_args = []
11
- @append = []
12
- @wrap = []
13
- @build_block = block
14
- @html = Builder::XmlMarkup.new
15
- end
16
-
17
- def render
18
- @rendered = render_content
19
- end
20
-
21
- def prepend &block
22
- tmp = @content.pop
23
- instance_exec(&block)
24
- @content << tmp
25
- end
26
-
27
- def insert &block
28
- instance_exec(&block)
29
- end
30
-
31
- def append &block
32
- @append[-1] << block
33
- end
34
-
35
- def wrap tag=nil, &block
36
- @wrap[-1] << (block_given? ? block : tag)
37
- end
38
-
39
- def card
40
- @context.context.card
41
- end
42
-
43
- private
44
-
45
- def tag_method_opts args, html_class, tag_opts, &tag_opts_block
46
- opts = {}
47
- _blah, opts, _blah = standardize_args args, &tag_opts_block if block_given?
48
- add_classes opts, html_class, tag_opts.delete(:optional_classes)
49
- opts
50
- end
51
-
52
- def render_content
53
- # if @build_block.arity > 0
54
- instance_exec(*@args, &@build_block)
55
- end
56
-
57
- def generate_content content, processor, &block
58
- content = instance_exec(&block) if block.present?
59
- return content if !processor || !content.is_a?(Array)
60
-
61
- content.each { |item| send processor, item }
62
- ""
63
- end
64
-
65
- def with_child_args args
66
- @child_args << args if args.present?
67
- yield.tap { @child_args.pop if args.present? }
68
- end
69
-
70
- def add_content content
71
- @content[-1] << "\n#{content}".html_safe if content.present?
72
- end
73
-
74
- def standardize_args args, &block
75
- opts = standardize_opts args
76
- items = items_from_args args
77
- opts, args = standardize_block_args opts, args, &block if block.present?
78
-
79
- [items, opts, args]
80
- end
81
-
82
- def standardize_opts args
83
- args.last.is_a?(Hash) ? args.pop : {}
84
- end
85
-
86
- def items_from_args args
87
- ((args.one? && args.last.is_a?(String)) || args.last.is_a?(Array)) && args.pop
88
- end
89
-
90
- def standardize_block_args opts, args, &block
91
- instance_exec(opts, args, &block).tap do |s_opts, _s_args|
92
- unless s_opts.is_a? Hash
93
- raise Card::Error, "first return value of a tag block has to be a hash"
94
- end
95
- end
96
- end
97
-
98
- def add_classes opts, html_class, optional_classes
99
- prepend_class opts, html_class if html_class
100
- Array.wrap(optional_classes).each do |k, v|
101
- prepend_class opts, v if opts.delete k
102
- end
103
- end
104
-
105
- include BasicTags
106
- include Delegate
107
- end
108
- end
@@ -1,76 +0,0 @@
1
- class Bootstrap
2
- class Component
3
- class Carousel < Component
4
- def render_content
5
- carousel(*@args, &@build_block)
6
- end
7
-
8
- def carousel id, active_index, &block
9
- @id = id
10
- @active_item_index = active_index
11
- @items = []
12
- instance_exec(&block)
13
-
14
- @html.div class: "carousel slide", id: id, "data-ride" => "carousel" do
15
- indicators
16
- items
17
- control_prev
18
- control_next
19
- end
20
- end
21
-
22
- def item content=nil, &block
23
- @items << (content || block)
24
- end
25
-
26
- def items
27
- @html.div class: "carousel-inner", role: "listbox" do
28
- @items.each_with_index do |item, index|
29
- carousel_item item, carousel_item_opts(index)
30
- end
31
- end
32
- end
33
-
34
- def carousel_item_opts index
35
- { class: "carousel-item" }.tap do |opts|
36
- add_class opts, "active" if index == @active_item_index
37
- end
38
- end
39
-
40
- def carousel_item item, html_opts
41
- @html.div html_opts do
42
- item = item.call if item.respond_to?(:call)
43
- @html << item if item.is_a?(String)
44
- end
45
- end
46
-
47
- def control_prev
48
- @html.a class: "carousel-control-prev", href: "##{@id}", role: "button",
49
- "data-slide" => "prev" do
50
- @html.span class: "carousel-control-prev-icon", "aria-hidden" => "true"
51
- @html.span "Previous", class: "sr-only"
52
- end
53
- end
54
-
55
- def control_next
56
- @html.a class: "carousel-control-next", href: "##{@id}", role: "button",
57
- "data-slide": "next" do
58
- @html.span class: "carousel-control-next-icon", "aria-hidden" => "true"
59
- @html.span "Next", class: "sr-only"
60
- end
61
- end
62
-
63
- def indicators
64
- @html.ol class: "carousel-indicators" do
65
- @items.size.times { |i| indicator i }
66
- end
67
- end
68
-
69
- def indicator index
70
- html_opts = { "data-slide-to" => index, "data-target": "##{@id}" }
71
- add_class html_opts, "active" if index == @active_item_index
72
- @html.li html_opts
73
- end
74
- end
75
- end
76
- end