Título

Link do botão
Ícone do botão Button Label
Ícone de carregamento
Um inesperado erro ocorreu.
Tipo
Ordenar
Categoria
Categoria
Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing:
==> categoryDates.parentTaxonomyVocabulary  [in template "20099#20135#11049244" at line 84, column 6]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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: #if categoryDates.parentTaxonomyVocab...  [in template "20099#20135#11049244" at line 84, column 1]
----
1<#-- 
2Widget templates can be used to modify the look of a 
3specific application. 
4 
5Please use the right panel to quickly add commonly used variables. 
6Autocomplete is also available and can be invoked by typing "${". 
7--> 
8 
9<#-- Conteúdo Web -> Templates: Funções gerais --> 
10<#include "${templatesPath}/1975398" /> 
11	 
12<#-- Conteúdo Web -> Templates: Busca pelas imagens do tipo de noticia --> 
13<#include "${templatesPath}/18598756" /> 
14	 
15<#assign POST_TYPES_CATEGORIES = getPostTypeImages()!default([]) /> 
16 
17<#-- Nome das midias adaptativas de imagem para desktop e mobile --> 
18<#assign adaptativeMediaDesktopResolutionName = "Preview-1000x0" /> 
19<#assign adaptativeMediaMobileResolutionName = "Thumbnail-300x300" /> 
20 
21 
22<#-- Liferay Services --> 
23<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
24<#assign fileEntryService = staticUtil["com.liferay.document.library.kernel.service.DLFileEntryLocalServiceUtil"] /> 
25<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
26<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
27<#assign assetVocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService") /> 
28<#assign assetCategoryPropService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") /> 
29<#assign layout = layoutLocalService.getLayout(themeDisplay.getPlid())> 
30<#assign vocabularies = assetVocabularyService.getGroupVocabularies(groupId) /> 
31 
32<#assign ourEnergyVocabulary = findVocabulary("Nossa Energia", vocabularies)/> 
33<#assign typeOfNewsVocabulary = findVocabulary("Tipo de Notícia", vocabularies )/> 
34<#assign typeOfNewsVocabularyId = 10720340 /> 
35	 
36	 
37<#assign contentNumber =  randomNumber(4586) /> 
38 
39<#assign folderId = "18598813"/> 
40 
41<#assign category = "" /> 
42<#assign categoryName = "" > 
43<#if locale?lower_case == 'pt_br'> 
44	<#assign categoryName = "Todos" > 
45<#else> 
46	<#assign categoryName = "All" > 
47</#if> 
48 
49<#if request.getParameter("category")?? && request.getParameter("category")?has_content> 
50    <#assign categoryId = request.getParameter("category")?number> 
51    <#if categoryId?? && categoryId?has_content> 
52        <#assign category = assetCategoryLocalService.getCategory(categoryId) /> 
53        <#assign categoryName = category.getTitle(locale) /> 
54    </#if> 
55</#if> 
56 
57<#if categoryId?? && categoryId?has_content> 
58    <#attempt> 
59            <#assign categoryDates = restClient.get("/headless-admin-taxonomy/v1.0/taxonomy-categories/${categoryId}")> 
60            <#recover> 
61                <#assign categoryDates = {  "name": "", "description": "<p></p>", "parentTaxonomyVocabulary" : {"name": ""}}> 
62    </#attempt> 
63<#else> 
64    <#assign categoryDates = {  "name": "", "description": "<p></p>", "parentTaxonomyVocabulary" : {"name": ""}}> 
65</#if> 
66 
67 
68<#assign categoryPage = getFirstCategoryOfVocabularyInPage(layout, ourEnergyVocabulary) /> 
69<#if categoryPage?? && categoryPage?has_content> 
70    <#assign categoryName = categoryPage.getTitle(locale) /> 
71    <#assign categoryId = categoryPage.getCategoryId() /> 
72    <#assign category = categoryPage /> 
73    <script> 
74        if (!window.location.search.includes('category') && !document.body.classList.contains("has-edit-mode-menu")) { 
75            // Redirecionar para uma nova URL 
76            const urlPage = new URL(window.location.href);           
77            urlPage.searchParams.set('sort', "createDate-"); 
78            urlPage.searchParams.set('category', "${categoryId}"); 
79            window.location.href = urlPage.toString(); 
80
81    </script> 
82</#if> 
83 
84<#if categoryDates.parentTaxonomyVocabulary.name="Nossa Energia"> 
85    <#attempt> 
86        <#assign ourEnergyStyles = [] /> 
87        <#assign shadowColorCategory = "" /> 
88        <#if (assetCategoryPropService.fetchCategoryProperty(category.getCategoryId(),"Cor da Sombra")??)> 
89            <#assign categoryShadowColorByService = assetCategoryPropService.fetchCategoryProperty(category.getCategoryId(),"Cor da Sombra") /> 
90            <#assign shadowColorCategory = categoryShadowColorByService.value /> 
91        </#if> 
92 
93        <#assign backgroundColorCategory = "" /> 
94        <#if (assetCategoryPropService.fetchCategoryProperty(category.getCategoryId(),"Cor de Fundo")??)> 
95            <#assign categoryBackgroundColorByService = assetCategoryPropService.fetchCategoryProperty(category.getCategoryId(),"Cor de Fundo") /> 
96            <#assign backgroundColorCategory = categoryBackgroundColorByService.value /> 
97        </#if> 
98 
99        <#assign textColorCategory = "" /> 
100        <#if (assetCategoryPropService.fetchCategoryProperty(category.getCategoryId(),"Cor do Texto")??)> 
101            <#assign categoryTextColorByService = assetCategoryPropService.fetchCategoryProperty(category.getCategoryId(),"Cor do Texto") /> 
102            <#assign textColorCategory = categoryTextColorByService.value /> 
103        </#if> 
104 
105        <#assign textColorHighContrastCategory = "" /> 
106        <#if (assetCategoryPropService.fetchCategoryProperty(category.getCategoryId(),"Cor do Texto em Alto Contraste")??)> 
107            <#assign categoryTextColorHighContrastByService = assetCategoryPropService.fetchCategoryProperty(category.getCategoryId(),"Cor do Texto em Alto Contraste") /> 
108            <#assign textColorHighContrastCategory = categoryTextColorHighContrastByService.value /> 
109        </#if> 
110 
111        <#assign ourEnergyStyles = [{"titleLocale": category.getTitle(locale),"shadowColor": shadowColorCategory, "backgroundColor": backgroundColorCategory, "textColor": textColorCategory, "textColorHighContrast": textColorHighContrastCategory}] /> 
112 
113        <#recover> 
114            <#assign ourEnergyStyles = [{"titleLocale": "Nenhum", "shadowColor": "000", "backgroundColor": "000", "textColor": "FFF", "textColorHighContrast": "FFF"}] /> 
115 
116    </#attempt> 
117</#if> 
118 
119 
120<#-- Root Css -> Para poder instanciar dois elementos e não dar confusão no JS --> 
121<#assign rootCss = "results-list-category-container_" + randomNumber(4586) /> 
122 
123<#-- Função para obter a primeira categoria associonada a um Vocabulário o qual está associado a um Jornal Article --> 
124<#function getFirstCategoryOfVocabulary journalArticle vocabulary > 
125    <#attempt> 
126        <#assign categories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getClassPK()) /> 
127         
128        <#list categories as category> 
129            <#if vocabulary.getVocabularyId() == category.getVocabularyId()> 
130                <#return category.getTitle(locale)> 
131            </#if> 
132        </#list> 
133 
134        <#return ""> 
135 
136        <#recover> 
137            <#return "" /> 
138    </#attempt> 
139 
140</#function> 
141 
142<#function getFirstCategoryOfVocabularyInPage layout vocabulary > 
143    <#attempt> 
144        <#assign categories = assetCategoryLocalService.getCategories("com.liferay.portal.kernel.model.Layout", layout.getPlid()) /> 
145         
146        <#list categories as category> 
147            <#if vocabulary.getVocabularyId() == category.getVocabularyId()> 
148                <#return category> 
149            </#if> 
150        </#list> 
151 
152        <#return ""> 
153 
154        <#recover> 
155            <#return "" /> 
156    </#attempt> 
157 
158</#function> 
159 
160 
161<#assign countCategoriesDates = 0 /> 
162<#assign categoriesRestInfo = [] /> 
163 
164<#function getCategoriesDates > 
165 
166    <#attempt> 
167        <#assign countCategoriesDates = countCategoriesDates + 1 /> 
168 
169        <#assign journalArticle = journalArticleLocalService.getLatestArticle(entries[0].getClassPK()) /> 
170        <#assign ddmStructure = journalArticle.getDDMStructure() /> 
171        <#assign highlightsRestDates = restClient.get("/headless-delivery/v1.0/content-structures/10700214/structured-contents?fields=contentFields%2CfriendlyUrlPath%2Cid%2Ckey%2CtaxonomyCategoryBriefs%2Ctitle&page=${countCategoriesDates}&pageSize=10&search=%3CtaxonomyCategoryName%3E${categoryName}%3C%2FtaxonomyCategoryName%3E&sort=dateCreated%3Adesc") /> 
172 
173        <#list highlightsRestDates.items as item> 
174            <#list item.taxonomyCategoryBriefs as category> 
175                <#if category.taxonomyCategoryId == categoryId> 
176                    <#assign categoriesRestInfo += [item] > 
177                </#if> 
178            </#list> 
179            <#if categoriesRestInfo?size gte 3> 
180                <#return categoriesRestInfo /> 
181            </#if> 
182 
183        </#list> 
184 
185        <#if categoriesRestInfo?size lt 3>  
186            <#call getCategoriesDates() /> 
187        <#else> 
188            <#return categoriesRestInfo /> 
189        </#if> 
190 
191        <#recover> 
192            <#return categoriesRestInfo /> 
193    </#attempt> 
194 
195</#function> 
196 
197<#attempt> 
198        <#assign categoryDates = restClient.get("/headless-admin-taxonomy/v1.0/taxonomy-categories/${categoryId}")> 
199        <#recover> 
200            <#assign categoryDates = {  "name": "", "description": "<p></p>", "parentTaxonomyVocabulary" : {"name": ""}}> 
201</#attempt> 
202 
203 
204<#function getCategoriesImages > 
205 <#attempt> 
206        <#--  Image Banner  --> 
207        <#assign categoryImageDates = restClient.get("/headless-delivery/v1.0/document-folders/${folderId}/documents?search=${categoryName}&sort=dateCreated%3Adesc")> 
208        <#if categoryImageDates?has_content >  
209            <#assign categoriesImagesInfo = categoryImageDates.items[0]> 
210        <#else> 
211            <#assign categoriesImagesInfo =  { "contentUrl": "", "id": "0" } > 
212        </#if> 
213    
214        <#return categoriesImagesInfo /> 
215 
216        <#recover> 
217            <#assign categoriesImagesInfo =  { "contentUrl": "", "id": "0" }  > 
218            <#return categoriesImagesInfo /> 
219    </#attempt> 
220 
221</#function> 
222 
223 
224 
225<#if categoryDates.parentTaxonomyVocabulary.name="Nossa Energia"> 
226    
227    <#assign highlightsDates = getCategoriesDates() /> 
228    <#assign categoryImage = getCategoriesImages() /> 
229 
230</#if> 
231 
232<#-- Função para obter os dados de um card no Web Content (Journal Article) --> 
233<#function getDataForCard entry > 
234    <#attempt> 
235        <#assign journalArticle = journalArticleLocalService.getLatestArticle(entry.getClassPK()) /> 
236        <#assign ddmStructure = journalArticle.getDDMStructure() /> 
237        <#assign fieldList = getFieldListByStructure(ddmStructure) /> 
238        <#assign xmlArticle = journalArticle.getDocument().getRootElement() /> 
239 
240        <#-- Tentando pegar Imagem --> 
241        <#assign mediasGroup = getNodes(getIdFromFieldName(fieldList, "Mídia de destaque da notícia"), xmlArticle) /> 
242        <#assign media = "" /> 
243        <#list mediasGroup as mediaGroup > 
244            <#assign media = getMediaInfo(fieldList, mediaGroup, "Imagem Destaque", fileEntryService) /> 
245 
246            <#assign fileDataRequest = restClient.get("/headless-delivery/v1.0/documents/${media.fileEntryId}") /> 
247 
248            <#assign urlAdaptativeMediaDesktop = ""/> 
249            <#assign urlAdaptativeMediaMobile = ""/> 
250            <#if media.url?? && media.url?has_content > 
251                <#assign dataAdaptativeMedia = fileDataRequest.adaptedImages /> 
252                <#list dataAdaptativeMedia as data> 
253                    <#if data.resolutionName == adaptativeMediaDesktopResolutionName> 
254                        <#assign urlAdaptativeMediaDesktop = data.contentUrl/> 
255                    </#if>    
256                    <#if data.resolutionName == adaptativeMediaMobileResolutionName> 
257                        <#assign urlAdaptativeMediaMobile = data.contentUrl/> 
258                    </#if>      
259                </#list> 
260            </#if> 
261 
262            <#assign media = {"imageSrc": media.url, "imageAlt": media.alt, "imageFileEntryId": media.fileEntryId, "urlAdaptativeMedia": {"desktop": urlAdaptativeMediaDesktop, "mobile": urlAdaptativeMediaMobile}} />  
263             
264            <#-- Se não tiver imagem, tentar pegar vídeo --> 
265            <#if !media.imageSrc?? || !media.imageSrc?has_content>               
266                <#assign youtubeID = getFieldValue(fieldList, mediaGroup, "ID do vídeo do YouTube do vídeo de destaque") /> 
267                <#if youtubeID?? && youtubeID?has_content>  
268                    <#assign media = {"videoYotubeID": youtubeID} /> 
269                <#else> 
270                    <#-- Tentar pegar vídeo Interno --> 
271                    <#assign internalVideo = getMediaInfo(fieldList, mediaGroup, "Fazer upload de um vídeo de destaque", fileEntryService) /> 
272                    <#if internalVideo?? && internalVideo?has_content> 
273                        <#assign media = {"internalVideo": internalVideo} /> 
274                    </#if> 
275                </#if>          
276            </#if> 
277        </#list> 
278 
279        <#assign title = getFieldValue(fieldList, xmlArticle, "Título de destaque da notícia") /> 
280 
281        <#assign timeRead = getFieldValue(fieldList, xmlArticle, "Tempo de Leitura") /> 
282         
283        <#assign typeOfNews = getFirstCategoryOfVocabulary(entry, typeOfNewsVocabulary) /> 
284 
285        <#assign ourEnergy = getFirstCategoryOfVocabulary(entry, ourEnergyVocabulary) /> 
286         
287				<#if themeDisplay.getPortalURL()?contains("webserver")> 
288					<#assign urlNews = themeDisplay.getPortalURL() + themeDisplay.getPathFriendlyURLPublic() + layout.getGroup().friendlyURL + "/w/" + journalArticle.getUrlTitle()> 
289				<#else> 
290						<#assign urlNews = themeDisplay.getPortalURL() + "/w/" + journalArticle.getUrlTitle()> 
291				</#if> 
292 
293        <#if !urlNews?has_content > 
294            <#assign urlNews = "" > 
295        </#if> 
296         
297        <#assign cardData = {"media": media, "title": title, "timeRead": timeRead, "typeOfNews": typeOfNews, "ourEnergy": ourEnergy, "urlNews": urlNews} /> 
298         
299        <#return cardData> 
300 
301        <#recover> 
302            <#return {"media": "", "title": "", "timeRead": "", "typeOfNews": "", "ourEnergy": "", "urlNews": ""} /> 
303    </#attempt> 
304 
305    <#-- cardData ->    image: url, alt 
306                        title 
307                        timeRead 
308                        ourEnergyCategory 
309                        typeOfNews 
310                        urlNews 
311    --> 
312</#function> 
313 
314<#macro renderCard cardData> 
315    <#-- cardData ->    image: url, alt 
316                        title 
317                        timeRead 
318                        ourEnergyCategory 
319                        typeOfNews 
320                        urlNews 
321    --> 
322    <div class="card-news-container"> 
323        <div class="overlay-card-highlight"> </div> 
324			 
325        <a class="card-category-link card-link" href="${cardData.urlNews}" style="display: none;"> ${cardData.title} </a> 
326         
327        <div class="card-news-thumb"> 
328            <#assign noImage = "" /> 
329            <#if cardData.media?? && cardData.media?has_content> 
330                <#if cardData.media.imageSrc?? && cardData.media.imageSrc?has_content> 
331                    <#assign imageSrcDesktop = cardData.media.imageSrc /> 
332                    <#assign imageSrcmobile = cardData.media.imageSrc /> 
333                    <#if cardData.media.urlAdaptativeMedia?? && cardData.media.urlAdaptativeMedia?has_content> 
334                        <#assign imageSrcDesktop = cardData.media.urlAdaptativeMedia.desktop /> 
335                        <#assign imageSrcMobile = cardData.media.urlAdaptativeMedia.mobile /> 
336                    </#if> 
337                     
338                    <picture > 
339                        <source media="(max-width:767px)" srcset="${imageSrcMobile}"> 
340                        <img class="card-news-image" loading="lazy" src="${imageSrcDesktop}" alt="${cardData.media.imageAlt}"/> 
341                    </picture> 
342                     
343                <#else> 
344                    <#if cardData.media.videoYotubeID?? && cardData.media.videoYotubeID?has_content>  
345                        <picture > 
346                            <source media="(max-width:767px)" srcset="https://img.youtube.com/vi/${cardData.media.videoYotubeID}/mqdefault.jpg"> 
347                            <img class="card-news-image" loading="lazy" src="https://img.youtube.com/vi/${cardData.media.videoYotubeID}/maxresdefault.jpg" alt="YouTube Thumbnail"/> 
348                        </picture> 
349                    <#else> 
350                        <#if (cardData.media.internalVideo?? && cardData.media.internalVideo.url?has_content) > 
351                            <video class="card-news-image"> 
352                                <source src="${cardData.media.internalVideo.url}"> 
353                                Your browser does not support the video tag. 
354                            </video> 
355                        <#else> 
356                            <#assign noImage = "no-image" /> 
357                        </#if> 
358                    </#if>       
359                </#if>  
360            </#if>        
361        </div> 
362									 
363        <div class="card-news-category-container ${noImage}">  
364            <div data-category="${categoryName}" class="card-news-category paragraph-micro-regular"> ${cardData.ourEnergy} </div> 
365        </div>  
366 
367        <div class="card-news-text-content ${noImage}"> 
368            <div class="card-news-title h4"> ${cardData.title} </div> 
369 
370            <div class="card-news-info"> 
371                <div class="card-news-type">  
372										<#if getPostTypeImageUrl(POST_TYPES_CATEGORIES, (cardData.typeOfNews)!default(""))?? > 
373												<#assign postTypeIconUrl = getPostTypeImageUrl(POST_TYPES_CATEGORIES, (cardData.typeOfNews)!default("")) /> 
374												<img src="${postTypeIconUrl}" alt="post type icon" /> 
375												<div class="card-news-type-text paragraph-micro-regular">${cardData.typeOfNews}</div> 
376												<#else/> 
377												<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 
378														<path d="M6.25 7.5H13.75M6.25 10H13.75M6.25 12.5H13.75M3.125 3.75H16.875C17.2202 3.75 17.5 4.02982 17.5 4.375V15.625C17.5 15.9702 17.2202 16.25 16.875 16.25H3.125C2.77982 16.25 2.5 15.9702 2.5 15.625V4.375C2.5 4.02982 2.77982 3.75 3.125 3.75Z" stroke="#959595" stroke-linecap="round" stroke-linejoin="round"/> 
379												</svg>		 
380												<div class="card-news-type-text paragraph-micro-regular">Artigo</div> 
381										</#if> 
382                </div> 
383 
384                <#if cardData.timeRead?? && cardData.timeRead?has_content> 
385                    <div class="card-news-time-read">  
386                        <svg class="card-news-icon-time-read" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 
387                            <path d="M10.5 5.625C10.5 5.34886 10.2761 5.125 10 5.125C9.72386 5.125 9.5 5.34886 9.5 5.625H10.5ZM10 10H9.5C9.5 10.2761 9.72386 10.5 10 10.5V10ZM14.375 10.5C14.6511 10.5 14.875 10.2761 14.875 10C14.875 9.72386 14.6511 9.5 14.375 9.5V10.5ZM17 10C17 13.866 13.866 17 10 17V18C14.4183 18 18 14.4183 18 10H17ZM10 17C6.13401 17 3 13.866 3 10H2C2 14.4183 5.58172 18 10 18V17ZM3 10C3 6.13401 6.13401 3 10 3V2C5.58172 2 2 5.58172 2 10H3ZM10 3C13.866 3 17 6.13401 17 10H18C18 5.58172 14.4183 2 10 2V3ZM9.5 5.625V10H10.5V5.625H9.5ZM10 10.5H14.375V9.5H10V10.5Z" fill="#959595"/> 
388                        </svg> 
389                        <div class="card-news-time-read-text paragraph-micro-regular">${cardData.timeRead} min</div> 
390                    </div> 
391                </#if> 
392            </div> 
393        </div> 
394    </div> 
395 
396</#macro> 
397 
398<#macro renderFilters  >  
399    <div class="order-filter-container"> 
400                                               
401        <div class="order-container" > 
402            <span class="paragraph-sm-regular"> 
403                <#if locale?lower_case == 'pt_br'> 
404                    Ordenar por:  
405                <#else> 
406                    Order by:  
407                </#if> 
408            </span> 
409            <select name="order" id="select-order"> 
410                 
411                <option class="paragraph-sm-regular" value=""> 
412                    <#if locale?lower_case == 'pt_br'> 
413                        Padrão  
414                    <#else> 
415                        Default  
416                    </#if> 
417                </option> 
418                <option class="paragraph-sm-regular" value="createDate-">  
419                    <#if locale?lower_case == 'pt_br'> 
420                        Mais recentes 
421                    <#else> 
422                        Recents 
423                    </#if> 
424                </option> 
425                <option class="paragraph-sm-regular" value="createDate%2B">  
426                    <#if locale?lower_case == 'pt_br'> 
427                        Mais antigos 
428                    <#else> 
429                        Olders 
430                    </#if> 
431                </option> 
432            </select> 
433        </div> 
434         
435        <div class="filter-container"> 
436            <span class="paragraph-sm-regular"> 
437                <#if locale?lower_case == 'pt_br'> 
438                    Filtrar por:  
439                <#else> 
440                    Filter by:  
441                </#if> 
442            </span> 
443 
444            <select name="filter" id="select-filter"> 
445                <option class="paragraph-sm-regular" value="0"> 
446                    <#if locale?lower_case == 'pt_br'> 
447                        Todos  
448                    <#else> 
449                        All 
450                    </#if> 
451                </option> 
452            </select> 
453        </div> 
454 
455    </div> 
456 
457</#macro> 
458 
459<#if entries?has_content> 
460	 
461    <div class="${rootCss}"> 
462     
463        <#if categoryDates.parentTaxonomyVocabulary.name == "Nossa Energia"> 
464 
465            <#--  Names Fields  --> 
466            <#assign newsTitle = "Título de destaque da notícia" /> 
467            <#assign readTime = "Tempo de Leitura" /> 
468            <#assign highlightMedia = "Mídia de destaque da notícia" /> 
469            <#assign highlightImage = "Imagem Destaque" /> 
470 
471            <#--  Type of News Dates  --> 
472            <#attempt> 
473                <#assign typeOfNewsRestDates = restClient.get("/headless-admin-taxonomy/v1.0/taxonomy-vocabularies/${typeOfNewsVocabulary.getVocabularyId()}/taxonomy-categories")> 
474                <#assign typeOfNewsDates = typeOfNewsRestDates.items > 
475                    <#recover> 
476                        <#assign typeOfNewsDates = []> 
477            </#attempt> 
478				 
479            <div class="category-top-border"></div> 
480            <div class="dates-category-container"> 
481                <div class="breakpoint"> 
482                    <#assign categoryWithImage = "" > 
483                    <#if categoryImage.contentUrl != ""> 
484                        <#assign categoryWithImage = "with-image" > 
485                    </#if> 
486                    <div class="category-top-session col-1-12 md-col-1-8 sm-col-1-4 ${categoryWithImage}"> 
487                        <div class="text-container"> 
488 
489                            <div class="results-category-title fragment_85017"> 
490                                <div class="petro-title"> 
491                                    <h2 id="title" class="h2" > 
492                                            ${categoryDates.name} 
493                                    </h2> 
494                                    <div class="yellow-bar bar-h2"></div> 
495                                </div> 
496                            </div> 
497 
498                            <div class="category-description paragraph-md-regular"> 
499                                ${categoryDates.description} 
500                            </div> 
501 
502                        </div> 
503                        <#if categoryImage.contentUrl != "" >  
504                            <div class="category-banner" > 
505                                 <picture > 
506                                    <source media="(max-width:767px)" srcset="/o/adaptive-media/image/${categoryImage.id}/${adaptativeMediaMobileResolutionName}/image"> 
507                                    <img 
508                                        src="/o/adaptive-media/image/${categoryImage.id}/${adaptativeMediaDesktopResolutionName}/image" 
509                                        alt="Image ${categoryDates.name}" loading="lazy"> 
510                                </picture> 
511                            </div> 
512                        </#if> 
513                    </div> 
514                </div> 
515 
516                 
517                <div class="cards-highlights-container col-1-12 md-col-1-8 sm-col-1-4"> 
518                    <#list highlightsDates as cardHighlight> 
519                         
520                        <#assign newsTitleDate = "" /> 
521                        <#assign readTimeDate = "" /> 
522                        <#assign highlightImageUrl = "" /> 
523                        <#assign highlightImageFileEntryId = "" /> 
524                        <#assign highlightImageDescription = "" /> 
525                        <#assign highlightTypeNews = "" /> 
526 
527                        <#list cardHighlight.contentFields as contentField> 
528 
529                            <#if contentField.label == newsTitle> 
530                                <#assign newsTitleDate = contentField.contentFieldValue.data /> 
531                            </#if> 
532                            <#if contentField.label == readTime> 
533                                <#assign readTimeDate = contentField.contentFieldValue.data /> 
534                            </#if> 
535                            <#if contentField.label == highlightMedia> 
536                                <#list contentField.nestedContentFields as nestedContent> 
537                                    <#if nestedContent.label == highlightImage && nestedContent.contentFieldValue.image?? > 
538                                        <#assign highlightImageUrl = nestedContent.contentFieldValue.image.contentUrl /> 
539                                        <#assign highlightImageFileEntryId = nestedContent.contentFieldValue.image.id /> 
540                                        <#assign highlightImageDescription = nestedContent.contentFieldValue.image.description /> 
541                                     </#if> 
542                                </#list> 
543                            </#if> 
544 
545                        </#list> 
546 
547                        <#list cardHighlight.taxonomyCategoryBriefs as categories > 
548                         
549                            <#list typeOfNewsDates as types > 
550                                <#if categories.taxonomyCategoryId?number == types.id?number > 
551                                    <#assign highlightTypeNews = categories.taxonomyCategoryName /> 
552                                    <#break> 
553                                </#if> 
554                            </#list> 
555                        </#list> 
556 
557                        <div class="card-category-highlight-container"> 
558                            <a class="card-category-link cards-category-highlights-link" href="w/${cardHighlight.friendlyUrlPath}">  
559                                <span style="display: none;"> ${newsTitleDate} </span>  
560                            </a>  
561													 
562                            <#if highlightImageUrl?has_content && highlightImageUrl != "" > 
563                                <picture > 
564                                    <source media="(max-width:767px)" srcset="/o/adaptive-media/image/${highlightImageFileEntryId}/${adaptativeMediaMobileResolutionName}/image"> 
565                                    <img 
566                                        class="card-news-image" src="/o/adaptive-media/image/${highlightImageFileEntryId}/${adaptativeMediaDesktopResolutionName}/image"  
567                                        alt="${highlightImageDescription}" loading="lazy" 
568
569                                </picture> 
570                            <#else> 
571                                <div class="no-image"></div> 
572                            </#if> 
573                                 
574                            <div class="card-news-category-container "> 
575                                <div data-category="${categoryDates.name}" class="card-news-category paragraph-micro-regular"> 
576                                    ${categoryDates.name} 
577                                </div> 
578                            </div> 
579                            <div class="card-news-text-content "> 
580                                <div class="card-news-title h4"> 
581                                    ${newsTitleDate} 
582                                </div> 
583                                <div class="card-news-info"> 
584                                    <div class="card-news-type">  
585																				<#if getPostTypeImageUrl(POST_TYPES_CATEGORIES, highlightTypeNews)?? > 
586																						<#assign postTypeIconUrl = getPostTypeImageUrl(POST_TYPES_CATEGORIES, highlightTypeNews) /> 
587																						<img src="${postTypeIconUrl}" alt="post type icon" /> 
588																						<div class="card-news-type-text paragraph-micro-regular">${highlightTypeNews}</div> 
589																						<#else/> 
590																						<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 
591																								<path d="M6.25 7.5H13.75M6.25 10H13.75M6.25 12.5H13.75M3.125 3.75H16.875C17.2202 3.75 17.5 4.02982 17.5 4.375V15.625C17.5 15.9702 17.2202 16.25 16.875 16.25H3.125C2.77982 16.25 2.5 15.9702 2.5 15.625V4.375C2.5 4.02982 2.77982 3.75 3.125 3.75Z" stroke="#959595" stroke-linecap="round" stroke-linejoin="round"/> 
592																						</svg>				 
593																						<div class="card-news-type-text paragraph-micro-regular">Artigo</div> 
594																				</#if> 
595																		</div> 
596                                    <div class="card-news-time-read"> 
597                                        <svg class="card-news-icon-time-read" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 
598                                            <path d="M10.5 5.625C10.5 5.34886 10.2761 5.125 10 5.125C9.72386 5.125 9.5 5.34886 9.5 5.625H10.5ZM10 10H9.5C9.5 10.2761 9.72386 10.5 10 10.5V10ZM14.375 10.5C14.6511 10.5 14.875 10.2761 14.875 10C14.875 9.72386 14.6511 9.5 14.375 9.5V10.5ZM17 10C17 13.866 13.866 17 10 17V18C14.4183 18 18 14.4183 18 10H17ZM10 17C6.13401 17 3 13.866 3 10H2C2 14.4183 5.58172 18 10 18V17ZM3 10C3 6.13401 6.13401 3 10 3V2C5.58172 2 2 5.58172 2 10H3ZM10 3C13.866 3 17 6.13401 17 10H18C18 5.58172 14.4183 2 10 2V3ZM9.5 5.625V10H10.5V5.625H9.5ZM10 10.5H14.375V9.5H10V10.5Z"  
599                                                fill="#959595"> 
600                                            </path> 
601                                        </svg> 
602                                        <div class="card-news-time-read-text paragraph-micro-regular"> 
603                                            ${readTimeDate} min 
604                                        </div> 
605                                    </div> 
606                                </div> 
607                            </div> 
608                        </div> 
609                    </#list> 
610 
611                 
612                </div> 
613 
614                 
615            </div> 
616        </#if> 
617			 
618			 
619        <#if categoryDates.parentTaxonomyVocabulary.name != "Nossa Energia"> 
620					 
621            <div class="results-category-title tags-title "> 
622                <div class="breakpoint"> 
623                    <div class="tags-title-container col-1-12 md-col-1-8 sm-col-1-4"> 
624                        <div class="title-section fragment_85017"> 
625                            <div class="petro-title"> 
626                                <h2 id="title" class="h2" > 
627                                        ${categoryDates.name} 
628                                </h2> 
629                                <div class="yellow-bar bar-h2"></div> 
630                            </div> 
631                        </div> 
632                             
633                        <div class="filters-section"> 
634                            <span class="quantify-results-text paragraph-sm-regular"> 
635                                <#if searchContainer.getTotal() != 0> 
636                                     
637                                    <#--  <#if locale?lower_case == "pt_br">  --> 
638                                        Foram encontrados<span class="quantify-results-text-number paragraph-sm-bold"> ${searchContainer.getTotal()}</span> conteúdos 
639                                     
640                                    <#--  <#else> 
641                                        Found<span class="quantify-results-text-number  paragraph-sm-bold"> ${searchContainer.getTotal()}</span> contents 
642                                    </#if>  --> 
643                                </#if> 
644                            </span> 
645                             
646                            <@renderFilters  /> 
647                        </div> 
648                    </div>   
649                </div> 
650            </div> 
651		 
652        </#if> 
653 
654        <div class="card-news-list-breakpoint breakpoint"> 
655 
656            <#if categoryDates.parentTaxonomyVocabulary.name="Nossa Energia"> 
657                <div class="title-filter-container col-1-12 md-col-1-8 sm-col-1-4"> 
658                 
659                    <div class="results-category-title fragment_85017"> 
660                        <div class="petro-title"> 
661                            <h3 id="title" class="h3" > 
662                                <#if locale?lower_case == 'pt_br'> 
663                                    Saiba mais  
664                                <#else> 
665                                    Know more:  
666                                </#if> 
667                            </h3> 
668                            <div class="yellow-bar bar-h3"></div> 
669                                                 
670                        </div> 
671                    </div> 
672                     
673                    <@renderFilters  /> 
674 
675                </div> 
676					                  
677            </#if> 
678 
679            <div class="card-news-list col-1-12 md-col-1-8 sm-col-1-4"> 
680             
681                <#if searchContainer.getTotal() == 0> 
682                    <span class="quantify-results-text paragraph-sm-regular"> 
683                        <#if locale?lower_case == "pt_br"> 
684                                Poxa! Sua busca não encontrou nenhum resultado 
685                        <#else> 
686                                Wow! Your search did not return any results 
687                        </#if> 
688                    </span> 
689                </#if> 
690 
691                <#if entries?has_content> 
692                    <#list entries as entry> 
693                            <#assign cardData = getDataForCard(entry) />                   
694                            <@renderCard cardData/> 
695                    </#list> 
696                </#if> 
697            </div> 
698        </div>   
699    </div> 
700</#if> 
701 
702<#if ourEnergyStyles?? > 
703    <#list ourEnergyStyles as ourEnergyStyle> 
704        <style> 
705            .${rootCss} [data-category="${ourEnergyStyle.titleLocale}"] { 
706                <#if ourEnergyStyle.backgroundColor?? && ourEnergyStyle.backgroundColor?has_content> 
707                    background: linear-gradient(0deg, var(--background-surface-opacity-light-level-07, rgba(255, 255, 255, 0.96)) 0%, var(--background-surface-opacity-light-level-07, rgba(255, 255, 255, 0.96)) 100%), #${ourEnergyStyle.backgroundColor} !important; 
708                </#if> 
709                box-shadow: 0px 2px 6px 0px #${ourEnergyStyle.shadowColor} !important; 
710                color: #${ourEnergyStyle.textColor} !important; 
711
712 
713            body.high-contrast-active .${rootCss} [data-category="${ourEnergyStyle.titleLocale}"] { 
714                <#if ourEnergyStyle.backgroundColor?? && ourEnergyStyle.backgroundColor?has_content> 
715                    background: linear-gradient(0deg, var(--background-surface-opacity-light-level-07, rgba(55, 55, 55, 1)) 0%, var(--background-surface-opacity-light-level-07, rgba(55, 55, 55, 1)) 100%), #${ourEnergyStyle.backgroundColor} !important; 
716                </#if> 
717                color: #${ourEnergyStyle.textColorHighContrast} !important; 
718
719 
720        </style> 
721    </#list> 
722</#if> 
723 
724 
725 
726<style> 
727 
728		/*  BANNER CATEGORIES  AND HIGHLIGHTS SESSION */ 
729        .category-top-border { 
730            width: 100%; 
731            height: 16px; 
732 
733            /* Gradient Verde Claro */ 
734            background: linear-gradient(270deg, #C4D600 0%, #F1C115 68%); 
735 
736
737 
738        body.high-contrast-active .category-top-border { 
739            background: linear-gradient(270deg, var(--color-neutral-600) 0%, var(--color-neutral-800) 68%); 
740
741 
742		.${rootCss} .dates-category-container .category-top-session { 
743				display: flex; 
744				width: 100%; 
745				justify-content: space-between; 
746                padding: var(--space-xl) 0; 
747
748 
749		.${rootCss} .dates-category-container .category-top-session .text-container { 
750            width: 100%; 
751
752	 
753 
754		.${rootCss} .dates-category-container .category-top-session .text-container .petro-title { 
755            flex-shrink: 0; 
756
757 
758		.${rootCss} .text-container { 
759				display: flex; 
760				justify-content: space-between; 
761                align-items: center; 
762                gap: var(--space-lg); 
763
764 
765		.${rootCss} .dates-category-container .category-top-session.with-image .text-container { 
766				flex-direction: column; 
767			  align-items: flex-start; 
768				max-width: 100%; 
769
770 
771		body.high-contrast-active .${rootCss} .text-container { 
772            color: var(--text-primary-default, #FFF) !important; 
773
774 
775		.${rootCss} .text-container .category-title { 
776				width: 480px; 
777				flex-shrink: 0; 
778
779 
780		.${rootCss} .text-container .category-description { 
781            padding-top: var(--space-xs); 
782            max-width: 70%; 
783
784 
785		.${rootCss} .category-banner { 
786				width: 455px; 
787				height: 256px; 
788                flex-shrink: 0; 
789
790 
791		.${rootCss} .category-banner img { 
792				width: 100%; 
793				height: 100%; 
794				object-fit: cover; 
795
796 
797         
798		.${rootCss} .cards-highlights-container { 
799            display: flex; 
800				justify-content: space-between; 
801                height: 420px; 
802                width: 100%; 
803                max-width: 1440px; 
804                margin: var(--space-lg) auto var(--space-xl); 
805                gap: var(--space-md); 
806                overflow-x: auto; 
807 
808                scrollbar-color: #008542 #E7E9EF; 
809                scrollbar-width: auto; 
810
811         
812		body.high-contrast-active .${rootCss} .cards-highlights-container { 
813                scrollbar-color: var(--color-neutral-600)  var(--color-neutral-800); 
814
815 
816		.${rootCss} .cards-highlights-container::-webkit-scrollbar { 
817                background: #fff; 
818                width: 15px; 
819                height: 15px; 
820
821 
822		.${rootCss} .card-category-highlight-container { 
823				width: 410px; 
824				height: 370px; 
825				display: flex; 
826				flex-direction: column; 
827				flex-shrink: 0; 
828				border-radius: var(--border-radius-lg); 
829				border: var(--border-width-hairline) solid var(--border-card-default, #EEE); 
830				background: var(--background-surface-level-01, #FFF); 
831				box-shadow: 0px 12px 60px -10px rgba(145, 147, 149, 0.12); 
832				overflow: hidden; 
833				scroll-snap-align: start; 
834				cursor: pointer; 
835				transition: border 300ms ease-in-out; 
836				text-decoration: none; 
837				position: relative; 
838
839 
840         
841        .${rootCss} .card-category-highlight-container:hover { 
842            border: var(--border-width-hairline) solid rgb(0, 133, 66); 
843
844 
845         
846		body.high-contrast-active .${rootCss} .card-category-highlight-container { 
847                border: var(--border-width-hairline) solid var(--border-card-default, #525252); 
848                background: var(--background-surface-level-01, #010101); 
849
850 
851         
852		body.high-contrast-active .${rootCss} .card-category-highlight-container:hover { 
853                border: var(--border-width-hairline) solid var(--border-card-default, #E4F7E8); 
854
855 
856 
857		body.high-contrast-active .${rootCss} .card-category-highlight-container * { 
858                color: var(--text-primary-default, #FFF) !important; 
859
860 
861		.${rootCss} .cards-highlights-container .card-category-highlight-container .card-category-link { 
862				position: absolute; 
863				top: 0; 
864				width: 100%; 
865				height: 100%; 
866				z-index: 1; 
867
868 
869		.${rootCss} .card-category-highlight-container .card-news-image { 
870				position: relative; 
871				width: 100%; 
872
873         
874		.${rootCss} .card-category-highlight-container .no-image { 
875            height: 50px; 
876
877 
878		.${rootCss} .card-category-highlight-container .card-news-image { 
879				width: 100%; 
880				height: 168px; 
881				object-fit: cover; 
882
883 
884		.${rootCss} .card-category-highlight-container .card-news-category-container { 
885				position: relative; 
886
887 
888		.${rootCss} .card-category-highlight-container .card-news-category-container .card-news-category { 
889				display: flex; 
890				justify-content: center; 
891				align-items: center; 
892				padding: var(--space-micro) var(--space-xs); 
893				position: absolute; 
894				z-index: 2; 
895				left: var(--space-md); 
896				top: -13px; 
897				border-radius: var(--border-radius-pill); 
898				 
899                box-shadow: 0px 2px 6px 0px rgba(0, 178, 169, 0.10); 
900				line-height: var(--line-height-lg, 144%); 
901				color: var(--default-sup-green-water, #006B65); 
902				white-space: nowrap; 
903
904 
905		.${rootCss} .card-category-highlight-container .card-news-text-content { 
906				display: flex; 
907				padding: var(--space-lg, 32px) var(--space-md, 24px) var(--space-md, 24px) var(--space-md, 24px); 
908				flex-direction: column; 
909				justify-content: space-between; 
910				align-items: flex-start; 
911				flex: 1 0 0; 
912				align-self: stretch; 
913
914 
915		.${rootCss} .card-category-highlight-container .card-news-text-content .card-news-title { 
916				display: -webkit-box; 
917				-webkit-box-orient: vertical; 
918				-webkit-line-clamp: 4; 
919				align-self: stretch; 
920				overflow: hidden; 
921				color: var(--text-primary-default, #373737); 
922				text-overflow: ellipsis; 
923				margin: 0; 
924
925 
926		.${rootCss} .card-category-highlight-container .card-news-text-content .card-news-info { 
927				display: flex; 
928				align-items: center; 
929				align-content: center; 
930				gap: var(--space-sm, 16px); 
931				align-self: stretch; 
932				flex-wrap: wrap; 
933
934 
935		.${rootCss} .card-category-highlight-container .card-news-text-content .card-news-info .card-news-type,  
936		.${rootCss} .card-category-highlight-container .card-news-text-content .card-news-info .card-news-time-read { 
937				display: flex; 
938				align-items: center; 
939				gap: var(--space-xxs, 8px); 
940
941 
942		.${rootCss} .card-category-highlight-container .card-news-text-content .card-news-info .card-news-type .card-news-type-text,  
943		.${rootCss} .card-category-highlight-container .card-news-text-content .card-news-info .card-news-time-read .card-news-time-read-text { 
944				color: var(--text-tertiary-default, #959595); 
945				line-height: var(--line-height-lg, 144%); 
946
947 
948		.${rootCss} .card-category-highlight-container .card-news-text-content .card-news-info .card-news-type,  
949		.${rootCss} .card-category-highlight-container .card-news-text-content .card-news-info .card-news-time-read { 
950				display: flex; 
951				align-items: center; 
952				gap: var(--space-xxs, 8px); 
953
954 
955		.${rootCss} .card-category-highlight-container .card-news-text-content .card-news-info .card-news-type .card-news-type-text,  
956		.${rootCss} .card-category-highlight-container .card-news-text-content .card-news-info .card-news-time-read .card-news-time-read-text { 
957				color: var(--text-tertiary-default, #959595); 
958				line-height: var(--line-height-lg, 144%); 
959
960 
961		/* END BANNER CATEGORIES AND HIGHLIGHTS SESSION */ 
962 
963 
964     
965    .${rootCss} .results-category-title.tags-title { 
966        background: var(--color-neutral-300); 
967        padding: var(--space-xl) 0; 
968         
969
970	 
971     
972    .${rootCss} .results-category-title.tags-title .filters-section { 
973        display: flex; 
974        justify-content: space-between; 
975        width: 100%; 
976
977     
978    .${rootCss} .results-category-title.tags-title .filters-section  .quantify-results-text { 
979        padding-top: var(--space-xs); 
980        padding-right: var(--space-xs); 
981
982 
983     
984			 
985    .${rootCss} .fragment_85017 .petro-title .yellow-bar.bar-h2, 
986    .${rootCss} .fragment_85017 .petro-title .yellow-bar.bar-h3 { 
987        background-color: var(--text-secondary-accent, #FDC82F); 
988
989 
990    .${rootCss} .title-filter-container { 
991        display: flex; 
992        justify-content: space-between; 
993        height: 68px; 
994
995 
996    /* Order and Filter */ 
997    .${rootCss} .order-filter-container { 
998        display: flex; 
999
1000 
1001    .${rootCss} .filter-container, 
1002    .${rootCss} .order-container { 
1003        display: none; 
1004        flex-shrink: 0; 
1005        align-items: center; 
1006        height: 45px; 
1007        gap: var(--spacing-space-xxs, 8px); 
1008        margin-right: var(--space-lg); 
1009
1010 
1011    .${rootCss} .filter-container.active, 
1012    .${rootCss} .order-container.active { 
1013        display: flex; 
1014
1015 
1016    body.high-contrast-active .${rootCss} .filter-container, 
1017    body.high-contrast-active .${rootCss} .order-container { 
1018        color: var(--color-neutral-200); 
1019
1020 
1021    .${rootCss} .filter-container  #select-filter, 
1022    .${rootCss} .order-container #select-order { 
1023        display: flex; 
1024        padding: var(--spacing-space-xxs, 8px) var(--spacing-space-xl, 40px) var(--spacing-space-xxs, 8px) var(--spacing-space-sm, 16px); 
1025        align-items: center; 
1026        gap: var(--spacing-space-md, 24px); 
1027        align-self: stretch; 
1028        border-radius: var(--border-radius-lg, 16px); 
1029        border: 1px solid var(--border-color-light); 
1030        appearance: none; 
1031        -webkit-appearance: none; 
1032        -moz-appearance: none; 
1033        background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgICA8cGF0aCBkPSJNMTMgNkw4IDExTDMgNiIgc3Ryb2tlPSIjNTI1MjUyIiBzdHJva2Utd2lkdGg9IjAuNzUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPg0KPC9zdmc+); 
1034        background-repeat: no-repeat; 
1035        background-position: 95%; 
1036
1037 
1038     
1039    body.high-contrast-active .${rootCss} .filter-container #select-filter option,     
1040    body.high-contrast-active .${rootCss} .order-container #select-order option { 
1041        background-color: var(--color-neutral-200); 
1042
1043     
1044    /* renderCard */ 
1045        .${rootCss} .card-news-list { 
1046        display: none; 
1047        flex-wrap: wrap; 
1048        gap: var(--space-lg); 
1049        width: 100%; 
1050        justify-content: flex-start; 
1051        padding-top: var(--space-lg) 
1052
1053     
1054    .${rootCss} .card-news-list.active { 
1055        display: flex; 
1056
1057 
1058    .${rootCss} .card-news-container { 
1059        width: 300px; 
1060        height: 370px; 
1061        display: flex; 
1062        flex-direction: column; 
1063        flex-shrink: 0; 
1064        align-items: flex-start; 
1065        border-radius: var(--border-radius-lg); 
1066        border: var(--border-width-hairline) solid var(--border-card-default, #EEE); 
1067        background: var(--background-surface-level-01, #FFF); 
1068        box-shadow: 0px 12px 60px -10px rgba(145, 147, 149, 0.12); 
1069        overflow: hidden; 
1070        scroll-snap-align: start; 
1071        cursor: pointer; 
1072        transition: border 300ms ease-in-out; 
1073        text-decoration: none; 
1074        position: relative; 
1075
1076 
1077    body.high-contrast-active .${rootCss} .card-news-container {      
1078        border: var(--border-width-hairline) solid var(--border-card-default, #525252); 
1079        background: var(--background-surface-level-01, #010101); 
1080
1081 
1082    .${rootCss} .card-news-container:hover { 
1083        border: var(--border-width-hairline) solid rgb(0, 133, 66); 
1084
1085 
1086    body.high-contrast-active .${rootCss} .card-news-container:hover { 
1087        border: var(--border-width-hairline) solid var(--border-card-default, #E4F7E8); 
1088
1089 
1090    .${rootCss} .card-news-container .card-category-link { 
1091        position: absolute; 
1092        top: 0; 
1093        width: 100%; 
1094        height: 100%; 
1095		z-index: 3; 
1096
1097 
1098    .${rootCss} .card-news-container .card-news-thumb { 
1099        position: relative; 
1100        width: 100%; 
1101			  pointer-events: none; 
1102
1103 
1104    .${rootCss} .card-news-container .card-news-image { 
1105        width: 100%; 
1106        height: 168px; 
1107        object-fit: cover; 
1108			 
1109			  pointer-events: none; 
1110
1111 
1112    .${rootCss} .card-news-container .card-news-category-container { 
1113        position: relative; 
1114
1115 
1116    .${rootCss} .card-category-highlight-container .card-news-category-container .card-news-category, 
1117    .${rootCss} .card-news-container .card-news-category-container .card-news-category { 
1118        display: flex; 
1119        justify-content: center; 
1120        align-items: center;  
1121        padding: var(--space-micro) var(--space-xs); 
1122        position: absolute; 
1123        z-index: 2; 
1124        left: var(--space-md); 
1125        top: -13px; 
1126        border-radius: var(--border-radius-pill); 
1127        background: linear-gradient(0deg, var(--background-surface-opacity-light-level-07, rgba(255, 255, 255, 0.96)) 0%, var(--background-surface-opacity-light-level-07, rgba(255, 255, 255, 0.96)) 100%), var(--default-sup-green-water, #006B65); 
1128        box-shadow: 0px 2px 6px 0px rgba(0, 178, 169, 0.10); 
1129        line-height: var(--line-height-lg, 144%); 
1130        color: var(--default-sup-green-water, #006B65); 
1131			  white-space: nowrap; 
1132			 
1133			  pointer-events: none; 
1134
1135 
1136    body.high-contrast-active .${rootCss} .card-news-container .card-news-category-container .card-news-category { 
1137        background: linear-gradient(0deg, var(--background-surface-opacity-light-level-07, #373737) 0%, var(--background-surface-opacity-light-level-07, #373737) 100%), var(--default-sup-green-water, #99E0DD); 
1138        color: var(--default-sup-green-water, #99E0DD);  
1139
1140 
1141    .${rootCss} .card-news-container .card-news-category-container.no-image .card-news-category { 
1142        position: relative; 
1143        top: 0; 
1144        left: 0; 
1145        margin-left: var(--space-md); 
1146        margin-top: var(--space-md); 
1147
1148 
1149    .${rootCss} .card-news-container .card-news-text-content { 
1150        display: flex; 
1151        padding: var(--space-lg, 32px) var(--space-md, 24px) var(--space-md, 24px) var(--space-md, 24px); 
1152        flex-direction: column; 
1153        justify-content: space-between; 
1154        align-items: flex-start; 
1155        flex: 1 0 0; 
1156        align-self: stretch; 
1157        z-index: 1; 
1158			 
1159			  pointer-events: none; 
1160
1161 
1162    .${rootCss} .card-news-container .card-news-text-content.no-image { 
1163        padding-top: var(--space-sm); 
1164
1165 
1166    .${rootCss} .card-news-container .card-news-text-content .card-news-title { 
1167        display: -webkit-box; 
1168        -webkit-box-orient: vertical; 
1169        -webkit-line-clamp: 4; 
1170        align-self: stretch; 
1171        overflow: hidden; 
1172        color: var(--text-primary-default, #373737); 
1173        text-overflow: ellipsis; 
1174        margin: 0; 
1175
1176 
1177    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-title { 
1178        color: var(--text-primary-default, #FFF); 
1179
1180 
1181    .${rootCss} .card-news-container .card-news-text-content .card-news-info { 
1182        display: flex; 
1183        align-items: center; 
1184        align-content: center; 
1185        gap: var(--space-sm, 16px); 
1186        align-self: stretch; 
1187        flex-wrap: wrap; 
1188
1189 
1190    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type, 
1191    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read { 
1192        display: flex; 
1193        align-items: center; 
1194        gap: var(--space-xxs, 8px); 
1195
1196 
1197 
1198    body.high-contrast-active .${rootCss} .results-category-title .petro-title { 
1199        color: var(--text-primary-default, #FFF) !important; 
1200
1201 
1202    body.high-contrast-active .${rootCss} .fragment_85017 .petro-title .yellow-bar.bar-h2, 
1203    body.high-contrast-active .${rootCss} .fragment_85017 .petro-title .yellow-bar.bar-h3 { 
1204        background-color: var(--text-secondary-accent, #FFEEB3); 
1205
1206 
1207    .${rootCss} .card-news-list .card-news-container .overlay-card-highlight { 
1208        display: none; 
1209
1210 
1211    .${rootCss} .card-news-list .card-news-container .graphism-card-highlight { 
1212        display: none; 
1213
1214     
1215 
1216    /* Card Highlights */ 
1217    .${rootCss} .card-news-list .card-news-container.card-highlights { 
1218        width: 632px; 
1219        height: 360px; 
1220        justify-content: flex-end; 
1221
1222 
1223    .${rootCss} .card-news-list .card-news-container.card-highlights .overlay-card-highlight { 
1224        display: block; 
1225        position: absolute; 
1226        top: 0; 
1227        left: 0; 
1228        width: 100%; 
1229        height: 100%; 
1230        background: linear-gradient(190deg, rgba(13, 19, 16, 0.00) 27.69%, rgba(13, 19, 16, 0.94) 63.29%); 
1231        z-index: 1; 
1232        opacity: 0.8; 
1233			 
1234			  pointer-events: none; 
1235
1236 
1237    .${rootCss} .card-news-list .card-news-container.card-highlights .graphism-card-highlight { 
1238        display: block; 
1239        position: absolute; 
1240        bottom: 0; 
1241        left: 0; 
1242        z-index: 1; 
1243			 
1244			  pointer-events: none; 
1245
1246 
1247    .${rootCss} .card-news-list .card-news-container.card-highlights  .card-news-title { 
1248        color: var(--text-primary-default, #FFF); 
1249
1250 
1251    .${rootCss} .card-news-list .card-news-container.card-highlights  .card-news-image { 
1252        width: 632px; 
1253        height: 360px; 
1254        position: absolute; 
1255        top: 0; 
1256        left: 0; 
1257			 
1258			  pointer-events: none; 
1259
1260	 
1261    .${rootCss} .card-news-list .card-news-container.card-highlights .card-news-thumb { 
1262        height: 100%; 
1263
1264 
1265 
1266    .${rootCss} .card-news-list .card-news-container.card-highlights  .card-news-category { 
1267        display: none; 
1268
1269 
1270    .${rootCss} .card-news-list .card-news-container.card-highlights  .card-news-text-content { 
1271        width: 632px; 
1272        position: relative; 
1273        height: 200px; 
1274        flex-grow: revert; 
1275        bottom: 30px; 
1276
1277 
1278    .${rootCss} .card-news-list .card-news-container.card-highlights  .card-news-text-content .card-news-info { 
1279        position: absolute; 
1280        top: -1px; 
1281
1282    /* *** End Card Highlights *** */ 
1283 
1284    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type path { 
1285        stroke: #D7D7D7; 
1286
1287 
1288    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type .card-news-type-text, 
1289    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-time-read-text { 
1290        color: var(--text-tertiary-default, #959595); 
1291        line-height: var(--line-height-lg, 144%); 
1292
1293 
1294    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-type .card-news-type-text, 
1295    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-time-read-text { 
1296        color: var(--text-tertiary-default, #EEE); 
1297
1298 
1299    .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-icon-time-read { 
1300        transform: translateY(-0.5px); 
1301
1302 
1303    body.high-contrast-active .${rootCss} .card-news-container .card-news-text-content .card-news-info .card-news-time-read .card-news-icon-time-read path { 
1304        fill: #D7D7D7; 
1305
1306	 
1307 
1308 
1309	.${rootCss} .quantify-results-text-number { 
1310        color: var(--border-color-accent); 
1311
1312     
1313     
1314    /* Liferay Pagination */ 
1315    .pagination-bar .pagination-items-per-page { 
1316        display: none !important; 
1317
1318 
1319    .pagination-bar .pagination-results { 
1320        display: none !important; 
1321
1322 
1323    .pagination-bar .pagination { 
1324        width: 100%; 
1325        display: flex; 
1326        justify-content: center; 
1327        margin-top: var(--space-xl); 
1328
1329 
1330    .pagination-bar .page-item { 
1331        display: none !important; 
1332        outline: none; 
1333        display: flex; 
1334        flex-direction: column; 
1335        align-items: center; 
1336        justify-content: center; 
1337        width: var(--size-lg); 
1338        height: var(--size-lg); 
1339        border-radius: var(--border-radius-pill, 100px); 
1340        color: var(--text-tertiary-default, #959595); 
1341        background: transparent; 
1342        border: var(--border-width-hairline) solid transparent; 
1343        transition: background 300ms ease-in-out, border-color 300ms ease-in-out; 
1344
1345	 
1346    .pagination-bar .page-item.active .page-link { 
1347        background: transparent; 
1348
1349	 
1350    .pagination-bar .page-item .page-link:hover{ 
1351        background: transparent; 
1352
1353 
1354    .pagination-bar .page-item:hover{ 
1355        border-color: var(--border-color-accent); 
1356        background: transparent; 
1357
1358     
1359    .pagination-bar .page-item.round-border { 
1360        border-radius: var(--radius-pill, 100px); 
1361        border: 1px solid var(--border-color-accent); 
1362
1363     
1364    .pagination-bar .page-item.disabled.round-border { 
1365        border: 1px solid var(--text-tertiary-default, #959595); 
1366 
1367
1368 
1369    .pagination-bar .page-item.show-item { 
1370        display: flex !important; 
1371
1372 
1373    .pagination-bar .page-item.disabled span span svg { 
1374        stroke: #525252; 
1375
1376 
1377    .pagination-bar .page-item span span svg { 
1378        stroke: var(--border-color-accent); 
1379
1380	 
1381    .pagination-bar .page-item.disabled { 
1382        pointer-events: none; 
1383
1384		 
1385    .pagination-bar .page-item.disabled:hover{ 
1386        background: transparent; 
1387
1388 
1389    .pagination-bar .page-item.active { 
1390        background: var(--background-surface-level-02, #F8F8F8); 
1391        box-shadow: 0px 12px 60px -10px rgba(145, 147, 149, 0.12); 
1392        border: var(--border-width-hairline) solid #F8F8F8; 
1393        pointer-events: none; 
1394
1395	 
1396	 
1397    .pagination-bar .page-item.active * { 
1398        color: var(--border-color-accent); 
1399        font-weight: 700; 
1400
1401	 
1402    body.high-contrast-active .pagination-bar .page-item span span svg { 
1403        stroke: var(--tertiary-default, #EEE) !important; 
1404
1405 
1406    body.high-contrast-active .pagination-bar * { 
1407        color: var(--tertiary-default, #EEE) !important; 
1408 
1409
1410 
1411    body.high-contrast-active .pagination-bar .page-item.round-border { 
1412        border-color: var(--tertiary-default, #EEE) !important; 
1413
1414 
1415    body.high-contrast-active .pagination-bar .page-item.active { 
1416        color: var(--tertiary-default, #EEE) !important; 
1417        border: none; 
1418
1419 
1420    body.high-contrast-active .pagination-bar .page-item.active { 
1421        background: var(--surface-level-02, #373737) !important;    
1422
1423 
1424    body.high-contrast-active .pagination-bar .page-item:hover{ 
1425        border-color: var(--tertiary-default, #EEE); 
1426
1427 
1428 
1429        @media screen and (max-width: 1440px) { 
1430 
1431            .${rootCss} .cards-highlights-container { 
1432                padding: 0 var(--space-big); 
1433
1434
1435         
1436        @media screen and (max-width: 1024px) { 
1437            .${rootCss} .dates-category-container .category-top-session { 
1438                display: grid; 
1439                grid-template-areas:  
1440                "banner" 
1441                "text"; 
1442							    grid-template-columns: 100%; 
1443
1444 
1445            .${rootCss} .text-container { 
1446                grid-area: text; 
1447                width: 100%; 
1448                max-width: 100%; 
1449
1450 
1451            .${rootCss} .category-banner { 
1452                grid-area: banner; 
1453                margin: 0 auto var(--space-lg); 
1454
1455 
1456
1457	 
1458 
1459  
1460		@media screen and (max-width: 766px) { 
1461                .${rootCss} .dates-category-container .category-top-session { 
1462                    padding: 0; 
1463
1464 
1465                 
1466            .${rootCss} .category-banner { 
1467                    height: 205px; 
1468                    width: 100%; 
1469 
1470
1471 
1472            .${rootCss} .category-banner img { 
1473                    position: absolute; 
1474                    width: 100vw; 
1475                    left: 0; 
1476                    height: 205px; 
1477
1478 
1479			.${rootCss} .category-top-session .text-container { 
1480				margin: var(--space-md) 0; 
1481				flex-direction: column; 
1482                align-items: flex-start; 
1483
1484 
1485            .${rootCss} .text-container .category-description { 
1486                max-width: 100%; 
1487
1488 
1489			.${rootCss} .dates-category-container .category-top-session.with-image .text-container { 
1490                    max-width: 100%; 
1491
1492			 
1493            .${rootCss} .cards-highlights-container { 
1494                    padding: 0 var(--space-lg); 
1495
1496 
1497            .${rootCss} .cards-highlights-container .card-category-highlight-container { 
1498                width: 312px; 
1499
1500			 
1501			 
1502            .${rootCss} .results-category-title.tags-title .filters-section { 
1503                flex-direction: column; 
1504                gap: var(--space-lg); 
1505
1506			 
1507				.${rootCss} .title-filter-container { 
1508					flex-direction: column; 
1509					gap: var(--space-lg); 
1510					height: fit-content;					 
1511
1512                 
1513 
1514				.${rootCss} .filter-container.active, 
1515				.${rootCss} .order-container.active { 
1516					flex-direction: column; 
1517					    align-items: flex-start; 
1518
1519			 
1520				.${rootCss} .filter-container.active #select-filter,			 
1521				.${rootCss} .order-container.active #select-order { 
1522					    align-self: flex-start; 
1523
1524			 
1525         
1526			.${rootCss} .card-news-list .card-news-container.card-highlights { 
1527				width: 100%; 
1528
1529			 
1530			 
1531    .${rootCss} .card-news-list .card-news-container.card-highlights  .card-news-text-content { 
1532        width: 100%; 
1533
1534 
1535			 
1536			.${rootCss} .card-news-list .card-news-container.card-highlights .card-news-image { 
1537				width: 100%; 
1538
1539 
1540
1541	 
1542</style> 
1543 
1544<script> 
1545    AUI().ready(function () { 
1546         
1547        const editMode = document.body.classList.contains('has-edit-mode-menu'); 
1548        const cardsList = document.querySelector('.${rootCss} .card-news-list'); 
1549 
1550 
1551        if (!editMode) { 
1552            const cardsHighlightsListLinks = document.querySelectorAll('.${rootCss} .cards-highlights-container .card-category-highlight-container .cards-category-highlights-link'); 
1553            const cards =  cardsList.querySelectorAll('.card-news-container'); 
1554 
1555            cards.forEach((card, index) => { 
1556                let cardLink = card.querySelector('a'); 
1557                cardsHighlightsListLinks.forEach((cardHighligh) => { 
1558                    //let cardLinkHref = cardLink.href.toString(); 
1559                    if (cardLink.href.includes(cardHighligh.href)) { 
1560                        card.remove(); 
1561
1562                }) 
1563            }) 
1564 
1565 
1566            const firstImage = cardsList.querySelector('.card-news-container img'); 
1567            const firstContent = cardsList.querySelector('.card-news-container'); 
1568            const firstContentWithImage = null; 
1569             
1570 
1571            if (firstImage) { 
1572                // Card Highlight - List 
1573                const firstContentWithImage =  firstImage.parentElement.parentElement.parentElement; 
1574 
1575                if (firstContentWithImage) { 
1576                    let cloneElementWithImage = firstContentWithImage.cloneNode(true); 
1577                    const divSvg = document.createElement("div"); 
1578                    divSvg.innerHTML = `<svg  
1579                        class="graphism-card-highlight" width="632" height="226" viewBox="0 0 632 226" fill="none" xmlns="http://www.w3.org/2000/svg"> 
1580                            <g style="mix-blend-mode:multiply" opacity="0.5"> 
1581                            <path d="M632 226L16 226C7.16345 226 0 218.837 0 210V0L516.247 42.7231C527.012 43.6139 536.601 49.8754 541.745 59.3732L632 226Z" fill="#00552A"/> 
1582                            </g> 
1583                        </svg>`; 
1584                    cloneElementWithImage.insertBefore(divSvg, cloneElementWithImage.firstChild); 
1585                    cloneElementWithImage.classList.add('card-highlights'); 
1586                    cardsList.insertBefore(cloneElementWithImage, firstContent); 
1587                    firstContentWithImage.remove(); 
1588
1589
1590
1591         
1592        cardsList.classList.add('active'); 
1593 
1594        const url = new URL(window.location.href); 
1595        const searchParams = url.searchParams; 
1596         
1597        // Order and Filters - Combos 
1598        const orderContainer = document.querySelector('.${rootCss} .order-container'); 
1599        const filterContainer = document.querySelector('.${rootCss} .filter-container'); 
1600        const orderCombo = orderContainer.querySelector('#select-order'); 
1601        const filterCombo = filterContainer.querySelector('#select-filter'); 
1602 
1603        // Order Functions 
1604        const setOrder = (orderBy) => { 
1605 
1606            //const url = new URL(window.location.href); 
1607            //const searchParams = url.searchParams; 
1608 
1609            searchParams.set('sort', orderBy); 
1610            url.search = searchParams.toString(); 
1611            let newUrl = url.toString();  
1612             
1613            newUrl.includes("sort=createDate%25") && (newUrl = url.toString().replace("sort=createDate%25", "sort=createDate%")); 
1614            window.location.href = newUrl; 
1615
1616 
1617        // Filter Functions 
1618        const setFilter = (filterBy) => { 
1619            if (+filterBy === 0 ) { 
1620                searchParams.delete('categoryTypeNews') 
1621            } else { 
1622                searchParams.set('categoryTypeNews', filterBy); 
1623
1624 
1625            url.search = searchParams.toString(); 
1626            let newUrl = url.toString();  
1627             
1628            window.location.href = newUrl; 
1629
1630 
1631        const renderTypeOptions = (options) => { 
1632            let actualFilter = searchParams.get('categoryTypeNews'); 
1633            options.forEach(typeItem => { 
1634                let optionItem = document.createElement('option'); 
1635                optionItem.classList.add('paragraph-sm-regular'); 
1636                optionItem.setAttribute("value", typeItem.id); 
1637 
1638                if (+typeItem.id == +actualFilter) { 
1639                    optionItem.setAttribute('selected', ''); 
1640
1641 
1642                let optionItemName = document.createTextNode(typeItem.name); 
1643                optionItem.appendChild(optionItemName); 
1644 
1645                filterCombo.appendChild(optionItem); 
1646            }) 
1647
1648 
1649         
1650        async function getTypeNews(vocabularyId) { 
1651            try { 
1652                const restResponse = await fetch(`/o/headless-admin-taxonomy/v1.0/taxonomy-vocabularies/${typeOfNewsVocabularyId}/taxonomy-categories?fields=id%2Cname`, { 
1653                    headers: { 
1654                        "x-csrf-token": Liferay.authToken, 
1655                        'accept': 'application/json' 
1656                    }, 
1657                    method: "GET", 
1658                }); 
1659 
1660 
1661                const eventData = await restResponse.json(); 
1662 
1663                renderTypeOptions(eventData.items); 
1664 
1665            } catch (error) { 
1666                console.error("Error connecting to vocabularies API:", error); 
1667
1668        }    
1669 
1670        async function getRenderData() { 
1671            await getTypeNews(); 
1672
1673 
1674        getRenderData(); 
1675 
1676        const orderComboOptions = orderCombo.querySelectorAll('option'); 
1677        const filterComboOptions = filterCombo.querySelectorAll('option'); 
1678 
1679 
1680        orderComboOptions.forEach((item) => { 
1681             
1682            let actualSort = searchParams.get('sort') ? searchParams.get('sort').replace(/\+/g, '%2B') : ''; 
1683            if (item.value === actualSort) { 
1684                item.setAttribute('selected', ''); 
1685
1686 
1687        }) 
1688 
1689        orderCombo.addEventListener('change', (item) => { 
1690            setOrder(item.target.value); 
1691        }) 
1692 
1693        filterCombo.addEventListener('change', (item) => { 
1694            setFilter(item.target.value); 
1695        }) 
1696 
1697 
1698 
1699        orderContainer.classList.add('active'); 
1700        filterContainer.classList.add('active'); 
1701 
1702        // ******************************************* 
1703        const cards =  cardsList.querySelectorAll('.card-news-container'); 
1704         
1705        if (cards.length == 0) { 
1706            let noItemMsg = document.createElement('p'); 
1707            let msg = document.createTextNode('Nenhum resultado encontrado para o filtro selecionado além do(s) card(s) em destaque!'); 
1708            noItemMsg.classList.add('paragraph-sm-regular'); 
1709 
1710            noItemMsg.appendChild(msg); 
1711 
1712            cardsList.appendChild(noItemMsg); 
1713
1714 
1715        // Liferay Pagination Edits: 
1716        const paginationItens = document.querySelectorAll('.pagination-bar .pagination .page-item'); 
1717 
1718        if (paginationItens.length > 0) { 
1719            paginationItens[0].querySelector('span span').innerHTML=`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 
1720            <path d="M13.5 8H2.5M2.5 8L7 3.5M2.5 8L7 12.5"  stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 
1721            </svg>`; 
1722 
1723            paginationItens[0].classList.add('round-border'); 
1724 
1725            paginationItens[(paginationItens.length - 1)].querySelector('span span').innerHTML=`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 
1726            <path d="M2.5 8H13.5M13.5 8L9 3.5M13.5 8L9 12.5" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 
1727            </svg>`; 
1728 
1729            paginationItens[(paginationItens.length - 1)].classList.add('round-border'); 
1730 
1731             
1732            paginationItens.forEach(item => { 
1733                item.classList.add('show-item'); 
1734            }); 
1735 
1736
1737    }); 
1738     
1739 
1740AUI().ready(() => { 
1741    function setLinks${contentNumber}() { 
1742	 
1743        const allCards = document.querySelectorAll(".${rootCss} .card-news-container"); 
1744        allCards.forEach((card) => { 
1745            card.addEventListener('click', (event) => { 
1746                card.querySelector('a').click(); 
1747            }); 
1748        }) 
1749         
1750        document.querySelector('.${rootCss} .card-news-list').classList.add('active'); 
1751             
1752
1753 
1754    setLinks${contentNumber}() 
1755}); 
1756 
1757</script> 




Um inesperado erro ocorreu.

Faça uma busca:

Buscar

Sugestões de busca

Link de exemplo
Ícone do botão /documents/d/nossa-energia/chevronright-svg?download=true Exibir mais resultados
Ícone de carregamento

Mais pesquisados

Preço dos combustíveis

Pré-Sal

Time Petrobras

Um inesperado erro ocorreu.
Um inesperado erro ocorreu.
Um inesperado erro ocorreu.
Um inesperado erro ocorreu.