Changes for page Art & Research Services Navigator
Last modified by Veronika Kocher on Friday, 18 Sep 2026 16:47
From version 39.21
edited by Veronika Kocher
on Thursday, 03 Sep 2026 9:18
on Thursday, 03 Sep 2026 9:18
Change comment:
There is no comment for this version
To version 39.20
edited by Veronika Kocher
on Wednesday, 02 Sep 2026 17:21
on Wednesday, 02 Sep 2026 17:21
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -639,237 +639,3 @@ 639 639 {{/info}} 640 640 ))) 641 641 642 -{{html clean="false"}} 643 -<!-- SN_HORIZONTAL_BOX_HARMONIZER_START --> 644 -<style data-sn-horizontal-box-harmonizer="1"> 645 -[data-sn-equal-height-managed="1"]{box-sizing:border-box} 646 -@media(max-width:767px){ 647 - [data-sn-equal-height-managed="1"]{min-height:0!important} 648 -} 649 -</style> 650 -<script data-sn-horizontal-box-harmonizer="1"> 651 -(function(){ 652 - "use strict"; 653 - 654 - var MOBILE_MAX=767; 655 - var ROW_TOLERANCE=4; 656 - var MIN_W=150; 657 - var MIN_H=36; 658 - 659 - var root= 660 - document.getElementById("xwikicontent")|| 661 - document.querySelector(".xwiki-rendering-content")|| 662 - document.querySelector("main")|| 663 - document.body; 664 - 665 - if(!root)return; 666 - 667 - var managed=new Set(); 668 - var raf=0; 669 - 670 - function num(v){ 671 - var n=parseFloat(v); 672 - return Number.isFinite(n)?n:0; 673 - } 674 - 675 - function visible(el){ 676 - if(!el||el.nodeType!==1)return false; 677 - var s=getComputedStyle(el); 678 - if(s.display==="none"||s.visibility==="hidden"||Number(s.opacity)===0)return false; 679 - var r=el.getBoundingClientRect(); 680 - return r.width>=MIN_W&&r.height>=MIN_H; 681 - } 682 - 683 - function excluded(el){ 684 - return !el.matches||el.matches( 685 - "button,input,select,textarea,option,label,img,svg,canvas,table,thead,tbody,tfoot,tr,td,th,summary,script,style,noscript,template,.btn,.chip,[role=button]" 686 - ); 687 - } 688 - 689 - function namedLikeBox(el){ 690 - var c=typeof el.className==="string"?el.className:""; 691 - return /(^|[\s_-])(box|card|tile|panel|role|check|service|source|call|area|detail|resource|topic|warn|info)([\s_-]|$)/i.test(c); 692 - } 693 - 694 - function boxLike(el){ 695 - if(!visible(el)||excluded(el))return false; 696 - var s=getComputedStyle(el); 697 - var r=el.getBoundingClientRect(); 698 - var border= 699 - num(s.borderTopWidth)+num(s.borderRightWidth)+ 700 - num(s.borderBottomWidth)+num(s.borderLeftWidth); 701 - var radius=Math.max( 702 - num(s.borderTopLeftRadius),num(s.borderTopRightRadius), 703 - num(s.borderBottomLeftRadius),num(s.borderBottomRightRadius) 704 - ); 705 - var bg=s.backgroundColor&&s.backgroundColor!=="rgba(0, 0, 0, 0)"&&s.backgroundColor!=="transparent"; 706 - var shadow=s.boxShadow&&s.boxShadow!=="none"; 707 - return namedLikeBox(el)||border>=1||(bg&&radius>=3)||(shadow&&r.width>=180); 708 - } 709 - 710 - function pickTarget(child){ 711 - if(!visible(child))return null; 712 - if(boxLike(child))return child; 713 - 714 - var cr=child.getBoundingClientRect(); 715 - var q=[]; 716 - Array.from(child.children||[]).forEach(function(el){ 717 - q.push({el:el,depth:1}); 718 - }); 719 - 720 - var best=null,bestScore=-1; 721 - 722 - while(q.length){ 723 - var item=q.shift(); 724 - var el=item.el; 725 - if(!visible(el))continue; 726 - 727 - var r=el.getBoundingClientRect(); 728 - 729 - if(r.width>=cr.width*.72&&boxLike(el)){ 730 - var widthFit=1-Math.min(1,Math.abs(cr.width-r.width)/Math.max(1,cr.width)); 731 - var topFit=1-Math.min(1,Math.abs(cr.top-r.top)/80); 732 - var score=widthFit*5+topFit*2+Math.min(r.height,600)/600; 733 - if(score>bestScore){ 734 - best=el; 735 - bestScore=score; 736 - } 737 - } 738 - 739 - if(item.depth<3){ 740 - Array.from(el.children||[]).forEach(function(next){ 741 - q.push({el:next,depth:item.depth+1}); 742 - }); 743 - } 744 - } 745 - 746 - return best; 747 - } 748 - 749 - function reset(){ 750 - managed.forEach(function(el){ 751 - el.style.removeProperty("min-height"); 752 - el.removeAttribute("data-sn-equal-height-managed"); 753 - }); 754 - managed.clear(); 755 - } 756 - 757 - function horizontalLayout(parent){ 758 - if(!visible(parent))return false; 759 - var s=getComputedStyle(parent); 760 - if(s.display==="grid"||s.display==="inline-grid")return true; 761 - if(s.display==="flex"||s.display==="inline-flex"){ 762 - return s.flexDirection==="row"||s.flexDirection==="row-reverse"; 763 - } 764 - return false; 765 - } 766 - 767 - function rowGroups(entries){ 768 - var groups=[]; 769 - entries.slice().sort(function(a,b){ 770 - return a.rect.top-b.rect.top||a.rect.left-b.rect.left; 771 - }).forEach(function(entry){ 772 - var group=null; 773 - for(var i=0;i<groups.length;i++){ 774 - if(Math.abs(groups[i].top-entry.rect.top)<=ROW_TOLERANCE){ 775 - group=groups[i]; 776 - break; 777 - } 778 - } 779 - if(!group){ 780 - group={top:entry.rect.top,entries:[]}; 781 - groups.push(group); 782 - } 783 - group.entries.push(entry); 784 - }); 785 - return groups; 786 - } 787 - 788 - function run(){ 789 - reset(); 790 - 791 - if(window.innerWidth<=MOBILE_MAX)return; 792 - 793 - var parents=Array.from(root.querySelectorAll("*")).filter(function(el){ 794 - return el.children&&el.children.length>=2&&horizontalLayout(el); 795 - }); 796 - 797 - parents.forEach(function(parent){ 798 - var entries=[]; 799 - 800 - Array.from(parent.children).forEach(function(child){ 801 - if(!visible(child))return; 802 - var target=pickTarget(child); 803 - if(!target)return; 804 - entries.push({ 805 - target:target, 806 - rect:target.getBoundingClientRect() 807 - }); 808 - }); 809 - 810 - if(entries.length<2)return; 811 - 812 - rowGroups(entries).forEach(function(group){ 813 - if(group.entries.length<2)return; 814 - 815 - var lefts=group.entries.map(function(e){return e.rect.left;}).sort(function(a,b){return a-b;}); 816 - if(lefts[lefts.length-1]-lefts[0]<80)return; 817 - 818 - var targets=[]; 819 - var seen=new Set(); 820 - 821 - group.entries.forEach(function(e){ 822 - if(!seen.has(e.target)){ 823 - seen.add(e.target); 824 - targets.push(e.target); 825 - } 826 - }); 827 - 828 - if(targets.length<2)return; 829 - 830 - var max=0; 831 - targets.forEach(function(el){ 832 - max=Math.max(max,el.getBoundingClientRect().height); 833 - }); 834 - 835 - max=Math.ceil(max); 836 - if(max<MIN_H)return; 837 - 838 - targets.forEach(function(el){ 839 - el.style.setProperty("min-height",max+"px"); 840 - el.setAttribute("data-sn-equal-height-managed","1"); 841 - managed.add(el); 842 - }); 843 - }); 844 - }); 845 - } 846 - 847 - function schedule(){ 848 - if(raf)cancelAnimationFrame(raf); 849 - raf=requestAnimationFrame(function(){ 850 - raf=requestAnimationFrame(function(){ 851 - raf=0; 852 - run(); 853 - }); 854 - }); 855 - } 856 - 857 - addEventListener("resize",schedule,{passive:true}); 858 - addEventListener("load",schedule,{once:true}); 859 - 860 - root.addEventListener("click",function(){ 861 - setTimeout(schedule,0); 862 - },true); 863 - 864 - if(document.fonts&&document.fonts.ready){ 865 - document.fonts.ready.then(schedule); 866 - } 867 - 868 - schedule(); 869 - setTimeout(schedule,250); 870 - setTimeout(schedule,900); 871 -})(); 872 -</script> 873 -<!-- SN_HORIZONTAL_BOX_HARMONIZER_END --> 874 -{{/html}} 875 -