Änderungen von Dokument Prepare
Zuletzt geändert von Veronika Kocher am Freitag, 18 Sep. 2026 16:47
Von Version 1.3
bearbeitet von Veronika Kocher
am Dienstag, 01 Sep. 2026 17:10
am Dienstag, 01 Sep. 2026 17:10
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 1.9
bearbeitet von Veronika Kocher
am Donnerstag, 03 Sep. 2026 13:04
am Donnerstag, 03 Sep. 2026 13:04
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -378,7 +378,7 @@ 378 378 <li>Wie sollen Dateien und Ordner organisiert und benannt werden?</li> 379 379 <li>Wo werden Materialien gespeichert und gesichert?</li> 380 380 <li>Wer soll Zugriff haben?</li> 381 - <li>Welche Infrastruktur, Services und Werkzeugesind geeignet?</li>381 + <li>Welche Infrastruktur, Services und Tools sind geeignet?</li> 382 382 </ul> 383 383 </div> 384 384 </div> ... ... @@ -445,7 +445,7 @@ 445 445 <div class="arsn-area-head"> 446 446 <div class="arsn-area-label" style="background:#e6f3e9;color:#3f6d4b;"><span class="arsn-area-number">04</span> INFRASTRUKTUR & ZUSAMMENARBEIT EINRICHTEN <span class="arsn-area-action">· Vorbereiten</span></div> 447 447 <h4>Schaffe eine Arbeitsumgebung, die das Projekt tatsächlich nutzen kann</h4> 448 - <p>Lege fest, wo Projektmaterialien liegen, wie sie gesichert und geschützt werden, welche Werkzeugegeeignet sind und wie Zugriff und Zusammenarbeit funktionieren.</p>448 + <p>Lege fest, wo Projektmaterialien liegen, wie sie gesichert und geschützt werden, welche Tools geeignet sind und wie Zugriff und Zusammenarbeit funktionieren.</p> 449 449 </div> 450 450 <div class="arsn-area-body"> 451 451 <a class="arsn-topic" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Storage%2C%20Backup%20%26%20Security/" style="border-left:3px solid #38b76a;">Speicherung, Backup & Sicherheit</a> ... ... @@ -468,17 +468,1163 @@ 468 468 </div> 469 469 470 470 <div class="arsn-resource-grid" style="margin-bottom:27px;"> 471 - <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #21b6d7;border-radius:9px;"><strong style="color:#3a5d66;">Info-Blätter</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px 0;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;"> DEMNÄCHST</span><div style="margin-top:5px;color:#625d56;">Kurze Orientierungshilfen für häufige Fragen und Entscheidungen.</div></div>472 - <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #e94b13;border-radius:9px;"><strong style="color:#503a31;">Anleitungen</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px 0;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;"> DEMNÄCHST</span><div style="margin-top:5px;color:#625d56;">Schritt-für-Schritt-Anleitungen für konkrete Aufgaben und Abläufe.</div></div>473 - <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #38b76a;border-radius:9px;"><strong style="color:#3f6b4b;">Checklisten & Vorlagen</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px 0;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;"> DEMNÄCHST</span><div style="margin-top:5px;color:#625d56;">Wiederverwendbare Hilfsmittel zum Planen, Dokumentieren und Überprüfen deiner Projektstruktur.</div></div>471 + <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #21b6d7;border-radius:9px;"><strong style="color:#3a5d66;">Info-Blätter</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px 0;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;">IN VORBEREITUNG</span><div style="margin-top:5px;color:#625d56;">Kurze Orientierungshilfen für häufige Fragen und Entscheidungen.</div></div> 472 + <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #e94b13;border-radius:9px;"><strong style="color:#503a31;">Anleitungen</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px 0;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;">IN VORBEREITUNG</span><div style="margin-top:5px;color:#625d56;">Schritt-für-Schritt-Anleitungen für konkrete Aufgaben und Abläufe.</div></div> 473 + <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #38b76a;border-radius:9px;"><strong style="color:#3f6b4b;">Checklisten & Vorlagen</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px 0;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;">IN VORBEREITUNG</span><div style="margin-top:5px;color:#625d56;">Wiederverwendbare Hilfsmittel zum Planen, Dokumentieren und Überprüfen deiner Projektstruktur.</div></div> 474 474 </div> 475 475 476 - <aside style="margin:0 0 14px 0;padding:16px 18px;border:1px solid #c7e5ed;border-left:5px solid #21b6d7;background:#e5f5f9;border-radius:8px;"> 477 - <strong style="color:#2d5661;">Brauchst du Unterstützung?</strong>478 - <div style="margin-top:5px;color:#365e68;line-height:1.5;"> Nichtsicher, welche Anforderungen,Servicesoder nächstenSchrittefürdeinProjektgelten?Kontaktiere Kunst&ForschungsservicesfürprojektspezifischeUnterstützung.</div>476 + <aside style="margin:0 0 14px 0;padding:16px 18px;border:1px solid #c7e5ed;border-left:5px solid #21b6d7;background:#e5f5f9;border-radius:8px;"><!-- ARSN_PHASE_ROUTING_V1 --> 477 + <strong style="color:#2d5661;">Brauchst du Hilfe beim richtigen Weg?</strong> 478 + <div style="margin-top:5px;color:#365e68;line-height:1.5;"><strong>Starte bei Support Kunst und Forschung</strong> für Projektentwicklung, Förderung, Anträge und die Koordination geförderter Kunst-/Forschungsprojekte. Für Rechte, Daten, IT, Finanzen, Personal, Räume oder andere Fachfragen folge der auf der Themenseite genannten zuständigen Service-Stelle.</div> 479 479 </aside> 480 480 481 - <div class="arsn-tip"><strong>Tipp · Eine hilfreiche Faustregel:</strong> Plane früh, dokumentiere Entscheidungen und überprüfe sie, wenn sich das Projekt verändert. Ein einfache sSetup, dastatsächlich genutzt wird, ist meist wirksamer als ein komplexer Plan, der nie aktualisiert wird.</div>481 + <div class="arsn-tip"><strong>Tipp · Eine hilfreiche Faustregel:</strong> Plane früh, dokumentiere Entscheidungen und überprüfe sie, wenn sich das Projekt verändert. Eine einfache Projektstruktur, die tatsächlich genutzt wird, ist meist wirksamer als ein komplexer Plan, der nie aktualisiert wird.</div> 482 482 483 483 </div> 484 484 {{/html}} 485 + 486 +{{html clean="false"}} 487 +<!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_START --> 488 + 489 +<style data-sn-service-navigator-master="1"> 490 +/* ========================================================= 491 + MASTER TYPOGRAPHY 492 + ========================================================= */ 493 +#xwikicontent h1, 494 +#xwikicontent h2, 495 +#xwikicontent h3, 496 +#xwikicontent h4, 497 +#xwikicontent h5, 498 +#xwikicontent h6, 499 +#xwikicontent .box-title, 500 +#xwikicontent [role="heading"], 501 +#xwikicontent h1 a, 502 +#xwikicontent h2 a, 503 +#xwikicontent h3 a, 504 +#xwikicontent h4 a, 505 +#xwikicontent h5 a, 506 +#xwikicontent h6 a, 507 +#xwikicontent .box-title a, 508 +#xwikicontent [role="heading"] a{ 509 + text-align:left!important; 510 + text-justify:auto!important; 511 + word-spacing:normal!important; 512 +} 513 + 514 +/* ========================================================= 515 + COMING SOON / IN VORBEREITUNG 516 + ========================================================= */ 517 +.sn-coming-soon-badge{ 518 + display:inline-block; 519 + vertical-align:middle; 520 + margin-left:10px; 521 + padding:4px 8px; 522 + border-radius:14px; 523 + border:1px solid #efd9cc; 524 + background:#fff4ee; 525 + color:#8a4d36; 526 + font-size:11px; 527 + font-weight:700; 528 + letter-spacing:.055em; 529 + line-height:1.2; 530 + white-space:nowrap; 531 +} 532 + 533 +/* ========================================================= 534 + NATIVE / DETAIL CALLOUT GEOMETRY 535 + Preserve existing backgrounds. 536 + ========================================================= */ 537 +#xwikicontent .arsn-info, 538 +#xwikicontent .dmp-info, 539 +#xwikicontent .ido-info, 540 +#xwikicontent .pp-info, 541 +#xwikicontent .infomessage{ 542 + box-sizing:border-box!important; 543 + border-left:4px solid #21b6d7!important; 544 + border-radius:8px; 545 + text-align:left!important; 546 + word-spacing:normal!important; 547 +} 548 + 549 +#xwikicontent .arsn-warn, 550 +#xwikicontent .dmp-warn, 551 +#xwikicontent .ido-warn, 552 +#xwikicontent .pp-warn, 553 +#xwikicontent .warn, 554 +#xwikicontent .warning, 555 +#xwikicontent .warningmessage, 556 +#xwikicontent .errormessage{ 557 + box-sizing:border-box!important; 558 + border-left:4px solid #e94b13!important; 559 + border-radius:8px; 560 + text-align:left!important; 561 + word-spacing:normal!important; 562 +} 563 + 564 +[data-sn-master-equal-height], 565 +[data-sn-master-first-row]{ 566 + box-sizing:border-box; 567 +} 568 +</style> 569 + 570 +<script data-sn-service-navigator-master="1"> 571 +(function(){ 572 + "use strict"; 573 + 574 + var PAGE_KIND="overview"; 575 + var PLACEHOLDER=false; 576 + var PLACEHOLDER_LABEL="IN VORBEREITUNG"; 577 + 578 + var MOBILE_MAX=767; 579 + var ROW_TOLERANCE=6; 580 + var RESIZE_DEBOUNCE=220; 581 + 582 + var root= 583 + document.getElementById("xwikicontent")|| 584 + document.querySelector(".xwiki-rendering-content")|| 585 + document.querySelector("main")|| 586 + document.body; 587 + 588 + if(!root)return; 589 + 590 + var managedHeight=new Set(); 591 + var managedMargin=new Set(); 592 + var originalHeight=new WeakMap(); 593 + var originalMargin=new WeakMap(); 594 + 595 + var resizeTimer=0; 596 + var running=false; 597 + 598 + var THEMES=[ 599 + { 600 + name:"BLUE", 601 + accent:"#21b6d7", 602 + bg:"#eaf7fb", 603 + text:"#315d68", 604 + labels:[ 605 + "HIER STARTEN", 606 + "ENTSCHEIDEN", 607 + "ÜBERPRÜFEN & ANPASSEN", 608 + "START HERE", 609 + "DECIDE", 610 + "REVIEW & ADAPT" 611 + ] 612 + }, 613 + { 614 + name:"RED", 615 + accent:"#e94b13", 616 + bg:"#fff1ec", 617 + text:"#8a4d36", 618 + labels:[ 619 + "PLANEN & ORGANISIEREN", 620 + "ORGANISIEREN & DOKUMENTIEREN", 621 + "PUBLIZIEREN & PRÄSENTIEREN", 622 + "PLAN & ORGANISE", 623 + "PLAN & ORGANIZE", 624 + "ORGANISE & DOCUMENT", 625 + "ORGANIZE & DOCUMENT", 626 + "PUBLISH & PRESENT" 627 + ] 628 + }, 629 + { 630 + name:"YELLOW", 631 + accent:"#f0aa00", 632 + bg:"#fff8e7", 633 + text:"#785b17", 634 + labels:[ 635 + "SCHÜTZEN & KLÄREN", 636 + "STANDARDISIEREN & IDENTIFIZIEREN", 637 + "ÖFFNEN, NACHNUTZEN & AUFFINDBAR MACHEN", 638 + "PROTECT & CLARIFY", 639 + "STANDARDISE & IDENTIFY", 640 + "STANDARDIZE & IDENTIFY", 641 + "OPEN, REUSE & MAKE FINDABLE" 642 + ] 643 + }, 644 + { 645 + name:"GREEN", 646 + accent:"#38b76a", 647 + bg:"#edf9f1", 648 + text:"#3f7451", 649 + labels:[ 650 + "INFRASTRUKTUR EINRICHTEN", 651 + "INFRASTRUKTUR & ZUSAMMENARBEIT EINRICHTEN", 652 + "SPEICHERN & ZUGRIFF STEUERN", 653 + "REPOSITORIUM, ERHALTEN & ÜBERGEBEN", 654 + "SET UP INFRASTRUCTURE", 655 + "SET UP INFRASTRUCTURE & COLLABORATION", 656 + "STORE & CONTROL ACCESS", 657 + "REPOSITORY, PRESERVE & HAND OVER" 658 + ] 659 + } 660 + ]; 661 + 662 + function num(value){ 663 + var n=parseFloat(value); 664 + return Number.isFinite(n)?n:0; 665 + } 666 + 667 + function norm(value){ 668 + return String(value||"") 669 + .replace(/\s+/g," ") 670 + .trim() 671 + .toUpperCase(); 672 + } 673 + 674 + function visible(el){ 675 + if(!el||el.nodeType!==1)return false; 676 + 677 + var style=getComputedStyle(el); 678 + var rect=el.getBoundingClientRect(); 679 + 680 + return ( 681 + style.display!=="none"&& 682 + style.visibility!=="hidden"&& 683 + rect.width>20&& 684 + rect.height>4 685 + ); 686 + } 687 + 688 + function saveStyle(el,map,property){ 689 + if(map.has(el))return; 690 + 691 + map.set(el,{ 692 + value:el.style.getPropertyValue(property), 693 + priority:el.style.getPropertyPriority(property) 694 + }); 695 + } 696 + 697 + function restoreStyle(el,map,property){ 698 + var original=map.get(el); 699 + 700 + if(original&&original.value){ 701 + el.style.setProperty( 702 + property, 703 + original.value, 704 + original.priority||"" 705 + ); 706 + }else{ 707 + el.style.removeProperty(property); 708 + } 709 + } 710 + 711 + function resetRuntime(){ 712 + managedHeight.forEach(function(el){ 713 + restoreStyle( 714 + el, 715 + originalHeight, 716 + "min-height" 717 + ); 718 + el.removeAttribute( 719 + "data-sn-master-equal-height" 720 + ); 721 + }); 722 + 723 + managedMargin.forEach(function(el){ 724 + restoreStyle( 725 + el, 726 + originalMargin, 727 + "margin-top" 728 + ); 729 + el.removeAttribute( 730 + "data-sn-master-first-row" 731 + ); 732 + }); 733 + 734 + managedHeight.clear(); 735 + managedMargin.clear(); 736 + } 737 + 738 + function themeFor(text){ 739 + var value=norm(text); 740 + 741 + for(var i=0;i<THEMES.length;i++){ 742 + for(var j=0;j<THEMES[i].labels.length;j++){ 743 + var label=THEMES[i].labels[j]; 744 + 745 + if( 746 + value===label|| 747 + value.indexOf(label+" ")===0|| 748 + value.indexOf(label+" -")===0|| 749 + value.indexOf(label+" ·")===0 750 + ){ 751 + return THEMES[i]; 752 + } 753 + } 754 + } 755 + 756 + return null; 757 + } 758 + 759 + /* ======================================================= 760 + PLACEHOLDER BADGE 761 + ======================================================= */ 762 + 763 + function applyPlaceholderBadge(){ 764 + if(!PLACEHOLDER)return; 765 + 766 + if( 767 + document.querySelector( 768 + ".sn-coming-soon-badge" 769 + ) 770 + ){ 771 + return; 772 + } 773 + 774 + var title= 775 + document.querySelector( 776 + "#document-title" 777 + )|| 778 + document.querySelector( 779 + "h1" 780 + ); 781 + 782 + if(!title)return; 783 + 784 + var badge= 785 + document.createElement( 786 + "span" 787 + ); 788 + 789 + badge.className= 790 + "sn-coming-soon-badge"; 791 + 792 + badge.textContent= 793 + PLACEHOLDER_LABEL; 794 + 795 + badge.setAttribute( 796 + "aria-label", 797 + PLACEHOLDER_LABEL 798 + ); 799 + 800 + title.appendChild( 801 + badge 802 + ); 803 + } 804 + 805 + /* ======================================================= 806 + DETAIL PAGE OWN-ACCENT PROPAGATION 807 + ======================================================= */ 808 + 809 + function parseRGB(value){ 810 + var match=String(value||"").match( 811 + /rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i 812 + ); 813 + 814 + if(!match)return null; 815 + 816 + return [ 817 + Number(match[1]), 818 + Number(match[2]), 819 + Number(match[3]) 820 + ]; 821 + } 822 + 823 + function distance(a,b){ 824 + return Math.sqrt( 825 + Math.pow(a[0]-b[0],2)+ 826 + Math.pow(a[1]-b[1],2)+ 827 + Math.pow(a[2]-b[2],2) 828 + ); 829 + } 830 + 831 + function paletteMatch(cssColor){ 832 + var rgb=parseRGB(cssColor); 833 + 834 + if(!rgb)return null; 835 + 836 + var palette=[ 837 + {hex:"#21b6d7",rgb:[33,182,215]}, 838 + {hex:"#e94b13",rgb:[233,75,19]}, 839 + {hex:"#f0aa00",rgb:[240,170,0]}, 840 + {hex:"#38b76a",rgb:[56,183,106]} 841 + ]; 842 + 843 + var best=null; 844 + var bestDistance=Infinity; 845 + 846 + palette.forEach(function(item){ 847 + var d=distance(rgb,item.rgb); 848 + 849 + if(d<bestDistance){ 850 + best=item; 851 + bestDistance=d; 852 + } 853 + }); 854 + 855 + return bestDistance<=30 856 + ?best 857 + :null; 858 + } 859 + 860 + function propagateDetailAccents(){ 861 + if(PAGE_KIND!=="detail")return; 862 + 863 + Array.from( 864 + root.querySelectorAll( 865 + ".arsn-call,.dmp-call,.ido-call,.pp-call,"+ 866 + ".arsn-source,.dmp-source,.ido-source,.pp-source" 867 + ) 868 + ).forEach(function(el){ 869 + if(!visible(el))return; 870 + 871 + var style=getComputedStyle(el); 872 + 873 + if( 874 + num(style.borderTopWidth)>=2 875 + ){ 876 + var match= 877 + paletteMatch( 878 + style.borderTopColor 879 + ); 880 + 881 + if(match){ 882 + el.style.setProperty( 883 + "border-left", 884 + "4px solid "+match.hex, 885 + "important" 886 + ); 887 + } 888 + } 889 + }); 890 + 891 + // Warning families: explicit safety override. 892 + Array.from( 893 + root.querySelectorAll( 894 + ".arsn-warn,.dmp-warn,.ido-warn,.pp-warn,"+ 895 + ".warn,.warning,.warningmessage,.errormessage" 896 + ) 897 + ).forEach(function(el){ 898 + if(!visible(el))return; 899 + 900 + el.style.setProperty( 901 + "border-left", 902 + "4px solid #e94b13", 903 + "important" 904 + ); 905 + }); 906 + 907 + // Info families: explicit orientation override. 908 + Array.from( 909 + root.querySelectorAll( 910 + ".arsn-info,.dmp-info,.ido-info,.pp-info,.infomessage" 911 + ) 912 + ).forEach(function(el){ 913 + if(!visible(el))return; 914 + 915 + el.style.setProperty( 916 + "border-left", 917 + "4px solid #21b6d7", 918 + "important" 919 + ); 920 + }); 921 + } 922 + 923 + /* ======================================================= 924 + OVERVIEW SEMANTIC THEME PALETTE 925 + ======================================================= */ 926 + 927 + function smallestThemeHeaders(){ 928 + return Array.from( 929 + root.querySelectorAll( 930 + "div,span,p,strong,h3,h4,h5,h6" 931 + ) 932 + ).filter(function(el){ 933 + if(!visible(el))return false; 934 + if(!themeFor(el.textContent))return false; 935 + 936 + return !Array.from( 937 + el.children||[] 938 + ).some(function(child){ 939 + return !!themeFor( 940 + child.textContent 941 + ); 942 + }); 943 + }); 944 + } 945 + 946 + function findOverviewCard(header){ 947 + var node=header.parentElement; 948 + var candidates=[]; 949 + 950 + while(node&&node!==root){ 951 + var rect=node.getBoundingClientRect(); 952 + var style=getComputedStyle(node); 953 + 954 + var border= 955 + num(style.borderTopWidth)+ 956 + num(style.borderRightWidth)+ 957 + num(style.borderBottomWidth)+ 958 + num(style.borderLeftWidth); 959 + 960 + if( 961 + rect.width>=220&& 962 + rect.width<=800&& 963 + rect.height>=120&& 964 + border>=1 965 + ){ 966 + candidates.push(node); 967 + } 968 + 969 + node=node.parentElement; 970 + } 971 + 972 + if(!candidates.length)return null; 973 + 974 + candidates.sort(function(a,b){ 975 + return ( 976 + b.getBoundingClientRect().height- 977 + a.getBoundingClientRect().height 978 + ); 979 + }); 980 + 981 + return candidates[0]; 982 + } 983 + 984 + function rowCandidates(link,card){ 985 + var result=[]; 986 + var cardRect= 987 + card.getBoundingClientRect(); 988 + 989 + var node=link; 990 + 991 + while(node&&node!==card){ 992 + if(visible(node)){ 993 + var rect= 994 + node.getBoundingClientRect(); 995 + 996 + if( 997 + rect.height<=105&& 998 + rect.width>= 999 + cardRect.width*.50&& 1000 + rect.width<= 1001 + cardRect.width*1.03 1002 + ){ 1003 + result.push(node); 1004 + } 1005 + } 1006 + 1007 + node=node.parentElement; 1008 + } 1009 + 1010 + return result; 1011 + } 1012 + 1013 + function chooseOuterRow( 1014 + candidates, 1015 + link 1016 + ){ 1017 + if(!candidates.length){ 1018 + return link; 1019 + } 1020 + 1021 + var bordered= 1022 + candidates.filter(function(el){ 1023 + return ( 1024 + num( 1025 + getComputedStyle(el) 1026 + .borderLeftWidth 1027 + )>=1 1028 + ); 1029 + }); 1030 + 1031 + var pool= 1032 + bordered.length 1033 + ?bordered 1034 + :candidates; 1035 + 1036 + pool.sort(function(a,b){ 1037 + var ar= 1038 + a.getBoundingClientRect(); 1039 + 1040 + var br= 1041 + b.getBoundingClientRect(); 1042 + 1043 + return ( 1044 + ar.left-br.left|| 1045 + br.width-ar.width 1046 + ); 1047 + }); 1048 + 1049 + return pool[0]||link; 1050 + } 1051 + 1052 + function applyOverviewPalette(){ 1053 + if(PAGE_KIND!=="overview"){ 1054 + return []; 1055 + } 1056 + 1057 + var headers= 1058 + smallestThemeHeaders() 1059 + .map(function(el){ 1060 + return { 1061 + el:el, 1062 + theme: 1063 + themeFor( 1064 + el.textContent 1065 + ), 1066 + card: 1067 + findOverviewCard( 1068 + el 1069 + ) 1070 + }; 1071 + }) 1072 + .filter(function(row){ 1073 + return !!row.card; 1074 + }); 1075 + 1076 + var unique=[]; 1077 + var seenHeaders=new Set(); 1078 + 1079 + headers.forEach(function(row){ 1080 + var key= 1081 + row.theme.name+ 1082 + "|"+ 1083 + Math.round( 1084 + row.card 1085 + .getBoundingClientRect() 1086 + .left 1087 + )+ 1088 + "|"+ 1089 + Math.round( 1090 + row.el 1091 + .getBoundingClientRect() 1092 + .top 1093 + ); 1094 + 1095 + if(!seenHeaders.has(key)){ 1096 + seenHeaders.add(key); 1097 + unique.push(row); 1098 + } 1099 + }); 1100 + 1101 + unique.forEach(function(row){ 1102 + var headerRect= 1103 + row.el 1104 + .getBoundingClientRect(); 1105 + 1106 + row.el.style.setProperty( 1107 + "background", 1108 + row.theme.bg, 1109 + "important" 1110 + ); 1111 + 1112 + row.el.style.setProperty( 1113 + "color", 1114 + row.theme.text, 1115 + "important" 1116 + ); 1117 + 1118 + row.el.style.setProperty( 1119 + "text-align", 1120 + "left", 1121 + "important" 1122 + ); 1123 + 1124 + row.el.style.setProperty( 1125 + "word-spacing", 1126 + "normal", 1127 + "important" 1128 + ); 1129 + 1130 + var later= 1131 + unique 1132 + .filter(function(other){ 1133 + return ( 1134 + other.card===row.card&& 1135 + other.el 1136 + .getBoundingClientRect() 1137 + .top> 1138 + headerRect.top+2 1139 + ); 1140 + }) 1141 + .sort(function(a,b){ 1142 + return ( 1143 + a.el 1144 + .getBoundingClientRect() 1145 + .top- 1146 + b.el 1147 + .getBoundingClientRect() 1148 + .top 1149 + ); 1150 + }); 1151 + 1152 + var stopTop= 1153 + later.length 1154 + ?later[0].el 1155 + .getBoundingClientRect() 1156 + .top 1157 + :Infinity; 1158 + 1159 + Array.from( 1160 + row.card.querySelectorAll("a") 1161 + ).forEach(function(link){ 1162 + if(!visible(link))return; 1163 + 1164 + var rect= 1165 + link.getBoundingClientRect(); 1166 + 1167 + if( 1168 + rect.top<= 1169 + headerRect.bottom-2|| 1170 + rect.top>= 1171 + stopTop-2 1172 + ){ 1173 + return; 1174 + } 1175 + 1176 + var candidates= 1177 + rowCandidates( 1178 + link, 1179 + row.card 1180 + ); 1181 + 1182 + var target= 1183 + chooseOuterRow( 1184 + candidates, 1185 + link 1186 + ); 1187 + 1188 + candidates.forEach(function(el){ 1189 + el.style.setProperty( 1190 + "border-left", 1191 + "0 solid transparent", 1192 + "important" 1193 + ); 1194 + }); 1195 + 1196 + target.style.setProperty( 1197 + "border-left", 1198 + "3px solid "+ 1199 + row.theme.accent, 1200 + "important" 1201 + ); 1202 + 1203 + target.style.setProperty( 1204 + "box-sizing", 1205 + "border-box", 1206 + "important" 1207 + ); 1208 + }); 1209 + }); 1210 + 1211 + return unique; 1212 + } 1213 + 1214 + /* ======================================================= 1215 + OVERVIEW CARD HEIGHT + FIRST THEMATIC ROW 1216 + ======================================================= */ 1217 + 1218 + function alignOverviewCards(headers){ 1219 + if( 1220 + PAGE_KIND!=="overview"|| 1221 + window.innerWidth<=MOBILE_MAX 1222 + ){ 1223 + return; 1224 + } 1225 + 1226 + var cards=[]; 1227 + var seen=new Set(); 1228 + 1229 + headers.forEach(function(row){ 1230 + if(!seen.has(row.card)){ 1231 + seen.add(row.card); 1232 + cards.push(row.card); 1233 + } 1234 + }); 1235 + 1236 + if(cards.length<2){ 1237 + return; 1238 + } 1239 + 1240 + // Group cards by actual top position. 1241 + var groups=[]; 1242 + 1243 + cards.forEach(function(card){ 1244 + var top= 1245 + card.getBoundingClientRect().top; 1246 + 1247 + var group=null; 1248 + 1249 + for(var i=0;i<groups.length;i++){ 1250 + if( 1251 + Math.abs( 1252 + groups[i].top-top 1253 + )<=ROW_TOLERANCE 1254 + ){ 1255 + group=groups[i]; 1256 + break; 1257 + } 1258 + } 1259 + 1260 + if(!group){ 1261 + group={ 1262 + top:top, 1263 + cards:[] 1264 + }; 1265 + groups.push(group); 1266 + } 1267 + 1268 + group.cards.push(card); 1269 + }); 1270 + 1271 + groups.forEach(function(group){ 1272 + if(group.cards.length<2){ 1273 + return; 1274 + } 1275 + 1276 + var firstHeaders= 1277 + group.cards.map(function(card){ 1278 + var candidates= 1279 + headers 1280 + .filter(function(row){ 1281 + return row.card===card; 1282 + }) 1283 + .sort(function(a,b){ 1284 + return ( 1285 + a.el 1286 + .getBoundingClientRect() 1287 + .top- 1288 + b.el 1289 + .getBoundingClientRect() 1290 + .top 1291 + ); 1292 + }); 1293 + 1294 + return candidates.length 1295 + ?candidates[0] 1296 + :null; 1297 + }); 1298 + 1299 + if( 1300 + !firstHeaders.some(function(row){ 1301 + return !row; 1302 + }) 1303 + ){ 1304 + var targetTop= 1305 + Math.max.apply( 1306 + Math, 1307 + firstHeaders.map(function(row){ 1308 + return ( 1309 + row.el 1310 + .getBoundingClientRect() 1311 + .top- 1312 + row.card 1313 + .getBoundingClientRect() 1314 + .top 1315 + ); 1316 + }) 1317 + ); 1318 + 1319 + firstHeaders.forEach(function(row){ 1320 + var relativeTop= 1321 + row.el 1322 + .getBoundingClientRect() 1323 + .top- 1324 + row.card 1325 + .getBoundingClientRect() 1326 + .top; 1327 + 1328 + var delta= 1329 + targetTop-relativeTop; 1330 + 1331 + if(delta>1){ 1332 + saveStyle( 1333 + row.el, 1334 + originalMargin, 1335 + "margin-top" 1336 + ); 1337 + 1338 + var current= 1339 + num( 1340 + getComputedStyle( 1341 + row.el 1342 + ).marginTop 1343 + ); 1344 + 1345 + row.el.style.setProperty( 1346 + "margin-top", 1347 + ( 1348 + current+delta 1349 + )+"px" 1350 + ); 1351 + 1352 + row.el.setAttribute( 1353 + "data-sn-master-first-row", 1354 + "1" 1355 + ); 1356 + 1357 + managedMargin.add( 1358 + row.el 1359 + ); 1360 + } 1361 + }); 1362 + } 1363 + 1364 + var maxHeight=0; 1365 + 1366 + group.cards.forEach(function(card){ 1367 + maxHeight= 1368 + Math.max( 1369 + maxHeight, 1370 + card 1371 + .getBoundingClientRect() 1372 + .height 1373 + ); 1374 + }); 1375 + 1376 + maxHeight= 1377 + Math.ceil(maxHeight); 1378 + 1379 + group.cards.forEach(function(card){ 1380 + saveStyle( 1381 + card, 1382 + originalHeight, 1383 + "min-height" 1384 + ); 1385 + 1386 + card.style.setProperty( 1387 + "min-height", 1388 + maxHeight+"px" 1389 + ); 1390 + 1391 + card.setAttribute( 1392 + "data-sn-master-equal-height", 1393 + "1" 1394 + ); 1395 + 1396 + managedHeight.add( 1397 + card 1398 + ); 1399 + }); 1400 + }); 1401 + } 1402 + 1403 + /* ======================================================= 1404 + DETAIL GRID EQUAL HEIGHT, DESKTOP ONLY 1405 + ======================================================= */ 1406 + 1407 + function equaliseDetailGrids(){ 1408 + if( 1409 + PAGE_KIND!=="detail"|| 1410 + window.innerWidth<=MOBILE_MAX 1411 + ){ 1412 + return; 1413 + } 1414 + 1415 + var selectors=[ 1416 + ".arsn-grid", 1417 + ".arsn-grid-2", 1418 + ".arsn-grid-3", 1419 + ".dmp-grid", 1420 + ".ido-grid", 1421 + ".pp-grid" 1422 + ]; 1423 + 1424 + selectors.forEach(function(selector){ 1425 + Array.from( 1426 + root.querySelectorAll(selector) 1427 + ).forEach(function(grid){ 1428 + var children= 1429 + Array.from( 1430 + grid.children||[] 1431 + ).filter(visible); 1432 + 1433 + if(children.length<2){ 1434 + return; 1435 + } 1436 + 1437 + var groups=[]; 1438 + 1439 + children.forEach(function(child){ 1440 + var top= 1441 + child 1442 + .getBoundingClientRect() 1443 + .top; 1444 + 1445 + var group=null; 1446 + 1447 + for(var i=0;i<groups.length;i++){ 1448 + if( 1449 + Math.abs( 1450 + groups[i].top-top 1451 + )<=ROW_TOLERANCE 1452 + ){ 1453 + group=groups[i]; 1454 + break; 1455 + } 1456 + } 1457 + 1458 + if(!group){ 1459 + group={ 1460 + top:top, 1461 + items:[] 1462 + }; 1463 + groups.push(group); 1464 + } 1465 + 1466 + group.items.push(child); 1467 + }); 1468 + 1469 + groups.forEach(function(group){ 1470 + if(group.items.length<2){ 1471 + return; 1472 + } 1473 + 1474 + var maxHeight=0; 1475 + 1476 + group.items.forEach(function(item){ 1477 + maxHeight= 1478 + Math.max( 1479 + maxHeight, 1480 + item 1481 + .getBoundingClientRect() 1482 + .height 1483 + ); 1484 + }); 1485 + 1486 + maxHeight= 1487 + Math.ceil(maxHeight); 1488 + 1489 + group.items.forEach(function(item){ 1490 + saveStyle( 1491 + item, 1492 + originalHeight, 1493 + "min-height" 1494 + ); 1495 + 1496 + item.style.setProperty( 1497 + "min-height", 1498 + maxHeight+"px" 1499 + ); 1500 + 1501 + item.setAttribute( 1502 + "data-sn-master-equal-height", 1503 + "1" 1504 + ); 1505 + 1506 + managedHeight.add(item); 1507 + }); 1508 + }); 1509 + }); 1510 + }); 1511 + } 1512 + 1513 + /* ======================================================= 1514 + RUN / RESPONSIVE SCHEDULING 1515 + ======================================================= */ 1516 + 1517 + function run(){ 1518 + if(running)return; 1519 + 1520 + running=true; 1521 + 1522 + try{ 1523 + resetRuntime(); 1524 + applyPlaceholderBadge(); 1525 + propagateDetailAccents(); 1526 + 1527 + var headers= 1528 + applyOverviewPalette(); 1529 + 1530 + if( 1531 + window.innerWidth> 1532 + MOBILE_MAX 1533 + ){ 1534 + alignOverviewCards( 1535 + headers 1536 + ); 1537 + 1538 + equaliseDetailGrids(); 1539 + } 1540 + }finally{ 1541 + running=false; 1542 + } 1543 + } 1544 + 1545 + function onResize(){ 1546 + if(resizeTimer){ 1547 + clearTimeout( 1548 + resizeTimer 1549 + ); 1550 + } 1551 + 1552 + resizeTimer= 1553 + setTimeout( 1554 + function(){ 1555 + resizeTimer=0; 1556 + run(); 1557 + }, 1558 + RESIZE_DEBOUNCE 1559 + ); 1560 + } 1561 + 1562 + async function waitForReady(){ 1563 + if( 1564 + document.readyState!=="complete" 1565 + ){ 1566 + await new Promise(function(resolve){ 1567 + window.addEventListener( 1568 + "load", 1569 + resolve, 1570 + {once:true} 1571 + ); 1572 + }); 1573 + } 1574 + 1575 + if( 1576 + document.fonts&& 1577 + document.fonts.ready 1578 + ){ 1579 + try{ 1580 + await document.fonts.ready; 1581 + }catch(error){} 1582 + } 1583 + 1584 + var images= 1585 + Array.from( 1586 + root.querySelectorAll("img") 1587 + ); 1588 + 1589 + await Promise.all( 1590 + images.map(function(img){ 1591 + if(img.complete){ 1592 + return Promise.resolve(); 1593 + } 1594 + 1595 + return new Promise(function(resolve){ 1596 + var done=function(){ 1597 + resolve(); 1598 + }; 1599 + 1600 + img.addEventListener( 1601 + "load", 1602 + done, 1603 + {once:true} 1604 + ); 1605 + 1606 + img.addEventListener( 1607 + "error", 1608 + done, 1609 + {once:true} 1610 + ); 1611 + }); 1612 + }) 1613 + ); 1614 + 1615 + run(); 1616 + } 1617 + 1618 + window.addEventListener( 1619 + "resize", 1620 + onResize, 1621 + {passive:true} 1622 + ); 1623 + 1624 + waitForReady(); 1625 +})(); 1626 +</script> 1627 + 1628 +<!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_END --> 1629 +{{/html}} 1630 +