Wiki source code of Plan Your Data Management

Version 4.12 by Veronika Kocher on Thursday, 03 Sep 2026 14:15

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