@@ -14,7 +14,7 @@ const version_id = 'dev',
1414
1515/** @summary version date
1616 * @desc Release date in format day/month/year like '14/04/2022' */
17- version_date = '10 /10/2025',
17+ version_date = '13 /10/2025',
1818
1919/** @summary version id and date
2020 * @desc Produced by concatenation of {@link version_id} and {@link version_date}
@@ -165486,7 +165486,7 @@ const drawFuncs = { lst: [
165486165486 { name: 'TEveGeoShapeExtract', sameas: clTGeoVolume, opt: ';more;all;count;projx;projz;wire;dflt' },
165487165487 { name: nsREX + 'REveGeoShapeExtract', sameas: clTGeoVolume, opt: ';more;all;count;projx;projz;wire;dflt' },
165488165488 { name: 'TGeoOverlap', sameas: clTGeoVolume, opt: ';more;all;count;projx;projz;wire;dflt', dflt: 'dflt', ctrl: 'expand' },
165489- { name: 'TGeoManager', sameas: clTGeoVolume, opt: ';more;all;count;projx;projz;wire;tracks;no_screen;dflt', dflt: 'expand', pm: true, ctrl: 'dflt', noappend: true, exapnd_after_draw : true },
165489+ { name: 'TGeoManager', sameas: clTGeoVolume, opt: ';more;all;count;projx;projz;wire;tracks;no_screen;dflt', dflt: 'expand', pm: true, ctrl: 'dflt', noappend: true, expand_after_draw : true },
165490165490 { name: 'TGeoVolumeAssembly', sameas: clTGeoVolume, /* icon: 'img_geoassembly', */ opt: ';more;all;count' },
165491165491 { name: /^TGeo/, class: () => import_geo().then(h => h.TGeoPainter), get_expand: () => import_geo().then(h => h.expandGeoObject), opt: ';more;all;axis;compa;count;projx;projz;wire;no_screen;dflt', dflt: 'dflt', ctrl: 'expand' },
165492165492 { name: 'TAxis3D', icon: 'img_graph', draw: () => import_geo().then(h => h.drawAxis3D), direct: true },
@@ -167629,15 +167629,20 @@ class HierarchyPainter extends BasePainter {
167629167629
167630167630 /** @summary Expand to specified level
167631167631 * @protected */
167632- async exapndToLevel (level) {
167632+ async expandToLevel (level) {
167633167633 if (!level || !Number.isFinite(level) || (level < 0))
167634167634 return this;
167635167635
167636167636 const promises = [];
167637167637 this.toggleOpenState(true, this.h, promises);
167638- return Promise.all(promises).then(() => this.exapndToLevel (level - 1));
167638+ return Promise.all(promises).then(() => this.expandToLevel (level - 1));
167639167639 }
167640167640
167641+ /** @summary Expand to specified level
167642+ * @deprecated will be removed in version 8, kept only for backward compatibility
167643+ * @protected */
167644+ async exapndToLevel(level) { return this.expandToLevel(level); }
167645+
167641167646 /** @summary Refresh HTML code of hierarchy painter
167642167647 * @return {Promise} when done */
167643167648 async refreshHtml() {
@@ -167888,7 +167893,7 @@ class HierarchyPainter extends BasePainter {
167888167893 }
167889167894
167890167895 // special feature - all items with '_expand' function are not drawn by click
167891- if ((place === 'item') && ('_expand' in hitem) && !evnt.ctrlKey && !evnt.shiftKey)
167896+ if ((place === 'item') && ('_expand' in hitem) && !hitem._expand_miss && ! evnt.ctrlKey && !evnt.shiftKey)
167892167897 place = kPM;
167893167898
167894167899 // special case - one should expand item
@@ -167945,7 +167950,7 @@ class HierarchyPainter extends BasePainter {
167945167950 if (can_draw && can_expand && !drawopt) {
167946167951 // if default action specified as expand, disable drawing
167947167952 // if already displayed, try to expand
167948- if (dflt_expand || (handle?.dflt === kExpand) || (handle?.exapnd_after_draw && this.isItemDisplayed(itemname)))
167953+ if (dflt_expand || (handle?.dflt === kExpand) || (handle?.expand_after_draw && this.isItemDisplayed(itemname)))
167949167954 can_draw = false;
167950167955 }
167951167956
@@ -168227,7 +168232,7 @@ class HierarchyPainter extends BasePainter {
168227168232
168228168233 if ((sett.expand || sett.get_expand) && (hitem._more || hitem._more === undefined)) {
168229168234 if (hitem._childs === undefined)
168230- menu.add('Expand', () => this.expandItem(itemname), 'Exapnd content of object');
168235+ menu.add('Expand', () => this.expandItem(itemname), 'Expand content of object');
168231168236 else {
168232168237 menu.add('Unexpand', () => {
168233168238 hitem._more = true;
@@ -168949,7 +168954,24 @@ class HierarchyPainter extends BasePainter {
168949168954 if (!hitem && d3cont)
168950168955 return;
168951168956
168957+ function doneExpandItem(_item) {
168958+ if (_item._childs === undefined)
168959+ _item._expand_miss = true;
168960+ else {
168961+ _item._isopen = true;
168962+ if (_item._parent && !_item._parent._isopen) {
168963+ _item._parent._isopen = true; // also show parent
168964+ if (!silent)
168965+ hpainter.updateTreeNode(_item._parent);
168966+ } else if (!silent)
168967+ hpainter.updateTreeNode(_item, d3cont);
168968+ }
168969+ return _item;
168970+ }
168971+
168952168972 async function doExpandItem(_item, _obj) {
168973+ delete _item._expand_miss;
168974+
168953168975 if (isStr(_item._expand))
168954168976 _item._expand = findFunction(_item._expand);
168955168977
@@ -168981,30 +169003,15 @@ class HierarchyPainter extends BasePainter {
168981169003 // try to use expand function
168982169004 if (_obj && isFunc(_item._expand)) {
168983169005 const res = _item._expand(_item, _obj);
168984- if (res) {
168985- return getPromise(res).then(() => {
168986- _item._isopen = true;
168987- if (_item._parent && !_item._parent._isopen) {
168988- _item._parent._isopen = true; // also show parent
168989- if (!silent)
168990- hpainter.updateTreeNode(_item._parent);
168991- } else if (!silent)
168992- hpainter.updateTreeNode(_item, d3cont);
168993- return _item;
168994- });
168995- }
169006+ if (res)
169007+ return getPromise(res).then(() => doneExpandItem(_item));
168996169008 }
168997169009
168998- if (_obj && objectHierarchy(_item, _obj)) {
168999- _item._isopen = true;
169000- if (_item._parent && !_item._parent._isopen) {
169001- _item._parent._isopen = true; // also show parent
169002- if (!silent) hpainter.updateTreeNode(_item._parent);
169003- } else if (!silent)
169004- hpainter.updateTreeNode(_item, d3cont);
169005- return _item;
169006- }
169010+ if (_obj && objectHierarchy(_item, _obj))
169011+ return doneExpandItem(_item);
169007169012
169013+ // mark as expand miss - behaves as normal object
169014+ _item._expand_miss = true;
169008169015 return -1;
169009169016 }
169010169017
@@ -169210,7 +169217,7 @@ class HierarchyPainter extends BasePainter {
169210169217 return openFile(item._url).then(file => {
169211169218 if (!file)
169212169219 return false;
169213- delete item._exapnd ;
169220+ delete item._expand ;
169214169221 delete item._more;
169215169222 delete item._click_action;
169216169223 delete item._obj;
@@ -170431,7 +170438,7 @@ async function drawInspector(dom, obj, opt) {
170431170438
170432170439 return painter.refreshHtml().then(() => {
170433170440 painter.setTopPainter();
170434- return painter.exapndToLevel (expand_level);
170441+ return painter.expandToLevel (expand_level);
170435170442 });
170436170443}
170437170444
0 commit comments