@baravak/risloo-profile-cli 4.25.3 → 4.27.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baravak/risloo-profile-cli",
3
- "version": "4.25.3",
3
+ "version": "4.27.0",
4
4
  "description": "**Risloo Profile CLI** is a library for creating profiles, reports and sheets for *psychological* samples.",
5
5
  "main": "bin/risloo.js",
6
6
  "publishConfig": {
@@ -0,0 +1,674 @@
1
+ {
2
+ "id": "$X1HXXXXX",
3
+ "scale": {
4
+ "id": "$JSGS-93",
5
+ "title": "پرسش‌نامه خودپنداره-خداپنداره دکتر جان‌بزرگی"
6
+ },
7
+ "client": {
8
+ "id": "GH966XXXX",
9
+ "name": "مراجع"
10
+ },
11
+ "room": {
12
+ "id": "RS96XXXX",
13
+ "manager": {
14
+ "id": "GH9XXXXX",
15
+ "name": "درمانگر",
16
+ "user_id": "IR9XXXX"
17
+ },
18
+ "center": {
19
+ "id": "RS966XXXX",
20
+ "acceptation": null,
21
+ "status": "active",
22
+ "type": "personal_clinic",
23
+ "detail": {
24
+ "title": "درمانگر"
25
+ }
26
+ },
27
+ "acceptation": null,
28
+ "status": "active",
29
+ "type": "personal_clinic"
30
+ },
31
+ "version": "1",
32
+ "edition": "",
33
+ "edition_version": null,
34
+
35
+ "code": null,
36
+ "created_at": 1751383137,
37
+ "started_at": 1751383147,
38
+ "scored_at": 1751383216,
39
+ "closed_at": 1751383209,
40
+ "description": "## دستور اجرای آزمون\n\nافراد از این جمله‌ها ممکن است برای توصیف خودشان استفاده کنند. لطفا هر جمله را به دقت بخوانید و ببینید که چقدر به آن جمله اعتقاد دارید یا بر اساس مقیاس فراوانی به آن پاسخ دهید.",
41
+ "psychologist_description": null,
42
+ "items": [
43
+ {
44
+ "type": "text",
45
+ "text": "اولین تصوری که از خدا در ذهنم نقش می‌بندد ویژگی‌هایی است که در افراد مهم زندگیم می‌بینم.",
46
+ "answer": {
47
+ "type": "optional",
48
+ "options": [
49
+ "كاملاًموافقم",
50
+ "تقريباًموافقم",
51
+ "تقريباًمخالفم",
52
+ "كاملاً‌مخالفم"
53
+ ]
54
+ },
55
+ "user_answered": "2"
56
+ },
57
+ {
58
+ "type": "text",
59
+ "text": "تصور می‌کنم نباید چیزی از خدا بخواهم چون او خود می‌داند.",
60
+ "answer": {
61
+ "type": "optional",
62
+ "options": [
63
+ "كاملاًموافقم",
64
+ "تقريباًموافقم",
65
+ "تقريباًمخالفم",
66
+ "كاملاً‌مخالفم"
67
+ ]
68
+ },
69
+ "user_answered": "4"
70
+ },
71
+ {
72
+ "type": "text",
73
+ "text": "به این فکر می‌کنم که چرا باید خدا بنده‌هایش را بازخواست کند.",
74
+ "answer": {
75
+ "type": "optional",
76
+ "options": [
77
+ "كاملاًموافقم",
78
+ "تقريباًموافقم",
79
+ "تقريباًمخالفم",
80
+ "كاملاً‌مخالفم"
81
+ ]
82
+ },
83
+ "user_answered": "3"
84
+ },
85
+ {
86
+ "type": "text",
87
+ "text": "وقتی از دستورات خدا اطاعت نمی‌کنم منتظرم اتفاق بدی بیافتد.",
88
+ "answer": {
89
+ "type": "optional",
90
+ "options": [
91
+ "كاملاًموافقم",
92
+ "تقريباًموافقم",
93
+ "تقريباًمخالفم",
94
+ "كاملاً‌مخالفم"
95
+ ]
96
+ },
97
+ "user_answered": "4"
98
+ },
99
+ {
100
+ "type": "text",
101
+ "text": "نمی‌فهمم چرا باید خدا بنده‌هایش را امتحان کند.",
102
+ "answer": {
103
+ "type": "optional",
104
+ "options": [
105
+ "كاملاًموافقم",
106
+ "تقريباًموافقم",
107
+ "تقريباًمخالفم",
108
+ "كاملاً‌مخالفم"
109
+ ]
110
+ },
111
+ "user_answered": "2"
112
+ },
113
+ {
114
+ "type": "text",
115
+ "text": "عدالت خدا برایم قابل درک نیست وقتی این همه ظلم و تفاوت می‌بینم.",
116
+ "answer": {
117
+ "type": "optional",
118
+ "options": [
119
+ "كاملاًموافقم",
120
+ "تقريباًموافقم",
121
+ "تقريباًمخالفم",
122
+ "كاملاً‌مخالفم"
123
+ ]
124
+ },
125
+ "user_answered": "1"
126
+ },
127
+ {
128
+ "type": "text",
129
+ "text": "احساس می‌کم خداوند توجه خاصی به من دارد.",
130
+ "answer": {
131
+ "type": "optional",
132
+ "options": [
133
+ "كاملاًموافقم",
134
+ "تقريباًموافقم",
135
+ "تقريباًمخالفم",
136
+ "كاملاً‌مخالفم"
137
+ ]
138
+ },
139
+ "user_answered": "2"
140
+ },
141
+ {
142
+ "type": "text",
143
+ "text": "از قوانین حاکم بر عالم خوشحالم و همه چیز را در تدبیر خدا می‌بینم.",
144
+ "answer": {
145
+ "type": "optional",
146
+ "options": [
147
+ "كاملاًموافقم",
148
+ "تقريباًموافقم",
149
+ "تقريباًمخالفم",
150
+ "كاملاً‌مخالفم"
151
+ ]
152
+ },
153
+ "user_answered": "3"
154
+ },
155
+ {
156
+ "type": "text",
157
+ "text": "وقتی خدا هست، از دست دادن و به دست آوردن موقعیت‌ها و افراد خیلی ناراحت یا خوشحالم نمی‌کند.",
158
+ "answer": {
159
+ "type": "optional",
160
+ "options": [
161
+ "كاملاًموافقم",
162
+ "تقريباًموافقم",
163
+ "تقريباًمخالفم",
164
+ "كاملاً‌مخالفم"
165
+ ]
166
+ },
167
+ "user_answered": "2"
168
+ },
169
+ {
170
+ "type": "text",
171
+ "text": "وقتی همه چیز خوب است از یاد خدا غافل می‌شوم.",
172
+ "answer": {
173
+ "type": "optional",
174
+ "options": [
175
+ "كاملاًموافقم",
176
+ "تقريباًموافقم",
177
+ "تقريباًمخالفم",
178
+ "كاملاً‌مخالفم"
179
+ ]
180
+ },
181
+ "user_answered": "2"
182
+ },
183
+ {
184
+ "type": "text",
185
+ "text": "آنچه درباره خدا می‌دانم فراگیری دوران کودکی است.",
186
+ "answer": {
187
+ "type": "optional",
188
+ "options": [
189
+ "كاملاًموافقم",
190
+ "تقريباًموافقم",
191
+ "تقريباًمخالفم",
192
+ "كاملاً‌مخالفم"
193
+ ]
194
+ },
195
+ "user_answered": "2"
196
+ },
197
+ {
198
+ "type": "text",
199
+ "text": "خدا را سخت‌گیر تصور می‌کنم.",
200
+ "answer": {
201
+ "type": "optional",
202
+ "options": [
203
+ "كاملاًموافقم",
204
+ "تقريباًموافقم",
205
+ "تقريباًمخالفم",
206
+ "كاملاً‌مخالفم"
207
+ ]
208
+ },
209
+ "user_answered": "1"
210
+ },
211
+ {
212
+ "type": "text",
213
+ "text": "به من آموخته‌اند اگر خدا را اطاعت کنم به آنچه می‌خواهم، خواهم رسید.",
214
+ "answer": {
215
+ "type": "optional",
216
+ "options": [
217
+ "كاملاًموافقم",
218
+ "تقريباًموافقم",
219
+ "تقريباًمخالفم",
220
+ "كاملاً‌مخالفم"
221
+ ]
222
+ },
223
+ "user_answered": "2"
224
+ },
225
+ {
226
+ "type": "text",
227
+ "text": "می‌ترسم خدا از من انتقام بگیرد.",
228
+ "answer": {
229
+ "type": "optional",
230
+ "options": [
231
+ "كاملاًموافقم",
232
+ "تقريباًموافقم",
233
+ "تقريباًمخالفم",
234
+ "كاملاً‌مخالفم"
235
+ ]
236
+ },
237
+ "user_answered": "3"
238
+ },
239
+ {
240
+ "type": "text",
241
+ "text": "تصورم از خدا تغییر می‌کند.",
242
+ "answer": {
243
+ "type": "optional",
244
+ "options": [
245
+ "كاملاًموافقم",
246
+ "تقريباًموافقم",
247
+ "تقريباًمخالفم",
248
+ "كاملاً‌مخالفم"
249
+ ]
250
+ },
251
+ "user_answered": "2"
252
+ },
253
+ {
254
+ "type": "text",
255
+ "text": "گاهی به خدا آگاه و اغلب به یاد او نیستم.",
256
+ "answer": {
257
+ "type": "optional",
258
+ "options": [
259
+ "كاملاًموافقم",
260
+ "تقريباًموافقم",
261
+ "تقريباًمخالفم",
262
+ "كاملاً‌مخالفم"
263
+ ]
264
+ },
265
+ "user_answered": "1"
266
+ },
267
+ {
268
+ "type": "text",
269
+ "text": "رابطه من با خدا مانند رابطه یک فرزند خطاکار است با والد عصبانی.",
270
+ "answer": {
271
+ "type": "optional",
272
+ "options": [
273
+ "كاملاًموافقم",
274
+ "تقريباًموافقم",
275
+ "تقريباًمخالفم",
276
+ "كاملاً‌مخالفم"
277
+ ]
278
+ },
279
+ "user_answered": "4"
280
+ },
281
+ {
282
+ "type": "text",
283
+ "text": "درباره اینکه خدا چه موجودی است مطالعه نداشته‌ام.",
284
+ "answer": {
285
+ "type": "optional",
286
+ "options": [
287
+ "كاملاًموافقم",
288
+ "تقريباًموافقم",
289
+ "تقريباًمخالفم",
290
+ "كاملاً‌مخالفم"
291
+ ]
292
+ },
293
+ "user_answered": "4"
294
+ },
295
+ {
296
+ "type": "text",
297
+ "text": "حمایت خدا را در زندگی احساس می‌کنم.",
298
+ "answer": {
299
+ "type": "optional",
300
+ "options": [
301
+ "كاملاًموافقم",
302
+ "تقريباًموافقم",
303
+ "تقريباًمخالفم",
304
+ "كاملاً‌مخالفم"
305
+ ]
306
+ },
307
+ "user_answered": "4"
308
+ },
309
+ {
310
+ "type": "text",
311
+ "text": "مهربانی خدا به ما، مانند محبت مادر است به فرزندش.",
312
+ "answer": {
313
+ "type": "optional",
314
+ "options": [
315
+ "كاملاًموافقم",
316
+ "تقريباًموافقم",
317
+ "تقريباًمخالفم",
318
+ "كاملاً‌مخالفم"
319
+ ]
320
+ },
321
+ "user_answered": "3"
322
+ },
323
+ {
324
+ "type": "text",
325
+ "text": "مطمئنم خدا بی‌حساب و کتاب همه را می‌بخشد.",
326
+ "answer": {
327
+ "type": "optional",
328
+ "options": [
329
+ "كاملاًموافقم",
330
+ "تقريباًموافقم",
331
+ "تقريباًمخالفم",
332
+ "كاملاً‌مخالفم"
333
+ ]
334
+ },
335
+ "user_answered": "2"
336
+ },
337
+ {
338
+ "type": "text",
339
+ "text": "توکل به خدا در کارها برایم کفایت می‌کند.",
340
+ "answer": {
341
+ "type": "optional",
342
+ "options": [
343
+ "كاملاًموافقم",
344
+ "تقريباًموافقم",
345
+ "تقريباًمخالفم",
346
+ "كاملاً‌مخالفم"
347
+ ]
348
+ },
349
+ "user_answered": "1"
350
+ },
351
+ {
352
+ "type": "text",
353
+ "text": "خداوند برای کمک به من همواره در دسترس است.",
354
+ "answer": {
355
+ "type": "optional",
356
+ "options": [
357
+ "كاملاًموافقم",
358
+ "تقريباًموافقم",
359
+ "تقريباًمخالفم",
360
+ "كاملاً‌مخالفم"
361
+ ]
362
+ },
363
+ "user_answered": "1"
364
+ },
365
+ {
366
+ "type": "text",
367
+ "text": "فقط موقع سختی‌ها به یاد خدا می‌افتم.",
368
+ "answer": {
369
+ "type": "optional",
370
+ "options": [
371
+ "كاملاًموافقم",
372
+ "تقريباًموافقم",
373
+ "تقريباًمخالفم",
374
+ "كاملاً‌مخالفم"
375
+ ]
376
+ },
377
+ "user_answered": "2"
378
+ },
379
+ {
380
+ "type": "text",
381
+ "text": "من واقعا مالک هیچ چیز نیستم، همه چیز از آن اوست.",
382
+ "answer": {
383
+ "type": "optional",
384
+ "options": [
385
+ "كاملاًموافقم",
386
+ "تقريباًموافقم",
387
+ "تقريباًمخالفم",
388
+ "كاملاً‌مخالفم"
389
+ ]
390
+ },
391
+ "user_answered": "1"
392
+ },
393
+ {
394
+ "type": "text",
395
+ "text": "اغلب تصور مثبتی از خودم ندارم.",
396
+ "answer": {
397
+ "type": "optional",
398
+ "options": [
399
+ "كاملاًموافقم",
400
+ "تقريباًموافقم",
401
+ "تقريباًمخالفم",
402
+ "كاملاً‌مخالفم"
403
+ ]
404
+ },
405
+ "user_answered": "2"
406
+ },
407
+ {
408
+ "type": "text",
409
+ "text": "همواره احساس بی‌ارزشی می‌کنم. کارهایم را بر اساس احساس ارزشمندی انجام نمی‌دهم.",
410
+ "answer": {
411
+ "type": "optional",
412
+ "options": [
413
+ "كاملاًموافقم",
414
+ "تقريباًموافقم",
415
+ "تقريباًمخالفم",
416
+ "كاملاً‌مخالفم"
417
+ ]
418
+ },
419
+ "user_answered": "1"
420
+ },
421
+ {
422
+ "type": "text",
423
+ "text": "همواره دیگران مرا بهتر از آنچه هستم توصیف می‌کنند.",
424
+ "answer": {
425
+ "type": "optional",
426
+ "options": [
427
+ "كاملاًموافقم",
428
+ "تقريباًموافقم",
429
+ "تقريباًمخالفم",
430
+ "كاملاً‌مخالفم"
431
+ ]
432
+ },
433
+ "user_answered": "3"
434
+ },
435
+ {
436
+ "type": "text",
437
+ "text": "اگر بخواهم با سه ویژگی‌ خودم را معرفی کنم... آن‌ها مواردی هستند که دیگران درباره من می‌گویند.",
438
+ "answer": {
439
+ "type": "optional",
440
+ "options": [
441
+ "كاملاًموافقم",
442
+ "تقريباًموافقم",
443
+ "تقريباًمخالفم",
444
+ "كاملاً‌مخالفم"
445
+ ]
446
+ },
447
+ "user_answered": "3"
448
+ },
449
+ {
450
+ "type": "text",
451
+ "text": "دلم نمی‌خواهد ضعفم را دیگران بدانند.",
452
+ "answer": {
453
+ "type": "optional",
454
+ "options": [
455
+ "كاملاًموافقم",
456
+ "تقريباًموافقم",
457
+ "تقريباًمخالفم",
458
+ "كاملاً‌مخالفم"
459
+ ]
460
+ },
461
+ "user_answered": "3"
462
+ },
463
+ {
464
+ "type": "text",
465
+ "text": "نمی‌توانم به راحتی خودم را ببخشم.",
466
+ "answer": {
467
+ "type": "optional",
468
+ "options": [
469
+ "كاملاًموافقم",
470
+ "تقريباًموافقم",
471
+ "تقريباًمخالفم",
472
+ "كاملاً‌مخالفم"
473
+ ]
474
+ },
475
+ "user_answered": "4"
476
+ },
477
+ {
478
+ "type": "text",
479
+ "text": "احساس بلاتکلیفی می‌کنم و تصور روشنی از خودم ندارم.",
480
+ "answer": {
481
+ "type": "optional",
482
+ "options": [
483
+ "كاملاًموافقم",
484
+ "تقريباًموافقم",
485
+ "تقريباًمخالفم",
486
+ "كاملاً‌مخالفم"
487
+ ]
488
+ },
489
+ "user_answered": "3"
490
+ },
491
+ {
492
+ "type": "text",
493
+ "text": "به نظر نمی‌رسد آن قدر خوب باشم که خدا مرا دوست داشته باشد.",
494
+ "answer": {
495
+ "type": "optional",
496
+ "options": [
497
+ "كاملاًموافقم",
498
+ "تقريباًموافقم",
499
+ "تقريباًمخالفم",
500
+ "كاملاً‌مخالفم"
501
+ ]
502
+ },
503
+ "user_answered": "2"
504
+ },
505
+ {
506
+ "type": "text",
507
+ "text": "خودم را از درون خوب تصور می‌کنم.",
508
+ "answer": {
509
+ "type": "optional",
510
+ "options": [
511
+ "كاملاًموافقم",
512
+ "تقريباًموافقم",
513
+ "تقريباًمخالفم",
514
+ "كاملاً‌مخالفم"
515
+ ]
516
+ },
517
+ "user_answered": "1"
518
+ },
519
+ {
520
+ "type": "text",
521
+ "text": "شناخت خودم از خویش، خیلی منطبق است با نظر دیگران درباره من.",
522
+ "answer": {
523
+ "type": "optional",
524
+ "options": [
525
+ "كاملاًموافقم",
526
+ "تقريباًموافقم",
527
+ "تقريباًمخالفم",
528
+ "كاملاً‌مخالفم"
529
+ ]
530
+ },
531
+ "user_answered": "2"
532
+ },
533
+ {
534
+ "type": "text",
535
+ "text": "به نقاط ضعف خودم آگاهم و نگران نیستم که دیگران بفهمند.",
536
+ "answer": {
537
+ "type": "optional",
538
+ "options": [
539
+ "كاملاًموافقم",
540
+ "تقريباًموافقم",
541
+ "تقريباًمخالفم",
542
+ "كاملاً‌مخالفم"
543
+ ]
544
+ },
545
+ "user_answered": "1"
546
+ },
547
+ {
548
+ "type": "text",
549
+ "text": "زندگیم را نتیجه اعمال خودم می‌دانم.",
550
+ "answer": {
551
+ "type": "optional",
552
+ "options": [
553
+ "كاملاًموافقم",
554
+ "تقريباًموافقم",
555
+ "تقريباًمخالفم",
556
+ "كاملاً‌مخالفم"
557
+ ]
558
+ },
559
+ "user_answered": "2"
560
+ },
561
+ {
562
+ "type": "text",
563
+ "text": "برای انسان هیچ چیزی به جز تلاش خودش، فایده‌ای ندارد.",
564
+ "answer": {
565
+ "type": "optional",
566
+ "options": [
567
+ "كاملاًموافقم",
568
+ "تقريباًموافقم",
569
+ "تقريباًمخالفم",
570
+ "كاملاً‌مخالفم"
571
+ ]
572
+ },
573
+ "user_answered": "1"
574
+ },
575
+ {
576
+ "type": "text",
577
+ "text": "برایم مهم نیست که دیگران چه می‌گویند کارهایم را طبق قاعده انجام می‌دهم.",
578
+ "answer": {
579
+ "type": "optional",
580
+ "options": [
581
+ "كاملاًموافقم",
582
+ "تقريباًموافقم",
583
+ "تقريباًمخالفم",
584
+ "كاملاً‌مخالفم"
585
+ ]
586
+ },
587
+ "user_answered": "2"
588
+ },
589
+ {
590
+ "type": "text",
591
+ "text": "وقتی مورد اهانت قرار گیرم، نمی‌توانم فراموش کنم، به هم می‌ریزم و عصبانی می‌شوم.",
592
+ "answer": {
593
+ "type": "optional",
594
+ "options": [
595
+ "كاملاًموافقم",
596
+ "تقريباًموافقم",
597
+ "تقريباًمخالفم",
598
+ "كاملاً‌مخالفم"
599
+ ]
600
+ },
601
+ "user_answered": "3"
602
+ }
603
+ ],
604
+ "prerequisites": [
605
+ {
606
+ "type": "text",
607
+ "label": "gender",
608
+ "text": "جنسیت",
609
+ "answer": { "type": "select", "options": ["زن", "مرد"] },
610
+ "alias": "gender",
611
+ "force": true,
612
+ "user_answered": "2"
613
+ },
614
+ {
615
+ "type": "text",
616
+ "label": "age",
617
+ "text": "سن",
618
+ "answer": { "type": "number" },
619
+ "alias": "age",
620
+ "force": true,
621
+ "user_answered": "34"
622
+ },
623
+ {
624
+ "type": "text",
625
+ "label": "education",
626
+ "text": "تحصیلات",
627
+ "answer": {
628
+ "type": "select",
629
+ "options": [
630
+ "ابتدایی اول",
631
+ "ابتدایی دوم",
632
+ "متوسطه اول",
633
+ "متوسطه دوم",
634
+ "دیپلم",
635
+ "کارشناسی",
636
+ "کارشناسی ارشد",
637
+ "پزشکی عمومی",
638
+ "متخصص",
639
+ "دکتری تخصصی",
640
+ "حوزوی مقدمات",
641
+ "حوزوی سطح۱",
642
+ "حوزوی سطح۲",
643
+ "حوزوی سطح۳",
644
+ "حوزوی سطح۴"
645
+ ]
646
+ },
647
+ "alias": "education",
648
+ "force": true,
649
+ "user_answered": "8"
650
+ },
651
+ {
652
+ "type": "text",
653
+ "label": "marital_status",
654
+ "text": "وضعیت تأهل",
655
+ "answer": { "type": "select", "options": ["مجرد", "متأهل"] },
656
+ "alias": "marital_status",
657
+ "force": true,
658
+ "user_answered": "2"
659
+ }
660
+ ],
661
+ "cornometer": 1,
662
+ "score": {
663
+ "god_image_raw": 40,
664
+ "god_image_percentage": 0.71,
665
+ "god_concept_raw": 34,
666
+ "god_concept_percentage": 0.77,
667
+ "self_image_raw": 15,
668
+ "self_image_percentage": 0.54,
669
+ "self_concept_raw": 19,
670
+ "self_concept_percentage": 0.59
671
+ },
672
+ "score_current_version": "1.0.0",
673
+ "score_last_version": "1.0.0"
674
+ }
@@ -166,6 +166,7 @@ class _16PF93 extends Profile {
166
166
  const secondary = dataset.score.slice(34, 44).map((item, i) => {
167
167
  item.value = parseFloat(item.mark).toString().replace('.', ',')
168
168
  item.mark = parseFloat(Math.min(Math.max(item.mark, 0), 10))
169
+
169
170
  item.label.max = 10
170
171
  item.circle = gauge(item, -90, 270)
171
172
  const row = Math.floor(i / 2)
@@ -0,0 +1,99 @@
1
+ const { Profile, FS } = require("../Profile");
2
+
3
+
4
+ class JSGS93 extends Profile {
5
+ // Number of pages
6
+ static pages = 1;
7
+
8
+ // Labels of the sample
9
+ labels = {
10
+
11
+ L1_1: { eng: "god_image_raw", fr: "خداپنداره", max:56, color:"#64748B"},
12
+ L1_2: { eng: "god_image_percentage"},
13
+ L2_1: { eng: "god_concept_raw", fr: "خداپنداشت", max:44, color:"#0284C7"},
14
+ L2_2: { eng: "god_concept_percentage"},
15
+
16
+ L3_1: { eng: "self_image_raw", fr: "خودپنداره", max:28, color:"#64748B"},
17
+ L3_2: { eng: "self_image_percentage"},
18
+ L4_1: { eng: "self_concept_raw", fr: "خودپنداشت", max:32, color:"#65A30D"},
19
+ L4_2: { eng: "self_concept_percentage"},
20
+
21
+ };
22
+
23
+ profileSpec = {
24
+ /* "sample" determines some important info about the sample and profile */
25
+ /* Default prerequisites: 1. gender, 2. age, 3. education */
26
+ /* "prerequisites" is synonym to "fields" in our program */
27
+ sample: {
28
+ name: "پرسشنامه خودپنداره - خداپنداره جان‌بزرگی" /* Name of the sample */,
29
+ multiProfile: false /* Whether the sample has multiple profiles or not */,
30
+ questions: true /* Determines whether to get questions from inital dataset or not */,
31
+ defaultFields: true /* Determines whether to have default prerequisites in the profile or not */,
32
+ fields: [] /* In case you want to get some additional fields and show in the profile */,
33
+ },
34
+ /* "profile" determines the dimensions of the drawn profile (to be used in svg tag viewbox) */
35
+ /* calculating its dimensions carefully is of great importance */
36
+ profile: {
37
+ get dimensions() {
38
+ return {
39
+ width: 401 + 2 * this.padding.x,
40
+ height: 501 + 2 * this.padding.y,
41
+ };
42
+ },
43
+ padding: {
44
+ x: 251,
45
+ y: 106.5,
46
+ },
47
+ },
48
+ /* "labels" part which has to be provided for each profile */
49
+ labels: Object.values(this.labels),
50
+ };
51
+ circle (data){
52
+ data.mark = data.mark?? 0;
53
+ data.percentage = data.percentage?? 0;
54
+ const circleData = {
55
+ R: 80 ,
56
+ r: 80 * .7,
57
+ angles: {
58
+ start: FS.toRadians(-90),
59
+ end: FS.toRadians(180),
60
+ },
61
+ direction: false,
62
+ get totalAngle() {
63
+ return this.direction
64
+ ? 2 * Math.PI - (this.angles.end - this.angles.start)
65
+ : this.angles.end - this.angles.start;
66
+ },
67
+ }
68
+ return {
69
+ circle: circleData,
70
+ mark: data.mark,
71
+ label: data.label.fr,
72
+ bg: data.label.bg,
73
+ color: data.label.color,
74
+ max: data.label.max,
75
+ percentage: Math.round(data.percentage * 100),
76
+ zeta: (data.mark / data.label.max) * circleData.totalAngle + circleData.angles.start,
77
+ };
78
+ }
79
+ constructor(dataset, options, config = {}) {
80
+ super();
81
+ this._init(dataset, options, config);
82
+ }
83
+ _calcContext() {
84
+ const {
85
+ dataset,
86
+ } = this;
87
+
88
+ return [{
89
+ god_image: this.circle({...dataset.score[0], mark: dataset.score[0].mark ?? 0, percentage: dataset.score[1].mark ?? 0}),
90
+ god_concept: this.circle({...dataset.score[2], mark: dataset.score[2].mark ?? 0, percentage: dataset.score[3].mark ?? 0}),
91
+ self_image: this.circle({...dataset.score[4], mark: dataset.score[4].mark ?? 0, percentage: dataset.score[5].mark ?? 0}),
92
+ self_concept: this.circle({...dataset.score[6], mark: dataset.score[6].mark ?? 0, percentage: dataset.score[7].mark ?? 0}),
93
+ }];
94
+ }
95
+ }
96
+
97
+
98
+
99
+ module.exports = JSGS93;
@@ -0,0 +1,50 @@
1
+ {{#> layout}}
2
+ <g transform="translate({{spec.profile.padding.x}}, {{spec.profile.padding.y}})">
3
+ <g transform="translate(80,80)">
4
+ {{#with god_concept}}
5
+ {{gauge circle.R circle.r (object tl=6 tr=6 bl=6 br=6) (object start=circle.angles.start end=circle.angles.end) direction fill="#F3F4F6"}}
6
+ {{gauge circle.R circle.r (object tl=6 tr=0 bl=6 br=0) (object start=circle.angles.start end=zeta) direction fill=color}}
7
+ <text y="-10" text-anchor="middle" dy=".3em" font-size="32" font-weight="500" fill="{{color}}">٪{{percentage}}</text>
8
+ <text y="20" text-anchor="middle" dy=".3em" font-size="18" font-weight="400" fill="{{color}}">{{mark}}</text>
9
+ <text y="-68" x="-12" text-anchor="middle" dy=".3em" font-size="14" font-weight="500" fill="#6B7280">0</text>
10
+ <text y="-14" x="-68" text-anchor="middle" dy=".3em" font-size="14" font-weight="500" fill="#6B7280">{{max}}</text>
11
+ <text y="98" text-anchor="middle" dy=".90em" font-size="18" font-weight="500" fill="{{color}}">{{label}}</text>
12
+ {{/with}}
13
+ </g>
14
+ <g transform="translate(340,80)">
15
+ {{#with god_image}}
16
+ {{gauge circle.R circle.r (object tl=6 tr=6 bl=6 br=6) (object start=circle.angles.start end=circle.angles.end) direction fill="#F3F4F6"}}
17
+ {{gauge circle.R circle.r (object tl=6 tr=0 bl=6 br=0) (object start=circle.angles.start end=zeta) direction fill=color}}
18
+ <text y="-10" text-anchor="middle" dy=".3em" font-size="32" font-weight="500" fill="{{color}}">٪{{percentage}}</text>
19
+ <text y="20" text-anchor="middle" dy=".3em" font-size="18" font-weight="400" fill="{{color}}">{{mark}}</text>
20
+ <text y="-68" x="-12" text-anchor="middle" dy=".3em" font-size="14" font-weight="500" fill="#6B7280">0</text>
21
+ <text y="-14" x="-68" text-anchor="middle" dy=".3em" font-size="14" font-weight="500" fill="#6B7280">{{max}}</text>
22
+ <text y="98" text-anchor="middle" dy=".90em" font-size="18" font-weight="500" fill="{{color}}">{{label}}</text>
23
+ {{/with}}
24
+ </g>
25
+ <line x1="0" x2="400" y1="250" y2="250" stroke="#F3F4F6" />
26
+ <g transform="translate(80,379)">
27
+ {{#with self_concept}}
28
+ {{gauge circle.R circle.r (object tl=6 tr=6 bl=6 br=6) (object start=circle.angles.start end=circle.angles.end) direction fill="#F3F4F6"}}
29
+ {{gauge circle.R circle.r (object tl=6 tr=0 bl=6 br=0) (object start=circle.angles.start end=zeta) direction fill=color}}
30
+ <text y="-10" text-anchor="middle" dy=".3em" font-size="32" font-weight="500" fill="{{color}}">٪{{percentage}}</text>
31
+ <text y="20" text-anchor="middle" dy=".3em" font-size="18" font-weight="400" fill="{{color}}">{{mark}}</text>
32
+ <text y="-68" x="-12" text-anchor="middle" dy=".3em" font-size="14" font-weight="500" fill="#6B7280">0</text>
33
+ <text y="-14" x="-68" text-anchor="middle" dy=".3em" font-size="14" font-weight="500" fill="#6B7280">{{max}}</text>
34
+ <text y="98" text-anchor="middle" dy=".90em" font-size="18" font-weight="500" fill="{{color}}">{{label}}</text>
35
+ {{/with}}
36
+ </g>
37
+ <g transform="translate(340,379)">
38
+ {{#with self_image}}
39
+ {{gauge circle.R circle.r (object tl=6 tr=6 bl=6 br=6) (object start=circle.angles.start end=circle.angles.end) direction fill="#F3F4F6"}}
40
+ {{gauge circle.R circle.r (object tl=6 tr=0 bl=6 br=0) (object start=circle.angles.start end=zeta) direction fill=color}}
41
+ <text y="-10" text-anchor="middle" dy=".3em" font-size="32" font-weight="500" fill="{{color}}">٪{{percentage}}</text>
42
+ <text y="20" text-anchor="middle" dy=".3em" font-size="18" font-weight="400" fill="{{color}}">{{mark}}</text>
43
+ <text y="-68" x="-12" text-anchor="middle" dy=".3em" font-size="14" font-weight="500" fill="#6B7280">0</text>
44
+ <text y="-14" x="-68" text-anchor="middle" dy=".3em" font-size="14" font-weight="500" fill="#6B7280">{{max}}</text>
45
+ <text y="98" text-anchor="middle" dy=".90em" font-size="18" font-weight="500" fill="{{color}}">{{label}}</text>
46
+ {{/with}}
47
+ </g>
48
+ </g>
49
+
50
+ {{/layout}}