Wiki source code of Plan Your Data Management

Version 4.14 by Veronika Kocher on Friday, 04 Sep 2026 14:23

Show last authors
1 {{html clean="false"}}
2 <!-- ARSN_FULL_PAGE_PLAN_DATA_MANAGEMENT_V1 -->
3 <style>
4 .dmp{max-width:1400px;margin:0 auto;color:#322f2b}.dmp *{box-sizing:border-box}
5 .dmp-card{border:1px solid #e3ded6;border-radius:11px;background:#fcfbf8;box-shadow:0 1px 3px rgba(0,0,0,.035)}
6 .dmp-eye{font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase}
7 .dmp-hero{height:125px;overflow:hidden;background:#f1eee9}.dmp-hero img{width:100%;height:100%;object-fit:cover;object-position:center 48%;display:block}
8 .dmp-sec{margin:0 0 30px}.dmp-sec h3{font-size:22px;margin:0 0 7px;color:#35312d}.dmp-sec>p{color:#6a655e;line-height:1.58;max-width:1180px}
9 .dmp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}
10 .dmp-box{padding:15px 16px;border:1px solid #e3ded6;border-radius:9px;background:#fcfbf8}.dmp-box h4{font-size:17px;margin:0 0 6px;color:#35312d}.dmp-box p{margin:0;color:#625d56;line-height:1.5}.dmp-box ul{margin:8px 0 0 19px;padding:0;color:#625d56;line-height:1.5}
11 .dmp-check{position:relative;padding:12px 13px 12px 37px;border:1px solid #e3ded6;border-radius:8px;background:#fffdf9;color:#504a44;line-height:1.5}.dmp-check:before{content:"✓";position:absolute;left:13px;top:10px;color:#e94b13;font-weight:800}
12 .dmp-info{padding:15px 17px;border:1px solid #c7e5ed;border-left:5px solid #21b6d7;background:#eaf6f9;border-radius:8px;color:#365e68;line-height:1.55}.dmp-info strong{color:#2d5661}
13 .dmp-warn{padding:15px 17px;border:1px solid #efd9cc;border-left:5px solid #e94b13;background:#fff6f1;border-radius:8px;color:#67564e;line-height:1.55}.dmp-warn strong{color:#744531}
14 .dmp-rights{padding:15px 17px;border:1px solid #efdca7;border-left:5px solid #f0aa00;background:#fff9e9;border-radius:8px;color:#665a38;line-height:1.55}.dmp-rights strong{color:#6d571c}
15 .dmp-store{padding:15px 17px;border:1px solid #cfe8d8;border-left:5px solid #38b76a;background:#eff9f2;border-radius:8px;color:#45614e;line-height:1.55}.dmp-store strong{color:#35543f}
16 .dmp-tablewrap{overflow-x:auto;border-radius:9px}.dmp-tbl{width:100%;border-collapse:collapse;background:#fffdf9;min-width:820px}.dmp-tbl th,.dmp-tbl td{border:1px solid #e3ded6;padding:10px 11px;vertical-align:top;text-align:left;line-height:1.45}.dmp-tbl th{background:#f3efe8;color:#403b36}.dmp-tbl td{color:#56504a}
17 .dmp-step{padding:15px 16px;border:1px solid #e3ded6;border-top:4px solid #e94b13;border-radius:9px;background:#fcfbf8}.dmp-step .n{font-size:12px;font-weight:800;color:#8a4d36;letter-spacing:.06em}.dmp-step h4{font-size:17px;margin:3px 0 6px;color:#35312d}.dmp-step p{margin:0;color:#625d56;line-height:1.5}
18 .dmp-service{display:block;padding:14px 15px;border:1px solid #e3ded6;border-radius:9px;background:#fcfbf8;color:#322f2b;text-decoration:none}.dmp-service:hover,.dmp-service:focus{background:#fffdf9;text-decoration:none}.dmp-service strong{display:block;margin-bottom:4px}.dmp-service span{display:block;color:#625d56;line-height:1.45;font-weight:400}
19 .dmp-linkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}.dmp-navlink{display:block;padding:10px 11px;border:1px solid #e9e4dc;border-left:3px solid #e94b13;border-radius:6px;background:#fffdf9;color:#252321;text-decoration:none;font-weight:600;line-height:1.35}.dmp-navlink:hover,.dmp-navlink:focus{background:#fff7f1;text-decoration:none}
20 .dmp-chip{display:inline-block;padding:4px 8px;margin:3px 4px 3px 0;border-radius:14px;background:#f3efe8;border:1px solid #e3ded6;color:#5c5650;font-size:12px;text-decoration:none}
21 @media(max-width:680px){.dmp-hero{height:105px}.dmp-sec h3{font-size:20px}}
22 </style>
23
24 <div class="dmp">
25
26 <section class="dmp-card" style="margin-bottom:18px;overflow:hidden;border-left:6px solid #e94b13;">
27 <div class="dmp-hero"><img src="https://xwiki.uni-ak.ac.at/bin/download/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/WebHome/enable.png" alt="Planning research data, materials and outputs across the project lifecycle"></div>
28 <div style="padding:18px 21px 20px">
29 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:5px">PREPARE · DATA MANAGEMENT PLAN</div>
30 <h2 style="font-size:27px;line-height:1.2;margin:0 0 8px;color:#2c2926">Turn data management into a working project routine — not a form you fill in once</h2>
31 <p style="margin:0;color:#5e5953;line-height:1.6;max-width:1160px">A practical Data Management Plan (DMP) records how your project will organise, store, protect, document, share, preserve or dispose of its data and materials. For artistic and arts-based research, this can include physical objects, audiovisual material, software, performances, process documentation and artistic outputs as well as conventional research data.</p>
32 </div>
33 </section>
34
35 <div class="dmp-info" style="margin-bottom:16px"><strong>Treat the DMP as a living working document.</strong> Start with what you know, record unresolved decisions, assign responsibility and update the plan when the project changes.</div>
36
37 <div class="dmp-rights" style="margin-bottom:16px"><strong>A DMP does not mean that everything must become open.</strong> It should make restrictions visible and explain why access, sharing or reuse may need to be limited because of personal data, consent, copyright, confidentiality, cultural sensitivity, contractual obligations, security or other legitimate constraints.</div>
38
39 <div class="dmp-store" style="margin-bottom:28px"><strong>Start from your material inventory.</strong> If you have not yet mapped the data, materials, documentation and outputs your project will create, collect or reuse, begin with <a 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/">Identify Your Data &amp; Research Outputs</a>.</div>
40
41 <!-- ARSN_DMP_TOOL_COMING_SOON_V1 -->
42 <section id="dmp-tool-coming-soon" class="dmp-card" style="margin-bottom:28px;overflow:hidden;border-left:6px solid #21b6d7;">
43 <div style="padding:17px 20px 18px">
44 <div class="dmp-eye" style="color:#3f6871;margin-bottom:5px">DMP TOOL <span style="display:inline-block;margin-left:6px;padding:3px 7px;border-radius:12px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:10px;letter-spacing:.06em;vertical-align:1px">COMING SOON</span></div>
45 <h3 style="font-size:21px;margin:0 0 7px;color:#35312d">Interactive Art &amp; Research DMP Tool</h3>
46 <p style="margin:0 0 11px;color:#625d56;line-height:1.55;max-width:1050px">A local form will connect the eleven core DMP questions with funder-specific requirements and export DMPs as PDF, JSON, YAML and Markdown. Funder profiles are maintained separately from the tool so that FWF, Horizon Europe, ERC or FFG requirements can be updated without reprogramming the form.</p>
47 <a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Plan%20Your%20Data%20Management/DMP%20Tool/" aria-disabled="true" onclick="return false;" style="display:inline-block;padding:8px 11px;border:1px solid #c7e5ed;border-radius:6px;background:#f4fbfc;color:#3f6871;text-decoration:none;font-weight:700;cursor:not-allowed">Open DMP Tool ↗</a>
48 <span style="display:inline-block;margin-left:8px;color:#8a4d36;font-size:12px;font-weight:700">COMING SOON</span>
49 </div>
50 </section>
51 <!-- ARSN_DMP_TOOL_COMING_SOON_END -->
52
53 <section class="dmp-sec">
54 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">STEP 1 · DEFINE THE SCOPE</div>
55 <h3>Decide what your DMP needs to cover</h3>
56 <p>Your DMP should follow the real project, not an abstract template. Begin with the project structure, funding requirements and the material types you have already identified.</p>
57
58 <div class="dmp-grid">
59 <div class="dmp-box" style="border-top:4px solid #21b6d7">
60 <h4>Project &amp; plan identity</h4>
61 <p>Project title, lead, host unit, partners, funding programme, project dates, DMP owner, DMP version and last review date.</p>
62 </div>
63 <div class="dmp-box" style="border-top:4px solid #21b6d7">
64 <h4>Data, materials &amp; outputs</h4>
65 <p>What will be created, collected, commissioned or reused; expected formats, physical carriers, scale, dependencies and master versions.</p>
66 </div>
67 <div class="dmp-box" style="border-top:4px solid #e94b13">
68 <h4>Roles &amp; responsibilities</h4>
69 <p>Who creates, documents, stores, backs up, controls access, approves sharing, deposits outputs and completes handover.</p>
70 </div>
71 <div class="dmp-box" style="border-top:4px solid #38b76a">
72 <h4>Storage, backup &amp; access</h4>
73 <p>Working locations, authoritative copies, backup routine, recovery, access groups, account ownership and security requirements.</p>
74 </div>
75 <div class="dmp-box" style="border-top:4px solid #e94b13">
76 <h4>Organisation &amp; versioning</h4>
77 <p>Folder structure, naming, version conventions, master files, working copies, export formats and change control.</p>
78 </div>
79 <div class="dmp-box" style="border-top:4px solid #21b6d7">
80 <h4>Metadata, provenance &amp; documentation</h4>
81 <p>What information is needed to understand origin, creator, context, method, transformation, relationships, software and versions.</p>
82 </div>
83 <div class="dmp-box" style="border-top:4px solid #f0aa00">
84 <h4>Rights, ethics &amp; protection</h4>
85 <p>Copyright, licences, consent, personal data, confidentiality, contracts, community or cultural protocols and restrictions.</p>
86 </div>
87 <div class="dmp-box" style="border-top:4px solid #f0aa00">
88 <h4>Sharing, publication &amp; reuse</h4>
89 <p>What can be shared, with whom, when, under which licence, through which repository/platform and with what documentation.</p>
90 </div>
91 <div class="dmp-box" style="border-top:4px solid #38b76a">
92 <h4>Retention, preservation &amp; disposal</h4>
93 <p>What should remain after project end, what can be deleted, retention periods, preservation formats, repository/archive and handover.</p>
94 </div>
95 <div class="dmp-box" style="border-top:4px solid #e94b13">
96 <h4>Resources &amp; costs</h4>
97 <p>Storage, specialist software, digitisation, transcription, metadata work, repository fees, preservation, staff time and other data-management costs.</p>
98 </div>
99 </div>
100 </section>
101
102 <section class="dmp-sec">
103 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">STEP 2 · CREATE THE MINIMUM WORKING DMP</div>
104 <h3>Record decisions that the team can actually follow</h3>
105 <p>A useful first DMP can be short. The important thing is that it names responsibilities and turns assumptions into explicit decisions.</p>
106
107 <div class="dmp-tablewrap">
108 <table class="dmp-tbl">
109 <thead><tr><th>Question</th><th>Minimum decision to record</th><th>Responsible / review point</th></tr></thead>
110 <tbody>
111 <tr><td><strong>What are we managing?</strong></td><td>Material/data/output types, origin, formats, physical carriers, approximate quantity or expected growth.</td><td>Project lead + person closest to the material.</td></tr>
112 <tr><td><strong>Where is active work stored?</strong></td><td>Approved working location and location of the authoritative/master copy.</td><td>Data/documentation responsibility; review when infrastructure changes.</td></tr>
113 <tr><td><strong>How is it backed up?</strong></td><td>Backup location, frequency, responsibility and how recovery is checked.</td><td>Named owner; test before critical production/publication stages.</td></tr>
114 <tr><td><strong>Who can access what?</strong></td><td>Access groups, account ownership, restrictions and process for adding/removing people.</td><td>Project lead / system owner; review when staff or partners change.</td></tr>
115 <tr><td><strong>How are files and versions organised?</strong></td><td>Folder structure, file naming, version convention, master/working/derivative distinction.</td><td>Team-wide rule; review when workflows become unclear.</td></tr>
116 <tr><td><strong>What documentation is required?</strong></td><td>Minimum metadata, provenance, README/context documentation, technical dependencies and relationships.</td><td>Creator + documentation owner.</td></tr>
117 <tr><td><strong>What is sensitive or restricted?</strong></td><td>Personal/confidential/culturally sensitive material, consent status, legal or contractual restrictions and required protection.</td><td>Project lead with specialist advice where needed.</td></tr>
118 <tr><td><strong>What rights apply?</strong></td><td>Ownership, third-party material, licences, permissions and unresolved rights questions.</td><td>Project lead / rights responsibility; resolve before publication.</td></tr>
119 <tr><td><strong>What will be shared or published?</strong></td><td>Outputs/materials to share, access level, timing, licence, repository/platform and exceptions.</td><td>Project lead + output owner.</td></tr>
120 <tr><td><strong>What happens at project end?</strong></td><td>Keep, deposit, preserve, hand over or delete; final owner; access closure; retention period if applicable.</td><td>Named closure owner; confirm before final reporting.</td></tr>
121 <tr><td><strong>When is the DMP reviewed?</strong></td><td>Planned review dates plus event-based triggers.</td><td>DMP owner.</td></tr>
122 </tbody>
123 </table>
124 </div>
125
126 <div class="dmp-info" style="margin-top:14px"><strong>Simple rule:</strong> every important DMP statement should answer at least one of these: <em>what, where, who, how, when, under which conditions, and what happens at the end?</em></div>
127 </section>
128
129 <section class="dmp-sec">
130 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">STEP 3 · PLAN FOR CHANGE</div>
131 <h3>Review the DMP when a decision actually changes</h3>
132 <p>Do not update the plan only because a calendar reminder appears. Use scheduled reviews, but also connect reviews to concrete project events.</p>
133
134 <div class="dmp-grid">
135 <div class="dmp-step"><div class="n">REVIEW 1</div><h4>Proposal / award / project start</h4><p>Align the working plan with the submitted proposal, funder requirements, approved budget, staffing, partners and actual infrastructure.</p></div>
136 <div class="dmp-step"><div class="n">REVIEW 2</div><h4>New material or method</h4><p>Update the DMP when new datasets, media types, software, equipment, participants, collections or documentation workflows are introduced.</p></div>
137 <div class="dmp-step"><div class="n">REVIEW 3</div><h4>People or partner changes</h4><p>Recheck access, account ownership, responsibilities, handover, agreements and where authoritative copies are held.</p></div>
138 <div class="dmp-step"><div class="n">REVIEW 4</div><h4>Before publication / exhibition / sharing</h4><p>Confirm rights, consent, personal-data handling, metadata, file quality, access level, licence and repository/platform route.</p></div>
139 <div class="dmp-step"><div class="n">REVIEW 5</div><h4>Before project closure</h4><p>Decide what is retained, deposited, preserved, deleted or transferred; close obsolete access and document final responsibilities.</p></div>
140 </div>
141 </section>
142
143 <section class="dmp-sec">
144 <!-- ARSN_DMP_FUNDER_LINKS_SPECIFIC_V2 -->
145 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">FUNDER REQUIREMENTS</div>
146 <h3>Work from the actual template, call and binding project conditions</h3>
147 <p>Your internal working DMP can be broader than the formal funder template. For a funded project, however, the current DMP template, the specific call or call guide, the funding agreement or Grant Agreement and the deadlines stated there are decisive. The links below therefore point directly to DMP-relevant documents or document areas.</p>
148
149 <div class="dmp-grid">
150 <div class="dmp-box" style="border-top:4px solid #e94b13">
151 <h4>FWF</h4>
152 <p>For the relevant approved FWF projects, the DMP is required for project start, is submitted with the funding agreement, uses the same language as the proposal, is versioned throughout the project and is submitted in its final version with the final project report.</p>
153 <ul style="margin:10px 0 0 18px;padding:0;line-height:1.55">
154 <li><a href="https://www.fwf.ac.at/fileadmin/Website/Dokumente/Ueber_uns/Aufgaben_und_Aktivitaeten/Open_Science/fwf_dmp_guidelines_template.docx" target="_blank" rel="noopener"><strong>DMP – Guidelines and template (EN, DOCX) ↗</strong></a></li>
155 <li><a href="https://www.fwf.ac.at/fileadmin/Website/Dokumente/Ueber_uns/Aufgaben_und_Aktivitaeten/Open_Science/fwf_dmp_evaluierungsmatrix.pdf" target="_blank" rel="noopener">DMP evaluation matrix (PDF) ↗</a></li>
156 <li><a href="https://www.fwf.ac.at/en/about-us/what-we-do/open-science/open-access-policy/open-access-policy-for-research-data" target="_blank" rel="noopener">Open-Access Policy for Research Data ↗</a></li>
157 <li><a href="https://www.fwf.ac.at/en/about-us/what-we-do/open-science/research-data-management" target="_blank" rel="noopener">Research Data Management – workflow, funding &amp; contact ↗</a></li>
158 </ul>
159 </div>
160
161 <div class="dmp-box" style="border-top:4px solid #21b6d7">
162 <h4>Horizon Europe</h4>
163 <p>Research Data Management is a mandatory Open Science practice for projects generating or reusing research data. The detailed DMP is normally a deliverable by month 6 and is maintained as a living document.</p>
164 <ul style="margin:10px 0 0 18px;padding:0;line-height:1.55">
165 <li><a href="https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/how-to-participate/reference-documents;programCode=HORIZON" target="_blank" rel="noopener"><strong>DMP Reporting Template – Funding &amp; Tenders Reference Documents ↗</strong></a><br><small>Under “Templates &amp; Forms” → “Project reporting templates”.</small></li>
166 <li><a href="https://ec.europa.eu/info/funding-tenders/opportunities/docs/2021-2027/common/guidance/aga_en.pdf" target="_blank" rel="noopener">Annotated Grant Agreement – DMP and Open Science obligations ↗</a></li>
167 <li><a href="https://rea.ec.europa.eu/open-science_en" target="_blank" rel="noopener">REA Open Science Q&amp;A – DMP, repositories &amp; access restrictions ↗</a></li>
168 <li><a href="https://ec.europa.eu/info/funding-tenders/opportunities/docs/2021-2027/horizon/guidance/programme-guide_horizon_en.pdf" target="_blank" rel="noopener">Horizon Europe Programme Guide – Open Science / RDM ↗</a></li>
169 </ul>
170 </div>
171
172 <div class="dmp-box" style="border-top:4px solid #21b6d7">
173 <h4>ERC · Horizon Europe</h4>
174 <p>Horizon Europe-funded ERC projects include Research Data Management as a work package. The DMP is due no later than the end of project month 6; the ERC guidance also addresses dissemination level, FAIR, resources and data security.</p>
175 <p style="margin-top:9px"><a href="https://erc.europa.eu/manage-your-project/open-science" target="_blank" rel="noopener"><strong>ERC – Open Science in ERC Projects: RDM work package, DMP deadline &amp; template ↗</strong></a></p>
176 </div>
177
178 <div class="dmp-box" style="border-top:4px solid #f0aa00">
179 <h4>FFG · always check the specific call</h4>
180 <p>For FFG funding, DMP rules are call- and instrument-specific. Record the URL of the actual call, the version/date of the guide and whether a DMP is mandatory at submission, mandatory during the project/reporting, recommended or not required.</p>
181 <p style="margin-top:9px"><a href="https://www.ffg.at/content/ausschreibungsdokumente-der-basisprogramme" target="_blank" rel="noopener"><strong>FFG – current Basisprogramme call documents 2025/26 ↗</strong></a></p>
182 <p style="margin-top:8px;color:#6a655e;font-size:13px">For other FFG programmes, always use the current programme/call page and the guide linked there.</p>
183 </div>
184 </div>
185
186 <div class="dmp-info" style="margin-top:14px"><strong>Other funders / partners:</strong> Do not record only the funder name. Store the <strong>exact URL of the binding requirement or template, its version/date and deadline</strong> in the DMP. For questions about the internal funding route or how funder requirements apply at the Angewandte: <a href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/support_kunst_und_forschung" target="_blank" rel="noopener">Support Kunst und Forschung ↗</a>.</div>
187 <!-- ARSN_DMP_FUNDER_LINKS_SPECIFIC_END -->
188 </section>
189
190 <section class="dmp-sec">
191 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">STEP 4 · CONNECT THE DMP TO REAL WORKFLOWS</div>
192 <h3>A plan is useful only if it points to actual places, rules and people</h3>
193
194 <div class="dmp-grid">
195 <div class="dmp-check"><strong>Storage:</strong> name the actual working environment, not “university server”.</div>
196 <div class="dmp-check"><strong>Backup:</strong> state what is backed up, where, how often and by whom.</div>
197 <div class="dmp-check"><strong>Access:</strong> use named groups/roles and define what happens when someone leaves.</div>
198 <div class="dmp-check"><strong>Files:</strong> document folder, naming and version rules where the team can find them.</div>
199 <div class="dmp-check"><strong>Metadata:</strong> specify the fields or README information required for each important material type.</div>
200 <div class="dmp-check"><strong>Rights:</strong> link permissions, licences and consent records to the material they govern.</div>
201 <div class="dmp-check"><strong>Sharing:</strong> identify the target repository/platform before the final week of the project.</div>
202 <div class="dmp-check"><strong>Preservation:</strong> distinguish active storage, backup, repository deposit and long-term preservation.</div>
203 </div>
204
205 <div class="dmp-warn" style="margin-top:14px"><strong>Red flag:</strong> “We will decide at the end” is not a data-management strategy. Decisions that affect consent, rights, file formats, metadata, storage, documentation or preservation often have to be made while the material is being created.</div>
206 </section>
207
208 <section class="dmp-sec">
209 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">SERVICES &amp; SUPPORT</div>
210 <h3>Who to involve at the Angewandte</h3>
211 <p>Use specialist support where the DMP reveals a real requirement. Not every project needs every service.</p>
212
213 <div class="dmp-grid">
214 <a class="dmp-service" href="https://www.dieangewandte.at/university_library" target="_blank" rel="noopener"><strong>University Library · Research Data Management &amp; Support ↗</strong><span>For research-data management, metadata, repository and preservation-oriented questions. The Library currently lists Research Data Management &amp; Support as part of its team expertise.</span></a>
215
216 <a class="dmp-service" href="mailto:veronika.kocher@uni-ak.ac.at"><strong>Research Data Management &amp; Support</strong><span>Current University Library contact for RDM support: veronika.kocher@uni-ak.ac.at</span></a>
217
218 <a class="dmp-service" href="mailto:repositorium@uni-ak.ac.at"><strong>Angewandte Repository</strong><span>Repository questions and deposit planning: repositorium@uni-ak.ac.at</span></a>
219
220 <a class="dmp-service" href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/support_kunst_und_forschung" target="_blank" rel="noopener"><strong>Support Kunst und Forschung ↗</strong><span>For funded artistic/scientific research, funder requirements, proposal/project coordination and the administrative funding route.</span></a>
221
222 <a class="dmp-service" href="mailto:projektsupport@uni-ak.ac.at"><strong>Project Support ticket contact</strong><span>projektsupport@uni-ak.ac.at</span></a>
223
224 <a class="dmp-service" href="https://www.dieangewandte.at/en/data_protection" target="_blank" rel="noopener"><strong>Data Protection ↗</strong><span>For specialist review where personal-data processing, data sharing, external processors/platforms or privacy risks require clarification. Data Protection Officer: dsb@uni-ak.ac.at</span></a>
225 </div>
226 </section>
227
228 <section class="dmp-sec">
229 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">RELATED NAVIGATOR TOPICS</div>
230 <h3>Turn each DMP decision into the next practical step</h3>
231
232 <div class="dmp-linkgrid">
233 <a class="dmp-navlink" 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/">Identify Your Data &amp; Research Outputs</a>
234 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/File%20Organisation%20%26%20Naming/">File Organisation &amp; Naming</a>
235 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Storage%2C%20Backup%20%26%20Security/">Storage, Backup &amp; Security</a>
236 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Data%20Protection%20%26%20Ethics/">Data Protection &amp; Ethics</a>
237 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Copyright%2C%20Rights%20%26%20Licences/">Copyright, Rights &amp; Licences</a>
238 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Collaboration%20Setup/">Collaboration Setup</a>
239 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Work%20%26%20Manage/Document%20Metadata%20%26%20Provenance/">Document Processes, Metadata &amp; Provenance</a>
240 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Work%20%26%20Manage/Review%20Your%20Data%20Management/">Review Your Data Management</a>
241 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Publish%20%26%20Share/Decide%20What%20to%20Share/">Decide What to Share</a>
242 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Publish%20%26%20Share/FAIR%2C%20CARE%20%26%20Open%20Science/">FAIR, CARE &amp; Open Science</a>
243 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Publish%20%26%20Share/Choose%20a%20Repository%20or%20Publication%20Platform/">Choose a Repository or Publication Platform</a>
244 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Publish%20%26%20Share/Preserve%20Data%20%26%20Artistic%20Outputs/">Preserve Data &amp; Artistic Outputs</a>
245 </div>
246 </section>
247
248 <div class="dmp-info" style="margin-bottom:14px"><strong>Need help reviewing a DMP?</strong> Bring the current funder template or internal draft, your material/output inventory, planned storage locations, project partners and the main questions that are still unresolved. This makes support much faster and more concrete.</div>
249
250 <!-- ARSN_TRAINING_WORKSHOPS_INCLUDE_V1_START -->
251 {{include reference="Service Navigator.Art & Research Services Navigator.Code.TrainingWorkshopsBlock" author="target" /}}
252 <!-- ARSN_TRAINING_WORKSHOPS_INCLUDE_V1_END -->
253
254 <!-- ARSN_PRACTICAL_RESOURCES_FALLBACK_V1_START -->
255 {{include reference="Service Navigator.Art & Research Services Navigator.Code.PracticalResourcesFallbackBlock" author="target" /}}
256 <!-- ARSN_PRACTICAL_RESOURCES_FALLBACK_V1_END -->
257
258 <!-- ARSN_SEARCH_TERMS_START -->
259 <details style="margin-top:24px;padding-top:10px;border-top:1px solid #e3ded6">
260 <summary style="cursor:pointer;color:#6a655e;font-size:13px">Search terms &amp; related topics</summary>
261 <div style="margin-top:9px;color:#5c5650;font-size:12px;line-height:1.7">data management plan · DMP · research data management · RDM · data lifecycle · data stewardship · data inventory · research materials · artistic research data · data types · file formats · storage · backup · access control · file naming · versioning · metadata · provenance · documentation · personal data · data protection · ethics · consent · copyright · licences · sensitive data · data sharing · open data · FAIR · CARE · repository · preservation · retention · deletion · funder requirements · FWF DMP · Horizon Europe DMP · project closure · handover · Datenmanagementplan · Forschungsdatenmanagement</div>
262 </details>
263 <!-- ARSN_SEARCH_TERMS_END -->
264
265 </div>
266 {{/html}}
267
268 {{html clean="false"}}
269 <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_START -->
270
271 <style data-sn-service-navigator-master="1">
272 /* =========================================================
273 MASTER TYPOGRAPHY
274 ========================================================= */
275 #xwikicontent h1,
276 #xwikicontent h2,
277 #xwikicontent h3,
278 #xwikicontent h4,
279 #xwikicontent h5,
280 #xwikicontent h6,
281 #xwikicontent .box-title,
282 #xwikicontent [role="heading"],
283 #xwikicontent h1 a,
284 #xwikicontent h2 a,
285 #xwikicontent h3 a,
286 #xwikicontent h4 a,
287 #xwikicontent h5 a,
288 #xwikicontent h6 a,
289 #xwikicontent .box-title a,
290 #xwikicontent [role="heading"] a{
291 text-align:left!important;
292 text-justify:auto!important;
293 word-spacing:normal!important;
294 }
295
296 /* =========================================================
297 COMING SOON / IN VORBEREITUNG
298 ========================================================= */
299 .sn-coming-soon-badge{
300 display:inline-block;
301 vertical-align:middle;
302 margin-left:10px;
303 padding:4px 8px;
304 border-radius:14px;
305 border:1px solid #efd9cc;
306 background:#fff4ee;
307 color:#8a4d36;
308 font-size:11px;
309 font-weight:700;
310 letter-spacing:.055em;
311 line-height:1.2;
312 white-space:nowrap;
313 }
314
315 /* =========================================================
316 NATIVE / DETAIL CALLOUT GEOMETRY
317 Preserve existing backgrounds.
318 ========================================================= */
319 #xwikicontent .arsn-info,
320 #xwikicontent .dmp-info,
321 #xwikicontent .ido-info,
322 #xwikicontent .pp-info,
323 #xwikicontent .infomessage{
324 box-sizing:border-box!important;
325 border-left:4px solid #21b6d7!important;
326 border-radius:8px;
327 text-align:left!important;
328 word-spacing:normal!important;
329 }
330
331 #xwikicontent .arsn-warn,
332 #xwikicontent .dmp-warn,
333 #xwikicontent .ido-warn,
334 #xwikicontent .pp-warn,
335 #xwikicontent .warn,
336 #xwikicontent .warning,
337 #xwikicontent .warningmessage,
338 #xwikicontent .errormessage{
339 box-sizing:border-box!important;
340 border-left:4px solid #e94b13!important;
341 border-radius:8px;
342 text-align:left!important;
343 word-spacing:normal!important;
344 }
345
346 [data-sn-master-equal-height],
347 [data-sn-master-first-row]{
348 box-sizing:border-box;
349 }
350
351 /* =========================================================
352 FULL-WIDTH THREE-LINE NUMBER / TITLE / SUBTITLE BLOCKS
353 ========================================================= */
354 #xwikicontent .arsn-area-label[data-sn-three-line="1"]{
355 display:grid!important;
356 grid-template-columns:minmax(0,1fr)!important;
357 grid-auto-rows:auto!important;
358 width:100%!important;
359 max-width:none!important;
360 box-sizing:border-box!important;
361 justify-items:start!important;
362 align-items:start!important;
363 gap:2px!important;
364 text-align:left!important;
365 text-align-last:left!important;
366 text-justify:auto!important;
367 word-spacing:normal!important;
368 white-space:normal!important;
369 }
370 #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-number,
371 #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .sn-area-label-title,
372 #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-action{
373 display:block!important;
374 width:100%!important;
375 margin:0!important;
376 text-align:left!important;
377 text-align-last:left!important;
378 text-justify:auto!important;
379 word-spacing:normal!important;
380 white-space:normal!important;
381 }
382 </style>
383
384 <script data-sn-service-navigator-master="1">
385 (function(){
386 "use strict";
387
388 var PAGE_KIND="detail";
389 var PLACEHOLDER=false;
390 var PLACEHOLDER_LABEL="COMING SOON";
391
392 var MOBILE_MAX=767;
393 var ROW_TOLERANCE=6;
394 var RESIZE_DEBOUNCE=220;
395
396 var root=
397 document.getElementById("xwikicontent")||
398 document.querySelector(".xwiki-rendering-content")||
399 document.querySelector("main")||
400 document.body;
401
402 if(!root)return;
403
404 var managedHeight=new Set();
405 var managedMargin=new Set();
406 var originalHeight=new WeakMap();
407 var originalMargin=new WeakMap();
408
409 var resizeTimer=0;
410 var running=false;
411
412 var THEMES=[
413 {
414 name:"BLUE",
415 accent:"#21b6d7",
416 bg:"#eaf7fb",
417 text:"#315d68",
418 labels:[
419 "HIER STARTEN",
420 "ENTSCHEIDEN",
421 "ÜBERPRÜFEN & ANPASSEN",
422 "START HERE",
423 "DECIDE",
424 "REVIEW & ADAPT"
425 ]
426 },
427 {
428 name:"RED",
429 accent:"#e94b13",
430 bg:"#fff1ec",
431 text:"#8a4d36",
432 labels:[
433 "PLANEN & ORGANISIEREN",
434 "ORGANISIEREN & DOKUMENTIEREN",
435 "PUBLIZIEREN & PRÄSENTIEREN",
436 "PLAN & ORGANISE",
437 "PLAN & ORGANIZE",
438 "ORGANISE & DOCUMENT",
439 "ORGANIZE & DOCUMENT",
440 "PUBLISH & PRESENT"
441 ]
442 },
443 {
444 name:"YELLOW",
445 accent:"#f0aa00",
446 bg:"#fff8e7",
447 text:"#785b17",
448 labels:[
449 "SCHÜTZEN & KLÄREN",
450 "STANDARDISIEREN & IDENTIFIZIEREN",
451 "ÖFFNEN, NACHNUTZEN & AUFFINDBAR MACHEN",
452 "PROTECT & CLARIFY",
453 "STANDARDISE & IDENTIFY",
454 "STANDARDIZE & IDENTIFY",
455 "OPEN, REUSE & MAKE FINDABLE"
456 ]
457 },
458 {
459 name:"GREEN",
460 accent:"#38b76a",
461 bg:"#edf9f1",
462 text:"#3f7451",
463 labels:[
464 "INFRASTRUKTUR EINRICHTEN",
465 "INFRASTRUKTUR & ZUSAMMENARBEIT EINRICHTEN",
466 "SPEICHERN & ZUGRIFF STEUERN",
467 "REPOSITORIUM, ERHALTEN & ÜBERGEBEN",
468 "SET UP INFRASTRUCTURE",
469 "SET UP INFRASTRUCTURE & COLLABORATION",
470 "STORE & CONTROL ACCESS",
471 "REPOSITORY, PRESERVE & HAND OVER"
472 ]
473 }
474 ];
475
476 function num(value){
477 var n=parseFloat(value);
478 return Number.isFinite(n)?n:0;
479 }
480
481 function norm(value){
482 return String(value||"")
483 .replace(/\s+/g," ")
484 .trim()
485 .toUpperCase();
486 }
487
488 function visible(el){
489 if(!el||el.nodeType!==1)return false;
490
491 var style=getComputedStyle(el);
492 var rect=el.getBoundingClientRect();
493
494 return (
495 style.display!=="none"&&
496 style.visibility!=="hidden"&&
497 rect.width>20&&
498 rect.height>4
499 );
500 }
501
502 function saveStyle(el,map,property){
503 if(map.has(el))return;
504
505 map.set(el,{
506 value:el.style.getPropertyValue(property),
507 priority:el.style.getPropertyPriority(property)
508 });
509 }
510
511 function restoreStyle(el,map,property){
512 var original=map.get(el);
513
514 if(original&&original.value){
515 el.style.setProperty(
516 property,
517 original.value,
518 original.priority||""
519 );
520 }else{
521 el.style.removeProperty(property);
522 }
523 }
524
525 function resetRuntime(){
526 managedHeight.forEach(function(el){
527 restoreStyle(
528 el,
529 originalHeight,
530 "min-height"
531 );
532 el.removeAttribute(
533 "data-sn-master-equal-height"
534 );
535 });
536
537 managedMargin.forEach(function(el){
538 restoreStyle(
539 el,
540 originalMargin,
541 "margin-top"
542 );
543 el.removeAttribute(
544 "data-sn-master-first-row"
545 );
546 });
547
548 managedHeight.clear();
549 managedMargin.clear();
550 }
551
552 function themeFor(text){
553 var value=norm(text);
554
555 for(var i=0;i<THEMES.length;i++){
556 for(var j=0;j<THEMES[i].labels.length;j++){
557 var label=THEMES[i].labels[j];
558
559 if(
560 value===label||
561 value.indexOf(label+" ")===0||
562 value.indexOf(label+" -")===0||
563 value.indexOf(label+" ·")===0
564 ){
565 return THEMES[i];
566 }
567 }
568 }
569
570 return null;
571 }
572
573 /* =======================================================
574 BORDERLESS FILLED RED/ORANGE CTA BUTTONS
575 ======================================================= */
576
577 function colourDistance(a,b){
578 return Math.sqrt(
579 Math.pow(a[0]-b[0],2)+
580 Math.pow(a[1]-b[1],2)+
581 Math.pow(a[2]-b[2],2)
582 );
583 }
584
585 function makeFilledRedOrangeCTAsBorderless(){
586 var RED_ORANGE=[233,75,19];
587
588 Array.from(
589 root.querySelectorAll(
590 'a,button,[role="button"],input[type="submit"],input[type="button"]'
591 )
592 ).forEach(function(el){
593 if(!visible(el))return;
594
595 var style=getComputedStyle(el);
596 var rgb=parseRGB(style.backgroundColor);
597
598 if(!rgb)return;
599
600 if(
601 colourDistance(
602 rgb,
603 RED_ORANGE
604 )>55
605 ){
606 return;
607 }
608
609 var rect=el.getBoundingClientRect();
610
611 if(
612 rect.width<80||
613 rect.height<24
614 ){
615 return;
616 }
617
618 el.style.setProperty(
619 "border",
620 "none",
621 "important"
622 );
623
624 el.style.setProperty(
625 "border-left",
626 "none",
627 "important"
628 );
629
630 el.style.setProperty(
631 "border-top",
632 "none",
633 "important"
634 );
635
636 el.style.setProperty(
637 "border-right",
638 "none",
639 "important"
640 );
641
642 el.style.setProperty(
643 "border-bottom",
644 "none",
645 "important"
646 );
647
648 el.style.setProperty(
649 "box-shadow",
650 "none",
651 "important"
652 );
653 });
654 }
655
656 /* =======================================================
657 FULL-WIDTH THREE-LINE AREA LABELS
658 ======================================================= */
659
660 function compactText(value){
661 return String(value||"")
662 .replace(/\s+/g," ")
663 .trim();
664 }
665
666 function makeThreeLineAreaLabels(){
667 Array.from(
668 root.querySelectorAll(
669 ".arsn-area-label"
670 )
671 ).forEach(function(label){
672 if(
673 label.getAttribute(
674 "data-sn-three-line"
675 )==="1"
676 ){
677 return;
678 }
679
680 var number=
681 label.querySelector(
682 ":scope > .arsn-area-number"
683 );
684
685 var action=
686 label.querySelector(
687 ":scope > .arsn-area-action"
688 );
689
690 if(
691 !number||
692 !action
693 ){
694 return;
695 }
696
697 var clone=
698 label.cloneNode(true);
699
700 var cloneNumber=
701 clone.querySelector(
702 ":scope > .arsn-area-number"
703 );
704
705 var cloneAction=
706 clone.querySelector(
707 ":scope > .arsn-area-action"
708 );
709
710 if(cloneNumber){
711 cloneNumber.remove();
712 }
713
714 if(cloneAction){
715 cloneAction.remove();
716 }
717
718 var titleText=
719 compactText(
720 clone.textContent
721 );
722
723 if(!titleText){
724 return;
725 }
726
727 var numberNode=
728 number.cloneNode(true);
729
730 var actionNode=
731 action.cloneNode(true);
732
733 var titleNode=
734 document.createElement(
735 "span"
736 );
737
738 titleNode.className=
739 "sn-area-label-title";
740
741 titleNode.textContent=
742 titleText;
743
744 while(label.firstChild){
745 label.removeChild(
746 label.firstChild
747 );
748 }
749
750 label.appendChild(
751 numberNode
752 );
753
754 label.appendChild(
755 titleNode
756 );
757
758 label.appendChild(
759 actionNode
760 );
761
762 label.setAttribute(
763 "data-sn-three-line",
764 "1"
765 );
766
767 var head=
768 label.closest(
769 ".arsn-area-head"
770 );
771
772 if(head){
773 head.style.setProperty(
774 "width",
775 "100%",
776 "important"
777 );
778
779 head.style.setProperty(
780 "max-width",
781 "100%",
782 "important"
783 );
784
785 head.style.setProperty(
786 "box-sizing",
787 "border-box",
788 "important"
789 );
790 }
791 });
792 }
793
794 /* =======================================================
795 PLACEHOLDER BADGE
796 ======================================================= */
797
798 function applyPlaceholderBadge(){
799 if(!PLACEHOLDER)return;
800
801 if(
802 document.querySelector(
803 ".sn-coming-soon-badge"
804 )
805 ){
806 return;
807 }
808
809 var title=
810 document.querySelector(
811 "#document-title"
812 )||
813 document.querySelector(
814 "h1"
815 );
816
817 if(!title)return;
818
819 var badge=
820 document.createElement(
821 "span"
822 );
823
824 badge.className=
825 "sn-coming-soon-badge";
826
827 badge.textContent=
828 PLACEHOLDER_LABEL;
829
830 badge.setAttribute(
831 "aria-label",
832 PLACEHOLDER_LABEL
833 );
834
835 title.appendChild(
836 badge
837 );
838 }
839
840 /* =======================================================
841 DETAIL PAGE OWN-ACCENT PROPAGATION
842 ======================================================= */
843
844 function parseRGB(value){
845 var match=String(value||"").match(
846 /rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i
847 );
848
849 if(!match)return null;
850
851 return [
852 Number(match[1]),
853 Number(match[2]),
854 Number(match[3])
855 ];
856 }
857
858 function distance(a,b){
859 return Math.sqrt(
860 Math.pow(a[0]-b[0],2)+
861 Math.pow(a[1]-b[1],2)+
862 Math.pow(a[2]-b[2],2)
863 );
864 }
865
866 function paletteMatch(cssColor){
867 var rgb=parseRGB(cssColor);
868
869 if(!rgb)return null;
870
871 var palette=[
872 {hex:"#21b6d7",rgb:[33,182,215]},
873 {hex:"#e94b13",rgb:[233,75,19]},
874 {hex:"#f0aa00",rgb:[240,170,0]},
875 {hex:"#38b76a",rgb:[56,183,106]}
876 ];
877
878 var best=null;
879 var bestDistance=Infinity;
880
881 palette.forEach(function(item){
882 var d=distance(rgb,item.rgb);
883
884 if(d<bestDistance){
885 best=item;
886 bestDistance=d;
887 }
888 });
889
890 return bestDistance<=30
891 ?best
892 :null;
893 }
894
895 function propagateDetailAccents(){
896 if(PAGE_KIND!=="detail")return;
897
898 Array.from(
899 root.querySelectorAll(
900 ".arsn-call,.dmp-call,.ido-call,.pp-call,"+
901 ".arsn-source,.dmp-source,.ido-source,.pp-source"
902 )
903 ).forEach(function(el){
904 if(!visible(el))return;
905
906 var style=getComputedStyle(el);
907
908 if(
909 num(style.borderTopWidth)>=2
910 ){
911 var match=
912 paletteMatch(
913 style.borderTopColor
914 );
915
916 if(match){
917 el.style.setProperty(
918 "border-left",
919 "4px solid "+match.hex,
920 "important"
921 );
922 }
923 }
924 });
925
926 // Warning families: explicit safety override.
927 Array.from(
928 root.querySelectorAll(
929 ".arsn-warn,.dmp-warn,.ido-warn,.pp-warn,"+
930 ".warn,.warning,.warningmessage,.errormessage"
931 )
932 ).forEach(function(el){
933 if(!visible(el))return;
934
935 el.style.setProperty(
936 "border-left",
937 "4px solid #e94b13",
938 "important"
939 );
940 });
941
942 // Info families: explicit orientation override.
943 Array.from(
944 root.querySelectorAll(
945 ".arsn-info,.dmp-info,.ido-info,.pp-info,.infomessage"
946 )
947 ).forEach(function(el){
948 if(!visible(el))return;
949
950 el.style.setProperty(
951 "border-left",
952 "4px solid #21b6d7",
953 "important"
954 );
955 });
956 }
957
958 /* =======================================================
959 OVERVIEW SEMANTIC THEME PALETTE
960 ======================================================= */
961
962 function smallestThemeHeaders(){
963 return Array.from(
964 root.querySelectorAll(
965 "div,span,p,strong,h3,h4,h5,h6"
966 )
967 ).filter(function(el){
968 if(!visible(el))return false;
969 if(!themeFor(el.textContent))return false;
970
971 return !Array.from(
972 el.children||[]
973 ).some(function(child){
974 return !!themeFor(
975 child.textContent
976 );
977 });
978 });
979 }
980
981 function findOverviewCard(header){
982 var node=header.parentElement;
983 var candidates=[];
984
985 while(node&&node!==root){
986 var rect=node.getBoundingClientRect();
987 var style=getComputedStyle(node);
988
989 var border=
990 num(style.borderTopWidth)+
991 num(style.borderRightWidth)+
992 num(style.borderBottomWidth)+
993 num(style.borderLeftWidth);
994
995 if(
996 rect.width>=220&&
997 rect.width<=800&&
998 rect.height>=120&&
999 border>=1
1000 ){
1001 candidates.push(node);
1002 }
1003
1004 node=node.parentElement;
1005 }
1006
1007 if(!candidates.length)return null;
1008
1009 candidates.sort(function(a,b){
1010 return (
1011 b.getBoundingClientRect().height-
1012 a.getBoundingClientRect().height
1013 );
1014 });
1015
1016 return candidates[0];
1017 }
1018
1019 function rowCandidates(link,card){
1020 var result=[];
1021 var cardRect=
1022 card.getBoundingClientRect();
1023
1024 var node=link;
1025
1026 while(node&&node!==card){
1027 if(visible(node)){
1028 var rect=
1029 node.getBoundingClientRect();
1030
1031 if(
1032 rect.height<=105&&
1033 rect.width>=
1034 cardRect.width*.50&&
1035 rect.width<=
1036 cardRect.width*1.03
1037 ){
1038 result.push(node);
1039 }
1040 }
1041
1042 node=node.parentElement;
1043 }
1044
1045 return result;
1046 }
1047
1048 function chooseOuterRow(
1049 candidates,
1050 link
1051 ){
1052 if(!candidates.length){
1053 return link;
1054 }
1055
1056 var bordered=
1057 candidates.filter(function(el){
1058 return (
1059 num(
1060 getComputedStyle(el)
1061 .borderLeftWidth
1062 )>=1
1063 );
1064 });
1065
1066 var pool=
1067 bordered.length
1068 ?bordered
1069 :candidates;
1070
1071 pool.sort(function(a,b){
1072 var ar=
1073 a.getBoundingClientRect();
1074
1075 var br=
1076 b.getBoundingClientRect();
1077
1078 return (
1079 ar.left-br.left||
1080 br.width-ar.width
1081 );
1082 });
1083
1084 return pool[0]||link;
1085 }
1086
1087 function applyOverviewPalette(){
1088 if(PAGE_KIND!=="overview"){
1089 return [];
1090 }
1091
1092 var headers=
1093 smallestThemeHeaders()
1094 .map(function(el){
1095 return {
1096 el:el,
1097 theme:
1098 themeFor(
1099 el.textContent
1100 ),
1101 card:
1102 findOverviewCard(
1103 el
1104 )
1105 };
1106 })
1107 .filter(function(row){
1108 return !!row.card;
1109 });
1110
1111 var unique=[];
1112 var seenHeaders=new Set();
1113
1114 headers.forEach(function(row){
1115 var key=
1116 row.theme.name+
1117 "|"+
1118 Math.round(
1119 row.card
1120 .getBoundingClientRect()
1121 .left
1122 )+
1123 "|"+
1124 Math.round(
1125 row.el
1126 .getBoundingClientRect()
1127 .top
1128 );
1129
1130 if(!seenHeaders.has(key)){
1131 seenHeaders.add(key);
1132 unique.push(row);
1133 }
1134 });
1135
1136 unique.forEach(function(row){
1137 var headerRect=
1138 row.el
1139 .getBoundingClientRect();
1140
1141 row.el.style.setProperty(
1142 "background",
1143 row.theme.bg,
1144 "important"
1145 );
1146
1147 row.el.style.setProperty(
1148 "color",
1149 row.theme.text,
1150 "important"
1151 );
1152
1153 row.el.style.setProperty(
1154 "text-align",
1155 "left",
1156 "important"
1157 );
1158
1159 row.el.style.setProperty(
1160 "word-spacing",
1161 "normal",
1162 "important"
1163 );
1164
1165 var later=
1166 unique
1167 .filter(function(other){
1168 return (
1169 other.card===row.card&&
1170 other.el
1171 .getBoundingClientRect()
1172 .top>
1173 headerRect.top+2
1174 );
1175 })
1176 .sort(function(a,b){
1177 return (
1178 a.el
1179 .getBoundingClientRect()
1180 .top-
1181 b.el
1182 .getBoundingClientRect()
1183 .top
1184 );
1185 });
1186
1187 var stopTop=
1188 later.length
1189 ?later[0].el
1190 .getBoundingClientRect()
1191 .top
1192 :Infinity;
1193
1194 Array.from(
1195 row.card.querySelectorAll("a")
1196 ).forEach(function(link){
1197 if(!visible(link))return;
1198
1199 var rect=
1200 link.getBoundingClientRect();
1201
1202 if(
1203 rect.top<=
1204 headerRect.bottom-2||
1205 rect.top>=
1206 stopTop-2
1207 ){
1208 return;
1209 }
1210
1211 var candidates=
1212 rowCandidates(
1213 link,
1214 row.card
1215 );
1216
1217 var target=
1218 chooseOuterRow(
1219 candidates,
1220 link
1221 );
1222
1223 candidates.forEach(function(el){
1224 el.style.setProperty(
1225 "border-left",
1226 "0 solid transparent",
1227 "important"
1228 );
1229 });
1230
1231 target.style.setProperty(
1232 "border-left",
1233 "3px solid "+
1234 row.theme.accent,
1235 "important"
1236 );
1237
1238 target.style.setProperty(
1239 "box-sizing",
1240 "border-box",
1241 "important"
1242 );
1243 });
1244 });
1245
1246 return unique;
1247 }
1248
1249 /* =======================================================
1250 OVERVIEW CARD HEIGHT + FIRST THEMATIC ROW
1251 ======================================================= */
1252
1253 function alignOverviewCards(headers){
1254 if(
1255 PAGE_KIND!=="overview"||
1256 window.innerWidth<=MOBILE_MAX
1257 ){
1258 return;
1259 }
1260
1261 var cards=[];
1262 var seen=new Set();
1263
1264 headers.forEach(function(row){
1265 if(!seen.has(row.card)){
1266 seen.add(row.card);
1267 cards.push(row.card);
1268 }
1269 });
1270
1271 if(cards.length<2){
1272 return;
1273 }
1274
1275 // Group cards by actual top position.
1276 var groups=[];
1277
1278 cards.forEach(function(card){
1279 var top=
1280 card.getBoundingClientRect().top;
1281
1282 var group=null;
1283
1284 for(var i=0;i<groups.length;i++){
1285 if(
1286 Math.abs(
1287 groups[i].top-top
1288 )<=ROW_TOLERANCE
1289 ){
1290 group=groups[i];
1291 break;
1292 }
1293 }
1294
1295 if(!group){
1296 group={
1297 top:top,
1298 cards:[]
1299 };
1300 groups.push(group);
1301 }
1302
1303 group.cards.push(card);
1304 });
1305
1306 groups.forEach(function(group){
1307 if(group.cards.length<2){
1308 return;
1309 }
1310
1311 var firstHeaders=
1312 group.cards.map(function(card){
1313 var candidates=
1314 headers
1315 .filter(function(row){
1316 return row.card===card;
1317 })
1318 .sort(function(a,b){
1319 return (
1320 a.el
1321 .getBoundingClientRect()
1322 .top-
1323 b.el
1324 .getBoundingClientRect()
1325 .top
1326 );
1327 });
1328
1329 return candidates.length
1330 ?candidates[0]
1331 :null;
1332 });
1333
1334 if(
1335 !firstHeaders.some(function(row){
1336 return !row;
1337 })
1338 ){
1339 var targetTop=
1340 Math.max.apply(
1341 Math,
1342 firstHeaders.map(function(row){
1343 return (
1344 row.el
1345 .getBoundingClientRect()
1346 .top-
1347 row.card
1348 .getBoundingClientRect()
1349 .top
1350 );
1351 })
1352 );
1353
1354 firstHeaders.forEach(function(row){
1355 var relativeTop=
1356 row.el
1357 .getBoundingClientRect()
1358 .top-
1359 row.card
1360 .getBoundingClientRect()
1361 .top;
1362
1363 var delta=
1364 targetTop-relativeTop;
1365
1366 if(delta>1){
1367 saveStyle(
1368 row.el,
1369 originalMargin,
1370 "margin-top"
1371 );
1372
1373 var current=
1374 num(
1375 getComputedStyle(
1376 row.el
1377 ).marginTop
1378 );
1379
1380 row.el.style.setProperty(
1381 "margin-top",
1382 (
1383 current+delta
1384 )+"px"
1385 );
1386
1387 row.el.setAttribute(
1388 "data-sn-master-first-row",
1389 "1"
1390 );
1391
1392 managedMargin.add(
1393 row.el
1394 );
1395 }
1396 });
1397 }
1398
1399 var maxHeight=0;
1400
1401 group.cards.forEach(function(card){
1402 maxHeight=
1403 Math.max(
1404 maxHeight,
1405 card
1406 .getBoundingClientRect()
1407 .height
1408 );
1409 });
1410
1411 maxHeight=
1412 Math.ceil(maxHeight);
1413
1414 group.cards.forEach(function(card){
1415 saveStyle(
1416 card,
1417 originalHeight,
1418 "min-height"
1419 );
1420
1421 card.style.setProperty(
1422 "min-height",
1423 maxHeight+"px"
1424 );
1425
1426 card.setAttribute(
1427 "data-sn-master-equal-height",
1428 "1"
1429 );
1430
1431 managedHeight.add(
1432 card
1433 );
1434 });
1435 });
1436 }
1437
1438 /* =======================================================
1439 DETAIL GRID EQUAL HEIGHT, DESKTOP ONLY
1440 ======================================================= */
1441
1442 function equaliseDetailGrids(){
1443 if(
1444 PAGE_KIND!=="detail"||
1445 window.innerWidth<=MOBILE_MAX
1446 ){
1447 return;
1448 }
1449
1450 var selectors=[
1451 ".arsn-grid",
1452 ".arsn-grid-2",
1453 ".arsn-grid-3",
1454 ".dmp-grid",
1455 ".ido-grid",
1456 ".pp-grid"
1457 ];
1458
1459 selectors.forEach(function(selector){
1460 Array.from(
1461 root.querySelectorAll(selector)
1462 ).forEach(function(grid){
1463 var children=
1464 Array.from(
1465 grid.children||[]
1466 ).filter(visible);
1467
1468 if(children.length<2){
1469 return;
1470 }
1471
1472 var groups=[];
1473
1474 children.forEach(function(child){
1475 var top=
1476 child
1477 .getBoundingClientRect()
1478 .top;
1479
1480 var group=null;
1481
1482 for(var i=0;i<groups.length;i++){
1483 if(
1484 Math.abs(
1485 groups[i].top-top
1486 )<=ROW_TOLERANCE
1487 ){
1488 group=groups[i];
1489 break;
1490 }
1491 }
1492
1493 if(!group){
1494 group={
1495 top:top,
1496 items:[]
1497 };
1498 groups.push(group);
1499 }
1500
1501 group.items.push(child);
1502 });
1503
1504 groups.forEach(function(group){
1505 if(group.items.length<2){
1506 return;
1507 }
1508
1509 var maxHeight=0;
1510
1511 group.items.forEach(function(item){
1512 maxHeight=
1513 Math.max(
1514 maxHeight,
1515 item
1516 .getBoundingClientRect()
1517 .height
1518 );
1519 });
1520
1521 maxHeight=
1522 Math.ceil(maxHeight);
1523
1524 group.items.forEach(function(item){
1525 saveStyle(
1526 item,
1527 originalHeight,
1528 "min-height"
1529 );
1530
1531 item.style.setProperty(
1532 "min-height",
1533 maxHeight+"px"
1534 );
1535
1536 item.setAttribute(
1537 "data-sn-master-equal-height",
1538 "1"
1539 );
1540
1541 managedHeight.add(item);
1542 });
1543 });
1544 });
1545 });
1546 }
1547
1548 /* =======================================================
1549 RUN / RESPONSIVE SCHEDULING
1550 ======================================================= */
1551
1552 function run(){
1553 if(running)return;
1554
1555 running=true;
1556
1557 try{
1558 resetRuntime();
1559 applyPlaceholderBadge();
1560 propagateDetailAccents();
1561
1562 var headers=
1563 applyOverviewPalette();
1564
1565 makeThreeLineAreaLabels();
1566 makeFilledRedOrangeCTAsBorderless();
1567
1568 if(
1569 window.innerWidth>
1570 MOBILE_MAX
1571 ){
1572 alignOverviewCards(
1573 headers
1574 );
1575
1576 equaliseDetailGrids();
1577 }
1578 }finally{
1579 running=false;
1580 }
1581 }
1582
1583 function onResize(){
1584 if(resizeTimer){
1585 clearTimeout(
1586 resizeTimer
1587 );
1588 }
1589
1590 resizeTimer=
1591 setTimeout(
1592 function(){
1593 resizeTimer=0;
1594 run();
1595 },
1596 RESIZE_DEBOUNCE
1597 );
1598 }
1599
1600 async function waitForReady(){
1601 if(
1602 document.readyState!=="complete"
1603 ){
1604 await new Promise(function(resolve){
1605 window.addEventListener(
1606 "load",
1607 resolve,
1608 {once:true}
1609 );
1610 });
1611 }
1612
1613 if(
1614 document.fonts&&
1615 document.fonts.ready
1616 ){
1617 try{
1618 await document.fonts.ready;
1619 }catch(error){}
1620 }
1621
1622 var images=
1623 Array.from(
1624 root.querySelectorAll("img")
1625 );
1626
1627 await Promise.all(
1628 images.map(function(img){
1629 if(img.complete){
1630 return Promise.resolve();
1631 }
1632
1633 return new Promise(function(resolve){
1634 var done=function(){
1635 resolve();
1636 };
1637
1638 img.addEventListener(
1639 "load",
1640 done,
1641 {once:true}
1642 );
1643
1644 img.addEventListener(
1645 "error",
1646 done,
1647 {once:true}
1648 );
1649 });
1650 })
1651 );
1652
1653 run();
1654 }
1655
1656 window.addEventListener(
1657 "resize",
1658 onResize,
1659 {passive:true}
1660 );
1661
1662 waitForReady();
1663 })();
1664 </script>
1665
1666 <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_END -->
1667 {{/html}}