@baravak/risloo-profile-cli 4.43.0 → 4.45.0
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.
- package/package.json +1 -1
- package/src/handlebars/helpers/even.js +8 -0
- package/src/handlebars/helpers.js +2 -0
- package/src/publish/json/profiles/16PF93.json +1 -26
- package/src/publish/json/profiles/FRHPT93.json +4524 -0
- package/src/publish/json/profiles/JRAQ93.json +785 -0
- package/src/samples/FRHPT93.js +430 -0
- package/src/samples/JRAQ93.js +105 -0
- package/views/profiles/samples/FRHPT93_1.hbs +115 -0
- package/views/profiles/samples/FRHPT93_2.hbs +103 -0
- package/views/profiles/samples/FRHPT93_3.hbs +103 -0
- package/views/profiles/samples/FRHPT93_4.hbs +103 -0
- package/views/profiles/samples/JRAQ93.hbs +142 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{{#> layout}}
|
|
2
|
+
|
|
3
|
+
<defs>
|
|
4
|
+
<linearGradient id="bgbar1">
|
|
5
|
+
<stop stop-color="{{colors.bars.[0].[0]}}"/>
|
|
6
|
+
<stop offset="1" stop-color="{{colors.bars.[0].[1]}}"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<linearGradient id="bgbar2">
|
|
9
|
+
<stop stop-color="{{colors.bars.[1].[0]}}"/>
|
|
10
|
+
<stop offset="1" stop-color="{{colors.bars.[1].[1]}}"/>
|
|
11
|
+
</linearGradient>
|
|
12
|
+
<clipPath id="cobar">
|
|
13
|
+
{{bar 250 16 (object tl=0 bl=0 tr=2 br=2) (toRad 0)}}
|
|
14
|
+
</clipPath>
|
|
15
|
+
|
|
16
|
+
<filter id="split" x="0" y="0" width="7" height="{{ternary (boolean groups.length '==' 3) 462 614}}" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
|
17
|
+
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
|
18
|
+
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
|
19
|
+
<feOffset dx="1"/>
|
|
20
|
+
<feGaussianBlur stdDeviation="1.5"/>
|
|
21
|
+
<feComposite in2="hardAlpha" operator="out"/>
|
|
22
|
+
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/>
|
|
23
|
+
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5334_139730"/>
|
|
24
|
+
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5334_139730" result="shape"/>
|
|
25
|
+
</filter>
|
|
26
|
+
</defs>
|
|
27
|
+
<g transform="translate({{spec.profile.padding.x}}, {{spec.profile.padding.y}})">
|
|
28
|
+
<g transform="translate(0, 4)">
|
|
29
|
+
<g transform="translate(0, 48)">
|
|
30
|
+
{{#each groups as |item index|}}
|
|
31
|
+
{{setVar "color" (ternary (even index) ../colors.bars.[0] ../colors.bars.[1])}}
|
|
32
|
+
<g transform="translate(0, {{math index '*' 152}})">
|
|
33
|
+
<rect width="800" height="136" rx="8" fill="{{ternary (even index) '#F8FAFC' 'white'}}" />
|
|
34
|
+
{{bar 180 136 (object tl=8 bl=8 tr=0 br=0) (toRad 0) fill=(ternary (even index) '#F1F5F9' 'white') }}
|
|
35
|
+
{{#if (boolean level '===' undefined)}}
|
|
36
|
+
<text x="90" y="57" font-size="12" font-weight="500" dy=".3em" fill="#64748B" text-anchor="middle">{{key}}</text>
|
|
37
|
+
<text x="90" y="77" font-size="15" font-weight="500" dy=".3em" fill="#334155" text-anchor="middle">{{label.fa}}</text>
|
|
38
|
+
{{else}}
|
|
39
|
+
<text x="90" y="23.5" font-size="12" font-weight="500" dy=".3em" fill="#64748B" text-anchor="middle">{{key}}</text>
|
|
40
|
+
<text x="90" y="44.5" font-size="15" font-weight="500" dy=".3em" fill="#334155" text-anchor="middle">{{label.fa}}</text>
|
|
41
|
+
<rect x="50" y="65.5" width="80" height="1" rx="0.5" fill="#E2E8F0"/>
|
|
42
|
+
<rect x="100.5" y="78.5" width="40" height="20" rx="4" fill="{{color.[2]}}" />
|
|
43
|
+
<text x="120.5" y="88.5" font-size="14" font-weight="600" dy=".3em" fill="#FFFFFF" text-anchor="middle">{{percentageText}} ٪</text>
|
|
44
|
+
<text x="90" y="111.5" font-size="12" font-weight="400" dy=".3em" fill="{{color.[2]}}" text-anchor="middle">{{levelText}}</text>
|
|
45
|
+
<text x="92.5" y="88.5" font-size="15" font-weight="500" dy=".3em" fill="#334155" text-anchor="start">
|
|
46
|
+
<tspan>
|
|
47
|
+
{{mark}}
|
|
48
|
+
</tspan>
|
|
49
|
+
<tspan fill="#64748B" font-size="14" font-weight="500">از 144</tspan>
|
|
50
|
+
</text>
|
|
51
|
+
{{/if}}
|
|
52
|
+
<g transform="translate(389, {{ternary (boolean item.length '===' 4) 12 28}})">
|
|
53
|
+
{{#each subs as |sub i|}}
|
|
54
|
+
<g transform="translate(0, {{math i '*' 32}})">
|
|
55
|
+
{{bar 250 16 (object tl=0 bl=0 tr=2 br=2) (toRad 0) fill='#E2E8F080' clip-path="url(#cobar)"}}
|
|
56
|
+
</g>
|
|
57
|
+
{{/each}}
|
|
58
|
+
</g>
|
|
59
|
+
</g>
|
|
60
|
+
{{/each}}
|
|
61
|
+
</g>
|
|
62
|
+
<line x1="451.25" y1="40.5" x2="451.25" y2="{{ternary (boolean groups.length '==' 3) '495.5' '647.5'}}" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="5.5 5.5"/>
|
|
63
|
+
<line x1="513.25" y1="40.5" x2="513.25" y2="{{ternary (boolean groups.length '==' 3) '495.5' '647.5'}}" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="5.5 5.5"/>
|
|
64
|
+
<line x1="576.25" y1="40.5" x2="576.25" y2="{{ternary (boolean groups.length '==' 3) '495.5' '647.5'}}" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="5.5 5.5"/>
|
|
65
|
+
<line x1="638.25" y1="40.5" x2="638.25" y2="{{ternary (boolean groups.length '==' 3) '495.5' '647.5'}}" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="5.5 5.5"/>
|
|
66
|
+
<rect x="709" width="1" height="{{ternary (boolean groups.length '==' 3) 496 648}}" fill="#F1F5F9"/>
|
|
67
|
+
<text x="387.5" y="24" font-size="12" font-weight="400" dy=".3em" fill="#94A3B8" text-anchor="middle">0</text>
|
|
68
|
+
<text x="514.5" y="24" font-size="12" font-weight="400" dy=".3em" fill="#94A3B8" text-anchor="middle">50 ٪</text>
|
|
69
|
+
<text x="637" y="24" font-size="12" font-weight="400" dy=".3em" fill="#94A3B8" text-anchor="middle">100 ٪</text>
|
|
70
|
+
<text x="754" y="27" font-size="12" font-weight="500" dy=".3em" fill="#64748B" text-anchor="middle">ردهبندی</text>
|
|
71
|
+
<text x="677" y="13" font-size="12" font-weight="500" dy=".3em" fill="#64748B" text-anchor="middle">نمره خام</text>
|
|
72
|
+
<text x="677" y="27" font-size="12" font-weight="500" dy=".3em" fill="#64748B" text-anchor="middle">از 36</text>
|
|
73
|
+
|
|
74
|
+
<g transform="translate(0, 48)">
|
|
75
|
+
{{#each groups as |item index|}}
|
|
76
|
+
{{setVar "color" (ternary (even index) ../colors.bars.[0] ../colors.bars.[1])}}
|
|
77
|
+
<g transform="translate(0, {{math index '*' 152}})">
|
|
78
|
+
<g transform="translate(389, {{ternary (boolean item.length '===' 4) 12 28}})">
|
|
79
|
+
{{#each subs as |sub i|}}
|
|
80
|
+
<g transform="translate(0, {{math i '*' 32}})">
|
|
81
|
+
{{bar (math percentage '*' 250) 16 (object tl=0 bl=0 tr=2 br=2) (toRad 0) fill=../bg}}
|
|
82
|
+
<text x="-9" y="9" font-size="13" font-weight="400" dy=".3em" fill="#475569" text-anchor="start">{{sub.label.fa}}</text>
|
|
83
|
+
<rect x="270" y="-.5" width="36" height="17" rx="4" fill="none" stroke="{{../color.[3]}}" />
|
|
84
|
+
<text x="288" y="9" font-size="13" font-weight="500" dy=".3em" fill="{{../color.[2]}}" text-anchor="middle">{{sub.mark}}</text>
|
|
85
|
+
<text x="366" y="9" font-size="12" font-weight="400" dy=".3em" fill="#64748B" text-anchor="middle">{{sub.levelText}}</text>
|
|
86
|
+
{{#if (boolean percentage '>' 0.24)}}
|
|
87
|
+
<text x="{{math (math percentage '*' 250) '-' 4}}" y="9" font-size="13" font-weight="500" dy=".3em" fill="#FFFFFF" text-anchor="start">{{sub.percentageText}} ٪</text>
|
|
88
|
+
{{else}}
|
|
89
|
+
<text x="{{math (math percentage '*' 250) '+' 6}}" y="9" font-size="13" font-weight="500" dy=".3em" fill="{{../color.[1]}}" text-anchor="end">{{sub.percentageText}} ٪</text>
|
|
90
|
+
{{/if}}
|
|
91
|
+
</g>
|
|
92
|
+
{{/each}}
|
|
93
|
+
</g>
|
|
94
|
+
</g>
|
|
95
|
+
{{/each}}
|
|
96
|
+
</g>
|
|
97
|
+
<g opacity="0.5" filter="url(#split)" transform="translate(386, 37.5)">
|
|
98
|
+
<line x1="2.5" y1="3.5" x2="2.5" y2="{{ternary (boolean groups.length '==' 3) 458.5 610.5}}" stroke="white" stroke-linecap="round"/>
|
|
99
|
+
</g>
|
|
100
|
+
</g>
|
|
101
|
+
</g>
|
|
102
|
+
|
|
103
|
+
{{/layout}}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{{#> layout}}
|
|
2
|
+
|
|
3
|
+
<defs>
|
|
4
|
+
<linearGradient id="bgbar1">
|
|
5
|
+
<stop stop-color="{{colors.bars.[0].[0]}}"/>
|
|
6
|
+
<stop offset="1" stop-color="{{colors.bars.[0].[1]}}"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<linearGradient id="bgbar2">
|
|
9
|
+
<stop stop-color="{{colors.bars.[1].[0]}}"/>
|
|
10
|
+
<stop offset="1" stop-color="{{colors.bars.[1].[1]}}"/>
|
|
11
|
+
</linearGradient>
|
|
12
|
+
<clipPath id="cobar">
|
|
13
|
+
{{bar 250 16 (object tl=0 bl=0 tr=2 br=2) (toRad 0)}}
|
|
14
|
+
</clipPath>
|
|
15
|
+
|
|
16
|
+
<filter id="split" x="0" y="0" width="7" height="{{ternary (boolean groups.length '==' 3) 462 614}}" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
|
17
|
+
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
|
18
|
+
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
|
19
|
+
<feOffset dx="1"/>
|
|
20
|
+
<feGaussianBlur stdDeviation="1.5"/>
|
|
21
|
+
<feComposite in2="hardAlpha" operator="out"/>
|
|
22
|
+
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/>
|
|
23
|
+
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5334_139730"/>
|
|
24
|
+
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5334_139730" result="shape"/>
|
|
25
|
+
</filter>
|
|
26
|
+
</defs>
|
|
27
|
+
<g transform="translate({{spec.profile.padding.x}}, {{spec.profile.padding.y}})">
|
|
28
|
+
<g transform="translate(0, 4)">
|
|
29
|
+
<g transform="translate(0, 48)">
|
|
30
|
+
{{#each groups as |item index|}}
|
|
31
|
+
{{setVar "color" (ternary (even index) ../colors.bars.[0] ../colors.bars.[1])}}
|
|
32
|
+
<g transform="translate(0, {{math index '*' 152}})">
|
|
33
|
+
<rect width="800" height="136" rx="8" fill="{{ternary (even index) '#F8FAFC' 'white'}}" />
|
|
34
|
+
{{bar 180 136 (object tl=8 bl=8 tr=0 br=0) (toRad 0) fill=(ternary (even index) '#F1F5F9' 'white') }}
|
|
35
|
+
{{#if (boolean level '===' undefined)}}
|
|
36
|
+
<text x="90" y="57" font-size="12" font-weight="500" dy=".3em" fill="#64748B" text-anchor="middle">{{key}}</text>
|
|
37
|
+
<text x="90" y="77" font-size="15" font-weight="500" dy=".3em" fill="#334155" text-anchor="middle">{{label.fa}}</text>
|
|
38
|
+
{{else}}
|
|
39
|
+
<text x="90" y="23.5" font-size="12" font-weight="500" dy=".3em" fill="#64748B" text-anchor="middle">{{key}}</text>
|
|
40
|
+
<text x="90" y="44.5" font-size="15" font-weight="500" dy=".3em" fill="#334155" text-anchor="middle">{{label.fa}}</text>
|
|
41
|
+
<rect x="50" y="65.5" width="80" height="1" rx="0.5" fill="#E2E8F0"/>
|
|
42
|
+
<rect x="100.5" y="78.5" width="40" height="20" rx="4" fill="{{color.[2]}}" />
|
|
43
|
+
<text x="120.5" y="88.5" font-size="14" font-weight="600" dy=".3em" fill="#FFFFFF" text-anchor="middle">{{percentageText}} ٪</text>
|
|
44
|
+
<text x="90" y="111.5" font-size="12" font-weight="400" dy=".3em" fill="{{color.[2]}}" text-anchor="middle">{{levelText}}</text>
|
|
45
|
+
<text x="92.5" y="88.5" font-size="15" font-weight="500" dy=".3em" fill="#334155" text-anchor="start">
|
|
46
|
+
<tspan>
|
|
47
|
+
{{mark}}
|
|
48
|
+
</tspan>
|
|
49
|
+
<tspan fill="#64748B" font-size="13" font-weight="500">از 144</tspan>
|
|
50
|
+
</text>
|
|
51
|
+
{{/if}}
|
|
52
|
+
<g transform="translate(389, {{ternary (boolean item.length '===' 4) 12 28}})">
|
|
53
|
+
{{#each subs as |sub i|}}
|
|
54
|
+
<g transform="translate(0, {{math i '*' 32}})">
|
|
55
|
+
{{bar 250 16 (object tl=0 bl=0 tr=2 br=2) (toRad 0) fill='#E2E8F080' clip-path="url(#cobar)"}}
|
|
56
|
+
</g>
|
|
57
|
+
{{/each}}
|
|
58
|
+
</g>
|
|
59
|
+
</g>
|
|
60
|
+
{{/each}}
|
|
61
|
+
</g>
|
|
62
|
+
<line x1="451.25" y1="40.5" x2="451.25" y2="{{ternary (boolean groups.length '==' 3) '495.5' '647.5'}}" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="5.5 5.5"/>
|
|
63
|
+
<line x1="513.25" y1="40.5" x2="513.25" y2="{{ternary (boolean groups.length '==' 3) '495.5' '647.5'}}" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="5.5 5.5"/>
|
|
64
|
+
<line x1="576.25" y1="40.5" x2="576.25" y2="{{ternary (boolean groups.length '==' 3) '495.5' '647.5'}}" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="5.5 5.5"/>
|
|
65
|
+
<line x1="638.25" y1="40.5" x2="638.25" y2="{{ternary (boolean groups.length '==' 3) '495.5' '647.5'}}" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="5.5 5.5"/>
|
|
66
|
+
<rect x="709" width="1" height="{{ternary (boolean groups.length '==' 3) 496 648}}" fill="#F1F5F9"/>
|
|
67
|
+
<text x="387.5" y="24" font-size="12" font-weight="400" dy=".3em" fill="#94A3B8" text-anchor="middle">0</text>
|
|
68
|
+
<text x="514.5" y="24" font-size="12" font-weight="400" dy=".3em" fill="#94A3B8" text-anchor="middle">50 ٪</text>
|
|
69
|
+
<text x="637" y="24" font-size="12" font-weight="400" dy=".3em" fill="#94A3B8" text-anchor="middle">100 ٪</text>
|
|
70
|
+
<text x="754" y="27" font-size="12" font-weight="500" dy=".3em" fill="#64748B" text-anchor="middle">ردهبندی</text>
|
|
71
|
+
<text x="677" y="13" font-size="12" font-weight="500" dy=".3em" fill="#64748B" text-anchor="middle">نمره خام</text>
|
|
72
|
+
<text x="677" y="27" font-size="12" font-weight="500" dy=".3em" fill="#64748B" text-anchor="middle">از 36</text>
|
|
73
|
+
|
|
74
|
+
<g transform="translate(0, 48)">
|
|
75
|
+
{{#each groups as |item index|}}
|
|
76
|
+
{{setVar "color" (ternary (even index) ../colors.bars.[0] ../colors.bars.[1])}}
|
|
77
|
+
<g transform="translate(0, {{math index '*' 152}})">
|
|
78
|
+
<g transform="translate(389, {{ternary (boolean item.length '===' 4) 12 28}})">
|
|
79
|
+
{{#each subs as |sub i|}}
|
|
80
|
+
<g transform="translate(0, {{math i '*' 32}})">
|
|
81
|
+
{{bar (math percentage '*' 250) 16 (object tl=0 bl=0 tr=2 br=2) (toRad 0) fill=../bg}}
|
|
82
|
+
<text x="-9" y="9" font-size="13" font-weight="400" dy=".3em" fill="#475569" text-anchor="start">{{sub.label.fa}}</text>
|
|
83
|
+
<rect x="270" y="-.5" width="36" height="17" rx="4" fill="none" stroke="{{../color.[3]}}" />
|
|
84
|
+
<text x="288" y="9" font-size="13" font-weight="500" dy=".3em" fill="{{../color.[2]}}" text-anchor="middle">{{sub.mark}}</text>
|
|
85
|
+
<text x="366" y="9" font-size="12" font-weight="400" dy=".3em" fill="#64748B" text-anchor="middle">{{sub.levelText}}</text>
|
|
86
|
+
{{#if (boolean percentage '>' 0.24)}}
|
|
87
|
+
<text x="{{math (math percentage '*' 250) '-' 4}}" y="9" font-size="13" font-weight="500" dy=".3em" fill="#FFFFFF" text-anchor="start">{{sub.percentageText}} ٪</text>
|
|
88
|
+
{{else}}
|
|
89
|
+
<text x="{{math (math percentage '*' 250) '+' 6}}" y="9" font-size="13" font-weight="500" dy=".3em" fill="{{../color.[1]}}" text-anchor="end">{{sub.percentageText}} ٪</text>
|
|
90
|
+
{{/if}}
|
|
91
|
+
</g>
|
|
92
|
+
{{/each}}
|
|
93
|
+
</g>
|
|
94
|
+
</g>
|
|
95
|
+
{{/each}}
|
|
96
|
+
</g>
|
|
97
|
+
<g opacity="0.5" filter="url(#split)" transform="translate(386, 37.5)">
|
|
98
|
+
<line x1="2.5" y1="3.5" x2="2.5" y2="{{ternary (boolean groups.length '==' 3) 458.5 610.5}}" stroke="white" stroke-linecap="round"/>
|
|
99
|
+
</g>
|
|
100
|
+
</g>
|
|
101
|
+
</g>
|
|
102
|
+
|
|
103
|
+
{{/layout}}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{{#> layout}}
|
|
2
|
+
|
|
3
|
+
<defs>
|
|
4
|
+
<linearGradient id="bgbar1">
|
|
5
|
+
<stop stop-color="{{colors.bars.[0].[0]}}"/>
|
|
6
|
+
<stop offset="1" stop-color="{{colors.bars.[0].[1]}}"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<linearGradient id="bgbar2">
|
|
9
|
+
<stop stop-color="{{colors.bars.[1].[0]}}"/>
|
|
10
|
+
<stop offset="1" stop-color="{{colors.bars.[1].[1]}}"/>
|
|
11
|
+
</linearGradient>
|
|
12
|
+
<clipPath id="cobar">
|
|
13
|
+
{{bar 250 16 (object tl=0 bl=0 tr=2 br=2) (toRad 0)}}
|
|
14
|
+
</clipPath>
|
|
15
|
+
|
|
16
|
+
<filter id="split" x="0" y="0" width="7" height="{{ternary (boolean groups.length '==' 3) 462 614}}" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
|
17
|
+
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
|
18
|
+
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
|
19
|
+
<feOffset dx="1"/>
|
|
20
|
+
<feGaussianBlur stdDeviation="1.5"/>
|
|
21
|
+
<feComposite in2="hardAlpha" operator="out"/>
|
|
22
|
+
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/>
|
|
23
|
+
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_5334_139730"/>
|
|
24
|
+
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_5334_139730" result="shape"/>
|
|
25
|
+
</filter>
|
|
26
|
+
</defs>
|
|
27
|
+
<g transform="translate({{spec.profile.padding.x}}, {{spec.profile.padding.y}})">
|
|
28
|
+
<g transform="translate(0, 4)">
|
|
29
|
+
<g transform="translate(0, 48)">
|
|
30
|
+
{{#each groups as |item index|}}
|
|
31
|
+
{{setVar "color" (ternary (even index) ../colors.bars.[0] ../colors.bars.[1])}}
|
|
32
|
+
<g transform="translate(0, {{math index '*' 152}})">
|
|
33
|
+
<rect width="800" height="136" rx="8" fill="{{ternary (even index) '#F8FAFC' 'white'}}" />
|
|
34
|
+
{{bar 180 136 (object tl=8 bl=8 tr=0 br=0) (toRad 0) fill=(ternary (even index) '#F1F5F9' 'white') }}
|
|
35
|
+
{{#if (boolean level '===' undefined)}}
|
|
36
|
+
<text x="90" y="57" font-size="12" font-weight="500" dy=".3em" fill="#64748B" text-anchor="middle">{{key}}</text>
|
|
37
|
+
<text x="90" y="77" font-size="15" font-weight="500" dy=".3em" fill="#334155" text-anchor="middle">{{label.fa}}</text>
|
|
38
|
+
{{else}}
|
|
39
|
+
<text x="90" y="23.5" font-size="12" font-weight="500" dy=".3em" fill="#64748B" text-anchor="middle">{{key}}</text>
|
|
40
|
+
<text x="90" y="44.5" font-size="15" font-weight="500" dy=".3em" fill="#334155" text-anchor="middle">{{label.fa}}</text>
|
|
41
|
+
<rect x="50" y="65.5" width="80" height="1" rx="0.5" fill="#E2E8F0"/>
|
|
42
|
+
<rect x="100.5" y="78.5" width="40" height="20" rx="4" fill="{{color.[2]}}" />
|
|
43
|
+
<text x="120.5" y="88.5" font-size="14" font-weight="600" dy=".3em" fill="#FFFFFF" text-anchor="middle">{{percentageText}} ٪</text>
|
|
44
|
+
<text x="90" y="111.5" font-size="12" font-weight="400" dy=".3em" fill="{{color.[2]}}" text-anchor="middle">{{levelText}}</text>
|
|
45
|
+
<text x="92.5" y="88.5" font-size="15" font-weight="500" dy=".3em" fill="#334155" text-anchor="start">
|
|
46
|
+
<tspan>
|
|
47
|
+
{{mark}}
|
|
48
|
+
</tspan>
|
|
49
|
+
<tspan fill="#64748B" font-size="14" font-weight="500">از 144</tspan>
|
|
50
|
+
</text>
|
|
51
|
+
{{/if}}
|
|
52
|
+
<g transform="translate(389, {{ternary (boolean item.length '===' 4) 12 28}})">
|
|
53
|
+
{{#each subs as |sub i|}}
|
|
54
|
+
<g transform="translate(0, {{math i '*' 32}})">
|
|
55
|
+
{{bar 250 16 (object tl=0 bl=0 tr=2 br=2) (toRad 0) fill='#E2E8F080' clip-path="url(#cobar)"}}
|
|
56
|
+
</g>
|
|
57
|
+
{{/each}}
|
|
58
|
+
</g>
|
|
59
|
+
</g>
|
|
60
|
+
{{/each}}
|
|
61
|
+
</g>
|
|
62
|
+
<line x1="451.25" y1="40.5" x2="451.25" y2="{{ternary (boolean groups.length '==' 3) '495.5' '647.5'}}" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="5.5 5.5"/>
|
|
63
|
+
<line x1="513.25" y1="40.5" x2="513.25" y2="{{ternary (boolean groups.length '==' 3) '495.5' '647.5'}}" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="5.5 5.5"/>
|
|
64
|
+
<line x1="576.25" y1="40.5" x2="576.25" y2="{{ternary (boolean groups.length '==' 3) '495.5' '647.5'}}" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="5.5 5.5"/>
|
|
65
|
+
<line x1="638.25" y1="40.5" x2="638.25" y2="{{ternary (boolean groups.length '==' 3) '495.5' '647.5'}}" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="5.5 5.5"/>
|
|
66
|
+
<rect x="709" width="1" height="{{ternary (boolean groups.length '==' 3) 496 648}}" fill="#F1F5F9"/>
|
|
67
|
+
<text x="387.5" y="24" font-size="12" font-weight="400" dy=".3em" fill="#94A3B8" text-anchor="middle">0</text>
|
|
68
|
+
<text x="514.5" y="24" font-size="12" font-weight="400" dy=".3em" fill="#94A3B8" text-anchor="middle">50 ٪</text>
|
|
69
|
+
<text x="637" y="24" font-size="12" font-weight="400" dy=".3em" fill="#94A3B8" text-anchor="middle">100 ٪</text>
|
|
70
|
+
<text x="754" y="27" font-size="12" font-weight="500" dy=".3em" fill="#64748B" text-anchor="middle">ردهبندی</text>
|
|
71
|
+
<text x="677" y="13" font-size="12" font-weight="500" dy=".3em" fill="#64748B" text-anchor="middle">نمره خام</text>
|
|
72
|
+
<text x="677" y="27" font-size="12" font-weight="500" dy=".3em" fill="#64748B" text-anchor="middle">از 36</text>
|
|
73
|
+
|
|
74
|
+
<g transform="translate(0, 48)">
|
|
75
|
+
{{#each groups as |item index|}}
|
|
76
|
+
{{setVar "color" (ternary (even index) ../colors.bars.[0] ../colors.bars.[1])}}
|
|
77
|
+
<g transform="translate(0, {{math index '*' 152}})">
|
|
78
|
+
<g transform="translate(389, {{ternary (boolean item.length '===' 4) 12 28}})">
|
|
79
|
+
{{#each subs as |sub i|}}
|
|
80
|
+
<g transform="translate(0, {{math i '*' 32}})">
|
|
81
|
+
{{bar (math percentage '*' 250) 16 (object tl=0 bl=0 tr=2 br=2) (toRad 0) fill=../bg}}
|
|
82
|
+
<text x="-9" y="9" font-size="13" font-weight="400" dy=".3em" fill="#475569" text-anchor="start">{{sub.label.fa}}</text>
|
|
83
|
+
<rect x="270" y="-.5" width="36" height="17" rx="4" fill="none" stroke="{{../color.[3]}}" />
|
|
84
|
+
<text x="288" y="9" font-size="13" font-weight="500" dy=".3em" fill="{{../color.[2]}}" text-anchor="middle">{{sub.mark}}</text>
|
|
85
|
+
<text x="366" y="9" font-size="12" font-weight="400" dy=".3em" fill="#64748B" text-anchor="middle">{{sub.levelText}}</text>
|
|
86
|
+
{{#if (boolean percentage '>' 0.24)}}
|
|
87
|
+
<text x="{{math (math percentage '*' 250) '-' 4}}" y="9" font-size="13" font-weight="500" dy=".3em" fill="#FFFFFF" text-anchor="start">{{sub.percentageText}} ٪</text>
|
|
88
|
+
{{else}}
|
|
89
|
+
<text x="{{math (math percentage '*' 250) '+' 6}}" y="9" font-size="13" font-weight="500" dy=".3em" fill="{{../color.[1]}}" text-anchor="end">{{sub.percentageText}} ٪</text>
|
|
90
|
+
{{/if}}
|
|
91
|
+
</g>
|
|
92
|
+
{{/each}}
|
|
93
|
+
</g>
|
|
94
|
+
</g>
|
|
95
|
+
{{/each}}
|
|
96
|
+
</g>
|
|
97
|
+
<g opacity="0.5" filter="url(#split)" transform="translate(386, 37.5)">
|
|
98
|
+
<line x1="2.5" y1="3.5" x2="2.5" y2="{{ternary (boolean groups.length '==' 3) 458.5 610.5}}" stroke="white" stroke-linecap="round"/>
|
|
99
|
+
</g>
|
|
100
|
+
</g>
|
|
101
|
+
</g>
|
|
102
|
+
|
|
103
|
+
{{/layout}}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
{{#> layout}}
|
|
2
|
+
<defs>
|
|
3
|
+
<filter id="row" x="0" y="0" width="300.002" height="7" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
|
4
|
+
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
|
5
|
+
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
|
6
|
+
<feOffset dy="-1"/>
|
|
7
|
+
<feGaussianBlur stdDeviation="1.5"/>
|
|
8
|
+
<feComposite in2="hardAlpha" operator="out"/>
|
|
9
|
+
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/>
|
|
10
|
+
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_4762_129675"/>
|
|
11
|
+
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_4762_129675" result="shape"/>
|
|
12
|
+
</filter>
|
|
13
|
+
<clipPath id="bg-h">
|
|
14
|
+
{{bar 28 300 (object tr=4 tl=4 br=0 bl=0) (toRad 0) fill='#F8FAFC'}}
|
|
15
|
+
</clipPath>
|
|
16
|
+
<clipPath id="gu">
|
|
17
|
+
{{gauge 70 (math 70 '*' 0.7) (object tl=6 tr=6 bl=6 br=6) (object start=groups.[0].circle.circle.angles.start end=groups.[0].circle.circle.angles.end) direction fill='#F1F5F9'}}
|
|
18
|
+
</clipPath>
|
|
19
|
+
{{#each colors as |color index|}}
|
|
20
|
+
<linearGradient id="h-{{index}}" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
21
|
+
<stop offset="0" stop-color="{{color.[0]}}"/>
|
|
22
|
+
<stop offset="1" stop-color="{{color.[1]}}" />
|
|
23
|
+
</linearGradient>
|
|
24
|
+
<linearGradient id="c-{{index}}" x1="140" y1="0" x2="0" y2="140" gradientUnits="userSpaceOnUse">
|
|
25
|
+
<stop stop-color="{{color.[2]}}"/>
|
|
26
|
+
<stop offset="0.5" stop-color="{{color.[0]}}"/>
|
|
27
|
+
<stop offset="1" stop-color="{{color.[0]}}"/>
|
|
28
|
+
</linearGradient>
|
|
29
|
+
{{/each}}
|
|
30
|
+
</defs>
|
|
31
|
+
<g transform="translate({{spec.profile.padding.x}}, {{spec.profile.padding.y}})">
|
|
32
|
+
<text x="0" y="31" font-size="12" font-weight="400" text-anchor="end" dy=".85em" fill="#94A3B8">نمره خام</text>
|
|
33
|
+
<path d="M 45.5 39 l 7 0 m 0 0 l -3 -3 m 3 3 l -3 3" stroke="#94A3B8" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round"/>
|
|
34
|
+
{{#with groups.[0]}}
|
|
35
|
+
<g transform="translate(0, 0)">
|
|
36
|
+
<g transform="translate(29, 31)">
|
|
37
|
+
<g transform="translate(77, 27)">
|
|
38
|
+
{{#each items as |factor fi|}}
|
|
39
|
+
<g transform="translate({{math 76 '*' fi}}, 0)">
|
|
40
|
+
<text x="14" y="-19" text-anchor="middle" dy=".3em" fill="#64748B" direction="ltr">
|
|
41
|
+
<tspan fill="#4F46E5" font-size="16" font-weight="700">
|
|
42
|
+
{{mark}}
|
|
43
|
+
</tspan>
|
|
44
|
+
<tspan font-size="12" font-weight="300">/</tspan>
|
|
45
|
+
<tspan font-size="13" font-weight="400">{{label.max}}</tspan>
|
|
46
|
+
</text>
|
|
47
|
+
<text x="14" y="321" font-size="14" font-weight="400" text-anchor="middle" dy=".3em" fill="#334155">{{label.fr}}</text>
|
|
48
|
+
{{bar 28 300 (object tr=4 tl=4 br=0 bl=0) (toRad 0) fill='#F8FAFC'}}
|
|
49
|
+
</g>
|
|
50
|
+
{{/each}}
|
|
51
|
+
</g>
|
|
52
|
+
<g transform="translate(0, 27)">
|
|
53
|
+
<line x1="40" y1="1" x2="294" y2="1" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
54
|
+
<text x="0" font-size="12" font-weight="400" text-anchor="end" dy=".85em" fill="#94A3B8">۱۰۰ ٪</text>
|
|
55
|
+
<line x1="40" y1="76" x2="294" y2="76" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
56
|
+
<line x1="40" y1="151" x2="294" y2="151" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
57
|
+
<text x="0" y="150" font-size="12" font-weight="400" text-anchor="end" dy=".3em" fill="#94A3B8">۵۰ ٪</text>
|
|
58
|
+
<line x1="40" y1="226" x2="294" y2="226" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
59
|
+
</g>
|
|
60
|
+
<g transform="translate(77, 27)">
|
|
61
|
+
{{#each items as |factor fi|}}
|
|
62
|
+
<g transform="translate({{math 76 '*' fi}}, {{math 300 '-' (math factor.percentage '*' 300)}})">
|
|
63
|
+
{{bar 28 (math factor.percentage '*' 300) (object tr=4 tl=4 br=0 bl=0) (toRad 0) fill=../colors.[3] clip-path="url(#bg-h)"}}
|
|
64
|
+
<text y="14" x="{{ternary (boolean factor.percentageText '<=' 24) '8' '-8'}}" font-size="16" font-weight="600" text-anchor="{{ternary (boolean factor.percentageText '<=' 24) 'end' 'start'}}" dy=".3em" fill="{{ternary (boolean factor.percentageText '<=' 24) ../colors.[0] '#FFFFFF'}}" transform="translate(0,0) rotate(-90 0 0)" >{{percentageText}} ٪</text>
|
|
65
|
+
</g>
|
|
66
|
+
{{/each}}
|
|
67
|
+
</g>
|
|
68
|
+
</g>
|
|
69
|
+
<g opacity="0.5" filter="url(#row)" transform="translate(26,354)">
|
|
70
|
+
<line x1="3.5" y1="4.5" x2="296.502" y2="4.5" stroke="white" stroke-linecap="round"/>
|
|
71
|
+
</g>
|
|
72
|
+
<g transform="translate(125.5, 444)">
|
|
73
|
+
<g transform="translate(70, 70)">
|
|
74
|
+
{{gauge 70 (math 70 '*' 0.7) (object tl=6 tr=6 bl=6 br=6) (object start=circle.circle.angles.start end=circle.circle.angles.end) direction fill='#F1F5F9'}}
|
|
75
|
+
{{gauge 70 (math 70 '*' 0.7) (object tl=6 tr=0 bl=6 br=0) (object start=circle.circle.angles.start end=circle.zeta) direction fill=colors.[4] clip-path='url(#gu)'}}
|
|
76
|
+
<text x="0" y="-21" font-size="24" font-weight="600" text-anchor="middle" dy=".85em" fill="{{colors.[0]}}">{{total.percentageText}} ٪</text>
|
|
77
|
+
<text x="0" y="11" font-size="15" font-weight="500" text-anchor="middle" dy=".85em" fill="#64748B">{{total.mark}} از {{total.label.max}}</text>
|
|
78
|
+
<text x="-11" y="-59.5" font-size="14" font-weight="500" text-anchor="middle" dy=".3em" fill="#64748B">0</text>
|
|
79
|
+
<text x="-59.5" y="-12.5" font-size="14" font-weight="500" text-anchor="middle" dy=".3em" fill="#64748B">100 ٪</text>
|
|
80
|
+
</g>
|
|
81
|
+
<text x="70" y="167.5" font-size="16" font-weight="500" text-anchor="middle" dy=".3em" fill="#475569">{{total.label.fr}}</text>
|
|
82
|
+
</g>
|
|
83
|
+
</g>
|
|
84
|
+
{{/with}}
|
|
85
|
+
|
|
86
|
+
<text x="776" y="31" font-size="12" font-weight="400" text-anchor="start" dy=".85em" fill="#94A3B8">نمره خام</text>
|
|
87
|
+
<path d="M 730.5 39 l -7 0 m 0 0 l 3 3 m -3 -3 l 3 -3" stroke="#94A3B8" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round"/>
|
|
88
|
+
{{#with groups.[1]}}
|
|
89
|
+
<g transform="translate(388, 0)">
|
|
90
|
+
<g transform="translate(29, 31)">
|
|
91
|
+
<g transform="translate(73, 27)">
|
|
92
|
+
{{#each items as |factor fi|}}
|
|
93
|
+
<g transform="translate({{math 76 '*' fi}}, 0)">
|
|
94
|
+
<text x="14" y="-19" text-anchor="middle" dy=".3em" fill="#64748B" direction="ltr">
|
|
95
|
+
<tspan fill="#4F46E5" font-size="16" font-weight="700">
|
|
96
|
+
{{mark}}
|
|
97
|
+
</tspan>
|
|
98
|
+
<tspan font-size="12" font-weight="300">/</tspan>
|
|
99
|
+
<tspan font-size="13" font-weight="400">{{label.max}}</tspan>
|
|
100
|
+
</text>
|
|
101
|
+
<text x="14" y="321" font-size="14" font-weight="400" text-anchor="middle" dy=".3em" fill="#334155">{{label.fr}}</text>
|
|
102
|
+
{{bar 28 300 (object tr=4 tl=4 br=0 bl=0) (toRad 0) fill='#F8FAFC'}}
|
|
103
|
+
</g>
|
|
104
|
+
{{/each}}
|
|
105
|
+
</g>
|
|
106
|
+
<g transform="translate(-4, 27)">
|
|
107
|
+
<line x1="40" y1="1" x2="294" y2="1" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
108
|
+
<text x="333" font-size="12" font-weight="400" text-anchor="start" dy=".85em" fill="#94A3B8">۱۰۰ ٪</text>
|
|
109
|
+
<line x1="40" y1="76" x2="294" y2="76" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
110
|
+
<line x1="40" y1="151" x2="294" y2="151" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
111
|
+
<text x="333" y="150" font-size="12" font-weight="400" text-anchor="start" dy=".3em" fill="#94A3B8">۵۰ ٪</text>
|
|
112
|
+
<line x1="40" y1="226" x2="294" y2="226" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
113
|
+
</g>
|
|
114
|
+
<g transform="translate(73, 27)">
|
|
115
|
+
{{#each items as |factor fi|}}
|
|
116
|
+
<g transform="translate({{math 76 '*' fi}}, {{math 300 '-' (math factor.percentage '*' 300)}})">
|
|
117
|
+
{{bar 28 (math factor.percentage '*' 300) (object tr=4 tl=4 br=0 bl=0) (toRad 0) fill=../colors.[3] clip-path="url(#bg-h)"}}
|
|
118
|
+
<text y="14" x="{{ternary (boolean factor.percentageText '<=' 24) '8' '-8'}}" font-size="16" font-weight="600" text-anchor="{{ternary (boolean factor.percentageText '<=' 24) 'end' 'start'}}" dy=".3em" fill="{{ternary (boolean factor.percentageText '<=' 24) ../colors.[0] '#FFFFFF'}}" transform="translate(0,0) rotate(-90 0 0)" >{{percentageText}} ٪</text>
|
|
119
|
+
</g>
|
|
120
|
+
{{/each}}
|
|
121
|
+
</g>
|
|
122
|
+
</g>
|
|
123
|
+
<g opacity="0.5" filter="url(#row)" transform="translate(62,354)">
|
|
124
|
+
<line x1="3.5" y1="4.5" x2="296.502" y2="4.5" stroke="white" stroke-linecap="round"/>
|
|
125
|
+
</g>
|
|
126
|
+
<g transform="translate(125.5, 444)">
|
|
127
|
+
<g transform="translate(70, 70)">
|
|
128
|
+
{{gauge 70 (math 70 '*' 0.7) (object tl=6 tr=6 bl=6 br=6) (object start=circle.circle.angles.start end=circle.circle.angles.end) direction fill='#F1F5F9'}}
|
|
129
|
+
{{gauge 70 (math 70 '*' 0.7) (object tl=6 tr=0 bl=6 br=0) (object start=circle.circle.angles.start end=circle.zeta) direction fill=colors.[4] clip-path='url(#gu)'}}
|
|
130
|
+
<text x="0" y="-21" font-size="24" font-weight="600" text-anchor="middle" dy=".85em" fill="{{colors.[0]}}">{{total.percentageText}} ٪</text>
|
|
131
|
+
<text x="0" y="11" font-size="15" font-weight="500" text-anchor="middle" dy=".85em" fill="#64748B">{{total.mark}} از {{total.label.max}}</text>
|
|
132
|
+
<text x="-11" y="-59.5" font-size="14" font-weight="500" text-anchor="middle" dy=".3em" fill="#64748B">0</text>
|
|
133
|
+
<text x="-59.5" y="-12.5" font-size="14" font-weight="500" text-anchor="middle" dy=".3em" fill="#64748B">100 ٪</text>
|
|
134
|
+
</g>
|
|
135
|
+
<text x="70" y="167.5" font-size="16" font-weight="500" text-anchor="middle" dy=".3em" fill="#475569">{{total.label.fr}}</text>
|
|
136
|
+
</g>
|
|
137
|
+
</g>
|
|
138
|
+
{{/with}}
|
|
139
|
+
|
|
140
|
+
<rect x="387" width="1" height="654" rx="0.5" fill="#E2E8F0"/>
|
|
141
|
+
</g>
|
|
142
|
+
{{/layout}}
|