@medicus.ai/medicus-report-pdf-generator 1.0.228 → 1.0.230

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.
@@ -34,14 +34,16 @@ body {
34
34
 
35
35
  .participant-analytics-section.single-section.page {
36
36
  background-color: #fff;
37
- margin-top: -65px;
37
+ margin-top: -20px;
38
38
  }
39
39
 
40
40
  .bottom-section {
41
41
  display: block;
42
42
  width: 100%;
43
-
43
+ page-break-inside: avoid;
44
44
  float: left;
45
+ margin-top:3%;
46
+ page-break-before: avoid;
45
47
  }
46
48
 
47
49
  .page .relations-section-container {
@@ -73,7 +75,7 @@ body {
73
75
  }
74
76
 
75
77
  .first-page .logo {
76
- width: 21.5%
78
+ width: 25%
77
79
  }
78
80
 
79
81
  .first-page .company-logo {
@@ -107,7 +109,7 @@ body {
107
109
  }
108
110
 
109
111
  .report-title {
110
- font-size: 387%;
112
+ font-size: 300%;
111
113
  font-weight: 700;
112
114
  float: right;
113
115
  width: 75%;
@@ -187,7 +189,7 @@ img {
187
189
 
188
190
  .side-chart-container {
189
191
  width: 46%;
190
- float: left;
192
+ display: inline-block;
191
193
  margin-bottom: 5%;
192
194
  }
193
195
 
@@ -227,11 +229,11 @@ td.bar-title span {
227
229
  text-align: right;
228
230
  direction: ltr;
229
231
  }
230
-
232
+ /*
231
233
  .participant-analytics-section .container .side-chart-container:nth-child(odd) .bar-title span {
232
234
  text-align: left;
233
235
  }
234
-
236
+ */
235
237
  .side-chart.side-chart-with-border table tr.empty-tr {
236
238
  height: 52px;
237
239
  }
@@ -264,22 +266,18 @@ td {
264
266
  min-width: 60px;
265
267
  }
266
268
 
267
- .participant-analytics-section .container .side-chart-container:nth-child(even) table {
269
+ .participant-analytics-section .container .side-chart-container table {
268
270
  direction: rtl;
269
271
  }
270
272
 
271
- .participant-analytics-section .container .side-chart-container:nth-child(even) {
272
- float: right;
273
- }
274
-
275
- .participant-analytics-section .container .side-chart-container:nth-child(even) table td.bar-title {
273
+ .participant-analytics-section .container .side-chart-container table td.bar-title {
276
274
  border-right: 1px solid;
277
275
  border-left: 0;
278
276
  padding-right: 13px;
279
277
  padding-left: 0;
280
278
  }
281
279
 
282
- .participant-analytics-section .container .side-chart-container:nth-child(even) table .bar-chart {
280
+ .participant-analytics-section .container .side-chart-container table .bar-chart {
283
281
  float: left;
284
282
  border-radius: 0 20px 20px 0;
285
283
  }
@@ -379,7 +377,7 @@ td {
379
377
  }
380
378
 
381
379
  .single-section td.bar-title {
382
- font-size: 72%;
380
+ font-size: 8.5px;
383
381
  }
384
382
 
385
383
  .relations-section {
@@ -392,19 +390,23 @@ td {
392
390
  }
393
391
 
394
392
  .relations-section .single-relation {
395
- width: 30%;
393
+ width: 48.5%;
396
394
  float: left;
397
395
  padding: 1% 1% 0% 1%;
398
396
  box-sizing: border-box;
399
397
  color: rgb(0, 0, 153);
400
398
  margin-right: 3%;
399
+ margin-bottom: 3%;
401
400
  }
402
-
401
+ .relations-section .single-relation:nth-child(even){
402
+ margin-right: 0
403
+ }
404
+ /*
403
405
  .relations-section .single-relation:nth-child(4n) {
404
406
  margin-right: 5%;
405
407
  width: 30%;
406
408
  }
407
-
409
+ */
408
410
  .relation-title {
409
411
  font-weight: 600;
410
412
  font-size: 83%;
@@ -447,12 +449,14 @@ table.data-by-gender {
447
449
  margin-top: 3%;
448
450
  float: left;
449
451
  text-align: left;
450
- font-size: 91%;
452
+ font-size: 85%;
451
453
  border-spacing: 0;
452
454
  margin-bottom: 6%;
453
455
  page-break-inside: avoid;
454
456
  }
455
-
457
+ table.data-by-gender tr th{
458
+ font-size: 12px;
459
+ }
456
460
  table.data-by-gender tr th:first-child {
457
461
  width: 20%;
458
462
  }
@@ -461,6 +465,9 @@ table.data-by-gender tr td {
461
465
  color: rgb(51, 51, 51);
462
466
  font-size: 80%;
463
467
  }
468
+ table.data-by-gender tr:first-child td{
469
+ border-bottom: 1px solid #5F9CC8;
470
+ }
464
471
 
465
472
  table.data-by-gender th {
466
473
  color: rgb(139, 139, 167);
@@ -472,19 +479,33 @@ table.data-by-gender th {
472
479
  table.data-by-gender tbody tr:first-child td {
473
480
  color: rgb(139, 139, 167);
474
481
  font-weight: 600;
475
- font-size: 9px;
482
+ font-size: 8px;
483
+ }
484
+ table.data-by-gender tbody tr:first-child td:first-child{
485
+ color: rgba(51, 51, 51, 1) !important;
486
+ font-weight: 600;
487
+ font-size: 10px;
476
488
  }
477
-
478
489
  table.data-by-gender td, table.data-by-gender th {
479
490
  padding: 4px;
480
491
  }
481
-
482
- table.data-by-gender tbody tr:nth-child(even) {
483
- background-color: rgb(237, 237, 248);
492
+ table.data-by-gender th:nth-child(2),
493
+ table.data-by-gender th:nth-child(3){
494
+ text-align: center;
495
+ }
496
+ table.data-by-gender th:nth-child(2),
497
+ table.data-by-gender th:nth-child(3),
498
+ table.data-by-gender tbody tr td:nth-child(6),
499
+ table.data-by-gender tbody tr td:nth-child(11){
500
+ border-right: 1px solid rgba(98, 142, 171, 1)
484
501
  }
485
502
 
486
503
  table.data-by-gender tr td:last-child {
487
504
  text-align: center;
505
+ color:rgba(98, 142, 171, 1)
506
+ }
507
+ table.data-by-gender tr td:not(:first-child) {
508
+ text-align: center;
488
509
  }
489
510
 
490
511
  .recommends-section {
@@ -498,6 +519,7 @@ table.data-by-gender tr td:last-child {
498
519
  transform: skewY(3deg);
499
520
  border-top-right-radius: 20px;
500
521
  border-bottom-right-radius: 20px;
522
+ page-break-inside: avoid;
501
523
  }
502
524
 
503
525
  .recommends-section-content {
@@ -40,9 +40,6 @@ td.bar-title span {
40
40
  .participant-analytics-section.single-section.page {
41
41
  margin-top: 0px;
42
42
  }
43
- .participant-analytics-section .container .side-chart-container:nth-child(odd) .bar-title span {
44
- text-align: right;
45
- }
46
43
 
47
44
  .container {
48
45
  padding-right: 0px;
@@ -57,22 +54,18 @@ td.bar-title span {
57
54
  border-bottom-left-radius: 0;
58
55
  }
59
56
 
60
- .participant-analytics-section .container .side-chart-container:nth-child(even) table {
57
+ .participant-analytics-section .container .side-chart-container table {
61
58
  direction: ltr;
62
59
  }
63
60
 
64
- .participant-analytics-section .container .side-chart-container:nth-child(even) {
65
- float: left;
66
- }
67
-
68
- .participant-analytics-section .container .side-chart-container:nth-child(even) table td.bar-title {
61
+ .participant-analytics-section .container .side-chart-container table td.bar-title {
69
62
  border-left: 1px solid;
70
63
  border-right: 0;
71
64
  padding-left: 13px;
72
65
  padding-right: 0;
73
66
  }
74
67
 
75
- .participant-analytics-section .container .side-chart-container:nth-child(even) table .bar-chart {
68
+ .participant-analytics-section .container .side-chart-container table .bar-chart {
76
69
  float: right;
77
70
  border-radius: 20px 0 0 20px;
78
71
  }
@@ -0,0 +1,217 @@
1
+ /*
2
+ This Javascript will en/decrypt a string using the HTML XOR algorithim
3
+ XORCRYPT Version 1.2
4
+
5
+ This version is much faster because it does not use Base64 encoding.
6
+ It is also more difficult to crack, because the key is as long as the
7
+ password, and the only way to hack it is to try every possible password.
8
+
9
+ The latest version has some small bugs cleaned up, reorganized decrypt
10
+ sequence and is now crossplatform, crossbrowser compatible, with the
11
+ exception of Netscape 2.X. It would be possible to make it compatible
12
+ with Netscape 2.X, but I see no point.
13
+
14
+ For more information on this very simple algorithim email me.
15
+
16
+ This script was written by:
17
+ Evan Jones, 1997
18
+ jonesev@home.com
19
+ You may use this script any way you wish as long as you email me and let me know.
20
+ */
21
+
22
+ /* Create the encrypt table */
23
+ // The last char in the table is always the escape code
24
+ // The table is not quite 128 chars, it is 95 (minus the escape char)
25
+ // Values 93-127 must be escaped
26
+
27
+ var cryptTable=new String(" ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 !@#$%^&*()`'-=[];,./?_+{}|:<>~");
28
+ var cryptLength=new Number(cryptTable.length-1) //93 Chars
29
+ var escapeChar=cryptTable.charAt(cryptLength); // The escape code is ~
30
+
31
+ var lineFeed="\n"; //The linefeed char - escaped to double escapeChar
32
+ var doubleQuote='"'; //Double quotes are escaped to ~'
33
+ var clearMessage=new Number(5000); //The number of ms to wait to clear the status bar message
34
+
35
+ /* This function uses the key and encrypts a string with the password */
36
+ // Encryption strips all linefeeds - but they are replaced upon decrypt
37
+ function encrypt(input, password)
38
+ {
39
+ var inChar, inValue, outValue;
40
+
41
+ var output="";
42
+ var arNumberPw = new Array();
43
+
44
+ var pwLength=password.length;
45
+ var inLength=input.length;
46
+
47
+ var stopStatus=Math.round(inLength/10);
48
+ var statusBar=0;
49
+
50
+ for (var pwIndex=0; pwIndex<pwLength; pwIndex++)
51
+ {
52
+ arNumberPw[pwIndex]=cryptTable.indexOf(password.charAt(pwIndex));
53
+ }
54
+
55
+ /* XOR all the chars */
56
+ for (var inIndex=0, pwIndex=0; inIndex<inLength; inIndex++, pwIndex++)
57
+ {
58
+ if (pwIndex==pwLength) //Make sure the password index is in range
59
+ {
60
+ pwIndex=0;
61
+ }
62
+
63
+ /* Get the input */
64
+
65
+ inChar=input.charAt(inIndex)
66
+ inValue=cryptTable.indexOf(inChar);
67
+
68
+ /* Conversion/Escaping Sequence */
69
+ // If the outValue is in the character map, encode it
70
+ // If the encoded value is outside the character map, escape it
71
+ // Else convert it to a char
72
+ // If the input char is a linefeed, escape it
73
+ // If the input char is a double quote, escape it
74
+ // If the input char wasn't found, pass it through
75
+
76
+ if (inValue!=-1)
77
+ {
78
+ outValue=arNumberPw[pwIndex] ^ inValue;
79
+ if (outValue>=cryptLength)
80
+ {
81
+ outValue=escapeChar+cryptTable.charAt(outValue-cryptLength);
82
+ }
83
+ else outValue=cryptTable.charAt(outValue);
84
+ }
85
+ else if (inChar=="\r")
86
+ {
87
+ outValue=escapeChar+escapeChar;
88
+ if (input.charAt(inIndex+1)=="\n") inIndex++; //If it is a 2 char linefeed skip next one
89
+ }
90
+ else if (inChar=="\n")
91
+ {
92
+ outValue=escapeChar+escapeChar;
93
+ }
94
+ else if (inChar==doubleQuote)
95
+ {
96
+ outValue=escapeChar+"'";
97
+ }
98
+ else
99
+ {
100
+ outValue=inChar;
101
+ }
102
+
103
+ output+=outValue; //Output the char
104
+
105
+ /* Status bar progress indicator */
106
+
107
+ if (inIndex>=statusBar)
108
+ {
109
+ window.status=inIndex+"/"+inLength+" characters decrypted ("+Math.round(inIndex/inLength*100)+"%)";
110
+ statusBar+=stopStatus;
111
+ }
112
+ }
113
+
114
+ window.status=inLength+"/"+inLength+" characters encrypted (100%)";
115
+ setTimeout("window.status=''", clearMessage);
116
+
117
+ return output;
118
+ }
119
+
120
+
121
+ /* This function uses the key and encrypts a string with the password */
122
+
123
+ function decrypt(input, password)
124
+ {
125
+ var inChar, inValue, outValue, escape=false;
126
+
127
+ var output="";
128
+ var arNumberPw = new Array();
129
+
130
+ var pwLength=password.length;
131
+ var inLength=input.length;
132
+
133
+ var stopStatus=Math.round(inLength/10);
134
+ var statusBar=0;
135
+
136
+ for (var pwIndex=0; pwIndex<pwLength; pwIndex++)
137
+ {
138
+ arNumberPw[pwIndex]=cryptTable.indexOf(password.charAt(pwIndex));
139
+ }
140
+
141
+ /* XOR all the chars */
142
+ for (var inIndex=0, pwIndex=0; inIndex<inLength; inIndex++, pwIndex++)
143
+ {
144
+ if (pwIndex>=pwLength) //Make sure the password index is in range
145
+ {
146
+ pwIndex=0;
147
+ }
148
+
149
+ /* Get the input */
150
+ inChar=input.charAt(inIndex);
151
+ inValue=cryptTable.indexOf(inChar);
152
+
153
+ /* Decrypting/Unescaping Sequence */
154
+ // If the input char wasn't found, pass it through (error checking)
155
+ // If the last char was an escapeChar
156
+ //And the input is an escapeChar, output a linefeed
157
+ //Or the input is a single quote, output a double quote
158
+ //Otherwise just add the cryptLength to the inValue
159
+ //Turn escape off
160
+ // If the inValue hasn't been coverted to an outValue yet
161
+ // If the inChar is an escapeChar, turn escape on
162
+ // Otherwise decrypt the encrypted character
163
+
164
+ if (inValue==-1)
165
+ {
166
+ outValue=inChar;
167
+ }
168
+
169
+ else if (escape)
170
+ {
171
+ if (inValue==cryptLength)
172
+ {
173
+ outValue=lineFeed;
174
+ inValue=-1;
175
+ }
176
+ else if (inChar=="'")
177
+ {
178
+ outValue=doubleQuote;
179
+ inValue=-1;
180
+ }
181
+ else
182
+ {
183
+ inValue+=cryptLength;
184
+ }
185
+ escape=false;
186
+ }
187
+ else if (inValue==cryptLength)
188
+ {
189
+ escape=true;
190
+ pwIndex--; //Stop the password from incrementing
191
+ outValue="";
192
+ inValue=-1;
193
+ }
194
+
195
+ if (inValue!=-1)
196
+ {
197
+ outValue=cryptTable.charAt(arNumberPw[pwIndex] ^ inValue);
198
+ }
199
+
200
+ /* Output */
201
+
202
+ output+=outValue;
203
+
204
+ /* Status bar progress indicator */
205
+
206
+ if (inIndex>=statusBar)
207
+ {
208
+ window.status=inIndex+"/"+inLength+" characters decrypted ("+Math.round(inIndex/inLength*100)+"%)";
209
+ statusBar+=stopStatus;
210
+ }
211
+ }
212
+
213
+ window.status=inLength+"/"+inLength+" characters decrypted (100%)";
214
+ setTimeout("window.status=''", clearMessage);
215
+
216
+ return output;
217
+ }
@@ -20,12 +20,12 @@
20
20
  "corporate_report":{
21
21
  "logo": "data:image/png;base64,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",
22
22
  "main_color": "rgb(23, 107, 97)",
23
- "report_date_color": "rgb(139, 139, 167)",
23
+ "report_date_color": "rgba(98, 142, 171, 1)",
24
24
  "section_title_color": "rgb(23, 107, 97)",
25
25
  "section_title_border_color": "rgb(112, 162, 147)",
26
26
  "chart_title": "rgb(139, 139, 167)",
27
27
  "summary_background":"#e5f5fc",
28
- "relation_content_border_color":"rgba(0, 0, 153, 0.3)",
28
+ "relation_content_border_color":"rgba(98, 142, 171, 1)",
29
29
  "relation_content_bg":"#f2f2ff",
30
30
  "table_tr_even_bg":"rgb(237, 237, 248)",
31
31
  "recommends_bg":"rgba(0, 0, 153, 0.05)",
@@ -141,7 +141,7 @@ let generateHTMLCorporateReport = async (data, isDebugging) => {
141
141
  '.element-summary-text,.summary-bg{background: ' + summary_background + ' !important;}' +
142
142
  '.relation-content,table.data-by-gender th{border-color: ' + relation_content_border_color + ' !important;}' +
143
143
  '.relation-content{background: ' + relation_content_bg + ' !important;}' +
144
- 'table.data-by-gender tbody tr:nth-child(even){background-color: ' + table_tr_even_bg + ' !important;}' +
144
+ // 'table.data-by-gender tbody tr:nth-child(even){background-color: ' + table_tr_even_bg + ' !important;}' +
145
145
  '.report-date,table.data-by-gender th,table.data-by-gender tbody tr:first-child td,.sources-title{color: ' + report_date_color + ' !important;}' +
146
146
  '.recommends-section{background: ' + recommends_bg + ' !important;}' +
147
147
 
@@ -174,6 +174,7 @@ let generateHTMLCorporateReport = async (data, isDebugging) => {
174
174
  }
175
175
  /*check relations*/
176
176
  if (!empty(element.relations)) {
177
+ console.log("element.relations", element.relations.length)
177
178
  element.relations.map((relation) => {
178
179
  $("#" + pageId + " .relations-section-container .relations-section-titles").append("<div class='single-relation'>" +
179
180
  "<div class='relation-title'>" + relation.title + "</div>" +
@@ -196,10 +197,18 @@ let generateHTMLCorporateReport = async (data, isDebugging) => {
196
197
  })
197
198
  tabelHeaderHTML += '</thead>'
198
199
  let tabelBody = element.dataByGender.slice(1)
199
- let dataByGenderHTML = '<tbody>'
200
+ let dataByGenderHTML = '<tbody>';
201
+ let countTrs = 0
200
202
  tabelBody.map((genderData) => {
203
+ countTrs = countTrs + 1;
201
204
  dataByGenderHTML += "<tr>"
205
+ let CountTds = 0
202
206
  genderData.map((td) => {
207
+ CountTds++;
208
+ let colSpan = 1
209
+ if (CountTds === 1 && countTrs ===1) {
210
+ colSpan = 2
211
+ }
203
212
  dataByGenderHTML += "<td>" + td.value + "</td>"
204
213
  })
205
214
  dataByGenderHTML += "</tr>"
@@ -208,7 +217,7 @@ let generateHTMLCorporateReport = async (data, isDebugging) => {
208
217
  $("#" + pageId + " .data-by-gender").append(tabelHeaderHTML);
209
218
  $("#" + pageId + " .data-by-gender").append(dataByGenderHTML);
210
219
  } else {
211
- $("#" + pageId + " .data-by-gender").remove();
220
+ $("#" + pageId + " .data-by-gender").remove();
212
221
  }
213
222
 
214
223
  if (!empty(element.recommends)) {
@@ -308,7 +317,7 @@ let generatePDFCorporateReport = async (data) => {
308
317
  displayHeaderFooter: true,
309
318
  margin: {
310
319
  top: 0,
311
- bottom: 60,
320
+ bottom: 80,
312
321
  right: 0,
313
322
  left: 0
314
323
  },
@@ -17,6 +17,8 @@ function ecbDecrypt(data, key) {
17
17
  function XORDecrypt(input, key) {
18
18
  var decodedText = atob(input);
19
19
  console.log("decodedText",input)
20
+
21
+ return decodedText;
20
22
  var plainText = '';
21
23
  var length = decodedText.length;
22
24
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@medicus.ai/medicus-report-pdf-generator",
3
- "version": "1.0.228",
3
+ "version": "1.0.230",
4
4
  "description": "Nasco corporate report - latest update in 2/11/2022 - Fix sanusx coprorate report issues",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -12,7 +12,6 @@
12
12
  <div class="relations-section relations-section-content"></div>
13
13
  </div>
14
14
  <table class="data-by-gender">
15
-
16
15
  </table>
17
16
  <div class="bottom-section">
18
17
  <div class="recommends-section">