bs5 0.0.15 → 0.0.16
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/app/helpers/bs5/components_helper.rb +6 -7
- data/app/service/bs5/collapse_service.rb +5 -3
- data/app/service/bs5/popover_service.rb +31 -0
- data/app/service/bs5/tooltip_service.rb +31 -0
- data/app/views/bs5/examples/popovers/default/_example.html.erb +2 -0
- data/app/views/bs5/examples/popovers/default/snippet.html.erb +1 -0
- data/app/views/bs5/examples/popovers/disabled_elements/_example.html.erb +2 -0
- data/app/views/bs5/examples/popovers/disabled_elements/snippet.html.erb +3 -0
- data/app/views/bs5/examples/popovers/dismissable_on_next_click/_example.html.erb +2 -0
- data/app/views/bs5/examples/popovers/dismissable_on_next_click/snippet.html.erb +1 -0
- data/app/views/bs5/examples/popovers/four_directions/_example.html.erb +2 -0
- data/app/views/bs5/examples/popovers/four_directions/snippet.html.erb +7 -0
- data/app/views/bs5/pages/popovers.html.erb +2 -0
- data/app/views/layouts/bs5/pages.html.erb +1 -0
- data/config/initializers/hash_refinement.rb +9 -0
- data/lib/bs5/version.rb +1 -1
- data/lib/generators/bs5/install/templates/bs5.js +11 -1
- metadata +13 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba1fb14f4e08a3c9b6e8196fd306954c3e2bbe5e7f074ff018dbcf5adb9554cb
|
4
|
+
data.tar.gz: c7d797b046934929781283e825fcb74b3e9780faf544ce92dd2ca1b38cfbc60f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f11d2a95bc6dcfe8539feeb6eba85eaa873096c0cf725aa4d800b72f86e29c39817ae867739422f549f0c3a6be0b1f378de57e8d2e03ae62daa5d4594de6ee64
|
7
|
+
data.tar.gz: 1de41edf38036562b6fde14f20242926d557344875a4efdfc5a552d9a8cf7d2cc5d68fbe9cd2d815178fb2ae75f57a13be92aaf72fd9c19416ba8ee214967a4a
|
@@ -11,13 +11,12 @@ module Bs5
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
-
def bs5_tooltip(
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
}
|
14
|
+
def bs5_tooltip(*args)
|
15
|
+
TooltipService.new(*args).to_hash
|
16
|
+
end
|
17
|
+
|
18
|
+
def bs5_popover(*args)
|
19
|
+
PopoverService.new(*args).to_hash
|
21
20
|
end
|
22
21
|
|
23
22
|
def bs5_collapse(*args)
|
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
module Bs5
|
4
4
|
class CollapseService
|
5
|
+
using HashRefinement
|
6
|
+
|
5
7
|
CONTROLS_ERR_MSG = 'Please provide either a `controls` option' \
|
6
8
|
' containing the id of the collapsible element' \
|
7
9
|
' or an ID selector as `target` options.'
|
@@ -24,10 +26,10 @@ module Bs5
|
|
24
26
|
private
|
25
27
|
|
26
28
|
def data_options
|
27
|
-
options = {
|
28
|
-
options[:
|
29
|
+
options = { toggle: :collapse }
|
30
|
+
options[:target] = target if target
|
29
31
|
|
30
|
-
options
|
32
|
+
options.prefix_keys_with_bs
|
31
33
|
end
|
32
34
|
|
33
35
|
def aria_options
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bs5
|
4
|
+
class PopoverService
|
5
|
+
using HashRefinement
|
6
|
+
|
7
|
+
attr_reader :title
|
8
|
+
|
9
|
+
def initialize(options = {})
|
10
|
+
@title = options.delete(:title)
|
11
|
+
@options = options
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_hash
|
15
|
+
{
|
16
|
+
title: title,
|
17
|
+
data: options
|
18
|
+
}.compact
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def options
|
24
|
+
@options.symbolize_keys.merge(default_options).prefix_keys_with_bs
|
25
|
+
end
|
26
|
+
|
27
|
+
def default_options
|
28
|
+
{ toggle: :popover }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bs5
|
4
|
+
class TooltipService
|
5
|
+
using HashRefinement
|
6
|
+
|
7
|
+
attr_reader :title
|
8
|
+
|
9
|
+
def initialize(title, options = {})
|
10
|
+
@title = title
|
11
|
+
@options = options
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_hash
|
15
|
+
{
|
16
|
+
title: title,
|
17
|
+
data: options
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def options
|
24
|
+
@options.symbolize_keys.merge(default_options).prefix_keys_with_bs
|
25
|
+
end
|
26
|
+
|
27
|
+
def default_options
|
28
|
+
{ toggle: :tooltip }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= bs5_button_tag('Click to toggle popover', bs5_popover(title: 'Popover title', content: "And here's some amazing content. It's very engaging. Right?").merge(type: 'button', style: :danger, size: :large)) %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= tag.a 'Dismissible popover', bs5_popover(title: 'Dismissible popover', content: "And here's some amazing content. It's very engaging. Right?", trigger: :focus).merge(class: 'btn btn-lg btn-danger', role: :button, tabindex: 0) %>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<%= bs5_button_tag('Popover on top', bs5_popover(content: "Vivamus sagittis lacus vel augue laoreet rutrum faucibus.", container: :body, placement: :top).merge(type: 'button', style: :secondary)) %>
|
2
|
+
|
3
|
+
<%= bs5_button_tag('Popover on right', bs5_popover(content: "Vivamus sagittis lacus vel augue laoreet rutrum faucibus.", container: :body, placement: :right).merge(type: 'button', style: :secondary)) %>
|
4
|
+
|
5
|
+
<%= bs5_button_tag('Popover on bottom', bs5_popover(content: "Vivamus sagittis lacus vel augue laoreet rutrum faucibus.", container: :body, placement: :bottom).merge(type: 'button', style: :secondary)) %>
|
6
|
+
|
7
|
+
<%= bs5_button_tag('Popover on left', bs5_popover(content: "Vivamus sagittis lacus vel augue laoreet rutrum faucibus.", container: :body, placement: :left).merge(type: 'button', style: :secondary)) %>
|
@@ -21,6 +21,7 @@
|
|
21
21
|
<% lg.slot(:item, active: current_page?(pages_path('close_button'))) do %><%= link_to 'Close button', pages_path('close_button') %><% end %>
|
22
22
|
<% lg.slot(:item, active: current_page?(pages_path('collapse'))) do %><%= link_to 'Collapse', pages_path('collapse') %><% end %>
|
23
23
|
<% lg.slot(:item, active: current_page?(pages_path('list_group'))) do %><%= link_to 'List group', pages_path('list_group') %><% end %>
|
24
|
+
<% lg.slot(:item, active: current_page?(pages_path('popovers'))) do %><%= link_to 'Popovers', pages_path('popovers') %><% end %>
|
24
25
|
<% lg.slot(:item, active: current_page?(pages_path('tooltips'))) do %><%= link_to 'Tooltips', pages_path('tooltips') %><% end %>
|
25
26
|
<%- end %>
|
26
27
|
</div>
|
data/lib/bs5/version.rb
CHANGED
@@ -2,13 +2,23 @@ import * as bootstrap from "bootstrap";
|
|
2
2
|
|
3
3
|
function tooltipify() {
|
4
4
|
const tooltipTriggerList = [].slice.call(
|
5
|
-
document.querySelectorAll('[data-toggle="tooltip"]')
|
5
|
+
document.querySelectorAll('[data-bs-toggle="tooltip"]')
|
6
6
|
);
|
7
7
|
tooltipTriggerList.map(function (tooltipTriggerEl) {
|
8
8
|
return new bootstrap.Tooltip(tooltipTriggerEl);
|
9
9
|
});
|
10
10
|
}
|
11
11
|
|
12
|
+
function popoverify() {
|
13
|
+
const popoverTriggerList = [].slice.call(
|
14
|
+
document.querySelectorAll('[data-bs-toggle="popover"]')
|
15
|
+
);
|
16
|
+
popoverTriggerList.map(function (popoverTriggerEl) {
|
17
|
+
return new bootstrap.Popover(popoverTriggerEl);
|
18
|
+
});
|
19
|
+
}
|
20
|
+
|
12
21
|
export function start() {
|
22
|
+
popoverify();
|
13
23
|
tooltipify();
|
14
24
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bs5
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Patrick Baselier
|
@@ -163,6 +163,8 @@ files:
|
|
163
163
|
- app/helpers/bs5/examples_helper.rb
|
164
164
|
- app/models/bs5/application_record.rb
|
165
165
|
- app/service/bs5/collapse_service.rb
|
166
|
+
- app/service/bs5/popover_service.rb
|
167
|
+
- app/service/bs5/tooltip_service.rb
|
166
168
|
- app/validators/style_validator.rb
|
167
169
|
- app/views/bs5/examples/accordion/default/_example.html.erb
|
168
170
|
- app/views/bs5/examples/accordion/default/snippet.html.erb
|
@@ -234,6 +236,14 @@ files:
|
|
234
236
|
- app/views/bs5/examples/list_group/style/default.html.erb
|
235
237
|
- app/views/bs5/examples/list_group/with_badges/_example.html.erb
|
236
238
|
- app/views/bs5/examples/list_group/with_badges/default.html.erb
|
239
|
+
- app/views/bs5/examples/popovers/default/_example.html.erb
|
240
|
+
- app/views/bs5/examples/popovers/default/snippet.html.erb
|
241
|
+
- app/views/bs5/examples/popovers/disabled_elements/_example.html.erb
|
242
|
+
- app/views/bs5/examples/popovers/disabled_elements/snippet.html.erb
|
243
|
+
- app/views/bs5/examples/popovers/dismissable_on_next_click/_example.html.erb
|
244
|
+
- app/views/bs5/examples/popovers/dismissable_on_next_click/snippet.html.erb
|
245
|
+
- app/views/bs5/examples/popovers/four_directions/_example.html.erb
|
246
|
+
- app/views/bs5/examples/popovers/four_directions/snippet.html.erb
|
237
247
|
- app/views/bs5/examples/tooltips/default/_example.html.erb
|
238
248
|
- app/views/bs5/examples/tooltips/default/buttons.html.erb
|
239
249
|
- app/views/bs5/examples/tooltips/default/disabled_elements.html.erb
|
@@ -246,10 +256,12 @@ files:
|
|
246
256
|
- app/views/bs5/pages/close_button.html.erb
|
247
257
|
- app/views/bs5/pages/collapse.html.erb
|
248
258
|
- app/views/bs5/pages/list_group.html.erb
|
259
|
+
- app/views/bs5/pages/popovers.html.erb
|
249
260
|
- app/views/bs5/pages/tooltips.html.erb
|
250
261
|
- app/views/layouts/bs5/application.html.erb
|
251
262
|
- app/views/layouts/bs5/pages.html.erb
|
252
263
|
- config/definitions.rb
|
264
|
+
- config/initializers/hash_refinement.rb
|
253
265
|
- config/locales/en.yml
|
254
266
|
- config/routes.rb
|
255
267
|
- lib/bs5.rb
|