Ä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
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 1.9
bearbeitet von Veronika Kocher
am Donnerstag, 03 Sep. 2026 13:04
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

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 Werkzeuge sind 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 &amp; 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 Werkzeuge geeignet 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 &amp; 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 &amp; 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 &amp; 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;">Nicht sicher, welche Anforderungen, Services oder nächsten Schritte für dein Projekt gelten? Kontaktiere Kunst &amp; Forschungsservices für projektspezifische Unterstü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 einfaches Setup, das tatsä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 +