Wiki source code of Plan Your Data Management

Version 4.10 by Veronika Kocher on Thursday, 03 Sep 2026 10:09

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 \n\n
261 \n\n{{html clean="false"}}
262 <!-- SN_HORIZONTAL_BOX_HARMONIZER_START -->
263
264 <style data-sn-horizontal-box-harmonizer="7">
265 /* ---------- Typography: never justify headings ---------- */
266 #xwikicontent h1,
267 #xwikicontent h2,
268 #xwikicontent h3,
269 #xwikicontent h4,
270 #xwikicontent h5,
271 #xwikicontent h6,
272 #xwikicontent .box-title,
273 #xwikicontent [role="heading"],
274 #xwikicontent h1 a,
275 #xwikicontent h2 a,
276 #xwikicontent h3 a,
277 #xwikicontent h4 a,
278 #xwikicontent h5 a,
279 #xwikicontent h6 a,
280 #xwikicontent .box-title a,
281 #xwikicontent [role="heading"] a{
282 text-align:left!important;
283 text-justify:auto!important;
284 word-spacing:normal!important;
285 }
286
287 /* ---------- Native XWiki semantic callouts ---------- */
288 #xwikicontent .box.infomessage,
289 #xwikicontent .infomessage,
290 #xwikicontent .box.warningmessage,
291 #xwikicontent .warningmessage,
292 #xwikicontent .box.successmessage,
293 #xwikicontent .successmessage,
294 #xwikicontent .box.errormessage,
295 #xwikicontent .errormessage,
296 #xwikicontent [data-sn-callout-harmonized="1"]{
297 box-sizing:border-box!important;
298 border-radius:8px!important;
299 border-top:1px solid rgba(0,0,0,.08)!important;
300 border-right:1px solid rgba(0,0,0,.08)!important;
301 border-bottom:1px solid rgba(0,0,0,.08)!important;
302 border-left:4px solid var(--sn-callout-accent,#21b6d7)!important;
303 padding:14px 16px!important;
304 text-align:left!important;
305 text-justify:auto!important;
306 word-spacing:normal!important;
307 box-shadow:none!important;
308 }
309
310 #xwikicontent .box.infomessage,
311 #xwikicontent .infomessage{
312 --sn-callout-accent:#21b6d7;
313 background:#eaf7fb!important;
314 }
315
316 #xwikicontent .box.warningmessage,
317 #xwikicontent .warningmessage{
318 --sn-callout-accent:#f0aa00;
319 background:#fff8e7!important;
320 }
321
322 #xwikicontent .box.successmessage,
323 #xwikicontent .successmessage{
324 --sn-callout-accent:#38b76a;
325 background:#edf9f1!important;
326 }
327
328 #xwikicontent .box.errormessage,
329 #xwikicontent .errormessage{
330 --sn-callout-accent:#e94b13;
331 background:#fff1ec!important;
332 }
333
334 #xwikicontent [data-sn-callout-harmonized="1"] > :first-child,
335 #xwikicontent .infomessage > :first-child,
336 #xwikicontent .warningmessage > :first-child,
337 #xwikicontent .successmessage > :first-child,
338 #xwikicontent .errormessage > :first-child{
339 margin-top:0!important;
340 }
341
342 #xwikicontent [data-sn-callout-harmonized="1"] > :last-child,
343 #xwikicontent .infomessage > :last-child,
344 #xwikicontent .warningmessage > :last-child,
345 #xwikicontent .successmessage > :last-child,
346 #xwikicontent .errormessage > :last-child{
347 margin-bottom:0!important;
348 }
349
350 #xwikicontent [data-sn-equal-height-managed],
351 #xwikicontent [data-sn-first-section-aligned],
352 #xwikicontent [data-sn-first-content-aligned]{
353 box-sizing:border-box;
354 }
355 </style>
356
357 <script data-sn-horizontal-box-harmonizer="7">
358 (function(){
359 "use strict";
360
361 var MOBILE_MAX=767;
362 var ROW_TOLERANCE=6;
363 var MIN_W=150;
364 var MIN_H=36;
365 var MAX_PARENT_CHILDREN=18;
366 var SEARCH_DEPTH=5;
367 var RESIZE_DEBOUNCE=220;
368 var MIN_WIDTH_CHANGE=2;
369
370 var root=
371 document.getElementById("xwikicontent")||
372 document.querySelector(".xwiki-rendering-content")||
373 document.querySelector("main")||
374 document.body;
375
376 if(!root)return;
377
378 var heightManaged=new Set();
379 var sectionManaged=new Set();
380 var contentManaged=new Set();
381
382 var originalMinHeight=new WeakMap();
383 var originalMarginTop=new WeakMap();
384
385 var resizeTimer=0;
386 var lastWidth=-1;
387 var hasApplied=false;
388 var applying=false;
389
390 function num(v){
391 var n=parseFloat(v);
392 return Number.isFinite(n)?n:0;
393 }
394
395 function visible(el,minW,minH){
396 if(!el||el.nodeType!==1)return false;
397
398 var s=getComputedStyle(el);
399
400 if(
401 s.display==="none"||
402 s.visibility==="hidden"||
403 Number(s.opacity)===0
404 ){
405 return false;
406 }
407
408 var r=el.getBoundingClientRect();
409
410 return (
411 r.width>=(minW||1)&&
412 r.height>=(minH||1)
413 );
414 }
415
416 function normalizeText(text){
417 return String(text||"")
418 .replace(/\s+/g," ")
419 .trim()
420 .toUpperCase();
421 }
422
423 function excluded(el){
424 return (
425 !el.matches||
426 el.matches(
427 "button,input,select,textarea,option,label,img,svg,canvas,table,thead,tbody,tfoot,tr,td,th,summary,script,style,noscript,template,.btn,.chip,[role=button]"
428 )
429 );
430 }
431
432 /* ---------- Custom coloured callouts ---------- */
433
434 function nativeCallout(el){
435 var c=
436 typeof el.className==="string"
437 ? el.className.toLowerCase()
438 : "";
439
440 return (
441 /(^|\s)(infomessage|warningmessage|successmessage|errormessage)(\s|$)/.test(c)
442 );
443 }
444
445 function customCallout(el){
446 if(!visible(el,220,42)||excluded(el))return false;
447
448 var r=el.getBoundingClientRect();
449
450 if(r.height>520)return false;
451
452 var s=getComputedStyle(el);
453
454 var bg=
455 s.backgroundColor&&
456 s.backgroundColor!=="rgba(0, 0, 0, 0)"&&
457 s.backgroundColor!=="transparent"&&
458 s.backgroundColor!=="rgb(255, 255, 255)";
459
460 var left=
461 num(s.borderLeftWidth);
462
463 return (
464 bg&&
465 left>=2
466 );
467 }
468
469 function harmoniseCustomCallouts(){
470 Array.from(
471 root.querySelectorAll(
472 "div,aside,section"
473 )
474 ).forEach(function(el){
475 if(nativeCallout(el))return;
476 if(!customCallout(el))return;
477
478 var s=getComputedStyle(el);
479
480 el.setAttribute(
481 "data-sn-callout-harmonized",
482 "1"
483 );
484
485 if(
486 s.borderLeftColor
487 ){
488 el.style.setProperty(
489 "--sn-callout-accent",
490 s.borderLeftColor
491 );
492 }
493 });
494 }
495
496 /* ---------- Restore only values V7 itself changed ---------- */
497
498 function saveOriginal(el,map,property){
499 if(map.has(el))return;
500
501 map.set(el,{
502 value:
503 el.style.getPropertyValue(
504 property
505 ),
506 priority:
507 el.style.getPropertyPriority(
508 property
509 )
510 });
511 }
512
513 function restoreOriginal(el,map,property){
514 var original=map.get(el);
515
516 if(original&&original.value){
517 el.style.setProperty(
518 property,
519 original.value,
520 original.priority||""
521 );
522 }else{
523 el.style.removeProperty(
524 property
525 );
526 }
527 }
528
529 function resetRuntime(){
530 heightManaged.forEach(function(el){
531 restoreOriginal(
532 el,
533 originalMinHeight,
534 "min-height"
535 );
536
537 el.removeAttribute(
538 "data-sn-equal-height-managed"
539 );
540 });
541
542 sectionManaged.forEach(function(el){
543 restoreOriginal(
544 el,
545 originalMarginTop,
546 "margin-top"
547 );
548
549 el.removeAttribute(
550 "data-sn-first-section-aligned"
551 );
552 });
553
554 contentManaged.forEach(function(el){
555 restoreOriginal(
556 el,
557 originalMarginTop,
558 "margin-top"
559 );
560
561 el.removeAttribute(
562 "data-sn-first-content-aligned"
563 );
564 });
565
566 heightManaged.clear();
567 sectionManaged.clear();
568 contentManaged.clear();
569 }
570
571 /* ---------- Card detection ---------- */
572
573 function namedLikeBox(el){
574 var c=
575 typeof el.className==="string"
576 ? el.className
577 : "";
578
579 return /(^|[\s_-])(box|card|tile|panel|role|check|service|source|call|area|detail|resource|topic|warn|info)([\s_-]|$)/i.test(c);
580 }
581
582 function boxLike(el){
583 if(
584 !visible(el,MIN_W,MIN_H)||
585 excluded(el)
586 ){
587 return false;
588 }
589
590 var s=getComputedStyle(el);
591 var r=el.getBoundingClientRect();
592
593 var border=
594 num(s.borderTopWidth)+
595 num(s.borderRightWidth)+
596 num(s.borderBottomWidth)+
597 num(s.borderLeftWidth);
598
599 var radius=Math.max(
600 num(s.borderTopLeftRadius),
601 num(s.borderTopRightRadius),
602 num(s.borderBottomLeftRadius),
603 num(s.borderBottomRightRadius)
604 );
605
606 var bg=
607 s.backgroundColor&&
608 s.backgroundColor!=="rgba(0, 0, 0, 0)"&&
609 s.backgroundColor!=="transparent";
610
611 var shadow=
612 s.boxShadow&&
613 s.boxShadow!=="none";
614
615 return (
616 namedLikeBox(el)||
617 border>=1||
618 (bg&&radius>=3)||
619 (shadow&&r.width>=180)
620 );
621 }
622
623 function pickTarget(child){
624 if(!visible(child,MIN_W,MIN_H))return null;
625
626 if(boxLike(child))return child;
627
628 var cr=child.getBoundingClientRect();
629 var q=[];
630
631 Array.from(child.children||[]).forEach(function(el){
632 q.push({el:el,depth:1});
633 });
634
635 var best=null;
636 var bestScore=-Infinity;
637
638 while(q.length){
639 var item=q.shift();
640 var el=item.el;
641
642 if(!visible(el,MIN_W,MIN_H))continue;
643
644 var r=el.getBoundingClientRect();
645
646 if(
647 r.width>=cr.width*.68&&
648 boxLike(el)
649 ){
650 var widthFit=
651 1-Math.min(
652 1,
653 Math.abs(cr.width-r.width)/
654 Math.max(1,cr.width)
655 );
656
657 var topFit=
658 1-Math.min(
659 1,
660 Math.abs(cr.top-r.top)/100
661 );
662
663 var score=
664 widthFit*6+
665 topFit*3+
666 Math.min(r.height,900)/450+
667 Math.min(r.width*r.height,900000)/900000;
668
669 if(score>bestScore){
670 best=el;
671 bestScore=score;
672 }
673 }
674
675 if(item.depth<SEARCH_DEPTH){
676 Array.from(el.children||[]).forEach(function(next){
677 q.push({
678 el:next,
679 depth:item.depth+1
680 });
681 });
682 }
683 }
684
685 return best;
686 }
687
688 function groupRows(entries){
689 var groups=[];
690
691 entries
692 .slice()
693 .sort(function(a,b){
694 return (
695 a.rect.top-b.rect.top||
696 a.rect.left-b.rect.left
697 );
698 })
699 .forEach(function(entry){
700 var group=null;
701
702 for(var i=0;i<groups.length;i++){
703 if(
704 Math.abs(
705 groups[i].top-
706 entry.rect.top
707 )<=ROW_TOLERANCE
708 ){
709 group=groups[i];
710 break;
711 }
712 }
713
714 if(!group){
715 group={
716 top:entry.rect.top,
717 entries:[]
718 };
719 groups.push(group);
720 }
721
722 group.entries.push(entry);
723 });
724
725 return groups;
726 }
727
728 function validRow(group){
729 if(group.entries.length<2)return false;
730
731 var lefts=
732 group.entries
733 .map(function(e){return e.rect.left;})
734 .sort(function(a,b){return a-b;});
735
736 if(
737 lefts[lefts.length-1]-
738 lefts[0]<
739 80
740 ){
741 return false;
742 }
743
744 var widths=
745 group.entries
746 .map(function(e){return e.rect.width;})
747 .filter(function(w){return w>0;});
748
749 if(widths.length<2)return false;
750
751 var minW=
752 Math.min.apply(Math,widths);
753
754 var maxW=
755 Math.max.apply(Math,widths);
756
757 return (
758 maxW/
759 Math.max(1,minW)<=
760 1.9
761 );
762 }
763
764 /* ---------- Known ARSN first section bars ---------- */
765
766 function knownBar(el){
767 var text=
768 normalizeText(
769 el.textContent
770 );
771
772 return (
773 text==="HIER STARTEN"||
774 text==="ORGANISIEREN & DOKUMENTIEREN"||
775 text==="ENTSCHEIDEN"||
776 text==="START HERE"||
777 text==="GET STARTED"||
778 text==="ORGANISE & DOCUMENT"||
779 text==="ORGANIZE & DOCUMENT"||
780 text==="DECIDE"
781 );
782 }
783
784 function findKnownBar(card){
785 var cardRect=
786 card.getBoundingClientRect();
787
788 var rows=
789 Array.from(
790 card.querySelectorAll(
791 "div,p,span,strong,h3,h4,h5,h6"
792 )
793 )
794 .filter(function(el){
795 if(!visible(el,20,6))return false;
796 if(!knownBar(el))return false;
797
798 var r=el.getBoundingClientRect();
799
800 var rel=
801 r.top-
802 cardRect.top;
803
804 return (
805 rel>=35&&
806 rel<=
807 cardRect.height*.75
808 );
809 })
810 .sort(function(a,b){
811 return (
812 a.getBoundingClientRect().top-
813 b.getBoundingClientRect().top
814 );
815 });
816
817 return rows[0]||null;
818 }
819
820 function alignKnownBars(cards){
821 var rows=
822 cards.map(function(card){
823 var bar=
824 findKnownBar(card);
825
826 if(!bar)return null;
827
828 var cr=
829 card.getBoundingClientRect();
830
831 var br=
832 bar.getBoundingClientRect();
833
834 return {
835 bar:bar,
836 relativeTop:
837 br.top-
838 cr.top
839 };
840 });
841
842 if(
843 rows.some(function(row){
844 return !row;
845 })
846 ){
847 return false;
848 }
849
850 var target=
851 Math.max.apply(
852 Math,
853 rows.map(function(row){
854 return row.relativeTop;
855 })
856 );
857
858 rows.forEach(function(row){
859 var delta=
860 target-
861 row.relativeTop;
862
863 if(delta<=1)return;
864
865 saveOriginal(
866 row.bar,
867 originalMarginTop,
868 "margin-top"
869 );
870
871 var current=
872 num(
873 getComputedStyle(
874 row.bar
875 ).marginTop
876 );
877
878 row.bar.style.setProperty(
879 "margin-top",
880 (
881 current+
882 delta
883 )+"px"
884 );
885
886 row.bar.setAttribute(
887 "data-sn-first-section-aligned",
888 "7"
889 );
890
891 sectionManaged.add(
892 row.bar
893 );
894 });
895
896 return true;
897 }
898
899 /* ---------- Generic first content after heading ---------- */
900
901 function heading(card){
902 var cr=
903 card.getBoundingClientRect();
904
905 var rows=
906 Array.from(
907 card.querySelectorAll(
908 "h1,h2,h3,h4,h5,h6,.box-title,[role=heading]"
909 )
910 )
911 .filter(function(el){
912 if(!visible(el,20,8))return false;
913
914 var r=el.getBoundingClientRect();
915
916 var rel=
917 r.top-
918 cr.top;
919
920 return (
921 rel>=0&&
922 rel<=
923 Math.min(
924 160,
925 cr.height*.45
926 )
927 );
928 })
929 .sort(function(a,b){
930 return (
931 a.getBoundingClientRect().top-
932 b.getBoundingClientRect().top
933 );
934 });
935
936 return rows[0]||null;
937 }
938
939 function firstContent(card,h){
940 if(!h)return null;
941
942 var cr=
943 card.getBoundingClientRect();
944
945 var hr=
946 h.getBoundingClientRect();
947
948 var rows=
949 Array.from(
950 card.querySelectorAll(
951 "p,div,ul,ol,dl,blockquote"
952 )
953 )
954 .filter(function(el){
955 if(
956 el===h||
957 h.contains(el)||
958 el.contains(h)
959 ){
960 return false;
961 }
962
963 if(!visible(el,30,8))return false;
964
965 var text=
966 String(el.textContent||"")
967 .replace(/\s+/g," ")
968 .trim();
969
970 if(text.length<3)return false;
971
972 var r=el.getBoundingClientRect();
973
974 if(
975 r.top<
976 hr.bottom-1
977 ){
978 return false;
979 }
980
981 if(
982 r.top-cr.top>
983 Math.min(
984 280,
985 cr.height*.65
986 )
987 ){
988 return false;
989 }
990
991 if(
992 r.height>
993 cr.height*.58
994 ){
995 return false;
996 }
997
998 return true;
999 })
1000 .sort(function(a,b){
1001 var ar=
1002 a.getBoundingClientRect();
1003
1004 var br=
1005 b.getBoundingClientRect();
1006
1007 return (
1008 ar.top-br.top||
1009 ar.height-br.height
1010 );
1011 });
1012
1013 return rows[0]||null;
1014 }
1015
1016 function alignGeneric(cards){
1017 var rows=
1018 cards.map(function(card){
1019 var h=
1020 heading(card);
1021
1022 var c=
1023 firstContent(
1024 card,
1025 h
1026 );
1027
1028 if(!h||!c)return null;
1029
1030 var cr=
1031 card.getBoundingClientRect();
1032
1033 var rr=
1034 c.getBoundingClientRect();
1035
1036 return {
1037 content:c,
1038 relativeTop:
1039 rr.top-cr.top
1040 };
1041 });
1042
1043 if(
1044 rows.some(function(row){
1045 return !row;
1046 })
1047 ){
1048 return false;
1049 }
1050
1051 var target=
1052 Math.max.apply(
1053 Math,
1054 rows.map(function(row){
1055 return row.relativeTop;
1056 })
1057 );
1058
1059 rows.forEach(function(row){
1060 var delta=
1061 target-
1062 row.relativeTop;
1063
1064 if(delta<=1)return;
1065
1066 saveOriginal(
1067 row.content,
1068 originalMarginTop,
1069 "margin-top"
1070 );
1071
1072 var current=
1073 num(
1074 getComputedStyle(
1075 row.content
1076 ).marginTop
1077 );
1078
1079 row.content.style.setProperty(
1080 "margin-top",
1081 (
1082 current+
1083 delta
1084 )+"px"
1085 );
1086
1087 row.content.setAttribute(
1088 "data-sn-first-content-aligned",
1089 "7"
1090 );
1091
1092 contentManaged.add(
1093 row.content
1094 );
1095 });
1096
1097 return true;
1098 }
1099
1100 function applyRow(group){
1101 if(!validRow(group))return false;
1102
1103 var cards=[];
1104 var seen=new Set();
1105
1106 group.entries.forEach(function(entry){
1107 if(!seen.has(entry.target)){
1108 seen.add(entry.target);
1109 cards.push(entry.target);
1110 }
1111 });
1112
1113 if(cards.length<2)return false;
1114
1115 if(
1116 !alignKnownBars(cards)
1117 ){
1118 alignGeneric(cards);
1119 }
1120
1121 var maxHeight=0;
1122
1123 cards.forEach(function(card){
1124 maxHeight=
1125 Math.max(
1126 maxHeight,
1127 card.getBoundingClientRect().height
1128 );
1129 });
1130
1131 maxHeight=
1132 Math.ceil(
1133 maxHeight
1134 );
1135
1136 if(maxHeight<MIN_H)return false;
1137
1138 cards.forEach(function(card){
1139 saveOriginal(
1140 card,
1141 originalMinHeight,
1142 "min-height"
1143 );
1144
1145 card.style.setProperty(
1146 "min-height",
1147 maxHeight+"px"
1148 );
1149
1150 card.setAttribute(
1151 "data-sn-equal-height-managed",
1152 "7"
1153 );
1154
1155 heightManaged.add(card);
1156 });
1157
1158 return true;
1159 }
1160
1161 function calculate(force){
1162 if(applying)return;
1163
1164 var width=
1165 Math.round(
1166 window.innerWidth
1167 );
1168
1169 var meaningful=
1170 lastWidth<0||
1171 Math.abs(
1172 width-
1173 lastWidth
1174 )>=
1175 MIN_WIDTH_CHANGE;
1176
1177 if(
1178 hasApplied&&
1179 !force&&
1180 !meaningful
1181 ){
1182 return;
1183 }
1184
1185 applying=true;
1186
1187 try{
1188 harmoniseCustomCallouts();
1189
1190 if(width<=MOBILE_MAX){
1191 if(hasApplied){
1192 resetRuntime();
1193 }
1194
1195 hasApplied=false;
1196 lastWidth=width;
1197 return;
1198 }
1199
1200 if(hasApplied){
1201 resetRuntime();
1202 }
1203
1204 var parents=
1205 Array.from(
1206 root.querySelectorAll("*")
1207 )
1208 .filter(function(parent){
1209 return (
1210 visible(
1211 parent,
1212 MIN_W,
1213 MIN_H
1214 )&&
1215 parent.children&&
1216 parent.children.length>=2&&
1217 parent.children.length<=
1218 MAX_PARENT_CHILDREN
1219 );
1220 });
1221
1222 var touched=
1223 new Set();
1224
1225 parents.forEach(function(parent){
1226 var entries=[];
1227
1228 Array.from(
1229 parent.children
1230 ).forEach(function(child){
1231 if(
1232 !visible(
1233 child,
1234 MIN_W,
1235 MIN_H
1236 )
1237 ){
1238 return;
1239 }
1240
1241 var target=
1242 pickTarget(child);
1243
1244 if(!target)return;
1245
1246 entries.push({
1247 target:target,
1248 rect:
1249 target.getBoundingClientRect()
1250 });
1251 });
1252
1253 groupRows(
1254 entries
1255 ).forEach(function(group){
1256 if(!validRow(group))return;
1257
1258 var targets=
1259 group.entries.map(function(entry){
1260 return entry.target;
1261 });
1262
1263 if(
1264 !targets.some(function(el){
1265 return !touched.has(el);
1266 })
1267 ){
1268 return;
1269 }
1270
1271 if(applyRow(group)){
1272 targets.forEach(function(el){
1273 touched.add(el);
1274 });
1275 }
1276 });
1277 });
1278
1279 lastWidth=width;
1280 hasApplied=true;
1281 }finally{
1282 applying=false;
1283 }
1284 }
1285
1286 function resize(){
1287 if(resizeTimer){
1288 clearTimeout(
1289 resizeTimer
1290 );
1291 }
1292
1293 resizeTimer=
1294 setTimeout(
1295 function(){
1296 resizeTimer=0;
1297 calculate(false);
1298 },
1299 RESIZE_DEBOUNCE
1300 );
1301 }
1302
1303 function waitImages(){
1304 var images=
1305 Array.from(
1306 root.querySelectorAll("img")
1307 );
1308
1309 return Promise.all(
1310 images.map(function(img){
1311 if(img.complete){
1312 return Promise.resolve();
1313 }
1314
1315 return new Promise(function(resolve){
1316 var done=function(){
1317 resolve();
1318 };
1319
1320 img.addEventListener(
1321 "load",
1322 done,
1323 {once:true}
1324 );
1325
1326 img.addEventListener(
1327 "error",
1328 done,
1329 {once:true}
1330 );
1331 });
1332 })
1333 );
1334 }
1335
1336 async function initial(){
1337 if(
1338 document.readyState!==
1339 "complete"
1340 ){
1341 await new Promise(function(resolve){
1342 addEventListener(
1343 "load",
1344 resolve,
1345 {once:true}
1346 );
1347 });
1348 }
1349
1350 if(
1351 document.fonts&&
1352 document.fonts.ready
1353 ){
1354 try{
1355 await document.fonts.ready;
1356 }catch(error){}
1357 }
1358
1359 await waitImages();
1360
1361 // Exactly one initial layout calculation.
1362 calculate(true);
1363 }
1364
1365 addEventListener(
1366 "resize",
1367 resize,
1368 {passive:true}
1369 );
1370
1371 initial();
1372 })();
1373 </script>
1374
1375 <!-- SN_HORIZONTAL_BOX_HARMONIZER_END -->
1376 {{/html}}\n