Skip to content

Commit 5083880

Browse files
committed
Build, changes and date for version 7.9.3
1 parent 8b7b49a commit 5083880

File tree

4 files changed

+219
-270
lines changed

4 files changed

+219
-270
lines changed

build/jsroot.js

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ typeof define === 'function' && define.amd ? define(['exports'], factory) :
88
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
99
/** @summary version id
1010
* @desc For the JSROOT release the string in format 'major.minor.patch' like '7.0.0' */
11-
const version_id = '7.9.x',
11+
const version_id = '7.9.3',
1212

1313
/** @summary version date
1414
* @desc Release date in format day/month/year like '14/04/2022' */
15-
version_date = '14/10/2025',
15+
version_date = '21/10/2025',
1616

1717
/** @summary version id and date
1818
* @desc Produced by concatenation of {@link version_id} and {@link version_date}
@@ -13903,24 +13903,24 @@ function drawRawText(dom, txt /* , opt */) {
1390313903
if (!isStr(stxt))
1390413904
stxt = '<undefined>';
1390513905

13906-
const mathjax = this.txt.mathjax || (settings.Latex === constants$1.Latex.AlwaysMathJax);
13907-
13908-
if (!mathjax && !('as_is' in this.txt)) {
13909-
const arr = stxt.split('\n');
13910-
stxt = '';
13911-
for (let i = 0; i < arr.length; ++i)
13912-
stxt += `<pre style='margin:0'>${arr[i]}</pre>`;
13913-
}
13914-
13915-
const frame = this.selectDom();
13906+
const mathjax = this.txt.mathjax || (settings.Latex === constants$1.Latex.AlwaysMathJax),
13907+
frame = this.selectDom();
1391613908
let main = frame.select('div');
1391713909
if (main.empty())
1391813910
main = frame.append('div').attr('style', 'max-width:100%;max-height:100%;overflow:auto');
13919-
main.html(stxt);
13911+
else
13912+
main.html('');
1392013913

1392113914
// (re) set painter to first child element, base painter not requires canvas
1392213915
this.setTopPainter();
1392313916

13917+
if (!mathjax && !('as_is' in this.txt)) {
13918+
const arr = stxt.split('\n');
13919+
for (let i = 0; i < arr.length; ++i)
13920+
main.append('pre').style('margin', '0').text(arr[i]);
13921+
} else
13922+
main.text(stxt);
13923+
1392413924
if (mathjax)
1392513925
typesetMathjax(frame.node());
1392613926

@@ -71015,7 +71015,7 @@ class StandaloneMenu extends JSRootMenu {
7101571015
text.style.display = 'flex';
7101671016

7101771017
const chk = doc.createElement('span');
71018-
chk.innerHTML = d.checked ? '\u2713' : '';
71018+
chk.innerText = d.checked ? '\u2713' : '';
7101971019
chk.style.display = 'inline-block';
7102071020
chk.style.width = '1em';
7102171021
text.appendChild(chk);
@@ -71028,7 +71028,7 @@ class StandaloneMenu extends JSRootMenu {
7102871028
} else {
7102971029
if (need_check_area) {
7103071030
const chk = doc.createElement('span');
71031-
chk.innerHTML = d.checked ? '\u2713' : '';
71031+
chk.innerText = d.checked ? '\u2713' : '';
7103271032
chk.style.display = 'inline-block';
7103371033
chk.style.width = '1em';
7103471034
text.appendChild(chk);
@@ -76863,10 +76863,12 @@ class FlexibleDisplay extends MDIDisplay {
7686376863
main = top.append('div');
7686476864

7686576865
main.html('<div class=\'jsroot_flex_header\' style=\'height: 23px; overflow: hidden; background-color: lightblue\'>' +
76866-
`<p style='margin: 1px; float: left; font-size: 14px; padding-left: 5px'>${title}</p></div>`+
76867-
`<div id='${this.frameid}_cont${this.cnt}' class='jsroot_flex_draw' style='overflow: hidden; width: 100%; height: calc(100% - 24px); background: white'></div>`+
76866+
'<p style=\'margin: 1px; float: left; font-size: 14px; padding-left: 5px\'></p></div>' +
76867+
`<div id='${this.frameid}_cont${this.cnt}' class='jsroot_flex_draw' style='overflow: hidden; width: 100%; height: calc(100% - 24px); background: white'></div>` +
7686876868
'<div class=\'jsroot_flex_resize\' style=\'position: absolute; right: 3px; bottom: 1px; overflow: hidden; cursor: nwse-resize\'>&#x25FF;</div>');
7686976869

76870+
main.select('.jsroot_flex_header p').text(title);
76871+
7687076872
main.attr('class', 'jsroot_flex_frame')
7687176873
.style('position', 'absolute')
7687276874
.style('left', Math.round(w * (this.cnt % 5)/10) + 'px')
@@ -155421,7 +155423,7 @@ function objectHierarchy(top, obj, args = undefined) {
155421155423
item._vclass = cssValueNum;
155422155424
} else if (isStr(fld)) {
155423155425
simple = true;
155424-
item._value = '&quot;' + fld.replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;') + '&quot;';
155426+
item._value = '"' + fld + '"';
155425155427
item._vclass = 'h_value_str';
155426155428
} else if (typeof fld === 'undefined') {
155427155429
simple = true;
@@ -156216,8 +156218,10 @@ class HierarchyPainter extends BasePainter {
156216156218

156217156219
if ('_value' in hitem) {
156218156220
const d3p = d3line.append('p');
156219-
if ('_vclass' in hitem) d3p.attr('class', hitem._vclass);
156220-
if (!hitem._isopen) d3p.html(hitem._value);
156221+
if ('_vclass' in hitem)
156222+
d3p.attr('class', hitem._vclass);
156223+
if (!hitem._isopen)
156224+
d3p.text(hitem._value);
156221156225
}
156222156226

156223156227
if (has_childs && (isroot || hitem._isopen)) {
@@ -158795,7 +158799,7 @@ class HierarchyPainter extends BasePainter {
158795158799
const layout = main.select('.gui_layout');
158796158800
if (!layout.empty()) {
158797158801
['simple', 'vert2', 'vert3', 'vert231', 'horiz2', 'horiz32', 'flex', 'tabs',
158798-
'grid 2x2', 'grid 1x3', 'grid 2x3', 'grid 3x3', 'grid 4x4'].forEach(kind => layout.append('option').attr('value', kind).html(kind));
158802+
'grid 2x2', 'grid 1x3', 'grid 2x3', 'grid 3x3', 'grid 4x4'].forEach(kind => layout.append('option').attr('value', kind).text(kind));
158799158803

158800158804
layout.on('change', ev => {
158801158805
const kind = ev.target.value || 'flex';
@@ -158835,7 +158839,7 @@ class HierarchyPainter extends BasePainter {
158835158839
}
158836158840
if (!found) {
158837158841
const opt = document.createElement('option');
158838-
opt.innerHTML = opt.value = this.getLayout();
158842+
opt.innerText = opt.value = this.getLayout();
158839158843
selects.appendChild(opt);
158840158844
selects.selectedIndex = selects.options.length - 1;
158841158845
}

changes.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
# JSROOT changelog
22

3-
## Changes in 7.9.x
3+
## Changes in 7.9.3
44
1. Fix - store large PDF with 3D drawing inside
5+
2. Fix - prevent JS code injection via `TObjString` drawing
6+
3. Fix - reduce use of HTML in hpainter, display and menu components
57

68

79
## Changes in 7.9.2

modules/core.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
/** @summary version id
22
* @desc For the JSROOT release the string in format 'major.minor.patch' like '7.0.0' */
3-
const version_id = '7.9.x',
3+
const version_id = '7.9.3',
44

55
/** @summary version date
66
* @desc Release date in format day/month/year like '14/04/2022' */
7-
version_date = '14/10/2025',
7+
version_date = '21/10/2025',
88

99
/** @summary version id and date
1010
* @desc Produced by concatenation of {@link version_id} and {@link version_date}

0 commit comments

Comments
 (0)