@baravak/risloo-profile-cli 4.12.1 → 4.13.1

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.12.1",
3
+ "version": "4.13.1",
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 @@
1
+ {"id":"$X1HEXXXX","scale":{"id":"$MCQ-93","title":"پرسشنامه تعارضات زناشويی ثنایی (MCQ)"},"chain":null,"version":"1","edition":"","edition_version":null,"client":{"id":"GH96XXXX","name":"مراجع","user_id":"IR9XXXX"},"room":{"id":"RS9XXXXX","manager":{"id":"GH96XXXX","name":"درمانگر","user_id":"IR96XXXX"},"center":{"id":"RS96XXXXX","acceptation":null,"status":"active","type":"counseling_center","detail":{"title":"مرکز درمانی"}},"acceptation":null,"status":"active","type":"room"},"case":null,"code":null,"created_at":1729347728,"started_at":1729347732,"scored_at":1729483438,"closed_at":1729347739,"total_amount":null,"prepayment":false,"purchased":true,"amount":null,"billing":null,"description":"# دستور اجرا\n\nپاسخگوی عزیز ، لطفا هریک از جملات زیر را به دقت بخوانید و به تمام آن ها پاسخ دهید . برای هر جمله پاسخ های 'همیشه' ، 'اکثرا' ، 'گاهی اوقات' ، ' بندرت' ، و 'هرگز' در نظر گرفته شده است . لطفا با توجه به رابطه زناشویی خود ، برای هر عبارت ، آن را که متناسب است ، را انتخاب کنید .","psychologist_description":null,"items":[{"type":"text","text":"هنگام مرافعه با همسرم، رابطه من با خانواده پدر و مادری او قطع می‌شود.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"5"},{"type":"text","text":"من و همسرم حساب‌های مالی جداگانه داریم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"4"},{"type":"text","text":"همسرم هرکاری از من بخواهد فراموش می کنم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"1"},{"type":"text","text":"هنگام دل‌خوری من و همسرم، هیچ کدام برای رابطه جنسی پیش‌قدم نمی‌شویم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"2"},{"type":"text","text":"من و همسرم کتک کاری می‌کنیم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"1"},{"type":"text","text":"هنگام دل‌خوری، رابطه من با خانواده پدر و مادری خودم قطع می‌شود.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"4"},{"type":"text","text":"برای فرزند (یا فرزندانم) حاضرم انتظارات نامعقول او (یا آنان) را برآورده کنم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"1"},{"type":"text","text":"بدون اطلاع همسرم، برای خود پس‌انداز شخصی دارم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"1"},{"type":"text","text":"وقتی همسرم از من تقاضایی دارد، خودم را به کارهای دیگر مشغول می‌کنم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"1"},{"type":"text","text":"رابطه جنسی من با همسرم ارضاکننده نیست.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"1"},{"type":"text","text":"وقتی با همسرم مرافعه دارم، اتاق یا خانه را ترک می‌کنم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"2"},{"type":"text","text":"به تنهایی با خانواده پدر و مادری خود و خواهر و برادرانم رابطه دارم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"5"},{"type":"text","text":"درآمد همسرم را به بهانه‌های مختلف صرف خواسته‌های شخصی خود می‌کنم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"1"},{"type":"text","text":"همسرم را با ناقص انجام دادن کارهایی که ازمن می‌خواهد تنبیه می کنم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"3"},{"type":"text","text":"همسرم رابطه جنسی را به من تحمیل می‌کند.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"1"},{"type":"text","text":"همسرم را به رفتارهای غیر اخلاقی متهم می‌کنم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"5"},{"type":"text","text":"از اعضای خانواده پدری و مادری‌ام، برای حل اختلافات خود با همسرم، کمک می گیرم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"5"},{"type":"text","text":"فرزند (یا فرزندانم)، اسرار همسرم را به من می گویند.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"5"},{"type":"text","text":"خانواده پدر و مادری همسرم، به من بی‌احترامی می کنند.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"4"},{"type":"text","text":"خرج خانواده، در هر صورت (آشتی یا دعوا) در اختیار من است.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"3"},{"type":"text","text":"همسرم را با بی‌نظمی و نامرتب بودن، آزار می‌دهم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"2"},{"type":"text","text":"وقتی با همسرم دعوا می‌کنم، فریاد می‌زنم و ناسزا می‌گویم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"4"},{"type":"text","text":"خانواده پدر و مادری من، همسرم را با دیگران مقایسه و به حال من دلسوزی می‌کنند.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"1"},{"type":"text","text":"فرزند یا فرزندانم یکی از عوامل مهم حفظ و تداوم رابطه زناشویی من هستند.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"5"},{"type":"text","text":"دوست یا دوستانم در جریان اختلاف من و همسرم هستند.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"2"},{"type":"text","text":"من و همسرم با مشارکت و توافق یکدیگر پول و درآمد خانواده را خرج می کنیم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"1"},{"type":"text","text":"حوصله‌ام از همسرم و خواسته‌هایش سر می رود.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"4"},{"type":"text","text":"هنگام دعوا، تنها رابطه من با همسرم رابطه جنسی است.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"3"},{"type":"text","text":"هنگام نزاع، از همسرم درخواست طلاق می‌کنم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"2"},{"type":"text","text":"خانواده پدری و مادری من، تمام گناه‌ها را به گردن همسرم می‌اندازند.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"3"},{"type":"text","text":"هنگام دعوا بین من و همسرم، فرزند یا فرزندانم از من حمایت می‌کنند.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"1"},{"type":"text","text":"حاضر نیستم برای بدهی‌های همسرم از دیگران پول قرض کنم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"4"},{"type":"text","text":"هنگام دعوا، رابطه جنسی من و همسرم قطع می‌شود.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"3"},{"type":"text","text":"با وجود داشتن همسر، از تنهایی رنج می‌برم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"4"},{"type":"text","text":"همسرم در حضور خانواده پدری و مادری خودم، مرا تحقیر می‌کند.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"2"},{"type":"text","text":"هنگام مرافعه من و همسرم، یکی از فرزندانم زیاد مریض می‌شود و نیاز به مراقبت دارد.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"4"},{"type":"text","text":"همسرم و خانواده‌اش را در مقابل سایرین تحقیر می‌کنم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"5"},{"type":"text","text":"بدون اطلاع همسرم، به والدین خود پول می‌دهم و یا از آن‌ها پول می‌گیرم‌.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"4"},{"type":"text","text":"دعوا با همسرم، مرا نسبت به فعالیت‌های خودم بی‌علاقه می‌کند.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"3"},{"type":"text","text":"با آن دسته از برنامه‌های مهمانی که با حضور خانواده همسرم باشد، مخالفت می‌کنم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"3"},{"type":"text","text":"هنگام دعوا با همسرم نسبت به غذا بی‌اشتها می‌شوم.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"2"},{"type":"text","text":"در هنگام دعوا با همسرم، رابطه من و او با دوستان مشترکمان قطع می‌شود.","answer":{"type":"optional","options":["همیشه","اکثرا","گاهی","به ندرت","هرگز"]},"user_answered":"3"}],"prerequisites":[{"type":"text","label":"gender","text":"جنسیت","answer":{"type":"select","options":["زن","مرد"]},"alias":"gender","force":true,"user_answered":"1"},{"type":"text","label":"age","text":"سن","answer":{"type":"number"},"alias":"age","force":true,"user_answered":"35"},{"type":"text","label":"education","text":"تحصیلات","answer":{"type":"select","options":["ابتدایی اول","ابتدایی دوم","متوسطه اول","متوسطه دوم","دیپلم","کارشناسی","کارشناسی ارشد","پزشکی عمومی","متخصص","دکتری تخصصی","حوزوی مقدمات","حوزوی سطح۱","حوزوی سطح۲","حوزوی سطح۳","حوزوی سطح۴"]},"alias":"education","force":true,"user_answered":"5"},{"type":"text","label":"marital_status","text":"وضعیت تأهل","answer":{"type":"select","options":["مجرد","متأهل"]},"alias":"marital_status","force":true,"user_answered":"2"}],"cornometer":0,"score":{"cooperation_total":19,"cooperation_percentage":0.76,"sexual_activity_total":20,"sexual_activity_percentage":0.8,"emotional_reactions_total":25,"emotional_reactions_percentage":0.625,"child_support_total":14,"child_support_percentage":0.56,"personal_relationships_total":16,"personal_relationships_percentage":0.533,"relatives_relationships_total":14,"relatives_relationships_percentage":0.467,"finances_total":24,"finances_percentage":0.686,"marital_conflict_total":132,"marital_conflict_percentage":0.629},"score_current_version":"1.0.0","score_last_version":"1.0.0"}
@@ -14,20 +14,20 @@ class JSIQ9Q extends Profile {
14
14
  L2: { eng: "section_1_negative_total", },
15
15
  L3: { eng: "section_1_negative_average", },
16
16
 
17
- L4 : {eng: "section_2_total", fr: "", max:400},
17
+ L4 : {eng: "section_2_total", fr: "", max:320},
18
18
  L5 : {eng: "section_2_percentage", fr: "", max:0},
19
- L6 : {eng: "section_2_family_system_consciousness_total", fr: "", max:25},
19
+ L6 : {eng: "section_2_family_system_consciousness_total", fr: "", max:20},
20
20
  L7 : {eng: "section_2_family_system_consciousness_percentage", fr: "", max:0},
21
- L8 : {eng: "section_2_love_giving_total", fr: "", max:120},
21
+ L8 : {eng: "section_2_love_giving_total", fr: "", max:96},
22
22
  L9 : {eng: "section_2_love_giving_percentage", fr: "", max:0},
23
- L10 : {eng: "section_2_power_perception_total", fr: "", max:175},
23
+ L10 : {eng: "section_2_power_perception_total", fr: "", max:140},
24
24
  L12 : {eng: "section_2_power_perception_percentage", fr: "", max:0},
25
- L13 : {eng: "section_2_sexual_safety_awareness_total", fr: "", max:80},
25
+ L13 : {eng: "section_2_sexual_safety_awareness_total", fr: "", max:64},
26
26
  L14 : {eng: "section_2_sexual_safety_awareness_percentage", fr: "", max:0},
27
27
 
28
- L15 : {eng: "section_2_male_safety_awareness_total", fr: "", max:40},
28
+ L15 : {eng: "section_2_male_safety_awareness_total", fr: "", max:32},
29
29
  L16 : {eng: "section_2_male_safety_awareness_percentage", fr: "", max:0},
30
- L17 : {eng: "section_2_perceived_safety_from_spouse_total", fr: "", max:40},
30
+ L17 : {eng: "section_2_perceived_safety_from_spouse_total", fr: "", max:32},
31
31
  L18 : {eng: "section_2_perceived_safety_from_spouse_percentage", fr: "", max:0},
32
32
 
33
33
  };
@@ -71,7 +71,7 @@ class JSIQ9Q extends Profile {
71
71
  dataset,
72
72
  } = this;
73
73
  const rawSpec = {
74
- maxValue: 40,
74
+ maxValue: 32,
75
75
  circle: {
76
76
  R: 55,
77
77
  r: 55 * .65,
@@ -14,20 +14,20 @@ class JSIQ9V extends Profile {
14
14
  L2: { eng: "section_1_negative_total", },
15
15
  L3: { eng: "section_1_negative_average", },
16
16
 
17
- L4 : {eng: "section_2_total", fr: "", max:400},
17
+ L4 : {eng: "section_2_total", fr: "", max:320},
18
18
  L5 : {eng: "section_2_percentage", fr: "", max:0},
19
- L6 : {eng: "section_2_family_system_consciousness_total", fr: "", max:25},
19
+ L6 : {eng: "section_2_family_system_consciousness_total", fr: "", max:20},
20
20
  L7 : {eng: "section_2_family_system_consciousness_percentage", fr: "", max:0},
21
- L8 : {eng: "section_2_power_giving_total", fr: "", max:140},
21
+ L8 : {eng: "section_2_power_giving_total", fr: "", max:112},
22
22
  L9 : {eng: "section_2_power_giving_percentage", fr: "", max:0},
23
- L10 : {eng: "section_2_perception_of_love_total", fr: "", max:150},
23
+ L10 : {eng: "section_2_perception_of_love_total", fr: "", max:120},
24
24
  L12 : {eng: "section_2_perception_of_love_percentage", fr: "", max:0},
25
- L13 : {eng: "section_2_sexual_safety_awareness_total", fr: "", max:85},
25
+ L13 : {eng: "section_2_sexual_safety_awareness_total", fr: "", max:68},
26
26
  L14 : {eng: "section_2_sexual_safety_awareness_percentage", fr: "", max:0},
27
27
 
28
- L15 : {eng: "section_2_female_safety_awareness_total", fr: "", max:30},
28
+ L15 : {eng: "section_2_female_safety_awareness_total", fr: "", max:24},
29
29
  L16 : {eng: "section_2_female_safety_awareness_percentage", fr: "", max:0},
30
- L17 : {eng: "section_2_perceived_spousal_safety_total", fr: "", max:70},
30
+ L17 : {eng: "section_2_perceived_spousal_safety_total", fr: "", max:56},
31
31
  L18 : {eng: "section_2_perceived_spousal_safety_percentage", fr: "", max:0},
32
32
 
33
33
  };
@@ -66,10 +66,6 @@ class JSIQ9V extends Profile {
66
66
  this._init(dataset, options, config);
67
67
  }
68
68
  f4 (data){
69
- const {
70
- spec: { parameters: spec },
71
- dataset,
72
- } = this;
73
69
  const rawSpec = {
74
70
  maxValue: data.label.max,
75
71
  circle: {
@@ -0,0 +1,86 @@
1
+ const { Profile, FS } = require("../Profile");
2
+
3
+
4
+ class MCQ93 extends Profile {
5
+ // Number of pages
6
+ static pages = 1;
7
+
8
+ // Labels of the sample
9
+ labels = {
10
+ L0: {eng: "cooperation_total", fr:"کاهش همکاری", max: 25},
11
+ L1: {eng: "cooperation_percentage"},
12
+
13
+ L2: {eng: "sexual_activity_total", fr:"کاهش روابط جنسی", max: 25},
14
+ L3: {eng: "sexual_activity_percentage"},
15
+
16
+ L4: {eng: "emotional_reactions_total", fr:"افزایش واکنش‌های هیجانی", max: 40},
17
+ L5: {eng: "emotional_reactions_percentage"},
18
+
19
+ L6: {eng: "child_support_total", fr:"افزایش جلب حمایت فرزندان", max: 25},
20
+ L7: {eng: "child_support_percentage"},
21
+
22
+ L8: {eng: "personal_relationships_total", fr:"افزایش رابطه با خویشاوندان خود", max: 30},
23
+ L9: {eng: "personal_relationships_percentage"},
24
+
25
+ L10: {eng: "relatives_relationships_total", fr:"کاهش رابطه با خویشاوندان همسر", max: 30},
26
+ L11: {eng: "relatives_relationships_percentage"},
27
+
28
+ L12: {eng: "finances_total", fr:"جدا کردن امور مالی از یکدیگر", max: 35},
29
+ L13: {eng: "finances_percentage"},
30
+
31
+ L14: {eng: "marital_conflict_total", fr:"نمره کل", max: 210},
32
+ L15: {eng: "marital_conflict_percentage"},
33
+
34
+ };
35
+
36
+ profileSpec = {
37
+ /* "sample" determines some important info about the sample and profile */
38
+ /* Default prerequisites: 1. gender, 2. age, 3. education */
39
+ /* "prerequisites" is synonym to "fields" in our program */
40
+ sample: {
41
+ name: "پرسشنامه تعارضات زناشويی ثنایی (MCQ)" /* Name of the sample */,
42
+ multiProfile: false /* Whether the sample has multiple profiles or not */,
43
+ questions: true /* Determines whether to get questions from inital dataset or not */,
44
+ defaultFields: true /* Determines whether to have default prerequisites in the profile or not */,
45
+ fields: [] /* In case you want to get some additional fields and show in the profile */,
46
+ },
47
+ /* "profile" determines the dimensions of the drawn profile (to be used in svg tag viewbox) */
48
+ /* calculating its dimensions carefully is of great importance */
49
+ profile: {
50
+ get dimensions() {
51
+ return {
52
+ width: 786 + 2 * this.padding.x,
53
+ height: 324 + 2 * this.padding.y,
54
+ };
55
+ },
56
+ padding: {
57
+ x: 58.5,
58
+ y: 195,
59
+ },
60
+ },
61
+ /* "labels" part which has to be provided for each profile */
62
+ labels: Object.values(this.labels),
63
+ };
64
+
65
+ constructor(dataset, options, config = {}) {
66
+ super();
67
+ this._init(dataset, options, config);
68
+ }
69
+ _calcContext() {
70
+ const {
71
+ dataset,
72
+ } = this;
73
+ const factors = dataset.score.filter((d, i) => i % 2 === 0).map((d, i) => {
74
+ return {
75
+ ...d,
76
+ percentage: Math.round(dataset.score[(i*2) + 1].mark * 100)
77
+ }
78
+ })
79
+ const total = factors.splice(-1, 2)
80
+ return [{factors, total: total[0]}];
81
+ }
82
+ }
83
+
84
+
85
+
86
+ module.exports = MCQ93;
@@ -94,15 +94,15 @@
94
94
  </g>
95
95
  <line x1="367" y1="3" x2="367" y2="676" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
96
96
 
97
- <g>
97
+ <g transform="translate(0, 20)">
98
98
  {{#with items.family as | item |}}
99
99
  <g transform="translate({{math 38.5 '+' (math 80.5 '*' 0)}}, 0)">
100
- <text direction="ltr" x="16" y="{{math 273.5 '-' (math item.label.max '*' 1.5)}}" dy=".27em" text-anchor="middle">
100
+ <text direction="ltr" x="16" y="{{math 270 '-' (math item.label.max '*' 2)}}" dy=".27em" text-anchor="middle">
101
101
  <tspan fill="#0369A1" font-size="16" font-weight="500">{{item.mark}}</tspan>
102
102
  <tspan fill="#475569" font-size="12" font-weight="400">/ {{item.label.max}}</tspan>
103
103
  </text>
104
- {{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)"}}
105
- {{bar 32 (math item.mark '*' 1.5 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#softblue)" transform="translate(32, 285)"}}
104
+ {{bar 32 (math item.label.max '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="#F1F5F9" transform="translate(32, 285)"}}
105
+ {{bar 32 (math item.mark '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#softblue)" transform="translate(32, 285)"}}
106
106
  <g transform="translate(0, 316)">
107
107
  <text y="-12" text-anchor="middle" font-size="13" font-weight="400" fill="#475569">
108
108
  <tspan x="17.5">هشیاری نسبت به</tspan>
@@ -118,12 +118,12 @@
118
118
 
119
119
  {{#with items.love as | item |}}
120
120
  <g transform="translate({{math 38.5 '+' (math 80.5 '*' 1)}}, 0)">
121
- <text direction="ltr" x="16" y="{{math 273.5 '-' (math item.label.max '*' 1.5)}}" dy=".27em" text-anchor="middle">
121
+ <text direction="ltr" x="16" y="{{math 270 '-' (math item.label.max '*' 2)}}" dy=".27em" text-anchor="middle">
122
122
  <tspan fill="#0369A1" font-size="16" font-weight="500">{{item.mark}}</tspan>
123
123
  <tspan fill="#475569" font-size="12" font-weight="400">/ {{item.label.max}}</tspan>
124
124
  </text>
125
- {{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)"}}
126
- {{bar 32 (math item.mark '*' 1.5 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#softblue)" transform="translate(32, 285)"}}
125
+ {{bar 32 (math item.label.max '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="#F1F5F9" transform="translate(32, 285)"}}
126
+ {{bar 32 (math item.mark '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#softblue)" transform="translate(32, 285)"}}
127
127
  <g transform="translate(0, 316)">
128
128
  <text x="17.5" y="-12" text-anchor="middle" font-size="13" font-weight="400" fill="#475569">مهردهی</text>
129
129
  <rect height="16" width="35" fill="#F0F9FF" rx="4" />
@@ -134,12 +134,12 @@
134
134
 
135
135
  {{#with items.power as | item |}}
136
136
  <g transform="translate({{math 38.5 '+' (math 80.5 '*' 2)}}, 0)">
137
- <text direction="ltr" x="16" y="{{math 273.5 '-' (math item.label.max '*' 1.5)}}" dy=".27em" text-anchor="middle">
137
+ <text direction="ltr" x="16" y="{{math 270 '-' (math item.label.max '*' 2)}}" dy=".27em" text-anchor="middle">
138
138
  <tspan fill="#0369A1" font-size="16" font-weight="500">{{item.mark}}</tspan>
139
139
  <tspan fill="#475569" font-size="12" font-weight="400">/ {{item.label.max}}</tspan>
140
140
  </text>
141
- {{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)"}}
142
- {{bar 32 (math item.mark '*' 1.5 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#softblue)" transform="translate(32, 285)"}}
141
+ {{bar 32 (math item.label.max '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="#F1F5F9" transform="translate(32, 285)"}}
142
+ {{bar 32 (math item.mark '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#softblue)" transform="translate(32, 285)"}}
143
143
  <g transform="translate(0, 316)">
144
144
  <text x="17.5" y="-12" text-anchor="middle" font-size="13" font-weight="400" fill="#475569">ادراک قدرت</text>
145
145
  <rect height="16" width="35" fill="#F0F9FF" rx="4" />
@@ -150,12 +150,12 @@
150
150
 
151
151
  {{#with items.sexual as | item |}}
152
152
  <g transform="translate({{math 38.5 '+' (math 80.5 '*' 3)}}, 0)">
153
- <text direction="ltr" x="16" y="{{math 273.5 '-' (math item.label.max '*' 1.5)}}" dy=".27em" text-anchor="middle">
153
+ <text direction="ltr" x="16" y="{{math 270 '-' (math item.label.max '*' 2)}}" dy=".27em" text-anchor="middle">
154
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
- {{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)"}}
158
- {{bar 32 (math item.mark '*' 1.5 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#hardblue)" transform="translate(32, 285)"}}
157
+ {{bar 32 (math item.label.max '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="#F1F5F9" transform="translate(32, 285)"}}
158
+ {{bar 32 (math item.mark '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#hardblue)" transform="translate(32, 285)"}}
159
159
  <g transform="translate(0, 316)">
160
160
  <text y="-12" text-anchor="middle" font-size="13" font-weight="400" fill="#475569">
161
161
  <tspan x="17.5">توجه ایمنی</tspan>
@@ -175,16 +175,16 @@
175
175
 
176
176
  <g transform="translate(7.5, 420)">
177
177
  <text y="-14" dy=".35em" text-anchor="end" font-size="13" font-weight="400" fill="#334155">نمره کل</text>
178
- <text y="-14" x="320" dy=".35em" text-anchor="start" font-size="13" font-weight="400" fill="#334155">400</text>
178
+ <text y="-14" x="320" dy=".35em" text-anchor="start" font-size="13" font-weight="400" fill="#334155">{{total.label.max}}</text>
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
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
- <g transform="translate(270.5, 575)">
185
+ <g transform="translate(270.5, 595)">
186
186
  <text y="-60" text-anchor="end" font-size="12" font-weight="400" fill="#475569">0</text>
187
- <text x="-45" y="-8" text-anchor="middle" font-size="12" font-weight="400" fill="#475569">40</text>
187
+ <text x="-45" y="-8" text-anchor="middle" font-size="12" font-weight="400" fill="#475569">{{f4_1.rawSpec.maxValue}}</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
190
  <tspan x="0" y="1em" font-size="16" font-weight="400" fill="#64748B">%{{f4_1.percentage}}</tspan>
@@ -195,10 +195,9 @@
195
195
  {{/with}}
196
196
  <text y="75" text-anchor="middle" font-size="13" font-weight="400" fill="#475569">توجه / ایمنی‌بخشی</text>
197
197
  </g>
198
-
199
198
  <g transform="translate(92.5, 575)">
200
199
  <text y="-60" text-anchor="end" font-size="12" font-weight="400" fill="#475569">0</text>
201
- <text x="-45" y="-8" text-anchor="middle" font-size="12" font-weight="400" fill="#475569">40</text>
200
+ <text x="-45" y="-8" text-anchor="middle" font-size="12" font-weight="400" fill="#475569">{{f4_2.rawSpec.maxValue}}</text>
202
201
  <text y="-.2em" text-anchor="middle">
203
202
  <tspan x="0" font-size="20" font-weight="500" fill="#2563EB">{{f4_2.mark}}</tspan>
204
203
  <tspan x="0" y="1em" font-size="16" font-weight="400" fill="#64748B">%{{f4_2.percentage}}</tspan>
@@ -44,13 +44,11 @@
44
44
  <line x1="235" x2="235" y1="0" y2="470" stroke="#94A3B8" />
45
45
  <path transform="translate(-8, -40)" d="M8.20711 0.292908C7.81658 -0.0976257 7.18342 -0.0976257 6.79289 0.292908L0.428932 6.65686C0.0384078 7.04739 0.0384078 7.68054 0.428932 8.07108C0.819457 8.46158 1.45262 8.46158 1.84315 8.07108L7.5 2.41422L13.1569 8.07108C13.5474 8.46158 14.1805 8.46158 14.5711 8.07108C14.9616 7.68054 14.9616 7.04739 14.5711 6.65686L8.20711 0.292908ZM8.5 511L8.5 1H6.5L6.5 511H8.5Z" fill="#94A3B8"/>
46
46
  <path transform="translate(-2, 462.5)" d="M511.207 8.70711C511.598 8.31658 511.598 7.68342 511.207 7.29289L504.843 0.928932C504.453 0.538408 503.819 0.538408 503.429 0.928932C503.038 1.31946 503.038 1.95262 503.429 2.34315L509.086 8L503.429 13.6569C503.038 14.0474 503.038 14.6805 503.429 15.0711C503.819 15.4616 504.453 15.4616 504.843 15.0711L511.207 8.70711ZM0.5 9H510.5V7H0.5V9Z" fill="#94A3B8"/>
47
- <rect width="94" height="470" fill="#000000" opacity=".03" />
48
- <rect x="94" y="376" width="376" height="94" fill="#000000" opacity=".03" />
49
- <text x="12" y="-10" text-anchor="middle" font-size="12" font-weight="400" fill="#94A3B8">100</text>
50
- <text x="477" y="465" text-anchor="end" font-size="12" font-weight="400" fill="#94A3B8">100</text>
51
- <text x="235" y="-10" text-anchor="middle" font-size="12" font-weight="400" fill="#94A3B8">50</text>
52
- <text x="477" y="238" text-anchor="end" font-size="12" font-weight="400" fill="#94A3B8">50</text>
53
- <text x="-15" y="485" text-anchor="middle" font-size="12" font-weight="400" fill="#94A3B8">0</text>
47
+ <text x="-10" y="-20" text-anchor="start" font-size="12" font-weight="400" fill="#94A3B8">100 ٪</text>
48
+ <text x="505" y="495" text-anchor="end" font-size="12" font-weight="400" fill="#94A3B8">100 ٪</text>
49
+ <text x="235" y="-20" text-anchor="middle" font-size="12" font-weight="400" fill="#94A3B8">50 ٪</text>
50
+ <text x="497" y="238" text-anchor="end" font-size="12" font-weight="400" fill="#94A3B8">50 ٪</text>
51
+ <text x="-20" y="490" text-anchor="middle" font-size="12" font-weight="400" fill="#94A3B8">0</text>
54
52
  <g>
55
53
  <g transform="translate(533, 47)">
56
54
  <g transform="translate(0, {{math 25 '*' 0 }})">
@@ -123,8 +121,8 @@
123
121
  <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
122
  <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
123
 
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>
124
+ <text x="{{math 470 '*' power.percentage}}" y="504" text-anchor="middle" font-size="20" font-weight="700" fill="{{love.color}}">{{power.mark}}</text>
125
+ <text x="-20" y="{{math 470 '*' love.percentage}}" dy=".3em" text-anchor="start" font-size="20" font-weight="700" fill="{{love.color}}">{{love.mark}}</text>
128
126
 
129
127
  </g>
130
128
  </g>
@@ -25,7 +25,6 @@
25
25
  {{/with}}
26
26
  </defs>
27
27
  <g transform="translate({{spec.profile.padding.x}}, {{spec.profile.padding.y}})">
28
- {{!-- <rect x="0" y="0" width="851" height="676" fill="red" opacity=".1" /> --}}
29
28
  <g transform="translate(399, 0)">
30
29
  <text text-anchor="middle" x="226" font-weight="500" font-size="16" fill="#3F3F46" dy=".78em">صفات همسر</text>
31
30
  <g transform="translate(0, 33)" >
@@ -94,15 +93,15 @@
94
93
  </g>
95
94
  <line x1="367" y1="3" x2="367" y2="676" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
96
95
 
97
- <g>
96
+ <g transform="translate(0, 20)">
98
97
  {{#with items.family as | item |}}
99
98
  <g transform="translate({{math 38.5 '+' (math 80.5 '*' 0)}}, 0)">
100
- <text direction="ltr" x="16" y="{{math 273.5 '-' (math item.label.max '*' 1.7)}}" dy=".27em" text-anchor="middle">
99
+ <text direction="ltr" x="16" y="{{math 270 '-' (math item.label.max '*' 2)}}" dy=".27em" text-anchor="middle">
101
100
  <tspan fill="#0369A1" font-size="16" font-weight="500">{{item.mark}}</tspan>
102
101
  <tspan fill="#475569" font-size="12" font-weight="400">/ {{item.label.max}}</tspan>
103
102
  </text>
104
- {{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)"}}
105
- {{bar 32 (math item.mark '*' 1.7 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#softblue)" transform="translate(32, 285)"}}
103
+ {{bar 32 (math item.label.max '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="#F1F5F9" transform="translate(32, 285)"}}
104
+ {{bar 32 (math item.mark '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#softblue)" transform="translate(32, 285)"}}
106
105
  <g transform="translate(0, 316)">
107
106
  <text y="-12" text-anchor="middle" font-size="13" font-weight="400" fill="#475569">
108
107
  <tspan x="17.5">هشیاری نسبت به</tspan>
@@ -118,12 +117,12 @@
118
117
 
119
118
  {{#with items.love as | item |}}
120
119
  <g transform="translate({{math 38.5 '+' (math 80.5 '*' 1)}}, 0)">
121
- <text direction="ltr" x="16" y="{{math 273.5 '-' (math item.label.max '*' 1.7)}}" dy=".27em" text-anchor="middle">
120
+ <text direction="ltr" x="16" y="{{math 270 '-' (math item.label.max '*' 2)}}" dy=".27em" text-anchor="middle">
122
121
  <tspan fill="#0369A1" font-size="16" font-weight="500">{{item.mark}}</tspan>
123
122
  <tspan fill="#475569" font-size="12" font-weight="400">/ {{item.label.max}}</tspan>
124
123
  </text>
125
- {{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)"}}
126
- {{bar 32 (math item.mark '*' 1.7 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#softblue)" transform="translate(32, 285)"}}
124
+ {{bar 32 (math item.label.max '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="#F1F5F9" transform="translate(32, 285)"}}
125
+ {{bar 32 (math item.mark '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#softblue)" transform="translate(32, 285)"}}
127
126
  <g transform="translate(0, 316)">
128
127
  <text x="17.5" y="-12" text-anchor="middle" font-size="13" font-weight="400" fill="#475569">قدرت‌دهی</text>
129
128
  <rect height="16" width="35" fill="#F0F9FF" rx="4" />
@@ -134,12 +133,12 @@
134
133
 
135
134
  {{#with items.power as | item |}}
136
135
  <g transform="translate({{math 38.5 '+' (math 80.5 '*' 2)}}, 0)">
137
- <text direction="ltr" x="16" y="{{math 273.5 '-' (math item.label.max '*' 1.7)}}" dy=".27em" text-anchor="middle">
136
+ <text direction="ltr" x="16" y="{{math 270 '-' (math item.label.max '*' 2)}}" dy=".27em" text-anchor="middle">
138
137
  <tspan fill="#0369A1" font-size="16" font-weight="500">{{item.mark}}</tspan>
139
138
  <tspan fill="#475569" font-size="12" font-weight="400">/ {{item.label.max}}</tspan>
140
139
  </text>
141
- {{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)"}}
142
- {{bar 32 (math item.mark '*' 1.7 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#softblue)" transform="translate(32, 285)"}}
140
+ {{bar 32 (math item.label.max '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="#F1F5F9" transform="translate(32, 285)"}}
141
+ {{bar 32 (math item.mark '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#softblue)" transform="translate(32, 285)"}}
143
142
  <g transform="translate(0, 316)">
144
143
  <text x="17.5" y="-12" text-anchor="middle" font-size="13" font-weight="400" fill="#475569">ادراک مهر</text>
145
144
  <rect height="16" width="35" fill="#F0F9FF" rx="4" />
@@ -150,12 +149,12 @@
150
149
 
151
150
  {{#with items.sexual as | item |}}
152
151
  <g transform="translate({{math 38.5 '+' (math 80.5 '*' 3)}}, 0)">
153
- <text direction="ltr" x="16" y="{{math 273.5 '-' (math item.label.max '*' 1.7)}}" dy=".27em" text-anchor="middle">
152
+ <text direction="ltr" x="16" y="{{math 270 '-' (math item.label.max '*' 2)}}" dy=".27em" text-anchor="middle">
154
153
  <tspan fill="#1d4ed8" font-size="16" font-weight="500">{{item.mark}}</tspan>
155
154
  <tspan fill="#475569" font-size="12" font-weight="400">/ {{item.label.max}}</tspan>
156
155
  </text>
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)"}}
158
- {{bar 32 (math item.mark '*' 1.7 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#hardblue)" transform="translate(32, 285)"}}
156
+ {{bar 32 (math item.label.max '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="#F1F5F9" transform="translate(32, 285)"}}
157
+ {{bar 32 (math item.mark '*' 2 ) (object tl=0 tr=0 br=8 bl=8) (toRad 180) fill="url(#hardblue)" transform="translate(32, 285)"}}
159
158
  <g transform="translate(0, 316)">
160
159
  <text y="-12" text-anchor="middle" font-size="13" font-weight="400" fill="#475569">
161
160
  <tspan x="17.5">توجه ایمنی</tspan>
@@ -175,16 +174,16 @@
175
174
 
176
175
  <g transform="translate(7.5, 420)">
177
176
  <text y="-14" dy=".35em" text-anchor="end" font-size="13" font-weight="400" fill="#334155">نمره کل</text>
178
- <text y="-14" x="320" dy=".35em" text-anchor="start" font-size="13" font-weight="400" fill="#334155">400</text>
177
+ <text y="-14" x="320" dy=".35em" text-anchor="start" font-size="13" font-weight="400" fill="#334155">{{total.label.max}}</text>
179
178
  {{bar 320 20 (object tl=0 tr=10 br=10 bl=0) (toRad 0) fill="#F1F5F9" }}
180
- {{bar (math total.mark '*' 0.8) 20 (object tl=0 tr=10 br=10 bl=0) (toRad 0) fill="#64748B" }}
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="55" x="{{math total.mark '*' 0.8}}" dy=".35em" text-anchor="middle" font-size="12" font-weight="400" fill="#334155">%{{total.percentage}}</text>
179
+ {{bar total.mark 20 (object tl=0 tr=10 br=10 bl=0) (toRad 0) fill="#64748B" }}
180
+ <text y="36" x="{{total.mark}}" dy=".35em" text-anchor="middle" font-size="20" font-weight="500" fill="#334155">{{total.mark}}</text>
181
+ <text y="55" x="{{total.mark}}" dy=".35em" text-anchor="middle" font-size="12" font-weight="400" fill="#334155">%{{total.percentage}}</text>
183
182
  </g>
184
183
  </g>
185
- <g transform="translate(270.5, 575)">
184
+ <g transform="translate(270.5, 595)">
186
185
  <text y="-60" text-anchor="end" font-size="12" font-weight="400" fill="#475569">0</text>
187
- <text x="-45" y="-8" text-anchor="middle" font-size="12" font-weight="400" fill="#475569">30</text>
186
+ <text x="-45" y="-8" text-anchor="middle" font-size="12" font-weight="400" fill="#475569">{{f4_1.rawSpec.maxValue}}</text>
188
187
  <text y="-.2em" text-anchor="middle">
189
188
  <tspan x="0" font-size="20" font-weight="500" fill="#2563EB">{{f4_1.mark}}</tspan>
190
189
  <tspan x="0" y="1em" font-size="16" font-weight="400" fill="#64748B">%{{f4_1.percentage}}</tspan>
@@ -196,9 +195,9 @@
196
195
  <text y="75" text-anchor="middle" font-size="13" font-weight="400" fill="#475569">توجه / ایمنی‌بخشی</text>
197
196
  </g>
198
197
 
199
- <g transform="translate(92.5, 575)">
198
+ <g transform="translate(92.5, 595)">
200
199
  <text y="-60" text-anchor="end" font-size="12" font-weight="400" fill="#475569">0</text>
201
- <text x="-45" y="-8" text-anchor="middle" font-size="12" font-weight="400" fill="#475569">70</text>
200
+ <text x="-45" y="-8" text-anchor="middle" font-size="12" font-weight="400" fill="#475569">{{f4_2.rawSpec.maxValue}}</text>
202
201
  <text y="-.2em" text-anchor="middle">
203
202
  <tspan x="0" font-size="20" font-weight="500" fill="#2563EB">{{f4_2.mark}}</tspan>
204
203
  <tspan x="0" y="1em" font-size="16" font-weight="400" fill="#64748B">%{{f4_2.percentage}}</tspan>
@@ -44,13 +44,11 @@
44
44
  <line x1="235" x2="235" y1="0" y2="470" stroke="#94A3B8" />
45
45
  <path transform="translate(-8, -40)" d="M8.20711 0.292908C7.81658 -0.0976257 7.18342 -0.0976257 6.79289 0.292908L0.428932 6.65686C0.0384078 7.04739 0.0384078 7.68054 0.428932 8.07108C0.819457 8.46158 1.45262 8.46158 1.84315 8.07108L7.5 2.41422L13.1569 8.07108C13.5474 8.46158 14.1805 8.46158 14.5711 8.07108C14.9616 7.68054 14.9616 7.04739 14.5711 6.65686L8.20711 0.292908ZM8.5 511L8.5 1H6.5L6.5 511H8.5Z" fill="#94A3B8"/>
46
46
  <path transform="translate(-2, 462.5)" d="M511.207 8.70711C511.598 8.31658 511.598 7.68342 511.207 7.29289L504.843 0.928932C504.453 0.538408 503.819 0.538408 503.429 0.928932C503.038 1.31946 503.038 1.95262 503.429 2.34315L509.086 8L503.429 13.6569C503.038 14.0474 503.038 14.6805 503.429 15.0711C503.819 15.4616 504.453 15.4616 504.843 15.0711L511.207 8.70711ZM0.5 9H510.5V7H0.5V9Z" fill="#94A3B8"/>
47
- <rect width="94" height="470" fill="#000000" opacity=".03" />
48
- <rect x="94" y="376" width="376" height="94" fill="#000000" opacity=".03" />
49
- <text x="12" y="-10" text-anchor="middle" font-size="12" font-weight="400" fill="#94A3B8">100</text>
50
- <text x="477" y="465" text-anchor="end" font-size="12" font-weight="400" fill="#94A3B8">100</text>
51
- <text x="235" y="-10" text-anchor="middle" font-size="12" font-weight="400" fill="#94A3B8">50</text>
52
- <text x="477" y="238" text-anchor="end" font-size="12" font-weight="400" fill="#94A3B8">50</text>
53
- <text x="-15" y="485" text-anchor="middle" font-size="12" font-weight="400" fill="#94A3B8">0</text>
47
+ <text x="-10" y="-20" text-anchor="start" font-size="12" font-weight="400" fill="#94A3B8">100 ٪</text>
48
+ <text x="505" y="495" text-anchor="end" font-size="12" font-weight="400" fill="#94A3B8">100 ٪</text>
49
+ <text x="235" y="-20" text-anchor="middle" font-size="12" font-weight="400" fill="#94A3B8">50 ٪</text>
50
+ <text x="497" y="238" text-anchor="end" font-size="12" font-weight="400" fill="#94A3B8">50 ٪</text>
51
+ <text x="-20" y="490" text-anchor="middle" font-size="12" font-weight="400" fill="#94A3B8">0</text>
54
52
  <g>
55
53
  <g transform="translate(533, 47)">
56
54
  <g transform="translate(0, {{math 25 '*' 0 }})">
@@ -122,9 +120,9 @@
122
120
  <circle cx="{{math 470 '*' power.percentage}}" cy="{{math 470 '*' love.percentage}}" r="3.5" fill="{{love.color}}" />
123
121
  <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
122
  <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>
123
+
124
+ <text x="{{math 470 '*' power.percentage}}" y="504" text-anchor="middle" font-size="20" font-weight="700" fill="{{love.color}}">{{power.mark}}</text>
125
+ <text x="-20" y="{{math 470 '*' love.percentage}}" dy=".3em" text-anchor="start" font-size="20" font-weight="700" fill="{{love.color}}">{{love.mark}}</text>
128
126
  </g>
129
127
  </g>
130
128
  </g>
@@ -0,0 +1,80 @@
1
+ {{#> layout}}
2
+ <defs>
3
+ <linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="0%">
4
+ <stop offset="0%" style="stop-color:#F1F5F9CC;stop-opacity:0.8" />
5
+ <stop offset="100%" style="stop-color:#ECFEFFCC;stop-opacity:0.8" />
6
+ </linearGradient>
7
+ <linearGradient id="barBG" x1="0%" y1="0%" x2="100%" y2="0%">
8
+ <stop offset="0%" style="stop-color:#E2E8F0;stop-opacity:0.8" />
9
+ <stop offset="100%" style="stop-color:#0E7490;stop-opacity:0.8" />
10
+ </linearGradient>
11
+ <clipPath id="bar">
12
+ {{bar 400 16 (object tr=2 br=2 bl=0 tl=0) (toRad 0) fill="white"}}
13
+ </clipPath>
14
+ <filter id="barBorder" x="0" y="0" width="7" height="310" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
15
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
16
+ <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"/>
17
+ <feOffset dx="1"/>
18
+ <feGaussianBlur stdDeviation="1.5"/>
19
+ <feComposite in2="hardAlpha" operator="out"/>
20
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/>
21
+ <feBlend mode="normal" in2="BackgroundImageFix" result="dshadow"/>
22
+ <feBlend mode="normal" in="SourceGraphic" in2="dshadow" result="shape"/>
23
+ </filter>
24
+ <filter id="totalBarBorder" x="0.5" y="0.5" width="34" height="14" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
25
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
26
+ <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"/>
27
+ <feOffset dx="2"/>
28
+ <feGaussianBlur stdDeviation="3"/>
29
+ <feComposite in2="hardAlpha" operator="out"/>
30
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"/>
31
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_819_87196"/>
32
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_819_87196" result="shape"/>
33
+ </filter>
34
+ </defs>
35
+ <g transform="translate({{spec.profile.padding.x}}, {{spec.profile.padding.y}})">
36
+ <rect y="20" x="184" width="400" height="304" fill="url(#bg)" />
37
+ <g>
38
+ <text x="182" font-weight="400" font-size="12" dy="0.95em" text-anchor="middle" fill="#94A3B8">0</text>
39
+ <text x="384" font-weight="400" font-size="12" dy="0.95em" text-anchor="middle" fill="#94A3B8">50 ٪</text>
40
+ <text x="584" font-weight="400" font-size="12" dy="0.95em" text-anchor="middle" fill="#94A3B8">100 ٪</text>
41
+ <g transform="translate(184, 44)">
42
+ {{#each factors as | item index |}}
43
+ <g transform="translate(0, {{math index '*' 40}})">
44
+ {{bar 400 16 (object tr=2 br=2 bl=0 tl=0) (toRad 0) fill="rgba(0, 0, 0, 0.04)"}}
45
+ </g>
46
+ {{/each}}
47
+ </g>
48
+ {{#forLoop 0 10 1}}
49
+ <line x1="{{math 223 '+' (math i '*' 40)}}" y1="20" x2="{{math 223 '+' (math i '*' 40)}}" y2="323" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
50
+ {{/forLoop}}
51
+ </g>
52
+ <g transform="translate(175, 44)">
53
+ {{#each factors as | item index |}}
54
+ <g transform="translate(0, {{math index '*' 40}})">
55
+ <text font-weight="400" font-size="13" dy="0.95em" text-anchor="start" fill="#475569">{{item.label.fr}}</text>
56
+ {{bar (math 4 '*' item.percentage) 16 (object tr=2 br=2 bl=0 tl=0) (toRad 0) fill="url(#barBG)" transform="translate(9, 0)" clip-path="url(#bar)"}}
57
+ <text x="{{ternary (boolean item.percentage '<=' 10) (math (math 4 '*' item.percentage) '+' 15) (math (math 4 '*' item.percentage) '+' 5)}}" font-weight="500" font-size="13" dy="0.95em" text-anchor="{{ternary (boolean item.percentage '<=' 10) 'end' 'start'}}" fill="{{ternary (boolean item.percentage '<=' 10) '#0E7490' '#FFFFFF '}}">{{item.percentage}} ٪</text>
58
+ <text x="416.5" dy="0.85em" text-anchor="start" direction="ltr">
59
+ <tspan font-weight="700" font-size="18" fill="#0E7490">{{item.mark}}</tspan>
60
+ <tspan font-weight="400" font-size="13" fill="#64748B"> / {{item.label.max}}</tspan>
61
+ </text>
62
+ </g>
63
+ {{/each}}
64
+ </g>
65
+ <g opacity="0.5" filter="url(#barBorder)" transform="translate(181, 18.5)">
66
+ <line x1="2.5" y1="3.5" x2="2.5" y2="306.5" stroke="white" stroke-linecap="round"/>
67
+ </g>
68
+ <g transform="translate(737, 34.5)">
69
+ <text x="-6" font-weight="400" font-size="12" dy="0.45em" text-anchor="start" fill="#475569">210</text>
70
+ <text x="24" y="{{math 252 '-' (math total.mark '*' 1.2)}}" font-weight="600" font-size="18" dy="0" text-anchor="end" fill="#334155">{{total.mark}}</text>
71
+ <text x="24" y="{{math 252 '-' (math total.mark '*' 1.2)}}" font-weight="400" font-size="12" dy="1.2em" text-anchor="end" fill="#64748B">٪{{total.percentage}}</text>
72
+ <text x="-253" y="-9" font-weight="400" font-size="12" dy="0" text-anchor="end" fill="#475569" transform="rotate(-90)">نمره کل</text>
73
+ {{bar 18 252 (object tr=2 br=0 bl=0 tl=2) (toRad 0) fill="#F1F5F9"}}
74
+ {{bar 18 (math total.mark '*' 1.2) (object tr=0 br=2 bl=2 tl=0) (toRad 0) fill="#475569" transform="rotate(180, 9, 126)"}}
75
+ <g opacity="0.5" filter="url(#totalBarBorder)" transform="translate(-6, 245)">
76
+ <path d="M5.5 7.5H25.5" stroke="white" stroke-width="2" stroke-linecap="round"/>
77
+ </g>
78
+ </g>
79
+ </g>
80
+ {{/layout}}