Wiki-Quellcode von Prepare
Zuletzt geändert von Veronika Kocher am Dienstag, 01 Sep. 2026 13:37
Zeige letzte Bearbeiter
| author | version | line-number | content |
|---|---|---|---|
| 1 | {{html clean="false"}} | ||
| 2 | |||
| 3 | <style> | ||
| 4 | .arsn-phase { | ||
| 5 | max-width: 1400px; | ||
| 6 | margin: 0 auto; | ||
| 7 | color: #322f2b; | ||
| 8 | } | ||
| 9 | |||
| 10 | .arsn-phase * { | ||
| 11 | box-sizing: border-box; | ||
| 12 | } | ||
| 13 | |||
| 14 | .arsn-eyebrow { | ||
| 15 | font-size: 12px; | ||
| 16 | font-weight: 700; | ||
| 17 | letter-spacing: .075em; | ||
| 18 | text-transform: uppercase; | ||
| 19 | } | ||
| 20 | |||
| 21 | .arsn-card { | ||
| 22 | border-radius: 11px; | ||
| 23 | box-shadow: 0 1px 3px rgba(0,0,0,.035); | ||
| 24 | } | ||
| 25 | |||
| 26 | .arsn-hero-image { | ||
| 27 | height: 138px; | ||
| 28 | overflow: hidden; | ||
| 29 | border-radius: 11px 11px 0 0; | ||
| 30 | background: #f1eee9; | ||
| 31 | } | ||
| 32 | |||
| 33 | .arsn-hero-image img { | ||
| 34 | width: 100%; | ||
| 35 | height: 100%; | ||
| 36 | object-fit: cover; | ||
| 37 | display: block; | ||
| 38 | } | ||
| 39 | |||
| 40 | .arsn-progress { | ||
| 41 | position: relative; | ||
| 42 | display: grid; | ||
| 43 | grid-template-columns: repeat(3, minmax(0,1fr)); | ||
| 44 | gap: 14px; | ||
| 45 | margin: 0 0 26px 0; | ||
| 46 | padding: 4px 0 0 0; | ||
| 47 | } | ||
| 48 | |||
| 49 | .arsn-progress:before { | ||
| 50 | content: ""; | ||
| 51 | position: absolute; | ||
| 52 | top: 21px; | ||
| 53 | left: 9%; | ||
| 54 | right: 9%; | ||
| 55 | height: 2px; | ||
| 56 | background: #e9cfc2; | ||
| 57 | z-index: 0; | ||
| 58 | } | ||
| 59 | |||
| 60 | .arsn-step { | ||
| 61 | position: relative; | ||
| 62 | z-index: 1; | ||
| 63 | text-align: center; | ||
| 64 | } | ||
| 65 | |||
| 66 | .arsn-step-dot { | ||
| 67 | width: 14px; | ||
| 68 | height: 14px; | ||
| 69 | margin: 0 auto 7px auto; | ||
| 70 | border-radius: 50%; | ||
| 71 | border: 3px solid #fff; | ||
| 72 | box-shadow: 0 0 0 1px #d5cfc7; | ||
| 73 | background: #d8d2ca; | ||
| 74 | } | ||
| 75 | |||
| 76 | .arsn-step.active .arsn-step-dot { | ||
| 77 | background: #e94b13; | ||
| 78 | box-shadow: 0 0 0 1px #e94b13; | ||
| 79 | } | ||
| 80 | |||
| 81 | .arsn-step.done .arsn-step-dot { | ||
| 82 | background: #8c837a; | ||
| 83 | box-shadow: 0 0 0 1px #8c837a; | ||
| 84 | } | ||
| 85 | |||
| 86 | .arsn-step-label { | ||
| 87 | font-size: 11px; | ||
| 88 | font-weight: 700; | ||
| 89 | letter-spacing: .06em; | ||
| 90 | color: #746d65; | ||
| 91 | } | ||
| 92 | |||
| 93 | .arsn-step.active .arsn-step-label { | ||
| 94 | color: #7d4a37; | ||
| 95 | } | ||
| 96 | |||
| 97 | .arsn-step-desc { | ||
| 98 | margin-top: 3px; | ||
| 99 | font-size: 13px; | ||
| 100 | color: #6a655e; | ||
| 101 | } | ||
| 102 | |||
| 103 | .arsn-focus-grid { | ||
| 104 | display: grid; | ||
| 105 | grid-template-columns: repeat(3, minmax(230px,1fr)); | ||
| 106 | gap: 12px; | ||
| 107 | } | ||
| 108 | |||
| 109 | .arsn-focus-group { | ||
| 110 | padding: 13px 14px; | ||
| 111 | background: rgba(255,255,255,.52); | ||
| 112 | border: 1px solid #cfe8ef; | ||
| 113 | border-radius: 8px; | ||
| 114 | } | ||
| 115 | |||
| 116 | .arsn-focus-group strong { | ||
| 117 | display: block; | ||
| 118 | margin-bottom: 6px; | ||
| 119 | color: #2f5661; | ||
| 120 | } | ||
| 121 | |||
| 122 | .arsn-focus-group ul { | ||
| 123 | margin: 0 0 0 17px; | ||
| 124 | padding: 0; | ||
| 125 | color: #365862; | ||
| 126 | } | ||
| 127 | |||
| 128 | .arsn-focus-group li { | ||
| 129 | margin: 4px 0; | ||
| 130 | } | ||
| 131 | |||
| 132 | .arsn-outcome-grid { | ||
| 133 | display: grid; | ||
| 134 | grid-template-columns: repeat(auto-fit, minmax(230px,1fr)); | ||
| 135 | gap: 10px; | ||
| 136 | } | ||
| 137 | |||
| 138 | .arsn-outcome { | ||
| 139 | position: relative; | ||
| 140 | padding: 12px 13px 12px 36px; | ||
| 141 | background: #fcfbf8; | ||
| 142 | border: 1px solid #e3ded6; | ||
| 143 | border-radius: 8px; | ||
| 144 | color: #4f4a44; | ||
| 145 | } | ||
| 146 | |||
| 147 | .arsn-outcome:before { | ||
| 148 | content: "✓"; | ||
| 149 | position: absolute; | ||
| 150 | left: 13px; | ||
| 151 | top: 10px; | ||
| 152 | color: #e94b13; | ||
| 153 | font-weight: 800; | ||
| 154 | } | ||
| 155 | |||
| 156 | .arsn-area-grid { | ||
| 157 | display: grid; | ||
| 158 | grid-template-columns: repeat(auto-fit, minmax(310px,1fr)); | ||
| 159 | gap: 18px; | ||
| 160 | align-items: stretch; | ||
| 161 | } | ||
| 162 | |||
| 163 | .arsn-area { | ||
| 164 | display: flex; | ||
| 165 | flex-direction: column; | ||
| 166 | overflow: hidden; | ||
| 167 | border: 1px solid #e3ded6; | ||
| 168 | border-radius: 11px; | ||
| 169 | background: #fcfbf8; | ||
| 170 | box-shadow: 0 1px 3px rgba(0,0,0,.035); | ||
| 171 | } | ||
| 172 | |||
| 173 | .arsn-area-head { | ||
| 174 | padding: 18px 19px 12px 19px; | ||
| 175 | } | ||
| 176 | |||
| 177 | .arsn-area-body { | ||
| 178 | padding: 3px 19px 19px 19px; | ||
| 179 | } | ||
| 180 | |||
| 181 | .arsn-area-label { | ||
| 182 | display: inline-flex; | ||
| 183 | align-items: center; | ||
| 184 | gap: 7px; | ||
| 185 | padding: 5px 8px; | ||
| 186 | margin-bottom: 9px; | ||
| 187 | border-radius: 5px; | ||
| 188 | font-size: 12px; | ||
| 189 | font-weight: 700; | ||
| 190 | letter-spacing: .065em; | ||
| 191 | } | ||
| 192 | |||
| 193 | .arsn-area-number { | ||
| 194 | opacity: .72; | ||
| 195 | } | ||
| 196 | |||
| 197 | .arsn-area-action { | ||
| 198 | margin-left: 2px; | ||
| 199 | font-weight: 600; | ||
| 200 | opacity: .74; | ||
| 201 | letter-spacing: .02em; | ||
| 202 | text-transform: none; | ||
| 203 | } | ||
| 204 | |||
| 205 | .arsn-area h4 { | ||
| 206 | font-size: 19px; | ||
| 207 | line-height: 1.3; | ||
| 208 | margin: 0 0 7px 0; | ||
| 209 | color: #2f2b27; | ||
| 210 | } | ||
| 211 | |||
| 212 | .arsn-area p { | ||
| 213 | margin: 0; | ||
| 214 | line-height: 1.5; | ||
| 215 | color: #625d56; | ||
| 216 | } | ||
| 217 | |||
| 218 | .arsn-topic { | ||
| 219 | display: block; | ||
| 220 | margin: 6px 0; | ||
| 221 | padding: 10px 11px; | ||
| 222 | border: 1px solid #e9e4dc; | ||
| 223 | border-radius: 6px; | ||
| 224 | background: #fffdf9; | ||
| 225 | color: #252321; | ||
| 226 | text-decoration: none; | ||
| 227 | font-weight: 600; | ||
| 228 | transition: transform .08s ease, box-shadow .08s ease, background .08s ease; | ||
| 229 | } | ||
| 230 | |||
| 231 | .arsn-topic:hover, | ||
| 232 | .arsn-topic:focus { | ||
| 233 | background: #fff7f1; | ||
| 234 | text-decoration: none; | ||
| 235 | transform: translateY(-1px); | ||
| 236 | box-shadow: 0 2px 5px rgba(0,0,0,.06); | ||
| 237 | } | ||
| 238 | |||
| 239 | .arsn-resource-grid { | ||
| 240 | display: grid; | ||
| 241 | grid-template-columns: repeat(auto-fit, minmax(230px,1fr)); | ||
| 242 | gap: 12px; | ||
| 243 | } | ||
| 244 | |||
| 245 | .arsn-related-grid { | ||
| 246 | display: grid; | ||
| 247 | grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); | ||
| 248 | gap: 8px; | ||
| 249 | } | ||
| 250 | |||
| 251 | .arsn-related-link { | ||
| 252 | display: block; | ||
| 253 | padding: 9px 10px; | ||
| 254 | border: 1px solid #e9e4dc; | ||
| 255 | border-left: 3px solid #e94b13; | ||
| 256 | border-radius: 6px; | ||
| 257 | background: #fffdf9; | ||
| 258 | color: #252321; | ||
| 259 | text-decoration: none; | ||
| 260 | font-weight: 600; | ||
| 261 | } | ||
| 262 | |||
| 263 | .arsn-related-link:hover, | ||
| 264 | .arsn-related-link:focus { | ||
| 265 | background: #fff7f1; | ||
| 266 | text-decoration: none; | ||
| 267 | } | ||
| 268 | |||
| 269 | .arsn-tip { | ||
| 270 | padding: 12px 15px; | ||
| 271 | border: 1px solid #c7e5ed; | ||
| 272 | border-left: 4px solid #21b6d7; | ||
| 273 | background: #eaf6f9; | ||
| 274 | border-radius: 7px; | ||
| 275 | color: #365e68; | ||
| 276 | font-size: 13px; | ||
| 277 | } | ||
| 278 | |||
| 279 | .arsn-tip strong { | ||
| 280 | color: #2d5661; | ||
| 281 | } | ||
| 282 | |||
| 283 | @media (max-width: 800px) { | ||
| 284 | .arsn-focus-grid { | ||
| 285 | grid-template-columns: 1fr; | ||
| 286 | } | ||
| 287 | } | ||
| 288 | |||
| 289 | @media (max-width: 700px) { | ||
| 290 | .arsn-progress:before { | ||
| 291 | display: none; | ||
| 292 | } | ||
| 293 | .arsn-progress { | ||
| 294 | grid-template-columns: 1fr; | ||
| 295 | gap: 8px; | ||
| 296 | } | ||
| 297 | .arsn-step { | ||
| 298 | text-align: left; | ||
| 299 | display: grid; | ||
| 300 | grid-template-columns: 24px 1fr; | ||
| 301 | column-gap: 8px; | ||
| 302 | align-items: center; | ||
| 303 | } | ||
| 304 | .arsn-step-dot { | ||
| 305 | margin: 0; | ||
| 306 | } | ||
| 307 | .arsn-step-desc { | ||
| 308 | grid-column: 2; | ||
| 309 | } | ||
| 310 | } | ||
| 311 | </style> | ||
| 312 | |||
| 313 | <div class="arsn-phase"> | ||
| 314 | |||
| 315 | <section class="arsn-card" style="margin:0 0 18px 0;border:1px solid #e3ded6;border-left:6px solid #e94b13;background:#fcfbf8;overflow:hidden;"> | ||
| 316 | <div class="arsn-hero-image"> | ||
| 317 | <img src="https://xwiki.uni-ak.ac.at/bin/download/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/WebHome/enable.png" alt="Vorbereiten – ein künstlerisches oder Forschungsprojekt planen und aufsetzen" /> | ||
| 318 | </div> | ||
| 319 | <div style="padding:18px 22px 21px 22px;"> | ||
| 320 | <div class="arsn-eyebrow" style="color:#8a4d36;margin-bottom:6px;">PROJEKTPHASE 1 · VORBEREITEN</div> | ||
| 321 | <h2 style="font-size:28px;line-height:1.18;margin:0 0 9px 0;color:#2c2926;">Ich entwickle meine Projektidee – ich plane, finanziere und richte mein Projekt ein</h2> | ||
| 322 | <p style="font-size:15px;line-height:1.58;color:#5e5953;max-width:1080px;margin:0;"> | ||
| 323 | Bevor die aktive Projektarbeit beginnt, kläre, wie das Projekt organisiert, finanziert und unterstützt wird, welche Materialien und Forschungsoutputs zu erwarten sind und wie Rechte, Verantwortlichkeiten, Infrastruktur und Datenmanagement von Anfang an gehandhabt werden. | ||
| 324 | </p> | ||
| 325 | </div> | ||
| 326 | </section> | ||
| 327 | |||
| 328 | <div class="arsn-progress"> | ||
| 329 | |||
| 330 | <div class="arsn-step active"> | ||
| 331 | <div class="arsn-step-dot"></div> | ||
| 332 | <div class="arsn-step-label">1 · VORBEREITEN</div> | ||
| 333 | <div class="arsn-step-desc">Planen & einrichten</div> | ||
| 334 | </div> | ||
| 335 | |||
| 336 | <div class="arsn-step"> | ||
| 337 | <div class="arsn-step-dot"></div> | ||
| 338 | <div class="arsn-step-label">2 · ARBEITEN & VERWALTEN</div> | ||
| 339 | <div class="arsn-step-desc">Durchführen & dokumentieren</div> | ||
| 340 | </div> | ||
| 341 | |||
| 342 | <div class="arsn-step"> | ||
| 343 | <div class="arsn-step-dot"></div> | ||
| 344 | <div class="arsn-step-label">3 · PUBLIZIEREN & TEILEN</div> | ||
| 345 | <div class="arsn-step-desc">Publizieren, erhalten & übergeben</div> | ||
| 346 | </div> | ||
| 347 | </div> | ||
| 348 | |||
| 349 | <section class="arsn-card" style="margin:0 0 22px 0;padding:19px 21px;background:#eaf6f9;border:1px solid #cfe8ef;border-left:5px solid #21b6d7;"> | ||
| 350 | <div class="arsn-eyebrow" style="color:#3f6871;margin-bottom:5px;">JETZT WICHTIG</div> | ||
| 351 | <h3 style="font-size:22px;margin:0 0 8px 0;color:#2f4e56;">Worauf sollte ich mich jetzt konzentrieren?</h3> | ||
| 352 | <p style="margin:0 0 15px 0;color:#49636a;">Du musst vor dem Start nicht jedes Detail festlegen. Es braucht aber genügend gemeinsame Entscheidungen, damit das Projekt umsetzbar, verantwortungsvoll und gut weiterführbar ist.</p> | ||
| 353 | |||
| 354 | <div class="arsn-focus-grid"> | ||
| 355 | <div class="arsn-focus-group"> | ||
| 356 | <strong>Projekt</strong> | ||
| 357 | <ul> | ||
| 358 | <li>Was ist der Umfang des Projekts und wer ist für welche Entscheidungen verantwortlich?</li> | ||
| 359 | <li>Welche Fördermöglichkeiten und Förderbedingungen gelten?</li> | ||
| 360 | <li>Welche Daten, Materialien und Outputs werden erzeugt, gesammelt oder nachgenutzt?</li> | ||
| 361 | <li>Brauche ich einen Datenmanagementplan?</li> | ||
| 362 | </ul> | ||
| 363 | </div> | ||
| 364 | |||
| 365 | <div class="arsn-focus-group"> | ||
| 366 | <strong>Rechte & Verantwortlichkeiten</strong> | ||
| 367 | <ul> | ||
| 368 | <li>Welche Urheberrechte, Genehmigungen oder Lizenzen müssen geklärt werden?</li> | ||
| 369 | <li>Werden personenbezogene, sensible, vertrauliche oder ethisch komplexe Materialien verwendet?</li> | ||
| 370 | <li>Welche Entscheidungen sollten von Beginn an dokumentiert werden?</li> | ||
| 371 | <li>Wer ist für gemeinsame Accounts, Zugriffe und die Übergabe verantwortlich?</li> | ||
| 372 | </ul> | ||
| 373 | </div> | ||
| 374 | |||
| 375 | <div class="arsn-focus-group"> | ||
| 376 | <strong>Arbeitsumgebung</strong> | ||
| 377 | <ul> | ||
| 378 | <li>Wie sollen Dateien und Ordner organisiert und benannt werden?</li> | ||
| 379 | <li>Wo werden Materialien gespeichert und gesichert?</li> | ||
| 380 | <li>Wer soll Zugriff haben?</li> | ||
| 381 | <li>Welche Infrastruktur, Services und Tools sind geeignet?</li> | ||
| 382 | </ul> | ||
| 383 | </div> | ||
| 384 | </div> | ||
| 385 | </section> | ||
| 386 | |||
| 387 | <section style="margin:0 0 28px 0;"> | ||
| 388 | <div class="arsn-eyebrow" style="color:#8a4d36;margin-bottom:5px;">AM ENDE DIESER PHASE</div> | ||
| 389 | <h3 style="font-size:21px;margin:0 0 10px 0;color:#35312d;">Du solltest eine tragfähige Projektstruktur haben</h3> | ||
| 390 | <div class="arsn-outcome-grid"> | ||
| 391 | <div class="arsn-outcome">einen klaren Projektumfang und benannte Verantwortlichkeiten</div> | ||
| 392 | <div class="arsn-outcome">einen grundlegenden Plan für Daten, Materialien und erwartete Outputs</div> | ||
| 393 | <div class="arsn-outcome">zentrale Fragen zu Rechten, Ethik und Schutzbedarf identifiziert</div> | ||
| 394 | <div class="arsn-outcome">vereinbarte Regelungen für Speicherung, Backup, Zugriff und Zusammenarbeit</div> | ||
| 395 | </div> | ||
| 396 | </section> | ||
| 397 | |||
| 398 | <div style="margin:0 0 15px 0;"> | ||
| 399 | <div class="arsn-eyebrow" style="color:#8a4d36;margin-bottom:4px;">IN DIESER PHASE</div> | ||
| 400 | <h3 style="font-size:24px;margin:0 0 5px 0;color:#35312d;">Vier Bereiche, um dein Projekt startklar zu machen</h3> | ||
| 401 | <p style="margin:0;color:#6a655e;">Beginne mit dem Bereich, der zu dem passt, was du jetzt entscheiden oder einrichten musst.</p> | ||
| 402 | </div> | ||
| 403 | |||
| 404 | <div class="arsn-area-grid" style="margin-bottom:30px;"> | ||
| 405 | <section class="arsn-area" style="border-top:4px solid #21b6d7;"> | ||
| 406 | <div class="arsn-area-head"> | ||
| 407 | <div class="arsn-area-label" style="background:#eaf6f9;color:#355f69;"><span class="arsn-area-number">01</span> HIER STARTEN <span class="arsn-area-action">· Orientieren</span></div> | ||
| 408 | <h4>Orientiere dich und wähle den passenden Planungsumfang für dein Projekt</h4> | ||
| 409 | <p>Nutze diese Seiten, wenn du gerade startest, unsicher bist, welche Themen relevant sind, oder für ein kleineres Projekt eine praktikable Grundstruktur brauchst.</p> | ||
| 410 | </div> | ||
| 411 | <div class="arsn-area-body"> | ||
| 412 | <a class="arsn-topic" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Get%20Started/" style="border-left:3px solid #21b6d7;">Erste Schritte</a> | ||
| 413 | <a class="arsn-topic" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Quick%20Start%20for%20Small%20Projects/" style="border-left:3px solid #21b6d7;">Schnellstart für kleine Projekte</a> | ||
| 414 | </div> | ||
| 415 | </section> | ||
| 416 | |||
| 417 | <section class="arsn-area" style="border-top:4px solid #e94b13;"> | ||
| 418 | <div class="arsn-area-head"> | ||
| 419 | <div class="arsn-area-label" style="background:#f7e6dd;color:#7b4430;"><span class="arsn-area-number">02</span> PLANEN & ORGANISIEREN <span class="arsn-area-action">· Entscheiden</span></div> | ||
| 420 | <h4>Lege fest, was das Projekt braucht und wie es organisiert wird</h4> | ||
| 421 | <p>Kläre vor Beginn der aktiven Arbeit Umfang, Verantwortlichkeiten, Förderbedingungen, erwartete Materialien und Outputs sowie den grundlegenden Datenmanagement-Ansatz.</p> | ||
| 422 | </div> | ||
| 423 | <div class="arsn-area-body"> | ||
| 424 | <a class="arsn-topic" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Project%20Planning%20%26%20Organisation/" style="border-left:3px solid #e94b13;">Projektplanung & Organisation</a> | ||
| 425 | <a class="arsn-topic" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Funding%20%26%20Funder%20Requirements/" style="border-left:3px solid #e94b13;">Förderung & Förderbedingungen</a> | ||
| 426 | <a class="arsn-topic" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Identify%20Your%20Data%20%26%20Research%20Outputs/" style="border-left:3px solid #e94b13;">Daten & Forschungsoutputs bestimmen</a> | ||
| 427 | <a class="arsn-topic" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Plan%20Your%20Data%20Management/" style="border-left:3px solid #e94b13;">Datenmanagement planen</a> | ||
| 428 | <a class="arsn-topic" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/File%20Organisation%20%26%20Naming/" style="border-left:3px solid #e94b13;">Dateien organisieren & benennen</a> | ||
| 429 | </div> | ||
| 430 | </section> | ||
| 431 | |||
| 432 | <section class="arsn-area" style="border-top:4px solid #f0aa00;"> | ||
| 433 | <div class="arsn-area-head"> | ||
| 434 | <div class="arsn-area-label" style="background:#fff3d5;color:#7a5b12;"><span class="arsn-area-number">03</span> SCHÜTZEN & KLÄREN <span class="arsn-area-action">· Prüfen</span></div> | ||
| 435 | <h4>Rechte, Genehmigungen, Schutzbedarf und Verantwortlichkeiten klären</h4> | ||
| 436 | <p>Identifiziere rechtliche, ethische oder datenschutzbezogene Fragen früh genug, um Genehmigungen einzuholen, Vereinbarungen zu treffen und spätere unnötige Einschränkungen zu vermeiden.</p> | ||
| 437 | </div> | ||
| 438 | <div class="arsn-area-body"> | ||
| 439 | <a class="arsn-topic" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Copyright%2C%20Rights%20%26%20Licences/" style="border-left:3px solid #f0aa00;">Urheberrecht, Rechte & Lizenzen</a> | ||
| 440 | <a class="arsn-topic" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Data%20Protection%20%26%20Ethics/" style="border-left:3px solid #f0aa00;">Datenschutz & Ethik</a> | ||
| 441 | </div> | ||
| 442 | </section> | ||
| 443 | |||
| 444 | <section class="arsn-area" style="border-top:4px solid #38b76a;"> | ||
| 445 | <div class="arsn-area-head"> | ||
| 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 | <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 Tools geeignet sind und wie Zugriff und Zusammenarbeit funktionieren.</p> | ||
| 449 | </div> | ||
| 450 | <div class="arsn-area-body"> | ||
| 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> | ||
| 452 | <a class="arsn-topic" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Infrastructure%2C%20Services%20%26%20Tools/" style="border-left:3px solid #38b76a;">Infrastruktur, Services & Tools</a> | ||
| 453 | <a class="arsn-topic" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Collaboration%20Setup/" style="border-left:3px solid #38b76a;">Zusammenarbeit einrichten</a> | ||
| 454 | </div> | ||
| 455 | </section> | ||
| 456 | </div> | ||
| 457 | |||
| 458 | <section class="arsn-card" style="margin:0 0 27px 0;padding:18px 20px;background:#fcfbf8;border:1px solid #e3ded6;border-left:5px solid #e94b13;"> | ||
| 459 | <div class="arsn-eyebrow" style="color:#8a4d36;margin-bottom:5px;">NÄCHSTE PHASE</div> | ||
| 460 | <h3 style="font-size:21px;margin:0 0 7px 0;color:#43332d;">Weiter zu Arbeiten & Verwalten</h3> | ||
| 461 | <p style="margin:0 0 13px 0;color:#68564e;line-height:1.5;">Die hier getroffenen Grundentscheidungen sollen das Projekt leiten, sind aber nicht für immer unveränderlich. Während der aktiven Projektarbeit organisierst, dokumentierst, sicherst und überprüfst du, wie das Projekt tatsächlich funktioniert.</p> | ||
| 462 | <a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Work%20%26%20Manage/" class="btn btn-default" style="background:#fff7f1;border-color:#e4cabc;color:#493a34;">Weiter zu Arbeiten & Verwalten</a> | ||
| 463 | </section> | ||
| 464 | |||
| 465 | <!-- ARSN_TRAINING_WORKSHOPS_V2_START --> | ||
| 466 | <section class="arsn-training-workshops" data-arsn-training-workshops="v2" style="margin:27px 0 22px 0;"> | ||
| 467 | <div style="padding:16px 18px;background:#eef8fa;border:1px solid #cfe8ef;border-left:5px solid #21b6d7;border-radius:9px;"> | ||
| 468 | <div style="font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase;color:#3f6871;margin-bottom:5px;">SCHULUNGEN & WORKSHOPS</div> | ||
| 469 | <h3 style="font-size:20px;line-height:1.3;margin:0 0 7px;color:#35312d;text-align:left;">Schulungen, Workshops & Sprechstunden</h3> | ||
| 470 | <p style="margin:0 0 10px;color:#5e5953;line-height:1.55;">Passende Angebote zu diesem Thema werden hier künftig automatisch aus dem zentralen Kalender angezeigt.</p> | ||
| 471 | <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;">IN VORBEREITUNG</span> | ||
| 472 | </div> | ||
| 473 | </section> | ||
| 474 | <!-- ARSN_TRAINING_WORKSHOPS_V2_END --> | ||
| 475 | |||
| 476 | <div style="margin:0 0 13px 0;"> | ||
| 477 | <div class="arsn-eyebrow" style="color:#8a4d36;margin-bottom:4px;">NÜTZLICHE MATERIALIEN</div> | ||
| 478 | <h3 style="font-size:22px;margin:0 0 4px 0;color:#35312d;">Praktische Ressourcen</h3> | ||
| 479 | </div> | ||
| 480 | |||
| 481 | <div class="arsn-resource-grid" style="margin-bottom:27px;"> | ||
| 482 | <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> | ||
| 483 | <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> | ||
| 484 | <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> | ||
| 485 | </div> | ||
| 486 | |||
| 487 | <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 --> | ||
| 488 | <strong style="color:#2d5661;">Brauchst du Unterstützung bei der Orientierung?</strong> | ||
| 489 | <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> | ||
| 490 | </aside> | ||
| 491 | |||
| 492 | <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> | ||
| 493 | |||
| 494 | </div> | ||
| 495 | {{/html}} | ||
| 496 | |||
| 497 | {{html clean="false"}} | ||
| 498 | <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_START --> | ||
| 499 | |||
| 500 | <style data-sn-service-navigator-master="1"> | ||
| 501 | /* ========================================================= | ||
| 502 | MASTER TYPOGRAPHY | ||
| 503 | ========================================================= */ | ||
| 504 | #xwikicontent h1, | ||
| 505 | #xwikicontent h2, | ||
| 506 | #xwikicontent h3, | ||
| 507 | #xwikicontent h4, | ||
| 508 | #xwikicontent h5, | ||
| 509 | #xwikicontent h6, | ||
| 510 | #xwikicontent .box-title, | ||
| 511 | #xwikicontent [role="heading"], | ||
| 512 | #xwikicontent h1 a, | ||
| 513 | #xwikicontent h2 a, | ||
| 514 | #xwikicontent h3 a, | ||
| 515 | #xwikicontent h4 a, | ||
| 516 | #xwikicontent h5 a, | ||
| 517 | #xwikicontent h6 a, | ||
| 518 | #xwikicontent .box-title a, | ||
| 519 | #xwikicontent [role="heading"] a{ | ||
| 520 | text-align:left!important; | ||
| 521 | text-justify:auto!important; | ||
| 522 | word-spacing:normal!important; | ||
| 523 | } | ||
| 524 | |||
| 525 | /* ========================================================= | ||
| 526 | COMING SOON / IN VORBEREITUNG | ||
| 527 | ========================================================= */ | ||
| 528 | .sn-coming-soon-badge{ | ||
| 529 | display:inline-block; | ||
| 530 | vertical-align:middle; | ||
| 531 | margin-left:10px; | ||
| 532 | padding:4px 8px; | ||
| 533 | border-radius:14px; | ||
| 534 | border:1px solid #efd9cc; | ||
| 535 | background:#fff4ee; | ||
| 536 | color:#8a4d36; | ||
| 537 | font-size:11px; | ||
| 538 | font-weight:700; | ||
| 539 | letter-spacing:.055em; | ||
| 540 | line-height:1.2; | ||
| 541 | white-space:nowrap; | ||
| 542 | } | ||
| 543 | |||
| 544 | /* ========================================================= | ||
| 545 | NATIVE / DETAIL CALLOUT GEOMETRY | ||
| 546 | Preserve existing backgrounds. | ||
| 547 | ========================================================= */ | ||
| 548 | #xwikicontent .arsn-info, | ||
| 549 | #xwikicontent .dmp-info, | ||
| 550 | #xwikicontent .ido-info, | ||
| 551 | #xwikicontent .pp-info, | ||
| 552 | #xwikicontent .infomessage{ | ||
| 553 | box-sizing:border-box!important; | ||
| 554 | border-left:4px solid #21b6d7!important; | ||
| 555 | border-radius:8px; | ||
| 556 | text-align:left!important; | ||
| 557 | word-spacing:normal!important; | ||
| 558 | } | ||
| 559 | |||
| 560 | #xwikicontent .arsn-warn, | ||
| 561 | #xwikicontent .dmp-warn, | ||
| 562 | #xwikicontent .ido-warn, | ||
| 563 | #xwikicontent .pp-warn, | ||
| 564 | #xwikicontent .warn, | ||
| 565 | #xwikicontent .warning, | ||
| 566 | #xwikicontent .warningmessage, | ||
| 567 | #xwikicontent .errormessage{ | ||
| 568 | box-sizing:border-box!important; | ||
| 569 | border-left:4px solid #e94b13!important; | ||
| 570 | border-radius:8px; | ||
| 571 | text-align:left!important; | ||
| 572 | word-spacing:normal!important; | ||
| 573 | } | ||
| 574 | |||
| 575 | [data-sn-master-equal-height], | ||
| 576 | [data-sn-master-first-row]{ | ||
| 577 | box-sizing:border-box; | ||
| 578 | } | ||
| 579 | |||
| 580 | /* ========================================================= | ||
| 581 | FULL-WIDTH THREE-LINE NUMBER / TITLE / SUBTITLE BLOCKS | ||
| 582 | ========================================================= */ | ||
| 583 | #xwikicontent .arsn-area-label[data-sn-three-line="1"]{ | ||
| 584 | display:grid!important; | ||
| 585 | grid-template-columns:minmax(0,1fr)!important; | ||
| 586 | grid-auto-rows:auto!important; | ||
| 587 | width:100%!important; | ||
| 588 | max-width:none!important; | ||
| 589 | box-sizing:border-box!important; | ||
| 590 | justify-items:start!important; | ||
| 591 | align-items:start!important; | ||
| 592 | gap:2px!important; | ||
| 593 | text-align:left!important; | ||
| 594 | text-align-last:left!important; | ||
| 595 | text-justify:auto!important; | ||
| 596 | word-spacing:normal!important; | ||
| 597 | white-space:normal!important; | ||
| 598 | } | ||
| 599 | #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-number, | ||
| 600 | #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .sn-area-label-title, | ||
| 601 | #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-action{ | ||
| 602 | display:block!important; | ||
| 603 | width:100%!important; | ||
| 604 | margin:0!important; | ||
| 605 | text-align:left!important; | ||
| 606 | text-align-last:left!important; | ||
| 607 | text-justify:auto!important; | ||
| 608 | word-spacing:normal!important; | ||
| 609 | white-space:normal!important; | ||
| 610 | } | ||
| 611 | </style> | ||
| 612 | |||
| 613 | <script data-sn-service-navigator-master="1"> | ||
| 614 | (function(){ | ||
| 615 | "use strict"; | ||
| 616 | |||
| 617 | var PAGE_KIND="overview"; | ||
| 618 | var PLACEHOLDER=false; | ||
| 619 | var PLACEHOLDER_LABEL="IN VORBEREITUNG"; | ||
| 620 | |||
| 621 | var MOBILE_MAX=767; | ||
| 622 | var ROW_TOLERANCE=6; | ||
| 623 | var RESIZE_DEBOUNCE=220; | ||
| 624 | |||
| 625 | var root= | ||
| 626 | document.getElementById("xwikicontent")|| | ||
| 627 | document.querySelector(".xwiki-rendering-content")|| | ||
| 628 | document.querySelector("main")|| | ||
| 629 | document.body; | ||
| 630 | |||
| 631 | if(!root)return; | ||
| 632 | |||
| 633 | var managedHeight=new Set(); | ||
| 634 | var managedMargin=new Set(); | ||
| 635 | var originalHeight=new WeakMap(); | ||
| 636 | var originalMargin=new WeakMap(); | ||
| 637 | |||
| 638 | var resizeTimer=0; | ||
| 639 | var running=false; | ||
| 640 | |||
| 641 | var THEMES=[ | ||
| 642 | { | ||
| 643 | name:"BLUE", | ||
| 644 | accent:"#21b6d7", | ||
| 645 | bg:"#eaf7fb", | ||
| 646 | text:"#315d68", | ||
| 647 | labels:[ | ||
| 648 | "HIER STARTEN", | ||
| 649 | "ENTSCHEIDEN", | ||
| 650 | "ÜBERPRÜFEN & ANPASSEN", | ||
| 651 | "START HERE", | ||
| 652 | "DECIDE", | ||
| 653 | "REVIEW & ADAPT" | ||
| 654 | ] | ||
| 655 | }, | ||
| 656 | { | ||
| 657 | name:"RED", | ||
| 658 | accent:"#e94b13", | ||
| 659 | bg:"#fff1ec", | ||
| 660 | text:"#8a4d36", | ||
| 661 | labels:[ | ||
| 662 | "PLANEN & ORGANISIEREN", | ||
| 663 | "ORGANISIEREN & DOKUMENTIEREN", | ||
| 664 | "PUBLIZIEREN & PRÄSENTIEREN", | ||
| 665 | "PLAN & ORGANISE", | ||
| 666 | "PLAN & ORGANIZE", | ||
| 667 | "ORGANISE & DOCUMENT", | ||
| 668 | "ORGANIZE & DOCUMENT", | ||
| 669 | "PUBLISH & PRESENT" | ||
| 670 | ] | ||
| 671 | }, | ||
| 672 | { | ||
| 673 | name:"YELLOW", | ||
| 674 | accent:"#f0aa00", | ||
| 675 | bg:"#fff8e7", | ||
| 676 | text:"#785b17", | ||
| 677 | labels:[ | ||
| 678 | "SCHÜTZEN & KLÄREN", | ||
| 679 | "STANDARDISIEREN & IDENTIFIZIEREN", | ||
| 680 | "ÖFFNEN, NACHNUTZEN & AUFFINDBAR MACHEN", | ||
| 681 | "PROTECT & CLARIFY", | ||
| 682 | "STANDARDISE & IDENTIFY", | ||
| 683 | "STANDARDIZE & IDENTIFY", | ||
| 684 | "OPEN, REUSE & MAKE FINDABLE" | ||
| 685 | ] | ||
| 686 | }, | ||
| 687 | { | ||
| 688 | name:"GREEN", | ||
| 689 | accent:"#38b76a", | ||
| 690 | bg:"#edf9f1", | ||
| 691 | text:"#3f7451", | ||
| 692 | labels:[ | ||
| 693 | "INFRASTRUKTUR EINRICHTEN", | ||
| 694 | "INFRASTRUKTUR & ZUSAMMENARBEIT EINRICHTEN", | ||
| 695 | "SPEICHERN & ZUGRIFF STEUERN", | ||
| 696 | "REPOSITORIUM, ERHALTEN & ÜBERGEBEN", | ||
| 697 | "SET UP INFRASTRUCTURE", | ||
| 698 | "SET UP INFRASTRUCTURE & COLLABORATION", | ||
| 699 | "STORE & CONTROL ACCESS", | ||
| 700 | "REPOSITORY, PRESERVE & HAND OVER" | ||
| 701 | ] | ||
| 702 | } | ||
| 703 | ]; | ||
| 704 | |||
| 705 | function num(value){ | ||
| 706 | var n=parseFloat(value); | ||
| 707 | return Number.isFinite(n)?n:0; | ||
| 708 | } | ||
| 709 | |||
| 710 | function norm(value){ | ||
| 711 | return String(value||"") | ||
| 712 | .replace(/\s+/g," ") | ||
| 713 | .trim() | ||
| 714 | .toUpperCase(); | ||
| 715 | } | ||
| 716 | |||
| 717 | function visible(el){ | ||
| 718 | if(!el||el.nodeType!==1)return false; | ||
| 719 | |||
| 720 | var style=getComputedStyle(el); | ||
| 721 | var rect=el.getBoundingClientRect(); | ||
| 722 | |||
| 723 | return ( | ||
| 724 | style.display!=="none"&& | ||
| 725 | style.visibility!=="hidden"&& | ||
| 726 | rect.width>20&& | ||
| 727 | rect.height>4 | ||
| 728 | ); | ||
| 729 | } | ||
| 730 | |||
| 731 | function saveStyle(el,map,property){ | ||
| 732 | if(map.has(el))return; | ||
| 733 | |||
| 734 | map.set(el,{ | ||
| 735 | value:el.style.getPropertyValue(property), | ||
| 736 | priority:el.style.getPropertyPriority(property) | ||
| 737 | }); | ||
| 738 | } | ||
| 739 | |||
| 740 | function restoreStyle(el,map,property){ | ||
| 741 | var original=map.get(el); | ||
| 742 | |||
| 743 | if(original&&original.value){ | ||
| 744 | el.style.setProperty( | ||
| 745 | property, | ||
| 746 | original.value, | ||
| 747 | original.priority||"" | ||
| 748 | ); | ||
| 749 | }else{ | ||
| 750 | el.style.removeProperty(property); | ||
| 751 | } | ||
| 752 | } | ||
| 753 | |||
| 754 | function resetRuntime(){ | ||
| 755 | managedHeight.forEach(function(el){ | ||
| 756 | restoreStyle( | ||
| 757 | el, | ||
| 758 | originalHeight, | ||
| 759 | "min-height" | ||
| 760 | ); | ||
| 761 | el.removeAttribute( | ||
| 762 | "data-sn-master-equal-height" | ||
| 763 | ); | ||
| 764 | }); | ||
| 765 | |||
| 766 | managedMargin.forEach(function(el){ | ||
| 767 | restoreStyle( | ||
| 768 | el, | ||
| 769 | originalMargin, | ||
| 770 | "margin-top" | ||
| 771 | ); | ||
| 772 | el.removeAttribute( | ||
| 773 | "data-sn-master-first-row" | ||
| 774 | ); | ||
| 775 | }); | ||
| 776 | |||
| 777 | managedHeight.clear(); | ||
| 778 | managedMargin.clear(); | ||
| 779 | } | ||
| 780 | |||
| 781 | function themeFor(text){ | ||
| 782 | var value=norm(text); | ||
| 783 | |||
| 784 | for(var i=0;i<THEMES.length;i++){ | ||
| 785 | for(var j=0;j<THEMES[i].labels.length;j++){ | ||
| 786 | var label=THEMES[i].labels[j]; | ||
| 787 | |||
| 788 | if( | ||
| 789 | value===label|| | ||
| 790 | value.indexOf(label+" ")===0|| | ||
| 791 | value.indexOf(label+" -")===0|| | ||
| 792 | value.indexOf(label+" ·")===0 | ||
| 793 | ){ | ||
| 794 | return THEMES[i]; | ||
| 795 | } | ||
| 796 | } | ||
| 797 | } | ||
| 798 | |||
| 799 | return null; | ||
| 800 | } | ||
| 801 | |||
| 802 | /* ======================================================= | ||
| 803 | BORDERLESS FILLED RED/ORANGE CTA BUTTONS | ||
| 804 | ======================================================= */ | ||
| 805 | |||
| 806 | function colourDistance(a,b){ | ||
| 807 | return Math.sqrt( | ||
| 808 | Math.pow(a[0]-b[0],2)+ | ||
| 809 | Math.pow(a[1]-b[1],2)+ | ||
| 810 | Math.pow(a[2]-b[2],2) | ||
| 811 | ); | ||
| 812 | } | ||
| 813 | |||
| 814 | function makeFilledRedOrangeCTAsBorderless(){ | ||
| 815 | var RED_ORANGE=[233,75,19]; | ||
| 816 | |||
| 817 | Array.from( | ||
| 818 | root.querySelectorAll( | ||
| 819 | 'a,button,[role="button"],input[type="submit"],input[type="button"]' | ||
| 820 | ) | ||
| 821 | ).forEach(function(el){ | ||
| 822 | if(!visible(el))return; | ||
| 823 | |||
| 824 | var style=getComputedStyle(el); | ||
| 825 | var rgb=parseRGB(style.backgroundColor); | ||
| 826 | |||
| 827 | if(!rgb)return; | ||
| 828 | |||
| 829 | if( | ||
| 830 | colourDistance( | ||
| 831 | rgb, | ||
| 832 | RED_ORANGE | ||
| 833 | )>55 | ||
| 834 | ){ | ||
| 835 | return; | ||
| 836 | } | ||
| 837 | |||
| 838 | var rect=el.getBoundingClientRect(); | ||
| 839 | |||
| 840 | if( | ||
| 841 | rect.width<80|| | ||
| 842 | rect.height<24 | ||
| 843 | ){ | ||
| 844 | return; | ||
| 845 | } | ||
| 846 | |||
| 847 | el.style.setProperty( | ||
| 848 | "border", | ||
| 849 | "none", | ||
| 850 | "important" | ||
| 851 | ); | ||
| 852 | |||
| 853 | el.style.setProperty( | ||
| 854 | "border-left", | ||
| 855 | "none", | ||
| 856 | "important" | ||
| 857 | ); | ||
| 858 | |||
| 859 | el.style.setProperty( | ||
| 860 | "border-top", | ||
| 861 | "none", | ||
| 862 | "important" | ||
| 863 | ); | ||
| 864 | |||
| 865 | el.style.setProperty( | ||
| 866 | "border-right", | ||
| 867 | "none", | ||
| 868 | "important" | ||
| 869 | ); | ||
| 870 | |||
| 871 | el.style.setProperty( | ||
| 872 | "border-bottom", | ||
| 873 | "none", | ||
| 874 | "important" | ||
| 875 | ); | ||
| 876 | |||
| 877 | el.style.setProperty( | ||
| 878 | "box-shadow", | ||
| 879 | "none", | ||
| 880 | "important" | ||
| 881 | ); | ||
| 882 | }); | ||
| 883 | } | ||
| 884 | |||
| 885 | /* ======================================================= | ||
| 886 | FULL-WIDTH THREE-LINE AREA LABELS | ||
| 887 | ======================================================= */ | ||
| 888 | |||
| 889 | function compactText(value){ | ||
| 890 | return String(value||"") | ||
| 891 | .replace(/\s+/g," ") | ||
| 892 | .trim(); | ||
| 893 | } | ||
| 894 | |||
| 895 | function makeThreeLineAreaLabels(){ | ||
| 896 | Array.from( | ||
| 897 | root.querySelectorAll( | ||
| 898 | ".arsn-area-label" | ||
| 899 | ) | ||
| 900 | ).forEach(function(label){ | ||
| 901 | if( | ||
| 902 | label.getAttribute( | ||
| 903 | "data-sn-three-line" | ||
| 904 | )==="1" | ||
| 905 | ){ | ||
| 906 | return; | ||
| 907 | } | ||
| 908 | |||
| 909 | var number= | ||
| 910 | label.querySelector( | ||
| 911 | ":scope > .arsn-area-number" | ||
| 912 | ); | ||
| 913 | |||
| 914 | var action= | ||
| 915 | label.querySelector( | ||
| 916 | ":scope > .arsn-area-action" | ||
| 917 | ); | ||
| 918 | |||
| 919 | if( | ||
| 920 | !number|| | ||
| 921 | !action | ||
| 922 | ){ | ||
| 923 | return; | ||
| 924 | } | ||
| 925 | |||
| 926 | var clone= | ||
| 927 | label.cloneNode(true); | ||
| 928 | |||
| 929 | var cloneNumber= | ||
| 930 | clone.querySelector( | ||
| 931 | ":scope > .arsn-area-number" | ||
| 932 | ); | ||
| 933 | |||
| 934 | var cloneAction= | ||
| 935 | clone.querySelector( | ||
| 936 | ":scope > .arsn-area-action" | ||
| 937 | ); | ||
| 938 | |||
| 939 | if(cloneNumber){ | ||
| 940 | cloneNumber.remove(); | ||
| 941 | } | ||
| 942 | |||
| 943 | if(cloneAction){ | ||
| 944 | cloneAction.remove(); | ||
| 945 | } | ||
| 946 | |||
| 947 | var titleText= | ||
| 948 | compactText( | ||
| 949 | clone.textContent | ||
| 950 | ); | ||
| 951 | |||
| 952 | if(!titleText){ | ||
| 953 | return; | ||
| 954 | } | ||
| 955 | |||
| 956 | var numberNode= | ||
| 957 | number.cloneNode(true); | ||
| 958 | |||
| 959 | var actionNode= | ||
| 960 | action.cloneNode(true); | ||
| 961 | |||
| 962 | var titleNode= | ||
| 963 | document.createElement( | ||
| 964 | "span" | ||
| 965 | ); | ||
| 966 | |||
| 967 | titleNode.className= | ||
| 968 | "sn-area-label-title"; | ||
| 969 | |||
| 970 | titleNode.textContent= | ||
| 971 | titleText; | ||
| 972 | |||
| 973 | while(label.firstChild){ | ||
| 974 | label.removeChild( | ||
| 975 | label.firstChild | ||
| 976 | ); | ||
| 977 | } | ||
| 978 | |||
| 979 | label.appendChild( | ||
| 980 | numberNode | ||
| 981 | ); | ||
| 982 | |||
| 983 | label.appendChild( | ||
| 984 | titleNode | ||
| 985 | ); | ||
| 986 | |||
| 987 | label.appendChild( | ||
| 988 | actionNode | ||
| 989 | ); | ||
| 990 | |||
| 991 | label.setAttribute( | ||
| 992 | "data-sn-three-line", | ||
| 993 | "1" | ||
| 994 | ); | ||
| 995 | |||
| 996 | var head= | ||
| 997 | label.closest( | ||
| 998 | ".arsn-area-head" | ||
| 999 | ); | ||
| 1000 | |||
| 1001 | if(head){ | ||
| 1002 | head.style.setProperty( | ||
| 1003 | "width", | ||
| 1004 | "100%", | ||
| 1005 | "important" | ||
| 1006 | ); | ||
| 1007 | |||
| 1008 | head.style.setProperty( | ||
| 1009 | "max-width", | ||
| 1010 | "100%", | ||
| 1011 | "important" | ||
| 1012 | ); | ||
| 1013 | |||
| 1014 | head.style.setProperty( | ||
| 1015 | "box-sizing", | ||
| 1016 | "border-box", | ||
| 1017 | "important" | ||
| 1018 | ); | ||
| 1019 | } | ||
| 1020 | }); | ||
| 1021 | } | ||
| 1022 | |||
| 1023 | /* ======================================================= | ||
| 1024 | PLACEHOLDER BADGE | ||
| 1025 | ======================================================= */ | ||
| 1026 | |||
| 1027 | function applyPlaceholderBadge(){ | ||
| 1028 | if(!PLACEHOLDER)return; | ||
| 1029 | |||
| 1030 | if( | ||
| 1031 | document.querySelector( | ||
| 1032 | ".sn-coming-soon-badge" | ||
| 1033 | ) | ||
| 1034 | ){ | ||
| 1035 | return; | ||
| 1036 | } | ||
| 1037 | |||
| 1038 | var title= | ||
| 1039 | document.querySelector( | ||
| 1040 | "#document-title" | ||
| 1041 | )|| | ||
| 1042 | document.querySelector( | ||
| 1043 | "h1" | ||
| 1044 | ); | ||
| 1045 | |||
| 1046 | if(!title)return; | ||
| 1047 | |||
| 1048 | var badge= | ||
| 1049 | document.createElement( | ||
| 1050 | "span" | ||
| 1051 | ); | ||
| 1052 | |||
| 1053 | badge.className= | ||
| 1054 | "sn-coming-soon-badge"; | ||
| 1055 | |||
| 1056 | badge.textContent= | ||
| 1057 | PLACEHOLDER_LABEL; | ||
| 1058 | |||
| 1059 | badge.setAttribute( | ||
| 1060 | "aria-label", | ||
| 1061 | PLACEHOLDER_LABEL | ||
| 1062 | ); | ||
| 1063 | |||
| 1064 | title.appendChild( | ||
| 1065 | badge | ||
| 1066 | ); | ||
| 1067 | } | ||
| 1068 | |||
| 1069 | /* ======================================================= | ||
| 1070 | DETAIL PAGE OWN-ACCENT PROPAGATION | ||
| 1071 | ======================================================= */ | ||
| 1072 | |||
| 1073 | function parseRGB(value){ | ||
| 1074 | var match=String(value||"").match( | ||
| 1075 | /rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i | ||
| 1076 | ); | ||
| 1077 | |||
| 1078 | if(!match)return null; | ||
| 1079 | |||
| 1080 | return [ | ||
| 1081 | Number(match[1]), | ||
| 1082 | Number(match[2]), | ||
| 1083 | Number(match[3]) | ||
| 1084 | ]; | ||
| 1085 | } | ||
| 1086 | |||
| 1087 | function distance(a,b){ | ||
| 1088 | return Math.sqrt( | ||
| 1089 | Math.pow(a[0]-b[0],2)+ | ||
| 1090 | Math.pow(a[1]-b[1],2)+ | ||
| 1091 | Math.pow(a[2]-b[2],2) | ||
| 1092 | ); | ||
| 1093 | } | ||
| 1094 | |||
| 1095 | function paletteMatch(cssColor){ | ||
| 1096 | var rgb=parseRGB(cssColor); | ||
| 1097 | |||
| 1098 | if(!rgb)return null; | ||
| 1099 | |||
| 1100 | var palette=[ | ||
| 1101 | {hex:"#21b6d7",rgb:[33,182,215]}, | ||
| 1102 | {hex:"#e94b13",rgb:[233,75,19]}, | ||
| 1103 | {hex:"#f0aa00",rgb:[240,170,0]}, | ||
| 1104 | {hex:"#38b76a",rgb:[56,183,106]} | ||
| 1105 | ]; | ||
| 1106 | |||
| 1107 | var best=null; | ||
| 1108 | var bestDistance=Infinity; | ||
| 1109 | |||
| 1110 | palette.forEach(function(item){ | ||
| 1111 | var d=distance(rgb,item.rgb); | ||
| 1112 | |||
| 1113 | if(d<bestDistance){ | ||
| 1114 | best=item; | ||
| 1115 | bestDistance=d; | ||
| 1116 | } | ||
| 1117 | }); | ||
| 1118 | |||
| 1119 | return bestDistance<=30 | ||
| 1120 | ?best | ||
| 1121 | :null; | ||
| 1122 | } | ||
| 1123 | |||
| 1124 | function propagateDetailAccents(){ | ||
| 1125 | if(PAGE_KIND!=="detail")return; | ||
| 1126 | |||
| 1127 | Array.from( | ||
| 1128 | root.querySelectorAll( | ||
| 1129 | ".arsn-call,.dmp-call,.ido-call,.pp-call,"+ | ||
| 1130 | ".arsn-source,.dmp-source,.ido-source,.pp-source" | ||
| 1131 | ) | ||
| 1132 | ).forEach(function(el){ | ||
| 1133 | if(!visible(el))return; | ||
| 1134 | |||
| 1135 | var style=getComputedStyle(el); | ||
| 1136 | |||
| 1137 | if( | ||
| 1138 | num(style.borderTopWidth)>=2 | ||
| 1139 | ){ | ||
| 1140 | var match= | ||
| 1141 | paletteMatch( | ||
| 1142 | style.borderTopColor | ||
| 1143 | ); | ||
| 1144 | |||
| 1145 | if(match){ | ||
| 1146 | el.style.setProperty( | ||
| 1147 | "border-left", | ||
| 1148 | "4px solid "+match.hex, | ||
| 1149 | "important" | ||
| 1150 | ); | ||
| 1151 | } | ||
| 1152 | } | ||
| 1153 | }); | ||
| 1154 | |||
| 1155 | // Warning families: explicit safety override. | ||
| 1156 | Array.from( | ||
| 1157 | root.querySelectorAll( | ||
| 1158 | ".arsn-warn,.dmp-warn,.ido-warn,.pp-warn,"+ | ||
| 1159 | ".warn,.warning,.warningmessage,.errormessage" | ||
| 1160 | ) | ||
| 1161 | ).forEach(function(el){ | ||
| 1162 | if(!visible(el))return; | ||
| 1163 | |||
| 1164 | el.style.setProperty( | ||
| 1165 | "border-left", | ||
| 1166 | "4px solid #e94b13", | ||
| 1167 | "important" | ||
| 1168 | ); | ||
| 1169 | }); | ||
| 1170 | |||
| 1171 | // Info families: explicit orientation override. | ||
| 1172 | Array.from( | ||
| 1173 | root.querySelectorAll( | ||
| 1174 | ".arsn-info,.dmp-info,.ido-info,.pp-info,.infomessage" | ||
| 1175 | ) | ||
| 1176 | ).forEach(function(el){ | ||
| 1177 | if(!visible(el))return; | ||
| 1178 | |||
| 1179 | el.style.setProperty( | ||
| 1180 | "border-left", | ||
| 1181 | "4px solid #21b6d7", | ||
| 1182 | "important" | ||
| 1183 | ); | ||
| 1184 | }); | ||
| 1185 | } | ||
| 1186 | |||
| 1187 | /* ======================================================= | ||
| 1188 | OVERVIEW SEMANTIC THEME PALETTE | ||
| 1189 | ======================================================= */ | ||
| 1190 | |||
| 1191 | function smallestThemeHeaders(){ | ||
| 1192 | return Array.from( | ||
| 1193 | root.querySelectorAll( | ||
| 1194 | "div,span,p,strong,h3,h4,h5,h6" | ||
| 1195 | ) | ||
| 1196 | ).filter(function(el){ | ||
| 1197 | if(!visible(el))return false; | ||
| 1198 | if(!themeFor(el.textContent))return false; | ||
| 1199 | |||
| 1200 | return !Array.from( | ||
| 1201 | el.children||[] | ||
| 1202 | ).some(function(child){ | ||
| 1203 | return !!themeFor( | ||
| 1204 | child.textContent | ||
| 1205 | ); | ||
| 1206 | }); | ||
| 1207 | }); | ||
| 1208 | } | ||
| 1209 | |||
| 1210 | function findOverviewCard(header){ | ||
| 1211 | var node=header.parentElement; | ||
| 1212 | var candidates=[]; | ||
| 1213 | |||
| 1214 | while(node&&node!==root){ | ||
| 1215 | var rect=node.getBoundingClientRect(); | ||
| 1216 | var style=getComputedStyle(node); | ||
| 1217 | |||
| 1218 | var border= | ||
| 1219 | num(style.borderTopWidth)+ | ||
| 1220 | num(style.borderRightWidth)+ | ||
| 1221 | num(style.borderBottomWidth)+ | ||
| 1222 | num(style.borderLeftWidth); | ||
| 1223 | |||
| 1224 | if( | ||
| 1225 | rect.width>=220&& | ||
| 1226 | rect.width<=800&& | ||
| 1227 | rect.height>=120&& | ||
| 1228 | border>=1 | ||
| 1229 | ){ | ||
| 1230 | candidates.push(node); | ||
| 1231 | } | ||
| 1232 | |||
| 1233 | node=node.parentElement; | ||
| 1234 | } | ||
| 1235 | |||
| 1236 | if(!candidates.length)return null; | ||
| 1237 | |||
| 1238 | candidates.sort(function(a,b){ | ||
| 1239 | return ( | ||
| 1240 | b.getBoundingClientRect().height- | ||
| 1241 | a.getBoundingClientRect().height | ||
| 1242 | ); | ||
| 1243 | }); | ||
| 1244 | |||
| 1245 | return candidates[0]; | ||
| 1246 | } | ||
| 1247 | |||
| 1248 | function rowCandidates(link,card){ | ||
| 1249 | var result=[]; | ||
| 1250 | var cardRect= | ||
| 1251 | card.getBoundingClientRect(); | ||
| 1252 | |||
| 1253 | var node=link; | ||
| 1254 | |||
| 1255 | while(node&&node!==card){ | ||
| 1256 | if(visible(node)){ | ||
| 1257 | var rect= | ||
| 1258 | node.getBoundingClientRect(); | ||
| 1259 | |||
| 1260 | if( | ||
| 1261 | rect.height<=105&& | ||
| 1262 | rect.width>= | ||
| 1263 | cardRect.width*.50&& | ||
| 1264 | rect.width<= | ||
| 1265 | cardRect.width*1.03 | ||
| 1266 | ){ | ||
| 1267 | result.push(node); | ||
| 1268 | } | ||
| 1269 | } | ||
| 1270 | |||
| 1271 | node=node.parentElement; | ||
| 1272 | } | ||
| 1273 | |||
| 1274 | return result; | ||
| 1275 | } | ||
| 1276 | |||
| 1277 | function chooseOuterRow( | ||
| 1278 | candidates, | ||
| 1279 | link | ||
| 1280 | ){ | ||
| 1281 | if(!candidates.length){ | ||
| 1282 | return link; | ||
| 1283 | } | ||
| 1284 | |||
| 1285 | var bordered= | ||
| 1286 | candidates.filter(function(el){ | ||
| 1287 | return ( | ||
| 1288 | num( | ||
| 1289 | getComputedStyle(el) | ||
| 1290 | .borderLeftWidth | ||
| 1291 | )>=1 | ||
| 1292 | ); | ||
| 1293 | }); | ||
| 1294 | |||
| 1295 | var pool= | ||
| 1296 | bordered.length | ||
| 1297 | ?bordered | ||
| 1298 | :candidates; | ||
| 1299 | |||
| 1300 | pool.sort(function(a,b){ | ||
| 1301 | var ar= | ||
| 1302 | a.getBoundingClientRect(); | ||
| 1303 | |||
| 1304 | var br= | ||
| 1305 | b.getBoundingClientRect(); | ||
| 1306 | |||
| 1307 | return ( | ||
| 1308 | ar.left-br.left|| | ||
| 1309 | br.width-ar.width | ||
| 1310 | ); | ||
| 1311 | }); | ||
| 1312 | |||
| 1313 | return pool[0]||link; | ||
| 1314 | } | ||
| 1315 | |||
| 1316 | function applyOverviewPalette(){ | ||
| 1317 | if(PAGE_KIND!=="overview"){ | ||
| 1318 | return []; | ||
| 1319 | } | ||
| 1320 | |||
| 1321 | var headers= | ||
| 1322 | smallestThemeHeaders() | ||
| 1323 | .map(function(el){ | ||
| 1324 | return { | ||
| 1325 | el:el, | ||
| 1326 | theme: | ||
| 1327 | themeFor( | ||
| 1328 | el.textContent | ||
| 1329 | ), | ||
| 1330 | card: | ||
| 1331 | findOverviewCard( | ||
| 1332 | el | ||
| 1333 | ) | ||
| 1334 | }; | ||
| 1335 | }) | ||
| 1336 | .filter(function(row){ | ||
| 1337 | return !!row.card; | ||
| 1338 | }); | ||
| 1339 | |||
| 1340 | var unique=[]; | ||
| 1341 | var seenHeaders=new Set(); | ||
| 1342 | |||
| 1343 | headers.forEach(function(row){ | ||
| 1344 | var key= | ||
| 1345 | row.theme.name+ | ||
| 1346 | "|"+ | ||
| 1347 | Math.round( | ||
| 1348 | row.card | ||
| 1349 | .getBoundingClientRect() | ||
| 1350 | .left | ||
| 1351 | )+ | ||
| 1352 | "|"+ | ||
| 1353 | Math.round( | ||
| 1354 | row.el | ||
| 1355 | .getBoundingClientRect() | ||
| 1356 | .top | ||
| 1357 | ); | ||
| 1358 | |||
| 1359 | if(!seenHeaders.has(key)){ | ||
| 1360 | seenHeaders.add(key); | ||
| 1361 | unique.push(row); | ||
| 1362 | } | ||
| 1363 | }); | ||
| 1364 | |||
| 1365 | unique.forEach(function(row){ | ||
| 1366 | var headerRect= | ||
| 1367 | row.el | ||
| 1368 | .getBoundingClientRect(); | ||
| 1369 | |||
| 1370 | row.el.style.setProperty( | ||
| 1371 | "background", | ||
| 1372 | row.theme.bg, | ||
| 1373 | "important" | ||
| 1374 | ); | ||
| 1375 | |||
| 1376 | row.el.style.setProperty( | ||
| 1377 | "color", | ||
| 1378 | row.theme.text, | ||
| 1379 | "important" | ||
| 1380 | ); | ||
| 1381 | |||
| 1382 | row.el.style.setProperty( | ||
| 1383 | "text-align", | ||
| 1384 | "left", | ||
| 1385 | "important" | ||
| 1386 | ); | ||
| 1387 | |||
| 1388 | row.el.style.setProperty( | ||
| 1389 | "word-spacing", | ||
| 1390 | "normal", | ||
| 1391 | "important" | ||
| 1392 | ); | ||
| 1393 | |||
| 1394 | var later= | ||
| 1395 | unique | ||
| 1396 | .filter(function(other){ | ||
| 1397 | return ( | ||
| 1398 | other.card===row.card&& | ||
| 1399 | other.el | ||
| 1400 | .getBoundingClientRect() | ||
| 1401 | .top> | ||
| 1402 | headerRect.top+2 | ||
| 1403 | ); | ||
| 1404 | }) | ||
| 1405 | .sort(function(a,b){ | ||
| 1406 | return ( | ||
| 1407 | a.el | ||
| 1408 | .getBoundingClientRect() | ||
| 1409 | .top- | ||
| 1410 | b.el | ||
| 1411 | .getBoundingClientRect() | ||
| 1412 | .top | ||
| 1413 | ); | ||
| 1414 | }); | ||
| 1415 | |||
| 1416 | var stopTop= | ||
| 1417 | later.length | ||
| 1418 | ?later[0].el | ||
| 1419 | .getBoundingClientRect() | ||
| 1420 | .top | ||
| 1421 | :Infinity; | ||
| 1422 | |||
| 1423 | Array.from( | ||
| 1424 | row.card.querySelectorAll("a") | ||
| 1425 | ).forEach(function(link){ | ||
| 1426 | if(!visible(link))return; | ||
| 1427 | |||
| 1428 | var rect= | ||
| 1429 | link.getBoundingClientRect(); | ||
| 1430 | |||
| 1431 | if( | ||
| 1432 | rect.top<= | ||
| 1433 | headerRect.bottom-2|| | ||
| 1434 | rect.top>= | ||
| 1435 | stopTop-2 | ||
| 1436 | ){ | ||
| 1437 | return; | ||
| 1438 | } | ||
| 1439 | |||
| 1440 | var candidates= | ||
| 1441 | rowCandidates( | ||
| 1442 | link, | ||
| 1443 | row.card | ||
| 1444 | ); | ||
| 1445 | |||
| 1446 | var target= | ||
| 1447 | chooseOuterRow( | ||
| 1448 | candidates, | ||
| 1449 | link | ||
| 1450 | ); | ||
| 1451 | |||
| 1452 | candidates.forEach(function(el){ | ||
| 1453 | el.style.setProperty( | ||
| 1454 | "border-left", | ||
| 1455 | "0 solid transparent", | ||
| 1456 | "important" | ||
| 1457 | ); | ||
| 1458 | }); | ||
| 1459 | |||
| 1460 | target.style.setProperty( | ||
| 1461 | "border-left", | ||
| 1462 | "3px solid "+ | ||
| 1463 | row.theme.accent, | ||
| 1464 | "important" | ||
| 1465 | ); | ||
| 1466 | |||
| 1467 | target.style.setProperty( | ||
| 1468 | "box-sizing", | ||
| 1469 | "border-box", | ||
| 1470 | "important" | ||
| 1471 | ); | ||
| 1472 | }); | ||
| 1473 | }); | ||
| 1474 | |||
| 1475 | return unique; | ||
| 1476 | } | ||
| 1477 | |||
| 1478 | /* ======================================================= | ||
| 1479 | OVERVIEW CARD HEIGHT + FIRST THEMATIC ROW | ||
| 1480 | ======================================================= */ | ||
| 1481 | |||
| 1482 | function alignOverviewCards(headers){ | ||
| 1483 | if( | ||
| 1484 | PAGE_KIND!=="overview"|| | ||
| 1485 | window.innerWidth<=MOBILE_MAX | ||
| 1486 | ){ | ||
| 1487 | return; | ||
| 1488 | } | ||
| 1489 | |||
| 1490 | var cards=[]; | ||
| 1491 | var seen=new Set(); | ||
| 1492 | |||
| 1493 | headers.forEach(function(row){ | ||
| 1494 | if(!seen.has(row.card)){ | ||
| 1495 | seen.add(row.card); | ||
| 1496 | cards.push(row.card); | ||
| 1497 | } | ||
| 1498 | }); | ||
| 1499 | |||
| 1500 | if(cards.length<2){ | ||
| 1501 | return; | ||
| 1502 | } | ||
| 1503 | |||
| 1504 | // Group cards by actual top position. | ||
| 1505 | var groups=[]; | ||
| 1506 | |||
| 1507 | cards.forEach(function(card){ | ||
| 1508 | var top= | ||
| 1509 | card.getBoundingClientRect().top; | ||
| 1510 | |||
| 1511 | var group=null; | ||
| 1512 | |||
| 1513 | for(var i=0;i<groups.length;i++){ | ||
| 1514 | if( | ||
| 1515 | Math.abs( | ||
| 1516 | groups[i].top-top | ||
| 1517 | )<=ROW_TOLERANCE | ||
| 1518 | ){ | ||
| 1519 | group=groups[i]; | ||
| 1520 | break; | ||
| 1521 | } | ||
| 1522 | } | ||
| 1523 | |||
| 1524 | if(!group){ | ||
| 1525 | group={ | ||
| 1526 | top:top, | ||
| 1527 | cards:[] | ||
| 1528 | }; | ||
| 1529 | groups.push(group); | ||
| 1530 | } | ||
| 1531 | |||
| 1532 | group.cards.push(card); | ||
| 1533 | }); | ||
| 1534 | |||
| 1535 | groups.forEach(function(group){ | ||
| 1536 | if(group.cards.length<2){ | ||
| 1537 | return; | ||
| 1538 | } | ||
| 1539 | |||
| 1540 | var firstHeaders= | ||
| 1541 | group.cards.map(function(card){ | ||
| 1542 | var candidates= | ||
| 1543 | headers | ||
| 1544 | .filter(function(row){ | ||
| 1545 | return row.card===card; | ||
| 1546 | }) | ||
| 1547 | .sort(function(a,b){ | ||
| 1548 | return ( | ||
| 1549 | a.el | ||
| 1550 | .getBoundingClientRect() | ||
| 1551 | .top- | ||
| 1552 | b.el | ||
| 1553 | .getBoundingClientRect() | ||
| 1554 | .top | ||
| 1555 | ); | ||
| 1556 | }); | ||
| 1557 | |||
| 1558 | return candidates.length | ||
| 1559 | ?candidates[0] | ||
| 1560 | :null; | ||
| 1561 | }); | ||
| 1562 | |||
| 1563 | if( | ||
| 1564 | !firstHeaders.some(function(row){ | ||
| 1565 | return !row; | ||
| 1566 | }) | ||
| 1567 | ){ | ||
| 1568 | var targetTop= | ||
| 1569 | Math.max.apply( | ||
| 1570 | Math, | ||
| 1571 | firstHeaders.map(function(row){ | ||
| 1572 | return ( | ||
| 1573 | row.el | ||
| 1574 | .getBoundingClientRect() | ||
| 1575 | .top- | ||
| 1576 | row.card | ||
| 1577 | .getBoundingClientRect() | ||
| 1578 | .top | ||
| 1579 | ); | ||
| 1580 | }) | ||
| 1581 | ); | ||
| 1582 | |||
| 1583 | firstHeaders.forEach(function(row){ | ||
| 1584 | var relativeTop= | ||
| 1585 | row.el | ||
| 1586 | .getBoundingClientRect() | ||
| 1587 | .top- | ||
| 1588 | row.card | ||
| 1589 | .getBoundingClientRect() | ||
| 1590 | .top; | ||
| 1591 | |||
| 1592 | var delta= | ||
| 1593 | targetTop-relativeTop; | ||
| 1594 | |||
| 1595 | if(delta>1){ | ||
| 1596 | saveStyle( | ||
| 1597 | row.el, | ||
| 1598 | originalMargin, | ||
| 1599 | "margin-top" | ||
| 1600 | ); | ||
| 1601 | |||
| 1602 | var current= | ||
| 1603 | num( | ||
| 1604 | getComputedStyle( | ||
| 1605 | row.el | ||
| 1606 | ).marginTop | ||
| 1607 | ); | ||
| 1608 | |||
| 1609 | row.el.style.setProperty( | ||
| 1610 | "margin-top", | ||
| 1611 | ( | ||
| 1612 | current+delta | ||
| 1613 | )+"px" | ||
| 1614 | ); | ||
| 1615 | |||
| 1616 | row.el.setAttribute( | ||
| 1617 | "data-sn-master-first-row", | ||
| 1618 | "1" | ||
| 1619 | ); | ||
| 1620 | |||
| 1621 | managedMargin.add( | ||
| 1622 | row.el | ||
| 1623 | ); | ||
| 1624 | } | ||
| 1625 | }); | ||
| 1626 | } | ||
| 1627 | |||
| 1628 | var maxHeight=0; | ||
| 1629 | |||
| 1630 | group.cards.forEach(function(card){ | ||
| 1631 | maxHeight= | ||
| 1632 | Math.max( | ||
| 1633 | maxHeight, | ||
| 1634 | card | ||
| 1635 | .getBoundingClientRect() | ||
| 1636 | .height | ||
| 1637 | ); | ||
| 1638 | }); | ||
| 1639 | |||
| 1640 | maxHeight= | ||
| 1641 | Math.ceil(maxHeight); | ||
| 1642 | |||
| 1643 | group.cards.forEach(function(card){ | ||
| 1644 | saveStyle( | ||
| 1645 | card, | ||
| 1646 | originalHeight, | ||
| 1647 | "min-height" | ||
| 1648 | ); | ||
| 1649 | |||
| 1650 | card.style.setProperty( | ||
| 1651 | "min-height", | ||
| 1652 | maxHeight+"px" | ||
| 1653 | ); | ||
| 1654 | |||
| 1655 | card.setAttribute( | ||
| 1656 | "data-sn-master-equal-height", | ||
| 1657 | "1" | ||
| 1658 | ); | ||
| 1659 | |||
| 1660 | managedHeight.add( | ||
| 1661 | card | ||
| 1662 | ); | ||
| 1663 | }); | ||
| 1664 | }); | ||
| 1665 | } | ||
| 1666 | |||
| 1667 | /* ======================================================= | ||
| 1668 | DETAIL GRID EQUAL HEIGHT, DESKTOP ONLY | ||
| 1669 | ======================================================= */ | ||
| 1670 | |||
| 1671 | function equaliseDetailGrids(){ | ||
| 1672 | if( | ||
| 1673 | PAGE_KIND!=="detail"|| | ||
| 1674 | window.innerWidth<=MOBILE_MAX | ||
| 1675 | ){ | ||
| 1676 | return; | ||
| 1677 | } | ||
| 1678 | |||
| 1679 | var selectors=[ | ||
| 1680 | ".arsn-grid", | ||
| 1681 | ".arsn-grid-2", | ||
| 1682 | ".arsn-grid-3", | ||
| 1683 | ".dmp-grid", | ||
| 1684 | ".ido-grid", | ||
| 1685 | ".pp-grid" | ||
| 1686 | ]; | ||
| 1687 | |||
| 1688 | selectors.forEach(function(selector){ | ||
| 1689 | Array.from( | ||
| 1690 | root.querySelectorAll(selector) | ||
| 1691 | ).forEach(function(grid){ | ||
| 1692 | var children= | ||
| 1693 | Array.from( | ||
| 1694 | grid.children||[] | ||
| 1695 | ).filter(visible); | ||
| 1696 | |||
| 1697 | if(children.length<2){ | ||
| 1698 | return; | ||
| 1699 | } | ||
| 1700 | |||
| 1701 | var groups=[]; | ||
| 1702 | |||
| 1703 | children.forEach(function(child){ | ||
| 1704 | var top= | ||
| 1705 | child | ||
| 1706 | .getBoundingClientRect() | ||
| 1707 | .top; | ||
| 1708 | |||
| 1709 | var group=null; | ||
| 1710 | |||
| 1711 | for(var i=0;i<groups.length;i++){ | ||
| 1712 | if( | ||
| 1713 | Math.abs( | ||
| 1714 | groups[i].top-top | ||
| 1715 | )<=ROW_TOLERANCE | ||
| 1716 | ){ | ||
| 1717 | group=groups[i]; | ||
| 1718 | break; | ||
| 1719 | } | ||
| 1720 | } | ||
| 1721 | |||
| 1722 | if(!group){ | ||
| 1723 | group={ | ||
| 1724 | top:top, | ||
| 1725 | items:[] | ||
| 1726 | }; | ||
| 1727 | groups.push(group); | ||
| 1728 | } | ||
| 1729 | |||
| 1730 | group.items.push(child); | ||
| 1731 | }); | ||
| 1732 | |||
| 1733 | groups.forEach(function(group){ | ||
| 1734 | if(group.items.length<2){ | ||
| 1735 | return; | ||
| 1736 | } | ||
| 1737 | |||
| 1738 | var maxHeight=0; | ||
| 1739 | |||
| 1740 | group.items.forEach(function(item){ | ||
| 1741 | maxHeight= | ||
| 1742 | Math.max( | ||
| 1743 | maxHeight, | ||
| 1744 | item | ||
| 1745 | .getBoundingClientRect() | ||
| 1746 | .height | ||
| 1747 | ); | ||
| 1748 | }); | ||
| 1749 | |||
| 1750 | maxHeight= | ||
| 1751 | Math.ceil(maxHeight); | ||
| 1752 | |||
| 1753 | group.items.forEach(function(item){ | ||
| 1754 | saveStyle( | ||
| 1755 | item, | ||
| 1756 | originalHeight, | ||
| 1757 | "min-height" | ||
| 1758 | ); | ||
| 1759 | |||
| 1760 | item.style.setProperty( | ||
| 1761 | "min-height", | ||
| 1762 | maxHeight+"px" | ||
| 1763 | ); | ||
| 1764 | |||
| 1765 | item.setAttribute( | ||
| 1766 | "data-sn-master-equal-height", | ||
| 1767 | "1" | ||
| 1768 | ); | ||
| 1769 | |||
| 1770 | managedHeight.add(item); | ||
| 1771 | }); | ||
| 1772 | }); | ||
| 1773 | }); | ||
| 1774 | }); | ||
| 1775 | } | ||
| 1776 | |||
| 1777 | /* ======================================================= | ||
| 1778 | RUN / RESPONSIVE SCHEDULING | ||
| 1779 | ======================================================= */ | ||
| 1780 | |||
| 1781 | function run(){ | ||
| 1782 | if(running)return; | ||
| 1783 | |||
| 1784 | running=true; | ||
| 1785 | |||
| 1786 | try{ | ||
| 1787 | resetRuntime(); | ||
| 1788 | applyPlaceholderBadge(); | ||
| 1789 | propagateDetailAccents(); | ||
| 1790 | |||
| 1791 | var headers= | ||
| 1792 | applyOverviewPalette(); | ||
| 1793 | |||
| 1794 | makeThreeLineAreaLabels(); | ||
| 1795 | makeFilledRedOrangeCTAsBorderless(); | ||
| 1796 | |||
| 1797 | if( | ||
| 1798 | window.innerWidth> | ||
| 1799 | MOBILE_MAX | ||
| 1800 | ){ | ||
| 1801 | alignOverviewCards( | ||
| 1802 | headers | ||
| 1803 | ); | ||
| 1804 | |||
| 1805 | equaliseDetailGrids(); | ||
| 1806 | } | ||
| 1807 | }finally{ | ||
| 1808 | running=false; | ||
| 1809 | } | ||
| 1810 | } | ||
| 1811 | |||
| 1812 | function onResize(){ | ||
| 1813 | if(resizeTimer){ | ||
| 1814 | clearTimeout( | ||
| 1815 | resizeTimer | ||
| 1816 | ); | ||
| 1817 | } | ||
| 1818 | |||
| 1819 | resizeTimer= | ||
| 1820 | setTimeout( | ||
| 1821 | function(){ | ||
| 1822 | resizeTimer=0; | ||
| 1823 | run(); | ||
| 1824 | }, | ||
| 1825 | RESIZE_DEBOUNCE | ||
| 1826 | ); | ||
| 1827 | } | ||
| 1828 | |||
| 1829 | async function waitForReady(){ | ||
| 1830 | if( | ||
| 1831 | document.readyState!=="complete" | ||
| 1832 | ){ | ||
| 1833 | await new Promise(function(resolve){ | ||
| 1834 | window.addEventListener( | ||
| 1835 | "load", | ||
| 1836 | resolve, | ||
| 1837 | {once:true} | ||
| 1838 | ); | ||
| 1839 | }); | ||
| 1840 | } | ||
| 1841 | |||
| 1842 | if( | ||
| 1843 | document.fonts&& | ||
| 1844 | document.fonts.ready | ||
| 1845 | ){ | ||
| 1846 | try{ | ||
| 1847 | await document.fonts.ready; | ||
| 1848 | }catch(error){} | ||
| 1849 | } | ||
| 1850 | |||
| 1851 | var images= | ||
| 1852 | Array.from( | ||
| 1853 | root.querySelectorAll("img") | ||
| 1854 | ); | ||
| 1855 | |||
| 1856 | await Promise.all( | ||
| 1857 | images.map(function(img){ | ||
| 1858 | if(img.complete){ | ||
| 1859 | return Promise.resolve(); | ||
| 1860 | } | ||
| 1861 | |||
| 1862 | return new Promise(function(resolve){ | ||
| 1863 | var done=function(){ | ||
| 1864 | resolve(); | ||
| 1865 | }; | ||
| 1866 | |||
| 1867 | img.addEventListener( | ||
| 1868 | "load", | ||
| 1869 | done, | ||
| 1870 | {once:true} | ||
| 1871 | ); | ||
| 1872 | |||
| 1873 | img.addEventListener( | ||
| 1874 | "error", | ||
| 1875 | done, | ||
| 1876 | {once:true} | ||
| 1877 | ); | ||
| 1878 | }); | ||
| 1879 | }) | ||
| 1880 | ); | ||
| 1881 | |||
| 1882 | run(); | ||
| 1883 | } | ||
| 1884 | |||
| 1885 | window.addEventListener( | ||
| 1886 | "resize", | ||
| 1887 | onResize, | ||
| 1888 | {passive:true} | ||
| 1889 | ); | ||
| 1890 | |||
| 1891 | waitForReady(); | ||
| 1892 | })(); | ||
| 1893 | </script> | ||
| 1894 | |||
| 1895 | <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_END --> | ||
| 1896 | {{/html}} |