Changes for page Get Started
Last modified by Veronika Kocher on Friday, 04 Sep 2026 15:32
From version 8.4
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 8.2
edited by Veronika Kocher
on Tuesday, 01 Sep 2026 13:11
on Tuesday, 01 Sep 2026 13:11
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -434,238 +434,3 @@ 434 434 435 435 </div> 436 436 {{/html}} 437 - 438 -{{html clean="false"}} 439 -<!-- SN_HORIZONTAL_BOX_HARMONIZER_START --> 440 -<style data-sn-horizontal-box-harmonizer="1"> 441 -[data-sn-equal-height-managed="1"]{box-sizing:border-box} 442 -@media(max-width:767px){ 443 - [data-sn-equal-height-managed="1"]{min-height:0!important} 444 -} 445 -</style> 446 -<script data-sn-horizontal-box-harmonizer="1"> 447 -(function(){ 448 - "use strict"; 449 - 450 - var MOBILE_MAX=767; 451 - var ROW_TOLERANCE=4; 452 - var MIN_W=150; 453 - var MIN_H=36; 454 - 455 - var root= 456 - document.getElementById("xwikicontent")|| 457 - document.querySelector(".xwiki-rendering-content")|| 458 - document.querySelector("main")|| 459 - document.body; 460 - 461 - if(!root)return; 462 - 463 - var managed=new Set(); 464 - var raf=0; 465 - 466 - function num(v){ 467 - var n=parseFloat(v); 468 - return Number.isFinite(n)?n:0; 469 - } 470 - 471 - function visible(el){ 472 - if(!el||el.nodeType!==1)return false; 473 - var s=getComputedStyle(el); 474 - if(s.display==="none"||s.visibility==="hidden"||Number(s.opacity)===0)return false; 475 - var r=el.getBoundingClientRect(); 476 - return r.width>=MIN_W&&r.height>=MIN_H; 477 - } 478 - 479 - function excluded(el){ 480 - return !el.matches||el.matches( 481 - "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]" 482 - ); 483 - } 484 - 485 - function namedLikeBox(el){ 486 - var c=typeof el.className==="string"?el.className:""; 487 - return /(^|[\s_-])(box|card|tile|panel|role|check|service|source|call|area|detail|resource|topic|warn|info)([\s_-]|$)/i.test(c); 488 - } 489 - 490 - function boxLike(el){ 491 - if(!visible(el)||excluded(el))return false; 492 - var s=getComputedStyle(el); 493 - var r=el.getBoundingClientRect(); 494 - var border= 495 - num(s.borderTopWidth)+num(s.borderRightWidth)+ 496 - num(s.borderBottomWidth)+num(s.borderLeftWidth); 497 - var radius=Math.max( 498 - num(s.borderTopLeftRadius),num(s.borderTopRightRadius), 499 - num(s.borderBottomLeftRadius),num(s.borderBottomRightRadius) 500 - ); 501 - var bg=s.backgroundColor&&s.backgroundColor!=="rgba(0, 0, 0, 0)"&&s.backgroundColor!=="transparent"; 502 - var shadow=s.boxShadow&&s.boxShadow!=="none"; 503 - return namedLikeBox(el)||border>=1||(bg&&radius>=3)||(shadow&&r.width>=180); 504 - } 505 - 506 - function pickTarget(child){ 507 - if(!visible(child))return null; 508 - if(boxLike(child))return child; 509 - 510 - var cr=child.getBoundingClientRect(); 511 - var q=[]; 512 - Array.from(child.children||[]).forEach(function(el){ 513 - q.push({el:el,depth:1}); 514 - }); 515 - 516 - var best=null,bestScore=-1; 517 - 518 - while(q.length){ 519 - var item=q.shift(); 520 - var el=item.el; 521 - if(!visible(el))continue; 522 - 523 - var r=el.getBoundingClientRect(); 524 - 525 - if(r.width>=cr.width*.72&&boxLike(el)){ 526 - var widthFit=1-Math.min(1,Math.abs(cr.width-r.width)/Math.max(1,cr.width)); 527 - var topFit=1-Math.min(1,Math.abs(cr.top-r.top)/80); 528 - var score=widthFit*5+topFit*2+Math.min(r.height,600)/600; 529 - if(score>bestScore){ 530 - best=el; 531 - bestScore=score; 532 - } 533 - } 534 - 535 - if(item.depth<3){ 536 - Array.from(el.children||[]).forEach(function(next){ 537 - q.push({el:next,depth:item.depth+1}); 538 - }); 539 - } 540 - } 541 - 542 - return best; 543 - } 544 - 545 - function reset(){ 546 - managed.forEach(function(el){ 547 - el.style.removeProperty("min-height"); 548 - el.removeAttribute("data-sn-equal-height-managed"); 549 - }); 550 - managed.clear(); 551 - } 552 - 553 - function horizontalLayout(parent){ 554 - if(!visible(parent))return false; 555 - var s=getComputedStyle(parent); 556 - if(s.display==="grid"||s.display==="inline-grid")return true; 557 - if(s.display==="flex"||s.display==="inline-flex"){ 558 - return s.flexDirection==="row"||s.flexDirection==="row-reverse"; 559 - } 560 - return false; 561 - } 562 - 563 - function rowGroups(entries){ 564 - var groups=[]; 565 - entries.slice().sort(function(a,b){ 566 - return a.rect.top-b.rect.top||a.rect.left-b.rect.left; 567 - }).forEach(function(entry){ 568 - var group=null; 569 - for(var i=0;i<groups.length;i++){ 570 - if(Math.abs(groups[i].top-entry.rect.top)<=ROW_TOLERANCE){ 571 - group=groups[i]; 572 - break; 573 - } 574 - } 575 - if(!group){ 576 - group={top:entry.rect.top,entries:[]}; 577 - groups.push(group); 578 - } 579 - group.entries.push(entry); 580 - }); 581 - return groups; 582 - } 583 - 584 - function run(){ 585 - reset(); 586 - 587 - if(window.innerWidth<=MOBILE_MAX)return; 588 - 589 - var parents=Array.from(root.querySelectorAll("*")).filter(function(el){ 590 - return el.children&&el.children.length>=2&&horizontalLayout(el); 591 - }); 592 - 593 - parents.forEach(function(parent){ 594 - var entries=[]; 595 - 596 - Array.from(parent.children).forEach(function(child){ 597 - if(!visible(child))return; 598 - var target=pickTarget(child); 599 - if(!target)return; 600 - entries.push({ 601 - target:target, 602 - rect:target.getBoundingClientRect() 603 - }); 604 - }); 605 - 606 - if(entries.length<2)return; 607 - 608 - rowGroups(entries).forEach(function(group){ 609 - if(group.entries.length<2)return; 610 - 611 - var lefts=group.entries.map(function(e){return e.rect.left;}).sort(function(a,b){return a-b;}); 612 - if(lefts[lefts.length-1]-lefts[0]<80)return; 613 - 614 - var targets=[]; 615 - var seen=new Set(); 616 - 617 - group.entries.forEach(function(e){ 618 - if(!seen.has(e.target)){ 619 - seen.add(e.target); 620 - targets.push(e.target); 621 - } 622 - }); 623 - 624 - if(targets.length<2)return; 625 - 626 - var max=0; 627 - targets.forEach(function(el){ 628 - max=Math.max(max,el.getBoundingClientRect().height); 629 - }); 630 - 631 - max=Math.ceil(max); 632 - if(max<MIN_H)return; 633 - 634 - targets.forEach(function(el){ 635 - el.style.setProperty("min-height",max+"px"); 636 - el.setAttribute("data-sn-equal-height-managed","1"); 637 - managed.add(el); 638 - }); 639 - }); 640 - }); 641 - } 642 - 643 - function schedule(){ 644 - if(raf)cancelAnimationFrame(raf); 645 - raf=requestAnimationFrame(function(){ 646 - raf=requestAnimationFrame(function(){ 647 - raf=0; 648 - run(); 649 - }); 650 - }); 651 - } 652 - 653 - addEventListener("resize",schedule,{passive:true}); 654 - addEventListener("load",schedule,{once:true}); 655 - 656 - root.addEventListener("click",function(){ 657 - setTimeout(schedule,0); 658 - },true); 659 - 660 - if(document.fonts&&document.fonts.ready){ 661 - document.fonts.ready.then(schedule); 662 - } 663 - 664 - schedule(); 665 - setTimeout(schedule,250); 666 - setTimeout(schedule,900); 667 -})(); 668 -</script> 669 -<!-- SN_HORIZONTAL_BOX_HARMONIZER_END --> 670 -{{/html}} 671 -