playbook_ui 4.11.0.pre.alpha.pre.2 → 4.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/playbook/pages_controller.rb +1 -1
- data/app/helpers/playbook/pb_doc_helper.rb +55 -7
- data/app/pb_kits/playbook/_playbook.scss +4 -1
- data/app/pb_kits/playbook/data/menu.yml +3 -0
- data/app/pb_kits/playbook/index.js +3 -0
- data/app/pb_kits/playbook/packs/examples.js +6 -0
- data/app/pb_kits/playbook/packs/site_styles/docs/_flex_examples.scss +8 -5
- data/app/pb_kits/playbook/pb_button/_button_mixins.scss +1 -0
- data/app/pb_kits/playbook/pb_card/_card.html.erb +2 -1
- data/app/pb_kits/playbook/pb_card/_card.jsx +3 -0
- data/app/pb_kits/playbook/pb_card/_card.scss +2 -0
- data/app/pb_kits/playbook/pb_card/card.rb +8 -1
- data/app/pb_kits/playbook/pb_card/docs/_card_content.html.erb +1 -1
- data/app/pb_kits/playbook/pb_card/docs/_card_dark.html.erb +3 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_dark.jsx +12 -0
- data/app/pb_kits/playbook/pb_card/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_card/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_filter/_filter.jsx +192 -56
- data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +2 -1
- data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +47 -5
- data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.html.erb +1 -1
- data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.jsx +52 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_only.html.erb +40 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_only.jsx +48 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_single.jsx +51 -0
- data/app/pb_kits/playbook/pb_filter/docs/_sort_only.html.erb +18 -0
- data/app/pb_kits/playbook/pb_filter/docs/_sort_only.jsx +48 -0
- data/app/pb_kits/playbook/pb_filter/docs/example.yml +6 -0
- data/app/pb_kits/playbook/pb_filter/docs/index.js +4 -0
- data/app/pb_kits/playbook/pb_filter/filter.rb +12 -1
- data/app/pb_kits/playbook/pb_filter/templates/_core.html.erb +37 -26
- data/app/pb_kits/playbook/pb_filter/templates/_default.html.erb +13 -9
- data/app/pb_kits/playbook/pb_flex/docs/_flex_default.html.erb +19 -15
- data/app/pb_kits/playbook/pb_flex/docs/_flex_default.jsx +46 -45
- data/app/pb_kits/playbook/pb_flex/docs/_flex_horizontal.html.erb +54 -50
- data/app/pb_kits/playbook/pb_flex/docs/_flex_horizontal.jsx +172 -171
- data/app/pb_kits/playbook/pb_flex/docs/_flex_inline.html.erb +19 -15
- data/app/pb_kits/playbook/pb_flex/docs/_flex_inline.jsx +48 -47
- data/app/pb_kits/playbook/pb_flex/docs/_flex_reverse.html.erb +19 -15
- data/app/pb_kits/playbook/pb_flex/docs/_flex_reverse.jsx +51 -50
- data/app/pb_kits/playbook/pb_flex/docs/_flex_spacing.html.erb +27 -23
- data/app/pb_kits/playbook/pb_flex/docs/_flex_spacing.jsx +93 -92
- data/app/pb_kits/playbook/pb_flex/docs/_flex_vertical.html.erb +68 -64
- data/app/pb_kits/playbook/pb_flex/docs/_flex_vertical.jsx +192 -191
- data/app/pb_kits/playbook/pb_flex/docs/_flex_wrap.html.erb +31 -27
- data/app/pb_kits/playbook/pb_flex/docs/_flex_wrap.jsx +83 -82
- data/app/pb_kits/playbook/pb_kit/dateTime.js +23 -1
- data/app/pb_kits/playbook/pb_kit/pb_date_time.rb +17 -0
- data/app/pb_kits/playbook/pb_logistic/_logistic.html.erb +19 -0
- data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +96 -0
- data/app/pb_kits/playbook/pb_logistic/_logistic.scss +7 -0
- data/app/pb_kits/playbook/pb_logistic/docs/_logistic_dark.html.erb +27 -0
- data/app/pb_kits/playbook/pb_logistic/docs/_logistic_dark.jsx +39 -0
- data/app/pb_kits/playbook/pb_logistic/docs/_logistic_default.html.erb +24 -0
- data/app/pb_kits/playbook/pb_logistic/docs/_logistic_default.jsx +35 -0
- data/app/pb_kits/playbook/pb_logistic/docs/example.yml +11 -0
- data/app/pb_kits/playbook/pb_logistic/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_logistic/logistic.rb +31 -0
- data/app/pb_kits/playbook/pb_text_input/_text_input.scss +8 -2
- data/app/pb_kits/playbook/pb_textarea/_textarea_mixin.scss +9 -1
- data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.html.erb +16 -0
- data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.jsx +134 -0
- data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.scss +33 -0
- data/app/pb_kits/playbook/pb_time_range_inline/docs/_time_range_inline_dark.html.erb +72 -0
- data/app/pb_kits/playbook/pb_time_range_inline/docs/_time_range_inline_dark.jsx +81 -0
- data/app/pb_kits/playbook/pb_time_range_inline/docs/_time_range_inline_default.html.erb +64 -0
- data/app/pb_kits/playbook/pb_time_range_inline/docs/_time_range_inline_default.jsx +73 -0
- data/app/pb_kits/playbook/pb_time_range_inline/docs/example.yml +11 -0
- data/app/pb_kits/playbook/pb_time_range_inline/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_time_range_inline/time_range_inline.rb +72 -0
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.html.erb +2 -1
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +30 -9
- data/app/pb_kits/playbook/pb_typeahead/docs/{_typeahead_with_context.html.erb → _typeahead_with_context_dark.html.erb} +2 -1
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +1 -1
- data/app/pb_kits/playbook/pb_typeahead/index.js +6 -4
- data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +10 -2
- data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.html.erb +7 -0
- data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.jsx +66 -0
- data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.scss +11 -0
- data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_compact.html.erb +9 -0
- data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_compact.jsx +48 -0
- data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_dark.html.erb +1 -0
- data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_dark.jsx +14 -0
- data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_day_only.html.erb +1 -0
- data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_day_only.jsx +14 -0
- data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_default.html.erb +3 -0
- data/app/pb_kits/playbook/pb_weekday_stacked/docs/_weekday_stacked_default.jsx +14 -0
- data/app/pb_kits/playbook/pb_weekday_stacked/docs/example.yml +15 -0
- data/app/pb_kits/playbook/pb_weekday_stacked/docs/index.js +4 -0
- data/app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.rb +61 -0
- data/app/pb_kits/playbook/tokens/_colors.scss +2 -2
- data/app/views/layouts/playbook/_sidebar.html.erb +26 -10
- data/app/views/playbook/pages/kit_category_show.html.erb +14 -0
- data/app/views/playbook/pages/kit_show.html.erb +33 -0
- data/app/views/playbook/pages/kits.html.erb +12 -0
- data/lib/playbook/version.rb +1 -1
- metadata +52 -24
- data/app/views/playbook/pages/kit_category_show.html.slim +0 -10
- data/app/views/playbook/pages/kit_show.html.slim +0 -23
- data/app/views/playbook/pages/kits.html.slim +0 -10
@@ -1,31 +1,35 @@
|
|
1
|
-
|
1
|
+
<div class="flex-doc-example">
|
2
2
|
|
3
|
-
<%= pb_rails("
|
4
|
-
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>1<% end %>
|
5
|
-
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>2<% end %>
|
6
|
-
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>3<% end %>
|
7
|
-
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>4<% end %>
|
8
|
-
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>5<% end %>
|
9
|
-
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>6<% end %>
|
10
|
-
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>7<% end %>
|
11
|
-
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>8<% end %>
|
12
|
-
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>9<% end %>
|
13
|
-
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>10<% end %>
|
14
|
-
<% end %>
|
3
|
+
<%= pb_rails("title", props: {size: 4, text: "Wrap"}) %><br/>
|
15
4
|
|
16
|
-
|
5
|
+
<%= pb_rails("flex", props: {wrap: true}) do %>
|
6
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>1<% end %>
|
7
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>2<% end %>
|
8
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>3<% end %>
|
9
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>4<% end %>
|
10
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>5<% end %>
|
11
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>6<% end %>
|
12
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>7<% end %>
|
13
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>8<% end %>
|
14
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>9<% end %>
|
15
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>10<% end %>
|
16
|
+
<% end %>
|
17
17
|
|
18
|
-
|
18
|
+
<br/><br/>
|
19
19
|
|
20
|
-
<%= pb_rails("
|
21
|
-
|
22
|
-
<%= pb_rails("flex
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
<% end %>
|
20
|
+
<%= pb_rails("title", props: {size: 4, text: "No Wrap"}) %><br/>
|
21
|
+
|
22
|
+
<%= pb_rails("flex") do %>
|
23
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>1<% end %>
|
24
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>2<% end %>
|
25
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>3<% end %>
|
26
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>4<% end %>
|
27
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>5<% end %>
|
28
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>6<% end %>
|
29
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>7<% end %>
|
30
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>8<% end %>
|
31
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>9<% end %>
|
32
|
+
<%= pb_rails("flex/flex_item", props: {fixed_size: "300px"}) do %>10<% end %>
|
33
|
+
<% end %>
|
34
|
+
|
35
|
+
</div>
|
@@ -4,89 +4,90 @@ import { Body, Flex, FlexItem, Title } from '../..'
|
|
4
4
|
const FlexWrap = () => {
|
5
5
|
return (
|
6
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
|
-
<br />
|
52
|
-
<Title
|
53
|
-
size={4}
|
54
|
-
text="No Wrap"
|
55
|
-
/>
|
56
|
-
<br />
|
57
|
-
<Flex className="bg_light wide">
|
58
|
-
<FlexItem fixedSize="300px">
|
59
|
-
{'1'}
|
60
|
-
</FlexItem>
|
61
|
-
<FlexItem fixedSize="300px">
|
62
|
-
{'2'}
|
63
|
-
</FlexItem>
|
64
|
-
<FlexItem fixedSize="300px">
|
65
|
-
{'3'}
|
66
|
-
</FlexItem>
|
67
|
-
<FlexItem fixedSize="300px">
|
68
|
-
{'4'}
|
69
|
-
</FlexItem>
|
70
|
-
<FlexItem fixedSize="300px">
|
71
|
-
{'5'}
|
72
|
-
</FlexItem>
|
73
|
-
<FlexItem fixedSize="300px">
|
74
|
-
{'6'}
|
75
|
-
</FlexItem>
|
76
|
-
<FlexItem fixedSize="300px">
|
77
|
-
{'7'}
|
78
|
-
</FlexItem>
|
79
|
-
<FlexItem fixedSize="300px">
|
80
|
-
{'8'}
|
81
|
-
</FlexItem>
|
82
|
-
<FlexItem fixedSize="300px">
|
83
|
-
{'9'}
|
84
|
-
</FlexItem>
|
85
|
-
<FlexItem fixedSize="300px">
|
86
|
-
{'10'}
|
87
|
-
</FlexItem>
|
88
|
-
</Flex>
|
7
|
+
<div className="flex-doc-example">
|
8
|
+
<Body
|
9
|
+
text="Resize your browser"
|
10
|
+
/>
|
11
|
+
<Title
|
12
|
+
size={4}
|
13
|
+
text="Wrap"
|
14
|
+
/>
|
15
|
+
<br />
|
16
|
+
<Flex
|
17
|
+
className="bg_light"
|
18
|
+
wrap
|
19
|
+
>
|
20
|
+
<FlexItem fixedSize="300px">
|
21
|
+
{'1'}
|
22
|
+
</FlexItem>
|
23
|
+
<FlexItem fixedSize="300px">
|
24
|
+
{'2'}
|
25
|
+
</FlexItem>
|
26
|
+
<FlexItem fixedSize="300px">
|
27
|
+
{'3'}
|
28
|
+
</FlexItem>
|
29
|
+
<FlexItem fixedSize="300px">
|
30
|
+
{'4'}
|
31
|
+
</FlexItem>
|
32
|
+
<FlexItem fixedSize="300px">
|
33
|
+
{'5'}
|
34
|
+
</FlexItem>
|
35
|
+
<FlexItem fixedSize="300px">
|
36
|
+
{'6'}
|
37
|
+
</FlexItem>
|
38
|
+
<FlexItem fixedSize="300px">
|
39
|
+
{'7'}
|
40
|
+
</FlexItem>
|
41
|
+
<FlexItem fixedSize="300px">
|
42
|
+
{'8'}
|
43
|
+
</FlexItem>
|
44
|
+
<FlexItem fixedSize="300px">
|
45
|
+
{'9'}
|
46
|
+
</FlexItem>
|
47
|
+
<FlexItem fixedSize="300px">
|
48
|
+
{'10'}
|
49
|
+
</FlexItem>
|
50
|
+
</Flex>
|
89
51
|
|
52
|
+
<br />
|
53
|
+
<Title
|
54
|
+
size={4}
|
55
|
+
text="No Wrap"
|
56
|
+
/>
|
57
|
+
<br />
|
58
|
+
<Flex className="bg_light wide">
|
59
|
+
<FlexItem fixedSize="300px">
|
60
|
+
{'1'}
|
61
|
+
</FlexItem>
|
62
|
+
<FlexItem fixedSize="300px">
|
63
|
+
{'2'}
|
64
|
+
</FlexItem>
|
65
|
+
<FlexItem fixedSize="300px">
|
66
|
+
{'3'}
|
67
|
+
</FlexItem>
|
68
|
+
<FlexItem fixedSize="300px">
|
69
|
+
{'4'}
|
70
|
+
</FlexItem>
|
71
|
+
<FlexItem fixedSize="300px">
|
72
|
+
{'5'}
|
73
|
+
</FlexItem>
|
74
|
+
<FlexItem fixedSize="300px">
|
75
|
+
{'6'}
|
76
|
+
</FlexItem>
|
77
|
+
<FlexItem fixedSize="300px">
|
78
|
+
{'7'}
|
79
|
+
</FlexItem>
|
80
|
+
<FlexItem fixedSize="300px">
|
81
|
+
{'8'}
|
82
|
+
</FlexItem>
|
83
|
+
<FlexItem fixedSize="300px">
|
84
|
+
{'9'}
|
85
|
+
</FlexItem>
|
86
|
+
<FlexItem fixedSize="300px">
|
87
|
+
{'10'}
|
88
|
+
</FlexItem>
|
89
|
+
</Flex>
|
90
|
+
</div>
|
90
91
|
</>
|
91
92
|
)
|
92
93
|
}
|
@@ -10,6 +10,8 @@ type DateTimeType = {
|
|
10
10
|
zone?: String,
|
11
11
|
}
|
12
12
|
|
13
|
+
const ABBR_DAYS = ['SU', 'M', 'T', 'W', 'TH', 'F', 'S']
|
14
|
+
|
13
15
|
export default class DateTime {
|
14
16
|
constructor({ value, zone = 'America/New_York' }: DateTimeType) {
|
15
17
|
this.value = this.convertToTimestampZone(value, zone)
|
@@ -20,7 +22,7 @@ export default class DateTime {
|
|
20
22
|
}
|
21
23
|
|
22
24
|
convertToTimezone() {
|
23
|
-
return this.value.strftime('%
|
25
|
+
return this.value.strftime('%Z')
|
24
26
|
}
|
25
27
|
|
26
28
|
toYear() {
|
@@ -31,6 +33,10 @@ export default class DateTime {
|
|
31
33
|
return this.value.strftime('%b')
|
32
34
|
}
|
33
35
|
|
36
|
+
toMonthNum() {
|
37
|
+
return this.value.strftime('%-m')
|
38
|
+
}
|
39
|
+
|
34
40
|
toMonthFull() {
|
35
41
|
return this.value.strftime('%B')
|
36
42
|
}
|
@@ -39,10 +45,26 @@ export default class DateTime {
|
|
39
45
|
return this.value.strftime('%e')
|
40
46
|
}
|
41
47
|
|
48
|
+
toDayAbbr() {
|
49
|
+
return ABBR_DAYS[this.value.day()]
|
50
|
+
}
|
51
|
+
|
42
52
|
toWeekday() {
|
43
53
|
return this.value.strftime('%a')
|
44
54
|
}
|
45
55
|
|
56
|
+
toHour() {
|
57
|
+
return this.value.strftime('%l')
|
58
|
+
}
|
59
|
+
|
60
|
+
toMinute() {
|
61
|
+
return this.value.strftime('%M')
|
62
|
+
}
|
63
|
+
|
64
|
+
toMeridian() {
|
65
|
+
return this.value.strftime('%P')[0]
|
66
|
+
}
|
67
|
+
|
46
68
|
toIso() {
|
47
69
|
return this.value.toISOString()
|
48
70
|
}
|
@@ -26,6 +26,11 @@ module Playbook
|
|
26
26
|
@value.strftime("%a")
|
27
27
|
end
|
28
28
|
|
29
|
+
def to_day_of_week_compact
|
30
|
+
abbr_days = %w[SU M T W TH F S]
|
31
|
+
abbr_days[@value.strftime("%w").to_i]
|
32
|
+
end
|
33
|
+
|
29
34
|
def to_year
|
30
35
|
@value.strftime("%Y")
|
31
36
|
end
|
@@ -34,6 +39,14 @@ module Playbook
|
|
34
39
|
@value.strftime("%^b")
|
35
40
|
end
|
36
41
|
|
42
|
+
def to_month_number
|
43
|
+
@value.strftime("%m")
|
44
|
+
end
|
45
|
+
|
46
|
+
def to_unpadded_month_number
|
47
|
+
@value.strftime("%-m")
|
48
|
+
end
|
49
|
+
|
37
50
|
def to_month_downcase
|
38
51
|
@value.strftime("%b")
|
39
52
|
end
|
@@ -46,6 +59,10 @@ module Playbook
|
|
46
59
|
@value.strftime("%e")
|
47
60
|
end
|
48
61
|
|
62
|
+
def to_unpadded_day
|
63
|
+
@value.strftime("%-d")
|
64
|
+
end
|
65
|
+
|
49
66
|
def to_hour
|
50
67
|
@value.strftime("%l")
|
51
68
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%= content_tag(:div,
|
2
|
+
id: object.id,
|
3
|
+
data: object.data,
|
4
|
+
class: object.classname) do %>
|
5
|
+
<%= pb_rails("body", props: {color: "light" }) do %>
|
6
|
+
<%= pb_rails("caption", props: { text: "Project" }) %>
|
7
|
+
<%= pb_rails("icon", props: { icon: "home", fixed_width: true }) %>
|
8
|
+
<%= object.project_number%>
|
9
|
+
<% if object.link %>
|
10
|
+
<%= link_to object.link, class: "pb_logistic_kit_links" do %>
|
11
|
+
<%= pb_rails("title", props: { text: object.project_name, tag: "span", size: 4, dark: object.dark }) %>
|
12
|
+
<%= pb_rails("title", props: { text: object.date_element, tag: "span", size: 4, dark: object.dark }) if object.date.present? %>
|
13
|
+
<% end %>
|
14
|
+
<% else %>
|
15
|
+
<%= pb_rails("title", props: { text: object.project_name, tag: "span", size: 4, dark: object.dark }) %>
|
16
|
+
<%= pb_rails("title", props: { text: object.date_element, tag: "span", size: 4, dark: object.dark} ) if object.date.present? %>
|
17
|
+
<% end %>
|
18
|
+
<% end %>
|
19
|
+
<% end %>
|
@@ -0,0 +1,96 @@
|
|
1
|
+
/* @flow */
|
2
|
+
|
3
|
+
import React from 'react'
|
4
|
+
import classnames from 'classnames'
|
5
|
+
import DateTime from '../pb_kit/dateTime.js'
|
6
|
+
import { Body, Caption, Icon, Title } from '../'
|
7
|
+
|
8
|
+
const dateString = (value: DateTime) => {
|
9
|
+
const month = value.toMonthNumber()
|
10
|
+
const day = value.toDay()
|
11
|
+
|
12
|
+
return ` · ${month}/${day}`
|
13
|
+
}
|
14
|
+
|
15
|
+
type LogisticProps = {
|
16
|
+
dark?: Boolean,
|
17
|
+
date: String,
|
18
|
+
link?: String,
|
19
|
+
projectName: String,
|
20
|
+
projectNumber: Number,
|
21
|
+
}
|
22
|
+
|
23
|
+
const Logistic = ({
|
24
|
+
dark = false,
|
25
|
+
date,
|
26
|
+
link,
|
27
|
+
projectName,
|
28
|
+
projectNumber,
|
29
|
+
}: LogisticProps) => {
|
30
|
+
const formattedDate = new DateTime({ value: date })
|
31
|
+
|
32
|
+
return (
|
33
|
+
<div
|
34
|
+
className={classnames('pb_logistic_kit')}
|
35
|
+
>
|
36
|
+
<Body color="light">
|
37
|
+
<Caption text="Project" />
|
38
|
+
<Icon
|
39
|
+
fixedWidth
|
40
|
+
icon="home"
|
41
|
+
/>
|
42
|
+
|
43
|
+
{` ${projectNumber}`}
|
44
|
+
|
45
|
+
<Choose>
|
46
|
+
<When condition={link}>
|
47
|
+
<a
|
48
|
+
className="pb_logistic_kit_links"
|
49
|
+
href={link}
|
50
|
+
>
|
51
|
+
<Choose>
|
52
|
+
<When condition={date}>
|
53
|
+
<Title
|
54
|
+
size={4}
|
55
|
+
tag="span"
|
56
|
+
text={' ' + projectName + dateString(formattedDate)}
|
57
|
+
/>
|
58
|
+
</When>
|
59
|
+
<Otherwise>
|
60
|
+
<Title
|
61
|
+
size={4}
|
62
|
+
tag="span"
|
63
|
+
text={' ' + projectName}
|
64
|
+
/>
|
65
|
+
</Otherwise>
|
66
|
+
</Choose>
|
67
|
+
</a>
|
68
|
+
</When>
|
69
|
+
<Otherwise>
|
70
|
+
<Choose>
|
71
|
+
<When condition={date}>
|
72
|
+
<Title
|
73
|
+
dark={dark}
|
74
|
+
size={4}
|
75
|
+
tag="span"
|
76
|
+
text={' ' + projectName + dateString(formattedDate)}
|
77
|
+
/>
|
78
|
+
</When>
|
79
|
+
<Otherwise>
|
80
|
+
<Title
|
81
|
+
dark={dark}
|
82
|
+
size={4}
|
83
|
+
tag="span"
|
84
|
+
text={' ' + projectName}
|
85
|
+
/>
|
86
|
+
</Otherwise>
|
87
|
+
</Choose>
|
88
|
+
|
89
|
+
</Otherwise>
|
90
|
+
</Choose>
|
91
|
+
</Body>
|
92
|
+
</div>
|
93
|
+
)
|
94
|
+
}
|
95
|
+
|
96
|
+
export default Logistic
|