Skip to content

Commit 6a62fe2

Browse files
committed
Prepare 7.5.4 release
1 parent 167ccd0 commit 6a62fe2

File tree

4 files changed

+47
-28
lines changed

4 files changed

+47
-28
lines changed

build/jsroot.js

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// https://root.cern/js/ v7.5.3
1+
// https://root.cern/js/ v7.5.4
22
(function (global, factory) {
33
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
44
typeof define === 'function' && define.amd ? define(['exports'], factory) :
@@ -7,11 +7,11 @@ typeof define === 'function' && define.amd ? define(['exports'], factory) :
77

88
/** @summary version id
99
* @desc For the JSROOT release the string in format 'major.minor.patch' like '7.0.0' */
10-
const version_id = '7.5.3',
10+
const version_id = '7.5.4',
1111

1212
/** @summary version date
1313
* @desc Release date in format day/month/year like '14/04/2022' */
14-
version_date = '24/11/2023',
14+
version_date = '9/02/2024',
1515

1616
/** @summary version id and date
1717
* @desc Produced by concatenation of {@link version_id} and {@link version_date}
@@ -8484,7 +8484,7 @@ class BasePainter {
84848484
enlarge = select(doc.body)
84858485
.append('div')
84868486
.attr('id', 'jsroot_enlarge_div')
8487-
.attr('style', 'position: fixed; margin: 0px; border: 0px; padding: 0px; inset: 1px; background: white; opacity: 0.95; z-index: 100; overflow: hidden;');
8487+
.attr('style', 'position: fixed; margin: 0px; border: 0px; padding: 0px; left: 1px; top: 1px; bottom: 1px; right: 1px; background: white; opacity: 0.95; z-index: 100; overflow: hidden;');
84888488

84898489
const rect1 = getElementRect(main),
84908490
rect2 = getElementRect(enlarge);
@@ -11726,8 +11726,10 @@ class ObjectPainter extends BasePainter {
1172611726
* Such string typically used as object tooltip.
1172711727
* If result string larger than 20 symbols, it will be cutted. */
1172811728
getObjectHint() {
11729-
const hint = this.getItemName() || this.getObjectName() || this.getClassName() || '';
11730-
return (hint.length <= 20) ? hint : hint.slice(0, 17) + '...';
11729+
const iname = this.getItemName();
11730+
if (iname)
11731+
return (iname.length > 20) ? '...' + iname.slice(iname.length - 17) : iname;
11732+
return this.getObjectName() || this.getClassName() || '';
1173111733
}
1173211734

1173311735
/** @summary returns color from current list of colors
@@ -59618,7 +59620,7 @@ class StandaloneMenu extends JSRootMenu {
5961859620
block = select('body').append('div')
5961959621
.attr('id', `${dlg_id}_block`)
5962059622
.attr('class', 'jsroot_dialog_block')
59621-
.attr('style', 'z-index: 100000; position: absolute; inset: 0px; opacity: 0.2; background-color: white'),
59623+
.attr('style', 'z-index: 100000; position: absolute; left: 0px; top: 0px; bottom: 0px; right: 0px; opacity: 0.2; background-color: white'),
5962259624
element = select('body')
5962359625
.append('div')
5962459626
.attr('id', dlg_id)
@@ -59739,7 +59741,7 @@ function getTimeOffset(axis) {
5973959741
sof = sof.slice(pos + 1);
5974059742
if (!Number.isInteger(val) || (val < min) || (val > max)) return min;
5974159743
return val;
59742-
}, year = next('-', 1970, 2300),
59744+
}, year = next('-', 1900, 2900),
5974359745
month = next('-', 1, 12) - 1,
5974459746
day = next(' ', 1, 31),
5974559747
hour = next(':', 0, 23),
@@ -64665,7 +64667,7 @@ class TabsDisplay extends MDIDisplay {
6466564667

6466664668
if (top.empty()) {
6466764669
top = dom.append('div').attr('class', 'jsroot_tabs')
64668-
.attr('style', 'display: flex; flex-direction: column; position: absolute; overflow: hidden; inset: 0px 0px 0px 0px');
64670+
.attr('style', 'display: flex; flex-direction: column; position: absolute; overflow: hidden; left: 0px; top: 0px; bottom: 0px; right: 0px;');
6466964671
labels = top.append('div').attr('class', 'jsroot_tabs_labels')
6467064672
.attr('style', 'white-space: nowrap; position: relative; overflow-x: auto');
6467164673
main = top.append('div').attr('class', 'jsroot_tabs_main')
@@ -64712,7 +64714,7 @@ class TabsDisplay extends MDIDisplay {
6471264714
const draw_frame = main.append('div')
6471364715
.attr('frame_title', title)
6471464716
.attr('class', 'jsroot_tabs_draw')
64715-
.attr('style', 'overflow: hidden; position: absolute; inset: 0px')
64717+
.attr('style', 'overflow: hidden; position: absolute; left: 0px; top: 0px; bottom: 0px; right: 0px;')
6471664718
.property('frame_id', frame_id);
6471764719

6471864720
this.modifyTabsFrame(frame_id, 'activate');
@@ -65279,7 +65281,7 @@ class BrowserLayout {
6527965281
input_style = settings.DarkMode ? `background-color: #222; color: ${text_color}` : '';
6528065282

6528165283
injectStyle(
65282-
'.jsroot_browser { pointer-events: none; position: absolute; inset: 0px; margin: 0px; border: 0px; overflow: hidden; }'+
65284+
'.jsroot_browser { pointer-events: none; position: absolute; left: 0px; top: 0px; bottom: 0px; right: 0px; margin: 0px; border: 0px; overflow: hidden; }'+
6528365285
`.jsroot_draw_area { background-color: ${bkgr_color}; overflow: hidden; margin: 0px; border: 0px; }`+
6528465286
`.jsroot_browser_area { color: ${text_color}; background-color: ${bkgr_color}; font-size: 12px; font-family: Verdana; pointer-events: all; box-sizing: initial; }`+
6528565287
`.jsroot_browser_area input { ${input_style} }`+
@@ -65301,7 +65303,7 @@ class BrowserLayout {
6530165303
main.append('div').attr('id', this.drawing_divid())
6530265304
.classed('jsroot_draw_area', true)
6530365305
.style('position', 'absolute')
65304-
.style('inset', '0px');
65306+
.style('left', 0).style('top', 0).style('bottom', 0).style('right', 0);
6530565307

6530665308
if (with_browser)
6530765309
main.append('div').classed('jsroot_browser', true);
@@ -66333,7 +66335,7 @@ class TPadPainter extends ObjectPainter {
6633366335
if (this._fixed_size)
6633466336
svg.attr('width', rect.width).attr('height', rect.height);
6633566337
else
66336-
svg.style('width', '100%').style('height', '100%').style('inset', '0px');
66338+
svg.style('width', '100%').style('height', '100%').style('left', 0).style('top', 0).style('bottom', 0).style('right', 0);
6633766339

6633866340
svg.style('filter', settings.DarkMode || this.pad?.$dark ? 'invert(100%)' : null);
6633966341

@@ -78528,8 +78530,10 @@ let TH1Painter$2 = class TH1Painter extends THistPainter {
7852878530
path_err += `M${midx-dlw},${my-yerr1+dend}h${2*dlw}m${-dlw},0v${yerr1+yerr2-2*dend}m${-dlw},0h${2*dlw}`;
7852978531
else
7853078532
path_err += `M${midx},${my-yerr1+dend}v${yerr1+yerr2-2*dend}`;
78531-
if (hints_err !== null)
78532-
hints_err += `M${midx-edx},${my-yerr1}h${2*edx}v${yerr1+yerr2}h${-2*edx}z`;
78533+
if (hints_err !== null) {
78534+
const he1 = Math.max(yerr1, 5), he2 = Math.max(yerr2, 5);
78535+
hints_err += `M${midx-edx},${my-he1}h${2*edx}v${he1+he2}h${-2*edx}z`;
78536+
}
7853378537
}, draw_bin = bin => {
7853478538
if (extract_bin(bin)) {
7853578539
if (show_text) {
@@ -101996,7 +102000,7 @@ class HierarchyPainter extends BasePainter {
101996102000
}
101997102001

101998102002
const pr = this.expandItem(this.itemFullName(hitem));
101999-
if (isPromise(pr))
102003+
if (isPromise(pr) && isObject(promises))
102000102004
promises.push(pr);
102001102005
if (hitem._childs !== undefined) hitem._isopen = true;
102002102006
return hitem._isopen;
@@ -104718,7 +104722,7 @@ async function buildGUI(gui_element, gui_kind = '') {
104718104722
else {
104719104723
select('html').style('height', '100%');
104720104724
select('body').style('min-height', '100%').style('margin', 0).style('overflow', 'hidden');
104721-
myDiv.style('position', 'absolute').style('inset', '0px').style('padding', '1px');
104725+
myDiv.style('position', 'absolute').style('left', 0).style('top', 0).style('bottom', 0).style('right', 0).style('padding', '1px');
104722104726
}
104723104727
}
104724104728

@@ -107470,12 +107474,13 @@ class THStackPainter extends ObjectPainter {
107470107474
lst.Add(clone(stack.fHists.arr[0]), stack.fHists.opt[0]);
107471107475
for (let i = 1; i < nhists; ++i) {
107472107476
const hnext = clone(stack.fHists.arr[i]),
107473-
hnextopt = stack.fHists.opt[i],
107474-
hprev = lst.arr[i-1];
107477+
hnextopt = stack.fHists.opt[i],
107478+
hprev = lst.arr[i-1],
107479+
xnext = hnext.fXaxis, xprev = hprev.fXaxis;
107475107480

107476-
if ((hnext.fNbins !== hprev.fNbins) ||
107477-
(hnext.fXaxis.fXmin !== hprev.fXaxis.fXmin) ||
107478-
(hnext.fXaxis.fXmax !== hprev.fXaxis.fXmax)) {
107481+
if ((xnext.fNbins !== xprev.fNbins) ||
107482+
(xnext.fXmin !== xprev.fXmin) ||
107483+
(xnext.fXmax !== xprev.fXmax)) {
107479107484
console.warn(`When drawing THStack, cannot sum-up histograms ${hnext.fName} and ${hprev.fName}`);
107480107485
lst.Clear();
107481107486
return false;
@@ -110102,8 +110107,14 @@ class TF1Painter extends TH1Painter$2 {
110102110107
const np = Math.max(tf1.fNpx, 100);
110103110108
let iserror = false;
110104110109

110105-
if (!tf1.evalPar && !proivdeEvalPar(tf1))
110106-
iserror = true;
110110+
if (!tf1.evalPar) {
110111+
try {
110112+
if (!proivdeEvalPar(tf1))
110113+
iserror = true;
110114+
} catch {
110115+
iserror = true;
110116+
}
110117+
}
110107110118

110108110119
ensureBins(np);
110109110120

@@ -115757,7 +115768,7 @@ class RPadPainter extends RObjectPainter {
115757115768
.style('width', '100%')
115758115769
.style('height', '100%')
115759115770
.style('position', 'absolute')
115760-
.style('inset', '0px');
115771+
.style('left', 0).style('top', 0).style('bottom', 0).style('right', 0);
115761115772
}
115762115773

115763115774
svg.style('filter', settings.DarkMode ? 'invert(100%)' : null);

changes.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# JSROOT changelog
22

3+
## Changes in 7.5.4
4+
1. Fix - catch excpetion when parsing TF1 formula
5+
2. Fix - properly check THStack histograms axes when doing sum
6+
3. Fix - correctly handle negative offset on time axis
7+
4. Fix - do not use `inset` because of old Chrome browsers
8+
5. Fix - properly provide object hints
9+
10+
311
## Changes in 7.5.3
412
1. Fix - draw histograms with negative bins #276
513
2. Fix - correctly read TLeaf with fixed-size array

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.5.3',
3+
const version_id = '7.5.4',
44

55
/** @summary version date
66
* @desc Release date in format day/month/year like '14/04/2022' */
7-
version_date = '24/11/2023',
7+
version_date = '9/02/2024',
88

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

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "jsroot",
3-
"version": "7.5.3",
3+
"version": "7.5.4",
44
"engines": {
55
"node": ">= 0.18.0"
66
},

0 commit comments

Comments
 (0)