card-mod-bootstrap 0.11.0 → 0.11.5
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/db/migrate_core_cards/20170719163733_update_bootswatch_themes_to_4_beta.rb +1 -2
- data/db/migrate_core_cards/20170726111053_add_bootstrap_mixins.rb +2 -2
- data/db/migrate_core_cards/20170726145012_select2.rb +2 -2
- data/db/migrate_core_cards/20180423160231_migrate_customized_bootstrap_skin.rb +1 -0
- data/db/migrate_core_cards/20180423170283_add_type_bootswatch_skin.rb +1 -0
- data/db/migrate_core_cards/20180425174433_delete_deprecated_skin_cards.rb +1 -0
- data/db/migrate_core_cards/20181129140917_fix_skin_images.rb +0 -1
- data/db/migrate_core_cards/data/20181108181219_migrate_classic_skins_to_bootstrap.rb +1 -0
- data/db/migrate_core_cards/lib/skin.rb +1 -1
- data/lib/bootstrap.rb +3 -1
- data/lib/bootstrap/component.rb +39 -128
- data/lib/bootstrap/component/carousel.rb +16 -8
- data/lib/bootstrap/component/component_class.rb +36 -0
- data/lib/bootstrap/component/form.rb +4 -4
- data/lib/bootstrap/component/horizontal_form.rb +2 -2
- data/lib/bootstrap/component/layout.rb +20 -10
- data/lib/bootstrap/component_loader.rb +1 -1
- data/lib/bootstrap/content.rb +40 -0
- data/lib/bootstrap/old_component.rb +6 -85
- data/lib/bootstrap/tag_method.rb +54 -0
- data/lib/bootstrapper.rb +1 -1
- data/lib/stylesheets/style_bootstrap_cards.scss +2 -2
- data/public/assets/fonts/MaterialIcons-Regular.svg +1 -2373
- data/public/assets/fonts/fa-brands-400.svg +1 -3717
- data/public/assets/fonts/fa-regular-400.svg +1 -801
- data/public/assets/fonts/fa-solid-900.svg +1 -5028
- data/public/assets/fonts/glyphicons-halflings-regular.svg +1 -288
- data/set/abstract/bootstrap_code_file.rb +0 -1
- data/set/abstract/bootswatch_theme.rb +1 -0
- data/set/abstract/bs_badge/tab_badge.haml +1 -1
- data/set/all/bootstrap/downdown_button.haml +9 -0
- data/set/all/bootstrap/dropdown.rb +13 -15
- data/set/all/bootstrap/helper.rb +23 -12
- data/set/all/bootstrap/icon.rb +16 -11
- data/set/all/bootstrap/navbar.rb +8 -28
- data/set/all/bootstrap/navbar/navbar_responsive.haml +17 -0
- data/set/all/bootstrap/table.rb +9 -7
- data/set/all/bootstrap/wrapper.rb +2 -4
- data/set/self/bootstrap_core.rb +7 -8
- data/set/type/customized_bootswatch_skin.rb +11 -7
- data/set/type_plus_right/customized_bootswatch_skin/colors.rb +3 -2
- metadata +24 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3cec84d4d107eb10c36b89dcdcf027d3c5dd2f6fd3a0f37409099cee8fe037b9
|
4
|
+
data.tar.gz: 641ae7a1c7480deac8d098899b3188d8e0b0e55579ebdc430d393f423b4e7754
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1ddfdf005e2cc00e919f50f6e39c5395eaae0de0c713ecb44bb8dc9a66a7a5390d89fb12f99a21f0d681eef7aa8abf97a86e188d670ebbcb355058ba9c03f84
|
7
|
+
data.tar.gz: 748a9964081887d8b5a9123197db0e5278e03d55201302c7b3b5843f9fa2c8273fd0770ee7d8d749dd1061c7c2694745bef2b65656f30718394159a659ed2e1b
|
@@ -3,9 +3,9 @@
|
|
3
3
|
class AddBootstrapMixins < Cardio::Migration::Core
|
4
4
|
def up
|
5
5
|
ensure_card "style: bootstrap mixins", type_id: Card::ScssID,
|
6
|
-
|
6
|
+
codename: "style_bootstrap_mixins"
|
7
7
|
|
8
8
|
ensure_card "style: bootstrap breakpoints", type_id: Card::ScssID,
|
9
|
-
|
9
|
+
codename: "style_bootstrap_breakpoints"
|
10
10
|
end
|
11
11
|
end
|
@@ -51,6 +51,7 @@ class MigrateCustomizedBootstrapSkin < Cardio::Migration::Core
|
|
51
51
|
def migrate_customizable_bootstrap_skin
|
52
52
|
referers = Card.search refer_to: { codename: OLD_SKIN.to_s }
|
53
53
|
return unless referers.present?
|
54
|
+
|
54
55
|
replace_old_skin referers
|
55
56
|
build_new_skin
|
56
57
|
delete_code_card OLD_SKIN
|
data/lib/bootstrap.rb
CHANGED
@@ -6,11 +6,13 @@ class Bootstrap
|
|
6
6
|
extend ComponentLoader
|
7
7
|
load_components
|
8
8
|
|
9
|
+
attr_reader :context
|
10
|
+
|
9
11
|
def initialize context=nil
|
10
12
|
@context = context
|
11
13
|
end
|
12
14
|
|
13
15
|
def render *args, &block
|
14
|
-
instance_exec
|
16
|
+
instance_exec(*args, &block)
|
15
17
|
end
|
16
18
|
end
|
data/lib/bootstrap/component.rb
CHANGED
@@ -1,68 +1,8 @@
|
|
1
|
-
#! no set module
|
2
1
|
class Bootstrap
|
3
|
-
|
4
|
-
def initialize component, name, html_class, tag_opts={}, &tag_block
|
5
|
-
@component = component
|
6
|
-
@name = name
|
7
|
-
@html_class = html_class
|
8
|
-
@tag_opts = tag_opts
|
9
|
-
@tag_block = tag_block
|
10
|
-
@append = []
|
11
|
-
@wrap = []
|
12
|
-
@xm = Builder::XmlMarkup.new
|
13
|
-
end
|
14
|
-
|
15
|
-
def call *args, &content_block
|
16
|
-
component.content.push "".html_safe
|
17
|
-
|
18
|
-
content, opts = content_block.call
|
19
|
-
wrappers = @wrap.pop
|
20
|
-
if wrappers.present?
|
21
|
-
while wrappers.present? do
|
22
|
-
wrapper = wrappers.shift
|
23
|
-
if wrapper.is_a? Symbol
|
24
|
-
send wrapper, &content_block
|
25
|
-
else
|
26
|
-
instance_exec(content, &wrappers.shift)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
else
|
30
|
-
add_content content
|
31
|
-
end
|
32
|
-
|
33
|
-
collected_content = @content.pop
|
34
|
-
tag_name = opts.delete(:tag) if tag_name == :yield
|
35
|
-
add_content content_tag(tag_name, collected_content, opts, false)
|
36
|
-
@append.pop.each do |block|
|
37
|
-
add_content instance_exec(&block)
|
38
|
-
end
|
39
|
-
""
|
40
|
-
end
|
41
|
-
|
42
|
-
def method_missing method, *args, &block
|
43
|
-
@component.send method, *args, &block
|
44
|
-
end
|
45
|
-
|
46
|
-
def prepend &block
|
47
|
-
tmp = @content.pop
|
48
|
-
instance_exec &block
|
49
|
-
@content << tmp
|
50
|
-
end
|
51
|
-
|
52
|
-
def wrap &block
|
53
|
-
instance_exec &block
|
54
|
-
end
|
55
|
-
|
56
|
-
def append &block
|
57
|
-
@append[-1] << block
|
58
|
-
end
|
59
|
-
|
60
|
-
def wrapInner tag=nil, &block
|
61
|
-
@wrap[-1] << (block_given? ? block : tag)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
2
|
+
# render components of bootstrap library
|
65
3
|
class Component
|
4
|
+
extend ComponentClass
|
5
|
+
|
66
6
|
def initialize context, *args, &block
|
67
7
|
@context = context
|
68
8
|
@content = ["".html_safe]
|
@@ -74,64 +14,18 @@ class Bootstrap
|
|
74
14
|
@html = Builder::XmlMarkup.new
|
75
15
|
end
|
76
16
|
|
77
|
-
class << self
|
78
|
-
def render format, *args, &block
|
79
|
-
new(format, *args, &block).render
|
80
|
-
end
|
81
|
-
|
82
|
-
# Like def_tag_method but always generates a div tag
|
83
|
-
# The tag option is not available
|
84
|
-
def def_div_method name, html_class, opts={}, &tag_block
|
85
|
-
def_tag_method name, html_class, opts.merge(tag: :div), &tag_block
|
86
|
-
end
|
87
|
-
|
88
|
-
# Defines a method that generates a html tag
|
89
|
-
# @param method_name [Symbol, String] the name of the method. If no :tag option in tag_opts is defined then the name is also the name of the tag that the method generates
|
90
|
-
# @param html_class [String] a html class that is added to tag. Use nil if you don't want a html_class
|
91
|
-
# @param tag_opts [Hash] additional argument that will be added to the tag
|
92
|
-
# @option tag_opts [Symbol, String] tag the name of the tag
|
93
|
-
# @example
|
94
|
-
# def_tag_method :link, "known-link", tag: :a, id: "uniq-link"
|
95
|
-
# link # => <a class="known-link" id="uniq-link"></a>
|
96
|
-
def def_tag_method method_name, html_class, tag_opts={}, &tag_opts_block
|
97
|
-
tag = tag_opts.delete(:tag) || method_name
|
98
|
-
return def_simple_tag_method method_name, tag, html_class, tag_opts unless block_given?
|
99
|
-
|
100
|
-
define_method method_name do |*args, &content_block|
|
101
|
-
content, opts, new_child_args = standardize_args args, &tag_opts_block
|
102
|
-
add_classes opts, html_class, tag_opts.delete(:optional_classes)
|
103
|
-
|
104
|
-
@html.tag! tag, opts do
|
105
|
-
instance_exec &content_block
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
def def_simple_tag_method method_name, tag, html_class, tag_opts={}
|
111
|
-
define_method method_name do |*args, &content_block|
|
112
|
-
@html.tag! tag, class: html_class do
|
113
|
-
instance_exec &content_block
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
|
120
17
|
def render
|
121
|
-
@rendered =
|
122
|
-
render_content
|
123
|
-
# @content[-1]
|
124
|
-
end
|
18
|
+
@rendered = render_content
|
125
19
|
end
|
126
20
|
|
127
21
|
def prepend &block
|
128
22
|
tmp = @content.pop
|
129
|
-
instance_exec
|
23
|
+
instance_exec(&block)
|
130
24
|
@content << tmp
|
131
25
|
end
|
132
26
|
|
133
27
|
def insert &block
|
134
|
-
instance_exec
|
28
|
+
instance_exec(&block)
|
135
29
|
end
|
136
30
|
|
137
31
|
def append &block
|
@@ -142,46 +36,63 @@ class Bootstrap
|
|
142
36
|
@wrap[-1] << (block_given? ? block : tag)
|
143
37
|
end
|
144
38
|
|
39
|
+
def card
|
40
|
+
@context.context.card
|
41
|
+
end
|
42
|
+
|
145
43
|
private
|
146
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
|
+
|
147
52
|
def render_content
|
148
53
|
# if @build_block.arity > 0
|
149
|
-
instance_exec
|
54
|
+
instance_exec(*@args, &@build_block)
|
150
55
|
end
|
151
56
|
|
152
57
|
def generate_content content, processor, &block
|
153
|
-
content = instance_exec
|
58
|
+
content = instance_exec(&block) if block.present?
|
154
59
|
return content if !processor || !content.is_a?(Array)
|
155
|
-
|
60
|
+
|
61
|
+
content.each { |item| send processor, item }
|
156
62
|
""
|
157
63
|
end
|
158
64
|
|
159
65
|
def with_child_args args
|
160
66
|
@child_args << args if args.present?
|
161
|
-
|
162
|
-
@child_args.pop if args.present?
|
163
|
-
res
|
67
|
+
yield.tap { @child_args.pop if args.present? }
|
164
68
|
end
|
165
69
|
|
166
70
|
def add_content content
|
167
71
|
@content[-1] << "\n#{content}".html_safe if content.present?
|
168
72
|
end
|
169
73
|
|
170
|
-
def
|
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]
|
171
80
|
end
|
172
81
|
|
173
|
-
def
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
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
|
180
93
|
raise Card::Error, "first return value of a tag block has to be a hash"
|
181
94
|
end
|
182
95
|
end
|
183
|
-
|
184
|
-
[items, opts, args]
|
185
96
|
end
|
186
97
|
|
187
98
|
def add_classes opts, html_class, optional_classes
|
@@ -2,14 +2,14 @@ class Bootstrap
|
|
2
2
|
class Component
|
3
3
|
class Carousel < Component
|
4
4
|
def render_content
|
5
|
-
carousel
|
5
|
+
carousel(*@args, &@build_block)
|
6
6
|
end
|
7
7
|
|
8
8
|
def carousel id, active_index, &block
|
9
9
|
@id = id
|
10
10
|
@active_item_index = active_index
|
11
11
|
@items = []
|
12
|
-
instance_exec
|
12
|
+
instance_exec(&block)
|
13
13
|
|
14
14
|
@html.div class: "carousel slide", id: id, "data-ride" => "carousel" do
|
15
15
|
indicators
|
@@ -26,16 +26,24 @@ class Bootstrap
|
|
26
26
|
def items
|
27
27
|
@html.div class: "carousel-inner", role: "listbox" do
|
28
28
|
@items.each_with_index do |item, index|
|
29
|
-
|
30
|
-
add_class html_opts, "active" if index == @active_item_index
|
31
|
-
@html.div html_opts do
|
32
|
-
item = item.call if item.respond_to?(:call)
|
33
|
-
@html << item if item.is_a?(String)
|
34
|
-
end
|
29
|
+
carousel_item item, carousel_item_opts(index)
|
35
30
|
end
|
36
31
|
end
|
37
32
|
end
|
38
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
|
+
|
39
47
|
def control_prev
|
40
48
|
@html.a class: "carousel-control-prev", href: "##{@id}", role: "button",
|
41
49
|
"data-slide" => "prev" do
|
@@ -0,0 +1,36 @@
|
|
1
|
+
class Bootstrap
|
2
|
+
class Component
|
3
|
+
# class methods for Bootstrap::Component
|
4
|
+
module ComponentClass
|
5
|
+
def render format, *args, &block
|
6
|
+
new(format, *args, &block).render
|
7
|
+
end
|
8
|
+
|
9
|
+
# Like def_tag_method but always generates a div tag
|
10
|
+
# The tag option is not available
|
11
|
+
def def_div_method name, html_class, opts={}, &tag_block
|
12
|
+
def_tag_method name, html_class, opts.merge(tag: :div), &tag_block
|
13
|
+
end
|
14
|
+
|
15
|
+
# Defines a method that generates a html tag
|
16
|
+
# @param method_name [Symbol, String] the name of the method. If no :tag option
|
17
|
+
# in tag_opts is defined then the name is also the name of the tag that the
|
18
|
+
# method generates
|
19
|
+
# @param html_class [String] a html class that is added to tag. Use nil if you
|
20
|
+
# don't want a html_class
|
21
|
+
# @param tag_opts [Hash] additional argument that will be added to the tag
|
22
|
+
# @option tag_opts [Symbol, String] tag the name of the tag
|
23
|
+
# @example
|
24
|
+
# def_tag_method :link, "known-link", tag: :a, id: "uniq-link"
|
25
|
+
# link # => <a class="known-link" id="uniq-link"></a>
|
26
|
+
def def_tag_method method_name, html_class, tag_opts={}, &tag_opts_block
|
27
|
+
tag = tag_opts.delete(:tag) || method_name
|
28
|
+
define_method method_name do |*args, &content_block|
|
29
|
+
@html.tag! tag, tag_method_opts(args, html_class, tag_opts, &tag_opts_block) do
|
30
|
+
instance_exec(&content_block)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -2,7 +2,7 @@ class Bootstrap
|
|
2
2
|
class Component
|
3
3
|
class Form < Component
|
4
4
|
def render_content *args
|
5
|
-
form
|
5
|
+
form(*args, &@build_block)
|
6
6
|
end
|
7
7
|
|
8
8
|
#
|
@@ -23,13 +23,13 @@ class Bootstrap
|
|
23
23
|
add_class opts, "form-horizontal" if opts.delete(:horizontal)
|
24
24
|
add_class opts, "form-inline" if opts.delete(:inline)
|
25
25
|
@html.form opts do
|
26
|
-
instance_exec
|
26
|
+
instance_exec(&block)
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
30
|
def group text=nil, &block
|
31
31
|
@html.div text, class: "form-group" do
|
32
|
-
instance_exec
|
32
|
+
instance_exec(&block)
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -53,7 +53,7 @@ class Bootstrap
|
|
53
53
|
# opts
|
54
54
|
# end
|
55
55
|
|
56
|
-
define_method tag do |
|
56
|
+
define_method tag do |id:, label:, text: nil|
|
57
57
|
@html.input id: id, class: "form-control", type: tag do
|
58
58
|
@html.label label, for: id if label
|
59
59
|
@html << text
|