@baravak/risloo-profile-cli 4.7.1 → 4.8.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.
@@ -190,7 +190,6 @@ class JSIQ9Q extends Profile {
190
190
  })
191
191
  const items = dataset.score.slice(5, 14).filter((r, i) => i %2 !== 0).map((r, i) => {
192
192
  r.percentage = Math.round(dataset.score[7 + (i*2)].mark * 100)
193
- r.percentagex = dataset.score[7 + (i*2)].mark
194
193
  return r
195
194
  })
196
195
  const total = dataset.score[4]
@@ -211,14 +210,31 @@ class JSIQ9Q extends Profile {
211
210
  }
212
211
  _calcContext() {
213
212
  const firstPageData = this.firstPage()
213
+ let color = ''
214
+ if(firstPageData.items.love.percentage === 50 || firstPageData.items.power.percentage === 50){
215
+ color = '#334155'
216
+ }else if(firstPageData.items.love.percentage < 50){
217
+ if(firstPageData.items.power.percentage < 50){
218
+ color="#b91c1c"
219
+ }else{
220
+ color="#c2410c"
221
+ }
222
+ }else{
223
+ if(firstPageData.items.power.percentage < 50){
224
+ color="#A16207"
225
+ }else{
226
+ color="#047857"
227
+ }
228
+ }
214
229
  return [firstPageData, {
215
230
  love: {
216
- percentage: 1 - firstPageData.items.love.percentagex,
217
- mark: firstPageData.items.love.mark
231
+ percentage: 1 - (firstPageData.items.love.percentage / 100),
232
+ mark: firstPageData.items.love.percentage,
233
+ color
218
234
  },
219
235
  power: {
220
- percentage: 1 - firstPageData.items.power.percentagex,
221
- mark: firstPageData.items.power.mark
236
+ percentage: firstPageData.items.power.percentage / 100,
237
+ mark: firstPageData.items.power.percentage
222
238
  },
223
239
  titleAppend: firstPageData.titleAppend
224
240
  }];
@@ -191,7 +191,6 @@ class JSIQ9V extends Profile {
191
191
  })
192
192
  const items = dataset.score.slice(5, 14).filter((r, i) => i %2 !== 0).map((r, i) => {
193
193
  r.percentage = Math.round(dataset.score[7 + (i*2)].mark * 100)
194
- r.percentagex = dataset.score[7 + (i*2)].mark
195
194
  return r
196
195
  })
197
196
  const total = dataset.score[4]
@@ -212,14 +211,31 @@ class JSIQ9V extends Profile {
212
211
  }
213
212
  _calcContext() {
214
213
  const firstPageData = this.firstPage()
214
+ let color = ''
215
+ if(firstPageData.items.love.percentage === 50 || firstPageData.items.power.percentage === 50){
216
+ color = '#334155'
217
+ }else if(firstPageData.items.love.percentage < 50){
218
+ if(firstPageData.items.power.percentage < 50){
219
+ color="#b91c1c"
220
+ }else{
221
+ color="#c2410c"
222
+ }
223
+ }else{
224
+ if(firstPageData.items.power.percentage < 50){
225
+ color="#A16207"
226
+ }else{
227
+ color="#047857"
228
+ }
229
+ }
215
230
  return [firstPageData, {
216
231
  love: {
217
- percentage: 1 - firstPageData.items.love.percentagex,
218
- mark: firstPageData.items.love.mark
232
+ percentage: 1 - (firstPageData.items.love.percentage / 100),
233
+ mark: firstPageData.items.love.percentage,
234
+ color
219
235
  },
220
236
  power: {
221
- percentage: 1 - firstPageData.items.power.percentagex,
222
- mark: firstPageData.items.power.mark
237
+ percentage: firstPageData.items.power.percentage / 100,
238
+ mark: firstPageData.items.power.percentage
223
239
  },
224
240
  titleAppend: firstPageData.titleAppend
225
241
  }];
@@ -0,0 +1,414 @@
1
+ const { Profile, FS } = require("../Profile");
2
+ const factors = ['1','2a','2b','3','4','5','6a','6b','7','8a','8b','9','a','b','c','d','e','f','g','h','aa','bb','cc','dd','ee','ff','gg','y','z', 'x',
3
+ '1_1','1_2','1_3','2a_1','2a_2','2a_3','2b_1','2b_2','2b_3','3_1','3_2','3_3','4_1','4_2','4_3','5_1','5_2','5_3','6a_1','6a_2','6a_3','6b_1','6b_2','6b_3','7_1','7_2','7_3','8a_1','8a_2','8a_3','8b_1','8b_2','8b_3','9_1','9_2','9_3']
4
+ const colors = {
5
+ gray: {
6
+ bg: '#F8FAFC',
7
+ color: "#475569",
8
+ key: 'url(#grayBar)',
9
+ weight: 400,
10
+ },
11
+ blue: {
12
+ bg: '#EFF6FF',
13
+ color: "#2563EB",
14
+ key: 'url(#blueBar)',
15
+ weight: 400,
16
+ },
17
+ yellow: {
18
+ bg: '#FEFCE8',
19
+ color: "#EAB308",
20
+ key: 'url(#yellowBar)',
21
+ weight: 600,
22
+ },
23
+ orange: {
24
+ bg: '#FFF7ED',
25
+ color: "#EA580C",
26
+ key: 'url(#orangeBar)',
27
+ weight: 600,
28
+ },
29
+ red: {
30
+ bg: '#FFF1F2',
31
+ color: "#E11D48",
32
+ key: 'url(#redBar)',
33
+ weight: 600,
34
+ }
35
+
36
+ }
37
+ class MACI93 extends Profile {
38
+ static pages = 4;
39
+
40
+ labels = {
41
+ Lraw_1 : {eng: "raw_1", en:"1", fr: "درونگرا"},
42
+ Lraw_2a : {eng: "raw_2a", en:"2a", fr: "اجتنابی"},
43
+ Lraw_2b : {eng: "raw_2b", en:"2b", fr: "غمگین"},
44
+ Lraw_3 : {eng: "raw_3", en:"3", fr: "مطیع"},
45
+ Lraw_4 : {eng: "raw_4", en:"4", fr: "نمایشی"},
46
+ Lraw_5 : {eng: "raw_5", en:"5", fr: "خودخواه"},
47
+ Lraw_6a : {eng: "raw_6a", en:"6a", fr: "نظم‌گریز"},
48
+ Lraw_6b : {eng: "raw_6b", en:"6b", fr: "زورگو"},
49
+ Lraw_7 : {eng: "raw_7", en:"7", fr: "همنوا"},
50
+ Lraw_8a : {eng: "raw_8a", en:"8a", fr: "مخالف‌خوان"},
51
+ Lraw_8b : {eng: "raw_8b", en:"8b", fr: "خودخوارساز"},
52
+ Lraw_9 : {eng: "raw_9", en:"9", fr: "گرایش مرزی"},
53
+
54
+ Lraw_a : {eng: "raw_a", en:"a", fr: "آشفتگی هویت"},
55
+ Lraw_b : {eng: "raw_b", en:"b", fr: "ناارزنده‌ساز"},
56
+ Lraw_c : {eng: "raw_c", en:"c", fr: "عدم تأیید بدن"},
57
+ Lraw_d : {eng: "raw_d", en:"d", fr: "نارضایتی جنسی"},
58
+ Lraw_e : {eng: "raw_e", en:"e", fr: "ناامنی از همسالان"},
59
+ Lraw_f : {eng: "raw_f", en:"f", fr: "عدم حساسیت اجتماعی"},
60
+ Lraw_g : {eng: "raw_g", en:"g", fr: "اختلاف خانوادگی"},
61
+ Lraw_h : {eng: "raw_h", en:"h", fr: "سوءاستفاده از کودکی"},
62
+ Lraw_aa : {eng: "raw_aa", en:"aa", fr: "کژکاری خوردن"},
63
+ Lraw_bb : {eng: "raw_bb", en:"bb", fr: "استعداد سوء مصرف مواد"},
64
+ Lraw_cc : {eng: "raw_cc", en:"cc", fr: "آمادگی انحراف"},
65
+ Lraw_dd : {eng: "raw_dd", en:"dd", fr: "گرایش تکانش‌گری"},
66
+ Lraw_ee : {eng: "raw_ee", en:"ee", fr: "احساسات اضطرابی"},
67
+ Lraw_ff : {eng: "raw_ff", en:"ff", fr: "عاطفه افسرده"},
68
+ Lraw_gg : {eng: "raw_gg", en:"gg", fr: "تمایل خودکشی"},
69
+
70
+ Lraw_x : {eng: "raw_x", en:"x", fr: "خوارسازی"},
71
+ Lraw_y : {eng: "raw_y", en:"y", fr: "خودافشایی"},
72
+ Lraw_z : {eng: "raw_z", en:"z", fr: "مطلوب بودن"},
73
+
74
+
75
+ Lraw_1_1 : {eng: "raw_1_1", en:"1-1", fr: "خونسردی ابرازی"},
76
+ Lraw_1_2 : {eng: "raw_1_2", en:"1-2", fr: "بی‌تفاوتی مزاجی"},
77
+ Lraw_1_3 : {eng: "raw_1_3", en:"1-3", fr: "عدم برانگیختگی بین‌فردی"},
78
+ Lraw_2a_1 : {eng: "raw_2a_1", en:"2a-1", fr: "بدخلقی ابرازی"},
79
+ Lraw_2a_2 : {eng: "raw_2a_2", en:"2a-2", fr: "تنفر بین‌فردی"},
80
+ Lraw_2a_3 : {eng: "raw_2a_3", en:"2a-3", fr: "خودانگاره بیگانه"},
81
+ Lraw_2b_1 : {eng: "raw_2b_1", en:"2b-1", fr: "غمزدگی مزاجی"},
82
+ Lraw_2b_2 : {eng: "raw_2b_2", en:"2b-2", fr: "تسلی‌ناپذیری ابرازی"},
83
+ Lraw_2b_3 : {eng: "raw_2b_3", en:"2b-3", fr: "شکاکیت شناختی"},
84
+ Lraw_3_1 : {eng: "raw_3_1", en:"3-1", fr: "اطاعت بین‌فردی"},
85
+ Lraw_3_2 : {eng: "raw_3_2", en:"3-2", fr: "صلح‌جویی مزاجی"},
86
+ Lraw_3_3 : {eng: "raw_3_3", en:"3-3", fr: "بی‌‌عرضگی ابرازی"},
87
+ Lraw_4_1 : {eng: "raw_4_1", en:"4-1", fr: "جستجوی توجه بین‌فردی"},
88
+ Lraw_4_2 : {eng: "raw_4_2", en:"4-2", fr: "خودانگاره معاشرتی"},
89
+ Lraw_4_3 : {eng: "raw_4_3", en:"4-3", fr: "دمدمی بودن شناختی"},
90
+ Lraw_5_1 : {eng: "raw_5_1", en:"5-1", fr: "خودانگاره ستودنی"},
91
+ Lraw_5_2 : {eng: "raw_5_2", en:"5-2", fr: "توسعه شناختی"},
92
+ Lraw_5_3 : {eng: "raw_5_3", en:"5-3", fr: "انفجاری بودن بین‌فردی"},
93
+ Lraw_6a_1 : {eng: "raw_6a_1", en:"6a-1", fr: "تکانشگری ابرازی"},
94
+ Lraw_6a_2 : {eng: "raw_6a_2", en:"6a-2", fr: "مکانیزم رفتارکردن"},
95
+ Lraw_6a_3 : {eng: "raw_6a_3", en:"6a-3", fr: "لاابالی‌گری بین‌فردی"},
96
+ Lraw_6b_1 : {eng: "raw_6b_1", en:"6b-1", fr: "دلخوری بین‌فردی"},
97
+ Lraw_6b_2 : {eng: "raw_6b_2", en:"6b-2", fr: "ابراز غیرمنتظره"},
98
+ Lraw_6b_3 : {eng: "raw_6b_3", en:"6b-3", fr: "مکانیزم انزوا"},
99
+ Lraw_7_1 : {eng: "raw_7_1", en:"7-1", fr: "نظم‌ ابرارزی"},
100
+ Lraw_7_2 : {eng: "raw_7_2", en:"7-2", fr: "احترام بین‌فردی"},
101
+ Lraw_7_3 : {eng: "raw_7_3", en:"7-3", fr: "خود‌انگاره خودخواه"},
102
+ Lraw_8a_1 : {eng: "raw_8a_1", en:"8a-1", fr: "خودانگاره از خود ناراضی"},
103
+ Lraw_8a_2 : {eng: "raw_8a_2", en:"8a-2", fr: "رنجیدگی ابرازی"},
104
+ Lraw_8a_3 : {eng: "raw_8a_3", en:"8a-3", fr: "معکوس بودن بین‌فردی"},
105
+ Lraw_8b_1 : {eng: "raw_8b_1", en:"8b-1", fr: "خجالتی بودن شناختی"},
106
+ Lraw_8b_2 : {eng: "raw_8b_2", en:"8b-2", fr: "خودانگاره سزاوار نبودن"},
107
+ Lraw_8b_3 : {eng: "raw_8b_3", en:"8b-3", fr: "بیمار بودن مزاجی"},
108
+ Lraw_9_1 : {eng: "raw_9_1", en:"9-1", fr: "ضعف مزاجی"},
109
+ Lraw_9_2 : {eng: "raw_9_2", en:"9-2", fr: "دمدمی بودن شناختی"},
110
+ Lraw_9_3 : {eng: "raw_9_3", en:"9-3", fr: "خود انگاره نامطمئن"},
111
+
112
+
113
+ Lv : {eng: "v"},
114
+
115
+ Lbr_1 : {eng: "br_1"},
116
+ Lbr_2a : {eng: "br_2a"},
117
+ Lbr_2b : {eng: "br_2b"},
118
+ Lbr_3 : {eng: "br_3"},
119
+ Lbr_4 : {eng: "br_4"},
120
+ Lbr_5 : {eng: "br_5"},
121
+ Lbr_6a : {eng: "br_6a"},
122
+ Lbr_6b : {eng: "br_6b"},
123
+ Lbr_7 : {eng: "br_7"},
124
+ Lbr_8a : {eng: "br_8a"},
125
+ Lbr_8b : {eng: "br_8b"},
126
+ Lbr_9 : {eng: "br_9"},
127
+ Lbr_a : {eng: "br_a"},
128
+ Lbr_b : {eng: "br_b"},
129
+ Lbr_c : {eng: "br_c"},
130
+ Lbr_d : {eng: "br_d"},
131
+ Lbr_e : {eng: "br_e"},
132
+ Lbr_f : {eng: "br_f"},
133
+ Lbr_g : {eng: "br_g"},
134
+ Lbr_h : {eng: "br_h"},
135
+ Lbr_aa : {eng: "br_aa"},
136
+ Lbr_bb : {eng: "br_bb"},
137
+ Lbr_cc : {eng: "br_cc"},
138
+ Lbr_dd : {eng: "br_dd"},
139
+ Lbr_ee : {eng: "br_ee"},
140
+ Lbr_ff : {eng: "br_ff"},
141
+ Lbr_gg : {eng: "br_gg"},
142
+
143
+ Lbr_x : {eng: "br_x"},
144
+ Lbr_y : {eng: "br_y"},
145
+ Lbr_z : {eng: "br_z"},
146
+
147
+
148
+ Lbr_1_1 : {eng: "br_1_1"},
149
+ Lbr_1_2 : {eng: "br_1_2"},
150
+ Lbr_1_3 : {eng: "br_1_3"},
151
+ Lbr_2a_1 : {eng: "br_2a_1"},
152
+ Lbr_2a_2 : {eng: "br_2a_2"},
153
+ Lbr_2a_3 : {eng: "br_2a_3"},
154
+ Lbr_2b_1 : {eng: "br_2b_1"},
155
+ Lbr_2b_2 : {eng: "br_2b_2"},
156
+ Lbr_2b_3 : {eng: "br_2b_3"},
157
+ Lbr_3_1 : {eng: "br_3_1"},
158
+ Lbr_3_2 : {eng: "br_3_2"},
159
+ Lbr_3_3 : {eng: "br_3_3"},
160
+ Lbr_4_1 : {eng: "br_4_1"},
161
+ Lbr_4_2 : {eng: "br_4_2"},
162
+ Lbr_4_3 : {eng: "br_4_3"},
163
+ Lbr_5_1 : {eng: "br_5_1"},
164
+ Lbr_5_2 : {eng: "br_5_2"},
165
+ Lbr_5_3 : {eng: "br_5_3"},
166
+ Lbr_6a_1 : {eng: "br_6a_1"},
167
+ Lbr_6a_2 : {eng: "br_6a_2"},
168
+ Lbr_6a_3 : {eng: "br_6a_3"},
169
+ Lbr_6b_1 : {eng: "br_6b_1"},
170
+ Lbr_6b_2 : {eng: "br_6b_2"},
171
+ Lbr_6b_3 : {eng: "br_6b_3"},
172
+ Lbr_7_1 : {eng: "br_7_1"},
173
+ Lbr_7_2 : {eng: "br_7_2"},
174
+ Lbr_7_3 : {eng: "br_7_3"},
175
+ Lbr_8a_1 : {eng: "br_8a_1"},
176
+ Lbr_8a_2 : {eng: "br_8a_2"},
177
+ Lbr_8a_3 : {eng: "br_8a_3"},
178
+ Lbr_8b_1 : {eng: "br_8b_1"},
179
+ Lbr_8b_2 : {eng: "br_8b_2"},
180
+ Lbr_8b_3 : {eng: "br_8b_3"},
181
+ Lbr_9_1 : {eng: "br_9_1"},
182
+ Lbr_9_2 : {eng: "br_9_2"},
183
+ Lbr_9_3 : {eng: "br_9_3"},
184
+
185
+
186
+ Lxstatus : {eng: "xstatus"},
187
+ Lbrstatus : {eng: "brstatus"},
188
+ Lstatus : {eng: "status"},
189
+ };
190
+
191
+ profileSpec = {
192
+ sample: {
193
+ name: "پرسشنامه بالینی نوجوانان میلون",
194
+ multiProfile: false,
195
+ questions: false,
196
+ defaultFields: true,
197
+ fields: [],
198
+ },
199
+ profile: {
200
+ get dimensions() {
201
+ return {
202
+ width: 903 + 2 * this.padding.x,
203
+ height: 714 + 2 * this.padding.y,
204
+ }
205
+ },
206
+ padding: {
207
+ x: 0,
208
+ y: 0,
209
+ },
210
+ },
211
+
212
+ labels: Object.values(this.labels)
213
+ };
214
+
215
+ constructor(dataset, options, config = {}) {
216
+ super();
217
+ this._init(dataset, options, config);
218
+ }
219
+
220
+ _calcContext() {
221
+ const {
222
+ dataset,
223
+ } = this;
224
+ const personality = dataset.score.slice(0, 11).map((f, i) => {
225
+ const br = dataset.score[67 + i].mark ?? 0
226
+ return {
227
+ label: f.label.en.toUpperCase(),
228
+ fa: f.label.fr,
229
+ raw: f.mark ?? 0,
230
+ br,
231
+ pixel: br2pixel(br),
232
+ style: findStyle(br)
233
+ }
234
+ })
235
+ const border = {
236
+ label: dataset.score[11].label.en.toUpperCase(),
237
+ fa: dataset.score[11].label.fr,
238
+ raw: dataset.score[11].mark ?? 0,
239
+ br: dataset.score[78].mark ?? 0,
240
+ pixel: br2pixel(dataset.score[78].mark ?? 0),
241
+ style: findStyle(dataset.score[78].mark ?? 0)
242
+ }
243
+ const warnings = dataset.score.slice(12, 20).map((f, i) => {
244
+ return {
245
+ label: f.label.en.toUpperCase(),
246
+ fa: f.label.fr,
247
+ raw: f.mark ?? 0,
248
+ br: dataset.score[79 + i].mark ?? 0,
249
+ pixel: br2pixel(dataset.score[79 + i].mark ?? 0),
250
+ style: findStyle(dataset.score[79 + i].mark ?? 0)
251
+ }
252
+ })
253
+ const clinical = dataset.score.slice(20, 27).map((f, i) => {
254
+ return {
255
+ label: f.label.en.toUpperCase(),
256
+ fa: f.label.fr,
257
+ raw: f.mark ?? 0,
258
+ br: dataset.score[87 + i].mark ?? 0,
259
+ pixel: br2pixel(dataset.score[87 + i].mark ?? 0),
260
+ style: findStyle(dataset.score[87 + i].mark ?? 0)
261
+ }
262
+ })
263
+ const correction = dataset.score.slice(27, 30).map((f, i) => {
264
+ return {
265
+ label: f.label.en.toUpperCase(),
266
+ fa: f.label.fr,
267
+ raw: f.mark ?? 0,
268
+ br: dataset.score[94 + i].mark ?? 0,
269
+ pixel: br2pixel(dataset.score[94 + i].mark ?? 0),
270
+ style: colors.blue
271
+ }
272
+ })
273
+ const grasman = [...personality, border].map((rr, i) => {
274
+ const index = 30 + (3*i)
275
+ return {
276
+ label: rr.label,
277
+ fa: rr.fa,
278
+ br: rr.br,
279
+ style: findStyleg(rr.br),
280
+ subs: dataset.score.slice(index, index + 3).map(((r, i) => {
281
+ const br = dataset.score[index + 67 + i]
282
+ return {
283
+ label: r.label.en.toUpperCase(),
284
+ fa: r.label.fr,
285
+ raw: r.mark ?? 0,
286
+ br: br.mark ?? 0,
287
+ pixel: br2pixelg(br.mark ?? 0),
288
+ style: br.mark >= 75 && rr.br >= 65 ? findStyleg(rr.br).subs.critical : findStyleg(rr.br).subs.mute
289
+
290
+ }
291
+ }))
292
+ }
293
+ }).sort((a, b) => {
294
+ if(a.br > b.br) return -1
295
+ if(a.br < b.br) return 1
296
+ return 0
297
+ })
298
+ const bcolor= [{value: 0, bg:'#ECFDF5', fill:"#059669", text:'معتبر'},{value: 1, bg:'#FEFCE8', fill:"#CA8A04", text:'تفسیر با احتیاط'},{value: 2, bg:'#FEF2F2', fill:"#DC2626", text:'نامعتبر'}]
299
+ const status = {
300
+ v: bcolor[dataset.score[66].mark ?? 0],
301
+ x: dataset.score[133].mark ?? 0,
302
+ br: dataset.score[134].mark ?? 0,
303
+ mark: dataset.score[135].mark ?? 0
304
+ }
305
+
306
+ return [
307
+ {correction, personality, status, border, titleAppend: ' - 1' },
308
+ {warnings, status, clinical, titleAppend: ' - 2'},
309
+ {grasman: grasman.slice(0, 6), titleAppend: ' - گراسمن 1'},
310
+ {grasman: grasman.slice(6), titleAppend: ' - گراسمن 2'}
311
+ ];
312
+ }
313
+ }
314
+ function br2pixel(br){
315
+ if(br >= 115){
316
+ return 360
317
+ } else if(br >= 85){
318
+ return 270 + ((br - 85) * 3)
319
+ } else if(br >= 75) {
320
+ return 180 + ((br - 75) * 9)
321
+ } else if(br >= 60){
322
+ return 90 + ((br - 60) * 6)
323
+ }
324
+ return br * 1.5
325
+ }
326
+ function br2pixelg(br){
327
+ if(br >= 60){
328
+ return 60 + ((br - 60) * 6)
329
+ }
330
+ return br
331
+ }
332
+ function findStyle(br){
333
+ if(br < 60){
334
+ return colors.gray
335
+ }
336
+ if(br < 75){
337
+ return colors.yellow
338
+ }
339
+ if(br < 85){
340
+ return colors.orange
341
+ }
342
+ return colors.red
343
+ }
344
+
345
+ const gcolor = {
346
+ gray: {
347
+ bg: '#F8FAFC',
348
+ border: '#E2E8F0',
349
+ color: '#475569',
350
+ subs: {
351
+ mute: {
352
+ key: 'url(#coldGrayBar)',
353
+ bg: '#F8FAFC',
354
+ color: '#475569',
355
+ weight: 400
356
+ }
357
+ }
358
+ },
359
+ yellow: {
360
+ bg: '#FEFCE8',
361
+ border: '#FEF08A',
362
+ color: '#EAB308',
363
+ subs: {
364
+ mute: {
365
+ key: 'url(#hotGrayBar)',
366
+ bg: '#FAFAFA',
367
+ color: '#52525B',
368
+ weight: 400
369
+ },
370
+ critical: colors.yellow
371
+ }
372
+ },
373
+ orange: {
374
+ bg: '#FFF7ED',
375
+ border: '#FED7AA',
376
+ color: '#EA580C',
377
+ subs: {
378
+ mute: {
379
+ key: 'url(#hotGrayBar)',
380
+ bg: '#FAFAFA',
381
+ color: '#52525B',
382
+ weight: 400
383
+ },
384
+ critical: colors.orange
385
+ }
386
+ },
387
+ red: {
388
+ bg: '#FFF1F2',
389
+ border: '#FECDD3',
390
+ color: '#E11D48',
391
+ subs: {
392
+ mute: {
393
+ key: 'url(#hotGrayBar)',
394
+ bg: '#FAFAFA',
395
+ color: '#52525B',
396
+ weight: 400
397
+ },
398
+ critical: colors.red
399
+ }
400
+ }
401
+ }
402
+ function findStyleg(br){
403
+ if(br < 65){
404
+ return gcolor.gray
405
+ }
406
+ if(br < 75){
407
+ return gcolor.yellow
408
+ }
409
+ if(br < 85){
410
+ return gcolor.orange
411
+ }
412
+ return gcolor.red
413
+ }
414
+ module.exports = MACI93;
@@ -151,7 +151,7 @@
151
151
  {{#with items.sexual as | item |}}
152
152
  <g transform="translate({{math 38.5 '+' (math 80.5 '*' 3)}}, 0)">
153
153
  <text direction="ltr" x="16" y="{{math 273.5 '-' (math item.label.max '*' 1.5)}}" dy=".27em" text-anchor="middle">
154
- <tspan fill="#0369A1" font-size="16" font-weight="500">{{item.mark}}</tspan>
154
+ <tspan fill="#1d4ed8" font-size="16" font-weight="500">{{item.mark}}</tspan>
155
155
  <tspan fill="#475569" font-size="12" font-weight="400">/ {{item.label.max}}</tspan>
156
156
  </text>
157
157
  {{bar 32 (math item.label.max '*' 1.5 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="#F1F5F9" transform="translate(32, 285)"}}
@@ -162,8 +162,8 @@
162
162
  <tspan x="17.5" y=".4em">جنسی</tspan>
163
163
  </text>
164
164
  <g transform="translate(0, 16)">
165
- <rect height="16" width="35" fill="#F0F9FF" rx="4" />
166
- <text x="17.5" y="8" dy=".35em" text-anchor="middle" font-size="12" font-weight="400" fill="#0369A1">%{{item.percentage}}</text>
165
+ <rect height="16" width="35" fill="#EFF6FF" rx="4" />
166
+ <text x="17.5" y="8" dy=".35em" text-anchor="middle" font-size="12" font-weight="400" fill="#1d4ed8">%{{item.percentage}}</text>
167
167
  </g>
168
168
  </g>
169
169
  </g>
@@ -179,7 +179,7 @@
179
179
  {{bar 320 20 (object tl=0 tr=10 br=10 bl=0) (toRad 0) fill="#F1F5F9" }}
180
180
  {{bar (math total.mark '*' 0.8) 20 (object tl=0 tr=10 br=10 bl=0) (toRad 0) fill="#64748B" }}
181
181
  <text y="36" x="{{math total.mark '*' 0.8}}" dy=".35em" text-anchor="middle" font-size="20" font-weight="500" fill="#334155">{{total.mark}}</text>
182
- <text y="50" x="{{math total.mark '*' 0.8}}" dy=".35em" text-anchor="middle" font-size="12" font-weight="400" fill="#334155">%{{total.percentage}}</text>
182
+ <text y="55" x="{{math total.mark '*' 0.8}}" dy=".35em" text-anchor="middle" font-size="12" font-weight="400" fill="#334155">%{{total.percentage}}</text>
183
183
  </g>
184
184
  </g>
185
185
  <g transform="translate(270.5, 575)">
@@ -187,7 +187,7 @@
187
187
  <text x="-45" y="-8" text-anchor="middle" font-size="12" font-weight="400" fill="#475569">40</text>
188
188
  <text y="-.2em" text-anchor="middle">
189
189
  <tspan x="0" font-size="20" font-weight="500" fill="#2563EB">{{f4_1.mark}}</tspan>
190
- <tspan x="0" y=".9em" font-size="16" font-weight="400" fill="#64748B">%{{f4_1.percentage}}</tspan>
190
+ <tspan x="0" y="1em" font-size="16" font-weight="400" fill="#64748B">%{{f4_1.percentage}}</tspan>
191
191
  </text>
192
192
  {{#with f4_1}}
193
193
  {{gauge rawSpec.circle.R rawSpec.circle.r (object tl=6 tr=6 bl=6 br=6) (object start=rawSpec.circle.angles.start end=rawSpec.circle.angles.end) direction fill="#F1F5F9"}}
@@ -201,7 +201,7 @@
201
201
  <text x="-45" y="-8" text-anchor="middle" font-size="12" font-weight="400" fill="#475569">40</text>
202
202
  <text y="-.2em" text-anchor="middle">
203
203
  <tspan x="0" font-size="20" font-weight="500" fill="#2563EB">{{f4_2.mark}}</tspan>
204
- <tspan x="0" y=".9em" font-size="16" font-weight="400" fill="#64748B">%{{f4_2.percentage}}</tspan>
204
+ <tspan x="0" y="1em" font-size="16" font-weight="400" fill="#64748B">%{{f4_2.percentage}}</tspan>
205
205
  </text>
206
206
  {{#with f4_2}}
207
207
  {{gauge rawSpec.circle.R rawSpec.circle.r (object tl=6 tr=6 bl=6 br=6) (object start=rawSpec.circle.angles.start end=rawSpec.circle.angles.end) direction fill="#F1F5F9"}}
@@ -118,13 +118,13 @@
118
118
  </g>
119
119
 
120
120
  <g>
121
- <circle cx="{{math 470 '*' love.percentage}}" cy="{{math 470 '*' power.percentage}}" r="11" fill="none" stroke="#A16207" stroke-width="3" />
122
- <circle cx="{{math 470 '*' love.percentage}}" cy="{{math 470 '*' power.percentage}}" r="3.5" fill="#A16207" />
123
- <line x1="0" y1="{{math 470 '*' power.percentage}}" x2="{{math 470 '*' love.percentage}}" y2="{{math 470 '*' power.percentage}}" stroke="#A16207" stroke-linecap="round" stroke-dasharray="6 8"/>
124
- <line x1="{{math 470 '*' love.percentage}}" y1="470" x2="{{math 470 '*' love.percentage}}" y2="{{math 470 '*' power.percentage}}" stroke="#A16207" stroke-linecap="round" stroke-dasharray="6 8"/>
125
-
126
- <text x="{{math 470 '*' love.percentage}}" y="495" text-anchor="middle" font-size="20" font-weight="700" fill="#A16207">{{power.mark}}</text>
127
- <text x="-10" y="{{math 470 '*' power.percentage}}" dy=".3em" text-anchor="start" font-size="20" font-weight="700" fill="#A16207">{{love.mark}}</text>
121
+ <circle cx="{{math 470 '*' power.percentage}}" cy="{{math 470 '*' love.percentage}}" r="11" fill="none" stroke="{{love.color}}" stroke-width="3" />
122
+ <circle cx="{{math 470 '*' power.percentage}}" cy="{{math 470 '*' love.percentage}}" r="3.5" fill="{{love.color}}" />
123
+ <line x1="0" y1="{{math 470 '*' love.percentage}}" x2="{{math 470 '*' power.percentage}}" y2="{{math 470 '*' love.percentage}}" stroke="{{love.color}}" stroke-linecap="round" stroke-dasharray="6 8"/>
124
+ <line x1="{{math 470 '*' power.percentage}}" y1="470" x2="{{math 470 '*' power.percentage}}" y2="{{math 470 '*' love.percentage}}" stroke="{{love.color}}" stroke-linecap="round" stroke-dasharray="6 8"/>
125
+
126
+ <text x="{{math 470 '*' power.percentage}}" y="495" text-anchor="middle" font-size="20" font-weight="700" fill="{{love.color}}">{{power.mark}}</text>
127
+ <text x="-10" y="{{math 470 '*' love.percentage}}" dy=".3em" text-anchor="start" font-size="20" font-weight="700" fill="{{love.color}}">{{love.mark}}</text>
128
128
 
129
129
  </g>
130
130
  </g>
@@ -86,10 +86,10 @@
86
86
  <text text-anchor="middle" x="340" y="31" font-weight="400" font-size="12" fill="#52525B" dy=".27em">0</text>
87
87
  <text text-anchor="middle" x="340" y="51" font-weight="400" font-size="12" fill="#52525B" dy=".27em">اصلا وجود ندارد</text>
88
88
 
89
- <text text-anchor="start" x="132" y="97" font-weight="400" font-size="12" fill="#B91C1C" dy=".27em">میانگین نگرش منفی</text>
90
- <line x1="140" y1="97.5" x2="180" y2="97.5" stroke="#DC2626" stroke-linecap="round" stroke-dasharray="4 4"/>
91
- <text text-anchor="start" x="339" y="97" font-weight="400" font-size="12" fill="#15803D" dy=".27em">میانگین نگرش مثبت</text>
92
- <line x1="194" y1="97.5" x2="234" y2="97.5" stroke="#16A34A" stroke-linecap="round" stroke-dasharray="4 4"/>
89
+ <text text-anchor="start" x="132" y="97" font-weight="400" font-size="12" fill="#15803D" dy=".27em">میانگین نگرش مثبت</text>
90
+ <line x1="140" y1="97.5" x2="180" y2="97.5" stroke="#16A34A" stroke-linecap="round" stroke-dasharray="4 4"/>
91
+ <text text-anchor="start" x="339" y="97" font-weight="400" font-size="12" fill="#B91C1C" dy=".27em">میانگین نگرش مفنی</text>
92
+ <line x1="194" y1="97.5" x2="234" y2="97.5" stroke="#DC2626" stroke-linecap="round" stroke-dasharray="4 4"/>
93
93
  </g>
94
94
  </g>
95
95
  <line x1="367" y1="3" x2="367" y2="676" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
@@ -151,7 +151,7 @@
151
151
  {{#with items.sexual as | item |}}
152
152
  <g transform="translate({{math 38.5 '+' (math 80.5 '*' 3)}}, 0)">
153
153
  <text direction="ltr" x="16" y="{{math 273.5 '-' (math item.label.max '*' 1.7)}}" dy=".27em" text-anchor="middle">
154
- <tspan fill="#0369A1" font-size="16" font-weight="500">{{item.mark}}</tspan>
154
+ <tspan fill="#1d4ed8" font-size="16" font-weight="500">{{item.mark}}</tspan>
155
155
  <tspan fill="#475569" font-size="12" font-weight="400">/ {{item.label.max}}</tspan>
156
156
  </text>
157
157
  {{bar 32 (math item.label.max '*' 1.7 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="#F1F5F9" transform="translate(32, 285)"}}
@@ -162,8 +162,8 @@
162
162
  <tspan x="17.5" y=".4em">جنسی</tspan>
163
163
  </text>
164
164
  <g transform="translate(0, 16)">
165
- <rect height="16" width="35" fill="#F0F9FF" rx="4" />
166
- <text x="17.5" y="8" dy=".35em" text-anchor="middle" font-size="12" font-weight="400" fill="#0369A1">%{{item.percentage}}</text>
165
+ <rect height="16" width="35" fill="#EFF6FF" rx="4" />
166
+ <text x="17.5" y="8" dy=".35em" text-anchor="middle" font-size="12" font-weight="400" fill="#1d4ed8">%{{item.percentage}}</text>
167
167
  </g>
168
168
  </g>
169
169
  </g>
@@ -179,7 +179,7 @@
179
179
  {{bar 320 20 (object tl=0 tr=10 br=10 bl=0) (toRad 0) fill="#F1F5F9" }}
180
180
  {{bar (math total.mark '*' 0.8) 20 (object tl=0 tr=10 br=10 bl=0) (toRad 0) fill="#64748B" }}
181
181
  <text y="36" x="{{math total.mark '*' 0.8}}" dy=".35em" text-anchor="middle" font-size="20" font-weight="500" fill="#334155">{{total.mark}}</text>
182
- <text y="50" x="{{math total.mark '*' 0.8}}" dy=".35em" text-anchor="middle" font-size="12" font-weight="400" fill="#334155">%{{total.percentage}}</text>
182
+ <text y="55" x="{{math total.mark '*' 0.8}}" dy=".35em" text-anchor="middle" font-size="12" font-weight="400" fill="#334155">%{{total.percentage}}</text>
183
183
  </g>
184
184
  </g>
185
185
  <g transform="translate(270.5, 575)">
@@ -187,7 +187,7 @@
187
187
  <text x="-45" y="-8" text-anchor="middle" font-size="12" font-weight="400" fill="#475569">30</text>
188
188
  <text y="-.2em" text-anchor="middle">
189
189
  <tspan x="0" font-size="20" font-weight="500" fill="#2563EB">{{f4_1.mark}}</tspan>
190
- <tspan x="0" y=".9em" font-size="16" font-weight="400" fill="#64748B">%{{f4_1.percentage}}</tspan>
190
+ <tspan x="0" y="1em" font-size="16" font-weight="400" fill="#64748B">%{{f4_1.percentage}}</tspan>
191
191
  </text>
192
192
  {{#with f4_1}}
193
193
  {{gauge rawSpec.circle.R rawSpec.circle.r (object tl=6 tr=6 bl=6 br=6) (object start=rawSpec.circle.angles.start end=rawSpec.circle.angles.end) direction fill="#F1F5F9"}}
@@ -201,7 +201,7 @@
201
201
  <text x="-45" y="-8" text-anchor="middle" font-size="12" font-weight="400" fill="#475569">70</text>
202
202
  <text y="-.2em" text-anchor="middle">
203
203
  <tspan x="0" font-size="20" font-weight="500" fill="#2563EB">{{f4_2.mark}}</tspan>
204
- <tspan x="0" y=".9em" font-size="16" font-weight="400" fill="#64748B">%{{f4_2.percentage}}</tspan>
204
+ <tspan x="0" y="1em" font-size="16" font-weight="400" fill="#64748B">%{{f4_2.percentage}}</tspan>
205
205
  </text>
206
206
  {{#with f4_2}}
207
207
  {{gauge rawSpec.circle.R rawSpec.circle.r (object tl=6 tr=6 bl=6 br=6) (object start=rawSpec.circle.angles.start end=rawSpec.circle.angles.end) direction fill="#F1F5F9"}}