@baravak/risloo-profile-cli 3.1.1 → 3.2.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/importPartials.js +1 -1
- package/src/publish/json/profiles/JLHSQ93.json +1 -0
- package/src/publish/json/profiles/PMCIEF93.json +9293 -1
- package/src/samples/JLHSQ93.js +64 -0
- package/src/samples/JPFQ93.js +13 -13
- package/src/samples/PMCIEF93.js +219 -15
- package/views/profiles/samples/FACES93_1.hbs +1 -88
- package/views/profiles/samples/FACES93_1_partial.hbs +89 -0
- package/views/profiles/samples/FACES93_2.hbs +2 -33
- package/views/profiles/samples/FACES93_2_1_partial.hbs +20 -0
- package/views/profiles/samples/FACES93_2_2_partial.hbs +13 -0
- package/views/profiles/samples/JLHSQ93.hbs +43 -0
- package/views/profiles/samples/JPFQ93.hbs +1 -40
- package/views/profiles/samples/JPFQ93_partial.hbs +27 -0
- package/views/profiles/samples/PMCIEF93.hbs +345 -2
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
const { Profile, FS } = require("../Profile");
|
|
2
|
+
|
|
3
|
+
class JLHSQ93 extends Profile {
|
|
4
|
+
// Number of pages
|
|
5
|
+
static pages = 1;
|
|
6
|
+
|
|
7
|
+
// Labels of the sample
|
|
8
|
+
labels = {
|
|
9
|
+
L1: { eng: "raw", fr: "نمره خام", max:240},
|
|
10
|
+
L2: { eng: "nutrition", fr: "تغذیه" , max:70},
|
|
11
|
+
L3: { eng: "sleep", fr: "خواب" , max:62},
|
|
12
|
+
L4: { eng: "sport", fr: "ورزش" , max:16},
|
|
13
|
+
L5: { eng: "awareness", fr: "هشیاری" , max:22},
|
|
14
|
+
L6: { eng: "conflict_stress", fr: "تعارض/ استرس" , max:16},
|
|
15
|
+
L7: { eng: "affection_management", fr: "مدیریت عاطفی" , max:16},
|
|
16
|
+
L8: { eng: "security", fr: "امنیت" , max:14},
|
|
17
|
+
L9: { eng: "disease_prevention", fr: "پیشگیری از بیماری" , max:10},
|
|
18
|
+
L10: { eng: "god_relation", fr: "رابطه با خدا" , max:14},
|
|
19
|
+
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
profileSpec = {
|
|
23
|
+
/* "sample" determines some important info about the sample and profile */
|
|
24
|
+
/* Default prerequisites: 1. gender, 2. age, 3. education */
|
|
25
|
+
/* "prerequisites" is synonym to "fields" in our program */
|
|
26
|
+
sample: {
|
|
27
|
+
name: "پرسشنامه بررسی سبک زندگی و سلامت" /* Name of the sample */,
|
|
28
|
+
multiProfile: false /* Whether the sample has multiple profiles or not */,
|
|
29
|
+
questions: false /* Determines whether to get questions from inital dataset or not */,
|
|
30
|
+
defaultFields: true /* Determines whether to have default prerequisites in the profile or not */,
|
|
31
|
+
fields: [] /* In case you want to get some additional fields and show in the profile */,
|
|
32
|
+
},
|
|
33
|
+
/* "profile" determines the dimensions of the drawn profile (to be used in svg tag viewbox) */
|
|
34
|
+
/* calculating its dimensions carefully is of great importance */
|
|
35
|
+
profile: {
|
|
36
|
+
get dimensions() {
|
|
37
|
+
return {
|
|
38
|
+
width: 702 + 2 * this.padding.x,
|
|
39
|
+
height: 518 + 2 * this.padding.y,
|
|
40
|
+
};
|
|
41
|
+
},
|
|
42
|
+
padding: {
|
|
43
|
+
x: 100.5,
|
|
44
|
+
y: 58,
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
/* "labels" part which has to be provided for each profile */
|
|
48
|
+
labels: Object.values(this.labels),
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
constructor(dataset, options, config = {}) {
|
|
52
|
+
super();
|
|
53
|
+
this._init(dataset, options, config);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
_calcContext() {
|
|
57
|
+
const { dataset } = this
|
|
58
|
+
const raw = dataset.score[0]
|
|
59
|
+
const factors = dataset.score.slice(1)
|
|
60
|
+
return [{ raw, factors}];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
module.exports = JLHSQ93;
|
package/src/samples/JPFQ93.js
CHANGED
|
@@ -6,16 +6,16 @@ class JPFQ93 extends Profile {
|
|
|
6
6
|
|
|
7
7
|
// Labels of the sample
|
|
8
8
|
labels = {
|
|
9
|
-
L1: { eng: "identity", fr: "هویت", fill:"#8B5CF6 ", background:"#EDE9FE", width: 69},
|
|
10
|
-
L2: { eng: "intimacy", fr: "صمیمیت" , fill:"#8B5CF6 ", background:"#EDE9FE", width: 33},
|
|
11
|
-
L3: { eng: "empathy", fr: "همدلی" , fill:"#8B5CF6 ", background:"#EDE9FE", width: 33},
|
|
12
|
-
L4: { eng: "self_direction", fr: "خودراهبری" , fill:"#8B5CF6 ", background:"#EDE9FE", width: 30},
|
|
9
|
+
L1: { eng: "identity", fr: "هویت", fill:"#8B5CF6 ", background:"#EDE9FE", fontColor:"#7C3AED", width: 69},
|
|
10
|
+
L2: { eng: "intimacy", fr: "صمیمیت" , fill:"#8B5CF6 ", background:"#EDE9FE", fontColor:"#7C3AED", width: 33},
|
|
11
|
+
L3: { eng: "empathy", fr: "همدلی" , fill:"#8B5CF6 ", background:"#EDE9FE", fontColor:"#7C3AED", width: 33},
|
|
12
|
+
L4: { eng: "self_direction", fr: "خودراهبری" , fill:"#8B5CF6 ", background:"#EDE9FE", fontColor:"#7C3AED", width: 30},
|
|
13
13
|
|
|
14
|
-
L5: { eng: "psychoticism", fr: "سایکوزگرایی", fill:"#EC4899 ", background:"#FCE7F3", width: 33},
|
|
15
|
-
L6: { eng: "detachment", fr: "دلبریدگی", fill:"#EC4899 ", background:"#FCE7F3", width: 27},
|
|
16
|
-
L7: { eng: "disinhibition", fr: "مهارگسیختگی", fill:"#EC4899 ", background:"#FCE7F3", width: 66},
|
|
17
|
-
L8: { eng: "negative_affectivity", fr: "عاطفهپذیری منفی", fill:"#EC4899 ", background:"#FCE7F3", width: 45},
|
|
18
|
-
L9: { eng: "antagonism", fr: "تضادورزی", fill:"#EC4899 ", background:"#FCE7F3", width: 42},
|
|
14
|
+
L5: { eng: "psychoticism", fr: "سایکوزگرایی", fill:"#EC4899 ", background:"#FCE7F3", fontColor:"#DB2777", width: 33},
|
|
15
|
+
L6: { eng: "detachment", fr: "دلبریدگی", fill:"#EC4899 ", background:"#FCE7F3", fontColor:"#DB2777", width: 27},
|
|
16
|
+
L7: { eng: "disinhibition", fr: "مهارگسیختگی", fill:"#EC4899 ", background:"#FCE7F3", fontColor:"#DB2777", width: 66},
|
|
17
|
+
L8: { eng: "negative_affectivity", fr: "عاطفهپذیری منفی", fill:"#EC4899 ", background:"#FCE7F3", fontColor:"#DB2777", width: 45},
|
|
18
|
+
L9: { eng: "antagonism", fr: "تضادورزی", fill:"#EC4899 ", background:"#FCE7F3", fontColor:"#DB2777", width: 42},
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
profileSpec = {
|
|
@@ -34,13 +34,13 @@ class JPFQ93 extends Profile {
|
|
|
34
34
|
profile: {
|
|
35
35
|
get dimensions() {
|
|
36
36
|
return {
|
|
37
|
-
width:
|
|
38
|
-
height:
|
|
37
|
+
width: 735 + 2 * this.padding.x,
|
|
38
|
+
height: 456 + 2 * this.padding.y,
|
|
39
39
|
};
|
|
40
40
|
},
|
|
41
41
|
padding: {
|
|
42
|
-
x:
|
|
43
|
-
y:
|
|
42
|
+
x: 84,
|
|
43
|
+
y: 89,
|
|
44
44
|
},
|
|
45
45
|
},
|
|
46
46
|
/* "labels" part which has to be provided for each profile */
|
package/src/samples/PMCIEF93.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
const { Profile, FS } = require("../Profile");
|
|
2
|
+
const JPFQ93 = require("./JPFQ93");
|
|
3
|
+
const FACES93 = require("./FACES93");
|
|
4
|
+
const Handlebars = require("handlebars");
|
|
2
5
|
|
|
3
6
|
class PMCIEF93 extends Profile {
|
|
4
7
|
// Number of pages
|
|
@@ -6,9 +9,100 @@ class PMCIEF93 extends Profile {
|
|
|
6
9
|
|
|
7
10
|
// Labels of the sample
|
|
8
11
|
labels = {
|
|
9
|
-
L1: {
|
|
10
|
-
L2: {
|
|
11
|
-
|
|
12
|
+
L1 : {"eng" : "axis_2_raw", "fr" : ""},
|
|
13
|
+
L2 : {"eng" : "axis_2_percentage", "fr" : ""},
|
|
14
|
+
|
|
15
|
+
L3 : {"eng" : "axis_3_raw", "fr" : ""},
|
|
16
|
+
L4 : {"eng" : "axis_3_percentage", "fr" : ""},
|
|
17
|
+
|
|
18
|
+
L5 : {"eng" : "axis_3_selection_raw", "fr" : "", max:76},
|
|
19
|
+
L6 : {"eng" : "axis_3_selection_percentage", "fr" : ""},
|
|
20
|
+
|
|
21
|
+
L7 : {"eng" : "axis_3_selection_demographic_raw", "fr" : "جمعیتشناختی", max:14},
|
|
22
|
+
L8 : {"eng" : "axis_3_selection_demographic_percentage", "fr" : ""},
|
|
23
|
+
L9 : {"eng" : "axis_3_selection_partner_family_raw", "fr" : "خانواده مقابل", max:8},
|
|
24
|
+
L10 : {"eng" : "axis_3_selection_partner_family_percentage", "fr" : ""},
|
|
25
|
+
L11 : {"eng" : "axis_3_selection_belief_raw", "fr" : "شناختی - اعتقادی", max:8},
|
|
26
|
+
L12 : {"eng" : "axis_3_selection_belief_percentage", "fr" : ""},
|
|
27
|
+
L13 : {"eng" : "axis_3_selection_personality_raw", "fr" : "شخصیتی - اخلاقی", max:34},
|
|
28
|
+
L14 : {"eng" : "axis_3_selection_personality_percentage", "fr" : ""},
|
|
29
|
+
L15 : {"eng" : "axis_3_selection_negative_raw", "fr" : "سلبی", max:16},
|
|
30
|
+
L16 : {"eng" : "axis_3_selection_negative_percentage", "fr" : ""},
|
|
31
|
+
|
|
32
|
+
L17 : {"eng" : "axis_3_intention_raw", "fr" : ""},
|
|
33
|
+
L18 : {"eng" : "axis_3_intention_percentage", "fr" : ""},
|
|
34
|
+
|
|
35
|
+
L19 : {"eng" : "mibq_raw", "fr" : "", max:216},
|
|
36
|
+
L20 : {"eng" : "mibq_percentage", "fr" : ""},
|
|
37
|
+
L21 : {"eng" : "mibq_unrealistic_expectations", "fr" : "توقعات\nنامعقول", max:76, bg:'#EAB308', color: '#A16207'},
|
|
38
|
+
L22 : {"eng" : "mibq_negativity", "fr" : "منفیبافی", max:35, bg:'#6366F1', color: '#4F46E5'},
|
|
39
|
+
L23 : {"eng" : "mibq_extreme_optimism", "fr" : "خوشبینی\nافراطی", max:52, bg:'#14B8A6', color: '#0D9488'},
|
|
40
|
+
L24 : {"eng" : "mibq_perfectionism", "fr" : "کامل\nخواهی", max:36, bg:'#A855F7', color: '#9333EA'},
|
|
41
|
+
L25 : {"eng" : "mibq_negative_self_belief", "fr" : "خودباوری\nمنفی", max:20, bg:'#F43F5E', color: '#E11D48'},
|
|
42
|
+
|
|
43
|
+
L26 : {"eng" : "axis_5_raw", "fr" : ""},
|
|
44
|
+
L27 : {"eng" : "axis_5_percentage", "fr" : ""},
|
|
45
|
+
L28 : {"eng" : "axis_5_spirituality", "fr" : "معنویت", color:"#007BA4"},
|
|
46
|
+
L29 : {"eng" : "axis_5_control", "fr" : "کنترل", color:"#F59E0B"},
|
|
47
|
+
L30 : {"eng" : "axis_5_pleasure", "fr" : "لذت", color:"#EC4899"},
|
|
48
|
+
L31 : {"eng" : "axis_5_safety", "fr" : "امنیت", color:"#10B981"},
|
|
49
|
+
L32 : {"eng" : "axis_5_social_status", "fr" : "منزلت اجتماعی", color:"#A78BFA"},
|
|
50
|
+
|
|
51
|
+
L33 : {"eng" : "faces_a", "fr" : ""},
|
|
52
|
+
L34 : {"eng" : "faces_b", "fr" : ""},
|
|
53
|
+
L35 : {"eng" : "faces_c", "fr" : ""},
|
|
54
|
+
L36 : {"eng" : "faces_d", "fr" : ""},
|
|
55
|
+
L37 : {"eng" : "faces_e", "fr" : ""},
|
|
56
|
+
L38 : {"eng" : "faces_f", "fr" : ""},
|
|
57
|
+
L39 : {"eng" : "faces_communication", "fr" : ""},
|
|
58
|
+
L40 : {"eng" : "faces_satisfaction", "fr" : ""},
|
|
59
|
+
L41 : {"eng" : "faces_cohesion", "fr" : ""},
|
|
60
|
+
L42 : {"eng" : "faces_flexibility", "fr" : ""},
|
|
61
|
+
L43 : {"eng" : "faces_interpretation", "fr" : ""},
|
|
62
|
+
|
|
63
|
+
L44 : {"eng" : "pastq_raw", "fr" : "", max:140},
|
|
64
|
+
L45 : {"eng" : "pastq_authoritarian_family", "fr" : "خانواده سختگیر", max:32},
|
|
65
|
+
L46 : {"eng" : "pastq_authoritative_family", "fr" : "خانواده مقتدر", max:44},
|
|
66
|
+
L47 : {"eng" : "pastq_permissive_family", "fr" : "سهلگیر", max:12},
|
|
67
|
+
L48 : {"eng" : "pastq_neglectful_family", "fr" : "بیتفاوت", max:12},
|
|
68
|
+
L49 : {"eng" : "pastq_family_structure", "fr" : "شاخص ساخت خانوادگی", max:28},
|
|
69
|
+
|
|
70
|
+
L50 : {"eng" : "jpfq_identity", "fr" : ""},
|
|
71
|
+
L51 : {"eng" : "jpfq_self_direction", "fr" : ""},
|
|
72
|
+
L52 : {"eng" : "jpfq_empathy", "fr" : ""},
|
|
73
|
+
L53 : {"eng" : "jpfq_intimacy", "fr" : ""},
|
|
74
|
+
L54 : {"eng" : "jpfq_psychoticism", "fr" : ""},
|
|
75
|
+
L55 : {"eng" : "jpfq_detachment", "fr" : ""},
|
|
76
|
+
L56 : {"eng" : "jpfq_disinhibition", "fr" : ""},
|
|
77
|
+
L57 : {"eng" : "jpfq_negative_affectivity", "fr" : ""},
|
|
78
|
+
L58 : {"eng" : "jpfq_antagonism", "fr" : ""},
|
|
79
|
+
|
|
80
|
+
L59 : {"eng" : "axis_7_axis7_2_raw", "fr" : ""},
|
|
81
|
+
L60 : {"eng" : "axis_7_axis7_2_percentage", "fr" : ""},
|
|
82
|
+
L61 : {"eng" : "axis_7_axis7_2_hope", "fr" : "امید", max:24},
|
|
83
|
+
L62 : {"eng" : "axis_7_axis7_2_foresight", "fr" : "آیندهنگری", max:16},
|
|
84
|
+
L63 : {"eng" : "axis_7_axis7_2_proposing", "fr" : "نقشه زندگی", max:28},
|
|
85
|
+
L64 : {"eng" : "axis_7_axis7_2_competency", "fr" : "شایستگی", max:24},
|
|
86
|
+
L65 : {"eng" : "axis_7_axis7_2_identity", "fr" : "هویت", max: 48},
|
|
87
|
+
L66 : {"eng" : "axis_7_axis7_2_intimacy", "fr" : "صمیمت", max: 36},
|
|
88
|
+
|
|
89
|
+
L67 : {"eng" : "dswls_raw", "fr" : ""},
|
|
90
|
+
L68 : {"eng" : "dswls_percentage", "fr" : ""},
|
|
91
|
+
|
|
92
|
+
L69 : {"eng" : "axis_8_axis8_1_raw", "fr" : ""},
|
|
93
|
+
L70 : {"eng" : "axis_8_axis8_1_percentage", "fr" : ""},
|
|
94
|
+
L71 : {"eng" : "axis_8_axis8_1_physical_problem", "fr" : "مشکل جسمانی", max:28},
|
|
95
|
+
L72 : {"eng" : "axis_8_axis8_1_neurotic_problem", "fr" : "مشکل نوروتیک", max:28},
|
|
96
|
+
L73 : {"eng" : "axis_8_axis8_1_personality_disorder", "fr" : "اختلال شخصیت", max:24},
|
|
97
|
+
|
|
98
|
+
L74 : {"eng" : "alvvct_raw", "fr" : ""},
|
|
99
|
+
L75 : {"eng" : "alvvct_percentage", "fr" : ""},
|
|
100
|
+
L76 : {"eng" : "alvvct_theoretical", "fr" : "نظری"},
|
|
101
|
+
L77 : {"eng" : "alvvct_economic", "fr" : "اقتصادی"},
|
|
102
|
+
L78 : {"eng" : "alvvct_aesthetic", "fr" : "هنری"},
|
|
103
|
+
L79 : {"eng" : "alvvct_social", "fr" : "اجتماعی"},
|
|
104
|
+
L80 : {"eng" : "alvvct_political", "fr" : "سیاسی"},
|
|
105
|
+
L81 : {"eng" : "alvvct_religious", "fr" : "مذهبی"},
|
|
12
106
|
};
|
|
13
107
|
|
|
14
108
|
profileSpec = {
|
|
@@ -18,7 +112,7 @@ class PMCIEF93 extends Profile {
|
|
|
18
112
|
sample: {
|
|
19
113
|
name: "پرسشنامه ارزیابی مشاوره پیش از ازدواج فرم الف" /* Name of the sample */,
|
|
20
114
|
multiProfile: false /* Whether the sample has multiple profiles or not */,
|
|
21
|
-
questions:
|
|
115
|
+
questions: true /* Determines whether to get questions from inital dataset or not */,
|
|
22
116
|
defaultFields: true /* Determines whether to have default prerequisites in the profile or not */,
|
|
23
117
|
fields: ["family_role"] /* In case you want to get some additional fields and show in the profile */,
|
|
24
118
|
},
|
|
@@ -32,8 +126,8 @@ class PMCIEF93 extends Profile {
|
|
|
32
126
|
};
|
|
33
127
|
},
|
|
34
128
|
padding: {
|
|
35
|
-
x:
|
|
36
|
-
y:
|
|
129
|
+
x: 0,
|
|
130
|
+
y: 0,
|
|
37
131
|
},
|
|
38
132
|
},
|
|
39
133
|
/* "labels" part which has to be provided for each profile */
|
|
@@ -47,17 +141,127 @@ class PMCIEF93 extends Profile {
|
|
|
47
141
|
|
|
48
142
|
_calcContext() {
|
|
49
143
|
const { dataset } = this;
|
|
144
|
+
const [JPFQ93_Context] = new JPFQ93(
|
|
145
|
+
{
|
|
146
|
+
score: Object.fromEntries(dataset.score.slice(49, 58).map((s) =>[s.label.eng, s.mark])),
|
|
147
|
+
fields: dataset.info.fields,
|
|
148
|
+
},
|
|
149
|
+
{},
|
|
150
|
+
{
|
|
151
|
+
items: {
|
|
152
|
+
offsetY: 19,
|
|
153
|
+
widthCoeff: 9,
|
|
154
|
+
label: {
|
|
155
|
+
offsetX: 9,
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
gaugeItems: {
|
|
159
|
+
offsetX: 46,
|
|
160
|
+
circle: {
|
|
161
|
+
R: 16.5,
|
|
162
|
+
r: 12,
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
labelsPrefix: "jpfq",
|
|
166
|
+
}
|
|
167
|
+
).getTemplateEngineParams();
|
|
168
|
+
const axis_7_2_items = dataset.score.slice(58, 66)
|
|
169
|
+
const axis_7_2 = {
|
|
170
|
+
raw: axis_7_2_items[0],
|
|
171
|
+
percentage: axis_7_2_items[1],
|
|
172
|
+
items: axis_7_2_items.slice(2).map(i => {i.mark = i.mark || 0; return i})
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const axis_8_1_items = dataset.score.slice(68, 73)
|
|
176
|
+
const axis_8_1 = {
|
|
177
|
+
raw: axis_8_1_items[0],
|
|
178
|
+
percentage: axis_8_1_items[1],
|
|
179
|
+
items: axis_8_1_items.slice(2).map(i => {i.mark = i.mark || 0; return i}),
|
|
180
|
+
rStart:FS.toRadians(-90),
|
|
181
|
+
rEnd:FS.toRadians(-90)
|
|
182
|
+
}
|
|
183
|
+
const dswls= {
|
|
184
|
+
raw: dataset.score[66],
|
|
185
|
+
percentage: dataset.score[67]
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
const alvvct_items = dataset.score.slice(73, 81)
|
|
189
|
+
const alvvct = {
|
|
190
|
+
raw: alvvct_items[0],
|
|
191
|
+
percentage: alvvct_items[1],
|
|
192
|
+
items:alvvct_items.slice(2)
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const axis_3= {
|
|
196
|
+
raw:dataset.score[2],
|
|
197
|
+
percentage:dataset.score[3],
|
|
50
198
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
199
|
+
selection: {
|
|
200
|
+
raw:dataset.score[4],
|
|
201
|
+
percentage:dataset.score[5],
|
|
202
|
+
items: [dataset.score[6], dataset.score[8], dataset.score[10], dataset.score[12], dataset.score[14]]
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
dataset.questions.slice(26, 30).map(q => {
|
|
206
|
+
if(q.user_answered != '' && q.user_answered){
|
|
207
|
+
axis_3.selection.items[1].label.max += 2
|
|
208
|
+
axis_3.selection.raw.label.max += 2
|
|
209
|
+
}
|
|
210
|
+
})
|
|
211
|
+
const axis_3_intention = {
|
|
212
|
+
raw:dataset.score[16],
|
|
213
|
+
percentage:dataset.score[17],
|
|
214
|
+
}
|
|
59
215
|
|
|
60
|
-
|
|
216
|
+
const mibq_items = dataset.score.slice(18, 25)
|
|
217
|
+
const mibq = {
|
|
218
|
+
raw: mibq_items[0],
|
|
219
|
+
percentage: mibq_items[1],
|
|
220
|
+
items:mibq_items.slice(2)
|
|
221
|
+
}
|
|
222
|
+
const axis_5_items = dataset.score.slice(25, 32)
|
|
223
|
+
const axis_5 = {
|
|
224
|
+
raw: axis_5_items[0],
|
|
225
|
+
percentage: axis_5_items[1],
|
|
226
|
+
items:axis_5_items.slice(2)
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
const pastq_items = dataset.score.slice(43, 49)
|
|
230
|
+
const pastq = {
|
|
231
|
+
raw: pastq_items[0],
|
|
232
|
+
items:pastq_items.slice(1)
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
const [FACES93_Context_page1, FACES93_Context_page2] = new FACES93(
|
|
237
|
+
{
|
|
238
|
+
score: Object.fromEntries(dataset.score.slice(32, 43).map((s) =>[s.label.eng, s.mark])),
|
|
239
|
+
fields: dataset.info.fields,
|
|
240
|
+
},
|
|
241
|
+
{},
|
|
242
|
+
{
|
|
243
|
+
items: {
|
|
244
|
+
offsetY: 19,
|
|
245
|
+
widthCoeff: 9,
|
|
246
|
+
label: {
|
|
247
|
+
offsetX: 9,
|
|
248
|
+
},
|
|
249
|
+
},
|
|
250
|
+
gaugeItems: {
|
|
251
|
+
offsetX: 46,
|
|
252
|
+
circle: {
|
|
253
|
+
R: 16.5,
|
|
254
|
+
r: 12,
|
|
255
|
+
},
|
|
256
|
+
},
|
|
257
|
+
labelsPrefix: "faces",
|
|
258
|
+
}
|
|
259
|
+
).getTemplateEngineParams();
|
|
260
|
+
const axis_2 = {
|
|
261
|
+
raw: dataset.score[0],
|
|
262
|
+
percentage: dataset.score[1]
|
|
263
|
+
}
|
|
264
|
+
return [{ axis_2, pastq, FACES93_Context_page2, FACES93_Context_page1, axis_5, mibq, axis_3_intention, axis_3, alvvct, dswls, axis_8_1, axis_7_2, JPFQ93_Context }];
|
|
61
265
|
}
|
|
62
266
|
}
|
|
63
267
|
|
|
@@ -15,93 +15,6 @@
|
|
|
15
15
|
</defs>
|
|
16
16
|
|
|
17
17
|
<g transform="translate({{spec.profile.padding.[0].x}}, {{spec.profile.padding.[0].y}})">
|
|
18
|
-
|
|
19
|
-
<text x="0" y="12.5" font-size="16" font-weight="600" fill="#3F3F46" text-anchor="middle" transform="rotate(-90)" xml:space="preserve">انعطافپذیری: {{item.marks.flexibility}}</text>
|
|
20
|
-
<g transform="translate(0, -170)">
|
|
21
|
-
<text x="0" y="35" font-size="14" font-weight="400" fill="#71717A" text-anchor="start" transform="rotate(-90)">آشفته</text>
|
|
22
|
-
</g>
|
|
23
|
-
<g transform="translate(0, 160)">
|
|
24
|
-
<text x="0" y="35" font-size="14" font-weight="400" fill="#71717A" text-anchor="start" transform="rotate(-90)">خشک</text>
|
|
25
|
-
</g>
|
|
26
|
-
<line x1="50" y1="206" x2="50" y2="-192" stroke="#3F3F46" stroke-width="2" marker-end="url(#marker1)" />
|
|
27
|
-
</g>
|
|
28
|
-
<g transform="translate(427.5, 0)">
|
|
29
|
-
<text x="0" y="12.5" font-size="16" font-weight="600" fill="#3F3F46" text-anchor="middle" xml:space="preserve">انسجام: {{item.marks.cohesion}}</text>
|
|
30
|
-
<text x="-215" y="35" font-size="14" font-weight="400" fill="#71717A" text-anchor="start">از هم گسسته</text>
|
|
31
|
-
<text x="285" y="35" font-size="14" font-weight="400" fill="#71717A" text-anchor="start">در هم تنیده</text>
|
|
32
|
-
<line x1="-295" y1="50" x2="305" y2="50" stroke="#3F3F46" stroke-width="2" marker-end="url(#marker2)" />
|
|
33
|
-
</g>
|
|
34
|
-
<g transform="translate(132, 126)">
|
|
35
|
-
{{setVar "row1" (array "#FECACA" "#FEF9C3" "#FEF9C3" "#FEF9C3" "#FECACA")}}
|
|
36
|
-
{{setVar "row2" (array "#FEF9C3" "#D1FAE5" "#D1FAE5" "#D1FAE5" "#FEF9C3")}}
|
|
37
|
-
{{setVar "stops" (array 0 15 35 65 85 100)}}
|
|
38
|
-
{{setVar "fills" (array row1 row2 row2 row2 row1)}}
|
|
39
|
-
{{#forLoop 0 5 1}}
|
|
40
|
-
{{#with i as | j |}}
|
|
41
|
-
{{#forLoop 0 5 1}}
|
|
42
|
-
<rect x="{{math j '*' 120}}" y="{{math i '*' 80}}" width="120" height="80" fill="{{lookup (lookup @root.fills j) i}}" />
|
|
43
|
-
{{#if (boolean j '===' 4)}}
|
|
44
|
-
<text x="-20" y="{{math (math i '*' 80) '+' 10}}" font-size="12" font-weight="400" text-anchor="start" fill="#71717A">{{lookup (reverse @root.stops) i}}</text>
|
|
45
|
-
{{#if (boolean i '===' 4)}}
|
|
46
|
-
<text x="-20" y="{{math (math i '+' 1) '*' 80}}" font-size="12" font-weight="400" text-anchor="start" fill="#71717A">{{lookup (reverse @root.stops) (math i '+' 1)}}</text>
|
|
47
|
-
{{/if}}
|
|
48
|
-
{{#unless @first}}
|
|
49
|
-
<line x1="0" y1="{{math i '*' 80}}" x2="600" y2="{{math i '*' 80}}" stroke="#FFFFFF" />
|
|
50
|
-
{{/unless}}
|
|
51
|
-
{{/if}}
|
|
52
|
-
{{#if (boolean (boolean i '===' 2) '&&' (boolean j '===' 2))}}
|
|
53
|
-
<text x="{{math (math j '*' 120) '+' 60}}" y="{{math (math i '*' 80) '+' 40}}" font-size="14" font-weight="400" text-anchor="middle" fill="#A1A1AA" fill-opacity="0.6" dy="5">دمکراتیک</text>
|
|
54
|
-
{{/if}}
|
|
55
|
-
{{/forLoop}}
|
|
56
|
-
{{#if (boolean j '!==' 0)}}
|
|
57
|
-
<line x1="{{math j '*' 120}}" y1="0" x2="{{math j '*' 120}}" y2="400" stroke="#FFFFFF" />
|
|
58
|
-
{{/if}}
|
|
59
|
-
<text x="{{math j '*' 120}}" y="-20" font-size="12" font-weight="400" text-anchor="start" fill="#71717A">{{lookup @root.stops j}}</text>
|
|
60
|
-
{{#if (boolean j '===' 4)}}
|
|
61
|
-
<text x="{{math (math j '+' 1) '*' 120}}" y="-20" font-size="12" font-weight="400" text-anchor="start" fill="#71717A">{{lookup @root.stops (math j '+' 1)}}</text>
|
|
62
|
-
{{/if}}
|
|
63
|
-
{{/with}}
|
|
64
|
-
{{/forLoop}}
|
|
65
|
-
<rect x="240" y="160" width="120" height="80" fill="none" stroke="#000000" stroke-opacity="0.15" stroke-dasharray="4" />
|
|
66
|
-
|
|
67
|
-
<line x1="240" y1="160" x2="-30" y2="-20" stroke="#000000" stroke-opacity="0.15" stroke-dasharray="5" marker-end="url(#pointer1)" />
|
|
68
|
-
<line x1="240" y1="240" x2="-30" y2="420" stroke="#000000" stroke-opacity="0.15" stroke-dasharray="4" marker-end="url(#pointer2)" />
|
|
69
|
-
<line x1="360" y1="160" x2="630" y2="-20" stroke="#000000" stroke-opacity="0.15" stroke-dasharray="4" marker-end="url(#pointer3)" />
|
|
70
|
-
<line x1="360" y1="240" x2="630" y2="420" stroke="#000000" stroke-opacity="0.15" stroke-dasharray="4" marker-end="url(#pointer4)"/>
|
|
71
|
-
|
|
72
|
-
<g transform="translate(-50, -33.35)">
|
|
73
|
-
<text x="0" y="0" font-size="14" font-weight="400" text-anchor="start" fill="#A1A1AA" transform="rotate({{math (lookup angles 0) '+' 180}})" dy="3.5">بیخیال</text>
|
|
74
|
-
</g>
|
|
75
|
-
<g transform="translate(-50, 433.35)">
|
|
76
|
-
<text x="0" y="0" font-size="14" font-weight="400" text-anchor="start" fill="#A1A1AA" transform="rotate({{math (lookup angles 1) '+' 180}})" dy="3.5">طردکننده</text>
|
|
77
|
-
</g>
|
|
78
|
-
<g transform="translate(650, -33.35)">
|
|
79
|
-
<text x="0" y="0" font-size="14" font-weight="400" text-anchor="end" fill="#A1A1AA" transform="rotate({{lookup angles 2}})" dy="3.5">سهلگیر</text>
|
|
80
|
-
</g>
|
|
81
|
-
<g transform="translate(650, 433.35)">
|
|
82
|
-
<text x="0" y="0" font-size="14" font-weight="400" text-anchor="end" fill="#A1A1AA" transform="rotate({{lookup angles 3}})" dy="3.5">مستبد</text>
|
|
83
|
-
</g>
|
|
84
|
-
|
|
85
|
-
<g transform="translate(0, 400)">
|
|
86
|
-
<g transform="translate({{item.coords.x}}, -{{item.coords.y}})">
|
|
87
|
-
<circle cx="0" cy="0" r="2.5" fill="black" />
|
|
88
|
-
<circle cx="0" cy="0" r="7.5" fill="black" fill-opacity="0.3" />
|
|
89
|
-
</g>
|
|
90
|
-
</g>
|
|
91
|
-
</g>
|
|
92
|
-
<g transform="translate(578.5, 586)">
|
|
93
|
-
<g transform="translate(0, 0)">
|
|
94
|
-
<rect x="0" y="0" width="24" height="16" fill="#FECACA" />
|
|
95
|
-
<text x="-10" y="8" font-size="14" font-weight="400" fill="#71717A" text-anchor="start" dy="3">نامتعادل</text>
|
|
96
|
-
</g>
|
|
97
|
-
<g transform="translate(-124, 0)">
|
|
98
|
-
<rect x="0" y="0" width="24" height="16" fill="#FEF9C3" />
|
|
99
|
-
<text x="-10" y="8" font-size="14" font-weight="400" fill="#71717A" text-anchor="start" dy="3">نیمه متعادل</text>
|
|
100
|
-
</g>
|
|
101
|
-
<g transform="translate(-268, 0)">
|
|
102
|
-
<rect x="0" y="0" width="24" height="16" fill="#D1FAE5" />
|
|
103
|
-
<text x="-10" y="8" font-size="14" font-weight="400" fill="#71717A" text-anchor="start" dy="3">متعادل</text>
|
|
104
|
-
</g>
|
|
105
|
-
</g>
|
|
18
|
+
{{> FACES93_1_partial}}
|
|
106
19
|
</g>
|
|
107
20
|
{{/layout}}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{{setVar "angles" (array -146.3 146.3 -33.7 33.7)}}
|
|
2
|
+
<g transform="translate(0, 320)">
|
|
3
|
+
<text x="0" y="12.5" font-size="16" font-weight="600" fill="#3F3F46" text-anchor="middle" transform="rotate(-90)" xml:space="preserve">انعطافپذیری: {{item.marks.flexibility}}</text>
|
|
4
|
+
<g transform="translate(0, -170)">
|
|
5
|
+
<text x="0" y="35" font-size="14" font-weight="400" fill="#71717A" text-anchor="start" transform="rotate(-90)">آشفته</text>
|
|
6
|
+
</g>
|
|
7
|
+
<g transform="translate(0, 160)">
|
|
8
|
+
<text x="0" y="35" font-size="14" font-weight="400" fill="#71717A" text-anchor="start" transform="rotate(-90)">خشک</text>
|
|
9
|
+
</g>
|
|
10
|
+
<line x1="50" y1="206" x2="50" y2="-192" stroke="#3F3F46" stroke-width="2" marker-end="url(#marker1)" />
|
|
11
|
+
</g>
|
|
12
|
+
<g transform="translate(427.5, 0)">
|
|
13
|
+
<text x="0" y="12.5" font-size="16" font-weight="600" fill="#3F3F46" text-anchor="middle" xml:space="preserve">انسجام: {{item.marks.cohesion}}</text>
|
|
14
|
+
<text x="-215" y="35" font-size="14" font-weight="400" fill="#71717A" text-anchor="start">از هم گسسته</text>
|
|
15
|
+
<text x="285" y="35" font-size="14" font-weight="400" fill="#71717A" text-anchor="start">در هم تنیده</text>
|
|
16
|
+
<line x1="-295" y1="50" x2="305" y2="50" stroke="#3F3F46" stroke-width="2" marker-end="url(#marker2)" />
|
|
17
|
+
</g>
|
|
18
|
+
<g transform="translate(132, 126)">
|
|
19
|
+
{{setVar "row1" (array "#FECACA" "#FEF9C3" "#FEF9C3" "#FEF9C3" "#FECACA")}}
|
|
20
|
+
{{setVar "row2" (array "#FEF9C3" "#D1FAE5" "#D1FAE5" "#D1FAE5" "#FEF9C3")}}
|
|
21
|
+
{{setVar "stops" (array 0 15 35 65 85 100)}}
|
|
22
|
+
{{setVar "fills" (array row1 row2 row2 row2 row1)}}
|
|
23
|
+
{{#forLoop 0 5 1}}
|
|
24
|
+
{{#with i as | j |}}
|
|
25
|
+
{{#forLoop 0 5 1}}
|
|
26
|
+
<rect x="{{math j '*' 120}}" y="{{math i '*' 80}}" width="120" height="80" fill="{{lookup (lookup @root.fills j) i}}" />
|
|
27
|
+
{{#if (boolean j '===' 4)}}
|
|
28
|
+
<text x="-20" y="{{math (math i '*' 80) '+' 10}}" font-size="12" font-weight="400" text-anchor="start" fill="#71717A">{{lookup (reverse @root.stops) i}}</text>
|
|
29
|
+
{{#if (boolean i '===' 4)}}
|
|
30
|
+
<text x="-20" y="{{math (math i '+' 1) '*' 80}}" font-size="12" font-weight="400" text-anchor="start" fill="#71717A">{{lookup (reverse @root.stops) (math i '+' 1)}}</text>
|
|
31
|
+
{{/if}}
|
|
32
|
+
{{#unless @first}}
|
|
33
|
+
<line x1="0" y1="{{math i '*' 80}}" x2="600" y2="{{math i '*' 80}}" stroke="#FFFFFF" />
|
|
34
|
+
{{/unless}}
|
|
35
|
+
{{/if}}
|
|
36
|
+
{{#if (boolean (boolean i '===' 2) '&&' (boolean j '===' 2))}}
|
|
37
|
+
<text x="{{math (math j '*' 120) '+' 60}}" y="{{math (math i '*' 80) '+' 40}}" font-size="14" font-weight="400" text-anchor="middle" fill="#A1A1AA" fill-opacity="0.6" dy="5">دمکراتیک</text>
|
|
38
|
+
{{/if}}
|
|
39
|
+
{{/forLoop}}
|
|
40
|
+
{{#if (boolean j '!==' 0)}}
|
|
41
|
+
<line x1="{{math j '*' 120}}" y1="0" x2="{{math j '*' 120}}" y2="400" stroke="#FFFFFF" />
|
|
42
|
+
{{/if}}
|
|
43
|
+
<text x="{{math j '*' 120}}" y="-20" font-size="12" font-weight="400" text-anchor="start" fill="#71717A">{{lookup @root.stops j}}</text>
|
|
44
|
+
{{#if (boolean j '===' 4)}}
|
|
45
|
+
<text x="{{math (math j '+' 1) '*' 120}}" y="-20" font-size="12" font-weight="400" text-anchor="start" fill="#71717A">{{lookup @root.stops (math j '+' 1)}}</text>
|
|
46
|
+
{{/if}}
|
|
47
|
+
{{/with}}
|
|
48
|
+
{{/forLoop}}
|
|
49
|
+
<rect x="240" y="160" width="120" height="80" fill="none" stroke="#000000" stroke-opacity="0.15" stroke-dasharray="4" />
|
|
50
|
+
|
|
51
|
+
<line x1="240" y1="160" x2="-30" y2="-20" stroke="#000000" stroke-opacity="0.15" stroke-dasharray="5" marker-end="url(#pointer1)" />
|
|
52
|
+
<line x1="240" y1="240" x2="-30" y2="420" stroke="#000000" stroke-opacity="0.15" stroke-dasharray="4" marker-end="url(#pointer2)" />
|
|
53
|
+
<line x1="360" y1="160" x2="630" y2="-20" stroke="#000000" stroke-opacity="0.15" stroke-dasharray="4" marker-end="url(#pointer3)" />
|
|
54
|
+
<line x1="360" y1="240" x2="630" y2="420" stroke="#000000" stroke-opacity="0.15" stroke-dasharray="4" marker-end="url(#pointer4)"/>
|
|
55
|
+
|
|
56
|
+
<g transform="translate(-50, -33.35)">
|
|
57
|
+
<text x="0" y="0" font-size="14" font-weight="400" text-anchor="start" fill="#A1A1AA" transform="rotate({{math (lookup angles 0) '+' 180}})" dy="3.5">بیخیال</text>
|
|
58
|
+
</g>
|
|
59
|
+
<g transform="translate(-50, 433.35)">
|
|
60
|
+
<text x="0" y="0" font-size="14" font-weight="400" text-anchor="start" fill="#A1A1AA" transform="rotate({{math (lookup angles 1) '+' 180}})" dy="3.5">طردکننده</text>
|
|
61
|
+
</g>
|
|
62
|
+
<g transform="translate(650, -33.35)">
|
|
63
|
+
<text x="0" y="0" font-size="14" font-weight="400" text-anchor="end" fill="#A1A1AA" transform="rotate({{lookup angles 2}})" dy="3.5">سهلگیر</text>
|
|
64
|
+
</g>
|
|
65
|
+
<g transform="translate(650, 433.35)">
|
|
66
|
+
<text x="0" y="0" font-size="14" font-weight="400" text-anchor="end" fill="#A1A1AA" transform="rotate({{lookup angles 3}})" dy="3.5">مستبد</text>
|
|
67
|
+
</g>
|
|
68
|
+
|
|
69
|
+
<g transform="translate(0, 400)">
|
|
70
|
+
<g transform="translate({{item.coords.x}}, -{{item.coords.y}})">
|
|
71
|
+
<circle cx="0" cy="0" r="2.5" fill="black" />
|
|
72
|
+
<circle cx="0" cy="0" r="7.5" fill="black" fill-opacity="0.3" />
|
|
73
|
+
</g>
|
|
74
|
+
</g>
|
|
75
|
+
</g>
|
|
76
|
+
<g transform="translate(578.5, 586)">
|
|
77
|
+
<g transform="translate(0, 0)">
|
|
78
|
+
<rect x="0" y="0" width="24" height="16" fill="#FECACA" />
|
|
79
|
+
<text x="-10" y="8" font-size="14" font-weight="400" fill="#71717A" text-anchor="start" dy="3">نامتعادل</text>
|
|
80
|
+
</g>
|
|
81
|
+
<g transform="translate(-124, 0)">
|
|
82
|
+
<rect x="0" y="0" width="24" height="16" fill="#FEF9C3" />
|
|
83
|
+
<text x="-10" y="8" font-size="14" font-weight="400" fill="#71717A" text-anchor="start" dy="3">نیمه متعادل</text>
|
|
84
|
+
</g>
|
|
85
|
+
<g transform="translate(-268, 0)">
|
|
86
|
+
<rect x="0" y="0" width="24" height="16" fill="#D1FAE5" />
|
|
87
|
+
<text x="-10" y="8" font-size="14" font-weight="400" fill="#71717A" text-anchor="start" dy="3">متعادل</text>
|
|
88
|
+
</g>
|
|
89
|
+
</g>
|
|
@@ -9,42 +9,11 @@
|
|
|
9
9
|
|
|
10
10
|
<g transform="translate({{spec.profile.padding.[1].x}}, {{spec.profile.padding.[1].y}})">
|
|
11
11
|
<g transform="translate({{math spec.page2.items.top.baseline.width '/' 2}}, {{spec.page2.items.top.topPos}})">
|
|
12
|
-
{{
|
|
13
|
-
{{#with @root.spec.page2.items.top as | itemsSpec |}}
|
|
14
|
-
<g transform="translate({{lookup (array -320 -210 -100 100 210 320) index}}, 0)">
|
|
15
|
-
<g transform="translate(-{{math itemsSpec.rect.base.width '/' 2}}, 0)">
|
|
16
|
-
{{bar item.height.base itemsSpec.rect.base.width (object tl=0 tr=itemsSpec.rect.base.br br=itemsSpec.rect.base.br bl=0) (toRad -90) fill=itemsSpec.rect.base.color}}
|
|
17
|
-
</g>
|
|
18
|
-
<text x="0" y="-{{math item.height.base '+' 12}}" font-size="12" font-weight="400" text-anchor="middle" fill="#D4D4D8" dy="3">{{item.maxValue}}</text>
|
|
19
|
-
<g fill="{{item.fill}}">
|
|
20
|
-
<g transform="translate(-{{math itemsSpec.rect.body.width '/' 2}}, 0)">
|
|
21
|
-
{{#forLoop 0 item.mark 1}}
|
|
22
|
-
<rect x="0" y="-{{math (math i '+' 1) '*' itemsSpec.rect.body.distanceY}}" width="{{itemsSpec.rect.body.width}}" height="{{itemsSpec.rect.body.height}}" rx="{{itemsSpec.rect.body.br}}"/>
|
|
23
|
-
{{/forLoop}}
|
|
24
|
-
</g>
|
|
25
|
-
<text x="{{math (math itemsSpec.rect.body.width '/' 2) '+' 16}}" y="-{{math item.mark '*' itemsSpec.rect.body.distanceY}}" font-size="16" font-weight="500" text-anchor="middle" dy="4">{{item.mark}}</text>
|
|
26
|
-
<text x="0" y="20" font-size="14" font-weight="400" text-anchor="middle" dy="5">{{item.label.fr}}</text>
|
|
27
|
-
</g>
|
|
28
|
-
</g>
|
|
29
|
-
{{/with}}
|
|
30
|
-
{{/each}}
|
|
31
|
-
<line x1="-{{math spec.page2.items.top.baseline.width '/' 2}}" y1="0" x2="{{math spec.page2.items.top.baseline.width '/' 2}}" y2="0" stroke="#A1A1AA" stroke-width="2"/>
|
|
12
|
+
{{> FACES93_2_1_partial}}
|
|
32
13
|
</g>
|
|
33
14
|
|
|
34
15
|
<g transform="translate(0, {{math spec.page2.items.top.topPos '+' spec.page2.items.bottom.offsetY}})">
|
|
35
|
-
{{
|
|
36
|
-
{{#with @root.spec.page2.items.bottom as | itemsSpec |}}
|
|
37
|
-
<g transform="translate(0, {{math index '*' (math itemsSpec.rect.body.height '+' 20)}})">
|
|
38
|
-
<text x="150" y="{{math itemsSpec.rect.body.height '/' 2}}" font-size="16" font-weight="400" text-anchor="start" fill="#52525B" dy="4">{{item.label.fr}}</text>
|
|
39
|
-
<g transform="translate(168, 0)">
|
|
40
|
-
<rect x="0" y="{{math (math itemsSpec.rect.body.height '-' itemsSpec.rect.base.height) '/' 2}}" width="{{itemsSpec.rect.base.width}}" height="{{itemsSpec.rect.base.height}}" rx="{{itemsSpec.rect.base.br}}" fill="#F4F4F5"/>
|
|
41
|
-
<text x="{{math itemsSpec.rect.base.width '+' 27}}" y="{{math itemsSpec.rect.body.height '/' 2}}" font-size="12" font-weight="400" text-anchor="middle" fill="#A1A1AA" dy="3">{{itemsSpec.maxValue}}</text>
|
|
42
|
-
<rect x="0" y="0" width="{{item.width}}" height="{{itemsSpec.rect.body.height}}" rx="{{itemsSpec.rect.body.br}}" fill="url(#bg)"/>
|
|
43
|
-
<text x="{{math item.width '-' 18}}" y="{{math itemsSpec.rect.body.height '/' 2}}" font-size="16" font-weight="600" text-anchor="middle" fill="white" dy="4">{{item.mark}}</text>
|
|
44
|
-
</g>
|
|
45
|
-
</g>
|
|
46
|
-
{{/with}}
|
|
47
|
-
{{/each}}
|
|
16
|
+
{{> FACES93_2_2_partial}}
|
|
48
17
|
</g>
|
|
49
18
|
</g>
|
|
50
19
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{{#each items.top as | item index |}}
|
|
2
|
+
{{#with ../spec.page2.items.top as | itemsSpec |}}
|
|
3
|
+
<g transform="translate({{lookup (array -320 -210 -100 100 210 320) index}}, 0)">
|
|
4
|
+
<g transform="translate(-{{math itemsSpec.rect.base.width '/' 2}}, 0)">
|
|
5
|
+
{{bar item.height.base itemsSpec.rect.base.width (object tl=0 tr=itemsSpec.rect.base.br br=itemsSpec.rect.base.br bl=0) (toRad -90) fill=itemsSpec.rect.base.color}}
|
|
6
|
+
</g>
|
|
7
|
+
<text x="0" y="-{{math item.height.base '+' 12}}" font-size="12" font-weight="400" text-anchor="middle" fill="#D4D4D8" dy="3">{{item.maxValue}}</text>
|
|
8
|
+
<g fill="{{item.fill}}">
|
|
9
|
+
<g transform="translate(-{{math itemsSpec.rect.body.width '/' 2}}, 0)">
|
|
10
|
+
{{#forLoop 0 item.mark 1}}
|
|
11
|
+
<rect x="0" y="-{{math (math i '+' 1) '*' itemsSpec.rect.body.distanceY}}" width="{{itemsSpec.rect.body.width}}" height="{{itemsSpec.rect.body.height}}" rx="{{itemsSpec.rect.body.br}}"/>
|
|
12
|
+
{{/forLoop}}
|
|
13
|
+
</g>
|
|
14
|
+
<text x="{{math (math itemsSpec.rect.body.width '/' 2) '+' 16}}" y="-{{math item.mark '*' itemsSpec.rect.body.distanceY}}" font-size="16" font-weight="500" text-anchor="middle" dy="4">{{item.mark}}</text>
|
|
15
|
+
<text x="0" y="20" font-size="14" font-weight="400" text-anchor="middle" dy="5">{{item.label.fr}}</text>
|
|
16
|
+
</g>
|
|
17
|
+
</g>
|
|
18
|
+
{{/with}}
|
|
19
|
+
{{/each}}
|
|
20
|
+
<line x1="-{{math spec.page2.items.top.baseline.width '/' 2}}" y1="0" x2="{{math spec.page2.items.top.baseline.width '/' 2}}" y2="0" stroke="#A1A1AA" stroke-width="2"/>
|