Changes for page Identify Your Data & Research Outputs
Last modified by Veronika Kocher on Friday, 04 Sep 2026 14:45
From version 5.8
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 5.15
edited by Veronika Kocher
on Friday, 04 Sep 2026 14:45
on Friday, 04 Sep 2026 14:45
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -26,7 +26,7 @@ 26 26 <section class="ido-card" style="margin-bottom:18px;overflow:hidden;border-left:6px solid #e94b13;"> 27 27 <div class="ido-hero"><img src="https://xwiki.uni-ak.ac.at/bin/download/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/WebHome/enable.png" alt="Research materials, documentation and project outputs"></div> 28 28 <div style="padding:18px 21px 20px"> 29 -<div class="ido-eye" style="color:#8a4d36;margin-bottom:5px">E NABLE · IDENTIFY DATA & RESEARCH OUTPUTS</div>29 +<div class="ido-eye" style="color:#8a4d36;margin-bottom:5px">PREPARE · IDENTIFY DATA & RESEARCH OUTPUTS</div> 30 30 <h2 style="font-size:27px;line-height:1.2;margin:0 0 8px;color:#2c2926">Know what your project creates, collects, reuses and needs to keep</h2> 31 31 <p style="margin:0;color:#5e5953;line-height:1.6;max-width:1160px">Before you can plan storage, rights, data protection, documentation, publication or preservation, you need a realistic inventory of the materials and outputs your project will work with. In artistic research this often includes much more than conventional “research data”: source material, physical objects, sketches, recordings, software, process documentation, performances, installations and the records that make them understandable later.</p> 32 32 </div> ... ... @@ -251,6 +251,31 @@ 251 251 252 252 <div class="ido-info" style="margin-bottom:14px"><strong>Need help deciding what belongs in the inventory?</strong> Bring a one-paragraph project description, your planned methods/activities, expected outputs, likely source material and any funder requirements. For funded art/research projects, Support Kunst und Forschung can help connect these elements to the wider project plan.</div> 253 253 254 +<!-- ARSN_TRAINING_WORKSHOPS_V2_START --> 255 +<section class="arsn-training-workshops" data-arsn-training-workshops="v2" style="margin:27px 0 22px 0;"> 256 + <div style="padding:16px 18px;background:#eef8fa;border:1px solid #cfe8ef;border-left:5px solid #21b6d7;border-radius:9px;"> 257 + <div style="font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase;color:#3f6871;margin-bottom:5px;">TRAINING & WORKSHOPS</div> 258 + <h3 style="font-size:20px;line-height:1.3;margin:0 0 7px;color:#35312d;text-align:left;">Training, workshops & consultation sessions</h3> 259 + <p style="margin:0 0 10px;color:#5e5953;line-height:1.55;">Relevant opportunities for this topic will be shown here automatically from the central calendar.</p> 260 + <span data-arsn-coming-soon="true" style="display:inline-block;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;">COMING SOON</span> 261 + </div> 262 +</section> 263 +<!-- ARSN_TRAINING_WORKSHOPS_V2_END --> 264 + 265 +<!-- ARSN_PRACTICAL_RESOURCES_V2_START --> 266 +<section class="arsn-practical-resources" data-arsn-practical-resources="v2" style="margin:0 0 27px;"> 267 + <div style="font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase;color:#8a4d36;margin-bottom:4px;">USEFUL MATERIALS</div> 268 + <h3 style="font-size:22px;line-height:1.25;margin:0 0 8px;color:#35312d;text-align:left;">Practical Resources</h3> 269 + <p style="margin:0 0 12px;color:#5e5953;line-height:1.55;">Use practical resources when you need a concise overview, a step-by-step procedure or a ready-to-use project aid.</p> 270 + <div class="arsn-resource-grid" style="display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;"> 271 + <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #21b6d7;border-radius:9px;"><strong>Info Sheets</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;">COMING SOON</span><div style="color:#625d56;line-height:1.45;">Short reference guides for common questions and decisions.</div></div> 272 + <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #e94b13;border-radius:9px;"><strong>Tutorials</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;">COMING SOON</span><div style="color:#625d56;line-height:1.45;">Step-by-step guidance for specific tasks and workflows.</div></div> 273 + <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #38b76a;border-radius:9px;"><strong>Checklists & Templates</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;">COMING SOON</span><div style="color:#625d56;line-height:1.45;">Ready-to-use checklists and templates for planning, managing and closing projects.</div></div> 274 + </div> 275 + <style>@media(max-width:767px){.arsn-resource-grid{grid-template-columns:1fr!important}}</style> 276 +</section> 277 +<!-- ARSN_PRACTICAL_RESOURCES_V2_END --> 278 + 254 254 <!-- ARSN_SEARCH_TERMS_START --> 255 255 <details style="margin-top:24px;padding-top:10px;border-top:1px solid #e3ded6"> 256 256 <summary style="cursor:pointer;color:#6a655e;font-size:13px">Search terms & related topics</summary> ... ... @@ -262,21 +262,132 @@ 262 262 {{/html}} 263 263 264 264 {{html clean="false"}} 265 -<!-- SN_HORIZONTAL_BOX_HARMONIZER_START --> 266 -<style data-sn-horizontal-box-harmonizer="1"> 267 -[data-sn-equal-height-managed="1"]{box-sizing:border-box} 268 -@media(max-width:767px){ 269 - [data-sn-equal-height-managed="1"]{min-height:0!important} 290 +<!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_START --> 291 + 292 +<style data-sn-service-navigator-master="1"> 293 +/* ========================================================= 294 + MASTER TYPOGRAPHY 295 + ========================================================= */ 296 +#xwikicontent h1, 297 +#xwikicontent h2, 298 +#xwikicontent h3, 299 +#xwikicontent h4, 300 +#xwikicontent h5, 301 +#xwikicontent h6, 302 +#xwikicontent .box-title, 303 +#xwikicontent [role="heading"], 304 +#xwikicontent h1 a, 305 +#xwikicontent h2 a, 306 +#xwikicontent h3 a, 307 +#xwikicontent h4 a, 308 +#xwikicontent h5 a, 309 +#xwikicontent h6 a, 310 +#xwikicontent .box-title a, 311 +#xwikicontent [role="heading"] a{ 312 + text-align:left!important; 313 + text-justify:auto!important; 314 + word-spacing:normal!important; 270 270 } 316 + 317 +/* ========================================================= 318 + COMING SOON / IN VORBEREITUNG 319 + ========================================================= */ 320 +.sn-coming-soon-badge{ 321 + display:inline-block; 322 + vertical-align:middle; 323 + margin-left:10px; 324 + padding:4px 8px; 325 + border-radius:14px; 326 + border:1px solid #efd9cc; 327 + background:#fff4ee; 328 + color:#8a4d36; 329 + font-size:11px; 330 + font-weight:700; 331 + letter-spacing:.055em; 332 + line-height:1.2; 333 + white-space:nowrap; 334 +} 335 + 336 +/* ========================================================= 337 + NATIVE / DETAIL CALLOUT GEOMETRY 338 + Preserve existing backgrounds. 339 + ========================================================= */ 340 +#xwikicontent .arsn-info, 341 +#xwikicontent .dmp-info, 342 +#xwikicontent .ido-info, 343 +#xwikicontent .pp-info, 344 +#xwikicontent .infomessage{ 345 + box-sizing:border-box!important; 346 + border-left:4px solid #21b6d7!important; 347 + border-radius:8px; 348 + text-align:left!important; 349 + word-spacing:normal!important; 350 +} 351 + 352 +#xwikicontent .arsn-warn, 353 +#xwikicontent .dmp-warn, 354 +#xwikicontent .ido-warn, 355 +#xwikicontent .pp-warn, 356 +#xwikicontent .warn, 357 +#xwikicontent .warning, 358 +#xwikicontent .warningmessage, 359 +#xwikicontent .errormessage{ 360 + box-sizing:border-box!important; 361 + border-left:4px solid #e94b13!important; 362 + border-radius:8px; 363 + text-align:left!important; 364 + word-spacing:normal!important; 365 +} 366 + 367 +[data-sn-master-equal-height], 368 +[data-sn-master-first-row]{ 369 + box-sizing:border-box; 370 +} 371 + 372 +/* ========================================================= 373 + FULL-WIDTH THREE-LINE NUMBER / TITLE / SUBTITLE BLOCKS 374 + ========================================================= */ 375 +#xwikicontent .arsn-area-label[data-sn-three-line="1"]{ 376 + display:grid!important; 377 + grid-template-columns:minmax(0,1fr)!important; 378 + grid-auto-rows:auto!important; 379 + width:100%!important; 380 + max-width:none!important; 381 + box-sizing:border-box!important; 382 + justify-items:start!important; 383 + align-items:start!important; 384 + gap:2px!important; 385 + text-align:left!important; 386 + text-align-last:left!important; 387 + text-justify:auto!important; 388 + word-spacing:normal!important; 389 + white-space:normal!important; 390 +} 391 +#xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-number, 392 +#xwikicontent .arsn-area-label[data-sn-three-line="1"] > .sn-area-label-title, 393 +#xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-action{ 394 + display:block!important; 395 + width:100%!important; 396 + margin:0!important; 397 + text-align:left!important; 398 + text-align-last:left!important; 399 + text-justify:auto!important; 400 + word-spacing:normal!important; 401 + white-space:normal!important; 402 +} 271 271 </style> 272 -<script data-sn-horizontal-box-harmonizer="1"> 404 + 405 +<script data-sn-service-navigator-master="1"> 273 273 (function(){ 274 274 "use strict"; 275 275 409 + var PAGE_KIND="detail"; 410 + var PLACEHOLDER=false; 411 + var PLACEHOLDER_LABEL="COMING SOON"; 412 + 276 276 var MOBILE_MAX=767; 277 - var ROW_TOLERANCE=4; 278 - var MIN_W=150; 279 - var MIN_H=36; 414 + var ROW_TOLERANCE=6; 415 + var RESIZE_DEBOUNCE=220; 280 280 281 281 var root= 282 282 document.getElementById("xwikicontent")|| ... ... @@ -286,212 +286,1268 @@ 286 286 287 287 if(!root)return; 288 288 289 - var managed=new Set(); 290 - var raf=0; 425 + var managedHeight=new Set(); 426 + var managedMargin=new Set(); 427 + var originalHeight=new WeakMap(); 428 + var originalMargin=new WeakMap(); 291 291 292 - function num(v){ 293 - var n=parseFloat(v); 430 + var resizeTimer=0; 431 + var running=false; 432 + 433 + var THEMES=[ 434 + { 435 + name:"BLUE", 436 + accent:"#21b6d7", 437 + bg:"#eaf7fb", 438 + text:"#315d68", 439 + labels:[ 440 + "HIER STARTEN", 441 + "ENTSCHEIDEN", 442 + "ÜBERPRÜFEN & ANPASSEN", 443 + "START HERE", 444 + "DECIDE", 445 + "REVIEW & ADAPT" 446 + ] 447 + }, 448 + { 449 + name:"RED", 450 + accent:"#e94b13", 451 + bg:"#fff1ec", 452 + text:"#8a4d36", 453 + labels:[ 454 + "PLANEN & ORGANISIEREN", 455 + "ORGANISIEREN & DOKUMENTIEREN", 456 + "PUBLIZIEREN & PRÄSENTIEREN", 457 + "PLAN & ORGANISE", 458 + "PLAN & ORGANIZE", 459 + "ORGANISE & DOCUMENT", 460 + "ORGANIZE & DOCUMENT", 461 + "PUBLISH & PRESENT" 462 + ] 463 + }, 464 + { 465 + name:"YELLOW", 466 + accent:"#f0aa00", 467 + bg:"#fff8e7", 468 + text:"#785b17", 469 + labels:[ 470 + "SCHÜTZEN & KLÄREN", 471 + "STANDARDISIEREN & IDENTIFIZIEREN", 472 + "ÖFFNEN, NACHNUTZEN & AUFFINDBAR MACHEN", 473 + "PROTECT & CLARIFY", 474 + "STANDARDISE & IDENTIFY", 475 + "STANDARDIZE & IDENTIFY", 476 + "OPEN, REUSE & MAKE FINDABLE" 477 + ] 478 + }, 479 + { 480 + name:"GREEN", 481 + accent:"#38b76a", 482 + bg:"#edf9f1", 483 + text:"#3f7451", 484 + labels:[ 485 + "INFRASTRUKTUR EINRICHTEN", 486 + "INFRASTRUKTUR & ZUSAMMENARBEIT EINRICHTEN", 487 + "SPEICHERN & ZUGRIFF STEUERN", 488 + "REPOSITORIUM, ERHALTEN & ÜBERGEBEN", 489 + "SET UP INFRASTRUCTURE", 490 + "SET UP INFRASTRUCTURE & COLLABORATION", 491 + "STORE & CONTROL ACCESS", 492 + "REPOSITORY, PRESERVE & HAND OVER" 493 + ] 494 + } 495 + ]; 496 + 497 + function num(value){ 498 + var n=parseFloat(value); 294 294 return Number.isFinite(n)?n:0; 295 295 } 296 296 502 + function norm(value){ 503 + return String(value||"") 504 + .replace(/\s+/g," ") 505 + .trim() 506 + .toUpperCase(); 507 + } 508 + 297 297 function visible(el){ 298 298 if(!el||el.nodeType!==1)return false; 299 - var s=getComputedStyle(el); 300 - if(s.display==="none"||s.visibility==="hidden"||Number(s.opacity)===0)return false; 301 - var r=el.getBoundingClientRect(); 302 - return r.width>=MIN_W&&r.height>=MIN_H; 511 + 512 + var style=getComputedStyle(el); 513 + var rect=el.getBoundingClientRect(); 514 + 515 + return ( 516 + style.display!=="none"&& 517 + style.visibility!=="hidden"&& 518 + rect.width>20&& 519 + rect.height>4 520 + ); 303 303 } 304 304 305 - function excluded(el){ 306 - return !el.matches||el.matches( 307 - "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]" 523 + function saveStyle(el,map,property){ 524 + if(map.has(el))return; 525 + 526 + map.set(el,{ 527 + value:el.style.getPropertyValue(property), 528 + priority:el.style.getPropertyPriority(property) 529 + }); 530 + } 531 + 532 + function restoreStyle(el,map,property){ 533 + var original=map.get(el); 534 + 535 + if(original&&original.value){ 536 + el.style.setProperty( 537 + property, 538 + original.value, 539 + original.priority||"" 540 + ); 541 + }else{ 542 + el.style.removeProperty(property); 543 + } 544 + } 545 + 546 + function resetRuntime(){ 547 + managedHeight.forEach(function(el){ 548 + restoreStyle( 549 + el, 550 + originalHeight, 551 + "min-height" 552 + ); 553 + el.removeAttribute( 554 + "data-sn-master-equal-height" 555 + ); 556 + }); 557 + 558 + managedMargin.forEach(function(el){ 559 + restoreStyle( 560 + el, 561 + originalMargin, 562 + "margin-top" 563 + ); 564 + el.removeAttribute( 565 + "data-sn-master-first-row" 566 + ); 567 + }); 568 + 569 + managedHeight.clear(); 570 + managedMargin.clear(); 571 + } 572 + 573 + function themeFor(text){ 574 + var value=norm(text); 575 + 576 + for(var i=0;i<THEMES.length;i++){ 577 + for(var j=0;j<THEMES[i].labels.length;j++){ 578 + var label=THEMES[i].labels[j]; 579 + 580 + if( 581 + value===label|| 582 + value.indexOf(label+" ")===0|| 583 + value.indexOf(label+" -")===0|| 584 + value.indexOf(label+" ·")===0 585 + ){ 586 + return THEMES[i]; 587 + } 588 + } 589 + } 590 + 591 + return null; 592 + } 593 + 594 + /* ======================================================= 595 + BORDERLESS FILLED RED/ORANGE CTA BUTTONS 596 + ======================================================= */ 597 + 598 + function colourDistance(a,b){ 599 + return Math.sqrt( 600 + Math.pow(a[0]-b[0],2)+ 601 + Math.pow(a[1]-b[1],2)+ 602 + Math.pow(a[2]-b[2],2) 308 308 ); 309 309 } 310 310 311 - function namedLikeBox(el){ 312 - var c=typeof el.className==="string"?el.className:""; 313 - return /(^|[\s_-])(box|card|tile|panel|role|check|service|source|call|area|detail|resource|topic|warn|info)([\s_-]|$)/i.test(c); 606 + function makeFilledRedOrangeCTAsBorderless(){ 607 + var RED_ORANGE=[233,75,19]; 608 + 609 + Array.from( 610 + root.querySelectorAll( 611 + 'a,button,[role="button"],input[type="submit"],input[type="button"]' 612 + ) 613 + ).forEach(function(el){ 614 + if(!visible(el))return; 615 + 616 + var style=getComputedStyle(el); 617 + var rgb=parseRGB(style.backgroundColor); 618 + 619 + if(!rgb)return; 620 + 621 + if( 622 + colourDistance( 623 + rgb, 624 + RED_ORANGE 625 + )>55 626 + ){ 627 + return; 628 + } 629 + 630 + var rect=el.getBoundingClientRect(); 631 + 632 + if( 633 + rect.width<80|| 634 + rect.height<24 635 + ){ 636 + return; 637 + } 638 + 639 + el.style.setProperty( 640 + "border", 641 + "none", 642 + "important" 643 + ); 644 + 645 + el.style.setProperty( 646 + "border-left", 647 + "none", 648 + "important" 649 + ); 650 + 651 + el.style.setProperty( 652 + "border-top", 653 + "none", 654 + "important" 655 + ); 656 + 657 + el.style.setProperty( 658 + "border-right", 659 + "none", 660 + "important" 661 + ); 662 + 663 + el.style.setProperty( 664 + "border-bottom", 665 + "none", 666 + "important" 667 + ); 668 + 669 + el.style.setProperty( 670 + "box-shadow", 671 + "none", 672 + "important" 673 + ); 674 + }); 314 314 } 315 315 316 - function boxLike(el){ 317 - if(!visible(el)||excluded(el))return false; 318 - var s=getComputedStyle(el); 319 - var r=el.getBoundingClientRect(); 320 - var border= 321 - num(s.borderTopWidth)+num(s.borderRightWidth)+ 322 - num(s.borderBottomWidth)+num(s.borderLeftWidth); 323 - var radius=Math.max( 324 - num(s.borderTopLeftRadius),num(s.borderTopRightRadius), 325 - num(s.borderBottomLeftRadius),num(s.borderBottomRightRadius) 677 + /* ======================================================= 678 + FULL-WIDTH THREE-LINE AREA LABELS 679 + ======================================================= */ 680 + 681 + function compactText(value){ 682 + return String(value||"") 683 + .replace(/\s+/g," ") 684 + .trim(); 685 + } 686 + 687 + function makeThreeLineAreaLabels(){ 688 + Array.from( 689 + root.querySelectorAll( 690 + ".arsn-area-label" 691 + ) 692 + ).forEach(function(label){ 693 + if( 694 + label.getAttribute( 695 + "data-sn-three-line" 696 + )==="1" 697 + ){ 698 + return; 699 + } 700 + 701 + var number= 702 + label.querySelector( 703 + ":scope > .arsn-area-number" 704 + ); 705 + 706 + var action= 707 + label.querySelector( 708 + ":scope > .arsn-area-action" 709 + ); 710 + 711 + if( 712 + !number|| 713 + !action 714 + ){ 715 + return; 716 + } 717 + 718 + var clone= 719 + label.cloneNode(true); 720 + 721 + var cloneNumber= 722 + clone.querySelector( 723 + ":scope > .arsn-area-number" 724 + ); 725 + 726 + var cloneAction= 727 + clone.querySelector( 728 + ":scope > .arsn-area-action" 729 + ); 730 + 731 + if(cloneNumber){ 732 + cloneNumber.remove(); 733 + } 734 + 735 + if(cloneAction){ 736 + cloneAction.remove(); 737 + } 738 + 739 + var titleText= 740 + compactText( 741 + clone.textContent 742 + ); 743 + 744 + if(!titleText){ 745 + return; 746 + } 747 + 748 + var numberNode= 749 + number.cloneNode(true); 750 + 751 + var actionNode= 752 + action.cloneNode(true); 753 + 754 + var titleNode= 755 + document.createElement( 756 + "span" 757 + ); 758 + 759 + titleNode.className= 760 + "sn-area-label-title"; 761 + 762 + titleNode.textContent= 763 + titleText; 764 + 765 + while(label.firstChild){ 766 + label.removeChild( 767 + label.firstChild 768 + ); 769 + } 770 + 771 + label.appendChild( 772 + numberNode 773 + ); 774 + 775 + label.appendChild( 776 + titleNode 777 + ); 778 + 779 + label.appendChild( 780 + actionNode 781 + ); 782 + 783 + label.setAttribute( 784 + "data-sn-three-line", 785 + "1" 786 + ); 787 + 788 + var head= 789 + label.closest( 790 + ".arsn-area-head" 791 + ); 792 + 793 + if(head){ 794 + head.style.setProperty( 795 + "width", 796 + "100%", 797 + "important" 798 + ); 799 + 800 + head.style.setProperty( 801 + "max-width", 802 + "100%", 803 + "important" 804 + ); 805 + 806 + head.style.setProperty( 807 + "box-sizing", 808 + "border-box", 809 + "important" 810 + ); 811 + } 812 + }); 813 + } 814 + 815 + /* ======================================================= 816 + PLACEHOLDER BADGE 817 + ======================================================= */ 818 + 819 + function applyPlaceholderBadge(){ 820 + if(!PLACEHOLDER)return; 821 + 822 + if( 823 + document.querySelector( 824 + ".sn-coming-soon-badge" 825 + ) 826 + ){ 827 + return; 828 + } 829 + 830 + var title= 831 + document.querySelector( 832 + "#document-title" 833 + )|| 834 + document.querySelector( 835 + "h1" 836 + ); 837 + 838 + if(!title)return; 839 + 840 + var badge= 841 + document.createElement( 842 + "span" 843 + ); 844 + 845 + badge.className= 846 + "sn-coming-soon-badge"; 847 + 848 + badge.textContent= 849 + PLACEHOLDER_LABEL; 850 + 851 + badge.setAttribute( 852 + "aria-label", 853 + PLACEHOLDER_LABEL 326 326 ); 327 - var bg=s.backgroundColor&&s.backgroundColor!=="rgba(0, 0, 0, 0)"&&s.backgroundColor!=="transparent"; 328 - var shadow=s.boxShadow&&s.boxShadow!=="none"; 329 - return namedLikeBox(el)||border>=1||(bg&&radius>=3)||(shadow&&r.width>=180); 855 + 856 + title.appendChild( 857 + badge 858 + ); 330 330 } 331 331 332 - functionpickTarget(child){333 - if(!visible(child))returnnull;334 - if(boxLike(child))returnchild;861 + /* ======================================================= 862 + DETAIL PAGE OWN-ACCENT PROPAGATION 863 + ======================================================= */ 335 335 336 - var cr=child.getBoundingClientRect(); 337 - var q=[]; 338 - Array.from(child.children||[]).forEach(function(el){ 339 - q.push({el:el,depth:1}); 865 + function parseRGB(value){ 866 + var match=String(value||"").match( 867 + /rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i 868 + ); 869 + 870 + if(!match)return null; 871 + 872 + return [ 873 + Number(match[1]), 874 + Number(match[2]), 875 + Number(match[3]) 876 + ]; 877 + } 878 + 879 + function distance(a,b){ 880 + return Math.sqrt( 881 + Math.pow(a[0]-b[0],2)+ 882 + Math.pow(a[1]-b[1],2)+ 883 + Math.pow(a[2]-b[2],2) 884 + ); 885 + } 886 + 887 + function paletteMatch(cssColor){ 888 + var rgb=parseRGB(cssColor); 889 + 890 + if(!rgb)return null; 891 + 892 + var palette=[ 893 + {hex:"#21b6d7",rgb:[33,182,215]}, 894 + {hex:"#e94b13",rgb:[233,75,19]}, 895 + {hex:"#f0aa00",rgb:[240,170,0]}, 896 + {hex:"#38b76a",rgb:[56,183,106]} 897 + ]; 898 + 899 + var best=null; 900 + var bestDistance=Infinity; 901 + 902 + palette.forEach(function(item){ 903 + var d=distance(rgb,item.rgb); 904 + 905 + if(d<bestDistance){ 906 + best=item; 907 + bestDistance=d; 908 + } 340 340 }); 341 341 342 - var best=null,bestScore=-1; 911 + return bestDistance<=30 912 + ?best 913 + :null; 914 + } 343 343 344 - while(q.length){ 345 - var item=q.shift(); 346 - var el=item.el; 347 - if(!visible(el))continue; 916 + function propagateDetailAccents(){ 917 + if(PAGE_KIND!=="detail")return; 348 348 349 - var r=el.getBoundingClientRect(); 919 + Array.from( 920 + root.querySelectorAll( 921 + ".arsn-call,.dmp-call,.ido-call,.pp-call,"+ 922 + ".arsn-source,.dmp-source,.ido-source,.pp-source" 923 + ) 924 + ).forEach(function(el){ 925 + if(!visible(el))return; 350 350 351 - if(r.width>=cr.width*.72&&boxLike(el)){ 352 - var widthFit=1-Math.min(1,Math.abs(cr.width-r.width)/Math.max(1,cr.width)); 353 - var topFit=1-Math.min(1,Math.abs(cr.top-r.top)/80); 354 - var score=widthFit*5+topFit*2+Math.min(r.height,600)/600; 355 - if(score>bestScore){ 356 - best=el; 357 - bestScore=score; 927 + var style=getComputedStyle(el); 928 + 929 + if( 930 + num(style.borderTopWidth)>=2 931 + ){ 932 + var match= 933 + paletteMatch( 934 + style.borderTopColor 935 + ); 936 + 937 + if(match){ 938 + el.style.setProperty( 939 + "border-left", 940 + "4px solid "+match.hex, 941 + "important" 942 + ); 358 358 } 359 359 } 945 + }); 360 360 361 - if(item.depth<3){ 362 - Array.from(el.children||[]).forEach(function(next){ 363 - q.push({el:next,depth:item.depth+1}); 364 - }); 947 + // Warning families: explicit safety override. 948 + Array.from( 949 + root.querySelectorAll( 950 + ".arsn-warn,.dmp-warn,.ido-warn,.pp-warn,"+ 951 + ".warn,.warning,.warningmessage,.errormessage" 952 + ) 953 + ).forEach(function(el){ 954 + if(!visible(el))return; 955 + 956 + el.style.setProperty( 957 + "border-left", 958 + "4px solid #e94b13", 959 + "important" 960 + ); 961 + }); 962 + 963 + // Info families: explicit orientation override. 964 + Array.from( 965 + root.querySelectorAll( 966 + ".arsn-info,.dmp-info,.ido-info,.pp-info,.infomessage" 967 + ) 968 + ).forEach(function(el){ 969 + if(!visible(el))return; 970 + 971 + el.style.setProperty( 972 + "border-left", 973 + "4px solid #21b6d7", 974 + "important" 975 + ); 976 + }); 977 + } 978 + 979 + /* ======================================================= 980 + OVERVIEW SEMANTIC THEME PALETTE 981 + ======================================================= */ 982 + 983 + function smallestThemeHeaders(){ 984 + return Array.from( 985 + root.querySelectorAll( 986 + "div,span,p,strong,h3,h4,h5,h6" 987 + ) 988 + ).filter(function(el){ 989 + if(!visible(el))return false; 990 + if(!themeFor(el.textContent))return false; 991 + 992 + return !Array.from( 993 + el.children||[] 994 + ).some(function(child){ 995 + return !!themeFor( 996 + child.textContent 997 + ); 998 + }); 999 + }); 1000 + } 1001 + 1002 + function findOverviewCard(header){ 1003 + var node=header.parentElement; 1004 + var candidates=[]; 1005 + 1006 + while(node&&node!==root){ 1007 + var rect=node.getBoundingClientRect(); 1008 + var style=getComputedStyle(node); 1009 + 1010 + var border= 1011 + num(style.borderTopWidth)+ 1012 + num(style.borderRightWidth)+ 1013 + num(style.borderBottomWidth)+ 1014 + num(style.borderLeftWidth); 1015 + 1016 + if( 1017 + rect.width>=220&& 1018 + rect.width<=800&& 1019 + rect.height>=120&& 1020 + border>=1 1021 + ){ 1022 + candidates.push(node); 365 365 } 1024 + 1025 + node=node.parentElement; 366 366 } 367 367 368 - return best; 1028 + if(!candidates.length)return null; 1029 + 1030 + candidates.sort(function(a,b){ 1031 + return ( 1032 + b.getBoundingClientRect().height- 1033 + a.getBoundingClientRect().height 1034 + ); 1035 + }); 1036 + 1037 + return candidates[0]; 369 369 } 370 370 371 - function reset(){ 372 - managed.forEach(function(el){ 373 - el.style.removeProperty("min-height"); 374 - el.removeAttribute("data-sn-equal-height-managed"); 1040 + function rowCandidates(link,card){ 1041 + var result=[]; 1042 + var cardRect= 1043 + card.getBoundingClientRect(); 1044 + 1045 + var node=link; 1046 + 1047 + while(node&&node!==card){ 1048 + if(visible(node)){ 1049 + var rect= 1050 + node.getBoundingClientRect(); 1051 + 1052 + if( 1053 + rect.height<=105&& 1054 + rect.width>= 1055 + cardRect.width*.50&& 1056 + rect.width<= 1057 + cardRect.width*1.03 1058 + ){ 1059 + result.push(node); 1060 + } 1061 + } 1062 + 1063 + node=node.parentElement; 1064 + } 1065 + 1066 + return result; 1067 + } 1068 + 1069 + function chooseOuterRow( 1070 + candidates, 1071 + link 1072 + ){ 1073 + if(!candidates.length){ 1074 + return link; 1075 + } 1076 + 1077 + var bordered= 1078 + candidates.filter(function(el){ 1079 + return ( 1080 + num( 1081 + getComputedStyle(el) 1082 + .borderLeftWidth 1083 + )>=1 1084 + ); 1085 + }); 1086 + 1087 + var pool= 1088 + bordered.length 1089 + ?bordered 1090 + :candidates; 1091 + 1092 + pool.sort(function(a,b){ 1093 + var ar= 1094 + a.getBoundingClientRect(); 1095 + 1096 + var br= 1097 + b.getBoundingClientRect(); 1098 + 1099 + return ( 1100 + ar.left-br.left|| 1101 + br.width-ar.width 1102 + ); 375 375 }); 376 - managed.clear(); 1104 + 1105 + return pool[0]||link; 377 377 } 378 378 379 - function horizontalLayout(parent){ 380 - if(!visible(parent))return false; 381 - var s=getComputedStyle(parent); 382 - if(s.display==="grid"||s.display==="inline-grid")return true; 383 - if(s.display==="flex"||s.display==="inline-flex"){ 384 - return s.flexDirection==="row"||s.flexDirection==="row-reverse"; 1108 + function applyOverviewPalette(){ 1109 + if(PAGE_KIND!=="overview"){ 1110 + return []; 385 385 } 386 - return false; 1112 + 1113 + var headers= 1114 + smallestThemeHeaders() 1115 + .map(function(el){ 1116 + return { 1117 + el:el, 1118 + theme: 1119 + themeFor( 1120 + el.textContent 1121 + ), 1122 + card: 1123 + findOverviewCard( 1124 + el 1125 + ) 1126 + }; 1127 + }) 1128 + .filter(function(row){ 1129 + return !!row.card; 1130 + }); 1131 + 1132 + var unique=[]; 1133 + var seenHeaders=new Set(); 1134 + 1135 + headers.forEach(function(row){ 1136 + var key= 1137 + row.theme.name+ 1138 + "|"+ 1139 + Math.round( 1140 + row.card 1141 + .getBoundingClientRect() 1142 + .left 1143 + )+ 1144 + "|"+ 1145 + Math.round( 1146 + row.el 1147 + .getBoundingClientRect() 1148 + .top 1149 + ); 1150 + 1151 + if(!seenHeaders.has(key)){ 1152 + seenHeaders.add(key); 1153 + unique.push(row); 1154 + } 1155 + }); 1156 + 1157 + unique.forEach(function(row){ 1158 + var headerRect= 1159 + row.el 1160 + .getBoundingClientRect(); 1161 + 1162 + row.el.style.setProperty( 1163 + "background", 1164 + row.theme.bg, 1165 + "important" 1166 + ); 1167 + 1168 + row.el.style.setProperty( 1169 + "color", 1170 + row.theme.text, 1171 + "important" 1172 + ); 1173 + 1174 + row.el.style.setProperty( 1175 + "text-align", 1176 + "left", 1177 + "important" 1178 + ); 1179 + 1180 + row.el.style.setProperty( 1181 + "word-spacing", 1182 + "normal", 1183 + "important" 1184 + ); 1185 + 1186 + var later= 1187 + unique 1188 + .filter(function(other){ 1189 + return ( 1190 + other.card===row.card&& 1191 + other.el 1192 + .getBoundingClientRect() 1193 + .top> 1194 + headerRect.top+2 1195 + ); 1196 + }) 1197 + .sort(function(a,b){ 1198 + return ( 1199 + a.el 1200 + .getBoundingClientRect() 1201 + .top- 1202 + b.el 1203 + .getBoundingClientRect() 1204 + .top 1205 + ); 1206 + }); 1207 + 1208 + var stopTop= 1209 + later.length 1210 + ?later[0].el 1211 + .getBoundingClientRect() 1212 + .top 1213 + :Infinity; 1214 + 1215 + Array.from( 1216 + row.card.querySelectorAll("a") 1217 + ).forEach(function(link){ 1218 + if(!visible(link))return; 1219 + 1220 + var rect= 1221 + link.getBoundingClientRect(); 1222 + 1223 + if( 1224 + rect.top<= 1225 + headerRect.bottom-2|| 1226 + rect.top>= 1227 + stopTop-2 1228 + ){ 1229 + return; 1230 + } 1231 + 1232 + var candidates= 1233 + rowCandidates( 1234 + link, 1235 + row.card 1236 + ); 1237 + 1238 + var target= 1239 + chooseOuterRow( 1240 + candidates, 1241 + link 1242 + ); 1243 + 1244 + candidates.forEach(function(el){ 1245 + el.style.setProperty( 1246 + "border-left", 1247 + "0 solid transparent", 1248 + "important" 1249 + ); 1250 + }); 1251 + 1252 + target.style.setProperty( 1253 + "border-left", 1254 + "3px solid "+ 1255 + row.theme.accent, 1256 + "important" 1257 + ); 1258 + 1259 + target.style.setProperty( 1260 + "box-sizing", 1261 + "border-box", 1262 + "important" 1263 + ); 1264 + }); 1265 + }); 1266 + 1267 + return unique; 387 387 } 388 388 389 - function rowGroups(entries){ 1270 + /* ======================================================= 1271 + OVERVIEW CARD HEIGHT + FIRST THEMATIC ROW 1272 + ======================================================= */ 1273 + 1274 + function alignOverviewCards(headers){ 1275 + if( 1276 + PAGE_KIND!=="overview"|| 1277 + window.innerWidth<=MOBILE_MAX 1278 + ){ 1279 + return; 1280 + } 1281 + 1282 + var cards=[]; 1283 + var seen=new Set(); 1284 + 1285 + headers.forEach(function(row){ 1286 + if(!seen.has(row.card)){ 1287 + seen.add(row.card); 1288 + cards.push(row.card); 1289 + } 1290 + }); 1291 + 1292 + if(cards.length<2){ 1293 + return; 1294 + } 1295 + 1296 + // Group cards by actual top position. 390 390 var groups=[]; 391 - entries.slice().sort(function(a,b){ 392 - return a.rect.top-b.rect.top||a.rect.left-b.rect.left; 393 - }).forEach(function(entry){ 1298 + 1299 + cards.forEach(function(card){ 1300 + var top= 1301 + card.getBoundingClientRect().top; 1302 + 394 394 var group=null; 1304 + 395 395 for(var i=0;i<groups.length;i++){ 396 - if(Math.abs(groups[i].top-entry.rect.top)<=ROW_TOLERANCE){ 1306 + if( 1307 + Math.abs( 1308 + groups[i].top-top 1309 + )<=ROW_TOLERANCE 1310 + ){ 397 397 group=groups[i]; 398 398 break; 399 399 } 400 400 } 1315 + 401 401 if(!group){ 402 - group={top:entry.rect.top,entries:[]}; 1317 + group={ 1318 + top:top, 1319 + cards:[] 1320 + }; 403 403 groups.push(group); 404 404 } 405 - group.entries.push(entry); 1323 + 1324 + group.cards.push(card); 406 406 }); 407 - return groups; 408 - } 409 409 410 - function run(){ 411 - reset(); 1327 + groups.forEach(function(group){ 1328 + if(group.cards.length<2){ 1329 + return; 1330 + } 412 412 413 - if(window.innerWidth<=MOBILE_MAX)return; 1332 + var firstHeaders= 1333 + group.cards.map(function(card){ 1334 + var candidates= 1335 + headers 1336 + .filter(function(row){ 1337 + return row.card===card; 1338 + }) 1339 + .sort(function(a,b){ 1340 + return ( 1341 + a.el 1342 + .getBoundingClientRect() 1343 + .top- 1344 + b.el 1345 + .getBoundingClientRect() 1346 + .top 1347 + ); 1348 + }); 414 414 415 - var parents=Array.from(root.querySelectorAll("*")).filter(function(el){ 416 - return el.children&&el.children.length>=2&&horizontalLayout(el); 417 - }); 1350 + return candidates.length 1351 + ?candidates[0] 1352 + :null; 1353 + }); 418 418 419 - parents.forEach(function(parent){ 420 - var entries=[]; 1355 + if( 1356 + !firstHeaders.some(function(row){ 1357 + return !row; 1358 + }) 1359 + ){ 1360 + var targetTop= 1361 + Math.max.apply( 1362 + Math, 1363 + firstHeaders.map(function(row){ 1364 + return ( 1365 + row.el 1366 + .getBoundingClientRect() 1367 + .top- 1368 + row.card 1369 + .getBoundingClientRect() 1370 + .top 1371 + ); 1372 + }) 1373 + ); 421 421 422 - Array.from(parent.children).forEach(function(child){ 423 - if(!visible(child))return; 424 - var target=pickTarget(child); 425 - if(!target)return; 426 - entries.push({ 427 - target:target, 428 - rect:target.getBoundingClientRect() 1375 + firstHeaders.forEach(function(row){ 1376 + var relativeTop= 1377 + row.el 1378 + .getBoundingClientRect() 1379 + .top- 1380 + row.card 1381 + .getBoundingClientRect() 1382 + .top; 1383 + 1384 + var delta= 1385 + targetTop-relativeTop; 1386 + 1387 + if(delta>1){ 1388 + saveStyle( 1389 + row.el, 1390 + originalMargin, 1391 + "margin-top" 1392 + ); 1393 + 1394 + var current= 1395 + num( 1396 + getComputedStyle( 1397 + row.el 1398 + ).marginTop 1399 + ); 1400 + 1401 + row.el.style.setProperty( 1402 + "margin-top", 1403 + ( 1404 + current+delta 1405 + )+"px" 1406 + ); 1407 + 1408 + row.el.setAttribute( 1409 + "data-sn-master-first-row", 1410 + "1" 1411 + ); 1412 + 1413 + managedMargin.add( 1414 + row.el 1415 + ); 1416 + } 429 429 }); 1418 + } 1419 + 1420 + var maxHeight=0; 1421 + 1422 + group.cards.forEach(function(card){ 1423 + maxHeight= 1424 + Math.max( 1425 + maxHeight, 1426 + card 1427 + .getBoundingClientRect() 1428 + .height 1429 + ); 430 430 }); 431 431 432 - if(entries.length<2)return; 1432 + maxHeight= 1433 + Math.ceil(maxHeight); 433 433 434 - rowGroups(entries).forEach(function(group){ 435 - if(group.entries.length<2)return; 1435 + group.cards.forEach(function(card){ 1436 + saveStyle( 1437 + card, 1438 + originalHeight, 1439 + "min-height" 1440 + ); 436 436 437 - var lefts=group.entries.map(function(e){return e.rect.left;}).sort(function(a,b){return a-b;}); 438 - if(lefts[lefts.length-1]-lefts[0]<80)return; 1442 + card.style.setProperty( 1443 + "min-height", 1444 + maxHeight+"px" 1445 + ); 439 439 440 - var targets=[]; 441 - var seen=new Set(); 1447 + card.setAttribute( 1448 + "data-sn-master-equal-height", 1449 + "1" 1450 + ); 442 442 443 - group.entries.forEach(function(e){ 444 - if(!seen.has(e.target)){ 445 - seen.add(e.target); 446 - targets.push(e.target); 1452 + managedHeight.add( 1453 + card 1454 + ); 1455 + }); 1456 + }); 1457 + } 1458 + 1459 + /* ======================================================= 1460 + DETAIL GRID EQUAL HEIGHT, DESKTOP ONLY 1461 + ======================================================= */ 1462 + 1463 + function equaliseDetailGrids(){ 1464 + if( 1465 + PAGE_KIND!=="detail"|| 1466 + window.innerWidth<=MOBILE_MAX 1467 + ){ 1468 + return; 1469 + } 1470 + 1471 + var selectors=[ 1472 + ".arsn-grid", 1473 + ".arsn-grid-2", 1474 + ".arsn-grid-3", 1475 + ".dmp-grid", 1476 + ".ido-grid", 1477 + ".pp-grid" 1478 + ]; 1479 + 1480 + selectors.forEach(function(selector){ 1481 + Array.from( 1482 + root.querySelectorAll(selector) 1483 + ).forEach(function(grid){ 1484 + var children= 1485 + Array.from( 1486 + grid.children||[] 1487 + ).filter(visible); 1488 + 1489 + if(children.length<2){ 1490 + return; 1491 + } 1492 + 1493 + var groups=[]; 1494 + 1495 + children.forEach(function(child){ 1496 + var top= 1497 + child 1498 + .getBoundingClientRect() 1499 + .top; 1500 + 1501 + var group=null; 1502 + 1503 + for(var i=0;i<groups.length;i++){ 1504 + if( 1505 + Math.abs( 1506 + groups[i].top-top 1507 + )<=ROW_TOLERANCE 1508 + ){ 1509 + group=groups[i]; 1510 + break; 1511 + } 447 447 } 448 - }); 449 449 450 - if(targets.length<2)return; 1514 + if(!group){ 1515 + group={ 1516 + top:top, 1517 + items:[] 1518 + }; 1519 + groups.push(group); 1520 + } 451 451 452 - var max=0; 453 - targets.forEach(function(el){ 454 - max=Math.max(max,el.getBoundingClientRect().height); 1522 + group.items.push(child); 455 455 }); 456 456 457 - max=Math.ceil(max); 458 - if(max<MIN_H)return; 1525 + groups.forEach(function(group){ 1526 + if(group.items.length<2){ 1527 + return; 1528 + } 459 459 460 - targets.forEach(function(el){ 461 - el.style.setProperty("min-height",max+"px"); 462 - el.setAttribute("data-sn-equal-height-managed","1"); 463 - managed.add(el); 1530 + var maxHeight=0; 1531 + 1532 + group.items.forEach(function(item){ 1533 + maxHeight= 1534 + Math.max( 1535 + maxHeight, 1536 + item 1537 + .getBoundingClientRect() 1538 + .height 1539 + ); 1540 + }); 1541 + 1542 + maxHeight= 1543 + Math.ceil(maxHeight); 1544 + 1545 + group.items.forEach(function(item){ 1546 + saveStyle( 1547 + item, 1548 + originalHeight, 1549 + "min-height" 1550 + ); 1551 + 1552 + item.style.setProperty( 1553 + "min-height", 1554 + maxHeight+"px" 1555 + ); 1556 + 1557 + item.setAttribute( 1558 + "data-sn-master-equal-height", 1559 + "1" 1560 + ); 1561 + 1562 + managedHeight.add(item); 1563 + }); 464 464 }); 465 465 }); 466 466 }); 467 467 } 468 468 469 - function schedule(){ 470 - if(raf)cancelAnimationFrame(raf); 471 - raf=requestAnimationFrame(function(){ 472 - raf=requestAnimationFrame(function(){ 473 - raf=0; 474 - run(); 475 - }); 476 - }); 1569 + /* ======================================================= 1570 + RUN / RESPONSIVE SCHEDULING 1571 + ======================================================= */ 1572 + 1573 + function run(){ 1574 + if(running)return; 1575 + 1576 + running=true; 1577 + 1578 + try{ 1579 + resetRuntime(); 1580 + applyPlaceholderBadge(); 1581 + propagateDetailAccents(); 1582 + 1583 + var headers= 1584 + applyOverviewPalette(); 1585 + 1586 + makeThreeLineAreaLabels(); 1587 + makeFilledRedOrangeCTAsBorderless(); 1588 + 1589 + if( 1590 + window.innerWidth> 1591 + MOBILE_MAX 1592 + ){ 1593 + alignOverviewCards( 1594 + headers 1595 + ); 1596 + 1597 + equaliseDetailGrids(); 1598 + } 1599 + }finally{ 1600 + running=false; 1601 + } 477 477 } 478 478 479 - addEventListener("resize",schedule,{passive:true}); 480 - addEventListener("load",schedule,{once:true}); 1604 + function onResize(){ 1605 + if(resizeTimer){ 1606 + clearTimeout( 1607 + resizeTimer 1608 + ); 1609 + } 481 481 482 - root.addEventListener("click",function(){ 483 - setTimeout(schedule,0); 484 - },true); 1611 + resizeTimer= 1612 + setTimeout( 1613 + function(){ 1614 + resizeTimer=0; 1615 + run(); 1616 + }, 1617 + RESIZE_DEBOUNCE 1618 + ); 1619 + } 485 485 486 - if(document.fonts&&document.fonts.ready){ 487 - document.fonts.ready.then(schedule); 1621 + async function waitForReady(){ 1622 + if( 1623 + document.readyState!=="complete" 1624 + ){ 1625 + await new Promise(function(resolve){ 1626 + window.addEventListener( 1627 + "load", 1628 + resolve, 1629 + {once:true} 1630 + ); 1631 + }); 1632 + } 1633 + 1634 + if( 1635 + document.fonts&& 1636 + document.fonts.ready 1637 + ){ 1638 + try{ 1639 + await document.fonts.ready; 1640 + }catch(error){} 1641 + } 1642 + 1643 + var images= 1644 + Array.from( 1645 + root.querySelectorAll("img") 1646 + ); 1647 + 1648 + await Promise.all( 1649 + images.map(function(img){ 1650 + if(img.complete){ 1651 + return Promise.resolve(); 1652 + } 1653 + 1654 + return new Promise(function(resolve){ 1655 + var done=function(){ 1656 + resolve(); 1657 + }; 1658 + 1659 + img.addEventListener( 1660 + "load", 1661 + done, 1662 + {once:true} 1663 + ); 1664 + 1665 + img.addEventListener( 1666 + "error", 1667 + done, 1668 + {once:true} 1669 + ); 1670 + }); 1671 + }) 1672 + ); 1673 + 1674 + run(); 488 488 } 489 489 490 - schedule(); 491 - setTimeout(schedule,250); 492 - setTimeout(schedule,900); 1677 + window.addEventListener( 1678 + "resize", 1679 + onResize, 1680 + {passive:true} 1681 + ); 1682 + 1683 + waitForReady(); 493 493 })(); 494 494 </script> 495 -<!-- SN_HORIZONTAL_BOX_HARMONIZER_END --> 1686 + 1687 +<!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_END --> 496 496 {{/html}} 497 497