An error occurred while processing the template.
The string doesn't match the expected date/time/date-time format. The string to parse was: "1/1/56, 12:00 AM". The expected format was: "dd/MM/yyyy HH:mm".
The nested reason given follows:
Unparseable date: "1/1/56, 12:00 AM"

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign dateStart = ObjectField_produ...  [in template "22823141604726#20121#null" at line 440, column 33]
----
1<#assign 
2dlAppLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService") 
3dlURLHelper = serviceLocator.findService("com.liferay.document.library.util.DLURLHelper") 
4 
5objectEntryLocalService = serviceLocator.findService("com.liferay.object.service.ObjectEntryLocalService") 
6objectRelationshipLocalService = serviceLocator.findService("com.liferay.object.service.ObjectRelationshipLocalService") 
7objectDefinitionLocalService = serviceLocator.findService("com.liferay.object.service.ObjectDefinitionLocalService") 
8 
9/> 
10 
11<#assign summary = garance.getSummaryContent("Archive")> 
12 
13<#assign archiveID = ObjectEntry_objectEntryId.getData()?number 
14archiveEntry = objectEntryLocalService.fetchObjectEntry(archiveID?number) 
15archiveGroupID = archiveEntry.getGroupId() /> 
16 
17<#--------------------------------- Header --------------------------> 
18<#assign reproductionsRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveReproduction")> 
19<#assign reproductions = objectEntryLocalService.getManyToManyObjectEntries(archiveGroupID, reproductionsRel.objectRelationshipId, archiveID, true, reproductionsRel.isReverse(), null, -1, -1 ) /> 
20 
21<#assign reproductionsImages = []> 
22<#assign reproductionsVideos = []> 
23<#if reproductions?hasContent> 
24    <#list reproductions as reproduction> 
25        <#if reproduction.values.reproductionNature?hasContent> 
26            <#if reproduction.values.reproductionNature == "PICTURE" && reproduction.values.media?string != "0"> 
27                <#assign reproductionsImages = reproductionsImages + [reproduction]> 
28            <#elseIf reproduction.values.reproductionNature == "VIDEO"> 
29                <#assign reproductionsVideos = reproductionsVideos + [reproduction]> 
30            </#if> 
31        </#if> 
32    </#list> 
33</#if> 
34 
35<#assign thumbnail = {}> 
36<#if reproductionsImages?hasContent && (reproductionsImages?first).values.media?string != "0"> 
37    <#assign thumbnail = reproductionsImages?first /> 
38</#if> 
39 
40<#assign showMedia = (reproductionsImages?hasContent || reproductionsVideos?hasContent)> 
41 
42<#--------------------------------- Identification --------------------------> 
43<#assign dimensionsRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveDimension")> 
44<#assign dimensions = objectEntryLocalService.getOneToManyObjectEntries(archiveGroupID, dimensionsRel.objectRelationshipId, archiveID, true, null, -1, -1 ) /> 
45 
46<#assign showIdentification = ( 
47.dataModel["ObjectRelationship#C_Thesaurus#institution_label"].getData()?hasContent 
48|| (ObjectField_productionDateStart.getData()?hasContent || ObjectField_productionDateStartPrecision.getData() == "sans date") 
49|| dimensions?hasContent 
50|| ObjectField_physicalDescription.getData()?hasContent)> 
51 
52<#--------------------------------- Contexte --------------------------> 
53<#assign creatorsFull = []> 
54<#assign creatorsRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveCreator")> 
55<#assign creators = objectEntryLocalService.getManyToManyObjectEntries(archiveGroupID, creatorsRel.objectRelationshipId, archiveID, true, creatorsRel.isReverse(), null, -1, -1 ) /> 
56<#list creators as creator> 
57    <#assign creatorsFull = creatorsFull + [garance.getPersonneDisplayData(creator.objectEntryId)]> 
58</#list> 
59 
60<#assign creatorBiographiesRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveCreatorHistory")> 
61<#assign creatorBiographies = objectEntryLocalService.getOneToManyObjectEntries(archiveGroupID, creatorBiographiesRel.objectRelationshipId, archiveID, true, null, -1, -1 ) /> 
62 
63<#assign superParent = archiveEntry> 
64<#if archiveEntry.values.r_archiveChildren_c_archiveId != 0> 
65    <#assign superParent = objectEntryLocalService.fetchObjectEntry(archiveEntry.values.r_archiveChildren_c_archiveId?number)> 
66    <#assign foundParent = superParent> 
67    <#list 1..20 as i>  <#-- 100 = limite de sécurité --> 
68        <#if foundParent.values.r_archiveChildren_c_archiveId != 0> 
69            <#assign foundParent = objectEntryLocalService.fetchObjectEntry(foundParent.values.r_archiveChildren_c_archiveId?number)> 
70        <#else> 
71            <#assign superParent = foundParent> 
72            <#break> 
73        </#if> 
74    </#list> 
75</#if> 
76 
77<#assign childrenArchiveRel = objectRelationshipLocalService.getObjectRelationship(superParent.objectDefinitionId, "archiveChildren")> 
78<#assign partsArchiveRel = objectRelationshipLocalService.getObjectRelationship(superParent.objectDefinitionId, "archivePart")> 
79 
80<#function buildTree entry> 
81 
82    <#local children = objectEntryLocalService.getOneToManyObjectEntries(archiveGroupID, childrenArchiveRel.objectRelationshipId, entry.objectEntryId, true, null, -1, -1 ) /> 
83    <#local parts = objectEntryLocalService.getOneToManyObjectEntries(archiveGroupID, partsArchiveRel.objectRelationshipId, entry.objectEntryId, true, null, -1, -1 ) /> 
84 
85    <#local childrenTrees = []> 
86    <#list children as child> 
87        <#local childTree = buildTree(child)> 
88        <#local childrenTrees = childrenTrees + [childTree]> 
89    </#list> 
90 
91    <#return { 
92    "entry": entry, 
93    "children": childrenTrees, 
94    "parts": parts 
95    }> 
96</#function> 
97 
98<#assign hierarchy = buildTree(superParent)> 
99 
100<#function containsCurrentArchive node archiveID> 
101    <#if node.entry.objectEntryId == archiveID> 
102        <#return true> 
103    </#if> 
104    <#if node.children?hasContent> 
105        <#list node.children as c> 
106            <#if containsCurrentArchive(c, archiveID)> 
107                <#return true> 
108            </#if> 
109        </#list> 
110    </#if> 
111    <#return false> 
112</#function> 
113 
114<#macro renderTree node index=0> 
115    <li class="<#if node.children?hasContent || node.parts?hasContent>js-accordion </#if><#if (index > 4)>tw:hidden </#if>tw:leading-[1.625rem]" 
116        id="accordion-${node.entry.objectEntryId}"> 
117        <div class="tw:flex tw:items-center tw:gap-[0.625rem]"> 
118            <#local descriptionLevel = garance.getPicklistItemName(node.entry.values.descriptionLevel, "picklistDescriptionLevel")> 
119            <#if node.entry.objectEntryId != archiveID> 
120                <a href="/l/${node.entry.objectEntryId}" 
121                   class="tw:inline tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[0_0.125rem] tw:hover:bg-size-[100%_0.125rem]"> 
122                    ${descriptionLevel} 
123                    - ${node.entry.values.titleComplete} 
124                </a> 
125            <#else> 
126                <div class="current-archive tw:flex tw:items-center tw:gap-2"> 
127                    <span class="icon-chevron-right tw:shrink-0 tw:text-prim tw:text-[0.75rem]/[0.875rem]"></span> 
128                    <span class="tw:font-bold tw:text-prim">${descriptionLevel} - ${node.entry.values.titleComplete}</span> 
129                </div> 
130            </#if> 
131            <#if node.children?hasContent || node.parts?hasContent> 
132                <button class="tw:shrink-0 tw:group" 
133                        id="accordion-button-${node.entry.objectEntryId}" 
134                        aria-label="Ouvrir/fermer le contenu du ${descriptionLevel} ${node.entry.values.titleComplete}" 
135                        type="button" aria-expanded="false" aria-controls="collapse-${node.entry.objectEntryId}"> 
136                    <span class="icon-chevron-down tw:block tw:transition-all tw:shrink-0 tw:text-prim tw:text-[0.75rem]/[0.875rem] tw:group-hover:rotate-180 tw:group-[&[aria-expanded=true]]:rotate-180" 
137                          aria-hidden="true"></span> 
138                </button> 
139            </#if> 
140        </div> 
141        <#if node.children?hasContent || node.parts?hasContent> 
142            <#local i = 0> 
143            <div id="collapse-${node.entry.objectEntryId}" class="tw:hidden js-list-expand"> 
144                <ul class="tw:pl-5 tw:mt-2 tw:mb-5"> 
145                    <#list node.children as child> 
146                        <#if containsCurrentArchive(child, archiveID)> 
147                            <@renderTree node=child index=i/> 
148                            <#local i = i + 1> 
149                        </#if> 
150                    </#list> 
151 
152                    <#list node.children as child> 
153                        <#if !containsCurrentArchive(child, archiveID)> 
154                            <@renderTree node=child index=i/> 
155                            <#local i = i + 1> 
156                        </#if> 
157                    </#list> 
158 
159                    <#list node.parts as part> 
160                        <li <#if (i > 4)>class="tw:hidden"</#if>>${part.values.titleComplete}</li> 
161                        <#local i = (i + 1)> 
162                    </#list> 
163                </ul> 
164                <#if ((node.children?size + node.parts?size) > 5)> 
165                    <button type="button" 
166                            class="js-expand tw:items-center tw:leading-[1.75rem] tw:group tw:flex tw:gap-[0.3125rem] tw:font-semibold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]"> 
167                        <span>Voir plus</span> 
168                        <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0 
169                            tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span> 
170                    </button> 
171                </#if> 
172            </div> 
173        </#if> 
174    </li> 
175</#macro> 
176 
177 
178<#--------------------------------- Contenu et structure --------------------------> 
179 
180<#assign accrualsRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveAccrual")> 
181<#assign accruals = objectEntryLocalService.getOneToManyObjectEntries(archiveGroupID, accrualsRel.objectRelationshipId, archiveID, true, null, -1, -1 ) /> 
182 
183<#assign systemArrangementsRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveArrangement")> 
184<#assign systemArrangements = objectEntryLocalService.getOneToManyObjectEntries(archiveGroupID, systemArrangementsRel.objectRelationshipId, archiveID, true, null, -1, -1 ) /> 
185 
186<#assign authorsFull = []> 
187<#assign authorsRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveAuthor")> 
188<#assign authors = objectEntryLocalService.getOneToManyObjectEntries(archiveGroupID, authorsRel.objectRelationshipId, archiveID, true, null, -1, -1 ) /> 
189<#list authors as author> 
190    <#if author.values.r_archiveAuthorPersonne_c_transitionPersonneId?hasContent> 
191        <#assign authorsFull = authorsFull + [{ 
192        "personne": garance.getPersonneDisplayData(author.values.r_archiveAuthorPersonne_c_transitionPersonneId), 
193        "function": author.values.psoterCastFonction, 
194        "presume": author.values.creatorPresume 
195        }]> 
196    </#if> 
197</#list> 
198 
199<#assign classificationsRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveClassification")> 
200<#assign classifications = objectEntryLocalService.getOneToManyObjectEntries(archiveGroupID, classificationsRel.objectRelationshipId, archiveID, true, null, -1, -1 ) /> 
201 
202<#assign objectCatsRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveObjectCategory")> 
203<#assign objectCats = objectEntryLocalService.getManyToManyObjectEntries(archiveGroupID, objectCatsRel.objectRelationshipId, archiveID, true, objectCatsRel.isReverse(), null, -1, -1 ) /> 
204 
205<#assign linkedFilmsFull = []> 
206<#assign linkedFilmsRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveLinkedFilms")> 
207<#assign linkedFilms = objectEntryLocalService.getManyToManyObjectEntries(archiveGroupID, linkedFilmsRel.objectRelationshipId, archiveID, true, linkedFilmsRel.isReverse(), null, -1, -1 ) /> 
208<#list linkedFilms as linkedFilm> 
209    <#assign filmData = garance.getFilmDisplayData(linkedFilm)> 
210    <#if filmData?hasContent> 
211        <#assign linkedFilmsFull = linkedFilmsFull + [filmData]> 
212    </#if> 
213</#list> 
214 
215<#assign representedPersonnesRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveRepresentedPersonne")> 
216<#assign representedPersonnes = objectEntryLocalService.getManyToManyObjectEntries(archiveGroupID, representedPersonnesRel.objectRelationshipId, archiveID, true, representedPersonnesRel.isReverse(), null, -1, -1 ) /> 
217 
218<#assign subjectPersonnesRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveSubjectPersonne")> 
219<#assign subjectPersonnes = objectEntryLocalService.getManyToManyObjectEntries(archiveGroupID, subjectPersonnesRel.objectRelationshipId, archiveID, true, subjectPersonnesRel.isReverse(), null, -1, -1 ) /> 
220 
221<#assign themesRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveTheme")> 
222<#assign themes = objectEntryLocalService.getManyToManyObjectEntries(archiveGroupID, themesRel.objectRelationshipId, archiveID, true, themesRel.isReverse(), null, -1, -1 ) /> 
223 
224<#assign representationsRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveRepresentation")> 
225<#assign representations = objectEntryLocalService.getManyToManyObjectEntries(archiveGroupID, representationsRel.objectRelationshipId, archiveID, true, representationsRel.isReverse(), null, -1, -1 ) /> 
226 
227<#assign representationsSourceRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveRepresentationSource")> 
228<#assign representationsSource = objectEntryLocalService.getManyToManyObjectEntries(archiveGroupID, representationsSourceRel.objectRelationshipId, archiveID, true, representationsSourceRel.isReverse(), null, -1, -1 ) /> 
229 
230<#assign stylesRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveStyle")> 
231<#assign styles = objectEntryLocalService.getManyToManyObjectEntries(archiveGroupID, stylesRel.objectRelationshipId, archiveID, true, stylesRel.isReverse(), null, -1, -1 ) /> 
232 
233<#assign showContent = (ObjectField_contentDescription.getData()?hasContent 
234|| accruals?hasContent 
235|| systemArrangements?hasContent 
236|| authorsFull?hasContent 
237|| classifications?hasContent 
238|| objectCats?hasContent 
239|| linkedFilmsFull?hasContent 
240|| representedPersonnes?hasContent 
241|| subjectPersonnes?hasContent 
242|| themes?hasContent 
243|| representations?hasContent 
244|| representationsSource?hasContent 
245|| styles?hasContent 
246)> 
247 
248<#--------------------------------- Conditions d'accès et utilisation --------------------------> 
249 
250<#assign languesRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveLangue")> 
251<#assign langues = objectEntryLocalService.getManyToManyObjectEntries(archiveGroupID, languesRel.objectRelationshipId, archiveID, true, languesRel.isReverse(), null, -1, -1 ) /> 
252 
253<#--------------------------------- Consultation --------------------------> 
254 
255<#assign archiveConsultationRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveConsultation")> 
256<#assign archiveConsultation = objectEntryLocalService.getOneToManyObjectEntries(archiveGroupID, archiveConsultationRel.objectRelationshipId, archiveID, true, null, -1, -1 ) /> 
257<#assign archiveConsultation = archiveConsultation?filter(ac->ac.values.lieuDeConsultation != "Noncommunicable") /> 
258 
259<#assign showConsultation = (ObjectField_cote.getData()?hasContent 
260|| ObjectField_barcode.getData()?hasContent 
261|| archiveConsultation?hasContent 
262)> 
263 
264<#--------------------------------- Documents associés --------------------------> 
265 
266<#assign showDocuments = ObjectField_complementarySource.getData()?hasContent> 
267 
268<#--------------------------------- Collection --------------------------> 
269 
270<#assign relatedObjectTypesRel = objectRelationshipLocalService.getObjectRelationship(archiveEntry.objectDefinitionId, "archiveRelatedObjectTypes")> 
271<#assign relatedObjectTypes = objectEntryLocalService.getOneToManyObjectEntries(archiveGroupID, relatedObjectTypesRel.objectRelationshipId, archiveID, true, null, -1, -1 ) /> 
272<#assign relatedObjectsFull = garance.getRelatedObjects(relatedObjectTypes, archiveEntry, true)> 
273 
274<#assign showCollection = relatedObjectsFull?hasContent> 
275 
276<div class="notice notice--archive js-notice"> 
277    <div class="notice-header tw:text-white tw:pt-[3.375rem] tw:pb-[2.5rem] tw:relative tw:overflow-hidden 
278    tw:before:content-[''] tw:before:absolute tw:before:inset-0 tw:before:size-full tw:before:block tw:before:bg-text tw:before:opacity-90 
279    tw:xl:pt-[9.5rem]"> 
280        <div class="page-wrapper tw:z-0 tw:relative"> 
281            <#if request.getParameter("searchContext")?hasContent> 
282                <@garance.noticePagination request.getParameter("searchContext") archiveID /> 
283            </#if> 
284            <div class="tw:flex tw:gap-5 tw:items-start tw:flex-wrap tw:flex-col tw:z-0 
285            tw:md:flex-row tw:lg:flex-nowrap 
286            tw:xl:gap-[2.125rem]"> 
287                <div class="tw:order-2 tw:lg:order-1 tw:flex tw:flex-col tw:w-full tw:text-center 
288                    tw:md:w-fit tw:md:text-left"> 
289                    <#if ObjectField_titleComplete.getData()?hasContent> 
290                        <h1 class="tw:order-1 tw:text-prim tw:mb-[0.625rem]"> 
291                            ${[ObjectField_descriptionLevel.getData(), ObjectField_titleComplete.getData()]?filter(v->v?hasContent)?join(" - ")} 
292                        </h1> 
293                    </#if> 
294                    <#if !thumbnail?hasContent> 
295                        <p class="tw:order-0 tw:mb-5 tw:text-[0.75rem]/[1rem] tw:block tw:mx-auto tw:rounded-xs tw:w-fit tw:bg-[rgba(255,255,255,0.9)] tw:text-prim tw:uppercase tw:px-[0.625rem] tw:py-1 
296                                            tw:md:mx-0"> 
297                            Archive 
298                        </p> 
299                    </#if> 
300                </div> 
301                <#if thumbnail?hasContent> 
302                    <div class="tw:order-1 tw:lg:order-0 tw:w-full 
303                                    tw:md:w-fit"> 
304                        <div class="tw:m-auto tw:mx-auto tw:max-w-full tw:w-[15.625rem] tw:relative 
305                                        tw:md:mx-0"> 
306                            <p class="tw:absolute tw:top-[0.625rem] tw:left-[0.625rem] tw:text-[0.75rem]/[1rem] tw:block tw:rounded-xs tw:w-fit tw:bg-[rgba(255,255,255,0.9)] tw:text-prim tw:uppercase tw:px-[0.625rem] tw:py-1"> 
307                                Archive 
308                            </p> 
309                            <#assign fileEntryDesktop = dlAppLocalService.getFileEntry(thumbnail.values.media?number) /> 
310                            <#assign thumbnailURL = dlURLHelper.getPreviewURL(fileEntryDesktop, fileEntryDesktop.getFileVersion(), 
311                            null, "", 
312                            !fileEntryDesktop.getFileVersion().equals(fileEntryDesktop.getLatestFileVersion()), true) /> 
313 
314                            <figure class="tw:w-full"> 
315                                <source media="(min-width: 480px)" 
316                                        srcset="${thumbnailURL}"/> 
317                                <img class="tw:rounded-xs tw:object-cover tw:size-full" alt="" 
318                                     src="${thumbnailURL}"/> 
319                                <#if thumbnail.values.reproductionNotes?hasContent || thumbnail.values.reproductionCopyright?hasContent> 
320                                    <figcaption class="tw:ml-[0.625rem] tw:opacity-70 tw:text-[0.75rem]/[1rem] tw:font-medium tw:mt-[0.3125rem] 
321                                                    tw:md:ml-0"> 
322                                        ${[thumbnail.values.reproductionNotes, thumbnail.values.reproductionCopyright]?filter(v->v?hasContent)?join(" - ")} 
323                                    </figcaption> 
324                                </#if> 
325                            </figure> 
326                        </div> 
327                    </div> 
328                </#if> 
329                <@garance.noticeTools /> 
330            </div> 
331        </div> 
332    </div> 
333    <div class="notice-content"> 
334        <div class="tw:overflow-y-clip tw:py-10"> 
335            <div class="page-wrapper summary-ancres js-summary-ancres tw:group tw:fixed tw:w-full tw:overflow-hidden tw:h-fit tw:z-50 tw:top-[4.375rem] tw:bg-beige tw:max-lg:max-w-full! 
336                tw:lg:top-[6.875rem] tw:lg:h-0 tw:lg:overflow-visible tw:lg:sticky 
337                tw:xl:top-[8.85rem]"> 
338                <nav class="tw:bg-beige tw:lg:w-[14.25rem]" role="navigation" aria-labelledby="summary-title"> 
339                    <button id="summary-title" class="js-summary-btn tw:text-h3 tw:font-title tw:flex tw:justify-between tw:items-center tw:py-[0.625rem] tw:w-full tw:max-sm:px-[calc(2.5rem/2)] tw:focus:outline-offset-[-0.125rem] 
340                        tw:max-lg:px-[calc(5rem/2)] 
341                        tw:lg:hidden" aria-label="Ouvrir/Fermer le sommaire" aria-expanded="false" 
342                            aria-controls="summary-list"> 
343                        <span>Sommaire</span> 
344                        <span class="icon-chevron-down tw:text-prim tw:text-base tw:transition-all tw:outline-offset-[-0.125rem] 
345                        tw:group-[&.open]:rotate-180" aria-hidden="true"></span> 
346                    </button> 
347                    <div id="summary-list" class="tw:overflow-y-auto tw:bg-white tw:transition-all tw:max-sm:px-[calc(2.5rem/2)] 
348                    tw:max-lg:max-h-0 tw:max-lg:px-[calc(5rem/2)] tw:max-lg:max-w-full 
349                    tw:group-[&.open]:max-h-[calc(100vh-(4.375rem+3.125rem))] 
350                    tw:lg:max-h-[calc(100vh-12.5rem)] tw:lg:bg-transparent" tabindex="-1"> 
351                        <ul class="tw:border-sommaire-border tw:border-l-[0.125rem] tw:my-2"> 
352                            <#if showIdentification> 
353                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
354                                    <a href="#identification" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem] 
355                                tw:[&.is-active]:border-prim" tabindex="-1"> 
356                                        <span>${summary["IdentificationArchive"]?hasContent?then(summary["IdentificationArchive"], "Identification")}</span> 
357                                    </a> 
358                                </li> 
359                            </#if> 
360 
361                            <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
362                                <a href="#contexte" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem] 
363                                                            tw:[&.is-active]:border-prim" tabindex="-1"> 
364                                    <span>${summary["ContexteArchive"]?hasContent?then(summary["ContexteArchive"], "Contexte")}</span> 
365                                </a> 
366                            </li> 
367 
368                            <#if showContent> 
369                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
370                                    <a href="#content-structure" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem] 
371                                                            tw:[&.is-active]:border-prim" tabindex="-1"> 
372                                        <span>${summary["ContenuEtStructureArchive"]?hasContent?then(summary["ContenuEtStructureArchive"], "Contenu et structure")}</span> 
373                                    </a> 
374                                </li> 
375                            </#if> 
376 
377                            <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
378                                <a href="#access" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem] 
379                                                            tw:[&.is-active]:border-prim" tabindex="-1"> 
380                                    <span>${summary["ConditionsDaccesEtUtilisationArchive"]?hasContent?then(summary["ConditionsDaccesEtUtilisationArchive"], "Conditions d'accès et utilisation")}</span> 
381                                </a> 
382                            </li> 
383 
384                            <#if showConsultation> 
385                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
386                                    <a href="#consultation" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem] 
387                                                            tw:[&.is-active]:border-prim" tabindex="-1"> 
388                                        <span>${summary["ConsultationArchive"]?hasContent?then(summary["ConsultationArchive"], "Consultation")}</span> 
389                                    </a> 
390                                </li> 
391                            </#if> 
392 
393                            <#if showDocuments> 
394                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
395                                    <a href="#document" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem] 
396                                                            tw:[&.is-active]:border-prim" tabindex="-1"> 
397                                        <span>${summary["DocumentsAssociesArchive"]?hasContent?then(summary["DocumentsAssociesArchive"], "Documents associés")}</span> 
398                                    </a> 
399                                </li> 
400                            </#if> 
401                            <#if showMedia> 
402                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
403                                    <a href="#ressources" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem] 
404                                                            tw:[&.is-active]:border-prim" tabindex="-1"> 
405                                        <span>${summary["RessourcesMediaArchive"]?hasContent?then(summary["RessourcesMediaArchive"], "Ressources média")}</span> 
406                                    </a> 
407                                </li> 
408                            </#if> 
409                            <#if showCollection> 
410                                <li class="tw:py-1 tw:first:pt-0 tw:last:pb-0 tw:lg:py-[0.625rem]"> 
411                                    <a href="#collections" class="js-summary-ancres-link tw:border-l-[0.125rem] tw:border-transparent tw:block tw:py-1 tw:text-base/[1.75rem] tw:font-title tw:pl-[0.625rem] tw:relative tw:left-[-0.125rem] 
412                                                            tw:[&.is-active]:border-prim" tabindex="-1"> 
413                                        <span>${summary["CollectionsLieesArchive"]?hasContent?then(summary["CollectionsLieesArchive"], "Collections liées")}</span> 
414                                    </a> 
415                                </li> 
416                            </#if> 
417                        </ul> 
418                    </div> 
419                </nav> 
420            </div> 
421 
422            <#if showIdentification> 
423                <div id="identification" class="js-summary-content" tabindex="-1"></div> 
424                <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:pb-10"> 
425                    <h2 class="tw:text-prim tw:mb-5">${summary["IdentificationArchive"]?hasContent?then(summary["IdentificationArchive"], "Identification")}</h2> 
426 
427                    <#if .dataModel["ObjectRelationship#C_Thesaurus#institution_label"].getData()?hasContent> 
428                        <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
429                            <span class="tw:font-bold tw:shrink-0">Institution :</span> 
430                            <span>${.dataModel["ObjectRelationship#C_Thesaurus#institution_label"].getData()}</span> 
431                        </p> 
432                    </#if> 
433 
434                    <#if ObjectField_productionDateStart.getData()?hasContent || ObjectField_productionDateStartPrecision.getData() == "sans date"> 
435                        <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
436                            <span class="tw:font-bold tw:shrink-0">Année :</span> 
437                            <#if ObjectField_productionDateStartPrecision.getData() == "sans date"> 
438                                <span>Sans date</span> 
439                            <#elseIf ObjectField_productionDateStart.getData()?hasContent> 
440                                <#assign dateStart = ObjectField_productionDateStart.getData()?datetime("dd/MM/yyyy HH:mm")?string("YYYY") + (getterUtil.getBoolean(ObjectField_anneeProdPresume.getData())?then("(Présumé)", ""))> 
441                                <#if ObjectField_productionDateStartPrecision.getData() == "entre" && ObjectField_productionDateEnd.getData()?hasContent> 
442                                    <#assign dateEnd = ObjectField_productionDateEnd.getData()?datetime("dd/MM/yyyy HH:mm")?string("YYYY") + (getterUtil.getBoolean(ObjectField_productionDateEndPrecision.getData())?then("(Présumé)", ""))> 
443                                    <span>Entre ${[dateStart, dateEnd]?join(" - ")}</span> 
444                                <#else> 
445                                    <#assign dateEnd = (ObjectField_productionDateEnd.getData()?hasContent)?then(ObjectField_productionDateEnd.getData()?datetime("dd/MM/yyyy HH:mm")?string("YYYY") + (getterUtil.getBoolean(ObjectField_productionDateEndPrecision.getData())?then("(Présumé)", "")), "")> 
446                                    <span>${[dateStart, dateEnd]?filter(d -> d?hasContent)?join(" - ")}</span> 
447                                </#if> 
448                            </#if> 
449                        </p> 
450                    </#if> 
451 
452                    <#if dimensions?hasContent> 
453                        <div class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
454                            <p id="dimensions-tlt" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">Dimensions 
455                                :</p> 
456                            <ul aria-labelledby="dimensions-tlt"> 
457                                <#list dimensions as dimension> 
458                                    <li>${dimension.values.dimensionFree}</li> 
459                                </#list> 
460                            </ul> 
461                        </div> 
462                    </#if> 
463 
464                    <#if ObjectField_physicalDescription.getData()?hasContent> 
465                        <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
466                            <span class="tw:font-bold tw:shrink-0">Description physique :</span> 
467                            <span>${ObjectField_physicalDescription.getData()}</span> 
468                        </p> 
469                    </#if> 
470                </div> 
471            </#if> 
472 
473            <div id="contexte" class="js-summary-content" tabindex="-1"></div> 
474            <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10 
475                            tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40"> 
476                <h2 class="tw:text-prim tw:mb-5">${summary["ContexteArchive"]?hasContent?then(summary["ContexteArchive"], "Contexte")}</h2> 
477 
478                <#if creatorsFull?hasContent> 
479                    <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
480                        <span class="tw:font-bold tw:shrink-0">Producteur :</span> 
481                        <span><#list creatorsFull as creator> 
482                            <#if creator.id?hasContent> 
483                                <a href="/l/${creator.id}" 
484                                   class="tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.0625rem] tw:hover:bg-size-[0_0.0625rem]"> 
485                                   ${creator.name} 
486                                </a> 
487                            <#else> 
488                                ${creator.name} 
489                            </#if><#if !creator?isLast> ; </#if></#list></span> 
490                    </p> 
491                </#if> 
492 
493                <#if creatorBiographies?hasContent> 
494                    <div class="tw:mb-10 tw:mt-5"> 
495                        <h3 class="tw:mb-[0.625rem]">Biographie</h3> 
496                        <div class="js-read-more" data-clamp-line="8" data-line-height="1.625"> 
497                            <#list creatorBiographies as biographie> 
498                                <div class="wysiwyg--notice tw:mb-[0.625rem]">${biographie.values.biography}</div> 
499                            </#list> 
500                        </div> 
501                        <button type="button" 
502                                class="tw:hidden tw:items-center tw:leading-[1.75rem] tw:mt-[0.625rem] tw:group tw:gap-[0.3125rem] tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]"> 
503                            <span>Lire plus</span> 
504                            <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0 
505                                tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span> 
506                        </button> 
507                    </div> 
508                </#if> 
509 
510                <#if ObjectField_objectHistoryNote.getData()?hasContent> 
511                    <div class="tw:mb-10"> 
512                        <div class="tw:mb-[0.625rem]"> 
513                            <h3 class="tw:mb-[0.625rem]">Historique de la conservation</h3> 
514                            <div class="js-read-more" data-clamp-line="8" data-line-height="1.625"> 
515                                <div class="wysiwyg--notice"> 
516                                    ${ObjectField_objectHistoryNote.getData()} 
517                                </div> 
518                            </div> 
519                            <button type="button" 
520                                    class="tw:hidden tw:items-center tw:leading-[1.75rem] tw:mt-[0.625rem] tw:group tw:gap-[0.3125rem] tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]"> 
521                                <span>Lire plus</span> 
522                                <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0 
523                                tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span> 
524                            </button> 
525                        </div> 
526                    </div> 
527                </#if> 
528 
529                <div class="tw:bg-white tw:p-10 tw:border-l-[0.25rem] tw:border-solid tw:border-prim tw:mt-5"> 
530                    <h3 class="tw:mb-5">Structure du fonds</h3> 
531                    <ul> 
532                        <@renderTree node=hierarchy /> 
533                    </ul> 
534                </div> 
535            </div> 
536 
537 
538            <#if showContent> 
539                <div id="content-structure" class="js-summary-content" tabindex="-1"></div> 
540                <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10 
541                            tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40"> 
542                    <h2 class="tw:text-prim tw:mb-5">${summary["ContenuEtStructureArchive"]?hasContent?then(summary["ContenuEtStructureArchive"], "Contenu et structure")}</h2> 
543 
544                    <#if ObjectField_contentDescription.getData()?hasContent> 
545                        <div class="tw:flex tw:max-md:flex-col tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem] tw:[&_p]:leading-[1.375rem]!"> 
546                            <p class="tw:font-bold tw:shrink-0">Portée et contenu :</p> 
547                            <span class="tw:[&_p]:font-normal!">${ObjectField_contentDescription.getData()}</span> 
548                        </div> 
549                    </#if> 
550 
551                    <#if accruals?hasContent> 
552                        <#list accruals as accrual> 
553                            <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
554                                <span class="tw:font-bold tw:shrink-0">Accroissement :</span> 
555                                <span>${accrual.values.accruals}</span> 
556                            </p> 
557                        </#list> 
558                    </#if> 
559 
560                    <#if systemArrangements?hasContent> 
561                        <#list systemArrangements as systemArrangement> 
562                            <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
563                                <span class="tw:font-bold tw:shrink-0">Mode de classement :</span> 
564                                <span> 
565                                    <span class="js-read-more" data-clamp-line="5" data-line-height="1.375"> 
566                                        ${systemArrangement.values.arrangement} 
567                                    </span> 
568                                    <button type="button" 
569                                            class="tw:hidden tw:items-center tw:leading-[1.75rem] tw:mt-[0.625rem] tw:group tw:gap-[0.3125rem] tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]"> 
570                                        <span>Lire plus</span> 
571                                        <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0 
572                                                            tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span> 
573                                    </button> 
574                                </span> 
575                            </p> 
576                        </#list> 
577                    </#if> 
578 
579                    <#if authorsFull?hasContent> 
580                        <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
581                            <span class="tw:font-bold tw:shrink-0">Auteur(s) :</span> 
582                            <span><#list authorsFull as author> 
583                            <#if author.personne.id?hasContent> 
584                                    <a href="/l/${author.personne.id}" 
585                                       class="tw:font-bold tw:group"> 
586                                   <span class="tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.0625rem] tw:group-hover:bg-size-[0_0.0625rem]">${author.personne.name}</span> 
587                                </a> 
588                                <#else> 
589                                    ${author.personne.name} 
590                                </#if><#if author.function?hasContent> (${garance.getPicklistItemName(author.function, "picklistArchiveAuthorFunction")})</#if><#if getterUtil.getBoolean(author.presume)> (Présumé)</#if><#if !author?isLast>, </#if></#list></span> 
591                        </p> 
592                    </#if> 
593 
594                    <#if classifications?hasContent> 
595                        <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
596                            <span class="tw:font-bold tw:shrink-0">Famille / Activité :</span> 
597                            <span> 
598                                <#list classifications as classification> 
599                                    ${[(classification.values.r_archiveClassificationTypeOfFile_c_thesaurusId != 0)?then(garance.getThesaurusByID(classification.values.r_archiveClassificationTypeOfFile_c_thesaurusId), ""), (classification.values.activityType?hasContent)?then(garance.getPicklistItemName(classification.values.activityType, "picklistArchiveActivityType"), "")]?filter(v->v?hasContent)?join(" - ")}<#if !classification?isLast>, </#if> 
600                                </#list> 
601                            </span> 
602                        </p> 
603                    </#if> 
604 
605                    <#if objectCats?hasContent> 
606                        <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
607                            <span class="tw:font-bold tw:shrink-0">Type de document :</span> 
608                            <span>${objectCats?map(oc-> oc.values.label)?join(", ")}</span> 
609                        </p> 
610                    </#if> 
611 
612                    <#if linkedFilmsFull?hasContent> 
613                        <div class="tw:flex tw:flex-col tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
614                            <p id="films-tlt" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">Film(s) :</p> 
615                            <div class="wysiwyg js-list-expand"> 
616                                <ul aria-labelledby="films-tlt"> 
617                                    <#list linkedFilmsFull as linkedFilm> 
618                                        <li <#if (linkedFilm?index > 4)>class="tw:hidden"</#if>> 
619                                            <#if linkedFilm.id?hasContent> 
620                                                <a href="/l/${linkedFilm.id}" 
621                                                   class="tw:font-bold! tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]"> 
622                                                    ${linkedFilm.title} 
623                                                </a> 
624                                            <#else> 
625                                                ${linkedFilm.title} 
626                                            </#if> 
627                                            <#if linkedFilm.reals?hasContent> - 
628                                                <#list linkedFilm.reals as real> 
629                                                    <#if real.id?hasContent> 
630                                                        <a class="tw:font-bold! tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]" 
631                                                           href="/l/${real.id}"> 
632                                                            ${real.name} 
633                                                        </a> 
634                                                    <#else> 
635                                                        ${real.name} 
636                                                    </#if> 
637                                                    <#if !real?isLast>, </#if> 
638                                                </#list> 
639                                            </#if> 
640                                            <#if linkedFilm.year?hasContent> - ${linkedFilm.year}</#if> 
641                                        </li> 
642                                    </#list> 
643                                </ul> 
644                                <#if (linkedFilmsFull?size > 5)> 
645                                    <button type="button" 
646                                            class="js-expand tw:items-center tw:leading-[1.75rem] tw:group tw:flex tw:gap-[0.3125rem] tw:font-semibold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.125rem] tw:hover:bg-size-[0_0.125rem]"> 
647                                        <span>Voir plus</span> 
648                                        <span class="icon-chevron-down tw:inline-block tw:text-prim tw:text-base tw:transition-all tw:text-[0.875rem] tw:rotate-0 
649                                        tw:group-hover:rotate-180 tw:group-data-[expanded=true]:rotate-180" aria-hidden="true"></span> 
650                                    </button> 
651                                </#if> 
652                            </div> 
653                        </div> 
654                    </#if> 
655 
656                    <#if representedPersonnes?hasContent> 
657                        <#assign representedPersonnes = representedPersonnes?map(rp -> garance.getPersonneDisplayData(rp.objectEntryId))> 
658                        <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
659                            <span class="tw:font-bold tw:shrink-0">Personne(s) représentée(s) :</span> 
660                            <span><#list representedPersonnes as rp><#if rp.id?hasContent> 
661                                    <a href="/l/${rp.id}" 
662                                       class="tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.0625rem] tw:hover:bg-size-[0_0.0625rem]"> 
663                                            ${rp.name} 
664                                        </a> 
665                                <#else>${rp.name}</#if><#if !rp?isLast>, </#if> 
666                               </#list></span> 
667                        </p> 
668                    </#if> 
669 
670                    <#if subjectPersonnes?hasContent> 
671                        <#assign subjectPersonnes = subjectPersonnes?map(sp -> garance.getPersonneDisplayData(sp.objectEntryId))> 
672                        <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
673                            <span class="tw:font-bold tw:shrink-0">Personne(s) sujet :</span> 
674                            <span><#list subjectPersonnes as sp><#if sp.id?hasContent> 
675                                    <a href="/l/${sp.id}" 
676                                       class="tw:font-bold tw:transition-all tw:bg-linear-[currentcolor,currentcolor] tw:bg-no-repeat tw:bg-bottom-left tw:bg-size-[100%_0.0625rem] tw:hover:bg-size-[0_0.0625rem]"> 
677                                            ${sp.name} 
678                                        </a> 
679                                <#else>${sp.name}</#if><#if !sp?isLast>, </#if> 
680                               </#list></span> 
681                        </p> 
682                    </#if> 
683 
684                    <#if themes?hasContent> 
685                        <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
686                            <span class="tw:font-bold tw:shrink-0">Thème :</span> 
687                            <span>${themes?map(t->t.values.label)?join(", ")}</span> 
688                        </p> 
689                    </#if> 
690 
691                    <#if representations?hasContent> 
692                        <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
693                            <span class="tw:font-bold tw:shrink-0">Représentation :</span> 
694                            <span>${representations?map(r->r.values.label)?join(", ")}</span> 
695                        </p> 
696                    </#if> 
697 
698                    <#if representationsSource?hasContent> 
699                        <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
700                            <span class="tw:font-bold tw:shrink-0">Source de la représentation :</span> 
701                            <span>${representationsSource?map(rs->rs.values.label)?join(", ")}</span> 
702                        </p> 
703                    </#if> 
704 
705                    <#if styles?hasContent> 
706                        <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
707                            <span class="tw:font-bold tw:shrink-0">Époque/Style/Mouvement :</span> 
708                            <span>${styles?map(s->s.values.label)?join(", ")}</span> 
709                        </p> 
710                    </#if> 
711 
712                </div> 
713            </#if> 
714 
715            <div id="access" class="js-summary-content" tabindex="-1"></div> 
716            <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10 
717                        tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40"> 
718                <h2 class="tw:text-prim tw:mb-5">${summary["ConditionsDaccesEtUtilisationArchive"]?hasContent?then(summary["ConditionsDaccesEtUtilisationArchive"], "Conditions d'accès et utilisation")}</h2> 
719                <div class="tw:bg-white tw:flex tw:items-center tw:p-5 tw:gap-[0.625rem] tw:w-fit tw:mb-[0.625rem]"> 
720                    <span class="icon-info tw:text-prim tw:text-base tw:text-[1.125rem]" aria-hidden="true"></span> 
721                    <p class="tw:font-bold tw:leading-[1.25rem]">Toute demande de reproduction est soumise à une 
722                        autorisation 
723                        préalable</p> 
724                </div> 
725 
726                <#if langues?hasContent> 
727                    <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
728                        <span class="tw:font-bold tw:shrink-0">Langue :</span> 
729                        <span>${langues?map(l->l.values.label)?join(", ")}</span> 
730                    </p> 
731                </#if> 
732 
733                <#if ObjectField_recommendationHandling.getData()?hasContent> 
734                    <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
735                        <span class="tw:font-bold tw:shrink-0">Précautions :</span> 
736                        <span>${ObjectField_recommendationHandling.getData()}</span> 
737                    </p> 
738                </#if> 
739            </div> 
740 
741            <#if showConsultation> 
742                <div id="consultation" class="js-summary-content" tabindex="-1"></div> 
743                <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10 
744                            tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40"> 
745                    <h2 class="tw:text-prim tw:mb-5">${summary["ConsultationArchive"]?hasContent?then(summary["ConsultationArchive"], "Consultation")}</h2> 
746 
747                    <#if ObjectField_cote.getData()?hasContent> 
748                        <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
749                            <span class="tw:font-bold tw:shrink-0">Référence :</span> 
750                            <span>${ObjectField_cote.getData()}</span> 
751                        </p> 
752                    </#if> 
753 
754                    <#if ObjectField_barcode.getData()?hasContent> 
755                        <p class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
756                            <span class="tw:font-bold tw:shrink-0">Cote boîte :</span> 
757                            <span>${ObjectField_barcode.getData()}</span> 
758                        </p> 
759                    </#if> 
760 
761                    <#if archiveConsultation?hasContent> 
762                        <div class="tw:flex tw:max-md:flex-col tw:max-lg:flex-wrap tw:items-start tw:gap-[0.625rem] tw:text-notice tw:mb-[0.625rem]"> 
763                            <p id="consultation-tl" class="tw:leading-[1.375rem] tw:font-bold tw:shrink-0">Lieux de 
764                                consultation et conditions d'accès 
765                                :</p> 
766                            <ul aria-labelledby="consultation-tl"> 
767                                <#assign consultationFull = {}> 
768                                <#list archiveConsultation as consultation> 
769                                    <#assign lieu = consultation.values.lieuDeConsultation> 
770                                    <#assign acces = consultation.values.accesConditions> 
771                                    <#if consultationFull[lieu]??> 
772                                        <#if !(consultationFull[lieu]?seqContains(acces))> 
773                                            <#assign consultationFull = consultationFull + {lieu: consultationFull[lieu] + [acces]}> 
774                                        </#if> 
775                                    <#else> 
776                                        <#assign consultationFull = consultationFull + {lieu: [acces]}> 
777                                    </#if> 
778                                </#list> 
779                                <#list consultationFull as lieu, access> 
780                                    <li>${garance.getPicklistItemName(lieu, "picklistLieuDeConsultation")} - 
781                                        ${access?map(a -> garance.getPicklistItemName(a, "picklistAccesConditions"))?join(" - ")}</li> 
782                                </#list> 
783                            </ul> 
784                        </div> 
785                    </#if> 
786                </div> 
787            </#if> 
788 
789            <#if showDocuments> 
790                <div id="document" class="js-summary-content" tabindex="-1"></div> 
791                <div class="summary-content-wrapper page-wrapper tw:lg:pl-[16.75rem] tw:py-10 
792                            tw:before:content-[''] tw:before:block tw:before:relative tw:before:top-[-2.5rem] tw:before:h-[0.0625rem] tw:before:w-full tw:before:ml-auto tw:before:bg-text tw:before:opacity-40"> 
793                    <h2 class="tw:text-prim tw:mb-5">${summary["DocumentsAssociesArchive"]?hasContent?then(summary["DocumentsAssociesArchive"], "Documents associés")}</h2> 
794                    <p>${ObjectField_complementarySource.getData()}</p> 
795                </div> 
796            </#if> 
797        </div> 
798 
799        <#if showMedia> 
800            <#assign medias = []> 
801            <#if reproductionsVideos?hasContent> 
802                <#assign medias = medias + [{ 
803                "type": "video", 
804                "title": "Vidéos", 
805                "reproductions": reproductionsVideos 
806                }]> 
807            </#if> 
808            <#if reproductionsImages?hasContent> 
809                <#assign medias = medias + [{ 
810                "type": "image", 
811                "title": "Images", 
812                "reproductions": reproductionsImages 
813                }]> 
814            </#if> 
815            <div id="ressources" class="js-summary-content" tabindex="-1"></div> 
816            <div class="page-wrapper tw:py-10"> 
817                <h2 id="ressources-tl" 
818                    class="tw:text-prim tw:mb-5">${summary["RessourcesMediaArchive"]?hasContent?then(summary["RessourcesMediaArchive"], "Ressources média")}</h2> 
819                <@garance.displayMedia data=medias /> 
820            </div> 
821        </#if> 
822        <#if showCollection> 
823            <div id="collections" class="js-summary-content" tabindex="-1"></div> 
824            <div class="page-wrapper tw:py-10"> 
825                <h2 id="collections-tl" 
826                    class="tw:text-prim tw:mb-5">${summary["CollectionsLieesArchive"]?hasContent?then(summary["CollectionsLieesArchive"], "Collections liées")}</h2> 
827                <@garance.displayCollection relatedObjectsFull /> 
828            </div> 
829            <script type="module" async> 
830                import('photoswipe') 
831                import('photoswipe-lightbox') 
832            </script> 
833        </#if> 
834    </div> 
835</div>