An error occurred while processing the template.
The following has evaluated to null or missing:
==> assetEntry.getAssetRenderer()  [in template "20099#20125#2604342" at line 18, column 28]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign assetRenderer = assetEntry.ge...  [in template "20099#20125#2604342" at line 18, column 3]
----
1<#setting locale="pt_BR"> 
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
3<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") /> 
4<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
5 
6<#assign currentArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) /> 
7<#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticle.getResourcePrimKey()) /> 
8<#assign eventCategories = getEventCategories(assetEntry.getCategories()) /> 
9 
10<#assign title = .vars['reserved-article-title'].data /> 
11<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
12<#assign dateFormat = "yyyy-MM-dd"> 
13 
14<#assign webContentData = jsonFactoryUtil.createJSONObject(local.getData()) /> 
15 
16<#if webContentData?? && webContentData.classPK??> 
17  <#assign assetEntry = AssetEntryLocalService.getEntry(webContentData.className, getterUtil.getLong(webContentData.classPK)) /> 
18  <#assign assetRenderer = assetEntry.getAssetRenderer() /> 
19  <#assign journalArticle = assetRenderer.getAssetObject() /> 
20</#if> 
21 
22<#assign preferences = freeMarkerPortletPreferences.getPreferences({ 
23  "portletSetupPortletDecoratorId": "borderless", 
24  "portletSetupDisplayStyle": "ddmTemplate_39869" 
25}) /> 
26 
27<#--  <#if request.getParameter("acquired")?has_content> 
28  <#assign acquired = request.getParameter("acquired") /> 
29</#if>  --> 
30 
31<#assign images_folder = themeDisplay.getPathThemeImages() /> 
32 
33<#assign classificationsImageMap = { 
34  "age18": images_folder + "/classifications/age18.svg", 
35  "age16": images_folder + "/classifications/age16.svg", 
36  "age14": images_folder + "/classifications/age14.svg", 
37  "age12": images_folder + "/classifications/age12.svg", 
38  "age10": images_folder + "/classifications/age10.svg", 
39  "everyone": images_folder + "/classifications/everyone.svg" 
40} /> 
41 
42<#assign classificationsTextMap = { 
43  "age18": "Não recomendado para menores de 18 anos", 
44  "age16": "Não recomendado para menores de 16 anos", 
45  "age14": "Não recomendado para menores de 14 anos", 
46  "age12": "Não recomendado para menores de 12 anos", 
47  "age10": "Não recomendado para menores de 10 anos", 
48  "everyone": "Classificação Livre" 
49} /> 
50 
51<#assign classification = eventClassification.getData() /> 
52 
53<div class="event"> 
54  <#if eventThumbnail.getData()?has_content && eventThumbnail.getData() != ""> 
55    <div class="card banner banner-destaque banner-full"> 
56      <div  
57        class="banner-img-wrapper lazy-image"  
58        style="background-image: url('${eventThumbnail.getData()}&imageThumbnail=2')"   
59
60        <img class="card-img" data-fileentryid="${eventThumbnail.getAttribute('fileEntryId')}" src="${eventThumbnail.getData()}" /> 
61        <div class="card-img-mask"></div> 
62      </div> 
63      <div class="card-img-overlay"> 
64        <div class="position-absolute w-100 h-100 d-flex align-items-end justify-content-center"> 
65          <div class="d-none d-lg-block c-mb-n20"> 
66            <@getActions /> 
67          </div> 
68          <div class="d-lg-none c-mb-n16"> 
69            <@getActions /> 
70          </div> 
71        </div> 
72        <div class="container h-100"> 
73          <div class="d-flex flex-column h-100"> 
74            <@liferay_portlet["runtime"] 
75              portletName="com_liferay_site_navigation_breadcrumb_web_portlet_SiteNavigationBreadcrumbPortlet" 
76              defaultPreferences="${preferences}" 
77            /> 
78          </div> 
79        </div> 
80      </div> 
81    </div> 
82  </#if> 
83 
84  <div class="container c-pt-32 c-pt-lg-5 py-5"> 
85    <div class="row gutters-24"> 
86      <div class="col-lg-8"> 
87        <div class="border-lg-bottom border-gray-ligther c-pb-0 c-pb-lg-32 c-mb-4 c-mb-lg-32"> 
88          <#if eventCategories?has_content> 
89            <div class="d-flex flex-nowrap align-items-center overflow-auto mb-3"> 
90              <#list eventCategories as category> 
91                <@getBadge category />                      
92              </#list> 
93              <#if showFreeTicketTag.getData()?has_content && showFreeTicketTag.getData()?matches("true")> 
94                <span  
95                  class="badge text-gray-dark mr-4"  
96                  style="background-color: #F7C625;" 
97
98                  <span class="badge-item badge-item-expand"> 
99                    Gratuito - Sujeito a Lotação 
100                  </span> 
101                </span> 
102              </#if> 
103            </div> 
104          </#if> 
105 
106          <h2 class="text-dark semi-bold mb-4">${title}</h2> 
107           
108          <ul class="list-unstyled"> 
109            <#if eventStartDate.getData()?has_content> 
110              <li class="d-flex align-items-center h5 text-gray-dark"> 
111                <i class="las la-clock fs-24 mr-2"></i> 
112                ${eventStartDate.getData()?datetime(dateFormat)?string["EEE, d MMM"]}  
113                <#if eventEndDate.getData()?has_content> 
114                  a ${eventEndDate.getData()?datetime(dateFormat)?string["EEE, d MMM"]} 
115                </#if> 
116                <#if eventStartHour.getData()?has_content> 
117                  • ${eventStartHour.getData()}h 
118                </#if> 
119                <#if eventEndHour.getData()?has_content> 
120                  - ${eventEndHour.getData()}h 
121                </#if> 
122              </li> 
123            </#if> 
124            <li class="d-flex align-items-center h5 text-gray-dark mt-3">  
125              <i class="las la-map-marker bold fs-24 mr-2"></i> 
126              <#if (webContentData?has_content && webContentData.classPK??)> 
127                ${webContentData.title} 
128              <#else> 
129                <#if (customLocal.getData())??> 
130                  ${customLocal.eventPlace.getData()} 
131                </#if> 
132              </#if> 
133            </li> 
134          </ul> 
135        </div> 
136         
137        <div class="d-lg-none"> 
138          <@liferay_portlet["runtime"]  
139            instanceId="event_tickets_mobile" 
140            portletName="sescportaleventticketsweb"  
141          /> 
142        </div> 
143 
144        <#if acquired?has_content && acquired?lower_case?matches("true")> 
145          <div class="c-mb-4 c-mb-lg-32"> 
146            <h4 class="text-dark semi-bold mb-3">Os ingressos foram enviados para:</h4> 
147            <p class="text-gray-dark mb-3"> 
148              Para acessar seus ingressos vá e <a class="btn btn-link d-inline-block p-0" href="${themeDisplay.getPortalURL()}/meus-ingressos">Meu Sesc > Meus Ingressos</a> no nosso site. 
149            </p> 
150            <p class="text-gray-dark"> 
151              Ao acessar meus ingressos, você poderá adicioná-lo a sua carteira ou imprimi-los.. 
152            </p> 
153          </div> 
154        <#else> 
155          <div class="c-mb-4 c-mb-lg-32"> 
156            <h4 class="text-dark semi-bold mb-3">Descrição do evento</h4> 
157            <p class="text-gray-dark text-justify"> 
158              ${eventDescription.getData()?replace("<p>", "")?replace("</p>", "")} 
159            </p> 
160          </div> 
161 
162          <#if (webContentData?has_content && webContentData.classPK??)> 
163            <@liferay_journal["journal-article"] 
164              articleId=journalArticle.getArticleId() 
165              ddmTemplateKey=journalArticle.getDDMTemplateKey() 
166              groupId=assetEntry.getGroupId() 
167            /> 
168          <#else> 
169            <@getLocation /> 
170          </#if> 
171 
172          <div class="c-mb-4 c-mb-lg-32"> 
173            <h4 class="text-dark semi-bold mb-3">Mais informações</h4> 
174             
175            <ul class="list-unstyled"> 
176              <#if instagramLink.getData()?has_content> 
177                <li> 
178                  <a  
179                    class="btn btn-link justify-content-start py-2" 
180                    href="${instagramLink.getData()}" 
181                    target="_blank" 
182
183                    <i class="lab la-instagram fs-24 mr-2"></i> 
184                    <span class="semi-bold">Instagram</span> 
185                  </a> 
186                </li> 
187              </#if> 
188 
189              <#if twitter.getData()?has_content> 
190                <li> 
191                  <a  
192                    class="btn btn-link justify-content-start py-2" 
193                    href="${twitter.getData()}" 
194                    target="_blank" 
195
196                    <svg  
197                      width="24"  
198                      height="22"  
199                      viewBox="0 0 24 22"  
200                      fill="none"  
201                      xmlns="http://www.w3.org/2000/svg" 
202
203                      <g clip-path="url(#clip0_2573_23546)"> 
204                        <path  
205                          d="M18.9014 0H22.5813L14.5415 9.18937L24 21.6937H16.5938L10.7935 14.1097L4.15636 21.6937H0.473859L9.07331 11.8648L0 0H7.5937L12.837 6.93187L18.9014 0ZM17.6097 19.4909H19.649L6.48577 2.0872H4.29764L17.6097 19.4909Z"  
206                          fill="#208BDC" 
207                        /> 
208                      </g> 
209                      <defs> 
210                        <clipPath id="clip0_2573_23546"> 
211                          <rect width="24" height="21.6937" fill="white"/> 
212                        </clipPath> 
213                      </defs> 
214                    </svg> 
215 
216                    <span class="semi-bold ml-2">X (Twitter)</span> 
217                  </a> 
218                </li> 
219              </#if> 
220 
221              <#if spotify.getData()?has_content> 
222                <li> 
223                  <a  
224                    class="btn btn-link justify-content-start py-2" 
225                    href="${spotify.getData()}" 
226                    target="_blank" 
227
228                    <i class="lab la-spotify fs-24 mr-2"></i> 
229                    <span class="semi-bold">Spotify</span> 
230                  </a> 
231                </li> 
232              </#if> 
233 
234              <#if tiktok.getData()?has_content> 
235                <li> 
236                  <a  
237                    class="btn btn-link justify-content-start py-2" 
238                    href="${tiktok.getData()}" 
239                    target="_blank" 
240
241                    <svg  
242                      width="24"  
243                      height="24"  
244                      viewBox="0 0 24 24"  
245                      fill="none"  
246                      xmlns="http://www.w3.org/2000/svg" 
247
248                      <path  
249                        d="M19.5888 6.686C18.5902 6.47238 17.6858 5.94535 17.0077 5.18175C16.3295 4.41816 15.913 3.45791 15.8188 2.441V2H12.3738V15.672C12.3717 16.2773 12.18 16.8667 11.8256 17.3574C11.4712 17.848 10.972 18.2154 10.3981 18.4077C9.82418 18.6 9.20443 18.6077 8.62593 18.4297C8.04743 18.2516 7.53927 17.8968 7.17284 17.415C6.80072 16.9252 6.5943 16.3296 6.5835 15.7145C6.57271 15.0995 6.7581 14.497 7.11281 13.9944C7.46751 13.4918 7.97307 13.1153 8.55619 12.9194C9.1393 12.7235 9.76966 12.7185 10.3558 12.905V9.405C9.04869 9.2243 7.71775 9.45669 6.54919 10.0697C5.38062 10.6826 4.43288 11.6455 3.83852 12.8237C3.24416 14.0018 3.03291 15.3363 3.23432 16.6404C3.43573 17.9445 4.03973 19.1531 4.96184 20.097C5.8412 20.9968 6.96872 21.6141 8.20049 21.8701C9.43226 22.1262 10.7124 22.0094 11.8775 21.5346C13.0426 21.0599 14.0398 20.2487 14.7418 19.2047C15.4438 18.1606 15.8188 16.9311 15.8188 15.673V8.687C17.2111 9.68234 18.8804 10.216 20.5918 10.213V6.79C20.2548 6.79042 19.9186 6.75556 19.5888 6.686Z"  
250                        fill="#208BDC" 
251                      /> 
252                    </svg> 
253                     
254                    <span class="semi-bold ml-2">Tiktok</span> 
255                  </a> 
256                </li> 
257              </#if> 
258 
259              <#if facebook.getData()?has_content> 
260                <li> 
261                  <a  
262                    class="btn btn-link justify-content-start py-2" 
263                    href="${facebook.getData()}" 
264                    target="_blank" 
265
266                    <i class="lab la-facebook-f fs-24 mr-2"></i> 
267                    <span class="semi-bold">Facebook</span> 
268                  </a> 
269                </li> 
270              </#if> 
271 
272              <#if youtube.getData()?has_content> 
273                <li> 
274                  <a  
275                    class="btn btn-link justify-content-start py-2" 
276                    href="${youtube.getData()}" 
277                    target="_blank" 
278
279                    <i class="lab la-youtube fs-24 mr-2"></i> 
280                    <span class="semi-bold">Youtube</span> 
281                  </a> 
282                </li> 
283              </#if> 
284 
285              <#if site.getData()?has_content> 
286                <li> 
287                  <a  
288                    class="btn btn-link justify-content-start py-2" 
289                    href="${site.getData()}" 
290                    target="_blank" 
291
292                    <i class="las la-link fs-24 mr-2"></i> 
293                    <span class="semi-bold">Site</span> 
294                  </a> 
295                </li> 
296              </#if> 
297 
298              <#if WhatsApp.getData()?has_content> 
299                <li> 
300                  <a  
301                    class="btn btn-link justify-content-start py-2" 
302                    href="${WhatsApp.getData()}" 
303                    target="_blank" 
304
305                    <i class="lab la-whatsapp fs-24 mr-2"></i> 
306                    <span class="semi-bold">WhatsApp</span> 
307                  </a> 
308                </li> 
309              </#if> 
310 
311              <#if classification?has_content> 
312                <li class="d-flex align-items-center py-2"> 
313                  <img src="${classificationsImageMap[classification]}" style="width: 24px; height: 24px;" /> 
314                  <p class="text-gray-dark ml-2"> 
315                    ${classificationsTextMap[classification]} 
316                  </p> 
317                </li> 
318              </#if> 
319 
320              <li class="d-flex flex-column flex-md-row align-items-md-center py-2"> 
321                <#if phone.getData()?has_content> 
322                  <span class="d-flex align-items-center mr-md-4"> 
323                    <i class="las la-phone fs-24 bold mr-2"></i> 
324                    ${phone.getData()} 
325                  </span> 
326                </#if> 
327 
328                <#if email.getData()?has_content> 
329                  <span class="d-flex align-items-center mt-3 mt-md-0"> 
330                    <i class="las la-envelope fs-24 mr-2"></i> 
331                    ${email.getData()} 
332                  </span> 
333                </#if> 
334              </li> 
335            </ul> 
336          </div> 
337        </#if> 
338 
339        <h4 class="text-dark semi-bold mb-3">Política do evento</h4> 
340         
341        <#if (eventPolicyNotice.getData()?has_content) && (eventPolicyNotice.getData()?lower_case?matches("true"))> 
342          <p class="text-gray-dark semi-bold mb-3">Atenção!</p> 
343          <p class="text-gray-dark mb-3"> 
344            A retirada do ingresso para o evento é obrigatória, mas não garante a sua entrada no mesmo. Chegue com antecedência e garanta seu lugar. Pessoas sem ingresso não poderão entrar no evento. 
345          </p> 
346        </#if> 
347 
348        <#if (ticketCancellationPolicy.getData()?has_content) && (ticketCancellationPolicy.getData()?lower_case?matches("true"))> 
349          <p class="text-gray-dark semi-bold mb-3">Cancelamento de ingresso adquirido</p> 
350           
351          <p class="text-gray-dark"> 
352            Caso desista de ir ao evento, acesse  
353            <a  
354              class="btn btn-link d-inline-block p-0"  
355              href="${themeDisplay.getPortalURL()}/group/guest/meus-ingressos" 
356
357              Meus Ingressos 
358            </a>  
359            e clique em “cancelar pedido”. O SESC agradece a sua colaboração! 
360          </p> 
361        </#if> 
362 
363        <#if getterUtil.getBoolean(AddTermsPDF.getData())> 
364          <div class="anexos pt-5"> 
365            <h4 class="text-dark semi-bold mb-3">Documentação</h4> 
366 
367            <#if (termsDocumentFolderId.getData())??> 
368              <#assign DLFolderLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFolderLocalService") /> 
369              <#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
370              <#assign classPK = getterUtil.getLong(termsDocumentFolderId.getData()) /> 
371              <#assign folder = DLFolderLocalService.getDLFolder(classPK) /> 
372              <#assign fileEntries = DLFileEntryLocalService.getFileEntries(folder.getGroupId(), folder.getFolderId())?filter(file -> !file.isInTrash()) /> 
373 
374              <#if fileEntries?has_content> 
375                <div class="list-group"> 
376                  <#list fileEntries as curFile> 
377                    <a  
378                      href="${getArticleDLEntryUrl(curFile)}"  
379                      class="list-group-item list-group-item-flex align-items-center bg-blue-50 p-4" 
380                      target="_blank" 
381
382                      <div class="autofit-col p-0"> 
383                        <div class="sticker fs-32 text-blue"> 
384                          <span class="inline-item"> 
385                            <#if curFile.getExtension() != "pdf"> 
386                              <i class="las la-file-alt"></i> 
387                            <#else> 
388                              <i class="las la-file-pdf"></i> 
389                            </#if> 
390                          </span> 
391                        </div> 
392                      </div> 
393 
394                      <div class="autofit-col px-3"> 
395                        <h4 class="text-dark semi-bold text-truncate m-0">${curFile.getTitle()}</h4> 
396                      </div> 
397                    </a> 
398                  </#list> 
399                </div> 
400              </#if> 
401            </#if> 
402 
403            <style> 
404              .list-group-item { 
405                border: 0; 
406                border-radius: 0.5rem !important; 
407                overflow: hidden; 
408
409 
410              .list-group-item:hover { 
411                text-decoration: none; 
412
413 
414              .list-group-item::before { 
415                content: ""; 
416                background: var(--blue-600); 
417                position: absolute; 
418                left: 0; 
419                width: 2px; 
420                top: 1.5rem; 
421                bottom: 1.5rem; 
422
423            </style> 
424          </div> 
425        </#if> 
426      </div> 
427 
428      <#if (ticketOption.getData())??> 
429        <div  
430          class="col-lg-4 d-none d-lg-block"  
431          data-ticket-type="${ticketOption.getData()}" 
432
433          <#if (ticketOption.getData() != "sympla")> 
434            <@liferay_portlet["runtime"]  
435              instanceId="event_tickets" 
436              portletName="sescportaleventticketsweb"  
437            /> 
438          <#else> 
439            <div class="card card-shadow-elevated rounded-lg overflow-hidden"> 
440              <div class="card-header bg-blue-900 p-3"> 
441                <h4 class="text-white semi-bold">Ingresso</h4> 
442              </div> 
443              <div class="card-body bg-white p-3"> 
444                <a  
445                  class="btn btn-primary btn-block" 
446                  href="${symplaLink.getData()}"  
447                  target="_blank"  
448
449                  Adquirir ingresso 
450                </a> 
451              </div> 
452            </div> 
453          </#if> 
454        </div> 
455      </#if> 
456    </div> 
457  </div> 
458</div> 
459 
460<#macro getLocation> 
461  <#if (customLocal.getData())??> 
462    <div class="c-mb-4 c-mb-lg-32"> 
463      <h4 class="text-dark semi-bold mb-3">Como chegar?</h4> 
464      <div class="row gutters-24"> 
465        <div class="col-md-4 mb-3 mb-lg-0"> 
466          <span class="d-block text-dark semi-bold mb-3"> 
467            ${customLocal.eventPlace.getData()} 
468          </span> 
469          ${customLocal.addressLine.getData()} ${customLocal.addressComplement.getData()} - ${customLocal.addressLocality.getData()}, ${customLocal.addressCity.getData()} - ${customLocal.addressRegion.getData()}, ${customLocal.postalCode.getData()} 
470        </div>   
471        <#if customLocal.eventMap.getData()?has_content> 
472          <div class="col-md-8"> 
473            ${customLocal.eventMap.getData()?replace('width="600"', 'width="100%"')} 
474          </div> 
475        </#if> 
476      </div> 
477    </div> 
478  </#if> 
479</#macro> 
480 
481<#macro getActions> 
482  <div class="d-flex align-items-center"> 
483    <a  
484      class="btn btn-action lfr-portal-tooltip mr-4" 
485      href="${eventThumbnail.getData()}?imageThumbnail=1" 
486      target="_blank" 
487
488      <i class="las la-expand-arrows-alt"></i> 
489    </a> 
490 
491    <button  
492      class="btn btn-action lfr-portal-tooltip mr-4" 
493      title="Favoritar" 
494      onClick="toggleFavorite(this)" 
495
496      <i class="lar la-heart"></i> 
497    </button> 
498 
499    <button class="btn btn-share lfr-portal-tooltip"> 
500      <div class="share"> 
501        <ul class="nav flex-nowrap align-items-center"> 
502          <li class="nav-item"> 
503            <a 
504              class="nav-link lfr-portal-tooltip" 
505              href="https://www.facebook.com/sharer.php?u=${currentUrl}" 
506              title="Facebook" 
507              target="_blank" 
508
509              <i class="lab la-facebook-f"></i> 
510            </a> 
511          </li> 
512 
513          <li class="nav-item"> 
514            <a  
515              class="nav-link lfr-portal-tooltip"  
516              href="https://www.instagram.com/?url=${currentUrl}" 
517              title="Instagram" 
518              target="_blank" 
519
520              <i class="lab la-instagram"></i> 
521            </a> 
522          </li> 
523 
524          <li class="nav-item"> 
525            <a  
526              class="nav-link lfr-portal-tooltip"  
527              href="https://www.linkedin.com/shareArticle?mini=true&url=${currentUrl}&title=${title}" 
528              title="LinkedIn" 
529              target="_blank" 
530
531              <i class="lab la-linkedin-in"></i> 
532            </a> 
533          </li> 
534 
535          <li class="nav-item"> 
536            <a  
537              class="nav-link lfr-portal-tooltip"  
538              href="http://twitter.com/intent/tweet?text=${title}%0AVeja%20mais%20em:&url=${currentUrl}" 
539              title="Twitter" 
540              target="_blank" 
541
542              <i class="lab la-twitter"></i> 
543            </a> 
544          </li> 
545 
546          <li class="nav-item"> 
547            <span  
548              class="btn nav-link lfr-portal-tooltip"  
549              title="Copiar link" 
550              onClick="copyToClipboard('${currentUrl}')" 
551
552              <i class="las la-link"></i> 
553            </span> 
554          </li> 
555        </ul> 
556      </div> 
557      <i class="las la-share"></i> 
558    </button> 
559  </div> 
560 
561  <script> 
562    function toggleFavorite(favorite) { 
563      const favoriteIcon = favorite.querySelector('i'); 
564       
565      if (favorite.classList.contains('active')) { 
566        favorite.classList.remove('active'); 
567        favoriteIcon.classList.remove('las'); 
568        favoriteIcon.classList.add('lar'); 
569        favorite.setAttribute('title', 'Favoritar'); 
570      } else { 
571        favorite.classList.add('active'); 
572        favoriteIcon.classList.remove('lar'); 
573        favoriteIcon.classList.add('las'); 
574        favorite.setAttribute('title', 'Desfavoritar'); 
575
576
577 
578    function copyToClipboard(text) { 
579      navigator.clipboard.writeText(text); 
580      Liferay.Util.openAlert({ 
581        title: "Link copiado com sucesso!", 
582        placement: "top-center", 
583      }); 
584
585  </script> 
586</#macro> 
587 
588<#macro getBadge category>  
589  <#assign categoryId = category.getCategoryId() /> 
590  <#assign categoryColorProperty = getCategoryProperty(categoryId, 'color') /> 
591  <#assign categoryColor = "#" + categoryColorProperty?has_content?then(categoryColorProperty.getValue(), "208bdc") /> 
592 
593  <span  
594    class="badge text-white mr-4"  
595    style="background-color: ${categoryColor}" 
596
597    <span class="badge-item badge-item-expand"> 
598      ${category.getName()} 
599    </span> 
600  </span> 
601</#macro> 
602 
603<#function getEventCategories categories> 
604  <#assign categoryList = [] /> 
605   
606  <#if categories?has_content> 
607    <#list categories as category> 
608      <#assign vocabulary = assetVocabularyLocalService.getVocabulary(category.vocabularyId) /> 
609 
610      <#if vocabulary.getName()?lower_case == "eventos"> 
611        <#assign categoryList = categoryList + [category] /> 
612      <#elseif vocabulary.getName()?lower_case == "unidades"> 
613        <#assign categoryList = categoryList + [category] /> 
614      </#if> 
615    </#list> 
616  </#if> 
617 
618  <#return categoryList /> 
619</#function> 
620 
621<#function getCategoryProperty categoryId key> 
622  <#local assetCategoryPropertyLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") /> 
623  <#local assetCategoryProperties = assetCategoryPropertyLocalService.getCategoryProperties(categoryId) /> 
624  <#local assetCategoryProperty = "" /> 
625 
626  <#if assetCategoryProperties?has_content> 
627    <#list assetCategoryProperties as curAssetCategoryProperty> 
628      <#if curAssetCategoryProperty.getKey()?lower_case == key?lower_case> 
629        <#local assetCategoryProperty = curAssetCategoryProperty> 
630      </#if> 
631    </#list> 
632  </#if>  
633 
634  <#return assetCategoryProperty> 
635</#function> 
636 
637<#function getArticleDLEntryUrl xmlValue> 
638  <#local docUrl = "" /> 
639 
640  <#if xmlValue?has_content> 
641    <#local jsonObject = xmlValue /> 
642    <#local entryUuid = jsonObject.uuid /> 
643    <#assign entryGroupId = getterUtil.getLong(jsonObject.groupId) /> 
644    <#local dlFileEntry = DLFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid, entryGroupId) /> 
645    <#local assetEntry = AssetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry", dlFileEntry.fileEntryId) /> 
646    <#if assetEntry.assetRenderer?has_content && assetEntry.assetRenderer??> 
647      <#local assetRenderer = assetEntry.assetRenderer /> 
648      <#local docUrl = assetRenderer.getURLDownload(themeDisplay) /> 
649    <#else> 
650      <#local docUrl = "#" /> 
651    </#if> 
652  </#if> 
653 
654  <#return docUrl?remove_ending("&download=true") /> 
655</#function>