voom-presenters 0.1.8 → 0.1.9
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/Gemfile +1 -0
- data/Gemfile.lock +4 -1
- data/app/demo/components/badges.pom +2 -1
- data/app/demo/components/buttons.pom +13 -1
- data/app/demo/components/cards.pom +1 -3
- data/app/demo/components/chips.pom +1 -2
- data/app/demo/components/date_fields.pom +1 -1
- data/app/demo/components/datetime_fields.pom +1 -1
- data/app/demo/components/dialogs.pom +1 -2
- data/app/demo/components/drawers.pom +1 -0
- data/app/demo/components/expansion_panels.pom +2 -3
- data/app/demo/components/fabs-mini.pom +1 -2
- data/app/demo/components/fabs.pom +1 -1
- data/app/demo/components/forms.pom +1 -0
- data/app/demo/components/headers.pom +4 -5
- data/app/demo/components/hidden_fields.pom +1 -3
- data/app/demo/components/icons.pom +1 -1
- data/app/demo/components/layouts.pom +1 -1
- data/app/demo/components/lists.pom +1 -2
- data/app/demo/components/menus.pom +1 -1
- data/app/demo/components/selects.pom +1 -2
- data/app/demo/components/snackbar.pom +1 -0
- data/app/demo/components/tables.pom +1 -2
- data/app/demo/components/text_areas.pom +1 -2
- data/app/demo/components/text_fields.pom +1 -2
- data/app/demo/components/time_fields.pom +1 -1
- data/app/demo/components/toggles.pom +1 -2
- data/app/demo/components/tooltips.pom +2 -3
- data/app/demo/components.pom +1 -1
- data/app/demo/nav/top_nav.pom +1 -1
- data/app/demo/styles.pom +3 -0
- data/lib/voom/presenters/dsl/components/button.rb +5 -0
- data/lib/voom/presenters/dsl/components/content.rb +2 -0
- data/lib/voom/presenters/dsl/components/dialog.rb +2 -0
- data/lib/voom/presenters/dsl/components/header.rb +13 -24
- data/lib/voom/presenters/dsl/components/menu.rb +17 -1
- data/lib/voom/presenters/dsl/components/mixins/typography.rb +4 -0
- data/lib/voom/presenters/dsl/components/typography.rb +7 -0
- data/lib/voom/presenters/helpers/rails.rb +1 -1
- data/lib/voom/presenters/version.rb +1 -1
- data/public/bundle.css +24 -7
- data/public/bundle.js +6 -4
- data/views/mdc/assets/js/components/menus.js +3 -1
- data/views/mdc/assets/scss/components/button.scss +16 -0
- data/views/mdc/assets/scss/theme.scss +10 -7
- data/views/mdc/body/header.erb +12 -12
- data/views/mdc/components/button.erb +9 -0
- data/views/mdc/components/buttons/button.erb +4 -2
- data/views/mdc/components/buttons/fab.erb +0 -6
- data/views/mdc/components/buttons/icon.erb +0 -7
- data/views/mdc/components/buttons/image.erb +19 -0
- data/views/mdc/components/list/menu.erb +1 -1
- data/views/mdc/components/menu.erb +13 -1
- data/views/mdc/components/page_title.erb +4 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4fbf304ea2a5077bc2472395b6ae56094648cd48e3717c6f5288c878d85e7612
|
4
|
+
data.tar.gz: 78e06a167d4b8570f2ea3ef6a01f4ed439fcb053c4630c6f1aa274399c1c8c44
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7466d802080d7eb70b9e6f56435a089460c719de4421485c76ff3161d8757355c813d47b708ab13f0be01042c59d0d0ca35577c4243cbac2f11df8bb4c4a06fe
|
7
|
+
data.tar.gz: 8a6186fe67c01cf091969fec6468a1d727cd467e4f0cf798c8a730c20c2aeebc73c971873f1ca1f1d5c3befb5427557dd9bd75dee3dc366d5c0c86ecf18027ba
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
voom-presenters (0.1.
|
4
|
+
voom-presenters (0.1.8)
|
5
5
|
dry-configurable (> 0.1, <= 7.0)
|
6
6
|
dry-container (~> 0.6)
|
7
7
|
dry-inflector (~> 0.1)
|
@@ -111,5 +111,8 @@ DEPENDENCIES
|
|
111
111
|
watir-rspec
|
112
112
|
webdrivers (~> 3.0)
|
113
113
|
|
114
|
+
RUBY VERSION
|
115
|
+
ruby 2.5.0p0
|
116
|
+
|
114
117
|
BUNDLED WITH
|
115
118
|
1.16.1
|
@@ -4,9 +4,10 @@ Voom::Presenters.define(:buttons) do
|
|
4
4
|
helpers Demo::Helpers::IndentedGrid
|
5
5
|
attach :top_nav
|
6
6
|
attach :component_drawer
|
7
|
+
page_title 'Buttons'
|
7
8
|
|
8
9
|
indented_grid do
|
9
|
-
|
10
|
+
|
10
11
|
|
11
12
|
# Raised buttons
|
12
13
|
headline 'Raised Button'
|
@@ -46,6 +47,17 @@ Voom::Presenters.define(:buttons) do
|
|
46
47
|
subheading 'with text'
|
47
48
|
button "I'm happy", icon: :mood
|
48
49
|
|
50
|
+
headline 'Image button'
|
51
|
+
button type: :image do
|
52
|
+
image 'http://geotix.com/application/files/3514/5564/7308/MyNorthTicketsLogo.png'
|
53
|
+
end
|
54
|
+
|
55
|
+
subheading 'with icon'
|
56
|
+
button type: :image do
|
57
|
+
image 'http://geotix.com/application/files/3514/5564/7308/MyNorthTicketsLogo.png'
|
58
|
+
icon :link
|
59
|
+
end
|
60
|
+
|
49
61
|
attach :code, file: __FILE__
|
50
62
|
end
|
51
63
|
end
|
@@ -4,10 +4,9 @@ Voom::Presenters.define(:chips) do
|
|
4
4
|
helpers Demo::Helpers::IndentedGrid
|
5
5
|
attach :top_nav
|
6
6
|
attach :component_drawer
|
7
|
+
page_title 'Chips'
|
7
8
|
|
8
9
|
indented_grid do
|
9
|
-
heading 'Chips'
|
10
|
-
|
11
10
|
chip 'Chip 1'
|
12
11
|
chip 'Chip 1', color: :primary
|
13
12
|
chip 'Chip 2', color: :secondary
|
@@ -4,9 +4,9 @@ Voom::Presenters.define(:date_fields) do
|
|
4
4
|
helpers Demo::Helpers::IndentedGrid
|
5
5
|
attach :top_nav
|
6
6
|
attach :component_drawer
|
7
|
+
page_title 'Date Fields'
|
7
8
|
|
8
9
|
indented_grid do
|
9
|
-
display 'Date Fields'
|
10
10
|
body <<~DOC
|
11
11
|
A date separates user display format from the value format.
|
12
12
|
|
@@ -4,9 +4,9 @@ Voom::Presenters.define(:datetime_fields) do
|
|
4
4
|
helpers Demo::Helpers::IndentedGrid
|
5
5
|
attach :top_nav
|
6
6
|
attach :component_drawer
|
7
|
+
page_title 'Date Time'
|
7
8
|
|
8
9
|
indented_grid do
|
9
|
-
display 'Date Time'
|
10
10
|
body <<~DOC
|
11
11
|
A date time separates user display format from the value format.
|
12
12
|
|
@@ -4,10 +4,9 @@ Voom::Presenters.define(:expansion_panels) do
|
|
4
4
|
helpers Demo::Helpers::IndentedGrid
|
5
5
|
attach :top_nav
|
6
6
|
attach :component_drawer
|
7
|
-
|
8
|
-
indented_grid do
|
9
|
-
display 'Expansion Panels'
|
7
|
+
page_title 'Expansion Panels'
|
10
8
|
|
9
|
+
indented_grid do
|
11
10
|
expansion_panel do
|
12
11
|
text 'Personal data'
|
13
12
|
secondary_text 'Type your name and age'
|
@@ -4,10 +4,9 @@ Voom::Presenters.define(:fabs_mini) do
|
|
4
4
|
helpers Demo::Helpers::IndentedGrid
|
5
5
|
attach :top_nav
|
6
6
|
attach :component_drawer
|
7
|
+
page_title 'Float Action Button'
|
7
8
|
|
8
9
|
indented_grid do
|
9
|
-
display 'Float Action Button'
|
10
|
-
|
11
10
|
# Mini Floating action buttons
|
12
11
|
headline 'Mini FAB'
|
13
12
|
body '*Mini size: Only used to create visual continuity with other screen elements*'
|
@@ -4,9 +4,9 @@ Voom::Presenters.define(:fabs) do
|
|
4
4
|
helpers Demo::Helpers::IndentedGrid
|
5
5
|
attach :top_nav
|
6
6
|
attach :component_drawer
|
7
|
+
page_title 'Floating Action Button'
|
7
8
|
|
8
9
|
indented_grid do
|
9
|
-
display 'Floating Action Button'
|
10
10
|
|
11
11
|
headline 'FAB'
|
12
12
|
button icon: :add, type: :fab, color: :primary
|
@@ -8,11 +8,7 @@ Voom::Presenters.define(:headers) do
|
|
8
8
|
|
9
9
|
|
10
10
|
header 'Presenters Demo' do
|
11
|
-
|
12
|
-
icon :subtitles
|
13
|
-
end
|
14
|
-
|
15
|
-
menu do
|
11
|
+
nav do
|
16
12
|
item 'About (Header)' do
|
17
13
|
event :click do
|
18
14
|
loads :index
|
@@ -32,6 +28,9 @@ Voom::Presenters.define(:headers) do
|
|
32
28
|
end
|
33
29
|
end
|
34
30
|
end
|
31
|
+
page_title 'Page about headers' do
|
32
|
+
icon :subtitles
|
33
|
+
end
|
35
34
|
|
36
35
|
|
37
36
|
indented_grid do
|
@@ -1,6 +1,7 @@
|
|
1
1
|
Voom::Presenters.define(:icons) do
|
2
2
|
attach :top_nav
|
3
3
|
attach :component_drawer
|
4
|
+
page_title 'Icons'
|
4
5
|
|
5
6
|
helpers do
|
6
7
|
def small_card(&block)
|
@@ -13,7 +14,6 @@ Voom::Presenters.define(:icons) do
|
|
13
14
|
grid do
|
14
15
|
column 1
|
15
16
|
column 10 do
|
16
|
-
display 'Icons'
|
17
17
|
body 'An icon is commonly used on a menu, button, chip, list or card. They can be used standalone as well.'
|
18
18
|
|
19
19
|
headline 'Plain'
|
@@ -4,7 +4,7 @@ Voom::Presenters.define(:lists) do
|
|
4
4
|
helpers Demo::Helpers::IndentedGrid
|
5
5
|
attach :top_nav
|
6
6
|
attach :component_drawer
|
7
|
-
|
7
|
+
page_title 'Lists'
|
8
8
|
helpers do
|
9
9
|
def actors
|
10
10
|
[OpenStruct.new(name: "<strong>Bryan Cranston</strong>", episodes: 62, body: 'Bryan Cranston played the role of Walter in Breaking Bad. He is also known for playing Hal in Malcom in the Middle.'),
|
@@ -15,7 +15,6 @@ Voom::Presenters.define(:lists) do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
indented_grid do
|
18
|
-
display 'Lists'
|
19
18
|
|
20
19
|
headline 'Simple'
|
21
20
|
list do
|
@@ -4,6 +4,7 @@ Voom::Presenters.define(:tables) do
|
|
4
4
|
helpers Demo::Helpers::IndentedGrid
|
5
5
|
attach :top_nav
|
6
6
|
attach :component_drawer
|
7
|
+
page_title 'Tables'
|
7
8
|
|
8
9
|
helpers do
|
9
10
|
def items
|
@@ -16,8 +17,6 @@ Voom::Presenters.define(:tables) do
|
|
16
17
|
end
|
17
18
|
|
18
19
|
indented_grid do
|
19
|
-
display 'Tables'
|
20
|
-
|
21
20
|
table selectable: true do
|
22
21
|
header do
|
23
22
|
column 'Material'
|
@@ -4,10 +4,9 @@ Voom::Presenters.define(:text_areas) do
|
|
4
4
|
helpers Demo::Helpers::IndentedGrid
|
5
5
|
attach :top_nav
|
6
6
|
attach :component_drawer
|
7
|
+
page_title 'Text Areas'
|
7
8
|
|
8
9
|
indented_grid do
|
9
|
-
display 'Text Areas'
|
10
|
-
|
11
10
|
headline 'Multiple line'
|
12
11
|
|
13
12
|
text_area name: :notes, rows: 3 do
|
@@ -4,9 +4,9 @@ Voom::Presenters.define(:time_fields) do
|
|
4
4
|
helpers Demo::Helpers::IndentedGrid
|
5
5
|
attach :top_nav
|
6
6
|
attach :component_drawer
|
7
|
+
page_title 'Time Field'
|
7
8
|
|
8
9
|
indented_grid do
|
9
|
-
display 'Time Field'
|
10
10
|
body <<~DOC
|
11
11
|
A time field separates user display format from the value format.
|
12
12
|
|
data/app/demo/components.pom
CHANGED
@@ -4,9 +4,9 @@ Voom::Presenters.define('components') do
|
|
4
4
|
helpers Demo::Helpers::IndentedGrid
|
5
5
|
attach 'top_nav'
|
6
6
|
attach 'component_drawer'
|
7
|
+
page_title 'Components'
|
7
8
|
|
8
9
|
indented_grid do
|
9
|
-
display 'Components'
|
10
10
|
grid do
|
11
11
|
column 12 do
|
12
12
|
icon 'fa-hand-point-left', position: :left
|
data/app/demo/nav/top_nav.pom
CHANGED
data/app/demo/styles.pom
CHANGED
@@ -33,6 +33,11 @@ module Voom
|
|
33
33
|
|
34
34
|
end
|
35
35
|
|
36
|
+
def image(image=nil, **attribs, &block)
|
37
|
+
return @image if locked?
|
38
|
+
@image = Components::Image.new(parent: self, image: image, context: context, **attribs, &block)
|
39
|
+
end
|
40
|
+
|
36
41
|
def menu(**attributes, &block)
|
37
42
|
return @menu if locked?
|
38
43
|
@menu = Components::Menu.new(parent: self, position: menu_position, context: context, **attributes, &block)
|
@@ -6,6 +6,7 @@ require_relative 'mixins/text_fields'
|
|
6
6
|
require_relative 'mixins/selects'
|
7
7
|
require_relative 'mixins/snackbars'
|
8
8
|
require_relative 'mixins/date_time_fields'
|
9
|
+
require_relative 'mixins/images'
|
9
10
|
|
10
11
|
module Voom
|
11
12
|
module Presenters
|
@@ -18,6 +19,7 @@ module Voom
|
|
18
19
|
include Mixins::DateTimeFields
|
19
20
|
include Mixins::Selects
|
20
21
|
include Mixins::Snackbars
|
22
|
+
include Mixins::Images
|
21
23
|
|
22
24
|
attr_reader :hidden, :components, :shows_errors
|
23
25
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative 'mixins/common'
|
2
|
+
require_relative 'mixins/attaches'
|
2
3
|
|
3
4
|
module Voom
|
4
5
|
module Presenters
|
@@ -6,6 +7,7 @@ module Voom
|
|
6
7
|
module Components
|
7
8
|
class Dialog < Base
|
8
9
|
include Mixins::Common
|
10
|
+
include Mixins::Attaches
|
9
11
|
attr_accessor :width, :height, :buttons, :components, :shows_errors
|
10
12
|
|
11
13
|
def initialize(**attribs_, &block)
|
@@ -14,41 +14,30 @@ module Voom
|
|
14
14
|
expand!
|
15
15
|
end
|
16
16
|
|
17
|
+
def button(icon=nil, **attributes, &block)
|
18
|
+
return @button if locked?
|
19
|
+
@button = Components::Button.new(icon: icon, position:[:top, :right], parent: self, context: context, **attributes, &block)
|
20
|
+
end
|
21
|
+
|
17
22
|
def menu(**attribs, &block)
|
18
23
|
return @menu if locked?
|
19
|
-
@menu = Menu.new(parent: self,
|
24
|
+
@menu = Components::Menu.new(parent: self,
|
20
25
|
context: context,
|
21
26
|
**attribs, &block)
|
22
27
|
end
|
23
28
|
|
29
|
+
def nav(**attribs, &block)
|
30
|
+
return @nav if locked?
|
31
|
+
@nav = Components::Menu.new(parent: self,
|
32
|
+
context: context,
|
33
|
+
**attribs, &block)
|
34
|
+
end
|
35
|
+
|
24
36
|
def title(*text, **attribs, &block)
|
25
37
|
return @title if locked?
|
26
38
|
@title = Components::Typography.new(parent: self, type: :text, text: text, context: context, **attribs, &block)
|
27
39
|
end
|
28
40
|
|
29
|
-
def page_title(*text, **attribs, &block)
|
30
|
-
return @page_title if locked?
|
31
|
-
@page_title = PageTitle.new(parent: self, text: text, context: context, **attribs, &block)
|
32
|
-
end
|
33
|
-
|
34
|
-
class PageTitle < Base
|
35
|
-
|
36
|
-
attr_accessor :text
|
37
|
-
|
38
|
-
def initialize(**attribs_, &block)
|
39
|
-
super(type: :page_title, **attribs_, &block)
|
40
|
-
@text = attribs.delete(:text)
|
41
|
-
expand!
|
42
|
-
end
|
43
|
-
|
44
|
-
def icon(icon=nil, **attribs, &block)
|
45
|
-
return @icon if locked?
|
46
|
-
@icon = Icon.new(parent: self, icon: icon,
|
47
|
-
context: context,
|
48
|
-
**attribs, &block)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
41
|
end
|
53
42
|
end
|
54
43
|
end
|
@@ -1,18 +1,21 @@
|
|
1
1
|
require_relative 'mixins/event'
|
2
2
|
require_relative 'mixins/tooltips'
|
3
|
+
require_relative 'mixins/attaches'
|
4
|
+
require_relative 'mixins/buttons'
|
3
5
|
|
4
6
|
module Voom
|
5
7
|
module Presenters
|
6
8
|
module DSL
|
7
9
|
module Components
|
8
10
|
class Menu < Base
|
9
|
-
attr_accessor :items, :title, :position, :color, :open
|
11
|
+
attr_accessor :items, :title, :position, :placement, :color, :open
|
10
12
|
|
11
13
|
def initialize(title=nil, **attribs_, &block)
|
12
14
|
super(type: :menu, **attribs_, &block)
|
13
15
|
@title = title
|
14
16
|
@items = []
|
15
17
|
@position = attribs.delete(:position) || :left
|
18
|
+
@placement = attribs.delete(:placement) || :default
|
16
19
|
@color = attribs.delete(:color)
|
17
20
|
@open = attributes.delete(:open){false}
|
18
21
|
expand!
|
@@ -31,6 +34,13 @@ module Voom
|
|
31
34
|
**attribs, &block)
|
32
35
|
end
|
33
36
|
|
37
|
+
def label(**attribs, &block)
|
38
|
+
return @label if locked?
|
39
|
+
@label = Label.new(parent: self,
|
40
|
+
context: context,
|
41
|
+
**attribs, &block)
|
42
|
+
end
|
43
|
+
|
34
44
|
private
|
35
45
|
|
36
46
|
class Item < EventBase
|
@@ -54,6 +64,12 @@ module Voom
|
|
54
64
|
end
|
55
65
|
end
|
56
66
|
|
67
|
+
class Label < Item
|
68
|
+
def initialize(**attribs, &block)
|
69
|
+
super(type: :label, **attribs, &block)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
57
73
|
class Divider < Base
|
58
74
|
def initialize(**attribs, &block)
|
59
75
|
super(type: :divider, **attribs, &block)
|
@@ -21,6 +21,10 @@ module Voom
|
|
21
21
|
self << Components::Typography.new(parent: self, type: :title, text: text, context: context, **attributes, &block)
|
22
22
|
end
|
23
23
|
|
24
|
+
def page_title(*text, **attributes, &block)
|
25
|
+
self << Components::Typography.new(parent: self, type: :page_title, text: text, context: context, level: 1, **attributes, &block)
|
26
|
+
end
|
27
|
+
|
24
28
|
def subheading(*text, **attributes, &block)
|
25
29
|
self << Components::Typography.new(parent: self, type: :subheading, text: text, context: context, **attributes, &block)
|
26
30
|
end
|
@@ -18,6 +18,13 @@ module Voom
|
|
18
18
|
@position = Array(attribs.delete(:position)).compact
|
19
19
|
expand!
|
20
20
|
end
|
21
|
+
|
22
|
+
def icon(icon=nil, **attribs, &block)
|
23
|
+
return @icon if locked?
|
24
|
+
@icon = Components::Icon.new(parent: self, icon: icon,
|
25
|
+
context: context,
|
26
|
+
**attribs, &block)
|
27
|
+
end
|
21
28
|
end
|
22
29
|
end
|
23
30
|
end
|
@@ -16,7 +16,7 @@ if defined?(Rails)
|
|
16
16
|
def presenters_path(presenter, **params)
|
17
17
|
path = voom_presenters_web_client_app_path(params)
|
18
18
|
if path.include?('?')
|
19
|
-
path = path.sub('?', "
|
19
|
+
path = path.sub('?', "#{presenter}?")
|
20
20
|
else
|
21
21
|
path = "#{path}/" unless path.end_with?('/')
|
22
22
|
# replace last / with the presenter
|
data/public/bundle.css
CHANGED
@@ -5942,13 +5942,16 @@ iframe.heightSet {
|
|
5942
5942
|
color: #839098; }
|
5943
5943
|
.mdl-layout__header .mdl-layout__drawer-button {
|
5944
5944
|
background-color: #37424a; }
|
5945
|
-
|
5946
|
-
|
5947
|
-
|
5948
|
-
|
5949
|
-
|
5950
|
-
|
5951
|
-
|
5945
|
+
|
5946
|
+
h1.v-page-title {
|
5947
|
+
background-color: #EBF0F4;
|
5948
|
+
color: #71818c;
|
5949
|
+
margin: 0px;
|
5950
|
+
padding: 24px;
|
5951
|
+
font-size: 30px; }
|
5952
|
+
h1.v-page-title i {
|
5953
|
+
font-size: 30px;
|
5954
|
+
vertical-align: middle; }
|
5952
5955
|
|
5953
5956
|
.mdl-layout__drawer {
|
5954
5957
|
background-color: #37424a;
|
@@ -6565,6 +6568,20 @@ iframe.heightSet {
|
|
6565
6568
|
font-size: .8125rem;
|
6566
6569
|
line-height: 32px; }
|
6567
6570
|
|
6571
|
+
.v-button-image {
|
6572
|
+
width: 150px;
|
6573
|
+
height: 45px;
|
6574
|
+
background-color: #fff !important;
|
6575
|
+
background-size: 75%;
|
6576
|
+
background-repeat: no-repeat;
|
6577
|
+
background-position-x: 18%;
|
6578
|
+
background-position-y: center;
|
6579
|
+
border-radius: 10px; }
|
6580
|
+
.v-button-image > i {
|
6581
|
+
position: absolute;
|
6582
|
+
margin-right: 0 !important;
|
6583
|
+
color: #263138; }
|
6584
|
+
|
6568
6585
|
.mdc-button.v-secondary-filled-button:not(:disabled) {
|
6569
6586
|
background-color: #E58D36; }
|
6570
6587
|
|
data/public/bundle.js
CHANGED
@@ -3796,14 +3796,14 @@ function getNormalizedEventCoords(ev, pageOffset, clientRect) {
|
|
3796
3796
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
3797
3797
|
|
3798
3798
|
"use strict";
|
3799
|
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "
|
3799
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return MDCMenu; });
|
3800
3800
|
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(91);
|
3801
3801
|
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(92);
|
3802
3802
|
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(93);
|
3803
3803
|
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(38);
|
3804
3804
|
/* unused harmony reexport MDCMenuFoundation */
|
3805
3805
|
/* unused harmony reexport AnchorMargin */
|
3806
|
-
/*
|
3806
|
+
/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_3__constants__["a"]; });
|
3807
3807
|
/* unused harmony reexport CornerBit */
|
3808
3808
|
/**
|
3809
3809
|
* @license
|
@@ -15766,8 +15766,10 @@ const numbers = {
|
|
15766
15766
|
|
15767
15767
|
function createMenuHandler(menu, element) {
|
15768
15768
|
return function () {
|
15769
|
-
|
15769
|
+
let offset = parseInt(element.dataset.rightOffset);
|
15770
|
+
let placement = element.dataset.placement === 'contextual' ? __WEBPACK_IMPORTED_MODULE_0__material_menu__["a" /* Corner */].TOP_LEFT : __WEBPACK_IMPORTED_MODULE_0__material_menu__["a" /* Corner */].BOTTOM_LEFT;
|
15770
15771
|
menu.setAnchorMargin({ left: offset });
|
15772
|
+
menu.setAnchorCorner(placement);
|
15771
15773
|
menu.open = !menu.open;
|
15772
15774
|
};
|
15773
15775
|
}
|
@@ -15780,7 +15782,7 @@ function initMenus() {
|
|
15780
15782
|
for (var i = 0; i < components.length; i++) {
|
15781
15783
|
var component = components[i];
|
15782
15784
|
if (!component.mdcComponent) {
|
15783
|
-
component.mdcComponent = new __WEBPACK_IMPORTED_MODULE_0__material_menu__["
|
15785
|
+
component.mdcComponent = new __WEBPACK_IMPORTED_MODULE_0__material_menu__["b" /* MDCMenu */](component);
|
15784
15786
|
var anchor = component.closest('.mdc-menu-anchor');
|
15785
15787
|
if (anchor) {
|
15786
15788
|
var menulink = anchor.querySelector('.v-menu-click');
|
@@ -4,8 +4,10 @@ import {Corner} from '@material/menu';
|
|
4
4
|
|
5
5
|
function createMenuHandler(menu, element) {
|
6
6
|
return function () {
|
7
|
-
|
7
|
+
let offset = parseInt(element.dataset.rightOffset);
|
8
|
+
let placement = element.dataset.placement === 'contextual' ? Corner.TOP_LEFT : Corner.BOTTOM_LEFT
|
8
9
|
menu.setAnchorMargin({left: offset});
|
10
|
+
menu.setAnchorCorner(placement);
|
9
11
|
menu.open = !menu.open;
|
10
12
|
};
|
11
13
|
}
|
@@ -1,5 +1,21 @@
|
|
1
1
|
@import "@material/button/mdc-button";
|
2
2
|
|
3
|
+
.v-button-image {
|
4
|
+
width: 150px;
|
5
|
+
height: 45px;
|
6
|
+
background-color: $mdc-theme-background !important;
|
7
|
+
background-size: 75%;
|
8
|
+
background-repeat: no-repeat;
|
9
|
+
background-position-x: 18%;
|
10
|
+
background-position-y: center;
|
11
|
+
border-radius: 10px;
|
12
|
+
> i {
|
13
|
+
position: absolute;
|
14
|
+
margin-right: 0 !important;
|
15
|
+
color: $v-header-background;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
3
19
|
.mdc-button.v-secondary-filled-button {
|
4
20
|
@include mdc-button-filled-accessible($mdc-theme-secondary);
|
5
21
|
}
|
@@ -21,14 +21,17 @@ $v-title-background: #EBF0F4;
|
|
21
21
|
.mdl-layout__drawer-button {
|
22
22
|
background-color: $v-drawer-background;
|
23
23
|
}
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
}
|
25
|
+
|
26
|
+
h1.v-page-title {
|
27
|
+
background-color: $v-title-background;
|
28
|
+
color: $v-drawer-color;
|
29
|
+
margin: 0px;
|
30
|
+
padding: 24px;
|
31
|
+
font-size: 30px;
|
32
|
+
i {
|
27
33
|
font-size: 30px;
|
28
|
-
|
29
|
-
font-size: 30px;
|
30
|
-
vertical-align: middle;
|
31
|
-
}
|
34
|
+
vertical-align: middle;
|
32
35
|
}
|
33
36
|
}
|
34
37
|
|
data/views/mdc/body/header.erb
CHANGED
@@ -8,24 +8,24 @@
|
|
8
8
|
<%= expand_text(header.title&.text) %>
|
9
9
|
</span>
|
10
10
|
<div class="mdl-layout-spacer"></div>
|
11
|
-
<% if header.
|
11
|
+
<% if header.nav %>
|
12
12
|
<nav class="mdl-navigation">
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
<% header.nav.items.each do |item| %>
|
14
|
+
<a class="mdl-navigation__link"
|
15
|
+
id="<%= item.id %>"
|
16
|
+
href="javascript:void(0)"
|
17
|
+
<%= erb :"components/event", :locals => {events: item.events, parent_id: item.event_parent_id} %>>
|
18
18
|
<%= erb :"components/icon", :locals => {comp: item.icon, class_name: nil} %>
|
19
19
|
<%= item.text %>
|
20
20
|
</a>
|
21
21
|
<% end %>
|
22
22
|
</nav>
|
23
23
|
<% end %>
|
24
|
+
<% if header.button %>
|
25
|
+
<%= erb :"components/button", :locals => {comp: header.button, parent_id: header.id} %>
|
26
|
+
<% end %>
|
27
|
+
<% if header.menu %>
|
28
|
+
<%= erb :"components/menu", :locals => {comp: header.menu, parent_id: header.id} %>
|
29
|
+
<% end %>
|
24
30
|
</div>
|
25
|
-
<% if header.page_title&.text || header.page_title&.icon%>
|
26
|
-
<h1>
|
27
|
-
<%= erb :"components/icon", :locals => {comp: header.page_title.icon, class_name: nil} if header.page_title&.icon%>
|
28
|
-
<%= expand_text(header.page_title.text) if header.page_title&.text %>
|
29
|
-
</h1>
|
30
|
-
<% end %>
|
31
31
|
</header>
|
@@ -4,14 +4,23 @@
|
|
4
4
|
position_classes = comp.position.map {|p| "v-button-position-#{p}"}.join(' ')
|
5
5
|
class_name= "#{class_name} #{position_classes}"
|
6
6
|
%>
|
7
|
+
<% if comp.menu %>
|
8
|
+
<div class="mdc-menu-anchor" %>
|
9
|
+
<% end %>
|
7
10
|
<% case comp.button_type.to_sym
|
8
11
|
when :fab %>
|
9
12
|
<%= erb :"components/buttons/fab", :locals => {:comp => comp, class_name: class_name} %>
|
10
13
|
<% when :icon %>
|
11
14
|
<%= erb :"components/buttons/icon", :locals => {:comp => comp, class_name: class_name} %>
|
15
|
+
<% when :image %>
|
16
|
+
<%= erb :"components/buttons/image", :locals => {:comp => comp, class_name: class_name} %>
|
12
17
|
<% else %>
|
13
18
|
<%= erb :"components/buttons/button", :locals => {:comp => comp, class_name: class_name} %>
|
14
19
|
<% end %>
|
20
|
+
<% if comp.menu %>
|
21
|
+
</div>
|
22
|
+
<% end %>
|
15
23
|
<% end %>
|
16
24
|
|
17
25
|
|
26
|
+
|
@@ -2,6 +2,7 @@
|
|
2
2
|
position_classes = comp.position.map {|p| "v-button-position-#{p}"}.join(' ')
|
3
3
|
text_align = comp.position.select {|p| eq(p, :left)}.any? && eq(comp.button_type, :flat)%>
|
4
4
|
|
5
|
+
|
5
6
|
<button
|
6
7
|
id="<%= comp.id %>"
|
7
8
|
class="mdc-button v-js-ripple-button <%=class_name%>
|
@@ -10,11 +11,12 @@ class="mdc-button v-js-ripple-button <%=class_name%>
|
|
10
11
|
<%= 'v-secondary-text-button' if eq(comp.button_type, :flat) && eq(comp.color, :secondary) %>
|
11
12
|
<%= position_classes %>
|
12
13
|
<%= "v-button-text-align-left" if text_align %>
|
13
|
-
<%= '
|
14
|
+
<%= 'v-menu-click' if comp.menu%>"
|
14
15
|
<%= 'disabled' if comp.disabled %>
|
15
16
|
<%= erb :"components/event", :locals => {events: comp.events, parent_id: comp.event_parent_id} unless comp.disabled %>>
|
16
17
|
<%= erb :"components/icon", :locals => {comp: comp.icon, class_name: 'mdc-button__icon'} %>
|
18
|
+
<%= erb :"components/image", :locals => {comp: comp.image} %>
|
17
19
|
<%= comp.text %>
|
18
|
-
<%= erb :"components/menu", :locals => {comp: comp.menu, parent_id: comp.id} %>
|
19
20
|
</button>
|
20
21
|
<%= erb :"components/tooltip", :locals => {comp: comp.tooltip, parent_id: comp.id} %>
|
22
|
+
<%= erb :"components/menu", :locals => {comp: comp.menu, parent_id: comp.id} %>
|
@@ -2,9 +2,6 @@
|
|
2
2
|
position_classes = comp.position.map {|p| "v-button-fab-position-#{p}"}.join(' ')
|
3
3
|
%>
|
4
4
|
|
5
|
-
<% if comp.menu %>
|
6
|
-
<div class="mdc-menu-anchor" %>
|
7
|
-
<% end %>
|
8
5
|
<button id="<%= comp.id %>"
|
9
6
|
class="mdc-fab material-icons v-fab--absolute v-js-ripple-button <%= class_name %> <%= position_classes %>
|
10
7
|
<%= 'mdc-fab--mini' if eq(comp.size, :small) %>"
|
@@ -17,6 +14,3 @@
|
|
17
14
|
</button>
|
18
15
|
<%= erb :"components/tooltip", :locals => {comp: comp.tooltip, parent_id: comp.id} %>
|
19
16
|
<%= erb :"components/menu", :locals => {comp: comp.menu, parent_id: comp.id} %>
|
20
|
-
<% if comp.menu %>
|
21
|
-
</div>
|
22
|
-
<% end %>
|
@@ -2,9 +2,6 @@
|
|
2
2
|
position_classes = comp.position.map {|p| "v-button-icon-position-#{p}"}.join(' ')
|
3
3
|
%>
|
4
4
|
|
5
|
-
<% if comp.menu %>
|
6
|
-
<div class="mdc-menu-anchor" %>
|
7
|
-
<% end %>
|
8
5
|
<button id="<%= comp.id %>"
|
9
6
|
class="mdl-button mdl-js-button mdl-button--icon <%=class_name%> <%= position_classes %>
|
10
7
|
<%= 'mdl-button--colored' if eq(comp.color, :primary) %>
|
@@ -18,7 +15,3 @@
|
|
18
15
|
</button>
|
19
16
|
<%= erb :"components/tooltip", :locals => {comp: comp.tooltip, parent_id: comp.id} %>
|
20
17
|
<%= erb :"components/menu", :locals => {comp: comp.menu, parent_id: comp.id} %>
|
21
|
-
|
22
|
-
<% if comp.menu %>
|
23
|
-
</div>
|
24
|
-
<% end %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<% class_name = '' unless local_variables.include? :class_name
|
2
|
+
position_classes = comp.position.map {|p| "v-button-position-#{p}"}.join(' ') %>
|
3
|
+
|
4
|
+
|
5
|
+
<button
|
6
|
+
id="<%= comp.id %>"
|
7
|
+
class="mdc-button v-js-ripple-button v-button-image <%=class_name%>
|
8
|
+
<%= 'mdc-button--raised' if eq(comp.button_type, :raised) %>
|
9
|
+
<%= 'v-secondary-filled-button' if eq(comp.button_type, :raised) && eq(comp.color, :secondary) %>
|
10
|
+
<%= 'v-secondary-text-button' if eq(comp.button_type, :flat) && eq(comp.color, :secondary) %>
|
11
|
+
<%= position_classes %>
|
12
|
+
<%= 'v-menu-click' if comp.menu%>"
|
13
|
+
style="background-image: url(<%= comp.image.url %>);"
|
14
|
+
<%= 'disabled' if comp.disabled %>
|
15
|
+
<%= erb :"components/event", :locals => {events: comp.events, parent_id: comp.event_parent_id} unless comp.disabled %>>
|
16
|
+
<%= erb :"components/icon", :locals => {comp: comp.icon, class_name: 'mdc-button__icon', position: [:right, :center]} %>
|
17
|
+
</button>
|
18
|
+
<%= erb :"components/tooltip", :locals => {comp: comp.tooltip, parent_id: comp.id} %>
|
19
|
+
<%= erb :"components/menu", :locals => {comp: comp.menu, parent_id: comp.id} %>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<div id="<%= comp.id %>" class="mdc-menu v-menu" style="position: absolute;" tabindex="-1">
|
1
|
+
<div id="<%= comp.id %>" class="mdc-menu v-menu" data-placement="contextual" style="position: absolute;" tabindex="-1">
|
2
2
|
<ul class="mdc-menu__items mdc-list" role="menu" aria-hidden="true">
|
3
3
|
<% comp.items.each do |item| %>
|
4
4
|
<% unless eq(item.type, :divider) %>
|
@@ -1,8 +1,16 @@
|
|
1
1
|
<% if comp %>
|
2
|
+
<% if comp.label %>
|
3
|
+
<div class="mdc-menu-anchor">
|
4
|
+
<span class="v-menu-click">
|
5
|
+
<%= expand_text(comp.label.text) %>
|
6
|
+
<%= erb(:"components/icon", locals: {comp: comp.label.icon}) %>
|
7
|
+
</span>
|
8
|
+
<% end %>
|
2
9
|
<div id="<%= comp.id %>"
|
3
10
|
class="mdc-menu v-menu
|
4
11
|
<%='mdc-menu--open' if comp.open %>"
|
5
12
|
style="position: absolute;" tabindex="-1"
|
13
|
+
data-placement="<%= comp.placement %>"
|
6
14
|
<%= "data-right-offset=9999" if eq(comp.position, :right) %>>
|
7
15
|
<ul class="mdc-menu__items mdc-list" role="menu" aria-hidden="true">
|
8
16
|
<% comp.items.each do |item| %>
|
@@ -15,9 +23,10 @@
|
|
15
23
|
href="javascript:void(0)"
|
16
24
|
<%= erb :"components/event", :locals => {events: item.events, parent_id: item.event_parent_id} %>>
|
17
25
|
<% end %>
|
18
|
-
<%= item.text %>
|
26
|
+
<%= expand_text(item.text) %>
|
19
27
|
<% unless item.disabled %>
|
20
28
|
</a>
|
29
|
+
<%= erb(:"components/icon", locals: {comp: item.icon, position: [:right, :center]}) %>
|
21
30
|
<% end %>
|
22
31
|
</li>
|
23
32
|
<% else %>
|
@@ -26,4 +35,7 @@
|
|
26
35
|
<% end %>
|
27
36
|
</ul>
|
28
37
|
</div>
|
38
|
+
<% if comp.label %>
|
39
|
+
</div>
|
40
|
+
<% end %>
|
29
41
|
<% end %>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: voom-presenters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Russell Edens
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ice_nine
|
@@ -488,6 +488,7 @@ files:
|
|
488
488
|
- views/mdc/components/buttons/button.erb
|
489
489
|
- views/mdc/components/buttons/fab.erb
|
490
490
|
- views/mdc/components/buttons/icon.erb
|
491
|
+
- views/mdc/components/buttons/image.erb
|
491
492
|
- views/mdc/components/card.erb
|
492
493
|
- views/mdc/components/checkbox.erb
|
493
494
|
- views/mdc/components/chip.erb
|
@@ -524,6 +525,7 @@ files:
|
|
524
525
|
- views/mdc/components/list/separator.erb
|
525
526
|
- views/mdc/components/menu.erb
|
526
527
|
- views/mdc/components/modal.erb
|
528
|
+
- views/mdc/components/page_title.erb
|
527
529
|
- views/mdc/components/radio_button.erb
|
528
530
|
- views/mdc/components/render.erb
|
529
531
|
- views/mdc/components/select.erb
|