Skip to content

Commit 492ac5c

Browse files
committed
Add missing component templates
Signed-off-by: Piotr Olaszewski <[email protected]>
1 parent be56324 commit 492ac5c

File tree

7 files changed

+337
-0
lines changed

7 files changed

+337
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// message
2+
message(model) ::= <%
3+
<if(model.message && model.hasMessageLevelError)>
4+
<({<figures.error>}); format="style-level-error"> <model.message; format="style-level-error">
5+
<elseif(model.message && model.hasMessageLevelWarn)>
6+
<({<figures.warning>}); format="style-level-warn"> <model.message; format="style-level-warn">
7+
<elseif(model.message && model.hasMessageLevelInfo)>
8+
<({<figures.info>}); format="style-level-info"> <model.message; format="style-level-info">
9+
<endif>
10+
%>
11+
12+
// info section after '? xxx'
13+
info(model) ::= <%
14+
<if(model.defaultValue)>
15+
<("(Y/n)"); format="style-item-disabled">
16+
<else>
17+
<("(y/N)"); format="style-item-disabled">
18+
<endif>
19+
%>
20+
21+
// start '? xxx' shows both running and result
22+
question_name(model) ::= <<
23+
<({<figures.questionMark>}); format="style-list-value"> <model.name; format="style-title">
24+
>>
25+
26+
// component result
27+
result(model) ::= <<
28+
<question_name(model)> <model.resultValue; format="style-value">
29+
>>
30+
31+
// component is running
32+
running(model) ::= <<
33+
<question_name(model)> <info(model)> <model.input>
34+
<message(model)>
35+
>>
36+
37+
// main
38+
main(model) ::= <<
39+
<if(model.resultValue)><result(model)><else><running(model)><endif>
40+
>>
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
// selector rows
2+
truncate(name,model) ::= <%
3+
<name; format={truncate-width:<model.terminalWidth>-prefix:5}>
4+
%>
5+
6+
// used to select style if item is selected/unselected
7+
selected_style(flag) ::= <%
8+
<if(flag)>style-item-selected<else>style-item-unselected<endif>
9+
%>
10+
11+
// selector rows
12+
select_item(item,model) ::= <%
13+
<if(item.onrow)>
14+
<({<figures.rightPointingQuotation> }); format="style-item-selector">
15+
<else>
16+
<(" ")>
17+
<endif>
18+
19+
<if(item.enabled)>
20+
<if(item.selected)>
21+
<({<figures.checkboxOn> }); format=selected_style(item.selected)> <truncate(item.name,model)>
22+
<else>
23+
<({<figures.checkboxOff> }); format=selected_style(item.selected)> <truncate(item.name,model)>
24+
<endif>
25+
<else>
26+
<if(item.selected)>
27+
<({<figures.checkboxOn> }); format="style-item-disabled"> <({<truncate(item.name,model)>}); format="style-item-disabled">
28+
<else>
29+
<({<figures.checkboxOff> }); format="style-item-disabled"> <({<truncate(item.name,model)>}); format="style-item-disabled">
30+
<endif>
31+
<endif>
32+
%>
33+
34+
// start '? xxx' shows both running and result
35+
question_name(model) ::= <<
36+
<({<figures.questionMark>}); format="style-list-value"> <model.name; format="style-title">
37+
>>
38+
39+
// within info section, dedicated instructions for user
40+
info_filter(model) ::= <%
41+
<if(model.input)>
42+
, filtering '<model.input>'
43+
<else>
44+
, type to filter
45+
<endif>
46+
%>
47+
48+
// info section after '? xxx'
49+
info(model) ::= <<
50+
[Use arrows to move]<info_filter(model)>
51+
>>
52+
53+
// get comma delited string
54+
comma_delimited(values) ::= <%
55+
<values; separator=",">
56+
%>
57+
58+
// component result
59+
result(model) ::= <<
60+
<question_name(model)> <(comma_delimited(model.values)); format="style-value">
61+
>>
62+
63+
// component is running
64+
running(model) ::= <<
65+
<question_name(model)> <info(model)>
66+
<model.rows:{x|<select_item(x,model)>}; separator="\n">
67+
>>
68+
69+
// main - hardcoded name
70+
// model - model built by MultiItemSelectorContext
71+
main(model) ::= <<
72+
<if(model.isResult)><result(model)><else><running(model)><endif>
73+
>>
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
// message
2+
message(model) ::= <%
3+
<if(model.message && model.hasMessageLevelError)>
4+
<({<figures.error>}); format="style-level-error"> <model.message; format="style-level-error">
5+
<elseif(model.message && model.hasMessageLevelWarn)>
6+
<({<figures.warning>}); format="style-level-warn"> <model.message; format="style-level-warn">
7+
<elseif(model.message && model.hasMessageLevelInfo)>
8+
<({<figures.info>}); format="style-level-info"> <model.message; format="style-level-info">
9+
<endif>
10+
%>
11+
12+
// info section after '? xxx'
13+
info(model) ::= <%
14+
<if(model.input)>
15+
<model.input>
16+
<else>
17+
<("[Number Type: "); format="style-value"><model.defaultClass; format="style-value"><("]"); format="style-value">
18+
<if(model.defaultValue)>
19+
<("[Default "); format="style-value"><model.defaultValue; format="style-value"><("]"); format="style-value">
20+
<elseif(model.required)>
21+
<("[Required]"); format="style-value">
22+
<endif>
23+
<endif>
24+
%>
25+
26+
// start '? xxx' shows both running and result
27+
question_name(model) ::= <<
28+
<({<figures.questionMark>}); format="style-list-value"> <model.name; format="style-title">
29+
>>
30+
31+
// component result
32+
result(model) ::= <<
33+
<question_name(model)> <model.resultValue; format="style-value">
34+
>>
35+
36+
// component is running
37+
running(model) ::= <<
38+
<question_name(model)> <info(model)>
39+
<message(model)>
40+
>>
41+
42+
// main
43+
main(model) ::= <<
44+
<if(model.resultValue)><result(model)><else><running(model)><endif>
45+
>>
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// message
2+
message(model) ::= <%
3+
<if(model.message && model.hasMessageLevelError)>
4+
<({<figures.error>}); format="style-level-error"> <model.message; format="style-level-error">
5+
<elseif(model.message && model.hasMessageLevelWarn)>
6+
<({<figures.warning>}); format="style-level-warn"> <model.message; format="style-level-warn">
7+
<elseif(model.message && model.hasMessageLevelInfo)>
8+
<({<figures.info>}); format="style-level-info"> <model.message; format="style-level-info">
9+
<endif>
10+
%>
11+
12+
// info section after '? xxx'
13+
info(model) ::= <%
14+
<if(model.input)>
15+
<model.input>
16+
<endif>
17+
%>
18+
19+
// start '? xxx' shows both running and result
20+
question_name(model) ::= <<
21+
<({<figures.questionMark>}); format="style-list-value"> <model.name; format="style-title">
22+
>>
23+
24+
// component result
25+
result(model) ::= <<
26+
<question_name(model)> <model.resultValue; format="style-value">
27+
>>
28+
29+
// component is running
30+
running(model) ::= <<
31+
<question_name(model)> <info(model)>
32+
<message(model)>
33+
>>
34+
35+
// main
36+
main(model) ::= <<
37+
<if(model.resultValue)><result(model)><else><running(model)><endif>
38+
>>
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
// message
2+
message(model) ::= <%
3+
<if(model.message && model.hasMessageLevelError)>
4+
<({<figures.error>}); format="style-level-error"> <model.message; format="style-level-error">
5+
<elseif(model.message && model.hasMessageLevelWarn)>
6+
<({<figures.warning>}); format="style-level-warn"> <model.message; format="style-level-warn">
7+
<elseif(model.message && model.hasMessageLevelInfo)>
8+
<({<figures.info>}); format="style-level-info"> <model.message; format="style-level-info">
9+
<endif>
10+
%>
11+
12+
// info section after '? xxx'
13+
info(model) ::= <%
14+
<if(model.input)>
15+
<model.input>
16+
<endif>
17+
%>
18+
19+
// start '? xxx' shows both running and result
20+
question_name(model) ::= <<
21+
<({<figures.questionMark>}); format="style-list-value"> <model.name; format="style-title">
22+
>>
23+
24+
// render path item
25+
path_item(item,model) ::= <%
26+
<if(item.selected)>
27+
<({<figures.rightPointingQuotation> }); format="style-item-selector"><item.partsText; format={width:<model.terminalWidth>,prefix:2,textStyle:style-item-selector,matchStyle:style-level-warn}>
28+
<else>
29+
<(" ")><item.partsText; format={width:<model.terminalWidth>,prefix:2,textStyle:style-item-selector,matchStyle:style-level-warn}>
30+
<endif>
31+
%>
32+
33+
// render paths
34+
paths(model) ::= <<
35+
<model.pathViewItems:{x|<path_item(x,model)>}; separator="\n">
36+
>>
37+
38+
// component result
39+
result(model) ::= <<
40+
<question_name(model)> <model.resultValue; format="style-value">
41+
>>
42+
43+
// component is running
44+
running(model) ::= <<
45+
<question_name(model)> <info(model)>
46+
<message(model)>
47+
<paths(model)>
48+
>>
49+
50+
// main
51+
main(model) ::= <<
52+
<if(model.resultValue)><result(model)><else><running(model)><endif>
53+
>>
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// selector rows
2+
truncate(name,model) ::= <%
3+
<name; format={truncate-width:<model.terminalWidth>-prefix:2}>
4+
%>
5+
6+
select_item(item,model) ::= <%
7+
<if(item.selected)>
8+
<({<figures.rightPointingQuotation> }); format="style-item-selector"><({<truncate(item.name,model)>}); format="style-item-selector">
9+
<else>
10+
<(" ")><truncate(item.name,model)>
11+
<endif>
12+
%>
13+
14+
// start '? xxx' shows both running and result
15+
question_name(model) ::= <<
16+
<({<figures.questionMark>}); format="style-list-value"> <model.name; format="style-title">
17+
>>
18+
19+
// within info section, dedicated instructions for user
20+
info_filter(model) ::= <%
21+
<if(model.input)>
22+
, filtering '<model.input>'
23+
<else>
24+
, type to filter
25+
<endif>
26+
%>
27+
28+
// info section after '? xxx'
29+
info(model) ::= <<
30+
[Use arrows to move]<info_filter(model)>
31+
>>
32+
33+
// component result
34+
result(model) ::= <<
35+
<question_name(model)> <model.value; format="style-value">
36+
>>
37+
38+
// component is running
39+
running(model) ::= <<
40+
<question_name(model)> <info(model)>
41+
<model.rows:{x|<select_item(x,model)>}; separator="\n">
42+
>>
43+
44+
// main - hardcoded name
45+
// model - model built by SingleItemSelectorContext
46+
main(model) ::= <<
47+
<if(model.isResult)><result(model)><else><running(model)><endif>
48+
>>
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// info section after '? xxx'
2+
info(model) ::= <%
3+
<if(model.hasMaskCharacter)>
4+
<if(model.maskedInput)>
5+
<model.maskedInput>
6+
<else>
7+
<if(model.defaultValue)>
8+
<("[Default "); format="style-value"><model.defaultValue; format="style-value"><("]"); format="style-value">
9+
<endif>
10+
<endif>
11+
<else>
12+
<if(model.input)>
13+
<model.input>
14+
<else>
15+
<if(model.defaultValue)>
16+
<("[Default "); format="style-value"><model.defaultValue; format="style-value"><("]"); format="style-value">
17+
<endif>
18+
<endif>
19+
<endif>
20+
%>
21+
22+
// start '? xxx' shows both running and result
23+
question_name(model) ::= <<
24+
<({<figures.questionMark>}); format="style-list-value"> <model.name; format="style-title">
25+
>>
26+
27+
// component result
28+
result(model) ::= <<
29+
<question_name(model)> <model.maskedResultValue; format="style-value">
30+
>>
31+
32+
// component is running
33+
running(model) ::= <<
34+
<question_name(model)> <info(model)>
35+
>>
36+
37+
// main
38+
main(model) ::= <<
39+
<if(model.resultValue)><result(model)><else><running(model)><endif>
40+
>>

0 commit comments

Comments
 (0)