playbook_ui 2.9.5 → 2.9.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_avatar/_avatar.html.erb +5 -5
- data/app/pb_kits/playbook/pb_avatar/avatar.rb +14 -63
- data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.html.erb +1 -9
- data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +13 -5
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_default.html.erb +1 -1
- data/app/pb_kits/playbook/pb_dashboard_value/docs/_dashboard_value_align.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dashboard_value/docs/_dashboard_value_default.html.erb +3 -3
- data/app/pb_kits/playbook/pb_icon/_icon.html.erb +5 -7
- data/app/pb_kits/playbook/pb_icon/icon.rb +69 -120
- data/app/pb_kits/playbook/pb_label_pill/_label_pill.html.erb +3 -3
- data/app/pb_kits/playbook/pb_label_pill/label_pill.rb +10 -48
- data/app/pb_kits/playbook/pb_label_value/_label_value.html.erb +3 -3
- data/app/pb_kits/playbook/pb_label_value/label_value.rb +7 -45
- data/app/pb_kits/playbook/pb_line_graph/_line_graph.html.erb +2 -10
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_default.html.erb +1 -1
- data/app/pb_kits/playbook/pb_line_graph/line_graph.rb +24 -69
- data/app/pb_kits/playbook/pb_stat_value/_stat_value.html.erb +10 -4
- data/app/pb_kits/playbook/pb_stat_value/docs/_stat_value_unit.html.erb +1 -1
- data/app/pb_kits/playbook/pb_stat_value/stat_value.rb +7 -51
- data/app/pb_kits/playbook/pb_title_count/_title_count.html.erb +6 -3
- data/app/pb_kits/playbook/pb_title_count/docs/_title_count_default.html.erb +1 -1
- data/app/pb_kits/playbook/pb_title_count/title_count.rb +15 -75
- data/app/pb_kits/playbook/pb_title_detail/_title_detail.html.erb +3 -3
- data/app/pb_kits/playbook/pb_title_detail/title_detail.rb +10 -59
- data/app/pb_kits/playbook/props.rb +2 -1
- data/app/pb_kits/playbook/props/numeric.rb +13 -0
- data/app/pb_kits/playbook/props/percentage.rb +1 -1
- data/lib/playbook/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 468316bdb9eaf492b0e250410de1241ffd0ab4c38f8a605ce42665d59924bb8d
|
4
|
+
data.tar.gz: 7bcf743ce36bfa07ff916bd44be34b84d3de0beb78891292c317c36c5523c91b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2cc3c3454e5a37b857b03642b4b2b0f2a9667e4ca0b6ca26285bd8be6f89cb0babe6c617ef4cb8b6bedd63fdcbc82f78f4fc8760274e947a0bc1473016913130
|
7
|
+
data.tar.gz: 1532380e45d62b933b33172925672f560b608e12125901cab907555fe4d4a6e588c11ac61658fe53152e8e1d5895868de400855b8c078b01e8433f7e25d80f58
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<%= content_tag(:div,
|
2
2
|
id: object.id,
|
3
|
-
data: object.data(initials: object.initials),
|
4
|
-
class: object.classname
|
3
|
+
data: object.data.merge(initials: object.initials),
|
4
|
+
class: object.classname,
|
5
5
|
aria: object.aria) do %>
|
6
6
|
<%= content_tag(:div,
|
7
7
|
data: { initials: object.initials },
|
8
8
|
class: "avatar_wrapper") do %>
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
<%= pb_rails("image", props: object.image) if object.image.present? %>
|
10
|
+
<% end %>
|
11
|
+
<%= pb_rails("online_status", props: object.online_status_props) if object.status %>
|
12
12
|
<% end %>
|
@@ -2,78 +2,29 @@
|
|
2
2
|
|
3
3
|
module Playbook
|
4
4
|
module PbAvatar
|
5
|
-
class Avatar
|
6
|
-
|
7
|
-
configured_classname
|
8
|
-
configured_data
|
9
|
-
configured_id
|
10
|
-
configured_image
|
11
|
-
configured_name
|
12
|
-
configured_size
|
13
|
-
configured_status].freeze
|
5
|
+
class Avatar
|
6
|
+
include Playbook::Props
|
14
7
|
|
15
|
-
|
16
|
-
classname: default_configuration,
|
17
|
-
data: default_configuration,
|
18
|
-
id: default_configuration,
|
19
|
-
image: default_configuration,
|
20
|
-
name: default_configuration,
|
21
|
-
size: default_configuration,
|
22
|
-
status: default_configuration)
|
23
|
-
self.configured_aria = aria
|
24
|
-
self.configured_classname = classname
|
25
|
-
self.configured_data = data
|
26
|
-
self.configured_id = id
|
27
|
-
self.configured_image = image
|
28
|
-
self.configured_name = name
|
29
|
-
self.configured_size = size
|
30
|
-
self.configured_status = status
|
31
|
-
end
|
8
|
+
partial "pb_avatar/avatar"
|
32
9
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
10
|
+
prop :image, type: Playbook::Props::Hash, default: {}
|
11
|
+
prop :name, default: ""
|
12
|
+
prop :size, type: Playbook::Props::Enum,
|
13
|
+
values: %w[xs sm md base lg xl],
|
14
|
+
default: "md"
|
15
|
+
prop :status
|
39
16
|
|
40
17
|
def initials
|
41
|
-
|
18
|
+
name.split.map(&:first).join.downcase
|
42
19
|
end
|
43
20
|
|
44
|
-
def
|
45
|
-
|
46
|
-
one_of_value(configured_size, size_options, "md")
|
21
|
+
def classname
|
22
|
+
generate_classname("pb_avatar_kit", size)
|
47
23
|
end
|
48
24
|
|
49
|
-
def
|
50
|
-
|
51
|
-
online_status_props = { status: configured_status, classname: "size_#{size}" }
|
52
|
-
pb_status = Playbook::PbOnlineStatus::OnlineStatus.new(online_status_props)
|
53
|
-
ApplicationController.renderer.render(partial: pb_status, as: :object)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def kit_class
|
58
|
-
avatar_options = [
|
59
|
-
"pb_avatar_kit",
|
60
|
-
size,
|
61
|
-
]
|
62
|
-
avatar_options.join("_")
|
63
|
-
end
|
64
|
-
|
65
|
-
def to_partial_path
|
66
|
-
"pb_avatar/avatar"
|
67
|
-
end
|
68
|
-
|
69
|
-
private
|
70
|
-
|
71
|
-
DEFAULT = Object.new
|
72
|
-
private_constant :DEFAULT
|
73
|
-
def default_configuration
|
74
|
-
DEFAULT
|
25
|
+
def online_status_props
|
26
|
+
{ status: status, classname: "size_#{size}" }
|
75
27
|
end
|
76
|
-
attr_accessor(*PROPS)
|
77
28
|
end
|
78
29
|
end
|
79
30
|
end
|
@@ -6,15 +6,7 @@
|
|
6
6
|
<% content_for :pb_js do %>
|
7
7
|
<%= javascript_tag do %>
|
8
8
|
window.addEventListener('DOMContentLoaded', function() {
|
9
|
-
new pbChart('.selector',
|
10
|
-
id: "<%= object.id %>",
|
11
|
-
chartData: <%= object.sanitized_chart_data %>,
|
12
|
-
type: "<%= object.chart_type %>",
|
13
|
-
title: "<%= object.title %>",
|
14
|
-
subtitle: "<%= object.subtitle %>",
|
15
|
-
axisTitle: "<%= object.axis_title %>",
|
16
|
-
pointStart: <%= object.point_start %>,
|
17
|
-
})
|
9
|
+
new pbChart('.selector', <%= object.chart_options %>)
|
18
10
|
})
|
19
11
|
<% end %>
|
20
12
|
<% end %>
|
@@ -12,7 +12,7 @@ module Playbook
|
|
12
12
|
prop :orientation, type: Playbook::Props::Enum,
|
13
13
|
values: %w[vertical horizontal],
|
14
14
|
default: "vertical"
|
15
|
-
prop :point_start
|
15
|
+
prop :point_start, type: Playbook::Props::Numeric
|
16
16
|
prop :subtitle
|
17
17
|
prop :title
|
18
18
|
|
@@ -20,12 +20,20 @@ module Playbook
|
|
20
20
|
orientation == "horizontal" ? "bar" : "column"
|
21
21
|
end
|
22
22
|
|
23
|
-
def
|
24
|
-
|
23
|
+
def chart_options
|
24
|
+
{
|
25
|
+
id: id,
|
26
|
+
chartData: chart_data,
|
27
|
+
type: chart_type,
|
28
|
+
title: title,
|
29
|
+
subtitle: subtitle,
|
30
|
+
axisTitle: axis_title,
|
31
|
+
pointStart: point_start
|
32
|
+
}.to_json.html_safe
|
25
33
|
end
|
26
34
|
|
27
|
-
def
|
28
|
-
|
35
|
+
def classname
|
36
|
+
generate_classname("pb_bar_graph")
|
29
37
|
end
|
30
38
|
end
|
31
39
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%= pb_rails("dashboard_value", props: {
|
2
2
|
stat_label: {label: "Top Title Value"},
|
3
|
-
stat_value: {value:
|
3
|
+
stat_value: {value: 1428, unit: "appts"},
|
4
4
|
stat_change: {change: "decrease", value: "26.1%"}
|
5
5
|
}) %>
|
6
6
|
|
@@ -9,7 +9,7 @@
|
|
9
9
|
<%= pb_rails("dashboard_value", props: {
|
10
10
|
align: "center",
|
11
11
|
stat_label: {label: "Top Title Value"},
|
12
|
-
stat_value: {value:
|
12
|
+
stat_value: {value: 1428, unit: "appts"},
|
13
13
|
stat_change: {change: "decrease", value: "26.1%"}
|
14
14
|
}) %>
|
15
15
|
|
@@ -18,6 +18,6 @@
|
|
18
18
|
<%= pb_rails("dashboard_value", props: {
|
19
19
|
align: "right",
|
20
20
|
stat_label: {label: "Top Title Value"},
|
21
|
-
stat_value: {value:
|
21
|
+
stat_value: {value: 1428, unit: "appts"},
|
22
22
|
stat_change: {change: "decrease", value: "26.1%"}
|
23
23
|
}) %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%= pb_rails("dashboard_value", props: {
|
2
2
|
stat_label: {label: "Decreased Value"},
|
3
|
-
stat_value: {value:
|
3
|
+
stat_value: {value: 1428, unit: "appts"},
|
4
4
|
stat_change: {change: "decrease", value: "26.1%"}
|
5
5
|
}) %>
|
6
6
|
|
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
<%= pb_rails("dashboard_value", props: {
|
10
10
|
stat_label: {label: "Increased Value"},
|
11
|
-
stat_value: {value:
|
11
|
+
stat_value: {value: 938, unit: "homes"},
|
12
12
|
stat_change: {change: "increase", value: "26.1%"}
|
13
13
|
}) %>
|
14
14
|
|
@@ -16,6 +16,6 @@
|
|
16
16
|
|
17
17
|
<%= pb_rails("dashboard_value", props: {
|
18
18
|
stat_label: {label: "Neutral Value"},
|
19
|
-
stat_value: {value:
|
19
|
+
stat_value: {value: 261, unit: "windows"},
|
20
20
|
stat_change: {value: "26.1%"}
|
21
21
|
}) %>
|
@@ -1,7 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
aria: object.aria) %>
|
7
|
-
<% end %>
|
1
|
+
<%= content_tag(:i, nil,
|
2
|
+
id: object.id,
|
3
|
+
data: object.data,
|
4
|
+
class: object.classname,
|
5
|
+
aria: object.aria) %>
|
@@ -2,159 +2,108 @@
|
|
2
2
|
|
3
3
|
module Playbook
|
4
4
|
module PbIcon
|
5
|
-
class Icon
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
5
|
+
class Icon
|
6
|
+
include Playbook::Props
|
7
|
+
|
8
|
+
partial "pb_icon/icon"
|
9
|
+
|
10
|
+
prop :border, type: Playbook::Props::Boolean,
|
11
|
+
default: false
|
12
|
+
prop :fixed_width, type: Playbook::Props::Boolean,
|
13
|
+
default: false
|
14
|
+
prop :flip, type: Playbook::Props::Enum,
|
15
|
+
values: ["horizontal", "vertical", "both", nil],
|
16
|
+
default: nil
|
17
|
+
prop :icon, required: true
|
18
|
+
prop :inverse, type: Playbook::Props::Boolean,
|
19
|
+
default: false
|
20
|
+
prop :list_item, type: Playbook::Props::Boolean,
|
21
|
+
default: false
|
22
|
+
prop :pull, type: Playbook::Props::Enum,
|
23
|
+
values: ["left", "right", nil],
|
24
|
+
default: nil
|
25
|
+
prop :pulse, type: Playbook::Props::Boolean,
|
26
|
+
default: false
|
27
|
+
prop :rotation, type: Playbook::Props::Enum,
|
28
|
+
values: [90, 180, 270, nil],
|
29
|
+
default: nil
|
30
|
+
prop :size, type: Playbook::Props::Enum,
|
31
|
+
values: ["lg", "xs", "sm", "1x", "2x", "3x", "4x", "5x", "6x", "7x", "8x", "9x", "10x", nil],
|
32
|
+
default: nil
|
33
|
+
prop :spin, type: Playbook::Props::Boolean,
|
34
|
+
default: false
|
35
|
+
|
36
|
+
def classname
|
37
|
+
generate_classname(
|
38
|
+
"pb_icon_kit",
|
39
|
+
"far",
|
40
|
+
icon_class,
|
41
|
+
border_class,
|
42
|
+
fixed_width_class,
|
43
|
+
flip_class,
|
44
|
+
inverse_class,
|
45
|
+
list_item_class,
|
46
|
+
pull_class,
|
47
|
+
pulse_class,
|
48
|
+
rotation_class,
|
49
|
+
size_class,
|
50
|
+
spin_class,
|
51
|
+
separator: " "
|
52
|
+
)
|
52
53
|
end
|
53
54
|
|
55
|
+
private
|
56
|
+
|
54
57
|
def border_class
|
55
|
-
|
58
|
+
border ? "fa-border" : nil
|
56
59
|
end
|
57
60
|
|
58
61
|
def fixed_width_class
|
59
|
-
|
60
|
-
end
|
61
|
-
|
62
|
-
def flip
|
63
|
-
flip_options = %w[horizontal vertical both]
|
64
|
-
one_of_value(configured_flip, flip_options, nil)
|
65
|
-
end
|
66
|
-
|
67
|
-
def flip_class
|
68
|
-
h_class = "fa-flip-horizontal"
|
69
|
-
v_class = "fa-flip-vertical"
|
70
|
-
case flip
|
71
|
-
when "horizontal"
|
72
|
-
h_class
|
73
|
-
when "vertical"
|
74
|
-
v_class
|
75
|
-
when "both"
|
76
|
-
[h_class, v_class].join(" ")
|
77
|
-
end
|
62
|
+
fixed_width ? "fa-fw" : nil
|
78
63
|
end
|
79
64
|
|
80
65
|
def icon_class
|
81
|
-
|
66
|
+
icon ? "fa-#{icon}" : nil
|
82
67
|
end
|
83
68
|
|
84
69
|
def inverse_class
|
85
|
-
|
70
|
+
inverse ? "fa-inverse" : nil
|
86
71
|
end
|
87
72
|
|
88
73
|
def list_item_class
|
89
|
-
|
74
|
+
list_item ? "fa-li" : nil
|
90
75
|
end
|
91
76
|
|
92
|
-
def
|
93
|
-
|
94
|
-
|
77
|
+
def flip_class
|
78
|
+
case flip
|
79
|
+
when "horizontal"
|
80
|
+
"fa-flip-horizontal"
|
81
|
+
when "vertical"
|
82
|
+
"fa-flip-vertical"
|
83
|
+
when "both"
|
84
|
+
"fa-flip-horizontal fa-flip-vertical"
|
85
|
+
end
|
95
86
|
end
|
96
87
|
|
97
88
|
def pull_class
|
98
|
-
|
89
|
+
pull ? "fa-pull-#{pull}" : nil
|
99
90
|
end
|
100
91
|
|
101
92
|
def pulse_class
|
102
|
-
|
103
|
-
end
|
104
|
-
|
105
|
-
def rotation
|
106
|
-
rotation_options = [90, 180, 270]
|
107
|
-
one_of_value(configured_rotation, rotation_options, default_configuration)
|
93
|
+
pulse ? "fa-pulse" : nil
|
108
94
|
end
|
109
95
|
|
110
96
|
def rotation_class
|
111
|
-
|
112
|
-
end
|
113
|
-
|
114
|
-
def size
|
115
|
-
size_options = %w[lg xs sm 1x 2x 3x 4x 5x 6x 7x 8x 9x 10x]
|
116
|
-
one_of_value(configured_size, size_options, default_configuration)
|
97
|
+
rotation ? "fa-rotate-#{rotation}" : nil
|
117
98
|
end
|
118
99
|
|
119
100
|
def size_class
|
120
|
-
|
101
|
+
size ? "fa-#{size}" : nil
|
121
102
|
end
|
122
103
|
|
123
104
|
def spin_class
|
124
|
-
|
125
|
-
end
|
126
|
-
|
127
|
-
def kit_class
|
128
|
-
icon_options = [
|
129
|
-
"pb_icon_kit",
|
130
|
-
"far",
|
131
|
-
icon_class,
|
132
|
-
border_class,
|
133
|
-
fixed_width_class,
|
134
|
-
flip_class,
|
135
|
-
inverse_class,
|
136
|
-
list_item_class,
|
137
|
-
pull_class,
|
138
|
-
pulse_class,
|
139
|
-
rotation_class,
|
140
|
-
size_class,
|
141
|
-
spin_class,
|
142
|
-
]
|
143
|
-
icon_options.reject(&:nil?).join(" ")
|
144
|
-
end
|
145
|
-
|
146
|
-
def to_partial_path
|
147
|
-
"pb_icon/icon"
|
148
|
-
end
|
149
|
-
|
150
|
-
private
|
151
|
-
|
152
|
-
DEFAULT = Object.new
|
153
|
-
private_constant :DEFAULT
|
154
|
-
def default_configuration
|
155
|
-
DEFAULT
|
105
|
+
spin ? "fa-spin" : nil
|
156
106
|
end
|
157
|
-
attr_accessor(*PROPS)
|
158
107
|
end
|
159
108
|
end
|
160
109
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<%= content_tag(:div,
|
2
2
|
id: object.id,
|
3
3
|
data: object.data,
|
4
|
-
class: object.classname
|
5
|
-
|
6
|
-
|
4
|
+
class: object.classname) do %>
|
5
|
+
<%= pb_rails("caption", props: { text: object.label, classname: "pb_label_pill_label"}) %>
|
6
|
+
<%= pb_rails("pill", props: { text: object.pill_value, variant: object.variant, classname: "pb_label_pill_pill" }) %>
|
7
7
|
<% end %>
|
@@ -2,58 +2,20 @@
|
|
2
2
|
|
3
3
|
module Playbook
|
4
4
|
module PbLabelPill
|
5
|
-
class LabelPill
|
6
|
-
|
7
|
-
configured_data
|
8
|
-
configured_id
|
9
|
-
configured_label
|
10
|
-
configured_pill_value
|
11
|
-
configured_variant].freeze
|
5
|
+
class LabelPill
|
6
|
+
include Playbook::Props
|
12
7
|
|
13
|
-
|
14
|
-
data: default_configuration,
|
15
|
-
id: default_configuration,
|
16
|
-
label: default_configuration,
|
17
|
-
pill_value: default_configuration,
|
18
|
-
variant: default_configuration)
|
19
|
-
self.configured_classname = classname
|
20
|
-
self.configured_data = data
|
21
|
-
self.configured_id = id
|
22
|
-
self.configured_label = label
|
23
|
-
self.configured_pill_value = pill_value
|
24
|
-
self.configured_variant = variant
|
25
|
-
end
|
26
|
-
|
27
|
-
def label
|
28
|
-
if is_set? configured_label
|
29
|
-
pb_caption = Playbook::PbCaption::Caption.new(text: configured_label, classname: "pb_label_pill_label")
|
30
|
-
ApplicationController.renderer.render(partial: pb_caption, as: :object)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def pill
|
35
|
-
if is_set? configured_pill_value
|
36
|
-
pb_pill = Playbook::PbPill::Pill.new(text: configured_pill_value, variant: variant, classname: "pb_label_pill_pill")
|
37
|
-
ApplicationController.renderer.render(partial: pb_pill, as: :object)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def variant
|
42
|
-
default_value(configured_variant, "neutral")
|
43
|
-
end
|
44
|
-
|
45
|
-
def to_partial_path
|
46
|
-
"pb_label_pill/label_pill"
|
47
|
-
end
|
8
|
+
partial "pb_label_pill/label_pill"
|
48
9
|
|
49
|
-
|
10
|
+
prop :variant, type: Playbook::Props::Enum,
|
11
|
+
values: %w[success warning error info neutral],
|
12
|
+
default: "neutral"
|
13
|
+
prop :label
|
14
|
+
prop :pill_value
|
50
15
|
|
51
|
-
|
52
|
-
|
53
|
-
def default_configuration
|
54
|
-
DEFAULT
|
16
|
+
def classname
|
17
|
+
generate_classname("pb_label_pill_kit", variant)
|
55
18
|
end
|
56
|
-
attr_accessor(*PROPS)
|
57
19
|
end
|
58
20
|
end
|
59
21
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<%= content_tag(:div,
|
2
2
|
id: object.id,
|
3
3
|
data: object.data,
|
4
|
-
class: object.classname
|
5
|
-
<%= object.label %>
|
6
|
-
<%= object.value %>
|
4
|
+
class: object.classname) do %>
|
5
|
+
<%= pb_rails("caption", props: { text: object.label }) %>
|
6
|
+
<%= pb_rails("body", props: { text: object.value }) %>
|
7
7
|
<% end %>
|
@@ -2,55 +2,17 @@
|
|
2
2
|
|
3
3
|
module Playbook
|
4
4
|
module PbLabelValue
|
5
|
-
class LabelValue
|
6
|
-
|
7
|
-
configured_data
|
8
|
-
configured_id
|
9
|
-
configured_label
|
10
|
-
configured_value].freeze
|
5
|
+
class LabelValue
|
6
|
+
include Playbook::Props
|
11
7
|
|
12
|
-
|
13
|
-
data: default_configuration,
|
14
|
-
id: default_configuration,
|
15
|
-
label: default_configuration,
|
16
|
-
value: default_configuration)
|
17
|
-
self.configured_classname = classname
|
18
|
-
self.configured_data = data
|
19
|
-
self.configured_id = id
|
20
|
-
self.configured_label = label
|
21
|
-
self.configured_value = value
|
22
|
-
end
|
23
|
-
|
24
|
-
def label
|
25
|
-
if is_set? configured_label
|
26
|
-
pb_label = Playbook::PbCaption::Caption.new(text: configured_label)
|
27
|
-
ApplicationController.renderer.render(partial: pb_label, as: :object)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
def value
|
32
|
-
pb_body = Playbook::PbBody::Body.new do
|
33
|
-
default_value(configured_value, "")
|
34
|
-
end
|
35
|
-
ApplicationController.renderer.render(partial: pb_body, as: :object)
|
36
|
-
end
|
37
|
-
|
38
|
-
def kit_class
|
39
|
-
"pb_label_value_kit"
|
40
|
-
end
|
41
|
-
|
42
|
-
def to_partial_path
|
43
|
-
"pb_label_value/label_value"
|
44
|
-
end
|
8
|
+
partial "pb_label_value/label_value"
|
45
9
|
|
46
|
-
|
10
|
+
prop :label, required: true
|
11
|
+
prop :value, required: true
|
47
12
|
|
48
|
-
|
49
|
-
|
50
|
-
def default_configuration
|
51
|
-
DEFAULT
|
13
|
+
def classname
|
14
|
+
generate_classname("pb_label_value_kit")
|
52
15
|
end
|
53
|
-
attr_accessor(*PROPS)
|
54
16
|
end
|
55
17
|
end
|
56
18
|
end
|
@@ -2,20 +2,12 @@
|
|
2
2
|
aria: object.aria,
|
3
3
|
id: object.id,
|
4
4
|
data: object.data,
|
5
|
-
class: object.classname
|
5
|
+
class: object.classname
|
6
6
|
) %>
|
7
7
|
<% content_for :pb_js do %>
|
8
8
|
<%= javascript_tag do %>
|
9
9
|
window.addEventListener('DOMContentLoaded', function() {
|
10
|
-
new pbChart('.selector',
|
11
|
-
id: "<%= object.id %>",
|
12
|
-
chartData: <%= object.chart_data %>,
|
13
|
-
type: "<%= object.chart_type %>",
|
14
|
-
title: "<%= object.title %>",
|
15
|
-
subtitle: "<%= object.subtitle %>",
|
16
|
-
axisTitle: "<%= object.axis_title %>",
|
17
|
-
pointStart: <%= object.point_start %>,
|
18
|
-
})
|
10
|
+
new pbChart('.selector', <%= object.chart_options %>)
|
19
11
|
})
|
20
12
|
<% end %>
|
21
13
|
<% end %>
|
@@ -15,7 +15,7 @@
|
|
15
15
|
data: [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111]
|
16
16
|
}] %>
|
17
17
|
|
18
|
-
<%= pb_rails("line_graph", props: { id: "line-test", gradient: false, chart_data: data, point_start:
|
18
|
+
<%= pb_rails("line_graph", props: { id: "line-test", gradient: false, chart_data: data, point_start: 1, title: 'Solar Employment Growth by Sector, 2010-2016', subtitle: 'Source: thesolarfoundation.com', axis_title: 'Number of Employees' } ) %>
|
19
19
|
|
20
20
|
|
21
21
|
|
@@ -2,84 +2,39 @@
|
|
2
2
|
|
3
3
|
module Playbook
|
4
4
|
module PbLineGraph
|
5
|
-
class LineGraph
|
6
|
-
|
7
|
-
configured_aria
|
8
|
-
configured_axis_title
|
9
|
-
configured_chart_data
|
10
|
-
configured_classname
|
11
|
-
configured_data
|
12
|
-
configured_gradient
|
13
|
-
configured_id
|
14
|
-
configured_point_start
|
15
|
-
configured_subtitle
|
16
|
-
configured_title
|
17
|
-
].freeze
|
5
|
+
class LineGraph
|
6
|
+
include Playbook::Props
|
18
7
|
|
19
|
-
|
20
|
-
aria: default_configuration,
|
21
|
-
axis_title: default_configuration,
|
22
|
-
chart_data: default_configuration,
|
23
|
-
classname: default_configuration,
|
24
|
-
data: default_configuration,
|
25
|
-
gradient: default_configuration,
|
26
|
-
id: default_configuration,
|
27
|
-
point_start: default_configuration,
|
28
|
-
subtitle: default_configuration,
|
29
|
-
title: default_configuration
|
30
|
-
)
|
31
|
-
self.configured_aria = aria
|
32
|
-
self.configured_axis_title = axis_title
|
33
|
-
self.configured_chart_data = chart_data
|
34
|
-
self.configured_classname = classname
|
35
|
-
self.configured_data = data
|
36
|
-
self.configured_gradient = gradient
|
37
|
-
self.configured_id = id
|
38
|
-
self.configured_point_start = point_start
|
39
|
-
self.configured_subtitle = subtitle
|
40
|
-
self.configured_title = title
|
41
|
-
end
|
8
|
+
partial "pb_line_graph/line_graph"
|
42
9
|
|
43
|
-
|
44
|
-
|
45
|
-
|
10
|
+
prop :axis_title
|
11
|
+
prop :chart_data, type: Playbook::Props::Array,
|
12
|
+
default: []
|
13
|
+
prop :gradient, type: Playbook::Props::Boolean,
|
14
|
+
default: false
|
15
|
+
prop :point_start, type: Playbook::Props::Numeric
|
16
|
+
prop :subtitle
|
17
|
+
prop :title
|
46
18
|
|
47
19
|
def chart_type
|
48
|
-
gradient
|
49
|
-
end
|
50
|
-
|
51
|
-
def title
|
52
|
-
default_value(configured_title, "")
|
20
|
+
gradient ? "area" : "line"
|
53
21
|
end
|
54
22
|
|
55
|
-
def
|
56
|
-
|
23
|
+
def chart_options
|
24
|
+
{
|
25
|
+
id: id,
|
26
|
+
chartData: chart_data,
|
27
|
+
type: chart_type,
|
28
|
+
title: title,
|
29
|
+
subTitle: subtitle,
|
30
|
+
axisTitle: axis_title,
|
31
|
+
pointStart: point_start,
|
32
|
+
}.to_json.html_safe
|
57
33
|
end
|
58
34
|
|
59
|
-
def
|
60
|
-
|
61
|
-
end
|
62
|
-
|
63
|
-
def to_partial_path
|
64
|
-
"pb_line_graph/line_graph"
|
65
|
-
end
|
66
|
-
|
67
|
-
def point_start
|
68
|
-
default_value(configured_point_start, "")
|
69
|
-
end
|
70
|
-
|
71
|
-
def chart_data
|
72
|
-
adjusted_value(configured_chart_data, configured_chart_data.to_json.html_safe, {})
|
73
|
-
end
|
74
|
-
|
75
|
-
private
|
76
|
-
|
77
|
-
DEFAULT = Object.new
|
78
|
-
private_constant :DEFAULT
|
79
|
-
def default_configuration
|
80
|
-
DEFAULT
|
35
|
+
def classname
|
36
|
+
generate_classname("pb_line_graph")
|
81
37
|
end
|
82
|
-
attr_accessor(*PROPS)
|
83
38
|
end
|
84
39
|
end
|
85
40
|
end
|
@@ -1,10 +1,16 @@
|
|
1
1
|
<%= content_tag(:div,
|
2
2
|
id: object.id,
|
3
3
|
data: object.data,
|
4
|
-
class: object.classname
|
4
|
+
class: object.classname) do %>
|
5
5
|
<div class="pb_stat_value_wrapper">
|
6
|
-
<%=
|
7
|
-
|
8
|
-
|
6
|
+
<%= pb_rails "title", props: {
|
7
|
+
classname: "pb_stat_value_kit",
|
8
|
+
size: 1,
|
9
|
+
text: object.value } %>
|
10
|
+
|
11
|
+
<%= pb_rails "title", props: {
|
12
|
+
classname: "pb_stat_value_kit",
|
13
|
+
size: 3,
|
14
|
+
text: object.unit } %>
|
9
15
|
</div>
|
10
16
|
<% end %>
|
@@ -1 +1 @@
|
|
1
|
-
<%= pb_rails("stat_value", props: { value:
|
1
|
+
<%= pb_rails("stat_value", props: { value: 5294, unit: "appt" }) %>
|
@@ -2,61 +2,17 @@
|
|
2
2
|
|
3
3
|
module Playbook
|
4
4
|
module PbStatValue
|
5
|
-
class StatValue
|
6
|
-
|
7
|
-
configured_data
|
8
|
-
configured_id
|
9
|
-
configured_unit
|
10
|
-
configured_value].freeze
|
5
|
+
class StatValue
|
6
|
+
include Playbook::Props
|
11
7
|
|
12
|
-
|
13
|
-
data: default_configuration,
|
14
|
-
id: default_configuration,
|
15
|
-
unit: default_configuration,
|
16
|
-
value: default_configuration)
|
17
|
-
self.configured_classname = classname
|
18
|
-
self.configured_data = data
|
19
|
-
self.configured_id = id
|
20
|
-
self.configured_unit = unit
|
21
|
-
self.configured_value = value
|
22
|
-
end
|
23
|
-
|
24
|
-
def value
|
25
|
-
default_value(configured_value, 0)
|
26
|
-
end
|
27
|
-
|
28
|
-
def display_value
|
29
|
-
pb_title = Playbook::PbTitle::Title.new(size: 1, text: value)
|
30
|
-
ApplicationController.renderer.render(partial: pb_title, as: :object)
|
31
|
-
end
|
32
|
-
|
33
|
-
def unit
|
34
|
-
default_value(configured_unit, nil)
|
35
|
-
end
|
36
|
-
|
37
|
-
def display_unit
|
38
|
-
unless unit.nil?
|
39
|
-
pb_unit = Playbook::PbTitle::Title.new(size: 3, text: unit)
|
40
|
-
ApplicationController.renderer.render(partial: pb_unit, as: :object)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
def kit_class
|
45
|
-
"pb_stat_value_kit"
|
46
|
-
end
|
47
|
-
|
48
|
-
def to_partial_path
|
49
|
-
"pb_stat_value/stat_value"
|
50
|
-
end
|
8
|
+
partial "pb_stat_value/stat_value"
|
51
9
|
|
52
|
-
|
10
|
+
prop :unit
|
11
|
+
prop :value, type: Playbook::Props::Number
|
53
12
|
|
54
|
-
|
55
|
-
|
56
|
-
def default_configuration
|
57
|
-
DEFAULT
|
13
|
+
def classname
|
14
|
+
generate_classname("pb_stat_value_kit")
|
58
15
|
end
|
59
|
-
attr_accessor(*PROPS)
|
60
16
|
end
|
61
17
|
end
|
62
18
|
end
|
@@ -1,7 +1,10 @@
|
|
1
1
|
<%= content_tag(:div,
|
2
2
|
id: object.id,
|
3
3
|
data: object.data,
|
4
|
-
class: object.classname
|
5
|
-
<%=
|
6
|
-
|
4
|
+
class: object.classname) do %>
|
5
|
+
<%= pb_rails("title", props: {
|
6
|
+
size: object.title_size,
|
7
|
+
text: object.title,
|
8
|
+
classname: "pb_title_count_text" }) if object.title %>
|
9
|
+
<%= pb_rails("body", props: { color: "light" }) { object.format_count } if object.count %>
|
7
10
|
<% end %>
|
@@ -2,91 +2,31 @@
|
|
2
2
|
|
3
3
|
module Playbook
|
4
4
|
module PbTitleCount
|
5
|
-
class TitleCount
|
6
|
-
|
7
|
-
configured_classname
|
8
|
-
configured_count
|
9
|
-
configured_data
|
10
|
-
configured_id
|
11
|
-
configured_size
|
12
|
-
configured_title].freeze
|
5
|
+
class TitleCount
|
6
|
+
include Playbook::Props
|
13
7
|
|
14
|
-
|
15
|
-
classname: default_configuration,
|
16
|
-
count: default_configuration,
|
17
|
-
data: default_configuration,
|
18
|
-
id: default_configuration,
|
19
|
-
size: default_configuration,
|
20
|
-
title: default_configuration)
|
21
|
-
self.configured_align = align
|
22
|
-
self.configured_classname = classname
|
23
|
-
self.configured_count = count
|
24
|
-
self.configured_data = data
|
25
|
-
self.configured_id = id
|
26
|
-
self.configured_size = size
|
27
|
-
self.configured_title = title
|
28
|
-
end
|
8
|
+
partial "pb_title_count/title_count"
|
29
9
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
10
|
+
prop :align, type: Playbook::Props::Enum,
|
11
|
+
values: %w[left center right],
|
12
|
+
default: "left"
|
13
|
+
prop :size, type: Playbook::Props::Enum,
|
14
|
+
values: %w[lg sm],
|
15
|
+
default: "sm"
|
16
|
+
prop :title
|
17
|
+
prop :count, type: Playbook::Props::Numeric
|
34
18
|
|
35
|
-
def
|
36
|
-
|
37
|
-
one_of_value(configured_size, size_options, "sm")
|
19
|
+
def classname
|
20
|
+
generate_classname("pb_title_count_kit", align, size)
|
38
21
|
end
|
39
22
|
|
40
23
|
def title_size
|
41
24
|
size == "lg" ? 3 : 4
|
42
25
|
end
|
43
26
|
|
44
|
-
def
|
45
|
-
|
46
|
-
pb_title = Playbook::PbTitle::Title.new(size: title_size, text: configured_title, classname: "pb_title_count_text")
|
47
|
-
ApplicationController.renderer.render(partial: pb_title, as: :object)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def count
|
52
|
-
if is_set? configured_count
|
53
|
-
value = if configured_count.is_a?(Integer) || configured_count.is_a?(Float)
|
54
|
-
format_number(configured_count)
|
55
|
-
else
|
56
|
-
configured_count
|
57
|
-
end
|
58
|
-
|
59
|
-
pb_count = Playbook::PbBody::Body.new(color: "light") do
|
60
|
-
value.to_s
|
61
|
-
end
|
62
|
-
ApplicationController.renderer.render(partial: pb_count, as: :object)
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
def format_number(number)
|
67
|
-
number.to_s.gsub(/(\d)(?=\d{3}+(?:\.|$))(\d{3}\..*)?/, '\1,\2')
|
68
|
-
end
|
69
|
-
|
70
|
-
def kit_class
|
71
|
-
kit_options = [
|
72
|
-
"pb_title_count_kit",
|
73
|
-
align,
|
74
|
-
]
|
75
|
-
kit_options.join("_")
|
76
|
-
end
|
77
|
-
|
78
|
-
def to_partial_path
|
79
|
-
"pb_title_count/title_count"
|
80
|
-
end
|
81
|
-
|
82
|
-
private
|
83
|
-
|
84
|
-
DEFAULT = Object.new
|
85
|
-
private_constant :DEFAULT
|
86
|
-
def default_configuration
|
87
|
-
DEFAULT
|
27
|
+
def format_count
|
28
|
+
count.to_s.gsub(/(\d)(?=\d{3}+(?:\.|$))(\d{3}\..*)?/, '\1,\2')
|
88
29
|
end
|
89
|
-
attr_accessor(*PROPS)
|
90
30
|
end
|
91
31
|
end
|
92
32
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<%= content_tag(:div,
|
2
2
|
id: object.id,
|
3
3
|
data: object.data,
|
4
|
-
class: object.classname
|
5
|
-
<%= object.title %>
|
6
|
-
<%= object.detail %>
|
4
|
+
class: object.classname) do %>
|
5
|
+
<%= pb_rails("title", props: { text: object.title, size: 4 }) %>
|
6
|
+
<%= pb_rails("body", props: { text: object.detail, color: "light" }) %>
|
7
7
|
<% end %>
|
@@ -2,69 +2,20 @@
|
|
2
2
|
|
3
3
|
module Playbook
|
4
4
|
module PbTitleDetail
|
5
|
-
class TitleDetail
|
6
|
-
|
7
|
-
configured_classname
|
8
|
-
configured_data
|
9
|
-
configured_detail
|
10
|
-
configured_id
|
11
|
-
configured_title].freeze
|
5
|
+
class TitleDetail
|
6
|
+
include Playbook::Props
|
12
7
|
|
13
|
-
|
14
|
-
classname: default_configuration,
|
15
|
-
data: default_configuration,
|
16
|
-
detail: default_configuration,
|
17
|
-
id: default_configuration,
|
18
|
-
title: default_configuration)
|
19
|
-
self.configured_align = align
|
20
|
-
self.configured_classname = classname
|
21
|
-
self.configured_data = data
|
22
|
-
self.configured_detail = detail
|
23
|
-
self.configured_id = id
|
24
|
-
self.configured_title = title
|
25
|
-
end
|
26
|
-
|
27
|
-
def align
|
28
|
-
align_options = %w[left center right]
|
29
|
-
one_of_value(configured_align, align_options, "left")
|
30
|
-
end
|
31
|
-
|
32
|
-
def title
|
33
|
-
if is_set? configured_title
|
34
|
-
pb_title = Playbook::PbTitle::Title.new(size: 4, text: configured_title)
|
35
|
-
ApplicationController.renderer.render(partial: pb_title, as: :object)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
def detail
|
40
|
-
if is_set? configured_detail
|
41
|
-
pb_detail = Playbook::PbBody::Body.new(color: "light") do
|
42
|
-
configured_detail
|
43
|
-
end
|
44
|
-
ApplicationController.renderer.render(partial: pb_detail, as: :object)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def kit_class
|
49
|
-
kit_options = [
|
50
|
-
"pb_title_detail_kit",
|
51
|
-
align,
|
52
|
-
]
|
53
|
-
kit_options.join("_")
|
54
|
-
end
|
55
|
-
|
56
|
-
def to_partial_path
|
57
|
-
"pb_title_detail/title_detail"
|
58
|
-
end
|
8
|
+
partial "pb_title_detail/title_detail"
|
59
9
|
|
60
|
-
|
10
|
+
prop :align, type: Playbook::Props::Enum,
|
11
|
+
values: %w[left center right],
|
12
|
+
default: "left"
|
13
|
+
prop :detail, required: true
|
14
|
+
prop :title, required: true
|
61
15
|
|
62
|
-
|
63
|
-
|
64
|
-
def default_configuration
|
65
|
-
DEFAULT
|
16
|
+
def classname
|
17
|
+
generate_classname("pb_title_detail_kit", align)
|
66
18
|
end
|
67
|
-
attr_accessor(*PROPS)
|
68
19
|
end
|
69
20
|
end
|
70
21
|
end
|
@@ -12,9 +12,10 @@ require_relative "./props/hash"
|
|
12
12
|
require_relative "./props/hash_array"
|
13
13
|
require_relative "./props/number"
|
14
14
|
require_relative "./props/number_array"
|
15
|
-
require_relative "./props/
|
15
|
+
require_relative "./props/numeric"
|
16
16
|
require_relative "./props/percentage"
|
17
17
|
require_relative "./props/proc"
|
18
|
+
require_relative "./props/string"
|
18
19
|
|
19
20
|
module Playbook
|
20
21
|
module Props
|
data/lib/playbook/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: playbook_ui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.9.
|
4
|
+
version: 2.9.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Power UX
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-10-
|
12
|
+
date: 2019-10-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionpack
|
@@ -1031,6 +1031,7 @@ files:
|
|
1031
1031
|
- app/pb_kits/playbook/props/hash_array.rb
|
1032
1032
|
- app/pb_kits/playbook/props/number.rb
|
1033
1033
|
- app/pb_kits/playbook/props/number_array.rb
|
1034
|
+
- app/pb_kits/playbook/props/numeric.rb
|
1034
1035
|
- app/pb_kits/playbook/props/percentage.rb
|
1035
1036
|
- app/pb_kits/playbook/props/proc.rb
|
1036
1037
|
- app/pb_kits/playbook/props/string.rb
|